负载分担的方法和设备的制作方法

文档序号:7693919阅读:101来源:国知局
专利名称:负载分担的方法和设备的制作方法
技术领域
本发明涉及通信领域,特别涉及负载分担的方法和设备。
技术背景随着IP业务转发逐步扩容,流量负载分担的转发算法变得越来越重要,流量负载分担算 法直接影响着网络中资源是否能自动调配使用。不合适的IP流量负载分担算法直接造成网络资源的浪费,甚至影响到网络转发的服务质 量。现有技术中有两种负载分担方法,分别如下1) 逐流的负载分担该方法根据报文的源IP地址和目的IP地址来选择下一跳, 一般通过对源IP地址、目的IP地址进行HASH (哈希)运算,根据运算的结果选择对应的下一跳。这种方式对于源IP 地址、目的IP地址相同的报文所选择的下一跳都相同。2) 逐包的负载分担该方法采用对几个下一跳进行平均发送,保证流量通过下一跳的平均性,每个下一跳出 接口转发的流量都一致。在实现本发明的过程中,发明人发现现有技术至少存在以下问题对于逐流的负载分担,无法实现均衡流量的目的,例如,某条同一个源IP地址、目的IP地址的报文过多,会造成某下一跳负载过重;对于逐包的负载分担,可以将流量进行平均,但是这种平均是针对数学的平均,不能做 到真实流量的平均。例如某个300MB/S的转发流对应三个下一跳,分别是POS (Packet Over Synchronous Digital Hierarchy,同步数字系歹lK专送包)接口 、 ATM (Asynchronous Trunk Module, 异步中继模块)接口、 El (以太网接口),其中,POS出口转发能力有155MB/S, ATM出口 转发能力100MB/S(例如,由于转发芯片的原因不能达到155MB/S),E1出口转发能力2MB/S。 POS、 ATM、 El每个出接口各100MB/S, El带宽能力不能达到,ATM勉强达到,POS完全 达到并且有55MB/S的空闲,这样会导致转发流量并没有完全分配正确。发明内容为了使流量转发均衡,本发明实施例提供了一种负载分担的方法和设备。所述技术方案 如下一种负载分担的方法,所述方法包括对接收到的任一报文,根据所述报文的目的地址查找对应的下一跳; 当査到多个下一跳时,更新所述多个下一跳中每个下一跳对应的流量桶内的令牌数; 比较更新后的每个下一跳对应的令牌数的大小,选择令牌数最大的下一跳; 将所述报文发送给所选择的下一跳。本发明实施例还提供了一种负载分担的设备,所述设备包括査找模块,用于对接收到的任一报文,根据所述报文的目的地址查找对应的下一跳;更新模块,用于当所述查找模块查到多个下一跳时,更新所述多个下一跳中每个下一跳 对应的流量桶内的令牌数;选择模块,用于比较所述更新模块更新后的每个下一跳对应的令牌数的大小,选择令牌 数最大的下一跳;转发模块,用于将所述报文发送给所述选择模块选择的下一跳。本发明实施例提供的技术方案的有益效果是-通过更新每个下一跳对应的流量桶内的令牌数,将对接收到的任一报文发送给令牌数最 大的下一跳,实现了实时保证流量带宽的平均分配,增强了网络的性能。


