CoAP協定調研
CoAP協定概述
CoAP協定(the Constrained Application Protocol )全稱為受限應用協定,是一種應用于嵌入式裝置之間通信的類HTTP協定。
由于嵌入式裝置的計算能力非常有限,應用于PC機的正常HTTP協定體量顯然過大。是以,CoAP協定被設計出來用于讓小裝置也能接入網際網路。
CoAP是一種應用層協定,它運作于UDP協定之上而不是像HTTP那樣運作于TCP之上。CoAP協定非常小巧,最小的資料包僅為4位元組。
CoAP協定體
和其他TCP IP協定簇中的協定一樣,CoAP協定總是以“頭”的形式出現在負載之前,而負載和CoAP頭之間使用單位元組0xFF分離。
具體的分析可以參考這篇文章。
整個CoAP協定的形式與HTTP協定的格式非常類似,但是由于本身設計長度的限制,每個字段被設計為以bit為機關,而不是HTTP的byte。
下面幾張圖展示了CoAP協定的基本格式:
code字段可以被了解為HTTP協定中的請求方法或狀态碼,分為前3位和後5位,通常記為
c.dd
的形式。
code | 方法名 |
---|---|
| |
| |
| |
| |
| 類似HTTP 1xx的狀态碼 |
| 類似HTTP 2xx的狀态碼 |
| 類似HTTP 3xx的狀态碼 |
| 類似HTTP 4xx的狀态碼 |
| 類似HTTP 5xx的狀态碼 |
option字段類似HTTP請求中的請求頭,格式如下圖:
Option Delta代表選項編号的增量,從0開始,每次增加Option Delta就是目前頭的編号,每個編号代表的請求頭對應如下圖: