具有策略驱动路由的主干网的制作方法

文档序号:7991073阅读:242来源:国知局
专利名称:具有策略驱动路由的主干网的制作方法
技术领域
本文描述了具有策略驱动路由的主干网。
背景技术
当源设备希望通过诸如数据中心主干之类的特定网络向目标设备发送数据分组时,源设备向网络提供数据分组。数据分组通过网络来路由,在将该数据分组继续路由至目标设备的设备处退出网络。虽然此类网络在将数据分组从源设备传送到目标设备时是有益的,但是它们并非没有问题。一个这样的问题是网络中常常存在通过其分组从特定源设备被路由至特定目标设备的单个路径,这降低了网络的灵活性。另一这样的问题是为了使网络中的路由器将接收到的分组传送到网络中的正确的下一个路由器,网络中的路由器通常存储每个可能的目标设备地址(或目标设备地址前缀)的映射。此类路由器设备存储的映射的数目会变得很大,从而增大了此类路由器设备的成本。

发明内容
提供发明内容以便以简化形式介绍将在以下的具体实施方式
中进一步描述的一些概念。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。根据一个或多个方面,获得包括目的地地址和有效载荷的数据分组。标识多个出口点地址中对应于目的地地址的出口点地址。多个出口点地址中的每一个与主干网的一个或多个边缘路由器的一个或多个接口相关联,并且一个或多个边缘路由器中的每一个将数据分组从主干网提供给一个或多个其他设备。数据分组是使用包括出口点地址的头部来封装的,并且经封装的数据分组被提供给主干网。根据一个或多个方面,在主干网的边缘路由器中,接收经封装的数据分组。经封装的数据分组具有包括出口点地址的第一头部和包括目的地地址的第二头部。基于出口点地址标识边缘路由器的与出口点地址相对应的接口。从经封装的数据分组移除第一头部, 并且数据分组被添加到接口的缓冲器。


