CN115914098A - 基于等价多路径的选路方法、设备和存储介质 - Google Patents
基于等价多路径的选路方法、设备和存储介质 Download PDFInfo
- Publication number
- CN115914098A CN115914098A CN202111157602.4A CN202111157602A CN115914098A CN 115914098 A CN115914098 A CN 115914098A CN 202111157602 A CN202111157602 A CN 202111157602A CN 115914098 A CN115914098 A CN 115914098A
- Authority
- CN
- China
- Prior art keywords
- message
- link
- index
- messages
- packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 33
- 238000013507 mapping Methods 0.000 claims abstract description 50
- 238000000605 extraction Methods 0.000 claims description 12
- 230000008859 change Effects 0.000 abstract description 4
- 238000004891 communication Methods 0.000 abstract description 4
- 238000010187 selection method Methods 0.000 abstract description 3
- 238000012545 processing Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/16—Multipoint routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/741—Routing in networks with a plurality of addressing schemes, e.g. with both IPv4 and IPv6
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及通信技术领域,尤其涉及一种基于等价多路径的选路方法、设备和存储介质,根据报文的报文特征参数与对应索引序号的映射关系,确定所述报文对应的索引序号,其中,报文特征参数相同的报文对应相同索引序号;根据所述索引序号与对应ECMP组的链路之间的映射关系,确定所述报文的链路出口信息;根据所述链路出口信息,封装所述报文,并将封装后的所述报文转发至对应的链路出口。将报文特征参数相同的报文设置相同索引序号,并根据报文的索引序号确定报文的链路出口信息,由此,不仅避免报文乱序,而且通过顺序变化的索引序号替换随机性大的哈希值,可将报文均匀分担至链路,避免了产生链路分担不均问题,降低了分担流量精度。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种基于等价多路径的选路方法、设备和存储介质。
背景技术
ECMP(Equal Cost Multi-Path,等价多路径)是改进IP网络中基于最短路径的内部网关路由协议不足的一种技术。在传统最短路径算法中,如果两条或多条最短路径同时存在,算法会选择最优的一条。而ECMP作了改进,流量在多条等价路径中分配。基于报文的哈希值在多条等价路径中确定传输链路,但是哈希值具有随机性,容易导致链路分担不均,造成分担流量精度超标问题。
因此,如何解决目前报文传输方法链路分担不均及分担流量精度超标的问题成为亟需解决的问题。
发明内容
本发明提供了一种基于等价多路径的选路方法、设备和存储介质,采用相同索引序号表示报文特征参数相同的报文,并根据报文的索引序号确定报文的链路出口信息,通过顺序变化的索引序号替换随机性大的哈希值,可将各个报文均匀分担至ECMP组中各个链路进行传输,降低了分担流量精度。
第一方面,本发明提供了一种基于等价多路径的选路方法,所述方法包括:根据报文的报文特征参数与对应索引序号的映射关系,确定所述报文对应的索引序号,其中,报文特征参数相同的报文对应相同索引序号;根据所述索引序号与对应ECMP组的链路之间的映射关系,确定所述报文的链路出口信息;根据所述链路出口信息,封装所述报文,并将封装后的所述报文转发至对应的链路出口。
第二方面,本发明还提供了一种基于等价多路径的选路设备,包括处理器和存储器;所述存储器用于存储程序;所述处理器,用于执行所述程序并在执行所述程序时实现如上所述的基于等价多路径的选路方法。
第三方面,本发明还提供了一种存储介质,用于可读存储,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上述的基于等价多路径的选路方法。
本发明公开了一种基于等价多路径的选路方法、设备和存储介质,即:根据报文的报文特征参数与对应索引序号的映射关系,确定所述报文对应的索引序号,其中,报文特征参数相同的报文对应相同索引序号;根据所述索引序号与对应ECMP组的链路之间的映射关系,确定所述报文的链路出口信息;根据所述链路出口信息,封装所述报文,并将封装后的所述报文转发至对应的链路出口。通过上述方式,本发明将报文特征参数相同的报文设置相同索引序号,并根据报文的索引序号确定报文的链路出口信息,由此,不仅避免报文乱序,而且通过顺序变化的索引序号替换随机性大的哈希值,可将各个报文均匀分担至ECMP组中各个链路进行传输,避免了随机进行报文分担导致的链路分担不均问题,降低了分担流量精度,解决了链路分担不均及分担流量精度超标的问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种基于等价多路径的选路设备的结构示意图;
图2是本发明实施例提供的一种基于等价多路径的选路方法的示意性流程图;
图3是本发明实施例提供的逐流负载分担方式的示意图;
图4为本发明实施例提供的逐包负载分担方式的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特有的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
本发明的实施例提供了公开了一种基于等价多路径的选路方法、设备和存储介质,即:根据报文的报文特征参数与对应索引序号的映射关系,确定所述报文对应的索引序号,其中,报文特征参数相同的报文对应相同索引序号;根据所述索引序号与对应ECMP组的链路之间的映射关系,确定所述报文的链路出口信息;根据所述链路出口信息,封装所述报文,并将封装后的所述报文转发至对应的链路出口。将报文特征参数相同的报文设置相同索引序号,并根据报文的索引序号确定报文的链路出口信息,由此,不仅避免报文乱序,而且通过顺序变化的索引序号替换随机性大的哈希值,可将各个报文均匀分担至ECMP组中各个链路进行传输,避免了随机进行报文分担导致的链路分担不均问题,降低了分担流量精度,解决了链路分担不均及分担流量精度超标的问题。
请参阅图1,图1是本发明实施例提供的一种基于等价多路径的选路设备的结构示意图。基于等价多路径的选路设备100可以包括处理器101和存储器102,其中处理器101以及存储器102可以通过总线连接,该总线比如为I2C(Inter-integrated Circuit)总线等任意适用的总线。
其中,存储器102可以包括非易失性存储介质和内存储器。非易失性存储介质可存储操作系统和计算机程序。该计算机程序包括程序指令,该程序指令被执行时,可使得处理器101执行任意一种基于等价多路径的选路方法。
其中,处理器101用于提供计算和控制能力,支撑整个基于等价多路径的选路设备100的运行。
其中,处理器101可以是中央处理单元(Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在一实施例中,处理器101用于运行存储在存储器102中的计算机程序,并在执行计算机程序时实现如下步骤:
根据报文的报文特征参数与对应索引序号的映射关系,确定所述报文对应的索引序号,其中,报文特征参数相同的报文对应相同索引序号;
根据所述索引序号与对应ECMP组的链路之间的映射关系,确定所述报文的链路出口信息;
根据所述链路出口信息,封装所述报文,并将封装后的所述报文转发至对应的链路出口。
在一个实施例中,处理器101在实现所述根据报文的报文特征参数与对应索引序号的映射关系,确定所述报文对应的索引序号,其中,报文特征参数相同的报文对应相同索引序号之前,还用于实现如下步骤:
根据所述报文特征参数与对应ECMP组之间的映射关系,确定所述报文所属ECMP组的基址。
在一个实施例中,处理器101在实现所述根据所述报文特征参数与对应ECMP组之间的映射关系,确定所述报文所属ECMP组的基址时,还用于实现如下步骤:
计算所述报文特征参数对应的哈希值;
根据所述哈希值与对应ECMP组之间的映射关系,确定所述报文所属ECMP组的基址。
在一个实施例中,处理器101在实现根据所述索引序号与对应ECMP组的链路之间的映射关系,确定所述报文的链路出口信息时,还用于实现如下步骤:
根据所述索引序号、所述报文所属ECMP组的基址与对应ECMP组的链路之间的映射关系,确定所述报文的链路出口信息。
在一个实施例中,处理器101在实现根据报文的报文特征参数与对应索引序号的映射关系,确定所述报文对应的索引序号,其中,报文特征参数相同的报文对应相同索引序号时,还用于实现如下步骤:
在报文对应ECMP组中,根据不同报文特征参数的首个报文到达顺序,对所述不同报文特征参数的首个报文按序编号,并将相同报文特征参数的报文添加相同索引序号。
在一个实施例中,处理器101在实现根据所述索引序号与对应ECMP组的链路之间的映射关系,确定所述报文的链路出口信息之前,还用于实现如下步骤:
将所述报文对应的索引序号对所述报文对应ECMP组中的链路出口个数进行取模,并根据取模后的余数确定所述报文对应的链路出口信息。
在一个实施例中,处理器101用于运行存储在存储器102中的计算机程序,并在执行计算机程序时实现如下步骤:
在所述报文对应ECMP组中的链路出口个数发生变化时,获取更新后的链路出口个数;
将所述报文对应的索引序号对所述更新后的链路出口个数进行取模,并根据取模后的余数重新确定所述报文对应的链路出口信息。
下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
如图2所示,图2是本发明实施例提供的一种基于等价多路径的选路方法的示意性流程图。该基于等价多路径的选路方法包括步骤S10至步骤S30。
步骤S10、根据报文的报文特征参数与对应索引序号的映射关系,确定所述报文对应的索引序号,其中,报文特征参数相同的报文对应相同索引序号;
负载分担是指发往同一个目的的流量存在多条物理链路,ECMP即为将流量根据负载分担算法分担到多条链路的技术的简称。ECMP将流量分担到不同的链路上,可提高宽带网络资源利用率,还可在多条链路的其中一条或几条链路发生故障时,从其他链路转发。
负载分担方式包括逐流负载分担和逐包两种负载分担:
逐流负载分担方式是按照负载分担规则,将报文分成不同的报文流,并将同一报文流通过同一链路转发。如图3所示,如路由器R1上有6个报文P1、P2、P3、P4、P5、P6要通过路由器R1和路由器R2之间的链路port1和链路port2分担,根据报文哈希值对链路数目取模,模值具有随机性,因此,报文P1、P4和P6通过port1发往R2,报文P2、P3和P5通过port2发往R2。
逐包负载分担方式是在转发时,按报文顺序,将报文均匀有序的分摊到负载的各条链路上。如图4所示,如路由器R1上有6个报文P1、P2、P3、P4、P5、P6要通过路由器R1和R2之间的链路port1和port2分担,根据报文顺序,将P1、P2、P3、P4、P5、P6轮流分担至port1和port2,即P1、P3和P5通过port1发往R2,P2、P4和P6通过port2发往R2。
由此可见,逐流负载分担方式的负载均衡程度取决于负载分担规则和业务流量变化,随机性较大,逐包负载分担方式基于报文顺序,因此,逐包负载分担方式比逐流负载分担方式的负载均衡度好。但逐包负载分担对报文顺序比较敏感,容易导致报文乱序,因此,逐流路由器的负载分担一般采用逐流负载分担方式。
为了解决链路分担不均及分担流量精度超标的问题,本发明将报文特征参数相同的报文设置相同索引序号,并根据报文的索引序号确定报文的链路出口信息,由此,不仅避免报文乱序,而且通过顺序变化的索引序号替换随机性大的哈希值,可将各个报文均匀分担至ECMP组中各个链路进行传输,避免了随机进行报文分担导致的链路分担不均问题,降低了分担流量精度,解决了链路分担不均及分担流量精度超标的问题。
相同报文特征参数的报文即属于同一条流的报文,应该通过同一条物理链路发送,为了避免报文乱序,预先将相同报文特征参数的报文设置相同索引序号,将报文特征参数不同的报文(报文特征参数相同的报文共用一个索引序号)设置对应的索引序号。具体地,在预先设置的所述报文特征参数、所述报文所属ECMP组的基址与对应索引序号的映射关系中,根据报文的报文特征参数以及所述报文所属ECMP组的基址确定报文对应的索引序号。
示例性的,所述步骤S10之前,还包括:
根据所述报文特征参数与对应ECMP组之间的映射关系,确定所述报文所属ECMP组的基址。
本实施例中,报文特征参数可以是报文的五元组信息,即源IP地址、源端口、目的IP地址、目的端口和传输层协议,例如:192.168.1.1、10000、TCP、121.14.88.76、80即为一个五元组信息。
具体地,为了在多级负载分担导致分担精度降低,预先根据ECMP组的负载情况,将各个报文分配至对应ECMP组,并预存各报文的报文特征参数与对应ECMP组的基址的映射关系。在所述报文对应的报文特征参数与对应ECMP组之间的映射关系中,根据所述报文的报文特征参数或,确定所述报文所属ECMP组的基址。
示例性的,所述根据所述报文特征参数与对应ECMP组之间的映射关系,确定所述报文所属ECMP组的基址包括:
计算所述报文特征参数对应的哈希值;
根据所述哈希值与对应ECMP组之间的映射关系,确定所述报文所属ECMP组的基址。
本实施例中,计算各个报文的报文特征参数对应的哈希值,用于标识各个报文,即获取报文的五元组信息,并对所述五元组信息进行哈希运算,计算出所述报文的哈希值。具体可基于CRC20算法对报文的五元组信息进行哈希计算,确定报文对应的哈希值。
为了减少存储的数据量,预存各报文的报文特征参数对应的哈希值与对应ECMP组的基址的映射关系,作为所述报文特征参数与对应ECMP组之间的映射关系。然后在所述哈希值与对应ECMP组之间的映射关系中,根据所述报文的报文特征参数或报文对应的哈希值,确定所述报文所属ECMP组的基址。
步骤S20、根据所述索引序号与对应ECMP组的链路之间的映射关系,确定所述报文的链路出口信息;
本实施例中,在全部报文对应一个ECMP组时,可根据所述报文对应的索引序号即可确定所述报文对应的链路出口信息,即:在索引序号与对应ECMP组的链路之间的映射关系中,根据所述报文对应的索引序号,确定转发所述报文的链路出口信息。
示例性的,所述步骤S20之前,还包括:
在报文对应ECMP组中,根据不同报文特征参数的首个报文到达顺序,对所述不同报文特征参数的首个报文按序编号,并将相同报文特征参数的报文添加相同索引序号。
本实施例中,在确定各个报文所属ECMP组的基址后,若各个报文所属ECMP组包含多个ECMP组,则需结合ECMP组的基址以及报文的索引序号进行报文分担,即针对每个ECMP组进行报文的顺序分担;若各个报文所属ECMP组仅包含一个ECMP组,则无需结合ECMP组的基址,仅基于报文对应的索引序号将报文进行顺序分担至唯一ECMP组中的各个链路即可。
具体地,在所述报文所属ECMP组为一个ECMP组时,结合报文的到达顺序以及报文的哈希值,对报文进行编号,即在检测到一个报文到达网络处理芯片时,根据该报文对应的哈希值判断之前到达的报文中是否存在与该报文哈希值相同的报文,若存在,则获取与该报文哈希值相同的到达报文的索引序号,作为该报文对应的索引序号,若不存在,则将之前的编号加1,作为该报文对应的索引序号。即:
当第一个报文到达网络处理芯片时,将该报文添加1的索引序号;
当第二个报文到达网络处理芯片时,判断该报文与第一个报文的哈希值是否相同,若相同,则将该报文添加与第一个报文相同索引序号(即1),若不相同,则将该报文添加2的索引序号;
当前第三个报文达到网络处理芯片时,判断第一个报文及第二个报文中是否存在与该报文哈希值相同的报文,若存在,则将与该报文哈希值相同的报文对应的索引序号,添加为该报文对应的索引序号,若不存在,则将该报文添加3的索引序号;
依此类推,直至将所有报文添加对应的索引序号。新建一张表,命名为aifit,用于存储所有报文及其对应的索引序号的映射关系。其中,aifit表的key为报文对应的报文特征参数或报文对应的哈希值,result为报文对应的索引序号。
由此,根据不同哈希值的首个报文到达顺序,将各个不同哈希值的首个报文进行编号,然后根据不同哈希值的首个报文对其他与其哈希值相同的报文进行编号,完成所述报文特征参数与对应索引序号的映射关系的设置。
通过上述方式,哈希值相同的报文,即属于同一报文流的报文,同一报文流对应同一索引序号,由此,将各个报文流抽象为一个包,然后根据各个报文对应的索引序号依次在ECMP组中确定链路出口,不仅保证同一报文流对应同一链路出口,而且避免产生基于随机性较大的报文的哈希值确定链路出口导致的链路分担不均的问题。
在所述报文所属ECMP组包含至少两个ECMP组时,将所属ECMP组相同的报文分为一组,并在同一组中,根据不同哈希值的首个报文到达顺序,对各个不同哈希值的首个报文进行编号,然后根据不同哈希值的首个报文对其他与其哈希值相同的报文进行编号。即:
当第一个报文到达网络处理芯片时,获取该报文所属ECMP组的基址,并将该报文添加1的索引序号;
当第二个报文到达网络处理芯片时,获取该报文所属ECMP组的基址,判断该报文与第一个报文的哈希值是否相同,若相同,则将该报文添加与第一个报文相同索引序号(即1),若不相同,则判断该报文与第一个报文所属ECMP组的基址是否相同,若相同,则将该报文添加2的索引序号,若不相同,则将该报文添加1的索引序号;
当前第三个报文达到网络处理芯片时,判断第一个报文及第二个报文中是否存在与该报文哈希值相同的报文,若存在,则将与该报文哈希值相同的报文对应的索引序号,添加为该报文对应的索引序号,若不存在,则判断第一个报文所属ECMP组的基址及第二个报文所属ECMP组的基址中是否存在与该报文所属ECMP组相同的基址,若存在,则将第一个报文的索引序号加1(即该报文所属ECMP组的基址与第一个报文所属ECMP组的基址相同,且该报文所属ECMP组的基址与第二个报文所属ECMP组的基址不相同),作为该报文的索引序号,或将第二个报文的索引序号加1(即该报文所属ECMP组的基址与第二个报文所属ECMP组的基址相同,且该报文所属ECMP组的基址与第一个报文所属ECMP组的基址不相同),作为该报文的索引序号,若不相同,则将该报文添加1的索引序号;
依此类推,直至将所有报文添加对应的索引序号。新建一张表,命名为aifit,用于存储所有报文及其对应的索引序号的映射关系,还存储所有报文所属ECMP组的基址。其中,aifit表的key为报文对应的报文特征参数或报文对应的哈希值+报文所属ECMP组的基址,result为报文对应的索引序号。
由此,在同一组中,根据不同哈希值的首个报文到达顺序,将各个不同哈希值的首个报文进行编号,然后根据不同哈希值的首个报文对其他与其哈希值相同的报文进行编号,完成所述报文特征参数与对应索引序号的映射关系的设置。
通过上述方式,对每个ECMP组转发的报文个数进行统计,并根据同一组的报文的索引序号进行链路出口分担,避免多级负载分担导致的分担精度下降问题。
示例性的,所述步骤S20具体包括:
根据所述索引序号、所述报文所属ECMP组的基址与对应ECMP组的链路之间的映射关系,确定所述报文的链路出口信息。
本实施例中,在所述报文所属ECMP组包含至少两个ECMP组时,则在所述索引序号与对应ECMP组的链路之间的映射关系中,在索引序号与对应ECMP组的链路之间的映射关系中,所述报文对应的索引序号以及所述报文所属ECMP组的基址,确定转发所述报文的链路出口信息。
示例性的,所述步骤S20具体包括:
将所述报文对应的索引序号对所述报文对应ECMP组中的链路出口个数进行取模,并根据取模后的余数确定所述报文对应的链路出口信息。
本实施例中,为了将各个报文均匀分担至对应ECMP组的各个链路出口,首先确定所述报文所属ECMP组中的链路出口个数,然后将所述报文对应的索引序号对所述链路出口个数进行取模,如所述报文对应的索引序号为100,所述链路出口个数为5(即0号、1号、2号、3号、4号)时,所述报文对应的链路出口信息为:100mod 5=0,即确定0号链路出口为转发所述报文的链路出口。新建一张表,命名为ECMP选路表,用于存储报文所属ECMP组的基址、报文对应的哈希值及其对应链路出口信息的映射关系,其中,ECMP选路表的key为所述报文所属ECMP组的基址及所述报文对应的哈希值,result为转发所述报文的链路出口信息。
进一步地,所述方法还包括:
在所述报文对应ECMP组中的链路出口个数发生变化时,获取更新后的链路出口个数;
将所述报文对应的索引序号对所述更新后的链路出口个数进行取模,并根据取模后的余数重新确定所述报文对应的链路出口信息。
本实施例中,在检测到ECMP组中的可转发报文的链路出口个数发生变化时,即表示某些链路出口不可用,则剔除ECMP组中不可用的链路出口,并重新获取ECMP组中可用链路出口个数,然后将所述报文对应的索引序号重新对重新获取的链路出口个数进行取模,重新确定转发所述报文的链路出口信息。
步骤S30、根据所述链路出口信息,封装所述报文,并将封装后的所述报文转发至对应的链路出口。
本实施例中,根据所述待传输报文对应的链路出口信息,封装报文,并将封装后的报文转发到所述链路出口信息对应的负载分担链路出口,完成所述待传输报文的传输。
由此,根据报文的哈希值,将哈希值相同的报文分成同一报文流,即将每个报文流抽象成为一个包,然后根据每个报文流对应的索引序号进行链路出口分担,相当于将逐包负载分担方式与逐流负载分担方式相结合,将各个报文流按序分担至各个链路,且每个报文流通过同一链路出口转发,避免了报文乱序以及分担不均的问题。
本发明的实施例中还提供一种存储介质,用于可读存储,所述存储介质存储有程序,所述程序中包括程序指令,所述处理器执行所述程序指令,实现本发明实施例提供的任一项基于等价多路径的选路方法。
例如,该程序被处理器加载,可以执行如下步骤:
其中,所述存储介质可以是前述实施例所述基于等价多路径的选路设备的内部存储单元,例如所述基于等价多路径的选路设备的硬盘或内存。所述存储介质也可以是所述基于等价多路径的选路设备的外部存储设备,例如所述基于等价多路径的选路设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字卡(Secure Digital Card,SD Card),闪存卡(Flash Card)等。
公开了一种基于等价多路径的选路方法、设备和存储介质,即:根据报文的报文特征参数与对应索引序号的映射关系,确定所述报文对应的索引序号,其中,报文特征参数相同的报文对应相同索引序号;根据索引序号与对应ECMP组的链路之间的映射关系,确定所述报文的链路出口信息;根据所述链路出口信息,封装所述报文,并将封装后的所述报文转发至对应的链路出口。通过上述方式,本发明将报文特征参数相同的报文设置相同索引序号,并根据报文的索引序号确定报文的链路出口信息,由此,不仅避免报文乱序,而且通过顺序变化的索引序号替换随机性大的哈希值,可将各个报文均匀分担至ECMP组中各个链路进行传输,避免了随机进行报文分担导致的链路分担不均问题,降低了分担流量精度,解决了链路分担不均及分担流量精度超标的问题。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在可存储介质上,存储介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
以上参照附图说明了本发明的优选实施例,并非因此局限本发明的权利范围。本领域技术人员不脱离本发明的范围和实质内所作的任何修改、等同替换和改进,均应在本发明的权利范围之内。
Claims (10)
1.一种基于等价多路径的选路方法,其特征在于,所述方法包括:
根据报文的报文特征参数与对应索引序号的映射关系,确定所述报文对应的索引序号,其中,报文特征参数相同的报文对应相同索引序号;
根据所述索引序号与对应ECMP组的链路之间的映射关系,确定所述报文的链路出口信息;
根据所述链路出口信息,封装所述报文,并将封装后的所述报文转发至对应的链路出口。
2.根据权利要求1所述的基于等价多路径的选路方法,其特征在于,所述根据报文的报文特征参数与对应索引序号的映射关系,确定所述报文对应的索引序号,其中,报文特征参数相同的报文对应相同索引序号之前,还包括:
根据所述报文特征参数与对应ECMP组之间的映射关系,确定所述报文所属ECMP组的基址。
3.根据权利要求2所述的基于等价多路径的选路方法,其特征在于,所述根据所述报文特征参数与对应ECMP组之间的映射关系,确定所述报文所属ECMP组的基址包括:
计算所述报文特征参数对应的哈希值;
根据所述哈希值与对应ECMP组之间的映射关系,确定所述报文所属ECMP组的基址。
4.根据权利要求2所述的基于等价多路径的选路方法,其特征在于,所述根据所述索引序号与对应ECMP组的链路之间的映射关系,确定所述报文的链路出口信息包括:
根据所述索引序号、所述报文所属ECMP组的基址与对应ECMP组的链路之间的映射关系,确定所述报文的链路出口信息。
5.根据权利要求1所述的基于等价多路径的选路方法,其特征在于,所述根据报文的报文特征参数与对应索引序号的映射关系,确定所述报文对应的索引序号,其中,报文特征参数相同的报文对应相同索引序号包括:
在报文对应ECMP组中,根据不同报文特征参数的首个报文到达顺序,对所述不同报文特征参数的首个报文按序编号,并将相同报文特征参数的报文添加相同索引序号。
6.根据权利要求1所述的基于等价多路径的选路方法,其特征在于,所述根据所述索引序号与对应ECMP组的链路之间的映射关系,确定所述报文的链路出口信息包括:
将所述报文对应的索引序号对所述报文对应ECMP组中的链路出口个数进行取模,并根据取模后的余数确定所述报文对应的链路出口信息。
7.根据权利要求6所述的基于等价多路径的选路方法,其特征在于,所述方法还包括:
在所述报文对应ECMP组中的链路出口个数发生变化时,获取更新后的链路出口个数;
将所述报文对应的索引序号对所述更新后的链路出口个数进行取模,并根据取模后的余数重新确定所述报文对应的链路出口信息。
8.根据权利要求1-7中任一项所述的基于等价多路径的选路方法,其特征在于,所述报文特征参数为五元组信息中源IP地址、源端口、目的IP地址、目的端口、传输层协议的一种或多种。
9.一种基于等价多路径的选路设备,其特征在于,包括处理器和存储器;
所述存储器用于存储程序;
所述处理器,用于执行所述程序并在执行所述程序时实现如权利要求1至8中任一项所述的基于等价多路径的选路方法。
10.一种存储介质,用于可读存储,其特征在于,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1至8中任一项所述的基于等价多路径的选路方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111157602.4A CN115914098A (zh) | 2021-09-30 | 2021-09-30 | 基于等价多路径的选路方法、设备和存储介质 |
PCT/CN2022/111240 WO2023051038A1 (zh) | 2021-09-30 | 2022-08-09 | 基于等价多路径的选路方法、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111157602.4A CN115914098A (zh) | 2021-09-30 | 2021-09-30 | 基于等价多路径的选路方法、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115914098A true CN115914098A (zh) | 2023-04-04 |
Family
ID=85770662
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111157602.4A Pending CN115914098A (zh) | 2021-09-30 | 2021-09-30 | 基于等价多路径的选路方法、设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115914098A (zh) |
WO (1) | WO2023051038A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7903654B2 (en) * | 2006-08-22 | 2011-03-08 | Foundry Networks, Llc | System and method for ECMP load sharing |
CN101572667B (zh) * | 2009-05-22 | 2011-11-30 | 中兴通讯股份有限公司 | 一种ip路由等价多路径的实现方法及装置 |
CN105791145B (zh) * | 2014-12-18 | 2019-10-25 | 南京中兴新软件有限责任公司 | 基于等价多路径ecmp的报文传输方法及装置 |
CN106302218A (zh) * | 2015-05-29 | 2017-01-04 | 中兴通讯股份有限公司 | 网络负荷的分担方法和装置 |
CN106470157B (zh) * | 2015-08-21 | 2020-06-30 | 中兴通讯股份有限公司 | 隧道的优先级设置方法及装置 |
-
2021
- 2021-09-30 CN CN202111157602.4A patent/CN115914098A/zh active Pending
-
2022
- 2022-08-09 WO PCT/CN2022/111240 patent/WO2023051038A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023051038A1 (zh) | 2023-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11588733B2 (en) | Slice-based routing | |
US10158558B1 (en) | Segment routing of packets according to a multicast distribution tree in a network | |
US9300585B2 (en) | Shortening of service paths in service chains in a communications network | |
US7623533B2 (en) | Switch meshing using multiple directional spanning trees | |
US20180159702A1 (en) | Packet forwarding | |
CN112054969B (zh) | 一种实现报文镜像的方法及装置 | |
US9537785B2 (en) | Link aggregation group (LAG) link allocation | |
WO2013184121A1 (en) | Multi-tenant network provisioning | |
CN109450793B (zh) | 一种业务流量调度的方法和装置 | |
US20120230194A1 (en) | Hash-Based Load Balancing in Large Multi-Hop Networks with Randomized Seed Selection | |
US11483171B2 (en) | System and method to control latency of serially-replicated multi-destination flows | |
CN109088822B (zh) | 数据流量转发方法、装置、系统、计算机设备及存储介质 | |
EP3879757A1 (en) | Network traffic steering among cpu cores using forwarding path elements | |
CN110768917B (zh) | 一种报文传输方法及装置 | |
US8867408B2 (en) | Fast convergence on child link failures and weighted load balancing of aggregate ethernet/sonet bundles | |
US8902738B2 (en) | Dynamically adjusting active members in multichassis link bundle | |
CN109327400B (zh) | 一种数据通信方法及数据通信网络 | |
CN113595919A (zh) | 一种负载分担的方法及装置 | |
CN115914098A (zh) | 基于等价多路径的选路方法、设备和存储介质 | |
CN110636003A (zh) | 报文转发方法、装置、系统和计算机可读存储介质 | |
US10243838B1 (en) | Interleaving members for proportionate network traffic distribution | |
CN113890855A (zh) | 一种报文转发方法、系统、设备以及介质 | |
CN112087376B (zh) | 一种负载分担的方法及装置 | |
US11240164B2 (en) | Method for obtaining path information of data packet and device | |
CN113141265B (zh) | 跨设备链路聚合方法及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |