説明

通信ノード装置、システム、及び方法

【課題】 現用系で障害が発生し、系切替を行う際に、再送タイムアウトの発生を防止し、中断時間を短縮する。
【解決手段】 応答確認型のプロトコルで通信するノード装置は、二重系として動作する、スイッチ処理部110−1、2と、受信したデータパケットに対し応答パケットを送信し、データパケットを整列処理して宛先に送信する情報処理部200−1、2を備える。現用系の情報処理部200−1と予備系の情報処理部200−2が、スイッチ処理部110−1から転送されるパケットのコピーを受信し、予備系の情報処理部はパケットの出力を停止する(S504)。現用系の情報処理部に障害発生したことを検出した際(S560)、予備系の情報処理部のパケットの出力の停止を解除することで系切替を行い(S563)、通信を継続する。更に、予備系の情報処理部は、系切替時に、無条件に応答パケットを送信する(S503)。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信装置およびシステムに関し、特に、装置を冗長化して情報処理、通信処理を継続する技術に関する。
【背景技術】
【0002】
Webページ閲覧などのアプリケーションでは、クライアントがリクエストパケットを送信し、サーバが応答パケットとデータパケットを送り返す、というパケットのやり取りを行う。クライアントはリクエストパケットを送信した後、最大で数百ミリ秒から数秒の間、応答パケットを受信するのを待ち、応答パケットを受信するまで次のリクエストパケットを送信しない。待機の間に応答パケットを受信できなかった場合、クライアントはリクエストパケットを再送する。これを再送タイムアウトと呼ぶ。再送タイムアウトは、TCP(Transmission Control Protocol)のような応答確認型の通信プロトコル上で発生する。
【0003】
本技術分野に関する情報通信処理冗長化システムの背景技術として種々の技術が存在するが、例えば、特許文献1には、その課題として、待機系のサーバ計算機とクライアント端末とが各々独自に障害復旧するのでなく、サーバ計算機とクライアント端末とが協調し、予め相互に電文を保持することによりサーバ計算機とクライアント端末間での状態不整合を解消し、業務継続できるオンライントランザクション処理の障害時復旧同期システムに関する技術を提供する点にある、と記載されている。
【0004】
そして、その解決手段として、「本実施の形態1に係るオンライントランザクション処理の障害時復旧同期システムは、ネットワーク通信路に接続された稼動系サーバ計算機と、待機系サーバ計算機と、クライアント端末と、稼動系サーバ計算機及び待機系サーバ計算機から入出力可能な外部記憶装置とで概略構成される」、と記載されている。
【0005】
また非特許文献1には、その課題として、障害発生時に瞬断とみなされない100ms未満程度以内に、バックアップとなる他の装置に処理位置を切替え、サービス継続を実現する技術である。仕掛中のサービスでも継続できるようにするため、現用系と予備系装置の情報処理部では、同一の対象に対し二重にサービスを実施する、と記載されている。
【0006】
また、その解決手段として、「通信処理部と情報処理部の間に高信頼切替部を備える。この高信頼切替部に、以下の5機能を備えることで、障害発生時の仕掛中の情報通信処理サービスの継続を実現する。1)選択的パケットコピー機能:指定条件に合致するパケットを、現用系と予備系情報処理部へコピー転送。情報処理部は、プロキシ的な動作を行うか、特定のIP(Internet Protocol)アドレスを自宛として受信可能にする。本機能により、系切替の前後で通常のサーバ切替時のような、IPアドレスなどの各種のネットワーク再設定を不要にする。2)応答確認型通信プロトコル機能:サーバやクライアントとの間でTCPに代表されるパケット送達を保証する応答確認型の通信を実施。3)選択的入力停止機能:高優先指定パケットは、現用系と予備系双方で入力許可。低優先指定パケットは、現用系と予備系一方で入力許可。対象外パケットは、両系で入力停止。4)選択的出力停止機能:現用系動作時に、予備系からのパケット出力を停止。現用系障害検出後、予備系からのパケット出力を許可。5)相互監視機能:ペアとなる装置間で障害検出のための状態通知を相互に実施し、設定したタイムアウト時間以上の無通信状態を検出すると、障害発生として系切替を実施。」と記載されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2003−337717号公報
【非特許文献】
【0008】
【非特許文献1】奥野通貴他、「次世代クラウドシステムに向けた高信頼ネットワーク分散処理技術に関する検討」、電子情報通信学会、信学技報、2011年4月
【発明の概要】
【発明が解決しようとする課題】
【0009】
二重系として動作する情報処理部を持つ通信ノード装置で、現用系情報処理部の障害時に予備系に動作を切り替えて通信を継続、維持するときに、パケットが廃棄され、サーバあるいはクライアントが応答パケットを受信できないと再送タイムアウトが発生し、通信が、例えば数百ミリ秒〜数秒中断してしまうという課題がある。
【0010】
本発明の目的は、上記の課題を解決し、再送タイムアウトが起こりうる通信において、通信ノード装置の現用系で障害が発生し、予備系への系切替が起きた際に発生する、通信の中断時間を短縮することが可能な通信ノード装置、システム、及び方法を提供することにある。
【課題を解決するための手段】
【0011】
上記の目的を達成するため、本発明においては、現用系と予備系とを備えて二重系として動作し、確認応答型プロトコルによる通信を行う通信ノード装置であって、現用系と予備系はそれぞれ情報処理部とスイッチ処理部とを備え、現用系のスイッチ処理部は、パケットを現用系の情報処理部と予備系の情報処理部にコピーして転送し、情報処理部は、受信したデータパケットに対し応答パケットを送信し、且つ受信したデータパケットを整列処理して宛先に送信し、予備系の情報処理部は、当該情報処理部からのパケットの出力を停止し、現用系の情報処理部で障害発生した際、パケットの出力停止を解除して系切替を行うことで、予備系の情報処理部で通信を継続し、且つ系切替時に、無条件に応答パケットを送信する構成の通信ノード装置を提供する。
【0012】
また、上記の目的を達成するため、本発明においては、それぞれ二重系の現用系と予備系として動作する2台のサーバと、1台のスイッチを備え、確認応答型プロトコルによる通信を行う通信システムであって、スイッチはパケットを現用系の情報処理部と予備系の情報処理部にコピーして転送し、現用系と予備系のサーバ各々は、受信したデータパケットに対し応答パケットを送信し、予備系のサーバは、当該予備系のサーバからのパケットの出力を停止し、現用系のサーバが障害発生した時に、予備系のサーバのパケットの出力の停止を解除することで系切替をおこなうことにより通信を継続し、系切替時に、無条件に応答パケットを送信する構成の通信システムを提供する。
【0013】
更に、上記の目的を達成するため、本発明においては、それぞれ情報処理部とスイッチ処理部を備える、現用系と予備系の二重系として動作し、確認応答型プロトコルによる通信を行う装置における通信方法であって、情報処理部は、現用系のスイッチ処理部に入力さ、現用系と予備系の情報処理部にコピーして転送されたデータパケットを受信し、受信したデータパケットに対し応答パケットを送信し、且つ受信したデータパケットを宛先に送信し、予備系の情報処理部は、当該情報処理部からのパケットの出力を停止し、現用系で障害発生した際、パケットの出力停止を解除して系切替を行うことにより通信を継続し、且つ系切替時に、無条件に応答パケットを送信することを特徴とする通信方法を提供する。
【発明の効果】
【0014】
本発明によれば、二重系として動作させる情報処理部を有する通信ノード装置の間で、系切替が発生した際の、再送タイムアウトによる通信の中断を防止することが可能となる。
【図面の簡単な説明】
【0015】
【図1】実施例1における通信システムの予備系情報処理部が系切り替え後に応答パケットを送信する例を示す図である。
【図2】実施例1に係る通信システムの構成の一例を示す図である。
【図3】実施例1に係る通信システムで用いられるパケットフォーマットの一例を示す図である。
【図4】実施例1に係る通信システムの、パケットの正常状態での受信処理の一例を示す図である。
【図5】実施例1に係る通信システムの、障害監視から系切り替えまでの一連の動作を説明するための図である。
【図6】実施例1に係る通信システムの課題である、再送タイムアウトの発生による通信の中断の一例を説明するための図である。
【図7】実施例1に係る通信システムの、情報処理部の構成の一例を示す図である。
【図8】実施例1に係る通信システムの、状態テーブルのフォーマットの一例を示す図である。
【図9】実施例1に係る通信システムの、障害検出、系切替処理のフローチャートの一例を示す図である。
【図10】実施例1に係る通信システムの、予備系情報処理部が系切り替え後に応答パケットを送信する一例を示すタイムチャート図である。
【図11】実施例1に係る、サーバ2台とスイッチ一台で二重化したサーバシステムを構成した一例を示す図である。
【図12】実施例1に係る、二重化したサーバでシステムを構成した場合に、予備系情報処理部が応答パケットを送信する一例を示す図である。
【図13】実施例1に係る、二重化したサーバシステムを構築する際のサーバの構成の一例を示すブロック図である。
【図14】実施例2に係る、通信ノード装置がクライアントからのパケットをサーバに向けて送信する一例を示す図である。
【図15】実施例2に係る、系切替時に応答パケットとデータパケットとを送信する一例を示す図である。
【図16】実施例2に係る、データパケットの再送判定と再送処理を行うフローチャートの一例を示す図である。
【図17】実施例2に係る、系切替以前に応答パケットにより再送要求されていたパケットを、系切替時に再送する例を示す図である。
【発明を実施するための形態】
【0016】
以下、本発明の実施形態の具体例を添付図面に基づき説明するが、その解決する課題を、非特許文献1の記載事項に基づき、図2−図5を用いて説明する。なお、本明細書においては、リクエストパケットは、ペイロードのTCPペイロードにデータを持つパケットであることから、リクエストパケットを含めて、データパケットと呼称することとする。
【0017】
非特許文献1に見るように、系切替の際にクライアントへの応答パケットが廃棄されると、クライアントは応答パケットを受信することができないため、再送タイムアウトが発生し、通信の中断時間が増大する。
【0018】
図2は、非特許文献1のシステム構成の概略図であり、現用系通信ノード装置100−1と、現用系通信ノード装置100−1に隣接する予備系通信ノード装置100−2、クライアント10、サーバ20、広域網50で構成される。現用系通信ノード装置100−1のスイッチ処理部110−1は、スイッチ機能に加え、クライアント10とサーバ20とでやり取りされるパケットを、現用系情報処理部200−1と予備系情報処理部200−2とに、強制的にコピーして転送することで、現用系情報処理部200−1と予備系情報処理部200−2の状態を共有化する。なお、スイッチ処理部110−2は、系切替後に現用系として動作する場合、パケットを強制コピーして転送する様に構成されることは言うまでもない。
【0019】
一方、情報処理部200は、スイッチ処理部110−1から転送されたデータパケットに対して、パケットヘッダのシーケンス番号に基づいて整列し、応答パケットを送信元に送信する手段と、整列したパケットに対してアプリ処理を実行し、データパケットを宛先に送信する手段とを持つ。また、予備系情報処理部200−2は、後で説明するパケットの出力を停止する手段を持つ。
【0020】
図3にTCP/IPネットワークで使用されるパケットのフォーマット300を示す。パケットのTCPヘッダ部は、送信元ポート番号301、送信先ポート番号302、シーケンス番号303、確認応答番号304、ヘッダ長305、予約済みビット306、コードビット307、ウインドウサイズ308、チェックサム309、緊急ポインタ310、オプション311で構成される。応答パケットのフォーマットも図3のフォーマットと同じであり、確認応答番号フィールド304に、クライアントが次に送るべきパケットのシーケンス番号を含み、クライアントに通知する。
【0021】
図4に基づき、非特許文献1における、クライアント10と通信ノード装置100の間の通信処理を説明する。クライアント10は、サーバ20宛にデータパケットを送信する(S500)。クライアント10は、データパケットを送信した後、再送タイムアウトを判定するためのタイマをスタートさせる(S1030)。途中の経路上にある現用系の通信ノード装置100−1は、情報処理対象となる通信のデータパケットであれば、データパケットに記載の宛先IPアドレスや宛先MAC(Media Access Control)アドレスに依らず、データパケットを自身の情報処理部200−1と、予備系の通信ノード装置100−2向けに、コピーして転送する(S501)。
【0022】
前記データパケットを受信した現用系情報処理部200−1、および、予備系情報処理部200−2は、同データパケットに対し、パケットヘッダに含まれるシーケンス番号順に整列処理を行い(S502)、応答パケット送信処理を行う(S503)。このとき、予備系情報処理部200−2では、上述したように、パケット出力停止手段を機能させ、応答パケットの出力を停止し、外部に出力しない(S504)ため、現用系からの応答パケットだけがクライアント10に向けて送信される。現用系情報処理部200−1から応答パケットを受信したクライアントは、再送タイムアウトのためのタイマを解除する(S1033)
図5を用いて、現用系情報処理部200−1と、予備系情報処理部200−2との間の障害検出から系切替のための連携動作を説明する。現用系情報処理部200−1は、動作状態にあるとき、予備系情報処理部200−2に対して、自身が動作状態にあることを示す状態通知パケットを送信する動作を続ける(ハートビート)(S550→S551→S552)。現用系情報処理部200−1に障害500が発生すると、予備系情報処理部200−2は、指定期間内に前記の状態通知パケットを受信できないため、障害として検出する(S560)。そして、予備系情報処理部200−2は、一定時間以上通知がないことで、現用系情報処理部200−1が停止していると判断し、フィルタによるパケット出力停止を解除し(S563)、現用系としての動作を開始する。上記系切替の手法によると、現用系で障害が発生してから切替が終了するまでの時間は、相互監視の状態通知間隔にもよるが、例えば、数十ミリ秒程度である。
【0023】
しかし、図6に示す通り、現用系情報処理部200−1で障害が発生してから(S600)、予備系情報処理部200−2でパケット出力停止が解除されるまで(S563)に、予備系情報処理部200−2が状態通知パケットの受信を指定期間待つために数十ミリ秒の時間がかかるため、予備系情報処理部200−2が送信した応答パケットが廃棄され(S504)、現用系情報処理部200−1と、予備系情報処理部200−2の両方から、応答パケットが送信されない可能性がある。この時、クライアント10は応答パケットを受信できないために、再送タイムアウト待ちが発生し、通信が数百ミリ秒〜数秒中断し(S1003)、タイムアウトが発生する(S1031)。以上が、各実施例の通信ノード装置が解決すべき課題である。
【実施例1】
【0024】
第1の実施例では、系切替時に、予備系情報処理部からクライアントに対して、応答パケットを無条件で送信することで、再送タイムアウトの発生を防止する通信ノード装置の実施例を説明する。本実施例における、確認応答型プロトコルによる通信を行う通信システムの構成は図2、通信ノード装置のパケット受信処理は図4、障害監視から系切替までの連係動作は図5に示したものと同様である。
【0025】
図7に、本実施例の通信ノード装置100における情報処理部200の構成の一例を示す。情報処理部200は、処理部として機能する汎用的なプロセッサやネットワークプロセッサ等を活用したプロセッシング部122、記憶部であるメモリ123、その他のデバイスを接続する拡張インタフェース124、スイッチ機能およびパケットコピー機能を持つスイッチ処理部110本体と、情報処理部200とを接続するためのインタフェース121で構成される。情報処理部200のプロセッシング部122は、その内部の複数のブロックで示す各種の機能を、プログラムを実行することで実現することができる。例えば、プロセッシング部122のアプリケーション処理部240は、例えばメモリ123に記憶される各種のアプリケーションについてのプログラムを実行することで処理を行う。
【0026】
また、プロセッシング部122は、現用系と予備系の間で状態通知と障害検出、系切替処理を行うための相互監視処理部201、入力パケットフローを選択的に取り込むための制御をおこなう選択的入力停止処理部202、出力パケットフローを選択的に停止する制御をおこなう選択的出力停止処理部203を備え、更に、入力振分部205、出力マージ部206、パススルー処理部250等を備える。
【0027】
入力振分部205は、入力パケットをA側入力フィルタ部210、B側入力フィルタ部220、パススルー処理部250、相互監視処理部201、いずれかへ振り分ける処理を行う。また、自系外の相互監視処理部201からのパケットを自系の相互監視処理部201へ振り分ける。更に、それ以外のパケットをパススルー処理部250へ振り分ける。ここで、A側、B側とは、それぞれ図2のシステム構成における、クライアント10側、サーバ20側を意味し、以下、同様である。
【0028】
出力マージ部206は、A側出力フィルタ部216、B側出力フィルタ部226、相互監視処理部201、パススルー処理部250からのパケットを情報処理部200の外部へ送信する処理を行う。
【0029】
選択的入力停止処理部202は、A側入力フィルタ部210、B側入力フィルタ部220を用いて、特定のパケットフローの取り込みをフィルタする、すなわち、停止(排除)する処理を行う。
【0030】
選択的出力停止処理部203は、予備系情報処理部200−2として動作している場合の、上述したパケット出力停止手段に対応し、クライアント10、サーバ20に対するパケットの出力を、A側出力フィルタ部216、B側出力フィルタ部226を利用してフィルタする、すなわち、停止する処理を行う。同様に、パススルー処理部250に対しても、パケットの出力を停止する処理を行う。また、現用系情報処理部200−1が障害を起こして、予備系情報処理部200−2が現用系として動作する場合には、前記のフィルタを解除する。すなわち、それまで、停止するとしていたパケットの出力を許可する。
【0031】
パススルー処理部250は、入力振分部205から入力されたパケットに対し、何も処理せずに、そのまま出力マージ部206へ向けて転送する。尚、スイッチ処理部110で、情報処理部200のアプリケーション処理部240で処理を必要としないパケットフローを情報処理部200に対して転送しない設定としている場合、基本的にはパススルー処理部250へはパケットは転送されない。
【0032】
A側整列処理部211、A側再送処理部213、A側送信処理部215、はA側の応答確認型通信プロトコル処理部の構成要素である。なお、ここで応答確認型通信プロトコルとは、例えば、TCP(Transmission Control Protocol)のようにデータの送達確認を行う通信プロトコルを意味し、応答確認型通信プロトコル処理部は当該プロトコルを実行する機能部を意味し、上述の通りプログラムによって実現可能である。
【0033】
A側入力フィルタ部210からの入力パケットがデータパケットであれば、A側整列処理部211で受け取り、データパケットをA側受信バッファ212へ書き込む。A側整列処理部211は、シーケンス番号などを基準にして前記データパケットが順番通りに到着しているかどうか確認し、順番抜けがあれば、該当パケットの再送要求を行うための応答パケットを、A側送信処理部215から送信する。また、順番通りであれば正常到着を通知する応答パケットを、A側送信処理部215から送信する。尚、A側送信処理部215は、前記のようにA側整列処理部211に対応する処理の他、アプリケーション処理部240がA側送信バッファ214へ書き込んだデータをデータパケットとして送信する処理を行う。
【0034】
A側入力フィルタ部210からの入力パケットが応答パケットであれば、A側再送処理部213で受け取る。A側再送処理部213は、正常到着を示す応答パケットを受信すれば、A側送信バッファ214から該当データを削除する。再送要求を示す応答パケットを受信すれば、A側送信バッファ214から該当データを再送する。
【0035】
B側入力フィルタ部220、B側出力フィルタ部226、B側整列処理部221、B側再送処理部223、B側送信処理部225、B側受信バッファ222、B側送信バッファ224、に関してもパケットの流れる方向が異なるだけで、A側と同様の処理を行う。B側整列処理部221、B側再送処理部223、B側送信処理部225も纏めて、B側の応答確認型通信プロトコル処理部と称し、A側と同様、応答確認型通信プロトコルを実行するための機能部として利用する。
【0036】
アプリケーション処理部240は、A側受信バッファ212、及び、B側受信バッファ222を介してアプリケーションで利用するデータを受信し、上述のとおりプログラムされた通信処理や情報処理を行い、結果を入力とは反対側のA側送信バッファ214、及び、B側送信バッファ224へ書き込む。
【0037】
図8にその一例を示すように、状態テーブル230は、検索キー231、A側応答確認型プロトコル状態232、B側応答確認型プロトコル状態233、アプリケーションデータ利用状態234を備える。
【0038】
同図において、検索キー231は、例えば、送信元IPアドレス401、送信先IPアドレス402、送信元ポート403、送信先ポート404などで構成する。
【0039】
A側応答確認型プロトコル状態232は、例えば、コネクションの状態(確立中、接続中、終了中など)を示すプロトコル状態251、受信バッファ状態252、送信バッファ状態253、シーケンス番号257、確認応答番号258、受信済み確認応答番号259、再送要求パケット254等で構成する。
【0040】
シーケンス番号257は、現在のパケットフローのシーケンス番号を確認する目的だけでなく、A側からB側、または、その逆側への通信処理で、送信側の現用系と予備系の送信処理部からのパケットのシーケンス番号を同じ値に揃える目的にも利用できる。これは、現用系情報処理部200−1で障害が発生して、予備系情報処理部200−2からの出力を有効にした場合に、現用系情報処理部200−1が基準として利用していたパケットフローのシーケンス番号と同じシーケンス番号を予備系情報処理部200−2が利用できるようにするために必要な処理となる。
【0041】
シーケンス番号257を利用して、反対側の応答確認型プロトコルは、受け渡されたシーケンス番号そのものを利用しても良いし、シーケンス番号に一定の値を加減算した新たなシーケンス番号を用いても良い。一定の値を加減算する場合は、現用系情報処理部200−1と予備系情報処理部200−2は、同じ一定の値を用いる。
【0042】
確認応答番号258は、パケットの送信元装置に、次に送るべきパケットのシーケンス番号を通知するための値であり、順番通りに受信したパケットのうち、最後に受信したパケットのシーケンス番号と、そのパケットのサイズの和に、1を足した値である。パケットの送受信における確認応答番号258の値の遷移については後述する。
【0043】
受信済み確認応答番号259は、送信先となる装置から受信した応答パケットに含まれる確認応答番号の値である。
【0044】
再送要求パケット260は、送信先となる装置から送られてきた応答パケットにより、再送要求を指定されたパケットのシーケンス番号である。
【0045】
B側応答確認型プロトコル状態260もA側応答確認型プロトコル状態250と同様である。また、アプリケーションデータ利用状態270は、アプリケーションに依存するが、例えば、アプリケーションの状態(稼働中、サスペンド中、データ待ち状態等)などによって構成する。
【0046】
図7に戻り、プロセッシング122中のA側切替時パケット送信部227は、系切替時に無条件に最後に送信した応答パケットとデータパケットを送信する機能を持つ。情報処理部が予備系として動作していて、かつ現用系情報処理部200−1の障害を検出して出力フィルタを解除した直後、A側切替時パケット送信部227は通信中の全てあるいは一部のパケットフローごとに、最後に送信した応答パケットとデータパケットをもう一度送信する。送信するパケットは、送信バッファ214が保持するパケットを送信してもよいし、状態テーブル230とA側応答確認型プロトコル状態232を使って再生成してもよい。B側切替時パケット送信部228の機能は、A側切替時パケット送信部227と同様であるので説明を省略する。
【0047】
図1を用いて、本実施例の通信ノード装置の系切替時に、予備系情報処理部200−2が、無条件に応答パケットを送信する例を説明する。クライアント10が、シーケンス番号が500、パケットサイズが500バイトのデータパケットを送信したとする(S500)。クライアント10は、データパケットを送信後、再送タイムアウト待ちのためのタイマを起動させる(S1030)。現用系スイッチ処理部110−1は、データパケットをコピーして、現用系情報処理部200−1と予備系情報処理部200−2に転送する(S501)。この時、現用系情報処理部200−1で障害が発生したとする(S600)。予備系情報処理部200−2は、整列処理を行い、状態テーブル230の確認応答番号258の値を更新する(S502)。確認応答番号258の値は、次にクライアントが送るパケットのシーケンス番号を示し、受信したパケットのシーケンス番号に、パケットのサイズと1を足した値となる。この場合では、状態テーブル230の確認応答番号258の値は1001となる。
【0048】
その後、予備系情報処理部200−2は応答パケットの確認応答番号フィールド304に、状態テーブル230の確認応答番号258の値を書き込み、応答パケットを送信するが、系切替が行われていないため、出力停止処理により応答パケットは廃棄される(S503→S504)。現用系の障害が検知され(S560)、予備系情報処理部の出力フィルタが解除された(S563)後、予備系情報処理部200−2は、状態テーブル230の確認応答番号258の値を、応答パケットの確認応答番号フィールド304に書込み、クライアント10に対して応答パケット送信処理(S503)を行う。これにより、系切替時に予備系情報処理部200−2の送信した応答パケットが出力フィルタによって破棄されていたとしても、クライアント10はデータパケットに対する応答パケットを受信することができる。
【0049】
応答パケットに含まれる確認応答番号304の値がまだ未受信だった場合、クライアント10は、応答パケットに含まれる確認応答番号の値が示すシーケンス番号から、パケットを送信する。応答パケットに含まれる確認応答番号が既に受信済だった場合、クライアント10は応答パケットを廃棄する。クライアント10は、応答パケットを受信したことで、再送タイムアウト待ちのためのタイマを解除する(S1033)。これにより、クライアント10での再送タイムアウトの発生を防止することできる。
【0050】
上記の例では簡単のため、1つのパケットフローにおいて、予備系情報処理部200−2が系切替時に応答パケットを送信する例を示したが、予備系情報処理部200−2が複数のパケットフローを処理する場合、予備系情報処理部200−2はそれぞれのパケットフローに対して、系切替時に応答パケットを送信する。
【0051】
図9に、本実施例における通信ノードの障害検出、系切替処理のフローチャートを示す。現用系の通信ノード装置100−1の情報処理部200−1は、自身が現用系として動作状態にある場合、相互監視処理部201を利用して、予備系の通信ノード装置100−2の情報処理部200−2に対して、状態通知パケットを送信する(ハートビート)(S630→S631)。以後、相互監視処理部201に対して設定した指定期間が経過するたびに、予備系情報処理部200−2に対して、状態通知パケット(ハートビート)を送信し続ける(S632→S631の繰り返し)。
【0052】
予備系情報処理部200−2は、自身が予備系として動作状態にある場合、相互監視処理部201を利用して、現用系情報処理部200−1からの状態通知パケット(ハートビート)の有無を観測する。相互監視処理部201に対して設定した指定期間内に、前記の状態通知パケットを受信できた場合は、その有無の観測を続ける(S641)。
【0053】
前記の状態通知パケットを受信できなかった場合は、現用系の通信ノード装置100−1の情報処理部200−1が停止していると判断し、予備系情報処理部200−2の選択的出力停止処理部201が出力フィルタ部216(226)のフィルタによるパケット出力停止を解除し(S643→S644)、現用系としての動作を開始する(S645)。
現用系としての動作を開始した後、予備系情報処理部200−2は、クライアント10に応答パケット送信処理を行う(S645)。
【0054】
以上、本実施例の通信ノード装置における系切替時に、予備系情報処理部200−2が応答パケットを無条件に送信する処理について説明した。なお上記の例では、予備系情報処理部200−2が系切替時に、クライアント10に対して応答パケットを送信する例を示したが、予備系情報処理部200−2は、サーバ20からデータパケットを受信した場合も、応答パケットを送信する。
【0055】
図10に、予備系情報処理部200−2がサーバ20に対して応答パケットを送信する処理の例を示す。サーバは、前述したように、クライアントからのデータパケットを受信すると、データパケットをクライアントに向けて送信し(S500)、再送タイムアウト待ちのためのタイマをスタートさせる(S1030)。予備系情報処理部200−2は、クライアントからデータパケットを受信した時と同様に、整列処理を行い、応答パケットを送信する(S502→S503)。ここで応答パケットは、出力停止処理により応答パケットは廃棄される(S504)。現用系の障害が検知され(S560)、予備系情報処理部の出力フィルタが解除された(S563)後、予備系情報処理部200−2は、もう一度状態テーブル230の確認応答番号フィールド257の値を、応答パケットの確認応答番号フィールド304に書込み、サーバ20に対して応答パケット送信処理(S503)を行う。サーバ20は応答パケットを受信すると、再送タイムアウト待ちのためのタイマを解除する(S1033)。
【0056】
また、上記の説明では、図2のような二重化した通信ノード装置でシステムを構成した例について説明したが、図11に示すように、二重化した通信ノード装置100の代わりに、二重化したサーバ20を2台と、スイッチ部であるスイッチ10101台で通信システムを構成することも可能である。この場合、スイッチ1010は、通信ノード装置のスイッチ処理部110−1と同様に、受信したパケットを現用系サーバ20−1と予備系サーバ20−2へコピーして転送する手段を持ち、現用系サーバ20−1と予備系サーバ20−2は少なくとも、それぞれ現用系情報処理部200−1と、予備系情報処理部200−2と同様の、確認応答型プロトコルを処理する機能と、系切替機能とを持つ。
【0057】
図12に、図11のように、二重化したサーバ20でシステムを構成した場合の、系切替の一連の動作の例を示す。なお、クライアント10の動作は図1と同様である(S500、S1030、S1033)。クライアント10が送信したデータパケットは、スイッチ1010により現用系サーバ20−1と予備系サーバ20−2にコピーして転送される(S501)。予備系サーバ20−2は、状態テーブル230の確認応答番号258の値を更新する(S502)。その後、予備系情報処理部200−2は応答パケットの確認応答番号フィールド304に、状態テーブル230の確認応答番号258の値を書き込み、応答パケットを送信するが、系切替が行われていないため、出力停止処理により応答パケットは廃棄される(S503→S504)。現用系の障害が検知され(S560)、予備系情報処理部の出力フィルタが解除された(S563)後、予備系情報処理部200−2は、もう一度状態テーブル230の確認応答番号258の値を、応答パケットの確認応答番号フィールド304に書込み、クライアント10に対して応答パケット送信処理(S503)を行う。
【0058】
図13に、図12のようにサーバ20を2台と、スイッチ1台とで二重系を構築する場合の、サーバ20の構成の例を示す。サーバ20が備える、相互監視処理部201、選択的入力停止処理部202、選択的出力停止処理部203、出力マージ部203、入力フィルタ部210、出力フィルタ部216、整列処理部211、再送処理部213、送信処理部215、状態テーブル230、受信バッファ212、送信バッファ214、切替時パケット送信部228の機能は、それぞれ通信ノード装置100の情報処理部200のものと同様である。サーバアプリケーション処理部1100は、プログラムされたサーバアプリケーションのデータ処理、通信処理を行う。
【0059】
以上、本実施の形態によれば、二重系として動作する、情報処理部を備える通信ノードにおいて、現用系情報処理部で障害が発生し、系切替が発生した時に、予備系情報処理部が無条件に応答パケットを送信することで、クライアントまたはサーバで再送タイムアウトが発生することを防止し、通信の中断時間を短縮することができる。
【実施例2】
【0060】
実施例1では、系切替時に予備系情報処理部が応答パケットを無条件に送信することで、サーバあるいはクライアントで再送タイムアウトが発生することを防止する手法について説明した。一方、情報処理部が応答パケットを送信するだけでなく、データパケットを送信する手段を持つ場合、情報処理部においてデータパケットの再送タイムアウトが発生する場合がある。
【0061】
図14に、通信ノード装置がクライアントから受信したデータパケットをサーバに送信する手段の一例を示す。現用系情報処理部200−1と予備系情報処理部200−2は、クライアントから受信したデータパケットに対して、まず実施例1と同様に、整列処理と応答パケットの送信処理を実行する(S502→S503→S504)。上記の処理に加え、現用系情報処理部200−1と予備系情報処理部200−2は、整列処理したパケットに対しアプリ処理を実行し(S505)、状態テーブル230のシーケンス番号257を読み出してアプリ処理済みのデータパケットを選択し、サーバに送信して、状態テーブル230のシーケンス番号を更新する(S506)。現用系情報処理部200−1と予備系情報処理部200−2は、データパケットを送信した後、再送タイムアウトのためのタイマをスタートさせる(S1030)。予備系情報処理部200−2が出力したデータパケットは、応答パケットと同様、出力停止処理により、廃棄される(S507)。
【0062】
情報処理部200が上記のようなデータパケットを送信する手段を持つ場合、予備系情報処理部200−2が送信したデータパケットが系切替により廃棄されたとき、予備系情報処理部200−2はサーバ20からの応答パケットを受信することができないため、予備系情報処理部200−2で再送タイムアウトが発生する。
【0063】
本実施例では、予備系情報処理部200−2が、系切替以前に送信したデータパケットのうち、系切替時に到達確認の取れていないデータパケットに関しては、再送タイムアウトを待たずに無条件に送信することで、予備系情報処理部200−2で再送タイムアウトが発生することを防止する手法を説明する。なお本実施例におけるシステム構成は図2、障害監視から系切替までの連係動作は図5、情報処理部の構成は図7と同様である。
【0064】
図15に、予備系情報処理部200−2が、系切替以前に送信したデータパケットのうち、系切替時に到達確認の取れていないデータパケットを、再送タイムアウトを待たずに送信する例を示す。なお、クライアントの動作(S500、S1030、S1033)と、予備系情報処理部200−2の系切替の動作(S560、S563)と、クライアントに応答パケットを送信する動作(S502、S503、S504)は、図1と同様である。また、系切替以前の、予備系情報処理部200−2のデータパケットを送信する動作(S505、S506、S1030、S507)は図14と同様である。
【0065】
予備系情報処理部200−2は、系切替時に、状態テーブル230のシーケンス番号257をと受信済み確認応答番号259を読みだし、系切替以前に送信したデータパケットのうち、到達確認されていないデータパケットがあるか判断し、到達確認されていないデータパケットがある場合は、そのデータパケットを、再送タイムアウトを待たずに再送する(S1060)。
【0066】
図16に、予備系情報処理部200−2が、到達確認されていないデータパケットがあるか判断し、到達確認されていないデータパケットを再送アウトタイムを待たずに再送する処理について、処理フローチャートの例を示す。予備系情報処理部200−2は、状態テーブル230のシーケンス番号257と、受信済確認応答番号259の値を比較する(S1050)。シーケンス番号257が受信済確認応答番号259の値より大きかった場合、送信したデータパケットのうち、サーバに到達していないパケットがあると判定し、受信済み確認応答番号259が示すシーケンス番号のパケットを再送する(S1051)。
【0067】
これにより、予備系情報処理部200−2が送信したデータパケットが系切替により廃棄された場合においても、予備系情報処理部200−2が系切り替え後にデータパケットの再送判定と再送処理を行うことによって、データパケットを確実にサーバ20に送信し、予備系情報処理部200−2がサーバ20からの応答パケットを受信できないことで、予備系情報処理部200−2で再送タイムアウトが発生することを防止することが可能となる。
【0068】
以上、実施例2において、予備系情報処理部200−2が、系切替時にデータパケットを再送する処理について説明した。なお、クライアント10からサーバ20に対してデータパケットを送信する例を説明したが、サーバ20からクライアント10に対するデータパケットの送信についても、同様である。
【0069】
上記の例では予備系情報処理部200−2が状態テーブル230のシーケンス番号257と受信済確認応答番号259を比較することで、到達確認のできていないパケットを選択する例について説明した。次に、予備系情報処理部200−2が、系切替以前にサーバ20から再送要求を含む応答パケットを受信した場合において、予備系情報処理部200−2が、系切替以前にサーバ20から再送要求されて送信したデータパケットを、系切替時にもう一度再送する例について説明する。
【0070】
図17に、実施例2において、予備系情報処理部200−2が、系切替以前にサーバから再送要求されて送信したデータパケットを、系切替時にもう一度再送する例を示す。現用系情報処理部220−1からデータパケットを受信したサーバ20は、受信したパケットのシーケンス番号をもとに、パケットにぬけがないかどうかを判断する。抜けがあると判断した場合、サーバ20は、再送要求の応答パケットを現用系情報処理部220−1へ送信し(S530)パケットを受信した現用系スイッチ部110−1は、パケットのコピーを現用系情報処理部200−1と予備系情報処理部200−2へ転送する(S531)。この時、現用系情報処理部110−1で障害があったとする(S600)。予備系情報処理部200−2は、受信した応答パケットにより再送要求されたパケットのシーケンス番号を、状態テーブル230の再送要求パケット254に書き込む(S532)。予備系情報処理部200−2は、状態テーブル230の再送要求パケット260が示すシーケンス番号をもとに、データパケットを再送し(S533)、再送タイムアウトのためのタイマをスタートさせる(S1030)。この時、まだ現用系情報処理部200−1の障害が検出されていないため、予備系情報処理部200−2はパケットの出力を停止する(S534)。現用系の障害が検出され(S560)、出力フィルタが解除された後(S563)、予備系情報処理部200−2は、状態テーブル230の再送要求パケット254のシーケンス番号が示すデータパケットを、サーバに対して送信する(S533)。
【0071】
これにより、予備系情報処理部200−2が送信した再送パケットが、系切替により廃棄された場合でも、予備系情報処理部200−2が系切替時に、再送パケットをもう一度送信することで、確実に再送パケットをサーバ20に送信し、予備系情報処理部200−2がサーバ20からの応答パケットを受信できず、予備系情報処理部200−2で再送タイムアウトが発生することを防止することが可能となる。
【0072】
なお、上記の例では、サーバ20が通信ノード装置100に対して再送要求の応答パケットが送信する例を説明したが、クライアント10が通信ノード装置100に対して再送要求の応答パケットを送信する場合も同様である。
【0073】
以上、本実施の形態によれば、二重系として動作する、情報処理部を備える通信ノードにおいて、現用系情報処理部で障害が発生し、系切替が発生した時に、予備系情報処理部が、系切替以前に送信したデータパケットのうち、到達確認されていないデータパケットを無条件に送信することで、予備系情報処理部で再送タイムアウトが発生することを防止し、通信の中断時間を短縮することができる。
【0074】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したのであり、必ずしも説明の全ての構成を備えるものに限定されものではない。また、一の実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、一の実施例の構成に他の実施例の構成を加えることが可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【0075】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、それぞれの機能を実現するプログラムを実行することによりソフトウェアで実現する場合を例示して説明したが、各機能を実現するプログラム、テーブル、ファイル等の情報はメモリのみならず、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体におくことができるし、ネットワーク等を介してダウンロード、インストロールすることも可能である。
【符号の説明】
【0076】
10 クライアント
20 サーバ
20−1 現用系サーバ
20−2 予備系サーバ
50 広域網
100−1 現用系通信ノード装置
100−2 予備系通信ノード装置
110−1 現用系スイッチ処理部
110−2 予備系スイッチ処理部
121 インタフェース
122 プロセッシング部
123 メモリ
124 拡張インタフェース
200 情報処理部
200−1 現用系情報処理部
200−2 予備系情報処理部
230 状態テーブル
300 パケットフォーマット
303 シーケンス番号
304 確認応答番号

