CN104580001B - 一种网络数据包处理动态负载均衡方法 - Google Patents

一种网络数据包处理动态负载均衡方法 Download PDF

Info

Publication number
CN104580001B
CN104580001B CN201410849362.8A CN201410849362A CN104580001B CN 104580001 B CN104580001 B CN 104580001B CN 201410849362 A CN201410849362 A CN 201410849362A CN 104580001 B CN104580001 B CN 104580001B
Authority
CN
China
Prior art keywords
data packet
node
subregion
nodes
packet
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.)
Active
Application number
CN201410849362.8A
Other languages
English (en)
Other versions
CN104580001A (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.)
Institute of Information Engineering of CAS
Original Assignee
Institute of Information Engineering of CAS
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 Institute of Information Engineering of CAS filed Critical Institute of Information Engineering of CAS
Priority to CN201410849362.8A priority Critical patent/CN104580001B/zh
Publication of CN104580001A publication Critical patent/CN104580001A/zh
Application granted granted Critical
Publication of CN104580001B publication Critical patent/CN104580001B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种网络数据包处理动态负载均衡方法。本方法为:1)将网络中的数据处理节点分为若干分区,每个分区设置一分区均衡控制器;2)所述分区均衡控制器定期采集并更新所在分区中数据处理节点的状态,维护一所在分区内所有数据处理节点的状态信息表;3)主控制器向每个所述分区均衡控制器查询当前分区的状态,更新分区状态表,并根据每个分区的状态将数据包发送给状态为空闲或者正常的分区进行处理;其中,当数据包到达状态为正常的分区时,根据公式确定该分区中每个数据处理节点可分配的数据包;本发明可以在大量数据包未被处理时就对其做出整体的分配,无需等到数据包处理过程中观察系统状态再做出调整。

Description

一种网络数据包处理动态负载均衡方法
技术领域
本发明涉及一种数据包处理的负载均衡的方法,属于网络安全领域。
背景技术
随着网络应用的发展,网络安全受到人们越来越多的重视,网络安全系统需要处理的数据流量也越来越大,这样就需要更多的服务器做并行的处理。负载均衡器汇总需要处理的流量,并将这些流量均衡的分配到进行数据处理的服务器上。
传统的方式是采用hash映射的方式,利用一条链接或者一个流的特征,将这条链接或者这个流映射到后端的数据处理服务器。这样在大流量下就会造成后端服务器上处理的流量不均衡,浪费整体的处理资源。而服务器对不同类型数据的处理消耗的计算资源是不一样的,即使分配到了相同的数据流量,也不能保证服务器上的CPU和内存消耗是相同的。
在实际的网络内容分析中,内容分析也是各种各样的,它们对CPU和内存的依赖程度也不尽相同。因此需要一种有效的负载均衡策略保证对后端服务器资源的充分利用。
发明内容
针对现有技术中存在的无法有效解决数据包分配不均的问题,本发明提出了一种数据包处理动态负载均衡方法,该方法考虑了服务器之间通信成本,将每个服务器视作一个合作者,将数据包作为负载单位,通过找到优化的合作方式,获得更好的数据包分配效果,实现后端服务器资源的充分利用。
本发明的技术方案为:
一种网络数据包处理动态负载均衡方法,其步骤为:
1)将网络中的数据处理节点分为若干分区,每个分区设置一分区均衡控制器;
2)所述分区均衡控制器定期采集并更新所在分区中数据处理节点的状态,维护一所在分区内所有数据处理节点的状态信息表;
3)主控制器向每个所述分区均衡控制器查询当前分区的状态,更新分区状态表,并根据每个分区的状态将数据包发送给状态为空闲或者正常的分区进行处理;其中,当数据包到达状态为正常的分区时,根据公式确定该分区中每个数据处理节点可分配的数据包;其中,n为该分区中的数据处理节点总数,βi为分配给数据处理节点i的数据包数量,λ为该网络中所有节点之间传输的全部数据包数量,Dii)为节点i处理βi的时间,G(λ)为该网络中所有节点之间传输全部数据包数量的通信时间;X=[β1,...,βn,λ]T
进一步的,根据公式确定该分区中每个数据处理节点可分配的数据包的方法为:
21)初始化迭代初始值:βi=φi;i∈N;i=1,...,n;
23)使用二分查找法查找α,初始化a=D11),b=Dnn);
24)赋值λS(α)←0,λR(α)←0,并计算S(α),λS(α),Rd(α),Ra(α),λR(α);
25)判断是否满足|λS(α)-λR(α)|<ε,如果是,则进入步骤27);否则进入步骤26);ε为一设定阈值;
26)判断是否满足λS(α)>λR(α),如果是,则b←α;否则a←α,然后返回到步骤24);
27)计算分配给各个节点的数据包数量:
βi=0,对于所有i∈Rd(α)
对于所有i∈S(α)
βi=φi,对于所有i∈N(α)
其中,函数表示处理数据包时间的逆:如果 如果μi为数据处理节点i单位时间内能够处理的数据包数量,φi为单位时间内到达数据处理节点i数据包数量,G(λ)为该网络中所有节点之间传输全部数据包数量的通信时间;该分区包括:
S类型节点:接受从其他节点传来的数据包,但是从不向外发送数据包;S类型节点集合为S(α);进入S类型节点的数据包的数量为λS(α);
Rd类型节点:不接受其他节点的数据包,同时将自己的数据包全部发送给其他节点,Rd类型节点集合为Rd(α);
Ra类型节点:不接受其他节点的数据包,处理一部分自己的数据包,将剩下的数据包发送至其他节点,Ra类型节点集合为Ra(α),从Rd类型节点和Ra类型节点发出的数据包的数量为λR
N类型节点:不发送自己的数据包也不接受其他节点发来的数据包,N类型节点集合为N(α);α为拉格朗日算子。
进一步的,所述步骤27)计算分配给各个节点的数据包数量时,满足:Dii)≥α+G(λ),βi=0(i∈Rd),Dii)=α+G(λ),0<βi<φi(i∈Ra),α+G(λ)≥Dii)≥α,βi=φi(i∈N),Dii)=α,βi>φi(i∈S), 为单位时间内到达该网络的数据包总数。
进一步的,当数据包到达状态为空闲的分区时,首先根据根分区各个数据处理节点的负载度,从低到高建立一个循环队列;然后从低到高遍历该循环队列,将该数据包分配给负载度最低的数据处理节点。
进一步的,当一个数据包到达数据处理节点i时,该数据包要么在节点i被处理,要么通过该网络发送到数据处理节点j处理,且节点j不能再次转发该数据包。
进一步的,所述分区状态包括空闲、正常和过载。
进一步的,所述分区均衡控制器检测到某数据处理节点处于宕机或者出现故障时,将不再为其发送数据包。
概念解释
节点:处理数据包的单元,也就是完成数据包处理的服务器。
节点N的负载度:其中Fi表示第i个负载参数,其中包括静态负载参数,例如CPU核心数,CPU处理速度,内存大小等;动态负载参数,例如CPU占用率,内存占用率,带宽占用等,表示每个负载参数的权重。
节点N的状态:
·空闲:当L(N)为0时,节点N状态为空闲。
·正常:当0<L(N)≤Lhigh时,节点N状态为正常,其中Lhigh是指定的正常状态的负载阈值。
·过载:当Lhigh≤L(N)时,节点N状态为过载。
分区:一个分区由一些节点构成,其中每个分区包含一个分区均衡控制器,这些分区均衡控制器和主控制器通信,决定数据包的分配,如图1所示。每隔一段时间,分区均衡控制器就会更新每个节点的状态。
分区状态:
·空闲:该分区空闲节点的比例超过了空闲负载阈值α。
·正常:该分区正常节点的比例超过了正常负载阈值β。
·过载:该分区过载节点的比例超过了过载负载阈值γ。
φi:单位时间内到达节点i的数据包数量。
:单位时间内到达系统的总数据包数,那么有
μi:节点i单位时间内能够处理的数据包数量。
βi:节点i单位时间内将要处理的数据包数。
xij:单位时间内从节点i发送到节点j的数据包数量。
节点i处理βi的时间:满足约束条件βi<μi,i=1,...,n。
所有节点之间传输全部数据包数量的通信时间其中t是接受或者发送一个数据包的平均通信时间,表示网络中的全部数据包数量。
处理数据包时间的逆:如果 如果代表了时间应该处理的数据包数量。
S类型节点:接受从其他节点传来的数据包,但是从不向外发送数据包;
Rd类型节点:不接受其他节点的数据包,同时将自己的数据包全部发送给其他节点;
Ra类型节点:不接受其他节点的数据包,处理一部分自己的数据包,将剩下的数据包发送至其他节点;
N类型节点:不发送自己的数据包也不接受其他节点发来的数据包;
S类型节点集合:S(α)={i|Dii)<α},其中α是拉格朗日算子。
进入S类型节点的数据包的数量:
Rd类型节点集合:Rd(α)={i|Di(0)≥α+G(λs(α))}。Di(0)是对常数0,即不处理数据包所用时间。
Ra类型节点集合:Ra(α)={i|Dii)>α+G(λs(α))>Di(0)}。
从Rd类型节点和Ra类型节点发出的数据包的数量:
N类型节点集合:N(α)={i|α≤Dii)≤α+G(λs(α))}。
本发明提供的一种数据包处理的动态负载均衡方法,该方法的处理步骤如下:
步骤1:每个分区均衡控制器采集每个节点的负载状态,维护一个本分区内所有节点的状态信息表。
步骤2:主控制器向每个分区均衡控制器查询当前分区的状态,更新分区状态表,并根据每个分区的状态把数据包发送给状态为空闲或者正常的分区进行处理,如图2所示。
步骤3.1:当数据包到达状态为空闲的分区时,说明该分区有足够的资源,数据包可以被尽快处理,因此选择一个简单的负载均衡方法是最合适的,为此进行如下步骤,如图3所示。
步骤3.1.1:根据各个节点的负载度,从低到高建立一个循环队列。
步骤3.1.2:当有新的数据包到来时,从低到高遍历循环队列,选择负载度最低的节点。
步骤3.1.3:在指定的时间内刷新循环列表。
步骤3.2:当数据包到达状态为正常的分区时,说明该分区的资源不能简单的进行分配,这时候就需要一个合理的分配方法,为此使用一种如下的负载均衡方法,如图4所示。该方法基于任意两个节点之间的通信时间小于通过第三个节点的通信时间,并且符合下面的数据包处理规则:如果一个数据包到达节点i,那么这个数据包要么在节点i被处理,要么通过网络发送到节点j去处理。如果节点j收到其他节点(例如i)发送过来的数据包,那么节点j不能再次将数据包发送给其他节点(包括i)。
步骤3.2.1:假设共有n+1个合作者,包括n个节点和通信网络。其目标是使最小化,即使得整个系统处理待处理数据包的时间和整个网络的通信时间的总和最小,需要解决的是使得每个合作者i分配到合适数量的数据包βi,所以目标函数可以表示为其中,n+1个合作者的最优策略是X=[β1,...,βn,λ]T,第n+1个合作者就是通信网络,它要处理网络中的总数据包数。
其最优策略应该满足如下条件:
1.Dii)≥α+G(λ),βi=0(i∈Rd);
2.Dii)=α+G(λ),0<βi<φi(i∈Ra);
3.α+G(λ)≥Dii)≥α,βi=φi(i∈N);
4.Dii)=α,βi>φi(i∈S);
5.
步骤3.2.2:计算α:
输入:节点i单位时间内能够处理的数据包数量:μ12,...,μi
单位时间内到达节点i数据包数量:φ12,...,φi
节点接受或者发送一个数据包的平均通信时间:t
输出:数据包负载分配β1,...,βn
1.初始化迭代初始值:βi=φi;i∈N;i=1,...,n,N是节点集合,包括n个节点。进入2。
3.使用二分查找法来查找α,初始化a=D11),b=Dnn),进入4。
4.赋值λS(α)←0,λR(α)←0,并计算S(α),λS(α),Rd(α),Ra(α),λR(α)进入步骤5。
5.判断是否满足|λS(α)-λR(α)|<ε。如果是,进入步骤7;如果否,进入步骤6。
6.判断是否满足λS(α)>λR(α),如果是,b←α;如果否,a←α。最后返回到步骤4。
7.计算分配给各个节点的数据包数量:
βi=0,对于所有i∈Rd(α)
对于所有i∈S(α)
βi=φi,对于所有i∈N(α)
备注:当服务器在宕机或者出现故障时将不再为其发送数据包,否则会造成数据包的丢失。
与现有技术相比,本发明的积极效果为:
将数据包和处理数据包的节点视作同一的个体,不考虑具体某个任务的最优处理,而是将通信时间的成本考虑在内,将整个系统当作优化的整体,在某个时间点上取得全局的最优效果。考虑到数据包的处理,相互之间差别不大,类似的应用环境使用本发明的策略会达到很好的效果。同时,本发明可以在大量数据包未被处理时,就对其做出整体的分配,无需等到数据包处理过程中观察系统状态再做出调整。
附图说明
图1为负载均衡整体架构图;
图2为分区查找流程图;
图3为空闲分区负载均衡流程图;
图4为正常分区负载均衡流程图;
图5为本发明具体实施的动态负载均衡的方法流程图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图5所示,本发明具体实施上述的动态负载均衡的方法,具体包括以下步骤:
步骤1:分区均衡控制器读取该分区内各个节点的情况,并根据各个节点的状态建立一个所有节点的状态信息表;
步骤2:主控制器通过查询分区均衡控制器,维护分区状态信息表;
步骤3:当数据包到来时,根据各个分区的状态信息表,通过图2所示的方法,找到合适的分区,然后将数据包发送到该分区的分区均衡控制器上;
步骤4:将数据包发送到步骤3所选择的分区内的各个节点上,空闲的分区使用空闲分区负载均衡方法(图3),正常的分区使用正常分区负载均衡方法。
下面举例说明正常分区的负载均衡方法的实施过程:
假设所选中分区有3个节点,编号1,2,3。处理速率分别是μ1=10,μ2=20,μ3=40,数据包到达节点的速率分别是φ1=8,φ2=5,φ3=2;平均通信时间t=0.001s。
1.初始化各个节点需要处理的数据包数量:β1=8,β2=5,β3=2。
2.对处理时间排序后得到D3(2)=0.026≤D2(5)=0.067≤D1(8)=0.5,同时D3(2)+G(0)=0.026+0.001=0.027<D1(8)=0.5,因此进入步骤3。
3.计算α初值:a=0.026,b=0.5,则进入步骤4。
5.得到各个节点分配的数据包数量β1=0,β2=0,β3=15。

Claims (7)

1.一种网络数据包处理动态负载均衡方法,其步骤为:
1)将网络中的数据处理节点分为若干分区,每个分区设置一分区均衡控制器;
2)所述分区均衡控制器定期采集并更新所在分区中数据处理节点的状态,维护一所在分区内所有数据处理节点的状态信息表;
3)主控制器向每个所述分区均衡控制器查询当前分区的状态,更新分区状态表,并根据每个分区的状态将数据包发送给状态为空闲或者正常的分区进行处理;其中,当数据包到达状态为正常的分区时,根据公式确定该分区中每个数据处理节点可分配的数据包;其中,n为该分区中的数据处理节点总数,βi为分配给数据处理节点i的数据包数量,λ为该网络中所有节点之间传输的全部数据包数量,Dii)为节点i处理βi的时间,G(λ)为该网络中所有节点之间传输全部数据包数量的通信时间;X=[β1,…,βn,λ]T
2.如权利要求1所述的方法,其特征在于,根据公式确定该分区中每个数据处理节点可分配的数据包的方法为:
21)初始化迭代初始值:βi=φi;i=1,…,n;
22)对处理时间进行排序,求得如果满足Dκκ)+G(0)≥Dnn),则返回当前βi,否则进行步骤23);k=1,…,n;
23)使用二分查找法查找α,初始化a=D11),b=Dnn);
24)赋值并计算S(α),λS(α),Rd(α),Ra(α),λR(α);
25)判断是否满足|λS(α)-λR(α)|<ε,如果是,则进入步骤27);否则进入步骤26);ε为一设定阈值;
26)判断是否满足λS(α)>λR(α),如果是,则b←α;否则a←α,然后返回到步骤24);
27)计算分配给各个节点的数据包数量:
βi=0,对于所有i∈Rd(α)
对于所有i∈Ra(α)
对于所有i∈S(α)
βi=φi,对于所有i∈N(α)
其中,函数表示处理数据包时间的逆:如果 如果 为处理数据包的时间,μi为数据处理节点i单位时间内能够处理的数据包数量,φi为单位时间内到达数据处理节点i数据包数量,G(λ)为该网络中所有节点之间传输全部数据包数量的通信时间;该分区包括:
S类型节点:接受从其他节点传来的数据包,但是从不向外发送数据包;S类型节点集合为S(α);进入S类型节点的数据包的数量为λS(α);
Rd类型节点:不接受其他节点的数据包,同时将自己的数据包全部发送给其他节点,Rd类型节点集合为Rd(α);
Ra类型节点:不接受其他节点的数据包,处理一部分自己的数据包,将剩下的数据包发送至其他节点,Ra类型节点集合为Ra(α),从Rd类型节点和Ra类型节点发出的数据包的数量之和为λR(α);
N类型节点:不发送自己的数据包也不接受其他节点发来的数据包,N类型节点集合为N(α);α为拉格朗日算子。
3.如权利要求2所述的方法,其特征在于,所述步骤27)计算分配给各个节点的数据包数量时,满足:Dii)≥α+G(λ),βi=0,i∈Rd(α),Dii)=α+G(λ),0<βi<φi,i∈Ra(α),α+G(λ)≥Dii)≥α,βi=φi,i∈N(α),Dii)=α,βi>φi,i∈S(α), 为单位时间内到达该网络的数据包总数。
4.如权利要求1或2或3所述的方法,其特征在于,当数据包到达状态为空闲的分区时,首先根据根分区各个数据处理节点的负载度,从低到高建立一个循环队列;然后从低到高遍历该循环队列,将该数据包分配给负载度最低的数据处理节点。
5.如权利要求1或2或3所述的方法,其特征在于,当一个数据包到达数据处理节点i时,该数据包要么在节点i被处理,要么通过该网络发送到数据处理节点j处理,且节点j不能再次转发该数据包。
6.如权利要求1所述的方法,其特征在于,所述分区状态包括空闲、正常和过载。
7.如权利要求1所述的方法,其特征在于,所述分区均衡控制器检测到某数据处理节点处于宕机或者出现故障时,将不再为其发送数据包。
CN201410849362.8A 2014-12-29 2014-12-29 一种网络数据包处理动态负载均衡方法 Active CN104580001B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410849362.8A CN104580001B (zh) 2014-12-29 2014-12-29 一种网络数据包处理动态负载均衡方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410849362.8A CN104580001B (zh) 2014-12-29 2014-12-29 一种网络数据包处理动态负载均衡方法

Publications (2)

Publication Number Publication Date
CN104580001A CN104580001A (zh) 2015-04-29
CN104580001B true CN104580001B (zh) 2018-08-03

Family

ID=53095223

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410849362.8A Active CN104580001B (zh) 2014-12-29 2014-12-29 一种网络数据包处理动态负载均衡方法

Country Status (1)

Country Link
CN (1) CN104580001B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104935460B (zh) * 2015-05-05 2018-04-03 浙江大学 一种基于数据面流量预测的多控制器节能优化方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102594596A (zh) * 2012-02-15 2012-07-18 华为技术有限公司 识别集群网络中可用分区的方法、装置及集群网络系统
CN103327072A (zh) * 2013-05-22 2013-09-25 中国科学院微电子研究所 一种集群负载均衡的方法及其系统
CN103634394A (zh) * 2013-11-28 2014-03-12 中国科学院信息工程研究所 一种面向数据流处理的弹性可扩展资源管理方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102594596A (zh) * 2012-02-15 2012-07-18 华为技术有限公司 识别集群网络中可用分区的方法、装置及集群网络系统
CN103327072A (zh) * 2013-05-22 2013-09-25 中国科学院微电子研究所 一种集群负载均衡的方法及其系统
CN103634394A (zh) * 2013-11-28 2014-03-12 中国科学院信息工程研究所 一种面向数据流处理的弹性可扩展资源管理方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Scalable Load Distribution and Load Balancing for Dynamic Parallel Programs;E Berger等;《Proceedings of the International Workshop on Cluster-Based Computing99》;20001231;全文 *
能力服务计算应用负载调度技术;冯斌全等;《信息技术快报》;20091130;第7卷(第6期);全文 *

