Netflixのストリームがスムーズなのに大きなファイルのダウンロードがのろのろ進むように感じるのはなぜだろうと思ったことがあるなら、すでにTCPとUDPの違いにぶつかっています。ただ、その名前を知らなかっただけです。TCPとUDPは、オンラインで行うほぼすべてのことの土台にある2つの主要なトランスポートプロトコルです。ブラウジング、ゲーム、ストリーミング、ビデオ通話、VPN——そのすべてです。

わかりやすい言葉で、現実のたとえを少し交えながら見ていき、それぞれが実際にあなたにとっていつ重要になるのかを整理しましょう。

TCP vs UDP

まず、TCPとUDPとは一体何なのか?

インターネットを巨大な郵便システムだと考えてみてください。IPは知っている部分です どこ 物を送る先(住所)を、そしてTCP/UDPはためのルールです どのように それらを送るためのものです。TCP(Transmission Control Protocol)もUDP(User Datagram Protocol)もIPの上に位置し、データをパケットと呼ばれる小さな塊に分割して、それらのパケットをネットワークの向こうへ届けます。

基本的な仕事は同じ——データをAからBへ運ぶこと——ですが、性格はまったく違います。

  • TCPは慎重で細部にこだわる配達員です。やや遅く、すべてを確認し、できる限り荷物を失いません。
  • UDPは「壁の向こうに放り投げて、着地することを祈る」タイプです。速く、考えすぎず、振り返りません。

その根本的な性格の違い――慎重対気楽――が、ほかほとんどすべてを説明してくれます。

TCPの仕組み:礼儀正しく、信頼できる完璧主義者

How TCP works

TCPは、いわゆる コネクション型 プロトコルです。有用なデータが動く前に、TCPは必ず3ウェイハンドシェイクを使って、あなたのデバイスとサーバーの間にきちんとした接続を確立します。

わかりやすく言えば、こうなります:

  1. あなた:「ねえ、メッセージ番号Xから話し始めようか?」(SYN)
  2. サーバー:「了解。君のXから始めよう。こちら側の開始番号はYだよ。」(SYN-ACK)
  3. あなた:「よし、君のYは確認した――始めよう。」(ACK)

このちょっとしたやり取りが終わると、接続は正式に「オン」になり、データの流れが始まります。データの各チャンクには番号が付き、途中でチェックされ、確認応答されます。何かが欠けたり、破損して届いたりすると、TCPはそれに気づいて再送します。

TCPの主な習性をいくつか挙げると:

  • シーケンシング: パケットの順序を追跡するため、データは送信時とまったく同じ形で再構成されます。ウェブページの行が入れ替わったり、ファイルが壊れたりすることはありません。
  • エラーチェックと確認応答: すべてのパケットはチェックサムなどの仕組みで検証され、受信側は「はい、受け取りました」と応答する必要があります。確認応答が届かない場合、TCPは再送信します。
  • 再送信とフロー制御: 失われたパケットは再送され、TCPはネットワークや受信側に過負荷をかけないよう送信速度を調整します。

これらすべてにより、TCPは 信頼できる: データが順序どおり、かつ破損なく届くことをほぼ保証します。届かなければ再試行し続けます。代償は?こうしたハンドシェイク、追跡、二重チェックには時間と帯域がかかるため、TCPは通常UDPより遅く、特に不安定な回線や長距離接続では顕著です。

だからこそ、TCPは決して誤りが許されない用途の定番プロトコルです できない 例えば:

  • ウェブ閲覧とHTTPSトラフィック
  • ファイルのダウンロードとアップロード
  • メールとメッセージング
  • リモート管理と多くのビジネスアプリ

UDPの仕組み:無駄のない高速スプリンター

How UDP works

一方、UDPは コネクションレス。ハンドシェイクもなく、「準備はいい?」という確認もありません。宛先にパケットを撃ち込み、届くことを願うだけです。だからUDPは「撃ちっぱなし(fire-and-forget)」プロトコルと呼ばれることがよくあります。送ったら、あとは自分の人生を歩み続けます。

