Files
obsidian_sycn/网页剪辑/developer.aliyun.com/MQTT协议详解及v5.0实践-阿里云开发者社区.md
T
2026-07-31 15:28:08 +08:00

2.2 KiB

doc_type, url
doc_type url
hypothesis-highlights https://developer.aliyun.com/article/786001

MQTT协议详解及v5.0实践-阿里云开发者社区

Metadata

Highlights

  • MQTTv3协议是为在低带宽、不可靠的网络上工作的传感器而设计的基于TCP的应用层协议,适用于IoT场景

  • 使用发布/订阅消息模式,支持一对多的消息分发

  • 报文格式设计精简, 适用于小规模数据传输以及资源受限的IoT设备

  • 支持QoS0、QoS1、QoS2 三种消息QoS。

  • MQTT-SN(Sensor Networks) 是MQTT协议的传感器网络版本,最早用在zigBee无线网络中,主要面对电池供电,有限的处理器能力和存储能力的设备。只有很小的内存和CPU,TCP 对于这些设备来说非常奢侈,甚至无法允许TCP协议栈。

  • MQTT 5.0在协议层提供了更大的自定义扩展空间,平台基于扩展点可支持更丰富的协议能力

  • 设备状态一致性策略设计,包括session管理机制、心跳检测机制、异地登陆问题、状态最终一致性策略

  • 协议层本地有session管理器来对本地会话进行管理,通过心跳检测、会话自检来保证跟设备之间的连接状态一致性

  • 设备状态一致性策略:设备到MQTT协议接入层之间是tcp长连接,通过心跳机制保证心跳周期内设备状态的最终一致性

  • 通过分布式会话版本号,保证分布式会话并发更新安全,通过上行消息/心跳定时触发会话自检机制,解决异常情况下本地/分布式会话状态不一致的问题。

  • MQTT协议是基于PUB/SUB的异步通信模式

  • MQTT协议层针对不同场景支持多种MQTT接入方式,同时支持tcp直连、tls、ws、wss等方式接入

  • 协议层实现了多协议端口复用,也就是一个端口同时支持多种协议

  • 通过topic中包含的messageId匹配请求与响应,对业务数据零侵入messageId的生成与匹配、超时控制等逻辑,调用方无感知简化了业务方调用逻辑,扩展了MQTT使用场景。