前回の「TCPはどうやって信頼性を確保するのか」では、TCPを使うと信頼性を確保した通信が可能になることを説明しました。今回はTCPの用途を考えてみましょう。
TCPを使った方がプログラマは楽になる
データの転送にTCPとUDPのどちらのプロトコルを使うかの選択は、アプリケーションを開発するプログラマにゆだねられます。しかし、データの信頼性を無視できるケースは少ないので、たいていはTCPが使われます(pict.1)。
Webブラウザで開いたページの内容や電子メールの中身が途中で欠けたり、順番が逆になっては実用的ではありません。Webのデータを転送するHTTP(hypertext transfer protocol)やファイル転送用のFTP(file transfer protocol)、電子メールの配送に使われるSMTP(simple mail transfer protocol )などはTCPを使って通信します。
UDPを使っても信頼性の高い通信は可能です。例えば、受け取ったデータに対して確認応答を行う機能をプログラムに組み込み、通信の両端でデータを確認しながら送受信すれば、UDPでデータの欠落や順序の入れ違いが起きても、アプリケーション側で再送処理の指示が出せるので不都合は起こりません。
しかしそのためには、プログラマがこうした機能を自分でイチから開発し、アプリケーションに組み込む必要があります。TCPを使えばこうした処理はすべてTCPが行ってくれます。プログラマが余計な労力を使う必要はありません。