物聯網協議

物聯網是在互聯網的基礎上延伸和擴展的一種網絡,其用戶端延伸和擴展到了任何物品之間,彼此進行信息交換和通訊,目的是實現全部物品與網絡的鏈接,從而方便識別、管理和控制。無線物聯網的特色包括:全面感知、實時準確傳遞物品信息、利用智能計算技術對海量數據進行分析和處理,以實現智能化控制。因爲物聯網中的不少設備都是資源受限型的,即只有少許的內存空間和有限的計算能力,因此傳統的HTTP協議應用在物聯網上就顯得過於龐大而不適用。
MQTT協議和CoAP協議都是物聯網中比較流行的協議,都對傳輸量作了很大的精簡,傳輸開銷小,以適應物理網的網絡環境。網絡


 

CoAP(Constrained Application Protocol 受限應用協議)
CoAP是6LowPAN協議棧中的應用層協議。COAP協議網絡傳輸層由TCP改成UDP。
COAP是二進制格式的,HTTP是文本格式的,COAP比HTTP更加緊湊。
輕量化,COAP最小長度僅僅4B,一個HTTP的頭都幾十個B了。
支持可靠傳輸,數據重傳,塊傳輸。 確保數據可靠到達。
支持IP多播, 便可以同時向多個設備發送請求。
非長鏈接通訊,適用於低功耗物聯網場景。性能


 MQTT(Message Queuing Telemetry Transport 消息隊列遙測傳輸)ui

爲硬件性能低下的遠程設備以及網絡情況糟糕的狀況下而設計的發佈/訂閱型消息協議。輕量、簡單、開放和易於實現。
1.使用發佈/訂閱消息模式,提供一對多的消息發佈,解除應用程序耦合
2.使用 TCP/IP 提供網絡鏈接
3.小型傳輸,開銷很小(固定長度的頭部是 2 字節),協議交換最小化,以下降網絡流量

這些特色使它適用於受限環境。例如,但不只限於此:
· 特別適合於網絡代價昂貴,帶寬低、不可靠的環境。
· 能在處理器和內存資源有限的嵌入式設備中運行。
· 使用發佈/訂閱消息模式,提供一對多的消息發佈,從而解除應用程序耦合。
· 使用 TCP/IP 提供網絡鏈接。
· 提供Last Will 和 Testament 特性通知有關各方客戶端異常中斷的機制。
加密


從應用場景要求的層面,分析該如何選擇使用哪一種協議。設計

  一、服務端主動發送給客戶端的數據(反控)的時效性(如經過APP控制硬件動做)
  因MQTT協議是保持鏈接的,因此及時性相對很好;CoAP協議是無鏈接響應式通信,所以不能主動推送,要等客戶端訪問才能夠攜帶回去,及時性相對較差。blog

  二、設備環境對底層協議的要求或限制
  MQTT協議是創建在TCP協議基礎之上的,所以他也具有TCP協議的優缺點;CoAP協議是創建在UDP協議基礎之上的,所以他也具有UDP協議的優缺點。隊列

  三、在NAT網絡環境中是否須要調整
  因MQTT協議是保持長鏈接的,因此在NAT(Network Address Translation,網絡地址轉換)下沒有問題;CoAP協議因是無鏈接方式,須要使用NAT穿透性手段。
  【備註:NAT NAT(Network Address Translation,網絡地址轉換)是1994年提出的。當在專用網內部的一些主機原本已經分配到了本地IP地址(即僅在本專用網內使用的專用地址),但如今又想和因特網上的主機通訊(並不須要加密)時,可以使用NAT方法。這種方法須要在專用網鏈接到因特網的路由器上安裝NAT軟件。裝有NAT軟件的路由器叫作NAT路由器,它至少有一個有效的外部全球IP地址。這樣,全部使用本地地址的主機在和外界通訊時,都要在NAT路由器上將其本地地址轉換成全球IP地址,才能和因特網鏈接。】內存

  四、實現多對多的通訊仍是單對單通訊
  因MQTT協議的消息模型是發佈/訂閱式的,因此是能夠多對多通訊的;CoAP協議的消息模型是請求/響應式的,因此是單對單通訊。資源

  五、服務質量等級及自動重連重發
  因MQTT協議有QoS配置,支持服務質量等級和自動重連重發機制;CoAP自己不具有,須要應用層本身來寫這個邏輯。  路由

  六、對網絡穩定性要求
  MQTT協議利用自動重連重發機制解決網絡不穩定問題,斷網就會觸發重連;CoAP協議只有客戶端發送的時候須要保證網絡鏈接正常,其餘時段無需鏈接。

  七、對硬件設備的功耗影響
  MQTT協議因有保持鏈接,因此功耗略高於CoAP協議。


 

 

 XMPP協議基於XML,對於嵌入式設備來講,XML解析是超級困難的。

HTTP協議對於嵌入式設備來講屬於重量級,也不是很合適。由於目前物聯網中的不少設備都是資源受限型的,因此只有少許的內存空間和有限的計算能力。

相關文章
相關標籤/搜索