(57)【要約】【課題】ネットワークアドレス・トランスレータ（ＮＡＴ）の存在下でピアツーピア・ネットワーク（Ｐ２Ｐ）内のピアの間の通信を可能にする方法およびシステムを提供すること。【解決手段】方法は、Ｐ２Ｐネットワーク内の複数のピアの各々に固有のピア識別子を割当てることと、各ピアの固有のピア識別子に基づいて、各ピアを複数のピアのサブセットに構造化された接続パターンで接続するオーバーレイ・トポロジーを確立し、複数のピアの各々が、近接のピアへのより多くの接続および遠隔のピアへのより少ない接続を有することと、確立されたオーバーレイ・トポロジーを介してピア間でメッセージをルーティングすることと、を含む。【選択図】図３
2008206160.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークアドレス・トランスレータ（ＮＡＴ）の存在下でピアツーピア（Ｐ２Ｐ）ネットワーク内の複数のピアの間の通信を可能にする方法であって、
（ａ）前記Ｐ２Ｐネットワーク内の前記複数のピアの各々に固有のピア識別子を割当てることと、
（ｂ）各ピアの前記固有のピア識別子に基づいて、各ピアを前記複数のピアのサブセットに構造化された接続パターンで接続するオーバーレイ・トポロジーを確立し、前記複数のピアの各々が、近接のピアへのより多くの接続および遠隔のピアへのより少ない接続を有することと、
（ｃ）前記確立されたオーバーレイ・トポロジーを介してピア間でメッセージをルーティングすることと、
を含む方法。
【請求項２】
ステップ（ｂ）が、仮想的リングの周りに時計回りおよび反時計回りの方向に指数関数的に増大する距離にあるピア間に接続を確立することを含む、請求項１に記載の方法。
【請求項３】
ステップ（ａ）が、前記固有のピア識別子を生成するために、１方向ハッシュ関数を用いて前記複数のピアの各々の属性をハッシュすることを含み、前記属性が、ネットワークアドレス、ＭＡＣ（媒体アクセス制御）アドレス、および製造番号のうちの１つを含む、請求項１に記載の方法。
【請求項４】
前記構造化された接続パターンで確立された接続が、前記複数のピアからのピア対の間での接続要求の信号送信の間および前記ピア対の間でのメッセージの信号送信の間、保持される、請求項１に記載の方法。
【請求項５】
前記構造化された接続パターンで確立された前記接続の一部ではない、前記複数のピアからのピア対の間で、接続要求の信号送信の間、通信が確立される、さらなる接続を、確立することをさらに含む、請求項１に記載の方法。
【請求項６】
前記Ｐ２Ｐネットワーク内に新規のピアを付加することをさらに含み、
新規のピアを付加する前記ステップが、
（ｉ）前記Ｐ２Ｐネットワーク内の前記複数のピアのうちの１つを検出およびコンタクトすることと、
（ｉｉ）前記新規のピアおよび前記Ｐ２Ｐネットワーク内の前記複数のピアのうちの前記１つの間の接続を確立することと、
を含む、請求項１に記載の方法。
【請求項７】
前記ステップ（ｉ）が、マルチキャストすることによって、またはブロードキャストすることによって、または宣伝することによって、または仲間リストを用いることによって、または手動構成によって、または導入によって、前記Ｐ２Ｐネットワーク内の前記複数のピアのうちの１つを検出およびコンタクトすることと、
前記オーバーレイ・トポロジーに承認を要求することと、
を含む、請求項６に記載の方法。
【請求項８】
前記ステップ（ｉ）が、
サーバへの接続を保持するために、前記Ｐ２Ｐネットワーク内の前記複数のピアから選択されるターゲットピアを選出することと、
前記Ｐ２Ｐネットワーク内の前記複数のピアから選択される前記ターゲットピアのアドレスおよびポート情報を取得するために前記サーバにコンタクトすることと、
前記ターゲットピアとの通信を開始することによって、前記オーバーレイ・トポロジーに承認を要求することと、
を含む、請求項６に記載の方法。
【請求項９】
ネットワークアドレス・トランスレータの存在下でピアツーピア・ネットワーク内の複数のピアの間の通信を可能にするネットワーク・オーバーレイ・トポロジーであって、
前記Ｐ２Ｐネットワーク内の前記複数のピアの各々に帰属する固有のピア識別子と、
各ピアの前記固有のピア識別子に基づいて、各ピアを前記複数のピアのサブセットに構造化された接続パターンで接続するオーバーレイ・トポロジーであって、前記複数のピアの各々が、近接のピアへのより多くの接続および遠隔のピアへのより少ない接続を有し、前記構造化された接続パターンが、前記確立されたオーバーレイ・トポロジーを介してピアの間でのメッセージのルーティングを可能にするように配置されたオーバーレイ・トポロジーと、
を含むネットワーク・オーバーレイ・トポロジー。
【請求項１０】
前記オーバーレイ・トポロジーが、
仮想的リングの周りに時計回りおよび反時計回りの方向に指数関数的に増大する距離に配置されたピアの間の接続と、
前記固有のピア識別子を生成するために、前記複数のピアの各々の属性をコーディングするための手段と、を含み、
前記属性が、ネットワークアドレス、ＭＡＣ（媒体アクセス制御）アドレス、および製造番号のうちの１つを含む、請求項９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークアドレス・トランスレータの存在下でのネットワーク上のピアツーピア通信の容易化の技術分野に関する。
【背景技術】
【０００２】
関連出願の記載
本出願は、出願人が本出願と共に出願した同時係属中の「Ｂｏｏｔｓｔｒａｐｐｉｎｇ  ｉｎ  ｐｅｅｒ−ｔｏ−ｐｅｅｒ  ｎｅｔｗｏｒｋｓ  ｗｉｔｈ  ｎｅｔｗｏｒｋ  ａｄｄｒｅｓｓ  ｔｒａｎｓｌａｔｏｒｓ」という表題の米国特許出願に関連し、この米国特許出願は、ここでの言及をもって本明細書に組み入れられたものとする。
【０００３】
ネットワーク内に参加するピアは、グローバルに有効なＩＰ（インターネットプロトコル）アドレスに到達し得ないため、ネットワークアドレス変換（ＮＡＴ）は、ピアツーピア（Ｐ２Ｐ）通信に対して公知の問題を生じさせる。
【０００４】
特に、最新のインターネットアドレス・アーキテクチャは、ＮＡＴで相互接続された１つのグローバルアドレス空間（即ち、パブリックＩＰアドレス）および多数のプライベートアドレス空間（即ち、プライベートＩＰアドレス）で構成される。グローバルアドレス空間内のピア（ノード、クラアント等とも呼ばれる）は、固有なグローバルにルーティング可能なＩＰアドレスを有するので、それらだけが、ネットワーク内のどこからも容易にコンタクトされ得る。プライベートネットワーク上のピアは、同じプライベートネットワーク上の他のピアと接続することができ、それらは通常、グローバルアドレス空間内に確立されたピアにＴＣＰ（通信制御プロトコル）またはＵＤＰ（ユーザデータグラムプロトコル）の接続を開放することが可能である。しかしながら、最新のアドレス・アーキテクチャは、異なるプライベートネットワーク上の２つのピアが互いに直接的にコンタクトすること、またはパブリックネットワーク内のピアがプライベートネットワーク内のピアとコンタクトを開始することを困難にする。一般に、この状況が存在するのは、ＮＡＴが外向き接続に対してパブリックエンドポイントを一時的に割当ててそれらのセッションを含むパケット内のアドレスおよびポート番号を変換する一方で、そうでないように構成されている場合を除き、通常、全ての内向きトラフィックをブロックするからである。
【０００５】
【特許文献１】同時係属中米国特許出願「Ｂｏｏｔｓｔｒａｐｐｉｎｇ  ｉｎ  ｐｅｅｒ−ｔｏ−ｐｅｅｒ  ｎｅｔｗｏｒｋｓ  ｗｉｔｈ  ｎｅｔｗｏｒｋ  ａｄｄｒｅｓｓ  ｔｒａｎｓｌａｔｏｒｓ」
【発明の開示】
【発明が解決しようとする課題】
【０００６】
直接的なピアツーピア通信の問題を克服するために、多数の技術が提案されてきたが、ＮＡＴの動作が標準化されていないため、それらは、概して、一般的に適用可能でない。
【課題を解決するための手段】
【０００７】
本発明のいくつかの例示的な実施形態は、ネットワークアドレス・トランスレータ（ＮＡＴ）の存在下でピアツーピア（Ｐ２Ｐ）ネットワーク内の複数のピアの間の通信を可能にする方法であって、（ａ）Ｐ２Ｐネットワーク内の複数のピアの各々に固有のピア識別子を割当てることと、（ｂ）各ピアの固有のピア識別子に基づいて、各ピアを複数のピアのサブセットに構造化された接続パターンで接続するオーバーレイ・トポロジーを確立し、複数のピアの各々が、近接のピアへのより多くの接続および遠隔のピアへのより少ない接続を有することと、（ｃ）確立されたオーバーレイ・トポロジーを介してピア間でメッセージをルーティングすることと、を含む方法を提供し得る。
【０００８】
本発明のいくつかの例示的な実施形態は、ネットワークアドレス・トランスレータの存在下でピアツーピア・ネットワーク内の複数のピアの間の通信を可能にするネットワーク・オーバーレイ・トポロジーであって、Ｐ２Ｐネットワーク内の複数のピアの各々に帰属する固有のピア識別子と、各ピアの固有のピア識別子に基づいて、各ピアを複数のピアのサブセットに構造化された接続パターンで接続するオーバーレイ・トポロジーであって、複数のピアの各々が、近接のピアへのより多くの接続および遠隔のピアへのより少ない接続を有し、構造化された接続パターンが、確立されたオーバーレイ・トポロジーを介してピアの間でのメッセージのルーティングを可能にするように配置された、オーバーレイ・トポロジーと、を含むネットワーク・オーバーレイ・トポロジーを提供し得る。
【発明を実施するための最良の形態】
【０００９】
図１は、Ｐ２Ｐオーバーレイ・トポロジー（単にオーバーレイと呼ぶ）に構造化されるピア１２の代表的な集団を含むネットワークトポロジー１０を示す。
【００１０】
オーバーレイは、効果的には他のネットワークの上に構築されるネットワークである。オーバーレイ内のノード／ピアは、仮想または論理リンクを用いて接続され、それらの各々は、通常、多くの物理リンクを介して、基礎ネットワーク内の経路に対応する。
【００１１】
図１のネットワークトポロジー１０は、各々が１つまたは複数のピア１２を含む一連のサブネット（サブネットワーク）１４、１６、１８、２０、２２、２４および２６と、インターネット２８とを含む。サブネット１８および２２は、グローバルアドレス空間の一部であるため、パブリックＩＰアドレスを用いる。サブネット１４、１６、２０、２４および２６は、各サブネットとインターネット２８との間にＮＡＴ（ネットワークアドレス・トランスレータ）３０が配置されているため、プライベートＩＰアドレスを用いる。サブネット２４および２６は、単一のＮＡＴ３０を共有する。サブネット２０は、２つのＮＡＴ３０がサブネット２０およびインターネット２８の間に配置されたカスケーディングＮＡＴ配置を示す。
【００１２】
ＮＡＴを介したネットワーク内のピア間接続の確立は、一般的にＮＡＴトラバーサルと呼ばれる。ＮＡＴ動作に基づく多数の公知のＮＡＴトラバーサルプロトコルは：Ｓｉｍｐｌｅ  Ｔｒａｖｅｒｓａｌ  ｏｆ  ＵＤＰ  ｏｖｅｒ  ＮＡＴｓ（ＳＴＵＮ）；Ｔｒａｖｅｒｓａｌ  Ｕｓｉｎｇ  Ｒｅｌａｙ  ＮＡＴ（ＴＵＲＮ）；Ｓｅｓｓｉｏｎ  Ｂｏｒｄｅｒ  Ｃｏｎｔｒｏｌｌｅｒ（ＳＢＣ）；およびＵＤＰ  ｈｏｌｅ  ｐｕｎｃｈｉｎｇを含む。ＮＡＴ制御に基づく多数の公知のＮＡＴトラバーサルプロトコルは：Ｒｅａｌｍ−Ｓｐｅｃｉｆｉｃ  ＩＰ（ＲＳＩＰ）；ＮＡＴ  Ｐｏｒｔ  Ｍａｐｐｉｎｇ  Ｐｒｏｔｏｃｏｌ；およびＵｎｉｖｅｒｓａｌ  Ｐｌｕｇ  ａｎｄ  Ｐｌａｙ（ＵＰｎＰ）を含む。複数の異なるプロトコルを組み合わせたＮＡＴトラバーサルプロトコルは、Ｉｎｔｅｒａｃｔｉｖｅ  Ｃｏｎｎｅｃｔｉｖｉｔｙ  Ｅｓｔａｂｌｉｓｈｍｅｎｔ（ＩＣＥ）と呼ばれる。
【００１３】
本発明の実施形態は、ピア間通信を容易化するための種々のオーバーレイおよび関連する方法を説明する。
【００１４】
部分メッシュ・オーバーレイ／接続
図２は、代表的な部分メッシュ・オーバーレイ５０を示しており、この例では、各ピア１２は、制限的なフィルタリングポリシーを有するＮＡＴ（図示せず）の裏に配置されている。一般に、オーバーレイ５０内の各ピア１２は、いくつかの他のピア１２と接続（実線で示す）を確立し、ピア１２間接続の部分メッシュを確立する。部分メッシュ・オーバーレイ５０を生成すると、次に、ピア１２は確立された接続を用いてメッセージをルーティングする。一度、確立されると、少なくとも１つのピアによって望まれる限り、接続が保持される。接続の保持は、通常、何らかのメッセージの周期的な交換を必要とする。
【００１５】
部分メッシュ・オーバーレイ５０は、各ピアが２つの隣のピアとだけ接続されるリング・オーバーレイと、全てのピアの対が接続される全メッシュ・オーバーレイとのバランスをとる一方で、ＮＡＴを通してメッセージを送ることを可能にする。
【００１６】
ピアがネットワークに参加および退出する際に、時々、接続がオーバーレイ５０に付加されたり、そこから除去されたりする必要がある。新規の接続を付加することは、通常、新規の接続に関する信号が既存の接続に沿ってルーティングされることを必要とする。例えば、図２を見ると、ピア１２Ｘがピア１２Ｙへの接続をセットアップしたいものとする。ピア１２Ｙは制限的フィルタリングポリシーを有するＮＡＴ３０の裏にあるため、ピア１２Ｘは、接続要求をピア１２Ｙに直接的に（線５２）送信できない。この制限を解決するために、ピア１２Ｘは接続要求をオーバーレイ５０内の既存の接続を介して（点線５４）送信する。接続要求がピア１２Ｙに配信された後、ピア１２Ｘおよび１２Ｙは、標準ＮＡＴトラバーサル技術を用いて接続を開始および保持する。
【００１７】
汎用オーバーレイ・トポロジーは、メッセージがあらゆる任意のピアの対の間で送信され得ることを確実にするために、最小の接続セットを用いる。用いられる特定の数の接続は、ネットワーク内のピア間でメッセージをルーティングするために用いられる機構の種類に基づく。一般に、より多くの接続が存在する場合、より少ないホップでルーティングを実行可能である。しかしながら、各接続はリソース（メモリ、ピア自体の上でのコンピューティングサイクル、基礎ネットワーク上の帯域幅等）を消費するため、ルーティングの効率を低下させずに接続の数を最小化させることは、オーバーレイ設計の要因である。
【００１８】
ルーティング設計に基づいて生成された接続に加え、アプリケーション特有の問題に関してさらなる接続が有用であり得る。例えば、図２に実線で示された接続は、ネットワーク５０内のあらゆる任意のピア対間でのメッセージのルーティングが可能であり、かつ適度に効率的であることを両方共に確実にするように生成され得る。しかしながら、ピア１２Ｘおよび１２Ｙが、大量のメッセージを交換する必要がある場合、または一定間隔で／頻繁にメッセージを交換する必要がある場合、それらの交換を最適化するために新規の接続５２を付加することが有益であり得る。
【００１９】
代表的なピア
図３は、図１のサブネット１４の例示的な配置８０を示す。サブネット１４は、いずれもＮＡＴ３０の裏に配置されたピア１２の集団を含む。この種類のトポロジーでは、サブネット１４内の１つまたは複数のピア１２が、サブネット１４内の他のピア１２の代わりに動作する代表的なピア１２Ｒとして「選出され」るか、「指名され」得る。
【００２０】
配置８０は、２種類の接続：（１）ＮＡＴ３０を横断する代表的なピア１２Ｒの間の接続（点線８６を参照）と、（２）ＮＡＴ３０を横断しないサブネット１４内の代表的なピア１２Ｒおよびローカルピア１２の間の接続（点線９０を参照）とを生成する。
【００２１】
構造化されたメッセージルーティング／対称的関心
構造化されたスキームは、ルーティングに活用され得る接続パターンを生成する。例えば、構造化されたメッセージルーティングは、ＤＨＴ（分散ハッシュテーブル）ルックアップスキームのルーティングアルゴリズムへの「変換」に基づいてもよい。特に、データアイテムを調べるためのＤＨＴスキームは、データを保持するピアへのルーティングのスキームと見なされる。ルーティングが検索されるノードのピア識別子に基づく場合、プロセスは、ルーティングアルゴリズムと考えることが可能である。
【００２２】
より詳細には、（図２を参照して説明されたような）１パターンの接続を仮定すると、これら接続の種々のパターンが可能である。オーバーレイ５０は、ピア１２が他のピア１２を呼び出し、ピア（またはユーザ）のそのステータスを発行し、およびオーバーレイ５０内の別のピアへの接続を生成することを可能にする。構造化されたスキームは、ピア１２間の接続パターンが、ピア間でのメッセージのルーティングの際に活用されることを可能にする。
【００２３】
接続トポロジーの基本的な構造は、オーバーレイ５０のルーティング機構を支援するべきである。例えば、ＤＨＴは、固有の識別子を各ピア（例えば、ピアの属性：ネットワークアドレス、製造番号、ＭＡＣ（媒体アクセス制御）アドレス等、に基づいて）に割当てることによって、構造化されたスキームの基礎として用いることが可能である。ピアの属性は、一般に、固有のピア識別子を生成するために、（ＭＤ５［メッセージダイジェストアルゴリズム  ５］、ＳＨＡ−１［安全ハッシュアルゴリズム］等の）１方向ハッシュ関数を用いて「ハッシュ化」される。
【００２４】
１つの例では、固有のピア識別子は、ピアを概念的／仮想的リング上に配置するために用いられ得る。そして各ピアは、リングの周りに時計回りに種々の位置に配置されたピアへの接続を保持する。この構造化された接続スキームでは、ピア（Ｑ）へのメッセージがリング内のその位置に送信され、中間ピア（Ｉ）が、そのメッセージを中間ピア（Ｉ）の接続テーブル内のピア（Ｑ）に最も近いピア（Ｓ）に転送することが可能である。
【００２５】
ＤＨＴベース接続トポロジーは、ネットワーク内のリソースをインデックス付けおよび配置するために必要な努力を分散させるために生成される。ＶｏＩＰ（Ｖｏｉｃｅ  Ｏｖｅｒ  ＩＰ）通信オーバーレイ・ネットワークの場合、ピアは通常、電話またはコンピュータ上で動作する電話アプリケーションであり、リソースは通常、互いに通信を望む人々である。システム内の各リソースは、通常、１つまたは複数の識別子（例えば、電話番号または記憶されている住所）が割当てられる。ＤＨＴベースオーバーレイ・ネットワークは、固有のリソース識別子を作成するために、（上述したように）固有のピア識別子を生成するために用いられた同一の１方向ハッシュ関数を効率的に「再利用」することが可能である。そしてオーバーレイ５０内の各ピア１２は、利用可能なリソースに関する情報を記憶するための責任の一部を負う。例えば、コードベースのＤＨＴオーバーレイでは、ピアは、そのリソース識別子が最も近いが自分の識別子を超えないリソースに関する情報を保持する責任を負う。それゆえに、ユーザの記憶されている住所のハッシュがＸである場合、そのユーザに関するコンタクトおよびステータスの情報は、そのピア識別子が最も近いがＸを超えないピアによって記憶される。
【００２６】
オーバーレイ・ネットワーク５０によって用いられるルーティング構造に加え、接続トポロジーを確立する際に、対称的関心と呼ばれる特性がさらに考慮される。接続スキームは、仮にピア１２Ｘが他のピア１２Ｙへの接続を望む場合、ピア１２Ｙもピア１２Ｘへの接続を望むという対称的関心を示す。ＮＡＴ３０を介した接続は双方向的であり、ピア１２Ｘおよび１２Ｙの両方が、接続を確立し保持するためのメッセージ送信のオーバーヘッドを招くので、対称的関心は接続スキームの有用な特性である。
【００２７】
図４を見ると、構造化された接続パターン９２が示されており、仮想的リング９８の周りに時計回り９４および反時計回り９６の両方の配置で配置され、指数関数的に増大する距離に配置されたピア１２との接続を各ピア１２が保持するため、対称的関心を示す。特に、パターン９２は、単一のノード（即ち、ピアＰＡ）の視点から接続トポロジーを示す。ＰＡに対するピア識別子を０と仮定すると、ハッシュテーブルは、識別子：２０、２１、２２、・・・、２ｎ／２、・・・２ｎ−２、２ｎ−１を有する各ピアのアドレスを含み得る。この種類の配置では、ピアＰＡは、その接続テーブルにピアＰＢを含み、それにより、対称的関心を示す。
【００２８】
この方法でピア間の接続が確立された場合、各ピアは、「近接の」ピアへの接続をより多く有し、「遠隔の」ピアへの接続をより少なく有する。用語「近接の」および「遠隔の」は、（上述したように）オーバーレイ・ネットワークによって割当てられた固有のピア識別子に基づいており、地理的、物理的な近接性または物理的ネットワークホップ数を反映する必要はない。１つのピア（即ち、ピアＰＡ）の視点から、構造化された接続パターン９２は、より多くの接続が下側半円ＳＬ内に存在し、より少ない接続がリング９８の上側半円ＳＵ内に存在するという事実によって、対称的関心を図式的に示す。
【００２９】
ネットワークの結合
図３を見ると、ピア１２Ａは、最初はネットワーク全体の一部でない。ピア１２Ａのネットワークへの結合を可能にするプロセス１００が、図５のフローチャートに関連して説明される。
【００３０】
ステップ１１０：ネットワーク内の他のピア（ピア１２Ｂと名付けられている−図１３参照）を検出およびコンタクトする。ピア１２Ａは、マルチキャスティングまたはブロードキャスティング１１２、仲間リスト１１４、手動構成１１６および導入１１８を用いて他のピアの検出およびコンタクトを達成可能である。これらの方法は、さらなる詳細が以下で説明される。
【００３１】
ステップ１５０：ＮＡＴトラバーサルプロトコルを用いて、ピア１２Ａと検出された他のピア１２Ｂとの間の接続を確立する。
【００３２】
マルチキャスティング／ブロードキャスティング１１２では、ピア１２Ａは「こんにちは、誰かそこにいますか？」というマルチキャスト／ブロードキャストのメッセージを送信し、現在オーバーレイ・ネットワーク内にあるいずれかのピア（即ち、ピア１２Ｂ）が応答し得る。応答は、ピア１２Ａが１つ（または複数）の他のピアとコンタクトし、オーバーレイに承認を要求することを可能にする情報を含む。代替的に、現在ネットワーク内にある（ピア１２Ｂを含む）ピア１２は、存在を宣伝するメッセージ（即ち、宣伝メッセージ）を周期的にマルチキャスト／ブロードキャストしてもよく、ピア１２Ａがマルチキャスト／ブロードキャストのメッセージを聴くことによって他のピアを発見することが可能になる。宣伝メッセージは、ピア１２Ａが１つ（または複数）の他のピアとコンタクトし、オーバーレイに承認を要求することを可能にする情報も含み得る。
【００３３】
ピア１２Ａが以前にネットワークの一部であったが、一定期間の間、切断されていた（例えば、ＶｏＩＰ電話がネットワークから取り外された、または電源が切られた）場合、仲間リスト１１４が用いられ得る。ピア１２Ａは、切断する際にいくつかのピア１２のアドレスおよびポート情報を記憶するように構成されてよく、ネットワークに再結合することを望む際に自分の仲間リスト上のピア１２へのコンタクトを試みる。ピア１２Ａは、少なくとも１つの他のピア１２がコンタクト可能で、まだネットワークの一員である場合、ネットワークに再結合することが可能である。
【００３４】
手動構成方法１１６は、ネットワーク内の他のピア１２のうちの１つのアドレスおよびポート情報を用いてピア１２Ａを構成することを含む。アドレスおよびポート情報は、（該当する場合に）ＮＡＴ３０が割当てるピア１２のパブリックＩＰアドレスおよびポートを示す。ピア１２Ａが、フィルタリング動作（アドレス制限）を備えたＮＡＴ３０の裏にある場合、例えば、ピア１２Ａもピア１２Ｂのアドレスおよびポート情報を用いて構成される。
【００３５】
導入方法１１８は、ノードにパブリックＩＰアドレスおよび、場合により、ＤＮＳ（ドメイン名サービス）エントリを示すブートストラップ・サーバ５２（図３参照）の利用を含む。ブートストラップ・サーバ５２は、それ自体がネットワークの一部である必要はないが、新規のピアをネットワーク内に導入／ブートストラップするために用いられる。例えば、サブネット１４は、サーバ５２への接続８８を保持するために、ネットワーク内のピア（ピア１２Ｂまたは１２Ｒ等）のうちの１つを選出／指名し得る。ピア１２Ａがサーバ５２にコンタクトすると、ピア１２Ａは、選出されたピアのアドレスおよびポート情報（即ち、マッピングされたＩＰアドレス）が与えられ、サーバ５２は、オーバーレイへの承認を可能にするために、ピア１２Ａのアドレスおよびポート情報を選出されたピアに転送する。
【００３６】
ピアツーピア通信
図６は、本発明の実施形態による、ネットワークアドレス・トランスレータ（ＮＡＴ）の存在下でピアツーピア（Ｐ２Ｐ）ネットワーク内でのピア間通信を可能にするための方法２００を示すフローチャートである。方法２００が含むのは：
ステップ２１０：例えば、１方向ハッシュ関数２１５を用いて、Ｐ２Ｐネットワーク内の複数のピアの各々に固有のピア識別子を割当てる。
【００３７】
ステップ２２０：各ピアの固有のピア識別子に基づいて、各ピアを複数のピアのサブセットに構造化された接続パターンで接続するオーバーレイ・トポロジーを確立し、複数のピアの各々が、（例えば、仮想的リング２２５の周りに時計回りおよび反時計回りの両方で指数関数的に増大する距離で）近接のピアへのより多くの接続および遠隔のピアへのより少ない接続を有する。
【００３８】
ステップ２３０：確立されたオーバーレイ・トポロジーを介してメッセージをルーティングする（即ち、接続トポロジーが、メッセージルーティングプロセス／アルゴリズムに合致する２４０）。
【図面の簡単な説明】
【００３９】
【図１】本発明の実施形態による、オーバーレイ・トポロジーに構造化される複数のピアを有するピアツーピア・ネットワークの概略図である。
【図２】本発明の実施形態による、部分メッシュ・オーバーレイ・トポロジーの概略図である。
【図３】本発明の実施形態による、ピア承認プロセスを示すための図１のネットワークの一部の概略図である。
【図４】本発明の実施形態による、構造化された接続パターンを有するオーバーレイ・トポロジーの概略図である。
【図５】本発明の実施形態による、新規のピアをネットワークに付加するプロセスを示すフローチャートである。
【図６】本発明の実施形態による、ネットワーク内のピアの間の通信を可能にするプロセスを示すフローチャートである。
【図１】
2008206160.tif 000003
【図２】
2008206160.tif 000004
【図３】
2008206160.tif 000005
【図４】
2008206160.tif 000006
【図５】
2008206160.tif 000007
【図６】
2008206160.tif 000008
【外国語明細書】
2008206160.tif 000009
2008206160.tif 000010
2008206160.tif 000011
2008206160.tif 000012
2008206160.tif 000013
2008206160.tif 000014
2008206160.tif 000015
2008206160.tif 000016
2008206160.tif 000017
2008206160.tif 000018
2008206160.tif 000019
2008206160.tif 000020
2008206160.tif 000021
2008206160.tif 000022
2008206160.tif 000023
2008206160.tif 000024
2008206160.tif 000025
2008206160.tif 000026