图1是本发明实施例1提供的负载分担的方法流程图;图2是本发明实施例1提供的组网结构图;图3是本发明实施例2提供的负载分担的设备示意图;图4是本发明实施例2提供的另一种负载分担的设备示意图;图5是本发明实施例2提供的第三种负载分担的设备示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进 一步地详细描述。本发明实施例通过对接收到的任一报文,根据该报文的目的地址査找对应的下一跳;当 査到多个下一跳时,更新每个下一跳对应的流量桶内的令牌数;将该报文发送给令牌数最大 的下一跳,实现了实时保证流量带宽的平均分配。实施例1本实施例提供了一种负载分担的方法,该方法基于流量桶实时计算出每个下一跳流量负 载情况,即令牌桶的个数,选择转发报文的下一跳。参见图l,该方法具体包括步骤101:收到报文后,査找该报文的目的地址对应的下一跳;例如在FIB (Forwarding Information Table,转发信息表)或其它路由转发表中进行査找;步骤102:判断查找到的下一跳的个数是否大于l,如果是,执行步骤103;否则,执行 步骤106;在进行报文转发时,通常会查到多个对应的下一跳;步骤103:更新査找到的下一跳对应的流量桶内的令牌数,即分别对每个下一跳进行如 下计算1) 计算最近一次向该下一跳发送报文到当前时间的时间差DT = Tn—Tp,其中,Tn为 当前时间戳,Tp为上一次向该下一跳转发报文的时间戳;2) 向该下一跳的设定流量桶内注入DT时间内的令牌数,并计算当前流量桶内的令牌数; 因为每个设备都会按照一定的速率不断地转发报文,而流量桶内的令牌数是该设备能够承载报文多少的能力体现,所以需要将DT时间内该流量桶内的令牌数更新,即根据该设备 DT时间内转发报文的多少注入相应的令牌数;BTn=BT+VXDT,其中,BTn为当前流量桶内的令牌数,BT为上一次流量桶内的令 牌数,V为出接口速率或用户配置出接口分担的转发速率,参数V可以是出接口的物理速率; 也可以是用户自定义出接口速率,因为某些出接口虽然带宽足够,但是因为芯片转发能力不 一定能够线速转发;也可以用流量工程资源预留协议计算出资源分配情况的出接口带宽,通 过资源预留,保证网络中某节点设备各个下一跳应该有的带宽;3) 判断当前流量桶内的令牌数BTn是否大于桶高H,如果是,则BTn二H;否则,BTn =BT+VXDT;其中,桶高H是根据出接口的带宽大小预先设定的值;步骤104:比较更新后的每个下一跳对应的令牌数的大小,选择令牌数(BTn)最大的下 一跳;步骤105:将收到的报文转发给所选择的下一跳。 步骤106:将收到的报文转发给查到的下一跳。进一步地,将该报文转发给所选择的下一跳后,记录所选择的下一跳新的转发时间戳, 即Tp二Tn;转发完成后,更新并记录所选择的下一跳的流量桶的令牌数,具体更新如下如果BTn大于该报文的字节数S,则该下一跳的令牌数BT二BTn—S; 如果BTn小于等于该报文的字节数S,则该下一跳的令牌数BT二0。 如果只査找到一个下一跳时,记录该下一跳新的转发时间戳,即Tp二Tn;转发完成后, 更新并记录该下一跳的流量桶的令牌数,具体更新如下如果上一次流量桶内的令牌数BTn-,大于该报文的字节数S,则该下一跳的令牌数BT=BTn—,—S;如果上一次流量桶内的令牌数BT^小于等于该报文的字节数S,则该下一跳的令牌数 BT=0。下面以图2提供的组网结构为例,其中,路由器Router-A的路由202.204.10.1,有两个 下一跳Router-B、 Router-C,分别走链路A和链路B,链路A的带宽155MB/S,链路B的带 宽100MB/S。目的地为202.204.10.1 ,经过Router-A流量为255 MB/S。下面简单介绍一下上 述方法的应用过程在Router-A中,根据链路A和链路B的带宽,为这两个下一跳分配桶高为BT, BT(n) 为n时刻的桶高;到202.204.10.1的流量假设为255 MB/S, Tn为当前时间,Tp为上一次报 文到来时间;Router-A以带宽155 MB/S向链路A的令牌桶注入令牌,BT(n)=BT(n-l)+155X(Tn —Tp);以带宽100 MB/S向链路B的令牌桶注入令牌,BT(n)=BT(n-l)+100X(Tn —Tp)。随着时间推移,BT(n)^BT(n-l)+链路带宽X(Tn —Tp) —实际流量VX(Tn —Tp),所 以从较长时间来看链路A和链路B的令牌桶分别为链路A的令牌桶BT(n-l)+链路A带宽155X(Tn —Tp) —链路A实际流量X(Tn —Tp);链路B的令牌桶BT(n-l)+链路B带宽100X(Tn —Tp) —链路B实际流量X(Tn —Tp); 进行负载分担时,可以分配链路A的实际流量为155 MB/S,链路B实际流量为100 MB/S, 从而达到根据链路带宽进行分载分担的效果。本实施例通过检査下一跳的令牌数判断下一跳的负载流量情况,进而选择负载流量最空 闲的下一跳,实现了负载均衡,增强了网络性能。实施例2参见图3,本实施例提供了一种负载分担的设备,包括查找模块,用于对接收到的任一报文,根据报文的目的地址查找对应的下一跳; 更新模块,用于当査找模块查到多个下一跳时,更新多个下一跳中每个下一跳对应的流 量桶内的令牌数;选择模块,用于比较更新模块更新后的每个下一跳对应的令牌数的大小,选择令牌数最 大的下一跳;转发模块,用于将报文发送给选择模块选择的下一跳。 参见图4,本实施例中的更新模块包括计算单元,用于计算上一次向查找模块査找到的下一跳转发报文的时间戳与当前时间戳 的时间差,根据该下一跳对应的出接口速率计算时间差内该下一跳转发报文的流量;更新单元,用于根据计算单元计算出的下一跳转发报文的流量更新该下一跳对应的流量 桶内的令牌数。进一歩地,更新单元包括计算子单元,用于将该下一跳对应的流量桶内原有的令牌数加上计算单元计算出的下一 跳转发报文的流量,得到新的令牌数;更新子单元,用于判断计算子单元计算出的新的令牌数是否大于流量桶设定的桶高,如 果是,该下一跳当前的令牌数为桶高,否则,该下一跳当前的令牌数为新的令牌数。参见图5,该设备还包括记录模块,用于转发模块转发报文完成后,判断选择模块选择的下一跳更新后的令牌数 是否大于该报文的字节数,如果是,记录所选择的下一跳的令牌数为更新后的令牌数减去该 报文的字节数的差值;否则,记录所选择的下一跳的令牌数为0。上述设备中的查找模块查找到的下一跳为一个时,该转发模块还用于直接将该报文发送 给査找到的下一跳。相应地,记录模块还用于判断该下一跳上一次的令牌数是否大于所转发 的报文的字节数,如果是,记录该下一跳的令牌数为上一次的令牌数减去该报文的字节数的 差值;否则,记录该下一跳的令牌数为0。本实施例通过选择模块选择令牌数最大的下一跳作为转发设备,达到了负载均衡的目的, 同时,通过记录模块实时更新下一跳的令牌数,使进行后续报文转发时能够根据令牌数的多 少选择下一跳,增强了网络性能,以及该设备的实用性。以上实施例提供的技术方案中的全部或部分内容可以通过软件编程实现,其软件程序存 储在可读取的存储介质中,存储介质例如计算机中的硬盘、光盘或软盘。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之 内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1. 一种负载分担的方法,其特征在于,所述方法包括对接收到的任一报文,根据所述报文的目的地址查找对应的下一跳;当查到多个下一跳时,更新所述多个下一跳中每个下一跳对应的流量桶内的令牌数;比较更新后的每个下一跳对应的令牌数的大小,选择令牌数最大的下一跳;将所述报文发送给所选择的下一跳。
2. 如权利要求l所述的负载分担的方法,其特征在于,所述更新所述多个下一跳中每个 下一跳对应的流量桶内的令牌数包括计算上一次向下一跳转发报文的时间戳与当前时间戳的时间差; 根据该下一跳对应的出接口速率计算所述时间差内该下一跳转发报文的流量; 根据所述转发报文的流量更新该下一跳对应的流量桶内的令牌数。
3. 如权利要求2所述的负载分担的方法,其特征在于,所述根据该下一跳对应的出接口 速率计算所述时间差内该下一跳转发报文的流量包括将该下一跳对应的出接口速率乘以所述时间差,将乘积的结果作为所述时间差内该下一 跳转发报文的流量。
4. 如权利要求2所述的负载分担的方法,其特征在于,所述根据所述转发报文的流量更 新该下一跳对应的流量桶内的令牌数包括将该下一跳对应的流量桶内原有的令牌数加上所述时间差内该下一跳转发报文的流量, 得到新的令牌数;判断所述新的令牌数是否大于所述流量桶设定的桶高,如果是,该下一跳当前的令牌数 为所述桶高,否则,该下一跳当前的令牌数为所述新的令牌数。
5. 如权利要求2所述的负载分担的方法,其特征在于,所述下一跳对应的出接口速率为 用户预先配置、出接口的物理速率或流量工程资源预留协议预先设定的。
6. 如权利要求1-5中任一权利要求所述的负载分担的方法,其特征在于,所述将所述报文发送给所选择的下一跳之后还包括-判断所选择的下一跳更新后的令牌数是否大于所述报文的字节数,如果是,记录所选择 的下一跳的令牌数为所述更新后的令牌数减去所述报文的字节数的差值;否则,记录所选择 的下一跳的令牌数为0。
7. —种负载分担的设备,其特征在于,所述设备包括査找模块,用于对接收到的任一报文,根据所述报文的目的地址查找对应的下一跳;更新模块,用于当所述査找模块查到多个下一跳时,更新所述多个下一跳中每个下一跳 对应的流量桶内的令牌数;选择模块,用于比较所述更新模块更新后的每个下一跳对应的令牌数的大小,选择令牌 数最大的下一跳;转发模块,用于将所述报文发送给所述选择模块选择的下一跳。
8. 如权利要求7所述的负载分担的设备,其特征在于,所述更新模块包括 计算单元,用于计算上一次向所述查找模块查找到的下一跳转发报文的时间戳与当前时间戳的时间差,根据该下一跳对应的出接口速率计算所述时间差内该下一跳转发报文的流量; 更新单元,用于根据所述计算单元计算出的下一跳转发报文的流量更新该下一跳对应的流量桶内的令牌数。
9. 如权利要求8所述的负载分担的设备,其特征在于,所述更新单元包括 计算子单元,用于将该下一跳对应的流量桶内原有的令牌数加上所述计算单元计算出的下一跳转发报文的流量,得到新的令牌数;更新子单元,用于判断所述计算子单元计算出的新的令牌数是否大于所述流量桶设定的 桶高,如果是,该下一跳当前的令牌数为所述桶高,否则,该下一跳当前的令牌数为所述新 的令牌数。
10. 如权利要求8所述的负载分担的设备,其特征在于,所述设备还包括 记录模块,用于所述转发模块转发报文完成后,判断所述选择模块选择的下一跳更新后的令牌数是否大于所述报文的字节数,如果是,记录所选择的下一跳的令牌数为所述更新后 的令牌数减去所述报文的字节数的差值;否则,记录所选择的下一跳的令牌数为0。
全文摘要
本发明公开了一种负载分担的方法和设备。属于通信领域。所述方法包括对接收到的任一报文,根据所述报文的目的地址查找对应的下一跳;当查到多个下一跳时,更新所述多个下一跳中每个下一跳对应的流量桶内的令牌数;比较更新后的每个下一跳对应的令牌数的大小,选择令牌数最大的下一跳;将所述报文发送给所选择的下一跳。所述设备包括查找模块、更新模块、选择模块和转发模块。本发明通过更新每个下一跳对应的流量桶内的令牌数,将报文发送给令牌数最大的下一跳,实现了实时保证流量带宽的平均分配。
文档编号H04L29/02GK101272347SQ20081010545
公开日2008年9月24日 申请日期2008年4月29日 优先权日2008年4月29日
发明者维 施 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1