负载均衡的方法及转发设备的制作方法

文档序号:7887126阅读:156来源:国知局
专利名称:负载均衡的方法及转发设备的制作方法
技术领域
本发明涉及通信领域,具体而言,涉及一种负载均衡的方法及转发设备。
背景技术
随着网络的快速发展以及相关网络应用的普及,互联网已成为人们日常工作生活中必不可缺的一部分。但由于目前现有网络的各个核心部分随着业务量的提高,访问量和数据流量的快速增长,其处理能力和计算强度也相应地增大,使得单一设备根本无法承担。 在此情况下,如果扔掉现有设备去做大量的硬件升级,将造成现有资源的极大浪费,同时随业务量的提升,又将导致再一次硬件升级的高额成本投入,甚至性能再卓越的设备也不能满足当前业务量增长的需求。如图1所示,负载均衡(又称为负载分担),其意思就是将负载进行平衡、分摊到多个操作单元上进行执行,从而共同完成工作任务。负载均衡建立在现有网络结构之上,它提供了一种廉价又有效的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。现在交换机和路由器的负载均衡,一般采用链路聚合技术,它将多条物理链路当作一条单一的聚合逻辑链路使用,而具体操作,一般是对DMAC,SMAC, DIP, SIP, UDP, PORT等几个元素进行hash等算法,选取一个出端口。其具体实现方式有两种方式一纯软件的实现。由于需要实时保障网络的畅通和高速,设备的CPU可能会不堪重荷。方式二 软硬件结合的实现。这样的解决方案可以在一定程度上减轻设备CPU的负担,但仍需要它的运算来实现数据包的处理以及向链路聚合端口的数据包分发。所以还需要在硬件卡上配置专用的芯片来完成计算任务,最大程度地减轻CPU负担。另外,上述两种方法都不够精细,不能精细化到每条流。

