【こあっぷ】

CoAP とは?

最終更新:
💡 小さな機器と、リソースを指定してやり取りする

制約のある機器・ネットワーク向けのアプリケーションプロトコル。リソースへの要求・応答、UDP版の確認応答、Observeと暗号化の条件を説明します。

📌 このページのポイント
CoAP:小さな機器と要求・応答クライアント温度センサーGET /temp値を応答UDP版のCON確認応答を待つ必要なら再送Observe拡張更新の通知を登録全変化の保証ではないUDPだけでなく、TCP・TLS版の仕様もある
温度リソースの取得を例にした模式図。UDP版の固定ヘッダーは4バイトですが、トークン・オプション・本文などを含む全体のサイズとは異なります。
ひよこ ひよこ
CoAPは、センサーと通信するためのもの?
ペンギン先生 ペンギン先生
制約のある機器やネットワーク向けの通信方式だよ。例えば温度というリソースを指定してGETで値を求め、応答を受け取る。POST・PUT・DELETEなどの操作もあるんだ。
ひよこ ひよこ
メッセージは、全部4バイトで済む?
ペンギン先生 ペンギン先生
UDP版の固定ヘッダーが4バイトだよ。その後にトークンやオプション、必要なら本文が続くので、全体が4バイトという意味ではない。HTTPに似た考え方を持つけれど、異なる形式でやり取りするんだ。
ひよこ ひよこ
UDPで送ったら、届かない場合はどうする?
ペンギン先生 ペンギン先生
CONという確認可能なメッセージは、応答を待って必要に応じて再送する。ただし試行の上限などで失敗することもあるよ。NONは確認応答を求めずに送る。用途に合わせて方式を選び、失敗も扱うんだ。
ひよこ ひよこ
値の変化を受け取ったり、暗号化したりできる?
ペンギン先生 ペンギン先生
Observeの拡張では、登録したリソースの更新を受け取れるけれど、すべての変化が必ず即時に届く保証ではないよ。UDPではDTLSで保護する構成があり、TCP・TLS・WebSocket上のCoAPも別のRFCで定義されている。利用する仕様と設定を確認しよう。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「CoAP」って出てきたら「小さな機器向けに、リソースへの要求と応答を行う通信方式」と思えばだいたいOK!
📖 おまけ:英語の意味
「Constrained Application Protocol」 = 制約のある環境向けのアプリケーションプロトコル
💬 メモリや通信資源に制約がある機器・ネットワークを想定しています。HTTPに似た操作を持ちますが、HTTPをそのまま小さくした同一のプロトコルではありません。

参考資料

← 用語集にもどる