基于 CoAP 协议的连接¶
设备开发者可以通过 CoAP/UDP 协议,将设备采集的实时数据上报到 EnOS,借助 EnOS,实现海量设备的安全连接和数据管理能力。NB-IoT 设备接入 EnOS 的流程如下图:
设备端集成设备认证密钥(ProductKey、DeviceKey和DeviceSecret)。
设备通过运营商提供的 NB-IoT 网络连接到 EnOS,运营商负责管理设备产生的流量数据和计费,不储存业务数据。
应用开发者可以通过 EnOS 的 API 获取设备数据、修改测点属性、调用设备服务,并将获取的数据呈现在应用中。
CoAP 协议标准¶
EnOS 支持的协议标准为 RFC 7252 Constrained Application Protocol,具体参考:RFC 7252。
EnOS CoAP约定¶
支持可确认请求(CON
),响应会以 Piggybacked
形式在 ACK
消息中返回。
实现了 RFC 7252 协议规定的 CoAP 缓存功能,因此要求设备对于每一个新的请求,使用不同 CoAP Message ID 和 Token。
EnOS 支持 CoAP 协议中的 Block-wise 传输功能,具体参考:RFC 7959。
DTLS 安全通道¶
设备请求连接到指定的 CoAP 服务器,然后建立 DTLS 安全通道。连接过程主要步骤如下:
设备首先发送 DTLS 握手请求;
设备端和 EnOS 根据预定义的算法协商PSK参数;
设备端发送 pskid 和 len 参数到 EnOS 进行校验,成功后建立安全连接通道。
建立安全通道之后,设备发起身份认证请求,如果采用加密方式,此步骤可与上一步DTLS握手合并;如果采用非加密方式,则采用密钥认证方式,支持选择一机一密和一型一密,如果采用后者需先返回 devicesecret 再认证。
EnoS 使用 DTLS v1.2 保证通道安全,具体参考:RFC 6347。
说明与限制¶
当设备通过 CoAP 协议接入 EnOS 时,Topic 规范和 MQTT Topic 一致,CoAP 协议内接口对于所有 topic 和 MQTT Topic 可以复用。
EnOS CoAP 接入目前不支持资源发现功能,不支持资源观察功能。
通过 CoAP 传输数据的大小依赖于 MTU 的大小,建议在 1KB 以内。
下一步¶
参考CoAP 协议规范将设备接入 EnOS 并复用 MQTT topic 与 EnOS Cloud 进行数据传输。