(57)【要約】【課題】ネットワーク全体の処理効率を向上させることが可能なＰ２Ｐ通信方法を得ること。【解決手段】Ｐ２Ｐ通信を行う各ノードの性能に応じて階層化されたＰ２Ｐネットワークを形成する場合に、ノード１−１が、検索要求メッセージを上流のノード１−３等に送信し、キーを保持していないノード１−３等が、検索要求メッセージをさらに上流のノード１−５等に転送し、キーを保持しているノード１−５が、キーおよび所定の方法で計算した保持時間基数を含めた検索応答メッセージをノード１−１に向けて送信し、ノード１−１までの通信経路上のノード１−３が、受信した検索応答メッセージを転送するとともに、検索対象情報を、保持時間基数に基づき計算した保持時間にわたってキャッシュに保持する。【選択図】        図１
2009272802.tif 000002
【特許請求の範囲】
【請求項１】
Ｐ２Ｐ（ピアツーピア）通信を行う各ノードの性能に応じて階層化されたＰ２Ｐネットワークを形成するネットワーク形成ステップと、
前記各ノード中の特定の検索ノードが、所定の検索条件を含む検索要求メッセージを自ノードよりも性能の良いノードに送信する検索要求ステップと、
検索要求メッセージを受信したノードが、当該メッセージに含まれた検索条件に基づいて、検索対象データまたは当該データを検索するためのキー情報である検索対象情報を保持しているかどうかを判断する判断ステップと、
検索対象情報を保持していると判断した場合に、当該検索対象情報の保持時間を計算するための基礎情報である保持時間基数を計算し、当該検索対象情報および当該保持時間基数を含めた検索応答メッセージを、前記検索ノードに向けて送信する応答ステップと、
検索対象情報を保持していないと判断した場合に、前記検索要求メッセージをさらに性能の良いノードに転送する転送ステップと、
前記検索対象情報を保持するノードから前記検索ノードまでの通信経路上のノードが、受信した検索応答メッセージを転送するとともに、当該メッセージに含まれた保持時間基数に基づきノードの性能に応じた保持時間を計算し、当該メッセージに含まれた検索対象情報を当該保持時間にわたってキャッシュに保持し、保持時間経過後にキャッシュから削除するキャッシュステップと、
を含むことを特徴とするＰ２Ｐ通信方法。
【請求項２】
前記ノードの性能を、データ通信速度とすることを特徴とする請求項１に記載のＰ２Ｐ通信方法。
【請求項３】
前記保持時間を、データ通信速度が速いほど長くすることを特徴とする請求項２に記載のＰ２Ｐ通信方法。
【請求項４】
前記保持時間基数を、データ通信速度が速く、前記検索対象情報へのアクセス回数が多く、かつ検索要求メッセージを送信したノードから前記検索対象情報を保持するノードまでのホップ数が多いほど、長くすることを特徴とする請求項２または３に記載のＰ２Ｐ通信方法。
【請求項５】
前記ネットワーク形成ステップでは、
新たにＰ２Ｐネットワークに参加を希望するノードが、自身のデータ通信速度を含む参加要求メッセージを送信する参加要求ステップと、
既にＰ２Ｐネットワークに参加する単一または複数のノードが、当該メッセージに含まれたデータ通信速度と自身のデータ通信速度とを比較する比較ステップと、
を含み、
前記比較結果に基づいて、新たに参加するノードを、適切な階層に配置してＰ２Ｐネットワークに参加させることを特徴とする請求項２、３または４に記載のＰ２Ｐ通信方法。
【請求項６】
前記ネットワーク形成ステップでは、
新たにＰ２Ｐネットワークに参加を希望するノードが、自身のデータ通信速度およびＰ２Ｐ通信に使用可能なキャッシュ領域を含む参加要求メッセージを送信する参加要求ステップと、
既にＰ２Ｐネットワークに参加する単一または複数のノードが、当該メッセージに含まれたデータ通信速度およびキャッシュ領域と、自身のデータ通信速度およびＰ２Ｐ通信に使用可能なキャッシュ領域と、を比較する比較ステップと、
を含み、
前記比較結果に基づいて、新たに参加するノードを、適切な階層に配置してＰ２Ｐネットワークに参加させることを特徴とする請求項２、３または４に記載のＰ２Ｐ通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ピアツーピア（Ｐ２Ｐ）ネットワークシステムにおけるＰ２Ｐ通信方法に関する。
【背景技術】
【０００２】
従来からの技術であるプロキシメカニズムは、「Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ（以下、ＷＷＷ）」システムで広く使用されている。プロキシサーバがデータの複製をキャッシュに保持することで、ネットワーク内での応答性の向上や不要トラフィックの削減などの効果がある。また、プロキシメカニズムは、Ｐ２Ｐネットワークシステムに有益であることが容易に推察できる。
【０００３】
Ｐ２Ｐネットワークシステムでは、データを検索するノードが検索要求を送信すると、検索要求を送信したノードと所望のデータを保持するノードまでの経路上にあるノードは、バケツリレー方式で検索要求を転送する。所望のデータを保持するノードが検索要求を送信したノードにデータを送るとき、検索要求の場合と同様、経路上のノードがデータを転送する。このとき、経路上の各ノードは、所望のデータの複製を保存する。他のノードが同じデータを検索する場合、他のノードと所望データを保持するノードの間に所望データの複製を保存するノードが存在すれば、プロキシメカニズムの効果によってネットワーク全体の処理効率は向上し、さらに、耐故障性，負荷分散，匿名性の効果も得ることができる。
【０００４】
また、各ノードがデータの複製を保存する時間（生存時間）の設定方法として、たとえば、検索者の評価の高いデータの生存時間を長くする方法が下記特許文献１に開示されている。さらに、検索者のデータに対する緊急度に応じてキャッシュデータの生存時間を決定する方法が下記特許文献２に開示されている。
【０００５】
【特許文献１】特開平１１−１９５０４８号公報
【特許文献２】特開２００４−５２４６０２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記従来のＰ２Ｐネットワークシステムにおいては、たとえば、通信速度の遅いノードのキャッシュにデータの複製が保持され、このノードに検索が集中した場合には、データを検索してもデータの送信に時間がかかるため、結果としてデータの検索が完了するまでの時間が長くなり、ネットワーク全体の処理効率が落ちる、という問題があった。また、データを保持できるキャッシュ領域が小さいノードに有用なデータを複製する場合には、使用可能な領域が限られるため新たな有用なデータの複製をできない可能性があり、このような場合には、ネットワーク全体の処理効率を向上させることができない、という問題があった。
【０００７】
また、上記特許文献によれば、キャッシュデータの生存時間を決める要因である評価や緊急度が、検索者やシステム管理者の主観に強く依存している。そのため、検索者やシステム管理者の誤った判断により不要なキャッシュデータが長時間保存されているノードについては、検索が行われた場合であっても、所望データがキャッシュに複製されていないのでデータ検索時間の短縮には貢献することができず、また、ネットワーク全体の処理効率の向上にも貢献することができない、という問題があった。
【０００８】
本発明は、上記に鑑みてなされたものであって、ネットワーク全体の処理効率を向上させることが可能なＰ２Ｐ通信方法を得ることを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明にかかるＰ２Ｐ通信方法は、Ｐ２Ｐ通信を行う各ノードの性能に応じて階層化されたＰ２Ｐネットワークを形成するネットワーク形成ステップと、各ノード中の特定の検索ノードが、所定の検索条件を含む検索要求メッセージを自ノードよりも性能の良いノードに送信する検索要求ステップと、検索要求メッセージを受信したノードが、メッセージに含まれた検索条件に基づいて、検索対象データまたはデータを検索するためのキー情報である検索対象情報を保持しているかどうかを判断する判断ステップと、検索対象情報を保持していると判断した場合に、検索対象情報の保持時間を計算するための基礎情報である保持時間基数を計算し、検索対象情報および保持時間基数を含めた検索応答メッセージを、検索ノードに向けて送信する応答ステップと、検索対象情報を保持していないと判断した場合に、検索要求メッセージをさらに性能の良いノードに転送する転送ステップと、検索対象情報を保持するノードから検索ノードまでの通信経路上のノードが、受信した検索応答メッセージを転送するとともに、メッセージに含まれた保持時間基数に基づきノードの性能に応じた保持時間を計算し、メッセージに含まれた検索対象情報を保持時間にわたってキャッシュに保持し、保持時間経過後にキャッシュから削除するキャッシュステップと、を含むことを特徴とする。
【発明の効果】
【００１０】
この発明によれば、Ｐ２Ｐネットワーク全体の処理効率を向上させることができる、という効果を奏する。
【発明を実施するための最良の形態】
【００１１】
以下に、本発明にかかるＰ２Ｐ通信方法の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１２】
実施の形態１．
図１は、Ｐ２Ｐネットワークの実施の形態１の構成例を示す図である。このネットワークは、Ｐ２Ｐ通信を行うアプリケーションを実装し、インターネットなどを使用してＰ２Ｐネットワークに参加するパーソナルコンピュータに代表されるノード１−１，１−２，１−３，１−４，１−５，１−６，１−７から構成される。構成する各ノードが、Ｐ２Ｐ通信時において補償することが可能な性能によって相互に上下関係を持ち、ほぼ同じ性能を持つノードが、同じ階層に位置するように論理的に接続して、論理的に階層化されたＰ２Ｐネットワークを形成する。本実施の形態では、各ノードの性能として、たとえば、データの通信速度を想定する。
【００１３】
ここで、論理的に接続されたノードとは、あるノードがデータの検索や送受信を行う場合に対象となるノードをいう。実際（物理的）には、論理的に接続されたノード間の経路上に他ノードが存在する場合であっても、経路上の他ノードは、論理的に接続されたノード間の通信においては中継局としてのみ機能する。そのため、論理的にノードが接続されたＰ２Ｐネットワークでは、中継局としてのみ機能するノードを考慮せず（物理的な接続を考慮せず）、論理的に接続したノード同士が直接データの送受信等をしていると考えることができる。
【００１４】
図１のＰ２Ｐネットワークの構成例では、各ノードは、第一ノード階層２、第二ノード階層３、第三ノード階層４のいずれかの階層に属する。第一ノード階層２は、データ通信速度が速いノードが構成するＰ２Ｐネットワークの階層を表し、図１では、ノード１−４，ノード１−５，ノード１−６がこの階層に属する。第二ノード階層３は、データ通信速度が平均的なノードが構成するＰ２Ｐネットワークの階層を表し、図１では、ノード１−２，ノード１−３，ノード１−７がこの階層に属する。第三ノード階層４は、データ通信速度が遅いノードが構成するＰ２Ｐネットワークの階層を表し、図１では、ノード１−１がこの階層に属する。本実施の形態では、データ通信速度を２つのしきい値で区切ることにより高速／中速／低速の３階層としている。なお、一例として３階層としているが、２階層または４階層以上にすることも可能である。
【００１５】
つづいて、本実施の形態のＰ２Ｐ通信方法を詳細に説明する。最初に、ノードが、Ｐ２Ｐネットワークに参加する場合の処理を説明する。新規にＰ２Ｐネットワークに参加するノードは、Ｐ２Ｐアプリケーション起動時に、たとえば、Ｐ２Ｐアプリケーションのソフトウェア業者等が管理する２つの既定ノードに対して、自ノードのデータ通信速度の情報を含めた参加要求メッセージを送信する。２つの既定ノードへの接続は、インターネット等を使用する。
【００１６】
参加要求メッセージを受信した（既定の）ノードは、参加要求メッセージに含まれたデータ通信速度と、自ノードのデータ通信速度を比較する。参加要求メッセージを送信したノードのデータ通信速度が自ノードのデータ通信速度より速い場合、参加要求メッセージを受信したノードは、参加要求メッセージを送信したノードを、自ノードの上流に配置して接続することで、Ｐ２Ｐネットワークに参加させる。逆に、参加要求メッセージを送信したノードのデータ通信速度が自ノードのデータ通信速度とほぼ同じか、または遅い場合、参加要求メッセージを受信したノードは、参加要求メッセージを送信したノードを、自ノードの下流に配置して接続することで、Ｐ２Ｐネットワークに参加させる。
【００１７】
ただし、参加要求メッセージを送信したノードのデータ通信速度が、参加要求メッセージを受信したノードのデータ通信速度より極端に速い場合、または極端に遅い場合、参加要求メッセージを受信したノードは参加を拒否する。極端にデータ通信速度の速さが違う場合、参加要求メッセージを受信したノードと参加要求メッセージを送信したノードは、データ通信速度によって階層化されたＰ２Ｐネットワークにおいて、直接接続する関係にはならない。
【００１８】
ここで、極端に速い場合とは、たとえば、基準速度を自ノードのデータ通信速度のｄ倍（１＜ｄ）として、ｄ倍より速い場合とする。同様に、極端に遅い場合とは、基準速度を自ノードのデータ通信速度のａ倍（０＜ａ＜１）として、ａ倍より遅い場合とする。また、ほぼ同じ場合とは、たとえば、基準速度を自ノードのデータ通信速度のｂ倍（０＜ａ＜ｂ＜１）およびｃ倍（１＜ｃ＜ｄ）として、ｂ倍より速くｃ倍より遅い場合とする。ａ，ｂ，ｃ，ｄは、０＜ａ＜ｂ＜１＜ｃ＜ｄの範囲において任意に設定することが可能である。
【００１９】
つぎに、参加要求メッセージを受信したノードは、参加要求メッセージを送信したノードに、参加の成否を送信する。たとえば、参加要求メッセージを受信したノードは、参加を拒否する場合、自ノードと接続するノードの情報を、参加要求メッセージを送信したノードに通知する。具体的には、参加要求メッセージを送信したノードのデータ通信速度が、参加要求メッセージを受信したノードのデータ通信速度のｄ倍より（極端に）速かった場合は、参加要求メッセージを受信したノードより上流ノードの方が、参加要求メッセージを送信したノードとのデータ通信速度の差が小さく、参加要求メッセージを送信したノードが参加できる可能性が高いと考えられるので、参加要求メッセージを受信したノードは、自ノードが接続する上流ノードの情報を通知する。これにより、参加要求メッセージを送信したノードは、既定ノード以外のノードに対しても、参加要求メッセージを送信することができる。参加要求メッセージを送信したノードは、接続する上流ノードが２つに達するまで、他のノードとの接続を繰り返し試みる。
【００２０】
なお、図１における矢印の向きは、接続しているノード間での上流，下流の関係を表す。上流、下流の関係は、上記データ通信速度の比較結果で決定されるものであり、階層の上下関係を示すものではない。たとえば、ノード１−２とノード１−３の関係では、ノード１−３が上流、ノード１−２が下流として接続していることを表している。なお、ノードが接続可能な上流，下流のノード数は制限することとしてもよい。また、最上位の第一ノード階層２に属するノードは、一例として、上流として接続するノードを１つとする。ただし、上記データ通信速度の比較結果、上流として接続されるノードが存在しない第一ノード階層２に属するノードについては、同一階層のノードのいずれか１つを上位ノードとして接続する。
【００２１】
また、参加要求メッセージを送信し、Ｐ２Ｐネットワークに参加したノードは、Ｐ２Ｐアプリケーション終了時に、接続中の他のノードからそのノードと接続するノードの情報を受け取る。これにより、Ｐ２Ｐネットワークに参加したノードは、アプリケーション再起動時に、既定ノード以外のノードに対しても、参加要求メッセージを送信することが可能となる。
【００２２】
以上説明した手順によって、参加要求メッセージを送信したノードは、Ｐ２Ｐネットワークに参加することができる。また、ノードのデータの通信速度により論理的に階層化されたＰ２Ｐネットワークを形成することができる。
【００２３】
つづいて、Ｐ２Ｐネットワークにおいて、ノードがデータ検索を実施する場合の処理を、図１に基づいて詳細に説明する。本実施の形態では、各ノードがキャッシュに保持するものとして、「データ」本体ではなく、データを元にハッシュ関数で求めたハッシュ値を用いた「キー」とする。なお、データ本体を用いることとしてもよい。ここでは、ノード１−１が、データＤａｔａ＿Ｇを取得するためにデータ検索を実施する場合について検討する。
【００２４】
なお、データ検索を行う場合の前提として、たとえば、データＤａｔａ＿Ｇを保持するノード１−７は、データＤａｔａ＿ＧのキーＧを自ノードの上流に位置するノード１−５とノード１−６に対して送信しておく。ノード１−７は、キーＧとして、たとえば、データ名，データを保持するノード情報，更新日時，ジャンル、等を予め格納していることとする。また、データを保持するノードが、キーを自ノードの上流に位置するノードに送信する場合、キーの送信範囲はノードの通過数を示すホップ数により制限される。たとえば、ホップ数が１の場合、ノード１−７は、キーＧをノード１−５とノード１−６に送信し、ノード１−５とノード１−６がキーＧを保存する。
【００２５】
まず、ノード１−１は、自ノードの上流に位置するノード１−２とノード１−３に対して検索条件を含む検索要求メッセージＬ＿Ｇを送信する。ノード１−１は、検索条件として、データ名のほか、指定した更新日，データのジャンル，制限ホップ数、等を含ませる。
【００２６】
つぎに、検索要求メッセージＬ＿Ｇを受信したノード１−２，１−３は、メッセージに含まれる検索条件と自ノードが保存するキーを比較する。比較の結果、ここでは一致するキーが存在しないので、ノード１−２，１−３は、自ノードの上流に位置するノード、すなわち、ノード１−３，１−４およびノード１−４，１−５に検索要求メッセージＬ＿Ｇを転送する。このとき、ノード１−２，１−３は、検索要求メッセージ内のホップ数を１つ増加する。なお、ホップ数の初期値は１とする。したがって、たとえば、ノード１−２は、検索要求メッセージＬ＿Ｇを受信したが一致するキーが存在しないので、検索要求メッセージ内のホップ数を２として検索要求メッセージＬ＿Ｇをノード１−３およびノード１−４に転送する。また、ノード１−３も、検索要求メッセージＬ＿Ｇを受信したが一致するキーが存在しないので、検索要求メッセージ内のホップ数を２として検索要求メッセージＬ＿Ｇをノード１−４およびノード１−５に転送する。
【００２７】
転送された検索要求メッセージＬ＿Ｇを受信したノード（１−４，１−３，１−５）は、上記と同様に、メッセージに含まれる検索条件と自ノードが保存するキーとを比較する。比較の結果、ここでは一致するキーＧが存在するノード１−５が、一致したキーＧおよび生存時間基数を含ませた検索応答メッセージＲ＿Ｇを、検索要求メッセージＬ＿Ｇを最初に送信したノード１−１に向けて送信する。このとき、検索応答メッセージＲ＿Ｇを送信するノード１−５は、自ノードと検索要求メッセージＬ＿Ｇを最初に送信したノード１−１の経路上のノード（検索要求メッセージＬ＿Ｇを転送したノード）１−３を経由してメッセージを送信する。
【００２８】
なお、同一の検索要求メッセージを複数回受信したノードは、２回目以降の同一の検索要求メッセージに対する処理は行わない。たとえば、上記において、ノード１−３は、ノード１−１から転送された検索要求メッセージＬ＿Ｇ以外に、ノード１−２から転送された検索要求メッセージＬ＿Ｇを受信するが、後から受信したノード１−２からの検索要求メッセージＬ＿Ｇについては処理を行わない。
【００２９】
また、ノード１−４は、ノード１−２，１−３から同一の検索要求メッセージＬ＿Ｇを受信する。このような場合は、先に受信した方の検索要求メッセージＬ＿Ｇに応じて、メッセージに含まれる検索条件と自ノードが保存するキーとを比較する。後に受信した検索要求メッセージＬ＿Ｇについては処理を行わない。
【００３０】
また、ノード１−４は、先に受信した検索要求メッセージＬ＿Ｇに応じて比較処理を行うが、一致するキーが存在しないので、検索要求メッセージ内のホップ数を３として検索要求メッセージＬ＿Ｇをノード１−５に転送する。しかしながら、ノード１−４から転送された検索要求メッセージＬ＿Ｇを受信したノード１−５は、既にノード１−３から転送された検索要求メッセージＬ＿Ｇに応じて処理を終了しているので、後から受信した検索要求メッセージＬ＿Ｇに対する処理は行わない。
【００３１】
また、検索要求メッセージＬ＿Ｇは、検索条件に含まれる制限ホップ数によって、転送される回数が制限される。これにより、検索要求メッセージが、Ｐ２Ｐネットワーク内でいつまでも転送されつづけることを防止することができる。
【００３２】
また、検索応答メッセージＲ＿Ｇに含まれる生存時間基数は、「（既定生存時間）×（キーへのアクセス回数）×（検索要求メッセージ内のホップ数）」とする。既定生存時間は、各ノードのデータ通信速度によって既定される固定値である。キーへのアクセス回数は、各ノードで管理および更新する値である。検索要求メッセージ内のホップ数は、検索要求メッセージＬ＿Ｇを最初に送信したノードから検索応答メッセージＲ＿Ｇを送信するノードまでの転送回数により定まる。たとえば、上記ノード１−５の場合は、既定生存時間を１００秒、キーへのアクセス回数が１００回とすると、検索要求メッセージＬ＿Ｇ内のホップ数が２なので、生存時間基数は「１００×１００×２＝２００００秒」となる。ノード１−５は、キーＧと生存時間基数２００００秒を検索応答メッセージＲ＿Ｇに含めて、検索要求メッセージＬ＿Ｇを最初に送信したノード１−１に向けて送信する。
【００３３】
本実施の形態では、ノードのデータ通信速度が速いほど既定生存時間を大きくとることとする。また、検索要求メッセージを送信したノードから遠いほど検索要求メッセージ内のホップ数が大きくなる。したがって、上記生存時間基数の計算式より生存時間基数を計算すると、ノードのデータ通信速度が速く、キーへのアクセス回数が多く、検索要求メッセージを送信したノードから遠いほど（ホップ数が多いほど）、生存時間基数が大きくなる。
【００３４】
つぎに、検索応答メッセージＲ＿Ｇを送信したノード１−５と検索要求メッセージＬ＿Ｇを最初に送信したノード１−１の経路上にあるノード１−３は、検索応答メッセージＲ＿Ｇ内のキーＧを、自ノードのキャッシュに保持する。このとき、キーＧをキャッシュに保持するノード１−３は、保持するキーＧに生存時間を付与する。生存時間は、「（生存時間基数）×（ｌｏｇ10（自ノードのデータ通信速度［ｂｐｓ］））」とする。ここでは、検索応答メッセージＲ＿Ｇに含まれる生存時間基数が２００００秒である。また、自ノードのデータ通信速度を１０7ｂｐｓとする。したがって、生存時間は、「２００００×ｌｏｇ10（１０7）＝１４００００秒」となる。この場合、ノード１-３は、キーＧを１４００００秒間にわたってキャッシュに保持することになり、１４００００秒経過後にキャッシュに保持したキーＧを削除する。なお、上記生存時間の計算式では、ノードのデータ通信速度が速いほど、生存時間が大きくなる。
【００３５】
つぎに、検索要求メッセージＬ＿Ｇを送信したノード１−１は、検索応答メッセージＲ＿Ｇを受信すると、検索応答メッセージ内Ｒ＿ＧのキーＧを使用して、ノード１−７から「ノード１−７→ノード１−５→ノード１−３」の経路でデータＤａｔａ＿Ｇを取得し、取得したデータＤａｔａ＿Ｇを自ノードで保持する。
【００３６】
上記のようにキャッシュに保持したキーの生存時間を設定することで、データ通信速度が速く検索要求ノードから遠いノードは、アクセス回数の多いキーをより長い時間にわたってキャッシュに保持する。また、これらのノードで検索処理を行う方が、データ通信速度が速いため、データの検索が完了するまでの時間を短縮することができ、Ｐ２Ｐネットワーク全体の処理効率は向上する。逆に、データ通信速度の遅いノードについては、キーの生存時間を短くする。その結果、データ通信速度が小さいノードで行われる検索処理は少なくなり、Ｐ２Ｐネットワーク全体の処理効率からみても望ましい。
【００３７】
以上説明したように、本実施の形態によれば、データ通信速度で階層化されたＰ２Ｐネットワークにおいて、各ノードが、自身のデータ通信速度を考慮してキャッシュに保持したキーの生存時間を決めることとした。これにより、データ通信速度が遅いノードで検索処理が行われる機会が少なくなり、データ通信速度の速いノードで検索処理が行われる機会が多くなるため、データを検索する時間を短縮することができ、さらに、Ｐ２Ｐネットワーク全体の処理効率を向上させることができる。
【００３８】
実施の形態２．
本実施の形態では、新規にＰ２Ｐネットワークに参加するノードが、参加要求メッセージ内に、自ノードのデータ通信速度のほかに、さらに、使用可能なキャッシュ領域の情報も含める。なお、本実施の形態にかかるＰ２Ｐネットワークの構成例は実施の形態１と同様のため、同様の符号を付してその説明を省略する。
【００３９】
つづいて、本実施の形態のＰ２Ｐ通信方法を説明する。実施の形態１と同様、新規にＰ２Ｐネットワークに参加するノードは、Ｐ２Ｐアプリケーション起動時に、２つの既定ノードに対して参加要求メッセージを送信する。このとき、参加要求メッセージ内に、自ノードのデータ通信速度の情報と、さらに、自ノードの使用可能キャッシュ領域の大きさの情報を含める。使用可能キャッシュ領域とは、ノードがＰ２Ｐネットワークにおいてキーを保持することができる自ノードのキャッシュの大きさをいう。
【００４０】
参加要求メッセージを受信した（既定の）ノードは、参加要求メッセージに含まれたデータ通信速度と、自ノードのデータ通信速度を比較する。このとき、データ通信速度がほぼ同じである場合、参加要求メッセージを受信したノードは、さらに使用可能キャッシュ領域の大きさも比較する。
【００４１】
たとえば、参加要求メッセージを送信したノードの使用可能キャッシュ領域が自ノードの使用可能キャッシュ領域より大きい場合、参加要求メッセージを受信したノードは、参加要求メッセージを送信したノードを、自ノードの上流に配置して接続することで、Ｐ２Ｐネットワークに参加させる。逆に、参加要求メッセージを送信したノードの使用可能キャッシュ領域が自ノードの使用可能キャッシュ領域とほぼ同じか、または小さい場合、参加要求メッセージを受信したノードは、参加要求メッセージを送信したノードを、自ノードの下流に配置して接続することで、Ｐ２Ｐネットワークに参加させる。
【００４２】
ここで、ほぼ同じ場合とは、たとえば、基準値を自ノードの使用可能キャッシュ領域の大きさのｅ倍（０＜ｅ＜１）およびｆ倍（１＜ｆ）として、ｅ倍より大きくｆ倍より小さい場合とする。ｅ，ｆは、任意に設定することが可能である。
【００４３】
本実施の形態のＰ２Ｐネットワークでは、データ通信速度がほぼ同じ場合であっても、使用可能キャッシュ領域が大きいノードが上流に配置されることで、他ノードからの検索要求に対応する機会が多くなり、その結果、多くのキーをキャッシュに保持することになる。また、使用可能キャッシュ領域が小さいノードについては、その容量から、新たなキーをキャッシュに保持できない可能性があるので、使用可能キャッシュ領域が大きいノードよりも下流に配置し、検索要求に対応する機会を少なくする。
【００４４】
なお、ノードがＰ２Ｐネットワークに参加した以降の、ノードがデータ検索を実施する処理については実施の形態１と同様である。
【００４５】
以上説明したように、本実施の形態によれば、ノードのデータ通信速度がほぼ同じ場合に、使用可能キャッシュ領域の大きいノードのキャッシュにキーを保持する機会を多くすることとした。これにより、使用可能キャッシュ領域の大きいノードにより多くのキーを保持させることができ、また、使用可能キャッシュ領域の小さいノードのキャッシュに保持させるキーの数を制限できるため、実施の形態１と比較して、さらに、Ｐ２Ｐネットワーク全体の処理効率を向上させることができる。
【産業上の利用可能性】
【００４６】
以上のように、本発明にかかるＰ２Ｐ通信方法は、Ｐ２Ｐネットワークに有用であり、特に、データ通信速度に応じてノードが階層的に接続されたＰ２Ｐネットワークに適している。
【図面の簡単な説明】
【００４７】
【図１】本発明にかかるＰ２Ｐネットワークの構成例を示す図である。
【符号の説明】
【００４８】
１−１，１−２，１−３，１−４，１−５，１−６，１−７  ノード
２  第一ノード階層
３  第二ノード階層
４  第三ノード階層
【図１】
2009272802.tif 000003