(57)【要約】【課題】方向性を考慮しかつ任意に選択したノードまでの最適経路探索を可能にし、さらにノード間を接続するリンクが複数ある場合でも最短経路の探索を可能にする。【解決手段】サーバ１０に、複数のノード２１〜２８間の各経路に対応付けて当該経路の方向性を反映したコスト情報と各経路の帯域情報を予め記憶した経路コストデータベース１４を設ける。そして、ＣＰＵ１１の制御の下、マルチキャストツリーの作成要求により指定された起点ノードから複数の終点ノードまでの最短経路を、上記経路コストデータベース１４に記憶されたコスト情報及び帯域情報に基づいて順次段階的に探索することにより、マルチキャストツリーを作成する。【選択図】図２
2008211656.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードを通信リンクを介して相互に接続可能としたネットワークシステムで使用され、前記複数のノードのうち任意の起点ノードから複数の終点ノードまでの最短経路を表すマルチキャストツリーを作成する装置であって、
前記複数のノード間の各経路に対応付けて、当該経路の方向性を反映した基準コストを表す情報を記憶する経路情報記憶ユニットと、
前記複数のノードの中から選択された起点ノード及び複数の終点ノードを表す頂点ノード指定情報の入力を受け付ける入力インタフェースと、
前記入力インタフェースにより受け付けた頂点ノード指定情報により表される起点ノードを起点として複数のすべての終点ノードを経由する最短経路を、前記経路情報記憶ユニットに記憶された基準コストを表す情報に基づいて探索する制御ユニットと
を具備することを特徴とするマルチキャストツリー作成装置。
【請求項２】
前記制御ユニットの処理過程で生成される情報を格納する第１、第２及び第３の記憶部を有する集合記憶ユニットをさらに具備し、
前記制御ユニットは、
前記入力インタフェースにより受け付けた頂点ノード指定情報により表される起点ノードから各終点ノードまでのそれぞれの最短経路を、前記経路情報記憶ユニットに記憶された基準コストを表す情報に基づいて探索する第１の探索処理手段と、
前記第１の探索処理手段により探索された起点ノードから各終点ノードまでのそれぞれの最短経路と当該最短経路のコストを表す情報を、最短経路候補の集合として前記集合記憶ユニットの第１の記憶部に格納する手段と、
前記第１の記憶部に格納された最短経路候補の集合の中から未選択でかつコストが最小となる最短経路を選択し、この選択された最短経路を表す情報を決定された最短経路の集合として前記集合記憶ユニットの第２の記憶部に格納する手段と、
前記選択された最短経路の終点ノードを表す情報を決定された終点ノードの集合として前記集合記憶ユニットの第３の記憶部に格納する手段と、
前記第３の記憶部に前記頂点ノード指定情報により指定されたすべての終点ノードを表す情報が格納されたか否かを判定する判定手段と、
前記判定手段により、前記第３の記憶部に前記すべての終点ノードを表す情報が格納されたと判定されるまで、前記第３の記憶部に格納された終点ノードのうち起点として未選択の終点ノードを新たな起点ノードとして、前記第１の探索処理手段による最短経路の探索から前記判定手段による判定までの処理を繰り返し実行させる制御手段と
を備えることを特徴とする請求項１記載のマルチキャストツリー作成装置。
【請求項３】
前記制御ユニットは、
前記第１の記憶部に格納された最短経路候補の集合の中に、コストが最小となる最短経路と起点ノードが同じでかつ経路の途中に介在するノードまで同じ通信リンクを使用する再設定対象の最短経路候補が存在するか否かを判定する手段と、
前記再設定対象の最短経路候補が存在すると判定された場合に、当該最短経路候補の前記経路途中に介在するノードから終点ノードまでの最短経路を前記経路情報記憶ユニットに記憶された基準コストに基づいて探索し直し、この探索し直された最短経路を前記第１の記憶部に格納された再設定対象の最短経路候補に置き換える手段と
を、さらに備えることを特徴とする請求項２記載のマルチキャストツリー作成装置。
【請求項４】
前記経路情報記憶ユニットは、前記複数のノード間の各経路に対応付けて、当該経路の方向性を反映した基準コストを表す情報と、当該経路の伝送帯域を表す情報とを記憶し、
前記制御ユニットは、
前記第１の探索処理手段により探索された最短経路が予め要求された帯域を有しているか否かを、前記経路情報記憶ユニットに記憶された伝送帯域を表す情報に基づいて判定する手段と、
前記探索された最短経路が予め要求された帯域を有していないと判定された場合に、当該最短経路に代えて前記予め要求された帯域を有する他の経路を前記第１の記憶部に格納する手段と
を、さらに備えることを特徴とする請求項２記載のマルチキャストツリー作成装置。
【請求項５】
前記第２の記憶部に格納された最短経路の途中に他のノードが介在している場合に、当該経路途中に介在しているノードを起点として当該ノードから前記複数の終点ノードまでの最短経路を、前記経路情報記憶ユニットに記憶された基準コストを表す情報に基づいて探索する第２の探索処理手段と、
前記第２の探索処理手段により探索された、前記経路途中に介在しているノードから前記複数の終点ノードまでの最短経路を、前記第１の記憶部に追加して格納する手段と
を、さらに備えることを特徴とする請求項２記載のマルチキャストツリー作成装置。
【請求項６】
複数のノードを通信リンクを介して相互に接続可能としたネットワークシステムの、前記複数のノードのうち任意の起点ノードから複数の終点ノードまでの最短経路を表すマルチキャストツリーを作成する方法であって、
前記複数のノードの中から選択された起点ノード及び複数の終点ノードを表す頂点ノード指定情報の入力を受け付ける過程と、
前記受け付けた頂点ノード指定情報により表される起点ノードから各終点ノードまでのそれぞれの最短経路を、経路情報記憶ユニットに前記複数のノード間の各経路に対応付けて記憶された当該経路の方向性を反映した基準コストを表す情報に基づいて探索する第１の探索処理過程と、
前記探索された起点ノードから各終点ノードまでのそれぞれの最短経路と当該最短経路のコストを表す情報を、最短経路候補の集合として集合記憶ユニットの第１の記憶部に格納する過程と、
前記第１の記憶部に格納された最短経路候補の集合の中から未選択でかつコストが最小となる最短経路を選択し、この選択された最短経路を表す情報を決定された最短経路の集合として前記集合記憶ユニットの第２の記憶部に格納する過程と、
前記選択された最短経路の終点ノードを表す情報を決定された終点ノードの集合として前記集合記憶ユニットの第３の記憶部に格納する過程と、
前記第３の記憶部に前記頂点ノード指定情報により指定されたすべての終点ノードを表す情報が格納されたか否かを判定する判定過程と、
前記第３の記憶部に前記すべての終点ノードを表す情報が格納されたと判定されるまで、前記第３の記憶部に格納された終点ノードのうち起点として未選択の終点ノードを新たな起点ノードとして、前記第１の探索処理過程から前記判定過程までの処理を繰り返し実行する過程と
を備えることを特徴とするマルチキャストツリー作成方法。
【請求項７】
前記第１の記憶部に格納された最短経路候補の集合の中に、コストが最小となる最短経路と起点ノードが同じでかつ経路の途中に介在するノードまで同じ通信リンクを共用する再設定対象の最短経路候補が存在するか否かを判定する過程と、
前記再設定対象の最短経路候補が存在すると判定された場合に、当該最短経路候補の前記経路途中に介在するノードから終点ノードまでの最短経路を前記経路情報記憶ユニットに記憶された基準コストに基づいて探索し直し、この探索し直された最短経路を前記第１の記憶部に格納された再設定対象の最短経路候補に置き換える過程と
を、さらに備えることを特徴とする請求項６記載のマルチキャストツリー作成方法。
【請求項８】
前記経路情報記憶ユニットが、前記複数のノード間の各経路に対応付けて、当該経路の方向性を反映した基準コストを表す情報と、当該経路の伝送帯域を表す情報とを記憶している場合に、
前記第１の探索処理過程により探索された最短経路が予め要求された帯域を有しているか否かを、前記経路情報記憶ユニットに記憶された伝送帯域を表す情報に基づいて判定する過程と、
前記探索された最短経路が予め要求された帯域を有していないと判定された場合に、当該最短経路に代えて前記予め要求された帯域を有する他の経路を前記第１の記憶部に格納する過程と
を、さらに備えることを特徴とする請求項６記載のマルチキャストツリー作成方法。
【請求項９】
前記第２の記憶部に格納された最短経路の途中に他のノードが介在している場合に、当該経路途中に介在しているノードを起点として当該ノードから前記複数の終点ノードまでの最短経路を、前記経路情報記憶ユニットに記憶された基準コストを表す情報に基づいて探索する第２の探索処理過程と、
前記第２の探索処理過程により探索された、前記経路途中に介在しているノードから前記複数の終点ノードまでの最短経路を、前記第１の記憶部に追加して格納する過程と
を、さらに備えることを特徴とする請求項６記載のマルチキャストツリー作成方法。
【請求項１０】
複数のノードを通信リンクを介して相互に接続可能としたネットワークシステムで使用されるコンピュータ装置において、前記複数のノードのうち任意の起点ノードから複数の終点ノードまでの最短経路を表すマルチキャストツリーを作成するために使用されるプログラムであって、
前記複数のノードの中から選択された起点ノード及び複数の終点ノードを表す頂点ノード指定情報を入力インタフェースを介して受け付ける処理と、
前記受け付けた頂点ノード指定情報により表される起点ノードから各終点ノードまでのそれぞれの最短経路を、経路情報記憶ユニットに前記複数のノード間の各経路に対応付けて記憶された当該経路の方向性を反映した基準コストを表す情報に基づいて探索する第１の探索処理と、
前記探索された起点ノードから各終点ノードまでのそれぞれの最短経路と当該最短経路のコストを表す情報を、最短経路候補の集合として第１の記憶部に格納する処理と、
前記第１の記憶部に格納された最短経路候補の集合の中から未選択でかつコストが最小となる最短経路を選択し、この選択された最短経路を表す情報を決定された最短経路の集合として第２の記憶部に格納する処理と、
前記選択された最短経路の終点ノードを表す情報を決定された終点ノードの集合として第３の記憶部に格納する処理と、
前記第３の記憶部に前記頂点ノード指定情報により指定されたすべての終点ノードを表す情報が格納されたか否かを判定する処理と、
前記第３の記憶部に前記すべての終点ノードを表す情報が格納されたと判定されるまで、前記第３の記憶部に格納された終点ノードのうち起点として未選択の終点ノードを新たな起点ノードとして前記第１の探索処理から前記判定処理までの処理を繰り返し実行させる処理と
を、前記コンピュータ装置に実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えばＩＰ（Internet Protocol）ネットワークシステムのように、複数のノードを通信リンクを介して相互に接続可能としたネットワークシステムにおいて、上記複数のノードのうち任意の起点ノードから複数の終点ノードまでの最短経路を表すマルチキャストツリーを作成するための装置、方法及びプログラムに関する。
【背景技術】
【０００２】
近年、インターネット等のＩＰネットワークの普及に伴い、ＩＰネットワークを利用したＩＰＴＶ（Internet Protocol Television）等の放送型サービスへの要求が高まっている。この種のサービスを実現するには、ＩＰストリームをＭＰＬＳ（Multi protocol Label Switching）により明示的に設定した通信路で伝送することにより、伝送帯域を確保して品質（ＱｏＳ；Quality of Service）を保証する必要がある。この要求を満足するには、放送局のノードから視聴者が使用するノードまで最短経路を表すマルチキャストツリーを作成する必要がある。
【０００３】
最短経路を探索するアルゴリズムとしては、クラスカルのアルゴリズムやプリムのアルゴリズムが知られている。これらのアルゴリズムはいずれもノード間を接続するリンクには方向性がなく、ネットワーク内の一つのノードから他のすべてのノードまでのコストの最小木を求めるアルゴリズムである。
【０００４】
例えば、プリムのアルゴリズムでは次のような最短経路探索が行われる。すなわち、いま仮に図１３に示すようにノード１０１〜１０８を通信リンクにより相互に接続したネットワークにおいて、ノード１０１を起点ノードＳとして他の各ノード１０２〜１０８（Ｄ１〜Ｄ７）までの最短経路を求めるものとする。なお、図中の各通信リンクに付された数字はリンクコストを示している。リンクコストは、２つのノード間を接続するリンクの距離や情報を伝送するときに必要な料金を反映したものである。
【０００５】
起点ノードＳには３本のリンクを介してそれぞれノードＤ３，Ｄ１，Ｄ５が接続されている。このため、先ず図１４に示すようにこれらの３つのノードＤ３，Ｄ１，Ｄ５までの経路（Ｓ−Ｄ３）、（Ｓ−Ｄ１）、（Ｓ−Ｄ５）と、そのリンクコスト“２”，“４”，“４”が集合ＰＱに格納される。そして、この集合ＰＱに格納された３つの経路（Ｓ−Ｄ３）、（Ｓ−Ｄ１）、（Ｓ−Ｄ５）の中からリンクコストの最も小さい経路（Ｓ−Ｄ３）が選択され、この選択された経路（Ｓ−Ｄ３）が集合Ｒに、また当該経路（Ｓ−Ｄ３）の終点ノードＤ３が集合Ｆに格納される。なお、集合Ｆには起点ノードＳが予め格納されている。また、上記選択されて集合Ｒに格納された経路（Ｓ−Ｄ３）は集合ＰＱから削除される。
【０００６】
次に、上記集合Ｆに格納された終点ノードＤ３を次の起点Ｖｓとして設定し、このノードＤ３を起点として図１５に示すように隣接するノードＤ１，Ｄ６までの経路（Ｄ３−Ｄ１）、（Ｄ３−Ｄ６）とそのリンクコスト“３”，“５”を集合ＰＱに追加格納する。そして、この集合ＰＱに格納された経路の中からリンクコストが最も小さい経路（Ｄ３−Ｄ１）が選択され、この選択された経路（Ｄ３−Ｄ１）が集合Ｒに、また当該経路（Ｄ３−Ｄ１）の終点ノードＤ１が集合Ｆに追加される。以下同様に、上記集合Ｆに新たな終点ノードが格納されるごとに、この新たなノードを起点Ｖｓとして次の経路探索が繰り返し行われる。そして、集合Ｆにすべてのノードが格納されると、探索処理は終了となる。  
以上述べたプリムのアルゴリズムは、例えば非特許文献１に詳しく述べられている。
【０００７】
【非特許文献１】「データ構造とアルゴリズム第１２回：グラフのアルゴリズム」  http://www.mm.ics.saitama-u.ac.jp/~ohsawa/Lect/dstr/12.pdf
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところが、上記プリムのアルゴリズムでは次のような解決すべき課題があった。すなわち、ＩＰＴＶ等のマルチキャストサービスでは、放送局のノードから視聴者のノードへ向かう経路の帯域と、視聴者のノードから放送局のノードに向かう経路の帯域とで使われ方が大きく異なる。すなわち、経路の方向性が重要な要素となる。これに対しプリムのアルゴリズムは、経路の方向性を何ら考慮していないため、マルチキャストサービスに適した経路探索を行うことが困難である。
【０００９】
また、マルチキャストサービスではネットワークの多数のノードの中から任意に指定されたノードが終点ノードとして指定される。しかしプリムのアルゴリズムでは、ネットワーク内の起点を除いたすべてのノードまでの最小木が無条件に作成されるため、任意に指定された終点ノードまでの最適化されたツリーを作成することができない。
【００１０】
さらに、マルチキャストサービスにおいてドメイン間で最小木を決める場合には、１ドメイン内のエッジルータの数により複数のリンクを想定しなければならない場合がある。しかし、プリムのアルゴリズムではノード間に１本のリンクがあるものとして探索処理が行われるため、複数のリンクを考慮した最小木探索が行えない。
【００１１】
この発明は上記事情に着目してなされたもので、その目的とするところは、方向性を考慮しかつ任意に選択したノードまでの最適経路探索を可能とし、さらにノード間を接続するリンクが複数ある場合でも探索が可能なマルチキャストツリーを作成する装置、方法及びプログラムを提供することにある。
【課題を解決するための手段】
【００１２】
上記目的を達成するためにこの発明の一つの観点は、複数のノードを通信リンクを介して相互に接続可能としたネットワークシステムで使用され、上記複数のノードのうち任意の起点ノードから複数の終点ノードまでの最短経路を表すマルチキャストツリーを作成する装置にあって、上記複数のノード間の各経路に対応付けて当該経路の方向性を反映した基準コストを表す情報を記憶する経路情報記憶ユニットと、上記複数のノードの中から選択された起点ノード及び複数の終点ノードを表す頂点ノード指定情報の入力を受け付ける入力インタフェースと、制御ユニットを備えている。そして、制御ユニットにより、上記入力インタフェースにより受け付けた頂点ノード指定情報により表される起点ノードを起点として複数のすべての終点ノードを経由する最短経路を、上記経路情報記憶ユニットに記憶された基準コストを表す情報に基づいて探索するように構成したものである。
【００１３】
具体的には、上記制御ユニットにおいて、先ず受け付けた頂点ノード指定情報により表される起点ノードから各終点ノードまでのそれぞれの最短経路を経路情報記憶ユニットに記憶された基準コストを表す情報に基づいて探索して、この探索された最短経路と当該最短経路のコストを表す情報を最短経路候補の集合として集合記憶ユニットの第１の記憶部に格納する。次に、上記第１の記憶部に格納された最短経路候補の集合の中から未選択でかつコストが最小となる最短経路を選択して、この選択された最短経路を表す情報を決定された最短経路の集合として上記集合記憶ユニットの第２の記憶部に格納し、さらに上記選択された最短経路の終点ノードを表す情報を決定された終点ノードの集合として上記集合記憶ユニットの第３の記憶部に格納する。そして、上記第３の記憶部に上記頂点ノード指定情報により指定されたすべての終点ノードを表す情報が格納されるまで、上記第３の記憶部に格納された終点ノードのうち起点として未選択の終点ノードを新たな起点ノードとして、以上の探索処理を繰り返し実行する。
【００１４】
したがって、方向性を反映した基準コストに基づいてマルチキャストの最小木が求められる。このため、ＩＰＴＶ等のマルチキャストサービスのように、放送局のノードから視聴者のノードへ向かう経路の帯域と、視聴者のノードから放送局のノードに向かう経路の帯域とで使われ方が大きく異なる場合でも、経路の方向性を考慮した経路探索が可能となる。
【００１５】
また、頂点ノード指定情報の入力を受け付け、この頂点ノード指定情報により指定された起点ノードから複数の終点ノードまでの部分集合に所属するノード間の最短経路が探索される。このため、ネットワーク中の多数のノードの中から任意に終点ノードが指定されるマルチキャストサービスに対し、最適化されたマルチキャストツリーを作成することができる。しかも、指定された終点ノードを対象とした経路探索が行われるので、プリムのアルゴリズムのように無条件にネットワーク内のすべてのノードを対象とした経路探索を行う場合に比べて、計算量を削減してマルチキャストツリーの作成に要する時間を短縮することができる。
【００１６】
さらに、ノード間を接続するリンクではなく経路ごとに設定した基準コストをもとに最短経路が探索される。このため、例えば１ドメイン内のエッジルータの数によりノード間に複数のリンクを想定しなければならない場合でも、これら複数のリンクを考慮した経路探索が可能となる。
【００１７】
またこの発明は、さらに次のような各種技術思想を備えることも特徴とする。  
第１の技術思想は、制御ユニットにおいて、上記第１の記憶部に格納された最短経路候補の集合の中にコストが最小となる最短経路と起点ノードが同じでかつ経路の途中に介在するノードまで同じ通信リンクを共用する再設定対象の最短経路候補が存在するか否かを判定する。そして、再設定対象の最短経路候補が存在すると判定された場合に、当該最短経路候補の前記経路途中に介在するノードから終点ノードまでの最短経路を上記経路情報記憶ユニットに記憶された基準コストに基づいて探索し直し、この探索し直された最短経路を上記第１の記憶部に格納された再設定対象の最短経路候補に置き換えるものである。
したがって、探索経路の重複を排除してより正確なマルチキャストツリーを作成することができる。
【００１８】
第２の技術思想は、経路情報記憶ユニットに、上記複数のノード間の各経路に対応付けて、当該経路の伝送帯域を表す情報をさらに記憶しておき、制御ユニットにより、上記第１の探索処理により探索された最短経路が予め要求された帯域を有しているか否かを上記経路情報記憶ユニットに記憶された伝送帯域を表す情報に基づいて判定する。そして、上記探索された最短経路が予め要求された帯域を有していないと判定された場合に、当該最短経路に代えて上記予め要求された帯域を有する他の経路を上記第１の記憶部に格納するものである。  
したがって、マルチキャストツリーの必要帯域を可能な限り確保することが可能となる。
【００１９】
第３の技術思想は、第２の記憶部に格納された最短経路の途中に他のノードが介在している場合に、当該経路途中に介在しているノードを起点として当該ノードから上記複数の終点ノードまでの最短経路を、上記経路情報記憶ユニットに記憶された基準コストを表す情報に基づいて探索する。そして、この探索された、上記経路途中に介在している中間ノードから上記複数の終点ノードまでの最短経路を上記第１の記憶部に追加して格納するものである。  
したがって、第１の探索処理により探索された最短経路の途中に中間ノードが介在している場合には、この中間ノードを起点として終点ノードまでの最短経路が追加探索される。このため、最短経路の終点ノードを起点とする最短経路探索のみを行う場合に比べ、より高精細な経路探索が可能となる。
【発明の効果】
【００２０】
すなわち、この発明によれば、方向性を考慮しかつ任意に選択したノードまでの最適経路探索が可能となり、さらにノード間を接続するリンクが複数ある場合でも探索が可能なマルチキャストツリーを作成する装置、方法及びプログラムを提供することができる。
【発明を実施するための最良の形態】
【００２１】
（第１の実施形態）  
図１は、この発明の第１の実施形態に係わるマルチキャストツリー作成方法を説明するためのネットワーク構成を示す図である。このネットワークは、複数のノード（ここでは８個の場合を例示）２１〜２８を通信リンクを介して任意に接続したもので、これによりドメイン３０を構成している。上記ノード２１〜２８はいずれも、例えばルータ、スイッチ又はゲートウエイ等のネットワーク接続機器により構成される。
【００２２】
ところで、上記ノード２１〜２８のうちの任意のノード２１には通信リンクを介してサーバ１０が接続される。このサーバ１０はマルチキャストツリー作成装置としての機能を備えるもので、次のように構成される。図２はその構成を示すブロック図である。  
すなわち、サーバ１０は中央処理ユニット（ＣＰＵ：Central Processing Unit）１１を備え、このＣＰＵ１１にはバス１２を介してプログラムメモリ１３と、経路コストデータベース１４と、データメモリ１５と、通信インタフェース１６がそれぞれ接続されている。
【００２３】
通信インタフェース１６は、ＣＰＵ１１の制御の下でノード２１との間でデータの送受信を行う。経路コストデータベース１４には、上記ネットワークを構成する各ノード２１〜２８間のすべての経路に対応付けて、そのコストを表す情報と、帯域を表す情報が予め記憶されている。このうちコストを表す情報は、経路の距離や料金等の既存の要素に加えて当該経路の方向性を反映したものである。また帯域を表す情報は、経路の伝送帯域、例えば単位時間当たりのデータ伝送速度を表す情報からなる。
【００２４】
データメモリ１５には、最短経路候補集合ＰＱ記憶部１５１と、決定経路集合Ｒ記憶部１５２と、決定ノード集合Ｆ記憶部１５３と、終点Ｖｓ記憶部１５４が設けられている。このうち記憶部１５１〜１５３は、後述する最短経路探索処理の過程で得られる最短経路候補、決定経路及び決定ノードの各集合を保存するために使用される。また終点Ｖｓ記憶部１５４は、次の最短経路探索過程の起点となるノードの情報を記憶するために使用される。
【００２５】
プログラムメモリ１３には、この発明を実施するために必要なアプリケーション・プログラムとして、頂点ノード指定受付制御プログラム１３１と、最短経路探索制御プログラム１３２と、帯域判定再選択制御プログラム１３３と、起点再設定制御プログラム１３４がそれぞれ格納される。
【００２６】
頂点ノード指定受付制御プログラム１３１は、上記ネットワーク中の任意のノード２１からマルチキャストツリーの作成要求が送られた場合に、この作成要求を通信インタフェース１６に受信させ、受信された作成要求から頂点ノード、つまり起点ノードと複数の終点ノードの指定情報と、必要帯域の指定情報をそれぞれ抽出する処理を、上記ＣＰＵ１１に実行させる。
【００２７】
最短経路探索制御プログラム１３２は、上記抽出された起点ノードを起点として複数のすべての終点ノードを経由する最短経路を、上記経路コストデータベース１４に記憶されたコスト情報に基づいて探索する制御を上記ＣＰＵ１１に実行させる。  
具体的には、起点ノードから各終点ノードまでのそれぞれの最短経路を上記経路コストデータベース１４に記憶されたコスト情報をもとに探索して、この探索された最短経路の情報をそのコスト情報と共に最短経路候補の集合として上記最短経路候補集合ＰＱ記憶部１５１に格納するステップと、上記最短経路候補集合ＰＱ記憶部１５１に格納された最短経路候補の集合の中から未選択でかつコストが最小となる最短経路を選択して、この選択された最短経路の情報を上記決定経路集合Ｒ記憶部１５２に格納すると共に、上記選択された最短経路の終点ノードを表す情報を上記決定ノード集合Ｆ記憶部１５３に格納するステップと、上記頂点ノード指定情報により指定されたすべての終点ノードの情報が上記決定ノード集合Ｆ記憶部１５３に格納されたか否かを判定し、すべての終点ノードの情報が格納されたと判定されるまで、上記決定ノード集合Ｆ記憶部１５３に格納された終点ノードのうち起点として未選択の終点ノードを新たな起点ノードとして終点Ｖｓ記憶部１５４に設定して、上記最短経路の探索から上記判定までの処理を繰り返し実行させる。
【００２８】
帯域判定再選択制御プログラム１３３は、上記最短経路の探索処理により探索された各最短経路候補を上記最短経路候補集合ＰＱ記憶部１５１に格納する際に、これらの最短経路候補が上記マルチキャストツリーの作成要求により指定された必要帯域を満たすか否かを判定する。そして、必要帯域を満たさない最短経路候補が見付かった場合には、当該最短経路候補に代えて必要帯域を満たす他の最短経路を選択して上記最短経路候補集合ＰＱ記憶部１５１に格納する制御を、上記ＣＰＵ１１に実行させる。
【００２９】
起点再設定制御プログラム１３４は、上記最短経路候補集合ＰＱ記憶部１５１に格納された最短経路候補の集合の中に、起点ノードが同じでかつ経路の途中に介在するノードまで同じ通信リンクを使用する再設定対象の経路が存在するか否かを判定する。そして、存在すると判定された場合に、上記経路途中のノードを起点として各終点ノードまでの最短経路を上記経路コストデータベース１４に記憶されたコスト情報をもとに探索し直し、この探索し直された最短経路を上記再設定対象の最短経路候補に置き換える制御を、上記ＣＰＵ１１に実行させる。
【００３０】
次に、以上のように構成されたサーバ１０によるマルチキャストツリーの作成処理動作を説明する。図３及び図４はその制御手順と制御内容を示すフローチャートである。  
サーバ１０は、ＣＰＵ１１の制御の下で、ステップ３ａによりマルチキャストツリー作成要求の到来を監視している。この状態でノード２１からマルチキャストツリー作成要求が送信され、この作成要求が通信インタフェース１６により受信されたとする。そうするとＣＰＵ１１は、ステップ３ｂにおいて上記受信された作成要求から頂点ノード指定情報及び必要帯域の指定情報を抽出する。またそれと共に、上記マルチキャストツリーの作成要求に高精細オプションモードの指定情報が含まれているか否かをステップ３ｃで判定する。そして、高精細オプションモードの指定情報が含まれていなければ、通常探索モードによりマルチキャストツリーの作成処理を以下のように開始する。なお、高精細オプションモードによる探索処理については第２の実施形態において一例を述べる。
【００３１】
さて、いま仮に上記頂点ノード指定情報により、起点としてノード２１が指定されると共に、終点としてノード２２，２３，２６，２８がそれぞれ指定されたとする。なお、ここでは例えば図５に示すように、基点ノードをＳ、各終点ノードＤ１〜Ｄ４として説明を行う。
【００３２】
（１）１段階目の探索処理  
ＣＰＵ１１は、先ずステップ３ｄにより、決定ノード集合Ｆ記憶部１５３に上記頂点ノード指定情報により指定されたすべての終点ノードの情報が格納されているか否かを判定する。この判定の結果、まだ探索処理前のため一つも記憶されていないので、ＣＰＵ１１はステップ３ｅで終点Ｖｓ記憶部１５４に起点ノードＳを設定し、ステップ３ｆにおいて上記起点ノードＳから各終点ノードＤ１〜Ｄ４までの最短経路をそれぞれ探索する。この最短経路の探索処理は、経路コストデータベース１４に記憶されたすべての経路の中から、コストが最小となる経路を選択することにより行われる。
【００３３】
例えば、いま各ノード２１〜２８間を接続するリンクに図５に示すようにコストが設定されていたとすると、図６に示すように、起点ノードＳから終点ノードＤ１までの最短経路には（Ｓ−Ｄ１）が、起点ノードＳから終点ノードＤ２までの最短経路には（Ｓ−Ｄ１−Ｄ２）が、起点ノードＳから終点ノードＤ３までの最短経路には（Ｓ−Ｄ３）が、起点ノードＳから終点ノードＤ４までの最短経路には（Ｓ−Ｄ１−Ｎ１−Ｄ４）がそれぞれ探索される。
【００３４】
続いてＣＰＵ１１は、ステップ３ｇにおいて、上記探索された各最短経路（Ｓ−Ｄ１）、（Ｓ−Ｄ１−Ｄ２）、（Ｓ−Ｄ３）、（Ｓ−Ｄ１−Ｎ１−Ｄ４）が上記必要帯域指定情報により指定された必要帯域を満足するか否かを判定する。この結果、上記選択された各最短経路がいずれも必要帯域を満足していたとすれば、ステップ３ｉにおいて、これらの最短経路の情報をそのコストの情報と共に最短経路候補集合ＰＱ記憶部１５１に格納する。これに対し、上記ステップ３ｇの判定において必要帯域を満たさない最短経路が見付かったとすると、ＣＰＵ１１はステップ３ｈにおいて、必要帯域を満足する他の経路の中でコストが最も小さい経路（準最短経路）を選択し、上記必要帯域を満足しなかった経路に代えてこの準最短経路の情報をそのコスト情報と共に最短経路候補集合ＰＱ記憶部１５１に格納する。
【００３５】
さらにＣＰＵ１１は、ステップ３ｊにおいて、上記最短経路候補集合ＰＱ記憶部１５１に格納された各最短経路候補（Ｓ−Ｄ１）、（Ｓ−Ｄ１−Ｄ２）、（Ｓ−Ｄ３）、（Ｓ−Ｄ１−Ｎ１−Ｄ４）のうち、決定経路集合Ｒ記憶部１５２に既に終点が記憶されている最短経路候補の有無を判定する。この判定の結果、既に記憶されている最短経路候補があれば、ステップ３ｋでこれを除く。そして、ステップ３ｍにおいて、上記最短経路候補集合ＰＱ記憶部１５１に格納された各最短経路候補（Ｓ−Ｄ１）、（Ｓ−Ｄ１−Ｄ２）、（Ｓ−Ｄ３）、（Ｓ−Ｄ１−Ｎ１−Ｄ４）の中からコストが最小の最短経路を選択し、これを決定経路集合Ｒ記憶部１５２に格納する。またそれと共に、ステップ３ｎにおいて、上記選択した最短経路の終点ノードを決定ノード集合Ｆ記憶部１５３に格納する。
【００３６】
例えば、図５に示した例では、図６に示すように集合ＰＱに格納された４つの最短経路候補（Ｓ−Ｄ１）、（Ｓ−Ｄ１−Ｄ２）、（Ｓ−Ｄ３）、（Ｓ−Ｄ１−Ｎ１−Ｄ４）の中から、コストが“２”と最も小さい経路（Ｓ−Ｄ３）が選択されて、これが集合Ｒに、またその終点ノードＤ３が集合Ｆにそれぞれ格納される。
【００３７】
続いてＣＰＵ１１はステップ３ｏに移行し、上記集合Ｒに格納した最短経路（Ｓ−Ｄ３）と起点を同じくしかつリンクの一部が重なる経路が集合ＰＱにあるか否かを判定する。この判定の結果、該当する経路がなければ、ノードＳを起点とする１段階目の探索処理を終了する。
【００３８】
（２）２段階目の探索処理  
次にＣＰＵ１１は、ステップ３ｄに戻り、上記集合Ｆに格納された終点ノードＤ３を起点とする２段階目の探索処理を以下のように実行する。すなわち、先ずステップ３ｄにより決定ノード集合Ｆ記憶部１５３に上記頂点ノード指定情報により指定されたすべての終点ノードの情報が格納されているか否かを判定する。この判定の結果、ここではまだすべての終点ノードの情報が格納されていないので、ＣＰＵ１１はステップ３ｅで終点Ｖｓ記憶部１５４にノードＤ３を設定し、ステップ３ｆにおいてこのノードＤ３を起点として他の各終点ノードＤ１，Ｄ２，Ｄ４までの最短経路をそれぞれ探索する。この場合も、最短経路の探索処理は経路コストデータベース１４に記憶されたすべての経路の中から、コストが最小となる経路を選択することにより行われる。
【００３９】
例えば、図７に示すように、ノードＤ３から終点ノードＤ１までの最短経路としては（Ｄ３−Ｄ１）が、ノードＤ３から終点ノードＤ２までの最短経路としては（Ｄ３−Ｄ１−Ｄ２）が、またノードＤ３から終点ノードＤ４までの最短経路としては（Ｄ３−Ｎ１−Ｄ４）がそれぞれ探索される。
【００４０】
続いてＣＰＵ１１は、ステップ３ｇにおいて、上記探索された各最短経路が上記必要帯域指定情報により指定された必要帯域を満足するか否かを判定し、いずれも必要帯域を満足していればステップ３ｉにおいてこれらの最短経路の情報をそのコストの情報と共に最短経路候補集合ＰＱ記憶部１５１に追加する。
【００４１】
さらにＣＰＵ１１は、ステップ３ｍにより、上記最短経路候補集合ＰＱ記憶部１５１に格納された各最短経路候補の中からコストが最小の最短経路を選択し、これを決定経路集合Ｒ記憶部１５２に格納する。ただし、決定経路集合Ｒ記憶部１５２に既に終点が記憶されている最短経路候補はステップ３ｊ及び３ｋにより除かれる。またそれと共にＣＰＵ１１は、ステップ３ｎにおいて、上記選択した最短経路の終点ノードを決定ノード集合Ｆ記憶部１５３に格納する。
【００４２】
例えば、図７に示すように集合ＰＱに格納された６つの最短経路候補（Ｄ３−Ｄ１）、（Ｄ３−Ｄ２）、（Ｓ−Ｄ１）、（Ｓ−Ｄ２）、（Ｄ３−Ｄ４）、（Ｓ−Ｄ４）の中から、コストが“３”と最も小さい経路（Ｄ３−Ｄ１）が選択されて、これが集合Ｒに、またその終点ノードＤ１が集合Ｆにそれぞれ格納される。
【００４３】
続いてＣＰＵ１１はステップ３ｏに移行し、上記集合Ｒに格納した最短経路（Ｄ３−Ｄ１）と起点を同じくしかつリンクの一部が重なる経路が集合ＰＱにあるか否かを判定する。この場合、経路（Ｄ３−Ｄ１−Ｄ２）がそれに該当するので、ＣＰＵ１１はステップ３ｐにおいて、上記経路（Ｄ３−Ｄ１−Ｄ２）の途中のノードＤ１を起点として終点ノードＤ２に至る最短経路を探索し直し、上記集合ＰＱに格納された経路（Ｄ３−Ｄ１−Ｄ２）を図７に示すように上記探索し直された最短経路（Ｄ１−Ｄ２）に置き換える。またそれと共にコスト情報も置き換える。かくして、ノードＤ３を起点とする２段階目の探索処理が終了する。
【００４４】
（３）３段階目の探索処理  
次にＣＰＵ１１は、ステップ３ｄに戻り、ここで上記頂点ノード指定情報により指定されたすべての終点ノードの情報が決定ノード集合Ｆ記憶部１５３に格納されたか否かを判定する。そして、まだ格納されていなければ、上記集合Ｆに格納された各終点ノードのうち起点として未選択のノードＤ１を選択し、このノードＤ１をステップ３ｅで終点Ｖｓ記憶部１５４に設定する。そして、ステップ３ｆにおいて、上記ノードＤ１を起点として他の各終点ノードＤ２，Ｄ４までの最短経路をそれぞれ探索する。この場合も、最短経路の探索処理は経路コストデータベース１４に記憶されたすべての経路の中から、コストが最小となる経路を選択することにより行われる。  
例えば、図８に示すように、ノードＤ１から終点ノードＤ２までの最短経路としては（Ｄ１−Ｄ２）が、またノードＤ１から終点ノードＤ４までの最短経路としては（Ｄ１−Ｎ１−Ｄ４）がそれぞれ選択される。
【００４５】
続いてＣＰＵ１１は、ステップ３ｇにおいて、上記選択された各最短経路が上記必要帯域指定情報により指定された必要帯域を満足するか否かを判定し、いずれも必要帯域を満足していればステップ３ｉにおいてこれらの最短経路の情報をそのコストの情報と共に最短経路候補集合ＰＱ記憶部１５１に追加する。そしてステップ３ｍにより、上記最短経路候補集合ＰＱ記憶部１５１に格納された各最短経路候補の中からコストが最小の最短経路を選択し、これを決定経路集合Ｒ記憶部１５２に格納する。ただし、決定経路集合Ｒ記憶部１５２に既に終点が記憶されている最短経路候補はステップ３ｊ及び３ｋにより除かれる。またそれと共にＣＰＵ１１は、ステップ３ｎにおいて、上記選択した最短経路の終点ノードを決定ノード集合Ｆ記憶部１５３に格納する。
【００４６】
例えば、図８に示すように集合ＰＱに格納された７つの最短経路候補（Ｄ１−Ｄ２）、（Ｄ１−Ｄ２）、（Ｄ１−Ｄ４）、（Ｓ−Ｄ１）、（Ｓ−Ｄ２）、（Ｄ３−Ｄ４）、（Ｓ−Ｄ４）の中から、コストが“４”と最も小さい経路（Ｄ１−Ｄ２）が選択されて、これが集合Ｒに、またその終点ノードＤ２が集合Ｆにそれぞれ格納される。
【００４７】
続いてＣＰＵ１１はステップ３ｏに移行し、上記集合Ｒに格納した最短経路（Ｄ１−Ｄ２）と起点を同じくしかつリンクの一部が重なる経路が集合ＰＱにあるか否かを判定する。この場合、該当する経路はないので、ＣＰＵ１１はノードＤ１を起点とする３段階目の探索処理を終了する。
【００４８】
（４）４段階目の探索処理  
次にＣＰＵ１１は、ステップ３ｄに戻り、ここで上記頂点ノード指定情報により指定されたすべての終点ノードの情報が決定ノード集合Ｆ記憶部１５３に格納されたか否かを判定する。そして、まだ格納されていなければ、上記集合Ｆに格納された各終点ノードのうち起点として未選択のノードＤ２を選択し、このノードＤ２をステップ３ｅで終点Ｖｓ記憶部１５４に設定する。そして、ステップ３ｆにおいて、上記ノードＤ２を起点として他の終点ノードＤ４までの最短経路をそれぞれ探索する。この場合も、最短経路の探索処理は経路コストデータベース１４に記憶されたすべての経路の中から、コストが最小となる経路を選択することにより行われる。例えば、図９に示すように、ノードＤ２から終点ノードＤ４までの最短経路としては（Ｄ２−Ｄ４）が選択される。
【００４９】
続いてＣＰＵ１１は、ステップ３ｇにおいて、上記選択された最短経路（Ｄ２−Ｄ４）が上記必要帯域指定情報により指定された必要帯域を満足するか否かを判定し、必要帯域を満足していればステップ３ｉにおいてこの最短経路の情報をそのコストの情報と共に最短経路候補集合ＰＱ記憶部１５１に追加する。そしてステップ３ｍにより、上記最短経路候補集合ＰＱ記憶部１５１に格納された各最短経路候補の中からコストが最小の最短経路を選択し、これを決定経路集合Ｒ記憶部１５２に格納する。ただし、決定経路集合Ｒ記憶部１５２に既に終点が記憶されている最短経路候補はステップ３ｊ及び３ｋにより除かれる。またそれと共にＣＰＵ１１は、ステップ３ｎにおいて、上記選択した最短経路の終点ノードを決定ノード集合Ｆ記憶部１５３に格納する。
【００５０】
例えば、図９に示すように集合ＰＱに格納された最短経路候補（Ｄ２−Ｄ４）、（Ｄ１−Ｄ２）、（Ｄ１−Ｄ４）、（Ｓ−Ｄ１）、（Ｓ−Ｄ２）、（Ｄ３−Ｄ４）、（Ｓ−Ｄ４）の中から、終点ノードが起点として未選択でかつコストが“４”と最も小さい経路（Ｄ２−Ｄ４）が選択されて、これが集合Ｒに、またその終点ノードＤ４が集合Ｆにそれぞれ格納される。
【００５１】
続いてＣＰＵ１１はステップ３ｏに移行し、上記集合Ｒに格納した最短経路（Ｄ２−Ｄ４）と起点を同じくしかつリンクの一部が重なる経路が集合ＰＱにあるか否かを判定する。この場合、該当する経路はないので、ＣＰＵ１１はノードＤ２を起点とする４段階目の探索処理を終了する。
【００５２】
次に、ＣＰＵ１１はステップ３ｄに戻り、ここで上記頂点ノード指定情報により指定されたすべての終点ノードの情報が決定ノード集合Ｆ記憶部１５３に格納されたか否かを判定する。そして、指定されたすべての終点ノードの情報が決定ノード集合Ｆ記憶部１５３に格納されたことが確認されると、マルチキャストツリーの作成処理を終了する。
【００５３】
なお、上記作成されたマルチキャストツリーの情報は、サーバ１０から作成要求元のノード２１に通知される。ノード２１は、上記通知されたマルチキャストツリーの情報に基づいて、ＭＰＬＳのシグナリングにより明示的にツリーをネットワーク内の各ノード間に設定する。
【００５４】
以上述べたように第１の実施形態では、複数のノード２１〜２８間の各経路に対応付けて当該経路の方向性を反映したコスト情報と各経路の帯域情報を予め記憶した経路コストデータベース１４を設け、マルチキャストツリーの作成要求により指定された起点ノードから複数の終点ノードまでの最短経路を上記経路コストデータベース１４に記憶されたコスト情報及び帯域情報に基づいて順次段階的に探索することにより、マルチキャストツリーを作成するようにしている。
【００５５】
したがって、方向性を反映したコスト情報に基づいてマルチキャストの最小木が求められる。このため、ＩＰＴＶ等のマルチキャストサービスのように、放送局のノードから視聴者のノードへ向かう経路の帯域と、視聴者のノードから放送局のノードに向かう経路の帯域とで使われ方が大きく異なる場合でも、経路の方向性を考慮した経路探索が可能となる。
【００５６】
また、頂点ノード指定情報により指定された起点ノードから複数の終点ノードまでの部分集合に所属するノード間の最短経路が探索される。このため、ネットワーク中の多数のノードの中から任意に終点ノードが指定されるマルチキャストサービスに対し、最適化されたマルチキャストツリーを作成することができる。しかも、指定された終点ノードを対象とした経路探索が行われるので、プリムのアルゴリズムのように無条件にネットワーク内のすべてのノードを対象とした経路探索を行う場合に比べて、計算量を削減してマルチキャストツリーの作成に要する時間を短縮することができる。
【００５７】
しかも、ノード間を接続するリンクではなく経路ごとに設定したコスト情報をもとに最短経路が探索される。このため、例えば１ドメイン内のエッジルータの数によりノード間に複数のリンクを想定しなければならない場合でも、これら複数のリンクを考慮した経路探索が可能となる。
【００５８】
さらに、起点再設定制御プログラム１３４に従い、集合Ｒに格納した最短経路と起点を同じくしかつリンクの一部が重なる経路が集合ＰＱにあるか否かを判定し、該当する経路が存在する場合には当該経路の途中のノードを起点として終点ノードに至る最短経路を探索し直し、上記集合ＰＱに格納された該当する経路を上記探索し直された最短経路に置き換えるようにしている。したがって、探索経路の重複を排除してより正確なマルチキャストツリーを作成することができる。
【００５９】
さらに、帯域判定再選択制御プログラム１３３に従い、最短経路候補を最短経路候補集合ＰＱ記憶部１５１に格納する際に、これらの最短経路候補が上記マルチキャストツリーの作成要求により指定された必要帯域を満たすか否かを判定し、必要帯域を満たさない最短経路候補が見付かった場合には、当該最短経路候補に代えて必要帯域を満たす準最短経路を選択して上記最短経路候補集合ＰＱ記憶部１５１に格納するようにしている。このため、マルチキャストツリーの必要帯域を可能な限り確保することが可能となる。
【００６０】
（第２の実施形態）  
この発明の第２の実施形態は、高精細オプションモードが指定された場合に、探索された最短経路の終点ノードを次の段階の探索の起点として設定して探索処理を行うと共に、当該最短経路の途中に中間ノードが存在する場合には当該中間ノードも起点として設定して最短経路の探索処理を実行し、これらの探索処理により得られた最短経路候補の中から最短経路を選択するものである。  
なお、この第２の実施形態において、サーバ１０の基本構成は前記第１の実施形態と同一なので、前記図２を延用して異なる部分についてのみ説明する。
【００６１】
サーバ１０のプログラムメモリ１３には、この発明を実施するために必要なアプリケーション・プログラムとして、第１の実施形態で述べた頂点ノード指定受付制御プログラム１３１、最短経路探索制御プログラム１３２、帯域判定再選択制御プログラム１３３及び起点再設定制御プログラム１３４に加え、高精細探索制御プログラムがさらに格納されている。
【００６２】
この高精細探索制御プログラムは、マルチキャストツリーの作成要求の中に高精細オプションモードの指定情報が含まれている場合に、決定経路集合Ｒ記憶部１５２に格納された最短経路の途中に中間ノードが介在しているか否かを判定する。そして、中間ノードが介在していると判定された場合に、当該中間ノードを起点として当該中間ノードから各終点ノードまでの最短経路を上記経路コストデータベース１４に記憶されたコスト情報をもとにそれぞれ探索し、この探索された中間ノードから各終点ノードまでの最短経路を上記最短経路候補集合ＰＱ記憶部１５１に最短経路候補として追加する制御を、ＣＰＵ１１に実行させる。
【００６３】
このような高精細探索制御プログラムに従い、サーバ１０のＣＰＵ１１は次のように高精細オプションモードによる探索処理を実行する。図１０及び図１１はその処理内容を説明するための図である。  
すなわち、いま仮に探索対象のドメインネットワークにおいて、例えば図１０に示すように起点ノードＳと終点ノードＤ３との間に中間ノードＮ４が介在配置しているものとする。この場合、起点ノードＳから各終点ノードまでの最短経路を探索する１段階目の探索処理では、最短経路として（Ｓ−Ｄ１）、（Ｓ−Ｄ１−Ｄ２）、（Ｓ−Ｎ４−Ｄ３）、（Ｓ−Ｄ１−Ｎ１−Ｄ４）がそれぞれ探索される。そして、これらの最短経路が必要帯域を満足していれば、これらの最短経路（Ｓ−Ｄ１）、（Ｓ−Ｄ１−Ｄ２）、（Ｓ−Ｎ４−Ｄ３）、（Ｓ−Ｄ１−Ｎ１−Ｄ４）が最短経路候補集合ＰＱ記憶部１５１に格納される。また、上記最短経路候補集合ＰＱに格納された４つの最短経路候補（Ｓ−Ｄ１）、（Ｓ−Ｄ２）、（Ｓ−Ｎ４−Ｄ３）、（Ｓ−Ｄ４）の中から、コストが“２”と最も小さい経路（Ｓ−Ｄ３）が選択されて、これが集合Ｒに、またその終点ノードＤ３が集合Ｆにそれぞれ格納される。
【００６４】
次にＣＰＵ１１は、上記集合Ｆに格納された終点ノードＤ３を起点とする２段階目の探索処理を実行する。この結果、図１１に示すように最短経路として（Ｄ３−Ｄ１）、（Ｄ３−Ｄ１−Ｄ２）、（Ｄ３−Ｎ１−Ｄ４）がそれぞれ探索される。そして、これらの最短経路が必要帯域を満足していれば、これらの最短経路（Ｄ３−Ｄ１）、（Ｄ３−Ｄ１−Ｄ２）、（Ｄ３−Ｎ１−Ｄ４）が最短経路候補集合ＰＱ記憶部１５１に格納される。
【００６５】
またそれと共にＣＰＵ１１は、高精細オプションモードによる探索を以下のように実行する。すなわち、前記第１段階目の探索処理により決定経路として選択された最短経路（Ｓ−Ｎ４−Ｄ３）に中間ノードが存在するか否かを判定する。この判定の結果、上記最短経路（Ｓ−Ｎ４−Ｄ３）には中間ノードＮ４が存在するため、ＣＰＵ１１は当該中間ノードＮ４を起点に設定し、この中間ノードＮ４から各終点ノードＤ１，Ｄ２，Ｄ４までの最短経路を探索する。例えば図１０に示すネットワークでは、図１１に示すように最短経路（Ｎ４−Ｄ３−Ｄ１）、（Ｎ４−Ｄ３−Ｄ１−Ｄ２）、（Ｎ４−Ｄ３−Ｎ１−Ｄ４）がそれぞれ探索され、これらが必要帯域を満足していれば上記最短経路候補集合ＰＱ記憶部１５１に追加される。
【００６６】
そうして高精細オプションモードによる探索が終了すると、ＣＰＵ１１は上記最短経路候補集合ＰＱ記憶部１５１に格納されたすべての最短経路候補の中からコストが最も小さい最短経路を選択し、この選択した最短経路を決定経路集合Ｒ記憶部１５２に、さらに当該選択された最短経路の終点ノードを決定終点ノード集合Ｆ記憶部１５３にそれぞれ格納する。
【００６７】
このように第２の実施形態によれば、最短経路探索の各段階において、前段階の探索処理において選択された最短経路の終点ノードを起点とする通常モードによる探索処理に加え、当該最短経路の途中に介在配置された中間ノードを起点とする高精細オプションモードによる探索処理が行われ、これらの探索処理により得られた最短経路がそれぞれ最短経路候補集合ＰＱ記憶部１５１に格納される。このため、最短経路候補の数が増加し、より多くの候補の中から次の段階の探索処理に使用する起点ノードを選択することが可能となり、この結果より低コストの経路を選択する確率を高めることができる。
【００６８】
（第３の実施形態）  
この発明の第３の実施形態は、この発明に係わるマルチキャストツリー作成方法を、複数のドメインがコアルータを介して相互に接続されたネットワークシステムに適用した場合を示すものである。図１２はそのネットワークシステムの一例を示すものである。
【００６９】
同図において、このネットワークシステムは３つのドメイン５１，５２，５３を備えている。ドメイン５１はルータＲ１１，Ｒ１２とエッジルータＥＲ１１，ＥＲ１２を、またドメイン５２はルータＲ２１，Ｒ２２，Ｒ２３とエッジルータＥＲ２１を、さらにドメイン５３はルータＲ３３とエッジルータＥＲ３１，ＥＲ３２をそれぞれ有している。これらのドメイン５１，５２，５３はコアルータＣＲ１，ＣＲ２を介して相互に接続され、これによりインタードメイン５０を構成している。
【００７０】
上記ドメイン５１，５２，５３にはそれぞれパスコンピューテーションエレメント（ＰＣＥ；Pass Computation Element）サーバ４１，４２，４３が接続され、これらのＰＣＥサーバ４１，４２，４３はさらに上位のインタードメインＰＣＥサーバ４０に接続される。これらのインタードメインＰＣＥサーバ４０及びＰＣＥサーバ４１，４２，４３は階層分散してマルチキャストツリーを作成する機能を有し、そのためにＰＣＥサーバ４１，４２，４３はそれぞれドメイン５１〜５３の経路コストデータベースを備え、またインタードメインＰＣＥサーバ４０は上記インタードメイン５０の経路コストデータベースを備えている。
【００７１】
ＰＣＥサーバ４１，４２，４３の経路コストデータベースには、第１の実施形態で述べたように、ドメイン５１，５２，５３を構成する各ルータ間のすべての経路に対応付けて、そのコストを表す情報と帯域を表す情報が予め記憶されている。また、インタードメインＰＣＥサーバ４０の経路コストデータベースには、ドメイン５１，５２，５３間のすべての経路に対応付けて、そのコストを表す情報と帯域を表す情報が予め記憶されている。コストを表す情報は、経路の距離や料金等の既存の要素に加えて当該経路の方向性を反映したものとなっている。また、帯域を表す情報は経路上の伝送帯域を表す情報により表される。
【００７２】
次に、上記インタードメインＰＣＥサーバ４０及びＰＣＥサーバ４１，４２，４３によるマルチキャストツリーの作成処理手順とその処理内容を説明する。なお、ここではドメイン５１中のルータＲ１１を起点とし、ドメイン５２中のルータＲ２２，Ｒ２３及びドメイン５３中のルータＲ３３を終点とするマルチキヤストツリーを作成する場合を例にとって説明する。
【００７３】
起点となるルータＲ１１は、上記起点及び複数の終点を指定するための頂点ノード指定情報を含むマルチキャストツリー作成要求を生成し、このマルチキャストツリー作成要求をＰＣＥサーバ４１へ送る（ステップＳ１）。ＰＣＥサーバ４１は、上記マルチキャストツリー作成要求を受信すると、当該作成要求に含まれる頂点ノード指定情報から起点及び複数の終点を抽出し、これらが自己の管理するドメイン内に属するものか否かを判定する。この判定の結果、終点は他ドメインに属するため、上記マルチキャストツリー作成要求を上位階層のインタードメインＰＣＥサーバ４０へ転送する（ステップＳ２）。
【００７４】
インタードメインＰＣＥサーバ４０は、上記マルチキャストツリー作成要求が転送されると、この作成要求に含まれる頂点ノード指定情報をもとに起点となるドメイン５１と終点となるドメイン５２，５３を認識する。そして、起点ドメイン５１から終点ドメイン５２，５３に至る最短経路を探索して、その探索結果をもとにドメイン間マルチキャストツリーを作成する。このドメイン間マルチキャストツリーの作成は、経路コストデータベースに記憶されたドメイン５１，５２，５３間の経路のコスト情報と帯域情報に基づいて、前記第１の実施形態で述べたドメイン内マルチキャストツリーの作成と同様の処理手順及び処理内容により行われる。この作成処理により、例えば図１２の例では最短経路（ＥＲ１１−ＣＲ１−ＥＲ３１）、（ＥＲ１２−ＣＲ２−ＥＲ２１）が選択される。
【００７５】
次にインタードメインＰＣＥサーバ４０は、上記選択された最短経路（ＥＲ１１−ＣＲ１−ＥＲ３１）、（ＥＲ１２−ＣＲ２−ＥＲ２１）に従い、下位層の各ＰＣＥサーバ４１〜４３に対しそれぞれドメイン内マルチキャストツリーの作成要求を送る（ステップＳ３）。このとき、ＰＣＥサーバ４１に対しては、起点をルータＲ１１としかつ終点をエッジルータＥＲ１１とする頂点ノード指定情報を与える。また、ＰＣＥサーバ４２に対しては、起点をエッジルータＥＲ２１としかつ終点をルータＲ２２，Ｒ２３とする頂点ノード指定情報を与え、さらにＰＣＥサーバ４３に対しては起点をエッジルータＥＲ３１としかつ終点をルータＲ３３とする頂点ノード指定情報を与える。
【００７６】
下位層の各ＰＣＥサーバ４１〜４３はそれぞれ、上記インタードメインＰＣＥサーバ４０から頂点ノード指定情報により指示された起点から終点までの最短経路を探索し、これによりドメイン内マルチキャストツリーを作成する。このドメイン内マルチキャストツリーの作成も、それぞれの経路コストデータベース１４のコスト情報及び帯域情報に基づいて、前記第１の実施形態で述べた処理手順及び内容と同様に行われる。そして、下位層の各ＰＣＥサーバ４１〜４３はそれぞれ、上記作成されたドメイン内マルチキャストツリーの情報を上位層のインタードメインＰＣＥサーバ４０へ送る（ステップＳ３）。
【００７７】
上位層のインタードメインＰＣＥサーバ４０は、上記各ＰＣＥサーバ４１〜４３から送られたドメイン内マルチキャストツリーを接続して、ルータＲ１１を起点としかつルータＲ２１，Ｒ２２，Ｒ３３を終点とする合成マルチキャストツリーを作成する。そして、この作成された合成マルチキャストツリーの情報を、ＰＣＥサーバ４１を経由して作成要求元の起点ルータＲ１１に送る（ステップＳ４，Ｓ５）。起点ルータＲ１１は、上記送られた合成マルチキャストツリーの情報をもとにＭＰＬＳのシグナリングで明示的にツリーをルータ間で作成する。
【００７８】
このように第３の実施形態によれば、下位層の各ＰＣＥサーバ４１〜４３においてそれぞれのドメインのマルチキャストツリーを作成し、それを上位層のインタードメインＰＣＥサーバ４０と合成するようにしたことで、ドメインが階層化されたネットワークシステムに対してもそのマルチキャストツリーを効率良く作成することが可能となる。
【００７９】
（その他の実施形態）  
前記各実施形態ではネットワークを構成するノードとは別に設けられたＰＣＥサーバによりマルチキャストツリーを作成する場合を例にとって説明したが、ネットワーク内の任意のノードにおいてマルチキャストツリーを作成するようにしてもよい。  
また、前記各実施形態ではＰＣＥサーバ内に経路コストデータベースを設けた場合を例にとって説明したが、マルチキャストツリーを作成するサーバと経路コストデータベースを備えたデータベースサーバとを別々に設け、両サーバ間を通信回線で接続することによりマルチキャストツリー作成装置を構成するようにしてもよい。
【００８０】
その他、マルチキャストツリー作成装置の構成やマルチキャストツリーの作成制御手順とその内容、各ドメインのネットワーク構成やドメインの種類などについても、この発明の要旨を逸脱しない範囲で種々変形して実施できる。  
要するにこの発明は、上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる各実施形態に亘る構成要素を適宜組み合せてもよい。
【図面の簡単な説明】
【００８１】
【図１】この発明の第１の実施形態に係わるマルチキャストツリー作成方法を説明するためのネットワーク構成を示す図である。
【図２】この発明の第１の実施形態に係わるマルチキャストツリー作成装置としてのサーバの構成を示すブロック図である。
【図３】図２に示したサーバによるマルチキャストツリー作成制御の手順と内容の前半部分を示すフローチャートである。
【図４】図２に示したサーバによるマルチキャストツリー作成制御の手順と内容の後半部分を示すフローチャートである。
【図５】図３及び図４に示したマルチキャストツリー作成制御の手順と内容を説明するためのネットワーク図である。
【図６】図３及び図４に示したマルチキャストツリー作成制御の第１段階目の探索処理を説明するための図である。
【図７】図３及び図４に示したマルチキャストツリー作成制御の第２段階目の探索処理を説明するための図である。
【図８】図３及び図４に示したマルチキャストツリー作成制御の第３段階目の探索処理を説明するための図である。
【図９】図３及び図４に示したマルチキャストツリー作成制御の第４段階目の探索処理を説明するための図である。
【図１０】この発明の第２の実施形態に係わるマルチキャストツリー作成方法としての高精細オプションモードによる探索処理を説明するためのネットワーク図である。
【図１１】高精細オプションモードによる探索処理を説明するための図である。
【図１２】この発明の第３の実施形態に係わるマルチキャストツリー作成方法を説明するためのネットワーク図である。
【図１３】プリムのアルゴリズムが適用されるネットワークの一例を示す図である。
【図１４】プリムのアルゴリズムによる第１段階目の探索処理を示す図である。
【図１５】プリムのアルゴリズムによる第２段階目の探索処理を示す図である。
【符号の説明】
【００８２】
１０…マルチキャストツリー作成装置としてのサーバ、１１…ＣＰＵ、１２…バス、１３…プログラムメモリ、１４…経路コストデータベース、１５…データメモリ、１６…通信インタフェース、２１〜２８…ノード、３０…ドメイン、４０…インタードメインＰＣＥサーバ、４１，４２，４３…ＰＣＥサーバ、５１，５２，５３…ドメイン、Ｒ１１，Ｒ１２，Ｒ２１，Ｒ２２，Ｒ２３，Ｒ３３…ルータ、ＥＲ１１，ＥＲ１２，ＥＲ２１，ＥＲ３１，ＥＲ３２…エッジルータ、ＣＲ１，ＣＲ２…コアルータ、１３１…頂点ノード指定受け付け制御プログラム、１３２…最短経路探索制御プログラム、１３３…帯域判定再選択制御プログラム、１３４…起点再設定制御プログラム、１３５…高精細探索制御プログラム、１５１…最短経路候補集合ＰＱ記憶部、１５２…決定経路集合Ｒ記憶部、１５３…決定ノード集合Ｆ記憶部、１５４…終点Ｖｓ記憶部。
【図１】
2008211656.tif 000003
【図２】
2008211656.tif 000004
【図３】
2008211656.tif 000005
【図４】
2008211656.tif 000006
【図５】
2008211656.tif 000007
【図６】
2008211656.tif 000008
【図７】
2008211656.tif 000009
【図８】
2008211656.tif 000010
【図９】
2008211656.tif 000011
【図１０】
2008211656.tif 000012
【図１１】
2008211656.tif 000013
【図１２】
2008211656.tif 000014
【図１３】
2008211656.tif 000015
【図１４】
2008211656.tif 000016
【図１５】
2008211656.tif 000017