説明

TCPセッション切替装置および方法、プログラムおよび記録媒体

【課題】サーバをクラスタ構成して、稼動系と待機系と二重化し、稼動系から待機系への切り替えを円滑に行うとともに、パケットのシーケンス番号およびタイムスタンプの矛盾を解消する技術を提供する。
【解決手段】稼動系サーバと、待機系のサーバと、を具備し、スイッチを介して対向端末に接続されるTCPセッション切替装置であって、前記稼動系のサーバの制御部は、稼動系サーバのソケット部とTCP部とIP部からソケット情報を取得し、系切り替えの際には、稼動系サーバによるパケット送受信を停止し、待機系サーバに対して系切り替えの要求を示す旨の要求信号と取得したソケット情報とを前記待機系サーバへ送信し、前記待機系サーバの制御部は、前記要求信号とソケット情報を受信すると、受信したソケット情報を待機系サーバのソケット部、TCP部、IP部に設定し、待機系サーバによるパケット送受信を開始する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、稼動系−待機系の2重化構成での稼動系から待機系への系切替え時に、TCP(Transmission Control Protocol)セッションを救済する技術に関する。
【背景技術】
【0002】
ネットワークサービスを提供するシステムには極めて高い信頼性、すなわち、長期間にわたって連続して稼動し続けるという性能(これを可用性とよぶ。)が要求される。具体的に説明すると、ネットワークサービスでは24時間365日連続してサービスを提供し、典型的には年間のサービス可用性が99.999%以上であることが要求される。
【0003】
このため、従来は専用システムを用いるとともに、システムを二重化するなどして、可用性を確保してきた。しかし、専用システムはコストが高く、安価にサービスの提供ができない問題があった。
【0004】
そこで、x86アーキテクチャのハードウェアやオープンソースOSであるLinux(登録商標)など、汎用のハードウェアや汎用のOSを用いたシステムが用いられるようになってきた。
【0005】
このため、汎用のハードウェアや汎用のOSを用いたシステムで上記した可用性を確保することが課題となっている。
【0006】
そこで、Linuxを用いたシステム(以下、Linuxシステムとよぶ。)においても、サーバをクラスタ構成して、稼動系と待機系と二重化し、一方がフェイルしても、TCP状態を引き継ぎ、切替えを意識させずに待機系で運用を継続させる技術が求められている。ここで、TCPセッションとは、TCP接続を確立してから切断するまでをいい、障害が発生した場合に、代替サーバが処理やデータを引き継ぐことをフェイルオーバという。切替えを意識させずに稼動系から待機系に運用を継続させる技術をTCPセッションフェイルオーバ技術と呼ぶ。
【0007】
TCP/IP通信においては、1つのIPアドレスは複数(通常は65536個)の「ポート」から構成されている。このため、接続を行う場合は必ずIPアドレスとポート番号の組を指定する必要がある。この組をソケットという。
【0008】
したがって、稼動系から待機系にサービスを切り替える場合には、Linuxカーネルから稼動系のソケット情報を取り出し、待機系に引き継ぐ仕組みが必要となる。
【0009】
この課題を解決する技術としては、非特許文献1に示すように、TCP Connection Passing(以下、TCPCPと呼ぶ。)技術が報告されている。
【0010】
稼動系のアプリケーションがカーネルの状態をコピーし、そのコピーを待機系のアプリケーションに渡し、待機系のアプリケーションが稼動系のカーネルの状態を設定することにより、対向端末に意識させることなく、切替えを達成する。
【非特許文献1】W. Almerberger, "TCP Connection Passing", Proceedings of the Linux Symposium,p.9-22,2004
【発明の開示】
【発明が解決しようとする課題】
【0011】
TCPセッションの切替えを意識させずに待機系に継続させるためには、ソケット情報だけではなく、TCP部やIP部のバッファに蓄積されたパケットも同時に引き継がれることが必要である。しかし、バッファに蓄えられたパケットとソケット情報を取得した後にも、パケットが送信されることがある。その場合、既に送られたパケットと、切替え後にバッファから送られたパケットのシーケンス番号やタイムスタンプについて矛盾が生じる恐れがある。このような矛盾が生じた場合には正常な通信ができない。
【0012】
以上述べた、TCPCPは稼動系端末から待機系端末にソケットを引き継ぐ基本的な技術を示すとともに、シーケンス番号がTCP接続の同期を確保する重要なパラメータであることを指摘している。また、タイムスタンプが過去に飛ぶことで矛盾が生じたときは、矛盾するパケットを捨てるか、オフセットを設けることで解決できることが示唆されている。しかし、実用的な技術が確立されていないという問題があった。
【0013】
本発明は上述したような従来の技術が有する問題点に鑑みてなされたものであって、稼動系から待機系への切り替えを円滑に行うとともに、パケットのシーケンス番号およびタイムスタンプの矛盾を解消する技術を提供することを目的とする。
【課題を解決するための手段】
【0014】
本発明によるTCPセッション切替装置は、制御部と、ソケット部と、TCP部と、IP部と、サービス用と制御用の複数のIPアドレスとをそれぞれ備える現在運用されている稼動系サーバと、待機系のサーバと、を具備し、稼動系および待機系のサーバの両方がスイッチを介して対向端末に接続され、、稼動系及び待機系が同一のサービス用IPアドレスを共有し、稼動系でのみ概サービス用IPアドレスを有効化するTCPセッション切替装置であって、
前記稼動系のサーバの制御部は、稼動系サーバのソケット部とTCP部とIP部からソケット情報を取得し、系切り替えの際には、稼動系サーバによる引き継ぐべきTCPセッションのパケット送受信を停止し、サービス用の引き継ぐべきIPアドレスを停止し、待機系サーバに対して系切り替えの要求を示す旨の要求信号と取得したソケット情報とを前記待機系サーバへ送信し、
前記待機系サーバの制御部は、前記要求信号とソケット情報を受信すると、受信したソケット情報を待機系サーバのソケット部、TCP部、IP部に設定し、待機系サーバによるパケット送受信を開始し、
前記ソケット情報が、パケットの、次に送信する番号を示すシーケンス番号、送信先のコンピュータから送信元のコンピュータへ送られる信号を受け取ったシーケンス番号、次に受信するシーケンス番号をそれぞれ示す第1ないし第3のシーケンス番号を含み、
稼動系および待機系サーバの制御部は、パケットを対向端末へ送信した後に、前記対向端末より、第1及び第3のシーケンス番号の通知を受信すると、直前に送信したパケットの第1及び第3のシーケンス番号を通知されたシーケンス番号に上書きして前記対向端末へ送信することを特徴とする。
【0015】
この場合、ソケット情報が、パケットのタイムスタンプを含み、
稼動系および待機系サーバの制御部は、パケットを対向端末へ送信した後に、前記対向端末よりタイムスタンプの通知を受信すると、直前に送信したパケットのタイムスタンプを、通知されたタイムスタンプを基準として補正して前記対向端末へ送信することとしてもよい。
【0016】
本発明によるTCPセッション切替システムは、制御部と、ソケット部と、TCP部と、IP部とをそれぞれ備える現在運用されている稼動系サーバと、待機系のサーバと、を具備するTCPセッション切替装置と、前記TCPセッション切替装置の稼動系および待機系のサーバのいずれかとスイッチを介して接続される対向端末と、からなるTCPセッション切替システムであって、
前記稼動系のサーバの制御部は、稼動系サーバのソケット部とTCP部とIP部から、パケットの、次に送信する番号を示すシーケンス番号、送信先のコンピュータから送信元のコンピュータへ送られる信号を受け取ったシーケンス番号、次に受信するシーケンス番号をそれぞれ示す第1ないし第3のシーケンス番号を含むソケット情報を取得し、系切り替えの際には、稼動系サーバによるパケット送受信を停止し、待機系サーバに対して系切り替えの要求を示す旨の要求信号と取得したソケット情報とを前記待機系サーバへ送信し、
前記待機系サーバの制御部は、前記要求信号とソケット情報を受信すると、受信したソケット情報を待機系サーバのソケット部、TCP部、IP部に設定し、待機系サーバによるパケット送受信を開始し、
前記対向端末は、前記稼動系または待機系サーバより送られてきたパケットの第1及び第3のシーケンス番号を前回受信したパケットのものと比較し、過去のものであると判断した場合には、前回受信したパケットの各シーケンス番号に基づいた第1及び第3のシーケンス番号を前記稼動系または待機系サーバへ送信し、
稼動系または待機系サーバの制御部は、パケットを対向端末へ送信した後に、前記対向端末より、第1及び第3のシーケンス番号の通知を受信すると、直前に送信したパケットの第1及び第3のシーケンス番号を通知されたシーケンス番号に上書きして前記対向端末へ送信することを特徴とする。
【0017】
本発明の他の形態によるTCPセッション切替システムは、制御部と、ソケット部と、TCP部と、IP部とをそれぞれ備える現在運用されている稼動系サーバと、待機系のサーバと、を具備するTCPセッション切替装置と、前記TCPセッション切替装置の稼動系および待機系のサーバのいずれかとスイッチを介して接続される対向端末と、からなるTCPセッション切替システムであって、
前記稼動系のサーバの制御部は、稼動系サーバのソケット部とTCP部とIP部から、パケットの、タイムスタンプを含むソケット情報を取得し、系切り替えの際には、稼動系サーバによるパケット送受信を停止し、待機系サーバに対して系切り替えの要求を示す旨の要求信号と取得したソケット情報とを前記待機系サーバへ送信し、
前記待機系サーバの制御部は、前記要求信号とソケット情報を受信すると、受信したソケット情報を待機系サーバのソケット部、TCP部、IP部に設定し、待機系サーバによるパケット送受信を開始し、
前記対向端末は、前記稼動系または待機系サーバより送られてきたパケットのタイムスタンプを前回受信したパケットのものと比較し、過去のものであると判断した場合には、前回受信したパケットのタイムスタンプを前記稼動系または待機系サーバへ送信し、
稼動系または待機系サーバの制御部は、パケットを対向端末へ送信した後に、前記対向端末よりタイムスタンプの通知を受信すると、直前に送信したパケットのタイムスタンプを、通知されたタイムスタンプを基準として補正して前記対向端末へ送信することを特徴とする。
【0018】
本発明による対向端末は、制御部と、ソケット部と、TCP部と、IP部とをそれぞれ備える現在運用されている稼動系サーバと、待機系のサーバと、を具備するTCPセッション切替装置と、前記TCPセッション切替装置の稼動系および待機系のサーバのいずれかとスイッチを介して接続されてTCPセッション切替システムを構成する対向端末であって、
前記稼動系または待機系サーバより送られてきたパケットの第1及び第3のシーケンス番号を前回受信したパケットのものと比較し、過去のものであると判断した場合には、前回受信したパケットの各シーケンス番号に基づいた第1及び第3のシーケンス番号を前記稼動系または待機系サーバへ送信することを特徴とする。
【0019】
本発明の他の形態による対向端末は、制御部と、ソケット部と、TCP部と、IP部とをそれぞれ備える現在運用されている稼動系サーバと、待機系のサーバと、を具備するTCPセッション切替装置と、前記TCPセッション切替装置の稼動系および待機系のサーバのいずれかとスイッチを介して接続されてTCPセッション切替システムを構成する対向端末であって、
前記稼動系または待機系サーバより送られてきたパケットのタイムスタンプを前回受信したパケットのものと比較し、過去のものであると判断した場合には、前回受信したパケットのタイムスタンプを前記稼動系または待機系サーバへ送信することを特徴とする。
【0020】
本発明によるプログラムは、上記のTCPセッション切替装置や対向端末をコンピュータシステムに実現させる。
【0021】
本発明による記録媒体は上記のプログラムを格納する。
【発明の効果】
【0022】
上記のように構成される本発明においては、稼動系のサーバから待機系のサーバヘの切り替えを行う際に、稼動系サーバによるパケット送受信を停止し、ソケット情報を稼動系サーバから待機系サーバへのコピーが終了した後に待機系サーバによるパケット送受信が開始されるため、稼動系のサーバから待機系のサーバへの切り替えを円滑に行うことができる。
【0023】
また、ソケット情報に加え、シーケンス番号やタイムスタンプの補正が行われるように構成したものにおいては、シーケンス番号およびタイムスタンプに矛盾がないため、系切替えを意識させないで稼動系から待機系に切り替えることができる効果がある。
【発明を実施するための最良の形態】
【0024】
次に、本発明の実施例について図面を参照して説明する。
【0025】
図1は本発明による二重化システムの構成を示すブロック図である。稼動系サーバ101と待機系サーバ201が二重化されている。対向端末301は、サーバ101またはサーバ201にスイッチ302を介して接続され、サーバ101またはサーバ201とパケットの送受信する端末である。
【0026】
稼動系サーバ101と待機系サーバ201はLinuxシステムである。
【0027】
カーネル102/202には、TCP/IP通信のためのソケット部103/203、TCP部104/204、IP部105/205を含む。TCP部104/204、IP部105/205は送信バッファおよび受信バッファを備え、送信パケット、受信パケットを保持する。
【0028】
なお、稼動系サーバ101、待機系サーバ201、および、対向端末301のいずれも、キーボード、マウス、受信装置等の入力装置、CPUなどの制御装置、ROM、RAM、HDDなどからなり、送受信パケットの記憶などを行う記憶装置、ディスプレイ、プリンタ、送信装置などの出力装置からなる一般的なコンピュータシステムにより構成されるものである。各制御装置は、ROM、RAM、HDDに格納されているプログラムに応じた処理を行うものであり、稼動系サーバ101と待機系サーバ201内の上述したカーネル102/202およびこれらの内部に構成されるソケット部103/203、TCP部104/204、IP部105/205は、コンピュータシステム内に仮想的に構築されるものである。
【0029】
また、ROM、RAM、HDD内に格納されるプログラムは、CD-ROM、DVD-ROM、フロッピーディスク、USBメモリなどの読み取り可能な記録媒体からこれらの入力装置を介して移入される形態やインターネットなどのネットワークを介して受信装置より移入される形態がある。本発明によるシステムはこれらのプログラムにより一般的なコンピュータシステム上に構築されるものであり、本発明にはこれらのプログラムや該プログラムを格納した記録媒体が含まれる。
【0030】
図2は、稼動系から待機系に切替える時のフローチャートである。
【0031】
待機系のサーバ201は、制御部206のソケット停止機能によりパケットの送受信は停止されており、パケットフィルタリングがかけられている。
【0032】
上記のソケット停止機能とは、パケット送受信を停止する機能であり、制御部106,206からソケット停止要求を受けた場合に動作する。
【0033】
パケットフィルタリングは、IP部のパケットの送信を停止する機能である。待機系サーバ201でソケット情報設定機能によるソケット情報設定中に、未設定のソケットに対するパケットを受信すると、TCPセッションが切断される。そこで、パケットフィルタリングにより、待機系サーバ201のソケット情報設定処理が完了するまで、IP部105のパケットの送信を停止する。
【0034】
ステップS401では、フェイルオーバの場合を考慮して、稼動系サーバ101の制御部106が、任意のタイミングで、ソケット部103、TCP部104、IP部105から、ソケット情報を取得する(図1の(1))。
【0035】
ソケット情報取得機能は、TCPセッションの救済に必要なカーネル102/202内のソケット情報を制御部106/206へ渡す機能であり、制御部106/206からソケット情報取得要求を受けた場合に動作する。
【0036】
ステップS402では、稼動系サーバ101の制御部106が系切替えのトリガを発生する(図1の(2))。
【0037】
ステップS403では、稼動系サーバ101の制御部106とカーネル102の状態の不一致がないようにするため、また、対向端末301との状態不一致が起こらないようにするため、稼動系サーバ101の制御部106のソケット停止機能を用いて、TCP部104でのパケットの送受信を停止させる(図1の(3))。
【0038】
ステップS404では、カーネル102はTCPセッションを復旧するために必要な情報と、送信バッファ、受信バッファの内容をソケット情報へコピーする。
【0039】
ステップS405では、稼動系サーバ101の制御部106は、ソケット情報取得機能を用いて、ソケット情報をカーネル102から取得する(図1の(4))。
【0040】
ステップS406では、稼動系サーバ101の制御部106は、IPアドレス切替えのため、パケットを送受信しないようにパケットフィルタリングを行った後、IPアドレスを削除する(図1(5))。
【0041】
ステップS407では、稼動系サーバ101の制御部106は、ソケット情報を待機系サーバ201の制御部206に送信する。さらに、待機系サーバ201の制御部206に系切替え要求を送信する(図1(6))。
【0042】
ステップS408では、待機系サーバ201の制御部206はIP部205にIPアドレスを設定する(図1の(7))。
【0043】
ステップS409では、待機系サーバ201の制御部206のソケット情報設定機能により、ソケット情報をカーネル202に設定する(図1の(8))。
【0044】
ソケット情報設定機能とは、TCP部104/204に対し、指定されたソケット情報を設定する機能である。
【0045】
ステップS410では、待機系サーバ201の制御部206は、ソケット開始機能を用いて、パケット送受信を開始する(図1の(9))。送信バッファに送信すべきパケットがある場合は送信する。ここで、待機系サーバ201のシーケンス番号とタイムスタンプが対向端末とずれている可能性があるため、補正処理を行う。
【0046】
ソケット開始機能とは、パケット送受信を再開する機能であり、制御部206よりソケット開始要求を受けた場合に動作する。
【0047】
ステップS411では、待機系サーバ201の制御部206は、パケットフィルタリングを解除する。事実上、ここで対向端末301との通信が再開される(図1の(10))。
【0048】
ステップS412では、待機系サーバ201の通信再開が確認された時点で、稼動系の制御部106は、ソケット削除機能を用いてソケットをクローズする(図1の(11))。
【0049】
ソケット削除機能とは、不要になった稼動系サーバ101のソケットを削除する機能であり、制御部106よりソケット削除要求を受けた場合に動作する。
【0050】
以上により、ソケット情報は稼動系サーバ101から待機系サーバ201にそのまま引き継がれるため、対向端末3−1は、切替えを意識することがない効果がある。
【0051】
上記では、稼動系サーバ101の制御部106が切替えのトリガを出すとしたが、フェイルオーバの場合は、稼動系サーバ101の制御部106による異常の検出、スイッチオーバ(マスタの役割をスレーブに移動する)の場合は、管理者から制御部106への切替え通知によって稼動系サーバ101の制御部106がトリガを出すとしてもよい。
【0052】
図3は切替えの処理を実行中にエラーが発生し、切戻すことが必要になった時の構成および動作を示す図であり、図4はその動作を詳細に示すフローチャートである。図3に示す構成は図1と基本的に同じである。
【0053】
ステップS413では、待機系サーバ201の制御部206はIPアドレスを削除する。パケットフィルタリングは設定されたままとしておく(図3の(12))。
【0054】
ステップS414では、待機系サーバ201の制御部206は、稼動系サーバ101へ再度系切替え要求を送信する(図3の(13))。
【0055】
ステップS415では、稼動系サーバ101の制御部106は、IPアドレスを設定する(図3の(14))。
【0056】
ステップS416では、稼動系サーバ101の制御部106は、ソケット開始機能によりパケット送受信を開始する(図3の(15))。
【0057】
ステップS417では、稼動系サーバ101の制御部106は、パケットフィルタリングを解除する(図3の(16))。
【0058】
ステップS418では、対向端末301との通信を再開する。
【0059】
このように、本実施例においては、切替えの処理において、エラーが発生しても、直ちに切戻すことができ、対向端末301は、切替えを意識することがないという効果がある。
【0060】
次に、シーケンス番号、タイムスタンプの補正処理について説明する。
【0061】
シーケンス番号とは、各パケットにユニークに設定され、セッション確立中は送信ごとにこの値を更新する。毎回送信したバイト数をシーケンス番号に足しこむことで、データストリームのどこまでを送受信したかを一意に判断することができる。
【0062】
タイムスタンプは、パケットの中で古いパケットがあるかどうかを見つけるために使用される。タイムスタンプが時間的に前に戻っているように見える場合、対向端末301はそのパケットを破棄する。
【0063】
稼動系サーバ101でソケット情報を取得した後でも、稼動系サーバ101と対向端末301は通信を行う可能性がある。すると、既に対向端末に送信されたパケットより、系切替え後に送信されたパケットがシーケンス番号、タイムスタンプが前である可能性がある。シーケンス番号、タイムスタンプに矛盾があると、正常な送受信ができない。そこで、切替え直後に限り、シーケンス番号とタイムスタンプを補正する。
【0064】
図5は、シーケンス番号の補正の動作を示すタイムチャートである。
【0065】
パケット送受信が行われ、稼動系サーバ101においてソケット情報が取得されたとする(時点501)。その時、ソケット情報として、稼動系サーバ101が次に送信するシーケンス番号がseq1であり、ACK(送信先のコンピュータから送信元のコンピュータへ送られる肯定的な信号)を受け取ったシーケンス番号がseq2であり、次に受信する確認応答番号(ackseq)がseq103であったとする。
【0066】
しかし、ソケット情報取得後も、系の切替えが行われるまでに、稼動系サーバ101と対向端末301との間でパケットの送受信が行われ、対向端末301では、次に送信するシーケンス番号がseq104、ACKを受け取ったシーケンス番号がseq105、確認応答番号がseq6になっていたとする(時点502)。
【0067】
この後、稼動系サーバ101から待機系サーバ201への系に切替えられると、待機系サーバ201にてソケット情報が設定され(時点503)、ソケット開始機能によりパケット送受信が開始される(時点504)。
【0068】
待機系サーバ201から対向端末301に送信されるパケットのシーケンス番号は、初期状態であるseq1、確認応答番号(ackseq)はseq3となる。対向端末301は、これらのシーケンス番号が、次に送信するシーケンス番号および確認応答番号のseq104およびseq6と異なるものであることから過去と判断する(時点505)。
【0069】
そこで、対向端末301からD−SACK信号(RFC 2833 - An Extension to the Selective Acknowledgment (SACK) Option for TCPで定義される)が送信され、次に送信するシーケンス番号はseq104であり、次に受信を期待するシーケンス番号がseq6であることを待機系サーバ201に通知する。これに基づき、待機系サーバ201が次に送信するシーケンス番号をseq6、ACKを受け取ったシーケンス番号をseq6、次に受信する確認応答番号(ackseq)をseq104と上書きにより補正(時点506)することにより、シーケンス番号の矛盾を解消することができる。
【0070】
図6は、タイムスタンプの補正についてのタイムチャートの図である。
【0071】
稼動系サーバ101が対向端末301よりソケット情報を取得した時点501をtsA1とする。その後も、稼動系サーバ101と対向端末301との間でパケットの送受信が行われ、tsA1の後のtsA2の時点502まで、稼動系サーバ101はパケットを受け取っていたとする。
【0072】
その後、稼動系サーバ101から待機系サーバ201への切替えられる。この後、時点503にてソケット情報が設定され、時点504にてソケットが開始されてパケットの送信が行われるが、このときに送られるパケットのタイムスタンプはtsA1となる。このタイムスタンtsA1は、tsA2より古いため、対向端末301はそのパケットを廃棄する(時点505)。
【0073】
その後、対向端末301は受信に成功した最新のパケットのタイムスタンプtsA2を、待機系サーバ201に送信し、待機系サーバ201はその時刻をベースに時間を計測し、パケットの時刻を補正する(時点506)。
【0074】
これにより、タイムスタンプの矛盾を解消することができ、稼動系サーバ101から待機系サーバ201への切替えにより、パケットが廃棄されることを防ぐ効果がある。
【産業上の利用可能性】
【0075】
本発明は高い可用性が要求されるネットワークサービスを提供するシステムにおいて利用することができる。
【図面の簡単な説明】
【0076】
【図1】本発明にかかる二重化システムの構成を示す図である。
【図2】稼動系から待機系に切替える時のフローチャートである。
【図3】切戻すことが必要になった時の構成を示す図である。
【図4】待機系から稼動系に切戻す時のフローチャートである。
【図5】シーケンス番号の補正のタイムチャートの図である。
【図6】タイムスタンプの補正についてのタイムチャートである。
【符号の説明】
【0077】
101 稼動系サーバ
201 待機系サーバ
102、202 カーネル
103、203 ソケット部
104、204 TCP部
105、205 IP部
106、206 制御部
301 対向端末
302 スイッチ
501〜506 タイミング
S401〜S412 稼動系から待機系に切替える時のステップ
S413〜S418 待機系から稼動系に切戻す時のステップ

