CN1302645C - 网络处理器***端口捆绑中实现流量均担的方法 - Google Patents

网络处理器***端口捆绑中实现流量均担的方法 Download PDF

Info

Publication number
CN1302645C
CN1302645C CNB031383882A CN03138388A CN1302645C CN 1302645 C CN1302645 C CN 1302645C CN B031383882 A CNB031383882 A CN B031383882A CN 03138388 A CN03138388 A CN 03138388A CN 1302645 C CN1302645 C CN 1302645C
Authority
CN
China
Prior art keywords
port
data message
current data
cryptographic hash
binding group
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.)
Expired - Fee Related
Application number
CNB031383882A
Other languages
English (en)
Other versions
CN1553654A (zh
Inventor
申纪伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CNB031383882A priority Critical patent/CN1302645C/zh
Publication of CN1553654A publication Critical patent/CN1553654A/zh
Application granted granted Critical
Publication of CN1302645C publication Critical patent/CN1302645C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Small-Scale Networks (AREA)

Abstract

本发明公开了一种网络处理器***端口捆绑中实现流量均担的方法,该方法在当活动的成员端口数目为2的非整数次幂时进行步骤:获取当前数据报文的特征值,经过哈希操作得到能够标识该报文特征的哈希值;在由当前活动成员端口数基本等分数据报文的哈希值的分散区间后所形成的多个取值区间中,查找当前数据报文的哈希值所属的取值区间;根据查找到的取值区间得到该区间对应的成员端口索引;以及将当前数据报文发送到所述成员端口索引对应的成员端口。本发明在活动的成员端口数目为2的非整数次幂时能够更均匀、动态地将数据流分布到各个成员端口上,从而能真正保证捆绑组中各个成员端口流量的均衡。

Description

网络处理器***端口捆绑中实现流量均担的方法
技术领域
本发明涉及网络通信技术,特别涉及一种网络处理器***端口捆绑中实现流量均担的方法。
背景技术
端口捆绑功能提供将多个以太链路聚合成一个逻辑链路,提高链路带宽的方法,是交换机、路由器的一个重要功能。捆绑组中的所有端口的速率应该相同。端口捆绑应当实现数据流量在捆绑组内的均匀分布,当捆绑组中的某个端口失效时,流量应自动均匀切换到捆绑组的其他端口上。
当报文经过捆绑端口发出时,***需要从捆绑组内选择一个出端口。选择的结果应该满足以下的两点要求:
(1)同一个流(特定源和特定目的间的特定应用数据报文)应该从同一个端口发出。这样可以保证同一个流数据帧的次序,这在二层交换机的局域网情况下是必须的,因为局域网通信程序一般是不考虑数据帧乱序的。可以通过将标识数据帧的特征值映射到一个端口序号上实现。
(2)应该保证各个端口流量的均衡。根据当前的端口数,将数据流均匀的分布到各个端口上。
目前***多采用硬件实现端口捆绑(多采用ASIC实现),其流量均担的方法为:
(1)根据报文的特征(源MAC地址、目的MAC地址;源IP地址、目的IP地址;或者源和目的的组合),生成一个特征值X。
(2)根据当前捆绑组中可用的端口数n,对特征值X进行取模操作,得到端口序号i=X%n。
(3)根据端口序号选取相应的端口发出。
由于现有的流量均担算法受到硬件限制,分担的效果只在2的整数次幂端口数时,即端口数为:2、4、8时效果较好,此时可以实现各个端口流量的均匀分布。但是当捆绑组中的某个端口失效,使得可用端口数不再是2的整数次幂时,流量就不能保持均匀。这是由于数字***使用2进制,且只能进行整数运算的结果。例如当以源MAC地址后2bits作为hashed值时,100个流在3个端口分得的流数为:25/50/25,合理的分布应该是34/33/33,可见此时流量分担的效果很差。捆绑端口流量分担不好,会造成带宽的浪费:一方面某些端口超过物理带宽造成丢包,而另一些端口流量很小。
发明内容
本发明的目的在于提供一种网络处理器***端口捆绑中实现流量均担的方法,通过根据当前可用端口数采用不同的端口选择方法,以得到最佳的流量分担效果。
本发明的技术方案一:
一种网络处理器***端口捆绑中实现流量均担的方法,所述端口捆绑是由物理特性相同的多个成员端口聚合成一个捆绑组,当所述捆绑组中当前活动的成员端口数目为2的非整数次幂时按以下步骤分配数据报文:
A、获取当前数据报文的特征值,经过哈希操作得到能够标识该报文特征的哈希值;
B、在由当前活动成员端口数基本等分数据报文的哈希值的分散区间后所形成的多个取值区间中,查找当前数据报文的哈希值所属的取值区间;
C、根据查找到的取值区间得到该区间对应的成员端口索引;以及
D、将当前数据报文发送到所述成员端口索引所对应的成员端口。
根据上述技术方案:
所述捆绑组中当前活动的成员端口数目为2的整数次幂时按以下步骤分配数据报文:
获取当前数据报文的特征值,经过哈希操作得到能够标识该报文特征的哈希值;
将捆绑组中活动端口数减1并与当前数据报文的哈希值进行二进制的按位与操作,得到被选成员端口索引;以及
将当前数据报文发送到所述被选成员端口索引所对应的成员端口。
所述捆绑组中当前活动的成员端口数目为2的整数次幂时还可按以下步骤分配数据流:
所述捆绑组中活动的成员端口数目为2的整数次幂时按以下步骤分配数报文:
获取当前数据报文的特征值,经过哈希操作得到能够标识该报文特征的哈希值;
用活动的成员端口数对当前数据报文的哈希值进行取模操作,得到被选成员端口索引;以及
将当前数据报文发送到所述被选成员端口索引所对应的成员端口。
从多个取值区间中查数据流特征值所属区间时采用二分法进行查找。
数据报文的特征值为源MAC地址、目的MAC地址、源IP地址、目的IP地址、IP端口号和MPLS标签之一或多项的组合。
本发明的技术方案二:
一种网络处理器***端口捆绑中实现流量均担的方法,所述端口捆绑是由物理特性相同的多个成员端口聚合成一个捆绑组,当所述捆绑组中当前活动的成员端口数目为2的整数次幂时按以下步骤分配数据报文:
获取当前数据报文的特征值,经过哈希操作得到能够标识该报文特征的哈希值;
将捆绑组中活动端口数减1并与当前数据报文的哈希值进行二进制的按位与操作,得到被选成员端口索引;以及
将当前数据报文发送到所述被选成员端口索引所对应的成员端口。
本发明在捆绑组中成员端口数目为2的非整数幂时,将数据报文在其哈希值的取值范围内均匀地分散,并根据当前活动的成员端口数对取值范围基本等分来分配流量,因而能够更均匀、动态地将数据流分布到各个成员端口上,从而能真正保证捆绑组中各个成员端口流量的均衡。
附图说明
图1为现有技术中端口捆绑流量分担示意图;
图2为本发明数据报文发向捆绑端口的示意图;
图3、图5和图6为本发明的流量均担的流程图;
图4为本发明通过二分法查找端口索引示意图。
具体实施方式
端口捆绑是由物理特性相同的多个成员端口聚合成一个捆绑组,成员端口为物理端口,其索引从0开始。参阅图2所示,在交换机,以二层报文为例,当报文从某个端口进入后,在源接口板SB通过目的MAC地址查找MAC表得到出端口的目标板TB和目标端口TP,通过处理后,报文经过网板被发送到目标板TB。目标板TB根据目标端口TP的属性表得知该目标端口TP是捆绑端口。网络处理器根据捆绑端口中当前活动的成员端口数目是2的整数次幂还是非整数次对数据报文的流量进行均分。
数据报文的流量均担是通过哈希(hash)算法把所有的流压缩为一定数目的流,该数目由数据流的哈希值的总比特位数决定,如哈希值取9个比特位,则将所有流压缩为512个流(2的9次幂),然后把512个流均匀分担就实现了所有流的均匀分担。
参阅图3,当捆绑端口中当前活动的成员端口数目为2的非整数次幂(即3,5,6,或7等)时进行下述步骤。其中活动端口数为1时,被选端口索引=0。
步骤10:获取当前数据报文的特征值,经过哈希操作得到能够标识该报文特征的哈希值。
数据报文的特征值为源MAC地址、目的MAC地址、源IP地址、目的IP地址、IP端口号和MPLS标签(多协议标签交换报文的标签)之一或多项的组合。
在本实施例中,对于二层报文,使用数据流的源MAC地址和目的MAC地址生成标识数据流的哈希值;对于三层报文,使用数据流的源IP地址和目的IP地址生成标识数据流的哈希值。
步骤20:在由当前活动成员端口数基本等分数据流哈希值的分散区间后所形成的多个取值区间中,查找当前数据报文的哈希值所属的取值区间。
数据流的特征值(哈希值)的总比特数不同,其特征值的分散区间也不同。由捆绑组中当前活动的端口数将分散区间基本等分,形成多个取值区间,其中每一取值区间对应一个活动的成员端口索引。所有这些不同的分散区间被基本等分后,取值区间与成员端口索引的对应关系可预先生成并保存于交换机或路由器中供转发数据报文时查询,查询时可通过活动成员端口数等进行索引。
查找取值区间采用二分法进行,也可采用其它查找方法。
步骤30:根据查找到的取值区间得到该区间对应的成员端口索引。
步骤40:将当前数据报文发送到所述成员端口索引对应的成员端口。
以哈希值(hashed)取9个比特位为例进行说明。数据流的特征值经hash后分散到[0--511](29)之间。设捆绑组中当前活动端口数为7,并采用二分法查找,参阅图4。
哈希(hashed)值最大为511,基本分成7等分,则分界点分别为0、73、146、219、292、365、438,511(9比特的最大值)。这样就形成了7个取值区间:[0,73],(73,146],(146,219],(219,292],(292,365],(365,438],(438,511],其中“()”表示不包含边界值,“[]”表示包含边界值。每个区间的大小为:74,73,73,73,73,73,73。
这样,就将总流量分成了基本均匀的7等分,每个区间唯一对应捆绑组的一个成员端口索引,将hashed值落在相应区间的报文发送到对应的端口,从而实现流量的均衡分担。(当哈希值能被活动成员端口数整除时,则属于等分。)
二分法查找流程如下:
得到数据报文的哈希值值后,首先比较hashed值和中间值219。如果大于,就在右半区继续比较;如果小于,则在左半区继续比较。使用同样的方式,直到hashed值落入它所在的区间,得到该区间对应的成员端口索引,进而得到该数据报文的出端口。
从上可看出,7个端口时各个端口上分担的流数比为74/73/73/73/73/73/73,可见分担效果已经很好。
当捆绑端口中当前活动的成员端口数目为2的整数次幂(即2,4,或8等)时可通过下述两种方法进行流量均担。
参阅图5,其过程如下:
步骤100:获取当前数据报文的特征值,经过哈希操作得到能够标识该报文特征的哈希值。
步骤110:将捆绑组中活动端口数减1并与当前数据报文的哈希值进行二进制的按位与操作,得到被选成员端口索引。
步骤120:将当前数据报文发送到所述被选成员端口索引所对应的成员端口。
参阅图6,其过程如下:
步骤200:获取当前数据报文的特征值,经过哈希操作得到能够标识该报文特征的哈希值。
步骤210:用活动的成员端口数对当前数据报文的哈希值进行取模操作,得到被选成员端口索引。
步骤220:将当前数据报文发送到所述被选成员端口索引所对应的成员端口。
在本发明中,捆绑组中的成员端口数据为可2~8。数据流的哈希值X取值范围为:0<=X<2^16。

Claims (10)

1、一种网络处理器***端口捆绑中实现流量均担的方法,所述端口捆绑是由物理特性相同的多个成员端口聚合成一个捆绑组,其特征在于所述捆绑组中当前活动的成员端口数目为2的非整数次幂时按以下步骤分配数据报文:
A、获取当前数据报文的特征值,经过哈希操作得到能够标识该报文特征的哈希值;
B、在由当前活动成员端口数基本等分数据报文的哈希值的分散区间后所形成的多个取值区间中,查找当前数据报文的哈希值所属的取值区间;
C、根据查找到的取值区间得到该区间对应的成员端口索引;以及
D、将当前数据报文发送到所述成员端口索引所对应的成员端口。
2、如权利要求1所述的方法,其特征在于所述捆绑组中当前活动的成员端口数目为2的整数次幂时按以下步骤分配数据报文:
获取当前数据报文的特征值,经过哈希操作得到能够标识该报文特征的哈希值;
将捆绑组中活动端口数减1并与当前数据报文的哈希值进行二进制的按位与操作,得到被选成员端口索引;以及
将当前数据报文发送到所述被选成员端口索引所对应的成员端口。
3、如权利要求1所述的方法,其特征在于所述捆绑组中当前活动的成员端口数目为2的整数次幂时按以下步骤分配数报文:
获取当前数据报文的特征值,经过哈希操作得到能够标识该报文特征的哈希值;
用活动的成员端口数对当前数据报文的哈希值进行取模操作,得到被选成员端口索引;以及
将当前数据报文发送到所述被选成员端口索引所对应的成员端口。
4、如权利要求1所述的方法,其特征在于步骤B中采用二分法进行查找。
5、如权利要求1至4任一所述的方法,其特征在于,成员端口索引从0开始,当所述捆绑组中活动的成员端口数目为1时被选成员端口索引值取0。
6、如权利要求1至4任一所述的方法,其特征在于,数据报文的特征值为源MAC地址、目的MAC地址、源IP地址、目的IP地址、IP端口号和MPLS标签之一或多项的组合。
7、如权利要求1所述的方法,其特征在于,所述的捆绑组中的成员端口数据为2~8。
8、如权利要求1所述的方法,其特征在于,所述数据流的哈希值的取值范围为大于等于0并小于2^16。
9、如权利要求1、7或8所述的方法,其特征在于,每一分散区间在不同的活动成员端口数下所形成的多种对应关系预先保存。
10、一种网络处理器***端口捆绑中实现流量均担的方法,所述端口捆绑是由物理特性相同的多个成员端口聚合成一个捆绑组,其特征在于所述捆绑组中当前活动的成员端口数目为2的整数次幂时按以下步骤分配数据报文:
获取当前数据报文的特征值,经过哈希操作得到能够标识该报文特征的哈希值;
将捆绑组中活动端口数减1并与当前数据报文的哈希值进行二进制的按位与操作,得到被选成员端口索引;以及
将当前数据报文发送到所述被选成员端口索引所对应的成员端口。
CNB031383882A 2003-05-26 2003-05-26 网络处理器***端口捆绑中实现流量均担的方法 Expired - Fee Related CN1302645C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB031383882A CN1302645C (zh) 2003-05-26 2003-05-26 网络处理器***端口捆绑中实现流量均担的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB031383882A CN1302645C (zh) 2003-05-26 2003-05-26 网络处理器***端口捆绑中实现流量均担的方法

Publications (2)

Publication Number Publication Date
CN1553654A CN1553654A (zh) 2004-12-08
CN1302645C true CN1302645C (zh) 2007-02-28

Family

ID=34323719

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB031383882A Expired - Fee Related CN1302645C (zh) 2003-05-26 2003-05-26 网络处理器***端口捆绑中实现流量均担的方法

Country Status (1)

Country Link
CN (1) CN1302645C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102724106A (zh) * 2011-03-30 2012-10-10 华为技术有限公司 媒体接入控制地址的学习方法、网络侧设备和***

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7675918B2 (en) * 2006-11-13 2010-03-09 Cisco Technology, Inc Hash-based preemption
CN101014005B (zh) 2007-01-22 2010-09-22 华为技术有限公司 一种减少链路聚合组中业务损伤的方法和装置
CN101296185B (zh) * 2008-06-05 2011-12-14 杭州华三通信技术有限公司 一种均衡组的流量控制方法及装置
CN101355483B (zh) * 2008-08-27 2012-02-22 成都市华为赛门铁克科技有限公司 一种多网口发送数据包的方法和设备
CN101616083B (zh) * 2009-08-06 2012-01-04 杭州华三通信技术有限公司 一种报文转发方法和装置
CN102143041B (zh) * 2010-07-02 2014-03-26 华为技术有限公司 一种网络流量分担的方法、装置及***
CN102577280B (zh) * 2011-11-28 2014-05-21 华为技术有限公司 发送报文的方法、装置和***
CN102404156B (zh) * 2011-12-12 2015-07-08 杭州华三通信技术有限公司 一种基于聚合链路的数据传输方法和设备
CN102821049A (zh) * 2012-08-15 2012-12-12 华为技术有限公司 转发报文的方法和装置
CN105743816B (zh) * 2014-12-10 2019-01-25 华为技术有限公司 一种链路聚合方法及装置
CN107786437B (zh) * 2016-08-24 2020-12-15 华为技术有限公司 报文转发方法及装置
CN109218179A (zh) * 2017-07-07 2019-01-15 中兴通讯股份有限公司 负载分担方法及装置、交换机及计算机可读存储介质
CN108134744B (zh) * 2017-12-06 2021-11-23 新华三技术有限公司 一种irf堆叠中的负载分担方法和单板
CN112751791B (zh) * 2020-12-30 2022-05-17 迈普通信技术股份有限公司 报文转发及信息处理方法、装置、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6111877A (en) * 1997-12-31 2000-08-29 Cisco Technology, Inc. Load sharing across flows
US20020027908A1 (en) * 2000-06-19 2002-03-07 Broadcom Corporation Switch fabric with path redundancy
US20020097736A1 (en) * 1998-04-01 2002-07-25 Earl Cohen Route/service processor scalability via flow-based distribution of traffic
JP2002217967A (ja) * 2001-01-17 2002-08-02 Nec Corp フロー検出装置及びそれに用いるフロー検出方法
CN1369991A (zh) * 2002-04-01 2002-09-18 北京港湾网络有限公司 交换机捆绑端口分流方法及交换机芯片
CN1414737A (zh) * 2002-05-23 2003-04-30 华为技术有限公司 一种流量负载分担的方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6111877A (en) * 1997-12-31 2000-08-29 Cisco Technology, Inc. Load sharing across flows
US20020097736A1 (en) * 1998-04-01 2002-07-25 Earl Cohen Route/service processor scalability via flow-based distribution of traffic
US20020027908A1 (en) * 2000-06-19 2002-03-07 Broadcom Corporation Switch fabric with path redundancy
JP2002217967A (ja) * 2001-01-17 2002-08-02 Nec Corp フロー検出装置及びそれに用いるフロー検出方法
CN1369991A (zh) * 2002-04-01 2002-09-18 北京港湾网络有限公司 交换机捆绑端口分流方法及交换机芯片
CN1414737A (zh) * 2002-05-23 2003-04-30 华为技术有限公司 一种流量负载分担的方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102724106A (zh) * 2011-03-30 2012-10-10 华为技术有限公司 媒体接入控制地址的学习方法、网络侧设备和***
CN102724106B (zh) * 2011-03-30 2015-03-11 华为技术有限公司 媒体接入控制地址的学习方法、网络侧设备和***

Also Published As

Publication number Publication date
CN1553654A (zh) 2004-12-08

Similar Documents

Publication Publication Date Title
CN1302645C (zh) 网络处理器***端口捆绑中实现流量均担的方法
US8213347B2 (en) Scalable IP-services enabled multicast forwarding with efficient resource utilization
CN1254059C (zh) 一种多协议标签交换虚拟专用网的实现方法
EP2127219B1 (en) Forwarding multicast traffic over link aggregation ports
US8274980B2 (en) Ethernet link aggregation
US8085778B1 (en) Voltage regulator
US20110164503A1 (en) System and Method to Support Enhanced Equal Cost Multi-Path and Link Aggregation Group
CN1809022A (zh) 以太网设备堆叠方法及其***
CN101170512B (zh) 报文业务处理方法
CN1777143A (zh) 使用分布式网络处理的数据交换机中的内部负载平衡
US10292069B2 (en) System and method for multi-channel packet transmission
CN100338923C (zh) 基于网络处理器实现ip报文分片重组的方法
CN1472938A (zh) 实现rpr网和mpls网之间端对端连接的方法和设备
CN1812367A (zh) 一种多协议标签交换网络的数据传输方法及***
CN101056257A (zh) 实现链路聚合和保护倒换的方法及***
CN105791145B (zh) 基于等价多路径ecmp的报文传输方法及装置
CN101056246A (zh) 一种实现负载分担的方法和装置
CN1878130A (zh) 一种数据转发方法
CN106470157B (zh) 隧道的优先级设置方法及装置
CN1787489A (zh) 将接口流量在多个网络处理器引擎中均担的方法
CN1913454A (zh) 一种ip报文负载分担实现方法及装置
CN1859417A (zh) 一种多台网络设备链路聚集的实现方法
CN1845531A (zh) 一种数据转发控制方法和装置
CN1909448A (zh) 在mpls vpn网络中实现端到端加密传输的方法
CN1725727A (zh) 一种标签交换路径聚合方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070228

Termination date: 20190526

CF01 Termination of patent right due to non-payment of annual fee