Constrained Application Protocol
ノードには多くの場合、少量のROMとRAMを備えた8ビットのマイクロコントローラーが用いられており、低電力ワイヤレスパーソナルエリアネットワーク( 6LoWPANs )を介したIPv6などの制約のあるネットワークでは、パケットエラー率が高く、通常は数十kbit/sのスループットしかない。このプロトコルは、スマートエネルギーやビルディングオートメーションなどのマシンツーマシン (M2M)アプリケーション向けに設計されている。
CoREグループは、次のことを念頭に置いてCoAPを設計した。
オーバーヘッドと解析の複雑さ。
URIおよびcontent-typeのサポート。
既知のCoAPサービスによって提供されるリソースのディスカバリーのサポート。
リソースへのシンプルなサブスクリプション、およびその結果のプッシュ通知。
max-ageに基づく単純なキャッシュ。
CoAPとHTTPのマッピングも定義されているため、HTTP経由でCoAPリソースに統一された方法でアクセスできるプロキシを構築できる。
CoAPの導入により、制約のあるデバイスや環境に適したオープン標準プロトコルの完全なネットワークスタックが利用可能になる。
アーキテクチャの観点から、CoAPサーバーは多くの場合センサーであるエンドノードにインストールされる。一方、CoAPクライアントはコントローラーにインストールされ、複数のエンドノードを管理する。
CoAPコード、オプション、およびコンテンツタイプの背景にあるレジストレーションは、 示すIANAによって処理される。
CoAPバージョン番号を示す。
可変長トークンフィールドの長さを示す。長さは0〜8バイト。