一种负载均衡方法和流量转发设备与流程

文档序号:11156392阅读:573来源:国知局
一种负载均衡方法和流量转发设备与制造工艺
本发明涉及通信领域,尤其涉及一种负载均衡方法和流量转发设备。
背景技术
:数据中心作为业务网络的核心,面临着众多的挑战,扩展性、灵活性、高性能、可靠性和安全性,无一不是对数据中心的要求。尤其重要的一点是:在访问请求急剧增加的时候,服务器仍要保证快速、稳定的传送应用到客户端,而其中最重要的一个技术保障就是负载均衡技术。负载均衡(LoadBalancing)又称负载分担(LoadBalance),一般用于提高网络的整体处理能力,能够在不改变现有网络结构情况下,扩展网络的带宽、增加网络的吞吐量、加强数据处理能力、提高网络的可用性。现有负载均衡通常采用下述均衡方法:从数据报文中提取整合的比特序列得到负载均衡参数,然后采用固化的哈希(Hash)算法(如:循环冗余码校验(CyclicRedundancyCheck,CRC)算法)计算报文的Hash数值,然后根据出端口数目对得到的Hash值进行取模运算获得Hash模值,将报文通过与该Hash模值对应的物理端口转发出去。由于,现有技术中采用固定的哈希算法的进行负载均衡计算方法,算法固定且单一,导致非均匀分布的流量按照算法负载后更加不均,同一负载均衡的不同出接口的流量可以达到很大差异,难以彻底解决负载均衡不均的问题。技术实现要素:为解决上述问题,本发明提供一种负载均衡方法和流量转发设备,以解决现有采用固定且单一的哈希算法进行负载均衡,导致的负载均衡不均的问题。本发明的实施例采用如下技术方案:第一方面,本发明实施例提供一种负载均衡方法,包括:当接收到数据报文时,先获取数据报文的负载均衡参数;然后,采用第一种哈希Hash算法对所述负载均衡参数进行计算,得到所述数据报文的第一Hash值,采用第二种Hash算法对所述负载均衡参数进行计算,得到所述数据报文的第二Hash值;对所述第一Hash值和所述第二Hash值进行逻辑计算,得到所述数据报文的第三Hash值;最后,根据所述第三Hash值选择物理端口转发所述数据报文。如此,将多种哈希算法组合在一起进行负载均衡计算,针对于单个数据报文来说,其根据Hash最终值选择出的物理端口是比较理想的,从而导致非均匀分布的多条流量按照该算法负载后分布比较均匀,同一负载均衡的不同出接口的流量之间差异不大,解决了负载均衡不均的问题。需要说明的是,经过上述过程之后只计算出一个数据报文的物理端口,此时,当流量转发设备接收到多个数据报文时,对每个数据报文均可以采用上述方法进行处理,使得报文可以均衡地在多条链路上进行转发。其中,当对多条数据报文采用上述方法进行处理时,需要注意的是,组成每条数据报文的负载均衡参数的特征信息可以相同,也可以不完全相同;对每条数据报文的负载均衡参数采用的Hash算法的组合可以相同,也可以不完全相同。第二方面,本发明实施例提供一种流量转发设备,包括:获取单元,用于获取数据报文的负载均衡参数;计算单元,用于采用第一种哈希Hash算法对所述获取单元获取到的负载均衡参数进行计算,得到所述数据报文的第一Hash值,采用第二种Hash算法对所述获取单元获取到的负载均衡参数进行计算,得到所述数据报文的第二Hash值;并对所述第一Hash值和所述第二Hash值进行逻辑计算,得到所述数据报文的第三Hash值;转发单元,用于根据所述计算单元计算出的第三Hash值选择物理端口转发所述数据报文。由上可知,本发明的实施例提供一种负载均衡方法及流量转发设备,获取数据报文的负载均衡参数,采用第一种哈希Hash算法对所述负载均衡参数进行计算,得到所述数据报文的第一Hash值,采用第二种Hash算法对所述负载均衡参数进行计算,得到所述数据报文的第二Hash值;对所述第一Hash值和所述第二Hash值进行逻辑计算,得到所述数据报文的第三Hash值;根据所述第三Hash值选择物理端口转发所述数据报文。如此,将多种哈希算法组合在一起进行负载均衡计算,针对于单个数据报文来说,其根据Hash最终值选择出的物理端口是比较理想的,从而导致非均匀分布的多条流量按照该算法负载后分布比较均匀,同一负载均衡的不同出接口的流量之间差异不大,解决了负载均衡不均的问题。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1示出了可以应用于本发明的网络架构的示意图;图2示出了本发明实施例提供的流量转发设备20的结构图;图3示出了本发明实施例提供的一种负载均衡方法的流程图;图4示出了本发明实施例提供的另一流量转发设备10的结构图;图5为本发明实施例提供的一种数据报文的示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明的是,在本发明的描述中,术语“第一”、“第二”、“另一”等指示的系统或元件为基于实施例描述的具备一定功能的系统或元件,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的系统或元件必须有此命名,因此不能理解为对本发明的限制。本发明的基本原理是:当流量转发设备接收到大量的数据报文后,分别根据两种或两种以上的哈希算法(如CRC生成多项式)对每个数据报文进行哈希计算,获得数据报文的两个或两个以上的Hash值,并将两个或两个以上的Hash值进行逻辑运算,获得一个新的Hash值,根据该Hash值选择相应的物理端口进行报文转发。如此,将多种哈希算法组合在一起进行负载均衡计算,针对于单个数据报文来说,其根据Hash最终值选择出的物理端口是比较理想的,从而导致非均匀分布的多条流量按照该算法负载后分布比较均匀,同一负载均衡的不同出接口的流量之间差异不大,解决了负载均衡不均的问题。例如,图1示出了其中应用本发明的网络架构的简化图,所述网络结构包括:流量转发设备20、以及与流量转发设备连接的服务器10;在图1中,流量转发设备20包括m个物理端口,可通过本发明提供的负载均衡方法将接收到的数据报文进行处理后,均衡地通过m个链路转发至服务器10。具体的,图1所述的流量转发设备20可以为集存储器、通信接口(接收器、发送器)、处理器为一体的,以转发数据报文为主的转发设备,如可以为路由器。例如,图2为本发明实施例提供的流量转发设备20的结构图,如图2所示,所述流量转发设备20可以包括:处理器201、存储器202、接收器203、发送器204以及至少一个通信总线205,用于实现这些装置之间的连接和相互通信;其中,处理器201可能是一个中央处理器(centralprocessingunit,简称为CPU),也可以是特定集成电路(ApplicationSpecificIntegratedCircuit,ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路,例如:一个或多个微处理器(digitalsingnalprocessor,DSP),或,一个或者多个现场可编程门阵列(FieldProgrammableGateArray,FPGA);用于根据存储器202配置文件中预先配置的两种或两种以上的哈希算法(如CRC生成多项式)对接收器203接收到每个数据报文进行哈希计算,获得数据报文的两个或两个以上的Hash值,并将两个或两个以上的Hash值进行逻辑运算,获得一个新的Hash值,根据该Hash值选择发送器204中相应的出接口进行报文转发。存储器202,可以是易失性存储器(volatilememory),例如随机存取存储器(random-accessmemory,RAM);或者非易失性存储器(non-volatilememory),例如只读存储器(read-onlymemory,ROM),快闪存储器(flashmemory),硬盘(harddiskdrive,HDD)或固态硬盘(solid-statedrive,SSD);或者上述种类的存储器的组合,用于存储可实现本发明负载均衡方法的相关应用程序、以及配置文件。接收器203和发送器204,可用于与外部网元之间进行数据通信;所述接收器203,具有用于接收外部网元发送的数据报文;所述发送器204包括多个出接口,具体用于将数据报文均衡地通过不同的出接口转发出去。通信总线205可以分为地址总线、数据总线、控制总线等,可以是工业标准体系结构(IndustryStandardArchitecture,ISA)总线、外部设备互连(PeripheralComponent,PCI)总线或扩展工业标准体系结构(ExtendedIndustryStandardArchitecture,EISA)总线等。为便于表示,图2中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。为了便于描述,以下实施例一以步骤的形式示出并描述了本发明中流量转发设备20执行的负载均衡方法,其中,示出的步骤也可以在除流量转发设备20之外的诸如一组可执行指令的计算机系统中执行。虽然在图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。实施例一图3为本发明实施例提供的一种负载均衡方法的流程图,如图3所示,所述方法可以包括:步骤101:获取数据报文的负载均衡参数。其中,所述负载均衡参数可以由数据报文中表征所述数据报文的特征信息的比特序列排列而成;所述特征信息可以包括:源MAC地址、目的MAC地址、源互联网协议(SourceInternetProtocol,源IP)、目的IP(DestinationIP)、源端口(SourcePort)、目的端口(DestinationPort)中的一个或多个信息。优选的,流量转发设备可以根据配置命令,从所述数据报文的报文头中获取符合配置命令的特征信息的比特序列,将获取到的比特序列组合在一起作为所述数据报文的负载均衡参数;其中,配置命令用于指示形成负载均衡参数的特征信息为哪些信息。例如,若配置命令为:port-channelload-balance{src-ip|dst-ip|src-port|dst-port},则表示由源IP、目的IP、源端口以及目的端口的比特序列组成负载均衡参数,此时,可以提取数据报文的报文头中的这四个特征信息(如图5所示,源IP用31bit表示,目的IP用32bit表示,源端口用16bit表示,目的端口用16bit表示),并将源IP、目的IP、源端口和目的端口的比特序列组成一个96比特的比特序列用作负载均衡参数。步骤102:采用第一种哈希Hash算法对所述负载均衡参数进行计算,得到所述数据报文的第一Hash值,采用第二种Hash算法对所述负载均衡参数进行计算,得到所述数据报文的第二Hash值。其中,所述Hash算法可以为循环冗余码校验(CyclicRedundancyCheck,CRC)生成多项式,还可以为其他的可用于Hash计算的方法,如:MD5,SHA等;在本发明实施例中,第一种Hash算法和第二种Hash算法可以相同,也可以不相同。优选的,流量转发设备可以根据配置命令,按照配置命令中预先配置的第一种Hash算法和第二种Hash算法分别对负载均衡参数进行计算,获得第一Hash值和第二Hash值。需要说明的是,第一种Hash算法和第二种Hash算法可以根据需要从业界常用的Hash算法中选择合适的Hash进行配置,通常情况下,本领域技术人员可以经过多次试验,将组合后负载均衡效果比较好的两种哈希Hash算法用于步骤102的计算。例如:若在一特定的流量模型下,本领域技术人员经过多次试验发现用多项式:x^8+x^7+x^4+x^3+x+1和x^17+x^4+1进行负载均衡后,负载均衡效果优于单一使用x^17+x^4+1,或x^8+x^7+x^4+x^3+x+1进行负载均衡时的效果,则可以在该流量模型下,将多项式:x^8+x^7+x^4+x^3+x+1和x^17+x^4+1作为第一种Hash算法和第二Hash算法,来实现本案提供的负载均衡方法。虽然,本案步骤102只提到了利用两种Hash算法的组合进行负载均衡,但是,可以理解的是,本案这种将Hash算法组合进行负载均衡的思想,已给出了可以将两种以上的Hash算法进行组合进行负载均衡的启示,即用两种以上的Hash算法分别对负载均衡参数进行计算,获得两种以上的Hash值进行后续计算的方案,也包含在本发明所要保护的范围之内。步骤103:对所述第一Hash值和所述第二Hash值进行逻辑计算,得到所述数据报文的第三Hash值。示例性的,对所述第一Hash值和所述第二Hash值进行异或操作、或者与操作,得到所述数据报文的第三Hash值具体可以包括:将所述数据报文的N个HASH值进行逻辑计算,得到所述数据报文的第三Hash值具体可以包括:对所述第一Hash值和所述第二Hash值进行异或操作、或者与操作,得到所述数据报文的第三Hash值。需要说明的,本发明所述的逻辑计算包括但不限于上述两种操作,还可以为其他形式的计算方式,本发明对此不进行限定。例如:若用x^8+x^7+x^4+x^3+x+1对负载均衡参数计算后的Hash值为110,用和x^17+x^4+1对负载均衡参数计算后的Hash值为010,则将110和010这两个Hash经过与操作后,可以得到第三Hash值010。步骤104:根据所述第三Hash值选择物理端口转发所述数据报文。示例性的,所述根据所述第三Hash值选择物理端口转发所述数据报文具体可以包括:用当前工作的物理端口的数量对所述第三Hash值进行取模操作,获得所述数据报文的Hash模值;查询预设的物理端口列表中与所述第三Hash模值对应的物理端口,其中,所述物理端口列表包含:物理端口与Hash模值的对应关系;通过所述物理端口转发所述数据报文。例如,流量转发设备有5个物理接口(A~E),且物理端口列表如下表1所示,此时,若根据第三Hash计算出报文的Hash模值为7,则确根据表1可以确定该报文通过物理端口B转发出去。表1物理端口Hash模值A1、6B2、7C3、8D4E5需要说明的是,经过上述过程之后只计算出一个数据报文的物理端口,此时,当流量转发设备接收到多个数据报文时,对每个数据报文均可以采用上述方法进行处理,使得报文可以均衡地在多条链路上进行转发。其中,当对多条数据报文采用上述方法进行处理时,需要注意的是,组成每条数据报文的负载均衡参数的特征信息可以相同,也可以不完全相同;对每条数据报文的负载均衡参数采用的多种Hash算法的可以相同,也可以不完全相同;例如,若有两条待转发的数据报文:报文1、报文2,可以根据源IP、目的IP的比特序列组成报文1的负载均衡参数,根据源IP、目的IP、源端口以及目的端口的比特序列组成报文2的负载均衡参数;可以对报文1的负载均衡参数采用2种Hash算法进行计算,获得两个Hash值后进行逻辑计算得到报文1的第三Hash值,对报文2的负载均衡参数采用4种Hash算法进行计算,获得四个Hash值后进行逻辑计算得到报文2的第三Hash值。由上可知,本发明的实施例提供一种负载均衡方法,获取数据报文的负载均衡参数,采用第一种哈希Hash算法对所述负载均衡参数进行计算,得到所述数据报文的第一Hash值,采用第二种Hash算法对所述负载均衡参数进行计算,得到所述数据报文的第二Hash值;对所述第一Hash值和所述第二Hash值进行逻辑计算,得到所述数据报文的第三Hash值;根据所述第三Hash值选择物理端口转发所述数据报文。如此,将多种哈希算法组合在一起进行负载均衡计算,针对于单个数据报文来说,其根据Hash最终值选择出的物理端口是比较理想的,从而导致非均匀分布的多条流量按照该算法负载后分布比较均匀,同一负载均衡的不同出接口的流量之间差异不大,解决了负载均衡不均的问题。根据本发明实施例,本发明下述实施例还提供了一种流量转发设备,优选地用于实现上述方法实施例中的方法。实施例二图4为本发明实施例提供的一种流量转发设备10的结构图,所述流量转发设备10可以是路由器,如图4所示,所述流量转发设备可以包括:获取单元101,用于获取数据报文的负载均衡参数。其中,所述负载均衡参数可以由数据报文中表征所述数据报文的特征信息的比特序列排列而成;所述特征信息可以包括:源MAC地址、目的MAC地址、源互联网协议(SourceInternetProtocol,源IP)、目的IP(DestinationIP)、源端口(SourcePort)、目的端口(DestinationPort)中的一个或多个信息。计算单元102,用于采用第一种哈希Hash算法对所述获取单元101获取到的负载均衡参数进行计算,得到所述数据报文的第一Hash值,采用第二种Hash算法对所述获取单元101获取到的负载均衡参数进行计算,得到所述数据报文的第二Hash值;并对所述第一Hash值和所述第二Hash值进行逻辑计算,得到所述数据报文的第三Hash值。转发单元103,用于根据所述第三Hash值选择物理端口转发所述数据报文。优选的,所述获取单元101,具体用于可以根据配置命令,从所述数据报文的报文头中获取符合配置命令的特征信息的比特序列,将获取到的比特序列组合在一起作为所述数据报文的负载均衡参数;其中,配置命令用于指示形成负载均衡参数的特征信息为哪些信息。示例性的,所述计算单元102对所述第一Hash值和所述第二Hash值进行逻辑计算,得到所述数据报文的第三Hash值具体为,所述计算单元102,用于:对所述第一Hash值和所述第二Hash值进行异或操作、或者与操作,得到所述数据报文的第三Hash值。需要说明的,本发明所述的逻辑计算包括但不限于上述两种操作,还可以为其他形式的计算方式,本发明对此不进行限定。示例性的,所述转发单元103根据所述第三Hash值选择物理端口转发所述数据报文具体为,所述转发单元103,用于:用当前工作的物理端口的数量对所述第三Hash值进行取模操作,获得所述数据报文的Hash模值;查询预设的物理端口列表中与所述第三Hash模值对应的物理端口,其中,所述物理端口列表包含:物理端口与Hash模值的对应关系;通过所述物理端口转发所述数据报文。由上可知,本发明的实施例提供一种流量转发设备,获取数据报文的负载均衡参数,采用第一种哈希Hash算法对所述负载均衡参数进行计算,得到所述数据报文的第一Hash值,采用第二种Hash算法对所述负载均衡参数进行计算,得到所述数据报文的第二Hash值;对所述第一Hash值和所述第二Hash值进行逻辑计算,得到所述数据报文的第三Hash值;根据所述第三Hash值选择物理端口转发所述数据报文。如此,将多种哈希算法组合在一起进行负载均衡计算,针对于单个数据报文来说,其根据Hash最终值选择出的物理端口是比较理想的,从而导致非均匀分布的多条流量按照该算法负载后分布比较均匀,同一负载均衡的不同出接口的流量之间差异不大,解决了负载均衡不均的问题。在本发明各个实施例中的流量转发设备的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。且上述的各单元既可以采用硬件形式实现,也可以采用硬件加软件功能单元的形式实现。实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,简称ROM)、随机存取存储器(RandomAccessMemory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1