PR

 前回説明したとおり、UDP(user datagram protocol)の特徴は通信処理のオーバヘッドが小さいことにあります。ではUDPはどのようなアプリケーションに使われているのでしょうか。

シンプルな通信が必要だからUDP

 UDPはコネクションレス型の通信方式です。また、通信の品質を保証する応答確認や誤り訂正のような複雑な制御は一切提供しません。単に、指定したIPアドレスと、そのアドレスが示すマシン内でのアプリケーションを区別するポート番号に従ってパケットを転送するだけです。アプリケーションによっては、こうしたシンプルな転送機能の方が使い勝手がよいケースがあります。

 UDPが適しているアプリケーションはおおむね三つに大別できます(pict.1)。

 まず、基本的に転送するデータが小さい通信です。送るべきデータが小さいと、TCPのオーバーヘッドが通信の効率を悪化させます。また、1台のサーバーが多数のクライアントとの間で小さいデータをやりとりするような用途では、一つ一つの通信ごとにコネクションを設定するとサーバーの負荷が高くなり過ぎます。UDPを使えばこうした問題を避けられます。

 次にリアルタイム(実時間)性に重点がおかれた通信があります。例えば音声通信では、多少データが欠落しても許容できますが、伝達の遅れは嫌われます。こうした用途ではUDPの処理の軽さが生きてきます。インターネット電話や動画のストリーミング配信にUDPがよく使われるのはこうした理由からです。

 この二つに加え、多数のマシンにデータを送信するブロードキャストやマルチキャスト通信でもUDPが使われます。ブロードキャストやマルチキャストの通信は一対一の通信ではないのでコネクション型の通信が使いにくいからです。

拡大表示
 コネクションレス通信であるUDPはそのシンプルさゆえに,処理が軽い通信を提供します。UDPに向いているのは,この特徴がメリットになるアプリケーションで,図に描いたようにおおむね三つに分かれます。
 コネクション型通信であるTCPを利用すると,コネクション設定や切断のためのパケットが必要になります。実際にやりとりするデータが短い場合は通信の効率が悪くなります。またTCPが提供する複雑な制御機能はアプリケーションが備えていれば必要ありません。
 こうしたアプリケーションでTCPを使うのは,郵便に例えると,簡単なメモをはがき(UDPに相当)で送らず,わざわざ書留め(TCPに相当)にするようなもの。ネットワーク資源の有効利用の面からも,UDPの利用はメリットがあります。