(57)【要約】【課題】ネットワークインフラのリソースの利用効率を高めることができる、ネットワーク設計装置、ネットワーク設計方法、およびプログラムを提供する。【解決手段】複数のノード３を備えるデータネットワーク２の上位のレイヤで仮想的に生成されるオーバーレイネットワーク１において、ツリートポロジを設計するネットワーク設計装置１０が、所定のトラヒック量を超えたノードをオーバーレイ参加ノードとして選択する。そして、オーバーレイ参加ノードの中から、トラヒック量の多さを基にルートノードを決定する。次に、オーバーレイネットワーク１上のルートノードからオーバーレイノードまでの経路に対応するデータネットワーク上の経路を算出し、同一ノードを複数回経由する経路について、ツリートポロジにおいて、論理ノードを生成する。【選択図】図１
2010193224.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードと前記ノードを接続するための複数のリンクとを備えるデータネットワークの上位のレイヤで仮想的に生成されるオーバーレイネットワークにおいて、前記オーバーレイネットワーク上に生成されるオーバーレイノードに関するツリートポロジを設計するネットワーク設計装置であって、
前記データネットワーク上の複数のノード間の接続関係を示すトポロジ情報、および前記データネットワークに流れるトラヒック量、を含むネットワーク情報が記憶されるネットワーク情報記憶部と、
前記ネットワーク情報記憶部に記憶されたトポロジ情報およびトラヒック量に基づき、所定のトラヒック量を超えたノードを、前記オーバーレイネットワークのオーバーレイ参加ノードとして選択するオーバーレイ参加ノード選択部と、
前記選択されたオーバーレイ参加ノードの中から、前記ツリートポロジを設計するためのルートノードを、前記トラヒック量の多いものから優先的に決定するルートノード決定部と、
前記決定されたルートノードから前記オーバーレイ参加ノードまでの最短経路を探索し、当該探索した経路と、前記オーバーレイネットワークにおける当該ルートノードから当該オーバーレイノードまでの経路と、を対応付けるマッピング情報の生成を行うマッピング処理部と、
前記オーバーレイネットワーク上の任意の２つの前記オーバーレイノードを抽出し、当該抽出したオーバーレイノード間のデータネットワーク上での経路を前記マッピング情報に基づいて算出し、当該算出した経路が複数回経由するノードを含むと判定した場合に、前記複数回経由するノードから転送されるデータの宛先となるオーバーレイ参加ノードに関して、前記オーバーレイネットワーク上に、前記複数回経由するノードから当該オーバーレイ参加ノードまでの経路情報を記憶させた論理ノードを生成し、
さらに、前記データの転送元となるオーバーレイノードと前記生成した論理ノードとを接続して前記ツリートポロジを設計する最適化処理部と、
を備えることを特徴とするネットワーク設計装置。
【請求項２】
前記ルートノード決定部は、
前記オーバーレイ参加ノードのうち、前記ネットワーク情報に基づき、発着トラヒック量が最も多いノードをルートノードに決定すること
を特徴とする請求項１に記載のネットワーク設計装置。
【請求項３】
前記ルートノード決定部は、
前記オーバーレイ参加ノードのうち、前記ネットワーク情報に基づき、発着トラヒック量が多い上位ｎ個のノードを抽出し、前記抽出した全てのノードを前記ルートノードとして前記ツリートポロジ候補を構築し、前記構築した各ツリートポロジ候補について、前記ネットワーク情報記憶部に記憶されたトポロジ情報とトラヒック量との積であるリソース利用量を算出し、前記算出したリソース利用量のうち、最もリソース利用量が少ないツリートポロジ候補を選択し、前記選択したツリートポロジ候補のルートノードを、前記オーバーレイネットワークにおけるルートノードに決定すること
を特徴とする請求項１に記載のネットワーク設計装置。
【請求項４】
前記ルートノード決定部は、
前記オーバーレイ参加ノードとして選択された全てのノードを前記ルートノードとして前記ツリートポロジ候補を構築し、前記構築した各ツリートポロジ候補について、前記ネットワーク情報記憶部に記憶されたトポロジ情報とトラヒック量との積であるリソース利用量を算出し、前記算出したリソース利用量のうち、最もリソース利用量が少ないツリートポロジ候補を選択し、前記選択したツリートポロジ候補のルートノードを、前記オーバーレイネットワークにおけるルートノードに決定すること
を特徴とする請求項１に記載のネットワーク設計装置。
【請求項５】
前記最適化処理部は、
前記オーバーレイネットワーク上の任意の２つの前記オーバーレイノードを抽出し、前記抽出したオーバーレイノード間のデータネットワーク上での経路を、前記マッピング情報に基づいて算出することにより、前記データネットワーク上の前記算出した経路のホップ数である第１のホップ数を取得し、
前記抽出したオーバーレイノードに対応する前記データネットワーク上のオーバーレイ参加ノード間の最短経路を算出することにより、第２のホップ数を取得し、
前記第１のホップ数が前記第２のホップ数のＸ倍以上となった場合に、前記論理ノードを生成すること
を特徴とする請求項１ないし請求項４のいずれか１項に記載のネットワーク設計装置。
【請求項６】
前記最適化処理部は、
前記オーバーレイネットワーク上の任意の２つの前記オーバーレイノードを抽出し、前記抽出したオーバーレイノード間のデータネットワーク上での経路を、前記マッピング情報に基づいて算出することにより、前記データネットワーク上の前記算出した経路のホップ数である第１のホップ数を取得し、
前記抽出したオーバーレイノードに対応する前記データネットワーク上のオーバーレイ参加ノード間の最短経路を算出することにより、第２のホップ数を取得し、
前記第１のホップ数が前記第２のホップ数のＸ倍以上であり、かつ、前記第２のホップ数がＹホップである場合に、前記論理ノードを生成すること
を特徴とする請求項１ないし請求項４のいずれか１項に記載のネットワーク設計装置。
【請求項７】
前記最適化処理部は、
前記オーバーレイネットワーク上の任意の２つの前記オーバーレイノードを抽出し、前記抽出したオーバーレイノード間のデータネットワーク上での経路を、前記マッピング情報に基づいて算出することにより、前記データネットワーク上の前記算出した経路のホップ数である第１のホップ数を取得し、
前記抽出したオーバーレイノードに対応する前記データネットワーク上のオーバーレイ参加ノード間の最短経路を算出することにより、第２のホップ数を取得し、
前記抽出したオーバーレイノード間のトラヒック量と前記第１のホップ数との積と、前記データネットワーク上の前記オーバーレイ参加ノード間のトラヒック量と前記第２のホップ数との積と、の差が大きいもの上位ｍ本について、前記論理ノードを生成すること
を特徴とする請求項１ないし請求項４のいずれか１項に記載のネットワーク設計装置。
【請求項８】
複数のノードと前記ノードを接続するための複数のリンクとを備えるデータネットワークの上位のレイヤで仮想的に生成されるオーバーレイネットワークにおいて、前記オーバーレイネットワーク上に生成されるオーバーレイノードに関するツリートポロジを設計するネットワーク設計装置を用いたネットワーク設計方法であって、
前記ネットワーク設計装置は、
前記データネットワーク上の複数のノード間の接続関係を示すトポロジ情報、および前記データネットワークに流れるトラヒック量、を含むネットワーク情報が記憶されるネットワーク情報記憶部を備え、
前記ネットワーク情報記憶部に記憶されたトポロジ情報およびトラヒック量に基づき、所定のトラヒック量を超えたノードを、前記オーバーレイネットワークのオーバーレイ参加ノードとして選択するステップと、
前記選択されたオーバーレイ参加ノードの中から、前記ツリートポロジを設計するためのルートノードを、前記トラヒック量の多いものから優先的に決定するステップと、
前記決定されたルートノードから前記オーバーレイ参加ノードまでの最短経路を探索し、当該探索した経路と、前記オーバーレイネットワークにおける当該ルートノードから当該オーバーレイノードまでの経路と、を対応付けるマッピング情報の生成を行うステップと、
前記オーバーレイネットワーク上の任意の２つの前記オーバーレイノードを抽出し、当該抽出したオーバーレイノード間のデータネットワーク上での経路を前記マッピング情報に基づいて算出し、当該算出した経路が複数回経由するノードを含むと判定した場合に、前記複数回経由するノードから転送されるデータの宛先となるオーバーレイ参加ノードに関して、前記オーバーレイネットワーク上に、前記複数回経由するノードから当該オーバーレイ参加ノードまでの経路情報を記憶させた論理ノードを生成し、
さらに、前記データの転送元となるオーバーレイノードと前記生成した論理ノードとを接続して前記ツリートポロジを設計するステップと、
を実行することを特徴とするネットワーク設計方法。
【請求項９】
請求項８に記載のネットワーク設計方法をコンピュータである前記ノードに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク設計装置、ネットワーク設計方法、およびプログラムに関する。
【背景技術】
【０００２】
従来、ＩＰ（Internet Protocol）ルーチング技術においては、最短経路を選択するＯＳＰＦ（Open Shortest Path First）が用いられている。しかし、このＯＳＰＦにおいては、各ルータ（ノード）は、ルーチングテーブルのエントリを宛先毎に保持する必要があり、このため、大規模なネットワークや膨大な数のサービスにおいて、各ルータで保持するエントリ数が膨大となり、また経路計算の負荷も大きくなるという問題があった。
【０００３】
この問題を解決するものとして、宛先毎にエントリを保持しなくとも宛先アドレスから転送すべき方向の算出を可能にする、ツリートポロジをルータ網上にオーバーレイで構築する技術が開示されている（例えば、非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】磯貝彰則，他「多数サービスをスケーラブルに収容するネットワーク仮想化技術に関する検討」，2008年9月ソサイエティ大会（ＢＳ−５−３）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
非特許文献１に開示された技術は、ルータが宛先毎に膨大なエントリを保持する必要をなくすことが可能となる技術であるが、次のような課題がある。
オーバーレイネットワークにおいて構築されるトポロジが、ツリートポロジという形状であるため、単純な最短経路ルーチングと比較して、各対地間での通信時の平均ホップ数が長くなる。また、下位網（ルータ網）のトポロジと異なるトポロジをオーバーレイネットワークで構築すると、同一のノードを複数回経由する無駄な中継が発生し易く、通信時の平均ホップ数が長くなる。図１２は、従来例における、オーバーレイネットワークにおいて構築したツリートポロジにおけるルーチングと、それに対応するルータ網におけるルーチングを説明するための図である。
【０００６】
ここで、オーバーレイネットワーク１とは、既存のネットワークの上に、上位のレイヤで構築される仮想的なネットワークである。オーバーレイネットワーク１を構築する各ノードをオーバーレイノード３０と呼ぶ。オーバーレイネットワーク１は、オーバーレイノード３０間の仮想的なリンク（「オーバーレイリンク（符号４０）」と呼ぶ）で構成される。
【０００７】
図１２においては、ルータ網２を構成するノード３のうち、ノード３Ａ，３Ｂ，３Ｃ，３Ｅについて、オーバーレイネットワーク１における仮想的なオーバーレイノード３０Ａ，３０Ｂ，３０Ｃ，３０Ｅが構築されている。ここで、オーバーレイネットワーク１における、オーバーレイノード３０Ａ→３０Ｂ→３０Ｃの通信は、ルータ網２上では、ノード３Ａ→３Ｄ→３Ｂ→３Ｄ→３Ｃの経路の通信となる。よって、ノード３Ｄを２回経由する無駄な中継が発生しており、ホップ数が増加することとなる。また、このような通信経路は、本来使用する必要のないノード３Ｄ−ノード３Ｂ間のリンク４の帯域を使用することになるため、ルータ網２におけるリソースを有効活用することができない。
【０００８】
そこで、本発明は、前記した問題を解決し、ネットワークインフラのリソースの利用効率を高めることができるネットワーク設計装置、ネットワーク設計方法、およびプログラムを提供することを課題とする。
【課題を解決するための手段】
【０００９】
前記した課題を解決するため、請求項１に記載の発明は、複数のノードと前記ノードを接続するための複数のリンクとを備えるデータネットワークの上位のレイヤで仮想的に生成されるオーバーレイネットワークにおいて、前記オーバーレイネットワーク上に生成されるオーバーレイノードに関するツリートポロジを設計するネットワーク設計装置であって、前記データネットワーク上の複数のノード間の接続関係を示すトポロジ情報、および前記データネットワークに流れるトラヒック量、を含むネットワーク情報が記憶されるネットワーク情報記憶部と、前記ネットワーク情報記憶部に記憶されたトポロジ情報およびトラヒック量に基づき、所定のトラヒック量を超えたノードを、前記オーバーレイネットワークのオーバーレイ参加ノードとして選択するオーバーレイ参加ノード選択部と、前記選択されたオーバーレイ参加ノードの中から、前記ツリートポロジを設計するためのルートノードを、前記トラヒック量の多いものから優先的に決定するルートノード決定部と、前記決定されたルートノードから前記オーバーレイ参加ノードまでの最短経路を探索し、当該探索した経路と、前記オーバーレイネットワークにおける当該ルートノードから当該オーバーレイノードまでの経路と、を対応付けるマッピング情報の生成を行うマッピング処理部と、前記オーバーレイネットワーク上の任意の２つの前記オーバーレイノードを抽出し、当該抽出したオーバーレイノード間のデータネットワーク上での経路を前記マッピング情報に基づいて算出し、当該算出した経路が複数回経由するノードを含むと判定した場合に、前記複数回経由するノードから転送されるデータの宛先となるオーバーレイ参加ノードに関して、前記オーバーレイネットワーク上に、前記複数回経由するノードから当該オーバーレイ参加ノードまでの経路情報を記憶させた論理ノードを生成し、さらに、前記データの転送元となるオーバーレイノードと前記生成した論理ノードとを接続して前記ツリートポロジを設計する最適化処理部と、を備えることを特徴とする。
【００１０】
請求項８に記載の発明は、複数のノードと前記ノードを接続するための複数のリンクとを備えるデータネットワークの上位のレイヤで仮想的に生成されるオーバーレイネットワークにおいて、前記オーバーレイネットワーク上に生成されるオーバーレイノードに関するツリートポロジを設計するネットワーク設計装置を用いたネットワーク設計方法であって、前記ネットワーク設計装置は、前記データネットワーク上の複数のノード間の接続関係を示すトポロジ情報、および前記データネットワークに流れるトラヒック量、を含むネットワーク情報が記憶されるネットワーク情報記憶部を備え、前記ネットワーク情報記憶部に記憶されたトポロジ情報およびトラヒック量に基づき、所定のトラヒック量を超えたノードを、前記オーバーレイネットワークのオーバーレイ参加ノードとして選択するステップと、前記選択されたオーバーレイ参加ノードの中から、前記ツリートポロジを設計するためのルートノードを、前記トラヒック量の多いものから優先的に決定するステップと、前記決定されたルートノードから前記オーバーレイ参加ノードまでの最短経路を探索し、当該探索した経路と、前記オーバーレイネットワークにおける当該ルートノードから当該オーバーレイノードまでの経路と、を対応付けるマッピング情報の生成を行うステップと、前記オーバーレイネットワーク上の任意の２つの前記オーバーレイノードを抽出し、当該抽出したオーバーレイノード間のデータネットワーク上での経路を前記マッピング情報に基づいて算出し、当該算出した経路が複数回経由するノードを含むと判定した場合に、前記複数回経由するノードから転送されるデータの宛先となるオーバーレイ参加ノードに関して、前記オーバーレイネットワーク上に、前記複数回経由するノードから当該オーバーレイ参加ノードまでの経路情報を記憶させた論理ノードを生成し、さらに、前記データの転送元となるオーバーレイノードと前記生成した論理ノードとを接続して前記ツリートポロジを設計するステップと、を実行することを特徴とする。
【００１１】
このようにすることで、ネットワーク設計装置は、ネットワーク情報記憶部に記憶されたトポロジ情報およびトラヒック量に基づき、所定のトラヒック量を超えたノードを、オーバーレイ参加ノードとして選択することができる。よって、所定のトラヒック量を超えたノードを選択して効率的なトポロジを設計することができる。また、ネットワーク設計装置は、選択されたオーバーレイ参加ノードの中から、トラヒック量の多さを基にオーバーレイネットワークにおけるルートノードを決定することができる。
このオーバーレイネットワークのトポロジは、ツリートポロジに基づきルーチングを行うので、各ノードにおけるルーチングテーブルでは、宛先アドレス毎にエントリを持つ必要がない。よって、ノードの保持するエントリ数を低減することができる。
【００１２】
さらに、ネットワーク設計装置は、決定されたルートノードからオーバーレイ参加ノードまでの最短経路を探索し、その探索した経路と、オーバーレイネットワークにおけるルートノードからオーバーレイノードまでの経路と、を対応付けるマッピング情報の生成を行う。そして、ネットワーク設計装置は、任意の２つのオーバーレイノードを抽出し、抽出したオーバーレイノード間のデータネットワーク上での経路を、マッピング情報に基づいて算出し、算出した経路が複数回経由するノードを含むと判定した場合に、オーバーレイネットワーク上に、複数回経由するノードから転送されるデータの宛先となるオーバーレイ参加ノードに対応する論理ノードを構築する。この論理ノードは、複数回経由するノードからオーバーレイ参加ノードまでの経路情報を記憶しており、この経路情報に基づき、データネットワークにおいて複数回経由するノードに転送されたデータを、宛先となるオーバーレイ参加ノードへ転送させる。
【００１３】
このようにすることで、オーバーレイ・ツリートポロジにおいて、論理ノードと経路を接続して通信を行うことにより、データネットワークにおいて、同一ノードを複数回経由する経路をなくすことができる。つまり、対地間での通信時の平均ホップ数が長くなるのを防ぐことができる。そして、リンクの帯域の無駄な使用をなくすことで、ネットワークインフラのリソースの利用効率を高めることができる。
【００１４】
請求項２に記載の発明は、請求項１に記載のネットワーク設計装置において、前記ルートノード決定部が、前記オーバーレイ参加ノードのうち、前記ネットワーク情報に基づき、発着トラヒック量が最も多いノードをルートノードに決定することを特徴とする。
【００１５】
このようにすることで、最も発着トラヒック量が多いノードをルートノードに決定することができる。このため、平均ホップ数を低減させたツリートポロジを設計することができる。また、ルートノード決定部が、発着トラヒック量のみを比較すればよいため、ネットワーク設計装置の計算負荷を低減することができる。なお、ここで発着トラヒック量とは、ノードが備える通信インタフェースが送受信したデータのトラヒック量の合計をいう。
【００１６】
請求項３に記載の発明は、請求項１に記載のネットワーク設計装置において、前記ルートノード決定部が、前記オーバーレイ参加ノードのうち、前記ネットワーク情報に基づき、発着トラヒック量が多い上位ｎ個のノードを抽出し、前記抽出した全てのノードを前記ルートノードとして前記ツリートポロジ候補を構築し、前記構築した各ツリートポロジ候補について、前記ネットワーク情報記憶部に記憶されたトポロジ情報とトラヒック量との積であるリソース利用量を算出し、前記算出したリソース利用量のうち、最もリソース利用量が少ないツリートポロジ候補を選択し、前記選択したツリートポロジ候補のルートノードを、前記オーバーレイネットワークにおけるルートノードに決定することを特徴とする。
【００１７】
このようにすることで、ルートノード決定部が抽出した発着トラヒック量の多い上位ｎ個の候補数に応じた精度によって、リソース利用量の少ないツリートポロジを設計するルートノードを決定することができる。
【００１８】
請求項４に記載の発明は、請求項１に記載のネットワーク設計装置において、前記ルートノード決定部が、前記オーバーレイ参加ノードとして選択された全てのノードを前記ルートノードとして前記ツリートポロジ候補を構築し、前記構築した各ツリートポロジ候補について、前記ネットワーク情報記憶部に記憶されたトポロジ情報とトラヒック量との積であるリソース利用量を算出し、前記算出したリソース利用量のうち、最もリソース利用量が少ないツリートポロジ候補を選択し、前記選択したツリートポロジ候補のルートノードを、前記オーバーレイネットワークにおけるルートノードに決定することを特徴とする。
【００１９】
このようにすることで、全てのオーバーレイ参加ノードがルートノードになるものとして、リソース利用量を算出するため、最もリソース利用量の少ない最適なルートノードを決定することができる。
【００２０】
請求項５に記載の発明は、請求項１ないし請求項４のいずれか１項に記載のネットワーク設計装置において、前記最適化処理部が、前記オーバーレイネットワーク上の任意の２つの前記オーバーレイノードを抽出し、前記抽出したオーバーレイノード間のデータネットワーク上での経路を、前記マッピング情報に基づいて算出することにより、前記データネットワーク上の前記算出した経路のホップ数である第１のホップ数を取得し、前記抽出したオーバーレイノードに対応する前記データネットワーク上のオーバーレイ参加ノード間の最短経路を算出することにより、第２のホップ数を取得し、前記第１のホップ数が前記第２のホップ数のＸ倍以上となった場合に、前記論理ノードを生成することを特徴とする。
【００２１】
このようにすることで、ノード数が多い大規模なネットワークにおいて、複数回経由するノードの中から、論理ノードを生成するノードを絞り込むことができ、ネットワーク設計装置の計算負荷を低減することができる。
【００２２】
請求項６に記載の発明は、請求項１ないし請求項４のいずれか１項に記載のネットワーク設計装置において、前記最適化処理部が、前記オーバーレイネットワーク上の任意の２つの前記オーバーレイノードを抽出し、前記抽出したオーバーレイノード間のデータネットワーク上での経路を、前記マッピング情報に基づいて算出することにより、前記データネットワーク上の前記算出した経路のホップ数である第１のホップ数を取得し、前記抽出したオーバーレイノードに対応する前記データネットワーク上のオーバーレイ参加ノード間の最短経路を算出することにより、第２のホップ数を取得し、前記第１のホップ数が前記第２のホップ数のＸ倍以上であり、かつ、前記第２のホップ数がＹホップである場合に、前記論理ノードを生成することを特徴とする。
【００２３】
このようにすることで、ノード数が多い大規模なネットワークにおいて、さらに論理ノードを生成するノードを絞り込むことができる。そして、ネットワーク設計装置の計算負荷をさらに低減することができる。
【００２４】
請求項７に記載の発明は、請求項１ないし請求項４のいずれか１項に記載のネットワーク設計装置において、前記最適化処理部は、前記オーバーレイネットワーク上の任意の２つの前記オーバーレイノードを抽出し、前記抽出したオーバーレイノード間のデータネットワーク上での経路を、前記マッピング情報に基づいて算出することにより、前記データネットワーク上の前記算出した経路のホップ数である第１のホップ数を取得し、前記抽出したオーバーレイノードに対応する前記データネットワーク上のオーバーレイ参加ノード間の最短経路を算出することにより、第２のホップ数を取得し、前記抽出したオーバーレイノード間のトラヒック量と前記第１のホップ数との積と、前記データネットワーク上の前記オーバーレイ参加ノード間のトラヒック量と前記第２のホップ数との積と、の差が大きいもの上位ｍ本について、前記論理ノードを生成することを特徴とする。
【００２５】
このようにすることで、ホップ数だけでなくトラヒック量も考慮して論理ノードを生成するノードを決定することができる。例えば、ホップ数が多くても、トラヒック量が少ない経路は、元々のリンクの使用帯域が少なく、複数回経由する経路について論理ノードを生成したとしても、全体のリソース利用効率を高める効果は低い。従って、請求項７に記載の発明によれば、ホップ数が比較的少なくてもトラヒック量が多い経路について論理ノードを生成し、リソース利用効率を高めることができる。
【００２６】
請求項９に記載の発明は、請求項８に記載のネットワーク設計方法をコンピュータである前記ノードに実行させるためのプログラムとした。
【００２７】
このようなプログラムによれば、請求項９に記載のネットワーク設計方法を一般的なコンピュータで実行させることができる。
【発明の効果】
【００２８】
本発明によれば、ネットワークインフラのリソースの利用効率を高めることができる、ネットワーク設計装置、ネットワーク設計方法、およびプログラムを提供することができる。
【図面の簡単な説明】
【００２９】
【図１】本実施形態に係るネットワーク設計装置を含むネットワークシステムを例示した図である。
【図２】本実施形態に係るネットワーク設計装置の構成例を示す機能ブロック図である。
【図３】本実施形態に係るネットワーク設計装置の全体の処理の流れを示すフローチャートである。
【図４】本実施形態に係るオーバーレイ参加ノード選択部により、オーバーレイ参加ノードが選択された例を示す図である。
【図５】本実施形態に係るルートノード決定部が行うルートノード決定処理の流れを示すフローチャートである。
【図６】本実施形態に係るルートノード決定部により、ルートノードが決定された例を示す図である。
【図７】本実施形態に係るマッピング処理部が行うマッピング処理の流れを示すフローチャートである。
【図８】本実施形態に係るマッピング処理部により生成される、オーバーレイネットワークにおけるオーバーレイリンクと、ルータ網上の経路との対応関係を示すマッピング情報を説明するための図である。
【図９】本実施形態に係る最適化処理前における、オーバーレイ・ツリートポロジに基づく経路と、ルータ網の経路との対応関係を示す図である。
【図１０】本実施形態に係る最適化処理部が行う最適化処理の流れを示すフローチャートである。
【図１１】本実施形態に係る最適化処理後における、オーバーレイ・ツリートポロジに基づく経路と、ルータ網の経路との対応関係を示す図である。
【図１２】従来例における、オーバーレイネットワークにおいて構築したツリートポロジにおけるルーチングと、それに対応するルータ網におけるルーチングを説明するための図である。
【発明を実施するための形態】
【００３０】
次に、発明を実施するための形態（以下、「実施形態」という）について、適宜図面を参照しながら詳細に説明する。まず、本実施形態のネットワーク設計装置１０が設計するネットワークの概要を、図１を用いて説明する。図１は、本実施形態に係るネットワーク設計装置１０を含むネットワークシステム７を例示した図である。
【００３１】
ネットワークシステム７は、複数のノード（ルータ装置）３がリンク４により接続されるルータ網（データネットワーク）２と、そのルータ網２を構成するノード３の中から選択されたノード３に対応付けて、ネットワーク設計装置１０により設計されるオーバーレイネットワーク１を含んで構成される。オーバーレイネットワーク１は、ツリートポロジで構築され、ルータ網２の上位のレイヤに仮想的に設けられたネットワークである。なお、このオーバーレイネットワーク１のツリートポロジにおけるノードをオーバーレイノード３０と呼ぶ。また、オーバーレイネットワーク１おいて構築されるツリートポロジを、オーバーレイ・ツリートポロジと呼ぶ。
【００３２】
ネットワーク設計装置１０は、このオーバーレイ・ツリートポロジを設計する装置であり、下記のような処理を行う。まず、ネットワーク設計装置１０は、所定のトラヒック量を超えたノード３をオーバーレイ・ツリートポロジに参加させるオーバーレイ参加ノードとして選択する。そして、オーバーレイ参加ノードの中から、トラヒック量の多さを基にルートノードを決定する。そして、ネットワーク設計装置１０は、図１に示すようにノード３Ａからノード３Ｃへのデータ転送の経路が、ノード３Ａ→３Ｄ→３Ｂ→３Ｄ→３Ｃのようにノード３Ｄを複数回経由するものである場合、ノード３Ａ→３Ｄ→３Ｃの経路となるような最適化処理を行う。
【００３３】
この最適化処理は、オーバーレイ・ツリートポロジ上に論理ノード３５を生成することにより行う。具体的には、ネットワーク設計装置１０は、まずルータ網２において複数回経由するノード３Ｄと、そのノード３Ｄから送信されるデータの宛先となるノード３Ｃとを抽出する。そして、抽出したノード３Ｃに対応する論理ノード３５Ｃをオーバーレイ・ツリートポロジにおいて仮想的に生成する。この生成された論理ノード３５Ｃは、複数回経由するノード３Ｄとデータの宛先であるノード３Ｃとを接続する経路情報を記憶している。よって、転送元となるオーバーレイノード３０Ａから、生成した論理ノード３５Ｃまでの経路をオーバーレイ・ツリートポロジ上で接続すると、ルータ網２上においては、ノード３Ａ→３Ｄ→３Ｃの経路でデータ通信を行うことができる。
【００３４】
なお、本実施形態においては、データネットワークとしてのルータ網２とその上位のレイヤに構築されるオーバーレイ・ツリートポロジを例示して説明するが、その他にも、光網とルータ網といった上位・下位の関係を持つネットワークを想定することができる。また、これらのネットワークにおいては、既にノード間の通信到達性は確保されているものとする。
【００３５】
図２は、本実施形態に係るネットワーク設計装置１０の構成例を示す機能ブロック図である。図２に示すように、ネットワーク設計装置１０は、処理部１００と、通信部２００と、記憶部３００と、メモリ部４００と、入出力部５００とを含んで構成される（適宜図１参照）。なお、この処理部１００の機能は、例えば、記憶部３００に記憶されたプログラムをメモリ部４００に展開し実行することで実現される。
【００３６】
処理部１００は、ネットワーク設計処理の全般を司り、ネットワーク情報収集部１１０と、オーバーレイネットワーク設計部１２０とを含んで構成される。ネットワーク情報収集部１１０は、通信部２００を介して、ルータ網２における各ノード３と各リンク４の接続関係を示すトポロジ情報や、ルータ網２に流れるトラヒック量に関する情報を取得し、記憶部３００に記憶する。なお、このネットワーク情報収集部１１０の機能は、ネットワーク設計装置１０とは別の独立したサーバで行うこともできる。
【００３７】
オーバーレイネットワーク設計部１２０は、ルータ網２の上位のレイヤに仮想のネットワークであるオーバーレイネットワーク１を設計する処理を行い、オーバーレイ参加ノード選択部１２１と、ルートノード決定部１２２と、マッピング処理部１２３と、最適化処理部１２４とを含んで構成される。
【００３８】
オーバーレイ参加ノード選択部１２１は、ネットワーク情報収集部１１０が収集したルータ網２のトポロジ情報とトラヒック量とを基づき、ルータ網２上に存在するノード３のうち、どのノード３をオーバーレイ・ツリートポロジに参加させるのかの選択を行う。なお、オーバーレイ参加ノード選択部１２１により選択されたルータ網３上のノード３を、オーバーレイ参加ノードと呼ぶ。
【００３９】
ルートノード決定部１２２は、オーバーレイ参加ノード選択部１２１により選択されたオーバーレイ参加ノードの中から、そのノード３のトラヒック量の多いものから優先的に、オーバーレイ・ツリートポロジにおいてルートノードとなるオーバーレイ参加ノードを決定する。
【００４０】
マッピング処理部１２３は、ルートノード決定部１２２により決定されたルートノードとなるオーバーレイ参加ノードから、他のオーバーレイ参加ノードまでの最短経路を探索する。そしてその探索した経路と、オーバーレイネットワーク１におけるルートノードからオーバーレイノード３０までの経路と、を対応付けるマッピング情報の生成を行う。そして、マッピング処理部１２３は、生成したマッピング情報を記憶部３００内のマッピング情報記憶部３３０に記憶させる。なお、このマッピング情報の生成については、後記する図７および図８において詳細に説明する。
【００４１】
最適化処理部１２４は、オーバーレイネットワーク１上の任意の２つのオーバーレイノード３０の組み合わせの１つを選択し、その２つのノード間のオーバーレイ・ルーチングとルータ網ルーチングをそれぞれ算出する。次に、最適化処理部１２４は、ルータ網２において複数回経由するノード３と、そのノード３から送信されるデータの宛先となるオーバーレイ参加ノードとを抽出する。そして、最適化処理部１２４は、その抽出したオーバーレイ参加ノードに対応する論理ノード３５を、オーバーレイ・ツリートポロジにおいて仮想的に生成する。この生成された論理ノード３５には、複数回経由するノード３とデータの宛先であるオーバーレイ参加ノードとを接続する経路情報が記憶されている。次に、最適化処理部１２４は、オーバーレイ・ツリートポロジにおいて、転送元のオーバーレイノード３０と論理ノード３５とを接続することにより、ルータ網２において転送元のノード３から宛先となるオーバーレイ参加ノードまでを同一ノードを複数回経由することなく接続する経路を生成する。なお、この最適化処理部１２４が行う一連の処理を、最適化処理と呼ぶ。
【００４２】
最適化処理部１２４は、この最適化処理を行うことで、ルータ網２上にオーバーレイ・ツリートポロジを設計し、設計したオーバーレイ・ツリートポロジに関する情報を記憶部３００内のオーバーレイ・ツリートポロジ情報記憶部３４０に記憶させる。なお、ルータ網２上の各ノード３は、このネットワーク設計装置１０が設計したオーバーレイ・ツリートポロジ情報を取得して、データ通信を行う。
【００４３】
次に、通信部２００は、パケット等の入出力を行うためのインタフェースから構成される。また、記憶部３００は、ハードディスク、フラッシュメモリ等の記憶装置から構成され、ネットワーク情報記憶部３１０と、アルゴリズム記憶部３２０と、マッピング情報記憶部３３０と、オーバーレイ・ツリートポロジ情報記憶部３４０とを含んで構成される。
【００４４】
ネットワーク情報記憶部３１０には、ネットワーク情報収集部１１０が通信部２００を介して収集した、ルータ網２のトポロジ情報やトラヒック量が記憶される。なお、ここでのトラヒック量は、ポート番号で識別可能なあるサービストラックや、パケットペイロードの中身から識別可能なあるサービスのトラヒックといった細かい粒度のトラヒック量を含むものとする。
【００４５】
また、アルゴリズム記憶部３２０には、オーバーレイ参加ノードの中から、ルートノード決定部１２２がオーバーレイ・ツリートポロジを設計するためのルートノードを決定するためのアルゴリズムや、最適化処理部１２４がオーバーレイネットワーク１上のオーバーレイノード３０間の経路について、最適化処理を行う必要があるかを判定するためのアルゴリズムが記憶される。マッピング情報記憶部３３０には、マッピング処理部１２３が生成した、オーバーレイネットワーク１上の経路とルータ網２上経路との対応関係を示すマッピング情報が記憶される（後記する図７、図８参照）。オーバーレイ・ツリートポロジ情報記憶部３４０には、最適化処理部１２４が生成した、オーバーレイ・ツリートポロジに関する情報が記憶される。
【００４６】
メモリ部４００は、ＲＡＭ（Random Access Memory）等の一次記憶装置からなり、オーバーレイ参加ノード選択部１２１が選択した、オーバーレイ参加ノードに関する情報や、ルートノード決定部１２２が一時的に記憶するルートノードに関する情報等を記憶する。
【００４７】
また、入出力部５００は、キーボードやタッチパネル等からなる入力手段と、ディスプレイ等からなる出力手段を含んで構成され、処理部１００が行う制御に関する指示を与えたり、処理結果を表示する。
【００４８】
次に、図１，図２を参照しつつ、図３に沿って、本実施形態に係るネットワーク設計装置１０がオーバーレイ・ツリートポロジを設計する全体の処理の流れを説明する。図３は、本実施形態に係るネットワーク設計装置１０の全体の処理の流れを示すフローチャートである。
【００４９】
まず、ネットワーク設計装置１０は、ルータ網２のトポロジ形状や現在の交流トラヒック情報を認識するための、ネットワーク情報取得処理を行う（ステップＳ３０１）。ネットワーク設計装置１０のネットワーク情報収集部１１０は、通信部２００を介して、ルータ網２のおける各ノード３と各リンク４の接続関係を示すトポロジ情報や、ルータ網２に流れるトラヒック量に関する情報を取得し、記憶部３００内のネットワーク情報記憶部３１０に記憶する。
【００５０】
次に、オーバーレイネットワーク設計部１２０内のオーバーレイ参加ノード選択部１２１は、ネットワーク情報収集部１１０が収集したルータ網２のトポロジ情報とトラヒック量とに基づき、ルータ網２上に存在する複数のノード３のうち、どのノード３をオーバーレイ・ツリートポロジに参加させるのか選択するオーバーレイ参加ノード選択処理を行う（ステップＳ３０２）。
【００５１】
オーバーレイ参加ノード選択部１２１は、記憶部３００内のネットワーク情報記憶部３１０から、各ノード３に関するトラヒック量を取得し、所定のトラヒック量を超えているノード３を、オーバーレイ・ツリートポロジに参加させるオーバーレイ参加ノードとして選択する。そしてオーバーレイ参加ノード選択部１２１は、その選択したノード３をメモリ部４００内に設けられたオーバーレイ参加ノードリストに記憶する。
【００５２】
図４は、本実施形態に係るオーバーレイ参加ノード選択部１２１により、オーバーレイ参加ノードが選択された例を示す図である。図４に示すように、ルータ網２上のノード３Ａ，３Ｂ，３Ｃ，３Ｅが、オーバーレイ参加ノード選択部１２１によりオーバーレイ参加ノードとして選択され、各オーバーレイ参加ノードに対応する仮想的なオーバーレイノード３０Ａ，３０Ｂ，３０Ｃ，３０Ｅが設定されることを示している。
【００５３】
図３に戻り、ステップＳ３０３において、ルートノード決定部１２２は、オーバーレイ参加ノード選択部１２１により選択されたオーバーレイ参加ノードの中から、トラヒック量の多さに基づき、オーバーレイ・ツリートポロジにおいてルートノードとなるオーバーレイ参加ノードを決定する（以下「ルートノード決定処理」と呼ぶ）。なお、詳細は後記する図５において説明する。
【００５４】
次に、マッピング処理部１２３は、オーバーレイネットワーク１におけるルートノードから各オーバーレイノード３０までの経路と、ルータ網２におけるルートノードから各オーバーレイ参加ノードまでの経路と、の対応関係を決定するマッピング処理を行う（ステップＳ３０４）。なお、詳細は後記する図７において説明する。
【００５５】
続いて、最適化処理部１２４は、オーバーレイネットワーク１上の任意の２つのオーバーレイノード３０の組み合わせの１つを選択し、その２つのノード間のオーバーレイ・ルーチングとルータ網ルーチングをそれぞれ算出する。次に、最適化処理部１２４は、算出した経路が、同一ノードを複数回経由する非効率な箇所がないかを検索する。そして、検索された非効率な経路をなくすために、最適化処理部１２４は、オーバーレイ・ツリートポロジ上に論理ノード３５を生成する最適化処理を行う（ステップＳ３０５）。なお、この最適化処理の詳細は、後記する図１０において説明する。ネットワーク設計装置１０は、この最適化処理を終えることでオーバーレイ・ツリートポロジの設計を完了する。同一ノードを複数回経由する箇所が検索されなかった場合は、最適化処理部１２４は、最適化処理を行わず、オーバーレイ・ツリートポロジに関する情報をオーバーレイ・ツリートポロジ情報記憶部３４０に記憶し処理を終える。
【００５６】
（ルートノード決定処理）
次に、図３のステップＳ３０３におけるルートノード決定処理について、詳細に説明する。図５は、本実施形態に係るルートノード決定部１２２が行うルートノード決定処理の流れを示すフローチャートである。
【００５７】
まず、ルートノード決定部１２２は、記憶部３００内のアルゴリズム記憶部３２０に記憶されたルートノードを決定するためのアルゴリズムの中から、ルートノード決定に用いるアルゴリズムを設定する（ステップＳ５０１）。この設定は、ネットワーク設計装置１０の入出力部５００を介して、予めネットワーク管理者により決定されたものを、ルートノード決定部１２２が設定するものとしてもよい。
【００５８】
このルートノードを決定するアルゴリズムには、例えば、以下のようなアルゴリズムを設定しておくものである。
【００５９】
（１）オーバーレイ参加ノードのうち、ネットワーク情報記憶部３１０に記憶されたネットワーク情報に基づき、発着トラヒック量が最も多いノードをルートノードとして決定する。このアルゴリズムは、単純なアルゴリズムであるため、ノード数が多い大規模なネットワークに適している。また、ルートノード決定部１２２が、発着トラヒック量のみを比較すればよいため、ネットワーク設計装置１０の計算負荷を低減することができる。
【００６０】
（２）オーバーレイ参加ノードのうち、発着トラヒック量が多い上位ｎ個（ｎは正の整数）のノードを抽出し、抽出したｎ個のノードそれぞれをルートノードとしてオーバーレイ・ツリートポロジ候補（ツリートポロジ候補）を構築する。その構築したオーバーレイ・ツリートポロジ候補毎に、トラヒック量とホップ数の積であるリソース利用量を算出し、各オーバーレイ・ツリートポロジ候補について比較を行い、最もリソース利用量が少なかったオーバーレイ・ツリートポロジ候補のルートノードを正式なルートノードとして決定する。このように、リソース利用量が最も少ないツリートポロジに決定することで、最も効率的なオーバーレイ・ツリートポロジを構築することが可能となる。また、このアルゴリズムは、（１）のアルゴリズムと比較し、抽出する候補数に応じて選択の精度が向上するという特徴をもつ。
【００６１】
（３）全てのオーバーレイ参加ノード毎に、そのオーバーレイ参加ノードがルートノードになる場合のオーバーレイ・ツリートポロジ候補を構築する。そして（２）のアルゴリズムと同様に、それぞれのルートノードにおけるリソース利用量を算出した上で比較を行い、最もリソース利用量が少なかったオーバーレイ・ツリートポロジ候補のルートノードを正式なルートノードとして決定する。このアルゴリズムでは、各オーバーレイ参加ノードがルートノードとなる全てのパターンを探索するため、ルートノードの決定において、最適な解が求められる。
【００６２】
ステップＳ５０１において、（１）〜（３）の中からルートノードを決定するアルゴリズムが設定されると、次に、ルートノード決定部１２２は、設定したアルゴリズムに基づいて、オーバーレイ参加ノードの中から、ルートノードの候補を抽出する（ステップＳ５０２）。そして、ステップＳ５０２で抽出されたルートノードの候補が１つだけか否かを判定する（ステップＳ５０３）。ルートノードの候補が１つだけの場合（（１）のアルゴリズムを設定した場合）は（ステップＳ５０３→Ｙｅｓ）、ステップＳ５０７へ進み、その候補をルートノードとして決定する。一方、ルートノードの候補が１つだけでない場合（（２）（３）のアルゴリズムを設定した場合）は（ステップＳ５０３→Ｎｏ）、次のステップＳ５０４へ進む。
【００６３】
ステップＳ５０４において、ルートノード決定部１２２は、抽出したルートノードの候補の中から１つを選択する（ステップＳ５０４）。続いて、ルートノード決定部１２２は、選択したルートノードの候補について、オーバーレイ・ツリートポロジ候補を構築する。そして、ルートノード決定部１２２は、トラヒック量とホップ数に関する情報からリソース利用量を算出し（ステップＳ５０５）、メモリ部４００に記憶する。
【００６４】
次に、ルートノード決定部１２２は、ルートノードの候補となるノードの全てを処理したか否かを判定する（ステップＳ５０６）。ここで、まだ処理していないルートノードの候補があれば、ステップＳ５０４に戻り処理を続ける。一方、すべての候補を処理していれば、ステップＳ５０７へ進む。
【００６５】
ステップＳ５０７において、ルートノード決定部１２２は、メモリ部４００に記憶された各ルートノードの候補のリソース利用量のうち、最もリソース利用量の少なかったオーバーレイ・ツリートポロジ候補のルートノードを、正式なルートノードとして決定する。
【００６６】
図６は、本実施形態に係るルートノード決定部１２２により、ルートノードが決定された例を示す図である。図６に示すように、オーバーレイ参加ノードのうち、ノード３Ｂがオーバーレイ・ツリートポロジにおけるルートノードとなるノード３として決定される。
【００６７】
このようにすることで、ルートノード決定部１２２は、予めネットワーク管理者が設定したルートノードを決定するためのアルゴリズムを用いて、オーバーレイ・ツリートポロジのルートノードを決定することができる。
【００６８】
（マッピング処理）
次に、図３のステップＳ３０４におけるマッピング処理について、詳細に説明する。図７は、本実施形態に係るマッピング処理部１２３が行うマッピング処理の流れを示すフローチャートである。また、図８は、本実施形態に係るマッピング処理部１２３により生成される、オーバーレイネットワーク１におけるオーバーレイリンク４０と、ルータ網２上の経路との対応関係を示すマッピング情報を説明するための図である。
【００６９】
図７において、まず、マッピング処理部１２３は、ルータ網２において、ルートノード以外のオーバーレイ参加ノードを１つ選択する（ステップＳ７０１）。図８においては、例えば、ルートノードとなるノード３Ｂ以外のオーバーレイ参加ノードであるノード３Ａを選択する。
【００７０】
次に、マッピング処理部１２３は、ルータ網２においてルートノードとなるオーバーレイ参加ノードと、ステップＳ７０１で選択したオーバーレイ参加ノードとの間の経路を取得する（ステップＳ７０２）。図８においては、ルートノードとなるノード３Ｂからノード３Ａまでの経路であるノード３Ｂ−ノード３Ｄ−ノード３Ａ（符号（１））が取得される。この経路は、マッピング処理部１２３によりノード３間の最短経路に従って構築される。
【００７１】
続いて、マッピング処理部１２３は、オーバーレイネットワーク１において、ルートノードとステップＳ７０１で選択したオーバーレイ参加ノードに対応するオーバーレイノード３０との間をオーバーレイリンク４０で接続する（ステップＳ７０３）。図８においては、ルートノードとなるオーバーレイノード３０Ｂとオーバーレイノード３０Ａ間がオーバーレイリンク（符号（１）′）で接続される。
【００７２】
なお、ルートノードとオーバーレイノード３０と間をオーバーレイリンク４０で接続していくと、第１のオーバーレイノード３０を経由して、第２のオーバーレイノード３０に到達するオーバーレイリンク４０が発生する場合がある。この場合は、第１のオーバーレイノード３０が中継ノードとなり、オーバーレイリンク４０が順次構築されていく。さらに、マッピング処理部１２３が処理を進めると、第１のオーバーレイノード３０が分岐地点になる場合もある。
【００７３】
そして、マッピング処理部１２３は、作成したオーバーレイリンク４０と、ルータ網２上の経路との対応関係を、記憶部３００内にマッピング情報３３０として記憶する（ステップＳ７０４）。図８においては、ルートノード（オーバーレイノード３０Ｂ）とオーバーレイノード３０Ａ間のオーバーレイリンク４０（符号（１）′）が、ルータ網２上の経路であるノード３Ｂ−ノード３Ｄ−ノード３Ａ（符号（１））に対応することを、マッピング情報３３０として記憶する。
【００７４】
次に、マッピング処理部１２３は、ルートノード以外の全てのオーバーレイ参加ノードを処理したか否かを判定する（ステップＳ７０５）。そして、まだ処理していないオーバーレイ参加ノードがある場合には（ステップＳ７０５→Ｎｏ）、ステップＳ７０１へ戻り処理を続ける。一方、ルートノード以外の全てのオーバーレイ参加ノードについて処理を終えた場合には（ステップＳ７０５→Ｙｅｓ）、マッピング処理を終える。
【００７５】
このようにすることで、オーバーレイネットワーク１上において、図８に示すようにオーバーレイノード３０Ｂをルートノートとする一時的なオーバーレイ・ツリートポロジが構築される。また、オーバーレイリンク４０と、ルータ網２上の経路との対応関係を、マッピング情報として生成することができる。
【００７６】
（最適化処理）
次に、図３のステップＳ３０５における最適化処理について、詳細に説明する。図９は、本実施形態に係る最適化処理を行う前における、一時的なオーバーレイ・ツリートポロジに基づく経路と、ルータ網２の経路との対応関係を示す図である。図９に示すように、オーバーレイ・ツリートポロジにおいて、オーバーレイノード３０Ａからオーバーレイノード３０Ｃまでの通信は、仮想的にオーバーレイノード３０Ａ→３０Ｂ→３０Ｃで行われる。しかしこの経路は、ルータ網２上では、ノード３Ａ→３Ｄ→３Ｂ→３Ｄ→３Ｃとなっており、ノード３Ｄを複数回経由する非効率な通信が行われていることになる。従って、このような同一ノードを複数回経由する経路をなくすために、最適化処理部１２４は、以下に示す最適化処理を行う。
【００７７】
図１０は、本実施形態に係る最適化処理部１２４が行う最適化処理の流れを示すフローチャートである。
まず、最適化処理部１２４は、最適化を行う箇所を特定するため、アルゴリズム記憶部３２０に記憶された以下に示す最適化条件の中から、最適化処理に用いるアルゴリズムを設定する（ステップＳ１００１）。
【００７８】
（１）オーバーレイ・ルーチングを用いることで、ルータ網２のルーチングと比較し、ホップ数がＸ倍以上となった箇所（ルータ網２のホップ数で換算）を、最適化を行う必要がある箇所とする。例えば、ルータ網２では３ホップで通信可能であったが、オーバーレイネットワーク１では、ルータ網２におけるホップ数に換算して９ホップであるような場合において、ホップ数が３倍以上であれば最適化処理の対象とする。このようにすることで、ノード数が多い大規模なネットワークにおいて、複数回経由するノード３の中から、論理ノード３５を生成するノード３を絞り込むことができ、ネットワーク設計装置１０の計算負荷を低減することができる。
【００７９】
（２）オーバーレイ・ルーチングを用いることで、ルータ網２のルーチングと比較し、ホップ数がＸ倍以上となった箇所（ルータ網２のホップ数で換算）であり、かつ、ルータ網２において該当の２地点間がルータ網２では本来はＹホップ（Ｙは正の整数）で接続可能である箇所を、最適化を行う必要がある箇所とする。例えばＹホップを「１ホップ」に設定することで、ノード数が多い大規模なネットワークにおいて、さらに論理ノード３５を生成するノード３を絞り込むことができる。そして、ネットワーク設計装置１０の計算負荷をさらに低減することができる。
【００８０】
（３）全てのオーバーレイノード３０間のうち、オーバーレイネットワーク１とルータ網２においてノード間を流れるトラヒック量とホップ数の積（リソース利用量）の差が大きいもの上位ｍ本（ｍは正の整数）を、最適化を行う必要がある箇所とする。このようにすることで、ホップ数だけでなくトラヒック量も考慮して論理ノードを生成するノード３を決定することができる。例えば、ホップ数が多くても、トラヒック量が少ない経路は、元々のリンクの使用帯域が少なく、複数回経由する経路について論理ノード３５を生成することで最適化処理を行ったとしても、全体のリソース利用効率を高める効果は低くなる。従って、このアルゴリズムによれば、ホップ数が比較的少なくてもトラヒック量が多い経路について論理ノード３５を生成する処理を行うことによりリソース利用効率を高めることができる。
【００８１】
なお、（１）〜（３）の最適化処理のアルゴリズムの設定は、ネットワーク設計装置１０の入出力部５００を介して、予めネットワーク管理者により決定されたものを、最適化処理部１２４が設定するものとしてもよい。
【００８２】
次に、最適化処理部１２４は、オーバーレイネットワーク１上の任意の２つのオーバーレイノード３０の組み合わせの１つを選択し、その２つのオーバーレイノード３０間のオーバーレイ・ルーチングとルータ網ルーチングをそれぞれ算出する（ステップＳ１００２）。この算出処理により、最適化処理部１２４は、オーバーレイ・ルーチングの経路におけるホップ数（ルータ網２のホップ数で換算）およびルータ網ルーチングの経路におけるホップ数、並びにトラヒック量を取得し、メモリ部４００に記憶する。
【００８３】
続いて、最適化処理部１２４は、算出したホップ数やトラヒック量に関する情報を基に、ステップＳ１００１で設定した最適化条件を満たしているか否かを判定する（ステップＳ１００３）。
【００８４】
ここで、最適化条件を満たしておらず、最適化処理を行う必要がなければ（ステップＳ１００３→Ｎｏ）、次のステップＳ１００５へ進む。一方、最適化条件を満たしている場合には（ステップＳ１００３→Ｙｅｓ）、次のステップＳ１００４へ進む。
【００８５】
ステップＳ１００４において、最適化処理部１２４は、最適化の対象となる同一ノードを複数回経由する箇所において、論理ノード３５の生成を行う（ステップＳ１００４）。
【００８６】
具体的には、最適化処理部１２４は、ステップＳ１００２で算出したオーバーレイ・ルーチングにおいて、ルータ網２において複数回経由するノード３と、そのノード３から送信されるデータの宛先となるオーバーレイ参加ノードとを抽出する。そして、その抽出したオーバーレイ参加ノードに対応する論理ノード３５を、オーバーレイ・ツリートポロジにおいて仮想的に生成する。この生成された論理ノード３５は、複数回経由するノード３とデータの宛先であるオーバーレイ参加ノードとを接続する経路情報を記憶している。従って、転送元となるオーバーレイノード３０から、生成した論理ノード３５までの経路をオーバーレイ・ツリートポロジ上で接続することにより、ルータ網２上において、転送元となるノード３から、データの宛先となるオーバーレイ参加ノードまでを複数回同一ノードを経由させずに接続することができる。
【００８７】
図１１は、本実施形態に係る最適化処理後における、オーバーレイ・ツリートポロジに基づく経路と、ルータ網の経路との対応関係を示す図である。図９に示したように、最適化処理部１２４による最適化処理前は、ルータ網２上のノード３Ｃは、オーバーレイノード３０Ｃとしてオーバーレイ・ツリートポロジに参加し、オーバーレイノード３０Ａとオーバーレイノード３０Ｃとの間の通信を行っている。ここで、最適化処理部１２４によって、オーバーレイノード３０Ａ−３０Ｃ間の経路が、ルータ網２において同一ノードを複数回経由する箇所があると判定された場合、最適化処理部１２４は、ルータ網２において複数回経由するノード３Ｄと、そのノード３Ｄから送信されるデータの宛先となるノード３Ｃとを抽出する。そして、最適化処理部１２４は、図１１に示すように、その抽出したノード３Ｃに対応する論理ノード３５Ｃをオーバーレイネットワーク１上に生成する。生成された論理ノード３５Ｃには、複数回経由するノード３Ｄとノード３Ｃとを接続する経路情報が記憶されている。そして、最適化処理部１２４は、オーバーレイ・ツリートポロジにおいてオーバーレイノード３０Ａと論理ノード３５Ｃとを接続する。論理ノード３５Ｃには、ノード３Ｄとノード３Ｃとを接続する経路情報が記憶されているため、オーバーレイノード３０Ａから論理ノード３５Ｃまでのデータ通信は、ルータ網２上ではノード３Ａ→３Ｄ→３Ｃの経路を用いて実現することが可能となる。つまり、論理ノード３５Ｃを設けることで、ノード３Ｄ−ノード３Ｂ間を複数回経由する非効率な経路をなくすことができる。
【００８８】
このデータ通信は、ノード３Ａが、オーバーレイネットワーク１上のオーバーレイノード３０Ｃと論理ノード３５Ｃとが、ルータ網２上のノード３Ｃと同一ノードであるという情報を保持すれば、実現することができる。また、ノード３Ａに限らず、その他のノード３もオーバーレイノード３０Ｃと論理ノード３５Ｃとがルータ網２において同一のノード３Ｃであるという情報を保持すれば、オーバーレイノード３０Ｃや論理ノード３５Ｃのように複数ある送信先のうち、送信先までのより短い経路を選択することが可能となる。
【００８９】
図１０に戻り、ステップＳ１００５において、最適化処理部１２４は、２つのオーバーレイノード３０の組み合わせの全てについて処理したか否かを判定する（ステップＳ１００５）。ここで、まだ、処理していない組み合わせがある場合には（ステップＳ１００５→Ｎｏ）、ステップＳ１００２へ戻り処理を続ける。一方、全ての組み合わせについて処理した場合は（ステップＳ１００５→Ｙｅｓ）、最適化処理を終える。この最適化処理の結果、ネットワーク設計装置１０は、ルータ網２上において同一ノードを複数回経由する非効率なデータ通信の発生を低減させるオーバーレイ・ツリートポロジをオーバーレイネットワーク１上に設計することができる。
【００９０】
このようにすることで、本実施形態に係るネットワーク設計装置、およびネットワーク設計方法によれば、従来のオーバーレイ・ツリートポロジによるデータ通信と比べ、リソースの利用効率を高めたデータ通信が可能となる。
【００９１】
また、本実施形態に係るネットワーク設計装置１０は、前記したような処理を実行させるプログラムによって実現することができ、そのプログラムを各ノード３に提供することにより、本実施形態に係るオーバーレイ・ツリートポロジの設計処理を行わせることも可能である。
【符号の説明】
【００９２】
１      オーバーレイネットワーク
２      ルータ網（データネットワーク）
３      ノード
４      リンク
５      クライアント
６      サーバ
７      ネットワークシステム
１０    ネットワーク設計装置
３０    オーバーレイノード
３５    論理ノード
１００  処理部
１１０  ネットワーク情報収集部
１２０  オーバーレイネットワーク設計部
１２１  オーバーレイ参加ノード選択部
１２２  ルートノード決定部
１２３  マッピング処理部
１２４  最適化処理部
２００  通信部
３００  記憶部
３１０  ネットワーク情報記憶部
３２０  アルゴリズム記憶部
３３０  マッピング情報記憶部
３４０  オーバーレイ・ツリートポロジ情報記憶部
４００  メモリ部
５００  入出力部
【図１】
2010193224.tif 000003
【図２】
2010193224.tif 000004
【図３】
2010193224.tif 000005
【図４】
2010193224.tif 000006
【図５】
2010193224.tif 000007
【図６】
2010193224.tif 000008
【図７】
2010193224.tif 000009
【図８】
2010193224.tif 000010
【図９】
2010193224.tif 000011
【図１０】
2010193224.tif 000012
【図１１】
2010193224.tif 000013
【図１２】
2010193224.tif 000014