LwM2M和CoAP及它们之间的关系

举报
Jasonchenbj 发表于 2020/07/29 18:23:34 2020/07/29
【摘要】 在物联网应用开发中,进场会碰到LwM2M和CoAP,有时会会不知道选哪种合适。例如当出现LwM2M/CoAP这种配合时,可能会想这种连接方式到底是用LwM2M还是用CoAP,我的设备开发时,选LwM2M与物联网平台连接呢?还是选择CoAP与物联网连接呢?要弄明白这些,需要对LwM2M和CoAP是什么以及它们之间的关系有一些了解。1. LwM2M-Light Weight Machine to...

在物联网应用开发中,进场会碰到LwM2M和CoAP,有时会会不知道选哪种合适。例如当出现LwM2M/CoAP这种配合时,可能会想这种连接方式到底是用LwM2M还是用CoAP,我的设备开发时,选LwM2M与物联网平台连接呢?还是选择CoAP与物联网连接呢?要弄明白这些,需要对LwM2M和CoAP是什么以及它们之间的关系有一些了解。

1. LwM2M-Light Weight Machine to Machine

LwM2M是一种主要用于设备管理方面的应用层通信协议。通信一些采用了服务器和客户端的架构,即Server/Client。客户端通常是在设备端。设备端的资源通常是有限的,例如一个基于STM32F407的嵌入式设备,它的计算资源相比普通PC、服务器来说是比较少的,所以说是有限的。因此,LwM2M采用了轻量的、紧凑的通信协议以及有效的资源的数据模型。适合用于设备管理以及设备与设备之间的通信。如下是它的架构图。

1596017970501054314.png

从架构图中可以看出,它主要包括服务端和客户端。接入物联网的设备属于客户端,物联网平台属于服务端。协议定义了服务端和客户端之间通信的4个接口,即启动引导接口、客户端注册接口、设备管理和服务使能接口、信息报告接口。在它的规范书中对这四个接口的具体功能、含义、需要实现的函数、函数的功能及参数等多级做了具体的说明。

在架构图中,可以看到其用到的协议栈。通常协议栈是按功能分层的。要实现协议规定的应用层内容,需要用到的协议栈,如下图所示。

1596018004322086753.png

协议栈是分层的,通常底下的层是上面层的基础。没有地下层就无法实现上面的层。那么从这里我们可以看出LwM2M是建立在COAP上层的应用层协议。没有CoAP就无法实现现在的LwM2M。

2. CoAP-Constrained Application Protocol

CoAP是一种专门应用于资源有限的网络中,或者资源有限的网路节点上的网络传输协议。这里的资源有限的网络节点,可以理解为要接入互联网中的设备。这些设备接入互联网之后,就是属于网络中第一个节点了。物联网中的很多设备的计算资源都是有限的。协议设计指出也是为了机器与机器之间的通信。例如智慧能源或者智能楼宇中的设备之间。

CoAP实现了一种请求/响应式的机器与机器之间交互的协议。从逻辑分析上看,CoAP可以看成只有两个层,即消息层和请求/响应层。

1596018043209043362.png

CoAP协议主要定义了CoAP的消息的头部内容。通常消息的头后面就会有消息要传递的数据信息。这一部分有时称为消息要传输的payload。

3. LwM2M和CoAP的不同之处

根据上述的分析,可以总结如下的不同

1)两者是处在不同层上的通信协议。LwM2M是应用层的协议,它的实现需要传输层的CoAP来实现。

2)CoAP是传输层的协议,没有LwM2M,对于使用CoAP是没有影响的。但是,这是就需要交互的双方自己定义应用层的协议了。

3)一个设备具有LwM2M协议,要与物联网平台对接,那么平台也需要支持LwM2M协议。

4)一个设备只有CoAP协议,要与平台对接,那么就需要平台提供通过CoAP协议与该设备对接的具体协议方法。如果平台只提供通过LwM2M协议用于设备接入,那么只具有CoAP协议的设备是无法接入都平台的。不过,LiteOS提供了端云通信组件,该组件实现了LwM2M协议,可以应用该组件实现LwM2M协议,实现与IoTDA的对接。

可以参考如下的端云互通组件的系统方案

https://support.huaweicloud.com/sdkreference-LiteOS/zh-cn_topic_0147911498.html

4. 总结

简述了LwM2M和CoAP协议,并比较了两者之间的区别,尤其是接入物联网平台,两者的区别。为大家顺利接入IoTDA平台,提供参考。

大家在应用过程中,发现问题,欢迎提问讨论分享。



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。