實時協議是物聯網的一項根本性技術,在物聯網領域發揮了重大的作用。目前物聯網設備所廣泛使用的四大實時協議:XMPP、HTTP、CoAP以及MQTT等可謂各擅所長、亦各有弊端。
那么在萬物互聯的時代,誰主沉浮?今天我們先來討論MQTT與CoAP。
----------------------------------------------------------------------------------------------------------------------------------------------------------------
在對比哪種協議更適合物聯網之前,我們要先了解各種協議的偏重點。物聯網終端節點一般都是存儲和帶寬受限的嵌入式設備。
XMPP協議基於XML,對於嵌入式設備來說,XML解析是超級困難的。
HTTP協議對於嵌入式設備來說屬於重量級,也不是很合適。因為目前物聯網中的很多設備都是資源受限型的,所以只有少量的內存空間和有限的計算能力。
比較適合嵌入式設備就是輕量級的MQTT和CoAP。
CoAP的全稱為受限應用協議,其開發目的在於允許資源相對有限的設備利用UDP而非TCP通過互聯網實現通信。
MQTT協議是由IBM開發的一個即時通訊的協議,是為大量計算能力有限且工作在低帶寬、不可靠網絡的遠程傳感器和控制設備通訊而設計的一種協議。
MQTT協議的優勢是可以支持所有平台,它幾乎可以把所有的聯網物品和互聯網連接起來。
MQTT與CoAP的區別
MQTT和CoAP都是行之有效的物聯網協議,但兩者還是有很大區別的。從應用方向來分析,主要區別有以下幾點:
❶MQTT協議不支持帶有類型或者其它幫助Clients理解的標簽信息,也就是說所有MQTT Clients必須要知道消息格式。
而CoAP協議則相反,因為CoAP內置發現支持和內容協商,這樣便能允許設備相互窺測以找到數據交換的方式。
❷MQTT是長連接而CoAP是無連接。MQTT Clients與Broker之間保持TCP長連接,這種情形在NAT環境中也不會產生問題。
如果在NAT環境下使用CoAP的話,那就需要采取一些NAT穿透性手段。
❸MQTT是多個客戶端通過中央代理進行消息傳遞的多對多協議。它主要通過讓客戶端發布消息、代理決定消息路由和復制來解耦消費者和生產者。
MQTT相當於消息傳遞的實時通訊總線,CoAP基本上就是一個在Server和Client之間傳遞狀態信息的單對單協議。
MQTT的特點
MQTT協議是為大量計算能力有限,且工作在低帶寬、不可靠的網絡的遠程傳感器和控制設備通訊而設計的協議,它具有:
1.使用發布/訂閱消息模式,提供一對多的消息發布,解除應用程序耦合;
2.對負載內容屏蔽的消息傳輸;
3.使用 TCP/IP 提供網絡連接;
4.小型傳輸,開銷很小(固定長度的頭部是 2 字節),協議交換最小化,以降低網絡流量;
5.使用 Last Will 和 Testament 特性通知有關各方客戶端異常中斷的機制。
運用MQTT協議,設備可以很方便地連接到物聯網雲服務,管理設備並處理數據,最后應用到各種業務場景。
物聯網平台優勢
信銳物聯網應用層協議采用的便是MQTT,通俗的講該協議就像微信關注公眾號一樣,關注了就能收到信息,未關注的就收不到推送的消息。
信銳物聯網平台采用MQTT消息通信機制的設計,可靠、輕巧、簡單,在物聯網應用開發中優勢有:
1.可靠傳輸:MQTT可以保證消息可靠安全的傳輸,並可以與企業應用簡易集成。
2.消息推送:支持消息實時通知、豐富的推送內容、靈活的Pub-Sub以及消息存儲和過濾。
3.低帶寬、低耗能、低成本:占用應用程序帶寬小,並且帶寬利用率高,耗電量較少。
從當前物聯網應用發展趨勢來分析,MQTT協議具有一定的優勢。目前國內外主要的雲計算服務商,比如阿里雲、AWS、百度雲、Azure以及騰訊雲等都支持MQTT協議。除此之外,MQTT協議比CoAP成熟的要早,所以MQTT具有一定的先發優勢。
隨着物聯網的智能化和多變化的發展,后續物聯網應用平台肯定會兼容更多的物聯網應用層協議,信銳物聯網也將推出更多基於MQTT通信方式的物聯網行業解決方案。