(57)【要約】【課題】耐障害性の向上を図る。【解決手段】通信装置１は、制御部１ａおよび記憶部１ｂを備える。制御部１ａは、第１の現用系として機能する場合、データを分割して分割データを生成してヘッダを付与するプロトコル変換を行って複数のパケットを生成して送信する。制御部１ａは、対向装置として機能する場合、受信した分割データを宛先へ送信し、ヘッダにもとづいて未受信パケットを検出した場合は未受信検出情報を生成する。制御部１ａは、待機系として機能する場合、第１の現用系の停止を検出すると第２の現用系に切り替わる。制御部１ａは、第２の現用系として機能する場合、未受信検出情報にもとづいて記憶部１ｂに格納しているデータから未受信パケットに含まれる未受信分割データを抽出して対向装置へ送信する。【選択図】図１
2020150300.tif 000002
【特許請求の範囲】
【請求項１】
受信したデータを格納する記憶部と、
第１の現用系として機能する場合、前記データを分割して分割データを生成し、前記分割データそれぞれにヘッダを付与してプロトコル変換を行って複数のパケットを生成し、生成した前記パケットを対向装置へ送信し、待機系として機能する場合、前記第１の現用系の動作監視を行い、前記第１の現用系の停止を検出した場合は、前記第２の現用系に切り替わったことを前記対向装置へ通知し、前記対向装置から送信された未受信検出情報にもとづいて前記記憶部に格納している前記データから未受信パケットに含まれる未受信分割データを抽出し、抽出した前記未受信分割データを前記対向装置へ送信する制御部と、
を有する通信装置。
【請求項２】
前記制御部は、前記ヘッダとして、
前記分割データのすべてにシーケンス番号を含む第１のヘッダを付与し、
連続する複数の前記分割データを含む分割データ群のうちの先頭分割データにはさらに、前記分割データ群が伝送されるコネクションの識別子および前記分割データ群のデータ長情報を含む第２のヘッダを付与し、
非連続の単一分割データにはさらに、前記単一分割データが伝送されるコネクションの識別子および前記単一分割データのデータ長情報を含む第３のヘッダを付与する請求項１記載の通信装置。
【請求項３】
前記制御部は、
受信済みの第１のパケット内の第１の分割データに付与された前記第１のヘッダに含まれる第１のシーケンス番号に、前記第１の分割データの第１のデータ長と、前記第１の分割データに付与されている前記第２のヘッダまたは前記第３のヘッダの長さとを加算して第２のシーケンス番号を算出し、
前記第２のヘッダまたは前記第３のヘッダに含まれる前記データ長情報から前記第１のデータ長を引いた第２のデータ長を算出し、
受信済みパケットに付与されている前記シーケンス番号のうち前記第２のシーケンス番号が未検出の場合、前記第２のシーケンス番号が付与されており、かつ前記第２のデータ長の第２の分割データを含む第２のパケットを前記未受信パケットとして検出する請求項２記載の通信装置。
【請求項４】
前記制御部は、前記未受信パケットを検出した場合、前記未受信パケットが伝送されるコネクションの識別子と、前記未受信分割データの分割開始位置と、前記未受信分割データのデータ長とを少なくとも含む前記未受信検出情報を生成する請求項１記載の通信装置。
【請求項５】
コンピュータが、
第１の現用系として機能する場合、受信したデータを分割して分割データを生成し、前記分割データそれぞれにヘッダを付与してプロトコル変換を行って複数のパケットを生成し、生成した前記パケットを対向装置へ送信し、
待機系として機能する場合、前記第１の現用系の動作監視を行い、前記第１の現用系の停止を検出した場合は、前記第２の現用系に切り替わったことを前記対向装置へ通知し、前記対向装置から送信された未受信検出情報にもとづいて記憶部に格納している前記データから未受信パケットに含まれる未受信分割データを抽出し、抽出した前記未受信分割データを前記対向装置へ送信する、
処理を実行する通信制御方法。
【請求項６】
コンピュータに、
第１の現用系として機能する場合、受信したデータを分割して分割データを生成し、前記分割データそれぞれにヘッダを付与してプロトコル変換を行って複数のパケットを生成し、生成した前記パケットを対向装置へ送信し、
待機系として機能する場合、前記第１の現用系の動作監視を行い、前記第１の現用系の停止を検出した場合は、前記第２の現用系に切り替わったことを前記対向装置へ通知し、前記対向装置から送信された未受信検出情報にもとづいて記憶部に格納している前記データから未受信パケットに含まれる未受信分割データを抽出し、抽出した前記未受信分割データを前記対向装置へ送信する、
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信制御方法およびプログラムに関する。
【背景技術】
【０００２】
クライアント／サーバのネットワーク通信を中継する通信装置を備えたシステムでは、通信装置が故障した場合、データロス（パケットロス）が発生する。データロスが発生すると、例えば、アプリケーションタイムアウトやコネクションの切断等が発生して通信サービスに支障が生じる。
【０００３】
そのため、通信装置が故障した場合にも通信サービスに支障が生じないように、通信装置を冗長構成にしてネットワーク通信を再開することが行われている。
従来の冗長構成による通信技術としては、例えば、待機系サーバ計算機とクライアント端末とが協調し、予め相互に電文を保持することにより待機系サーバ計算機とクライアント端末間での状態を整合する技術が提案されている。
【０００４】
また、冗長システムの障害発生時、現用系装置アドレスとは異なるアドレスを持つ装置を有効化して現用系装置アドレスと同一のアドレスを持つ装置を無効化するメッセージを、現用系および待機系の装置に送信する技術が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−３３７７１７号公報
【特許文献２】特開２０１５−２２３８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ネットワーク通信を中継する通信装置は、現用系と待機系が配置されることによって冗長化される。現用系の通信装置は、クライアント端末からのデータを対向装置へ送信し、対向装置は、送信されたデータを受信してプロトコルを終端した後に宛先のサーバへ送信する。
【０００７】
このとき、現用系の通信装置が故障等により動作が停止すると、現用系から待機系に切り替わり、待機系から新たに現用系になった通信装置と対向装置との間で通信が再開される。
【０００８】
しかし、従来のシステムでは、系切替えが行われる前に対向装置側で未受信データがあった場合、待機系から新たに現用系になった通信装置は、対向装置がどのデータを未受信なのか認識することが困難である。未受信データの再送が行われないと通信機能が再開しても通信品質が劣化することになり耐障害性の低下につながる。
【０００９】
１つの側面では、本発明は、耐障害性の向上を図った通信装置、通信制御方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、通信装置が提供される。通信装置は、記憶部と制御部を有する。記憶部は、受信したデータを格納する。制御部は、第１の現用系として機能する場合、データを分割して分割データを生成し、分割データそれぞれにヘッダを付与してプロトコル変換を行って複数のパケットを生成し、生成したパケットを対向装置へ送信し、待機系として機能する場合、第１の現用系の動作監視を行い、第１の現用系の停止を検出した場合は、第２の現用系に切り替わったことを対向装置へ通知し、対向装置から送信された未受信検出情報にもとづいて記憶部に格納しているデータから未受信パケットに含まれる未受信分割データを抽出し、抽出した未受信分割データを対向装置へ送信する。
【００１１】
また、上記課題を解決するために、コンピュータが上記通信装置の制御を実行する通信制御方法が提供される。
さらに、上記課題を解決するために、コンピュータに上記通信装置の制御を実行させるプログラムが提供される。
【発明の効果】
【００１２】
１側面によれば、耐障害性の向上を図ることが可能になる。
【図面の簡単な説明】
【００１３】
【図１】通信装置を説明するための図である。
【図２】通信システムの構成の一例を示す図である。
【図３】通信装置のハードウェア構成の一例を示す図である。
【図４】通信装置の機能ブロックの一例を示す図である。
【図５】新規コネクション受付時の動作の一例を示す図である。
【図６】クライアント端末からの送信データを受信した場合の動作の一例を示す図である。
【図７】プロトコル変換によるヘッダ付与の一例を示す図である。
【図８】プロトコル変換の一例を時系列で示す図である。
【図９】対向装置からデータが宛先へ送信される場合の動作一例を示す図である。
【図１０】現用系の通信装置の故障が検知されたときの動作の一例を示す図である。
【図１１】待機系の通信装置が現用系に切り替わった後の動作の一例を示す図である。
【図１２】新規コネクション受付時の動作シーケンスの一例を示す図である。
【図１３】クライアント端末からの送信データの受信およびプロトコル変換の動作シーケンスの一例を示す図である。
【図１４】対向装置からデータが宛先へ送信される場合の動作シーケンスの一例を示す図である。
【図１５】現用系の通信装置の故障が検知されたときの動作シーケンスの一例を示す図である。
【発明を実施するための形態】
【００１４】
以下、本実施の形態について図面を参照して説明する。
［第１の実施の形態］
図１は通信装置を説明するための図である。通信装置１は、制御部１ａおよび記憶部１ｂを備え、例えば、クライアント／サーバのネットワーク通信の中継伝送を行う。
【００１５】
記憶部１ｂは、受信したデータを少なくとも格納する。制御部１ａは、第１の現用系として機能する場合、データを分割して分割データを生成し、分割データそれぞれにヘッダを付与してプロトコル変換を行って複数のパケットを生成し、生成したパケットを対向装置へ送信する。
【００１６】
また、制御部１ａは、対向装置として機能する場合、受信したパケットを終端して分割データを宛先へ送信し、ヘッダにもとづいて未受信パケットの検出処理を行う。制御部１ａは、未受信パケットを検出すると未受信検出情報を生成する。
【００１７】
さらに、制御部１ａは、待機系として機能する場合、第１の現用系の動作監視を行い、第１の現用系の停止を検出した場合は、待機系から第２の現用系に切り替わり、第２の現用系に切り替わったことを対向装置へ通知する。
【００１８】
そして、制御部１ａは、第２の現用系として機能する場合、対向装置から送信された未受信検出情報にもとづいて記憶部１ｂに格納しているデータから未受信パケットに含まれる未受信分割データを抽出し、抽出した未受信分割データを対向装置へ送信する。
【００１９】
図１に示す例を用いて動作について説明する。通信システムＣｓ１は、通信装置１−１、１−２、１−３、クライアント端末２およびサーバ３を備える。
クライアント端末２は、通信装置１−１、１−２に接続される。通信装置１−１、１−２は互いに接続され、通信装置１−３は、通信装置１−１、１−２に接続される。サーバ３は、通信装置１−３に接続される。
【００２０】
通信装置１−１、１−２、１−３は、通信装置１の機能を有する。この例では、通信装置１−１は第１の現用系として機能し、通信装置１−２は待機系または第２の現用系として機能し、通信装置１−３は対向装置として機能する。
【００２１】
〔ステップＳ１〕クライアント端末２は、サーバ３宛のデータを送信する。なお、クライアント端末２と、通信装置１−１、１−２との間には図示しないスイッチが配置され、例えば、スイッチのミラーリングによってクライアント端末２からの送信データは、通信装置１―２へも送信される。
【００２２】
〔ステップＳ２ａ〕通信装置１−１において、制御部１ａ１は、クライアント端末２から送信されたデータを受信して記憶部１ｂ１に格納する。
〔ステップＳ２ｂ〕通信装置１−２において、制御部１ａ２は、クライアント端末２から送信されたデータを受信して記憶部１ｂ２に格納する。
【００２３】
〔ステップＳ３〕制御部１ａ１は、受信したデータを分割して分割データを生成し、分割データそれぞれにヘッダを付与してプロトコル変換を行って複数のパケットを生成する。そして、制御部１ａ１は、生成したパケットを通信装置１−３へ送信する。
【００２４】
〔ステップＳ４〕通信装置１−３において、制御部１ａ３は、受信したパケットを記憶部１ｂ３に格納する。また、制御部１ａ３は、パケットを終端してパケットからヘッダを除去し、ヘッダ除去後の分割データをサーバ３へ送信する。
【００２５】
〔ステップＳ５〕制御部１ａ３は、受信パケットに付与されていたヘッダにもとづいて未受信パケットの検出を行い、未受信パケットを検出した場合は未受信検出情報を生成する。
【００２６】
〔ステップＳ６〕制御部１ａ２は、通信装置１−１の動作監視を行う。
〔ステップＳ７〕制御部１ａ２は、通信装置１−１の停止を検出した場合、待機系から現用系に切り替わり、系切替えを行ったことを通信装置１−３へ通知する。
【００２７】
〔ステップＳ８ａ〕制御部１ａ２は、通信装置１−３に対して未受信パケットがあるか否かの問い合わせを行う。
〔ステップＳ８ｂ〕制御部１ａ３は、未受信パケットを検出しているので、通信装置１−２に対して未受信検出情報を送信する。
【００２８】
〔ステップＳ９〕制御部１ａ２は、通信装置１−３から送信された未受信検出情報にもとづいて、記憶部１ｂ２に格納しているデータから未受信パケットに含まれる未受信分割データを抽出する。
【００２９】
〔ステップＳ１０〕制御部１ａ２は、抽出した未受信分割データを通信装置１−３へ送信する。なお、通信装置１−２から送信された未受信分割データは、通信装置１−３によってサーバ３へ送信される。
【００３０】
このように、通信装置１−１に対向する通信装置１−３では、通信装置１−１がプロトコル変換時に付与したヘッダにもとづいて未受信データを検出する。また、通信装置１−１と通信装置１−３との通信時に、通信装置１−１が停止して通信装置１−２が現用系になった場合、通信装置１−２は、通信装置１−３からの未受信データの未受信検出情報を受信する。そして、通信装置１−２は、未受信検出情報にもとづいて記憶部１ｂ２から未受信データを抽出し、通信装置１−３へ送信する。
【００３１】
このような通信制御により、現用系の通信装置が故障した場合でも、待機系から新たに現用系になった通信装置から未受信データが対向側へ送信されるので、通信品質の劣化を抑制することができ、耐障害性の向上を図ることが可能になる。
【００３２】
［第２の実施の形態］
次に第２の実施の形態について説明する。図２は通信システムの構成の一例を示す図である。通信システムＣｓ２は、通信装置１０ａ、１０ｂ、１０ｃ（総称する場合は通信装置１０と呼ぶ）、クライアント端末２１（ＣＬ１）、クライアント端末２２（ＣＬ２）、サーバ３１（ＳＶ１）、サーバ３２（ＳＶ２）、スイッチ４およびルータ５１、５２を備える。通信システムＣｓ２は、例えば、ＷＡＮ（Wide Area Network）６を介してクライアント／サーバの中継通信を行う。
【００３３】
クライアント端末２１、２２は、スイッチ４（例えば、Ｌ２（レイヤ２）スイッチ）に接続される。通信装置１０ａ、１０ｂは冗長化され、通信装置１０ａは現用系であり、スイッチ４およびルータ５１に接続される。通信装置１０ｂは待機系であり、スイッチ４およびルータ５１に接続される。また、通信装置１０ａ、１０ｂは、互いに接続される。
【００３４】
ＷＡＮ６は、ルータ５１、５２に接続され、ルータ５２は、通信装置１０ｃ（対向）に接続される。サーバ３１、３２は、通信装置１０ｃに接続される。
なお、図２では、クライアント側に位置する通信装置を２台の通信装置１０ａ、１０ｂで冗長構成としたが、サーバ側に位置する通信装置に対しても冗長構成を組むことができる。
【００３５】
＜ハードウェア＞
図３は通信装置のハードウェア構成の一例を示す図である。通信装置１０は、プロセッサ（コンピュータ）１００によって装置全体が制御されている。
【００３６】
プロセッサ１００には、バス１０３を介して、メモリ１０１および複数の周辺機器が接続されている。プロセッサ１００は、マルチプロセッサであってもよい。プロセッサ１００は、例えば、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。またプロセッサ１００は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００３７】
メモリ１０１は、通信装置１０の主記憶装置として使用される。メモリ１０１には、プロセッサ１００に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ１０１には、プロセッサ１００による処理に要する各種データが格納される。
【００３８】
また、メモリ１０１は、通信装置１０の補助記憶装置としても使用され、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。メモリ１０１は、補助記憶装置として、フラッシュメモリやＳＳＤ（Solid State Drive）等の半導体記憶装置やＨＤＤ（Hard Disk Drive）等の磁気記録媒体を含んでもよい。
【００３９】
バス１０３に接続されている周辺機器としては、入出力インタフェース１０２およびネットワークインタフェース１０４がある。入出力インタフェース１０２は、プロセッサ１００からの命令にしたがって通信装置１０の状態を表示する表示装置として機能するモニタ（例えば、ＬＥＤ（Light Emitting Diode）やＬＣＤ（Liquid Crystal Display）等）が接続されている。
【００４０】
また、入出力インタフェース１０２は、キーボードやマウス等の情報入力装置を接続可能であって、情報入力装置から送られてくる信号をプロセッサ１００に送信する。
さらにまた、入出力インタフェース１０２は、周辺機器を接続するための通信インタフェースとしても機能する。例えば、入出力インタフェース１０２は、レーザ光等を利用して、光ディスクに記録されたデータの読み取りを行う光学ドライブ装置を接続することができる。光ディスクには、Ｂｌｕ−ｒａｙＤｉｓｃ（登録商標）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（Rewritable）等がある。
【００４１】
また、入出力インタフェース１０２は、メモリ装置やメモリリーダライタを接続することができる。メモリ装置は、入出力インタフェース１０２との通信機能を搭載した記録媒体である。メモリリーダライタは、メモリカードへのデータの書き込み、またはメモリカードからのデータの読み出しを行う装置である。メモリカードは、カード型の記録媒体である。
【００４２】
ネットワークインタフェース１０４は、ネットワークの通信インタフェース制御を行い、例えば、ＮＩＣ（Network Interface Card）、無線ＬＡＮ（Local Area Network）カード等を使用することもできる。ネットワークインタフェース１０４で受信されたデータは、メモリ１０１やプロセッサ１００に出力される。
【００４３】
以上のようなハードウェア構成によって、通信装置１０の処理機能を実現することができる。例えば、通信装置１０は、プロセッサ１００がそれぞれ所定のプログラムを実行することで本発明の通信制御を行うことができる。
【００４４】
通信装置１０は、例えば、コンピュータで読み取り可能な記録媒体に記録されたプログラムを実行することにより、本発明の処理機能を実現する。通信装置１０に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。
【００４５】
例えば、通信装置１０に実行させるプログラムを補助記憶装置に格納しておくことができる。プロセッサ１００は、補助記憶装置内のプログラムの少なくとも一部を主記憶装置にロードし、プログラムを実行する。
【００４６】
また、光ディスク、メモリ装置、メモリカード等の可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えば、プロセッサ１００からの制御により、補助記憶装置にインストールされた後、実行可能となる。またプロセッサ１００が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００４７】
＜機能ブロック＞
図４は通信装置の機能ブロックの一例を示す図である。通信装置１０は、制御部１１、記憶部１２および送受信インタフェース部１３を備える。制御部１１は、プロトコル変換部１１ａ、監視部１１ｂおよび未受信検出部１１ｃを含む。記憶部１２は、送信バッファ１２ａ、受信バッファ１２ｂおよびデータ格納部１２ｃを含む。
【００４８】
送受信インタフェース部１３は、データまたはパケットの送受信のインタフェース制御を行う。プロトコル変換部１１ａは、クライアント端末から送信されたデータを分割して分割データを生成し、分割データに所定のヘッダを付与してプロトコル変換を行って新たなプロトコルのパケットを生成する。監視部１１ｂは、冗長構成で対になっている通信装置の動作監視を行う。未受信検出部１１ｃは、未受信パケットの検出を行い、未受信パケットがある場合は未受信検出情報を生成する。
【００４９】
送信バッファ１２ａは、プロトコル変換されたパケットを対向の通信装置へ送信する際に使用されるバッファである。受信バッファ１２ｂは、プロトコル変換されたパケットを受信する際に使用されるバッファである。
【００５０】
データ格納部１２ｃは、クライアント端末から送信されたデータを格納する。また、データ格納部１２ｃは、運用に関わる制御情報（例えば、コネクション確立時のコネクション情報等）の格納にも使用される。
【００５１】
なお、制御部１１は図３のプロセッサ１００によって実現され、記憶部１２は図３のメモリ１０１によって実現される。送受信インタフェース部１３は、図３のネットワークインタフェース１０４または入出力インタフェース１０２によって実現される。
【００５２】
＜新規コネクション受付時の動作＞
図５は新規コネクション受付時の動作の一例を示す図である。
〔ステップＳ２１〕クライアント端末２１は、サーバ３１への接続要求を送信して、新規コネクションの確立を要求する。
【００５３】
〔ステップＳ２２〕通信装置１０ａは、接続要求を終端し、コネクション情報（ＴＣＰ（Transmission Control Protocol）コネクション情報）ｃｎ１をデータ格納部１２ｃに格納する。
【００５４】
コネクション情報ｃｎ１は、コネクション識別子ａ１、送信元情報ａ２および宛先情報ａ３が含まれる。コネクション識別子ａ１は、コネクションを識別するためのネットワーク内で一意の識別子（この例ではＣｏｎ１）である。
【００５５】
送信元情報ａ２は、クライアント端末２１のＩＰ（Internet Protocol）アドレスおよびポート番号が対になった情報である。宛先情報ａ３は、サーバ３１のＩＰアドレスおよびポート番号が対になった情報である。
【００５６】
〔ステップＳ２３〕通信装置１０ａは、新規コネクションの確立要求があったことをコネクション情報ｃｎ１と共に通信装置１０ｃに通知する。
〔ステップＳ２４〕通信装置１０ｃは、通信装置１０ａから受け取ったコネクション情報ｃｎ１をデータ格納部１２ｃに格納する。
【００５７】
〔ステップＳ２５〕通信装置１０ｃは、コネクション情報ｃｎ１にもとづいて、サーバ３１とコネクション（ＴＣＰコネクション）を確立すると、サーバ３１とコネクションを確立したことを通信装置１０ａに通知する。
【００５８】
〔ステップＳ２６〕通信装置１０ａは、コネクション情報ｃｎ１を通信装置１０ｂに送信する。
〔ステップＳ２７〕通信装置１０ｂは、通信装置１０ａから受け取ったコネクション情報ｃｎ１をデータ格納部１２ｃに格納する。
【００５９】
なお、コネクション情報ｃｎ１は、各通信装置においてコネクションＣｏｎ１が確立している間は保持され、切断された場合にはデータ格納部１２ｃから破棄される。
＜クライアント端末から送信されたデータの受信時の動作＞
次に通信装置１０ａがコネクション確立後にクライアント端末２１、２２から送信されたデータ（またはパケット）を受信してプロトコル変換を行う場合の動作について図６から図８を用いて説明する。
【００６０】
図６はクライアント端末からの送信データを受信した場合の動作の一例を示す図である。クライアント端末２１とサーバ３１間のコネクション（コネクションＣｏｎ１）が確立し、クライアント端末２２とサーバ３１間のコネクション（コネクションＣｏｎ２）が確立しているとする。
【００６１】
〔ステップＳ３１〕クライアント端末２１は、サーバ３１宛のデータＤ０を通信装置１０ａに向けて送信する。なお、データＤ０のデータ長をＸビット（以下、“ビット”は省略）した場合、データ長がＸ２（＜Ｘ）までのデータが先に送信され、その後、データ長が（Ｘ−Ｘ２）の残りのデータが送信されるとする。
【００６２】
〔ステップＳ３２〕クライアント端末２２は、サーバ３２宛のデータＤ１０を通信装置１０ａに向けて送信する。なお、データＤ１０のデータ長をＹとした場合、データ長がＹ２（＜Ｙ）までのデータが先に送信され、その後、データ長が（Ｙ−Ｙ２）の残りのデータが送信されるとする。
【００６３】
〔ステップＳ３３〕データＤ０、Ｄ１０は、待機系の通信装置１０ｂに向けても送信される。なお、待機系の通信装置１０ｂへのデータ送信としては、例えば、クライアント端末と通信装置との間の経路に配置されているスイッチ４のミラーリングにより、スイッチ４から通信装置１０ｂへデータＤ０、Ｄ１０を送信することができる。
【００６４】
または、現用系の通信装置１０ａがデータＤ０、Ｄ１０を受信した後、待機系の通信装置１０ｂにデータＤ０、Ｄ１０を送信してもよい。
〔ステップＳ３４〕通信装置１０ａは、受信したデータＤ０、Ｄ１０のストリームをコネクション毎に自身のデータ格納部（データ格納部１２ｃ１とする）へ格納する。
【００６５】
〔ステップＳ３５〕通信装置１０ａは、受信データのデータ長が閾値以上の場合、該受信データを所定長に分割して分割データを生成する。この例では、データ長がＸ２のデータに対して、データ長＝Ｘ２は閾値以上と判定して２つに分割した例を示している。
【００６６】
すなわち、通信装置１０ａは、０からＸ１（＜Ｘ２）までのデータｄ１、Ｘ１からＸ２までのデータｄ２を生成している。なお、Ｘ２からＸまでのデータ長＝（Ｘ−Ｘ２）のデータは、データ長が閾値以内と判定して分割は行われない。図では、データ長＝（Ｘ−Ｘ２）のデータはデータｄ３としている。
【００６７】
同様に、通信装置１０ａは、データ長がＹ２のデータに対して、データ長＝Ｙ２は閾値以上と判定して２つに分割する。すなわち、通信装置１０ａは、０からＹ１（＜Ｙ２）までのデータｄ１１、Ｙ１からＹ２までのデータｄ１２を生成している。
【００６８】
なお、Ｙ２からＹまでのデータ長＝（Ｙ−Ｙ２）のデータは、データ長が閾値以内と判定して分割は行われない。図では、データ長＝（Ｙ−Ｙ２）のデータは、データｄ１３としている。以降の説明では、データｄ３およびデータｄ１３に対しても分割データと呼ぶ場合がある。
【００６９】
〔ステップＳ３６〕通信装置１０ａは、分割データｄ１、ｄ２、ｄ３、ｄ１１、ｄ１２、ｄ１３にヘッダを付与してプロトコル変換を行う。
〔ステップＳ３７〕通信装置１０ａは、プロトコル変換後のデータを送信バッファ１２ａに格納する。
【００７０】
〔ステップＳ３８〕通信装置１０ｂは、受信したデータＤ０、Ｄ１０のストリームをコネクション毎に自身のデータ格納部（データ格納部１２ｃ２とする）に格納する。なお、待機系の通信装置１０ｂではプロトコル変換の処理は行わない。
【００７１】
図７はプロトコル変換によるヘッダ付与の一例を示す図である。通信装置１０ａは、プロトコル変換によるヘッダ付与として、分割データすべてに通信プロトコルヘッダを付与し、分割データ群のうちの先頭分割データおよび単一の分割データ（単一分割データ）にはさらに制御ヘッダを付与して新たなプロトコルのパケットを生成する。なお、分割データ群とは、同一コネクション上で連続する複数の分割データのことである。
【００７２】
図７の例では、分割データｄ１、ｄ２は分割データ群に含まれ、分割データｄ１は先頭分割データになる。また、分割データｄ１１、ｄ１２は分割データ群に含まれ、分割データｄ１１は先頭分割データになる。分割データｄ３および分割データｄ１３は、非連続であり単一分割データである。
【００７３】
なお、プロトコル変換によって付与される通信プロトコルヘッダおよび制御ヘッダにおいて、通信プロトコルヘッダは少なくともシーケンス番号を含み、制御ヘッダは、少なくともコネクション識別子およびデータ長（データ長情報）を含む。
【００７４】
〔ステップＳ４１〕通信装置１０ａは、分割データｄ１に通信プロトコルヘッダＨｐ１と制御ヘッダＨｃ１を付与してパケットＰ１を生成し、パケットＰ１を送信バッファ（送信バッファ１２ａ１とする）に格納する。
【００７５】
通信プロトコルヘッダＨｐ１は、シーケンス番号（ｓｅｑ＝０）を含み、制御ヘッダＨｃ１は、コネクション識別子（Ｃｏｎ１）とデータ長（Ｌｅｎ＝Ｘ２）を含む。
〔ステップＳ４２〕通信装置１０ａは、分割データｄ２に通信プロトコルヘッダＨｐ２を付与してパケットＰ２を生成し、パケットＰ２を送信バッファ１２ａ１に格納する。通信プロトコルヘッダＨｐ２は、シーケンス番号（ｓｅｑ＝Ｘ１＋ｈ）を含む。ｈは、制御ヘッダのデータ長である。
【００７６】
〔ステップＳ４３〕通信装置１０ａは、分割データｄ１１に通信プロトコルヘッダＨｐ３と制御ヘッダＨｃ２を付与してパケットＰ３を生成し、パケットＰ３を送信バッファ１２ａ１に格納する。
【００７７】
通信プロトコルヘッダＨｐ３は、シーケンス番号（ｓｅｑ＝Ｘ２＋ｈ）を含み、制御ヘッダＨｃ２は、コネクション識別子（Ｃｏｎ２）とデータ長（Ｌｅｎ＝Ｙ２）を含む。
〔ステップＳ４４〕通信装置１０ａは、分割データｄ１２に通信プロトコルヘッダＨｐ４を付与してパケットＰ４を生成し、パケットＰ４を送信バッファ１２ａ１に格納する。通信プロトコルヘッダＨｐ４は、シーケンス番号（ｓｅｑ＝Ｘ２＋Ｙ１＋２ｈ）を含む。
【００７８】
〔ステップＳ４５〕通信装置１０ａは、分割データｄ３に通信プロトコルヘッダＨｐ５と制御ヘッダＨｃ３を付与してパケットＰ５を生成し、パケットＰ５を送信バッファ１２ａ１に格納する。
【００７９】
通信プロトコルヘッダＨｐ５は、シーケンス番号（ｓｅｑ＝Ｘ２＋Ｙ２＋２ｈ）を含み、制御ヘッダＨｃ３は、コネクション識別子（Ｃｏｎ１）とデータ長（Ｌｅｎ＝Ｘ−Ｘ２）を含む。
【００８０】
〔ステップＳ４６〕通信装置１０ａは、分割データｄ１３に通信プロトコルヘッダＨｐ６と制御ヘッダＨｃ４を付与してパケットＰ６を生成し、パケットＰ６を送信バッファ１２ａ１に格納する。
【００８１】
通信プロトコルヘッダＨｐ６は、シーケンス番号（ｓｅｑ＝Ｘ＋Ｙ２＋３ｈ）を含み、制御ヘッダＨｃ４は、コネクション識別子（Ｃｏｎ２）とデータ長（Ｌｅｎ＝Ｙ−Ｙ２）を含む。
【００８２】
なお、制御ヘッダに設定されるデータ長は、分割データ群に対しては、連続しているデータの長さが先頭分割データの制御ヘッダに設定される。例えば、パケットＰ１、Ｐ２は、分割データ群であり、パケットＰ１のデータ長＝Ｘ１、パケットＰ２のデータ長＝Ｘ２−Ｘ１である。よって、先頭分割データを有するパケットＰ１の制御ヘッダＨｃ１には、データ長としてＸ２（＝Ｘ１＋（Ｘ２−Ｘ１））が設定される。
【００８３】
また、単一分割データを有するパケットの制御ヘッダには、その単一分割データのデータ長が設定される。例えば、パケットＰ５は、単一分割データを含み、データ長＝Ｘ−Ｘ２であるので、パケットＰ５の制御ヘッダＨｃ３には、データ長としてＸ−Ｘ２が設定される。
【００８４】
一方、シーケンス番号について、パケットＰ１、Ｐ２、・・・、Ｐｎと受信する場合、パケットＰｋ（１≦ｋ≦ｎ）のシーケンス番号は、パケットＰ１、・・・、Ｐｋ−１に含まれるデータの長さの和と、パケットＰ１、・・・、Ｐｋ−１に含まれる制御ヘッダの長さの和との総和になる。
【００８５】
例えば、パケットＰ３のシーケンス番号について、すでにパケットＰ１、Ｐ２が受信されている。よって、パケットＰ１のデータ長＝Ｘ１およびパケットＰ２のデータ長＝Ｘ２−Ｘ１より、データ長の和はＸ２である。
【００８６】
また、パケットＰ１、Ｐ２には、１つの制御ヘッダＨｃ１があるので、制御ヘッダの長さの和はｈになる。したがって、パケットＰ３のシーケンス番号は、ｓｅｑ＝Ｘ２＋ｈとなる。その他のパケットのシーケンス番号も同様にして設定される。
【００８７】
図８はプロトコル変換の一例を時系列で示す図である。図７に示した分割データ生成後のヘッダ付与の流れを示している。
〔時間ｔ０−ｔ１〕通信装置１０ａは、分割データｄ１、ｄ２を含む分割データ群を受信する。分割データ群のデータ長はＸ２である。通信装置１０ａは、分割データｄ１をプロトコル変換してパケットＰ１を生成する。
【００８８】
分割データｄ１は、２つの分割データが連続した分割データ群のうちの先頭分割データであるから、通信プロトコルヘッダ（Ｈｐ１）の他に分割データ群のデータ長＝Ｘ２の情報を含む制御ヘッダ（Ｈｃ１）が付与される。
【００８９】
また、通信装置１０ａは、分割データｄ２をプロトコル変換してパケットＰ２を生成する。分割データｄ２には、通信プロトコルヘッダ（Ｈｐ２）が付与される。
〔時間ｔ１−ｔ２〕通信装置１０ａは、分割データｄ１１、ｄ１２を含む分割データ群を受信する。分割データ群のデータ長はＹ２である。通信装置１０ａは、分割データｄ１１をプロトコル変換してパケットＰ３を生成する。
【００９０】
分割データｄ１１は、２つの分割データが連続した分割データ群のうちの先頭分割データであるから、通信プロトコルヘッダ（Ｈｐ３）の他に分割データ群のデータ長＝Ｙ２の情報を含む制御ヘッダ（Ｈｃ２）が付与される。
【００９１】
また、通信装置１０ａは、分割データｄ１２をプロトコル変換してパケットＰ４を生成する。分割データｄ１２には、通信プロトコルヘッダ（Ｈｐ４）が付与される。
〔時間ｔ２−ｔ３〕通信装置１０ａは、分割データｄ３を受信する。分割データｄ３のデータ長はＸ−Ｘ２である。通信装置１０ａは、分割データｄ３をプロトコル変換してパケットＰ５を生成する。
【００９２】
分割データｄ３は、単一分割データであるから、通信プロトコルヘッダ（Ｈｐ５）の他に分割データｄ３のデータ長＝Ｘ−Ｘ２の情報を含む制御ヘッダ（Ｈｃ３）が付与される。
【００９３】
〔時間ｔ３−ｔ４〕通信装置１０ａは、分割データｄ１３を受信する。分割データｄ１３のデータ長はＹ−Ｙ２である。通信装置１０ａは、分割データｄ１３をプロトコル変換してパケットＰ６を生成する。
【００９４】
分割データｄ１３は、単一分割データであるから、通信プロトコルヘッダ（Ｈｐ６）の他に分割データｄ１３のデータ長＝Ｙ−Ｙ２の情報を含む制御ヘッダ（Ｈｃ４）が付与される。
【００９５】
＜対向装置からデータが宛先へ送信される場合の動作＞
図９は対向装置からデータが宛先へ送信される場合の動作一例を示す図である。
〔ステップＳ５１〕通信装置１０ａは、送信バッファ１２ａ１に格納したパケットを、対向する通信装置１０ｃへ送信する。この場合、通信装置１０ａは、制御ヘッダに含まれるデータ長にもとづいて、連続しているデータを持つパケットを検出して、そのパケットを送信バッファ１２ａ１から取り出して通信装置１０ｃへ送信する。
【００９６】
例えば図７から、パケットＰ１は、データ長がＸ２である制御ヘッダＨｃ１を有しており、パケットＰ１、Ｐ２で連続データが構成されることが検出される。よって、パケットＰ１、Ｐ２が送信バッファ１２ａ１内にあれば、パケットＰ１、Ｐ２が連続データとして通信装置１０ｃに送信される。
【００９７】
〔ステップＳ５２〕通信装置１０ｃは、通信装置１０ａから送信されたパケットを受信バッファ（受信バッファ１２ｂ３とする）に格納する。
〔ステップＳ５３〕通信装置１０ｃは、受信バッファ１２ｂ３からパケットを受信した順にパケットを取り出して、取り出したパケットからプロトコル変換時に付与したヘッダを削除して、分割データを宛先のサーバへ送信する。この場合、連続データ（分割データ群）があれば連続データを一括して取り出してサーバへ送信する。
【００９８】
この例では、パケットＰ１、Ｐ２が連続データとなるので、パケットＰ１、Ｐ２が受信バッファ１２ｂ３から取り出され、ヘッダ除去後の分割データｄ１、ｄ２がサーバ３１へ送信される。
【００９９】
〔ステップＳ５４〕通信装置１０ｃは、サーバへの送信を完了したパケットを受信バッファ１２ｂ３内から削除する。この例では、受信バッファ１２ｂ３内からパケットＰ１、Ｐ２が削除される。
【０１００】
〔ステップＳ５５〕通信装置１０ｃは、現用系の通信装置１０ａに向けて、連続受信済みパケット情報と、パケットロスを検知した場合のパケットロス情報とを送信する。
連続受信済みパケット情報は、通信装置１０ｃが通信装置１０ａから連続して受信したパケットのうちの最後パケットを示す情報である。この例では、パケットＰ１、Ｐ２、Ｐ３が連続受信済みなので、最後パケットＰ３に相当するシーケンス番号（ｓｅｑ＝Ｘ２＋ｈ）が連続受信済みパケット情報になる。
【０１０１】
また、パケットロス情報は、ロスしたパケットを示す情報である。この例では、パケットＰ４がロスしているので、パケットＰ４に相当するシーケンス番号（ｓｅｑ＝Ｘ２＋Ｙ１＋２ｈ）がパケットロス情報になる。
【０１０２】
〔ステップＳ５６〕通信装置１０ａは、連続受信済みパケット情報にもとづいて、送信バッファ１２ａ１に格納されているパケットを削除する。この例では、送信バッファ１２ａ１内からパケットＰ１、Ｐ２、Ｐ３が削除される。また、通信装置１０ａは、パケットロス情報にもとづいて、ロスしたパケット（この例ではパケットＰ４）の再送を行う。
【０１０３】
〔ステップＳ５７〕通信装置１０ｃは、待機系の通信装置１０ｂに向けて、コネクション上でどこまでのデータがサーバへ送信されたかを示す応答情報を送信する。この例では、コネクションＣｏｎ１上でパケットＰ１、Ｐ２の連続データを送信している。よって、通信装置１０ｃは、コネクション識別子のＣｏｎ１と、連続データの長さのＸ２とを応答情報にして通信装置１０ｂへ送信する。
【０１０４】
〔ステップＳ５８〕通信装置１０ｂは、応答情報にもとづいて、サーバへ送信済みのデータをデータ格納部１２ｃ２から削除する。この例では、コネクションＣｏｎ１を介してデータ長がＸ２までのデータがサーバ３１へ送信されたことを検出できるので、通信装置１０ｂは、データ格納部１２ｃ２からデータｄ１、ｄ２を削除する。
【０１０５】
ここで、パケットロスの検出制御について説明する。どのパケットがロスしているかはシーケンス番号および制御ヘッダから検出することができる。通信装置１０ｃの受信バッファ１２ｂ３には、データ長（Ｌｅｎ＝Ｙ２）が設定された制御ヘッダＨｃ２を有するパケットＰ３が格納されている。したがって、コネクションＣｏｎ２で伝送されるデータのうち、データ長＝Ｙ１までのデータは受信済みである。
【０１０６】
また、パケットＰ３のシーケンス番号はＸ２＋ｈなので、次に受信されるべきパケット（パケットＰ４）のシーケンス番号はＸ２＋ｈに、パケットＰ３のデータ長のＹ１と、パケットＰ３の制御ヘッダＨｃ２の長さのｈとが加算されたＸ２＋Ｙ１＋２ｈの通信プロトコルヘッダを持つパケットが受信されるはずである。
【０１０７】
しかし、通信装置１０ｃは、このシーケンス番号を持つパケットは受信しておらず、また、パケットＰ３の受信後に新たな制御ヘッダＨｃ３が付与されているパケットＰ５を受信している。したがって、パケットＰ３と連続するパケット（パケットＰ４）がロスしていることが検出される。
【０１０８】
なお、コネクションＣｏｎ１で伝送されるデータのうち、データ長＝Ｘ−Ｘ２のデータであるパケットＰ５は受信済みであり、かつコネクションＣｏｎ１に関係する制御ヘッダを含むパケットは他には存在しない。このため、コネクションＣｏｎ１のうち、通信装置１０ａが送信済みで通信装置１０ｃが未受信のパケットは存在しないと判定される。
【０１０９】
パケットロスの検出制御について、さらに説明する。パケットＰ３内の分割データｄ１１に付与された通信プロトコルヘッダＨｐ３に含まれるシーケンス番号は、Ｘ２＋ｈである。通信装置１０ｃは、このシーケンス番号に分割データｄ１１のデータ長＝Ｙ１と、分割データｄ１１に付与されている制御ヘッダＨｃ２の長さ（ｈ）とを加算して、シーケンス番号（Ｘ２＋Ｙ１＋２ｈ）を算出する。
【０１１０】
また、通信装置１０ｃは、制御ヘッダＨｃ２に含まれるデータ長の情報（Ｙ２）から、分割データｄ１１のデータ長＝Ｙ１を引いたデータ長＝Ｙ２−Ｙ１を算出する。
そして、通信装置１０ｃは、受信済みパケットに付与されているシーケンス番号のうちシーケンス番号（Ｘ２＋Ｙ１＋２ｈ）がないことを検出したとする。この場合、通信装置１０ｃは、シーケンス番号（Ｘ２＋Ｙ１＋２ｈ）が付与されており、かつデータ長＝Ｙ２−Ｙ１を持つ分割データ（分割データｄ１２）を含むパケット（パケットＰ４）を未受信パケットとして検出する。
【０１１１】
このように、通信装置１０ｃは、シーケンス番号を含む通信プロトコルヘッダと、コネクション識別子およびデータ長情報が含まれる制御ヘッダとにもとづいて、ロスしたパケットを効率よく的確に検出することが可能になる。
【０１１２】
＜現用系の通信装置の故障が検知されたときの動作＞
図１０は現用系の通信装置の故障が検知されたときの動作の一例を示す図である。
〔ステップＳ６１〕通信装置１０ｂは、通信装置１０ａの故障を検知する。なお、故障検知は、通信装置１０ａ、１０ｂの双方で行われている。また、故障検知手段としては、例えば、定期的に送信されるkeep aliveパケットにもとづいて、故障検知を行うことができる。
【０１１３】
〔ステップＳ６２〕通信装置１０ｂは、通信装置１０ａの故障を検知した場合、待機系から現用系に切り替わる。また、通信装置１０ｂは、通信装置１０ａに代わって自身が現用系に切り替わった旨を示す系切替え情報を通信装置１０ｃに送信する。なお、系切替え情報は、図２に示したルータ５１、ＷＡＮ６、ルータ５２を経由して通信装置１０ｃへ送信される。
【０１１４】
＜待機系の通信装置が現用系に切り替わった後の動作＞
図１１は待機系の通信装置が現用系に切り替わった後の動作の一例を示す図である。
〔ステップＳ７１〕現用系に切り替わった通信装置１０ｂは、通信装置１０ｃに対して、未受信分割データがあるかないかの未受信分割データの問い合わせ要求を送信する。
【０１１５】
〔ステップＳ７２〕通信装置１０ｃは、受信バッファ１２ｂ３の格納状態から未受信パケットを検出した場合、未受信検出情報７を生成し、通信装置１０ｂに対して未受信検出情報７を送信する。
【０１１６】
なお、通信装置１０ｃは、パケットＰ４が未受信である。この場合、通信装置１０ｃは、コネクション識別子＝Ｃｏｎ２、分割開始位置＝Ｙ１、データ長＝Ｙ２−Ｙ１を含む未受信検出情報７を生成して通信装置１０ｂへ送信する。
【０１１７】
〔ステップＳ７３〕通信装置１０ｂは、未受信検出情報７にもとづいて、通信装置１０ｃはデータｄ１２が未受信であることを検出する。
〔ステップＳ７４〕通信装置１０ｂは、データ格納部１２ｂ２からデータｄ１２を抽出して通信装置１０ｃに送信する。
【０１１８】
ここで、未受信検出情報７について説明する。パケットＰ３は通信装置１０ｃに受信されている。パケットＰ３の制御ヘッダＨｃ２には、コネクション識別子のＣｏｎ２およびデータ長＝Ｙ２が含まれ、データ長＝Ｙ１のデータｄ１１がパケットＰ３に含まれている。
【０１１９】
そして、パケットＰ４がロスしていることは検出されているから、これらの情報により、通信装置１０ｃは、コネクションＣｏｎ２上のデータであって、データ先頭がＹ１から始まり、データ長がＹ２−Ｙ１のデータが未受信と検出できる。
【０１２０】
このため、通信装置１０ｃは、コネクション識別子＝Ｃｏｎ２、分割開始位置＝Ｙ１、データ長＝Ｙ２−Ｙ１を含む未受信検出情報７を生成することができる。このような未受信検出情報７を通信装置１０ｂが受信することで、通信装置１０ｂは、データ格納部１２ｃ２に格納してあるデータから、未受信データを的確に検出することが可能になる。
【０１２１】
＜動作シーケンス＞
次に上述した動作について、図１２から図１５のシーケンス図を用いてさらに説明する。
【０１２２】
図１２は新規コネクション受付時の動作シーケンスの一例を示す図である。
〔ステップＳ１０１〕クライアント端末２１および通信装置１０ａ間で３ウェイハンドシェイクが行われる。すなわち、クライアント端末２１は、ＳＹＮパケット（接続要求）を通信装置１０ａに送信する。通信装置１０ａは、ＳＹＮ＋ＡＣＫパケット（接続許可）をクライアント端末２１に返信する。クライアント端末２１は、ＡＣＫパケット（接続開始）を通信装置１０ａに送信する。
【０１２３】
〔ステップＳ１０２〕通信装置１０ａは、データ格納部１２ｃ１にコネクション情報を格納する。
〔ステップＳ１０３〕通信装置１０ａは、新規のコネクション確立要求をコネクション情報と共に通信装置１０ｃに送信する。
【０１２４】
〔ステップＳ１０４〕通信装置１０ｃは、受信したコネクション情報をデータ格納部１２ｃ３に格納する。
〔ステップＳ１０５〕通信装置１０ｃおよびサーバ３１間で３ウェイハンドシェイクが行われる。すなわち、通信装置１０ｃはＳＹＮパケットをサーバ３１に送信する。サーバ３１は、ＳＹＮ＋ＡＣＫパケットを通信装置１０ｃに返信する。通信装置１０ｃは、ＡＣＫパケットをサーバ３１に送信する。
【０１２５】
〔ステップＳ１０６〕通信装置１０ｃは、新規のコネクションを確立した旨のコネクションの確立通知を通信装置１０ａに送信する。
〔ステップＳ１０７〕通信装置１０ａは、通信装置１０ｂにコネクション情報を送信する。
【０１２６】
〔ステップＳ１０８〕通信装置１０ｂは、受信したコネクション情報をデータ格納部１２ｃ２に格納する。
図１３はクライアント端末からの送信データの受信およびプロトコル変換の動作シーケンスの一例を示す図である。
【０１２７】
〔ステップＳ１１０〕クライアント端末２１を送信元とするデータ長＝Ｘ２のデータが、通信装置１０ａ、１０ｂに送信される。
〔ステップＳ１１１ａ〕通信装置１０ａは、受信データをデータ格納部１２ｃ１に格納する。
【０１２８】
〔ステップＳ１１１ｂ〕通信装置１０ｂは、受信データをデータ格納部１２ｃ２に格納する。
〔ステップＳ１１２〕通信装置１０ａは、格納したデータのプロトコル変換を行い（データ長＝Ｘ１、Ｘ２−Ｘ１に分割してヘッダ付与）、送信バッファ１２ａ１にプロトコル変換後のパケットを格納する。
【０１２９】
〔ステップＳ１１３〕通信装置１０ａは、データ（パケットＰ１、Ｐ２）を通信装置１０ｃへ送信する。
〔ステップＳ１１４〕クライアント端末２２を送信元とするデータ長＝Ｙ２のデータが、通信装置１０ａ、１０ｂに送信される。
【０１３０】
〔ステップＳ１１５ａ〕通信装置１０ａは、受信データをデータ格納部１２ｃ１に格納する。
〔ステップＳ１１５ｂ〕通信装置１０ｂは、受信データをデータ格納部１２ｃ２に格納する。
【０１３１】
〔ステップＳ１１６〕通信装置１０ａは、格納したデータのプロトコル変換を行い（データ長＝Ｙ１、Ｙ２−Ｙ１に分割してヘッダ付与）、送信バッファ１２ａ１にプロトコル変換後のパケットを格納する。
【０１３２】
〔ステップＳ１１７〕通信装置１０ａは、データ（パケットＰ３、Ｐ４）を通信装置１０ｃへ送信する。
〔ステップＳ１１８〕クライアント端末２１を送信元とするデータ長＝Ｘ−Ｘ２のデータが、通信装置１０ａ、１０ｂに送信される。
【０１３３】
〔ステップＳ１１９ａ〕通信装置１０ａは、受信データをデータ格納部１２ｃ１に格納する。
〔ステップＳ１１９ｂ〕通信装置１０ｂは、受信データをデータ格納部１２ｃ２に格納する。
【０１３４】
〔ステップＳ１２０〕通信装置１０ａは、格納したデータのプロトコル変換（ヘッダ付与）を行い、送信バッファ１２ａ１にプロトコル変換後のパケットを格納する。
〔ステップＳ１２１〕通信装置１０ａは、データ（パケットＰ５）を通信装置１０ｃへ送信する。
【０１３５】
図１４は対向装置からデータが宛先へ送信される場合の動作シーケンスの一例を示す図である。
〔ステップＳ１３０〕通信装置１０ａから通信装置１０ｃへデータが送信される。
【０１３６】
〔ステップＳ１３１〕通信装置１０ｃは、受信データを受信バッファ１２ｂ３に格納する。
〔ステップＳ１３２ａ〕通信装置１０ｃは、制御ヘッダに示されるデータ長を持つ複数のデータが連続して受信バッファ１２ｂ３に格納されている場合、プロトコル変換時に付与されたヘッダを削除して該データをサーバ３１へ送信する。
【０１３７】
〔ステップＳ１３２ｂ〕通信装置１０ｃは、受信バッファ１２ｂ３から送信済みデータを削除する。
〔ステップＳ１３３ａ〕通信装置１０ｃは、確認応答として、連続受信済みパケット情報と、パケットロスを検出した場合はパケットロス情報とを通信装置１０ａに送信する。なお、ステップＳ１３３ａ以降の動作は、前回の確認応答から一定期間経過している場合の動作になる。
【０１３８】
〔ステップＳ１３３ｂ〕通信装置１０ａは、連続受信済みパケット情報にもとづいて、通信装置１０ｃで受信が完了したパケットを送信バッファ１２ａ１から削除する。
〔ステップＳ１３３ｃ〕通信装置１０ｃは、サーバ３１へ送信したデータを示す応答情報を通信装置１０ｂへ送信する。
【０１３９】
〔ステップＳ１３３ｄ〕通信装置１０ｂは、応答情報にもとづいて、通信装置１０ｃから送信が完了したパケットをデータ格納部１２ｃ２から削除する。
図１５は現用系の通信装置の故障が検知されたときの動作シーケンスの一例を示す図である。
【０１４０】
〔ステップＳ１４０〕通信装置１０ａ、１０ｂ間でkeep aliveパケットのやりとりが行われる。
〔ステップＳ１４１〕通信装置１０ａが故障して動作が停止する。
【０１４１】
〔ステップＳ１４２〕通信装置１０ｂは、通信装置１０ａに対してkeep aliveパケットの送信を続ける。
〔ステップＳ１４３〕通信装置１０ｂは、keep aliveパケットを通信装置１０ａに所定回数送信しても返信を受信できない場合、通信装置１０ａの故障を検知し、現用系に切り替わる。
【０１４２】
〔ステップＳ１４４〕通信装置１０ｂは、自身が現用系に切り替わった旨の系切替え情報を通信装置１０ｃへ送信する。
上記で説明した本発明の通信装置１および通信装置１０の処理機能は、コンピュータによって実現することができる。この場合、通信装置１および通信装置１０が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【０１４３】
処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリ等がある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープ等がある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷ等がある。光磁気記録媒体には、ＭＯ（Magneto Optical disk）等がある。
【０１４４】
プログラムを流通させる場合、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１４５】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。
【０１４６】
また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。また、上記の処理機能の少なくとも一部を、ＤＳＰ、ＡＳＩＣ、ＰＬＤ等の電子回路で実現することもできる。
【０１４７】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【符号の説明】
【０１４８】
１、１−１、１−２、１−３  通信装置
１ａ、１ａ１、１ａ２、１ａ３  制御部
１ｂ、１ｂ１、１ｂ２、１ｂ３  記憶部
２  クライアント端末
３  サーバ
Ｃｓ１  通信システム
【図１】
2020150300.tif 000003
【図２】
2020150300.tif 000004
【図３】
2020150300.tif 000005
【図４】
2020150300.tif 000006
【図５】
2020150300.tif 000007
【図６】
2020150300.tif 000008
【図７】
2020150300.tif 000009
【図８】
2020150300.tif 000010
【図９】
2020150300.tif 000011
【図１０】
2020150300.tif 000012
【図１１】
2020150300.tif 000013
【図１２】
2020150300.tif 000014
【図１３】
2020150300.tif 000015
【図１４】
2020150300.tif 000016
【図１５】
2020150300.tif 000017