海鑫智聖:物聯網漫談之MQTT協議

來源:互聯網
上載者:User

標籤:

什麼是MQTT協議

  MQTT(訊息佇列遙測傳輸協議)是IBM在1999年專門針對物聯網等應用情境來制訂的輕量級雙向訊息傳輸協議,它主要是為瞭解決物聯網上使用到的裝置的互相通訊的問題,以及這些裝置與後端應用系統之間通訊的問題。

為什麼需要MQTT(或類似)協議

  隨著智能硬體和移動互連網技術的快速發展,傳統的互連網協議越來越難以滿足物聯網的需要,體現在:移動網路代價昂貴,頻寬低、可靠性差;在嵌入裝置中運行,處理器和記憶體資源有限;海量線上裝置產生龐大資料,給雲端帶來很大的網路開銷和處理壓力。

MQTT如何工作

  MQTT包括用戶端、代理(broker)兩部分,以智能家居系統為例,末端智能電器與手機為用戶端,雲中心為代理。用戶端首先向代理髮起請求,代理收到後對用戶端認證,認證通過後在用戶端與代理之間建立一個TCP長串連通道,用戶端通過該通道訂閱若干關注的主題(Topic),同時在自身狀態變化時,向相應的主題發布訊息,代理將該訊息發給正在訂閱該主題的所有用戶端,如。與HTTP不同,MQTT是一種多對多的通訊協定,裝置直接不直接相連,而是通過一個代理實現互相通訊。它是一種天然的非同步協議,可以很好地將請求端與響應端解耦。

MQTT協議有什麼好處

  MQTT針對物聯網情境最佳化設計,考慮了網路的可達性,訊息的連通性,能耗等方面。具體來講:

  一是它本身是特別輕量級的,使用一個8位的系統、30K的空間,就可以運行MQTT的用戶端。

  二是它針對不穩定網路而設計,通常意義上的傳輸協議都是基於穩定網路的傳輸的,會專門為了這種穩定的網路去做一些最佳化。MQTT正好相反,協議較多地考慮了網路的不確定性,它本身還非常精簡,最小的傳輸位元組只有兩個,使得在較惡劣的網路條件下仍然有較好的訊息可達率。

  三是它的訊息的互動模式跟傳統意義上不太一樣,它採用了發布和訂閱的模式。當資料來源發布一條訊息的時候,可以有多個訂閱端同時能收到這個訊息,這對於很多裝置互聯的物聯網情境比較靈活。

  四是有訊息發布服務品質(QoS)機制,使用者可根據應用情境需要,選擇“至多一次”、“至少一次”或“只有一次”的傳輸品質,在效率與品質之間進行權衡。

  五是用戶端異常中斷的通知機制(Last-Will-And-Testament)。當一個裝置連不上的時候,伺服器端有一個專門的機制能馬上知道這個裝置出了什麼狀況,從而可以非常快的反饋,對某一個結點做出一些補償。

MQTT取得了哪些成功實踐

  1.物聯網雲

  Evothings:國外物聯網生態平台,提供全套的軟硬體開發工具,協助開發人員構建智能硬體原型、開發訊息推送服務。

  Yeelink:國內最大的物聯網雲平台之一,為使用者和智能硬體開發人員提供感應器雲端服務,並通過即時資料處理, 實現可靠的狀態監控。

  2.即時訊息推送

  Facebook是較早大規模採用MQTT 協議的互連網巨頭,其在移動用戶端中使用MQTT來更新通知、訊息和書籤等。

  雲吧等平台藉助MQTT 協議提供即時Message Service,即時推送訊息到任意裝置、快速的給上百萬使用者發送訊息,實現單台裝置一對一推送,即時展示線上使用者、使用方式。目前在為幾萬開發人員、上億終端提供推送服務。國內搜狐等企業也使用了MQTT作為Android手機用戶端與伺服器端推送訊息的協議。

MQTT還有哪些問題

  1.在網路變化頻繁或者不太穩定的2G/3G網路環境下表現不佳。

  用戶端在每次TCP斷開或斷網後,會即刻發起TCP重連,串連成功後依次發送CONNECT命令、訂閱SUBSCRIBLE命令,當網路頻繁切換或者不太穩定時,上述機制一定程度上加重已經不堪的弱網路負擔。一些參考資源指出在業務層面進行重連策略、等待逾時等調整可最佳化該問題。此外,CoAP等其他基於UDP傳輸的物聯網協議對這類網路具有更好的適應性。

  2.針對沒有TCP/IP支援的終端環境MQTT無法應用。

  可以採用MQTT-SN(MQTT For Sensor Networks)協議進行補充,它是為了非常受限類似感應器設計的,能夠基於IEEE 802.15.4等無線區域網路發送UDP資料包,再通過MQTT-SN網關與MQTT broker建立串連。流程架構大致如下:

MQTT推薦資源

  Mosca:基於Nodejs實現的一款功能較完善的broker

  Paho: C/C++、Python、Java等語言的MQTT 用戶端庫

  mosquitto:一款功能完善的開源原生broker

著作權聲明:原文出處:http://mt.sohu.com/20160310/n439960879.shtml?qq-pf-to=pcqq.c2c,海鑫科金,感謝原作者的辛苦創作,如轉載涉及著作權等問題,請與我們聯絡(公眾號:數通暢聯,QQ群:299719834)將在第一時間處理,謝謝!

海鑫智聖:物聯網漫談之MQTT協議

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.