tc netem中的选项限制意味着什么?

时间:2013-09-13 17:50:31

标签: bandwidth bandwidth-throttling

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

我用Google搜索并在http://manpages.ubuntu.com/manpages/raring/man8/tc-netem.8.html

中找到了一些内容

说:

  

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

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

2 个答案:

答案 0 :(得分:4)

我不知道netem正在做什么,但我发现如果你没有设置"限制"为了更高的价值,netem无法正常工作 - 即它以更高的速度丢弃数据包并可能存在其他问题,基本上不能准确地模拟真实的网络。

来自CarlH提到的mailing list,Stephen Hemminger说:

  

限制值至少在使用默认qdisc时是数据包   在netem(tfifo)里面。您也可以使用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%

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

答案 1 :(得分:1)

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

  

"限制"参数是指在中分配的缓冲区数   netem模块。

     

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

     

您诚挚的,

     

Laurent MARIE