知道前缀的加权成本多路径群组减少的制作方法

文档序号:11162099阅读:300来源:国知局
知道前缀的加权成本多路径群组减少的制造方法与工艺

本申请要求2015年3月10日提交的题为“Prefix-Aware Weighted Cost Multi-Path Group Reduction”的美国专利申请No.14/643,712的权益和其优先权,该美国专利申请要求2014年5月12日提交的题为“Prefix-Aware Weighted Cost Multi-Path Group Reduction”的美国临时申请No.61/991,969的优先权。两个申请的全部内容通过引用合并于此。



背景技术:

在计算机系统之间以网络分组的形式发射信息,所述网络分组在一个或多个互连网络中从网络设备被传递到网络设备(例如,交换机)。每个网络设备将所接收的分组转发到分组中报头信息所指定的目的地。目的地地址可以在不同网络中用于可以由第三方控制的设备,且分组可以在源和目的地之间经过任意数目的不同网络。

一些网络设备(典型地,交换机)包括被分配到转发表的存储器。当网络设备接收分组时,网络设备可以使用转发表中的信息以确定如何处置所接收的分组。例如,转发表可以包括路由条目,所述路由条目指定沿着到网络目的地的路径连接到下一跳的出站端口。

在一些网络配置中,从网络设备到特定网络目的地可能存在多个可变路径。相等成本多路径(ECMP)路由允许转发表包括针对多个路径中的每个路径的路由条目。支持ECMP的交换机随后可以在ECMP路由集合中的多个路由间分发网络业务。加权成本多路径(WCMP)路由使得多路径路由集合中的多个可变路径中的一些路径相比相同集合中的其他路径更多地被使用。但是,WCMP路由集合的路由条目会消耗分配给转发表的存储器的显著的部分。



技术实现要素:

在一个方面,本公开涉及一种用于为分组交换机生成转发表的方法。该方法包括在分组交换机的转发表中识别多个多路径群组,每个多路径群组与所述转发表中的路由条目的相应的初始集合相对应。该方法包括为所述多个多路径群组中的一个或多个多路径群组生成至少一个路由条目的替换集合,相比于与所述相应的多路径群组相对应的路由条目的初始集合,所述替换集合具有更少的路由条目。该方法包括基于业务减少成本度量,选择路由条目的替换集合中的一个或多个替换集合,每个所选择的替换集合与所述多个多路径群组中的不同的相应的多路径群组相对应,以及在分组交换机的转发表中,用路由条目的所述相应的对应的所选择的替换集合来替换与路由条目的所选择的替换集合相对应的用于每个多路径群组的路由条目的初始集合。在一些实施方式中,所述业务减少成本度量包括第一业务特性。

在另一方面,本公开涉及一种系统。该系统包括具有转发表的分组交换机,以及分组交换机的路由管理器。所述路由管理器被配置为:在转发表中识别多个多路径群组,每个多路径群组与转发表中的路由条目的相应的初始集合相对应,以及为所述多个多路径群组中的一个或多个多路径群组生成至少一个路由条目的替换集合,相比于与所述相应的多路径群组相对应的路由条目的初始集合,所述替换集合具有更少的路由条目。所述路由管理器被配置为基于业务减少成本度量,选择路由条目的替换集合中的一个或多个替换集合,每个所选择的替换集合与所述多个多路径群组中的不同的相应的多路径群组相对应,以及在转发表中,用路由条目的所述相应的对应的所选择的替换集合来替换与路由条目的所选择的替换集合相对应的用于每个多路径群组的路由条目的初始集合。在一些实施方式中,所述业务减少成本度量包括第一业务特性。在一些实施方式中,分组交换机参与软件定义的网络(SDN)且路由管理器是用于分组交换机的SDN控制器的一部分。

附图说明

当结合下面的附图时,通过参考下面的详细描述,将更全面地理解本公开的上述和相关对象、特征和优点,其中:

图1是示例网络的框图;

图2是示例网络设备的框图;

图3A-图3C是示例转发表的框图;

图4是知道前缀的WCMP群组减少的方法的流程图;

图5是用于不用来发射重要网络业务的多路径集合的WCMP群组减少的方法的流程图;以及

图6是根据说明性实施方式的计算系统的框图。

各种附图中的相同的参考标记和名称指示相同的元素。

具体实施方式

