Dan*_*Dai 6 bandwidth bandwidth-throttling
我正试图用命令模拟慢速网络链接tc.我netem用来模拟延迟和数据包丢失以及htb来模拟窄带宽,但我发现有一个限制选项netem,这个选项有什么作用?它会影响最终带宽吗?
我用Google搜索并在http://manpages.ubuntu.com/manpages/raring/man8/tc-netem.8.html中找到了一些东西
其中说:
将所选选项的效果限制为指示的下一个数据包的数量.
但我仍然无法理解它的作用.
我不知道 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%
Run Code Online (Sandbox Code Playgroud)
我一直在使用 limit 100000,这似乎工作正常,但似乎较低的值可能没问题。
来自https://lists.linuxfoundation.org/pipermail/netem/2007-March/001091.html
“limit”参数是指netem模块中分配的缓冲区数量。
必须调整限制以支持给定数据速率下延迟的帧数(例如 500 毫秒)。
此致,
洛朗·玛丽