TCPとUDPの違いとは?仕組みを比較して、どちらのプロトコルが速いか徹底解説
コンピューターネットワークを学び始めたばかりの方や、アプリのネットワーク設定を覗いたことがある方なら、「TCP」「UDP」という言葉を目にしたことがあるはずです。
TCP(Transmission Control Protocol:伝送制御プロトコル)とUDP(User Datagram Protocol:ユーザーデータグラムプロトコル)は、インターネットプロトコルスイートに含まれるプロトコルで、どちらもインターネット上で情報をやり取りするための方法です。
しかし、正式名称を知っていても、どちらのプロトコルをどんな場面で使うべきなのかは分かりにくいものです。
この記事では、コンピューターネットワークの基礎知識から、TCPとUDPの違い、それぞれの活用場面までを詳しく解説します。
コンピューターネットワークの基礎知識
TCPとUDPの仕組みに入る前に、インターネットの基本的な仕組みを押さえておくと理解がスムーズになります。
端的に言えば、インターネットとは接続されたデバイス同士のネットワークです。スマートフォンでもサーバーでも、各デバイスはインターネットプロトコルスイートを介して通信しています。
インターネットプロトコルスイートとは、デバイス同士が通信するためのさまざまなプロトコル(手法)の集合体です。TCPとUDPはどちらも、その中核を担う主要なプロトコルです。

インターネットに接続されるすべてのデバイスには、固有のIPアドレスが割り当てられています。そして2つのデバイスがインターネット経由で通信する際、その通信にはTCPまたはUDPのいずれかが使われるのが一般的です。
両者の簡単な比較は以下の通りです。

インターネット全体の仕組みをざっくり把握したい方は、こちらの5分間の動画がおすすめです。
TCPとは?
TCP(Transmission Control Protocol)は、インターネット上で最も広く使われているネットワークプロトコルです。非常に信頼性が高く、Web閲覧(HTTP)、メール送信(SMTP)、ファイル転送(FTP)など、あらゆる場面で利用されています。
TCPは、あるデバイスが送信したすべてのデータが、相手のデバイスに完全な状態で届くことが必須となる状況で使われます。
たとえばWebサイトにアクセスする際、ページ表示に必要なテキスト・画像・コードのすべてが確実に届くことを保証するのがTCPです。TCPがなければ、画像やテキストが欠落したり、誤った順序で届いたりして、ページが崩れてしまう可能性があります。
TCPは「コネクション型」のプロトコルです。つまり、データ転送の前に2つのデバイス間で接続を確立し、転送中はその接続を維持し続けます。
接続の確立には、「3ウェイハンドシェイク」と呼ばれる手法が用いられます。

具体例として、あなたのデバイスでこの記事を読むケースを見てみましょう。まず、あなたのデバイスはfreeCodeCamp Newsのサーバーへ「SYN(Synchronize Sequence Number)」というメッセージを送ります。
次に、サーバーが「SYN-ACK」という確認応答メッセージを返します。
あなたのデバイスがSYN-ACKを受け取ると、今度は「ACK」という確認応答を送り返し、これで接続が確立されます。
TCP接続が確立されると、プロトコルはすべてのデータが確実に送信されることを保証します。
先ほどの例に戻ると、3ウェイハンドシェイクが完了すれば、サーバーは記事を表示するために必要なデータの送信を開始できます。
すべてのデバイスは、データを送信する際にそれを小さな「パケット」に分割します。受信側では、そのパケットを再構成する必要があります。
freeCodeCamp Newsのサーバーがこの記事のHTML、CSS、画像などを送る際も、すべてを小さなデータパケットに分割して送信します。あなたのデバイスは受け取ったパケットを再構成し、記事表示に必要なファイルや画像を組み立てます。
TCPは、これらのパケットがすべてあなたのデバイスに届くことを保証します。万が一パケットが途中で失われても、TCPによってデバイスはサーバーへ「データが欠けている」ことを簡単に通知でき、サーバーは該当パケットを再送できます。
必要なデータをすべて受け取り終えると、TCPは3ウェイハンドシェイクと似た手法(FINとACKパケットを使用)で、自動的に両デバイス間の接続を切断します。
UDPとは?
UDP(User Datagram Protocol)は、インターネットプロトコルスイートを構成するもう一つの主要なプロトコルです。TCPほどの信頼性はないものの、その分、はるかにシンプルです。
UDPは、ライブ映像・音声のようにある程度のデータ損失が許容される場面や、オンラインゲームのように速度が最重要視される場面で使われます。
UDPもTCPと同様にデータの送受信に使われますが、いくつか重要な違いがあります。
第一に、UDPは「コネクションレス型」のプロトコルである点です。TCPのような3ウェイハンドシェイクによる事前の接続確立を行いません。
第二に、UDPはすべてのデータが正しく転送されることを保証しない点です。UDPでは、データは受信待ちしているデバイスへ送出されるだけで、途中で一部が失われても気にしません。このため、UDPは「ファイア・アンド・フォーゲット(撃ちっぱなし)型プロトコル」とも呼ばれています。
この違いをイメージするのに分かりやすい例えがあります。TCPは2人の会話のようなものです。AさんがBさんに「お話ししてもいいですか?」と尋ね、Bさんが「もちろんいいですよ」と答え、Aさんがそれに同意して、ようやく会話が始まります。
一方、UDPはメガホンを持った街頭演説者のようなものです。演説者に注意を向けている人なら話の大部分は聞こえますが、周囲の全員が聞いているとは限らず、そもそも聞く気があるかどうかも分かりません。

