一种减少链路聚合组中业务损伤的方法和装置的制作方法

文档序号:7643263阅读:254来源:国知局
专利名称:一种减少链路聚合组中业务损伤的方法和装置的制作方法
技术领域
本发明涉及网络通信领域,特别涉及一种减少链路聚合组中业务损伤的方法和装置。
背景技术
链路聚合是指把多个端口聚合到一起,形成一个聚合组,参见图1,为具有两个端口的链路聚合组示意图,业务报文可以通过不同端口传送,在各个端口上平均分配带宽,从而线性增加带宽。
在端口状态发生变化时,聚合组中的端口会相应增加或减少,同时报文会重新选择发送端口。报文在重新选择发送端口时,现有技术中没有定义一个明确的选择算法,各厂商实现方法也各有不同,一般采用的是根据当前的端口数重新分发业务报文,这样会导致各个端口上的业务受到破坏或使业务报文发生乱序,一些本来可以不受到影响的业务也可能会改变承载端口,使业务过多的受到影响。

发明内容
为了缓解现有链路聚合技术中增删物理端口时对业务的损伤,本发明实施例提供了一种减少链路聚合组中业务损伤的方法和装置。所述技术方案如下一种减少链路聚合组中业务损伤的方法,其特征在于,所述方法包括将业务报文分为多个业务子流,并将所述多个业务子流平均分配给每个物理端口;当新增物理端口时,逐一选择业务子流多的物理端口,从选择的物理端口获取一个业务子流分配给新增的物理端口;直到所述新增的物理端口上的业务子流的个数达到预设个数时,停止分配;业务报文根据业务子流找到对应的转发物理端口。
本发明实施例还提供了另一种减少链路聚合组中业务损伤的方法,所述方法包括将业务报文分为多个业务子流,并将所述多个业务子流平均分配给每个物理端口;当删除物理端口时,将删除的物理端口上的业务子流逐一平均分配给其它的物理端口;直到所述删除的物理端口上的业务子流的个数等于0时,停止分配;
业务报文根据业务子流找到对应的转发物理端口。
本发明实施例提供了一种减少链路聚合组中业务损伤的装置,所述装置包括初始化模块、新增端口处理模块和转发端口查找模块;所述初始化模块用于将业务报文分为多个业务子流,并将所述多个业务子流平均分配给每个物理端口;所述新增端口处理模块用于当新增物理端口时,根据所述初始化模块的分配结果,逐一选择业务子流多的物理端口,从选择的物理端口获取一个业务子流分配给新增的物理端口;直到所述新增的物理端口上的业务子流的个数达到预设个数时,停止分配;所述转发端口查找模块用于业务报文根据业务子流找到对应的转发物理端口。
本发明实施例还提供了另一种减少链路聚合组中业务损伤的装置,所述装置包括初始化模块、删除端口处理模块和转发端口查找模块;所述初始化模块用于将业务报文分为多个业务子流,并将所述多个业务子流平均分配给每个物理端口;所述删除端口处理模块用于当删除物理端口时,将删除的物理端口上的业务子流逐一平均分配给所述初始化模块分配的其它的物理端口;直到所述删除的物理端口上的业务子流的个数等于0时,停止分配;所述转发端口查找模块用于业务报文根据业务子流找到对应的转发物理端口。
本发明实施例的技术方案带来的有益效果是本发明实施例通过将业务报文分为多个业务子流,并将业务子流平均分配给链路聚合组中的每个物理端口,链路聚合组在进行物理端口的增加或删除时,可以只对受到影响的业务子流进行操作,业务报文根据业务子流查找转发报文的端口,使业务受到的影响最小。


图1是现有技术中链路聚合组的结构示意图;图2是本发明实施例1提供的业务子流与物理端口的对应关系示意图;图3是本发明实施例1提供的减少链路聚合组中业务损伤的方法流程图;图4是本发明实施例1提供的对新增端口配置业务子流的配置结果示意图;图5是本发明实施例2提供的减少链路聚合组中业务损伤的装置示意图;图6是本发明实施例3提供的减少链路聚合组中业务损伤的方法流程图;图7是本发明实施例4提供的减少链路聚合组中业务损伤的装置示意图。
具体实施例方式
下面结合附图和具体实施例对本发明作进一步说明,但本发明不局限于以下实施例。
本发明实施例将业务报文分为多个业务子流,并将业务子流平均分配给不同的物理端口,相应的业务报文会根据业务子流对应的物理端口发送出去。如果物理端口状态发生变化,要加入或离开聚合组时,只需修改受影响的业务子流和物理端口的对应关系。
其中,业务报文根据分发算法对应多条业务子流。具体分发算法可以是根据以太网报文中的目的MAC地址字段、源MAC地址字段或二者的组合或其它方式进行业务子流的分发,本发明不涉及这种具体的分发算法,这里不再赘述。
实施例1初始化时先设置聚合组中只有一个物理端口,所有业务子流都与该物理端口关联,进行增加物理端口后,物理端口与业务子流的对应关系如表1所示,有n-(m%n)个物理端口中的每个端口对应m/n个业务子流,其中m%n表示m模除n,其结果为m除以n的余数。另外m%n个物理端口中的每个端口对应(m/n)+1个业务子流。为了使业务报文在每个端口分配的比较平均,本实施例两组端口对应的业务子流的个数只相差1,后续增加或删除物理端口时也要满足该关系。但不局限于这种分配,两组端口对应的业务子流的个数也可以相差多个。

