web-dev-qa-db-ja.com

VPN over TCP vs UDPの違いは何ですか?

私のVPNプロバイダーは、UDPを使用するか、TCP for connections。 this site によると、UDPは短距離で高速です。私は同じ大陸にいます私のサーバー、それは短距離と見なされますか?2つを比較するために実行できるテストはありますか?

37
David Drohang

VPNは、生のIPパケットを2つのサイト間のある種の「トンネル」にラップするためのものです(サイトの1つは、おそらく1台のコンピューターに削減されます)。 [〜#〜] tcp [〜#〜] は、IPの上に置かれ、IPパケットを使用するプロトコルです(「信頼できない」:失われたり、複製されたり、並べ替えられたりする可能性があります... )データバイト用の信頼性の高い双方向チャネルを提供するため、バイトは常に送信された順序でレシーバーに到達します。 TCPは、明示的な確認応答と再送信を伴う複雑なメタデータの組み合わせを使用することにより、これを行います。したがって、TCPはわずかなネットワークオーバーヘッドを招きます。

VPNがTCPを使用する場合、your独自のTCP接続はVPN経由で送信されたIPパケットを使用するため、最終的にTCPを支払うことになります_オーバーヘッドが2回。したがって、UDPベースのVPNにはポテンシャルがあり、パフォーマンスがわずかに向上します。一方、VPNの暗号化保護には、UDPを使用する場合のVPN実装にとってより困難な場合がある状態管理が必要であるため、UDPベースのVPNには、対処するための追加のオーバーヘッドがある可能性があります。

したがって、パフォーマンスの状況は明確ではなく、測定する必要があります

44
Thomas Pornin

どちらかの方法でファイルをダウンロードし、ダウンロード速度が大幅に異なるかどうかを確認することができます。

TCPとUDP(VPNの使用に関係なく)の間のトレードオフは常に同じです。UDPはコネクションレスであり、サーバーは理論的にはデータを送信するため(実装に応じて)、信頼性のために速度を犠牲にします。宛先に到達したかどうかは関係ありません。これは、各パケットがユーザーによる動きである可能性があるインターネットゲームなどでは問題ありませんが、データのビットが欠落しているためメッセージ全体が再送信、TCPは、メッセージ全体を再送信する必要があるため、UDPを使用して得られた時間が失われる可能性があるため、より歓迎されます。

同じ大陸にいることは、一般的に短距離とは見なされません。私は同じ建物内にいることを検討します。おそらく同じ都市にありますが、それよりも短い距離ではありません。パケットが通過するホップ数が多いほど、途中で破損する可能性が高くなります。目的地に到達するまでにかかるホップ数を確認したい場合は、「trace route」コマンドを実行してみてください。

私が助けてくれたことを願っています。

13
NULLZ

UDPはVPNに適しているため、オーバーヘッドは低くなります。 UDPの信頼性に関するこの議論は、議論の余地があります。チューンリングしているため、オープンインターネットで失われたTCPデータグラムとTCPトンネルで失われたTCPデータグラム、またはTCPデータグラムで失われたデータグラムの間に違いはありません。 UDPトンネル。すべてが再送信されます。

UDPトンネルの問題は、それらがステートレスであることです。これにより、ファイアウォールでの保護が難しくなります。返信パケットはソースパケットと同じです。セキュリティの観点からは、TCPトンネルの方が簡単です。

11
mgjk

これは、TCPおよびUDPは通常は同じです。TCPは、すべてのパケットが順番に到着することが保証されているシステムです。パケットが受信された場合順不同で格納され、ギャップを埋めるためにパケットが表示されない場合は再要求されます。これにより、データが失われることなく完全なストリームが保証されますが、接続が1つ保持される可能性があります情報が再度要求されている間にパケットが失われました。

一方、UDPはそのような保証を行わず、情報は到着した順序で到着し、そのように処理されます。セキュリティへの影響について正確にはわかりませんが、並列化できないチェーンストリーム暗号を使用すると、すべてのパケットが順番に到着する必要があるため、UDPでも同様の遅延が発生する可能性がありますが、これによっても解決できます。並列復号化をサポートする暗号化モードを使用します。

したがって、基本的に、VPNが一般的なTCP/UDPミックスに追加する唯一のことは、使用できる暗号化モードの性質を制限することですが、それ以外の場合は一般的なトレードオフです。

3
AJ Henderson

実際の物理的なポイントツーポイント距離は、インターネットの世界では何も意味しません。すべてISPの相互接続に依存しています。隣のラックのサーバーにpingを実行したとき、パケットが太平洋を経由してルーティングされたため、300ミリ秒の遅延がありました。これは、ISPが相互に接続されていたためです。サーバーが直接接続されていた場合、遅延はマイクロ秒単位でした。サーバーは互いに数インチ離れていましたが、パケットがすべてのホップを往復する実際の距離は約25,000マイルでした!これは極端な例ですが、距離を信用できないことを示しています。

遅延ではなく距離を調べる必要がある距離ではなく、それはVPN宛先に送信されたエコーが応答するのにかかる往復時間です。どのラウンドトリップ時間がUDPをTCPよりも良い選択にするかについては、私にはわかりません。他の要因があるので、それほど単純ではありません。

  • パケットの損失とジッター:UDPはパケットの損失とジッター(順不同パケット)に非常に敏感であり、TCPのような組み込みの修正メカニズムはありません。レイテンシやジッターはメリットを損ないますUDP over TCPの使用例
  • OS IPスタック効率:VPNアプリケーションは、UDPパケットも処理するオペレーティングシステムのTCP/IPスタックを使用します。 TCPとUDPの相対的な効率の大部分は、OS(およびあらゆる方法でのパケットフィルタリングまたはファイアウォール)がどの程度適切に処理するかによって決まりますTCPとUDP
  • アプリケーションのコーディング:VPNアプリケーションの品質は、接続先のデバイス上のVPNソフトウェアと同様に、大きな違いをもたらします。たとえば、失われたUDPパケットからどのように回復しますか?それは再送信を要求できますか、それとも再送信を要求するために上流のアプリケーションに依存していますか?

それはあまりにも多くの要因に依存するため、あなたに決定的な答えを与えるにはあまりにも多くの要因があります。あなたは単に両方の方法を試してみて見なければならないでしょう。

2
GdD