链路聚合选路方法及装置的制作方法

文档序号:7584777阅读:157来源:国知局
专利名称:链路聚合选路方法及装置的制作方法
技术领域
本发明涉及通信领域,具体而言,涉及一种链路聚合选路方法及装置。
背景技术
为了增强网络通信的可靠性、增加通信带宽,可以将多条链路捆绑在一起形成一 个逻辑链路,这种链路捆绑技术通常称为链路聚合。链路聚合后端口的带宽是每个独立端口带宽的总和,例如可以将6个lOOM/s的物 理端口聚合成一个600M/S的逻辑端口,因此当物理端口的带宽无法满足需求时,通过链路 聚合可以便捷有效地增加端口带宽。通过链路聚合能有效提高网络通信的可靠性,例如当一个聚合组的某一条链路物 理状态发生改变,导致链路连接失败,此时数据流会自动重新定向到其他链路上,保证网络 正常工作,因此链路聚合是增强网络可靠性的有效方法。为了将数据流有效地分配给各个成员链路,可以采取链路聚合选路。链路聚合选 路通常有两种不同的策略基于流和基于包。下面分别对其进行描述。基于流是根据报文的特征值(通常包括报文的目的地址、源地址、目的端口号、源 端口号、协议类型和服务类型,通常简称为报文的“六元组”)进行选路,这种选路策略的优 点是能够保证属于同一业务的数据流走相同的链路,降低报文分组出现乱序、抖动的可能 性,其缺点是相同业务的流走相同的链路,当该业务的流量较大时不能有效地分担给链路 聚合的各个成员,造成网络的拥塞、体现不出链路聚合负荷分担的优点。基于包的选路是根据报文到达的先后顺序依次选路,这种选路策略的优点是将流 量平均分配给各个成员链路,能取得良好的负荷分担效果,但由于这种选路与报文无关,可 能将同一应用分组的报文分到不同的成员链路,可能会造成分组报文乱序和抖动。相关技术中,链路聚合选路主要通过时间换空间,即对序列值计算后再查链路聚 合成员表实现选路,因计算复杂、运算量大、耗时长,使得各链路聚合成员间的负荷误差较 大,报文转发性能不高。

