linuxtc命令用法的简单介绍

模拟网络故障--tc

网络故障一般包含网络数据异常,网络丢包和网络延迟。

创新互联公司是一家专业提供龙山企业网站建设,专注与网站设计制作、成都网站制作HTML5、小程序制作等业务。10年已为龙山众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。

Linux内核从2.2开始提供TC(Traffic Control)去控制Linux内核的流量,一般系统都是自带tc工具。

TC控制流程:

这里使用paping而不是ping,按照原作者说法是为了防止在防火墙开启的状态下可以ping通,但无法进行tcp连接的问题。

网络延迟:

tc qdisc add dev eth0 root netem delay 300ms

网络丢包:

tc qdisc add dev eth0 root netem loss 7% 25% #代表丢掉7%的包,但是成功率只有25%

tc qdisc add dev eth0 root netem loss 7% #只设置7%是代表随机丢掉7%的包

网络数据异常:

tc qdisc add dev eth0 root netem corrupt 10% # 10%的数据包损坏,不是没传过去,而是传过去不对。

网络数据重复:

tc qdisc add dev eth0 root netem duplicate 1% #随机产生1%的包重复

网络数据包乱序:

tc qdisc add dev eth0 root netem delay 10ms reorder 25% 50% #有25%的数据包(50%相关)会被立即发送,其他的延迟10秒

关闭网络异常模拟:

tc qdisc del dev eth0 root netem

监控网卡:

tc qdisc add dev eth0 root netem

其余命令:

tc qdisc change dev eth0 root netem duplicate 1%

tc qdisc replace dev eth0 root netem duplicate 1%

tc是要在client端设置的,因为只能控制数据发出,它模拟的是异常的数据到达Server后如何被处理,前提是数据在到达Server的时候已经异常了。

至于server端的控制,需要使用iptables。

参考文档:

linux tc 命令

你问的这么详细不如直接去看教程

但是初接触TC看教程还真有点费力,你还是多写写,读别人写的脚本去理解他们的意思

class就是规则分支,你用TC来限制速度,首先要写一些规则,比如优先级别,流量限制等

规则写完后,接下来就要过滤,,就是让系统知道哪些包符合规则,根据你的过滤条件来让数据包走不同的分支(规则,class)

基本步骤就是这样,具体清你看教程去把。

linux内核中配置tc命令

只需要修改iproute2应用层的makefile就可以了,编译tc并把tc拷贝到执行目录里


网站标题:linuxtc命令用法的简单介绍
URL网址:http://pwwzsj.com/article/doiihih.html