TCPとUDPの違いや仕組みとは?使い分け方を徹底解説
ネットワークを利用して、コンピュータ同士でデータをやり取りするファイル転送では、TCPやUDPと呼ばれる通信プロトコルが使われます。それぞれのプロトコルの役割を理解することが、ネットワークの仕組みを学ぶ上では必要不可欠です。この記事ではTCPとUDPの違いやそれぞれの仕組み、OpenVPNで使用するのに最適なプロトコルについて解説します。
目次
TCP・UDPとは?
TCP(トランスミッション・コントロール・プロトコル)とUDP(ユーザ・データグラム・プロトコル) は、インターネット上でデバイスからウェブサーバにデータを転送するためのネットワークプロトコルのことを指します。
Skypeで友達とチャットしたり、電子メールを送ったり、オンラインで動画を見たり、ウェブを閲覧したりするときに、これらのプロトコルのいずれかを使用します。
現在、インターネットやLAN上で最も利用されている通信プロトコルがTCP/IPです。TCP/IPとは「TCP」と「IP」をまとめた呼び名で、IPは宛先(アドレス)を指し、TCPは実際にデータを転送する役割を持ちます。パソコンに限らず、スマートフォンやタブレット、ゲーム機など、さまざまな端末でネットワークが構成されています。
TCPやUDPは、データをパケットと呼ばれる小さな単位に分割します。パケットには、送信者と受信者のIP、さまざまな設定、送信する実際のデータ、トレーラが含まれます。
TCPとUDPのプロトコルの違いは、データパケットの移動方法にあります。以下でもう少し深く掘り下げてみましょう。
TCPとUDPの仕組み
TCPとUDPの違いを理解してもらうために、それぞれの仕組みを分かりやすく説明します。
TCP通信の仕組み
TCPは、UDPよりも信頼性が高いと考えられているため、インターネット上で最も一般的に使用されているプロトコルです。TCPのパケットは、「TCPヘッダ」と「TCPペイロード」で構成されます。
TCPを使ったデータ送信は、以下の仕組みで行われます。
1. TCPは、各パケットに識別子とシーケンス番号を割り当てます。これにより、受信機はどのパケットを受信したか、次にどのパケットが到着するのかを識別することができます。
2. 送信機が送信したパケットの受信を受信機が許可すると、受信機は同期を表す「SYN」と承諾を表す「ACK」が記されたパケットを送信機に送信します。
3. 受信機からパケットを受け取ったら、送信機は通信相手にACKのパケットを送ります。これで送信機はデータを送信することができるようになります。
4. パケットが紛失したり、間違った順番で送信されたりする場合は、受信機は沈黙したままになるので、同じデータパケットを再送する必要があります。
データは順番に送信されるため、第三者が送信元を偽って通信する攻撃を防いだり、エラーを発見して修正したりするのが容易になります。また、TCPで送信されるデータは、確実に目的地に到達するように確保されます。
しかし、TCPには欠点もあります。両者の間で3回のやりとりを経て初めてデータを送信できるようになるので、どうしてもTCPで接続を確立してデータを交換するのに時間がかかってしまいます。
UDP通信の仕組み
UDP はTCPと対照的で、識別子やシーケンス番号を必要とせず、両者の間でのやり取りを省いています。また、UDPにはエラー訂正がほとんどなく、パケットの紛失も重要視されません。UDPはエラーが発生しやすいですが、TCPよりはるかに高速なデータ送信を実現します。
「UDPは安全なのか?」と疑問を持たれている方もいると思いますが、UDPは転送速度を重視した通信プロトコルなので、TCPに比べると安全性に欠けます。
しかし、UDPが完全に保護されていないわけではありません。特定のアプリケーションのプロキシを使用したり、リモートユーザーと社内ネットワーク間のトンネル接続を確立したりすることで、安全性が確保されます。
TCPとUDPの主な違い
それぞれのプロトコルには長所と短所があります。違いを表で見てみましょう。
TCP | UDP | |
---|---|---|
信頼性 | 高い | 低い |
転送速度 | 遅い | 速い |
タイプ | コネクション型 | コネクションレス型 |
保証 | データが受信者に到達することを保証している | データが受信者に到達するかは保証しない |
輻輳制御 | あり | なし |
承諾 | あり | チェックサムのみ |
結局、UDPとTCPのどちらを利用すれば良いのでしょうか? これは、あなたがどんな目的で利用するかによると言えるでしょう。
高速でデータを転送する必要がある場合は、UDPを使用するのが最適です。そうでなければ、確実にデータが損失することのない安定したTCPを使ってデータ転送するのがいいでしょう。
OpenVPN:TCPとUDPどちらが最適?
OpenVPNとは?
OpenVPNとは、オープンソースで開発されている、VPN(仮想プライベートネットワーク)を構築するためのアプリケーションのこと。オープンソースのアプリなので設定の自由度が高く、自分で導入すると無料で様々なネットワーク構築を作成できます。
VPNを利用すると、通信事業者の提供する公衆回線上に仮想の専用線が構築されるので、自分のIPアドレスを隠すことができます。それにより、第三者からの盗み見や悪意のある攻撃からデータを守ることができます。
NordVPNはあなたのデバイスのデータ通信を強力な暗号化機能で保護します。ネット上でのぞき見されないよう、ご自身をガードしましょう。
NordVPNを購入OpenVPNでサポートしているのはどちらの通信プロトコル?
OpenVPNでは、UDPポートとTCPポートの両方をサポートしています。どちらを選択するか、どちらが接続する上で最適なのかは、あなたが何のために VPN を使用するかによって異なります。
例えば、機密性の高い情報が含まれるデータをやりとりする場合は、信頼性が高いTCPの方が好ましいと言えるでしょう。
ゲームや、動画ストリーミング、VoIPサービスを使用する目的でOpenVPNを利用する場合は、UDPが最適なオプションです。接続中にパケットが消失する可能性もありますが、接続全体に大きな影響を与えることはありません。
大容量のデータの転送や、離れた場所とやりとりをする場合、TCPを使うとラグが発生する可能性があります。したがって、電子メール、ウェブブラウジング、小容量のファイル転送以外の目的で利用する場合は、UDP経由のOpenVPNをお勧めします。
NordVPNはどのプロトコルを使用している?
私たちNordVPNは、最高の速度で満足してもらえるブラウジング体験を提供したいと考えており、デフォルトでUDPプロトコルを採用しています。
最初にUDPプロトコルを試してみて、問題が発生したり不満があったりする場合は以下の手順でTCPに切り替えてください。
NordVPNでUDPをTCPに変更する手順(Windowsユーザー用)
1. 右上の歯車のアイコンをクリックします。
2. 左側のメニューから「詳細設定」を選択します。
3. 「プロトコル」を選択し、「TCP」をクリックします。
NordVPNでUDPをTCPに変更する手順(MacOSユーザー用)
1. 左上のスライダーボタンをクリック、またはメニューバーでNordVPNを見つけて、環境設定パネルを開きます。 (デフォルトのショートカットキー:「Cmd」+「,」)
2. 「Connection: Prefer UDP over TCP」の欄にデフォルトでチェックがついているので、チェックボックスをクリックしてチェックを外してください。