Linux 在每个数据包之间引入延迟

Linux 在每个数据包之间引入延迟,linux,delay,trafficshaping,Linux,Delay,Trafficshaping,所以我知道我可以使用LinuxTC和netem将流的所有数据包延迟一个给定的延迟。 这里介绍的是什么 只是将所有数据包延迟一段给定的时间,而不改变实际数据包之间的间隔 我想做的是将每个连续数据包对之间的最小间隔时间设置为100ms。我不想再订购了 任何想法都很感激 问候, kravvcu因此,如果我正确理解了您的要求,您需要100毫秒的恒定包间延迟,并且不需要重新排序。您提到的链接(LinuxFoundation)中的命令引入了100ms的延迟和20ms的抖动。这种抖动会导致重新排序 有两种方法

所以我知道我可以使用LinuxTC和netem将流的所有数据包延迟一个给定的延迟。 这里介绍的是什么 只是将所有数据包延迟一段给定的时间,而不改变实际数据包之间的间隔

我想做的是将每个连续数据包对之间的最小间隔时间设置为100ms。我不想再订购了

任何想法都很感激

问候,


kravvcu

因此,如果我正确理解了您的要求,您需要100毫秒的恒定包间延迟,并且不需要重新排序。您提到的链接(LinuxFoundation)中的命令引入了100ms的延迟和20ms的抖动。这种抖动会导致重新排序

有两种方法可以满足您的需求

  • 如果不需要抖动:-
    tc qdisc添加/更改/替换dev eth0根netem延迟100ms
  • 如果需要抖动:- 诀窍是在netem命令中使用high
    rate
    参数。netem在内部维护一个tfifo队列。使用
    rate
    参数,netem根据其tfifo队列中最后一个数据包的发送时间计算下一个数据包的数据包延迟。因此有延迟和抖动,但没有重新排序
相同的命令是
tc qdisc添加/更改/替换dev eth0根网络速率1000mbit延迟100ms

速率1000mbit
或任何非常高的速率都可以完成此任务

此功能在任何地方都没有文档记录。然而,在2011/2012/2013年的linux netdev邮件列表中讨论过。ATM我找不到同一个的链接。但是,我可以指出实现上述代码的linux源代码

如果答案有用,请投票