图1是在各种互连点处被链接到一起的多个独立网络所构成的示例网络环境的框图。如所图示,本地网络110与目的地网络150经由一个或多个中间网络130通信。本地网络110通过在本地网络110的边缘处的网络设备124和126连接到中间网络130。这些“边缘”网络设备通过中间网络130参与三个所图示的网络路径:路径“A”144、路径“B”146和路径“C”148。每个路径144、146和148是通过网络110、130和150到目的地网络150中的目的地设备154的不同路由。本地网络110中的网络设备122可以将寻址到目的地设备154的分组转发到边缘设备124或126且使得分组到达目的地网络150。也就是,网络设备122可以实现多路径路由。

参看图1,更详细地,本地网络110包括各种网络设备122、124和126。本地网络110可以是促进多个计算系统之间的通信的任何种类的数据网络。本地网络110内的网络设备122可以将分组发送(发射)到本地网络110内的其他网络设备以及从其他网络设备接收分组,所述其他网络设备包括在本地网络110边缘处的网络设备124和126。在一些实施方式中,本地网络110是软件定义的网络(SDN),其中,网络设备中的一个或多个是由SDN控制器(图1中未示出)控制的。由SDN控制器所控制的网络设备的示例如图2中所图示。可以用于实现网络设备的计算系统的示例如图7中所图示。

仍参看图1,边缘网络设备124和126将本地网络110连接到其他网络130。在一些实施方式中,边缘设备具有连接到一个网络的网络接口以及连接到另一个网络的另一个网络接口,使得“多归属”设备可以参与两个网络。在一些实施方式中,边缘设备经由网络互连(例如,由第三方互联网交换提供者(IXP)所提供的互连)被连接到另一网络的边缘设备。边缘设备124和126充当本地网络110和其他网络130之间的网关。在一些实施方式中,边缘设备124和126实现诸如边界网络协议(BGP)的路由协议。对于从本地网络110内到本地网络110之外的目的地设备154的分组,该分组在本地网络110内被沿着到掌管目的地设备154的目的地网络150的网络路径而路由到边缘设备。边缘网络设备124被图示为通过中间网络130到目的地网络150参与了至少两个不同的路径(路径“A”144和路径“B”146)。另一边缘网络设备126被图示为通过中间网络130到目的地网络150参与了第三不同路径(路径“C”148),。也就是,从本地网络110到目的地网络150存在至少三个不同路径。

中间网络130是促进多个计算系统之间的通信的数据网络。在一些实施方式中,中间网络130由控制本地网络110的相同方来控制,例如在自主系统中。在一些实施方式中,中间网络130是由第三方控制的。在一些实施方式中,中间网络130是载波网络。在一些实施方式中,从本地网络110发射到目的地网络150的分组将通过多个中间网络130。

目的地设备154是可以接收网络分组的计算系统或网络设备。目的地设备154与至少一个网络地址相关联,将其置于目的地网络150的网络地址空间内。目的地设备154可以是能够从网络接收分组的任何计算系统。例如,目的地设备154可以是客户端设备,所述客户端设备被配置为向计算机用户呈现从目的地网络150所接收的信息。在一些实施方式中,目的地设备154是服务器。例如,目的地设备154可以是装置外的(off-site)数据存储系统。可用于实现目的地设备154的计算系统的示例如图7中所图示。

目的地网络150可以是促进多个计算系统之间的通信的任何种类的数据网络。在一些实施方式中,目的地网络150是互联网服务提供商(ISP)网络。

本地网络110、中间网络130和目的地网络150可以各自是促进多个计算系统之间的通信的任何种类的数据网络。例如,每个网络110、130和/或150可以是局域网(LAN)、广域网(WAN)或虚拟网络。每个网络具有OSI物理层属性且使用OSI链路层协议(例如,以太网)来操作。每个网络可以包括图1中未示出的附加网络设备,例如集线器、桥接器、交换机或路由器。网络110、130和/或150中任何一个可以是软件定义的网络(SDN)。

在一些实施方式中,所有网络设备122、124、126和154可以被包括在相同网络中,而不是位于不同网络中。例如,设备可以都处于相同软件定义的数据中心网络中。一些数据中心网络包括以机架排列的大量服务器,每个机架都包括一个或多个架顶交换机。服务器随后通过聚合层交换机中的一个或多个层与数据中心中的其他服务器通信。在这样的网络中,作为示例,数据中心中的架顶交换机可以链接到多个聚合层交换机且被配置为采用多路径路由来在网络的给定聚合层中分发由多个交换机间的其机架中所包括的服务器所输出的业务。类似地,聚合层交换机也可以采用多路径路由。

