天天看點

物聯網協定CoAP協定學習

CoAP:Constrained Application Protocol協定是為物聯網中資源受限的裝置制定的應用層協定,即簡化版的基于UDP的HTTP協定。其核心内容為資源抽象、REST式互動可擴充的頭選項等。應用程式通過URI标志來擷取伺服器上的資源,使其可以像HTTP協定一樣對資源進行GET、PUT、POST和DELETE等操作。C/S架構,功耗低不能反向控制。适用于需要通過标準網際網路網絡進行遠端控制或監控的小型低功率傳感器,開關,閥門和類似的元件,伺服器對不支援的類型可以不響應

CoAP協定自身擁有如下特點:

  1)報頭壓縮,資料包小

  包含一個緊湊的二進制報頭和擴充報頭,它隻有短短的4B的基本報頭。

  2)方法和URIs

  為了實作用戶端通路伺服器上的資源,這是Web架構的主要特點。

  3)傳輸層使用UDP協定,适用于非安全性資料場合

  CoAP協定是建立在UDP協定之上,以減少開銷(TCP需要三次握手)和支援多點傳播功能。

  4)支援異步通信

  HTTP協定對M2M通信不适用,這是由于事務總是由用戶端發起的。CoAP協定支援異步通信,這對M2M通信應用來說是常見的休眠/喚醒機制。

  5)支援資源發現

  為了自主地發現和使用資源,它支援内置的資源發現格式,用于發現裝置上的資源清單,或者用于裝置向服務目錄公告自己的資源。

  6)支援緩存

  CoAP協定支援資源描述的緩存以優化其性能。

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

是IBM(依托ThinkPHP架構)開發的傳感器和控制器之間的一個即時通訊協定,基于釋出訂閱模式(消息的生産者和消費者解構decoupling,極大地提高系統的擴充性和網絡拓撲),有多個用戶端--》一個代理伺服器(channel)《--多個目标伺服器組成的多對多,基于TCP、異步常連接配接,功耗大可以進行反向控制(伺服器對用戶端的控制)。

MQTT不支援帶有類型或者其它幫助Clients了解的标簽消息。MQTT消息可用于任意目的,但前提是所有的Clients必須知道消息格式。而CoAP則相反,它内置内容協商和發現支援,這樣允許裝置彼此窺測以找到交換資料的方式

報警:設定觸發條件,消息推送(各種途徑短消息、GPRS/郵件。。。),遠端控制和處理。

分布式緩存Redis之釋出/訂閱(Pub/Sub)javascript:void(0)

LWM2M:移動的onenet即是

  是傳統的OMA-DM協定基礎之上發展起來的,屬于訂閱主動(伺服器向用戶端訂閱))上報型(周期性或時間觸發),基于REST架構,以coap為傳輸層協定,以資源為基本機關。

LwM2M載荷支援四種格式 plain text、Opaque、TLV、JSON,這四種協定要求伺服器端必須都要支援,而在用戶端必須支援TLV格式

物聯網協定CoAP協定學習
  • OMA LwM2M DevKit:提供可視化界面與LwM2M伺服器互動。
  • Eclipse Leshan:基于Java,提供了LwM2M伺服器與LwM2M用戶端的實作。
  • Eclipse Wakaama:基于C,提供了LwM2M伺服器與LwM2M用戶端的實作。
  • AVSystem Anjay:基于C,提供了LwM2M用戶端的實作。

繼續閱讀