张文盛,史 科
(1.安徽广播电视大学,安徽 合肥 230022; 2.安徽广播电视大学省直分校,安徽 合肥 230001)
基于源抑制的内网流量自适应控制算法研究*
张文盛1,史科2
(1.安徽广播电视大学,安徽 合肥 230022; 2.安徽广播电视大学省直分校,安徽 合肥 230001)
针对源抑制机制在内网流量控制中存在的带宽利用率不高的问题,提出一种基于源抑制的内网流量自适应控制算法。该算法在网关上监视网络流量,当总流量小于阈值时,不执行流量控制;当总流量超过阈值时,开始统计每个用户的流量,找出流量较大的用户,对于下载流量直接在网关上限速,对于上传流量通知接入交换机控制用户流量。在Linux中实现基于源抑制的内网流量自适应控制算法,并对其进行测试,结果表明该算法能够有效控制内网流量,实现带宽公平和高效利用。
源抑制;动态流控;自适应;流量攻击
引用格式:张文盛,史科.基于源抑制的内网流量自适应控制算法研究[J].微型机与应用,2016,35(16):57-59.
目前绝大部分内网都在网络出口部署流控设备,这些设备在流量控制方面还有缺陷,特别是无法解决恶意流量攻击问题,例如用户可以向外网发送大量UDP包,使出口堵塞,妨碍网络正常运行。源抑制机制[1]通过将流控设备和接入交换机等互联,发挥系统优势,实现协同合作,在用户接入端口控制流量,有效解决恶意流量问题,但是带宽利用率不高。本文在源抑制技术基础上,设计内网流量自适应控制算法,实现带宽公平和高效利用。
目前最新的内网流控控制技术包括动态流控技术和源抑制技术,其各有优缺点。
1.1动态流控技术
动态流控技术是采用自适应方法对不断变化的流量进行控制的技术,包括流量分类、动态队列和公平调度3部分[2]。
流量分类是通过识别数据包中的IP和端口等信息识别流量,例如想限制用户下载流量,可根据从外网接收到的包的目的IP地址进行分类,相同的目的IP的包被标识为同一类[3]。
动态队列是子队列个数可变的队列,保证每一个分类都有且唯一对应一个子队列。动态队列根据入队数据包的分类信息,判断所属子队列是否存在,如果不存在,则建立该子队列;当所属队列长期空闲时,销毁该子队列[4]。子队列可采用随机早期检测(Random Eearly Detection,RED)管理算法控制深度[5]。通过子队列个数的动态扩展和自动收缩特性,保证流量控制的高性能和提高资源的利用率。
公平调度是轮询动态队列中的所有子队列,如果有数据包需要发送,并且本轮有配额,则发送该数据包,否则要等到下一轮,从而保证调度的公平性[6]。
动态流控技术的特点是当分类很多时,带宽被所有分类平均分享,没有独占现象;当分类较少时,大流量的分类也会得到更多的调度机会,带宽不会空闲浪费。动态流控技术能够根据流量变化自动调整控制策略,较好地实现带宽公平和高效使用。动态流控技术的缺点是不能控制恶意流量。典型的动态流量控制技术应用有RouterOS中的每连接队列 (Per Connection Queue, PCQ)[7]。
1.2源抑制技术
源抑制技术是在接入交换机的端口上限制用户流量的技术,包括网关、接入交换机和源抑制协议3部分。
网关设置流量配额,监视所有用户流量,当发现流量超限时,如果是下载流量,直接在网关上限速;如果是上传流量,则通知接入交换机限速。
接入交换机在接收到限速指令后,解析出端口和限速值参数,在该端口启用令牌桶算法对流量进行整形。当用户流量恢复正常后,接入交换机自动取消限速。
源抑制协议用于网关和接入交换机之间的控制交互,传递限速命令。
源抑制技术的特点是当用户流量低于阈值时,不启用源抑制机制,反之则启用源抑制,因此源抑制技术能有效控制内网恶意流量,保证带宽公平使用。源抑制技术的缺点是用户配额固定,不能根据带宽使用情况自动调节控制策略,带宽可能大量空闲,利用率不高。
2.1算法思想
本算法的思想是利用二八定律和削尖方法对流量进行控制。
二八定律是指在任何一组事物中,最重要的只占其中一小部分,约20%,其余80%尽管是多数,却是次要的定律[8]。流量的变化和控制也遵从该定律。在时间上,在超过80%的时间中,流量都很正常,不需要控制,只有不到20%的时间内,流量表现异常需要控制。在用户组成上,超过80%的用户流量都是正常的,只有不到20%的用户流量不正常。在带宽使用上,流量超过总带宽的80%时才进行控制,其他情况下不需要控制,从而最大化利用资源。
削尖思想是执行流量控制时,只对流量较大的几个用户进行控制,保证带宽公平使用。
2.2算法描述
本算法主要流程是计算网络出口流量,如果流量超过阈值,则计算每个用户的流量,找到其中最大值,将该值减去一个增量后得到值s,对于流量超过s的用户,如果是上传流量则使用源抑制机制限速,如果是下载流量则在网关上限速。算法如图1所示。
图1 基于源抑制的内网流量自适应控制算法
图1中G是流量阈值,通常可设为出口带宽的80%;S是分配给每个用户流量的最小配额值,如1 Mb/s;I是流量控制增量位移,可设为3。当I=3时,s=s-s>>3=s(1-1/8)=7s/8,相当于每次减去1/8,s越大减得越多,s越小减得越少。
本算法定时执行,间隔可以设置长一点,例如10 s执行一次,一方面可以使计算的流量值更平滑,减小瞬间流量波动导致的控制误差;另一方面给源抑制足够的反馈时间,降低控制负载。
为了验证算法的性能,在Linux环境中予以实现,并进行充分测试。
3.1测试环境
测试拓扑如图2所示。
图2 测试拓扑
所有设备均安装RHEL6(Redhat Enterprise Linux 6)操作系统,所有网络接口的带宽都是100 Mb/s,服务器提供FTP下载和上传服务。
3.2系统结构
本算法基于源抑制,目前有两种源抑制系统结构可供选择,一种是Netfilter源抑制,另一种是动态流控源抑制。Netfilter源抑制结构在参考文献[1]中有深入研究,本文采用动态流控源抑制结构,其流控的公平性优于Netfilter源抑制。动态流控源抑制系统结构如图3所示。
图3 动态流控源抑制结构
在图3中,内网流量自适应控制算法运行在网关的用户空间中,通过和内核中的动态流控模块交互,获取流量信息,控制用户流量。动态流控模块是在Linux的流量控制框架SCHED中实现的,通过建立动态流控规程,使用令牌桶算法管理用户的下载队列和上传队列,将规程绑定在内网口,实现流量的动态控制。
3.3测试方案
同时在PC1和PC2上使用FTP协议向服务器上传大文件。PC1的FTP客户端软件不主动限速,PC2的FTP客户端主动限速5 Mb/s。
算法中的参数设置如下:G设置为80 Mb/s,S设置为8 Mb/s,I设置为4,算法执行间隔设为60 s。测试开始的60 s内不启用流量控制,然后再启用,对比控制效果。
3.4测试结果
在网关内网口统计PC1和PC2的上传流量,结果如图4所示。
在图4中,前60 s内,流量控制未启用,PC1流量为95 Mb/s左右,PC2流量为5 Mb/s左右,带宽全部被占用。启用流量控制后,由于总流量超过阈值G,算法应该对流量最大的用户PC1进行源抑制,每隔60 s,将PC1的流量减少1/16,直到总流量保持在80 Mb/s以下,而PC2不受影响。图4中的信息印证了这些推论,在60 s、120 s、180 s、240 s这4点,PC1的流量均有所跳降,直至保持75 Mb/s左右不变,PC2的流量一直保持在5 Mb/s左右。
图4 内网流量自适应控制算法测试结果
本文针对内网流量控制存在的不足,提出基于源抑制的内网流量自适应控制算法;通过引入二八定律和削尖方法,给出算法框图,讨论算法执行细节,详细描述算法的工作原理;最后搭建测试环境,在动态流控源抑制系统结构中实现算法,设计测试方案,进行仔细测试。测试结果表明,基于源抑制的内网流量自适应控制算法能够实现带宽的公平和高效使用。
[1] 张文盛.源抑制在网络流量控制中的应用研究[J].微型机与应用,2015,34(17):61-63.
[2] 郭正球.基于Linux下TC的网络流量管理[J].长沙航空职业技术学院学报,2010,10(2):50-53.
[3] 刘颖秋,李巍,李云春.网络流量分类与应用识别的研究[J].计算机应用研究,2008,25(5),1492-1495.
[4] 蔡文郁,金心宇,张昱.基于Linux的网络流量控制机制[J].江南大学学报(自然科学版),2006,5(4):480-484.
[5] 李新国.基于拥塞控制的AQM算法研究[J].计算机技术与发展,2007,17(5):199-202.
[6] 尹德斌,谢剑英.一种新的加权公平队列调度算法[J].计算机工程,2008,34(4):28-33.
[7] 王洪波.基于RouterOS系统的流量控制策略研究[D].成都:电子科技大学,2012.
[8] 吴青劼,洪涛,马骏.长尾理论综述[J].周口师范学院学报,2010,27(1):124-129.
Research or sourch quench based LAN traffic adaptive control algorithm
Zhang Wensheng1, Shi Ke2
(1.Anhui Radio & TV University, Hefei 230022, China; 2. Shengzhi Branch School of Anhui Radio & TV University, Hefei 230001, China)
Aiming at the problem that bandwidth utilization is not high in source quench based LAN traffic control, a source quench based LAN traffic adaptive control algorithm is proposed. The algorithm monitors LAN traffic in gateway, when total flow rate is smaller than threshold, it does not perform traffic control; when total flow exceeds threshold, it begins to compute each user’s traffic, then finds out larger users, for download traffic it directly limits traffic in the gateway, and for upload traffic it notifies access switch to control user traffic. The source quench based LAN traffic adaptive control algorithm is implemented and tested in Linux. The test results show that the algorithm can effectively control network traffic to achieve fair and efficient use of bandwidth.
sourch quench; dynamic traffic control; adaptive; traffic attack
安徽省教育厅高校优秀青年人才支持计划重点项目(gxyqZD2016445);安徽广播电视大学科研项目(qn11-11)
TP393.1
A
10.19358/j.issn.1674- 7720.2016.16.017
2016-03-24)
张文盛(1980-),男,硕士研究生,工程师,主要研究方向:计算机网络。
史科(1981-),男,硕士研究生,讲师,主要研究方向:人工智能。