图2是被控制链路112分离的示例软件定义的网络控制器220和网络设备230的框图。在广泛概述中,SDN控制器220包括控制模块242和存储器226,例如,用于存储网络配置和路由数据。网络设备230包括控制模块244和存储器236,例如,用于存储设备配置和路由数据。网络设备230包括转发引擎234,其使用存储在存储器236中的设备配置和路由数据来管理网络接口238处的数据业务。网络设备230适合于用作图1中所图示的网络设备122、124和126中的任何一个。

参看图2,更详细地,SDN控制器220包括控制模块242和存储器226。控制模块242使用存储在存储器246中的网络配置和路由数据来配置网络设备230。在一些实施方式中,控制模块242周期性发送状态或可用性消息到网络设备230。在一些实施方式中,SDN控制器220生成转发表,并且将转发表发布给一个或多个网络设备230。

网络设备230包括控制模块244和存储器236。网络设备控制模块244从SDN控制器控制模块242接收配置和路由信息(经由控制链路112)并且更新存储器236中所存储的数据。

网络设备230包括网络接口238集。每个网络接口238可以被连接到数据网络。例如,网络设备230可以经由第一网络接口(例如,网络接口238a)接收用于网络的数据分组。网络设备230将所接收的数据分组经由另一接口(例如,网络接口238b)转发到适当下一跳。在一些实施方式中,转发引擎234确定将哪个网络接口238用于所接收的每个数据分组。在一些实施方式中,转发引擎234使用存储在存储器236中的转发表来确定使用哪个网络接口238.

转发引擎234使用存储器236中的配置和路由数据来管理网络接口端口238处的数据业务。存储器236中的配置和路由数据经由控制模块244被SDN控制器220控制。在一些实施方式中,转发引擎234在转发分组到出站网络接口端口238之前更新分组报头。例如,转发引擎234可以更新分组报头中的显式拥塞通知(ECN)、跳计数(TTL)或校验和信息。

存储器226和存储器236每个都可以是适合存储计算机可读数据的任何设备。示例包括,但不限于,半导体存储器设备,诸如EPROM、EEPROM、SRAM和闪存存储器设备。在一些实施方式中,存储器236是三态内容可寻址存储器(TCAM)。在一些实施方式中,网络设备230的存储器236包括专用于在分组流遍历网络设备230时缓冲该分组流的存储器。网络设备230可以具有任意数目的存储器设备236。SDN控制器220可以具有任意数目的存储器设备246。

图3A、3B和3C是可以由网络设备用来识别分组的出站端口的转发表的示例。

图3A图示简化转发表310。表310中的每个路由条目指示匹配模式316和转发指令318。通过应该使用对应的转发指令318(例如,“沿路径A转发”)处置的分组,满足匹配模式316(例如,“模式A”)。在一些情形中,匹配模式316匹配被定向到特定网络或自主系统的所有分组。例如,匹配模式316可以匹配分组的目的地地址的一部分且对应的转发指令318可以识别从网络设备沿朝向匹配模式316的所有网络地址的网络路径到下一条网络设备的出站端口。在一些情形中,匹配模式316仅仅匹配来自指定流的分组。转发表310中的每个路由条目利用唯一识别路由条目的索引312来图示。在一些实施方式中,转发表不具有特定索引312。

图3B利用索引332、匹配模式336和转发指令338来图示多路径路由表330。多路径路由表330包括具有相同模式336“模式A”但不同转发指令338的路由条目的多路径集合342:相应地沿着“路径A”、“路径B”和“路径C”转发。还示出附加的多路径集合344和非多路径路由条目348。相同转发表330可以用于多路径路由条目和单路径路由条目这二者。

相等成本多路径(ECMP)路由通常将到目的地的路径等价地对待。网络交换机可以通过多个等价路径中任何一个将业务转发到达相同目的地。在ECMP的一些实施方式中,如果对于相同目的地在转发表330中存在多个路由条目的话,则网络设备在多个路径间将业务分发到目的地。存在可以分发业务的若干方式。例如,网络设备可以简单地循环访问路由条目,使得每个分组采用不同路径。在一些实施方式中,通过网络设备的每个新的流被指派给特定路径。本方法在不同路径选项间分发不同的流,同时沿相同路径发射单个流的不同分组。在一些这样的实施方式中,每个分组的报头信息的一部分是散列的且散列结果的最不重要位被用来识别分组的路由条目,例如通过索引332。报头信息的部分被选择为使得相同流的分组将生成相同散列值。例如,在一些实施方式,表示目的地地址和协议类型的报头位被散列。图3B中所图示的多路径转发表330包括多路径集合344,所述多路径集合344具有用于“模式B”的匹配模式336的两个路径。作为通过集合344中的路径分发流的简化示例,模式B所匹配的流的分组报头可以被散列。在这个示例中,如果散列值是偶数,模式B的具有索引“1344”的路由条目被用于沿着路径D发射分组,且如果散列值是奇数,模式B的具有索引“1345”的路由条目被用于沿着路径E发射分组。

