MQTT协议14种报文分析 - 图文(2)

2019-08-20 20:15

天津工业大学计算机科学与软件学院 实习报告

分析说明: 固定报头:0001 0000其中MQTT报文控制类型0001,保留位0000 剩余长度字段:为16进制的1c,表示剩余长度等于可变报头的长度(10字节)加上有效载荷的长度为28。 可变报头:CONNECT报文的可变报头按下列次序包含四个字段:协议名(Protocol Name),协议级别(Protocol Level),连接标志(Connect Flags)和保持连接(Keep Alive) 协议名字节构成:00 04 4d 51 54 54,表示长度为4的“MQTT”协议名称 协议级别字节构成:04,对于3.1.1版协议,协议级别字段的值是4(0x04)。 连接标志:02,对应2进制0000 0010,服务端必须验证CONNECT控制报文的保留标志位(第0位)是否为0,如果不为0必须断开客户端连接 。 清理会话位置为连接标志字节的第1位 ,清理会话标志被设置为1,客户端和服务端必须丢弃之前的任何会话并开始一个新的会话。 遗嘱标志位置为连接标志的第2位,遗嘱标志被设置为0,连接标志中的Will QoS和Will Retain字段必须设置为0,并且有效载荷中不能包含Will Topic和Will Message字段,网络连接断开时,不能发送遗嘱消息。 遗嘱QoS位置为连接标志的第4和第3位。这两位用于指定发布遗嘱消息时使用的服务质量等级,因为此例遗嘱标志位置被置0,所以0,遗嘱QoS也必须设置为0(0x00) 遗嘱保留位置为连接标志的第5位。 遗嘱标志被设置为0,遗嘱保留(Will Retain)标志也必须设置为0 用户名标志位置为连接标志的第7位。此例用户名标志被设置为0,有效载荷中不能包含用户名字段 密码标志位置为连接标志的第6位。因为此例用户名标志被设置为0,密码标志也必须设置为0 保持连接:保持连接字节为00 3c,其中保持连接KeepAliveMSB为00,保持连接KeepAliveLSB为3c 有效载荷:00 10 70 61 68 6f 38 37 32 32 38 35 35 32 31 39 34 3,其中表示随后长度为16,此例有效载荷只有客户端标识符即paho 872285521941 2.CONNACK – 确认连接请求 天津工业大学计算机科学与软件学院 实习报告

3.PUBLISH-发布消息: 分析说明: 以Q0S=1为例: 固定报头:0011 0010,其中MQTT报文控制类,0011,保留位0010,重发标志位置为第1个字节,第3位,DUP=0,表示这是客户端或服务端第一次请求发送这天津工业大学计算机科学与软件学院 实习报告

个PUBLISH报文。服务质量等级位置为第1个字节,第2-1位,QoS=01,表示至少分发一次。保留标志位置为第1个字节,第0位,例图中为0. 剩余长度字段:为16进制的0a,表示可变报头的长度。表示可变报头的长度加上有效载荷的长度为10. 可变报头:为16进制的00 03 31 31 30 00 06 31 32 33,00 03表示主题长度为3,31 31 30即主题名110,00 06为报文标识符,其中报文标识符MSL为16进制的00,报文标识符LSB为16进制的06,31 32 33为发布内容123 有效载荷:有效载荷包含将被发布的应用消息。数据的内容和格式是应用特定的。有效载荷的长度这样计算:用固定报头中的剩余长度字段的值减去可变报头的长度。包含零长度有效载荷的PUBLISH报文是合法的。此例的有效载荷即为零长度。 4.PUBACK– 发布确认 分析说明: 固定报头:0100 0000,其中MQTT报文控制类,0100,保留位0000 剩余长度字段:为16进制的02,表示可变报头的长度。对PUBREL报文这个值等于2. 可变报头:为16进制的00 06,其中报文标识符MSL为16进制的00,报文标识符LSB为16进制的06 有效载荷:PUBACK报文没有有效载荷。 5.PUBREC– 发布收到QoS2第一步 天津工业大学计算机科学与软件学院 实习报告

分析说明: 固定报头:0101 0000,其中MQTT报文控制类,0101,保留位0000 剩余长度字段:为16进制的02,表示可变报头的长度。对PUBREL报文这个值等于2. 可变报头:为16进制的00 07,其中报文标识符MSL为16进制的00,报文标识符LSB为16进制的07 有效载荷:PUBREC报文没有有效载荷。 6.PUBREL– 发布释放QoS2第二步 天津工业大学计算机科学与软件学院 实习报告

分析说明: 固定报头:0110 0010,其中MQTT报文控制类,0110,保留位0010 剩余长度字段:为16进制的02,表示可变报头的长度。对PUBREL报文这个值等于2. 可变报头:为16进制的00 07,其中报文标识符MSL为16进制的00,报文标识符LSB为16进制的07 有效载荷:PUBREL报文没有有效载荷。 7.PUBCOMP– 发布完成QoS2第三步


MQTT协议14种报文分析 - 图文(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:计量经济学(2006硕士)A试题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: