6

我正在尝试使用 command 模拟慢速网络链接tc。我用netem模拟延迟和丢包和htb模拟窄带宽,但我发现有一个限制选项netem,这个选项有什么作用?会影响最终带宽吗?

我用谷歌搜索并在http://manpages.ubuntu.com/manpages/raring/man8/tc-netem.8.html中找到了一些东西

其中说:

将所选选项的效果限制为指定数量的下一个数据包。

但我仍然无法理解它的作用。

4

2 回答 2

7

我不知道 netem 到底在做什么,但我发现如果你不将“限制”设置为更高的值,netem 就不能正常工作——即它以更高的速度丢弃数据包,并且可能还有其他问题,本质上不能准确地模拟真实的网络。

从CarlH 提到的邮件列表中,Stephen Hemminger 说:

至少当在 netem (tfifo) 中使用默认的 qdisc 时,限制值以数据包为单位。您还可以使用 pfifo 并将其配置为数据包限制,或者 bfifo 仅相同字节。值 1000 较低,您希望比最大​​数据包速率 * 延迟多 50%,除非您尝试模拟具有小队列的路由器。

因此,对于 1 Gbps 链路,1 Gbps / 1500 字节 MTU * 100 ms * 1.5 = 12500

命令:

sudo tc qdisc add dev eth1 root netem limit 12500 delay 100ms loss 1%

我一直在使用limit 100000,这似乎工作正常,但似乎较低的值可能没问题。

于 2016-07-09T03:17:33.917 回答
2

来自https://lists.linuxfoundation.org/pipermail/netem/2007-March/001091.html

“limit”参数是指在 netem 模块中分配的缓冲区数量。

必须调整限制以支持给定数据速率下延迟的帧数(例如 500 毫秒)。

此致,

劳伦特·玛丽

于 2016-03-05T19:23:35.820 回答