在我使用的软件中,同一个“节点”需要加入一个 IPv4 多播组(以响应网络协议请求),但也需要向同一个 IPv4 多播组发送请求(以便从其他节点获得响应)。
某些 WiFi 路由器会破坏此功能。一旦在手机上运行的 Android 进程(连接到 WiFi 路由器)成功加入多播组,它将被阻止广播约 5 分钟。尝试发送请求时,程序层没有错误,但路由器似乎阻止了流量。[我证明这一点的方式:我查看了其他节点的日志,它们什么也没得到]。5 分钟后,它又开始工作了。如果我禁用组加入代码,请求就不会出现任何问题。
有趣的是,这取决于路由器。我有 2 个 TPLink 路由器,一个工作正常,一个阻塞。
- 这该如何解释?进一步调试了吗?解决了吗?
答案1
这里与设备的“交换机”部分相关。哑交换机将多播作为广播处理。智能交换机将执行 IGMP 侦听,将多播分发限制给实时订阅者。
廉价的消费级小型交换机在 IGMP 管理方面表现不佳。我会先看看这里。打开设备的管理控制台,然后查找 IGMP 设置。