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協議報文結構示意圖
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報文和具體負載之間的分隔符。
CoAP協議學習 CoAP基礎
原連線位址 更多coap文章請參考博文索引 物聯網學習筆記 索引博文 學習coap最簡單的方法便是閱讀協議文件。該協議文件並不是那麼複雜。但如果有乙個coap的簡單介紹就再好不過了。什麼是coap coap是一種應用層協議 它執行於 udp協議之上而不是像http那樣執行於tcp之上。coap協議非...
CoAP協議學習筆記 CoAP格式詳解 1
coap是受限制的應用協議 constrained application protocol 的代名詞。在當前由pc機組成的世界,資訊交換是通過tcp和應用層協議http實現的。但是對於小型裝置而言,實現tcp和http協議顯然是乙個過分的要求。為了讓小裝置可以接入網際網路,coap協議被設計出來。...
CoAP學習筆記 CoAP資源發現
coap協議專門為m2m通訊設計 裝置間通訊 在裝置通訊過程中很少會有人的干預。為了實現在沒有人干預的情況下正常工作,coap提供了資源發現機制。這就是的客戶端理解哪些uri是被支援,並且客戶端可以獲知該uri的具體含義。coap協議建議,伺服器端應該支援乙個 well known core,該ur...