通过新的 WiFi 连接添加路由后的数据包延迟

通过新的 WiFi 连接添加路由后的数据包延迟

网络设置

  • STA 是 Ubuntu 18.04(4.15.0-147-generic)
  • 2 个英特尔 7620
  • 每个接口连接到同一子网中的不同AP
  • STA 使用 gstreamer 通过 UDP (~15Mbits/s) 传输 1080p 视频
  • 视频仅通过 WiFi 一个接口进行传输,所有其他流量均使用有线连接

问题

我控制哪个 WiFi 接口使用静态路由将视频流传输到每个接口的接收管道

Kernel IP routing table
 Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
<receiver IP>    _gateway        255.255.255.255 UGH   99     0        0 wlp1s0
<receiver IP>    _gateway        255.255.255.255 UGH   100    0        0 wlp2s0

在上述场景中,流量通过 进行路由wlp1s0。当我删除 的路由时wlp1s0,我看到iftop流量随后被发送过来wlp2s0

我注意到,如果我通过尚未使用的连接重新路由视频流量,则会出现一个问题,表现为视频接收管道上丢失/延迟一两个帧。以上述场景为例,我首先对两个接口进行身份验证、关联并完成 4 次握手,但 的路由的wlp1s0度量值低于wlp2s0,因此尚未发送任何数据包wlp2s0。当我删除 的路线时wlp1s0,视频中出现一个非常短的闪点,然后一切恢复正常。

奇怪的是,当我在视频中遇到这个问题并保持连接到相同的 AP 后,我可以wlp1s0重复添加和删除路由,而对视频绝对没有明显影响。我已经验证过iftop,我可以翻转哪个接口处于活动状态,并且对视频质量没有任何影响。

我看过的东西

我已wpa_supplicant以最高详细程度手动运行,并且没有相关错误/警告。我还查看了 AP 控制器日志,那里没有报告任何错误/警告。当我在视频中引发光点时使用sudo tcpdump -c 10000 -n -B 10240 -i wlp1s0也没有报告任何问题。

我还可以看什么来诊断和解决这个问题?

更新

wlp1s0我创建了一个 cgroup,其中包含新的路由表和通往视频管道目标的静态路由。我观察到,如果我wlp1s0使用以下方式推动流量

cgexec -g net_cls:cg1 iperf3 -c <receiver IP> -p 1234 -u -b 10M

就在我将路线添加wlp1s0到默认表之前,视频中没有任何斑点。我想这意味着视频中的 blips 来自陈旧的 arp 缓存?

相关内容