(57)【要約】【課題】オーバーレイネットワークのオーバーレイノード間の通信品質を効率的に求める。【解決手段】トラヒック管理サーバは、ＩＰネットワーク内で測定されたフロー情報を収集し、これを用いて、当該ＩＰネットワークに形成した各エリア間のスループットを算出し（Ｓ１０１）、オーバーレイネットワークにおけるオーバーレイノード間の通信品質を要する際、各オーバーレイノードが属するエリアを特定し（Ｓ１０２）、特定した両エリア間のスループットが算出済みであるか否かを判別し（ステップＳ１０３）、当該エリア間のスループットを当該オーバーレイノード間の通信品質として取得し、算出済みでなければ、各オーバーレイノード間のスループットを測定する（Ｓ１０４）。【選択図】図１０
2010087963.tif 000002
【特許請求の範囲】
【請求項１】
ＩＰネットワークに接続するいくつかのオーバーレイノードによって構築される論理網であるオーバーレイネットワークにおけるトラヒック制御を、
上記ＩＰネットワーク内で測定されたトラヒック情報を用いて行うオーバーレイネットワークのトラヒック制御システムであって、
プログラムされたコンピュータ処理を実行する手段として、
上記ＩＰネットワーク内で測定されたフロー単位のトラヒック情報（フロー情報）を収集し、収集した該フロー情報を用いて、当該ＩＰネットワークに対して予め定められた条件で設定された各エリア間のスループットを算出して記憶装置に記憶する第１の処理手段と、
上記オーバーレイネットワークにおけるオーバーレイノードＸとオーバーレイノードＹ間の通信品質を要する際に、オーバーレイノードＸが属するエリアＡ＿ＸとオーバーレイノードＹが属するエリアＡ＿Ｙを上記予め定められた条件に基づき特定する第２の処理手段と、
該第２の処理手段が特定したエリアＡ＿ＸとエリアＡ＿Ｙの両エリアが共に上記第１の処理手段により記憶装置に記憶されているか（Ｙｅｓ）否か（Ｎｏ）を判別する第３の処理手段と、
該第３の処理手段の判別結果がＹｅｓであれば、上記エリアＡ＿Ｘと上記エリアＡ＿Ｙ間のスループットを読み出し、読み出したスループットを上記オーバーレイノードＸと上記オーバーレイノードＹ間の通信品質として取得し、上記第３の処理手段の判別結果がＮｏであれば、上記オーバーレイノードＸと上記オーバーレイノードＹ間のスループットを測定し、該測定したスループットを当該オーバーレイノード間の通信品質として取得する第４の処理手段と
を有することを特徴とするオーバーレイネットワークのトラヒック制御システム。
【請求項２】
請求項１に記載のオーバーレイネットワークのトラヒック制御システムであって、
プログラムされたコンピュータ処理を実行する手段として、
上記第４の処理手段が取得した各オーバーレイノードＸ，Ｚ，Ｙ１，Ｙ２，・・・，Ｙｋ間の通信品質を、各オーバーレイノード間の直通路の通信品質として記憶装置に記憶する第５の処理手段と、
上記オーバーレイノードＸと上記オーバーレイノードＺ間で通信をする際、上記オーバーレイノードＹ１，Ｙ２，…Ｙｋを中継ノードとした迂回路を経由した場合のオーバーレイノードＸからオーバーレイノードＺの通信品質を算出し、該算出した迂回路の通信品質と上記直通路の通信品質とを比較し、通信品質の良い方を上記オーバーレイノードＸからオーバーレイノードＺへの経路として特定する第６の処理手段と
を有することを特徴とするオーバーレイネットワークのトラヒック制御システム。
【請求項３】
請求項２に記載のオーバーレイネットワークのトラヒック制御システムであって、
プログラムされたコンピュータ処理を実行する手段として、
上記オーバーレイノードＸがダウンロードするファイルを上記オーバーレイノードＹｉ，Ｙ２，・・・，Ｙｋが保持している場合、
上記第５の処理手段が記憶装置に記憶した上記オーバーレイノードＸと上記オーバーレイノードＹｉ，Ｙ２，・・・，Ｙｋ間の直通路の通信品質が最良のオーバーレイノードＹｉ（ｉ＝１〜ｋ）を特定し、特定したオーバーレイノードをダウンロード元として上記オーバーレイノードＸに通知する第７の処理手段
を有することを特徴とするオーバーレイネットワークのトラヒック制御システム。
【請求項４】
請求項１から請求項３のいずれかに記載のオーバーレイネットワークのトラヒック制御システムであって、
上記第１の処理手段は、
複数の上記ＩＰネットワークのそれぞれで測定された上記フロー情報を収集し、収集した該フロー情報を用いて、複数のＩＰネットワークのそれぞれに設定された各エリア間のスループットを算出して記憶装置に記憶することを特徴とするオーバーレイネットワークのトラヒック制御システム。
【請求項５】
請求項１から請求項４のいずれかに記載のオーバーレイネットワークのトラヒック制御システムであって、
上記第１の処理手段は、
上記ＩＰネットワーク内の各ノードにより下記各手段の処理で算出され通知される各フローｉのフロー情報を収集し、
収集したフローｉのパケットにおける発信元ＩＰアドレスを含む条件で定められる当該フローｉの発信元エリアＡ＿ｉおよび着信先エリアＡ＿ｊを特定し、
エリアＡ＿ｉからエリアＡ＿ｊへ向かうフロー群のレートの平均Ｆ（Ａ＿ｉ，Ａ＿ｊ）を、Ｆ（Ａ＿ｉ，Ａ＿ｊ）＝ΣＲ＿ｉ／Ｎｆ（Ｒ＿ｉは該当するエリアＡ＿ｉからエリアＡ＿ｊへ向かうフローｉのレートＲ＿ｉ（ｉ＝１〜Ｎｆ）、Ｎｆは該当するエリア間のフロー数）により算出し、
算出した値を上記エリア間のスループットとして記憶装置に記憶する手段を有し、
上記ＩＰネットワーク内の各ノードは、
Ｎ個の到着パケットに対し１個のパケットを抽出し、該パケットのヘッダ情報から当該パケットの属するフローを特定する手段と、
該手段が特定したフローが、予め用意されたユーザフロー管理テーブルにエントリされているかを判別する手段と、
上記特定したフローが上記ユーザフロー管理テーブルにエントリされておらず、当該パケットが新規フローからのパケットであった場合、上記ユーザフロー管理テーブルに当該フローｉをエントリして、該フローｉからのパケットが最初に到着した時刻Ｔ＿ｆｉｒｓｔ＿ｉと該フローｉからのパケットが最後に到着した時刻Ｔ＿ｌａｓｔ＿ｉとして現在の時刻を設定すると共に、当該パケットのヘッダ情報から読み出したシーケンス番号から当該パケットのサイズを減算した値を、当該パケットが最初に到着したシーケンス番号ＳＮ＿ｆｉｒｓｔ＿ｉとして設定し、上記読み出したシーケンス番号を、当該パケットが最後に到着したパケットのシーケンス番号ＳＮ＿ｌａｓｔ＿ｉとして設定する手段と、
上記特定したフローが上記ユーザフロー管理テーブルに既にエントリされている場合、上記フローｉからのパケットが最後に到着した時刻Ｔ＿ｌａｓｔ＿ｉを現在の時刻に更新し、ＳＮ＿ｌａｓｔ＿ｉを該パケットヘッダから読み出したシーケンス番号に更新する手段とを具備し、
上記各手段による処理を、予め定めた時間ｔ０の周期で実行し、時間ｔ０の経過時点において、「Ｔ＿ｌａｓｔ＿ｉ＝Ｔ＿ｆｉｒｓｔ＿ｉ」であれば、当該フローｉのエントリを上記ユーザフロー管理テーブルから除外し、「Ｔ＿ｌａｓｔ＿ｉ＞Ｔ＿ｆｉｒｓｔ＿ｉ」であれば、上記ユーザフロー管理テーブルにエントリされている当該フローｉのフローレートＲ＿ｉを、Ｒ＿ｉ＝（「ＳＮ＿ｌａｓｔ＿ｉ」−「ＳＮ＿ｆｉｒｓｔ＿ｉ」）／（「Ｔ＿ｌａｓｔ＿ｉ」−「Ｔ＿ｆｉｒｓｔ＿ｉ」）で算出することを特徴とするオーバーレイネットワークのトラヒック制御システム。
【請求項６】
請求項１から請求項４のいずれかに記載のオーバーレイネットワークのトラヒック制御システムであって、
上記第１の処理手段は、
上記ＩＰネットワーク内の各ノードにより下記各手段の処理で算出され通知される各フローｉのフロー情報を収集し、
収集したフローｉのパケットにおける発信元ＩＰアドレスを含む条件で定められる当該フローｉの発信元エリアおよび着信先エリアを特定し、
収集したフローｉのパケットにおける発信元ＩＰアドレスを含む条件で定められる当該フローｉの発信元エリアＡ＿ｉおよび着信先エリアＡ＿ｊを特定し、
エリアＡ＿ｉからエリアＡ＿ｊへ向かうフロー群のレートの平均Ｆ（Ａ＿ｉ，Ａ＿ｊ）を、Ｆ（Ａ＿ｉ，Ａ＿ｊ）＝ΣＲ＿ｉ／Ｎｆ（Ｒ＿ｉは該当するエリアＡ＿ｉからエリアＡ＿ｊへ向かうフローｉのレートＲ＿ｉ（ｉ＝１〜Ｎｆ）、Ｎｆは該当するエリア間のフロー数）により算出し、
算出した値を上記エリア間のスループットとして記憶装置に記憶する手段を有し、
上記ＩＰネットワーク内の各ノードは、
Ｎ個の到着パケットに対し１個のパケットを抽出し、該パケットのヘッダ情報から当該パケットの属するフローを特定する手段と、
該手段が特定したフローが、予め用意されたユーザフロー管理テーブルにエントリされているかを判別する手段と、
上記特定したフローが上記ユーザフロー管理テーブルにエントリされておらず、当該パケットが新規フローからのパケットであった場合、上記ユーザフロー管理テーブルに当該フローｉをエントリして、該フローｉからのパケットが最初に到着した時刻Ｔ＿ｆｉｒｓｔ＿ｉと該フローｉからのパケットが最後に到着した時刻Ｔ＿ｌａｓｔ＿ｉとして現在の時刻を設定すると共に、当該パケットのサイズを到着バイト数Ｂ＿ｉとして設定する手段と、
上記特定したフローが上記ユーザフロー管理テーブルに既にエントリされている場合、上記到着バイト数Ｂ＿ｉを上記フローｉからのパケットのサイズを加算して更新する手段とを具備し、
上記各手段による処理を、予め定めた時間ｔ０の周期で実行し、時間ｔ０の経過時点において、「Ｔ＿ｌａｓｔ＿ｉ＝Ｔ＿ｆｉｒｓｔ＿ｉ」であれば、当該フローｉのエントリを上記ユーザフロー管理テーブルから除外し、「Ｔ＿ｌａｓｔ＿ｉ＞Ｔ＿ｆｉｒｓｔ＿ｉ」であれば、上記ユーザフロー管理テーブルにエントリされている当該フローｉのフローレートＲ＿ｉを、Ｒ＿ｉ＝（「Ｂ＿ｉ」×Ｎ）／（「Ｔ＿ｌａｓｔ＿ｉ」−「Ｔ＿ｆｉｒｓｔ＿ｉ」）で算出することを特徴とするオーバーレイネットワークのトラヒック制御システム。
【請求項７】
請求項１から請求項６のいずれかに記載のオーバーレイネットワークのトラヒック制御システムであって、
プログラムされたコンピュータ処理を実行する手段として、
上記第１の処理手段が算出する各エリア間のスループットを時系列で読み取り、当該スループットが予め定められた閾値を下回った場合に、当該エリア間の品質劣化を判定する手段と、
該手段が同じ時刻に複数のエリア間での品質劣化を判定した場合、各エリア間の経路上に共通なエリアの有無を判別する手段と、
有れば当該エリアを、潜在的輻輳エリアとして特定する手段と
を有することを特徴とするオーバーレイネットワークのトラヒック制御システム。
【請求項８】
ＩＰネットワークに接続するいくつかのオーバーレイノードによって構築される論理網であるオーバーレイネットワークにおけるトラヒック制御を、上記ＩＰネットワーク内で測定されたトラヒック情報を用いて行うオーバーレイネットワークのトラヒック制御方法であって、
プログラムされたコンピュータの処理手順として、請求項１から請求項７のいずれかに記載のオーバーレイネットワークのトラヒック制御システムにおける各手段が実行する処理手順を含み、
該各手段の処理手順により、上記ＩＰネットワーク内で測定されたトラヒック情報を用いて各オーバーレイノード間の通信品質を取得することを特徴とするオーバーレイネットワークのトラヒック制御方法。
【請求項９】
コンピュータを、請求項１から請求項７のいずれかに記載のオーバーレイネットワークのトラヒック制御システムにおける各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＰネットワークにおけるエンド・ツー・エンドの通信品質を向上させる技術に係り、特に，インターネット等のＩＰネットワーク上に論理的に形成されたオーバーレイネットワークを用いて、エンド・ツー・エンドの通信品質を効率的に向上させるのに好適な技術に関するものである。
【背景技術】
【０００２】
ＩＰネットワークを代表するインターネットは、多様なアプリケーションの収容を可能とすべく発展・普及してきており、その一方で、ＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）に対する要求も高まってきている。
【０００３】
これに伴い、エンド・ツー・エンドでの輻輳を回避し、品質を向上するための技術（「エンド・ツー・エンドＱｏＳ管理技術」）をインターネット上で実現することが重要な課題となっている。しかしながら、このような技術を実現する上では、以下の（１）、（２）に示す問題点がある。
【０００４】
（１）インターネットは既に社会的インフラ化しており、既存のネットワーク構造を大きく変更するような、ネットワークレイヤでの新たな機能拡張は困難である。
【０００５】
（２）インターネットは管理主体の異なる複数のＡＳ（Ａｕｔｏnｏmｏｕｓ Ｓｙｓｔｅm）によって形成されており、全てのＡＳに対して一斉に新たな機能を拡張することは困難である。
【０００６】
こうした中、下位のネットワークレイヤを変更することなくエンド・ツー・エンドＱｏＳの向上を可能とする有力な技術として、例えば非特許文献１に記載の、オーバーレイネットワークによるＱｏＳ管理技術が注目されている。
【０００７】
オーバーレイネットワークとは、例えば非特許文献２においても記載のように、既存のリンクを用いて、その上位層に目的に応じて論理的（仮想的）なリンクを形成し、構成するネットワークである。
【０００８】
このようなオーバーレイネットワークによるＱｏＳ管理の基本的な概念を図１に例示する。図１は、オーバーレイネットワークの構成例を示すブロック図であり、オーバーレイネットワーク（図中「Ｏｖｅｒｌａｙ−ＮＷ」と記載）１は複数のオーバーレイノード１ａ，１ｂ，１ｃからなり、複数のＩＰルータ２ａ〜２ｅからなるＩＰネットワーク（図中「ＩＰ−ＮＷ」と記載）２上に論理的に形成されている。
【０００９】
このような構成のＩＰネットワーク２において、ｘからｙに向けて、破線矢印で表わされる経路にトラヒックが流れているとする。また、この経路上には輻輳しているＩＰルータ２ｅが存在しており、その結果として、ｘ，ｙ間のＱｏＳが低下しているとする。
【００１０】
このとき、オーバーレイノード１ａ，１ｂ，１ｃで形成されるオーバーレイネットワーク１を用いて、実践矢印で表される経路（ｘ→オーバーレイノード１ａ→オーバーレイノード１ｂ→オーバーレイノード１ｃ→ｙ）にトラヒックを迂回させることができれば、上記の輻輳を回避できる。
【００１１】
実際、非特許文献３，４，５，６等では、上述のような迂回経路が実網において多数存在していることを実測に基づいて示している。しかし、これらの結果は、全てのオーバーレイノード間で測定した品質情報を利用して理想的な通信経路計算を行った場合の評価となっている。
【００１２】
これら品質情報は、オーバーレイノード間で試験パケットを用いて能動的に測定することによって得られたものであり、ネットワークへの余分な負荷や、オーバーレイノード間での測定に伴う処理負荷・処理遅延等といった測定コスト・オーバヘッドが存在してしまうという問題点があった。
【００１３】
また、Ｐ２Ｐファイル共有アプリケーションでは、あるユーザが所望のファイルを保持するノード（群）からダウンロードするが、この場合にも、どのノードからダウンロードするかを選定する際に、ノード間の品質を考慮してダウンロード元を選定する技術が検討されている（例えば、非特許文献７等）。
【００１４】
また、品質（ノード間遅延）を考慮することによるダウンロード時間を短縮できることも、例えば、非特許文献８において報告されている。
【００１５】
しかしながら、このようなアプローチも前述のオーバーレイ経路制御の場合と同じく、測定コスト・オーバヘッドの問題点があると考えられる。
【００１６】
このようなオーバヘッドの問題を回避するため、例えば、非特許文献９では、ＩＳＰ（ＩＰネットワーク側）とＰ２Ｐ事業者（オーバーレイ側）で協調するアプローチが検討されている。
【００１７】
この技術では、ＩＳＰ側がＩＰネットワークのトポロジーやリンク負荷情報を開示し、特定のリンクに負荷が集中しないようなダウンロード元ノードをＰ２Ｐが選択できるようにする。
【００１８】
こうすることにより、オーバーレイ側が自身で測定をすることなく、ダウンロード時間を短縮できるノードを選択可能となり、ＩＳＰ側も負荷分散を図ることができる。
【００１９】
しかしながら、インターネット上に展開しているオーバーレイネットワークに対して、この技術を実現しようとすると、全てのＩＳＰがネットワーク情報を提供する必要があるという課題がある。
【００２０】
また、この技術では、リンク負荷分散を主な目標としているが、オーバーレイ側からみたときに、品質がどの程度改善されるかは、直接的に扱っていなかった。
【００２１】
【非特許文献１】Ｌ.Ｚｈｉ  ａｎｄ  Ｐ.Ｍｏｈａｐａｔｒａ，  “ＱＲＯＮ：ＱｏＳ−ａｗａｒｅ  ｒｏｕｔｉｎｇ  ｉｎ  ｏｖｅｒｌａｙ  ｎｅｔ−ｗｏｒｋｓ，”  ＩＥＥＥ  Ｊ.Ｓｅｌｅｃｔ.Ａｒｅａｓ  Ｃｏｍｍｕｎ．，  ｖｏｌ.２２，  ｐｐ.２９−４０，  Ｊａｎｕａｒｙ  ２００４.
【非特許文献２】ＷＩＤＥプロジェクト，”オーバーレイネットワークによる統合分散環境，”ＷＩＤＥプロジェクト研究報告書，第１７部，２００２．
【非特許文献３】亀井，川原，“エンドホストオーバーレイネットワークによるトラヒックエンジニアリングとその有効性，”信学ソ大，ＢＳ−５−３，２００４．
【非特許文献４】Ｓ.Ｒｅｗａｓｋａｒ  ａｎｄ  Ｊ.Ｋａｕｒ，  ”  Ｔｅｓｔｉｎｇ  ｔｈｅ  Ｓｃａｌａｂｉｌｉｔｙ  ｏｆ  Ｏｖｅｒｌａｙ  Ｒｏｕｔｉｎｇ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅｓ，”  Ｐｒｏｃ.ＰＡＭ  ２００４.  Ａｐｒｉｌ  ２００４.
【非特許文献５】Ｓ.Ｂａｎｅｒｊｅｅ，  Ｔ.Ｇ.Ｇｒｉｆｉｎ  ａｎｄ  Ｍ.Ｐｉａｓ，  “Ｔｈｅ  Ｉｎｔｅｒｄｏｍａｉｎ  Ｃｏｎｎｅｃｔｉｖｉｔｙ  ｏｆ  ＰｌａｎｅｔＬａｂ  Ｎｏｄｅｓ，”  Ｐｒｏｃ.  ＰＡＭ  ２００４，  Ａｐｒｉｌ  ２００４.
【非特許文献６】平岡，長谷川，村田，“遅延および帯域情報を用いたオーバーレイルーティングの有効性評価，”信学技報ＣＱ２００７−１８，  ２００７年７月．
【非特許文献７】Ｈ.  Ｓｈｅｎ  ａｎｄ  Ｙ.  Ｚｈｕ，  “Ｐｌｏｖｅｒ：  Ａ  Ｐｒｏａｃｔｉｖｅ  Ｌｏｗ−ｏｖｅｒｈｅａｄ  Ｆｉｌｅ  Ｒｅｐｌｉｃａｔｉｏｎ  Ｓｃｈｅｍｅ  ｆｏｒ  Ｓｔｒｕｃｔｕｒｅｄ  Ｐ２Ｐ  Ｓｙｓｔｅｍｓ，”  ＩＥＥＥ  ＩＣＣ  ２００８.
【非特許文献８】Ｔ.  Ｋａｒａｇｉａｎｎｉｓ，  Ｐ.  Ｒｏｄｒｉｇｕｅｚ，  ａｎｄ  Ｋ.  Ｐａｐａｇｉａｎｎａｋｉ，  “Ｓｈｏｕｌｄ  ｉｎｔｅｒｎｅｔ  ｓｅｒｖｉｃｅ  ｐｒｏｖｉｄｅｒｓ  ｆｅａｒ  ｐｅｅｒ−ａｓｓｉｓｔｅｄ  ｃｏｎｔｅｎｔ  ｄｉｓｔｒｉｂｕｔｉｏｎ？”  ＩＭＣ  ２００５.
【非特許文献９】Ｈ.  Ｘｉｅ  ａｎｄ  Ｙ.  Ｒ.  Ｙａｎｇ，  “Ｐ４Ｐ：  Ｐｒｏｖｉｄｅｒ  Ｐｏｒｔａｌ  ｆｏｒ  Ａｐｐｌｉｃａｔｉｏｎｓ，”  ＳＩＧＣＯＭＭ  ２００８.
【発明の開示】
【発明が解決しようとする課題】
【００２２】
解決しようとする問題点は、従来の、ＩＳＰ（ＩＰネットワーク側）とＰ２Ｐ事業者（オーバーレイ側）で協調することで、トラヒック制御を行う技術では、オーバーレイ側が自身でＩＰネットワークのトポロジーやリンク負荷情報を測定することなく、ダウンロード時間を短縮できるノードを選択可能となり、ＩＳＰ側も負荷分散を図ることができるが、インターネット上に展開しているオーバーレイネットワークに対して、この技術を実現しようとすると、（１）全てのＩＳＰがネットワーク情報を提供する必要があるという点と、（２）また、この技術では、リンク負荷分散を主な目標としているが、オーバーレイ側からみたときに、品質がどの程度改善されるかは、直接的に扱っていない点である。
【００２３】
本発明の目的は、これら従来技術の課題を解決し、オーバーレイネットワーク側で必要となる品質（ここではスループット）を直接扱い、一部のＩＳＰだけが情報を提供する場合にも、ＩＰネットワークとオーバーレイネットワークが協調してトラヒックを制御することを可能とすることである。
【課題を解決するための手段】
【００２４】
上記目的を達成するため、本発明は、ＩＰネットワークに接続するいくつかのオーバーレイノードによって構築される論理網であるオーバーレイネットワークにおけるトラヒック制御を、ＩＰネットワーク内で測定されたトラヒック情報を用いて行うものであり、ＩＰネットワーク内で測定されたフロー単位のトラヒック情報（フロー情報）を収集し、収集したフロー情報を用いて、当該ＩＰネットワークに対して予め定められた条件で設定された各エリア間のスループットを算出して記憶装置に記憶しておき、オーバーレイネットワークにおけるオーバーレイノードＸとオーバーレイノードＹ間の通信品質を要する際には、オーバーレイノードＸが属するエリアＡ＿ＸとオーバーレイノードＹが属するエリアＡ＿Ｙを予め定められた条件に基づき特定し、特定したエリアＡ＿ＸとエリアＡ＿Ｙの両エリアが共に記憶装置に記憶されているか（Ｙｅｓ）否か（Ｎｏ）を判別し、Ｙｅｓであれば、エリアＡ＿ＸとエリアＡ＿Ｙ間のスループットを読み出し、読み出したスループットをオーバーレイノードＸとオーバーレイノードＹ間の通信品質として取得し、また、Ｎｏであれば、オーバーレイノードＸとオーバーレイノードＹ間のスループットを測定して当該オーバーレイノード間の通信品質として取得する。
【発明の効果】
【００２５】
本発明によれば、ＩＰネットワーク側とオーバーレイネットワーク側とで協調することで、インターネット等に展開しているオーバーレイネットワークにおける各オーバーレイノード間の通信品質を求める際にも、ＩＰネットワーク側が、全てのネットワーク情報を提供する必要がなく、オーバーレイネットワークのオーバーレイノード間の通信品質を効率的に求めることが可能である。
【発明を実施するための最良の形態】
【００２６】
以下、図を用いて本発明を実施するための最良の形態例を説明する。図２は、本発明に係るオーバーレイネットワークにおけるトラヒック制御システムを設けたネットワークの第１の構成例を示すブロック図であり、図３は、図２におけるトラヒック管理サーバで特定するエリア間の接続構成例を示すブロック図、図４は、図２におけるトラヒック管理サーバで算出したエリア間のスループットの時系列変化例を示す説明図、図５は、図２におけるトラヒック管理サーバが検出したボトルネックリンクの使用率の変化例を示す説明図、図６は、本発明に係るオーバーレイネットワークにおけるトラヒック制御システムを設けたネットワークの第２の構成例を示すブロック図、図７は、図６におけるＩＰルータの構成例を示すブロック図、図８は、図６におけるオーバーレイノードの構成例を示すブロック図、図９は、図６におけるトラヒック管理サーバの構成例を示すブロック図、図１０は、本発明に係るオーバーレイネットワークのトラヒック制御システムの第１の処理動作例を示すフローチャート、図１１は、本発明に係るオーバーレイネットワークのトラヒック制御システムの第２の処理動作例を示すフローチャート、図１２は、本発明に係るオーバーレイネットワークのトラヒック制御システムの第３の処理動作例を示すフローチャートである。
【００２７】
図６のネットワークは、インターネットを例としており、図６において、６１はオーバーレイネットワーク（図中「オーバーレイネットワーク」と記載）であり、複数のオーバーレイノード６１ａ〜６１ｅ（図中それぞれ「１」〜「５」で示されている）により構成され、６２はＩＰネットワークであり、複数のＩＰルータ６２ａ〜６２ｇにより構成され、６３は本発明に係るトラヒック制御処理を行うトラヒック管理サーバ６３である。
【００２８】
トラヒック管理サーバ６３は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）や主メモリ、表示装置、入力装置、外部記憶装置等を具備したコンピュータ構成からなり、光ディスク駆動装置等を介してＣＤ−ＲＯＭ等の記憶媒体に記録されたプログラムやデータを外部記憶装置内にインストールした後、この外部記憶装置から主メモリに読み込みＣＰＵで処理することにより、図９に示すトラヒック管理サーバ９１におけるスループット算出部９２とエリア間スループット管理部９３を含む、本発明に係る各処理部の機能を実行する。
【００２９】
図６において、オーバーレイネットワーク６１にあるオーバーレイノード６１ａ〜６１ｅは、論理的に接続しているとする。つまり、論理的に接続されているとは、その接続先オーバーレイノードのＩＰアドレスを知っており、通信可能な状態にある。また、ＩＰネットワーク６２は、いくつかのルータ６２ａ〜６２ｇで構成されている。また、トラヒック管理サーバ６３が存在する。
【００３０】
図６におけるオーバーレイネットワークでは、図１で説明したオーバーレイネットワークと同様の輻輳制御を行う。以下、このようなネットワーク構成における本発明に係る第１〜第７の技術について説明する。
【００３１】
先ず、第１の技術について説明する。第１の技術は、図６に示すように、ＩＰネットワーク６２に接続するいくつかのオーバーレイノード６１ａ〜６１ｅによって論理網であるオーバーレイネットワーク６１が構築されたネットワークにおいて、ＩＰネットワーク６２内で測定されたトラヒック情報を、オーバーレイネットワーク６１におけるトラヒック制御に用いる技術である。
【００３２】
すなわち、ＩＰネットワーク６２において、或るエリアＡ＿ｉから他のエリアＡ＿ｊへ向かうフロー群のスループットを計測し、これを各エリア間について実行し、その計測結果情報を、予め用意したトラヒック管理サーバ６３においてデータベースで保持しておく。
【００３３】
そして、オーバーレイネットワーク６１において、オーバーレイノードＸが、オーバーレイノードＹとの間の通信品質を必要とする際には、オーバーレイノードＸが属するエリアＡ＿Ｘと、オーバーレイノードＹが属するエリアＡ＿Ｙを調べ、両エリアともトラヒック管理サーバ６３上にエントリされていれば、該当するスループットを読み出すことで取得し、また、トラヒック管理サーバ６３上に存在しなければ（エントリされていなければ）、オーバーレイノードＸ，Ｙ間でスループットを測定することにより、オーバーレイノードＸ，Ｙ間の通信品質を取得する。
【００３４】
以下、この処理内容を図２を用いて説明する。図２におけるトラヒック管理サーバ２１は図６におけるトラヒック管理サーバ６３に、また、ＩＰネットワークＸ２２，Ｙ２３は図６におけるＩＰネットワーク６２にそれぞれ実質的に相当する。
【００３５】
第１の技術では、例えば、図２のＩＰネットワークＸ（ＩＳＰ＃Ｘ）２２でフローを測定しているとする。このフロー測定とは、ＮｅｔＦｌｏｗ、ｓＦｌｏｗといった測定技術を指す。
【００３６】
具体的には、ルータやスイッチといったネットワーク機器上で「フロー」（ＴＣＰ、ＵＤＰやＩＣＭＰのあて先、送信元のＩＰアドレスとポート番号の組み合わせで識別するセッション）単位でパケット数やバイト数を集計し、集計データをＮｅｔＦｌｏｗパケットでトラヒック管理サーバ２１に送信し、トラヒック管理サーバ２１において、各ルータから収集されたフロー情報を分析する。
【００３７】
すなわち、トラヒック管理サーバ２１においては、収集したフロー情報を、送信元ＩＰアドレスと宛先ＩＰアドレスを元に、発信元エリアおよび着信先エリアにマッピングすることにより、エリアＡ＿ｉからエリアＡ＿ｊへのフロー群を特定し、これらフロー群のスループットを算出する。
【００３８】
尚、エリア（１）２４ａ〜（５）２４ｅとしては、地理的な位置や、ＡＳ番号、ＩＰアドレスのｐｒｅｆｉｘ単位等で特定することが考えられる。
【００３９】
以上のようにして、図２のＩＰネットワークＸ２２においてフローを測定することにより、当該ＩＰネットワークＸ２２を経由するトラヒックについては、エリア（１）２４ａ〜（３）２４ｃ間の品質情報（スループット情報）を把握することができ、エリア（１）２４ａ〜（３）２４ｃの間の交流スループットが分かることになる。
【００４０】
同様にして、ＩＰネットワークＹ（ＩＳＰ＃Ｙ）２３側においても、フロー情報を測定し、トラヒック管理サーバ２１において分析することにより、エリア（３）２４ｃとエリア（４）２４ｄの間のスループットが把握可能となる。
【００４１】
このように、いくつかのＩＳＰからのフロー情報が集まるほど、インターネット上の多くのエリアをカバーできるようになる。
【００４２】
尚、本例のように「フロー情報」を用いるのではなく、ネットワーク内の「リンク情報」をベースにしている場合だと、エリア間の全てのリンク情報が集まらないと、そのエリア間の経路上のトラヒック状況を把握できないため、一部のＩＳＰだけが情報を公開してもインターネット上のエリア間の状況を把握するのは難しいと考えられる。  
【００４３】
また、エリア間でのスループット情報がフロー情報から入手できていないエリアについては、オーバーレイノード間でスループットを測定し、その結果をトラヒック管理サーバ２１へ通知することによりデータを追加していく。
【００４４】
図２の例では、エリア（３）２４ｃとエリア（５）２４ｅの間で、オーバーレイノード間でのスループット測定を行っている。このオーバーレイノード間でのスループットの測定は、試験パケットを用いた測定でもよいし、実際にファイル転送を行った際の測定結果でもよい。
【００４５】
このようにして、オーバーレイノード間でのスループットの測定を行うことにより、ＩＰネットワークＸ２１，Ｙ２２側からのフロー情報ではカバーできていないエリア間品質情報を補完できる。
【００４６】
次に、第２の技術について説明する。この第２の技術は、オーバーレイ経路制御を行う際に、上述の第１の技術でオーバーレイノード間の品質情報を入手することにより、オーバーレイノード間で、その都度、能動的に品質測定をしなくても済むようにするものである。
【００４７】
すなわち、第２の技術においては、第１の技術によりオーバーレイノードＸ，Ｚ，Ｙ１，Ｙ２，…，Ｙｋ間の品質情報を入手し、オーバーレイノードＸとオーバーレイノードＺの直通路の品質をｄ（Ｘ，Ｚ）とし、今、オーバーレイノードＸとオーバーレイノードＺの間で通信をしたいとしたときに、オーバーレイノードＹ１，Ｙ２，…，Ｙｋを中継ノードとして用いたときの、オーバーレイノードＸからオーバーレイノードＺへの迂回路の品質が、上述の直通品質ｄ（Ｘ，Ｚ）よりもよければ、それらの中継ノードを用いた迂回路を設定し、そうでなければ直通路をオーバーレイノードＸからオーバーレイノードＺへの経路とする。
【００４８】
次に、第３の技術について説明する。この第３の技術においては、あるオーバーレイノードＸがダウンロードしたいファイルを、オーバーレイノードＹｉ，Ｙ２，…，Ｙｋが保持しているとしたとき、第１の技術によりノードＸとノードＹｉの間の通信品質ｄ（Ｘ，Ｙｉ）を入手し、トラヒック管理サーバ２１において、この通信品質ｄ（Ｘ，Ｙｉ）を最良とするノードＹｉ＊を探索して特定し、特定したノードＹｉ＊からファイルをダウンロードする。
【００４９】
次に、第４の技術について説明する。この第４の技術では、上述の第１の技術でのＩＰネットワークからのスループット情報を、複数のＩＰネットワークＸ２２，Ｙ２３から収集してトラヒック管理サーバ２１上で管理する。
【００５０】
次に、第５の技術について説明する。この第５の技術は、一般に、フロー測定を行う際にはスケール性を担保するためにパケットサンプリングをしているため、サンプルパケットからフロースループットを推定する必要があることに対応したものである。
【００５１】
すなわち、第５の技術では、上述の第１の技術によりスループット情報を測定する際に、ＩＰネットワーク内のノード（群）において、Ｎ個の到着パケットに対し１個のパケットを抽出し、抽出したパケットのヘッダを読み込んで、そのパケットが、どのフローに属するかを特定し、特定したフローが、予め用意されたユーザフロー管理テーブルにおいてエントリされているか否かを調べる。
【００５２】
ユーザフロー管理テーブルでは、フロー毎に、フローｉからのパケットが最初に到着した時刻（「Ｔ＿ｆｉｒｓｔ＿ｉ」）と、パケットが最後に到着した時刻（「Ｔ＿ｌａｓｔ＿ｉ」）、および、最初に到着したパケットのシーケンス番号（「ＳＮ＿ｆｉｒｓｔ＿ｉ」）と、最後に到着したパケットのシーケンス番号（「ＳＮ＿ｌａｓｔ＿ｉ」）を記憶している。
【００５３】
抽出したパケットが新規フローからのパケットであった場合、ユーザフロー管理テーブルにそのフローをエントリし、「Ｔ＿ｆｉｒｓｔ＿ｉ」（パケットが最初に到着した時刻）、「Ｔ＿ｌａｓｔ＿ｉ」（パケットが最後に到着した時刻）を現在の時刻に設定し、「ＳＮ＿ｌａｓｔ＿ｉ」（最後に到着したパケットのシーケンス番号）を、当該パケットヘッダから読み出したシーケンス番号に設定し、「ＳＮ＿ｆｉｒｓｔ＿ｉ」（最初に到着したパケットのシーケンス番号）として、「最後に到着したパケットのシーケンス番号−当該パケットサイズ」に設定する。
【００５４】
また、抽出したパケットが既にユーザフロー管理テーブルにおいてエントリされているユーザフローｉからのパケットであった場合、「Ｔ＿ｌａｓｔ＿ｉ」（パケットが最後に到着した時刻）を現在の時刻に更新し、「ＳＮ＿ｌａｓｔ＿ｉ」（最後に到着したパケットのシーケンス番号）を、当該パケットのヘッダから読み出したシーケンス番号に更新する。
【００５５】
以上の処理を、測定を開始してから予め定めた時間周期ｔ０が経過するまで行い、時間ｔ０経過時点において、もし、「Ｔ＿ｌａｓｔ＿ｉ（パケットが最後に到着した時刻）」＝「Ｔ＿ｆｉｒｓｔ＿ｉ（パケットが最初に到着した時刻）」ならば、当該フローｉを、ユーザフロー管理テーブルのエントリから除外し、また、もし「Ｔ＿ｌａｓｔ＿ｉ（パケットが最後に到着した時刻）」＞「Ｔ＿ｆｉｒｓｔ＿ｉ（パケットが最初に到着した時刻）」ならば、ユーザフロー管理テーブルに既にエントリされているフローｉのフローレート（「Ｒ＿ｉ」）を、Ｒ＿ｉ＝（「ＳＮ＿ｌａｓｔ＿ｉ」−「ＳＮ＿ｆｉｒｓｔ＿ｉ」）／（「Ｔ＿ｌａｓｔ＿ｉ」−「Ｔ＿ｆｉｒｓｔ＿ｉ」）により算出する。
【００５６】
一方、発信元ＩＰアドレス等の情報から、フローｉの発信元エリアＡ＿ｉおよび着信先エリアＡ＿ｊを特定し、エリアＡ＿ｉからＡ＿ｊへ向かうフローを調べ、それらエリアＡ＿ｉからエリアＡ＿ｊへ向かうフロー群のレートの平均Ｆ（Ａ＿ｉ，Ａ＿ｊ）を、Ｆ（Ａ＿ｉ，Ａ＿ｊ）＝ΣＲ＿ｉ／Ｎｆ（Ｒ＿ｉは該当するエリアＡ＿ｉからエリアＡ＿ｊへ向かうフローｉのレートＲ＿ｉ（ｉ＝１〜Ｎｆ）、Ｎｆは該当するエリア間のフロー数）により算出し、エリア間スループットとする。
【００５７】
このようにすることにより、フロー測定を行う際に、スケール性を担保するためにパケットサンプリングをしている場合にも、サンプルパケットからフロースループットを推定することができる。
【００５８】
次に、第６の技術について説明する。この第６の技術では、第５の技術のように、ユーザフロー管理テーブルにおいてパケットのシーケンス番号を表すＳＮ＿ｆｉｒｓｔ＿ｉ（最初に到着したパケットのシーケンス番号）、およびＳＮ＿ｌａｓｔ＿ｉ（最後に到着したパケットのシーケンス番号）を管理する代わりに、到着バイト数Ｂ＿ｉを管理するものとし、Ｎ個の到着パケットに対し１個のパケットを抽出する。
【００５９】
そして、当該パケットが新規フローからのパケットであった場合、ユーザフロー管理テーブルにそのフローをエントリし、到着バイト数Ｂ＿ｉを当該パケットサイズに設定し、また、抽出したパケットが、既にエントリされているフローｉからのパケットであった場合、当該パケットサイズを既存の到着バイト数に加えて更新する（Ｂ＿ｉ←「Ｂ＿ｉ＋当該パケットサイズ」）。
【００６０】
以上の手順を、測定を開始してから予め定めた時間周期ｔ０が経過するまで行い、時間ｔ０の経過時点において、ユーザフロー管理テーブルにエントリされているフローｉのフローレートＲ＿ｉを、Ｒ＿ｉ＝Ｂ＿ｉ×Ｎ／（「Ｔ＿ｌａｓｔ＿ｉ」−「Ｔ＿ｆｉｒｓｔ＿ｉ」）として算出する。
【００６１】
次に、第７の技術について説明する。この第７の技術は、一部のＩＰネットワークで測定されたフロー情報から、直接観測できないエリアの品質状況を推定することにより、状況を把握できているエリアのカバー率を上げようというものである。
【００６２】
すなわち、第７の技術では、まず、上述の第１または第４の技術におけるエリア間品質について、エリア間ｉとエリア間ｊの通信品質の時系列を観測し、当該通信品質が予め定められた閾値を下回った場合には、品質劣化であると判定する。
【００６３】
さらに、その際に、品質劣化が同時に発生しているエリア間を探索し、もし複数のエリア間で品質劣化が起きていた場合には、そのときの品質劣化エリアを仮にエリア間ｉ，ｊとし、エリア間ｉの経路上に存在するエリアと、エリア間ｊの経路上に存在するエリアとに共通するエリアがあるか否かを調べ、もし共通するエリアがあれば、そのエリアを潜在的輻輳エリアとし、その情報をトラヒック管理サーバへ通知する。
【００６４】
そして、もし、オーバーレイネットワークからそのエリアを中継ノード候補あるいはダウンロード元候補として使用したい旨の通知があった場合には、潜在的輻輳エリアである旨を通知し、それを受けたオーバーレイネットワークはそのエリアに属する中継ノード候補・ダウンロード元候補としての使用をしないこととする。
【００６５】
このように、第７の技術では、一部のＩＰネットワークで測定されたフロー情報から、直接観測できないエリアの品質状況を推定することにより、状況を把握できているエリアのカバー率を上げることができる。
【００６６】
以下、この第７の技術に関して、図３〜図５を用いて説明する。今、エリアの単位としてＡＳに着目し、ＡＳ間の接続関係が図３のようであったとする。また、ＡＳ（１）３１ａ−ＡＳ（２）３１ｂ間、ＡＳ（３）３１ｃ−ＡＳ（４）３１ｄ間のフロー情報が把握できているとする。
【００６７】
ここで、ＡＳ（１）３１ａ−ＡＳ（２）３１ｂ間のスループット、およびＡＳ（３）３１ｃ−ＡＳ（４）３１ｄ間のスループットの時系列変化を監視しているとし、これらスループットが同時に低下したとする。そのとき、これらＡＳペアに共通のパス上に存在するＡＳ（５）３１ｅとＡＳ（６）３１ｆが輻輳していると推定し、これらエリアを潜在的輻輳エリアとして特定する。
【００６８】
スループット低下の同期に関する例として、図４に、あるネットワークで測定したＡＳ間のスループットの時系列を示す。これよりスループットの低下が同期していることがみてとれる。
【００６９】
この原因は、これらＡＳペアに共通のボトルネックリンクが輻輳していたためであったと考えられる。図５に、そのリンクの使用率を示す。図４と図５を比較すると、スループットの低下とリンク使用率の上昇が同期していることが確認できる。
【００７０】
以下、第１の技術や第４の技術のように、ＩＰネットワークの品質情報を管理する技術と、第２の技術のようにオーバーレイネットワークによる迂回経路を探索・設定する技術、第３の技術のようにファイルダウンロード元オーバーレイノードを選定する技術、第５の技術または第６の技術のように、ＩＰネットワークにおける品質を測定する技術、第７の技術のように潜在輻輳エリアを特定する技術を組み合わせて用いることに関して説明する。
【００７１】
まず、図７〜図９を用いて、第４の技術でＩＰネットワークにおいてフロー情報の測定を行っているとし、第１の技術でオーバーレイネットワークで品質測定を行っているとし、第２の技術でオーバーレイネットワークにおけるトラヒック制御を行っている場合について説明する。
【００７２】
図７においては、ＩＰネットワーク上のあるルータの構成例を示しており、図８においては、あるオーバーレイノードの構成例を表し、図９においては、トラヒック管理サーバの構成例を表している。
【００７３】
図７に示すように、ＩＰルータ７１は、サンプリング部７２とフロー管理部７３を具備し、前段の他ルータから到着したパケットはサンプリング部７２に転送され、サンプリング部７２では図示していないカウンターＣをカウントアップし、カウンターＣの値が予め定めたサンプリング周期Ｎと等しいかチェックする。
【００７４】
もしＣ＝Ｎであれば、パケットはフロー管理部７３に転送され、Ｃ＝０にリセットし、同時に、当該パケットは後段ルータへ転送される。もしＣ＜Ｎであれば、単に後段ルータへのみ該パケットを転送する。
【００７５】
あるいは、パケット到着毎に０〜１の範囲で乱数を発生させ、その結果が１／Ｎ以下であれば、当該パケットをフロー管理部７３に転送してから後段ノードにも転送し、そうでなければ単に後段ルータへのみ当該パケットを転送する、としてもよい。
【００７６】
フロー管理部７３では、転送されてきたパケットから、送信元ＩＰアドレス、着信先ＩＰアドレス、送信元ポート番号、着信先ポート番号、プロトコル番号、シーケンス番号を読み出し、送信元ＩＰアドレス、着信先ＩＰアドレス、送信元ポート番号、着信先ポート番号、プロトコル番号の５つの組を同じくするパケット群をフローと定義し、フロー毎に状態を管理する図示していないユーザフロー管理テーブルを予め用意しておく。
【００７７】
このユーザフロー管理テーブルでは、フロー毎に、フローｉからのパケットが最初に到着した時刻Ｔ＿ｆｉｒｓｔ＿ｉと、パケットが最後に到着した時刻Ｔ＿ｌａｓｔ＿ｉ、最初に到着したパケットのシーケンス番号ＳＮ＿ｆｉｒｓｔ＿ｉ、最後に到着したパケットのシーケンス番号ＳＮ＿ｌａｓｔ＿ｉを記憶、管理する。
【００７８】
もし、到着したパケットが新規フローからのパケットであった場合、ユーザフロー管理テーブルに当該フローをエントリし、Ｔ＿ｆｉｒｓｔ＿ｉ、Ｔ＿ｌａｓｔ＿ｉを現在の時刻に設定し、ＳＮ＿ｌａｓｔ＿ｉを、当該パケットのヘッダから読み出したシーケンス番号に設定し、時刻ＳＮ＿ｆｉｒｓｔ＿ｉとして「当該シーケンス番号−当該パケットサイズ」を設定する。
【００７９】
また、到着したパケットが既にエントリされているユーザフローｉからのパケットであった場合、Ｔ＿ｌａｓｔ＿ｉを現在の時刻に更新し、ＳＮ＿ｌａｓｔ＿ｉを該パケットヘッダから読み出したシーケンス番号に更新する。
【００８０】
以上の手順を、測定を開始してから予め定めた時間周期ｔ０が経過するまで行い、時間ｔ０の経過時点において、もし「Ｔ＿ｌａｓｔ＿ｉ＝Ｔ＿ｆｉｒｓｔ＿ｉ」であるならば、フローｉは当該テーブルのエントリから除外し、もし「Ｔ＿ｌａｓｔ＿ｉ＞Ｔ＿ｆｉｒｓｔ＿ｉ」であるならば、ユーザフロー管理テーブルにエントリされているフローｉのフローレートＲ＿ｉを、Ｒ＿ｉ＝（「ＳＮ＿ｌａｓｔ＿ｉ」−「ＳＮ＿ｆｉｒｓｔ＿ｉ」）／（「Ｔ＿ｌａｓｔ＿ｉ」−「Ｔ＿ｆｉｒｓｔ＿ｉ」）として算出し、その値を、図９に示すトラヒック管理サーバ９１内のスループット算出部９２へ通知し、ユーザフロー管理テーブルをクリアする。
【００８１】
図９に示すトラヒック管理サーバ９１において、スループット算出部９２は、図７のＩＰルータ７１内のフロー管理部７３からのフローｉのフローレートＲ＿ｉを受け取った場合、そのフローの発信元ＩＰアドレス、着信先ＩＰアドレスから、フローｉの発信元エリアエリアＡ＿ｉおよび着信先エリアＡ＿ｊを特定する。
【００８２】
以上を、各ルータからのフロー情報全てに対して実施し、エリアＡ＿ｉからエリアＡ＿ｊへ向かうフロー群のレートの平均Ｆ（Ａ＿ｉ，Ａ＿ｊ）を、Ｆ（Ａ＿ｉ，Ａ＿ｊ）＝ΣＲ＿ｉ／Ｎｆ（Ｒ＿ｉは該当するエリアＡ＿ｉからエリアＡ＿ｊへ向かうフローｉのレートＲ＿ｉ（ｉ＝１〜Ｎｆ）、Ｎｆは該当するエリア間のフロー数）により算出し、それをエリアＡ＿ｉ，Ａ＿ｊ間スループットとする。そして、その情報を、エリア間スループット管理部９３へ通知する。
【００８３】
通知を受けたエリア間スループット管理部８３では、図示していない各エリア間スループット管理テーブルにおいてスループットを保管しておく。また、オーバーレイノードからスループット測定結果の通知を受信すると、その情報をエリア間スループット管理テーブルへ追加する。
【００８４】
図８に示すオーバーレイノード８１（仮に自身をＸとする）においては、他のオーバーレイノードＺと通信を開始する際に、中継候補選択部８４において記憶している他のオーバーレイノード（中継候補となるノードＹ１，Ｙ２，…，Ｙｋ）を読み出し、中継ノード決定部８３に通知する。
【００８５】
通知を受けた中継ノード決定部８３は、ノードＸ，Ｚ，Ｙ１，Ｙ２，…，Ｙｋ間の品質情報を、図９のトラヒック管理サーバ９１内のエリア間スループット管理部９３から読み出す。
【００８６】
この際、もし、エリア間スループット管理部９３に登録されていないエリア間の品質が必要になった場合には、対応する他のオーバーレイノードＹｊの通信品質測定部８２に品質測定の依頼をする。
【００８７】
中継ノード決定部８３は、ノードＹ１，Ｙ２，…，Ｙｋを中継ノードとして用いたときのノードＸからノードＺへの迂回路の品質が、直通品質ｄ（Ｘ，Ｚ）よりもよければ、それら中継ノードを用いた迂回路を設定し、そうでなければ直通路をノードＸからノードＺへの経路とする。
【００８８】
また、品質測定の依頼を受けたオーバーレイノードは品質測定を実施し、その結果を、図９のトラヒック管理サーバ９１内のエリア間スループット管理部９３へ通知する。
【００８９】
以下、このような図１〜図９を用いて説明した、本例のオーバーレイネットワークのトラヒック制御システムの処理動作を、図１０〜図１２のフローチャートを用いて説明する。
【００９０】
本例のオーバーレイネットワークのトラヒック制御システムは、図１０におけるステップＳ１０１〜Ｓ１０４の第１〜第４の処理手順を実行することで、ＩＰネットワークに接続するいくつかのオーバーレイノードによって構築される論理網であるオーバーレイネットワークにおけるトラヒック制御を、ＩＰネットワーク内で測定されたトラヒック情報を用いて行う。
【００９１】
第１の処理手順（ステップＳ１０１）では、トラヒック管理サーバ９１が、図２おけるＩＰネットワークＸ２２内で測定されたフロー単位のトラヒック情報（フロー情報）を収集し、収集したフロー情報を用いて、当該ＩＰネットワークＸ２２に対して予め定められた条件で設定された各エリア（１）２４ａ〜２４ｃ間のスループットを算出して記憶装置に記憶する。
【００９２】
第２の処理手順（ステップＳ１０２）では、オーバーレイネットワークにおけるオーバーレイノードＸとオーバーレイノードＹ間の通信品質を要する際に、トラヒック管理サーバ９１が、オーバーレイノードＸが属するエリアＡ＿ＸとオーバーレイノードＹが属するエリアＡ＿Ｙを、予め定められた条件に基づき特定する。
【００９３】
第３の処理手順（ステップＳ１０３）では、トラヒック管理サーバ９１が、第２の処理手順で特定したエリアＡ＿ＸとエリアＡ＿Ｙの両エリアが共に第１の処理手順により記憶装置に記憶されているか（Ｙｅｓ）否か（Ｎｏ）を判別する。
【００９４】
第４の処理手順（ステップＳ１０４）では、トラヒック管理サーバ９１は、第３の処理手順での判別結果がＹｅｓであれば、エリアＡ＿ＸとエリアＡ＿Ｙ間のスループットを読み出し、読み出したスループットをオーバーレイノードＸとオーバーレイノードＹ間の通信品質として取得し、また、第３の処理手順での判別結果がＮｏであれば、オーバーレイノードＸとオーバーレイノードＹ間のスループットを測定し、測定したスループットを当該オーバーレイノード間の通信品質として取得する。
【００９５】
尚、第１の処理手順（ステップＳ１０１）においては、トラヒック管理サーバ９１が、複数のＩＰネットワーク（図２におけるＩＰネットワークＸ２２，Ｙ２３）のそれぞれで測定されたフロー情報を収集し、収集したフロー情報を用いて、複数のＩＰネットワーク（Ｘ２２，Ｙ２３）のそれぞれに設定された各エリア（図２におけるエリア（１）２４ａ〜（５）２４ｅ）間のスループットを算出して記憶装置に記憶することでも良い。
【００９６】
本例のオーバーレイネットワークのトラヒック制御システムは、図１１におけるステップＳ１１１〜Ｓ１１３の第５〜第７の処理手順を実行する。
【００９７】
第５の処理手順（ステップＳ１１１）では、トラヒック管理サーバ９１が、図１０における第４の処理手順で取得した各オーバーレイノードＸ，Ｚ，Ｙ１，Ｙ２，・・・，Ｙｋ間の通信品質を、各オーバーレイノード間の直通路の通信品質として記憶装置に記憶する。
【００９８】
第６の処理手順（ステップＳ１１２）では、オーバーレイノードＸとオーバーレイノードＺ間で通信をする際、トラヒック管理サーバ９１は、オーバーレイノードＹ１，Ｙ２，…Ｙｋを中継ノードとした迂回路を経由した場合のオーバーレイノードＸからオーバーレイノードＺの通信品質を算出し、算出した迂回路の通信品質と直通路の通信品質とを比較し、通信品質の良い方を、オーバーレイノードＸからオーバーレイノードＺへの経路として特定する。
【００９９】
また、第７の処理手順（ステップＳ１１３）では、オーバーレイノードＸがダウンロードするファイルをオーバーレイノードＹｉ，Ｙ２，・・・，Ｙｋが保持している場合、第５の処理手順で記憶装置に記憶したオーバーレイノードＸと上記オーバーレイノードＹｉ，Ｙ２，・・・，Ｙｋ間の直通路の通信品質が最良のオーバーレイノードＹｉ（ｉ＝１〜ｋ）を特定し、特定したオーバーレイノードをダウンロード元としてオーバーレイノードＸに通知する。
【０１００】
さらに、本例のオーバーレイネットワークのトラヒック制御システムでは、トラヒック管理サーバ９１が図１０における第１の処理手順で収集する際、ＩＰネットワーク内の各ノードが、図１２におけるステップＳ１２１〜Ｓ１２４の処理手順Ａ〜Ｄを実行して通知してくる各フロー情報を収集し、収集したフローｉのパケットにおける発信元ＩＰアドレスを含む条件で定められる当該フローｉの発信元エリアエリアＡ＿ｉおよび着信先エリアＡ＿ｊを特定し、エリアＡ＿ｉからエリアＡ＿ｊへ向かうフロー群のレートの平均Ｆ（Ａ＿ｉ，Ａ＿ｊ）を、Ｆ（Ａ＿ｉ，Ａ＿ｊ）＝ΣＲ＿ｉ／Ｎｆ（Ｒ＿ｉは該当するエリアＡ＿ｉからエリアＡ＿ｊへ向かうフローｉのレートＲ＿ｉ（ｉ＝１〜Ｎｆ）、Ｎｆは該当するエリア間のフロー数）により算出し、算出した値をエリア間のスループットとして記憶装置に記憶する。
【０１０１】
ＩＰネットワーク内の各ノード（ＩＰルータ６２ａ〜６２ｇ，７１）は、まず、図１２に示す処理手順Ａ（ステップＳ１２１）において、Ｎ個の到着パケットに対し１個のパケットを抽出し、抽出したパケットのヘッダ情報から当該パケットの属するフローを特定する。
【０１０２】
次に、処理手順Ｂ（ステップＳ１２２）において、処理手順Ｂで特定したフローが、予め用意された図示していないユーザフロー管理テーブルにエントリされているかを判別する。
【０１０３】
処理手順Ｃ（ステップＳ１２３）においては、特定したフローがユーザフロー管理テーブルにエントリされておらず、当該パケットが新規フローからのパケットであった場合、ユーザフロー管理テーブルに当該フローｉをエントリして、このフローｉからのパケットが最初に到着した時刻Ｔ＿ｆｉｒｓｔ＿ｉとフローｉからのパケットが最後に到着した時刻Ｔ＿ｌａｓｔ＿ｉとして現在の時刻を設定すると共に、当該パケットのヘッダ情報から読み出したシーケンス番号から当該パケットのサイズを減算した値を、当該パケットが最初に到着したシーケンス番号ＳＮ＿ｆｉｒｓｔ＿ｉとして設定し、読み出したシーケンス番号を、当該パケットが最後に到着したパケットのシーケンス番号ＳＮ＿ｌａｓｔ＿ｉとして設定し、また、特定したフローがユーザフロー管理テーブルに既にエントリされている場合には、フローｉからのパケットが最後に到着した時刻Ｔ＿ｌａｓｔ＿ｉを現在の時刻に更新し、ＳＮ＿ｌａｓｔ＿ｉを当該パケットヘッダから読み出したシーケンス番号に更新する。
【０１０４】
そして、処理手順Ｄ（ステップＳ１２４）においては、各処理手順Ａ〜Ｃでの処理を、予め定めた時間ｔ０の周期で実行し、時間ｔ０の経過時点において、「Ｔ＿ｌａｓｔ＿ｉ＝Ｔ＿ｆｉｒｓｔ＿ｉ」であれば、当該フローｉのエントリをユーザフロー管理テーブルから除外し、「Ｔ＿ｌａｓｔ＿ｉ＞Ｔ＿ｆｉｒｓｔ＿ｉ」であれば、ユーザフロー管理テーブルにエントリされている当該フローｉのフローレートＲ＿ｉを、Ｒ＿ｉ＝（「ＳＮ＿ｌａｓｔ＿ｉ」−「ＳＮ＿ｆｉｒｓｔ＿ｉ」）／（「Ｔ＿ｌａｓｔ＿ｉ」−「Ｔ＿ｆｉｒｓｔ＿ｉ」）で算出して、トラヒック管理サーバ（２１，６３，９１）に通知する。
【０１０５】
尚、図１２に示す処理手順Ａにおいて、ＩＰネットワーク内の各ノードは、Ｎ個の到着パケットに対し１個のパケットを抽出し、このパケットのヘッダ情報から当該パケットの属するフローを特定し、処理手順Ｂにおいて、特定したフローが、予め用意されたユーザフロー管理テーブルにエントリされているかを判別し、処理手順Ｃにおいて、特定したフローがユーザフロー管理テーブルにエントリされておらず、当該パケットが新規フローからのパケットであった場合、ユーザフロー管理テーブルに当該フローｉをエントリして、このフローｉからのパケットが最初に到着した時刻Ｔ＿ｆｉｒｓｔ＿ｉと、このフローｉからのパケットが最後に到着した時刻Ｔ＿ｌａｓｔ＿ｉとして現在の時刻を設定すると共に、当該パケットのサイズを到着バイト数Ｂ＿ｉとして設定し、また、特定したフローがユーザフロー管理テーブルに既にエントリされている場合には、到着バイト数Ｂ＿ｉをフローｉからのパケットのサイズを加算して更新し、処理手順Ｄにおいて、各処理手順Ａ〜Ｃによる処理を、予め定めた時間ｔ０の周期で実行し、時間ｔ０の経過時点において、「Ｔ＿ｌａｓｔ＿ｉ＝Ｔ＿ｆｉｒｓｔ＿ｉ」であれば、当該フローｉのエントリをユーザフロー管理テーブルから除外し、「Ｔ＿ｌａｓｔ＿ｉ＞Ｔ＿ｆｉｒｓｔ＿ｉ」であれば、ユーザフロー管理テーブルにエントリされている当該フローｉのフローレートＲ＿ｉを、Ｒ＿ｉ＝（「Ｂ＿ｉ」×Ｎ）／（「Ｔ＿ｌａｓｔ＿ｉ」−「Ｔ＿ｆｉｒｓｔ＿ｉ」）で算出し、トラヒック管理サーバ（２１，６３，９１）に通知することでも良い。
【０１０６】
この場合、トラヒック管理サーバ（２１，６３，９１）は、通知されたフローｉのパケットにおける発信元ＩＰアドレスを含む条件で定められる当該フローｉの発信元エリアＡ＿ｉおよび着信先エリアＡ＿ｊを特定し、エリアＡ＿ｉからエリアＡ＿ｊへ向かうフロー群のレートの平均Ｆ（Ａ＿ｉ，Ａ＿ｊ）を、Ｆ（Ａ＿ｉ，Ａ＿ｊ）＝ΣＲ＿ｉ／Ｎｆ（Ｒ＿ｉは該当するエリアＡ＿ｉからエリアＡ＿ｊへ向かうフローｉのレートＲ＿ｉ（ｉ＝１〜Ｎｆ）、Ｎｆは該当するエリア間のフロー数）により算出し、算出した値をエリア間のスループットとして記憶装置に記憶する。
【０１０７】
また、トラヒック管理サーバ（２１，６３，９１）は、第１の処理手順で算出する各エリア間のスループットを時系列で読み取り、当該スループットが予め定められた閾値を下回った場合に、当該エリア間の品質劣化を判定し、同じ時刻に複数のエリア間での品質劣化を判定した場合、各エリア間の経路上に共通なエリアの有無を判別し、有れば当該エリアを、潜在的輻輳エリアとして特定する。
【０１０８】
このことにより、本例のオーバーレイネットワークのトラヒック制御システムおよびトラヒック制御方法によれば、ＩＰネットワーク側とオーバーレイネットワーク側とで協調することで、インターネット等に展開しているオーバーレイネットワークにおける各オーバーレイノード間の通信品質を求める際にも、ＩＰネットワーク側が、全てのネットワーク情報を提供する必要がなく、オーバーレイネットワークのオーバーレイノード間の通信品質を効率的に求めることが可能となる。
【０１０９】
尚、本発明は、図１〜図１２を用いて説明した例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。例えば、本例の処理対象となるオーバーレイネットワークの構成に関しては、図６に示されるような小規模なネットワーク構成ではなく、より大規模なオーバーレイネットワークにおいても適用可能である。
【０１１０】
また、本例のトラヒック管理サーバのコンピュータ構成に関しても、キーボードや光ディスクの駆動装置の無いコンピュータ構成としても良い。また、本例では、光ディスクを記録媒体として用いているが、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）等を記録媒体として用いることでも良い。また、プログラムのインストールに関しても、通信装置を介してネットワーク経由でプログラムをダウンロードしてインストールすることでも良い。
【図面の簡単な説明】
【０１１１】
【図１】本発明に係るオーバーレイネットワークの構成例を示すブロック図である。
【図２】本発明に係るオーバーレイネットワークにおけるトラヒック制御システムを設けたネットワークの第１の構成例を示すブロック図である。
【図３】図２におけるトラヒック管理サーバで特定するエリア間の接続構成例を示すブロック図である。
【図４】図２におけるトラヒック管理サーバで算出したエリア間のスループットの時系列変化例を示す説明図である。
【図５】図２におけるトラヒック管理サーバが検出したボトルネックリンクの使用率の変化例を示す説明図である。
【図６】本発明に係るオーバーレイネットワークにおけるトラヒック制御システムを設けたネットワークの第２の構成例を示すブロック図である。
【図７】図６におけるＩＰルータの構成例を示すブロック図である。
【図８】図６におけるオーバーレイノードの構成例を示すブロック図である。
【図９】図６におけるトラヒック管理サーバの構成例を示すブロック図である。
【図１０】本発明に係るオーバーレイネットワークのトラヒック制御システムの第１の処理動作例を示すフローチャートである。
【図１１】本発明に係るオーバーレイネットワークのトラヒック制御システムの第２の処理動作例を示すフローチャートである。
【図１２】本発明に係るオーバーレイネットワークのトラヒック制御システムの第３の処理動作例を示すフローチャートである。
【符号の説明】
【０１１２】
１，６１：オーバーレイネットワーク（Ｏｖｅｒｌａｙ−ＮＷ）、１ａ〜１ｃ，６１ａ〜６１ｅ，８１：オーバーレイノード、２，６２：ＩＰネットワーク（ＩＰ−ＮＷ）、２ａ〜２ｅ，６２ａ〜６２ｇ，７１：ＩＰルータ、２１，６３，９１：トラヒック管理サーバ、２２：ＩＰネットワークＸ、２３：ＩＰネットワークＹ、２４ａ〜２４ｅ：エリア（１）〜（５）、３１ａ〜３１ｆ：ＡＳ（１）〜ＡＳ（６）、７２：サンプリング部、７３；フロー管理部、８２：通信品質測定部、８３：中継ノード決定部、８４：中継候補選択部、９２：スループット算出部、９３：エリア間スループット管理部。
【図１】
2010087963.tif 000003
【図２】
2010087963.tif 000004
【図３】
2010087963.tif 000005
【図４】
2010087963.tif 000006
【図５】
2010087963.tif 000007
【図６】
2010087963.tif 000008
【図７】
2010087963.tif 000009
【図８】
2010087963.tif 000010
【図９】
2010087963.tif 000011
【図１０】
2010087963.tif 000012
【図１１】
2010087963.tif 000013
【図１２】
2010087963.tif 000014