【问题标题】:Traffic shaping using tc使用 tc 进行流量整形
【发布时间】:2012-03-18 11:04:58
【问题描述】:

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

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

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

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

感谢您的耐心等待。

【问题讨论】:

  • 已经读过 LARTC (Linux Advanced Routing & Traffic Control HOWTO) lartc.org/howto/lartc.cookbook.ultimate-tc.html ?
  • 您好,感谢您提供的链接。我已经阅读了它,但对于我正在寻找的东西来说,它似乎非常先进。我希望能找到大约 2 或 3 行来解决问题。它确实为我指明了寻找其他排队规则的其他方向。我去看看令牌桶。

标签: linux buffer-overflow trafficshaping


【解决方案1】:

我认为有两种方法可以模拟膨胀,这取决于您使用的内核和/或 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 工具。

问候, 迭戈

【讨论】:

  • 感谢您的命令。我发现令牌桶确实可以达到我的目的。我会在几天内尝试(我这里没有设备来测试它)并会报告。第二个命令在简单和优雅方面看起来很有希望。谢谢。
  • 我已经使用了你的第一个解决方案,它就像一个魅力。通过一些调整和调整,我找到了我需要的确切东西。谢谢你的回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-23
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 2017-10-09
  • 1970-01-01
相关资源
最近更新 更多