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

2021-08-19 06:56:27 字數 2187 閱讀 4685

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

mqtt協議特點

mqtt協議原理

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

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

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

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

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

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

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

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

2.1mqtt協議實現方式

2.2 網路傳輸與應用訊息

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

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

2.3mqtt客戶端

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

2.4mqtt伺服器

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

2.5mqtt協議中的訂閱、主題、會話

訂閱(subscription)

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

會話(session)

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

主題名(topic name)

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

主題篩選器(topic filter)

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

負載(payload)

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

2.6mqtt協議中的方法

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

connect,等待與伺服器建立連線

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

subscribe,等待完成訂閱

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

publish,mqtt客戶端傳送訊息請求,傳送完成後返回應用程式執行緒

分類: 

android,

iot

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