我正在寻找一种可靠的方法来丢弃Linux中的数据包,就好像你的网络不好一样。看看堆栈溢出(和互联网)似乎有this answer指出的两个好的可能性。这两个都应该有5%的丢包率。
tc qdisc change dev eth0 root netem loss 5%
iptables -A INPUT -m statistic --mode random --probability 0.05 -j DROP
但是,netem documentation声明如下:
当在本地使用丢失(而不是在网桥或路由器上)时,损失是 向上层协议报告。这可能导致TCP重新发送 并表现得好像没有损失。当测试协议响应时 丢失最好在桥接器或路由器上使用netem
根据我的(非常有限的)理解,两个解决方案(netem
和iptables
)都使用相同的解决方案,因此也会遇到同样的问题。
有没有办法精确模拟丢弃的数据包而无需在交换机或网桥上运行程序?破坏包裹是一个穷人的方式来&"掉落"他们,因为CRC必须重新请求它们?
三江源。