実際にはこういうことです:

  • 接続セットアップなし:3ウェイハンドシェイクはありません。オーバーヘッドが少なく、遅延も少なくなります。アプリはすぐに送信を開始できます。
  • 配信保証なし:パケットが紛失したり、破損したり、順序が乱れたりしても、UDPは修正しません。基本的なチェックサムはありますが、何か問題があればパケットはただ破棄されることがあります。
  • 再送なし: パケットが消えたら、そのままなくなります。UDPは再送しません。アプリがそれを十分気にするなら、 そのアプリ その上に独自の信頼性を構築する必要があります。

ひどく聞こえますよね?実はそうでもありません——この「データを過保護にしない」姿勢こそが 正確に 特定の種類のトラフィックではまさに欲しいものです。

ライブやリアルタイム用途では、古いデータは基本的にゴミです。通話で3秒前の音声パケットが遅れて届いても誰も望みません。捨てて新しいものを再生する方がましです。オンラインゲームやライブ配信も同じです。欲しいのは「今」であり、「完璧に修正された過去」ではありません。

UDPが本領を発揮するのは:

  • オンラインゲームをしていて、ピクセル単位の完璧な信頼性よりも低遅延が必要なとき
  • ライブ配信やスポーツ中継を見ているとき
  • ビデオ通話やVoIP通話をしているとき
  • DNSのように小さく頻繁な問い合わせを送るシステムを使っているとき

そのうえ、UDPは ブロードキャストとマルチキャスト — 同じデータを多数の受信者に一度に送ること — これは特定のネットワークサービスやストリーミング/配信の場面では非常に重要です。TCP にはこの機能がありません。

TCP vs UDP: 信頼性、速度、オーバーヘッドをわかりやすく解説

要因 TCP UDP
サービスの種類 コネクション型。データ転送の前に接続を確立し、終了後は適切に切断する必要があります。 コネクションレス/データグラム型。セットアップや切断の段階がなく、ブロードキャストやマルチキャストに効率的です。
信頼性と配信保証 信頼性あり。データの宛先への到達を保証し、必要に応じて再送します。 信頼性なし。到達は保証されず、失われたパケットは単に破棄されます。
エラーチェックと確認応答 確認応答とフロー制御を伴う徹底したエラーチェック。 チェックサムによる基本的なエラーチェック。確認応答もフロー制御もありません。
順序/シーケンス シーケンス処理に対応しており、パケットはアプリケーションに配信される前に正しい順序で再構成されます。 シーケンス処理は組み込まれていません。順序が重要な場合は、アプリケーション側で処理する必要があります。
紛失パケットの再送信 紛失または破損したパケットを再送信し、データの完全な配信を保証できます。 再送信はありません。パケットが一度失われると、そのまま消失します。
速度とレイテンシ ハンドシェイク、確認応答、輻輳/フロー制御のため遅くなりますが、データを完全に配信します。 接続確立や信頼性メカニズムを省略するため、より高速でシンプル、かつ低レイテンシです。
ヘッダーサイズとオーバーヘッド ヘッダー長は約20−60バイトで可変。オーバーヘッドは高めです。 固定8バイトのヘッダー。オーバーヘッドは非常に低いです。
ブロードキャスト/マルチキャスト対応 ブロードキャストやマルチキャストには非対応。一対一通信のみ。 ブロードキャストとマルチキャストに対応。同じデータを多数のクライアントへ送るのに適している。
ストリームの種類 バイトストリーム。データを連続したバイト列として扱う。 メッセージ(データグラム)ストリーム。メッセージの境界を保持する。
主な用途 ウェブ閲覧(HTTP/HTTPS)、メール、ファイル転送、リモート管理、テキストメッセージ — 速度そのものよりも正確さが重要なあらゆる場面。 オンラインゲーム、音声・動画のライブ配信、VoIP、DNS、マルチキャスト — 完全な信頼性よりも低遅延が重要な場面。
VPNでの好み(実務上) 不安定なネットワークや制限のあるネットワークでの信頼性に優れ、ポート443のHTTPSにVPNトラフィックを紛れ込ませたい場合にも適している。 速度が速く遅延も低いため、多くのVPNでデフォルトとなっており、VPNトンネル経由のストリーミングやゲームに最適。

