MQTT 协议精讲 · 第 2 章 控制报文通用格式 章节摘要:第 1 章认识了 14 种报文的名字,本章拆开它们的"通用骨架"。所有 MQTT 控制报文都由三段组成——固定报头(所有报文必有)、可变报头(部分报文有)、有效载荷(部分报文有)。本章重点讲透固定报头里的类型字段、标志位与剩余长度变长编码——这是协议里最容易被写错的编码细节;随后讲可变报头里的报文标识符(Packet Identifier) 分配规则,它是 QoS 1/2 可靠投递的编号基础。本章共 3 节,学完即可读懂第 3 章任何一张报文格式图。 解剖坐标 本章是全协议的"格式地基",第 3 章每个报文都按本章的三段式框架展开。
章节摘要:第 1 章认识了 14 种报文的名字,本章拆开它们的"通用骨架"。所有 MQTT 控制报文都由三段组成——固定报头(所有报文必有)、可变报头(部分报文有)、有效载荷(部分报文有)。本章重点讲透固定报头里的类型字段、标志位与剩余长度变长编码——这是协议里最容易被写错的编码细节;随后讲可变报头里的报文标识符(Packet Identifier) 分配规则,它是 QoS 1/2 可靠投递的编号基础。本章共 3 节,学完即可读懂第 3 章任何一张报文格式图。
本章是全协议的"格式地基",第 3 章每个报文都按本章的三段式框架展开。
阅读完本章,你应当能够:
固定报头 / 可变报头 / 有效载荷三段的职责边界,以及 14 种报文"哪段有、哪段没有"。
首字节布局、14 种报文的标志位约束(PUBREL 与 SUBSCRIBE 的 0010 之谜)、剩余长度 1~4 字节变长编码的编解码算法与取值范围。
报文标识符的用途、需要它的 9 种报文、分配/重用/零值禁止的硬性规则,以及客户端与服务端独立编号的原因。
前置知识:第 1 章第 2 节(14 种报文家族);十六进制数与位运算基础(高位/低位、与/或运算)。
后续延伸:第 3 章逐个报文套用本章格式;第 4 章解释报文标识符如何在 QoS 流程中配合重发与去重。