MQTT協議簡介及協議原理

2021-09-29 09:33:15 字數 2463 閱讀 5335

mqtt(message queuing telemetry transport,訊息佇列遙測傳輸協議),是一種基於發布/訂閱(publish/subscribe)模式的「輕量級」通訊協議,該協議構建於tcp/ip協議上,由ibm在2023年發布。mqtt最大優點在於,可以以極少的**和有限的頻寬,為連線遠端裝置提供實時可靠的訊息服務。做為一種低開銷、低頻寬占用的即時通訊協議,使其在物聯網、小型裝置、移動應用等方面有較廣泛的應用。

mqtt是乙個輕量級、基於**的訊息發布/訂閱傳輸協議。mqtt協議是輕量、簡單、開放和易於實現的,這些特點使它適用範圍非常廣泛。在很多情況下,包括受限的環境中,如:機器與機器(m2m)通訊和物聯網(iot)。其在,通過衛星鏈路通訊感測器、偶爾撥號的醫療裝置、智慧型家居、及一些小型化裝置中已廣泛使用。

mqtt協議當前版本為,2023年發布的mqtt v3.1.1。除標準版外,還有乙個簡化版mqtt-sn,該協議主要針對嵌入式裝置,這些裝置一般工作於百tcp/ip網路,如:zigbee。

mqtt協議執行在tcp/ip或其他網路協議,提供有序、無損、雙向連線。其特點包括:

使用的發布/訂閱訊息模式,它提供了一對多訊息分發,以實現與應用程式的解耦。

對負載內容遮蔽的訊息傳輸機制。

對傳輸訊息有三種服務質量(qos):

資料傳輸和協議交換的最小化(協議頭部只有2位元組),以減少網路流量

通知機制,異常中斷時通知傳輸雙方

messagetype

enumeration

解釋reserved0保留

connect

1客戶端到服務端的連線請求

connack

2服務端對連線請求的響應

publish

3發布訊息

puback

4對發布訊息的回應

pubrec

5收到發布訊息(保證傳輸part1)

pubrel

6釋放發布訊息(保證傳輸part2)

pubcomp

7完成發布訊息(保證傳輸part3)

subscribe

8客戶端訂閱請求

subback

9訂閱請求的回應

unsubscribe

10停止訂閱請求

unsubback

11停止訂閱請求響應

pingreq

12ping請求(保持連線)

pingresp

13ping響應

disconnect

14客戶端正在斷開

reserved

15保留

mqtt會構建底層網路傳輸:它將建立客戶端到伺服器的連線,提供兩者之間的乙個有序的、無損的、基於位元組流的雙向傳輸。

當應用資料通過mqtt網路傳送時,mqtt會把與之相關的服務質量(qos)和主題名(topic)相關連。

乙個使用mqtt協議的應用程式或者裝置,它總是建立到伺服器的網路連線。客戶端可以:

mqtt伺服器以稱為「訊息**」(broker),可以是乙個應用程式或一台裝置。它是位於訊息發布者和訂閱者之間,它可以:

訂閱(subscription)

訂閱包含主題篩選器(topic filter)和最大服務質量(qos)。訂閱會與乙個會話(session)關聯。乙個會話可以包含多個訂閱。每乙個會話中的每個訂閱都有乙個不同的主題篩選器。

會話(session)

每個客戶端與伺服器建立連線後就是乙個會話,客戶端和伺服器之間有狀態互動。會話存在於乙個網路之間,也可能在客戶端和伺服器之間跨越多個連續的網路連線。

主題名(topic name)

連線到乙個應用程式訊息的標籤,該標籤與伺服器的訂閱相匹配。伺服器會將訊息傳送給訂閱所匹配標籤的每個客戶端。

主題篩選器(topic filter)

乙個對主題名萬用字元篩選器,在訂閱表示式中使用,表示訂閱所匹配到的多個主題。

負載(payload)

訊息訂閱者所具體接收的內容

mqtt協議中定義了一些方法(也被稱為動作), 來於表示對確定資源所進行操作。 這個資源可以代表預先存在的資料或動態生成資料,這取決於伺服器的實現。通常來說,資源指伺服器上的檔案或輸出。

connect,等待與伺服器建立連線,當乙個tcp/ip套接字在伺服器端和客戶端連線建立時需要使用的命令。

disconnect,等待mqtt客戶端完成所做的工作,並與伺服器斷開tcp/ip會話

subscribe,等待完成訂閱,允許乙個客戶端註冊自已感興趣的topic 名字,發布到這些topic的訊息會以publish message的形式由伺服器端傳送給客戶端。

unsubscribe,等待伺服器取消客戶端的乙個或多個topics訂閱

MQTT協議 MQTT協議簡介及協議原理

mqtt message queuing telemetry transport,訊息佇列遙測傳輸協議 是一種基於發布 訂閱 publish subscribe 模式的 輕量級 通訊協議,該協議構建於tcp ip協議上,由ibm在1999年發布。mqtt最大優點在於,可以以極少的 和有限的頻寬,為連...

MQTT協議 MQTT協議簡介及協議原理

mqtt message queuing telemetry transport,訊息佇列遙測傳輸協議 是一種基於發布 訂閱 publish subscribe 模式的 輕量級 通訊協議,該協議構建於tcp ip協議上,由ibm在1999年發布。mqtt最大優點在於,可以以極少的 和有限的頻寬,為連...

MQTT協議 MQTT協議簡介及協議原理

mqtt message queuing telemetry transport,訊息佇列遙測傳輸協議 是一種基於發布 訂閱 publish subscribe 模式的 輕量級 通訊協議,該協議構建於tcp ip協議上,由ibm在1999年發布。mqtt最大優點在於,可以以極少的 和有限的頻寬,為連...