無線物聯(lián)網(wǎng)中coap協(xié)議的研究與實(shí)現(xiàn)_第1頁
無線物聯(lián)網(wǎng)中coap協(xié)議的研究與實(shí)現(xiàn)_第2頁
無線物聯(lián)網(wǎng)中coap協(xié)議的研究與實(shí)現(xiàn)_第3頁
無線物聯(lián)網(wǎng)中coap協(xié)議的研究與實(shí)現(xiàn)_第4頁
無線物聯(lián)網(wǎng)中coap協(xié)議的研究與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、無線物聯(lián)網(wǎng)中 CoAP 協(xié)議的研究與實(shí)現(xiàn),張 熒,作者:引言物聯(lián)網(wǎng)是在互聯(lián)網(wǎng)的基礎(chǔ)上延伸和擴(kuò)展的一種網(wǎng)絡(luò),其用戶端延伸和擴(kuò)展到了任何物品之間,彼此進(jìn)行信息交換和通信,目的是實(shí)現(xiàn)所有物品與網(wǎng)絡(luò)的連接,從而方便識(shí)別、管理和控制。無線物聯(lián)網(wǎng)的特點(diǎn)包括:全面感知、實(shí)時(shí)準(zhǔn)確傳遞物品信息、利用智能計(jì)算技術(shù)對(duì)海量數(shù)據(jù)進(jìn)行分析和處理,以實(shí)現(xiàn)智能化控制。由于無線物聯(lián)網(wǎng)中的設(shè)備很多都是資源受限型的,這些設(shè)備量的內(nèi)存空間和有限的計(jì)算能力。為此,IETF(emet Engineering Task Force)的 CoRE(Constrained RESTfulEnvironment)工作組為受限節(jié)點(diǎn)制定相關(guān)的 RE

2、ST(Represenional Se Transfer)形式的應(yīng)用層協(xié)議。這就是 CoRE 工作組正在制訂的 CoAP(Constrained Application Protocol)協(xié)議。1.6LoN 協(xié)議棧由于 TCPIP 協(xié)議棧不適用于資源受限的設(shè)備,因此提出了一種 6LoN(IPv6 overLower Wirelessal Area Networks)協(xié)議棧。CoAP 是 6LoN 協(xié)議棧中的應(yīng)802154 標(biāo)準(zhǔn)用層協(xié)議。6LoN 使 IPv6 可用于低功耗的有損網(wǎng)絡(luò),它是基于 IEEE的。6LoN 協(xié)議棧如圖 1 所示。CoAP UDPIPv6 層IPv66LoN 適配層 80

3、2.15.4MAC802.15.4PHY圖 1協(xié)議棧的下兩層用 802154 PHYMAC,中間加一個(gè) IPv6-6LoN 適配層,傳輸層使用 UDP 協(xié)議,應(yīng)用層使用 CoAP 協(xié)議。它包括 REST 的最小子集和到 HTTP 的無狀態(tài)映 射。通信主機(jī)使用 CoAP 協(xié)議,能夠支持穩(wěn)定的通信架構(gòu),以實(shí)現(xiàn)傳感器節(jié)點(diǎn)與互聯(lián)網(wǎng)的無線連接。2.CoAP 協(xié)議在 2010 年 3 月,CoRE 工作組開始制定 CoAP 協(xié)議,到目前為止,該協(xié)議還沒有定稿。CoAP 協(xié)議是為物聯(lián)網(wǎng)中資源受限設(shè)備制定的應(yīng)用層協(xié)議。它是一種面向網(wǎng)絡(luò)的協(xié)議,采用了與 HTTP 類似的特征,內(nèi)容為資源抽象、REST 式交互以及

