【发布时间】:2018-06-03 04:37:19
【问题描述】:
最近我开始研究支持 LoRa 的设备,并注意到其中一些设备在未从网络服务器配置时无法处理情况。这在开发过程中经常发生(特别是如果 NS 也在开发中)。
这是发生了什么:
- 在网络/应用服务器上配置的 LoRa 设备。
- LoRa 设备发送 JOIN 并成功。
- 我删除了网络服务器上的设备实体,然后重新添加。这会导致删除 OTAA 期间生成的会话密钥并清理 devEUI
- LoRa 设备不断发送数据,在服务器上被拒绝。
- LoRa 设备不做任何处理并继续发送数据。
某些设备在重启后会再次发送 JOIN。但并非所有设备都可以重启!我见过的一些仪表在重新连接硬接线电池后拒绝工作!
对于设备应该如何检测/处理这种与 NS 的“断开连接”,是否有任何“通用”方法?
【问题讨论】:
-
一旦服务器返回一个JOIN ACCEPT消息,它就与设备建立了合约。您删除服务器上的设备实体只会破坏该合同。
-
“合同违约”可能由于多种原因而发生,无论是有意还是无意。无论如何,设备应该保持运行,对吗?我(到目前为止)看不到 LoRaWAN 定义了任何可以帮助检测“违规”的东西
-
设备保持运行。你只是告诉服务器它不应该再听它了。设备本身对此无能为力。如果服务器不简单地忽略它,DOS 攻击可能就太简单了。