还有可能通过使用加权成本多路径(WCMP)路由来支持其他之上的一些路由路径。实现WCMP的一种方式是在具有相同路径的多路径集合中录入附加的路由条目。例如,路径D可能具有路径E的两倍的带宽容量,且因此应该被用到两倍多。多路径集合344可以利用重复用于路径D的匹配模式336和转发指令338(条目索引“1344”)的附加条目(未示出)来被扩展。网络业务随后在三个路由条目间被分发,导致使用路径D的业务与路径E相比是两倍多。这个加权成本多路径集合可以被表示为“{Dx 2,Ex 1}”或简单的“{2,1}”。但是,转发表中的多路径集合的扩展表示可以消耗分配到转发表的存储器的显著部分。

图3C图示具有加权路由条目的多路径路由表350。多路径路由表350被示出具有索引352、匹配模式356和转发指令358。多路径路由表350包括具有相同模式356“模式A”的路由条目的多路径集合362,但是具有三个可能的转发指令358:相应地沿着用于子集364的“路径A”、用于子集366的“路径B”和用于子集368的“路径C”转发。还示出了附加多路径集合374和非多路径路由条目376;这些相应地与图3B中所示出的集合344和348相对应。仍参看图3C,相同转发表350可以用于多路径路由条目和单路径路由条目二者。

图3B和3C证明路径加权的次要变化会对转发表造成剧烈影响。图3B中的多路径集合342与三个路径A、B和C(例如,参看图1,三个路径144、146和148)相对应。每个路径具有权重使得它们都相等。图3C中的多路径集合362与相同的三个路径A、B和C相对应,但第三路径(路径C),具有略微减少的权重。该变化将导致路径C处置比路径A或路径B少三分之一的业务。在图3C中所示的多路径转发表350中,有三个用于路径A的路由条目364,以及三个用于路径B的路由条目366,但只有两个用于路径C的路由条目368。也就是,路径A和路径B具有的权重为3/8=0.375,而路径C具有的权重为2/8=0.250。但是,多路径集合362使用多路径表350中的八个条目{3,3,2},而多路径集合342仅使用了多路径表330中的三个条目{1,1,1}。

图4是知道前缀的WCMP群组减少的方法400的流程图。方法400开始于路由管理器在转发表中识别一个或多个多路径集合,每个多路径集合超过最小数目的路由条目,例如具有三个或更多路由条目的集合(阶段410)。对于所识别的多路径集合中的每个,路由管理器获得与经由多路径集合发射的网络业务的重要性相对应的分数(阶段420)。路由管理器随后基于所获得的分数而为每个所识别的多路径集合生成一个或多个潜在替换集合(阶段430)。路由管理器比较可能的替换集合(阶段440)且选择满足表条目减少目标和网络性能标准的一个或多个潜在替换集合(阶段450)。路由管理器随后在转发表中用对应的所选择的替换集合的路由条目来替换一个或多个多路径集合的路由条目(460)。参看图2,在一些实施方式中,路由管理器是SDN控制器220或者被包括作为SDN控制器220的一部分。

参看图4,更详细地,方法400开始于路由管理器在转发表中识别一个或多个多路径集合,每个多路径集合超过最小数目的路由条目(阶段410)。例如,如果路由条目的最小数目是五,则只有六个或更多条目的集合将符合减少的目标。如果路由条目的最小数目是二,则只有三个或更多条目的集合将符合减少的目标。为了所识别的多路径集合所使用的减少表中条目数目的目标,路由管理器识别转发表中的多路径集合。在一些实施方式,方法400以周期间隔执行。在一些实施方式中,在转发表充满多于阈值数目的条目时执行方法400。在一些实施方式中,方法400由管理员启动。

对于所识别的多路径集合中的每个,路由管理器获得与经由多路径集合发射的网络业务的重要性相对应的分数(阶段420)。在一些实施方式中,该分数是业务减少成本度量的一部分。在一些实施方式,路由管理器基于所发射的分组的类型来维持分数(“重要性分数”)。在一些实施方式中,使用具体协议的流被认为比其他流更重要。例如,在一些实施方式中,使用状态性传输层协议的网络传输被认为比使用无状态传输层协议的传输更重要。状态性传输层协议的示例包括,但不限于,传输控制协议(TCP)、数据报拥塞控制协议(DCCP)和流控制传输协议(SCTP)。无状态传输层协议的示例是用户数据报协议(UDP)。在一些实施方式中,超过大小限制的流被认为比其他网络传输更重要。在一些实施方式中,源和/或目的地网络地址(或网络地址前缀)被用于识别网络业务是否重要。在一些实施方式中,寻址到特定网络地址或网络地址范围的网络分组被认为比其他网络传输更重要(或更不重要)。在一些实施方式中,重要性分数是测量在一段时间期间发射的网络业务的重要性的累积分数。在一些实施方式中,经由多路径集合发射的数据量影响重要性分数。在一些实施方式,重要性分数是指示重要或不重要的布尔值。在一些实施方式中,重要性分数是数字值。