4、可擴(kuò)展的頭選項(xiàng)等。應(yīng)用程序通過 URI 標(biāo)識(shí)來獲取服務(wù)器上的資源,即可以像 HTTP 協(xié)議對(duì)資源進(jìn)行GET、PUT、T 和 DELETE 等操作。CoAP 協(xié)議具有如下特點(diǎn):(1)報(bào)頭壓縮:CoAP 包含一個(gè)緊湊的二進(jìn)制報(bào)頭和擴(kuò)展報(bào)頭。它只有短短的 4 B 的基本報(bào)頭,基本報(bào)頭后面跟擴(kuò)展選項(xiàng)。一個(gè)典型的請(qǐng)求報(bào)頭為 1020 B。圖 2 是 CoAP 協(xié)議的信息格式。圖 2 CoAP 協(xié)議的信息格式報(bào)頭部分各字段的含義如下:V(Ver)表示 CoAP 協(xié)議的版本號(hào);T(Type)表示消息的信息類型;OC(Option Count)表示頭后面的可選的選項(xiàng)數(shù)量;Code 表示消息的類型:請(qǐng)求消息、響

5、應(yīng)消息,或者是空消息;Message ID 表示消息,用于重復(fù)消息檢測、匹配消息類型等。(2)方法和 URIs:為了實(shí)現(xiàn)客戶端服務(wù)器上的資源,CoAP 支持 GET、PUT、T和 DELETE 等方法。CoAP 還支持 URIs,這是 Web 架構(gòu)的主要特點(diǎn)。(3)傳輸層使用 UDP 協(xié)議:CoAP 協(xié)議是建立在 UDP 協(xié)議之上,以減少開銷和支持組播功能。它也支持一個(gè)簡單的停止和等待的可靠性傳輸機(jī)制。(4)支持異步通信:HTTP 對(duì) M2M(Machine-to-Machine)通信不適用,這是由于事務(wù)總是由客戶端發(fā)起。而 CoAP 協(xié)議支持異步通信,這對(duì) M2M 通信應(yīng)用來說是常見的休眠喚

6、醒機(jī)制。(5)支持資源發(fā)現(xiàn):為了的發(fā)現(xiàn)和使用資源,它支持內(nèi)置的資源發(fā)現(xiàn)格式,用于發(fā)現(xiàn)設(shè)備上的資源列表,或者用于設(shè)備向服務(wù)目錄公告自己的資源。它支持 RFC5785 中的格式,在 CoRE 中用wellknowncore 的路徑表示資源描述。(6)支持緩存:CoAP 協(xié)議支持資源描述的緩存以優(yōu)化其性能。(7) 訂閱機(jī)制:CoAP 使用異步通信方式,用訂閱機(jī)制實(shí)現(xiàn)從服務(wù)器到客戶端的消息推送。實(shí)現(xiàn) CoAP 的發(fā)布,訂閱機(jī)制,它是請(qǐng)求成功后自動(dòng)的一種資源后處理程序。是由默認(rèn)的 EVENT_和 PERIODIC_RESOUR來進(jìn)行配置的。它們的事件和輪詢處理程序用ESTnotify_subscri b

7、ers()函數(shù)來發(fā)布。01234567890123456789012345678901VTOCCodeMessage IDPayload(if any)Options(if any)2.1 CoAP 協(xié)議棧圖 3 是 CoAP 協(xié)議棧。CoAP 協(xié)議的傳輸層使用 UDP 協(xié)議。由于 UDP 傳輸?shù)牟豢煽啃裕?CoAP 協(xié)議采用了雙層結(jié)構(gòu),定義了帶有重傳的事務(wù)處理機(jī)制,并且提供資源發(fā)現(xiàn)和資源描述等功能。CoAP 采用盡可能小的載荷,從而限制了分片。Request/ResponseCoAPTranionUDP6LoN圖 3 CoAP 協(xié)議棧事務(wù)層(Tranion layer)用于處理節(jié)點(diǎn)之間的信息

8、交換,同時(shí)提供組播和擁塞控制等功能。請(qǐng)求響應(yīng)層(RequestResponselayer)用于傳輸對(duì)資源進(jìn)行操作的請(qǐng)求和響應(yīng)信息。CoAP 協(xié)議的 REST 構(gòu)架是基于該層的通信。CoAP 的雙層處理方式,使得 CoAP 沒有采用 TCP 協(xié)議,也可以提供可靠的傳輸機(jī)制。利用默認(rèn)的定時(shí)器和指數(shù)增長的重傳間隔時(shí)間實(shí)現(xiàn) CON(Confirmable)消息的重傳,直到接收方發(fā)出確認(rèn)消息。另外,CoAP 的雙層處理方式支持異步通信,這是物聯(lián)網(wǎng)和 M2M 應(yīng)用的關(guān)鍵需求之一。2.2 CoAP 的訂閱機(jī)制HTTP 的請(qǐng)求響應(yīng)機(jī)制是假設(shè)事務(wù)都是由客戶端發(fā)起的,通常叫做拉模型。這導(dǎo)致客戶端不能高效的中,設(shè)備

