我正在开展一个学校项目,在其中我试图模拟Buffer Bloating的网络现象。由于内存价格便宜,路由器中的缓冲区越来越大,这基本上是延迟。
现在,为了开始这个项目,我已经对linux“tc”命令以及如何使用它做了一些研究,但我没有看到如何根据我的需要设置正确的配置。情况如下;我有3台电脑。 PC1连接到PC2,PC2连接到PC3。在此配置中,PC2充当使用大缓冲区的路由器。通过PC2将流量从PC1发送到PC3。现在,我的目的是限制PC2可用于将输入数据从PC1发送到PC3的带宽。
我计划通过在PC2上设置一个大缓冲区来延迟从缓冲区获取数据包以模拟较慢的链接。这应该会导致大缓冲区填满并引入延迟。
现在,我想问一下这个社区有关如何使用“tc”命令或其他适合该工作的工具进行配置的想法。或者如果您对如何模拟缓冲膨胀有其他想法,也欢迎这些。
感谢您的耐心等待。
答案 0 :(得分:3)
我认为有两种模拟膨胀的方法,它取决于你正在使用的内核和/或iproute的版本。 TBF 和 NETEM 允许设置费率和队列大小。
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工具。
此致 迭