主な違いを、もう少し会話的な言い方で並べてみよう。実際のところ、3つの情報源は本質的に同じことを言っている。TCPは信頼性、UDPは速度が肝心だ。

信頼性と順序

  • TCP: 追跡付きの受領サインが必要な配送だと考えてください。すべてに番号が振られ、すべてが届かなければなりません。送信側は受信側が確認するまで再送し続けます。順序が乱れたパケットは正しい順序に再構成されます。すべて揃うか、待つしかありません。
  • UDP: 絵はがきを投げ入れるようなものです。届くものもあれば届かないものもあります。順序が乱れて届くこともあります。UDPは並べ替えも再送も、それについて苦情を言うこともありません。

速度とオーバーヘッド

  • TCP: より大きく可変長のヘッダー(約20–60バイト)に加え、ハンドシェイク、確認応答、フロー制御といった追加の制御ロジックがあります。これがオーバーヘッドとなり、特に転送開始時に速度を落とします。
  • UDP: ごく小さな固定8バイトのヘッダーを使い、余分な手続きはほとんどありません。送信する量も解析する量も少なく、待ち時間も短いため、高速で低遅延のトラフィックに最適です。

配送の保証

  • TCP: 「あなたのデータは 意志 届きます。届くまで送り続けます。」配送は保証され(接続が完全に切れない限り)、エラーも徹底的に検査されます。
  • UDP: 「送った。届いたかどうかは…知ったことではない。」一部のパケットは失われ、混雑時に破棄されることもあり、それは仕様のうちです。

ブロードキャストとストリーミング

  • TCP: 厳密に一対一です。ブロードキャストもマルチキャストもありません。
  • UDP: 一度に多数のデバイスへ送信できます(ブロードキャスト/マルチキャスト)。ライブ配信、会議、ネットワーク検出ツールなどに適しています。

こう考えるとわかりやすいでしょう。最も心配なのが 「データが間違っていたり不完全だったらどうしよう?」なら、TCP に頼ります。最も心配なのが 「接続が遅延して、すべてが途切れ途切れに感じたらどうしよう?」なら、UDP に頼ります。

実例:何がどちらを使い、なぜか

通常、TCP と UDP を自分で選ぶことはありません。アプリやサービスが代わりに選んでくれます。ただし、よく使う作業がどちら側にあるかを知っておくと役立ちます。

TCP が向いているもの

速度よりも正確さが重要なものは、TCP に傾きます:

  • ウェブ閲覧(HTTP/HTTPS): ブラウザは、ページの HTML、CSS、JS、画像が完全かつ正しい順序で届くことを想定しています。欠けた部分はすぐに気づきます。
  • メールとメッセージング: メッセージの一部が失われたり乱れたりすることは許容できません。TCPは、クライアントが表示する前に内容が正しいことを確認します。
  • ファイル転送(FTP、SFTP、クラウド同期、ソフトウェア更新): 破損したファイルは、遅いダウンロードより深刻です。TCPの再送とチェックにより、送信された内容を正確に受け取れます。
  • 管理ツールとセキュアシェル(SSHなど): コマンドは正確に、正しい順序で届く必要があります。破損があれば危険です。

UDPが得意なもの

いつ タイミング ビート 完璧、UDPが自然な選択です:

  • オンラインゲーム: 重視するのはリアルタイムの状態(プレイヤーの位置 今)であり、過去を完璧に再現することではありません。数パケットの欠落は、ラグの急増よりましです。
  • ライブ動画・音声ストリーミング: 映像全体を止めて直すより、フレームを飛ばす方がましです。UDPはストリームを止めずに進めます(多くの場合、品質のための上位ロジックと組み合わせます)。
  • VoIPとビデオ通話: 古い音声は役に立ちません。半秒の遅延より、たまにグリッチが入る方がまだましです。
  • DNS: 小さなリクエスト、頻繁な照会 — TCPの手続きを全部踏むより、ただ送受信する方が速くて簡単です。

