"ピアツーピアネットワークのノードで、第1のコンテンツを通知する第1のメッセージを受信するステップと、前記ノードにより前記第1のメッセージに基づいてテーブルの中に第1のキーを格納するステップであって、前記第1のキーが第1のノード情報および第1のコンテンツ情報を表し、前記第1のノード情報が、前記第1のコンテンツを通知する第1のノードを識別し、前記第1のコンテンツ情報が前記第1のコンテンツを識別する、ステップと、前記ノードにより前記テーブルの中に複数の第1の変形キーを格納するステップであって、前記複数の第1の変形キーの各々が前記格納された第1のキーの変形である、ステップとを含む方法。第1のキーを格納する前記ステップが、前記第1のコンテンツ情報の機能に基づいてビットシーケンスを決定するステップを含み、前記ビットシーケンスがキーのプレフィックスを表す第1のビット列および前記第1のコンテンツを表す第2のビット列を含み、複数の第1の変形キーを格納する前記ステップが、前記第1のビット列のサブセットを変形して前記複数の第1の変形キーの各々を生成するステップを含む、請求項1に記載の方法。第1のキーを格納する前記ステップが、前記第1のキーに関連する前記第1のメッセージの特性情報を格納するステップをさらに含み、複数の第1の変形キーを格納する前記ステップが、前記複数の第1の変形キーの前記各々との関連で、前記第1のキーとの関連で格納された前記第1のメッセージの前記特性情報を格納するステップをさらに含み、前記ノードに関連した情報が、前記第2のメッセージに関連するノードのインターネットサービスプロバイダ、前記第2のメッセージに関連する前記ノードの名前、前記第2のメッセージに関連する前記ノードのアドレス、および前記第2のメッセージに関連する前記ノードのポートのうちの少なくとも1つを含み、前記コンテンツに関連した情報が、前記コンテンツの説明、前記コンテンツのタイプ、前記コンテンツのサイズ、前記コンテンツのポインタ、および前記第2のメッセージに関連する前記ノードに関連する格納位置のうちの少なくとも1つを含む、請求項1に記載の方法。前記ノードにより、第2のコンテンツを通知する第2のメッセージを傍受するステップであって、前記第2のメッセージが宛先アドレスを含む、ステップと、前記宛先アドレスに基づいて生成されたキーの中の前記第1のビット列が前記複数の第1の変形キーの1つの中の前記第1のビット列と一致する場合、前記複数の第1の変形キーの1つとの関連で、前記ノードにより前記第2のメッセージに関連する特性情報を格納するステップとをさらに含む、請求項3に記載の方法。前記宛先アドレスに基づいて生成された前記キーの中の前記第1のビット列が前記複数の第1の変形キーの1つの中の前記第1のビット列と一致しない場合、前記ノードにより前記第2のメッセージに基づいてテーブルの中に第2のキーを格納するステップであって、前記第2のキーが第2のノード情報および第2のコンテンツ情報を表し、前記第2のノード情報が、前記第2のコンテンツを通知する第2のノードを識別し、前記第2のコンテンツ情報が前記第2のコンテンツを識別する、ステップと、前記ノードにより前記テーブルの中に複数の第2の変形キーを格納するステップであって、前記複数の第2の変形キーの各々が前記格納された第2のキーの変形である、ステップとをさらに含む、請求項4に記載の方法。ピアツーピアネットワークの中のコンテンツを局所化するための方法であって、前記ピアツーピアネットワークのノードにより要求メッセージを傍受するステップであって、前記要求メッセージがコンテンツに対する要求であり、前記要求メッセージが宛先アドレスを含む、ステップと、前記ノードにより前記宛先アドレスに基づいて第1のキーを決定するステップと、前記ノードにより前記第1のキーおよびテーブルに基づいてノードのリストを決定するステップであって、前記テーブルが複数のエントリを含み、各エントリがキーおよび変形キーのうちの1つを含み、少なくとも1つのキーが通知メッセージに基づき、前記キーがコンテンツ情報を表し、前記キーがノード情報を表す関連値を有し、前記ノード情報が、コンテンツを通知するノードを識別し、前記コンテンツ情報が前記コンテンツを識別し、各変形キーが前記キーのうちの1つの変形である、ステップと、前記ノードにより前記要求メッセージの送信者に応答メッセージを送信するステップであって、前記応答メッセージが前記ノードのリストを含む、ステップとを含む、方法。少なくとも1つのキーが前記コンテンツ情報の機能に基づいたビットシーケンスを含み、前記ビットシーケンスが、プレフィックスを表す第1のビット列と前記通知メッセージに関連するコンテンツを表す第2のビット列とを含み、少なくとも1つの変形キーが前記少なくとも1つのキーの前記第1のビット列の変形されたサブセットを含み、前記テーブルの少なくとも1つのエントリが特性情報をさらに含み、前記特性情報がノードに関連した情報およびコンテンツに関連した情報を含む、請求項6に記載の方法。ノードのリストを決定する前記ステップが、前記テーブル内のどのエントリが、前記第1のキーと一致するキーまたは変形キーを有するかを判定するステップと、前記判定されたエントリに関連するノードが前記要求されたコンテンツを示す特性情報を有するように、前記判定されたエントリから前記ノードのリストを生成するステップと、前記ノードのリストが前記要求されたメッセージの前記送信者に関連する前記ネットワークに関連するノードのみを含むように、前記ノードのリストにフィルタをかけるステップとを含む、請求項7に記載の方法。テーブルを格納するように構成されたメモリと、第1のコンテンツを通知する第1のメッセージを受信するように構成されたプロセッサであって、前記第1のメッセージに基づいて前記テーブルの中に第1のキーを格納するように構成され、前記第1のキーが第1のノード情報および第1のコンテンツ情報を表し、前記第1のノード情報が、前記第1のコンテンツを通知する第1のノードを識別し、前記第1のコンテンツ情報が前記第1のコンテンツを識別し、前記プロセッサが前記テーブルの中に複数の第1の変形キーを格納するように構成され、前記複数の第1の変形キーの各々が前記格納された第1のキーの変形である、プロセッサとを含む、ピアツーピアネットワークのノード。プロセッサによって起動されると一連のステップを実行させるプログラムコードセグメントを含む持続性メモリであって、前記ステップが、第1のコンテンツを通知する第1のメッセージを受信するステップと、前記第1のメッセージに基づいてテーブルの中に第1のキーを格納するステップであって、前記第1のキーが第1のノード情報および第1のコンテンツ情報を表し、前記第1のノード情報が、前記第1のコンテンツを通知する第1のノードを識別し、前記第1のコンテンツ情報が前記第1のコンテンツを識別する、ステップと、前記テーブルの中に複数の第1の変形キーを格納するステップであって、前記複数の第1の変形キーの各々が前記格納された第1のキーの変形である、ステップとを含む、持続性メモリ。一実施形態は、ピアツーピアネットワークの中のコンテンツを局所化するための方法を含む。方法は、第1のコンテンツを通知する第1のメッセージを受信することを含む。第1のメッセージに基づいてテーブルの中に第1のキーを格納する。第1のキーは第1のノード情報および第1のコンテンツ情報を表す。第1のノード情報は第1のコンテンツを通知する第1のノードを識別し、第1のコンテンツ情報は第1のコンテンツを識別する。テーブルの中に複数の第1の変形キーを格納する。複数の第1の変形キーの各々は格納された第1のキーの変形である。別の実施形態は、ピアツーピアネットワークの中のコンテンツを局所化するための方法を含む。方法は要求メッセージを傍受することを含む。要求メッセージはコンテンツに対する要求であり、要求メッセージは宛先アドレスを含む。宛先アドレスに基づいて第1のキーを決定する。第1のキーに基づいたノードのリスト、およびテーブルを決定する。テーブルは複数のエントリを含む。各エントリはキーおよび変形キーのうちの1つを有する。少なくとも1つのキーは通知メッセージに基づいている。キーはノード情報およびコンテンツ情報を表す。ノード情報はコンテンツを通知するノードを識別し、コンテンツ情報はコンテンツを識別し、各変形キーはキーのうちの1つの変形である。要求メッセージの送信者に応答を送信する。応答メッセージはノードのリストを含む。本発明は、本明細書において下記に与えられた詳細説明および添付図面からより完全に理解されるようになる。添付図面では同じ構成要素は同じ参照数字によって表される。添付図面は説明のためのみに与えられ、したがって、本発明を限定するものではない。これらの図は、ある特定の例示的な実施形態において使用される方法、構造および/または材料の一般特性を示し、下記に提供される明細書を補足するものであることに留意されたい。しかしながら、これらの図面は、縮尺通りではなく、任意の所与の実施形態の精密な構造特性または性能特性を正確に反映していない場合があり、例示的な実施形態によって包含される値または性状の範囲を画定するか、または限定するものと解釈すべきでない。例えば、分子、階層、領域および/または構造的な構成要素の相対的な厚さおよび位置は、明確にするために削減されるか、または誇張される場合がある。さまざまな図面における同様または同一の参照番号は、同様または同一の構成要素または特徴の存在を示すものである。例示的な実施形態はさまざまな修正形態および代替の形態になることができるが、その実施形態が図面において例として示され、本明細書において詳細に説明される。しかしながら、例示的な実施形態を開示された特定の形態に限定するものではなく、これに反して、例示的な実施形態は、特許請求の範囲の範囲に入るすべての修正形態、均等物、および代替物をカバーするものであることを理解すべきである。図の説明全体を通して、同じ番号は同じ構成要素を参照する。例示的な実施形態をより詳細に説明する前に、いくつかの例示的な実施形態は、流れ図として描写される処理または方法として記載されることに留意されたい。流れ図は動作を連続的な処理として記載するが、多くの動作は、並行して、共にまたは同時に実行することができる。加えて、動作の順序は再調整することができる。処理は、それらの動作が完了すると終了することができるが、図には含まれていない別のステップを有する場合もある。処理は、方法、機能、手順、サブルーチン、サブプログラムなどに対応することができる。下記に説明される方法は、そのいくつかは流れ図によって示されるが、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組合せによって実装することができる。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードの中に実装されると、必要なタスクを実行するプログラムコードまたはコードセグメントは、記憶媒体などの、マシンまたはコンピュータの可読媒体の中に格納することができる。プロセッサは必要なタスクを実行することができる。本明細書に開示された特定の構造的および機能的な詳細は、本発明の例示的な実施形態を説明する目的のために表されるものにすぎない。しかしながら、本発明は多くの代替の形態で具現化することができ、本明細書において説明される実施形態のみに限定するものと解釈すべきでない。第1、第2などの用語は、本明細書においてさまざまな構成要素を記載するために使用する場合があるが、これらの構成要素はこれらの用語によって限定されるべきでないことが理解されよう。これらの用語は、1つの構成要素を別の構成要素から区別するためだけに使用される。例えば、例示的な実施形態の範囲から逸脱することなく、第1の構成要素は第2の構成要素と呼ばれてもよいし、同様に、第2の構成要素は第1の構成要素と呼ばれてもよい。本明細書では、用語および/またはは、関連する列挙された項目のうちの1つまたは複数のありとあらゆる組合せを含む。構成要素が別の構成要素に接続または結合すると呼ばれる場合、その他の構成要素に直接接続もしくは結合してもよいし、または介在する構成要素が存在してもよいことが理解されよう。対照的に、構成要素が別の構成要素に直接接続または直接結合すると呼ばれるとき、介在する構成要素は存在しない。構成要素の間の関係を説明するために使用される他の単語は、同じように解釈すべきである例えば、間対直接の間、近傍対直接の近傍。本明細書において使用される述語は、特定の実施形態を説明する目的のためだけであり、例示的な実施形態を限定するものではない。本明細書では、単数形a、anおよびtheは、文脈が明らかに他を示さないかぎり、複数形も含むものである。用語備える、備えている、含む、および/または含んでいるは、本明細書において、特徴、整数、ステップ、動作、構成要素、および/または構成部品の存在を指定するが、1つまたは複数の他の特徴、整数、ステップ、動作、構成要素、構成部品、および/またはそのグループの存在もしくは追加を排除しないことがさらに理解されよう。また、いくつかの代替の実装形態において、注記された機能/動作が図の中で注記された順序以外で起こる場合があることに留意されたい。例えば、連続して示された2つの図は、関与する機能/動作に応じて、実際には同時に実行される場合があるか、または時々逆の順序で実行される場合がある。他に定義されないかぎり、本明細書において使用される技術的および科学的な用語を含むすべての用語は、例示的な実施形態が属する技術の当業者によって一般に理解されるのと同じ意味を有する。用語、例えば、一般に使用される辞書で定義された用語は、関連技術の文脈内の意味と一致する意味を有すると解釈すべきであり、本明細書において明確にそう定義されないかぎり、理想化された、または過度に形式的な意味で解釈されないことがさらに理解されよう。例示的な実施形態の一部および対応する詳細説明は、ソフトウェアの用語、または、アルゴリズムおよびコンピュータメモリ内のデータビット上の動作の符号表現で提示される。これらの説明および表現は、それにより当業者が自分の仕事の本質を他の当業者に効果的に伝えるものである。アルゴリズムは、その用語が本明細書で使用されるように、かつそれが一般的に使用されるように、所望の結果に導く首尾一貫した順序のステップであると考えられる。ステップは、物理量の物理操作を必要とするステップである。通常、必要ではないが、これらの量は、格納、転送、結合、比較、およびその他の方法で操作することができる、光学的、電気的、または磁気的な信号の形を取る。主に共通使用の理由から、これらの信号をビット、値、要素、符号、文字、用語、数などとして参照することが時には便利であると証明された。以下の説明では、例示的な実施形態は、プログラムモジュールまたは機能プロセスが特定のタスクを実行し特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含むように実装することができ、既存のネットワーク構成要素で既存のハードウェアを使用して実装することができる、動作の動きおよび符号表現を参照して例えば、流れ図の形で記載される。そのような既存のハードウェアには、1つまたは複数の中央処理装置CPU、デジタルシグナルプロセッサDSP、特定用途向け集積回路、フィールドプログラマブルゲートアレイFPGAコンピュータなどが含まれ得る。しかしながら、これらおよび同様の用語のすべては、適切な物理量に関連付けられ、これらの量に適用される便利なラベルにすぎないことに留意されたい。特に断りのないかぎり、または説明から明白なように、処理または計算または算出または決定または表示などの用語は、コンピュータシステムのレジスタ内およびメモリ内で物理的、電子的な量として表現されたデータを操作し、コンピュータシステムのメモリまたはレジスタまたは他のそのような情報を格納、伝送または表示する装置内の物理的な量と同様に表現された他のデータに変換する、コンピュータシステムまたは同様の電子計算装置の動作および処理を参照する。また、例示的な実施形態のソフトウェア実装の態様は、通常何らかの形のプログラム記憶媒体上で符号化されるか、または何らかのタイプの伝送媒体を介して実装されることに留意されたい。プログラム記憶媒体は、磁気式例えば、フロッピディスクもしくはハードドライブまたは光学式例えば、コンパクトディスクリードオンリメモリ、すなわちCDROMであり得るし、リードオンリまたはランダムアクセスであり得る。同様に、伝送媒体は、ツイストワイヤペア、同軸ケーブル、光ファイバ、または、当技術分野で既知の他の何らかの適切な伝送媒体であり得る。例示的な実施形態は、任意の所与の実装形態のこれらの態様によって限定されない。用語ピアおよびノードは、本開示全体を通して区別なく使用される。一般に、ピアはピアツーピアネットワーク内の物理的なハードウェアを参照する。また、ピアはノードであり得る。しかしながら、ノードはより一般には、例えば、ピアツーピアネットワーク内のファイルの位置例えば、テーブル内のアドレスまたは参照の論理的なインスタンスも参照する場合がある。図2は、例示的な実施形態によるピアツーピアネットワーク18の概略図である。図2に示されたピアツーピアネットワーク18の中には、中央コンピュータ14は存在しない。示されていないが、ピア40はお互いに接続によってつながれていることを理解すべきである。図2はピアツーピアファイル共有ネットワーク18を示す。図2のネットワーク18は、集中型コンポーネントに依存してネットワークコンテンツを列挙するのではなく、分散ハッシュテーブルDHT19を使用してディレクトリデータベースをすべての参加クライアントに分散する。DHT19は、図2において、ネットワーク18のすべての態様を共につなぐ破線として表される。ファイル共有ネットワーク18は、第1のインターネットサービスプロバイダISP24および第2のISP26を含む。ISP24内には、ピア、ノードまたはユーザ40と呼ばれてもよい、さまざまなクライアントが存在する。さまざまなクライアント、ピアまたはユーザは、参照数字の後に文字を追加することにより、同じISP上の他のピアの中から区別される。第2のISP26もさまざまなピア42を有して示される。第1のISP24と第2のISP26はピアリングリンク28を介して共につなぐことができる。インターネット全体22が図2において示される。ISP24は、トランジットリンク30を介してインターネット全体22につなぐことができる。トランジットリンク30は、ISP26もインターネット全体22につなぐことができる。インターネット全体22上に位置するピアは、参照番号44によって識別される。ピア40および42と同じように、インターネット全体22上のピア44は少なくとも1つのISPに関連付けられる。しかしながら、インターネット全体22上のピア44に関連付けられたISPは示されていない。異なるISP24、26に関連付けられたピア40、42、44の間でファイルを共有するために必要とされるリソース例えば、ピアリングリンク28またはトランジットリンク30の数に起因して、可能なときはいつでも、異なるISP上に位置するピア間でファイルを共有するよりむしろ、特定のISP内のピアにお互いの間でファイルを共有させることが好ましい場合がある。矢印32は、ピア40a、40b、および40dがお互いの間でファイルを共有する、ファイル共有の好ましい方向を示す。ピア40a、40b、および40dのすべてはISP24上に位置している。ISP24内に位置しているピア40がISP24上に位置しているどのピアにも含まれていないファイルを要求する場面を作り出す、いくつかの状況が存在する場合がある。したがって、要求したコンテンツを取得するために、ピア40は、ISP26またはインターネット全体22のどちらかに位置するユーザからコンテンツを取得しなければならない。図3は、さまざまなISP24、26、インターネット全体22、およびコンピュータまたはネットワーク構成要素とも呼ばれるネットワークコンポーネントを示す概略図である。ネットワーク構成要素45は、図2に関して上記に示されたように、ネットワーク全体を通して分散することができる。例えば、集中型コンピュータ14をもたず、むしろDHT19を使用するようなファイル共有ネットワーク18などのピアツーピアファイル共有ネットワークにおいて、コンピュータまたはネットワーク構成要素45は、ファイル共有ネットワーク全体を通して分散することができる。あるいは、ネットワーク構成要素45は、接続46を介して、さまざまなISP24および26、ならびにインターネット全体22とつなぐことができるにすぎない。図3に示されたように、ネットワーク構成要素45は、接続50を介してデータベース52につながれた1つまたは複数のマイクロプロセッサ48を含むことができる。また、ネットワーク構成要素45は、接続55を介して別のデータベース53に動作可能なようにつなぐことができる。下記でより詳細に説明されるように、データベース53は検索可能であり、どのISPが所与のピアに関連付けられているかなどの情報をネットワーク構成要素45に提供することができる。本発明のいくつかの実施形態では、ネットワーク構成要素45は、ネットワークにつながれた既存のシステムコンポーネントであり得る。既存のネットワーク構成要素45は、本明細書に記載された機能を実行するようにプログラムすることができる。例えば、既存のネットワークは、本明細書に記載された機能を実行するようにプログラムされたネットワークコンポーネントを含むことができる。他の実施形態では、ネットワーク構成要素45は、既存のネットワークコンポーネントではなく、むしろネットワークに追加され、本明細書に記載された機能を実行するように構成することができる。例示的な実施形態は2つの処理に従って動作する。第1の処理は、すべてのピア通知メッセージを傍受し、DHT19を更新することを含む。当業者が知っているように、ピア通知メッセージは、ファイルもしくはコンテンツ、および/またはファイルもしくはコンテンツのある部分を保持することを伝えるために、ピアによって使用される。例えば、ピア40はネットワーク構成要素45を含むことができる。マイクロプロセッサ46はピアメッセージを傍受するように構成することができる。ピアメッセージは、ピアがファイルまたはその一部を保持することを分散ハッシュテーブルDHTの中に発行するピア例えば、ピア40からであり得る。ISP24とISP26がしばしばお互いと通信し、したがって、ピアリングリンク28は、ISP24を別のISPとリンクする一般のトランジットリンクより、大きな容量を有するか、または低いコストで動作できる可能性がある。知られているように、単一の物理エンティティは、多くの別個の論理識別情報で、何度もポイントツーポイントネットワークに参加することができる。これらの論理識別情報はシビルと呼ばれる場合がある。論理識別情報は、例えばハッシュ関数を使用して計算された、ユニークな識別子またはキーを有することができる。ハッシュ関数は、例えばノードおよび/またはコンテンツに関連する情報上で実行することができる。例示的な実施形態では、ノードまたはピア例えば、ピア40aはユニークな識別子またはキーを有することができ、ファイルまたはコンテンツはユニークな識別子またはキーを有することができる。知られているように、インターネットサービスプロバイダISPのスケールに関連するクライアント間で直接交換されるトラフィックを捕捉することは、不可能ではないにしても一般に実行困難である。実際には、データ収集は、各ISPルータで何十万ものフィルタリング規定のセットアップを必要とするはずである。知られているように、ISPルータはこの機能をもっていない。したがって、例示的な実施形態は、ファイルまたはコンテンツのユニークな識別子またはキーに近い識別子またはキーを有するいくつかの論理識別情報を、DHT19の中に挿入する。次いで、論理エンティティはピア通知メッセージを傍受するために使用される。第2の処理は、ファイルまたはコンテンツを保持するピアのリストを要求するメッセージを傍受し、ローカルのピアのセットまたはノードのリストでメッセージに応答することを含むことができる。ピア通知メッセージに関して上述したように、論理エンティティは、DHTに沿ったいくらか反復型の調査で、ファイルを保持するピアのリストを要求するメッセージを傍受することもできる。DHTは、これらのコンテンツ要求に応答するために使用される。すなわち、これらの処理用エンジンは各ノードにあるDHTクライアントである。知られているように、DHT19は、ディレクトリデータベースをすべての参加クライアントまたは参加ノードに分散させるために使用される。知られているように、ディレクトリデータベースは、ピアツーピアネットワーク内のすべてのピア例えば、コンピュータまたは物理マシン、ならびに、各ピア上に位置するすべてのコンテンツ例えば、ファイル、ビデオ、オーディオなどのリストである。最初に、DHT19は、物理的なノードもしくはピアへの参照図4A参照、および/または、ファイルもしくはコンテンツへの参照図4B参照だけを保持することができる。上述したように、これらの参照は論理識別情報として保持される。論理識別情報は、例えばハッシュ関数を使用して計算されたユニークな識別子またはキーを有することができる。ファイルまたはコンテンツは、必ずしもファイルまたはコンテンツへの参照を有するDHT19を含むノードではないノード上に格納することができる。例えば、ファイルまたはコンテンツが格納されたノードは、コンテンツ上でハッシュ関数を実行することができる。次いで、ノードは、ハッシュされたコンテンツの結果に近い論理識別情報を有するノードを決定する。次いで、ファイルまたはコンテンツが格納されたノードは、よく知られている方法を使用して、ハッシュされたコンテンツの結果に近い論理識別情報を有するノードに知らせることができる。次いで、下記に記載される方法はファイルまたはコンテンツに関連付けることができる。図4Aは、物理的なノードまたはピアへの参照だけを含むDHT例えば、DHT19を示す。知られているように、各々のノードまたはピアは、例えば、通知メッセージまたはpingメッセージの結果としてDHT19に追加される。例えば、ピアツーピアネットワーク用の既知のファイル共有システムBITTORRENTでは、announce_peerAメッセージが使用される。ここで、Aはピアについての何らかの情報例えば、アドレスおよびポートである。BITTORRENTファイル共有システムでは、ネットワークへの参加を望むピアは、announce_peerAメッセージをネットワーク内のピアのサブセットに送信する。例えば、BITTORRENTファイル共有システムのピアは、3つの最も近いピアを含むルーティングテーブルを有することができる。通知するピアAは、find_peerhashAメッセージを3つの最も近いピアに送信することができる。各ピアは、自分のルーティングテーブルの中でノード識別子Aに近いピアを検索することができる。ピアは、例えば、メッセージを使用して検索からのピアを、通知するピアAに返す。この通知処理は、hashAに最も近いピアが見つかるまで、繰り返し起こる可能性がある。hashAに最も近いピアが見つかると、通知するピアAは、announce_peerAメッセージをhashAに最も近いピアに送信することができる。上述したように、受信するピアは、通知するピアを、受信するピアと関連するDHT19に追加することができる。知られているように、受信するピアはハッシュ関数を使用して、通知するピア用のユニークな識別子またはキーを決定することができる。例えば、ハッシュ関数は、通知するピアについての情報を入力として取ることができる。入力情報は、例えば、上記BITTORRENTファイル共有システムの例からのA例えば、アドレスおよびポートであり得る。ハッシュ関数の出力はビットシーケンスであり得る。図4Aにおいてhash_0およびhash_500によって表されたビットシーケンスは、nビットの長さ例えば、n=160であり得る。理解されるように、ハッシュ関数から2n個の別個の出力がある。したがって、2n個のノード論理または物理を識別する2n個のエントリが、DHT19の中に存在することができる。知られているように、別個のノードの数は限定され得るので、比較的大きな数値的な違いで各々のノードまたはピアにビットシーケンスを割り当てるハッシュ関数を使用することにより、各ノードを論理的に分けることは可能であり得る。次いで、受信するピア例えば、ノード40aは、<キー、値>のペアで通知ピア例えば、ノード40dを、受信するピアのDHT19に追加することができる。ここで、キーは上述したハッシュ関数の結果であり、値はDHT19のエントリに関する何らかの情報である。例えば、値は、ノードの標識または名前、下記でより詳細に説明されるネットワークについての情報またはコンテンツについての情報であり得る。図4Aは、hash_0およびhash_500それぞれについて、node_ID=computer_1およびnode_ID=computer_2の値を示す。上記および下記で記載されるように、例示的な実施形態は、値がブランクで、キー例えば、ハッシュされたビットシーケンスのみが任意の必要な情報を含むことができるように、<キー、値>のペアを格納することができる。例えば、ピア、または下記に記載されるようにコンテンツに基づいてハッシュされたキーであるキーは、例えば、データベース52および/またはデータベース53に格納された別のテーブル用の検索値として使用することができる。受信するピアは、すべての受信された通知メッセージ用の情報を格納することができない。例えば、知られているように、BitTorrentInc.に登録されたBITTORRENT商標ファイル共有システムは、当技術分野でKademliaとして知られているDHT19を使用する。Kademliaにおけるハッシュ関数は、ビット排他論理和XORがノード間の論理的な距離を決定するように、ノード用の識別子またはキーを出力する。例えば、Kademliaにおいて、2つの識別子またはキー、aおよびb例えば、図4Aからのhash_0およびhash_500が与えられると、Kademliaはそれらの間の距離をそれらのビット排他論理和として定義する。Kademliaのピアは、その識別子またはキーの0<i<160ビットの各々用のノード、ピアのDHT内で自分から2^i<d<2^i1のXOR距離を有するピアだけを格納することができる。図4Bは、物理的なノードまたはピアへの参照とコンテンツを識別するノードへの参照とのどちらも含むDHT例えば、DHT19を示す。知られているように、通知するピア例えば、ノード40dは、ピアが自分を通知するのと大体同じ方法でコンテンツを通知する。しかしながら、通知は、コンテンツの何らかの標識も含むことができる。例えば、上記からのBITTORRENTファイル共有システムの例を続けると、通知メッセージはannounce_peerA,Bであり得る。ここで、追加のパラメータBはコンテンツの標識である。知られているように、受信するピアは、上述したように受信するピアが通知されたピアを追加するのと大体同じ方法で、通知されたコンテンツを受信するピアのDHT19に追加することができる。しかしながら、受信するピアはコンテンツに関する情報も格納することができる。DHT19はコンテンツ自体を格納しない。一方、DHT19は、コンテンツを参照するために有用であり得る何らかの情報を格納する。知られているように、ハッシュ関数は、ノードの標識例えば、ノードアドレスまたはコンテンツの表現を入力として取ることができる。次いで、ハッシュ関数は、例えば、ピアのアドレスまたはコンテンツのタイトルに基づいてビットシーケンスを出力する。上述したように、ピアは、KademliaのXOR距離を満足するピアからのコンテンツの通知だけを格納することができる。上述したように、<キー、値>のペアはDHT内に格納することができる。上述したように、キーはハッシュ関数からのビットシーケンスの出力であり得る。値は上述した通りであり得る。しかしながら、値は、ファイルまたはコンテンツに関する何らかの情報を含むこともできる。例えば、そのファイルまたはコンテンツを提供するピアのアドレス、値は、ファイルの名前、ファイルを格納するピア上のファイルのメモリ位置に対するポインタ、またはファイルのタイプ例えば、ビデオ、オーディオ、プログラムを含むこともできる。第1および第2の処理の各々は、図5~8に関して下記でより詳細に説明される。図5は、例示的な実施形態によりピアを通知するための方法の流れ図を示す。図6は、例示的な実施形態によりノード識別情報シビルを格納するための方法の流れ図を示す。図7は、例示的な実施形態によりコンテンツを通知するメッセージを傍受するための方法の流れ図を示す。図8は、例示的な実施形態によりコンテンツを要求するメッセージを傍受するための方法の流れ図を示す。図5に関連する方法のステップを説明しながら、図2および図3のネットワークへの参照がなされる。さらに、図4Aに示されたような例示的な分散ハッシュテーブルDHTへの参照もなされる。さらに、図5は、図4Aに関して上述したような物理的なピアでDHTを埋めることも示す。ステップS505において、物理的なピアまたはノード例えば、ノード40aおよび40bを通知するピアのメッセージを受信することができる。例えば、ピア通知メッセージは、図4Aに関して上述したように受信することができる。あるいは、および/または、上述したようにピア通知メッセージを受信することに加えて、当技術分野で知られているように、pingメッセージを受信することができる。pingメッセージは、pingメッセージを起動したピアまたはノードの何らかの標識を含むことができる。ステップS510において、物理的なピアまたはノードの標識が決定される。例えば、図4Aに関して上述したように、ピア通知メッセージは、ピアまたはノードについての何らかの情報を含むことができる。この情報は、例えば、ピアまたはノードに関連するアドレスおよび/またはポートであり得る。また、図4Aに関して上述したように、標識は、例えばノード識別子またはキー例えば、ハッシュされたキーであり得る。ステップS515において、物理的なピアまたはノードの標識に基づいて、ノード識別子またはキーが決定される。例えば、図4Aに関して上述したように、ハッシュ関数は、通知するピア用またはノード用のユニークな識別子またはキーを決定するために使用することができる。例えば、ハッシュ関数は、通知するピアについての情報を入力として取ることができる。ハッシュ関数の出力はビットシーケンスであり得る。図4Aにおいてhash_0およびhash_500によって表されたビットシーケンスは、nビット例えば、n=160であり得る。あるいは、ステップS510において標識がハッシュされたキーである場合、ステップS515は、ノード識別子またはキーとして、ハッシュされたキーを使用するように決定することができる。ステップS520において、DHT19は、ノード識別子またはキーを使用する物理的なピアまたはノードへの参照で埋められる。例えば、図4Aに関して上述したように、DHT19は、<キー、値>のペアとして参照されるピアまたはノードで埋めることができる。DHT19の<キー、値>のペアは、キーがハッシュ関数の結果であり、値がDHT19のエントリに関する何らかの情報である場合がある。あるいは、上述したように、値はブランクのエントリであり得る。図5のステップは、ピアツーピアネットワーク18の寿命全体を通して、繰り返し実行することができる。図6は、例示的な実施形態によりノード識別情報シビルを格納するための方法の流れ図を示す。図6に関連する方法のステップを説明しながら、図2および図3のネットワークへの参照がなされる。さらに、図4に示されたような例示的な分散ハッシュテーブルDHTへの参照もなされる。ステップS605において、コンテンツを通知するメッセージが、ピアまたはノード例えば、ノード40aまたは40bによって受信される。例えば、図4Bに関して上述したように、ピア通知メッセージを受信することができる。上述したように、ピア通知メッセージは、メッセージを伝送するピアまたはノードについての何らかの情報、および通知されたコンテンツについての何らかの情報を含むことができる。ステップS610において、ノードに関連する情報および/またはコンテンツを含むノードの標識を決定することができる。例えば、図4Bに関して上述したように、ピア通知メッセージは、ピアまたはノードについての何らかの情報を含むことができる。例えば、この情報は、ピアまたはノードに関連するアドレスおよび/またはポートであり得る。ステップS615において、コンテンツについての情報を決定することができる。例えば、図4Bに関して上述したように、ピア通知メッセージはコンテンツについての何らかの情報を含むことができる。ステップS620において、ノード情報、および/または、物理的なピアもしくはノードの標識、およびコンテンツに基づいて、ノード識別子またはキーが決定される。例えば、図4Bに関して上述したように、ハッシュ関数は、コンテンツ用のユニークな識別子またはキーを決定するために使用することができる。例えば、ハッシュ関数は、通知するピアについての情報例えば、ノード情報またはコンテンツ例えば、コンテンツ情報を、入力として取ることができる。ノード情報はコンテンツを通知するノードを識別し、コンテンツ情報はコンテンツを識別する。ハッシュ関数の出力はビットシーケンスであり得る。図4Aにおいてhash_0およびhash_500によって表されたビットシーケンスは、nビット例えば、n=160であり得る。あるいは、通知メッセージは、コンテンツを表すハッシュされたキーを含むことができ、ステップS20において、このハッシュされたキーはメッセージから取り出され、ノード識別子またはキーとして使用される。ステップS625において、DHT19は、ノード識別子またはキー、キーおよび/またはコンテンツへの参照で埋めることができる。例えば、図4Bに関して上述したように、DHT19は、<キー、値>のペアとして参照されるコンテンツで埋めることができる。DHT19の<キー、値>のペアは、キーがハッシュ関数の結果であり、値がDHT19のエントリに関する何らかの情報であり得る。あるいは、上述したように、値はブランクのエントリであり得、キーは、別のテーブルまたはデータベースにおいて検索キーとして使用することができる。ステップS630において、ステップS620で決定されたノード識別子またはキーに基づいて、論理的な変形ノード識別子および/または上述したように、シビルとしても知られている変形キーを、DHT19の中に格納する例えば、通知することができる。例えば、図4Cにおいて、論理的な変形ノード識別子および/または変形キーは、hash_547、hash_548、hash_549、hash_551、hash_552およびhash_553のハッシュされたキーをもって示され、ファイルまたはコンテンツはhash_550のハッシュされたキーと同じである。例えば、ステップS625において、キーはテーブル例えば、DHT19の中に格納することができ、キーは通知メッセージに基づく場合がある。キーはコンテンツ情報を含むことができる。コンテンツ情報はコンテンツを識別することができる。また、通知するノードは、堅牢性を実現するために、さまざまなノード上でコンテンツを識別するキーのk個kは0より大きいかまたは0に等しい整数の複製を通知することができる。これらのk個の複製は、キーに最も近いDHT19の中のk個のノード上に格納され、コンテンツを識別して通知する。例えば、ステップS630において、ノードは、n個nは2以上の整数の変形キーをテーブルの中に格納することができる。ノードが通知するノードでない場合、複数の変形キーの各々は、格納されたキーの変形またはk個の複製のうちの1つであり得る。言い換えれば、変形キーは、キーの何らかの変形をもつ通知メッセージに基づいて格納されたキーまたは1つの複製のシビルであり得る。次いで、キーの変形をもつシビルはDHT19の中に入力することができる。例えば、マイクロプロセッサ46は、n個の論理的な変形ノード識別子および/または変形キー例えば、キーをDHT19の中に格納することができる。ファイルまたはコンテンツに関してn個の論理的な変形ノード識別子および/または変形キーをDHT19の中に格納することは、例えば、ファイルまたはコンテンツ用のノード標識を決定し、次いで、ノード標識を論理的な変形ノード識別子および/または変形キーに割り当てることを伴ってもよい。例えば、マイクロプロセッサ46は、ハッシュキー例えば、hash_550を読み込み、ハッシュキーに対する論理的な加算または減算を実行して、論理的な変形ノード識別子および/または変形キー例えば、キーの各々を決定することができる。次いで、n個の論理的な変形ノード識別子および/または変形キーは、DHT19の中に格納することができる。例えば、n個の論理的な変形ノード識別子および/または変形キーの各々は、論理的に、格納されたファイルまたはコンテンツのハッシュキーから始まる、次に近い論理的な識別子またはキーからの1ビットであり得る。図4Cにおいて示されたように、hash_551は論理的にhash550から1ビット離れていて、hash_552は論理的にhash_551から1ビット離れている、など。例示的な実施形態は1ビットの分離を説明するが、例示的な実施形態はそれに限定されない。論理的な変形ノード識別子および/または変形キーに関連するノード標識は、ファイルまたはコンテンツ例えば、ハッシュキーhash_550に関連するノード標識例えば、ハッシュキーと共通のいくつかのプレフィックスビットを共有することができる。例えば、論理的な変形ノード識別子および/または変形キーに関連するノード標識またはキーは、ノード標識に関連するビットのセット内に共通の少なくともp個のビットを共有することができる。pは、DHT19内の参加ノードの数によって決定することができる。NがDHT19内の全ノードの数である場合、少なくともpはbより大きくなければならず、ここで、2^b=N、lg2N=bである。好ましくは、DHT19は、局所化用のファイルまたはコンテンツであると決定された、DHT19内の各ファイルまたはコンテンツ用の、少なくとも256に等しいn個の論理的な変形ノード識別子および/または変形キーを含む。各々は、少なくとも24に等しいp個の共通のプレフィックスビットを共有するノード標識を有する。当業者が理解するように、論理的な変形ノード識別子および/または変形キーは、DHT19内で表されたすべてのファイルまたはコンテンツに関するか、関連して格納することができる。あるいは、DHT19内で表されたファイルまたはコンテンツのいくつかのサブセットは、それらに関連する論理的な変形ノード識別子および/または変形キーを有することができる。例えば、人気のあるファイルは、ステップS625において、DHT19の中に格納された関連を有することができる。例えば、人気のあるファイルは頻繁にアクセスされるか、または通信されるファイルであり得る。DHT19内で利用可能なすべてのファイルまたはコンテンツを監視することは困難であると証明することができる。何故なら、これは何百万もの論理的な変形ノード識別子および/または変形キーの導入を必要とし、その結果、論理的な変形ノード識別子および/または変形キーに関与するマシン例えば、ネットワーク構成要素45での負荷が高くなる可能性があるからである。さらに、もし局所化できるトラフィックだけでなく大半のトラフィックを新しいファイル例えば、人気のあるファイルに関連付けることができるなら、各ファイルを監視することは必要でない可能性がある。さらに、論理的な変形ノード識別子および/または変形キーは、値において、ピア例えば、物理的なノードまたはコンピュータを表すノードに関連するノード識別子および/またはキーより、ファイルまたはコンテンツを表すノードに、論理的にまたはビットごとに近いビットシーケンスを有することができる。ビットシーケンスはコンテンツ情報のハッシュ関数に基づく場合があり、ビットシーケンスは、プレフィックスを表す第1のビット列およびコンテンツを表す第2のビット列を含むことができる。論理的な変形ノード識別子および/または変形キーは、第1のビット列の変更を加えたサブセットを含んで、複数の第1の変形キーの各々を生成することができる。論理的な変形ノード識別子および/または変形キー例えば、ステップS625において格納された論理的な変形ノード識別子および/または変形キーが格納されたピア例えば、ノード40dは、ピア例えば、ノード40aおよび40bにそれらの存在を知らせることもできる。例えば、上述されたBITTORRENTファイル共有システムにおいて、ピア例えば、ノード40dは、既知のメッセージをピアに近いと判定されたピアに送信することができる。既知のメッセージは、論理的な変形ノード識別子および/または変形キーの各々向けのpingメッセージであり得る。pingメッセージの各々は、論理的な変形ノード識別子および/または変形キーのうちの1つ例えば、ハッシュキーまたはビットシーケンスを含むことができる。近いピアは既知の方法を使用して判定される。例えば、近いピアは、ルーティングテーブル内に格納されているか、または別のメッセージタイプを使用して判定することができる。図7は、例示的な実施形態によりコンテンツを通知するメッセージを傍受するための方法の流れ図を示す。図7に関連する方法のステップを説明しながら、図2および図3のネットワークへの参照がなされる。さらに、図4D~Fに示されたような例示的な分散ハッシュテーブルDHTへの参照もなされる。ステップS705において、コンテンツを通知するメッセージを傍受することができる。通知メッセージは、メッセージを傍受する論理ノードに関連付けられた宛先アドレスを有する。ステップS705は、図6に関して上述したようなステップS605によく似ているが、1つの重要な相違がある。ステップS605において、通知メッセージは物理ピア宛であったが、ステップS705において、メッセージは論理ノードによって傍受される。言い換えれば、通知するピアは、論理ノードがDHT19内にない場合その他の方法では受信されなかったメッセージを送信した。さらに、ステップS605において受信された通知メッセージの場合、DHTは、コンテンツに関連するノード識別子またはキーで埋められるステップS625。一方、ステップS710において、傍受されたメッセージについての情報を格納することができる。情報は、メッセージの特性情報として知られており、キーとの関連で格納することができる。変形キーに関連する特性情報を格納することは、変形キーが基づいているキーに関連する通知メッセージに関連する特性情報を格納することを含む。特性情報は、ノードに関連した情報およびコンテンツに関連した情報を含むことができる。ノードに関連した情報は、第2のメッセージに関連するノードのインターネットサービスプロバイダ、第2のメッセージに関連するノードの名前、第2のメッセージに関連するノードのアドレス、および第2のメッセージに関連するノードのポートのうちの少なくとも1つを含むことができる。コンテンツに関連した情報は、コンテンツの説明、コンテンツのタイプ、コンテンツのサイズ、コンテンツへのポインタ、および第2のメッセージに関連するノードに関連する格納位置のうちの少なくとも1つを含むことができる。ステップS705に関して上述したように、ノードはコンテンツ通知メッセージを傍受することができる。コンテンツ通知メッセージは特性情報を含むことができる。特性情報はデータベースの中に格納することができる。例えば、特性情報は、通知メッセージのアドレスに関係する変形キーとの関連で、データベース、例えばデータベース52またはデータベース53の中に格納することができる。傍受された通知メッセージに関連付けられた宛先アドレスが、任意の格納された変形キーといかなる関係ももたない場合、通知メッセージは受信された通知メッセージであると仮定され、図4に関して上述されたメッセージに従って処理することができる。情報は、ピア、ノードまたはピアツーピアネットワークに関連する、例えば、データベース52、データベース53、および/または他の何らかのメモリの中に格納することができる。情報は、ファイルまたはコンテンツ例えば、ノード識別子またはハッシュキー、メッセージを送信するピア、メッセージを受信するピア、メッセージを送信/送出するピアに関連するネットワーク、および/またはメッセージを受信するピアに関連するネットワークとの関連で格納することができる。情報は、ファイルまたはコンテンツ、および、メッセージを送出するピアに関連するインターネットサービスプロバイダISP例えば、コンテンツが存在するローカルネットワークとの関連で格納することができる。データベース53は、ノード標識例えば、ノードまたはピアのアドレスおよびISPに関連する情報を含むことができる。あるいは、および/または上記説明に加えて、ステップS710において、情報はDHT19の中に格納することができる。例えば、上述したように、DHT19内のエントリは<キー、値>のペアで格納することができる。前述の情報は、値としてDHT内のエントリとして格納することができる。図4Dに示されたように、受信通知はピア通知メッセージである。ピア通知メッセージに関連する宛先はhash_551と一致した。したがって、新しい値node_ID=computer_3がhash_551用の値フィールドに追加される。例えば、図4Dに示されたように、傍受された通知はピア通知メッセージである。ピア通知メッセージに関連する宛先はhash_551と一致した。したがって、新しい値node_ID=computer_3をhash_551用の値フィールドに追加することができる。例えば、図4Eに示されたように、傍受された通知はコンテンツ通知メッセージである。コンテンツ通知メッセージに関連する宛先はhash_549と一致した。したがって、新しい値node_ID=computer_3、content=content_2をhash_549用の値フィールドに追加することができる。例えば、図4Fに示されたように、複数の受信された通知が複数のノードからのコンテンツを通知する。コンテンツ通知メッセージに関連する宛先はhash_549と一致した。したがって、複数の新しい値は、hash_549用の値フィールドに追加することができる。例示的な実施形態は既存のDHTエントリへの新しい値の追加を示すが、当業者は、重複するキー例えば、ハッシュキーで新しいエントリを追加することが可能であることを理解されよう。図6および図7において示された処置が完了すると、ピアツーピアネットワークは、ファイルまたはコンテンツを保持するピアを常に認識することができる。この前提のもとで、局所化を実行することができる。図8は、局所化されたピアのセットまたはノードのリストで、ファイルおよび/またはコンテンツの問合せに応答する詳細である。図8は、例示的な実施形態によりコンテンツを要求するメッセージを傍受するための方法の流れ図を示す。図8に関連する方法のステップを説明しながら、図2および図3のネットワークへの参照がなされる。さらに、図4D~Fに示されたような例示的な分散ハッシュテーブルDHTへの参照もなされる。ステップS805において、コンテンツを要求するメッセージが傍受される。メッセージは、ピアツーピアネットワーク内のピアから受信することができる。あるいは、メッセージはピア例えば、ピア40a内部へのメッセージであった可能性がある。メッセージは、要求されたコンテンツの標識、メッセージの送信者例えば、コンテンツを要求するノードまたはピアを示す識別子もしくはキー、および/またはメッセージの宛先を示す識別子もしくはキーを含むことができる。コンテンツを要求するメッセージは宛先アドレスを含むことができる。例えば、上述したように、1つのよく知られているピアツーピアネットワーク用ファイル共有システムは、BITTORRENTとして知られている。BITTORRENTファイル共有システムは、get_peerオブジェクトを使用して前述のコンテンツ要求を作成する。ピアはget_peerメッセージを、そのノード標識をピアがすでに認識している例えば、要求を作成したピアに関連するDHT内に格納されたk個のピアに送信する。k個のピアがピアツーピアネットワーク全体を通して広く分散された可能性がいくらか存在する。知られているように、BITTORRENTファイル共有システム内のピアは、他の既知のピアのメッセージに応答する。例えば、応答するピアがコンテンツを含むいかなるピアについても知っていない場合、応答するピアが次の繰り返しでメッセ-ジを送信できる既知のピア、すなわちその識別子が要求されたファイルの識別子により近いピアのリストで、応答するピアは回答する。知られているように、この反復処理は、get_peerメッセージが要求されたコンテンツのコピーまたは一部を保持するピアのリストで回答されるまで繰り返す。ピアのリストは、例えば、コンテンツ全体にアクセスするためにピアのアドレスおよびポート番号を含むことができる。当業者が理解するように、かつ上述したように、ピアツーピアネットワークに関連する何百万ものファイルまたはコンテンツが存在する。また、ピアツーピアネットワークを代表するDHT19の中には、何百万もの空のエントリまたは非エントリが存在する。そのため、メッセージは、要求されたコンテンツを有する可能性があるピアツーピアネットワーク内の潜在的なノード識別子またはキーを知っているすべてのピアには届かない可能性がある。したがって、従来のピアツーピアネットワークにおいては、ネットワークのピアがコンテンツを要求するメッセージを受信しない場合があり、したがって、ピアツーピアネットワーク内の何らかのコンテンツの存在の標識を含むメッセージで応答しない場合がある可能性が高い。しかしながら、図6を参照して上述したように、例示的な実施形態では、DHT19はいくつかの論理的な変形ノード識別子および/または変形キーを含むことができる。論理的な変形ノード識別子および/または変形キーの各々は、DHT19内のファイルまたはコンテンツに関係する情報を含むことができる。例えば、図4Fで示されたように、ハッシュキーhash_549に関連するノードは、コンピュータ3~7がコンテンツ2の少なくとも一部を有することを示す情報を含む。そうすることによって、上述の反復処理では、その関連情報が要求されたコンテンツの識別子を変更することによって作成されたピアまたはノード例えば、ピア20a上のテーブル例えば、DHT19内に格納された論理的な変形ノード識別子および/または変形キーが、要求されたコンテンツに対する要求を受信または傍受することができる比較的高い可能性がある。例えば、システムの設計者がよく知られているツールを使用する場合、コンテンツに対するすべての要求を傍受するように、現実的にシステムを設計することができる。図8に戻ると、ステップS810において、ノード識別子またはキーは、コンテンツ要求メッセージに関連するコンテンツに基づいて決定することができる。例えば、コンテンツ要求メッセージは、要求されたコンテンツに関連するノード識別子またはキーを含むことができる。その場合、ノードは要求メッセージを読み込んでノード識別子またはキーを決定することができる。あるいは、要求されたコンテンツは、ノード識別子またはキーを決定するために上述したハッシュ関数への入力として使用することができる。ステップS815において、要求されたコンテンツが見つかる場所をノードが知っているかどうか判定される。そして、コンテンツを含むノードのリストを作成することができる。この判定は、よく知られている方法を使用して実行することができる。例えば、上述したように、キー検索はDHT19上で実行することができる。受信するピア例えば、40aが図4Fに示されたような状態のDHT19を含むと仮定する。ピア例えば、40dがコンテンツ3に対する要求を行う場合、受信するピアはDHTのキー検索を実行することができる。受信するピアはコンテンツ3に関する情報を何も見つけない可能性がある。したがって、知られているように、受信するピアは、受信するピアが知っているピア例えば、コンピュータ1~7のリストで応答する。一方、ピアがコンテンツ2に対する要求を行う場合、受信するピアは再びDHTのキー検索を実行する。今度は、受信するピアは、コンテンツを含むピア例えば、コンピュータ3~7を見つける。知られているように、従来技術のシステムでは、受信するピアは検索の結果として見つかったすべてのピアを含むメッセージで回答するはずである。さらに、上述したように、論理的な変形ノード識別子および/または変形キーは、値において、ピア例えば、物理的なノードまたはコンピュータを表すノードに関連するノード識別子および/またはキーより、ファイルまたはコンテンツを表すノードに、論理的にまたはビットごとに近いビットシーケンスを有することができる。ビットシーケンスはノード情報およびコンテンツ情報のハッシュ関数に基づくことができ、ビットシーケンスは、プレフィックスを表す第1のビット列およびコンテンツを表す第2のビット列を含むことができる。論理的な変形ノード識別子および/または変形キーは、第1のビット列の変更を加えたサブセットを含んで、複数の第1の変形キーの各々を生成することができる。ノードのリストを決定することは、DHT19内のどのエントリが第1のキー内の第1のビット列と一致する第1のビット列をもつキーまたは変形キーを有するか判定すること、および、判定されたエントリに関連するノードが要求されたコンテンツを示す特性情報を有するように、判定されたエントリからノードのリストを生成することを含むことができる。しかしながら、例示的な実施形態によれば、要求するピアのネットワーク例えば、ISPに関連するローカルのピアのみを、回答の中で提供することができる。したがって、ステップS820において、要求者に関連するISPが決定される。例えば、マイクロプロセッサ46は、要求するピアに関連するアドレスを、データベース53から取り出されたネットワーク情報と比較することができる。あるいは、および/または加えて、マイクロプロセッサ46はDHT19から読み込まれた情報を使用することができる。例えば、マイクロプロセッサ46は、要求するピアに関連する値フィールドに格納された情報を使用することができる。ステップS825において、ステップS815において見つかったノードの各々に関連するISPが決定される。例えば、マイクロプロセッサ46は、ノードの各々に関連するアドレスを、データベース53から取り出されたネットワーク情報と比較することができる。あるいは、および/または加えて、マイクロプロセッサ46はDHT19から読み込まれた情報を使用することができる。例えば、マイクロプロセッサ46は、ノードの各々に関連する値フィールドに格納された情報を使用することができる。ステップS830において、ノードのリストは、ステップS820において決定された要求者のISPに基づいてフィルタをかけられる。フィルタをかけられたノードのリストは、要求者と同じISPに関連するノードのみを含むことができる。フィルタをかけられたノードのリストは、要求者に対して比較的良い品質および/または比較的高価でない接続性例えば、ピアリング契約をもつノードも含むことができる。ステップS835において、フィルタをかけられたノードのリストに基づいて、要求者はピアのセットまたはノードのリストを含むメッセージで回答される。例えば、ステップS820において、マイクロプロセッサ46は、要求するノードがネットワーク24のメンバであることを判定する場合がある。加えて、ステップS825において、マイクロプロセッサ46は、コンピュータ3、4および7がネットワーク24のメンバであることを判定する場合がある。さらに、ステップS825において、マイクロプロセッサ46は、コンピュータ5および6がネットワーク26のメンバであることを判定する場合がある。例示的な実施形態によれば、ステップS830のローカルのピアのセットまたはノードのリストは、コンピュータ3、4および7を含み、コンピュータ5および6を含まない。フィルタをかけられたノードのリストが閾値の数より少ない場合、別のノードをノードのリストに追加することができ、別のノードはノードのリストからフィルタをかけられたノードを含むことができる。上記の例示的な実施形態はISPネットワークを参照するが、例示的な実施形態はそれに限定されない。例えば、図8において、ISPは、例えば、要求するピアまたはノード、および、回答の中のピアのセットまたはノードのリストのノードに関連する、任意のローカルネットワークと置き換えることができる。コンテンツに関連するノード識別子およびキー、ならびにそれらの論理的な変形ノード識別子および/または変形キーは、寿命をもつ場合がある。任意の識別子またはキーに関連する閾値期間が切れた場合、識別子またはキーに関連するテーブル内のエントリは削除され得る。例えば、DHT19内へのキーの入力からの例えば、30分または2時間の閾値期間が切れた後、エントリは削除され得る。本発明の代替の実施形態は、コンピュータシステムで使用するためにコンピュータプログラム製品として実装することができる。コンピュータプログラム製品は、ディスケット、CD-ROM、ROM、もしくは固定ディスクなどの、有形もしくは持続的なデータ記録媒体コンピュータ可読媒体上に格納された、または、コンピュータデータ信号、有形媒体もしくは無線媒体、例えば、マイクロ波もしくは赤外線を介して伝送される信号の中で具現化された、例えば、一連のコンピュータ命令、コードセグメントまたはプログラムセグメントである。一連のコンピュータ命令、コードセグメントまたはプログラムセグメントは、上述の例示的な実施形態の方法の機能性の全部または一部を構成することができ、揮発性または不揮発性、半導体、磁気式、光学式または他のメモリ装置などの任意のメモリ装置の中に格納することもできる。当業者が理解するように、かつ上述したように、ピアツーピアネットワークに関連する何百万ものファイルまたはコンテンツが存在する。また、ピアツーピアネットワークを代表するDHT19の中には、何百万もの空のエントリまたは非エントリが存在する。そのため、メッセージは、要求されたコンテンツを有する可能性があるピアツーピアネットワーク内の潜在的なノード識別子またはキーを知っているすべてのピアには届かない可能性がある。したがって、従来のピアツーピアネットワークにおいては、ネットワークのピアがコンテンツを要求するメッセージを受信しない場合があり、したがって、ピアツーピアネットワーク内の何らかのコンテンツの存在の標識を含むメッセージで応答しない場合がある可能性が高い。しかしながら、図6および図8を参照して上述したように、例示的な実施形態では、DHT19はいくつかの論理的な変形ノード識別子および/または変形キーを含むことができる。論理的な変形ノード識別子および/または変形キーの各々は、DHT19内のファイルまたはコンテンツに関係する情報を含むことができる。例えば、図4Fで示されたように、ハッシュキーhash_549に関連するノードは、コンピュータ3~7がコンテンツ2の少なくとも一部を有することを示す情報を含む。そうすることによって、上述の反復処理では、その情報が要求されたコンテンツに関係するピアまたはノード例えば、ピア20aが、コンテンツに対する要求を受信または傍受することができる比較的高い可能性がある。加えて、論理的な変形ノード識別子および/または変形キーとの関連で格納された情報は、DHT内またはどこかに格納されたノード情報に関連するネットワーク例えば、ISPへの参照を含むことができる。したがって、コンテンツに対する要求への応答メッセージは、コンテンツに対する要求の送信者と同じネットワークに関連付けられたノードのリストまたはピアのセットだけを含むことができる。例示的な実施形態を具体的に示し説明したが、特許請求の範囲の精神および範囲から逸脱することなく、形態および詳細における変形をその中で実行できることが当業者によって理解されよう。本発明をこのように記載したが、同発明が多くの方法で変更できることは明白であろう。そのような変形形態は、本発明から逸脱するものとみなすべきでなく、そのような修正形態すべては本発明の範囲内に含まれるものである。"