




CoAP協(xié)議格式詳解.docx 免費(fèi)下載
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
CoAP是受限制的應(yīng)用協(xié)議(ConstrainedApplicationProtocol)的代名詞。在當(dāng)前由PC機(jī)組成的世界,信息交換是通過(guò)TCP和應(yīng)用層協(xié)議HTTP實(shí)現(xiàn)的。但是對(duì)于小型設(shè)備而言,實(shí)現(xiàn)TCP和HTTP協(xié)議顯然是一個(gè)過(guò)分的要求。為了讓小設(shè)備可以接入互聯(lián)網(wǎng),CoAP協(xié)議被設(shè)計(jì)出來(lái)。CoAP是一種應(yīng)用層協(xié)議,它運(yùn)行于UDP協(xié)議之上而不是像HTTP那樣運(yùn)行于TCP之上。CoAP協(xié)議非常小巧,最小的數(shù)據(jù)包僅為4字節(jié)。1CoAP協(xié)議綜述和其他TCPIP協(xié)議簇中的協(xié)議一樣,CoAP協(xié)議總是以“頭”的形式出現(xiàn)在負(fù)載之前,而負(fù)載和CoAP頭之間使用單字節(jié)0xFF分離。學(xué)習(xí)CoAP協(xié)議最好的方法便是結(jié)合RFC文檔,詳細(xì)分析CoAP協(xié)議報(bào)文格式的每一部分,便是CoAP協(xié)議報(bào)文結(jié)構(gòu)示意圖。圖1.1CoAP協(xié)議報(bào)文結(jié)構(gòu)示意圖2CoAP協(xié)議報(bào)文各部分【Ver】版本編號(hào),指示CoAP協(xié)議的版本號(hào)。類(lèi)似于HTTP1.0HTTP1.1。版本編號(hào)占2位,取值為01B?!綯】報(bào)文類(lèi)型,CoAP協(xié)議定了4種不同形式的報(bào)文,CON報(bào)文,NON報(bào)文,ACK報(bào)文和RST報(bào)文?!綯KL】CoAP標(biāo)識(shí)符長(zhǎng)度。CoAP協(xié)議中具有兩種功能相似的標(biāo)識(shí)符,一種為MessageID(報(bào)文編號(hào)),一種為T(mén)oken(標(biāo)識(shí)符)。其中每個(gè)報(bào)文均包含消息編號(hào),但是標(biāo)識(shí)符對(duì)于報(bào)文來(lái)說(shuō)是非必須的。【Code】功能碼/響應(yīng)碼。Code在CoAP請(qǐng)求報(bào)文和響應(yīng)報(bào)文中具有不同的表現(xiàn)形式,Code占一個(gè)字節(jié),它被分成了兩部分,前3位一部分,后5位一部分,為了方便描述它被寫(xiě)成了c.dd結(jié)構(gòu)。其中0.XX表示CoAP請(qǐng)求的某種方法,而2.XX、4.XX或5.XX則表示CoAP響應(yīng)的某種具體表現(xiàn)?!綧essageID】報(bào)文編號(hào)【Token】標(biāo)識(shí)符具體內(nèi)容,通過(guò)TKL指定Token長(zhǎng)度?!綩ption】報(bào)文選項(xiàng),通過(guò)報(bào)文選項(xiàng)可設(shè)定CoAP主機(jī),CoAPURI,CoAP請(qǐng)求參數(shù)和負(fù)載媒體類(lèi)型等等。【11111111B】CoAP報(bào)文和具體負(fù)載之間的分隔符。3Code部分詳解Code部分被分成了兩部分,為了便于閱讀,Code被描述為c.dd形式。具體內(nèi)容可參考RFC7252#12.1.1MethodCodes3.1請(qǐng)求在CoAP請(qǐng)求中,Code被定義為CoAP請(qǐng)求方法,這些方法有GET、POST、PUT和DELETE,這些方法和HTTP協(xié)議非常相似?!?.01】GET方法——用于獲得某資源【0.02】POST方法——用于創(chuàng)建某資源【0.03】PUT方法——用于更新某資源【0.04】DELETE方法——用于刪除某資源3.2響應(yīng)在CoAP響應(yīng)中,Code被定義為CoAP響應(yīng)碼,類(lèi)似于HTTP200OK等等?!?.01】Created【2.02】Deleted【2.03】Valid【2.04】Changed【2.05】Content。類(lèi)似于HTTP200OK【4.00】BadRequest請(qǐng)求錯(cuò)誤,服務(wù)器無(wú)法處理。類(lèi)似于HTTP400。【4.01】Unauthorized沒(méi)有范圍權(quán)限。類(lèi)似于HTTP401?!?.02】BadOption請(qǐng)求中包含錯(cuò)誤選項(xiàng)?!?.03】Forbidden服務(wù)器拒絕請(qǐng)求。類(lèi)似于HTTP403?!?.04】NotFound服務(wù)器找不到資源。類(lèi)似于HTTP404?!?.05】MethodNotAllowed非法請(qǐng)求方法。類(lèi)似于HTTP405?!?.06】NotAcceptable請(qǐng)求選項(xiàng)和服務(wù)器生成內(nèi)容選項(xiàng)不一致。類(lèi)似于HTTP406?!?.12】PreconditionFailed請(qǐng)求參數(shù)不足。類(lèi)似于HTTP412。【4.15】UnsupporConten-Type請(qǐng)求中的媒體類(lèi)型不被支持。類(lèi)似于HTTP415?!?.00】InternalServerError服務(wù)器內(nèi)部錯(cuò)誤。類(lèi)似于HTTP500?!?.01】NotImplemented服務(wù)器無(wú)法支持請(qǐng)求內(nèi)容。類(lèi)似于HTTP501?!?.02】BadGateway服務(wù)器作為網(wǎng)關(guān)時(shí),收到了一個(gè)錯(cuò)誤的響應(yīng)。類(lèi)似于HTTP502?!?.03】ServiceUnavailable服務(wù)器過(guò)載或者維護(hù)停機(jī)。類(lèi)似于HTTP503?!?.04】GatewayTimeout服務(wù)器作為網(wǎng)關(guān)時(shí),執(zhí)行請(qǐng)求時(shí)發(fā)生超時(shí)錯(cuò)誤。類(lèi)似于HTTP504。【5.05】ProxyingNotSupported服務(wù)器不支持代理功能。4Option部分詳解CoAP支持多個(gè)Option,CoAP的Option的表示方法比較特殊,采用增量的方式描述,細(xì)節(jié)可參考RFC7252#3.1圖4.1CoAP部分Option定義一般情況下Option部分包含OptionDelta、OptionLength和OptionValue三部分。【OptionDelta】表示Option的增量,當(dāng)前的Option的具體編號(hào)等于之前所有OptionDelta的總和?!綩ptionLength】表示OptionValue的具體長(zhǎng)度。【OptionValue】表示Option具體內(nèi)容CoAP中所有的Option都采用編號(hào)的方式,這些Option及編號(hào)的定義如下圖所示。圖4.2Option編號(hào)內(nèi)容在這些option中,Uri-Host、Uri-Port、Uri-Path和Uri-Query等和資源“位置”和參數(shù)有關(guān)?!?】Uri-Host:CoAP主機(jī)名稱,例如【7】Uri-Port:CoAP端口號(hào),默認(rèn)為5683【11】Uri-Path:資源路由或路徑,例如\temperature。資源路徑采用UTF8字符串形式,長(zhǎng)度不計(jì)第一個(gè)"\"?!?5】Uri-Query:訪問(wèn)資源參數(shù),例如?value1=1&value2=2,參數(shù)與參數(shù)之間使用“&”分隔,Uri-Query和Uri-Path之間采用“?”分隔。在這些option中,Content-Format和Accept用于表示CoAP負(fù)載的媒體格式【12】Content-Format:指定CoAP復(fù)雜媒體類(lèi)型,媒體類(lèi)型采用整數(shù)描述,例如application/json對(duì)應(yīng)整數(shù)50,application/octet-stream對(duì)應(yīng)整數(shù)40?!?7】Accept:指定CoAP響應(yīng)復(fù)雜中的媒體類(lèi)型,媒體類(lèi)型的定義和Content-Format相同。CoAP協(xié)議中支持多個(gè)Option,例如第一個(gè)OptionDelta=11,表示該Option表示Uri-Path(11)第二個(gè)OptionDelta=1,表示該Option=1+11,表示Content-Format(12)第三個(gè)OptionDelta=3,表示該Option=3+1+11,表示Uri-Query(15)CoAP采用這樣的方式表示多個(gè)Option,而每種Option都可以在HTTP協(xié)議中找到對(duì)應(yīng)項(xiàng)。5Content-Format描述CoAP支持多種媒體類(lèi)型,具體可參考RFC7252#12.3。從下圖的信息可以發(fā)現(xiàn),CoAP協(xié)議中關(guān)于媒體類(lèi)型的定義比較簡(jiǎn)單,未來(lái)應(yīng)該會(huì)根據(jù)實(shí)際情況擴(kuò)展。圖5.1Content-Format編號(hào)內(nèi)容【text/plain】編號(hào)為0,表示負(fù)載為字符串形式,默認(rèn)為UTF8編碼。【application/link-format】編號(hào)為40,CoAP資源發(fā)現(xiàn)協(xié)議中追加定義,該媒體類(lèi)型為CoAP協(xié)議特有。【application/xml】編號(hào)為41,表示負(fù)載類(lèi)型為XML格式?!綼pplication/octet-stream】編號(hào)為42,表示負(fù)載類(lèi)型為二進(jìn)制格式?!綼pplication/exi】編號(hào)為47,表示負(fù)載類(lèi)型為“精簡(jiǎn)XML”格式。(翻譯不一定準(zhǔn)確)另外,還有一種格式也北IANA認(rèn)定,也會(huì)在CoAP協(xié)議中廣泛使用那便是CBOR格式,該格式可理解為二進(jìn)制JSON格式?!綼pplicaiton/cbor】編號(hào)為60。6示例該示例來(lái)自于RFC7252?!玖鞒堂枋觥緾oAP客戶端通過(guò)GET方法從Server端獲得溫度傳感器數(shù)據(jù),CoAPURI如下coap:///temperautreCoAP請(qǐng)求采用CON報(bào)文,Server接收到CON報(bào)文必須返回一個(gè)ACK報(bào)文。CoAP請(qǐng)求采用0.01GET方法,若操作成功CoAPServer返回2.05Content,相當(dāng)于HTTP200OK。請(qǐng)求和響應(yīng)的MID必須完全相同,此處為0x7d
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 保時(shí)捷交付合同標(biāo)準(zhǔn)文本
- 與酒店培訓(xùn)合同樣本
- 湘少版英語(yǔ)五年級(jí)上冊(cè)《Can-I-use-your-pencil-please》教學(xué)設(shè)計(jì)
- 軟件工程期終試題B
- PCB外包勞務(wù)合同樣本
- 語(yǔ)文教學(xué)德育滲透總結(jié)
- 企業(yè)門(mén)戶建設(shè)合同樣本
- 大學(xué)英語(yǔ)“課程思政”教學(xué)設(shè)計(jì)方案
- 2025年殺菌劑合作協(xié)議書(shū)
- 五年級(jí)數(shù)學(xué)上冊(cè)5.4小數(shù)點(diǎn)向左移動(dòng)引起小數(shù)大小變化的規(guī)律教案蘇教版
- 常用消毒劑的分類(lèi)、配制及使用課件演示幻燈片
- GB 45069-2024懸崖秋千安全技術(shù)要求
- 員工反恐怖協(xié)議
- 2025年高考政治一輪復(fù)習(xí)知識(shí)清單必修四《哲學(xué)與文化》重難點(diǎn)知識(shí)
- 2021年4月17日江蘇事業(yè)單位考試《綜合知識(shí)和能力素質(zhì)》(管理崗客觀題)
- 《臨床技術(shù)操作規(guī)范-放射醫(yī)學(xué)檢查技術(shù)分冊(cè)》
- 生活中的魔法數(shù)學(xué)名師公開(kāi)課獲獎(jiǎng)?wù)n件百校聯(lián)賽一等獎(jiǎng)?wù)n件
- 2024年同等學(xué)力申碩英語(yǔ)考試真題
- 江蘇省南京市六校2024-2025學(xué)年高一上學(xué)期期中聯(lián)合調(diào)研 化學(xué)試題
- 兒科基礎(chǔ)臨床知識(shí)題庫(kù)單選題100道及答案解析
- 消除“艾梅乙”醫(yī)療歧視-從我做起
評(píng)論
0/150
提交評(píng)論