メッセージフォーマット
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/03/20 08:11 UTC 版)
「Constrained Application Protocol」の記事における「メッセージフォーマット」の解説
トークン、オプション、およびペイロードを省略する場合、最小のCoAPメッセージの長さは4バイトである。 CoAPは、シンプルなバイナリベースヘッダー形式を使用して、リクエストとレスポンスの2つのメッセージタイプを使用する。ベースヘッダーの後に、最適化されたType-Length-Value形式のオプションが続く。CoAPはデフォルトでUDPにバインドされ、オプションでDTLSにバインドされ、高レベルの通信セキュリティを提供する。 パケットのヘッダーの後のバイトはすべてメッセージ本文と見なされる。メッセージ本文の長さは、データグラムの長さによって暗示される。 UDPにバインドされる場合は、メッセージ全体が単一のデータグラムに収まらなければならない。 RFC 4944で定義されている6LoWPANで使用する場合、メッセージは単一のIEEE 802.15.4フレームに収め、断片化を最小限に抑える。 CoAPヘッダーオフセットオクテット0123オクテットビット012345678910111213141516171819202122232425262728293031432VER タイプ トークンの長さ CoAP要求/応答コード メッセージID 864トークン(0-8バイト) 129616128オプション(存在する場合) 201601 1 1 1 1 1 1 1 ペイロード(存在する場合) バージョン(VER)(2ビット) CoAPバージョン番号を示す。 タイプ(2ビット) このメッセージのタイプが確認可能(0)、非確認可能(1)、確認応答(2)、またはリセット(3)のいずれであるかを示す トークン長(4ビット) 可変長トークンフィールドの長さを示す。長さは0〜8バイト。 CoAP要求/応答コード(8ビット) 上位3ビットは、HTTPステータスコードのクラスに類似した「クラス」として知られる数値である 。 下位5ビットは、要求または応答に関する詳細を伝えるコードである。通常、コード全体はclass.codeの形式で通信する。最新のCoAP要求/応答コードはにある。以下にいくつかの例を示す。 Method: 0.XX Success : 2.XX Client Error : 4.XX Server Error : 5.XX Signaling Codes : 7.XX メッセージID(16ビット) メッセージの重複を検出し、Acknowledgement / ResetタイプのメッセージをConfirmable / Non-confirmableタイプのメッセージにマッチするために使う。 次のマクロを使用して、Cヘッダーから情報を簡単に抽出できる。 #define COAP_HEADER_VERSION(data) ( (0xC0 & data[0])>>6 )#define COAP_HEADER_TYPE(data) ( (0x30 & data[0])>>4 )#define COAP_HEADER_TKL(data) ( (0x0F & data[0])>>0 )#define COAP_HEADER_CLASS(data) ( ((data[1]>>5)&0x07) )#define COAP_HEADER_CODE(data) ( ((data[1]>>0)&0x1F) )#define COAP_HEADER_MID(data) ( (data[2]<<8)|(data[3]) )
※この「メッセージフォーマット」の解説は、「Constrained Application Protocol」の解説の一部です。
「メッセージフォーマット」を含む「Constrained Application Protocol」の記事については、「Constrained Application Protocol」の概要を参照ください。
- メッセージフォーマットのページへのリンク