前回説明したとおり、UDP(user datagram protocol)の特徴は通信処理のオーバヘッドが小さいことにあります。ではUDPはどのようなアプリケーションに使われているのでしょうか。
シンプルな通信が必要だからUDP
UDPはコネクションレス型の通信方式です。また、通信の品質を保証する応答確認や誤り訂正のような複雑な制御は一切提供しません。単に、指定したIPアドレスと、そのアドレスが示すマシン内でのアプリケーションを区別するポート番号に従ってパケットを転送するだけです。アプリケーションによっては、こうしたシンプルな転送機能の方が使い勝手がよいケースがあります。
UDPが適しているアプリケーションはおおむね三つに大別できます(pict.1)。
まず、基本的に転送するデータが小さい通信です。送るべきデータが小さいと、TCPのオーバーヘッドが通信の効率を悪化させます。また、1台のサーバーが多数のクライアントとの間で小さいデータをやりとりするような用途では、一つ一つの通信ごとにコネクションを設定するとサーバーの負荷が高くなり過ぎます。UDPを使えばこうした問題を避けられます。
次にリアルタイム(実時間)性に重点がおかれた通信があります。例えば音声通信では、多少データが欠落しても許容できますが、伝達の遅れは嫌われます。こうした用途ではUDPの処理の軽さが生きてきます。インターネット電話や動画のストリーミング配信にUDPがよく使われるのはこうした理由からです。
この二つに加え、多数のマシンにデータを送信するブロードキャストやマルチキャスト通信でもUDPが使われます。ブロードキャストやマルチキャストの通信は一対一の通信ではないのでコネクション型の通信が使いにくいからです。