(57)【特許請求の範囲】
【請求項１】
プログラムされたコンピュータ処理によって、ＩＰネットワークに接続するＮ個のオーバーレイノードによって構成される論理網であるオーバーレイネットワークにおける、発信元ノードから着信先ノードへの通信経路を決定する方法であって、
プログラムされたコンピュータの処理実行手順として、
上記オーバーレイネットワークに属する各ノードｉ（ｉ＝１〜Ｎ）が、
自ノードを発信元ノードとし他ノードｊを着信先ノードｊとして、発信元ノードｉと着信先ノードｊの間の通信品質を測定して記憶装置に記憶する第１の手順と、
予めＮ個のノードの中から選択されたＭ個の中継候補ノードのそれぞれの負荷情報および当該中継候補ノードと着信先ノードｊ間の通信品質測定結果を取得して記憶装置に記憶する第２の手順と、
記憶装置に記憶した各中継候補ノードの着信先ノードｊ間の通信品質測定結果を用いて、自ノードｉから当該中継候補ノードを経由して上記着信先ノードｊに到達するまでの通信品質を算出する第３の手順と、
該算出した通信品質と上記測定した通信品質とを比較して、該算出した通信品質が上記測定した通信品質より良い中継候補ノードｋ（１≦ｋ≦Ｍ）を抽出する第４の手順と、
抽出した中継候補ノードｋから、負荷が予め定められた閾値を超えない最も通信品質の良い中継候補ノードｋ＊を選択する第５の手順と、
選択した中継候補ノードｋ＊を中継した上記着信先ノードｊへの通信経路を、自ノードｉから着信先ノードｊへの通信経路として決定する第６の手順と、
上記抽出した全ての中継候補ノードｋの負荷が予め定められた閾値を超える場合、もしくは、上記算出した通信品質と上記測定した通信品質との比較において上記算出した通信品質が上記測定した通信品質より良い中継候補ノードｋが存在しない場合、当該中継ノードｋは用いずに上記着信先ノードｊへ直接転送する経路を自ノードｉから着信先ノードｊへの通信経路として決定する第７の手順と
を含むことを特徴とするオーバーレイネットワーク通信経路決定方法。
【請求項２】
請求項１に記載のオーバーレイネットワーク通信経路決定方法であって、
上記第５の手順は、
上記第４の手順で抽出した中継候補ノードｋから最も通信品質の良い中継候補ノードｋ＊を選択する手順と、
該手順で選択した中継候補ノードｋ＊の負荷が上記閾値を超えているか否かを判定する手順と、
超えている場合、上記中継候補ノードｋから上記中継候補ノードｋ＊を除いた残りのノードのうちで、負荷が上記閾値を超えていない最も通信品質の良いノードを上記中継候補ノードｋ＊の代わりとして選択する手順と
を含むことを特徴とするオーバーレイネットワーク通信経路決定方法。
【請求項３】
請求項１に記載のオーバーレイネットワーク通信経路決定方法であって、
上記第５の手順は、
上記第４の手順で抽出した中継候補ノードｋから最も通信品質の良い中継候補ノードｋ＊を選択する手順と、
該手順で選択した中継候補ノードｋ＊の負荷が上記閾値を超えているか否かを判定する手順と、
超えている場合、上記中継候補ノードｋから上記中継候補ノードｋ＊を除いた残りのノードのうち、負荷が上記閾値を超えておらず、且つ、上記中継候補ノードｋ＊との通信遅延時間が最も少ないノードを上記中継候補ノードｋ＊の代わりとして選択する手順と
を含むことを特徴とするオーバーレイネットワーク通信経路決定方法。
【請求項４】
請求項１に記載のオーバーレイネットワーク通信経路決定方法であって、
上記第５の手順は、
上記第４の手順で抽出した中継候補ノードｋから最も通信品質の良い中継候補ノードｋ＊を選択する手順と、
該手順で選択した中継候補ノードｋ＊の負荷が上記閾値を超えているか否かを判定する手順と、
超えている場合、
上記Ｍ個の中継候補ノードを含む予め選択されたＭ’個（Ｍ’≧Ｍ）のノードから上記中継候補ノードｋ＊を除いた残りのノードのうち、負荷が上記閾値を超えておらず、且つ、上記中継候補ノードｋ＊との通信遅延時間が最も少ないノードを上記中継候補ノードｋ＊の代わりとして選択する手順と
を含むことを特徴とするオーバーレイネットワーク通信経路決定方法。
【請求項５】
請求項１に記載のオーバーレイネットワーク通信経路決定方法であって、
上記第５の手順は、
上記第４の手順で抽出した中継候補ノードｋから最も通信品質の良い中継候補ノードｋ＊を選択する手順と、
該手順で選択した中継候補ノードｋ＊の負荷が上記閾値を超えているか否かを判定する手順と、
超えている場合、
上記Ｍ個の中継候補ノードｋから負荷が上記閾値を超えていない中継候補ノードを抽出する手順と、
上記Ｍ個の中継候補ノードｋから負荷が上記閾値を超えている中継候補ノードｋ’ （１≦ｋ’≦Ｍ）を特定する手順と、
上記Ｍ個の中継候補ノードを含む予め選択されたＭ’個（Ｍ’≧Ｍ）のノードから、負荷が上記閾値を超えておらず、且つ、各中継候補ノードｋ’との通信遅延時間が最も少ない各ノードを抽出する手順と、
該手順で抽出した各ノードと上記Ｍ個の中継候補ノードｋから抽出した負荷が上記閾値を超えていない中継候補ノードのうちで、最も通信品質の良いノードを上記中継候補ノードｋ＊の代わりとして選択する手順と
を含むことを特徴とするオーバーレイネットワーク通信経路決定方法。
【請求項６】
請求項１に記載のオーバーレイネットワーク通信経路決定方法であって、
上記第５の手順は、
上記第４の手順で抽出した中継候補ノードｋから負荷が上記閾値を超えないノードを選択する手順と、
該手順で選択したノードのうち最も通信品質の良いノードを上記中継候補ノードｋ＊として選択する手順と
を含むことを特徴とするオーバーレイネットワーク通信経路決定方法。
【請求項７】
請求項１に記載のオーバーレイネットワーク通信経路決定方法であって、
上記第３〜第５の手順の代わりに、
上記記憶したＭ個の中継候補ノードの負荷情報を用いて、負荷が上記閾値を超えない中継候補ノードを抽出する手順と、
該手順で抽出した中継候補ノードを対象に、当該中継候補ノードの上記着信先ノードｊ間の通信品質測定結果を用いて、自ノードｉから当該中継候補ノードを経由して上記着信先ノードｊに到達するまでの通信品質を算出する手順と、
該手順で算出した通信品質が最も高く且つ上記測定した通信品質より良いノードを上記中継候補ノードｋ＊として選択する手順と
を含むことを特徴とするオーバーレイネットワーク通信経路決定方法。
【請求項８】
請求項１から請求項７のいずれかに記載のオーバーレイネットワーク通信経路決定方法であって、
プログラムされたコンピュータ処理により上記Ｍ個の中継候補ノードを選択する手順として、
上記第５の手順で中継候補ノードｋ＊として選択された頻度が高いノードが、上記Ｍ個の中継候補ノードとして選択される確率を大きくする手順を含む
ことを特徴とするオーバーレイネットワーク通信経路決定方法。
【請求項９】
コンピュータに、請求項１から請求項８のいずれかに記載のオーバーレイネットワーク通信経路決定方法における各手順を実行させるためのプログラム。
【請求項１０】
プログラムされたコンピュータ処理によって、ＩＰネットワークに接続するＮ個のオーバーレイノードによって構成される論理網であるオーバーレイネットワークにおける、発信元ノードから着信先ノードへの通信経路を決定するシステムであって、
プログラムされたコンピュータ処理手順を実行する手段として、
請求項１から請求項８のいずれかに記載のオーバーレイネットワーク通信経路決定方法における各手順を実行する手段を設けたことを特徴とするオーバーレイネットワーク通信経路決定システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インターネットにおけるエンド・ツー・エンドの通信品質を向上させる技術に係り、特に、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ネットワーク上に論理的に形成されたオーバーレイネットワークを用いた通信経路で、エンド・ツー・エンドの通信品質を効率的に向上させるのに好適なオーバレイルーチング技術に関するものである。
【背景技術】
【０００２】
ＩＰネットワークを代表するインターネットは、多様なアプリケーションの収容を可能とすべく発展・普及してきており、昨今では、ＶｏＩＰ（Ｖｏｉｃｅ  ｏｖｅｒ  ＩＰ）やストリーミングに代表されるＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）に敏感な実時間アプリケーション等の収容も急速に発展している。
【０００３】
これに伴い、エンド・ツー・エンドでの輻輳を回避し、品質を向上するための技術（「エンド・ツー・エンドＱｏＳ管理技術」）をインターネット上で実現することが重要な課題となっている。しかしながら、このような技術を実現する上では、以下に示す問題点がある。
【０００４】
（１）インターネットは既に社会的インフラ化しており、既存のネットワーク構造を大きく変更するような、ネットワークレイヤでの新たな機能拡張は困難である。
【０００５】
（２）インターネットは管理主体の異なる複数のＡＳ（Ａｕｔｏｎｏｍｏｕｓ  Ｓｙｓｔｅｍ）によって形成されており、全てのＡＳに対して一斉に新たな機能を拡張することは困難である。
【０００６】
こうした中、下位のネットワークレイヤを変更することなくエンド・ツー・エンドＱｏＳの向上を可能とする有力な技術として、例えば非特許文献１に記載の、オーバーレイネットワークによるＱｏＳ管理技術が注目されている。
【０００７】
オーバーレイネットワークとは、例えば非特許文献２においても記載のように、既存のリンクを用いて、その上位層に目的に応じて論理的（仮想的）なリンクを形成し、構成するネットワークである。
【０００８】
このようなオーバーレイネットワークによるＱｏＳ管理の基本的な概念を図７に例示する。図７において、１００ａ〜１００ｃはオーバーレイネットワーク（図中「Ｏｖｅｒｌａｙ−ＮＷ」と記載）を構成するノード（オーバーレイノード）であり、１０１ａ〜１０１ｅはＩＰネットワーク（図中「ＩＰ−ＮＷ」と記載）１０２を構成するＩＰルータであり、ｘからｙに向けて、破線矢印で表わされる経路にトラヒックが流れているとする。また、この経路上には輻輳しているＩＰルータが存在しており、その結果として、ｘ，ｙ間のＱｏＳが低下しているとする。
【０００９】
このとき、オーバーレイノード１００ａ，１００ｂ，１００ｃで形成されるオーバーレイネットワークを用いて、実線矢印で表される経路（ｘ→オーバーレイノード１００ａ→オーバーレイノード１００ｂ→オーバーレイノード１００ｃ→ｙ）にトラヒックを迂回させることができれば、上記の輻輳を回避できる。
【００１０】
実際、非特許文献３，４，５では、上記のような迂回経路が実網において多数存在していることを実測に基づいて示している。しかし、非特許文献３と非特許文献５の結果はオーバーレイネットワークのトポロジをフルメッシュとし、全てのオーバーレイノード間で測定した品質情報を利用して理想的な通信経路計算を行った場合の評価となっており、オーバーレイノードの総数が増加した場合のスケーラビリティ（システムの拡張性）の低下については考慮されていない。
【００１１】
すなわち、オーバーレイノードの総数が大きい場合には、全てのオーバーレイノード間の品質測定情報を用いて通信経路の計算を行うことは現実的には不可能であるという問題がある。
【００１２】
このような問題を回避するため、非特許文献４では、迂回経路を提供する中継候補ノード数を制限した場合を評価している。しかし、この技術では、中継候補ノードは単にランダムに選択しているにすぎず、中継候補ノードの選択方法までは検討していなかった。
【００１３】
一方、特許文献１においては、中継候補ノードを計測データに基づいて適切に制限することにより、全ノードを中継候補として経路探索を行った最適な場合とほぼ同等のＱｏＳ向上を図る技術が記載されている。
【００１４】
この技術では、全てのノードペアに対する経路について、全ノードを中継候補ノードとした場合の最適な経路を計算しておき、各ノードが最適な経路を提供する中継ノードとして選択される「頻度」を計算しておき、その「頻度」の高い上位Ｍ個のノードを抽出しておき、以上の準備の下、以降の経路計算時には、このＭ個の中継候補ノードのみを用いている。
【００１５】
この特許文献１の技術では、一旦、全経路探索を行う必要があったのに対し、さらに、非特許文献６では、常に中継候補ノード数を一定数以下に抑えておき、実際の中継ノードの選択行為を通じて高品質な経路を提供可能な中継ノードを学習し、そのようなノードを高確率で選択することにより、最適な場合とほぼ同等のＱｏＳ向上を図る技術が提案されている。
【００１６】
しかしながら、この非特許文献６の技術では、各中継ノードが最適な経路を提供できる頻度が一定で変化のない場合を仮定しており、ネットワーク条件が変化して、最適な中継ノードである頻度の順位が変わるような場合には対応できないという問題点があった。
【００１７】
例えば、あるノードは、これまでは、自ノードの設置されるネットワークが回線帯域が不十分なため品質が良くなく、最適なノードである頻度が非常に小さかったが、ある時点で当該ネットワークが設備増設をして品質が向上した場合を想定する。
【００１８】
このような場合、上述した２つの技術では、これまでのネットワーク状況から高品質な上位Ｍ個のノードを決めて、そこから中継ノードを選択するため、新規に高品質になったノードを適切に選択できない、という問題が生じる。
【００１９】
また、逆に、それまで上位Ｍ個の中継候補ノードにランクされていたノードの周囲のネットワーク条件が変化して品質が劣化したときにも、当該ノードを中継候補として選択してしまうという問題が生じる。
【００２０】
このような技術の問題点（オーバーレイネットワークにおけるネットワーク条件の変化に適切に追従して、そのときのネットワーク条件に応じた高品質な経路を提供可能な中継ノードを適切に選択することができない点）を解決し、オーバーレイネットワークにおけるエンド・ツー・エンドの通信品質を効率的に向上させる技術として、例えば、特許文献２に記載の技術がある。
【００２１】
この特許文献２に記載の技術は、中継候補ノードを一定数以下に抑えておき、実際の中継ノード選択行為を通じて高品質な経路を提供可能な中継ノードが選択される確率が高くなるように該選択確率を動的に変化させてオーバーレイネットワークにおける高品質な通信経路を決定するものである。
【００２２】
すなわち、この技術では、オーバーレイネットワークにおける通信経路制御を行う際、ネットワーク条件の変化に適切に追従して、そのときのネットワーク条件に応じた高品質な経路を提供可能な中継ノードを適切に選択できるように各ノードの選択確率を補正できる仕組みを持たせたものである。
【００２３】
より具体的には、ＩＰネットワークに接続するＮ個のオーバーレイノードによって構成される論理網であるオーバーレイネットワークにおいて、発信元ノードから着信先ノードヘの通信経路を決定する際、オーバーレイネットワークに属する各ノードｉ（ｉ＝１〜Ｎ）は、自ノードを発信元ノードとし他ノードｊ（ｉを除く全て）を着信先ノードｊとして、発信元ノードｉと着信先ノードｊの間の通信品質を測定しておき、その一方でＮ個のノードの中からＭ個のノードを中継ノードの候補として選択し、中継候補ノードｋから着信先ノードｊの間の通信品質測定結果を中継候補ノードから取得し、自ノードｉと着信先ノードｊの間の通信品質と、自ノードｉから中継候補ノードｋを経由して着信先ノードｊに到達するときの通信品質を比較し、前者の方が良い品質を与える場合には中継ノードは用いずに着信先ノードｊへ直接転送する経路を自ノードｉから着信先ノードｊへの通信経路として決定し、また、後者が良い品質を与える場合には、その中でも最も高品質を提供するノードｋ＊を中継ノードとし、通信経路を自ノードｉ→中継ノードｋ＊→着信先ノードｊと決定すると共に、次回の中継候補ノード選択時には、過去に中継ノードとして選択された頻度に応じて中継候補ノードをＭ’個選択し、残りのＭ−Ｍ’個は、当該頻度には依存せずに等確率で中継候補ノードを選択し、さらに、ネットワーク条件の変動を監視し、その変動が検知された際には各ノードの選択確率をその状況に応じて変化させるものである。
【００２４】
この特許文献２の技術によれば、ネットワーク条件の変動に追従して、オーバーレイネットワークにおける通信経路計算に伴うコストを削減しつつ、通信品質の改善を図ることが可能となる。
【００２５】
しかしながら、この特許文献２の技術では、高品質な経路を提供可能な中継ノードが一部に偏っていることを利用しているため、この技術を実施すると、ある特定のノードに中継のための負荷が集中してしまうという問題点がある。
【００２６】
【特許文献１】特開２００７−０１９６８３号公報
【特許文献２】特開２００８−０５３７９４号公報
【非特許文献１】Ｌ．Ｚｈｉ  ａｎｄ  Ｐ．Ｍｏｈａｐａｔｒａ，“ＱＲＯＮ：ＱｏＳ−ａｗａｒｅ  ｒｏｕｔｉｎｇ  ｉｎ  ｏｖｅｒｌａｙ  ｎｅｔ−ｗｏｒｋｓ，”ＩＥＥＥ  Ｊ．Ｓｅｌｅｃｔ．Ａｒｅａｓ  Ｃｏｍｍｕｎ．，ｖｏｌ．２２，ｐｐ．２９−４０，Ｊａｎｕａｒｙ  ２００４．
【非特許文献２】ＷＩＤＥプロジェクト，“オーバーレイネットワークによる統合分散環境，”ＷＩＤＥプロジェクト研究報告書，第１７部，２００２．
【非特許文献３】亀井，川原，“エンドホストオーバーレイネットワークによるトラヒックエンジニアリングとその有効性，”信学ソ大，ＢＳ−５−３，２００４．
【非特許文献４】Ｓ．Ｒｅｗａｓｋａｒ  ａｎｄ  Ｊ．Ｋａｕｒ，“Ｔｅｓｔｉｎｇ  ｔｈｅ  Ｓｃａｌａｂｉｌｉｔｙ  ｏｆ  Ｏｖｅｒｌａｙ  Ｒｏｕｔｉｎｇ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅｓ，”Ｐｒｏｃ．ＰＡＭ  ２００４．Ａｐｒｉｌ  ２００４．
【非特許文献５】Ｓ．Ｂａｎｅｒｊｅｅ，Ｔ．Ｇ．Ｇｒｉｆｉｎ  ａｎｄ  Ｍ．Ｐｉａｓ，“Ｔｈｅ  Ｉｎｔｅｒｄｏｍａｉｎ  Ｃｏｎｎｅｃｔｉｖｉｔｙ  ｏｆ  ＰｌａｎｅｔＬａｂ  Ｎｏｄｅｓ，”  Ｐｒｏｃ．ＰＡＭ  ２００４，Ａｐｒｉｌ  ２００４．
【非特許文献６】川原，亀井，内田，阿部，“迂回経路候補数に制限がある場合のＱｏＳオーバーレイ経路選択アルゴリズムとその評価，”  信学技報  ＩＮ２００５−１９５，ｐｐ．２３１−２３６，（２００６年３月）．
【発明の開示】
【発明が解決しようとする課題】
【００２７】
解決しようとする問題点は、従来の技術では、高品質な経路を提供可能な中継ノードが一部に偏っていることを利用しているため、ある特定のノードに中継のための負荷が集中してしまう点である。
【００２８】
本発明の目的は、これら従来技術の課題を解決し、特定のノードに負荷が集中しないようにしつつ、高品質な迂回経路を提供可能な中継ノードを選択可能とすることである。
【課題を解決するための手段】
【００２９】
上記目的を達成するため、本発明では、オーバーレイネットワークにおける通信経路を形成する中継ノードを選択する際、各中継候補ノードの通信品質と共に、各中継候補ノードの負荷を考慮する。すなわち、（１−１）ＩＰネットワークに接続するＮ個のオーバーレイノードによって構成される論理網であるオーバーレイネットワークにおいて、発信元ノードから着信先ノードへの通信経路を決定する際、まず、オーバーレイネットワークに属する各ノードｉ（ｉ＝１〜Ｎ）は、自ノードを発信元ノードとし他ノードｊを着信先ノードｊとして、発信元ノードｉと着信先ノードｊの間の通信品質を測定すると共に、Ｎ個のノードの中から予め選択されたＭ個の中継候補ノードｋ（１≦ｋ≦Ｎ）のそれぞれが測定した着信先ノードｊ間の通信品質測定結果を当該中継候補ノードｋから取得して、この中継候補ノードｋを経由して自ノードｉから着信先ノードｊに到達するときの通信品質を算出し、この算出した通信品質と、自ノードｉで測定した着信先ノードｊ間の通信品質とを比較する。測定した通信品質の方が算出した通信品質より良い場合には中継候補ノードｋは用いずに着信先ノードｊへ直接転送する経路を自ノードｉから着信先ノードｊへの通信経路とし、測定した通信品質の方が算出した通信品質より悪い場合には、各中継候補ノードｋの中でも最も高品質で且つ負荷が予め定めた閾値を超えない中継候補ノードｋ＊を選択し、この中継候補ノードｋ＊を経由する経路を、自ノードｉから着信先ノードｊへの通信経路として決定する。このように、本発明では、中継候補ノードの負荷に基づき中継ノードとして使用するかどうかを判定することにより、特定ノードへの負荷集中を回避している。尚、負荷の尺度として、現時点で中継ノードとして既に選択された回数や、ＣＰＵ使用率、当該中継ノードを介して転送されているトラヒック量、などを用いる。また、中継ノードｋ＊を用いた通信経路を決定した結果を、次回のＭ個の中継候補ノードの選択に反映させる技術として、上述の特許文献２における技術の考えに基づいて行う。すなわち、次回の中継候補ノード選択時には、過去に中継ノードとして選択された頻度が高いノードが選択される確率を大きくしておくものであり、高品質な経路を提供した中継ノードが次回の中継候補ノード選択時に選ばれやすくなるようにして、それを繰り返していくことによって、高品質な経路を提供可能な中継ノードを学習・選択することにより、高品質な通信経路を決定する。
【発明の効果】
【００３０】
本発明によれば、オーバーレイネットワークにおける通信経路を決定する際、特定ノードへの負荷集中を回避することができ、オーバーレイネットワークにおける通信品質の改善を図ることが可能となる。
【発明を実施するための最良の形態】
【００３１】
以下、図を用いて本発明を実施するための最良の形態例を説明する。図１は、本発明に係る通信経路制御システムを形成するオーバーレイノードの構成例を示すブロック図であり、図２は、図１におけるオーバーレイノードに接続された管理サーバの構成例を示すブロック図、図３は、図１におけるオーバーレイノードと図２における管理サーバを有するオーバーレイネットワークの構成例を示すブロック図である。
【００３２】
図３に示すオーバーレイネットワークは、図７において説明したオーバーレイネットワークの構成と同様であり、本例の図３に示すオーバーレイネットワークにおいては、図１に示す処理機能を具備したオーバーレイノード１〜５（以下、単に、「ノード１〜５」という）を含む複数のノードと共に、図２に示す処理機能を具備した管理サーバ２１が設けられている。
【００３３】
ノード１〜５等の各ノードおよび管理サーバ２１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）や主メモリ、表示装置、入力装置、外部記憶装置等を具備したコンピュータ構成からなり、光ディスク駆動装置等を介してＣＤ−ＲＯＭ等の記憶媒体に記録されたプログラムやデータを外部記憶装置内にインストールした後、この外部記憶装置から主メモリに読み込みＣＰＵで処理することにより、本発明に係る各処理部の機能を実行する。
【００３４】
例えば、ノード１〜５は、プログラムされたコンピュータ処理を実行する機能として、図１に示すように通信品質測定部１ａと通信品質取得部１ｂおよび中継ノード決定部１ｃと中継候補受信部１ｄを具備し、管理サーバ２１は、プログラムされたコンピュータ処理を実行する機能として、図２に示すように中継ノード状態管理部２１ａと中継候補ノード選択部２１ｂを具備している。
【００３５】
ノード１〜５等の各ノードは、それぞれ、他のノードと論理的に接続している。つまり、オーバーレイネットワークに存在する他のノードのＩＰアドレスを知っており、通信可能な状態にある。
【００３６】
また、管理サーバ２１は、ノード１〜５を含む各ノードのいずれかを、中継候補ノードとして管理する機能を有する。
【００３７】
このような構成において、本例では、オーバーレイネットワークにおける通信品質の改善を図ることを目的に、オーバーレイネットワークにおける通信経路を構成する中継ノードを決定する際に、特定の中継ノードへの負荷集中を回避しつつ、且つ、ネットワーク条件の変化に適切に追従して、その時々のネットワーク条件に応じた高品質な経路を提供可能な中継ノードを適切に選択できるようにする仕組みとして以下の各技術を用いる。
【００３８】
第１の技術は、オーバーレイネットワークを構成するノード間の通信品質の測定および中継ノードを用いて迂回するか否の決定を行うものであり、この第１の技術として本例では、当該オーバーレイネットワークに属するあるノードから着信先ノードヘの通信経路を決定する際、各ノードｉ（ｉ＝１〜Ｎ）は、自ノードを発信元ノードｉとし、他ノードｊ（ｉを除く全て）を着信先ノードｊとして、発信元ノードｉと着信先ノードｊの間の通信品質を測定しておき、その一方で、Ｎ個のノードの中からＭ個のノードを中継ノードの候補として選択する。
【００３９】
そして、選択した中継候補ノードｋ（ｋ＝１〜Ｍ）から着信先ノードｊの間の通信品質測定結果を、当該中継候補ノードｋから取得し、自ノードｉで測定した「自ノードｉと着信先ノードｊの間の通信品質」である第１の通信品質と、中継候補ノードｋから取得した「自ノードｉから中継候補ノードｋを経由して着信先ノードｊに到達するときの通信品質」である第２の通信品質とを比較する。
【００４０】
比較の結果、第１の通信品質（直接経路）の方が良い品質を与える場合には、中継候補ノードｋは用いずに着信先ノードｊへ直接転送する経路を自ノードｉから着信先ノードｊへの通信経路として決定し、また、第２の通信品質（中継経路）の方が良い品質を与える場合には、該当する複数の中継候補ノードの中でも、その負荷が予め定めた閾値を超えていないノードで、且つ最も高品質を提供するノードｋ＊を中継ノードとして選択し、通信経路を「自ノードｉ→中継ノードｋ＊→着信先ノードｊ」と決定する。
【００４１】
このように、各ノード間の通信品質の測定および中継ノードを用いて迂回するか否かの決定を行う際に、自ノードｉと着信先ノードｊの間の通信品質として、前述の「非特許文献６」に記載の遅延時間ｄ（ｉ，ｊ）を用いる技術について説明する。
【００４２】
この場合、自ノードｉから中継候補ノードｋの遅延時間ｄ（ｉ，ｋ）と中継候補ノードｋと着信先ノードｊの間の遅延時間ｄ（ｋ，ｊ）を用いて、ｄ（ｉ，ｊ）＞ｄ（ｉ，ｋ）＋ｄ（ｋ，ｊ）を満たすｋが存在するか否かを調べ、存在しない場合は、ノードｉからノードｊの直通を通信経路として決定し、存在する場合は、右辺を最小にするｋを中継ノードｋ＊とし、通信経路を自ノードｉ→中継ノードｋ＊→着信先ノードｊと決定する。
【００４３】
尚、第２の通信品質（中継経路）の方が良い品質を与える場合でも、該当する全ての中継候補ノードの負荷が予め定めた閾値を超えている場合には、これらの中継候補ノードｋは用いずに着信先ノードｊへ直接転送する経路を自ノードｉから着信先ノードｊへの通信経路として決定する。
【００４４】
また、第２の通信品質（中継経路）の方が良い品質を与える場合で、該当する複数の中継候補ノードの中でも、その負荷が予め定めた閾値を超えていないノードで、且つ最も高品質を提供するノードｋ＊を中継ノードとして選択する際には、まず、最も高品質を提供するノードｋ＊を選択し、その後、当該ノードｋ＊の負荷をチェックして、負荷が予め定めた閾値を超えているか否かを判定し、超えていなければ、通信経路を「自ノードｉ→中継ノードｋ＊→着信先ノードｊ」と決定し、超えている場合には、後述の技術を用いて、ノードｋ＊の代わりに他の中継候補ノードを探す。
【００４５】
尚、負荷の尺度として、現時点で中継ノードｋ＊として既に選択された回数や、ＣＰＵ使用率、当該中継ノードを介して転送されているトラヒック量などを用いる。
【００４６】
このようにして中継ノードｋ＊を用いた通信経路を決定した結果は、例えば、前述の「非特許文献６」に記載の技術により、次回のＭ個の中継候補ノードの選択に反映させる。
【００４７】
すなわち、次回の中継候補ノード選択時には、過去に中継ノードとして選択された頻度に応じて中継候補ノードをｍ個選択し、残りのＭ−ｍ個は、当該頻度には依存せずに等確率で中継候補ノードを選択し、さらに、ネットワーク条件の変動を監視し、その変動が検知された際には各ノードの選択確率をその状況に応じて変化させる。
【００４８】
さらに、本例では、それに加え、以下の第２の技術として説明するように、頻度には依存しないで等確率で選択する機能を追加している。こうすることにより、過去の状況に依存しないでノードを選択し、例えば、過去には低品質だったが、現在は新規に高品質となったノードも、ある一定の確率で選択でき、一旦選択されれば、選択確率が徐々に大きくなり、そのときのネットワークの状況に応じた選択が可能になる。
【００４９】
以下、第２の技術について説明する。上述の第１の技術により中継ノードｋ＊を用いた通信経路を決定した場合、自ノードｉは、当該中継ノードｋ＊に対して、通信経路を「自ノードｉ→中継ノードｋ＊→着信先ノードｊ」と設定するように要求し、要求を受けた中継ノードｋ＊は、「自ノードｉ→中継ノードｋ＊→着信先ノードｊ」の通信経路を設定し、その後、自身が中継ノードとして選択された旨を管理サーバ２１に通知する。
【００５０】
中継ノードｋ＊からの通知を受けた管理サーバ２１は、以下のようにして、Ｍ個の中継候補ノードの選択を行う。尚、このＭ個の中継候補ノードの選択は、後述するように、管理サーバ２１とノード１〜５とで行うことでも良い。
【００５１】
管理サーバ２１は、オーバーレイネットワーク内における中継候補ノードの情報を管理する。管理サーバ２１は、図３に示しているノード１〜５を含む各ノードのｎ番目の測定周期（時点ｎ）での得点Ｃ（ｎ，ｋ）を管理している。
【００５２】
時点ｎにおいて、発信元ノードｉは、着信先ノードｊへの経路を決定する際、管理サーバ２１から各ノードｋ（ｋ＝１〜Ｎ）の得点Ｃ（ｎ，ｋ）を読み出し、確率ｐ_ｋ＝Ｃ（ｎ，ｋ）／ΣｋＣ（ｎ，ｋ）でノードｋ（ｋはｉ以外）を中継候補ノードとして選択し、これをｍ個の中継候補ノードが決定するまで繰り返す。
【００５３】
また、残りのノード群の中から、中継候補ノードを等確率で選択し、これを「Ｍ−ｍ」個選択するまで繰り返す。そして、発信元ノードｉは着信先ノードｊへの経路を、上述のようにして決定する。
【００５４】
その際、ノードｋ＊が中継ノードとして決定されたら、当該ノードｋ＊は管理サーバ２１に、その旨を通知する。同様の手順は全ての発信元ノードと着信先ノードのペアについて実施される。
【００５５】
そして、管理サーバ２１は、各ノードから自身が中継ノードとして決定された旨を受信し、各ノードｋが時点ｎに中継ノードとなった回数Ｃ’（ｎ，ｋ）をカウントする。その値を用いて、次の時点ｎ＋１における各ノードｋの得点をＣ（ｎ＋１，ｋ）＝ｍａｘ｛Ｃ_ｌｏｗ，（１−１／ｔ’）Ｃ（ｎ，ｋ）＋１／ｔ’Ｃ’（ｎ，ｋ）｝により更新する。
【００５６】
なお、ここで、Ｃ_ｌｏｗは予め定める得点の下限値、１／ｔ’は平滑化パラメータであり、予め定めるパラメータβ（＞０）とｃ（＞１）を用いてｔ’＝ｍｉｎ｛ｎ＋β，ｃ｝で与えられ、Ｃ（ｎ，ｋ）の初期値はＣ（０，ｋ）＝１（全てのｋ）とする。
【００５７】
ここで、ノードの得点Ｃ（ｎ，ｋ）は、ノードｋが高品質な経路を提供すると増加していき、そうでないと減少するように更新している。従って、この得点に比例して中継候補ノードを選択することにより、高品質な経路を提供した中継ノードが次回の中継候補ノード選択時に選ばれやすくなるようにしている。
【００５８】
また、得点に下限値Ｃ_ｌｏｗを設けることにより、過度に得点が小さくならないようにすることにより、現在得点が下位のノードが、将来、ネットワーク条件が変化して上位ノードになったときに、得点が回復できるようにしている。
【００５９】
次に、ネットワーク条件の変動状況に応じて中継候補ノードの選択確率を変化させる技術について、第３，第４の技術として説明する。尚、本例では、中継ノード選択の際に用いるノードの得点を変更する技術を例として説明する。
【００６０】
第３の技術では、管理サーバ２１は、各ノードｋが時点ｎに中継ノードとなった回数Ｃ’（ｎ，ｋ）をカウントしておき、その合計値ΣｋＣ’（ｎ，ｋ）を計算し、それをノードペア総数Ｎ（Ｎ−１）で割ったものを、迂回経路の方が品質が良い頻度Ｆ（ｎ）とし、すなわち、Ｆ（ｎ）＝ΣｋＣ’（ｎ，ｋ）／｛Ｎ（Ｎ−１）｝とし、現在の時点ｎが「ｎ＞Ｔ」であればそのＴ期間前までの移動平均を意味するＦ_Ｔ（ｎ）を「Ｆ_Ｔ（ｎ）＝Σｘ＝１〜ＴＦ（ｎ−ｘ）／Ｔ」により計算し、さらに、「Ｆ（ｎ）／Ｆ_Ｔ（ｎ）」が予め定めたしきい値よりも小さい場合には、各ノードの得点Ｃ（ｎ，ｋ）を再初期化してＣ（０，ｋ）（ｋ＝１〜Ｎ）、時点ｎ＝０とする。
【００６１】
これは、ネットワーク条件が変化せずに定常状態にあるときには、迂回の方がよい頻度Ｆ（ｎ）は大きく変化せずほぼ一定の値をとると考えられるが、ネットワークの条件が変化すると、もはや今の中継ノード選択では適切な迂回路を見つけることができなくなり、その結果、Ｆ（ｎ）の値が小さくなると考えられる。
【００６２】
そこで、Ｆ（ｎ）の挙動を監視して、Ｆ（ｎ）の値に変化が生じたと判断したら、各ノードの得点を再初期化して学習しなおすことにより、新たな状況に追従が可能となる。
【００６３】
また、第４の技術では、各ノードｉは、自ノードｉから着信先ノードｊへの遅延ｄ（ｉ，ｊ）を測定しておき、現時点ｎの自ノードから他の全てのノードヘの平均遅延時間ｄ_ａｖｇ（ｎ）＝Σｊｄ（ｉ，ｊ）／（Ｎ−１）を計算する。
【００６４】
一方、時点ｎ−１におけるその指数重み付け移動平均ｄ_ａｖｇ_ｓ（ｎ−１）を「ｄ_ａｖｇ_ｓ（ｎ−１）＝（１−α）ｄ_ａｖｇ_ｓ（ｎ−２）＋αｄ_ａｖｇ（ｎ−１）」により計算する。ここでαは予め定める平滑化パラメータであり、０＜α＜１である。
【００６５】
もし、「ｄ_ａｖｇ（ｎ）＜ｄ_ａｖｇ_ｓ（ｎ−１）−ｔｈ_ｄ」となったら、その旨を、管理サーバ２１に通知する。ここで、ｔｈ_ｄはしきい値であり、予め定めるか、あるいは遅延の測定結果の履歴「ｄ_ａｖｇ_ｓ（ｎ−２），ｄ_ａｖｇ_ｓ（ｎ−３），ｄ_ａｖｇ（ｎ−４），…」から下位ｙパーセント値を求めておき、その値とｄ_ａｖｇ_ｓ（ｎ−１）の差をｔｈ_ｄに設定する。
【００６６】
遅延の変化の旨をノードｉから受信した管理サーバ２１は、自サーバで管理しているノードｋ（ｋ＝１〜Ｎ）の得点Ｃ（ｎ，ｋ）に関して、上位Ｘノード内にノードｉがエントリされているかどうか調べ、もしエントリされていなければ、ノードiの得点Ｃ（ｎ、ｉ）をＣ（ｎ、ｉ）←Ｃ（ｎ、ｉ）＋Ｃ_ａｄｄにより増加させる。ここで、Ｃ_ａｄｄは予め定める得点増加量である。
【００６７】
こうすることにより、現在は下位にランクされているノードの品質（遅延時間）が変化して向上した場合には、そのノードの得点をアップすることにより、当該ノードを適切に上位にランクインさせることが可能となる。
【００６８】
以下、上述の第１の技術により、ノード間の通信品質を測定し、それを用いて迂回するか否かを決定する際に、各ノードの負荷を考慮する第５〜第８の技術について説明する。
【００６９】
第５〜第８の技術は、いずれも、選択したノードｋ＊の負荷が予め定めた閾値を超えている場合に、ノードｋ＊の代わりとなる他の中継候補ノードを選択するものである。
【００７０】
第５の技術では、上述の第１の技術において、直接転送経路よりも通信品質が良い中継通信経路を構成するものと特定したノードｋ＊の負荷が予め定めた閾値を超えている場合に、ノードｋ＊の代わりとなる他の中継候補ノードを探す際、Ｍ個の中継候補ノードｋのうち、負荷が閾値を超えるノードを除外し、残りの候補の中から、最も高品質な迂回経路を提供可能なノードを中継ノードｋ＊として選択する。
【００７１】
また、第６の技術では、上述の第１の技術において、直接転送経路よりも通信品質が良い中継通信経路を構成するものと特定したノードｋ＊の負荷が予め定めた閾値を超えている場合に、ノードｋ＊の代わりとなる他の中継候補ノードを探す際、Ｍ個の中継候補ノードｋから当該中継候補ノードｋ＊を除いた残りのノードのうち、負荷が閾値を超えておらず、且つ、当該中継候補ノードｋ＊との通信遅延時間が最も少ない（通信距離が最も近い）ノードを中継候補ノードｋ＊の代わりとして選択する。
【００７２】
また、第７の技術では、上述の第１の技術において、直接転送経路よりも通信品質が良い中継通信経路を構成するものと特定したノードｋ＊の負荷が予め定めた閾値を超えている場合に、ノードｋ＊の代わりとなる他の中継候補ノードを探す際、Ｍ個の中継候補ノードを含む予め選択されたＭ’個（Ｍ’≧Ｍ）のノードからノードｋ＊を除いた残りのノードのうち、負荷が閾値を超えておらず、且つ、ノードｋ＊との通信遅延時間が最も少ない（通信距離が最も近い）ノードを中継候補ノードｋ＊の代わりとして選択する。
【００７３】
また、第８の技術では、上述の第１の技術において、直接転送経路よりも通信品質が良い中継通信経路を構成するものと特定したノードｋ＊の負荷が予め定めた閾値を超えている場合に、ノードｋ＊の代わりとなる他の中継候補ノードを探す際、Ｍ個の中継候補ノードｋから負荷が閾値を超えていない中継候補ノードを抽出すると共に、Ｍ個の中継候補ノードｋから負荷が閾値を超えている中継候補ノードｋ’ （１≦ｋ’≦Ｍ）を特定し、そして、Ｍ個の中継候補ノードを含む予め選択されたＭ’個（Ｍ’≧Ｍ）のノードから、負荷が閾値を超えておらず、且つ、各中継候補ノードｋ’との通信遅延時間が最も少ない（通信距離が最も近い）各ノードを抽出し、ここで抽出した各ノードと、上述のＭ個の中継候補ノードｋから抽出した負荷が閾値を超えていない中継候補ノードのうちで、最も通信品質の良いノードを中継候補ノードｋ＊の代わりとして選択する。
【００７４】
次に、上述の第５〜第８の技術とは異なり、上述の第１の技術において、直接転送経路よりも通信品質が良く、且つ、負荷が予め定めた閾値を超えていない最も通信品質が良い中継候補ノードｋ＊を選択する技術としての第９，第１０の技術を説明する。
【００７５】
第９の技術では、直接経路（第１の通信品質）より良い通信品質（中継経路）の中継候補ノードｋのうち負荷が閾値を超えないノードを選択し、さらに、選択したノードのうち最も通信品質の良いノードを中継候補ノードｋ＊として選択する。
【００７６】
第１０の技術では、まず、Ｍ個の中継候補ノードのそれぞれの負荷情報を用いて、負荷が閾値を超えない中継候補ノードを抽出し、次に、このようにして抽出した中継候補ノードを対象に、当該中継候補ノードの着信先ノードｊ間の通信品質測定結果を用いて、自ノードｉから当該中継候補ノードを経由して着信先ノードｊに到達するまでの通信品質を算出し、算出した通信品質が最も高く且つ測定した通信品質より良いノードを中継候補ノードｋ＊として選択する。
【００７７】
以下、図１から図３に示す構成からなるノード１〜５、管理サーバ２１による本発明に係る動作を説明する。
【００７８】
図３における各ノード１〜５は、以下のようにして、他ノードとの通信経路を一定周期毎に更新する。ここでは、図３におけるノード１に着目して説明をすすめる。しかし、他のノード２〜５も各々が独立に同様の振る舞いをする。
【００７９】
図３におけるノード（図中「オーバーレイノード」と記載）１は、上述の各技術により、中継候補ノードを選択し、ノード間の通信品質を測定し、それを用いて迂回するか否かを決定するための機能として、図１に示すように、通信品質測定部１ａ、通信品質取得部１ｂ、中継ノード決定部１ｃ、中継候補受信部１ｄを具備し、それに対応するため、図２における管理サーバ２１は、中継ノード状態管理部２１ａと中継ノード候補選択部２１ｂを具備している。
【００８０】
図３において、通信品質測定部１ａは、測定周期τ毎に自身（ノード１）と他のノードｊ（ｊ＝２〜５）との間の遅延時間ｄ（１，ｊ）を測定する。同様に、ノードｉ（ｉ＝２〜５）も他ノードｊ（ｊ＝ｉを除くｊ＝１〜５のいずれか）との遅延時間ｄ（ｉ，ｊ）を測定している。そして、この遅延時間測定を実施したら、その旨を中継候補受信部１ｄに通知する。
【００８１】
中継候補受信部１ｄは、図２の管理サーバ２１内の中継ノード候補選択部２１ｂに対し、Ｍ個の中継候補ノードの送信を要求し、Ｍ個の候補を受信する。その際、各中継候補ノードｋの現時点ｎでの負荷Ｌ（ｋ）も合わせて取得する。尚、負荷として、ここでは、現時点で中継ノードｋ＊として既に選択された回数を用いる。
【００８２】
中継ノード決定部１ｃは、通信品質取得部１ｂに対して、当該中継候補ノードｋから、ノードｋとノードｊの遅延時間測定結果ｄ（ｋ，ｊ）を取得するように指示する。
【００８３】
指示を受けた通信品質取得部１ｂは、当該中継候補ノードｋの通信品質測定部１ａからノードｋとノードｊの遅延時間測定結果ｄ（ｋ，ｊ）を取得し、中継ノード決定部１ｃにそれを通知する。以上の手順を、全ての中継候補ノードに対して実施する。
【００８４】
中継ノード決定部１ｃは、自ノード１から中継候補ノードｋの遅延時間ｄ（１，ｋ）を通信品質測定部１ａから取得し、それと、通信品質取得部１ｂから通知された中継候補ノードｋと着信先ノードｊの間の遅延時問ｄ（ｋ，ｊ）を用いて、「ｄ（１，ｊ）＞ｄ（１，ｋ）＋ｄ（ｋ，ｊ）」を満たすｋがＭ個の候補の中に存在するか否かを調べ、存在しない場合は、自ノード１からノードｊの直通路を通信経路として決定し、また、存在する場合は、それらの中継候補ノードｋのうち、負荷Ｌ（ｋ）が予め定められた閾値以下であるノードを抽出し、負荷が閾値以下であるノードｋの中で、「ｄ（１，ｋ）＋ｄ（ｋ，ｊ）」を最小にするｋを中継ノードｋ＊として決定する。
【００８５】
このようにして決定した後、当該ノードｋ＊に対して、通信経路を、「自ノード１→中継ノードｋ＊→着信先ノードｊ」と設定するように要求する。以上の手順を全ての着信先ノードｊ（ｊ＝２〜５）に対して実施する。
【００８６】
中継ノードｋ＊は、「ノード１→中継ノードｋ＊→着信先ノードｊ」の経路を設定し、その後、自身が中継ノードとして選択された旨を管理サーバ２１の中継ノード状態管理部２１ａに通知する。
【００８７】
図２における管理サーバ２１の中継ノード状態管理部２１ａは、中継ノードｋ＊からの通知を受けると、ノードｋ＊が中継ノードとなった回数Ｌ（ｋ＊）を、「Ｌ（ｋ＊）←Ｌ（ｋ＊）＋１」とカウントアップする。その結果を中継ノード候補選択部２１ｂに通知する。
【００８８】
以上を、予め定められた測定周期Ｔの間繰り返し実施し、各ノードが測定周期Ｔの間に中継ノードとなった回数を数える。
【００８９】
測定の終了時点に、全てのノードｋの得点Ｃ（ｋ）を「Ｃ（ｋ）←（１−α）Ｃ（ｋ）＋αＬ（ｋ）により更新する。尚、ここで、αは予め定められる平滑化パラメータで「０＜α＜１」であり、Ｃ（ｋ）の初期値はＣ（ｋ）＝１（全てのｋ）とする。
【００９０】
このようにしてノードの得点を更新した後、中継ノード状態管理部２１ａは、その結果を中継ノード候補選択部２１ｂに通知する。
【００９１】
中継候補ノード選択部２１ｂは、中継ノード状態管理部２１ａから、現時点でのノードｋの負荷情報である選択回数Ｌ（ｋ）と、得点Ｃ（ｋ）を受信し、それを保持しておく。
【００９２】
一方、中継候補ノード選択部２１ｂは、ノード１内の中継候補受信部１ｄから中継候補ノード通知要求を受信したら、Ｍ個の中継候補ノードを以下の手順で決定する。
【００９３】
すなわち、中継候補ノード選択部２１ｂは、ノードの得点Ｃ（ｋ）に応じて重み付けされた確率ｐ（ｋ）で中継候補ノードを選択し、それをＭ個のノードが選択されるまで繰り返す。
【００９４】
確率ｐ（ｋ）の例としては、ｐ（ｋ）＝Ｃ（ｋ）／ΣＣ（ｊ）、あるいは、ｐ（ｋ）＝ｅｘｐ｛Ｃ（ｋ）−１｝／Σｅｘｐ｛Ｃ（ｊ）−１｝などが考えられる。
【００９５】
以上の手順で選択されたＭ個の中継候補ノードを、当該中継候補ノードｋの現時点での負荷（選択回数Ｌ（ｋ））と共にノード１へ通知する。
【００９６】
尚、上述のノード１における中継ノード決定部１ｃでの処理手順を「実施例１」とし、この「実施例１」とは異なる「実施例２」として、中継ノード決定部１ｃでの処理手順を以下のようにして行ってもよい。
【００９７】
Ｍ個の中継候補ノードｋのうち、最も高品質な迂回経路を提供するノードｋ’をまず特定し、そのノードｋ’の負荷Ｌ（ｋ’）が閾値を超えているか否かを判定し、超えている場合には、当該ノードｋ’を除外し、その代わりに、Ｍ’個の中継候補ノード（Ｍ’＞＝Ｍであり、Ｍ個の中継候補を含む）の中から、ノードｋ’に最も通信距離が近く（通信遅延時間が短い）、かつ負荷が閾値以下のノードｋ’’を選択し、さらに、そのノードｋ’’を用いて迂回経路を設定したときの品質が直通の品質よりもよければ当該ノードｋ’’を中継ノードとして決定する。
【００９８】
ここで、管理サーバ２１は、Ｍ個の中継候補ノードｋに加えて、「Ｍ’−Ｍ」個の中継候補ノードも選択する。
【００９９】
また、管理サーバ２１は、Ｍ’個の中継候補ノードである各ノードｋ，ｋ’間の遅延時間ｄ（ｋ，ｋ’）を各ノードの通信品質測定部１ａから受信しておき、その結果を、Ｍ’個の中継候補ノードを通知する際に、合わせて、ノード１内の中継候補受信部１ｄに通知する。
【０１００】
さらに、ノード１における中継ノード決定部１ｃでの処理手順は、以下のようにしてもよい。尚、これを「実施例３」として説明する。
【０１０１】
まず、Ｍ個の中継候補ノードｋのうち、負荷が閾値を超えているノードを除外し、その代わりに、Ｍ’個のノード（Ｍ’＞＝Ｍであり、Ｍ個の中継候補を含む）の中から、除外されたノードｋに最も通信距離が近く（通信遅延時間が短い）、かつ負荷が閾値以下のノードｋ’’を中継候補として追加し、これを全てのＭ’個の候補に対して事前に実施しておき、そのＭ’個のノード群の中から最も高品質な迂回路を提供するノードを中継ノードとして選択する。
【０１０２】
このような本例（実施例１〜３）の処理によれば、特定ノードへの負荷集中を回避しつつ、通信品質の改善を図ることが可能となる。その評価結果を、図４〜図６を用いて説明する。
【０１０３】
図４は、本発明による第１の効果例を示す説明図であり、図５は、本発明による第２の効果例を示す説明図、図６は、本発明による負荷分散結果例を示す説明図である。
【０１０４】
尚、本評価においては、インターネット上でのオーバーレイノード数百台程度のノード間で、測定されたノード間の利用可能帯域を用いた。
【０１０５】
ここでは、時点ｎにおけるノードｉとノードｊの間の帯域をｂ（ｎ，ｉ，ｊ）とおき、各ノードｉは他のノードｊへの通信経路を本例の手順に従って決定していく。
【０１０６】
また、中継候補ノード数Ｍ＝４０，Ｍ’＝8０、負荷への閾値を３7３回（負荷分散を行わなかった場合に選択回数が大きかったノード上位１０%に位置するノードの選択回数）とした。
【０１０７】
また、迂回経路を決定する際には、ｂ（ｎ，ｉ，ｊ）＜ｍｉｎ｛ｂ（ｎ，ｉ，ｋ），ｂ（ｎ，ｋ，ｊ）｝を満たすかどうか、また、この右辺を最大にするかどうかを判定条件とした。
【０１０８】
このときの全ノードペアの帯域の累積分布を図４と図５に示す。
【０１０９】
本図４，５において、「迂回制御あり（負荷低減あり）」の結果は、本例の負荷分散処理を適用した場合であり、「迂回制御あり（負荷低減なし）」の結果は、本例の負荷分散処理は行わずに中継ノードを選択できた場合、つまり特定のノードへの負荷集中を許容した場合であり、「迂回制御なし」は迂回制御を行わずに直通路を選択した場合の結果である。
【０１１０】
本図４，５から、迂回制御により利用可能帯域を大きくできていることがわかる。
【０１１１】
また、負荷分散制御を行っても、負荷分散を行わない理想的な場合に近い結果が得られており、迂回制御なしと比べて利用可能帯域を大きくできていることがわかる。
【０１１２】
また、図６においては、各ノードへの負荷（中継ノードとして選択された回数）についてプロットした結果を示している。これより、本例の処理により、特定ノードへの負荷集中を回避できていることが確認できる。
【０１１３】
次に、図８を用いて、上述の図１におけるオーバーレイノードの本発明に係る処理動作例を説明する。
【０１１４】
図８は、本発明のオーバーレイノードネットワーク通信経路決定方法に係る処理動作例を示すフローチャートである。
【０１１５】
ノード１（オーバーレイノード）は、プログラムされたコンピュータ処理によって、オーバーレイネットワークにおける、自ノードから着信先ノードｊへの通信経路を決定する際、まず、自ノードと着信先ノードｊの間の通信品質を測定して記憶装置に記憶する（ステップＳ１０１）。
【０１１６】
また、予め、管理サーバ２１においてＮ個のノードの中から選択され通知されたＭ個の中継候補ノードのそれぞれの負荷情報および当該中継候補ノードと着信先ノードｊ間の通信品質測定結果を取得して記憶装置に記憶する（ステップＳ１０２）。
【０１１７】
次に、記憶装置に記憶した各中継候補ノードの着信先ノードｊ間の通信品質測定結果を用いて、自ノードｉから当該中継候補ノードを経由して着信先ノードｊに到達するまでの通信品質を算出し（ステップＳ１０３）、算出した通信品質と記測定した通信品質とを比較して、算出した通信品質が測定した通信品質より良い中継候補ノードｋ（１≦ｋ≦Ｍ）を抽出する（ステップＳ１０４，Ｓ１０４ａ）。
【０１１８】
そして、抽出した中継候補ノードｋから、負荷が予め定められた閾値を超えない最も通信品質の良い中継候補ノードｋ＊を選択し（ステップＳ１０５，Ｓ１０５ａ）、選択した中継候補ノードｋ＊を中継した着信先ノードｊへの通信経路を、自ノードｉから着信先ノードｊへの通信経路として決定する（ステップＳ１０６）。
【０１１９】
また、抽出した全ての中継候補ノードｋの負荷が予め定められた閾値を超える場合（ステップＳ１０４ａ）、もしくは、算出した通信品質と測定した通信品質との比較において、算出した通信品質が測定した通信品質より良い中継候補ノードｋが存在しない場合（ステップＳ１０５ａ）、当該中継ノードｋは用いずに着信先ノードｊへ直接転送する経路を自ノードｉから着信先ノードｊへの通信経路として決定する（ステップＳ１０７）。
【０１２０】
尚、ステップＳ１０５における処理として、例えば、ステップＳ１０４の処理で抽出した中継候補ノードｋから最も通信品質の良い中継候補ノードｋ＊を選択し、選択した中継候補ノードｋ＊の負荷が閾値を超えているか否かを判定し、超えている場合、中継候補ノードｋから中継候補ノードｋ＊を除いた残りのノードのうちで、負荷が閾値を超えていない最も通信品質の良いノードを中継候補ノードｋ＊の代わりとして選択する手順としても良い。
【０１２１】
あるいは、ステップＳ１０５における処理として、例えば、ステップＳ１０４の処理で抽出した中継候補ノードｋから最も通信品質の良い中継候補ノードｋ＊を選択し、選択した中継候補ノードｋ＊の負荷が閾値を超えているか否かを判定し、超えている場合、中継候補ノードｋから中継候補ノードｋ＊を除いた残りのノードのうち、負荷が閾値を超えておらず、且つ、中継候補ノードｋ＊との通信遅延時間が最も少ない（通信距離が最も近い）ノードを中継候補ノードｋ＊の代わりとして選択する手順としても良い。
【０１２２】
または、ステップＳ１０５における処理として、例えば、ステップＳ１０４の処理で抽出した中継候補ノードｋから最も通信品質の良い中継候補ノードｋ＊を選択し、選択した中継候補ノードｋ＊の負荷が閾値を超えているか否かを判定し、超えている場合、Ｍ個の中継候補ノードを含む予め選択されたＭ’個（Ｍ’≧Ｍ）のノードから中継候補ノードｋ＊を除いた残りのノードのうち、負荷が閾値を超えておらず、且つ、中継候補ノードｋ＊との通信遅延時間が最も少ない（通信距離が最も近い）ノードを中継候補ノードｋ＊の代わりとして選択する手順としても良い。
【０１２３】
または、ステップＳ１０５における処理として、例えば、ステップＳ１０４の処理で抽出した中継候補ノードｋから最も通信品質の良い中継候補ノードｋ＊を選択し、選択した中継候補ノードｋ＊の負荷が閾値を超えているか否かを判定し、超えている場合、Ｍ個の中継候補ノードｋから負荷が閾値を超えていない中継候補ノードを抽出すると共に、Ｍ個の中継候補ノードｋから負荷が閾値を超えている中継候補ノードｋ’ （１≦ｋ’≦Ｍ）を特定し、Ｍ個の中継候補ノードを含む予め選択されたＭ’個（Ｍ’≧Ｍ）のノードから、負荷が閾値を超えておらず、且つ、各中継候補ノードｋ’との通信遅延時間が最も少ない（通信距離が最も近い）各ノードを抽出し、この抽出した各ノードと、Ｍ個の中継候補ノードｋから抽出した負荷が閾値を超えていない中継候補ノードとのうちで、最も通信品質の良いノードを中継候補ノードｋ＊の代わりとして選択する手順としても良い。
【０１２４】
または、ステップＳ１０５における処理として、例えば、ステップＳ１０４の処理で抽出した中継候補ノードｋからから負荷が閾値を超えないノードを選択し、選択したノードのうち最も通信品質の良いノードを中継候補ノードｋ＊として選択する手順としても良い。
【０１２５】
さらには、ステップＳ１０３〜ステップＳ１０５における処理の代わりに、まず、ステップＳ１０２の処理で取得したＭ個の中継候補ノードの負荷情報を用いて、負荷が閾値を超えない中継候補ノードを抽出し、次に、このようにして抽出した中継候補ノードを対象に、当該中継候補ノードの着信先ノードｊ間の通信品質測定結果を用いて、自ノードｉから当該中継候補ノードを経由して着信先ノードｊに到達するまでの通信品質を算出し、そして、このように算出した通信品質が最も高く且つ測定した通信品質より良いノードを中継候補ノードｋ＊として選択する手順としても良い。
【０１２６】
以上、図１〜図６、および、図８を用いて説明したように、本例では、オーバーレイネットワークにおける通信経路を形成する中継ノードを選択する際、各中継候補ノードの通信品質と共に、各中継候補ノードの負荷を考慮する。すなわち、ＩＰネットワークに接続するＮ個のオーバーレイノードによって構成される論理網であるオーバーレイネットワークにおいて、発信元ノードから着信先ノードへの通信経路を決定する際、まず、オーバーレイネットワークに属する各ノードｉ（ｉ＝１〜Ｎ）は、自ノードを発信元ノードとし他ノードｊを着信先ノードｊとして、発信元ノードｉと着信先ノードｊの間の通信品質を測定すると共に、Ｎ個のノードの中から予め選択されたＭ個の中継候補ノードｋ（１≦ｋ≦Ｍ）のそれぞれが測定した着信先ノードｊ間の通信品質測定結果を当該中継候補ノードｋから取得して、この中継候補ノードｋを経由して自ノードｉから着信先ノードｊに到達するときの通信品質を算出し、この算出した通信品質と、自ノードｉで測定した着信先ノードｊ間の通信品質とを比較する。この比較で、測定した通信品質の方が算出した通信品質より良い場合には中継候補ノードｋは用いずに着信先ノードｊへ直接転送する経路を自ノードｉから着信先ノードｊへの通信経路とするが、測定した通信品質の方が算出した通信品質より悪い場合には、各中継候補ノードｋの中でも最も高品質で且つ負荷が予め定めた閾値を超えない中継候補ノードｋ＊を選択し、この中継候補ノードｋ＊を経由する経路を、自ノードｉから着信先ノードｊへの通信経路として決定する。
【０１２７】
このように、本例では、中継候補ノードの負荷に基づき中継ノードとして使用するかどうかを判定することにより、特定ノードへの負荷集中を回避することができる。これにより、オーバーレイネットワークにおける通信品質の改善を図ることが可能となる。例えば、従来の技術では、高品質な経路を提供可能な中継ノードが一部に偏っていることを利用しているため、ある特定のノードに中継のための負荷が集中してしまっていたが、本例によれば、特定のノードに負荷が集中しないようにしつつ、高品質な迂回経路を提供可能な中継ノードが選択可能となる。
【０１２８】
尚、本発明は、図１〜図６、および、図８を用いて説明した例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。例えば、本例では、管理サーバ２１において、Ｍ個の中継候補ノードを選択しているが、ノード１〜５において、Ｍ個の中継候補ノードを選択する構成としても良い。この場合、管理サーバ２１においては、Ｍ個の中継候補ノードを選択するための情報（当該ノードが中継ノードとして選択された頻度等）を収集する処理までを行い、収集した情報を、ノード１〜５に送信し、ノード１〜５において、受信した情報を用いてＭ個の中継候補ノードを選択する。
【０１２９】
また、本例では、通信品質を評価するＱｏＳメトリックとして「遅延」を用いているが、パケット損失率や帯域等を通信品質を評価するＱｏＳメトリックとして用いても良い。
【０１３０】
また、オーバーレイノードや管理サーバのコンピュータ構成として、キーボードや光ディスクの駆動装置の無いコンピュータ構成としても良い。また、本例では、光ディスクを記録媒体として用いているが、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）等を記録媒体として用いることでも良い。また、プログラムのインストールに関しても、通信装置を介してネットワーク経由でプログラムをダウンロードしてインストールすることでも良い。
【図面の簡単な説明】
【０１３１】
【図１】本発明に係る通信経路制御システムを形成するオーバーレイノードの構成例を示すブロック図である。
【図２】図１におけるオーバーレイノードに接続された管理サーバの構成例を示すブロック図である。
【図３】図１におけるオーバーレイノードと図２における管理サーバを有するオーバーレイネットワークの構成例を示すブロック図である。
【図４】本発明による第１の効果例を示す説明図である。
【図５】本発明による第２の効果例を示す説明図である。
【図６】本発明による負荷分散結果例を示す説明図である。
【図７】オーバーレイネットワークによるＱｏＳ管理の基本的な概念を例示する説明図である。
【図８】本発明のオーバーレイノードネットワーク通信経路決定方法に係る処理動作例を示すフローチャートである。
【符号の説明】
【０１３２】
１〜５：ノード（「オーバーレイノード」）、１ａ：通信品質測定部、１ｂ：通信品質取得部、１ｃ：中継ノード決定部、１ｄ：中継候補受信部、２１：管理サーバ、２１ａ：中継ノード状態管理部、２１ｂ：中継ノード候補選択部、１００ａ〜１００ｃ：オーバーレイノード、１０１ａ〜１０１ｅ：ＩＰルータ、１０２：ＩＰネットワーク。
【図１】
0004852568.tif 000002
【図２】
0004852568.tif 000003
【図３】
0004852568.tif 000004
【図４】
0004852568.tif 000005
【図５】
0004852568.tif 000006
【図６】
0004852568.tif 000007
【図７】
0004852568.tif 000008
【図８】
0004852568.tif 000009