目前在开发项目涉及到两个业务模块,一个是DM(终端业务管理),需要终端上报设备信息及周期心跳数据,传输协议涉及到LwM2M /CoAP协议;另一块是算力平台接入,需要设备上报激活、连接及周期数据,主要是平台性能特征数据;传输协议涉及MQTT协议。
在调试的过程中,学习了解下以上协议,小结如下:
协议 | 传输 | 应用场景 | 特点 |
LwM2M | 应用层协议,定义在CoAP之上 | LwM2M协议设计用于低带宽、高延迟、不可靠网络的IoT设备通信。它主要用于设备管理和设备与服务器之间的通信。 | 低延迟通信,支持DTLS,CoAP采用二进制消息格式,支持2种QoS级别;客户端与服务端一问一答,不包保持在线连接(心跳周期长24h) |
CoAP | 基于UDP/SMS | ||
MQTT | 基于TCP | MQTT协议是基于发布/订阅模式的消息协议,设计用于轻量级的消息传递,适用于各种物联网设备、服务器和移动应用。 | 可处理延迟,采用二进制消息内容编码格式(json数据),协议头紧凑传输流量小,支持3种QoS级别;客户端于服务端可保持连接(心跳周期短) |
CoAP(Constrained Application Protocol受限制应用协议)运行于UDP协议之上,设计上主要借鉴HTTP协议的RESTful风格,简化协议包格式。采用了和HTTP协议相同的请求/响应模型,客户端发出请求,服务端处理请求并回复响应;
CoAP的每一条消息都是一条二进制报文,由以下部分组成:
LwM2M(Lightweight Machine-To-Machine,轻量级M2M)其基于CoAP协议的物联网通信协议,在CoAP协议的基础上定义接口、对象等规范。
DM的注册流程如下:
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)协议运行于TCP协议之上,是一种基于发布/订阅模型的通信协议,在该模型中,需要一个代理服务器Broker,所有客户端都要和服务器建立连接并进行订阅和发布。适用多客户端之间协同通信的场景。
算力激活及上报流程如下:
开发过程使用调试工具MQTT Explorer。