(57)【特許請求の範囲】
【請求項１】
交換機を介してサーバとクライアントとの間でパケット通信を行なうパケット交換による通信システムにおいて、
前記交換機が、
前記サーバから前記クライアントに対して送信されるパケットの中継時に、当該パケットのヘッダ情報を、当該パケットが前記交換機から発信された場合に設定される内容に書き換えて、前記パケットを前記クライアントに対して発信し、
前記クライアントからのデータ取得要求の中継時から、前記サーバから前記クライアントに対し送信される応答のパケットの送信が終了するまでの間、当該サーバから当該クライアントへの方向に対し片方向のスプライシングの処理を行ない、かつ前記クライアントから前記サーバへの方向の通信に対して再送制御及びフロー制御を行なうことを特徴とする通信システム。
【請求項２】
前記交換機は、
各前記クライアントからの接続を受け付け、当該クライアントとの間におけるコネクションを管理しパケットを送受するクライアント側処理部と、
各前記サーバに対しアクセスし、当該サーバとの間におけるコネクションを管理しパケットを送受するサーバ側処理部と、
前記サーバから前記クライアントに対して送信されるパケットの中継時に、前記パケットのヘッダ情報の書換えを行なって、前記パケットを前記クライアントに対し発信する手段と、
前記サーバから当該クライアントへの方向に対し片方向のスプライシングの処理を行ない、かつ前記クライアントから前記クライアント側処理部への方向の通信及び前記サーバ側処理部から前記サーバへの方向の通信に対しては、確立したコネクションを切断することなく再送制御及びフロー制御を行なう手段を備えることを特徴とする請求項１に記載の通信システム。
【請求項３】
前記クライアント側処理部は、
各前記クライアントとの間のコネクションを制御し、各前記クライアントからの接続や要求を受け付けるクライアント側終端部と、
前記サーバから前記クライアントに対し送信されるパケットを、ヘッダ情報を書き換えて中継するクライアント側更新部を備え、
前記サーバ側処理部は、
各前記サーバとの間のコネクションを管理し、前記クライアント側終端部から送られる各前記サーバに対する命令やデータを中継するサーバ側終端部と、
各前記サーバから各前記クライアントに対し送信されるパケットを受け付けて、前記クライアント側更新部に送るサーバ側更新部を備えることを特徴とする請求項２に記載の通信システム。
【請求項４】
前記パケットのヘッダ情報には、
個々のパケットに分割された送信データにおける、当該パケット中のデータの順番を示すシーケンス番号と、
当該パケットのデータ長と、
通信相手が既に受信済みであるデータのシーケンス番号を示すＡｃｋ番号を含むことを特徴とする請求項３に記載の通信システム。
【請求項５】
前記パケットのヘッダ情報には、
通信相手がまだ受信していない受信バッファの残り容量を示すＷｉｎ値を含むことを特徴とする請求項４に記載の通信システム。
【請求項６】
前記クライアント側終端部は、
各前記クライアントから受け付けたパケットのヘッダ情報を、前記クライアント側更新部及び前記サーバ側終端部に通知する手段を備え、
前記サーバ側更新部は、
各前記サーバから各前記クライアントに対し送信されるパケットのヘッダ情報を前記サーバ側終端部に通知する手段を備え、
前記クライアント側更新部及び前記サーバ側終端部は、
前記通知されたヘッダ情報を記録し参照して、パケットのヘッダ情報を適正に書き換えることを特徴とする請求項２又は請求項３に記載の通信システム。
【請求項７】
前記片方向のスプライシング処理が設定された状態において、前記クライアント側終端部は、
各前記クライアントから受け付けたパケットに対する応答処理を前記クライアント側更新部に指示し、
記クライアント側更新部は、
前記応答処理の指示を受け付けて、当該クライアントに対する応答のパケットを生成して発信する手段を備えることを特徴とする請求項６に記載の通信システム。
【請求項８】
前記サーバ側更新部は、
１つの前記クライアントに対する複数の前記サーバからのパケットの送信を中継し、
中継するパケットのヘッダ情報から、個々の前記サーバにおけるパケットの送信の終了の旨を示すフラグを除去する手段を備え、
前記クライアントとの間のコネクションを切断することなく、前記複数のサーバを切り換えて発信されるパケットを前記クライアントに中継することを特徴とする請求項２から請求項７のいずれか一つに記載の通信システム。
【請求項９】
前記クライアント側終端部及び前記サーバ側終端部は、
前記クライアントから前記サーバに対して個々のパケットに分割されて送信される送信データを、元の分割する前の状態に復元し、各パケットを、サーバを選択して送信する手段を備えることを特徴とする請求項２から請求項８のいずれか一つに記載の通信システム。
【請求項１０】
各前記クライアントが接続する接続先のサーバを決定する解析部を備え、
前記解析部は、
前記クライアント側終端部から、前記クライアントが各前記サーバに対し発信する要求の情報を取得する手段と、
前記要求に基づいて、当該クライアントが接続すべき接続先のサーバを判定する手段と、
前記サーバ側終端部に対して、当該クライアントの前記判定された接続先のサーバへの接続を指示する手段を備えることを特徴とする請求項２から請求項８のいずれか一つに記載の通信システム。
【請求項１１】
前記クライアント側終端部及び前記サーバ側終端部は、
前記クライアントから前記サーバに対して、個々のパケットに分割されて送信される送信データを元の分割する前の状態に復元した後に、当該サーバに対し送信する手段を備え、
前記解析部は、
前記元の分割する前の状態に復元された送信データに基づいて、前記接続先のサーバを判定する手段を備えることを特徴とする請求項１０に記載の通信システム。
【請求項１２】
前記解析部は、
前記クライアントにより発信された未処理のデータ取得要求を、その接続先のサーバ毎に順次グループに分類する手段と、
前記サーバ側終端部に対して、分類された各前記グループ毎に、対応するサーバへの接続と当該グループに分類された前記データ取得要求の実行を指示する手段を備えることを特徴とする請求項１０又は請求項１１に記載の通信システム。
【請求項１３】
複数のサーバとクライアントとの通信ネットワークを介したパケット通信を中継する交換機において、
前記サーバから前記クライアントに対して送信されるパケットの中継時に、当該パケットのヘッダ情報を、当該パケットが交換機から発信された場合に設定される内容に書き換えて、前記パケットを前記クライアントに対して発信し、
前記クライアントからのデータ取得要求の中継時から、前記サーバから前記クライアントに対し送信される応答のパケットの送信が終了するまでの間、当該サーバから当該クライアントへの方向に対し片方向のスプライシングの処理を行ない、かつ前記クライアントから前記サーバへの方向の通信に対して再送制御及びフロー制御を行なうことを特徴とする交換機。
【請求項１４】
各前記クライアントからの接続を受け付け、当該クライアントとの間におけるコネクションを管理しパケットを送受するクライアント側処理部と、
各前記サーバに対しアクセスし、当該サーバとの間におけるコネクションを管理しパケットを送受するサーバ側処理部と、
前記サーバから前記クライアントに対して送信されるパケットの中継時に、前記パケットのヘッダ情報の書換えを行なって、前記パケットを前記クライアントに対し発信する手段と、
前記サーバから当該クライアントへの方向に対し片方向のスプライシングの処理を行ない、かつ前記クライアントから前記クライアント側処理部への方向の通信及び前記サーバ側処理部から前記サーバへの方向の通信に対しては、確立したコネクションを切断することなく再送制御及びフロー制御を行なう手段を備えることを特徴とする請求項１３に記載の交換機。
【請求項１５】
前記クライアント側処理部は、
各前記クライアントとの間のコネクションを管理し、各前記クライアントからの接続や要求を受け付けるクライアント側終端部と、
前記サーバから前記クライアントに対し送信されるパケットを、ヘッダ情報を書き換えて中継するクライアント側更新部を備え、
前記サーバ側処理部は、
各前記サーバとの間のコネクションを管理し、前記クライアント側終端部から送られる各前記サーバに対する命令やデータを中継するサーバ側終端部と、
各前記サーバから各前記クライアントに対し送信されるパケットを受け付けて、前記クライアント側更新部に送るサーバ側更新部を備えることを特徴とする請求項１４に記載の交換機。
【請求項１６】
前記パケットのヘッダ情報には、
個々のパケットに分割された送信データにおける、当該パケット中のデータの順番を示すシーケンス番号と、
当該パケットのデータ長と、
通信相手が既に受信済みであるデータのシーケンス番号を示すＡｃｋ番号を含むことを特徴とする請求項１５に記載の交換機。
【請求項１７】
前記パケットのヘッダ情報には、
通信相手がまだ受信していない受信バッファの残り容量を示すＷｉｎ値を含むことを特徴とする請求項１６に記載の交換機。
【請求項１８】
前記クライアント側終端部は、
各前記クライアントから受け付けたパケットのヘッダ情報を、前記クライアント側更新部及び前記サーバ側終端部に通知する手段を備え、
前記サーバ側更新部は、
各前記サーバから各前記クライアントに対し送信されるパケットのヘッダ情報を前記サーバ側終端部に通知する手段を備え、
前記クライアント側更新部及び前記サーバ側終端部は、
前記通知されたヘッダ情報を記録し参照して、パケットのヘッダ情報を適正に書き換えることを特徴とする請求項１４又は請求項１５に記載の交換機。
【請求項１９】
前記片方向のスプライシング処理が設定された状態において、前記クライアント側終端部は、
各前記クライアントから受け付けたパケットに対する応答処理を前記クライアント側更新部に指示し、
記クライアント側更新部は、
前記応答処理の指示を受け付けて、当該クライアントに対する応答のパケットを生成して発信する手段を備えることを特徴とする請求項１８に記載の交換機。
【請求項２０】
前記サーバ側更新部は、
１つの前記クライアントに対する複数の前記サーバからのパケットの送信を中継し、
中継するパケットのヘッダ情報から、個々の前記サーバにおけるパケットの送信の終了の旨を示すフラグを除去する手段を備え、
前記クライアントとの間のコネクションを切断することなく、前記複数のサーバを切り換えて発信されるパケットを前記クライアントに中継することを特徴とする請求項１４から請求項１９のいずれか一つに記載の交換機。
【請求項２１】
前記クライアント側終端部及び前記サーバ側終端部は、
前記クライアントから前記サーバに対して個々のパケットに分割されて送信される送信データを、元の分割する前の状態に復元し、各パケットを、サーバを選択して送信する手段を備えることを特徴とする請求項１４から請求項２０のいずれか一つに記載の交換機。
【請求項２２】
各前記クライアントが接続する接続先のサーバを決定する解析部を備え、
前記解析部は、
前記クライアント側終端部から、前記クライアントが各前記サーバに対し発信する要求の情報を取得する手段と、
前記要求に基づいて、当該クライアントが接続すべき接続先のサーバを判定する手段と、
前記サーバ側終端部に対して、当該クライアントの前記判定された接続先のサーバへの接続を指示する手段を備えることを特徴とする請求項１４から請求項２１のいずれか一つに記載の交換機。
【請求項２３】
前記クライアント側終端部及び前記サーバ側終端部は、
前記クライアントから前記サーバに対して、個々のパケットに分割されて送信される送信データを元の分割する前の状態に復元した後に、当該サーバに対し送信する手段を備え、
前記解析部は、
前記元の分割する前の状態に復元された送信データに基づいて、前記接続先のサーバを判定する手段を備えることを特徴とする請求項２２に記載の交換機。
【請求項２４】
前記解析部は、
前記クライアントにより発信された未処理のデータ取得要求を、その接続先のサーバ毎に順次グループに分類する手段と、
前記サーバ側終端部に対して、分類された各前記グループ毎に、対応するサーバへの接続と当該グループに分類された前記データ取得要求の実行を指示する手段を備えることを特徴とする請求項２２又は請求項２３に記載の交換機。
【請求項２５】
複数のサーバとクライアントとの間の、通信ネットワークを介したパケット通信を中継する交換機のパケット交換方法において、
前記サーバから前記クライアントに対して送信されるパケットの中継時に、当該パケットのヘッダ情報を、当該パケットが交換機から発信された場合に設定される内容に書き換えて、前記パケットを前記クライアントに対して発信し、
前記クライアントからのデータ取得要求の中継時から、前記サーバから前記クライアントに対し送信される応答のパケットの送信が終了するまでの間、当該サーバから当該クライアントへの方向に対し片方向のスプライシングの処理を行ない、かつ前記クライアントから前記サーバへの方向の通信に対して再送制御及びフロー制御を行なうことを特徴とするパケット交換方法。
【請求項２６】
各前記クライアントとの間のコネクションを管理し、各前記クライアントからの接続や要求を受け付けるステップと、
前記サーバから前記クライアントに対し送信されるパケットを、ヘッダ情報を書き換えて中継するステップと、
各前記サーバとの間のコネクションを管理し、前記クライアントから送られる各前記サーバに対する命令やデータを中継するステップを備え、
前記パケットのヘッダ情報には、
個々のパケットに分割された送信データにおける、当該パケット中のデータの順番を示すシーケンス番号と、
当該パケットのトランスポート層以下のデータ長と、
通信相手が既に受信済みであるデータのシーケンス番号を示すＡｃｋ番号と、通信相手がまだ受信していない受信バッファの残り容量を示すＷｉｎ値を含むことを特徴とする請求項２５に記載のパケット交換方法。
【請求項２７】
１つの前記クライアントに対する複数の前記サーバからのパケットの送信を中継し、
中継するパケットのヘッダ情報から、個々の前記サーバにおけるパケットの送信の終了の旨を示すフラグを除去するステップを備え、
前記クライアントとの間のコネクションを切断することなく、前記複数のサーバを切り換えて発信されるパケットを前記クライアントに中継することを特徴とする請求項２６に記載のパケット交換方法。
【請求項２８】
前記クライアントから前記サーバに対して個々のパケットに分割されて送信される送信データを、元の分割する前の状態に復元し、各パケットを、サーバを選択して送信するステップを備えることを特徴とする請求項２６又は請求項２７に記載のパケット交換方法。
【請求項２９】
前記クライアントが各前記サーバに対し発信する要求の情報を取得するステップと、
前記要求に基づいて、当該クライアントが接続すべき接続先のサーバを判定するステップと、
当該クライアントの前記判定された接続先のサーバへの接続を指示するステップを備えることにより、各前記クライアントが接続する接続先のサーバを決定することを特徴とする請求項２６から請求項２８のいずれか一つに記載のパケット交換方法。
【請求項３０】
前記クライアントにより発信された未処理のデータ取得要求を、その接続先のサーバ毎に順次グループに分類するステップと、
分類された各前記グループ毎に、対応するサーバへの接続と当該グループに分類された前記データ取得要求の実行を指示するステップを備えることを特徴とする請求項２９に記載のパケット交換方法。
【請求項３１】
コンピュータを制御することにより、複数のサーバとクライアントとの間の、通信ネットワークを介したパケット通信を中継する交換プログラムをコンピュータにより読み取り可能に記録した記録媒体において、
前記交換プログラムは、
前記サーバから前記クライアントに対して送信されるパケットの中継時に、当該パケットのヘッダ情報を、当該パケットが前記交換機から発信された場合に設定される内容に書き換えて、前記パケットを前記クライアントに対して発信し、
前記クライアントからのデータ取得要求の中継時から、前記サーバから前記クライアントに対し送信される応答のパケットの送信が終了するまでの間、当該サーバから当該クライアントへの方向に対し片方向のスプライシングの処理を行ない、かつ前記クライアントから前記サーバへの方向の通信に対して再送制御及びフロー制御を行なうことを特徴とする交換プログラムを記録した記録媒体。
【請求項３２】
前記交換プログラムは、
各前記クライアントとの間のコネクションを管理し、各前記クライアントからの接続や要求を受け付けるステップと、
前記サーバから前記クライアントに対し送信されるパケットを、ヘッダ情報を書き換えて中継するステップと、
各前記サーバとの間のコネクションを管理し、前記クライアントから送られる各前記サーバに対する命令やデータを中継するステップを備え、
前記パケットのヘッダ情報には、
個々のパケットに分割された送信データにおける、当該パケット中のデータの順番を示すシーケンス番号と、
当該パケットのトランスポート層以下のデータ長と、
通信相手が既に受信済みであるデータのシーケンス番号を示すＡｃｋ番号と、
通信相手がまだ受信していない受信バッファの残り容量を示すＷｉｎ値を含むことを特徴とする請求項３１に記載の交換プログラムを記録した記録媒体。
【請求項３３】
前記交換プログラムは、
１つの前記クライアントに対する複数の前記サーバからのパケットの送信を中継し、
中継するパケットのヘッダ情報から、個々の前記サーバにおけるパケットの送信の終了の旨を示すフラグを除去するステップを備え、
前記クライアントとの間のコネクションを切断することなく、前記複数のサーバを切り換えて発信されるパケットを前記クライアントに中継することを特徴とする請求項３２に記載の交換プログラムを記録した記録媒体。
【請求項３４】
前記交換プログラムは、
前記クライアントから前記サーバに対して個々のパケットに分割されて送信される送信データを、元の分割する前の状態に復元し、各パケットを、サーバを選択して送信するステップを備えることを特徴とする請求項３２又は請求項３３に記載の交換プログラムを記録した記録媒体。
【請求項３５】
前記交換プログラムは、
前記クライアントが各前記サーバに対し発信する要求の情報を取得するステップと、
前記要求に基づいて、当該クライアントが接続すべき接続先のサーバを判定するステップと、
当該クライアントの前記判定された接続先のサーバへの接続を指示するステップを備えることにより、各前記クライアントが接続する接続先のサーバを決定することを特徴とする請求項３２から請求項３４のいずれか一つに記載の交換プログラムを記録した記録媒体。
【請求項３６】
前記交換プログラムは、
前記クライアントにより発信された未処理のデータ取得要求を、その接続先のサーバ毎に順次グループに分類するステップと、
分類された各前記グループ毎に、対応するサーバへの接続と当該グループに分類された前記データ取得要求の実行を指示するステップを備えることを特徴とする請求項３５に記載の交換プログラムを記録した記録媒体。
【請求項３７】
サーバ上のコンピュータを制御することにより、交換機を介してサーバとクライアントとの間でパケット通信を行なう通信システムにおけるサーバ上で動作する交換プログラムをコンピュータにより読み取り可能に記録した記録媒体において、
前記交換プログラムは、
前記交換機における前記クライアントからのデータ取得要求の中継時から、前記クライアントに対し送信される応答のパケットの送信を終了するまでの間、片方向のスプライシングによって当該クライアントへに対し前記パケットを送信することを特徴とするサーバ上で動作する交換プログラムをコンピュータにより読み取り可能に記録した記録媒体。
【請求項３８】
クライアント上のコンピュータを制御することにより、交換機を介してサーバとクライアントとの間でパケット通信を行なう通信システムにおけるクライアント上で動作する交換プログラムをコンピュータにより読み取り可能に記録した記録媒体において、
前記交換機における前記サーバへのデータ取得要求の中継時から、前記サーバから受信される応答のパケットの送信を終了するまでの間、片方向のスプライシングによって当該サーバから前記パケットを受信することを特徴とするクライアント上で動作する交換プログラムをコンピュータにより読み取り可能に記録した記録媒体。
【請求項３９】
交換機を介してサーバとクライアントとの間でパケット通信を行なう通信システムにおけるサーバであって、
前記交換機における前記クライアントからのデータ取得要求の中継時から、前記クライアントに対し送信される応答のパケットの送信を終了するまでの間、片方向のスプライシングによって当該クライアントへに対し前記パケットを送信することを特徴とするサーバ。
【請求項４０】
当該パケットのヘッダ情報が、当該パケットが前記交換機から発信された場合に設定される内容に書き換えられた前記パケットを前記クライアントに対して発信することを特徴とする請求項３９に記載のサーバ。
【請求項４１】
前記パケットのヘッダ情報には、
個々のパケットに分割された送信データにおける、当該パケット中のデータの順番を示すシーケンス番号と、
当該パケットのデータ長と、
通信相手が既に受信済みであるデータのシーケンス番号を示すＡｃｋ番号を含むことを特徴とする請求項４０に記載のサーバ。
【請求項４２】
前記パケットのヘッダ情報には、
通信相手がまだ受信していない受信バッファの残り容量を示すＷｉｎ値を含むことを特徴とする請求項４１に記載のサーバ。
【請求項４３】
前記交換機が、１つの前記クライアントに対する複数の前記サーバからのパケットの送信を中継し、
中継するパケットのヘッダ情報から、個々の前記サーバにおけるパケットの送信の終了の旨を示すフラグが除去され、
前記クライアントとの間のコネクションを切断することなく、前記複数のサーバを切り換えて発信されるパケットを前記クライアントに中継することを特徴とする請求項４０から請求項４２のいずれか一つに記載のサーバ。
【請求項４４】
前記クライアントから個々のパケットに分割されて送信される送信データが、元の分割する前の状態に復元され、各パケットを、選択されたサーバが受信することを特徴とする請求項４０から請求項４３のいずれか一つに記載のサーバ。
【請求項４５】
各前記クライアントが接続する接続先のサーバが前記交換機により決定され、
前記クライアントが各前記サーバに対し発信する要求の情報を前記交換機で取得し、
前記要求に基づいて、当該クライアントが接続すべき接続先のサーバが判定され、
当該クライアントの前記判定された接続先のサーバへの接続が指示されることを特徴とする請求項４０から請求項４４のいずれか一つに記載のサーバ。
【請求項４６】
前記クライアントにより発信された未処理のデータ取得要求を、その接続先のサーバ毎に順次グループに分類され、
分類された各前記グループ毎に、対応するサーバへの接続と当該グループに分類された前記データ取得要求の実行が指示されることを特徴とする請求項４５に記載のサーバ。
【請求項４７】
交換機を介してサーバとクライアントとの間でパケット通信を行なう通信システムにおけるクライアントであって、
前記交換機における前記サーバへのデータ取得要求の中継時から、前記サーバから受信される応答のパケットの送信を終了するまでの間、片方向のスプライシングによって当該サーバから前記パケットを受信することを特徴とするクライアント。
【請求項４８】
当該パケットのヘッダ情報が、当該パケットが前記交換機から発信された場合に設定される内容に書き換えられた前記パケットを前記サーバから受信することを特徴とする請求項４７に記載のクライアント。
【請求項４９】
前記パケットのヘッダ情報には、
個々のパケットに分割された送信データにおける、当該パケット中のデータの順番を示すシーケンス番号と、
当該パケットのデータ長と、
通信相手が既に受信済みであるデータのシーケンス番号を示すＡｃｋ番号を含むことを特徴とする請求項４８に記載のクライアント。
【請求項５０】
前記パケットのヘッダ情報には、
通信相手がまだ受信していない受信バッファの残り容量を示すＷｉｎ値を含むことを特徴とする請求項４９に記載のクライアント。
【請求項５１】
前記交換機が、１つの前記クライアントに対する複数の前記サーバからのパケットの送信を中継し、
中継するパケットのヘッダ情報から、個々の前記サーバにおけるパケットの送信の終了の旨を示すフラグが除去され、
前記クライアントとの間のコネクションを切断することなく、前記複数のサーバを切り換えて発信されるパケットを前記クライアントに中継することを特徴とする請求項４８から請求項５０のいずれか一つに記載のクライアント。
【請求項５２】
前記クライアントから個々のパケットに分割されて送信される送信データが、元の分割する前の状態に復元され、各パケットを、選択されたサーバに送信することを特徴とする請求項４８から請求項５１のいずれか一つに記載のクライアント。
【請求項５３】
各前記クライアントが接続する接続先のサーバが前記交換機により決定され、
前記クライアントが各前記サーバに対し発信する要求の情報を前記交換機で取得し、
前記要求に基づいて、当該クライアントが接続すべき接続先のサーバが判定され、
当該クライアントの前記判定された接続先のサーバへの接続が指示されることを特徴とする請求項４８から請求項５２のいずれか一つに記載のクライアント。
【請求項５４】
前記クライアントが発信した未処理のデータ取得要求を、その接続先のサーバ毎に順次グループに分類され、
分類された各前記グループ毎に、対応するサーバへの接続と当該グループに分類された前記データ取得要求の実行が指示されることを特徴とする請求項５３に記載のクライアント。
【請求項５５】
請求項１２において，前記解析部は、
前記クライアントにより発信された未処理のデータ取得要求を、その接続先のサーバ毎に順次グループに分類する手段と、
前記サーバ側終端部に対して、分類された各前記グループ毎に、対応するサーバへの接続と当該グループに分類された前記データ取得要求の実行及び取得要求の送信後にサーバとのコネクションを切断する事を指示する手段を備えることを特徴とする請求項１０又は請求項１１に記載の通信システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、パケット交換による通信システムに関し、特に、サーバとクライアント間の通信を効率的に交換する通信システムとその交換方法に関する。
【０００２】
【従来の技術】
ＯＳＩ参照モデルのネットワークプロトコルでは、データ通信ネットワークの機能を７つの階層（Ｌａｙｅｒ）に大別しており、下位の階層から順に物理層、デタリンク層、ネットワーク層、トランスポート層、セッション層、プレゼンテーション層、アプリケーション層がある。それぞれ順に第１層（Ｌａｙｅｒ  １）、
第２層（Ｌａｙｅｒ  ２）、・・・と呼ばれることもある。
【０００３】
また、通信ネットワーク上のノードには、その通信の交換において参照するデータの階層に対応して、レイヤ２スイッチ（Ｌａｙｅｒ  ２  Ｓｗｉｔｃｈ）、レイヤ３スイッチ（Ｌａｙｅｒ  ３  Ｓｗｉｔｃｈ）、レイヤ４スイッチ（Ｌａｙｅｒ  ４  Ｓｗｉｔｃｈ）と呼ばれるもの等がある。また最近では、更に上位のアプリケーション層の情報に基づいて緻密にフローやトラフィックを制御するレイヤ７スイッチ（又、４−７層スイッチ）がある。
【０００４】
図１８は、レイヤ７スイッチである交換機１００ｂを備える従来の通信システムの構成を示すブロック図である。
【０００５】
図１８の従来の通信システムでは、複数のサーバ７０を備えるサーバ群７１及びクライアント６０は、パケット交換網のネットワーク５０で互いに接続している。パケット交換網としては、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ネットワーク等がある。
【０００６】
各クライアント６０は、ネットワーク５０を介してサーバ群７１内のサーバ７０からサービスを受ける。このサービスでは、まず、クライアント６０がサーバ７０へと双方向通信のできるトランスポート層のコネクションを確立（例えば、ＴＣＰプロトコル）し、クライアント６０からサーバ７０に取得したいデータの識別子が送られることにより、その指定されたデータがサーバ７０からクライアント６０に送られる。また、１つのコネクションで複数のデータの取得要求を出すことも可能であり、サーバ７０はその要求を受けたデータを順次クライアント６０に送る。
【０００７】
クライアント６０は、あるサーバ７０から取得したいデータを全て取得し終えた場合には、クローズ要求をサーバ７０へ送り、サーバ側にコネクションの切断を指示することができる。
【０００８】
このサービスに使われている、双方向通信を行なうトランスポート層のコネクションは、パケット内に、パケットに含まれているトランスポート層でのデータの位置を示すシーケンス番号、パケット中のデータのトランスポート層でのデータ長、通信相手に対して今までに確実に受信を終えているトランスポート層でのデータ位置を示すＡｃｋ番号が含まれている。通信両端のトランスポート層プロトコル終端部（終端部）は、このシーケンス番号とＡｃｋ番号を用いて通信途中で失われたパケットの再送制御を行なう。
【０００９】
また、通信両端でフロー制御を行なうため、通信相手に受信バッファの残り容量を示すためのフィールド（ウィンドウフィールド）を備える場合もある。以下この値を、Ｗｉｎ値と呼ぶこととする。
【００１０】
また、通信の両端において、シーケンス番号の初期値をハンドシェイクを行なって互いに通知し合う。更に、コネクションの終わりは、互いにパケットにコネクション終了を示すフラグ（終了フラグ）の立ったパケットと、その受信確認を含むパケットをやりとりすることで、コネクションの切断を行なう。このようなプロトコルの例としては、インターネットで用いられているＴＣＰプロトコルがある。
【００１１】
次に、図１８の従来の交換機１００ｂの役割と動作をより詳細に説明する。
【００１２】
図１８の交換機１００ｂは、クライアント６０に、サーバ群７１内の複数のサーバ７０を仮想的に１台のサーバとして認識させ、クライアント６０からのデータ取得要求を適切なサーバ７０へと転送し、そのサーバ７０からの応答のデータを当該クライアント６０へと転送する機能を有している。
【００１３】
クライアント６０からは、サーバ群７１は同一のネットワーク５０アドレスを備える仮想的な１台のサーバ７０（仮想サーバ）として認識されている。クライアント６０が、当該アドレスの仮想サーバと接続しようとすると、まず、クライアント６０と交換機１００ｂの間にコネクションが張られる。
【００１４】
クライアント６０は、このコネクション上にデータ取得要求（取得したいデータの識別子）を渡す。交換機１００ｂは、このコネクションを流れてきたデータ取得要求の識別子を基に適切な接続先のサーバ７０を選択する。
【００１５】
次に、交換機１００ｂは、選択したサーバ７０へコネクションを張り、コネクション上にデータ取得要求を転送する。サーバ７０は、取得要求のあったデータをこのコネクション上へ流し、交換機１００ｂはこのデータをクライアント６０へ転送する。
【００１６】
この時点で、クライアント６０と交換機１００ｂ間のコネクションと、交換機１００ｂとサーバ７０間のコネクションの２つのコネクションがあることになるが、交換機１００ｂはこのコネクションを１つにつなぎ合わせる。
【００１７】
すなわち、クライアント６０と交換機１００ｂ間、及び、交換機１００ｂとサーバ７０間の２つのトランスポート層のコネクションを１つに接続することにより、サーバ７０とクライアント６０とのそれぞれにトランスポート層の再送及びフロー制御を行なわせ、交換機１００ｂは、当該コネクションに関する再送制御やフロー制御を行なう必要がなくなる。
【００１８】
この動作を、スプライシングと呼ぶ。
【００１９】
以下、従来のレイヤ７スイッチである交換機１００ｂのスプライシングの処理を図面を参照して詳細に説明する。図１９は、従来の交換機１００ｂの構成を示すブロック図である。
【００２０】
図１９の交換機１００ｂでは、クライアント側との通信を処理するクライアント側処理部１０ｂ、サーバ側との通信を処理するサーバ側処理部２０ｂ、各クライアントの接続先を判定する解析部３０ｂ、クライアントからの個々のデータ取得要求に対応する接続先のサーバを示すフォワーディングテーブル等を記録した記憶部４０ｂを備えている。
【００２１】
また、クライアント側処理部１０ｂは、クライアント側の通信の終端を行なうクライアント側終端部１１ｂ、データの通信経路を切り替えるクライアント側切替部１３ｂ、各クライアントとのパケットの送受を行なうクライアント側通信部１４ｂを備えている。またサーバ側処理部２０ｂは、サーバ側の通信の終端を行なうサーバ側終端部２１ｂ、パケットのヘッダ情報を書き換えて更新するサーバ側更新部２２ｂ、データの通信経路を切り替えるサーバ側切替部２３ｂ、各サーバ７０とのパケットの送受を行なうサーバ側通信部１４ｂを備えている。
【００２２】
クライアント６０から交換機１００ｂへのパケットは、図１９の矢印Ａからクライアント側切替部１３ｂに届き、交換機１００ｂからクライアント６０へのパケットは図１９の矢印Ｂ、Ｃに従ってクライアント側終端部１１ｂやサーバ側更新部２２ｂからクライアント６０へと届けられる。
【００２３】
また、サーバ側から交換機１００ｂへのパケットは、図１９の矢印Ｅから切替部２３ｂに届き、交換機１００ｂからサーバ７０へのパケットは図１９の矢印Ｄ等に従ってサーバ側終端部２１ｂやサーバ側更新部２２ｂからサーバ７０へと届けられる。
【００２４】
なお、クライアント側の切替部１３ｂは、サーバ側更新部２２ｂの指示に従って矢印Ａから到着するパケットをクライアント側終端部１１ｂかサーバ側更新部２２ｂへと渡す。また、サーバ側の切替部２３ｂはサーバ側終端部２１ｂの指示に従って、矢印Ｅから到着するパケットをサーバ側更新部２２ｂ又は、サーバ側終端部２１ｂへと渡す。
【００２５】
まず、クライアント６０が仮想サーバと接続しようとすると、コネクション確立のハンドシェイクが行われるが、この時のパケットは、サーバ側更新部２２ｂがクライアント側切替部１３ｂに指示して、クライアント６０と、クライアント側終端部１１ｂの間でやりとりされ、クライアント６０とクライアント側終端部１１ｂの間にコネクションが張られる。以下この時のコネクションの、クライアント６０の初期シーケンス番号を“ＳＣ”、クライアント側処理部１０ｂの初期シーケンス番号を“ＳＵ”とし、これを記録しておく。
【００２６】
クライアント６０は、このコネクション上にデータ取得要求（取得したいデータの識別子）を渡す。クライアント側終端部１１ｂでは、トランスポート層プロトコルを処理して、このコネクション上の流れるデータを取り出して、解析部３０ｂへとこのデータ取得要求を渡す。
【００２７】
解析部３０ｂは、例えばこのデータ取得要求を基に記憶部４０ｂに記憶されたフォワーディングテーブルを参照する等の方法により、適切なサーバ７０を選択することができる。そして、解析部３０ｂは、サーバ側終端部２１ｂに対してこの選択されたサーバ７０へのコネクションを張るように指示し、サーバ側終端部２１ｂは、指示されたサーバ７０へとコネクションを張る。
【００２８】
この時、サーバ側終端部２１ｂとサーバ７０との間で、コネクション確立のためのハンドシェイクが行われる。ここで、サーバ側終端部２１ｂは、ハンドシェイクに関するパケットをサーバ側終端部２１ｂとサーバ７０との間でやりとりできるように、サーバ側切替部２３ｂに対し適正な通信の経路を指示しておく。この時のコネクションのサーバ７０の初期シーケンス番号を“ＳＳ”、サーバ側終端部２１ｂの初期シーケンス番号を“ＳＶ”とし、これを記録しておく。
【００２９】
次に、解析部３０ｂがサーバ側終端部２１ｂへと、データ取得要求を受け渡し、データ取得要求が確立されたコネクションを使ってサーバ７０へと、データ取得要求を転送する。ここで、サーバ側終端部２１ｂは、切替部２３ｂに対して以降の当該サーバ７０からの送られるパケットをサーバ側更新部２２ｂへと渡すように切り換えを指示する。
【００３０】
次に、サーバ７０から、データ取得要求に対応するデータを乗せたパケットが交換機１００ｂに到着する。このサーバ７０から送られるパケットは、切替部２３ｂによってサーバ側更新部２２ｂへと受け渡される。
【００３１】
サーバ側更新部２２ｂは、このパケットの中継時においてヘッダ情報の更新を行なう。つまり、パケットのシーケンス番号とＡｃｋ番号を書き換えて、必要があればトランスポート層プロトコルのチェックサムも正しく更新して、クライアント６０へと送出する。
【００３２】
また、これ以降の、サーバ７０から送られたパケットのシーケンス番号とＡｃｋ番号の更新は、そのパケットがクライアント側処理部１０から（つまり、この交換機１００ｂから）発信された場合のデータと同等になるように書き換えて更新する。
【００３３】
例えば、上記で述べた以外のパケットがクライアント６０から送信されていない場合には、次のように更新することができる。
【００３４】
まず、シーケンス番号については、クライアント側終端部１１ｂから受け取った、クライアント側終端部１１ｂの初期シーケンス番号“ＳＵ”とサーバ側終端部２１から受け取ったサーバ７０の初期シーケンス番号“ＳＳ”の差を加える。すなわち、“更新するシーケンス番号＝現在のシーケンス番号＋ＳＵ−ＳＳ”である。この時、シーケンス番号の最大値を超える場合の処理については、トランスポート層プロトコルにおけるシーケンス番号の加算、減算の方法に準拠する。
【００３５】
またＡｃｋ番号については、クライアント側終端部１１ｂから受け取った、クライアント６０の初期シーケンス番号“ＳＣ”とサーバ側終端部２１ｂから受け取ったサーバ側終端部２１ｂの初期シーケンス番号“ＳＶ”の差を加える。すなわち、“更新するＡｃｋ番号＝現在のＡｃｋ番号＋ＳＣ−ＳＶ”とする。
【００３６】
こうすることで、クライアント６０のトランスポート層プロトコルは、このサーバ７０からパケットをクライアント側処理部１０ｂから（つまり、この交換機１００ｂから）からやってきたパケットと見なして処理することができる。
【００３７】
同様に、これ以降クライアント６０からサーバ７０に送られるパケットは、クライアント側切替部１３ｂによってサーバ側更新部２２へと渡され、当該パケットのシーケンス番号とＡｃｋ番号を、当該パケットがサーバ側処理部２０ｂから（つまり、交換機１００ｂから）発せられたパケットと同等の値に書き換えて、送られる。すなわち、“更新するシーケンス番号＝現在のシーケンス番号＋ＳＶ−ＳＣ”、“更新するＡｃｋ番号＝現在のＡｃｋ番号＋ＳＳ−ＳＵ”と書き換えるのである。
【００３８】
このようにして、以降のサーバ７０とクライアント６０の間データの授受は、トランスポート層プロトコルを終端するクライアント側終端部１１ｂとサーバ側終端部２１ｂを経由せずに、パケット毎にシーケンス番号を書き換えるのみ処理でやりとりすることができる。
【００３９】
これが前述のコネクションスプライシングである。
【００４０】
一般に、クライアント６０からサーバ７０にはデータ取得要求のような小さなデータ量しか流れないが、サーバ７０からクライアント６０には大量にデータが流れる。例えば、ウェブサーバに対してクライアントのウェブブラウザからアクセスする場合には、サーバ７０からクライアント６０には画像データ等の大量のデータが送信されることとなる。
【００４１】
このコネクションスプライシングを行なうことによって、大量のデータを複雑なトランスポート層の終端処理（再送及びフロー制御等）をすることなく中継することが可能となり、スループットを向上することができる。
【００４２】
【発明が解決しようとする課題】
しかし、上述した従来の交換機１００ｂでは、スプライシング時においては、クライアント６０から送られるデータ取得要求を交換機１００ｂが参照することができないという問題があった。
【００４３】
また、従来の交換機１００ｂでは、最初にクライアント６０から送られてきたデータ取得要求のみに基づいて、その要求に対応するサーバ７０を決定しコネクションをスプライシングするため、コネクションスプライシング後にクライアント６０から到着するデータ取得要求を、その要求に基づいて適切なサーバ７０へと転送することができないという問題があった。
【００４４】
また、最初に送られてきたデータ取得要求に基づく、選択されたサーバ７０からクライアント６０へのデータの転送が終了した場合には、同じサーバ７０に対する他のデータ取得要求が残っている場合にも、前述のクローズ要求をサーバ７０へ送りコネクションを切断している。
【００４５】
クライアント６０は、コネクションが切断されてしまうため、サーバ７０が処理しなかった取得要求については、再びコネクション確立（Ｈａｎｄｓｈａｋｅ：ハンドシェイク）からやり直して取得する必要があり、必要なデータを取得するまでの遅延が大きくなってしまうという問題があった。
【００４６】
本発明の第１の目的は、上記従来技術の欠点を解決し、スプライシング中においても、クライアントからサーバへと送信されるデータ取得要求等のパケットを監視し、対応する終端処理を実行することのできる通信システムとそのパケット交換方法、及び交換プログラムを記録した記録媒体を提供することである。
【００４７】
本発明の第２の目的は、上記従来技術の欠点を解決し、スプライシング中においても、クライアントからサーバへと送信されるデータ取得要求等のパケットを参照し、常に適切なサーバ７０へのデータ取得要求の転送を実現し、かつサーバからクライアント側へ送信される大量のデータについては、パケット毎にシーケンス番号とＡｃｋ番号等のヘッダ情報を書き換えるのみのスプライシングによる簡素化された終端処理により、従来の交換機と同等のスループットを同時に実現する通信システムとそのパケット交換方法、及び交換プログラムを記録した記録媒体を提供することである。
【００４８】
本発明の第３の目的は、上記従来技術の欠点を解決し、クライアントからのデータ取得要求に応答して送信される全てのデータをクライアントが受け取るまで、クライアントと交換機の間で確立されたコネクションを切断せずに維持することにより、必要なデータを取得するまでの遅延を小さく保つことのできる通信システムとそのパケット交換方法、及び交換プログラムを記録した記録媒体を提供することである。
【００４９】
【課題を解決するための手段】
上記目的を達成するため本発明の通信システムは、交換機を介してサーバとクライアントとの間でパケット通信を行なうパケット交換による通信システムにおいて、前記交換機が、前記サーバから前記クライアントに対して送信されるパケットの中継時に、当該パケットのヘッダ情報を、当該パケットが前記交換機から発信された場合に設定される内容に書き換えて、前記パケットを前記クライアントに対して発信し、前記クライアントからのデータ取得要求の中継時から、前記サーバから前記クライアントに対し送信される応答のパケットの送信が終了するまでの間、当該サーバから当該クライアントへの方向に対し片方向のスプライシングの処理を行ない、かつ前記クライアントから前記サーバへの方向の通信に対して再送制御及びフロー制御を行なうことを特徴とする。
【００５０】
請求項２の本発明の通信システムは、前記交換機は、各前記クライアントからの接続を受け付け、当該クライアントとの間におけるコネクションを管理しパケットを送受するクライアント側処理部と、各前記サーバに対しアクセスし、当該サーバとの間におけるコネクションを管理しパケットを送受するサーバ側処理部と、前記サーバから前記クライアントに対して送信されるパケットの中継時に、前記パケットのヘッダ情報の書換えを行なって、前記パケットを前記クライアントに対し発信する手段と、前記サーバから当該クライアントへの方向に対し片方向のスプライシングの処理を行ない、かつ前記クライアントから前記クライアント側処理部への方向の通信及び前記サーバ側処理部から前記サーバへの方向の通信に対しては、確立したコネクションを切断することなく再送制御及びフロー制御を行なう手段を備えることを特徴とする。
【００５１】
請求項３の本発明の通信システムは、前記クライアント側処理部は、各前記クライアントとの間のコネクションを制御し、各前記クライアントからの接続や要求を受け付けるクライアント側終端部と、前記サーバから前記クライアントに対し送信されるパケットを、ヘッダ情報を書き換えて中継するクライアント側更新部を備え、前記サーバ側処理部は、各前記サーバとの間のコネクションを管理し、前記クライアント側終端部から送られる各前記サーバに対する命令やデータを中継するサーバ側終端部と、各前記サーバから各前記クライアントに対し送信されるパケットを受け付けて、前記クライアント側更新部に送るサーバ側更新部を備えることを特徴とする。
【００５２】
請求項４の本発明の通信システムは、前記パケットのヘッダ情報には、個々のパケットに分割された送信データにおける、当該パケット中のデータの順番を示すシーケンス番号と、当該パケットのデータ長と、通信相手が既に受信済みであるデータのシーケンス番号を示すＡｃｋ番号を含むことを特徴とする。
【００５３】
請求項５の本発明の通信システムは、前記パケットのヘッダ情報には、通信相手がまだ受信していない受信バッファの残り容量を示すＷｉｎ値を含むことを特徴とする。
【００５４】
請求項６の本発明の通信システムは、前記クライアント側終端部は、各前記クライアントから受け付けたパケットのヘッダ情報を、前記クライアント側更新部及び前記サーバ側終端部に通知する手段を備え、前記サーバ側更新部は、各前記サーバから各前記クライアントに対し送信されるパケットのヘッダ情報を前記サーバ側終端部に通知する手段を備え、前記クライアント側更新部及び前記サーバ側終端部は、前記通知されたヘッダ情報を記録し参照して、パケットのヘッダ情報を適正に書き換えることを特徴とする。
【００５５】
請求項７の本発明の通信システムは、前記片方向のスプライシング処理が設定された状態において、前記クライアント側終端部は、各前記クライアントから受け付けたパケットに対する応答処理を前記クライアント側更新部に指示し、記クライアント側更新部は、前記応答処理の指示を受け付けて、当該クライアントに対する応答のパケットを生成して発信する手段を備えることを特徴とする。
【００５６】
請求項８の本発明の通信システムは、前記サーバ側更新部は、１つの前記クライアントに対する複数の前記サーバからのパケットの送信を中継し、中継するパケットのヘッダ情報から、個々の前記サーバにおけるパケットの送信の終了の旨を示すフラグを除去する手段を備え、前記クライアントとの間のコネクションを切断することなく、前記複数のサーバを切り換えて発信されるパケットを前記クライアントに中継することを特徴とする。
【００５７】
請求項９の本発明の通信システムは、前記クライアント側終端部及び前記サーバ側終端部は、前記クライアントから前記サーバに対して個々のパケットに分割されて送信される送信データを、元の分割する前の状態に復元し、各パケットを、サーバを選択して送信する手段を備えることを特徴とする。
【００５８】
請求項１０の本発明の通信システムは、各前記クライアントが接続する接続先のサーバを決定する解析部を備え、前記解析部は、前記クライアント側終端部から、前記クライアントが各前記サーバに対し発信する要求の情報を取得する手段と、前記要求に基づいて、当該クライアントが接続すべき接続先のサーバを判定する手段と、前記サーバ側終端部に対して、当該クライアントの前記判定された接続先のサーバへの接続を指示する手段を備えることを特徴とする。
【００５９】
請求項１１の本発明の通信システムは、前記クライアント側終端部及び前記サーバ側終端部は、前記クライアントから前記サーバに対して、個々のパケットに分割されて送信される送信データを元の分割する前の状態に復元した後に、当該サーバに対し送信する手段を備え、前記解析部は、前記元の分割する前の状態に復元された送信データに基づいて、前記接続先のサーバを判定する手段を備えることを特徴とする。
【００６０】
請求項１２の本発明の通信システムは、前記解析部は、前記クライアントにより発信された未処理のデータ取得要求を、その接続先のサーバ毎に順次グループに分類する手段と、前記サーバ側終端部に対して、分類された各前記グループ毎に、対応するサーバへの接続と当該グループに分類された前記データ取得要求の実行を指示する手段を備えることを特徴とする。
【００６１】
請求項１３の本発明の交換機は、複数のサーバとクライアントとの通信ネットワークを介したパケット通信を中継する交換機において、前記サーバから前記クライアントに対して送信されるパケットの中継時に、当該パケットのヘッダ情報を、当該パケットが交換機から発信された場合に設定される内容に書き換えて、前記パケットを前記クライアントに対して発信し、前記クライアントからのデータ取得要求の中継時から、前記サーバから前記クライアントに対し送信される応答のパケットの送信が終了するまでの間、当該サーバから当該クライアントへの方向に対し片方向のスプライシングの処理を行ない、かつ前記クライアントから前記サーバへの方向の通信に対して再送制御及びフロー制御を行なうことを特徴とする。
【００６２】
請求項１４の本発明の交換機は、各前記クライアントからの接続を受け付け、当該クライアントとの間におけるコネクションを管理しパケットを送受するクライアント側処理部と、各前記サーバに対しアクセスし、当該サーバとの間におけるコネクションを管理しパケットを送受するサーバ側処理部と、前記サーバから前記クライアントに対して送信されるパケットの中継時に、前記パケットのヘッダ情報の書換えを行なって、前記パケットを前記クライアントに対し発信する手段と、前記サーバから当該クライアントへの方向に対し片方向のスプライシングの処理を行ない、かつ前記クライアントから前記クライアント側処理部への方向の通信及び前記サーバ側処理部から前記サーバへの方向の通信に対しては、確立したコネクションを切断することなく再送制御及びフロー制御を行なう手段を備えることを特徴とする。
【００６３】
請求項１５の本発明の交換機は、前記クライアント側処理部は、各前記クライアントとの間のコネクションを管理し、各前記クライアントからの接続や要求を受け付けるクライアント側終端部と、前記サーバから前記クライアントに対し送信されるパケットを、ヘッダ情報を書き換えて中継するクライアント側更新部を備え、前記サーバ側処理部は、各前記サーバとの間のコネクションを管理し、前記クライアント側終端部から送られる各前記サーバに対する命令やデータを中継するサーバ側終端部と、各前記サーバから各前記クライアントに対し送信されるパケットを受け付けて、前記クライアント側更新部に送るサーバ側更新部を備えることを特徴とする。
【００６４】
請求項１６の本発明の交換機は、前記パケットのヘッダ情報には、個々のパケットに分割された送信データにおける、当該パケット中のデータの順番を示すシーケンス番号と、当該パケットのデータ長と、通信相手が既に受信済みであるデータのシーケンス番号を示すＡｃｋ番号を含むことを特徴とする。
【００６５】
請求項１７の本発明の交換機は、前記パケットのヘッダ情報には、通信相手がまだ受信していない受信バッファの残り容量を示すＷｉｎ値を含むことを特徴とする。
【００６６】
請求項１８の本発明の交換機は、前記クライアント側終端部は、各前記クライアントから受け付けたパケットのヘッダ情報を、前記クライアント側更新部及び前記サーバ側終端部に通知する手段を備え、前記サーバ側更新部は、各前記サーバから各前記クライアントに対し送信されるパケットのヘッダ情報を前記サーバ側終端部に通知する手段を備え、前記クライアント側更新部及び前記サーバ側終端部は、前記通知されたヘッダ情報を記録し参照して、パケットのヘッダ情報を適正に書き換えることを特徴とする。
【００６７】
請求項１９の本発明の交換機は、前記片方向のスプライシング処理が設定された状態において、前記クライアント側終端部は、各前記クライアントから受け付けたパケットに対する応答処理を前記クライアント側更新部に指示し、記クライアント側更新部は、前記応答処理の指示を受け付けて、当該クライアントに対する応答のパケットを生成して発信する手段を備えることを特徴とする。
【００６８】
請求項２０の本発明の交換機は、前記サーバ側更新部は、１つの前記クライアントに対する複数の前記サーバからのパケットの送信を中継し、中継するパケットのヘッダ情報から、個々の前記サーバにおけるパケットの送信の終了の旨を示すフラグを除去する手段を備え、前記クライアントとの間のコネクションを切断することなく、前記複数のサーバを切り換えて発信されるパケットを前記クライアントに中継することを特徴とする。
【００６９】
請求項２１の本発明の交換機は、前記クライアント側終端部及び前記サーバ側終端部は、前記クライアントから前記サーバに対して個々のパケットに分割されて送信される送信データを、元の分割する前の状態に復元し、各パケットを、サーバを選択して送信する手段を備えることを特徴とする。
【００７０】
請求項２２の本発明の交換機は、各前記クライアントが接続する接続先のサーバを決定する解析部を備え、前記解析部は、前記クライアント側終端部から、前記クライアントが各前記サーバに対し発信する要求の情報を取得する手段と、前記要求に基づいて、当該クライアントが接続すべき接続先のサーバを判定する手段と、前記サーバ側終端部に対して、当該クライアントの前記判定された接続先のサーバへの接続を指示する手段を備えることを特徴とする。
【００７１】
請求項２３の本発明の交換機は、前記クライアント側終端部及び前記サーバ側終端部は、前記クライアントから前記サーバに対して、個々のパケットに分割されて送信される送信データを元の分割する前の状態に復元した後に、当該サーバに対し送信する手段を備え、前記解析部は、前記元の分割する前の状態に復元された送信データに基づいて、前記接続先のサーバを判定する手段を備えることを特徴とする。
【００７２】
請求項２４の本発明の交換機は、前記解析部は、前記クライアントにより発信された未処理のデータ取得要求を、その接続先のサーバ毎に順次グループに分類する手段と、前記サーバ側終端部に対して、分類された各前記グループ毎に、対応するサーバへの接続と当該グループに分類された前記データ取得要求の実行を指示する手段を備えることを特徴とする。
【００７３】
請求項２５の本発明のパケット交換方法は、複数のサーバとクライアントとの間の、通信ネットワークを介したパケット通信を中継する交換機のパケット交換方法において、前記サーバから前記クライアントに対して送信されるパケットの中継時に、当該パケットのヘッダ情報を、当該パケットが交換機から発信された場合に設定される内容に書き換えて、前記パケットを前記クライアントに対して発信し、前記クライアントからのデータ取得要求の中継時から、前記サーバから前記クライアントに対し送信される応答のパケットの送信が終了するまでの間、当該サーバから当該クライアントへの方向に対し片方向のスプライシングの処理を行ない、かつ前記クライアントから前記サーバへの方向の通信に対して再送制御及びフロー制御を行なうことを特徴とする。
【００７４】
請求項２６の本発明のパケット交換方法は、各前記クライアントとの間のコネクションを管理し、各前記クライアントからの接続や要求を受け付けるステップと、前記サーバから前記クライアントに対し送信されるパケットを、ヘッダ情報を書き換えて中継するステップと、各前記サーバとの間のコネクションを管理し、前記クライアントから送られる各前記サーバに対する命令やデータを中継するステップを備え、前記パケットのヘッダ情報には、個々のパケットに分割された送信データにおける、当該パケット中のデータの順番を示すシーケンス番号と、当該パケットのトランスポート層以下のデータ長と、通信相手が既に受信済みであるデータのシーケンス番号を示すＡｃｋ番号と、通信相手がまだ受信していない受信バッファの残り容量を示すＷｉｎ値を含むことを特徴とする。
【００７５】
請求項２７の本発明のパケット交換方法は、１つの前記クライアントに対する複数の前記サーバからのパケットの送信を中継し、中継するパケットのヘッダ情報から、個々の前記サーバにおけるパケットの送信の終了の旨を示すフラグを除去するステップを備え、前記クライアントとの間のコネクションを切断することなく、前記複数のサーバを切り換えて発信されるパケットを前記クライアントに中継することを特徴とする。
【００７６】
請求項２８の本発明のパケット交換方法は、前記クライアントから前記サーバに対して個々のパケットに分割されて送信される送信データを、元の分割する前の状態に復元し、各パケットを、サーバを選択して送信するステップを備えることを特徴とする。
【００７７】
請求項２９の本発明のパケット交換方法は、前記クライアントが各前記サーバに対し発信する要求の情報を取得するステップと、前記要求に基づいて、当該クライアントが接続すべき接続先のサーバを判定するステップと、当該クライアントの前記判定された接続先のサーバへの接続を指示するステップを備えることにより、各前記クライアントが接続する接続先のサーバを決定することを特徴とする。
【００７８】
請求項３０の本発明のパケット交換方法は、前記クライアントにより発信された未処理のデータ取得要求を、その接続先のサーバ毎に順次グループに分類するステップと、分類された各前記グループ毎に、対応するサーバへの接続と当該グループに分類された前記データ取得要求の実行を指示するステップを備えることを特徴とする。
【００７９】
請求項３１の本発明の交換プログラムを記録した記録媒体は、コンピュータを制御することにより、複数のサーバとクライアントとの間の、通信ネットワークを介したパケット通信を中継する交換プログラムをコンピュータにより読み取り可能に記録した記録媒体において、前記交換プログラムは、前記サーバから前記クライアントに対して送信されるパケットの中継時に、当該パケットのヘッダ情報を、当該パケットが前記交換機から発信された場合に設定される内容に書き換えて、前記パケットを前記クライアントに対して発信し、前記クライアントからのデータ取得要求の中継時から、前記サーバから前記クライアントに対し送信される応答のパケットの送信が終了するまでの間、当該サーバから当該クライアントへの方向に対し片方向のスプライシングの処理を行ない、かつ前記クライアントから前記サーバへの方向の通信に対して再送制御及びフロー制御を行なうことを特徴とする。
【００８０】
請求項３７の本発明のサーバは、交換機を介してサーバとクライアントとの間でパケット通信を行なう通信システムにおけるサーバであって、前記交換機における前記クライアントからのデータ取得要求の中継時から、前記クライアントに対し送信される応答のパケットの送信を終了するまでの間、片方向のスプライシングによって当該クライアントへに対し前記パケットを送信することを特徴とする。
【００８１】
請求項４５の本発明のクライアントは、交換機を介してサーバとクライアントとの間でパケット通信を行なう通信システムにおけるクライアントであって、前記交換機における前記サーバへのデータ取得要求の中継時から、前記サーバから受信される応答のパケットの送信を終了するまでの間、片方向のスプライシングによって当該サーバから前記パケットを受信することを特徴とする。
【００８２】
請求項５５の本発明の通信システムは、前記解析部は、前記クライアントにより発信された未処理のデータ取得要求を、その接続先のサーバ毎に順次グループに分類する手段と、前記サーバ側終端部に対して、分類された各前記グループ毎に、対応するサーバへの接続と当該グループに分類された前記データ取得要求の実行及び取得要求の送信後にサーバとのコネクションを切断する事を指示する手段を備えることを特徴とする。
【００８３】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【００８４】
まず、通信ネットワークを介しサーバとクライアントとの間でパケット通信を行なう本実施の形態による通信システムの概念について、図１を参照して説明する。図１において、１００は複数のサーバの通信ネットワークへの接続を中継する本発明による片方向終端交換機、６０はクライアント、７０はサーバである。
【００８５】
本発明においては、大量のデータが転送されることの多い、サーバ７０からクライアント６０への方向の通信のみ対してスプライシングを行ない、同時にクライアント６０からサーバ７０への方向の通信に対しては、再送制御やフロー制御等の終端処理を実行する。
【００８６】
従来では、クライアント６０と交換機１００ｂ間及び交換機１００ｂとサーバ７０間のコネクションの２つのコネクションを、クライアント６０サーバ７０間の１つのコネクションにスプライシングを行ない、交換機１００ｂでは、再送やフロー制御等の終端処理を行なうことができなかったのに対して、本本発明の片方向終端交換機１００では、クライアント６０とサーバ７０との間を両方向共に単一のＴＣＰコネクションにするのではなく、サーバ７０からクライアント６０方向に流れるデータに対してのみ、スプライシング処理によるパケットのシーケンス番号やＡｃｋ番号の書き換えのみを行なって、サーバ７０やクライアント６０自身にその再送制御及びフロー制御を行なわせるものである。
【００８７】
ここで、クライアント６０から片方向終端交換機１００へのトランスポート層のコネクションにおいては、片方向終端交換機１００は、クライアント６０に対して、クライアント６０から片方向終端交換機１００方向へ流れるデータの再送制御及びフロー制御を行なって終端する。更に、交換機１００とサーバ７０間のコネクションも、片方向終端交換機１００は、サーバ７０に対して、片方向終端交換機１００からサーバ７０方向へ流れるデータの再送制御及びフロー制御を行なって終端する。
【００８８】
図２は、本発明の第１の実施の形態の片方向終端交換機１００を用いたネットワーク構成の一例を示すブロック図である。
【００８９】
本実施の形態では、図１８の例に示される従来技術と比べて、従来の交換機１００ｂの代わりに、片方向のみのスプライシングを行なう片方向終端交換機１００を備える点がその特徴である。
【００９０】
従来の交換機１００ｂではクライアント６０とサーバ７０との間の両方向の通信のそれぞれに、通信の終端を行なう状態とスプライシングの状態とを同時に同一の状態を設定することしかできなかったが、本実施の形態の片方向終端交換機１００では、大量のデータが転送されることの多い、サーバ７０からクライアント６０への方向の通信のみ対してスプライシングを行ない、同時にクライアント６０からサーバ７０への方向の通信に対しては、再送制御やフロー制御等の終端処理を実行するのである。
【００９１】
図２のサーバ群７１内の各サーバ７０及びクライアント６０の役割は、図１８を用いて説明した従来技術のものと同様である。またこれらが、パケット交換網のネットワーク５０で互いに接続されている点も同様である。更に、図２のサーバ群７１の各サーバ７０が提供するサービスも、従来技術と同じくトランスポート層プロトコルのコネクションを用いて接続され、パケット内には、パケットに含まれているトランスポート層でのデータの位置を示すシーケンス番号、パケット中のデータのトランスポート層でのデータ長、また、通信相手に対して、今までの中で確実に受信を終えたているトランスポート層でのデータ位置を示すＡｃｋ番号をヘッダ情報として含むものとする。また、コネクション確立や終了の方法も全く同様とする。
【００９２】
本実施の形態の片方向終端交換機１００の機能は、従来の交換機１００ｂとスプライシングの方法において相違する。
【００９３】
従来は、クライアント６０と交換機１００ｂ間及び交換機１００ｂとサーバ７０間のコネクションの２つのコネクションを、クライアント６０サーバ７０間の１つのコネクションにスプライシングするのであり、この場合交換機１００ｂでは、再送やフロー制御等の終端処理を行なうことができない。
【００９４】
しかし、本実施の形態の片方向終端交換機１００においては、クライアント６０とサーバ７０との間を両方向共に単一のＴＣＰコネクションにするのではなく、サーバ７０からクライアント６０方向に流れるデータに対してのみ、従来のスプライシングのようにパケットのシーケンス番号やＡｃｋ番号の書き換えのみを行なって、サーバ７０やクライアント６０自身にその再送制御及びフロー制御を行わせる。
【００９５】
ここで、クライアント６０から片方向終端交換機１００へのトランスポート層のコネクションにおいては、片方向終端交換機１００は、クライアント６０に対して、クライアント６０から片方向終端交換機１００方向へ流れるデータの再送制御及びフロー制御を行なって終端する。更に、交換機１００とサーバ７０間のコネクションも、片方向終端交換機１００は、サーバ７０に対して、片方向終端交換機１００からサーバ７０方向へ流れるデータの再送制御及びフロー制御を行なって終端することが従来と異なる。
【００９６】
以下この本発明のスプライシングの方法を、片方向スプライシングと呼ぶ。
【００９７】
図３は、本発明の第１の実施の形態の片方向終端交換機１００の構成を示すブロック図である。
【００９８】
図３を参照すると、本実施の形態の片方向終端交換機１００は、クライアント側との通信を処理するクライアント側処理部１０、サーバ側との通信を処理するサーバ側処理部２０、アプリケーション層の通信データを解析し又各クライアントの接続先を判定する解析部３０、クライアントからの個々のデータ取得要求に対応する接続先のサーバを示すフォワーディングテーブル等を記録した記憶部４０を備えている。
【００９９】
また、クライアント側処理部１０は、クライアント側の通信の終端を行なう終端部１１、パケットのヘッダ情報の書き換えて更新する更新部１２、各クライアントとのパケットの送受を行なう通信部１４を備えている。またサーバ側処理部２０は、サーバ側の通信の終端を行なう終端部２１、パケットのヘッダ情報を書き換えて更新する更新部２２、データの通信経路を切り替える切替部２３、各サーバ７０とのパケットの送受を行なう通信部２４を備えている。
【０１００】
まず、本実施の形態の交換機１００の各構成要素の機能を概説する。
【０１０１】
クライアント側終端部１１
クライアント側終端部１１は、クライアント６０とのトランスポート層でのコネクションの確立を行ない、クライアント６０との間でトランスポート層での再送制御やフロー制御を含むデータの受け取りを行なう。
【０１０２】
コネクションが確立した場合には、そのクライアント６０のＷｉｎ値（受信バッファの残り容量）をサーバ側終端部２１へ通知する。
【０１０３】
片方向スプライシング状態では、クライアント６０からのパケットの受け取り確認の応答（肯定応答、Ａｃｋｎｏｗｌｅｄｇｅ：Ａｃｋ）については、クライアント側終端部１１が行なうのではなく、クライアント側更新部１２に対して、Ａｃｋ番号及びフロー制御用のＷｉｎ値を通知して応答の送信を依頼する。また、片方向スプライシング状態では、クライアント６０からデータを受け取ると、クライアント６０からのパケットのＡｃｋ番号、Ｗｉｎ値をサーバ側終端部２１に受け渡して、サーバ７０に対する応答（Ａｃｋ）の送信依頼を行なう。また、クライアント側更新部１２から、現在のＡｃｋ番号及びＷｉｎ値の問い合わせにも回答する
【０１０４】
片方向スプライシング状態への移行は、サーバ側更新部２２から通知される。
【０１０５】
更に、クライアント６０からコネクション切断要求を示す終了フラグ付きパケットが到着すれば、クライアント６０とクライアント側処理部１０との間の双方向のコネクションの内で、クライアント６０からクライアント側処理部１０へ向かう側のコネクションについてのトランスポート層の切断処理を行なう。更にこの場合には、サーバ側終端部２１へ、クライアント６０からクライアント側処理部１０へ向かう側のコネクションが切断されたことを通知する。
【０１０６】
クライアント側処理部１０からクライアント６０に向かう方向のコネクションについては、サーバ７０から到着する終了フラグ付きパケットの中のデータの最終シーケンス番号をサーバ側更新部２２が通知するので、この最終シーケンス番号“Ｆ”を“更新Ｆ＝Ｆ−ＳＳ＋ＳＵ”のように更新する。そして以後これと同じＡｃｋ番号が到着した場合には、これによりコネクションが切断されたことを認識し（つまり、終了フラグ付きパケットの送信と、それに対する肯定応答のパケットが到着したとして）、クライアント側処理部１０からクライアント６０へ向かうコネクションのトランスポート層の切断処理を行なう。ここで、“ＳＳ”は、サーバ７０の初期シーケンス番号であり、“ＳＵ”は、クライアント側処理部１０の初期シーケンス番号であり、詳細は後述する。
【０１０７】
クライアント側更新部１２
サーバ７０からクライアント６０へ送信されるパケットを、サーバ側更新部２２から受け取り、そのパケットのシーケンス番号やＡｃｋ番号、Ｗｉｎ値等のヘッダ情報を書き換えて、その更新したパケットをクライアント６０に送信する。
【０１０８】
シーケンス番号は、“シーケンス番号：＝パケットのシーケンス番号−ＳＳ＋ＳＵ”により書き換えることができる。ここで、“ＳＳ”は、サーバ側処理部２０とサーバ７０とのコネクションの（サーバ７０の）初期シーケンス番号。“ＳＵ”は、クライアント側処理部１０とクライアント６０とのコネクションの（クライアント側処理部１０の）初期シーケンス番号である。これらの値は、それぞれクライアント側終端部１１及びサーバ側終端部２１から得る。
【０１０９】
また、シーケンス番号の加減算については、シーケンス番号の最大値を超えたり最小値を下回る場合の処理は、当該トランスポートプロトコルのシーケンス番号の加減算の扱いに準拠するものとする。
【０１１０】
Ａｃｋ番号とＷｉｎ値においては、それぞれクライアント側処理部１０からクライアント６０に対して現時点で新規のパケットが送信された場合に返される最新のＡｃｋ番号とＷｉｎ値に書き換える。これら最新のＡｃｋ番号とＷｉｎ値は、クライアント側終端部１１から取得することができる。
【０１１１】
また、必要であれば、トランスポート層プロトコルのチェックサムも正しく更新する。
【０１１２】
また、クライアント側終端部１１から、クライアント６０に対する応答（Ａｃｋ）の送信依頼を受け取った時にも、Ａｃｋ番号、Ｗｉｎ値は上記の通りに、シーケンス番号については、一番最近に使用したシーケンス番号を使って応答パケットを生成し送信する。
【０１１３】
クライアント側更新部１２には、クライアント６０にサーバ７０から送られるパケットが順次サーバ側更新部２２から送られるのであり、その送られたパケットのシーケンス番号の書き換え後の値を順次記録する。上記の一番最近に使用したシーケンス番号とは、この書き換え後のシーケンス番号の最新のものを指す。また、シーケンス番号の初期値とは、片方向スプライシング状態になると同時にサーバ側更新部２２からパケットが到着するので、このパケット対する書き換えたシーケンス番号を初期値とする。
【０１１４】
また、クライアント側終端部１１から送信依頼されるクライアント６０への応答（Ａｃｋ）のパケットは、送信を少し待たせて、サーバ側更新部２２からのパケットと併せて１つのパケットとして送信する方法も可能である。
【０１１５】
解析部３０
クライアント６０から発信されたデータ取得要求（複数でもよい）の情報をクライアント側終端部１１から取得し、アプリケーション層の終端を行ないその情報を解析し、適切な接続先のサーバ７０を決定する。接続先の決定の方法としては、例えば、クライアント６０から要求される個々のデータに対応して、当該データを提供するサーバ７０名を記録したテーブル（以下、このテーブルをフォワーディングテーブルと呼ぶこととする）を予め備え、このフォワーディングテーブルを検索する等の方法により決定することができる。
【０１１６】
また、この接続先のサーバ７０を決定すると、そのデータ取得要求と接続先のサーバ７０名をサーバ側終端部２１に受け渡し、接続を指示する。
【０１１７】
記憶部４０
解析部３０が適切なサーバ７０を選択するための情報を記憶する。例えば、記憶部４０には、上記のフォワーディングテーブルを記録することにより、解析部３０からの検索要求に応答して適切なサーバ７０名を返すことができる。
【０１１８】
サーバ側終端部２１
解析部３０から指示される接続先のサーバ７０名に従い、その接続先のサーバ７０にトランスポート層のコネクションを確立する。
【０１１９】
このコネクションの確立時には、クライアント側終端部１１から通知されたＷｉｎ値（受信バッファの残り）を、サーバ側処理部２０のＷｉｎ値の初期値として登録し使用する。
【０１２０】
このサーバ７０とのコネクションの確立時には、サーバ７０から送られるパケットをサーバ側終端部２１が受け取るように、切替部２３に接続の切り換えを予め指示する。
【０１２１】
サーバ側終端部２１は、このコネクションが確立すると、データ取得要求を確立したトランスポート層コネクションを用いてサーバ７０に送る。続いて切替部２３へ指示して、サーバ７０から送られるこのコネクションに関するパケットを、以後はサーバ側更新部２２が受け取るように切り換えを行なう。これ以降は、片方向スプライシング状態となる。
【０１２２】
またこれ以降は、サーバ７０から送られたパケットのＡｃｋ番号とＷｉｎ値が順次サーバ側更新部２２から通知されるようになり、これらの値を使って、サーバ７０へ送るトランスポート層のデータ（データ取得要求等）についての、再送制御及び、フロー制御を行なう。
【０１２３】
またこれ以降は、クライアント６０が当該パケットの受信確認の応答（Ａｃｋ）のパケットを順次発信し、クライアント側終端部１１がこれを受信してその各パケットのＡｃｋ番号及びＷｉｎ値が順次サーバ側終端部２１に通知される。サーバ側終端部２１では、通知されたＡｃｋ番号を“Ａｃｋ番号：＝クライアント側終端部１１から通知されたＡｃｋ番号−ＳＵ＋ＳＳ”として更新し、またＷｉｎ値は通知された値をそのまま用いて、サーバ７０に対する当該パケットの受信確認の応答（Ａｃｋ）のパケットを生成し、これをサーバ７０に送信する。
【０１２４】
ここで“ＳＵ”は、クライアント６０とクライアント側処理部１０の間のコネクションの、クライアント側処理部１０の初期シーケンス番号であり、“ＳＳ”は、サーバ側処理部２０とサーバ７０とのコネクションの、サーバ７０側の初期シーケンス番号である。この“ＳＵ”の値は、クライアント側終端部１１から通知される。
【０１２５】
また、シーケンス番号の加減算においては、シーケンス番号の最大値を超えたり最小値を下回る場合の処理は、当該トランスポートプロトコルのシーケンス番号の加減算の扱いに準拠するものとする。
【０１２６】
更に、クライアント６０からコネクションの切断要求が発信されると、クライアント側終端部１１がこれを受信して、サーバ側終端部２１に通知される。サーバ側終端部２１では、クライアント６０とサーバ７０間の双方向のコネクションの内で、サーバ側処理部２０からサーバ７０へ向かうコネクションが切断されたものとして（終了フラグ付きパケットをサーバ７０へ送ったものとして）、切断処理を行なう。またこの場合に、クライアント６０からクライアント側処理部１０へ向かうコネクションの切断処理は、クライアント側終端部１１により行われる。
【０１２７】
更に、サーバ７０からクライアント６０に向かうコネクションについては、サーバ側終端部２１は、サーバ側更新部２２から、サーバ７０から到着する終了フラグ付きパケットの中のデータの最終シーケンス番号の通知を受けて、この最終シーケンス番号“Ｆ”を、“更新Ｆ＝Ｆ−ＳＳ＋ＳＵ”として更新して記録しておく。もし、この更新された最終シーケンス番号と同じＡｃｋ番号が到着した場合には、コネクションは切断されたものとして（終了フラグ付きパケット及び、それに対するＡｃｋパケットが到着したものとして）、サーバ７０から交換機１００を介してクライアント６０へ向かうコネクションのトランスポート層の切断処理をする。
【０１２８】
サーバ側更新部２２
サーバ側更新部２２は、サーバ７０からクライアント６０に送信されるパケットを、サーバ７０から受け付けてクライアント側更新部１２に送る。また、サーバ側更新部２２は、サーバ７０からパケットを受信する度に、そのパケットのＡｃｋ番号及びＷｉｎ値をサーバ側終端部２１へ通知する。
【０１２９】
受信したパケットのトランスポート層データの長さが“０”の場合には、クライアント側更新部１２へ送らずにそのパケットを破棄する。また、“０”でない場合には、パケットをクライアント側更新部１２へと受け渡す。
【０１３０】
また、当該コネクションの確立後における“０”でないパケットの初めての受信時には、そのパケットをクライアント側更新部１２へ受け渡すと同時に、クライアント側終端部１１に対して片方向スプライシングの開始の指示を出す。
【０１３１】
また、サーバ７０から終了フラグ付きのパケットを受信した場合には、そのパケット内のデータの最終シーケンス番号“Ｆ”を、サーバ側終端部２１及びクライアント側終端部１１へ渡す。
【０１３２】
次に、本実施の形態の交換機１００の各構成要素の動作を説明する。
【０１３３】
図４は、本実施の形態のクライアント側終端部１１の動作を説明するためのフローチャートである。
【０１３４】
図４を参照すると、本実施の形態のクライアント側終端部１１は、まずクライアント６０からパケットを受信し（ステップ３０１）、もしそれがコネクション確立に関する一連のパケットの場合には（ステップ３０２）、クライアント６０とのトランスポート層でのコネクションの確立を行ない（ステップ３０３）、クライアント６０の初期シーケンス番号“ＳＣ”及び、クライアント側処理部１０の初期シーケンス番号“ＳＵ”を記憶し（ステップ３０４）、クライアント６０に応答（Ａｃｋ）を返して、クライアント６０との間でトランスポート層での再送制御やフロー制御を含むデータの受け取りを行なう（ステップ３０５）。
【０１３５】
コネクション確立後、後に述べる、片方向スプライシング状態になるまでは（ステップ３０６）、クライアント６０に応答（Ａｃｋ）を返して、クライアント６０との間でトランスポート層での再送制御やフロー制御を含むデータの受け取りを行なう（ステップ３０７）。またサーバ側終端部２１には、この時のクライアント６０の側のＷｉｎ値を渡しておく。
【０１３６】
片方向スプライシング状態になれば（ステップ３０６）、以後データの受け取り確認の応答（Ａｃｋ）は、クライアント側終端部１１が行なうのではなく、クライアント側更新部１２にＡｃｋ番号及びフロー制御用のＷｉｎ値を通知して応答の送信を依頼する（ステップ３０８）。また、片方向スプライシング状態では、クライアント６０からデータを受け取ると、クライアント６０からのパケットのＡｃｋ番号、Ｗｉｎ値をサーバ側終端部２１に受け渡して、サーバ７０に対する応答の送信依頼を行なう（ステップ３０９）。また、クライアント側更新部１２からの、現在のＡｃｋ番号及びＷｉｎ値の問い合わせにも回答する。この片方向スプライシング状態への移行は、サーバ側更新部２２から通知される。
【０１３７】
クライアント６０からコネクション切断要求を示す終了フラグ付きパケットが到着した場合には（ステップ３１０）、クライアント６０とクライアント側処理部１０の双方向のコネクションの内、クライアント６０からクライアント側処理部１０へ向かう側のコネクションが切断されたものとしてトランスポート層の切断処理を行なう（ステップ３１１）。更に、サーバ側終端部２１に対して、クライアント６０からクライアント側処理部１０へ向かう側のコネクションが切断されたことを通知する（ステップ３１２）。
【０１３８】
クライアント側処理部１０からクライアント６０へ向かうコネクションについては、サーバ７０から到着する終了フラグ付きパケットの中のデータの最終シーケンス番号がサーバ側更新部２２から通知されるため、この最終シーケンス番号“Ｆ”を“更新Ｆ＝Ｆ−ＳＳ＋ＳＵ”のように更新して記録しておく。
【０１３９】
もし、この最終シーケンス番号と同じＡｃｋ番号が到着した場合には、コネクションは切断されたものとして（終了フラグ付きパケットの送信とそれに対するＡｃｋパケットが到着したとして）、トランスポート層の切断処理を行なう（ステップ３１３、３１４）。
【０１４０】
図５は、本実施の形態のクライアント側更新部１２の動作を説明するためのフローチャートである。
【０１４１】
図５を参照すると、本実施の形態のクライアント側更新部１２は、まずクライアント側終端部１１からの命令や、サーバ側更新部からのパケットを受け付ける（ステップ４０１）。もし、サーバ側更新部２２からクライアント６０に送信するパケットを受け取ると（ステップ４０２）、そのパケットのシーケンス番号、Ａｃｋ番号、Ｗｉｎ値等を書き換えて（ステップ４０３）、クライアント６０へ更新されたパケットを送信する（ステップ４０４）。ここでの、シーケンス番号、Ａｃｋ番号、Ｗｉｎ値の書き換え方法は、前述の通りである。
【０１４２】
また、クライアント側終端部１１からクライアントへの応答（Ａｃｋ）の送信依頼を受け取った場合には（ステップ４０５）、Ａｃｋ番号、Ｗｉｎ値は前述の通りに、シーケンス番号は一番最近に使用したシーケンス番号を用いて応答（Ａｃｋ）のパケットを生成し（ステップ４０６）、クライアント６０に送信する（ステップ４０４）。この応答のパケットの生成の方法も、前述の通りである。
【０１４３】
また、クライアント側終端部１１から依頼されるクライアント６０への肯定応答（Ａｃｋ）の送信は、少し待たせて、サーバ７０がクライアント６０に送るパケットをサーバ側更新部２２から受けて、これと併せて１つのパケットとして送信する方法も可能である。
【０１４４】
図６は、本実施の形態のサーバ側終端部２１の動作を説明するためのフローチャートである。
【０１４５】
図６を参照すると、本実施の形態のサーバ側終端部２１は、まず解析部３０からの命令や、サーバ側更新部２２やクライアント側終端部１１からのＡｃｋ番号、Ｗｉｎ値の送信を受け付ける（ステップ５０１）。
【０１４６】
もし、解析部３０から、コネクション確立の依頼があれば（ステップ５０２）、その解析部３０が指定する接続先のサーバ７０に対して、トランスポート層のコネクションを確立し（ステップ５０３）、初期シーケンス番号ＳＶ、ＳＳを記録する（ステップ５０４）。このコネクション確立時には、サーバ７０から到着するパケットをサーバ側終端部２１が受け取るように、予め切替部２３に指示しておく。
【０１４７】
コネクションが確立済みの時に、クライアント６０から送られたパケットがサーバ７０へ送るデータ取得依頼である場合には（ステップ５０５）、確立済みのトランスポート層コネクションを用いてデータ取得要求をサーバ７０へと送るのであるが、もしこれがコネクション確立後にサーバ７０へ送る最初のデータ取得要求である場合には（ステップ５０６）、切替部２３へ指示して、これ以降のサーバ７０からの該当するコネクションに関するパケットをサーバ側更新部２２が受け取るように指示する（ステップ５０７）。そして、確立したトランスポート層コネクションを用いてデータ取得要求をサーバ７０へと送る（ステップ５０８）。
【０１４８】
ステップ５０１において、サーバ側更新部２２から、サーバ７０から受け取ったパケットのＡｃｋ番号とＷｉｎ値が通知された場合は（ステップ５０９）、この各値を登録し、サーバ７０へ送るトランスポート層のデータ（データ取得要求等）についての、再送制御やフロー制御等に用いる（ステップ５１０）。
【０１４９】
ステップ５０１において、クライアント側終端部１１から、Ａｃｋ番号及びＷｉｎ値が知らされた場合は（ステップ５１１）、この値を前述の説明のように更新して、サーバ７０へ送るトランスポート層のデータのＡｃｋ番号及びＷｉｎ値を決定してパケットを生成し（ステップ５１２）、そして、サーバ７０へと応答（Ａｃｋ）のパケットを送信し（ステップ５１３）、また、サーバ７０へ送るトランスポート層のデータのＡｃｋ番号及びＷｉｎ値もこの値に更新する。
【０１５０】
更に、クライアント側終端部１１から当該コネクションが切断されたことが通知されれば（ステップ５１４）、サーバ側処理部２０とサーバ７０間の双方向コネクションの内、サーバ側処理部２０からサーバ７０へ向かうコネクションが切断されたものとして（終了フラグ付きパケットをサーバ７０へ送ったものとして）、トランスポート層の切断処理を行なう（ステップ５１５）。
【０１５１】
サーバ側処理部２０からクライアント６０へ向かうコネクションについては、サーバ７０から到着する終了フラグ付きパケットの中のデータの最終シーケンス番号をサーバ側更新部２２が通知するので、この最終シーケンス番号“Ｆ”を、前述の方法により更新して、もし更新された最終シーケンス番号と同じＡｃｋ番号が到着した場合には（ステップ５１６）、コネクションは切断されたものとして（終了フラグ付きパケット及び、それに対するＡｃｋパケットが到着したものとして）、サーバ側処理部２０からクライアント６０へ向かうコネクションのトランスポート層の切断処理を行なう（ステップ５１７）。また、切替部２３へこれ以降の当該コネクションのパケットをサーバ側終端部２１に送るように指示する（ステップ５１４）。
【０１５２】
図７は、本実施の形態のサーバ側更新部２２の動作を説明するためのフローチャートである。
【０１５３】
サーバ側更新部２２は、まずサーバ７０からクライアント６０に送られるパケットを順次サーバ７０から受信し（ステップ６０１）、そのパケットに書かれているＡｃｋ番号及び、Ｗｉｎ値を、サーバ側終端部２１へ通知する（ステップ６０２）。
【０１５４】
サーバ７０から終了フラグ付きパケットが到着した場合には（ステップ６０３）、そのパケット内のデータの最終シーケンス番号“Ｆ”を、サーバ側終端部２１及びクライアント側終端部１１へと受け渡し（ステップ６０４）、パケットをそのままクライアント側更新部１２へと受け渡す（ステップ６０９）。
【０１５５】
ステップ６０３において、終了フラグ付きでないパケットを受信した時は、そのパケットのトランスポート層データの長さが“０”の場合には（ステップ６０５）パケットを破棄する（ステップ６０６）。
【０１５６】
また、データ長が“０”でない時は（ステップ６０５）、そのパケットをクライアント側更新部１２へ受け渡す（ステップ６０９）のであるが、ただし、もし当該コネクションの“０”でない初めてのパケットをクライアント側更新部１２へ受け渡す場合には（ステップ６０７）、同時にクライアント側終端部１１へ片方向スプライシング開始の指示を出す（ステップ６０８）。
【０１５７】
図８は、本実施の形態の片方向終端交換機１００内のデータの流れを説明するための図であり、片方向スプライシング動作が行われている時に、シーケンス番号、Ａｃｋ番号、Ｗｉｎ値、送信データ等がどのようにクライアント６０、サーバ７０、クライアント側終端部１１、サーバ側終端部２１、クライアント側更新部１２、サーバ側更新部２２等でやりとりされるのかを示している。
【０１５８】
クライアント６０からクライアント側終端部１１へのデータ送信とその応答、サーバ側終端部２１からサーバ７０へのデータ送信とその応答、サーバ７０からクライアント６０へのデータ送信とその応答の流れ、及び、受信バッファの残りを示すＷｉｎ値が正しく処理されていることを以下に順に示す。
【０１５９】
クライアント６０からクライアント側終端部１１
クライアント６０からのデータのシーケンス番号は、クライアント側終端部１１でのトランスポート層プロトコル処理を経て、フローチャートの図４におけるステップ３０８で示したように（図８のＹ００１に相当）、クライアント側更新部１２からクライアント６０へ送信される応答パケットのＡｃｋ番号として反映される。
【０１６０】
また、クライアント側終端部１１の受信バッファの残りも同様に、フローチャートの図４におけるステップ３０９で示したように（図８のＹ００４に相当）、クライアント側更新部１２からクライアント６０へ送信されるパケットのＷｉｎ値として反映され、適切な再送制御やフロー制御のために用いられる。
【０１６１】
サーバ側終端部２１からサーバ７０
サーバ側終端部２１からサーバ７０へのデータについては、シーケンス番号がサーバ７０内のトランスポート層プロトコル終端部での処理を経て、Ｙ００８のように、サーバ側更新部２２へのパケットのＡｃｋ番号として反映される。これをフローチャートの図７のステップ６０２及び、フローチャートの図６のステップ５１０で示したように（図８のＹ００５に相当）、クライアント側更新部１２からクライアント６０へ送信されるパケットのＡｃｋ番号として反映される。
【０１６２】
また、サーバ７０の受信バッファの残りも同様に、図８のＹ００９が示すようにサーバ側更新部２２へのパケットのＡｃｋ番号として反映されるはずで、これを、これをフローチャートの図７のステップ６０２で示したように（図８のＹ００６に相当）、クライアント側更新部１２からクライアント６０へ送信されるパケットのＷｉｎ値として反映される。このようにして、正しく再送制御及び、フロー制御が行われる。
【０１６３】
サーバ７０からクライアント６０
サーバ７０からクライアント６０へのデータについては、サーバ７０から受け取ったシーケンス番号をクライアント側に対して、クライアント側更新部１２の動作フローチャートの図５のステップ４０３で示すように（図８のＹ００７に相当）クライアント側終端部１１から送信したデータであるかのようにシーケンス番号を書き換えて渡している。
【０１６４】
また、これに対してクライアント６０から返るＡｃｋ番号、Ｗｉｎ値についても（図８のＹ０１０、Ｙ０１１に相当）、Ａｃｋ番号については、フローチャートの図６のステップ５１２で示したように、あたかもサーバ側終端部２１が生成したＡｃｋ番号であるかのように番号を更新してサーバ７０へと返しており（図８のＹ００２に相当）、また、Ｗｉｎ値についても、フローチャートの図６のステップ５１２で示したようにサーバ７０へと返しているので（図８のＹ００３に相当）、正しくサーバ７０とクライアント６０の間での再送制御及び、フロー制御が行われる。
【０１６５】
また、本実施の形態のクライアント側終端部１１及びサーバ側終端部２１では、クライアント６０からサーバ７０に対して個々のパケットに分割されて送信される送信データを、元の分割する前の状態に復元した後に当該サーバに対し送信する方式も可能である。
【０１６６】
以上説明したように、本実施の形態の交換機１００は、クライアント６０から片方向終端交換機１００方向、及び片方向終端交換機１００からサーバ７０方向へ流れるトランスポート層のデータに対し、それぞれクライアント６０やサーバ７０にに対して再送制御及びフロー制御を行ないトランスポート層を終端することができ、かつこれと同時に、サーバ７０からクライアント６０方向に流れるデータに対して、再送制御及びフロー制御を行なわずに従来のスプライシングの様にパケットのシーケンス番号やＡｃｋ番号の書き換えのみによりパケットを高速に中継することができる。また、この片方向スプライシングの状態においては、サーバ７０からクライアント６０への方向のデータは、サーバ７０やクライアント６０自身が再送制御やフロー制御等を行なう。
【０１６７】
本実施の形態の交換機１００は、以上のようにして片方向スプライシングの通信を実現することができる。
【０１６８】
次いで、上記のように構成される第１の実施の形態による通信システムにおける具体的な動作例を、図９のタイミングチャートを参照して説明する。図９は、第１の実施の形態におけるシーケンス番号とＡｃｋ番号の時系列を示す。
【０１６９】
クライアント６０、クライアント側処理部１０の間でハンドシェイクが行なわれる。ここで、クライアント６０側のデータの初期シーケンス番号は「１０００」、クライアント側処理部１０の初期シーケンスは「２０００」とする（９０１）。
【０１７０】
クライアント６０から、データ取得要求の載ったデータがクライアント側処理部１０へ送信される。この時、データ取得要求はシーケンス番号「１００１」から「１１００」であったとする（９０２）。
【０１７１】
クライアント側処理部１０は、このデータ取得要求に対するＡｃｋ番号である「１１０１」をクライアント６０へと返す（９０３）。
【０１７２】
解析部３０では、受け取ったデータ取得要求（複数の取得要求が含まれる）の内、最初のいくつかが、サーバ７０へと送信するのが正しいと判断し、サーバ７０とコネクションを確立する。サーバ側処理部２０の初期シーケンス番号は「３０００」番、サーバ７０の初期シーケンス番号は「４０００」番であったとする（９０４）。
【０１７３】
サーバ７０へ送信すべきデータ取得要求を送る（９０５）。
【０１７４】
要求に対するデータの一部（シーケンス番号「４００１」〜「４２００」）がクライアント６０に返信される（９０６）。
【０１７５】
シーケンス番号、Ａｃｋ番号が書き換えられ、クライアント６０へ要求したデータが届けられる。番号変換によって、シーケンス番号は「２００１」〜「２２００」となり、Ａｃｋ番号も「１１０１」に書き換わる（９０７）。
【０１７６】
クライアント６０から、シーケンス番号「２２００」までのデータが受領された事を示すＡｃｋ番号のついたパケットが送られる（９０８）。
【０１７７】
このＡｃｋ番号情報は、番号変換されて、サーバ側処理部２０へ届けられる（９０９）。
【０１７８】
サーバ側処理部２０では、番号変換されたＡｃｋ番号を載せたパケットがサーバ７０へと送信される（９１０）。
【０１７９】
サーバ７０から要求に対する最後のデータ（シーケンス番号「４２０１」〜「４５００」）がクライアント６０に送られる。このパケットにはＦＩＮフラグが立てられている（９１１）。
【０１８０】
このパケットの最後のシーケンス番号に対するＡｃｋ番号「４５０１」をサーバ側処理部２０で記憶しておく（９１２）。
【０１８１】
クライアント側処理部１０では、このパケットの最後のシーケンス番号に対するＡｃｋ番号を番号変換した番号「２５０１」を記憶しておく（９１３）。
【０１８２】
シーケンス番号、Ａｃｋ番号が書き換えられ、クライアント６０へ要求したデータが届けられる。番号変換によって、シーケンス番号は「２２０１」〜「２５００」となり、Ａｃｋ番号も「１１０１」に書き換わる。クライアント６０ではこのパケットを受けて、終了処理が始まる（９１４）。
【０１８３】
クライアント６０から、Ａｃｋ番号「２５０１」が返される（９１５）。
【０１８４】
クライアント側処理部１０では、このＡｃｋ番号を確認して、記憶している番号「２５０１」と一致するので、クライアント６０がサーバ７０からの要求に対する最後のデータを受け取ったことを知り、終了処理を行なう（９１６）。
【０１８５】
サーバ７０側では、このパケットのＡｃｋ番号を変換した番号「４５０１」が記憶している番号と一致するので、クライアント６０がサーバ７０からの要求に対する最後のデータを受け取ったことを知り、終了処理を行なう（９１７）。
【０１８６】
サーバ７０に番号変換されたＡｃｋ番号の載ったパケットが返される（９１８）。
【０１８７】
次に、本発明の第２の実施の形態を説明する。
【０１８８】
図１０は、本発明の第２の実施の形態の片方向終端交換機１００ａを用いたネットワーク構成の一例を示すブロック図であり、図１１は、本実施の形態の片方向終端交換機１００ａの構成を示すブロック図である。
【０１８９】
これらは、先の図２、図３に示される第１の実施の形態と同様であるが、クライアント側終端部１１ａ、クライアント側更新部１２ａ、解析部３０ａ、サーバ側終端部２１ａ、サーバ側更新部２２ａのそれぞれの動作が第１の実施の形態と異なる。
【０１９０】
まず、これらの構成要素について説明する。
【０１９１】
クライアント側終端部１１ａ
第１の実施の形態のクライアント側終端部１１との違いは、解析部３０の指示でクライアント６０とクライアント側終端部１１ａとの間のトランスポート層コネクションを切断（終了フラグつきパケットを送る）することができる点や、サーバ側更新部２２ａから最終シーケンス番号“Ｆ”の値を受け取らない点である。また、その他の動作は第１の実施の形態と同様である。
【０１９２】
すなわち、本実施の形態のクライアント側終端部１１ａは、クライアント６０とのトランスポート層でのコネクションの確立を行ない、クライアント６０との間でトランスポート層での再送制御やフロー制御を含むデータの受け取りを行なう。
【０１９３】
後に述べる、片方向スプライシング状態では、データの受け取り確認の応答については、クライアント側終端部１１ａが行なうのではなく、クライアント側更新部１２ａにＡｃｋ番号及びフロー制御用のＷｉｎ値を通知し応答（Ａｃｋ）の送信を依頼する。
【０１９４】
また、片方向スプライシング状態では、クライアント６０からデータを受け取ると、クライアント６０からのパケットのＡｃｋ番号、Ｗｉｎ値をサーバ側終端部２１に受け渡してサーバ７０に対する応答の送信依頼を行なう。また、クライアント側更新部１２ａから、現在のＡｃｋ番号及びＷｉｎ値の問い合わせにも回答する。片方向スプライシング状態への移行は、サーバ側更新部２２ａから通知される。
【０１９５】
更に、クライアント６０からコネクション切断要求を示す終了フラグ付きパケットが到着すれば、クライアント６０からクライアント側処理部１０ａへ向かう側のコネクションについてのトランスポート層の切断処理を行なう。また、サーバ側終端部２１ａへ、クライアント６０からクライアント側処理部１０ａへ向かう側のコネクションが切断されたことを通知する。
【０１９６】
クライアント側処理部１０ａからクライアント６０へ向かうコネクションについては、解析部３０ａからの指示に従って、そのコネクションのトランスポート層の切断処理を行なう。
【０１９７】
クライアント側更新部１２ａ
第１の実施の形態の片方向終端交換機１００の、クライアント側更新部１２の動作との違いは、シーケンス番号の書き換えに用いるサーバ７０のコネクションの初期シーケンス番号は、サーバ側終端部２１が対象とするサーバ７０を変更する毎に変化するのであり、このため現在のコネクションの値を用いてシーケンス番号を“シーケンス番号：＝パケットのシーケンス番号−ＳＳ＋ＳＵ”と書き換える点である。
【０１９８】
ここで、“ＳＳ”は、サーバ側終端部２１のサーバ７０との現在のコネクションの初期シーケンス番号であり、その値はサーバ側終端部２１から得る。
【０１９９】
本実施の形態の“ＳＵ”は、クライアント側処理部１０ａの、クライアント６０とのコネクションの初期シーケンス番号又は、直前のサーバ７０からの終了フラグを含むパケットの最終シーケンス番号＋１である。この“ＳＵ”の値は、ＳＵが初期シーケンス番号の時は、クライアント側終端部１１ａから、直前のサーバ７０からの終了フラグを含むパケットの最終シーケンス番号＋１の場合には、サーバ側更新部２２ａから受け取る。
【０２００】
また、シーケンス番号の加減算においては、シーケンス番号の最大値を超えたり最小値を下回る場合の処理は、当該トランスポートプロトコルのシーケンス番号の加減算の扱いに準拠するものとする。
【０２０１】
解析部３０ａ
解析部３０ａは、クライアント側終端部１１ａからのデータを取得して、アプリケーション層の終端を行ない、クライアント６０からのデータ取得要求（一度に複数個の要求も可）を解析して適切なサーバ７０を決定する。
【０２０２】
複数のデータ取得要求に対して、それぞれに対応するサーバ７０が異なる場合には、複数のデータ取得要求を、順に前から対応するサーバ７０毎にグループ分けをする。
【０２０３】
例えば、１０個の取得要求Ｒ１〜Ｒ１０があり、順にＲ１〜Ｒ２は第１サーバ、Ｒ３〜Ｒ５は第２サーバ、Ｒ６〜Ｒ１０は第１サーバが対応する場合には、前から順にＲ１〜Ｒ２を第１グループ、Ｒ３〜Ｒ５を第２グループ、Ｒ６〜Ｒ１０を第３グループとして、グループ分けをすることができる。
【０２０４】
このグループ分けの例においては、第１グループと第３グループに対応するサーバ７０は同一の第１サーバであるが、ここでは取得要求を前から順にグループ分けすることにより、異なるグループに分けている。
【０２０５】
解析部３０ａは、このグループ毎にサーバ側終端部２１へ、そのサーバ７０名と取得要求を受け渡す。
【０２０６】
また、解析部３０ａは、１つのグループの最後の取得要求については、サーバ７０に対して、当該データの送信が完了したらサーバ側からコネクションを切断するクローズ要求を付与する。しかし、ここでグループが最後である場合（他に未処理のグループが残っていない場合）においては、その処理中にクライアント６０から更に追加のデータ取得要求があるかもしれないため、クローズ要求は追加しないものとする方式も効果的である。
【０２０７】
また、クライアント６０からの追加のデータ取得要求に応じることにより、サーバ７０を切り替える必要が発生した場合には、データ取得要求にクローズ要求を付与してサーバ側終端部２１ａへ渡すか，そのまま，データ取得要求をサーバ側終端部２１ａへ渡す．更にここで、その最初の追加リクエストでサーバ７０を切り替える場合には、サーバ側終端部２１ａへコネクション切断要求をする。ある１つのグループに対する処理が完了すれば、サーバ側終端部２１ａから通知され、そして解析部３０ａは次のグループへと処理を指示する。
【０２０８】
解析部３０ａは、クライアント側終端部１１ａからのデータを取得する度に、この処理を繰り返す。
【０２０９】
解析部３０ａがクライアント６０から受け取るデータ取得要求について、最後にクローズ要求が付与されている場合があるが、この場合には、当該データ取得要求のグループを切断対象グループとして記憶しておき、当該グループの処理を処理し終えた後に、クライアント６０へのコネクション切断をクライアント側終端部１１ａに指示する。
【０２１０】
サーバ側終端部２１ａ
第１の実施の形態のサーバ側終端部２１との違いは、本実施の形態では解析部３０ａから受け渡されるデータ取得要求がグループ毎に分かれているので、それぞれのグループを順番に処理し、グループ毎にサーバ７０とのコネクションを切断する点（これは、解析部３０ａからコネクション切断要求と同時に受け渡される、各グループの最後の取得要求に、クローズ要求が追加されている場合には、それを、サーバ側終端部２１ａがサーバ７０へと転送することによって実現され，前記クローズ要求が追加されていない場合には，サーバ側終端部２１aからサーバ７０へ各グループの最後の取得要求を送信後明示的にコネクション切断要求を出す事によって実現される）や、新しいグループに対しては、そのグループについて指示されたサーバ７０へとコネクションを確立し直して、そのデータ取得要求のグループをサーバ７０へと転送する点や、サーバ７０へ送るトランスポート層のデータのＡｃｋ番号の決定に、確立し直す毎に異なるサーバ側の初期シーケンス番号を使う点が異なる。また、更新された最終シーケンス番号“Ｆ”に対応するＡｃｋパケットを受け取った場合に、解析部３０ａに通知する点も異なる。また、これ以外の処理は第１の実施の形態と同様である。
【０２１１】
すなわち、以下の通りである。
【０２１２】
サーバ側終端部２１ａは、解析部３０ａのからデータ取得要求の１つのグループとサーバ７０名を受け取る。そして、そのサーバ７０名に従って、サーバ７０へとトランスポート層のコネクションを確立する。
【０２１３】
Ｗｉｎ値の初期値は、初めてのコネクション確立時には、クライアント側終端部１１ａから通知されるＷｉｎ値を使い、以降は前のコネクションの終了時（以下に述べる更新された最終シーケンス番号“Ｆ”と同じＡｃｋ番号を持つ応答パケットを受け取った時）に記憶したＷｉｎ値を初期値として使う。
【０２１４】
このコネクション確立時には、切替部２３へ指示して、このデータ取得要求に応答してサーバ７０から送信されるパケットを、サーバ側終端部２１が受け取れるように指示する。
【０２１５】
コネクションが確立すると、確立したトランスポート層コネクションを用いてデータ取得要求のグループをサーバ７０へと送る。なお、最後の取得要求には、クローズ要求が付与されている。
【０２１６】
同時に切替部２３へ指示して、これ以降のサーバ７０からの該当するコネクションに関するパケットを、サーバ側更新部２２ａへ到着させるように指示する。
【０２１７】
また、これ以降、サーバ側更新部２２ａから、サーバ７０から受け取ったパケットのＡｃｋ番号とＷｉｎ値が通知されるようになり、この値を用いてサーバ７０へ送るトランスポート層のデータ（データ取得要求等）についての、再送制御及び、フロー制御を行なう。
【０２１８】
また、これ以降、クライアント側終端部１１ａから、Ａｃｋ番号及びＷｉｎ値が通信され、Ａｃｋ番号を“Ａｃｋ番号：＝クライアント側終端部１１ａから通知されたＡｃｋ番号−ＳＵ＋ＳＳ”と書き換えて更新し、Ｗｉｎ値は通知された値をそのまま用いて、応答のパケットを生成しサーバ７０へ送信する。
【０２１９】
ここで、“ＳＵ”は、クライアント６０とクライアント側処理部１０ａとの間のコネクションのクライアント側処理部１０ａの初期シーケンス番号であり、“ＳＳ”は、サーバ側処理部２０ａと現在のサーバ７０とのコネクションのサーバ側の初期シーケンス番号、又は、直前のサーバ７０からの終了フラグ付きパケットの最終シーケンス番号＋１である。“ＳＵ”の、クライアント側終端部１１ａの初期シーケンス番号は、クライアント側終端部１１ａから通知される。
【０２２０】
また、シーケンス番号の加減算においては、シーケンス番号の最大値を超えたり最小値を下回る場合の処理は、当該トランスポートプロトコルのシーケンス番号の加減算の扱いに準拠するものとする。
【０２２１】
更に、クライアント側終端部１１ａから当該コネクションが切断されたことを通知されれば、サーバ側処理部２０ａとサーバ７０間の双方向コネクションの内で、サーバ側処理部２０ａからサーバ７０へ向かうコネクションが切断されたものとして（終了フラグ付きパケットをサーバ７０へ送ったものとして）、切断処理を行なう。
【０２２２】
サーバ側処理部２０ａからクライアント６０へ向かうコネクションについては、サーバ７０から到着する終了フラグ付きパケットの中のデータの最終シーケンス番号をサーバ側更新部２２ａが通知するので、この最終シーケンス番号“Ｆ”を“更新Ｆ＝Ｆ−ＳＳ＋ＳＵ”のように更新し、もしこの更新された最終シーケンス番号と同じＡｃｋ番号が到着したら、コネクションは切断されたものとして（終了フラグ付きパケット及び、それに対するＡｃｋパケットが到着したものとして）、サーバ７０から交換機１００ａを介してクライアント６０へ向かうコネクションのトランスポート層の切断処理する。そして、解析部３０に当該グループの処理が終了したことを通知する。また、この時のＷｉｎ値を記憶する。
【０２２３】
解析部３０ａからコネクション切断要求を受け取った時には、切替部２３へ、以降の当該コネクションのパケットはサーバ側終端部２１へ送信するよう指示して、コネクションを切断し、切断が完了したらこれを解析部３０へ通知する。
【０２２４】
サーバ側更新部２２ａ
第１の実施の形態のサーバ側更新部２２ａとの違いは、サーバ７０側からやってくるパケットに終了フラグが立っている場合に終了フラグを倒す処理が含まれ、最終シーケンス番号“Ｆ”の値をクライアント側終端部１１ａに渡す処理が不要となる点である。
【０２２５】
すなわち、以下の通りである。
【０２２６】
サーバ側更新部２２ａは、サーバ７０から受け取ったパケットについて、そのパケットに書かれているＡｃｋ番号及び、Ｗｉｎ値を、サーバ側終端部２１ａへ通知する。また、パケットのトランスポート層データの長さが“０”の場合には、そのパケットを破棄する。
【０２２７】
また、データ長が“０”でない場合には、そのパケットをクライアント側更新部１２ａへと受け渡す。また、これが当該コネクションの“０”でない初めてのパケットをクライアント側更新部１２ａへ受け渡す場合には、同時にクライアント側終端部１１ａへ片方向スプライシング開始の指示を出す。
【０２２８】
また、サーバ７０から終了フラグ付きパケットが到着したら、その終了フラグを落として、そのパケット内のデータの最終シーケンス番号“Ｆ”を、サーバ側終端部２１へと受け渡す。
【０２２９】
次に、本実施の形態の各部の処理を説明する。
【０２３０】
図１２は、本実施の形態のクライアント側終端部１１ａの動作を説明するためのフローチャートである。
【０２３１】
本実施の形態のクライアント側終端部１１ａの動作は、図４に示される第１の実施の形態のステップ３０１〜ステップ３１２が同様である。
【０２３２】
本実施の形態のクライアント側終端部１１ａの動作の第１の実施の形態との違いは、解析部３０ａからのコネクション切断要求を受け付けることができる点であり、解析部３０ａからコネクション切断要求を受け付けると（ステップ１００１）、クライアント側終端部１１ａは、クライアント側処理部１０ａからクライアント６０へ向かうコネクションを切断する（ステップ１００２）。
【０２３３】
本実施の形態のクライアント側更新部１２ａの動作のフローチャートは、図５の第１の実施の形態と同様である。
【０２３４】
図１３は、本実施の形態の解析部３０ａの動作を説明するためのフローチャートである。
【０２３５】
図１３を参照すると、本実施の形態の解析部３０ａは、まずクライアント側終端部１１ａやサーバ側終端部２１ａのそれぞれから命令等を受け付ける。
【０２３６】
クライアント側終端部１１ａからデータ取得要求を受け付けた場合には（ステップ１１０２）、アプリケーション層の終端を行ない、クライアント６０からのデータ取得要求（複数でもよい）を解析して、適切な接続先のサーバ７０を決定する（ステップ１１０３）。そして、サーバ側終端部２１へ、データ取得要求とサーバ７０名を受け渡す。
【０２３７】
また、複数のデータ取得要求のそれぞれに対して対応するサーバ７０が異なる場合には、サーバ毎にデータ取得要求をグループ分けする（ステップ１１０４）。グループ分けの方法としては、複数のデータ取得要求を、順に前から対応するサーバ７０毎に分ける等の方法が可能である。
【０２３８】
つまりこの方法では、例えば、１０個の取得要求Ｒ１〜Ｒ１０があり、Ｒ１〜Ｒ２は第１サーバ、Ｒ３〜Ｒ５は第２サーバ、Ｒ６〜Ｒ１０は第１サーバが対応する場合には、前から順にＲ１〜Ｒ２を第１グループ、Ｒ３〜Ｒ５を第２グループ、Ｒ６〜Ｒ１０を第３グループとグループ分けをすることができる。この例では、第１グループと第３グループに対するサーバ７０は、同じ第１サーバであるが、取得要求を前から順にグループ分けすることにより、異なるグループとしてグループ分けしている。
【０２３９】
またもし、そのクライアント６０から到着したデータ取得要求にクローズ要求がついている場合には（ステップ１１０５）、クローズ要求付きであったグループを切断対象グループとして記憶しておく（ステップ１１０６）。
【０２４０】
そして、現在処理中のグループの処理が完了していれば（ステップ１１０７）、先頭のグループを取り出して（ステップ１１０８）、最後のグループでない場合には（ステップ１１０９）、グループの最後の取得要求にクローズ要求を付与する（ステップ１１１０）。これにより、サーバ７０は、当該データの受信が完了すると、サーバ７０の側からコネクションを切断する。そして、サーバ側終端部２１へ適切なサーバ７０名と取得要求を受け渡す（ステップ１１１１）。
【０２４１】
また、最後のグループの場合では、更に追加のデータ取得要求があるかもしれないので、クローズ要求を追加せずに、サーバ側終端部２１へ適切なサーバ７０名と取得要求を受け渡す（ステップ１１１１）。
【０２４２】
ステップ１１０７において、現在処理中のグループの処理が完了していない場合は、、現在処理中のグループが最終グループでなければ、分類したグループとサーバ７０名を記憶して終了する（ステップ１１１２、１１１３）。
【０２４３】
もし最終グループであれば（ステップ１１１２）、新たに到着した取得要求の最初のグループ以外があれば対応するサーバ７０名と共に記憶し（ステップ１１１４）、現在処理中のグループと新たに到着した取得要求の最初のグループが同じサーバ７０行きの場合には（ステップ１１１５）、サーバ側処理部へ、新たに到着した取得要求の最初のグループを追加する（ステップ１１１６）。
【０２４４】
異なるサーバ７０行きの場合、サーバ側終端部２１へコネクション切断要求を出し、切断が完了してからサーバ側終端部２１へと新たに到着した取得要求の最初のグループを受け渡す（ステップ１１１７）。
【０２４５】
また、ステップ１１０１において、サーバ７０から、現在処理中のグループの処理完了通知がきた場合（ステップ１１１８）、もしグループが切断対象グループであれば、クライアント側終端部１１ａにクライアント６０とのコネクションの切断を指示する（ステップ１１１９、１１２０）。
【０２４６】
そうでない場合においては、もし未処理グループが残っていれば、そのグループに対して前述のステップ１１０８以下と同様の処理を進める（ステップ１１１９、１１２１）。
【０２４７】
図１４は、本実施の形態のサーバ側終端部２１ａの動作を説明するためのフローチャートである。
【０２４８】
図１４を参照すると、本実施の形態のサーバ側終端部２１ａの動作の、図６の第１の実施の形態の動作との違いは、解析部３０ａからの命令を受信した場合の動作（ステップ１２０１〜ステップ１２１０）と、ステップ５１７とステップ５１８の間に解析部３０ａに対してコネクションの切断完了を通知する処理を含むことである。
【０２４９】
このため、ここでは解析部３０ａからの命令を受信した場合の動作（ステップ１２０１〜ステップ１２１０）を説明する。
【０２５０】
まず、解析部３０ａから、新しいデータ取得要求のグループを受け付けた場合には（ステップ１２０１）、同時に受け取った接続先のサーバ７０名の指定に従い、そのサーバ７０へトランスポート層のコネクションを確立する（ステップ１２０２）。このコネクション確立時には、予め切替部２３へ指示して、サーバ７０から到着するパケットをサーバ側終端部２１が受け取るようにする。
【０２５１】
コネクションが確立すると、サーバ７０へデータ取得依頼のグループを、確立したトランスポート層コネクションを用いて送るのであるが、同時に切替部２３へ指示して、これ以降のサーバ７０からの該当するコネクションに関するパケットは、サーバ側更新部２２ａへ到着させるように指示する。そして、確立したトランスポート層コネクションを用いてデータ取得要求をサーバ７０へと送る（ステップ１２０３〜１２０５）。
【０２５２】
また、ステップ１２０１において、新しいグループの指定ではない場合は、もしそれがコネクション切断要求である場合には（ステップ１２０６）、サーバ終端部へのパケットの送信を切替部２３ａに指示して（ステップ１２０７）、コネクションを切断し（ステップ１２０８）、解析部３０ａにその切断完了を通知する（ステップ１２０９）。また、ステップ１２０６においてコネクション切断要求でない場合には、受け付けたデータ取得要求を対応するサーバ７０に送信する（ステップ１２１０）。
【０２５３】
図１５は、本実施の形態のサーバ側更新部２２ａの動作を説明するためのフローチャートである。
【０２５４】
図１５を参照すると、本実施の形態のサーバ側更新部２２ａの動作の、図７に示される第１の実施の形態との違いは、ステップ６０３において終了フラグ付きのパケットをサーバ７０から受信した場合の処理である（ステップ１３０１、１３０２）。
【０２５５】
本実施の形態のサーバ側更新部２２ａは、サーバ７０から終了フラグ付きパケットが到着したら、そのパケット内のデータの最終シーケンス番号“Ｆ”を、サーバ側終端部２１及びクライアント側終端部１１ａへと受け渡し（ステップ１３０１）、そのパケットの終了フラグを“ＯＮ”にして（倒して）変更し（ステップ１３０２）、その変更されたパケットをクライアント側更新部１２ａへと受け渡す（ステップ６０９）。
【０２５６】
図１６は、本実施の形態の片方向終端交換機内のデータの流れを説明するための図であり、片方向スプライシング動作が行われている時に、シーケンス番号、Ａｃｋ番号、Ｗｉｎ値がどのようにクライアント６０、サーバ７０、クライアント側終端部１１ａ、サーバ側終端部２１、クライアント側更新部１２ａ、サーバ側更新部２２ａ等の間でやりとりされるのかを示している。
【０２５７】
本実施の形態においても、クライアント６０からクライアント側終端部１１ａへのデータとその応答、サーバ側終端部２１からサーバ７０へのデータとその応答、サーバ７０からクライアント６０へのデータとその応答の流れ、及び、受信バッファの残りを示すＷｉｎ値は、本発明の第１の実施の形態の図８において説明したものと同様にして正しく処理される。
【０２５８】
また、先の第１の実施の形態における説明と同様に、本実施の形態のクライアント側終端部１１ａ及びサーバ側終端部２１ａが、クライアント６０からサーバ７０に対して個々のパケットに分割されて送信される送信データを、元の分割する前の状態に復元した後に当該サーバに対し送信する方式も可能であり、また個の方式を採用する場合においては、本実施の形態の解析部３０ａは、その分割前の状態に復元された送信データを参照して、その接続先のサーバの決定等の処理を行なうことも可能である。
【０２５９】
以上説明した、本実施の形態の交換機１００ａにおいては、第１の実施の形態の効果に加えて、解析部３０ａにより、クライアント６０からのデータ取得要求を適切なサーバ７０にグループ分けして振り分けることができる。
【０２６０】
また、各データ取得要求のグループに対するサーバ７０からクライアント６０へのデータ転送が完了したことを、サーバ７０にクローズ要求を出して、サーバ７０から到着する終了フラグの立っているパケットのシーケンス番号の終わりにより検知することができ、正しいタイミングでサーバ７０を切り替えることができる。
【０２６１】
また、サーバ７０からクライアント６０へ送信されるパケットの終了フラグを倒すことにより、クライアント６０が、全てのデータ取得要求に対するデータを受け取り終わるまで、クライアント６０と片方向終端交換機１００間のコネクションを切断することなく維持することができる。
【０２６２】
次いで、上記のように構成される第２の実施の形態による通信システムにおける具体的な動作例を、図１７のタイミングチャートを参照して説明する。図１７は、第２の実施の形態におけるシーケンス番号とＡｃｋ番号の時系列を示す。ここでは、第１のサーバ７０（１）と第２のサーバ７０（２）がグループ分けされているとして説明する。
【０２６３】
クライアント６０、クライアント側処理部１０の間でハンドシェイクが行われる。ここで、クライアント６０側のデータの初期シーケンス番号は「１０００」、クライアント側処理部１０の初期シーケンス番号は「２０００」とする（１７０１）。
【０２６４】
クライアント６０から、データ取得要求の載ったデータがクライアント側処理部１０へ送信される。この時、データ取得要求はシーケンス番号「１００１」から「１１００」であったとする（１７０２）。
【０２６５】
クライアント側処理部１０は、このデータ取得要求に対するＡｃｋ番号である「１１０１」をクライアント６０へと返す（１７０３）。
【０２６６】
解析部３０では、受け取ったデータ取得要求（複数の取得要求が含まれる）の内、最初のいくつかが、サーバ７０（１）へと送信するのが正しいと判断し、サーバ７０（１）とコネクションを確立する。サーバ側処理部２０の初期シーケンス番号は「３０００」番、サーバ７０（１）の初期シーケンス番号は「４０００」番であったとする（１７０４）。
【０２６７】
サーバ７０（１）へ送信すべきデータ取得要求を送る（１７０５）。
【０２６８】
要求に対するデータの一部（シーケンス番号「４００１」〜「４２００」）がクライアント６０に返信される（１７０６）。
【０２６９】
シーケンス番号、Ａｃｋ番号が書き換えられ、クライアント６０へ要求したデータが届けられる。番号変換によって、シーケンス番号は「２００１」〜「２２００」となり、Ａｃｋ番号も「１１０１」に書き換わる（１７０７）。
【０２７０】
クライアント６０から、シーケンス番号「２２００」までのデータが受領されたことを示すＡｃｋ番号のついたパケットが送られる（１７０８）。
【０２７１】
このＡｃｋ番号情報は、番号変換されて、サーバ側処理部２０へ届けられる（１７０９）。
【０２７２】
サーバ側処理部２０では、番号変換されたＡｃｋ番号を載せたパケットがサーバ７０（１）へと送信される（１７１０）。
【０２７３】
サーバ７０（１）から要求に対する最後のデータ（シーケンス番号「４２０１」〜「４５００」）がクライアント６０に送られる。このパケットにはＦＩＮフラグが立てられている（１７１１）。
【０２７４】
このパケットの最後のシーケンス番号に対するＡｃｋ番号「４５０１」をサーバ側処理部２０で記憶しておく。また、ＦＩＮフラグを倒す（１７１２）。
【０２７５】
クライアント側処理部１０では、このパケットの最後のシーケンス番号に対するＡｃｋ番号を番号変換した番号「２５０１」を記憶しておく（１７１３）。
【０２７６】
シーケンス番号、Ａｃｋ番号が書き換えられ、クライアント６０へ要求したデータが届けられる。番号変換によって、シーケンス番号は「２２０１」〜「２５００」となり、Ａｃｋ番号も「１１０１」に書き換わる。ここで、クライアント６０はＦＩＮフラグが倒れたパケットであるのでコネクションの終了処理はしない（１７１４）。
【０２７７】
クライアント６０から、Ａｃｋ番号「２５０１」が返される（１７１５）。
【０２７８】
クライアント側処理部１０では、このＡｃｋ番号を見て、記憶している番号「２５０１」と一致するので、クライアント６０がサーバ７０（１）からの要求に対する最後のデータを受け取ったことを知る（１７１６）。
【０２７９】
サーバ７０（１）側では、このパケットのＡｃｋ番号を変換した番号「４５０１」が記憶している番号と一致するので、クライアント６０がサーバ７０（１）からの要求に対する最後のデータを受け取ったことを知り、終了処理を行なう（１７１７）。
【０２８０】
サーバ７０（１）に番号変換されたＡｃｋ番号の載ったパケットが返される（１７１８）。
【０２８１】
解析部３０では、クライアント６０から受け取ったデータ取得要求の次のいくつか（クライアント側処理部１０でシーケンス番号「１０５１」〜「１１００」だったもの）はサーバ７０（２）へと送信するのが適切であると判断し、サーバ７０（２）とコネクションを確立する。ここで、サーバ側処理部２０の初期シーケンス番号は「５０００」番、サーバ７０（２）の初期シーケンス番号は「６０００」番であったとする（１７１９）。
【０２８２】
サーバ７０（２）へ送信すべきデータ取得要求を送る（１７２０）。
【０２８３】
要求に対するデータの一部（シーケンス番号「６００１」〜「６２００」）がクライアント６０に送信される（１７２１）。
【０２８４】
シーケンス番号、Ａｃｋ番号が書き換えられ、クライアント６０へ要求したデータが届けられる。番号変換によって、シーケンス番号は「２５０１」〜「２７００」となり、Ａｃｋ番号も「１１０１」に書き換わる（１７２２）。
【０２８５】
クライアント６０から、シーケンス番号「２７００」までのデータが受領された事を示すＡｃｋ番号のついたパケットが送られる（１７２３）。
【０２８６】
このＡｃｋ番号情報は、番号変換されて、サーバ側処理部２０へ届けられる（１７２４）。
【０２８７】
サーバ側処理部２０では、番号変換されたＡｃｋ番号を載せたパケットがサーバ７０（２）へと送信される（１７２５）。
【０２８８】
上記のように、サーバ７０（１）からクライアント６０へ送信されるパケットの終了フラグを倒すことにより、クライアント６０が、全てのデータ取得要求に対するデータを受け取り終わるまで、クライアント６０と片方向終端交換機１００間のコネクションを切断することなく維持する。
【０２８９】
なお、上記各実施の形態の交換機１００、１００ａは、クライアント側処理部１０、サーバ側処理部２０や、解析部３０等の機能や、その他の機能をハードウェア的に実現することは勿論として、各機能を備えるコンピュータプログラムを、コンピュータ処理装置のメモリにロードされることで実現することができる。このコンピュータプログラムは、磁気ディスク、半導体メモリその他の記録媒体９０、９０ａに格納される。そして、その記録媒体からコンピュータ処理装置にロードされ、コンピュータ処理装置の動作を制御することにより、上述した各機能を実現する。
【０２９０】
また、サーバ７０上のコンピュータを制御することにより、交換機を介してサーバとクライアントとの間でパケット通信を行なう交換プログラムを、サーバ７０上で動作させることにより、本発明を実現することも可能である。この交換プログラムは、サーバ７０の記録媒体に上記と同様に格納される。すなわち、交換プログラムは、交換機１００におけるクライアント６０からのデータ取得要求の中継時から、クライアント６０に対し送信される応答のパケットの送信を終了するまでの間、片方向のスプライシングによって当該クライアント６０へに対しパケットを送信するように動作する。
【０２９１】
また、クライアント６０上のコンピュータを制御することにより、交換機１００を介してサーバ７０とクライアント６０との間でパケット通信を行なう交換プログラムを、クライアント６０上で動作させることにより、本発明を実現することも可能である。この交換プログラムは、クライアント６０の記録媒体に上記と同様に格納される。すなわち、交換プログラムは、交換機１００におけるサーバ７０へのデータ取得要求の中継時から、サーバ７０から受信される応答のパケットの送信を終了するまでの間、片方向のスプライシングによって当該サーバ７０からパケットを受信するように動作する。
【０２９２】
以上好ましい実施の形態及び実施例をあげて本発明を説明したが、本発明は必ずしも上記実施の形態及び実施例に限定されるものではなく、その技術的思想の範囲内において様々に変形して実施することができる。
【０２９３】
【発明の効果】
以上説明したように本発明の片方向終端交換機によれば、以下のような効果が達成される。
【０２９４】
まず、本発明の片方向終端交換機では、片方向スプライシング中に、サーバからクライアントへのデータを、トランスポート層を終端せずにパケット毎にシーケンス番号、Ａｃｋ番号、Ｗｉｎ値を書き換えるのみで、クライアントへパケットを転送することによって高速なパケット転送を実現し、かつ同時にクライアントからサーバへ送られるデータ取得要求を参照し終端する片方向スプライシングを実現することができる。
【０２９５】
片方向スプライシングによって、クライアントからサーバへと送信されるデータ取得要求を参照することによって、常に適切なサーバへとデータ取得要求を転送することができ、かつ同時に、サーバからクライアント側へ到着する大量のデータについては、パケット毎にシーケンス番号とＡｃｋ番号を書き換えるのみの簡素化された終端処理により、従来の交換機１００と同等のスループットを実現する。
【０２９６】
更に、クライアントからのデータ取得要求に対する全てのデータをクライアントが受け取るまで、クライアントと片方向終端交換機の間で確立されたコネクションを切断せずに維持することができ、これによいクライアントと片方向交換機との間のコネクションの再セットアップが不要となり、必要なデータを取得するまでの遅延を小さく保つことができる。
【図面の簡単な説明】
【図１】  本発明の片方向終端交換機を用いた通信システムの概念を説明する図である。
【図２】  本発明の第１の実施の形態の片方向終端交換機を用いたネットワーク構成の一例を示すブロック図である。
【図３】  本発明の第１の実施の形態の片方向終端交換機の構成を示すブロック図である。
【図４】  本発明の第１の実施の形態のクライアント側終端部の動作を説明するためのフローチャートである。
【図５】  本発明の第１の実施の形態のクライアント側更新部の動作を説明するためのフローチャートである。
【図６】  本発明の第１の実施の形態のサーバ側終端部の動作を説明するためのフローチャートである。
【図７】  本発明の第１の実施の形態のサーバ側更新部の動作を説明するためのフローチャートである。
【図８】  本発明の第１の実施の形態の片方向終端交換機内のデータの流れを説明するための図である。
【図９】  本発明の第１の実施の形態の具体的な動作例を説明するタイミングチャートである。
【図１０】  本発明の第２の実施の形態の片方向終端交換機を用いたネットワーク構成の一例を示すブロック図である。
【図１１】  本発明の第２の実施の形態の片方向終端交換機の構成を示すブロック図である。
【図１２】  本発明の第２の実施の形態のクライアント側終端部の動作を説明するためのフローチャートである。
【図１３】  本発明の第２の実施の形態の解析部の動作を説明するためのフローチャートである。
【図１４】  本発明の第２の実施の形態のサーバ側終端部の動作を説明するためのフローチャートである。
【図１５】  本発明の第２の実施の形態のサーバ側更新部の動作を説明するためのフローチャートである。
【図１６】  本発明の第２の実施の形態の片方向終端交換機内のデータの流れを説明するための図である。
【図１７】  本発明の第２の実施の形態の具体的な動作例を説明するタイミングチャートである。
【図１８】  従来の通信ネットワークの構成を示すブロック図である。
【図１９】  従来のレイヤ７スイッチの構成を示すブロック図である。
【符号の説明】
１００、１００ａ  片方向終端交換機
１００ｂ  従来の交換機
１０、１０ａ  クライアント側処理部
１１、１１ａ  クライアント側終端部
１２、１２ａ  クライアント側更新部
１３ｂ  切替部
２０、２０ａ  サーバ側処理部
２１、２１ａ  サーバ側終端部
２２、２２ａ  サーバ側更新部
２３、２３ａ  切替部
３０、３０ａ  解析部
４０、４０ａ  記憶部
５０  ネットワーク
６０  クライアント
７０  サーバ
７１  サーバ群
９０、９０ａ  記録媒体
【図１】
0003642305.tif 000002
【図２】
0003642305.tif 000003
【図３】
0003642305.tif 000004
【図４】
0003642305.tif 000005
【図５】
0003642305.tif 000006
【図６】
0003642305.tif 000007
【図７】
0003642305.tif 000008
【図８】
0003642305.tif 000009
【図９】
0003642305.tif 000010
【図１０】
0003642305.tif 000011
【図１１】
0003642305.tif 000012
【図１２】
0003642305.tif 000013
【図１３】
0003642305.tif 000014
【図１４】
0003642305.tif 000015
【図１５】
0003642305.tif 000016
【図１６】
0003642305.tif 000017
【図１７】
0003642305.tif 000018
【図１８】
0003642305.tif 000019
【図１９】
0003642305.tif 000020