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

文档序号:8265598阅读:386来源:国知局
一种网络数据包处理动态负载均衡方法
【技术领域】
[0001] 本发明涉及一种数据包处理的负载均衡的方法,属于网络安全领域。
【背景技术】
[0002] 随着网络应用的发展,网络安全受到人们越来越多的重视,网络安全系统需要处 理的数据流量也越来越大,这样就需要更多的服务器做并行的处理。负载均衡器汇总需要 处理的流量,并将这些流量均衡的分配到进行数据处理的服务器上。
[0003] 传统的方式是采用hash映射的方式,利用一条链接或者一个流的特征,将这条链 接或者这个流映射到后端的数据处理服务器。这样在大流量下就会造成后端服务器上处理 的流量不均衡,浪费整体的处理资源。而服务器对不同类型数据的处理消耗的计算资源是 不一样的,即使分配到了相同的数据流量,也不能保证服务器上的CPU和内存消耗是相同 的。
[0004] 在实际的网络内容分析中,内容分析也是各种各样的,它们对CPU和内存的依赖 程度也不尽相同。因此需要一种有效的负载均衡策略保证对后端服务器资源的充分利用。

【发明内容】

[0005] 针对现有技术中存在的无法有效解决数据包分配不均的问题,本发明提出了一 种数据包处理动态负载均衡方法,该方法考虑了服务器之间通信成本,将每个服务器视作 一个合作者,将数据包作为负载单位,通过找到优化的合作方式,获得更好的数据包分配效 果,实现后端服务器资源的充分利用。
[0006] 本发明的技术方案为:
[0007] -种网络数据包处理动态负载均衡方法,其步骤为:
[0008] 1)将网络中的数据处理节点分为若干分区,每个分区设置一分区均衡控制器;
[0009] 2)所述分区均衡控制器定期采集并更新所在分区中数据处理节点的状态,维护一 所在分区内所有数据处理节点的状态信息表;
[0010] 3)主控制器向每个所述分区均衡控制器查询当前分区的状态,更新分区状态表, 并根据每个分区的状态将数据包发送给状态为空闲或者正常的分区进行处理;其中,当数 据包到达状态为正常的分区时,根据公另
【主权项】
1. 一种网络数据包处理动态负载均衡方法,其步骤为: 1) 将网络中的数据处理节点分为若干分区,每个分区设置一分区均衡控制器; 2) 所述分区均衡控制器定期采集并更新所在分区中数据处理节点的状态,维护一所在 分区内所有数据处理节点的状态信息表; 3) 主控制器向每个所述分区均衡控制器查询当前分区的状态,更新分区状态表,并根 据每个分区的状态将数据包发送给状态为空闲或者正常的分区进行处理;其中,当数据包 到达状态为正常的分区时,根据公式
确定该分区中每个数据处理 节点可分配的数据包;其中,n为该分区中的数据处理节点总数,0i为分配给数据处理节 点i的数据包数量,A为该网络中所有节点之间传输的全部数据包数量,DjPi)为节点 i处理@满时间,GU)为该网络中所有节点之间传输全部数据包数量的通信时间;X= [3 3n,入]T。
2. 如权利要求1所述的方法,其特征在于,根据公式
确定该分 区中每个数据处理节点可分配的数据包的方法为: 21) 初始化迭代初始值:0i= i;ieN;i= 1,…,n; 22) 对处理时间进行排序,求得
,如 果满足Dk(cK)+G(〇) >Dn((K),则返回当前I,否则进行步骤23); 23) 使用二分查找法查找a,初始化a =Di( $D,b=Dn( (K); 24) 赋值
并计算S(a),Xs(a),Rd(a),Ra(a),XK(a); 25) 判断是否满足|Xs(a)-XK(a) | <e,如果是,则进入步骤27);否则进入步骤 26) ;e为一设定阈值; 26) 判断是否满足入s(a) >入R(a),如果是,则b-a;否则a-a,然后返回到步 骤 24); 27) 计算分配给各个节点的数据包数量: 1= 0,对于所有ieRd(a) ^ = 9V+G(2)),对于所有iGRa(a) 爲=对于所有iGS(a) 1=小i,对于所有ieN(a) 其中,函数ZV1%)表示处理数据包时间的逆:
,Ui为数据处理节点i单位时间内能够处理的数据包数量,小 单位时间内到达数据处理节点i数据包数量,G(A)为该网络中所有节点之间传输全部数 据包数量的通信时间;该分区包括: S类型节点:接受从其他节点传来的数据包,但是从不向外发送数据包;S类型节点集 合为s(a);进入S类型节点的数据包的数量为As(d); Rd类型节点:不接受其他节点的数据包,同时将自己的数据包全部发送给其他节点,Rd 类型节点集合为RdU); 艮类型节点:不接受其他节点的数据包,处理一部分自己的数据包,将剩下的数据包发 送至其他节点,Ra类型节点集合为Ra (a),从Rd类型节点和Ra类型节点发出的数据包的数 量为入R; N类型节点:不发送自己的数据包也不接受其他节点发来的数据包,N类型节点集合为N(a) ;a为拉格朗日算子。
3. 如权利要求2所述的方法,其特征在于,所述步骤27)计算分配给各个节点的数 据包数量时,满足屯(6 )彡a+G〇),Pi= 〇(iGRd),DJP) =a+G〇 ),〇 <h < 小i(iGRa),a+G(入)彡Di( ^ 彡a,运i=小 土(iGN)為(3 ) =a,运p小i(iGS),
识为单位时间内到达该网络的数据包总数。
4. 如权利要求1或2或3所述的方法,其特征在于,当数据包到达状态为空闲的分区 时,首先根据根分区各个数据处理节点的负载度,从低到高建立一个循环队列;然后从低到 高遍历该循环队列,将该数据包分配给负载度最低的数据处理节点。
5. 如权利要求1或2或3所述的方法,其特征在于,当一个数据包到达数据处理节点 i时,该数据包要么在节点i被处理,要么通过该网络发送到数据处理节点j处理,且节点j 不能再次转发该数据包。
6. 如权利要求1所述的方法,其特征在于,所述分区状态包括空闲、正常和过载。
7. 如权利要求1所述的方法,其特征在于,所述分区均衡控制器检测到某数据处理节 点处于宕机或者出现故障时,将不再为其发送数据包。
【专利摘要】本发明公开了一种网络数据包处理动态负载均衡方法。本方法为:1)将网络中的数据处理节点分为若干分区,每个分区设置一分区均衡控制器;2)所述分区均衡控制器定期采集并更新所在分区中数据处理节点的状态,维护一所在分区内所有数据处理节点的状态信息表;3)主控制器向每个所述分区均衡控制器查询当前分区的状态,更新分区状态表,并根据每个分区的状态将数据包发送给状态为空闲或者正常的分区进行处理;其中,当数据包到达状态为正常的分区时,根据公式确定该分区中每个数据处理节点可分配的数据包;本发明可以在大量数据包未被处理时就对其做出整体的分配,无需等到数据包处理过程中观察系统状态再做出调整。
【IPC分类】H04L12-803, H04L29-08
【公开号】CN104580001
【申请号】CN201410849362
【发明人】张鹏, 丁嘉宁, 刘庆云, 杨嵘, 郑超, 孙永
【申请人】中国科学院信息工程研究所
【公开日】2015年4月29日
【申请日】2014年12月29日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1