物聯網通信協議之MQTT

1、MQTT 協議的定義

MQTT 協議翻譯成中文叫消息隊列遙測傳輸,最早來自於IBM公司,是爲硬件性能低下的遠程設備以及網絡狀況糟糕的情況下而設計的發佈/訂閱型消息協議。它工作在TCP/IP協議上,具有輕量、簡單、開放和易於實現的特點,廣泛應用在物聯網行業上,如在智能家居,智慧農業,智慧社區的設備中。2014年發佈的MQTT v3.1.1是當前MQTT協議的最新版本。

2、MQTT幾個特點

1、使用發佈/訂閱消息模式,提供一對多的消息發佈,方便消息在設備間傳遞,有效解耦。

2、對負載內容屏蔽的消息傳輸;

3、使用 TCP/IP 提供網絡連接,標準版本的MQTT是使用TCP連接進行數據推送,TCP提供IP環境下的數據可靠傳輸保證了MQTT傳輸的可靠性。

4、有三種消息發佈服務質量:

    • “至多一次”,數據僅僅傳輸一次,收不到無所謂,常用在傳感器上報的場景中,因爲傳感器的信息傳遞是連續的,這次收不下,還有下次
    • “至少一次”,發送設備可以發送多次消息,接收設備至少能收到一次,也可能收到多次。
    • “只有一次”,確保消息到達一次,消息不會多,也不會少,只有一次被終端設備接收。

5、傳輸數據量小,MQTT協議交換的數據量非常小,只有固定2個字節;

6、具有遺言機制和遺囑機制,用於通知同一個主題下各方客戶端,發送遺言的設備已經斷開了連接。

3、消息中間件-消息代理(Broker)

MQTT 協議工作過程中需要一個消息服務器,也稱爲消息代理(Broker),將消息存放在若干隊列中,在合適的時候再將消息轉發給接收設備。當接收設備收到信息觸發事件完成相對應的操作。它有四個功能:

  1. 【網絡連接】,接受來自客戶端的網絡連接請求
  2. 【隊列緩存消息數據】,保存客戶端發佈的數據信息
  3. 【斷開網絡】,處理來自客戶端的訂閱和退訂請求
  4. 【消息數據轉發】,向訂閱的客戶端轉發數據信息

4、MQTT協議數據包結構

MQTT數據包由三部分構成:固定頭、可變頭、消息體

固定頭存在於所有MQTT數據包中,表示數據包類型及數據包的分組類標識

可變頭的內容因數據包類型而不同,較常的應用是作爲包的標識

表示客戶端收到的具體內容,有CONNECT、SUBSCRIBE、SUBACK、UNSUBSCRIBE四種類型

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章