路由管理器随后基于所获得的分数来生成用于每个所识别的多路径集合的一个或多个潜在替换集合(阶段430)。在一些实施方式中,如果多路径集合具有相比较而言低的重要性的分数,或者如果分数指示多路径集合不重要,路由管理器使用图5中所图示的方法500来选择用于不重要的多路径集合的不同路由条目的最小集合。在一些实施方式中,对于加权成本多路径(WCMP)集合,通过将WCMP集合转换为相等成本多路径(ECMP)集合来生成潜在替换集合。例如,{4,4,2,1}的WCMP集合可以平面化(flattened)为{1,1,1,1}。在一些实施方式中,对于WCMP集合,一个或多个较低权重的路径被从集合中移除。例如,{4,4,2,1}的WCMP集合可以被转换为{4,4,2},其被分解为{2,2,1}。这可以重复,例如进一步将{2,2,1}减少到{1,1}。在一些实施方式中,通过移除一个或多个路径且通过将剩余路径平面化为ECMP集合而修改WCMP集合,其中,集合中的每个路径只被表示一次。例如,{4,4,2,1}的WCMP集合可以被减少为{1,1,1}。

路由管理器比较可能的替换集合(阶段440)且选择满足表条目减少目标和网络性能标准的一个或多个潜在替换集合(阶段450)。每个潜在替换集合,如果替代对应的多路径集合来使用的话,将减少所使用的转发表条目的数目。如果替代对应的多路径集合来使用的话,每个潜在替换集合还将使用具有降低网络性能的多路径集合来提供网络业务。例如,如果从多路径集合中移除路径,业务将失去对由所移除的路径所贡献的带宽的访问。该损失可能因为其他因素而偏移。网络性能的潜在变化被测量作为业务减少成本度量。

在一些实施方式中,网络性能的潜在变化由在阶段420中所获得的重要性分数来加权。也就是,低重要性或中度重要性业务可能更可接受的是遭受网络性能上的特定变化,而高重要性业务更不可接受的是遭受网络性能上的相同特定变化。

阶段440处的比较可以包括以下一个或多个:比较与相同多路径群组相对应的路由条目的至少两个不同的替换集合;比较与至少两个不同多路径群组相对应的路由条目的替换集合;以及比较路由条目的多个替换集合的至少两个聚合,每个路由条目与多个多路径群组相对应。

在一些实施方式中,路由管理器比较可能性并且选择(阶段450)潜在替换集合中的一个或多个,使得至少目标数目的转发表路由条目被释放,这对网络性能造成可接受的低影响。在一些实施方式中,路由管理器使用多个多路径集合间的替换的组合以便达到表减少目标。在一些实施方式中,路由管理器计算可能因为使用潜在替换集合中的一个或多个而造成的可能的带宽损失,并且使用这些计算的结果来确定在阶段450处选择哪些潜在替换集合。在一些实施方式中,路由管理器将可归因于所选择的一个或多个潜在替换集合的期望带宽损失报告给网络监视器。

作为说明性的示例,参看图1和3C,所图示的通过中间网络130的路径144、146和148是多路径集合。它们在多路径转发表350中被表示为多路径集合362,即{3,3,2}。路径A 144和路径B 146使用第一边缘设备124,而路径C 148使用第二边缘设备126。两个边缘设备124和126可能链接到不同的中间网络130或者可能具有使得路径C 148以比路径A或路径B更低容量操作的其他实施方式特性。多路径集合{3,3,2}使用多路径转发表350中的八个条目。在一些实施方式中,方法400可以通过丢弃第三路径(即路径C)而生成{1,1}作为对{3,3,2}的潜在替换集合。这个潜在替换集合将只使用多路径转发表中的两个条目,导致6个更少的表条目。但是,移除路径C导致路径C所贡献的网络容量的损失。特别是,路径C贡献了八个路由选项中的两个(25%),在从多路径集合中移除路径C后,这两个选项将不可用。在一些实施方式中,多路径集合与用于与通过特定多路径集合发射的业务相关联的重要性度量的值相关联。例如,在一些这样的实施方式中,重要性度量的值是来自阶段420的重要性分数。在一些实施方式中,每个潜在替换集合被指派影响分数,该影响分数等于用于重要性度量的值乘以所移除的路由选项的百分比。继续将{3,3,2}减少到{1,1}的示例,假设经由多路径集合发射的业务具有重要性值X,影响分数将是X乘以0.25。在一些实施方式中,该影响分数与转发表中用于对多路径群组的一些(或全部)其他可能减少的分数相比较,然后选择具有最低影响分数的群组替换(或群组替换的组合)。