【特許請求の範囲】
【請求項1】
制御部と、ソケット部と、TCP部と、IP部と、サービス用と制御用の複数のIPアドレスとをそれぞれ備える現在運用されている稼動系サーバと、待機系のサーバと、を具備し、稼動系および待機系のサーバの両方がスイッチを介して対向端末に接続され、、稼動系及び待機系が同一のサービス用IPアドレスを共有し、稼動系でのみ概サービス用IPアドレスを有効化するTCPセッション切替装置であって、
前記稼動系のサーバの制御部は、稼動系サーバのソケット部とTCP部とIP部からソケット情報を取得し、系切り替えの際には、稼動系サーバによる引き継ぐべきTCPセッションのパケット送受信を停止し、サービス用の引き継ぐべきIPアドレスを停止し、待機系サーバに対して系切り替えの要求を示す旨の要求信号と取得したソケット情報とを前記待機系サーバへ送信し、
前記待機系サーバの制御部は、前記要求信号とソケット情報を受信すると、受信したソケット情報を待機系サーバのソケット部、TCP部、IP部に設定し、待機系サーバによるパケット送受信を開始し、
前記ソケット情報が、パケットの、次に送信する番号を示すシーケンス番号、送信先のコンピュータから送信元のコンピュータへ送られる信号を受け取ったシーケンス番号、次に受信するシーケンス番号をそれぞれ示す第1ないし第3のシーケンス番号を含み、
稼動系および待機系サーバの制御部は、パケットを対向端末へ送信した後に、前記対向端末より、第1及び第3のシーケンス番号の通知を受信すると、直前に送信したパケットの第1及び第3のシーケンス番号を通知されたシーケンス番号に上書きして前記対向端末へ送信することを特徴とするTCPセッション切替装置。
【請求項2】
請求項1記載のTCPセッション切替装置において、
ソケット情報が、パケットのタイムスタンプを含み、
稼動系および待機系サーバの制御部は、パケットを対向端末へ送信した後に、前記対向端末よりタイムスタンプの通知を受信すると、直前に送信したパケットのタイムスタンプを、通知されたタイムスタンプを基準として補正して前記対向端末へ送信することを特徴とするTCPセッション切替装置。
【請求項3】
制御部と、ソケット部と、TCP部と、IP部とをそれぞれ備える現在運用されている稼動系サーバと、待機系のサーバと、を具備するTCPセッション切替装置と、前記TCPセッション切替装置の稼動系および待機系のサーバのいずれかとスイッチを介して接続される対向端末と、からなるTCPセッション切替システムであって、
前記稼動系のサーバの制御部は、稼動系サーバのソケット部とTCP部とIP部から、パケットの、次に送信する番号を示すシーケンス番号、送信先のコンピュータから送信元のコンピュータへ送られる信号を受け取ったシーケンス番号、次に受信するシーケンス番号をそれぞれ示す第1ないし第3のシーケンス番号を含むソケット情報を取得し、系切り替えの際には、稼動系サーバによるパケット送受信を停止し、待機系サーバに対して系切り替えの要求を示す旨の要求信号と取得したソケット情報とを前記待機系サーバへ送信し、
前記待機系サーバの制御部は、前記要求信号とソケット情報を受信すると、受信したソケット情報を待機系サーバのソケット部、TCP部、IP部に設定し、待機系サーバによるパケット送受信を開始し、
前記対向端末は、前記稼動系または待機系サーバより送られてきたパケットの第1及び第3のシーケンス番号を前回受信したパケットのものと比較し、過去のものであると判断した場合には、前回受信したパケットの各シーケンス番号に基づいた第1及び第3のシーケンス番号を前記稼動系または待機系サーバへ送信し、
稼動系または待機系サーバの制御部は、パケットを対向端末へ送信した後に、前記対向端末より、第1及び第3のシーケンス番号の通知を受信すると、直前に送信したパケットの第1及び第3のシーケンス番号を通知されたシーケンス番号に上書きして前記対向端末へ送信することを特徴とするTCPセッション切替システム。
【請求項4】
制御部と、ソケット部と、TCP部と、IP部とをそれぞれ備える現在運用されている稼動系サーバと、待機系のサーバと、を具備するTCPセッション切替装置と、前記TCPセッション切替装置の稼動系および待機系のサーバのいずれかとスイッチを介して接続される対向端末と、からなるTCPセッション切替システムであって、
前記稼動系のサーバの制御部は、稼動系サーバのソケット部とTCP部とIP部から、パケットの、タイムスタンプを含むソケット情報を取得し、系切り替えの際には、稼動系サーバによるパケット送受信を停止し、待機系サーバに対して系切り替えの要求を示す旨の要求信号と取得したソケット情報とを前記待機系サーバへ送信し、
前記待機系サーバの制御部は、前記要求信号とソケット情報を受信すると、受信したソケット情報を待機系サーバのソケット部、TCP部、IP部に設定し、待機系サーバによるパケット送受信を開始し、
前記対向端末は、前記稼動系または待機系サーバより送られてきたパケットのタイムスタンプを前回受信したパケットのものと比較し、過去のものであると判断した場合には、前回受信したパケットのタイムスタンプを前記稼動系または待機系サーバへ送信し、
稼動系または待機系サーバの制御部は、パケットを対向端末へ送信した後に、前記対向端末よりタイムスタンプの通知を受信すると、直前に送信したパケットのタイムスタンプを、通知されたタイムスタンプを基準として補正して前記対向端末へ送信することを特徴とするTCPセッション切替システム。
【請求項5】
制御部と、ソケット部と、TCP部と、IP部とをそれぞれ備える現在運用されている稼動系サーバと、待機系のサーバと、を具備するTCPセッション切替装置と、前記TCPセッション切替装置の稼動系および待機系のサーバのいずれかとスイッチを介して接続されてTCPセッション切替システムを構成する対向端末であって、
前記稼動系または待機系サーバより送られてきたパケットの第1及び第3のシーケンス番号を前回受信したパケットのものと比較し、過去のものであると判断した場合には、前回受信したパケットの各シーケンス番号に基づいた第1及び第3のシーケンス番号を前記稼動系または待機系サーバへ送信することを特徴とする対向端末。
【請求項6】
制御部と、ソケット部と、TCP部と、IP部とをそれぞれ備える現在運用されている稼動系サーバと、待機系のサーバと、を具備するTCPセッション切替装置と、前記TCPセッション切替装置の稼動系および待機系のサーバのいずれかとスイッチを介して接続されてTCPセッション切替システムを構成する対向端末であって、
前記稼動系または待機系サーバより送られてきたパケットのタイムスタンプを前回受信したパケットのものと比較し、過去のものであると判断した場合には、前回受信したパケットのタイムスタンプを前記稼動系または待機系サーバへ送信することを特徴とする対向端末。
【請求項7】
制御部と、ソケット部と、TCP部と、IP部とをそれぞれ備える現在運用されている稼動系サーバと、待機系のサーバと、を具備し、稼動系および待機系のサーバのいずれかがスイッチを介して対向端末に接続されるTCPセッション切替装置で行われる切り替え方法であって、
前記稼動系のサーバの制御部が、稼動系サーバのソケット部とTCP部とIP部からソケット情報を取得し、系切り替えの際には、稼動系サーバによるパケット送受信を停止し、待機系サーバに対して系切り替えの要求を示す旨の要求信号と取得したソケット情報とを前記待機系サーバへ送信するステップと、
前記待機系サーバの制御部が、前記要求信号とソケット情報を受信すると、受信したソケット情報を待機系サーバのソケット部、TCP部、IP部に設定し、待機系サーバによるパケット送受信を開始するステップと、を有し、
ソケット情報が、パケットの、次に送信する番号を示すシーケンス番号、送信先のコンピュータから送信元のコンピュータへ送られる信号を受け取ったシーケンス番号、次に受信するシーケンス番号をそれぞれ示す第1ないし第3のシーケンス番号を含み、
稼動系および待機系サーバの制御部が、パケットを対向端末へ送信した後に、前記対向端末より、第1及び第3のシーケンス番号の通知を受信すると、直前に送信したパケットの第1及び第3のシーケンス番号を通知されたシーケンス番号に上書きして前記対向端末へ送信するステップを行うことを特徴とするTCPセッション切替方法。
【請求項8】
請求項7に記載のTCPセッション切替方法において、
ソケット情報が、パケットのタイムスタンプを含み、
稼動系および待機系サーバの制御部が、パケットを対向端末へ送信した後に、前記対向端末よりタイムスタンプの通知を受信すると、直前に送信したパケットのタイムスタンプを、通知されたタイムスタンプを基準として補正して前記対向端末へ送信するステップを行うことを特徴とするTCPセッション切替方法。
【請求項9】
制御部と、ソケット部と、TCP部と、IP部とをそれぞれ備える現在運用されている稼動系サーバと、待機系のサーバと、を具備するTCPセッション切替装置と、前記TCPセッション切替装置の稼動系および待機系のサーバのいずれかとスイッチを介して接続される対向端末と、からなるTCPセッション切替システムで行われる切り替え方法であって、
前記稼動系のサーバの制御部が、稼動系サーバのソケット部とTCP部とIP部から、パケットの、次に送信する番号を示すシーケンス番号、送信先のコンピュータから送信元のコンピュータへ送られる信号を受け取ったシーケンス番号、次に受信するシーケンス番号をそれぞれ示す第1ないし第3のシーケンス番号を含むソケット情報を取得し、系切り替えの際には、稼動系サーバによるパケット送受信を停止し、待機系サーバに対して系切り替えの要求を示す旨の要求信号と取得したソケット情報とを前記待機系サーバへ送信するステップと、
前記待機系サーバの制御部が、前記要求信号とソケット情報を受信すると、受信したソケット情報を待機系サーバのソケット部、TCP部、IP部に設定し、待機系サーバによるパケット送受信を開始するステップと、
前記対向端末が、前記稼動系または待機系サーバより送られてきたパケットの第1及び第3のシーケンス番号を前回受信したパケットのものと比較し、過去のものであると判断した場合には、前回受信したパケットの各シーケンス番号に基づいた第1及び第3のシーケンス番号を前記稼動系または待機系サーバへ送信するステップと、
稼動系または待機系サーバの制御部が、パケットを対向端末へ送信した後に、前記対向端末より、第1及び第3のシーケンス番号の通知を受信すると、直前に送信したパケットの第1及び第3のシーケンス番号を通知されたシーケンス番号に上書きして前記対向端末へ送信するステップと、を有することを特徴とするTCPセッション切替方法。
【請求項10】
制御部と、ソケット部と、TCP部と、IP部とをそれぞれ備える現在運用されている稼動系サーバと、待機系のサーバと、を具備するTCPセッション切替装置と、前記TCPセッション切替装置の稼動系および待機系のサーバのいずれかとスイッチを介して接続される対向端末と、からなるTCPセッション切替システムで行われる切り替え方法であって、
前記稼動系のサーバの制御部が、稼動系サーバのソケット部とTCP部とIP部から、パケットの、タイムスタンプを含むソケット情報を取得し、系切り替えの際には、稼動系サーバによるパケット送受信を停止し、待機系サーバに対して系切り替えの要求を示す旨の要求信号と取得したソケット情報とを前記待機系サーバへ送信するステップと、
前記待機系サーバの制御部が、前記要求信号とソケット情報を受信すると、受信したソケット情報を待機系サーバのソケット部、TCP部、IP部に設定し、待機系サーバによるパケット送受信を開始するステップと、
前記対向端末が、前記稼動系または待機系サーバより送られてきたパケットのタイムスタンプを前回受信したパケットのものと比較し、過去のものであると判断した場合には、前回受信したパケットのタイムスタンプを前記稼動系または待機系サーバへ送信するステップと、
稼動系または待機系サーバの制御部が、パケットを対向端末へ送信した後に、前記対向端末よりタイムスタンプの通知を受信すると、直前に送信したパケットのタイムスタンプを、通知されたタイムスタンプを基準として補正して前記対向端末へ送信するステップと、を有することを特徴とするTCPセッション切替方法。
【請求項11】
制御部と、ソケット部と、TCP部と、IP部とをそれぞれ備える現在運用されている稼動系サーバと、待機系のサーバと、を具備するTCPセッション切替装置と、前記TCPセッション切替装置の稼動系および待機系のサーバのいずれかとスイッチを介して接続されてTCPセッション切替システムを構成する対向端末で行われるTCPセッション切替方法であって、
前記稼動系または待機系サーバより送られてきたパケットの第1及び第3のシーケンス番号を前回受信したパケットのものと比較し、過去のものであると判断した場合には、前回受信したパケットの各シーケンス番号に基づいた第1及び第3のシーケンス番号を前記稼動系または待機系サーバへ送信することを特徴とするTCPセッション切替方法。
【請求項12】
制御部と、ソケット部と、TCP部と、IP部とをそれぞれ備える現在運用されている稼動系サーバと、待機系のサーバと、を具備するTCPセッション切替装置と、前記TCPセッション切替装置の稼動系および待機系のサーバのいずれかとスイッチを介して接続されてTCPセッション切替システムを構成する対向端末で行われるTCPセッション切替方法あって、
前記稼動系または待機系サーバより送られてきたパケットのタイムスタンプを前回受信したパケットのものと比較し、過去のものであると判断した場合には、前回受信したパケットのタイムスタンプを前記稼動系または待機系サーバへ送信することを特徴とするTCPセッション切替方法。
【請求項13】
請求項1または請求項2に記載の装置をコンピュータシステムに実現させるプログラム。
【請求項14】
請求項5または請求項6に記載の装置をコンピュータシステムに実現させるプログラム。
【請求項15】
請求項13または請求項14に記載のプログラムを格納した記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate