APP下载

源抑制在网络流量控制中的应用研究

2015-09-21张文盛

网络安全与数据管理 2015年17期
关键词:令牌网络流量网关

张文盛

(安徽广播电视大学,安徽 合肥 230022)

0 引言

随着信息技术的不断发展,网络流量飞速增长,带宽使用面临很大压力,流量控制技术成为研究热点[1]。目前网络流量控制研究多集中在网络出口,通过在网关上建立流量控制系统,对转发的数据包进行流量整形,实现流量控制[2]。用户发送的数据包要经过多个交换机的转发才能到达网关,而这些系统不能控制尚未到达的数据包,极端情况下,恶意流量仍会造成网络瘫痪。本文引入源抑制思想,在接入交换机上控制用户流量。

1 相关研究

1.1 传统网络流量控制技术

网络出口是网络瓶颈,容易发生拥塞,传统网络流量控制技术重点控制网络出口,采用各种技术进行网络流量控制。这些技术大致包括两类:基于网络体系结构的流量控制技术和基于QoS的流量控制技术。基于网络体系结构的流量控制技术从协议分层的角度,根据协议的特点对流量进行控制,例如控制P2P协议流量[3]和TCP协议流量[4]。基于QoS的流量控制技术采用分组调度、队列管理、流量分类和流量整形技术[5-6],对转发的数据包进行控制。传统网络流量控制系统工作在网络出口,这些技术只能够缓解拥塞,无法真正控制网络流量。

1.2 源抑制思想

源抑制思想是当网络发生拥塞或主机资源不够时,中间路由器或目标主机向源主机发送消息,通知其降低发送数据包的速度,从而达到控制流量的目的。源抑制思想在IP协议设计之初就被引入,最典型的例子是ICMP协议,ICMP协议专门设计有源抑制报文(Source Quench Message),目标主机为了防止缓存溢出,通过发送源抑制报文来请求源主机降低数据发送速度[7]。具体过程是:首先目标主机发生缓存溢出开始丢弃数据,并向源主机发送源抑制报文,其发送速度是每丢弃一个数据包就发送一个源抑制报文;源主机接收到源抑制报文开始降低其数据发送速度,直到不再接收源抑制报文为止;最后只要不再接收到源抑制报文,源主机就逐渐增加其发送速度。但在实际应用中,该报文总是被忽略,并没有得到很好的使用。

2 基于源抑制的网络流量控制系统

针对传统网络流量控制系统的缺点,引入源抑制机制,在接入交换机上控制用户流量,建立基于源抑制的网络流量控制系统。

2.1 工作原理

根据传统网络流量控制系统和基于源抑制的网络流量控制系统的特点,绘制两者的工作原理,如图1所示。

图1 两种网络流量控制系统工作原理

图中用线条表示用户流量,线条粗细表示流量大小,箭头方向表示流量方向,分别显示用户发送流量和接收流量。传统网络流量控制系统中用户发送的较大流量经交换机转发到达网关,被限制成较小的流量发往互联网,而互联网发往用户的较大流量到达网关,被限制成较小的流量发往用户。基于源抑制的网络流量控制系统中用户发送的较大流量在接入交换机即被限制成较小的流量发往网关和互联网,而互联网发往用户的较大流量到达网关,被限制成较小的流量发往用户。对于用户发送的流量,传统网络流量控制系统在网关控制,而基于源抑制的网络流量控制系统在接入交换机上控制,因此基于源抑制的流量控制系统才能真正控制网络流量。

2.2 系统结构

基于源抑制的网络流量控制系统在网关上部署主控模块,在接入交换机上部署源抑制模块,通过两个模块之间的协同合作,共同控制网络流量。其系统结构如图2所示。

图2 基于源抑制的网络流量控制系统结构

主控模块包括主控进程、网络拓扑信息表、下行流量控制单元和令牌桶算法。主控进程监测用户流量,如果是用户上行流量异常,则通知源抑制模块进行限制,如果是下行流量异常,则在网关上限制。网络拓扑信息表保存用户的接入信息,主要包括用户IP、接入交换机IP和端口,主控算法根据用户的IP在表中查询接入交换机IP和端口,进而执行源抑制。下行流量控制单元控制用户下行流量,使用令牌桶算法进行流量整形。

源抑制模块包括源抑制进程、源抑制单元和令牌桶算法。源抑制进程解析主控模块发送过来的命令,通知源抑制单元控制用户上行流量,在指定端口执行令牌桶算法进行流量整形。

源抑制通信协议规定主控模块和源抑制模块之间交互的命令格式和过程。

2.3 主控模块

