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、增强了整个系统的可靠性



作者:创业者谈
链接:https://www.jianshu.com/p/90c0f016e043
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值