MQTT(消息队列遥测传输协议)是 ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅模式的”轻量级”通讯协议。MQTT 是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT 协议是轻量、简单、开放和易于实现的。
MQTT 是什么协议
MQTT(Message Queuing Telemetry Transport, 消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的”轻量级”通讯协议,该协议构建于 TCP/IP 协议上,由 IBM 在 1999 年发布。MQTT 最大优点在于,可以以极少的代码和有限的带宽,为远程连接设备提过实时可靠的消息服务,作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用
MQTT 是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT 协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(loT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。
MQTT 的特性
- 提供一对多的消息发布,解除应用程序耦合;
- 对负载内容屏蔽的消息传输;
- 使用 TCP/IP 提供网络连接;
- 有三种消息发布服务质量;
- 固定长度的头部是 2 字节,小型传输,开销小,降低网络流量;
- 使用 Last Will 和 Testament 特性通知有关各方客户端异常中断的机制。
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 是基于二进制消息的发布/订阅编程模式的消息协议,最早由 IBM 提出的,如今已经成为 OASIS 规范。由于规范很简单,非常适合需要低功耗和网络带宽有限的 IoT 场景,比如:
- 遥感数据
- 汽车
- 智能家居
- 智慧城市
- 医疗医护
- 智慧农业
- 工业 4.0
MQTT 被广泛使用,可以在几乎任何大型硬件和互联网公司中找到,例如 Facebook,BP,阿里巴巴,百度。由于 MQTT 本身的技术优势,越来越多的公司选择 MQTT 作为物联网产品通信的标准协议.
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...