网络模拟工具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。