一种实现负荷分担的方法及装置的制造方法

文档序号:10666363阅读:457来源:国知局
一种实现负荷分担的方法及装置的制造方法
【专利摘要】本发明公开了一种实现负荷分担的方法及装置,包括:统计第一预设时长内在第一负荷分担方法下的各链路流量,获得系统的负荷分担参数;当负荷分担参数大于或等于预先设置的负荷分担阈值时,确定负荷分担不均,切换到第二负荷分担方法将流量分配到流量分发的链路中进行流量分发。本发明方法通过负荷分担参数超过负荷分担阈值时,采用第二负荷分担方法,解决了负荷分担不均的问题;进一步地,各种类流量按照由大至小分配到链路带宽从大到小的链路,其他链路在将第二比值最小的链路的第二比值减去分配给其的各种类流量的第一比值的和获得相应的差值小于零时对负荷分担造成影响,通过最大的链路进行消化处理,更加合理的解决了负荷分担不均的问题。
【专利说明】
一种实现负荷分担的方法及装置
技术领域
[0001]本发明涉及数据通信领域,尤指一种实现负荷分担的方法及装置。
【背景技术】
[0002]在路由器或其他产品中使用的,当进入路由器的流量大于路由器的单个链路的出接口带宽时,通过负荷分担方法将进入的流量分流到多个链路的出接口进行分流,从而满足用户流量的分发需求。
[0003]根据流量分流方式的不同,负荷分担方法又分为基于包模式负荷分担和基于流模式负荷分担。其中,基于包模式的负荷分担是指将进入路由器的流量随机分流到配置的多个负荷分担链路的出接口上;基于流模式的负荷分担在包括将流量分流多个负荷分担链路的出接口,与基于包模式的负荷分担不同,基于流模式的负荷分担还需要同时保证每个种类的流量只在一个链路的出接口发送,从而保证同一种类的流量在网络中经过的路径相同,也保证了相同种类的流量在数据传输过程中收发顺序上一致。具体的,基于包模式的负荷分担方法主要通过产生的随机值将需要负荷分担的流量通过处理映射到负荷分担的N个链路的出接口中,这种方法通过增加随机值的位数可以使负荷分担的效果更佳均匀。基于流模式的负荷分担方法实现较为复杂,需要根据不同的场景需求选取不同的报文的流标识种类,例如、互联网协议的第四版(IPV4)报文可以选取源IP、目的IP,协议号、服务类型(TOS)、源端口号、目的端口号等等作为流标识;确定流标识种类后,再经过算法映射到O?(N-1)个链路中,其中,N为链路个数;最后,通过哈希(HASH)算法将流标识统一运算后得到HASH结果,再使用HASH结果模N求得的值选取链路数。
[0004]基于流模式的负荷分担方法存在很大的局限性,其中,负荷分担是否均匀的关键在于以下几点:1、流的标识字段选取,即如何划分不同的流的流标识种类;2、映射函数的选取;即选取流标识后如何将其通过一定运算映射到有限的值O?N-1的区间范围之内(N为链路个数)。流标识的选取不能适用于所有场景需求,而根据选取的流标识直接HASH运算也无法将其均匀映射到链路上。例如,假设当前场景中IPV4报文中源IP是不变的,目的IP在低16位发生变化,TOS字段在几个有限值之间变化,端口号则在一个较大的区间5000-65535中变化;假设将所有流标识通过HASH运算结果来映射,由于源IP没有变化则没有加入流标识的必要;目的IP仅在低16bit变化取全部32bit计算也没有必要;IP与端口号之间的值差异很大HASH运算结果的分布也是不可预测;因此,上述负荷分担方法无法实现流量的均分。
[0005]负荷分担方法的关键是如何区分并统计流量的种类,将其映射到O?N-1个链路中,现有的采用关键字静态映射方法,存在分担不均的情况,造成部分进入路由器的流量依旧大于路由器的单个链路的出接口带宽;特别是链路数或者流量种类较小时,负荷分担不均的情况更为严重。

【发明内容】

