JP2013543667A - 分散ハッシュ・テーブル内のコンテンツ用ピアツーピア・トラフィックの局所化 - Google Patents

分散ハッシュ・テーブル内のコンテンツ用ピアツーピア・トラフィックの局所化 Download PDF

Info

Publication number
JP2013543667A
JP2013543667A JP2013525924A JP2013525924A JP2013543667A JP 2013543667 A JP2013543667 A JP 2013543667A JP 2013525924 A JP2013525924 A JP 2013525924A JP 2013525924 A JP2013525924 A JP 2013525924A JP 2013543667 A JP2013543667 A JP 2013543667A
Authority
JP
Japan
Prior art keywords
content
node
key
peer
message
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2013525924A
Other languages
English (en)
Other versions
JP5611468B2 (ja
Inventor
ステイナー,モリス
バルヴェロ,マッテオ
Original Assignee
アルカテル−ルーセント
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アルカテル−ルーセント filed Critical アルカテル−ルーセント
Publication of JP2013543667A publication Critical patent/JP2013543667A/ja
Application granted granted Critical
Publication of JP5611468B2 publication Critical patent/JP5611468B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1021Server selection for load balancing based on client or server locations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

ピアツーピア・ネットワークの中のコンテンツを局所化するための方法が提供される。方法は、第1のコンテンツを通知するメッセージを受信することを含む。メッセージに基づいてテーブルの中に<キー、値>のペアを格納する。キーはコンテンツ情報を表し、値はノード情報を表す。ノード情報はコンテンツを通知するノードを識別し、コンテンツ情報はコンテンツを識別する。テーブルの中に複数の第1の変形キーを格納する。複数の第1の変形キーの各々は格納された第1のキーの変形である。方法は、さらに、要求メッセージを傍受すること、および要求メッセージの送信者に応答を送信することを含む。応答メッセージはノードのリストを含み、ノードのリストは要求メッセージの宛先アドレスおよびテーブルに基づいたキーに基づいている。

Description

本実施形態は、ピアツーピア・ファイル共有ネットワーク、およびピアツーピア・トラフィックを局所化するための方法に関する。
ピアツーピア・ファイル共有ネットワークのいくつかのバージョンは、ネットワーク構成要素が集中化されたコンピュータまたはネットワークに依存して、ネットワーク内で利用可能なすべてのコンテンツを列挙する。他のピアツーピア・ファイル共有ネットワークは、集中型コンポーネントに依存して、ネットワーク上で利用可能なすべてのコンテンツを列挙するのではない。そうではなく、ディレクトリが、コンテンツ自体が分散されるように分散される。ディレクトリ・データベースをすべての参加クライアントに分散させるために使用される技法は、分散ハッシュ・テーブル(DHT)と呼ばれることがある。
ネットワークが集中型タイプのネットワークであれDHTを使用するネットワークであれ、コンテンツが共有されているピアの局所参照性にかかわらず、ピアは、1つのピアから別のピアにコンテンツをダウンロードする。結果として、ピアが別のピアのコンピュータ上に含まれるファイルを要求する場合、ファイルを含むコンピュータは、ファイルを要求するピアから遠く離れて位置している場合がある。これにより、ピア間のリンクが1つまたは複数のインターネット・サービス・プロバイダ(ISP)を通らなければならないので、ファイル転送が遅れるだけでなく、コストが増加する。したがって、そのようなピアツーピア・タイプの接続は、ISP同士をつないでいるトランジット・リンク上に大量のトラフィックを発生させる可能性があり、それによってネットワーク・オペレータへのコストを増加させる。
例えば、人気のあるコンテンツ・ファイルが1つあり、自分のコンピュータにこのファイルをもつユーザが全世界に10,000人存在すると仮定する。それら10,000人のユーザのうち50人が所与のISP「A」内に位置していると仮定する。ISP「A」内のピアが人気のあるファイルに興味をもち、それからファイルをダウンロードする50個のランダムなピア用の集中型またはDHTタイプのディレクトリを要求すると仮定する。そのような例では、ISP「A」内の単一のピアを見つける0.5%のチャンスがある。ファイルを有する50ピアが要求するピアに対してランダムに識別される場合、50ピアすべてがISP「A」の内部にあるチャンスはゼロに近づく。
そのようなシナリオでは、ファイルを要求するピアと同じISP内に十分な数のピアが存在しても、恐らく、ピアが要求するピアのISPの外部に位置するピアからファイルを受信することになるだろう。これは、ISP間のトランジット・リンク上の不要なトラフィックを必要とする。
図1は、集中型ピアツーピア・システム10の概略図を示す。集中型ピアツーピア・システム10は、ピアおよび/またはノード12とも呼ばれるコンピュータ12ならびに中央コンピュータ14を含む。ピアおよび/またはノード12は、接続16を介して中央コンピュータ14につながれる。接続16は、無線接続、イーサネット接続、または任意の適切な接続ハードウェアもしくは方法の組合せなどの、任意の適切な接続であり得る。
ピアツーピア・システム10は、4台のピアおよび/またはノード12、ならびに1台の中央コンピュータ14だけを示すが、ピアツーピア・システムは、示されたピアおよび/またはノード12の数、ならびに1台の中央コンピュータ14の中央のネットワーク・コンポーネントに限定されないことが理解されよう。実際には、ピアツーピア・システム10はさらに多くのピアおよび/またはノード12を含むことができ、多くのコンピュータ、サーバまたは他のコンポーネントは、示された中央コンピュータ14の仕事を遂行することができる。
図1に示されたような集中型ピアツーピア・システム10では、ピアおよび/またはノード12がコンテンツまたはファイルを要求すると、要求は接続16を介して集中型コンピュータ14に送信される。要求の送信はピアツーピア・ネットワークではよく知られている。
集中型コンピュータ14は、どのピアおよび/またはノード12が要求されたコンテンツを有するかを判定し、どのピアおよび/またはノード12が要求されたコンテンツを有するかに関する情報で要求に応答することができる。集中型コンピュータ14は、要求されたコンテンツを有するいくつかのピアおよび/またはノード12を識別し、複数の識別されたピアおよび/またはノード12に関する情報で応答することができる。1台のピアおよび/もしくはノード12、または、複数台のピアおよび/もしくはノード12が識別されると、次いで、要求するピアは、識別されたピアのうちの1台から要求されたファイルを受信することができる。
集中型コンピュータ14は、トランジット・リンクを介して伝送される多量のデータを削減するために、要求されたコンテンツを含む可能性がある多くのピアおよび/またはノード12の中のどのピアおよび/またはノード12が、要求するピアに識別されるべきかの判定を行うことができる。これらの判定はピアツーピア・トラフィックを局所化するためになされ得る。この判定は下記でより詳細に説明される。
例えば、1つのよく知られているピアツーピア・ネットワーク用のファイル共有システムは、BITTORRENTとして知られている。BITTORRENTファイル共有システムのメカニズムは、ピアの影響を発見するために、P2Pネットワークの構造、およびその結果としてのデータの伝播を使用する。したがって、BITTORRENTファイル共有システムにおけるピア発見の知識は、トラフィックの局所化を明確に理解するために基本的なことである。BITTORRENTファイル共有システムは、ピアを発見しファイル交換を調整するために、トラッカまたは中央サーバ(例えば、集中型コンピュータ14)を使用する。ピアは、トラッカのアドレスをウェブからダウンロードしたトレント内で検索する。「トレント」は、ファイル交換用の有用な情報を含むメタデータ・ファイルである。
最初に、ピアはトラッカに接触して、ファイルまたはその一部を保持するピアのリストを検索する。トラッカは、50ピアによって全般に構成された活動状態のピアのランダムなサブセットである、ピア・リストで回答する。その後、ピアは、ピアがダウンロードまたはアップロードしたバイトの容量に関する情報を送信するために、定期的にトラッカと対話する。それに応じて、トラッカはピアに新しいピア・リストを送信する。クライアントとトラッカの間の通信頻度は、トラッカの応答の中に含まれた最小間隔領域を介して、トラッカによって調整される。一般に、それは15分に設定される。
上記で示されたように、ピア・リストは活動状態のピアのランダムなサブセットである。ピア・リストは、ネットワーク(例えば、インターネット・サービス・プロバイダ・ネットワーク(ISPネットワーク))内でのピアの局所化を全く含まない。局所化のためにトラッカまたは中央サーバ(例えば、集中型コンピュータ14)を活用する努力がいくつかなされた。しかしながら、これらの努力は本開示の範囲外である。
一実施形態は、ピアツーピア・ネットワークの中のコンテンツを局所化するための方法を含む。方法は、第1のコンテンツを通知する第1のメッセージを受信することを含む。第1のメッセージに基づいてテーブルの中に第1のキーを格納する。第1のキーは第1のノード情報および第1のコンテンツ情報を表す。第1のノード情報は第1のコンテンツを通知する第1のノードを識別し、第1のコンテンツ情報は第1のコンテンツを識別する。テーブルの中に複数の第1の変形キーを格納する。複数の第1の変形キーの各々は格納された第1のキーの変形である。
別の実施形態は、ピアツーピア・ネットワークの中のコンテンツを局所化するための方法を含む。方法は要求メッセージを傍受することを含む。要求メッセージはコンテンツに対する要求であり、要求メッセージは宛先アドレスを含む。宛先アドレスに基づいて第1のキーを決定する。第1のキーに基づいたノードのリスト、およびテーブルを決定する。テーブルは複数のエントリを含む。各エントリはキーおよび変形キーのうちの1つを有する。少なくとも1つのキーは通知メッセージに基づいている。キーはノード情報およびコンテンツ情報を表す。ノード情報はコンテンツを通知するノードを識別し、コンテンツ情報はコンテンツを識別し、各変形キーはキーのうちの1つの変形である。要求メッセージの送信者に応答を送信する。応答メッセージはノードのリストを含む。
本発明は、本明細書において下記に与えられた詳細説明および添付図面からより完全に理解されるようになる。添付図面では同じ構成要素は同じ参照数字によって表される。添付図面は説明のためのみに与えられ、したがって、本発明を限定するものではない。
集中型コンポーネントを有するピアツーピア・ファイル共有ネットワークの関連技術の概略図である。 例示的な実施形態により分散ハッシュ・テーブル(DHT)を利用するピアツーピア・ファイル共有ネットワークの概略図である。 例示的な実施形態によるファイル共有ネットワークの概略図を示し、ファイル共有ネットワークと通信するコンピュータのさまざまなコンポーネントを示す図である。 例示的な実施形態によるDHTを示す図である。 例示的な実施形態によるDHTを示す図である。 例示的な実施形態によるDHTを示す図である。 例示的な実施形態によるDHTを示す図である。 例示的な実施形態によるDHTを示す図である。 例示的な実施形態によるDHTを示す図である。 例示的な実施形態によりピアに通知するための方法の流れ図である。 例示的な実施形態によりノード識別情報(シビル)を格納するための方法の流れ図である。 例示的な実施形態によりコンテンツを通知するメッセージを傍受するための方法の流れ図である。 例示的な実施形態によりコンテンツを要求するメッセージを傍受するための方法の流れ図である。
これらの図は、ある特定の例示的な実施形態において使用される方法、構造および/または材料の一般特性を示し、下記に提供される明細書を補足するものであることに留意されたい。しかしながら、これらの図面は、縮尺通りではなく、任意の所与の実施形態の精密な構造特性または性能特性を正確に反映していない場合があり、例示的な実施形態によって包含される値または性状の範囲を画定するか、または限定するものと解釈すべきでない。例えば、分子、階層、領域および/または構造的な構成要素の相対的な厚さおよび位置は、明確にするために削減されるか、または誇張される場合がある。さまざまな図面における同様または同一の参照番号は、同様または同一の構成要素または特徴の存在を示すものである。
例示的な実施形態はさまざまな修正形態および代替の形態になることができるが、その実施形態が図面において例として示され、本明細書において詳細に説明される。しかしながら、例示的な実施形態を開示された特定の形態に限定するものではなく、これに反して、例示的な実施形態は、特許請求の範囲の範囲に入るすべての修正形態、均等物、および代替物をカバーするものであることを理解すべきである。図の説明全体を通して、同じ番号は同じ構成要素を参照する。
例示的な実施形態をより詳細に説明する前に、いくつかの例示的な実施形態は、流れ図として描写される処理または方法として記載されることに留意されたい。流れ図は動作を連続的な処理として記載するが、多くの動作は、並行して、共にまたは同時に実行することができる。加えて、動作の順序は再調整することができる。処理は、それらの動作が完了すると終了することができるが、図には含まれていない別のステップを有する場合もある。処理は、方法、機能、手順、サブルーチン、サブプログラムなどに対応することができる。
下記に説明される方法は、そのいくつかは流れ図によって示されるが、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組合せによって実装することができる。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードの中に実装されると、必要なタスクを実行するプログラム・コードまたはコード・セグメントは、記憶媒体などの、マシンまたはコンピュータの可読媒体の中に格納することができる。プロセッサは必要なタスクを実行することができる。
本明細書に開示された特定の構造的および機能的な詳細は、本発明の例示的な実施形態を説明する目的のために表されるものにすぎない。しかしながら、本発明は多くの代替の形態で具現化することができ、本明細書において説明される実施形態のみに限定するものと解釈すべきでない。
第1、第2などの用語は、本明細書においてさまざまな構成要素を記載するために使用する場合があるが、これらの構成要素はこれらの用語によって限定されるべきでないことが理解されよう。これらの用語は、1つの構成要素を別の構成要素から区別するためだけに使用される。例えば、例示的な実施形態の範囲から逸脱することなく、第1の構成要素は第2の構成要素と呼ばれてもよいし、同様に、第2の構成要素は第1の構成要素と呼ばれてもよい。本明細書では、用語「および/または」は、関連する列挙された項目のうちの1つまたは複数のありとあらゆる組合せを含む。
構成要素が別の構成要素に「接続」または「結合」すると呼ばれる場合、その他の構成要素に直接接続もしくは結合してもよいし、または介在する構成要素が存在してもよいことが理解されよう。対照的に、構成要素が別の構成要素に「直接接続」または「直接結合」すると呼ばれるとき、介在する構成要素は存在しない。構成要素の間の関係を説明するために使用される他の単語は、同じように解釈すべきである(例えば、「間」対「直接の間」、「近傍」対「直接の近傍」)。
本明細書において使用される述語は、特定の実施形態を説明する目的のためだけであり、例示的な実施形態を限定するものではない。本明細書では、単数形「a」、「an」および「the」は、文脈が明らかに他を示さないかぎり、複数形も含むものである。用語「備える」、「備えている」、「含む」、および/または「含んでいる」は、本明細書において、特徴、整数、ステップ、動作、構成要素、および/または構成部品の存在を指定するが、1つまたは複数の他の特徴、整数、ステップ、動作、構成要素、構成部品、および/またはそのグループの存在もしくは追加を排除しないことがさらに理解されよう。
また、いくつかの代替の実装形態において、注記された機能/動作が図の中で注記された順序以外で起こる場合があることに留意されたい。例えば、連続して示された2つの図は、関与する機能/動作に応じて、実際には同時に実行される場合があるか、または時々逆の順序で実行される場合がある。
他に定義されないかぎり、本明細書において使用される(技術的および科学的な用語を含む)すべての用語は、例示的な実施形態が属する技術の当業者によって一般に理解されるのと同じ意味を有する。用語、例えば、一般に使用される辞書で定義された用語は、関連技術の文脈内の意味と一致する意味を有すると解釈すべきであり、本明細書において明確にそう定義されないかぎり、理想化された、または過度に形式的な意味で解釈されないことがさらに理解されよう。
例示的な実施形態の一部および対応する詳細説明は、ソフトウェアの用語、または、アルゴリズムおよびコンピュータ・メモリ内のデータ・ビット上の動作の符号表現で提示される。これらの説明および表現は、それにより当業者が自分の仕事の本質を他の当業者に効果的に伝えるものである。アルゴリズムは、その用語が本明細書で使用されるように、かつそれが一般的に使用されるように、所望の結果に導く首尾一貫した順序のステップであると考えられる。ステップは、物理量の物理操作を必要とするステップである。通常、必要ではないが、これらの量は、格納、転送、結合、比較、およびその他の方法で操作することができる、光学的、電気的、または磁気的な信号の形を取る。主に共通使用の理由から、これらの信号をビット、値、要素、符号、文字、用語、数などとして参照することが時には便利であると証明された。
以下の説明では、例示的な実施形態は、プログラム・モジュールまたは機能プロセスが特定のタスクを実行し特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含むように実装することができ、既存のネットワーク構成要素で既存のハードウェアを使用して実装することができる、動作の動きおよび符号表現を参照して(例えば、流れ図の形で)記載される。そのような既存のハードウェアには、1つまたは複数の中央処理装置(CPU)、デジタル・シグナル・プロセッサ(DSP)、特定用途向け集積回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)・コンピュータなどが含まれ得る。
しかしながら、これらおよび同様の用語のすべては、適切な物理量に関連付けられ、これらの量に適用される便利なラベルにすぎないことに留意されたい。特に断りのないかぎり、または説明から明白なように、「処理」または「計算」または「算出」または「決定」または「表示」などの用語は、コンピュータ・システムのレジスタ内およびメモリ内で物理的、電子的な量として表現されたデータを操作し、コンピュータ・システムのメモリまたはレジスタまたは他のそのような情報を格納、伝送または表示する装置内の物理的な量と同様に表現された他のデータに変換する、コンピュータ・システムまたは同様の電子計算装置の動作および処理を参照する。
また、例示的な実施形態のソフトウェア実装の態様は、通常何らかの形のプログラム記憶媒体上で符号化されるか、または何らかのタイプの伝送媒体を介して実装されることに留意されたい。プログラム記憶媒体は、磁気式(例えば、フロッピ・ディスクもしくはハード・ドライブ)または光学式(例えば、コンパクト・ディスク・リード・オンリ・メモリ、すなわち「CD ROM」)であり得るし、リード・オンリまたはランダム・アクセスであり得る。同様に、伝送媒体は、ツイスト・ワイヤ・ペア、同軸ケーブル、光ファイバ、または、当技術分野で既知の他の何らかの適切な伝送媒体であり得る。例示的な実施形態は、任意の所与の実装形態のこれらの態様によって限定されない。
用語「ピア」および「ノード」は、本開示全体を通して区別なく使用される。一般に、ピアはピアツーピア・ネットワーク内の物理的なハードウェアを参照する。また、ピアはノードであり得る。しかしながら、ノードはより一般には、例えば、ピアツーピア・ネットワーク内のファイルの位置(例えば、テーブル内のアドレスまたは参照)の論理的なインスタンスも参照する場合がある。
図2は、例示的な実施形態によるピアツーピア・ネットワーク18の概略図である。図2に示されたピアツーピア・ネットワーク18の中には、中央コンピュータ14は存在しない。示されていないが、ピア40はお互いに接続によってつながれていることを理解すべきである。
図2はピアツーピア・ファイル共有ネットワーク18を示す。図2のネットワーク18は、集中型コンポーネントに依存してネットワーク・コンテンツを列挙するのではなく、分散ハッシュ・テーブル(DHT)19を使用してディレクトリ・データベースをすべての参加クライアントに分散する。DHT19は、図2において、ネットワーク18のすべての態様を共につなぐ破線として表される。
ファイル共有ネットワーク18は、第1のインターネット・サービス・プロバイダ(ISP)24および第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_peer(A)メッセージが使用される。ここで、Aはピアについての何らかの情報(例えば、アドレスおよびポート)である。BITTORRENTファイル共有システムでは、ネットワークへの参加を望むピアは、announce_peer(A)メッセージをネットワーク内のピアのサブセットに送信する。
例えば、BITTORRENTファイル共有システムのピアは、3つの最も近いピアを含むルーティング・テーブルを有することができる。通知するピアAは、find_peer(hash(A))メッセージを3つの最も近いピアに送信することができる。各ピアは、自分のルーティング・テーブルの中でノード識別子Aに近いピアを検索することができる。ピアは、(例えば、メッセージを使用して)検索からのピアを、通知するピアAに返す。この通知処理は、hash(A)に最も近いピアが見つかるまで、繰り返し起こる可能性がある。hash(A)に最も近いピアが見つかると、通知するピアAは、announce_peer(A)メッセージをhash(A)に最も近いピアに送信することができる。
上述したように、受信するピアは、通知するピアを、受信するピアと関連するDHT19に追加することができる。知られているように、受信するピアはハッシュ関数を使用して、通知するピア用のユニークな識別子またはキーを決定することができる。例えば、ハッシュ関数は、通知するピアについての情報を入力として取ることができる。入力情報は、例えば、上記BITTORRENTファイル共有システムの例からの「A」(例えば、アドレスおよびポート)であり得る。ハッシュ関数の出力はビット・シーケンスであり得る。(図4Aにおいてhash_0およびhash_500によって表された)ビット・シーケンスは、nビットの長さ(例えば、n=160)であり得る。
理解されるように、ハッシュ関数から2個の別個の出力がある。したがって、2個のノード(論理または物理)を識別する2個のエントリが、DHT19の中に存在することができる。知られているように、別個のノードの数は限定され得るので、比較的大きな数値的な違いで各々のノードまたはピアにビット・シーケンスを割り当てるハッシュ関数を使用することにより、各ノードを論理的に分けることは可能であり得る。
次いで、受信するピア(例えば、ノード40a)は、<キー、値>のペアで通知ピア(例えば、ノード40d)を、受信するピアのDHT19に追加することができる。ここで、キーは(上述した)ハッシュ関数の結果であり、値はDHT19のエントリに関する何らかの情報である。例えば、値は、ノードの標識または名前、(下記でより詳細に説明される)ネットワークについての情報またはコンテンツについての情報であり得る。図4Aは、hash_0およびhash_500それぞれについて、node_ID=computer_1およびnode_ID=computer_2の値を示す。
上記および下記で記載されるように、例示的な実施形態は、値がブランクで、キー(例えば、ハッシュされたビット・シーケンス)のみが任意の必要な情報を含むことができるように、<キー、値>のペアを格納することができる。例えば、(ピア、または下記に記載されるようにコンテンツに基づいてハッシュされたキーである)キーは、例えば、データベース52および/またはデータベース53に格納された別のテーブル用の検索値として使用することができる。
受信するピアは、すべての受信された通知メッセージ用の情報を格納することができない。例えば、知られているように、BitTorrent Inc.に登録されたBITTORRENT(商標)ファイル共有システムは、当技術分野でKademliaとして知られているDHT19を使用する。Kademliaにおけるハッシュ関数は、ビット排他論理和(XOR)がノード間の論理的な距離を決定するように、ノード用の識別子またはキーを出力する。例えば、Kademliaにおいて、2つの識別子またはキー、aおよびb(例えば、図4Aからのhash_0およびhash_500)が与えられると、Kademliaはそれらの間の距離をそれらのビット排他論理和として定義する。Kademliaのピアは、その識別子またはキーの0<i<160ビットの各々用のノード、ピアのDHT内で自分から2^i<d<2^(i+1)のXOR距離を有するピアだけを格納することができる。
図4Bは、物理的なノードまたはピアへの参照とコンテンツを識別するノードへの参照とのどちらも含むDHT(例えば、DHT19)を示す。知られているように、通知するピア(例えば、ノード40d)は、ピアが自分を通知するのと大体同じ方法でコンテンツを通知する。しかしながら、通知は、コンテンツの何らかの標識も含むことができる。例えば、上記からのBITTORRENTファイル共有システムの例を続けると、通知メッセージはannounce_peer(A,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は論理的にhash 550から1ビット離れていて、hash_552は論理的にhash_551から1ビット離れている、など。例示的な実施形態は1ビットの分離を説明するが、例示的な実施形態はそれに限定されない。
論理的な変形ノード識別子および/または変形キーに関連するノード標識は、ファイルまたはコンテンツ(例えば、ハッシュ・キーhash_550)に関連するノード標識(例えば、ハッシュ・キー)と共通のいくつかのプレフィックス・ビットを共有することができる。例えば、論理的な変形ノード識別子および/または変形キーに関連するノード標識またはキーは、ノード標識に関連するビットのセット内に共通の少なくともp個のビットを共有することができる。pは、DHT19内の参加ノードの数によって決定することができる。NがDHT19内の全ノードの数である場合、少なくともpはbより大きくなければならず、ここで、2^b=N、lgN=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)への参照を含むことができる。したがって、コンテンツに対する要求への応答メッセージは、コンテンツに対する要求の送信者と同じネットワークに関連付けられたノードのリストまたはピアのセットだけを含むことができる。
例示的な実施形態を具体的に示し説明したが、特許請求の範囲の精神および範囲から逸脱することなく、形態および詳細における変形をその中で実行できることが当業者によって理解されよう。
本発明をこのように記載したが、同発明が多くの方法で変更できることは明白であろう。そのような変形形態は、本発明から逸脱するものとみなすべきでなく、そのような修正形態すべては本発明の範囲内に含まれるものである。

