(57)【特許請求の範囲】
【請求項１】
ネットワークの状態変化を検知する状態変化検知部と、
前記ネットワークの状態に応じた経路を決定する経路計算部と、
前記ネットワークの状態に変化が生じたときに、前記経路計算部により計算される前記ネットワークの状態に変化が生じる前の最短パスツリーと前記ネットワークの状態に変化が生じた後の最短パスツリーとを比較する処理を行うことで、前記ネットワーク中のノード装置が経路更新を必要とするかを判断するために必要な情報を作成する計算実行ノード決定部と
を有する経路制御装置。
【請求項２】
前記計算実行ノード決定部における前記最短パスツリーを比較する処理は、前記ネットワークの状態に変化が生じた箇所から各宛先ノード装置までの距離を利用する請求項１に記載の経路制御装置。
【請求項３】
前記宛先ノード装置として、リンクに故障が発生する前の最短パス上に前記故障が生じたリンクが存在する宛先ノード装置が設定される請求項２に記載の経路制御装置。
【請求項４】
前記計算実行ノード決定部は、前記ネットワークの状態に変化が生じた箇所と他ノード装置との距離を用いることで、前記他ノード装置が経路更新を必要とするか判断する請求項１乃至３の何れかに記載の経路制御装置。
【請求項５】
前記計算実行ノード決定部は、前記ネットワークの状態に変化が生じた後の最短パスツリーに沿って順に、前記他ノード装置が経路更新を必要とするか判断する請求項４に記載の経路制御装置。
【請求項６】
前記計算実行ノード決定部が作成する情報は、経路更新を必要とするノード装置の識別子である請求項１乃至５の何れかに記載の経路制御装置。
【請求項７】
前記経路制御装置は、前記計算実行ノード決定部により決定されたノード装置の識別子を含むメッセージを作成するメッセージ作成部をさらに有する請求項６に記載の経路制御装置。
【請求項８】
前記経路制御装置は、他の経路制御装置における前記メッセージ作成部により作成されたメッセージを受信するメッセージ受信部と、
前記メッセージ受信部が受信したメッセージ中に前記経路制御装置自身の識別子が含まれているかを調べ、前記経路計算部に経路計算を行うよう指示する計算実行判断部と
をさらに有する請求項７に記載の経路制御装置。
【請求項９】
前記経路制御装置は、他の経路制御装置における前記メッセージ作成部により作成されたメッセージを受信するメッセージ受信部と、
前記メッセージ受信部が受信したメッセージ中に前記経路制御装置自身に隣接するノード装置の識別子が含まれているかを調べ、メッセージ送信部に前記メッセージ受信部が受信したメッセージを転送するよう指示する転送判断部と
をさらに有する請求項７に記載の経路制御装置。
【請求項１０】
前記計算実行ノード決定部が作成する情報は、前記経路制御装置自身から経路更新を必要とするノード装置までの距離である請求項１乃至５の何れかに記載の経路制御装置。
【請求項１１】
前記経路制御装置は、前記計算実行ノード決定部により決定された経路更新を必要とするノード装置までの距離の情報を含むメッセージを作成するメッセージ作成部をさらに有する請求項１０に記載の経路制御装置。
【請求項１２】
前記経路制御装置は、他の経路制御装置における前記メッセージ作成部が作成したメッセージを受信するメッセージ受信部と、
前記メッセージ受信部が受信したメッセージ中に含まれる経路更新を必要とするノード装置までの距離と、前記メッセージ受信部が受信したメッセージを作成した経路制御装置と前記経路制御装置自身との距離を比較し、前記経路計算部に経路計算を行うよう指示する計算実行判断部と
をさらに有する請求項１１に記載の経路制御装置。
【請求項１３】
前記経路制御装置は、他の経路制御装置における前記メッセージ作成部が作成したメッセージを受信するメッセージ受信部と、
前記メッセージ受信部が受信したメッセージ中に含まれる経路更新を必要とするノード装置までの距離と、前記メッセージ受信部が受信したメッセージを作成した経路制御装置と前記経路制御装置自身に隣接するノード装置との距離との比較を行い、メッセージ送信部に前記メッセージ受信部が受信したメッセージの転送を行うよう指示する転送判断部とを
有する請求項１１に記載の経路制御装置。
【請求項１４】
前記経路制御装置は、外部ネットワークと接続するネットワークインターフェイスをさらに有し、前記状態変化検知部は前記ネットワークインターフェイスの状態変化を検知する請求項１乃至１３の何れかに記載の経路制御装置。
【請求項１５】
前記経路制御装置は、前記計算実行ノード決定部により決定された各ノード装置を起点とする経路計算をそれぞれ行うよう経路計算部に指示する請求項１乃至１４の何れかに記載の経路制御装置。
【請求項１６】
前記状態変化検知部は、他のノード装置から検知したネットワーク状態変化の通知メッセージを受信する請求項１乃至１３又は１５に記載の経路制御装置。
【請求項１７】
ネットワークの状態変化を検知する工程と、
前記ネットワークの状態に応じた経路を決定する工程と、
前記ネットワークの状態に変化が生じたときに、前記経路を決定する工程により計算される前記ネットワークの状態に変化が生じる前の最短パスツリーと前記ネットワークの状態に変化が生じる後の最短パスツリーとを比較することで、前記ネットワーク中のノード装置が経路更新を必要とするかを判断するために必要な情報を作成する工程と
を有する経路制御装置の経路制御方法。
【請求項１８】
前記最短パスツリーの比較において、前記ネットワークの状態に変化が生じた箇所から各宛先ノード装置までの距離を利用する請求項１７に記載の経路制御方法。
【請求項１９】
前記宛先ノード装置としては、リンクに故障が発生する前の最短パス上に前記故障が生じたリンクが存在する宛先ノード装置が設定される請求項１８に記載の経路制御方法。
【請求項２０】
前記情報を作成する工程は、前記ネットワークの状態に変化が生じた箇所と他ノード装置との距離を用いることで、前記他ノード装置が経路更新を必要とするか判断する工程を含む請求項１７乃至１９に記載の経路制御方法。
【請求項２１】
前記情報を作成する工程は、前記ネットワークの状態に変化が生じた後の最短パスツリーに沿って順に、前記他ノード装置が経路更新を必要とするか判断する工程を含む請求項２０に記載の経路制御方法。
【請求項２２】
前記情報を作成する工程において作成される情報は、経路更新を必要とするノード装置の識別子である請求項１７乃至２１に記載の経路制御方法。
【請求項２３】
前記経路制御方法は、前記情報を作成する工程により決定されたノード装置の識別子を含むメッセージを作成する工程をさらに有する請求項２２に記載の経路制御方法。
【請求項２４】
前記経路制御方法は、他の経路制御装置により実行される前記メッセージを作成する工程により作成されたメッセージを受信する工程と、前記メッセージを受信する工程により受信したメッセージ中に前記経路制御装置自身の識別子が含まれているかを調べ、前記経路を決定する工程を実行するか否か判断する工程をさらに有する請求項２３に記載の経路制御方法。
【請求項２５】
前記経路制御方法は、他の経路制御装置により実行される前記メッセージを作成する工程により作成されたメッセージを受信する工程と、前記メッセージを受信する工程が受信したメッセージ中に前記経路制御装置に隣接するノード装置の識別子が含まれているかを調べ、前記メッセージを受信する工程が受信したメッセージを転送するか否か判断する工程をさらに有する請求項２３に記載の経路制御方法。
【請求項２６】
前記情報を作成する工程において作成される情報は、前記経路制御装置から経路更新を必要とするノード装置までの距離である請求項１７乃至２１の何れかに記載の経路制御方法。
【請求項２７】
前記経路制御方法は、前記情報を作成する工程により決定された経路更新を必要とするノード装置までの距離の情報を含むメッセージを作成する工程をさらに有する請求項２６に記載の経路制御方法。
【請求項２８】
前記経路制御方法は、他の経路制御装置により実行される前記メッセージを作成する工程により作成されたメッセージを受信する工程と、
前記メッセージを受信する工程が受信したメッセージ中に含まれる経路更新を必要とするノード装置までの距離と、前記メッセージを受信する工程が受信したメッセージを作成した経路制御装置と前記経路制御装置自身との距離を比較し、前記経路を決定する工程を実行するか否か判断する工程と
をさらに有する請求項２７に記載の経路制御方法。
【請求項２９】
前記経路制御方法は、他の経路制御装置により実行される前記メッセージを作成する工程により作成されたメッセージを受信する工程と、
前記メッセージを受信する工程が受信したメッセージ中に含まれる経路更新を必要とするノード装置までの距離と、前記メッセージを受信する工程が受信したメッセージを作成した経路制御装置と前記経路制御装置自身との距離を比較し、前記メッセージを受信する工程が受信したメッセージの転送を行うか否か判断する工程をさらに有する請求項２７に記載の経路制御方法。
【請求項３０】
前記状態変化を検知する工程において、ネットワークインターフェイスの状態変化を検知する請求項１７乃至２９の何れかに記載の経路制御方法。
【請求項３１】
前記経路を決定する工程において、前記情報を作成する工程により決定された各ノード装置を起点とする経路計算をそれぞれ実行する請求項１７乃至３０に記載の経路制御方法。
【請求項３２】
前記状態変化を検知する工程は、他のノード装置から検知したネットワーク状態変化の通知メッセージを受信する工程を含む請求項１７乃至２９又は３０に記載の経路制御方法。
【請求項３３】
請求項１７乃至３２に記載の経路制御方法の機能をコンピュータで実現するための経路制御プログラム。
【請求項３４】
ネットワークの状態変化を検知する状態変化検知部と、前記ネットワークの状態に応じた経路を決定する経路計算部とを有するネットワークシステムであって、
前記ネットワークの状態に変化が生じたときに、前記経路計算部により計算される前記ネットワークの状態に変化が生じる前の最短パスツリーと前記ネットワークの状態に変化が生じる後の最短パスツリーとを比較することで、前記ネットワーク中のノード装置が経路更新を必要とするかを判断するために必要な情報を作成する計算実行ノード決定部を有する
ネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動的に経路制御を行っているネットワークシステム、このようなネットワークシステムにおける経路制御装置、経路制御方法、及び経路制御プログラムに関する。
【背景技術】
【０００２】
インターネットに代表されるネットワーク技術の普及に伴い、ネットワークの安定性向上が急務となっている。ネットワークを構成するノード装置やリンクを予め冗長に構成しておき、動的経路制御を行うことで、ネットワーク信頼性の向上を行っている。動的経路制御を行っているネットワークでは、ネットワークを構成するノード装置同士がお互いの接続状況に関する情報を交換し、それらの情報を元に最適な経路を自律的に決定している。例えば、自身に接続するリンクや隣接するノード装置に故障が発生した場合、その故障を検知したノード装置は他のノード装置に通知を行う。このことによりネットワーク中の全ノード装置は、故障したノード装置やリンクを除いた状態で経路計算を行い、新たな経路を決定する。このように動的経路制御は故障が発生しても、残りのノード装置やリンクのみで通信サービスを継続することを可能としている。【０００３】
特許文献１には、以下の方法が提案されている。ネットワークに設置されたノードが、ネットワークのツリー情報を他ノードから取得あるいは自ら計算して把握する。このノードは、この把握したツリー情報に基づき自ノードの入出力リンクをツリーの一部とするノードの集合をリンク故障の影響範囲として予め抽出する。ノードは、リンクの故障検出時には故障を検出した旨を影響範囲に限定して通知する。自ノードが故障を検出したとき、あるいは、他ノードから前記通知を受けとったときには、経路を再計算する。【０００４】
このような動的経路制御を実現するために、標準化団体であるＩＥＴＦ（Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ）において、非特許文献１で示されるような経路制御プロトコルが標準化されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−２５８９２６号公報
【非特許文献】
【０００６】
【非特許文献１】Ｊ．Ｍｏｙ：”ＯＳＰＦ  Ｖｅｒｓｉｏｎ  ２”，  ＲＦＣ  ２３２８，Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ，１９９８．
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ネットワークを構成するリンクやノードに故障が発生した場合、その故障はネットワーク全体に通知される。通知を受け取ったノードは、故障リンクを取り除いたトポロジーを元に経路の再計算を行い、自身の経路表を更新する。一般的に故障箇所から遠いノード装置は、故障の発生前後で経路表の内容に差がない場合が多いが、そのことは故障発生後経路の再計算を行ってみるまでわからない。そのためネットワーク中に故障が発生した場合、全ノードが経路計算を行う必要がある。このため短い時間内に複数の故障が続けて発生するようなケースでは、各ノードにおける経路計算の負荷が増大し、他の処理に影響を与えるという課題があった。【０００８】
特許文献１では、リンクの故障により影響を受けるノードを、各ノードのツリー情報の比較を行うことにより求める方法が提案されている。しかしながらこの提案では、全ノード間において相互にツリー情報の交換を事前に行っておく必要がある。このため、ネットワークを構成するノードの数が多くなった場合、交換すべきツリー情報が多くなり、これらの情報の交換のための負荷が大きくなるという課題があった。また特許文献１には、上記のツリー情報の交換を行わずに、すべて自ら計算する方法について記載されている。しかし、ネットワークを構成するノード数が多くなった場合、それぞれのノードをルートとするツリー情報を計算する必要があるため、これらの計算の負荷が大きくなるという課題があった。【０００９】
本発明は上述の課題を解決するために、ネットワーク全体における経路計算の負荷が低く、高い安定性を実現するネットワークシステム、このようなネットワークシステムにおける経路制御装置、経路制御方法、及び経路制御プログラムを提供することを目的の一例とする。
【課題を解決するための手段】
【００１０】
本発明の経路制御装置は、ネットワークの状態変化を検知する状態変化検知部と、前記ネットワークの状態に応じた経路を決定する経路計算部と、前記ネットワークの状態に変化が生じたときに、前記経路計算部により計算される前記ネットワークの状態に変化が生じる前の最短パスツリーと前記ネットワークの状態に変化が生じた後の最短パスツリーとを比較する処理を行うことで、前記ネットワーク中のノード装置が経路更新を必要とするかを判断するために必要な情報を作成する計算実行ノード決定部とを有する。【００１１】
本発明の経路制御装置の経路制御方法は、ネットワークの状態変化を検知する工程と、前記ネットワークの状態に応じた経路を決定する工程と、前記ネットワークの状態に変化が生じたときに、前記経路を決定する工程により計算される前記ネットワークの状態に変化が生じる前の最短パスツリーと前記ネットワークの状態に変化が生じる後の最短パスツリーとを比較することで、前記ネットワーク中のノード装置が経路更新を必要とするかを判断するために必要な情報を作成する工程とを有する。【００１２】
本発明のネットワークシステムは、ネットワークの状態変化を検知する状態変化検知部と、前記ネットワークの状態に応じた経路を決定する経路計算部と、前記ネットワークの状態に変化が生じたときに、前記経路計算部により計算される前記ネットワークの状態に変化が生じる前の最短パスツリーと前記ネットワークの状態に変化が生じる後の最短パスツリーとを比較することで、前記ネットワーク中のノード装置が経路更新を必要とするかを判断するために必要な情報を作成する計算実行ノード決定部を有する。
【発明の効果】
【００１３】
本発明の実施形態によれば、故障を検知したノードが故障した前の経路計算結果と故障した後の経路計算結果を用いることで、経路計算を行うべきノードを事前に決定する。故障検知ノードは、決定したノードのＩＤをリンク故障を通知するメッセージとともに通知することで、経路更新不要なノードにおいて経路計算を行わないようにする。このことにより、ネットワーク全体における負荷の低減を実現し、ネットワークの安定性向上を実現する。【００１４】
また、特許文献１ではリンク故障により影響を受けるノードを決定するために、他ノードからツリー情報を受け取ったツリー情報を利用している。一方で、本発明の実施形態では経路計算部により経路計算の過程において得られる最短パスツリーを用いている点が異なる。このため本発明の実施形態では、リンク故障により影響を受けるノードを決定するために必要となる情報を他のノードから入手する必要がないという利点がある。また、特許文献１における前記ツリー情報を自ら計算する方法と比較した場合、本発明の実施形態ではより少ない計算量でリンク故障により影響を受けるノードを決定できる。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１の実施形態におけるノード装置の構成を示すブロック図である。
【図２】本発明の第１の実施形態におけるノード装置を配置したネットワーク図である。
【図３】本発明の第１の実施形態における故障リンクに接続している ノード装置の動作を示すフローチャートである。
【図４】本発明の第１の実施形態における経路計算時に構成される最短パスツリー構造を示す図である。
【図５】本発明の第１の実施形態におけるＯＳＰＦメッセージにおけるＬＳＡヘッダの各フィールドの構成を示す図である。
【図６】本発明の第１の実施形態における更新必要ノードＬＳＡの各フィールドの構成を示す図である。
【図７】本発明の第１の実施形態における計算必要ノードの判定処理を示すフローチャートである。
【図８】本発明の第１の実施形態における計算必要ノードの判定処理時に構成される逆方向の最短パスツリー構造を示す図である。
【図９】本発明の第１の実施形態における計算必要ノードの判定処理において使用する不等式を説明する図である。
【図１０】本発明の第１の実施形態における故障リンクに接続していないノード装置の動作を示すフローチャートである。
【図１１】本発明の第２の実施形態におけるノード装置の構成を示すブロック図である。
【図１２】本発明の第２の実施形態における故障リンクに接続していないノード装置の動作を示すフローチャートである。
【図１３】本発明の第３の実施形態におけるノード装置及び経路計算サーバの構成を示すブロック図である。
【図１４】本発明の第３の実施形態におけるノード装置及び経路計算サーバを配置したネットワーク図である。
【図１５】本発明の第３の実施形態におけるノード装置及び経路計算サーバの動作を示すフローチャートである。
【図１６】本発明の第４の実施形態におけるノード装置の構成を示すブロック図である。
【図１７】本発明の第４の実施形態における故障リンクに接続しているノード装置の動作を示すフローチャートである。
【図１８】本発明の第４の実施形態における最大コスト値を算出する処理を示すフローチャートである。
【図１９】本発明の第４の実施形態における故障リンクに接続していないノード装置の動作を示すフローチャートである。
【図２０】本発明の第４の実施形態におけるコストの比較処理を示すフローチャートである。
【図２１】本発明の第４の実施例における更新距離コスト値ＬＳＡの各フィールドの構成を示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態について図面を参照しながら説明する。
＜第１の実施形態＞
図１は、本発明の第１の実施形態によるノード装置（経路制御装置）の機能構成を示すブロック図である。
【００１７】
図１において、本発明の第１の実施形態のノード装置１０は、経路制御部１１と、パケット転送部１２と、ネットワークインターフェイス２１〜２ｎとを有する。経路制御部１１は、他のノード装置との間で経路情報等の交換を行い、パケット転送に用いる経路表を作成する。パケット転送部１２は、経路制御部１１で作成された経路表の情報を元にパケットの転送を行う。ネットワークインターフェイス２１〜２ｎは、外部のネットワーク３１〜３ｎと接続する。
【００１８】
経路制御部１１は、メッセージ送信部５１と、メッセージ受信部５２と、トポロジーデータベース５３と、経路計算部５４と、メッセージ作成部５５と、計算実行ノード決定部５６と、計算結果保存部５７と、計算実行判断部５８と、状態変化検知部５９とを有する。
メッセージ送信部５１は、他のノード装置に対して経路制御プロトコルにおけるメッセージを送信する。メッセージ受信部５２は、他のノード装置からの経路制御プロトコルにおけるメッセージを受信する。トポロジーデータベース５３は、メッセージ受信部５２により他のノード装置から取得した経路情報を保存する。経路計算部５４は、計算実行判断部５８もしくは状態変化検知部５９から動作指示を受けたときにトポロジーデータベース５３に保存された経路情報を用いて経路計算を行う。メッセージ作成部５５は、計算実行ノード決定部５６が決定した計算必要ノード及び状態変化検知部５９が検知した故障に基づき経路制御プロトコルにおけるメッセージを作成する。計算実行ノード決定部５６は、計算結果保存部５７に保存されているリンク故障前のトポロジーを元にした最短パスツリーと、経路計算部５４により計算されたリンク故障発生後のトポロジーを元にした最短パスツリーを比較することで計算必要ノードを決定する。計算結果保存部５７は、経路計算部５４により計算された最短パスツリーを保存する。計算実行判断部５８は、メッセージ受信部５２が受信した経路制御プロトコルにおけるメッセージから自身が経路計算を行うべきか否か判断する。状態変化検知部５９は、ネットワークインターフェイス２１〜２ｎを監視しリンク故障を検知する。
【００１９】
パケット転送部１２は、ルーティング処理部６１と、パケットの宛先から次の転送先とどのネットワークインターフェイスから送出するかを決定するためのテーブルを持つ主経路表６２から構成される。ルーティング処理部６１は、ネットワークインターフェイス２１〜２ｎ経由で受信したパケットの転送処理を行う。主経路表６２は、パケットの宛先から次の転送先とどのネットワークインターフェイスからパケットを送出するかを決定するためのテーブルを持つ。
【００２０】
図２は本発明の第１の実施形態によるノード装置１０１〜１０ｐにより構成されたネットワーク６を示す図である。図２中のノード装置１０１，１０２を結ぶリンク２０１に故障が発生した場合について説明する。このとき、故障したリンク２０１に接続しているノード装置１０１，１０２と他のノードとは振る舞いが異なる。
【００２１】
まず故障リンクに接続しているノードの動作について、図３を参照して説明する。
【００２２】
図１の状態変化検知部５９は、検知したリンクの故障を経路計算部５４へ通知する（ステップＳ１０１）。経路計算部５４はトポロジーデータベース５３に保存されているトポロジー情報から状態変化検知部５９により通知された故障リンクを取り除いたトポロジー情報を元に経路計算を行い、主経路表６２を更新する（ステップＳ１０２）。
【００２３】
次に経路計算部５４は、計算結果の最短パスツリーを計算結果保存部５７及び計算実行ノード決定部５６に送る（ステップＳ１０３）。
【００２４】
図４は、ステップＳ１０３で求められる最短パスツリーの情報の構造を示す図である。ここでは、ルータＲ１１、Ｒ３１〜Ｒ３５、Ｒ５１〜Ｒ５５、Ｒ７１、Ｒ７２、ネットワークＮ２１、Ｎ２２、Ｎ４１、Ｎ４２、Ｎ６１からなるネットワーク網の最短パスツリーが求められている。
【００２５】
図３において、次に計算実行ノード決定部５６は、計算結果保存部５７に保存されている一回前の計算結果であるリンク故障が発生する前の最短パスツリーの情報を取得する（ステップＳ１０４）。計算結果保存部５７は、経路計算部５４から送られてきた最短パスツリーを記録する（ステップＳ１０５）。
【００２６】
計算実行ノード決定部５６は、故障前の最短パスツリーと故障後の最短パスツリーを比較することで、経路計算が必要なノードを決定する。さらに、計算実行ノード決定部５６は、経路計算が必要なノードをメッセージ作成部５５へ通知する（ステップＳ１０６）。メッセージ作成部５５は、状態変化検知部５９から通知された故障リンク及び計算実行ノード決定部５６により決定した経路計算が必要となるノードを識別するためのＩＤを含む通知メッセージを作成し、その通知メッセージをメッセージ送信部５１へと送る（ステップＳ１０７）。メッセージ送信部５１は、メッセージ作成部１１６が作成した通知メッセージを隣接ノードへ送信する（ステップＳ１０８）。
【００２７】
次に図３中のステップＳ１０７の処理においてメッセージ作成部５５により作成される通知メッセージについて説明する。
【００２８】
ＯＳＰＦ（Ｏｐｅｎ  Ｓｈｏｔｅｓｔ  Ｐａｔｈ  Ｆｉｒｓｔ）により運用されているネットワーク中の各ノード装置間ではＬＳＡ（Ｌｉｎｋ  Ｓｔａｔｅ  Ａｄｖｅｒｔｉｓｅｍｅｎｔ）と呼ばれる単位で情報が交換され、その情報を経路計算に用いられている。このＬＳＡには、「Ｊ．Ｍｏｙ：”ＯＳＰＦ  Ｖｅｒｓｉｏｎ  ２”，ＲＦＣ  ２３２８，  Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ，１９９８．」で定義されているフォーマットの他に、機能追加のために汎用的に使用できる拡張可能なフォーマットが、「Ｒ．Ｃｏｌｔｕｎ：”ＴｈｅＯＳＰＦＯｐａｑｕｅＬＳＡＯｐｔｉｏｎ”，ＲＦＣ２３７０，ＩｎｔｅｒｎｅｔＥｎｇｉｎｅｅｒｉｎｇＴａｓｋＦｏｒｃｅ，１９９８．」にＯｐａｑｕｅＬＳＡとして定義されている。経路計算が必要となるノードを通知するために、本実施形態ではこのＯｐａｑｕｅＬＳＡを用いる。
【００２９】
図５はＬＳＡｈｅａｄｅｒと呼ばれる部分のフォーマットを示す。この部分は、ＬＳＡの種類を問わず共通に使用される。図６は本実施形態における更新必要ノードＬＳＡのパケットフォーマットを示している。このパケットフォーマットは、図５で示したＬＳＡｈｅａｄｅｒに続いて配置される。
【００３０】
図６のＲｏｕｔｅｒＮｕｍフィールドＦ２０には、このＬＳＡ中に格納される更新必要ノードの数が格納される。ＵｐｄａｔｅＲｏｕｔｅｒフィールドＦ３１〜Ｆ３ｎは、ＲｏｕｔｅｒＮｕｍフィールドＦ２０に指定された数の分だけ用意され、それぞれ更新必要ノードを識別するためのＩＤが格納される。ＩＤとして、一般にＯＳＰＦではノード（ルータ）を識別するのに使用されているルータＩＤ等を使用することができる。ここではＯＳＰＦを用いた場合について説明を行ったが、他のプロトコルでも同様に情報を格納することで、本実施形態を適用できる。
【００３１】
次に計算実行ノード決定部５６により実行される図３中のステップＳ１０６の処理の詳細を、図７を参照して説明する。
【００３２】
まず自身（ノードｒ）を終点とする逆方向最短パスツリーＴＲを計算する（ステップＳ２０１）。図８は、ステップＳ２０１で求められる逆方向最短パスツリーの一例である。ここでは、ルータＲ１１、Ｒ３１〜Ｒ３５、Ｒ５１、Ｒ５２、Ｒ５３、Ｒ７１、Ｒ７２、ネットワークＮ２１、Ｎ２２、Ｎ４１〜Ｎ４３、Ｎ６１〜Ｒ６３からなるネットワーク網の逆方向最短パスツリーが求められている。
【００３３】
図７において、次に計算必要ノードを格納するための集合Ｖｕを初期化する（ステップＳ２０２）。次に故障前の経路表において次転送先が故障リンクを介して接続しているノードである宛先ノードを処理対象とする。宛先ノードのうち、以降のステップの処理が済んでいないノードを選択し、ノードｄとする（ステップＳ２０３）。つまり、ここでは自身の経路表中の宛先のうち、リンクの故障により次転送先が変わる宛先ノードを処理の対象としている。
【００３４】
次に故障後の最短パスツリーＴｉを参照し、自身からステップＳ２０３で選択したノードｄに至るパスにおいて、自身の次にあるノードを決定し、そのノードをノードｎと称する（ステップＳ２０４）。
【００３５】
次に、故障後の最短パスツリーＴｉにおける自身からノードｄまでのパスのコストから故障前の最短パスツリーＴにおける自身からノードｄまでのパスのコストを引いた値を求め、その値を値Ｃｄと称する（ステップＳ２０５）。
【００３６】
次に故障前の最短パスツリーＴにおける自身からノードｎまでのパスのコストと逆方向最短パスツリーＴＲにおけるノードｎから自身までのパスのコストの合計値Ｃｎを求める（ステップＳ２０６）。次にＣｎとＣｄの値の比較を行う（ステップＳ２０７）。ステップＳ２０７で、Ｃｎの値の方がＣｄの値より大きい場合、ステップＳ２１０に進む。
【００３７】
ステップＳ２０７においてＣｎの値がＣｄの値よりも小さいか等しい場合、ノードｎは計算必要ノードであると判断し、集合Ｖｕに追加する（ステップＳ２０８）。
【００３８】
次に故障後の最短パスツリーＴｉを参照し、自身からステップＳ２０３で選択したノードｄに至るパスにおいて、ノードｎの次にあるノードを決定し、決定したノードを新たなノードｎとし、ステップＳ２０６へと戻る（ステップＳ２０９）。
【００３９】
ステップＳ２０７の比較においてＣｎの値がＣｄの値より大きい場合、ステップＳ２０３で処理対象となっているすべてのノードに対してステップＳ２０４以降の処理を実施していなければ、処理がステップＳ２０３へと戻り、そうでなければすべての処理を終了する（ステップＳ２１０）。終了時点で集合Ｖｕに含まれているノードが計算必要ノードとなる。
【００４０】
最短パスツリーにおいてノード間のパスのコストを求める方法について説明する。
【００４１】
例えば図４におけるルータＲ５２がノードｄと仮定する。この場合、自分自身を表すルータＲ１１からネットワークＮ２１を経由してルータＲ３２にたどり着き、さらにネットワークＮ４１を経由することでルータＲ５２にたどり着く。この時、ルータＲ１１におけるネットワークＮ２１へのコスト「１０」及びＲルータ３２におけるネットワークＮ４１へのコスト「２０」の合計値である「３０」が自身からルータＲ５２までのコストとなる。
【００４２】
図７に示すステップＳ２０５〜Ｓ２０７の処理ではパスのコストを用いているが、これは一般的に距離という概念を表す。例えばコストの代わりに、メトリックなど距離を表す他の指標を用いてもよい。
【００４３】
次に図７に示したような処理で計算必要ノードが求まる原理について、図９を参照して説明する。
【００４４】
図９において、ノード装置１１１に接続するリンク１４１に故障が発生した仮定する。このとき、ノード装置１１１からノード装置１０２への経路について考える。図９において、符号１０３は、ネットワークを示す。ノード装置１１１からノード装置１０２までの故障前の最短パス１２１におけるコストをＣｒ→ｄと称する。ノード装置１１１からノード装置１０２までの故障後の最短パス１２４におけるコストをＣ’ｒ→ｄと称する。ノード装置１１１からノード装置１０１ｎまでが既にリンク故障による経路更新を行っていると仮定する。この場合において、故障後の最短パス１２４に沿ってノード装置１０１ｎに接続するノード装置１２０が経路計算を必要とするかについて考える。ノード装置１２０からノード装置１１１までのコストをＣｎ→ｒと称し、その逆方向のパスのコストをＣｒ→ｎと称する。
【００４５】
ノード装置１２０はノード装置１０２を宛先としたとき、ノード装置１１１及び故障リンクを経由するパス（パス１２３＋パス１２１）のコストよりも、それらを経由しないパス１２５のコストの方が大きいか等しい場合、ノード装置１２０はノード装置１０２を宛先とするパケットをノード装置１０１ｎへと送り、ループを引き起こす可能性がある。このため、この場合ノード装置１２０の経路更新が必要となる。ここでパス１２５のコストはパス１２４のコストからパス１２２のコストを引いた値（Ｃ’ｒ→ｄ−Ｃｒ→ｎ）であるため、ノード装置１２０の経路更新が必要となる条件は以下のように表すことができる。
Ｃｒ→ｄ＋Ｃｎ→ｒ≦Ｃ’ｒ→ｄ−Ｃｒ→ｎ
【００４６】
この式を変形すると以下の通りである。
Ｃｎ→ｒ＋Ｃｒ→ｎ≦Ｃ’ｒ→ｄ−Ｃｒ→ｄ
【００４７】
図７のステップＳ２０５の処理で求めているＣｄの値は、この不等式の右辺の値に相当する。また図７のステップＳ２０６の処理で求めるＣｎの値はこの不等式の左辺の値に相当する。図７ではこのようなコスト値の比較を、ノード装置１１１からノード装置１０２を宛先とする最短パスに沿って順に行っている。
【００４８】
図７のアルゴリズムを図９に適用した場合、ステップＳ２０４でまずノード装置１１１に隣接するノード装置１１２をノードｎとしてステップＳ２０５〜Ｓ２０７のコスト値の比較処理を行う。
【００４９】
ノード装置１１２が計算必要ノードであると判断されたとき、ステップＳ２０９ではノード装置１１２に隣接するノード装置を新たにノードｎとして、ステップＳ２０６以降の処理を繰り返している。このように最短パスに沿って、上記の不等式を満たさなくなるまで順次調べていく処理を図７のアルゴリズムで行っている。
【００５０】
図９を参照して、宛先がノード装置１０２であるときについて考えたが、他の宛先についても同様に調べる必要がある。ノード装置１１１は、経路が故障リンクを経由している宛先に対してはその経路を変更する必要がある。一方、ノード装置１１１は、経路が故障リンクを経由していない他の宛先に関しては経路を変更する必要はない。このため、図７中のステップＳ２０３では故障前の経路表において次転送先が故障リンクを介して接続しているノードを処理対象とし、処理済でないノードを一つ宛先として選択し、以降の処理を行っている。図７中のステップＳ２１０では、ステップＳ２０３において処理対象となっているノードすべてに対して処理を行ったかを調べ、すべて処理済でなければステップＳ２０３へ戻るという処理を行っている。
【００５１】
次に故障リンクに接続していないノードの動作について、図１０を参照して説明する。
【００５２】
図１に示すメッセージ受信部５２は、隣接ノードから受け取った故障の通知メッセージをメッセージ送信部５１、計算実行判断部５８及びトポロジーデータベース５３に送る（ステップＳ３０１）。次にトポロジーデータベース５３は、メッセージ受信部５２から送られてきた通知メッセージを元に、保存されているトポロジー情報を更新する（ステップＳ３０２）。メッセージ送信部５１は、メッセージ受信部から送られてきた通知メッセージを他の隣接ノードへと転送する（ステップＳ３０３）。
【００５３】
計算実行判断部５８は、通知メッセージ中に経路計算が必要になるノードとして自身のＩＤが含まれているかを確認する（ステップＳ３０４）。ステップＳ３０４において通知メッセージ中に自身のＩＤが含まれていない場合にはすべての処理を終了する。
【００５４】
ステップＳ３０４において通知メッセージ中に自身のＩＤが含まれている場合には、経路計算部５４はトポロジーデータベース５３に保存されているトポロジー情報を元に経路計算を行い、主経路表６２を更新する（ステップＳ３０５）。
【００５５】
次に経路計算部５４は、計算結果の最短パスツリーを計算結果保存部５７へと送る（ステップＳ３０６）。計算結果保存部５７は、経路計算部５４から送られてきた最短パスツリーを記録し（ステップＳ３０７）、すべての処理を終了する。これらの動作により、故障リンクに接続していないノードが経路計算を行うのは、通知メッセージ中に自身のＩＤが含まれている場合にのみに限定することで、ネットワーク全体の処理負荷を低く抑えることができる。
【００５６】
＜第２の実施形態＞
次に、本発明の第２の実施の形態について説明する。図１１は、本発明の第２の実施形態を示す。
【００５７】
本発明の第２の実施形態のノード装置（経路制御装置）２１０の経路制御部２１１、パケット転送部２１２、外部のネットワーク２０３１〜２０３ｎ、ネットワークインターフェイス２０２１〜２０２ｎは、第１の実施形態のノード装置１０の経路制御部１１、パケット転送部１２、外部のネットワーク３１〜３ｎ、ネットワークインターフェイス２１〜２ｎと同様である。また、第２の実施形態の経路制御部２１１のメッセージ送信部２５１、メッセージ受信部２５２、トポロジーデータベース２５３、経路計算部２５４、メッセージ作成部２５５、計算実行ノード決定部２５６、計算結果保存部２５７、状態変化検知部２５９は、第１の実施形態の経路制御部１１のメッセージ送信部５１、メッセージ受信部５２、トポロジーデータベース５３、経路計算部５４、メッセージ作成部５５、計算実行ノード決定部５６、計算結果保存部５７、状態変化検知部５９と同様である。また、第２の実施形態のパケット転送部２１２のルーティング処理部２６１、主経路表２６２は、第１の実施形態のパケット転送部１２のルーティング処理部６１、主経路表６２と同様である。
【００５８】
この実施形態におけるノード装置２１０の構成は、第１の実施形態におけるノード装置１０の構成（図１）と比較して、計算実行判断部５８が存在しない代わりに、転送判断部２５８が存在する点が異なる。
【００５９】
転送判断部２５８は、メッセージ受信部２５２から受信した通知メッセージを参照し、通知メッセージ中に自身のＩＤが含まれている場合には即座に通知メッセージをメッセージ送信部２５１に送り、含まれていない場合には予め定められた時間待ってから、通知メッセージをメッセージ送信部２５１に送る。
【００６０】
第１の実施形態では故障を検知したノードによって計算が必要とされたノードでのみ経路計算を行うようにすることでネットワーク全体の負荷を軽減していた。本実施形態では故障を検知したノードによって計算が必要とされたノードには通知メッセージをすばやく伝播させ、それ以外のノードには通知メッセージの伝播に遅延を挿入することで、時間的な負荷の分散によりネットワーク全体の負荷の軽減を実現している。
【００６１】
次に本実施形態の動作について説明する。故障リンクに接続しているノードの動作は、第１の実施形態と同じである。
【００６２】
故障リンクに接続していないノードの動作について、図１２を参照して説明する。
【００６３】
まず、メッセージ受信部２５２は、隣接ノードから受け取った故障の通知メッセージを経路計算部２５４、転送判断部２５８及びトポロジーデータベース２５３に送る（ステップＳ４０１）。トポロジーデータベース２５３は、メッセージ受信部２５２から送られてきた通知メッセージを元に、保存されているトポロジー情報を更新する（ステップＳ４０２）。
【００６４】
次に、転送判断部２５８は、自身に隣接するノードのうち、まだ処理を行っていない隣接ノードを一つ選択する（ステップＳ４０３）。転送判断部２５８は、通知メッセージ中に選択した隣接ノードのＩＤが含まれているかを調べる（ステップＳ４０４）。通知メッセージ中に選択した隣接ノードのＩＤが含まれていれば、処理がステップＳ４０６へ進む。通知メッセージ中に選択した隣接ノードのＩＤが含まれていなければ処理がステップＳ４０５へ進む。転送判断部２５８は、ステップＳ４０５では選択した隣接ノードを遅延送信ノードとして記録しておき、処理がステップＳ４０７へと進む。ステップＳ４０６では、メッセージ送信部２５１は、転送判断部２５８から通知メッセージを受け取り、その通知メッセージを選択した隣接ノードへと転送し、処理がステップＳ４０７へと進む。ステップＳ４０７では、転送判断部２５８は、自身に接続するすべての隣接ノードに対して処理を行ったかを調べ、処理済でなければ処理がステップＳ４０３へ戻り、処理済であれば処理が次へと進む。
【００６５】
次に、経路計算部２５４は、トポロジーデータベース２５３に記録されているトポロジー情報を元に経路計算を行い、主経路表を更新する（ステップＳ４０８）。次に経路計算部２５４は、計算結果の最短パスツリーを計算結果保存部２５７へと送る（ステップＳ４０９）。
【００６６】
次に計算結果保存部２５７は、経路計算部２５４から送られてきた最短パスツリーを記録する（ステップＳ４１０）。次に、設定等により定められた時間経過後に、メッセージ送信部２５１は、遅延送信ノードとして記録されているノードに対して、通知メッセージを送信し（ステップＳ４１１）、処理を終了する。以上の処理により、計算が必要となるノードに対しては通知メッセージをすばやく伝播させ、それ以外のノードにはメッセージの遅延を挿入することで時間的に処理負荷の分散を実現している。
【００６７】
この実施形態は、第１の実施形態における通知メッセージに記録されているノードでのみ経路計算を実行させるという動作と組み合わせて使用してもよい。
【００６８】
また、この実施形態では通知メッセージ中に隣接ノードのＩＤが含まれていない場合には、設定等で定められた時間経過後通知メッセージを隣接ノードに送信している。しかしながら、通知メッセージ中に隣接ノードのＩＤが含まれていない場合にはその通知メッセージを隣接ノードに送信しないという動作を行ってもよい。
【００６９】
＜第３の実施形態＞
次に、本発明の第３の実施の形態について、図１３及び図１４を参照して説明する。
【００７０】
図１３は、本発明の第３の実施形態を示す。この第３の実施形態を第１の実施形態（図１）と比較すると、ノード装置（経路制御装置）３１０１〜３１０ｐの外部に経路計算サーバ（経路制御装置）３４０１〜３４０ｍが存在する点が大きく異なる。
【００７１】
図１４は本実施形態を適用した場合のネットワークの全体を示す図である。各ノード装置同士が接続することによって構成されるデータ通信用のネットワーク３０６の他に、経路計算サーバ３４０１〜３４０ｍ及び各ノード装置３１０１〜３１０ｐが接続する管理用ネットワーク３０５が存在する。
【００７２】
第２の実施形態では各ノード装置が経路の決定を自律的に行っていた。一方で、本実施形態は、経路計算サーバ３４０１〜３４０ｍが各ノードの経路を計算し、管理用ネットワーク３０５を介して計算した経路情報を各ノード装置３１０１〜３１０ｐに送っている。この構成により、各ノード装置が経路制御部を持つ必要がなくなり、ノード装置の構成がシンプルになるという利点がある。
【００７３】
各経路計算サーバ３４０１〜３４０ｍは、１台もしくは複数台のノード装置の経路計算を担当する。どの経路計算サーバがどのノード装置を担当するかは、予め設定等で割り当てられている。このような構成においてリンク故障が発生した場合、従来は全ノード装置の経路の再計算を行う必要があった。本実施形態では、経路計算を行う必要となるノード装置を決定し、決定されたノード装置に対してのみ経路の再計算を実施する。その結果、経路計算サーバ３４０１〜３４０ｍの負荷の低減が実現される。
【００７４】
本実施形態における構成について図１３を参照して説明する。図１３のノード装置３１０１〜３１０ｎは、第１の実施形態のノード装置と比較し、経路制御部１１の代わりに経路計算サーバ通信部３６３を持つ点が異なる。経路計算サーバ通信部３６３は、経路計算サーバ３４０１〜３４０ｎから経路情報を受け取り、その経路情報を主経路表３６２に登録する。また、経路計算サーバ通信部３６３は、状態変化検知部３６９がリンクの故障を検知したときに、そのリンク故障を経路計算サーバ３４０１〜３４０ｎに通知する。
【００７５】
経路計算サーバ３４０１〜３４０ｎは、管理通信部３４１と、計算実行管理部３４２と、ノード別経路計算部３４３と、ノード別計算結果保存部３４４と、計算実行ノード決定部３４５とを有する。
管理通信部３４１は、ノード別経路計算部３４３により計算された経路情報をノード装置に通知し、ノード装置からリンク故障の通知を受ける。計算実行管理部３４２は、管理通信部３４１から受け取るメッセージまたは計算実行ノード決定部３４５の決定に従い、ノード別経路計算部３４３に経路計算を指示する。ノード別経路計算部３４３は、経路計算サーバが担当している各ノード装置が使用する経路情報を計算する。ノード別計算結果保存部３４４は、ノード別経路計算部３４３の計算過程において得られる最短パスツリーを記録する。計算実行ノード決定部３４５は、ノード別計算結果保存部３４４に保存されているリンク故障前のトポロジーを元にした最短パスツリーと、ノード別経路計算部３４３により計算されたリンク故障発生後のトポロジーを元にした最短パスツリーを比較することで計算必要ノードを決定する。
【００７６】
次に本実施形態における動作について図１５を参照して説明する。リンク故障が発生したノード装置の状態変化検知部３６９は、経路計算サーバ通信部３６３に通知を行う（ステップＳ５０１）。
【００７７】
経路計算サーバ通信部３６３は、すべての経路計算サーバ３４０１〜３４０ｎに対し、リンクの故障を通知する（ステップＳ５０２）。経路計算サーバ３４０１〜３４０ｎ中の管理通信部３４１は、ノード装置３１０（３１０１〜３１０ｎ）からのリンク故障の通知メッセージを計算実行管理部３４２及びトポロジーデータベース３４６に送る（ステップＳ５０３）。
【００７８】
次にトポロジーデータベース３４６は、管理通信部３４１から送られてきた通知メッセージを元に、保存されているトポロジー情報を更新する（ステップＳ５０４）。計算実行管理部３４２は、管理通信部３４１が受信したリンク故障の通知メッセージの送信元が自身が経路計算を担当するノード装置であった場合、そのノード装置で用いる経路情報の再計算をノード別経路計算部３４３に指示する（ステップＳ５０５）。
【００７９】
ノード別経路計算部３４３は、トポロジーデータベース３４６に保存されているトポロジー情報を元に経路計算を行い、求まった経路情報を管理通信部３４１に送る（ステップＳ５０６）。ノード別経路計算部３４３は、ステップＳ５０６の計算過程において求められたリンク故障が発生したノード装置３１０を始点とする最短パスツリーをノード別計算結果保存部３４４及び計算実行ノード決定部３４５に送る（ステップＳ５０７）。
【００８０】
次に計算実行ノード決定部３４５は、ノード別計算結果保存部３４４に保存されているリンク故障が発生したノードにおける一回前の計算結果であるリンク故障が発生する前の最短パスツリーの情報を取得する（ステップＳ５０８）。ノード別計算結果保存部３４４は、ノード別経路計算部３４３から送られてきた最短パスツリーを記録する（ステップＳ５０９）。
【００８１】
計算実行ノード決定部３４５は、リンク故障が発生したノードの故障前の最短パスツリーとそのノードの故障後の最短パスツリーを比較することで、計算必要ノードを決定する。さらに、計算実行ノード決定部３４５は、計算必要ノードを管理通信部３４１及び計算実行管理部３４２へ通知する（ステップＳ５１０）。管理通信部３４１は、計算実行ノード決定部３４５が決定した計算必要ノードの中に自身が経路計算を担当していないノードが存在した場合、それらのノードを担当している経路計算サーバ３４０１〜３４０ｍに、計算必要ノードを通知するメッセージを送付する（ステップＳ５１１）。管理通信部３４１は他の経路計算サーバ３４０１〜３４０ｎからの計算必要ノードを通知するメッセージを受け取った場合、計算実行管理部３４２に送る（ステップＳ５１２）。
【００８２】
計算実行管理部３４２は、計算実行ノード決定部３４５が決定した計算必要ノードもしくは管理通信部３４１が受信した通知メッセージ中の計算必要ノードから、自身が経路計算を担当する各ノード装置を選択し、経路計算を行うようノード別経路計算部３４３に指示を出す（ステップＳ５１３）。ノード別経路計算部３４３は、計算実行管理部３４２から指示された各ノード装置について、それぞれの経路情報を計算し、計算結果をそれぞれ管理通信部３４１へと送る（ステップＳ５１４）。ノード別経路計算部３４３は、ステップＳ５１４の計算過程において求められたそれぞれのノード装置３１０を始点とする最短パスツリーをノード別計算結果保存部３４４に送る（ステップＳ５１５）。ノード別計算結果保存部３４４は、ノード別経路計算部３４３から送られてきた最短パスツリーを記録する（ステップＳ５１６）。
【００８３】
管理通信部３４１は、ステップＳ５０６及びステップＳ５１４においてノード別経路計算部３４３が計算した経路情報をそれぞれのノード装置３４０に送る（ステップＳ５１７）。各ノード装置の経路計算サーバ通信部３６３は、経路計算サーバ３４０１〜３４０ｎから通知された経路情報をそれぞれのノード装置３１０内の主経路表３６２に登録する（ステップＳ５１８）。
【００８４】
ステップＳ５１０における経路必要ノードの決定する処理は、本発明の第１の実施形態における処理と同じである。
【００８５】
これらの動作により、リンク故障に対して経路の再計算を必要とするノード装置に対してのみ経路計算を実施することができ、経路計算サーバ３４０１〜３４０ｍの負荷を軽減することができる。
【００８６】
＜第４の実施形態＞
次に、本発明の第４の実施の形態について説明する。図１６は本発明の第４の実施形態を示す。本発明の第４の実施形態のノード装置（経路制御装置）４１０の経路制御部４１１、パケット転送部４１２、外部のネットワーク４０３１〜４０３ｎ、ネットワークインターフェイス４０２１〜４０２ｎは、第１の実施形態のノード装置１０（図１）の経路制御部１１、パケット転送部１２、外部のネットワーク３１〜３ｎ、ネットワークインターフェイス２１〜２ｎと同様である。また、第４の実施形態の制御部４１１のメッセージ送信部４５１、メッセージ受信部４５２、トポロジーデータベース４５３、経路計算部４５４、メッセージ作成部４５５、計算結果保存部４５７、計算実行判断部４５８、状態変化検知部４５９は、第１の実施形態の経路制御部１１のメッセージ送信部５１、メッセージ受信部５２、トポロジーデータベース５３、経路計算部５４、メッセージ作成部５５、計算結果保存部５７、計算実行判断部５８、状態変化検知部５９と同様である。また、第４の実施形態のパケット転送部４１２のルーティング処理部４６１、主経路表４６２は、第１の実施形態のパケット転送部１２のルーティング処理部６１、主経路表６２と同様である。
【００８７】
この第４の実施形態では、計算実行ノード決定部４５６でのノードの決定が第１の実施形態の計算実行ノード決定部５６と異なっている。つまり、この実施形態では、計算実行ノード決定部４５６は、故障前の最短パスツリーと故障後の最短パスツリーとを比較することで、自身から経路計算が必要なノードまでのコスト値の最大値を求め、その求めた値をメッセージ作成部４５５へ通知する。また、メッセージ作成部４５５は、故障したリンク及び求めたコストの最大値を含む通知メッセージを作成し、その通知メッセージをメッセージ送信部４５１に送っている。
【００８８】
前述の第１の実施形態では故障を検知したノードによって、算出した経路更新を必要とするノードを識別するためのＩＤをすべて経路制御プロトコルによるメッセージ中に含めて送信していた。しかし、経路更新を必要とするノードの数が多くなるとメッセージのサイズが大きくなる。
【００８９】
この実施形態では故障を検知したノードが、更新が必要となるノードのうち故障箇所からのコスト値がどの値のノードまで更新が必要かを求め、そのコスト値を経路制御メッセージ中に含め送信を行う。この経路制御メッセージを受け取った各ノードは、メッセージ送信元である故障を検知したノードと自身との距離（コスト値）の比較を行い、自身が経路計算を行う必要があるかを決定する。本実施形態によるノード装置の機能構成は第１の実施形態と同様である。
【００９０】
まず本実施形態における故障リンクに接続しているノードの動作について図１７を参照して説明する。
【００９１】
図１７において、状態変化検知部４５９は、検知したリンクの故障を経路計算部４５４へ通知する（ステップＳ６０１）。経路計算部４５４はトポロジーデータベース４５３に保存されているトポロジー情報から状態変化検知部４５９により通知された故障リンクを取り除いたトポロジー情報を元に経路計算を行い、主経路表４６２を更新する（ステップＳ６０２）。
【００９２】
次に経路計算部４５４は、計算結果の最短パスツリーを計算結果保存部４５７及び計算実行ノード決定部４５６に送る（ステップＳ６０３）。
【００９３】
次に計算実行ノード決定部４５６は、計算結果保存部４５７に保存されている一回前の計算結果であるリンク故障が発生する前の最短パスツリーの情報を取得する（ステップＳ６０４）。計算結果保存部４５７は、経路計算部４５４から送られてきた最短パスツリーを記録する（ステップＳ６０５）。
【００９４】
計算実行ノード決定部４５６は、故障前のトポロジーツリーと故障後のトポロジーツリーとを比較することで、自身からの経路計算が必要なノードまでのコスト値の最大値を求め、求めた値をメッセージ作成部４５５へ通知する（ステップＳ６０６）。メッセージ作成部４５５は、状態変化検知部４５９から通知された故障リンク及び計算実行ノード決定部４５６により決定したコストの最大値を含む通知メッセージを作成し、その通知メッセージをメッセージ送信部４５１へと送る（ステップＳ６０７）。メッセージ送信部４５１は、メッセージ作成部４５５が作成した通知メッセージを隣接ノードへ送信する（ステップＳ６０８）。
【００９５】
図３に示した第１の実施形態と比較すると、ステップＳ６０６及びステップＳ６０７の処理が異なっている。ステップＳ６０６では、計算実行ノード決定部４５６は、故障前の最短パスツリーと故障後の最短パスツリーとを比較することで、自身から経路計算が必要なノードまでのコスト値の最大値を求め、その値をメッセージ作成部へ通知する。ステップＳ６０７では、メッセージ作成部４５５は、故障したリンク及びステップＳ６０６で求めたコストの最大値を含む通知メッセージを作成し、その通知メッセージをメッセージ送信部４５１へと送る。
【００９６】
次に図１７のステップＳ６０７の処理においてメッセージ作成部４５５により作成される通知メッセージについて説明する。
【００９７】
図１８は本実施形態における更新距離コスト値ＬＳＡのパケットフォーマットを示している。このパケットフォーマットは、図５で示したＬＳＡｈｅａｄｅｒに続いて配置される。図１８のＭａｘＣｏｓｔフィールＦ４０にステップＳ６０６の処理において求められたコストの最大値が格納される。
【００９８】
次に図１７におけるステップＳ６０６の処理の詳細について、図１９を参照して説明する。
【００９９】
まず変数ｔｍａｘを用意し、その値として０を設定する（ステップＳ７０１）。次に故障前の経路表において次転送先が故障リンクを介して接続しているノードを処理対象とし、以降のステップの処理済でないノードを選択し、その選択したノードをノードｄに設定する（ステップＳ７０２）。次に、故障後の最短パスツリーＴｉにおける自身からノードｄまでのパスのコストから故障前の最短パスツリーにおける自身からノードｄまでのパスのコストを引いた値を求め、求めた値をＣｄと称する（ステップＳ７０３）。次にｔｍａｘとＣｄの値の比較を行い、ｔｍａｘの方が大きい場合、処理がステップＳ７０６に進む（ステップＳ７０４）。ステップＳ７０４においてｔｍａｘの値がＣｄの値よりも小さいか等しい場合、ｔｍａｘの値をＣｄとする（ステップＳ７０５）。次に、処理対象であるすべてのノードに対してステップＳ７０３以降の処理を実施していなければステップＳ７０２へと戻り、そうでなければすべての処理を終了する（ステップＳ７１０）。終了時点でｔｍａｘの値が、通知すべきコスト値になる。
【０１００】
次に故障リンクに接続していないノードの動作について、図２０を参照して説明する。
【０１０１】
メッセージ受信部４５２は、隣接ノードから受け取った故障の通知メッセージをメッセージ送信部４５１、計算実行判断部４５８及びトポロジーデータベース４５３に送る（ステップＳ８０１）。次にトポロジーデータベース４５３は、メッセージ受信部４５２から送られてきた通知メッセージを元に、保存されているトポロジー情報を更新する（ステップＳ８０２）。メッセージ送信部４５１は、メッセージ受信部４５２から送られてきた通知メッセージを他の隣接ノードへと転送する（ステップＳ８０３）。
【０１０２】
転送判断部は、自身と故障個所との距離と通信メッセージ中のコスト値を比較する（ステップＳ８０４）。ステップＳ８０４において通知されたコスト値が自身と故障箇所との距離（コスト値）より小さい場合には、すべての処理を終了する。
【０１０３】
ステップＳ８０４において通知されたコスト値が自身と故障箇所との距離（コスト値）より大きいか等しい場合には、経路計算部４５４はトポロジーデータベース４５３に保存されているトポロジー情報を元に経路計算を行い、主経路表４６２を更新する（ステップＳ８０５）。
【０１０４】
次に経路計算部４５４は、計算結果の最短パスツリーを計算結果保存部４５７へと送る（ステップＳ８０６）。計算結果保存部４５７は、経路計算部４５４から送られてきた最短パスツリーを記録し（ステップＳ８０７）、すべての処理を終了する。これらの動作により、故障リンクに接続していないノードが経路計算を行うのは、通知メッセージ中のコスト値が自身と故障箇所との距離（コスト値）より大きいか等しい場合にのみに限定することで、ネットワーク全体の処理負荷を低く抑えることができる。
【０１０５】
図１０に示した第１の実施形態における故障リンクに接続していないノードの動作と比較すると、ステップＳ８０４の処理のみが異なっている。ステップＳ８０４では転送判断部が自身と故障箇所との距離（コスト値）と通知メッセージ中のコスト値を比較する。通知されたコスト値の方が大きい場合、自身の経路計算が必要であると判断し、ステップＳ８０５以降の処理を行う。通知されたコスト値の方が小さい場合、自身の経路計算は不要であると判断し、すべての処理を終了する。自身と故障箇所との距離というのは、自身と故障リンクに接続しているノード装置までのパスのコストを表している。自身の計算結果保存部に保存されている最短パスツリーを参照することで、メッセージ受信部４５２が受信した通知メッセージを作成したノード装置すなわち故障リンクに接続しているノード装置までのパスのコストを求めることができる。
【０１０６】
次に図２０におけるステップＳ８０４の比較処理の詳細について図２１を参照して説明する。まず、自身（ノードｎ）を終点とする逆方向最短パスツリーＴＮを計算する（ステップＳ９０１）。次に最短パスツリーＴにおける自身からノードｒまでのパスのコストと逆方向最短パスツリーＴＮにおけるノードｒから自身までのパスのコストの合計値Ｃｒを求める（ステップＳ９０２）。このＣｒと通知されたコスト値ｔｍａｘの比較を行う（ステップＳ９０３）。
【０１０７】
これらの動作により、通知するメッセージのサイズを小さくすることができる他、故障を検知したノードの処理負荷の軽減も実現できる。
【０１０８】
この実施形態は、第２の実施形態と組み合わせて使用することも可能である。
【０１０９】
プログラムに、図１に示すノード装置１０、図１１に示すノード装置２１０、図１３に示すノード装置３１０と経路計算サーバ３４０、および図１６に示すノード装置４１０が行う機能を実行させてもよい。
このプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより図１に示すノード装置１０、図１１に示すノード装置２１０、図１３に示すノード装置３１０と経路計算サーバ３４０、および図１６に示すノード装置４１０の機能を実現するための処理を実行させてもよい。ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むとする。
「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含む。
「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含む。上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【０１１０】
以上、実施形態及び実施例を参照して本願発明を説明したが、本願発明は上記実施形態及び実施例に限定されない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１１１】
この出願は、２００８年１２月２６日に出願された日本出願特願２００８−３３３１７１を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【０１１２】
本発明は、動的に経路制御を行っているネットワークシステム、このようなネットワークシステムにおける経路制御装置、経路制御方法、及び経路制御プログラムに適用できる。これらの動的に経路制御を行っているネットワークシステム、このようなネットワークシステムにおける経路制御装置、経路制御方法、及び経路制御プログラムによれば、ネットワーク全体における負荷の低減を実現し、ネットワークの安定性向上を実現できる。
【符号の説明】
【０１１３】
１０，２１０，３１０，４１０       ノード装置
１１，２１１，３１１，４１１       経路制御部
１２，２１２，３１２，４１２       パケット転送部
２１〜２ｎ，２０２１〜２０２ｎ，３０２１〜３０２ｎ，４０２１〜４０２ｎ       ネットワークインターフェイス
３１〜３ｎ，２０３１〜２０３ｎ，３０３１〜３０３ｎ，４０３１〜４０３ｎ       ネットワーク
５１，２５１，４５１ メッセージ送信部
５２，２５２，４５２ メッセージ受信部
５３，２５３，４５３ トポロジーデータベース
５４，２５４，４５４ 経路計算部
５５，２５５，４５５ メッセージ作成部
５６，２５６，４５６ 計算実行ノード決定部
５７，２５７，４５７ 計算結果保存部
５８，４５８  計算実行判断部
５９，２５９，４５９ 状態変化検知部
６１，２６１，４６１ ルーティング処理部
６２，２６２，４６２ 経路表
２５８ 転送判断部
３０５ 管理用ネットワーク
３１２ パケット転送部
３４１ 管理通信部
３４２ 計算実行管理部
３４３ ノード別経路計算部
３４４ ノード別計算結果保存部
３４５ 計算実行ノード決定部
３４６ トポロジーデータベース
３６２ 主経路表
３６３ 経路計算サーバ通信部
３６９ 状態変化検知部
【図１】
0005459226.tif 000002
【図２】
0005459226.tif 000003
【図３】
0005459226.tif 000004
【図４】
0005459226.tif 000005
【図５】
0005459226.tif 000006
【図６】
0005459226.tif 000007
【図７】
0005459226.tif 000008
【図８】
0005459226.tif 000009
【図９】
0005459226.tif 000010
【図１０】
0005459226.tif 000011
【図１１】
0005459226.tif 000012
【図１２】
0005459226.tif 000013
【図１３】
0005459226.tif 000014
【図１４】
0005459226.tif 000015
【図１５】
0005459226.tif 000016
【図１６】
0005459226.tif 000017
【図１７】
0005459226.tif 000018
【図１８】
0005459226.tif 000019
【図１９】
0005459226.tif 000020
【図２０】
0005459226.tif 000021
【図２１】
0005459226.tif 000022