这通常是由于Wi-Fi家庭网关路由器(AP)中的错误,或者有时是无线客户端芯片组/驱动程序/软件中的错误。
在Wi-Fi上,将多播从AP发送到无线客户端(这在标准中称为“来自分发系统”或“FromDS”)是棘手的,因此有很多方法可以失败,并且很容易介绍错误。
- 即使无线电介质不够可靠,802.11单播要求具有链路级别确认(ACK),并且如果没有ACK则多次重传,FromDS多播永远不会被确认,因为它们需要被所有无线客户端确认AP,这可能是一个“ACK风暴”。因此,必须以低数据速率发送FromDS多播; 使用更简单,更慢,易于解码,甚至低信噪比的调制方案,有望AP的所有客户端可靠地接收。有些AP允许管理员设置多播速率,一些管理员无意中将其设置得太高,以至于某些客户端无法可靠地接收,打破了向这些客户端的多播传输。
- 当使用WPA(TKIP)或WPA2(AES-CCMP)加密时,必须使用所有客户端都知道的单独加密密钥对FromDS多播进行加密(这称为组密钥)。
- 当客户端离开网络时,或者每隔一小时左右,只需要进行更好的测量,就需要更改组密钥,以便不再具有解密多播的客户端。这种“组密钥轮换”过程有时会出现问题。如果客户端未确认收到新的组密钥,则AP应该对该客户端进行解除身份验证,但如果由于错误而无法执行此操作,则客户端可能具有错误的组密钥,因此“聋” “没有意识到多播。
- 当启用WPA2“混合模式”时(即,同时启用WPA和WPA2时),FromDS多播通常必须使用TKIP密码进行编码,以便所有客户端都能够知道如何解码它。
- FromDS多播必须由AP排队,并且仅在所有关心多播的客户端可以预期其接收器通电时发送。“安全传输FromDS多播”时段之间的时间称为“DTIM间隔”。如果AP或客户端搞砸了DTIM间隔处理,则可能导致客户端无法可靠地接收多播。
- 一些AP具有使无线客户端无法直接相互通话的功能,可能会使您的无线客户无法攻击其他无线客户。这些功能通常会阻止从WLAN设备到其他WLAN设备的多播,并且可以以简单的方式实现,甚至可以阻止从LAN到WLAN的多播。
疯狂的是,“ToDS”多播就像ToDS单播一样,因此它们很少会破坏。由于ToDS多播(不是FromDS多播)是无线客户端获得DHCP租约和ARP以查找其默认网关时所需的全部内容,因此大多数客户端都能够连接并上网,查看电子邮件等,即使在FromDS多播打破了。所以很多人都没有意识到他们的网络上存在组播问题,直到他们尝试做mDNS(又名IETF ZeroConf,Apple Bonjour,Avahi等)之类的事情。
有关有线到无线多播传输的其他几点需要注意:
- 大多数LAN多播(例如mDNS)都是使用特殊的多播地址范围完成的,这些范围并不是要通过路由器进行路由。由于启用了NAT的支持Wi-Fi的家庭网关可以算作路由器,因此mDNS并不意味着从WAN到[W] LAN。但它应该从局域网到WLAN工作。
- 因为Wi-Fi上的多播必须以低数据速率发送,所以它们占用了大量的通话时间。所以它们“很贵”,你不想拥有太多它们。这与有线以太网的工作方式相反,在有线以太网中,多播比向每台机器“调谐到多播视频流”发送单独的单播“更便宜”。因此,许多Wi-Fi AP将执行“IGMP Snooping”来监视哪些机器正在发送Internet组管理协议(IGMP)请求,表达他们希望调谐到给定的多播流。执行IGMP侦听的Wi-Fi AP不会自动将某些类别的多播转发到无线网络,除非他们看到无线客户端尝试通过IGMP订阅该流。描述如何正确执行IGMP侦听的文档清楚地表明,即使没有人通过IGMP明确要求,也应该始终转发某些类别的低带宽多播(mDNS适合此类别)。但是,如果IGMP Snooping实施中断,在看到IGMP请求之前绝对不会转发任何类型的组播,我不会感到惊讶。
tl;博士:虫子。很多错误的机会。偶尔设计不佳的功能和配置错误。您最好的防御方法是从关注确保多播工作的公司购买高质量的AP。由于Apple非常喜欢Bonjour(mDNS),Apple的AP在可靠地传递多播方面可能是最出色的,而Apple的Wi-Fi客户端设备在可靠地接收多播方面可能是最出色的。