(57)【要約】【課題】ネットワークへの負荷が小さく、再送の性能と信頼性を向上させた中継装置およびデータ再送方法を提供することを目的とする。【解決手段】単位データを中継する中継装置であって、単位データを所定数単位で送信する送信データ処理手段３１と、送信した単位データのうち応答確認の出来ていない複製された単位データを保持する複製保持手段３３と、単位データを再送するときに複製保持手段３３が保持している単位データのうち先頭の単位データを送信し、先頭の単位データの応答確認が出来たあと、複製保持手段３３が保持している単位データのうちの残りの単位データを送信するタイムアウト処理手段３４とを有することで上記課題を解決する。【選択図】図４
2007288428.tif 000002
【特許請求の範囲】
【請求項１】
所定のデータ伝送単位に分割された単位データを中継する中継装置であって、
単位データを所定数単位で送信する送信データ処理手段と、
送信した前記単位データのうち応答確認の出来ていない複製された前記単位データを保持する複製保持手段と、
前記単位データを再送するときに前記複製保持手段が保持している前記単位データのうち先頭の前記単位データを送信し、先頭の前記単位データの応答確認が出来たあと、前記複製保持手段が保持している前記単位データのうちの残りの前記単位データを送信するタイムアウト処理手段と
を有することを特徴とする中継装置。
【請求項２】
前記単位データの再送回数を記憶する記憶手段を更に有し、
前記タイムアウト処理手段は、再送した前記単位データのうち、一部の前記単位データの応答確認ができ、残りの前記単位データの応答確認が出来なかったとき、前記記憶手段に記憶されている前記単位データの再送回数を０回にリセットすることを特徴とする請求項１記載の中継装置。
【請求項３】
前記タイムアウト処理手段は、応答確認ができた前記単位データを前記複製保持手段から削除することを特徴とする請求項１又は２記載の中継装置。
【請求項４】
前記タイムアウト処理手段は、前記単位データの再送回数が所定の回数に達すると前記複製保持手段が保持している前記単位データの再送を中止することを特徴とする請求項１乃至３何れか一項記載の中継装置。
【請求項５】
所定のデータ伝送単位に分割された単位データを中継する中継装置のデータ再送方法であって、
所定数単位で送信する単位データを複製して前記複製保持手段に保持させる保持ステップと、
前記単位データを所定数単位で送信する送信データ処理ステップと、
送信した前記単位データのうち応答確認の出来ていない前記単位データを再送するときに前記複製保持手段が保持している前記単位データのうち先頭の前記単位データを送信する第１送信ステップと、
先頭の前記単位データの応答確認が出来たあと、前記複製保持手段が保持している前記単位データのうちの残りの前記単位データを送信する第２送信ステップと
を有することを特徴とするデータ再送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、中継装置およびデータ再送方法に係り、特にデータ再送機能を有する中継装置およびその中継装置で利用するデータ再送方法に関する。
【背景技術】
【０００２】
例えばネットワーク上のパケットが何らかの事情で到達されない場合に備え、送信側ではタイマで監視し、一定時間以上応答がなかった場合にパケットを再送するデータ再送機能を備えていることが一般的である。
【０００３】
しかし、ネットワーク上のパケットが到達されない場合は、ネットワークの負荷が高い状態のときが多く、そのような状態のときにパケットを再送すると余計に負荷が掛かってしまうことがあった。
【０００４】
このような問題に対処するため、特許文献１では送信ノードで送信パケットをコピーして持ち、受信ノードが受信できなかったパケットの情報を受信ノードから送信ノードに送信して、受信ノードが受信できなかったパケットのみを再送することでネットワークの負荷を減らすことが行われている。
【特許文献１】特開平０９−４６３７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載されている内容では、受信端末がパケットを再送するタイマ値を認識し、そのタイマ値以下の判断で受信ノードから送信ノードへ再送信依頼をしなければならず、システム的に全てを管理する必要があった。また、特許文献１に記載されている内容では送信ノード及び受信ノードを、それぞれ対応した装置にしなければならなかった。
【０００６】
また、特許文献１に記載されている内容では、受信ノードで受信できなかったパケットが多ければ、ネットワークへの負荷が大きく、パケットの再送に掛かる時間が長くなってしまうという問題があった。
【０００７】
さらに、データ再送機能では再送の結果、応答確認ができないパケットが残ると、一定時間毎に再送を繰り返す。そして、データ再送機能では、再送した回数が一定回数を超えると、再送が不可能と判断して再送を中止してしまう。
【０００８】
したがって、データ再送機能では再送したパケットのうち、一部のパケットの応答確認ができ、残りのパケットの応答確認ができなかった場合であっても、データ再送自体が進捗しているにも拘わらず再送した回数としてカウントしてしまい、再送した回数が一定回数を超えると、再送が不可能であると間違って判断して再送を中止してしまうという問題があった。
【０００９】
本発明は、上記の点に鑑みなされたもので、ネットワークへの負荷が小さく、再送の性能と信頼性を向上させた中継装置およびデータ再送方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するため、本発明は、所定のデータ伝送単位に分割された単位データを中継する中継装置であって、単位データを所定数単位で送信する送信データ処理手段と、送信した前記単位データのうち応答確認の出来ていない複製された前記単位データを保持する複製保持手段と、前記単位データを再送するときに前記複製保持手段が保持している前記単位データのうち先頭の前記単位データを送信し、先頭の前記単位データの応答確認が出来たあと、前記複製保持手段が保持している前記単位データのうちの残りの前記単位データを送信するタイムアウト処理手段とを有することを特徴とする。
【００１１】
また、本発明は、所定のデータ伝送単位に分割された単位データを中継する中継装置のデータ再送方法であって、所定数単位で送信する単位データを複製して前記複製保持手段に保持させる保持ステップと、前記単位データを所定数単位で送信する送信データ処理ステップと、送信した前記単位データのうち応答確認の出来ていない前記単位データを再送するときに前記複製保持手段が保持している前記単位データのうち先頭の前記単位データを送信する第１送信ステップと、先頭の前記単位データの応答確認が出来たあと、前記複製保持手段が保持している前記単位データのうちの残りの前記単位データを送信する第２送信ステップとを有することを特徴とする。
【発明の効果】
【００１２】
上述の如く、本発明によれば、ネットワークへの負荷が小さく、再送の性能と信頼性を向上させた中継装置およびデータ再送方法を提供可能である。
【発明を実施するための最良の形態】
【００１３】
次に、本発明を実施するための最良の形態を、以下の実施例に基づき図面を参照しつつ説明していく。なお、本実施例では中継装置の一例として負荷分散装置を例に説明していくが、所定のデータ伝送単位に分割された単位データ（例えばパケット）を中継する如何なる装置又は機器であってもよい。
【００１４】
図１は本発明による負荷分散装置を含むシステムの一例のシステム構成図である。システム１は、クライアント１０，負荷分散装置１１，サーバ１２Ａ，サーバ１２Ｂ，ネットワーク１３及び１４を含む構成である。
【００１５】
クライアント１０と負荷分散装置１１とは例えばインターネット等のネットワーク１３を介して接続されている。また、負荷分散装置１１とサーバ１２Ａ，１２Ｂとは例えばＬＡＮ等のネットワーク１４を介して接続されている。なお、サーバ１２Ａ，１２Ｂの何れかを指す場合は単にサーバ１２と呼ぶ。また、図１のシステム１はクライアント１０を１つしか図示していないが、複数であってもよい。
【００１６】
負荷分散装置１１はクライアント１０からのリクエストを一元的に管理し、同等の機能を持つ複数のサーバ１２にリクエストを転送する装置である。即ち、負荷分散装置１１は複数のサーバ１２にクライアント１０からのリクエストを分散して送信し、サーバ１２が快適な応答速度を保つことを目的としている。
【００１７】
図２は本発明による負荷分散装置を含むシステムの処理手順を示す一例のシーケンス図である。図２のシーケンス図はクライアント１０からの一般的なアクセスの流れを示すものである。
【００１８】
ステップＳ１に進み、クライアント１０は負荷分散装置１１との間にコネクションを接続する。ステップＳ２に進み、クライアント１０はリクエストメッセージを負荷分散装置１１に送信する。ステップＳ３に進み、負荷分散装置１１は前述したリクエストの分散に基づいて何れかのサーバ１２を選択し、選択したサーバ１２との間にコネクションを接続する。ステップＳ４に進み、負荷分散装置１１はステップＳ２においてクライアント１０から受信したリクエストメッセージを、ステップＳ３において選択したサーバ１２にパケットで送信する。
【００１９】
負荷分散装置１１からリクエストメッセージを受信すると、サーバ１２は受信したリクエストメッセージに応じた処理を行う。ステップＳ５に進み、サーバ１２は負荷分散装置１１にレスポンスメッセージを送信する。そして、ステップＳ６に進み、負荷分散装置１１はサーバ１２から受信したレスポンスメッセージをパケットでクライアント１０に送信する。
【００２０】
本発明による負荷分散装置１１はステップＳ４又はＳ６においてパケットの消失が起こったときにパケットの再送を行う。なお、負荷分散装置１１が行うパケットの再送についての詳細は後述する。
【００２１】
図３は負荷分散装置の一例のブロック構成図である。図３の負荷分散装置１１は、負荷分散処理部２１，タイマ処理部２２，データ送受信処理部２３を含む構成である。データ送受信処理部２３は、例えば図４に示すように構成される。図４はデータ送受信処理部の詳細を示すブロック構成図である。データ送受信処理部２３は送信データ処理部３１，受信パケット処理部３２，応答確認待ちキュー３３，タイムアウト処理部３４，コネクション管理テーブル記憶部３５，コネクション管理テーブルキュー３６を含む構成である。
【００２２】
コネクション管理テーブル記憶部３５には図５に示すようなコネクション管理テーブルが記憶されている。図５はコネクション管理テーブルの一例の構成図である。図５のコネクション管理テーブルは、コネクション毎に１個ずつ存在する。なお、図５のコネクション管理テーブルは本発明に関係する項目を記載しているものである。
【００２３】
図５のコネクション管理テーブルは、自ＩＰアドレス，自ポート番号，相手ＩＰアドレス，相手ポート番号，応答確認待ちキュー，再送回数，タイマ管理情報を含むように構成されている。
【００２４】
コネクション管理テーブルキュー３６はシステム全体で１個存在する。コネクション管理テーブルは全てコネクション管理テーブルキュー３６にリンクされている。図６はコネクション管理テーブルキューにリンクされたコネクション管理テーブルの様子を表した一例のイメージ図である。
【００２５】
コネクション管理テーブルキュー３６は、先頭のコネクション管理テーブルのアドレスにリンクされている。また、先頭のコネクション管理テーブルは２番目のコネクション管理テーブルのアドレスにリンクされている。つまり、コネクション管理テーブルは次のコネクション管理テーブルのアドレスにリンクされている。最終のコネクション管理テーブルはＮＵＬＬポインタにリンクされている。
【００２６】
なお、コネクション管理テーブルキュー３６は単純なキューの他、ハッシュキューなどの検索高速化手法を利用するものであってもよい。以下、本発明による負荷分散装置１１が行うパケットの再送についてフローチャートを参照しつつ説明する。
【実施例１】
【００２７】
実施例１では、パケットの消失が起こったときに、応答確認が出来ていないパケットのうち先頭のパケットを再送し、その再送の応答確認が出来たあと、応答確認が出来ていないパケットの残りを再送する。即ち、実施例１では応答確認が出来ていないパケットのうち先頭のパケットを再送してみることで、パケットの消失が起こった原因（例えばネットワークの負荷が高い状態など）が解消しているかを推測したあと、応答確認が出来ていないパケットの残りを再送できる。
【００２８】
図７はデータ送信時の処理手順を表した一例のフローチャートである。ステップＳ１１に進み、データ送受信処理部２３は負荷分散処理部２１から送信データと、送信に使用するコネクション管理テーブルを指定する情報とを受信する。なお、送信に使用するコネクションの決定は負荷分散処理部２１で行われる。
【００２９】
ステップＳ１２に進み、送信データ処理部３１は送信データからパケットを作成し、そのパケットを応答確認待ちキュー３３に追加する。ステップＳ１３に進み、送信データ処理部３１は応答確認待ちキュー３３に追加したパケットのコピーを作成し、ネットワーク１４を介してサーバ１２に送信する。
【００３０】
ステップＳ１４に進み、送信データ処理部３１は指定されたコネクション管理テーブル上の再送回数を０に設定し、タイマ管理情報にタイムアウト時間を設定することで応答待ちタイマを起動してデータ送信時の処理を終了する。
【００３１】
再送の応答確認前にタイムアウト時間に達すると、タイムアウト処理部３４はタイムアウトが発生したと判定して図８に示すフローチャートの処理を開始する。図８はタイムアウト発生時の処理手順を表した一例のフローチャートである。ステップＳ２１に進み、タイムアウト処理部３４はタイムアウトが発生したコネクションに対応するコネクション管理テーブル上の再送回数を調べる。
【００３２】
ステップＳ２２に進み、タイムアウト処理部３４はステップＳ２１で調べた再送回数が規定値以上か否かを判定する。再送回数が規定値以上であると判定すると、タイムアウト処理部３４はコネクションを切断してパケットの再送を終了する。再送回数が規定値以上でないと判定すると、タイムアウト処理部３４はステップＳ２３に進み、タイムアウトが発生したコネクションに対応するコネクション管理テーブル上の応答確認待ちキューにより指定される先頭のパケットのコピーを作成し、ネットワーク１４を介してサーバ１２に送信する。
【００３３】
ステップＳ２４に進み、タイムアウト処理部３４はタイムアウトが発生したコネクションに対応するコネクション管理テーブル上の再送回数に１を加え、応答待ちタイマを起動してタイムアウト発生時の処理を終了する。
【００３４】
図９は応答パケット受信時の処理手順を表した一例のフローチャートである。ステップＳ３１に進み、受信パケット処理部３２は受信したパケットの送信元ＩＰアドレス，送信元ポート番号，送信先ＩＰアドレス，送信先ポート番号からコネクション管理テーブルを検索し、受信したパケットに対応するコネクション管理テーブルを得る。
【００３５】
ステップＳ３２に進み、受信パケット処理部３２は応答確認待ちキュー３３に格納されているパケットと受信したパケットとを比較し、応答確認待ちキュー３３にあるパケットが応答されたか否かを判定する。応答確認待ちキュー３３にあるパケットが応答されていなければ、受信パケット処理部３２は応答パケット受信時の処理を終了する。
【００３６】
応答確認待ちキュー３３にあるパケットが応答されていれば、受信パケット処理部３２はステップＳ３３に進み、応答確認待ちキュー３３から応答確認が完了したパケットを削除する。
【００３７】
ステップＳ３４に進み、受信パケット処理部３２は応答確認待ちキュー３３にパケットが残っているか否かを判定する。応答確認待ちキュー３３にパケットが残っていなければ受信パケット処理部３２はステップＳ３５に進み、応答待ちタイマを停止して応答パケット受信時の処理を終了する。
【００３８】
応答確認待ちキュー３３にパケットが残っていれば受信パケット処理部３２はステップＳ３６に進み、再送回数が１回以上か否かを判定する。再送回数が１回以上でなければ受信パケット処理部３２は応答パケット受信時の処理を終了する。再送回数が１回以上であれば受信パケット処理部３２はステップＳ３７に進み、応答確認待ちキュー３３の残りの全パケットのコピーを作成して送信し、応答待ちタイマを再起動したあと、応答パケット受信時の処理を終了する。なお、図９のフローチャートに表したタイムアウト発生時の処理手順ではステップＳ３７において残りの全パケットのコピーを作成して送信している例を示しているが、再送するパケットの数を徐々に増やすようにしてもよい。
【００３９】
以上、実施例１ではパケットの消失が起こったときに、応答確認が出来ていないパケットのうち先頭のパケットを再送し、その再送の応答確認が出来たあと、応答確認が出来ていないパケットの残りを再送するため、ネットワークの負荷が小さく、新たなパケット消失の発生を抑えることができる。また、実施例１ではパケットの再送に掛かる時間が短縮されるため、再送の性能と信頼性を向上させることができる。
【実施例２】
【００４０】
実施例２では、再送したパケットのうち、一部のパケットの応答確認ができ、残りのパケットの応答確認ができなかった場合に、データ再送自体が進捗していると判断して再送回数をリセットし、再送回数を０から数え直すようにしている。なお、データ送信時の処理手順は前述した図７と同様であるため、説明を省略する。
【００４１】
再送の応答確認前にタイムアウト時間に達すると、タイムアウト処理部３４はタイムアウトが発生したと判定して図１０に示すフローチャートの処理を開始する。図１０はタイムアウト発生時の処理手順を表した一例のフローチャートである。
【００４２】
ステップＳ４１に進み、タイムアウト処理部３４はタイムアウトが発生したコネクションに対応するコネクション管理テーブル上の再送回数を調べる。続いてステップＳ４２に進み、タイムアウト処理部３４はステップＳ４１で調べた再送回数が規定値以上か否かを判定する。
【００４３】
再送回数が規定値以上であると判定すると、タイムアウト処理部３４はコネクションを切断してパケットの再送を終了する。再送回数が規定値以上でないと判定すると、タイムアウト処理部３４はステップＳ４３に進み、タイムアウトが発生したコネクションに対応するコネクション管理テーブル上の応答確認待ちキューにより指定される全パケットのコピーを作成し、ネットワーク１４を介してサーバ１２に送信する。
【００４４】
ステップＳ４４に進み、タイムアウト処理部３４はタイムアウトが発生したコネクションに対応するコネクション管理テーブル上の再送回数に１を加え、応答待ちタイマを起動してタイムアウト発生時の処理を終了する。
【００４５】
図１１は応答パケット受信時の処理手順を表した一例のフローチャートである。ステップＳ５１に進み、受信パケット処理部３２は受信したパケットの送信元ＩＰアドレス，送信元ポート番号，送信先ＩＰアドレス，送信先ポート番号からコネクション管理テーブルを検索し、受信したパケットに対応するコネクション管理テーブルを得る。
【００４６】
ステップＳ５２に進み、受信パケット処理部３２は応答確認待ちキュー３３に格納されているパケットと受信したパケットとを比較し、応答確認待ちキュー３３にあるパケットが応答されたか否かを判定する。応答確認待ちキュー３３にあるパケットが応答されていなければ、受信パケット処理部３２は応答パケット受信時の処理を終了する。
【００４７】
応答確認待ちキュー３３にあるパケットが応答されていれば、受信パケット処理部３２はステップＳ５３に進み、応答確認待ちキュー３３から応答確認が完了したパケットを削除する。
【００４８】
ステップＳ５４に進み、受信パケット処理部３２は受信したパケットに対応するコネクション管理テーブル上の再送回数を０に設定する。ステップＳ５５に進み、受信パケット処理部３２は応答確認待ちキュー３３にパケットが残っているか否かを判定する。応答確認待ちキュー３３にパケットが残っていなければ受信パケット処理部３２はステップＳ５６に進み、応答待ちタイマを停止して応答パケット受信時の処理を終了する。応答確認待ちキュー３３にパケットが残っていれば受信パケット処理部３２は応答パケット受信時の処理を終了する。
【００４９】
以上、実施例２では再送したパケットのうち、一部のパケットの応答確認ができ、残りのパケットの応答確認ができなかった場合に、データ再送自体が進捗していると判断して再送回数をリセットし、再送回数を０から数え直すようにしているため、再送が成功する可能性があるにも拘わらずコネクションを切断してしまうことが少なくなり、再送の性能と信頼性を向上させることができる。
【００５０】
本発明は、以下に記載する付記のような構成が考えられる。
（付記１）
所定のデータ伝送単位に分割された単位データを中継する中継装置であって、
単位データを所定数単位で送信する送信データ処理手段と、
送信した前記単位データのうち応答確認の出来ていない複製された前記単位データを保持する複製保持手段と、
前記単位データを再送するときに前記複製保持手段が保持している前記単位データのうち先頭の前記単位データを送信し、先頭の前記単位データの応答確認が出来たあと、前記複製保持手段が保持している前記単位データのうちの残りの前記単位データを送信するタイムアウト処理手段と
を有することを特徴とする中継装置。
（付記２）
前記単位データの再送回数を記憶する記憶手段を更に有し、
前記タイムアウト処理手段は、再送した前記単位データのうち、一部の前記単位データの応答確認ができ、残りの前記単位データの応答確認が出来なかったとき、前記記憶手段に記憶されている前記単位データの再送回数を０回にリセットすることを特徴とする付記１記載の中継装置。
（付記３）
前記タイムアウト処理手段は、応答確認ができた前記単位データを前記複製保持手段から削除することを特徴とする付記１又は２記載の中継装置。
（付記４）
前記タイムアウト処理手段は、前記単位データの再送回数が所定の回数に達すると前記複製保持手段が保持している前記単位データの再送を中止することを特徴とする付記１乃至３何れか一項記載の中継装置。
（付記５）
前記中継装置は、ネットワークからのリクエストを一元的に管理し、複数のサーバ装置に前記リクエストを分散して転送する負荷分散装置であることを特徴とする付記１乃至４何れか一項記載の中継装置。
（付記６）
所定のデータ伝送単位に分割された単位データを中継する中継装置のデータ再送方法であって、
所定数単位で送信する単位データを複製して前記複製保持手段に保持させる保持ステップと、
前記単位データを所定数単位で送信する送信データ処理ステップと、
送信した前記単位データのうち応答確認の出来ていない前記単位データを再送するときに前記複製保持手段が保持している前記単位データのうち先頭の前記単位データを送信する第１送信ステップと、
先頭の前記単位データの応答確認が出来たあと、前記複製保持手段が保持している前記単位データのうちの残りの前記単位データを送信する第２送信ステップと
を有することを特徴とするデータ再送方法。
（付記７）
前記第２送信ステップは、再送した前記単位データのうち、一部の前記単位データの応答確認ができ、残りの前記単位データの応答確認が出来なかったとき、前記単位データの再送回数を記憶する記憶手段の前記単位データの再送回数を０回にリセットすることを特徴とする付記６記載のデータ再送方法。
【００５１】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【図面の簡単な説明】
【００５２】
【図１】本発明による負荷分散装置を含むシステムの一例のシステム構成図である。
【図２】本発明による負荷分散装置を含むシステムの処理手順を示す一例のシーケンス図である。
【図３】負荷分散装置の一例のブロック構成図である。
【図４】データ送受信処理部の詳細を示すブロック構成図である。
【図５】コネクション管理テーブルの一例の構成図である。
【図６】コネクション管理テーブルキューにリンクされたコネクション管理テーブルの様子を表した一例のイメージ図である。
【図７】データ送信時の処理手順を表した一例のフローチャートである。
【図８】タイムアウト発生時の処理手順を表した一例のフローチャートである。
【図９】応答パケット受信時の処理手順を表した一例のフローチャートである。
【図１０】タイムアウト発生時の処理手順を表した一例のフローチャートである。
【図１１】応答パケット受信時の処理手順を表した一例のフローチャートである。
【符号の説明】
【００５３】
１    システム
１０    クライアント
１１    負荷分散装置
１２，１２Ａ，１２Ｂ    負荷分散装置
１３，１４    ネットワーク
２１    負荷分散処理部
２２    タイマ処理部
２３    データ送受信処理部
３１    送信データ処理部
３２    受信パケット処理部
３３    応答確認待ちキュー
３４    タイムアウト処理部
３５    コネクション管理テーブル記憶部
３６    コネクション管理テーブルキュー
【図１】
2007288428.tif 000003
【図２】
2007288428.tif 000004
【図３】
2007288428.tif 000005
【図４】
2007288428.tif 000006
【図５】
2007288428.tif 000007
【図６】
2007288428.tif 000008
【図７】
2007288428.tif 000009
【図８】
2007288428.tif 000010
【図９】
2007288428.tif 000011
【図１０】
2007288428.tif 000012
【図１１】
2007288428.tif 000013