天天看点

mqtt调试工具_抓包工具Wireshark分析IoT设备网络行为

mqtt调试工具_抓包工具Wireshark分析IoT设备网络行为

1. 背景

当我们进行物联网开发过程中,设备调试有时候很难进行,就需要借助网络抓包工具Wireshark来帮我们分析设备行为,定位问题。下面我们通过一个简单案例,给大家讲解使用Wireshark分析设备与阿里云IoT物联网平台通信的过程。

2. 准备工作

2.1 创建设备

在阿里云IoT物联网平台创建产品,并注册设备,获取三元组。

mqtt调试工具_抓包工具Wireshark分析IoT设备网络行为

2.2 设备模拟程序

我们在电脑上用Nodejs编写device模拟程序,建立连接,订阅,发布,断开连接。

2.3 使用Wireshark抓取网络包

IoT物联网平台使用MQTT协议通信,我们只需要配置如下规则即可:

 tcp and port 1883 

mqtt调试工具_抓包工具Wireshark分析IoT设备网络行为

2.4 启动模拟程序

mqtt调试工具_抓包工具Wireshark分析IoT设备网络行为

3. 网络抓包分析

随着模拟脚本执行完毕,完整的MQTT网络交互过程都在wireshark捕捉到了。

为了方便我把设备ip标记成了 device,本次连接的阿里云IoT的IP保持不变。

3.1 TCP的三次握手

mqtt调试工具_抓包工具Wireshark分析IoT设备网络行为

上面截图红框部分就是 TCP 的三次握手行为。由device的发起,设备端用的端口是 56150。

3.2 MQTT的CONNECT行为

下图展示了MQTT的Connect的行为。

点击Connect记录,在底部可以看到详细报文。其中client id,user name,password是这次CONNECT用来验证设备合法性的身份信息。想了解细节请 移步这里。

mqtt调试工具_抓包工具Wireshark分析IoT设备网络行为

身份验证完成,IoT物联网平台会回复CONNACK作为CONNECT的响应。

mqtt调试工具_抓包工具Wireshark分析IoT设备网络行为

3.3 MQTT的SUBSCRIBE行为

下图展示了device向IoT物联网平台订阅topic的过程。这里device主动订阅了一个Topic,见红框部分。

mqtt调试工具_抓包工具Wireshark分析IoT设备网络行为

下图展示了IoT物联网平台响应device订阅的行为。

mqtt调试工具_抓包工具Wireshark分析IoT设备网络行为

3.3 MQTT的PUBLISH行为

下图展示了device向IoT物联网平台PUBLISH一条QoS=1的消息。在报文信息里,我们可以看到消息对应的Topic和Payload。

mqtt调试工具_抓包工具Wireshark分析IoT设备网络行为

由于是QoS=1消息,IoT物联网平台会回复一条PUBACK给device。

mqtt调试工具_抓包工具Wireshark分析IoT设备网络行为

在IoT物联网控制台的日志服务也能看到这条消息日志。

mqtt调试工具_抓包工具Wireshark分析IoT设备网络行为

3.4 MQTT的DISCONNECT行为

下图展示了device主动发起DISCONNECT命令,断开MQTT连接通道。

mqtt调试工具_抓包工具Wireshark分析IoT设备网络行为

3.5 TCP的四次挥手

mqtt调试工具_抓包工具Wireshark分析IoT设备网络行为

在IoT物联网控制台的日志服务也能看到完整的设备上下线日志,如下。

mqtt调试工具_抓包工具Wireshark分析IoT设备网络行为

4. 结束语

至此,我们掌握了使用Wireshark抓包工具分析设备和阿里云IoT物联网平台网络通信的基本技能,希望对大家IoT物联网开发有所帮助。

5. 附录

TCP层的几个标识

mqtt调试工具_抓包工具Wireshark分析IoT设备网络行为
mqtt调试工具_抓包工具Wireshark分析IoT设备网络行为

继续阅读