限制 NIC 速度可提高视频质量

网络工程 UDP 数据包丢失 流媒体 视频
2022-02-13 02:51:59

我有两个工作站 A 和 B 以 1Gbps 的速度连接到同一个 L3 交换机。工作站 A 以10Mbps数据速率生成 MPEG2-TS UDP 视频流。工作站 B 正确接收此流。交换机通过 100Mbps 端口连接到边缘路由器。

位于专用 WAN 另一端的工作站 C 接收到质量较差的视频流:图像的前 N ​​行质量良好(N 随机变化),其他行遭受严重的像素块。WAN 链路容量为 20Mbps。

前 N 行总是质量很好的事实让我认为这不是随机丢包。但是我完全不明白为什么 10Mbps 的流可以使 20Mbps 的链路饱和。

令我惊讶的是,将工作站 A 上的 NIC 限制为 100Mbps 后,工作站 C 可以正确接收和显示视频流。为什么?

2个回答

造成这种情况的可能原因是交换机中的小缓冲区以及视频流应用程序的不良设计。

视频流应用程序很可能不会发送有节奏的数据包流,而是一次将整个帧的数据包传递给操作系统。客户端操作系统和边缘路由器中的缓冲区足够大来处理这个问题,但交换机中的缓冲区却没有。

工作站 A 以 1Gbps 的速度将数据包突发发送到交换机,但交换机只能以 100MBps 的速度将其发送到边缘路由器。交换机中的缓冲区太小,无法处理突发,因此数据包会被丢弃。

将工作站 A 上的链路降至 100Mbps 意味着数据包不再堆积在交换机上,因为输入和输出端口以相同的速度运行。

您应该能够通过查看交换机上的帧丢失计数器来确认这一点。

有几种可能性:

  1. 工作站 C 的电缆会导致错误 = 以千兆位速度丢帧或使用所有双绞线。在负载下全速检查工作站的错误计数器。您可以检查任一侧的 1000BASE-T,因为对是双向使用的。

  2. 在通往工作站 C 的路上存在拥塞或缓冲问题。检查路由器和交换机之间的错误/拥塞。

  3. 存在设置问题(巨型帧、MTU 不匹配或错误检测)。