【发布时间】:2016-10-08 02:18:28
【问题描述】:
想法: 我们有一个成像系统,它产生大约 200-300 Mb/s 的数据,目前通过以太网电缆传送到计算机,计算机解压缩并显示实时图像。
我们正在尝试通过让系统通过以太网电缆将数据包传递到路由器来通过 LAN 使系统无线化,然后路由器会将 udp 数据包广播到计算机(或最终多台计算机)。
在最高级别看起来有点像这样:
之前:成像设备 -> cat-5 -> 计算机 (在高达所需的 300 Mb/s 时工作正常)
之后:成像设备 -> cat-5 -> 路由器 -> 802.11ac 无线 -> 计算机 (超过 5Mb/s 的巨大 (50%+) 数据丢失)
-电脑:surface pro 3
-路由器:A Buffalo AirStation AC 1750 DD‑WRT 无线固件:DD-WRT v24SP2- (03/24/14) 标准
问题: 当我们连接系统时,我们发现当我们将带宽提高到超过 5Mb/s 时,丢包开始增加,路由器的 GUI 变得无响应。
知道问题不太可能出现在任何一端,我们尝试通过各种方式配置路由器设置、禁用防火墙、降低 UDP 超时等以提高性能。在事情迅速恶化之前,我们能够找到的最佳配置使我们达到了大约 7Mb/s。
惊喜: 当我们用第二台计算机更换成像设备并进行简单的文件共享测试时发生了这种情况。在使用 2.4GB 文件进行文件共享测试(Windows 计算机 -> cat-5 -> 路由器 -> 802.11ac 无线 -> Windows 计算机)时,我们发现传输速度高达 300 Mb/s,并且路由器GUI 也没有冻结。
据我们所知,唯一的变化是通信类型和数据包大小。由于在 FPGA 上实现 TCP 的复杂性以及我们打算最终允许 LAN 上的数据有多个端点,我们认为 UDP 广播(1092b 大小的数据包)会起作用。根据wireshark 的说法,另一个测试设置是使用TCP(1514b 大小的数据包)。
问题: 为什么路由器能够处理吞吐量为 300Mb/s 的 TCP,但无法处理超过 10Mb/s 的 UDP 广播?关于如何在 LAN 上配置系统/路由器以实现高 UDP 吞吐量的任何想法或建议?
其他说明:
路由器距离计算机大约 5 英尺,在这两种情况下都在 5Ghz 上传输 80Mhz。
更新:
按照建议,我尝试测试通过 LAN 端口通过以太网连接系统是否可行。这样我就可以达到 150Mb/s。 (成像系统->以太网(LAN口)->路由器->以太网(LAN口)->Surface pro 3)
这表明问题出在路由器上,位于无线天线和 LAN 端口之间。关于 UDP 数据包如何在内部移动以进行广播的一些事情正在减慢该过程。这又很有趣,因为 TCP 数据包从 LAN 流向无线网络就好了。有什么想法吗?
【问题讨论】:
-
在 Wi-Fi 上使用广播和组播(一种广播形式)时,只会在 WAP 上以最低速度发送。
-
你能把无线部分排除在外来检查瓶颈是否存在吗?
-
@cnicutar 感谢您的评论,我已经更新了帖子以反映我尝试通过路由器进行 LAN 到 LAN 连接,它似乎工作得很好。知道为什么将 UDP 数据移动到无线端口会有问题吗? (我不认为这是连接的无线部分,因为 A:理论上的限制要高得多,B:我能够在同一无线连接上使用 TCP 获得 300Mb/s 的吞吐量)
-
其实跟 TCP 或 UDP 没有关系。问题是 Wi-Fi 将以 WAP 的最低速度发送广播。您无法以最高 Wi-Fi 速度发送广播。例如,如果您的 WAP 的最低速度为 1 Mbps,但网络名义上以 100 Mbps 运行,则广播将以 1 Mbps 的速度发送。广播并不是最好的处理方式,IPv6 已经淘汰了广播,所以使用广播的代码将不适用于 IPv6。
-
您唯一能做的就是将 WAP 上的最低速度设置得更高。并非所有设备都支持此功能,您最终可能会阻止某些客户端。如果您需要执行广播之类的操作,则最好使用多播。组播同时兼容 IPv4 和 IPv6,不会中断不需要接收流量的客户端,而广播会中断 LAN 上的所有设备,包括网络设备。会出现与在 Wi-Fi 上广播相同的问题,但这是 Wi-Fi 的限制。
标签: networking tcp udp bandwidth-throttling