CN101478480B - 一种实现负载均衡的方法及装置 - Google Patents

一种实现负载均衡的方法及装置 Download PDF

Info

Publication number
CN101478480B
CN101478480B CN2009100000689A CN200910000068A CN101478480B CN 101478480 B CN101478480 B CN 101478480B CN 2009100000689 A CN2009100000689 A CN 2009100000689A CN 200910000068 A CN200910000068 A CN 200910000068A CN 101478480 B CN101478480 B CN 101478480B
Authority
CN
China
Prior art keywords
packet
output port
maximal flow
unit
maximal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2009100000689A
Other languages
English (en)
Other versions
CN101478480A (zh
Inventor
汪斌强
王超
朱宣勇
于婧
姜锟鹏
朱圣平
曲晶
卜佑军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
PLA Information Engineering University
Original Assignee
PLA Information Engineering University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by PLA Information Engineering University filed Critical PLA Information Engineering University
Priority to CN2009100000689A priority Critical patent/CN101478480B/zh
Publication of CN101478480A publication Critical patent/CN101478480A/zh
Application granted granted Critical
Publication of CN101478480B publication Critical patent/CN101478480B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种实现负载均衡的方法及装置。本发明公开的方法包括:若接收到的数据包属于极大流,且当前各输出端口发生了负载不均衡,重新选择所述数据包的输出端口,所述极大流为同时满足以下两个条件的业务流:在单位时间内到达的数据包个数大于第一门限值,持续时间大于第二门限值;通过为所述数据包重新选择的输出端口发送所述数据包。通过本发明,可以在保证数据包按序到达接收端的同时,更好地实现负载均衡。

Description

一种实现负载均衡的方法及装置
技术领域
本发明涉及通信技术领域,尤其涉及一种实现负载均衡的方法及装置。
背景技术
随着互联网(Internet)的迅速普及与发展,产生了许多新的高带宽需求的多媒体应用,譬如网络电视、视频点播、多媒体远程教育等。这些多媒体应用满足了用户对因特网的需求,同时也带了网络拥塞的问题。
网络拥塞的原因主要为网络中间节点的输出端口出现了负载不均衡。造成网络中间节点的输出端口负载不均衡的原因主要为:传统路由选择机制只选择按路由协议得到的最短路径,网络中间节点接收到的数据包进行传输均经过该最短路径。而网络中间节点到目的节点之间还存在多条除最短路径以外的次优路径,因此,传统路由选择机制易造成瓶颈链路,导致网络发生拥塞。
在基于传输控制协议/互联网络协议(TCP\IP,Transmission ControlProtocol/Internet Protocol)的网络中,为了解决网络中间节点的输出端口负载不均衡的问题,现有解决方案主要包括以下两种方式:
第一种方式为基于包水平(per-packet)的负载均衡。具体为:收到业务流的网络中间节点逐包进行负载均衡处理,常见的方法有轮询算法,加权轮询算法,最小负载分配算法,随机分配算法等。采用逐包的负载均衡方法,同一个业务流中的数据包可能沿着不同的路径到达接收端,虽能实现很好的均衡效果,但是由于各路径时延的不同,使得同一业务流中先发送的数据包滞后于后发送的数据包到达接收端,造成同一业务流的数据包在接收端发生乱序。
第二种方式为是基于流水平(per-flow)的负载均衡。常见的基于流水平的负载均衡方法主要包括:基于哈希算法的负载均衡。基于哈希算法的负载均衡包括直接哈希算法以及基于表的哈希算法。直接哈希算法非常简单且不需要维持数据流的额外的状态信息,常见的有目的地址哈希,源和目的地址折叠异或哈希,循环冗余校验CRC-16等。基于表的哈希算法需要维护数据流的状态信息,通过对调整哈希值与输出端口在表项中的关系,实现负载按期望的负载分配比分派。基于流水平的负载分配方法使得同一业务流中的数据包沿着相同的路径到达接收端,可以保证同一业务流中数据包按序到达接收端,在接收端不会出现乱序。但是由于网络中的各业务流的持续时间、数据量不尽相同,基于流水平的负载均衡采用的算法很可能会造成某些持续时间长、数据量巨大的业务流映射到网络中间节点的同一个输出端口,而其它输出端口相对空闲,造成负载均衡效果较差。
发明人在研究过程中,发现上述两种现有解决方案至少存在以下缺点:无法在保证数据包按序到达的同时,更好地实现负载均衡。具体地,基于包水平的负载均衡只关注了均衡问题,没有考虑数据包是否按序到达接收端。采用这种负载均衡的方法,数据包的乱序问题比较严重,网络的性能也会严重下降。基于流水平的负载均衡可以保证属于同一个业务流的数据包沿着相同的路径到达接收端,实现了数据包的按序到达,但是,不能很好地实现负载均衡。
发明内容
有鉴于此,本发明提供了一种实现负载均衡的方法及装置,以在保证数据包按序到达接收端的同时,更好地实现负载均衡。
一种实现负载均衡的方法,所述方法包括:
若接收到的数据包属于极大流,且当前各输出端口发生了负载不均衡,重新选择所述数据包的输出端口,所述极大流为同时满足以下两个条件的业务流:在单位时间内到达的数据包个数大于第一门限值,持续时间大于第二门限值,若所述业务流为极大流,则将所述业务流的标识信息添加进极大流表,所述极大流表用于维护已确定出的极大流和与极大流对应的输出端口的映射关系;
通过为所述数据包重新选择的输出端口发送所述数据包。
优选地,所述极大流通过以下方式进行判别:
设置第一计时器,并对第一计时器设定相应的门限值,同时给每个业务流设置了数据包个数计数器,并分别对各计数器设定了相应门限值,在不大于所述第一计时器的门限值的时间内,若接收到的属于同一业务流的数据包的个数大于第三门限值,则所述业务流为极大流,一旦第一计时器累计的时间大于第一计时器的门限值,将当前用于确认极大流的统计信息全部清零,进入下一轮极大流确认循环过程。
可选地,所述方法还包括:
为所述业务流设置计数器,所述第三门限值为所述计数器的门限值。
优选地,所述数据包是否属于所述极大流通过如下方式实现:
根据所述数据包的标识信息查找所述极大流表,若在所述极大流表中查找到与所述数据包的标识信息匹配的信息,则所述数据包属于所述极大流。
可选地,所述方法还包括:
为所述数据包所属的极大流的标识信息设定第二计时器,当第二计时器累计的时间大于所述第二计时器的门限值时,若没有接收到所述标识信息的数据包,则将所述极大流的标识信息从所述极大流表中删除。
可选地,所述方法还包括:
在初始化时,确定候选下一跳集,所述候选下一跳集是从各下一跳节点中选出的下一跳节点组成的集合,为所述数据包重新选择的输出端口对应的下一跳节点属于所述候选下一跳集。
优选地,所述确定候选下一跳集包括:
若可用下一跳节点个数大于所述候选下一跳集包含的下一跳节点个数门限值M,则从所述可用下一跳节点中选择权值排在前M位的下一跳节点构成候选下一跳集;若可用下一跳节点个数不大于所述M,则所述可用下一跳节点构成候选下一跳集,所述M为自然数;
所述权值由所述各输出端口包含的路径的带宽信息、时延信息确定。
可选地,所述方法还包括:
对所述各输出端口的队列长度进行统计;
所述重新选择所述数据包的输出端口包括:
根据所述各输出端口的队列长度重新选择所述数据包的输出端口。
可选地,所述方法还包括:
若所述数据包属于极小流,或者,所述数据包属于极大流且当前所述各输出端口负载分配均衡,维持与所述数据包对应的输出端口不变;
所述极小流为在单位时间内到达的数据包个数小于第四门限值的业务流。
一种实现负载均衡的装置,所述装置包括:
重新选择单元,用于若接收到的数据包属于极大流,且当前各输出端口出现了负载不均衡,重新选择所述数据包的输出端口,所述极大流为同时满足以下两个条件的业务流:在单位时间内到达的数据包个数大于第一门限值,持续时间大于第二门限值;;所述重新选择单元包括:极大流判别单元,用于若所述业务流为极大流,则将所述业务流的标识信息添加进极大流表,所述极大流表用于维护已确定出的极大流和与极大流对应的输出端口的映射关系;
输出端口队列单元,用于通过所述重新选择单元为所述数据包重新选择的输出端口发送所述数据包。
优选地,所述
极大流判别单元,还用于设置第一计时器,并对第一计时器设定相应的门限值,同时给每个业务流设置了数据包个数计数器,并分别对各计数器设定了相应门限值,以判别所述数据包所属的业务流是否为所述极大流,一旦第一计时器累计的时间大于第一计时器的门限值,将当前用于确认极大流的统计信息全部清零,进入下一轮极大流确认循环过程。
优选地,所述重新选择单元包括:
查找单元,所述查找单元包括极大流表,所述查找单元用于根据所述数据包的标识信息查找所述极大流表,若在所述极大流表中查找到与所述数据包的标识信息匹配的信息,则所述数据包属于所述极大流。
可选地,所述重新选择单元还包括:
极大流表维护单元,用于为所述数据包所属的极大流的标识信息设定第二计时器,当第二计时器累计的时间大于所述第二计时器的门限值时,若没有接收到所述标识信息的数据包,则将所述极大流的标识信息从所述极大流表中删除。
可选地,所述装置还包括:
候选下一跳集单元,用于在初始化时,确定候选下一跳集,所述候选下一跳集是从各下一跳节点中选出的下一跳节点组成的集合,为所述数据包确定的输出端口对应的下一跳节点属于所述候选下一跳集。
可选地,所述装置还包括:
统计单元,用于对所述各输出端口的队列长度进行统计;
所述重新选择单元用于根据所述统计单元统计的各输出端口的队列长度重新选择所述数据包的输出端口。
可选地,所述装置还包括:
输出端口维持单元,用于若所述数据包属于极小流,或者,所述数据包属于极大流且当前所述各输出端口负载分配均衡,维持与所述数据包对应的输出端口不变。
可以看出,本发明将网络中的业务流分为极大流与极小流。对于属于极大流的数据包,在输出端口负载不均衡的情况下,重新为其选择输出端口,即可以将数据包的输出端口调整到当前负载最小的输出端口上进行发送。对于属于极小流的数据包,或者在当前输出端口负载分配均衡的情况下属于极大流的数据包,仍然通过原有的输出端口进行发送。从而,在保证数据包按序到达接收端的同时,更好地实现负载均衡。
附图说明
图1为本发明方法流程图;
图2为本发明实施例方法流程图;
图3为本发明实施例中网络中间节点通过查找极大流表得到第二查询结果的方法流程图;
图4为本发明实施例网络中间节点确定某业务流是否为极大流的方法流程图;
图5为本发明装置结构框图;
图6为本发明实施例装置结构框图一;
图7为本发明实施例装置结构框图二。
具体实施方式
为了使本发明的上述特征、优点更加明显易懂,下面结合具体实施方式对本发明进行详细说明。
首先,值得注意的是,本发明根据网络流量呈现出来的统计特性进行业务流区分。具体地,网络中各条业务流的持续时间、包含的数据包个数等不尽相同。通常,网络中的业务流大多为持续时间短、包含的数据包个数少的业务流,但是这些业务流包含的数据量只是网络的数据量中很小的一部分。网络中的大部分数据由持续时间长、包含的数据包个数多的业务流组成。根据业务流的突发特性和流量特性,本发明把业务流分为极小流和极大流。极小流是在单位时间内到达的数据包个数小于预置的门限值。同时满足以下两个条件的业务流为极大流:(1)在单位时间内到达的数据包个数大于预置的门限值;(2)该业务流的持续时间大于预置的门限值。具有多个下一跳的网络中间节点的输出端口发生负载不均衡主要是由于极大流造成的。
在没有出现负载不均衡的情况下,业务流都按照预定的分配关系,缓存入网络中间节点确定的输出端口队列中,属于同一业务流的数据包将被分配至同一个输出端口队列中,确保业务流数据包的按序到达。在发生负载不均衡的情况下,总体上采用基于流的负载分配策略,由输出端口触发进行过载输出端口的调整,把造成过载的极大流调整到具有最小负载的输出端口上。此时,其它业务流都不会被调整,仍然按照之前指定的输出端口调度,被调整的极大流经调整后,后续到达的属于该极大流的数据包都将沿着调整后的输出端口调度。这样,调整之前的数据包沿着相同的路径到达接收端,调整之后的数据包沿着调整之后的路径到达接收端,从而不会造成数据包的乱序。同时,还可以有效的利用网络的资源,提高网络的整体性能。
请参考图1,为本发明方法流程图,包括以下步骤:
步骤101:若接收到的数据包属于极大流,且当前各输出端口发生了负载不均衡,重新选择所述数据包的输出端口,所述极大流为同时满足以下两个条件的业务流:在单位时间内到达的数据包个数大于第一门限值,持续时间大于第二门限值;
步骤102:通过为所述数据包重新选择的输出端口发送所述数据包。
下面结合实施例对图1所示步骤进行详细说明。
首先,网络中间节点可以在初始化时进行以下工作:
(1)对包含输出端口带宽以及时延信息的信息库进行维护。
该信息库维护有网络中间节点每个输出端口到下一跳节点的各链路的带宽值和时延值,以便确定到目的节点的候选下一跳集。
(2)确定候选下一跳集。
根据路由协议得到的到达目的节点的可用下一跳节点有可能会比较多,最大值为路由器端口总数减1,这就意味着到目的节点可能会出现多条路径。各路径的情况不尽相同,有的带宽比较宽,有的带宽比较窄,对这些可用的下一跳节点进行筛选得到候选下一跳集。
下一跳节点的确定也就是数据包输出端口的确定。给各个输出端口赋予归一化的权重ωi,i≤n,n为可用下一跳节点的个数,n为自然数,该权重值的大小由各路径的带宽、时延共同决定,具体可以通过如下公式实现:ωi=α×归一化带宽+(1-α)×归一化时延,其中0≤α≤1。设定候选下一跳集可以包含的下一跳节点个数门限值M,M为自然数。若可用下一跳节点个数n大于M,从可用下一跳节点中挑选其权值排在前M位的下一跳节点构成候选下一跳集。若可用下一跳节点个数n小于等于M,可用下一跳节点全部构成候选下一跳集。
(3)网络中间节点实时或者周期性统计各输出端口队列长度信息。
为了能自适应的调整输出端口的负载分配,需要把原本映射到过载输出端口的业务流映射至负载最小的输出端口,这就需要有各输出端口的队列长度信息。各输出端口队列长度信息可以及时进行更新,以提供负载最小的队列信息。
需要指出的是,网络中间节点不仅在初始化时需要统计各输出端口队列长度信息,初始化完成后,网络中间节点还要实时或者周期性统计各输出端口队列长度信息。若周期性进行统计,周期的取值较小。
(4)结合候选下一跳集的信息和期望的负载分配比,确定哈希映射表中各业务流与输出端口之间的映射。
初始化完成后,当网路中间节点接收到数据包时,需要确定其输出端口。
请参考图2,为本发明实施例方法流程图,可以包括以下步骤:
步骤201:提取接收到的数据包的相关头部信息,根据提取的信息确定该数据包的标识号(flow_ID);
可以提取数据包的包头的5元组信息(5元组信息包括:源IP地址,目的IP地址,源端口号,目的端口号,协议类型号),并不对提取的数据包的包头信息加以限制,可以是5元组中的部分域。对提取出的数据包的包头信息进行哈希运算,可以采用CRC-16等哈希函数进行哈希运算,得到该数据包的flow_ID。属于同一个业务流的数据包具有相同的flow_ID。
步骤202:将flow_ID作为关键字,分别查找哈希映射表(hash_table)以及极大流表(flow_table);
极大流表用于维护极大流和与极大流对应的输出端口的映射关系。
根据得到的flow_ID查找哈希映射表,得到第一查询结果。同时,根据得到的flow_ID在极大流表中查找。若在极大流表中没有匹配结果,说明该数据包不属于极大流。若在极大流表中有匹配结果,说明该数据包属于极大流。查找极大流表之后,得到第二查询结果。在该数据包属于极大流的情况下,当输出端口队列的调整信息有效时,说明此时各输出端口负载不均衡,需要进行调整。此时,第二查询结果有效。根据各输出端口的队列长度信息,把该数据包映射到具有最小负载的输出端口。当输出端口队列输出的调整信息无效时,说明此时不需要对负载进行均衡,虽然该数据包属于极大流,但是第二查询结果无效。
在根据得到的flow_ID在极大流表中查找的同时,网络中间节点同步进行着极大流的统计确认。具体为:设置一个统计用第一计时器,并对第一计时器设定相应的门限值,同时给每个业务流设置了数据包个数计数器,并分别对各计数器设定了相应门限值。在不大于第一计时器的门限值的时间内,某个业务流的数据包个数超出了其计数器的门限值,则该业务流是一个极大流,把该业务流的flow_ID添加到极大流表中。一旦第一计时器累计的时间大于第一计时器的门限值,将当前用于确认极大流的统计信息全部清零,进入下一轮极大流确认循环过程。
需要指出的是,得到第一查询结果的方式不局限于查找哈希映射表。
步骤203:根据在哈希映射表以及在极大流表中的查询结果确定该数据包的输出端口;
若第一查询结果有效,第二查询结果无效,选择第一查询结果确定该数据包的输出端口。选择第一查询结果确定该数据包的输出端口时,该数据包原来应选择的输出端口仍然作为其输出端口。若第一查询结果与第二查询结果均有效,选择第二查询结果确定该数据包的输出端口。选择第二查询结果确定该数据包的输出端口时,根据各输出端口队列长度信息选择负载最小的输出端口作为该数据包的输出端口。
与输出端口相应的下一跳节点属于候选下一跳集。
步骤204:将该数据包缓存到确定的输出端口的输出队列。
可选地,在步骤202的过程中,还可以包括:
为flow_ID设定第二计时器和与第二计时器相应的门限值,若该数据包在极大流表中有匹配结果,第二计时器清零;在不大于第二计时器的门限值的时间内,若没有再收到该flow_ID的数据包,将该flow_ID在极大流表中删除。
第二计时器的主要作用是确定极大流表中的flow_ID是否还有效。若某个flow_ID无效,则将无效的flow_ID删除以减小极大流表中表项的个数。极大流表中的各flow_ID均有各自的第二计时器。在某flow_ID的第二计时器的门限值内,若网络中间节点接收到该flow_ID对应的数据包,第二计时器清零后重新开始计时。若第二计时器的时间大于其门限值,网络中间节点还没有接收到该flow_ID对应的数据包,将该flow_ID从极大流表中删除。
请参考图3,为本发明实施例中网络中间节点通过查找极大流表得到第二查询结果的方法流程图,可以包括以下步骤:
步骤301:在极大流表中查找得到的flow_ID;
步骤302:判断是否有匹配结果,若有,执行步骤303,否则,得到无效的查询结果;
步骤303:查看输出端口队列输出的调整信息是否有效,若有效,得到有效的第二查询结果,否则,得到无效的第二查询结果。
当第二查询结果有效时,更新极大流表中与得到的flow_ID匹配的极大流的映射关系,即更新与该极大流对应的输出端口,更新之后的输出端口为具有最小负载的输出端口,选择具有最小负载的输出端口作为该数据包的输出端口。
请参考图4,为本发明实施例网络中间节点确定某业务流是否为极大流的方法流程图,可以包括以下步骤:
步骤401:接收到一个数据包时,判断第一计时器累计的时间是否大于第一计时器的门限值,若大于,执行步骤402,否则,执行步骤403;
步骤402:将所有业务流的计数器以及第一计时器清零,以进入下一条业务流的判别,返回步骤401;
步骤403:判断当前接收到的数据包是否是其所属业务流中第一个到达网络中间节点的数据包,若是,执行步骤404,否则,执行步骤405;
步骤404:为当前接收到的数据包所属的业务流设置计数器,返回步骤401;
此时计数器counter=1,等待对下一个数据包的判断。
步骤405:将当前接收到的数据包所属的业务流的计数器的值加1;
步骤406:判断当前接收到的数据包所属的业务流的计数器的值是否大于该计数器的门限值,若大于,执行步骤407,否则,返回步骤401;
若大于,说明当前接收到的数据包所属的业务流是极大流。
步骤407:将当前接收到的数据包的flow_ID添加进极大流表;
步骤408:当前接收到的数据包所属的业务流的计数器清零,返回步骤401。
可以看出,本发明将网络中的业务流分为极大流与极小流。对于属于极大流的数据包,在输出端口负载不均衡的情况下,重新选择其输出端口,即可以将数据包的输出端口调整到当前负载最小的输出端口上进行发送。对于属于极小流的数据包,或者在当前输出端口负载分配均衡的情况下属于极大流的数据包,仍然通过原有的输出端口进行发送。从而,在保证数据包按序到达接收端的同时,更好地实现负载均衡。同时,还可以有效的利用网络的资源,提高网络的整体性能。
请参考图5,为本发明装置结构框图,包括:
重新选择单元501,用于若接收到的数据包属于极大流,且当前各输出端口出现了负载不均衡,重新选择所述数据包的输出端口,所述极大流为同时满足以下两个条件的业务流:在单位时间内到达的数据包个数大于第一门限值,持续时间大于第二门限值;
输出端口队列单元502,用于通过所述重新选择单元501为所述数据包重新选择的输出端口发送所述数据包。
请参考图6,为本发明实施例装置结构框图一,在图5所示各单元的基础上,还可以包括:
候选下一跳集单元503,用于在初始化时,确定候选下一跳集,所述候选下一跳集是从各下一跳节点中选出的下一跳节点组成的集合,为所述数据包确定的输出端口对应的下一跳节点属于所述候选下一跳集。
统计单元504,用于对所述各输出端口的队列长度进行统计;
所述重新选择单元501用于根据所述统计单元504统计的各输出端口的队列长度重新选择所述数据包的输出端口。
输出端口维持单元505,用于若所述数据包属于极小流,或者,所述数据包属于极大流且当前所述各输出端口负载分配均衡,维持与所述数据包对应的输出端口不变。
提取单元506,用于提取所述数据包包头中的相关信息,以确定所述数据包的标识号,并将所述标识号作为关键字输出至重新选择单元501以及输出端口维持单元505。
输出单元507,用于根据所述重新选择单元501或者所述输出端口维持单元505确定的输出端口将数据包输出至相应的输出端口。
请参考图7,为本发明实施例装置结构框图二,在图6所示各单元的基础上,重新选择单元501可以包括:
极大流判别单元508,用于设置第一计时器,以判别所述数据包所属的业务流是否为所述极大流。
查找单元509,所述查找单元509包括极大流表,所述查找单元509用于根据所述数据包的标识信息查找所述极大流表,若在所述极大流表中查找到与所述数据包的标识信息匹配的信息,则所述数据包属于所述极大流;
所述极大流判别单元508还用于若所述业务流为极大流,则将所述业务流的标识信息添加进所述查找单元508的所述极大流表。
极大流表维护单元510,用于为所述数据包所属的极大流的标识信息设定第二计时器,当第二计时器累计的时间大于所述第二计时器的门限值时,若没有接收到所述标识信息的数据包,则将所述极大流的标识信息从所述极大流表中删除。
下面结合图2所示步骤对图7各单元执行的操作进行详细说明。
初始化时,统计单元504实时或者周期性对各输出端口的队列长度进行统计。候选下一跳集单元503确定候选下一跳集。
初始化完成后,统计单元504还需要实时或者周期性对各输出端口的队列长度进行统计。
提取单元506提取接收到的数据包的相关头部信息,根据提取的信息确定该数据包的标识号flow_ID。将flow_ID作为关键字分别输出至重新选择单元501以及输出端口维持单元505。
重新选择单元501的查找单元509在极大流表中查找该数据包所属的业务流是否属于极大流。同时,极大流判别单元508设置第一计时器,判断该数据包所属的业务流是否为极大流。可选地,极大流表维护单元510对极大流表进行维护,将无效的flow_ID从极大流表中删除。
输出端口维持单元505输出第一查询结果,重新选择单元501输出第二查询结果。若第二查询结果有效,重新选择单元501根据统计单元504的统计信息为该报文重新选择输出端口。
输出单元507根据第一查询结果或者第二查询结果确定的输出端口,将该报文输出至输出端口队列单元502。
可以看出,本发明将网络中的业务流分为极大流与极小流。对于属于极大流的数据包,在输出端口负载不均衡的情况下,重新选择其输出端口,即可以将数据包的输出端口调整到当前负载最小的输出端口上进行发送。对于属于极小流的数据包,或者在当前输出端口负载分配均衡的情况下属于极大流的数据包,仍然通过原有的输出端口进行发送。从而,在保证数据包按序到达接收端的同时,更好地实现负载均衡。同时,还可以有效的利用网络的资源,提高网络的整体性能。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上对本发明所提供的一种实现负载均衡的方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (12)

1.一种实现负载均衡的方法,其特征在于,所述方法包括:
若接收到的数据包属于极大流,且当前各输出端口发生了负载不均衡,重新选择所述数据包的输出端口,所述极大流为同时满足以下两个条件的业务流:在单位时间内到达的数据包个数大于第一门限值,持续时间大于第二门限值,若所述业务流为极大流,则将所述业务流的标识信息添加进极大流表,所述极大流表用于维护已确定出的极大流和与极大流对应的输出端口的映射关系;
通过为所述数据包重新选择的输出端口发送所述数据包。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在初始化时,确定候选下一跳集,所述候选下一跳集是从各下一跳节点中选出的下一跳节点组成的集合,为所述数据包重新选择的输出端口对应的下一跳节点属于所述候选下一跳集。
3.根据权利要求2所述的方法,其特征在于,所述确定候选下一跳集包括:
若可用下一跳节点个数大于所述候选下一跳集包含的下一跳节点个数门限值M,则从所述可用下一跳节点中选择权值排在前M位的下一跳节点构成候选下一跳集;若可用下一跳节点个数不大于所述M,则所述可用下一跳节点构成候选下一跳集,所述M为自然数;
所述权值由所述各输出端口包含的路径的带宽信息、时延信息确定。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对所述各输出端口的队列长度进行统计;
所述重新选择所述数据包的输出端口包括:
根据所述各输出端口的队列长度重新选择所述数据包的输出端口。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述数据包属于极小流,或者,所述数据包属于极大流且当前所述各输出端口负载分配均衡,维持与所述数据包对应的输出端口不变;
所述极小流为在单位时间内到达的数据包个数小于第四门限值的业务流。
6.一种实现负载均衡的装置,其特征在于,所述装置包括:
重新选择单元,用于若接收到的数据包属于极大流,且当前各输出端口出现了负载不均衡,重新选择所述数据包的输出端口,所述极大流为同时满足以下两个条件的业务流:在单位时间内到达的数据包个数大于第一门限值,持续时间大于第二门限值;所述重新选择单元包括:极大流判别单元,用于若所述业务流为极大流,则将所述业务流的标识信息添加进极大流表,所述极大流表用于维护已确定出的极大流和与极大流对应的输出端口的映射关系;
输出端口队列单元,用于通过所述重新选择单元为所述数据包重新选择的输出端口发送所述数据包。
7.根据权利要求6所述的装置,其特征在于,所述极大流判别单元,还用于设置第一计时器,并对第一计时器设定相应的门限值,同时给每个业务流设置了数据包个数计数器,并分别对各计数器设定了相应门限值,以判别所述数据包所属的业务流是否为所述极大流,一旦第一计时器累计的时间大于第一计时器的门限值,将当前用于确认极大流的统计信息全部清零,进入下一轮极大流确认循环过程。
8.根据权利要求7所述的装置,其特征在于,所述重新选择单元包括:
查找单元,所述查找单元包括极大流表,所述查找单元用于根据所述数据包的标识信息查找所述极大流表,若在所述极大流表中查找到与所述数据包的标识信息匹配的信息,则所述数据包属于所述极大流。
9.根据权利要求8所述的装置,其特征在于,所述重新选择单元还包括:
极大流表维护单元,用于为所述数据包所属的极大流的标识信息设定第二计时器,当第二计时器累计的时间大于所述第二计时器的门限值时,若没有接收到所述标识信息的数据包,则将所述极大流的标识信息从所述极大流表中删除。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
候选下一跳集单元,用于在初始化时,确定候选下一跳集,所述候选下一跳集是从各下一跳节点中选出的下一跳节点组成的集合,为所述数据包确定的输出端口对应的下一跳节点属于所述候选下一跳集。
11.根据权利要求6所述的装置,其特征在于,所述装置还包括:
统计单元,用于对所述各输出端口的队列长度进行统计;
所述重新选择单元用于根据所述统计单元统计的各输出端口的队列长度重新选择所述数据包的输出端口。
12.根据权利要求6所述的装置,其特征在于,所述装置还包括:
输出端口维持单元,用于若所述数据包属于极小流,或者,所述数据包属于极大流且当前所述各输出端口负载分配均衡,维持与所述数据包对应的输出端口不变。
CN2009100000689A 2009-01-05 2009-01-05 一种实现负载均衡的方法及装置 Expired - Fee Related CN101478480B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009100000689A CN101478480B (zh) 2009-01-05 2009-01-05 一种实现负载均衡的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009100000689A CN101478480B (zh) 2009-01-05 2009-01-05 一种实现负载均衡的方法及装置

Publications (2)

Publication Number Publication Date
CN101478480A CN101478480A (zh) 2009-07-08
CN101478480B true CN101478480B (zh) 2012-07-04

Family

ID=40839115

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009100000689A Expired - Fee Related CN101478480B (zh) 2009-01-05 2009-01-05 一种实现负载均衡的方法及装置

Country Status (1)

Country Link
CN (1) CN101478480B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102710499B (zh) * 2012-05-09 2015-12-02 杭州华三通信技术有限公司 多发布源外部路由备下一跳选择方法及其设备
CN103401802A (zh) * 2013-08-26 2013-11-20 盛科网络(苏州)有限公司 基于传输协议的报文负载均衡方法及装置
CN112311674B (zh) * 2019-07-31 2022-02-25 北京华为数字技术有限公司 报文发送方法、装置及存储介质
CN110601991A (zh) * 2019-09-16 2019-12-20 赛尔网络有限公司 流量逐包分发方法、装置、电子设备及存储介质
CN115474215B (zh) * 2022-09-06 2023-03-21 广东九博科技股份有限公司 一种基于路由器的组网方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1848797A (zh) * 2005-04-15 2006-10-18 上海艾泰科技有限公司 中低端路由器上查找多归路由最优路径和负载均衡的方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1848797A (zh) * 2005-04-15 2006-10-18 上海艾泰科技有限公司 中低端路由器上查找多归路由最优路径和负载均衡的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
时向泉,苏金树.一种面向汇聚网络处理器模型的负载均衡算法.《计算机工程与科学》.2008,第30卷(第12期),1-4,8. *

Also Published As

Publication number Publication date
CN101478480A (zh) 2009-07-08

Similar Documents

Publication Publication Date Title
CN106059821B (zh) 一种基于sdn的数据中心业务服务质量保障方法
Zhang et al. Load balancing in data center networks: A survey
Wang et al. Implementation of multipath network virtualization with SDN and NFV
CN102118319B (zh) 流量负载均衡方法和装置
CN1744563B (zh) 在以太网交换机上实现策略路由的方法
Hafeez et al. Detection and mitigation of congestion in SDN enabled data center networks: A survey
US8774001B2 (en) Relay device and relay method
Carpio et al. DiffFlow: Differentiating short and long flows for load balancing in data center networks
CN106357547A (zh) 一种基于流切片的软件定义网络拥塞控制算法
CN104756451A (zh) 用于lag接口上网络流的动态负载平衡的方法
CN104272708A (zh) 带有到服务器群组的无状态第一级分组分布和到群组内某个服务器的有状态第二级分组分布的二级分组分布
CN101106518B (zh) 为中央处理器提供负载保护的拒绝服务方法
CN101478480B (zh) 一种实现负载均衡的方法及装置
Yan et al. A survey of low-latency transmission strategies in software defined networking
WO2012109910A1 (zh) 链路聚合选路方法及装置
CN103023804A (zh) 一种聚合链路自适应流量负载均衡方法、装置及网络设备
CN102098224A (zh) 数据流负荷分担方法及装置
Hu et al. TLB: Traffic-aware load balancing with adaptive granularity in data center networks
CN107154897A (zh) Dcn中基于包散射的异构流隔离方法
CN111585911B (zh) 数据中心网络流量负载的均衡方法
CN101789949A (zh) 一种实现负荷分担的方法和路由设备
Lei et al. Extracting Low‐Rate DDoS Attack Characteristics: The Case of Multipath TCP‐Based Communication Networks
CN110460537A (zh) 基于包集合的数据中心非对称拓扑下流量调度方法
Lee et al. Tournament‐based congestion control protocol for multimedia streaming in ubiquitous sensor networks
CN113612698A (zh) 一种数据包发送方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120704

Termination date: 20180105