【问题标题】:IoT device with CoAP and NAT Traversal具有 CoAP 和 NAT Traversal 的物联网设备
【发布时间】:2018-03-16 05:41:40
【问题描述】:

上下文:每个客户可以在 NAT 后面拥有 100-1000 个 IoT 设备。我们有多个客户。目的是从外部管理这些设备。设备使用 CoAP 协议,默认使用 udp。

限制很少。

  • 无法激活端口转发。
  • 无法打开 VPN 连接。
  • 不可能对 IoT 设备的本地网络进行任何更改。

问题 我们希望随时打开与外部设备的连接。但是有 NAT 可以阻止它。

选项 据我了解,设备必须打开初始请求才能进行通信。

在可扩展性和效率方面,以下哪个选项是最佳选项?

  1. 每个节点都会发送 udp ping 以保持 NAT 连接打开。
  2. 每个节点都使用 TCP 并发送 keepalive 以保持 NAT 连接打开。
  3. 每个节点都通过 udp 与 NAT 后面的本地代理通信。代理会从 coap 映射到 http。代理通过 TCP 建立与服务器的连接,并发送 keepalive 以保持 NAT 连接打开。
  4. 与选项 3 相同,但本地代理使用 WebSocket 而不是普通 TCP。

非常感谢

【问题讨论】:

    标签: tcp iot nat coap


    【解决方案1】:

    官方 LWM2M 对此的回答是排队模式,有关更多信息,请参阅https://www.slideshare.net/OpenMobileAlliance/oma-lwm2m-tutorial-by-arm-to-ietf-ace 的幻灯片 30 或https://mbed-media.mbed.com/filer_public/c1/c3/c1c35bec-5f0e-4a28-a422-115248c9a181/armmbed-lwm2m-webinar.pdf 的幻灯片 19。所以建议的解决方案没有列在上面的 1. 到 4. 之下,而是使用 LWM2M 协议以注册更新的形式发送“ping”。

    从安全角度来看,如果您部署到公共互联网,我建议:

    a) 您必须使用 DTLS

    b) 您应该支持设备固件更新并能够非常快速地部署带有补丁的新固件。

    个人观点:LWM2M 是从物联网设备是服务器的(错误)想法开始设计的。

    【讨论】:

    • 你为什么说“LWM2M 是从物联网设备是服务器的(错误的)想法开始的设计破坏的”? OMA 规范说 LwM2M 客户端是驻留在 LwM2M 设备中的逻辑组件。所以该设备有​​一个 LwM2M 客户端,而不是一个 LwM2M 服务器。 OTOH,对于 CoAP 可以这么说。 CoAP 假设设备是服务器端。
    • @yeniv 我知道的所有 LWM2M 项目(包括 OMA Test Fest)都有一个设置,其中物联网设备“侦听”端口以接收传入数据。从纯粹的技术角度来看,我称之为“服务器”。请注意,这也是上述原始问题的根本原因。我假设您所指的文档使用了与“服务器是一台大型计算机”中的服务器不同的含义。
    • @StefanVaillant 我同意您将任何设备视为“服务器”的观点。我的建议是不要尝试将 LwM2M 融入客户端-服务器模型。更多地考虑它是​​对等的,其中任何设备都可以是服务器和客户端。如果我们尝试在 IoT 环境中将设备映射为服务器和客户端,这将是一个瓶颈。只是我的想法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多