溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MQTT是什么

發(fā)布時間:2021-12-06 16:55:41 來源:億速云 閱讀:169 作者:iii 欄目:互聯(lián)網(wǎng)科技

這篇文章主要講解了“MQTT是什么”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“MQTT是什么”吧!

MQTT 、DDS、XMPP、CoAP,RESTFul HTTP,誰更適合物聯(lián)網(wǎng)應用? 

協(xié)議就是雙方要做某件事情而制定的規(guī)則,而且雙方必須要遵從協(xié)議所約定的內(nèi)容,大家才能共同做某件事情。現(xiàn)在在萬物互聯(lián)的時代,越來越多的設備要通過互聯(lián)網(wǎng)連到云平臺上,在物聯(lián)網(wǎng)技術框架體系中,所使用到的通訊協(xié)議主要有:MQTT 、DDS、XMPP、CoAP、RESTFul HTTP等。這些常用的物聯(lián)網(wǎng)應用層協(xié)議究竟誰更適合物聯(lián)網(wǎng)應用呢?

物聯(lián)網(wǎng)的終端節(jié)點一般都是存儲和帶寬受限的嵌入式設備,較復雜的協(xié)議不太適合嵌入式系統(tǒng)應用,例如:XMPP協(xié)議基于XML,對于嵌入式設備來說,XML解析是超級困難的。另外HTTP協(xié)議對于嵌入式設備來說是屬于重量級也不是很合適,比較適合嵌入式設備就是輕量級的CoAP與MQTT。

一、RESTFul HTTP協(xié)議介紹

RESTful是一種基于資源的軟件架構(gòu)風格,是互聯(lián)網(wǎng)最基礎最廣泛的應用層協(xié)議,所以最和主要的還是HTTP協(xié)議本身。平時訪問網(wǎng)站我都會在地址欄上面填寫一些網(wǎng)址,就可以訪問相關的網(wǎng)頁了,但是究竟如何因為我輸入的那一長串的東西就能看到網(wǎng)頁呢?我們來一起探究一下網(wǎng)頁的顯示過程:瀏覽器根據(jù)提供的URL給Web服務器發(fā)送一個請求,Web服務器接收請求進行處理生成一個響應發(fā)送給瀏覽器,瀏覽器解析響應中的符合HTML規(guī)范格式要求的文檔,文檔經(jīng)過解析,這樣網(wǎng)頁就顯示了。這個交互過程就是由HTTP(HyperText Transfer Protocol,超文本傳輸協(xié)議)的協(xié)議作為規(guī)范,完成客戶端到服務端的一系列運作動作。

HTTP協(xié)議的主要特點可概括如下:支持客戶/服務器模式,請求應答型,頭部規(guī)定靈活,HTTP允許傳輸任意類型的數(shù)據(jù)對象,正在傳輸?shù)念愋陀蒀ontent-Type加以標記。有端短連接和長連接,短連接的含義是限制每次連接只處理一個請求,服務器處理完客戶的請求,并收到客戶的應答后,即斷開連接,減少服務器這邊的并發(fā)壓力。HTTP協(xié)議是無狀態(tài)協(xié)議,無狀態(tài)是指協(xié)議對于事務處理沒有記憶能力。缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數(shù)據(jù)量增大??傮w來說HTTP對于嵌入式設備來說太重了,也不靈活。

二、CoAP協(xié)議

在最近幾年的時間中,越來越多的設備相互連接,而這些設備的數(shù)量將遠超人類的數(shù)量,在這種大背景下,物聯(lián)網(wǎng)和M2M技術應運而生。雖然對人而言,連接入互聯(lián)網(wǎng)顯得方便容易,但是對于那些微型設備而言接入互聯(lián)網(wǎng)非常困難。在當前由PC機組成的世界,信息交換是通過TCP和應用層協(xié)議HTTP實現(xiàn)的。但是對于一般的設備而言,實現(xiàn)HTTP協(xié)議顯然是一個過分的要求。為了讓小設備可以接入互聯(lián)網(wǎng),CoAP協(xié)議被設計出來。

COAP與HTTP協(xié)議都是通過4個請求方法(GET, PUT, POST, DELETE)對服務器端資源進行操作。兩者之間明顯的區(qū)別在于HTTP是通過文本描述方式描述協(xié)議包內(nèi)容,協(xié)議包里面會包含一些空格符,換行符等,協(xié)議包可讀性很強。而COAP是通過定義二進制各位段功能來描述協(xié)議包內(nèi)容。 因此COAP協(xié)議包大小更小,更緊湊,COAP協(xié)議最小的協(xié)議包只有4B。 協(xié)議包需要經(jīng)過解析后才能知道里面具體內(nèi)容,另還有一個明顯的區(qū)別是傳統(tǒng)的HTTP協(xié)議是主機與web服務器之間是單向通信的。而CoAP系統(tǒng)中CoAP Client與CoAP server是可以雙向通信,雙方都可以主動向?qū)Ψ桨l(fā)送請求。

三、MQTT協(xié)議(低帶寬)

