物聯網協議比較 MQTT CoAP RESTful/HTTP XMPP
在之前物聯網資料集里面,我們對這四個比較常用的協議進行了一個比較。也在我們的物聯網協議測試平臺上線之后,簡單地說一下,唯一比較遺憾的是不支持XML。實在不喜歡XML,XML的解析對于嵌入多設備來說是比較痛苦的。
物聯網協議
Protocol | CoAP | XMPP | RESTful HTTP | MQTT |
---|---|---|---|---|
Transport | UDP | TCP | TCP | TCP |
Messaging | Request/Response | Publish/Subscribe Request/Response | Request/Response | Publish/Subscribe Request/Response |
2G, 3G, 4G Suitability (1000s nodes) | Excellent | Excellent | Excellent | Excellent |
LLN Suitability (1000s nodes) | Excellent | Fair | Fair | Fair |
Compute Resources | 10Ks RAM/Flash | 10Ks RAM/Flash | 10Ks RAM/Flash | 10Ks RAM/Flash |
Success Storied | Utility Field Area Networks | Remote management of consumer white goods | Smart Energy Profile 2 (premise energy management/home services) | Extending enterprise messaging into IoT applications |
物聯網協議XMPP
XMPP是一種基于標準通用標記語言的子集XML的協議,它繼承了在XML環境中靈活的發展性。因此,基于XMPP的應用具有超強的可擴展性。經過 擴展以后的XMPP可以通過發送擴展的信息來處理用戶的需求,以及在XMPP的頂端建立如內容發布系統和基于地址的服務等應用程 序。而且,XMPP包含了針對服務器端的軟件協議,使之能與另一個進行通話,這使得開發者更容易建立客戶應用程序或給一個配好系統添加功能。
物聯網協議MQTT
MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸)是IBM開發的一個即時通訊協議,有可能成為物聯網的重要組成部分。該協議支持所有平臺,幾乎可以把所有聯網物品 和外部連接起來,被用來當做傳感器和致動器(比如通過推ter讓房屋聯網)的通信協議。
物聯網協議CoAP
CoAP是受限制的應用協議(Constrained Application Protocol)的代名詞。在最近幾年的時間中,專家們預測會有更多的設備相互連接,而這些設備的數量將遠超人類的數量。在這種大背景下,物聯網和 M2M技術應運而生。雖然對人而言,連接入互聯網顯得方便容易,但是對于那些微型設備而言接入互聯網非常困難。在當前由PC機組成的世界,信息交換是通過 TCP和應用層協議HTTP實現的。但是對于小型設備而言,實現TCP和HTTP協議顯然是一個過分的要求。為了讓小設備可以接入互聯網,CoAP協議被 設計出來。CoAP是一種應用層協議,它運行于UDP協議之上而不是像HTTP那樣運行于TCP之上。CoAP協議非常的小巧,最小的數據包僅為4字節。
物聯網協議RESTful HTTP
REST 指的是一組架構約束條件和原則。滿足這些約束條件和原則的應用程序或設計就是 RESTful。
Web 應用程序最重要的 REST 原則是,客戶端和服務器之間的交互在請求之間是無狀態的。從客戶端到服務器的每個請求都必須包含理解請求所必需的信息。如果服務器在請求之間的任何時間點 重啟,客戶端不會得到通知。此外,無狀態請求可以由任何可用服務器回答,這十分適合云計算之類的環境。客戶端可以緩存數據以改進性能。
其他
MQTT協議是IBM公司主推的協議,現有的情況下,MQTT比起XMPP和RESTful比較有優勢。如果我們對上面的結果進行一次PK,我想最
后的結果就是MQTT vs
CoAP。HTTP對于嵌入式設備來說太重了,也不靈活,XMPP就更不用說了,與MQTT還有一比的便是CoAP——一個還在草稿階段的協議。
來自:http://www.phodal.com/blog/iot-protocols-coap-mqtt-xmpp-restful-http/