表1举例如图2所示,设备NE1和设备NE2上的业务报文可以划分成四条业务子流,分别为D1、D2、D3和D4,聚合组中有两个物理端口P1和P2,根据上述表1的对应关系,业务子流数为4/2=2,物理端口数为2-(4%2)=2;业务子流为(4/2)+1=3,物理端口数为4%2=0。
所以业务子流和物理端口的对应关系为每个物理端口有两个业务子流,即图中所示的业务子流D1和D2对应物理端口P1,业务子流D3和D4对应物理端口P2。
考虑增加端口的情形(一次只增加一个),增加端口后,各端口和业务子流的对应关系如表2所示

表2在链路聚合组中增加物理端口时,需要保证原物理端口和业务子流的对应关系变化最少,首先从业务子流个数多的端口开始分配。
参见图3,本实施例提供了一种减少链路聚合组中业务损伤的方法,包括以下步骤步骤101查看原物理端口中的业务子流的个数。
步骤102从业务子流个数多的一组端口中逐一选择一个端口,将所选择端口上的一个业务子流分配给新增端口,每增加一个业务子流就查看一下该新增端口中的业务子流个数是否达到m/(n+1),如果是,结束,否则执行步骤103。
步骤103判断是否这组端口遍历过一遍,如果是,执行104,否则返回步骤102。
步骤104从业务子流个数少的一组端口中逐一选择一个业务子流分配给新增端口,如果新增端口中的业务子流个数达到m/(n+1),则结束,否则执行步骤105。
步骤105判断是否这组端口遍历过一遍,如果是,执行102,否则返回步骤104。
业务子流分配完成后,业务报文将根据对应的业务子流找到对应的转发物理端口,进行报文转发。
举例以图2所示链路聚合组为例,在该链路聚合组中增加一个端口P3,因为端口P1和P2上的业务子流的个数相同,都为2,4%2为0,所以直接执行步骤103,先从端口P1上取一个业务子流,则此时端口P3上的业务子流数为1,达到4/(2+1)=1个,则结束。最后结果如图4所示,端口P1有1个业务子流D2,端口P2有2个业务子流D3和D4,端口P3有1个业务子流D1。
实施例2参见图5,本实施例提供了一种减少链路聚合组中业务损伤的装置,该装置包括初始化模块、新增端口处理模块和转发端口查找模块;其中,初始化模块用于将业务报文分为多个业务子流,并将所述多个业务子流平均分配给每个物理端口;新增端口处理模块用于当新增物理端口时,根据初始化模块的分配结果,逐一选择业务子流多的物理端口,从选择的物理端口获取一个业务子流分配给新增的物理端口;直到新增的物理端口上的业务子流的个数达到预设个数时,停止分配;转发端口查找模块用于业务报文根据业务子流找到对应的转发物理端口。
多个业务子流平均分配给每个物理端口后,各个物理端口上的业务子流的个数最多相差一个。
当业务子流的总数为m,物理端口总数为n时,新增端口处理模块中的预设个数可以为m除以n所得的整数值。
实施例3考虑删除端口的情形(一次只删除一个),删除后各物理端口和业务子流的对应关系如表3所示

