IoT协议LwM2M MQTT与CoAP
一、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, 计算能力和网络通信能力都有限。同时也因为物联网终端的巨大数量,节约网络资源变得很重要。
四、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则相反,它内置内容协商和发现支持,这样允许设备彼此窥测以找到交换数据的方式。
IoT协议LwM2M MQTT与CoAP相关推荐
- 物联网协议选型-MQTT/AMQP/CoAP/HTTP/LwM2M
0 摘要 前面笔者简单谈了在实际的mqtt产品实现时,客户端和服务端分别如何实现,选择了参考文献[1]mosquitto服务端实现和[2]华为鸿蒙mqtt客户端实现,两个比较典型的项目作为例子对产品级 ...
- 物联网常用协议:MQTT、CoAP、LwM2M、HTTP、LoRaWAN和NB-IoT
目录 1.MQTT协议 2.MQTT-SN协议 3.CoAP协议 4.LwM2M协议 5.HTTP协议 6.LoRaWAN协议 7.NB-IoT协议 物联网,即物的互联网,属于互联网的一部分.物联网将 ...
- 【协议】MQTT、CoAP、HTTP比较,MQTT协议优缺点
目录 MQTT.CoAP.HTTP区别 1. 协议栈: 2. 请求方式 3. 通讯消息格式: 4. 使用特点与使用场景 5.客户端平台差异 6.防火墙容错 MQTT.CoAP.HTTP介绍 CoAP ...
- 物联网通讯协议:MQTT,NB-IOT,Zigbee,CoAP,RFID,BLUETOOTH,NFC,4G,HTTP
目录 一.按网络四层协议分类 二.按需要网关来分类 三.NB-IoT,4G对比 四.应用层协议:MQTT和COAP对比 物联网组网技术 WIFI 蓝牙 ZigBee 2G/4G/5G NB-IoT L ...
- 干货|BAT物联云IoT协议例析
点击上方"中兴开发者社区",关注我们 每天读一篇一线开发者原创好文 近年来,物联网(IoT,Internet of Things)已经从概念阶段走向大规模应用.据Gartner统计 ...
- NB-IoT,LORA,wifi,蓝牙,zigbee,MQTT,COAP
按网络四层协议: NB-IoT,LORA,WIFI,蓝牙,zigbee,4G都是物理层的,这几个都需要芯片模组支持(硬件支持),而MQTT,COAP,HTTP都是应用层协议,这些需要开发服务器,或者对 ...
- 物联网IoT协议之OPC UA快速入门教程
本文转载,原文作者:源码先生, 文章链接:https://www.debugself.com/2019/11/27/opc_guide/, 请勿用于商业用途.如有侵权,请告知删除,谢谢! 八大物联网I ...
- 主流物联网协议选择:MQTT、CoAP 还是 LwM2M?
随着物联网技术的发展与普及,越来越多的智能设备具备了网络连接与数据传输能力.由于物联网场景复杂多样,设备端硬件条件.网络稳定性.流量限制.设备功耗以及设备连接数量等多方面因素造成物联网设备的消息传递与 ...
- IoT五种常见物联网协议:TCP/IP、UDP、HTTP、MQTT、CoAP初探
对于软件公司来说,IoT模式为其硬件设计以及所提供的服务带来决定性的改变.其中影响最大的一个方面是通信协议. 通信协议可以被认为是一种语言,即两台或两台以上的设备可以相互交流.同时无规矩不成方圆,通信 ...
- 物联网常用的网络协议:MQTT、AMQP、HTTP、CoAP、LwM2M
物联网常用的网络协议:MQTT.AMQP.HTTP.CoAP.LwM2M 物联网设备间沟通的语言,就是网络协议. 设备间想相互交流,通信双方必须使用同一种"语言".比如说你和中国人 ...
最新文章
- 利用UltimateAndroid框架进行快速开发
- hex文件和bin文件区别
- SQL语句中用Parameters有什么好处
- 深度学习-Tensorflow2.2-深度学习基础和tf.keras{1}-梯度下降算法概述-03
- android 使用compareTo比较大小
- 【转】刨根究底字符编码【2.0版】(2):关键术语解释
- nmon--linux压力测试工具
- alibaba fastJson框架快速解析复杂有重复性质的json
- linux ipv4 keepalive,Linux中keepalive的使用
- java动态删除属性值_JavaBean动态添加删除属性
- OGRE 1.7.2 [Cthugha] 编译方法
- 如何在传统 ASP 和 ASP.NET 之间共享会话状态
- Windows上使用Netbeans进行Linux C开发
- JQuery 实战第三讲:绚丽菜单
- Groovy(一)安装和基础环境配置
- STM32单片机中定义结构体类型指针
- VS2013创建Windows服务
- 5款网络故障排除软件
- win7怎样设置计算机休眠时间,win7休眠时间怎么设置
- 周期串(Periodic Strings)