9、都是無線低功耗的,這些設(shè)備大部分時(shí)間是休眠狀態(tài),因此不能響應(yīng)輪詢請(qǐng)求。而 CoRE 認(rèn)為支持本地的推送模型是一個(gè)重要的需求,也就是由服務(wù)器初始化事務(wù)到客戶端。推送模型需要一個(gè)訂閱接口,用來請(qǐng)求響應(yīng)關(guān)于特定資源的改變。而由于 UDP 的傳輸是異步的,所以不需要特殊消息。訂閱機(jī)制如圖 4 所示。CoAPserverCoAPc ntCON(tid=125)GET/light lifetime=60s/light changesACK(tid=125)200 OK”.”CON(tid=430)GET/light “.”ACK(tid=430)/light changesCON(tid=431)200

10、OK/light”.”ACK(tid=431)圖 4 訂閱機(jī)制圖2.3 CoAP 的交互模型CoAP 使用類似于 HTTP 的請(qǐng)求響應(yīng)模型:CoAP 終端節(jié)點(diǎn)作為客戶端向服務(wù)器發(fā)送一個(gè)或多個(gè)請(qǐng)求,服務(wù)器端回復(fù)客戶端的 CoAP 請(qǐng)求。不同于 HTTP,CoAP 的請(qǐng)求和響應(yīng)在發(fā)送之前不需要事先建立連接,而是通過 CoAP 信息來進(jìn)行異步信息交換。CoAP 協(xié)議使用 UD P 進(jìn)行傳輸。這是通過信息層選項(xiàng)的可靠性來實(shí)現(xiàn)的。CoAP 定義了四種類型的信息:可證實(shí)的 CON(Confirmable)信息,不可證實(shí)的(-Confirmable)信息,可確認(rèn)的 ACK(Acknowledgement)信

11、息和重置信息 RST(Reset)。方法代碼和響應(yīng)代碼包含在這些信息中,實(shí)現(xiàn)請(qǐng)求和響應(yīng)功能。這四種類型信息對(duì)于請(qǐng)求響應(yīng)的交互來說是透明的。CoAP 的請(qǐng)求響應(yīng)語義包含在 CoAP 信息中,其中分別包含方法代碼和響應(yīng)代碼。CoA P 選項(xiàng)中包含可選的(或默認(rèn)的)請(qǐng)求和響應(yīng)信息,例如 URI 和負(fù)載內(nèi)容類型。令牌選項(xiàng)用于獨(dú)立匹配底層的請(qǐng)求到響應(yīng)信息。請(qǐng)求響應(yīng)模型:請(qǐng)求包含在可證實(shí)的或不可證實(shí)的信息中,如果服務(wù)器端是立即可用的,它對(duì)請(qǐng)求的應(yīng)答包含在可證實(shí)的確認(rèn)信息中來進(jìn)行應(yīng)答。圖 5 是基本的 GET 請(qǐng)求和響應(yīng)模式,其中圖 5(a)表示成功發(fā)送請(qǐng)求和收到 ACK 確認(rèn)信息,圖 5(b)表示重傳了請(qǐng)

12、求信息,然后才收到 ACK 確認(rèn)信息。CoAPclCoAPserverCON(tid=123)GET/lightACK(tid=123)200 OK”(a)成功發(fā)送請(qǐng)求和收到 ACK 確認(rèn)信息CoAPclCoAPclCON(tid=124)GET/humidit yCON(tid=124)GET/humidityTimeoutCON(tid=124)OK”.”(b)重傳了請(qǐng)求信息才收到 ACK 確認(rèn)信息圖 5 典型CoAP 信息交換雖然 CoAP 協(xié)議目前還在制定當(dāng)中,但 Contiki 和 TinyOS操作系統(tǒng)已經(jīng)支持CoAP 協(xié)議。Contiki 是一個(gè)多任務(wù)操作系統(tǒng),并帶有 uIPv6