在全部附图中,使用相同的附图标记来指示相同的特征。图1示出根据一个或多个实施例的实现具有策略驱动路由的主干网的示例系统。图2示出根据一个或多个实施例的使用具有策略驱动路由的主干网的示例系统。图3示出根据一个或多个实施例的示例经封装的数据分组。图4是示出根据一个或多个实施例的源设备实现具有策略驱动路由的主干网的示例过程的流程图。图5是示出根据一个或多个实施例的边缘路由器实现具有策略驱动路由的主干网的示例过程的流程图。
图6是示出根据一个或多个实施例的控制器设备实现具有策略驱动路由的主干网的示例过程的流程图。图7示出根据一个或多个实施例的可被配置成实现具有策略驱动路由的主干网的示例计算设备。
具体实施例方式本文描述了具有策略驱动路由的主干网。希望通过主干网向目标设备发送数据分组的源设备获得该数据分组,该数据分组包括要发送的数据(称为有效载荷)以及目标设备的目的地地址两者。源设备访问维护目的地地址前缀至出口点地址的映射的控制器设备。出口点地址对应于主干网的一个或多个不同边缘路由器的不同接口,数据分组可潜在地从这些接口退出主干网。基于各种准则(例如,不同接口的性能、使用不同接口的成本等)为数据分组选择出口点地址中的一个。数据分组与所选出口点地址一起被封装,并且基于所选出口点地址来通过主干网进行路由。在抵达包括具有所选出口点地址的接口的边缘路由器之际,从所封装的数据分组移除出口点地址,并且将得到的数据分组转发至另一设备以继续去往目标设备。另外,主干网通常包括多个路由器。主干网中的每个路由器维护一路由表,该路由表将每个出口点地址映射至主干网中去往包括具有出口点地址的接口的边缘路由器的路径中的下一路由器。在接收到数据分组之际,主干网中的路由器使用所封装的数据分组中的出口点地址而非目的地地址来为该分组确定去往边缘的路径中的下一路由器。图1示出根据一个或多个实施例的实现具有策略驱动路由的主干网的示例系统 100。系统100包括主干网102,该主干网包括多个路由器104、106和108。主干网102是由特定实体管理并用来在由此实体使用的各个设备之间路由数据分组的网络。主干网102 常常特定公司和组织来管理,用来互联此公司或组织使用的设备,或用于提供服务。例如, 主干网102可以是向其他计算设备提供各种服务(例如,数据存储、电子邮件功能、社交网络功能等)的数据中心的网络。主干网102包括多个核心路由器104、多个边缘路由器106、和多个接入路由器 108。核心路由器104从主干网102中的其他网络接收数据分组,并将这些接收到的数据分组传送到主干网102中的其他路由器。接入路由器108接收来自(例如,数据中心的)源设备的数据分组,并将这些接收到的数据分组传送到主干网12中的其他路由器。边缘路由器106接收来自主干网102中的其他路由器,并将这些接收到的数据分组传送给主干网102 之外的另一设备(例如,对等设备110)例如,边缘路由器106可将接收到的数据分组传送给对等设备110。对等设备110可以是计算设备,或者替换地,被耦合至其他网络(例如,其他主干网、因特网等)的其他网络设备(例如,路由器、网关等)。主干网102内的路由器可使用各种不同的常规有线和/或无线耦合或连接来将数据分组传达给另一个。类似地,边缘路由器106可使用各种不同的常规有线和/或无线耦合或连接来与主干网102外部的对等设备通信。由源设备114将数据分组提供给主干网102。源设备114是从主干网102的角度而言发起数据分组的计算设备。源设备114以不同的方式获得数据分组。例如,源设备114 可生成数据分组,或者替换地可从另一设备(例如,接入路由器或数据中心中的其他源设备等)接收数据分组。由源设备114提供的数据分组包括将最终接收该数据分组的设备(其也被称为目标设备或数据分组的预期目标)的网络地址。目标设备的网络地址也被称为数据分组的目的地地址。数据分组也包括出口点地址,其是主干网102的边缘路由器的接口的网络地址, 在该接口处,数据分组将退出或离开主干网102。由于边缘路由器的接口是数据分组将退出或离开主干网102的点,因此该接口也被称为(主干网102的)出口点。边缘路由器的接口可以是例如将边缘路由器链接到特定对等设备的端口或其他通信机制。单个边缘路由器可包括多个不同的接口。替换地,边缘路由器可包括单个接口, 其中出口点地址也称为边缘路由器的地址。源设备114至少部分地基于与控制器设备116的通信来确定数据分组的出口点地址。控制器设备116确定目的地地址与相对应的出口点地址的映射。将在以下更详细地描述由控制器设备116维护的此映射以及对出口点地址的选择。源设备114向主干网102提供数据分组,通常通过向接入路由器(图1的示例中的接入路由器108)的接口传送数据分组。在一个或多个实施例中,源设备114由与主干网 102相同的实体来管理和使用。例如,源设备114可以是与主干网102相同的数据中心中的服务器设备,向其他计算设备提供各种服务(例如,数据存储、电子邮件功能、社交网络功能等)。仅使用几个核心路由器104、边缘路由器106、接入路由器108、对等设备110、源设备114和控制器设备116来例示系统100。然而,应当理解,主干网102可包括任何数目个核心路由器、任何数目个接入路由器、以及任何数目个边缘路由器。还应理解,边缘路由器可被耦合至任何数目个对等设备,任何数目个源设备可被耦合至接入路由器,并且可使用任何数目个控制器设备。一般而言,由源设备114获得数据分组并将其提供给主干网102的接入路由器。每个数据分组包括出口点地址,并且数据分组基于出口点地址在各个路由器之间传送,直至数据分组抵达包括具有出口点地址的接口的边缘路由器。边缘路由器从数据分组移除出口点地址,并将该数据分组传送到耦合至边缘路由器的该接口的对等设备。对等设备随后基于数据分组中的目的地地址继续将数据分组转发给下一适当的设备。图2示出根据一个或多个实施例的使用具有策略驱动路由的主干网的示例系统 200。系统200包括对等设备202、控制器设备204、源设备206、多个路由器208、以及边缘路由器210。对等设备202是例如图1的对等设备110。控制器设备204是例如图1的控制器设备116。源设备206是例如图1的源设备114。每个路由器208是例如图1的核心路由器104或接入路由器108。边缘路由器210是例如图1的边缘路由器106。控制器设备204包括地址映射220和出口点选择模块222。地址映射220是出口点地址和相对应的目的地地址的数据库或其他记录。这些出口点地址和目的地地址是网络地址,并且可以是例如网际协议(IP)地址(例如,网际协议版本4(IPv4)或网际协议版本 6 (IPv6)地址)。出口点地址和目的地地址通常两者是相同类型的网络地址(例如,IPv4地址),但是替换地,可以是不同类型的地址。多个不同的目的地地址可对应于相同的出口点地址,而单个目的地地址可对应于多个不同的出口点地址。在一个或多个实施例中,目的地地址在地址映射220中由其相应的地址前缀来表示。地址前缀是网络地址的特定数目个起始比特,诸如前18个比特。在此类实施例中,地址映射220将地址前缀映射至出口点地址。对应于特定目的地地址前缀的一个或多个出口点地址可由控制器设备204以各种不同的方式来获得。在一个或多个实施例中,边缘路由器210向控制器设备204提供由那些边缘路由器习得的目的地地址前缀以及与这些目的地地址前缀中的每一个相对应的一个或多个出口点地址的指示。因而,对于由边缘路由器210习得的目的地地址前缀,边缘路由器210向控制器设备204提供由边缘路由器210习得的目的地地址前缀以及由边缘路由器210所拥有的目的地地址前缀中的每一个的一个或多个出口点地址的指示。由特定边缘路由器所拥有的目的地地址前缀指的是承担将具有带该目的地地址前缀的目的地地址的数据分组转发到具有该目的地地址的正确目标设备的责任的特定边缘路由器。替换地,对应于特定目的地地址前缀的一个或多个出口点地址可由控制器设备 204以其他方式来获得。例如,控制器设备204可从另一控制器设备、从不同的边缘路由器、从某个其他设备等处接收与特定目的地地址前缀相对应的一个或多个出口点地址的指
7J\ ο地址映射220由此为每个可能的目的地地址前缀标识相对应的一个或多个出口点地址。每个出口点地址对应于边缘路由器的接口,并且每个接口通常对应于单个出口点地址。因而,给定特定目的地地址或目的地地址前缀,地址映射220允许标识与特定目的地地址前缀相对应的(主干网的一个或多个边缘路由器的)一个或多个接口。不同的出口点可具有不同的特性,诸如不同的等待时间、不同的带宽容量、不同的成本、不同的安全性特性等。由于目的地地址前缀可以并且通常的确对应于多个不同的出口点,这些不同出口点的特性可被用来确定特定数据分组将使用哪个特定出口点。特定出口点的特性可由控制器设备204维护数据库或记录(其为地址映射220) 的部分,或者替换地,可由控制器设备204来维护这些特性的单独数据库或记录。特定出口点的这些特性可由控制器设备204以各种不同的方式来标识。例如,控制器设备204可被预先配置成具有这些特性中的一个或多个,可从另一设备获得这些特性中的一个或多个等寸。在一个或多个实施例中,主干网中的监视器监视主干网的出口点的各种特性。此监视器可以是主干网内的分开的设备和/或边缘路由器的模块。监视器确定各个性能特性,诸如在定期或不定期间隔下的每个出口点的等待时间和可用带宽。特定出口点的等待时间和可用带宽可以各种方式来确定,诸如通过向出口点发送测试数据分组、通过向出口点的控制模块查询该出口点处的等待时间和可用带宽、通过使用其他常规等待时间和带宽探测工具等等。由监视器获得的关于出口点的信息(诸如等待时间和可用带宽)在定期或不定期的间隔下(例如,大致每小时一次地)被返回给控制器设备204。另外,在一个或多个实施例中,控制器设备204被配置成具有(或从另一设备获得)标识使用每个出口点的成本的信息。此成本指的是使用出口点依照某种货币(例如, 美元)的成本,诸如每数据分组或每字节的具体成本。成本是例如由拥有或控制耦合至特定出口点的对等设备的实体所收取的额度。标识使用出口点的成本的信息由控制器设备作为此出口点的特性来维护。另外,在一个或多个实施例中,控制器设备204被配置成具有(或从另一设备获得)标识每个出口点的安全特性的信息。出口点的安全特性包括与由出口点或从出口点接收数据分组的对等设备提供的安全性有关的各种信息。出口点的安全特性可包括例如对以下各项的指示(例如,控制器204、系统200的管理员或用户等)知晓出口点是获信任还是未获信任、(例如,控制器204、系统200的管理员或用户等)知晓从出口点接收分组的对等设备是获信任还是未获信任,由从出口点接收分组的对等设备202使用的加密和/或解密 (若有的话)等等。出口点选择模块222应用一个或多个策略,以基于各个出口点的特性来选择出口点中特定数据分组将使用的特定一个。这一个或多个策略指的是出口点选择模块222在选择特定数据分组将使用的出口点时所遵循的规则、算法等。在一个或多个实施例中,出口点选择模块222从源设备206接收对出口点地址的请求,并且作为响应,出口点选择模块222 选择出口点并将所选出口点的地址返回给源设备206。在此类实施例中,源设备206包括至少目的地地址前缀(可任选地包括整个目的地地址)作为对出口点选择模块222的请求的一部分,并且可任选地包括源设备206希望被满足的一个或多个准则。出口点选择模块222可在选择特定出口点来供数据分组使用时应用各种策略。另外,这些策略可随时间改变,从而例如允许系统200的管理员根据他们的需要更改策略。在一个或多个实施例中,出口点选择模块222应用满足从源设备206接收到的一个或多个准则的策略。在此类实施例中,出口点选择模块222标识一组一个或多个出口点地址,这些地址对应于接收自源设备206的目的地地址前缀。出口点选择模块222在随后标识该组出口点地址的子集,该子集是满足接收自源设备206的一个或多个准则的出口点地址。可基于特定准则以不同方式来确定出口点是否满足接收自源设备206的特定准则。例如,如果准则指示等待时间将短于30ms,则在出口点的等待时间特性是短于30ms的等待时间的情况下,出口点满足该准则。作为另一示例,如果准则指示可用带宽将为至少每秒2兆比特,则在出口点的可用带宽特性为每秒2兆或更多兆比特的情况下出口点满足该准则。在其中没有出口点满足接收自源设备206的一个或多个准则的情形中,可将没有出口点满足准则的指示(而非出口点地址)返回给源设备206。替换地,出口点选择模块222可标识最接近满足准则的出口点的一个或多个地址作为出口点地址的子集。例如, 如果准则指示等待时间将短于30ms,且没有出口点具有短于30ms的等待时间,则具有最低等待时间的出口点可被标识为其地址被包括在子集中的出口点。另外,在一个或多个实施例中,出口点选择模块222应用选择具有最低成本的出口点的策略。使用不同出口点的成本可以是出口点的特性,如以上讨论的。因此,出口点选择模块222可应用选择具有最低成本(例如,每数据分组最低成本、每字节最低成本)的出口点的策略。此外,出口点选择模块222可应用既满足多个准则(诸如接收自源设备206的一个或多个准则)又选择具有最低成本的出口点的策略。例如,出口点选择模块222可标识满足接收自源设备206的准则的出口点子集。此子集中具有最低成本的出口点可在随后被选择为其地址将被返回给源设备206的出口点。应当注意,各种其他策略可由出口点选择模块222取决于控制器设备204的管理员或用户的需要、源设备206的管理员或用户的需要等来采用。例如,可开发这样的不同的算法或规则集其虑及出口点的不同特性,对出口点的不同特性不同地进行加权(例如,相比于具有低等待时间,具有低成本可被更大地加权)等等。在一个或多个实施例中,响应于对出口点地址的请求,控制器设备204将单个出口点地址返回给源设备206。在其中出口点选择模块222确定根据模块222所遵循的策略可返回多个出口点的情形中,选择这多个出口点中的一个的地址来作为要返回的地址。要返回的这个地址可按不同的方式来选择,诸如随机地、基于准则(例如,如果准则是具有短于30ms的等待时间,则可选择具有最低等待时间的出口点的地址)、基于成本(例如,选择具有最低成本的出口点的地址)、根据某些其他规则或准则等等。在一个或多个实施例中,响应于对出口点地址的请求,控制器设备204将两个或更多个出口点地址返回给源设备206。所返回的出口点地址中的一个是如以上所讨论的所选出口点地址,并且所返回的一个或多个附加出口点地址是备用出口点地址。在使用所选出口点地址发送数据分组不成功的情况下,这一个或多个备用出口点地址可被源设备206 使用。可从策略指示可返回的那些出口点地址中以不同方式选择一个或多个备用出口点地址,诸如随机、基于准则(例如,如果准则是具有短于30ms的等待时间,则为具有下一最短等待时间的出口点的地址(而非所选出口点的地址))、根据某些其他规则或准则等。另外,在一个或多个实施例中,控制器设备204认证源设备206以验证源设备206 获得控制器设备204的信任。可使用各种不同的认证技术,诸如源设备206提供源设备标识符和口令的恰当组合,源设备206提供由控制器设备204或某个其他获信任机构发行的数字证书、源设备206使用源设备206的私钥加密数据(并且控制器设备204可使用源设备206的已知公钥来解密)等等。这种验证允许控制器设备204来仅允许获得控制器设备 204的信任的源设备206接收出口点地址,并且由此有效地限制哪些源设备206可接入路由器 208。源设备206包括分组生成模块224以及一个或多个应用226。尽管分组生成模块 2M被例示为与应用2 分开,分组生成模块2M可替代地被实现为应用226的部分。响应于来自应用226的请求,分组生成模块224生成经封装的数据分组。来自应用226的请求包括数据分组的目的地地址,并且任选地包括要在为数据分组选择出口点时使用的一个或多个准则。经封装的数据分组包括有效载荷、内部头部、以及外部头部。有效载荷指的是要在经封装的数据分组中发送的数据,并且任选地,可以为空。内部头部包括目的地地址,并且任选地,包括其他控制信息。外部头部包括经封装的数据分组的出口点地址,并且任选地包括其他控制信息。分组生成模块2M获得数据分组(具有内部头部和有效载荷),模块2M根据该数据分组生成经封装的数据分组。封装生成模块2M可通过从头生成分组(例如,包括目的地地址和有效载荷的数据分组先前不存在)——诸如通过从应用2 获得数据和目的地地址,来获得数据分组。分组生成模块2M还可从另一设备或组件获得数据分组,诸如由应用 226从另一网络或设备接收到的数据分组。图3示出根据一个或多个实施例的示例经封装的数据分组300。数据分组300包括外部头部部分302、内部头部部分304、以及有效载荷部分306。外部头部部分302包括数据分组的出口点地址,内部头部部分304包括目的地地址,而有效载荷部分306包括数据分组的有效载荷。
应当注意,经封装的数据分组300是示例经封装的数据分组,并且其他数据分组格式可被替换地使用。例如,如果图2的路由器208和210被配置成基于除外部头部302 以外的位置中的地址来路由数据分组,则数据分组的出口点地址可被包括在经封装的数据分组中的其他地方。回到图2,为了生成经封装的数据分组,分组生成模块224向控制器设备204发送对与目的地地址(或目的地地址前缀)相对应的出口点地址的请求。各种其他准则也可被包括在请求中,如以上所讨论的。要包括在请求中的特定准则可由分组生成模块224以不同方式来标识,诸如在分组生成模块2M中预先配置,由分组生成模块2M从应用2 处接收到等等。分组生成模块2M从出口点选择模块222接收出口点地址,并且将出口点地址包括在数据分组的外部头部中。对外部头部的这样使用用以对数据分组进行封装,从而允许路由器208使用出口点地址而非目的地地址,如以下更详细讨论的。应当注意,不同的应用2 可提供用于出口点选择的不同准则。因此,出口点选择模块222可为来自向相同目的地地址发送数据分组的相同源设备206上的不同应用2 的数据分组选择不同的出口点。应当注意,分组生成模块2M无需针对模块2M生成的每个经封装的数据分组而访问控制设备204。例如,分组生成模块2M可维护与每个应用226的特定出口点地址相对应的目的地地址(或目的地地址前缀)的高速缓存。对于由分组生成模块2M为在应用 226的高速缓存中具有目的地地址(或目的地地址前缀)的该应用2 生成的每个经封装的数据分组,分组生成模块2M使用高速缓存的出口点地址。在其中分组生成模块2M从出口点选择模块222接收单个出口点地址的情形中, 分组生成模块2M将此单个出口点地址包括在经封装的数据分组的外部头部中。在其中分组生成模块2M从出口点选择模块222接收多个出口点地址的情形中,分组生成模块2M 在经封装的数据分组的外部头部中包括由出口点选择模块222所指示的出口点地址作为所选出口点地址。分组生成模块2M维护一个或多个备用出口点地址的记录,并且如果发送具有所选出口点地址的经封装的数据分组不成功(例如,出口点不能恰当地起作用,包括所选出口点地址的数据分组已被丢弃的指示被返回给源设备206等),则将备用出口点地址中的一个包括在经封装的数据分组的外部头部中。替换地,如果发送具有所选出口点地址的经封装的数据分组不成功(例如,去往所选出口点的路径中的下一路由器已掉电, 或者以其他方式变为不运转,出口点不能恰当地起作用等),则分组生成模块2M可将备用出口点地址中的一个或多个包括在经封装的数据分组的其他头部中,且备用出口点地址可由路由器208使用。在以上的讨论中,出口点选择模块222被例示为被包括在控制器设备204中。替换地,出口点选择模块222可被包括在源设备206中。在此类情形中,源设备206可从控制器设备204请求被映射至特定目的地地址前缀(或目的地地址)的特定出口点地址(以及相对应的出口点的特性)的指示。源设备206可在随后应用特定策略来选择出口点地址中的一个。在其他替换实施例中,地址映射220可由各个源设备206来维护,在此情形中,控制器设备204无需维护地址映射220。由源设备206生成的经封装的数据分组被提供给主干网的路由器208。经封装的数据分组可通过包括主干网内的多个不同的路由器208的路径来路由。标识通过主干网的一个或多个路由(也被称为路径),每个路由是从主干网的入口点(例如,数据分组于其处被提供给主干网的接入路由器)至主干网的出口点。这些路由可以各种不同的常规方式来标识。例如,中央控制模块或设备可确定通过主干网的路由,每个个体路由器可确定通过网络的路由的至少一部分(以及响应于路由器掉电或变为不运转而改变该路由)等。每个路由器208包括路由模块2 和路由表230。路由表230包括出口点地址至路由器的映射。路由表230中的这样映射是通过主干网的路由的一部分。不管标识路由的方式如何,每个路由器208在路由表230中维护朝向每个出口点地址的路径中的下一路由器的指示。因此,路由表230中的映射是出口点地址至朝向该出口点地址的路径中的下一路由器的映射。每个路由器208无需具有(但替换地可具有)通过主干网的整个路由的知识。路由模块2 接收经封装的数据分组(例如,从另一路由器或源设备)并标识每个经封装的数据分组的外部头部中的出口点地址。对于每个经封装的数据分组,路由模块2 基于路由表230确定朝向具有此出口点地址的出口点的路径中的下一路由器208或 210。路由模块2 在随后将经封装的数据分组转发给朝向具有该出口点地址的出口点的路径中的下一路由器。在一个或多个实施例中,经封装的数据分组包括如上所讨论的一个或多个备用出口点地址。在此类实施例中,如果使用所选出口点地址不成功,则路由模块2 也可朝着备用出口点地址执行对经封装的数据分组的重新路由。例如,如果路由模块2 确定去往所选出口点地址的路径中的下一路由器已掉电或已以其他方式变为不运转,则路由模块228 可选择备用出口点地址,用该备用出口点地址替代先前所选的出口点地址,并将经封装的数据分组转发给朝向具有所选备用出口点地址的出口点的路径中的下一路由器。最终,在边缘路由器210处接收到经封装的数据分组。边缘路由器210包括路由模块232、评估模块234、路由表236、以及一个或多个接口缓冲器238。路由表236包括出口点地址至边缘路由器210的接口的映射。路由表236中这样的映射是通过主干网的路由的一部分。与以上讨论的路由器208类似地,每个路由器210无需具有(但替换地可具有) 通过主干网的整个路由的知识。边缘路由器210具有一个或多个接口,每个接口具有相对应的接口缓冲器238。每个接口具有相关联的网络地址(出口点地址),并且路由表236的映射是出口点地址至边缘路由器210中包括的特定接口(以及相对应的接口缓冲器238)的映射。与不同接口相对应的出口点地址可以各种方式来标识(例如,对与不同接口相对应的出口点地址的指示由网络操作者来配置、由系统200的管理员或使用者来配置等)。当边缘路由器210从路由器208接收到经封装的数据分组时,评估模块234标识经封装的数据分组的外部头部中的出口点地址。评估模块234基于路由表236确定边缘路由器210是否具有与此出口点地址相对应的接口。评估模块234还向路由模块232通知边缘路由器210具有与此出口点地址相对应的接口。路由模块232根据边缘路由器210是否具有与此出口点地址相对应的接口而以不同方式处理经封装的数据分组。如果边缘路由器210不具有与此出口点地址相对应的接口,则路由模块232丢弃经封装的数据分组。丢弃经封装的数据分组是指删除或以其他方式忽略经封装的数据分组。指示经封装的数据分组已被丢弃的消息可任选地被传达给主干网中的设备,或者被返回给源设备(例如,如果源设备的地址被包括在经封装的数据分组中或以其他方式可为边缘路由器210所用)。然而,如果边缘路由器210具有与此出口点地址相对应的接口,则路由模块232将数据分组添加到与对应于此出口点地址的接口相对应的接口缓冲器238。在一个或多个实施例中,路由模块232在将数据分组添加到接口缓冲器238之前从经封装的数据分组移除外部头部。在此类实施例中,经解封装的数据分组(具有内部头部和有效载荷的数据分组) 被添加到接口缓冲器238。在其他实施例中,经封装的数据分组被添加到接口缓冲器238。 在将数据分组转发给对等设备202之前,该数据分组被解封装(外部头部被移除)。最终,接口缓冲器238中的数据分组被传达给对等设备202。与接口缓冲器238相关联的控制模块可诸如根据特定定时协议,响应于来自对等设备202的请求等来确定何时发送数据分组。接口缓冲器238中的数据分组被以先进先出的方式或者替代地根据其他协议或规则传达给对等设备202。一旦接收到数据分组,对等设备202基于目的地地址继续将数据分组转发给目标设备。应当注意,由对等设备202接收到的数据分组是经解封装的数据分组——在将数据分组传达给对等设备202之前移除包括出口点地址的外部头部。因而,可见本文中讨论的技术允许将来自主干网的不同出口点用于不同的数据分组,即使那些不同的数据分组具有相同的目的地地址。通过主干网的不同的路由或路径可被使用,其中的每一个导致数据分组在不同的出口点退出主干网。为数据分组选择的特定出口点基于如以上讨论的由出口点选择模块222使用的策略而变化,并且由此用于数据分组的通过主干网的路由由出口点选择模块222所使用的策略来驱动。还应当注意,如以上所讨论的,路由器208维护出口点至路由器的映射,并且边缘路由器210维护出口点地址至接口的映射。由路由器208和210维护的映射是基于出口点地址,而非目的地地址。常常存在比出口点地址多得多的可能的目的地地址。例如,对于通过主干网传递的数据分组,数据分组可具有大约几十万的不同的目的地地址中的一个, 但是具有仅大致一千个不同的出口点地址中的一个。因此,具有本文中所讨论的策略驱动路由技术的主干网极大地减少了路由器208和210为其维护映射的地址的数目。这例如允许将较低成本的通用或商用路由器,而非将能够映射大量可能的目的地地址的更昂贵的专用路由器,用作路由器208和210。图4是示出根据一个或多个实施例的源设备实现具有策略驱动路由的主干网的示例过程400的流程图。过程400由诸如图1的源设备114或图2的源设备206之类的源设备来实现,并可以用软件、固件、硬件、或其组合来实现。过程400被示为一组动作,不仅限于所示出的用于执行各种动作的操作的顺序。过程400是源设备实现具有策略驱动路由的主干网的示例过程;对源设备实现具有策略驱动路由的主干网的附加讨论在本文中参照不同附图而被包括。在过程400中,获得包括目的地地址和有效载荷的数据分组(动作402)。目的地址是数据分组的目标设备的网络地址(例如,IP地址)。在动作402,可由实现过程400的源设备生成或替换地接收数据分组。标识与目的地地址相对应的主干网出口点地址(动作404)。如以上所讨论的,出口点地址是基于一个或多个不同的策略来标识的。在动作404标识的出口点地址可由实现页
过程400的源设备或替换地由如上讨论的控制器设备来选择。用包括主干网出口点地址的头部来封装数据分组(动作406)。主干网出口点地址是在动作402标识的出口点地址。将经封装的数据分组提供给主干网(动作408)。经封装的数据分组可以不同的方式被提供给主干网,诸如通过被提供给接入路由器,如以上所讨论的。图5是示出根据一个或多个实施例的边缘路由器实现具有策略驱动路由的主干网的示例过程500的流程图。过程500通过诸如图1的边缘组件106或图2的边缘路由器 210之类的边缘组件来执行,并可以以软件、固件、硬件,或其组合来实现。过程500被示为一组动作,不仅限于所示出的用于执行各种动作的操作的顺序。过程500是边缘路由器实现具有策略驱动路由的主干网的示例过程;对边缘路由器实现具有策略驱动路由的主干网的附加讨论在本文中参照不同附图而被包括。在过程500中,接收经封装的数据分组(动作50 。经封装的数据分组包括出口点地址、目的地地址、以及有效载荷,如以上所讨论的。基于经封装的数据分组中的出口点地址来标识边缘路由器的接口(动作504)。所标识的边缘路由器接口是实现过程500的边缘路由器的对应于出口点地址的接口。对边缘路由器的接口的标识可能成功或者可能不成功,如以上所讨论的。因此,过程500基于边缘路由器接口是否被标识而继续(动作506)。如果边缘路由器接口未被标识,则丢弃经封装的数据分组(动作508)。通过丢弃经封装的数据分组,边缘路由器接口可删除或以其他方式忽略经封装的数据分组。然而,如果边缘路由器接口被标识,则通过从经封装的数据分组移除出口点地址来对经封装的数据分组进行解封装(动作510)。例如,通过从经封装的数据分组移除包括出口点地址的外部头部来从经封装的数据分组移除此出口点地址。这种从经封装的数据分组中将出口点地址移除也称为对数据分组进行解封装。将数据分组添加到边缘路由器接口的缓冲器(动作51 。将数据分组添加到与在动作504标识的边缘路由器接口相对应的缓冲器。如以上所讨论的,可在将数据分组添加到边缘路由器接口的缓冲器之前或之后来从经封装的数据分组移除出口点地址。图6是示出根据一个或多个实施例的控制器设备实现具有策略驱动路由的主干网的示例过程600的流程图。过程600由诸如图1的控制器设备116或图2的控制器设备 204之类的控制器设备来实现,并可以用软件、固件、硬件、或其组合来实现。过程600被示为一组动作,不仅限于所示出的用于执行各种动作的操作的顺序。过程600是控制器设备实现具有策略驱动路由的主干网的示例过程;对控制器设备实现具有策略驱动路由的主干网的附加讨论在本文中参照不同附图而被包括。在过程600,维护目的地地址前缀至主干网出口点地址的映射(动作602)。哪个目的地地址对应于哪个主干网出口点地址可如以上所讨论的按不同的方式来标识。从源设备接收目的地地址前缀和准则(动作604)。可从源设备接收各种不同的准则,如以上所讨论的。另外,从源设备接收至少目的地地址前缀,尽管也可接收目的地地址的附加部分(例如,可接收整个目的地地址)。标识与目的地地址前缀相对应的一组多个主干网出口点地址(动作606)。此组多个主干网出口点地址是基于如以上所讨论的目的地地址前缀至主干网出口点地址的映射来标识的。可标识满足接收到的准则的主干网出口点地址子集(动作608)。此子集是在动作 606标识的主干网出口点地址集合的子集。如果具有特定主干网出口点地址的主干网出口点满足接收到的准则,则该特定主干网出口点地址满足接收到的准则。标识与主干网出口点地址子集中的每个主干网出口点地址相关联的成本(动作 610)。与特定主干网出口点地址相关联的成本是使用如以上所讨论的具有特定主干网出口点地址的出口点的成本。从主干网出口点地址子集选择具有所需(例如,最低)相关联成本的主干网出口点地址(动作61 。具有最低成本的主干网出口点地址是与具有最低成本的出口点相关联的主干网出口点地址。在动作612选择的主干网出口点地址被返回给从其接收请求的源设备(动作 614)。替换地,一个或多个附加备用主干网出口点地址也可被返回给源设备,如以上所讨论的。图7示出根据一个或多个实施例的可被配置成实现具有策略驱动路由的主干网的示例计算设备700。计算设备700可以是例如图1的路由器104、106或108,或者设备 110,114或116。计算设备700也可以是例如图2的设备202、204或206,或者路由器208 或210。计算设备700可以是各种不同类型的设备,诸如服务器计算机、台式计算机、笔记本电脑或膝上型计算机、笔记本型或平板计算机、移动站、娱乐设备、通信地耦合到显示设备的机顶盒、电视机、蜂窝式或其他无线电话、游戏控制台、车载计算机、路由器、网关等等。计算设备700包括一个或多个处理器或处理单元702、可包括一个或多个存储器和/或存储组件706的一个或多个计算机可读介质704、一个或多个输入/输出(I/O)设备708、以及允许各组件和设备彼此通信的总线710。计算机可读介质704和/或一个或多个I/O设备708可以作为计算设备700的一部分被包括,或者可另选地可以耦合到计算设备700。总线710表示若干类型的总线结构中的任何一种总线结构的一个或多个,包括存储器总线或存储器控制器、外围总线、加速图形端口,以及使用各种不同的总线体系结构中的处理器或局部总线。总线710可包括有线和/或无线总线。存储器/存储组件706表示一个或多个计算机存储介质。组件706可包括易失性介质(诸如随机存取存储器(RAM))和/或非易失性介质(诸如只读存储器(ROM)、闪存、光盘、磁盘等等)。组件706可包括固定介质(例如,RAM、R0M、固定硬盘驱动器等等)以及可移动介质(例如,闪存驱动器、可移动硬盘驱动器、光盘等等)。此处所讨论的技术可以以软件实现,指令由一个或多个处理单元702。可以理解, 不同的指令可以存储在计算设备700的不同的组件中,诸如存储在处理单元702中,存储在处理单元702的各种缓存存储器中,存储在设备700(未示出)的其他缓存存储器中,存储在其他计算机可读介质上等等。另外,可以理解,指令存储在计算设备700中的位置可以随着时间而变化。一个或多个输入/输出设备708允许用户向计算设备700输入命令和信息,并且还允许向用户和/或其他组件或设备呈现信息。输入设备的示例包括键盘、光标控制设备 (例如,鼠标)、话筒、扫描仪等等。输出设备的示例包括显示设备(例如,监视器或投影仪)、 扬声器、打印机、网卡等等。
此处可以在软件或程序模块的一般上下文中描述各种技术。一般而言,软件包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。这些模块和技术的实现可以存储在某种形式的计算机可读介质上或通过某种形式的计算机可读介质传输。计算机可读介质可以是可以被计算设备访问的任何可用介质。作为示例,而不是限制,计算机可读介质可以包括“计算机存储介质”和“通信介质”。“计算机存储介质”包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EEPR0M、闪存或其它存储器技术、CD-ROM、 数字多功能盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由计算机访问的任何其它介质。“通信介质”通常用诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据。通信介质还包括任何信息传送介质。术语“已调制数据信号”是指其一个或多个特征以在信号中对信息进行编码的方式来设置或改变的信号。作为示例而非限制,通信介质包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、RF、红外线和其他无线介质。以上的任一种的组合也包括在计算机可读介质的范围之内。—般而言,此处所描述的任何功能或技术都可使用软件、固件、硬件(例如,固定逻辑电路)、手动处理或这些实现的组合来实现。如此处所使用的术语“模块”和“组件”一般代表软件、固件、硬件或其组合。在软件实现的情况下,模块或组件表示当在处理器(例如,一个或多个CPU)上执行时执行指定任务的程序代码。程序代码可以存储在一个或多个计算机可读的存储器设备中,可以参考图7发现关于其进一步的描述。本文描述的具有策略驱动路由的主干网的技术的各个特征是平台无关的,从而意味着该技术可在具有各种处理器的各种商用计算平台上实现。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。更确切而言,上述具体特征和动作是作为实现权利要求的示例形式公开的。
权利要求
1.一种在设备中的方法,所述方法包括获得包括目的地地址和有效载荷两者的数据分组G02);标识多个出口点地址中与所述目的地地址相对应的第一出口点地址(404),所述多个出口点地址中的每一个与主干网的一个或多个边缘路由器的一个或多个接口相关联,所述一个或多个边缘路由器中的每一个将数据分组从所述主干网提供到一个或多个其他设备;用包括所述第一出口点地址的第一头部来封装所述数据分组G06);以及将所述经封装的数据分组提供给所述主干网。
2.如权利要求1所述的方法,其特征在于,所述目的地地址被包括在所述数据分组的第二头部中。
3.如权利要求1所述的方法,其特征在于,所述标识包括接收与所述多个出口点地址中的一个或多个相关联的一个或多个出口点的特性有关的信息;以及至少部分地基于所接收到的信息来选择所述多个出口点地址中的一个。
4.如权利要求1所述的方法,其特征在于,所述标识包括将一个或多个准则提供给控制器设备;以及从所述控制器设备接收所述第一出口点地址,其中所述第一出口点地址满足所述一个或多个准则。
5.如权利要求4所述的方法,其特征在于,所述第一出口点地址是由所述控制器设备基于由所述控制器设备实现的一个或多个策略来选择的。
6.如权利要求5所述的方法,其特征在于,所述一个或多个策略随时间而改变。
7.如权利要求4所述的方法,其特征在于,所述第一出口点是满足所述一个或多个准则的多个出口点地址中的一个,其中所述多个出口点地址中的每一个具有与使用同所述出口点地址相关联的接口相关联的成本,并且具有与使用同所述出口点地址相关联的接口相关联的等待时间,并且所述第一出口点地址是多个出口点地址中具有所需成本和所需等待时间两者的一个。
8.如权利要求4所述的方法,其特征在于,所述第一出口点是满足所述一个或多个准则的多个出口点地址中的一个,其中所述多个出口点地址中的每一个具有与使用同所述出口点地址相关联的接口相关联的成本,并且具有与使用同所述出口点地址相关联的接口相关联的安全性特性,并且所述第一出口点地址是多个出口点地址中具有所需成本和所需安全性特性两者的一个。
9.如权利要求1所述的方法,其特征在于,所述标识还包括针对所述设备上的不同的应用,为相同的目的地地址标识所述多个出口点地址中的不同的出口点地址。
10.如权利要求1所述的方法,其特征在于,还包括标识第二出口点地址,并且如果发送具有第一头部的数据分组不成功,则用包括所述第二出口点地址的头部而非所述第一头部来封装所述数据分组。
11.如权利要求1所述的方法,其特征在于,还包括标识第二出口点地址,并且将所述第一出口点地址和所述第二出口点地址两者包括在所述第一头部中。
12.如权利要求1所述的方法,其特征在于,所述第一出口点地址和所述目的地地址两者均是网际协议(IP)地址。
13.如权利要求1所述的方法,其特征在于,获得所述数据分组包括从另一设备接收所述数据分组。
14.一种主干网的边缘路由器,所述边缘路由器包括 一个或多个处理器(702);一个或多个其上存储有多个指令的计算机可读介质(704),所述指令在被所述一个或多个处理器执行时使得所述一个或多个处理器执行以下动作接收经封装的数据分组(502),所述经封装的数据分组具有包括出口点地址的第一头部和包括目的地地址的第二头部;基于所述出口点地址标识所述边缘路由器的与所述出口点地址相对应的接口(506); 从所述经封装的数据分组移除所述第一头部(510);以及将所述数据分组添加到所述接口的缓冲器(512)。
15.如权利要求14所述的边缘路由器,其特征在于,所述经封装的数据分组使用所述出口点地址而非所述目的地地址来通过所述主干网被路由至所述边缘路由器。
全文摘要
本发明涉及具有策略驱动路由的主干网。源设备获得包括目的地地址和有效载荷两者的数据分组。源设备基于一个或多个策略选择多个出口点地址中对应于目的地地址的出口点地址。源设备使用包括所选出口点地址的头部来封装数据分组,并且经封装的数据分组被提供给主干网。经封装的数据分组基于出口点地址来通过主干网来路由,并且主干网的边缘路由器标识边缘路由器的对应于出口点地址的接口。从经封装的数据分组移除头部,并且数据分组被添加到接口的缓冲器,以便路由到主干网外部的一个或多个其他设备。
文档编号H04L12/56GK102447626SQ20111038617
公开日2012年5月9日 申请日期2011年11月18日 优先权日2010年11月18日
发明者A·G·格林伯格, A·辛格, D·A·马尔茨, P·拉希里, S·克里希南, 张铭 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1