ネットワーキング
 Computer >> コンピューター >  >> ネットワーキング >> ネットワーキング

TCPとUDPの違いとは?仕組みの比較とどちらのプロトコルが速いのか徹底解説

ネットワーク技術を学び始めたばかりの方や、アプリケーションのネットワーク設定を調べたことがある方なら、「TCP」「UDP」という言葉を目にしたことがあるでしょう。

TCP(Transmission Control Protocol:伝送制御プロトコル)とUDP(User Datagram Protocol:ユーザーデータグラムプロトコル)は、インターネットプロトコルスイートに含まれるプロトコルで、インターネット上で情報を送受信するための異なる方式です。

しかし、正式名称を知っていても、どちらのプロトコルをどんな場面で使うべきなのか、なぜ一方を選ぶのかは分かりにくいものです。

この記事では、コンピューターネットワークの基礎知識から、TCPとUDPの違い、それぞれの使用場面などを詳しく解説します。

コンピューターネットワークの基礎知識

TCPとUDPの仕組みを理解する前に、まずインターネットの基本的な動作について押さえておきましょう。

一般的に、インターネットとはデバイス同士をつなぐネットワークのことです。スマートフォンでもサーバーでも、インターネットに接続された各デバイスは、インターネットプロトコルスイートを通じて通信を行っています。

インターネットプロトコルスイートとは、デバイス同士が相互に通信するためのさまざまなプロトコル(通信方式)の集合体です。TCPとUDPは、その中核を担う主要なプロトコルです。

TCPとUDPの違いとは?仕組みの比較とどちらのプロトコルが速いのか徹底解説
出典

インターネットに接続されているすべてのデバイスには、固有のIPアドレスが割り当てられています。そして、2つのデバイスがインターネット経由で通信する際には、必ずTCPかUDPのどちらかが使われているといっても過言ではありません。

両者の簡単な比較は以下のとおりです。

TCPとUDPの違いとは?仕組みの比較とどちらのプロトコルが速いのか徹底解説
出典

インターネットの仕組みをもっと大まかに把握したい方は、約5分で学べる解説動画もおすすめです。

TCPとは?

TCP(Transmission Control Protocol)は、インターネット上で最も広く使われている通信プロトコルです。非常に高い信頼性を誇り、Web閲覧(HTTP)、メール送信(SMTP)、ファイル転送(FTP)など、あらゆる場面で利用されています。

TCPは、あるデバイスから送信されたすべてのデータが、相手側のデバイスに完全な状態で届くことが求められる場面で使われます。

たとえば、Webサイトにアクセスするとき、ページを表示するために必要なテキスト・画像・コードがすべて確実に届くよう、TCPが保証してくれます。TCPがなければ、画像やテキストが欠けたり、順番が入れ替わって届いたりして、ページが正しく表示されなくなる可能性があります。

TCPは「コネクション型」のプロトコルです。つまり、データ転送を始める前に2つのデバイス間で接続を確立し、転送中もその接続を維持します。

2つのデバイス間で接続を確立するために、TCPは「3ウェイハンドシェイク」と呼ばれる手法を使います。

TCPとUDPの違いとは?仕組みの比較とどちらのプロトコルが速いのか徹底解説
出典

具体例として、この記事をあなたのデバイスで読む場合を見てみましょう。まず、あなたのデバイスがfreeCodeCamp Newsのサーバーに対して「SYN(Synchronize Sequence Number:同期シーケンス番号)」というメッセージを送信します。

次に、サーバー側が「SYN-ACK」という確認応答メッセージを返します。

あなたのデバイスがサーバーからSYN-ACKを受け取ると、今度は「ACK」という確認応答メッセージを送り返し、ここで接続が確立されます。

TCP接続が確立されると、プロトコルはすべてのデータが確実に送信されることを保証します。

先ほどの例に戻ると、3ウェイハンドシェイクが完了すると、Newsサーバーはあなたのブラウザが記事を表示するのに必要なすべてのデータの送信を開始できます。

すべてのデバイスは、データをインターネット経由で送る前に小さな「パケット」に分割します。そして、受け取った側でパケットを再構成する必要があります。

freeCodeCamp Newsのサーバーがこの記事のHTML、CSS、画像などのコードを送信する際も、すべてを小さなパケットに分割してからあなたのデバイスへ送ります。あなたのデバイスはそれらのパケットを再構成し、記事の表示に必要なファイルや画像を作り上げます。

TCPは、これらのパケットがすべてあなたのデバイスに届くことを保証します。万が一途中でパケットが失われた場合でも、TCPのおかげで、あなたのデバイスはサーバーに「データが不足している」ことを簡単に伝えられ、サーバーは該当するパケットを再送できます。

あなたのデバイスが記事の表示に必要なデータをすべて受け取ると、TCPは3ウェイハンドシェイクと似た手法(FINとACKパケットを使用)で、自動的に2つのデバイス間の接続を切断します。

UDPとは?

UDP(User Datagram Protocol)は、インターネットプロトコルスイートを構成するもう一つの主要プロトコルです。TCPほどの信頼性はないものの、はるかにシンプルなのが特徴です。

UDPは、多少のデータ損失が許容できるライブ動画・音声配信や、速度が重要視されるオンラインゲームなどの場面で活用されています。