Claims (10)

  1. ピアツーピア・ネットワークのノードで、第1のコンテンツを通知する第1のメッセージを受信するステップと、
    前記ノードにより前記第1のメッセージに基づいてテーブルの中に第1のキーを格納するステップであって、前記第1のキーが第1のノード情報および第1のコンテンツ情報を表し、前記第1のノード情報が、前記第1のコンテンツを通知する第1のノードを識別し、前記第1のコンテンツ情報が前記第1のコンテンツを識別する、ステップと、
    前記ノードにより前記テーブルの中に複数の第1の変形キーを格納するステップであって、前記複数の第1の変形キーの各々が前記格納された第1のキーの変形である、ステップと
    を含む方法。
  2. 第1のキーを格納する前記ステップが、前記第1のコンテンツ情報の機能に基づいてビット・シーケンスを決定するステップを含み、前記ビット・シーケンスがキーのプレフィックスを表す第1のビット列および前記第1のコンテンツを表す第2のビット列を含み、
    複数の第1の変形キーを格納する前記ステップが、前記第1のビット列のサブセットを変形して前記複数の第1の変形キーの各々を生成するステップを含む、
    請求項1に記載の方法。
  3. 第1のキーを格納する前記ステップが、前記第1のキーに関連する前記第1のメッセージの特性情報を格納するステップをさらに含み、
    複数の第1の変形キーを格納する前記ステップが、前記複数の第1の変形キーの前記各々との関連で、前記第1のキーとの関連で格納された前記第1のメッセージの前記特性情報を格納するステップをさらに含み、
    前記ノードに関連した情報が、前記第2のメッセージに関連するノードのインターネット・サービス・プロバイダ、前記第2のメッセージに関連する前記ノードの名前、前記第2のメッセージに関連する前記ノードのアドレス、および前記第2のメッセージに関連する前記ノードのポートのうちの少なくとも1つを含み、
    前記コンテンツに関連した情報が、前記コンテンツの説明、前記コンテンツのタイプ、前記コンテンツのサイズ、前記コンテンツのポインタ、および前記第2のメッセージに関連する前記ノードに関連する格納位置のうちの少なくとも1つを含む、
    請求項1に記載の方法。
  4. 前記ノードにより、第2のコンテンツを通知する第2のメッセージを傍受するステップであって、前記第2のメッセージが宛先アドレスを含む、ステップと、
    前記宛先アドレスに基づいて生成されたキーの中の前記第1のビット列が前記複数の第1の変形キーの1つの中の前記第1のビット列と一致する場合、前記複数の第1の変形キーの1つとの関連で、前記ノードにより前記第2のメッセージに関連する特性情報を格納するステップと
    をさらに含む、請求項3に記載の方法。
  5. 前記宛先アドレスに基づいて生成された前記キーの中の前記第1のビット列が前記複数の第1の変形キーの1つの中の前記第1のビット列と一致しない場合、
    前記ノードにより前記第2のメッセージに基づいてテーブルの中に第2のキーを格納するステップであって、前記第2のキーが第2のノード情報および第2のコンテンツ情報を表し、前記第2のノード情報が、前記第2のコンテンツを通知する第2のノードを識別し、前記第2のコンテンツ情報が前記第2のコンテンツを識別する、ステップと、
    前記ノードにより前記テーブルの中に複数の第2の変形キーを格納するステップであって、前記複数の第2の変形キーの各々が前記格納された第2のキーの変形である、ステップと
    をさらに含む、請求項4に記載の方法。
  6. ピアツーピア・ネットワークの中のコンテンツを局所化するための方法であって、
    前記ピアツーピア・ネットワークのノードにより要求メッセージを傍受するステップであって、前記要求メッセージがコンテンツに対する要求であり、前記要求メッセージが宛先アドレスを含む、ステップと、
    前記ノードにより前記宛先アドレスに基づいて第1のキーを決定するステップと、
    前記ノードにより前記第1のキーおよびテーブルに基づいてノードのリストを決定するステップであって、前記テーブルが複数のエントリを含み、各エントリがキーおよび変形キーのうちの1つを含み、少なくとも1つのキーが通知メッセージに基づき、前記キーがコンテンツ情報を表し、前記キーがノード情報を表す関連値を有し、前記ノード情報が、コンテンツを通知するノードを識別し、前記コンテンツ情報が前記コンテンツを識別し、各変形キーが前記キーのうちの1つの変形である、ステップと、
    前記ノードにより前記要求メッセージの送信者に応答メッセージを送信するステップであって、前記応答メッセージが前記ノードのリストを含む、ステップと
    を含む、方法。
  7. 少なくとも1つのキーが前記コンテンツ情報の機能に基づいたビット・シーケンスを含み、前記ビット・シーケンスが、プレフィックスを表す第1のビット列と前記通知メッセージに関連するコンテンツを表す第2のビット列とを含み、
    少なくとも1つの変形キーが前記少なくとも1つのキーの前記第1のビット列の変形されたサブセットを含み、
    前記テーブルの少なくとも1つのエントリが特性情報をさらに含み、前記特性情報がノードに関連した情報およびコンテンツに関連した情報を含む、
    請求項6に記載の方法。
  8. ノードのリストを決定する前記ステップが、
    前記テーブル内のどのエントリが、前記第1のキーと一致するキーまたは変形キーを有するかを判定するステップと、
    前記判定されたエントリに関連するノードが前記要求されたコンテンツを示す特性情報を有するように、前記判定されたエントリから前記ノードのリストを生成するステップと、
    前記ノードのリストが前記要求されたメッセージの前記送信者に関連する前記ネットワークに関連するノードのみを含むように、前記ノードのリストにフィルタをかけるステップと
    を含む、請求項7に記載の方法。
  9. テーブルを格納するように構成されたメモリと、
    第1のコンテンツを通知する第1のメッセージを受信するように構成されたプロセッサであって、前記第1のメッセージに基づいて前記テーブルの中に第1のキーを格納するように構成され、前記第1のキーが第1のノード情報および第1のコンテンツ情報を表し、前記第1のノード情報が、前記第1のコンテンツを通知する第1のノードを識別し、前記第1のコンテンツ情報が前記第1のコンテンツを識別し、前記プロセッサが前記テーブルの中に複数の第1の変形キーを格納するように構成され、前記複数の第1の変形キーの各々が前記格納された第1のキーの変形である、プロセッサと
    を含む、ピアツーピア・ネットワークのノード。
  10. プロセッサによって起動されると一連のステップを実行させるプログラム・コード・セグメントを含む持続性メモリであって、前記ステップが、
    第1のコンテンツを通知する第1のメッセージを受信するステップと、
    前記第1のメッセージに基づいてテーブルの中に第1のキーを格納するステップであって、前記第1のキーが第1のノード情報および第1のコンテンツ情報を表し、前記第1のノード情報が、前記第1のコンテンツを通知する第1のノードを識別し、前記第1のコンテンツ情報が前記第1のコンテンツを識別する、ステップと、
    前記テーブルの中に複数の第1の変形キーを格納するステップであって、前記複数の第1の変形キーの各々が前記格納された第1のキーの変形である、ステップと
    を含む、持続性メモリ。