13、協(xié)議棧,適用于系統(tǒng)和無線傳感器網(wǎng)絡(luò),它占用系統(tǒng)資源小,適用于資源受限的網(wǎng)絡(luò)和設(shè)備。目前,火狐瀏覽器已經(jīng)集成了 Copper 插件,從而實(shí)現(xiàn)了 CoAP 協(xié)議。但是這種方式只能傳感器節(jié)點(diǎn)上的實(shí)時(shí)數(shù)據(jù),而不能查看各種歷史數(shù)據(jù)。為此,在 Contiki 系統(tǒng)的基礎(chǔ)上,基于 uIPv6START KIT 無線網(wǎng)絡(luò)開發(fā)套件,用自己編寫的客戶端程序?qū)崿F(xiàn)了和數(shù)據(jù)庫的交互,把歷史數(shù)據(jù)存入數(shù)據(jù)庫中,從而在 Web 瀏覽器端不僅可以還能查看歷史數(shù)據(jù),以便于分析問題。傳感器節(jié)點(diǎn)上的實(shí)時(shí)數(shù)據(jù),3. 實(shí)臺(tái)及 CoAP 協(xié)議3.1 實(shí)驗(yàn)硬件式是美信公司的 IPv6 智能網(wǎng)關(guān)(MXG300)、MX231CC 節(jié)點(diǎn)、USB

14、無線網(wǎng)卡(STICK)和 JTAG器。實(shí)驗(yàn)的硬件配置和硬件如圖 6,圖 7 所示。程序。是WinAVR 和 AVRstudio,用于向節(jié)點(diǎn)和 USB 網(wǎng)卡中MXG300STICK服務(wù)器圖 6 實(shí)驗(yàn)的硬件配置圖 7 硬件其中 IPv6 智能網(wǎng)關(guān)上的主要有:BCM 6358UKFBG 支持多用戶以太網(wǎng)功能,具有高度優(yōu)化的 32 MIPS CPU 和標(biāo)準(zhǔn)的 EJTAG 調(diào)試器;BCM53 25EKQMG 集成了 5 個(gè)收發(fā)器,具有 128 KB 的數(shù)據(jù)包緩沖區(qū),最多可以支持 2K 的 MAC 地址,支持地址自動(dòng)學(xué)習(xí),提供真正的即插即用連接,而且是低功耗的;SIGe2521A60 提供 2425 GH

15、z 的無線工作頻段范圍,應(yīng)用于 ISM 24GHz 的無線解決方案。圖 8 是 IPv6 智能無線網(wǎng)關(guān)的接口布局,它是基于 OPENWRT 系統(tǒng)定制完成的。具備 3 個(gè)局域網(wǎng)口,1 個(gè)廣域網(wǎng)口,1 個(gè) 80211abg WiFi 無線網(wǎng)絡(luò)接口,1 個(gè)標(biāo)準(zhǔn) USB 口和 1 個(gè)可選的串口調(diào)試口。該智能無線網(wǎng)關(guān)除具備通用無線路由器的功能以外,還可以實(shí)現(xiàn)基于 Contiki 操作系統(tǒng)的 USB UIP 網(wǎng)絡(luò)和普通 IP 網(wǎng)絡(luò)之間的 IPv6 互連,同時(shí)還支持有能力的系統(tǒng)在 OPENWRT 的基礎(chǔ)上開發(fā)自己的應(yīng)用包,實(shí)現(xiàn)更復(fù)雜的應(yīng)用。MX231CCMX231CC802.15.4MX231CCPCB 正

16、面RXTXGNDVCCRESET開關(guān)電源LAN1LAN2LAN3WANUSBNCNCNCVLAN1.0(LAN1-LAN3) VLAN1.1圖 8 網(wǎng)關(guān)接口布局OPENWRT 是一個(gè)開源的 Linux 版本。主要應(yīng)用于 Contiki 系統(tǒng),它提供宏定義和 RESTful 網(wǎng)絡(luò)服務(wù)實(shí)例。系統(tǒng)。網(wǎng)關(guān)和節(jié)點(diǎn)上同時(shí)裝有MX231CC 節(jié)點(diǎn)上的主要是 ATmega1284P,它具有 128 KB 的可編程閃存,4 KB 的E2PROM,16 KB 的片內(nèi) SRAM,JTAG 接口,優(yōu)化的功耗和處理速度。節(jié)點(diǎn)上運(yùn)行 Contiki系統(tǒng)。節(jié)點(diǎn)上還有光敏傳感器、室內(nèi)溫度傳感器、三色 LED 指示燈等。3.2

