「TCPとUDPって何が違うの?」「どっちが速いの?」「自分のパソコンはどっちを使っているの?」
インターネットやネットワークについて調べていると、必ず出てくるのがTCPとUDPという言葉です。
この2つは、インターネット通信の基本となるプロトコル(通信規約)です。実は、あなたが今見ているこのWebページも、動画を見る時も、オンラインゲームをする時も、TCPかUDPのどちらか(または両方)が使われています。
この記事では、TCPとUDPの違いを、初心者の方にも分かりやすく徹底解説します。難しい専門用語は最小限にして、身近な例えを使って説明していきますよ!
TCPとUDPは「データの送り方」の違い

まず、大まかなイメージをつかみましょう。
プロトコルとは?
プロトコルは、「通信のルール」や「約束事」のことです。
例えるなら:
人と話す時にも、ルールがありますよね。
- 日本語で話す
- 相手の話を聞いてから返事をする
- 聞き取れなかったら「もう一度言ってください」と言う
インターネット通信でも、データをどうやって送るか、ルールが必要なんです。
TCPとUDPは郵便に例えると?
TCP(Transmission Control Protocol):
書留郵便のようなもの
- 確実に届くことを重視
- 相手に届いたか確認する
- 順番通りに届く
- 届かなかったら再送する
- 少し時間がかかる
UDP(User Datagram Protocol):
普通の郵便(速達)のようなもの
- スピード重視
- 届いたか確認しない
- 順番がバラバラでもOK
- 途中で失われても再送しない
- とにかく速い
TCP(Transmission Control Protocol)とは
詳しくTCPを見ていきましょう。
TCPの特徴
信頼性が高い通信方式
主な特徴:
- 接続確立
- データを送る前に「接続」を確立する
- 3ウェイハンドシェイク(3回の挨拶)を行う
- データの到達を確認
- データが届いたら「受け取りました」という返事が来る
- 返事がなければ再送する
- 順序の保証
- データは番号付きで送られる
- 受信側で正しい順番に並べ替える
- エラー訂正
- データが壊れていないかチェック
- 壊れていたら再送要求
- 流量制御
- 相手が受け取れる速度に合わせる
- 一度に送りすぎないように調整
TCPの通信の流れ
ステップ1:接続確立(3ウェイハンドシェイク)
- 送信者:「接続したいです」(SYN)
- 受信者:「OK、こちらも準備できました」(SYN-ACK)
- 送信者:「了解、では送ります」(ACK)
ステップ2:データ送信
- データを小さな塊(パケット)に分割
- 各パケットに番号を付ける
- 順番に送信
- 受信確認(ACK)を待つ
- 確認が来たら次のデータを送る
ステップ3:接続終了
- 送信者:「データ送信完了です」(FIN)
- 受信者:「了解しました」(ACK)
- 受信者:「こちらも終了します」(FIN)
- 送信者:「了解、接続を切ります」(ACK)
TCPのメリット
✅ 確実性
データが確実に届く
✅ 正確性
データが壊れていないことを保証
✅ 順序保証
バラバラに届いても正しい順番に並べられる
✅ 安定性
複雑な通信でも信頼できる
TCPのデメリット
❌ 速度が遅い
確認作業に時間がかかる
❌ オーバーヘッドが大きい
接続確立や確認応答など、余分な通信が必要
❌ リアルタイム性に欠ける
再送処理で遅延が発生する可能性
UDP(User Datagram Protocol)とは
次にUDPを詳しく見ていきましょう。
UDPの特徴
速度重視のシンプルな通信方式
主な特徴:
- 接続不要
- いきなりデータを送り始める
- 事前の挨拶なし
- 到達確認なし
- 届いたかどうか確認しない
- 「送りっぱなし」
- 順序保証なし
- データがバラバラに届くかもしれない
- 受信側での並べ替えもない
- エラー訂正なし
- 壊れたデータも気にしない
- 再送もしない
- 軽量
- 余計な処理がない
- シンプルで速い
UDPの通信の流れ
非常にシンプル:
- データを小さな塊(データグラム)に分割
- 宛先を書く
- ひたすら送り続ける
- 終わり
確認も何もありません。とにかく送るだけ。
UDPのメリット
✅ 高速
確認作業がないので速い
✅ 低遅延
余計な処理がなく、リアルタイム性が高い
✅ 軽量
システムへの負担が少ない
✅ シンプル
実装が簡単
UDPのデメリット
❌ 信頼性が低い
データが届かないこともある
❌ データ損失
途中で失われても分からない
❌ 順序がバラバラ
正しい順番で届く保証がない
❌ エラー検出なし
データが壊れても気づかない
TCPとUDPの比較表
違いを一目で分かるようにまとめました。
項目 | TCP | UDP |
---|---|---|
接続 | 接続型(事前に確立) | コネクションレス(接続不要) |
信頼性 | 高い | 低い |
速度 | 遅い | 速い |
到達確認 | あり | なし |
順序保証 | あり | なし |
再送 | する | しない |
エラー訂正 | あり | なし |
オーバーヘッド | 大きい | 小さい |
用途 | 正確性重視 | 速度重視 |
覚え方:
- TCP = 確実だけど遅い
- UDP = 速いけど不確実
どんな時に使われる?具体例で理解
実際にどう使い分けられているか見てみましょう。
TCPが使われるケース
正確性が最優先の場合
1. Webサイトの閲覧(HTTP/HTTPS)
このページを見ているのもTCPです。
- ページの文字が途中で消えたら困る
- 画像が欠けていたら困る
- 順番がバラバラだと意味不明
2. メールの送受信(SMTP/POP/IMAP)
- メールの文章が途中で消えたら大問題
- 添付ファイルが壊れたら困る
3. ファイルのダウンロード(FTP/HTTP)
- ダウンロードしたファイルが壊れていたら使えない
- すべてのデータが正確に届く必要がある
4. リモート接続(SSH/Telnet)
- コマンドが1文字でも欠けたら誤動作する
- セキュリティ上も確実性が必要
5. データベース通信
- データの整合性が絶対条件
- 1ビットでも間違えたら大問題
UDPが使われるケース
速度が最優先の場合
1. オンラインゲーム
- キャラクターの位置情報
- リアルタイム性が最重要
- 1フレーム前のデータが遅れて届いても意味がない
例:
格闘ゲームで、0.5秒前のパンチの情報が今届いても遅すぎますよね。最新の情報がすぐに届くことが重要です。
2. ビデオ通話・音声通話(Zoom、Skypeなど)
- 映像と音声のリアルタイム配信
- 少しくらい画質が乱れてもOK
- 再送で遅れるより、次のフレームを送る
例:
ビデオ通話で映像が一瞬乱れても、会話は続けられます。でも、0.5秒遅れて声が届いたら会話になりません。
3. ライブ配信(YouTube Live、Twitchなど)
- リアルタイムの映像配信
- 少しのデータ欠落は許容
- 遅延が少ないことが重要
4. DNS(ドメイン名の解決)
- 「google.com」のIPアドレスを調べる
- 失敗したら別のサーバーに聞き直せばいい
- 速さが重要
5. IoTセンサー
- 温度センサーのデータ送信
- 1つ2つのデータが欠けても大きな問題ない
- 次々と新しいデータが来る
6. オンライン対戦ゲームのボイスチャット
- プレイヤー同士の会話
- リアルタイム性が最優先
- 少し途切れても問題ない
混在して使われるケースもある
実は、1つのアプリで両方使うこともあります。
例:オンラインゲーム
UDPを使う部分:
- キャラクターの位置情報(リアルタイム)
- プレイヤーの移動(最新情報が重要)
- ボイスチャット
TCPを使う部分:
- ログイン認証(確実に)
- アイテムの購入(絶対に失敗できない)
- チャットメッセージ(正確に届ける)
例:動画配信サービス
TCP:
- 動画ファイルのダウンロード(YouTube の通常再生)
- メニューや設定画面の表示
UDP:
- ライブ配信(リアルタイム性重視)
- 低遅延モード
よくある質問
Q1. TCPとUDPはどちらが優れていますか?
A. どちらが優れているということはありません。
用途によって使い分けます:
- 正確性が必要 → TCP
- 速度が必要 → UDP
例えるなら:
- 車とバイクのどちらが優れているか?
- 荷物を運ぶなら車、狭い道を通るならバイク
目的に合わせて選ぶものです。
Q2. 自分のパソコンはどちらを使っていますか?
A. 両方使っています。
用途に応じて自動的に切り替わっています:
- Webブラウジング → TCP
- オンラインゲーム → UDP(または両方)
- メール → TCP
- ビデオ通話 → UDP
普段は意識する必要はありません。
Q3. UDPでデータが届かなかったらどうなりますか?
A. アプリケーション側で対処します。
例:
- ゲーム: 次のフレームで補正される
- ビデオ通話: 一瞬映像が乱れるだけ
- DNS: リトライして別のサーバーに問い合わせ
UDPを使うアプリは、データ損失を前提に設計されています。
Q4. TCPの方が安全ですか?
A. 「確実」ではありますが、「セキュア」とは別です。
確実性:
TCPはデータが確実に届きます。
セキュリティ:
TCPもUDPも、暗号化しないと盗聴される可能性があります。
セキュリティには、SSL/TLSなどの暗号化技術が別途必要です。
Q5. UDPの方が軽いなら、全部UDPにすればいいのでは?
A. データの正確性が保証されないため、用途が限られます。
UDPだけでは困る例:
- メールの送信 → 文字が抜ける
- ファイルのダウンロード → ファイルが壊れる
- ネットショッピング → 注文情報が正しく届かない
確実性が必要な場面では、TCPが不可欠です。
ポート番号との関係
TCPとUDPは、ポート番号と組み合わせて使われます。
ポート番号とは?
マンションの部屋番号のようなもの
IPアドレスが「住所」だとすると、ポート番号は「部屋番号」です。
例:
- あなたのパソコンのIPアドレス:192.168.1.10(住所)
- Webブラウザ:ポート80番(部屋番号)
- メールソフト:ポート25番(別の部屋番号)
よく使われるポート番号
TCPのポート番号例:
- 80番:HTTP(Webサイト)
- 443番:HTTPS(暗号化されたWebサイト)
- 25番:SMTP(メール送信)
- 22番:SSH(セキュアなリモート接続)
UDPのポート番号例:
- 53番:DNS(ドメイン名の解決)
- 123番:NTP(時刻同期)
- ゲームやビデオ通話は様々なポートを使用
同じポート番号でも別物:
- TCP 53番とUDP 53番は別のサービス
- どちらもDNSで使われることがある
技術的な補足(興味がある人向け)
もう少し詳しく知りたい人のための情報です。
TCPのヘッダー情報
TCPは以下の情報をデータに付加します:
- 送信元ポート番号
- 宛先ポート番号
- シーケンス番号(順序を管理)
- 確認応答番号(ACK番号)
- ウィンドウサイズ(流量制御)
- チェックサム(エラー検出)
- フラグ(SYN、ACK、FINなど)
UDPのヘッダー情報
UDPは最小限の情報だけ:
- 送信元ポート番号
- 宛先ポート番号
- データ長
- チェックサム(オプション)
TCPと比べて圧倒的にシンプルです。
パケットサイズの違い
TCP:
- ヘッダーサイズ:20〜60バイト
- データ部分:可変
UDP:
- ヘッダーサイズ:8バイト(固定)
- データ部分:可変
UDPのヘッダーは、TCPの1/3以下です。
まとめ:適材適所で使い分けられている
TCPとUDPは、それぞれ得意分野が違います。
この記事のポイント:
✅ TCP = 確実で正確、でも少し遅い
- 接続型通信
- データの到達を保証
- 順序を守る
- エラーを検出・修正
- 用途:Webサイト、メール、ファイル転送
✅ UDP = 速くて軽量、でも不確実
- コネクションレス
- 到達は保証しない
- 順序もバラバラOK
- とにかく速い
- 用途:ゲーム、ビデオ通話、ライブ配信
選び方の基準:
優先事項 | 選ぶプロトコル |
---|---|
データの正確性 | TCP |
リアルタイム性 | UDP |
確実な配信 | TCP |
低遅延 | UDP |
ファイル転送 | TCP |
音声・動画配信 | UDP |
両方使うケースも:
- オンラインゲーム
- ビデオ会議アプリ
- 複合的なWebサービス
最後に:
普段は意識することなく、アプリケーションが自動的に適切なプロトコルを選んでいます。でも、この違いを知っておくと:
- ネットワークトラブルの原因が分かる
- なぜゲームでラグが起きるか理解できる
- ビデオ通話が途切れる理由が分かる
- より良いネットワーク環境を構築できる
インターネットの仕組みを少し理解できると、日常のIT利用がもっと快適になりますよ!
コメント