MQTT 協議解析

2021-08-03 10:30:12 字數 2553 閱讀 4752

wireshark安裝包:網路抓包工具

qmqtt原始碼:mqtt客戶端原始碼(qt版本)

官網:英文版協議說明文件:

中文版協議說明文件

###1.1幀結構

fixed header, present in all mqtt control packets

variable header, present in some mqtt control packets

payload, present in some mqtt control packets

幀 = 固定頭+可變頭+載荷

###1.2 幀型別

name

value

drirection

description

reserved

0forbidden

reserved

connect

1client to server

client request to connect to server

connack

2server to client

connect acknowledgment

publish

3client to server or server to client

publish message

puback4同上

publish acknowledgment

pubrec5同上

publish received (assured delivery part 1)

pubrel6同上

publish release (assured delivery part 2)

pubcomp7同上

publish complete (assured delivery part 3)

subscribe

8client to server

client subscribe request

suback

0server to client

subscribe acknowledgment

unsubscribe

9client to server

unsubscribe request

unsuback

aserver to client

unsubscribe acknowledgment

pingreq

bclient to server

ping request

pingresp

cserver to client

ping response

disconnect

dclient to server

client is disconnecting

reserved

eforbidden

reserved

開啟wireshark 後主介面會顯示網路的連線有那些,如果安裝了虛擬機器的話會有如下的連線:

選擇 realtek pcie…

雙擊進入如下介面

選擇過濾為 mqtt(見左上角),這樣的話wireshark就只會顯示mqtt協議的包了。

與伺服器連線時可以使用will topic 和will msg,

它倆的作用是什麼呢?

就是在這個客戶端非正常的退出時,伺服器會推送這個topic給定閱了這個topic的客戶端。

這裡我們的client id沒有填寫,而在我們的抓包中(下圖)可以看到到乙個字串,這是qmqtt生成的乙個uuid

對照協議文件再看wrieshark所抓的包,就可以清楚的明白,幀結構了。

這裡我們定閱了乙個主題是:guangzhou/huangpu

抓出來的包如下:

這裡我們發布了乙個主題訊息:work here

以下是抓到的包:

其它的幀可以通過同樣的方法可以抓到,如此我們就可以根據資料來分析幀的結構了。(對照文件)

MQTT協議 MQTT協議解析

協議就是通訊雙方的乙個約定,即,表示第1位傳輸的什麼 第2位傳輸的什麼 在mqtt協議中,乙個mqtt資料報由 固定頭 fixed header 可變頭 variable header 訊息體 payload 三部分構成。mqtt 資料報結構 固定頭存在於所有mqtt資料報中,其結構如下 bit76...

mqtt介紹 協議解析

物聯網 internet of things,iot 最近 率越來越高。雖然http是網頁的事實標準,不過機器之間 machine to machine,m2m 的大規模溝通需要不同的模式 之前的請求 回答 request response 模式不再合適,取而代之的是發布 訂閱 publish su...

MQTT協議 MQTT協議簡介

mqtt messagequeuing telemetry transport,訊息佇列遙測傳輸 是ibm開發的乙個即時通訊協議。mqtt是面向m2m和物聯網的連線協議,採用輕量級發布和訂閱訊息傳輸機制。它的設計思想是輕巧 開放 簡單 規範,因此易於實現。這些特點使得它對很多場景來說都是很好的選擇,...