(57)【要約】【課題】複雑な制御を必要とすることなく、精度よくループ発生を検出する。【解決手段】ループ検出初期設定部１３Ａにより、自ノードが通信経路のトポロジーにおけるルートノードとして動作している場合、当該ルートノード以外の他ノードに対して送信するＢＰＤＵの転送カウンタ値を初期化し、ループ検出処理部１３Ｂにより、自ノードが他ノードとして動作している場合、自ノードに隣接する一方の隣接ノードからＢＰＤＵを受信して他方の隣接ノードへ転送する際に、当該ＢＰＤＵから取得した転送カウンタ値とカウンタ基準値との比較結果に応じて、通信経路でのループ発生を検出し、当該ＢＰＤＵから取得した転送カウンタ値がカウンタ基準値以下の場合には、転送するＢＰＤＵの転送カウンタ値をインクリメントする。【選択図】  図１
2011024000.tif 000002
【特許請求の範囲】
【請求項１】
リング状の通信経路を介して複数のノードを接続することによりこれらノード間のデータ通信を実現するリング型イーサネットシステムで用いられるノードであって、
前記通信経路を介して前記ノードとの間でＢＰＤＵ（Bridge Protocol Data Unit）をやり取りすることにより、ＲＳＴＰ（Rapid Spanning Tree Protocol）に基づいて前記通信経路に対する冗長制御を行うとともに、前記ＢＰＤＵの送信時に当該ＢＰＤＵが前記各ノードで転送された回数を計数するための転送カウント値を格納して送信するＲＳＴＰ処理部と、
自ノードが前記通信経路のトポロジーにおけるルートノードとして動作している場合、当該ルートノード以外の他ノードに対して送信する前記ＢＰＤＵの前記転送カウンタ値を初期化するループ検出初期設定部と、
自ノードが前記他ノードとして動作している場合、自ノードに隣接する一方の隣接ノードから前記ＢＰＤＵを受信して他方の隣接ノードへ転送する際に、当該ＢＰＤＵから取得した転送カウンタ値とカウンタ基準値との比較結果に応じて、前記通信経路でのループ発生を検出し、当該ＢＰＤＵから取得した転送カウンタ値が前記カウンタ基準値以下の場合には、転送するＢＰＤＵの転送カウンタ値をインクリメントするループ検出処理部と
を備えることを特徴とするノード。
【請求項２】
請求項１に記載のノードにおいて、
前記ループ検出処理部は、前記転送カウンタ値が前記カウンタ基準値を上回る場合、当該ＢＰＤＵを受信した通信ポートに対してデータ通信用フレームの転送動作の停止を設定することを特徴とするノード。
【請求項３】
請求項２に記載のノードにおいて、
前記ＲＳＴＰ処理部は、前記ループ検出処理部でのデータ通信用フレームの転送動作停止に応じて、自ノードの隣接ノードとの間でＲＳＴＰに基づく接続確立処理を開始することを特徴とするノード。
【請求項４】
リング状の通信経路を介して複数のノードを接続することによりこれらノード間のデータ通信を実現するリング型イーサネットシステムで用いられるネットワーク制御方法であって、
ＲＳＴＰ処理部が、前記通信経路を介して前記ノードとの間でＢＰＤＵ（Bridge Protocol Data Unit）をやり取りすることにより、ＲＳＴＰ（Rapid Spanning Tree Protocol）に基づいて前記通信経路に対する冗長制御を行うとともに、前記ＢＰＤＵの送信時に当該ＢＰＤＵが前記各ノードで転送された回数を計数するための転送カウント値を格納して送信するＲＳＴＰ処理ステップと、
ループ検出初期設定部が、自ノードが前記通信経路のトポロジーにおけるルートノードとして動作している場合、当該ルートノード以外の他ノードに対して送信する前記ＢＰＤＵの前記転送カウンタ値を初期化するループ検出初期設定ステップと、
ループ検出処理部が、自ノードが前記他ノードとして動作している場合、自ノードに隣接する一方の隣接ノードから前記ＢＰＤＵを受信して他方の隣接ノードへ転送する際に、当該ＢＰＤＵから取得した転送カウンタ値とカウンタ基準値との比較結果に応じて、前記通信経路でのループ発生を検出し、当該ＢＰＤＵから取得した転送カウンタ値が前記カウンタ基準値以下の場合には、転送するＢＰＤＵの転送カウンタ値をインクリメントするループ検出処理ステップと
を備えることを特徴とするネットワーク制御方法。
【請求項５】
請求項４に記載のネットワーク制御方法において、
前記ループ検出処理ステップは、前記転送カウンタ値が前記カウンタ基準値を上回る場合、当該ＢＰＤＵを受信した通信ポートに対してデータ通信用フレームの転送動作の停止を設定するステップを含むことを特徴とするネットワーク制御方法。
【請求項６】
請求項５に記載のネットワーク制御方法において、
前記ＲＳＴＰ処理ステップは、前記ループ検出処理ステップでのデータ通信用フレームの転送動作停止に応じて、自ノードの隣接ノードとの間でＲＳＴＰに基づく接続確立処理を開始するステップを含むことを特徴とするネットワーク制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、イーサネット（登録商標）通信技術に関し、特にＲＳＴＰ（Rapid Spanning Tree Protocol）に基づきツリートポロジーを形成してデータ通信を実現するリング型イーサネットの制御技術に関する。
【背景技術】
【０００２】
ビル設備やプラント設備を監視制御する監視制御システムでは、情報収集機能や制御機能などの各種機能を有する通信機器をノードとして通信ネットワークを介して接続し、これらノード間でデータ通信を行うことにより、中央監視装置で個々の設備を監視制御するものとなっている。このような監視制御システムでは、通信ネットワークとしてイーサネットが用いられ、各ノード間でデータ通信用のＭＡＣフレームである通信フレームをやり取りすることにより、上位アプリケーションにおけるデータ通信が実現される。
【０００３】
イーサネットでは、複数のノードを接続する際、ハブやスイッチに各ノードをそれぞれ接続するスター配線方式が基本である。このようなスター配線方式は、比較的規模の小さいオフィス環境には適合するものの、ビル設備やプラント設備などの大規模な設備には必ずしも適合しない。その理由としては、スター配線方式では、ハブやスイッチと各ノードとをそれぞれ個別の配線を介して接続する必要があり、広範囲にわたってノードが設置されている場合には、ノード間を結ぶ配線が複雑化し、配線工事やメンテナンスの作業負担が増大するからである。
【０００４】
このようなイーサネットにおいて、各ノードをリング状に接続するリング型イーサネットが提案されている（例えば、特許文献１など参照）。このリング型イーサネットは、通信経路内に存在するリングトポロジーによる通信エラーを回避するＳＴＰ(Spanning Tree Protocol/IEEE 802.1D)機能や、これを改良したＲＳＴＰ（Rapid Spanning Tree Protocol/IEEE 802.1w）機能などの冗長制御機能を用いて、ノード間でＢＰＤＵ（Bridge Protocol Data Unit）と呼ばれる冗長制御用のＭＡＣフレームである制御フレームをやり取りすることにより、システムの冗長化を実現することが可能となる。
【０００５】
図８は、典型的なリング型イーサネットシステムの構成例である。ここでは、５つのノードＮ１〜Ｎ５がリングにリング接続されている。通常、ノードに搭載されているＲＳＴＰの冗長制御処理では、リング接続されているノードのうちから１つのルートノード、例えばＭＡＣアドレスの最も小さいノードを選択する。図８の例では、ノードＮ１がルートノードとして選択されている。
この後、ルートノードと他ノードとの間で制御フレームでやり取りすることにより、例えばノード間のコストやノードの優先順位に基づいてツリートポロジーの現用系通信経路を設定する。
【０００６】
具体的には、ルートノードを基準として、ルートノードからコストの最も高いノード間を結ぶセグメントを現用系通信経路以外の不要経路として選択し、この不要経路に接続された一方のノードのポートをブロッキングすることにより、障害時のバックアップ系通信経路として設定する。
この際、コストとしては、ルートノードから任意のノードまでの間に位置するノード台数に比例するパラメータが用いられ、その最大コストとなるノード間でブロッキングされる。
【０００７】
図８の例では、ノードが１つ増えるごとにコストが１００ずつ増加しているため、ルートノードＮ１から左回りでノードＮ４までの最大コスト２００となり、ノードＮ３とノードＮ４の間を結ぶセグメントが不要経路と判断される。そして、この不要経路の端点に接続されているノードＮ３，Ｎ４のいずれか一方、例えばＭＡＣアドレスの大きい方のノードＮ４のポートでブロッキングされる。
このため、リングトポロジーからなる元のリングが、ルートノードＮ１からノードＮ３およびノードＮ４までの２つの枝経路からなるツリートポロジーに変更される。これにより、物理的にリングトポロジーを形成しているネットワークであっても、データループの発生が回避される。
【０００８】
このようにして、ツリートポロジーが形成された後、ＲＳＴＰの冗長制御処理は、ヘルシチェック段階へ移行する。図９は、ヘルシチェック動作を示す説明図である。ヘルシチェック段階では、ルートノードＮ１からノードＮ２方向とノードＮ５方向の２方向へ、障害監視用の制御フレームでForwarding ＢＰＤＵを用いたヘルスチェックメッセージが定期的に送信される。各ノードＮ２〜Ｎ５は、ルートノードＮ１からのヘルスチェックメッセージを正常に受信した場合、後続のノードへ転送する。したがって、ヘルスチェックメッセージが正常に受信できない場合、ルートノードＮ１側に隣接するノードとの間のセグメントで障害が発生したことが確認できる。
【０００９】
このような場合、障害発生を確認したノードからルートノードとは逆方向へ再構築要求が送信される。この再構築要求の受信に応じて、ブロッキングしているノードは、当該ブロッキングを解除する。これにより、ブロッキングされていたバックアップ系通信経路が利用されて、新たな通信経路が再構築される。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００５−１０９８４６号公報
【特許文献２】特開２００７−０３６８２４号公報
【特許文献３】特開２００７−０５３４２１号公報
【特許文献４】特開２００６−２１７４９６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
このようなリング型イーサネットシステムは、ＲＳＴＰの冗長制御処理が誤動作するなどの原因により、各ノードがリング状に接続されてループが形成される場合がある。例えば、ルートノードの機能が喪失されるとともにブロッキングが解除されてしまった場合、ノード間の通信帯域が急速に減少し、最終的には通信不能となる。
従来、フェールセーフの観点から、このようなループが形成された場合でも、自動的にループ形成を検出して通信不能を回避するためのループ検出技術が提案されている（例えば、特許文献２−４など参照）。
【００１２】
これらループ検出技術は、ノードでの通信状況を監視することによりループ発生を検出する受動的検出方法と、ループ発生を検出する専用の検出フレームを別個に送受信する能動的検出方法とに大別される。
このうち受動的検出方法の具体例としては、ノードのＭＡＣアドレス記憶テーブルが頻繁に書き換わることを監視したり、同一フレームが複数回にわたり受信されることを監視したり、ブロードキャストフレームの流量を監視したりする方法がある。
また、能動的検出方法の具体例としては、各ノードにマスタースレーブ機能を追加して専用の検出フレームを送受信する方法である。
【００１３】
しかしながら、このような従来技術では、複雑な制御を必要とするだけではなく、精度よくループ発生を検出することができないという問題点があった。
すなわち、受動的検出方法では、ノードでの通信状況を監視する際、監視対象に対する検出基準が曖昧であり、またアプリケーションごとに検出基準を調整する必要が出てくることから、精度よくループを検出することが難しい。また、能動的検出方法では、ノードに複雑な制御機能を実装する必要があり、ノードに対する処理負担やコストが増大する。
【００１４】
本発明はこのような課題を解決するためのものであり、リング型イーサネットシステムにおけるＲＳＴＰの冗長制御について、複雑な制御を必要とすることなく、精度よくループ発生を検出できるネットワーク制御技術を提供することを目的としている。
【課題を解決するための手段】
【００１５】
このような目的を達成するために、本発明にかかるノードは、リング状の通信経路を介して複数のノードを接続することによりこれらノード間のデータ通信を実現するリング型イーサネットシステムで用いられるノードであって、通信経路を介してノードとの間でＢＰＤＵをやり取りすることにより、ＲＳＴＰに基づいて通信経路に対する冗長制御を行うとともに、ＢＰＤＵの送信時に当該ＢＰＤＵが各ノードで転送された回数を計数するための転送カウント値を格納して送信するＲＳＴＰ処理部と、自ノードが通信経路のトポロジーにおけるルートノードとして動作している場合、当該ルートノード以外の他ノードに対して送信するＢＰＤＵの転送カウンタ値を初期化するループ検出初期設定部と、自ノードが他ノードとして動作している場合、自ノードに隣接する一方の隣接ノードからＢＰＤＵを受信して他方の隣接ノードへ転送する際に、当該ＢＰＤＵから取得した転送カウンタ値とカウンタ基準値との比較結果に応じて、通信経路でのループ発生を検出し、当該ＢＰＤＵから取得した転送カウンタ値がカウンタ基準値以下の場合には、転送するＢＰＤＵの転送カウンタ値をインクリメントするループ検出処理部とを備えている。
【００１６】
この際、ループ検出処理部で、転送カウンタ値がカウンタ基準値を上回る場合、当該ＢＰＤＵを受信した通信ポートに対してデータ通信用フレームの転送動作の停止を設定するようにしてもよい。
【００１７】
また、ＲＳＴＰ処理部で、ループ検出処理部でのデータ通信用フレームの転送動作停止に応じて、自ノードの隣接ノードとの間でＲＳＴＰに基づく接続確立処理を開始するようにしてもよい。
【００１８】
また、本発明にかかるネットワーク制御方法は、リング状の通信経路を介して複数のノードを接続することによりこれらノード間のデータ通信を実現するリング型イーサネットシステムで用いられるネットワーク制御方法であって、ＲＳＴＰ処理部が、通信経路を介してノードとの間でＢＰＤＵをやり取りすることにより、ＲＳＴＰに基づいて通信経路に対する冗長制御を行うとともに、ＢＰＤＵの送信時に当該ＢＰＤＵが各ノードで転送された回数を計数するための転送カウント値を格納して送信するＲＳＴＰ処理ステップと、ループ検出初期設定部が、自ノードが通信経路のトポロジーにおけるルートノードとして動作している場合、当該ルートノード以外の他ノードに対して送信するＢＰＤＵの転送カウンタ値を初期化するループ検出初期設定ステップと、ループ検出処理部が、自ノードが他ノードとして動作している場合、自ノードに隣接する一方の隣接ノードからＢＰＤＵを受信して他方の隣接ノードへ転送する際に、当該ＢＰＤＵから取得した転送カウンタ値とカウンタ基準値との比較結果に応じて、通信経路でのループ発生を検出し、当該ＢＰＤＵから取得した転送カウンタ値がカウンタ基準値以下の場合には、転送するＢＰＤＵの転送カウンタ値をインクリメントするループ検出処理ステップとを備えている。
【００１９】
この際、ループ検出処理ステップに、転送カウンタ値がカウンタ基準値を上回る場合、当該ＢＰＤＵを受信した通信ポートに対してデータ通信用フレームの転送動作の停止を設定するステップを含んでもよい。
【００２０】
また、ＲＳＴＰ処理ステップに、ループ検出処理ステップでのデータ通信用フレームの転送動作停止に応じて、自ノードの隣接ノードとの間でＲＳＴＰに基づく接続確立処理を開始するステップを含んでもよい。
【発明の効果】
【００２１】
本発明によれば、リングＬに無限ループ状態が発生した場合でも、その無限ループ状態によりＢＰＤＵが繰り返し転送される回数を、ＢＰＤＵに格納されている転送カウンタ値で確認することができる。このため、複雑な制御を必要とすることなく、精度よくループ発生を検出できる。
【図面の簡単な説明】
【００２２】
【図１】本実施の形態にかかるノードの要部構成を示すブロック図である。
【図２】ＢＰＤＵのフレーム構成例である。
【図３】ループ検出初期設定処理を示すフローチャートである。
【図４】ループ検出処理を示すフローチャートである。
【図５Ａ】リング確立時のループ検出動作を示す説明図である。
【図５Ｂ】リング確立時のループ検出動作（続き）を示す説明図である。
【図５Ｃ】リング確立時のループ検出動作（続き）を示す説明図である。
【図６Ａ】障害発生時のループ検出動作を示す説明図である。
【図６Ｂ】障害発生時のループ検出動作を（続き）示す説明図である。
【図６Ｃ】障害発生時のループ検出動作を（続き）示す説明図である。
【図６Ｄ】障害発生時のループ検出動作を（続き）示す説明図である。
【図７Ａ】障害復旧時のループ検出動作を示す説明図である。
【図７Ｂ】障害復旧時のループ検出動作を（続き）示す説明図である。
【図８】典型的なリング型イーサネットシステムの構成例である。
【図９】ヘルシチェック動作を示す説明図である。
【発明を実施するための形態】
【００２３】
次に、本発明の一実施の形態について図面を参照して説明する。
［本実施の形態の構成］
まず、図１を参照して、本実施の形態にかかるノードについて説明する。図１は、本実施の形態にかかるノードの要部構成を示すブロック図である。
【００２４】
このノードＮは、リング型イーサネットシステムを構築するデータ通信用のノードである。これらノードＮは、リング状の通信経路からなるリングＬで接続されており、ＲＳＴＰ（Rapid Spanning Tree Protocol）に基づいてリングＬに対する冗長制御処理を行うことによりツリートポロジーを構築し、任意のノード間でデータ通信を行う機能を有している。
【００２５】
ノードＮには、主な機能部として、リング接続制御部１０とアプリケーション処理部２０が設けられている。
リング接続制御部１０は、リングＬを介して他ノードＮとの間のデータ通信（イーサネット準拠）を制御する機能を有している。
アプリケーション処理部２０は、リング接続制御部１０を介して他ノードＮとのイーサネット通信により、例えばビル設備やプラント設備を監視制御するための各種上位アプリケーション処理を実行する機能を有している。
【００２６】
リング接続制御部１０には、主な処理部として、ＭＡＣ処理部１１，１２、ＲＳＴＰ処理部１３、および転送処理部１４が設けられている。
ＭＡＣ処理部１１は、リング接続用のポートＰ１を介してリングＬの一端Ｌ１と接続し、各ノードＮとの間で各種ＭＡＣフレームを送受信する機能と、ＲＳＴＰ処理部１３によりポートＰ１に対してブロッキングが設定されている場合、ポートＰ１について、データ通信用のＭＡＣフレームである通信フレームの送受信を規制し、冗長制御用のＭＡＣフレームである制御フレームのみを送受信する機能と、隣接ノードから受信した制御フレームをＲＳＴＰ処理部１３へ出力する機能とを有している。
【００２７】
ＭＡＣ処理部１２は、リング接続用のポートＰ２を介してリングＬの他端Ｌ２と接続し、各ノードＮとの間で各種ＭＡＣフレームを送受信する機能と、ＲＳＴＰ処理部１３によりポートＰ１に対してブロッキングが設定されている場合、ポートＰ２について、データ通信用のＭＡＣフレームである通信フレームの送受信を規制し、冗長制御用のＭＡＣフレームである制御フレームのみを送受信する機能と、隣接ノードから受信した制御フレームをＲＳＴＰ処理部１３へ出力する機能とを有している。
【００２８】
ＲＳＴＰ処理部１３は、ＭＡＣ処理部１１，１２とそれぞれ接続し、リングＬを介して他ノードとの間でＢＰＤＵ（Bridge Protocol Data Unit）と呼ばれる制御フレームをやり取りすることにより、ＲＳＴＰに基づいてリングＬに対する、ネットワークトポロジーの構築、ルートノードの決定、障害監視、障害復旧など、各種の冗長制御処理を行う機能と、ＢＰＤＵの送信時に当該ＢＰＤＵが各ノードで転送された回数を計数するための転送カウント値を格納して送信する機能とを有している。
【００２９】
ＲＳＴＰ処理部１３には、主な処理部として、ループ検出初期設定部１３Ａとループ検出処理部１３Ｂとが設けられている。
ループ検出初期設定部１３Ａは、自ノードがリングＬのトポロジーにおけるルートノードとして動作している場合、当該ルートノード以外の他ノードに対して送信するＢＰＤＵの転送カウンタ値を初期化する機能を有している。
【００３０】
ループ検出処理部１３Ｂは、自ノードが他ノードとして動作している場合、自ノードに隣接する一方の隣接ノードからＢＰＤＵを受信して他方の隣接ノードへ転送する際に、当該ＢＰＤＵから取得した転送カウンタ値とカウンタ基準値との比較結果に応じて、リングＬでのループ発生を検出する機能と、当該ＢＰＤＵから取得した転送カウンタ値がカウンタ基準値以下の場合には、転送するＢＰＤＵの転送カウンタ値をインクリメントする機能と、当該転送カウンタ値がカウンタ基準値を上回る場合には、当該ＢＰＤＵを受信した通信ポートに対してデータ通信用の通信フレームの転送動作の停止を設定する機能と、この転送動作停止の設定に応じて、ＲＳＴＰ処理部１３へルートノードとしてのＲＳＴＰ接続確立処理の開始を指示する機能とを有している。
【００３１】
図２は、ＢＰＤＵのフレーム構成例である。このＢＰＵＤフレームの構成例では、標準的なＢＰＤＵフレーム構成に、ルートノード以外のノードで当該ＢＰＤＵフレームが転送されるごとに値がインクリメントされる転送カウンタ値が付加されている。したがって、例えばリング型イーサネットシステムに接続されている総ノード数からなる基準値とこの転送カウンタ値とを比較することにより、当該ＢＰＤＵフレームがリングＬを一周したこと、すなわちループが発生していることを精度よく検出することができる。
【００３２】
この際、ＢＰＤＵフレームとして、ＲＳＴＰ処理部１３により、他ノードと定期的にやり取りされる、例えばヘルスチェックメッセージ用のForwarding ＢＰＤＵを用いれば、転送カウンタ値も定期的にやり取りすることができ、ループ発生を常時監視することが可能となる。
【００３３】
転送処理部１４は、ＭＡＣ処理部１１，１２から入力されたＭＡＣフレームを、当該ＭＡＣフレームに含まれる宛先情報に基づいて、これらＭＡＣ処理部１１，１２またはアプリケーション処理部２０のいずれかへ転送する機能と、アプリケーション処理部２０から入力されたＭＡＣフレームをＭＡＣ処理部１１，１２へ転送する機能とを有している。
【００３４】
［本実施の形態の動作］
次に、図３および図４を参照して、本実施の形態にかかるノードの動作について説明する。図３は、ループ検出初期設定処理を示すフローチャートである。図４は、ループ検出処理を示すフローチャートである。
【００３５】
ノードＮに対する電源供給が開始された場合、ＲＳＴＰ処理部１３は、ＲＳＴＰの冗長制御を開始し、自ノードと隣接する両隣接ノードとの間のセグメントについて接続確立処理（ハンドシェーク）を開始する。なお、本実施の形態において、ＲＳＴＰ処理部１３における各種冗長制御処理は、一般的な周知の冗長制御処理であり、ここでの詳細な説明は省略する。
【００３６】
ノードＮに対する電源供給の開始に応じて、ループ検出初期設定部１３Ａは、図３のループ検出処理を開始する。
まず、ループ検出初期設定部１３Ａは、自ノード内の記憶部（図示せず）に保存されている、ＲＳＴＰ処理部１３における隣接ノードとのＲＳＴＰ接続確立状況を確認し（ステップ１００）、自ノードのポートＰ１，Ｐ２のいずれか一方で隣接ノードとの間のセグメントについて接続が確立するまで待機する（ステップ１００：ＮＯ）。
【００３７】
一方、当該ノードＮにおいて、いずれか片側のポートに接続されている隣接ノードとの間のセグメントについて接続が確立した場合（ステップ１００：ＹＥＳ）、ループ検出初期設定部１３Ａは、前述と同様に記憶部を参照して、両側のポートに接続されている各隣接ノードとの間のセグメントについて接続が確立したか確認する（ステップ１０１）。
【００３８】
ここで、一方で隣接ノードとの間のセグメントでしか接続確立していない場合（ステップ１０１：ＮＯ）、ループ検出初期設定部１３Ａは、自ノードのポートＰ１，Ｐ２のうち接続確立が完了しているポートから送信するＢＰＤＵに格納する転送カウンタ値を初期化、例えばゼロにクリアし（ステップ１０２）、ステップ１００へ戻る。
各ポートＰ１，Ｐ２から送信するＢＰＤＵに格納する転送カウンタ値については、例えば前述した記憶部に保持しておき、ループ検出初期設定部１３Ａやループ検出処理部１３Ｂで、対応するポートの転送カウンタ値を更新すればよい。また、ＲＳＴＰ処理部１３で、この記憶部から対応するポートの転送カウンタ値を読み出して、送信するＢＰＤＵに格納すればよい。
【００３９】
一方、両側ポートの隣接ノードとの間のセグメントについてそれぞれ接続が確立している場合（ステップ１０１：ＹＥＳ）、ループ検出初期設定部１３Ａは、前述した記憶部を参照して、自ノードがルートノードか否かを確認する（ステップ１０３）。
ここで、自ノードがルートノードである場合（ステップ１０３：ＹＥＳ）、ループ検出初期設定部１３Ａは、自ノードの両ポートＰ１，Ｐ２から送信するＢＰＤＵに格納する転送カウンタ値を初期化、例えばゼロにクリアし（ステップ１０４）、ステップ１００へ戻る。また、自ノードがルートノードでない場合（ステップ１０３：ＮＯ）、ステップ１００へ戻る。
【００４０】
このようにして、ループ検出初期設定部１３Ａでのループ検出初期設定処理により、隣接ノードとの間のセグメントにおける接続確立状況に応じて、ポートごとに当該ポートから送信するＢＰＤＵに格納すべき転送カウンタ値が初期化される。
【００４１】
一方、自ノードがルートノード以外の他ノードで動作している場合、ループ検出処理部１３Ｂは、一方の隣接ノードからのＢＰＤＵの受信に応じて、図４のループ検出処理を実行する。
まず、ループ検出処理部１３Ｂは、受信したＢＰＤＵに格納されている転送カウンタ値を取得して、予め記憶部に設定されているカウンタ基準値と比較することにより、リングＬでのループ発生を検出する（ステップ１１０）
【００４２】
この際、当該転送カウンタ値がカウンタ基準値以下の場合（ステップ１１０：ＮＯ）、ループ発生なしと判定して（ステップ１１１）、前述した記憶部を参照し、リングＬでのループ発生を回避するためのブロッキングポートが、自ノードのポートＰ１，Ｐ２のいずれかに設定されているか確認する（ステップ１１２）。
【００４３】
ここで、自ノードにブロッキングポートが設定されていない場合（ステップ１１２：ＮＯ）、ループ検出処理部１３Ｂは、当該ＢＰＤＵを受信したポートとは反対側のポートについて、受信した元のＢＰＤＵの転送カウンタ値をインクリメント、すなわち自ノードでの転送回数１回分だけ加算することにより、当該ポートから送信するＢＰＤＵに格納する転送カウンタ値を算出して記憶部へ保存し（ステップ１１３）、一連のループ検出処理を終了する。
【００４４】
一方、自ノードにブロッキングポートが設定されている場合（ステップ１１２：ＹＥＳ）、ループ検出処理部１３Ｂは、当該ＢＰＤＵを受信したポートとは反対側のポートについて、当該ポートから送信するＢＰＤＵに格納する転送カウンタ値を初期化、ここではゼロにクリアして記憶部へ保存し（ステップ１１４）、一連のループ検出処理を終了する。
【００４５】
また、ステップ１１０において、受信したＢＰＤＵから取得した転送カウンタ値が、カウンタ基準値を上回っている場合（ステップ１１０：ＹＥＳ）、ループ検出処理部１３Ｂは、リングＬでループ発生ありと判定し（ステップ１１５）、自ノードのポートＰ１，Ｐ２のうち当該ＢＰＤＵを受信したポートのＭＡＣ処理部１１，１２のいずれかに対して、データ通信用の通信フレームの転送動作の停止を設定する（ステップ１１６）。
【００４６】
この後、ループ検出処理部１３Ｂは、ＲＳＴＰ処理部１３に対して、ルートノードとしての冗長制御処理の開始を指示し（ステップ１１７）、一連のループ検出処理を終了する。
これにより、ＲＳＴＰ処理部１３は、ループ検出処理部１３Ｂでのデータ通信用の通信フレームの転送動作停止に応じて、ルートノードとしての冗長制御処理を開始し、自ノードの隣接ノードとの間でＲＳＴＰに基づく接続確立処理を開始する。
【００４７】
［動作例］
次に、図５Ａ〜図７Ｂを参照して、本実施の形態にかかるノードの状態表示制御動作例について説明する。図５Ａ〜図５Ｃは、リング確立時のループ検出動作を示す説明図である。図６Ａ〜図６Ｄは、障害発生時のループ検出動作を示す説明図である。図７Ａ，図７Ｂは、障害復旧時のループ検出動作を示す説明図である。なお、各ノードには、カウンタ基準値として、ノード数より大きい値「７」が設定されているものとする。
【００４８】
［リング接続確立時］
まず、図５Ａ〜図５Ｃを参照して、リング接続確立時のループ検出動作について説明する。ここでは、ノードＮ１〜Ｎ５がリングＬによりリング状に接続されており、初期状態において、これらすべてのノードＮ１〜Ｎ５への電源供給が停止されている。
【００４９】
このような初期状態において、図５Ａに示すように、まず最初にノードＮ１，Ｎ２が電源投入された場合、ノードＮ１，Ｎ２以外のノードＮ３〜Ｎ５では電源投入されていないため、これらノードＮ１，Ｎ２間のセグメントについてのみ接続確立が完了する。ここで、例えばノードＮ１がルートノードに決定された場合、ノードＮ１は、ノードＮ２に対して、障害監視用ＢＰＤＵの定期的な送信を開始する。この際、障害監視用ＢＰＤＵには、ループ検出初期設定部１３Ａにより初期化された転送カウント値（ＣＮＴ＝０）が格納される。
【００５０】
ノードＮ２は、自ノードがルートノードではないことから、ルートノードＮ１からのＢＰＤＵの受信に応じて、当該ＢＰＤＵで通知された転送カウント値「０」とカウント基準値「７」とを比較し、転送カウント値がカウント基準値以下であり、かつ自ノードにブロッキングポートが設定されていないことから、当該ＢＰＤＵで通知された転送カウント値をインクリメントした値「１」を、ノードＮ１側とは反対側のポート用転送カウント値として算出する。この際、反対側ポートは接続確認されていないため、受信ＢＰＤＵが転送されることはない。
【００５１】
次に、図５Ｂに示すように、ノードＮ３，Ｎ５が電源投入された場合、ノードＮ２，Ｎ３間のセグメントとノードＮ１，Ｎ５間のセグメントで接続確立が完了する。
これにより、ノードＮ１から受信したＢＰＤＵが、ノードＮ２のうちノードＮ３側のポートから、ノードＮ３へ転送される。この際、このＢＰＤＵには、前述のとおり算出された転送カウント値（ＣＮＴ＝１）が格納される。
また、ノードＮ１は、ノードＮ５に対して、障害監視用ＢＰＤＵの定期的な送信を開始する。この際、障害監視用ＢＰＤＵには、ループ検出初期設定部１３Ａにより初期化された転送カウント値（ＣＮＴ＝０）が格納される。
【００５２】
この後、図５Ｃに示すように、ノードＮ４が電源投入された場合、ノードＮ３，Ｎ４間のセグメントとノードＮ４，Ｎ５間のセグメントで接続確立が完了する。
これにより、ノードＮ２から受信したＢＰＤＵが、ノードＮ３からノードＮ４へ転送される。この際、このＢＰＤＵには、前述と同様にして受信ＢＰＤＵの転送カウント値がノードＮ３でインクリメントされた新たな転送カウント値（ＣＮＴ＝２）が格納される。
また、ノードＮ１から受信したＢＰＤＵが、ノードＮ５からノードＮ４へ転送される。この際、このＢＰＤＵには、前述と同様にして受信ＢＰＤＵの転送カウント値がノードＮ５でインクリメントされた新たな転送カウント値（ＣＮＴ＝１）が格納される。
【００５３】
ここで、ノードＮ４において、ＲＳＴＰに基づきノードＮ３側のポートに対してブロッキングが設定されている場合、それぞれのポートからのＢＰＤＵの受信に応じて、反対側ポートに関する転送カウント値が初期化される。なお、ノードＮ４にブロッキングポートが存在することから、受信した障害監視用ＢＰＤＵが隣接ポートへ転送されることはない。
【００５４】
［障害発生時］
次に、図６Ａ〜図６Ｄを参照して、障害発生時のループ検出動作について説明する。ここでは、ノードＮ１〜Ｎ５がリングＬによりリング状に接続されており、初期状態において、前述した図５Ｃに示すように、これらすべてのノードＮ１〜Ｎ５が正常動作しているものとする。
【００５５】
このような初期状態において、図６Ａに示すように、ノードＮ１において、何らかの原因で障害が発生し、ルートノード機能が喪失されたものとする。この際、例えばノードＮ１において、本来ノードＮ２，Ｎ５の両方へ送信すべきＢＰＤＵが、ノードＮ２へのみ送信するという状況となった場合、ノードＮ４ではノードＮ５からＢＰＤＵが届かなくなるため、ブロッキングが異常解除されてしまう。これにより、データ通信用の通信フレームが各ノードＮ１〜Ｎ５間で無限に転送される無限ループ状態に陥り、最終的には通信不能となる可能性がある。
【００５６】
したがって、ノードＮ１から送信されたＢＰＤＵは、その転送カウント値（ＣＮＴ＝０）がノードＮ２でインクリメントされて（ＣＮＴ＝１）ノードＮ３へ転送されることになる。
同様にして、ノードＮ３でも、ノードＮ２から転送されたＢＰＤＵは、その転送カウント値（ＣＮＴ＝１）がインクリメントされて（ＣＮＴ＝２）ノードＮ４へ転送される。
【００５７】
また、図６Ｂに示すように、ノードＮ４では、ブロッキングが異常解除されていることから、ノードＮ３からのＢＰＤＵは、その転送カウント値（ＣＮＴ＝２）がインクリメントされて（ＣＮＴ＝３）ノードＮ４へ転送される。
同様にして、ノードＮ５でも、ノードＮ４から転送されたＢＰＤＵは、その転送カウント値（ＣＮＴ＝３）がインクリメントされて（ＣＮＴ＝４）ノードＮ１へ転送される。
【００５８】
このようにして、ノードＮ４からノードＮ５方向へ転送されたＢＰＤＵは、図６Ｃに示すように、ノードＮ１〜Ｎ５までさらに転送される。また、その転送カウント値も各ノードでインクリメントされる。
したがって、図６Ｄに示すように、ノードＮ５では、ノードＮ４から転送されたＢＰＤＵの転送カウント値（ＣＮＴ＝８）が基準カウント値「７」より大きいことから、当該ＢＰＤＵを受信したノードＮ４側のポートに対して、データ通信用フレームの転送動作の停止が設定される。これにより、無限ループ状態が解消されることになる。
【００５９】
［障害復旧時］
次に、図７Ａ，図７Ｂを参照して、障害復旧時のループ検出動作について説明する。ここでは、ノードＮ１〜Ｎ５がリングＬによりリング状に接続されており、初期状態において、前述した図６Ｂと同様に、ノードＮ５のうちノードＮ４側ポートで転送動作停止が設定されているものとする。
【００６０】
ノードＮ５では、図７Ａに示すように、ノードＮ４側のポートに対して、データ通信用フレームの転送動作の停止を設定した後、ルートノードとしての冗長制御処理が開始され（ルートＩＤ＝５）、ノードＮ５と隣接するノードＮ１，Ｎ４に対して、ＲＳＴＰに基づくセグメントの接続確立要求用のＢＰＤＵが送信される。
【００６１】
ノードＮ１（ルートＩＤ＝１）は、ノードＮ５からの接続確認要求用ＢＰＤＵに応じて、電源投入時と同様にして、ノードＮ５との間で接続確立処理（ハンドシェーク）を開始する。これにより、図７Ｂに示すように、両者のルートＩＤやＭＡＣアドレスなどの比較により、例えばノードＮ１がルートノードに決定された場合、ノードＮ１においてルートノード機能が復旧し、前述した図５Ｃのように、ルートノードＮ１によるネットワークトポロジーの構築処理が開始される。
【００６２】
また、ノードＮ４でも、ノードＮ５からの接続確認要求用ＢＰＤＵに応じて、ノードＮ５との間で接続確立処理（ハンドシェーク）が実行される。
この際、ノードＮ４のルートＩＤは変更されていないため、ノードＮ１による冗長制御に応じて、ノードＮ５での上記転送動作停止が解除され、ノードＮ４，Ｎ５のうちノードＮ５のノードＮ４側ポートで新たなブロッキングが設定される。
これにより、リングＬ上に新たなネットワークトポロジーが構築され、ＲＳＴＰ冗長制御下におけるノード間でのデータ通信が再開される。
【００６３】
［本実施の形態の効果］
このように、本実施の形態は、ループ検出初期設定部１３Ａにより、自ノードが通信経路のトポロジーにおけるルートノードとして動作している場合、当該ルートノード以外の他ノードに対して送信するＢＰＤＵの転送カウンタ値を初期化し、ループ検出処理部１３Ｂにより、自ノードが他ノードとして動作している場合、自ノードに隣接する一方の隣接ノードからＢＰＤＵを受信して他方の隣接ノードへ転送する際に、当該ＢＰＤＵから取得した転送カウンタ値とカウンタ基準値との比較結果に応じて、通信経路でのループ発生を検出し、当該ＢＰＤＵから取得した転送カウンタ値がカウンタ基準値以下の場合には、転送するＢＰＤＵの転送カウンタ値をインクリメントしている。
【００６４】
したがって、リングＬに無限ループ状態が発生した場合でも、その無限ループ状態によりＢＰＤＵが繰り返し転送される回数を、ＢＰＤＵに格納されている転送カウンタ値で確認することができる。このため、複雑な制御を必要とすることなく、精度よくループ発生を検出できる。
【００６５】
また、本実施の形態では、ループ検出処理部１３Ｂにより、転送カウンタ値がカウンタ基準値を上回る場合、当該ＢＰＤＵを受信した通信ポートに対してデータ通信用フレームの転送動作の停止を設定するようにしたので、ループ発生の検出に応じて、直ちに無限ループ状態を解消することができる。
【００６６】
また、本実施の形態では、ＲＳＴＰ処理部１３により、ループ検出処理部１３Ｂでのデータ通信用フレームの転送動作停止に応じて、自ノードの隣接ノードとの間でＲＳＴＰに基づく接続確立処理を開始するようにしたので、無限ループ状態から正常状態へ自動復帰することが可能となる。
【００６７】
［実施の形態の拡張］
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しうる様々な変更をすることができる。
【符号の説明】
【００６８】
Ｎ，Ｎ１，Ｎ２，Ｎ３，Ｎ４，Ｎ５…ノード、１０…リング接続制御部、１１，１２…ＭＡＣ処理部、１３…ＲＳＴＰ処理部、１３Ａ…ループ検出初期設定部、１３Ｂ…ループ検出処理部、１４…転送処理部、２０…アプリケーション処理部、Ｐ１，Ｐ２…ポート。
【図１】
2011024000.tif 000003
【図２】
2011024000.tif 000004
【図３】
2011024000.tif 000005
【図４】
2011024000.tif 000006
【図５Ａ】
2011024000.tif 000007
【図５Ｂ】
2011024000.tif 000008
【図５Ｃ】
2011024000.tif 000009
【図６Ａ】
2011024000.tif 000010
【図６Ｂ】
2011024000.tif 000011
【図６Ｃ】
2011024000.tif 000012
【図６Ｄ】
2011024000.tif 000013
【図７Ａ】
2011024000.tif 000014
【図７Ｂ】
2011024000.tif 000015
【図８】
2011024000.tif 000016
【図９】
2011024000.tif 000017