作为示例场景,可能存在被表示为群组G1、G2和G3的三个WCMP集合,每个都携带匹配四种模式P1、P2、P3和P4之一的网络流。每个模式的网络业务与对应重要性分数相关联:CP1=32,CP2=3,CP3=3,CP4=8。模式P1所匹配的流使用多路径集合G1,{2,2,2,2,1,1}的网络路由;模式P2或P3所匹配的流使用多路径集合G2,{3,3,2,2}的网络路由;以及模式P4所匹配的流使用多路径集合G4,{3,3,3,1}的网络路由。该示例场景下面在表1中示出。减少这些WCMP集合(G1,G2和G3)的两个示例下面在表2和3中示出。在表2中,目标是释放转发表中至少五个条目。在表3中,目标是释放转发表中至少十二个条目。

表1:用于减少示例的WCMP集合

表2,如下所示,图示了用于示例的减少选项中的一些,其中,目标在于释放转发表中的至少五个条目。多路径集合G1,{2,2,2,2,1,1}可以被集合{1,1,1,1}所替换,集合{1,1,1,1}表示忽略了两个最低权重路径且相等地对待剩余路径的集合。结果在于从转发表释放六个条目,同时只丢失十个路由选项中的两个。由业务的重要性来加权百分之二十容量损失(即,用于将业务路由到多路径群组的模式所匹配的网络流的重要性分数的和)以生成加权减少影响分数6.4。多路径集合G2{3,3,2,2}可以被集合{1,1,1,1}所替换,所述集合{1,1,1,1}表示保留所有路径且相等地对待它们的集合。结果在于从转发表释放六个条目,同时仅丢失路由选项的百分之二十。由匹配模式P2的业务和匹配模式P3的业务的重要性来加权百分之二十的容量损失,以生成加权减少影响分数1.2。多路径集合G3{3,3,3,1}可以被集合{1,1,1}所替换,集合{1,1,1}表示忽视了最低权重路径且相等地对待剩余路径的集合。结果在于从转发表中释放七个条目,同时仅丢失路由选项的百分之十。加权减少影响分数是0.8,其是三个选项中的最低的影响分数。因此,选择三个选项中的第三选项。

表2:WCMP减少示例1

表3,如下所示,图示了用于示例的减少选项中的一些,其中,目标在于释放转发表中的至少十二个条目。多路径集合G1,{2,2,2,2,1,1}可以被集合{1,1,1,1}所替换,如示例1中,或者甚至被更小的多路径集合{1,1,1},{1,1}或{1}所替换,其中每个表示忽略了附加路径的集合。但是,单独来看,这些选项中没有一个释放转发表中的十二个条目。对于多路径集合G2{3,3,2,2}和对于多路径集合G3{3,3,3,1}的替换选项也是这样的。但是,具有最低影响分数的两个选项的组合释放了转发表中的十三个条目,从而实现了目标。在一些实施方式中,如果不存在单个选项来将在转发表中所使用的条目的数目减少目标数目,则路由管理器将把目标数目分成两个或更多部分目标,所述部分目标的总和为原始目标。例如,从转发表中移除十二个条目的目标可以通过尝试移除六个条目,然后尝试再移除六个条目来实现。也就是,(12)的目标将被分为(6,6)的目标。在一些实施方式中,尝试多个可能的分割,例如(6,6)、(7,5)、(8,4)、(4,4,4)、(5,4,3)等等。在表3中所示的示例中,对释放六个条目的替换集合的搜索将导致选择{1,1,1}来替换G3,而对释放附加的六个条目的替换集合的搜索将导致选择{1,1,1,1}来替换G2。替换集合的这个组合导致从转发表中减少十三个条目,满足释放十二个条目的原始目标。

表3:WCMP减少示例2

