用于加权成本多路径包处理的方法和装置与流程

专利2022-05-09  180


本发明大体来说涉及包处理,且更具体来说涉及在包处理装置中提供加权成本多路径。



背景技术:

在包处理装置(例如,网络交换机及路由器)中,多个外向链路的负载平衡是在数据中心、高性能计算集群及其它高要求环境中实现高效网络操作所必需的一项功能。达到负载平衡的一种方法是提供相等成本多路径,此意在为每一外向链路设置相等的优先级。然而,当在网络中链路速度不同或者链路发生故障时,相等成本多路径并不理想。



技术实现要素:

在一个方面中,本申请案提供一种方法,所述方法包括:接收网络包以通过网络交换机装置的一定数目个路径中的一者路由;经由应用于所述网络包的第一函数从与所述一定数目个路径对应的多个记录选择一个记录,其中所述多个记录中的每一者包含阈值、第一路由索引及第二路由索引;经由应用于所述网络包的第二函数确定在预定义值范围内的路由值;基于所述路由值是否达到所述选定记录的所述阈值来从所述选定记录选出所述第一路由索引或所述第二路由索引;及基于所述所选出的路由索引来通过所述网络交换机装置的所述一定数目个路径中的所述一者路由所述网络包。

在另一方面中,本申请案提供一种网络交换机装置,所述网络交换机装置包括:多个端口,其对应于一定数目个路径;存储器,其存储与所述一定数目个路径对应的多个记录,其中所述多个记录中的每一者包含阈值、第一路由索引及第二路由索引;一或多个处理组件,其经配置以:接收网络包以通过所述一定数目个路径中的一者路由;经由应用于所述网络包的第一函数从所述多个记录选择一个记录;经由应用于所述网络包的第二函数确定在预定义值范围内的路由值;基于所述路由值是否达到所述选定记录的所述阈值来从所述选定记录选出所述第一路由索引或所述第二路由索引;及基于所述所选出的路由索引来通过所述一定数目个路径中的所述一者路由所述网络包。

在另一方面中,本申请案提供一种包括指令的非暂时性存储媒体,所述指令在由一或多个处理器读取时使得进行包括以下操作的方法:接收网络包以通过网络交换机装置的一定数目个路径中的一者路由;经由应用于所述网络包的第一函数从与所述一定数目个路径对应的多个记录选择记录,其中所述多个记录中的每一者包含阈值、第一路由索引及第二路由索引;经由应用于所述网络包的第二函数确定在预定义值范围内的路由值;基于所述路由值是否达到所述选定记录的所述阈值来从所述选定记录选出所述第一路由索引或所述第二路由索引;及基于所述所选出的路由索引来通过所述网络交换机装置的所述一定数目个路径中的所述一者路由所述网络包。

附图说明

结合以下图式进行考量,参考以下详细说明时可更充分地了解本发明的各种目标、特征及优点,在附图中相似的参考编号标识相似的元件。以下图式仅出于说目的,且不旨在限制本发明,本发明的范围在随附权利要求书中加以陈述。

图1a描绘根据本技术的各个方面的可实施加权成本多路径的实例性网络环境。

图1b描绘根据本技术的各个方面的可实施加权成本多路径的实例性网络拓扑。

图2a描绘根据本技术的各个方面的用于实施具有重现成员的加权成本多路径的实例性数据流图。

图2b描绘根据本技术的各个方面的用于产生映射以利用两道次选择实施加权成本多路径的实例性过程。

图2c描绘根据本技术的各个方面的产生映射以利用两道次选择实施加权成本多路径的替代实例性过程。

图2d描绘根据本技术的各个方面的利用两道次选择实施加权成本多路径的实例性数据流图。

图3描绘根据本技术的各个方面的利用两道次选择基于硬件实施加权成本多路径的实例性交换机。

图4描绘根据本技术的各个方面的用于在包处理装置中提供加权成本多路径的实例性过程。

图5图解说明可实施本技术的一或多个实施方案的电子系统。

具体实施方式

虽然本文中参考特定应用的说明性实例描述本技术的各方面,但应理解本技术并不仅限于所述特定应用。所属领域的技术人员通过本文中所提供的教示将认识到在所述教示范围内的额外修改、应用及方面例以及本发明将发挥显著效用的额外领域。

根据各种实施方案,提供一种在包处理装置中提供加权成本多路径的方法。所述方法可包含接收网络包以路由通过网络交换机装置的一定数目个路径中的一者。所述方法还可包含经由应用于所述网络包的第一函数从与所述一定数目个路径对应的多个记录选择一个记录,其中多个记录中的每一者包含阈值、第一路由索引及第二路由索引。所述方法还可包含经由应用于所述网络包的第二函数确定在预定义值范围内的路由值。所述方法还可包含基于所述路由值是否达到所述选定记录的所述阈值来从所述选定记录选出所述第一路由索引或所述第二路由索引。所述方法还可包含基于所选出的路由索引将网络包路由通过所述网络交换机装置的所述一定数目个路径中的所述一者。

其它方面包含用于实施计算机实施方法的对应系统、设备及计算机程序产品。

下文参考附图详细地描述本技术的其它方面、特征及优点以及本技术的各个方面的结构及操作。

根据各种实施方案,加权成本多路径包处理利用两阶段的硬件加速选择过程。第一选择阶段可使用与加权成本多路径使用重现成员类似的过程。第二选择阶段利用成员表来根据所定义的路径权重选择路径,其中成员表的大小被良好地界定为与所期望的加权准确性、可用路径数目及不同路由前缀的群组的数目成比例。此使得能够快速地更新成员表以反映不断发生改变的网络条件,同时避免重现成员原本所需的自由空间管理等待时间。此外,与使用重现成员的成员表相比,成员表的存储器占用明显减小,特别是对于在通常在企业网络中看到的极其不平衡权重来说。因此,可按照具成本效益的方式利用可搜索存储器及其它专门硬件结构。由于在成员表中使用的数据大小可经缩放以达到加权准确性的误差阈值,因此两阶段选择过程可灵活地适应各种数据中心应用及网络拓扑的需要。

