考虑一个 LoRaWAN,其中多个节点连接到网关。link-labs 上的页面指出,一旦发送了消息,就不会确认收到。但是,LoRaWAN 中的节点可以请求确认。当请求确认时,云选择网关在固定时间进行响应。但是,当该网关传输回节点时,它停止侦听其他所有内容。所以如果一个应用程序需要大量的确认,它很可能会花费更多的时间来传输确认而不是监听,这最终会导致网络崩溃。
那么有没有办法避免这种崩溃呢?
考虑一个 LoRaWAN,其中多个节点连接到网关。link-labs 上的页面指出,一旦发送了消息,就不会确认收到。但是,LoRaWAN 中的节点可以请求确认。当请求确认时,云选择网关在固定时间进行响应。但是,当该网关传输回节点时,它停止侦听其他所有内容。所以如果一个应用程序需要大量的确认,它很可能会花费更多的时间来传输确认而不是监听,这最终会导致网络崩溃。
那么有没有办法避免这种崩溃呢?
正如您在问题的措辞中正确指出的那样,网关用于传输 LoRaWAN 下行链路消息的时间是非常昂贵的网络资源。在实践中,应用了几种技术来保持网关在发送下行链路消息上花费的时间较少:
在 LoRaWAN 网络中,任何设备都可以请求确认,但默认情况下,完全取决于“网络服务器”来决定是否发送确认。高效 LoRaWAN 网络管理的规则不是 LoRaWAN 规范的一部分,取决于编码、配置和操作网络服务器的人员的专业知识。LoRaWAN 规范只给你命令、规则和杠杆来采取行动。
例如,可以通过以下方式避免网络崩溃或显着降低性能:
对于许多简单的情况来说,“天真的”网络已经足够了,但是如果您想要可扩展性、可靠性和一些对攻击的免疫力,您必须超越大多数 LoRaWAN 网络服务器的“开箱即用”。这也不是火箭科学,我们谈论的是良好的实时指标、Python 脚本和一些人工监督:)
如果网络上运行的应用程序对每个下行链路都需要 ACK,那么它可以选择下行 CNF 消息。
终端设备可以在进一步的上行链路中搭载应用程序有效载荷和 ACK 位。这可以在终端设备所需的时间间隔内完成。