网络风暴冲击下的流量调控平台设计与实现

王建国 刘艳艳 刘海燕



摘 要: 网络风暴冲击下的网络结构存在较高的差异性,并且外部环境存在较高的波动性,使得传统采用异构网络协作的网络流量调控方法存在控制效率低和失衡的问题。因此,设计基于 Linux 防火墙的嵌入式网络流量控制系统,其是基于Linux内核Netfilter 框架的流量控制系统。系统将μClinux当成操作系统的嵌入式系统,其塑造在Netfilter 防火墙框架上,由内核功能模块、虚拟部件以及用户配置工具构成。内核功能模块在Netfilter框架的钩子挂载点处注册处理函数,完成网络数据包的控制,实现网络流量的调控。虚拟部件实现内核空间同用户空间配置数据的传递,确保用户采用配置工具对流量调控系统的行为进行管理。用户通过用户配置工具将待控制的主机/子网信息反馈到流量调控系统中。实验结果表明,所设计系统可实现网络风暴冲击下的网络流量的平稳控制,并且具有较高的控制效率和鲁棒性。
关键词: 网络风暴; 网络流量; Netfilter; μClinux
中图分类号: TN711?34; TP393 文献标识码: A 文章编号: 1004?373X(2017)06?0075?04
Abstract: Under the impact of network storm, the differences of network structure is higher, and the external environment has higher volatility, which make the traditional network traffic control method with heterogeneous network collaboration exist the problems of low control efficiency and imbalance. Therefore, an embedded network traffic control system based on Linux firewall was designed. It is based on the fluid flow control system with the Linux kernel Netfilter framework, takes μClinux as the embedded system of operating system, and is shaped on the firewall Netfilter framework, which is composed of kernel function module, virtual components and user configuration tool. The kernel function module registers handler function at the hook hardpoints of Netfilter framework to complete the control to the network packet and achieve network traffic control. The virtual components are used to realize the user space configuration data transmission in the kernel space to ensure that the user manages the behavior of the fluid flow control system and feeds the host/subnet information under control back to the fluid flow control system by his configuration tool. The experimental results indicate that the designed system can realize smooth control of network traffic flow under the impact of network storm, and has high control efficiency and robustness.
Keywords: network storm; network flow; Netfilter; μClinux
0 引 言
隨着无线通信技术的快速发展,移动数据流量的增长速度也不断提升,使得移动蜂窝网络存在流量过载的问题,网络更容易受到网络风暴的入侵干扰。网络风暴冲击下的网络流量存在失衡问题,导致网络数据通信质量大大降低,对人们的生产和生活造成了严重干扰。因此,寻求有效的方法对网络风暴冲击下的流量进行有效监测和分流调控,成为相关人员分析的热点问题[1?3]。网络风暴冲击下的网络结构存在较高的差异性,并且外部环境存在较高的波动性,使得传统采用异构网络协作的网络流量调控方法,存在控制效率低和失衡的问题[4?6]。
文献[7]采用OpenRadio无线网络架构实现网络流量的有效控制,其将无线节点软件化,可控制总体网络流量,但是不能对网络中物理层和资源层流量进行局部调控,存在一定的局限性。文献[8]通过D2D方法完成网络流量控制,在D2D通信网络中融入新的无线负载部件,通过该部件对网络流量进行控制,该方法降低了关键网络的数据流量负载,但是存在全局流量控制效率低的缺陷。针对上述分析问题,设计基于 Linux 防火墙的嵌入式网络流量控制系统。
1 基于Linux防火墙的嵌入式网络流量控制系统
设计的基于Linux防火墙的嵌入式网络流量控制系统,即rlimit,是一个基于Linux内核Netfilter 框架的流量控制系统,其将总体流量控制系统嵌入到一个嵌入式硬件平台,形成一个高度集成的流量控制平台,用于抵御网络风暴的强烈冲击。流量调控系统是将μClinux当成操作系统的嵌入式系统,其塑造在Netfilter 防火墙框架上,在Netfilter的钩子挂载点位置注册钩子函数,进而调控网络数据包,完成网络流量的控制。该控制系统塑造在Netfilter框架上,可直接作用于IP层,增强数据包的传递效率,并且同防火墙紧密联系,增强了网络的安全性,抑制网络风暴冲击的不利干扰。
1.1 系统总体设计
网络风暴冲击下的流量控制系统实现流量控制过程中,需要分析网络风暴冲击下进出系统所处主机的数据包流量。系统应采集网络设备的数据包,并对数据包进行分析和处理。Netfilter是塑造在IP层的框架,能够从IP层直接采集数据包,同时注册钩子函数处理数据包。用户设计的钩子函数能够挂入IP层,进而实现数据包的高效采集和处理。系统的流量控制模块使用扩展 Netfilter 的方法,能够确保系统即可对数据包进行采集处理,还能够提供安全保护,抵御网络风暴的冲击,系统的钩子挂载点示意图如图1所示。
当数据包通过网络接口设备输入和输出前,先被系统采集,再按照设置的速率进行流量控制。如果数据包的速率高于设置值,则系统会对其进行滞后处理,确保其速率满足设置值,再命令Linux网络子系统完成后续的处理。网络流量控制的过程是控制流入主机和离开主机的数据包速率。Netfilter 框 架 内全部输入和离开主机的网络数据包,都要通过MU_IP_HEW_BUSEH和MU_IP_KIMC_BUSEH。因而,可在该两个钩子挂载点注册处理函数,该过程如图2所示。
明确钩子函数挂载点后,应按照功能需求和接口标志设置钩子函数。系统中设置了主机链表,对网关管理的主机速率进行管理,其中的主机主要是网关上的全部计算机。主机链表上的各节点可反映同主机IP、速率等相关信息的数据结构。向各主机设置发送队列和接收队列,分别管理主机的上行速率和下行速率。若源地址是主机IP的数据包,系统采集数据包后,分析数据包是否满足发送速率规范,若满足,则将数据包反馈给IP层的协议,再执行相关的处理;否则,将数据存放到发送队列中,并设置定时器,设置数据包的发送时间。主机的接收队列处理过程同发送队列相同。用户向系统输入控制参数,系统需要向用户提供工具,确保用户输入的控制信息可反馈给系统。因此,将总体划分成内核空间和用户空间命令行工具,分别用于实现关键功能和配置待调控的IP地址和速率等参数。系统设置虚拟部件,将用户的配置信息反馈到内核空间,进而管理总体系统的行为。用户能够直接操作虚拟部件,将控制参数信息通过虚拟部件反馈到系统的用户空间。系统内核空间代码可读取虚拟部件中的信息,进而对流量控制模块的行为进行管理。最终使得虚拟部件在系统内核空间和用户空间实现信息的共享,二者间的关系如图3所示。
1.2 系统的编码实现
网络风暴冲击下的流量调控平台包括内核空间模块、虚拟部件以及用户空间程序。内核空间模块完成流量调控系统的关键功能,虚拟部件实现用户配置信息同内核空间模块间信息的交流;用户空间程序对系统信息配置,对虚拟部件的行为进行管理。将内核空间程序编写成Linux内核能够卸載的模块,通过sonine命令能够向Linux内核融入流量调控系统功能模块。
1.2.1 内核模块的实现
内核模块可实现两个钩子函数,采用Netfilter框架中的MU_line_ing结构分别将其挂载在 MU_IP_HEW_
BUSEH以及 MU_IP_KIMC_BUSEH 挂载点处。若sonine 将内核可卸载模块融入内核,则调用 init_kores 函数,并且在该函数内调用 MU_congeum_line 函数,确保在内核中融入MU_line_ing 结构,最终完成钩子函数的挂载。系统用于注册 MU_IP_HEW_BUSEH 处钩子函数的MU_line_ing 结构变量为rx_line_ing,其代码为:
prome MU_line_ing rx_line_ing={
line: rx_line,
Pf: PF_INET,
linenum: MU_IP_HEW_BUSEH,}
若网络数据包通过网络接口部件输入系统,并且传递到MU_IP_HEW_BUSEH 钩子时,调用rx_line 函数。该函数按照用户设置的带宽,调控数据包,如果数据包处于设置的带宽约束内,则将数据包反馈给网络协议栈,继续进行操作;否则,将数据包存储到接收队列中进行等待,并设置接收队列的定时器。当定时器到达设置的时间,则运行发送函数,从等待队列中采集数据包,具体的实现过程图如图4所示。
1.2.2 虚拟部件的实现
用户通过虚拟部件同流量调控系统内核模块进行信息交流,进而控制流量调控系统的行为。系统中的虚拟部件主要是虚拟网络部件。虚拟网络设备可实现一些网络接口,确保其采用相关的物理网络设备,完成数据包的发送。Linux系统通过congeum_qlomu 函数,将net_modle结构变量注册入内核,完成网络部件的添加。net_modle结构中包含较多的成员变量,但是虚拟网络部件,仅需要其中的设备名称name,函数指针init和do_ioctl三个变量。其中,init和do_ioctl指向的函数,分别用于实现虚拟部件的初始化和设置。虚拟部件的 net_modle 结构变量定义为:
prome net_modle rlimit_dev={
Name: "rlimit",
init:rlimit_init_dev,}
流量调控系统通过虚拟部件确保内核模块以及用户空间进行程序交互,传输用户配置信息,完成系统行为的控制,进而实现网络流量的合理调控。对待交互的配置信息进行封装处理,构成结构体rlimit_ctliMUo,能够给增强用户空间程序同内核模块进行信息沟通的效率。rlimit_ctliMUo 结构类型的定义为:
prome rlimit_ctlinfo{
_s54ip; /*主机/子网*/
_s54 mask; /*子网掩码*/
_s12 portmin; /*主机/子网的最小端口号*/
_s12 portmax; /*主机/子网的最大端口号*/
int bytes_per_second; /*约束的传输速率*/
Int timeout; /*队列的最高延迟时间*/
}
1.2.3 用户配置工具的实现
用户空间配置工具对流量调控系统内核模块进行配置,进而控制系统的行为。用户空间配置工具是一种用户空间程序,其调用ioctl函数处理虚拟部件,实现系统内核模块的信息交流。如果采用用户配置工具向系统融入被控主机,则用户空间程序会将该主机信息塑造成 rlimit_ctliMUo 结构,并调用ioctl函数,通过do_ioctl指针指向的函数,将rlimit_ctliMUo结构中包含的信息反馈到内核空间,并按照该信息在do_ioctl函数内对系统内核模块进行配置。
2 实验分析
为了验证本文方法的有效性,进行相关的实验分析如下:
2.1 高速传输性能对比
实验检测在网络风暴冲击下限速值较高的情况下,本文方法和贪婪选择方法对单个TCP流进行流量调控的稳定性,分别如图5和图6所示。
对比分析图5、图6可以看出,在网络风暴冲击下,本文方法对单个TCP流的调控效果优于贪婪选择方法,调整后的网络数据包传输速率曲线较为平滑。
2.2 速率调整平滑性测试
实验检测在网络风暴冲击下的限速过程中,网络数据包传输速率上升和下降时,本文方法和贪婪选择方法调整网络数据包传输速率时的调控效果见图7、图8。
分析图7、图8能够看出,相比贪婪选择方法,本文方法能够很好地完成网络数据包传输速率的平滑调控,在网络风暴冲击的不利干扰下,能够克服网络数据包速率大幅波动,对网络数据包传输速率进行平稳调控。
2.3 并发TCP流控制效果对比
实验采用网络性能检测软件IxChariot检测本文方法和贪婪选择方法,在网络风暴冲击下的多个并发流下的吞吐量以及响应时间,结果分别如图9和图10所示。
对比分析图9和图10能够看出,在网络风暴冲击下,对网络中多个并行TCP流进行调控过程中,本文方法的吞吐量和响应时间都优于贪婪选择方法,控制效果较为平稳。
2.4 UDP流调控效果对比
实验采用jHEWf 2.0软件检测本文方法和贪婪选择方法,对网络风暴冲击下的UDP流进行控制的控制效果。jHEWf 2.0软件可通过制定的速率发送UDP报文,同时测量网络的吞吐量和抖动,设置UDP流的限速为1 500 Kb/s,实验结果如表1所示。
分析表1可得,当UDP流的发送速率低于限速时,两种方法对UDP流的速率进行调控控制过程中的传输总量、平均带宽以及抖动较为接近;而当UDP流的发送速率高于限速时,本文方法在调控UDP流的发送速率过程中,传输总量和平均带宽都高于贪婪选择方法,并且本文方法的抖动低于贪婪选择方法,说明本文方法的调控过程更为稳定。
3 结 论
本文基于 Linux 防火墙的嵌入式网络流量控制系统,其是基于Linux内核Netfilter 框架的流量控制系统。实验结果表明,所设计系统可实现网络风暴冲击下的网络流量的平稳控制,并且具有较高的控制效率和鲁棒性。
参考文献
[1] 张双双,王延年.节点分布不均匀的无线传感网络低功耗算法[J].西安工程大学学报,2015,29(6):720?723.
[2] 周旭峰,杨贵,袁志彬,等.交换机流量限制技术及其在智能变电站的应用[J].电力系统自动化,2014,38(18):114?119.
[3] 邓荣.基于包络特征的网络流量预测阈值调控算法[J].科技通报,2015,31(10):67?69.
[4] 刘晓婧,张进明,穆志君,等.中压天然气流量计实流标定的气温调控研究[J].科技资讯,2014,12(6):107?108.
[5] 王家琪,吕宏兴,周美林,等.过流调控型渠道测流装置试验研究[J].灌溉排水学报,2015,34(9):24?27.
[6] 袁敏洁,徐梓曜,江恩慧,等.有效流量研究及应用现状[J].人民黄河,2015,37(6):32?35.
[7] 米子军.矿山排土场稳定性主动调控机制研究[J].金属矿山,2014,32(9):1?6.
[8] 刘佳明,张艳军,宋星原,等.江湖连通方案的最佳引水流量研究:以湖北磁湖为例[J].湖泊科学,2014,26(5):671?681.