图1a描绘根据本技术的各个方面的可实施加权成本多路径的实例性网络环境100。并不是所有的所描绘组件皆可用于所有实施方案中,然而,且一或多个实施方案可包含额外组件或与图中所展示的组件不同的组件。可做出组件的布置及类型的变化,而这不背离本文中所陈述的权利要求书的精神或范围。可提供额外组件、不同组件或更少的组件。

网络环境100包含经由网络交换机104连接的一或多个电子装置102a到102c。电子装置102a到102c可连接到网络交换机104,以使得电子装置102a到102c可能够经由网络交换机104彼此通信。电子装置102a到102c可经由配线(例如,以太网缆线)或无线地连接到网络交换机104。网络交换机104可以是及/或可包含下文关于图1b所论述的网络交换机及/或下文关于图5所论述的电子系统的全部或一部分。呈现电子装置102a到102c作为实例,且在其它实施方案中,其它装置可替代电子装置102a到102c中的一或多者。

举例来说,电子装置102a到102c可以是计算装置,例如膝上型计算机、桌上型计算机、服务器、外围装置(例如,打印机、数字相机)、移动装置(例如,移动电话、平板计算机)、静态装置(例如,机顶盒)或能够经由网络进行通信的其它适当装置。在图1a中,举例来说,将电子装置102a到102c描绘为网络服务器。电子装置102a到102c还可以是网络装置,例如其它网络交换机等。

网络交换机104可针对上行链路实施加权成本多路径。下文关于图1b进一步论述实施本发明系统的实例性网络交换机104a到104h,且下文关于图4进一步论述网络交换机104a到104h实施本发明系统的实例性过程。

网络交换机104可实施加权成本多路径,所述加权成本多路径是指一种其中可个别地给上行链路或外向链路加权以与每一链路成比例地引导网络业务量的负载平衡技术。为在硬件中实施加权成本多路径以达到最好的性能及低等待时间,期望存在查找时间迅速的数据结构。一项此种基于硬件的方法使用根据成员的权重重现所述成员的成员表,如下文关于图2a进一步描述。此允许通过对成员表使用公平选择算法(例如,散列函数)快速地选择外向链路。然而,此方法引入了关于数据结构大小及表更新时间的问题,这是由于重现的成员产生难以管理的大小可变的表群组。此外,难以提供足够的加权准确性来支持权重十分不均匀的大数目个链路,这是使用数据中心互连(dci)及其它高带宽链路的数据中心网络的常见情景。

为解决上述缺点,描述两道次选择方法。将成员表界定为包含三个字段:阈值、第一路由索引及第二路由索引。成员表包含与所述一定数目个路径或外向链路对应的多个记录。第一公平选择算法从所述成员表选择记录,且第二选择算法选择与阈值相当的路由值以选择第一路由索引或第二路由索引。然后,可根据选定路由索引来路由网络包。路由值的值范围可处于预定范围内,所述值范围可根据所期望的加权误差阈值来设定。还论述对成员表中的链路权重进行编码的数个实例性方法。

通过使用两道次选择方法,能良好地界定成员表中的群组大小,且所述群组大小不会与权重成比例地增大。此允许高效地存储成员表以支持大量的群组及链路。此外,由于可变大小的表群组的管理不再是必需的,因此可持续地施行表更新(例如,由于权重改变)。当可使用硬件加速设计实施两道次选择时也能维持性能,如下文关于图3所展示。

图1b描绘根据本技术的各个方面可实施加权成本多路径的实例性网络拓扑101。如网络拓扑101中所展示,交换机104a、104b、104c及104d可连接到数个相应的装置102a、102b、102c及102d。此外,每一交换机104a到104d可按照一对多配置连接到上游交换机或交换机104e到104h。举例来说,每一交换机104a到104d可路由到交换机104e、104f、104g及104h中的任一者。数个交换机层可在大型数据中心的完整网络内按照此方式连接。然而,为简单起见,网络拓扑101可仅图解说明此网络的一小部分。此外,交换机、装置及链路的具体数目可根据具体用例要求而变化。

当所有网络链路以相同的速度操作且传送数据时,则相等成本多路径可提供令人满意的性能以使网络拓扑101中的上行链路达到负载平衡。然而,网络可能会遇到包处理瓶颈、链路及装置出故障及不同交换机上的不同上行链路之间带宽容量各有不同。在此情形中,相等成本多路径可不再提供令人满意的性能来实现负载平衡。

举例来说,交换机104f的上行链路可出故障,如图1b中的x标记所指示。为避免瓶颈,应将较少的网络包发送到交换机104f,这是因为与各自具有两个可用上行链路的交换机104e、104g及104h相比,交换机104f的带宽处理容量减小。在此实例中,可给交换机104e到104h指定相应的权重2、1、2及2。交换机104f的权重较低反映出经由交换机104f遍历路径的成本较高,交换机104f仅具有一个可用的上行链路。当交换机104a到104d或交换机104e到104h决定如何将包路由到可用的上行路径时,可使用依成本指定的权重来将包分配到多个路径,从而实施加权成本多路径以避免交换机104f处的瓶颈。

图2a描绘根据本技术的各个方面的用于实施使用重现成员的加权成本多路径的实例性数据流200。数据流200包含包标头210、最长前缀匹配(lpm)表220、散列函数230、模数函数235、权重240a、权重240b及多路径成员表250。

