物聯網數據接入篇-應用層 CoAP(7)

0 評論 623 瀏覽 4 收藏 5 分鐘

這篇文章,我們來學習下物聯網數據接入中的應用層協議——CoAP,這種基于REST架構的協議適用于在資源受限的低功耗設備上,其工作原理、應用場景等信息,詳見本文。

CoAP,The Constrained Application Protocol,受限應用協議,專門為物聯網和其他受限環境設計的一種輕量級協議,基于REST架構,與HTTP類似,但是基于 UDP,更加簡潔和高效。CoAP協議適用在資源受限的低功耗設備上,尤其是NB-IoT的設備使用。設備醒了直接發數據,發完設備休眠,省電。

他是個應用層協議,聯網方式,就是網絡接口層可以用 Wi-Fi 連接、以太網連接、蜂窩網絡連接、藍牙連接、低功耗廣域網(LPWAN)連接(如 LoRa、NB-IoT 等)。

CoAP 模仿 HTTP 的 REST 模型,服務端以 URI 方式創建資源,客戶端可以通過 GET、PUT、POST、DELETE方式訪問這些資源,并且協議風格也和HTTP極為相似。

MQTT可以實現一個最簡單的loT架構:Device+MQTT服務器+APP。手機端或Web端可以直接從MQTT服務器訂想要的主題。

而CoAP可能需要這樣的架構:CoAP+ Web+ DataBase+App。使用CoAP必須經過DataBase才能轉給第三方。

組成部分

主要包括客戶端、服務器和消息格式等。

工作原理

客戶端向服務器發送請求消息,服務器根據請求進行相應的響應。CoAP 采用了類似于 HTTP 的請求/響應模式,但針對受限環境進行了優化。

CoAP 報文:

報文結構:CoAP報文由固定的4字節頭部、0-8字節的Token、0或多個TLV格式的Option、可選的Payload組成。

報文類型:CoAP定義了四種報文類型,分別是CON(需要應答的報文)、NON(無需應答的報文)、ACK(應答報文)和RST(復位報文)。

Code字段:Code字段占一個字節,用于表示請求方法或響應碼。例如,0.01表示GET方法,2.00表示成功響應。文本類型(text/plain)、二進制類型(application/octet-stream)、JSON類型(application/json)是在物聯網中應用最廣泛的三種媒體類型,application/link-format 則是專屬于 CoAP 的媒體類型,一般在 CoAP 資源發現中使用。

Token:用于匹配Request和Response,或者用于消息防偽造等場景。

Options:通過報文選項可設定CoAP請求參數和負載媒體類型等。

Payload:真正有用的被交互的數據。

CoAP 和 HTTP對比

特點

輕量級:協議開銷小,適合資源受限設備。COAP 是二進制格式的,HTTP 是文本格式的,COAP 比 HTTP 更加緊湊。COAP 最小長度僅僅4B,一個HTTP的頭都幾十個B了。

低功耗:非長連接通信,適應低功耗網絡的需求。

支持可靠傳輸:雖然基于 UDP,但通過四種報文類型的組合及重傳機制提高了傳輸的可靠性。

應用場景

智能家居:如智能家電的控制和狀態監測。

工業物聯網:工廠內設備的通信。

智能農業:農田監測設備的數據傳輸。

可穿戴設備等領域,實現設備與服務器之間的高效交互。

本文由 @躍曰 原創發布于人人都是產品經理。未經作者許可,禁止轉載。

題圖來自Unsplash,基于CC0協議。

該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發揮!