MQTT协议14种报文分析
实习报告
课 程 名 称: _____ 实 习 题 目: ___________________ 专 业 班 级: _____________ 学 生 姓 名: __________ 学 号: ___________ 实 习 成 绩:
指导教师签名: 年 月 日
天津工业大学计算机科学与软件学院 实习报告
实习时间 实习地点 实习学时 学习MQTT协议,对各个MQTT报文进行协议分析。 学习java语言的socket编程基础,利用paho库实现MQTT客户端程序。 实习 目的 利用相关工具捕获MQTT协议的相关报文, 实习 内容 分析MQTT协议的14种报文。 学会直接构造MQTT报文,完成通信,并理解回调机制 记录MQTT实验过程、截图分析并说明 利用socket直接构造MQTT报文,完成与服务器进行通信, 实现连接服务器、订阅主题、发送消息等功能。 利用paho库实现MQTT客户端,实现所有功能,并理解回调机制 装有WiresharkPortable、paho、mosquitto、npcap、 实习 主要 设施 设备 jdk-8u112-windows-i586等程序的PC机一台 对MQTT协议有了一定的认识,知道如何分析各种报文。 对MQTT协议编程有了一定的基础和了解。 实 习 要 求 实 习 成 果 天津工业大学计算机科学与软件学院 实习报告
实习报告 1 引言 1.1系统概述 MQTT协议的分析与编程实验 1.2 需求分析 基于轻量级代理的发布/订阅协议,更为简约、轻量,易于使用,针对受限环境(带宽低、网络延迟高、网络通信不稳定),属于物联网的一个传输协议。设计思想是开放、简单、轻量、易于实现。 1.3 运行环境 装并打开mosquitto服务器;安装MQTT客户端EclipsePahoMQTT;安装npcap;安装WiresharkPortable协议分析软件;安装jdk;Window7系统。构造服务器环境。 2 协议分析实验 2.1 实验准备 实验环境:JDK环境 实验方法及步骤: 1.MQTT服务器端mosquitto (1)下载并安装mosquitto (2)确认安装完后,所有所有的程序都安装在这个目录下,C:\\Program Files (x86)\\mosquitto。如果你不想在其他的操作系统上也执行安装程序,把C:\\Program Files (x86)\\mosquitto这个文件夹拷贝到任何路径 (3)进入d:\\mosquitto,输入下面的命令, cd d:\\mosquitto 天津工业大学计算机科学与软件学院 实习报告 mosquitto -p 1883 -v -p 代表当前的mosquitto服务实例启动以后,其监听端口号,这个配置的覆盖[-c config file] 指定的配置文件中的端口 -v 代码调试模式(verbose)可以输出更多的信息 2.MQTT客户端Eclipse Paho MQTT (1)下载解压缩后,双击paho.exe,打开后的对界面如下 (2)点击上图中的 十字图标,就能新建一个MQTT的客户端的连接,输入正确的MQTT服务端的连接地址, (3)这个时候我们就能订阅消息了。选择“Subscription”下方的绿色十字图标,就可以输入订阅的主题(topic)的名字,比如我们设置主题名称为“test”,并点击“Subscribe”按钮 (4)往MQTT服务发送一条某一主题的MQTT消息。然后点击“Publish”按钮,这个时候,我们就能看到消息已经发送成功,且在步骤(3)订阅的同一主题也收到了消息。 3.安装和使用协议分析软件wireshark (1)安装WiresharkPortable_2.2.1.paf.exe (2)捕获MQTT协议报文 (3)在Wireshark中,分为capture filter和Display Filer,我们只需要在WireShark软件中的capture filter 输入下面的过滤条件,则与MQTT服务交互的相关TCP的数据包就能抓取到。如下图所示意. 天津工业大学计算机科学与软件学院 实习报告
这个时候,我们先启动WireShark,然后点击Eclipse Paho MQTT工具的“Connect”,这个时候WireShark就能抓取下面的TCP数据包。 2.2 主要实验步骤 操作:按照“MQTT-3.1.1-CN”文档各种报文的实现方法依次实现,抓包结果截图,结合参考文档分析实验结果。 结果:如下各图所示 14种报文分析说明具体如下: 1.CONNECT – 连接服务端