使用linux tc命令控制udp流量

使用linux tc命令控制udp流量

设置:客户端笔记本电脑 (mac) 无线连接到 Wi-Fi 路由器(带有 dd-wrt ​​固件的 atheros NIC)。服务器(Linux)通过以太网接口直接连接到路由器。现在我正在使用 iperf3 测试吞吐量;

在服务器上

iperf3 -s

在客户处

iperf3 -R -c 192.168.1.121 -t 60 -b 50M

也就是说,客户端正在从服务器下载(使用-R选项)。这是 TCP 流量(具有 Reno 拥塞控制)。这样我就获得了预期的约 50 Mbps 的连续吞吐量。拥塞确实在随机时间存在,这使得那些时刻的吞吐量下降。这很好。现在我试图控制从 Wi-Fi 路由器到客户端(即 Wi-Fi 出口端口)的流量。为此,我使用 Linux 的 tc 实用程序。

在 Wi-Fi 路由器上:

tc qdisc add dev ath0 root tbf rate 5mbit burst 32kbit latency 400ms

一旦执行,吞吐量就如预期降至 5Mbps。

问题:如果我使用 UDP 而不是 TCP:

iperf3 -R -c 192.168.1.121 -t 60 -b 50M -u

生成 UDP 流量的选项-u也可以正常工作。但是,当生成相同的 tc 命令来控制流量时,UDP 吞吐量会下降至 0 Mbps。当 tc qdisc 控制被删除时,它只能恢复到 50Mbps。

可能的原因是什么?

相关内容