IOT(物聯網)的七大通信協議
IOT(物聯網)的七大通信協議
在物聯網協議中,我們一般分為兩大類,一類是傳輸協議,一類是通信協議。傳輸協議一般負責子網內設備間的組網及通信;通信協議則主要是運行在傳統互聯網TCP/IP協議之上的設備通訊協議,負責設備通過互聯網進行數據交換及通訊
其中物聯網的通信環境有Ethernet, Wi-Fi, RFID, NFC(近距離無線通信), Zigbee, 6LoWPAN(IPV6低速無線版本),Bluetooth, GSM, GPRS, GPS, 3G, 4G等網絡,而每一種通信應用協議都有一定適用范圍。AMQP、JMS、REST/HTTP都是工作在以太網,COAP協議是專門為資源受限設備開發的協議,而DDS和MQTT的兼容性則強很多。
IOT的七大通信協議:
1. REST/HTTP(松耦合服務調用)
適用范圍:
REST/HTTP主要為了簡化互聯網中的系統架構,快速實現客戶端和服務器之間交互的松耦合,降低了客戶端和服務器之間的交互延遲。因此適合在物聯網的應用層面,通過REST開放物聯網中資源,實現服務被其他應用所調用。
特點:
(1)客戶端和服務器之間的交互在請求之間是無狀態的。
(2)使用的是標準的 HTTP 方法,比如:GET、PUT、POST 和 DELETE。
REST/HTTP其實是互聯網中服務調用API封裝風格,物聯網中數據采集到物聯網應用系統中,在物聯網應用系統中,可以通過開放REST API的方式,把數據服務開放出去,被互聯網中其他應用所調用。
2. CoAP協議
CoAP (Constrained Application Protocol)
適用范圍:
CoAP是簡化了HTTP協議的RESTful API,CoAP是6LowPAN協議棧中的應用層協議,它適用于在資源受限的通信的IP網絡。
特點:
(1)報頭壓縮:CoAP包含一個緊湊的二進制報頭和擴展報頭。它只有短短的4B的基本報頭,基本報頭后面跟擴展選項。一個典型的請求報頭為10~20B。
(2)方法和URIs:為了實現客戶端訪問服務器上的資源,CoAP支持GET、PUT、POST和DELETE等方法,屬于web架構
? ? ? (3)傳輸層使用UDP協議:CoAP協議是建立在UDP協議之上,以減少開銷和支持組播功能。它也支持一個簡單的停止和等待的可靠性傳輸機制。
(4)支持異步通信:HTTP對M2M(Machine-to-Machine)通信不適用,這是由于事務總是由客戶端發起。而CoAP協議支持異步通信,這對M2M通信應用來說是常見的休眠/喚醒機制。
(5)支持資源發現
(6)支持緩存:CoAP協議支持資源描述的緩存以優化其性能。
3. MQTT協議(低帶寬)
MQTT (Message Queuing Telemetry Transport ),消息隊列遙測傳輸,由IBM開發的即時通訊協議,相比來說比較適合物聯網場景的通訊協議。MQTT協議采用發布/訂閱模式,所有的物聯網終端都通過TCP連接到云端,云端通過主題的方式管理各個設備關注的通訊內容,負責將設備與設備之間消息的轉發。
適用范圍:
在低帶寬、不可靠的網絡下提供基于云平臺的遠程設備的數據傳輸和監控。
特點:
(1) 使用基于代理的發布/訂閱消息模式,提供一對多的消息發布
(2) 使用 TCP/IP 提供網絡連接
(3) 小型傳輸,開銷很小(固定長度的頭部是 2 字節),協議交換最小化,以降低網絡流量
(4) 支持QoS,有三種消息發布服務質量:“至多一次”, “至少一次”, “只有一次”
MQTT協議一般適用于設備數據采集到端(Device-》Server,Device-》Gateway),集中星型網絡架構(hub-and-spoke),不適用設備與設備之間通信,設備控制能力弱,另外實時性較差,一般都在秒級。
4. DDS協議(高可靠性、實時)
DDS(Data Distribution Service for Real-Time Systems),面向實時系統的數據分布服務。
適用范圍:
分布式高可靠性、實時傳輸設備數據通信。目前DDS已經廣泛應用于國防、民航、工業控制等領域。
5. AMQP協議(互操作性)
AMQP(Advanced Message Queuing Protocol),先進消息隊列協議,用于業務系統例如PLM,ERP,MES等進行數據交換。
適用范圍:
最早應用于金融系統之間的交易消息傳遞,在物聯網應用中,主要適用于移動手持設備與后臺數據中心的通信和分析。
6. XMPP協議(即時通信)
XMPP(Extensible Messaging and Presence Protocol)可擴展通訊和表示協議,一個開源形式組織產生的網絡即時通信協議。
適用范圍:
即時通信的應用程序,還能用在網絡管理、游戲、遠端系統監控等。
7. JMS
JMS (Java Message Service),即消息服務,這是JAVA平臺中著名的消息隊列協議。
Java消息服務應用程序接口,是一個Java平臺中關于面向消息中間件(MOM)的API,用于在兩個應用程序之間,或分布式系統中發送消息,進行異步通信。Java消息服務是一個與具體平臺無關的API,絕大多數MOM提供商都對JMS提供支持。
協議對比:
協議應用的側重方向
MQTT、 DDS、 AMQP、XMPP、 JMS、 REST、 CoAP這幾種協議都已被廣泛應用,并且每種協議都有至少10種以上的代碼實現,都宣稱支持實時的發布/訂閱的物聯網協議,但是在具體物聯網系統架構設計時,需考慮實際場景的通信需求,選擇合適的協議。
以智能家居為例,說明下這些協議側重應用方向。智能家居中智能燈光控制,可以使用XMPP協議控制燈的開關;智能家居的電力供給,發電廠的發動機組的監控可以使用DDS協議;當電力輸送到千家萬戶時,電力線的巡查和維護,可以使用MQTT協議;家里的所有電器的電量消耗,可以使用AMQP協議,傳輸到云端或家庭網關中進行分析;最后用戶想把自家的能耗查詢服務公布到互聯網上,那么可以使用REST/HTTP來開放API服務。
物聯網協議的選擇
發布/訂閱服務更適合物聯網環境下通信
DDS、MQTT、AMQP和JMS都是基于發布/訂閱模式,發布/訂閱框架具有服務自發現、動態擴展、事件過濾的特點,它解決了物聯網系統在應用層的數據源快速獲取、物的加入和退出、興趣訂閱、降低帶寬流量等問題,實現物的聯接在空間上松耦合(雙方無需知道通信地址)、時間上松耦合和同步松耦合。
服務質量(QoS)是物聯網通信中的重要考慮因素
在服務策略的幫助下,DDS能夠有效地控制和管理網絡帶寬、內存空間等資源的使用,同時也能控制數據的可靠性、實時性和數據的生存時間,通過靈活使用這些服務質量策略,DDS不僅能在窄帶的無線環境上,也能在寬帶的有線通信環境上開發出滿足實時性需求的數據分發系統。
400-103-7662
或者關注公眾號獲取
