天津工业大学计算机科学与软件学院 实习报告
分析说明: 固定报头:1100 0000,其中MQTT报文控制类型1100,保留位00000 可变报头:PINGREQ报文没有可变报头。 有效载荷:PINGREQ报文没有有效载荷。 13 PINGRESP – 心跳响应 天津工业大学计算机科学与软件学院 实习报告
分析说明: 固定报头:1101 0000,其中MQTT报文控制类,1101,保留位0000 可变报头:PINGRESP报文没有可变报头。 有效载荷:PINGRESP报文没有有效载荷。 14 DISCONNECT –断开连接 分析说明: 固定报头:1110 0000,其中MQTT报文控制类型1110,保留位0000 可变报头:DISCONNECT报文没有可变报头。 有效载荷:DISCONNECT报文没有有效载荷。 2.3 思考与总结 1.说明paho和mosquitto的作用,它们与发布/订阅模式的关系。 Paho是MQTT服务器客户端,Mosquitto是MQTT服务器端,助paho和mosquitto均可作为MQTT服务器的实现,可实现发布/订阅模式 2.MQTT中变长字段有哪些?接收端如何判断变长字段结束? MQTT中变长字段有剩余长度,当剩余长度字段的标志位为0时表示变长字段结束。 3.构造、捕获并分析带有客户端标识符,遗嘱主题,遗嘱消息,用户名,密码的Connect消息。 天津工业大学计算机科学与软件学院 实习报告
分析说明: 固定报头:0001 0000报文控制类型0001,保留位0000 剩余长度字段:为16进制的32,表示剩余长度等于可变报头的长度(10字节)加上有效载荷的长度为50. 可变报头:CONNECT报文的可变报头按下列次序包含四个字段:协议名(Protocol Name),协议级别(Protocol Level),连接标志(Connect Flags)和保持连接(Keep Alive) 协议名字节构成:00 04 4d 51 54 54,表示长度为4的“MQTT”协议名称 协议级别字节构成:04,对于3.1.1版协议,协议级别字段的值是4(0x04)。 连接标志:c6,对应2进制1100 0110,服务端必须验证CONNECT控制报文的保留标志位(第0位)是否为0,如果不为0必须断开客户端连接 。 清理会话位置为连接标志字节的第1位 ,清理会话标志被设置为1,客户端和天津工业大学计算机科学与软件学院 实习报告
服务端必须丢弃之前的任何会话并开始一个新的会话。 遗嘱标志位置为连接标志的第2位,遗嘱标志被设置为1,表示如果连接请求被接受了,遗嘱(Will Message)消息必须被存储在服务端并且与这个网络连接关联。之后网络连接关闭时,服务端必须发布这个遗嘱消息,除非服务端收到DISCONNECT报文时删除了这个遗嘱消息。且连接标志中的Will QoS和Will Retain字段会被服务端用到,同时有效载荷中必须包含Will Topic和Will Message字段。 遗嘱QoS位置为连接标志的第4和第3位。这两位用于指定发布遗嘱消息时使用的服务质量等级,因为此例遗嘱标志位置被置0,所以0,遗嘱QoS也必须设置为0(0x00) 遗嘱保留位置为连接标志的第5位。此例遗嘱保留被设置为0且遗嘱标志被设置为1,服务端必须将遗嘱消息当作非保留消息发布。 用户名标志位置为连接标志的第7位。此例用户名标志被设置为1,有效载荷中必须包含用户名字段。 密码标志位置为连接标志的第6位。此例密码标志被设置为1,有效载荷中必须包含密码字段 保持连接:保持连接字节为00 3c,其中保持连接KeepAliveMSB为00,保持连接KeepAliveLSB为3c 有效载荷:00 12 70 61 68 6f 31 30 35 35 34 37 35 35 30 35 37 37 38 30 00 03 31 31 30 00 03 31 31 30 00 03 31 31 30 00 03 31 31 30,其中00 12表示随后客户端标识符长18个字节即paho 0554755057780,接着00 03表示随后的遗嘱主题长3个字节即110,接着00 03表示随后的遗嘱消息长3个字节即110,接着00 03表示随后的用户名长3个字节即110,接着00 03表示随后的密码长3个字节即110 4.构造、捕获并分析订阅多个不同Qos级别的主题Subscribe消息。 同时订阅QoS级别分别为0、1、2的消息。 ① 三种方式固定头部的前两个字节均为:82 表示为请求订阅; ②Qos表示字段仅仅跟着Topic字段之后,16进制代码为:00 01 10表示天津工业大学计算机科学与软件学院 实习报告
为0 1 2三种情况。 5.构造、捕获并分析长度大于 127 字节的报文。 ①当出现大于127字节的报文时,会在PUBLISH后出现几个TCP报文; ②TCP报文的数据内筒不一样,但序号相同。 6.构造、捕获并分析Qos=1和Qos=2时丢包的处理情况。