参考图1b,交换机104a可从装置102a接收网络包以供路由到目的地。网络包可包含包标头210,包标头210可包含数个数据字段。举例来说,所述字段可包含呈“1.1.1.0”的“src_ip”,其识别装置102a是具有地址1.1.1.0的源。虽然在此实例中使用因特网协议版本4(ipv4)地址,但还可利用因特网协议版本6(ipv6)或其它协议。字段还可包含呈“1.1.1.1”的“dst_ip”,其识别目的地地址。包标头210中可存在未具体展示的其它字段。

可使用来自包标头210的目的地地址或呈“1.1.1.1”的“dst_ip”来查询lpm表220,以确定在多路径成员表250中使用的正确群组。举例来说,由于目的地“1.1.1.1”包含在ip前缀“1.1.1.0/24”中,因此可确定“1.1.1.1”与作为最长前缀匹配的“1.1.1.0/24”匹配。如果lpm表220内的较短ip前缀(例如,“1.1.0.0/16”(未展示))中也包含所述目的地,那么选择最长前缀匹配。由于ip前缀“1.1.1.0/24”在lpm表220中是第二条目,因此这意味着将在多路径成员表250中使用第二群组或“群组1”。如lpm表220中所展示,识别到“群组1”是以索引4开头且大小为20个记录或以索引23结束。

包标头210中的字段可被组合且输入到散列函数230中,此会产生固定大小的数目,例如16位整数。由于散列函数230可经配置以逼近均匀分布,因此可使用散列函数230通过进一步使用模数函数235来逼近公平选择算法以将散列值限制到所期望的范围。如数据流200中所展示,选定群组1的表大小或20可用作模数值以施加到散列函数230的输出。在一些情形中,举例来说,当范围是二次幂时,可使用简单的位移位、掩码或其它二进制运算实施模数函数235。因此,在一些实施方案中,可将lpm表220中的表大小对准到二次幂边界,可必须对超过预定最小大小的大小执行此对准。

多路径成员表250包含群组0及群组1,群组0及群组1各自对应于lpm表220中的第一条目及第二条目。具有前缀1.1.2.0/24的群组0可对权重240a进行编码。如权重240a中所展示,为每一外向端口1到4指定相等的权重1,权重1对应于总权重的1/4。另一方面,在权重240b中,分别为每一外向端口1到4指定不同的权重5、8、3及4,其对应于总权重(5 8 3 4=20)的5/20、8/20、3/20及4/20。如多路径成员表250内的群组1中所展示,通过根据成员条目的权重重现所述成员条目来表示这些权重。举例来说,权重为8的端口2从索引9到索引16重现8次。

因此,当散列函数230产生16位整数值时,然后经由模数函数235将所述16位整数值窄化到0到19的范围且与表开始索引4相加,可以大约公平的几率选择索引4到索引23中的任一者。由于已在多路径成员表250的群组1中通过重现成员对权重240b进行编码,因此此公平几率的选择将自动地实施加权成本多路径。

虽然图2a中所描述的数据流200可容易在高性能硬件中实施,但重现成员的使用存在数个缺陷。由于表的大小会随权重而缩放,因此难以高效地表示大数目个外向端口的不平衡权重。举例来说,数据中心互连(dci)链路可需要与其它链路成比例的非常大的权重,从而使得加权不平衡。虽然可通过将缩放比例限制到上限值来减少重现大小,但此会造成加权误差,所述加权误差对很多用例来说可能太大以至无法接受。此外,因网络条件发生改变而对权重进行的更新可需要极大的开销,这是因为新的权重可产生不同大小的表群组,而所述不同大小的表群组需要管理及重新分配。举例来说,如果群组1的大小缩小或增大,那么在群组1之后的其它群组可需要重新定位到可用的自由空间中,这会触发高等待时间写入操作。可用的自由空间也可能是有限的,特别是对于用于路由结构(例如,多路径成员表250)的高速存储器来说。为避免以上缺陷,下文描述替代性的两道次选择方法。

图2b描绘根据本技术的各个方面的用于产生映射242d以利用两道次选择实施加权成本多路径的实例性过程。图2b包含映射242a、242b、242c及242d以及图表270a、270b、270c及270d。图表270a到270d可以图表形式表示相应的映射242a到242d。

返回参考图2a,多路径成员表250包含两个字段:表索引及路由索引或端口编号。由于可根据数据偏移推测表索引,因此表数据结构可省略表索引的显式字段。因此,每一记录可仅存储单个字段。在两道次选择中,此表数据结构可经修改以使得每一记录包含至少三个字段:第一路由索引、第二路由索引及阈值。在两道次选择中,第一道次可与图2a中所展示的数据流200类似地进行。然而,提供额外第二道次,其中确定路由值并将所述路由值与选定记录的阈值进行比较。基于所述比较,选择第一路由索引或第二路由索引来路由网络包。

以映射242a开头,可将待被映射的权重(例如,权重240b)直接拷贝到第一路由索引字段及阈值字段中,其中每一第一路由索引对应于经映射端口,每一第二路由索引是“dc”或“自由”值,且每一阈值对应于权重。因此,存储桶0(端口1)具有阈值5,存储桶1(端口2)具有阈值8,存储桶2(端口3)具有阈值3,且存储桶3(端口4)具有阈值4。

注意总权重t=5 8 3 4=20,且因此n个端口的权重的相等分布对应于t/n,或20/4=5。目标是将每一存储桶的权重重新平衡成相等的分布值t/n=5。此可通过将具有最大权重的存储桶的权重与具有最小权重的存储桶共享来实现,且重复此过程不超过n次直到提供相等分布为止。

通过图表270a到270c及相应的映射242a到242c展示一个此重新平衡过程。如映射242c及图表270c中所展示,每一端口的值的和对应于权重240b,且每一存储桶对应于平均或相等分布值(t/n)。

基于映射242c,可通过实行两次公平几率的选择来提供加权成本多路径:第一次选择存储桶(从4个存储桶,或0到3),第二次选择在预定范围内的路由值(从5个值,或0到4),这是基于权重的相等分布(上文所描述的t/n)。举例来说,假定选择存储桶2。在此情形中,如果路由值低于阈值3(0、1、2),那么选定端口对应于第一路由索引或端口3。如果路由值达到阈值3(3、4),那么选定端口对应于第二路由索引或端口2。

由于多路径成员表支持不同路由前缀的多个群组,期望将所有可能的路由值归一化到预定义范围以简化硬件实施方案且减小开销。此预定义范围继而可界定最大加权误差阈值,例如由于舍入误差。举例来说,为提供小于1%的加权误差阈值,可将预定义范围界定为至少8个位或256个值。

在归一化映射242c到映射242d中所展示的实例中,将值从5个值(0到4)的范围归一化成7位值的范围或128个值(0到127)的范围。注意,如果使用相同的数据大小(例如,7个位)存储阈值,那么由于最大可能值是“127”因此不可能在阈值字段中直接表示“128”。在此情形中,可将第一路由索引及第二路由索引设定为相同的值。此相等可被视为将阈值字段设定为“128”。虽然在此实例中使用7位值,但可根据准确性要求及可用的硬件资源使用任何值范围。在一些实施方案中,可使用12位值范围。

图2c描绘根据本技术的各个方面的用于产生映射242f以利用两道次选择实施加权成本多路径的替代实例性过程。图2c包含加权244a、244b、244c及244d、映射242e及242f以及图表272a、272b、272c及272d。

在图2c中,不以加权及重新平衡开始,而是逐个地填充每一存储桶直到产生映射。因此,针对将被填充的每一存储桶,可识别具有最大权重的端口及最小权重的端口并将所述端口添加到存储桶。如果整个存储桶可仅填充有最大权重,那么整个存储桶被填充,如图表272a及图表272b中所展示。或者,可共享最大权重及最小权重,赋予最大权重优先级,如图表272c及图表272d中所展示。所得的映射被展示为映射242e,映射242e可被归一化成映射242f的7位值。虽然映射242d与映射242f的具体排序可不相同,但当使用两道次选择时任一映射的比例最终结果是相同的。图2b及图2c中所展示的实例性方法是示范性的;还可使用其它方法来产生映射,只要对权重进行正确编码即可。

举例来说,为验证权重是否被正确地编码,当路径索引与第一个路由索引匹配时,可从阈值求和得出所有记录中每一路径索引(例如端口1到4)的权重;或者当路径索引与第二路由索引匹配时,从路由值的预定义值范围的数量(例如128)减去阈值求和得出所述权重。如果求和值与原始加权匹配,那么权重被正确地编码。

图2d描绘根据本技术的各个方面的利用两道次选择实施加权成本多路径的实例性数据流201。数据流201包含包标头210、lpm表220、散列函数230、模数函数235、权重240a、权重240b及多路径成员表260。如多路径成员表260中所展示,群组1可对应于图2c的映射242f,其对权重240b进行编码。

对图2d与图2a进行比较,可看到使用重复的多路径成员表250被替换为使用两道次选择的多路径成员表260。因此,在第一选择步骤中,依据索引4到7(群组1)选出存储桶。在第二选择步骤中,从0到127(7位范围)选出路由值,且将路由值与阈值进行比较以确定是经由第一路由索引还是第二路由索引进行路由。

由于现在表大小与用于路由的路径/端口的数目成正比,lpm表220中的表大小被清晰地界定,而不是根据经编码权重而改变。因此,即使多路径成员表260可使用比多路径成员表250多的记录字段,但由于每一群组的记录的数目是根据所支持的路径而固定,因此群组在总体上仍小得多。由于记录的数目在更新期间保持恒定,因此还可以快捷的方式完成权重更新,从而避免代价高的自由空间管理。此外,由于可使用与散列函数230及模数函数235类似的已知函数完成第二选择步骤,因此可以高效硬件加速方式施行实施方案,如下文在图3中所展示。

图3描绘根据本技术的各个方面的利用两道次选择基于硬件实施加权成本多路径的实例性交换机104a。系统300包含包标头210、散列函数230a、散列函数230b、模数函数235a、模数函数235b、多路径成员表260、路由查找310、加法器312、散列选择器332、比较器340、多路复用器(mux)380及结果390。关于图3,具有相似编号的元件可对应于图2d的相同的元件。

如图3中所展示,包标头210可进一步包含虚拟路由转发(vrf)信息,其可用于为每一耗电器(例如,图1a中所展示的每一装置102a到102d)提供单独的路由表。vrf信息可含有与图2d中所展示的lpm表220类似的路由信息。目的地ip(dip)可对应于dst_ip字段。通过此信息,路由查找310可实行与目的地ip的前缀ip匹配以确定lpm表220的多路径表索引及表大小。举例来说,假定dip1.1.1.1与ip前缀1.1.1.0/24匹配,那么多路径表索引是4且表大小是4。

还可将包标头210的一或多个标头字段输入到散列函数230a,散列函数230a可输出固定大小的值,例如16位整数。模数函数235a可根据表大小(或在此实例中,是模数4)进一步将所述值减小到具体范围,以提供0与3之间的值。使用加法器312将此值与多路径表索引或4相加。因此,选择4到7的索引。基于所述索引,可从多路径成员表260选择对应记录262。记录262包含阈值264,路由索引266(或第一路由索引)及路由索引268(或第二路由索引)。

对于第二遍选择,可将散列函数230a的输出进一步输入到另一散列函数230b中,从而得到固定大小的另一值,例如16位整数。散列选择器332可减小此值以与路由值的可能范围相匹配。举例来说,当从7位值的范围选择路由值时,散列选择器332然后可例如通过位移位或位掩码从散列函数230b的16位选择7个位。然后,比较器340对散列选择器332的输出与阈值264进行比较以确定是否满足阈值264。当不满足阈值264时,那么多路复用器380可选出路由索引266。当满足阈值264时,那么多路复用器380可选出路由索引268。然后,输出所选出的路由索引作为结果390,然后使用结果390选择路径或端口来路由与包标头210相关联的网络包。

图4描绘根据本技术的各个方面的在包处理装置中提供加权成本多路径的实例性过程400。出于阐释目的,本文中参考图1a到3以及本文中所描述的组件及/或过程描述实例性过程400的各个方框。可例如通过计算装置(包含处理器)及所述装置利用的其它组件实施过程400的方框中的一或多者。在一些实施方案中,方框中的一或多者可与其它方框分开且通过一或多个不同处理器或装置实施。此外出于阐释目的,实例性过程400的方框被描述为串行或线性地发生。然而,实例性过程400的多个方框可并行发生。另外,实例性过程400的方框无须按照所展示的次序实行,及/或实例性过程400的方框中的一或多者无须实行。

在所描绘的实例性流程图中,交换机104a接收网络包以供路由(411)。参考图1b,此可对应于交换机104a,交换机104a从装置102a接收网络包以供通过四个路径中的一者路由到(即)交换机104e、交换机104f、交换机104g或交换机104h。出于阐释目的,本文中主要参考图1b的网络交换机104a描述过程400。然而,过程400并不仅限于网络交换机104a,且过程400的一或多个方框(或操作)可通过网络交换机104a的一或多个其它组件来实行。

交换机104a可继续经由应用于网络包的第一函数从与所述一定数目个路径对应的多个记录选择一个记录,其中所述多个记录中的每一者包含阈值、第一路由索引及第二路由索引(412)。参考图2d,此可对应于交换机104a经由应用于网络包的包标头210的散列函数230及模数函数235从多路径成员表260的记录索引4到7选择一个记录。

交换机104a可继续经由应用于所述网络包的第二函数确定在预定义值范围内的路由值(413)。参考图3,此可对应于经由应用于包标头210的散列函数230b及散列选择器332确定路由值。如图3中所展示,散列函数230b的输入可以是散列函数230a,所述散列函数230b可对应于图2d的散列函数230。散列选择器332可将散列函数230b的范围减小到预定义值范围,例如7位值。

交换机104a可继续基于所述路由值是否达到所述选定记录的所述阈值来从所述选定记录选出所述第一路由索引或所述第二路由索引(414)。参考图3,此可对应于多路复用器380基于来自散列选择器332的路由值是否达到或满足阈值264从路由索引266或路由索引268选出结果390。

交换机104a可继续基于所选出的路由索引通过网络交换机装置的所述一定数目个网络路径中的一者路由网络包(415)。参考图1b,此可对应于交换机104a基于结果390通过网络路径中的一者将网络包路由到交换机104e到104h。

当发生需要改变上行链路的权重的网络事件(例如链路故障、链路速度降级、装置故障等)时,所述网络事件可使得传播讯息以使路由装置(例如,交换机104a)确定上行链路的新权重。所述讯息可直接在装置处(例如,在交换机104a处)产生或者从上游装置或下游装置传播而来。举例来说,在交换机104a上方的上游装置数个层可将链路失效事件传播到交换机104a,交换机104a改变去往上游装置的路径的权重。基于新权重,可例如使用上文关于图2b及2c所描述的过程产生多路径成员表260的一组新记录。然后这些新记录可替换旧记录以反映新加权,从而允许交换机104a适应改变的网络条件。

上文所描述的实例性过程400的很多方面以及相关的特征及应用还可以软件过程的形式来实施,所述软件过程被指定为记录在计算机可读存储媒体(还被称为计算机可读媒体)上的指令集,且可自动地执行(例如,没有用户干预)。当这些指令由一或多个处理单元(例如,一或多个处理器、处理器的核心或其它处理单元)执行时,其使得所述处理单元实行指令中所指示的动作。计算机可读媒体不包含载波及无线地或经由有线连接传递的电子信号。

术语“软件”意在在适当情况下包含存贮在只读存储器上的固件或存储在磁性存储器件中的应用,可将所述“软件”读取到存储器中以由处理器处理。此外,在一些实施方案中,本发明的多个软件方面可被实施为较大程序的子部分,而保留本发明的相异软件方面。在一些实施方案中,多个软件方面还可被实施为单独的程序。最后,一起实施本文中所描述的软件方面的单独程序的任何组合在本发明的范围内。在一些实施方案中,软件程序,在经安装以在一或多个电子系统上操作时定义一或多个具体机器实施方案,所述具体机器实施方案执行及实行软件程序的操作。

可以包含编译语言或解译语言在内的任何形式的程序设计语言来编写计算机程序(也被称为程序、软件、软件应用、脚本或代码),且可将所述计算机程序部署成任何形式,包含部署为独立程序或部署为模块、组件、子例程、对象或适合在计算环境中使用的其它单元。计算机程序可以对应于但无须对应于文件系统中的文件。程序可存储在文件的一部分中,所述文件将其它程序或数据(例如,存储在标记语言文档中的一或多个脚本)保存成专用于所讨论的程序的单个文件或保存成多个协调文件(例如,存储一或多个模块、子程序或代码的若干部分的文件)。计算机程序可经部署以在一个计算机上或在位于一个位点处或跨越多个位点分布且通过通信网络互连的多个计算机上执行。

