TCPとUDPの違い

 TCP/IPプロトコル体系では、トランスポート層のプロトコルとして、TCP(Transmission Control Protocol)とUDP(User Datagram Protocol)という2つのプロトコルが存在します。

 TCPは、コネクション型のプロトコルで、信頼度優先で高度な制御を行い、UDPは、コネクションレス型のプロトコルで処理速度優先で制御を行います。

TCPの特徴

TCPでは、プロセスにサービスを提供するにあたって、信頼性のあるサービスを提供しています。

①確実にデータを配送する

 データを相手に確実に配送するために、可能な限り面倒を見るようになっています。もし、どうしてもうまくいかない場合、プロセス側に通知します。

②エラーに対処する

 データが相手に届かなかったり、途中で壊れると、それを検出してデータを再送する仕組みを持っています。

③データの順番を制御する

 IPによる通信では、ネットワークの途中の状況によって、送信したデータが相手に順番どおりに到着することは保証されません。TCPでは、それを元通りの順番に組み立て直す仕組みを持っています。

④重複を排除する

 データが1つであることを保証します。何らかの理由でデータが複数配送された場合、TCPは、それを除去する仕組みを持っています。

⑤フロー制御・輻輳制御を行う

各ホストの処理速度に応じて流量制御を行ったり、ネットワークの輻輳状態による転送速度制御を制御します。

UDPの特徴

 上で説明したように、TCPでは、複雑な制御手順を行いますが、コネクションレス型サービスを提供するUDPは非常にシンプルな制御を行います。

 データがちゃんと相手に届いたかどうかを確認する仕組みなどは、ありません。UDPが行うことは、データが破損していないかどうかを確認するだけです。データが破損しているかどうかは、チェックサムを見て確認します。

複雑な制御がないので、オーバーヘッドが生じないようになっています。