天天看點

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裝置網絡行為

繼續閱讀