作為物聯網世界玩家,我們知道你想通過設備快速傳遞信息。你希望一直保持更新,從而獲得最新的實時信息。然而,我們也知道要找到合適的技術來實現此愿望是十分困難的。幸運的是,MQTT或許對你有所幫助。
MQTT指消息隊列遙測傳輸,是物聯網的機器對機器(M2M,machine-to-machine)連接協議。MQTT是一個輕量級的發布和訂閱協議,通過它可以在低帶寬環境中發送和接收機器對機器的遙測消息。例如,通過衛星鏈路與broker溝通或在家庭自動化和一些小型設備場景中,MQTT是非常適用的。因為它體積小,功耗低,數據包最小化,并能有效地將信息分發到一個或多個接收者,因此MQTT也是移動應用的理想選擇。
MQTT最初由Andy Stanford-Clark(IBM)和Arlen Nipper(Arcom)于1999年設計,用于通過衛星連接石油管道遙測系統。盡管MQTT是在很久之前創建的,目的僅在特定場景下進行有限使用,但它正在迅速成為物聯網(Internet of Things)的主要協議之一,其中包含了大量的應用程序。它一開始只是一個專有協議,但這些年來對它的需求日益增大,因此它在2010年發布了免稅版,并在2014年成為OASIS標準。
自從其標準化以來,該協議一直很容易適應各種物聯網設備、平臺和操作系統。Microsoft、Azure等企業云平臺通過MQTT公開其IoT PaaS,而那些沒有使用MQTT的物聯網應用開發者都無法取得更進一步的突破。
不同的 MQTT 版本
- MQTT v3.1.0 - 最初的版本,設計于1999年,為TCP/IP網絡創建。
- MQTT v3.1.1 - 目前開發者最常使用的版本,與v3.1.0版本差別極小。
- MQTT v5 - 這是該協議的最新版本(2018年1月),從1.6版開始,Mosquito broker除了支持MQTT v3.1.1之外還支持MQTT v6,因此你可以繼續通過舊的客戶端使用最新的 broker。
- MQTT-SN – 在2013年左右指定,旨在通過UDP、ZigBee和其他傳輸協議工作。MQTT-SN目前還不是很流行,且該規范幾年來沒有改變。隨著物聯網的部署開始大大增加,這種情況可能會改變。
MQTT功能的基本概念與定義
首先是發布和訂閱機制。在一個發布和訂閱系統中,一個設備可以在一個主題上發布消息,或者它可以訂閱一個特定的主題來接收消息。當有更新時,消息會自動推送給相應主題的訂閱者。
![MQTT流量](https://file.elecfans.com/web2/M00/59/8F/pYYBAGLnht2AGcS2AAECXAcE39E964.png)
Messages是在設備之間交換的信息,是一個命令或一組數據。
另一個重要的概念是topics。它是為傳入信息注冊感興趣的方式,或者指定要在何處發布消息的方式。
主題用字符串表示,用正斜杠隔開。每一個正斜杠表示一個主題級別。
MQTT clients就是我們所說的訂閱了一個或多個主題的設備(如果沒有選擇一個特定的主題,將會看到它們全部)。當其他客戶端在這些主題中發布東西時,它們要以信息的形式接收數據包。對于MQTT 3.1.1版本,Eclipse Paho項目提供了幾乎所有編程語言和主要操作系統Linux、Windows、Mac的客戶端軟件。
MQTT client的對應部MQTT broker。Broker是任何發布和訂閱協議的核心。根據不同的實現方式,一個broker可以處理多達數千個同時連接的MQTT client。Broker負責接收和過濾所有信息,確定每條信息的訂閱者,并將信息發送給這些訂閱的客戶端。Broker還持有所有持續存在的客戶端的會話,包括訂閱和錯過的消息。
MQTT Security 是指其支持各種認證和數據安全機制的能力。需要注意的是,這些安全機制是在MQTT broker上配置的,而客戶端則要遵守現有的機制。
MQTT使用發布和訂閱模式,將有關各方相互連接起來。它通過將該模式與接收和訂閱模式解耦來實現這一點。發布者向一個中心主題發送消息,該主題有多個訂閱者等待接收消息。發布者和訂閱者是自主的,這意味著他們不需要知道對方的存在。
MQTT協議的小缺點
- MQTT不是RESTful,所以它沒有利用現有協議的優勢。
- MQTT工作在靈活的主題訂閱上,所以它沒有一個穩定的資源發現機制。
- MQTT 是不加密的,需要使用TLS/SSL來保證安全。
盡管有缺點,MQTT仍然是物聯網項目中最受歡迎的協議之一,因為使用它的好處遠遠超過了缺點。例如,RAKwireless通過使用內置的MQTT橋接器增強了他們的LoRaWAN網關的能力。商業網關,如RAK7249和RAK7258具有帶有MQTT橋接器的嵌入式LoRa網絡和應用服務器。
這將Semtech Packet-forwarder UDP協議抽象為MQTT上的JSON,直接安全地將數據傳輸到應用程序。這正在成為其他制造商的一種做法,并不限于LoRaWAN,也包括其他物聯網技術。
MQTT一些獨特的功能
- 這是一個輕量級協議。它在快速數據傳輸方面最終是高效的。此外,使用MQTT可以減少系統的計算負擔。
- 小尺寸的數據包最大限度地減少了開銷并降低了流量。
- 這是一個非常節能的機制。這使得它非常適合使用LoRaWAN的項目,因為它可以節省電池壽命,而電池是很多LoRa-end節點的主要電源。
- 它是實時的,所以它是物聯網應用的理想選擇。
- 它是開源的,除了容易實現和配置外,還可以免費使用。同樣,在RAKwireless商業網關系列中設置你的MQTT橋接器是快速而簡單的。如果想在LoRaWAN網關中獲得一個好的實現示例,可以參考本文檔了解如何做到這一點。
最后,MQTT有很多優勢,因此我們相信,在未來的幾年里,通過更多自然的采用和改進它會變得更加主流。
-
物聯網
+關注
關注
2914文章
44939瀏覽量
377103 -
MQTT
+關注
關注
5文章
653瀏覽量
22701
發布評論請先 登錄
相關推薦
MQTT網關接入工業物聯網平臺解析
MQTT物聯網云平臺有什么功能
MQTT網關:物聯網中的關鍵橋梁
![<b class='flag-5'>MQTT</b>網關:物聯網中的關鍵橋梁](https://file1.elecfans.com//web2/M00/04/B3/wKgaombG15aAcAnfAAEFTeFZDvg122.jpg)
知識科普 MQTT Broker 代理 是什么
![知識科普 <b class='flag-5'>MQTT</b> Broker 代理 是什么](https://file1.elecfans.com/web2/M00/FC/9C/wKgZomaU5NOAeXp5AAHyw44uN4w849.png)
MQTT物聯網平臺是什么
關于定位系統技術你知道多少?
![<b class='flag-5'>關于</b>定位系統技術<b class='flag-5'>你</b><b class='flag-5'>知道</b>多少?](https://file1.elecfans.com/web2/M00/FA/C7/wKgZomaOVE6ATBiTAAIaQb9eKY0750.png)
你了解清楚了嘛-TCP、HTTP、MQTT協議
![<b class='flag-5'>你</b>了解清楚了嘛-TCP、HTTP、<b class='flag-5'>MQTT</b>協議](https://file1.elecfans.com/web2/M00/FB/36/wKgaomaM8TaAQTxWAACIZqMj3-A546.png)
評論