成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

CoAP協議學習筆記——CoAP格式詳解

網絡 網絡管理
CoAP是受限制的應用協議(Constrained Application Protocol)的代名詞。在當前由PC機組成的世界,信息交換是通過TCP和應用層協議HTTP實現的。但是對于小型設備而言,實現TCP和HTTP協議顯然是一個過分的要求。

CoAP是受限制的應用協議(Constrained Application Protocol)的代名詞。在當前由PC機組成的世界,信息交換是通過TCP和應用層協議HTTP實現的。但是對于小型設備而言,實現TCP和HTTP協議顯然是一個過分的要求。為了讓小設備可以接入互聯網,CoAP協議被設計出來。CoAP是一種應用層協議,它運行于UDP協議之上而不是像HTTP那樣運行于TCP之上。CoAP協議非常小巧,最小的數據包僅為4字節。

1 CoAP協議綜述

和其他TCP IP協議簇中的協議一樣,CoAP協議總是以“頭”的形式出現在負載之前,而負載和CoAP頭之間使用單字節0xFF分離。學習CoAP協議***的方法便是結合RFC文檔,詳細分析CoAP協議報文格式的每一部分,便是CoAP協議報文結構示意圖。

 

圖1.1 CoAP協議報文結構示意圖

圖1.1 CoAP協議報文結構示意圖

2 CoAP協議報文各部分

【Ver】 版本編號,指示CoAP協議的版本號。類似于HTTP 1.0 HTTP 1.1。版本編號占2位,取值為01B。

【T】報文類型,CoAP協議定了4種不同形式的報文,CON報文,NON報文,ACK報文和RST報文。

【TKL】CoAP標識符長度。CoAP協議中具有兩種功能相似的標識符,一種為Message ID(報文編號),一種為Token(標識符)。其中每個報文均包含消息編號,但是標識符對于報文來說是非必須的。

【Code】功能碼/響應碼。Code在CoAP請求報文和響應報文中具有不同的表現形式,Code占一個字節,它被分成了兩部分,前3位一部分,后5位一部分,為了方便描述它被寫成了c.dd結構。其中0.XX表示CoAP請求的某種方法,而2.XX、4.XX或5.XX則表示CoAP響應的某種具體表現。

【Message ID】報文編號

【Token】標識符具體內容,通過TKL指定Token長度。

【Option】報文選項,通過報文選項可設定CoAP主機,CoAP URI,CoAP請求參數和負載媒體類型等等。

【1111 1111B】CoAP報文和具體負載之間的分隔符。#p#

3 Code部分詳解

Code部分被分成了兩部分,為了便于閱讀,Code被描述為c.dd形式。具體內容可參考RFC7252 #12.1.1 Method Codes

3.1 請求

在CoAP請求中,Code被定義為CoAP請求方法,這些方法有GET、POST、PUT和DELETE,這些方法和HTTP協議非常相似。

【0.01】GET方法——用于獲得某資源

【0.02】POST方法——用于創建某資源

【0.03】PUT方法——用于更新某資源

【0.04】DELETE方法——用于刪除某資源

3.2 響應

在CoAP響應中,Code被定義為CoAP響應碼,類似于HTTP 200 OK等等。

【2.01】Created

【2.02】Deleted

【2.03】Valid

【2.04】Changed

【2.05】Content。類似于HTTP 200 OK

【4.00】Bad Request 請求錯誤,服務器無法處理。類似于HTTP 400。

【4.01】Unauthorized 沒有范圍權限。類似于HTTP 401。

【4.02】Bad Option 請求中包含錯誤選項。

【4.03】Forbidden 服務器拒絕請求。類似于HTTP 403。

【4.04】Not Found 服務器找不到資源。類似于HTTP 404。

【4.05】Method Not Allowed 非法請求方法。類似于HTTP 405。

【4.06】Not Acceptable 請求選項和服務器生成內容選項不一致。類似于HTTP 406。

【4.12】Precondition Failed 請求參數不足。類似于HTTP 412。

【4.15】Unsuppor Conten-Type 請求中的媒體類型不被支持。類似于HTTP 415。

【5.00】Internal Server Error 服務器內部錯誤。類似于HTTP 500。

【5.01】Not Implemented 服務器無法支持請求內容。類似于HTTP 501。

【5.02】Bad Gateway 服務器作為網關時,收到了一個錯誤的響應。類似于HTTP 502。

【5.03】Service Unavailable 服務器過載或者維護停機。類似于HTTP 503。

【5.04】Gateway Timeout 服務器作為網關時,執行請求時發生超時錯誤。類似于HTTP 504。

【5.05】Proxying Not Supported 服務器不支持代理功能。#p#

4 Option部分詳解

CoAP支持多個Option,CoAP的Option的表示方法比較特殊,采用增量的方式描述,細節可參考RFC7252 #3.1

圖4.1 CoAP部分Option定義

圖4.1 CoAP部分Option定義

一般情況下Option部分包含Option Delta、Option Length和Option Value三部分。

【Option Delta】表示Option的增量,當前的Option的具體編號等于之前所有Option Delta的總和。

【Option Length】表示Option Value的具體長度。

【Option Value】表示Option具體內容

CoAP中所有的Option都采用編號的方式,這些Option及編號的定義如下圖所示。

 

圖4.2 Option編號內容

圖4.2 Option編號內容

在這些option中,Uri-Host、Uri-Port、Uri-Path和Uri-Query等和資源“位置”和參數有關。

