作者:mobiledu2502900917 | 来源:互联网 | 2023-07-02 09:44
会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结
一、MQTT 1、概要:
消息队列遥测传输(mqtt )是IBM开发的即时消息传输协议,有可能成为物联网的重要组成部分。 该协议支持所有平台,几乎可以连接所有联网的物品和外部,用作传感器和制动器(例如通过推特将房子连接到网络)的通信协议。
2、主要特点:
MQTT协议是专为在大量计算能力有限、低带宽、不可靠的网络中工作的远程传感器与控制设备之间的通信而设计的协议,具有以下主要特征:
使用分发/订阅消息模式提供一对多的消息分发,并取消APP应用的合并
切断负载内容的消息传输;
使用TCP/IP进行网络连接
有三种消息传递服务质量:
“至多一次”,信息传播完全依赖于基础TCP/IP网络。 发生邮件丢失或重复。 在这个级别上,环境传感器数据可以丢失一次读取记录。 因为不久会有第二次发送。
“至少一次”允许消息到达,但可能会发生消息重复。
“一次”,让消息只传一次。 如果在计费系统中发生重复或丢失的消息会导致不正确的结果,则可以使用此级别。
小型传输,开销小(固定长度的报头为2字节),使协议交换最小化以降低网络流量;
二、CoAP由于物联网中的许多设备受资源限制,也就是说内存容量小,处理能力有限,传统的HTTP协议APP应用于物联网太大,无法应用。 ITF的核心工作组提出了基于REST架构的CoAP协议。 CoAP是6LowPAN协议栈中的APP应用层协议。
三、Lightweight M2M OMA是国际组织,最初定义了OMA-DM的一组协议,用于远程管理移动终端设备,如手机开户、版本升级等。 OMA-DM有非常广泛的APP应用,很多运营生,例如Verizon无线、Sprint有自己的OMA-DM服务,在加入手机/模块时通过了定制的OMA-DM加入测试随着物联网的兴起,OMA基于传统的OMA-DM协议,提出了LWM2M协议。 2013年底,OMA发布了LWM2M标准。
OMA Lightweight M2M的主要动机是定义一组适用于各种物品的互联网设备的轻量级协议。 因为M2M设备通常是资源非常有限的嵌入式终端,没有UI,计算能力和网络通信能力有限。 另外,由于物联网终端数量庞大,节约网络资源变得越来越重要。
LWM2M定义了三个逻辑实体:
(1) LWM2m服务器
(2) lwm2m客户端负责服务器命令的执行和执行结果的上报
(3) LWM2M引导服务器bootstrap服务器负责LWM2M客户端的构成。
这三个逻辑实体之间有四个逻辑接口:
)1)设备发现和注册(Device Discovery and Registration )该接口提供了客户机在服务器上注册、服务器客户机支持的能力(简单来说,是哪些资源和对象oboce
2 ) bootstrap:bootstrap服务器通过该接口构成客户机-例如lwm2m服务器的URL地址
)3) devicemanagementandserviceenablement )这是最主要的业务接口。 lwm2m服务器向客户端发送命令,接受响应。
信息报告:该接口是lwm2m客户端,用于报告传感器温度等资源信息。 上报方法可以是事件触发,也可以是周期性的。
轻量级m2m协议栈
LWM2M Objects:中的每个对象都对应于客户端的特定功能实体。 LWM2M规范定义了标准对象,如下所示
URN : OMA : LW M2M : OMA :2; (lwm2m服务器对象)
URN : OMA : LW M2M : OMA :3; (lwm2m访问控制对象)
每个对象下面可以有许多资源。 例如,固件对象可以具有固件版本号、大小等资源。
Vendor可以自己定义对象
lwm2m协议:定义了读取、写入、执行、创建或删除等逻辑操作。
CoAP:可以用作IETF定义的增强型应用协议为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则相反,它内置内容协商和发现支持,这样允许设备彼此窥测以找到交换数据的方式。
五、物联网定制开发,加关注私信“技术粗心的黑裤”