实时协议是物联网的一项根本性技术,在物联网领域发挥了重大的作用。目前物联网设备所广泛使用的四大实时协议:XMPP、HTTP、CoAP以及MQTT等可谓各擅所长、亦各有弊端。

那么在万物互联的时代,谁主沉浮?今天我们先来讨论MQTT与CoAP。

----------------------------------------------------------------------------------------------------------------------------------------------------------------

在对比哪种协议更适合物联网之前,我们要先了解各种协议的偏重点。物联网终端节点一般都是存储和带宽受限的嵌入式设备。

XMPP协议基于XML,对于嵌入式设备来说,XML解析是超级困难的。

HTTP协议对于嵌入式设备来说属于重量级,也不是很合适。因为目前物联网中的很多设备都是资源受限型的,所以只有少量的内存空间和有限的计算能力。

比较适合嵌入式设备就是轻量级的MQTT和CoAP。

CoAP的全称为受限应用协议,其开发目的在于允许资源相对有限的设备利用UDP而非TCP通过互联网实现通信。

MQTT协议是由IBM开发的一个即时通讯的协议,是为大量计算能力有限且工作在低带宽、不可靠网络的远程传感器和控制设备通讯而设计的一种协议。

MQTT协议的优势是可以支持所有平台,它几乎可以把所有的联网物品和互联网连接起来。

MQTT与CoAP的区别

MQTT和CoAP都是行之有效的物联网协议,但两者还是有很大区别的。从应用方向来分析,主要区别有以下几点:

❶MQTT协议不支持带有类型或者其它帮助Clients理解的标签信息,也就是说所有MQTT Clients必须要知道消息格式。

而CoAP协议则相反,因为CoAP内置发现支持和内容协商,这样便能允许设备相互窥测以找到数据交换的方式。

❷MQTT是长连接而CoAP是无连接。MQTT Clients与Broker之间保持TCP长连接,这种情形在NAT环境中也不会产生问题。

如果在NAT环境下使用CoAP的话,那就需要采取一些NAT穿透性手段。

❸MQTT是多个客户端通过中央代理进行消息传递的多对多协议。它主要通过让客户端发布消息、代理决定消息路由和复制来解耦消费者和生产者。

MQTT相当于消息传递的实时通讯总线,CoAP基本上就是一个在Server和Client之间传递状态信息的单对单协议。

MQTT的特点

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

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

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

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

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

5.使用 Last Will 和 Testament 特性通知有关各方客户端异常中断的机制。

运用MQTT协议,设备可以很方便地连接到物联网云服务,管理设备并处理数据,最后应用到各种业务场景。

物联网平台优势

信锐物联网应用层协议采用的便是MQTT,通俗的讲该协议就像微信关注公众号一样,关注了就能收到信息,未关注的就收不到推送的消息。

信锐物联网平台采用MQTT消息通信机制的设计,可靠、轻巧、简单,在物联网应用开发中优势有:

1.可靠传输:MQTT可以保证消息可靠安全的传输,并可以与企业应用简易集成。

2.消息推送:支持消息实时通知、丰富的推送内容、灵活的Pub-Sub以及消息存储和过滤。

3.低带宽、低耗能、低成本:占用应用程序带宽小,并且带宽利用率高,耗电量较少。

从当前物联网应用发展趋势来分析,MQTT协议具有一定的优势。目前国内外主要的云计算服务商,比如阿里云、AWS、百度云、Azure以及腾讯云等都支持MQTT协议。除此之外,MQTT协议比CoAP成熟的要早,所以MQTT具有一定的先发优势。

随着物联网的智能化和多变化的发展,后续物联网应用平台肯定会兼容更多的物联网应用层协议,信锐物联网也将推出更多基于MQTT通信方式的物联网行业解决方案。

MQTT、CoAP的更多相关文章

  1. 物联网应用层协议选择和分析--MQTT、CoAP 、HTTP、XMPP、SoAP

    MQTT协议 MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)最早是IBM开发的一个即时通讯协议,MQTT协议是为大量计算能力有限且工作在低带宽.不 ...

  2. 转:XMPP协议、MQTT协议、HTTP协议、CoAP协议的基本比较

    一.先看下相关国外的专业数据对四大协议的比较: Protocol                                    CoAP                         XMP ...

  3. CoAP、MQTT、RESTful协议区别

    /********************************************************************** * CoAP.MQTT.RESTful协议区别 * 说明 ...

  4. 物联网通信协议——比较-MQTT、 DDS、 AMQP、XMPP、 JMS、 REST、 CoAP

    物联网通信协议——比较-MQTT. DDS. AMQP.XMPP. JMS. REST. CoAP   AMQP & MQTT & DDS (https://www.youtube.c ...

  5. IoT协议LwM2M MQTT与CoAP

    IoT协议LwM2M MQTT与CoAP 一.MQTT 1.概述: MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议, ...

  6. MQTT和Coap

    什么是MQTT? MQTT是一个“发布和订阅”协议.用户可以订阅某些主题,或发布某些主题的消息.订阅者将收到订阅的主题消息.用户可以通过保证交付来配置协议更可靠. 什么是CoAP? CoAP看起来像是 ...

  7. HTTP、MQTT、Websocket、WebService区别

    相同点: HTTP.MQTT.Websocket均为OSI 7层模型的[应用层协议]注意. WebService并非通信协议,而是一种远程接口调用(RPC)的框架技术. 不同点: MQTT MQTT协 ...

  8. HTTP、MQTT、WebSocket有什么区别

    https://blog.csdn.net/linyunping/article/details/81950185 相同点:均为OSI 7层模型(应用层.表示层.会话层.传输层.网络层.数据链路层.物 ...

  9. 物联网MQTT协议分析和开源Mosquitto部署验证

    在<物联网核心协议—消息推送技术演进>一文中已向读者介绍了多种消息推送技术的情况,包括HTTP单向通信.Ajax轮询.Websocket.MQTT.CoAP等,其中MQTT协议为IBM制定 ...

随机推荐

  1. Go 在游戏行业中的工程实践

    在今年 1 月由七牛云主办的 ECUG Con 十周年盛会上,真有趣技术总监陈明达带来了题为< Go 在游戏行业中的工程实践>的精彩分享,深入讲解了 Go 的工程经验,错误和异常处理,in ...

  2. [codeVS1204] 单词背诵

    题目描述 灵梦有n个单词想要背,但她想通过一篇文章中的一段来记住这些单词. 文章由m个单词构成,她想在文章中找出连续的一段,其中包含最多的她想要背的单词(重复的只算一个).并且在背诵的单词量尽量多的情 ...

  3. 【ZJOI2017 Round1练习&BZOJ4766】D1T2 文艺计算姬(Prufer编码)

    题意:给定一个一边点数为n,另一边点数为m,共有n*m条边的带标号完全二分图K_{n,m},求其生成树个数 mod p. 100%的数据:1 <= n,m,p <= 10^18 思路:这是 ...

  4. hdu 5187 zhx's contest [ 找规律 + 快速幂 + 快速乘法 || Java ]

    传送门 zhx's contest Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others ...

  5. 洛谷—— P2002 消息扩散

    P2002 消息扩散 题目背景 本场比赛第一题,给个简单的吧,这 100 分先拿着. 题目描述 有n个城市,中间有单向道路连接,消息会沿着道路扩散,现在给出n个城市及其之间的道路,问至少需要在几个城市 ...

  6. 学习日常笔记<day14>自定义标签

    1自定义标签 1.1第一个自定义标签开发步骤 1)编写一个普通的java类,继承SimpleTagSupport类,叫标签处理器类 /** * 标签处理器类 * @author APPle * 1)继 ...

  7. 洛谷 P1731 [NOI1999]生日蛋糕

    P1731 [NOI1999]生日蛋糕 题目背景 7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为Nπ的M层 生日蛋糕,每层都是一个圆柱体. 设从下往上数第i(1<=i<=M ...

  8. 109.Convert sorted list to BST

    /* * 109.Convert sorted list to BST * 2016.12.24 by Mingyang * 这里的问题是对于一个链表我们是不能常量时间访问它的中间元素的. * 这时候 ...

  9. Eclipse Explorer插件快速打开项目文件在系统资源管理器

    官网:https://github.com/Jamling/eclipse-explorer 安装: 1.在线安装 [Help]->[Eclipse Marketplace]搜索:Eclipse ...

  10. Java中long(Long)与int(Integer)之间的转换(转)

    一.将long型转化为int型,这里的long型是基础类型: long a = 10; int b = (int)a; 二.将Long型转换为int型,这里的Long型是包装类型: Long a = ...