UDP 广播在某些路由器上不起作用?

UDP 广播在某些路由器上不起作用?

我有一个在移动设备上运行的游戏,我使用 UDP 广播将两个设备连接在一起,同时进行收听和广播。在大多数家庭 WiFi 网络上,这种方法运行良好(企业网络则不同)。然而,在其他网络上,设备之间就是找不到对方。

我不太了解家庭网络,不知道为什么会出现这种情况,但我很想知道一些可能的原因,这样我就可以为遇到此问题的人们提供一些可能的解决方案。

答案1

有很多原因导致廉价的 802.11 设备上的多播(包括广播)不可靠。

多播支持是 802.11 协议中一个很难实现的部分,许多实施者都会犯错,他们的 QA 团队也未能发现。它与 WPA/WPA2 和 802.11 省电模式的交互方式使其变得更加棘手。它也不会被确认,因此必须以较低的数据速率(简单调制方案)发送,以帮助客户端更可靠地接收它。

可以尝试以下操作:

  • 在 AP 上禁用“客户端隔离”。
  • 禁用 WPA;仅使用纯 WPA2。
  • 调整 AP 上的多播速率,使其足够低以便每个人都能收到它们,但不要太低以至于占用太多的广播时间并开始丢失。
  • 将 AP 上的 DTIM 间隔降低至 1。
  • 确保您的多播接收器正确执行 IGMP。否则,请在 AP 上禁用 IGMP 侦听。
  • 将您的客户端移近 AP。
  • 选择一个更清洁的渠道。
  • 在 802.11 驱动程序的高级驱动程序属性中禁用 802.11 省电模式。除此之外,请考虑使用交流电源运行客户端(某些客户端在不使用电池时不太可能使用省电模式)。
  • 这是一个极端的措施,但请尽量确保所有客户端都在同一 AP 的同一频段上。这可能需要将每个 AP 的每个无线电配置为使用不同的 SSID。
  • 升级到更好的 AP 固件,即使这意味着像 LEDE 这样的 Linux 路由器发行版。
  • 购买具有良好处理多播声誉的更好的设备,如 Apple AirPort 基站和其他 Apple 产品(Bonjour,即多播,是 Apple 生态系统中非常重要的协议,因此 Apple 几乎总是能做对)。

欲了解更多信息,请参阅此处:为什么有些 WiFi 路由器会阻止从有线到无线的多播数据包? (该答案是针对有线到无线的情况编写的,但也适用于无线到无线的情况。)

相关内容