JP2013525924A 2010-08-25 2011-07-28 分散ハッシュ・テーブル内のコンテンツ用ピアツーピア・トラフィックの局所化 Expired - Fee Related JP5611468B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/868,454 US9055082B2 (en) 2010-08-25 2010-08-25 Peer to peer localization for content in a distributed hash table
US12/868,454 2010-08-25
PCT/US2011/045645 WO2012027055A1 (en) 2010-08-25 2011-07-28 Peer-to-peer traffic localization for content in a distributed hash table

Publications (2)

Publication Number Publication Date
JP2013543667A true JP2013543667A (ja) 2013-12-05
JP5611468B2 JP5611468B2 (ja) 2014-10-22

Family

ID=44534650

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013525924A Expired - Fee Related JP5611468B2 (ja) 2010-08-25 2011-07-28 分散ハッシュ・テーブル内のコンテンツ用ピアツーピア・トラフィックの局所化

Country Status (6)

Country Link
US (1) US9055082B2 (ja)
EP (1) EP2636205A1 (ja)
JP (1) JP5611468B2 (ja)
KR (1) KR101474233B1 (ja)
CN (1) CN103069781B (ja)
WO (1) WO2012027055A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5772597B2 (ja) * 2009-12-09 2015-09-02 日本電気株式会社 情報共有システム
KR20120058782A (ko) * 2010-11-30 2012-06-08 삼성전자주식회사 컨텐츠 중심 네트워킹 환경에서의 단말, 중간 노드 및 이들의 통신 방법
US9053311B2 (en) * 2011-11-30 2015-06-09 Red Hat, Inc. Secure network system request support via a ping request
CN105580319A (zh) * 2013-09-26 2016-05-11 慧与发展有限责任合伙企业 对等网络中的对等节点
US10541938B1 (en) * 2015-04-06 2020-01-21 EMC IP Holding Company LLC Integration of distributed data processing platform with one or more distinct supporting platforms
EP3628113B1 (en) 2018-05-08 2023-08-23 Visa International Service Association Sybil-resistant identity generation
CN112688870B (zh) * 2020-12-28 2022-11-04 杭州趣链科技有限公司 一种路由方法、路由装置及节点设备
CN112954080B (zh) * 2021-04-13 2022-03-04 苏州知微安全科技有限公司 一种中继路由金字塔数据存储方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080201718A1 (en) * 2007-02-16 2008-08-21 Ofir Zohar Method, an apparatus and a system for managing a distributed compression system
JP2010103786A (ja) * 2008-10-24 2010-05-06 Kddi Corp オーバレイネットワークにおける遅延時間推定方法、ピアノード及びプログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5404488A (en) * 1990-09-26 1995-04-04 Lotus Development Corporation Realtime data feed engine for updating an application with the most currently received data from multiple data feeds
US7103772B2 (en) * 2003-05-02 2006-09-05 Giritech A/S Pervasive, user-centric network security enabled by dynamic datagram switch and an on-demand authentication and encryption scheme through mobile intelligent data carriers
US7730207B2 (en) * 2004-03-31 2010-06-01 Microsoft Corporation Routing in peer-to-peer networks
WO2008057528A2 (en) * 2006-11-06 2008-05-15 Dell Marketing Usa L.P. A system and method for managing data across multiple environments
US8255736B2 (en) * 2007-02-22 2012-08-28 Telefonaktiebolaget Lm Ericsson (Publ) Consistent and fault tolerant distributed hash table (DHT) overlay network
DE102007033812B4 (de) * 2007-07-19 2009-07-30 Voice.Trust Mobile Commerce IP S.á.r.l. Verfahren und Anordnung zur Authentifizierung eines Nutzers von Einrichtungen, eines Dienstes, einer Datenbasis oder eines Datennetzes
CN100502339C (zh) 2007-08-31 2009-06-17 华为技术有限公司 对等网络自治的方法、节点装置和系统
US20090252071A1 (en) * 2008-04-02 2009-10-08 Nokia Corporation Method and deevice for network messaging
US8584228B1 (en) * 2009-12-29 2013-11-12 Amazon Technologies, Inc. Packet authentication and encryption in virtual networks

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080201718A1 (en) * 2007-02-16 2008-08-21 Ofir Zohar Method, an apparatus and a system for managing a distributed compression system
JP2010103786A (ja) * 2008-10-24 2010-05-06 Kddi Corp オーバレイネットワークにおける遅延時間推定方法、ピアノード及びプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNG200700773020; 青山 哲也: '複数DHTを対象とした自律型動的負荷分散方式の検討' 電子情報通信学会技術研究報告 第106巻 第577号, 20070301, 社団法人電子情報通信学会 *
JPN6014013310; 青山 哲也: '複数DHTを対象とした自律型動的負荷分散方式の検討' 電子情報通信学会技術研究報告 第106巻 第577号, 20070301, 社団法人電子情報通信学会 *

