(57)【要約】【課題】誤動作や故障によりネットワーク全体で通信できなくなることを回避し、信頼性の高いネットワークを実現する。【解決手段】スレーブノード２０２は、閉塞ポート５１が存在することを通知する閉塞状態通知パケット３０１を送信し、マスタノード１００は、閉塞状態通知パケット３０１を受信し、かつ、マスタノード１００自身の閉塞ポート５０が存在することを認識することで、ネットワーク上に閉塞ポートが２個存在していることを認識し、ネットワーク上に存在する閉塞ポートの数が２以上の場合、閉塞解除するノードとそのポートを決定し、そのノードがマスタノード１００自身の場合、閉塞ポート５０を閉塞解除し、そのノードがスレーブノード２０２の場合、スレーブノード２０２宛てに、閉塞解除を通知する閉塞制御パケット４０１を送信し、閉塞制御パケット４０１を受信したスレーブノード２０２は、閉塞ポート５１を閉塞解除する。【選択図】図２
2010226318.tif 000002
【特許請求の範囲】
【請求項１】
複数のパケットを転送し、複数のポートを持つノードを備え、複数の上記ノードがリング状に接続され、上記ノードのうち少なくとも１つはネットワークの状態を監視するマスタノードであり、他のノードは上記マスタノードからの指示に従うスレーブノードであるリング型ネットワークにおいて、
上記スレーブノードは、スレーブノード自身の閉塞ポートの有無を検出する閉塞ポート検出部と、上記マスタノードに対して閉塞ポートの存在を通知する閉塞状態通知パケットを生成する閉塞状態通知パケット生成部と、上記閉塞ポート検出部にて閉塞ポートを検出した場合、上記閉塞状態通知パケット生成部にて閉塞状態通知パケットを生成するよう制御する制御部と、上記閉塞状態通知パケット生成部により生成した閉塞状態通知パケットを送信する送信部と、を具備し、
上記マスタノードは、上記スレーブノードから送信された閉塞状態通知パケットを受信する受信部と、上記閉塞状態通知パケットを検出する閉塞状態通知パケット検出部と、上記マスタノード自身の閉塞ポートの有無を検出する閉塞ポート検出部と、ノード毎に各ポートの閉塞ポートの有無を管理するリング状態監視データベース部と、上記マスタノードの上記閉塞ポート検出部と上記閉塞状態通知パケット検出部での各ノードの閉塞ポートの有無を元に上記リング状態監視データベース部を更新し、上記リング状態監視データベース部の情報を元に、リング状に存在する閉塞ポートの数により、閉塞制御するノードとそのポートを決定し、閉塞制御するポートが上記マスタノード自身の場合、上記マスタノード自身の該当ポートを閉塞制御し、閉塞制御するポートが上記スレーブノードの場合、該当スレーブノード宛てに閉塞制御するポートとそのポートの閉塞制御の内容を通知する閉塞制御パケットを生成するよう制御する制御部と、上記閉塞制御パケットを生成する閉塞制御パケット生成部と、上記閉塞制御パケットを送信する送信部と、を具備し、
更に、上記スレーブノードは、上記マスタノードから送信された閉塞制御パケットを受信する受信部と、自身宛ての閉塞制御パケットを検出する閉塞制御パケット検出部と、自身宛でない閉塞制御パケットを自身の閉塞ポートの有無に係わらず、閉塞制御パケットを中継する中継部と、閉塞制御パケットに付加された閉塞制御の内容と閉塞制御するポートを元に、該当ポートを閉塞制御する制御部と、を具備することを特徴とするリング型ネットワーク。
【請求項２】
上記マスタノードと上記スレーブノードの各々に、自身の閉塞ポートの有無を検出することに加え、障害状態を検出できる閉塞ポート検出部を具備すると共に、
上記スレーブノードには、マスタノードに対する閉塞ポートの存在を通知することに加え、ポートの障害状態を付加する閉塞状態通知パケットを生成する閉塞状態通知パケット生成部を具備し、
上記マスタノードには、ノード毎に各ポートの閉塞ポートの有無を管理することに加え、障害状態を管理するリング状態監視データベース部を具備し、誤設定された閉塞ポートを特定して解除すること特徴とする請求項１に記載のリング型ネットワーク。
【請求項３】
上記マスタノードに監視パケット生成部と、監視応答パケット検出部を具備すると共に、上記スレーブノードに監視パケット検出部と、監視パケット応答部を具備し、上記マスタノードが上記スレーブノードに対して到達確認ができることを特徴とする請求項１または請求項２に記載のリング型ネットワーク。
【請求項４】
上記スレーブノードは、閉塞制御の成否を通知する閉塞制御応答パケット生成部を具備すると共に、上記マスタノードは、閉塞制御応答パケット検出部を具備し、上記リング状態監視データベース部は、閉塞制御の成否も管理し、閉塞制御できないポートを認識してそれ以外の閉塞ポートを閉塞制御することを特徴とする請求項１〜請求項３の何れか一項に記載のリング型ネットワーク。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、リング型ネットワークに係り、特に、リング型ネットワークおける障害を検出し、復旧を可能とするリング型ネットワークに関するものである。
【背景技術】
【０００２】
ネットワークの高信頼化を実現するための手段として、通信経路の冗長性を持たせるため、ループ状にネットワークを構築するリング型ネットワークが広く採用されている。リング型ネットワークでは、ブロードキャストストームを回避するため、論理的にループを切断（以下、閉塞という。）し、障害時には閉塞を解除することで経路切り替えを行うリング制御が必要となる。
【０００３】
そこで、従来のリング制御方式である非特許文献１に記載のＳＴＰ（Ｓｐａｎｎｉｎｇ
Ｔｒｅｅ  Ｐｒｏｔｏｃｏｌ）では、リング型ネットワーク上の単一のポートをブロッキング状態にすることで、閉塞している。上記ＳＴＰでは、ネットワーク装置間でＢＰＤＵ（Ｂｒｉｄｇｅ  Ｐｒｏｔｏｃｏｌ  Ｄａｔａ  Ｕｎｉｔ）と呼ばれる制御フレームを定期的に交換することにより、ネットワークの経路の監視を行っている。ここで、ネットワークで障害が発生した場合、定期的なＢＰＤＵが届かなくなり、最大エージタイマの時間が経過すると、ネットワークに障害が発生したことを検出する。上記ＳＴＰでは障害を検知した後、障害箇所のポートにおいてループが切断されているものとして、障害箇所のポートを閉塞せずに、閉塞ポートを解除していた。そのため、転送遅延やネットワーク装置内転送バッファ漏れによって、ＢＰＤＵを受信しない場合、実際には障害が発生していないにも係わらず、障害として誤検出し、閉塞ポートを解除することで、ループの原因となっていた。
【０００４】
そこで、ＩＴＵ-Ｔ  Ｇ．８０３２で規定されているＥＲＰ（Ｅｔｈｅｒｎｅｔ（登録
商標）  Ｒｉｎｇ  Ｐｒｏｔｅｃｔｉｏｎ  Ｓｗｉｔｃｈｉｎｇ）では、障害を検知した場合、障害箇所のポートを閉塞してから、閉塞解除を通知する制御フレームによって閉塞ポートを解除することにより、ループの発生を回避している。また、障害復旧時も、マスタノードのポートを閉塞してから、障害時の閉塞ポートを解除することによりループの発生を回避している。なお、関連する技術を開示する文献に特許文献１、特許文献２がある。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】ＩＥＥＥ  ８０２．１Ｄ，１９９８  Ｅｄｉｔｉｏｎ  ＭＡＣ  ｂｒｉｄｇｅｓ（Ｐ５８〜Ｐ１０９）
【特許文献】
【０００６】
【特許文献１】特開２００７−２５９４０６号公報
【特許文献２】特開２００４−２０１００９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ここで、従来のリング制御方式では、半導体部品の故障や誤動作などにより、閉塞ポートが誤って解除される（以下、閉塞ポートの誤解除という。）ことによりループが発生する問題があった。また、閉塞ポートが誤って設定される（以下、閉塞ポートの誤設定という。）ことにより通信経路が分断される問題があった。上記特許文献１では、多重障害の発生及び多重障害から少なくともひとつの復旧を検出することが可能であるものの、閉塞ポートの誤解除や閉塞ポートの誤設定の対応に関して、開示されていない。また、上記特許文献２では、リング上で閉塞ポートがなく、ループが発生する問題は回避できるものの、閉塞ポートの誤設定の対応に関して、開示されていない。
【０００８】
この発明は、上記のような課題を解消するためになされたものであり、閉塞ポートが誤って解除されることによりループが発生する問題を回避し、閉塞ポートが複数箇所以上誤って設定されることにより通信経路が分断される問題を回避することで、誤動作や故障によりネットワーク全体で通信できなくなることを回避し、信頼性の高いネットワークを実現することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、この発明に係るリング型ネットワークは、複数のパケットを転送し、複数のポートを持つノードを備え、複数の上記ノードがリング状に接続され、上記ノードのうち少なくとも１つはネットワークの状態を監視するマスタノードであり、他のノードは上記マスタノードからの指示に従うスレーブノードであるリング型ネットワークにおいて、上記スレーブノードは、スレーブノード自身の閉塞ポートの有無を検出する閉塞ポート検出部と、上記マスタノードに対して閉塞ポートの存在を通知する閉塞状態通知パケットを生成する閉塞状態通知パケット生成部と、上記閉塞ポート検出部にて閉塞ポートを検出した場合、上記閉塞状態通知パケット生成部にて閉塞状態通知パケットを生成するよう制御する制御部と、上記閉塞状態通知パケット生成部により生成した閉塞状態通知パケットを送信する送信部と、を具備し、上記マスタノードは、上記スレーブノードから送信された閉塞状態通知パケットを受信する受信部と、上記閉塞状態通知パケットを検出する閉塞状態通知パケット検出部と、上記マスタノード自身の閉塞ポートの有無を検出する閉塞ポート検出部と、ノード毎に各ポートの閉塞ポートの有無を管理するリング状態監視データベース部と、上記マスタノードの上記閉塞ポート検出部と上記閉塞状態通知パケット検出部での各ノードの閉塞ポートの有無を元に上記リング状態監視データベース部を更新し、上記リング状態監視データベース部の情報を元に、リング状に存在する閉塞ポートの数により、閉塞制御するノードとそのポートを決定し、閉塞制御するポートが上記マスタノード自身の場合、上記マスタノード自身の該当ポートを閉塞制御し、閉塞制御するポートが上記スレーブノードの場合、該当スレーブノード宛てに閉塞制御するポートとそのポートの閉塞制御の内容を通知する閉塞制御パケットを生成するよう制御する制御部と、上記閉塞制御パケットを生成する閉塞制御パケット生成部と、上記閉塞制御パケットを送信する送信部と、を具備し、更に、上記スレーブノードは、上記マスタノードから送信された閉塞制御パケットを受信する受信部と、自身宛ての閉塞制御パケットを検出する閉塞制御パケット検出部と、自身宛でない閉塞制御パケットを自身の閉塞ポートの有無に係わらず、閉塞制御パケットを中継する中継部と、閉塞制御パケットに付加された閉塞制御の内容と閉塞制御するポートを元に、該当ポートを閉塞制御する制御部とを具備するものである。
【発明の効果】
【００１０】
この発明によれば、閉塞ポートの誤設定、もしくは誤解除による障害を検出し、自動復旧することができ、信頼性の高いリング型ネットワークを提供することができる。
【図面の簡単な説明】
【００１１】
【図１】この発明の実施の形態１に係るリング型ネットワークの構成例である。
【図２】この発明の実施の形態１に係るリング型ネットワークの構成例である。
【図３】この発明の実施の形態１に係る閉塞状態通知パケットのパケットフォーマットである。
【図４】この発明の実施の形態１に係る閉塞制御パケットのパケットフォーマットである。
【図５】この発明の実施の形態１に係るマスタノードのフローチャートである。
【図６】この発明の実施の形態１に係るマスタノードの内部ブロック図である。
【図７】この発明の実施の形態１に係るスレーブノードのフローチャートである。
【図８】この発明の実施の形態１に係るスレーブノードの内部ブロック図である。
【図９】この発明の実施の形態２に係るリング型ネットワークの構成例である。
【図１０】この発明の実施の形態２に係る閉塞状態通知パケットのパケットフォーマットである。
【図１１】この発明の実施の形態２に係るマスタノードのフローチャートである。
【図１２】この発明の実施の形態２に係るマスタノードの内部ブロック図である。
【図１３】この発明の実施の形態２に係るスレーブノードのフローチャートである。
【図１４】この発明の実施の形態２に係るスレーブノードの内部ブロック図である。
【図１５】この発明の実施の形態３に係るリング型ネットワークの構成例である。
【図１６】この発明の実施の形態３に係るマスタノードの内部ブロック図である。
【図１７】この発明の実施の形態３に係るスレーブノードのフローチャートである。
【図１８】この発明の実施の形態３に係るスレーブノードの内部ブロック図である。
【図１９】この発明の実施の形態４に係るリング型ネットワークの構成例である。
【図２０】この発明の実施の形態４に係るスレーブノードのフローチャートである。
【図２１】この発明の実施の形態４に係るマスタノードの内部ブロック図である。
【図２２】この発明の実施の形態４に係るスレーブノードのフローチャートである。
【図２３】この発明の実施の形態４に係るスレーブノードの内部ブロック図である。
【発明を実施するための形態】
【００１２】
以下、添付の図面を参照して、この発明に係るリング型ネットワークについて好適な実施の形態を説明する。なお、この実施の形態によりこの発明が限定されるものでない。
【００１３】
実施の形態１．
以下、この発明の実施の形態１に係るリング型ネットワークを図１、図２を基本に、図３〜図６を使用して説明する。本実施の形態では、単一のリング型ネットワークについて説明する。但し、適用する装置、パケットの種類、装置数はこれに限られない。
【００１４】
図１は、実施の形態１に係る正常なリング型ネットワークの構成例を示す図である。マスタノード１００が閉塞ポートの誤設定、誤解除がない正常なリング型ネットワークであることを認識する動作について説明する。また、閉塞ポートがない場合、リング上でループが発生していることを認識し、閉塞ポートを設定し、正常なリングに復旧する動作についても説明する。
【００１５】
図２は、閉塞ポートの誤設定でリング上に閉塞ポートが２箇所存在し、通信経路が分断されているリング型ネットワークを示す図である。リング上に閉塞ポートが２箇所存在すること（「閉塞ポートの誤設定」）を検知し、閉塞解除を通知し、閉塞ポートを解除することで正常なリングに復旧する動作について説明する。
【００１６】
図３は、閉塞ポートを持つスレーブノードが閉塞ポートを持つことをマスタノードに対して通知する閉塞状態通知パケットのパケットフォーマットの一例を示す説明図である。また、図４は、閉塞ポートを持つスレーブノードに対して閉塞解除を通知するためのパケットフォーマットの一例を示す説明図である。
【００１７】
図５は、マスタノードの動作を示すフローチャートの一例であり、図６は、マスタノードの動作を示すマスタノードの内部ブロック図の一例である。
【００１８】
図７は、スレーブノードの動作を示すフローチャートの一例であり、図８は、スレーブノードの動作を示すスレーブノードの内部ブロック図の一例である。
【００１９】
次に図１において、正常なリング型ネットワークであることを認識する動作について説明する。
【００２０】
図１において、リング型ネットワークは、ネットワークの状態を監視するマスタノード１００と、マスタノード１００の指示に従うスレーブノード２００〜２０４とを備えている。マスタノード１００は、ネットワーク上で障害が発生していない場合、例えば、マスタノード１００のポート２を、閉塞ポート５０にて論理的に切断（以下、閉塞という。）しているため、パケットがリング上でループ状態にならず、ブロードキャストストームを回避している。マスタノード１００は、例えば、閉塞ポート５０が誤って解除されていること（以下、「閉塞ポートの誤解除」という。）、かつ、閉塞ポートが複数箇所以上誤って設定されること（以下、「閉塞ポートの誤設定」という。）を検出するため、各スレーブノード２００〜２０４が閉塞ポートを持っていた場合に送信される閉塞状態通知パケット３０１に付加される閉塞ポートの情報を検出し、かつ、マスタノード１００自身の閉塞ポートを検出することで、リング上に存在する閉塞ポートの数を求める。
【００２１】
図1においては、スレーブノード２００〜２０４は閉塞ポートを持たず、閉塞状態通知パケット３０１を送信しないため、マスタノード１００ではスレーブノード２００〜２０４の閉塞ポートを認識しない。さらに、マスタノード１００自身が閉塞ポート５０を持つため、マスタノード１００はリング上の閉塞ポートの数を１と認識し、ネットワーク上で経路の分断とループが発生していない正常なリング型ネットワークであることを認識することが可能となる。
【００２２】
次に図２、図３、図４を用いて、「閉塞ポートの誤設定」により、リング上に閉塞ポートが複数箇所存在し、通信経路が分断されているリング型ネットワークにおいて、マスタノード１００が「閉塞ポートの誤設定」を検出し、復旧する動作について説明する。
【００２３】
図２において、マスタノード１００は、自身のポート２において閉塞ポート５０が存在することを認識する。一方、スレーブノード２０２は、自身のポート２において閉塞ポート５１が存在することを認識するため、図３に示すような閉塞状態通知パケット３０１をポート１、ポート２からマスタノード１００宛てに送信する。ここで、閉塞状態通知パケット３０１は、閉塞ポート５１にて廃棄されることなく、ポート２より送信され、スレーブノード２０２以外のスレーブノードでは中継される。即ち、閉塞状態通知パケット３０１は、仮にスレーブノードに閉塞ポートが存在していたとしても、閉塞ポートで廃棄されることなく中継される。
【００２４】
閉塞状態通知パケット３０１を受信したマスタノード１００は、閉塞状態通知パケット３０１を解析し、スレーブノード２０２のポート２に閉塞ポートがあることを認識できる。このようにして、マスタノード１００は、リング上に、マスタノード１００自身のポート２（閉塞ポート５０）とスレーブノード２０２のポート２（閉塞ポート５１）の計２個の閉塞ポートがあることを認識する。つまり「閉塞ポートの誤設定」を検出できる。
【００２５】
ここで、マスタノード１００は、正常なリング型ネットワークに復旧させるため、即ち、リング上の閉塞ポートの数を１にするため、閉塞解除するポートを決定する。例えば、一般的にマスタノード１００に閉塞ポートを持たせるため、閉塞解除するポートをスレーブノード２０２のポート２（閉塞ポート５１）とした場合を考える。その場合、マスタノード１００は、図４に示すような閉塞解除するための閉塞制御パケット４０１をマスタノード１００のポート１、ポート２からスレーブノード２０２宛てに送信する。なお、閉塞制御パケット４０１は、閉塞状態通知パケット３０１と同様、リング上に存在する閉塞ポートにて廃棄されることなく、それぞれのノードにて受信、中継、送信処理される。
【００２６】
閉塞制御パケット４０１を受信したスレーブノード２０２は、閉塞制御パケット４０１を解析することにより、スレーブノード２０２のポート２の閉塞ポートを解除することができる。このようにして、リング上の閉塞ポートの数を１にすることにより、正常なリング型ネットワークに復旧させることが可能となる。
【００２７】
次に図５、図６を用いて、マスタノード１００の動作について説明する。図５はマスタノード１００において、リング上の閉塞ポートの数を検出する動作を示すフローチャートである。図６はマスタノード１００の内部ブロック図である。
【００２８】
マスタノード１００は、リング上に存在する閉塞ポートの状態を、リング状態監視データベース部７０１にて管理する。例えば、図１において、マスタノード１００は、リング状態監視データベース部７０１にて、自ノードのポート１、ポート２の閉塞ポートの有無と、スレーブノード２０２の送信元アドレス、ポート１、ポート２の閉塞ポートの有無とを管理している。
【００２９】
マスタノード１００は、閉塞ポート検出部７０２にてマスタノード１００自身の閉塞ポートの状態変化を検出したとき（Ｓ５０１）、制御部７００にてリング状態監視データベース部７０１の閉塞ポートの有無を更新する（Ｓ５０３）。
【００３０】
また、スレーブノードからの閉塞状態通知パケット３０１を受信部７０３にて受信（Ｓ５０２）し、閉塞状態通知パケット検出部７０４で閉塞ポートを検出したとき、制御部７００にて、閉塞状態通知パケット３０１の送信元ＭＡＣアドレス、ポート１、ポート２各々の閉塞ポートの有無を元に、リング状態監視データベース部７０１を更新する（Ｓ５０３）。
【００３１】
制御部７００は、リング状態監視データベース部７０１が更新したとき、もしくは一定周期、もしくは不定期に、リング状態監視データベース部７０１を監視することで、リング型ネットワーク上に存在する閉塞ポートの数を求める（Ｓ５００）。なお、制御部７００は、閉塞ポートの数を求めた直後、もしくは一定周期でリング状態監視データベース部７０１を消去することで、リング上に存在する閉塞ポートの数を正確に把握することができる。
【００３２】
制御部７００は、求めたリング型ネットワーク上の閉塞ポートの数が１のとき、正常なリング型ネットワークであることを認識する。制御部７００は、閉塞ポートの数が２以上のとき、「閉塞ポートの誤設定」を検出し、リング上の閉塞ポートの数が１となるように、閉塞解除するノードとそのポートを決定する（Ｓ５０４）。スレーブノードの閉塞ポートを解除する場合、制御部７００は、閉塞解除するノードとそのポートの情報を元に、閉塞制御パケット生成部７０６にて閉塞制御パケット４０１を生成し、送信部７０５にて閉塞解除するノード宛て（図２の場合、スレーブノード２０２）に閉塞制御パケット４０１を送信する（Ｓ５０５）。
【００３３】
一方、閉塞ポートの数が０のとき、「閉塞ポートの解除誤設定」を検出し、閉塞するノードとそのポートを決定する（Ｓ５０６）。例えば、一般的にマスタノードに閉塞ポートを持たせるため、マスタノードの閉塞ポートを閉塞する（図１の場合、閉塞ポート５０）（Ｓ５０７）。
【００３４】
次に図７、図８を用いて、スレーブノードの動作について説明する。図７はスレーブノードにおいて、閉塞状態通知パケット３０１を生成する動作と、閉塞制御パケット４０１受信時の動作を示すフローチャートである。図８はスレーブノードの内部ブロック図である。
【００３５】
スレーブノードは、閉塞ポート検出部８０２にて自ノードの閉塞ポートを検出した場合（Ｓ６０２）、制御部８００は、閉塞状態通知パケット生成部８０６にて、閉塞ポートの情報を付加した閉塞状態通知パケット３０１を生成し（Ｓ６０３）、送信部８０５から送信する（Ｓ６０４）。
【００３６】
一方、自ノード宛て閉塞制御パケット４０１を受信部８０３にて受信（Ｓ６００）し、閉塞制御パケット検出部８０４で閉塞ポートを検出したとき、制御部８００は、閉塞制御パケット４０１の閉塞解除、もしくは閉塞設定するポートの情報に基づき、閉塞ポートを閉塞解除もしくは閉塞設定する。なお、他のスレーブノードの閉塞状態通知パケット３０１や、他のスレーブノード宛ての閉塞制御パケット４０１を受信部８０３で受信した場合、スレーブノード自身の閉塞ポートの有無に係わらず、中継部８０７にて、閉塞状態通知パケット３０１や閉塞制御パケット４０１を中継し、送信部８０５にて送信する。
【００３７】
このようにして、マスタノード１００は、リング上の閉塞ポートの数を求め、「閉塞ポートの誤解除」もしくは「閉塞ポートの誤設定」を検出した場合、リング上の閉塞ポートの数が１となるように、リング上のポートを閉塞解除もしくは閉塞設定することにより、閉塞ポートが誤って解除されることによりループが発生する問題を回避し、閉塞ポートが複数箇所以上誤って設定されることにより通信経路が分断される問題を回避することができる。
【００３８】
ここで、マスタノード１００自身の閉塞ポートの検出する周期と、スレーブノードの閉塞状態通知パケット３０１の送信周期と、リング状態監視データベース部７０１の監視周期と、リング状態監視データベース部７０１を消去する周期とを短くすることにより、閉塞ポートの誤解除、誤設定をより高速に、よりリアルタイムに検出可能となり、かつより高速に正常なリング型ネットワークに復旧可能となる。
【００３９】
実施の形態２．
次に、実施の形態２に係るリング型ネットワークについて説明する。実施の形態１に係るリング型ネットワークでは、図９のように、障害９０が発生した（ノード間の通信が不可能な経路が存在する）場合で、かつ、閉塞ポートの誤設定（閉塞ポート５４）が生じた場合、マスタノード１００が、閉塞ポート５４ではなく、閉塞ポート５２、閉塞ポート５３を解除する可能性があり、その結果、通信経路が分断されたままとなる可能性がある。
【００４０】
そこで、実施の形態２に係るリング型ネットワークは、障害９０の発生の可能性を考慮し、マスタノード１００が、閉塞ポート５４と、障害９０が発生しているノードの閉塞ポート５２、閉塞ポート５３とを識別できるよう、例えば、図１０に示す閉塞状態通知パケット３０１に障害情報を付加させた閉塞状態通知パケット３０２により、障害情報を持つ閉塞ポート以外の閉塞ポートを解除し、通信経路が分断されないようにしたものである。
【００４１】
以下、図９を基本に、図１０、図１１、図１２、図１３、図１４を使用して実施の形態２に係るリング型ネットワークについて説明する。なお、閉塞制御パケットは実施の形態１と同様である。
【００４２】
図１０は、閉塞ポートを持つスレーブノードが、閉塞ポートを持つことと、通信が不可能な経路（以下、障害という。）の有無とを、マスタノードに対して通知する閉塞状態通知パケット３０２のパケットフォーマットの一例を示す説明図である。  
【００４３】
図１１は、マスタノードの動作を示すフローチャートの一例である。各ステップの処理のうち、実施の形態１と同様である処理に関しては、同じ符号を付して説明を省略する。
【００４４】
図１２は、マスタノードの動作を示すマスタノードの内部ブロック図の一例である。各ブロックの内、実施の形態１と同様である処理に関しては、同じ符号を付して説明を省略する。
【００４５】
図１３は、スレーブノードの動作を示すフローチャートの一例である。各ステップの処理のうち、実施の形態１と同様である処理に関しては、同じ符号を付して説明を省略する。また、図１４は、スレーブノードの動作を示すスレーブノードの内部ブロック図の一例である。
【００４６】
次に図９に示すように、障害９０が発生し、かつ、「閉塞ポートの誤設定」により、リング上に閉塞ポートが複数箇所存在して通信経路が分断されているリング型ネットワークにおいて、マスタノード１００が、障害が発生していない閉塞ポート５４（ノード間の通信が論理的に可能）の「閉塞ポートの誤設定」を検出する動作について説明する。なお、復旧動作の処理、即ち、スレーブノードに対する閉塞制御パケットの通知に関しては、実施の形態１と同じ処理のため、説明を省略する。
【００４７】
スレーブノード２００、２０１は、障害９０の発生によりポートを閉塞している閉塞ポート５２、５３を、障害を持つ閉塞ポートとして検出し、図１０に示すように閉塞ポートの状態（スレーブノード２００の場合：障害有り、ポート１を閉塞、スレーブノード２０１の場合：障害有り、ポート２を閉塞）を付加した閉塞状態通知パケット３０２を送信する。一方、スレーブノード２０４の閉塞ポート５４は障害が発生していないため、図１０に示すように閉塞ポートの状態（障害無し、ポート２を閉塞）を付加した閉塞状態通知パケット３０２を送信する。マスタノード１００はスレーブノード２００、２０１、２０４から送信された閉塞状態通知パケット３０２を受信し、各閉塞状態通知パケット３０２の閉塞ポートの状態を解析することで、障害が発生していない閉塞ポート５４（ノード間の通信が論理的に可能）の「閉塞ポートの誤設定」を検出する。
【００４８】
次に図１１と図１２を用いて、マスタノードの「閉塞ポートの誤設定」を検出する動作について説明する。
マスタノード１００は、リング上に存在する閉塞ポートの状態（例えば、ノードのＭＡＣアドレス、閉塞ポートの有無、ポートの障害の有無）を、リング状態監視データベース部７０１ａにて管理する。例えば、図９において、マスタノード１００は、リング状態監視データベース部７０１ａにて、自ノードのポート１、ポート２の閉塞ポートの有無と障害の有無と、スレーブノード２００、２０１、２０４のＭＡＣアドレス、ポート１、ポート２の閉塞ポートの有無と障害の有無とを管理している。
【００４９】
マスタノード１００は、閉塞ポート検出部７０２ａにて、マスタノード１００自身の閉塞ポートの状態変化（閉塞ポートの有無、障害の有無）を検出したとき（Ｓ５０１ａ）、制御部７００ａにてリング状態監視データベース部７０１ａの閉塞ポートの有無、障害の有無を更新する（Ｓ５０３ａ）。また、スレーブノードからの閉塞状態通知パケット３０２を受信部７０３にて受信（Ｓ５０２）し、閉塞状態通知パケット検出部７０４で閉塞ポートと障害の有無を検出したとき、制御部７００ａにて、閉塞状態通知パケット３０２の送信元アドレス、ポート１、ポート２の閉塞ポートの有無、障害の有無を元に、リング状態監視データベース部７０１ａを更新する。制御部７００ａは、リング状態監視データベース部７０１ａが更新されたとき、もしくは一定周期、もしくは不定期に、リング状態監視データベース部７０１ａを監視することで、リング型ネットワーク上の障害発生の有無と、障害が発生しているポート以外の閉塞ポートの数（以下、障害以外の閉塞ポート数）を求める（Ｓ５００）。
【００５０】
制御部７００ａは、リング型ネットワーク上に障害が発生していた場合で、かつ、障害以外の閉塞ポート数が０のとき、リング型ネットワーク上に「閉塞ポートの誤設定」が無いことを認識する。リング型ネットワーク上に障害が発生していた場合で、かつ、障害以外の閉塞ポートの数が１以上のとき、「閉塞ポートの誤設定」を検出し、リング型ネットワーク上にある障害以外の閉塞ポート数が０となるように、閉塞解除するノードとそのポートを決定する（Ｓ５０４ａ）。なお、リング型ネットワークに障害が発生していない場合の閉塞解除、もしくは閉塞設定するノードとそのポートを決定する動作については、実施の形態１と同じ処理のため、説明を省略する。また、閉塞制御パケット４０１の生成、及び送信方法も、実施の形態１と同じ処理のため、説明を省略する。
【００５１】
次に図１３と図１４を用いて、スレーブノードの閉塞状態通知パケット３０２を生成する動作について説明する。閉塞制御パケット４０１受信時の動作に関しては、実施の形態１と同じ処理のため、説明を省略する。
【００５２】
スレーブノードは、例えば、閉塞ポート検出部８０２ａにて自ノードの閉塞ポート、障害（通信が不可能な経路）の発生を検出した場合（Ｓ６０２、Ｓ６０５）、制御部８００ａは、閉塞状態通知パケット生成部８０６ａにて、閉塞ポートと障害の情報を付加した閉塞状態通知パケット３０２を生成し（Ｓ６０３ａ）し、送信部８０５から送信する（Ｓ６０４）。
【００５３】
このようにして、マスタノード１００は、リング型ネットワーク上の障害の有無、閉塞ポートの数を監視することにより、障害が発生しているリング型ネットワーク上においても、「閉塞ポートの誤設定」を検出、復旧でき、「閉塞ポートの誤設定」による通信経路の分断を回避できる。
【００５４】
実施の形態３．
次に、実施の形態３に係るリング型ネットワークについて説明する。実施の形態２に係るリング型ネットワークでは、図１５のように、障害９０が発生している場合で、かつ、誤設定された閉塞ポート５５が存在し、かつ、スレーブノード２０３の故障により閉塞ポート５５の閉塞状態通知パケットを生成できない場合、マスタノード１００が閉塞ポート５５の誤設定を検出できないという問題がある。
【００５５】
そこで、実施の形態３に係るリング型ネットワークでは、実施の形態２にて、閉塞ポート、障害情報を持つスレーブノードとマスタノード１００間のみの通信以外に、マスタノード１００が、全てのノードに対して、閉塞ポート、障害の有無を要求する監視パケットを送信し、監視パケットを受信した全てのスレーブノードが、マスタノード１００に対し監視応答パケットを送信し応答する。これにより、マスタノード１００は、スレーブノード２０３からの監視応答パケットが受信できないため、スレーブノード２０３にて故障が発生していることを把握できるネットワークを提供できる。
【００５６】
次に、図１５を基本に、図１６、図１７、図１８を用いてスレーブ２０３にて故障が発生していることを把握する動作について説明する。ここで、監視応答パケット４０３のパケットフォーマットは実施の形態２での図１０に示す閉塞状態通知パケット３０２と同様である。また、マスタノード１００がリング上の閉塞ポート、障害の有無を求め、閉塞制御パケット４０１を送信する処理は、実施の形態２で示した図１１のフローチャートと同じ処理のため、説明を省略する。
【００５７】
マスタノード１００は、一定周期、または不定期に、リング型ネットワーク上の閉塞ポート、障害の有無を検出するために、監視パケット生成部７０７にて監視パケット５０３を生成し、送信部７０５にてポート１、ポート２から２方向に全スレーブノード宛てに送信する。監視パケット５０３は、実施の形態１、２での閉塞状態通知パケット３０１、３０２、閉塞制御パケット４０１と同様、閉塞ポートが存在していたとしても、閉塞ポートで廃棄されることなく中継される。
【００５８】
全スレーブノードは、監視パケット５０３を受信部８０３で受信し（Ｓ６０７）、監視パケット検出部８０４ｂにてポートの情報（ポートの閉塞の有無、障害の有無）を検出する（Ｓ６０８）。
【００５９】
監視パケット検出部８０４ｂにて得られたポートの情報を元に、実施の形態２の閉塞状態通知パケット生成部８０６ａと同様の処理にて、制御部８００ｂは監視応答パケット生成部８０６ｂにて監視応答パケット４０３を生成し（Ｓ６０５）、送信部８０５にて送信する（Ｓ６０４ｂ）。
【００６０】
マスタノード１００は、受信部７０３にて各スレーブノードが送信した監視応答パケット４０３を受信し、監視応答パケット検出部７０４ｂにて、スレーブノードの閉塞ポート、障害の有無を検出する。制御部７００ｂは、リング状態監視データベース部７０１ｂにて全スレーブノード毎に閉塞ポート、障害の有無を更新する。
【００６１】
ここで、スレーブノード２０３は故障しているため、監視応答パケット４０３を監視応答パケット生成部８０６ｂで生成できず、マスタノード１００はスレーブノード２０３からの監視応答パケット４０３を検出できないため、スレーブノード２０３にて故障が発生していることを把握できる。
【００６２】
このように、マスタノード１００は、マスタノードより監視パケット５０３を送信し、スレーブノードからの監視応答パケット４０３の到達確認をすることにより、故障が発生しているノードを検出でき、信頼性の高いネットワークを提供できる。
【００６３】
ここで、リング型ネットワークに障害が発生していない場合、リング上にある全ノードのＭＡＣアドレス、閉塞ポートをリング状態監視データベース部７０１ｂにて管理している。例えば、図１５において、スレーブノード２０３が閉塞状態通知パケットを生成できないだけでなく、監視応答パケットを中継できない故障であった場合、マスタノード１００はスレーブノード２０１、２０２、２０３の監視応答パケットを受信できないため、スレーブノード２０１、２０２、２０３で通信経路が分断されていることも把握できる。
【００６４】
実施の形態４．
次に、実施の形態４に係るリング型ネットワークについて説明する。実施の形態１乃至３に係るリング型ネットワークにおいて、故障などで閉塞制御パケット４０１によるポートの閉塞解除や、閉塞設定ができない場合、通信経路が分断されたままとなる可能性がある。そこで、実施の形態４に係るリング型ネットワークでは、図１９に一例を示すように、閉塞制御パケット４０１を受信したスレーブノードが、閉塞ポート５１の閉塞解除に失敗した場合、閉塞解除の失敗を通知する閉塞制御応答パケット４０２をマスタノード１００宛に返信することで、マスタノード１００は、スレーブノード２０２の故障を検出できる。さらに、マスタノード１００が、スレーブノード２０２の故障を検出した場合、閉塞ポート５０の閉塞を解除することにより、通信経路の分断を回避できる。ここで、閉塞制御応答パケット４０２は閉塞解除や、閉塞設定に失敗したときのみに、マスタノード１００に通知しても構わない。
【００６５】
次に、図１９を基本に、図２０、図２１、図２２、図２３を用いて、閉塞ポート５１の閉塞解除を通知する閉塞制御パケット４０１を受信したスレーブノード２０２が閉塞ポート５１で閉塞解除が出来ない場合において、通信経路が分断されたままになることを回避する動作について説明する。
【００６６】
図１９において、スレーブノード２０２は、閉塞ポート５１の閉塞解除を通知する閉塞制御パケット４０１を閉塞制御パケット部８０４で検出し、制御部８００ｃにて閉塞ポート５１の閉塞解除を行う。一定期間後、制御部８００ｃは閉塞ポート検出部８０２ｃを用いて閉塞解除の成否を確認する（Ｓ６０８）。
【００６７】
制御部８００ｃはマスタノード１００宛てに閉塞解除の成否を通知する閉塞制御応答パケット４０２を閉塞制御応答パケット生成部８０８で生成し（Ｓ６０９）、送信部８０５にて送信する（Ｓ６１０）。
【００６８】
閉塞制御応答パケット４０２を受信したマスタノード１００は、受信部７０３にて受信し（Ｓ５０８）、閉塞制御応答パケット検出部７０４ｃにて、閉塞解除の成否を検出し、制御部７００ｃは、リング状態監視データベース部７０１ｃの閉塞の成否を更新する（Ｓ５０３ｃ）。ここで、マスタノード１００は、リング上に存在する閉塞ポートの状態（例えば、ノードのＭＡＣアドレス、閉塞ポートの有無、ポートの障害の有無、閉塞制御の成否結果）を、リング状態監視データベース部７０１ｃにて管理している。制御部７００ｃは、リング状態監視データベース部７０１ｃが更新されたとき、もしくは一定周期、もしくは不定期に、リング状態監視データベース部７０１ｃを監視し（Ｓ５００）、閉塞設定を失敗したポート以外の閉塞ポート５０を閉塞解除するポートとして決定する（Ｓ５０４ｃ）。
【００６９】
その後、閉塞ポート５０を閉塞解除することにより（Ｓ５０５）、通信経路が分断されたままになることを回避できる。
【００７０】
このように、故障などで閉塞制御パケット４０１によるポートの閉塞解除や、閉塞設定ができない場合、マスタノード１００は、スレーブノード２０２からの閉塞解除の失敗の通知を受け、スレーブノード２０２の閉塞ポート５１を閉塞解除できないことを認識する。さらに、閉塞ポート５０の閉塞を解除することにより、通信経路の分断を回避でき、信頼性の高いリング型ネットワークを実現できる。
【００７１】
また、マスタノード１００は閉塞制御パケット４０１を送付したにも係わらず、閉塞制御応答パケット４０２を一定期間、受信しない場合は、閉塞制御応答パケット４０２の宛先であるスレーブノードに故障が発生したと判断しても構わない。その場合、閉塞ポート５０を解除することにより、通信経路の分断を回避することが可能である。
【符号の説明】
【００７２】
１、２  ポート
５０、５１、５２、５３、５４、５５  閉塞ポート
９０  障害
１００  マスタノード
２００、２０１、２０２、２０３、２０４  スレーブノード
３０１、３０２  閉塞状態通知パケット
４０１  閉塞制御パケット
４０２  閉塞制御応答パケット
４０３  監視応答パケット
５０３  監視パケット７００、７００ａ、７００ｂ，７００ｃ、８００、８００ａ、８００ｂ、８００ｃ  制御部
７０１、７０１ａ、７０１ｂ、７０１ｃ  リング状態監視データベース部
７０２、７０２ａ、８０２、８０２ａ  閉塞ポート検出部
７０３、８０３  受信部
７０４、７０４ａ、７０４ｂ  閉塞状態通知パケット検出部
７０４ｃ  閉塞制御応答パケット検出部
７０５、８０５  送信部
７０６  閉塞制御パケット生成部
７０７  監視パケット生成部
８０２ｃ  閉塞ポート検出部
８０４  閉塞制御パケット検出部
８０４ｂ  監視パケット検出部
８０６、８０６ａ  閉塞状態通知パケット生成部
８０６ｂ  監視応答パケット生成部
８０７  中継部
８０８  閉塞制御応答パケット生成部
【図１】
2010226318.tif 000003
【図２】
2010226318.tif 000004
【図３】
2010226318.tif 000005
【図４】
2010226318.tif 000006
【図５】
2010226318.tif 000007
【図６】
2010226318.tif 000008
【図７】
2010226318.tif 000009
【図８】
2010226318.tif 000010
【図９】
2010226318.tif 000011
【図１０】
2010226318.tif 000012
【図１１】
2010226318.tif 000013
【図１２】
2010226318.tif 000014
【図１３】
2010226318.tif 000015
【図１４】
2010226318.tif 000016
【図１５】
2010226318.tif 000017
【図１６】
2010226318.tif 000018
【図１７】
2010226318.tif 000019
【図１８】
2010226318.tif 000020
【図１９】
2010226318.tif 000021
【図２０】
2010226318.tif 000022
【図２１】
2010226318.tif 000023
【図２２】
2010226318.tif 000024
【図２３】
2010226318.tif 000025