wzstar2008 发表于 2009-12-28 11:43:06

用NETEM模拟网络丢包

<P>不知大家是否会测试到通信中间件,如果有的话,那么了解一下NETEM工具将是非常有用的。在最近一次通信故障重现中用到的,给大家分享一下;它可以做很多事情,比如说模拟丢包,重复发包,发乱序包等;简要说明如何使用: </P>
<P>&nbsp;</P>
<P>step1:使用ifconfig命令查看你的网卡信息,如:eth0 </P>
<P>step2:将网卡加入监控列表 </P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sudo tc qdisc add dev eth0 root netem </P>
<P>step3:</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 设置丢包率 </P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sudo tc qdisc change dev eth0 root netem loss 0.5% </P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 设置重发 </P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sudo tc qdisc change dev eth0 root netem duplicate 1% </P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 设置发乱序包 </P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sudo tc qdisc change dev eth0 root netem gap 5 delay 10ms </P>
<P>如果想让网络恢复正常,只需要将设置的值相应归0即可。</P>
<P>&nbsp;</P>
<P>NetEM 包含在iproute2包中,由命令"tc"控制,使用起来很方便,不过需要说明一下:这个工具需要在Linux 2.6以上内核才包含。 </P>
<P>NETEM介绍,可参考: </P>
<P><A href="http://www.linuxfoundation.org/collaborate/workgroups/networking/netem">http://www.linuxfoundation.org/collaborate/workgroups/networking/netem</A> </P>
<P>TC介绍,可参考: </P>
<P><A href="http://www.myfaq.com.cn/A/2002-01-29/12319.html">http://www.myfaq.com.cn/A/2002-01-29/12319.html</A></P>
<P>&nbsp;</P>
页: [1]
查看完整版本: 用NETEM模拟网络丢包