3

我正在做一个学校项目,我试图模拟缓冲区膨胀的网络现象。这本质上是延迟,因为由于内存价格便宜,路由器中的缓冲区会随着时间变得越来越大。

现在,要开始这个项目,我已经对 linux "tc"-command 以及如何使用它进行了一些研究,但是我看不到如何根据我的需要设置正确的配置。情况如下;我有3台电脑。PC1 连接到 PC2,PC2 连接到 PC3。在此配置中,PC2 充当使用大缓冲区的路由器。流量通过 PC2 从 PC1 发送到 PC3。现在,我的意图是限制 PC2 可以用来将传入数据从 PC1 发送到 PC3 的带宽。

我打算通过在 PC2 上设置一个大缓冲区来执行此操作,并延迟从缓冲区中获取数据包以模拟较慢的链接。这应该会导致大缓冲区填满并引入延迟。

现在,我想向这个社区询问有关如何使用“tc”命令或其他适合该工作的工具来配置它的想法。或者,如果您对如何模拟缓冲区膨胀有其他想法,也欢迎您提出。

谢谢你的耐心。

4

1 回答 1

3

我认为有两种方法可以模拟膨胀,这取决于您使用的内核和/或 iproute 的版本。TBFNETEM允许设置速率和队列大小。

tc qdisc add dev eth0 root tbf rate Xmbit limit Y burst 1500

或者

tc qdisc add dev eth0 root netem Xmbit limit Y

其中 X 是带宽,Y 是队列大小。第一个应该可以在任何 2.6 内核中工作,并且可以在 2.4 的某些较新版本中。后者需要新版本的 Linux 内核和 Iproute 工具。

问候,迭戈

于 2012-03-19T02:26:17.127 回答