Also Published As

Publication number Publication date
CN104580001A (zh) 2015-04-29

Similar Documents

Publication Publication Date Title
CN100558080C (zh) 集群消息传送方法及分布式集群系统
CN102170396B (zh) 一种基于区分服务的云存储系统QoS控制方法
CN102918499B (zh) 用于应用策略以在虚拟机之间调度网络带宽的方法和设备
EP2923479B1 (en) Method and apparatus for controlling utilization in a horizontally scaled software application
CN110099384A (zh) 基于边-端协同的多用户多mec任务卸载资源调度方法
CN107733689A (zh) 基于优先级的动态加权轮询调度策略方法
Patel et al. An efficient dynamic load balancing algorithm for virtual machine in cloud computing
Bhatia et al. Htv dynamic load balancing algorithm for virtual machine instances in cloud
CN102035737A (zh) 一种基于认知网络的自适应负载均衡方法和装置
Mohammed et al. A novel approach of reducing energy consumption by utilizing enthalpy in mobile cloud computing
JP2006025408A5 (zh)
Sharkh et al. A resource scheduling model for cloud computing data centers
US9806987B2 (en) Method and apparatus for reducing response time in information-centric networks
CN105791371B (zh) 一种云存储服务系统及方法
van der Boor et al. Load balancing in large-scale systems with multiple dispatchers
CN104468390B (zh) 软件定义网络中基于分布‑集中式架构模型的多控制器负载均衡的方法
US20130044755A1 (en) Scalable Packet Scheduling Policy for Vast Number of Sessions
Wen et al. Load balancing job assignment for cluster-based cloud computing
Chen et al. Network aware load-balancing via parallel VM migration for data centers
CN114024970A (zh) 基于边缘计算的电力物联网工作负载分配方法
Vashistha et al. Comparative study of load balancing algorithms
CN104580001B (zh) 一种网络数据包处理动态负载均衡方法
Jain et al. An algorithm for dynamic load balancing in distributed systems with multiple supporting nodes by exploiting the interrupt service
CN106331129A (zh) 一种负载均衡装置及其实现负载均衡的方法
Fereydooni et al. EDLT: An Extended DLT to Enhance Load Balancing in Cloud Computing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant