2016-05-21 6 views
5

私はNATのトラバーサルについて、そしてSTUN、TURN、ICEとその使用について知っています。私はこれらがBitTorrentのようなピアツーピアファイル共有アプリケーションに実装されているかどうかを知りたい。トラッカーは、STUNを使用した直接接続またはTURN経由のリレーを作成することによって、NATの背後にあるピアが互いに通信することを容易にするかどうかを決定します。分散ハッシュテーブル(DHT)の場合、1つのピアがNATの背後にある他のピアとどのように通信するのですか?ビットトレントのようなピアツーピアプロトコルの場合のNATトラバーサルの仕組み。

答えて

9

BitTorrentはswarmの特定のメンバーに接続する必要はありません.2つの特定のエンドポイントが互いに話をしたいというP2Pチャットプロトコルではありません。気になるのは、群れの接続グラフが十分に高い接続性を持っているということです。

言い換えれば、NATの背後にあるクライアントにお互いに話を聞かせることはやや望ましいことですが、トラフィックフォワーディングなどの主要なリソースがその目標に費やされることはありません。失敗はオプションです。

したがって、sip/turn/etcは使用しません。

様々なクライアントがバルク輸送の接続のための接続性を向上させるために、以下のアプローチのいくつかの組み合わせを使用する:

  • NAT-PMP/PCPネゴシエーションをゲートウェイ
  • ポートリユースソケットオプションで独立エンドポイントを利用します(EIM)NATマッピング
  • stunサーバーの代わりに相互に到達可能なスウォームメンバーを使用する大部分が文書化されていないut_holepunchという拡張子。
  • オプションのUDPベースのトランスポートプロトコル(μTP)は、これまでのポイントと組み合わせて使用​​できます。一般的にナットのトラバーサルはudpで実現する方が簡単です
  • IPv6機能シグナリング。これにより、クライアントは接続をアップグレードしてから、P6/DHT経由でv6ピアをゴシップできます。

DHTの場合、最初の2つのポイント(ゲートウェイネゴシエーションとポートの再利用)のみが使用されます。 1回のリクエスト・リプライ・サイクルでナット・トラバーサルを試行するオーバーヘッドは> 100%となり、その価値はありません。

関連する問題