(57)【特許請求の範囲】
【請求項１】
第１の通信装置とステートフル通信を行う二重化された一対の第２の通信装置のそれぞれに接続され、該ステートフル通信のパケットを中継する通信二重化装置であって、
前記第１の通信装置から受信する第１のパケットを前記通信二重化装置に接続される第２の通信装置へ送信すると共に、該第１のパケットを複製し、他方の通信二重化装置へ転送する手段と、
前記通信二重化装置に接続される前記第２の通信装置から受信する第２のパケットを複製し、該第２のパケットを他方の通信二重化装置へ転送する手段と、
前記通信二重化装置に接続される前記第２の通信装置から受信する第２のパケットの第１の応答番号と、前記他方の通信二重化装置に接続される第２の通信装置からの第２のパケットを前記他方の通信二重化装置で複製して前記通信二重化装置へ転送されてくる第２のパケットの第２の応答番号とを含むセッション情報を記憶する記憶部と、
前記通信二重化装置に接続される前記第２の通信装置から受信する第２のパケットに対して、前記記憶部に記憶されたセッション情報を参照し、セッション状態を同期させるよう、応答番号を更新して該第２のパケットを前記第１の通信装置へ送信する手段と、
を備えたことを特徴とする通信二重化装置。
【請求項２】
前記第２の通信装置から受信する第２のパケットに対して、該第２のパケットの応答番号が、前記記憶部に記憶された前記第１の応答番号と前記第２の応答番号の何れか古い番号より新しい場合に、該第２のパケットの応答番号を、前記第１の応答番号と前記第２の応答番号の何れか古い番号に書き換えて該第２のパケットを更新することを特徴とする請求項１に記載の通信二重化装置。
【請求項３】
前記第２のパケットの応答番号が、前記記憶部に記憶された前記第１の応答番号と前記第２の応答番号の何れか古い番号より新しい場合、該第２のパケットが応答番号と共に通信データを含んでいるときに、該第２のパケットの応答番号を、前記第１の応答番号と前記第２の応答番号の何れか古い番号に書き換え、該第２のパケットが通信データを含んでいないとき、該第２のパケットを破棄することを特徴とする請求項２に記載の通信二重化装置。
【請求項４】
第１の通信装置とステートフル通信を行う第２の通信装置を二重化し、該第１の通信装置と該第２の通信装置のそれぞれの間に接続された一対の通信二重化装置を用いる通信二重化方法であって、
前記各通信二重化装置は、夫々前記第１の通信装置から受信した第１のパケットを前記各通信二重化装置に接続された前記第２の通信装置へ送信すると共に、該第１のパケットを複製し、他方の通信二重化装置を介して他方の第２の通信装置へ転送するステップと、
前記各通信二重化装置に接続された前記第２の通信装置から受信した第２のパケットを複製し、該第２のパケットを他方の通信二重化装置へ転送するステップと、
前記各通信二重化装置に接続された前記第２の通信装置から受信した第２のパケットの第１の応答番号と、前記他方の通信二重化装置に接続された前記他方の第２の通信装置からの第２のパケットを前記他方の通信二重化装置で複製して転送されてきた第２のパケットの第２の応答番号とを含むセッション情報を記憶部に記憶するステップと、
前記通信二重化装置に接続される前記第２の通信装置から受信した第２のパケットに対して、前記記憶部に記憶されたセッション情報を参照し、セッション状態を同期させるよう、応答番号を更新して該第２のパケットを前記第１の通信装置へ送信するステップと、
を含むことを特徴とする通信二重化方法。
【請求項５】
前記第２の通信装置から受信した第２のパケットに対して、該第２のパケットの応答番号が、前記記憶部に記憶された前記第１の応答番号と前記第２の応答番号の何れか古い番号より新しい場合に、該第２のパケットの応答番号を、前記第１の応答番号と前記第２の応答番号の何れか古い番号に書き換えて該第２のパケットを更新するステップを含むことを特徴とする請求項４に記載の通信二重化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ステートフル通信を行う通信装置を二重化する通信二重化装置及び通信二重化方法に関する。
【背景技術】
【０００２】
通信システムの信頼性を向上する手段として、通信装置の二重化構成が従来から広く採用されている。インターネット通信では、レイヤ３（ネットワーク層）のプロトコルとしてＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）が使用されている。ＩＰは、通信セッションの状態に依存することなくパケットを送受するステートレスのプロトコルである。
【０００３】
また、インターネット通信では、レイヤ４（トランスポート層）のプロトコルとしてＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）が使用される。ＴＣＰは、コネクションを確立し、通信セッションの状態に応じてパケットを送受するステートフルのプロトコルである。
【０００４】
従来のＩＰ通信モデルでは、パケットの中継処理は、レイヤ３通信装置（即ちＩＰルータ装置）で行い、レイヤ３通信装置は、経路表に基づいてＩＰパケットを転送するだけであった。しかし、近年ではＴＣＰ等の上位プロトコルにおける通信セッションの状態やパケットの内容など、レイヤ４以上の情報を参照して高度な中継処理を行う通信装置が出現している。
【０００５】
ＩＰルータ装置の二重化構成は、ＶＲＲＰ（Ｖｉｒｔｕａｌ  Ｒｏｕｔｅｒ  Ｒｅｄｕｎｄａｎｃｙ  Ｐｒｏｔｏｃｏｌ）や、ＨＳＲＰ（Ｈｏｔ  Ｓｔａｎｄｂｙ  Ｒｏｕｔｅｒ  Ｐｒｏｔｏｃｏｌ）等のプロトコルにより、マスター系からバックアップ系に自律的に切り替わる。そのため、ＩＰ通信装置は、ＩＰルータ装置の障害に対応する機能を備えることなく、ＩＰ通信を継続して行うことができる。
【０００６】
ネットワークを現用ゲートウェイと予備ゲートウェイとで接続し、予備ゲートウェイから現用ゲートウェイテストデータを送信することにより、現用ゲートウェイの動作を監視し、現用ゲートウェイの異常を検出したとき、バックアップ動作を開始する冗長化構成方式等は特許文献１等により知られている。
【０００７】
また、ルータを二重化し、該ルータはホットスタンバイプロトコル（ＨＳＲＰ）により相互に送受信を行い、相対的なプライオリティを決定する技術は、引用文献２等により知られている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開昭６４−００１３５０号公報
【特許文献２】特開２０００−７８１９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上述した通信セッションの状態やパケットの内容など、レイヤ４以上の情報を参照して高度な中継処理を行う通信装置に対しては、通信セッションの状態を維持したまま、通信システムの動作を継続することができる二重化構成が要望されている。二重化した該通信装置で、同一の通信セッション状態を維持するためには、該通信装置の内部状態を他方の通信装置に実時間で転送する手法が使用される。
【００１０】
通信装置の内部状態は、通信装置の構造に依存するため、通信装置毎に個別の方式で内部状態が定義され、それに伴って通信装置毎の構造が複雑化する。そのため、冗長化非対応の通信装置に対して、通信セッションの状態を維持させようとすると、通信装置の実装コストが増大するとともに、機能の追加が困難になるという課題があった。
【００１１】
本発明は、冗長化非対応の通信装置に対し、二重化のためにそれらの通信装置の構造を変更することなく、ステートフルのプロトコルによる通信のセッション状態を、二重化された通信装置で同一状態に維持したまま、通信動作を継続させることができる通信二重化装置及び通信二重化方法を提供する。
【課題を解決するための手段】
【００１２】
上記課題を解決する通信二重化装置は、第１の通信装置とステートフル通信を行う二重化された一対の第２の通信装置のそれぞれに接続され、該ステートフル通信のパケットを中継する通信二重化装置であって、前記第１の通信装置から受信する第１のパケットを前記通信二重化装置に接続される第２の通信装置へ送信すると共に、該第１のパケットを複製し、他方の通信二重化装置へ転送する手段と、前記通信二重化装置に接続される前記第２の通信装置から受信する第２のパケットを複製し、該第２のパケットを他方の通信二重化装置へ転送する手段と、前記通信二重化装置に接続される前記第２の通信装置から受信する第２のパケットの第１の応答番号と、前記他方の通信二重化装置に接続される第２の通信装置からの第２のパケットを前記他方の通信二重化装置で複製して前記通信二重化装置へ転送されてくる第２のパケットの第２の応答番号とを含むセッション情報を記憶する記憶部と、前記通信二重化装置に接続される前記第２の通信装置から受信する第２のパケットに対して、前記記憶部に記憶されたセッション情報を参照し、セッション状態を同期させるよう、応答番号を更新して該第２のパケットを前記第１の通信装置へ送信する手段と、を備えたものである。
【００１３】
また、通信二重化方法は、第１の通信装置とステートフル通信を行う第２の通信装置を二重化し、該第１の通信装置と該第２の通信装置のそれぞれの間に接続された一対の通信二重化装置を用いる通信二重化方法であって、前記各通信二重化装置は、夫々前記第１の通信装置から受信した第１のパケットを前記各通信二重化装置に接続された前記第２の通信装置へ送信すると共に、該第１のパケットを複製し、他方の通信二重化装置を介して他方の第２の通信装置へ転送するステップと、前記各通信二重化装置に接続された前記第２の通信装置から受信した第２のパケットを複製し、該第２のパケットを他方の通信二重化装置へ転送するステップと、前記各通信二重化装置に接続された前記第２の通信装置から受信した第２のパケットの第１の応答番号と、前記他方の通信二重化装置に接続された前記他方の第２の通信装置からの第２のパケットを前記他方の通信二重化装置で複製して転送されてきた第２のパケットの第２の応答番号とを含むセッション情報を記憶部に記憶するステップと、前記通信二重化装置に接続される前記第２の通信装置から受信した第２のパケットに対して、前記記憶部に記憶されたセッション情報を参照し、セッション状態を同期させるよう、応答番号を更新して該第２のパケットを前記第１の通信装置へ送信するステップと、を含むものである。
【発明の効果】
【００１４】
冗長化非対応の通信装置を二重化し、ステートフルのプロトコルによる通信のセッション状態を、マスター系とバックアップ系とで維持したまま、通信システムの動作を継続させることが可能となる。冗長化非対応の通信装置の二重化は、それらの通信装置のネットワークポートに開示の通信二重化装置を接続するだけでよく、二重化のためにそれらの通信装置の構造を変更することなく、二重化することができる。また、異なる構造の通信装置に対して、同一の通信二重化装置を用いて二重化することができ、低コストで通信装置の二重化を実現することができる。
【図面の簡単な説明】
【００１５】
【図１】通信二重化装置を含む通信システムの構成例を示す図である。
【図２】レイヤ２中継装置の構成例及びＭＡＣアドレス表の一例を示す図である。
【図３】通信二重化装置の構成例を示す図である。
【図４】レイヤ３経路表及びセッション状態表の一例を示す図である。
【図５】マスター系におけるネットワークポートＡの受信パケットの処理フロー例を示す図である。
【図６】マスター系におけるネットワークポートＢの受信パケットの処理フロー例を示す図である。
【図７】バックアップ系におけるネットワークポートＡの受信パケットの処理フロー例を示す図である。
【図８】バックアップ系におけるネットワークポートＢの受信パケットの処理フロー例を示す図である。
【図９】縮退モードにおける通信二重化装置の処理フロー例を示す図である。
【発明を実施するための形態】
【００１６】
図１に開示の通信二重化装置を含む通信システムの構成例を示す。図１において、通信装置１０は、レイヤ２中継装置２０を介して二重化された通信二重化装置３０，３０’と接続され、該通信二重化装置３０，３０’は、それぞれ二重化された通信装置４０，４０’と接続される。各装置間は、Ｅｔｈｅｒｎｅｔ（登録商標）等のレイヤ２ネットワークプロトコルの通信回線により接続される。
【００１７】
図２の（ａ）にレイヤ２中継装置２０の構成例を示す。レイヤ２中継装置２０は、ＭＡＣアドレス表２１とパケット転送処理部２２とを備える。ＭＡＣアドレス表２１は、図２の（ｂ）に例示するように、各ネットワークポートに接続された通信装置のＭＡＣ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレスとネットワークポートの番号とを対応付けて記憶する。
【００１８】
パケット転送処理部２２は、各ネットワークポートから入力されるパケットを、該パケットの宛先ＭＡＣアドレスを基に、ＭＡＣアドレス表２１により対応付けられたネットワークポートへ転送し、各ネットワークポート間でのパケットの転送処理を行う。
【００１９】
図３に通信二重化装置３０，３０’の構成例を示す。二重化された通信二重化装置３０，３０’は、それぞれ同一の構成を有し、ネットワークポートＡを介してレイヤ２中継装置２０に接続される。第１の通信二重化装置３０は、ネットワークポートＢを介して第１の通信装置４０と接続され、第２の通信二重化装置３０’は、ネットワークポートＢを介して第２の通信装置４０’に接続される。
【００２０】
第１及び第２の通信二重化装置３０，３０’は、それぞれネットワークポートＡ’及びネットワークポートＢ’を介して相互に接続される。また、第１及び第２の通信装置４０，４０’は、二重化の対象となる通信装置であり、それぞれ個別のＭＡＣアドレスとそれぞれ同一のＩＰアドレスが設定される。
【００２１】
通信二重化装置３０，３０’は、それぞれ、パケット転送処理部３１Ａ，３１Ｂ、パケット複製処理部３２Ａ，３２Ｂ、パケット解析処理部３３Ａ，３３Ｂ、パケット中継判定部３４、パケット更新処理部３５、レイヤ３経路表３６、セッション状態表３７、セッション状態監視部３８、及びレイヤ３冗長化機能部３９を備える。
【００２２】
パケット転送処理部３１Ａは、ネットワークポートＡから受信されたパケットを、レイヤ３経路表３６に基づいて、ＩＰルーティング処理を行う。パケット転送処理部３１Ｂは、ネットワークポートＢから受信されたパケットを、レイヤ３経路表３６に基づいて、ＩＰルーティング処理を行う。
【００２３】
パケット複製処理部３２Ａは、パケット転送処理部３１Ａから入力されたパケットを複製し、ネットワークポートＡ’から該パケットを他方の通信二重化装置に送出し、また、該パケットをネットワークポートＢから送信する。パケット複製処理部３２Ｂは、パケット転送処理部３１Ｂから入力されたパケットを複製し、ネットワークポートＢ’から該パケットを他方の通信二重化装置に送出し、また、該パケットをパケット中継判定部３４へ転送する。
【００２４】
パケット解析処理部３３Ａは、ネットワークポートＡ’から受信されたパケットを解析し、該パケットをネットワークポートＢへ送出する。パケット解析処理部３３Ｂは、ネットワークポートＢ’から受信されたパケットを解析し、該パケットをパケット中継判定部３４へ送出する。
【００２５】
パケット中継判定部３４は、パケット複製処理部３２Ｂから入力されるパケット及びパケット解析処理部３３Ｂから入力されるパケットに対して、中継するか否かの判定を行い、中継するパケットをパケット更新処理部３５へ転送する。パケット更新処理部３５は、パケット中継判定部３４から入力されるパケットに対してパケットの内容の更新処理を行い、該パケットをネットワークポートＡから送出する。
【００２６】
レイヤ３経路表３６は、ネットワークポートＡ，Ｂから受信されたパケットに対して、パケット転送処理部３１Ａ，３１ＢがＩＰルーティング処理を行う際に使用される。レイヤ３経路表３６の一例を図４の（ａ）に示す。
【００２７】
レイヤ３経路表３６は、受信したパケットの宛先ＩＰアドレスと、該パケットの転送先のネットワークポートの番号とを対応付けて記憶している。図４の（ａ）の例では、宛先ＩＰアドレス１９２．０．１．０のパケットをネットワークポートＡへ転送し、宛先ＩＰアドレス１９２．０．２．０のパケットをネットワークポートＢへ転送するＩＰルーティング処理が行われる。
【００２８】
セッション状態表３７の一例を図４の（ｂ）に示す。セッション状態表３７は、各通信セッション対応に、セッション状態、ネットワークポートＡで受信されたパケット（通信装置１０が送信したパケット）に含まれる送信元ＩＰアドレス、送信元ポート番号、シーケンス（ＳＥＱ）番号、応答（ＡＣＫ）番号、及びネットワークポートＢ，Ｂ’で受信されたパケット（通信装置４０，４０’が送信したパケット）に含まれる送信元ＩＰアドレス、送信元ポート番号、シーケンス（ＳＥＱ）番号、第１の応答（ＡＣＫ）番号、第２応答の（ＡＣＫ）番号を対応付けて記憶部に記憶する。
【００２９】
上述の第１応答（ＡＣＫ）番号は、自装置に接続された通信装置が送信し、自装置のネットワークポートＢで受信されたパケットに含まれる最新の応答番号である。第２応答（ＡＣＫ）番号は、他方の通信二重化装置に接続された通信装置が送信し、該他方の通信二重化装置からネットワークポートＢ’で受信したパケットに含まれる応答（ＡＣＫ）番号である。以下、第１の応答（ＡＣＫ）番号を「ＡＣＫ番号＃１」と記し、第２の応答（ＡＣＫ）番号を「ＡＣＫ番号＃２」と記す。
【００３０】
セッション状態監視部３８は、セッション状態表３７を監視し、ＴＣＰ通信のセッション状態がクローズ（終了）となったとき、セッション状態表３７からそのＴＣＰ通信のセッション情報を削除する。
【００３１】
レイヤ３冗長化機能部３９は、ＶＲＲＰ等のプロトコルによる冗長構成処理を行う。通信二重化装置３０，３０’は、レイヤ３冗長化機能部３９の系切り替え機能により、例えば、通信二重化装置３０の通信系をマスター系とし、通信二重化装置３０’の通信系をバックアップ系とするよう動作状態が設定される。
【００３２】
マスター系及びバックアップ系の何れの通信系も正常の場合、通信二重化装置３０，３０’は、冗長モードで動作する。何れかの通信系が障害状態になると、一方の正常な通信系の通信二重化装置のみで動作する縮退モードに移行する。
【００３３】
ここで、通信二重化装置３０がマスター系として動作するものとすると、通信二重化装置３０は、ＶＲＲＰ等の冗長構成処理機能により、生存通知の広告パケットをレイヤ２中継装置２０に対してマルチキャストにより送信する。また、通信二重化装置３０は、通信装置１０に対して仮想的なＭＡＣアドレスを自装置のＭＡＣアドレスとして使用する。
【００３４】
レイヤ２中継装置２０は、該ＭＡＣアドレスを学習し、通信装置１０から該ＭＡＣアドレス宛に送信されたパケットをマスター系の通信二重化装置３０に転送する。バックアップ系の通信二重化装置３０’は、マスター系の通信二重化装置３０から広告パケットが到来しなくなると、マスター系の通信二重化装置３０に障害が発生したと認識し、縮退モードに移行する。
【００３５】
通信二重化装置３０’は、縮退モードに移行すると、自装置のＭＡＣアドレスを送信元ＭＡＣアドレスとするＡＲＰ（Ａｄｄｒｅｓｓ  Ｒｅｓｏｌｕｔｉｏｎ  Ｐｒｏｔｏｃｏｌ）パケットを、レイヤ２中継装置２０に対してブロードキャストにより送信する。該ＡＲＰパケットのブロードキャストにより、レイヤ２中継装置２０は、該ＭＡＣアドレスと、通信二重化装置３０’が接続されたネットワークポートとの対応を再学習し、その結果、該ＭＡＣアドレス宛のパケットを通信二重化装置３０’へ転送する。
【００３６】
冗長モードにおける通信二重化装置３０，３０’の処理フロー例を図５〜図８に示す。以降の説明では、通信二重化装置３０がマスター系、通信二重化装置３０’がバックアップ系として動作するものとする。
【００３７】
図５は、マスター系におけるネットワークポートＡの受信パケットの処理フロー例を示し、図６は、マスター系におけるネットワークポートＢの受信パケットの処理フロー例を示し、図７は、バックアップ系におけるネットワークポートＡの受信パケットの処理フロー例を示し、図８は、バックアップ系におけるネットワークポートＢの受信パケットの処理フロー例を示している。
【００３８】
まず、図５を参照してマスター系におけるネットワークポートＡの受信パケットの処理フロー例について説明する。通信装置１０が通信装置４０との通信を開始すると、通信装置１０が送信したパケットは、レイヤ２中継装置２０を経由して通信二重化装置３０のネットワークポートＡに到達する。
【００３９】
通信二重化装置３０は、該パケットを受信すると（５−１）、パケット転送処理部３１Ａで宛先ＩＰアドレスの確認を行い（５−２）、ＩＰルーティング処理を開始する。パケット転送処理部３１Ａは、まず、該パケットが自装置宛のパケットか否かを判定し（５−３）、自装置宛のパケットの場合、該パケットをレイヤ３冗長化機能部３９に転送する（５−４）。
【００４０】
次にパケット転送処理部３１Ａは、レイヤ３経路表３６を基に、該パケットがネットワークポートＢへ転送するパケットか否かを判定し（５−５）、ネットワークポートＢへ転送するパケットでない場合、該パケットを破棄する（５−６）。該パケットがネットワークポートＢへ、即ち通信装置４０へ転送するパケットである場合、パケット転送処理部３１Ａは、該パケットのプロトコル番号を確認し（５−７）、該パケットがＴＣＰパケットかどうかを判定する（５−８）。
【００４１】
該パケットがＴＣＰパケットでない場合、パケット転送処理部３１Ａは、該パケットをネットワークポートＢから送信する（５−１５）。該パケットがＴＣＰパケットである場合、パケット転送処理部３１Ａは、図４の（ｂ）に例示するセッション状態表３７を参照する（５−９）。
【００４２】
パケット転送処理部３１Ａは、セッション状態表３７を探索し、該パケットの送信元ＩＰアドレス、送信元ポート番号、宛先ＩＰアドレス、宛先ポート番号と一致するＴＣＰ通信のセッション情報が存在しない（新規なセッションである）か否かを判定する（５−１０）。
【００４３】
セッション状態表３７に、当該パケットのセッションと一致するＴＣＰ通信のセッション情報が存在する場合、パケット転送処理部３１Ａは、該セッション情報を更新する（５−１１）。ここで更新するセッション情報は、最新のシーケンス（ＳＥＱ）番号、最新の応答（ＡＣＫ）番号を含む情報である。
【００４４】
セッション状態表３７に、当該パケットのセッションと一致するＴＣＰ通信のセッション情報が存在せず、新規の通信セッションである場合、パケット転送処理部３１Ａは、当該パケットのＴＣＰ通信のセッション情報を新規に登録する（５−１２）。
【００４５】
次にパケット転送処理部３１Ａは、該パケットをパケット複製処理部３２Ａへ転送する。パケット複製処理部３２Ａは、該パケットを複製し（５−１３）、ネットワークポートＡ’及びネットワークポートＢの両方から、該パケットを送信する（５−１４，５−１５）。マスター系の通信二重化装置３０において、ネットワークポートＡ’でパケットが受信されると（５−１６）、該パケットはパケット解析処理部３３Ａで解析され、破棄される（５−１７）。
【００４６】
次に図６を参照してマスター系におけるネットワークポートＢの受信パケットの処理フロー例について説明する。通信装置４０は、通信二重化装置３０からＴＣＰパケットを受信すると、そのＴＣＰパケットに対する応答パケット（ＡＣＫパケット）を送信する。通信装置４０が送信したパケットは、通信二重化装置３０のネットワークポートＢに到達する。
【００４７】
通信二重化装置３０は、該パケットを受信すると（６−１）、パケット転送処理部３１Ｂで宛先ＩＰアドレスの確認を行い（６−２）、ＩＰルーティング処理を開始する。パケット転送処理部３１Ｂは、該パケットがネットワークポートＡへ転送するパケットか否かを判定し（６−３）、ネットワークポートＡへ転送するパケットでない場合、該パケットを破棄する（６−４）。
【００４８】
該パケットがネットワークポートＡへ、即ち通信装置１０へ転送するパケットである場合、パケット転送処理部３１Ｂは、該パケットのプロトコル番号を確認し（６−５）、該パケットがＴＣＰパケットかどうかを判定する（６−６）。
【００４９】
該パケットがＴＣＰパケットでない場合、パケット転送処理部３１Ｂは、該パケットをネットワークポートＡから送信する（６−２２）。該パケットがＴＣＰパケットである場合、パケット転送処理部３１Ｂは、図４の（ｂ）に例示するセッション状態表３７を参照する（６−７）。
【００５０】
パケット転送処理部３１Ｂは、セッション状態表３７を探索し、該パケットの送信元ＩＰアドレス、送信元ポート番号、宛先ＩＰアドレス、宛先ポート番号と一致するＴＣＰ通信のセッション情報が存在しない（新規なセッションであるか）否かを判定する（６−８）。
【００５１】
セッション状態表３７に、当該パケットのセッションと一致するＴＣＰ通信のセッション情報が存在しない（新規通信セッションである）場合、パケット転送処理部３１Ｂは、該パケットをネットワークポートＡから送信する（６−２２）。
【００５２】
セッション状態表３７に、当該パケットのセッションと一致するＴＣＰ通信のセッション情報が存在する（新規なセッションではない）場合、パケット転送処理部３１Ｂは、該セッション情報を更新する（６−９）。ここで更新するセッション情報は、最新のシーケンス（ＳＥＱ）番号、最新の応答（ＡＣＫ）番号を含む情報である。次にパケット転送処理部３１Ｂは、該パケットをパケット中継判定部３４に転送する。
【００５３】
一方、マスター系の通信二重化装置３０には、バックアップ系の通信二重化装置３０’からネットワークポートＢ’を介して、バックアップ系の通信装置４０’が送信した応答パケットが受信される（６−１０）。マスター系の通信二重化装置３０は、該バックアップ系からの応答パケットをパケット解析処理部３３Ｂで解析し、該パケットのプロトコル番号を確認する（６−１１）。
【００５４】
パケット解析処理部３３Ｂは、該パケットのプロトコル番号を基に該パケットがＴＣＰパケットであるか否かを判定する（６−１２）。該パケットがＴＣＰパケットでない場合、パケット解析処理部３３Ｂは、該パケットを破棄する（６−１３）。該パケットがＴＣＰパケットである場合、パケット解析処理部３３Ｂは、セッション状態表３７を参照する（６−１４）。
【００５５】
パケット解析処理部３３Ｂは、セッション状態表３７を探索し、該パケットの送信元ＩＰアドレス、送信元ポート番号、宛先ＩＰアドレス、宛先ポート番号と一致するＴＣＰ通信のセッション情報が存在しない（新規なセッションである）か否かを判定する（６−１５）。
【００５６】
セッション状態表３７に、当該パケットのセッションと一致するＴＣＰ通信のセッション情報が存在しない（新規セッションである）場合、パケット解析処理部３３Ｂは、該パケットを破棄する（６−１６）。セッション状態表３７に、当該パケットのセッションと一致するＴＣＰ通信のセッション情報が存在する（新規セッションでない）場合、パケット解析処理部３３Ｂは、該セッション情報を更新する（６−１７）。ここで更新するセッション情報は、最新のシーケンス（ＳＥＱ）番号、最新の応答（ＡＣＫ）番号を含む情報である。
【００５７】
パケット中継判定部３４は、パケット複製処理部３２Ｂからパケットが入力されると、セッション状態表３７を参照し（６−１８）、該パケットの送信元ＩＰアドレス、送信元ポート番号、宛先ＩＰアドレス、宛先ポート番号と一致するＴＣＰ通信のセッション情報を探索する。ここで、参照するセッション情報は、ネットワークポートＢ側のＡＣＫ番号＃１及びＡＣＫ番号＃２である。
【００５８】
ＡＣＫ番号＃１は、ネットワークポートＢから受信したＴＣＰパケットに含まれる最新の応答（ＡＣＫ）番号を示し、ＡＣＫ番号＃２は、ネットワークポートＢ’から受信したＴＣＰパケットに含まれる最新の応答（ＡＣＫ）番号を示す。
【００５９】
パケット中継判定部３４は、該パケットの応答（ＡＣＫ）番号の比較結果、及び該パケットがデータを含んでいるか否かを基に、該パケットが転送対象のパケットか否かを判定する（６−１９）。この判定において、（１）該パケットの応答（ＡＣＫ）番号が、ＡＣＫ番号＃１とＡＣＫ番号＃２とに一致する、又は（２）ＡＣＫ番号＃１とＡＣＫ番号＃２の何れか古い番号よりもさらに古い応答（ＡＣＫ）番号である、又は（３）該パケットがデータを含んでいる、これらの何れかの条件に該当するとき、該パケットは転送対象のパケットであると判定し、該パケットをパケット更新処理部３５に転送する。
【００６０】
該パケットが上述の何れの条件を満たしていない場合、即ち、該パケットの応答（ＡＣＫ）番号が、ＡＣＫ番号＃１又はＡＣＫ番号＃２の何れか古い番号よりも新しく、かつ、該パケットがデータを含んでいない場合、該パケットを破棄する（６−２０）。
【００６１】
パケット更新処理部３５は、入力されたパケットに対して、セッション状態表３７を参照し、該パケットの送信元ＩＰアドレス、送信元ポート番号、宛先ＩＰアドレス、宛先ポート番号と一致するセッション情報を探索する。ここで参照するセッション情報は、ネットワークポートＡ側の応答（ＡＣＫ）番号、ネットワークポートＢ側のＡＣＫ番号＃１及びＡＣＫ番号＃２である。
【００６２】
該パケットに含まれるシーケンス（ＳＥＱ）番号と該パケットのデータ長とから求められる最新のシーケンス（ＳＥＱ）番号が、ネットワークポートＡ側の応答（ＡＣＫ）番号よりも古い場合、該パケットのデータ部分は、既に通信装置１０で受信されていることになるので、パケット更新処理部３５は、該パケットのデータ部分を削除し、パケットの内容を更新する（６−２１）。
【００６３】
また、該パケットがデータを含み、該パケットの応答（ＡＣＫ）番号が、ネットワークポートＢ側のＡＣＫ番号＃１とＡＣＫ番号＃２の何れか古い番号よりも新しい応答（ＡＣＫ）番号である場合、該パケットの応答（ＡＣＫ）番号を、ＡＣＫ番号＃１とＡＣＫ番号＃２の何れか古い番号に書き換え、パケットの内容を更新する（６−２１）。
【００６４】
パケット更新処理部３５は、パケット中継判定部３４から入力されたパケットに対して、上述のパケットの内容の更新を行った後、それらのパケットをネットワークポートＡから送信する（６−２２）。
【００６５】
上述の条件（１）が満たされる場合、即ち、応答パケットの応答（ＡＣＫ）番号が、ＡＣＫ番号＃１とＡＣＫ番号＃２とに一致する場合は、通信装置４０と通信装置４０’とでセッション状態が同期している状態であるので、該応答パケットを送信装置１０へ送信する。
【００６６】
また、上述の条件（２）が満たされる場合、即ち、応答パケットの応答（ＡＣＫ）番号が、ＡＣＫ番号＃１とＡＣＫ番号＃２の何れか古い番号よりもさらに古い応答（ＡＣＫ）番号である場合は、通信装置４０でパケットの再送要求が発せられたことになるので、該応答パケットを送信装置１０へ送信する。
【００６７】
また、上述の条件（３）が満たされる場合、即ち応答パケットが通信データを含んでいる場合は、該通信データを無条件で送信装置１０に通知するため、該応答パケットを送信装置１０へ送信する。
【００６８】
一方、応答パケットが上述の（１）〜（３）何れの条件を満たしていない場合、即ち、該パケットの応答（ＡＣＫ）番号が、ＡＣＫ番号＃１又はＡＣＫ番号＃２の何れか古い番号よりも新しく、かつ、該パケットがデータを含んでいない場合は、以下のようにすることができる。
【００６９】
ネットワークポートＢから受信される通信装置４０からの応答パケットと、ネットワークポートＢ’を介して受信される通信装置４０’からの応答パケットとは、必ずしも受信のタイミングが一致せず、受信タイミングのズレによりＡＣＫ番号＃１とＡＣＫ番号＃２とが一致しない場合がある。その場合は、該応答パケットを破棄することとする。
【００７０】
応答パケットを破棄しても、同一の応答番号の応答パケットが通信装置４０から繰り返し送信されるので、同一の応答番号の応答パケットが揃うのを待つことにより、受信タイミングのズレが吸収され、上述の条件（１）が満たされることとなる。
【００７１】
なお、受信タイミングのズレが原因ではなく、伝送エラー等によってＡＣＫ番号＃１とＡＣＫ番号＃２とにズレが生じた場合は、応答パケットに通信データを含んでいるときに、該応答パケットを通信装置１０に送信する際に、ＡＣＫ番号＃１とＡＣＫ番号＃２の古い番号に応答（ＡＣＫ）番号を書き換えることにより、通信装置４０と通信装置４０’のセッション状態を同期化することができる。なお、この応答（ＡＣＫ）番号の書き換えの更新処理は、通信データを含んでいないときにも行う構成することもできる。
【００７２】
次に、図７を参照してバックアップ系におけるネットワークポートＡの受信パケットの処理フロー例について説明する。バックアップ系の通信二重化装置３０’は、ネットワークポートＡでパケットを受信すると（７−１）、パケット転送処理部３１Ａで宛先ＩＰアドレスの確認を行い（７−２）、ＩＰルーティング処理を開始する。
【００７３】
パケット転送処理部３１Ａは、該パケットが自装置宛のパケットか否かを判定し（７−３）、自装置宛のパケットである場合、該パケットをレイヤ３冗長化機能部３９に転送する（７−４）。該パケットが自装置宛のパケットでない場合、該パケットを破棄する（７−５）。
【００７４】
通信二重化装置３０’は、ネットワークポートＡ’でパケットを受信すると（７−６）、パケット解析処理部３３Ａでプロトコル番号の確認を行い（７−７）、該パケットがＴＣＰパケットかどうかを判定する（７−８）。該パケットがＴＣＰパケットでない場合、パケット解析処理部３１Ａは、該パケットをネットワークポートＢから送信する（７−１３）。
【００７５】
該パケットがＴＣＰパケットである場合、パケット解析処理部３１Ｂは、セッション状態表３７を参照し（７−９）、該パケットが新規なセッションである（該パケットのセッション情報と一致するＴＣＰ通信のセッション情報が存在しない）か否かを判定する（７−１０）。
【００７６】
新規なセッションでない（該パケットのセッション情報と一致するＴＣＰ通信のセッション情報が存在する）場合、該パケットのセッション情報を更新する（７−１１）。該パケットが新規なセッションである場合、該パケットのセッション情報をセッション状態表３７に登録する（７−１２）。その後、パケット解析処理部３１Ａは、該パケットをネットワークポートＢから送信する（７−１３）。
【００７７】
次に、図８を参照してバックアップ系におけるネットワークポートＢの受信パケットの処理フロー例について説明する。通信装置４０’は、通信二重化装置３０’からＴＣＰパケットを受信すると、通信装置４０と並行して該ＴＣＰパケットに対する応答パケット（ＡＣＫ）を送信する。
【００７８】
通信装置４０’が送信したパケットは、通信二重化装置３０’のネットワークポートＢに到達する。通信二重化装置３０’は、該パケットを受信すると（８−１）、パケット転送処理部３１Ｂで宛先ＩＰアドレスの確認を行い（８−２）、ＩＰルーティング処理を開始する。
【００７９】
パケット転送処理部３１Ｂは、該パケットがネットワークポートＡへ転送するパケットか否かを判定し（８−３）、ネットワークポートＡへ転送するパケットでない場合、該パケットを破棄する（８−４）。該パケットがネットワークポートＡへ転送するパケットである場合、パケット転送処理部３１Ｂは、該パケットのプロトコル番号を確認し（８−５）、該パケットがＴＣＰパケットかどうかを判定する（８−６）。
【００８０】
該パケットがＴＣＰパケットでない場合、パケット転送処理部３１Ｂは、該パケットを破棄する（８−７）。該パケットがＴＣＰパケットである場合、パケット転送処理部３１Ｂは、セッション状態表３７を参照する（８−８）。パケット転送処理部３１Ｂは、セッション状態表３７を探索し、該パケットの送信元ＩＰアドレス、送信元ポート番号、宛先ＩＰアドレス、宛先ポート番号と一致するＴＣＰ通信のセッション情報が存在しない（新規なセッションである）か否かを判定する（８−９）。
【００８１】
該パケットが新規なセッションである場合、該パケットを破棄する（８−１０）。該パケットのセッション情報と一致するＴＣＰ通信のセッション情報が存在する場合、パケット転送処理部３１Ｂは、該セッション情報を更新する（８−１１）。ここで更新するセッション情報は、最新のシーケンス（ＳＥＱ）番号、最新の応答（ＡＣＫ）番号を含む情報である。
【００８２】
次にパケット転送処理部３１Ｂは、該パケットをパケット複製処理部３２Ｂに転送する。パケット複製処理部３２Ｂは、該パケットを複製し（８−１２）、ネットワークポートＢ’から送出すると共に（８−１３）、該パケットをパケット中継判定部３４に転送する。パケット中継判定部３４は該パケットを破棄する（８−１４）。
【００８３】
また、通信二重化装置３０’は、ネットワークポートＢ’でパケットを受信する（８−１５）と、パケット解析処理部３３Ｂは、該パケットをパケット中継判定部３４に転送し、パケット中継判定部３４は、該パケットを破棄する（８−１６）。
【００８４】
以上の動作により、通信二重化装置３０と通信二重化装置３０’は、通信装置１０−通信装置３０間のＴＣＰ通信と、通信装置１０−通信装置３０’間のＴＣＰ通信とで、ＴＣＰ通信のセッション情報を同一状態に維持させたまま、即ちセッション情報を同期させながら、パケットを中継する。
【００８５】
この冗長モードでは、マスター系の通信二重化装置３０は、ネットワークポートＡ’から受信したパケットを破棄する。バックアップ系の通信二重化装置３０’は、ネットワークポートＡから受信したパケットをパケット転送処理部３１Ａで処理する。そのパケットが自装置宛のパケットの場合、レイヤ３冗長化機能部３９に転送する。それ以外のパケットは破棄する。また、バックアップ系の通信二重化装置３０’は、ネットワークポートＢ’で受信したパケットを破棄する。
【００８６】
また、セッション状態監視部３８は、ネットワークポートＢから送信したＴＣＰパケットに対する応答パケット（ＡＣＫ）を監視し、該応答パケットの再送時間を待機し、該再送時間内に応答パケット（ＡＣＫ）が受信されない場合は、その通信系に障害が発生したと判断する。
【００８７】
通信二重化装置３０に障害発生した場合、通信二重化装置３０’は、レイヤ３冗長化機能部３９により該障害発生を検出し、縮退モードに移行する。通信装置４０に障害が発生した場合、通信二重化装置３０は、ネットワークポートＢからの応答パケット（ＡＣＫ）の監視により該障害を検出し、縮退モードに移行する。
【００８８】
通信二重化装置３０’又は通信装置４０’に障害発生した場合、通信二重化装置３０は、ネットワークポートＢ’からの応答パケット（ＡＣＫ）の監視により該障害を検出し、縮退モードに移行する。
【００８９】
図９に縮退モードにおける通信二重化装置の処理フロー例を示す。縮退モードの通信二重化装置において、ネットワークポートＡでパケットを受信すると（９−１）、パケット転送処理部３１Ａは、受信したにパケットの宛先ＩＰアドレスを確認し（９−２）、ＩＰルーティング処理を行う。
【００９０】
パケット転送処理部３１Ａは、該パケットが自装置宛のパケットか否かを判定し、自装置宛のパケットである場合、該パケットをレイヤ３冗長化機能部３９に転送する（９−４）。該パケットが自装置宛のパケットでない場合、該パケットは、ネットワークポートＢに転送するパケットか否かを判定する（９−５）。ネットワークポートＢに転送するパケットでない場合、該パケットを破棄する（９−６）。該パケットがネットワークポートＢに転送するパケットの場合、該パケットをネットワークポートＢから送信する（９−７）。
【００９１】
縮退モードの通信二重化装置において、ネットワークポートＢでパケットを受信すると（９−８）、パケット転送処理部３１Ｂは、受信したにパケットの宛先ＩＰアドレスを確認し（９−９）、ＩＰルーティング処理を行う。パケット転送処理部３１Ｂは、該パケットがネットワークポートＡに転送するパケットであるか否かを判定し（９−１０）、ネットワークポートＡに転送するパケットでない場合、該パケットを破棄する（９−１１）。該パケットがネットワークポートＡに転送するパケットである場合、該パケットをネットワークポートＡから送信する（９−１２）。
【００９２】
縮退モードの通信二重化装置において、ネットワークポートＡ’でパケットを受信すると（９−１３）、パケット解析処理部３３Ａは、該パケットを破棄する（９−１４）。また、ネットワークポートＢ’でパケットを受信すると（９−１５）、パケット解析処理部３３Ｂは、該パケットを破棄する（９−１６）。なお、パケット解析処理部３３Ｂで破棄せず、パケット中継判定部３４で破棄する構成としてもよい。
【００９３】
障害が発生した通信系が回復した場合、レイヤ３冗長化機能部３９は、他方の通信二重化装置に対して回復したことを通知する。その後、通信二重化装置３０，３０’は、それぞれ冗長モードに移行し、新規のステートフル通信に対して二重化動作を開始する。このとき、通信二重化装置３０，３０’の何れがマスター系又はバックアップ系として動作するかは、レイヤ３冗長化機能部３９の制御に従う。
【００９４】
通信装置４０，４０’の構造によっては、ＴＣＰパケットに含まれるシーケンス（ＳＥＱ）番号と応答（ＡＣＫ）番号が必ずしも一致しない場合がある。この場合は、ＴＣＰのセッション確立開始時に、シーケンス（ＳＥＱ）番号と応答（ＡＣＫ）番号との差をセッション状態表３７に別途記録し、参照時に補正することにより対応することができる。
【００９５】
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
（付記１）
第１の通信装置とステートフル通信を行う二重化された一対の第２の通信装置のそれぞれに接続され、該ステートフル通信のパケットを中継する通信二重化装置であって、
前記第１の通信装置から受信する第１のパケットを前記通信二重化装置に接続される第２の通信装置へ送信すると共に、該第１のパケットを複製し、他方の通信二重化装置へ転送する手段と、
前記通信二重化装置に接続される前記第２の通信装置から受信する第２のパケットを複製し、該第２のパケットを他方の通信二重化装置へ転送する手段と、
前記通信二重化装置に接続される前記第２の通信装置から受信する第２のパケットの第１の応答番号と、前記他方の通信二重化装置に接続される第２の通信装置からの第２のパケットを前記他方の通信二重化装置で複製して前記通信二重化装置へ転送されてくる第２のパケットの第２の応答番号とを含むセッション情報を記憶する記憶部と、
前記通信二重化装置に接続される前記第２の通信装置から受信する第２のパケットに対して、前記記憶部に記憶されたセッション情報を参照し、セッション状態を同期させるよう、応答番号を更新して該第２のパケットを前記第１の通信装置へ送信する手段と、
を備えたことを特徴とする通信二重化装置。
（付記２）
前記第２の通信装置から受信する第２のパケットに対して、該第２のパケットの応答番号が、前記記憶部に記憶された前記第１の応答番号と前記第２の応答番号の何れか古い番号より新しい場合に、該第２のパケットの応答番号を、前記第１の応答番号と前記第２の応答番号の何れか古い番号に書き換えて該第２のパケットを更新することを特徴とする付記１に記載の通信二重化装置。
（付記３）
前記第２のパケットの応答番号が、前記記憶部に記憶された前記第１の応答番号と前記第２の応答番号の何れか古い番号より新しい場合、該第２のパケットが応答番号と共に通信データを含んでいるときに、該第２のパケットの応答番号を、前記第１の応答番号と前記第２の応答番号の何れか古い番号に書き換え、該第２のパケットが通信データを含んでいないとき、該第２のパケットを破棄することを特徴とする付記２に記載の通信二重化装置。
（付記４）
第１の通信装置とステートフル通信を行う第２の通信装置を二重化し、該第１の通信装置と該第２の通信装置のそれぞれの間に接続された一対の通信二重化装置を用いる通信二重化方法であって、
前記各通信二重化装置は、夫々前記第１の通信装置から受信した第１のパケットを前記各通信二重化装置に接続された前記第２の通信装置へ送信すると共に、該第１のパケットを複製し、他方の通信二重化装置を介して他方の第２の通信装置へ転送するステップと、
前記各通信二重化装置に接続された前記第２の通信装置から受信した第２のパケットを複製し、該第２のパケットを他方の通信二重化装置へ転送するステップと、
前記各通信二重化装置に接続された前記第２の通信装置から受信した第２のパケットの第１の応答番号と、前記他方の通信二重化装置に接続された前記他方の第２の通信装置からの第２のパケットを前記他方の通信二重化装置で複製して転送されてきた第２のパケットの第２の応答番号とを含むセッション情報を記憶部に記憶するステップと、
前記通信二重化装置に接続される前記第２の通信装置から受信した第２のパケットに対して、前記記憶部に記憶されたセッション情報を参照し、セッション状態を同期させるよう、応答番号を更新して該第２のパケットを前記第１の通信装置へ送信するステップと、
を含むことを特徴とする通信二重化方法。
（付記５）
前記第２の通信装置から受信した第２のパケットに対して、該第２のパケットの応答番号が、前記記憶部に記憶された前記第１の応答番号と前記第２の応答番号の何れか古い番号より新しい場合に、該第２のパケットの応答番号を、前記第１の応答番号と前記第２の応答番号の何れか古い番号に書き換えて該第２のパケットを更新するステップを含むことを特徴とする付記４に記載の通信二重化方法。
（付記６）
前記第２のパケットの応答番号が、前記記憶部に記憶された前記第１の応答番号と前記第２の応答番号の何れか古い番号より新しい場合、該第２のパケットが応答番号と共に通信データを含んでいるときに、該第２のパケットの応答番号を、前記第１の応答番号と前記第２の応答番号の何れか古い番号に書き換え、該第２のパケットが通信データを含んでいないとき、該第２のパケットを破棄するステップを含むことを特徴とする付記５に記載の通信二重化方法。
【符号の説明】
【００９６】
１０  通信装置
２０  レイヤ２中継装置
２１  ＭＡＣアドレス表
２２  パケット転送処理部
３０，３０’  通信二重化装置
３１Ａ，３１Ｂ  パケット転送処理部
３２Ａ，３２Ｂ  パケット複製処理部
３３Ａ，３３Ｂ  パケット解析処理部
３４  パケット中継判定部
３５  パケット更新処理部
３６  レイヤ３経路表
３７  セッション状態表
３８  セッション状態監視部
３９  レイヤ３冗長化機能部
４０，４０’  通信装置
【図１】
0005655661.tif 000002
【図２】
0005655661.tif 000003
【図３】
0005655661.tif 000004
【図４】
0005655661.tif 000005
【図５】
0005655661.tif 000006
【図６】
0005655661.tif 000007
【図７】
0005655661.tif 000008
【図８】
0005655661.tif 000009
【図９】
0005655661.tif 000010