Also Published As

Publication number Publication date
CN103069781B (zh) 2016-03-09
WO2012027055A1 (en) 2012-03-01
EP2636205A1 (en) 2013-09-11
US9055082B2 (en) 2015-06-09
US20120054322A1 (en) 2012-03-01
JP5611468B2 (ja) 2014-10-22
KR20130062993A (ko) 2013-06-13
KR101474233B1 (ko) 2014-12-18
CN103069781A (zh) 2013-04-24

Similar Documents

Publication Publication Date Title
JP5611468B2 (ja) 分散ハッシュ・テーブル内のコンテンツ用ピアツーピア・トラフィックの局所化
Kim et al. Measuring ethereum network peers
Zhang et al. Distributed hash table: Theory, platforms and applications
Dabek et al. Towards a common API for structured peer-to-peer overlays
US8909747B2 (en) Method and apparatus for localization in peer-to-peer systems
JP5551270B2 (ja) ピアツーピアネットワークを分解して、分解されたピアツーピアネットワークを使用するための方法および装置
US10084856B2 (en) Method and apparatus for locating services within peer-to-peer networks
US20120185595A1 (en) Traffic Localization Mechanism For Distributed Hash Table Based Peer-To-Peer Networks
TW200803303A (en) Inter-proximity communication within a rendezvous federation
US8949329B2 (en) Content popularity extraction in distributed hash table based peer-to-peer networks
JP5666719B2 (ja) ピアツーピア・ネットワークにおける検索
JP5798638B2 (ja) ピアツーピアネットワーク内のトラフィック位置特定
Shen et al. A proximity-aware interest-clustered P2P file sharing system
Betts et al. A critical comparative evaluation on DHT-based peer-to-peer search algorithms
Kamel et al. Lamred: location-aware and decentralized multi-layer resource discovery for IoT
Cowan S4h: A Peer-to-Peer Search Engine with Explicit Trust
Confais et al. SToN: A New Fundamental Trade-off for Distributed Data Storage Systems
Karapapas et al. Enhancing IPFS Bitswap
Ariyoshi et al. Efficient processing of conjunctive queries in p2p dhts using bloom filter
Ahmed et al. Collaborative Web Hosting: Challenges and Research Directions
Raj et al. High-performance peer-to-peer systems
Zhang et al. DHT Platforms
Ahmed et al. Naming
KR20140011527A (ko) Dht 기반의 오버레이 네트워크 간 연동하기 위한 시스템 및 그 방법
Liang et al. Two-tier bitwise interest oriented QRP with firework model query for a small world peer-to-peer system to reduce message flooding and improve recall rate

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140401

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140630

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140805

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140902

R150 Certificate of patent or registration of utility model

Ref document number: 5611468

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees