【こあっぷ】

CoAP とは?

💡 HTTPのミニチュア版、IoTの小さな機器でも動く軽量プロトコル
📌 このページのポイント
CoAP: IoT向け軽量プロトコル HTTP (TCP) ヘッダ: 数百バイト〜 メモリ・帯域: 多く必要 CoAP (UDP) ヘッダ: たった4バイト 省メモリ・省電力 CoAPの主な機能 RESTful GET/PUT/POST DELETE対応 Observe 値が変わったら 自動通知 CON/NON 確認応答あり/なし 使い分け可能 DTLS 暗号化 セキュア通信
CoAPのイメージ
ひよこ ひよこ

CoAPって何が嬉しいの?HTTPじゃダメなのかな?

ペンギン先生 ペンギン先生

IoTの小さなセンサーはメモリが数KBしかないことがあるんだ。HTTPはヘッダだけでも大きいから動かせない。CoAPはUDP上で動いてヘッダがたった4バイトだから、そんな小さな機器でも使えるよ

ひよこ ひよこ

MQTTとはどう違うの?

ペンギン先生 ペンギン先生

MQTTはブローカーを介したPub/Sub型で、多数のデバイスへの一斉配信が得意。CoAPはHTTPみたいなリクエスト/レスポンス型で、個別のリソースにアクセスするのが得意だよ。RESTfulなAPIIoTで使いたいならCoAPが向いているね

ひよこ ひよこ

UDPってパケットが届かないこともあるんだよね?大丈夫なの?

ペンギン先生 ペンギン先生

CoAPには確認応答(CON)メッセージという仕組みがあって、重要なデータは再送してくれるよ。逆に失われてもいいデータはNONメッセージで軽く送れる。使い分けができるんだ

ひよこ ひよこ

Observe機能って何なの?

ペンギン先生 ペンギン先生

普通のHTTPだとクライアントが毎回リクエストしないと最新データが取れないけど、CoAPのObserveはサーバーに『変化があったら教えて』と登録できるんだ。センサーの値が変わったら自動で通知が来るよ

ひよこ ひよこ

セキュリティはどうなってるの?

ペンギン先生 ペンギン先生

DTLSというUDP版のTLSを使って暗号化するよ。HTTPSUDP版と思えばいいね。IoTでも通信の盗聴や改ざんをちゃんと防げるんだ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「CoAP」って出てきたら「IoT向けの軽量版HTTP」と思えればだいたいOK!
📖 おまけ:英語の意味
「Constrained Application Protocol」 = 制約のあるアプリケーション向けプロトコル
💬 Constrainedは「制約された」という意味で、メモリやCPUが限られた小さなデバイス向けに作られたプロトコルだよ
← 用語集にもどる