みなさんはCoAPを知ってますか?
コープ(略し方あってる?)って聞くと生協を思い浮かべるかと思いますが、HTTPに変わる新しいプロトコルとして最近よく名前を聞くのではないでしょうか?
(2015年度のネットワークスペシャリストでも出題されましたね。)
そんなCoAPのことについて今回は記事にしてみました。
目次
CoAPのことをまとめてみる
CoAPとは
CoAPとは「Constrained Application Protocol」の略で、現在インターネット上のデータ送受信用プロトコルとして広く使われているHTTPの簡易版プロトコルとして注目されている新しいプロトコルです。
CoAPの特徴としては
・UDPを使っている
・ヘッダが小さい
というところがポイントです。
HTTPはTCPなので処理が多い
HTTPはTCPを使っているため、単純にデータを転送する以外に転送前と転送後にパケットのやりとりが発生します。
具体的には
1.接続開始時の3wayハンドシェイク
2.接続が確立してから実際のデータのやりとり(HTTP GETなど)
3.接続終了処理(Finパケットのやりとり)
を行います。
転送したいデータが数バイトの小さなデータであったとしても、データ転送以外のやりとりを必ずしなければならないんですよね。(上でいう1.と3.がデータ転送以外のやりとり)
1対1の通信であるならばさほど影響はないと思います。
しかし同時に何千アクセス・何万アクセスとあるような場合は、このデータ転送以外のやりとりがネットワークにおける負荷の大部分をしめることになりえますね。
CoAPのメリットはUDPを使っているので処理が少ない
対してCoAPはUDPを使用しています。
UDPの特徴としてはTCPのような通信の前後処理(接続開始時の3wayハンドシェイクや接続終了処理)がないことです。
これによりCoAPではデータの転送およびその応答処理のみというシンプルなシーケンスで通信が簡潔するんですよね。
しかも通信の前後処理がないことと前述のプロトコルヘッダが小さいという特徴もあるので、HTTPに比べて通信量が少なくて済みます。
このことからHTTPを使用した場合に比べてレスポンスは少なからず上昇することは確実でしょう。
UDPだからこそ課題もある
一見すると良いところだらけのCoAPですが、UDPを使用していることにより信頼性の部分でTCPに劣ります。
TCPのように再送処理などが出来ませんので、これは上位(アプリ等)で対応する必要があります。
最後に
HTTPと比較してCoAPの特徴を書いてみると
・UDPを使用しているため処理がHTTPに比べて少なく、ヘッダも小さいため全体のデータ量が小さくなる。
・しかし再送の処理がないため、必要に応じて上位(アプリ等)で巻き取る必要がある。
というところですね。
これから標準的に使われることになるのかはまだ分かりませんが、今後の動向に注目です。
関連本の紹介
オーム社
売り上げランキング: 4,078