通信端末およびP2Pネットワーク
【課題】処理能力に劣る通信端末などボトルネックになる通信端末を含むP2Pネットワークにおいて、高速なデータの挿入、検索、削除を実現する技術を提供する。
【解決手段】階層構造を形成するP2Pネットワークを構成する通信端末であって、自通信端末が有するパフォーマンスとP2Pネットワーク内の他通信端末が有するパフォーマンスとを比較するパフォーマンス比較部10と、自通信端末が属する階層以上の階層に属する他通信端末であって自通信端末未満のパフォーマンスを有する他通信端末の階層を、自通信端末が属する階層未満の階層に設定する階層設定部20と、自通信端末が属する階層を越える階層に属する他通信端末を認識する一方、自通信端末が属する階層未満の階層に属する他通信端末を認識しない他端末認識部30とを備える。
【解決手段】階層構造を形成するP2Pネットワークを構成する通信端末であって、自通信端末が有するパフォーマンスとP2Pネットワーク内の他通信端末が有するパフォーマンスとを比較するパフォーマンス比較部10と、自通信端末が属する階層以上の階層に属する他通信端末であって自通信端末未満のパフォーマンスを有する他通信端末の階層を、自通信端末が属する階層未満の階層に設定する階層設定部20と、自通信端末が属する階層を越える階層に属する他通信端末を認識する一方、自通信端末が属する階層未満の階層に属する他通信端末を認識しない他端末認識部30とを備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信端末およびP2Pネットワークに関する。
【背景技術】
【0002】
現在、多数のピア(Peer)が分散協調して1つの大きなデータベースを用いる技術として、P2P(Peer to Peer)技術の一種である分散ハッシュテーブルという技術が知られている(非特許文献1参照)。分散ハッシュテーブルを適用した技術として、Skype(登録商標)が知られている(非特許文献2参照)。また、分散ハッシュテーブルを、FMC(Fixed Mobile Convergence)網の様なリソースの差が大きい環境において適用する技術も提案されている(特許文献1参照)。
【0003】
P2P技術においては、P2Pネットワーク内に、処理能力(例えば、回線速度、CPUの速度)に劣るピアが接続する場合、処理能力に劣るピアがボトルネックになって、P2Pネットワーク全体の処理が遅くなる。つまり、処理能力に優れたピア(例えば、パーソナルコンピュータ)と処理能力に劣るピア(例えば、携帯電話)とが混在するP2Pネットワークの場合、全体の処理は、携帯電話の処理能力に引っ張られ遅くなる。また、IPアドレスが頻繁に変化するピア(例えば、移動端末、ダイアラップ接続環境の端末)が接続するP2Pネットワークも同様に、全体の処理が遅くなる。
【0004】
P2Pネットワーク全体の処理が遅くならないように、P2Pネットワークを階層的に構築するアプローチが提案されている(例えば、非特許文献2参照)。当該アプローチでは、処理能力に劣るピアなどボトルネックになるピアをスーパーノードと称される処理能力に優れたピアの配下にぶら下げる階層構造のP2Pネットワークを構築する。また、P2Pネットワーク全体の処理が遅くならないように、P2Pネットワークを非対称に構築するアプローチも提案されている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特願2007−334078号公報
【非特許文献】
【0006】
【非特許文献1】“Chord:A Scalable Peer−To−Peer Lookup Service for Internet Applications,”Proceedings of the 2001 ACM SIGCOMM Conference,p149−160,2001.
【非特許文献2】Baset and Schulzrinne“An Analysis of the Skype Peer−to−Peer Internet Telephony Protocol,”Columbia University.
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、P2Pネットワークを階層的に構築するアプローチの場合、スーパーノードの負荷が大きいという問題、スーパーノードに発生した障害の影響が配下の全ピアにまで波及するという問題がある。また、P2Pネットワークを非対称に構築するアプローチの場合、P2Pネットワークに参加(新規登録)する各ピアが、ボトルネックになるピアであるか否かを自己申請するが、申請そのもの正否が保証されていないという問題がある。
【0008】
本発明は、上述した課題に鑑みてなされたものであって、処理能力に劣るピア(通信端末)などボトルネックになるピアを含むP2Pネットワークにおいて、高速なデータの挿入、検索、削除を実現する技術を提供することを目的とする。
【課題を解決するための手段】
【0009】
上記問題を解決するために、本発明の一態様である通信端末は、階層構造を形成するP2Pネットワークを構成する通信端末であって、自通信端末が有するパフォーマンスとP2Pネットワーク内の他通信端末が有するパフォーマンスとを比較するパフォーマンス比較部と、自通信端末が属する階層以上の階層に属する他通信端末であって自通信端末未満のパフォーマンスを有する他通信端末の階層を、自通信端末が属する階層未満の階層に設定する階層設定部と、自通信端末が属する階層を越える階層に属する他通信端末を認識する一方、自通信端末が属する階層未満の階層に属する他通信端末を認識しない他端末認識部とを備えることを特徴とする。
【0010】
上記通信端末において、他端末認識部は、自通信端末を超えるパフォーマンスを有する他通信端末が存在しない場合には、自通信端末が属する階層に属する他通信端末を認識するようにしてもよい。
【0011】
上記通信端末において、階層設定部は、自通信端末が属する階層未満の階層に属する他通信端末であって自通信端末を超えるパフォーマンスを有する他通信端末の階層を、自通信端末が属する階層に設定するようにしてもよい。
【0012】
上記通信端末は、他端末認識部によって認識されるべき他通信端末の情報を記憶する記憶部を更に備え、階層設定部は、記憶部に情報が記憶されている他通信端末であって自通信端末未満のパフォーマンスを有する他通信端末が存在する場合、当該他通信端末の情報を記憶部から削除することによって、当該他通信端末の階層を自通信端末が属する階層未満の階層に設定するようにしてもよい。
【0013】
上記通信端末において、階層設定部は、記憶部に情報が記憶されていない他通信端末であって自通信端末を超えるパフォーマンスを有する他通信端末が存在する場合、当該他通信端末の情報を記憶部に追加することによって、当該他通信端末が属する階層を自通信端末が属する階層に設定するようにしてもよい。
【0014】
上記問題を解決するために、本発明の他の態様であるP2Pネットワークは、複数の通信端末によって階層構造を形成するP2Pネットワークであって、通信端末は、自通信端末が有するパフォーマンスとP2Pネットワーク内の他通信端末が有するパフォーマンスとを比較するパフォーマンス比較部と、自通信端末が属する階層以上の階層に属する他通信端末であって自通信端末未満のパフォーマンスを有する他通信端末の階層を、自通信端末が属する階層未満の階層に設定する階層設定部と、自通信端末が属する階層を越える階層に属する他通信端末を認識する一方、自通信端末が属する階層未満の階層に属する他通信端末を認識しない他端末認識部とを備えることを特徴とする。
【発明の効果】
【0015】
本発明によれば、処理能力に劣る通信端末などボトルネックになる通信端末を含むP2Pネットワークにおいて、高速なデータの挿入、検索、削除ができるようになる。また、本発明によれば、P2Pネットワークの構築に係る既存のアルゴリズムを引き続き利用することができる。
【図面の簡単な説明】
【0016】
【図1】本発明の一実施形態に係るP2Pネットワーク1の模式図である。
【図2】P2Pネットワーク1を構成する通信端末の機能ブロック図である。
【図3】P2Pネットワーク1内に記憶される情報の一例である。
【図4】P2Pネットワーク1の模式図である。
【図5】P2Pネットワーク1の模式図である。
【図6】P2Pネットワーク1の模式図である。
【図7】P2Pネットワーク1の模式図である。
【図8】P2Pネットワーク1の模式図である。
【図9】P2Pネットワーク1の模式図である。
【図10】P2Pネットワーク1を構成する通信端末の動作の一例を示すフローチャートである。
【発明を実施するための形態】
【0017】
以下、本発明の実施形態について図面を参照して詳細に説明する。本発明の一実施形態に係るP2Pネットワーク1は、図1に示すように、P2Pネットワークの一態様であるChordネットワークである。P2Pネットワーク1は複数の通信端末から構成される。例えば、図1に示す例おいては、P2Pネットワーク1は、ChordID「0」のPC(Personal Computer)、ChordID「13」の携帯電話、…、ChordID「156」の携帯電話から構成される。ChordIDは、各通信端末を識別する識別情報であって各通信端末は少なくとも自身のChordIDを記憶する。なお、図1は、階層の表現を省略した模式図である。
【0018】
P2Pネットワーク1を構成する各通信端末は、パフォーマンス(例えば、物理帯域(回線速度)、CPUの速度、IPアドレスの変化頻度、連続接続時間、記憶容量)が異なる。例えば、PCは、携帯電話よりもパフォーマンスが高い(例えば、CPUの速度が高い、IPアドレスの変化頻度が少ない、連続接続時間が長い、記憶容量が大きい)。高パフォーマンスの通信端末は、低パフォーマンスの通信端末に比べ、P2Pネットワーク1全体の処理速度を低下させる程度が小さい。
【0019】
また、各通信端末は、図1に示すように、自通信端末のChordID(以下、「自ChordID」という)の昇順に時計回りにP2Pネットワーク1に仮想的(論理的)に配置される。また、各通信端末は、自通信端末の1つ上流(時計回り順の後方)に位置する他通信端末(自ChordID未満のChordIDのうち最大のChordIDである他通信端末、または、自ChordID未満のChordIDである他通信端末が存在しないときは最大のChordIDである他通信端末)のChordIDに1を加算したChordIDから自ChordID迄のChordIDを管理対象とする。例えば、ChordID「70」のPCは、自通信端末の1つ上流に位置するChordID「57」のPCのChordID「57」に1を加算したChordID「58」から自ChordID「70」迄のChordIDを管理対象とする。
【0020】
各通信端末は、管理対象とするChordIDが付与されたデータを管理(保持)する。換言すれば、各データは、ChordIDが付与され、付与されたChordIDを管理対象とする通信端末によって保持される。例えば、ChordID「100」のデータは、ChordID「91」からChordID「112」迄のChordIDを管理対象とするChordID「112」の通信端末に保持される。
【0021】
各通信端末は、図2に示すように、記憶部10、パフォーマンス比較部20、階層設定部30および他端末認識部30を備える。
【0022】
記憶部10は、自通信端末に隣接する他通信端末(以下、「隣接通信端末」という)に係る隣接通信端末情報を記憶する。隣接通信端末は、他端末認識部40によって認識される他通信端末である。隣接通信端末情報は、他端末認識部40によって認識されるべき他通信端末の情報の一例である。
【0023】
図3(a)は、隣接通信端末情報の一例である。項目「ChordID」は、当該通信端末に隣接する隣接通信端末のChordIDである。隣接通信端末のChordIDは、具体的には、自通信端末の1つ上流に位置する他通信端末のChordID、および、自通信端末の1つ下流(時計回りの順に前方)に位置する他通信端末(自ChordIDを超えるChordIDのうち最小のChordIDである他通信端末、または、自ChordIDを超えるChordIDである他通信端末が存在しないときは最小のChordIDである他通信端末)に位置する他通信端末のChordIDである。
【0024】
なお、記憶部10は、自通信端末の1つ上流に位置する他通信端末および自通信端末の1つ下流に位置する他通信端末のChordIDに加え、自ChordIDに20、21、22、…、2n−1を加算したChordIDを管理対象とする他通信端末のChordIDを隣接通信端末情報として記憶してもよい。
【0025】
パフォーマンス比較部20は、自通信端末が有するパフォーマンスとP2Pネットワーク1内の他通信端末が有するパフォーマンスとを比較する。具体的には、パフォーマンス比較部20は、他通信端末に係る通信端末属性情報を参照し、当該他通信端末のパフォーマンスが自通信端末のパフォーマンス以上であるか否かを判断する。パフォーマンス比較部20は、比較結果を階層設定部30に供給する。
【0026】
図3(b)は、通信端末属性情報の一例である。項目「ChordID」は、当該通信端末のChordIDであって通信端末属性情報の検索キーでもある。項目「通信端末名」は、当該通信端末の名称である。項目「IPアドレス」は、当該通信端末のIPアドレスである。項目「回線品質情報」は、当該通信端末の回線品質情報である。項目「最新更新時刻」は、当該通信端末属性情報の更新時刻である。
【0027】
他端末認識部40は、自通信端末が属する階層を越える階層に属する他通信端末を認識する。具体的には、他端末認識部40は、記憶部10に隣接通信端末情報が記憶されている他通信端末を、自通信端末が属する階層を越える階層に属する他通信端末として認識する。即ち、下位の層に属する通信端末は、上位の層に属する他通信端末を認識する。
【0028】
他端末認識部40は、自通信端末が属する階層未満の階層に属する他通信端末を認識しない。具体的には、他端末認識部40は、記憶部10に隣接通信端末情報が記憶されていない他通信端末を、自通信端末が属する階層未満の階層に属する他通信端末として認識しない。即ち、上位の層に属する通信端末は、下位の層に属する他通信端末を認識しない。
【0029】
但し、通信端末は、自通信端末を超えるパフォーマンスを有する他通信端末が存在しない場合には、自通信端末が属する階層に属する他通信端末を認識する。即ち、最上位階層に属する通信端末は、同じく最上位階層に属する他通信端末を認識する。
【0030】
なお、他端末認識部40は、例えば、P2Pネットワーク1においてデータを検索するときに、記憶部10を参照し、他通信端末を認識する。また、データを検索するときに他通信端末を認識した他端末認識部40は、認識した他通信端末にデータ検索メッセージを送信する。
【0031】
階層設定部30は、パフォーマンス比較部20から比較結果を取得する。階層設定部30は、記憶部10に情報が記憶されている他通信端末であって自通信端末未満のパフォーマンスを有する他通信端末が存在する場合、当該他通信端末の情報を記憶部10から削除する。換言すれば、階層設定部30は、自通信端末が属する階層以上の階層に属する他通信端末であって自通信端末未満のパフォーマンスを有する他通信端末の階層を、自通信端末が属する階層未満の階層に設定する。即ち、通信端末は、一の他通信端末のパフォーマンスが自通信端末超から自通信端末未満へと下落した場合、当該他通信端末の階層を自通信端末が属する階層未満に降格させる。
【0032】
但し、階層設定部30は、自通信端末が最上位階層以外の階層に属する場合、同じ階層に属する他通信端末を認識できないようにする。具体的には、階層設定部30は、自通信端末が最上位階層以外の階層に属する場合、記憶部10に情報が記憶されている他通信端末であって自通信端末と同じパフォーマンスを有する他通信端末が存在する場合、当該他通信端末の情報を記憶部10から削除する。即ち、最上位階層以外の階層に属する通信端末は、一の他通信端末のパフォーマンスが自通信端末超から自通信端末以下へと上昇した場合、当該他通信端末の階層を自通信端末が属する階層未満に降格させる。なお、階層設定部30は、自通信端末を超えるパフォーマンスを有する他通信端末が存在する場合に、自通信端末が最上位階層以外の階層に属すると判断する。
【0033】
また、階層設定部30は、当該他通信端末と異なる他通信端末に当該他通信端末を認識させるようにするべく、上記異なる他通信端末上の隣接通信端末情報に当該他通信端末に係る情報を追加すべき命令を、上記異なる他通信端末に送信する。
【0034】
階層設定部30は、記憶部10に情報が記憶されていない他通信端末であって自通信端末を超えるパフォーマンスを有する他通信端末が存在する場合、当該他通信端末の情報を記憶部10に追加する。換言すれば、階層設定部30は、自通信端末が属する階層未満の階層に属する他通信端末であって自通信端末を超えるパフォーマンスを有する他通信端末の階層を、自通信端末が属する階層に設定する。即ち、通信端末は、一の他通信端末のパフォーマンスが自通信端末未満から自通信端末超へと上昇した場合、当該他通信端末の階層を自通信端末が属する階層に昇格させる。
【0035】
但し、階層設定部30は、自通信端末が最上位階層に属する場合、同じく最上位階層に属する他通信端末を認識できるようにする。具体的には、階層設定部30は、自通信端末が最上位階層に属する場合、記憶部10に情報が記憶されていない他通信端末であって自通信端末と同じパフォーマンスを有する他通信端末が存在する場合、当該他通信端末の情報を記憶部10に追加する。即ち、最上位階層に属する通信端末は、一の他通信端末のパフォーマンスが自通信端末未満から自通信端末以上へと上昇した場合、当該他通信端末の階層を自通信端末が属する最上位階層に昇格させる。なお、階層設定部30は、自通信端末を超えるパフォーマンスを有する他通信端末が存在しない場合に、自通信端末が最上位階層に属すると判断する。
【0036】
また、階層設定部30は、当該隣接通信端末と異なる他通信端末に当該隣接通信端末を認識させないようにするべく、上記異なる他通信端末上の隣接通信端末情報から当該隣接通信端末に係る情報を削除すべき命令を、上記異なる他通信端末に送信する。
【0037】
各通信端末の上記動作によって、例えば図4に示すように、階層化されたP2Pネットワーク1が構成される。図4は、2階層(上位の階層A〜下位の階層B)のP2Pネットワーク1の模式図である。図4において、高いパフォーマンスを有する通信端末b、c、f、iは階層Aに属し、低いパフォーマンスを有する通信端末a、d、e、g、hは階層Bに属している。
【0038】
各通信端末は、自通信端末が属する階層を越える階層に属する他通信端末を認識し、自通信端末が属する階層未満の階層に属する他通信端末を認識しない。また、最上位階層に属する通信端末は、同じく最上位階層に属する他通信端末を認識し、最上位階層に以外の階層に属する通信端末は、同じ階層に属する他通信端末を認識しない。従って、最上位階層は階層Aである図4の場合、階層A以外の階層である階層Bに属する通信端末eは、自通信端末が属する階層Bを越える階層Aに属する他通信端末b、c、f、iを認識し、自通信端末が属する階層以下の階層Bに属する他通信端末a、d、g、hを認識しない。また、階層Aに属する通信端末fは、同じく階層Aに属する他通信端末b、c、iを認識し、自通信端末が属する階層未満の階層Bに属する他通信端末a、d、e、g、hを認識しない。従って、自通信端末が属する階層未満の階層に属するボトルネックになる他通信端末が、データの挿入、検索、削除に関与しなくなるため、データの挿入、検索、削除が高くなる。
【0039】
続いて、P2Pネットワーク1の諸機能(通信端末属性情報の更新機能、データの複製機能、通信端末の参加(新規登録)機能、通信端末の追加および削除機能、通信端末の降格および昇格機能、データ検索機能)を更に説明する。
【0040】
[通信端末属性情報の更新機能]
P2Pネットワーク1は、上述の如く、通信端末属性情報を記憶する。各通信端末は、定期的(例えば、10分毎)に、自ChordIDをキーとして自通信端末に係る通信端末属性情報を更新する。また、各通信端末は、自通信端末の1つ下流に位置する他通信端末に自身の通信端末属性情報を送信する。
【0041】
[データの複製機能]
各通信端末は、複製機能として、自通信端末の1つ下流に位置する他通信端末に対し、自通信端末が管理するデータを複製して転送する。なお、各通信端末は、上述の如く、自通信端末の1つ上流に位置する他通信端末のChordIDに1を加算したChordIDから自ChordID迄のデータを管理する。
【0042】
他通信端末からデータを受信した通信端末は、当該データが管理対象であるか否かを判断する。他通信端末から受信したデータが管理対象であると判断した通信端末は、当該データを管理するとともに、自通信端末の1つ下流に位置する他通信端末に対し、当該データを複製して転送する。他通信端末から受信したデータが管理対象でないと判断した通信端末は、当該データを無視する(保持も転送もしない)。これにより、図5に示すように、P2Pネットワーク1内のデータが各階層に記憶されるようになる。なお、図5〜図9は、2階層(上位階層S、下位階層T)のP2Pネットワーク1の一部の模式図である。図5〜図9において、実線矢印は各通信端末における、1つ下流に位置する隣接他通信端末を示している。また、図5において、高パフォーマンスの通信端末l、m、nは階層Sに属し、低パフォーマンスの通信端末o、pは階層Tに属している。
【0043】
[通信端末の参加(新規登録)機能]
なお、P2Pネットワーク1に参加(新規登録)しようとする通信端末(以下、「参加通信端末」という)は、当該P2Pネットワーク1に既に参加している少なくとも1つの通信端末のIPアドレスを保持している。
(処理1)参加通信端末は、自ChordIDを算出する。例えば、参加通信端末は、自通信端末に係る固有情報(例えば、IPアドレス、MACアドレス)のハッシュ値(例えば、sha−1による計算値)を自ChordIDとする。
(処理2)参加通信端末は、自ChordIDから20、21、22、…、2n−1のChordIDを管理対象とする他通信端末を検索し、当該他通信端末の隣接通信端末情報に自通信端末に係る情報を挿入(追加)する。
(処理3)高パフォーマンスである参加通信端末(例えば、PC)は、他通信端末の隣接通信端末情報を更新するため、P2Pネットワーク1に自通信端末が参加した旨を他通信端末に通知する。
【0044】
[通信端末の追加および削除機能]
P2Pネットワーク1に追加された通信端末は、自通信端末が追加された旨を隣接通信端末に通知する。また、他通信端末が追加された旨を通知された通信端末は、自通信端末の通信端末属性情報の直接の送信先である他通信端末に対し、自通信端末が追加された旨を通知する。これにより、図5および図6に示すように、P2Pネットワーク1が再編成される。
【0045】
図5に示す環境に図6(a)に示すように通信端末qを追加する場合、図6(b)に示すように、通信端末nおよび通信端末pにおいて1つ下流に位置する隣接他通信端末が通信端末mから通信端末qに更新される。なお、削除の場合には、図6および図7に示すように、P2Pネットワーク1が再編成される。図6(b)に示す環境から図7(a)に示すように通信端末qを削除する場合、図7(b)に示すように、通信端末nおよび通信端末pにおいて1つ下流に位置する隣接他通信端末が通信端末qから通信端末mに更新される。
【0046】
[通信端末の降格および昇格機能]
降格機能は、自通信端末の1つ上流に位置する他通信端末の階層を降格させる機能である。昇格機能は、自通信端末の1つ下流に位置する他通信端末の階層を昇格させる機能である。
【0047】
[降格機能]
各通信端末は、自通信端末の1つ下流に位置する他通信端末の状態を監視し、当該他通信端末が下位層通信端末であると判断した場合、当該他通信端末の階層を降格させる。具体的には、自通信端末の隣接通信端末情報から当該他通信端末に係る情報を削除するとともに、2つ下流に位置する他通信端末に対し、隣接通信端末情報から当該通信端末に係る情報の削除を要請(通知)する。当該要請を受信した通信端末は、自通信端末の隣接通信端末情報から当該通信端末に係る情報を削除する。これにより、図5および8に示すように、P2Pネットワーク1が再編成される。なお、各通信端末は、例えば、通信端末属性情報を1つ下流に位置する他通信端末に送信する際に、当該他通信端末の状態を監視する。
【0048】
なお、図5に示す環境の通信端末oを図8(a)に示すように階層Tから階層U(階層Tの下位の層)に降格させる場合、まず、図8(b)に示すように、通信端末nにおいて1つ下流に位置する隣接他通信端末を通信端末mから通信端末lに更新する。続いて、図8(b)に示すように、通信端末oおよび通信端末pにおいて1つ下流に位置する隣接他通信端末を通信端末mから通信端末lに更新する。なお、結果的に、通信端末oは階層Tに留まって通信端末mが階層Sから階層Tに降格する。
【0049】
[昇格機能]
各通信端末は、自通信端末の1つ上流に位置する他通信端末(隣接通信端末以外の他通信端末)の状態を監視し、当該他通信端末が上位層通信端末であると判断した場合、当該他通信端末を昇格させる。具体的には、自通信端末の隣接通信端末情報に当該他通信端末に係る情報を挿入(追加)するとともに、1つ上流に位置する隣接通信端末、および、当該隣接通信端末以外の他通信端末であって自通信端末に対する直接的な通信端末属性情報の送信元である他通信端末に対し、隣接通信端末情報に当該他通信端末に係る情報の挿入(追加)を要請(通知)する。当該要請を受信した通信端末は、昇格する他通信端末のChordIDを参照し、自通信端末の隣接通信端末情報に当該他通信端末に係る情報を挿入(追加)する。続いて、通信端末属性情報を転送する他通信端末に対し、昇格によって不可視となる他通信端末の削除を申請する。これにより、図5および9に示すように、P2Pネットワーク1が再編成される。なお、各通信端末は、例えば、通信端末属性情報を隣接通信端末以外の1つ上流に位置する他通信端末から受信する際に、当該他通信端末の状態を監視する。
【0050】
なお、図5に示す環境の通信端末oを図9(a)に示すように階層Tから階層Sに昇格させる場合、まず、図9(b)に示すように、通信端末nにおいて1つ下流に位置する隣接他通信端末を通信端末mから通信端末oに更新する。続いて、図9(b)に示すように、通信端末pにおいて1つ下流に位置する隣接他通信端末を通信端末mから通信端末oに更新する。
【0051】
[データの検索機能]
(処理1)検索キーIDを算出する。具体的には、検索語のハッシュ値を検索キーIDとする。
(処理2)検索キーIDを用いて検索要求を送信する。
(処理3)検索語にマッチするファイルを保持するChordIDのリストを取得する。
(処理4)ChordIDを検索キーとして再度、検索要求を送信する。具体的には、ChordID、IPアドレス、回線品質情報などの対応を取得し、最適な通信端末にファイル転送要求を送信する。
【0052】
続いて、図10を用いて通信端末の動作を説明する。パフォーマンス比較部20は、他通信端末のパフォーマンスと自通信端末のパフォーマンスを比較し、他通信端末のパフォーマンスが自通信端末のパフォーマンス未満であるか否かを判断する(ステップS100)。
【0053】
階層設定部30は、パフォーマンス比較部20によって他通信端末のパフォーマンスが自通信端末のパフォーマンス未満であると判断された場合(ステップS100:Yes)、記憶部10に当該他通信端末の情報が記憶されているか否かを判断する(ステップS120)。階層設定部30は、記憶部10に当該他通信端末の情報が記憶されていると判断した場合(ステップS120:Yes)、当該他通信端末の情報を記憶部10から削除する(ステップS130)。また、階層設定部30は、当該他通信端末と異なる他通信端末に当該他通信端末を認識させるようにするべく、上記異なる他通信端末上の隣接通信端末情報に当該他通信端末に係る情報を追加すべき命令を、上記異なる他通信端末に送信する。そして本フローチャートは終了する。一方、階層設定部30は、記憶部10に当該他通信端末の情報が記憶されていないと判断した場合(ステップS120:No)、ステップS130を飛ばして本フローチャートは終了する。
【0054】
パフォーマンス比較部20は、他通信端末のパフォーマンスが自通信端末のパフォーマンス未満でないと判断した場合(ステップS100:No)、他通信端末のパフォーマンスが自通信端末のパフォーマンスを超えるか否かを判断する(ステップS102)。階層設定部30は、パフォーマンス比較部20によって他通信端末のパフォーマンスが自通信端末のパフォーマンスを超えると判断された場合(ステップS102:Yes)、記憶部10に当該他通信端末の情報が記憶されているか否かを判断する(ステップS122)。階層設定部30は、記憶部10に当該他通信端末の情報が記憶されていないと判断した場合(ステップS122:No)、当該他通信端末の情報を記憶部10に追加する(ステップS132)。また、階層設定部30は、当該隣接通信端末と異なる他通信端末に当該隣接通信端末を認識させないようにするべく、上記異なる他通信端末上の隣接通信端末情報から当該隣接通信端末に係る情報を削除すべき命令を、上記異なる他通信端末に送信する。一方、階層設定部30は、記憶部10に当該他通信端末の情報が記憶されていると判断した場合(ステップS122:Yes)、ステップS132を飛ばして本フローチャートは終了する。
【0055】
階層設定部30は、パフォーマンス比較部20によって他通信端末のパフォーマンスが自通信端末のパフォーマンスを超えていないと判断された場合(ステップS102:No)、即ち、他通信端末のパフォーマンスと自通信端末のパフォーマンスとが同じである場合、自通信端末は最上位の階層に属するか否かを判断する(ステップS110)。例えば、階層設定部30は、自通信端末を超えるパフォーマンスを有する他通信端末が存在しない場合には、自通信端末は最上位の階層に属すると判断する。
【0056】
階層設定部30は、自通信端末は最上位の階層に属すると判断した場合(ステップS110:Yes)、記憶部10に当該他通信端末の情報が記憶されているか否かを判断する(ステップS124)。階層設定部30は、記憶部10に当該他通信端末の情報が記憶されていないと判断した場合(ステップS124:No)、当該他通信端末の情報を記憶部10に追加する(ステップS134)。また、階層設定部30は、当該隣接通信端末と異なる他通信端末に当該隣接通信端末を認識させないようにするべく、上記異なる他通信端末上の隣接通信端末情報から当該隣接通信端末に係る情報を削除すべき命令を、上記異なる他通信端末に送信する。一方、階層設定部30は、記憶部10に当該他通信端末の情報が記憶されていると判断した場合(ステップS124:Yes)、ステップS134を飛ばして本フローチャートは終了する。
【0057】
階層設定部30は、自通信端末は最上位の階層に属さないと判断した場合(ステップS110:No)、記憶部10に当該他通信端末の情報が記憶されているか否かを判断する(ステップS126)。階層設定部30は、記憶部10に当該他通信端末の情報が記憶されていると判断した場合(ステップS126:Yes)、当該他通信端末の情報を記憶部10から削除する(ステップS136)。また、階層設定部30は、当該他通信端末と異なる他通信端末に当該他通信端末を認識させるようにするべく、上記異なる他通信端末上の隣接通信端末情報に当該他通信端末に係る情報を追加すべき命令を、上記異なる他通信端末に送信する。そして本フローチャートは終了する。一方、階層設定部30は、記憶部10に当該他通信端末の情報が記憶されていないと判断した場合(ステップS126:No)、ステップS136を飛ばして本フローチャートは終了する。
【0058】
以上、本実施形態によれば、処理能力に劣る通信端末などボトルネックになる通信端末を含むP2Pネットワークにおいて、高速なデータの挿入、検索、削除ができるようになる。また、本発明によれば、P2Pネットワークの構築に係る既存のアルゴリズムを引き続き利用することができる。
【0059】
なお、本発明の通信端末の各処理を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、当該記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、本発明の通信端末に係る上述した種々の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【0060】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【0061】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0062】
1 P2Pネットワーク 10 記憶部 20 パフォーマンス比較部 30 階層設定部 40 他端末認識部
【技術分野】
【0001】
本発明は、通信端末およびP2Pネットワークに関する。
【背景技術】
【0002】
現在、多数のピア(Peer)が分散協調して1つの大きなデータベースを用いる技術として、P2P(Peer to Peer)技術の一種である分散ハッシュテーブルという技術が知られている(非特許文献1参照)。分散ハッシュテーブルを適用した技術として、Skype(登録商標)が知られている(非特許文献2参照)。また、分散ハッシュテーブルを、FMC(Fixed Mobile Convergence)網の様なリソースの差が大きい環境において適用する技術も提案されている(特許文献1参照)。
【0003】
P2P技術においては、P2Pネットワーク内に、処理能力(例えば、回線速度、CPUの速度)に劣るピアが接続する場合、処理能力に劣るピアがボトルネックになって、P2Pネットワーク全体の処理が遅くなる。つまり、処理能力に優れたピア(例えば、パーソナルコンピュータ)と処理能力に劣るピア(例えば、携帯電話)とが混在するP2Pネットワークの場合、全体の処理は、携帯電話の処理能力に引っ張られ遅くなる。また、IPアドレスが頻繁に変化するピア(例えば、移動端末、ダイアラップ接続環境の端末)が接続するP2Pネットワークも同様に、全体の処理が遅くなる。
【0004】
P2Pネットワーク全体の処理が遅くならないように、P2Pネットワークを階層的に構築するアプローチが提案されている(例えば、非特許文献2参照)。当該アプローチでは、処理能力に劣るピアなどボトルネックになるピアをスーパーノードと称される処理能力に優れたピアの配下にぶら下げる階層構造のP2Pネットワークを構築する。また、P2Pネットワーク全体の処理が遅くならないように、P2Pネットワークを非対称に構築するアプローチも提案されている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特願2007−334078号公報
【非特許文献】
【0006】
【非特許文献1】“Chord:A Scalable Peer−To−Peer Lookup Service for Internet Applications,”Proceedings of the 2001 ACM SIGCOMM Conference,p149−160,2001.
【非特許文献2】Baset and Schulzrinne“An Analysis of the Skype Peer−to−Peer Internet Telephony Protocol,”Columbia University.
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、P2Pネットワークを階層的に構築するアプローチの場合、スーパーノードの負荷が大きいという問題、スーパーノードに発生した障害の影響が配下の全ピアにまで波及するという問題がある。また、P2Pネットワークを非対称に構築するアプローチの場合、P2Pネットワークに参加(新規登録)する各ピアが、ボトルネックになるピアであるか否かを自己申請するが、申請そのもの正否が保証されていないという問題がある。
【0008】
本発明は、上述した課題に鑑みてなされたものであって、処理能力に劣るピア(通信端末)などボトルネックになるピアを含むP2Pネットワークにおいて、高速なデータの挿入、検索、削除を実現する技術を提供することを目的とする。
【課題を解決するための手段】
【0009】
上記問題を解決するために、本発明の一態様である通信端末は、階層構造を形成するP2Pネットワークを構成する通信端末であって、自通信端末が有するパフォーマンスとP2Pネットワーク内の他通信端末が有するパフォーマンスとを比較するパフォーマンス比較部と、自通信端末が属する階層以上の階層に属する他通信端末であって自通信端末未満のパフォーマンスを有する他通信端末の階層を、自通信端末が属する階層未満の階層に設定する階層設定部と、自通信端末が属する階層を越える階層に属する他通信端末を認識する一方、自通信端末が属する階層未満の階層に属する他通信端末を認識しない他端末認識部とを備えることを特徴とする。
【0010】
上記通信端末において、他端末認識部は、自通信端末を超えるパフォーマンスを有する他通信端末が存在しない場合には、自通信端末が属する階層に属する他通信端末を認識するようにしてもよい。
【0011】
上記通信端末において、階層設定部は、自通信端末が属する階層未満の階層に属する他通信端末であって自通信端末を超えるパフォーマンスを有する他通信端末の階層を、自通信端末が属する階層に設定するようにしてもよい。
【0012】
上記通信端末は、他端末認識部によって認識されるべき他通信端末の情報を記憶する記憶部を更に備え、階層設定部は、記憶部に情報が記憶されている他通信端末であって自通信端末未満のパフォーマンスを有する他通信端末が存在する場合、当該他通信端末の情報を記憶部から削除することによって、当該他通信端末の階層を自通信端末が属する階層未満の階層に設定するようにしてもよい。
【0013】
上記通信端末において、階層設定部は、記憶部に情報が記憶されていない他通信端末であって自通信端末を超えるパフォーマンスを有する他通信端末が存在する場合、当該他通信端末の情報を記憶部に追加することによって、当該他通信端末が属する階層を自通信端末が属する階層に設定するようにしてもよい。
【0014】
上記問題を解決するために、本発明の他の態様であるP2Pネットワークは、複数の通信端末によって階層構造を形成するP2Pネットワークであって、通信端末は、自通信端末が有するパフォーマンスとP2Pネットワーク内の他通信端末が有するパフォーマンスとを比較するパフォーマンス比較部と、自通信端末が属する階層以上の階層に属する他通信端末であって自通信端末未満のパフォーマンスを有する他通信端末の階層を、自通信端末が属する階層未満の階層に設定する階層設定部と、自通信端末が属する階層を越える階層に属する他通信端末を認識する一方、自通信端末が属する階層未満の階層に属する他通信端末を認識しない他端末認識部とを備えることを特徴とする。
【発明の効果】
【0015】
本発明によれば、処理能力に劣る通信端末などボトルネックになる通信端末を含むP2Pネットワークにおいて、高速なデータの挿入、検索、削除ができるようになる。また、本発明によれば、P2Pネットワークの構築に係る既存のアルゴリズムを引き続き利用することができる。
【図面の簡単な説明】
【0016】
【図1】本発明の一実施形態に係るP2Pネットワーク1の模式図である。
【図2】P2Pネットワーク1を構成する通信端末の機能ブロック図である。
【図3】P2Pネットワーク1内に記憶される情報の一例である。
【図4】P2Pネットワーク1の模式図である。
【図5】P2Pネットワーク1の模式図である。
【図6】P2Pネットワーク1の模式図である。
【図7】P2Pネットワーク1の模式図である。
【図8】P2Pネットワーク1の模式図である。
【図9】P2Pネットワーク1の模式図である。
【図10】P2Pネットワーク1を構成する通信端末の動作の一例を示すフローチャートである。
【発明を実施するための形態】
【0017】
以下、本発明の実施形態について図面を参照して詳細に説明する。本発明の一実施形態に係るP2Pネットワーク1は、図1に示すように、P2Pネットワークの一態様であるChordネットワークである。P2Pネットワーク1は複数の通信端末から構成される。例えば、図1に示す例おいては、P2Pネットワーク1は、ChordID「0」のPC(Personal Computer)、ChordID「13」の携帯電話、…、ChordID「156」の携帯電話から構成される。ChordIDは、各通信端末を識別する識別情報であって各通信端末は少なくとも自身のChordIDを記憶する。なお、図1は、階層の表現を省略した模式図である。
【0018】
P2Pネットワーク1を構成する各通信端末は、パフォーマンス(例えば、物理帯域(回線速度)、CPUの速度、IPアドレスの変化頻度、連続接続時間、記憶容量)が異なる。例えば、PCは、携帯電話よりもパフォーマンスが高い(例えば、CPUの速度が高い、IPアドレスの変化頻度が少ない、連続接続時間が長い、記憶容量が大きい)。高パフォーマンスの通信端末は、低パフォーマンスの通信端末に比べ、P2Pネットワーク1全体の処理速度を低下させる程度が小さい。
【0019】
また、各通信端末は、図1に示すように、自通信端末のChordID(以下、「自ChordID」という)の昇順に時計回りにP2Pネットワーク1に仮想的(論理的)に配置される。また、各通信端末は、自通信端末の1つ上流(時計回り順の後方)に位置する他通信端末(自ChordID未満のChordIDのうち最大のChordIDである他通信端末、または、自ChordID未満のChordIDである他通信端末が存在しないときは最大のChordIDである他通信端末)のChordIDに1を加算したChordIDから自ChordID迄のChordIDを管理対象とする。例えば、ChordID「70」のPCは、自通信端末の1つ上流に位置するChordID「57」のPCのChordID「57」に1を加算したChordID「58」から自ChordID「70」迄のChordIDを管理対象とする。
【0020】
各通信端末は、管理対象とするChordIDが付与されたデータを管理(保持)する。換言すれば、各データは、ChordIDが付与され、付与されたChordIDを管理対象とする通信端末によって保持される。例えば、ChordID「100」のデータは、ChordID「91」からChordID「112」迄のChordIDを管理対象とするChordID「112」の通信端末に保持される。
【0021】
各通信端末は、図2に示すように、記憶部10、パフォーマンス比較部20、階層設定部30および他端末認識部30を備える。
【0022】
記憶部10は、自通信端末に隣接する他通信端末(以下、「隣接通信端末」という)に係る隣接通信端末情報を記憶する。隣接通信端末は、他端末認識部40によって認識される他通信端末である。隣接通信端末情報は、他端末認識部40によって認識されるべき他通信端末の情報の一例である。
【0023】
図3(a)は、隣接通信端末情報の一例である。項目「ChordID」は、当該通信端末に隣接する隣接通信端末のChordIDである。隣接通信端末のChordIDは、具体的には、自通信端末の1つ上流に位置する他通信端末のChordID、および、自通信端末の1つ下流(時計回りの順に前方)に位置する他通信端末(自ChordIDを超えるChordIDのうち最小のChordIDである他通信端末、または、自ChordIDを超えるChordIDである他通信端末が存在しないときは最小のChordIDである他通信端末)に位置する他通信端末のChordIDである。
【0024】
なお、記憶部10は、自通信端末の1つ上流に位置する他通信端末および自通信端末の1つ下流に位置する他通信端末のChordIDに加え、自ChordIDに20、21、22、…、2n−1を加算したChordIDを管理対象とする他通信端末のChordIDを隣接通信端末情報として記憶してもよい。
【0025】
パフォーマンス比較部20は、自通信端末が有するパフォーマンスとP2Pネットワーク1内の他通信端末が有するパフォーマンスとを比較する。具体的には、パフォーマンス比較部20は、他通信端末に係る通信端末属性情報を参照し、当該他通信端末のパフォーマンスが自通信端末のパフォーマンス以上であるか否かを判断する。パフォーマンス比較部20は、比較結果を階層設定部30に供給する。
【0026】
図3(b)は、通信端末属性情報の一例である。項目「ChordID」は、当該通信端末のChordIDであって通信端末属性情報の検索キーでもある。項目「通信端末名」は、当該通信端末の名称である。項目「IPアドレス」は、当該通信端末のIPアドレスである。項目「回線品質情報」は、当該通信端末の回線品質情報である。項目「最新更新時刻」は、当該通信端末属性情報の更新時刻である。
【0027】
他端末認識部40は、自通信端末が属する階層を越える階層に属する他通信端末を認識する。具体的には、他端末認識部40は、記憶部10に隣接通信端末情報が記憶されている他通信端末を、自通信端末が属する階層を越える階層に属する他通信端末として認識する。即ち、下位の層に属する通信端末は、上位の層に属する他通信端末を認識する。
【0028】
他端末認識部40は、自通信端末が属する階層未満の階層に属する他通信端末を認識しない。具体的には、他端末認識部40は、記憶部10に隣接通信端末情報が記憶されていない他通信端末を、自通信端末が属する階層未満の階層に属する他通信端末として認識しない。即ち、上位の層に属する通信端末は、下位の層に属する他通信端末を認識しない。
【0029】
但し、通信端末は、自通信端末を超えるパフォーマンスを有する他通信端末が存在しない場合には、自通信端末が属する階層に属する他通信端末を認識する。即ち、最上位階層に属する通信端末は、同じく最上位階層に属する他通信端末を認識する。
【0030】
なお、他端末認識部40は、例えば、P2Pネットワーク1においてデータを検索するときに、記憶部10を参照し、他通信端末を認識する。また、データを検索するときに他通信端末を認識した他端末認識部40は、認識した他通信端末にデータ検索メッセージを送信する。
【0031】
階層設定部30は、パフォーマンス比較部20から比較結果を取得する。階層設定部30は、記憶部10に情報が記憶されている他通信端末であって自通信端末未満のパフォーマンスを有する他通信端末が存在する場合、当該他通信端末の情報を記憶部10から削除する。換言すれば、階層設定部30は、自通信端末が属する階層以上の階層に属する他通信端末であって自通信端末未満のパフォーマンスを有する他通信端末の階層を、自通信端末が属する階層未満の階層に設定する。即ち、通信端末は、一の他通信端末のパフォーマンスが自通信端末超から自通信端末未満へと下落した場合、当該他通信端末の階層を自通信端末が属する階層未満に降格させる。
【0032】
但し、階層設定部30は、自通信端末が最上位階層以外の階層に属する場合、同じ階層に属する他通信端末を認識できないようにする。具体的には、階層設定部30は、自通信端末が最上位階層以外の階層に属する場合、記憶部10に情報が記憶されている他通信端末であって自通信端末と同じパフォーマンスを有する他通信端末が存在する場合、当該他通信端末の情報を記憶部10から削除する。即ち、最上位階層以外の階層に属する通信端末は、一の他通信端末のパフォーマンスが自通信端末超から自通信端末以下へと上昇した場合、当該他通信端末の階層を自通信端末が属する階層未満に降格させる。なお、階層設定部30は、自通信端末を超えるパフォーマンスを有する他通信端末が存在する場合に、自通信端末が最上位階層以外の階層に属すると判断する。
【0033】
また、階層設定部30は、当該他通信端末と異なる他通信端末に当該他通信端末を認識させるようにするべく、上記異なる他通信端末上の隣接通信端末情報に当該他通信端末に係る情報を追加すべき命令を、上記異なる他通信端末に送信する。
【0034】
階層設定部30は、記憶部10に情報が記憶されていない他通信端末であって自通信端末を超えるパフォーマンスを有する他通信端末が存在する場合、当該他通信端末の情報を記憶部10に追加する。換言すれば、階層設定部30は、自通信端末が属する階層未満の階層に属する他通信端末であって自通信端末を超えるパフォーマンスを有する他通信端末の階層を、自通信端末が属する階層に設定する。即ち、通信端末は、一の他通信端末のパフォーマンスが自通信端末未満から自通信端末超へと上昇した場合、当該他通信端末の階層を自通信端末が属する階層に昇格させる。
【0035】
但し、階層設定部30は、自通信端末が最上位階層に属する場合、同じく最上位階層に属する他通信端末を認識できるようにする。具体的には、階層設定部30は、自通信端末が最上位階層に属する場合、記憶部10に情報が記憶されていない他通信端末であって自通信端末と同じパフォーマンスを有する他通信端末が存在する場合、当該他通信端末の情報を記憶部10に追加する。即ち、最上位階層に属する通信端末は、一の他通信端末のパフォーマンスが自通信端末未満から自通信端末以上へと上昇した場合、当該他通信端末の階層を自通信端末が属する最上位階層に昇格させる。なお、階層設定部30は、自通信端末を超えるパフォーマンスを有する他通信端末が存在しない場合に、自通信端末が最上位階層に属すると判断する。
【0036】
また、階層設定部30は、当該隣接通信端末と異なる他通信端末に当該隣接通信端末を認識させないようにするべく、上記異なる他通信端末上の隣接通信端末情報から当該隣接通信端末に係る情報を削除すべき命令を、上記異なる他通信端末に送信する。
【0037】
各通信端末の上記動作によって、例えば図4に示すように、階層化されたP2Pネットワーク1が構成される。図4は、2階層(上位の階層A〜下位の階層B)のP2Pネットワーク1の模式図である。図4において、高いパフォーマンスを有する通信端末b、c、f、iは階層Aに属し、低いパフォーマンスを有する通信端末a、d、e、g、hは階層Bに属している。
【0038】
各通信端末は、自通信端末が属する階層を越える階層に属する他通信端末を認識し、自通信端末が属する階層未満の階層に属する他通信端末を認識しない。また、最上位階層に属する通信端末は、同じく最上位階層に属する他通信端末を認識し、最上位階層に以外の階層に属する通信端末は、同じ階層に属する他通信端末を認識しない。従って、最上位階層は階層Aである図4の場合、階層A以外の階層である階層Bに属する通信端末eは、自通信端末が属する階層Bを越える階層Aに属する他通信端末b、c、f、iを認識し、自通信端末が属する階層以下の階層Bに属する他通信端末a、d、g、hを認識しない。また、階層Aに属する通信端末fは、同じく階層Aに属する他通信端末b、c、iを認識し、自通信端末が属する階層未満の階層Bに属する他通信端末a、d、e、g、hを認識しない。従って、自通信端末が属する階層未満の階層に属するボトルネックになる他通信端末が、データの挿入、検索、削除に関与しなくなるため、データの挿入、検索、削除が高くなる。
【0039】
続いて、P2Pネットワーク1の諸機能(通信端末属性情報の更新機能、データの複製機能、通信端末の参加(新規登録)機能、通信端末の追加および削除機能、通信端末の降格および昇格機能、データ検索機能)を更に説明する。
【0040】
[通信端末属性情報の更新機能]
P2Pネットワーク1は、上述の如く、通信端末属性情報を記憶する。各通信端末は、定期的(例えば、10分毎)に、自ChordIDをキーとして自通信端末に係る通信端末属性情報を更新する。また、各通信端末は、自通信端末の1つ下流に位置する他通信端末に自身の通信端末属性情報を送信する。
【0041】
[データの複製機能]
各通信端末は、複製機能として、自通信端末の1つ下流に位置する他通信端末に対し、自通信端末が管理するデータを複製して転送する。なお、各通信端末は、上述の如く、自通信端末の1つ上流に位置する他通信端末のChordIDに1を加算したChordIDから自ChordID迄のデータを管理する。
【0042】
他通信端末からデータを受信した通信端末は、当該データが管理対象であるか否かを判断する。他通信端末から受信したデータが管理対象であると判断した通信端末は、当該データを管理するとともに、自通信端末の1つ下流に位置する他通信端末に対し、当該データを複製して転送する。他通信端末から受信したデータが管理対象でないと判断した通信端末は、当該データを無視する(保持も転送もしない)。これにより、図5に示すように、P2Pネットワーク1内のデータが各階層に記憶されるようになる。なお、図5〜図9は、2階層(上位階層S、下位階層T)のP2Pネットワーク1の一部の模式図である。図5〜図9において、実線矢印は各通信端末における、1つ下流に位置する隣接他通信端末を示している。また、図5において、高パフォーマンスの通信端末l、m、nは階層Sに属し、低パフォーマンスの通信端末o、pは階層Tに属している。
【0043】
[通信端末の参加(新規登録)機能]
なお、P2Pネットワーク1に参加(新規登録)しようとする通信端末(以下、「参加通信端末」という)は、当該P2Pネットワーク1に既に参加している少なくとも1つの通信端末のIPアドレスを保持している。
(処理1)参加通信端末は、自ChordIDを算出する。例えば、参加通信端末は、自通信端末に係る固有情報(例えば、IPアドレス、MACアドレス)のハッシュ値(例えば、sha−1による計算値)を自ChordIDとする。
(処理2)参加通信端末は、自ChordIDから20、21、22、…、2n−1のChordIDを管理対象とする他通信端末を検索し、当該他通信端末の隣接通信端末情報に自通信端末に係る情報を挿入(追加)する。
(処理3)高パフォーマンスである参加通信端末(例えば、PC)は、他通信端末の隣接通信端末情報を更新するため、P2Pネットワーク1に自通信端末が参加した旨を他通信端末に通知する。
【0044】
[通信端末の追加および削除機能]
P2Pネットワーク1に追加された通信端末は、自通信端末が追加された旨を隣接通信端末に通知する。また、他通信端末が追加された旨を通知された通信端末は、自通信端末の通信端末属性情報の直接の送信先である他通信端末に対し、自通信端末が追加された旨を通知する。これにより、図5および図6に示すように、P2Pネットワーク1が再編成される。
【0045】
図5に示す環境に図6(a)に示すように通信端末qを追加する場合、図6(b)に示すように、通信端末nおよび通信端末pにおいて1つ下流に位置する隣接他通信端末が通信端末mから通信端末qに更新される。なお、削除の場合には、図6および図7に示すように、P2Pネットワーク1が再編成される。図6(b)に示す環境から図7(a)に示すように通信端末qを削除する場合、図7(b)に示すように、通信端末nおよび通信端末pにおいて1つ下流に位置する隣接他通信端末が通信端末qから通信端末mに更新される。
【0046】
[通信端末の降格および昇格機能]
降格機能は、自通信端末の1つ上流に位置する他通信端末の階層を降格させる機能である。昇格機能は、自通信端末の1つ下流に位置する他通信端末の階層を昇格させる機能である。
【0047】
[降格機能]
各通信端末は、自通信端末の1つ下流に位置する他通信端末の状態を監視し、当該他通信端末が下位層通信端末であると判断した場合、当該他通信端末の階層を降格させる。具体的には、自通信端末の隣接通信端末情報から当該他通信端末に係る情報を削除するとともに、2つ下流に位置する他通信端末に対し、隣接通信端末情報から当該通信端末に係る情報の削除を要請(通知)する。当該要請を受信した通信端末は、自通信端末の隣接通信端末情報から当該通信端末に係る情報を削除する。これにより、図5および8に示すように、P2Pネットワーク1が再編成される。なお、各通信端末は、例えば、通信端末属性情報を1つ下流に位置する他通信端末に送信する際に、当該他通信端末の状態を監視する。
【0048】
なお、図5に示す環境の通信端末oを図8(a)に示すように階層Tから階層U(階層Tの下位の層)に降格させる場合、まず、図8(b)に示すように、通信端末nにおいて1つ下流に位置する隣接他通信端末を通信端末mから通信端末lに更新する。続いて、図8(b)に示すように、通信端末oおよび通信端末pにおいて1つ下流に位置する隣接他通信端末を通信端末mから通信端末lに更新する。なお、結果的に、通信端末oは階層Tに留まって通信端末mが階層Sから階層Tに降格する。
【0049】
[昇格機能]
各通信端末は、自通信端末の1つ上流に位置する他通信端末(隣接通信端末以外の他通信端末)の状態を監視し、当該他通信端末が上位層通信端末であると判断した場合、当該他通信端末を昇格させる。具体的には、自通信端末の隣接通信端末情報に当該他通信端末に係る情報を挿入(追加)するとともに、1つ上流に位置する隣接通信端末、および、当該隣接通信端末以外の他通信端末であって自通信端末に対する直接的な通信端末属性情報の送信元である他通信端末に対し、隣接通信端末情報に当該他通信端末に係る情報の挿入(追加)を要請(通知)する。当該要請を受信した通信端末は、昇格する他通信端末のChordIDを参照し、自通信端末の隣接通信端末情報に当該他通信端末に係る情報を挿入(追加)する。続いて、通信端末属性情報を転送する他通信端末に対し、昇格によって不可視となる他通信端末の削除を申請する。これにより、図5および9に示すように、P2Pネットワーク1が再編成される。なお、各通信端末は、例えば、通信端末属性情報を隣接通信端末以外の1つ上流に位置する他通信端末から受信する際に、当該他通信端末の状態を監視する。
【0050】
なお、図5に示す環境の通信端末oを図9(a)に示すように階層Tから階層Sに昇格させる場合、まず、図9(b)に示すように、通信端末nにおいて1つ下流に位置する隣接他通信端末を通信端末mから通信端末oに更新する。続いて、図9(b)に示すように、通信端末pにおいて1つ下流に位置する隣接他通信端末を通信端末mから通信端末oに更新する。
【0051】
[データの検索機能]
(処理1)検索キーIDを算出する。具体的には、検索語のハッシュ値を検索キーIDとする。
(処理2)検索キーIDを用いて検索要求を送信する。
(処理3)検索語にマッチするファイルを保持するChordIDのリストを取得する。
(処理4)ChordIDを検索キーとして再度、検索要求を送信する。具体的には、ChordID、IPアドレス、回線品質情報などの対応を取得し、最適な通信端末にファイル転送要求を送信する。
【0052】
続いて、図10を用いて通信端末の動作を説明する。パフォーマンス比較部20は、他通信端末のパフォーマンスと自通信端末のパフォーマンスを比較し、他通信端末のパフォーマンスが自通信端末のパフォーマンス未満であるか否かを判断する(ステップS100)。
【0053】
階層設定部30は、パフォーマンス比較部20によって他通信端末のパフォーマンスが自通信端末のパフォーマンス未満であると判断された場合(ステップS100:Yes)、記憶部10に当該他通信端末の情報が記憶されているか否かを判断する(ステップS120)。階層設定部30は、記憶部10に当該他通信端末の情報が記憶されていると判断した場合(ステップS120:Yes)、当該他通信端末の情報を記憶部10から削除する(ステップS130)。また、階層設定部30は、当該他通信端末と異なる他通信端末に当該他通信端末を認識させるようにするべく、上記異なる他通信端末上の隣接通信端末情報に当該他通信端末に係る情報を追加すべき命令を、上記異なる他通信端末に送信する。そして本フローチャートは終了する。一方、階層設定部30は、記憶部10に当該他通信端末の情報が記憶されていないと判断した場合(ステップS120:No)、ステップS130を飛ばして本フローチャートは終了する。
【0054】
パフォーマンス比較部20は、他通信端末のパフォーマンスが自通信端末のパフォーマンス未満でないと判断した場合(ステップS100:No)、他通信端末のパフォーマンスが自通信端末のパフォーマンスを超えるか否かを判断する(ステップS102)。階層設定部30は、パフォーマンス比較部20によって他通信端末のパフォーマンスが自通信端末のパフォーマンスを超えると判断された場合(ステップS102:Yes)、記憶部10に当該他通信端末の情報が記憶されているか否かを判断する(ステップS122)。階層設定部30は、記憶部10に当該他通信端末の情報が記憶されていないと判断した場合(ステップS122:No)、当該他通信端末の情報を記憶部10に追加する(ステップS132)。また、階層設定部30は、当該隣接通信端末と異なる他通信端末に当該隣接通信端末を認識させないようにするべく、上記異なる他通信端末上の隣接通信端末情報から当該隣接通信端末に係る情報を削除すべき命令を、上記異なる他通信端末に送信する。一方、階層設定部30は、記憶部10に当該他通信端末の情報が記憶されていると判断した場合(ステップS122:Yes)、ステップS132を飛ばして本フローチャートは終了する。
【0055】
階層設定部30は、パフォーマンス比較部20によって他通信端末のパフォーマンスが自通信端末のパフォーマンスを超えていないと判断された場合(ステップS102:No)、即ち、他通信端末のパフォーマンスと自通信端末のパフォーマンスとが同じである場合、自通信端末は最上位の階層に属するか否かを判断する(ステップS110)。例えば、階層設定部30は、自通信端末を超えるパフォーマンスを有する他通信端末が存在しない場合には、自通信端末は最上位の階層に属すると判断する。
【0056】
階層設定部30は、自通信端末は最上位の階層に属すると判断した場合(ステップS110:Yes)、記憶部10に当該他通信端末の情報が記憶されているか否かを判断する(ステップS124)。階層設定部30は、記憶部10に当該他通信端末の情報が記憶されていないと判断した場合(ステップS124:No)、当該他通信端末の情報を記憶部10に追加する(ステップS134)。また、階層設定部30は、当該隣接通信端末と異なる他通信端末に当該隣接通信端末を認識させないようにするべく、上記異なる他通信端末上の隣接通信端末情報から当該隣接通信端末に係る情報を削除すべき命令を、上記異なる他通信端末に送信する。一方、階層設定部30は、記憶部10に当該他通信端末の情報が記憶されていると判断した場合(ステップS124:Yes)、ステップS134を飛ばして本フローチャートは終了する。
【0057】
階層設定部30は、自通信端末は最上位の階層に属さないと判断した場合(ステップS110:No)、記憶部10に当該他通信端末の情報が記憶されているか否かを判断する(ステップS126)。階層設定部30は、記憶部10に当該他通信端末の情報が記憶されていると判断した場合(ステップS126:Yes)、当該他通信端末の情報を記憶部10から削除する(ステップS136)。また、階層設定部30は、当該他通信端末と異なる他通信端末に当該他通信端末を認識させるようにするべく、上記異なる他通信端末上の隣接通信端末情報に当該他通信端末に係る情報を追加すべき命令を、上記異なる他通信端末に送信する。そして本フローチャートは終了する。一方、階層設定部30は、記憶部10に当該他通信端末の情報が記憶されていないと判断した場合(ステップS126:No)、ステップS136を飛ばして本フローチャートは終了する。
【0058】
以上、本実施形態によれば、処理能力に劣る通信端末などボトルネックになる通信端末を含むP2Pネットワークにおいて、高速なデータの挿入、検索、削除ができるようになる。また、本発明によれば、P2Pネットワークの構築に係る既存のアルゴリズムを引き続き利用することができる。
【0059】
なお、本発明の通信端末の各処理を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、当該記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、本発明の通信端末に係る上述した種々の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【0060】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【0061】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0062】
1 P2Pネットワーク 10 記憶部 20 パフォーマンス比較部 30 階層設定部 40 他端末認識部
【特許請求の範囲】
【請求項1】
階層構造を形成するP2Pネットワークを構成する通信端末であって、
自通信端末が有するパフォーマンスと前記P2Pネットワーク内の他通信端末が有するパフォーマンスとを比較するパフォーマンス比較部と、
自通信端末が属する階層以上の階層に属する他通信端末であって自通信端末未満のパフォーマンスを有する他通信端末の階層を、自通信端末が属する階層未満の階層に設定する階層設定部と、
自通信端末が属する階層を越える階層に属する他通信端末を認識する一方、自通信端末が属する階層未満の階層に属する他通信端末を認識しない他端末認識部と
を備えることを特徴とする通信端末。
【請求項2】
前記他端末認識部は、
自通信端末を超えるパフォーマンスを有する他通信端末が存在しない場合には、自通信端末が属する階層に属する他通信端末を認識することを特徴とする請求項1に記載の通信端末。
【請求項3】
前記階層設定部は、
自通信端末が属する階層未満の階層に属する他通信端末であって自通信端末を超えるパフォーマンスを有する他通信端末の階層を、自通信端末が属する階層に設定することを特徴とする請求項2に記載の通信端末。
【請求項4】
前記他端末認識部によって認識されるべき他通信端末の情報を記憶する記憶部を更に備え、
前記階層設定部は、
前記記憶部に情報が記憶されている他通信端末であって自通信端末未満のパフォーマンスを有する他通信端末が存在する場合、当該他通信端末の情報を前記記憶部から削除することによって、当該他通信端末の階層を自通信端末が属する階層未満の階層に設定することを特徴とする請求項1から請求項3の何れか1項に記載の通信端末。
【請求項5】
前記階層設定部は、
前記記憶部に情報が記憶されていない他通信端末であって自通信端末を超えるパフォーマンスを有する他通信端末が存在する場合、当該他通信端末の情報を前記記憶部に追加することによって、当該他通信端末が属する階層を自通信端末が属する階層に設定することを特徴とする請求項1から請求項4の何れか1項に記載の通信端末。
【請求項6】
複数の通信端末によって階層構造を形成するP2Pネットワークであって、
前記通信端末は、
自通信端末が有するパフォーマンスと前記P2Pネットワーク内の他通信端末が有するパフォーマンスとを比較するパフォーマンス比較部と、
自通信端末が属する階層以上の階層に属する他通信端末であって自通信端末未満のパフォーマンスを有する他通信端末の階層を、自通信端末が属する階層未満の階層に設定する階層設定部と、
自通信端末が属する階層を越える階層に属する他通信端末を認識する一方、自通信端末が属する階層未満の階層に属する他通信端末を認識しない他端末認識部と
を備えることを特徴とするP2Pネットワーク。
【請求項1】
階層構造を形成するP2Pネットワークを構成する通信端末であって、
自通信端末が有するパフォーマンスと前記P2Pネットワーク内の他通信端末が有するパフォーマンスとを比較するパフォーマンス比較部と、
自通信端末が属する階層以上の階層に属する他通信端末であって自通信端末未満のパフォーマンスを有する他通信端末の階層を、自通信端末が属する階層未満の階層に設定する階層設定部と、
自通信端末が属する階層を越える階層に属する他通信端末を認識する一方、自通信端末が属する階層未満の階層に属する他通信端末を認識しない他端末認識部と
を備えることを特徴とする通信端末。
【請求項2】
前記他端末認識部は、
自通信端末を超えるパフォーマンスを有する他通信端末が存在しない場合には、自通信端末が属する階層に属する他通信端末を認識することを特徴とする請求項1に記載の通信端末。
【請求項3】
前記階層設定部は、
自通信端末が属する階層未満の階層に属する他通信端末であって自通信端末を超えるパフォーマンスを有する他通信端末の階層を、自通信端末が属する階層に設定することを特徴とする請求項2に記載の通信端末。
【請求項4】
前記他端末認識部によって認識されるべき他通信端末の情報を記憶する記憶部を更に備え、
前記階層設定部は、
前記記憶部に情報が記憶されている他通信端末であって自通信端末未満のパフォーマンスを有する他通信端末が存在する場合、当該他通信端末の情報を前記記憶部から削除することによって、当該他通信端末の階層を自通信端末が属する階層未満の階層に設定することを特徴とする請求項1から請求項3の何れか1項に記載の通信端末。
【請求項5】
前記階層設定部は、
前記記憶部に情報が記憶されていない他通信端末であって自通信端末を超えるパフォーマンスを有する他通信端末が存在する場合、当該他通信端末の情報を前記記憶部に追加することによって、当該他通信端末が属する階層を自通信端末が属する階層に設定することを特徴とする請求項1から請求項4の何れか1項に記載の通信端末。
【請求項6】
複数の通信端末によって階層構造を形成するP2Pネットワークであって、
前記通信端末は、
自通信端末が有するパフォーマンスと前記P2Pネットワーク内の他通信端末が有するパフォーマンスとを比較するパフォーマンス比較部と、
自通信端末が属する階層以上の階層に属する他通信端末であって自通信端末未満のパフォーマンスを有する他通信端末の階層を、自通信端末が属する階層未満の階層に設定する階層設定部と、
自通信端末が属する階層を越える階層に属する他通信端末を認識する一方、自通信端末が属する階層未満の階層に属する他通信端末を認識しない他端末認識部と
を備えることを特徴とするP2Pネットワーク。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【公開番号】特開2010−224912(P2010−224912A)
【公開日】平成22年10月7日(2010.10.7)
【国際特許分類】
【出願番号】特願2009−72061(P2009−72061)
【出願日】平成21年3月24日(2009.3.24)
【出願人】(000208891)KDDI株式会社 (2,700)
【Fターム(参考)】
【公開日】平成22年10月7日(2010.10.7)
【国際特許分類】
【出願日】平成21年3月24日(2009.3.24)
【出願人】(000208891)KDDI株式会社 (2,700)
【Fターム(参考)】
[ Back to top ]