17、 CoAP 協(xié)議的火狐瀏覽器實(shí)現(xiàn)(BS 架構(gòu))BS 架構(gòu)的系統(tǒng)結(jié)構(gòu)如圖 9 所示。用戶瀏覽器用戶瀏覽器HTTPCoAPIPv6智能網(wǎng)關(guān)Web服務(wù)器用戶瀏覽器用戶瀏覽器用戶瀏覽器用戶瀏覽器圖 9 B/S 架構(gòu)系統(tǒng)結(jié)構(gòu)圖系統(tǒng)由用戶瀏覽器、Web 服務(wù)器、IPv6 智能網(wǎng)關(guān)、MX231CC 節(jié)點(diǎn)組成。用戶瀏覽器通過 HTTP 協(xié)議Web 服務(wù)器,MX231CC 節(jié)點(diǎn)通過 CoAP 協(xié)議和 IPv6 智能網(wǎng)關(guān)進(jìn)行通信,從而實(shí)現(xiàn)用戶瀏覽器節(jié)點(diǎn)上資源的功能。圖 9 中實(shí)線表示有線連接,虛線表示無線連接。在當(dāng)前的 Contiki 25 中,集成了 CoAP 03 和 CoAP06 這兩個(gè)版本。這兩個(gè)文件在C

18、ontiki 25 的 apps 目錄下,關(guān)于 CoAP 的分為:內(nèi)容都在這兩個(gè)文件中。程序的主要部RJ11#if WITH_COAP = = 3#include “coap-0.3.h” #elif WITH_COAP = = 6#include “coap-0.6.h”進(jìn)行 CoAP 的版本選擇;/*/PROS(coap_sle,”CoAP Sle”);AUTOSTART_PRO/*SES(&coap_sle);*/Char temp100; PERIODIC_RESOURCE(light,METHOD_GET,”light”,”title=”Periodiclight);rt=”O(jiān)bse

19、rvable”;l*CLOCK_SECOND);PROS(coap_sle,”CoAP_Sle”);一個(gè)名為 coap_sle 的進(jìn)程;AUTOSTART_PRO程序;SES(&coap_sle)這個(gè)進(jìn)程需要自啟動(dòng),即當(dāng)節(jié)點(diǎn)啟動(dòng)時(shí)啟動(dòng)本PERIODIC_RESOURCE()為進(jìn)程的主體部分。然后進(jìn)行編譯,編譯成elf 文件,用 JTAG器到節(jié)點(diǎn)上。節(jié)點(diǎn)地址設(shè)置為:2001:2:11:22ff:fe33:4499。這時(shí),用火狐瀏覽器自帶 coap 插件,如果用其他瀏覽器,那么需要進(jìn)行 coap 的節(jié)點(diǎn),因?yàn)榛鸷鼮g覽器設(shè)置。以控制節(jié)點(diǎn)上的三色 LED 燈反轉(zhuǎn)為例,用下面的請(qǐng)求格式:GETcoap:/:/readings其中 mote_ip_address 是節(jié)點(diǎn)的 IPv6 地址,port_number 是節(jié)點(diǎn)的端,readings是客戶端請(qǐng)求的資源(溫度)。所以在瀏覽器地址欄輸入:coap:/2001:2:11:22e33:4499:61616/toggle,作用是讓節(jié)點(diǎn)上的三色 LED 燈進(jìn)行反轉(zhuǎn)。服務(wù)器端的響應(yīng)信息如圖 10 所示。圖 10 服務(wù)器的響應(yīng)信息從瀏覽器端可以看出,CoAP 協(xié)議支持 Discover 和 Observe 功能,具有 GET、T、PUT 和 DELETE 等方法。Type 表示信息類型為 ACK,Code 為 200,表示成功完

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論