TCP、UDP、VPN:VPNの「体感」が違う理由

3つ目の資料はVPNを掘り下げます。ここでTCPとUDPの違いを知ることが、実際に設定を変える判断になります。多くのVPNプロトコル(OpenVPNやWireGuardなど)は、TCPでもUDPでも動作できます。

VPNが通常UDPをデフォルトにする理由

ほとんどのVPNアプリはデフォルトで UDP にする単純な理由は、より速く、レイテンシが低いからです。トンネリングしているとき すべて VPN経由でトラフィックを通すと、その余分な速度はストリーミングやゲームで重要になります。

  • OpenVPNはパフォーマンスが良いため、デフォルトでポート1194のUDPをよく使います。TCPもサポートされており、多くの場合ポート443です。
  • WireGuardはUDPを前提に設計されていますが、一部のプロバイダー(Proton VPNなど)は、検閲の厳しい環境向けにTCP上で動かすサポートを追加しています。

つまり、VPN経由でNetflixを視聴したり、ゲームをしたり、ビデオ通話をするなら、通常はUDPの方が適しています。オーバーヘッドが少なく、pingが低く、よりスムーズな体験が得られます。

VPNでTCPを使いたくなる場合

VPN上でTCPを使うのが妥当な状況はいくつかあります:

  • 不安定または制限されたネットワーク:UDPパケットが繰り返しドロップされたりブロックされたりする場合——例えばキャンパスのWi‑Fiや、検閲が厳しい国では——VPNをTCP(多くの場合ポート443)に切り替えると、通常のHTTPSトラフィックのように見え、ウェブを壊さずにブロックするのが難しくなります。
  • 速度より信頼性:ファイルの送信、機密データの取り扱い、あるいは単にブラウジングしていてpingを数ミリ秒削ることにはこだわらない場合、TCPはパケットが確実に配信されるか再送信されるという、より強い保証を提供します。

一部のVPNクライアントには スマートプロトコル選択 があり、まずUDPを試し、ブロックや不安定さで失敗した場合は自動的にTCPにフォールバックします——手動の調整は不要です。

では、どちらが「より良い」のか:TCPかUDPか?

「どちらがより良いのか?」という質問はよく出てきますが、正直なところ、それは間違った見方です。各プロトコルはまったく異なることに優れています。

頭に入れておける簡単な経験則です:

  • データが 完全かつ正確である必要がある — ファイル、メール、銀行取引、ウェブページなどを思い浮かべてください — TCPが味方です。
  • データが 速くて新鮮である必要がある、多少の損失は許容できるなら — ゲーム、通話、ライブ動画などを思い浮かべてください — UDPが味方です。

言い換えれば:

  • TCP:「多少遅くても、正しくやれ。」
  • UDP:「完璧でなくても、今すぐやれ。」

これらはライバルというより、同じ道具箱の中の道具です。アプリは仕事に合うプロトコルを静かに選びます。

すべてをまとめると

実践的な要点は次のとおりです:

  • 通常、TCPとUDPを手動で選ぶ必要はありません。アプリやサービスは、信頼性を重視するか、遅延を重視するかに応じて、すでに自動で判断しています。
  • 実際にこの選択をすることになる主な場所は 見る VPNの設定です。まずはUDP(速度重視)を試し、必要に応じてTCP(信頼性や検閲回避)にフォールバックできます。
  • このトレードオフ——確実だが遅いTCPと、速いが壊れやすいUDP——を理解すると、日常の多くの体験が説明できます。途切れがちな配信、遅延の多いゲーム、ダウンロードが「壊れた部分を飛ばして」くれない理由などです。

いったんインターネット通信を、この絶え間ない綱引きとして捉えると 「完璧」 and 「今すぐ」、 TCPとUDPは怖い略語ではなくなり、本来の姿——世界中にデータを運ぶ、まったく異なる2つの非常に便利な方法——として感じられるようになります。