MQTT、CoAP与HTTP的区别,哪一个更适合物联网?

转载自:

http://www.234plus.com/?p=740

https://blog.csdn.net/yangzaizhong/article/details/80877166

HTTP是最流行和最广泛使用的协议。但在过去几年中,MQTT迅速获得了牵引力。当我们谈论物联网开发时,开发人员必须在它们之间做出选择。

设计和消息传递

MQTT以数据为中心,而HTTP是以文档为中心的。HTTP是用于客户端 – 服务器计算的请求 – 响应协议,并不总是针对移动设备进行优化。MQTT在这些术语中的主要优点是轻量级(MQTT将数据作为字节数组传输)和发布/订阅模型,这使其非常适合资源受限的设备并有助于节省电池。

此外,发布/订阅模型为客户提供了彼此独立的存在,增强了整个系统的可靠性。当一个客户端出现故障时,整个系统可以继续正常工作。

速度和交付

根据3G网络的测量结果,MQTT的吞吐量比HTTP快93倍。

此外,与HTTP相比,MQTT协议确保了高传输保证。有3个级别的服务质量:

– 最多一次:保证尽力交付。

– 至少一次:保证消息至少传送一次。但是消息也可以不止一次传递。

– 恰好一次:保证每个消息只被对方接收一次

MQTT还为用户提供Last will&Testament和Retained消息的选项。第一个意味着在客户端意外断开连接的情况下,所有订阅的客户端都将从代理获得消息。保留消息意味着新订阅的客户端将立即获得状态更新。

HTTP协议没有这些功能。

复杂性和消息大小

 MQTT具有相当短的规范。只有CONNECT,PUBLISH,SUBSCRIBE,UNSUBSCRIBE和DISCONNECT类型对开发人员很重要。而HTTP规范要长得多。

MQTT具有非常短的消息头,并且最小的包消息大小为2个字节。通过HTTP协议使用文本消息格式允许它组成冗长的标题和消息。它有助于消除麻烦,因为它可以被人类阅读,但同时它对于资源受限的设备是不必要的。

MQTT

MQTT的特点是可以保持长连接,具有一定的实时性,云端向设备端发送消息,设备端可以在最短的时间内接收到并作出响应,所以MQTT更适合需要实时控制的场合,更适合执行器。要保持长连接,那么就要时不时地发送心跳包,这就不会省电了。所以低功耗的场合并不适合MQTT。MQTT的长连接需要建立在TCP的基础上,TCP协议的复杂性决定了对设备的要求是比较高一些的,相比UDP。

CoAP

CoAP的特点是低功耗,数据发完就可以休眠了。所以CoAP更适合数据采集的场合,更适合纯粹的传感器设备,特别是电池供电的传感器设备。基于UDP协议,对设备的要求比较简单。华为出的NB-IoT芯片就只支持UDP和CoAP,华为的决策告诉我们CoAP和NB-IoT是一对。

对比

结论

相比HTTP,MQTT、CoAP协议更适合物联网:

1、更节省电池,尤为突出的是CoAP

2、吞吐量更大,MQTT比HTTP快93倍

3、更省流量

4、增强了整个系统的可靠性

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 实时通信协议是物联网技术中的一项根本性技术,在数据的有效传输、及时通信方面不可或缺,在物联网领域发挥着至关重要的作...
    巴法云阅读 961评论 0 0
  • 来源:电子发烧友网整理 作者:doodle2016年05月23日 14:23 1 [导读] 通信对物联网来说十分关...
    fd649cf896c0阅读 1,123评论 0 5
  • 读后感 作者:林清玄 作者以日记本的故事开头,疑问为什么不记日记了呢,朋友回答说“其实是觉得生活这样单调、空洞、...
    蕙瑜爱阅读 1,080评论 0 0
  • 苏堤南接苏东坡纪念馆,北端是曲院风荷。苏堤春晓更是在南宋时被列为西湖十景之首。为何叫苏堤春晓呢?简而言之就是这里更...
    好书郎阅读 1,633评论 0 3
  • 闫妮,很多人都是从2005年的《武林外传》开始认识她的,“佟湘玉”这个角色让她一炮而红,之后出演了多部影视作品,口...
    猫咪新娘阅读 2,302评论 0 0