[0006]为了解决上述技术问题,本发明提供一种实现负荷分担的方法及系统,能够改善负荷分担不均的情况,使各链路负荷分担均匀合理,负荷分担后各链路的带宽满足流量分流的带宽需求。
[0007]为了达到本发明目的,本发明提供了一种实现负荷分担的方法,包括:
[0008]统计第一预设时长内在第一负荷分担方法下的各链路流量,获得系统的负荷分担参数;
[0009]当负荷分担参数大于或等于预先设置的负荷分担阈值时,确定负荷分担不均,切换到第二负荷分担方法将流量分配到流量分发的链路中进行流量分发。
[0010]进一步地,第一负荷分担方法包括:
[0011]预先设置的基于源网络之间互连的协议SIP、或基于目的网络之间互连的协议DIP、或基于用户数据报协议UDP端口号、或基于三元组、或基于五元组、或基于循环冗余校验码CRC、或基于异或的静态映射方法。
[0012]进一步地,获得系统的负荷分担参数包括:
[0013]将统计的各链路的流量除以各链路自身的带宽获得各链路相应的流量带宽比;
[0014]将流量带宽比中的最大值减去流量带宽比的最小值,获得负荷分担参数。
[0015]进一步地,第二负荷的分担方法包括:
[0016]根据预设比值采样第二预设时长内所述负荷分担所要分发的流量;
[0017]分析采样流量的种类并获得各种类流量所占采样流量的第一比值,计算所述链路中各链路带宽占流量分发的所有链路总带宽的第二比值;
[0018]根据第一比值和第二比值的大小将流量分发到各链路中。
[0019]进一步地,根据第一比值和第二比值的大小将流量分发到各链路中具体包括:
[0020]将各种类流量和链路分别按照第一比值和第二比值的大小进行排序后,按照第一比值最大到第一比值最小的顺序,将各种类流量分配到第二比值由小至大的各链路中。
[0021]进一步地,按照第一比值最大到第一比值最小的顺序,将各种类流量分配到第二比值由小至大的各链路中包括:
[0022]将各种类流量和链路分别按照第一比值和第二比值的大小进行排序后,将各种类流量根据第一比值大小由最大到最小的顺序逐个分配至第二比值最小的链路中;
[0023]计算分配给第二比值最小的链路的各种类流量的第一比值的累加和,将第二比值最小的链路的第二比值减去计算获得的所述累加和获得差值后,根据获得的差值确定是否继续往该链路分配分发的流量;
[0024]停止往该链路分配流量时,将该链路从分配分发流量的排序中移出,更新未分配的各种类流量的第一比值的大小排序和未分配的链路的第二比值的大小排序,以更新的第一比值排序和第二比值排序继续各种类流量的流量分发分配,直至只剩一个链路时,将未分配的各种类流量统一分配给该剩余的链路。
[0025]进一步地,根据获得的差值确定是否继续往该链路分配分发的流量包括:
[0026]将第二比值最小的链路的第二比值减去计算获得的分配给第二比值最小的链路的各种类流量的第一比值的累加和获得差值后,当差值等于零时,停止该链路的流量分配;当差值小于零时,将小于零时的对应的种类流量作为未分配的流量,停止往该链路分配流量。
[0027]进一步地,当负荷分担参数小于预先设置的负荷分担阈值时,该方法还包括:
[0028]采用第一负荷分担方法进行流量分发。
[0029]进一步地,在切换到第二负荷分担方法进行流量分发后,该方法还包括:
[0030]根据所述流量分配到流量分发的链路、下发相应的访问控制列表ACL规则,根据ACL规则进行流量分发;
[0031]所述ACL规则为ACL五元组,通过内容寻址存储器TCAM或前缀树trie表下发。
[0032]进一步地,在进行流量分发时,该方法还包括:
[0033]当进行流量分发出现ACL规则不匹配时,对该种类流量采用所述第一负荷分担分流,并统计采用所述第一负荷分担分流的流量的种类数,当统计流量种类数大于匹配调整阈值时,对未分发的流量重新采用所述第二负荷的分担方法进行流量分发。
[0034]另一方面,本申请还提供一种实现负荷分担的装置,包括:统计分析单元和判断处理单元;其中,
[0035]统计分析单元,用于统计第一预设时长内在第一负荷分担方法下的各链路流量,获得系统的负荷分担参数;
[0036]判断处理单元包括判断模块及处理模块;其中,
[0037]判断模块,用于当负荷分担参数大于或等于预先设置的负荷分担阈值时,确定负荷分担不均;
[0038]处理模块,用于在确定负荷分担不均时,切换到第二负荷分担方法将流量分配到流量分发的链路中进行流量分发。
[0039]进一步地,统计分析单元具体用于,
[0040]统计第一预设时长内在预先设置的基于SIP、或基于DIP、或基于UDP端口号、或基于三元组、或基于五元组、或基于CRC、或基于异或的静态映射方法下的各链路流量,获得系统的负荷分担参数。
[0041 ] 进一步地,统计分析单元具体用于,
[0042]统计所述第一预设时长内在预先设置的基于SIP、或基于DIP、或基于UDP端口号、或基于三元组、或基于五元组、或基于CRC、或基于异或的静态映射方法下的各链路流量;
[0043]将所述统计的各链路的流量除以各链路自身的带宽获得各链路相应的流量带宽比;
[0044]将所述流量带宽比中的最大值减去流量带宽比的最小值,获得负荷分担参数。
[0045]进一步地,处理模块具体用于,在确定负荷分担不均时,
[0046]切换到、根据预设比值采样第二预设时长内所述负荷分担所要分发的流量;
[0047]分析采样流量的种类并获得各种类流量所占采样流量的第一比值,计算所述链路中各链路带宽占流量分发的所有链路总带宽的第二比值;
[0048]根据第一比值和第二比值的大小将流量分发到各链路中进行流量分发。
[0049]进一步地,处理模块具体用于,在确定负荷分担不均时,
[0050]切换到、根据预设比值采样第二预设时长内所述负荷分担所要分发的流量;
[0051]分析采样流量的种类并获得各种类流量所占采样流量的第一比值,计算所述链路中各链路带宽占流量分发的所有链路总带宽的第二比值;
[0052]将各种类流量和链路分别按照第一比值和第二比值的大小进行排序后,按照第一比值最大到第一比值最小的顺序,将各种类流量分配到第二比值由小至大的各链路中。
[0053]进一步地,处理模块具体用于,在确定负荷分担不均时,
[0054]切换到、根据预设比值采样第二预设时长内所述负荷分担所要分发的流量;
[0055]分析采样流量的种类并获得各种类流量所占采样流量的第一比值,计算所述链路中各链路带宽占流量分发的所有链路总带宽的第二比值;
[0056]将各种类流量和链路分别按照第一比值和第二比值的大小进行排序后,
[0057]将各种类流量和链路分别按照第一比值和第二比值的大小进行排序后,将各种类流量根据第一比值大小由最大到最小的顺序逐个分配至第二比值最小的链路中;
[0058]计算分配给第二比值最小的链路的各种类流量的第一比值的累加和,将第二比值最小的链路的第二比值减去计算获得的所述累加和获得差值后,根据获得的差值确定是否继续往该链路分配分发的流量;
[0059]停止往该链路分配流量时,将该链路从分配分发流量的排序中移出,更新未分配的各种类流量的第一比值的大小排序和未分配的链路的第二比值的大小排序,以更新的第一比值排序和第二比值排序继续各种类流量的流量分发分配,直至只剩一个链路时,将未分配的各种类流量统一分配给该剩余的链路。
[0060]进一步地,处理模块具体用于,在确定负荷分担不均时,
[0061]切换到、根据预设比值采样第二预设时长内所述负荷分担所要分发的流量;
[0062]分析采样流量的种类并获得各种类流量所占采样流量的第一比值,计算所述链路中各链路带宽占流量分发的所有链路总带宽的第二比值;
[0063]将各种类流量和链路分别按照第一比值和第二比值的大小进行排序后,
[0064]将各种类流量和链路分别按照第一比值和第二比值的大小进行排序后,将各种类流量根据第一比值大小由最大到最小的顺序逐个分配至第二比值最小的链路中;
[0065]将第二比值最小的链路的第二比值减去计算获得的分配给第二比值最小的链路的各种类流量的第一比值的累加和获得差值后,当差值等于零时,停止该链路的流量分配;当差值小于零时,将小于零时的对应的种类流量作为未分配的流量,停止往该链路分配流量;
[0066]停止往该链路分配流量时,将该链路从分配分发流量的排序中移出,更新未分配的各种类流量的第一比值的大小排序和未分配的链路的第二比值的大小排序,以更新的第一比值排序和第二比值排序继续各种类流量的流量分发分配,直至只剩一个链路时,将未分配的各种类流量统一分配给该剩余的链路。
[0067]进一步地,判断模块,还用于当负荷分担参数小于预先设置的负荷分担阈值时,确定负荷分担均勾;
[0068]处理模块,还用于在确定负荷分担均匀时,采用第一负荷分担方法进行流量分发。
[0069]进一步地,该装置还包括规则下发单元,用于在切换到第二负荷分担方法进行流量分发后,根据所述流量分配到流量分发的链路下发相应的ACL规则,根据ACL规则进行流量分发;
[0070]ACL规则为ACL五元组,通过内容寻址存储器TCAM或前缀树trie表下发。
[0071]进一步地,该装置还包括统计处理单元,用于在进行流量分发时,
[0072]当进行流量分发出现ACL规则不匹配时,对该种类流量采用所述第一负荷分担分流,并统计采用所述第一负荷分担分流的流量的种类数,当统计流量种类数大于匹配调整阈值时,对未分发的流量重新采用所述第二负荷的分担方法进行流量分发。
[0073]与现有技术相比,本申请技术方案包括:统计第一预设时长内在第一负荷分担方法下的各链路流量,获得系统的负荷分担参数;当负荷分担参数大于或等于预先设置的负荷分担阈值时,确定负荷分担不均,切换到第二负荷分担方法将流量分配到流量分发的链路中进行流量分发。本发明方法通过负荷分担参数超过负荷分担阈值时,采用第二负荷分担方法,解决了负荷分担不均的问题;进一步地,各种类流量按照由大至小分配到链路带宽从大到小的链路,其他链路在将第二比值最小的链路的第二比值减去分配给其的各种类流量的第一比值的和获得相应的差值小于零时对负荷分担造成影响,通过最大的链路进行消化处理,更加合理的解决了负荷分担不均的问题。
【附图说明】
[0074]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0075]图1为本发明实现负荷分担的方法的流程图;
[0076]图2为本发明负荷分担的装置的结构框图;
[0077]图3是本发明第一实施例的方法的流程图。
【具体实施方式】
[0078]为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
[0079]图1为本发明实现负荷分担的方法的流程图,如图1所示,包括:
[0080]步骤100、统计第一预设时长内在第一负荷分担方法下的各链路流量,获得系统的负荷分担参数;
[0081]需要说明的是,统计链路中流量大小属于本领域技术人员的惯用技术手段。
[0082]本步骤中,负荷分担参数为:
[0083]将统计的各链路的流量除以各链路自身的带宽获得各链路相应的流量带宽比;
[0084]将流量带宽比中的最大值减去流量带宽比的最小值,获得负荷分担参数。
[0085]本步骤中,第一负荷分担方法包括:
[0086]预先设置的基于源网络之间互连的协议(SIP)、或基于目的网络之间互连的协议(DIP)、或基于用户数据报协议(UDP)端口号、或基于三元组、或基于五元组、或基于循环冗余校验码(CRC)、或基于异或的静态映射方法。
[0087]步骤101、当负荷分担参数大于或等于预先设置的负荷分担阈值时,确定流量在链路中分担不均,切换到第二负荷分担方法将流量分配到流量分发的链路中进行流量分发。
[0088]当负荷分担参数小于预先设置的负荷分担阈值时,该方法还包括:
[0089]采用第一负荷分担方法进行流量分发。
[0090]需要说明的是,第一预设时长主要根据负荷分担的流量种类及数量大小来确定,一般的种类越多、数量越大的流量分发过程,第一预设时长可以取值较小,反之,取值较大;负荷分担阈值主要根据对负荷分担的质量、链路带宽及流量数量设定,如果负荷分担要求高,则负荷分担阈值就低,反之亦然。切换到第二负荷分担方法时,一般会需要牺牲部分系统性能,因此,负荷分担阈值根据系统性能和负荷分担要求进行分析设定,根据实际情况可以进行调整。
[0091]一般情况下符合分担的第一预设时长应在10分钟到2小时的范围内比较合理,阈值不应超过5%。特殊情况下负荷分担流量速度较大且负荷流量稳定的前提下,可以设置第一预设时长为最小值10分钟,当流量较小时可以设置第一预设时长为30分钟。当链路带宽比较大,负荷分担流量分发在每条链路上所占的带宽比重较小时,可以设置负荷分担阈值为最高值5%,当链路带宽相对于负荷分担流量比重接近1:1时,此时需要设置负荷分担阈值为0.1 %较为合适。
[0092]本步骤中,第二负荷的分担方法包括:
[0093]根据预设比值采样第二预设时长内负荷分担所要分发的流量;分析采样流量的种类并获得各种类流量所占采样流量的第一比值,计算所述链路中各链路带宽占流量分发的所有链路总带宽的第二比值;
[0094]根据第一比值和第二比值的大小将流量分发到各链路中。
[0095]优选的,根据第一比值和第二比值的大小将流量分发到各链路中包括:
[0096]将各种类流量和链路分别按照第一比值和第二比值的大小进行排序后,按照第一比值最大到第一比值最小的顺序,将各种类流量分配到第二比值由小至大的各链路中。
[0097]优选的,按照第一比值最大到第一比值最小的顺序,将各种类流量分配到第二比值由小至大的各链路中包括:
[0098]将各种类流量和链路分别按照第一比值和第二比值的大小进行排序后,将各种类流量根据第一比值大小由最大到最小的顺序逐个分配至第二比值最小的链路中;
[0099]计算分配给第二比值最小的链路的各种类流量的第一比值的累加和,将第二比值最小的链路的第二比值减去计算获得的累加和获得差值后,根据获得的差值确定是否继续往该链路分配分发的流量;
[0100]停止往该链路分配流量时,将该链路从分配分发流量的排序中移出,更新未分配的各种类流量的第一比值的大小排序和未分配的链路的第二比值的大小排序,以更新的第一比值排序和第二比值排序继续各种类流量的流量分发分配,直至只剩一个链路时,将未分配的各种类流量统一分配给该剩余的链路。
[0101]优选的,根据获得的差值确定是否继续往该链路分配分发的流量包括:将第二比值最小的链路的第二比值减去计算获得的分配给第二比值最小的链路的各种类流量的第一比值的累加和获得差值后,当差值等于零时,停止往该链路分配流量;当差值小于零时,将小于零时的对应的种类流量作为未分配的流量,停止往该链路分配流量。
[0102]需要说明的是,进行负荷分担方法时,往往需要区分不同路的负荷分担的流量数据,一般的可以通过流关键字虚拟专用网络功能号(VPN ID)加上DIP或其他可以区分不同路的负荷分担的流量数据,属于本领域技术人员的公知常识。
[0103]进行采样时的预设比值根据系统对第二负荷分担方法的质量要求和流量分发的流量种类和数量进行设定,一般的,要求质量越高预设比值越大,但是流量种类和数量越大,采用高预设比值要求采样大量流量数据,会影响一定系统性能,因此,根据实际需求和系统性能进行设定。具体的可以通过,当系统设备当前流量速度占最大流量速度的比重小于50%时,可设定预设比值为1:1,此时对系统设备的运行影响较小,且高采样比时可以设定的第二预设时长可以设定为较小值(如10分钟);当系统设备当前流量速度占最大流量速度的比重为80 %时,可以设定采样的预设比值不超过4:1,考虑普通流量速度情况,设定预设比值为10:1且第二预设时长设定为30分钟;当系统设备当前流量速度占最大流量速度的比重为99%时,可以设定预设比值为不超过100:1,考虑普通流量速度情况下,设定预设比值为1000:1且第二预设时长为120分钟,若报文流量速度很大,则可设定预设比值为100:1且第二预设时长为60分钟;第二预设时长的取值的主要参考因数与第一预设时长的参考因数相同。
[0104]在切换到所述第二负荷分担方法进行流量分发后,本发明方法还包括:
[0105]根据流量分配到流量分发的链路、下发相应的访问控制列表(ACL)规则,根据ACL规则进行流量分发;
[0106]ACL规则为ACL五元组,通过内容寻址存储器(TCAM)或前缀树(trie)表下发。
[0107]在进行流量分发时,本发明方法还包括:
[0108]当进行流量分发出现ACL规则不匹配时,对该种类流量采用所述第一负荷分担分流,并统计采用所述第一负荷分担分流的流量的种类数,当统计流量种类数大于匹配调整阈值时,对未分发的流量重新采用所述第二负荷的分担方法进行流量分发。
[0109]需要说明的是,匹配调整阈值主要根据系统对负荷分担均匀要求程度有关,要求越高,调整数值越小,要求低时,数值较大具体的可设置匹配调整阈值范围为0.1%?5%。对于链路冗余带宽较多的场景,当负荷分担不均时对于系统流量不会产生较坏的影响,此时可以设置匹配调整阈值为较大值5% ;对于链路负荷分担流量的带宽较小时,如1M的流经过1G带宽的情况下,此时可以设置匹配调整阈值为最大值5%。仅当负荷分担流量所占带宽与链路带宽比重接近时,此时要求负荷分担均匀程度严格,否则分担不均时可能会导致其中一条链路流量分配过大丢包而其他链路则存在冗余带宽的情况,如负荷分担流量与总链路带宽比重为99:100时,此时需要匹配调整阈值为较小值,例如0.1%。
[0110]本发明方法通过在负荷分担参数超过负荷分担阈值时,采用第二负荷分担方法,按照第一比值最大到第一比值最小的顺序,将各种类流量分配到第二比值由小至大的各链路中,使各链路负荷分担均匀,进一步地,各种类流量按照由大至小分配到链路带宽从大到小的链路中,其他链路在将第二比值最小的链路的第二比值减去分配给其的各种类流量的第一比值的和获得相应的差值小于零时对负荷分担造成影响,通过第二比值最大的链路带宽进行消化处理,更加合理的解决了负荷分担不均的问题。
[0111]图2为本发明实现负荷分担的系统的结构框图,如图2所示,包括:统计分析单元和判断处理单元;其中,
[0112]统计分析单元,用于统计第一预设时长内在第一负荷分担方法下的各链路流量,获得系统的负荷分担参数;
[0113]判断处理单元包括判断模块及处理模块;其中,
[0114]判断模块,用于当负荷分担参数大于或等于预先设置的负荷分担阈值时,确定负荷分担不均;
[0115]处理模块,用于在确定负荷分担不均时,切换到第二负荷分担方法将流量分配到流量分发的链路中进行流量分发。
[0116]优选的,统计分析单元具体用于,
[0117]统计第一预设时长内在预先设置的基于SIP、或基于DIP、或基于UDP端口号、或基于三元组、或基于五元组、或基于CRC、或基于异或的静态映射方法下的各链路流量,获得系统的负荷分担参数。
[0118]统计分析单元具体用于,
[0119]统计所述第一预设时长内在预先设置的基于SIP、或基于DIP、或基于UDP端口号、或基于三元组、或基于五元组、或基于CRC、或基于异或的静态映射方法下的各链路流量;
[0120]将统计的各链路的流量除以各链路自身的带宽获得各链路相应的流量带宽比;
[0121]将流量带宽比中的最大值减去流量带宽比的最小值,获得负荷分担参数。
[0122]处理模块具体用于,在确定负荷分担不均时,
[0123]切换到、根据预设比值采样第二预设时长内所述负荷分担所要分发的流量;
[0124]分析采样流量的种类并获得各种类流量所占采样流量的第一比值,计算所述链路中各链路带宽占流量分发的所有链路总带宽的第二比值;
[0125]根据第一比值和第二比值的大小将流量分发到各链路中进行流量分发。
[0126]优选的,处理模块具体用于,在确定负荷分担不均时,
[0127]切换到、根据预设比值采样第二预设时长内所述负荷分担所要分发的流量;
[0128]分析采样流量的种类并获得各种类流量所占采样流量的第一比值,计算所述链路中各链路带宽占流量分发的所有链路总带宽的第二比值;
[0129]将各种类流量和链路分别按照第一比值和第二比值的大小进行排序后,按照第一比值最大到第一比值最小的顺序,将各种类流量分配到第二比值由小至大的各链路中。
[0130]更进一步地,处理模块具体用于,在确定负荷分担不均时,
[0131]切换到、根据预设比值采样第二预设时长内所述负荷分担所要分发的流量;
[0132]分析采样流量的种类并获得各种类流量所占采样流量的第一比值,计算所述链路中各链路带宽占流量分发的所有链路总带宽的第二比值;
[0133]将各种类流量和链路分别按照第一比值和第二比值的大小进行排序后,
[0134]将各种类流量和链路分别按照第一比值和第二比值的大小进行排序后,将各种类流量根据第一比值大小由最大到最小的顺序逐个分配至第二比值最小的链路中;
[0135]计算分配给第二比值最小的链路的各种类流量的第一比值的累加和,将第二比值最小的链路的第二比值减去计算获得的所述累加和获得差值后,根据获得的差值确定是否继续往该链路分配分发的流量;
[0136]停止往该链路分配流量时,将该链路从分配分发流量的排序中移出,更新未分配的各种类流量的第一比值的大小排序和未分配的链路的第二比值的大小排序,以更新的第一比值排序和第二比值排序继续各种类流量的流量分发分配,直至只剩一个链路时,将未分配的各种类流量统一分配给该剩余的链路。
[0137]处理模块具体用于,在确定负荷分担不均时,
[0138]切换到、根据预设比值采样第二预设时长内所述负荷分担所要分发的流量;
[0139]分析采样流量的种类并获得各种类流量所占采样流量的第一比值,计算所述链路中各链路带宽占流量分发的所有链路总带宽的第二比值;
[0140]将各种类流量和链路分别按照第一比值和第二比值的大小进行排序后,
[0141]将各种类流量和链路分别按照第一比值和第二比值的大小进行排序后,将各种类流量根据第一比值大小由最大到最小的顺序逐个分配至第二比值最小的链路中;
[0142]将第二比值最小的链路的第二比值减去计算获得的分配给第二比值最小的链路的各种类流量的第一比值的累加和获得差值后,当差值等于零时,停止该链路的流量分配;当差值小于零时,将小于零时的对应的种类流量作为未分配的流量,停止往该链路分配流量;
[0143]停止往该链路分配流量时,将该链路从分配分发流量的排序中移出,更新未分配的各种类流量的第一比值的大小排序和未分配的链路的第二比值的大小排序,以更新的第一比值排序和第二比值排序继续各种类流量的流量分发分配,直至只剩一个链路时,将未分配的各种类流量统一分配给该剩余的链路。
[0144]本发明装置,判断模块还用于,当负荷分担参数小于预先设置的负荷分担阈值时,确定负荷分担均匀;
[0145]处理模块还用于,在确定负荷分担均匀时,采用第一负荷分担方法进行流量分发。
[0146]本发明装置还包括规则下发单元,用于在切换到第二负荷分担方法进行流量分发后,根据所述流量分配到流量分发的链路下发相应的ACL规则,根据ACL规则进行流量分发;
[0147]ACL规则为ACL五元组,通过内容寻址存储器(TCAM)或前缀树(trie)表下发。
[0148]本发明装置还包括统计处理单元,用于在进行流量分发时,
[0149]当进行流量分发出现ACL规则不匹配时,对该种类流量采用所述第一负荷分担分流,并统计采用所述第一负荷分担分流的流量的种类数,当统计流量种类数大于匹配调整阈值时,对未分发的流量重新采用所述第二负荷的分担方法进行流量分发。
[0150]以下通过具体实施例对本发明方法的工作过程进行清楚详细的说明,实施例并不用于限制本发明的保护范围。
[0151]实施例1
[0152]图3是本发明第一实施例的方法的流程图,如图2所示,
[0153]步骤300、采用预设比值为1:1,进行第二负荷分担方法的流量采样;
[0154]本步骤中,预设比值设定为1:1说明对第二负荷分担方法的质量要求高,另外,本实施例中通过流关键字虚拟专用网络功能号(VPN ID)加上DIP识别本实施例需要采用第二负荷分担方法处理的流量数据。
[0155]步骤301、将采样的流量数据写入缓存,分析采样流量的种类并获得各种类流量所占采样流量的第一比值;
[0156]步骤302、计算所述链路中各链路带宽占流量分发的所有链路总带宽的第二比值;
[0157]步骤303、根据第二负荷分担方法将各种类流量分发的相应的链路中;具体的包括:
[0158]将各种类流量和链路分别按照第一比值和第二比值的大小进行排序后,将各种类流量根据第一比值大小由最大到最小的顺序逐个分配至第二比值最小的链路中,根据第二比值最小的链路的第二比值减去、分配给其的各种类流量的第一比值的和的值确定是否继续往该链路分配分发的流量;停止往该链路分配流量时,将该链路从分配分发流量的排序中移出,更新未分配的各种类流量的第一比值的大小排序和未分配的链路的第二比值的大小排序,以更新的第一比值排序和第二比值排序继续各种类流量的流量分发分配,直至只剩一个链路时,将未分配的各种类流量统一分配给该剩余的链路;其中,根据第二比值最小的链路的第二比值减去、分配给其的各种类流量的第一比值的和的值确定是否继续往该链路分配流量具体包括:将第二比值最小的链路的第二比值减去分配给其的各种类流量的第一比值的和获得相应的差值,当差值等于零时,停止往该链路分配流量;当差值小于零时,将小于零时的对应的种类流量作为未分配的流量,停止往该链路分配流量。
[0159]步骤304、在切换到第二负荷分担方法进行流量分发后,根据流量分配到流量分发的链路下发相应的ACL规则,根据ACL规则进行流量分发;
[0160]步骤305、进行ACL规则匹配,在链路进行流量分发时,会进行ACL规则匹配。当ACL匹配结果为是时,根据步骤3060进行流量分发,相当于采用第二负荷方法完成流量分发,否则执行步骤3070。
[0161]步骤3060、根据ACL规则进行流量分发;
[0162]步骤3070、对于ACL规则不匹配的流量,采用第一负荷分担分流,统计采用第一负荷分担分流的流量的种类数;
[0163]步骤3071、统计采用第一负荷分担分流的流量的种类数大于匹配调整阈值时,执行步骤300、否则,执行步骤3072。
[0164]步骤3072、根据第一负荷分担方法进行流量分发。
[0165]实施例2
[0166]进行流量负荷分担的链路数为3,3条链路的链路带宽比例为1:2:1;
[0167]报文的流量为IP流量,基于SIP变化从10.10.10.0?10.10.10.254共255种流量;
[0168]第一负荷分担方法为源IP的CRC32mod逻辑Iinknum链路数的方法,这里,此处物理Iinknum = 3逻辑Iinknum = 1+2+1 = 4,通过上述取模后,确定分流至三条链路。
[0169]假设第一预设时长为10分钟,负荷分担阈值(链路最大负荷和链路最小负荷的偏差)为0.05 ;
[0170]在第一预设时长内,在第一负荷分担方法下统计三条链路的流量数分别为6200000、12800000 和 6400000 ;
[0171]将各链路的负荷分担的流量数与链路带宽相除后得到流量带宽比分别为(62/64)、1 和 1,
[0172]计算负荷分担参数为:流量带宽比最大值与流量带宽比最小值之差1-(62/64)=1/32<0.05,认为负荷分担效果均匀,保持采用第一负荷分担方法。
[0173]上述第一负荷分担方法,因不需要采样复杂的统计和下发流程,其分流性能很高,需要优先考虑。保持采用第一负荷分担方法是该实施场景下,进行流量分发的优选方案。毕竟,从第一负荷分担方法切换到第二负荷分担方法时,是需要损失部分系统性能,才能得到负荷分担均匀的效果的。
[0174]实施例3
[0175]进行流量负荷分担的链路数为3,3条链路的链路带宽比例为1:2:1;
[0176]报文的流量为IP流量,基于SIP变化从10.10.10.0?10.10.10.9共10种流量;
[0177]基于DIP 变化从 20.20.20.0 ?20.20.20.9 共 10 种流量;
[0178]基于TCP源接口(sport)变化从O?9目的接口(dport) O?9共变化10*10*10*10=10000种流量;
[0179]假定每条流的流量大小相同。
[0180]第一负荷分担方法为CRC32(关键字包括 sip, dip, sport, dport)mod linknum,此处物理linknum = 3,逻辑linknum = 1+2+1 = 4,通过取模后结果,将流量分流到三条链路
[0181]假设第一预设时长为10分钟,负荷分担阈值为0.01 ;
[0182]在第一预设时长内,在第一负荷分担方法下统计三条链路的流量数分别为6200000、12800000 和 6400000 ;
[0183]将各链路的负荷分担的流量数与链路带宽相除后得到流量带宽比分别为(62/64)、1 和 1,
[0184]计算负荷分担参数为:流量带宽比最大值与流量带宽比最小值之差为1-(62/64)=1/32大于0.01 ;因此,判断负荷分担不均匀,切换到第二负荷分担方法;
[0185]根据预设比值采样第二预设时长内负荷分担所要分发的流量;这里,预设比值为1第二预设时长为10分钟。
[0186]经过10分钟,采样分析获得9900种流量,各种流量第一比值均由小到大分别为1/9900、1/9900、1/9900......1/9900 ;
[0187]3条链路的链路带宽的第二比值为0.25:0.5:0.25 ;
[0188]按照第二负荷分担方法,将各种类流量排序后,找到最大的流量1/9900分配到恰好满足的最小剩余带宽链路0.25,在每次分配完一种类流量时,将第二比值0.25减去该种类流量的第一比值获得差值,直到差值为零时停止往该链路分配流量;当出现小于零时,将小于零时分配的流量作为下一链路分配流量的初始种类流量;停止往该链路分配流量时,将该链路从流量分发的排序中移出,更新的未分配的各种类流量的第一比值排序和未分配的链路的第二比值排序继续未分配的各种类流量的流量分配;在只剩一个链路时,将所有未分配的各种类流量分配给该剩余的链路;如此分配2475个种类流量至第二比值为0.25的第一个链路;更新第一比值和第二比值后,为第二比值为0.25的另一链路分配继续分配2475个流量,为第二比值为0.5的链路分配剩余的4950个流量,分流比例完美满足链路带宽比例1:2:1,
[0189]完成流量分配后,下发ACL规则进行流量分发,在进行流量分发时,
[0190]当进行流量分发出现种类流量的ACL规则不匹配时,对该种类流量采用第一负荷分担分流,并统计采用第一负荷分担分流的流量的种类数,当统计流量种类数大于预设阈值时,对未分发的流量重新采用第二负荷的分担方法进行流量分发。
[0191]假设实际流量进入种类共10000条,则有100条路匹配ACL失败,无法通过第二负荷分担方法进行流量分发,则通过前述静态基于五元组算法映射分流。设置重新采用第二负荷分担方法的匹配调整阈值为10.1%,此时100/10000比例小于10.1%,因此,无需重新采用第二负荷分担方法进行流量分发。100个种类流按照第一负荷分担方法进行流量分发,对整体的流量分发的负荷分担均匀效果不大。
[0192]虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
【主权项】
1.一种实现负荷分担的方法,其特征在于,包括: 统计第一预设时长内在第一负荷分担方法下的各链路流量,获得系统的负荷分担参数; 当负荷分担参数大于或等于预先设置的负荷分担阈值时,确定负荷分担不均,切换到第二负荷分担方法将流量分配到流量分发的链路中进行流量分发。2.根据权利要求1所述的方法,其特征在于,所述第一负荷分担方法包括: 预先设置的基于源网络之间互连的协议SIP、或基于目的网络之间互连的协议DIP、或基于用户数据报协议UDP端口号、或基于三元组、或基于五元组、或基于循环冗余校验码CRC、或基于异或的静态映射方法。3.根据权利要求1所述的方法,其特征在于,所述获得系统的负荷分担参数包括: 将所述统计的各链路的流量除以各链路自身的带宽获得各链路相应的流量带宽比; 将所述流量带宽比中的最大值减去流量带宽比的最小值,获得负荷分担参数。4.根据权利要求1?3任一项所述的方法,其特征在于,所述第二负荷的分担方法包括: 根据预设比值采样第二预设时长内所述负荷分担所要分发的流量; 分析采样流量的种类并获得各种类流量所占采样流量的第一比值,计算所述链路中各链路带宽占流量分发的所有链路总带宽的第二比值; 根据第一比值和第二比值的大小将流量分发到各链路中。5.根据权利要求4所述的方法,其特征在于,所述根据第一比值和第二比值的大小将流量分发到各链路中具体包括: 将各种类流量和链路分别按照第一比值和第二比值的大小进行排序后,按照第一比值最大到第一比值最小的顺序,将各种类流量分配到第二比值由小至大的各链路中。6.根据权利要求5所述的方法,其特征在于,所述按照第一比值最大到第一比值最小的顺序,将各种类流量分配到第二比值由小至大的各链路中包括: 将各种类流量和链路分别按照第一比值和第二比值的大小进行排序后,将各种类流量根据第一比值大小由最大到最小的顺序逐个分配至第二比值最小的链路中; 计算分配给第二比值最小的链路的各种类流量的第一比值的累加和,将第二比值最小的链路的第二比值减去计算获得的所述累加和获得差值后,根据获得的差值确定是否继续往该链路分配分发的流量; 停止往该链路分配流量时,将该链路从分配分发流量的排序中移出,更新未分配的各种类流量的第一比值的大小排序和未分配的链路的第二比值的大小排序,以更新的第一比值排序和第二比值排序继续各种类流量的流量分发分配,直至只剩一个链路时,将未分配的各种类流量统一分配给该剩余的链路。7.根据权利要求6所述的方法,其特征在于,所述根据获得的差值确定是否继续往该链路分配分发的流量包括: 将第二比值最小的链路的第二比值减去计算获得的分配给第二比值最小的链路的各种类流量的第一比值的累加和获得差值后,当差值等于零时,停止该链路的流量分配;当差值小于零时,将小于零时的对应的种类流量作为未分配的流量,停止往该链路分配流量。8.根据权利要求1?3任一项所述的方法,其特征在于,当负荷分担参数小于预先设置的负荷分担阈值时,该方法还包括: 采用第一负荷分担方法进行流量分发。9.根据权利要求1?3任一项所述的方法,其特征在于,在切换到所述第二负荷分担方法进行流量分发后,该方法还包括: 根据所述流量分配到流量分发的链路、下发相应的访问控制列表ACL规则,根据ACL规则进行流量分发; 所述ACL规则为ACL五元组,通过内容寻址存储器TCAM或前缀树trie表下发。10.根据权利要求9所述的方法,其特征在于,在进行流量分发时,该方法还包括: 当进行流量分发出现ACL规则不匹配时,对该种类流量采用所述第一负荷分担分流,并统计采用所述第一负荷分担分流的流量的种类数,当统计流量种类数大于匹配调整阈值时,对未分发的流量重新采用所述第二负荷的分担方法进行流量分发。11.一种实现负荷分担的装置,其特征在于,包括:统计分析单元和判断处理单元;其中, 统计分析单元,用于统计第一预设时长内在第一负荷分担方法下的各链路流量,获得系统的负荷分担参数; 判断处理单元包括判断模块及处理模块;其中, 判断模块,用于当负荷分担参数大于或等于预先设置的负荷分担阈值时,确定负荷分担不均; 处理模块,用于在确定负荷分担不均时,切换到第二负荷分担方法将流量分配到流量分发的链路中进行流量分发。12.根据权利要求11所述的装置,其特征在于,所述统计分析单元具体用于, 统计第一预设时长内在预先设置的基于SIP、或基于DIP、或基于UDP端口号、或基于三元组、或基于五元组、或基于CRC、或基于异或的静态映射方法下的各链路流量,获得系统的负荷分担参数。13.根据权利要求11所述的装置,其特征在于,所述统计分析单元具体用于, 统计所述第一预设时长内在预先设置的基于SIP、或基于DIP、或基于UDP端口号、或基于三元组、或基于五元组、或基于CRC、或基于异或的静态映射方法下的各链路流量; 将所述统计的各链路的流量除以各链路自身的带宽获得各链路相应的流量带宽比; 将所述流量带宽比中的最大值减去流量带宽比的最小值,获得负荷分担参数。14.根据权利要求11?13任一项所述的装置,其特征在于,所述处理模块具体用于,在确定负荷分担不均时, 切换到、根据预设比值采样第二预设时长内所述负荷分担所要分发的流量; 分析采样流量的种类并获得各种类流量所占采样流量的第一比值,计算所述链路中各链路带宽占流量分发的所有链路总带宽的第二比值; 根据第一比值和第二比值的大小将流量分发到各链路中进行流量分发。15.根据权利要求11?13任一项所述的装置,其特征在于,所述处理模块具体用于,在确定负荷分担不均时, 切换到、根据预设比值采样第二预设时长内所述负荷分担所要分发的流量; 分析采样流量的种类并获得各种类流量所占采样流量的第一比值,计算所述链路中各链路带宽占流量分发的所有链路总带宽的第二比值; 将各种类流量和链路分别按照第一比值和第二比值的大小进行排序后,按照第一比值最大到第一比值最小的顺序,将各种类流量分配到第二比值由小至大的各链路中。16.根据权利要求11?13任一项所述的装置,其特征在于,所述处理模块具体用于,在确定负荷分担不均时, 切换到、根据预设比值采样第二预设时长内所述负荷分担所要分发的流量; 分析采样流量的种类并获得各种类流量所占采样流量的第一比值,计算所述链路中各链路带宽占流量分发的所有链路总带宽的第二比值; 将各种类流量和链路分别按照第一比值和第二比值的大小进行排序后, 将各种类流量和链路分别按照第一比值和第二比值的大小进行排序后,将各种类流量根据第一比值大小由最大到最小的顺序逐个分配至第二比值最小的链路中; 计算分配给第二比值最小的链路的各种类流量的第一比值的累加和,将第二比值最小的链路的第二比值减去计算获得的所述累加和获得差值后,根据获得的差值确定是否继续往该链路分配分发的流量; 停止往该链路分配流量时,将该链路从分配分发流量的排序中移出,更新未分配的各种类流量的第一比值的大小排序和未分配的链路的第二比值的大小排序,以更新的第一比值排序和第二比值排序继续各种类流量的流量分发分配,直至只剩一个链路时,将未分配的各种类流量统一分配给该剩余的链路。17.根据权利要求11?13任一项所述的装置,其特征在于,所述处理模块具体用于,在确定负荷分担不均时, 切换到、根据预设比值采样第二预设时长内所述负荷分担所要分发的流量; 分析采样流量的种类并获得各种类流量所占采样流量的第一比值,计算所述链路中各链路带宽占流量分发的所有链路总带宽的第二比值; 将各种类流量和链路分别按照第一比值和第二比值的大小进行排序后, 将各种类流量和链路分别按照第一比值和第二比值的大小进行排序后,将各种类流量根据第一比值大小由最大到最小的顺序逐个分配至第二比值最小的链路中; 将第二比值最小的链路的第二比值减去计算获得的分配给第二比值最小的链路的各种类流量的第一比值的累加和获得差值后,当差值等于零时,停止该链路的流量分配;当差值小于零时,将小于零时的对应的种类流量作为未分配的流量,停止往该链路分配流量;停止往该链路分配流量时,将该链路从分配分发流量的排序中移出,更新未分配的各种类流量的第一比值的大小排序和未分配的链路的第二比值的大小排序,以更新的第一比值排序和第二比值排序继续各种类流量的流量分发分配,直至只剩一个链路时,将未分配的各种类流量统一分配给该剩余的链路。18.根据权利要求11?13所述的装置,其特征在于, 判断模块,还用于当负荷分担参数小于预先设置的负荷分担阈值时,确定负荷分担均匀; 处理模块,还用于在确定负荷分担均匀时,采用第一负荷分担方法进行流量分发。19.根据权利要求11?13所述的装置,其特征在于,该装置还包括规则下发单元,用于在切换到第二负荷分担方法进行流量分发后,根据所述流量分配到流量分发的链路下发相应的ACL规则,根据ACL规则进行流量分发; 所述ACL规则为ACL五元组,通过内容寻址存储器TCAM或前缀树trie表下发。20.根据权利要求19所述的装置,其特征在于,该装置还包括统计处理单元,用于在进行流量分发时, 当进行流量分发出现ACL规则不匹配时,对该种类流量采用所述第一负荷分担分流,并统计采用所述第一负荷分担分流的流量的种类数,当统计流量种类数大于匹配调整阈值时,对未分发的流量重新采用所述第二负荷的分担方法进行流量分发。
【文档编号】H04L12/803GK106034086SQ201510122821
【公开日】2016年10月19日
【申请日】2015年3月19日
【发明人】牛俊杰
【申请人】中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1