物聯(lián)網(wǎng)數(shù)據(jù)接入篇-應用層 CoAP(7)
這篇文章,我們來學習下物聯(lián)網(wǎng)數(shù)據(jù)接入中的應用層協(xié)議——CoAP,這種基于REST架構的協(xié)議適用于在資源受限的低功耗設備上,其工作原理、應用場景等信息,詳見本文。
CoAP,The Constrained Application Protocol,受限應用協(xié)議,專門為物聯(lián)網(wǎng)和其他受限環(huán)境設計的一種輕量級協(xié)議,基于REST架構,與HTTP類似,但是基于 UDP,更加簡潔和高效。CoAP協(xié)議適用在資源受限的低功耗設備上,尤其是NB-IoT的設備使用。設備醒了直接發(fā)數(shù)據(jù),發(fā)完設備休眠,省電。
他是個應用層協(xié)議,聯(lián)網(wǎng)方式,就是網(wǎng)絡接口層可以用 Wi-Fi 連接、以太網(wǎng)連接、蜂窩網(wǎng)絡連接、藍牙連接、低功耗廣域網(wǎng)(LPWAN)連接(如 LoRa、NB-IoT 等)。
CoAP 模仿 HTTP 的 REST 模型,服務端以 URI 方式創(chuàng)建資源,客戶端可以通過 GET、PUT、POST、DELETE方式訪問這些資源,并且協(xié)議風格也和HTTP極為相似。
MQTT可以實現(xiàn)一個最簡單的loT架構:Device+MQTT服務器+APP。手機端或Web端可以直接從MQTT服務器訂想要的主題。
而CoAP可能需要這樣的架構:CoAP+ Web+ DataBase+App。使用CoAP必須經(jīng)過DataBase才能轉(zhuǎn)給第三方。
組成部分
主要包括客戶端、服務器和消息格式等。
工作原理
客戶端向服務器發(fā)送請求消息,服務器根據(jù)請求進行相應的響應。CoAP 采用了類似于 HTTP 的請求/響應模式,但針對受限環(huán)境進行了優(yōu)化。
CoAP 報文:
報文結構:CoAP報文由固定的4字節(jié)頭部、0-8字節(jié)的Token、0或多個TLV格式的Option、可選的Payload組成。
報文類型:CoAP定義了四種報文類型,分別是CON(需要應答的報文)、NON(無需應答的報文)、ACK(應答報文)和RST(復位報文)。
Code字段:Code字段占一個字節(jié),用于表示請求方法或響應碼。例如,0.01表示GET方法,2.00表示成功響應。文本類型(text/plain)、二進制類型(application/octet-stream)、JSON類型(application/json)是在物聯(lián)網(wǎng)中應用最廣泛的三種媒體類型,application/link-format 則是專屬于 CoAP 的媒體類型,一般在 CoAP 資源發(fā)現(xiàn)中使用。
Token:用于匹配Request和Response,或者用于消息防偽造等場景。
Options:通過報文選項可設定CoAP請求參數(shù)和負載媒體類型等。
Payload:真正有用的被交互的數(shù)據(jù)。
CoAP 和 HTTP對比
特點
輕量級:協(xié)議開銷小,適合資源受限設備。COAP 是二進制格式的,HTTP 是文本格式的,COAP 比 HTTP 更加緊湊。COAP 最小長度僅僅4B,一個HTTP的頭都幾十個B了。
低功耗:非長連接通信,適應低功耗網(wǎng)絡的需求。
支持可靠傳輸:雖然基于 UDP,但通過四種報文類型的組合及重傳機制提高了傳輸?shù)目煽啃浴?/p>
應用場景
智能家居:如智能家電的控制和狀態(tài)監(jiān)測。
工業(yè)物聯(lián)網(wǎng):工廠內(nèi)設備的通信。
智能農(nóng)業(yè):農(nóng)田監(jiān)測設備的數(shù)據(jù)傳輸。
可穿戴設備等領域,實現(xiàn)設備與服務器之間的高效交互。
本文由 @躍曰 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)作者許可,禁止轉(zhuǎn)載。
題圖來自Unsplash,基于CC0協(xié)議。
該文觀點僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務。
- 目前還沒評論,等你發(fā)揮!