表3删除端口可释放的业务子流的个数可能为m/n或(m/n)+1个,参见图6,释放的业务子流按以下方法进行分配步骤201查看删除一个物理端口后剩余的物理端口中业务子流的个数。
步骤202选择业务子流个数少的一组物理端口,将所删除的物理端口上的业务子流逐一分配给选择的一组物理端口,每个物理端口分配一个业务子流。
步骤203查看所删除物理端口中的业务子流个数是否为0,如果是,结束,否则,执行步骤204。
步骤204从删除一个物理端口后剩余的物理端口中选择业务子流个数多的一组物理端口。
步骤205将所删除的物理端口上剩余的业务子流逐一分配给新选择的一组物理端口,每个物理端口分配一个业务子流。
步骤206查看所删除物理端口中的业务子流个数是否为0,如果是,结束,否则,执行步骤202。
业务子流分配完成后,业务报文将根据对应的业务子流找到对应的转发物理端口,进行报文转发。
举例以图4所示链路聚合组为例,在该链路聚合组中删除物理端口P1,则将端口P1上的业务子流D2分配给端口P3。如果是删除端口P2时,则将业务子流D3和D4分别分配给端口P1和端口P3。
实施例4参见图7,本发明实施例还提供了另一种减少链路聚合组中业务损伤的装置,该装置包括初始化模块、删除端口处理模块和转发端口查找模块;其中,初始化模块用于将业务报文分为多个业务子流,并将多个业务子流平均分配给每个物理端口;删除端口处理模块用于当删除物理端口时,将删除的物理端口上的业务子流逐一平均分配给初始化模块所分配的其它物理端口;直到删除的物理端口上的业务子流的个数等于0时,停止分配;转发端口查找模块用于业务报文根据业务子流找到对应的转发物理端口。
该初始化模块进行业务子流的分配时,多个业务子流平均分配给每个物理端口后,各个物理端口上的业务子流的个数最多相差一个。
以上实施例通过将业务报文分为多个业务子流,并将所有的业务子流平均分配给聚合组内的每一个物理端口。当进行物理端口的增加或删除时,可以只对受到影响的业务子流进行操作,业务报文根据业务子流查找转发报文的端口,使业务受到的影响最小;操作过程可以保持流量均衡,且业务子流的个数越多,每个业务子流对应的业务流量就越少,修改业务子流和端口的对应关系时受到影响的业务也越少,均衡性越好。
以上所述的实施例,只是本发明的一种较优选的具体实施方式
,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
权利要求
1.一种减少链路聚合组中业务损伤的方法,其特征在于,所述方法包括将业务报文分为多个业务子流,并将所述多个业务子流平均分配给每个物理端口;当新增物理端口时,逐一选择业务子流多的物理端口,从选择的物理端口获取一个业务子流分配给新增的物理端口;直到所述新增的物理端口上的业务子流的个数达到预设个数时,停止分配;业务报文根据业务子流找到对应的转发物理端口。
2.如权利要求1所述的减少链路聚合组中业务损伤的方法,其特征在于,所述将所述多个业务子流平均分配给每个物理端口后,各个物理端口上的业务子流的个数最多相差一个。
3.如权利要求1或2所述的减少链路聚合组中业务损伤的方法,其特征在于,所述业务子流的总数为m,所述物理端口总数为n,所述预设个数为m除以n所得的整数值。
4.一种减少链路聚合组中业务损伤的方法,其特征在于,所述方法包括将业务报文分为多个业务子流,并将所述多个业务子流平均分配给每个物理端口;当删除物理端口时,将删除的物理端口上的业务子流逐一平均分配给其它的物理端口;直到所述删除的物理端口上的业务子流的个数等于0时,停止分配;业务报文根据业务子流找到对应的转发物理端口。
5.如权利要求4所述的减少链路聚合组中业务损伤的方法,其特征在于,所述将所述多个业务子流平均分配给每个物理端口后,各个物理端口上的业务子流的个数最多相差一个。
6.一种减少链路聚合组中业务损伤的装置,其特征在于,所述装置包括初始化模块、新增端口处理模块和转发端口查找模块;所述初始化模块用于将业务报文分为多个业务子流,并将所述多个业务子流平均分配给每个物理端口;所述新增端口处理模块用于当新增物理端口时,根据所述初始化模块的分配结果,逐一选择业务子流多的物理端口,从选择的物理端口获取一个业务子流分配给新增的物理端口;直到所述新增的物理端口上的业务子流的个数达到预设个数时,停止分配;所述转发端口查找模块用于业务报文根据业务子流找到对应的转发物理端口。
7.如权利要求6所述的减少链路聚合组中业务损伤的装置,其特征在于,所述物理端口上的业务子流的个数最多相差一个。
8.如权利要求6或7所述的减少链路聚合组中业务损伤的装置,其特征在于,所述业务子流的总数为m,所述物理端口总数为n,所述预设个数为m除以n所得的整数值。
9.一种减少链路聚合组中业务损伤的装置,其特征在于,所述装置包括初始化模块、删除端口处理模块和转发端口查找模块;所述初始化模块用于将业务报文分为多个业务子流,并将所述多个业务子流平均分配给每个物理端口;所述删除端口处理模块用于当删除物理端口时,将删除的物理端口上的业务子流逐一平均分配给所述初始化模块分配的其它的物理端口;直到所述删除的物理端口上的业务子流的个数等于0时,停止分配;所述转发端口查找模块用于业务报文根据业务子流找到对应的转发物理端口。
10.如权利要求9所述的减少链路聚合组中业务损伤的装置,其特征在于,所述物理端口上的业务子流的个数最多相差一个。
全文摘要
本发明提供了一种减少链路聚合组中业务损伤的方法和装置,属于网络通信领域。为了缓解现有链路聚合技术中增/删物理端口时对业务的损伤,本发明提供了一种减少链路聚合组中业务损伤的方法,包括将业务报文分为多个业务子流,并将业务子流平均分配给每个端口;当新增/删除端口时,为新增端口配置预设个数的业务子流或将删除端口上的业务子流平均分配给其它的端口,业务报文根据业务子流找到转发的物理端口。本发明还提供了一种减少链路聚合组中业务损伤的装置,包括初始化模块、新增端口处理模块或删除端口处理模块、转发端口查找模块。本发明在进行端口的增加或删除时,只对受影响的业务子流进行操作,使业务受到的影响最小。
文档编号H04L12/24GK101014005SQ20071000119
公开日2007年8月8日 申请日期2007年1月22日 优先权日2007年1月22日
发明者李兢涛 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1