在一些实施方式中,在所有可能的替换集合或者约束参数集合内的所有可能的替换集合间,执行穷尽的比较。在一些实施方式中,穷尽的比较限制于生成作为候选替换集合的可能的替换集合的子集。例如,在一些实施方式中,多路径替换集合的选项只针对WCMP集合而生成,所述WCMP集合用于携带具有低于阈值的重要性分数的业务。在一些这样的实施方式中,阈值递增,直到可行选项被识别。在一些实施方式中,穷尽比较包括比较替换集合的潜在组合。例如,替换集合的组合用于表3所图示的示例中。

参看图4,路由管理器随后在转发表中用对应的所选择的替换集合的路由条目来替换一个或多个多路径集合的路由条目(460)。在一些实施方式中,路由管理器生成新的转发表,所述新的转发表具有所选择的替换多路径集合,且忽略对应的所替换的集合。

图5是未用于发射重要网络业务的多路径集合的WCMP群组减少的方法500的流程图。类似于方法400,方法500开始于路由管理器识别转发表中具有超过最小数目的路由条目的多路径集合(阶段510)。路由管理器确定所识别的多路径集合不被用于携带重要网络业务(阶段520)且选择用于多路径集合的不同路由条目的最小集合(阶段530)。路由管理器随后从转发表中移除并非所选择的条目的多路径集合中的所有其他路由条目(阶段540)。

更详细地参看图5,方法500开始于路由管理器在转发表中识别具有超过最小数目路由条目的多路径集合(阶段510)并且确定所识别的多路径集合不用于携带重要网络业务(阶段520)。这是图4中所示的阶段410和420的特殊情况,其中,转发表中具有超过最小数目(例如两个)的路由条目的多路径集合被识别为不携带业务或只携带低重要性的业务。

仍然详细地参看图5,路由管理器选择多路径集合的相异的路由条目的最小集合(阶段530)。在一些实施方式中,最小集合是两条路由。在一些实施方式中,使用更大的最小集合。路由管理器选择与不相同路径相对应的路由条目,使得得到的替换多路径集合具有路径相异性。在一些实施方式中,路由管理器选择最高权重的不相同路径以便包括在最小集合中。在一些实施方式中,路由管理器计算由于移除或替换各种路由条目而造成的潜在带宽损失,并且选择与可接受的带宽减少水平相关联的路由条目。在一些这样的实施方式中,选择最小化了带宽的损失。在一些实施方式中,路由管理器将归因于所选择的一个或多个潜在替换集合的期望带宽损失报告给网络监视器。在一些实施方式中,路由管理器随机地,或者根据另一选择标准,选择不相同路径。在一些实施方式中,阶段530处的选择类似于参考图4中所示的方法的阶段450所描述的选择。

仍参看图5,路由管理器随后更新转发表以用所选择的相异的路由的最小集合来替换多路径路由集合(阶段540)。路由管理器从转发表中移除用于非所选择的条目的多路径集合的所有其他路由条目。

图6是适合于用来实现本文所述的计算机化的组件的计算系统910的框图。在宽泛的概览中,计算系统910包括用于根据指令执行动作的至少一个处理器950,以及用于存储指令和数据的一个或多个存储器设备970和/或975。所图示的示例计算系统910包括经由总线915与存储器970,以及与至少一个网络接口控制器920相通信的一个或多个处理器950,所述至少一个网络接口控制器920具有用于连接到外部网络设备924(例如加入网络(诸如图1中所示的网络110、130和150))的网络接口922。一个或多个处理器950还经由总线915与在一个或多个I/O接口930处的任何I/O设备以及任何其他设备980相通信。所图示的处理器950合并,或者直接连接到,高速缓存存储器975。一般地,处理器将执行从存储器所接收的指令。

更详细地,处理器950可以是处理指令的任何逻辑电路,例如取自存储器970或高速缓存975的指令。在许多实施例中,处理器950是微处理器单元或专用处理器。计算设备910可以基于任何处理器,或者处理器的集合,能够如本文中所述地操作。处理器950可以是单核或多核处理器。处理器950可以是多个处理器。

存储器970可以是适于存储计算机可读数据的任何设备。存储器970可以是具有固定储存器的设备或者用于读取可移动存储介质的设备。示例包括所有形式的非易失存储器、介质和存储器设备、半导体存储器设备(例如,EPROM、EEPROM、SDRAM以及闪存存储器设备)、磁盘、磁光盘以及光盘(例如,CD ROM、DVD-ROM和盘)。计算系统910可以具有任意数目的存储器设备970。

高速缓存存储器975通常是计算机存储器的形式,其诶置于与处理器950接近以便快速读取时间。在一些实施方式中,高速缓存975是处理器950的一部分或与处理器950处于相同芯片上。在一些实施方式中,存在多等级的高速缓存975,例如L2和L3高速缓存层。