网关上的操作系统内核在转发数据包时维护用户IP的流量计数值,包括上行字节数和下行字节数。网络拓扑信息表由管理员手工录入。主控进程定时从操作系统内核获取所有用户IP的流量计数,计算每个用户的流量值,找出超过流量阈值一定时间的IP。如果是下行流量异常,则直接将流量阈值参数设置进下行流量控制单元中,进而执行令牌桶算法控制用户流量;如果是上行流量异常,则查询网络拓扑信息表,找到接入交换机IP和端口,将端口和限制值等参数封装成通信协议数据包并发送给交换机,通知其在端口上控制用户流量。当下行流量恢复正常时(即令牌桶算法不再丢弃数据包且保持一定时间),下行流量控制单元主动取消控制。

2.4 源抑制模块

交换机在转发数据包时维护每个端口的流量计数,主要是用户发送字节数。当主控进程通知交换机在指定端口限速时,源抑制进程接收通信协议数据包,解析出端口和限速值,将其设置进源抑制单元中。在交换机转发用户的数据包之前,源抑制单元检查是否需要限速,如果是,则执行令牌桶算法进行控制,否则执行正常的转发操作。当端口流量恢复正常时(即令牌桶算法不再丢弃数据包且保持一定时间),源抑制单元主动取消控制。

2.5 源抑制通信协议

源抑制通信协议基于UDP协议,端口值为54730。协议采用请求应答的方式工作,主控进程先发送源抑制请求报文给源抑制进程,源抑制进程再发送应答报文作为响应,从而完成一次交互。其PDU结构如图3所示。

图3 源抑制PDU结构

主要字段用途如下:

幻数:值为0x7A1D,用于检查和确认接收到的数据包是源抑制PDU。

序号:从1开始编号,每开始一个新的交互后自动加1,用于区分不同的交互。

命令类型:只有两种类型值,1表示请求,2表示应答。在应答报文中除命令类型外,其他字段的值与请求报文一致。

端口值:用户接入交换机的端口值。

限速值:用户的限速值。

鉴于UDP的不可靠性,抑制协议引入重传机制,在请求报文发送后,如果3 s内未收到响应报文,则重发请求报文。在极端情况下,网络可能严重拥塞,导致源抑制协议无法完成,因此规定交换机优先转发源抑制协议数据包。

3 系统测试

在Linux环境下实现基于源抑制的网络流量控制系统,采用Netfilter框架建立主控模块,采用 Bridge框架建立源抑制模块[8]。 然后搭建测试环境,对源抑制机制进行测试。测试方法是在用户端发送100 Mb/s流量到网关,流量阈值为 40 Mb/s,记录网关接收到的流量,结果如图4所示。

图4 源抑制功能测试

图4 显示用户流量持续一段时间后,从100 Mb/s迅速下降到40 Mb/s,表明源抑制机制能有效控制用户流量。

4 结束语

针对传统网络流量控制系统存在的不足,通过引入源抑制机制,提出构建新型的网络流量控制系统,在接入交换机上控制用户发送流量,测试表明该系统能有效控制用户上行流量。本系统中只要用户流量超限就立即执行控制,这可能造成个别用户的大流量需求得不到满足而出口带宽又空闲浪费的情况发生,需要进一步研究提高带宽利用率的算法。此外网络拓扑信息表是手工录入的,实际应用中应该采用准入控制技术自动生成。

[1]王荣,万振凯.校园网流量监控与优化研究[J].天津工业大学学报,2014,29(2):68-72.

[2]张五生,郑灵翔.基于 Linux的流量控制系统研究[J].厦门大学学报(自然科学版),2010,49(1):38-42.

[3]Wang Chunzhi,Zhou Xin,You Fangping,et al.Design of P2P traffic identification based on DPI and DFI[C].2009 International Symposium on Computer Network and Multimedia Technology,Wuhan,China: IEEE,2009:978-981.

[4]杨虎,张大方,谢鲲,等.Netfilter/Iptables框架下基于 TCP滑动窗口的串行流量控制算法[J].计算机工程与科学,2009,31(9):8-11,26.

[5]刘明,窦文华,张鹤颖.主动队列管理研究综述[J].计算机工程,2006,32(24):84-86.

[6]杨其钦.校园网中基于令牌桶算法的流量控制研究[D].广州:暨南大学,2012.

[7]COME D E.Internetworking with TCP/IP Vol I: Principles,Protocols,and Architectures(Fourth Edition)[M].林瑶,译.北京:电子工业出版社,2001.

[8]张文盛.基于Netfilter的内网流量控制系统应用研究[J].山东理工大学学报(自然科学版),2012,26(6):44-48.

猜你喜欢

令牌网络流量网关
基于多元高斯分布的网络流量异常识别方法
称金块
基于神经网络的P2P流量识别方法
基于路由和QoS令牌桶的集中式限速网关
信号系统网关设备的优化
动态令牌分配的TCSN多级令牌桶流量监管算法
AVB网络流量整形帧模型端到端延迟计算
LTE Small Cell网关及虚拟网关技术研究
应对气候变化需要打通“网关”
一种实时高效的伺服控制网关设计