(57)【要約】【課題】多重の障害が起きた場合でも任意のノード間で通信が可能で、また、ノード故障が発生した場合でも故障したノードと同等のノードを使用して通信が可能となること。【解決手段】０系ノード１１〜１８と１系２１〜２８とは、二重化されている。各ノードは、隣接するノード、二重化相手ノード、接続する回線の健全性を判断し、送出するリング回線の切り替えが必要と判断したとき入力データに付随する経路切り替えを示す情報を参照し、未更新のとき更新操作を加えて経路を切り替え、二重化相手ノードから他ノード宛のデータが入力したとき、自ノードが属する二重リングネットワークにおける使用リング回線として、入力データに付随する送出リングを示す情報と経路切り替えを示す情報とに基づき判断した転送前の使用リング回線と同方向のリング回線を選択することを行う。【選択図】      図１
2005033243.tif 000002
【特許請求の範囲】
【請求項１】
互いに相反する伝送方向性を持つ２つのリング回線で構成される二重リング上に同数個のノードを配置した第１二重リングネットワークおよび第２二重リングネットワークで構成され、かつ第１二重リングネットワーク上の１つのノードと第２二重リングネットワーク上の１つのノードとを双方向に通信可能な回線で接続することでノードの二重化を図ったリングネットワークであって、
各ノードは、
生成したデータをリング回線に送出する際に送出リングを示す情報を付随させる手段と、
各リング回線の下流側に隣接するノードおよび接続するリング回線の健全性と二重化相手ノードおよび接続する回線の健全性とを判断する手段と、
入力した他ノード宛のデータについて送出するリング回線の切り替えが必要と判断したとき当該入力データに付随する経路切り替えを示す情報を参照し、未更新のとき更新操作を加えて経路切り替えを実施する手段と、
二重化相手ノードから他ノード宛のデータが入力したとき、自ノードが属する二重リングネットワークにおける使用リング回線として、当該入力データに付随する送出リングを示す情報と経路切り替えを示す情報とに基づき判断した前記二重化相手ノードが転送前に使用していたリング回線と同方向のリング回線を選択する手段と、
を備えることを特徴とするリングネットワーク。
【請求項２】
互いに相反する伝送方向性を持つ２つのリング回線で構成される二重リング上に同数個のノードを配置した第１二重リングネットワークおよび第２二重リングネットワークで構成され、かつ第１二重リングネットワーク上の１つのノードと第２二重リングネットワーク上の１つのノードとを双方向に通信可能な回線で接続することでノードの二重化を図ったリングネットワークにおいて、
各ノードは、
生成したデータをリング回線に送出する際に送出リングを示す情報を付随させる工程と、
リング回線から他ノード宛のデータが入力したとき、同方向の下流側に隣接するノードおよび接続するリング回線の健全性と、二重化相手ノードおよび接続する回線の健全性と、入力データのリング回線と逆向きのリング回線における下流側に隣接するノードおよび接続するリング回線の健全性とを所定の順序で判断する工程と、
リング回線から入力した他ノード宛のデータについてその入力データのリング回線と逆向きのリング回線に送出する経路切り替えが必要と判断したとき当該入力データに付随する経路切り替えを示す情報を参照し、未更新のとき更新操作を加えて経路切り替えを実施する工程と、
二重化相手ノードから他ノード宛のデータが入力したとき、自ノードが属する二重リングネットワークにおける使用リング回線として、当該入力データに付随する送出リングを示す情報と経路切り替えを示す情報とに基づき判断した前記二重化相手ノードが転送前に使用していたリング回線と同方向のリング回線を選択する工程と、
前記選択したリング回線と逆向きのリング回線に送出する経路切り替えが必要と判断したとき当該二重化相手ノードからの入力データに付随する経路切り替えを示す情報を参照し、未更新のとき更新操作を加えて経路切り替えを実施する工程と、
を含むことを特徴とするリングネットワークにおける通信方法。
【請求項３】
互いに相反する伝送方向性を持つ２つのリング回線で構成される二重リング上に偶数個のノードを配置した二重リングネットワークで構成され、かつ任意の２ノード同士を双方向に通信可能な回線で接続することでノードの二重化を図ったリングネットワークであって、
各ノードは、
生成したデータをリング回線に送出する際に送出リングを示す情報を付随させる手段と、
各リング回線の下流側に隣接するノードおよび接続するリング回線の健全性と二重化相手ノードおよび接続する回線の健全性とを判断する手段と、
入力した他ノード宛のデータについて送出するリング回線の切り替えが必要と判断したとき当該入力データに付随する経路切り替えを示す情報を参照し、未更新のとき更新操作を加えて経路切り替えを実施する手段と、
二重化相手ノードから他ノード宛のデータが入力したとき、自ノードの使用リング回線として、当該データに付随する送出リングを示す情報と経路切り替えを示す情報と二重化相手ノードに転送したか否かを示す情報とに基づき判断した前記二重化相手ノードが転送前に使用していたリング回線と逆方向のリング回線を選択する手段と、
二重化相手ノードから入力した他ノード宛のデータを前記選択したリング回線に送出する際に、当該データに付随する二重化相手ノードに転送したか否かを示す情報に更新操作を加える手段と、
を備えたことを特徴とするリングネットワーク。
【請求項４】
互いに相反する伝送方向性を持つ２つのリング回線で構成される二重リング上に偶数個のノードを配置した二重リングネットワークで構成され、かつ任意の２ノード同士を双方向に通信可能な回線で接続することでノードの二重化を図ったリングネットワークにおいて、
各ノードは、
生成したデータをリング回線に送出する際に送出リングを示す情報を付随させる工程と、
リング回線から他ノード宛のデータが入力したとき、同方向の下流側に隣接するノードおよび接続するリング回線の健全性と、二重化相手ノードおよび接続する回線の健全性と、入力データのリング回線と逆向きのリング回線における下流側に隣接するノードおよび接続するリング回線の健全性とを所定の順序で判断する工程と、
リング回線から入力した他ノード宛のデータについてその入力データのリング回線と逆向きのリング回線に送出する経路切り替えが必要と判断したとき当該入力データに付随する経路切り替えを示す情報を参照し、未更新のとき更新操作を加えて経路切り替えを実施する工程と、
二重化相手ノードから他ノード宛のデータが入力したとき、自ノードの使用リング回線として、当該データに付随する送出リングを示す情報と経路切り替えを示す情報と二重化相手ノードに転送したか否かを示す情報とに基づき判断した前記二重化相手ノードが転送前に使用していたリング回線と逆方向のリング回線を選択する工程と、
二重化相手ノードから入力した他ノード宛のデータを前記選択したリング回線に送出する際に、当該データに付随する二重化相手ノードに転送したか否かを示す情報に更新操作を加える工程と、
前記選択したリング回線と逆向きのリング回線に送出する経路切り替えが必要と判断したとき当該二重化相手ノードからの入力データに付随する経路切り替えを示す情報を参照し、未更新のとき更新操作を加えて経路切り替えを実施する工程と、
を含むことを特徴とするリングネットワークにおける通信方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、互いに相反する伝送方向性を持つ２つのリング回線を介して複数のノードが接続されるリングネットワークおよびリングネットワークにおける通信方法に関するものである。
【０００２】
【従来の技術】
互いに相反する伝送方向性を持つ２つのリング回線を介して複数のノードが接続されるリングネットワークでは、ノード間を結ぶ回線が故障しても逆方向の経路を使って通信できるので、非リングネットワークと比較して、障害に対して強く、従来からＦＤＤＩ（Ｆｉｂｅｒ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄａｔａ  Ｉｎｔｅｒｆａｃｅ）やＳＤＨ（Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｉｇｉｔａｌ  Ｈｉｅｒａｒｃｈｙ）において使用され、その制御アルゴリズムも標準化機関によって規定されている。例えば、ＳＤＨによる２Ｆ−ＢＬＳＲ（２−Ｆｉｂｅｒ  Ｂｉ−ｄｉｒｅｃｔｉｏｎａｌ  Ｌｉｎｅ  Ｓｗｉｔｃｈｉｎｇ）がある。この２Ｆ−ＢＬＳＲでは、障害発生時に高速に経路を切り替えることにより、トラヒックの瞬断時間を短時間に抑えることが可能である。
【０００３】
また、リング回線の物理層がイーサネット（Ｒ）の場合にも適用可能なＲＰＲ（Ｒｅｓｉｌｉｅｎｔ  Ｐａｃｋｅｔ  Ｒｉｎｇ）と呼ばれる方式もあり、ＩＥＥＥ８０２．１７において標準化作業が行われている。ＲＰＲプロトコルでは、物理層はＳＤＨも適用可能である。ＲＰＲでは、リンクの障害時に５０ミリ秒以内に切り替えを行う規定となっている。以下、概要を説明する。
【０００４】
すなわち、ＲＰＲプロトコルでは、両方向のリングを使用してデータを流すことができる。ＲＰＲプロトコルでは、制御フレームをリング上に周期的に送信することで、リング状のノード配置（トポロジ）を学習し、送信ノードは、データをリング上に送信するときに、データ内の宛先ノードを見て、その宛先ノードまでの通過ノード数の少ない方のリングを選択して送出する。
【０００５】
この場合、送信ノードは、送信したリングを示す送出リング情報をデータに付加して送信する。受信ノードでは、データに付加されている送出リング情報をチェックし、受信したリングと同一のリングでない場合は、データを取り込まずそのまま下流に転送するようになっている。
【０００６】
また、各ノードは、故障個所情報をノード間で制御フレームを使用してやりとりしているので、一方のリング回線に障害が生じた場合には、故障発生後しばらくすると全ノードが故障位置を認識することができる。そして、障害箇所を回避する経路切り替えを「ラッピング」および「ステアリング」と呼ばれる２通りの方法で行うようになっている。
【０００７】
「ラッピング」は、障害箇所を挟む２つのノードが実施する方法である。すなわち、受信されたデータが障害箇所を挟んで下流側に位置する他方のノードに向かう場合には、その下流側に位置する他方のノードに送信せず自ノード内で折返しを行い、逆方向の健全回線に送出する方法である。また、「ステアリング」は、障害発生を認識した送信ノードがリング切り替えを行う方法である。
【０００８】
ラッピングとステアリングとを比較すると、ラッピングでは、故障箇所の両隣のノードだけの制御でよいのに対し、ステアリングでは、送信ノードが故障箇所を認識する必要がある。したがって、ラッピングの方が高速に切り替え可能である。ただし、ラッピングでは、ステアリングと比較して、通過ノード数が多くなり、遅延時間が大きくなる。しかし、ＲＰＲプロトコルにおいては、ラッピングを用いてもステアリングを用いても切り替え時間は５０ミリ秒以内との規定になっている。
【０００９】
ところで、ＲＰＲプロトコルでは、双方のリングで障害が生じた場合や同じリングでも複数箇所にて障害が生じた場合は、通信不可となる場合が存在する。これは、ＲＰＲプロトコルに限らず、２重リングネットワークのトポロジにおいて生じる共通の問題である。そこで、この２重リングネットワークでの２重障害に対処する方策として、例えば特許文献１では、第３のリングを導入する技術が開示されている。
【００１０】
すなわち、導入する第３のリングは、その伝送方向は、既に存在する２つのリングの一方と同じであるが、無障害時では使用せず、障害発生時に迂回路として使用する予備リングとしての機能を持つようになっている。
【００１１】
【特許文献１】
特開２００１−１６２４０号公報（図１）
【００１２】
【発明が解決しようとする課題】
しかしながら、特許文献１に開示された技術では、予備リングと同じ向きのリングにおいて複数箇所で故障した場合には、故障部分に予備リングの回線を使用することで通信可能であるが、あるノード間で、予備リングとその予備リングと同じ向きのリングとの双方が故障し、かつ他のノード間で予備リングと逆方向のリングが故障した場合には通信不可となるノード間の組み合わせが生じる。
【００１３】
また、特許文献１に開示された技術では、あるノードが故障し、かつ予備リングと逆方向のリングのどこかの回線が１箇所でも故障した場合にも、通信不可となるノード間の組み合わせが生じる。
【００１４】
さらに、従来、一般に使用されている二重リングネットワークや特許文献１に開示された三重リングネットワークである予備リングを用いた「光リングネットワーク」では、ノードは二重化されていないので、ノードが故障すると、故障したノードとは通信できなくなるという問題がある。
【００１５】
この発明は、上記に鑑みてなされたもので、多重の障害が起きた場合でも任意のノード間で通信可能となる構成を持つとともに、ノード故障が発生した場合でも故障したノードと同等のノードを使用して通信可能となる構成を持つリングネットワークおよびリングネットワークにおける通信方法を得ることを目的とする。
【００１６】
【課題を解決するための手段】
上記目的を達成するため、この発明にかかるリングネットワークは、互いに相反する伝送方向性を持つ２つのリング回線で構成される二重リング上に同数個のノードを配置した第１二重リングネットワークおよび第２二重リングネットワークで構成され、かつ第１二重リングネットワーク上の１つのノードと第２二重リングネットワーク上の１つのノードとを双方向に通信可能な回線で接続することでノードの二重化を図ったリングネットワークであって、各ノードは、生成したデータをリング回線に送出する際に送出リングを示す情報を付随させる手段と、各リング回線の下流側に隣接するノードおよび接続するリング回線の健全性と二重化相手ノードおよび接続する回線の健全性とを判断する手段と、入力した他ノード宛のデータについて送出するリング回線の切り替えが必要と判断したとき当該入力データに付随する経路切り替えを示す情報を参照し、未更新のとき更新操作を加えて経路切り替えを実施する手段と、二重化相手ノードから他ノード宛のデータが入力したとき、自ノードが属する二重リングネットワークにおける使用リング回線として、当該入力データに付随する送出リングを示す情報と経路切り替えを示す情報とに基づき判断した前記二重化相手ノードが転送前に使用していたリング回線と同方向のリング回線を選択する手段とを備えることを特徴とする。
【００１７】
この発明によれば、二重リングネットワークを二重化し、その二重化した二重リングネットワーク相互間の対応するノード間を回線で接続することでノードを二重化し、各ノードが、隣接するノードおよび接続するリング回線の健全性と二重化相手ノードおよび接続する回線の健全性とを判断して障害箇所を回避した適切な経路を選択し、データに付随する送出リングを示す情報に基づき経路切り替えを制御し、データに付随する送出リングを示す情報と経路切り替えを示す情報とに基づき二重化ノード間を跨ぐデータの使用リングを制御する。これによって、多重の障害が起きた場合でも任意のノード間で通信することが可能となる。また、ノード故障が発生した場合でも故障したノードと同等のノードを使用して通信が可能となる。さらに、隣接するノードおよび接続するリング回線の健全性と二重化相手ノードおよび接続する回線の健全性との判断は、高速に行えるので、故障が発生しても高速に経路切り替えを行うことができる。なお、この発明のリングネットワークは、偶数個のノードを備える１つの二重リングネットワークにおいて、任意の２つのノードを回線で接続して二重化を図る構成とすることもできる。
【００１８】
【発明の実施の形態】
以下に添付図面を参照して、この発明にかかるリングネットワークおよびリングネットワークにおける通信方法の好適な実施の形態を詳細に説明する。
【００１９】
実施の形態１．
図１は、この発明の実施の形態１であるリングネットワークの構成を示す全体図である。図１に示すように、実施の形態１によるリングネットワークは、０系二重リングネットワーク１と１系二重リングネットワーク２とで構成され、かつ相互間で連系して通信を行うように構成されている。
【００２０】
０系二重リングネットワーク１と１系二重リングネットワーク２とは、それぞれ、同一の構成を有している。すなわち、０系二重リングネットワーク１は、相反する伝送方向性を持つリング状回線である１次リング３１と２次リング３２とからなる二重リング上に、例えば、８台のノード１１〜ノード１８が配置されるとすると、１系二重リングネットワーク２は、同様に、１次リング３１と同方向の１次リング３３と、２次リング３２と同方向の２次リング３４とからなる二重リング上に、同数のノード２１〜ノード２８が配置される。
【００２１】
そして、０系二重リングネットワーク１と１系二重リングネットワーク２との間では、ノード１１とノード２１、ノード１２とノード２２、ノード１３とノード２３、ノード１４とノード２４、ノード１５とノード２５、ノード１６とノード２６、ノード１７とノード２７、ノード１８とノード２８は、それぞれ、同一の構成ないしは機能を持ち、回線４１と回線５１、回線４２と回線５２、回線４３と回線５３、回線４４と回線５４、回線４５と回線５５、回線４６と回線５６、回線４７と回線５７、回線４８と回線５８をそれぞれ介して双方向に通信でき、一方が故障したときは他方がいわゆる予備系として働くようになっている。
【００２２】
すなわち、ノード１１とノード２１、ノード１２とノード２２、ノード１３とノード２３、ノード１４とノード２４、ノード１５とノード２５、ノード１６とノード２６、ノード１７とノード２７、ノード１８とノード２８は、それぞれ、二重化されている。各ノードの構成は、図示省略したが、次の（１）〜（５）の機能を持つ通信制御部を備えている。
【００２３】
（１）生成したデータをリング回線に送出する際に送出リングを示す情報を付随させる。このとき、初期値を与えた経路切り替えを示す情報を付随させる。（２）リング回線から他ノード宛のデータが入力したとき、同方向の下流側に隣接するノードおよび接続するリング回線の健全性と、二重化相手ノードおよび接続する回線の健全性と、入力データのリング回線と逆向きのリング回線における下流側に隣接するノードおよび接続するリング回線の健全性とを所定の順序で判断する。（３）リング回線から入力した他ノード宛のデータについてその入力データのリング回線と逆向きのリング回線に送出する経路切り替えが必要と判断したとき当該入力データに付随する経路切り替えを示す情報を参照し、未更新のとき更新操作を加えて経路切り替えを実施する。
【００２４】
（４）二重化相手ノードから他ノード宛のデータが入力したとき、自ノードが属する二重リングネットワークにおける使用リング回線として、当該入力データに付随する送出リングを示す情報と経路切り替えを示す情報とに基づき判断した前記二重化相手ノードが転送前に使用していたリング回線と同方向のリング回線を選択する。（５）前記選択したリング回線と逆向きのリング回線に送出する経路切り替えが必要と判断したとき当該二重化相手ノードからの入力データに付随する経路切り替えを示す情報を参照し、未更新のとき更新操作を加えて経路切り替えを実施する。
【００２５】
次に、図１〜図７を参照して、実施の形態１によるリングネットワークにおいて実施される通信方法について説明する。なお、図２は、図１に示すノードが隣接ノードから受信したデータをいずれの経路に転送するかの選択動作を説明する図である。図３は、図１に示すノードが他系ノードから受信したデータをいずれの経路に転送するかの選択動作を説明する図である。図４は、図１に示すノードにおけるデータ受信時の処理手順を説明するフローチャートである。図５は、図４に示すデータ受信時の処理手順において行われる使用リングの決定方法を説明する図である。図６は、図１に示すネットワークにおいて複数箇所のノード間で回線障害が発生した場合の通信方法を説明する図である。図７は、図１に示すネットワークにおいて複数箇所のノード間で回線障害が発生し、さらにノードが故障した場合の通信方法を説明する図である。
【００２６】
まず、各ノードの基本的な動作について説明する。各ノードは、（１）データを自ノードで生成して送信する、（２）他ノードから届いたデータを取り込む、（３）他ノードから届いたデータを中継転送する、の３種類の動作を行う。なお、使用するプロトコルは、ＲＰＲプロトコルに限らず任意であるが、ここでは、理解を容易にするため、ＲＰＲプロトコルが持つ機能を利用して説明する。
【００２７】
（１）データを自ノードで生成するときは、二重化されたノードのどちらか一方からリング上にデータを送出する。二重化されたノードの一方が故障していれば、故障していない方のノードから送信し、二重化されたノードが共に正常であれば、どちらか一方を選択してデータを送信する。ここでは、０系ノードから送出するとして説明を行う。
【００２８】
送信するリングは、１次リング３１と２次リング３２のどちらでもよいが、宛先ノードまでの通過ノード数が少ない経路のリングを選択する方が、遅延時間の面から望ましい。ＲＰＲプロトコルでは、ノード配置を各ノードが学習して最短経路の選択を実現するようになっている。勿論、遅延時間を気にしなければ、最初にどちらのリングを選択して送出しても構わない。
【００２９】
ＲＰＲプロトコルでは、選択したリングの情報を記録する１ビットの領域がＲＰＲフレームヘッダに設けられている。例えば、１次リング３１を選択した場合は“０”を、２次リング３２を選択した場合は“１”をＲＰＲフレームヘッダの該当領域に書き込むようになっている。
【００３０】
もし、ＲＰＲプロトコル以外のプロトコルを使用する場合で、選択したリングの情報を記録する領域がない場合には、ヘッダに送出リング情報を記録する領域（１ビット）を新たに追加し、その領域に選択したリング情報を書き込んで送出することとする。以降、フレームヘッダに書き込むこのビットを「送出リング情報ビット」と呼ぶ。
【００３１】
また、この実施の形態１では、データをラッピングしたか否かを示す情報を記録する領域（１ビット）をヘッダ領域に設け、生成したデータを送信する際に初期値“０”を設定するようになっている。このビットは、この発明にて定義するもので、ＲＰＲプロトコルやその他の同等のプロトコルでは、定義されていないので、使用するプロトコルにおいて、新たにヘッダ内の領域を定義する必要がある。以降、このビットを「ラッピング情報ビット」と呼ぶ。
【００３２】
なお、「送出リング情報ビット」と「ラッピング情報ビット」は、データのヘッダ領域に設けると説明したが、ヘッダ領域上に設定せず、データと別線で並列転送しても構わない。要するに、「送出リング情報ビット」と「ラッピング情報ビット」がノードに付随する形で伝達できればよい。
【００３３】
送信するデータの宛先ノードアドレスの持ち方には、２つの方法がある。１つは、二重化されたノードに共通のアドレスを与える方法である。例えば、ノード１４宛とノード２４宛のデータは、宛先アドレスとしては同一とする。もう１つは、全ノードとも異なるアドレスを与える方法である。この場合には、各ノードは、自ノードのアドレスと、他系の二重化相手ノードのアドレスとを保持することになる。
【００３４】
次に、（２）他ノードから届いたデータを取り込むときは、データの宛先アドレスを見て、自ノード宛であれば取り込む。この場合の自ノードには、上記のように、他系の二重化相手ノードも含まれる。
【００３５】
ここで、ＲＰＲプロトコルを使用する場合に注意を要する点は、ＲＰＲプロトコルでは、最初にデータを送出したリング情報と受信したリングとが一致しない場合はデータを取り込まないが、この実施の形態による通信方法では、送出リング情報とは関係なく、宛先アドレスが自ノード宛であれば取り込むようになっていることである。
【００３６】
次に、（３）他ノードから届いたデータを中継転送する場合について説明する。データを中継転送するのは、自ノード宛でないデータを受信した場合である。他ノードから届く場合としては、（ａ）同じ系のリングネットワークの上流側に隣接するノードから届く場合と、（ｂ）他系のリングネットワークに存在する二重化相手ノードから届く場合との２通りがある。
【００３７】
まず、（ａ）同じ系のリングネットワークの上流側に隣接するノードから届く場合について、図２を参照して説明する。受信ノード５は、最初に、上流側に隣接するノードが使用したリングと同じリングの下流側に隣接するノードおよび回線が正常であるか否かをチェックし、正常であれば、受信データをその下流側に隣接するノードに中継転送する（▲１▼）。一方、故障している場合は、他系の二重化相手ノードおよび回線が正常であるか否かをチェックし、正常であれば受信データを他系の二重化相手ノードに中継転送する（▲２▼）。そして、他系の二重化相手ノードが正常でも回線が故障している場合は、上記した「ラッピング情報ビット」を参照して受信データがラッピングされているか否かをチェックする（▲３▼）。
【００３８】
すなわち、「ラッピング情報ビット」が“０”のときは、ラッピングされていないので、この値を“１”に書き換え、ラッピングする。つまり、ノード内折返しを実施し、データを受信したリングとは逆向きのリングに送出する。一方、「ラッピング情報ビット」が“１”のときは、既に１度ラッピングされているので、廃棄する。このように「ラッピング情報ビット」が“１”のときに再度ラッピングしないのは、データが、故障により分断されて閉じたリング内で周回するのを防止するためである。
【００３９】
次に、（ｂ）他系のリングネットワークに存在する二重化相手ノードから届いた場合について、図３を参照して説明する。受信ノード６は、まず、二重化相手ノードから届いたデータに付随する「送出リング情報ビット」と「ラッピング情報ビット」とをチェックし、他系の二重化相手ノードが転送に使用していたリングを判断する。すなわち、「ラッピング情報ビット」が“０”のときは、「送出リング情報ビット」が示すリングと同じ方向性を持つリングを使用していたと判断し、「ラッピング情報ビット」が“１”のときは、「送出リング情報ビット」が示すリングと異なる逆方向のリングを使用していたと判断する。
【００４０】
そして、受信ノード６では、自ノードが属する二重リングネットワークにおいて、他系の二重化相手ノードが転送に使用していたリングと同じ方向性を持つリングを自ノードの使用リングと決定し、その決定したリングの下流側回線およびノードが正常か否かをチェックし、正常であれば、そのリングに中継転送する（▲１▼）。一方、転送しようとする下流側ノードまたは回線が故障していて転送できない場合は、「ラッピング情報ビット」を見て“１”のときは受信データを廃棄する。一方、「ラッピング情報ビット」が“０”のときは、「ラッピング情報ビット」を“１”に上書きし、逆方向のリングにおける下流側回線およびノードが正常であることを確認してその逆方向のリングに中継転送する（▲２▼）。
【００４１】
なお、（ｂ）他系のリングネットワークに存在する二重化相手ノードから届いた場合において、自ノードが使用するリングを決定するための手順を簡略化するため、後述するようにテーブルを持つことができる（図５参照）。
【００４２】
以上の説明から理解できるように、この実施の形態１では、ノードでの経路選択は、隣接するノード（他系の二重化相手ノードも含む）との間の回線状態および隣接ノードの健全状態のみで決定することができ、リング上の全ノードおよび全回線の状態（正常・故障）を知らなくとも制御することができる。隣接ノードおよび回線の状態は、信号断か否かをチェックすることにより、簡単かつ短時間に判定できるので、故障時の経路切り替えは高速に実行することができる。
【００４３】
図４では、図２と図３を参照して説明したデータ受信時の処理手順が整理して示されている。図４において、データを受信すると（ステップＳＴ１）、自ノード宛か否かを判断し（ステップＳＴ２）、自ノード宛であれば（ステップＳＴ２：Ｙｅｓ）取り込む（ステップＳＴ３）。一方、自ノード宛でない場合は（ステップＳＴ２：Ｎｏ）、他系の二重化相手ノードからのデータであるか否かをチェックする（ステップＳＴ４）。
【００４４】
そして、他系の二重化相手ノードからのデータでない場合は（ステップＳＴ４：Ｎｏ）、同一系のリングネットワークからのデータであり、受信ノードでは、データがどちらのリングを使用して入力されたかが分かる。そこで、入力リングと同じ方向のリングの下流側回線および下流側に隣接するノードが正常か否かを調べ（ステップＳＴ５）、正常であれば（ステップＳＴ５：Ｙｅｓ）、その下流側に隣接するノードに転送する（ステップＳＴ６）。
【００４５】
一方、入力リングと同じ方向のリングの下流側回線または下流側に隣接するノードが故障の場合は（ステップＳＴ５：Ｎｏ）、他系の二重化相手ノードとの回線および二重化相手ノードの状態をチェックし（ステップＳＴ７）、正常であれば（ステップＳＴ７：Ｙｅｓ）他系の二重化相手ノードに転送する（ステップＳＴ８）。また、他系の二重化相手ノードとの回線または二重化相手ノードが故障の場合は（ステップＳＴ７：Ｎｏ）、データの「ラッピング情報ビット」を見て、ラッピングされているか否かを判断する（ステップＳＴ９）。ラッピングされていない場合は（ステップＳＴ９：Ｎｏ）、「ラッピング情報ビット」を“１”に設定して、逆方向のリングに転送する（ステップＳＴ１０）。一方、ラッピングされている場合は（ステップＳＴ９：Ｙｅｓ）、データを廃棄する（ステップＳＴ１１）。
【００４６】
次いで、ステップＳＴ４にて、他系の二重化相手ノードからのデータであると判断された場合は（ステップＳＴ４：Ｙｅｓ）、受信ノードでは、図５に示すテーブルを参照して自ノードが属する二重リングネットワークにおいて使用するリングを決定する（ステップＳＴ１２）。
【００４７】
図５では、「送出リング情報ビット」と「ラッピング情報ビット」と「使用リング」との対応関係が示されている。「送出リング情報ビット」では、送出リングが、例えば、１次リング３１，３３であるときは、“０”が設定され、２次リング３２，３４であるときは、“１”が設定される。一方、「ラッピング情報ビット」では、ラッピングをしない場合は、“０”が設定され、ラッピングを行うと“１”が設定される。なお、「使用リング」における“０”は、１次リング３１，３３を示し、“１”は２次リング３２，３４を示す。
【００４８】
図５において、データ送出リングは、第１段目と第２段目が１次リング（３１または３３）であり、第３段目と第４段目が２次リング（３２または３４）である。転送前使用リングは、ラッピングしないときは、送出リング情報ビットが示すリングと同じであり、ラッピングが行われると、逆向きのリングとなる。その転送前使用リングは、自ノードの「使用リング」と一致していることが示されている。具体的には、「送出リング情報ビット」と「ラッピング情報ビット」の値が、例えば第２段目に示すように、“０，１”であるときは、「使用リング」は“１”、つまり２次リング３２または２次リング３４であると決定する（ステップＳＴ１２）。このように、自ノードが属する二重リングネットワークにおいて使用するリングは、他系の二重化相手ノードが転送前に使用していたリングと同一方向のリングとして決定される。
【００４９】
次に、以上のように決定した自ノードの「使用リング」の下流側回線および下流側に隣接するノードが正常か否かを調べ（ステップＳＴ１３）、正常であれば（ステップＳＴ１３：Ｙｅｓ）、そのリングの下流側に隣接するノードに転送する（ステップＳＴ１４）。一方、故障の場合は（ステップＳＴ１３：Ｎｏ）、「ラッピング情報ビット」の値をチェックし（ステップＳＴ１５）、“０”であれば（ステップＳＴ１５：Ｎｏ）、決定した使用リングと逆方向のリングにおける下流側回線および下流側に隣接するノードの状態をチェックする（ステップＳＴ１６）。
【００５０】
そして、決定した使用リングと逆方向のリングが正常であれば（ステップＳＴ１６：Ｙｅｓ）、「ラッピング情報ビット」を“１”に設定して、逆方向のリングに送出する（ステップＳＴ１７）。一方、その決定した使用リングと逆方向のリングが故障であれば（ステップＳＴ１６：Ｎｏ）、そのデータを廃棄する（ステップＳＴ１８）。また、ステップＳＴ１５において、「ラッピング情報ビット」の値が“１”のときは（ステップＳＴ１５：Ｙｅｓ）、データを廃棄する（ステップＳＴ１９）。
【００５１】
次に、図６と図７を参照して、故障時のデータ転送動作について、具体例を用いて説明する。なお、ノードの呼称として、図１に示した「０系のノード」を示すノードＡ０〜ノードＨ０、「１系のノード」を示すノードＡ１〜ノードＨ１を使用する。
【００５２】
図６では、ノードＡ１とノードＢ１の間、ノードＣ０とノードＤ０の間、ノードＥ１とノードＦ１の間、ノードＧ０とＨ０の間の回線がそれぞれ故障している場合が示されている。この場合、０系、１系それぞれの二重リングネットワークだけに注目すると、それぞれ２箇所で故障が起きているので、従来のリングネットワークでは、通信が不可能となるノードの組み合わせがある。例えば、ノードＢ０からノードＦ０宛の通信は、０系の二重リングネットワーク１だけでは、１次リング３１を使っても、２次リング３２を使っても不可能である。
【００５３】
しかし、この実施の形態１では、同一構成である０系二重リングネットワーク１と１系二重リングネットワーク２とにおける対応するノードを二重化ノードして構成し、その二重化ノード相互間を回線４１〜回線４８および回線５１〜回線５８にて接続してあるので、ノードＢ０からノードＦ０宛の通信は、図４に示す手順に従って、次のような経路で通信が可能となる。
【００５４】
すなわち、ノードＢ０は、まず、ノードＦ０までの通過ノード数が少ないリングを使ってデータを送出する。図１（図６）に示す例では、１次リング３１を使用しても、２次リング３２を使用しても通過ノード数は「３」で変わらないので、ここでは、１次リング３１を選択したとする。つまり、ノードＢ０は、１次リング３１を使ってノードＣ０宛にデータを送出する。
【００５５】
ノードＣ０も受信リングと同じ１次リング３１を使用して送出しようとするが、ノードＣ０は、ノードＤ０との間の回線が故障していることが分かるので、次の経路候補である他系の二重化相手ノードであるノードＣ１宛にデータを送出する。
【００５６】
ノードＣ１は、他系の二重化相手ノードＣ０から受信したデータであることがわかる。送出リング情報ビットとラッピング情報ビットの値から、図５に示すテーブルを参照して、ノードＣ０は０系リングネットワーク１上の１次リング３１を使用していたことがわかるので、１系リングネットワーク２上の１次リング３３を使って、ノードＤ１に転送する。
【００５７】
ノードＤ１は、受信した１次リング３３を使って下流側に隣接するノードＥ１に転送する。ノードＥ１も１次リング３３を使用して送出しようとするが、ノードＥ１は、ノードＦ１との間の回線が故障していることが分かるので、次の経路候補である他系の二重化相手ノードであるノードＥ０宛にデータを送出する。
【００５８】
ノードＥ０は、他系の二重化相手ノードＥ１から受信したデータであることがわかる。送出リング情報ビットとラッピング情報ビットの値から、図５に示すテーブルを参照して、１系リングネットワーク２上の１次リング３３が使用されていたことがわかるので、０系リングネットワーク１上の１次リング３１を使ってノードＦ０に転送する。ノードＦ０は、自ノード宛のデータであるので、転送せずデータを取り込む。このように、回線が複数箇所で故障しても通信可能となる。
【００５９】
次に、図７では、ノードＡ１とノードＢ１の間、ノードＣ０とノードＤ０の間、ノードＣ１とノードＤ１の間、ノードＧ０とＨ０の間の回線がそれぞれ故障し、さらにノードＦ１が故障している場合が示されている。このようにノードＦ１が故障している場合、１系リングネットワーク２だけではノードＦ１との通信は不可能である。
【００６０】
しかし、この実施の形態１では、同一構成である０系二重リングネットワーク１と１系二重リングネットワーク２とにおける対応するノードを二重化ノードして構成し、その二重化ノード間を回線４１〜回線４８および回線５１〜回線５８にて接続してある。したがって、例えば、０系リングネットワーク１上のノードＢ０が１系リングネットワーク２上のノードＦ１宛の通信をしていた場合に、そのノードＦ１が故障すると、ノードＢ０は、故障ノードＦ１に代わる０系リングネットワーク１上のノードＦ０と、図４に示す手順に従って、次のような経路で通信することができるようになる。
【００６１】
すなわち、ノードＢ０は、まず、ノードＦ０までの通過ノード数が少ないリングを使ってデータを送出する。図１（図７）に示す例では、１次リング３１を使用しても、２次リング３２を使用しても通過ノード数は「３」で変わらないので、ここでは、１次リング３１を選択したとする。つまり、ノードＢ０は、１次リング３１を使ってノードＣ０宛にデータを送出する。
【００６２】
ノードＣ０も受信リングと同じ１次リング３１を使用して送出しようとするが、ノードＣ０は、ノードＤ０との間の回線が故障していることが分かるので、次の経路候補である他系の二重化相手ノードであるノードＣ１宛にデータを送出する。
【００６３】
ノードＣ１は、他系の二重化相手ノードＣ０から受信したデータであることがわかる。送出リング情報ビットとラッピング情報ビットの値から、図５に示すテーブルを参照して、０系リングネットワーク１上の１次リング３１を使用していたことがわかるので、１系リングネットワーク２上の１次リング３３を使って、ノードＤ１に転送しようとする。
【００６４】
しかし、ノードＣ１は、ノードＤ１との間の回線が故障していることが分かっているので、ラッピングを実施し、２次リング３４を使用し下流側に隣接するノードＢ１に転送する。このときラッピング情報ビットを“１”に設定する。
【００６５】
ノードＢ１は、受信した２次リング３４の下流側に隣接するノードＡ１に転送しようとするが、ノードＡ１との間の回線が故障しているので、次の経路候補である他系の二重化相手ノードであるノードＢ０に送出する。
【００６６】
ノードＢ０は、他系の二重化相手ノードであるノードＢ１からの受信であることがわかるので、まず、ノードＢ１の使用リングを「送出リング情報ビット」と「ラッピング情報ビット」から図５に示すテーブルを参照して判定する。この場合、送出リング情報ビットは“０”で、ラッピング情報ビットは“１”であるので、使用リングは２次リング３４であると判断でき、２次リング３２を使用して下流側に隣接するノードＡ０に送出する。
【００６７】
以降、同様の判定動作を繰り返して、ノードＡ０→ノードＨ０→ノードＨ１→ノードＧ１→ノードＧ０→ノードＦ０と転送される。ノードＦ０は、自ノード宛のデータであるので、転送せずデータを取り込む。このように、回線が複数箇所で故障し、かつ宛先ノードが故障しても通信可能となる。
【００６８】
以上のように、実施の形態１では、二重リングネットワークを二重化し、二重化した二重リングネットワーク相互間の対応するノード間を回線で接続することでノードを二重化したので、片方のノードが故障しても二重化した他方のノードを使用して通信が可能となる。また、片方の二重リングネットワークで複数の故障が生じた場合でも、二重化したノード間の回線を使用して二重化したノードの他方に転送することで、他方の二重リングネットワークの経路を使うことができ、通信が可能となる。さらに、経路の選択は、隣のノードの状態（正常／故障）および隣の回線状態（正常／故障）の情報のみで決定することができるので、故障が発生しても高速に経路切り替えを行うことができる。
【００６９】
実施の形態２．
図８は、この発明の実施の形態２であるリングネットワークの構成を示す全体図である。なお、図８では、図１に示した構成要素と同一ないしは同等である要素には、同一の符号が付されている。
【００７０】
図８に示すように、実施の形態２によるリングネットワークは、相反する伝送方向性を持つ１次リング３１と２次リング３２とからなる１つの二重リングネットワーク７上に、同数のノードで構成される０系ノード群８と１系ノード群９とが配置され、かつ０系ノード群８と１系ノード群９の相互間で連系して通信を行うように構成されている。
【００７１】
具体的には、０系ノード群８は、例えば８台のノード１１〜１８で構成され、１系ノード群９も同様に、同数のノード２１〜２８で構成されている。そして、０系ノード群８と１系ノード群９との間では、ノード１１とノード２１、ノード１２とノード２２、ノード１３とノード２３、ノード１４とノード２４、ノード１５とノード２５、ノード１６とノード２６、ノード１７とノード２７、ノード１８とノード２８は、それぞれ、同一の構成ないしは機能を持ち、回線４１と回線５１、回線４２と回線５２、回線４３と回線５３、回線４４と回線５４、回線４５と回線５５、回線４６と回線５６、回線４７と回線５７、回線４８と回線５８をそれぞれ介して双方向に通信でき、一方が他方のいわゆる予備系として働くようになっている。
【００７２】
すなわち、ノード１１とノード２１、ノード１２とノード２２、ノード１３とノード２３、ノード１４とノード２４、ノード１５とノード２５、ノード１６とノード２６、ノード１７とノード２７、ノード１８とノード２８は、それぞれ、二重化されている。各ノードの構成は、図示省略したが、次の（１）〜（６）の機能を持つ通信制御部を備えている。
【００７３】
（１）生成したデータをリング回線に送出する際に送出リングを示す情報を付随させる。このとき、初期値を与えた経路切り替えを示す情報および二重化相手ノードに転送したか否かを示す情報を付随させる。（２）リング回線から他ノード宛のデータが入力したとき、同方向の下流側に隣接するノードおよび接続するリング回線の健全性と、二重化相手ノードおよび接続する回線の健全性と、入力データのリング回線と逆向きのリング回線における下流側に隣接するノードおよび接続するリング回線の健全性とを所定の順序で判断する。（３）リング回線から入力した他ノード宛のデータについてその入力データのリング回線と逆向きのリング回線に送出する経路切り替えが必要と判断したとき当該入力データに付随する経路切り替えを示す情報を参照し、未更新のとき更新操作を加えて経路切り替えを実施する。
【００７４】
（４）二重化相手ノードから他ノード宛のデータが入力したとき、自ノードの使用リング回線として、当該データに付随する送出リングを示す情報と経路切り替えを示す情報と二重化相手ノードに転送したか否かを示す情報とに基づき判断した前記二重化相手ノードが転送前に使用していたリング回線と逆方向のリング回線を選択する。（５）二重化相手ノードから入力した他ノード宛のデータを前記選択したリング回線に送出する際に、当該データに付随する二重化相手ノードに転送したか否かを示す情報に更新操作を加える。（６）前記選択したリング回線と逆向きのリング回線に送出する経路切り替えが必要と判断したとき当該二重化相手ノードからの入力データに付随する経路切り替えを示す情報を参照し、未更新のとき更新操作を加えて経路切り替えを実施する。
【００７５】
次に、図８〜図１２を参照して、実施の形態２によるリングネットワークにおいて実施される通信方法について説明する。なお、図９は、図８に示すノードにおけるデータ受信時の処理手順を説明するフローチャートである。図１０は、図９に示すデータ受信時の処理手順において行われる使用リングの決定方法を説明する図である。図１１は、図８に示すネットワークにおいて複数箇所のノード間で回線障害が発生した場合の通信方法を説明する図である。図１２は、図８に示すネットワークにおいて複数箇所のノード間で回線障害が発生し、さらにノードが故障した場合の通信方法を説明する図である。
【００７６】
まず、各ノードの基本的な動作について説明する。各ノードは、実施の形態１と同様に、（１）データを自ノードで生成して送信する、（２）他ノードから届いたデータを取り込む、（３）他ノードから届いたデータを中継転送する、の３種類の動作を行う。
【００７７】
（１）データを自ノードで生成するときは、送信データに、実施の形態１にて説明した「送出リング情報ビット」と「ラッピング情報ビット」とを付加するのに加えて、この実施の形態２では、さらに他系の２重化相手ノード転送用に「他系転送ビット」を付加する動作が新たに追加される。その他は、実施の形態１と同じである。この「他系転送ビット」は、データ生成時の初期値が“０”で、他系の２重化相手ノードに転送する毎に、その値が反転するものである。この「他系転送ビット」は、「送出リング情報ビット」と「ラッピング情報ビット」と同様に、データのヘッダ領域に付加してもよく、データと別線で並列に転送してもよい。
【００７８】
（２）他ノードから届いたデータを取り込む動作は、実施の形態１にて説明したように行われるので、再述はしない。（３）他ノードから届いたデータを中継転送する動作は、実施の形態１とは大きく異なっている。
【００７９】
他ノードから届く場合としては、（ａ）同系ノード群における上流側に隣接するノードから届く場合と、（ｂ）他系ノード群における二重化相手ノードから届く場合の２通りがある。そのうち、（ａ）同系ノード群における上流側に隣接するノードから届く場合の処理は、隣接ノードが故障して他系ノード群における二重化相手ノードに転送する際に、「他系転送ビット」の値を反転して設定する以外は、実施の形態１と同じである。
【００８０】
また、（ｂ）他系ノード群における二重化相手ノードから届く場合の処理では、使用リングを決定する方法が実施の形態１と大きく異なる。すなわち、実施の形態１では、「送出リング情報ビット」と「ラッピング情報ビット」との値から、他系の二重化相手ノードが転送前に使用していたリングを判断し、その判断した転送前使用リングと同一方向のリングを自ノードが使用するリングと決定する。
【００８１】
これに対し、この実施の形態２では「送出リング情報ビット」と「ラッピング情報ビット」と「他系転送ビット」の値から、他系の二重化相手ノードが転送前に使用していたリングを判断し、その判断した転送前使用リングと逆方向のリングを自ノードが使用するリングと決定する。その他は、実施の形態１と同じである。
【００８２】
図９では、上記のノード動作（２）（３）にて説明した実施の形態２によるデータ受信時の処理手順が整理して示されている。なお、図９では、図４に示した処理手順と同一となる手順には、同一の符号が付されている。ここでは、この実施の形態２に関わる部分を中心に説明する。
【００８３】
図９において、受信したデータ（ＳＴ１）が自ノード宛ではなく（ＳＴ２：Ｎｏ）、かつ他系の二重化相手ノードからのデータでない場合（ステップＳＴ４：Ｎｏ）において、入力リングと同じ方向のリングの下流側回線または下流側に隣接するノードが故障で（ステップＳＴ５：Ｎｏ）、他系の二重化相手ノードとの回線および二重化相手ノードの状態が正常である（ステップＳＴ７：Ｙｅｓ）として他系の二重化相手ノードに転送する際に、「他系転送ビット」の値を反転することを行う（ステップＳＴ２１）。
【００８４】
そして、受信したデータ（ＳＴ１）が自ノード宛ではなく（ＳＴ２：Ｎｏ）、かつ他系の二重化相手ノードからのデータである場合（ステップＳＴ４：Ｙｅｓ）には、受信ノードでは、図１０に示すテーブルを参照して他系の二重化相手ノードが使用していたリングがどちら方向のリングであるかを判断し、自ノードが使用するリングを決定する（ステップＳＴ２２）。
【００８５】
図１０では、「送出リング情報ビット」と「ラッピング情報ビット」と「他系転送ビット」と「使用リング」との対応関係が示されている。「送出リング情報ビット」では、送出リングが、例えば、１次リング３１であるときは、“０”が設定され、２次リング３２であるときは、“１”が設定される。一方、「ラッピング情報ビット」では、ラッピングをしない場合は、“０”が設定され、ラッピングを行うと“１”が設定される。そして、「他系転送ビット」はデータ生成時は“０”が設定されるが、その後、二重化相手ノードを経由する毎に、反転値が設定される。なお、「使用リング」における“０”は、１次リング３１を示し、“１”は２次リング３２を示す。
【００８６】
図１０において、データ送出リングは、第１段目から第４段目までが１次リング３１であり、第５段目から第８段目までが２次リング３２である。「送出リング情報ビット」と「ラッピング情報ビット」と「他系転送ビット」との値が、例えば第２段目に示すように、“０，０，１”であるときは、他系転送時に「他系転送ビット」が反転するので、他系の二重化相手ノードでの「送出リング情報ビット」と「ラッピング情報ビット」と「他系転送ビット」との値は“０，０，０”である。したがって、ラッピングが行われていないので、他系の二重化相手ノードでの使用リングは、送出リングと同じ１次リング３１である。他系の二重化相手ノードから受信した自ノードでは、図１０の第２段目の「使用リング」である“１”、つまり２次リング３２であると決定する（ステップＳＴ２２）。
【００８７】
このように、ステップＳＴ２２において、自ノードが使用するリングは、他系の二重化相手ノードが転送前に使用していたリングと逆方向のリングとして決定される。その後は、実施の形態１（図４）にて説明した手順で各処理が行われる（ステップＳＴ１３〜ＳＴ１９）。
【００８８】
次に、図１１と図１２を参照して、故障時のデータ転送動作について、具体例を用いて説明する。なお、ノードの呼称として、図８に示した「０系ノード群８」を示すノードＡ０〜ノードＨ０、「１系ノード群９」を示すノードＡ１〜ノードＨ１を使用する。
【００８９】
図１１では、ノードＡ１とノードＢ１の間、ノードＣ０とノードＤ０の間、ノードＥ１とノードＦ１の間、ノードＧ０とノードＨ０の間の回線がそれぞれ故障している場合が示されている。この場合、ノードＢ０からノードＦ０宛の通信は、図９に示す手順に従うと、次のような経路で通信することになる。
【００９０】
ノードＢ０は、まず、ノードＦ０宛までの通過ノード数が少ないリングを使ってデータを送出する。図８（図１１）に示す例では、１次リング３１を使用した通過ノード数は「３」であるのに対し、２次リング３２を使用した通過ノード数は「１１」であるので、ここでは、１次リング３１を選択したとする。つまり、ノードＢ０は、１次リング３１を使ってノードＣ０宛にデータを送出する。このとき、「他系転送ビット」は初期値“０”を設定する。
【００９１】
ノードＣ０も受信リングと同じ１次リング３１を使用して送出しようとするが、ノードＣ０は、ノードＤ０との間の回線が故障していることが分かるので、次の経路候補である他系の二重化相手ノードであるノードＣ１宛にデータを送出する。このとき、「他系転送ビット」は値を反転させ、“１”を設定する。
【００９２】
ノードＣ１は、他系の二重化相手ノードＣ０から受信したデータであることがわかる。そこで「送出リング情報ビット」と「ラッピング情報ビット」と「他系転送ビット」の値から、図１０に示すテーブルを参照して使用リングを決定する。今の例では、図１０に示す２段目の“０，０，１”の値であるので、「使用リング」は、“１”、つまり２次リング３２となる。したがって、ノードＣ１は２次リング３２を使用してノードＤ１に送出する。
【００９３】
ノードＤ１は、受信した２次リング３２を使って下流側に隣接するノードＥ１に転送する。ノードＥ１は、２次リング３２を使用して送出しようとするが、ノードＦ１との間の回線が故障しているので、次の経路候補である他系の二重化相手ノードＥ０宛にデータを送出する。このとき、「他系転送ビット」の値を反転させ、“０”を設定する。
【００９４】
ノードＥ０は、他系二重化相手ノードＥ１から受信したデータであることがわかる。そこで、ノードＥ０は、「送出リング情報ビット」と「ラッピング情報ビット」と「他系転送ビット」の値から、図１０に示すテーブルを参照して使用リングを決定する。今の例では、図１０に示す１段目の“０，０，０”の値であるので、「使用リング」は、“０”、つまり１次リング３１となる。したがって、ノードＥ０は１次リング３１を使用してノードＦ０に送出する。ノードＦ０は、自ノード宛のデータであるので、転送せずデータを取り込む。このように、回線が複数箇所で故障しても通信可能となる。
【００９５】
次に、図１２では、ノードＣ０とノードＤ０の間、ノードＤ１とノードＥ１の間、ノードＧ０とノードＨ０の間の回線がそれぞれ故障し、さらにノードＦ０が故障している場合が示されている。このようにノードＦ０が故障している場合、ノードが二重化されていない場合、そのノードとの通信は不可能である。
【００９６】
しかし、この実施の形態２では、ノードを二重化し、それぞれの二重化されたノード間を回線４１〜回線４８および回線５１〜回線５８にて接続してある。したがって、ノードＢ０がノードＦ０宛の通信をしていた場合に、そのノードＦ０が故障すると、ノードＢ０は、故障ノードＦ０に代わるノードＦ１と、図９に示す手順に従って、次のような経路で通信することができるようになる。
【００９７】
すなわち、ノードＢ０は、まず、ノードＦ０宛までの通過ノード数が少ないリングを使ってデータを送出する。図８（図１２）に示す例では、１次リング３１を使用した通過ノード数は「３」であるのに対し、２次リング３２を使用した通過ノード数は「１１」であるので、ここでは、１次リング３１を選択することになる。つまり、ノードＢ０は、１次リング３１を使ってノードＣ０宛にデータを送出する。
【００９８】
ノードＣ０は、受信リングと同じ１次リング３１を使用して送出しようとするが、ノードＤ０との間の回線は故障し、次の経路候補である他系の二重化相手ノードＣ１との間の回線も故障しているので、ラッピングし２次リング３２を使用してノードＢ０に送出する。このとき、「ラッピング情報ビット」は“１”に設定する。
【００９９】
ノードＢ０は、受信した２次リング３２を使用して下流側に隣接するノードＡ０に転送する。以降、同様に２次リング３２を使用してノードＡ１、Ｂ１、Ｃ１、Ｄ１へと転送される。ノードＤ１は、２次リング３２の下流側に隣接するノードＥ１との間の回線が故障しているので、次の経路候補である他系の二重化相手ノードＤ０に転送する。このとき、ノードＤ１は、「他系転送ビット」の値を反転し、“１”を設定する。
【０１００】
ノードＤ０は、他系の二重化相手ノードＤ１から受信したデータであることがわかる。そこで、「送出リング情報ビット」と「ラッピング情報ビット」と「他系転送ビット」の値から図１０に示すテーブルを参照して使用リングを決定する。今の例では、図１０に示す４段目の“０，１，１”の値であるので、「使用リング」は、“０”、つまり１次リング３１となる。したがって、ノードＤ０は、１次リング３１を使用してノードＥ０に送出する。
【０１０１】
ノードＥ０は、受信リングと同じ１次リング３１を使用して送出しようとするが、ノードＦ０が故障しているので、他系の二重化相手ノードＥ１に送出する。このとき、ノードＥ０は、「他系転送ビット」の値を反転して“０”に設定する。
【０１０２】
ノードＥ１は、他系の二重化相手ノードＥ０から受信したデータであることがわかる。そこで、「送出リング情報ビット」と「ラッピング情報ビット」と「他系転送ビット」の値から、図１０に示すテーブルを参照して使用リングを決定する。今の例では、図１０に示す３段目の“０，１，０”の値であるので、「使用リング」は、“１”、つまり２次リング３２となる。したがって、ノードＥ１は、２次リング３２を使用してノードＦ１に送出する。ノードＦ１は、自ノード宛のデータであるので、転送せずデータを取り込む。このように、回線が複数箇所で故障し、かつ宛先ノードが故障しても通信可能となる。
【０１０３】
このように、実施の形態２では、ノードを二重化し、二重化したノード間を回線で接続しているので、片方のノードが故障しても二重化した他方のノードを使用して通信が可能となる。また、複数の故障が発生した場合でも、二重化したノード間を接続する回線を使用することで、通信が可能となる。また、経路の選択は、隣のノードの状態（正常／故障）および隣の回線状態（正常／故障）の情報のみで決定することができるので、故障が発生しても高速に経路切り替えを行うことができる。
【０１０４】
ここで、この発明のリングネットワークを、各ノードが物理的にリング状に配置されているのではなく、各ノードが直線状に配置される場合に適用することを考える。このようなケースとしては、例えば、列車内の各車両の制御装置を接続する場合を挙げることができる。
【０１０５】
実施の形態１によるリングネットワークでは、図６、図７に示すように両端のノードを接続するので、長い回線が必要となる。これに対し、実施の形態２によるリングネットワークでは、図８に示すように、端の二重化されたノード同士を接続するので、短い回線で十分である。
【０１０６】
【発明の効果】
以上説明したように、この発明によれば、二重リングネットワークを二重化し、その二重化した二重リングネットワーク相互間の対応するノード間を回線で接続することでノードを二重化し、各ノードが、隣接するノードおよび接続するリング回線の健全性と二重化相手ノードおよび接続する回線の健全性とを判断して障害箇所を回避した適切な経路を選択し、データに付随する送出リングを示す情報に基づき経路切り替えを制御し、データに付随する送出リングを示す情報と経路切り替えを示す情報とに基づき二重化ノード間を跨ぐデータの使用リングを制御する。これによって、多重の障害が起きた場合でも任意のノード間で通信することが可能となる。また、ノード故障が発生した場合でも故障したノードと同等のノードを使用して通信が可能となる。さらに、隣接するノードおよび接続するリング回線の健全性と二重化相手ノードおよび接続する回線の健全性との判断は、高速に行えるので、故障が発生しても高速に経路切り替えを行うことができる。なお、この発明のリングネットワークは、偶数個のノードを備える１つの二重リングネットワークにおいて、任意の２つのノードを回線で接続して二重化を図る構成とすることもできる。
【図面の簡単な説明】
【図１】この発明の実施の形態１であるリングネットワークの構成を示す全体図である。
【図２】図１に示すノードが隣接ノードから受信したデータをいずれの経路に転送するかの選択動作を説明する図である。
【図３】図１に示すノードが他系ノードから受信したデータをいずれの経路に転送するかの選択動作を説明する図である。
【図４】図１に示すノードにおけるデータ受信時の処理手順を説明するフローチャートである。
【図５】図４に示すデータ受信時の処理手順において行われる使用リングの決定方法を説明する図である。
【図６】図１に示すネットワークにおいて複数箇所のノード間で回線障害が発生した場合の通信方法を説明する図である。
【図７】図１に示すネットワークにおいて複数箇所のノード間で回線障害が発生し、さらにノードが故障した場合の通信方法を説明する図である。
【図８】この発明の実施の形態２であるリングネットワークの構成を示す全体図である。
【図９】図８に示すノードにおけるデータ受信時の処理手順を説明するフローチャートである。
【図１０】図９に示すデータ受信時の処理手順において行われる使用リングの決定方法を説明する図である。
【図１１】図８に示すネットワークにおいて複数箇所のノード間で回線障害が発生した場合の通信方法を説明する図である。
【図１２】図８に示すネットワークにおいて複数箇所のノード間で回線障害が発生し、さらにノードが故障した場合の通信方法を説明する図である。
【符号の説明】
１  ０系二重リングネットワーク、２  １系二重リングネットワーク、５  リングからデータを受信するノード、６  二重化相手ノードからデータを受信するノード、７  二重リングネットワーク、８  ０系ノード群、９  １系ノード群、１１〜１８  ノード（０系ノード）、２１〜２８  １系のノード（１系ノード）、３１，３３  １次リング、３２，３４  ２次リング、４１〜４８，５１〜５８
回線。
【図１】
2005033243.tif 000003
【図２】
2005033243.tif 000004
【図３】
2005033243.tif 000005
【図４】
2005033243.tif 000006
【図５】
2005033243.tif 000007
【図６】
2005033243.tif 000008
【図７】
2005033243.tif 000009
【図８】
2005033243.tif 000010
【図９】
2005033243.tif 000011
【図１０】
2005033243.tif 000012
【図１１】
2005033243.tif 000013
【図１２】
2005033243.tif 000014