(57)【要約】【課題】データ遅延の減少、利用する(G)MPLSのラベル数の削減が可能なマルチキャストネットワークにおける経路計算方法を提供する。【解決手段】DDMCを改良したマルチキャスト生成アルゴリズムによりマルチキャストの経路を計算する経路計算方法において、新ブランチ候補をブランチ候補集合PQに登録時、新ブランチ候補と、当該新ブランチ候補と終点を同じくするPQ内の既存ブランチ候補間で経路コストを比較する際に、経路コストを、ブランチ候補を構成する各リンクのコストと、ブランチ候補が経由するリンク数とを用いて算出する。【選択図】図７
2013165463.tif 000002
【特許請求の範囲】
【請求項１】
複数ノードを通信リンクを介して相互に接続可能としたネットワークにおいて、ある始点ノードから他のすべてのノード内の部分集合である複数ノードまでのマルチキャスト経路を計算するための処理手順を実行する経路計算装置による経路計算方法であって、
最初はマルチキャストの始点ノードを対象ノードとし、対象ノードvから発するすべてのリンクをブランチ候補としてブランチ候補集合PQに加え、PQ内最小ブランチ候補をPQから取り出し、そのブランチ候補の終点がマルチキャストの終点の場合は当該ブランチをマルチキャストブランチとして決定し、当該マルチキャストブランチの終点ノードをvとして前記処理手順の次ループに移り、
PQから取り出された最小ブランチ候補の終点がマルチキャストの終点でない場合は当該最小ブランチの終点ノードがvとして設定され次ループに移るが、次にvから発するリンクは当該最小ブランチの後に加えられて新しいブランチ候補としてPQに加えられ、
このループをマルチキャスト終点までのすべてのブランチが決定するまで繰り返す前記処理手順において、
新ブランチ候補をブランチ候補集合PQに登録時、新ブランチ候補と、当該新ブランチ候補と終点を同じくするPQ内の既存ブランチ候補間で経路コストを比較する際に、経路コストを、ブランチ候補を構成する各リンクのコストと、ブランチ候補が経由するリンク数とを用いて算出する
ことを特徴とする経路計算方法。
【請求項２】
前記経路コストを比較する手順において、経路コストを、リンク数が大きいほど経路コストが大きくなるように、リンク数に比重を付与して算出する
ことを特徴とする請求項１に記載の経路計算方法。
【請求項３】
前記経路コストを比較する手順において、
ノードxからノードyまでのブランチ候補の経路コストbranch_cost(x, y)を、比重βを用いて、
branch_cost(x, y) = |branch(x, y)|+β|hop(branch(x, y))|（但し、|branch(x, y)|はbranch(x, y)が経由するリンクのリンクコストの合計、|hop(branch(x, y))|はbranch(x, y)が経由するリンク数、βは正数）と算出する
ことを特徴とする請求項１又は２に記載の経路計算方法。
【請求項４】
ブランチ候補PQ内の最小ブランチ候補を選択する際には、リンク数を加味した経路コストを使うのではなく、ブランチ候補が経由するリンクのリンクコストの合計として算出した経路コストを比較してPQ内で最も経路コストが小さいブランチを選択する
ことを特徴とする請求項１ないし３のうちいずれか１項に記載の経路計算方法。
【請求項５】
複数ノードを通信リンクを介して相互に接続可能としたネットワークにおいて、ある始点ノードから他のすべてのノード内の部分集合である複数ノードまでのマルチキャスト経路を計算するための処理手順を実行する経路計算装置であって、
ブランチ候補集合PQを格納するブランチ候補記憶手段と、
前記ブランチ候補記憶手段を参照しながら前記処理手順を実行するマルチキャスト経路作成処理手段と、を備え、
前記マルチキャスト経路作成処理手段は、
最初はマルチキャストの始点ノードを対象ノードとし、対象ノードvから発するすべてのリンクをブランチ候補としてブランチ候補集合PQに加え、PQ内最小ブランチ候補をPQから取り出し、そのブランチ候補の終点がマルチキャストの終点の場合は当該ブランチをマルチキャストブランチとして決定し、当該マルチキャストブランチの終点ノードをvとして前記処理手順の次ループに移り、
PQから取り出された最小ブランチ候補の終点がマルチキャストの終点でない場合は当該最小ブランチの終点ノードがvとして設定され次ループに移るが、次にvから発するリンクは当該最小ブランチの後に加えられて新しいブランチ候補としてPQに加えられ、
このループをマルチキャスト終点までのすべてのブランチが決定するまで繰り返す前記処理手順において、
新ブランチ候補をブランチ候補集合PQに登録時、新ブランチ候補と、当該新ブランチ候補と終点を同じくするPQ内の既存ブランチ候補間で経路コストを比較する際に、経路コストを、ブランチ候補を構成する各リンクのコストと、ブランチ候補が経由するリンク数とを用いて算出する
ことを特徴とする経路計算装置。
【請求項６】
複数ノードを通信リンクを介して相互に接続可能としたネットワークにおいて、ある始点ノードから他のすべてのノード内の部分集合である複数ノードまでのマルチキャスト経路を計算するための処理手順を実行する経路計算装置としてコンピュータを機能させるための経路計算プログラムであって、当該経路計算プログラムは、コンピュータを、
ブランチ候補集合PQを格納するブランチ候補記憶手段、
前記ブランチ候補記憶手段を参照しながら前記処理手順を実行するマルチキャスト経路作成処理手段、として機能させ、
前記マルチキャスト経路作成処理手段は、
最初はマルチキャストの始点ノードを対象ノードとし、対象ノードvから発するすべてのリンクをブランチ候補としてブランチ候補集合PQに加え、PQ内最小ブランチ候補をPQから取り出し、そのブランチ候補の終点がマルチキャストの終点の場合は当該ブランチをマルチキャストブランチとして決定し、当該マルチキャストブランチの終点ノードをvとして前記処理手順の次ループに移り、
PQから取り出された最小ブランチ候補の終点がマルチキャストの終点でない場合は当該最小ブランチの終点ノードがvとして設定され次ループに移るが、次にvから発するリンクは当該最小ブランチの後に加えられて新しいブランチ候補としてPQに加えられ、
このループをマルチキャスト終点までのすべてのブランチが決定するまで繰り返す前記処理手順において、
新ブランチ候補をブランチ候補集合PQに登録時、新ブランチ候補と、当該新ブランチ候補と終点を同じくするPQ内の既存ブランチ候補間で経路コストを比較する際に、経路コストを、ブランチ候補を構成する各リンクのコストと、ブランチ候補が経由するリンク数とを用いて算出する
ことを特徴とする経路計算プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチキャスト通信における経路選択方法に係り、特に、マルチキャストツリーを生成するための経路計算（ルーティング）装置における経路計算方法に関する。
【背景技術】
【０００２】
IP(Internet Protocol)ネットワークでは、IPTVのようなマルチキャスト通信による放送型のサービスが普及してきている。マルチキャスト通信の通信コストを低減し、サービス品質を向上させるために、効率的なマルチキャスト通信経路を選択する必要があることから、マルチキャスト通信における経路選択には従来から様々なアルゴリズムが提案されている。本発明は、経路選択のアルゴリズムの１つであるDDMC（destination driven multi-cast）アルゴリズム（非特許文献１）に関連している。
【０００３】
当該経路選択のアルゴリズムでは、まず、マルチキャストの始点ノードを対象ノードとし、対象ノードvから発するすべてのリンクをブランチ候補としてブランチ候補集合PQに加え、PQ内最小ブランチ候補をPQから取り出し、そのブランチ候補の終点がマルチキャストの終点の場合は当該ブランチをマルチキャストブランチとして決定し、当該マルチキャストブランチの終点ノードをvとしてアルゴリズムの次ループに移る。
【０００４】
PQから取り出された最小ブランチ候補の終点がマルチキャストの終点でない場合は当該最小ブランチの終点ノードがvとして設定され次ループに移るが、次にvから発するリンクは当該最小ブランチの後に加えられて新しいブランチ候補としてPQに加えられる。
【０００５】
このループをマルチキャスト終点までのすべてのブランチが決定するまで繰り返す。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】A. Shaikh and K. Shin, "Destination-driven Routing for Low-cost Multicast," IEEE Journal on Selected Areas in Communications, vol. 15, no. 3, April 1997.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
IPTVのような放送型のサービスでは、IPストリームを（G）MPLS（Multi Protocol Label Switching）で明示的に張った土管に通すことにより、帯域を確保して放送型サービスのQoSを保証する必要がある。また、MPLSのラベル数には制限があるので、マルチキャストツリーを構成するMPLSのラベル数を少なく抑える必要がある。また、マルチキャスト通信サービス要求は頻繁に起きる可能性があるので、経路計算速度が速いことが必要である。
【０００８】
DDMCアルゴリズムは、経路計算速度は速いが、MPLSのラベル数を少なく抑えるという点では課題が残る。本発明は、DDMCアルゴリズムの課題を解決するために、DDMCアルゴリズムを改良したものであるので、以下、従来のDDMCアルゴリズム、及びその課題について詳説する。図１は、DDMCのフローを示す。
【０００９】
ステップ０）  当該ステップでは、アルゴリズムの初期条件と、アルゴリズムが使う集合の定義を示す。集合Eはマルチキャストの終点ノードのうち、まだその終点までの経路が決定していない終点ノードの集合である。集合Eはアルゴリズムの最初は全てのマルチキャストの終点ノードを保持するが、終点ノードまでの経路が決定した終点ノードは集合Eから削除される。集合PQはマルチキャストを構成するブランチになり得るブランチ候補の集合である。vはステップ２で選択された最小ブランチの終点ノードとなる。但し、アルゴリズムの最初はマルチキャストツリーの始点ノードがvとなる。集合Rは、ステップ２で選択されたPQ内の最小ブランチ終点がEに属する場合に、ステップ４において新ブランチとして格納されるブランチの集合であり、ステップ６で重複部分を削除した後、マルチキャストの全ての構成ブランチとなる。
【００１０】
ステップ１）  初期条件が設定されると、vから発するすべてのリンクを新ブランチ候補としてPQに格納するが、もし直前のステップ３で"No"が選択されている場合は直前のステップ２で選択された最小ブランチの後尾にvからのリンクを加えた新ブランチ候補をPQに格納する。PQはまだそのノードまでの最小ブランチ候補がステップ２で選択されていない終点ノード毎に最大１つのブランチ候補を保持するので、図１における"*1"に示すように、もし既にPQに当該終点ノードに対応するブランチ候補が存在する場合は、新ブランチ候補と既存ブランチ候補を比較し、新ブランチ候補の経路コストが小さいときのみ、既存ブランチ候補と新ブランチ候補を入れ替える。
【００１１】
また、既にPQに当該終点ノードに対応するブランチ候補が存在する場合において、新ブランチ候補と既存ブランチ候補を比較し、新ブランチ候補の経路コストが小さくない場合は、当該新ブランチ候補はPQに格納されない。
【００１２】
ステップ２）集合PQ内で最小の経路コストを保持する最小ブランチをPQから取り出す。同時に当該最小ブランチの終点ノードをvとして設定する。
【００１３】
ステップ３）vが終点集合E内に存在するかどうか判断し、v∈Eの場合はステップ4に進み、vがEに存在しない場合はステップ１に進む。
【００１４】
ステップ４）直前のステップ２で選択された最小ブランチをRに格納する。また、集合Eからvを削除する。
【００１５】
ステップ５）Eが空集合かどうかを判断し、空集合でなければステップ１に進み、空集合の場合はステップ６へ進む。
【００１６】
ステップ６）R内の複数のブランチ間で重複区間を削除する。
【００１７】
上記の処理の一例を図２〜図５の例を用いて説明する。この例では、図２に示すように各ノードがリンク接続（リンクはL1等の記号で識別する、矢印は方向を示す）されており、リンクのコストは図示した数字のとおりであるとする。また、四角で囲んだノードAが始点ノードであり、二重丸で囲んだノードB、D、C、Hが終点ノードであるとする。
【００１８】
初期状態において、集合Eには、ノードB、D、C、Hが含まれ、集合PQ、集合Rは空集合であり、vはノードAである。
【００１９】
ステップ１において、vであるノードAから発するリンクL1、L2、L3を示す情報を新ブランチ候補としてPQに格納する。
【００２０】
ステップ２において、リンクL1、L2、L3のうちの最小コストのリンクであるL1をPQから取り出し、vをその終点であるノードEとする。
【００２１】
ステップ３において、ノードEは終点ノードではないから、処理はステップ１に戻る。
【００２２】
ステップ１において、vであるノードEから発するリンクL5、L6が選択され、ブランチ候補PQに加えられる。このときの新ブランチ候補はL1＋L6とL1＋L5になる。これら新ブランチ候補をブランチ候補PQに加える。つまり、直前にPQ内の最小ブランチとして選択されたブランチL1にその終点ノードEから発するリンクを加えたものが新ブランチ候補となる。
【００２３】
このとき、ブランチ候補としてPQに含まれているブランチ情報を図示すると図３のようになっている。図３には、ブランチ候補を構成するノード及びリンクの接続状態とともに、現時点でPQに存在する各ブランチ候補の始点と終点、及びコストが明示されている。"→"の左側のノードがブランチ候補の始点、右側のノードがブランチ候補の終点である。例えば、"ブランチ３：A→B"は、L1＋L6のブランチ候補の始点がAであり、終点がBであることを示す。
【００２４】
ステップ２では、ブランチ３のコスト（L1＋L6で２）と、ブランチ４のコスト（L1＋L5で３）を含むPQ内の全てのブランチ候補のコストが比較され、コスト最小のブランチ３（L1＋L6）がPQから取り出されるとともに、ノードBが新たなvになる。
【００２５】
ステップ３において、ノードBは終点ノードであるから、このブランチ３（L1＋L６）がマルチキャストのブランチとしてRに加えられるとともに、ノードBは、Eから削除される。
【００２６】
再びステップ１に戻り、vであるノードBから発するリンクL8、L11、L10を選択してPQに加える。
【００２７】
ステップ２では、PQ内の最小ブランチ候補であるL8（コスト１）を選択し、vをノードGとする。ノードGは終点ノードではないから、再びステップ１に戻り、リンクL9を選択する。このときのPQの情報は図４のようになる。図４において点線で示したL8＋L9のブランチ７は、未だブランチ候補としてPQに加えることが決定されていない。
【００２８】
ここで、終点ノードであるノードCには、既にブランチ候補が接続されており、当該ブランチ候補に係るブランチ１のコスト（L2のコスト）は４である。一方、新たなブランチ候補であるノードBからノードCに至るブランチ７のコストは、L8＋L9で３であり、こちらのブランチのほうがコストが小さい。よって、ブランチ候補の入れ替えが起こり、ブランチ１（L2）はブランチ候補から除かれる。このときのPQの情報は図５のようになる。
【００２９】
次のステップ２にて、PQ内での最小ブランチとして、Bを始点としてHを終点とするブランチ候補であるブランチ６（L11(コスト２)）が最小ブランチ候補となる。
【００３０】
ステップ３にて、ノードHは終点ノードであるから、始点BからノードHへのブランチ６がRに格納される。
【００３１】
以上のようにして処理が進められる。
【００３２】
上記のDDMCのアルゴリズムは、マルチキャストツリーのコスト（マルチキャストツリーを構成するブランチの経路コストの合計）を小さくするためには有効であり、他のマルチキャストツリー作成アルゴリズムに比べてアルゴリズム処理速度が速い長所があるが、マルチキャストツリーが利用する(G)MPLSのラベル（ラベルは各リンク毎に必要）数が大きくなる場合がある。また、マルチキャストツリーを構成する各ブランチのホップ数が大きくなり、データ遅延につながるケースがある。
【００３３】
本発明は、上記の点に鑑みなされたものであり、データ遅延の減少、利用する(G)MPLSのラベル数の削減が可能なマルチキャストネットワークにおける経路計算方法を提供することを目的とする。
【課題を解決するための手段】
【００３４】
上記の課題を解決するために、本発明の一実施形態によれば、複数ノードを通信リンクを介して相互に接続可能としたネットワークにおいて、ある始点ノードから他のすべてのノード内の部分集合である複数ノードまでのマルチキャスト経路を計算するための処理手順を実行する経路計算装置による経路計算方法であって、
最初はマルチキャストの始点ノードを対象ノードとし、対象ノードvから発するすべてのリンクをブランチ候補としてブランチ候補集合PQに加え、PQ内最小ブランチ候補をPQから取り出し、そのブランチ候補の終点がマルチキャストの終点の場合は当該ブランチをマルチキャストブランチとして決定し、当該マルチキャストブランチの終点ノードをvとして前記処理手順の次ループに移り、
PQから取り出された最小ブランチ候補の終点がマルチキャストの終点でない場合は当該最小ブランチの終点ノードがvとして設定され次ループに移るが、次にvから発するリンクは当該最小ブランチの後に加えられて新しいブランチ候補としてPQに加えられ、
このループをマルチキャスト終点までのすべてのブランチが決定するまで繰り返す前記処理手順において、
新ブランチ候補をブランチ候補集合PQに登録時、新ブランチ候補と、当該新ブランチ候補と終点を同じくするPQ内の既存ブランチ候補間で経路コストを比較する際に、経路コストを、ブランチ候補を構成する各リンクのコストと、ブランチ候補が経由するリンク数とを用いて算出することを特徴とする経路計算方法が提供される。
【００３５】
例えば、前記経路コストを比較する手順において、経路コストを、リンク数が大きいほど経路コストが大きくなるように、リンク数に比重を付与して算出する。
【００３６】
また、前記経路コストを比較する手順において、
ノードxからノードyまでのブランチ候補の経路コストbranch_cost(x, y)を、比重βを用いて、
branch_cost(x, y) = |branch(x, y)|+β|hop(branch(x, y))|（但し、|branch(x, y)|はbranch(x, y)が経由するリンクのリンクコストの合計、|hop(branch(x, y))|はbranch(x, y)が経由するリンク数、βは正数）と算出するようにしてもよい。
【００３７】
また、ブランチ候補PQ内の最小ブランチ候補を選択する際には、リンク数を加味した経路コストを使うのではなく、ブランチ候補が経由するリンクのリンクコストの合計として算出した経路コストを比較してPQ内で最も経路コストが小さいブランチを選択するようにしてもよい。
【発明の効果】
【００３８】
本発明によれば、マルチキャスト通信における経路選択において、経路上のリンク数（ホップ数）も考慮した重み（比重）をブランチ候補の経路コストに付与する過程を具備することにより、マルチキャストツリー生成アルゴリズムで生成されたマルチキャストツリーの各ブランチのホップ数、マルチキャストツリーが必要とする(G)MPLSのラベル数を少なくできるので、データ遅延の減少、利用するネットワークリソースの削減に寄与できる。
【００３９】
また、新ブランチ候補から最小のブランチ候補を選ぶ際には通常の経路コスト（ブランチ候補上のリンクのリンクコスト総計）を反映することにより、リンクコストの合計値が最も小さいブランチが選択され、前記の過程の具備による大幅なマルチキャストツリーコストの増大を抑えることが可能となる。
【図面の簡単な説明】
【００４０】
【図１】DDMC(destination driven multi-cast)アルゴリズムのフローである。
【図２】DDMCアルゴリズムを説明するための図である。
【図３】DDMCアルゴリズムを説明するための図である。
【図４】DDMCアルゴリズムを説明するための図である。
【図５】DDMCアルゴリズムを説明するための図である。
【図６】本発明の実施の形態における経路計算装置の構成図である。
【図７】本発明の実施の形態における比重（β値）による登録ブランチ候補の変更例である。
【発明を実施するための形態】
【００４１】
以下図面と共に、本発明の実施の形態を説明する。
【００４２】
（装置構成）
図６に、本発明の実施の形態における経路計算装置１の構成例を示す。
【００４３】
同図に示す経路計算装置１は、ネットワークトポロジー管理モジュール１００、ブランチ候補処理モジュール２００、DDMC最小木作成モジュール３００を備える。
【００４４】
ネットワークトポロジー管理モジュール１００は、複数のノードと、これらのノード間を接続するリンクにより構成されるネットワークを管理する機能部であり、リンク毎にリンク情報を管理すると共に、ノード毎にノード情報を管理する。
【００４５】
ネットワークトポロジー管理モジュール１００は、ネットワークトポロジー管理処理部２１と、リンク情報記憶部３１と、ノード情報記憶部３２を有する。
【００４６】
ネットワークトポロジー管理処理部２１は、ネットワーク上のすべてのノードと、これらのノード間を接続するリンクを管理するための処理を行う機能部であり、リンク情報を上記リンク情報記憶部３１に、ノード情報をノード情報記憶部３２にそれぞれ格納する処理や、要求に応じてこれらの記憶部から格納情報を読み出して他のモジュールに提供したり、格納情報を外部に出力する処理等を行う。
【００４７】
リンク情報記憶部３１に格納されるリンク情報は、ノード間を接続するすべてのリンクについてそれぞれ、その方向（ＡＺ／ＺＡ）毎にコスト（cost）を含む。また、ノード情報記憶部３２に格納されるノード情報は、ノード毎に、当該ノードに接続するリンクを管理すると共に、DDMCアルゴリズムが利用する当該ノードまでの最短ブランチ候補と、そのコストを管理する。
【００４８】
ブランチ候補処理モジュール２００は、ブランチ候補処理部２２と、ブランチ候補記憶部PQ ３３を備えている。
【００４９】
ブランチ候補処理部２２は、DDMC最小木作成モジュール３００内の最小木作成処理部２３がDDMC最小木作成アルゴリズムの中で利用するブランチ候補をブランチ候補記憶部PQ３３に登録する。また、最小木作成処理部２３からの要求により最小ブランチ候補を検索する機能も併せ持つ。ブランチ候補記憶部PQ ３３は、前述した集合PQに相当する情報を格納する記憶部である。本実施の形態では、ブランチ候補記憶部PQ ３３に格納される情報は、２分探索木構造を持ち、ブランチ候補の経路コストによってソーティングされている。この経路コストは、ブランチ候補PQ内の最小ブランチ候補を選択する際に使用できるものであり、この経路コストはブランチ経由リンク数によって比重を付与された経路コストではなく、通常の経路コスト（経路を構成するリンクコストの総和）である。
【００５０】
DDMC最小木作成モジュール３００は、最小木作成処理部２３と、ブランチ記憶部R ３４を備え、最小木作成アルゴリズムとしてDDMCアルゴリズムを用いるが、後述するように従来のDDMCアルゴリズムとは異なる点がある。
【００５１】
ブランチ記憶部R ３４は、前述した集合Rに相当する情報を格納する記憶部である。つまり、ブランチ候補記憶部PQ ３３で検索された最小ブランチの中でマルチキャスト終点までのブランチを記憶するために使用される。
【００５２】
最小木作成処理部２３はDDMC最小木作成アルゴリズムを実行する機能部である。すなわち、ブランチ候補処理モジュール２００及びネットワークトポロジー管理モジュール１００を利用しながら、図１を用いて説明した流れの処理手順を実行する機能部である。なお、図１を用いて説明した処理手順におけるE、vの情報については、例えば最小木作成処理部２３におけるメモリ中に格納され、処理の中で参照、更新が行われるものとする。
【００５３】
（最小木作成処理部２３の動作の詳細）
本実施の形態において、最小木作成処理部２３が実行する処理手順は、基本的には図１を参照して説明した従来の手順と同様であるが、以下で説明するように、同じ終点ノードに対する既存ブランチ候補と新ブランチ候補との経路コストの比較方法が、従来技術と異なり、本実施の形態における特徴となっている。
【００５４】
最小木作成処理部２３は、ネットワークトポロジー管理処理部２１を通じてノード情報記憶部３２に格納されたノード情報にアクセスし、図１等で説明したとおりに、ノードから発するリンクを取得し新ブランチ候補を作成する。
【００５５】
このときに当該新ブランチ候補の終点ノードと同じ終点ノードまでの既存のブランチ候補をノード情報記憶部３２に格納された当該終点ノードに対応するノード情報から取得し、既存ブランチ候補と新ブランチ候補との経路コスト（経由リンク数比重を付与された経路コスト）を比較し、新ブランチ候補の経路コストが小さい場合のみ、ブランチ候補記憶部PQ ３３内の既存ブランチ候補を削除し、新ブランチ候補をブランチ候補記憶部PQ ３３に登録する。同時にノード情報記憶部３２内の当該終点ノードに対応する最短ブランチ候補を新ブランチ候補に置き換える。
【００５６】
また、最小木作成処理部２３は、ブランチ候補記憶部PQ ３３に登録されたブランチ候補から通常の経路コスト（経路を構成するリンクコストの総和）が最小の最小ブランチを取得し、当該最小ブランチの終点がマルチキャスト終点の場合は、当該最小ブランチを新たなブランチとしてブランチ記憶部R３４に格納する。
【００５７】
本実施の形態においては、終点を同じくするブランチ候補間のコスト比較のために用いる経路コストは、通常の経路コスト（経路を構成するリンクコストの総和）そのものではなく、経由リンク数比重を付与された経路コストである。この経路コストの算出の一例を以下に示す。
【００５８】
例えば、ノードxからノードyまでのブランチ候補の経路コストをbranch_cost(x, y)と記述すると、比重βを用いて、
branch_cost(x, y) = |branch(x, y)|+β|hop(branch(x, y))|
として計算する。但し、|branch(x, y)|はbranch(x, y)が経由するリンクのリンクコストの合計、|hop(branch(x, y))|はbranch(x, y)が経由するリンク数、βは正数である。すなわち、branch_cost(x, y)は、通常の経路コスト（経路を構成するリンクコストの総和）に、経由するリンク数（ホップ数と呼んでもよい）に予め定めた比重を乗じた値を加えた値である。ここでのリンク数は、当該ブランチ候補の属性から取得できる。また、比重βについては、例えば、最小木作成処理部２３におけるメモリ等に予め格納しておけばよい。
【００５９】
なお、上記の算出例は一例であり、経由するリンク数が経路コストに加味される手法であれば、この手法以外の手法で経路コストを求めてもよい。
【００６０】
本実施の形態に係る経路計算装置１は、中央処理ユニット（ＣＰＵ；Central Processing Unit）やメモリ等の記憶装置を備えるコンピュータを用いて実現できる。上記ネットワークトポロジー管理処理部２１、ブランチ候補処理部２２、最小木作成処理部２３は、何れも当該コンピュータのＣＰＵに、各処理部の処理に対応するプログラムを実行させることにより実現される。当該プログラムは、可搬メモリ等の記憶媒体に格納して配布し、上記コンピュータにインストールして用いてもよいし、ネットワーク上のサーバからダウンロードして上記コンピュータにインストールしてもよい。
【００６１】
また、図６に示す経路計算装置１のモジュールの区分けは一例に過ぎない。本実施の形態で説明したように、DDMCを改良したアルゴリズムに基づく処理を実現できるのであれば、図６に示すモジュールの区分に限られるわけではない。例えば、各処理部をより小さなモジュールに分けて構成してもよいし、経路計算装置１を１つのモジュールもしくは２つのモジュールで構成してもよい。
【００６２】
すなわち、経路計算装置１は、ブランチ候補集合PQを格納するブランチ候補記憶手段と、前記ブランチ候補記憶手段を参照しながら前記処理手順を実行するマルチキャスト経路作成処理手段と、を備え、前記マルチキャスト経路作成処理手段は、最初はマルチキャストの始点ノードを対象ノードとし、対象ノードvから発するすべてのリンクをブランチ候補としてブランチ候補集合PQに加え、PQ内最小ブランチ候補をPQから取り出し、そのブランチ候補の終点がマルチキャストの終点の場合は当該ブランチをマルチキャストブランチとして決定し、当該マルチキャストブランチの終点ノードをvとして前記処理手順の次ループに移り、PQから取り出された最小ブランチ候補の終点がマルチキャストの終点でない場合は当該最小ブランチの終点ノードがvとして設定され次ループに移るが、次にvから発するリンクは当該最小ブランチの後に加えられて新しいブランチ候補としてPQに加えられ、このループをマルチキャスト終点までのすべてのブランチが決定するまで繰り返す前記処理手順において、新ブランチ候補をブランチ候補集合PQに登録時、新ブランチ候補と、当該新ブランチ候補と終点を同じくするPQ内の既存ブランチ候補間で経路コストを比較する際に、経路コストを、ブランチ候補を構成する各リンクのコストと、ブランチ候補が経由するリンク数とを用いて算出するように構成されればよい。
【００６３】
また、上記のプログラムは、コンピュータを上記経路計算装置１として機能させるプログラムである。
【００６４】
（従来のDDMCアルゴリズムとの差異のまとめ）
上記の構成のDDMC最小木作成モジュール３００により実行されるDDMCアルゴリズムについて、図１に示す従来のDDMCアルゴリズムとの差異を説明する。図１のステップ１でPQに登録される新規ブランチ候補は、その経路コストを同じ終点までの既存のブランチ候補と比較して、新規ブランチ候補の経路コストが既存候補の経路コストより小さいときのみ、PQに登録される。従来のDDMCアルゴリズムでは経路コストはブランチ構成リンクの総和で決められたが、本実施の形態では、ブランチの構成リンク数に応じて比重をつけられた経路コストによって比較される。
【００６５】
図７は、本実施の形態において、PQへの登録ブランチが変わる例を示す。同図において、円はノードを示し、ノード間を結ぶ矢印つきの線は当該ノード間の方向性を持ったリンクを示し、矢印の方向のリンクコストが付与されている。
【００６６】
この図では、すでに終点であるノードyまでのブランチ候補としてx2-a-b-yがノードyのノード情報として存在し、新たにブランチ候補x1-s-yが生成された場合を示している。もし、ブランチの構成リンク数に応じた比重が付与されていない場合は既存ブランチ候補コストが３であり、新規ブランチ候補コストが４なので、PQ内に新規ブランチ候補が既存候補に置き換えられて登録されることはない。
【００６７】
一方、本実施の形態の上述した経路コストの算出式でβ=2と設定した場合、
新規ブランチ候補コスト: branch(x1-s-y)=4+4=8, 
既存ブランチ候補コスト：branch(x2-a-b-y)=3+6=9
となり、新規ブランチ候補のコストのほうが小さいのでPQに登録されることになる。  
このように本実施の形態では、PQにはよりリンクホップ数の小さいブランチ候補が登録されることになり、結果的に図１のステップ４でRに登録されるブランチのリンクホップ数が小さくなる。
【００６８】
経路コストの算出式においてβ値を大きくするとブランチ構成リンク数に応じた比重を大きくすることが可能であり、よりリンクホップ数が小さいブランチ候補がPQに登録されることになる。
【００６９】
ステップ２で最小ブランチ候補を選択する際には、PQに登録されたブランチ候補の中から、上記比重をつけたままの経路コストで最小ブランチ候補を選択するのではなく、通常の経路コスト（ブランチ構成リンクのリンクコストの総和）を用いることとしている。これにより、当該比重によるマルチキャストツリーコストの増大を抑制することを可能としている。  
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【００７０】
１  経路計算装置
２１  ネットワークトポロジー管理処理部
２２  ブランチ候補処理部
２３  最小木作成処理部
３１  リンク情報記憶部
３２  ノード情報記憶部
３３  ブランチ候補記憶部PQ 
３４  ブランチ記憶部R
１００  ネットワークトポロジー管理モジュール
２００  ブランチ候補処理モジュール
３００  DDMC最小木作成モジュール
【図１】
2013165463.tif 000003
【図２】
2013165463.tif 000004
【図３】
2013165463.tif 000005
【図４】
2013165463.tif 000006
【図５】
2013165463.tif 000007
【図６】
2013165463.tif 000008
【図７】
2013165463.tif 000009