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和物聯網的連線協議,採用輕量級發布和訂閱訊息傳輸機制。它的設計思想是輕巧 開放 簡單 規範,因此易於實現。這些特點使得它對很多場景來說都是很好的選擇,...