インターネット通信において最も基本的なトランスポート層プロトコルが「TCP」と「UDP」です。
どちらもデータの送受信に使われますが、その特性は大きく異なります。
「TCPは信頼性が高い」「UDPは速い」という言葉はよく聞きますが、具体的にどう違うのか・どんな場面で使い分けるのかを正確に理解している方は意外と少ないかもしれません。
本記事では、TCPとUDPの特徴・違い・具体的な使い分けをわかりやすく解説していきます。
TCPとUDPの基本的な特徴と違い
それではまず、TCPとUDPの基本的な特徴と主な違いについて解説していきます。
TCP(Transmission Control Protocol)とUDP(User Datagram Protocol)は、どちらもOSI参照モデルのトランスポート層(第4層)のプロトコルです。
IPアドレスでデバイスを特定するIP(ネットワーク層)の上に位置し、ポート番号を使ってアプリケーション間の通信を制御する役割を担っています。
TCPの特徴:信頼性とコネクション型通信
TCPの最大の特徴は「信頼性の高い通信」です。
TCPは以下の仕組みによって、データが正確に・順序通りに・漏れなく届くことを保証します。
TCPの主な仕組み
3ウェイハンドシェイク:通信開始前にSYN→SYN-ACK→ACKのやり取りで接続を確立する
順序制御:パケットに連番(シーケンス番号)をつけ、受信側で正しい順序に並べ替える
再送制御:パケットが届かなかった場合に自動的に再送する
フロー制御:受信側の処理能力に合わせて送信速度を調整する
輻輳制御:ネットワークの混雑を検知して送信量を調整する
接続終了:FIN→ACKのやり取りで接続を正常に終了する
UDPの特徴:速度と軽量性
UDPはTCPのような接続確立・再送制御・順序保証を行いません。
データをパケットに詰めてそのまま送信する「コネクションレス型」の通信方式です。
この「やり取りを減らす」シンプルな設計のおかげで、TCPと比べて低遅延・高速な通信が実現できます。
一方で、パケットの損失・順序の乱れが発生しても自動的には修正されないため、アプリケーション側でのエラー処理が必要になります。
| 比較項目 | TCP | UDP |
|---|---|---|
| 通信方式 | コネクション型(接続を確立してから通信) | コネクションレス型(接続なし) |
| 信頼性 | 高い(到達・順序・整合性を保証) | 低い(保証なし) |
| 速度・遅延 | やや遅い(オーバーヘッドあり) | 速い(低遅延) |
| ヘッダーサイズ | 20〜60バイト(大きい) | 8バイト(小さい) |
| パケット損失時 | 自動再送する | 再送しない |
| 順序保証 | あり | なし |
| ブロードキャスト | 非対応 | 対応可能 |
TCPとUDPの使い分け:どんな場面で選ぶべきか
続いては、TCPとUDPの具体的な使い分けについて確認していきます。
どちらを選ぶかはアプリケーションの要件によって決まります。
TCPを使うべき場面
TCPが適しているのは、データの完全性・正確性が最優先される通信です。
Webページの読み込みやファイルのダウンロードでは、一部のデータが欠けるとページや画像が正しく表示されなくなるため、TCPが使われます。
メールの送受信でも、メール本文や添付ファイルが確実に届くことが重要なため、SMTP・IMAP・POPといったメールプロトコルはTCPベースです。
データベースへのクエリや金融取引のデータ転送など、1ビットのデータ欠損も許されないシステムではTCPが必須です。
UDPを使うべき場面
UDPが適しているのは、多少のデータ欠損よりもリアルタイム性・低遅延が重要な通信です。
オンラインゲームでは、1秒前のキャラクターの位置情報が遅れて届くより、最新の情報を即座に受け取ることの方が重要です。
数フレーム前のデータが欠損しても問題なく、再送を待つことの方が体験を損ないます。
動画ストリーミングでも、一部のフレームが欠損してもバッファリングが止まる方が問題で、UDPで継続的な配信を優先します。
IP電話(VoIP)では数十ミリ秒の遅延が通話品質に影響するため、再送による遅延増大を避けてUDPを採用します。
近年はQUICというプロトコルが注目されています。
QUICはUDPの上に信頼性・暗号化・多重化などTCPの長所を実装したプロトコルで、HTTP/3の基盤として採用されています。
TCPの信頼性とUDPの速度を両立させようとするQUICの登場は、「TCPかUDPか」という二択を超えた新しい選択肢を提供しています。
GoogleのWebサービスやYouTubeではすでにQUICが活用されており、今後さらなる普及が見込まれます。
まとめ
本記事では、TCPとUDPの特徴・主な違い・具体的な使い分けについて解説してきました。
TCPは信頼性・正確性が求められるWeb通信・ファイル転送・メールなどに適しており、UDPは低遅延・リアルタイム性が重要なゲーム・音声通話・動画ストリーミングなどに適しています。
どちらが優れているというものではなく、アプリケーションの要件に合わせて適切に選択することが重要です。
QUICのような新技術の登場により、プロトコルの選択肢はさらに広がっていますが、TCPとUDPの基本的な特性の理解は今後も変わらず重要なネットワークの基礎知識となるでしょう。