如何为 WiFi 客户端构建连接槽

物联网 无线上网
2021-06-02 08:08:40

假设我们有数百个 WiFi 客户端假装连接到单个路由器。客户端上的固件是可修改的。

我知道路由器一次只能处理几十个客户端。因为我需要最小化每个客户端可以成功连接的时间,所以我正在寻找一种方法来最小化重试。

一种想法是:

  1. 开机时,每个客户端都尝试连接(但实际上只有少数客户端可以连接)
  2. 交换数据后,他们向服务器说“再见”,但在断开连接之前,它会在几秒钟内发送下一个连接槽(即 150 秒后重试)

问题:

  • 要发送一个可靠的时间间隔,服务器应该知道现在有多少客户端处于活动状态,而它无法知道这一点(机器根据用户的要求打开/关闭)
  • 为了克服这个问题,我们可以假设所有设备都处于活动状态,但当然根本没有优化!
  • 无论如何,我估计:连接 4-5 秒(最佳场景)+ 1 秒交换数据 + 1 秒断开连接。因此,如果每个设备保持一个插槽繁忙,例如 7 秒,并且路由器可以处理 50 个客户端,在最佳情况下,200 个客户端可以在大约 30 秒内循环……对于理想的要求来说有点太高了。
1个回答

不要忘记 DHCP 租用期限。一个典型的路由器可能只有 100 个,可能少于 254 个可用 IP 地址,具体取决于 DHCP 服务器的配置方式。当新客户端(WiFi 或有线)连接时,IP 地址会被租用给设备的 MAC 地址。该租约是为 DHCP 租用时间保留的。

您需要将 DHCP 租用时间设置为比默认值短(通常在 15 分钟到一周之间)。最佳持续时间可以是最长连接的预期持续时间的至少两倍。DHCP 协议要求客户端在剩余持续时间的一半时开始更新租约。

如果您发现最短租用时间足够长,以至于您必须为每个连接的设备拥有一个唯一的 IP 地址,请确保您打开了足够大的地址范围,并且您的路由器(通常包括 DHCP 服务器)可以处理同时分配的数量。

所以总结一下,到处都有限制。您的问题侧重于 AP(接入点)将支持的同时 WiFi 链接的数量。您还应该检查您的 DHCP 服务器(通常是路由器的一部分)可以服务的 DHCP 分配数量。

我根据我对家庭WiFi网络和物联网设备收集的经验,将AP和路由器/DHCP服务器的功能分开。我有 5 个“路由器”。Fourare 仅用作接入点。一个启用了 DHCP 服务器,但禁用了 WiFi。通过使用单个 DHCP 服务器,我的 IOT 设备在设备穿过房屋或访问条件发生变化时保持相同的 IP 分配。

为了分配客户端的负载量,您可以按照您的建议使用智能协议,其中为每个连接提供重新连接时间。您还可以使用固定重新连接周期的方案,并且周期中的阶段由 MAC 地址上的散列值确定。这样,每个设备都知道要做什么,负载适度均匀地分布,并且不需要中央控制算法或协议更改。