网络接口控制器920管理经由网络接口922的数据交换。网络接口控制器920处置用于网络通信的OSI模型的物理层和数据链路层。在一些实施方式中,网络接口控制器中一些的任务是由处理器950处置的。在一些实施方式中,网络接口控制器920是处理器950的一部分。在一些实施方式中,计算系统910具有多个网络接口控制器920。在一些实施方式中,网络接口922是对物理网络链路的连接点,例如RJ 45连接器。在一些实施方式中,网络接口控制器920支持无线网络连接且接口端口922是无线接收器/发射器。一般地,计算设备910与其他计算设备924经由到网络接口922的物理或无线链路交换数据。在一些实施方式中,网络接口控制器920实现诸如以太网的网络协议。

其他计算设备924经由网络接口端口922连接到计算设备910。其他计算设备924可以是对等计算设备、网络设备或者具有网络功能的任何其他计算设备。例如,计算设备924可以是将计算设备910连接到诸如互联网的数据网络的网络设备,诸如集线器、桥接器、交换机或路由器。

在一些使用中,I/O接口930支持输入设备和/或输出设备(未示出)。在一些使用中,输入设备和输出设备被集成到相同硬件内,例如在触摸屏中。在一些使用中,诸如在服务器场境中,没有I/O接口930或者不使用I/O接口930。在一些使用中,附加的其他组件980与计算系统910通信,例如,经由通用串行总线(USB)连接的外部设备。

其他设备980可能包括I/O接口930、外部串行设备端口以及任何附加的协同处理器。例如,计算系统910可能包括接口(例如,通用串行总线(USB)接口),其用于将输入设备(例如键盘、麦克风、鼠标或其他指针设备)、输出设备(例如视频显示器、扬声器、可刷新盲文终端、或打印机)或者附加存储器设备(例如便携闪存驱动器或外部媒体驱动器)相连接。在一些实施方式中,I/O设备被合并到计算系统910中,例如平板设备上的触摸屏。在一些实施方式中,计算设备910包括附加的设备980,诸如协同处理器,例如数学协同处理器,其能够帮助处理器950进行高精度或复杂的计算。

主题的实施方式和本说明书中所述的操作可以在数字电子电路中实现,或者在体现于有形介质上的计算机软件、固件或硬件中实现,包括在本说明书中公开的结构及其结构等价物,或者以上一个或多个的组合。本说明书中所述的主题的实施方式可以实现为嵌入在有形介质上的一个或多个计算机程序,即计算机程序指令的一个或多个模块,所述指令编码于一个或多个计算机存储介质上,以便由数据处理装置执行,或者控制数据处理装置的操作。计算机存储介质可以是计算机可读存储设备、计算机可读存储基底、随机或连续存取存储器阵列或设备、或者以上一个或多个的组合,或者包括在其中。计算机存储介质还可以是一个或多个单独的组件或介质(例如,多个CD、盘、或其他存储设备),或者包括在其中。计算机存储介质可以是有形的且非暂时性的。

本说明书中所述的操作可以被实现为由数据处理装置针对存储在一个或多个计算机可读存储设备上或从其他源所接收的数据所执行的操作。处理和逻辑流程也可以由专用逻辑电路执行,且装置也可以被实现为专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。

尽管本说明书包含许多具体实施方式细节,这些内容不应该被视为对任何发明或所要求保护的范围的限制,而是对特定发明的特定实施方式的具体特征的描述。本说明书中在分别的实现环境中所述的特定特征还可以在单个实施方式的组合中实现。反之,单个实现环境中描述的各种特征也可以分别在多个实施方式中实现或者在任何适当子组合中实现。而且,尽管特征可能如上所述在特定组合中作用,甚至最初就是这样要求保护的,来自所要求保护的组合的一个或多个特征可以在一些情况下被从组合中去除,且所要求保护的组合可以被定向到子组合或子组合的变型。

对“或”的引用可以被解释为包括,使得使用“或”来描述的任何术语可能表示单个、一个以上以及所有所述术语中的任何一个。标签“第一”、“第二”、“第三”等等不必意味着表示次序,通常仅仅用来区分相同或类似的项或元素。

因此,已经描述了主题的特定实施方式。其他实施方式在所附权利要求的范围内。在一些情况下,权利要求中所述的动作可以以不同次序来执行且仍旧取得想要的结果。此外,附图中所描绘的处理不必要求所示的特定次序或者顺序的次序来获得想要的结果。在特定实施方式中,可以利用多任务或并行处理。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1