对于用于连接 50 台设备进行点对点通信的无线接入点,我应该寻找哪些特性?我最关心的是所有设备是否保持可靠的连接并可靠地传送数据包。
我的要求:
- 1 个大房间,几乎没有障碍物
- 每台设备吞吐量 100KB/s,所有设备同时使用
- 可靠的 Wi-Fi 连接(发送失败会暂停整个应用程序,直到所有设备赶上)。
- 混合 802.11 g/n
当一台设备发布信息时,其他大部分设备都会立即收到该信息。信息通常为 10KB 到 100KB。所有设备上的发布峰值为每秒 5 条。
答案1
[免责声明,我在得到上述澄清之前写了这个答案。我需要根据我更好的理解重写这个答案,但现在我保留原样,以防它帮助其他正在为 50 对等多播协议设计 Wi-Fi 网络的人。]
注意多播/广播和 Wi-Fi 不要混合
这可能不是您要寻找的答案,但这可能是您需要考虑的最重要的事情。
在有线以太网上,尤其是使用交换机时,多播比单独的单播成本更低。但在无线以太网 (Wi-Fi) 上,多播和广播不会获得链路层确认,因为这会导致每个多播都产生难以处理的确认风暴。因此,多播必须以足够低的数据速率发送,以确保该 AP 的每个客户端都能可靠地接收它们(较低的速率通常是更简单的调制,在更远的距离或更嘈杂的环境中更可靠地接收)。这意味着多播数据包往往会占用多次比相同大小的单播数据包具有更多的空中时间(带宽)。
2.4GHz Wi-Fi AP 默认以 1 兆比特/秒的数据速率发送多播是很常见的。如果我正确理解了您的带宽要求,这将略小于您的协议所需带宽的四分之一(假设您的协议使用多播,听起来它可能确实如此)。
因此,您需要确保将 AP 配置为在发送多播时至少使用 5.5 mbps 的速率,或者可能更高。您还需要确保所有设备都在接收范围内,以可靠地接收该数据速率(在一个没有障碍物的大但不大的房间里可能不难)。
哎呀,我差点忘了考虑 BSS 内中继。当使用 Wi-Fi 和 AP(而不是“IBSS”又称“Ad-hoc”模式)时,AP 会将所有传输从一个无线客户端中继到另一个。这允许网络覆盖更广阔的区域,因为客户端不需要都在彼此的范围内,它们只需要在 AP 的范围内。因此,您的 4+ mbps 数据将以单播数据速率从发送客户端发送到 AP,然后由 AP 以多播速率中继。因此,如果在一个一秒的峰值期间,发送五个 100 KibiByte 传输的客户端恰好都在网络边缘,它们只能保持每秒 5.5 兆比特的数据速率,这意味着需要将近整整两秒钟才能将所有“一秒峰值”的数据多播到所有客户端。所以,5.5 mbps 的数据速率对您来说也不起作用。将 12 mbps 数据速率作为您的多播速率,并确保您的所有客户端都在“12mbps 范围内”。
因此,请确保您的 Wi-Fi 允许您设置发送多播的速率。有些 AP 允许您明确设置,而其他 AP 可能从其他设置中得出多播速率。例如,如果它允许您设置基本速率(即所需速率),它可能会选择最低的基本速率作为多播速率。或者,如果它允许您禁用 802.11b 速率,它可能会选择最低 G 速率(6mbps)作为多播速率。Apple 的 AP 倾向于让您通过模糊的低/中/高规则设置多播速率,这里有一个解码器表: 如何在 Apple AirPort Extreme 上设置多播速率
其他需要考虑的事情:
确保您的应用层协议能够处理重传需求,因为 Wi-Fi 上的多播不能保证是可靠的。计算带宽(以及多播速率)需求时,请考虑平均重传率。
确保使用干净的信道。我的多播速率计算假设信道非常干净。如果其他附近的用户让信道保持繁忙,比如说,一半的时间,那么你需要将多播速率至少提高到我之前计算的两倍。
一些较旧的 AP 宣传 50 个客户端限制,因为它们的硬件对它们可以跟踪的单个客户端单播密钥数量有限制。有些 AP 对此有硬性限制,但其他 AP 使用软件来处理比硬件可以处理的密钥更多的密钥,但因此会稍微影响性能。这可能不是您的情况的问题,但如果您在同时连接 50 个客户端时遇到任何问题,并且您一开始启用了 WPA2(或 WPA),请尝试在不启用任何无线安全的情况下进行连接。
如果您需要 WPA2(或 WPA)安全性,请尝试防止客户端设备进入系统休眠状态或以其他方式离开网络。每次客户端离开时,都必须更改组密钥(用于加密多播/广播数据包的密钥)。这需要大量的网络活动,这会占用您可用于多播的广播时间。它还会延迟所有后续多播,直到所有剩余客户端都确认收到新组密钥,并会导致 AP 断开任何未能确认收到新组密钥的客户端的连接。当这些被抛弃的客户端重新连接到网络时,这将导致更多小规模的活动。