浅析网络流量控制系统在开源路由器上的实现(3)
作者:佚名; 更新时间:2014-12-05

  3.2流量统计模块

    通过捕包模块获取数据包及其信息。通过IP地址,统计出各IP以及各IP网段的网络数据流量,并统计出总的上行和下行流量。通过端口,统计出TCP/UDP源和目的端口的流量。通过应用层payload字段的字符串特征符来统计相应网络应用的流量。当总体流量超过一定的限定值,而引起网络拥塞时,根据具体情况,选择以上流量统计中的一种作为依据,动态地调用TC,对网络流量进行控制。

  3.3流量控制模块

    流量控制的基本步骤为:(1)针对网卡建立一个队列;(2)取出数据包源/目的地址、源/目的端口、协议类型五元组信息;(3)通过DPI对到达的数据包进行识别;(4)根据用户要求,使用netfilter/iptables匹配功能,为匹配到的数据包打上mark值;(5)在这个建立的队列上再建立分类;(6)设置过滤器为每一分类建立选路,使数据流进人相应队列,并分配带宽;(7)数据包调度。

    以下是对BT流量控制〔12]进行设置的一个例子。

    iptables设置:

    iptables一A PREROUTING一t mangle一p tcp一m BT一J一set一mark 1 //'"} BT连接标记为“1"

    TC设置:

    tc qdisc add dev eth0 handle 1:0 root htb//创建HTB的根队列策略

    tc class add dev eth0 parent 1:0 classid 1:1 htb rate95000kbps cell 95000kbps //设置主类带宽

    tc class add dev eth0 parent 1:1 classid 1:2 htb ratelOkbps ceil 80kbps prio 3 //建立一个BT子类,设置带宽在l0k到80k之间

    tc qdisc add dev eth0 parent 1:2 handle 1:2:1 pfifo//对BT、子类建立FIFO队列策略

    tc filter add dev eth0 parent 1:0 protocol ip prio 100handle 1 fw classid 1:2 //设置过滤器,将标记为“1”的BT包送到1:2这个类中

    采用HTB规则为以太网卡绑定一个主队列,并创建根分类,然后可以选择通过IP地址、端口号或网络应用分出子类,之后结合iptables的mark值进行过滤,数据流进人相应分类的队列。但是为了保证网络用户的基本使用,系统对一些常规的业务直接输出,而不作控制。流量控制流程图如图2所示。

浅析网络流量控制系统在开源路由器上的实现

  4 DD一wRT的流量控制功能定制

    定制步骤如下:

    1)下载固件解压和压缩工具的源代码fimiware_moc}一tools. tar. gz,解压并编译这个工具;

核心期刊快速发表
Copyright@2000-2030 论文期刊网 Corporation All Rights Reserved.
《中华人民共和国信息产业部》备案号:ICP备07016076号;《公安部》备案号:33010402003207
本网站专业、正规提供职称论文发表和写作指导服务,并收录了海量免费论文和数百个经国家新闻出版总署审批过的具有国内统一CN刊号与国际标准ISSN刊号的合作期刊,供诸位正确选择和阅读参考,免费论文版权归原作者所有,谨防侵权。联系邮箱:256081@163.com