显然 NETEM 使用 tfifo,它根据发送时间对数据包进行排队。这会导致抖动导致数据包重新排序。例如以下行将导致数据包重新排序*:
tc qdisc add dev eth0 root handle 1: netem delay 10ms 100ms
NETEM 手册建议如果您不想重新排序,则将内部队列规则 tfifo 替换为纯数据包 fifo (pfifo),并给出以下示例也添加大量抖动而不重新排序:
tc qdisc add dev eth0 root handle 1: netem delay 10ms 100ms
tc qdisc add dev eth0 parent 1:1 pfifo limit 1000
但它不起作用!数据包仍然会重新排序!(根据this看起来它依赖于内核)
那么,有谁知道如何在不重新排序数据包的情况下添加抖动?