UDPもTCPと同じくオンラインでのデータ送受信に使われますが、いくつか重要な違いがあります。

第一に、UDPは「コネクションレス型」のプロトコルである点です。TCPのように事前に3ウェイハンドシェイクで接続を確立することはありません。

第二に、UDPはすべてのデータが正常に転送されることを保証しない点です。UDPでは、データは受信待ち状態にある任意のデバイスに向けて送出されますが、途中で一部が失われても気にしません。このことから、UDPは「ファイア・アンド・フォーゲット(撃ちっぱなし)」型のプロトコルとも呼ばれています。

この違いをイメージするのに分かりやすい比喩があります。TCPは2人の人間の会話のようなものです。AさんがBさんに「お話しできますか?」と尋ね、Bさんが「いいですよ」と答え、Aさんも了承して、ようやく会話が始まります。

一方、UDPはメガホンを持った街頭演説者のようなものです。演説者に注意を向けている人は、話の大半を聞き取れるでしょう。しかし、周囲の全員が演説を聞いているとは限りませんし、そもそも聞こうとしている保証もありません。

TCPとUDPの違いとは?仕組みの比較とどちらのプロトコルが速いのか徹底解説
UDP vs TCP — 出典

TCPとUDP、どちらが速い?

結論から言うと、一般的にUDPの方が高速です。

UDPははるかにシンプルで、データ送信前の接続確立も、全データの到達確認もしません。単純にデータを要求しているデバイスへ送り続け、相手が切断するか、送るデータがなくなるまでそれを続けます。

ペットボトルからちびちび飲むのではなく、ホースから直接水を飲むようなイメージです。どちらでも喉の渇きは癒せますが、後者の方が服が濡れるリスクは高くなります。

TCPとUDPの違いとは?仕組みの比較とどちらのプロトコルが速いのか徹底解説
厳密にはホースではありませんが、かなり的確な比喩です。さらに、TCPのボトルは飲んでいる最中に「水は届いていますか?」と何度も尋ねてくると思ってください。出典

しかし、速いからといってUDPが総合的に優れたプロトコルというわけではありません。あくまで特定の状況において優れているだけです。

前述のとおり、TCPはすべてのパケットが順序通りに、しかも漏れなく届くことが不可欠な場面で必要となります。TCPがなければ、Webは成り立ちません。

TCPは接続確立の手順やパケット消失チェックの仕組みがある分、どうしても遅くなりますが、それでも十分に高速です。YouTubeやNetflixといったサイトも、HTTPを使っている以上、TCPでデータを送信しています。

さらにTCPはバッファリングにも対応しているため、ブラウザは視聴しながら先のデータを追加で読み込めます。これにより、滑らかな再生や動画のシーク(早送り・巻き戻し)が可能になっています。

一方、ライブ配信やオンラインゲームなど、潜在的なデータ損失よりも速度が優先される場面では、UDPが最適な選択肢となります。

Google MeetやZoomで通話をする際、映像と音声はUDPで送信されています。途中でパケットが多少失われても、それは軽微なラグや音声・映像の途切れとして現れる程度です。

オンラインゲームをプレイする方なら、「TCPは全パケットの到達を保証するのだから、ゲームに最適なのでは?」と思うかもしれません。しかし実際には、TCPが行う膨大なチェックと再送処理がレイテンシ(遅延)を増やす原因になってしまうのです。

ゲーム開発者たちは、プレイヤーの入力や状態をできる限り正確に保つために、別の賢い工夫を凝らしています。オンラインゲームにUDPが好まれる理由について詳しく知りたい方は、関連記事を参照してみてください。

おわりに

この記事を通じて、TCPとUDPの微妙な違いについて理解が深まったなら幸いです。もし誰かに「どちらが速い?」と聞かれたら、こう答えてあげてください。「UDPの方が速いよ。ただし…」

  1. OneDriveとOneDrive for Businessの違いとは?使い分けのポイントを徹底解説

    Microsoftのクラウドストレージサービス「OneDrive」を使えば、どこにいても自分のファイルにアクセスできます。しかし、実はMicrosoftは名前がよく似た2種類のOneDriveを提供しています。「OneDrive」と「OneDrive for Business」のどちらを使うべきかは、クラウドに何を保存するのか、そしてどうやってアクセスする必要があるのかによって変わってきます。 OneDrive(個人向け)の特徴 「OneDrive」は、個人ユーザー向けに設計されたMicrosoftのクラウドサービスです。個人のOutlookアカウントに含まれており、Windows 10では自

  2. Windows 10 HomeとProの違いを徹底解説!自分に合ったエディションの選び方

    新しいPCの購入を検討している場合でも、Windowsを単体で購入する場合でも、Windows 10 HomeとProの違いをあらかじめ把握しておくことが大切です。製品ページなどに特に表記がない場合は、そのデバイスにはWindows 10 Homeが搭載されていると考えてよいでしょう。 そもそも「Home」という名称はやや分かりにくく、実態としては「Windows 10 スタンダード」と呼ぶ方がぴったりです。価格1,000ポンド(約15万円)未満のWindowsデバイスの大半に搭載されており、OSのコア機能がすべて含まれています。 一方のProは、プロフェッショナル、パワーユーザー、ビジネ