我正在编写一个用于控制外部设备的 API。此 API 的一部分是让设备扫描 Wi-Fi 接入点。该 API 将在多种类型的设备上实现,具有不同的内存容量。我想知道我是否可以只为找到的接入点分配一次缓冲区然后忘掉它,或者我是否需要通过动态内存分配来处理这个问题。
为了做出这个决定,我需要知道在特定区域内有多少个不同的 Wi-Fi 网络/接入点可用。
在工作时,当我进行 Wi-Fi 扫描时,我会找到 16 个不同的 Wi-Fi 网络。即使这些 Wi-Fi 网络大部分都不太好连接,我仍然希望通过 Wi-Fi 扫描找到它们。
单个区域内同时活动的 Wi-Fi 接入点是否有上限?更具体地说,单个区域内同时激活的 Wi-Fi 网络数量是否有上限?如果有,超过上限会怎样?
我尝试过的(研究)
我尝试用谷歌搜索,但似乎唯一出现的是每个接入点的设备数量限制。各种搜索(“接入点限制”、“wifi 最大接入点”)都没有给我想要的结果。
然后我尝试了不同的搜索词,试图找出 Wi-Fi 扫描的工作原理。我发现它们的工作原理是通过发送一个数据包,基本上就是说“你好”,然后监听收到多少个“你好”的回复。
这似乎表明没有上限;理论上,我可以购买许多电源板,插入许多 Wi-Fi 接入点(可能全部连接到一个大路由器,这样它们就可以连接到互联网,也可能不连接),进行 Wi-Fi 扫描并找到许多接入点,只要它们有不同的 SSID。(我不打算这样做;即使我这样做了,也无法知道我是受到协议还是扫描仪的限制。)
这是正确的吗?Wi-Fi 接入点没有上限吗?上述理论情景在实践中是否可行?
答案1
wifi 标准802.11(及其变体)不对任何给定区域中的活动 SSID 数量提供技术限制。事实上,许多较新的路由器和 AP 可以并且确实广播多个 SSID 并管理多个虚拟网络。因此,您可以在给定区域中运行并“可见”数十个甚至数百个 SSID。此外,随着新技术和频段的出现,带宽得到了更好的利用,从而使给定区域中的频谱更加拥挤而不会产生重大干扰。
如果您确实必须能够保存有关所有这些信号的信息,而不是可用的 X 个最佳信号,那么您将需要使用动态分配。
答案2
活跃 Wi-Fi 设备数量没有上限。但是,过多的 Wi-Fi 接入点 (WAP) 可能会导致某些设备由于设备限制而无法显示在您的设备上。如果两个 WAP 使用相同的信道,就会产生干扰,导致信号中断。
实际的 Wi-Fi 接入点将会工作,并且如果设备没有限制,那么您可以扫描并获取尽可能多的可用 WAP。
答案3
背景
频道
在荷兰,与大多数国家一样,频道 1 至 13 可用于 Wifi 在“标准”2.4 GHz 频段的使用,如 Wifi B、G 和 N 标准中所使用的。这似乎是 CCITT 标准。美洲(北美洲、中美洲、南美洲)的国家似乎都只使用频道 1 至 11,这似乎是 FCC 标准。我相信频道 14 在日本也可用,但仅适用于 B 和 G,不适用于 N。Wifi A 使用 5 MHz 频段,Wifi“N 双频”也是如此(与 2.4 GHz 频段并行)。Wifi A 几乎已经过时了 - 它提供 54Mb,而 B 只有 11Mb,但功率低、范围短,而且从未“流行”过 - 然后它被 G 取代,G 在 2.4 GHz 频段提供 54Mb,因此也很容易与 B 共享/兼容。
SSID
请注意,许多 Wifi 接入点可能会重复使用相同的 SSID,通常位于同一大区域,这样可以同时看到多个/多个。这不是错误,而是故意的。如果多个 WAP 具有相同的 SSID,并且它们都使用不同的密码/加密,则可能会造成严重的噩梦 - 但事实并非如此:大型组织在其办公空间周围放置多个 WAP,它们具有相同的 SSID 和相同的密码/加密,以便移动设备可以根据信号强度从一个 WAP 切换到另一个 WAP。当移动导致现有连接中断时,这将自动发生。然后,设备将尝试重新连接,通常是连接到相同的 SSID,因此选择具有相同旧 SSID 的最强可用 WAP - 它甚至不会注意到它不是同一个(通常 WAP 的 BSSID,即它的硬件或 MAC 地址,从未指定)。但是,自 2004 年推出 WPA2(安全协议)以来,设备可以在仍连接到“旧”WAP 的同时登录“新”WAP,然后切换到使用“新”WAP,退出“旧”WAP,然后再次开始寻找“下一个新”WAP。因此,移动设备可以切换到最佳可用 WAP,始终使用相同的 SSID,而不会中断正在进行的通信。这对于移动设备很重要,因为即使带宽很高,登录过程仍然相对较慢,或者可能由于某种原因(设置不正确?)而失败。因此有“预先识别”的想法。假设设备在有选择的情况下,将(首先)选择信号最强的 WAP 作为“最佳”,但也可能更喜欢孤立的 WAP(即不与其他 WAP 信号共享其信道),或者其他,然后如果/当它无法登录到第一个 WAP 时尝试其他 WAP。
重叠与碰撞
如果 2 个或更多 WAP 使用相同的信道,那么在使用上可以说存在信号重叠。但是,由于“空中”仅按需填充无线电信号,且不可压缩开销相当低(登录、保持活动握手、偶尔的广播及其回复),因此实际信号冲突可能只是有时才会成为问题。持续的大量流量(即使在单个 WAP 上)肯定会导致冲突,因此当与 1 个或多个其他 WAP 处于同一信道时,尤其是当它们具有相似或更高的信号强度时,就会丢失数据包或“掉线”。不过公平地说,如果流量过高,孤立 WAP 已经存在“掉线”的风险,因为多个客户端设备之间已经存在竞争。理论上,即使是具有单个客户端设备的孤立 WAP 也可能遭受冲突和丢失!所以这都是概率问题,结果随机且变化很大,主要是在流量大的情况下存在“掉线”的风险。相邻信道也会相互干扰,因为单个信道或“中心频率”所“占用”的实际频谱分布与两侧相邻信道重叠的程度越来越小,重叠程度大约为 4 倍(在信号强度相似的情况下,干扰在 +/- 3 时仅会下降到中等水平,在 +/- 4 时会变弱)。实际碰撞和“丢失”损失的风险是一个统计问题,与同一信道干扰相比,来自相邻信道的干扰可能性越来越小。
结论
您永远找不到任何标准或规范,规定在同一可见区域、同一频道上可以存在多少个 WAP,广告相同的 SSID 和/或任何组合。不要看,你只会浪费时间。实际上,如果流量/干扰太多,以至于 Wifi 变得不可靠,那么人们才会寻找(治愈性)解决方案。通常是通过添加更多 WAP(使用相同的 SSID)!干扰也会增加。除非客户端设备足够智能,可以始终连接到其目标 SSID 的最强可用 WAP - 然后您就可以一路笑着去银行了,因为流量将被有效共享,只要“好”信号明显强于“所有其他”信号,干扰就不会导致实际的“掉线”。逻辑表明,应该为最近相邻的 WAP 提供截然不同的信道,尽管邻居的邻居仍然可以再次使用相同的信道(想象一下由类似大小的六边形“单元”补丁组成的多色拼凑物,永远不会并排使用相同的颜色/信道 - 这就是“手机”中“单元”的由来!)
实际的答案?
我想说,您只需要关注同一 Wifi 频道上信号最强的 10 个接入点,这完全出乎意料。这样最多可以列出 130 个接入点。扫描时,您应该保留每个频道的 WAP 列表,包括一些信号强度信息,当然还有 BSSID,这样您就只保留前 10 个信号(而不是使用相同 BSSID 重复信号)。当然,您可能认为同一频道上有 10 个信号太多,也许 3 个或 5 个就足够了,或者其他(您自己决定)。或者,如果您已经有目标 SSID(也许您已经连接),那么您可能希望列出在任何找到的频道上针对同一 SSID 的少量 WAP,无论信号强度有多差,但仍然是那些具有相同 SSID 的 WAP 中信号最好的(即,对于每个频道,保留具有任何 SSID 的强度最高的 WAP 的半列表,以及具有相同目标 SSID 的最佳强度 WAP 的另一半列表)。然后,您可以明智地选择最适合您目标 SSID 的 WAP,了解同一/相邻信道上是否有其他 WAP,以及它们的相对强度。您可能需要设置一些绝对强度阈值作为“获得合理成功机会的最低值”,然后在最佳隔离和最强信号 WAP 之间寻找某种折衷方案。这样您就会很开心(在工作中也是如此)。
答案4
理论
2.4G Wi-Fi 有 11 个信道,有些国家有 13 个。但是,信道不是独立的,它们会相互干扰,因此只有 3-5 个独立的信道。同一信道上的接入点可以共存,但是,如果其中一个接入点发送大量数据,则会导致严重的速度损失,而不仅仅是共享带宽。实际损失取决于设备的质量及其配置。它们确实同意共同的时隙时间表,但实际上很难遵循,尤其是客户端。当 2 个设备同时在相交的信道上发送数据包时,两个数据包都会丢失,设备需要等待其队列重新发送它们。信道上存在旧的 WiFi 客户端是一个大问题,因为它们具有并使用不同的时间表。
请注意,Wi-Fi 设备并不是这 3 个信道的唯一用户。无线设备、DECT 电话、微波炉、汽车保护遥控器都使用相同的 3 个信道,甚至干扰更严重。我实际上知道一个案例,当一个无线鼠标被发现并关闭后,开放空间办公室的 Wi-Fi 速度提高了近 2 倍。这是一个设计非常糟糕的鼠标。当一个设备提供多个 SSID,或者一组中继器在同一个 SSID 上一起工作时,它们不会给自己造成太多干扰,因为它们同意共同的时间表。至少它们应该如此。
回答
因此,如果同一信道上有两个接入点,它们必须共享一个接入点的 15%-75% 带宽。开销取决于许多值、两个接入点的质量以及它们的客户端。我甚至不指望 3 个高负载网络能够正常工作。同一空间中非负载网络的数量没有限制,但您不应期望超过 10 个不同的设备和平共处。