JP2012531765A - P2pネットワークのノード情報を提供するサーバ、方法、およびシステム - Google Patents

P2pネットワークのノード情報を提供するサーバ、方法、およびシステム Download PDF

Info

Publication number
JP2012531765A
JP2012531765A JP2012516483A JP2012516483A JP2012531765A JP 2012531765 A JP2012531765 A JP 2012531765A JP 2012516483 A JP2012516483 A JP 2012516483A JP 2012516483 A JP2012516483 A JP 2012516483A JP 2012531765 A JP2012531765 A JP 2012531765A
Authority
JP
Japan
Prior art keywords
node
data
information
nodes
coordinates
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
JP2012516483A
Other languages
English (en)
Other versions
JP5692757B2 (ja
Inventor
イェン フー
ヨン シア
ヨンク リュウ
チュエン ホワン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC China Co Ltd
Original Assignee
NEC China Co Ltd
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 NEC China Co Ltd filed Critical NEC China Co Ltd
Publication of JP2012531765A publication Critical patent/JP2012531765A/ja
Application granted granted Critical
Publication of JP5692757B2 publication Critical patent/JP5692757B2/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
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • 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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/121Shortest path evaluation by minimising delays

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

P2Pネットワークのノード情報を提供するためのサーバ、方法、およびシステムを提供する。
ピアツーピア(P2P)ネットワーク内のサーバは、P2Pネットワーク内の各データノードの座標を、P2Pネットワーク内のデータノード間の通信遅延に基づいて生成された座標系で示す座標情報を記憶する位置情報記憶手段と、第1データアイテムを保有するデータノードの情報を求める要求を受信後に、座標情報に基づいて第1データアイテムを保有するデータノードの中から1つ以上のデータノードを選択し、選択された1つ以上のデータノードを示す情報を提供するノード情報提供手段とを備える。

Description

本発明はピアツーピア(P2P)技術に関し、特に、P2Pネットワークのノード情報を提供するサーバ、方法、およびシステムに関する。
近年、インターネットアプリケーション分野ではP2P技術が注目を集めている。この技術は、インターネットユーザがリソースを効率的に共有するための新しい方式を提供するものである。P2Pネットワークにおいては、ノードの選択が重要な問題となる。データノードは、他のデータノードとリソース(データアイテム)を交換したいときに、P2Pネットワーク内のサーバに対して要求を発行することができる。サーバはこのリソースを保有するデータノードを検索し、その中からいくつかのノードを選び、その情報を要求元に返す。その後、要求元はこれらのノードから目的のリソースを直接ダウンロードすることができる。
既存のP2Pシステムでは、リソースを保有するノードからいくつかのノードが無作為に選択されるのが一般的である。このような方法では、ネットワークを効率的に利用することはできない。例えば、膨大な量のネットワークトラフィックがインターネットサービスプロバイダ(ISP)のバックボーンを通過するため、バックボーンに多大な送信負荷がかかる。また、ネットワークトラフィックは複数のISPを横断して送信されることが多いため、大量なネットワーク間(ISP間)トラフィックが発生する。さらに、このような方法では、提供されるサービスの品質と性能にも影響が出る。それは、P2Pネットワーク内に通信遅延が少ないノードが存在していたとしても、無作為ノード選択機構が通信遅延の多い他のノードを選択する可能性があるからである。
この問題を解決するため、位置情報に基づく新しいP2Pシステムが提案されている。この方法とは、ノード選択の際に、「近接」ノードを優先的に選択するものである。無作為ノード選択機構の問題は、近接するノードを選択することで解決される。そのため、ネットワークの利用効率は高まり、ネットワーク間トラフィックは減少し、アプリケーションの性能が向上する。
2007年8月15日付けの中国特許出願公開CN101018172A、“Method for Optimizing P2P Transmission within Metropolitan Area Network”(メトロポリタンエリアネットワークにおけるP2P送信の最適化方法)(特許文献1)では、メトロポリタンエリアネットワーク(都市規模ネットワーク)用P2Pアプリケーションのための最適化方法が開示されている。特許文献1では、トポロジサーバとインデキシングサーバを追加することにより、P2Pトラフィックの発生をネットワークの縁部のみに限定してバックボーンにかかる送信負荷を軽減し、それによりP2Pに起因するネットワークの輻輳を回避することが試みられる。
Sigcomm 2008で発表された“P4P:Provider Portal for Applications”(P4P:アプリケーション用プロバイダポータル)、Haiyong Xie,Y.Richard Yang,Arvind Krishnamurthy,Yanbin Liu,Avi Silberschatz(非特許文献1)では、P4Pと呼ばれる新しいアーキテクチャが提案されている。このアーキテクチャでは、ネットワークトラフィックの制御において、P2PアプリケーションとISP間でより効率的に連携することが可能になる。この機構は、既存のP2Pアプリケーションの性能を維持し、さらには向上させる一方で、ISP側のコストを削減することができる。
2008年8月6日付けの中国特許出願公開CN101237467A、“Mobile P2P Network Resource Discovering Method Introducing Vector Locating”(ベクトル位置決めを導入したモバイルP2Pネットワークリソース発見方法)(特許文献2)では、ベクトル位置決めを導入したモバイルP2Pネットワークリソース発見方法が開示されている。この方法では、極座標位置決め理論を導入して、セルラーネットワーク全体をホーム地域、距離、および方向によって分割し、位置ベクトル情報を保持する新しい経路指定テーブルを確立することにより、セルラーネットワークのための迅速で高精度な位置決めと、リソースの双方向ルックアップとが実現されている。
図1は、特許文献1に記載されるメトロポリタンエリアネットワークの構造を示す。ユーザコンピュータは、P2Pネットワーク内のデータノードとして動作する際には、最初に建物スイッチにアクセスし、次にセルスイッチに接続し、アクセス層スイッチまたはルータ(以下、「アクセススイッチ」という)に接続し、さらに集約層スイッチまたはルータ(以下、「集約スイッチ」という)に接続し、最後にコアスイッチまたはルータに接続するのが一般的である。メトロポリタンエリアネットワークのコアネットワークは、概して、1つ以上のコアスイッチまたはルータで構成される。また、典型的には、建物スイッチは1つのサブネットで構成される。
特許文献1で開示されたメトロポリタンエリアネットワーク内のP2P送信の最適化方法は、1)P2Pノードがリソースのダウンロードを要求してきたときに(このノードは「要求元P2Pノード」と呼ばれる)、P2Pインデキシングサーバを介して、このリソースを保有するP2Pノード(これらのノードは「リソースP2Pノード」と呼ばれる)のリストをクエリするステップと、2)リソースP2Pノードから、ネットワーク上で要求元P2Pノードに最も近接したノードを検索するステップと、3)要求元P2Pノードが、ネットワーク上の1つ以上の最も近接したリソースP2Pノードからリソースをダウンロードするステップ、とを含む。
要求元P2Pノードのために近接ノードを選択するアルゴリズムは、最初に要求元P2Pノードと同じ建物スイッチに接続されたノードを選択し、次に要求元P2Pノードと同じセルスイッチに接続されたノードを選択し、さらに要求元P2Pノードと同じアクセススイッチに接続されたノードを選択し、最後に要求元P2Pノードと同じ集約スイッチに接続されたノードを選択する。選択されたノードの数が要求された数よりも少ない場合は、当該リソースを保有するすべてのノードが近接ノードとみなされる。この方法では、P2Pトラフィックを可能な限りコアネットワークから遠くして、ネットワークの縁部で送信されるようにすることにより、コアネットワークや集約ネットワークのようなバックボーンネットワークを流れるP2Pトラフィックが減少される。
近接ノードを検索するためには、メトロポリタンエリアネットワーク内のスイッチまたはルータをコード化する必要がある。図1に示すように、s1は集約スイッチのコードであり、その値は1〜n1である。s2はアクセススイッチのコードであり、その値は1〜n2である。s3はセルスイッチのコードであり、その値は1〜n3である。s4は建物スイッチのコードであり、その値は1〜n4である。コアネットワークから各コンピュータに至るまでに存在するスイッチまたはルータのコードは、当該コンピュータの位置ベクトル(位置情報)を構成し、S=(s1,s2,s3,s4)と表現される。
近接ノードを検索するための計算方法は、以下のとおりである。すなわち、まず2つのノードの位置ベクトルが、それぞれS=(s1、s2、s3、s4)およびS’=(s1’、s2’、s3’、s4’)として定義される。これら2つのノード間の距離ベクトルDは以下のようになる。
D=(d1,d2,d3,d4)
=(s1,s2,s3,s4)−(s1’,s2’,s3’,s4’)
=(s1−s1’,s2−s2’,s3−s3’,s4−s4’),
ここで、si=si’のときdi=0であり、si≠si’のときdi=1である。
2つの距離ベクトル、すなわちD=(d1,d2,d3,d4)およびD’=(d1’,d2’,d3’,d4’)のサイズを比較する方法は、以下のように定義される。
d1=d1’、d2=d2’、d3=d3’、d4=d4’のとき、D=D’であり、
d1=1、d1’=0のとき、
d1=d1’、d2=1、d2’=0のとき、
d1=d1’、d2=d2’、d3=1、d3’=0のとき、または
d1=d1’、d2=d2’、d3=d3’、d4=1、d4’=0のとき、D>D’である。
距離ベクトルDが小さいほど、2つのノードのネットワーク上での近接度は高くなる。
トポロジサーバ内の位置情報テーブルは、表1に示すような、メトロポリタンエリアネットワークのトポロジ情報を格納している。
Figure 2012531765
CN101018172A CN101237467A
"P4P:Provider Portal for Applications"(P4P:アプリケーション用プロバイダポータル)、Haiyong Xie,Y.Richard Yang,Arvind Krishnamurthy,Yanbin Liu,Avi Silberschatz、Sigcomm 2008 Vivaldi:A Decentralized Network Coordinate System(分散型ネットワーク座標系),Frank Dabek,etc、sigcomm 2004 Predicting Internet Network Distance with Coordinates−Based Approaches(座標ベース方式によるインターネットネットワーク距離の予測),T.S.Eugene Ng etc、Infocom 2002
特許文献1において、P2Pネットワーク内のコンピュータの位置情報は、当該コンピュータのメトロポリタンエリアネットワーク内における特定の物理的位置として表現される。この物理的位置は、メトロポリタンエリアネットワーク内のスイッチまたはルータをコード化した上で、当該コンピュータからコアネットワークに至るまでに存在するスイッチおよびルータのコードでコンピュータの位置ベクトルを構成することにより、表現される。以下では、この表現を「階層的コード化ベースの位置情報表現」と呼ぶ。
この階層的コード化ベースの位置情報表現は、精度と拡張性の両面において限定的である。
ここでいう「精度」とは、システムから返されるノードが実際にネットワークで「近接」したノードであるかどうか、そして、このノード選択によってアプリケーションの性能だけでなくネットワークの利用効率も向上するかどうか、という意味における精度である。例えば、特許文献1で採用される階層的コード化方法は、階層ツリーの同じ階層に複数のノードが存在する場合には、これらのノードと要求元ノード間の距離を比較することはできない。図1に示す例においては、アクセススイッチの直下のノードがある特定のデータアイテムを保有する10個のノードを要求し、かつこのアクセススイッチの直下にこのデータアイテムを保有するノードが4つ存在する場合には、これら4ノードが近接ノードとして選択される。それでもまだ、アクセススイッチが属する集約スイッチの下にはこのデータアイテムを保有するノードは96も存在し、しかもその一部のノードはネットワーク上で要求元ノードに上記で選択された4ノードよりも近接しているにもかかわらず、階層的コード化方法ではこれら96のノードと要求元ノード間の距離を比較することはできない。
ここでいう「拡張性」とは、システムをより大規模なネットワーク(ひいてはインターネット全体)に容易に拡張できるかどうか、という意味における拡張性である。階層的コード化ベースの位置情報表現方法は、トポロジ情報が完全に既知である(すなわち、各コンピュータがどのスイッチまたはルータを通ってコアネットワークに接続されているかが既知である)メトロポリタンエリアネットワークに適している。しかし、この方法をより大規模なネットワークやインターネット全体に拡張することは容易ではない。それは、ネットワークのあらゆる部分のトポロジ情報を知ることは非常に困難だからである。
さらに、階層的コード化ではほとんどの場合、位置情報を表現するために使用される階層数と、各階層で表現される情報とを事前設定する必要がある。例えば、特許文献1の方法では、位置情報は、集約スイッチ、アクセススイッチ、セルスイッチ、建物スイッチという4階層で表現される。これもまた、この方法の柔軟性と拡張性を制限する要因となる。
上記および他の問題を解決するため、本発明は、位置情報に基づいてノード情報を高精度で提供でき、かつ高い柔軟性と拡張性を有することを特徴とする、P2Pネットワーク内のサーバ、P2Pネットワーク内のノード情報を提供するための方法、およびP2Pネットワーク内のノード情報を提供するためのシステムを提供する。
本発明の1つの態様によれば、ピアツーピア(P2P)ネットワーク内のサーバであって、P2Pネットワーク内の各データノードの座標を、P2Pネットワーク内のデータノード間の通信遅延に基づいて生成された座標系で示す座標情報を記憶する位置情報記憶手段と、第1のデータアイテムを保有するデータノードの情報を求める要求を受信すると、位置情報記憶手段内に記憶された座標情報に基づいて、第1のデータアイテムを保有するデータノードの中から1つ以上のデータノードを選択し、選択された1つ以上のデータノードを示す情報を提供するノード情報提供手段とを備えることを特徴とするサーバが提供される。
本発明の他の態様によれば、ピアツーピア(P2P)ネットワーク内のノード情報を提供する方法であって、第1のデータアイテムを保有するデータノードの情報を求める要求を受信するステップと、座標情報に基づいて、第1のデータアイテムを保有するデータノードの中から1つ以上のデータノードを選択するステップと、選択された1つ以上のデータノードを示す情報を提供するステップとを含み、当該座標情報は、P2Pネットワーク内の各データノードの座標を、P2Pネットワーク内のデータノード間の通信遅延に基づいて生成された座標系で示すことを特徴とする方法が提供される。
本発明の他の態様によれば、ピアツーピア(P2P)ネットワーク内のノード情報を提供するためのシステムであって、データノードは、第1データアイテムを保有するデータノードの情報を求める要求をサーバに送信するノード情報要求手段と、サーバによって提供された情報に示されたデータノードと第1データアイテムを交換するデータ交換手段とを含み、サーバは、P2Pネットワーク内の各データノードの座標を、P2Pネットワーク内のデータノード間の通信遅延に基づいて生成された座標系で示す座標情報を記憶する位置情報記憶手段と、第1データアイテムを保有するデータノードに関する情報に対する要求を前記データノードから受信すると、位置情報記憶手段に記憶された座標情報に基づいて、第1データアイテムを保有するデータノードの中から1つ以上のデータノードを選択し、選択された1つ以上のデータノードを示す情報を前記データノードに提供するノード情報提供手段とを含むことを特徴とするシステムが提供される。
本発明の他の目的、特徴、および利点は、以下の詳細な説明と図面を併せて参照することにより、明らかとなるであろう。
位置情報に基づいてノード情報を高精度で提供でき、かつ高い柔軟性と拡張性を有するP2Pネットワーク内のサーバ、P2Pネットワーク内のノード情報を提供する方法、およびP2Pネットワーク内のノード情報を提供するシステムが実現される。
従来技術の階層的コード化方法の概略図を示す。 本発明の第1の実施例によるシステムのブロック図を示す。 座標系に対して異なる粒度を選択する場合の概略図を示す。 本発明の第1の実施例によるシステムにおいて実行される方法のプロセスフローを示す。 本発明の第1の実施例によるシステムの具体的な実装を示すブロック図である。 図5に示すシステムにおいて実行される方法のプロセスフローを示す。 本発明の第2の実施例によるシステムのブロック図を示す。 本発明の第2の実施例によるノード情報記憶手段にノード情報テーブルを記憶するときの概略図を示す。 本発明の第2の実施例によるノード情報提供手段がデータノードを順に選択するときの概略図を示す。 本発明の第2の実施例によるシステムにおいて実行される方法のプロセスフローを示す。 本発明の第3の実施例によるシステムのブロック図を示す。 本発明の第3の実施例によるシステムにおいて実行される方法のプロセスフローを示す。
最初に、本明細書で使用するいくつかの用語について説明する。
P2Pネットワーク:「P2Pシステム」ともいう。P2Pネットワークには、インデキシングサーバ(「トラッカ」または「appTracker」ともいう)、トポロジサーバ(「iTracker」ともいう)、およびデータ交換を行う複数のデータノードなどが含まれる。これらのデータノードは互いにピア(同位)である。インデキシングサーバとトポロジサーバは論理的なカテゴリであり、総称して「サーバ」と呼ぶことができる。
データノード:「ノード」または「ホスト」ともいう。これは、P2Pネットワーク内のユーザ(マシン)である。データノードは、1つ以上の実データアイテムの全体または一部を記憶するエンティティである。データノードは、データアイテムを保有し、P2Pネットワーク内の他のデータノード(ピア)からデータアイテムをダウンロードする(ピアとデータアイテムを交換する)ことができる。データノードとして使用できるのは、データを記憶し、ネットワーク上で他のネットワークノードと通信することのできる、パーソナルコンピュータ(PC)、携帯電話、携帯情報端末(PDA)等の情報処理装置である。
ピア:P2Pシステム内のデータノードは互いにピア接続される。
データアイテム:「データ」、「リソース」、「データファイル」等と呼ばれることもある。データアイテムは、音声ファイル、映像ファイル、テキストファイル等の、P2Pネットワーク内のデータノード間で共有されるリソースである。
ノード情報:サーバによって提供される、データアイテムDを保有するノードの全部または一部を示す情報である。
位置情報:本発明においては、「位置情報」には、各データノードの座標を本発明による座標系で示す座標情報が含まれる。
データ情報:データノードからサーバに報告される情報であり、データノードがデータアイテムDを保有することを示す。
性能情報:データ交換中またはデータ交換後にデータノードからサーバにフィードバックされる情報であり、データ交換の状態(通信遅延、帯域幅等)を示す。
P2Pネットワークは複数のデータノードを含むことがあるが、以下の説明では、これらのデータノードのうちの特定のデータノードP(後述するデータノード10)を具体例として使用する。当該技術に精通する当業者には明らかなように、P2Pネットワーク内の他のデータノードはデータノードPと同一または類似した構造のことがあり、データノードPと同一または類似した方法でサーバと対話することができる。
以下では、添付図面を参照しながら本発明の実施例について説明する。本明細書および添付図面においては、同一または類似した要素を示すために同一または類似した参照記号を使用していることに注意されたい。また、同一要素を反復して説明することは避けている。
図2は、本発明の第1の実施例によるシステム1のブロック図を示す。図2に示すように、システム1はデータノード10とサーバ20とを備える。
ここでのデータノード10は、P2Pネットワーク内の例示的なデータノードPであり、ノード情報要求手段101とデータ交換手段102とデータ情報報告手段103とを含む。
サーバ20は、ノード情報記憶手段201と位置情報記憶手段202とノード情報提供手段203とノード情報更新手段204とを含む。
データノード10がP2Pネットワーク内の他のデータノード(すなわち、ピア)からデータアイテムD1をダウンロードする場合、まずP2Pネットワーク内のどのデータノードがデータアイテムD1を保有するかを知る必要がある。そのため、データノード10のノード情報要求手段101は、データアイテムD1を保有するデータノードに関する情報を取得するために、ノード情報要求をサーバ20に送信する。ここで、「データアイテムを保有する」とは、ダウンロード可能なデータアイテムの少なくとも一部を保有することを意味することに注意されたい。
サーバ20のノード情報記憶手段201は、P2Pネットワーク内で共有されるすべてのデータアイテムに関するノード情報(すなわち、どのノードがどのデータアイテムを保有しているかについての情報)を記憶している。換言すれば、P2Pネットワーク内のデータノード間で共有される各データアイテムについて記憶されたノード情報は、そのデータアイテムを保有するP2Pネットワーク内のすべてのデータノードを示す。例えば、ノード情報記憶手段201は下記のノード情報テーブルのようなノード情報を記憶する。
Figure 2012531765
位置情報記憶手段202は位置情報を記憶する。具体的には、本発明の位置情報は、P2Pネットワークの各データノードの座標を本発明による座標系で示す座標情報を含む。この座標系は、P2Pネットワーク内の少なくとも数個のデータノード間における通信遅延に基づいて生成される。換言すれば、位置情報記憶手段202はP2Pネットワーク全体に存在するすべてのノードの位置情報を座標として記憶する、ということができる。これは特許文献1の階層的コード化ベースの位置情報表現とは異なる。以下では、本発明による位置情報表現について説明する。
本発明においては、既知のP2Pネットワーク内のデータノード間における通信遅延に基づいて多次元ユークリッド座標系が確立され、任意のノード間の通信遅延を予測するために、座標がデータノードに割り当てられる。予測されたノード間の通信遅延は、ネットワーク上の近接度を表現するので、要求元ノードは、データアイテムをダウンロードするノードとして近接したノードを優先的に選択することができる。
本発明による座標系においては、インターネット内の各データノードは座標空間内の点として表される。例えば、3次元のユークリッド空間の場合であれば、ノードPの座標はC=(x,y,z)である。2つのノード間の距離は、空間内の2つのデータノードを表わす2点間のユークリッド距離によって表現される。例えば、座標(x,y,z)を有するノードPと座標(x,y,z)を有するノードQ間の距離dは、以下のような式となる。
Figure 2012531765
距離dが小さいほど、2つのノードの近接度は高くなる。
位置情報記憶手段202は、位置情報を位置情報テーブルとして記憶することができる。位置情報テーブルは、下記の表3に示すような、P2Pネットワーク内のノードに関する座標情報を格納する。
Figure 2012531765
上記のノードIDは例として示したものである。
座標系は、P2Pネットワーク内のデータノード間の通信遅延に基づいて生成される。ここで、P2Pネットワーク内にM個のデータノード{H,…,H}があるとする(Mは1より大きい整数)。ノードHおよびH間の通信遅延が測定され、それに基づいて距離Lijが導出される。すべてのLijを使用して1つのM*M行列が構成される。ここでの目的は、測定された通信遅延(すなわち、Lij)に基づく距離と、ユークリッド空間座標(「dij」とする)によって計算された距離の間の累積誤差が最小化されるように(すなわち、以下の目的関数のFが最小化されるように)、各データノードの座標{C,…,C}を計算することである。
Figure 2012531765
ここで、Err()は誤差関数である。例えば、以下のような誤差関数を選択することができる。
Err(Lij,dij)=(Lij−dij
ij行列においては、座標計算は最適化問題である。この問題は、sigcomm 2004で発表されたVivaldi:A Decentralized Network Coordinate System(分散型ネットワーク座標系),Frank Dabek,etc(非特許文献2)に記載されるバネ力法(spring forces method)や、Infocom 2002で発表されたPredicting Internet Network Distance with Coordinates−Based Approaches(座標ベース方式によるインターネットネットワーク距離の予測),T.S.Eugene Ng etc(非特許文献3)に記載される簡易ダウンヒル法等の、既存の研究によってほぼ解決できる。
ただし、実際の使用においては、幅広いネットワーク測定には膨大な費用がかかるため、座標系の最初の確立時に通信遅延を測定できるのは、ノードのごく一部に限られる。そのため、Lijによって形成されたM*M行列においては、当初は多数のLijが値を持たない。そして、システムの稼働を続ける過程で、通信遅延情報が測定および取得されて値が増えていくのである。具体的な座標系構築方法(すなわち、各ノードの座標値Cを計算する方法)は以下のとおりである(非特許文献2のバネ力法を例にとる)。
(1)システムのM個のノード{H,…,H}から、以下の2つの特徴を持つI個のランドマークノード{K,…,K}を選択する。
a.これらのノードK,1≦i≦Iは、可能な最大数の他データノードH,1≦j≦Mを用いて測定された通信遅延値(すなわち、可能な最大数の他データノードH,1≦j≦Mを用いて測定された距離Lij)を有するため、可能な最大数の近隣ノードを有する。
b.これらのノードは、座標空間内で可能な限り広く分散している。これは、K,1≦i≦IおよびK,1≦j≦I間の距離(Lij)が最大限に大きい、という具体的事実によって示される。
(2)非特許文献2のバネ力法により、I個のランドマークノード間の測定通信遅延ベース距離Lijを用いて、I個のランドマークノードK,1≦j≦Iの座標C(K)を計算する。
(3)他のR=M−I個のノード{N,…,N}に関して座標を計算する。各ノードNにつき、以下を行う。
a.非特許文献2のバネ力法により、当該ノードNとI個のランドマークノードK,1≦j≦Iの間の測定通信遅延ベース距離Lijを用いて、当該ノードの座標Cを計算する。
b.次に、非特許文献2のバネ力法により、当該ノードに比較的近い(すなわち、当該ノードとのLijが比較的小さい)ノードと当該ノードNの間の測定通信遅延ベース距離Lijを用いてCを更新し、座標空間内における当該ノードの正確な位置、すなわちNの座標C(N)、を導出する。
図2に戻ると、ノード情報提供手段203は、データノード10からノード情報要求を受信した後、位置情報記憶手段202に記憶された座標情報に基づいて、ノード情報記憶手段201に記憶されたノード情報によって示されるデータアイテムD1を保有するデータノードの中から1つ以上のデータノードを選択し、選択された1つ以上のデータノードを示す情報をデータノード10に提供する。
具体的には、ノード情報提供手段203は要求を受信すると、ノード情報記憶手段201内のデータアイテムD1を保有するすべてのデータノード(例えば、T個のノード{P,…,P})を検索する。ノード情報提供手段203はその後、例えばノードIDやノードのサブネットIPアドレスを用いて、位置情報記憶手段202内の、データアイテムD1を有するこれらのデータノード{P,…,P}の各々の座標とデータノード10の座標とを検索する。次に、ノード情報提供手段203は、検索された座標に基づいて、データアイテムD1を保有する各データノードとデータノード10との間の距離を計算する。その後、ノード情報提供手段203は、計算された距離の昇順に基づいて、データアイテムD1を保有するすべてのデータノードの中からいくつかのデータノード(例えば、S個のノード{Pi1,…,Pis})を選択する。本発明においては、選択されるデータノード数Sを事前に決定することも、あるいはデータノード10またはサーバ20によって任意の数に指定することもできる。また、「距離が所定のしきい値を下回る」という条件を設定し、この条件を満足するすべてのデータノードが選択されるようにすることもできる。これらはすべて当業者にはよく知られている方法である。選択されたこれらのデータノードは、データノード10に最も近接したデータノードである。ノード情報提供手段203はその後、選択された近接データノードをデータノード10に通知する。
データノード10内のノード情報要求手段101は、サーバ20から通知された情報を受信すると、その情報をデータ交換手段102に伝える。データ交換手段102はその後、サーバ20から提供された情報に示される近接データノードからデータアイテムD1をダウンロード(または、近接データノードとデータアイテムD1を交換)する。
データノード10(すなわち、ノードP)はさらに、図示するように、データ情報報告手段103も含む。データノード10がP2Pネットワーク内の他のデータノードと交換できるデータアイテムD2を保有している場合には、サーバ20およびP2Pネットワーク内の他のデータノードがこの情報を学習できるように、データ情報報告手段103はサーバ20に対し、データノード10がデータアイテムD2(例:{D2:P})を保有することを示すデータ情報を報告する。
そのため、サーバ20はノード情報更新手段204も含む。ノード情報更新手段204は、データノード10のデータ情報報告手段103から報告されてきたデータ情報を受信すると、受信した情報(例:{D2:P})をノード情報記憶手段に格納されるノード情報に追加して、そのノード情報を更新する。例えば、この情報を追加されたノード情報テーブルは、下記の表4のようになる(太字は追加されたエントリ)。
Figure 2012531765
前述したように、本発明による座標系を確立するために、データノードの地理的な位置情報(このノードが所在する国や都市等)や、他のネットワークトポロジ情報(ユーザコンピュータからコアネットワークに至るまでに存在するスイッチまたはルータ等)の知識は不要である。その代わりに、測定されたノード間の通信遅延情報に基づいて、ノードの座標が決定される。
さらに、特許文献1の従来技術とは異なり、座標系は非階層的である。すなわち、座標の複数次元を使用して異なるレベルの情報(国、都市等)や異なるタイプの情報(アクセススイッチ、セルスイッチ等)を表わすのではなく、座標の次元はすべて並列である。そのため、レベルの数と、各レベルが表す情報を事前に設定する必要はない。
本発明による位置情報表現方法は、従来技術よりも高い精度と拡張性を実現する。ある2つのノード間について予測された通信遅延は、ネットワーク上におけるこれらのノード間の近接度を表現する。ファイルをダウンロードする際には、近接したデータノードが優先的に選択される。そのため、ダウンロードの性能が向上し、無作為ノード選択によって生じる大量なネットワーク間トラフィックが回避される。座標系は測定により得られるノード間通信遅延情報に基づいた計算によって確立されるため、データノードに関する地理的位置情報や他のネットワークトポロジ情報を知る必要はない。したがって、座標系は高い拡張性を有し、メトロポリタンエリアネットワークや自律システム(AS)、ひいてはインターネット全体にも適用することができる。また、座標系は非階層的なので、レベル数と、各レベルによって表される情報とを事前に設定する必要はない。そのため、使用上の柔軟性と利便性も向上する。
さらに、システムをインターネット全体に拡張する際には、ネットワーク毎に座標系の粒度を柔軟に選択することができる。図3に示すように、既知の情報が多い(通信遅延の測定が可能な範囲が広い)ネットワークの場合は粒度の細かい座標を使用し、既知の情報が少ないネットワークの場合は粒度の粗い座標を使用することができる。
図4は、本発明の第1の実施例によるシステム1において実行される方法のプロセスフローを示す。
図4に示すように、データノード10とサーバ20間の対話は、データ情報を報告する第1の部分とノード情報を提供する第2の部分との2部構成とすることができる。
データ情報を報告する第1の部分では、ステップS110において、データノード10がP2Pネットワーク内の他のデータノードと交換できるデータアイテムD2を保有している場合には、データ情報報告手段103が、データノード10がデータアイテムD2を保有していることを示すデータ情報をサーバ20に報告する。
続いてステップS120において、サーバ20のノード情報更新手段204が、データノード10のデータ情報報告手段103から報告されてきた情報の受信後、受信した情報を反映するために、ノード情報記憶手段201に格納されるノード情報を更新する。
ノード情報を提供する第2の部分では、ステップS210において、データノード10のノード情報要求手段101が、データアイテムD1を保有するデータノードに関する情報を取得するために、ノード情報要求をサーバ20に送信する。
ノード情報提供手段203は、データノード10からノード情報要求を受信すると、ステップS220において、ノード情報記憶手段201内のデータアイテムD1を保有するすべてのデータノードを検索する。
その後、ノード情報提供手段203はステップS230において、位置情報記憶手段202内で、データアイテムD1を保有する各データノードすべての座標とデータノード10の座標とを検索し、検索した座標に基づいて、データアイテムD1を保有する各データノードとデータノード10間の距離を計算する。
次に、ノード情報提供手段203はステップS240において、計算した距離の昇順に基づいて、データアイテムD1を保有するすべてのデータノードの中から1つ以上のデータノードを選択する。選択されたこれらのデータノードは、データノード10に最も近接したデータノードである。
次にステップS250において、ノード情報提供手段203は、選択された近接データノードをデータノード10に通知する。
当該技術に精通した当業者には明らかなように、上述した第1の部分と第2の部分の相対的順序は一例にすぎない。例えば、データ情報の報告を行う第1の部分をノード情報の提供を行う第2の部分の後に実行したり、あるいは双方を並列で実行したりすることも可能である。また、データ情報を報告するデータノードとサーバから提供されたノード情報を受信するデータノードは異なるデータノードであってもよく、処理対象となるデータアイテムは同一のデータアイテムであっても異なるデータアイテムであってもよい。
図5は、本発明の第1の実施例によるシステム1の具体的な実装を示すブロック図である。
図5に示す具体的な実装では、サーバ20はさらに、機能に応じて2つのサーバに分割されている。すなわち、サーバ20はインデキシングサーバ20−1とトポロジサーバ20−2とを備える。こうした分割は概して論理的な機能上の分割であり、必ずしも物理的に分割する必要はない。例えば、インデキシングサーバ20−1とトポロジサーバ20−2とを物理的に同じ位置に置いて、1つのサーバに統合する、という実装も可能である。また、インデキシングサーバ20−1とトポロジサーバ20−2を別々に配置して2つの独立したサーバとする、という実装もありうる。
そのため、ノード情報提供手段203が、ノード検索手段203−1とノード選択手段203−2の両方を含むこともある。
さらに、ノード検索手段203−1とノード情報記憶手段201とノード情報更新手段204とを、インデキシングサーバ20−1内にすべて含めることもできる。また、ノード選択手段203−2と位置情報記憶手段202とをトポロジサーバ20−2内に含めることも可能である。
データノード10の構造は図2に示す構造と同一とすることができる。
ノード検索手段203−1は、データノード10内のノード情報要求手段101からデータアイテムD1を保有するデータノードの情報を求める要求を受信すると、ノード情報記憶手段201内でデータアイテムD1を保有するデータノードを検索し、ノード選択手段203−2に対して、データアイテムD1を保有するデータノードの中からデータノード10に近接した1つ以上のデータノードを選択するよう要求する。
ノード選択手段203−2は、ノード検索手段203−1からの要求の受信後、位置情報記憶手段202内でデータアイテムD1を保有する各データノードの座標とデータノード10の座標とを検索し、検索した座標に基づいて、データアイテムD1を保有する各データノードとデータノード10との間の距離を計算し、計算した距離の昇順に基づいてデータアイテムD1を保有するデータノードの中から1つ以上のデータノードを選択し、選択した1つ以上のデータノードをノード検索手段203−1に通知する。
ノード検索手段203−1は、選択された1つ以上のデータノードを示す情報を、データノード10のノード情報要求手段101に提供する。
図6は、図5に示すシステムにおいて実行される方法のプロセスフローを示す。
図6に示すデータ情報を報告するための第1の部分は、図4に示す第1の部分と実質的に同じであるため、その説明を書略する。また前述したように、第1の部分と第2の部分の順序は一例にすぎない。例えば、データ情報を報告する第1の部分をノード情報を提供する第2の部分の後に実行したり、あるいは2つの部分を並列で実行したりすることも可能である。また、データ情報を報告するデータノードとサーバから提供されたノード情報を受信するデータノードは異なるデータノードであってもよく、対象となるデータアイテムは同一のデータアイテムであっても異なるデータアイテムであってもよい。
ノード情報を提供する第2の部分では、ステップS210において、データノード10のノード情報要求手段101が、データアイテムD1を保有するデータノードに関する情報を取得するために、ノード情報要求をサーバ20に発行する。
ノード情報提供手段203のノード検索手段203−1は、データノード10からノード情報要求を受信すると、ステップS220において、ノード情報記憶手段201内のデータアイテムD1を保有するすべてのデータノードを検索する。
ノード検索手段203−1は、次のステップS221において、ノード選択手段203−2に対してデータアイテムD1を保有するすべてのデータノードの中からいくつかのデータノードを選択するよう求めるために、ノード選択手段203−2に要求を発行する。
その後、ステップS230において、ノード選択手段203−2が位置情報記憶手段202内で、データアイテムD1を保有する各データノードの座標とデータノード10の座標とを検索し、検索した座標に基づいて、データアイテムD1を保有する各データノードとデータノード10間の距離を計算する。
次に、ノード選択手段203−2はステップS240において、計算した距離の昇順に基づいて、データアイテムD1を保有するすべてのデータノードの中から1つ以上のデータノードを選択する。選択されたこれらのデータノードは、データノード10に最も近接したデータノードである。
次のステップS241において、ノード選択手段203−2は、選択した1つ以上のデータノードをノード検索手段203−1に通知する。
ステップS250において、ノード検索手段203−1はさらに、選択された近接データノードをデータノード10に通知する。
図7は、本発明の第2の実施例によるシステム1aのブロック図を示す。
第2の実施例によるシステム1aは、データノード10とサーバ20aとを備えるが、データノード10は図2に示すデータノード10と同じであってもよい。
本発明の第2の実施例は、近接ノードを選択するための改良型アルゴリズムを適用する。ノードの選択において解決すべき問題は、ノードPがデータアイテムD1を保有するノードを要求する際に、データアイテムD1を保有し、かつ要求元ノードPに近接した位置にあるS個のノードをどのように検索するかということである。第1の実施例では、最初に、P2Pネットワーク内のデータアイテムD1を保有する全T個のノード{P,…,P}が検索され、その後、要求元ノードPとデータアイテムD1を保有する各ノード{P,…,P}との間の距離d=距離(P,P)が計算され、最後に、Pに近接するノードとしてdの昇順に基づいてS個のノードが選択されていた。このような方法は、T>>Sのときに効率的ではない。
第2の実施例によれば、サーバ20aは、ノード情報記憶手段201aと位置情報記憶手段202とノード情報提供手段203aとノード情報更新手段204aとを含む。
ノード情報記憶手段201aに記憶されるノード情報においては、各データアイテムを保有するデータノードは、座標系内にこれらデータノードの座標別に格納される。
具体的には、第2の実施例において、位置情報はノード情報テーブルに格納される。すなわち、{P,…,P}がデータアイテムD1を保有すると想定すると、この情報がノード情報テーブル内に格納されるときには、ユークリッド空間内のこれらT個のノードの位置の順序に従って格納される。要求元ノードPの近接ノードを探索する際には、Pの座標を起点として、ユークリッド空間内におけるPの隣接ノードが検索される。このように、T個のノードが比較されるのではなく、約S個のノードがアクセスされ比較されるので、T>>Sの場合には近接ノードを検索する速度が大幅に向上する。
下記の表5は、2次元ユークリッド空間の場合のノード情報テーブルの例を示す。この表に示すように、本実施例によるノード情報テーブルは、各ノードの座標情報を含む。
Figure 2012531765
図8Aは、本実施例によるノード情報記憶手段201aにノード情報テーブルを記憶するときの概略図を示す。図8Aに示すように、データアイテムD1を保有する全ノードの情報は各次元の座標順に格納される。データアイテムD1に対しては、例えば、データアイテムD1を保有するすべてのノードのxおよびy座標と、それに対応するノードへのポインタとを格納するために、x[]およびy[]という2つの配列を設けることができる。例えば、配列x[]のi番目の要素は、データアイテムD1を保有する全ノードのx座標においてi番目のx座標であるxと、データアイテムD1を保有するノードのうちxというx座標を有する全ノードの情報への1つ以上のポインタを格納する。同様に、配列y[]のj番目の要素は、データアイテムD1を保有する全ノードのy座標においてj番目のy座標であるyと、データアイテムD1を保有するノードのうちyというy座標を有する全ノードの情報への1つ以上のポインタを格納する。
ノード情報更新手段204aは、データノード(例:データノード10)から報告された、データアイテム(例:データアイテムD2)を有することについての情報の受信後、まず位置情報記憶手段202内においてデータノード10の座標を検索し、次に検索した座標に基づいて、受信した情報とノードの座標とを、ノード情報記憶手段に記憶されるノード情報へ当該ノードの情報として追加する。そのため、元のノード情報テーブルは、当該ノードの情報を追加された後も上記の形のまま座標内に格納されている。さらに、ノード情報提供手段203aは、データノード(例:データノード10、すなわちノードP)からデータアイテム(例:データアイテムD1)を保有するデータノードの情報を求める要求を受信後、位置情報記憶手段202内でデータノード10の座標を検索し、このデータノード10の座標を起点として、ノード情報記憶手段201a内に記憶されたノード情報にリストされるデータアイテムD1を保有するデータノードの中から、座標系のデータノードを順に選択する。図8Bはノード情報提供手段203aがデータノードを順に選択するときの概略図を示す。(6,7)の座標を有するノードPが、データアイテムD1を保有するS=5のノードを要求したと想定すると、例えば図8Aに示すような形式でノード情報を記憶するノード情報記憶手段201a内において、ノード情報提供手段203aはノードPの座標から開始して、各次元の2つの方向に沿って検索の範囲を徐々に拡張していく。このとき検索された範囲内に存在するノードが、ノードPの隣接ノードである。十分な数の隣接ノードが検索されたとき(例えば、ノード数が指定された数に達したとき、または距離がしきい値に達したとき等)、検索範囲の拡張は停止される。
例えば、ノード情報提供手段203aは最初に、上記のx[]配列内にx座標=6を格納する要素が存在し、同時にy[]配列内にy座標=7を格納する要素が存在し、かつこれら2つの要素に格納されているポインタが同じノードをポイントしているかどうかをチェックする。この条件が満足される場合、それは、データアイテムD1を保有し、かつ座標(6,7)を有するもう1つのノードが存在することを意味し、このノードが選択可能である。図8Aと図8Bに示す例では、このようなノードは存在しない。
次に、ノード情報提供手段203aは、x[]配列内にx座標=6を格納する要素が存在し、同時にy[]配列内にy座標=6を格納する要素が存在し、かつこれら2つの要素に格納されているポインタが同じノードをポイントしているかどうかをチェックする。この条件が満足される場合、それは、データアイテムD1を保有し、かつ座標(6,6)を有するもう1つのノードが存在することを意味し、このノードが選択可能である。図8Aと図8Bに示す例では、このようなノードは存在しない。
その後、ノード情報提供手段203aは、x[]配列内にx座標=6を格納する要素が存在し、同時にy[]配列内にy座標=8を格納する要素が存在し、かつこれら2つの要素に格納されているポインタが同じノードをポイントしているかどうかをチェックする。この条件が満足される場合、それは、データアイテムD1を保有し、かつ座標(6,8)を有するもう1つのノードが存在することを意味し、このノードが選択可能である。図8Aと図8Bに示す例では、このようなノードは存在しない。
続いて、x[]配列内にx座標=5を格納する要素が存在し、同時にy[]配列内にy座標=7を格納する要素が存在し、かつこれら2つの要素に格納されているポインタが同じノードをポイントしているかどうかをチェックする。この条件が満足される場合、それは、データアイテムD1を保有し、かつ座標(5,7)を有するもう1つのノードが存在することを意味し、このノードが選択可能である。図8Aと図8Bに示す例では、このようなノードは存在しない。
さらに、x[]配列内にx座標=7を格納する要素が存在し、同時にy[]配列内にy座標=7を格納する要素が存在し、かつこれら2つの要素に格納されているポインタが同じノードをポイントしているかどうかをチェックする。この条件が満足される場合、それは、データアイテムD1を保有し、かつ座標(7,7)を有するもう1つのノードが存在することを意味し、このノードが選択可能である。図8Aと図8Bに示す例では、このようなノードは存在しない。
さらに、x[]配列内にx座標=5を格納する要素が存在し、同時にy[]配列内にy座標=6を格納する要素が存在し、かつこれら2つの要素に格納されているポインタが同じノードをポイントしているかどうかをチェックする。この条件が満足される場合、それは、データアイテムD1を保有し、かつ座標(5,6)を有するもう1つのノードが存在することを意味し、このノードが選択可能である。図8Aと図8Bに示すように、この時点でノードP(5,6)が発見される。よって、このノードが、ノードデータアイテムD1を保有し、ノードPに最も近接したノードとして選択される。
さらに、x[]配列内にx座標=5を格納する要素が存在し、同時にy[]配列内にy座標=8を格納する要素が存在し、かつこれら2つの要素に格納されているポインタが同じノードをポイントしているかどうかをチェックする。この条件が満足される場合、それは、データアイテムD1を保有し、かつ座標(5,8)を有するもう1つのノードが存在することを意味し、このノードが選択可能である。図8Aと図8Bに示す例では、このようなノードは存在しない。
続いて、x[]配列内にx座標=7を格納する要素が存在し、同時にy[]配列内にy座標=6を格納する要素が存在し、かつこれら2つの要素に格納されているポインタが同じノードをポイントしているかどうかをチェックする。この条件が満足される場合、それは、データアイテムD1を保有し、かつ座標(7,6)を有するもう1つのノードが存在することを意味し、このノードが選択可能である。図8Aと図8Bに示す例では、このようなノードは存在しない。
さらに、x[]配列内にx座標=7を格納する要素が存在し、同時にy[]配列内にy座標=8を格納する要素が存在し、かつこれら2つの要素に格納されているポインタが同じノードをポイントしているかどうかをチェックする。この条件が満足される場合、それは、データアイテムD1を保有し、かつ座標(7,8)を有するもう1つのノードが存在することを意味し、このノードが選択可能である。図8Aと図8Bに示すように、この時点でノードP(7,8)が発見される。よって、このノードが、データアイテムD1を保有し、ノードPに近接したノードとして選択される。
同様にして、ノードP(5,9)、P(10,8)、およびP(4,11)が順に発見される。この時点で、データアイテムD1を保有し、かつノードPに比較的近接したノードとして、計5個のノードが発見されたことになる。その後、これら5ノードの情報が、要求を発行したデータノードPに返すノード情報に含められる。
前述したように、ノード情報記憶手段201aに記憶されるノード情報テーブルには、各次元の座標値の順序に従ってノードが格納されている。そのため、指定されたノードに隣接するノードを簡単に発見することができる。
図9は、本発明の第2の実施例によるシステム1aにおいて実行される方法のプロセスフローを示す。
図4と同様に図9でも、データノード10とサーバ20a間の対話は、データ情報を報告する第1の部分とノード情報を提供する第2の部分との2部構成となっている。
データ情報を報告する第1の部分では、ステップS110において、データノード10がP2Pネットワーク内の他のデータノードと交換できるデータアイテムD2を保有している場合には、データ情報報告手段103が、データノード10がデータアイテムD2を保有していることを示すデータ情報をサーバ20aに報告する。
続いてステップS121において、サーバ20aのノード情報更新手段204aが、データノード10のデータ情報報告手段103から報告されてきた情報の受信後、データノード10の位置情報、すなわち座標C(P)を、位置情報記憶手段202に格納する。
ステップS122において、ノード情報更新手段204aは、検索された座標に従って、受信した情報をノード情報記憶手段に記憶されるノード情報に追加する。このとき、データアイテムD2を有するデータノードの中で、データノード10がその座標に基づいて配置されるようにする。
第2の部分では、ステップS210においてノード情報提供手段203aが、データノード10から送られてきた、データアイテムD1を保有するデータノードに関する情報を取得するための要求を受信すると、ステップS241においてノード情報提供手段203aが、位置情報記憶手段202内でデータノード10の座標C(P)を検索する。
ステップS242において、ノード情報提供手段203aが、データノード10の座標を起点として、ノード情報記憶手段201aに記憶されたノード情報にリストされるデータアイテムD1を保有するデータノードからデータノードを順に選択する。
ステップS250において、ノード情報提供手段203aは、選択されたデータノードをデータノード10に通知する。
ここでも、当該技術に精通した当業者には明らかなように、上述した第1の部分と第2の部分の相対的順序は一例にすぎない。例えば、データ情報を報告する第1の部分をノード情報を提供する第2の部分の後に実行したり、あるいは2つの部分を並列で実行したりすることも可能である。また、データ情報を報告するデータノードとサーバから提供されたノード情報を受信するデータノードは異なるデータノードであってもよく、対象となるデータアイテムは同一のデータアイテムであっても異なるデータアイテムであってもよい。
図10は、本発明の第3の実施例によるシステム1bのブロック図を示す。
座標系の最初の確立時に通信遅延を測定できるのは一部のノードのみであり、その後のシステムの稼働を続ける過程で、通信遅延情報が測定および取得されて値が増えていく。そのため、ネットワークの状態に応じて位置情報テーブルを更新することができる。ある方法では、ノードが性能情報(通信遅延、帯域幅等)を収集するステップと、データ交換の状態を反映するステップと、ノードの位置情報を更新するためにサーバにそれをフィードバックするステップとを含む。
第3の実施例によるシステム1bは、データノード10bとサーバ20bとを含む。
データノード10bは、ノード情報要求手段101、データ交換手段102、およびデータ情報報告手段103に加えて、性能情報フィードバック手段104を含む。
性能情報フィードバック手段104は、データノード10bと他のデータノードとの間のデータアイテム交換の状態を示す性能情報を収集し、それをサーバ20bにフィードバックする。性能情報とは、データノード10bと他のデータノードとの間のデータアイテム交換中に取得された性能統計情報であり、これには例えば通信遅延や帯域幅等が含まれる。
そのため、サーバ20bは位置情報更新手段205も含む。位置情報更新手段205は、データノード10bの性能情報フィードバック手段104からフィードバックされた情報を受信後、受信した情報に基づいて位置情報記憶手段202に記憶された座標情報を更新する。受信された情報に含まれる通信遅延に基づいて座標情報を更新する方法は、前述した通信遅延に基づいて座標情報を計算する方法と同様である。
図11は、本発明の第3の実施例によるシステム1bにおいて実行される方法のプロセスフローを示す。
図11に示すように、データノード10bとサーバ20b間の対話は、データ情報を報告する第1の部分と、ノード情報を提供する第2の部分と、位置情報を更新する第3の部分という3つに分割することができる。
第1の部分と第2の部分は図9と同じなので、以下では説明を省略する。
第3の部分では、ステップS310において、性能情報フィードバック手段104が、データノード10bと他のデータノードとの間のデータアイテム交換の状態を反映した性能情報を収集する。
ステップS320において、性能情報フィードバック手段104は、収集した性能情報をサーバ20bにフィードバックする。
ステップS33において、サーバ20bの位置情報更新手段205は、サーバ20bの性能情報フィードバック手段104からフィードバックされた情報を受信後、受信した情報に基づいて位置情報記憶手段202に記憶された座標情報を更新する。
ここでも、当該技術に精通した当業者には明らかなように、上述した第1の部分、第2の部分、および第2の部分の相対的順序は一例にすぎない。第1の部分、第2の部分、および第3の部分は、他の順序で実行することも、あるいは並列で実行することも可能である。また、データ情報を報告するデータノード、サーバから提供されたノード情報を受信するデータノード、および性能情報をフィードバックするノードは異なるデータノードであってもよく、対象となるデータアイテムは同一のデータアイテムであっても異なるデータアイテムであってもよい。
上記では本発明の特定の実施例をいくつか取り上げて説明したが、本発明には様々な修正、組み合わせ、改変をなすことが可能であり、これらの修正、組み合わせ、改変は付記された請求項の範囲内にある限りにおいて本発明に含まれることは、当業者に理解されるであろう。
例えば、図5には第1の実施例による特定の実装を示しているが、こうした特定の実装は第2の実施例や第3の実施例にも同様に適用することができる。
101:ノード情報要求手段
102:データ交換手段
103:データ情報報告手段
201:ノード情報記憶手段
202:位置情報記憶手段(座標系)
203:ノード情報提供手段
204:ノード情報更新手段
10:ノードP
20:サーバ
203−1:ノード検索手段
203−2:ノード選択手段
20−1:インデキシングサーバ
20−2:トポロジサーバ
201a:ノード情報記憶手段(座標情報の詳細を示す)
203a:ノード情報提供手段
204a:ノード情報更新手段
20a:サーバ
104:性能情報フィードバック手段
205:位置情報更新手段
10b:ノードP
20b:サーバ

Claims (25)

  1. ピアツーピア(P2P)ネットワーク内のサーバであって、
    前記P2Pネットワーク内の各データノードの座標を、前記P2Pネットワーク内のデータノード間の通信遅延に基づいて生成された座標系で示す座標情報を記憶する位置情報記憶手段と、
    第1のデータアイテムを保有するデータノードの情報を求める要求を受信すると、前記位置情報記憶手段内に記憶された座標情報に基づいて、第1のデータアイテムを保有する前記データノードの中から1つ以上のデータノードを選択し、選択した1つ以上のデータノードを示す情報を提供するノード情報提供手段と
    を備えることを特徴とするサーバ。
  2. 前記P2Pネットワークが、M個のデータノード{H,…,H}を含み(Mは1より大きい整数)、
    前記座標系は、
    Figure 2012531765
    (ここで、Err()は、誤差関数、Lijは、2つのデータノードHおよびH間の測定された通信遅延に基づく距離、dijは、座標系における2つのデータノードHおよびHの座標間のユークリッド距離)
    が最小化されるように生成される
    ことを特徴とする請求項1に記載のサーバ。
  3. 前記ノード情報提供手段が、前記位置情報記憶手段から、前記第1のデータアイテムを保有する各データノードの座標と第1のデータノードの座標を検索し、検索した座標に基づいて、第1のデータアイテムを保有する各データノードと前記第1のデータノードとの間の距離を計算し、計算した距離の昇順に基づいて第1のデータアイテムを保有するデータノードの中から1つ以上のデータノードを選択するノード選択手段を含むことを特徴とする請求項1に記載のサーバ。
  4. 各データアイテムについて、前記P2Pネットワークにおいてデータアイテムを保有するデータノードを示すノード情報を格納するノード情報記憶手段を、さらに備えることを特徴とする請求項1に記載のサーバ。
  5. 前記ノード情報提供手段は、前記ノード情報記憶手段内において前記第1のデータアイテムを保有するデータノードを検索するノード検索手段を含むことを特徴とする請求項4に記載のサーバ。
  6. 第1のデータノードが第2のデータアイテムを保有することを示す情報を受信すると、前記ノード情報記憶手段に格納されたノード情報に、受信した情報を追加するノード情報更新手段を、さらに備えることを特徴とする請求項4に記載のサーバ。
  7. 前記ノード情報記憶手段に格納されたノード情報において、各データアイテムを保有するデータノードは、座標系におけるデータノードの座標によって配置され、
    前記ノード情報提供手段は、要求を受信すると、前記位置情報記憶手段内において第1のデータノードの座標を検索し、前記第1のデータノードの座標を開始点として、前記ノード情報記憶手段に格納されたノード情報において配置された第1のデータアイテムを保有するデータノードから1つ以上のデータノードを連続して選択することを特徴とする請求項4に記載のサーバ。
  8. 前記ノード情報記憶手段に格納されたノード情報において、各データアイテムを保有するデータノードは、座標系におけるデータノードの座標によって配置され、
    前記ノード情報更新手段は、情報を受信すると、前記位置情報記憶手段内の第1のデータノードの座標を検索し、
    第2のデータアイテムを保有するデータノードの中で、第1のデータノードが第1のデータノードの座標に基づいて配置されるように、検索した座標に従って、受信した情報を前記ノード情報記憶手段に格納されたノード情報に追加することを特徴とする請求項6に記載のサーバ。
  9. 第1のデータノードと他のデータノードとの間のデータアイテム交換の状態を示す第1のデータノードからフィードバックされた性能情報を受信すると、受信した性能情報に基づいて前記位置情報記憶手段に格納された座標情報を更新する位置情報更新手段を、さらに備えることを特徴とする請求項1に記載のサーバ。
  10. ピアツーピア(P2P)ネットワーク内のノード情報を提供する方法であって、
    第1のデータアイテムを保有するデータノードの情報を求める要求を受信するステップと、
    座標情報に基づいて、第1のデータアイテムを保有するデータノードの中から1つ以上のデータノードを選択するステップと、
    選択された1つ以上のデータノードを示す情報を提供するステップとを含み、
    前記座標情報は、P2Pネットワーク内の各データノードの座標を、P2Pネットワーク内のデータノード間の通信遅延に基づいて生成された座標系で示すことを特徴とする方法。
  11. 前記P2Pネットワークが、M個のデータノード{H,…,H}を含み(Mは1より大きい整数)、
    前記座標系は、
    Figure 2012531765
    (ここで、Err()は、誤差関数、Lijは、2つのデータノードHおよびH間の測定された通信遅延に基づく距離、dijは、座標系における2つのデータノードHおよびHの座標間のユークリッド距離)
    が最小化されるように生成される
    ことを特徴とする請求項10に記載の方法。
  12. 1つ以上のデータノードを選択するステップが、
    各データアイテムを保有するデータノードを示すノード情報内で第1のデータアイテムを保有するデータノードを検索するステップと、
    前記座標情報に基づいて、前記第1のデータアイテムを保有する各データノードの座標と第1のデータノードの座標を検索するステップと、
    検索した座標に基づいて、第1のデータアイテムを保有する各データノードと前記第1のデータノードとの間の距離を計算するステップと、
    計算した距離の昇順に基づいて第1のデータアイテムを保有するデータノードの中から1つ以上のデータノードを選択するステップとを含むことを特徴とする請求項10に記載の方法。
  13. 第1のデータノードが第2のデータアイテムを保有することを示す情報を受信すると、各データアイテムを保有するデータノードを示すノード情報に、受信した情報を追加するステップをさらに含むことを特徴とする請求項10に記載の方法。
  14. 各データアイテムを保有するデータノードを示すノード情報において、各データアイテムを保有するデータノードは、座標系におけるデータノードの座標によって配置され、
    1つ以上のデータノードを選択するステップが、
    座標情報に基づいて第1のデータノードを検索するステップと、
    前記第1のデータノードの座標を開始点として、前記ノード情報において配置された第1のデータアイテムを保有するデータノードから1つ以上のデータノードを連続して選択するステップとを含むことを特徴とする請求項10に記載の方法。
  15. 各データアイテムを保有するデータノードを示すノード情報において、各データアイテムを保有するデータノードは、座標系におけるデータノードの座標によって配置され、
    前記ノード情報に受信した情報を追加するステップが、
    前記座標情報に基づいて、第1のデータノードの座標を検索するステップと、
    第2のデータアイテムを保有するデータノードの中で、第1のデータノードが第1のデータノードの座標に基づいて配置されるように、検索した座標に従って、受信した情報を前記ノード情報に追加するステップとを含むことを特徴とする請求項13に記載の方法。
  16. 第1のデータノードと他のデータノードとの間のデータアイテム交換の状態を示す第1のデータノードからフィードバックされた性能情報を受信すると、受信した性能情報に基づいて前記座標情報を更新するステップをさらに含むことを特徴とする請求項10に記載の方法。
  17. ピアツーピア(P2P)ネットワーク内のノード情報を提供するためのシステムであって、
    データノードとサーバを備え、
    前記データノードが、
    第1のデータアイテムを保有するデータノードの情報を求める要求をサーバに送信するノード情報要求手段と、
    前記サーバによって提供された情報に示されたデータノードと第1のデータアイテムを交換するデータ交換手段とを含み、
    前記サーバが、
    P2Pネットワーク内の各データノードの座標を、P2Pネットワーク内のデータノード間の通信遅延に基づいて生成された座標系で示す座標情報を記憶する位置情報記憶手段と、
    前記第1のデータアイテムを保有するデータノードに関する情報に対する要求を前記データノードから受信すると、位置情報記憶手段に記憶された座標情報に基づいて、第1のデータアイテムを保有するデータノードの中から1つ以上のデータノードを選択し、選択された1つ以上のデータノードを示す情報を前記データノードに提供するノード情報提供手段とを含む
    ことを特徴とするシステム。
  18. 前記P2Pネットワークが、M個のデータノード{H,…,H}を含み(Mは1より大きい整数)、
    前記座標系は、
    Figure 2012531765
    (ここで、Err()は、誤差関数、Lijは、2つのデータノードHおよびH間の測定された通信遅延に基づく距離、dijは、座標系における2つのデータノードHおよびHの座標間のユークリッド距離)
    が最小化されるように生成される
    ことを特徴とする請求項17に記載のシステム。
  19. 前記ノード情報提供手段が、前記位置情報記憶手段から、前記第1のデータアイテムを保有する各データノードの座標と第1のデータノードの座標を検索し、検索した座標に基づいて、第1のデータアイテムを保有する各データノードと前記第1のデータノードとの間の距離を計算し、計算した距離の昇順に基づいて第1のデータアイテムを保有するデータノードの中から1つ以上のデータノードを選択するノード選択手段を含むことを特徴とする請求項17に記載のシステム。
  20. 前記サーバが、各データアイテムについて、前記P2Pネットワークにおいてデータアイテムを保有するデータノードを示すノード情報を格納するノード情報記憶手段を、さらに備えることを特徴とする請求項17に記載のシステム。
  21. 前記ノード情報提供手段は、前記ノード情報記憶手段内において前記第1のデータアイテムを保有するデータノードを検索するノード検索手段を含むことを特徴とする請求項20に記載のシステム。
  22. 前記データノードが、前記データノードが第2のデータアイテムを保有することを示す情報を前記サーバに報告するデータ情報報告手段をさらに含み、
    前記サーバが、第1のデータノードが第2のデータアイテムを有することを示す情報を受信すると、前記ノード情報記憶手段に格納されたノード情報に、受信した情報を追加するノード情報更新手段をさらに含む
    ことを特徴とする請求項20に記載のシステム。
  23. 前記ノード情報記憶手段に格納されたノード情報において、各データアイテムを保有するデータノードは、座標系におけるデータノードの座標によって配置され、
    前記ノード情報提供手段は、要求を受信すると、前記位置情報記憶手段内において第1のデータノードの座標を検索し、前記第1のデータノードの座標を開始点として、前記ノード情報記憶手段に格納されたノード情報において配置された第1のデータアイテムを保有するデータノードから1つ以上のデータノードを連続して選択することを特徴とする請求項20に記載のシステム。
  24. 前記ノード情報記憶手段に格納されたノード情報において、各データアイテムを保有するデータノードは、座標系におけるデータノードの座標によって配置され、
    前記ノード情報更新手段は、情報を受信すると、前記位置情報記憶手段において第1のデータノードの座標を検索し、
    第2のデータアイテムを保有するデータノードの中で、第1のデータノードが第1のデータノードの座標に基づいて配置されるように、検索した座標に従って、受信した情報を前記ノード情報記憶手段に格納されたノード情報に追加することを特徴とする請求項22に記載のシステム。
  25. 前記データノードが、前記データノードと他のデータノードとの間のデータアイテム交換の状態を示す性能情報を収集し、収集した性能情報を前記サーバにフィードバックする性能情報フィードバック手段を含み、
    前記サーバが、データノードからフィードバックされた性能情報を受信すると、受信した性能情報に基づいて前記位置情報記憶手段に格納された座標情報を更新する位置情報更新手段をさらに含むことを特徴とする請求項17に記載のシステム。
JP2012516483A 2009-06-29 2010-06-21 P2pネットワークのノード情報を提供するサーバ、方法、およびシステム Expired - Fee Related JP5692757B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN200910151035.4A CN101938509B (zh) 2009-06-29 2009-06-29 为p2p网络提供节点信息的服务器、方法及系统
CN200910151035.4 2009-06-29
PCT/CN2010/000899 WO2011000209A1 (zh) 2009-06-29 2010-06-21 为p2p网络提供节点信息的服务器、方法及系统

Publications (2)

Publication Number Publication Date
JP2012531765A true JP2012531765A (ja) 2012-12-10
JP5692757B2 JP5692757B2 (ja) 2015-04-01

Family

ID=43391637

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012516483A Expired - Fee Related JP5692757B2 (ja) 2009-06-29 2010-06-21 P2pネットワークのノード情報を提供するサーバ、方法、およびシステム

Country Status (5)

Country Link
US (1) US8483089B2 (ja)
EP (1) EP2451126A4 (ja)
JP (1) JP5692757B2 (ja)
CN (1) CN101938509B (ja)
WO (1) WO2011000209A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8856320B2 (en) * 2011-02-16 2014-10-07 International Business Machines Corporation Locating a target computer device in an array
EP2834962A1 (en) * 2012-04-06 2015-02-11 Interdigital Patent Holdings, Inc. Optimization of peer-to-peer content delivery service
CN103327121A (zh) * 2013-07-10 2013-09-25 亿览在线网络技术(北京)有限公司 一种p2p网络资源传输方法和装置
US10849710B2 (en) * 2014-02-21 2020-12-01 The University Of Akron Imaging and display system for guiding medical interventions
CN109981346B (zh) * 2019-02-21 2020-07-10 清华大学 基于自治系统的网络空间坐标系创建方法及装置
CN110505280B (zh) * 2019-07-29 2022-10-25 网宿科技股份有限公司 P2p传输的控制方法及p2p节点

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7418454B2 (en) * 2004-04-16 2008-08-26 Microsoft Corporation Data overlay, self-organized metadata overlay, and application level multicasting
US7496663B2 (en) * 2005-08-29 2009-02-24 International Business Machines Corporation System and method for detecting status changes in a network using virtual coordinate mapping
CN101098272A (zh) * 2006-06-27 2008-01-02 腾讯科技(深圳)有限公司 P2p系统中的种子查询方法及p2p服务器
CN101018172A (zh) 2007-02-09 2007-08-15 浪潮电子信息产业股份有限公司 一种优化城域网内p2p传输的方法
CN100536422C (zh) * 2007-04-04 2009-09-02 中兴通讯股份有限公司 对等网络及其网络资源查询方法
KR101409991B1 (ko) * 2007-04-16 2014-06-20 삼성전자주식회사 P2p 통신 환경에서의 데이터 전송 방법 및 장치
US8930522B2 (en) * 2007-06-29 2015-01-06 Alcatel Lucent Replica/cache locator, an overlay network and a method to locate replication tables and caches therein
US7792061B2 (en) * 2007-07-05 2010-09-07 Ooma, Inc. System and method for obtaining localized information through a structured overlay network
US8332375B2 (en) * 2007-08-29 2012-12-11 Nirvanix, Inc. Method and system for moving requested files from one storage location to another
CN100518129C (zh) * 2007-12-10 2009-07-22 华中科技大学 混杂式对等网络环境下的通用资源管理方法
TWI358647B (en) * 2007-12-28 2012-02-21 Ind Tech Res Inst Data classification system and method for building
CN101237467A (zh) 2008-03-06 2008-08-06 北京邮电大学 一种引入矢量定位的移动对等网络资源发现方法
CN101437045B (zh) * 2008-12-18 2012-04-25 腾讯科技(深圳)有限公司 P2p系统中中转节点的选择方法及p2p节点

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CSNG200900173119; 藤樫 淳平: 'P2Pシステムにおける実ネットワークトポロジを考慮したオーバレイネットワークトポロジ構築に関する一考' マルチメディア,分散,協調とモバイル(DICOMO2008)シンポジウム論文集 情報処理学会シンポジ 第2008巻 第1号, 20080702, 925-931頁, 社団法人情報処理学会 *
JPN6014013314; Frank Dabek: 'Vivaldi: a decentralized network coordinate system' SIGCOMM '04 Proceedings of the 2004 conference on Applications, technologies, architectures, and pro , 200410, 15-26頁 *
JPN6014013317; 藤樫 淳平: 'P2Pシステムにおける実ネットワークトポロジを考慮したオーバレイネットワークトポロジ構築に関する一考' マルチメディア,分散,協調とモバイル(DICOMO2008)シンポジウム論文集 情報処理学会シンポジ 第2008巻 第1号, 20080702, 925-931頁, 社団法人情報処理学会 *

Also Published As

Publication number Publication date
EP2451126A4 (en) 2015-01-21
WO2011000209A1 (zh) 2011-01-06
EP2451126A1 (en) 2012-05-09
CN101938509A (zh) 2011-01-05
JP5692757B2 (ja) 2015-04-01
CN101938509B (zh) 2015-11-25
US8483089B2 (en) 2013-07-09
US20120124226A1 (en) 2012-05-17

Similar Documents

Publication Publication Date Title
US7788400B2 (en) Utilizing proximity information in an overlay network
US7483391B2 (en) Providing a notification including location information for nodes in an overlay network
US7644167B2 (en) Identifying a service node in a network
JP5692757B2 (ja) P2pネットワークのノード情報を提供するサーバ、方法、およびシステム
JP5551270B2 (ja) ピアツーピアネットワークを分解して、分解されたピアツーピアネットワークを使用するための方法および装置
JP2009545072A (ja) 階層に編成され、ネットワークを介してリンクされた複数のノードに保管された複製データを更新するための方法およびコンピュータ可読媒体(分散アプリケーションにおいて複製オーバヘッドと整合性レベルを最適にトレードオフするためのシステムおよび装置)
US7773609B2 (en) Overlay network system which constructs and maintains an overlay network
JP2012123544A (ja) 負荷分散装置及びプログラム
Moeini et al. Efficient caching for peer-to-peer service discovery in internet of things
Jelasity et al. An approach to massively distributed aggregate computing on peer-to-peer networks
CN113641869B (zh) 一种人机物融合环境下的数字对象访问方法和系统
EP1859602B1 (en) Distributed storing of network position information for nodes
Bertier et al. D2ht: The best of both worlds, integrating rps and dht
JP4533923B2 (ja) 階層型ピアツーピアシステムにおける負荷バランシング機能を有するスーパーピア及び該スーパーピアを動作させる方法
JP2008269141A (ja) オーバレイ検索装置、オーバレイ検索システム、オーバレイ検索方法およびオーバレイ検索用プログラム
Kang et al. A Semantic Service Discovery Network for Large‐Scale Ubiquitous Computing Environments
Pourqasem Toward the optimization resource discovery service in grid systems: a survey
Kapoor et al. Survey of various search mechanisms in unstructured peer-to-peer networks
Thiruvenkatam et al. A Novel Replication Protocol Using Scalable Partition Prediction and Information Estimation Algorithm for Improving DCN Data Availability
Morris et al. Context dissemination for dynamic urban-scale applications
Boshrooyeh et al. Distributed landmark placement in P2P networks
JP2003256478A (ja) オブジェクト発見ネットワーク、ネットワークの構築方法、オブジェクト発見方法、ノード、オブジェクトのクエリメッセージ転送方法、プログラム、および記録媒体
Shimizu et al. Local Tree Hunting: Finding Closest Contents from In-Network Cache
Chen et al. Elasto: Dynamic, efficient, and robust maintenance of low fan-out overlays for topic-based publish/subscribe under churn
Chen et al. Searching nearest neighbor in overlay network

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130328

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20131106

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140401

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140624

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: 20150106

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150128

R150 Certificate of patent or registration of utility model

Ref document number: 5692757

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees