MQTT 协议精讲 · 第 3 章 控制报文详解


文档摘要

MQTT 协议精讲 · 第 3 章 控制报文详解 章节摘要:第 2 章搭好了通用格式的骨架,本章把 14 种报文逐一放到骨架上解剖。按功能分四组推进:连接组(CONNECT/CONNACK——最复杂,连接标志字节 8 个位各有含义)、消息组(PUBLISH 与四个确认报文——DUP/QoS/RETAIN 三个标志 + 报文标识符在此交汇)、订阅组(SUBSCRIBE/SUBACK/UNSUBSCRIBE/UNSUBACK——QoS 降级授予规则是重点)、维持组(PINGREQ/PINGRESP/DISCONNECT——全协议最简)。学完本章,你应当能对着任何一条抓包记录完整解读出每个字节的含义。

MQTT 协议精讲 · 第 3 章 控制报文详解

章节摘要:第 2 章搭好了通用格式的骨架,本章把 14 种报文逐一放到骨架上解剖。按功能分四组推进:连接组(CONNECT/CONNACK——最复杂,连接标志字节 8 个位各有含义)、消息组(PUBLISH 与四个确认报文——DUP/QoS/RETAIN 三个标志 + 报文标识符在此交汇)、订阅组(SUBSCRIBE/SUBACK/UNSUBSCRIBE/UNSUBACK——QoS 降级授予规则是重点)、维持组(PINGREQ/PINGRESP/DISCONNECT——全协议最简)。学完本章,你应当能对着任何一条抓包记录完整解读出每个字节的含义。

解剖坐标

主线是一个会话的生命周期:连得上(CONNECT/CONNACK)→ 发得出(PUBLISH)→ 收得稳(QoS 确认组)→ 订得了(订阅组)→ 活得好(心跳)→ 退得净(DISCONNECT)。

学习目标

阅读完本章,你应当能够:

  1. 画出 CONNECT 报文的完整结构,说出连接标志字节 8 个位的含义与联动约束(如"用户名位为 0 则密码位必须为 0")。
  2. 说出 CONNACK 的 6 种返回码,以及当前会话标志如何与清理会话配合。
  3. 解释 PUBLISH 的 DUP、QoS、RETAIN 三个标志的语义与协议约束。
  4. 讲清 QoS 2 四步握手(PUBLISH→PUBREC→PUBREL→PUBCOMP)中每个报文的作用与标志位。
  5. 说出 SUBSCRIBE/SUBACK 的请求/授权机制:请求 QoS 与服务端授予 QoS 的关系,以及 4 种返回码。
  6. 描述保活机制与优雅断开:何时发 PINGREQ、服务端何时判定超时、DISCONNECT 后遗嘱的处置。

子章节导航

01 CONNECT:连接服务端

固定报头、可变报头四字段(协议名/协议级别/连接标志/保活)、有效载荷五字段(客户端标识符/遗嘱主题/遗嘱消息/用户名/密码)、连接成功后的处理步骤。配图:连接标志位布局。

02 CONNACK:确认连接请求

当前会话标志(Session Present)的三种判定情形、6 种连接返回码、非零返回码后的行为。

03 PUBLISH:发布消息

唯一承载应用消息的报文:DUP 重发标志、QoS 等级字段、RETAIN 保留标志、主题名与报文标识符、按 QoS 的预期响应表。

04 QoS 确认报文:PUBACK/PUBREC/PUBREL/PUBCOMP

四个"单号回执"报文的格式与角色:QoS 1 的 PUBACK;QoS 2 三步走 PUBREC→PUBREL→PUBCOMP,重点讲 PUBREL 固定标志 0010。

05 订阅与退订:SUBSCRIBE/SUBACK/UNSUBSCRIBE/UNSUBACK

订阅请求的负载结构(过滤器+请求 QoS)、SUBACK 的四种返回码与降级规则、重复订阅的替换语义、退订的两步。

06 心跳与断开:PINGREQ/PINGRESP/DISCONNECT

全协议最简的三个报文:保活定时器的工作原理、1.5 倍超时判定、DISCONNECT 后的"三必须"与遗嘱清除。

前置知识与后续延伸

前置知识:第 1 章第 3 节(QoS 与主题)、第 2 章全部(三段式结构与报文标识符)。

后续延伸:第 4 章把这些报文放进时间轴,讲会话恢复、QoS 状态机、重发与去重、主题匹配与错误处理。


发布者: 作者: 灏天文库 转发
评论区 (0)
U