【特許請求の範囲】
【請求項1】
現用系と予備系とを備えて二重系として動作し、確認応答型プロトコルによる通信を行う通信ノード装置であって、
前記現用系と前記予備系はそれぞれ情報処理部とスイッチ処理部とを備え、
現用系の前記スイッチ処理部は、パケットを現用系の前記情報処理部と予備系の前記情報処理部にコピーして転送し、
前記情報処理部は、受信したデータパケットに対し応答パケットを送信し、且つ受信した前記データパケットを整列処理して宛先に送信し、
予備系の前記情報処理部は、
当該情報処理部からのパケットの出力を停止し、
現用系の前記情報処理部で障害発生した際、前記パケットの出力停止を解除して系切替を行うことで、予備系の前記情報処理部で通信を継続し、且つ
前記系切替時に、無条件に前記応答パケットを送信する、
ことを特徴とする通信ノード装置。
【請求項2】
請求項1記載の通信ノード装置であって、
予備系の前記情報処理部は、前記応答パケットを送信する際に、
予備系の前記情報処理部が処理するそれぞれのパケットフローにおいて、前記系切替以前に送信した前記応答パケットのうち、一番最後に送信した確認応答番号を含む前記応答パケットを送信する、
ことを特徴とする通信ノード装置。
【請求項3】
請求項1記載の通信ノード装置であって、
予備系の前記情報処理部は、
前記系切替時に、無条件にデータパケットを送信する、
ことを特徴とする通信ノード装置。
【請求項4】
請求項3記載の通信ノード装置であって、
予備系の前記情報処理部は、
系切替以前に送信した前記データパケットのうち、
前記系切替直後に到達確認の取れていない前記データパケットを、再送タイムアウトを待たずに無条件に送信する、
ことを特徴とする通信ノード装置。
【請求項5】
請求項3記載の通信ノード装置であって、
予備系の前記情報処理部は、
前記系切替以前に前記応答確認パケットにより再送要求されて再送した前記データパケットを、前記系切替直後にもう一度無条件に再送する、
ことを特徴とする通信ノード装置。
【請求項6】
それぞれ二重系の現用系と予備系として動作する2台のサーバと、1台のスイッチを備え、確認応答型プロトコルによる通信を行う通信システムであって、
前記スイッチは入力されたデータパケットを現用系の前記情報処理部と予備系の前記情報処理部にコピーして転送し、
現用系と予備系の前記サーバ各々は、受信したデータパケットに対し応答パケットを送信し、
予備系の前記サーバは、
当該予備系の前記サーバからのパケットの出力を停止し、
現用系の前記サーバが障害発生した時に、予備系の前記サーバのパケットの前記出力の停止を解除することで系切替をおこなうことにより通信を継続し、
前記系切替時に、無条件に前記応答パケットを送信する、
ことを特徴とする通信システム。
【請求項7】
請求項6記載の通信システムであって、
予備系の前記サーバは、前記応答パケットを送信する際に、
予備系の前記サーバが処理するそれぞれのパケットフローにおいて、前記系切替以前に送信した前記応答パケットのうち、一番最後に送信した確認応答番号を含む前記応答パケットを送信する、
ことを特徴とする通信システム。
【請求項8】
請求項6記載の通信システムであって、
予備系の前記サーバは、
前記系切替時に、無条件に前記データパケットを送信する、
ことを特徴とする通信システム。
【請求項9】
請求項8記載の通信システムであって、
予備系の前記サーバは、
系切替以前に送信した前記データパケットのうち、
前記系切替直後に到達確認の取れていない前記データパケットを、再送タイムアウトを待たずに無条件に送信する、
ことを特徴とする通信システム。
【請求項10】
請求項8記載の通信システムであって、
予備系の前記サーバは、
前記系切替以前に前記応答確認パケットにより再送要求されて再送した前記データパケットを、前記系切替直後にもう一度無条件に再送する、
ことを特徴とする通信システム。
【請求項11】
それぞれ情報処理部とスイッチ処理部を備える、現用系と予備系の二重系として動作し、確認応答型プロトコルによる通信を行う装置における通信方法であって、
前記情報処理部は、
現用系の前記スイッチ処理部に入力さ、現用系と予備系の前記情報処理部にコピーして転送されたデータパケットを受信し、受信した前記データパケットに対し応答パケットを送信し、且つ受信した前記データパケットを宛先に送信し、
予備系の前記情報処理部は、
当該情報処理部からのパケットの出力を停止し、
前記現用系で障害発生した際、前記パケットの出力停止を解除して系切替を行うことにより通信を継続し、且つ前記系切替時に、無条件に前記応答パケットを送信する、
ことを特徴とする通信方法。
【請求項12】
請求項11記載の通信方法であって、
予備系の前記情報処理部は、前記応答パケットを送信する際に、
予備系の前記情報処理部が処理するそれぞれのパケットフローにおいて、前記系切替以前に送信した前記応答パケットのうち、一番最後に送信した確認応答番号を含む前記応答パケットを送信する、
ことを特徴とする通信方法。
【請求項13】
請求項11記載の通信方法であって、
予備系の前記情報処理部は、
前記系切替時に、無条件にデータパケットを送信する、
ことを特徴とする通信方法。
【請求項14】
請求項13記載の通信ノード装置であって、
予備系の前記情報処理部は、
系切替以前に送信した前記データパケットのうち、
前記系切替直後に到達確認の取れていない前記データパケットを、再送タイムアウトを待たずに無条件に送信する、
ことを特徴とする通信方法。
【請求項15】
請求項13記載の通信方法であって、
予備系の前記情報処理部は、
前記系切替以前に前記応答確認パケットにより再送要求されて再送した前記データパケットを、前記系切替直後にもう一度無条件に再送する、
ことを特徴とする通信方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2013−89172(P2013−89172A)
【公開日】平成25年5月13日(2013.5.13)
【国際特許分類】
【出願番号】特願2011−231798(P2011−231798)
【出願日】平成23年10月21日(2011.10.21)
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成22年度、総務省、クラウドサービスを支える高信頼・省電力ネットワーク制御技術の研究開発(高信頼クラウドサービス制御基盤技術) 委託事業、産業技術力強化法第19条の適用を受ける特許出願
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】