图5图解说明可实施本技术的一或多个实施方案的电子系统500。电子系统500可以是图1b中所展示的网络交换机104a到104h,及/或可以是图1b中所展示的网络交换机104a到104h的一部分。电子系统500可包含各种类型的计算机可读媒体以及用于各种其它类型的计算机可读媒体的接口。电子系统500包含总线508、一或多个处理单元512、系统存储器504(及/或缓冲器)、rom510、永久存储装置502、输入装置接口514、输出装置接口506及一或多个网络接口516或上述各项的子组及变化形式。

总线508共同地表示所有系统、外围器件及芯片组的总线,所述总线通信地连接众多电子系统500的内部装置。在一或多个实施方案中,总线508将一或多个处理单元512与rom510、系统存储器504及永久存储装置502通信地连接。从这些各种存储器单元,一或多个处理单元512检索要执行的指令及要处理的数据以执行本发明的过程。在不同实施方案中,一或多个处理单元512可以是单个处理器或多核心处理器。

rom510存储电子系统500的一或多个处理单元512及其它模块所需的静态数据及指令。另一方面,永久存储装置502可以是读取写入存储器装置。永久存储装置502可以是即使在电子系统500断电时仍能存储指令及数据的非易失性存储器单元。在一或多个实施方案中,大容量存储装置(例如,磁盘或光盘及其对应的磁盘驱动器)可用作永久存储装置502。

在一或多个实施方案中,可移除存储装置(例如,软盘、快闪驱动器及其对应的磁盘驱动器)可用作永久存储装置502。与永久存储装置502一样,系统存储器504可以是读取写入存储器装置。然而,与永久存储装置502不同的是,系统存储器504可以是易失性读取写入存储器,例如随机存取存储器。系统存储器504可存储一或多个处理单元512在运行时可需要的指令及数据中的任一者。在一或多个实施方案中,本发明的过程存储在系统存储器504、永久存储装置502及/或rom510中。从这些各种存储器单元,一或多个处理单元512检索要执行的指令及要处理的数据以执行一或多个实施方案的过程。

总线508还连接到输入装置接口514及输出装置接口506。输入装置接口514使得用户能够将信息传达到电子系统500及选择去往电子系统500的命令。可与输入装置接口514搭配使用的输入装置可包含(举例来说)字母数字键盘及指向装置(也被称为“光标控制装置”)。举例来说,输出装置接口506可能够显示由电子系统500产生的图像。可与输出装置接口506搭配使用的输出装置可包含(举例来说)打印机及显示装置,例如液晶显示器(lcd)、发光二极管(led)显示器、有机发光二极管(oled)显示器、柔性显示器、扁平面板显示器、固态显示器、投影仪或用于输出信息的任何其它装置。一或多个实施方案可包含用作输入装置及输出装置两者的装置,例如触摸屏。在这些实施方案中,提供给用户的反馈可以是任何形式的传感反馈,例如视觉反馈、听觉反馈或触觉反馈;且可以任何形式接收来自用户的输入,包含听觉输入、语言输入或触觉输入。

