为什么我无法使用 ToS 字段确定 TCP 流量的优先级?

为什么我无法使用 ToS 字段确定 TCP 流量的优先级?

我正在尝试使用 IP 标头中的 ToS 字段来确定 TCP 流量的优先级。我通过 iperf 发送 1GB 数据,并将 ToS 字段设置为 0x10(最小化延迟),从而使接口(以太网)饱和。然后,我启动另一个具有默认 ToS (0) 的 TCP 客户端。

期望:在 iperf 完成发送数据之前,我的 TCP 客户端不应发送数据。

结果:即使 iperf 正在发送具有更高优先级的数据包,来自我的客户端的数据也会被发送。

我还尝试通过创建 2 个单独的客户端并使用 iptables 将 0x10 和 0x08 ToS 分配给各自的客户端来创建相同的场景。我用过: iptables -A PREROUTING -t mangle -p tcp --sport 5000 -j TOS --set-tos 最小化延迟

我仍然无法将一个客户优先于其他客户。虽然我可以在wireshark中看到标有ToS的数据包。

我正在使用 Ubuntu (14.04) 和 iptables 版本 1.4.21

相关内容