MQTT

https://mqtt.org/
Message Queuing Telemetry Transport 消息队列遥测传输

“ Is often used in IoT applications where resource - constrained devices need to communicate over unreliable networks.”

是一种轻量级、基于发布-订阅模式的消息传输协议,专为资源受限设备通过不可靠网络进行通信而设计,因而在物联网(IoT)领域被广泛采用。

它工作在 TCP/IP 协议族之上,依赖 TCP 提供的可靠传输机制,保障消息的有序性与完整性,同时通过极简的报文结构和传输开销,优化了在低带宽、高延迟或不稳定环境下的通信性能。这使得 MQTT 成为远程通信与物联网应用的理想选择。

MQTT 的核心设计思想是通过 代理(Broker) 实现通信双方的解耦,发布者与订阅者之间无需直接建立连接,而是通过代理进行消息转发,从而提升系统的扩展性、灵活性与容错性。

一、基本概念

二、MQTT 协议演进

MQTT 3.1 ( 2010)

MQTT 3.1 是最早公开文档化的协议版本,由 IBM 发布。该版本奠定了 MQTT 的基础架构与通信机制,具有以下关键特性:

MQTT 3.1.1 ( 2014 )

MQTT 3.1.1 是 MQTT 进入标准化阶段的标志性版本,由 OASIS 组织推动并发布,属于修订优化版本,其改进主要体现在以下方面:

MQTT 5.0 ( 2019 )

MQTT 5.0 是协议体系中的 重要升级版本,引入了大量针对实际应用需求的增强功能,核心在于提升协议的 可扩展性、诊断性、安全性、复杂消息流支持能力。其关键改进包括:

虽然 5.0 与 3.1.1 在基本通信流程上兼容,但由于报文结构有较大变化,部分老版本客户端/代理无法直接支持 5.0 报文,需要明确配置或升级以启用。

实际应用

实际部署中,MQTT 已成为智慧城市、工业物联网、智能家居、远程监控等领域的关键通信协议。例如,使用 mosquitto 等开源实现,可在边缘计算节点快速搭建高性能 MQTT 代理,实现大规模设备的消息交互。通过与 Node-RED等平台集成,还可进一步实现数据可视化、事件驱动处理和实时响应。

随着协议标准的更新(如 MQTT 5.0 的引入),包括 会话过期(Session Expiry)、消息过期(Message Expiry)、共享订阅(Shared Subscriptions)、主题别名(Topic Alias) 等新功能,为处理复杂物联网场景提供了更多灵活的配置选项,也对协议的可扩展性与安全性提出了更高要求。

在安全性方面,尽管 MQTT 在最初未强制加密传输,但实践中推荐结合 TLS/SSL 实现端到端加密,防止数据在传输过程中被截获或篡改,同时借助客户端认证和访问控制机制(如基于角色的访问控制 RBAC)加强系统防护。

综上,MQTT 凭借其轻量、高效、灵活及持续演进的特性,已成为物联网通信领域的重要支柱,在面向 边缘计算、大规模设备管理 和 跨网络环境集成 的新兴应用中展现出强大潜力。

https://www.runoob.com/w3cnote/mqtt-intro.html