• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

LWM2M,MQTT与CoAP区别和联系

夕阳接你 2019-01-09 浏览量:1098
物联网领域LWM2M,MQTT与CoAP 协议区别,使用特点与使用场景如何。
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 链接:https://www.nowcoder.com/questionTerminal/0812da2810e243688af3184e060403e9?source=relative


    1. 协议栈:
       MQTT: TCP 长链接, CoAP: UDP 低功耗短连接, HTTP: TCP  
    2.  请求方式
      MQTT: 发布订阅, CoAP: request/ response, HTTP:  request/ response

    3. 通讯消息格式:


    https://cloud.tencent.com/developer/news/19866

    • 发布于 2019-01-09
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:9
  • 这篇https://cloud.tencent.com/developer/news/19866文章说的很透彻 建议看一看
    • 发布于2019-01-09
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以参考这篇文章http://kuaibao.qq.com/s/20180112G0RSMB00?refer=cp_1026
    • 发布于2019-01-09
    • 举报
    • 评论 0
    • 0
    • 0

  • CoAP是基于UDP的,MQTT是基于TCP的,并且CoAP是短链接。

    • 发布于2019-01-13
    • 举报
    • 评论 0
    • 0
    • 0

  • 一、MQTT

    1、概述:

    MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和制动器(比如通过Twitter让房屋联网)的通信协议。

    2、主要特征:

    MQTT协议是为大量计算能力有限,且工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,它具有以下主要的几项特性:

    使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合;

    对负载内容屏蔽的消息传输;

    使用TCP/IP 提供网络连接;

    有三种消息发布服务质量:

    “至多一次”,消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。

    “至少一次”,确保消息到达,但消息重复可能会发生。

    “只有一次”,确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。

    小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量;

    3、网络资源

    官方网站

    http://public.dhe.ibm.com/software/dw/webservices/ws-mqtt/mqtt-v3r1.html

    中文翻译

    https://www.gitbook.com/book/mcxiaoke/mqtt-cn

    代理软件

    Mosquitto —— 这是最早在生产环境中可用的消息代理之一,以 C 语言编写,提供轻量级多种配置与高性能。

    Mosca —— 以 Node.js 编写,可嵌入 Node 应用或以独立可执行文件的形式运行。由于配置简单并具有可扩展性,它也是我们最喜欢的消息代理,具有高性能的优点。

    RSMB —— IBM 对 MQTT 协议的实现,也是最不常用的选项之一,不过它是一个用C语言编写的成熟系统。

    HiveMQ —— HiveMQ 是一种相对较新的消息代理,面向企业环境,在博客上有很多关于 MQTT 不错的信息。

    二、CoAP

    由于物联网中的很多设备都是资源受限型的,即只有少量的内存空间和有限的计算能力,所以传统的HTTP协议应用在物联网上就显得过于庞大而不适用。 IETF的CoRE工作组提出了一种基于REST架构的CoAP协议。CoAP是6LowPAN协议栈中的应用层协议。

    1、网络资源

    官网:https://en.wikipedia.org/wiki/Constrained_Application_Protocol

    三、Lightweight M2M

    OMA是一家国际组织,最初定义了一套 OMA-DM的协议,用来远程管理移动终端设备,比如手机开户,版本升级,等等。OMA-DM有着非常广泛的应用,很多运营生比如Verizon Wireless Sprint都有自己的OMA-DM服务并要求手机/模块入网的时候通过自定义的OMA-DM入网测试。因为物联网的兴起, OMA在传统的OMA-DM协议基础之上,提出了LWM2M协议。2013年底,OMA发布了LWM2M规范。

    OMA Lightweight M2M 主要动机是定义一组轻量级的协议适用于各种物联网设备,因为M2M设备通常是资源非常有限的嵌入式终端,无UI 计算能力和网络通信能力都有限。同时也因为物联网终端的巨大数量,节约网络资源变得很重要。

    LWM2M 定义了三个逻辑实体:

    LWM2M Server 服务器

    LWM2M client 客户端 负责执行服务器 的命令和上报执行结果

    LWM2M 引导服务器 Bootstrap server 负责 配置LWM2M客户端.

    在这三个逻辑实体之间有4个逻辑接口:

    Device Discovery and Registration

    这个接口让客户端注册到服务器并通知服务器客户端所支持的能力(简单说就是支持哪些资源Resource和对象object

    Bootstrap

    Bootstrap server通过这个接口来配置Clinet - 比如说LWM2M server的URL地址

    Device Management and Service Enablement

    这个就是最主要的业务接口了。 LWM2M Server 发送指令给 Client 并受到回应.

    Information Reporting

    这个接口是 LWM2M Client 来上报其资源信息的,比如传感器温度。上报方式可以是事件触发,也可以是周期性的。

    Lightweight M2M 协议栈


    LWM2M objects: 每个对象对应客户端的某个特定功能实体. LWM2M 规范定义了一下标准objects,比如

    urn:oma:lwm2m:oma:2; (LWM2M Server object)

    urn:oma:lwm2m:oma:3; (LWM2M Access Control object)

    每个object下可以有很多resource. 比如Firmware object可以有Firmware版本号,size等resource.

    Vendor可以自己定义object

    LWM2M Protocol: 定义了一些逻辑操作,比如Read Write Execute Create or Delete.

    CoAP: 是IETF 定义的Constrained Application Protocol 用来做LWM2M的传输层,下层可以是 UDP 或SMS .UDP 是必须支持的,SMS是可选的。CoAP有自己的消息头,重传机制等。

    DTLS: 是用来保证客户端和服务器间的安全性的.

    四、MQTT与CoAP比较

    MQTT和CoAP都是非常有用的物联网协议,但两者有根本区别,两个协议各有特点,选择哪个才是正确的取决于你的应用程序。

    1、MQTT是多个客户端通过一个中央代理传递消息的多对多协议。它通过让客户端发布消息、代理决定消息路由和复制来解耦生产者和消费者。虽然MQTT持久性有一些支持,但它是最好的实时通讯总线。

    2、CoAP基本上是一个在Client和Server之间传递状态信息的单对单协议。虽然它支持观察资源,但是CoAP最适合状态转移模型,而不是单纯的基于事件。

    3、MQTT Clients与Broker之间保持TCP长连接,这个在NAT环境中也不会有问题。CoAP Clients与Server都要接收和发送UDP包。在NAT环境下使用CoAP,需要使用“隧道掘进”或者端口转发(内网穿透),否则像LWM2M(轻量级M2M)一样,首先初始化设备到‘头端’( head-end )的连接.

    4、MQTT不支持带有类型或者其它帮助Clients理解的标签消息。MQTT消息可用于任意目的,但前提是所有的Clients必须知道消息格式。而CoAP则相反,它内置内容协商和发现支持,这样允许设备彼此窥测以找到交换数据的方式。
    • 发布于2019-01-21
    • 举报
    • 评论 0
    • 0
    • 0

  • https://cloud.tencent.com/developer/news/19866

    详细说明的

    • 发布于2019-01-21
    • 举报
    • 评论 0
    • 0
    • 0

  • CoAP是广播协议,用UDP的,MQTT是基于TCP的
    • 发布于2019-01-25
    • 举报
    • 评论 0
    • 0
    • 0

  • 参考这个https://cloud.tencent.com/developer/news/19866
    • 发布于2019-02-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 你可以看看这个http://kuaibao.qq.com/s/20180112G0RSMB00?refer=cp_1026
    • 发布于2019-02-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 三个协议的不同地方就是在针对的对象不同,其他的传输协议基本都是类似的
    • 发布于2019-02-21
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

LWM2M,MQTT与CoAP区别和联系