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

2025-04-27


  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,解压并编译这个工具;

    2)下载固件dd一wrt. v24_ std_ generic. bin,使用firmware_ tools解压,生成目录dd - wrt ;mod
    $/extract_firmware. sh dd一wrt. v24_ std-generic. bin dd一wrt/
    3)修改dd一wrt固件,将流量控制程序添加进dd一wrt目录中;
    在目录dd - wrt中有两个目录文件,一个是im-age_ parts,一个是~tfs。其中image _ parts中保存的是固件的引导内核,rootfs中保存的是固件中的文件。直接在roots中添加流量控制程序。

浅析网络流量控制系统在开源路由器上的实现(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:浅谈工程结构计算中计算机技术的应用

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219