MQTT (Message Queuing Telemetry Transport ),消息隊列遙測傳輸,由IBM開發(fā)的即時通訊協(xié)議,相比來說比較適合物聯(lián)網(wǎng)場景的通訊協(xié)議。MQTT協(xié)議采用發(fā)布/訂閱模式,所有的物聯(lián)網(wǎng)終端都通過TCP連接到云端,云端通過主題的方式管理各個設備關注的通訊內(nèi)容,負責將設備與設備之間消息的轉(zhuǎn)發(fā)。

MQTT在協(xié)議設計時就考慮到不同設備的計算性能的差異,所以所有的協(xié)議都是采用二進制格式編解碼,并且編解碼格式都非常易于開發(fā)和實現(xiàn)。最小的數(shù)據(jù)包只有2個字節(jié),對于低功耗低速網(wǎng)絡也有很好的適應性。有非常完善的QOS機制,根據(jù)業(yè)務場景可以選擇最多一次、至少一次、剛好一次三種消息送達模式。運行在TCP協(xié)議之上,同時支持TLS(TCP+SSL)協(xié)議,并且由于所有數(shù)據(jù)通信都經(jīng)過云端,安全性得到了較好地保障。

MQTT適用在低帶寬、不可靠的網(wǎng)絡下提供基于云平臺的遠程設備的數(shù)據(jù)傳輸和監(jiān)控。它具有以下特點:(1)使用基于代理的發(fā)布/訂閱消息模式,提供一對多的消息發(fā)布;(2)使用TCP/IP提供網(wǎng)絡連接;(3)小型傳輸,開銷很小(固定長度的頭部是2字節(jié)),協(xié)議交換最小化,以降低網(wǎng)絡流量;(4)支持QoS,有三種消息發(fā)布服務質(zhì)量:“至多一次”,“至少一次”,“只有一次”。

四、DDS協(xié)議

DDS(Data Distribution Service for Real-Time Systems),面向?qū)崟r系統(tǒng)的數(shù)據(jù)分布服務,這是大名鼎鼎的OMG組織提出的協(xié)議,其權威性應該能證明該協(xié)議的未來應用前景。DDS協(xié)議適用于分布式高可靠性、實時傳輸設備數(shù)據(jù)通信,目前已經(jīng)廣泛應用于國防、民航、工業(yè)控制等領域。

DDS具有以下特點:(1)以數(shù)據(jù)為中心;(2)使用無代理的發(fā)布/訂閱消息模式,點對點、點對多、多對多;(3)提供多大21種QoS服務質(zhì)量策略。

DDS很好地支持設備之間的數(shù)據(jù)分發(fā)和設備控制,設備和云端的數(shù)據(jù)傳輸,同時DDS的數(shù)據(jù)分發(fā)的實時效率非常高,能做到秒級內(nèi)同時分發(fā)百萬條消息到眾多設備。DDS在服務質(zhì)量(QoS)上提供非常多的保障途徑,這也是它適用于國防軍事、工業(yè)控制這些高可靠性、可安全性應用領域的原因。但這些應用都工作在有線網(wǎng)絡下,在無線網(wǎng)絡,特別是資源受限的情況下,沒有見到過實施案例。

五、XMPP協(xié)議(即時通信)

XMPP(Extensible Messaging and Presence Protocol)可擴展通訊和表示協(xié)議,XMPP的前身是Jabber,一個開源形式組織產(chǎn)生的網(wǎng)絡即時通信協(xié)議。XMPP目前被IETF國際標準組織完成了標準化工作。XMPP適用于即時通信的應用程序,還能用在網(wǎng)絡管理、內(nèi)容供稿、協(xié)同工具、檔案共享、游戲、遠端系統(tǒng)監(jiān)控等。它的特點是:(1)客戶機/服務器通信模式;(2)分布式網(wǎng)絡;(3)簡單的客戶端,將大多數(shù)工作放在服務器端進行;(4)標準通用標記語言的子集XML的數(shù)據(jù)格式。

XMPP是基于XML的協(xié)議,由于其開放性和易用性,在互聯(lián)網(wǎng)及時通訊應用中運用廣泛。相對HTTP,XMPP在通訊的業(yè)務流程上是更適合物聯(lián)網(wǎng)系統(tǒng)的,開發(fā)者不用花太多心思去解決設備通訊時的業(yè)務通訊流程,相對開發(fā)成本會更低。XMPP協(xié)議成熟、強大、可擴展性強、目前主要應用于許多聊天系統(tǒng)中,但是協(xié)議較復雜、冗余(基于XML)、費流量、費電,部署硬件成本高。

六、通訊協(xié)議比較

從當前物聯(lián)網(wǎng)應用發(fā)展趨勢來分析,MQTT協(xié)議具有一定的優(yōu)勢,因為目前國內(nèi)外主要的云計算服務商,比如阿里云、AWS、百度云、Azure以及騰訊云都一概支持MQTT協(xié)議。還有一個原因就是MQTT協(xié)議比CoAP成熟的要早,所以MQTT具有一定的先發(fā)優(yōu)勢,但隨著物聯(lián)網(wǎng)的智能化和多變化的發(fā)展,后續(xù)物聯(lián)網(wǎng)應用平臺肯定會兼容更多的物聯(lián)網(wǎng)應用層協(xié)議。

MQTT是什么

感謝各位的閱讀,以上就是“MQTT是什么”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對MQTT是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI