(57)【特許請求の範囲】
【請求項１】
二重化された回線で相互に接続され相互に送受信する複数のノードを有する二重化回線通信装置において、
各ノード毎に、
対象とする各ノードの二重化回線の各系に所定周期でへルスチェックパケットを送信する手段と、
対象とする各ノードより送信されるへルスチェックパケットを受信して二重化回線の各系の正常・異常の判定を対象ノード毎に行う手段と、
対象ノード毎の二重化回線の各系の正常・異常の判定結果を保存する系選択メモリと、
この系選択メモリの内容に従って対象ノード毎にデータ受信を行う系を選択する手段とを、それぞれ備えたことを特徴とする二重化回線通信装置。
【請求項２】
ヘルスチェックパケット送信周期を変更設定する手段を備えたことを特徴とする請求項１記載の二重化回線通信装置。
【請求項３】
設定されたへルスチェックパケット送信周期を、系の障害を規定時間内に検出可能となるように補正する手段を備えたことを特徴とする請求項２記載の二重化回線通信装置。
【請求項４】
ヘルスチェックパケット内に格納する系識別情報を、ヘルスチェックパケット内の送信元アドレス又は宛先アドレスのフィールドに格納するようにしたことを特徴とする請求項１記載の二重化回線通信装置。
【請求項５】
ヘルスチェックパケット内に格納するノードアドレス及び系識別情報を、ヘルスチェックパケット内の宛先アドレスのフィールドに格納するようにしたことを特徴とする請求項１記載の二重化回線通信装置。
【請求項６】
ヘルスチェックパケットのサイズを標準的なＬＡＮ規格より小さいサイズにしたことを特徴とする請求項１記載の二重化回線通信装置。
【請求項７】
系選択メモリを２個有し、ＣＰＵと上記系選択手段間の競合制御を行う系選択メモリセレクタを備えたことを特徴とする請求項１記載の二重化回線通信装置。
【請求項８】
二重化回線で両系異常の場合は、上記系選択メモリの内容を前値保持とすることを特徴とする請求項１記載の二重化回線通信装置。
【請求項９】
ヘルスチェックパケットを受信しない状態を検出する手段と、この手段により受信しない状態を検出した場合に自ノードの上記系選択手段を初期化する手段を備えたことを特徴とする請求項１記載の二重化回線通信装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、二重化された回線により相互に接続される複数のノードを有する二重化回線通信装置に関し、特に二重化回線の自動切替に係わるものである。
【０００２】
【従来の技術】
図２０は特開平８一２３３３８号公報に示された従来のニ重化回線通信装置を示すブロック図である。図２０において、各通信局は二重化した回線ＡとＢに対し、ＴＡＰ１Ｊ，２Ｊを介して接続される。ＴＡＰ１Ｊ，２Ｊの回線Ａ，Ｂはモデム３Ｊ，４Ｊに接続される。モデム３Ｊ，４Ｊは通信コントローラ５Ｊの送信信号ＴＸを受けて、回線へ電気信号としてデータを送信する。また、モデム３Ｊ，４Ｊは他の通信局からのデータを回線を介して受信し、受信データとして出力する。
【０００３】
待機回線診断回路７Ｊは実行回線と待機回線を弁別し、実行回線が正常、待機回線が異常の状態が１トークンテキスト間続いた場合、待機回線異常信号を出力する。切換器８Ｊは切替レジスタ１１Ｊの制御信号を受けて、自動切替の場合は、切換器８Ｊ内の実行回線診断回路により、実行回線が異常、待機回線が正常の状態が１トークンテキスト間続いた場合、回線選択信号を出力し回線を待機側へ切り替え、ホールドの場合は、回線選択信号を現状に保持するよう出力し、強制回線設定の場合は、切替レジスタ１１Ｊで指定した回線に回線選択信号を出力する。切替スイッチ９Ｊは切換器８Ｊからの回線選択信号の出力により、指定された回線に切替える。計数部１０Ｊは通信コントローラ５Ｊのトークン制御からの正常・異常信号を受けて、正常時は正常カウンタを＋１カウントし、異常時は異常カウンタを＋１カウントする。切替レジスタ１１Ｊは、切替器８Ｊからの回線選択信号の入力と切替論理部１２Ｊからの切替制御信号とにより、切換器８Ｊへ制御信号を出力する。切替論理部１２Ｊは待機回線診断回路７Ｊと計数部１０Ｊと切替レジスタ１１Ｊの信号を受けて、切替論理により切替の動作制御を行う。
【０００４】
【発明が解決しようとする課題】
上記従来技術では、（1）  回線Ａ、Ｂはそれぞれ単一のネットワークであり、他のネットワーク装置を中継している場合には中継先には障害状況が伝達されず、切替が行えない、（2）  正常カウンタ、異常カウンタをクリア、あるいは減算する契機がないため、正常、異常の判定が正しく行えない場合がある、といった問題点があった。
【０００５】
この発明は上記の課題を解決しようとするものであり、ネットワーク装置（ノード）が多段に中継される二重化回線通信装置においても、回線の障害の検出および自動切り替えを可能とすることを目的とするものである。
【０００６】
【課題を解決するための手段】
この発明に係わる二重化回線通信装置は、ニ重化された回線で相互に接続され相互に送受信する複数のノードを有する二重化回線通信装置において、各ノード毎に、対象とする各ノードの二重化回線の各系に所定周期でへルスチェックパケットを送信する手段と、対象とする各ノードより送信されるへルスチェックパケットを受信して二重化回線の各系の正常・異常の判定を対象ノード毎に行う手段と、対象ノード毎の二重化回線の各系の正常・異常の判定結果を保存する系選択メモリと、この系選択メモリの内容に従って対象ノード毎にデータ受信を行う系を選択する手段とを、それぞれ備えたものである。
【０００７】
また、ヘルスチェックパケット送信周期を変更設定する手段を備えたものである。
また、設定されたへルスチェックパケット送信周期を、系の障害を規定時間内に検出可能となるように補正する手段を備えたものである。
また、ヘルスチェックパケット内に格納する系識別情報を、ヘルスチェックパケット内の送信元アドレス又は宛先アドレスのフィールドに格納するようにしたものである。
【０００８】
また、ヘルスチェックパケット内に格納するノードアドレス及び系識別情報を、ヘルスチェックパケット内の宛先アドレスのフィールドに格納するようにしたものである。
また、ヘルスチェックパケットのサイズを標準的なＬＡＮ規格より小さいサイズにしたものである。
また、系選択メモリを２個有し、ＣＰＵと上記系選択手段間の競合制御を行う系選択メモリセレクタを備えたものである。
【０００９】
また、二重化回線で両系異常の場合は、上記系選択メモリの内容を前値保持とするものである。
さらにまた、ヘルスチェックパケットを受信しない状態を検出する手段と、この手段により受信しない状態を検出した場合に自ノードの上記系選択手段を初期化する手段を備えたものである。
【００１０】
【発明の実施の形態】
実施の形態１．
図１はこの発明の実施の形態１である二重化回線通信装置の構成を示すブロック図である。図において、１は二重化回線通信装置のノードである。伝送路コントローラ６は、０系と１系で二重化された伝送路（回線）で他のノード１とデータの送受信を行う。３つの伝送路Ａ、Ｂ、Ｃそれぞれに接続できるため、伝送路コントローラＡ、伝送路コントローラＢ、伝送路コントローラＣの３つがある。ノード１は、これら３つの伝送路コントローラ６により、最大３つの他のノード１と接続可能である。ＬＡＮコントローラ５は、ＬＡＮ（ローカルエリアネツトワーク）に接続して、同じＬＡＮに接続する端末とデータの送受信を行うコントローラである。
【００１１】
このノード１は伝送路Ａ、伝送路Ｂ、伝送路Ｃの間で中継処理を行う。具体的には、伝送路Ａの０系、伝送路Ｂの０系、伝送路Ｃの０系間でデータ中継を行い、同様に伝送路Ａの１系、伝送路Ｂの１系、伝送路Ｃの１系間でデータ中継を行う。また、同時に各伝送路から受信したデータをＬＡＮコントローラ５に中継する。また、ＬＡＮコントローラ５から受信したデータを、伝送路Ａの０系及び１系、伝送路Ｂの０系及び１系、伝送路Ｃの０系及び１系に中継する。
【００１２】
図２は、図１の伝送路コントローラ６の構成を示すブロツク図である。図２において、０系コントローラ８は０系伝送路との間でデータの送受信を行い、１系コントローラ９は１系伝送路との間でデータの送受信を行う。０系コントローラ８、１系コントローラ９は受信したデータを系選択器７に渡す。また、系選択器７はＣＰＵ３、ＬＡＮコントローラ５、および他の伝送路コントローラ６からのデータを０系コントローラ８、及び１系コントローラ９に送信する。
【００１３】
図３は、ノード１の接続例を示す図である。（この場合は、図１のノード１の伝送路Ａコントローラが使用されている。）図３では、ノードアドレス１〜４の４台のノード１が相互に接続されており、それぞれのノード１のＬＡＮに接続する端末間でデータ通信が可能となっている。
【００１４】
次に、図１および図２を使って、ノード１の動作を説明する。ＬＡＮに接続される端末がデータを送信すると、ノード１のＬＡＮコントローラ５が受信する。ＬＡＮコントローラ５はこのデータを伝送路コントローラＡ、伝送路コントローラＢ、伝送路コントローラＣのそれぞれに中継する。伝送路コントローラ６では、系選択器７がこのデータをコピーし、０系コントローラ８、１系コントローラ９にそれぞれ送信する。０系コントローラ８、１系コントローラ９は、系選択器７から受信したデータをそれぞれ０系伝送路、１系伝送路に送信する。このようにして、一つのデータがニ重化された伝送路の両方に送信されることになる。
【００１５】
伝送路の先に接続されるノード１では、相手ノード１が送信したデータを０系コントローラ８、１系コントローラ９で受信する。０系コントローラ８、１系コントローラ９はそれぞれ、受信データを系選択器７に渡す。系選択器７は、受信したデータを他の伝送路コントローラ６に送信する。これを受信した伝送路コントローラ６では、０系伝送路から受信したデータであれば０系コントローラ８に送信し、１系伝送路から受信したデータであれば１系コントローラ９に送信する。このようにして、０系伝送路に送信されたデータは０系伝送路を中継されていき、１系伝送路に送信されたデータは１系伝送路を中継されていく。
【００１６】
また、系選択器７は系選択メモリ４の内容に従い、それぞれのノード１から受信するデータについて、０系、１系のどちらか一つの系を選択し、選択した系から受信したデータをＬＡＮコントローラ５に中継する。０系コントローラ８、１系コントローラ９は同じデータを受信するが、このようにしてＬＡＮコントローラ５にはどちらか一方の系からのデータが中継され、同じデータが２つ中継されることはない。
【００１７】
図４は系選択メモリ４の構成を示す図である。各ノードアドレス毎に、０系、１系どちらの系を選択して受信し、ＬＡＮコントローラ５に中継すべきかという情報を格納する。ＣＰＵ３は、系選択メモリ４の内容を決定するために、以下の処理を行う。
【００１８】
ＣＰＵ３は一定周期で、０系へルスチェツクパケツト１０、および１系へルスチェツクパケツト１０をすべての伝送路コントローラ６に送信する。各伝送路コントローラ６では、０系コントローラ８は系選択器７経由でＣＰＵ３から渡された０系へルスチェツクパケツト１０、および１系へルスチェツクパケツト１０を０系伝送路に送信する。同様に、１系コントローラ９は系選択器７経由でＣＰＵ３から渡された０系へルスチェックパケット１０、および１系へルスチェックパケット１０を１系伝送路に送信する。したがって、０系伝送路、１系伝送路のそれぞれに、０系へルスチェックパケット１０、１系へルスチェックパケット１０の両方が一定周期で送信される。
【００１９】
図５はへルスチェツクパケツト１０のフォーマットを示す図である。宛先アドレスは６バイトのフイールドであり、全てのノード１が受信するように、特別なマルチキャストアドレスを設定する。送信元アドレスは、このへルスチェックパケット１０の送信元ノード１を識別するための６バイトのフイールドであり、各ノード１が持つノードアドレスを格納する。ノードアドレスは、あるノード１を一意に識別できるように、ノード１間で重複しない値をあらかじめ設定しておく。パケット長は系識別とＰＡＤのフィールドを合わせた長さを格納する２バイトのフィールドである。系識別はこのへルスチェックパケット１０が０系、１系のいずれかであるかを示す１バイトのフィールドである。０系用であれば０、１系用であれば１を格納する。ＰＡＤは、ヘルスチェツクパケツト１０の全体の長さを６４バイトにするために付加するフィールドである。ＦＣＳ（Frame Check Sequence）は、伝送中にへルスチェックパケット１０にビット誤りが発生した場合に、これを検出するための４バイトのフィールドである。
【００２０】
送信されたへルスチェックパケット１０は、伝送路の先に接続されるノード１で受信される。０系コントローラ８、１系コントローラ９は、それぞれが、０系へルスチェツクパケツト１０および１系へルスチェックパケット１０の両方を受信し、受信したへルスチェックパケット１０を系選択器７に渡す。系選択器７は、０系コントローラ８から受信した０系へルスチェツクパケツト１０、および１系コントローラ９から受信した１系へルスチェツクパケツト１０をＣＰＵ３に渡す。０系コントローラ８から受信した１系へルスチェックパケット１０、および１系コントローラ９から受信した０系へルスチェックパケット１０は廃棄する。
【００２１】
図６は、ヘルスチェツクパケツト１０を受信したときのＣＰＵ３の動作を示すフローチャートである。ＣＰＵ３は、系選択器７から０系へルスチェツクパケツト１０または１系へルスチェックパケツト１０を受信する毎に、図６に示す処理を行う。
【００２２】
ＣＰＵ３は受信したへルスチェツクパケット１０の送信元アドレスを参照して、送信元のノードアドレスを判別する（ステップ１１）。さらに、系識別を参照してそのへルスチェックパケット１０が０系、１系のどちらのものであるかを判別する（ステップ１２）。そして、系選択カウンタテーブル２において、判別したノードアドレスの系のカウンタを０にクリアする（ステップ１３）。
【００２３】
図７は系選択カウンタテーブル２の構成を示す図である。各ノードアドレス毎に、０系の状態を示すカウンタ、及び１系の状態を示すカウンタがある。ＣＰＵ３はへルスチェックパケット１０を送信する周期と同じ周期で、系選択カウンタテーブル２のすべてのカウンタを＋１する。ＣＰＵ３は対象とする他ノード１からへルスチェックパケット１０を受信することで、該当するカウンタを０にクリアするので、健常なノード１については、カウンタの値は０または１となっている。
【００２４】
図８は、系選択に関わるＣＰＵ３の動作を示すフローチャートである。ＣＰＵ３はまず変数Ｎに１を設定し（ステップ１４）、系選択カウンタテーブル２において、ノードアドレスＮの０系カウンタおよび１系カウンタを＋１する（ステップ１５）（ステップ１６）。その後、Ｎを＋１して（ステップ１７）、すべてのノードアドレスについて処理を行う（ステップ１８）。次に、ＣＰＵ３は各カウンタの値をチェツクし、ノードアドレス毎に使用する系を決定し（２０）、系選択メモリ４の内容（図４）を更新する（２１）。カウンタの値がしきい値を超えていれば、該当ノード１の該当する系が異常であると判定し、しきい値以下であれば、正常であると判定する。
【００２５】
図９は、系選択カウンタテーブル２の値を元に、使用する系を決定する論理を示す図である。０系カウンタの正常・異常、１系カウンタの正常・異常の組み合わせにより、そのノードアドレスについて使用する系を決定する。０系を優先系とし、０系が使える限りは０系を使い、０系が異常かつ１系が正常の場合には１系を使用する。両系異常の場合は０系を使用する。
【００２６】
ヘルスチェックパケット１０を受信しないと、該当ノード１の該当系のカウンタは＋１され続けることとなる。例えば、図７は、図３において、ノードアドレス２とノードアドレス４を接続する０系伝送路に異常が発生してデータ伝送が不可能となった場合のノードアドレス１の系選択カウンタテーブル２の内容を示している。図７において、ノードアドレス４の０系カウンタは４となっている。これは、伝送路の障害のためにノードアドレス４から０系伝送路経由で０系へルスチェツクパケツト１０を受信することができず、０クリアされないまま４回連続して＋１されていることを示している。例えばしきい値が３に設定されていれば、ノードアドレス４について０系は異常、１系は正常という判定となり、図９にしたがつて、ノードアドレス４からノードアドレス１への送信は、１系を使用するようにノードアドレス１の系選択メモリ４に設定される。図７において、ノードアドレス１〜３ではどれも０系、１系共に正常と判定されるので、いずれも０系を使用するように系選択メモリ４に設定される。その結果、ノードアドレス１の系選択メモリ４の設定内容は、つまり、対象とするノードアドレスからノードアドレス１への送信に使用される系は、それぞれ図４に示す内容となる。
【００２７】
系選択器７は受信したデータをＬＡＮコントローラ５に中継する際、系選択メモリ４を参照し、ノードアドレス１〜３については０系から受信したデータを中継し、ノードアドレス４については１系から受信したデータを中継する。
【００２８】
以上のようにこの発明に係るノード１では、直接監視できない、他ノード１の先にある伝送路の障害であってもこれを検出し、二重化された伝送路（回線）を自動的に切り替えることが可能となる。
【００２９】
実施の形態２．
図１０は、この発明の実施の形態２の二重化回線通信装置の構成を示すブロツク図である。図１０において、２４はノードである。設定記憶メモリ２５は、ヘルスチェツクパケツト１０の送信周期を記憶するメモリである。ユーザは、ヘルスチェツクパケツト１０の送信周期を設定記憶メモリ２５に設定し、ＣＰＵ２６は設定記憶メモリ２５を参照して、指定された周期でへルスチェツクパケツト１０を送信する。
【００３０】
ヘルスチェックパケット１０を送信する周期を短い時間に設定すれば、伝送路の障害をより早く検出し、正常な系への切換をより早く行えるようになる。その一方で、ヘルスチェックパケット１０が頻繁に送信されるようになることで伝送路の帯域に占めるへルスチェックパケット１０の割合が増し、ユーザが使用可能な帯域が減ることになる。また、ヘルスチェックパケット１０を送信する周期を長い時間に設定すれば、伝送路の帯域に占めるへルスチェックパケット１０の割合を減らし、ユーザが使用可能な帯域を増やすことができる。その一方で、伝送路の障害を検出するのは遅れることになり、正常な系への切換は送信周期が短いときに比べて遅くなる。
【００３１】
以上のように、この発明に係るノード２４では、ヘルスチェツクパケツト１０の送信周期を変更設定可能とすることで、障害検出をより早く行うか、ユーザの使用可能な帯域を増やすかの選択をユーザが自由に行うことが可能となる。
【００３２】
実施の形態３．
図１１は、この発明の実施の形態３の二重化回線通信装置の構成を示すブロツク図である。図１１において、２７はノードである。設定記憶メモリ２８は、ヘルスチェツクパケツト１０の送信周期と共に、ネツトワーク内に存在するノード２７の数を記憶するメモリである。ユーザは、ヘルスチェツクパケツト１０の送信周期と共に、ノード２７の数を設定記憶メモリ２８に設定する。ＣＰＵ２９はへルスチェツクパケット１０を送信する周期で図８の処理を行う。したがって、図８の処理は、送信周期の間に完了する必要があり、例えば、送信周期が１秒に設定されれば、１秒以内に図８の処理を完了する必要がある。
【００３３】
しかしながら、図８の処理はノード２７の数が増えるほど時間がかかるようになるので、ノード２７の数が多いネツトワークにおいて、ユーザが極端に短い送信周期を設定した場合、送信周期内で図８の処理を完了できない可能性がある。この場合、系選択カウンタテーブル２、及び系選択メモリ４の更新処理が遅れ、伝送路の障害を期待した時間内に検出することが不可能となる。
【００３４】
そこで、ＣＰＵ２６は、設定されたノード２７の数から図８の処理に必要な時間を計算し、計算した時間がユーザの設定した送信周期より長い場合、またはユーザが送信周期を設定しない場合には、自身の計算した時間を送信周期として設定記憶メモリ２８に設定する。このようにして、図８の処理が送信周期内に完了することを保証する。
【００３５】
以上のように、この発明に係るノード２７では、ヘルスチェツクパケット１０の送信周期を自動的に補正することで、意図せずに障害検出までの時間が延びてしまうことを防ぐことが可能となる。
【００３６】
実施の形態４．
図１２は、この発明に係るへルスチェツクパケット３０のフォーマットを示す図である。図１２において、送信元アドレスには送信元のノードアドレスと共に、系識別の情報を格納する。そして、パケット長の後ろにあった系識別のフイールドは削除し、ＰＡＤフイールドを４６バイトとする。系選択器７は受信したへルスチェックパケット３０を先頭から精査していくので、系識別を送信元アドレスに格納することで、系選択フィールドがパケット長フィールドの後ろにあったときよりも短時間で精査が可能となり、また、ハードウェアの実装量を減らすことが可能となる。
【００３７】
以上のように、この発明に係るノード３１（図示せず）では、ヘルスチェックパケット３０内の系識別情報を送信元アドレスのフィールドに格納することで、短時間での系識別、及びハードウェア実装量の削減が可能となる。
【００３８】
実施の形態５．
図１３は、この発明に係るへルスチェツクパケツト３２のフォーマットを示す図である。図１３において、宛先アドレスには系識別が可能なように２種類の値のいずれかを格納する。そして、パケット長の後ろにあった系識別のフイールドは削除し、ＰＡＤフイールドを４６バイトとする。系識別は０または１の２つの値をとるので、０系、１系それぞれに対応する宛先アドレス、計２種類を用意し、０系へルスチェックパケット３２では宛先アドレスに０系用宛先アドレス、１系へルスチェックパケツト３２では宛先アドレスに１系用宛先アドレスを設定する。
【００３９】
系選択器７は受信したへルスチェツクパケツト３２を先頭から精査していくので、系識別を宛先アドレスに格納することで、系選択フィールドがパケット長フィールドの後ろにあったときよりも短時間で精査が可能となり、また、ハードウェアの実装量を減らすことが可能となる。
【００４０】
以上のように、この発明に係るノード３３（図示せず）では、ヘルスチェツクパケツト３２内の系識別情報を宛先アドレスのフィールドに格納することで、短時間での系識別、及びハードウェア実装量の削減が可能となる。
【００４１】
実施の形態６．
図１４は、この発明に係るへルスチェツクパケット３４のフォーマットを示す図である。図１４において、宛先アドレスには系識別情報、及び送信元のノードアドレスの情報を格納する。そして、パケット長の後ろにあつた系識別のフイールドは削除し、ＰＡＤフイールドを４６バイトとする。また、送信元アドレスは固定値とし、送信元ノードのノードアドレスを格納しない。
【００４２】
系識別は０または１の２つの値をとるので、宛先アドレスとしては（最大ノードアドレス値×２）の数が必要となる。ＣＰＵ３は、ヘルスチェツクパケツト３４を送信する際、自身のノードアドレスと系識別情報を宛先アドレスのフィールドに設定して送信する。系選択器７は受信したへルスチェツクパケツト３４を先頭から精査していくので、系識別および送信元ノードアドレスを宛先アドレスに格納することで、系選択フィールドがパケット長フィールドの後ろにあり、送信元ノードアドレスが送信元アドレスにあったときよりも短時間で精査が可能となる。
【００４３】
以上のように、この発明に係るノード３５（図示せず）では、ヘルスチェツクパケット３４内の系識別情報と送信元ノードアドレスを宛先アドレスのフィールドに格納することで、短時間での系識別が可能となる。
【００４４】
実施の形態７．
図１５は、この発明に係るへルスチェツクパケツト３６のフォーマットを示す図である。実施の形態１〜６のへルスチェックパケットは、標準としている汎用のＬＡＮの規格であるEthernetに準拠したフォーマットとすることで、標準としている汎用のEthernetコントローラを使用することを可能としている。
【００４５】
図１５に示すフォーマットでは、Ethernetのフォーマットにはしたがわず、パケット長（サイズ）を最小にすることを目的としている。系識別はこのへルスチェツクパケツト３６が０系へルスチェツクパケツト３６、１系へルスチェツクパケツト３６のどちらであるかを示す１バイトのフイールドである。送信元ノードアドレスは、このへルスチェックパケット３６の送信元ノードのノードアドレスである。ＣＲＣ（Cyclic Redundancy Check）は、伝送中にへルスチェツクパケツト３６にビツト誤りが発生した場合にこれを検出するための１バイトのフィールドである。図１５に示すへルスチェックパケット３６は、汎用のEthernetコントローラでは処理できないため、専用ハードウェアで識別を行う。
【００４６】
以上のように、この発明に係るノード３７（図示せず）では、ヘルスチェツクパケット３６のパケツト長を３バイトと短くすることで、規模の小さいハードウェアで処理を可能とし、伝送路の使用帯域を削減し、また、系識別情報及び送信元ノードアドレスの判定をより早く行うことを可能としている。
【００４７】
実施の形態８．
図１６は、この発明の実施の形態８の二重化回線通信装置の構成を示すブロツク図である。上記実施の形態１〜７では、系選択メモリは１面のみ存在しており、ＣＰＵが系選択メモリの内容を更新中に伝送路コントローラがアクセスした場合、及び逆に伝送路コントローラがアクセス中にＣＰＵがアクセスした場合にメモリアクセスの競合が起きる可能性があった。その結果、正しくメモリの内容にアクセスできず、ＣＰＵが系選択メモリの内容を更新できない、あるいは系選択器が誤った系を選択してしまう、という可能性があった。図１６において、系選択メモリ４０は系選択メモリ４０Ａと系選択メモリ４０Ｂの２面で構成される。また、系選択メモリセレクタ４１には、伝送路コントローラ６がアクセスすべき系選択メモリ４０の面情報が格納される。
【００４８】
図１７は、系選択に関わるこの発明のＣＰＵ３９の動作を示すフローチャートである。ＣＰＵ３９は、系選択カウンタテーブル２の内容を更新した後、系選択メモリセレクタ４１の内容をチェツクする（ステップ４２）。系選択メモリセレクタ４１がＡの場合は、伝送路コントローラ６が系選択メモリ４０Ａを参照しているので書換対象として系選択メモリ４０Ｂを選択し（ステップ４３）、系選択メモリセレクタ４１がＢの場合は、伝送路コントローラ６が系選択メモリ４０Ｂを参照しているので書換対象として系選択メモリ４０Ａを選択する（ステップ４４）。この後、ＣＰＵ３９は系選択メモリ４０の内容を書き換えるが、伝送路コントローラ６が参照しているのとは別の系選択メモリ４０を書き換えるため、メモリアクセスの競合は起きない。
【００４９】
系選択メモリ４０の更新後、ＣＰＵ３９は系選択メモリセレクタ４１の内容を現在の選択面とは逆の面を選択するように更新する。系選択メモリセレクタ４１は１ビツトの情報であり、サイズの大きい系選択メモリ４０に比べてアクセス競合の起きる可能性が非常に小さい。また、アクセス競合を避ける機構を設ける場合にも、系選択メモリ４０全体を保護する場合に比べ、系選択メモリセレクタ４１を保護する場合はハードウェアの実装量を非常に小さくできる。
【００５０】
以上のように、この発明に係るノード３８では、系選択メモリ４０を２面用意し、ＣＰＵ３９と伝送路コントローラ６（系選択手段）がアクセスする面を分けることでメモリアクセス競合を防ぐことが可能となる。
【００５１】
実施の形態９．
図１８は、この発明に係る系選択メモリ４の判定ルールを示す図である。実施の形態１では、０系、１系の両方が異常である場合、優先系である０系を使用することとしていた。この場合、０系が常に異常、１系が正常、異常を繰り返しているような状況では、使用する系が、０系（両系異常）、１系（１系のみ正常）、０系（両系異常）と頻繁に切り替わることとなり、通信経路全体に擾乱を与えることになる。図１８においては、０系、１系の両方が異常である場合は、前値保持となっており、０系を使用中に両系異常となった場合はそのまま０系を使用し、１系使用中に両系異常となった場合はそのまま１系を使用する。したがって、無用な系切換が発生しない。
【００５２】
以上のように、この発明に係るノード４８（図示せず）では、系切換を行う必要がない両系異常時には系切換を行わず、通信経路への無用な擾乱を抑制することを可能としている。
【００５３】
実施の形態１０．
図１９は、この発明の実施の形態１０に係るＣＰＵ４９の動作を示すフローチャートである。ＣＰＵ４９（図示せず）は、全てのノードアドレスについて受信する系を判定した後、全てのノードアドレスで両系異常が発生していれば、伝送路コントローラ６を初期化する（ステップ５１）。ノード５０（図示せず）を使用する意図からすれば、ノード５０は２つ以上あると考えられ、通常は少なくとも１つのノード５０からへルスチェックパケット１０を受信すると期待できる。全てのノードアドレスについて両系異常、すなわち継続してへルスチェツクパケツト１０を受信していない状態では、自ノード５０の伝送路コントローラ６が障害状態に陥っている可能性がある。そこで、このような場合には自ノード５０の全ての伝送路コントローラ６を初期化し、障害状態に陥っていれば正常状態に復I日させる。もし、実際に他にノード５０が１つもない、あるいは本ノード５０と他のノード５０を接続する全ての伝送路が障害状態にあったとしても、伝送路コントローラ６を初期化する事による不都合はない。
【００５４】
以上のように、この発明に係るノード５０では、ヘルスチェツクパケット１０により自ノード５０の伝送路コントローラ６の障害状態を予想し、自動的に復旧することを可能としている。
【００５５】
【発明の効果】
以上説明したように、この発明の二重化回線通信装置によれば、ニ重化された回線で相互に接続され相互に送受信する複数のノードを有する二重化回線通信装置において、各ノード毎に、対象とする各ノードの二重化回線の各系に所定周期でへルスチェックパケットを送信する手段と、対象とする各ノードより送信されるへルスチェックパケットを受信して二重化回線の各系の正常・異常の判定を対象ノード毎に行う手段と、対象ノード毎の二重化回線の各系の正常・異常の判定結果を保存する系選択メモリと、この系選択メモリの内容に従って対象ノード毎にデータ受信を行う系を選択する手段とを、それぞれ備えたので、ノード毎にニ重化回路の正常・異常を判定することが可能となり、単数あるいは複数のノードを経由したネットワークであっても二重化回線の自動切り替えが可能となる。
【００５６】
また、ヘルスチェックパケット送信周期を変更設定する手段を備えたので、障害を検出する時間を優先するか、ヘルスチェックパケットが使用する伝送帯域を小さくすることを優先するかをユーザが選択することが可能となる。
また、設定されたへルスチェックパケット送信周期を、系の障害を規定時間内に検出可能となるように補正する手段を備えたので、障害を検出するまでの時間が意図せずに延びてしまうことを防ぐことが可能となる。
また、ヘルスチェックパケット内に格納する系識別情報を、ヘルスチェックパケット内の送信元アドレス又は宛先アドレスのフィールドに格納するようにしたので、系識別情報を前方の送信元アドレス又は宛先アドレスのフィールドに格納することになり、より短時間での系識別、及びハードウェア実装量の削減が可能となる。
【００５７】
また、ヘルスチェックパケット内に格納するノードアドレス及び系識別情報を、ヘルスチェックパケット内の宛先アドレスのフィールドに格納するようにしたので、系識別情報とノードアドレスを前方の宛先アドレスのフィ一ルドに格納することになり、短時間での系識別が可能となる。
また、ヘルスチェックパケットのサイズを標準的なＬＡＮ規格より小さいサイズにしたので、規模の小さいハードウェアで処理を可能とし、また、伝送路の使用帯域を削減し、系識別情報および送信元ノードアドレスの判定をより早く行うことを可能となる。
また、系選択メモリを２個有し、ＣＰＵと上記系選択手段間の競合制御を行う系選択メモリセレクタを備えたので、メモリアクセス競合を防ぐことが可能となる。
【００５８】
また、二重化回線で両系異常の場合は、上記系選択メモリの内容を前値保持とするので、系切替を行う必要がない両系異常時には系切替を行わず、通信経路への無用な擾乱を抑制することができる。
また、ヘルスチェックパケットを受信しない状態を検出する手段と、この手段により受信しない状態を検出した場合に自ノードの上記系選択手段を初期化する手段を備えたので、自ノードの障害状態を予想し、自動的に復旧することが可能となる。
【図面の簡単な説明】
【図１】  この発明の実施の形態１である二重化回線通信装置の構成を示すブロック図である。
【図２】  図１の伝送路コントローラの構成を示すブロツク図である。
【図３】  ノード１の接続例を示す図である。
【図４】  この発明に係わる系選択メモリ４の構成を示す図である。
【図５】  へルスチェツクパケツト１０のフォーマットを示す図である。
【図６】  この発明に係わるＣＰＵ３の動作を示すフローチャートである。
【図７】  この発明に係わる系選択カウンタテーブルの構成を示す図である。
【図８】  この発明に係わる系選択に関わるＣＰＵ３の動作を示すフローチャートである。
【図９】この発明に係わる使用する系を決定する論理を示す図である。
【図１０】  この発明の実施の形態２の二重化回線通信装置の構成を示すブロツク図である。
【図１１】  この発明の実施の形態３の二重化回線通信装置の構成を示すブロツク図である。
【図１２】  この発明に係るへルスチェツクパケットのフォーマットを示す図である。
【図１３】  この発明に係るへルスチェツクパケツトのフォーマットを示す図である。
【図１４】  この発明に係るへルスチェツクパケットのフォーマットを示す図である。
【図１５】  この発明に係るへルスチェツクパケツトのフォーマットを示す図である。
【図１６】  この発明の実施の形態８の二重化回線通信装置の構成を示すブロツク図である。
【図１７】  この発明に係わる系選択の動作を示すフローチャートである。
【図１８】  この発明に係る系選択メモリの判定ルールを示す図である。
【図１９】  この発明の実施の形態１０に係るＣＰＵの動作を示すフローチャートである。
【図２０】  従来のニ重化回線通信装置を示すブロック図である。
【符号の説明】
１  ノード                          ２  系選択カウンタテーブル
３  ＣＰＵ                          ４  系選択メモリ
５  ＬＡＮコントローラ              ６  伝送路コントローラ
７  系選択器                        ８  ０系コントローラ
９  １系コントローラ              ２４  ノード
２５  設定記憶メモリ                ２６  ＣＰＵ
２７  ノード                        ２８  設定記憶メモリ
２９  ＣＰＵ                        ３８  ノード
３９  ＣＰＵ                        ４０  系選択メモリ
４１  系選択メモリセレクタ。
【図１】
0004471539.tif 000002
【図２】
0004471539.tif 000003
【図３】
0004471539.tif 000004
【図４】
0004471539.tif 000005
【図５】
0004471539.tif 000006
【図６】
0004471539.tif 000007
【図７】
0004471539.tif 000008
【図８】
0004471539.tif 000009
【図９】
0004471539.tif 000010
【図１０】
0004471539.tif 000011
【図１１】
0004471539.tif 000012
【図１２】
0004471539.tif 000013
【図１３】
0004471539.tif 000014
【図１４】
0004471539.tif 000015
【図１５】
0004471539.tif 000016
【図１６】
0004471539.tif 000017
【図１７】
0004471539.tif 000018
【図１８】
0004471539.tif 000019
【図１９】
0004471539.tif 000020
【図２０】
0004471539.tif 000021