MQTT通讯协议分析(二): 订阅Subscribe

本文深入解析MQTT协议中Subscribe数据包与Subscribe ACK的结构与工作原理。详细介绍了固定报头、可变报头及有效载荷的内容,包括QoS设置与主题过滤器长度等关键信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一. 订阅Subscribe数据包

 

      1. QoS=0(1,2),抓包分析:

分析:

    Subscribe 报文固定报头

     82   :   其中bit7~bit4 :8 对应消息类型为 Subscribe, bit3~bit0: 2 保留位

     09   :   剩余长度

   Subscribe 报文可变报头

     00   :   报文标识符MSB

     01   :   报文标识符LSB, (报文标识符由16位组成, 因此这里我们报文标识符位1)

     00   :   之后主题过滤器(Topic Filter)长度MSB

     04   :   主题过滤器(Topic Filter)长度 LSB ,与我们设置的"test"长度 符号

     74  65 73 74 : 对应的就是主题过滤器"test"

     00   :     QoS = 0,  若设置的是“至少一次”, 则为01, 若设置"刚好一次",则为02

继续,看看服务器返回给我们的Subscribe ack数据包:

分析:

      Subscribe ACK 报文固定报头

       90  : bit7~bit4值对应9,表示是Subscribe ack消息类型, bit3~bit0 保留位为0

       03  : 剩余长度

      Subscribe ACK 报文可变报头

       00  : 报文标识符MSB

       01  : 报文标识符LSB, 因此这里的报文标识符为1, 与我们之前Subscribe发送的报文标识符一致

        Subscribe  ACK 有效载荷

       00 :bit7为0,表示成功,bit6~bit4 固定为0; bit3~bit2固定为0; bit1~bit0 : 0 ,表示QoS=0,完全符合我们的设置  

    

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值