一、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相关推荐

  1. 物联网协议选型-MQTT/AMQP/CoAP/HTTP/LwM2M

    0 摘要 前面笔者简单谈了在实际的mqtt产品实现时,客户端和服务端分别如何实现,选择了参考文献[1]mosquitto服务端实现和[2]华为鸿蒙mqtt客户端实现,两个比较典型的项目作为例子对产品级 ...

  2. 物联网常用协议:MQTT、CoAP、LwM2M、HTTP、LoRaWAN和NB-IoT

    目录 1.MQTT协议 2.MQTT-SN协议 3.CoAP协议 4.LwM2M协议 5.HTTP协议 6.LoRaWAN协议 7.NB-IoT协议 物联网,即物的互联网,属于互联网的一部分.物联网将 ...

  3. 【协议】MQTT、CoAP、HTTP比较,MQTT协议优缺点

    目录 MQTT.CoAP.HTTP区别 1. 协议栈: 2.  请求方式 3. 通讯消息格式: 4. 使用特点与使用场景 5.客户端平台差异 6.防火墙容错 MQTT.CoAP.HTTP介绍 CoAP ...

  4. 物联网通讯协议:MQTT,NB-IOT,Zigbee,CoAP,RFID,BLUETOOTH,NFC,4G,HTTP

    目录 一.按网络四层协议分类 二.按需要网关来分类 三.NB-IoT,4G对比 四.应用层协议:MQTT和COAP对比 物联网组网技术 WIFI 蓝牙 ZigBee 2G/4G/5G NB-IoT L ...

  5. 干货|BAT物联云IoT协议例析

    点击上方"中兴开发者社区",关注我们 每天读一篇一线开发者原创好文 近年来,物联网(IoT,Internet of Things)已经从概念阶段走向大规模应用.据Gartner统计 ...

  6. NB-IoT,LORA,wifi,蓝牙,zigbee,MQTT,COAP

    按网络四层协议: NB-IoT,LORA,WIFI,蓝牙,zigbee,4G都是物理层的,这几个都需要芯片模组支持(硬件支持),而MQTT,COAP,HTTP都是应用层协议,这些需要开发服务器,或者对 ...

  7. 物联网IoT协议之OPC UA快速入门教程

    本文转载,原文作者:源码先生, 文章链接:https://www.debugself.com/2019/11/27/opc_guide/, 请勿用于商业用途.如有侵权,请告知删除,谢谢! 八大物联网I ...

  8. 主流物联网协议选择:MQTT、CoAP 还是 LwM2M?

    随着物联网技术的发展与普及,越来越多的智能设备具备了网络连接与数据传输能力.由于物联网场景复杂多样,设备端硬件条件.网络稳定性.流量限制.设备功耗以及设备连接数量等多方面因素造成物联网设备的消息传递与 ...

  9. IoT五种常见物联网协议:TCP/IP、UDP、HTTP、MQTT、CoAP初探

    对于软件公司来说,IoT模式为其硬件设计以及所提供的服务带来决定性的改变.其中影响最大的一个方面是通信协议. 通信协议可以被认为是一种语言,即两台或两台以上的设备可以相互交流.同时无规矩不成方圆,通信 ...

  10. 物联网常用的网络协议:MQTT、AMQP、HTTP、CoAP、LwM2M

    物联网常用的网络协议:MQTT.AMQP.HTTP.CoAP.LwM2M 物联网设备间沟通的语言,就是网络协议. 设备间想相互交流,通信双方必须使用同一种"语言".比如说你和中国人 ...

最新文章

  1. 利用UltimateAndroid框架进行快速开发
  2. hex文件和bin文件区别
  3. SQL语句中用Parameters有什么好处
  4. 深度学习-Tensorflow2.2-深度学习基础和tf.keras{1}-梯度下降算法概述-03
  5. android 使用compareTo比较大小
  6. 【转】刨根究底字符编码【2.0版】(2):关键术语解释
  7. nmon--linux压力测试工具
  8. alibaba fastJson框架快速解析复杂有重复性质的json
  9. linux ipv4 keepalive,Linux中keepalive的使用
  10. java动态删除属性值_JavaBean动态添加删除属性
  11. OGRE 1.7.2 [Cthugha] 编译方法
  12. 如何在传统 ASP 和 ASP.NET 之间共享会话状态
  13. Windows上使用Netbeans进行Linux C开发
  14. JQuery 实战第三讲:绚丽菜单
  15. Groovy(一)安装和基础环境配置
  16. STM32单片机中定义结构体类型指针
  17. VS2013创建Windows服务
  18. 5款网络故障排除软件
  19. win7怎样设置计算机休眠时间,win7休眠时间怎么设置
  20. 周期串(Periodic Strings)

热门文章

  1. 创客匠人知识付费SaaS系统功能介绍
  2. 升职加薪必看!java简历包装工作经验
  3. 离散数学真值表c语言实验报告,离散数学五人表决真值表实验报告
  4. windows server 2012 R2 安装 vc2015 报错 0x80240017
  5. 无法读源文件或磁盘_拯救动态磁盘的一些尝试
  6. 操盘手教你抓涨停的办法
  7. 浅谈大数据时代的电子招投标
  8. java中中文显示乱码_java中显示中文乱码解决方法
  9. 多线程_18_并发_同步_快乐影院_快乐火车票
  10. C语言stdio头文件常见的输入输出库函数