Linux tc命令模拟网络延迟和丢包

Linux 中使用 tc 进行流量管理,具体命令的使用可参考 tc 的man手册

1.模拟网络延迟

将 eth0 网卡的传输设置为延迟 100 毫秒发送

tc qdisc add dev eth0 root netem delay 100ms

将 eth0 网卡的传输设置为延迟 100ms ± 10ms (90 ~ 110 ms 之间的任意值)发送

tc qdisc add dev eth0 root netem delay 100ms 10ms

将 eth0 网卡的传输设置为 100ms ,同时,大约有 30% 的包会延迟 ± 10ms 发送

tc qdisc add dev eth0 root netem delay 100ms 10ms 30%

2、模拟网络丢包

将 eth0 网卡的传输设置为随机丢掉 1% 的数据包

 tc qdisc add dev eth0 root netem loss 1%

将 eth0 网卡的传输设置为随机丢掉 1% 的数据包,成功率为 30%

tc qdisc add dev eth0 root netem loss 1% 30%

3、模拟包重复

将 eth0 网卡的传输设置为随机产生 1% 的重复数据包

tc qdisc add dev eth0 root netem duplicate 1%

4、模拟数据包损坏

将 eth0 网卡的传输设置为随机产生 0.2% 的损坏的数据包

tc qdisc add dev eth0 root netem corrupt 0.2%

5、模拟包乱序

将 eth0 网卡的传输设置为:有 25% 的数据包(50%相关)会被立即发送,其他的延迟10 毫秒。

tc qdisc change dev eth0 root netem delay 10ms reorder 25% 50%