物聯網幾種應用層協議比較,其中MQTT與CoAP 誰更適合物聯網應用?

物聯網 智能家居 通信 XML 昇潤科技 2017-06-23

隨著智能家居、智能穿戴產業、工業4.0、智慧城市等產業的飛速發展,物聯網應用需求也越來越多,基於這種飛速發展的物聯網前景下,物聯網的協議也是百家爭鳴。一般常用的物聯網應用層協議包括MQTT、HTTP、XMPP、CoAP等。這些常用的物聯網應用層協議究竟誰更適合物聯網應用呢?

物聯網幾種應用層協議比較,其中MQTT與CoAP 誰更適合物聯網應用?

MQTT應用層協議

物聯網的終端節點一般都是存儲和帶寬受限的嵌入式設備,較複雜的協議不太適合嵌入式系統應用,例如:XMPP協議基於XML,對於嵌入式設備來說,XML解析是超級困難的。另外HTTP協議對於嵌入式設備來說是屬於重量級也不是很合適。比較適合嵌入式設備就是輕量級的CoAP與MQTT。

物聯網幾種應用層協議比較,其中MQTT與CoAP 誰更適合物聯網應用?

CoAP應用層協議

CoAP協議

由於目前物聯網中的很多設備都是資源受限型的,所以只有少量的內存空間和有限的計算能力,傳統的HTTP協議在物聯網應用中就會顯得過於龐大而不適用。因此, IETF的CoRE工作組提出了一種基於UDP的CoAP協議。

物聯網幾種應用層協議比較,其中MQTT與CoAP 誰更適合物聯網應用?

HTTP與CoAP的區別

HTTP與CoAP的區別

CoAP是6LowPAN協議棧中的應用層協議,基於REST(表述性狀態傳遞)架構風格,支持與REST進行交互。通常用戶可以像使用HTTP協議一樣用CoAP協議來訪問物聯網設備。

物聯網幾種應用層協議比較,其中MQTT與CoAP 誰更適合物聯網應用?

MQTT應用層協議與物聯網

MQTT協議

MQTT協議是為大量計算能力有限且工作在低帶寬、不可靠網絡的遠程傳感器和控制設備通訊而設計的一種協議。MQTT協議是由IBM開發的一個即時通訊的協議,MQTT協議的優勢是可以支持所有平臺,它幾乎可以把所有的聯網物品和互聯網連接起來。

CoAP與MQTT的區別

MQTT和CoAP都是行之有效的物聯網協議,但兩者還是有很大區別的,比如MQTT協議是基於TCP,而CoAP協議是基於UDP。從應用方向來分析,主要區別有以下幾點:

1、MQTT協議不支持帶有類型或者其它幫助Clients理解的標籤信息,也就是說所有MQTT Clients必須要知道消息格式。而CoAP協議則相反,因為CoAP內置發現支持和內容協商,這樣便能允許設備相互窺測以找到數據交換的方式。

2、MQTT是長連接而CoAP是無連接。MQTT Clients與Broker之間保持TCP長連接,這種情形在NAT環境中也不會產生問題。如果在NAT環境下使用CoAP的話,那就需要採取一些NAT穿透性手段。

3、MQTT是多個客戶端通過中央代理進行消息傳遞的多對多協議。它主要通過讓客戶端發佈消息、代理決定消息路由和複製來解耦消費者和生產者。MQTT就是相當於消息傳遞的實時通訊總線。CoAP基本上就是一個在Server和Client之間傳遞狀態信息的單對單協議。

總結:

從當前物聯網應用發展趨勢來分析,MQTT協議具有一定的優勢。因為目前國內外主要的雲計算服務商,比如阿里雲、AWS、百度雲、Azure以及騰訊雲都一概支持MQTT協議。還有一個原因就是MQTT協議比CoAP成熟的要早,所以MQTT具有一定的先發優勢。但隨著物聯網的智能化和多變化的發展,後續物聯網應用平臺肯定會兼容更多的物聯網應用層協議。

相關推薦

推薦中...