MQTT協議已經成了物聯網通信中的一個熱詞,今天我們一起來學習一下關于MQTT協議的一些知識。
1 發展
IBM公司的安迪·斯坦福-克拉克及Cirrus Link公司的阿蘭·尼普于1999年撰寫了該協議的第一個版本。
在2013年IBM公司向結構化資訊標準促進組織提交了MQTT 3.1版規范,并附有相關章程,以確保只能對規范進行少量更改。
2 概述
MQTT(消息隊列遙測傳輸)協議是ISO 標準(ISO/IEC PRF 20922)下基于發布/訂閱范式的消息協議。它工作在TCP/IP協議族上,是為硬件性能低下的遠程設備以及網絡狀況糟糕的情況下而設計的發布/訂閱型消息協議。
MQTT是一個基于客戶端-服務器的消息發布/訂閱傳輸協議,MQTT協議是輕量、簡單、開放和易于實現的,這些特點使它適用范圍非常廣泛。如:機器與機器(M2M)通信和物聯網(IoT)。
在通過衛星鏈路通信傳感器、偶爾撥號的醫療設備、智能家居、及一些小型化設備中也被廣泛使用。
3 規范
由于物聯網環境具有一定的特殊性,所以MQTT設計都需要遵守以下規范:
①精簡,不添加可有可無的功能;
②發布/訂閱(Pub/Sub)模式,方便消息在傳感器之間傳遞;
③允許用戶動態創建主題,零運維成本;
④把傳輸量降到最低以提高傳輸效率;
⑤把低帶寬、高延遲、不穩定的網絡等因素考慮在內;
⑥支持連續的會話控制;
⑦理解客戶端計算能力可能很低;
⑧提供服務質量管理;
⑨假設數據不可知,不強求傳輸數據的類型與格式,保持靈活性。
4 特點
MQTT協議工作在低帶寬、不可靠的網絡的遠程傳感器和控制設備通訊而設計的協議,它具有以下主要的幾項特性:
①使用發布/訂閱消息模式,提供一對多的消息發布,解除應用程序耦合。
②對負載內容屏蔽的消息傳輸。
③使用TCP/IP提供網絡連接。
④有“至多一次”“至少一次”“只有一次”三種消息發布服務質量。
⑤小型傳輸,開銷很?。ü潭ㄩL度的頭部是2字節),協議交換最小化,以降低網絡流量。
⑥使用Last Will和Testament特性通知有關各方客戶端異常中斷的機制。
5 原理
實現MQTT協議需要客戶端和服務器端通訊完成,在通訊過程中,MQTT協議中有三種身份:發布者(Publish)、代理(Broker)(服務器)、訂閱者(Subscribe)。
其中,消息的發布者和訂閱者都是客戶端,消息代理是服務器,消息發布者可以同時是訂閱者。
MQTT傳輸的消息分為:主題(Topic)和負載(payload)兩部分:
Topic,可以理解為消息的類型,訂閱者訂閱(Subscribe)后,就會收到該主題的消息內容(payload);
payload,可以理解為消息的內容,是指訂閱者具體要使用的內容。
MQTT客戶端是指使用MQTT協議的應用程序或者設備,它總是建立到服務器的網絡連接。
客戶端可以是:
(1)發布其他客戶端可能會訂閱的信息;
(2)訂閱其它客戶端發布的消息;
(3)退訂或刪除應用程序的消息;
(4)斷開與服務器連接。
MQTT服務器以稱為"消息代理"(Broker),可以是一個應用程序或一臺設備。
它是位于消息發布者和訂閱者之間,它可以:
(1)接受來自客戶的網絡連接;
(2)接受客戶發布的應用信息;
(3)處理來自客戶端的訂閱和退訂請求;
(4)向訂閱的客戶轉發應用程序消息。
審核編輯:劉清
-
物聯網
+關注
關注
2924文章
45715瀏覽量
386152 -
MQTT協議
+關注
關注
0文章
98瀏覽量
5763
原文標題:物聯網中的MQTT協議
文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
工業無線MQTT物聯網網關
萌新闖關之物聯網MQTT協議梳理
萌新闖關之物聯網MQTT協議梳理
物聯網硬件接入之通信協議(MQTT,CoAP,LwM2M協議)的詳細資料概述

物聯網硬件接入之通信協議(MQTT,CoAP,LwM2M協議)的詳細資料概述

物聯網協議MQTT

評論