(57)【特許請求の範囲】
【請求項１】
複数のノードをリンクにより接続することで構成されるパケット交換網において、故障発生時に、予備トポロジに基づき作成された予備経路に切り替えることで故障復旧を行う故障復旧システムであって、
前記故障復旧システムの各ノードの記憶部には、各ノード間の接続関係を示す情報であるもとのトポロジと、複数の前記予備トポロジを示すもとの予備トポロジセットとが記憶されており、
前記故障復旧システムは、前記リンクの多重故障発生時における前記予備経路の切り替えのための新たな予備トポロジを作成する予備トポロジ作成手段を備え、
前記予備トポロジ作成手段は、
前記ノードの記憶部から取得した前記もとのトポロジおよび前記もとの予備トポロジセットに基づき、前記新たな予備トポロジを作成し、
前記作成した新たな予備トポロジを前記もとの予備トポロジセットに追加し、新たな予備トポロジセットを作成し、
前記作成された新たな予備トポロジセットが、転送ループを発生するか否かを判定し、
前記転送ループが発生しない場合には処理を終了し、前記転送ループが発生する場合には、前記新たな予備トポロジを作成する処理に戻ること
を特徴とする故障復旧システム。
【請求項２】
複数のノードをリンクにより接続することで構成されるパケット交換網において、故障発生時に、予備トポロジに基づき作成された予備経路に切り替えることで故障復旧を行う故障復旧システムであって、
前記故障復旧システムの各ノードの記憶部には、各ノード間の接続関係を示す情報であるもとのトポロジと、複数の前記予備トポロジを示すもとの予備トポロジセットとが記憶されており、
前記故障復旧システムは、前記リンクの多重故障発生時における前記予備経路の切り替えのための新たな予備トポロジを作成する予備トポロジ作成手段を備え、
前記予備トポロジ作成手段は、
前記ノードの記憶部から前記もとのトポロジおよび前記もとの予備トポロジセットを取得し、
前記もとの予備トポロジセットに含まれる前記複数の予備トポロジそれぞれについて、前記ノード間を接続するリンクである中継リンクが存在するかを判定し、
前記もとのトポロジの各ノード間の前記リンク毎に、前記複数の予備トポロジに、前記中継リンクが存在する数を合計し、その合計に基づき当該リンクの重みを設定し、
前記設定したリンクの重みの総和が最小となるような最小スパニングツリーを計算し、
前記計算した最小スパニングツリー上の前記リンクを前記中継リンクとして前記新たな予備トポロジを作成し、
前記作成した新たな予備トポロジを前記もとの予備トポロジセットに追加し、新たな予備トポロジセットを作成し、
前記作成された新たな予備トポロジセットが、転送ループを発生するか否かを判定し、前記転送ループが発生しない場合には処理を終了し、前記転送ループが発生する場合には、前記中継リンクが存在するかを判定する処理に戻ること
を特徴とする故障復旧システム。
【請求項３】
複数のノードをリンクにより接続することで構成されるパケット交換網において、故障発生時に、予備トポロジに基づき作成された予備経路に切り替えることで故障復旧を行う故障復旧システムであって、
前記故障復旧システムの各ノードの記憶部には、各ノード間の接続関係を示す情報であるもとのトポロジと、複数の前記予備トポロジを示すもとの予備トポロジセットとが記憶されており、
前記故障復旧システムは、前記リンクの多重故障発生時における前記予備経路の切り替えのための新たな予備トポロジを作成する予備トポロジ作成手段を備え、
前記予備トポロジ作成手段は、
前記ノードの記憶部から前記もとのトポロジおよび前記もとの予備トポロジセットを取得し、
前記もとのトポロジに示される、各ノードがリンクに接続する数を示すノード次数と、前記もとの予備トポロジセットに含まれる前記複数の予備トポロジそれぞれについての前記ノード間を接続するリンクである中継リンクの数とに基づき、前記もとのトポロジと前記もとの予備トポロジセットとの第１の類似度を計算し、
前記もとのトポロジに基づきランダムコストを用いた仮の予備トポロジを作成し、
前記作成した仮の予備トポロジを前記もとの予備トポロジセットに追加して仮の予備トポロジセットを作成し、
前記もとのトポロジの前記ノード次数と前記仮の予備トポロジセットの前記中継リンクの数とに基づき、前記もとのトポロジと前記仮の予備トポロジセットとの第２の類似度を計算し、
前記第２の類似度が前記第１の類似度を超えない場合に、前記仮の予備トポロジの作成処理に戻り、前記第２の類似度が前記第１の類似度を超える場合に、前記第１の類似度を前記第２の類似度で上書きし、前記仮の予備トポロジを前記新たな予備トポロジとして前記もとの予備トポロジセットに追加して、新たな予備トポロジセットを作成し、
前記作成された新たな予備トポロジセットが、転送ループを発生するか否かを判定し、前記転送ループが発生しない場合には処理を終了し、前記転送ループが発生する場合には、前記仮の予備トポロジの作成処理に戻ること
を特徴とする故障復旧システム。
【請求項４】
前記故障復旧システムは、請求項２に記載の予備トポロジ作成手段と、請求項３に記載の予備トポロジ作成手段とを含む、新たな予備トポロジ作成手段を備えており、
前記新たな予備トポロジ作成手段は、
前記ノードの記憶部から前記もとのトポロジを取得し、各ノードの前記ノード次数を計算し、前記計算したノード次数の分散が所定値以上でない場合には、請求項２に記載の前記新たな予備トポロジの作成処理を実行し、前記計算したノード次数の分散が所定値以上の場合には、請求項３に記載の前記新たな予備トポロジの作成処理を実行すること
を特徴とする故障復旧システム。
【請求項５】
複数のノードをリンクにより接続することで構成されるパケット交換網において、故障発生時に、予備トポロジに基づき作成された予備経路に切り替えることで故障復旧を行う故障復旧システムの前記ノードであって、
前記複数のノード間の接続関係を示す情報であるもとのトポロジと、複数の前記予備トポロジを示すもとの予備トポロジセットとを記憶している記憶部と、
前記リンクの多重故障発生時における前記予備経路の切り替えのための新たな予備トポロジを作成する予備トポロジ作成部とを備え、
前記予備トポロジ作成部は、
前記ノードの記憶部から取得した前記もとのトポロジおよび前記もとの予備トポロジセットに基づき、前記新たな予備トポロジを作成し、
前記作成した新たな予備トポロジを前記もとの予備トポロジセットに追加し、新たな予備トポロジセットを作成し、
前記作成された新たな予備トポロジセットが、転送ループを発生するか否かを判定し、
前記転送ループが発生しない場合には処理を終了し、前記転送ループが発生する場合には、前記新たな予備トポロジを作成する処理に戻ること
を特徴とするノード。
【請求項６】
複数のノードをリンクにより接続することで構成されるパケット交換網において、故障発生時に、予備トポロジに基づき作成された予備経路に切り替えることで故障復旧を行う故障復旧システムの前記ノードであって、
前記複数のノード間の接続関係を示す情報であるもとのトポロジと、複数の前記予備トポロジを示すもとの予備トポロジセットとを記憶している記憶部と、
前記リンクの多重故障発生時における前記予備経路の切り替えのための新たな予備トポロジを作成する予備トポロジ作成部とを備え、
前記予備トポロジ作成部は、
前記ノードの記憶部から前記もとのトポロジおよび前記もとの予備トポロジセットを取得し、
前記もとの予備トポロジセットに含まれる前記複数の予備トポロジそれぞれについて、前記ノード間を接続するリンクである中継リンクが存在するかを判定し、
前記もとのトポロジの各ノード間の前記リンク毎に、前記複数の予備トポロジに、前記中継リンクが存在する数を合計し、その合計に基づき当該リンクの重みを設定し、
前記設定したリンクの重みの総和が最小となるような最小スパニングツリーを計算し、
前記計算した最小スパニングツリー上の前記リンクを前記中継リンクとして前記新たな予備トポロジを作成し、
前記作成した新たな予備トポロジを前記もとの予備トポロジセットに追加し、新たな予備トポロジセットを作成し、
前記作成された新たな予備トポロジセットが、転送ループを発生するか否かを判定し、前記転送ループが発生しない場合には処理を終了し、前記転送ループが発生する場合には、前記中継リンクが存在するかを判定する処理に戻ること
を特徴とするノード。
【請求項７】
複数のノードをリンクにより接続することで構成されるパケット交換網において、故障発生時に、予備トポロジに基づき作成された予備経路に切り替えることで故障復旧を行う故障復旧システムの前記ノードであって、
前記複数のノード間の接続関係を示す情報であるもとのトポロジと、複数の前記予備トポロジを示すもとの予備トポロジセットとを記憶している記憶部と、
前記リンクの多重故障発生時における前記予備経路の切り替えのための新たな予備トポロジを作成する予備トポロジ作成部とを備え、
前記予備トポロジ作成部は、
前記ノードの記憶部から前記もとのトポロジおよび前記もとの予備トポロジセットを取得し、
前記もとのトポロジに示される、各ノードがリンクに接続する数を示すノード次数と、前記もとの予備トポロジセットに含まれる前記複数の予備トポロジそれぞれについての前記ノード間を接続するリンクである中継リンクの数とに基づき、前記もとのトポロジと前記もとの予備トポロジセットとの第１の類似度を計算し、
前記もとのトポロジに基づきランダムコストを用いた仮の予備トポロジを作成し、
前記作成した仮の予備トポロジを前記もとの予備トポロジセットに追加して仮の予備トポロジセットを作成し、
前記もとのトポロジの前記ノード次数と前記仮の予備トポロジセットの前記中継リンクの数とに基づき、前記もとのトポロジと前記仮の予備トポロジセットとの第２の類似度を計算し、
前記第２の類似度が前記第１の類似度を超えない場合に、前記仮の予備トポロジの作成処理に戻り、前記第２の類似度が前記第１の類似度を超える場合に、前記第１の類似度を前記第２の類似度で上書きし、前記仮の予備トポロジを前記新たな予備トポロジとして前記もとの予備トポロジセットに追加して、新たな予備トポロジセットを作成し、
前記作成された新たな予備トポロジセットが、転送ループを発生するか否かを判定し、前記転送ループが発生しない場合には処理を終了し、前記転送ループが発生する場合には、前記仮の予備トポロジの作成処理に戻ること
を特徴とするノード。
【請求項８】
前記ノードは、請求項６に記載の予備トポロジ作成部の処理と、請求項７に記載の予備トポロジ作成部の処理とを実行する新たな予備トポロジ作成部を備えており、
前記新たな予備トポロジ作成部は、
前記記憶部から前記もとのトポロジを取得し、各ノードの前記ノード次数を計算し、前記計算したノード次数の分散が所定値以上でない場合には、請求項６に記載の前記新たな予備トポロジの作成処理を実行し、前記計算したノード次数の分散が所定値以上の場合には、請求項７に記載の前記新たな予備トポロジの作成処理を実行すること
を特徴とするノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＰ（Internet Protocol）ネットワーク等のパケット交換網における故障回復方式の技術に関する。
【背景技術】
【０００２】
ネットワークにおいては、予期しない故障の発生に対して迅速に転送経路を切り替えることで故障復旧を行い、転送品質の維持を行うことが重要である。ＩＰネットワークにおける故障復旧方式として、ＯＳＰＦ（Open Shortest Path First）等のルーチングプロトコルを用いた動的な復旧方式がある（非特許文献１参照）。しかしながら、このＯＳＰＦでは故障発生後に迂回経路を計算するため、故障の復旧に秒単位の時間を必要とする問題がある。
【０００３】
この問題を解決する方法として、事前に迂回経路を計算しておくことで高速な故障復旧を実現するＩＰ−ＦＲＲ（IP Fast Reroute）方式が提案されている（非特許文献２参照）。ＩＰ−ＦＲＲ方式は、事前に予備トポロジを作成し、故障発生時には該当故障箇所をプロテクトする（迂回する）予備トポロジに従った転送経路に切り替えることで故障復旧を行う。
【０００４】
ＩＰ−ＦＲＲ方式における予備トポロジを用いた故障復旧方法の具体例を、図１を参照して説明する。図１（ａ）は、通常のトポロジの一例を示し、図１（ｂ）は、予備トポロジの一例を示す。
【０００５】
まず、各ノードは、リンク断絶（故障）に備えた予備トポロジを予め作成しておく。例えば、リンク１−２（ノード番号「１」のノードと、ノード番号「２」のノードとの間のリンク）が断絶した場合に備え、このリンク１−２をプロテクトする予備トポロジを事前に作成する。ここで、予備トポロジにおけるプロテクトリンクのリンクコストは、このプロテクトリングが経路として選択されないようにするため、設定可能な最大値を付与する。これにより、予備トポロジ上でリンクコストの総和が最小となる最小コストルーティングにより経路を計算すると、プロテクトリンクを使用しない経路が算出される。この予備トポロジは全てのノードに記憶され、各ノードは予備トポロジに従った経路を事前に（トラヒック転送前に）計算しておく。
【０００６】
ここで、ノード番号「１」のノードをｓｒｃ（source：送信元）とし、ノード番号「５」のノードをｄｓｔ（destination：宛先）とする経路上において、リンク１−２の故障を検出した場合を考える。例えば、図１（ａ）に示す通常のトポロジ上で、（１）リンク１−２の故障を検出すると、故障検出ノード（ノード番号「１」のノード）は、故障リンクをプロテクトする予備トポロジＡに従ってパケットをノード番号「４」のノードに転送する（図１（ｂ）参照）。このとき、故障検出ノード（ノード番号「１」のノード）は、リンク１−２が故障したことを知っているので、予備トポロジＡを使用すれば故障箇所を迂回できることを知っている。
【０００７】
しかし、他のノード（例えば、ノード番号「４」のノード）は、故障箇所を把握できていない。そこで、故障検出ノード（ノード番号「１」のノード）は、（２）使用する予備トポロジＡを選択し、その予備トポロジＡのＩＤ（Identification）をノード番号「４」のノードに転送するパケットのヘッダに記述しておく。そして、迂回経路上に存在する他のノード（ここでは、ノード番号「４」のノード）はパケットを受信すると、（３）このパケットのヘッダを参照し、使用すべき予備トポロジＡを選択し、その選択した予備トポロジＡに従って、パケットをノード番号「５」のノードに転送する。このように、故障検出ノードは、使用する予備トポロジのＩＤをパケットに付与することで、データ転送と同時に故障箇所を間接的に伝搬する。
【０００８】
図２は、任意の単一リンクの故障をプロテクトする予備トポロジの設計例を示す。図２（ａ）は、通常のトポロジであり、図２（ｂ）〜（ｄ）は、図２（ａ）の通常のトポロジの予備トポロジを示す。予備トポロジは、全体の予備トポロジの数を削減するため、単一のトポロジで複数のリンクをプロテクトするように設計される。
【０００９】
また、これまでに、予備トポロジ数を最小化したり（非特許文献３参照）、迂回後の負荷を平滑化したり（非特許文献４参照）する予備トポロジ設計アルゴリズムが提案されている。
【先行技術文献】
【非特許文献】
【００１０】
【非特許文献１】“OSPF Version 2”,[online], April 1998, IETF RFC2328, ［平成２４年１月６日検索］,インターネット<URL:http://www.ietf.org/rfc/rfc2328.txt>
【非特許文献２】A.Kvalbein, A.F.Hansen, et al.,“Fast IP Network Recovery using Multiple Routing Configurations,” in Proceedings of INFOCOM, Apr.2006.
【非特許文献３】S.Kamamura, T.Miyamura, et al.,“Scalable Backup Configurations Creation for IP Fast Reroute,”IEICE Trans. Commun Vol.E94-B  No.1  pp.109-117, 2011.1.
【非特許文献４】R.Takahashi, S.Tembo, et al.,“Dispersing Hotspot Traffic in Backup Topology for IP Fast Reroute,”submitted to IEEE ICC, 2011.6.
【非特許文献５】鎌村星平，島崎大作，他２名，“多重故障を考慮したループフリー高速迂回方式に関する検討”，IEICE 信学技報，ＮＳ研究会，2011.10
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、既存の方式は、単一のリンクやノードの故障に対しては安定的に動作するが、多重故障の発生によって転送ループが発生する問題がある。なお、パケット交換網上の転送ループは、該当パケットがロスするだけでなく、ループするパケットによる帯域消費が、他のパケット通信に悪影響を与える可能性があるため、極力避ける必要がある。
【００１２】
転送ループ発生の具体例を、図３を参照して説明する。ノード「ｉ」からノード「ｄｓｔ」に向けてパケットを転送する際に、図３（ａ）に示すリンク故障ｘ，ｙが発生した場合を考える。故障ｘを検出したノード「ｉ」は、予備トポロジ＃２を選択し、予備トポロジ＃２に従った予備経路「１」−「２」−「３」−「８」−「７」−「６」に沿った転送を試みる（図３（ｂ）参照）。一方で、予備経路上には２つ目の故障である故障ｙが存在するため、故障ｙを検出したノード「ｊ」は、故障ｙをプロテクトする予備トポロジ＃１を選択する（図３（ｃ）参照）。ここで、予備トポロジ＃１に従った予備経路「２」−「１」−「６」は、再度リンク故障ｘを含む経路となる。結果として、この例ではノード「ｉ」とノード「ｊ」との間で、転送ループが発生する。
【００１３】
この問題が発生する原因として、次の２つが考えられる。１つ目は、従来技術では、故障検出ノード以外のノードに、予備トポロジのＩＤのみが伝搬されるため、故障箇所の特定ができないことである。例えば、２重故障の場合、２番目の故障を検出したノードは、２番目の故障を回避する予備トポロジを選択することは可能であるが、１番目の故障の故障箇所が既知ではないため、再度１番目の故障を含む予備トポロジを選択する可能性があり、このような場合には、転送ループが発生する。
【００１４】
この点に関し、非特許文献５に記載の技術では、１度目に使用した予備トポロジのＩＤを用いて適切な２度目の予備トポロジを選択する方法（予備トポロジの選択方法としての「類似性判定法」や「故障箇所推定法」）を提案している。例えば、図３の例では、ノード「ｊ」は、故障ｙをプロテクトする予備トポロジとして予備トポロジ＃１ではなく、予備トポロジ＃３（図２参照）を選択することで、転送ループの発生を回避することが可能となる。
【００１５】
２つ目の原因は、従来技術では、そもそも多重故障の発生を前提として予備トポロジを設計していないことが挙げられる。図４（ａ）に示した図３（ａ）と同様の通常のトポロジにおいて、ノード「ｉ」からノード「ｄｓｔ」へパケット転送を行う場合を考える。ここで、リンク１−６に故障ｘ、リンク２−４に故障ｙが発生した場合、故障ｘを検出したノード「ｉ」は、予備トポロジ＃２を選択し（図４（ｂ）参照）、故障ｙを検出したノード「２」は、予備トポロジ＃１（図４（ｃ）参照）を選択するが、このケースでは、ノード「１」とノード「２」との間で転送ループが発生する（図４（ｄ）参照）。この場合において、ノード「２」は、図２に示した予備トポロジのうち、予備トポロジ＃１以外にリンク２−４をプロテクトする選択肢を持たないため、転送ループの発生を回避することができない。
【００１６】
前記した２つ目の原因に対応するため本発明がなされたのであり、本発明は、パケット交換網における多重故障発生時に、転送ループの発生を防ぐことができる故障復旧システムおよびノードを提供することを課題とする。
【課題を解決するための手段】
【００１７】
前記した課題を解決するため、請求項１に記載の発明は、複数のノードをリンクにより接続することで構成されるパケット交換網において、故障発生時に、予備トポロジに基づき作成された予備経路に切り替えることで故障復旧を行う故障復旧システムであって、前記故障復旧システムの各ノードの記憶部には、各ノード間の接続関係を示す情報であるもとのトポロジと、複数の前記予備トポロジを示すもとの予備トポロジセットとが記憶されており、前記故障復旧システムが、前記リンクの多重故障発生時における前記予備経路の切り替えのための新たな予備トポロジを作成する予備トポロジ作成手段を備え、前記予備トポロジ作成手段が、前記ノードの記憶部から取得した前記もとのトポロジおよび前記もとの予備トポロジセットに基づき、前記新たな予備トポロジを作成し、前記作成した新たな予備トポロジを前記もとの予備トポロジセットに追加し、新たな予備トポロジセットを作成し、前記作成された新たな予備トポロジセットが、転送ループを発生するか否かを判定し、前記転送ループが発生しない場合には処理を終了し、前記転送ループが発生する場合には、前記新たな予備トポロジを作成する処理に戻ることを特徴とする故障復旧システムとした。
【００１８】
また、請求項５に記載の発明は、複数のノードをリンクにより接続することで構成されるパケット交換網において、故障発生時に、予備トポロジに基づき作成された予備経路に切り替えることで故障復旧を行う故障復旧システムの前記ノードであって、前記複数のノード間の接続関係を示す情報であるもとのトポロジと、複数の前記予備トポロジを示すもとの予備トポロジセットとを記憶している記憶部と、前記リンクの多重故障発生時における前記予備経路の切り替えのための新たな予備トポロジを作成する予備トポロジ作成部とを備え、前記予備トポロジ作成部が、前記ノードの記憶部から取得した前記もとのトポロジおよび前記もとの予備トポロジセットに基づき、前記新たな予備トポロジを作成し、前記作成した新たな予備トポロジを前記もとの予備トポロジセットに追加し、新たな予備トポロジセットを作成し、前記作成された新たな予備トポロジセットが、転送ループを発生するか否かを判定し、前記転送ループが発生しない場合には処理を終了し、前記転送ループが発生する場合には、前記新たな予備トポロジを作成する処理に戻ることを特徴とするノードとした。
【００１９】
このようにすることで、予備トポロジ作成手段（予備トポロジ作成部）は、もとのトポロジおよびもとの予備トポロジセットに基づき新たな予備トポロジを作成し、パケット交換網における多重故障発生時に、転送ループの発生を防ぐことができる。
【００２０】
請求項２に記載の発明は、複数のノードをリンクにより接続することで構成されるパケット交換網において、故障発生時に、予備トポロジに基づき作成された予備経路に切り替えることで故障復旧を行う故障復旧システムであって、前記故障復旧システムの各ノードの記憶部には、各ノード間の接続関係を示す情報であるもとのトポロジと、複数の前記予備トポロジを示すもとの予備トポロジセットとが記憶されており、前記故障復旧システムは、前記リンクの多重故障発生時における前記予備経路の切り替えのための新たな予備トポロジを作成する予備トポロジ作成手段を備え、前記予備トポロジ作成手段が、前記ノードの記憶部から前記もとのトポロジおよび前記もとの予備トポロジセットを取得し、前記もとの予備トポロジセットに含まれる前記複数の予備トポロジそれぞれについて、前記ノード間を接続するリンクである中継リンクが存在するかを判定し、前記もとのトポロジの各ノード間の前記リンク毎に、前記複数の予備トポロジに、前記中継リンクが存在する数を合計し、その合計に基づき当該リンクの重みを設定し、前記設定したリンクの重みの総和が最小となるような最小スパニングツリーを計算し、前記計算した最小スパニングツリー上の前記リンクを前記中継リンクとして前記新たな予備トポロジを作成し、前記作成した新たな予備トポロジを前記もとの予備トポロジセットに追加し、新たな予備トポロジセットを作成し、前記作成された新たな予備トポロジセットが、転送ループを発生するか否かを判定し、前記転送ループが発生しない場合には処理を終了し、前記転送ループが発生する場合には、前記中継リンクが存在するかを判定する処理に戻ることを特徴とする故障復旧システムとした。
【００２１】
また、請求項６に記載の発明は、複数のノードをリンクにより接続することで構成されるパケット交換網において、故障発生時に、予備トポロジに基づき作成された予備経路に切り替えることで故障復旧を行う故障復旧システムの前記ノードであって、前記複数のノード間の接続関係を示す情報であるもとのトポロジと、複数の前記予備トポロジを示すもとの予備トポロジセットとを記憶している記憶部と、前記リンクの多重故障発生時における前記予備経路の切り替えのための新たな予備トポロジを作成する予備トポロジ作成部とを備え、前記予備トポロジ作成部が、前記ノードの記憶部から前記もとのトポロジおよび前記もとの予備トポロジセットを取得し、前記もとの予備トポロジセットに含まれる前記複数の予備トポロジそれぞれについて、前記ノード間を接続するリンクである中継リンクが存在するかを判定し、前記もとのトポロジの各ノード間の前記リンク毎に、前記複数の予備トポロジに、前記中継リンクが存在する数を合計し、その合計に基づき当該リンクの重みを設定し、前記設定したリンクの重みの総和が最小となるような最小スパニングツリーを計算し、前記計算した最小スパニングツリー上の前記リンクを前記中継リンクとして前記新たな予備トポロジを作成し、前記作成した新たな予備トポロジを前記もとの予備トポロジセットに追加し、新たな予備トポロジセットを作成し、前記作成された新たな予備トポロジセットが、転送ループを発生するか否かを判定し、前記転送ループが発生しない場合には処理を終了し、前記転送ループが発生する場合には、前記中継リンクが存在するかを判定する処理に戻ることを特徴とするノードとした。
【００２２】
このようにすることで、予備トポロジ作成手段（予備トポロジ作成部）は、もとの予備トポロジセットに基づき、各ノード間の中継リンクの数をリンクの重みに設定し、そのリンクの重みにより最小スパニングツリーを計算し、新たな予備トポロジを作成することができる。
これにより、パケット交換網における多重故障発生時に、転送ループの発生を防ぐことができる。
【００２３】
請求項３に記載の発明は、複数のノードをリンクにより接続することで構成されるパケット交換網において、故障発生時に、予備トポロジに基づき作成された予備経路に切り替えることで故障復旧を行う故障復旧システムであって、前記故障復旧システムの各ノードの記憶部には、各ノード間の接続関係を示す情報であるもとのトポロジと、複数の前記予備トポロジを示すもとの予備トポロジセットとが記憶されており、前記故障復旧システムは、前記リンクの多重故障発生時における前記予備経路の切り替えのための新たな予備トポロジを作成する予備トポロジ作成手段を備え、前記予備トポロジ作成手段が、前記ノードの記憶部から前記もとのトポロジおよび前記もとの予備トポロジセットを取得し、前記もとのトポロジに示される、各ノードがリンクに接続する数を示すノード次数と、前記もとの予備トポロジセットに含まれる前記複数の予備トポロジそれぞれについての前記ノード間を接続するリンクである中継リンクの数とに基づき、前記もとのトポロジと前記もとの予備トポロジセットとの第１の類似度を計算し、前記もとのトポロジに基づきランダムコストを用いた仮の予備トポロジを作成し、前記作成した仮の予備トポロジを前記もとの予備トポロジセットに追加して仮の予備トポロジセットを作成し、前記もとのトポロジの前記ノード次数と前記仮の予備トポロジセットの前記中継リンクの数とに基づき、前記もとのトポロジと前記仮の予備トポロジセットとの第２の類似度を計算し、前記第２の類似度が前記第１の類似度を超えない場合に、前記仮の予備トポロジの作成処理に戻り、前記第２の類似度が前記第１の類似度を超える場合に、前記第１の類似度を前記第２の類似度で上書きし、前記仮の予備トポロジを前記新たな予備トポロジとして前記もとの予備トポロジセットに追加して、新たな予備トポロジセットを作成し、前記作成された新たな予備トポロジセットが、転送ループを発生するか否かを判定し、前記転送ループが発生しない場合には処理を終了し、前記転送ループが発生する場合には、前記仮の予備トポロジの作成処理に戻ることを特徴とする故障復旧システムとした。
【００２４】
また、請求項７に記載の発明は、複数のノードをリンクにより接続することで構成されるパケット交換網において、故障発生時に、予備トポロジに基づき作成された予備経路に切り替えることで故障復旧を行う故障復旧システムの前記ノードであって、前記複数のノード間の接続関係を示す情報であるもとのトポロジと、複数の前記予備トポロジを示すもとの予備トポロジセットとを記憶している記憶部と、前記リンクの多重故障発生時における前記予備経路の切り替えのための新たな予備トポロジを作成する予備トポロジ作成部とを備え、前記予備トポロジ作成部が、前記ノードの記憶部から前記もとのトポロジおよび前記もとの予備トポロジセットを取得し、前記もとのトポロジに示される、各ノードがリンクに接続する数を示すノード次数と、前記もとの予備トポロジセットに含まれる前記複数の予備トポロジそれぞれについての前記ノード間を接続するリンクである中継リンクの数とに基づき、前記もとのトポロジと前記もとの予備トポロジセットとの第１の類似度を計算し、前記もとのトポロジに基づきランダムコストを用いた仮の予備トポロジを作成し、前記作成した仮の予備トポロジを前記もとの予備トポロジセットに追加して仮の予備トポロジセットを作成し、前記もとのトポロジの前記ノード次数と前記仮の予備トポロジセットの前記中継リンクの数とに基づき、前記もとのトポロジと前記仮の予備トポロジセットとの第２の類似度を計算し、前記第２の類似度が前記第１の類似度を超えない場合に、前記仮の予備トポロジの作成処理に戻り、前記第２の類似度が前記第１の類似度を超える場合に、前記第１の類似度を前記第２の類似度で上書きし、前記仮の予備トポロジを前記新たな予備トポロジとして前記もとの予備トポロジセットに追加して、新たな予備トポロジセットを作成し、前記作成された新たな予備トポロジセットが、転送ループを発生するか否かを判定し、前記転送ループが発生しない場合には処理を終了し、前記転送ループが発生する場合には、前記仮の予備トポロジの作成処理に戻ることを特徴とするノードとした。
【００２５】
このようにすることで、予備トポロジ作成手段（予備トポロジ作成部）は、もとのトポロジに示される各ノードのノード次数と、予備トポロジセットの中継リンクの数とに基づく類似度計算により、類似度が増加する仮の予備トポロジを、新たな予備トポロジとして、もとの予備トポロジセットに追加することができる。また、ノード次数を考慮することで、ノード次数の低いノードをより多く経由する予備トポロジを作成した上で、転送ループの発生を防ぐことができる。
【００２６】
請求項４に記載の発明は、前記故障復旧システムが、請求項２に記載の予備トポロジ作成手段と、請求項３に記載の予備トポロジ作成手段とを含む、新たな予備トポロジ作成手段を備えており、前記新たな予備トポロジ作成手段が、前記ノードの記憶部から前記もとのトポロジを取得し、各ノードの前記ノード次数を計算し、前記計算したノード次数の分散が所定値以上でない場合には、請求項２に記載の前記新たな予備トポロジの作成処理を実行し、前記計算したノード次数の分散が所定値以上の場合には、請求項３に記載の前記新たな予備トポロジの作成処理を実行することを特徴とする故障復旧システムとした。
【００２７】
また、請求項８に記載の発明は、前記ノードは、請求項６に記載の予備トポロジ作成部の処理と、請求項７に記載の予備トポロジ作成部の処理とを実行する新たな予備トポロジ作成部を備えており、前記新たな予備トポロジ作成部が、前記記憶部から前記もとのトポロジを取得し、各ノードの前記ノード次数を計算し、前記計算したノード次数の分散が所定値以上でない場合には、請求項６に記載の前記新たな予備トポロジの作成処理を実行し、前記計算したノード次数の分散が所定値以上の場合には、請求項７に記載の前記新たな予備トポロジの作成処理を実行することを特徴とするノードとした。
【００２８】
このようにすることで、新たな予備トポロジ作成手段（新たな予備トポロジ作成部）は、もとのトポロジのノード次数の分散を計算し、計算した分散が所定値以上でない場合は、第１の予備トポロジ作成処理（請求項２，請求項６に記載の予備トポロジ作成処理）により、処理負荷を低減した上、転送ループを発生させないための新たな予備トポロジを作成することができる。また、予備トポロジ作成手段は、計算した分散が所定値以上の場合には、第２の予備トポロジ作成処理（請求項３，請求項７に記載の予備トポロジ作成処理）により、もとのトポロジのノード次数を考慮して、予備トポロジセットの情報との類似度を計算し、新たに追加する予備トポロジ数の増加を防いだ上で、転送ループを発生させないための新たな予備トポロジを作成することができる。
【発明の効果】
【００２９】
本発明によれば、パケット交換網における多重故障発生時に、転送ループの発生を防ぐ、故障復旧システムおよびノードを提供することができる。
【図面の簡単な説明】
【００３０】
【図１】ＩＰ−ＦＲＲ方式における予備トポロジを用いた故障復旧方法を説明するための図である。
【図２】予備トポロジの設計例を示す図である。
【図３】多重故障による転送ループの発生を説明するための図である。
【図４】多重故障による転送ループの発生を回避できない場合を説明するための図である。
【図５】本実施形態に係る故障復旧システムの構成例を示す図である。
【図６】本実施形態に係るノードの構成例を示す機能ブロック図である。
【図７】本実施形態に係る記憶部に記憶される情報のデータ構成を説明するための図である。
【図８】本実施形態に係る故障復旧システムのノードが行う全体の処理の流れを示すフローチャートである。
【図９】本実施形態に係る予備トポロジ作成部が行う第１の予備トポロジ作成方法の流れを示すフローチャートである。
【図１０】本実施形態に係る第１の予備トポロジ作成方法の流れを説明するための図である。
【図１１】本実施形態に係る第２の予備トポロジ作成方法において、リンクコストを行列表現で表した図である。
【図１２】本実施形態に係る予備トポロジ作成部が行う第２の予備トポロジ作成方法の流れを示すフローチャートである。
【図１３】本実施形態に係る予備トポロジ作成部が行う第３の予備トポロジ作成方法の流れを示すフローチャートである。
【図１４】本実施形態に係る第２の予備トポロジ作成方法の変形例における流れを示すフローチャートである。
【図１５】本実施形態に係る故障復旧システムの変形例の構成を示す図である。
【発明を実施するための形態】
【００３１】
次に、本発明を実施するための形態（以下、「本実施形態」という）における予備トポロジ作成処理を実現する故障復旧システム等について説明する。
本発明は、パケット交換網における既存の故障復旧システムで生成されている予備トポロジに対し、新たに異なる形状の予備トポロジを追加することによって、転送ループの発生を回避する。よって、本発明は、既存の故障復旧システムに、転送ループを回避するために追加する予備トポロジを作成する予備トポロジ作成手段（後記する図６の予備トポロジ作成部１００）を付加した構成として実現することができる。
以下、先ず、従来技術である故障復旧システムに本願発明である予備トポロジ作成手段を組み込んだ故障復旧システム１０００について説明する。
【００３２】
≪故障復旧システムの構成≫
図５は、本実施形態に係る故障復旧システム１０００の構成例を示す図である。
故障復旧システム１０００は、複数のノード１０と各ノード１０間を接続することにより通信経路を提供するリンクとで構成される。このノード１０間には、トラヒックが発生しており、トラヒックは、ＩＰパケット単位でノード１０に到着するものとする。
また、通信ネットワーク５００を構成する各ノード１０それぞれには、後記する予備トポロジ作成手段（図６の予備トポロジ作成部１００）を付加した故障回復機能が備わっている。
【００３３】
≪ノードの構成≫
続いて、本実施形態に係るノード１０について説明する。
図６は、本実施形態に係るノード１０の構成例を示す機能ブロック図である。
【００３４】
ノード１０は、ＩＰパケット（以下単に「パケット」と呼ぶ）を転送する中継装置であり、例えば、ルータである。このノード１０は、不図示の制御部と、通信部と、記憶部とを備える。
【００３５】
通信部は、入力インタフェース（Ｉ／Ｆ）３１と出力インタフェース（Ｉ／Ｆ）３２とを含んで構成され、それぞれのインタフェースには、接続先のノード１０別のリンクが各ポートを介して接続され、パケットの受信および送信を実行する。
【００３６】
制御部は、故障復旧システム１０００におけるパケットの転送処理や、パケット交換における故障復旧処理の全般を制御し、経路テーブル（ＦＩＢ：Forwarding Information Base）作成部１１、ＦＩＢ−ＩＤ探索テーブル作成部１２、テーブル探索部１３、出力ポート確認部１４、およびＦＩＢ−ＩＤ更新部１５を備え、さらに、本願発明に特有な構成として予備トポロジ作成部１００を含んで構成される。
【００３７】
経路テーブル（ＦＩＢ）作成部１１は、後記するトポロジ情報２１（図７）に基づき転送経路の計算を行い、経路テーブル（ＦＩＢ）２２（図７）を作成する。
具体的には、経路テーブル（ＦＩＢ）作成部１１は、まず、トポロジ情報２１に記憶される通常のトポロジを参照して、ランダムコストに基づき既存の予備トポロジ設計アルゴリズム（例えば、プリム法やクラスカル法）により複数の予備トポロジを作成し、その作成した予備トポロジをトポロジ情報２１内に記憶する。なお、以下において、トポロジ情報２１内に記憶されている通常のトポロジを「もとのトポロジ」、経路テーブル（ＦＩＢ）作成部１１により既存の方法で作成された予備トポロジそれぞれを「もとの予備トポロジ」、そして、作成された「もとの予備トポロジ」の集合を「もとの予備トポロジセット」と呼ぶことがある。
【００３８】
また、経路テーブル（ＦＩＢ）作成部１１は、トポロジ情報２１に記憶された、通常のトポロジと、複数の予備トポロジに基づき、通常の経路テーブル（Ｐｒｉｍａｒｙ ＦＩＢ）２３、および複数の予備経路テーブル(Ｂａｃｋｕｐ ＦＩＢ)２４の作成を行う。
なお、経路テーブル（ＦＩＢ）作成部１１が、通常の経路テーブル（Ｐｒｉｍａｒｙ ＦＩＢ）２３および複数の予備経路テーブル(Ｂａｃｋｕｐ ＦＩＢ)２４の作成を行う際において、トポロジ情報２１には、経路テーブル（ＦＩＢ）作成部１１が自身で作成した予備トポロジ（もとの予備トポロジセット）に加え、後記する予備トポロジ作成部１００が作成した、新たな予備トポロジが加わった予備トポロジセット（後記において、「新たな予備トポロジセット」という）が記憶されている。詳細は後記する。
【００３９】
この経路テーブル（ＦＩＢ）２２としての通常の経路テーブル（Ｐｒｉｍａｒｙ ＦＩＢ）２３および予備経路テーブル(Ｂａｃｋｕｐ ＦＩＢ)２４には、本故障復旧システム１０００に固有な番号であるＦＩＢ−ＩＤが付されている。そして、各経路テーブル（ＦＩＢ）２２には、パケットの宛先アドレスを示すｄｓｔ−ＩＤと、出力インタフェース３２である出力ポートとの対応関係を示す情報が格納される。
【００４０】
ＦＩＢ−ＩＤ探索テーブル作成部１２は、ＦＩＢ−ＩＤ探索テーブル２５を、最短経路探索法や、類似性判定法、故障箇所推定法等を用いて作成する（非特許文献５参照）。
図７に示すように、ＦＩＢ−ＩＤ探索テーブル２５には、現時点でのパケットに付与されている経路テーブル（ＦＩＢ）２２のＩＤを示す「現ＦＩＢ−ＩＤ」、送信元アドレスを示す「ｓｒｃ−ＩＤ」、および、宛先アドレスを示す「ｄｓｔ−ＩＤ」が、次に選択すべき経路テーブル（ＦＩＢ）２２のＩＤを示す「次ＦＩＢ−ＩＤ」に対応付けられて記憶される。
なお、このＦＩＢ−ＩＤ探索テーブル２５の「次ＦＩＢ−ＩＤ」には、類似性判定法や故障箇所推定法等を用いることで、２番目に検出した故障リンクをプロテクトしつつ、１番目の故障リンクをできる限りプロテクトする予備トポロジに基づく予備経路テーブル２４のＩＤが設定される。
【００４１】
図６に戻り、テーブル探索部１３は、入力インタフェース（Ｉ／Ｆ）３１を介してパケットを受信し、そのパケットのヘッダに付与されたＦＩＢ−ＩＤおよび宛先アドレスを示すｄｓｔ−ＩＤを取得する。そして、テーブル探索部１３は、ＦＩＢ−ＩＤを用いて、通常の経路テーブル２３および予備経路テーブル２４を探索し、該当するＦＩＢ−ＩＤの経路テーブル（ＦＩＢ）２２を抽出し、ｄｓｔ−ＩＤをキーとして、出力ポートを決定する。テーブル探索部１３は、決定した出力ポートの情報を出力ポート確認部１４に引き渡す。
また、テーブル探索部１３は、ＦＩＢ−ＩＤ更新部１５から、次ＦＩＢ−ＩＤが付されたパケットを受信すると、その次ＦＩＢ−ＩＤとｄｓｔ−ＩＤとを用いて、予備経路テーブル２４を探索し、出力ポートを決定する。そして、テーブル探索部１３は、決定した出力ポートの情報を出力ポート確認部１４に引き渡す。
【００４２】
出力ポート確認部１４は、テーブル探索部１３から受信した出力ポートが起動しているかを確認する。つまり、そのリンクを介して正常に他のノード１０に送信可能か否かを確認する。
出力ポート確認部１４は、出力ポートが起動している場合には、その出力ポートへパケットを引き渡し、出力インタフェース（Ｉ／Ｆ）３２を介してパケットを送信する。一方、出力ポート確認部１４は、出力ポートが起動していない場合には、そのパケットをＦＩＢ-ＩＤ更新部１５に引き渡す。
【００４３】
ＦＩＢ−ＩＤ更新部１５は、出力ポート確認部１４から、パケットを受信すると、そのパケットのヘッダから、現ＦＩＢ−ＩＤ、ｓｒｃ−ＩＤ、ｄｓｔ−ＩＤを取得し、これらをキーとして、ＦＩＢ−ＩＤ探索テーブル２５を探索し、更新後のＦＩＢ−ＩＤである次ＦＩＢ−ＩＤを取得する。
そして、ＦＩＢ−ＩＤ更新部１５は、取得した次ＦＩＢ−ＩＤを付したパケットを、テーブル探索部１３に引き渡す。
【００４４】
予備トポロジ作成部１００は、経路テーブル（ＦＩＢ）作成部１１が作成し、トポロジ情報２１に記憶された予備トポロジ（もとの予備トポロジセット）に基づき、多重故障発生時に、転送ループの発生を防ぐための新たな予備トポロジを作成する。
予備トポロジ作成部１００は、この新たな予備トポロジを、以下の３つの方法を用いて作成する。
（１）トポロジ情報２１に記憶されているもとの予備トポロジセットに基づき、新たな予備トポロジを作成する方法（以下、「第１の予備トポロジ作成方法」と呼ぶ）。
（２）もとの予備トポロジセットの情報と、もとのトポロジの特徴（以下に示す「ノード次数」）を考慮した情報との類似度に基づき、新たな予備トポロジを作成する方法（以下「第２の予備トポロジ作成方法」と呼ぶ）。
（３）（１）および（２）を組み合わせた新たな予備トポロジの作成方法（以下、「第３の予備トポロジ作成方法」と呼ぶ）。
なお、この予備トポロジ作成部１００による、新たな予備トポロジの作成方法（１）〜（３）については、後記して詳細に説明する。
【００４５】
また、記憶部には、トポロジ情報２１と、経路テーブル（ＦＩＢ）２２と、ＦＩＢ−ＩＤ探索テーブル２５とを含む情報が記憶される。図７は、記憶部に記憶される各情報についての、データ構成（情報要素）と、その取得・生成方法を示している。
ここで、トポロジ情報２１には、故障復旧システム１０００内の各ノード１０間のリンクによる接続関係を示すもとのトポロジが、経路テーブル（ＦＩＢ）作成部１１により、ＯＳＰＦ等のルーチングプロトコルを用いて取得され記憶される。また、このトポロジ情報２１には、経路テーブル（ＦＩＢ）作成部１１が、既存の予備トポロジ設計アルゴリズムにより生成した予備トポロジ（もとの予備トポロジセット）が記憶される。
なお、経路テーブル（ＦＩＢ）２２およびＦＩＢ−ＩＤ探索テーブル２５については、既に説明を行っているので、ここでは説明を省略する。
【００４６】
そして、この記憶部は、ＲＡＭ（Random Access Memory）や、ＨＤＤ（Hard Disk Drive）、フラッシュメモリ等の記憶媒体から構成される。ノード１０をプログラム実行処理により実現する場合、記憶部には、ノード１０の制御部の機能を実現するためのプログラムが格納される。そして、制御部は、記憶部に記憶されたプログラムを、不図示のＣＰＵ（Central Processing Unit）が、ＲＡＭ等に展開し実行することで実現される。
【００４７】
≪故障箇所復旧システムの全体の処理≫
次に、本実施形態における予備トポロジ作成処理を含む、故障復旧システム１０００の処理の流れを説明する（適宜図６参照）。なお、故障復旧システム１０００が行う処理は、具体的には、個々のノード１０それぞれが同様に行う処理であるため、以下、ノード１０が行う処理として説明する。
図８は、本実施形態に係る故障復旧システム１０００のノード１０が行う全体の処理の流れを示すフローチャートである。なお、ここでは、ノード１０の経路テーブル（ＦＩＢ）作成部１１の処理等により、予めもとのトポロジがトポロジ情報２１に記憶されているものとする。
【００４８】
まず、経路テーブル（ＦＩＢ）作成部１１は、トポロジ情報２１に記憶されたもとのトポロジを用いて、既存の予備トポロジ設計アルゴリズム（例えば、プリム法やクラスカル法）により、もとの予備トポロジセットを作成し、トポロジ情報２１に記憶する（ステップＳ１）。
【００４９】
次に、予備トポロジ作成部１００が、後記において詳細に説明する、第１〜第３の予備トポロジの作成方法のいずれかを用いて、新たな予備トポロジを作成し、その作成した新たな予備トポロジをもとの予備トポロジセットに加えて、新たな予備トポロジセットを作成する（ステップＳ２：予備トポロジ作成処理）。
【００５０】
続いて、経路テーブル（ＦＩＢ）作成部１１は、トポロジ情報２１に記憶されたもとのトポロジおよびステップＳ２で作成された新たな予備トポロジセットに基づき転送経路の計算を行い、通常の経路テーブル（Ｐｒｉｍａｒｙ ＦＩＢ）２３、および予備経路テーブル(Ｂａｃｋｕｐ ＦＩＢ)２４の作成を行う（ステップＳ３）。
【００５１】
次に、ＦＩＢ−ＩＤ探索テーブル作成部１２は、非特許文献５に記載された類似性判定法や、故障箇所推定法等を用いて、ＦＩＢ−ＩＤ探索テーブル２５を作成する（ステップＳ４）。
なお、このステップＳ１〜ステップＳ４の処理は、パケット転送処理の前に各ノード１０が予め計算しておく処理である。
【００５２】
そして、テーブル探索部１３は、入力インタフェース（Ｉ／Ｆ）３１を介して、パケットを受信すると、パケットのヘッダに付されたＦＩＢ−ＩＤおよびｄｓｔ−ＩＤ（宛先アドレス）をキーとして、通常の経路テーブル（Ｐｒｉｍａｒｙ ＦＩＢ）２３、および予備経路テーブル(Ｂａｃｋｕｐ ＦＩＢ)２４を探索し、出力ポートを取得する（ステップＳ５）。
【００５３】
次に、出力ポート確認部１４は、出力ポートが起動しているか否かを確認する（ステップＳ６）。出力ポート確認部１４は、出力ポートが起動している場合には（ステップＳ６→Ｙｅｓ）、その出力ポートへパケットを引き渡し、出力インタフェース（Ｉ／Ｆ）３２を介して、パケットを送信して（ステップＳ７）、処理を終える。
【００５４】
一方、出力ポート確認部１４は、出力ポートが起動していない場合には（ステップＳ６→Ｎｏ）、次のステップＳ８に進む。
【００５５】
ステップＳ８において、出力ポート確認部１４は、そのパケットをＦＩＢ−ＩＤ更新部１５に引き渡す。
【００５６】
続いて、ＦＩＢ−ＩＤ更新部１５は、出力ポート確認部１４から、パケットを受信すると、そのパケットのヘッダ情報から、現ＦＩＢ−ＩＤ、ｓｒｃ−ＩＤ、ｄｓｔ−ＩＤを取得し、これらをキーとして、ＦＩＢ−ＩＤ探索テーブル２５を探索し、更新後のＦＩＢ−ＩＤである次ＦＩＢ−ＩＤを取得する（ステップＳ９）。そして、ＦＩＢ−ＩＤ更新部１５は、取得した次ＦＩＢ−ＩＤを付したパケットを、テーブル探索部１３に引き渡し、ステップＳ５に戻る。
【００５７】
そして、テーブル探索部１３が、ＦＩＢ−ＩＤ更新部１５から次ＦＩＢ−ＩＤが付されたパケットを受信すると、その次ＦＩＢ−ＩＤとｄｓｔ−ＩＤとを用いて、予備経路テーブル２４を探索し、出力ポートを決定する。そして、テーブル探索部１３は、決定した出力ポートの情報を出力ポート確認部１４に引き渡し、ステップＳ６以降の処理を続ける。
【００５８】
このようにすることで、本実施形態に係る故障復旧システム１０００によれば、予備トポロジ作成部１００がもとの予備トポロジセットに加えて、新たな予備トポロジを作成しておくことにより、パケット交換網における多重故障発生時に、転送ループの発生を防いた上で、早急な故障復旧を実現することができる。
【００５９】
≪予備トポロジ作成処理≫
次に、図８のステップＳ２において、予備トポロジ作成部１００が行う、予備トポロジ作成処理について詳細に説明する。
予備トポロジ作成部１００は、前記したように、トポロジ情報２１に記憶されたもとの予備トポロジセットやもとのトポロジに基づき、多重故障発生時に、転送ループの発生を防ぐための新たな予備トポロジを生成する。以下、第１〜第３の予備トポロジ作成方法について説明する。なお、以下においては、パケット転送網のリンクに２重故障が発生したものとして説明するが、後記するように、本発明は、３重故障以上の多重故障の発生に対しても適用可能である。
【００６０】
＜第１の予備トポロジ作成方法＞
予備トポロジ作成部１００が行う、第１の予備トポロジ作成方法について、図９および図１０を参照して説明する。ここでは、経路テーブル（ＦＩＢ）作成部１１により、複数の予備トポロジが既存の予備トポロジ設計アルゴリズムに基づき作成され、トポロジ情報２１内に、もとの予備トポロジセットとして記憶されているものとする（図８のステップＳ１参照）。
予備トポロジ作成部１００が行う第１の予備トポロジ作成方法は、もとの予備トポロジセットを用いて、予備トポロジ上に出現する中継リンクの数を平滑化することで、迂回路の多様性を増加させることを目的とする。なお、ここで、中継リンクとは、予備トポロジにおいて、ノード間を接続するリンク（非プロテクトリンク）を意味する。
【００６１】
図９は、本実施形態に係る予備トポロジ作成部１００が行う第１の予備トポロジ作成方法の流れを示すフローチャートである。また、図１０は、本実施形態に係る第１の予備トポロジ作成方法の流れを説明するための図である。
【００６２】
まず、予備トポロジ作成部１００は、トポロジ情報２１から、もとの予備トポロジセットを取得する（図９のステップＳ１０）。
図１０（ａ）においては、説明のための単純な例として、図２で示した予備トポロジ＃２と予備トポロジ＃３とが、もとの予備トポロジセットとして取得されたことを示している。
【００６３】
次に、予備トポロジ作成部１００は、トポロジ上で注目するリンク毎に、各予備トポロジにおいて中継リンクが存在するか否かを判定し、予備トポロジに中継リンクが存在する場合を「１」とし、中継リンクが存在しない場合を「０」として、予備トポロジセットのリンク毎の中継リンク数Ｌを算出する。そして、予備トポロジ作成部１００は、算出した中継リンク数Ｌに「１」を加え、「Ｌ＋１」をそのリンクの重みとして設定する（ステップＳ１１）。
図１０（ｂ）に示すように、例えば、リンク１−６についてみると、予備トポロジ＃２には、中継リンクはなく、予備トポロジ＃３については中継リンクが存在するため、このリンク１−６の中継リンク数Ｌは、０＋１＝１となる。そして、この中継リンク数Ｌ＝１に「１」を加え、リンク１−６の重みを「２」に設定する。この処理を、もとのトポロジの各リンクについて行う。
【００６４】
続いて、予備トポロジ作成部１００は、設定した重みに基づく最小スパニングツリーを計算する（ステップＳ１２）。ここで、最小スパニングツリーとは、リンクコストの重みの総和が最小となる全域木である。
図１０（ｂ）に示す重みに基づき、最小スパニングツリーを計算すると、図１０（ｃ）のようになる。
【００６５】
そして、予備トポロジ作成部１００は、計算した最小スパニングツリー上のリンクを非プロテクトリンクとし、削除されたリンクをプロテクトリンクとする予備トポロジを作成する（ステップＳ１３）。なお、ここで作成された予備トポロジを、「新たな予備トポロジ」と呼ぶ。
図１０（ｃ）の最小スパニングツリー上で、削除されたリンクをプロテクトリンクとすることで、図１０（ｄ）に示すような新たな予備トポロジが作成される。
【００６６】
次に、予備トポロジ作成部１００は、ステップＳ１３で作成した新たな予備トポロジを、もとの予備トポロジセットに加え、新たな予備トポロジセットを作成する（ステップＳ１４）。
【００６７】
続いて、予備トポロジ作成部１００は、ステップＳ１４で作成した新たな予備トポロジセットが、２重故障において、転送ループを発生させない経路を提供可能か否か判定する（ステップＳ１５）。なお、このループチェックを行う故障パターンを拡大することで、２重故障に限らずＮ重（多重）故障に対しても適用可能である。ここで、転送ループを発生させない経路が提供可能な場合は（ステップＳ１５→Ｙｅｓ）、処理を終了する。一方、転送ループを発生させない経路が提供可能でない場合（ステップＳ１５→Ｎｏ）、つまり、転送ループが発生する場合には、ステップＳ１１に戻って処理を続ける。
なお、この予備トポロジ作成部１００が行う、転送ループを発生させない経路が提供可能な否かの判定は、例えば、全対地間でのパケットの送受信を想定し、２重（多重）故障が発生するすべてのパターンについて転送ループが発生するか否かを調べることにより行う。
【００６８】
予備トポロジ作成部１００は、転送ループを発生させない経路が提供可能になるまで、ステップＳ１１〜Ｓ１５の処理を繰り返し、転送ループを発生させない経路が提供可能になると、処理を終了する。
【００６９】
このようにすることで、予備トポロジ作成部１００は、転送ループを発生させないようにするための新たな予備トポロジを生成し、もとの予備トポロジセットに加え、新たな予備トポロジセットを作成することができる。
【００７０】
＜第２の予備トポロジ作成方法＞
次に、予備トポロジ作成部１００が行う、第２の予備トポロジ作成方法について、図１１および図１２を参照して説明する。
第１の予備トポロジ作成方法では、予備トポロジ作成部１００は、もとのトポロジは考慮せず、もとの予備トポロジセットだけに基づいて、新たな予備トポロジを作成した。このため、もとのトポロジの特徴によらず、全対地間に均一に迂回経路が提供される。しかしながら、実際にはもとのトポロジの形状（ここでは、ノードからのリンクの出線数）は均一ではなく、その特徴はノードに接続するリンク数であるノード次数によって決定される。
【００７１】
第１の予備トポロジ作成方法では、各ノードの特徴であるノード次数を考慮していないため、予備トポロジ上に出現する中継リンクの数を平滑化していくと、ノード次数が高いノードを含む経路が発生しやすくなる。その結果、ノード次数の低いノードを含む経路の予備トポロジが作成されるまでに、予備トポロジの作成数を十分増やす必要が生じる。
この問題に対応するため、第２の予備トポロジ作成方法では、もとのトポロジのノード次数を考慮し、ノード次数の低いノードをより多く経由するような予備トポロジを作成する方法を提案する。これにより、第２の予備トポロジ作成方法は、第１の予備トポロジ作成方法に比べ、各ノード１０のノード次数にばらつきがある場合に、予備トポロジの作成数を低減することが可能となる。
【００７２】
具体的には、この第２の予備トポロジ作成方法は、もとのトポロジのノード次数を考慮した情報と、予備トポロジセットの各リンクの中継リンク数に基づく情報との類似度を計算し、その類似度を用いて、よりノード次数の低いノードを経由するような新たな予備トポロジの設計を行う。
そこで、まず、類似度の計算方法を説明し、その後、第２の予備トポロジの作成方法について、処理の流れを説明する。
【００７３】
（類似度計算）
予備トポロジ作成部１００は、トポロジ情報２１に記憶されたもとのトポロジと予備トポロジセットとを用いて、次のように類似度を計算する。
【００７４】
もとのトポロジにおいて、ノード「ｉ」のノード次数をＤ(i)と表記する。このとき、ノード「ｉ」，「ｊ」間のリンクをリンク（i,j）と表記すると、リンク(i,j)間のリンクコストＷorg(i,j)は、例えば次式で計算される。
【００７５】
【数１】
0005748147.tif 000002
【００７６】
ここで、Ｅは、リンクの集合を示し、ｋ、ｌは、トポロジ内の任意のノードを示す。
この（式１）では、次数が低いノードに接続するリンクほど（−logの部分によって）高い重みとなる計算をする。なお、ここでは（式１）を例に説明するが、リンクに接続するノード次数に反比例した重みが与えられるのであれば、別の方法を用いてもよい。
【００７７】
そして、このリンクコストＷorg(i,j)は、もとのトポロジにおいて、リンクが存在する箇所は上記の（式１）で計算した値、それ以外は「０」の値を持つ行列（ここでは、「行列Ａ」とする）として記述することができる。
図１１に、もとのトポロジにおいて、このリンクコストＷorg(i,j)を行列表現で表す例を示す。図１１（ａ）に示すように、説明のため単純化した３つのノード「１」〜「３」を２つのリンクで接続するもとのトポロジを考える。この場合、ノード「１」〜「３」を行と列のマトリックスとし、リンクが存在する箇所に、（式１）で計算されたリンクコストＷorg(i,j)を設定する。そして、リンクが存在しない箇所は「０」となる行列として表現することができる。
図１１（ａ）では、予備トポロジ作成部１００の類似度計算により、例えば、ノード「１」とノード「２」との間のリンクコストＷorg(1,2)＝0.5であり、ノード「１」とノード「３」との間のリンクコストＷorg(1,3)＝0.5であることを示し、図１１（ａ）を行列表現すると図１１（ｂ）となることを示している。
【００７８】
次に、予備トポロジ作成部１００は、予備トポロジセットの特徴を表現するため、予備トポロジセットを構成する全予備トポロジを累積した累積トポロジのリンクコストＷcumを計算する。
ここで、Ｗcumは、注目するノード「ｉ」，「ｊ」間の中継リンク数を、全予備トポロジが備える中継リンク数の合計で割った値を、累積トポロジのリンクコストとする。そして、このリンクコストＷcumは、累積トポロジにおいてリンクが存在する箇所に、計算値が入力され、それ以外は「０」の値を持つ行列（ここでは、「行列Ｂ」とする）として記述することができる。
【００７９】
予備トポロジ作成部１００は、行列Ａおよび行列Ｂに基づき類似度を、以下の手順で計算する。
（１）行列Ａの固有値が最大となる固有ベクトルＶorgを計算する。
（２）行列Ｂの固有値が最大となる固有ベクトルＶcumを計算する。
（３）ＶorgとＶcumのコサイン類似度を計算する。コサイン類似度Ｓは以下の（式２）で与えられる。
【００８０】
【数２】
0005748147.tif 000003
【００８１】
ここで、Ｖorg・Ｖcumはベクトル内積計算、｜Ｖorg｜および｜Ｖcum｜は、それぞれベクトルＶorg，ベクトルＶcumの長さであり、原点からベクトルＶorg，ベクトルＶcumそれぞれの終点までのユークリッド距離を表す。
【００８２】
（類似度を用いた新たな予備トポロジの作成方法）
上記において説明した類似度計算を用いた、新たな予備トポロジの作成方法（第２の予備トポロジ作成方法）を、図１２を参照して説明する。図１２は、本実施形態に係る予備トポロジ作成部１００が行う第２の予備トポロジ作成方法の流れを示すフローチャートである。
【００８３】
まず、予備トポロジ作成部１００は、トポロジ情報２１から、もとのトポロジと、もとの予備トポロジセットとを取得する（ステップＳ２０）。
【００８４】
次に、予備トポロジ作成部１００は、もとのトポロジと、もとの予備トポロジセットとの類似度（Ｓｉｍ１）を、上記した類似度計算に基づき計算する（ステップＳ２１）。
【００８５】
続いて、予備トポロジ作成部１００は、仮の予備トポロジ（ＳＧtmp）を、ランダムコストを用いた既存の予備トポロジ設計アルゴリズムに基づき作成する（ステップＳ２２）。
【００８６】
そして、予備トポロジ作成部１００は、仮の予備トポロジ（ＳＧtmp）を、取得した予備トポロジセットに追加した仮の予備トポロジセットを作成する（ステップＳ２３）。
【００８７】
次に、予備トポロジ作成部１００は、もとのトポロジと、作成した仮の予備トポロジセットとの類似度（Ｓｉｍ２）を計算する（ステップＳ２４）。
【００８８】
続いて、予備トポロジ作成部１００は、Ｓｉｍ１とＳｉｍ２とを比較し、Ｓｉｍ１＜Ｓｉｍ２であり、類似度が増加する場合には（ステップＳ２５→Ｙｅｓ）、次のステップＳ２６へ進む。一方、予備トポロジ作成部１００は、類似が増加しない場合（Ｓｉｍ１＜Ｓｉｍ２でない場合）には（ステップＳ２５→Ｎｏ）、ステップＳ２２へ戻る。
【００８９】
そして、予備トポロジ作成部１００は、ステップＳ２６において、類似度が増加する場合に、Ｓｉｍ１をＳｉｍ２で上書きする。そして、予備トポロジ作成部１００は、ステップＳ２２で作成した仮の予備トポロジ（ＳＧtmp）を、新たな予備トポロジとして予備トポロジセットに追加する。
【００９０】
次に、予備トポロジ作成部１００は、仮の予備トポロジ（ＳＧtmp）を追加した予備トポロジセットが、２重故障において、転送ループを発生させない経路を提供可能か否か判定する（ステップＳ２７）。なお、このループチェックを行う故障パターンを拡大することで、２重故障に限らずＮ重（多重）故障に対しても適用可能である。ここで、転送ループを発生させない経路が提供可能な場合は（ステップＳ２７→Ｙｅｓ）、処理を終了する。一方、転送ループを発生させない経路が提供可能でない場合、つまり、転送ループが発生する場合には（ステップＳ２７→Ｎｏ）、ステップＳ２２に戻って処理を続ける。
【００９１】
予備トポロジ作成部１００は、転送ループを発生させない経路が提供可能になるまで、ステップＳ２２〜Ｓ２７の処理を繰り返し、転送ループを発生させない経路が提供可能になると、処理を終了する。
【００９２】
このようにすることで、予備トポロジ作成部１００は、もとのトポロジの特徴を考慮した上で、つまり、ノード次数の低いノードをより多く経由するようにして、転送ループを発生させないための新たな予備トポロジを生成し、もとの予備トポロジセットに加えることができる。
【００９３】
＜第３の予備トポロジ作成方法＞
次に、予備トポロジ作成部１００が行う、第３の予備トポロジ作成方法について、図１３を参照して説明する。
第３の予備トポロジ作成方法は、第１の予備トポロジ作成方法と第２の予備トポロジ作成方法とを、もとのトポロジのノード次数のばらつき度合（分散）に基づき、使い分ける方式である。
【００９４】
これは、第１の予備トポロジの作成方法と、第２の予備トポロジの作成方法とを比べると、第１の予備トポロジの作成方法は、類似度計算が不要であるため、計算処理による負荷が低減できる。一方で、第２の予備トポロジの作成方法によれば、もとのトポロジの各ノードのノード次数にばらつきがある場合に、第１の予備トポロジの作成方法よりも、予備トポロジの数が増加するのを防ぐことができる。これらの点を考慮し、第３の予備トポロジ作成方法では、もとのトポロジのノード次数の分散により、両者を使い分ける方法を提案する。
【００９５】
第３の予備トポロジ作成方法では、予備トポロジ作成部１００（図６参照）が、トポロジ情報２１からもとのトポロジを取得して各ノードのノード次数を計算し、そのもとのトポロジのノード次数の分散が所定値以上か否かを判定する。なお、第３の予備トポロジ作成方法を実現する予備トポロジ作成部１００（図６参照）が、請求項の新たな予備トポロジ作成手段（新たな予備トポロジ作成部）に該当する。以下、具体的に説明する。
【００９６】
図１３は、本実施形態に係る予備トポロジ作成部１００が行う第３の予備トポロジ作成方法の流れを示すフローチャートである。
【００９７】
まず、予備トポロジ作成部１００は、トポロジ情報２１から、もとのトポロジを取得し、各ノードのノード次数を計算する（ステップＳ３０）。
【００９８】
次に、予備トポロジ作成部１００は、もとのトポロジのノード次数の分散を計算した結果が、所定値以上であるか否かを判定する（ステップＳ３１）。
【００９９】
そして、予備トポロジ作成部１００は、ノード次数の分散が所定値以上でない場合には（ステップＳ３１→Ｎｏ）、ステップＳ３２へ進み、第１の予備トポロジの作成方法（図９参照）により、新たな予備トポロジを作成して処理を終える。
一方、予備トポロジ作成部１００は、ノード次数の分散が所定値以上の場合は（ステップＳ３１→Ｙｅｓ）、ステップＳ３３へ進み、第２の予備トポロジの作成方法（図１２参照）により、新たな予備トポロジを作成して処理を終える。
【０１００】
このようにすることで、予備トポロジ作成部１００は、もとのトポロジのノード次数のばらつきに基づき、計算した分散が所定値以上でない場合は、第１の予備トポロジ作成方法により、処理負荷を低減した上、転送ループを発生させないための新たな予備トポロジを作成することができる。また、予備トポロジ作成部１００は、計算した分散が所定値以上の場合には、第２の予備トポロジ作成方法により、もとのトポロジのノード次数を考慮して、予備トポロジセットの情報との類似度を計算することにより、新たに追加する予備トポロジ数の増加を防いだ上で、転送ループを発生させないための新たな予備トポロジを作成することができる。
【０１０１】
＜第２の予備トポロジ作成方法の変形例＞
次に、予備トポロジ作成部１００が行う、第２の予備トポロジ作成方法の変形例について説明する。
以上において説明した、第１〜第３の予備トポロジ作成方法においては、もとの予備トポロジセットに対し新たな予備トポロジを追加することによって、転送ループの発生を回避する新たな予備トポロジセットを作成した。次に説明する予備トポロジ作成方法は、第２の予備トポロジ作成方法において用いた類似度の概念を使用して、既存の予備トポロジ設定の設計方法を拡張するものである。具体的には、前記した非特許文献３に記載の予備トポロジ作成方法に、類似度の概念を制約条件として取り入れるものである。
【０１０２】
非特許文献３に記載の予備トポロジ作成方法では、予備トポロジを設計する際に、新たにプロテクトされるリンク数を最大化することを目的関数として解（予備トポロジ）の探索を行う。その場合に、本発明の第２の予備トポロジ作成方法の変形例においては、第２の予備トポロジ作成方法で示した方法により、類似度を制約条件として取り入れる。以下、具体的に説明するが、非特許文献３に記載の処理については、簡略化して説明する。
【０１０３】
図１４は、本実施形態に係る予備トポロジ作成部１００が行う第２の予備トポロジ作成方法の変形例における流れを示すフローチャートである。
【０１０４】
まず、経路テーブル（ＦＩＢ）作成部１１は、トポロジ情報２１から、もとのトポロジを取得し、ランダムコストに基づき、もとの予備トポロジセットを作成する（ステップＳ４０）。
【０１０５】
次に、予備トポロジ作成部１００は、もとのトポロジと、ステップＳ４０で経路テーブル（ＦＩＢ）作成部１１が作成したもとの予備トポロジセットの類似度（Ｓｉｍ３）を計算する（ステップＳ４１）。
【０１０６】
続いて、予備トポロジ作成部１００は、予備トポロジセットがすべてのリンク（若しくはノード）をプロテクトするか否かを判定する（ステップＳ４２）。そして、予備トポロジセットがすべてのリンクをプロテクトする場合には（ステップＳ４２→Ｙｅｓ）、処理を終了する。一方、すべてのリンクをプロテクトしていない場合には、（ステップＳ４２→Ｎｏ）、次のステップＳ４３に進む。
【０１０７】
ステップＳ４３において、予備トポロジ作成部１００は、ランダムコストに基づく、新たな予備トポロジセットをＫ個作成する。
【０１０８】
そして、予備トポロジ作成部１００は、作成したＫ個の予備トポロジセットのうち、新たにプロテクトリンク（ノード）を追加する数が最大となる予備トポロジを選択する（ステップＳ４４）。
【０１０９】
次に、予備トポロジ作成部１００は、ステップＳ４４で選択した予備トポロジを、予備トポロジセットに加え、もとのトポロジと、その予備トポロジセットとの類似度（Ｓｉｍ４）を計算する（ステップＳ４５）。
【０１１０】
続いて、予備トポロジ作成部１００は、Ｓｉｍ４がＳｉｍ３を超えるか否かを判定する（ステップＳ４６）。そして、予備トポロジ作成部１００は、Ｓｉｍ４がＳｉｍ３を超える場合には（ステップＳ４６→Ｙｅｓ）、Ｓｉｍ３をＳｉｍ４で上書きし（ステップＳ４７）、ステップＳ４２に戻り、処理を続ける。
一方、予備トポロジ作成部１００は、Ｓｉｍ４がＳｉｍ３を超えない場合には（ステップＳ４６→Ｎｏ）、ステップＳ４３に戻り、処理を続ける。
【０１１１】
このようにすることで、既存の予備トポロジ作成方法に、類似度の概念を制約条件として取り入れることで、作成する予備トポロジの増加を防ぐことが可能となる。
【０１１２】
以下、本実施形態におけるその他の変形例について説明する。
【０１１３】
＜変形例１＞
本実施形態に係る故障復旧システム１０００は、図５に示したように、通信ネットワーク５００内のノード１０それぞれが、故障回復機能を備える構成とした。しかし、本発明はこれに限定されず、例えば、図１５に示すように、故障回復サーバ１１００を、ネットワーク情報取得装置１２００を介して通信ネットワーク５００に接続するような故障復旧システム１０００ａの構成にすることもできる。
【０１１４】
この場合、故障回復サーバ１１００が、経路テーブル（ＦＩＢ）作成部１１とＦＩＢ−ＩＤ探索テーブル作成部１２と予備トポロジ作成部１００とを備え、ネットワーク情報取得装置１２００を介して、各ノード１０ａ間のリンクによる接続関係の情報（トポロジ）を取得する。そして、故障回復サーバ１１００の予備トポロジ作成部１００が、本実施形態に係る予備トポロジ作成処理を行った上で、経路テーブル（ＦＩＢ）作成部１１が経路テーブル（ＦＩＢ）２２を作成し、ＦＩＢ−ＩＤ探索テーブル作成部１２がＦＩＢ−ＩＤ探索テーブル２５を作成して、各ノード１０ａに対して、パケット転送処理の開始前に配信するようにしてもよい。
【０１１５】
＜変形例２＞
また、＜変形例１＞の構成において、本実施形態に係る予備トポロジ作成部１００を、独立した装置である予備トポロジ作成装置として構成することもできる。この場合、予備トポロジ作成装置は、故障回復サーバ１１００と通信可能に接続され、故障回復サーバ１１００が既存の方法により作成したもとの予備トポロジセットやもとのトポロジを取得し、予備トポロジ作成装置が、転送ループの発生を防ぐための新たな予備トポロジを作成し、故障回復サーバ１１００に送信するようにしてもよい。
【０１１６】
この場合、予備トポロジ作成装置は、制御部と通信部と記憶部とを備え、通信部により、故障回復サーバ１１００との情報の送受信を行い、制御部が備える予備トポロジ作成部１００の処理により、新たな予備トポロジの作成処理が実行される。
【０１１７】
＜変形例３＞
本実施形態に係る第１の予備トポロジ作成方法においては、中継リンクを、予備トポロジにおいて、ノード間を接続するリンク（非プロテクトリンク）のすべてとして、リンクの重みを設定した（図９のステップＳ１１）。しかし、これに限らず、予備トポロジ作成部１００は、リンクの重みを設定する際に、終端となるノード（リーフ）と接続される非プロテクトリンクを、中継リンクとして数えないようにしてもよい。このようにすることで、終端となるノードに繋がるリンクの重みが低下するため、新たな予備トポロジにおいて、当該リンクが中継リンクとなる確率を高め、迂回経路の多様性を増加させることができる。
【０１１８】
以上説明したように、本実施形態に係る故障復旧システム１０００およびノードによれば、パケット交換網における多重故障発生時に、転送ループの発生を防ぐことができる。また、第２の予備トポロジ作成方法において用いた類似度の概念を使用して、既存の予備トポロジ設定の設計方法を拡張し、作成する予備トポロジの増加を防ぐことができる。そして、予備トポロジ上での中継リンクの出現確率を増加させ、経路の多様性を増加させることができる。
【符号の説明】
【０１１９】
１０    ノード
１１    経路テーブル（ＦＩＢ）作成部
１２    ＦＩＢ−ＩＤ探索テーブル作成部
１３    テーブル探索部
１４    出力ポート確認部
１５    ＦＩＢ−ＩＤ更新部
２１    トポロジ情報
２２    経路テーブル（ＦＩＢ）
２３    通常の経路テーブル（Ｐｒｉｍａｒｙ ＦＩＢ）
２４    予備経路テーブル（Ｂａｃｋｕｐ ＦＩＢ）
２５    ＦＩＢ−ＩＤ探索テーブル
１００  予備トポロジ作成部
５００  通信ネットワーク
１０００  故障復旧システム
１１００  故障回復サーバ
１２００  ネットワーク情報取得装置
【図１】
0005748147.tif 000004
【図２】
0005748147.tif 000005
【図３】
0005748147.tif 000006
【図４】
0005748147.tif 000007
【図５】
0005748147.tif 000008
【図６】
0005748147.tif 000009
【図７】
0005748147.tif 000010
【図８】
0005748147.tif 000011
【図９】
0005748147.tif 000012
【図１０】
0005748147.tif 000013
【図１１】
0005748147.tif 000014
【図１２】
0005748147.tif 000015
【図１３】
0005748147.tif 000016
【図１４】
0005748147.tif 000017
【図１５】
0005748147.tif 000018