物联网常用协议介绍—MQTT协议

访问次数: 2638 次   
发布时间: 2022-10-02

MQTT是物联网应用最广泛的协议,也是物联网的入门协议。


MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。


MQTT协议可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。由于MQTT协议具有轻量、简单、开放和易于实现等特点。这些特点使它适用范围非常广泛。

MQTT协议主要特性

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

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

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

4 有三种消息发布服务质量(QoS):


理解MQTT协议最简单的办法就是MQTT就是一个快递中转站,有人投,有人取,快递可以暂存,也可以类似视频网站。如下面的视频,用B站解释MQTT协议。


【用B站解释MQTT协议】 https://www.bilibili.com/video/BV1rp4y1i7nY?share_source=copy_web&vd_source=ffdc396f72a54b325037ada71bc99b05


MQTT的优点

MQTT的独特功能是每个消息头都可以缩短为2个字节。对于HTTP,为每个新请求消息重新建立HTTP连接会产生可观的开销。 MQ和MQTT使用的持久连接可以大大减少这种开销。

包容不稳定的网络,MQTT和MQ可以从诸如断开连接之类的故障中恢复,无需进一步的代码要求。但是,HTTP本身无法实现此目标,并且客户端必须重试编码,这会增加身份问题。

低功耗MQTT专为低功耗目标而设计。 HTTP设计未考虑此因素,这会增加功耗。

在连接数百万个客户端的情况下,在HTTP堆栈中维护数百万个并发连接需要大量工作才能提供支持。尽管这种支持是可行的,但大多数商业产品都经过优化以处理此订单上的持久连接。 IBM提供了IBM MessageSight,这是一种单机架安装服务器,已经过测试,可以通过MQTT处理多达一百万个并发设备。相反,MQ不是为许多同时进行的客户设计的。

推送通知。您需要能够及时向客户发送通知。为此,您应该使用常规的轮询或推送方法。就电池,系统负载和带宽而言,推送是最佳解决方案。

客户端平台的差异。 HTTP和MQTT客户端都在许多平台上实现。 MQTT的简单性可帮助您以最少的努力在其他客户端上实施MQTT。

防火墙容错能力。某些公司防火墙将出站连接限制到某些预定义的端口,这些端口通常仅限于HTTP(端口80),HTTPS(端口443)等,HTTP在这种情况下显然可以工作。 MQTT封装在WebSockets连接中,并显示为HTTP升级请求,因此可以在这种情况下运行。


MQTT的缺点

实际上,MQTT被广泛使用,可以在几乎任何大型硬件和互联网公司中找到,例如Facebook,BP,阿里巴巴,百度。


由于MQTT本身的技术优势,越来越多的公司选择MQTT作为物联网产品通信的标准协议。结果,工程师逐渐意识到MQTT协议的功能需要大规模商业化进行改进。例如:


如果没有完整的SDK,则需要用于不同异构设备的软件SDK软件包才能与MQTT服务器(例如MCU,Linux,Android,IOS,WEB)进行通信,以实现互连和互操作性。

不支持文件和AV。在某些应用场景中,需要传输的信息可能不限于需要通过AV与文件通信的指令,例如语音和视频信号。

不支持与第三方HTTP集成。 MQTT协议优于常规HTTP协议,但是基于传统HTTP协议的WEB服务器仍在主流市场中占主导地位。这些服务器应与MQTT协议互连,以降低升级成本。

不支持负载分配。负载分配服务器对于高并发性和防止恶意攻击也是必不可少的。

不支持用户管理界面。当用户分析设备行为数据时,这一点尤其重要。在工业4.0和大数据时代,这是不可避免的需求。

设备脱机后,不支持脱机消息来补偿从MQTT服务器到设备的控制信息丢失。

不支持点对点通信,并且使用标准的MQTT协议。从理论上讲,点对点通信可以通过相互订阅来实现,但是逻辑相对复杂并且涉及设备安全性。当设备B和设备C相同时-在主题的情况下,设备A无法知道消息是来自设备B还是来自设备C,并且消息很可能是被设备D窃听的。


为什么物联网开发不用HTTP协议?


原因是HTTP协议功耗高、速度慢、流量开销大,对硬件要求高,所以使用MQTT协议,因为MQTT协议恰好解决了这些问题,使它更好的满足了物联网场景的需要。


不支持群组通信或群组管理,而是实现群组成员的管理。小组成员可以交换消息,如果一个设备由多个人控制或多个设备由一个人控制,则此功能特别有用。




返回

Top