MQTT協議 MQTT協議簡介

2021-08-10 18:41:09 字數 1544 閱讀 4402

mqtt(messagequeuing telemetry transport,訊息佇列遙測傳輸)是ibm開發的乙個即時通訊協議。mqtt是面向m2m和物聯網的連線協議,採用輕量級發布和訂閱訊息傳輸機制。

它的設計思想是輕巧、開放、簡單、規範,因此易於實現。這些特點使得它對很多場景來說都是很好的選擇,包括受限的環境如機器與機器的通訊(m2m)以及物聯網環境(iot),這些場景要求很小的**封裝或者網路頻寬非常昂貴。

mqtt提供的服務可使應用建立和維持會話,並能使會話獲得同步,選擇需要的運輸服務質量引數(qos),傳送有限的透明使用者資料。

l  精簡,不新增可有可無的功能。

l  發布/訂閱(pub/sub)模式,提供了一對多的訊息分發和應用之間的解耦。

l  允許使用者動態建立主題,零運維成本。

l  很小的傳輸消耗和協議資料交換,最大限度減少網路流量。

l  把低頻寬、高延遲、不穩定的網路等因素考慮在內。

l  支援連續的會話控制,異常連線斷開發生時,能通知到相關各方。

l  理解客戶端計算能力可能很低。

l  提供三種服務質量管理。

l  透明的內容負載。假設資料不可知,不強求傳輸資料的型別與格式,保持靈活性。

該模式帶來了這些好處:

l  發布者與訂閱者不比了解彼此,只要認識同乙個訊息**即可。

l  發布者和訂閱者不需要互動,發布者無需等待訂閱者確認而導致鎖定。

mqtt協議中從網路架構的角度來看包括服務端和客戶端,從訊息傳遞的角度來說包括發布者,**器(伺服器)和訂閱者。或者可以這樣說,客戶端包括了發布者和訂閱者。

mqtt是基於底層傳輸協議基礎設施(wifi,bt,ble等)之上的傳輸層的協議,如果從網路7層協議的角度來看,mqtt應該是傳輸層的協議。

需要注意的是mqtt是基於tcp/ip協議的。而nb-iot是基於udp的,所以nb-iot只能使用coap協議來支撐。

mqtt協議要求基礎傳輸層能夠提供有序的、可靠的、雙向傳輸(從客戶端到服務端和從服務端到客戶端)的位元組流。

mqtt 3.1使用的傳輸層協議是定義的tcp/ip協議。下面的協議也支援:

l   tls協議

l   websocket協議

tcp埠8883和1883已在iana註冊,分別用於mqtt的tls和非tls通訊。

無連線的網路傳輸協議如udp是不支援的,因為他們可能會丟失資料報或對資料報重排序。

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最大優點在於,可以以極少的 和有限的頻寬,為連...