欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MQTT入门(3)- 分析报文Packet

程序员文章站 2022-06-12 14:12:24
...
既然MQTT是一个通信协议,就有必要看看在通信时的packet报文信息,有助于对协议自身的理解。

MQTT是一个二进制协议,所以报文中的数据都是字节码而不是文字。

而且它采用 command  和 command acknowledgement 成对实现通信。

(1)报文分析

标准的MQTT报文结构
主要分为三部分:固定报头(Fixed Header)、可变报头(Variable Header)、有效载荷(Payload)
其中固定报头为2个字节,一定会存在,其他部分可以没有。
MQTT入门(3)- 分析报文Packet
            
    
    博客分类: 物联网

最小报文
包含两个字段:控制头部、报头长度
MQTT入门(3)- 分析报文Packet
            
    
    博客分类: 物联网

控制头部
包含两个字段:消息类型、标志位
MQTT入门(3)- 分析报文Packet
            
    
    博客分类: 物联网

可变报头
包含四个字段:协议名、协议级别、连接标志、保持连接
MQTT入门(3)- 分析报文Packet
            
    
    博客分类: 物联网

连接标志
包含以下八个字段:
第0位:保留标志位
第1位:清理会话标志
第2位:遗嘱标志
第3,4位:QoS标志
第5位:遗嘱保留Retain标志
第6位:密码
第7位:用户名
MQTT入门(3)- 分析报文Packet
            
    
    博客分类: 物联网

(2)报文抓取

这里采用Wireshark来抓包,可以在过滤栏filter里输入mqtt来只查看mqtt的通信包。以下抓取了14中报文中最常用的几种,可以参考上边的分析部分一一对应。

连接CONNECT/连接确认CONNACK
因为采用的是公开免费的Broker服务,所以Client ID, User name, Password都是空的。
MQTT入门(3)- 分析报文Packet
            
    
    博客分类: 物联网
MQTT入门(3)- 分析报文Packet
            
    
    博客分类: 物联网

发布消息PUBLISH
MQTT入门(3)- 分析报文Packet
            
    
    博客分类: 物联网

消息订阅SUBSCRIBE/订阅确认SUBACK
MQTT入门(3)- 分析报文Packet
            
    
    博客分类: 物联网
MQTT入门(3)- 分析报文Packet
            
    
    博客分类: 物联网

断开连接DISCONNECT
MQTT入门(3)- 分析报文Packet
            
    
    博客分类: 物联网

参考:
http://www.steves-internet-guide.com/mqtt-protocol-messages-overview/
http://gitbook.cn/books/599e6ab53a09d014a0aba58b/index.html
  • MQTT入门(3)- 分析报文Packet
            
    
    博客分类: 物联网
  • 大小: 2.7 KB
  • MQTT入门(3)- 分析报文Packet
            
    
    博客分类: 物联网
  • 大小: 1.7 KB
  • MQTT入门(3)- 分析报文Packet
            
    
    博客分类: 物联网
  • 大小: 2.6 KB
  • MQTT入门(3)- 分析报文Packet
            
    
    博客分类: 物联网
  • 大小: 2.2 KB
  • MQTT入门(3)- 分析报文Packet
            
    
    博客分类: 物联网
  • 大小: 13.8 KB
  • MQTT入门(3)- 分析报文Packet
            
    
    博客分类: 物联网
  • 大小: 194.5 KB
  • MQTT入门(3)- 分析报文Packet
            
    
    博客分类: 物联网
  • 大小: 191.6 KB
  • MQTT入门(3)- 分析报文Packet
            
    
    博客分类: 物联网
  • 大小: 215.9 KB
  • MQTT入门(3)- 分析报文Packet
            
    
    博客分类: 物联网
  • 大小: 207.8 KB
  • MQTT入门(3)- 分析报文Packet
            
    
    博客分类: 物联网
  • 大小: 187.7 KB
  • MQTT入门(3)- 分析报文Packet
            
    
    博客分类: 物联网
  • 大小: 170.5 KB