(57)【特許請求の範囲】
【請求項１】
パケット転送のためのデータベースを参照してパケットを転送する複数のノード
を備え、
複数の上記ノードがリング状に接続され、
上記ノードのうち少なくともひとつは、リング状に接続されたネットワークの状態を確認する為のプローブパケットを送信するマスタノードであり、他のノードは上記マスタノードからの指示に応じて処理するスレーブノードであり、
上記マスタノードが、
ホップ数が初期化されたプローブパケットを、予め定めた時間毎に又は不定期に、第１のポート及び第２のポートからリングの両方向へ１個又は所定個ずつ送信し、
上記各スレーブノードが、
プローブパケットを、リングに接続されたふたつのポートの一方を介して受信すると、プローブパケットに含まれるホップ数を増加し、
増加されたホップ数を含む該プローブパケットを、受信したポートとは異なる他方のポートを介して、隣接する上記スレーブノード又は上記マスタノードに送信し、
増加されたホップ数を含むホップカウント報告パケットを作成し、プローブパケットを受信したポートを介して上記マスタノードに送信し、
上記マスタノードが、
各スレーブノードからの複数のホップカウント報告パケットを第１のポート及び第２のポートを介して受信し、ポート毎に、ホップカウント報告パケットに含まれるホップ数の最大値を管理し、
第１のポートに対応するホップ数の最大値と、第２のポートに対応するホップ数の最大値の和を求め、求められた和に基づいて上記マスタノードから通信可能なスレーブノード総数を求め、
求められた通信可能なスレーブノード総数の変動により、リングにおける多重障害の発生、及び、該多重障害の少なくともひとつの障害の復旧を検出し、
これらの事象を検出する度に、装置内の上記データベースを更新し、及び／又は、上記スレーブノードに対して、パケット転送のための上記データベースを更新するためのパケットを送信するリングネットワーク。
【請求項２】
上記マスタノードが、さらに、
求められた通信可能なスレーブノード総数が変動しない場合、第１のポート又は第２のポートに対応するホップ数の最大値の変動により、リングにおけるトポロジの変化を検出し、
該変化を検出する度に装置内の上記データベースを更新し、及び／又は、上記スレーブノードに対して、パケット転送のための上記データベースを更新するためのパケットを送信する請求項１に記載のリングネットワーク。
【請求項３】
上記マスタノードは、
第１のポートから送信したプローブパケットが第２のポートで受信されないこと、及び／又は、第２のポートから送信したプローブパケットが第１のポートで受信されないことにより、リングの第１の障害を検出し、
第１の障害の検出後、上記通信可能なスレーブノード総数の変動により、第２の障害の発生、及び、第１並びに第２の障害の少なくともひとつの障害の復旧を検出する請求項１に記載のリングネットワーク。
【請求項４】
上記マスタノードが、
障害の無い正常なリングにおいては、リング用の回線を収容する第１及び第２のポートのいずれかのポートにてデータパケットの通過を阻止し、
リングでのひとつ又は複数の障害発生の際には、第１及び第２のポートにてデータパケットの通過を許可し、
リングにおける障害の全てが復旧する際には、第１及び第２のポートのいずれかのポートにてデータパケットの通過を阻止する請求項１に記載のリングネットワーク。
【請求項５】
リングでの障害発生中において、
上記マスタノードは、上記スレーブノード総数が以前の状態から減少することにより、多重障害の発生を検出する請求項１に記載のリングネットワーク。
【請求項６】
リングでの多重障害発生中において、
上記マスタノードは、上記スレーブノード総数が以前の状態から増加することにより、多重障害から少なくとも一箇所の復旧を検出する請求項１に記載のリングネットワーク。
【請求項７】
リングでの多重障害発生中において、
上記マスタノードは、上記スレーブノード総数が以前の状態から変わらない場合、第１又は第２のポートに対応するホップ数の最大値の変動により、トポロジの変化又は多重障害の発生箇所の変化を検出する請求項２に記載のリングネットワーク。
【請求項８】
上記スレーブノードは、上記マスタノードから上記データベースを更新するためのパケットを受信すると、上記データベースに記憶された情報を消去し、アドレス学習を実行する請求項１に記載のリングネットワーク。
【請求項９】
上記スレーブノードのうち少なくともひとつが、設定されるモードに応じて、マスタノード及びスレーブノードのいずれかとして動作するサブマスタノードであり、
上記サブマスタノードは、
上記マスタノードから、予め定められた時間内に１個以上のプローブパケットを受信可能な場合、モードをサブマスタに設定してスレーブノードとして動作し、
上記マスタノードから、予め定められた時間内に１個以上のプローブパケットを受信できない場合、モードをマスタに設定してマスタノードとして動作する請求項１に記載のリングネットワーク。
【請求項１０】
モードがマスタに設定された上記サブマスタノードが、
障害の少なくともひとつが復旧することにより上記マスタノードからプローブパケットを受信すると、リングを構成する上記スレーブノード及び／又は上記マスタノードに対してパケット転送のための上記データベースを更新するためのパケットを送信し、及び、モードをサブマスタに遷移させる請求項９に記載のリングネットワーク。
【請求項１１】
上記マスタノードは、上記サブマスタノードからプローブパケットを受信すると、該プローブパケットを破棄する請求項９に記載のリングネットワーク。
【請求項１２】
上記マスタノード及び／又は上記サブマスタノードから送信されるプローブパケットは、該プローブパケットの送信元を示す識別子を含む請求項９に記載のリングネットワーク。
【請求項１３】
パケット転送のためのデータベースを参照してパケットを転送する複数のノードがリング状に接続されたリングネットワークにおいて、
リングに接続される第１のポート及び第２のポートと、
リングにおける障害の発生及び復旧を検出するリング管理部と
を備え、
上記リング管理部は、
ホップ数が初期化されたプローブパケットを、予め定めた時間毎に又は不定期に、上記第１のポート及び上記第２のポートからリングの両方向へ１個又は所定個ずつ送信し、
リングを構成する他の各ノードが、リングに接続されたふたつのポートの一方を介して、上記リング管理部により送信された又は他のノードにより転送されたプローブパケットを受信し、該プローブパケットに含まれるホップ数を増加して、増加されたホップ数を含む該プローブパケットを、受信したポートとは異なる他方のポートを介して隣接するノードに転送し、及び、増加されたホップ数を含むホップカウント報告パケットを作成し、プローブパケットを受信したポートを介して送信した、複数の上記ホップカウント報告パケットを、上記第１のポート及び上記第２のポートを介して受信し、
ポート毎に、ホップカウント報告パケットに含まれるホップ数の最大値を管理し、
第１のポートに対応するホップ数の最大値と、第２のポートに対応するホップ数の最大値の和を求め、求められた和に基づいて通信可能なノード総数を求め、
求められた通信可能なノード総数の変動により、リングにおける多重障害の発生、及び、該多重障害の少なくともひとつの障害の復旧を検出し、
これらの事象を検出する度に、装置内の上記データベースを更新し、及び／又は、リングを構成する他のノードに対して、パケット転送のための上記データベースを更新するためのパケットを送信するマスタノード。
【請求項１４】
上記リング管理部は、さらに
求められた通信可能なスレーブノード総数が変動しない場合、第１のポート又は第２のポートに対応するホップ数の最大値の変動により、リングにおけるトポロジの変化を検出し、
該変化を検出する度に装置内の上記データベースを更新し、及び／又は、他のノードに対して、パケット転送のための上記データベースを更新するためのパケットを送信する請求項１３に記載のマスタノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リングネットワーク及びマスタノードに係り、特に、リング上で主従関係を持つネットワーク装置において、リング上における多重障害の発生及び多重障害から１箇所以上の復旧を検出可能なリングネットワーク及びマスタノードに関する。
【背景技術】
【０００２】
ネットワークの高信頼化を実現する為の手段として、リングプロトコルが提案されている。リングプロトコルには、リングを構成するノードに主従関係（マスタ／スレーブ）を持たせる方式がある（例えば、非特許文献１参照）。この方式では、マスタノードがリングの支配権を持つ。マスタノードは、リングの状態を確認する為、リングに接続する第１のポートからヘルスチェックパケットを一定時間毎に発行する。また、マスタノードは、データパケットがリング上でループ状態に陥ることを防ぐ為、リングに接続する第２のポートを論理的にブロックする。但し、上記第２のポートでは、ヘルスチェックパケットを含む制御パケットに対し、論理的なブロックを行わない。因みにマスタノードは、一定時間毎にヘルスチェックパケットを上記第２のポートで受信できない場合、リング上において障害が発生したと認識する。
【０００３】
リング上における障害発生の際、マスタノードは、上記第２のポートに対する論理的なブロックを解除する。マスタノードは、解除の直後、装置内におけるデータパケットの転送用データベースを更新する。同時に、リングを構成する全てのスレーブノードに対し、転送用データベースの更新を促すメッセージを発行する。転送用データベースの更新により、データパケットはリング上における障害箇所を通らずに伝送される。尚、マスタノードは、障害発生中においても上記第１のポートからヘルスチェックパケットの発行を継続する。マスタノードは、ヘルスチェックパケットが上記第２のポートで受信可能となる場合、リング上における障害が復旧したと認識する。このとき、マスタノードは、上記第２のポートを論理的にブロックし、装置内における転送用データベースを更新する。同時に、リングを構成する全てのスレーブノードに対し、転送用データベースの更新を促すメッセージを発行する。即ち、リングに入力されるデータパケットは、障害発生前と同じ回線を伝送する。
【０００４】
他には、双方向伝送路で接続されるリングを構成する各ノードがパケット残存時間を含むヘルスチェックをリングの２方向に発行し、他ノードから発行されたヘルスチェックの到着状況から自ノードと他ノードの関係を更新する方式が開示されている（例えば、特許文献１参照）。
また、光ファイバで接続されるリングのマスタノードから発行されたパイロットパケットを受信したノードが、パイロットパケットを正常に受信できたか否かをマスタノードに通知することにより、マスタノードがリングにおける故障ノードを同定する方式が開示されている（例えば、特許文献２参照）。
【０００５】
【特許文献１】特開２００３−２３４７４７号公報
【特許文献２】特開２００４−２４８３１６号公報
【非特許文献１】ＲＦＣ３６１９、Ｅｘｔｒｅｍｅ  Ｎｅｔｗｏｒｋｓ’  Ｅｔｈｅｒｎｅｔ  Ａｕｔｏｍａｔｉｃ  Ｐｒｏｔｅｃｔｉｏｎ  Ｓｗｉｔｃｈｉｎｇ  （ＥＡＰＳ）  Ｖｅｒｓｉｏｎ  １、２００３年１０月
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１では、或るノードが他のノードから発行されたパケットの残存時間により、送信元ノードとの関係が求められるが、リングにおける多重障害への対応に関して開示されていない。特許文献２では、マスタノードがリングにおける他ノードの状態を確認するだけであり、リングにおける多重障害への対応に関して開示されていない。
また、非特許文献１では、リング上における多重障害へ対応する為の記述が無い。仮に、多重障害が発生した場面に於いては、非特許文献１のマスタノードは、リング上における最初の障害の発生時及びリング上における全ての障害が復旧したと認識する場合のみ、リングを構成する全てのノードに対して転送用データデースの更新を促すと考えられる。従って、リング上での多重障害発生後において１箇所の障害が復旧する場合、非特許文献１のマスタノードは、リングを構成する全ノードに対して転送用データベースの更新を促さないと考えられる。即ち、多重障害から復旧する場合において、データ伝送の信頼性が低下することが予想できる。
【０００７】
また、非特許文献１には、リング上におけるマスタノード障害へ対応する為の記述も無い。従って、非特許文献１のスレーブノードは、転送用データベースの更新を促せないと考えられる。故に、リング上においてマスタノード障害が発生する場合、ネットワークの信頼性が低下する可能性がある。
【０００８】
本発明は以上の点に鑑み、リングが備えるノードに主従関係を持たせたネットワークにおいて、マスタノードは、リング上で少なくとも１箇所の障害及び多重障害の発生を検出した場合、検出後にリングが備える各ノードの転送用データベースを更新させることを目的とする。さらに、本発明は、リングが備えるノードに主従関係を持たせたネットワークにおいて、マスタノードは、リング上での多重障害中に少なくとも１箇所の復旧を検出した場合、検出後にリングが備える各ノードの転送用データベースを更新させることを目的とする。さらに、本発明は、リング上におけるマスタノード障害の有無にかかわらず、リング構成ノードの転送用データベースを適宜更新することにより、通信ネットワークの高信頼化を提供することを目的とする。本発明は、マスタノードからプローブパケットを受信できなくなったスレーブノードのひとつがマスタノードとして動作することを目的のひとつとする。
また、本発明は、リングネットワークにおいて多重障害の発生箇所が変わった場合にも、リング構成ノードの転送用データベースを適宜更新することを目的のひとつとする。
【課題を解決するための手段】
【０００９】
本発明の第１の解決手段によると、
パケット転送のためのデータベースを参照してパケットを転送する複数のノード
を備え、
複数の上記ノードがリング状に接続され、
上記ノードのうち少なくともひとつは、リング状に接続されたネットワークの状態を確認する為のプローブパケットを送信するマスタノードであり、他のノードは上記マスタノードからの指示に応じて処理するスレーブノードであり、
上記マスタノードが、
ホップ数が初期化されたプローブパケットを、予め定めた時間毎に又は不定期に、第１のポート及び第２のポートからリングの両方向へ１個又は所定個ずつ送信し、
上記各スレーブノードが、
プローブパケットを、リングに接続されたふたつのポートの一方を介して受信すると、プローブパケットに含まれるホップ数を増加し、
増加されたホップ数を含む該プローブパケットを、受信したポートとは異なる他方のポートを介して、隣接する上記スレーブノード又は上記マスタノードに送信し、
増加されたホップ数を含むホップカウント報告パケットを作成し、プローブパケットを受信したポートを介して上記マスタノードに送信し、
上記マスタノードが、
各スレーブノードから送信される１つ以上のホップカウント報告パケットを第１のポート及び第２のポートを介して受信し、ポート毎に、ホップカウント報告パケットに含まれるホップ数の最大値を管理し、
第１のポートに対応するホップ数の最大値と、第２のポートに対応するホップ数の最大値の和を求め、求められた和に基づいて上記マスタノードから通信可能なスレーブノード総数を求め、
求められた通信可能なスレーブノード総数の変動により、リングにおける多重障害の発生、及び、該多重障害の少なくともひとつの障害の復旧を検出し、
更に、求められた通信可能なスレーブノード総数が変動しない場合、第１のポート又は第２のポートに対応するホップ数の最大値の変動により、リングにおけるトポロジの変化を検出し、
これらの事象を検出する度に装置内の上記データベースを更新し、及び／又は、上記スレーブノードに対して、パケット転送のための上記データベースを更新するためのパケットを送信するリングネットワークが提供される。
本発明の第２の解決手段によると、
パケット転送のためのデータベースを参照してパケットを転送する複数のノード
を備え、
複数の上記ノードがリング状に接続され、
上記ノードのうち少なくともひとつは、リング状に接続されたネットワークの状態を確認する為のプローブパケットを送信するマスタノードであり、他のノードは上記マスタノードからの指示に応じて処理するスレーブノードであり、
上記マスタノードが、
ホップ数が初期化されたプローブパケットを、予め定めた時間毎に又は不定期に、第１のポート及び第２のポートからリングの両方向へ１個又は所定個ずつ送信し、
上記各スレーブノードが、
プローブパケットを、リングに接続されたふたつのポートの一方を介して受信すると、プローブパケットに含まれるホップ数を増加し、
増加されたホップ数を含む該プローブパケットを、受信したポートとは異なる他方のポートを介して、隣接する上記スレーブノード又は上記マスタノードに送信し、
増加されたホップ数を含むホップカウント報告パケットを作成し、プローブパケットを受信したポートを介して上記マスタノードに送信し、
上記マスタノードが、
各スレーブノードからの複数のホップカウント報告パケットを第１のポート及び第２のポートを介して受信し、ポート毎に、ホップカウント報告パケットに含まれるホップ数の最大値を管理し、
第１のポートに対応するホップ数の最大値と、第２のポートに対応するホップ数の最大値の和を求め、求められた和に基づいて上記マスタノードから通信可能なスレーブノード総数を求め、
求められた通信可能なスレーブノード総数の変動により、リングにおける多重障害の発生、及び、該多重障害の少なくともひとつの障害の復旧を検出し、
これらの事象を検出する度に、装置内の上記データベースを更新し、及び／又は、上記スレーブノードに対して、パケット転送のための上記データベースを更新するためのパケットを送信するリングネットワークが提供される。
【００１０】
本発明の第３の解決手段によると、
パケット転送のためのデータベースを参照してパケットを転送する複数のノードがリング状に接続されたリングネットワークにおいて、
リングに接続される第１のポート及び第２のポートと、
リングにおける障害の発生及び復旧を検出するリング管理部と
を備え、
上記リング管理部は、
ホップ数が初期化されたプローブパケットを、予め定めた時間毎に又は不定期に、上記第１のポート及び上記第２のポートからリングの両方向へ１個又は所定個ずつ送信し、
プローブパケットを、リングに接続されたふたつのポートの一方を介して受信し、
プローブパケットに含まれるホップ数を増加し、
増加されたホップ数を含む該プローブパケットを、受信したポートとは異なる他方のポートを介して、隣接する上記スレーブノード又は上記マスタノードに送信し、
増加されたホップ数を含むホップカウント報告パケットを作成し、プローブパケットを受信したポートを介して上記マスタスイッチに送信し、
リングを構成する他のノードがプローブパケットに含まれるホップ数を増加し返信した、増加されたホップ数を含む複数のホップカウント報告パケットを、上記第１のポート及び上記第２のポートを介して受信し、ポート毎に、ホップカウント報告パケットに含まれるホップ数の最大値を管理し、
第１のポートに対応するホップ数の最大値と、第２のポートに対応するホップ数の最大値の和を求め、求められた和に基づいて通信可能なノード総数を求め、
求められた通信可能なノード総数の変動により、リングにおける多重障害の発生、及び、該多重障害の少なくともひとつの障害の復旧を検出し、
これらの事象を検出する度に、装置内の上記データベースを更新し、及び／又は、リングを構成する他のノードに対して、パケット転送のための上記データベースを更新するためのパケットを送信するマスタノードが提供される。
【発明の効果】
【００１１】
本発明によると、リングが備えるノードに主従関係を持たせたネットワークにおいて、マスタノードは、リング上で少なくとも１箇所の障害の発生を検出した場合、検出後にリングが備える各ノードの転送用データベースを更新させることができる。さらに、本発明によると、リングが備えるノードに主従関係を持たせたネットワークにおいて、マスタノードは、リング上での多重障害中に少なくとも１箇所の復旧を検出した場合、検出直後にリング構成ノードの転送用データベースを更新することができる。さらに、本発明によると、リング上におけるマスタノード障害の有無にかかわらず、リング構成ノードの転送用データベースを適宜更新することにより、通信の信頼性を損なわないネットワークを提供可能である。さらに、本発明によると、マスタノードからプローブパケットを受信できなくなったスレーブノードのひとつが、マスタノードとして動作することができる。
また、本発明によると、リングネットワークにおいて多重障害の発生箇所が変わった場合にも、リング構成ノードの転送用データベースを適宜更新することができる。
【発明を実施するための最良の形態】
【００１２】
１．第１の実施の形態
以下、本実施の形態について図面を参照して説明する。本実施の形態では、単一のリングのネットワークについて述べる。但し、適用する装置、パケットの種類はこれに限られない。
（ハード構成）
図１は、リングネットワークの構成例を示す図である。
単一リングネットワーク１００は、リング状態の確認及びデータパケットの転送用データベース更新を担うマスタノード（マスタスイッチ）１１０と、マスタノード１１０の指示に従うスレーブノード（スレーブスイッチ）１２０−１〜１２０−５とを備える。各スイッチには、例えば、端末１３０−１、１３０−２が接続される。
マスタノード１１０は、自身に障害が発生していない場合、リング上における多重障害の発生及び多重障害からの復旧を検出する為、マスタノード１１０から通信可能なスレーブノード数を求める。マスタノード１１０は、通信可能なスレーブノード数を求める為、プローブパケット１４０を第１ポート１１０１及び第２ポート１１０２から送信する。プローブパケット１４０には、マスタノード１１０から通信可能なスレーブノード数（以下、ホップカウント）を示す項目が含まれる。
【００１３】
各スレーブノード１２０は、プローブパケット１４０の受信直後にホップカウントを例えば１増加する。その後、（受信側ではない）隣接のリング構成ノードにプローブパケット１４０を転送する。また、スレーブノード１２０は、プローブパケット１４０のホップカウントの増加後にホップカウント報告パケット１５０を生成し、マスタノード１１０に向けて送信する。ホップカウント報告パケット１５０は、プローブパケット１４０の到達度をマスタノード１１０に伝達する為に用いられる。
マスタノード１１０は、一定時間内に自身が送信したプローブパケット１４０がリングを伝送して戻って来ない場合、リング上における障害の発生を認識する。このときマスタノード１１０は、各スレーブノード１２０が送信するホップカウント報告パケット１５０の内、第１ポート１１０１で受信可能なホップカウントの最大値と、第２ポート１１０２で受信可能なホップカウントの最大値との和を計算する。第１ポート１１０１及び第２ポート１１０２で受信可能なホップカウントの最大値の和の増減により、マスタノード１１０は、リング上での障害発生時において、多重障害の発生及び多重障害からの復旧を検出できる。
【００１４】
図２は、単一リングネットワーク１００を伝送するパケットフォーマットの例を示す説明図である。
可変長のパケット２００は、ＯＳＩ参照モデルにおける第２層（データリンク層）のＬ２ヘッダ２１０と、Ｌ２ペイロード２２０とを含む。Ｌ２ヘッダ２１０の形状は、ネットワークを構成する装置が収容する回線の種類によって異なる。例えば、収容する回線がイーサネット（登録商標）である場合、Ｌ２ヘッダ２１０には、宛先ＭＡＣアドレス２１１と、送信元ＭＡＣアドレス２１２と、タグ２１３と、フレームタイプ２１４とが含まれる。
図７は、リングが備えるノード装置９００の構成例を示す図である。
マスタノード１１０及びスレーブノード１２０−１〜１２０−５は、ノード装置９００を用いることができる。自装置が、マスターノード１１０であるか、スレーブノード１２０であるかを予め決定することにより、両ノードのいずれかの機能を定義する。
【００１５】
ノード装置９００は、複数の回線インタフェース９１０−ｉ（ｉ＝１〜Ｎ）と、パケット転送部９２０と、リング管理部９３０と、装置制御部９４０とを備える。
図１０は、パケット転送部９２０の構成例を示す図である。
パケット転送部９２０は、受信パケットに適用すべき後段処理を示すパケット転送データベース９２２と、パケット転送処理とパケット転送用データベース９２２の制御とを実行するパケット転送プロセッサ９２１とを有する。
パケット転送部９２０は、受信したパケットの後段処理を決定する。ここでは、パケット転送部９２０は、受信パケットに対する後段処理として、例えば、送信用回線インタフェースの検索と、リングプロトコルのパケットを制御するリング管理部９３０への転送と、装置制御部９４０への転送とが挙げられる。
【００１６】
図９は、リング管理部９３０の構成例を示す図である。
リング管理部９３０は、リングパケット入力部７３１と、プローブパケット管理部９３２と、リング状態管理部９３３と、リングプロトコル制御パケット生成部９３４と、リングパケット出力部９３５とを有する。各部の詳細は後述する。
図７において、管理端末３０に接続される装置制御部９４０は、ネットワークを伝送する制御パケットの解析と、パケット転送部９２０を含む装置全体の制御とを実行する。また、装置制御部９４０は、解析の結果を用い、装置内の状態更新あるいは受信した制御パケットに対する応答を実行する。
回線インタフェース９１０−ｉは、収容回線上を伝送するパケットの送受信を実行する。
【００１７】
（モード設定）
リングが備えるノード装置９００は、主従関係を持たせるための「マスタ」と「スレーブ」の各モードをノード装置９００の起動時のモード設定で決定する。リングが備える各ノードに対するモード設定は、ネットワーク管理者が管理端末３０を用いてノード毎に入力する。ネットワーク管理者が入力したモードの情報は、信号線Ｌ７を介して装置制御部９４０に入力される。モード情報を入力した装置制御部９４０は、Ｌ２ペイロード２２０にモード情報を記載したパケット（モード情報パケット）を生成し、信号線Ｌ３に、生成したモード情報パケットを出力する。信号線Ｌ３からモード情報パケットを入力したリング管理部９３０のパケット入力部９３１は、入力パケットがモード情報パケットであることを識別し、信号線Ｌ９２に出力する。信号線Ｌ９２からモード情報パケットを入力したリング状態管理部９３３は、入力したモード情報パケットに記載された情報を基に自装置のモード（マスタノード、サブマスタノード及びスレーブノード）を設定する。
【００１８】
（パケット転送）
マスタノード１１０及びスレーブノード１２０−１〜１２０−５は、パケット２００を受信すると、宛先に向けてパケットを転送する。
具体的に説明すると、各ノード装置９００では、パケット２００を受信した回線インタフェース９１０−ｉは、信号線Ｌ８−ｉ（ｉ＝１〜Ｎ）に受信したパケット２００を出力する。パケット転送部９２０のパケット転送プロセッサ９２１は、信号線Ｌ８−ｉからパケット２００を入力し、受信したパケット２００に記載の情報からパケットの種別を識別する。このとき、受信パケット２００がリングパケットである場合、受信パケット２００を信号線Ｌ１に出力する。
一方、受信したパケット２００がリングパケットでは無い場合、パケット転送プロセッサ９２１は、Ｌ２ヘッダ２１０からパケット転送データベース９２２を検索する為の検索キーを生成し、生成した検索キーと検索コマンドとを信号線Ｌ１０に出力する。検索の結果、検索結果情報がＬ１１からパケット転送プロセッサ９２１に入力される。ここで、検索結果情報の構成について説明する。
【００１９】
図１１は、パケット転送時におけるパケット転送データベース９２２に格納される検索結果情報８００のフォーマットを示す説明図である。
検索結果情報８００は、後段処理指示フラグ８１０と、出力インタフェース情報８２０を含む。
パケット転送プロセッサ９２１は、後段処理指示フラグ８１０から、受信パケット２００に適用する後段処理を決定する。ここで、パケット転送プロセッサ９２１は、後段処理指示フラグ８１０が示す後段処理が例えば「装置制御部への転送」である場合、受信パケット２００を信号線Ｌ５に出力する。また、パケット転送プロセッサ９２１は、後段処理が「通常転送」である場合、出力インタフェース情報８２０に記載の回線インタフェース９１０−ｊ（ｊ＝１〜Ｎ、ｊ≠ｉ）から受信パケット２００を送信する為、受信パケット２００を信号線Ｌ８−ｊに出力する。尚、パケット転送プロセッサ９２１は、後段処理が「廃棄」である場合、受信パケット２００を廃棄する。
【００２０】
以下、リングが備える全てのノード装置９００（モード設定完了済み）におけるリングプロトコル起動後の動作について説明する。
リングプロトコルは、ネットワーク管理者によるマスタノード１１０の管理端末３０に対する起動コマンドの入力後に起動する。ネットワーク管理者により入力された起動コマンドは、信号線Ｌ７を介して装置制御部９４０に入力される。起動コマンドを入力した装置制御部９４０は、Ｌ２ペイロード２２０にモード情報を記載したパケット（リングプロトコル起動パケット）を生成し、信号線Ｌ３に、生成したリングプロトコル起動パケットを出力する。信号線Ｌ３からモード情報を記載したパケットを入力したパケット入力部９３１は、入力パケットがリングプロトコル起動パケットであることを識別し、信号線Ｌ９２に出力する。信号線Ｌ９２からリングプロトコル起動パケットを入力したリング状態管理部９３３は、リングプロトコル起動パケットを信号線Ｌ９６に出力すると同時又はほぼ同時に、リングプロトコル管理タイマを起動する。このとき、リング状態管理部９３３は、リング状態を「正常」に遷移させる。
【００２１】
この後、マスタノード１１０では、リングプロトコル制御パケット生成部９３４がリング状態を確認する為のプローブパケット１４０を生成する。プローブパケット１４０は、パケット２００の形式を用いる。プローブパケット１４０生成時において、リングプロトコル制御パケット制御部９３４は、マスタノード１１０から通信可能なスレーブノード１２０の数（ホップカウント）を「０」とした（初期化した）ホップカウントと、プローブパケット１４０を識別する為の情報とをＬ２ペイロード２２０に記載する。リングプロトコル制御パケット制御部９３４は、プローブパケット１４０を生成後、信号線Ｌ９７に出力する。
【００２２】
信号線Ｌ９７からプローブパケット１４０を入力したリングパケット出力部９３５は、入力パケットがプローブパケット１４０であることを識別し、信号線Ｌ２に出力する。
信号線Ｌ２からプローブパケット１４０を入力したパケット転送プロセッサ９２１は、入力したパケットのＬ２ペイロード２２０に記載の情報からプローブパケット１４０であると識別する。このとき、パケット転送プロセッサ９２１は、プローブパケット１４０を複製する。パケット転送プロセッサ９２１は、複製の結果２つになったプローブパケット１４０を、回線インタフェース９１０の構成要素である第１ポート１１０１及び第２ポート１１０２に対応する信号線Ｌ８にそれぞれ出力する。この後、各プローブパケット１４０は、第１ポート１１０１と第２ポート１１０２に対応する回線インタフェース９１０を介して送信される。
【００２３】
リング状態が正常である場合、図１の第１ポート１１０１から送信されるプローブパケット１４０は、第２ポート１１０２に向けてリング上を時計回りで伝送する。また、第２ポート１１０２から送信されるプローブパケット１４０は、第１ポート１１０１に向けてリング上を反時計回りで伝送する。
第１ポート１１０１と第２ポート１１０２の定義は、ネットワーク管理者が管理端末３０により行うモード設定と同時に実行することができる。更に、モード設定の際、マスタスイッチには、リングが備えるスレーブスイッチ数を定義する。
図１には記載していないが、マスタノード１１０の第２ポート１１０２は、論理的にデータパケットをブロックしている。例えば、マスタノード１１０は、端末１３０−２から端末１３０−１に向かうデータパケットを第２ポート１１０２で受信した場合、受信したデータパケットを廃棄する。データパケットを論理的にブロックする理由は、データパケットがリングを無限に周回する「ループ」状態により、回線の輻輳が発生することを防ぐ為である。尚、この論理的なブロックは、データパケットだけを廃棄し、プローブパケット１４０を含むリングを制御する為のパケット（制御パケット）は廃棄しない。
【００２４】
（フローチャート）
図３は、プローブパケット１４０とホップカウント報告パケット１５０との関係を示す説明図である。図４は、スレーブノード１２０によるプローブパケット１４０の送受信とホップカウント報告パケット１５０の発行の処理のフローチャートである。
スレーブノード１２０は、プローブパケット１４０を受信して、プローブパケット１４０のホップカウントを１だけ増加する（ステップＳ４０１）。スレーブノード１２０は、プローブパケット１４０のホップカウント増加後、受信ポートとは反対側のリング用回線収容ポートから隣接ノードに向けてホップカウントが増加されたプローブパケット１４０を送信する（ステップＳ４０２）。また、スレーブノード１２０は、ステップＳ４０２と同時又はその前後に、プローブパケット１４０の到達度をマスタノード１１０に伝達する為のホップカウント報告パケット１５０を生成する。ホップカウント報告パケット１５０は、ステップＳ４０１で増加後のホップカウントを含む。スレーブノード１２０は、マスタノード１１０に対して、生成したホップカウント報告パケット１５０を、プローブパケット１４０を受信した回線インタフェースから送信する（ステップＳ４０３）。マスタノード１１０は、ホップカウント報告パケット１５０を受信することにより、マスタノード１１０から通信可能な最大ホップ数を把握することができる。
【００２５】
上記各ステップの装置内動作を以下に示す。スレーブノード１２０において、回線インタフェース９１０−ｉは、マスタノード１１０が送信元のプローブパケット１４０を受信すると、信号線Ｌ８−ｉに出力する。信号線Ｌ８−ｉからプローブパケット１４０を入力したパケット転送プロセッサ９２１は、入力したパケットに記載の情報からプローブパケット１４０であると識別する。このとき、パケット転送プロセッサ９２１は、識別したプローブパケット１４０内のＬ２ペイロード２２０に記載される受信回線インタフェース情報を更新する。この後にパケット転送プロセッサ９２１は、受信回線インタフェース情報が更新されたプローブパケット１４０を信号線Ｌ１に出力する。信号線Ｌ１からプローブパケット１４０を入力したリングパケット入力部９３１は、入力パケットがプローブパケット１４０であることを識別し、信号線Ｌ９１に出力する。スレーブノード１２０において、信号線Ｌ９１からプローブパケット１４０を入力したプローブパケット管理部９３２は、入力したプローブパケット１４０のＬ２ペイロード２２０に記載されたホップカウントを例えば１増加する。さらに、プローブパケット管理部９３２は、ホップカウントを１増加したプローブパケット１４０を複製する。プローブパケット管理部９３２は、複製の結果２つになったプローブパケット１４０を、信号線Ｌ９４と信号線Ｌ９５とにそれぞれ出力する。スレーブノード１２０において、信号線Ｌ９５からプローブパケット１４０を入力したリングパケット出力部９３５は、マスタノード１１０のリングパケット出力部９３５と同様に、入力したプローブパケット１４０を、信号線Ｌ２に出力する。
【００２６】
スレーブノード１２０において、信号線Ｌ２からプローブパケット１４０を入力したパケット転送プロセッサ９２１は、入力したプローブパケット１４０のＬ２ペイロード２２０に記載される受信回線インタフェース情報とは異なるリング用回線収容ポートからプローブパケット１４０を送信する。すなわち、リングを１周するようにプローブパケット１４０を送信する。その為、パケット転送プロセッサ９２１は、入力したプローブパケット１４０のＬ２ペイロード２２０に記載される受信回線インタフェース情報とは異なるリング用回線収容ポートに対応する信号線Ｌ８−ｍ（ｍ＝１〜Ｎ）へ、入力したプローブパケット１４０を出力する。この後、プローブパケット１４０は、信号線Ｌ８−ｍを介して、信号線Ｌ８−ｍに対応する回線インタフェース９１０−ｍから送信される。
【００２７】
また、信号線Ｌ９４に出力されたプローブパケット１４０は、リングプロトコル制御パケット生成部９３４に出力される。スレーブノード１２０において、信号線Ｌ９４からプローブパケット１４０を入力したリングプロトコル制御パケット生成部９３４は、プローブパケット１４０の到達度をマスタノードに伝達する為のホップカウント報告パケット１５０を生成する。リングプロトコル制御パケット生成部９３４は、生成の際、ホップカウント報告パケット１５０に記載すべきホップカウントを、入力したプローブパケット１４０に記載のホップカウント（カウントアップされた後のもの）を用いる。尚、プローブパケット１４０のホップカウントとホップカウント報告パケット１５０であることを識別する為の情報と入力したプローブパケット１４０内の受信回線インタフェース情報をＬ２ペイロード２２０に記載する。生成後、リングプロトコル制御パケット生成部９３４は、生成したホップカウント報告パケット１５０を信号線Ｌ９７に出力する。スレーブノード１２０において、信号線Ｌ９７からホップカウント報告パケット１５０を入力したリングパケット出力部９３５は、入力したホップカウント報告パケット１５０を識別し、信号線Ｌ２に出力する。
【００２８】
信号線Ｌ２からホップカウント報告パケット１５０を入力したパケット転送プロセッサ９２１は、入力したホップカウント報告パケット１５０のＬ２ペイロード２２０に記載される受信回線インタフェース情報に対応する回線インタフェース９１０−ｉから、入力したホップカウント報告パケット１５０を送信する為、回線インタフェース９１０−ｉに対応する信号線Ｌ８−ｉへホップカウント報告パケット１５０を出力する。
プローブパケット１４０を受信する隣接したスレーブノード１２０及び他の複数のスレーブノード１２０は、同じ処理を実行する。
図１２は、スレーブノード１２０によるホップカウント報告パケット１５０を転送する処理のフローチャートである。
まず、スレーブノード１２０は、ホップカウント報告パケット１５０を受信する（ステップＳ１２０１）。尚、受信したホップカウント報告パケット１５０に記載の情報へ対する更新を実行しない。スレーブノード１２０は、ホップカウント報告パケット１５０を受信後、マスタスイッチ１１０に伝送する為、受信ポートとは反対側のリング用回線収容ポートから隣接ノードに向けてホップカウント報告パケット１５０を送信する（ステップＳ１２０２）。
【００２９】
上記ステップの装置内動作を以下に示す。隣接するスレーブスイッチ１２０−ａ（ａ＝１〜Ｍ）からホップカウント報告パケット１５０を受信したスレーブスイッチ１２０−ｂ（ｂ＝１〜Ｍ、ｂ≠ａ）において、回線インタフェース９１０−ｃ（ｃ＝１〜Ｎ）は、隣接するスレーブスイッチ１２０−ａから送信されたホップカウント報告パケット１５０を受信すると、受信したホップカウント報告パケット１５０を信号線Ｌ８−ｃに出力する。信号線Ｌ８−ｃからホップカウント報告パケット１５０を入力したパケット転送プロセッサ９２１は、受信したパケットに記載の情報からホップカウント報告パケット１５０であると識別する。このとき、パケット転送プロセッサ９２１は、ホップカウント報告パケット１５０を受信した受信回線インタフェースとは異なるリング用回線収容ポートから受信したホップカウント報告パケット１５０を送信する為、ホップカウント報告パケット１５０を受信した受信回線インタフェースとは異なるリング用回線収容ポートに対応する信号線Ｌ８−ｄ（ｄ＝１〜Ｎ、ｄ≠ｃ）へホップカウント報告パケット１５０を出力する。この後、ホップカウント報告パケット１５０は、信号線Ｌ８−ｄに対応する回線インタフェース９１０−ｄから送信される。
【００３０】
図５は、マスタノード１１０による障害への対応動作のフローチャートである。マスタノード１１０による障害への対応は、図５の処理フローを用いて説明する。また、図７、図９、図１０を参照し、各ノードでの処理を詳述する。
まず、マスタノード１１０は、上述したように、自身が収容する２方向のリング回線に向けてプローブパケット１４０を発行する（ステップＳ５０１）。マスタノード１１０は、一定時間内に、自身が発行し、リングを１周して各スレーブノード１２０によりホップカウントが加算されたプローブパケット１４０を受信でき、且つ、受信したプローブパケット１４０に記載のホップカウントが、リングが備えるスレーブノード１２０の数に一致しているかを検査する（ステップＳ５０２）。尚、リングが備えるスレーブノード１２０の数は、適宜のメモリに予め設定される。また、ステップＳ５０２では、プローブパケット１４０の受信可能か、ホップカウントがスレーブノード１２０の数に一致するかのいずれかを判断するようにしてもよい。マスタノード１１０は、ステップＳ５０２でＹｅｓであればステップＳ５０１へ戻り、一方、ＮｏであればステップＳ５０３へ移る。
【００３１】
ステップＳ５０２を詳述すると、マスタノード１１０において、まず、回線インタフェース９１０−ｉは、受信したプローブパケット１４０を信号線Ｌ８−ｉに出力する。信号線Ｌ８−ｉからプローブパケット１４０を入力したパケット転送プロセッサ９２１は、入力したパケットに記載の情報からプローブパケット１４０であると識別し、信号線Ｌ１に出力する。信号線Ｌ１からプローブパケット１４０を入力したリングパケット入力部９３１は、入力したパケットがプローブパケット１４０であることを識別し、信号線Ｌ９１に出力する。マスタノード１１０では、信号線Ｌ９１からプローブパケット１４０を入力したプローブパケット管理部９３２は、スレーブノード１２０と異なり、入力したプローブパケット１４０のホップカウントの増加を行わず、入力したプローブパケット１４０を信号線Ｌ９３に出力する。信号線Ｌ９３からプローブパケット１４０を入力したリング状態管理部９３３は、プローブパケット１４０を入力したタイミングが、予め設定したリングプロトコル管理タイマの有効時間内であるかを確認する。また、リング状態管理部９３３は、同時又はほぼ同時に、プローブパケット１４０のＬ２ペイロード２２０に記載のホップカウントと、モード設定の際に定義したリングが備えるスレーブノード数とを比較する。リング状態管理部９３３は、予め設定したリングプロトコル管理タイマの有効時間内にプローブパケット１４０を入力し、且つ、プローブパケット１４０のＬ２ペイロード２２０に記載のホップカウントが、モード設定の際に定義したリングが備えるスレーブノード数に一致する場合、新たなプローブパケット１４０を生成させる為の指令を信号線Ｌ９６を介してリングプロトコル制御パケット生成部９３４に対し出力する。尚、リングプロトコル制御パケット生成部９３４で生成されるプローブパケット１４０の取り扱いに関しては、上述した通りである。
【００３２】
ステップＳ５０２の条件を満たす場合、マスタノード１１０は、ステップＳ５０１を実行する。一方、満たさない場合（ステップＳ５０２）、マスタノード１１０は、リング上で障害が発生したと解釈し、リング状態管理部９３３のリングの状態を「障害発生」に遷移させる。この後、データパケットを論理的にブロックしている第２ポート１１０２の論理ブロックを解除する。
ステップＳ５０３では、マスタノード１１０は、第２ポート１１０２の論理ブロックを解除した後又は直後に、転送用データベースの更新を促す第１のメッセージ（Ｆｌｕｓｈ  ＦＤＢ−１）を発行する（ステップＳ５０３）。尚、Ｆｌｕｓｈ  ＦＤＢ−１は、障害発生時における転送用データベースの更新を促す意味を持つ。また、マスタノード１１０は、マスタノード１１０から通信可能なスレーブノード数の計測を開始する。例えば、マスタノード１１０から通信可能なスレーブノード数は「０」とする。
【００３３】
以下、ステップＳ５０３に関して詳述する。リング状態管理部９３３は、予め設定したリングプロトコル管理タイマの有効時間内にプローブパケット１４０を入力しない場合（ステップＳ５０２）、或いは、入力したプローブパケット１４０のＬ２ペイロード２２０に記載のホップカウントが、モード設定の際に定義したリングが備えるスレーブノード数に一致しない場合（ステップＳ５０２）、リング上における障害（第１の障害）発生と判断する。このとき、管理すべきリングの状態を「障害発生」に遷移させる。リング状態管理部９３３は、同時又はほぼ同時に、マスタノード１１０から通信可能なスレーブノード数の計測を開始する。例えば、ここでマスタノード１１０から通信可能なスレーブノード数を「０」とする。この後又は直後にリング状態管理部９３３は、リングプロトコル制御パケット生成部９３４に対し、リング上における障害の発生を通知する。リングプロトコル制御パケット生成部９３４は、リング上における障害発生を装置制御部９４０に通知する為、障害発生通知パケットをリングパケット出力部９３５を介して信号線Ｌ４に出力する。
信号線Ｌ４から障害発生通知パケットを入力した装置制御部９４０は、入力した障害発生通知パケットを信号線Ｌ６とＬ７とに出力する。信号線Ｌ７から障害発生通知パケットを入力した管理端末３０では、障害発生通知と障害発生通知パケットの入力時刻が例えば表示部に表示される。
【００３４】
信号線Ｌ６から障害発生通知パケットを入力したパケット転送プロセッサ９２１は、モード設定の際に定義した第２ポート１１０２の論理ブロックを解除する。パケット転送プロセッサ９２１は、第２ポート１１０２の論理ブロックを解除した後又は直後、パケット転送データベース９２２に記載されるパケット転送用情報を消去する為の指令を信号線Ｌ１０に出力する。また、パケット転送プロセッサ９２１は、モード設定の際に定義した第１ポート１１０１と第２ポート１１０２とから転送用データベース更新パケットを送信する為、第１ポート１１０１と第２ポート１１０２とに対応する信号線Ｌ８−ｅ（ｅ＝１〜Ｎ）と信号線Ｌ８−ｆ（ｆ＝１〜Ｎ、ｅ≠ｆ）に転送用データベース更新パケット（Ｆｌｕｓｈ  ＦＤＢ−１）を出力する。尚、転送用データベース更新パケットは、パケット２００の形式を用いることができる。転送用データベース更新パケットの生成時において、パケット転送プロセッサ９２１は、リング上における障害の発生と、転送用データベース更新パケットとを識別する為の情報をＬ２ペイロード２２０に記載する。
マスタノード１１０において、パケット転送データベース９２２は、パケット転送プロセッサ９２１からの指示に従い、パケット転送用情報を消去した結果、データパケットを転送する為の情報が無い状態になる。このとき、パケット転送プロセッサ９２１は、データパケットを入力しても、パケット転送データベース９２２の検索結果として入力したデータパケットの宛先が示されない。パケット転送プロセッサ９２１は、収容する全ての回線インタフェース９１０を介して、入力したデータパケットを送信させる為、入力したデータパケットを信号線Ｌ８−１〜Ｌ８−Ｎにそれぞれ出力する。この動作をフラッディングと呼ぶ。
【００３５】
フラッディングの結果、データパケットの宛先は、送信したデータパケットが宛先に到達すると、データパケットの受信を通知する為のメッセージをフラッディング実行ノードに送信する。データパケット受信確認メッセージを受信したフラッディング実行ノードは、送信したデータパケットの宛先と、データパケット受信確認メッセージを受信した回線インタフェース９１０−ｉとを対応付ける。これをアドレス学習と呼ぶ。マスタノード１１０では、フラッディングとアドレス学習の繰り返しにより、パケット転送データベース９２２は更新される。
隣接するノードからＦｌｕｓｈ  ＦＤＢ−１を受信したスレーブノード１２０のパケット転送プロセッサ９２１は、受信パケットに記載の情報から転送用データベース更新パケットであると識別する。この後、パケット転送プロセッサ９２１は、パケット転送データベース９２２に記載されるパケット転送用情報を消去する為の指令を信号線Ｌ１０に出力する。尚、スレーブノード１２０のパケット転送データベース９２２の更新に関する動作は、マスタノード１１０と同じである。同時又はその後に、パケット転送プロセッサ９２１は、転送用データベース更新パケットのＬ２ペイロード２２０に記載される受信回線インタフェース情報とは異なるリング用回線収容ポートから転送用データベース更新パケットを送信する為、受信回線インタフェース情報とは異なるリング用回線収容ポートに対応する信号線Ｌ８−ｍへ転送用データベース更新パケットを出力する。
【００３６】
次に、ステップＳ５０４では、マスタノード１１０は、障害の有無にかかわらずプローブパケット１４０の発行を継続する（ステップＳ５０４）。また、マスタノード１１０は、ステップＳ５０２と同様に、一定時間内に自身が発行しスレーブノード１２０によりホップカウントが加算されたプローブパケット１４０を受信でき、且つ、受信したプローブパケット１４０に記載のホップカウントが、モード設定の際に定義したリングが備えるスレーブノード１２０の数に一致しているかを検査する（ステップＳ５０５）。
ステップ５０５の条件を満たす場合（ステップＳ５０５、Ｙｅｓ）、マスタノード１１０は、リング上における障害が無いことを認識する。このとき、マスタノード１１０は、管理すべきリングの状態を「正常」に遷移させる。また、第２ポート１１０２を論理的にブロックし、転送用データベースの更新を促すメッセージ（Ｆｌｕｓｈ  ＦＤＢ−２）を発行する（ステップＳ５０７）。Ｆｌｕｓｈ  ＦＤＢ−２は、障害の復旧時における転送用データベースの更新を促す意味を持つ。
【００３７】
以下、ステップＳ５０４〜Ｓ５０５及びステップＳ５０７と、これらのステップに関するリング内におけるパケット処理過程について詳述する。マスタノード１１０のリング状態管理部９３３は、管理すべきリングにおける障害発生の認識後も、リング状態の診断を継続する。そこで、リング状態管理部９３３は、プローブパケット１４０をリングプロトコル制御パケット生成部９３４に生成させる為、信号線Ｌ９６にプローブパケット１４０の生成を促す信号を出力する。尚、マスタノード１１０における生成後のプローブパケット１４０の取り扱いに関しては、上述した通りである。また、リング状態管理部９３３は、プローブパケット１４０の生成を促す信号の出力と同時又はほぼ同時に、リングプロトコル管理タイマをリセットする。
【００３８】
プローブパケット１４０の送信後、ステップＳ５０２と同一の条件であるステップＳ５０５を満たさない場合、リング状態管理部９３３は、リングにおける障害が継続していると認識する。一方、ステップＳ５０５を満たす場合、リング状態管理部９３３は、リング上における全ての障害が復旧したと認識し、リングの状態を「正常」に遷移させる。この後、リング状態管理部９３３は、リングプロトコル制御パケット生成部９３４に対し、リング上における障害の復旧を通知する。また、リング状態管理部９３３は、管理すべきリングにおける障害復旧の認識後も、リング状態の診断を継続する。そこで、リング状態管理部９３３は、障害発生の認識後と同様に、プローブパケット１４０をリングプロトコル制御パケット生成部９３４に生成させる為、信号線Ｌ９６にプローブパケット１４０の生成を促す信号を出力する。リングプロトコル制御パケット生成部９３４は、リング上における障害復旧を装置制御部９４０に通知する為、障害復旧通知パケットを信号線Ｌ４に出力する。
【００３９】
信号線Ｌ４から障害復旧通知パケットを入力した装置制御部９４０は、入力した障害復旧通知パケットを信号線Ｌ６とＬ７とに出力する。信号線Ｌ７から障害復旧通知パケットを入力した管理端末３０では、障害復旧通知と障害復旧通知パケットの入力時刻が例えば表示部に表示される。
信号線Ｌ６から障害復旧通知パケットを入力したパケット転送プロセッサ９２１は、モード設定の際に定義した第２ポート１１０２を論理的にブロックする。パケット転送プロセッサ９２１は、第２ポート１１０２を論理ブロックした後又は直後、パケット転送データベース９２２に記載されるパケット転送用情報を消去する為の指令を信号線Ｌ１０に出力する。また、パケット転送プロセッサ９２１は、障害発生時と同様に、モード設定の際に定義した第１ポート１１０１と第２ポート１１０２とから転送用データベース更新パケットを送信する為、第１ポート１１０１と第２ポート１１０２とに対応する信号線Ｌ８−ｅ及び信号線Ｌ８−ｆに出力する。尚、転送用データベース更新パケットは、パケット２００の形式を用いる。転送用データベース更新パケットの生成時において、パケット転送プロセッサ９２１は、リング上における障害の発生と、転送用データベース更新パケットとを識別する為の情報を転送用データベース更新パケットのＬ２ペイロード２２０に記載する。リングが備えるノード装置９００における転送用データベースの更新手順は、上述した通りである。
【００４０】
一方、ステップＳ５０５の条件を満たさない、即ち、リング上における障害が継続している場合（ステップＳ５０５、Ｎｏ）、マスタノード１１０は、一定時間内にリングの２方向（第１ポート１１０１と第２ポート１１０２）から報告（受信）される最大ホップカウントの和を計算する（ステップＳ５０９）。尚、マスタノード１１０は、各ポートから受信されたホップカウント報告パケット１５０に含まれるホップカウントの最大値をポート毎に管理しておく。マスタノード１１０は、ステップＳ５０３で計測を開始した「マスタノード１１０から通信可能なスレーブノード数」が更新されているかを確認する（ステップＳ５１０）。ここで、「マスタノード１１０から通信可能なスレーブノード数」が未更新である場合（又は、「マスタノード１１０から通信可能なスレーブノード数」が「０」の場合）、マスタノード１１０は、ステップＳ５０９で求めた「一定時間内にリングの２方向から報告される最大ホップカウントの和」を求め、「マスタノード１１０から通信可能なスレーブノード数」に代入（更新）する（ステップＳ５１１）。また、ステップＳ５０４に戻る。
【００４１】
以下、ステップＳ５０９〜Ｓ５１１について詳述する。まず、マスタノード１１０におけるホップカウント報告パケット１５０受信時の動作について説明する。マスタノード１１０において、第１ポート１１０１と第２ポート１１０２を収容する回線インタフェース９１０−ｅ及び回線インタフェース９１０−ｆは、ホップカウント報告パケット１５０を受信すると、対応する信号線Ｌ８−ｅ或いは信号線Ｌ８−ｆに出力する。信号線Ｌ８−ｅ或いは信号線Ｌ８−ｆから受信したホップカウント報告パケット１５０を入力したパケット転送プロセッサ９２１は、入力したパケットに記載の情報からホップカウント報告パケット１５０であると識別する。このとき、入力したホップカウント報告パケット１５０内のＬ２ペイロード２２０に記載される受信回線インタフェース情報を更新する（この場合、受信回線インタフェース９１０−ｅ及び回線インタフェース９１０−ｆが更新対象の情報として用いられる）。この後、パケット転送プロセッサ９２１は、入力したホップカウント報告パケット１５０を信号線Ｌ１に出力する。信号線Ｌ１からホップカウント報告パケット１５０を入力したリングパケット入力部９３１は、入力パケットがホップカウント報告パケット１５０であることを識別し、信号線Ｌ９２に出力する。マスタノード１１０において、信号線Ｌ９１からホップカウント報告パケット１５０を入力したリング状態管理部９３３は、リングプロトコル管理タイマの制限時間が有効であるか確認する。リングプロトコル管理タイマの制限時間が有効である場合、リング状態管理部９３３は、Ｌ２ペイロード２２０に記載される受信回線インタフェース情報とホップカウントとを記録する。リング状態管理部９３３は、リングプロトコル管理タイマの有効時間内に後続のホップカウント報告パケット１５０を受信する際、後続のホップカウント報告パケット１５０に記載の受信回線インタフェース情報がリング状態管理部９３３に記録されているホップカウント報告パケット１５０の受信回線インタフェース情報と同一である場合、受信回線インタフェースに対応するホップカウントの値を、後続のホップカウント報告パケット１５０に記載のホップカウント値（又は値が大きい方のカウント値）に更新する。
【００４２】
リング状態管理部９３３は、リングプロトコル管理タイマの制限時間が無くなると、受信回線インタフェース９１０−ｅに対応するホップカウントの値と、受信回線インタフェース９１０−ｆに対応するホップカウントの値とを合算する。即ち、受信回線インタフェース９１０−ｅと９１０−ｆで受信したホップカウントの最大値の和が得られる。
この後、リング状態管理部９３３は、障害発生時に「０」と設定した「マスタノード１１０から通信可能なスレーブノード数」の値を確認する。ここで「０」のまま（未更新）である場合、リング状態管理部９３３は、ステップＳ５０９で求めた「一定時間内にリングの２方向から報告される最大ホップカウントの和」を用いて、「マスタノード１１０から通信可能なスレーブノード数」を更新する。更新後、マスタノード１１０内のリング状態管理部９３３は、ステップＳ５０４を実行する為のトリガを掛ける。このトリガによりステップＳ５０４以降の処理が実行される。
【００４３】
ステップＳ５１０において、「マスタノード１１０から通信可能なスレーブノード数」の値が「０」では無い場合（「マスタノード１１０から通信可能なスレーブノード数」の値が更新済の場合）、マスタノード１１０内のリング状態管理部９３３は、ステップＳ５０９で求めた「一定時間内にリングの２方向から報告される最大ホップカウントの和」が「マスタノード１１０から通信可能なスレーブノード数」未満であるかを確認する（ステップＳ５１２）。「一定時間内にリングの２方向から報告される最大ホップカウントの和」が「マスタノード１１０から通信可能なスレーブノード数」に満たない場合（ステップＳ５１２）、マスタノード１１０内のリング状態管理部９３３は、リングにおける多重障害の発生を認識する。このとき、マスタノード１１０内のリング状態管理部９３３は、「一定時間内にリングの２方向から報告される最大ホップカウントの和」を用いて、「マスタノード１１０から通信可能なスレーブノード数」を更新する（ステップＳ５１３）。「マスタノード１１０から通信可能なスレーブノード数」を更新後、マスタノード１１０内のリング状態管理部９３３は、ステップＳ５０４を実行する為のトリガを掛ける。
【００４４】
ステップＳ５１２において、マスタノード１１０内のリング状態管理部９３３は、ステップＳ５０９で求めた「一定時間内にリングの２方向から報告される最大ホップカウントの和」が「マスタノード１１０から通信可能なスレーブノード数」未満ではない場合、（ステップＳ５１２）「マスタノード１１０から通信可能なスレーブノード数」が「一定時間内にリングの２方向から報告される最大ホップカウントの和」未満であるかを確認する（ステップＳ５１４）。「マスタノード１１０から通信可能なスレーブノード数」が「一定時間内にリングの２方向から報告される最大ホップカウントの和」と同値である場合（ステップＳ５１４、Ｎｏ）、マスタノード１１０内のリング状態管理部９３３は、ステップＳ５０４を実行する為のトリガを掛ける。一方、「マスタノード１１０から通信可能なスレーブノード数」が「一定時間内にリングの２方向から報告される最大ホップカウントの和」未満である場合（ステップＳ５１４、Ｙｅｓ）、リング状態管理部９３３は、リング上における１つ以上の障害が復旧したと認識する。このとき、「一定時間内にリングの２方向から報告される最大ホップカウントの和」を用いて、「マスタノード１１０から通信可能なスレーブノード数」を更新し、Ｆｌｕｓｈ  ＦＤＢ−２を発行する（ステップＳ５１５）。但し、リングにおける全ての障害が復旧していない為、リング状態管理部９３３は、管理すべきリングの状態を遷移させないで「障害発生」のままにし、ステップＳ５０４を実行する為のトリガを掛ける。以上のように、ステップＳ５０４〜Ｓ５１５をリング上における全ての障害が復旧するまで繰り返し実行する。
【００４５】
ここで、図１の単一リングネットワーク１００における障害箇所の例を説明する。例えば、マスタノード１１０の第１ポート１１０１でホップカウント報告パケット１５０を受信できない場合、推定できる障害箇所は、マスタノード１１０の回線インタフェースの障害、スレーブノード１２０−１の回線インタフェースの障害、スレーブノード１２０−１装置内の障害等の可能性がある。装置内の障害としては、例えば、パケット転送部の障害によりスローブパケット１４０及びホップカウント報告パケット１５０を転送できない場合や、リング管理部の障害によりホップカウント報告パケット１５０を生成できない場合等がある。
【００４６】
また、マスタノード１１０の第１ポート１１０１でホップカウント報告パケット１５０を受信できる場合、ホップカウント報告パケット１５０のホップカウント数に基づき、どのあたりのノードで障害が発生したか推定できる。例えば、ホップカウント報告パケット１５０のホップカウント数が１だった場合、推定できる障害箇所は、スレーブノード１２０−１がプローブパケット１４０をスレーブノード１２０−２に送信するための回線インタフェースの障害、スレーブノード１２０−２の回線インタフェースの障害、スレーブノード１２０−２装置内の障害等の可能性がある。ここでの、障害の例は、第１ポート１１０１についてのみ説明しているが、第２ポート１１０２についても同様である。
【００４７】
ここで、リング上での複数の障害（多重障害）の発生とホップカウント数の和の関係を例をあげて説明する（例えば、図１５を参照）。例えば、図１のリングネットワーク上で、スレーブスイッチ１２０−２とスレーブスイッチ１２０−３の間の信号線又は回線インタフェースに障害（第１の障害）が発生した場合、マスタノード１１０は、ホップカウント数が２のホップカウント報告パケット１５０を第１ポート１１０１より受信し、ホップカウント数が３のホップカウント報告パケット１５０を第２ポート１１０２より受信する（和が５）。ここで、さらに、スレーブスイッチ１２０−４の装置内に障害（第２の障害）が発生した場合、マスタノード１１０は、ホップカウント数が２のホップカウント報告パケット１５０を第１ポート１１０１より受信し、ホップカウント数が１のホップカウント報告パケット１５０を第２ポート１１０２より受信する（和が３に減少）。これによりマスタノード１１０は、リング上で多重障害が発生したことを認識する。
【００４８】
次に、例えば、スレーブスイッチ１２０−２とスレーブスイッチ１２０−３の間の信号線の障害が復旧すると、マスタノード１１０は、ホップカウント数が３のホップカウント報告パケット１５０を第１ポート１１０１より受信し、ホップカウント数が１のホップカウント報告パケット１５０を第２ポート１１０２より受信する（和が４に増加）。マスタノード１１０は、少なくともひとつの障害が復旧したと認識する。マスタノード１１０は、障害の発生及び障害の復旧を認識すると、転送用データベース更新パケット（Ｆｌｕｓｈ  ＦＤＢ−１或いはＦｌｕｓｈ  ＦＤＢ−２）を出力し、リング構成ノードの転送用データベースを適宜更新する。
尚、この例では信号線又は回線インタフェースと、装置内の障害の多重障害について説明したが、信号線の多重障害若しくは装置内の多重障害についても同様にホップカウント数の和が増加又は減少する。
【００４９】
２．第２の実施の形態
図１４は、第２の実施の形態におけるリングネットワークの構成図である。
第２の実施の形態では、図１に示したマスタノード１１０に障害が生じる場合又は多重障害によりマスタノード１１０からプローブパケット１４０が受信できなくなった場合について説明する。ネットワークの構成については、第１の実施の形態と同様である。但し、本実施の形態では、スレーブノード１２０のひとつを「サブマスタノード」１２０−６と定義する。
サブマスタノード１２０−６は、マスタノード１１０に障害が発生した場合、状態を「マスタ」に遷移し、マスタノード１１０と同等の役割を果たす。「マスタ」状態にあるサブマスタノード１２０−６は、本来のマスタノード１１０が障害から復旧した場合、元の状態（「サブマスタ」状態）に遷移する。尚、サブマスタノード１２０−６は、マスタノード１１０に障害が無い場合、他のスレーブノードと同じ動作を実行する。
図６は、マスタノード１１０障害発生時におけるサブマスタノード１２０−６の動作のフローチャートである。
【００５０】
サブマスタノード１２０−６は、リングが正常である場合、スレーブノードとして動作する。サブマスタノード１２０−６は、マスタノード１１０を送信元とするプローブパケット１４０を受信し（ステップＳ６０１）、プローブパケット１４０のホップカウントを例えば１増加する。サブマスタノード１２０−６は、ホップカウント増加後、マスタノード１１０を送信元とするプローブパケット１４０を受信したポートとは反対側のリング用回線収容ポートより隣接ノードに向けてプローブパケット１４０を送信する（ステップＳ６０２）。サブマスタノード１２０−６は、同時又はその前後に、ホップカウント報告パケット１５０を生成し、マスタノード１１０に対して生成したホップカウント報告パケット１５０を送信する（ステップＳ６０３）。サブマスタノード１２０−６は、ホップカウント報告パケット１５０をマスタノード１１０に送信した後、一定時間毎にマスタノード１１０からのプローブパケット１４０を受信できるか否かを確認する（ステップＳ６０４）。ここで、一定時間毎にプローブパケット１４０を受信できる場合（ステップＳ６０４）、サブマスタノード１２０−６は、マスタノード１１０を送信元とするプローブパケット１４０のホップカウントを１増加し（ステップＳ６０５）、ステップＳ６０２を実行する。
【００５１】
本実施の形態におけるステップＳ６０１〜Ｓ６０３の詳細の内、第１の実施の形態で述べている部分は省略する。以下、ステップＳ６０１とステップＳ６０４とに関する事柄について述べる。サブマスタノード１２０−６では、ネットワーク管理者が管理端末３０により行うモード設定の際、サブマスタモードが設定される。このとき、サブマスタモード内のリング状態管理部９３３は、リングプロトコル管理タイマを起動せず、スタンバイ状態とする。リング状態管理部９３３は、ステップＳ６０１にてマスタノード１１０を送信元とするプローブパケット１４０を受信すると、リングプロトコル管理タイマを起動する。サブマスタノード１２０−６内のリングパケット入力部９３１は、リングプロトコル管理タイマの起動後、一定時間内にマスタノード１１０を送信元とするプローブパケット１４０を受信すると、入力パケットがプローブパケット１４０であることを識別し、信号線Ｌ９１に出力する。信号線Ｌ９１からマスタノード１１０を送信元とするプローブパケット１４０を入力したプローブパケット管理部９３２は、スレーブノード１２０として設定されている場合と少し異なり、マスタノード１１０を送信元とするプローブパケット１４０が３つとなるように複製する。プローブパケット管理部９３２は、複製の結果３つになったマスタノード１１０を送信元とするプローブパケット１４０を、信号線Ｌ９３と信号線Ｌ９４と信号線Ｌ９５とに出力する（信号線Ｌ９４と信号線Ｌ９５とに出力されたマスタノード１１０を送信元とするプローブパケット１４０の取り扱いは、既に上述のスレーブノード１２０によるプローブパケット１４０の送受信で述べているため省略する）。信号線Ｌ９３からマスタノード１１０を送信元とするプローブパケット１４０を入力したリング状態管理部９３３は、プローブパケット１４０の入力が、予め設定したリングプロトコル管理タイマの有効時間内であるかを確認する。リング状態管理部９３３は、マスタノード１１０を送信元とするプローブパケット１４０を予め設定したリングプロトコル管理タイマの有効時間内に入力した場合、リングプロトコル管理タイマをリセットする。
【００５２】
一方、サブマスタノード１２０−６は、一定時間毎にマスタノード１１０を送信元とするプローブパケット１４０を受信できない場合（ステップＳ６０４）、マスタノード１１０に障害が生じたと判断し、自身のモードを「マスタ」に遷移させる（ステップＳ６０６）。ステップＳ６０６では、リング状態管理部９３３は、リングプロトコル管理タイマの起動後、信号線Ｌ９３からマスタノード１１０を送信元とするプローブパケット１４０を有効時間内に入力しない場合、マスタノード１１０における障害発生を認識し、自身のモードを「マスタ」に遷移させる。尚、マスタノード１１０からプローブパケット１４０を受信できない場合とは、マスタノード１１０自身の障害や、サブマスタノード１２０−６とマスタノード１１０を接続する２つの経路においてそれぞれ障害が発生したことにより、プローブパケット１４０が受信できない場合等がある。ここでは、マスタノード１１０の障害として説明する。
【００５３】
「マスタ」に状態遷移したサブマスタノード１２０−６は、多重障害への対応を図る為、一定時間毎に自身が収容する２方向のリング回線へ向けてプローブパケット１４０を発行する（ステップＳ６０７）。マスタモードにあるノード動作の詳細は、第１の実施の形態のマスタノード１１０と同様であり、ここでは詳細な説明を省略する。
マスタ状態にあるサブマスタノード１２０−６は、マスタノード１１０を送信元とするプローブパケット１４０の受信の有無を確認する（ステップＳ６０８）。ここでは、リング管理部９３０がマスタノード１１０を送信元とするプローブパケット１４０を受信可能か否かを監視する。サブマスタノード１２０−６は、リング管理部９３０にてマスタノード１１０を送信元とするプローブパケット１４０を受信できない場合、ステップＳ６０７を実行する。
【００５４】
また、サブマスタノード１２０−６は、マスタノード１１０を送信元とするプローブパケット１４０を受信できる場合、マスタノード１１０が復旧したと解釈し、自身のモードを「サブマスタ」に遷移させる（ステップＳ６０９）。このとき、サブマスタノード１２０−６は、自身のプローブパケット１４０の発行を取り止め、他のスレーブノード１２０と同様に動作する（ステップＳ６１０）。
【００５５】
以下、ステップＳ６０９とステップＳ６１０とを詳述する。リングパケット入力部９３１は、入力パケットがマスタノード１１０を送信元とするプローブパケット１４０であることを認識すると、信号線Ｌ９１に出力する。信号線Ｌ９１からマスタノード１１０を送信元とするプローブパケット１４０を入力したプローブパケット管理部９３２は、上述したようにマスタノード１１０を送信元とするプローブパケット１４０が３つとなるように複製する。プローブパケット管理部９３２は、複製の結果３つになったマスタノード１１０を送信元とするプローブパケット１４０を、信号線Ｌ９３と信号線Ｌ９４と信号線Ｌ９５とに出力する。尚、信号線Ｌ９４と信号線Ｌ９５とに出力されたマスタノード１１０を送信元とするプローブパケット１４０により、プローブパケット１４０の転送とマスタノード１１０に送信するホップカウント報告パケット１５０の生成とが実行される。信号線Ｌ９３からマスタノード１１０を送信元とするプローブパケット１４０を入力したリング状態管理部９３３は、マスタノード１１０の障害が復旧したと判断し、自身のモードを「サブマスタ」に遷移させる。自身のモードを「サブマスタ」に遷移させたリング状態管理部９３３は、サブマスタノード１２０−６を送信元とするプローブパケット１４０の発行を取り止めると同時又はほぼ同時に、他のスレーブノード１２０から送信されるホップカウント報告パケット１５０に記載の情報を意識しない（マスタノードとしての処理を実行しない）ようにする。
第２の実施の形態では、スレーブノード１２０−６をサブマスタノードと定義したが、スレーブノード１２０−ｉの内、何れか１つ以上をサブマスタノードと定義することで第２の実施の形態と同様の効果が得られる。
【００５６】
３．第３の実施の形態
第３の実施の形態では、第２の実施の形態で述べたサブマスタノード１２０−６を含むリングにおいて、マスタノード１１０による多重障害復旧への対応動作を説明する。但し、本実施の形態では、第１の実施の形態と第２の実施の形態との差分についてのみ述べることにする。尚、ネットワークの構成については、上述の第２の実施の形態と同様である。
図１３は、多重障害が発生しているリングネットワーク１００の構成図である。図８は、サブマスタノード１２０−６を含むリングのマスタノード１１０による障害への対応動作のフローチャートである。尚、上述と同様の処理については同じ符号を付し、詳細な説明を省略する。
【００５７】
障害復旧時におけるマスタノード１１０の動作に関して、図を用いて説明する。図１３の例では、スレーブノード１２０−１〜スレーブノード１２０−２間（障害Ａ）と、スレーブノード１２０−４〜スレーブノード１２０−５間（障害Ｂ）とで障害が発生している（多重障害）。また、図１３のサブマスタノード１２０−６は、既に、マスタモードで動作しており、プローブパケット１４０を発行しているものとする。
図８におけるステップＳ８０５（ステップＳ５０５）の条件が満たされない場合、マスタノード１１０は、サブマスタノード１２０−６を送信元とするプローブパケット１４０の受信の有無を確認する（ステップＳ８０６）。ここでは、多重障害からの復旧に備え、マスタノード１１０のリング管理部９３０は、サブマスタノード１２０−６を送信元とするプローブパケット１４０が受信可能か否か監視する。マスタノード１１０は、リング管理部９３０にてサブマスタノード１２０−６を送信元とするプローブパケット１４０を受信できない場合、ステップＳ８０９（ステップＳ５０９）を実行する。
【００５８】
ステップＳ８０６において、マスタノード１１０は、多重障害の一部（例えば、障害Ｂ）が復旧し、サブマスタノード１２０−６を送信元とするプローブパケット１４０を受信可能な場合、受信したサブマスタノード１２０−６を送信元とするプローブパケット１４０を廃棄する（ステップＳ８０８）。この後、ステップＳ８０９（ステップＳ５０９）を実行する。
ステップＳ８０８を詳述すると、マスタノード１１０は、第２の実施の形態で述べたサブマスタノード１２０−６と異なり、自身と異なる装置から送信されたプローブパケット１４０を受信する際、受信したプローブパケット１４０の転送は行わない。また、受信したプローブパケット１４０の発行元であるサブマスタノード１２０−６に対してホップカウント報告パケット１５０を発行しない。これらの動作を実行しないのは、リングにおける混乱を避けるためである。
以上のように、本実施の形態によれば、マスタノード１１０の障害の有無にかかわらず、リング上における多重障害の発生及び多重障害からの一部復旧を検出できる。
４．第４の実施の形態
更なる例として、図１のリングネットワーク上で、多重障害が発生している最中に、ホップカウント数の和が変わらないままトポロジが変化する場合について述べる。ここで、トポロジとは、例えばネットワークの構成を示す。例えば、図１５に示すように、多重障害として、上述した第１の障害と第２の障害が発生している場合、マスタノード１１０におけるホップカウントの和は３である。
図１６は、本実施の形態におけるトポロジ変化の説明図である。
ここで、上記の障害が全て解消されると同時に、スレーブスイッチ１２０−１〜スレーブスイッチ１２０−２間の信号線又は回線インタフェース障害と、スレーブスイッチ１２０−３の装置内障害が発生する場合（図１６）、マスタノード１１０におけるホップカウントの和は３のままである。本実施の形態では、上述の実施の形態の処理に加え、さらに、マスタノード１１０が、リングの各方向で受信されるホップカウントの最大値が変化していることを認識し、トポロジに変化が生じたと判断して転送用データベース更新パケット（Ｆｌｕｓｈ  ＦＤＢ−２）を発行する。これにより、ホップカウント数の和が変化せずに障害発生箇所が変わった場合も検出可能であり、転送用データベースを更新できる。
なお、マスタノード１１０は、上述の実施の形態と同様、各ポートから受信されたホップカウント報告パケット１５０に含まれるホップカウントの最大値をポート毎に管理しておく。また、ホップカウントの最大値をポート毎、かつ、プローブパケット毎に管理してもよい。例えば、プローブパケット、それに対するホップカウント報告パケットは、プローブパケットを識別するための識別子を含み、ポート毎に、その識別子に対応してホップカウントの最大値を管理してもよい。因みに、マスタノード１１０は、ホップカウントの和が変わらない状況が継続し、且つリングの各方向で受信されるホップカウントの最大値が不変の場合、トポロジに変化が無いと判断して転送用データベース更新パケット（Ｆｌｕｓｈ  ＦＤＢ−２）を発行しない。なお、トポロジの変化は上述の例に限られない。
次に、本実施の形態の処理について説明する。なお、ハード構成、プローブパケットの送信・転送等は、上述の第１の実施の形態と同様である。
図１７は、本実施の形態におけるマスタノード１１０による障害への対応動作のフローチャートである。ステップＳ５０１〜Ｓ５１３の各処理は、第１の実施の形態と同様であるので、説明を省略する。
ステップＳ５１２において、マスタノード１１０内のリング状態管理部９３３は、ステップＳ５０９で求めた「一定時間内にリングの２方向から報告される最大ホップカウントの和」が「マスタノード１１０から通信可能なスレーブノード数」未満ではない場合（ステップＳ５１２）、「マスタノード１１０から通信可能なスレーブノード数」が「一定時間内にリングの２方向から報告される最大ホップカウントの和」未満であるかを確認する（ステップＳ５１４’）。
「マスタノード１１０から通信可能なスレーブノード数」が「一定時間内にリングの２方向から報告される最大ホップカウントの和」未満である場合（ステップＳ５１４’、Ｙｅｓ）、リング状態管理部９３３は、リング上における１つ以上の障害が復旧したと認識する。このとき、「一定時間内にリングの２方向から報告される最大ホップカウントの和」を用いて、「マスタノード１１０から通信可能なスレーブノード数」を更新し、Ｆｌｕｓｈ  ＦＤＢ−２を発行する（ステップＳ５１５）。但し、リングにおける全ての障害が復旧していない為、リング状態管理部９３３は、管理すべきリングの状態を遷移させないで「障害発生」のままにし、ステップＳ５０４を実行する為のトリガを掛ける。
一方、「マスタノード１１０から通信可能なスレーブノード数」が「一定時間内にリングの２方向から報告される最大ホップカウントの和」未満ではない場合（ステップＳ５１４、Ｎｏ）、ステップＳ５１３、Ｓ５１４の結果よりマスタノード１１０内のリング状態管理部９３３は、「マスタノード１１０から通信可能なスレーブノード数」が「一定時間内にリングの２方向から報告される最大ホップカウントの和」と同値であると判断する。このとき、リング状態管理部９３３は、上述したように、ポート毎に管理している「各ポートから受信されたホップカウント報告パケット１５０に含まれるホップカウントの最大値」を用いて、各ポートにおけるホップカウントの最大値が一定時間内に（又はプローブパケット毎に）変化するか否かを確認する（ステップＳ５１６）。
例えば、プローブパケットを発行する前などの適宜のタイミングで、前の時間内におけるポート毎のホップカウントの最大値（第１の値）を別の領域にストアし、その後ホップカウントの最大値をリセットする。また、例えば、ステップＳ５０９では、リセットされたホップカウントの最大値を受信されたホップカウント報告パケットに従い順次更新して、当該時間内のホップカウントの最大値（第２の値）を求める。ステップＳ５１６では、当該時間内のホップカウントの最大値（第２の値）と前の時間におけるホップカウントの最大値（第１の値）とを、ポート毎に比較して、変化しているかを判断する。
また、ホップカウントの最大値を、ポート毎かつプローブパケット毎に管理している場合には、２つのプローブパケットに対するホップカウントの最大値を比較するようにしてもよい。例えば連続する２つのプローブパケットに対する値を比較してもよい。
「マスタノード１１０の各ポートにおけるホップカウントの最大値」が一定時間内に変化しない場合（ステップＳ５１６、Ｎｏ）、リング状態管理部９３３はステップＳ５０４を実行する為のトリガを掛ける。一方、「マスタノード１１０の各ポートにおけるホップカウントの最大値」が一定時間内に変化する場合（ステップＳ５１６、Ｙｅｓ）、リング状態管理部９３３は、管理すべきリング上におけるトポロジが変化したと判断し、Ｆｌｕｓｈ  ＦＤＢ−２を発行する（ステップＳ５１７）。但し、リングにおける全ての障害が復旧していない為、リング状態管理部９３３は、管理すべきリングの状態を遷移させないで「障害発生」のままにし、ステップＳ５０４を実行する為のトリガを掛ける。以上のように、ステップＳ５０４〜Ｓ５１７をリング上における全ての障害が復旧するまで繰り返し実行する。
５．第５の実施の形態
上述の第４の実施の形態におけるトポロジの変化に対応するための処理（例えばＳ５１６、Ｓ５１７）は、第２、第３の実施の形態にも適用できる。なお、ハード構成、プローブパケットの送信・転送等は、上述の第２、第３の実施の形態と同様である。
図１８は、本実施の形態におけるサブマスタノードを含むリングのマスタノード１１０による障害への対応動作のフローチャートである。各ステップの処理の詳細は、上述の第３、第４の実施の形態と同様であるので、同じ符号を付し、説明を省略する。
【産業上の利用可能性】
【００５９】
本発明は、リングにおいて主従関係を持つノード群に適用可能である。
【図面の簡単な説明】
【００６０】
【図１】単一リングネットワーク１００の構成図。
【図２】単一リングネットワーク１００を伝送する可変長パケットのフォーマットの例を示す説明図。
【図３】マスタノード１１０が発行するプローブパケット１４０とスレーブノード１２０が発行するホップカウント報告パケット１５０との関係を示す説明図。
【図４】スレーブノード１２０によるプローブパケット１４０の送受信とホップカウント報告パケット１５０の発行の処理のフローチャート。
【図５】マスタノード１１０による障害への対応動作のフローチャート。
【図６】サブマスタノードの動作のフローチャート。
【図７】リングが備えるノード装置９００の構成図。
【図８】サブマスタノードを含むリングのマスタノード１１０による障害への対応動作のフローチャート。
【図９】リング管理部９３０の構成図。
【図１０】パケット転送部９２０の構成図。
【図１１】パケット転送時におけるパケット転送データベース９２２に格納される検索結果情報８００のフォーマットを示す説明図。
【図１２】スレーブノード１２０によるホップカウント報告パケット１５０を転送する処理のフローチャート。
【図１３】多重障害が発生している単一リングネットワーク１００の構成図。
【図１４】第２の実施の形態におけるリングネットワークの構成図。
【図１５】多重障害例の説明図。
【図１６】第４の実施の形態のおけるトポロジ変化の説明図。
【図１７】第４の実施の形態におけるマスタノード１１０による障害への対応動作のフローチャート。
【図１８】第５の実施の形態におけるサブマスタノードを含むリングのマスタノード１１０による障害への対応動作のフローチャート。
【符号の説明】
【００６１】
１００  単一リングネットワーク
１１０  マスタノード
１２０  スレーブノード
１２０−６  サブマスタノード
１３０  端末
１４０  プローブパケット
１５０  ホップカウント報告パケット
９００  ノード装置
１１０１  第１ポート
１１０２  第２ポート
【図１】
0004739141.tif 000002
【図２】
0004739141.tif 000003
【図３】
0004739141.tif 000004
【図４】
0004739141.tif 000005
【図５】
0004739141.tif 000006
【図６】
0004739141.tif 000007
【図７】
0004739141.tif 000008
【図８】
0004739141.tif 000009
【図９】
0004739141.tif 000010
【図１０】
0004739141.tif 000011
【図１１】
0004739141.tif 000012
【図１２】
0004739141.tif 000013
【図１３】
0004739141.tif 000014
【図１４】
0004739141.tif 000015
【図１５】
0004739141.tif 000016
【図１６】
0004739141.tif 000017
【図１７】
0004739141.tif 000018
【図１８】
0004739141.tif 000019