(57)【特許請求の範囲】
【請求項１】
リング型ネットワークにおいてユーザデータの中継をブロックすることによりループ経路の発生を防止するマスターノードを設定するか否かを判定するデータ伝送装置であって、
前記リング型ネットワークに発生した障害を検出する障害検出手段と、
前記障害検出手段により障害が検出された場合に、前記リング型ネットワークに接続された障害側のポートでおこなわれるユーザデータの中継をブロックし、また、自データ伝送装置をマスターノードに設定するか否かを判定するための優先順位に係る情報を含んだ制御データを送信するデータ送信手段と、
自データ伝送装置から送信された前記優先順位に係る情報を含んだ制御データを受信した場合、または、前記リング型ネットワークに接続された他のデータ伝送装置の優先順位に係る情報を含んだ制御データを受信した場合に、該優先順位に係る情報に基づいて自データ伝送装置をマスターノードに設定するか否かを判定する判定手段と、
を備えたことを特徴とするデータ伝送装置。
【請求項２】
前記障害検出手段によって、自データ伝送装置がマスターノードであり、当該自データ伝送装置がユーザデータの中継をブロックしているポート側に接続されたリンクまたは当該リンクに接続された他のデータ伝送装置に障害が発生したと判定された場合に、前記判定手段は、当該自データ伝送装置がマスターノードである状態を維持するよう判定することを特徴とする請求項１に記載のデータ伝送装置。
【請求項３】
前記データ送信手段は、自データ伝送装置がマスターノードでない場合に、前記障害検出手段によって障害を検出した場合に障害を検出したことをマスターノードに通知する障害検出制御データをさらに送信し、
前記判定手段は、前記マスターノードから障害検出制御データの受信に応じて送信された制御データを受信した後、前記優先順位に係る情報を含んだ制御データを受信した場合、または、前記マスターノードから障害検出制御データの受信に応じて送信された制御データを受信した後、前記他のデータ伝送装置の優先順位に係る情報を含んだ制御データを受信した場合に、該優先順位に係る情報に基づいて自データ伝送装置をマスターノードに設定するか否かを判定することを特徴とする請求項１又は２に記載のデータ伝送装置。
【請求項４】
前記データ送信手段は、前記障害検出手段によって障害を検出した場合に、ユーザデータの送信経路に係る情報の再学習を要求する経路情報学習制御データをさらに送信し、
前記判定手段は、前記マスターノードから経路情報学習制御データの受信に応じて送信された制御データを受信した後、前記優先順位に係る情報を含んだ制御データを受信した場合、または、前記マスターノードから経路情報学習制御データの受信に応じて送信された制御データを受信した後、他のデータ伝送装置の優先順位に係る情報を含んだ制御データを受信した場合に、該優先順位に係る情報に基づいて自データ伝送装置をマスターノードに設定するか否かを判定することを特徴とする請求項３に記載のデータ伝送装置。
【請求項５】
前記判定手段は、前記自データ伝送装置の稼働状態に基づいて自データ伝送装置がリンクダウンした状態から回復した場合に、自データ伝送装置のポートのリンク状態と前記受信した優先順位に係る情報を含んだ制御データとに基づいて自データ伝送装置をマスターノードに設定するか否かを判定することを特徴とする請求項１に記載のデータ伝送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リング型ネットワークにおいてユーザデータの中継をブロックすることによりループ経路の発生を防止するマスターノードにノードを設定するか否かを判定するノード設定装置、ネットワークシステム、ノード設定方法およびノード設定プログラムに関し、特に、リング型ネットワークにおいてマスターノードを適切かつ効率的に設定することができるノード設定装置、ネットワークシステム、ノード設定方法およびノード設定プログラムに関する。
【背景技術】
【０００２】
近年、イーサネット（登録商標）技術をリング型ネットワークに適用することによりデータの伝送を効率的におこなうことができるようになってきている。このリング型ネットワークにおいては、パケットの送信経路がループ状になるため、リング型ネットワークに属するノードのうち、あらかじめマスターノードとして定められたノードがリングの一方のポートにおけるユーザデータの中継を論理的にブロックすることにより、パケットがネットワークを回り続けるループ現象の発生を防止する。ここで、ノードとは、ネットワークに接続されるコンピュータやハブ、ルータなどのネットワーク機器である。
【０００３】
また、リング型ネットワークのある箇所に障害が発生した場合には、マスターノードが、ブロックしていたポートを開放することによりパケットの通信再開をすばやくおこなうEthernet  Automatic  Protection  Switching（ＥＡＰＳ）（Ethernetは登録商標）の技術が開示されている（非特許文献１を参照。）。
【０００４】
図１５は、この従来のＥＡＰＳの技術を説明する図である。図１５の例では、６つのノード１０1〜１０6によりリング型ネットワークが構成され、マスターノード１０1（図中、マスターノードは記号「Ｍ」で表されている。）が１つ設定されている。そして、このマスターノード１０1はノード１０2側のポート１１1を論理的にブロックしている。
【０００５】
たとえば、このリング型ネットワークのリンクに障害１２が発生したものとする（状態１）。その場合、マスターノード１０1はブロックしていたポート１１1を開放し、各ノード１０1〜１０6間で通信がおこなえるようにする（状態２）。
【０００６】
そして、障害１２が復旧した場合には、障害１２が発生したリンクに接続されているノード１０4およびノード１０5は、それぞれ障害１２側のポート１１4，１１5を論理的にブロックすることにより、ループ現象が発生するのを防止する（状態３）。
【０００７】
その後、ノード１０4およびノード１０5は、マスターノード１０1に対して障害１２が復旧したことを通知するパケットを送信し、ブロックしていたポート１１4，１１5を開放する。また、ノード１０4またはノード１０5により送信されたパケットを受信したマスターノード１０1は、再度ポート１１1を論理的にブロックし、ループ現象が発生するのを防止する（状態４）。
【０００８】
ところが、このＥＡＰＳの技術では、障害が発生した際、および、その障害が復旧した際に、２回の通信断が発生する問題があった。すなわち、障害が発生した際と、その障害が復旧した際とで、ブロックされたポートが異なるため、各ノード１０1〜１０6は経路情報を２回学習する必要があった。
【０００９】
そのため、経路情報の学習回数を１回に減らすデータ中継方法が開示されている（特許文献１を参照。）。図１６は、この従来のデータ中継方法を説明する図である。図１６の例では、６つのノード１３1〜１３6によりリング型ネットワークが構成され、マスターノード１３1が１つ設定されている。そして、このマスターノード１３1は、ノード１３2側のポート１４1を論理的にブロックしている。
【００１０】
たとえば、このリング型ネットワークのリンクに障害１５が発生したものとする（状態５）。その場合、マスターノード１３1はブロックしていたポート１４1を開放し、各ノード１３1〜１３6間で通信がおこなえるようにする。また、障害１５が発生したリンクに接続されているノード１３4およびノード１３5は、それぞれ障害１５側のポート１４4，１４5を論理的にブロックする（状態６）。
【００１１】
そして、障害１５が復旧した場合には、ノード１３4およびノード１３5は、制御信号をやり取りしていずれか一方のノード１３4のみをマスターノードとして設定する。もう一方のノード１３5は、通常のノードに設定され、そのノード１３5がブロックしていたポート１４5は開放される（状態７）。この場合、データの中継がブロックされたリンクは障害１５の復旧前後で変わらないので、経路情報の学習回数が１回で済むことになる。
【００１２】
また、このデータ中継方法は、ノードに発生した障害に対しても対応することができる。図１７は、ノード障害発生時の従来のデータ中継方法を説明する図である。図１７では、ノード１３4に障害１６が発生し、ノード１３3，１３5がノード１３4側のポート１４3，１４5をブロックしている場合を示している（状態８）。
【００１３】
この場合、障害１６が復旧されると、ノード１３3とノード１３5とは、ノード１３4を介して制御信号をやり取りする（状態９）。そして、いずれか一方のノード１３3のみをマスターノードとして設定し、他方のノード１３5は、通常のノードに設定され、ポート１４5が開放される（状態１０）。
【００１４】
【特許文献１】特願２００４−０７６５９３号公報
【非特許文献１】S.  Shah  and  M.  Yip,  "RFC  3619  -  Extreme  Network's  Ethernet  Automatic  Protection  Switching  (EAPS)  Version  1",  [online],  [平成１６年１１月２９日検索]，インターネット＜URL:http://www.faqs.org/rfcs/rfc3619.html>
【発明の開示】
【発明が解決しようとする課題】
【００１５】
しかしながら、上述した従来技術では、リング型ネットワークに属するすべてのノードの立ち上げ時や、発生した障害の復旧時に、マスターノードを効率的に決定するリング型ネットワークを低コストで実現することが難しいという問題があった。
【００１６】
すなわち、図１５および図１６で説明した従来技術では、リング型ネットワークに属するすべてのノードの立ち上げ時に、あらかじめマスターノードを設定しておく必要があるが、その設定がなされないままノードの立ち上げが実行されると、ループ現象が発生してしまう。
【００１７】
また、図１７で説明したデータ中継方法では、ノード１３4に障害が発生した場合に、復旧したノード１３4が両隣のノード１３3，１３5の交渉を仲介する必要があるため、処理が複雑になるという問題があった。そのため、マスターノードをいかに適切かつ効率的に設定することができるかが重要な問題となってきている。
【００１８】
本発明は、上述した従来技術による問題点を解消するためになされたものであり、リング型ネットワークにおいてマスターノードを適切かつ効率的に設定することができるノード設定装置、ネットワークシステム、ノード設定方法およびノード設定プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１９】
上述した課題を解決し、目的を達成するために、本発明は、リング型ネットワークにおいてユーザデータの中継をブロックすることによりループ経路の発生を防止するマスターノードにノードを設定するか否かを判定するノード設定装置であって、前記リング型ネットワークに接続されたノードの一方のポート側でおこなわれるユーザデータの中継をブロックし、また、当該ノードをマスターノードに設定する優先順位に係る情報を含んだ制御データを送信するデータ送信手段と、前記優先順位に係る情報を含んだ制御データを受信した場合、または、前記リング型ネットワークに接続された他のノードの優先順位に係る情報を含んだ制御データを受信した場合に、該優先順位に係る情報に基づいて当該ノードをマスターノードに設定するか否かを判定する判定手段と、を備えたことを特徴とする。
【００２０】
また、本発明は、上記発明において、前記判定手段によりノードをマスターノードに設定しないと判定された場合に、前記優先順位に係る情報を含んだ制御データの送信を中止することを特徴とする。
【００２１】
また、本発明は、上記発明において、リング型ネットワークに発生した障害を検出する障害検出手段をさらに備え、前記データ送信手段は、前記障害検出手段により障害が検出された場合に、優先順位に係る情報を含んだ制御データを送信することを特徴とする。
【００２２】
また、本発明は、上記発明において、前記障害検出手段は、ノードがマスターノードである場合に、当該ノードが送信した制御データが当該ノードに到達するか否かを調べることによりリング型ネットワークに発生した障害を検出することを特徴とする。
【００２３】
また、本発明は、上記発明において、前記障害検出手段は、ノードがマスターノードであり、当該ノードがユーザデータの中継をブロックしているポート側に接続されたリンクまたは当該リンクに接続されたノードに障害が発生した場合に、前記判定手段は、当該ノードがマスターノードである状態を維持するよう判定することを特徴とする。
【００２４】
また、本発明は、上記発明において、前記障害検出手段は、ノードがマスターノードでない場合に、障害を検出した場合に障害を検出したことをマスターノードに通知する障害検出制御データをさらに送信することを特徴とする。
【００２５】
また、本発明は、上記発明において、前記判定手段は、マスターノードから障害検出制御データの受信に応じて送信された制御データを受信した後、前記優先順位に係る情報を含んだ制御データを受信した場合、または、他のノードの優先順位に係る情報を含んだ制御データを受信した場合に、該優先順位に係る情報に基づいてノードをマスターノードに設定するか否かを判定することを特徴とする。
【００２６】
また、本発明は、上記発明において、前記障害検出手段により送信された障害検出制御データをマスターノードが受信した際に当該マスターノードにより送信される制御データを受信するごとに、データの送信経路に係る情報の再学習を開始する経路情報学習手段をさらに備えたことを特徴とする。
【００２７】
また、本発明は、上記発明において、前記障害検出手段は、障害を検出した場合にユーザデータの送信経路に係る情報の再学習を要求する経路情報学習制御データをさらに送信することを特徴とする。
【００２８】
また、本発明は、上記発明において、前記判定手段は、マスターノードから経路情報学習制御データの受信に応じて送信された制御データを受信した後、前記優先順位に係る情報を含んだ制御データを受信した場合、または、他のノードの優先順位に係る情報を含んだ制御データを受信した場合に、該優先順位に係る情報に基づいてノードをマスターノードに設定するか否かを判定することを特徴とする。
【００２９】
また、本発明は、上記発明において、前記障害検出手段により送信された経路情報学習制御データを受信するごとに、ユーザデータの送信経路に係る情報の再学習を開始する経路情報学習手段をさらに備えたことを特徴とする。
【００３０】
また、本発明は、リング型ネットワークにおいてユーザデータの中継をブロックすることによりループ経路の発生を防止するマスターノードにノードを設定するか否かを判定するノードにより構成されるネットワークシステムであって、前記ノードは、前記リング型ネットワークに接続されたノードの一方のポート側でおこなわれるユーザデータの中継をブロックし、また、当該ノードをマスターノードに設定する優先順位に係る情報を含んだ制御データを送信するデータ送信手段と、前記優先順位に係る情報を含んだ制御データを受信した場合、または、前記リング型ネットワークに接続された他のノードの優先順位に係る情報を含んだ制御データを受信した場合に、該優先順位に係る情報に基づいて当該ノードをマスターノードに設定するか否かを判定する判定手段と、を備えたことを特徴とする。
【００３１】
また、本発明は、上記発明において、前記ノードはリング型ネットワークに発生した障害を検出する障害検出手段をさらに備え、前記データ送信手段は、前記障害検出手段により障害が検出された場合に、優先順位に係る情報を含んだ制御データを送信することを特徴とする。
【００３２】
また、本発明は、上記発明において、前記障害検出手段は、少なくともデータを中継する機能を有するデータ中継ノードが前記リング型ネットワークを構成するノードとして自ノードに接続されている場合に、当該データ中継ノードまたは当該データ中継ノードと自ノードとを接続しているリンクに発生した障害を検出し、前記データ送信手段は、前記障害検出手段により障害が検出された場合に、優先順位に係る情報を含んだ制御データを送信することを特徴とする。
【００３３】
また、本発明は、リング型ネットワークにおいてユーザデータの中継をブロックすることによりループ経路の発生を防止するマスターノードにノードを設定するか否かを判定するノード設定方法であって、前記リング型ネットワークに接続されたノードの一方のポート側でおこなわれるユーザデータの中継をブロックし、また、当該ノードをマスターノードに設定する優先順位に係る情報を含んだ制御データを送信するデータ送信工程と、前記優先順位に係る情報を含んだ制御データを受信した場合、または、前記リング型ネットワークに接続された他のノードの優先順位に係る情報を含んだ制御データを受信した場合に、該優先順位に係る情報に基づいて当該ノードをマスターノードに設定するか否かを判定する判定工程と、を含んだことを特徴とする。
【００３４】
また、本発明は、リング型ネットワークにおいてユーザデータの中継をブロックすることによりループ経路の発生を防止するマスターノードにノードを設定するか否かを判定するノード設定プログラムであって、前記リング型ネットワークに接続されたノードの一方のポート側でおこなわれるユーザデータの中継をブロックし、また、当該ノードをマスターノードに設定する優先順位に係る情報を含んだ制御データを送信するデータ送信手順と、前記優先順位に係る情報を含んだ制御データを受信した場合、または、前記リング型ネットワークに接続された他のノードの優先順位に係る情報を含んだ制御データを受信した場合に、該優先順位に係る情報に基づいて当該ノードをマスターノードに設定するか否かを判定する判定手順と、をコンピュータに実行させることを特徴とする。
【発明の効果】
【００３５】
本発明によれば、リング型ネットワークに接続されたノードの一方のポート側でおこなわれるユーザデータの中継をブロックし、また、当該ノードをマスターノードに設定する優先順位に係る情報を含んだ制御データを送信し、送信した優先順位に係る情報を含んだ制御データを受信した場合、または、リング型ネットワークに接続された他のノードの優先順位に係る情報を含んだ制御データを受信した場合に、その優先順位に係る情報に基づいて当該ノードをマスターノードに設定するか否かを判定することとしたので、リング型ネットワークにおいてマスターノードを適切かつ効率的に設定することができるという効果を奏する。
【００３６】
また、本発明によれば、ノードをマスターノードに設定しないと判定された場合に、優先順位に係る情報を含んだ制御データの送信を中止することとしたので、不必要な制御データの送信を抑制することができるという効果を奏する。
【００３７】
また、本発明によれば、リング型ネットワークに発生した障害を検出し、障害を検出した場合に、優先順位に係る情報を含んだ制御データを送信することとしたので、障害が発生した場合に、マスターノードを適切かつ効率的に設定することができるという効果を奏する。
【００３８】
また、本発明によれば、ノードがマスターノードである場合に、当該ノードが送信した制御データが当該ノードに到達するか否かを調べることによりリング型ネットワークに発生した障害を検出することとしたので、効率的に障害の検出をおこなうことができ、障害発生時にマスターノードを適切かつ効率的に設定することができるという効果を奏する。
【００３９】
また、本発明によれば、ノードがマスターノードであり、当該ノードがユーザデータの中継をブロックしているポート側に接続されたリンクまたは当該リンクに接続されたノードに障害が発生した場合に、当該ノードがマスターノードである状態を維持するよう判定することとしたので、マスターノードの状態を維持するよう適切かつ効率的に判定をおこなうことができるという効果を奏する。
【００４０】
また、本発明によれば、ノードがマスターノードでない場合に、障害を検出した場合に障害を検出したことをマスターノードに通知する障害検出制御データをさらに送信することとしたので、マスターノードに障害の発生を通知することができ、マスターノードに障害の発生に対して適切な処理を実行させることができるという効果を奏する。
【００４１】
また、本発明によれば、マスターノードから障害検出制御データの受信に応じて送信された制御データを受信した後、優先順位に係る情報を含んだ制御データを受信した場合、または、優先順位に係る情報を含んだ制御データを他のノードから受信した場合に、優先順位に係る情報に基づいてノードをマスターノードに設定するか否かを判定することとしたので、マスターノードが障害検出制御データを受信する以前に送信した制御データによりノードをマスターノードに設定するか否かの判定がおこなわれることを防ぐことができるという効果を奏する。
【００４２】
また、本発明によれば、障害検出制御データをマスターノードが受信した際に当該マスターノードにより送信される制御データを受信するごとに、データの送信経路に係る情報の再学習を開始することとしたので、障害の発生が検出されるたびに送信経路の再学習をおこなうよう、再学習の回数を適切に管理することができるという効果を奏する。
【００４３】
また、本発明によれば、障害を検出した場合にユーザデータの送信経路に係る情報の再学習を要求する経路情報学習制御データをさらに送信することとしたので、他のノードにユーザデータの送信経路に係る情報の再学習を要求することができ、他のノードに障害の発生に対して適切な処理を実行させることができるという効果を奏する。
【００４４】
また、本発明によれば、マスターノードから経路情報学習制御データの受信に応じて送信された制御データを受信した後、優先順位に係る情報を含んだ制御データを受信した場合、または、他のノードの優先順位に係る情報を含んだ制御データを受信した場合に、その優先順位に係る情報に基づいてノードをマスターノードに設定するか否かを判定することとしたので、マスターノードが経路情報学習制御データを受信する以前に送信した制御データによりノードをマスターノードに設定するか否かの判定がおこなわれることを防ぐことができるという効果を奏する。
【００４５】
また、本発明によれば、経路情報学習制御データを受信するごとに、ユーザデータの送信経路に係る情報の再学習を開始することとしたので、障害の発生が検出されるたびに送信経路の再学習をおこなうよう、再学習の回数を適切に管理することができるという効果を奏する。
【００４６】
また、本発明によれば、少なくともデータを中継する機能を有するデータ中継ノードがリング型ネットワークを構成するノードとして自ノードに接続されている場合に、当該データ中継ノードまたは当該データ中継ノードと自ノードとを接続しているリンクに発生した障害を検出し、障害が検出された場合に、優先順位に係る情報を含んだ制御データを送信することとしたので、自ノードをマスターノードに設定するか否かを判定する機能をもたないデータ中継ノードがリング型ネットワークに含まれている場合でも、マスターノードを適切かつ効率的に設定することができるという効果を奏する。
【発明を実施するための最良の形態】
【００４７】
以下に、本発明に係るノード設定装置、ネットワークシステム、ノード設定方法およびノード設定プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００４８】
まず、本発明に係るノード設定処理の概念について説明する。図１は、リング型ネットワークの立ち上げ時のノード設定処理の概念を説明する図である。図１の例では、６つのノード２０1〜２０6によりリング型ネットワークが構成される場合が示されている。そして、各ノード２０1〜２０6は、隣り合う２つのノード２０1〜２０6に接続される２つのポートを有している。
【００４９】
このノード設定処理においては、リング型ネットワークの立ち上げ時に、各ノード２０1〜２０6が、擬似マスターノードと呼ばれる状態に遷移する（図中、擬似マスターノードは記号「擬Ｍ」で表されている。）。
【００５０】
この擬似マスターノードは、ユーザデータのパケット中継を一方のポート２１1〜２１6においてブロックするとともに、もう一方のポートからヘルスパケットＨ１〜Ｈ６を送信する（状態１１）。なお、ブロックするポート２１1〜２１6は、あらかじめ設定しておいてもよいし、ランダムに決定することとしてもよい。
【００５１】
ここで、ヘルスパケットＨ１〜Ｈ６とは、ノード２０1〜２０6が、リング型ネットワークに障害があるか否かを確認するために送信する制御パケットである。リング型ネットワークに障害がない場合には、ノード２０1〜２０6は、ヘルスパケットＨ１〜Ｈ６を送信したポートの反対側のポートにおいて、送信したヘルスパケットＨ１〜Ｈ６を受信することになる。
【００５２】
各ノード２０1〜２０6は、ヘルスパケットＨ１〜Ｈ６を送信する際に、ノード２０1〜２０6をマスターノードに設定する場合のノード２０1〜２０6の優先順位の情報をヘルスパケットＨ１〜Ｈ６に含めて送信する。この優先順位は、あらかじめ各ノード２０1〜２０6に割り当てておいてもよいし、ノード２０1〜２０6に割り当てられているＭＡＣアドレスを優先順位を表すものとして利用することとしてもよい。
【００５３】
そして、各ノード２０1〜２０6は、他のノード２０1〜２０6により送信されたヘルスパケットＨ１〜Ｈ６を受信すると、ヘルスパケットＨ１〜Ｈ６に含まれる優先順位の情報を取得し、取得した優先順位の情報と自ノード２０1〜２０6の優先順位の情報とを比較する。
【００５４】
他のノード２０1，２０4により送信されたヘルスパケットＨ１，Ｈ４に含まれる優先順位の方が高い場合には、ヘルスパケットＨ１，Ｈ４を受信したノード２０6，２０3は、ブロックしていたポート２１6，２１3を開放し、ユーザデータのパケット中継を可能とするトランジットノード（図中、トランジットノードは記号「Ｔ」で表されている。）に自ノードの状態を遷移させる（状態１２）。
【００５５】
ここで、優先順位は、同一の優先順位のものがないように設定されるので、ヘルスパケットＨ１〜Ｈ６が各ノード２０1〜２０6により伝送されるにつれ、１つのノード２０1以外はすべてトランジットノードに遷移し、各ノード２０2〜２０5によりブロックされていたポート２１2〜２１6が開放される（状態１３）。そして、ノード２０2〜２０6がトランジットノードに遷移した場合には、ヘルスパケットの送信を停止する。
【００５６】
このようにして、擬似マスターノードとして最終的に残ったノード２０1は、自ノードが送信したヘルスパケットＨ１を受信するようになる。そして、各ノード２０1〜２０6は、自ノードが送信したヘルスパケットＨ１〜Ｈ６を受信した場合に、自ノードの状態をマスターノード（図中、マスターノードは記号「Ｍ」で表されている。）に遷移する処理をおこなう（状態１４）。
【００５７】
図２は、リンク障害発生時のノード設定処理の概念を説明する図である。図２の例では、ノード２０1がマスターノードとして設定され、ポート２１1を介したユーザデータのパケット中継をブロックしている場合を示している。また、ノード２０3とノード２０4とを接続しているリンクに障害２２が発生したものとする（状態１５）。
【００５８】
この場合、障害２２が発生したリンクに接続されているノード２０3，２０4は、障害２２の発生を検出し、自ノード２０3，２０4を擬似マスターノードとして設定するとともに、障害２２が発生したリンク側のポート２１3，２１4をブロックする。
【００５９】
さらに、ノード２０3，２０4は、ポート２１3，２１4の反対側のポートから障害２２が発生したことをマスターノードであるノード２０1に通知するトラップパケットＴ３，Ｔ４を送信する（状態１６）。
【００６０】
マスターノードであるノード２０1は、このトラップパケットＴ３，Ｔ４の少なくとも一方を受信すると、自ノード２０1の状態をトランジットノードに遷移させ、ブロックしていたポート２１1を開放する。
【００６１】
一方、各ノード２０3，２０4は、トラップパケットＴ３，Ｔ４の送信後、ヘルスパケットＨ３，Ｈ４の送信をおこない、もう一方のノード２０3，２０4から送信されたヘルスパケットＨ３，Ｈ４を受信するのを待ち受ける（状態１７）。
【００６２】
そして、もう一方のノード２０3，２０4により送信されたヘルスパケットＨ３，Ｈ４を受信した場合には、各ノード２０3，２０4は、図１で説明したノード設定処理と同様にして、ヘルスパケットＨ３，Ｈ４に含まれる優先順位の情報に基づき、自ノード２０3，２０4をマスターノードとするのか、トランジットノードとするのかを判定する処理をおこなう。
【００６３】
図２の例では、ノード２０3がマスターノードとなり、ノード２０4がトランジットノードとなる場合が示されている（状態１８）。これは、ノード２０3の優先順位がノード２０4の優先順位よりも高く設定されていることを示している。
【００６４】
障害２２が復旧した場合には、ノード２０3がそのまま継続してマスターノードとして機能する。したがって、障害２２の復旧後にあらためてマスターノードを設定する処理は不要である。
【００６５】
また、このノード設定処理は、リンク障害の発生に対処できるだけでなく、ノード障害の発生にも対処することができる。図３は、ノード障害発生時のノード設定処理の概念を説明する図である。
【００６６】
図３の例では、ノード２０1がマスターノードとして設定され、ユーザデータのパケット中継をポート２１1がブロックしている場合を示している。また、この例ではノード２０4に障害が発生したものとする（状態１９）。
【００６７】
この場合、障害が発生したノード２０4の両脇のノード２０3，２０5が障害の発生を検出して、障害が発生したノード２０4側のポート２１3，２１5をブロックする。そして、ノード２０3，２０5は、障害が発生したことをマスターノード２０1に通知するトラップパケットＴ３，Ｔ５を送信する（状態２０）。
【００６８】
その後、トラップパケットＴ３，Ｔ５の少なくとも一方を受信したマスターノード２０1は、自ノードをトランジットノードに遷移させ、ブロックしていたポート２１1を開放する。一方、ノード２０3，２０5は、トラップパケットＴ３，Ｔ５の送信後、ヘルスパケットＨ３，Ｈ５の送信をおこない、もう一方のノード２０3，２０5から送信されたヘルスパケットＨ３，Ｈ５を受信するのを待ち受ける（状態２１）。
【００６９】
そして、もう一方のノード２０3，２０5により送信されたヘルスパケットＨ３，Ｈ５を受信した場合には、各ノード２０3，２０5は、図１で説明したノード設定処理と同様にして、ヘルスパケットＨ３，Ｈ５に含まれる優先順位の情報に基づき、自ノード２０3，２０5をマスターノードとするのか、トランジットノードとするのかを判定する処理をおこなう。
【００７０】
図３の例では、ノード２０3がマスターノードとなり、ノード２０5がトランジットノードとなる場合が示されている（状態２２）。これは、ノード２０3の優先順位がノード２０5の優先順位よりも高く設定されていることを示している。
【００７１】
ノード２０4の障害が復旧した場合には、ノード２０4は一旦擬似マスターノードとなる。そして、一方のポート２１4をブロックし、ヘルスパケットＨ４を送信する（状態２３）。
【００７２】
また、マスターノードであるノード２０3は、定期的にヘルスパケットを送信しているため、ノード２０4は、そのヘルスパケットを受信すると、優先順位の比較によりトランジットノードに遷移する（状態２４）。
【００７３】
また、マスターノードは、自ノードが送信したヘルスパケットが一定時間が経過しても戻ってこない場合に、自ノードを擬似マスターノードに遷移させる。図４は、ヘルスパケット未検出時のノード設定処理の概念を説明する図である。
【００７４】
図４の例では、ノード２０1がマスターノードとして設定され、ユーザデータのパケット中継をポート２１1においてブロックするとともに、ヘルスパケットＨ１を送信した場合を示している（状態２５）。
【００７５】
そして、たとえば、ノード２０4にヘルスパケットだけが伝送できない障害が発生したような場合には、ノード２０1は、自ノード２０1が送信したヘルスパケットＨ１が一定時間が経過しても戻ってこないことにより、自ノードを擬似マスターノードに遷移させる（状態２６）。
【００７６】
ここで、ノード２０4に発生した、状態２５に示した障害が復旧され、自ノード２０1が送信したヘルスパケットＨ１を受信できるようになった場合には、ノード２０1は再びマスターノードに遷移する（状態２５）。
【００７７】
ノード２０4に発生した障害が復旧できず、ヘルスパケットを含めたすべての信号が伝送できない場合には、障害が発生したノード２０4の両隣のノード２０3，２０5が、信号を検出しないことにより障害の発生を検出し、自ノード２０3，２０5を擬似マスターノードに遷移させることになる。そして、ノード２０3，２０5は、障害が発生したノード２０4側のポート２１3，２１5をブロックするとともに、ヘルスパケットＨ３，Ｈ５を送信する（状態２７）。
【００７８】
続いて、ノード２０1は、このヘルスパケットＨ３，Ｈ５を受信すると、自ノード２０1の状態をトランジットノードに遷移させ、ブロックしていたポート２１1を開放する（状態２８）。これ以降は、図３の状態２２、状態２３および状態２４に示したものと同様の処理がおこなわれ、マスターノードが設定される。
【００７９】
このように、本発明に係るノード設定処理では、ユーザデータの中継ポートをブロックするとともに、ノードをマスターノードに設定する優先順位の情報を含んだヘルスパケットを送信し、そのヘルスパケットを受信した場合、または、他のノードから優先順位の情報を含んだヘルスパケットを受信した場合に、優先順位の情報に基づいてノードをマスターノードに設定するか否かを判定することとしたので、リング型ネットワークにおいてマスターノードを適切かつ効率的に設定することができる。
【００８０】
つぎに、本実施例に係るデータ伝送装置の機能構成について説明する。図５は、本実施例に係るデータ伝送装置３０の機能構成を示す図である。図５に示すように、このデータ伝送装置３０は、ポート３１ａ，３１ｂ、パケット送受信部３２、記憶部３３、マスターノード処理実行部３４、トランジットノード処理実行部３５、経路情報学習処理部３６、イベント検出部３７、擬似マスターノード処理実行部３８および制御部３９を有する。
【００８１】
ポート３１ａ，３１ｂは、ユーザデータまたは制御データのパケットを中継するポートである。パケット送受信部３２は、ポート３１ａ，３１ｂを介してデータパケットやトラップパケットまたはヘルスパケットなどの各種パケットを送受信する処理をおこなう。
【００８２】
記憶部３３は、メモリなどの記憶デバイスである。この記憶部３３は、自ノード情報３３ａ、他ノード情報３３ｂおよび経路情報３３ｃを記憶している。自ノード情報３３ａは、自ノードの優先順位の情報やＭＡＣアドレスなどの自ノードに係る情報を記憶したものである。他ノード情報３３ｂは、自ノード以外のノードの優先順位の情報やＭＡＣアドレスなどの情報を記憶したものである。
【００８３】
経路情報３３ｃは、パケットの転送先に係る情報を記憶したものである。具体的には、経路情報３３ｃは、パケットの転送先のＭＡＣアドレスと、当該ＭＡＣアドレスが割り当てられたノードが接続されているポートの情報とを対応付けて記憶している。
【００８４】
マスターノード処理実行部３４は、自ノードがマスターノードとして設定された場合に、マスターノードがおこなうべき各種処理を実行する。具体的には、マスターノード処理実行部３４は、ネットワークにループ現象が発生するのを防止するため、一方のポートにおけるユーザデータのパケット中継をブロックし、また、ヘルスパケットを定期的に送信する処理などをおこなう。
【００８５】
また、マスターノード処理実行部３４は、パケットを受信した場合に、その宛先ＭＡＣアドレスを調べ、経路情報３３ｃを参照して適切なポートからパケットを送信する処理をおこなう。
【００８６】
トランジットノード処理実行部３５は、自ノードがトランジットノードとして設定された場合に、トランジットノードがおこなうべき各種処理を実行する。具体的には、トランジットノード処理実行部３５は、パケットを受信した場合に、そのＭＡＣ宛先アドレスを調べ、経路情報３３ｃを参照して適切なポートからパケットを送信する処理をおこなう。
【００８７】
経路情報学習処理部３６は、他のノードから経路情報３３ｃの再学習を要求するフラッシュパケットを受信した場合に、経路情報３３ｃの再学習を実行する。
【００８８】
イベント検出部３７は、自ノードの立ち上げや、リンクまたはノードに発生した障害などを検出する処理をおこなう。具体的には、イベント検出部３７は、電源投入がなされた場合、あるいは、再起動が実行された場合にそれを検知して、自ノードの立ち上げを検出する。
【００８９】
また、イベント検出部３７は、パケットの信号レベルの状態や、他のノードからの応答の有無などの情報に基づいて、自ノードに接続されているリンク、または、そのリンクに接続されている他のノードの障害の検出をおこなう。
【００９０】
障害を検出した場合には、イベント検出部３７は、トラップパケットを他のノードに送信する。特に、ノードがマスターノードである場合には、イベント検出部３７は、フラッシュパケットを他のノードに送信する処理をおこなう。
【００９１】
さらに、イベント検出部３７は、自ノードがマスターノードである場合に、自ノードが送信したヘルスパケットが所定の時間内に自ノードに戻ってくるか否かを調べることにより、ネットワークに発生した障害を検出する。
【００９２】
擬似マスターノード処理実行部３８は、イベント検出部３７により自ノードの立ち上げや障害の発生が検出された場合に、自ノードを擬似マスターノードとして設定し、擬似マスターノードがおこなうべき各種処理を実行する。この擬似マスターノード処理実行部３８は、ポートブロック処理部３８ａ、ヘルスパケット送信処理部３８ｂおよびノード設定部３８ｃを有する。
【００９３】
ポートブロック処理部３８ａは、イベント検出部３７により自ノードの立ち上げや障害の発生が検出された場合に、２つのポートのうち一方のポートでユーザデータのパケット中継をブロックする処理をおこなう。
【００９４】
ここで、自ノードに接続されているリンク、または、そのリンクに接続されている他のノードに発生した障害を検出した場合は、ポートブロック処理部３８ａは、障害側のポートをブロックする。
【００９５】
ヘルスパケット送信処理部３８ｂは、イベント検出部３７により自ノードの立ち上げや障害の発生が検出された場合に、優先順位の情報を含んだヘルスパケットを他のノードに送信する処理をおこなう。
【００９６】
ノード設定部３８ｃは、パケット送受信部３２がヘルスパケットを受信した場合に、ヘルスパケットに含まれる優先順位の情報を自ノード情報３３ａとして記憶している自ノードの優先順位の情報と比較して、自ノードの優先順位が高いか否かを判定する処理をおこなう。
【００９７】
そして、自ノードの優先順位が低い場合には、ノード設定部３８ｃは、自ノードをトランジットノードとして設定する。自ノードの優先順位が高い場合には、ノード設定部３８ｃは、つぎのヘルスパケットの受信を待ち受け、自ノードの優先順位が高いか否かを再度判定する。
【００９８】
自ノードの優先順位よりも高い優先順位の情報を含んだヘルスパケットを受信することなく、自ノードが送信したヘルスパケットを受信した場合には、ノード設定部３８ｃは、自ノードをマスターノードとして設定する。
【００９９】
ところで、図２で説明したように、障害２２が発生した場合には、障害２２が発生したリンクに接続されているノード２０3，２０4が擬似マスターノードに遷移するが、マスターノードであるノード２０1がトラップパケットＴ３，Ｔ４を受信する以前にヘルスパケットを送信していると、ノード２０3，２０4はそれを受信して即座にトランジットノードに遷移してしまうという問題が発生する。
【０１００】
そのため、ノード２０3，２０4のパケット送受信部３２は、トラップパケットＴ３，Ｔ４をマスターノードであるノード２０1が受信して、各ノードに記憶された経路情報をクリアするフラッシュパケットをノード２０1が送信するのを待ち受け、そのフラッシュパケットを受信した後にはじめてヘルスパケットの送受信をおこなう。
【０１０１】
図６は、擬似マスターノードのヘルスパケットの送受信許可処理を説明する図である。なお、図６は、図２に示したリンク障害発生時の場合に対応している。図６に示すように、ノード２０3，２０4は、障害を検出すると、トラップパケットをマスターノードであるノード２０1に送信する。
【０１０２】
マスターノードであるノード２０1は、定期的にヘルスパケットを送信しているが、擬似マスターノードであるノード２０3，２０4は、トラップパケットに対する応答であるフラッシュパケットを受信するまでは、受信したヘルスパケットを破棄する。
【０１０３】
トラップパケットを受信した後にノード２０3，２０4が実行する処理は、図２で説明した状態１７および状態１８の処理と同様である。これにより、ノード２０3，２０4が、ヘルスパケットを送信する前にマスターノードにより送信されたヘルスパケットを受信して、即座にトランジットノードに遷移してしまうという問題を解決することができる。
【０１０４】
また、各ノードの経路情報学習処理部３６は、フラッシュパケットを受信するごとに経路情報３３ｃの再学習をおこなうこととする。これにより、障害の発生が検出されるたびに送信経路の再学習をおこなうよう、再学習の回数を適切に管理することができる。
【０１０５】
図５の説明に戻ると、制御部３９は、データ伝送装置３０を全体制御する制御部であり、各機能部間のデータの授受などを司る。
【０１０６】
なお、本発明に係るノード設定処理は、あるノードをマスターノードとして強制的に設定したい場合にも対処することができる。図７は、マスターノードの強制設定処理について説明する図である。図７の例では、６つのノード２０1〜２０6によりリング型ネットワークが構成される場合が示されている。
【０１０７】
このマスターノードの設定処理においては、リング型ネットワークの立ち上げ時に、ノード２０4がマスターノードとして機能するよう、ノード２０4の優先順位が最も高く設定されている。その他の各ノード２０1〜２０3，２０5，２０6は、リング型ネットワークの立ち上げ時に、擬似マスターノードと呼ばれる状態に遷移する。
【０１０８】
そして、各ノード２０1〜２０6は、一方のポート２１1〜２１6を用いておこなわれるユーザデータのパケット中継をブロックするとともに、もう一方のポートからヘルスパケットＨ１〜Ｈ６を送信する（状態２９）。
【０１０９】
そして、各ノード２０1〜２０6が他のノード２０1〜２０6により送信されたヘルスパケットＨ１〜Ｈ６を受信すると、ヘルスパケットＨ１〜Ｈ６に含まれる優先順位の情報を取得し、取得した優先順位と自ノード２０1〜２０6に記憶していた自ノード２０1〜２０6の優先順位とを比較する。
【０１１０】
この場合、マスターノードであるノード２０4の優先順位が最も高いため、各ノード２０1〜２０3，２０5，２０6はトランジットノードに遷移し（状態３０，状態３１）、最終的にはマスターノードであるノード２０4が、自ノードが送信したヘルスパケットＨ４を受信する（状態３２）。
【０１１１】
このように、あらかじめマスターノードが固定的に設定される場合にも、本発明に係るノード設定処理は対応することができる。
【０１１２】
さらに、図１から図４では、すべてのノードが本発明のノード設定処理をおこなうデータ伝送装置３０からなるノードであることとしたが、１つのノードが本発明のノード設定処理をおこなうものでなく、単にパケットを中継するデータ中継ノードであっても、本発明に係るノード設定処理は対応することができる。
【０１１３】
図８は、データ伝送装置３０以外のノードを含む場合のノード設定処理を説明する図である。図８の例では、ノード２０3がマスターノードとして設定され、ポート２１3におけるユーザデータのパケット中継をブロックしている場合を示している。また、データ中継ノード２３とノード２０1とを接続しているリンクに障害２２が発生したものとする（状態３３）。
【０１１４】
ここで、ノード２０1〜２０5は、図５に示したデータ伝送装置３０により実現されるノードであり、データ中継ノード２３は、ノード２０1〜２０5により構成されるリング型ネットワークと、もう１つのリング型ネットワークとの両方に属し、パケットを中継する機能を有するノードである。
【０１１５】
この場合、ノード２０1は、障害２２の発生を検出し、自ノード２０1を擬似マスターノードに遷移させる。すなわち、ノード２０1は、障害２２が発生した方のポート２１1をブロックするとともに、トラップパケットＴ１を送信する（状態３４）。
【０１１６】
そして、マスターノードであるノード２０3は、トラップパケットＴ１を受信すると、トランジットノードに遷移し、ブロックしていたポート２１3を開放する。一方、擬似マスターノードであるノード２０1は、ヘルスパケットＨ１を定期的に送信し、障害２２が復旧されるまで擬似マスターノードとして機能する（状態３５）。
【０１１７】
そして、障害２２が復旧された場合には、ノード２０1は、自ノードが送信したヘルスパケットＨ１を受信するので、マスターノードに遷移する（状態３６）。このように、データ伝送装置３０以外のノードを含む場合においても、本発明のノード設定処理はそれに対応することができる。
【０１１８】
つぎに、本実施例に係るノード設定処理の処理手順について図９から図１２を用いて説明する。図９は、ノードの状態遷移を説明する図であり、図１０は、擬似マスターノード遷移処理の処理手順を示すフローチャートである。図１０で説明する擬似マスターノード遷移処理は、図９に示した遷移４、遷移５または遷移６の状態遷移に対応するものである。
【０１１９】
図９において、ディセーブル状態４０とは、ノードがリンクダウンした状態のことである。具体的には、データ伝送装置３０の電源が切られたり、データ伝送装置３０の再起動が実行されたりした場合、あるいは、ノードが擬似マスターノード４１やマスターノード４２、あるいは、トランジットノード４３として稼動していたが、そのノードが２つの障害を検出した場合（遷移１、遷移２、遷移３）などに、ノードはディセーブル状態に遷移する。
【０１２０】
図１０に示すように、まず、データ伝送装置３０のノード設定部３８ｃは、自ノードの稼動状態を検出する（ステップＳ１０１）。そして、ノード設定部３８ｃは、自ノードがディセーブル状態４０から立ち上げられたものであるか否かを調べる（ステップＳ１０２）。
【０１２１】
自ノードがディセーブル状態４０から立ち上げられたものである場合には（ステップＳ１０２，Ｙｅｓ）、ノード設定部３８ｃは、少なくとも１つのポートがリンクアップしているか否かを調べる（ステップＳ１０５）。そして、１つのポートもリンクアップしていない場合には（ステップＳ１０５，Ｎｏ）、ステップＳ１０１に移行して、それ以後の処理を継続する。
【０１２２】
少なくとも１つのポートがリンクアップしている場合には（ステップＳ１０５，Ｙｅｓ）、ノード設定部３８ｃは、自ノードの両側のポートをイネーブルにし（ステップＳ１０６）、自ノードを擬似マスターノードに設定して（ステップＳ１０７）、この擬似マスターノード遷移処理を終了する。このステップＳ１０２からステップＳ１０７の処理は、図９の遷移４に対応するものである。
【０１２３】
ステップＳ１０２において、自ノードがディセーブル状態４０から立ち上げられたものでない場合には（ステップＳ１０２，Ｎｏ）、ノード設定部３８ｃは、自ノードのどちらか一方のポート側に、イベント検出部３７により障害が検出されたか否かを調べる（ステップＳ１０３）。
【０１２４】
障害が検出された場合には（ステップＳ１０３，Ｙｅｓ）、ステップＳ１０７に移行して、ノード設定部３８ｃは、自ノードを擬似マスターノードに設定し、この擬似マスターノード遷移処理を終了する。ステップＳ１０３およびステップＳ１０７の処理は、図９の遷移５または遷移６に対応するものである。
【０１２５】
障害が検出されなかった場合には（ステップＳ１０３，Ｎｏ）、ノード設定部３８ｃは、自ノードがマスターノードであって、送信したヘルスパケットが所定の時間未受信であるか否かを調べる（ステップＳ１０４）。
【０１２６】
そして、ヘルスパケットが未受信である場合には（ステップＳ１０４，Ｙｅｓ）、ステップＳ１０７に移行して、ノード設定部３８ｃは、自ノードを擬似マスターノードに設定し、この擬似マスターノード遷移処理を終了する。ヘルスパケットを受信している場合には（ステップＳ１０４，Ｎｏ）、ステップＳ１０１に移行して、それ以後の処理を継続する。ステップＳ１０３、ステップＳ１０４およびステップＳ１０７の処理は、図９の遷移５に対応するものである。
【０１２７】
つぎに、擬似マスターノードからマスターノードあるいはトランジットノードに遷移する遷移処理の処理手順について説明する。図１１−１および図１１−２は、擬似マスターノードからマスターノードあるいはトランジットノードに遷移する遷移処理の処理手順を示すフローチャート（１）および（２）である。この遷移処理は、図９に示した遷移７および遷移８に対応するものである。
【０１２８】
図１１−１に示すように、まず、データ伝送装置３０のノード設定部３８ｃは、自ノードの両側のポートがリンクアップしており、かつ、自ノードが送信したヘルスパケットを受信したか否かを調べる（ステップＳ２０１）。
【０１２９】
自ノードの両側のポートがリンクアップしており、自ノードが送信したヘルスパケットを受信した場合には（ステップＳ２０１，Ｙｅｓ）、ノード設定部３８ｃは、自ノードをマスターノードに設定し（ステップＳ２０４）、この遷移処理を終了する。この処理は、図１で説明したマスターノードの設定処理に対応する。
【０１３０】
自ノードの両側のポートがリンクアップしていないか、または、自ノードが送信したヘルスパケットを受信していない場合には（ステップＳ２０１，Ｎｏ）、ノード設定部３８ｃは、自ノードの両側のポートがリンクアップしており、かつ、自ノードが強制的にマスターノードとなるよう設定されているか否かを調べる（ステップＳ２０２）。
【０１３１】
そして、自ノードの両側のポートがリンクアップしており、かつ、自ノードが強制的にマスターノードとなるよう設定されている場合には（ステップＳ２０２，Ｙｅｓ）、ステップＳ２０４に移行して、ノード設定部３８ｃは、自ノードをマスターノードに設定し、この遷移処理を終了する。この処理は、図７で説明したマスターノードの設定処理に対応する。
【０１３２】
自ノードの両側のポートがリンクアップしていないか、あるいは、自ノードが強制的にマスターノードとなるよう設定されていない場合には（ステップＳ２０２，Ｎｏ）、ノード設定部３８ｃは、一方のポート側がリンクダウンし、かつ、フラッシュパケットを受信し、かつ、自ノードに割り当てられた優先順位よりも低優先順位のヘルスパケットを受信したか否かを調べる（ステップＳ２０３）。
【０１３３】
一方のポート側がリンクダウンし、かつ、フラッシュパケットを受信し、かつ、低優先順位のヘルスパケットを受信した場合には（ステップＳ２０３，Ｙｅｓ）、ステップＳ２０４に移行して、ノード設定部３８ｃは、自ノードをマスターノードに設定し、この遷移処理を終了する。この処理は、図２または図３で説明したマスターノードの設定処理に対応する。また、ステップＳ２０１からステップＳ２０４の処理は、図９の遷移７に対応するものである。
【０１３４】
一方のポート側がリンクダウンしていないか、フラッシュパケットを受信していないか、または、低優先順位のヘルスパケットを受信していない場合には（ステップＳ２０３，Ｎｏ）、図１１−２に示されるように、ノード設定部３８ｃは、両側のポートがリンクアップしており、かつ、マスターノードからヘルスパケットを受信したか否かを調べる（ステップＳ２０４）。
【０１３５】
そして、両側のポートがリンクアップしており、かつ、マスターノードからヘルスパケットを受信した場合には（ステップＳ２０４，Ｙｅｓ）、ノード設定部３８ｃは、自ノードをトランジットノードに設定し（ステップＳ２０８）、この遷移処理を終了する。この処理は、図７で説明したトランジットノードの設定処理に対応する。
【０１３６】
両側のポートがリンクアップしていないか、あるいは、マスターノードからヘルスパケットを受信していない場合には（ステップＳ２０４，Ｎｏ）、ノード設定部３８ｃは、両側のポートがリンクアップしており、かつ、自ノードに割り当てられた優先順位よりも高優先順位のヘルスパケットを受信したか否かを調べる（ステップＳ２０５）。
【０１３７】
両側のポートがリンクアップしており、かつ、高優先順位のヘルスパケットを受信した場合には（ステップＳ２０５，Ｙｅｓ）、ステップＳ２０８に移行して、ノード設定部３８ｃは、自ノードをトランジットノードに設定し、この遷移処理を終了する。この処理は、図１で説明したトランジットノードの設定処理に対応する。
【０１３８】
両側のポートがリンクアップしていないか、または、高優先順位のヘルスパケットを受信していない場合には（ステップＳ２０５，Ｎｏ）、ノード設定部３８ｃは、一方のポートがリンクダウンし、かつ、フラッシュパケットを受信し、かつ、自ノードに割り当てられた優先順位よりも高優先順位のヘルスパケットを受信したか否かを調べる（ステップＳ２０６）。
【０１３９】
そして、一方のポートがリンクダウンし、かつ、フラッシュパケットを受信し、かつ、高優先順位のヘルスパケットを受信した場合には（ステップＳ２０６，Ｙｅｓ）、ステップＳ２０８に移行して、ノード設定部３８ｃは、自ノードをトランジットノードに設定し、この遷移処理を終了する。この処理は、図２および図３で説明したトランジットノードの設定処理に対応する。
【０１４０】
一方のポートがリンクダウンしていないか、フラッシュパケットを受信していないか、または、高優先順位のヘルスパケットを受信していない場合には（ステップＳ２０６，Ｎｏ）、ノード設定部３８ｃは、自ノードがマスターノードとして送信したヘルスパケットの受信タイムアウトが発生し、かつ、別のノードのヘルスパケットを受信したか否かを調べる（ステップＳ２０７）。
【０１４１】
そして、ヘルスパケットの受信タイムアウトが発生し、かつ、別のノードのヘルスパケットを受信した場合には（ステップＳ２０７，Ｙｅｓ）、ステップＳ２０８に移行して、ノード設定部３８ｃは、自ノードをトランジットノードに設定し、この遷移処理を終了する。この処理は、図４で説明したトランジットノードの設定処理に対応する。
【０１４２】
ヘルスパケットの受信タイムアウトが発生していないか、または、別のノードのヘルスパケットを受信しない場合には（ステップＳ２０７，Ｎｏ）、ステップＳ２０１に移行して、それ以降の処理を再度実行する。上記ステップＳ２０４からステップＳ２０８の処理は、図９に示した遷移８に対応するものである。
【０１４３】
つぎに、マスターノードをトランジットノードに遷移させる遷移処理の処理手順について説明する。図１２は、マスターノードをトランジットノードに遷移させる遷移処理の処理手順を示すフローチャートである。なお、図１２に示す処理は、図９に示した遷移９に対応する。
【０１４４】
図１２に示すように、まず、データ伝送装置３０のノード設定部３８ｃは、マスターノード４２である自ノードが、自ノードに割り当てられた優先順位よりも高優先順位のヘルスパケットを受信したか否かを調べる（ステップＳ３０１）。
【０１４５】
そして、高優先順位のヘルスパケットを受信した場合には（ステップＳ３０１，Ｙｅｓ）、ノード設定部３８ｃは、自ノードをトランジットノードに遷移させ（ステップＳ３０３）、この遷移処理を終了する。
【０１４６】
高優先順位のヘルスパケットを受信していない場合には（ステップＳ３０１，Ｎｏ）、ノード設定部３８ｃは、自ノードがトラップパケットを受信したか否かを調べる（ステップＳ３０２）。
【０１４７】
そして、トラップパケットを受信した場合には（ステップＳ３０２，Ｙｅｓ）、ステップＳ３０３に移行して、ノード設定部３８ｃは、自ノードをトランジットノードに遷移させ、この遷移処理を終了する。トラップパケットを受信していない場合には（ステップＳ３０２，Ｎｏ）、そのままこの遷移処理を終了する。
【０１４８】
なお、図６では、マスターノードであるノード２０1がフラッシュパケットを送信する場合を示したが、擬似マスターノードであるノード２０3，２０4がトラップパケットを送信するのに加えて、さらにフラッシュパケットを送信することとしてもよい。
【０１４９】
図１３は、擬似マスターノードがトラップパケットおよびフラッシュパケットを送信する場合のヘルスパケットの送受信許可処理を説明する図である。図１３の場合には、マスターノードであるノード２０1は、トラップパケットおよびフラッシュパケットを受信したことをノード２０3，２０4に通知するＡＣＫ（Acknowledgement）パケットを送信する。
【０１５０】
擬似マスターノードであるノード２０3，２０4は、このＡＣＫパケットを受信するまでは、受信したヘルスパケットを破棄する。そして、ノード２０3，２０4は、ＡＣＫパケットを受信してはじめてヘルスパケットの送受信を許可する。
【０１５１】
この場合、各ノードの経路情報学習処理部３６は、フラッシュパケットを受信するごとに経路情報３３ｃを再学習をおこなうこととする。これにより、障害の発生が検出されるたびに送信経路の再学習をおこなうよう、再学習の回数を適切に管理することができる。
【０１５２】
上述してきたように、本実施例では、データ伝送装置３０のポートブロック処理部３８ａが、リング型ネットワークに接続されたノードの一方のポート側でおこなわれるユーザデータの中継をブロックし、ヘルスパケット送信処理部３８ｂが、ノードをマスターノードに設定する優先順位に係る情報を含んだヘルスパケットを送信し、ノード設定部３８ｃが、そのヘルスパケットを受信した場合、または、他のノードの優先順位に係る情報を含んだヘルスパケットを受信した場合に、その優先順位に係る情報に基づいてノードをマスターノードに設定するか否かを判定することとしたので、リング型ネットワークにおいてマスターノードを適切かつ効率的に設定することができる。
【０１５３】
また、本実施例では、ノード設定部３８ｃによりノードをマスターノードに設定しないと判定された場合に、ヘルスパケット送信処理部３８ｂが、優先順位に係る情報を含んだヘルスパケットの送信を中止することとしたので、不必要なヘルスパケットの送信を抑制することができる。
【０１５４】
また、本実施例では、イベント検出部３７が、リング型ネットワークに発生した障害を検出し、ヘルスパケット送信処理部３８ｂが、障害が検出された場合に、優先順位に係る情報を含んだヘルスパケットを送信することとしたので、障害が発生した場合に、マスターノードを適切かつ効率的に設定することができる。
【０１５５】
また、本実施例では、ノードがマスターノードである場合に、イベント検出部３７が、当該ノードが送信したヘルスパケットが当該ノードに到達するか否かを調べることによりリング型ネットワークに発生した障害を検出することとしたので、効率的に障害の検出をおこなうことができ、障害発生時にマスターノードを適切かつ効率的に設定することができる。
【０１５６】
また、本実施例では、ノードがマスターノードであり、当該ノードがユーザデータの中継をブロックしているポート側に接続されたリンク、または、当該リンクに接続されたノードに障害が発生した場合に、ノード設定部３８ｃが、当該ノードがマスターノードである状態を維持するよう判定することとしたので、マスターノードの状態を維持するよう適切かつ効率的に判定をおこなうことができる。
【０１５７】
また、本実施例では、イベント検出部３７が、自ノードがトランジットノードである場合に、障害を検出した場合に障害を検出したことをマスターノードに通知するトラップパケットを送信することとしたので、マスターノードに障害の発生を通知することができ、マスターノードに障害の発生に対して適切な処理を実行させることができる。
【０１５８】
また、本実施例では、ノード設定部３８ｃが、マスターノードからトラップパケットの受信に応じて送信されたフラッシュパケットを受信した後、優先順位に係る情報を含んだヘルスパケットを受信した場合、または、優先順位に係る情報を含んだヘルスパケットを他のノードから受信した場合に、優先順位に係る情報に基づいてノードをマスターノードに設定するか否かを判定することとしたので、マスターノードがトラップパケットを受信する以前に送信したヘルスパケットによりノードをマスターノードに設定するか否かの判定がおこなわれることを防ぐことができる。
【０１５９】
また、本実施例では、経路情報学習処理部３６が、トラップパケットをマスターノードが受信した際に当該マスターノードにより送信されるフラッシュパケットを受信するごとに、経路情報３３ｃの再学習を開始することとしたので、障害の発生が検出されるたびに経路情報３３ｃの再学習をおこなうよう、再学習の回数を適切に管理することができる。
【０１６０】
また、本実施例では、イベント検出部３７が、障害を検出した場合にフラッシュパケットを送信することとしたので、他のノードに経路情報３３ｃの再学習を要求することができ、他のノードに障害の発生に対して適切な処理を実行させることができる。
【０１６１】
また、本実施例では、ノード設定部３８ｃが、マスターノードからフラッシュパケットの受信に応じて送信されたＡＣＫパケットを受信した後、優先順位に係る情報を含んだヘルスパケットを受信した場合、または、他のノードの優先順位に係る情報を含んだヘルスパケットを受信した場合に、優先順位に係る情報に基づいてノードをマスターノードに設定するか否かを判定することとしたので、マスターノードがフラッシュパケットを受信する以前に送信したヘルスパケットによりノードをマスターノードに設定するか否かの判定がおこなわれることを防ぐことができる。
【０１６２】
また、本実施例では、フラッシュパケットを受信するごとに、経路情報学習処理部３６が、経路情報３３ｃの再学習を開始することとしたので、障害の発生が検出されるたびに経路情報３３ｃの再学習をおこなうよう、再学習の回数を適切に管理することができる。
【０１６３】
また、本実施例では、少なくともデータを中継する機能を有するデータ中継ノード２３がリング型ネットワークを構成するノードとして自ノードに接続されている場合に、イベント検出部３７が、データ中継ノード２３またはデータ中継ノード２３と自ノードとを接続しているリンクに発生した障害を検出し、ヘルスパケット送信処理部３８ｂが、障害が検出された場合に、優先順位に係る情報を含んだヘルスパケットを送信することとしたので、自ノードをマスターノードに設定するか否かを判定する機能をもたないデータ中継ノード２３がリング型ネットワークに含まれている場合でも、マスターノードを適切かつ効率的に設定することができる。
【０１６４】
なお、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをコンピュータで実行することによって実現することができる。そこで、以下では、図１４を用いて、上記各種処理を実現するプログラムを実行するコンピュータの一例について説明する。図１４は、図５に示したデータ伝送装置３０となるコンピュータのハードウェア構成を示す図である。
【０１６５】
このコンピュータは、ユーザからの入力を受け付ける入力ボタン１００、各種情報を出力するＬＥＤ（Light  Emitting  Diode）１０１、メインメモリ１０２、フラッシュメモリ１０３、ＣＰＵ（Central  Processing  Unit）１０４および読出し専用メモリ１０５をバス１０６で接続して構成される。
【０１６６】
そして、読出し専用メモリ１０５には、データ伝送装置３０の機能と同様の機能を発揮するプログラム、つまり、ノード設定プログラム１０５ａが記憶されている。なお、ノード設定プログラム１０５ａは、適宜分散して記憶することとしてもよい。
【０１６７】
そして、ＣＰＵ１０４が、ノード設定プログラム１０５ａを読出し専用メモリ１０５から読み出して実行することにより、ノード設定プロセス１０４ａとして機能するようになる。
【０１６８】
このノード設定プロセス１０４ａは、図５に示したパケット送受信部３２、マスターノード処理実行部３４、トランジットノード処理実行部３５、経路情報学習処理部３６、イベント検出部３７、擬似マスターノード処理実行部３８および制御部３９の各機能部に対応する。
【０１６９】
また、フラッシュメモリ１０３には、自ノード情報１０３ａ、他ノード情報１０３ｂおよび経路情報１０３ｃが記憶される。なお、自ノード情報１０３ａ、他ノード情報１０３ｂおよび経路情報１０３ｃは、図５に示した自ノード情報３３ａ、他ノード情報３３ｂおよび経路情報３３ｃに対応する。
【０１７０】
そして、ＣＰＵ１０４は、自ノード情報１０３ａ、他ノード情報１０３ｂおよび経路情報１０３ｃをフラッシュメモリ１０３に記憶するとともに、自ノード情報１０３ａ、他ノード情報１０３ｂおよび経路情報１０３ｃをフラッシュメモリ１０３から読み出してメインメモリ１０２に格納し、メインメモリ１０２に格納された自ノード情報１０２ａ、他ノード情報１０２ｂおよび経路情報１０２ｃに基づいて各種データ処理を実行する。
【０１７１】
ところで、ノード設定プログラム１０５ａは、必ずしも最初から読出し専用メモリ１０５に記憶させておく必要はない。たとえば、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」、または、コンピュータの内外に備えられるハードディスクドライブ（ＨＤＤ）などの「固定用の物理媒体」、さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータに接続される「他のコンピュータ（またはサーバ）」などに各プログラムを記憶しておき、コンピュータがこれらから各プログラムを読み出して実行するようにしてもよい。
【０１７２】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、特許請求の範囲に記載した技術的思想の範囲内において種々の異なる実施例にて実施されてもよいものである。
【０１７３】
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。
【０１７４】
この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１７５】
また、図示したデータ伝送装置３０の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、データ伝送装置３０の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０１７６】
さらに、データ伝送装置３０にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【産業上の利用可能性】
【０１７７】
以上のように、本発明に係るノード設定装置、ネットワークシステム、ノード設定方法およびノード設定プログラムは、リング型ネットワークにおいてマスターノードを適切かつ効率的に設定することが必要なリング型ネットワークシステムに有用である。
【図面の簡単な説明】
【０１７８】
【図１】図１は、リング型ネットワークの立ち上げ時のノード設定処理の概念を説明する図である。
【図２】図２は、リンク障害発生時のノード設定処理の概念を説明する図である。
【図３】図３は、ノード障害発生時のノード設定処理の概念を説明する図である。
【図４】図４は、ヘルスパケット未検出時のノード設定処理の概念を説明する図である。
【図５】図５は、本実施例に係るデータ伝送装置３０の機能構成を示す図である。
【図６】図６は、擬似マスターノードのヘルスパケットの送受信許可処理を説明する図である。
【図７】図７は、マスターノードの強制設定処理について説明する図である。
【図８】図８は、データ伝送装置３０以外のノードを含む場合のノード設定処理を説明する図である。
【図９】図９は、ノードの状態遷移を説明する図である。
【図１０】図１０は、擬似マスターノード遷移処理の処理手順を示すフローチャートである。
【図１１−１】図１１−１は、擬似マスターノードからマスターノードあるいはトランジットノードに遷移する遷移処理の処理手順を示すフローチャート（１）である。
【図１１−２】図１１−２は、擬似マスターノードからマスターノードあるいはトランジットノードに遷移する遷移処理の処理手順を示すフローチャート（２）である。
【図１２】図１２は、マスターノードをトランジットノードに遷移させる遷移処理の処理手順を示すフローチャートである。
【図１３】図１３は、擬似マスターノードがトラップパケットおよびフラッシュパケットを送信する場合のヘルスパケットの送受信許可処理を説明する図である。
【図１４】図５に示したデータ伝送装置３０となるコンピュータのハードウェア構成を示す図である。
【図１５】図１５は、従来のＥＡＰＳの技術を説明する図である。
【図１６】図１６は、従来のデータ中継方法を説明する図である。
【図１７】図１７は、ノード障害発生時の従来のデータ中継方法を説明する図である。
【符号の説明】
【０１７９】
１０1〜１０6，１３1〜１３6，２０1〜２０6    ノード
１２，１５，１６，２２    障害
１１1，１１4，１１5，１４1，１４3，１４5，２１1〜２１6    ポート
２３    データ中継ノード
３０    データ伝送装置
３１ａ，３１ｂ    ポート
３２    パケット送受信部
３３    記憶部
３３ａ    自ノード情報
３３ｂ    他ノード情報
３３ｃ    経路情報
３４    マスターノード処理実行部
３５    トランジットノード処理実行部
３６    経路情報学習処理部
３７    イベント検出部
３８    擬似マスターノード処理実行部
３８ａ    ポートブロック処理部
３８ｂ    ヘルスパケット送信処理部
３８ｃ    ノード設定部
３９    制御部
４０    ディセーブル状態
４１    擬似マスターノード
４２    マスターノード
４３    トランジットノード
【図１】
0004621212.tif 000002
【図２】
0004621212.tif 000003
【図３】
0004621212.tif 000004
【図４】
0004621212.tif 000005
【図５】
0004621212.tif 000006
【図６】
0004621212.tif 000007
【図７】
0004621212.tif 000008
【図８】
0004621212.tif 000009
【図９】
0004621212.tif 000010
【図１０】
0004621212.tif 000011
【図１１−１】
0004621212.tif 000012
【図１１−２】
0004621212.tif 000013
【図１２】
0004621212.tif 000014
【図１３】
0004621212.tif 000015
【図１４】
0004621212.tif 000016
【図１５】
0004621212.tif 000017
【図１６】
0004621212.tif 000018
【図１７】
0004621212.tif 000019