最后,如图5中所展示,总线508还通过一或多个网络接口516将电子系统500耦合到一或多个网络及/或一或多个网络节点。如此一来,电子系统500可以是计算机网络(例如lan、广域网(“wan”)或内联网或网络的网络(例如,因特网)的一部分。电子系统500的任一组件或所有组件可结合本发明来使用。

可使用对一或多个指令进行编码的有形计算机可读存储媒体(或一或多个类型的多个有形计算机可读存储媒体)来部分地或完全地实现在本发明范围内的实施方案。有形计算机可读存储媒体本质上还可以是非暂时性的。

计算机可读存储媒体可以是可由一般用途计算装置或特殊用途计算装置(包含任何处理电子及/或处理电路系统能够执行指令)读取、写入或者存取的任何存储媒体。举例来说,但不具限制性,计算机可读媒体可包含任何易失性半导体存储器,例如ram、dram、sram、t-ram、z-ram及ttram。计算机可读媒体还可包含任何非易失性半导体存储器,例如rom、prom、eprom、eeprom、nvram、快闪存储器、nvsram、feram、fetram、mram、pram、cbram、sonos、rram、nram、赛道存储器、fjg及millipede存储器。

此外,计算机可读存储媒体可包含任何非半导体存储器,例如光盘存储、磁盘存储、磁带、其它磁性存储装置或能够存储一或多个指令的任何其它媒体。在一或多个实施方案中,有形计算机可读存储媒体可直接耦合到计算装置,而在其它实施方案中,有形计算机可读存储媒体可间接耦合到计算装置,例如经由一或多个有线连接、一或多个无线连接或其任何组合。

指令可直接执行或可用于开发可执行指令。举例来说,指令可被实现为可执行或不可执行机器代码或呈高级语言的指令,所述高级语言可经编译以生成可执行机器代码或不可执行机器代码。此外,指令还可被实现为或可包含数据。计算机可执行指令还可被组织成任何格式,包含例程、子例程、程序、数据结构、目标、模块、应用、小应用程序、功能等。所属领域的技术人员人应认识到,细节(包含但不限于指令的数目、结构、序列及组织)可发生明显变化,但基础逻辑、功能、处理及输出不变。

虽然以上论述主要是指执行软件的微处理器或多核心处理器,但通过一或多个集成电路(例如asic或fpga)实行一或多个实施方案。在一或多个实施方案中,此集成电路执行存储在电路自身上的指令。

所属领域的技术人员应了解,本文中所描述的各种说明性块、模块、元件、组件、方法及算法可实施为电子硬件、计算机软件或这两者的组合。为了图解说明硬件与软件的此可互换性,上文通常已就其功能性来描述了各种说明性块、模块、元件、组件、方法及算法。此功能性是实施为硬件还是软件取决于特定应用及施加于总体系统上的设计约束。技术人员可针对每一特定应用以变化的方式实施所描述的功能性。可以不同方式布置(例如,以不同次序布置或以不同方式分割)各种组件及块,所有这些均不背离本技术的范围。

应理解,所揭示的过程中的步骤的特定次序或层次是图解说明实例性方法。基于设计偏好,应理解可重新布置所述过程中的步骤的特定次序或层次,或者可执行所有所说明的块。可同时实行块中的任一者。在一或多个实施方案中,多任务及并行处理可为有利的。此外,不应将在上文所描述的实施例中的各种系统组件的分离理解为在所有实施例中均需要此分离,且应理解,通常可将所描述的程序组件及系统一起集成在单个软件产品中或封装到多个软件产品中。

如本申请案的本说明书及任何权利要求中所使用,术语“基站”、“接收器”、“计算机”、“服务器”、“处理器”及“存储器”全部均指电子或其它技术装置。这些术语不包含人或人群。出于说明书目的,术语“显示(display或displaying)”意指在电子装置上显示。

如本文中所使用,在一系列物项前方的短语“至少一个”与分离物项中的任一者的术语“及”或者“或”修饰作为一个整体的列表,而不是修饰列表中的每一成员(即,每一物项)。短语“…中的至少一者”不需要选择所列举的每一物项中的至少一者;而是,所述短语的含义在于包含物项中的任一者中的至少一者及/或物项的任何组合中的至少一者及/或物项中的每一者中的至少一者。举例来说,短语“a、b及c中的至少一者”或“a、b或c中的至少一者”各自指代仅a、仅b或仅c;a、b及c的任何组合;及/或a、b及c中的每一者中的至少一者。

谓语词“经配置以”、“可操作以”及“经编程以”并不暗示对一对象的任何特定有形或无形修饰,而是旨在可互换地使用。在一或多个实施方案中,经配置以监视并控制组件的操作的处理器还可意指经编程以监视并控制所述操作的处理器或者可操作以监视并控制所述操作的处理器。同样地,经配置以执行代码的处理器可构造为经编程以执行代码或可操作以执行代码的处理器。

例如方面、所述方面、另一方面、一些方面、一或多个方面、实施方案、所述实施方案、另一实施方案、一些实施方案、一或多个实施方案、实施例、所述实施例、另一实施例、一些实施例、一或多个实施例、配置、所述配置、另一配置、一些配置、一或多个配置、本技术、发明、本发明等短语、上述短语的其它变化形式及类似短语是为方便起见,并不暗示与这(些)短语相关的揭露内容对本技术至关重要,或并不暗示此揭露内容适用于本技术的所有配置。与这(些)短语相关的揭露内容可适用于所有配置或者一或多个配置。与这(些)短语相关的揭露内容可提供一或多个实例。短语(例如,一方面或一些方面)可指代一或多个方面且反之亦然,且类似地其它前述短语同样如此。

词语“示范性”在本文中用于意指“用作实例、例子或图解说明”。在本文中被描述为“示范性”的任何实施例不一定被解释为比其它实施例优选或有利。此外,就在说说明书或权利要求书中使用术语“包含”、“具有”等这一意义上来说,此术语旨在具包含性,当对用作权利要求中的过渡词的术语“包括”加以解释时“包括”类似。

所属领域的技术人员已知的或后来知晓的在本发明通篇描述的各个方面的要素的所有结构等效物及功能等效物明确地以引用的方式并入本文中且旨在由权利要求书涵盖。此外,无论权利要求书中是否明确地叙述本揭露内容,本文中所揭示的任何内容均不旨在专用于公共目的。任何权利要求要素将不根据35u.s.c.§112(f)的规定来解释,除非所述要素是使用短语“用于…的构件”来明确地叙述,或者在方法权利要求的情形中,所述要素是使用短语“用于…的步骤”来叙述。

提供先前说明以使得任何所属领域的技术人员能够实践本文中所描述的各个方面。所属领域的技术人员将容易明了对这些方面的各种修改,且本文中所界定的通用原理可应用于其它方面。因此,权利要求书并不旨在限制于本文中所展示的方面,而是应被赋予与语言权利要求相一致的全部范围,其中以单数形式提及一要素并不旨在意指“一个且仅一个”(除非具体如此陈述),而是意指“一或多个”。除非另有具体陈述,否则术语“一些”是指一或多个。男性代词(例如,他的)包含女性及中性性别(例如,她的及它的),且反之亦然。如果存在的话,那么标题及副标题仅出于方便的目的而使用,并不限制本发明。


技术特征:

1.一种方法,其包括:

接收网络包以通过网络交换机装置的一定数目个路径中的一者路由;

经由应用于所述网络包的第一函数从与所述一定数目个路径对应的多个记录选择一个记录,其中所述多个记录中的每一者包含阈值、第一路由索引及第二路由索引;

经由应用于所述网络包的第二函数确定在预定义值范围内的路由值;

基于所述路由值是否达到所述选定记录的所述阈值来从所述选定记录选出所述第一路由索引或所述第二路由索引;及

基于所述所选出的路由索引来通过所述网络交换机装置的所述一定数目个路径中的所述一者路由所述网络包。

2.根据权利要求1所述的方法,其中在所述选择之前,所述方法进一步包括:

在所述多个记录中对所述网络交换机装置的所述一定数目个路径中的每一者的加权成本进行编码,以使得通过以下方式确定所述一定数目个路径的每一路径索引的对应权重:

当所述第一路由索引与所述路径索引匹配时,针对所述多个记录中的每一记录对所述阈值求和;及

当所述第二路由索引与所述路径索引匹配时,针对所述多个记录中的每一记录对所述预定义值范围的数量减去所述阈值求和。

3.根据权利要求2所述的方法,其进一步包括:

确定所述网络交换机装置的所述一定数目个路径中的每一者的所述加权成本的改变;及

更新所述多个记录以反映所述网络交换机装置的所述一定数目个路径中的每一者的所述加权成本的所述改变。

4.根据权利要求3所述的方法,其中更新所述多个记录不会触发含有所述多个记录的路由表中的其它记录的更新。

5.根据权利要求1所述的方法,其中所述第一函数对应于近似均匀分布函数。

6.根据权利要求1所述的方法,其中所述第一函数包含对所述网络包的标头的至少一部分实行的散列函数。

7.根据权利要求1所述的方法,其中所述第二函数对应于近似均匀分布函数。

8.根据权利要求1所述的方法,其中将所述第一函数输入到所述第二函数中。

9.根据权利要求1所述的方法,其中在所述确定之前,所述方法进一步包括:

基于满足加权误差阈值来界定所述预定义值范围。

10.根据权利要求1所述的方法,其中所述多个记录的计数不超过路径的所述数目。

11.根据权利要求1所述的方法,其中在所述选择之前,所述方法进一步包括:

根据所述网络包的路由目的地与路由表中的条目匹配而从所述路由表选择所述多个记录。

12.一种网络交换机装置,其包括:

多个端口,其对应于一定数目个路径;

存储器,其存储与所述一定数目个路径对应的多个记录,其中所述多个记录中的每一者包含阈值、第一路由索引及第二路由索引;

一或多个处理组件,其经配置以:

接收网络包以通过所述一定数目个路径中的一者路由;

经由应用于所述网络包的第一函数从所述多个记录选择一个记录;

经由应用于所述网络包的第二函数确定在预定义值范围内的路由值;

基于所述路由值是否达到所述选定记录的所述阈值来从所述选定记录选出所述第一路由索引或所述第二路由索引;及

基于所述所选出的路由索引来通过所述一定数目个路径中的所述一者路由所述网络包。

13.根据权利要求12所述的网络交换机装置,其中在所述选择之前,所述一或多个处理组件进一步经配置以:

在所述多个记录中对所述一定数目个路径中的每一者的加权成本进行编码,以使得通过以下方式确定所述一定数目个路径的每一路径索引的对应权重:

当所述第一路由索引与所述路径索引匹配时,针对所述多个记录中的每一记录对所述阈值求和;及

当所述第二路由索引与所述路径索引匹配时,针对所述多个记录中的每一记录对所述预定义值范围的数量减去所述阈值求和。

14.根据权利要求13所述的网络交换机装置,其中所述一或多个处理组件进一步经配置以:

确定所述一定数目个路径中的每一者的所述加权成本的改变;及

更新所述多个记录以反映所述一定数目个路径中的每一者的所述加权成本的所述改变。

15.根据权利要求12所述的网络交换机装置,其中所述第一函数及所述第二函数各自对应于近似均匀分布函数。

16.根据权利要求12所述的网络交换机装置,其中所述第一函数包含对所述网络包的标头的至少一部分实行的散列函数。

17.根据权利要求12所述的网络交换机装置,其中在所述确定之前,所述一或多个处理组件进一步经配置以:

基于满足加权误差阈值来界定所述预定义值范围。

18.根据权利要求12所述的网络交换机装置,其中所述多个记录的计数不超过路径的所述数目。

19.根据权利要求12所述的网络交换机装置,其中在所述选择之前,所述一或多个处理组件进一步经配置以:

根据所述网络包的路由目的地与路由表中的条目匹配而从所述路由表选择所述多个记录。

20.一种包括指令的非暂时性存储媒体,所述指令在由一或多个处理器读取时使得进行包括以下操作的方法:

接收网络包以通过网络交换机装置的一定数目个路径中的一者路由;

经由应用于所述网络包的第一函数从与所述一定数目个路径对应的多个记录选择记录,其中所述多个记录中的每一者包含阈值、第一路由索引及第二路由索引;

经由应用于所述网络包的第二函数确定在预定义值范围内的路由值;

基于所述路由值是否达到所述选定记录的所述阈值来从所述选定记录选出所述第一路由索引或所述第二路由索引;及

基于所述所选出的路由索引来通过所述网络交换机装置的所述一定数目个路径中的所述一者路由所述网络包。

技术总结
本申请案涉及用于加权成本多路径包处理的方法及装置。一种方法包含接收网络包以通过网络交换机装置的一定数目个路径中的一者路由。所述方法还包含经由应用于所述网络包的第一函数从与所述一定数目个路径对应的多个记录选择一个记录,其中所述多个记录中的每一者包含阈值、第一路由索引及第二路由索引。所述方法还包含经由应用于所述网络包的第二函数确定在预定义值范围内的路由值。所述方法还包含基于所述路由值是否达到所述选定记录的所述阈值来从所述选定记录选出所述第一路由索引或所述第二路由索引。所述方法还包含基于所述所选出的路由索引路由所述网络包。

技术研发人员:S·阿努博吕
受保护的技术使用者:安华高科技股份有限公司
技术研发日:2020.12.01
技术公布日:2021.08.03

转载请注明原文地址:https://doc.8miu.com/read-2425.html

最新回复(0)