网络环境场景包括:
-
延迟(Lag),把数据包缓存一段时间后再发出,这样能够模拟网络延迟的状况。
-
掉包(Drop),随机丢弃一些数据。
-
节流(Throttle),把一小段时间内的数据拦截下来后再在之后的同一时间一同发出去。
-
重发(Duplicate),随机复制一些数据并与其本身一同发送。
-
乱序(Out of order),打乱数据包发送的顺序。
-
篡改(Tamper),随机修改小部分的包裹内容。
Linux通过netem (network emulation)可以在发送方的主机上模拟上面的情况,举例
1)每个包增加100ms延迟
# tc qdisc add dev eth0 root netem delay 100ms
2)10%的丢包率
# tc qdisc change dev eth0 root netem loss 10%
3)10%被篡改
# tc qdisc change dev eth0 root netem corrupt 10%
5)乱序,第五个包提前发出,其他delay 10ms
# tc qdisc change dev eth0 root netem gap 5 delay 10ms
6)限速
参考:
http://www.oschina.net/p/clumsy