ネットワーク通信において、TCP(Transmission Control Protocol)とUDP(User Datagram Protocol)は、トランスポート層で使われる代表的なプロトコルです。
この層は、アプリケーション同士の通信を正しく届ける役割を担っています。
TCPとは?
TCPは、信頼性の高い通信を実現するために設計されたプロトコルです。
特徴:
コネクション型通信:通信を始める前に相手と接続を確立する
3ウェイハンドシェイクによる接続確立
パケットの順序制御や再送処理がある
データの正確性が重視される
3ウェイハンドシェイクとは?
送信側が「SYN(接続要求)」を送る
受信側が「SYN-ACK(接続許可+応答)」を返す
送信側が「ACK(応答)」を返す
この手順で接続が確立され、安心して通信が行えるようになります。
主な用途:
Webブラウザ(HTTP/HTTPS)
メール(SMTP、IMAP)
ファイル転送(FTP)
信頼性は高い一方で、手順が多いため通信はやや遅くなります。
UDPとは?
UDPは、TCPと異なり接続を確立しないプロトコルです。
特徴:
コネクションレス通信:事前の接続手順がない
ハンドシェイクなし
高速かつ軽量
パケットの順序や再送の保証なし
信頼性よりも速度を重視する設計のため、多少のデータ欠損は許容される用途に向いています。
主な用途:
音声通話(VoIP)
動画ストリーミング
オンラインゲーム
DNSクエリ
一斉配信や一対多通信にも向いており、リアルタイム性が求められるケースで多く使われます。