0

我正在寻找一种可靠的方法来在 linux 中丢弃数据包,就好像你的网络不好一样。查看堆栈溢出(和互联网)似乎有两个很好的可能性在这个答案中指出。这两个都应该有 5% 的丢包率。

  1. tc qdisc change dev eth0 root netem loss 5%
  2. iptables -A INPUT -m statistic --mode random --probability 0.05 -j DROP

但是,netem 文档说明了以下内容:

当在本地(不在网桥或路由器上)使用 loss 时,会将 loss 报告给上层协议。这可能会导致 TCP 重新发送并表现得好像没有丢失一样。在测试协议对丢失的响应时,最好在网桥或路由器上使用网络

根据我(非常有限)的理解,两种解决方案(netemiptables)都使用相同的解决方案,因此会遇到相同的缺点。

有什么方法可以准确地模拟丢弃的数据包,而无需在交换机或网桥上运行程序?由于 CRC 将不得不重新请求它们,因此破坏数据包是否是一种“丢弃”它们的穷人方式?

谢谢你。

4

0 回答 0