用Linux操作系统中流量控制器(TC)来模拟Linux机器网络之间情况
Traffic Control ,简称TC,主要是在输出端口处建立一个队列进行流量控制,控制的方式是基于路由,亦即基于目的IP地址或目的子网的网络号的流量控制。流量控制器TC,其基本的功能模块为队列、分类和过滤器。Linux内核中支持的队列有,Class Based Queue ,Token Bucket Flow ,CSZ ,First In First Out ,Priority ,TEQL ,SFQ ,ATM ,RED。这里我们讨论的队列与分类都是基于CBQ(Class Based Queue)的,而过滤器是基于路由(Route)的。
?
TC的一些常用命令:
网卡限速:
ethtool -s eth0 speed 10 autoneg off
?
取消限速
ethtool -s eth0 autoneg on
?
监视
tc qdisc ls dev eth0
?
简单显示指定设备(eth0)的分类情况
tc class ls dev eth0
?
详细显示指定设备(eth0)的分类情况
tc -s class ls dev eth0
tc -s filter ls dev eth0
?
显示路由情况
ip route show
?
删除网卡上的过滤器
tc qdisc del dev eth0 root
?
增加网卡上的过滤器
tc qdisc add dev eth0 root handle 1:0 netem delay 5ms loss 5%
这条命令的作用是让网络产生5ms的延时,丢包率为5%
结合控制网卡速度的命令,tc可以模拟Linux机器网络之间的任何情况,为通信程序的测试提供了有力工具。
?
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。