(57)【要約】【課題】LSPを構成するリンクの数を最小限に抑えたLSP経路計算を可能にする。【解決手段】本発明は、ホップ数・合計コストが最小のノードを次の探索ノードとし、その隣接ノードについて、探索ノード経由の経路における第１のホップ数と第１の合計コストを計算し、隣接ノードについて、記憶手段にホップ数が格納されていない場合、または、他のノード経由の経路の第２のホップ数＞第１のホップ数の場合は、第１のホップ数、第１の合計コスト、探索ノード経由の経路を記憶手段に格納し、第２のホップ数＝第１のホップ数、かつ、他のノード経由の経路の第２の合計コスト＞第１の合計コストの場合は、該第１のホップ数、該第１の合計コスト、探索ノード経由の経路を記憶手段に格納し、終点ノード全てが訪問済みとなるまで、探索ノード決定処理以降の処理を繰り返し、経路を出力する。【選択図】図１
2008054211.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークトポロジにおいて、１つの始点ノードから１つの終点ノード、または、１つの始点ノードから複数の終点ノードまでの経路を計算する経路計算方法であって、
要求取得手段が、各ノードの接続関係を表したトポロジ情報及び、始点ノードと１つまたは複数の終点ノードを受け付ける要求取得ステップと、
探索ノード決定手段が、既に探索ノードとなったノードを保存する訪問済みノード記憶手段を参照して、訪問済みノードが１つもない場合は、前記始点ノードを探索ノードとして決定し、訪問済みノードがある場合は、まだ訪問済みとなっていないノードの中から、ノード毎のホップ数、合計コスト、経路を格納するノード情報記憶手段を参照して、ホップ数が最小のノードを探索ノードとして決定し、ホップ数が最小のノードが複数ある場合は、その中から合計コストが最小のノードを次の探索ノードとして決定し、該探索ノードを訪問済みノード記憶手段に記録する探索ノード決定ステップと、
経路パラメータ計算手段が、前記トポロジ情報を参照し、前記探索ノードの隣接ノードについて、前記探索ノード経由の経路における第１のホップ数と第１の合計コストを計算する経路パラメータ計算ステップと、
経路パラメータ判定手段が、前記隣接ノードについて、前記ノード情報記憶手段を参照し、ホップ数が格納されていない場合、または、他のノード経由の経路における第２のホップ数が既に計算されているが、前記第１のホップ数の方が小さい場合は、該第１のホップ数、前記第１の合計コスト、前記探索ノード経由の経路を該ノード情報記憶手段に格納し、該第２のホップ数が該第１のホップ数と等しく、かつ、他のノード経由の経路における第２の合計コストが既に計算されているが、該第１の合計コストの方が小さい場合は、該第１のホップ数、該第１の合計コスト、前記探索ノード経由の経路を該ノード情報記憶手段に格納する経路パラメータ判定ステップと、
前記終点ノード全てが前記訪問済みノード記憶手段に記録されるまで、探索ノード決定ステップ以降の処理を繰り返し、
経路出力手段が、前記ノード情報記憶手段を参照し、経路を出力する経路出力ステップと、
を行うことを特徴とする経路計算方法。
【請求項２】
終点ノードが複数ある場合に、
前記経路パラメータ計算ステップにおいて、
前記経路パラメータ計算手段は、前記探索ノードが終点ノードである場合には、第１のホップ数を１とする、
請求項１記載の経路計算方法。
【請求項３】
ネットワークトポロジにおいて、１つの始点ノードから１つの終点ノード、または、１つの始点ノードから複数の終点ノードまでの経路を計算する経路計算装置であって、
各ノードの接続関係を表したトポロジ情報・始点ノード及び終点ノードを記憶する要求情報記憶手段と、
既に探索ノードとなったノードを記憶する訪問済みノード記憶手段と、
ノード毎のホップ数、合計コスト、及び経路を記憶するノード情報記憶手段と
各ノードの接続関係を表したトポロジ情報及び、始点ノードと１つまたは複数の終点ノードを受け付け、前記要求情報記憶手段に格納する要求取得手段と、
前記訪問済みノード記憶手段を参照して、訪問済みノードが１つもない場合は、前記始点ノードを探索ノードとして決定し、訪問済みノードがある場合は、まだ訪問済みとなっていないノードの中から、前記ノード情報記憶手段を参照して、ホップ数が最小のノードを探索ノードとして決定し、ホップ数が最小のノードが複数ある場合は、その中から合計コストが最小のノードを次の探索ノードとして決定し、該探索ノードを訪問済みノード記憶手段に記録する探索ノード決定手段と、
前記トポロジ情報を参照し、前記探索ノードの隣接ノードについて、前記探索ノード経由の経路における第１のホップ数と第１の合計コストを計算する経路パラメータ計算手段と、
前記隣接ノードについて、前記ノード情報記憶手段を参照し、ホップ数が格納されていない場合、または、他のノード経由の経路における第２のホップ数が既に計算されているが、前記第１のホップ数の方が小さい場合は、該第１のホップ数、前記第１の合計コスト、前記探索ノード経由の経路を該ノード情報記憶手段に格納し、該第２のホップ数が該第１のホップ数と等しく、かつ、他のノード経由の経路における第２の合計コストが既に計算されているが、該第１の合計コストの方が小さい場合は、該第１のホップ数、該第１の合計コスト、前記探索ノード経由の経路を該ノード情報記憶手段に格納する経路パラメータ判定手段と、
前記終点ノード全てが前記訪問済みノード記憶手段に記録されるまで、前記探索ノード決定手段、前記経路パラメータ計算手段、前記経路パラメータ判定手段の処理を行った後、前記ノード情報記憶手段を参照し、経路を出力する経路出力手段と、
を有することを特徴とする経路計算装置。
【請求項４】
前記経路パラメータ計算手段は、
終点ノードが複数ある場合に、前記探索ノードが終点ノードである場合には、第１のホップ数を１とする手段を含む、
請求項３記載の経路計算装置。
【請求項５】
コンピュータを、
請求項３または４記載の経路計算装置として機能させることを特徴とする経路計算プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、経路計算方法及び装置及びプログラムに係り、特に、RSVP-TE(Resource Reservation Signaling Protocol for Traffic
Engineering)をベースとしたMPLS(Multi Protocol Label Switching)において、LSP(Label Switched Path)または、FRR(Fast Reroute)の迂回パスを構成するリンク数を最小に抑えるための経路計算方法及び装置及びプログラムに関する。
【背景技術】
【０００２】
RSVP-TEをベースとしたMPLSでは、LSPの経路を明示的に指定することができ、また、その経路に予約帯域を設定することが可能である。さらに、LSPを構成するリンク１本１本に、予め、FRRの迂回LSPを設定することで、経路上で障害が発生したときも高速に障害箇所を迂回することができる。一方、マルチキャスト通信にMPLSを適用する場合など、LSPを構成するリンク数が多くなると、ネットワークリソースを大量に予約する必要があり、また、FRRの迂回LSP設定の数も増大することになる。FRRの迂回LSPは、ネットワークが正常に運用されている間は利用されないため、FRRの設定数、そして、FRRの迂回LSPを構成するリンクもまた、できるだけ最小限に抑えることが期待される。このように、RSVP-TEを用いたMPLSでは、LSPの経路を最適に計算する必要がある。
【０００３】
図１６に示すように、RSVP-TEが動作しているMPLSネットワークにおいて、トポロジ情報収集機構によって集められたトポロジ情報１と、送信伝送装置、受信伝送装置などのLSP要求を受け付けて、LSP経路を計算し、その計算結果を経路設定機構３に出力するLSP経路計算装置２が用いられている。
【０００４】
このようなLSP経路計算装置において、従来技術であるダイクストラ経路計算方法が用いられている。このダイクストラ経路計算方法は、少ない計算時間で、始点ノードから終点ノードまでのリンクに付与されたリンクコストの合計が最小になるような経路を計算することができる（例えば、非特許文献１参照）。
【非特許文献１】WIDE2002年インターネットアーキテクチャ第６回講義資料  インターネット<http://www.soi.wide.ad.jp/class/20020022/materials_for_student/06/na-06.pdf>10ページ、１１ページ、[online]、掲載日不明、［2006年４月１０日検索］
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来のダイクストラ経路計算方法は、合計コストを小さく抑えることはできるが、LSPを構成するリンク数を少なくすることはできない。RSVP-TEを用いたLSPの経路計算では、リソースの有効利用やFRRの迂回LSP設定数増加防止を目的として、LSPを構成するリンク数をできるだけ少なくする必要がある。
【０００６】
本発明は、上記の点に鑑みなされたもので、LSPを構成するリンクの数を最小限に抑えたLSP経路計算が可能な経路計算方法及び装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
図１は、本発明の原理を説明するための図である。
【０００８】
本発明（請求項１）は、ネットワークトポロジにおいて、１つの始点ノードから１つの終点ノード、または、１つの始点ノードから複数の終点ノードまでの経路を計算する経路計算方法であって、
要求取得手段が、各ノードの接続関係を表したトポロジ情報及び、始点ノードと１つまたは複数の終点ノードを受け付ける要求取得ステップ（ステップ１）と、
探索ノード決定手段が、既に探索ノードとなったノードを格納する訪問済みノード記憶手段を参照して、訪問済みノードが１つもない場合は、始点ノードを探索ノードとして決定し、訪問済みノードがある場合は、まだ訪問済みとなっていないノードの中から、ノード毎のホップ数、合計コスト、経路を格納するノード情報記憶手段を参照して、ホップ数が最小のノードを探索ノードとして決定し、ホップ数が最小のノードが複数ある場合は、その中から合計コストが最小のノードを次の探索ノードとして決定し、該探索ノードを訪問済みノード記憶手段に記録する探索ノード決定ステップ（ステップ２）と、
経路パラメータ計算手段が、トポロジ情報を参照し、探索ノードの隣接ノードについて、探索ノード経由の経路における第１のホップ数と第１の合計コストを計算する経路パラメータ計算ステップ（ステップ３）と、
経路パラメータ判定手段が、隣接ノードについて、ノード情報記憶手段を参照し、ホップ数が格納されていない場合、または、他のノード経由の経路における第２のホップ数が既に計算されているが、第１のホップ数の方が小さい場合は（ステップ４、ａ）、該第１のホップ数、第１の合計コスト、探索ノード経由の経路を該ノード情報記憶手段に格納し、該第２のホップ数が該第１のホップ数と等しく（ステップ４、ｂ）、かつ、他のノード経由の経路における第２の合計コストが既に計算されているが、該第１の合計コストの方が小さい場合は（ステップ５、ｃ）、該第１のホップ数、該第１の合計コスト、探索ノード経由の経路を該ノード情報記憶手段に格納する（ステップ６）経路パラメータ判定ステップと、
終点ノード全てが訪問済みノード記憶手段に記録されるまで、探索ノード決定ステップ以降の処理を繰り返し（ステップ７）、
経路出力手段が、ノード情報記憶手段を参照し、経路を出力する経路出力ステップ（ステップ８）と、を行う。
【０００９】
また、本発明（請求項２）は、終点ノードが複数ある場合に、
経路パラメータ計算ステップにおいて、経路パラメータ計算手段は、
探索ノードが終点ノードである場合には、第１のホップ数を１とする。
【００１０】
図２は、本発明の原理構成図である。
【００１１】
本発明（請求項３）は、ネットワークトポロジにおいて、１つの始点ノードから１つの終点ノード、または、１つの始点ノードから複数の終点ノードまでの経路を計算する経路計算装置であって、
各ノードの接続関係を表したトポロジ情報・始点ノード及び終点ノードを記憶する要求情報記憶手段１０１と、
既に探索ノードとなったノードを記憶する訪問済みノード記憶手段と１０３、
ノード毎のホップ数、合計コスト、及び経路を記憶するノード情報記憶手段１０４と
各ノードの接続関係を表したトポロジ情報及び、始点ノードと１つまたは複数の終点ノードを受け付け、要求情報記憶手段１０１に格納する要求取得手段１１０と、
訪問済みノード記憶手段１０３を参照して、訪問済みノードが１つもない場合は、始点ノードを探索ノードとして決定し、訪問済みノードがある場合は、まだ訪問済みとなっていないノードの中から、ノード情報記憶手段１０４を参照して、ホップ数が最小のノードを探索ノードとして決定し、ホップ数が最小のノードが複数ある場合は、その中から合計コストが最小のノードを次の探索ノードとして決定し、該探索ノードを訪問済みノード記憶手段１０３に記録する探索ノード決定手段１２０と、
トポロジ情報を参照し、探索ノードの隣接ノードについて、探索ノード経由の経路における第１のホップ数と第１の合計コストを計算する経路パラメータ計算手段１３０と、
隣接ノードについて、ノード情報記憶手段１０４を参照し、ホップ数が格納されていない場合、または、他のノード経由の経路における第２のホップ数が既に計算されているが、第１のホップ数の方が小さい場合は、該第１のホップ数、第１の合計コスト、探索ノード経由の経路を該ノード情報記憶手段１０４に格納し、該第２のホップ数が該第１のホップ数と等しく、かつ、他のノード経由の経路における第２の合計コストが既に計算されているが、該第１の合計コストの方が小さい場合は、該第１のホップ数、該第１の合計コスト、探索ノード経由の経路を該ノード情報記憶手段１０４に格納する経路パラメータ判定手段１４０と、
終点ノード全てが訪問済みノード記憶手段に記録されるまで、探索ノード決定手段１２０、経路パラメータ計算手段１３０、経路パラメータ判定手段１４０の処理を行った後、ノード情報記憶手段１０４を参照し、経路を出力する経路出力手段１５０と、を有する。
【００１２】
また、本発明（請求項４）は、経路パラメータ計算手段１３０において、
終点ノードが複数ある場合に、探索ノードが終点ノードである場合には、第１のホップ数を１とする手段を含む。
【００１３】
本発明（請求項５）は、コンピュータを、請求項３または４記載の経路計算装置として機能させる経路計算プログラムである。
【発明の効果】
【００１４】
上記のように本発明によれば、ホップ数ができるだけ小さくなるように経路を決定するため、LSPを構成するリンク数を少なくすることが可能である。また、同時に、合計コストも考慮することにより、合計コスト増大を防いでいる。
【００１５】
これにより、ツリーを構成するリンク数をできるだけ少なく抑えてLSP経路を決定することができる。本発明は、RSVP-TEをベースとしたMPLSにおいて、FRRの迂回経路の設定数減少や、ネットワークリソースの有効利用において、効果を発揮する。
【発明を実施するための最良の形態】
【００１６】
以下、図面と共に本発明の実施の形態を説明する。
【００１７】
［第１の実施の形態］
本実施の形態では、マルチキャスト通信を行うためのマルチキャストLSPの経路を計算することとする。
【００１８】
図３は、本発明の第１の実施の形態における経路計算装置の構成を示す。
【００１９】
同図に示す経路計算装置１００は、要求取得部１１０、探索ノード決定部１２０、経路パラメータ計算部１３０、経路パラメータ判定部１４０、経路出力部１５０、トポロジ情報記憶部１０１、始点・終点ノード記憶部１０２、訪問済みノード記憶部１０３、ノード情報記憶部１０４から構成される。
【００２０】
トポロジ情報記憶部１０１は、トポロジ情報を格納する。
【００２１】
始点・終点ノード記憶部１０２は、始点ノード、終点ノードを格納する。
【００２２】
訪問済みノード記憶部１０３は、トポロジ情報中のノードのうち、既に探索ノードとなったノードを訪問済みノードとして格納する。
【００２３】
ノード情報記憶部１０４は、ノード毎の始点ノードからのホップ数及び合計コスト及び経路を格納する。
【００２４】
上記のトポロジ情報記憶部１０１、始点・終点ノード記憶部１０２、訪問済みノード記憶部１０３、ノード情報記憶部１０４は、メモリやハードディスク装置等の記憶媒体である。
【００２５】
要求取得部１１０は、外部からトポロジ情報、始点ノード、終点ノードを入力装置（図示せず）からの入力、または、記憶装置（図示せず）から読み出すことにより取得し、トポロジ情報をトポロジ情報記憶部１０１に、始点ノード・終点ノードを始点・終点ノード記憶部１０２に格納する。
【００２６】
探索ノード決定部１２０は、訪問済みノード記憶部１０３及びノード情報記憶部１０４を参照し、探索ノードを決定し、当該探索ノードを訪問済みノード記憶部１０３に格納する。記録する内容は、ノードを一意に識別可能なノードＩＤを用いるものとする。
【００２７】
経路パラメータ計算部１３０は、トポロジ情報記憶部１０１を参照し、探索ノード決定部１２０で決定された探索ノードの隣接ノードについて、上記の探索ノード経由の経路における第１のホップ数と第１の合計コストを計算する。
【００２８】
経路パラメータ判定部１４０は、ノード情報記憶部１０４を参照し、上記の隣接ノードについて、既に格納されている第２のホップ数と合計コストと、第１のホップ数と合計コストを比較し、ノード情報記憶部１０４の情報を更新する。
【００２９】
経路出力部１５０は、ノード情報記憶部１０４に格納された経路を出力する。
【００３０】
次に、上記の構成における動作を説明する。
【００３１】
図４は、本発明の第１の実施の形態における動作のフローチャート（その１）、図５は、本発明の第１の実施の形態における動作のフローチャート（その２）である。
【００３２】
まず、要求取得部１１０が、ネットワークの各ノードの接続関係を表したトポロジ情報と、始点ノード及び終点ノードを入力装置（図示せず）や記憶装置（図示せず）から取得する。トポロジ情報には、各ノードの接続関係の他、各リンクのコスト値を含む。また、本実施の形態では、マルチキャスト経路を算出するため、終点ノードは、複数のノードとなる。また、取得したトポロジ情報をトポロジ情報記憶部１０１に、始点ノードと終点ノードを、始点・終点ノード記憶部１０２に保存する（ステップ１０１）。
【００３３】
次に、探索ノード決定部１２０が、訪問済みノード記憶部１０２に何らかのノードが記録されているかを判定する。何も記録されていない場合は（ステップ１０２、Ｎｏ）、前ステップで決定された始点ノードを探索ノードとして決定し、当該ノードを訪問済みノード記憶部１０３に記録する（ステップ１０３）。訪問済みノード記憶部１０３に何らかのノードが記録されている場合（ステップ１０２、Ｙｅｓ）、まだ訪問済みとなっていないノードについて、ノード情報記憶部１０４に保存されているノードに対するホップ数と合計コストと経路を参照し、ホップ数が最小のノードが複数あるかどうかを判定する（ステップ１０４）。ホップ数が最小のノードが１つの場合は（ステップ１０４、Ｎｏ）、該ノードを探索ノードとして決定し、訪問済みノード記憶部１０３に記録する（ステップ１０５）。ホップ数が最小のノードが複数ある場合は、ホップ数が最小のノードの中で、合計コストが最小のノードをひとつ選び、該ノードを探索ノードとして決定し、訪問済みノード記憶部１０３に記録する（ステップ１０６）。
【００３４】
次に、経路パラメータ計算部１４０が、探索ノードｖの隣接ノードｕについて、探索ノード経由のホップ数Ｈ１と、合計コストＣ１を計算する。ここで、Ｈ１＝Ｉｄ＊Ｈ（ｖ）＋１で、Ｉｄは、探索ノードが終点ノードが１つであれば０、そうでなければ１をとる値、Ｈ（ｖ）は、探索ノードのホップ数である。また、Ｃ１＝Ｃ（ｖ）＋ｗ（ｖ，ｕ）で、Ｃ（ｖ）は、探索ノードの合計コスト、ｗ（ｖ，ｕ）は探索ノードと隣接ノード間のリンクのコスト値である。Ｈ（ｖ）やＣ（ｖ）は、ノード情報記憶部１０４に保存されている値を用いる。ノード情報記憶部１０４に探索ノードｖの情報が何も保存されていない場合、Ｈ（ｖ）とＣ（ｖ）は０である（ステップ１０７）。
【００３５】
次に、経路パラメータ判定部１４０が、ノード情報記憶部１０４を参照し、上記の隣接ノードｕに対して、他のノード経由のホップ数Ｈと合計コストＣが既に保存されているかどうかを判定する。保存されていない場合は（ステップ１０８、Ｎｏ）、ノード情報記憶部１０４の隣接ノードｕに、Ｈ１とＣ１及び経路として、探索ノードを保存する（ステップ１１１）。既にＨとＣが保存されている場合は（ステップ１０８、Ｙｅｓ）、まず、Ｈ１＜Ｈかどうかを判定し、そうであれば（ステップ１０９、Ｙｅｓ）、ノード情報記憶部１０４の隣接ノードｕに、Ｈ１とＣ１と経路（探索ノード）を上書きする（ステップ１１１）。Ｈ１＜Ｈでない場合で（ステップ１０９、Ｎｏ）、Ｈ１＝ＨかつＣ１＜Ｃである場合も（ステップ１１０、Ｙｅｓ）、ノード情報記憶部１０４の隣接ノードｕに、Ｈ１とＣ１と経路（探索ノード）を上書きする（ステップ１１１）。
【００３６】
探索ノードに対する隣接ノード全てに対し、Ｈ１とＣ１の計算が行われるまで、経路パラメータ計算部１３０以下の処理（ステップ１０７以降の処理）を繰り返し行う（ステップ１１２、Ｙｅｓ）。
【００３７】
全ての終点ノードが、訪問済みノード記憶部１０３に保存されるまで（ステップ１１３、Ｎｏ）、探索ノード決定部１２０以下の処理（ステップ１０２以降の処理）を繰り返し行う。
【００３８】
全ての終点ノードがノード記憶部１０４に保存されたら（ステップ１１３、Ｙｅｓ）、最後に経路出力部１５０がノード情報記憶部１０４を参照し、経路を出力する。この経路はノード情報記憶部１０４の各ノードに保存されている経路（ノード）を辿ることで得られる（ステップ１１４）。
【００３９】
以下に、上記の動作の具体例を示す。
【００４０】
以下の説明で利用するトポロジの例を図６、各動作を説明するための図を図７〜図１４に示す。
【００４１】
まず、要求取得部１１０が、トポロジ情報を取得する。各ノードの接続関係、各リンクのコスト値は、図６に示すとおりである。次に、要求取得部１１０は、始点ノードと終点ノードを取得する。本具体例では、始点ノードを「ノード１」、終点ノードＡを「ノード６」、終点ノードＢを「ノード１３」、終点ノードＣを「ノード１２」、終点ノードＤを「ノード１５」とする。要求取得部１１０は、トポロジ情報をトポロジ情報記憶部１０１、始点ノードと終点ノードを始点・終点ノード記憶部１０２に保存する（ステップ１０１）。
【００４２】
次に、探索ノード決定部１２０が、訪問済みノード記憶部１０３に何らかのノードが記録されているかを判定する。最初は、何も記録されていないため（ステップ１０２、Ｎｏ）、始点ノードを探索ノードとして決定し、当該ノードを訪問済みノード記憶部１０３に記録する（ステップ１０３）。この例を図７（ａ）に示す。
【００４３】
次に、経路パラメータ計算部１３０が、探索ノードｖの隣接ノードｕについて、探索ノード経由のホップ数Ｈ１と、合計コストＣ１を計算する（ステップ１０７）。更に、経路パラメータ判定部１４０が、ノード情報記憶部１０４を参照し、隣接ノードｕに対して、他のノード経由のホップ数Ｈと合計コストＣが既に保存されているかどうかを判定する。最初は保存されていないため（ステップ１０８、Ｎｏ）、ノード情報記憶部１０４の隣接ノードｕに、Ｈ１とＣ１及び、経路として、探索ノードを保存する（ステップ１１１）。経路パラメータ計算と、経路パラメータ判定の処理を全ての隣接ノードに対して行う（ステップ１１２、Ｙｅｓ）。この例を図７（ｂ）に示す。なお、図７（ｂ）において、ホップ数はＨ，合計コストはＣ、経路はＲで示す。
【００４４】
終点ノードが訪問済みノード記憶部１０３に記録されていないので（ステップ１１３、Ｎｏ）、探索ノード決定の処理（ステップ１０２）に戻る。
【００４５】
探索ノード決定部１２０が、訪問済みノード記憶部１０３を参照し、ノードが記録されているため（ステップ１０２、Ｙｅｓ）、訪問済みとなっていないノードについて、ノード情報記憶部１０４に保存されているノードに対するホップ数と合計コストをと経路を参照し、ホップ数が最小のノードが複数あるかどうかを判定する（ステップ１０４）。本具体例では、ホップ数が最小の「１」を持つノードが２つあるため（ステップ１０４、Ｙｅｓ）、ホップ数が最小のノードの中で、合計コストが最小のノードを１つ選ぶ。ここでは、合計コストが「１」の「ノード５」が探索ノードとして選択され、訪問済みノード記憶部１０３に記録される（ステップ１０６）。この例を図７（ｃ）に示す。
【００４６】
次に、経路パラメータ計算部１４０が、探索ノードｖの隣接ノードｕについて、探索ノード経由のホップ数Ｈ１と、合計コストＣ１を計算する（ステップ１０７）。
【００４７】
さらに、経路パラメータ判定部１４０が、ノード情報記憶部１０４を参照し、上記の隣接ノードｕに対して、他のノード経由のホップ数Ｈと合計コストＣが既に保存されているかどうかを判定する（ステップ１０８）。保存されていない場合には（ステップ１０８、Ｎｏ）、ノード情報記憶部１０４の隣接ノードｕに、Ｈ１とＣ１及び、経路として、探索ノードを保存する（ステップ１１１）。既に、ＨとＣが保存されているノードについては、Ｈ１＜Ｈ（ステップ１０９，Ｙｅｓ）、または、Ｈ１＝ＨかつＣ１＜Ｃの場合（ステップ１１０，Ｙｅｓ）、Ｈ１とＣ１を新たなＨ，Ｃとして、また、探索ノードを経路としてノード情報記憶部１０４に保存する。経路パラメータ計算と、経路パラメータ判定の処理を全ての隣接ノードに対して行う（ステップ１１２、Ｙｅｓ）。この例を図７（ｄ）に示す。
【００４８】
上記、探索ノード決定、経路パラメータ計算、経路パラメータ判定の処理を繰り返し行うと、探索ノードが、ノード２、ノード６、ノード７、ノード１０、ノード３、ノード９、ノード１３、ノード１４、ノード８、ノード１１、ノード１５、ノード１６、ノード１２の順に決定される。その例を図８（ｅ）〜図１４（ｃｃ）に示す。ここで、終点ノードが探索ノードとなった場合、Ｈ１を求める際のＩｄがゼロとなることに注意が必要である。
【００４９】
訪問済みノード記憶部１０３に全ての終点ノードが保存されたため（ステップ１１３、Ｙｅｓ）、最後に経路出力部１５０がノード情報記憶部１０４を参照し、マルチキャスト経路を、例えば、以下のように出力し、処理を終了する（ステップ１１４）。
【００５０】
・終点ノードＡへの経路：１，５，６
・終点ノードＢへの経路：１，５，９，１３
・終点ノードＣへの経路：１，５，６，７，１１，１５，１２
・終点ノードＤへの経路：１，５，６，７，１１，１５
本実施の形態によれば、始点ノードから終点ノードまでの最小ホップ数が小さい順に経路を計算していくため、無駄に遠回りする経路が生成されることを防ぐことが可能である。また、経路探索の途中で他の終点ノードを通過する経路を優先的に選択することにより、リンク数を最小限に抑えることが可能である。
【００５１】
［第２の実施の形態］
本実施の形態では、第１の実施の形態において計算されたマルチキャストLSPを構成するリンクに、FRRの迂回LSPを設定することを想定し、迂回LSPの経路計算を行う。
【００５２】
経路計算装置の構成、及び動作のフローチャートは、第１の実施の形態と同様であるが、FRRの迂回経路は、保護対象となるリンクの両端ノードが始点ノード・終点ノードとなるので、終点ノードは複数でなく１つとなる。
【００５３】
以下に、上記の動作の具体例を説明する。
【００５４】
以下の説明で利用するトポロジを図１５に示す。本実施の形態では、第１の実施の形態で計算されたマルチキャストLSPを構成するリンクの中で、ノード６−ノード７間のリンクを保護対象とすることとする。従って、ノード６−ノード７間のリンクが削除されたトポロジを取得する。また、マルチキャストLSPの方向を考慮し、FRRの迂回LSP経路の始点ノードは「ノード６」、終点ノードは「ノード７」となる。
【００５５】
具体的な経路計算ステップは、第１の実施の形態と同様である。
【００５６】
計算の結果、以下の経路が出力される。
【００５７】
・ノード６−ノード７間の迂回LSP：６，１０，７
上記の第２の実施の形態によれば、FRRの迂回LSPの経路もリンク数最小で計算することが可能であるため、リソースの有効利用が可能となる。
【００５８】
なお、上記の第１、第２の実施の形態の動作をプログラムとして構築し、経路計算装置として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。
【００５９】
また、構築されたプログラムを、コンピュータ読み取り可能なディスク装置や、フレキシブルディスク、ＣＤ−ＲＯＭ等の可搬記憶媒体に格納し、コンピュータにインストールして実行させる、または、配布することが可能である。
【００６０】
なお、本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において種々変更・応用が可能である。
【産業上の利用可能性】
【００６１】
本発明は、RSVP-TEが動作するMPLSネットワークにおける経路計算技術に適用可能である。
【図面の簡単な説明】
【００６２】
【図１】本発明の原理を説明するための図である。
【図２】本発明の原理構成図である。
【図３】本発明の第１と第２の実施の形態におけるマルチ経路計算装置の構成図である。
【図４】本発明の第１と第２の実施の形態における動作のフローチャート（その１）である。
【図５】本発明の第１と第２の実施の形態における動作のフローチャート（その２）である。
【図６】本発明の第１と第２の実施の形態における動作例で利用するトポロジを示す図である。
【図７】本発明の第１の実施の形態における動作例を説明するための図（その１）である。
【図８】本発明の第１の実施の形態における動作例を説明するための図（その２）である。
【図９】本発明の第１の実施の形態における動作例を説明するための図（その３）である。
【図１０】本発明の第１の実施の形態における動作例を説明するための図（その４）である。
【図１１】本発明の第１の実施の形態における動作例を説明するための図（その５）である。
【図１２】本発明の第１の実施の形態における動作例を説明するための図（その６）である。
【図１３】本発明の第１の実施の形態における動作例を説明するための図（その７）である。
【図１４】本発明の第１の実施の形態における動作例を説明するための図（その８）である。
【図１５】本発明の第２の実施の形態における動作例で利用するトポロジを示す図である。
【図１６】LSP経路計算装置を説明するための図である。
【符号の説明】
【００６３】
１  トポロジ情報
２  LSP経路計算装置
３  経路設定機構
１００  経路計算装置
１０１  要求情報記憶手段、トポロジ情報記憶部
１０２  始点・送信ノード記憶部
１０３  訪問済みノード記憶部
１０４  ノード情報記憶部
１１０  要求取得手段、要求取得部
１２０  探索ノード決定手段、探索ノード決定部
１３０  経路パラメータ計算手段、経路パラメータ計算部
１４０  経路パラメータ判定手段、経路パラメータ判定部
１５０  経路出力手段、経路出力部
【図１】
2008054211.tif 000003
【図２】
2008054211.tif 000004
【図３】
2008054211.tif 000005
【図４】
2008054211.tif 000006
【図５】
2008054211.tif 000007
【図６】
2008054211.tif 000008
【図７】
2008054211.tif 000009
【図８】
2008054211.tif 000010
【図９】
2008054211.tif 000011
【図１０】
2008054211.tif 000012
【図１１】
2008054211.tif 000013
【図１２】
2008054211.tif 000014
【図１３】
2008054211.tif 000015
【図１４】
2008054211.tif 000016
【図１５】
2008054211.tif 000017
【図１６】
2008054211.tif 000018