`
rensanning
  • 浏览: 3549185 次
  • 性别: Icon_minigender_1
  • 来自: 大连
博客专栏
Efef1dba-f7dd-3931-8a61-8e1c76c3e39f
使用Titanium Mo...
浏览量:38163
Bbab2146-6e1d-3c50-acd6-c8bae29e307d
Cordova 3.x入门...
浏览量:607342
C08766e7-8a33-3f9b-9155-654af05c3484
常用Java开源Libra...
浏览量:682376
77063fb3-0ee7-3bfa-9c72-2a0234ebf83e
搭建 CentOS 6 服...
浏览量:89384
E40e5e76-1f3b-398e-b6a6-dc9cfbb38156
Spring Boot 入...
浏览量:401867
Abe39461-b089-344f-99fa-cdfbddea0e18
基于Spring Secu...
浏览量:69706
66a41a70-fdf0-3dc9-aa31-19b7e8b24672
MQTT入门
浏览量:91732
社区版块
存档分类
最新评论

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

 
阅读更多
既然MQTT是一个通信协议,就有必要看看在通信时的packet报文信息,有助于对协议自身的理解。

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

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

(1)报文分析

标准的MQTT报文结构
主要分为三部分:固定报头(Fixed Header)、可变报头(Variable Header)、有效载荷(Payload)
其中固定报头为2个字节,一定会存在,其他部分可以没有。


最小报文
包含两个字段:控制头部、报头长度


控制头部
包含两个字段:消息类型、标志位


可变报头
包含四个字段:协议名、协议级别、连接标志、保持连接


连接标志
包含以下八个字段:
第0位:保留标志位
第1位:清理会话标志
第2位:遗嘱标志
第3,4位:QoS标志
第5位:遗嘱保留Retain标志
第6位:密码
第7位:用户名


(2)报文抓取

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

连接CONNECT/连接确认CONNACK
因为采用的是公开免费的Broker服务,所以Client ID, User name, Password都是空的。



发布消息PUBLISH


消息订阅SUBSCRIBE/订阅确认SUBACK



断开连接DISCONNECT


参考:
http://www.steves-internet-guide.com/mqtt-protocol-messages-overview/
http://gitbook.cn/books/599e6ab53a09d014a0aba58b/index.html
  • 大小: 2.7 KB
  • 大小: 1.7 KB
  • 大小: 2.6 KB
  • 大小: 2.2 KB
  • 大小: 13.8 KB
  • 大小: 194.5 KB
  • 大小: 191.6 KB
  • 大小: 215.9 KB
  • 大小: 207.8 KB
  • 大小: 187.7 KB
  • 大小: 170.5 KB
1
0
分享到:
评论

相关推荐

    mqtt-xmeter-2.0.2-jar-with-dependencies.zip

    当两者结合,如"mqtt-xmeter-2.0.2-jar-with-dependencies.zip"所示,我们可以构建出针对MQTT服务器的高效性能测试方案。 该压缩包中的核心文件"mqtt-xmeter-2.0.2-jar-with-dependencies.jar"是一个包含所有依赖的...

    MQTT-3.1.1-CN.zip_MQTT-3.1.1-CN_MQTT-3.1.1-CN.pdf_mqtt 3.1.1 文档

    MQTT中文文档,帮助理解MQTT具体协议,用于创建服务器或者客户端

    mqtt-xmeter-syl-jar-with-dependencies.rar

    本压缩包“mqtt-xmeter-syl-jar-with-dependencies.rar”包含了一个名为“mqtt-xmeter-syl-jar-with-dependencies”的文件,这很可能是一个Java应用,用于测试和分析MQTT协议的性能。 首先,我们来深入了解MQTT协议...

    mqtt-xmeter-2.0.2-jar-with-dependencies.jar下载

    "mqtt-xmeter-2.0.2-jar-with-dependencies.jar" 文件就是这样的一个扩展,它使得JMeter能够支持对MQTT协议的测试。 这个jar文件包含了所有必要的依赖,使用户无需额外安装其他库即可在JMeter中执行MQTT相关的测试...

    mqtt-client-0.4.0

    mqtt-client-0.4.0.jar

    paho.mqtt.embedded-c-master.zip_MQTT编程_c mqtt linux_mqtt_paho mq

    标题中的“paho.mqtt.embedded-c-master.zip”是一个开源项目,主要针对MQTT协议的C语言实现,名为Paho MQTT Embedded C。Paho是IBM和Oracle发起的一个开源项目,旨在提供一组支持多种开放标准的消息传递协议(如...

    mqtt-xmeter-jar-with-dependencies.jar

    jmeter-mqtt插件应用于Jmeter对mqtt服务器压力测试

    MQTT-3.1.1-CN(学习MQTT协议的完整中文资料)

    例如,文档中提到的MQTT-3.1.1版本,这个版本主要的改动包括增强了协议规范和改进了协议的互操作性。 由于MQTT协议具有良好的扩展性和灵活性,它在物联网(IoT)领域得到了广泛的应用。物联网中的设备往往受限于...

    mqtt-xmeter-2.0.2-jar-with-dependencies.jar

    MQTT (Message Queue Telemetry Transport),翻译成中文就是,遥测传输协议,其主要提供了订阅/发布两种消息模式,更为简约、轻量,易于使用,特别适合于受限环境(带宽低、网络延迟高、网络通信不稳定)的消息分发...

    paho.mqtt.c-1.3.5.tar.gz

    3. **QoS服务质量等级**:MQTT提供三种服务质量(Quality of Service, QoS)级别,以确保消息的可靠传输: - QoS 0(At most once):消息最多被传递一次,无确认机制,最快速但不保证送达。 - QoS 1(At least ...

    mqtt.fx-1.7.1-windows-x64位安装包

    3. **会话管理**:mqtt.fx支持会话保持,即使客户端断开连接,服务器也会保留其订阅状态,以便在重新连接时恢复。 4. **消息过滤**:用户可以根据需要对接收到的消息进行过滤,只显示特定格式或特定内容的消息。 5. ...

    paho.mqtt.c-master.zip_C++ MQTT_C++实现MQTT_drawvvw_mqtt_mqtt c语言

    3. **安装与配置paho.mqtt.c** 首先,你需要从GitHub或其他源获取paho.mqtt.c-master.zip压缩包,并解压到本地目录。在Linux环境下,通过执行`cmake`和`make`命令进行编译安装。完成安装后,可以将库链接到你的C++...

    MQTT-Client-master.rar_MQTT 服务器_MQTT client_MQTT-master_mqtt 客户

    在本压缩包“MQTT-Client-master.rar”中,包含了一个MQTT客户端的源码,适用于测试MQTT服务器的功能。 首先,我们来详细了解一下MQTT协议的关键特性: 1. **发布/订阅模式**:MQTT采用这种模式,使得消息发布者...

    mqtt-client-1.3-API文档-中文版.zip

    赠送jar包:mqtt-client-1.3.jar; 赠送原API文档:mqtt-client-1.3-javadoc.jar; 赠送源代码:mqtt-client-1.3-sources.jar; 包含翻译后的API文档:mqtt-client-1.3-javadoc-API文档-中文(简体)版.zip 对应...

    paho.mqtt.cpp-master.zip

    3. **创建客户端对象**:实例化`MQTT::Client`对象,指定连接的服务器地址、端口等信息。 4. **连接与认证**:调用`connect()`方法建立连接,可以设置用户名和密码。 5. **订阅与发布**:使用`subscribe()`订阅主题...

    paho.mqtt.embedded-c-master.zip

    3. **协议实现**:全面实现了MQTT 3.1.1标准,包括QoS0、QoS1和QoS2三种服务质量级别,确保数据可靠传输。 4. **网络层兼容性**:库可直接与TCP/IP网络层交互,适应各种网络环境,包括WiFi、蓝牙、蜂窝网络等。 5....

    mqtt-client-1.5-uber.jar

    mqtt-client-1.5-uber.jar

    mqtt-client-1.3-API文档-中英对照版.zip

    赠送jar包:mqtt-client-1.3.jar; 赠送原API文档:mqtt-client-1.3-javadoc.jar; 赠送源代码:mqtt-client-1.3-sources.jar; 包含翻译后的API文档:mqtt-client-1.3-javadoc-API文档-中文(简体)-英语-对照版....

    MQTT-3.1.1-CN.zip_MQTT-3.1.1-CN_MQTT协议_Mqtt protocol_mqtt_mqtt-c

    MQTT-3.1.1-CN,MQTT协议中文版。不错的资料。

Global site tag (gtag.js) - Google Analytics