どちらが速い?TCP vs UDP
一般的に、UDPの方が高速なプロトコルです。
UDPははるかにシンプルで、データ送信前の接続確立も、全データの到達確認もしません。単純にデータを要求しているデバイスへ送り続けるだけで、相手が切断するか、送るべきデータがなくなるまで続けます。
ペットボトルからちびちび飲む代わりに、ホースから直接水を飲むようなイメージです。どちらの方法でも喉の渇きは癒せますが、後者ではシャツがびしょ濡れになるかもしれません。

ただし、速いからといってUDPがあらゆる面で優れているわけではありません。特定の状況で優れているだけです。
前述の通り、TCPが必要なのは、すべてのデータパケットが順序通りに、しかも漏れなく届くことが極めて重要な場面です。TCPがなければ、Webはまともに機能しないでしょう。
TCPは接続確立の方式や消失パケットのチェックのぶんだけ遅くなりますが、それでも十分に高速です。実際、YouTubeやNetflixのようなサイトはHTTPを使用しているため、すべてTCPでデータを送信しています。
さらにTCPはバッファリングに対応しているため、ブラウザは視聴中に先のデータを事前に読み込んでおくことができ、スムーズな再生や動画のシーク(頭出し)が可能になります。
一方、ライブ配信の映像・音声やオンラインゲームなど、潜在的なデータ損失よりも速度を優先すべき場面では、UDPがより良い選択となります。
Google MeetやZoomで通話する際、あなたの映像と音声はUDPで送信されています。仮にパケットがいくらか失われても、それは軽微なラグや映像・音声の途切れとして現れる程度です。
オンラインゲームをする方なら、「TCPなら全パケットの到達が保証されるのだから、ゲームにこそ最適なのでは?」と思うかもしれません。しかし現実には、TCPが行う確認作業やデータの再送は、すべてレイテンシ(遅延)の増加につながります。
そこでゲーム開発者たちは、プレイヤーの入力や状態を可能な限り正確に保つための、別の賢い手法を編み出しました。オンラインゲームにUDPが好まれる理由を詳しく知りたい方は、ぜひ関連記事を参照してください。
まとめ
この記事が、TCPとUDPの微妙な違いを理解する助けになれば幸いです。誰かに「どちらが速いのか?」と聞かれたら、ここで学んだことを伝えてあげてください。「UDPの方が速い、ただし……」と。
-
OneDriveとOneDrive for Businessの違いとは?使い分けのポイントを徹底解説
Microsoftのクラウドストレージサービス「OneDrive」を使えば、どこにいても自分のファイルにアクセスできます。しかし、実はMicrosoftは名前がよく似た2種類のOneDriveを提供しています。「OneDrive」と「OneDrive for Business」のどちらを使うべきかは、クラウドに何を保存するのか、そしてどうやってアクセスする必要があるのかによって変わってきます。 OneDrive(個人向け)の特徴 「OneDrive」は、個人ユーザー向けに設計されたMicrosoftのクラウドサービスです。個人のOutlookアカウントに含まれており、Windows 10では自
-
Windows 10 HomeとProの違いを徹底解説!自分に合ったエディションの選び方
新しいPCの購入を検討している場合でも、Windowsを単体で購入する場合でも、Windows 10 HomeとProの違いをあらかじめ把握しておくことが大切です。製品ページなどに特に表記がない場合は、そのデバイスにはWindows 10 Homeが搭載されていると考えてよいでしょう。 そもそも「Home」という名称はやや分かりにくく、実態としては「Windows 10 スタンダード」と呼ぶ方がぴったりです。価格1,000ポンド(約15万円)未満のWindowsデバイスの大半に搭載されており、OSのコア機能がすべて含まれています。 一方のProは、プロフェッショナル、パワーユーザー、ビジネ