发明内容
针对相关技术中链路聚合选路计算复杂、运算量大、耗时长的问题而提出本发明, 为此,本发明的主要目的在于提供一种链路聚合选路方法及装置,以解决上述问题。为了实现上述目的,根据本发明的一个方面,提供了 一种链路聚合选路方法。根据本发明的链路聚合选路方法包括根据链路聚合成员的带宽,对链路聚合成 员进行加权;根据预先设定的选路策略,获取选路索引;根据选路索引,查找加权后的链路 聚合成员;选择查找到的链路聚合成员进行报文转发。进一步地,根据链路聚合成员的带宽,对链路聚合成员进行加权包括在链路聚合 成员中确定带宽最小的链路聚合成员;以带宽最小的链路聚合成员的带宽为权重基准,根 据链路聚合成员中除带宽最小的链路聚合成员之外的其它链路聚合成员的带宽与权重基准的比值,确定其它链路聚合成员的权重值。进一步地,确定比值的整数部分作为其它链路聚合成员的权重值。进一步地,在根据链路聚合成员的带宽,对链路聚合成员进行加权之后,上述方法 还包括生成链路聚合成员表,其中链路聚合成员表中包括多个条目,多个条目中的每个条 目保存有链路聚合成员中的一个链路聚合成员,链路聚合成员在多个条目中占有的条目数 与其权重值相对应。进一步地,根据预先设定的选路策略,获取选路索引包括以下之一对于基于包的 选路策略,对接收到的数据包设置时标,并确定时标作为选路索引;对于基于流的选路策 略,提取接收到的报文的流特征序列值,计算流特征序列值对链路聚合成员表包括的多个 条目的条目数的模值,并确定模值作为选路索引。进一步地,对接收到的数据包设置时标包括对接收到的第一数据包设置时标; 判断时标是否小于链路聚合成员表包括的多个条目的条目数;如果判断结果为是,则按照 时标加一对接收到的第二数据包设置时标,否则,设置第二数据包的时标为零,其中第二数 据包是在第一数据包之后接收到的。进一步地,在对接收到的数据包设置时标之前,上述方法还包括设置多个用于设 置时标的时标发生器,其中每个时标发生器与每个链路聚合成员的微处理器相对应,每个 时标发生器均由网络处理器进行调度。进一步地,计算流特征序列值对链路聚合成员表包括的多个条目的条目数的模值 包括以字节为单位,拆分流特征序列值;计算拆分后的流特征序列值对条目数的第一模 值;以字节为单位,对第一模值进行组合;计算组合后的第一模值对条目数的第二模值。为了实现上述目的,根据本发明的另一个方面,提供了 一种链路聚合选路装置。根据本发明的链路聚合选路装置包括加权模块,用于根据链路聚合成员的带宽, 对链路聚合成员进行加权;获取模块,用于根据预先设定的选路策略,获取选路索引;查找 模块,用于根据选路索引,查找加权后的链路聚合成员;转发模块,用于选择查找到的链路 聚合成员进行报文转发。进一步地,加权模块包括第一确定子模块,用于在链路聚合成员中确定带宽最小 的链路聚合成员;第二确定子模块,用于以带宽最小的链路聚合成员的带宽为权重基准,根 据链路聚合成员中除带宽最小的链路聚合成员之外的其它链路聚合成员的带宽与权重基 准的比值,确定其它链路聚合成员的权重值。本发明通过链路聚合成员的加权并通过选路索引查找该加权后的链路聚合成员, 可以实现绝对的均流,从而提高报文转发性能。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发 明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1是根据本发明实施例的链路聚合选路方法的流程图;图2是根据本发明优选实施例的链路聚合选路方法的流程图;图3是本发明优选实施例的计算链路聚合成员的选路索引的流程图;图4是根据本发明实施例的链路聚合选路装置的结构框图。
具体实施例方式需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相 互组合。下面将参考附图并结合实施例来详细说明本发明。图1是根据本发明实施例的链路聚合选路方法的流程图,如图1所示,包括如下的 步骤S102至步骤S108。步骤S102,根据链路聚合成员的带宽,对链路聚合成员进行加权。步骤S104,根据预先设定的选路策略,获取选路索引。步骤S106,根据选路索引,查找加权后的链路聚合成员。步骤S108,选择查找到的链路聚合成员进行报文转发。相关技术中,链路聚合选路主要通过时间换空间,即对序列值计算后再查链路聚 合成员表实现选路,因计算复杂、运算量大、耗时长,使得各链路聚合成员间的负荷误差较 大,报文转发性能不高。本发明实施例中,通过链路聚合成员的加权并通过选路索引查找该 加权后的链路聚合成员,可以实现绝对的均流,从而提高报文转发性能。优选地,本发明实施例的链路聚合选路方法可以应用于多个链路聚合组中,其中 每个链路聚合组均包含多个链路聚合成员,每个链路聚合组通过各自的链路聚合号进行区 分,这样,可以实现本发明实施例的链路聚合选路方法的扩展。优选地,根据链路聚合成员的带宽,对链路聚合成员进行加权包括在链路聚合成 员中确定带宽最小的链路聚合成员;以带宽最小的链路聚合成员的带宽为权重基准,根据 链路聚合成员中除带宽最小的链路聚合成员之外的其它链路聚合成员的带宽与权重基准 的比值,确定其它链路聚合成员的权重值。优选地,确定比值的整数部分作为其它链路聚合成员的权重值。优选地,在根据链路聚合成员的带宽,对链路聚合成员进行加权之后,上述方法还 包括生成链路聚合成员表,其中链路聚合成员表中包括多个条目,多个条目中的每个条目 保存有链路聚合成员中的一个链路聚合成员,链路聚合成员在多个条目中占有的条目数与 其权重值相对应。本优选实施例中,将链路聚合成员的带宽作为选路权重,按权重比例安排各链路 聚合成员在链路聚合成员表中出现的频次。由于链路聚合成员表是经过权重化处理后的链 路聚合成员的成员列表,其条目数仅为经过权重化处理的链路聚合成员的成员个数,与链 路聚合选路负荷分担的精度无关,这样可以极大地缩小表空间占用,便于采用直接表实现, 提高查表速度。需要说明的是,本发明中定义上述链路聚合成员表的条目数为可选链路聚合成员 数,该可选链路聚合成员数通常大于或等于实际的链路聚合成员数(只有当所有链路聚合 成员的带宽都相等时才取等于)。优选地,根据预先设定的选路策略,获取选路索引包括以下之一对于基于包的选 路策略,对接收到的数据包设置时标,并确定时标作为选路索引;对于基于流的选路策略, 提取接收到的报文的流特征序列值,计算流特征序列值对链路聚合成员表包括的多个条目 的条目数的模值,并确定模值作为选路索引。本优选实施例中,将两种选路策略的共同点尽可能地统一,采用同一模块同一流程来实现,减少了对资源的占用,提高了链路聚合选路装置的整体性能。优选地,对接收到的数据包设置时标包括对第一数据包设置时标;判断时标是 否小于链路聚合成员表包括的多个条目的条目数;如果判断结果为是,则按照时标加一对 第二数据包设置时标,否则,设置第二数据包的时标为零,其中第二数据包是在第一数据包 之后接收到的。优选地,在对接收到的数据包设置时标之前,上述方法还包括设置多个用于设置 时标的时标发生器,其中每个时标发生器与每个链路聚合成员的微处理器相对应,每个时 标发生器均由网络处理器进行调度。优选地,计算流特征序列值对链路聚合成员表包括的多个条目的条目数的模值包 括以字节为单位,拆分流特征序列值;计算拆分后的流特征序列值对条目数的第一模值; 以字节为单位,对第一模值进行组合;计算组合后的第一模值对条目数的第二模值。本优选实施例中,通过报文流特征序列值拆分与组合,可以简化模值的计算,从而 用较小的运算量极大地提高了各成员间的负荷精度。优选地,在选择查找到的链路聚合成员进行报文转发之后,上述方法还包括根据 链路聚合成员的绑定/解绑,和/或根据物理链路的激活/非激活,添加/删除链路聚合成
员O下面将结合实例对本发明实施例的实现过程进行详细描述。图2是根据本发明优选实施例的链路聚合选路方法的流程图,如图2所示,包括如 下的步骤S202至步骤S210。步骤S202,自学习当前链路聚合成员参数。具体地,学习当前链路聚合组的个数,链路聚合成员个数,各成员的链路带宽、链 路状态等参数,实时监测链路的绑定与解绑、成员的激活与非激活。步骤S204,分析步骤S202学习到的链路聚合成员参数,对可选成员作权重化处 理,即按照各成员的带宽比例赋予选路权重值,以权重值最小者为基准,其他成员的权重值 除以基准值,其整数部分作为该成员可被选取的频率;将各成员按照各自可选的频率生成 选路成员列表,并给出经权重处理后的可选成员数,该数值通常大于或等于实际的链路聚 合成员数目。步骤S206,读取链路聚合选路策略,具体地,通过链路聚合号查找与之对应的选路 策略。步骤S208,计算选路索引值,具体计算过程如图3所示。步骤S210,用链路聚合号和选路索引查成员表,获取出端口号,选路过程结束。图3是本发明优选实施例的计算链路聚合成员的选路索引的流程图,如图3所示, 包括如下的步骤301至步骤312。步骤301,获取配置的链路聚合成员选路策略,若为逐包模式,进入步骤302,若为 逐流模式进入步骤307。步骤302,读取数据包到达时刻的时标值,并赋给该数据包。特别地,当多个微处理 器并行处理时,易造成时标冲突与越界。因此,为各个微处理器均分配一个独立的时标发生 器,各时标发生器的调度由网络处理器的调度模块完成。步骤303,数据包的时标与链路聚合可选成员数相比较,若时标值小于可选成员
7数,进入步骤304,否则进入步骤305。步骤304,时标加1,但并不改变已打在数据包上的时标值,进入步骤306。步骤305,时标已经达到可分配的最大值,时标归零。下一个接收到的数据包,重新 从“0”开始分配时标。步骤306,用打在数据包上的时标值作为链路聚合选路索引,进入步骤312。步骤307,提取报文特征信息,例如可获取IP报文的“六元组”,通过哈希运算单 元计算出适当长度的流特征值序列值,序列值的长度与成员链路间负荷分担的精度密切相 关,通常序列值长度越大越有利于负荷分担的精度。步骤308,为了利用网络处理器简单的求模运算,将流特征值按照字节拆分成若干 个,例如一个2字节长度的流特征值X,可以拆分为Xl和X0,其中Xl = X/255, XO = X% 255。步骤309,对拆分后的流特征值的各部分分别对可选链路成员数求模;步骤310,对步骤309求模后的数值再进行按字节组合,再对可选链路成员数求 模。步骤311,步骤310的求模结果作为选路索引值。步骤312,用选路索引值查找选路表,获取出端口信息。需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的 计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不 同于此处的顺序执行所示出或描述的步骤。本发明实施例提供了一种链路聚合选路装置,该链路聚合选路装置可以用于实现 上述链路聚合选路方法。图4是根据本发明实施例的链路聚合选路装置的结构框图,如图 4所示,包括加权模块42,获取模块44,查找模块46,转发模块48。下面对其结构进行详细 描述。加权模块42,用于根据链路聚合成员的带宽,对链路聚合成员进行加权;获取模 块44,用于根据预先设定的选路策略,获取选路索引;查找模块46,连接至加权模块42和获 取模块44,用于根据获取模块44获取的选路索引,查找加权模块42加权后的链路聚合成 员;转发模块48,连接至查找模块46,用于选择查找模块46查找到的链路聚合成员进行报 文转发。优选地,加权模块42包括第一确定子模块422和第二确定子模块424。下面对其 结构进行详细描述。第一确定子模块422,用于在链路聚合成员中确定带宽最小的链路聚合成员;第 二确定子模块424,连接至第一确定子模块422,用于以第一确定子模块422确定的带宽最 小的链路聚合成员的带宽为权重基准,根据链路聚合成员中除带宽最小的链路聚合成员之 外的其它链路聚合成员的带宽与权重基准的比值,确定其它链路聚合成员的权重值。需要说明的是,装置实施例中描述的链路聚合选路装置对应于上述的方法实施 例,其具体的实现过程在方法实施例中已经进行过详细说明,在此不再赘述。综上所述,根据本发明的上述实施例,提供了 一种链路聚合选路方法及装置。本发 明通过链路聚合成员的加权并通过选路索引查找该加权后的链路聚合成员,可以实现绝对 的均流,从而提高报文转发性能。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用 的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成 的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储 在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们 中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的 硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技 术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修 改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种链路聚合选路方法,其特征在于,包括根据链路聚合成员的带宽,对所述链路聚合成员进行加权; 根据预先设定的选路策略,获取选路索引; 根据所述选路索引,查找加权后的所述链路聚合成员; 选择查找到的所述链路聚合成员进行报文转发。
2.根据权利要求1所述的方法,其特征在于,根据链路聚合成员的带宽,对所述链路聚 合成员进行加权包括在所述链路聚合成员中确定带宽最小的链路聚合成员;以所述带宽最小的链路聚合成员的带宽为权重基准,根据所述链路聚合成员中除所述 带宽最小的链路聚合成员之外的其它链路聚合成员的带宽与所述权重基准的比值,确定所 述其它链路聚合成员的权重值。
3.根据权利要求2所述的方法,其特征在于,确定所述比值的整数部分作为所述其它 链路聚合成员的权重值。
4.根据权利要求3所述的方法,其特征在于,在根据链路聚合成员的带宽,对所述链路 聚合成员进行加权之后,所述方法还包括生成链路聚合成员表,其中所述链路聚合成员表 中包括多个条目,所述多个条目中的每个条目保存有所述链路聚合成员中的一个链路聚合 成员,所述链路聚合成员在所述多个条目中占有的条目数与其权重值相对应。
5.根据权利要求4所述的方法,其特征在于,根据预先设定的选路策略,获取选路索引 包括以下之一对于基于包的选路策略,对接收到的数据包设置时标,并确定所述时标作为所述选路 索引;对于基于流的选路策略,提取接收到的报文的流特征序列值,计算所述流特征序列值 对所述链路聚合成员表包括的多个条目的条目数的模值,并确定所述模值作为所述选路索 引。
6.根据权利要求5所述的方法,其特征在于,对接收到的数据包设置时标包括 对接收到的第一数据包设置时标;判断所述时标是否小于所述链路聚合成员表包括的多个条目的条目数; 如果判断结果为是,则按照所述时标加一对接收到的第二数据包设置时标,否则,设置 所述第二数据包的时标为零,其中所述第二数据包是在所述第一数据包之后接收到的。
7.根据权利要求5所述的方法,其特征在于,在对接收到的数据包设置时标之前,所述 方法还包括设置多个用于设置时标的时标发生器,其中每个时标发生器与每个链路聚合成员的微 处理器相对应,所述每个时标发生器均由网络处理器进行调度。
8.根据权利要求5所述的方法,其特征在于,计算所述流特征序列值对所述链路聚合 成员表包括的多个条目的条目数的模值包括以字节为单位,拆分所述流特征序列值; 计算拆分后的所述流特征序列值对所述条目数的第一模值; 以字节为单位,对所述第一模值进行组合; 计算组合后的所述第一模值对所述条目数的第二模值。
9.一种链路聚合选路装置,其特征在于,包括加权模块,用于根据链路聚合成员的带宽,对所述链路聚合成员进行加权; 获取模块,用于根据预先设定的选路策略,获取选路索引; 查找模块,用于根据所述选路索引,查找加权后的所述链路聚合成员; 转发模块,用于选择查找到的所述链路聚合成员进行报文转发。
10.根据权利要求9所述的装置,其特征在于,所述加权模块包括第一确定子模块,用于在所述链路聚合成员中确定带宽最小的链路聚合成员; 第二确定子模块,用于以所述带宽最小的链路聚合成员的带宽为权重基准,根据所述 链路聚合成员中除所述带宽最小的链路聚合成员之外的其它链路聚合成员的带宽与所述 权重基准的比值,确定所述其它链路聚合成员的权重值。
全文摘要
本发明公开了一种链路聚合选路方法及装置,该方法包括根据链路聚合成员的带宽,对链路聚合成员进行加权;根据预先设定的选路策略,获取选路索引;根据选路索引,查找加权后的链路聚合成员;选择查找到的链路聚合成员进行报文转发。本发明可以实现绝对的均流,从而提高报文转发性能。
文档编号H04W28/16GK102098740SQ20111003870
公开日2011年6月15日 申请日期2011年2月15日 优先权日2011年2月15日
发明者蔡广平, 钟炜 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1