網絡模擬工具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。