既然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
分享到:
相关推荐
mqtt-xmeter-2.0.2-jar-with-dependencies.zip
MQTT中文文档,帮助理解MQTT具体协议,用于创建服务器或者客户端
mqtt-xmeter-syl-jar-with-dependencies.rar
MQTT-3.1.1-CN(学习MQTT协议的完整中文资料),该文档详细描述了MQTT协议,希望对MQTT深入学习的童鞋值得下载。
JMeter测试Mqtt协议所需jar
mqtt.fx-1.7.1-windows-x64位安装包,完美使用
jmeter-mqtt插件应用于Jmeter对mqtt服务器压力测试
paho.mqtt.embedded-c-master.zip paho.mqtt.embedded-c-master.zip paho.mqtt.embedded-c-master.zip
mqtt linux paho.mqtt.embedded-c-master.zip软件包
MQTT (Message Queue Telemetry Transport),翻译成中文就是,遥测传输协议,其主要提供了订阅/发布两种消息模式,更为简约、轻量,易于使用,特别适合于受限环境(带宽低、网络延迟高、网络通信不稳定)的消息分发...
mqtt协议的开源实现,中国移动onenet平台MQTT套件中官方c demo使用的第三方库paho.mqtt.c-1.3.0
mqtt-client-0.4.0.jar
paho.mqtt.c-master,mqtt C语言库
赠送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 对应...
mqtt-client-1.5-uber.jar
赠送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,MQTT协议中文版。不错的资料。
# Eclipse Paho MQTT C/C++ client for Embedded platforms This repository contains the source code for the [Eclipse Paho](http://eclipse.org/paho) MQTT C/C++ client library for Embedded platorms.
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议