一个WiFi路由器可以连接多少台机器?

物联网 ESP8266 无线上网 路由器
2021-06-23 17:56:47

我有 10,000 台机器(用来制作黄麻袋),每台机器需要每 2 秒向远程服务器发送一次数据。数据包括机器 id、机器状态和从不同传感器收集的各种其他信息。

我已经成功地将 ESP8266 WiFi 模块与机器集成。它收集所有必要的数据,并将其传输到路由器,然后路由器使用互联网将数据发送到我的远程服务器。作为对工厂管理层的演示,我成功发送了 10 台机器的数据,每 2 秒一次。

但是现在,我必须为 10,000 台机器做同样的任务。

我完全不知道我需要多少带宽以及我可以连接到单个路由器的多少台机器?

如果我的问题似乎不完整,请随时问我更多问题。

1个回答

我们缺乏相当多的数据,但让我们运行一些数字。

  • 如果每条消息大约 1000 字节,那么 10K * 1000 * 8 / 2 = 40 Mbit/s。甚至不考虑 Wi-Fi 部分,这是相当多的上行带宽。

  • 如果每条消息接近 10 K 字节(如果您将每条消息作为其自己的 HTTPS 请求结束而没有保持连接或 TLS 会话缓存,则很有可能),那么我们将达到数百 Mbit/s。

  • 如果您设法保持在 100 字节以下(如果您在现有套接字或 Websocket 中发送短消息,则可能会降低),降低到几 Mbit/s。更合理但仍然相当多的流量。

还要考虑那些每 2 秒发送 1 条消息的 10K 设备意味着您的服务器每秒接收 5K 条消息。如果服务器只是将它们转发到另一个连接,那很好。如果您存储在数据库中,我们说的是数千 IOPS。到目前为止,使用体面的 SSD 支持的存储并非不可能,但当然不是在普通的单个 HDD 上。

还请记住,如果每条消息的磁盘上的数据大约为 1 KB(如果您包含索引等,则很有可能,根据您的数据库架构可能更多),您每天写入 10K * 1024 * 86400 / 2 = 442 GB !

但是让我们考虑对上游和服务器部分进行排序。

您永远不会在单个 AP 上运行 10K 台设备。这是不可能的。大多数“消费者”接入点会阻塞几十个设备。在最好的条件下(在多个频段上使用多个无线电),最好的将停止在几百个。这只是为了维护状态、密钥等,我们甚至还没有讨论设备之间的通信。

ESP8266 仅在 2.4 GHz 频段运行。那个乐队很小,也很忙。我们将考虑“大多数国家”的情况(美国有更多限制)。您在 802.11b 中只有 3 个非重叠信道,在 802.11g/n 中只有 4 个非重叠信道,频率为 20 MHz。

我认为单个 AP 上的 2.4 GHz 设备不会超过 100 台。所以我们已经达到了 100 个 AP!

但是由于只有 2 到 4 个非重叠信道,相邻设备和 AP 之间的干扰风险可能太大而无法可靠运行。

请记住,Wi-Fi 引用的速度(ESP8266 最大为 72 Mbit/s)只是原始流数据速率。它们没有考虑开销、前导码、ACK、RTS/CTS 帧、保护间隔、帧间空间、冲突、重传……当发送非常短的帧时,开销可以很快使用绝大多数的通话时间,所以你无法将 72 Mbit/s 与上面引用的 40 Mbit/s 进行比较。

还要记住,您将(至少)拥有 TCP ACK,并且 802.11 是半双工的。

在这种规模下,我不确定正确的解决方案是什么。我的第一直觉是以太网(可能还有 PoE),但这是一个庞大的设置(需要相当多的交换机和相当多的电缆)。

一个可能更好的选择是让一个带有传感器的 ESP8266 用于多台机器以减少设备数量,但我不知道这是否适用于您的情况。