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