网络模拟工具Netem可以模拟时延,丢包,重复包,乱序等功能。 Netem是用过命令行‘tc’来设置规则的,tc命令是IProute2命令中的一部分!
1. 设置固定delay 100ms (所有经过eth0的包都被延时了100ms):
# tc qdisc add dev eth0 root netem delay 100ms
2. 设置delay 100ms Jitter 10ms:
# tc qdisc change dev eth0 root netem delay 100ms 10ms
3. Jitter其实是有相关性的,如果要设置Jitter的相关性25%:
# tc qdisc change dev eth0 root netem delay 100ms 10ms 25%
4. 设置Jitter为正态分布。
# tc qdisc change dev eth0 root netem delay 100ms 20ms distribution normal
5. 设置丢包率10%
# tc qdisc change dev eth0 root netem loss 10%
6. 丢包率也有相关性。 如设置10%的丢包率,但是丢包率之间的相关性为25%
# tc qdisc change dev eth0 root netem loss 0.3% 25%
7. 包的duplication。
# tc qdisc change dev eth0 root netem duplicate 3%
8. 包的corruption。
# tc qdisc change dev eth0 root netem corrupt 0.1%
9. 乱序, 每第5个包马上发送,其他的包间隔10ms发送。
# tc qdisc change dev eth0 root netem gap 5 delay 10ms
10. 乱序, 10%的包(相关性为25%)马上发送,其他的包间隔10ms发送。
# tc qdisc change dev eth0 root netem delay 10ms reorder 10% 25%
还有一些其他的功能,请自己参考: http://www.linuxfoundation.org/collaborate/workgroups/networking /netem#Delay_distribution。