亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Contiki的CoAP協(xié)議分析

        2019-05-17 02:43:42曹雪峰傅冬穎蔡永華尚宇輝朱會卿
        計算機技術與發(fā)展 2019年5期
        關鍵詞:字段字節(jié)報文

        曹雪峰,傅冬穎,蔡永華,尚宇輝,朱會卿

        (河北民族師范學院 數(shù)學與計算機科學學院,河北 承德 067000)

        0 引 言

        將萬維網(wǎng)技術與物聯(lián)網(wǎng)技術相結合的物品萬維網(wǎng)技術是物聯(lián)網(wǎng)的一種實現(xiàn)模式[1-5]。利用Web的設計理念和技術,搭建基于不同通信方式的異構網(wǎng)絡和分布式網(wǎng)關的泛在應用開發(fā)環(huán)境,把物聯(lián)網(wǎng)網(wǎng)絡環(huán)境中的設備抽象為資源和服務,并釆用RESTful框架發(fā)布這些資源和服務,讓用戶能夠通過瀏覽器直接訪問到對應的傳感器節(jié)點,獲取或訂閱該節(jié)點所感知的數(shù)據(jù),并對節(jié)點進行遠程控制。這將大幅度降低物聯(lián)網(wǎng)應用的開發(fā)難度,提升物聯(lián)網(wǎng)應用創(chuàng)新的可能性,而采用CoAP實現(xiàn)基于RESTful的Web服務機制是目前常用的一種方法[6-7]。受限制的應用協(xié)議(constrained application protocol,CoAP)是專門為資源受限設備和網(wǎng)絡優(yōu)化設計的網(wǎng)絡協(xié)議。它采用REST(representa-tional state transfer)風格架構,將網(wǎng)絡上的所有對象抽象為資源,每個資源對應一個唯一的統(tǒng)一資源標識符(universal resource identifier,URI),通過URI可以對資源進行無狀態(tài)操作,包括GET、PUT、POST和DELETE等。CoAP并不是HTTP的壓縮協(xié)議。CoAP一方面實現(xiàn)了HTTP的一部分功能子集,并為資源受限環(huán)境進行了重新設計;另一方面提供了內(nèi)置資源發(fā)現(xiàn)、多播支持、異步消息交換等功能。

        Contiki是一個開源操作系統(tǒng)[8-11],可以在其官方網(wǎng)站上下載到全套的源代碼,目前最新版本為Contiki3.0。Contiki操作系統(tǒng)支持CoAP協(xié)議。Cooja是Contiki操作系統(tǒng)下的無線傳感器網(wǎng)絡仿真工具,在Cooja中可以采用目前流行的多種傳感器構成的不同傳感器網(wǎng)絡,分析無線傳感器網(wǎng)絡不同層的協(xié)議。

        1 CoAP協(xié)議原理

        1.1 CoAP報文格式

        CoAP報文格式如圖1所示[12-16]。

        圖1 CoAP報文格式

        Ver:2 bit,說明CoAP的版本號,固定值為“1”;

        T:2 bit,說明CoAP的報文類型,CoAP定義了四種類型報文:

        Confirmable(CON):需要被確認的報文,值為“00”;

        Non-Confirmable(NON):不需要被確認的報文,值為“01”;

        Acknowledgement(ACK):應答報文,值為“10”;

        Rest(RST):復位報文,值為“11”;

        TKL:4 bit,說明標簽字段的長度,單位為字節(jié)。其值為0時表示省略標簽字段;

        Code:1字節(jié),說明CoAP的請求方法或響應狀態(tài)。該字段分成高3位和低5位兩部分,用十進制數(shù)表示成x.xx的形式。CoAP定義了四種請求方法和四種響應報文:

        Code=0.00,表示空報文;

        Code=0.01,表示GET方法;

        Code=0.02,表示POST方法;

        Code=0.03,表示PUT方法;

        Code=0.04,表示DELETE方法;

        Code=2.xx,表示正確響應;

        Code=4.xx,表示客戶端錯誤響應;

        Code=2.xx,表示服務器端錯誤響應。

        Message ID:2字節(jié),說明CoAP報文的序號,用于重復性檢查,實現(xiàn)可靠傳輸。一對CoAP請求和響應的Message ID值必須相同;

        Token:長度可變,是另一種形式的CoAP報文序號,在獨立式響應中起著重要作用;

        Options:長度可變,可以沒有或有多個選項,具體包括如下內(nèi)容:

        Option Delta:4 bit,Option的增值,相當于順序編號,當前的Option的具體編號等于之前所有Option Delta的總和。它的值可以為0-12,或者13,14。當為13或者14時,需要增加一個Option Delta (extend)字段,此字段長度為0-2字節(jié);

        Option Length:4 bit,Option的長度,表示Value的具體長度,它的值可以為0-12,或者13,14。當為13或者14時,需要增加一個Option Length (extend)字段,此字段長度為0-2字節(jié);

        Option Value:0或多個字節(jié),表示Option具體內(nèi)容。

        CoAP的所有選項都采用編號的方式定義,每個選項字段有4個屬性:C(Critical)、U(Unsafe)、N(NoCacheKey)和R(Repeatable),前三個屬性值是編號的組成部分。常見的選項包括Uri相關選項、Content-Format選項、Accept、Etag、Block1和Block2選項等內(nèi)容;

        0xFF:CoAP首部與負載之間的分隔符;

        Payload:是和具體應用相關的內(nèi)容,包括多種不同格式的媒體。

        1.2 工作模式

        雖然CoAP協(xié)議是基于運輸層不可靠的UDP協(xié)議實現(xiàn)的,但是它利用可靠傳輸機制提供了可靠傳輸?shù)恼埱?響應工作模式。

        (1)捎帶式響應(piggybacked response)。

        是指發(fā)送方的請求報文采用CON類型的報文,如果接收方能立即做出響應,響應數(shù)據(jù)就包含在ACK類型的確認報文中。

        (2)獨立式響應(separate response)。

        是指發(fā)送方的請求報文采用CON類型的報文,但是接收方因某種原因不能立即做出響應,因此在接收方返回的ACK類型的確認報文中并不包含響應數(shù)據(jù)。當接收方準備好該請求的響應數(shù)據(jù)后,會向發(fā)送方發(fā)送一個包含響應數(shù)據(jù)的CON類型報文,該報文需要得到發(fā)送方的確認。

        如果發(fā)送方的報文不需要確認,可以采用非可靠傳輸?shù)姆谴_認模式(non-confirmable response)來實現(xiàn)。在非確認模式中發(fā)送方采用NON類型報文發(fā)送請求,接收方收到此報文后,同樣放回NON類型的響應報文。

        1.3 CoAP資源描述

        CoAP使用URI標識一個資源,然后通過GET、POST、PUT和DELETE方法來操作這些資源。URI的格式如下:

        coap-URI="coap:" "http://" host [":" port] path-abempty ["?" query]

        其中,host為資源所在主機,不能為空,可以使IP地址或域名;port為服務器監(jiān)聽端口,coap默認為5683,coaps為5684;path為指定資源在主機上的路徑;query用于參數(shù)化資源。

        另外,CoAP協(xié)議規(guī)定通過訪問/.well-known/core,可以查看傳感器節(jié)點提供的所有資源,這些資源以層次結構組織起來,用戶可以對資源進行進一步的操作。

        2 無線傳感器網(wǎng)絡的組建

        2.1 網(wǎng)絡拓撲結構

        在Cooja中按圖2搭建無線傳感器網(wǎng)絡。

        其中節(jié)點1為無線傳感器網(wǎng)絡的網(wǎng)關,其上運行程序border-router.c。其他節(jié)點上都運行CoAP服務器程序er-example-server.c。

        2.2 環(huán)境配置

        為了能夠通過互聯(lián)網(wǎng)上的遠程用戶終端訪問傳感器節(jié)點,需要將鏈路本地地址映射為IPv6的全球單播地址,這一工作由網(wǎng)關完成。首先通過Cooja的菜單項“tools->serial socket->sky1”打開網(wǎng)關節(jié)點的偵聽端口60001。然后打開新的ubuntu終端窗口,改變目錄到contiki/examples/er-rest-example,執(zhí)行如下命令,完成地址映射。

        make connect-router-cooja

        為了生成用于wireshark進行協(xié)議分析的報文跟蹤記錄文件,選擇Cooja的菜單項“tools/radio messages”打開radio messages對話框,在radio messages對話框中選擇“analyzer/6LoWPAN Analyzer with PCAP”菜單項,在仿真過程中的報文跟蹤記錄文件保存在Contiki操作系統(tǒng)的tools/cooja/build文件夾中,文件擴展名是.pcap。

        然后選擇cooja的“simulation->start simulation”菜單項啟動仿真過程。

        在安裝了copper插件的火狐瀏覽器中連接無線傳感器網(wǎng)絡中地址為aaaa::212:7402:2:202的節(jié)點2,單擊“discover”按鈕后,就會在瀏覽器“discovering”區(qū)域列出在其上已激活的資源。

        3 CoAP工作過程分析

        3.1 GET方法工作過程

        選中“test/hello”,然后單擊瀏覽器上“GET”按鈕,可以看到節(jié)點2返回的“Hello World!”消息。對此過程捕獲的COAP報文如圖3所示。

        圖中370號報文是客戶端發(fā)送的GET請求報文,是需要被確認的報文,省略了標簽字段,報文序號為16637;它有3個選項字段,前兩個選項字段的編號為11,是Uri-Path選項,指示資源在服務器中的位置,值分別為“test”和“hello”;第三個選項字段的編號為23(12+11),是Block2塊傳輸選項,因為是Block2,所以使用的是塊傳輸?shù)目刂菩杂梅?,希望響應的塊序號是“0”,塊大小是64字節(jié)。

        圖3 GET的請求報文

        圖4中的373號報文是CoAP服務器返回的GET響應報文,是應答報文,省略標簽字段,響應代碼為“2.05 content”,報文序號為16637,與請求報文一致。它有3個選項字段,第一個選項字段的編號為4,是ETag選項,作為資源本地標識符,用來區(qū)分同一資源在不同時間的變化,值為“0C”;第二個選項字段的編號為12(8+4),是Content-Format選項,指明CoAP負載的媒體類型,值為“text/plain;charset=utf-8”,也就是說負載的媒體類型為文本或二進制類型,采用utf-8編碼;第三個選項字段的編號為23,是Block2塊傳輸選項,因為是Block2,所以使用的是塊傳輸?shù)拿枋鲂杂梅?,表示當前報文的負載在資源描述中的塊序號是“0”,塊大小是32字節(jié),負載內(nèi)容是“Hello World!”。

        3.2 POST方法工作過程

        通過瀏覽器上的“POST”按鈕就可遠程控制傳感器節(jié)點上的紅色Led燈。選中“actuators/toggle”,然后單擊瀏覽器上“POST”按鈕就可控制節(jié)點2上的紅色Led燈亮。該過程捕獲的COAP報文如圖5所示。

        圖5 POST的請求報文

        圖中345號報文是客戶端發(fā)送的POST請求報文,是需要被確認的報文,省略了標簽字段,報文序號為34004,它有2個選項字段,編號都為11,是Uri-Path選項,指示資源在服務器中的位置,值分別為“actuators”和“toggle”;負載字段的值為“mode=“on””。

        圖6中346號報文是CoAP服務器返回的POST響應報文,是應答報文,省略了標簽字段,響應代碼為“2.05 content”,報文序號為34004,與請求報文一致。

        圖6 POST的響應報文

        如果把POST請求報文中負載字段內(nèi)容改為“mode=“off””,重復前面的操作,會看到節(jié)點2上的紅色Led燈熄滅。

        4 結束語

        在Contiki無線傳感器網(wǎng)絡操作系統(tǒng)的支持下,利用Cooja構建了由路由網(wǎng)關節(jié)點和COAP Server節(jié)點組成的無線傳感器網(wǎng)絡,用火狐瀏覽器訪問傳感器節(jié)點,查看傳感器節(jié)點上的資源,并對傳感器節(jié)點進行實時控制,實現(xiàn)了全IP物聯(lián)網(wǎng)網(wǎng)絡融合目標。利用Wireshark對捕獲報文進行分析,說明了CoAP協(xié)議的工作過程,驗證了CoAP協(xié)議的工作原理。

        猜你喜歡
        字段字節(jié)報文
        基于J1939 協(xié)議多包報文的時序研究及應用
        汽車電器(2022年9期)2022-11-07 02:16:24
        圖書館中文圖書編目外包數(shù)據(jù)質(zhì)量控制分析
        No.8 字節(jié)跳動將推出獨立出口電商APP
        CTCS-2級報文數(shù)據(jù)管理需求分析和實現(xiàn)
        淺析反駁類報文要點
        中國外匯(2019年11期)2019-08-27 02:06:30
        No.10 “字節(jié)跳動手機”要來了?
        簡談MC7字節(jié)碼
        ATS與列車通信報文分析
        CNMARC304字段和314字段責任附注方式解析
        無正題名文獻著錄方法評述
        在线精品国产一区二区三区| 五月综合丁香婷婷久久| 天堂免费av在线播放| 国产精品国产三级国产av品爱网 | 国产欧美亚洲另类第一页| 中文字幕有码手机视频| 女人18片毛片60分钟| 无码人妻av一区二区三区蜜臀 | 人妻少妇精品无码专区动漫| 亚洲天堂在线播放| 久久久亚洲精品免费视频| 国产精品一区二区久久久av| 国产农村熟妇videos| 精品国产一区二区三区久久久狼 | 亚洲成a人片在线| 青青草原亚洲在线视频| 精品亚洲一区二区三区四区五| 亚洲中文字幕无码一久久区| 午夜一级成人| 亚洲无av高清一区不卡| 草草影院ccyy国产日本欧美 | 最新国产三级| 一本色道亚州综合久久精品| av在线免费观看蜜桃| 亚洲精品无码乱码成人| 亚洲一线二线三线写真| 毛片无遮挡高清免费久久| 亚洲国产高清一区av| 日本a片大尺度高潮无码| 免费黄色电影在线观看| 亚洲高清一区二区三区在线观看| 亚洲av人片在线观看| 欧美一区二区三区久久综| 日韩在线观看你懂的| 视频一区视频二区亚洲| 亚洲欧洲国产码专区在线观看| 免费人成网ww555kkk在线| 亚洲日韩一区二区一无码| 翘臀诱惑中文字幕人妻| 超碰人人超碰人人| 亚洲av无码一区二区乱子伦|