【3】Uri-Host:CoAP主機名稱,例如iot.eclipse.org

【7】Uri-Port:CoAP端口號,默認為5683

【11】Uri-Path:資源路由或路徑,例如\temperature。資源路徑采用UTF8字符串形式,長度不計***個"\"。

【15】Uri-Query:訪問資源參數,例如?value1=1&value2=2,參數與參數之間使用“&”分隔,Uri-Query和Uri-Path之間采用“?”分隔。

在這些option中,Content-Format和Accept用于表示CoAP負載的媒體格式

【12】Content-Format:指定CoAP復雜媒體類型,媒體類型采用整數描述,例如application/json對應整數50,application/octet-stream對應整數40。

【17】Accept: 指定CoAP響應復雜中的媒體類型,媒體類型的定義和Content-Format相同。

CoAP協議中支持多個Option,例如

***個Option Delta=11,表示該Option表示Uri-Path(11)

第二個Option Delta=1,表示該Option=1+11,表示Content-Format(12)

第三個Option Delta=3,表示該Option=3+1+11,表示Uri-Query(15)

CoAP采用這樣的方式表示多個Option,而每種Option都可以在HTTP協議中找到對應項。#p#

5 Content-Format描述

CoAP支持多種媒體類型,具體可參考RFC7252 #12.3。從下圖的信息可以發現,CoAP協議中關于媒體類型的定義比較簡單,未來應該會根據實際情況擴展。

 

圖5.1 Content-Format編號內容

圖5.1 Content-Format編號內容

【text/plain】 編號為0,表示負載為字符串形式,默認為UTF8編碼。

【application/link-format】編號為40,CoAP資源發現協議中追加定義,該媒體類型為CoAP協議特有。

【application/xml】編號為41,表示負載類型為XML格式。

【application/octet-stream】編號為42,表示負載類型為二進制格式。

【application/exi】編號為47,表示負載類型為“精簡XML”格式。(翻譯不一定準確)

另外,還有一種格式也北IANA認定,也會在CoAP協議中廣泛使用那便是CBOR格式,該格式可理解為二進制JSON格式。

【applicaiton/cbor】編號為60。

6 示例

該示例來自于RFC7252。

【流程描述】

CoAP客戶端通過GET方法從Server端獲得溫度傳感器數據,CoAP URI如下

coap://www.server.com/temperautre

CoAP請求采用CON報文,Server接收到CON報文必須返回一個ACK報文。CoAP請求采用0.01 GET方法,若操作成功CoAP Server返回2.05 Content,相當于HTTP 200 OK。請求和響應的MID必須完全相同,此處為0x7d34。請求響應中的Token域為空。CoAP請求中包含Option,該Option的類型為Uri-Path,那么Option Delta的值為0+11=11,Option Value的值為字符串形式的“temperature”。CoAP返回中包含溫度數據,使用字符串形式描述,具體值為"22.3"。

圖6.1 CoAP 請求響應流程

圖6.1 CoAP 請求響應流程

【格式描述】

 

圖6.2 CoAP請求響應具體格式

圖6.2 CoAP請求響應具體格式

7 總結

一旦熟悉了CoAP協議的格式,那么再學習CoAP協議的應用就輕松多了。

責任編輯:藍雨淚 來源: CSDN博客
相關推薦

2023-09-07 14:59:42

物聯網MQTTCoAP

2023-11-18 19:41:51

2019-10-17 09:07:49

TCPUDPHTTP

2019-12-27 10:35:59

物聯網協議LWM2M MQTTCoAP

2022-08-31 09:05:08

CoAPLwM2MOthers

2023-10-11 11:59:50

Mainflux物聯網平臺

2010-07-16 14:37:26

Perl格式化輸出

2015-08-20 08:57:29

物聯網實時協議

2010-07-15 11:29:25

Perl格式化輸出

2020-02-20 22:44:01

通信協議物聯網終端設備

2023-04-18 16:12:14

2009-11-12 14:57:18

ASON路由協議

2023-05-06 08:00:25

通訊協議字節

2022-10-10 11:10:51

物聯網數據傳輸協議

2025-03-26 01:55:00

Spring協議物聯網

2009-12-14 15:33:50

動態路由協議

2010-06-03 11:12:55

Hadoop

2009-12-15 14:01:10

路由選擇協議

2010-06-29 13:22:26

UML類圖

2010-08-31 11:25:15

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品久久精品 | 四虎影视 | 亚洲国产精品久久久久秋霞不卡 | 久久成人精品视频 | 亚洲电影一区二区三区 | 9999久久| 国产精品99久久久久久人 | 亚洲人成网亚洲欧洲无码 | 亚洲精品成人 | 亚洲精品中文字幕 | 久久999 | 人人看人人草 | 激情五月婷婷丁香 | 亚洲高清一区二区三区 | 日本欧美在线 | 在线一区二区三区 | 国产精品精品视频一区二区三区 | 国产乱码精品一区二区三区五月婷 | 一级毛片在线播放 | 男人的天堂一级片 | 精品视频一区二区 | 蜜桃综合在线 | 在线黄| 国产视频第一页 | 国产玖玖| 999视频 | 亚洲高清视频在线观看 | 99久久精品免费视频 | 国产精品一二三区 | 91久久国产综合久久91精品网站 | 91av在线视频观看 | 中文字幕av网 | 久久一区 | 成人免费看| 日韩字幕 | 福利视频日韩 | 久久久国产精品视频 | 在线视频 亚洲 | 久久久精| 手机av在线| 欧美一级片在线 |