发明内容
本发明提供了一种负载均衡的方法及转发设备,以至少解决相关技术中访问量和数据流量快速增长的情况下,单一链路或设备无法完成流量承载的问题。根据本发明的一个方面,提供了一种负载均衡的方法,包括转发设备为待转发的报文生成一个序列号,并建立所述序列号与所述转发设备上参与负载均衡的物理端口之间的对应关系;所述转发设备从与所述序列号对应的物理端口转发所述报文。优选地,转发设备为待转发的报文生成一个序列号包括所述转发设备响应于所述报文的触发以产生所述序列号,其中,所述序列号的值为正整数,每触发一次,所述序列号的值相应的增加,在所述序列号的值达到预设最大值后从零重新开始增加。优选地,建立所述序列号与所述转发设备上参与负载均衡的物理端口之间的对应关系包括用序列号除以参与负载均衡的物理端口的数目并取余数,确定端口号与所述余数相同的物理端口为对应的物理端口 ;或将所述序列号散列到参与负载均衡的物理端口以建立所述序列号与物理端口之间的对应关系。
优选地,所述转发设备为路由器或交换机。 优选地,所述参与负载均衡的物理端口为聚合链路端口。优选地,在转发设备为待转发的报文生成一个序列号之前,还包括从待转发的所述报文中提取特征信息;根据所述特征信息获取转发表的索引,并从所述转发表中获取转发信息。优选地,所述报文至少包括以下之一 二层报文,三层报文,MPLS报文,PWE3报文。优选地,所述特征信息至少包括以下之一所述报文进入的端口 PROT信息,转发标签信息,所述报文的源MAC地址,所述报文的目的MAC地址,IP源地址,IP目的地址。根据本发明的另一方面,提供了一种转发设备,包括序列号产生模块,用于为待转发的报文生成一个序列号,并建立所述序列号与所述转发设备上参与负载均衡的物理端口之间的对应关系;转发模块,用于从与所述序列号对应的物理端口转发所述报文。优选地,所述序列号产生模块包括序列号产生单元,用于响应于所述报文的触发以产生所述序列号,其中,所述序列号的值为正整数,每触发一次,所述序列号的值相应的增加,在所述序列号的值达到预设最大值后从零重新开始增加。优选地,所述序列号产生模块还包括第一建立单元,用于将序列号除以参与负载均衡的物理端口的数目并取余数,确定端口号与所述余数相同的物理端口为对应的物理端口,以建立所述序列号与参与负载均衡的物理端口之间的对应关系;第二建立单元,用于将所述序列号散列到参与负载均衡的物理端口以建立所述序列号与物理端口之间的对应关系。优选地,所述设备还包括提取模块,用于从待转发的所述报文中提取特征信息; 获取模块,用于根据所述特征信息获取转发表的索引,并从所述转发表中获取转发信息。通过本发明,采用转发设备为待转发的报文生成一个序列号,并建立该序列号与转发设备上参与负载均衡的物理端口之间的对应关系,从与序列号对应的物理端口转发上述报文,解决了相关技术中访问量和数据流量快速增长的情况下,单一链路或设备无法完成流量承载的问题,进而在大数据流和高访问量的情况下,对链路进行负载均衡,使单一链路或设备能够承载高负荷,提升了系统的性能。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1是根据相关技术的负荷传输场景的示意图;图2是根据本发明实施例的负载均衡的方法的流程图;图3是根据本发明优选实施例的负载均衡的方法的流程图;图4是根据本发明实施例的转发设备的结构框图一;图5是根据本发明实施例的转发设备的结构框图二 ;以及图6是根据本发明实施例的转发设备的结构框图三。
具体实施例方式下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。基于相关技术中访问量和数据流量快速增长的情况下,单一链路或设备无法完成流量承载的问题,本发明实施例提供了一种负载均衡的方法,如图2所示,是根据本发明实施例的负载均衡的方法的流程图,该方法包括步骤S202,转发设备为待转发的报文生成一个序列号,并建立序列号与转发设备上参与负载均衡的物理端口之间的对应关系;步骤S204,转发设备从与序列号对应的物理端口转发报文。通过本发明实施例,采用转发设备为待转发的报文生成一个序列号,并建立该序列号与转发设备上参与负载均衡的物理端口之间的对应关系,从与序列号对应的物理端口转发上述报文,解决了相关技术中访问量和数据流量快速增长的情况下,单一链路或设备无法完成流量承载的问题,进而在大数据流和高访问量的情况下,对链路进行负载均衡,使单一链路或设备能够承载高负荷,提升了系统的性能。在步骤S202之前,还需要从待转发的报文中提取特征信息,根据特征信息获取转发表的索引,并从转发表中获取转发信息。其中,转发设备可以为路由器,也可以为交换机, 或与其实现相同功能的转发设备。在执行步骤S202的过程中,转发设备为待转发的报文生成一个序列号的过程可以是转发设备响应于报文的触发以产生序列号。其中,序列号的值为正整数,每触发一次, 序列号的值相应的增加,在序列号的值达到预设最大值后从零重新开始增加。在实施过程中,每条数据流都配置有一个序列号产生器,该序列号产生器可以是通过硬件设计在转发设备中,也可以是通过软件加载在转发设备中实现。序列号产生器采用报文触发,每条需要负载均衡的流的转发表都会有一个独立的序列号产生器,每当对应的报文触发时,序列号的值都会相应的发生变化;序列号值采用循环方式,到达最大值后复位从零继续增加变化。序列号的值可以在每次报文触发后加1,也可以加2,序列号值的增加数量不做规定,可以随意设置,基于方便性和实用性的考虑,本实施例选择在每次报文触发后序列号的值加1来进行操作。其中,序列号的最大值可以设置为一个固定的值,例如,统一将序列号的最高值设置为100。当然,也可以将该值设置为参与负载均衡的物理端口数量的整数倍, 例如,参与负载均衡的物理端口的数量为8,则可以将序列号值设置为64。在建立序列号与转发设备上参与负载均衡的物理端口之间的对应关系可以包括 用序列号与参与负载均衡的物理端口的数目作取余运算,其中,可以用序列号除以参与负载均衡的物理端口的数目,并获取其余数,确定端口号与余数相同的物理端口为对应的物理端口 ;或将序列号散列到参与负载均衡的物理端口以建立序列号与物理端口之间的对应关系。在实施过程中,当采用取余的方式均衡负载时,可以选择将该值设置为参与负载均衡的物理端口数量的整数倍的方式。例如,参与负载均衡的物理端口的数量为5,则可以将序列号值设置为50,则此时可以设置当余数从0到4分别对应5个物理端口,当有数据流需要进行负载均衡时,随着序列号的值的增加,可以将数据流中的各报文分别均衡到个物理端口,实现负载均衡。当然,也可以选择散列(如哈希HASH算法)的方式均衡负载。在实施时,每当序列号的值变化一次,则将对应的报文散列到参与负载均衡的物理端口所在的链路上进行传输。此种方式相对于取余的方式较为复杂,但均能达到负载均衡的效果。当然,只要与上述方式能达到相同或类似效果的方式或算法都可以应用于本发明实施例中, 在此不进行赘述。考虑到单一链路的负荷较小,而多条链路聚合后的负荷较大,所以可以设置参与负载均衡的物理端口为聚合链路端口。则多条物理链路聚合为一条逻辑链路使用,在这种情况下,可以避免大流量对单一链路的冲击,提高了系统的可用性。在执行上述各步骤的过程中,报文的类型可以为多种,-可以为二层报文,三层报文,MPLS报文,PWE3报文中的一种,但不仅限于这些类型的报文,只要能实现类似功能的报文都可以作为负载均衡过程中的报文类型进行触发。特征信息也可以包括多种,-包括报文进入的端口 PROT信息,转发标签信息,报文的源MAC地址,报文的目的MAC地址,IP源地址,IP目的地址,但不仅限于这些特征。本发明实施例基于本地序列号的负载均衡方法,通过在本地转发表中引入序列号的概念,即引入一个序列号,形成精细化到每条流量的负载均衡,从而将流量均载到多条物理链路,避免了随访问量和数据流量的快速增长,单一链路或设备无法完成流量的承载,提升了系统的性能。优选实施例本发明实施实例的应用场景如图1所示,当设备1有大流量需要交换到设备2时, 但设备1和设备2之间,某一条单一链路A、B或者C都不能满足承载,这时候就需要链路聚合,把多条物理链路(本示例就是链路A,B和C)聚合成一条单一的聚合逻辑链路使用。如图3所示,本发明实施例结合现有的链路聚合技术,提供了一种针对交换机或路由器的基于本地序列号的负载均衡的方法,包括如下步骤步骤S302,根据端口进来的报文,提取其特征信息。需要说明的是,此负载均衡方法,并不区分报文类别,报文可以是普通的二三层报文,也可以是MPLS报文、PWE3报文等,但不仅限于这些类型的报文。特征信息包括以下一个或多个报文进入的端口 PORT信息、转发标签信息、报文的源MAC地址和目的MAC地址、 IP源地址和目的地址等,但不仅限于这些特征。步骤S304,根据特征信息获取转发表的索引。转发表索引的获取,需要结合特征信息。首先结合特征信息,把报文送到相对应的转发流程;其次根据报文在相应的转发处理,提取转发表的索引。例如,对于一个普通的二层报文,需要通过VLAN和目的MAC获取转发表的索引;对于一个普通三层转发的报文,需要通过报文的目的IP获取转发表的索引;对于一个MPLS报文,需要通过报文中携带的标签信息获取对应的转发表索引。步骤S306,根据获取的转发表的索引,查找转发表,获得转发信息。步骤S308,判断是否进行负载均衡。若是,则进行负载均衡,执行步骤S310 ;若否, 则执行步骤S316。步骤S310,通过报文触发方式,在序列号产生模块获取流所对应序列号值。具体而言,引入序列号的概念,目的就是为了简化路径选择算法,在负载均衡计算时与报文具体内容相对独立出来,取消原来采用链路聚合时对DMAC,SMAC, DIP, SIP, UDPP0RT等几个元素进行HASH等算法,进而节省硬件资源或者软件资源。步骤S312,根据端口信息模块,获取参与负载均衡的实际物理端口信息。
步骤S314,计算的负载均衡的转发路径。根据获得序列号值和参与负载均衡的实际物理端口信息,采用取余算法或者其他算法,计算的负载均衡的转发路径。步骤S316,报文转发。根据获得转发路径信息,把报文转发到目的地。可见,图3中描述的针对交换机或路由器的基于本地序列号的负载均衡的方法, 在保证数据正常转发的前提下,非常好的完成了对数据流量的负载均衡;并且在只需要少量的软件资源的情况下,就可以完成负载均衡精细化到每条流;负载均衡算法不再依赖报文中的元素,使负载均衡和报文的实际内容完成了相对独立,避免采用HASH等相对复杂算法,减轻了硬件资源和软件资源的复杂度。根据本发明实施例的另一方面,本发明实施例提供了一种转发设备,如图4所示, 是根据本发明实施例的转发设备的结构框图一,该设备包括序列号产生模块10,用于为待转发的报文生成一个序列号,并建立序列号与转发设备上参与负载均衡的物理端口之间的对应关系;转发模块20,与序列号产生模块10耦合,用于从与序列号对应的物理端口转发报文。如图5所示,是根据本发明实施例的转发设备的结构框图二,序列号产生模块10 包括序列号产生单元102,用于响应于报文的触发以产生序列号,其中,序列号的值为正整数,采用报文触发,每触发一次,序列号的值相应的增加,在序列号的值达到预设最大值后从零重新开始增加;第一建立单元104,用于将序列号与参与负载均衡的物理端口的数目做取余运算,并获取其余数,确定端口号与余数相同的物理端口为对应的物理端口,以建立序列号与参与负载均衡的物理端口之间的对应关系;第二建立单元106,用于将序列号散列到参与负载均衡的物理端口以建立序列号与物理端口之间的对应关系。如图6所示,是根据本发明实施例的转发设备的结构框图三,设备还包括提取模块30,用于从待转发的报文中提取特征信息;获取模块40,与提取模块30和序列号产生模块10耦合,用于根据特征信息获取转发表的索引,并从转发表中获取转发信息。下面将结合上述实施例提供的设备及附图,介绍一种应用于实际中的转发设备, 可能在模块的命名与功能上略有不同,但是能与上述转发设备实现相同的技术效果。本实施例提供一种针对交换机或路由器的转发设备,该设备不仅包括提取模块, 获取模块,序列号产生模块,转发模块,还包括链路聚合模块,计算模块。其中,链路聚合模块用于获取聚合逻辑链路时,参与的实际物理端口信息。计算模块是将上述实施例中的第一建立单元与第二建立单元从序列号产生模块中分离出来,将其相应的功能单独设立的模块,本实施例中将其单独设立,运行速度会更快。该计算模块用于实际转发路径的选取,根据转发表获得的序列号值,以及链路聚合模块获得的参与聚合实际物理端口信息,采用取余运算或者其他算法,选取一个转发路径。下面进一步对各模块的功能与各模块之间相互联系的工作过程进行描述。提取模块,用于根据端口收到的数据流,获取其转发特征信息。获取模块,用于根据从提取模块提取的报文的转发特征信息,确定其对应的转发表索引,并获取对应的转发信息。序列号产生模块,用于根据提取模块的信息,判断是否需要进行负载均衡,若是需要负载均衡则产生对应的序列号值,并采用报文触发模式。链路聚合模块,用于获取实际参与负载均衡的实际物理端口的所有信息。
计算模块,用于根据序列号产生模块的序列号的值和链路聚合模块获取的端口信息,采用取余算法或者其他算法,计算负载均衡的路径。转发模块,用于从计算模块或者获取模块获得的转发路径信息,转发对应报文。本发明实施例根据收到的数据报文,提取报文中的特征信息,进而找到报文所对应的转发表,根据其转发表中的序列号值和由链路聚合模块所得到的实际物理端口信息, 通过取余运算或者其他算法,选取一个合理转发路径。本转发设备不但能很好的完成在交换机和路由器上对流量的负载均衡,避免了大流量对单一链路的冲击,更能精细化到每条流量,实现精细化控制。从以上的描述中,可以看出,本发明实现了如下技术效果通过本发明各实施例,采用转发设备为待转发的报文生成一个序列号,并建立该序列号与转发设备上参与负载均衡的物理端口之间的对应关系,从与序列号对应的物理端口转发上述报文,解决了相关技术中访问量和数据流量快速增长的情况下,单一链路或设备无法完成流量承载的问题,进而在大数据流和高访问量的情况下,对链路进行负载均衡, 使单一链路或设备能够承载高负荷,提升了系统的性能,提高了用户体验。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、 等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种负载均衡的方法,其特征在于,包括转发设备为待转发的报文生成一个序列号,并建立所述序列号与所述转发设备上参与负载均衡的物理端口之间的对应关系;所述转发设备从与所述序列号对应的物理端口转发所述报文。
2.根据权利要求1所述的方法,其特征在于,转发设备为待转发的报文生成一个序列号包括所述转发设备响应于所述报文的触发以产生所述序列号,其中,所述序列号的值为正整数,每触发一次,所述序列号的值相应的增加,在所述序列号的值达到预设最大值后从零重新开始增加。
3.根据权利要求2所述的方法,其特征在于,建立所述序列号与所述转发设备上参与负载均衡的物理端口之间的对应关系包括用序列号除以参与负载均衡的物理端口的数目并取余数,确定端口号与所述余数相同的物理端口为对应的物理端口;或将所述序列号散列到参与负载均衡的物理端口以建立所述序列号与物理端口之间的对应关系。
4.根据权利要求1所述的方法,其特征在于,所述转发设备为路由器或交换机。
5.根据权利要求1所述的方法,其特征在于,所述参与负载均衡的物理端口为聚合链路端口。
6.根据权利要求1至5中任一项所述的方法,其特征在于,在转发设备为待转发的报文生成一个序列号之前,还包括从待转发的所述报文中提取特征信息;根据所述特征信息获取转发表的索引,并从所述转发表中获取转发信息。
7.根据权利要求6所述的方法,其特征在于,所述报文至少包括以下之一二层报文,三层报文,MPLS报文,PWE3报文,L3VPN报文。
8.根据权利要求7所述的方法,其特征在于,所述特征信息至少包括以下之一所述报文进入的端口 PROT信息,转发标签信息,所述报文的源MAC地址,所述报文的目的MAC地址,IP源地址,IP目的地址,VLAN信息。
9.一种转发设备,其特征在于,包括序列号产生模块,用于为待转发的报文生成一个序列号,并建立所述序列号与所述转发设备上参与负载均衡的物理端口之间的对应关系;转发模块,用于从与所述序列号对应的物理端口转发所述报文。
10.根据权利要求9所述的设备,其特征在于,所述序列号产生模块包括序列号产生单元,用于响应于所述报文的触发以产生所述序列号,其中,所述序列号的值为正整数,每触发一次,所述序列号的值相应的增加,在所述序列号的值达到预设最大值后从零重新开始增加。
11.根据权利要求10所述的设备,其特征在于,所述序列号产生模块还包括第一建立单元,用于将序列号除以参与负载均衡的物理端口的数目并取余数,确定端口号与所述余数相同的物理端口为对应的物理端口,以建立所述序列号与参与负载均衡的物理端口之间的对应关系;第二建立单元,用于将所述序列号散列到参与负载均衡的物理端口以建立所述序列号与物理端口之间的对应关系。
12.根据权利要求9至11中任一项设备,其特征在于,所述设备还包括 提取模块,用于从待转发的所述报文中提取特征信息;获取模块,用于根据所述特征信息获取转发表的索引,并从所述转发表中获取转发信
全文摘要
本发明公开了一种负载均衡的方法及转发设备,该方法包括转发设备为待转发的报文生成一个序列号,并建立序列号与转发设备上参与负载均衡的物理端口之间的对应关系;转发设备从与序列号对应的物理端口转发报文。通过运用本发明,解决了相关技术中访问量和数据流量快速增长的情况下,单一链路或设备无法完成流量承载的问题,进而在大数据流和高访问量的情况下,对链路进行负载均衡,使单一链路或设备能够承载高负荷,提升了系统的性能。
文档编号H04L12/56GK102447638SQ201210008910
公开日2012年5月9日 申请日期2012年1月12日 优先权日2012年1月12日
发明者程银魁, 钱勇 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1