簡介
mqtt全稱為 message queuing telemetry transport(訊息佇列遙測傳輸)是一種基於發布/訂閱正規化的,非常適合小型裝置或網路糟糕的環境下,因此被廣泛應用於iot系統中。
mqtt工作在應用層,一般借助tcp/ip實現資料報傳輸功能,mqtt在傳輸層上傳輸的是流資料,因此理論上mqtt可以使用任何有線或無線的傳輸介質實現資料報傳輸。
mqtt基於發布/訂閱機制,乙個通訊鏈路分工主要分為三種身份:發布者(publisher)、**(broker)和訂閱者(subscriber)。訊息的分發和許可權控制由主題(topic)實現。
協議格式
目前應用比較廣泛的是mqtt3.1.1,這個版本包括各種資料傳輸所需的功能和特徵,而且對應生態非常成熟,因此以mqtt 3.1.1為例介紹一下mqtt的協議格式。
mqtt控制報文主要由三個部分組成
固定報頭:固定報頭有2byte,其中報文型別共有14種,標誌在mqtt 3.1.1中只用了一種。
剩餘長度用於指定從第二個位元組開始的剩餘位元組數。
可變報頭:可變報頭的報文識別符號主要用於提高訊息傳輸可靠性,原理類似於tcp協議中的包序號,因此高qos下需要可變報頭。
載荷:載荷是需要傳遞的具體內容,只有部分報文需要載荷
mqtt本身是一種輕量級通訊協議,協議格式的主要就這三部分,具體的各種標誌符定義可以參照附件提供的mqtt 3.1.1協議文件。
可靠性控制qos
qos是訊息傳遞的服務質量水平,分為3級。
qos level0:至多一次,只發一次,不確保到達。
qos level1:至少一次,確保訊息到達但可能有重複
qos level2:只有一次,確保訊息到達且無重複
遺囑機制
last will&testament:遺囑機制,發布者在正常連線時可以在**伺服器上儲存乙個遺囑,當該發布者意外斷開後伺服器會向所有相關訂閱者傳送這條遺囑。
mqtt3.1.1協議文件:
參考文章:
MQTT協議 MQTT協議簡介
mqtt messagequeuing telemetry transport,訊息佇列遙測傳輸 是ibm開發的乙個即時通訊協議。mqtt是面向m2m和物聯網的連線協議,採用輕量級發布和訂閱訊息傳輸機制。它的設計思想是輕巧 開放 簡單 規範,因此易於實現。這些特點使得它對很多場景來說都是很好的選擇,...
MQTT協議簡介
由於在充電樁專案中和雲平台通訊用的是mqtt協議,所以來簡單學習了解下mqtt協議。mqtt message queuing telemetry transport,訊息佇列遙測傳輸協議 是一種基於發布 訂閱 publish subscribe 模式的 輕量級 通訊協議,該協議構建於tcp ip協議...
MQTT協議簡介
mqtt message queuing telemetry transport,訊息佇列遙測傳輸協議 是一種基於發布 訂閱 publish subscribe 模式的 輕量級 通訊協議,該協議構建於tcp ip協議上,由ibm在1999年發布。mqtt最大優點在於,可以以極少的 和有限的頻寬,為連...