用途の違い
1. TCP はコネクション指向ですが、UDP はコネクションレスです。
つまり、データを送信する前に接続を確立する必要はありません。
TCP は信頼性の高いサービスを提供します。言い換えれば、TCP 接続を通じて送信されるデータにはエラーがなく、失われず、繰り返されず、順番に到着します。 UDP は配信に全力を尽くしますが、信頼性の高い配信を保証するものではありません。
TCP はバイト ストリーム指向です。実際、TCP はデータを一連の非構造化バイト ストリームとして扱います。UDP はメッセージ指向です。
UDP には輻輳制御がないため、ネットワークの輻輳によって送信元ホストの送信速度が低下することはありません (IP テレフォニー、リアルタイム ビデオ会議などのリアルタイム アプリケーションに役立ちます)。
各 TCP 接続は、ポイントツーポイントのみをサポートします。1 対 1、1 対多、多対 1、および多対多の対話型通信がサポートされます。
TCP ヘッダーのオーバーヘッドは 20 バイトですが、UDP ヘッダーのオーバーヘッドは小さく、わずか 8 バイトです。
TCP の論理通信チャネルは全二重の信頼できるチャネルですが、UDP は信頼できないチャネルです。
さまざまなアプリケーションシナリオ
2. TCP は、トランスポート層で信頼性の高い送信が必要な場合に使用されます。 UDP は主に、高速伝送とリアルタイム性能に対する高い要件が要求される通信またはブロードキャスト通信に使用されます。
IP テレフォニーでの通話を例に考えてみましょう。 TCPを使用すると、送信中にデータが失われた場合に再送信が行われるため、相手の音声をスムーズに伝えることができなくなります。 UDPでは再送処理を行わないため、音声の到着が大幅に遅れるという問題はなく、たとえ一部のデータが失われたとしても、影響はごく一部の通話にとどまります。
以上がphpにおけるTCPとUDPの違いです。皆さんのお役に立てれば幸いです。