当前位置: 首页 > 科技观察

LWM2MMQTT与物联网协议CoAP的区别与联系

时间:2023-03-12 06:09:22 科技观察

1.MQTT1。概述:MQTT(MessageQueuingTelemetryTransport,消息队列遥测传输)是IBM公司开发的一种即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,可以将几乎所有的互联网连接对象与外界连接起来。它被用作传感器和执行器的通信协议(例如通过Twitter将房屋连接到Internet)。2.主要特点:MQTT协议是为计算能力有限、工作在低带宽、不可靠网络中的大量远程传感器和控制设备的通信而设计的协议。它有以下主要特点:采用发布/订阅消息模式,提供一对多的消息发布,解耦应用;屏蔽加载内容的消息传输;使用TCP/IP提供网络连接;消息发布服务质量有三种:“最多一次”,消息发布完全依赖于底层的TCP/IPIP网络。可能会发生消息丢失或重复。这个级别可以用在以下几种情况,环境传感器数据,一条读记录丢了也没关系,因为近期会有第二次发送。“至少一次”,确保消息到达,但可能会出现消息重复。“仅一次”,确保消息到达一次。此级别可用于重复或丢失消息可能导致计费系统产生错误结果的情况。开销很小的小传输(固定长度标头为2字节)和协议交换被最小化以减少网络流量。2.CoAP由于物联网中很多设备都是资源受限的,即只有少量的内存空间和有限的计算能力,传统的HTTP协议在物联网中的应用范围太大而不适用。IETF的CoRE工作组提出了基于REST架构的CoAP协议。CoAP是6LowPAN协议栈中的一个应用层协议。3、轻量级M2MOMA是一个国际组织,最初定义了一套OMA-DM协议,用于移动终端设备的远程管理,如手机开户、版本升级等。OMA-DM的应用范围非常广泛。VerizonWireless、Sprint等很多运营商都有自己的OMA-DM服务,要求手机/模块在接入网络时通过自定义的OMA-DM入网测试。由于物联网的兴起,OMA在传统的OMA-DM协议的基础上提出了LWM2M协议。2013年底,OMA发布了LWM2M规范。OMA轻量级M2M的主要动机是定义一套适用于各种物联网设备的轻量级协议,因为M2M设备通常是嵌入式终端,资源非常有限,没有UI,计算能力和网络通信能力也有限。同时,由于物联网终端数量庞大,节约网络资源变得非常重要。LWM2M定义了三个逻辑实体:LWM2MServerserverLWM2Mclientclient负责执行server的命令并报告执行结果LWM2MbootstrapserverBootstrapserver负责配置LWM2Mclient。这三个逻辑实体之间有4个逻辑接口:DeviceDiscoveryandRegistration:该接口允许客户端向服务器注册,并通知服务器客户端支持的能力(简单来说,支持哪些资源Resource和对象Object)Bootstrap:Bootstrapserver通过该接口配置Clinet——例如LWM2Mserver的URL地址DeviceManagementandServiceEnablement:这是主要的业务接口,LWM2MServer向Client发送命令,接收响应信息上报:该接口用于LWM2MClient上报其资源信息,如传感器温度。上报方式可以是事件触发,也可以是周期性的。轻量级M2M协议栈:LWM2MObjects:每个对象对应客户端的一个特定功能实体。LWM2M规范定义标准对象,例如:urn:oma:lwm2m:oma:2;(LWM2MServerObject)urn:oma:lwm2m:奥玛:3;(LWM2MAccessControlObject)每个对象下可以有很多资源。例如,固件对象可以有固件版本号、大小和其他资源。Vendor可以自己定义对象:LWM2MProtocol:定义一些逻辑操作,如Read、Write、Execute、Create或Delete。CoAP:IETF定义的ConstrainedApplicationProtocol,作为LWM2M的传输层,下层可以是UDP或者SMS。UDP是强制性的,SMS是可选的。CoAP有自己的消息头、重传机制等。DTLS:用于保证客户端和服务端之间的安全。4.MQTT和CoAP的比较MQTT和CoAP都是非常有用的IoT协议,但是这两个协议之间存在根本的区别。这两种协议各有特点,选择哪一种是正确的取决于你的应用。MQTT是一种多对多协议,多个客户端通过中央代理传递消息。它通过让客户端发布消息和代理决定消息路由和复制来分离生产者和消费者。虽然对MQTT持久化有一些支持,但它是最好的实时通信总线。CoAP基本上是用于在客户端和服务器之间传输状态信息的一对一协议。虽然它支持观察资源,但CoAP最适合状态转换模型而不是纯粹基于事件的模型。MQTTClients和Broker之间保持TCP长连接,这在NAT环境中不会成为问题。CoAP客户端和服务器都接收和发送UDP数据包。要在NAT环境下使用CoAP,需要使用“隧道”或端口转发(内网穿透),否则像LWM2M(轻量级M2M)一样,先初始化设备与“头端”的连接。MQTT不支持带有类型或其他标签的消息来帮助客户端理解它们。MQTT消息可用于任何目的,但前提是所有客户端都知道消息格式。另一方面,CoAP内置了对内容协商和发现的支持,允许设备相互监视以寻找交换数据的方法。