出于测试目的模拟以太网帧丢失

网络工程 以太网 贝尔 数据包丢失 测试
2021-07-13 14:11:01

也许我错过了一些相当基本的东西,但我不知道所以我想我会问。

在测试方面,各种 TDMoE 对 BER 和数据包延迟的敏感程度,我正在研究如何在以太网级别模拟延迟和随机丢包。对于这些测试,我可能只会按照类似 StackOverflow 问题中的说明运行 iptables。然而,虽然这在这里可以工作,但我不确定它是否可以在更一般的情况下工作(也许测试 Windows 服务器之间的 BER 容限等)。所以这让我开始思考。

是否有任何廉价的网络测试设备允许人为延迟或丢弃数据包,以便对协议进行压力测试并评估对延迟和数据包丢失的敏感性?

我的要求是能够在以太网级别上做到这一点。我不是在寻找特定的设备、品牌等,而是“他们的东西是这样做的吗?” 如果是这样,也许对它们是什么样的有一些一般性的想法。我主要考虑构建一个运行 Linux 和 iptables 的简单桥来执行此操作。只是想知道这是否是正确的方法。

2个回答

有像WANem这样的工具,它允许您通过人为地在链路上造成任意延迟和丢失率来模拟 WAN 链路。WANem 工作在一个比较高的层次上;您不会在链路上看到物理错误,但数据包将被丢弃。它可以部署在商品硬件上。

我知道还有其他一些工具可以用于类似的目的,但我现在想不起来任何工具的名称。

正如杰里米所说,WANem 很棒。其他有趣的工具是netemdummynet

请参阅以下有关 netem 的示例:

# tc qdisc change dev eth0 root netem loss 0.1%
# tc qdisc change dev eth0 root netem delay 100ms 10ms 25%

您可以在netem 页面这个优秀的 SO answer获取更多信息