JP3642305B2 - COMMUNICATION SYSTEM, PACKET EXCHANGE METHOD THEREOF, AND RECORDING MEDIUM CONTAINING EXCHANGE PROGRAM - Google Patents
COMMUNICATION SYSTEM, PACKET EXCHANGE METHOD THEREOF, AND RECORDING MEDIUM CONTAINING EXCHANGE PROGRAM Download PDFInfo
- Publication number
- JP3642305B2 JP3642305B2 JP2001246139A JP2001246139A JP3642305B2 JP 3642305 B2 JP3642305 B2 JP 3642305B2 JP 2001246139 A JP2001246139 A JP 2001246139A JP 2001246139 A JP2001246139 A JP 2001246139A JP 3642305 B2 JP3642305 B2 JP 3642305B2
- Authority
- JP
- Japan
- Prior art keywords
- client
- server
- packet
- connection
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
【0001】
【発明の属する技術分野】
本発明は、パケット交換による通信システムに関し、特に、サーバとクライアント間の通信を効率的に交換する通信システムとその交換方法に関する。
【0002】
【従来の技術】
OSI参照モデルのネットワークプロトコルでは、データ通信ネットワークの機能を7つの階層(Layer)に大別しており、下位の階層から順に物理層、デタリンク層、ネットワーク層、トランスポート層、セッション層、プレゼンテーション層、アプリケーション層がある。それぞれ順に第1層(Layer 1)、
第2層(Layer 2)、・・・と呼ばれることもある。
【0003】
また、通信ネットワーク上のノードには、その通信の交換において参照するデータの階層に対応して、レイヤ2スイッチ(Layer 2 Switch)、レイヤ3スイッチ(Layer 3 Switch)、レイヤ4スイッチ(Layer 4 Switch)と呼ばれるもの等がある。また最近では、更に上位のアプリケーション層の情報に基づいて緻密にフローやトラフィックを制御するレイヤ7スイッチ(又、4−7層スイッチ)がある。
【0004】
図18は、レイヤ7スイッチである交換機100bを備える従来の通信システムの構成を示すブロック図である。
【0005】
図18の従来の通信システムでは、複数のサーバ70を備えるサーバ群71及びクライアント60は、パケット交換網のネットワーク50で互いに接続している。パケット交換網としては、IP(Internet Protocol)ネットワーク等がある。
【0006】
各クライアント60は、ネットワーク50を介してサーバ群71内のサーバ70からサービスを受ける。このサービスでは、まず、クライアント60がサーバ70へと双方向通信のできるトランスポート層のコネクションを確立(例えば、TCPプロトコル)し、クライアント60からサーバ70に取得したいデータの識別子が送られることにより、その指定されたデータがサーバ70からクライアント60に送られる。また、1つのコネクションで複数のデータの取得要求を出すことも可能であり、サーバ70はその要求を受けたデータを順次クライアント60に送る。
【0007】
クライアント60は、あるサーバ70から取得したいデータを全て取得し終えた場合には、クローズ要求をサーバ70へ送り、サーバ側にコネクションの切断を指示することができる。
【0008】
このサービスに使われている、双方向通信を行なうトランスポート層のコネクションは、パケット内に、パケットに含まれているトランスポート層でのデータの位置を示すシーケンス番号、パケット中のデータのトランスポート層でのデータ長、通信相手に対して今までに確実に受信を終えているトランスポート層でのデータ位置を示すAck番号が含まれている。通信両端のトランスポート層プロトコル終端部(終端部)は、このシーケンス番号とAck番号を用いて通信途中で失われたパケットの再送制御を行なう。
【0009】
また、通信両端でフロー制御を行なうため、通信相手に受信バッファの残り容量を示すためのフィールド(ウィンドウフィールド)を備える場合もある。以下この値を、Win値と呼ぶこととする。
【0010】
また、通信の両端において、シーケンス番号の初期値をハンドシェイクを行なって互いに通知し合う。更に、コネクションの終わりは、互いにパケットにコネクション終了を示すフラグ(終了フラグ)の立ったパケットと、その受信確認を含むパケットをやりとりすることで、コネクションの切断を行なう。このようなプロトコルの例としては、インターネットで用いられているTCPプロトコルがある。
【0011】
次に、図18の従来の交換機100bの役割と動作をより詳細に説明する。
【0012】
図18の交換機100bは、クライアント60に、サーバ群71内の複数のサーバ70を仮想的に1台のサーバとして認識させ、クライアント60からのデータ取得要求を適切なサーバ70へと転送し、そのサーバ70からの応答のデータを当該クライアント60へと転送する機能を有している。
【0013】
クライアント60からは、サーバ群71は同一のネットワーク50アドレスを備える仮想的な1台のサーバ70(仮想サーバ)として認識されている。クライアント60が、当該アドレスの仮想サーバと接続しようとすると、まず、クライアント60と交換機100bの間にコネクションが張られる。
【0014】
クライアント60は、このコネクション上にデータ取得要求(取得したいデータの識別子)を渡す。交換機100bは、このコネクションを流れてきたデータ取得要求の識別子を基に適切な接続先のサーバ70を選択する。
【0015】
次に、交換機100bは、選択したサーバ70へコネクションを張り、コネクション上にデータ取得要求を転送する。サーバ70は、取得要求のあったデータをこのコネクション上へ流し、交換機100bはこのデータをクライアント60へ転送する。
【0016】
この時点で、クライアント60と交換機100b間のコネクションと、交換機100bとサーバ70間のコネクションの2つのコネクションがあることになるが、交換機100bはこのコネクションを1つにつなぎ合わせる。
【0017】
すなわち、クライアント60と交換機100b間、及び、交換機100bとサーバ70間の2つのトランスポート層のコネクションを1つに接続することにより、サーバ70とクライアント60とのそれぞれにトランスポート層の再送及びフロー制御を行なわせ、交換機100bは、当該コネクションに関する再送制御やフロー制御を行なう必要がなくなる。
【0018】
この動作を、スプライシングと呼ぶ。
【0019】
以下、従来のレイヤ7スイッチである交換機100bのスプライシングの処理を図面を参照して詳細に説明する。図19は、従来の交換機100bの構成を示すブロック図である。
【0020】
図19の交換機100bでは、クライアント側との通信を処理するクライアント側処理部10b、サーバ側との通信を処理するサーバ側処理部20b、各クライアントの接続先を判定する解析部30b、クライアントからの個々のデータ取得要求に対応する接続先のサーバを示すフォワーディングテーブル等を記録した記憶部40bを備えている。
【0021】
また、クライアント側処理部10bは、クライアント側の通信の終端を行なうクライアント側終端部11b、データの通信経路を切り替えるクライアント側切替部13b、各クライアントとのパケットの送受を行なうクライアント側通信部14bを備えている。またサーバ側処理部20bは、サーバ側の通信の終端を行なうサーバ側終端部21b、パケットのヘッダ情報を書き換えて更新するサーバ側更新部22b、データの通信経路を切り替えるサーバ側切替部23b、各サーバ70とのパケットの送受を行なうサーバ側通信部14bを備えている。
【0022】
クライアント60から交換機100bへのパケットは、図19の矢印Aからクライアント側切替部13bに届き、交換機100bからクライアント60へのパケットは図19の矢印B、Cに従ってクライアント側終端部11bやサーバ側更新部22bからクライアント60へと届けられる。
【0023】
また、サーバ側から交換機100bへのパケットは、図19の矢印Eから切替部23bに届き、交換機100bからサーバ70へのパケットは図19の矢印D等に従ってサーバ側終端部21bやサーバ側更新部22bからサーバ70へと届けられる。
【0024】
なお、クライアント側の切替部13bは、サーバ側更新部22bの指示に従って矢印Aから到着するパケットをクライアント側終端部11bかサーバ側更新部22bへと渡す。また、サーバ側の切替部23bはサーバ側終端部21bの指示に従って、矢印Eから到着するパケットをサーバ側更新部22b又は、サーバ側終端部21bへと渡す。
【0025】
まず、クライアント60が仮想サーバと接続しようとすると、コネクション確立のハンドシェイクが行われるが、この時のパケットは、サーバ側更新部22bがクライアント側切替部13bに指示して、クライアント60と、クライアント側終端部11bの間でやりとりされ、クライアント60とクライアント側終端部11bの間にコネクションが張られる。以下この時のコネクションの、クライアント60の初期シーケンス番号を“SC”、クライアント側処理部10bの初期シーケンス番号を“SU”とし、これを記録しておく。
【0026】
クライアント60は、このコネクション上にデータ取得要求(取得したいデータの識別子)を渡す。クライアント側終端部11bでは、トランスポート層プロトコルを処理して、このコネクション上の流れるデータを取り出して、解析部30bへとこのデータ取得要求を渡す。
【0027】
解析部30bは、例えばこのデータ取得要求を基に記憶部40bに記憶されたフォワーディングテーブルを参照する等の方法により、適切なサーバ70を選択することができる。そして、解析部30bは、サーバ側終端部21bに対してこの選択されたサーバ70へのコネクションを張るように指示し、サーバ側終端部21bは、指示されたサーバ70へとコネクションを張る。
【0028】
この時、サーバ側終端部21bとサーバ70との間で、コネクション確立のためのハンドシェイクが行われる。ここで、サーバ側終端部21bは、ハンドシェイクに関するパケットをサーバ側終端部21bとサーバ70との間でやりとりできるように、サーバ側切替部23bに対し適正な通信の経路を指示しておく。この時のコネクションのサーバ70の初期シーケンス番号を“SS”、サーバ側終端部21bの初期シーケンス番号を“SV”とし、これを記録しておく。
【0029】
次に、解析部30bがサーバ側終端部21bへと、データ取得要求を受け渡し、データ取得要求が確立されたコネクションを使ってサーバ70へと、データ取得要求を転送する。ここで、サーバ側終端部21bは、切替部23bに対して以降の当該サーバ70からの送られるパケットをサーバ側更新部22bへと渡すように切り換えを指示する。
【0030】
次に、サーバ70から、データ取得要求に対応するデータを乗せたパケットが交換機100bに到着する。このサーバ70から送られるパケットは、切替部23bによってサーバ側更新部22bへと受け渡される。
【0031】
サーバ側更新部22bは、このパケットの中継時においてヘッダ情報の更新を行なう。つまり、パケットのシーケンス番号とAck番号を書き換えて、必要があればトランスポート層プロトコルのチェックサムも正しく更新して、クライアント60へと送出する。
【0032】
また、これ以降の、サーバ70から送られたパケットのシーケンス番号とAck番号の更新は、そのパケットがクライアント側処理部10から(つまり、この交換機100bから)発信された場合のデータと同等になるように書き換えて更新する。
【0033】
例えば、上記で述べた以外のパケットがクライアント60から送信されていない場合には、次のように更新することができる。
【0034】
まず、シーケンス番号については、クライアント側終端部11bから受け取った、クライアント側終端部11bの初期シーケンス番号“SU”とサーバ側終端部21から受け取ったサーバ70の初期シーケンス番号“SS”の差を加える。すなわち、“更新するシーケンス番号=現在のシーケンス番号+SU−SS”である。この時、シーケンス番号の最大値を超える場合の処理については、トランスポート層プロトコルにおけるシーケンス番号の加算、減算の方法に準拠する。
【0035】
またAck番号については、クライアント側終端部11bから受け取った、クライアント60の初期シーケンス番号“SC”とサーバ側終端部21bから受け取ったサーバ側終端部21bの初期シーケンス番号“SV”の差を加える。すなわち、“更新するAck番号=現在のAck番号+SC−SV”とする。
【0036】
こうすることで、クライアント60のトランスポート層プロトコルは、このサーバ70からパケットをクライアント側処理部10bから(つまり、この交換機100bから)からやってきたパケットと見なして処理することができる。
【0037】
同様に、これ以降クライアント60からサーバ70に送られるパケットは、クライアント側切替部13bによってサーバ側更新部22へと渡され、当該パケットのシーケンス番号とAck番号を、当該パケットがサーバ側処理部20bから(つまり、交換機100bから)発せられたパケットと同等の値に書き換えて、送られる。すなわち、“更新するシーケンス番号=現在のシーケンス番号+SV−SC”、“更新するAck番号=現在のAck番号+SS−SU”と書き換えるのである。
【0038】
このようにして、以降のサーバ70とクライアント60の間データの授受は、トランスポート層プロトコルを終端するクライアント側終端部11bとサーバ側終端部21bを経由せずに、パケット毎にシーケンス番号を書き換えるのみ処理でやりとりすることができる。
【0039】
これが前述のコネクションスプライシングである。
【0040】
一般に、クライアント60からサーバ70にはデータ取得要求のような小さなデータ量しか流れないが、サーバ70からクライアント60には大量にデータが流れる。例えば、ウェブサーバに対してクライアントのウェブブラウザからアクセスする場合には、サーバ70からクライアント60には画像データ等の大量のデータが送信されることとなる。
【0041】
このコネクションスプライシングを行なうことによって、大量のデータを複雑なトランスポート層の終端処理(再送及びフロー制御等)をすることなく中継することが可能となり、スループットを向上することができる。
【0042】
【発明が解決しようとする課題】
しかし、上述した従来の交換機100bでは、スプライシング時においては、クライアント60から送られるデータ取得要求を交換機100bが参照することができないという問題があった。
【0043】
また、従来の交換機100bでは、最初にクライアント60から送られてきたデータ取得要求のみに基づいて、その要求に対応するサーバ70を決定しコネクションをスプライシングするため、コネクションスプライシング後にクライアント60から到着するデータ取得要求を、その要求に基づいて適切なサーバ70へと転送することができないという問題があった。
【0044】
また、最初に送られてきたデータ取得要求に基づく、選択されたサーバ70からクライアント60へのデータの転送が終了した場合には、同じサーバ70に対する他のデータ取得要求が残っている場合にも、前述のクローズ要求をサーバ70へ送りコネクションを切断している。
【0045】
クライアント60は、コネクションが切断されてしまうため、サーバ70が処理しなかった取得要求については、再びコネクション確立(Handshake:ハンドシェイク)からやり直して取得する必要があり、必要なデータを取得するまでの遅延が大きくなってしまうという問題があった。
【0046】
本発明の第1の目的は、上記従来技術の欠点を解決し、スプライシング中においても、クライアントからサーバへと送信されるデータ取得要求等のパケットを監視し、対応する終端処理を実行することのできる通信システムとそのパケット交換方法、及び交換プログラムを記録した記録媒体を提供することである。
【0047】
本発明の第2の目的は、上記従来技術の欠点を解決し、スプライシング中においても、クライアントからサーバへと送信されるデータ取得要求等のパケットを参照し、常に適切なサーバ70へのデータ取得要求の転送を実現し、かつサーバからクライアント側へ送信される大量のデータについては、パケット毎にシーケンス番号とAck番号等のヘッダ情報を書き換えるのみのスプライシングによる簡素化された終端処理により、従来の交換機と同等のスループットを同時に実現する通信システムとそのパケット交換方法、及び交換プログラムを記録した記録媒体を提供することである。
【0048】
本発明の第3の目的は、上記従来技術の欠点を解決し、クライアントからのデータ取得要求に応答して送信される全てのデータをクライアントが受け取るまで、クライアントと交換機の間で確立されたコネクションを切断せずに維持することにより、必要なデータを取得するまでの遅延を小さく保つことのできる通信システムとそのパケット交換方法、及び交換プログラムを記録した記録媒体を提供することである。
【0049】
【課題を解決するための手段】
上記目的を達成するため本発明の通信システムは、交換機を介してサーバとクライアントとの間でパケット通信を行なうパケット交換による通信システムにおいて、前記交換機が、前記サーバから前記クライアントに対して送信されるパケットの中継時に、当該パケットのヘッダ情報を、当該パケットが前記交換機から発信された場合に設定される内容に書き換えて、前記パケットを前記クライアントに対して発信し、前記クライアントからのデータ取得要求の中継時から、前記サーバから前記クライアントに対し送信される応答のパケットの送信が終了するまでの間、当該サーバから当該クライアントへの方向に対し片方向のスプライシングの処理を行ない、かつ前記クライアントから前記サーバへの方向の通信に対して再送制御及びフロー制御を行なうことを特徴とする。
【0050】
請求項2の本発明の通信システムは、前記交換機は、各前記クライアントからの接続を受け付け、当該クライアントとの間におけるコネクションを管理しパケットを送受するクライアント側処理部と、各前記サーバに対しアクセスし、当該サーバとの間におけるコネクションを管理しパケットを送受するサーバ側処理部と、前記サーバから前記クライアントに対して送信されるパケットの中継時に、前記パケットのヘッダ情報の書換えを行なって、前記パケットを前記クライアントに対し発信する手段と、前記サーバから当該クライアントへの方向に対し片方向のスプライシングの処理を行ない、かつ前記クライアントから前記クライアント側処理部への方向の通信及び前記サーバ側処理部から前記サーバへの方向の通信に対しては、確立したコネクションを切断することなく再送制御及びフロー制御を行なう手段を備えることを特徴とする。
【0051】
請求項3の本発明の通信システムは、前記クライアント側処理部は、各前記クライアントとの間のコネクションを制御し、各前記クライアントからの接続や要求を受け付けるクライアント側終端部と、前記サーバから前記クライアントに対し送信されるパケットを、ヘッダ情報を書き換えて中継するクライアント側更新部を備え、前記サーバ側処理部は、各前記サーバとの間のコネクションを管理し、前記クライアント側終端部から送られる各前記サーバに対する命令やデータを中継するサーバ側終端部と、各前記サーバから各前記クライアントに対し送信されるパケットを受け付けて、前記クライアント側更新部に送るサーバ側更新部を備えることを特徴とする。
【0052】
請求項4の本発明の通信システムは、前記パケットのヘッダ情報には、個々のパケットに分割された送信データにおける、当該パケット中のデータの順番を示すシーケンス番号と、当該パケットのデータ長と、通信相手が既に受信済みであるデータのシーケンス番号を示すAck番号を含むことを特徴とする。
【0053】
請求項5の本発明の通信システムは、前記パケットのヘッダ情報には、通信相手がまだ受信していない受信バッファの残り容量を示すWin値を含むことを特徴とする。
【0054】
請求項6の本発明の通信システムは、前記クライアント側終端部は、各前記クライアントから受け付けたパケットのヘッダ情報を、前記クライアント側更新部及び前記サーバ側終端部に通知する手段を備え、前記サーバ側更新部は、各前記サーバから各前記クライアントに対し送信されるパケットのヘッダ情報を前記サーバ側終端部に通知する手段を備え、前記クライアント側更新部及び前記サーバ側終端部は、前記通知されたヘッダ情報を記録し参照して、パケットのヘッダ情報を適正に書き換えることを特徴とする。
【0055】
請求項7の本発明の通信システムは、前記片方向のスプライシング処理が設定された状態において、前記クライアント側終端部は、各前記クライアントから受け付けたパケットに対する応答処理を前記クライアント側更新部に指示し、記クライアント側更新部は、前記応答処理の指示を受け付けて、当該クライアントに対する応答のパケットを生成して発信する手段を備えることを特徴とする。
【0056】
請求項8の本発明の通信システムは、前記サーバ側更新部は、1つの前記クライアントに対する複数の前記サーバからのパケットの送信を中継し、中継するパケットのヘッダ情報から、個々の前記サーバにおけるパケットの送信の終了の旨を示すフラグを除去する手段を備え、前記クライアントとの間のコネクションを切断することなく、前記複数のサーバを切り換えて発信されるパケットを前記クライアントに中継することを特徴とする。
【0057】
請求項9の本発明の通信システムは、前記クライアント側終端部及び前記サーバ側終端部は、前記クライアントから前記サーバに対して個々のパケットに分割されて送信される送信データを、元の分割する前の状態に復元し、各パケットを、サーバを選択して送信する手段を備えることを特徴とする。
【0058】
請求項10の本発明の通信システムは、各前記クライアントが接続する接続先のサーバを決定する解析部を備え、前記解析部は、前記クライアント側終端部から、前記クライアントが各前記サーバに対し発信する要求の情報を取得する手段と、前記要求に基づいて、当該クライアントが接続すべき接続先のサーバを判定する手段と、前記サーバ側終端部に対して、当該クライアントの前記判定された接続先のサーバへの接続を指示する手段を備えることを特徴とする。
【0059】
請求項11の本発明の通信システムは、前記クライアント側終端部及び前記サーバ側終端部は、前記クライアントから前記サーバに対して、個々のパケットに分割されて送信される送信データを元の分割する前の状態に復元した後に、当該サーバに対し送信する手段を備え、前記解析部は、前記元の分割する前の状態に復元された送信データに基づいて、前記接続先のサーバを判定する手段を備えることを特徴とする。
【0060】
請求項12の本発明の通信システムは、前記解析部は、前記クライアントにより発信された未処理のデータ取得要求を、その接続先のサーバ毎に順次グループに分類する手段と、前記サーバ側終端部に対して、分類された各前記グループ毎に、対応するサーバへの接続と当該グループに分類された前記データ取得要求の実行を指示する手段を備えることを特徴とする。
【0061】
請求項13の本発明の交換機は、複数のサーバとクライアントとの通信ネットワークを介したパケット通信を中継する交換機において、前記サーバから前記クライアントに対して送信されるパケットの中継時に、当該パケットのヘッダ情報を、当該パケットが交換機から発信された場合に設定される内容に書き換えて、前記パケットを前記クライアントに対して発信し、前記クライアントからのデータ取得要求の中継時から、前記サーバから前記クライアントに対し送信される応答のパケットの送信が終了するまでの間、当該サーバから当該クライアントへの方向に対し片方向のスプライシングの処理を行ない、かつ前記クライアントから前記サーバへの方向の通信に対して再送制御及びフロー制御を行なうことを特徴とする。
【0062】
請求項14の本発明の交換機は、各前記クライアントからの接続を受け付け、当該クライアントとの間におけるコネクションを管理しパケットを送受するクライアント側処理部と、各前記サーバに対しアクセスし、当該サーバとの間におけるコネクションを管理しパケットを送受するサーバ側処理部と、前記サーバから前記クライアントに対して送信されるパケットの中継時に、前記パケットのヘッダ情報の書換えを行なって、前記パケットを前記クライアントに対し発信する手段と、前記サーバから当該クライアントへの方向に対し片方向のスプライシングの処理を行ない、かつ前記クライアントから前記クライアント側処理部への方向の通信及び前記サーバ側処理部から前記サーバへの方向の通信に対しては、確立したコネクションを切断することなく再送制御及びフロー制御を行なう手段を備えることを特徴とする。
【0063】
請求項15の本発明の交換機は、前記クライアント側処理部は、各前記クライアントとの間のコネクションを管理し、各前記クライアントからの接続や要求を受け付けるクライアント側終端部と、前記サーバから前記クライアントに対し送信されるパケットを、ヘッダ情報を書き換えて中継するクライアント側更新部を備え、前記サーバ側処理部は、各前記サーバとの間のコネクションを管理し、前記クライアント側終端部から送られる各前記サーバに対する命令やデータを中継するサーバ側終端部と、各前記サーバから各前記クライアントに対し送信されるパケットを受け付けて、前記クライアント側更新部に送るサーバ側更新部を備えることを特徴とする。
【0064】
請求項16の本発明の交換機は、前記パケットのヘッダ情報には、個々のパケットに分割された送信データにおける、当該パケット中のデータの順番を示すシーケンス番号と、当該パケットのデータ長と、通信相手が既に受信済みであるデータのシーケンス番号を示すAck番号を含むことを特徴とする。
【0065】
請求項17の本発明の交換機は、前記パケットのヘッダ情報には、通信相手がまだ受信していない受信バッファの残り容量を示すWin値を含むことを特徴とする。
【0066】
請求項18の本発明の交換機は、前記クライアント側終端部は、各前記クライアントから受け付けたパケットのヘッダ情報を、前記クライアント側更新部及び前記サーバ側終端部に通知する手段を備え、前記サーバ側更新部は、各前記サーバから各前記クライアントに対し送信されるパケットのヘッダ情報を前記サーバ側終端部に通知する手段を備え、前記クライアント側更新部及び前記サーバ側終端部は、前記通知されたヘッダ情報を記録し参照して、パケットのヘッダ情報を適正に書き換えることを特徴とする。
【0067】
請求項19の本発明の交換機は、前記片方向のスプライシング処理が設定された状態において、前記クライアント側終端部は、各前記クライアントから受け付けたパケットに対する応答処理を前記クライアント側更新部に指示し、記クライアント側更新部は、前記応答処理の指示を受け付けて、当該クライアントに対する応答のパケットを生成して発信する手段を備えることを特徴とする。
【0068】
請求項20の本発明の交換機は、前記サーバ側更新部は、1つの前記クライアントに対する複数の前記サーバからのパケットの送信を中継し、中継するパケットのヘッダ情報から、個々の前記サーバにおけるパケットの送信の終了の旨を示すフラグを除去する手段を備え、前記クライアントとの間のコネクションを切断することなく、前記複数のサーバを切り換えて発信されるパケットを前記クライアントに中継することを特徴とする。
【0069】
請求項21の本発明の交換機は、前記クライアント側終端部及び前記サーバ側終端部は、前記クライアントから前記サーバに対して個々のパケットに分割されて送信される送信データを、元の分割する前の状態に復元し、各パケットを、サーバを選択して送信する手段を備えることを特徴とする。
【0070】
請求項22の本発明の交換機は、各前記クライアントが接続する接続先のサーバを決定する解析部を備え、前記解析部は、前記クライアント側終端部から、前記クライアントが各前記サーバに対し発信する要求の情報を取得する手段と、前記要求に基づいて、当該クライアントが接続すべき接続先のサーバを判定する手段と、前記サーバ側終端部に対して、当該クライアントの前記判定された接続先のサーバへの接続を指示する手段を備えることを特徴とする。
【0071】
請求項23の本発明の交換機は、前記クライアント側終端部及び前記サーバ側終端部は、前記クライアントから前記サーバに対して、個々のパケットに分割されて送信される送信データを元の分割する前の状態に復元した後に、当該サーバに対し送信する手段を備え、前記解析部は、前記元の分割する前の状態に復元された送信データに基づいて、前記接続先のサーバを判定する手段を備えることを特徴とする。
【0072】
請求項24の本発明の交換機は、前記解析部は、前記クライアントにより発信された未処理のデータ取得要求を、その接続先のサーバ毎に順次グループに分類する手段と、前記サーバ側終端部に対して、分類された各前記グループ毎に、対応するサーバへの接続と当該グループに分類された前記データ取得要求の実行を指示する手段を備えることを特徴とする。
【0073】
請求項25の本発明のパケット交換方法は、複数のサーバとクライアントとの間の、通信ネットワークを介したパケット通信を中継する交換機のパケット交換方法において、前記サーバから前記クライアントに対して送信されるパケットの中継時に、当該パケットのヘッダ情報を、当該パケットが交換機から発信された場合に設定される内容に書き換えて、前記パケットを前記クライアントに対して発信し、前記クライアントからのデータ取得要求の中継時から、前記サーバから前記クライアントに対し送信される応答のパケットの送信が終了するまでの間、当該サーバから当該クライアントへの方向に対し片方向のスプライシングの処理を行ない、かつ前記クライアントから前記サーバへの方向の通信に対して再送制御及びフロー制御を行なうことを特徴とする。
【0074】
請求項26の本発明のパケット交換方法は、各前記クライアントとの間のコネクションを管理し、各前記クライアントからの接続や要求を受け付けるステップと、前記サーバから前記クライアントに対し送信されるパケットを、ヘッダ情報を書き換えて中継するステップと、各前記サーバとの間のコネクションを管理し、前記クライアントから送られる各前記サーバに対する命令やデータを中継するステップを備え、前記パケットのヘッダ情報には、個々のパケットに分割された送信データにおける、当該パケット中のデータの順番を示すシーケンス番号と、当該パケットのトランスポート層以下のデータ長と、通信相手が既に受信済みであるデータのシーケンス番号を示すAck番号と、通信相手がまだ受信していない受信バッファの残り容量を示すWin値を含むことを特徴とする。
【0075】
請求項27の本発明のパケット交換方法は、1つの前記クライアントに対する複数の前記サーバからのパケットの送信を中継し、中継するパケットのヘッダ情報から、個々の前記サーバにおけるパケットの送信の終了の旨を示すフラグを除去するステップを備え、前記クライアントとの間のコネクションを切断することなく、前記複数のサーバを切り換えて発信されるパケットを前記クライアントに中継することを特徴とする。
【0076】
請求項28の本発明のパケット交換方法は、前記クライアントから前記サーバに対して個々のパケットに分割されて送信される送信データを、元の分割する前の状態に復元し、各パケットを、サーバを選択して送信するステップを備えることを特徴とする。
【0077】
請求項29の本発明のパケット交換方法は、前記クライアントが各前記サーバに対し発信する要求の情報を取得するステップと、前記要求に基づいて、当該クライアントが接続すべき接続先のサーバを判定するステップと、当該クライアントの前記判定された接続先のサーバへの接続を指示するステップを備えることにより、各前記クライアントが接続する接続先のサーバを決定することを特徴とする。
【0078】
請求項30の本発明のパケット交換方法は、前記クライアントにより発信された未処理のデータ取得要求を、その接続先のサーバ毎に順次グループに分類するステップと、分類された各前記グループ毎に、対応するサーバへの接続と当該グループに分類された前記データ取得要求の実行を指示するステップを備えることを特徴とする。
【0079】
請求項31の本発明の交換プログラムを記録した記録媒体は、コンピュータを制御することにより、複数のサーバとクライアントとの間の、通信ネットワークを介したパケット通信を中継する交換プログラムをコンピュータにより読み取り可能に記録した記録媒体において、前記交換プログラムは、前記サーバから前記クライアントに対して送信されるパケットの中継時に、当該パケットのヘッダ情報を、当該パケットが前記交換機から発信された場合に設定される内容に書き換えて、前記パケットを前記クライアントに対して発信し、前記クライアントからのデータ取得要求の中継時から、前記サーバから前記クライアントに対し送信される応答のパケットの送信が終了するまでの間、当該サーバから当該クライアントへの方向に対し片方向のスプライシングの処理を行ない、かつ前記クライアントから前記サーバへの方向の通信に対して再送制御及びフロー制御を行なうことを特徴とする。
【0080】
請求項37の本発明のサーバは、交換機を介してサーバとクライアントとの間でパケット通信を行なう通信システムにおけるサーバであって、前記交換機における前記クライアントからのデータ取得要求の中継時から、前記クライアントに対し送信される応答のパケットの送信を終了するまでの間、片方向のスプライシングによって当該クライアントへに対し前記パケットを送信することを特徴とする。
【0081】
請求項45の本発明のクライアントは、交換機を介してサーバとクライアントとの間でパケット通信を行なう通信システムにおけるクライアントであって、前記交換機における前記サーバへのデータ取得要求の中継時から、前記サーバから受信される応答のパケットの送信を終了するまでの間、片方向のスプライシングによって当該サーバから前記パケットを受信することを特徴とする。
【0082】
請求項55の本発明の通信システムは、前記解析部は、前記クライアントにより発信された未処理のデータ取得要求を、その接続先のサーバ毎に順次グループに分類する手段と、前記サーバ側終端部に対して、分類された各前記グループ毎に、対応するサーバへの接続と当該グループに分類された前記データ取得要求の実行及び取得要求の送信後にサーバとのコネクションを切断する事を指示する手段を備えることを特徴とする。
【0083】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【0084】
まず、通信ネットワークを介しサーバとクライアントとの間でパケット通信を行なう本実施の形態による通信システムの概念について、図1を参照して説明する。図1において、100は複数のサーバの通信ネットワークへの接続を中継する本発明による片方向終端交換機、60はクライアント、70はサーバである。
【0085】
本発明においては、大量のデータが転送されることの多い、サーバ70からクライアント60への方向の通信のみ対してスプライシングを行ない、同時にクライアント60からサーバ70への方向の通信に対しては、再送制御やフロー制御等の終端処理を実行する。
【0086】
従来では、クライアント60と交換機100b間及び交換機100bとサーバ70間のコネクションの2つのコネクションを、クライアント60サーバ70間の1つのコネクションにスプライシングを行ない、交換機100bでは、再送やフロー制御等の終端処理を行なうことができなかったのに対して、本本発明の片方向終端交換機100では、クライアント60とサーバ70との間を両方向共に単一のTCPコネクションにするのではなく、サーバ70からクライアント60方向に流れるデータに対してのみ、スプライシング処理によるパケットのシーケンス番号やAck番号の書き換えのみを行なって、サーバ70やクライアント60自身にその再送制御及びフロー制御を行なわせるものである。
【0087】
ここで、クライアント60から片方向終端交換機100へのトランスポート層のコネクションにおいては、片方向終端交換機100は、クライアント60に対して、クライアント60から片方向終端交換機100方向へ流れるデータの再送制御及びフロー制御を行なって終端する。更に、交換機100とサーバ70間のコネクションも、片方向終端交換機100は、サーバ70に対して、片方向終端交換機100からサーバ70方向へ流れるデータの再送制御及びフロー制御を行なって終端する。
【0088】
図2は、本発明の第1の実施の形態の片方向終端交換機100を用いたネットワーク構成の一例を示すブロック図である。
【0089】
本実施の形態では、図18の例に示される従来技術と比べて、従来の交換機100bの代わりに、片方向のみのスプライシングを行なう片方向終端交換機100を備える点がその特徴である。
【0090】
従来の交換機100bではクライアント60とサーバ70との間の両方向の通信のそれぞれに、通信の終端を行なう状態とスプライシングの状態とを同時に同一の状態を設定することしかできなかったが、本実施の形態の片方向終端交換機100では、大量のデータが転送されることの多い、サーバ70からクライアント60への方向の通信のみ対してスプライシングを行ない、同時にクライアント60からサーバ70への方向の通信に対しては、再送制御やフロー制御等の終端処理を実行するのである。
【0091】
図2のサーバ群71内の各サーバ70及びクライアント60の役割は、図18を用いて説明した従来技術のものと同様である。またこれらが、パケット交換網のネットワーク50で互いに接続されている点も同様である。更に、図2のサーバ群71の各サーバ70が提供するサービスも、従来技術と同じくトランスポート層プロトコルのコネクションを用いて接続され、パケット内には、パケットに含まれているトランスポート層でのデータの位置を示すシーケンス番号、パケット中のデータのトランスポート層でのデータ長、また、通信相手に対して、今までの中で確実に受信を終えたているトランスポート層でのデータ位置を示すAck番号をヘッダ情報として含むものとする。また、コネクション確立や終了の方法も全く同様とする。
【0092】
本実施の形態の片方向終端交換機100の機能は、従来の交換機100bとスプライシングの方法において相違する。
【0093】
従来は、クライアント60と交換機100b間及び交換機100bとサーバ70間のコネクションの2つのコネクションを、クライアント60サーバ70間の1つのコネクションにスプライシングするのであり、この場合交換機100bでは、再送やフロー制御等の終端処理を行なうことができない。
【0094】
しかし、本実施の形態の片方向終端交換機100においては、クライアント60とサーバ70との間を両方向共に単一のTCPコネクションにするのではなく、サーバ70からクライアント60方向に流れるデータに対してのみ、従来のスプライシングのようにパケットのシーケンス番号やAck番号の書き換えのみを行なって、サーバ70やクライアント60自身にその再送制御及びフロー制御を行わせる。
【0095】
ここで、クライアント60から片方向終端交換機100へのトランスポート層のコネクションにおいては、片方向終端交換機100は、クライアント60に対して、クライアント60から片方向終端交換機100方向へ流れるデータの再送制御及びフロー制御を行なって終端する。更に、交換機100とサーバ70間のコネクションも、片方向終端交換機100は、サーバ70に対して、片方向終端交換機100からサーバ70方向へ流れるデータの再送制御及びフロー制御を行なって終端することが従来と異なる。
【0096】
以下この本発明のスプライシングの方法を、片方向スプライシングと呼ぶ。
【0097】
図3は、本発明の第1の実施の形態の片方向終端交換機100の構成を示すブロック図である。
【0098】
図3を参照すると、本実施の形態の片方向終端交換機100は、クライアント側との通信を処理するクライアント側処理部10、サーバ側との通信を処理するサーバ側処理部20、アプリケーション層の通信データを解析し又各クライアントの接続先を判定する解析部30、クライアントからの個々のデータ取得要求に対応する接続先のサーバを示すフォワーディングテーブル等を記録した記憶部40を備えている。
【0099】
また、クライアント側処理部10は、クライアント側の通信の終端を行なう終端部11、パケットのヘッダ情報の書き換えて更新する更新部12、各クライアントとのパケットの送受を行なう通信部14を備えている。またサーバ側処理部20は、サーバ側の通信の終端を行なう終端部21、パケットのヘッダ情報を書き換えて更新する更新部22、データの通信経路を切り替える切替部23、各サーバ70とのパケットの送受を行なう通信部24を備えている。
【0100】
まず、本実施の形態の交換機100の各構成要素の機能を概説する。
【0101】
クライアント側終端部11
クライアント側終端部11は、クライアント60とのトランスポート層でのコネクションの確立を行ない、クライアント60との間でトランスポート層での再送制御やフロー制御を含むデータの受け取りを行なう。
【0102】
コネクションが確立した場合には、そのクライアント60のWin値(受信バッファの残り容量)をサーバ側終端部21へ通知する。
【0103】
片方向スプライシング状態では、クライアント60からのパケットの受け取り確認の応答(肯定応答、Acknowledge:Ack)については、クライアント側終端部11が行なうのではなく、クライアント側更新部12に対して、Ack番号及びフロー制御用のWin値を通知して応答の送信を依頼する。また、片方向スプライシング状態では、クライアント60からデータを受け取ると、クライアント60からのパケットのAck番号、Win値をサーバ側終端部21に受け渡して、サーバ70に対する応答(Ack)の送信依頼を行なう。また、クライアント側更新部12から、現在のAck番号及びWin値の問い合わせにも回答する
【0104】
片方向スプライシング状態への移行は、サーバ側更新部22から通知される。
【0105】
更に、クライアント60からコネクション切断要求を示す終了フラグ付きパケットが到着すれば、クライアント60とクライアント側処理部10との間の双方向のコネクションの内で、クライアント60からクライアント側処理部10へ向かう側のコネクションについてのトランスポート層の切断処理を行なう。更にこの場合には、サーバ側終端部21へ、クライアント60からクライアント側処理部10へ向かう側のコネクションが切断されたことを通知する。
【0106】
クライアント側処理部10からクライアント60に向かう方向のコネクションについては、サーバ70から到着する終了フラグ付きパケットの中のデータの最終シーケンス番号をサーバ側更新部22が通知するので、この最終シーケンス番号“F”を“更新F=F−SS+SU”のように更新する。そして以後これと同じAck番号が到着した場合には、これによりコネクションが切断されたことを認識し(つまり、終了フラグ付きパケットの送信と、それに対する肯定応答のパケットが到着したとして)、クライアント側処理部10からクライアント60へ向かうコネクションのトランスポート層の切断処理を行なう。ここで、“SS”は、サーバ70の初期シーケンス番号であり、“SU”は、クライアント側処理部10の初期シーケンス番号であり、詳細は後述する。
【0107】
クライアント側更新部12
サーバ70からクライアント60へ送信されるパケットを、サーバ側更新部22から受け取り、そのパケットのシーケンス番号やAck番号、Win値等のヘッダ情報を書き換えて、その更新したパケットをクライアント60に送信する。
【0108】
シーケンス番号は、“シーケンス番号:=パケットのシーケンス番号−SS+SU”により書き換えることができる。ここで、“SS”は、サーバ側処理部20とサーバ70とのコネクションの(サーバ70の)初期シーケンス番号。“SU”は、クライアント側処理部10とクライアント60とのコネクションの(クライアント側処理部10の)初期シーケンス番号である。これらの値は、それぞれクライアント側終端部11及びサーバ側終端部21から得る。
【0109】
また、シーケンス番号の加減算については、シーケンス番号の最大値を超えたり最小値を下回る場合の処理は、当該トランスポートプロトコルのシーケンス番号の加減算の扱いに準拠するものとする。
【0110】
Ack番号とWin値においては、それぞれクライアント側処理部10からクライアント60に対して現時点で新規のパケットが送信された場合に返される最新のAck番号とWin値に書き換える。これら最新のAck番号とWin値は、クライアント側終端部11から取得することができる。
【0111】
また、必要であれば、トランスポート層プロトコルのチェックサムも正しく更新する。
【0112】
また、クライアント側終端部11から、クライアント60に対する応答(Ack)の送信依頼を受け取った時にも、Ack番号、Win値は上記の通りに、シーケンス番号については、一番最近に使用したシーケンス番号を使って応答パケットを生成し送信する。
【0113】
クライアント側更新部12には、クライアント60にサーバ70から送られるパケットが順次サーバ側更新部22から送られるのであり、その送られたパケットのシーケンス番号の書き換え後の値を順次記録する。上記の一番最近に使用したシーケンス番号とは、この書き換え後のシーケンス番号の最新のものを指す。また、シーケンス番号の初期値とは、片方向スプライシング状態になると同時にサーバ側更新部22からパケットが到着するので、このパケット対する書き換えたシーケンス番号を初期値とする。
【0114】
また、クライアント側終端部11から送信依頼されるクライアント60への応答(Ack)のパケットは、送信を少し待たせて、サーバ側更新部22からのパケットと併せて1つのパケットとして送信する方法も可能である。
【0115】
解析部30
クライアント60から発信されたデータ取得要求(複数でもよい)の情報をクライアント側終端部11から取得し、アプリケーション層の終端を行ないその情報を解析し、適切な接続先のサーバ70を決定する。接続先の決定の方法としては、例えば、クライアント60から要求される個々のデータに対応して、当該データを提供するサーバ70名を記録したテーブル(以下、このテーブルをフォワーディングテーブルと呼ぶこととする)を予め備え、このフォワーディングテーブルを検索する等の方法により決定することができる。
【0116】
また、この接続先のサーバ70を決定すると、そのデータ取得要求と接続先のサーバ70名をサーバ側終端部21に受け渡し、接続を指示する。
【0117】
記憶部40
解析部30が適切なサーバ70を選択するための情報を記憶する。例えば、記憶部40には、上記のフォワーディングテーブルを記録することにより、解析部30からの検索要求に応答して適切なサーバ70名を返すことができる。
【0118】
サーバ側終端部21
解析部30から指示される接続先のサーバ70名に従い、その接続先のサーバ70にトランスポート層のコネクションを確立する。
【0119】
このコネクションの確立時には、クライアント側終端部11から通知されたWin値(受信バッファの残り)を、サーバ側処理部20のWin値の初期値として登録し使用する。
【0120】
このサーバ70とのコネクションの確立時には、サーバ70から送られるパケットをサーバ側終端部21が受け取るように、切替部23に接続の切り換えを予め指示する。
【0121】
サーバ側終端部21は、このコネクションが確立すると、データ取得要求を確立したトランスポート層コネクションを用いてサーバ70に送る。続いて切替部23へ指示して、サーバ70から送られるこのコネクションに関するパケットを、以後はサーバ側更新部22が受け取るように切り換えを行なう。これ以降は、片方向スプライシング状態となる。
【0122】
またこれ以降は、サーバ70から送られたパケットのAck番号とWin値が順次サーバ側更新部22から通知されるようになり、これらの値を使って、サーバ70へ送るトランスポート層のデータ(データ取得要求等)についての、再送制御及び、フロー制御を行なう。
【0123】
またこれ以降は、クライアント60が当該パケットの受信確認の応答(Ack)のパケットを順次発信し、クライアント側終端部11がこれを受信してその各パケットのAck番号及びWin値が順次サーバ側終端部21に通知される。サーバ側終端部21では、通知されたAck番号を“Ack番号:=クライアント側終端部11から通知されたAck番号−SU+SS”として更新し、またWin値は通知された値をそのまま用いて、サーバ70に対する当該パケットの受信確認の応答(Ack)のパケットを生成し、これをサーバ70に送信する。
【0124】
ここで“SU”は、クライアント60とクライアント側処理部10の間のコネクションの、クライアント側処理部10の初期シーケンス番号であり、“SS”は、サーバ側処理部20とサーバ70とのコネクションの、サーバ70側の初期シーケンス番号である。この“SU”の値は、クライアント側終端部11から通知される。
【0125】
また、シーケンス番号の加減算においては、シーケンス番号の最大値を超えたり最小値を下回る場合の処理は、当該トランスポートプロトコルのシーケンス番号の加減算の扱いに準拠するものとする。
【0126】
更に、クライアント60からコネクションの切断要求が発信されると、クライアント側終端部11がこれを受信して、サーバ側終端部21に通知される。サーバ側終端部21では、クライアント60とサーバ70間の双方向のコネクションの内で、サーバ側処理部20からサーバ70へ向かうコネクションが切断されたものとして(終了フラグ付きパケットをサーバ70へ送ったものとして)、切断処理を行なう。またこの場合に、クライアント60からクライアント側処理部10へ向かうコネクションの切断処理は、クライアント側終端部11により行われる。
【0127】
更に、サーバ70からクライアント60に向かうコネクションについては、サーバ側終端部21は、サーバ側更新部22から、サーバ70から到着する終了フラグ付きパケットの中のデータの最終シーケンス番号の通知を受けて、この最終シーケンス番号“F”を、“更新F=F−SS+SU”として更新して記録しておく。もし、この更新された最終シーケンス番号と同じAck番号が到着した場合には、コネクションは切断されたものとして(終了フラグ付きパケット及び、それに対するAckパケットが到着したものとして)、サーバ70から交換機100を介してクライアント60へ向かうコネクションのトランスポート層の切断処理をする。
【0128】
サーバ側更新部22
サーバ側更新部22は、サーバ70からクライアント60に送信されるパケットを、サーバ70から受け付けてクライアント側更新部12に送る。また、サーバ側更新部22は、サーバ70からパケットを受信する度に、そのパケットのAck番号及びWin値をサーバ側終端部21へ通知する。
【0129】
受信したパケットのトランスポート層データの長さが“0”の場合には、クライアント側更新部12へ送らずにそのパケットを破棄する。また、“0”でない場合には、パケットをクライアント側更新部12へと受け渡す。
【0130】
また、当該コネクションの確立後における“0”でないパケットの初めての受信時には、そのパケットをクライアント側更新部12へ受け渡すと同時に、クライアント側終端部11に対して片方向スプライシングの開始の指示を出す。
【0131】
また、サーバ70から終了フラグ付きのパケットを受信した場合には、そのパケット内のデータの最終シーケンス番号“F”を、サーバ側終端部21及びクライアント側終端部11へ渡す。
【0132】
次に、本実施の形態の交換機100の各構成要素の動作を説明する。
【0133】
図4は、本実施の形態のクライアント側終端部11の動作を説明するためのフローチャートである。
【0134】
図4を参照すると、本実施の形態のクライアント側終端部11は、まずクライアント60からパケットを受信し(ステップ301)、もしそれがコネクション確立に関する一連のパケットの場合には(ステップ302)、クライアント60とのトランスポート層でのコネクションの確立を行ない(ステップ303)、クライアント60の初期シーケンス番号“SC”及び、クライアント側処理部10の初期シーケンス番号“SU”を記憶し(ステップ304)、クライアント60に応答(Ack)を返して、クライアント60との間でトランスポート層での再送制御やフロー制御を含むデータの受け取りを行なう(ステップ305)。
【0135】
コネクション確立後、後に述べる、片方向スプライシング状態になるまでは(ステップ306)、クライアント60に応答(Ack)を返して、クライアント60との間でトランスポート層での再送制御やフロー制御を含むデータの受け取りを行なう(ステップ307)。またサーバ側終端部21には、この時のクライアント60の側のWin値を渡しておく。
【0136】
片方向スプライシング状態になれば(ステップ306)、以後データの受け取り確認の応答(Ack)は、クライアント側終端部11が行なうのではなく、クライアント側更新部12にAck番号及びフロー制御用のWin値を通知して応答の送信を依頼する(ステップ308)。また、片方向スプライシング状態では、クライアント60からデータを受け取ると、クライアント60からのパケットのAck番号、Win値をサーバ側終端部21に受け渡して、サーバ70に対する応答の送信依頼を行なう(ステップ309)。また、クライアント側更新部12からの、現在のAck番号及びWin値の問い合わせにも回答する。この片方向スプライシング状態への移行は、サーバ側更新部22から通知される。
【0137】
クライアント60からコネクション切断要求を示す終了フラグ付きパケットが到着した場合には(ステップ310)、クライアント60とクライアント側処理部10の双方向のコネクションの内、クライアント60からクライアント側処理部10へ向かう側のコネクションが切断されたものとしてトランスポート層の切断処理を行なう(ステップ311)。更に、サーバ側終端部21に対して、クライアント60からクライアント側処理部10へ向かう側のコネクションが切断されたことを通知する(ステップ312)。
【0138】
クライアント側処理部10からクライアント60へ向かうコネクションについては、サーバ70から到着する終了フラグ付きパケットの中のデータの最終シーケンス番号がサーバ側更新部22から通知されるため、この最終シーケンス番号“F”を“更新F=F−SS+SU”のように更新して記録しておく。
【0139】
もし、この最終シーケンス番号と同じAck番号が到着した場合には、コネクションは切断されたものとして(終了フラグ付きパケットの送信とそれに対するAckパケットが到着したとして)、トランスポート層の切断処理を行なう(ステップ313、314)。
【0140】
図5は、本実施の形態のクライアント側更新部12の動作を説明するためのフローチャートである。
【0141】
図5を参照すると、本実施の形態のクライアント側更新部12は、まずクライアント側終端部11からの命令や、サーバ側更新部からのパケットを受け付ける(ステップ401)。もし、サーバ側更新部22からクライアント60に送信するパケットを受け取ると(ステップ402)、そのパケットのシーケンス番号、Ack番号、Win値等を書き換えて(ステップ403)、クライアント60へ更新されたパケットを送信する(ステップ404)。ここでの、シーケンス番号、Ack番号、Win値の書き換え方法は、前述の通りである。
【0142】
また、クライアント側終端部11からクライアントへの応答(Ack)の送信依頼を受け取った場合には(ステップ405)、Ack番号、Win値は前述の通りに、シーケンス番号は一番最近に使用したシーケンス番号を用いて応答(Ack)のパケットを生成し(ステップ406)、クライアント60に送信する(ステップ404)。この応答のパケットの生成の方法も、前述の通りである。
【0143】
また、クライアント側終端部11から依頼されるクライアント60への肯定応答(Ack)の送信は、少し待たせて、サーバ70がクライアント60に送るパケットをサーバ側更新部22から受けて、これと併せて1つのパケットとして送信する方法も可能である。
【0144】
図6は、本実施の形態のサーバ側終端部21の動作を説明するためのフローチャートである。
【0145】
図6を参照すると、本実施の形態のサーバ側終端部21は、まず解析部30からの命令や、サーバ側更新部22やクライアント側終端部11からのAck番号、Win値の送信を受け付ける(ステップ501)。
【0146】
もし、解析部30から、コネクション確立の依頼があれば(ステップ502)、その解析部30が指定する接続先のサーバ70に対して、トランスポート層のコネクションを確立し(ステップ503)、初期シーケンス番号SV、SSを記録する(ステップ504)。このコネクション確立時には、サーバ70から到着するパケットをサーバ側終端部21が受け取るように、予め切替部23に指示しておく。
【0147】
コネクションが確立済みの時に、クライアント60から送られたパケットがサーバ70へ送るデータ取得依頼である場合には(ステップ505)、確立済みのトランスポート層コネクションを用いてデータ取得要求をサーバ70へと送るのであるが、もしこれがコネクション確立後にサーバ70へ送る最初のデータ取得要求である場合には(ステップ506)、切替部23へ指示して、これ以降のサーバ70からの該当するコネクションに関するパケットをサーバ側更新部22が受け取るように指示する(ステップ507)。そして、確立したトランスポート層コネクションを用いてデータ取得要求をサーバ70へと送る(ステップ508)。
【0148】
ステップ501において、サーバ側更新部22から、サーバ70から受け取ったパケットのAck番号とWin値が通知された場合は(ステップ509)、この各値を登録し、サーバ70へ送るトランスポート層のデータ(データ取得要求等)についての、再送制御やフロー制御等に用いる(ステップ510)。
【0149】
ステップ501において、クライアント側終端部11から、Ack番号及びWin値が知らされた場合は(ステップ511)、この値を前述の説明のように更新して、サーバ70へ送るトランスポート層のデータのAck番号及びWin値を決定してパケットを生成し(ステップ512)、そして、サーバ70へと応答(Ack)のパケットを送信し(ステップ513)、また、サーバ70へ送るトランスポート層のデータのAck番号及びWin値もこの値に更新する。
【0150】
更に、クライアント側終端部11から当該コネクションが切断されたことが通知されれば(ステップ514)、サーバ側処理部20とサーバ70間の双方向コネクションの内、サーバ側処理部20からサーバ70へ向かうコネクションが切断されたものとして(終了フラグ付きパケットをサーバ70へ送ったものとして)、トランスポート層の切断処理を行なう(ステップ515)。
【0151】
サーバ側処理部20からクライアント60へ向かうコネクションについては、サーバ70から到着する終了フラグ付きパケットの中のデータの最終シーケンス番号をサーバ側更新部22が通知するので、この最終シーケンス番号“F”を、前述の方法により更新して、もし更新された最終シーケンス番号と同じAck番号が到着した場合には(ステップ516)、コネクションは切断されたものとして(終了フラグ付きパケット及び、それに対するAckパケットが到着したものとして)、サーバ側処理部20からクライアント60へ向かうコネクションのトランスポート層の切断処理を行なう(ステップ517)。また、切替部23へこれ以降の当該コネクションのパケットをサーバ側終端部21に送るように指示する(ステップ514)。
【0152】
図7は、本実施の形態のサーバ側更新部22の動作を説明するためのフローチャートである。
【0153】
サーバ側更新部22は、まずサーバ70からクライアント60に送られるパケットを順次サーバ70から受信し(ステップ601)、そのパケットに書かれているAck番号及び、Win値を、サーバ側終端部21へ通知する(ステップ602)。
【0154】
サーバ70から終了フラグ付きパケットが到着した場合には(ステップ603)、そのパケット内のデータの最終シーケンス番号“F”を、サーバ側終端部21及びクライアント側終端部11へと受け渡し(ステップ604)、パケットをそのままクライアント側更新部12へと受け渡す(ステップ609)。
【0155】
ステップ603において、終了フラグ付きでないパケットを受信した時は、そのパケットのトランスポート層データの長さが“0”の場合には(ステップ605)パケットを破棄する(ステップ606)。
【0156】
また、データ長が“0”でない時は(ステップ605)、そのパケットをクライアント側更新部12へ受け渡す(ステップ609)のであるが、ただし、もし当該コネクションの“0”でない初めてのパケットをクライアント側更新部12へ受け渡す場合には(ステップ607)、同時にクライアント側終端部11へ片方向スプライシング開始の指示を出す(ステップ608)。
【0157】
図8は、本実施の形態の片方向終端交換機100内のデータの流れを説明するための図であり、片方向スプライシング動作が行われている時に、シーケンス番号、Ack番号、Win値、送信データ等がどのようにクライアント60、サーバ70、クライアント側終端部11、サーバ側終端部21、クライアント側更新部12、サーバ側更新部22等でやりとりされるのかを示している。
【0158】
クライアント60からクライアント側終端部11へのデータ送信とその応答、サーバ側終端部21からサーバ70へのデータ送信とその応答、サーバ70からクライアント60へのデータ送信とその応答の流れ、及び、受信バッファの残りを示すWin値が正しく処理されていることを以下に順に示す。
【0159】
クライアント60からクライアント側終端部11
クライアント60からのデータのシーケンス番号は、クライアント側終端部11でのトランスポート層プロトコル処理を経て、フローチャートの図4におけるステップ308で示したように(図8のY001に相当)、クライアント側更新部12からクライアント60へ送信される応答パケットのAck番号として反映される。
【0160】
また、クライアント側終端部11の受信バッファの残りも同様に、フローチャートの図4におけるステップ309で示したように(図8のY004に相当)、クライアント側更新部12からクライアント60へ送信されるパケットのWin値として反映され、適切な再送制御やフロー制御のために用いられる。
【0161】
サーバ側終端部21からサーバ70
サーバ側終端部21からサーバ70へのデータについては、シーケンス番号がサーバ70内のトランスポート層プロトコル終端部での処理を経て、Y008のように、サーバ側更新部22へのパケットのAck番号として反映される。これをフローチャートの図7のステップ602及び、フローチャートの図6のステップ510で示したように(図8のY005に相当)、クライアント側更新部12からクライアント60へ送信されるパケットのAck番号として反映される。
【0162】
また、サーバ70の受信バッファの残りも同様に、図8のY009が示すようにサーバ側更新部22へのパケットのAck番号として反映されるはずで、これを、これをフローチャートの図7のステップ602で示したように(図8のY006に相当)、クライアント側更新部12からクライアント60へ送信されるパケットのWin値として反映される。このようにして、正しく再送制御及び、フロー制御が行われる。
【0163】
サーバ70からクライアント60
サーバ70からクライアント60へのデータについては、サーバ70から受け取ったシーケンス番号をクライアント側に対して、クライアント側更新部12の動作フローチャートの図5のステップ403で示すように(図8のY007に相当)クライアント側終端部11から送信したデータであるかのようにシーケンス番号を書き換えて渡している。
【0164】
また、これに対してクライアント60から返るAck番号、Win値についても(図8のY010、Y011に相当)、Ack番号については、フローチャートの図6のステップ512で示したように、あたかもサーバ側終端部21が生成したAck番号であるかのように番号を更新してサーバ70へと返しており(図8のY002に相当)、また、Win値についても、フローチャートの図6のステップ512で示したようにサーバ70へと返しているので(図8のY003に相当)、正しくサーバ70とクライアント60の間での再送制御及び、フロー制御が行われる。
【0165】
また、本実施の形態のクライアント側終端部11及びサーバ側終端部21では、クライアント60からサーバ70に対して個々のパケットに分割されて送信される送信データを、元の分割する前の状態に復元した後に当該サーバに対し送信する方式も可能である。
【0166】
以上説明したように、本実施の形態の交換機100は、クライアント60から片方向終端交換機100方向、及び片方向終端交換機100からサーバ70方向へ流れるトランスポート層のデータに対し、それぞれクライアント60やサーバ70にに対して再送制御及びフロー制御を行ないトランスポート層を終端することができ、かつこれと同時に、サーバ70からクライアント60方向に流れるデータに対して、再送制御及びフロー制御を行なわずに従来のスプライシングの様にパケットのシーケンス番号やAck番号の書き換えのみによりパケットを高速に中継することができる。また、この片方向スプライシングの状態においては、サーバ70からクライアント60への方向のデータは、サーバ70やクライアント60自身が再送制御やフロー制御等を行なう。
【0167】
本実施の形態の交換機100は、以上のようにして片方向スプライシングの通信を実現することができる。
【0168】
次いで、上記のように構成される第1の実施の形態による通信システムにおける具体的な動作例を、図9のタイミングチャートを参照して説明する。図9は、第1の実施の形態におけるシーケンス番号とAck番号の時系列を示す。
【0169】
クライアント60、クライアント側処理部10の間でハンドシェイクが行なわれる。ここで、クライアント60側のデータの初期シーケンス番号は「1000」、クライアント側処理部10の初期シーケンスは「2000」とする(901)。
【0170】
クライアント60から、データ取得要求の載ったデータがクライアント側処理部10へ送信される。この時、データ取得要求はシーケンス番号「1001」から「1100」であったとする(902)。
【0171】
クライアント側処理部10は、このデータ取得要求に対するAck番号である「1101」をクライアント60へと返す(903)。
【0172】
解析部30では、受け取ったデータ取得要求(複数の取得要求が含まれる)の内、最初のいくつかが、サーバ70へと送信するのが正しいと判断し、サーバ70とコネクションを確立する。サーバ側処理部20の初期シーケンス番号は「3000」番、サーバ70の初期シーケンス番号は「4000」番であったとする(904)。
【0173】
サーバ70へ送信すべきデータ取得要求を送る(905)。
【0174】
要求に対するデータの一部(シーケンス番号「4001」〜「4200」)がクライアント60に返信される(906)。
【0175】
シーケンス番号、Ack番号が書き換えられ、クライアント60へ要求したデータが届けられる。番号変換によって、シーケンス番号は「2001」〜「2200」となり、Ack番号も「1101」に書き換わる(907)。
【0176】
クライアント60から、シーケンス番号「2200」までのデータが受領された事を示すAck番号のついたパケットが送られる(908)。
【0177】
このAck番号情報は、番号変換されて、サーバ側処理部20へ届けられる(909)。
【0178】
サーバ側処理部20では、番号変換されたAck番号を載せたパケットがサーバ70へと送信される(910)。
【0179】
サーバ70から要求に対する最後のデータ(シーケンス番号「4201」〜「4500」)がクライアント60に送られる。このパケットにはFINフラグが立てられている(911)。
【0180】
このパケットの最後のシーケンス番号に対するAck番号「4501」をサーバ側処理部20で記憶しておく(912)。
【0181】
クライアント側処理部10では、このパケットの最後のシーケンス番号に対するAck番号を番号変換した番号「2501」を記憶しておく(913)。
【0182】
シーケンス番号、Ack番号が書き換えられ、クライアント60へ要求したデータが届けられる。番号変換によって、シーケンス番号は「2201」〜「2500」となり、Ack番号も「1101」に書き換わる。クライアント60ではこのパケットを受けて、終了処理が始まる(914)。
【0183】
クライアント60から、Ack番号「2501」が返される(915)。
【0184】
クライアント側処理部10では、このAck番号を確認して、記憶している番号「2501」と一致するので、クライアント60がサーバ70からの要求に対する最後のデータを受け取ったことを知り、終了処理を行なう(916)。
【0185】
サーバ70側では、このパケットのAck番号を変換した番号「4501」が記憶している番号と一致するので、クライアント60がサーバ70からの要求に対する最後のデータを受け取ったことを知り、終了処理を行なう(917)。
【0186】
サーバ70に番号変換されたAck番号の載ったパケットが返される(918)。
【0187】
次に、本発明の第2の実施の形態を説明する。
【0188】
図10は、本発明の第2の実施の形態の片方向終端交換機100aを用いたネットワーク構成の一例を示すブロック図であり、図11は、本実施の形態の片方向終端交換機100aの構成を示すブロック図である。
【0189】
これらは、先の図2、図3に示される第1の実施の形態と同様であるが、クライアント側終端部11a、クライアント側更新部12a、解析部30a、サーバ側終端部21a、サーバ側更新部22aのそれぞれの動作が第1の実施の形態と異なる。
【0190】
まず、これらの構成要素について説明する。
【0191】
クライアント側終端部11a
第1の実施の形態のクライアント側終端部11との違いは、解析部30の指示でクライアント60とクライアント側終端部11aとの間のトランスポート層コネクションを切断(終了フラグつきパケットを送る)することができる点や、サーバ側更新部22aから最終シーケンス番号“F”の値を受け取らない点である。また、その他の動作は第1の実施の形態と同様である。
【0192】
すなわち、本実施の形態のクライアント側終端部11aは、クライアント60とのトランスポート層でのコネクションの確立を行ない、クライアント60との間でトランスポート層での再送制御やフロー制御を含むデータの受け取りを行なう。
【0193】
後に述べる、片方向スプライシング状態では、データの受け取り確認の応答については、クライアント側終端部11aが行なうのではなく、クライアント側更新部12aにAck番号及びフロー制御用のWin値を通知し応答(Ack)の送信を依頼する。
【0194】
また、片方向スプライシング状態では、クライアント60からデータを受け取ると、クライアント60からのパケットのAck番号、Win値をサーバ側終端部21に受け渡してサーバ70に対する応答の送信依頼を行なう。また、クライアント側更新部12aから、現在のAck番号及びWin値の問い合わせにも回答する。片方向スプライシング状態への移行は、サーバ側更新部22aから通知される。
【0195】
更に、クライアント60からコネクション切断要求を示す終了フラグ付きパケットが到着すれば、クライアント60からクライアント側処理部10aへ向かう側のコネクションについてのトランスポート層の切断処理を行なう。また、サーバ側終端部21aへ、クライアント60からクライアント側処理部10aへ向かう側のコネクションが切断されたことを通知する。
【0196】
クライアント側処理部10aからクライアント60へ向かうコネクションについては、解析部30aからの指示に従って、そのコネクションのトランスポート層の切断処理を行なう。
【0197】
クライアント側更新部12a
第1の実施の形態の片方向終端交換機100の、クライアント側更新部12の動作との違いは、シーケンス番号の書き換えに用いるサーバ70のコネクションの初期シーケンス番号は、サーバ側終端部21が対象とするサーバ70を変更する毎に変化するのであり、このため現在のコネクションの値を用いてシーケンス番号を“シーケンス番号:=パケットのシーケンス番号−SS+SU”と書き換える点である。
【0198】
ここで、“SS”は、サーバ側終端部21のサーバ70との現在のコネクションの初期シーケンス番号であり、その値はサーバ側終端部21から得る。
【0199】
本実施の形態の“SU”は、クライアント側処理部10aの、クライアント60とのコネクションの初期シーケンス番号又は、直前のサーバ70からの終了フラグを含むパケットの最終シーケンス番号+1である。この“SU”の値は、SUが初期シーケンス番号の時は、クライアント側終端部11aから、直前のサーバ70からの終了フラグを含むパケットの最終シーケンス番号+1の場合には、サーバ側更新部22aから受け取る。
【0200】
また、シーケンス番号の加減算においては、シーケンス番号の最大値を超えたり最小値を下回る場合の処理は、当該トランスポートプロトコルのシーケンス番号の加減算の扱いに準拠するものとする。
【0201】
解析部30a
解析部30aは、クライアント側終端部11aからのデータを取得して、アプリケーション層の終端を行ない、クライアント60からのデータ取得要求(一度に複数個の要求も可)を解析して適切なサーバ70を決定する。
【0202】
複数のデータ取得要求に対して、それぞれに対応するサーバ70が異なる場合には、複数のデータ取得要求を、順に前から対応するサーバ70毎にグループ分けをする。
【0203】
例えば、10個の取得要求R1〜R10があり、順にR1〜R2は第1サーバ、R3〜R5は第2サーバ、R6〜R10は第1サーバが対応する場合には、前から順にR1〜R2を第1グループ、R3〜R5を第2グループ、R6〜R10を第3グループとして、グループ分けをすることができる。
【0204】
このグループ分けの例においては、第1グループと第3グループに対応するサーバ70は同一の第1サーバであるが、ここでは取得要求を前から順にグループ分けすることにより、異なるグループに分けている。
【0205】
解析部30aは、このグループ毎にサーバ側終端部21へ、そのサーバ70名と取得要求を受け渡す。
【0206】
また、解析部30aは、1つのグループの最後の取得要求については、サーバ70に対して、当該データの送信が完了したらサーバ側からコネクションを切断するクローズ要求を付与する。しかし、ここでグループが最後である場合(他に未処理のグループが残っていない場合)においては、その処理中にクライアント60から更に追加のデータ取得要求があるかもしれないため、クローズ要求は追加しないものとする方式も効果的である。
【0207】
また、クライアント60からの追加のデータ取得要求に応じることにより、サーバ70を切り替える必要が発生した場合には、データ取得要求にクローズ要求を付与してサーバ側終端部21aへ渡すか,そのまま,データ取得要求をサーバ側終端部21aへ渡す.更にここで、その最初の追加リクエストでサーバ70を切り替える場合には、サーバ側終端部21aへコネクション切断要求をする。ある1つのグループに対する処理が完了すれば、サーバ側終端部21aから通知され、そして解析部30aは次のグループへと処理を指示する。
【0208】
解析部30aは、クライアント側終端部11aからのデータを取得する度に、この処理を繰り返す。
【0209】
解析部30aがクライアント60から受け取るデータ取得要求について、最後にクローズ要求が付与されている場合があるが、この場合には、当該データ取得要求のグループを切断対象グループとして記憶しておき、当該グループの処理を処理し終えた後に、クライアント60へのコネクション切断をクライアント側終端部11aに指示する。
【0210】
サーバ側終端部21a
第1の実施の形態のサーバ側終端部21との違いは、本実施の形態では解析部30aから受け渡されるデータ取得要求がグループ毎に分かれているので、それぞれのグループを順番に処理し、グループ毎にサーバ70とのコネクションを切断する点(これは、解析部30aからコネクション切断要求と同時に受け渡される、各グループの最後の取得要求に、クローズ要求が追加されている場合には、それを、サーバ側終端部21aがサーバ70へと転送することによって実現され,前記クローズ要求が追加されていない場合には,サーバ側終端部21aからサーバ70へ各グループの最後の取得要求を送信後明示的にコネクション切断要求を出す事によって実現される)や、新しいグループに対しては、そのグループについて指示されたサーバ70へとコネクションを確立し直して、そのデータ取得要求のグループをサーバ70へと転送する点や、サーバ70へ送るトランスポート層のデータのAck番号の決定に、確立し直す毎に異なるサーバ側の初期シーケンス番号を使う点が異なる。また、更新された最終シーケンス番号“F”に対応するAckパケットを受け取った場合に、解析部30aに通知する点も異なる。また、これ以外の処理は第1の実施の形態と同様である。
【0211】
すなわち、以下の通りである。
【0212】
サーバ側終端部21aは、解析部30aのからデータ取得要求の1つのグループとサーバ70名を受け取る。そして、そのサーバ70名に従って、サーバ70へとトランスポート層のコネクションを確立する。
【0213】
Win値の初期値は、初めてのコネクション確立時には、クライアント側終端部11aから通知されるWin値を使い、以降は前のコネクションの終了時(以下に述べる更新された最終シーケンス番号“F”と同じAck番号を持つ応答パケットを受け取った時)に記憶したWin値を初期値として使う。
【0214】
このコネクション確立時には、切替部23へ指示して、このデータ取得要求に応答してサーバ70から送信されるパケットを、サーバ側終端部21が受け取れるように指示する。
【0215】
コネクションが確立すると、確立したトランスポート層コネクションを用いてデータ取得要求のグループをサーバ70へと送る。なお、最後の取得要求には、クローズ要求が付与されている。
【0216】
同時に切替部23へ指示して、これ以降のサーバ70からの該当するコネクションに関するパケットを、サーバ側更新部22aへ到着させるように指示する。
【0217】
また、これ以降、サーバ側更新部22aから、サーバ70から受け取ったパケットのAck番号とWin値が通知されるようになり、この値を用いてサーバ70へ送るトランスポート層のデータ(データ取得要求等)についての、再送制御及び、フロー制御を行なう。
【0218】
また、これ以降、クライアント側終端部11aから、Ack番号及びWin値が通信され、Ack番号を“Ack番号:=クライアント側終端部11aから通知されたAck番号−SU+SS”と書き換えて更新し、Win値は通知された値をそのまま用いて、応答のパケットを生成しサーバ70へ送信する。
【0219】
ここで、“SU”は、クライアント60とクライアント側処理部10aとの間のコネクションのクライアント側処理部10aの初期シーケンス番号であり、“SS”は、サーバ側処理部20aと現在のサーバ70とのコネクションのサーバ側の初期シーケンス番号、又は、直前のサーバ70からの終了フラグ付きパケットの最終シーケンス番号+1である。“SU”の、クライアント側終端部11aの初期シーケンス番号は、クライアント側終端部11aから通知される。
【0220】
また、シーケンス番号の加減算においては、シーケンス番号の最大値を超えたり最小値を下回る場合の処理は、当該トランスポートプロトコルのシーケンス番号の加減算の扱いに準拠するものとする。
【0221】
更に、クライアント側終端部11aから当該コネクションが切断されたことを通知されれば、サーバ側処理部20aとサーバ70間の双方向コネクションの内で、サーバ側処理部20aからサーバ70へ向かうコネクションが切断されたものとして(終了フラグ付きパケットをサーバ70へ送ったものとして)、切断処理を行なう。
【0222】
サーバ側処理部20aからクライアント60へ向かうコネクションについては、サーバ70から到着する終了フラグ付きパケットの中のデータの最終シーケンス番号をサーバ側更新部22aが通知するので、この最終シーケンス番号“F”を“更新F=F−SS+SU”のように更新し、もしこの更新された最終シーケンス番号と同じAck番号が到着したら、コネクションは切断されたものとして(終了フラグ付きパケット及び、それに対するAckパケットが到着したものとして)、サーバ70から交換機100aを介してクライアント60へ向かうコネクションのトランスポート層の切断処理する。そして、解析部30に当該グループの処理が終了したことを通知する。また、この時のWin値を記憶する。
【0223】
解析部30aからコネクション切断要求を受け取った時には、切替部23へ、以降の当該コネクションのパケットはサーバ側終端部21へ送信するよう指示して、コネクションを切断し、切断が完了したらこれを解析部30へ通知する。
【0224】
サーバ側更新部22a
第1の実施の形態のサーバ側更新部22aとの違いは、サーバ70側からやってくるパケットに終了フラグが立っている場合に終了フラグを倒す処理が含まれ、最終シーケンス番号“F”の値をクライアント側終端部11aに渡す処理が不要となる点である。
【0225】
すなわち、以下の通りである。
【0226】
サーバ側更新部22aは、サーバ70から受け取ったパケットについて、そのパケットに書かれているAck番号及び、Win値を、サーバ側終端部21aへ通知する。また、パケットのトランスポート層データの長さが“0”の場合には、そのパケットを破棄する。
【0227】
また、データ長が“0”でない場合には、そのパケットをクライアント側更新部12aへと受け渡す。また、これが当該コネクションの“0”でない初めてのパケットをクライアント側更新部12aへ受け渡す場合には、同時にクライアント側終端部11aへ片方向スプライシング開始の指示を出す。
【0228】
また、サーバ70から終了フラグ付きパケットが到着したら、その終了フラグを落として、そのパケット内のデータの最終シーケンス番号“F”を、サーバ側終端部21へと受け渡す。
【0229】
次に、本実施の形態の各部の処理を説明する。
【0230】
図12は、本実施の形態のクライアント側終端部11aの動作を説明するためのフローチャートである。
【0231】
本実施の形態のクライアント側終端部11aの動作は、図4に示される第1の実施の形態のステップ301〜ステップ312が同様である。
【0232】
本実施の形態のクライアント側終端部11aの動作の第1の実施の形態との違いは、解析部30aからのコネクション切断要求を受け付けることができる点であり、解析部30aからコネクション切断要求を受け付けると(ステップ1001)、クライアント側終端部11aは、クライアント側処理部10aからクライアント60へ向かうコネクションを切断する(ステップ1002)。
【0233】
本実施の形態のクライアント側更新部12aの動作のフローチャートは、図5の第1の実施の形態と同様である。
【0234】
図13は、本実施の形態の解析部30aの動作を説明するためのフローチャートである。
【0235】
図13を参照すると、本実施の形態の解析部30aは、まずクライアント側終端部11aやサーバ側終端部21aのそれぞれから命令等を受け付ける。
【0236】
クライアント側終端部11aからデータ取得要求を受け付けた場合には(ステップ1102)、アプリケーション層の終端を行ない、クライアント60からのデータ取得要求(複数でもよい)を解析して、適切な接続先のサーバ70を決定する(ステップ1103)。そして、サーバ側終端部21へ、データ取得要求とサーバ70名を受け渡す。
【0237】
また、複数のデータ取得要求のそれぞれに対して対応するサーバ70が異なる場合には、サーバ毎にデータ取得要求をグループ分けする(ステップ1104)。グループ分けの方法としては、複数のデータ取得要求を、順に前から対応するサーバ70毎に分ける等の方法が可能である。
【0238】
つまりこの方法では、例えば、10個の取得要求R1〜R10があり、R1〜R2は第1サーバ、R3〜R5は第2サーバ、R6〜R10は第1サーバが対応する場合には、前から順にR1〜R2を第1グループ、R3〜R5を第2グループ、R6〜R10を第3グループとグループ分けをすることができる。この例では、第1グループと第3グループに対するサーバ70は、同じ第1サーバであるが、取得要求を前から順にグループ分けすることにより、異なるグループとしてグループ分けしている。
【0239】
またもし、そのクライアント60から到着したデータ取得要求にクローズ要求がついている場合には(ステップ1105)、クローズ要求付きであったグループを切断対象グループとして記憶しておく(ステップ1106)。
【0240】
そして、現在処理中のグループの処理が完了していれば(ステップ1107)、先頭のグループを取り出して(ステップ1108)、最後のグループでない場合には(ステップ1109)、グループの最後の取得要求にクローズ要求を付与する(ステップ1110)。これにより、サーバ70は、当該データの受信が完了すると、サーバ70の側からコネクションを切断する。そして、サーバ側終端部21へ適切なサーバ70名と取得要求を受け渡す(ステップ1111)。
【0241】
また、最後のグループの場合では、更に追加のデータ取得要求があるかもしれないので、クローズ要求を追加せずに、サーバ側終端部21へ適切なサーバ70名と取得要求を受け渡す(ステップ1111)。
【0242】
ステップ1107において、現在処理中のグループの処理が完了していない場合は、、現在処理中のグループが最終グループでなければ、分類したグループとサーバ70名を記憶して終了する(ステップ1112、1113)。
【0243】
もし最終グループであれば(ステップ1112)、新たに到着した取得要求の最初のグループ以外があれば対応するサーバ70名と共に記憶し(ステップ1114)、現在処理中のグループと新たに到着した取得要求の最初のグループが同じサーバ70行きの場合には(ステップ1115)、サーバ側処理部へ、新たに到着した取得要求の最初のグループを追加する(ステップ1116)。
【0244】
異なるサーバ70行きの場合、サーバ側終端部21へコネクション切断要求を出し、切断が完了してからサーバ側終端部21へと新たに到着した取得要求の最初のグループを受け渡す(ステップ1117)。
【0245】
また、ステップ1101において、サーバ70から、現在処理中のグループの処理完了通知がきた場合(ステップ1118)、もしグループが切断対象グループであれば、クライアント側終端部11aにクライアント60とのコネクションの切断を指示する(ステップ1119、1120)。
【0246】
そうでない場合においては、もし未処理グループが残っていれば、そのグループに対して前述のステップ1108以下と同様の処理を進める(ステップ1119、1121)。
【0247】
図14は、本実施の形態のサーバ側終端部21aの動作を説明するためのフローチャートである。
【0248】
図14を参照すると、本実施の形態のサーバ側終端部21aの動作の、図6の第1の実施の形態の動作との違いは、解析部30aからの命令を受信した場合の動作(ステップ1201〜ステップ1210)と、ステップ517とステップ518の間に解析部30aに対してコネクションの切断完了を通知する処理を含むことである。
【0249】
このため、ここでは解析部30aからの命令を受信した場合の動作(ステップ1201〜ステップ1210)を説明する。
【0250】
まず、解析部30aから、新しいデータ取得要求のグループを受け付けた場合には(ステップ1201)、同時に受け取った接続先のサーバ70名の指定に従い、そのサーバ70へトランスポート層のコネクションを確立する(ステップ1202)。このコネクション確立時には、予め切替部23へ指示して、サーバ70から到着するパケットをサーバ側終端部21が受け取るようにする。
【0251】
コネクションが確立すると、サーバ70へデータ取得依頼のグループを、確立したトランスポート層コネクションを用いて送るのであるが、同時に切替部23へ指示して、これ以降のサーバ70からの該当するコネクションに関するパケットは、サーバ側更新部22aへ到着させるように指示する。そして、確立したトランスポート層コネクションを用いてデータ取得要求をサーバ70へと送る(ステップ1203〜1205)。
【0252】
また、ステップ1201において、新しいグループの指定ではない場合は、もしそれがコネクション切断要求である場合には(ステップ1206)、サーバ終端部へのパケットの送信を切替部23aに指示して(ステップ1207)、コネクションを切断し(ステップ1208)、解析部30aにその切断完了を通知する(ステップ1209)。また、ステップ1206においてコネクション切断要求でない場合には、受け付けたデータ取得要求を対応するサーバ70に送信する(ステップ1210)。
【0253】
図15は、本実施の形態のサーバ側更新部22aの動作を説明するためのフローチャートである。
【0254】
図15を参照すると、本実施の形態のサーバ側更新部22aの動作の、図7に示される第1の実施の形態との違いは、ステップ603において終了フラグ付きのパケットをサーバ70から受信した場合の処理である(ステップ1301、1302)。
【0255】
本実施の形態のサーバ側更新部22aは、サーバ70から終了フラグ付きパケットが到着したら、そのパケット内のデータの最終シーケンス番号“F”を、サーバ側終端部21及びクライアント側終端部11aへと受け渡し(ステップ1301)、そのパケットの終了フラグを“ON”にして(倒して)変更し(ステップ1302)、その変更されたパケットをクライアント側更新部12aへと受け渡す(ステップ609)。
【0256】
図16は、本実施の形態の片方向終端交換機内のデータの流れを説明するための図であり、片方向スプライシング動作が行われている時に、シーケンス番号、Ack番号、Win値がどのようにクライアント60、サーバ70、クライアント側終端部11a、サーバ側終端部21、クライアント側更新部12a、サーバ側更新部22a等の間でやりとりされるのかを示している。
【0257】
本実施の形態においても、クライアント60からクライアント側終端部11aへのデータとその応答、サーバ側終端部21からサーバ70へのデータとその応答、サーバ70からクライアント60へのデータとその応答の流れ、及び、受信バッファの残りを示すWin値は、本発明の第1の実施の形態の図8において説明したものと同様にして正しく処理される。
【0258】
また、先の第1の実施の形態における説明と同様に、本実施の形態のクライアント側終端部11a及びサーバ側終端部21aが、クライアント60からサーバ70に対して個々のパケットに分割されて送信される送信データを、元の分割する前の状態に復元した後に当該サーバに対し送信する方式も可能であり、また個の方式を採用する場合においては、本実施の形態の解析部30aは、その分割前の状態に復元された送信データを参照して、その接続先のサーバの決定等の処理を行なうことも可能である。
【0259】
以上説明した、本実施の形態の交換機100aにおいては、第1の実施の形態の効果に加えて、解析部30aにより、クライアント60からのデータ取得要求を適切なサーバ70にグループ分けして振り分けることができる。
【0260】
また、各データ取得要求のグループに対するサーバ70からクライアント60へのデータ転送が完了したことを、サーバ70にクローズ要求を出して、サーバ70から到着する終了フラグの立っているパケットのシーケンス番号の終わりにより検知することができ、正しいタイミングでサーバ70を切り替えることができる。
【0261】
また、サーバ70からクライアント60へ送信されるパケットの終了フラグを倒すことにより、クライアント60が、全てのデータ取得要求に対するデータを受け取り終わるまで、クライアント60と片方向終端交換機100間のコネクションを切断することなく維持することができる。
【0262】
次いで、上記のように構成される第2の実施の形態による通信システムにおける具体的な動作例を、図17のタイミングチャートを参照して説明する。図17は、第2の実施の形態におけるシーケンス番号とAck番号の時系列を示す。ここでは、第1のサーバ70(1)と第2のサーバ70(2)がグループ分けされているとして説明する。
【0263】
クライアント60、クライアント側処理部10の間でハンドシェイクが行われる。ここで、クライアント60側のデータの初期シーケンス番号は「1000」、クライアント側処理部10の初期シーケンス番号は「2000」とする(1701)。
【0264】
クライアント60から、データ取得要求の載ったデータがクライアント側処理部10へ送信される。この時、データ取得要求はシーケンス番号「1001」から「1100」であったとする(1702)。
【0265】
クライアント側処理部10は、このデータ取得要求に対するAck番号である「1101」をクライアント60へと返す(1703)。
【0266】
解析部30では、受け取ったデータ取得要求(複数の取得要求が含まれる)の内、最初のいくつかが、サーバ70(1)へと送信するのが正しいと判断し、サーバ70(1)とコネクションを確立する。サーバ側処理部20の初期シーケンス番号は「3000」番、サーバ70(1)の初期シーケンス番号は「4000」番であったとする(1704)。
【0267】
サーバ70(1)へ送信すべきデータ取得要求を送る(1705)。
【0268】
要求に対するデータの一部(シーケンス番号「4001」〜「4200」)がクライアント60に返信される(1706)。
【0269】
シーケンス番号、Ack番号が書き換えられ、クライアント60へ要求したデータが届けられる。番号変換によって、シーケンス番号は「2001」〜「2200」となり、Ack番号も「1101」に書き換わる(1707)。
【0270】
クライアント60から、シーケンス番号「2200」までのデータが受領されたことを示すAck番号のついたパケットが送られる(1708)。
【0271】
このAck番号情報は、番号変換されて、サーバ側処理部20へ届けられる(1709)。
【0272】
サーバ側処理部20では、番号変換されたAck番号を載せたパケットがサーバ70(1)へと送信される(1710)。
【0273】
サーバ70(1)から要求に対する最後のデータ(シーケンス番号「4201」〜「4500」)がクライアント60に送られる。このパケットにはFINフラグが立てられている(1711)。
【0274】
このパケットの最後のシーケンス番号に対するAck番号「4501」をサーバ側処理部20で記憶しておく。また、FINフラグを倒す(1712)。
【0275】
クライアント側処理部10では、このパケットの最後のシーケンス番号に対するAck番号を番号変換した番号「2501」を記憶しておく(1713)。
【0276】
シーケンス番号、Ack番号が書き換えられ、クライアント60へ要求したデータが届けられる。番号変換によって、シーケンス番号は「2201」〜「2500」となり、Ack番号も「1101」に書き換わる。ここで、クライアント60はFINフラグが倒れたパケットであるのでコネクションの終了処理はしない(1714)。
【0277】
クライアント60から、Ack番号「2501」が返される(1715)。
【0278】
クライアント側処理部10では、このAck番号を見て、記憶している番号「2501」と一致するので、クライアント60がサーバ70(1)からの要求に対する最後のデータを受け取ったことを知る(1716)。
【0279】
サーバ70(1)側では、このパケットのAck番号を変換した番号「4501」が記憶している番号と一致するので、クライアント60がサーバ70(1)からの要求に対する最後のデータを受け取ったことを知り、終了処理を行なう(1717)。
【0280】
サーバ70(1)に番号変換されたAck番号の載ったパケットが返される(1718)。
【0281】
解析部30では、クライアント60から受け取ったデータ取得要求の次のいくつか(クライアント側処理部10でシーケンス番号「1051」〜「1100」だったもの)はサーバ70(2)へと送信するのが適切であると判断し、サーバ70(2)とコネクションを確立する。ここで、サーバ側処理部20の初期シーケンス番号は「5000」番、サーバ70(2)の初期シーケンス番号は「6000」番であったとする(1719)。
【0282】
サーバ70(2)へ送信すべきデータ取得要求を送る(1720)。
【0283】
要求に対するデータの一部(シーケンス番号「6001」〜「6200」)がクライアント60に送信される(1721)。
【0284】
シーケンス番号、Ack番号が書き換えられ、クライアント60へ要求したデータが届けられる。番号変換によって、シーケンス番号は「2501」〜「2700」となり、Ack番号も「1101」に書き換わる(1722)。
【0285】
クライアント60から、シーケンス番号「2700」までのデータが受領された事を示すAck番号のついたパケットが送られる(1723)。
【0286】
このAck番号情報は、番号変換されて、サーバ側処理部20へ届けられる(1724)。
【0287】
サーバ側処理部20では、番号変換されたAck番号を載せたパケットがサーバ70(2)へと送信される(1725)。
【0288】
上記のように、サーバ70(1)からクライアント60へ送信されるパケットの終了フラグを倒すことにより、クライアント60が、全てのデータ取得要求に対するデータを受け取り終わるまで、クライアント60と片方向終端交換機100間のコネクションを切断することなく維持する。
【0289】
なお、上記各実施の形態の交換機100、100aは、クライアント側処理部10、サーバ側処理部20や、解析部30等の機能や、その他の機能をハードウェア的に実現することは勿論として、各機能を備えるコンピュータプログラムを、コンピュータ処理装置のメモリにロードされることで実現することができる。このコンピュータプログラムは、磁気ディスク、半導体メモリその他の記録媒体90、90aに格納される。そして、その記録媒体からコンピュータ処理装置にロードされ、コンピュータ処理装置の動作を制御することにより、上述した各機能を実現する。
【0290】
また、サーバ70上のコンピュータを制御することにより、交換機を介してサーバとクライアントとの間でパケット通信を行なう交換プログラムを、サーバ70上で動作させることにより、本発明を実現することも可能である。この交換プログラムは、サーバ70の記録媒体に上記と同様に格納される。すなわち、交換プログラムは、交換機100におけるクライアント60からのデータ取得要求の中継時から、クライアント60に対し送信される応答のパケットの送信を終了するまでの間、片方向のスプライシングによって当該クライアント60へに対しパケットを送信するように動作する。
【0291】
また、クライアント60上のコンピュータを制御することにより、交換機100を介してサーバ70とクライアント60との間でパケット通信を行なう交換プログラムを、クライアント60上で動作させることにより、本発明を実現することも可能である。この交換プログラムは、クライアント60の記録媒体に上記と同様に格納される。すなわち、交換プログラムは、交換機100におけるサーバ70へのデータ取得要求の中継時から、サーバ70から受信される応答のパケットの送信を終了するまでの間、片方向のスプライシングによって当該サーバ70からパケットを受信するように動作する。
【0292】
以上好ましい実施の形態及び実施例をあげて本発明を説明したが、本発明は必ずしも上記実施の形態及び実施例に限定されるものではなく、その技術的思想の範囲内において様々に変形して実施することができる。
【0293】
【発明の効果】
以上説明したように本発明の片方向終端交換機によれば、以下のような効果が達成される。
【0294】
まず、本発明の片方向終端交換機では、片方向スプライシング中に、サーバからクライアントへのデータを、トランスポート層を終端せずにパケット毎にシーケンス番号、Ack番号、Win値を書き換えるのみで、クライアントへパケットを転送することによって高速なパケット転送を実現し、かつ同時にクライアントからサーバへ送られるデータ取得要求を参照し終端する片方向スプライシングを実現することができる。
【0295】
片方向スプライシングによって、クライアントからサーバへと送信されるデータ取得要求を参照することによって、常に適切なサーバへとデータ取得要求を転送することができ、かつ同時に、サーバからクライアント側へ到着する大量のデータについては、パケット毎にシーケンス番号とAck番号を書き換えるのみの簡素化された終端処理により、従来の交換機100と同等のスループットを実現する。
【0296】
更に、クライアントからのデータ取得要求に対する全てのデータをクライアントが受け取るまで、クライアントと片方向終端交換機の間で確立されたコネクションを切断せずに維持することができ、これによいクライアントと片方向交換機との間のコネクションの再セットアップが不要となり、必要なデータを取得するまでの遅延を小さく保つことができる。
【図面の簡単な説明】
【図1】 本発明の片方向終端交換機を用いた通信システムの概念を説明する図である。
【図2】 本発明の第1の実施の形態の片方向終端交換機を用いたネットワーク構成の一例を示すブロック図である。
【図3】 本発明の第1の実施の形態の片方向終端交換機の構成を示すブロック図である。
【図4】 本発明の第1の実施の形態のクライアント側終端部の動作を説明するためのフローチャートである。
【図5】 本発明の第1の実施の形態のクライアント側更新部の動作を説明するためのフローチャートである。
【図6】 本発明の第1の実施の形態のサーバ側終端部の動作を説明するためのフローチャートである。
【図7】 本発明の第1の実施の形態のサーバ側更新部の動作を説明するためのフローチャートである。
【図8】 本発明の第1の実施の形態の片方向終端交換機内のデータの流れを説明するための図である。
【図9】 本発明の第1の実施の形態の具体的な動作例を説明するタイミングチャートである。
【図10】 本発明の第2の実施の形態の片方向終端交換機を用いたネットワーク構成の一例を示すブロック図である。
【図11】 本発明の第2の実施の形態の片方向終端交換機の構成を示すブロック図である。
【図12】 本発明の第2の実施の形態のクライアント側終端部の動作を説明するためのフローチャートである。
【図13】 本発明の第2の実施の形態の解析部の動作を説明するためのフローチャートである。
【図14】 本発明の第2の実施の形態のサーバ側終端部の動作を説明するためのフローチャートである。
【図15】 本発明の第2の実施の形態のサーバ側更新部の動作を説明するためのフローチャートである。
【図16】 本発明の第2の実施の形態の片方向終端交換機内のデータの流れを説明するための図である。
【図17】 本発明の第2の実施の形態の具体的な動作例を説明するタイミングチャートである。
【図18】 従来の通信ネットワークの構成を示すブロック図である。
【図19】 従来のレイヤ7スイッチの構成を示すブロック図である。
【符号の説明】
100、100a 片方向終端交換機
100b 従来の交換機
10、10a クライアント側処理部
11、11a クライアント側終端部
12、12a クライアント側更新部
13b 切替部
20、20a サーバ側処理部
21、21a サーバ側終端部
22、22a サーバ側更新部
23、23a 切替部
30、30a 解析部
40、40a 記憶部
50 ネットワーク
60 クライアント
70 サーバ
71 サーバ群
90、90a 記録媒体[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a communication system using packet switching, and more particularly, to a communication system for efficiently exchanging communication between a server and a client and an exchange method thereof.
[0002]
[Prior art]
In the network protocol of the OSI reference model, the function of the data communication network is roughly divided into seven layers (Layer), and the physical layer, data link layer, network layer, transport layer, session layer, presentation layer, application in order from the lower layer. There are layers. The first layer (Layer 1),
Sometimes called the second layer (Layer 2),...
[0003]
The nodes on the communication network correspond to the layer of data to be referred to in the exchange of the communication, and include a
[0004]
FIG. 18 is a block diagram showing a configuration of a conventional communication system including an
[0005]
In the conventional communication system of FIG. 18, a
[0006]
Each
[0007]
When the
[0008]
The transport layer connection used for this service for two-way communication includes the sequence number indicating the position of data in the transport layer included in the packet, and the transport of the data in the packet. The data length in the layer and the Ack number indicating the data position in the transport layer that has been reliably received by the communication partner so far are included. Transport layer protocol termination units (termination units) at both ends of the communication control retransmission of packets lost during communication using the sequence number and the Ack number.
[0009]
Further, since flow control is performed at both ends of the communication, a field (window field) for indicating the remaining capacity of the reception buffer may be provided to the communication partner. Hereinafter, this value is referred to as a Win value.
[0010]
At both ends of the communication, the initial value of the sequence number is handshaked and notified to each other. Further, at the end of the connection, the packet is disconnected by exchanging a packet having a flag (end flag) indicating the end of the connection with the packet and a packet including the reception confirmation. An example of such a protocol is the TCP protocol used on the Internet.
[0011]
Next, the role and operation of the
[0012]
The
[0013]
From the
[0014]
The
[0015]
Next, the
[0016]
At this point, there are two connections, that is, a connection between the
[0017]
That is, by connecting two transport layer connections between the
[0018]
This operation is called splicing.
[0019]
Hereinafter, the splicing process of the
[0020]
In the
[0021]
The client-
[0022]
A packet from the
[0023]
Further, a packet from the server side to the
[0024]
The client-
[0025]
First, when the
[0026]
The
[0027]
The
[0028]
At this time, a handshake for establishing a connection is performed between the server-
[0029]
Next, the
[0030]
Next, a packet carrying data corresponding to the data acquisition request arrives at the
[0031]
The server side update unit 22b updates the header information when the packet is relayed. That is, the sequence number and Ack number of the packet are rewritten, and if necessary, the checksum of the transport layer protocol is correctly updated and sent to the
[0032]
Further, the subsequent update of the sequence number and Ack number of the packet sent from the
[0033]
For example, when a packet other than those described above is not transmitted from the
[0034]
First, for the sequence number, the difference between the initial sequence number “SU” of the client
[0035]
For the Ack number, the difference between the initial sequence number “SC” of the
[0036]
By doing so, the transport layer protocol of the
[0037]
Similarly, a packet sent from the
[0038]
In this way, the subsequent exchange of data between the
[0039]
This is the aforementioned connection splicing.
[0040]
Generally, only a small amount of data such as a data acquisition request flows from the
[0041]
By performing this connection splicing, a large amount of data can be relayed without performing complicated transport layer termination processing (retransmission and flow control), and throughput can be improved.
[0042]
[Problems to be solved by the invention]
However, the
[0043]
Further, in the
[0044]
In addition, when the data transfer from the selected
[0045]
Since the
[0046]
The first object of the present invention is to solve the above-mentioned drawbacks of the prior art, monitor packets such as data acquisition requests transmitted from the client to the server even during splicing, and execute corresponding termination processing. It is to provide a communication system, a packet switching method thereof, and a recording medium recording the switching program.
[0047]
The second object of the present invention is to solve the above-mentioned drawbacks of the prior art and refer to a packet such as a data acquisition request transmitted from the client to the server even during splicing, and always acquire data to the
[0048]
A third object of the present invention is to solve the above-mentioned drawbacks of the prior art and establish a connection established between the client and the exchange until the client receives all data transmitted in response to a data acquisition request from the client. The communication system, the packet switching method thereof, and the recording medium recording the switching program can be provided in which the delay until the necessary data is acquired can be kept small.
[0049]
[Means for Solving the Problems]
In order to achieve the above object, the communication system of the present invention is a packet exchange communication system in which packet communication is performed between a server and a client via an exchange, and the exchange is transmitted from the server to the client. When the packet is relayed, the header information of the packet is rewritten to the contents set when the packet is transmitted from the switch, the packet is transmitted to the client, and the data acquisition request from the client is transmitted. From the time of relay until the end of transmission of the response packet transmitted from the server to the client, one-way splicing processing is performed in the direction from the server to the client, and from the client For communication in the direction to the server Retransmission control And flow control.
[0050]
In the communication system of the present invention according to
[0051]
In the communication system according to the third aspect of the present invention, the client-side processing unit controls a connection with each of the clients, and receives a connection or request from each of the clients. A client-side update unit that rewrites and relays packets sent to the client by rewriting header information, and the server-side processing unit manages a connection with each of the servers and is sent from the client-side termination unit A server-side termination unit that relays instructions and data for each server, and a server-side update unit that receives a packet transmitted from each server to each client and sends the packet to the client-side update unit. To do.
[0052]
In the communication system of the present invention according to
[0053]
The communication system of the present invention according to
[0054]
6. The communication system according to
[0055]
In the communication system according to the seventh aspect of the present invention, in the state where the one-way splicing process is set, the client-side termination unit instructs the client-side update unit to perform a response process for a packet received from each of the clients. The client-side update unit includes means for receiving an instruction for the response process, generating a response packet for the client, and transmitting the response packet.
[0056]
In the communication system of the present invention according to
[0057]
In the communication system according to the ninth aspect of the present invention, the client-side termination unit and the server-side termination unit divide transmission data that is divided into individual packets and transmitted from the client to the server. It is characterized by comprising means for restoring to the previous state and selecting each packet by selecting a server.
[0058]
The communication system of the present invention according to
[0059]
In the communication system of the present invention according to
[0060]
The communication system of the present invention according to claim 12 is characterized in that the analysis unit sequentially classifies unprocessed data acquisition requests transmitted by the client into groups for each connection destination server, and the server-side termination unit. On the other hand, each classified group includes means for instructing connection to a corresponding server and execution of the data acquisition request classified into the group.
[0061]
The exchange according to the thirteenth aspect of the present invention is an exchange that relays packet communication between a plurality of servers and clients via a communication network, and when a packet transmitted from the server to the client is relayed, a header of the packet The information is rewritten to the contents set when the packet is transmitted from the exchange, the packet is transmitted to the client, and from the relay of the data acquisition request from the client, the server to the client Until the transmission of the response packet to be transmitted is completed, splicing processing is performed in one direction in the direction from the server to the client, and communication in the direction from the client to the server is performed. Retransmission control And flow control.
[0062]
The exchange of the present invention according to
[0063]
In the exchange of the present invention according to
[0064]
In the exchange of the present invention according to
[0065]
The exchange of the present invention according to
[0066]
The exchange of the present invention according to claim 18, wherein the client-side termination unit includes means for notifying the client-side update unit and the server-side termination unit of header information of a packet received from each of the clients. The update unit includes means for notifying the server side termination unit of header information of a packet transmitted from each server to each of the clients, and the client side update unit and the server side termination unit are notified The header information is recorded and referred to, and the header information of the packet is appropriately rewritten.
[0067]
In the exchange of the present invention according to claim 19, in the state where the one-way splicing process is set, the client-side termination unit instructs the client-side update unit to perform a response process for a packet received from each of the clients, The client-side updating unit includes means for receiving a response processing instruction, generating a response packet for the client, and transmitting the response packet.
[0068]
In the exchange according to the twentieth aspect of the present invention, the server-side updating unit relays transmission of packets from the plurality of servers to one client, and from the header information of the packets to be relayed, A means for removing a flag indicating the end of transmission is provided, and packets transmitted by switching the plurality of servers are relayed to the client without disconnecting the connection with the client. .
[0069]
The exchange of the present invention according to
[0070]
The exchange according to the twenty-second aspect of the present invention includes an analysis unit that determines a connection destination server to which each client is connected, and the analysis unit transmits the client to each server from the client-side termination unit. Means for obtaining request information; means for determining a server to which the client is to be connected based on the request; and determining the connection destination of the client to the server-side termination unit. A means for instructing connection to the server is provided.
[0071]
In the exchange of the present invention according to
[0072]
In the exchange of the present invention according to
[0073]
The packet switching method of the present invention according to claim 25 is a packet switching method of an exchange that relays packet communication between a plurality of servers and clients via a communication network, and is transmitted from the server to the client. When the packet is relayed, the header information of the packet is rewritten to the contents set when the packet is transmitted from the exchange, the packet is transmitted to the client, and the data acquisition request from the client is relayed. From the time until the transmission of the response packet transmitted from the server to the client is completed, the one-way splicing processing is performed in the direction from the server to the client, and the client performs the server processing. In the direction of communication Retransmission control And flow control.
[0074]
The packet switching method of the present invention of claim 26 manages a connection between each of the clients, accepts a connection or request from each of the clients, and transmits a packet transmitted from the server to the client. A step of rewriting and relaying the header information, and a step of managing a connection between each of the servers and relaying a command and data to each of the servers sent from the client. Sequence number indicating the order of data in the packet, the data length below the transport layer of the packet, and the Ack indicating the sequence number of the data already received by the communication partner Number and the rest of the receive buffer that the communication partner has not yet received Characterized in that it comprises a Win value indicating the amount.
[0075]
The packet switching method of the present invention according to claim 27 relays packet transmission from a plurality of servers to one client, and indicates the end of packet transmission at each server from the header information of the relayed packets. And a packet transmitted by switching the plurality of servers is relayed to the client without disconnecting the connection with the client.
[0076]
The packet switching method of the present invention according to claim 28, wherein transmission data divided into individual packets and transmitted from the client to the server is restored to the original state before division, and each packet is restored to the server The step of selecting and transmitting is provided.
[0077]
The packet switching method of the present invention according to claim 29 is a step of acquiring information of a request that the client sends to each of the servers, and determining a connection destination server to which the client should connect based on the request. And a step of instructing connection of the client to the determined connection destination server to determine a connection destination server to which each of the clients is connected.
[0078]
The packet switching method of the present invention according to
[0079]
The recording medium on which the exchange program of the present invention according to
[0080]
The server of the present invention according to claim 37 is a server in a communication system that performs packet communication between a server and a client via an exchange, and the client from the time of relaying a data acquisition request from the client in the exchange The packet is transmitted to the client by one-way splicing until the transmission of the response packet transmitted to the client is completed.
[0081]
The client of the present invention according to claim 45 is a client in a communication system that performs packet communication between a server and a client via an exchange, and the server from the time of relaying a data acquisition request to the server in the exchange The packet is received from the server by one-way splicing until the transmission of the response packet received from the server is completed.
[0082]
55. The communication system of the present invention according to claim 55, wherein the analysis unit sequentially classifies unprocessed data acquisition requests transmitted by the client into groups for each connection destination server, and the server-side termination unit. For each of the classified groups, means for instructing to disconnect the connection to the server after connection to the corresponding server, execution of the data acquisition request classified into the group, and transmission of the acquisition request It is characterized by providing.
[0083]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
[0084]
First, the concept of a communication system according to the present embodiment that performs packet communication between a server and a client via a communication network will be described with reference to FIG. In FIG. 1, 100 is a one-way terminal switch according to the present invention that relays connections of a plurality of servers to a communication network, 60 is a client, and 70 is a server.
[0085]
In the present invention, splicing is performed only for communication in the direction from the
[0086]
Conventionally, the connection between the
[0087]
Here, in the transport layer connection from the
[0088]
FIG. 2 is a block diagram illustrating an example of a network configuration using the one-
[0089]
Compared with the conventional technique shown in the example of FIG. 18, the present embodiment is characterized in that it includes a one-
[0090]
In the
[0091]
The roles of each
[0092]
The function of the one-
[0093]
Conventionally, two connections of the connection between the
[0094]
However, in the one-
[0095]
Here, in the transport layer connection from the
[0096]
Hereinafter, this splicing method of the present invention is referred to as one-way splicing.
[0097]
FIG. 3 is a block diagram illustrating a configuration of the one-
[0098]
Referring to FIG. 3, a one-
[0099]
The client-
[0100]
First, the function of each component of the
[0101]
The client-
[0102]
When the connection is established, the Win value (remaining capacity of the reception buffer) of the
[0103]
In the one-way splicing state, the client
[0104]
The server
[0105]
Further, when a packet with an end flag indicating a connection disconnection request arrives from the
[0106]
For the connection in the direction from the client
[0107]
Client side update unit 12
A packet transmitted from the
[0108]
The sequence number can be rewritten by “sequence number: = sequence number of packet−SS + SU”. Here, “SS” is an initial sequence number (of the server 70) of the connection between the server
[0109]
As for addition / subtraction of sequence numbers, processing when the maximum value of sequence numbers is exceeded or below the minimum value shall conform to the handling of addition / subtraction of sequence numbers in the transport protocol.
[0110]
The Ack number and Win value are rewritten to the latest Ack number and Win value returned when a new packet is currently transmitted from the client
[0111]
If necessary, the transport layer protocol checksum is also updated correctly.
[0112]
Also, when a response (Ack) transmission request to the
[0113]
Packets sent from the
[0114]
A response (Ack) packet to the
[0115]
Information on a data acquisition request (or a plurality of data) transmitted from the
[0116]
When the
[0117]
Information for the
[0118]
Server-
In accordance with the name of the
[0119]
When this connection is established, the Win value (remaining reception buffer) notified from the client-
[0120]
When establishing a connection with the
[0121]
When this connection is established, the server-
[0122]
Thereafter, the Ack number and Win value of the packet sent from the
[0123]
From this point onward, the
[0124]
Here, “SU” is an initial sequence number of the client-
[0125]
In addition, in addition / subtraction of sequence numbers, processing when the maximum value of sequence numbers is exceeded or below the minimum value shall conform to the handling of addition / subtraction of sequence numbers of the transport protocol.
[0126]
Further, when a connection disconnection request is transmitted from the
[0127]
Further, for the connection from the
[0128]
Server
The server
[0129]
If the length of the transport layer data of the received packet is “0”, the packet is discarded without being sent to the client side update unit 12. If it is not “0”, the packet is transferred to the client side update unit 12.
[0130]
Further, when a packet that is not “0” is received for the first time after the connection is established, the packet is transferred to the client side update unit 12 and at the same time, an instruction to start unidirectional splicing is issued to the client
[0131]
Further, when a packet with an end flag is received from the
[0132]
Next, the operation of each component of the
[0133]
FIG. 4 is a flowchart for explaining the operation of the client
[0134]
Referring to FIG. 4, the client-
[0135]
After the connection is established, until a one-way splicing state described later (step 306), a response (Ack) is returned to the
[0136]
If the one-way splicing state is reached (step 306), the data reception confirmation response (Ack) is not sent by the client
[0137]
When a packet with an end flag indicating a connection disconnection request has arrived from the client 60 (step 310), the side from the
[0138]
For the connection from the client
[0139]
If the same Ack number as the final sequence number arrives, the connection is disconnected (assuming that a packet with an end flag is transmitted and an Ack packet corresponding thereto arrives), and the transport layer is disconnected. (Steps 313 and 314).
[0140]
FIG. 5 is a flowchart for explaining the operation of the client side updating unit 12 of the present embodiment.
[0141]
Referring to FIG. 5, the client side update unit 12 of the present embodiment first receives a command from the client
[0142]
When the client
[0143]
Further, the transmission of the acknowledgment (Ack) to the
[0144]
FIG. 6 is a flowchart for explaining the operation of the server-
[0145]
Referring to FIG. 6, the server-
[0146]
If there is a connection establishment request from the analysis unit 30 (step 502), a transport layer connection is established to the
[0147]
If the packet sent from the
[0148]
In
[0149]
In
[0150]
Further, when the client-
[0151]
For the connection from the server
[0152]
FIG. 7 is a flowchart for explaining the operation of the server-
[0153]
First, the server
[0154]
When a packet with an end flag arrives from the server 70 (step 603), the final sequence number “F” of the data in the packet is transferred to the server-
[0155]
In step 603, when a packet without an end flag is received, if the length of the transport layer data of the packet is “0” (step 605), the packet is discarded (step 606).
[0156]
If the data length is not "0" (step 605), the packet is transferred to the client side update unit 12 (step 609). However, the first packet that is not "0" of the connection is sent to the client. In the case of delivery to the side updating unit 12 (step 607), an instruction to start one-way splicing is simultaneously issued to the client side termination unit 11 (step 608).
[0157]
FIG. 8 is a diagram for explaining the flow of data in the one-
[0158]
Data transmission from the
[0159]
From the
The sequence number of the data from the
[0160]
Similarly, the rest of the reception buffer of the client-
[0161]
Server-
For the data from the server-
[0162]
Similarly, the rest of the reception buffer of the
[0163]
As for data from the
[0164]
On the other hand, the Ack number and the Win value returned from the client 60 (corresponding to Y010 and Y011 in FIG. 8), the Ack number is as if the end on the server side as shown in
[0165]
Further, in the client-
[0166]
As described above, the
[0167]
[0168]
Next, a specific operation example of the communication system according to the first embodiment configured as described above will be described with reference to the timing chart of FIG. FIG. 9 shows a time sequence of the sequence number and the Ack number in the first embodiment.
[0169]
A handshake is performed between the
[0170]
Data with a data acquisition request is transmitted from the
[0171]
The client-
[0172]
The
[0173]
A data acquisition request to be transmitted is sent to the server 70 (905).
[0174]
A part of data corresponding to the request (sequence numbers “4001” to “4200”) is returned to the client 60 (906).
[0175]
The sequence number and Ack number are rewritten, and the requested data is delivered to the
[0176]
A packet with an Ack number indicating that data up to sequence number “2200” has been received is sent from the client 60 (908).
[0177]
The Ack number information is number-converted and delivered to the server side processing unit 20 (909).
[0178]
The server-
[0179]
The last data (sequence number “4201” to “4500”) for the request is sent from the
[0180]
The server
[0181]
The client-
[0182]
The sequence number and Ack number are rewritten, and the requested data is delivered to the
[0183]
The Ack number “2501” is returned from the client 60 (915).
[0184]
The client-
[0185]
On the
[0186]
A packet with the Ack number converted in number is returned to the server 70 (918).
[0187]
Next, a second embodiment of the present invention will be described.
[0188]
FIG. 10 is a block diagram showing an example of a network configuration using the one-
[0189]
These are the same as those of the first embodiment shown in FIGS. 2 and 3, but the client
[0190]
First, these components will be described.
[0191]
The difference from the client-
[0192]
That is, the client-
[0193]
In the one-way splicing state, which will be described later, the data reception confirmation response is not performed by the client
[0194]
In the one-way splicing state, when data is received from the
[0195]
Further, when a packet with an end flag indicating a connection disconnection request arrives from the
[0196]
For the connection from the client
[0197]
Client
The difference from the operation of the client-side update unit 12 in the one-
[0198]
Here, “SS” is the initial sequence number of the current connection with the
[0199]
“SU” in the present embodiment is the initial sequence number of the connection with the
[0200]
In addition, in addition / subtraction of sequence numbers, processing when the maximum value of sequence numbers is exceeded or below the minimum value shall conform to the handling of addition / subtraction of sequence numbers of the transport protocol.
[0201]
The
[0202]
When the
[0203]
For example, when there are ten acquisition requests R1 to R10, R1 to R2 are the first server, R3 to R5 are the second server, and R6 to R10 are the first server. The first group, R3 to R5 as the second group, and R6 to R10 as the third group can be grouped.
[0204]
In this example of grouping, the
[0205]
The
[0206]
In addition, for the last acquisition request of one group, the
[0207]
Further, when it becomes necessary to switch the
[0208]
The
[0209]
The data acquisition request received from the
[0210]
Server-side termination 21a
The difference from the server-
[0211]
That is, it is as follows.
[0212]
The server-side termination unit 21a receives one group of data acquisition requests and the name of the
[0213]
As the initial value of the Win value, the Win value notified from the client-
[0214]
When this connection is established, the switching
[0215]
When the connection is established, a group of data acquisition requests is sent to the
[0216]
At the same time, the switching
[0217]
Thereafter, the server side updating unit 22a notifies the Ack number and Win value of the packet received from the
[0218]
Thereafter, the Ack number and the Win value are communicated from the client-
[0219]
Here, “SU” is an initial sequence number of the client
[0220]
In addition, in addition / subtraction of sequence numbers, processing when the maximum value of sequence numbers is exceeded or below the minimum value shall conform to the handling of addition / subtraction of sequence numbers of the transport protocol.
[0221]
Furthermore, if the client-
[0222]
For the connection from the server side processing unit 20a to the
[0223]
When a connection disconnection request is received from the
[0224]
Server side update unit 22a
The difference from the server side update unit 22a of the first embodiment is that a process for defeating the end flag when the end flag is set in the packet coming from the
[0225]
That is, it is as follows.
[0226]
For the packet received from the
[0227]
If the data length is not “0”, the packet is transferred to the client
[0228]
When a packet with an end flag arrives from the
[0229]
Next, the process of each part of this Embodiment is demonstrated.
[0230]
FIG. 12 is a flowchart for explaining the operation of the client
[0231]
The operation of the client-
[0232]
The difference between the operation of the client-
[0233]
The flowchart of the operation of the client
[0234]
FIG. 13 is a flowchart for explaining the operation of the
[0235]
Referring to FIG. 13, the
[0236]
When a data acquisition request is received from the client-
[0237]
If the corresponding
[0238]
That is, in this method, for example, when there are ten acquisition requests R1 to R10, R1 to R2 are the first server, R3 to R5 are the second server, and R6 to R10 are the first server, R1 to R2 can be grouped in order with the first group, R3 to R5 can be grouped with the second group, and R6 to R10 can be grouped with the third group. In this example, the
[0239]
If the data acquisition request arrived from the
[0240]
If the processing of the group currently being processed has been completed (step 1107), the first group is extracted (step 1108). If it is not the last group (step 1109), the last group acquisition request is made. A close request is given (step 1110). As a result, when the reception of the data is completed, the
[0241]
In the case of the last group, since there may be additional data acquisition requests, an
[0242]
If it is determined in
[0243]
If it is the last group (step 1112), if there is a group other than the first group of the newly arrived acquisition request, it is stored together with the corresponding
[0244]
In the case of going to a
[0245]
In
[0246]
Otherwise, if an unprocessed group remains, the same processing as in
[0247]
FIG. 14 is a flowchart for explaining the operation of the server-side termination unit 21a of the present embodiment.
[0248]
Referring to FIG. 14, the difference between the operation of the server-side termination unit 21 a of the present embodiment and the operation of the first embodiment of FIG. 6 is the operation when the instruction from the
[0249]
For this reason, the operation (
[0250]
First, when a new data acquisition request group is received from the
[0251]
When the connection is established, a group of data acquisition requests is sent to the
[0252]
If it is not a new group designation in
[0253]
FIG. 15 is a flowchart for explaining the operation of the server side update unit 22a of the present embodiment.
[0254]
Referring to FIG. 15, the operation of the server-side update unit 22 a of this embodiment is different from the first embodiment shown in FIG. 7 in that a packet with an end flag is received from the
[0255]
When a packet with an end flag arrives from the
[0256]
FIG. 16 is a diagram for explaining the flow of data in the one-way terminal switch according to the present embodiment. When the one-way splicing operation is performed, how the sequence number, Ack number, and Win value are determined. It shows whether data is exchanged among the
[0257]
Also in the present embodiment, data from the
[0258]
Similarly to the description in the first embodiment, the client-
[0259]
In the
[0260]
In addition, the end of the sequence number of the packet that has arrived from the
[0261]
Further, by defeating the end flag of the packet transmitted from the
[0262]
Next, a specific operation example in the communication system according to the second embodiment configured as described above will be described with reference to the timing chart of FIG. FIG. 17 shows a time series of the sequence number and the Ack number in the second embodiment. Here, the first server 70 (1) and the second server 70 (2) will be described as being grouped.
[0263]
A handshake is performed between the
[0264]
Data with a data acquisition request is transmitted from the
[0265]
The client-
[0266]
The
[0267]
A data acquisition request to be transmitted is sent to the server 70 (1) (1705).
[0268]
A part of the data corresponding to the request (sequence numbers “4001” to “4200”) is returned to the client 60 (1706).
[0269]
The sequence number and Ack number are rewritten, and the requested data is delivered to the
[0270]
A packet with an Ack number indicating that data up to sequence number “2200” has been received is sent from the client 60 (1708).
[0271]
The Ack number information is number-converted and delivered to the server-side processing unit 20 (1709).
[0272]
The server-
[0273]
The server 70 (1) sends the last data (sequence number “4201” to “4500”) for the request to the
[0274]
The server
[0275]
The client-
[0276]
The sequence number and Ack number are rewritten, and the requested data is delivered to the
[0277]
The Ack number “2501” is returned from the client 60 (1715).
[0278]
The client-
[0279]
On the server 70 (1) side, the number “4501” obtained by converting the Ack number of this packet matches the stored number, so that the
[0280]
A packet with the Ack number converted in number is returned to the server 70 (1) (1718).
[0281]
The
[0282]
A data acquisition request to be transmitted is sent to the server 70 (2) (1720).
[0283]
A part of data corresponding to the request (sequence numbers “6001” to “6200”) is transmitted to the client 60 (1721).
[0284]
The sequence number and Ack number are rewritten, and the requested data is delivered to the
[0285]
A packet with an Ack number indicating that data up to sequence number “2700” has been received is sent from the client 60 (1723).
[0286]
The Ack number information is number-converted and delivered to the server-side processing unit 20 (1724).
[0287]
The server-
[0288]
As described above, by defeating the end flag of the packet transmitted from the server 70 (1) to the
[0289]
It should be noted that the
[0290]
Further, by controlling the computer on the
[0291]
Further, by controlling a computer on the
[0292]
Although the present invention has been described with reference to the preferred embodiments and examples, the present invention is not necessarily limited to the above-described embodiments and examples, and various modifications can be made within the scope of the technical idea. Can be implemented.
[0293]
【The invention's effect】
As described above, according to the one-way terminal switch of the present invention, the following effects are achieved.
[0294]
First, in the one-way termination switch according to the present invention, during one-way splicing, the data from the server to the client is simply rewritten for each packet without terminating the transport layer. High-speed packet transfer can be realized by transferring the packet to the server, and at the same time, one-way splicing can be realized that refers to and terminates a data acquisition request sent from the client to the server.
[0295]
With one-way splicing, it is possible to always forward the data acquisition request to the appropriate server by referring to the data acquisition request sent from the client to the server, and at the same time, a large amount of data arriving from the server to the client side. With respect to data, a throughput equivalent to that of the
[0296]
Furthermore, until the client receives all data in response to a data acquisition request from the client, the connection established between the client and the one-way terminal switch can be maintained without disconnection. It is not necessary to set up the connection with the server again, and the delay until the necessary data is acquired can be kept small.
[Brief description of the drawings]
FIG. 1 is a diagram for explaining the concept of a communication system using a one-way terminal switch according to the present invention.
FIG. 2 is a block diagram illustrating an example of a network configuration using the one-way terminal switch according to the first embodiment of this invention.
FIG. 3 is a block diagram showing a configuration of a one-way terminal switch according to the first embodiment of this invention.
FIG. 4 is a flowchart for explaining an operation of a client side termination unit according to the first embodiment of this invention;
FIG. 5 is a flowchart for explaining the operation of the client side update unit according to the first embodiment of this invention;
FIG. 6 is a flowchart for explaining the operation of the server side termination unit according to the first embodiment of this invention;
FIG. 7 is a flowchart for explaining the operation of the server side update unit according to the first embodiment of this invention;
FIG. 8 is a diagram for explaining a data flow in the one-way terminal switch according to the first embodiment of this invention;
FIG. 9 is a timing chart illustrating a specific operation example of the first exemplary embodiment of the present invention.
FIG. 10 is a block diagram illustrating an example of a network configuration using a one-way terminal switch according to a second embodiment of this invention.
FIG. 11 is a block diagram showing a configuration of a one-way terminal switch according to a second embodiment of this invention.
FIG. 12 is a flowchart for explaining an operation of a client side termination unit according to the second embodiment of this invention;
FIG. 13 is a flowchart for explaining an operation of an analysis unit according to the second embodiment of this invention;
FIG. 14 is a flowchart for explaining the operation of the server-side termination unit according to the second embodiment of this invention;
FIG. 15 is a flowchart for explaining the operation of the server side update unit according to the second embodiment of this invention;
FIG. 16 is a diagram for explaining a data flow in the one-way terminal switch according to the second embodiment of this invention;
FIG. 17 is a timing chart illustrating a specific operation example of the second exemplary embodiment of the present invention.
FIG. 18 is a block diagram showing a configuration of a conventional communication network.
FIG. 19 is a block diagram showing a configuration of a
[Explanation of symbols]
100, 100a One-way terminal switch
100b Conventional switch
10, 10a Client side processing unit
11, 11a Client side termination
12, 12a Client-side update unit
13b switching part
20, 20a Server side processing unit
21, 21a Server side termination
22, 22a Server side update unit
23, 23a switching unit
30, 30a Analysis unit
40, 40a storage unit
50 network
60 clients
70 servers
71 servers
90, 90a recording medium
Claims (55)
前記交換機が、
前記サーバから前記クライアントに対して送信されるパケットの中継時に、当該パケットのヘッダ情報を、当該パケットが前記交換機から発信された場合に設定される内容に書き換えて、前記パケットを前記クライアントに対して発信し、
前記クライアントからのデータ取得要求の中継時から、前記サーバから前記クライアントに対し送信される応答のパケットの送信が終了するまでの間、当該サーバから当該クライアントへの方向に対し片方向のスプライシングの処理を行ない、かつ前記クライアントから前記サーバへの方向の通信に対して再送制御及びフロー制御を行なうことを特徴とする通信システム。In a communication system using packet switching for performing packet communication between a server and a client via an exchange,
The exchange is
When a packet transmitted from the server to the client is relayed, the header information of the packet is rewritten to the contents set when the packet is transmitted from the exchange, and the packet is transmitted to the client. Outgoing,
One-way splicing processing from the server to the client from the time when the data acquisition request from the client is relayed until the transmission of the response packet transmitted from the server to the client is completed the performed, and a communication system, characterized by performing the retransmission control and flow control for the direction of communication to the server from the client.
各前記クライアントからの接続を受け付け、当該クライアントとの間におけるコネクションを管理しパケットを送受するクライアント側処理部と、
各前記サーバに対しアクセスし、当該サーバとの間におけるコネクションを管理しパケットを送受するサーバ側処理部と、
前記サーバから前記クライアントに対して送信されるパケットの中継時に、前記パケットのヘッダ情報の書換えを行なって、前記パケットを前記クライアントに対し発信する手段と、
前記サーバから当該クライアントへの方向に対し片方向のスプライシングの処理を行ない、かつ前記クライアントから前記クライアント側処理部への方向の通信及び前記サーバ側処理部から前記サーバへの方向の通信に対しては、確立したコネクションを切断することなく再送制御及びフロー制御を行なう手段を備えることを特徴とする請求項1に記載の通信システム。The exchange is
A client-side processing unit that accepts a connection from each of the clients, manages a connection with the client, and transmits and receives packets;
A server-side processing unit that accesses each of the servers, manages a connection with the server, and transmits and receives packets;
Means for rewriting the header information of the packet at the time of relaying the packet transmitted from the server to the client, and transmitting the packet to the client;
One-way splicing processing is performed in the direction from the server to the client, and communication in the direction from the client to the client side processing unit and communication in the direction from the server side processing unit to the server are performed. The communication system according to claim 1, further comprising means for performing retransmission control and flow control without disconnecting the established connection.
各前記クライアントとの間のコネクションを制御し、各前記クライアントからの接続や要求を受け付けるクライアント側終端部と、
前記サーバから前記クライアントに対し送信されるパケットを、ヘッダ情報を書き換えて中継するクライアント側更新部を備え、
前記サーバ側処理部は、
各前記サーバとの間のコネクションを管理し、前記クライアント側終端部から送られる各前記サーバに対する命令やデータを中継するサーバ側終端部と、
各前記サーバから各前記クライアントに対し送信されるパケットを受け付けて、前記クライアント側更新部に送るサーバ側更新部を備えることを特徴とする請求項2に記載の通信システム。The client side processing unit
A client-side terminator that controls connections between the clients and accepts connections and requests from the clients;
A client side update unit that relays a packet transmitted from the server to the client by rewriting header information,
The server side processing unit
A server-side termination unit that manages a connection between each of the servers and relays instructions and data for each of the servers sent from the client-side termination unit;
The communication system according to claim 2, further comprising a server-side update unit that receives a packet transmitted from each server to each client and sends the packet to the client-side update unit.
個々のパケットに分割された送信データにおける、当該パケット中のデータの順番を示すシーケンス番号と、
当該パケットのデータ長と、
通信相手が既に受信済みであるデータのシーケンス番号を示すAck番号を含むことを特徴とする請求項3に記載の通信システム。In the header information of the packet,
In the transmission data divided into individual packets, a sequence number indicating the order of data in the packet,
The data length of the packet,
The communication system according to claim 3, further comprising an Ack number indicating a sequence number of data that has already been received by the communication partner.
通信相手がまだ受信していない受信バッファの残り容量を示すWin値を含むことを特徴とする請求項4に記載の通信システム。In the header information of the packet,
The communication system according to claim 4, further comprising a Win value indicating a remaining capacity of a reception buffer that has not yet been received by the communication partner.
各前記クライアントから受け付けたパケットのヘッダ情報を、前記クライアント側更新部及び前記サーバ側終端部に通知する手段を備え、
前記サーバ側更新部は、
各前記サーバから各前記クライアントに対し送信されるパケットのヘッダ情報を前記サーバ側終端部に通知する手段を備え、
前記クライアント側更新部及び前記サーバ側終端部は、
前記通知されたヘッダ情報を記録し参照して、パケットのヘッダ情報を適正に書き換えることを特徴とする請求項2又は請求項3に記載の通信システム。The client side termination is
Means for notifying the header information of the packet received from each of the clients to the client side update unit and the server side termination unit;
The server side update unit
Means for notifying the server-side termination unit of header information of a packet transmitted from each server to each client;
The client side update unit and the server side termination unit are:
The communication system according to claim 2 or 3, wherein the notified header information is recorded and referred to, and the header information of the packet is appropriately rewritten.
各前記クライアントから受け付けたパケットに対する応答処理を前記クライアント側更新部に指示し、
記クライアント側更新部は、
前記応答処理の指示を受け付けて、当該クライアントに対する応答のパケットを生成して発信する手段を備えることを特徴とする請求項6に記載の通信システム。In the state where the one-way splicing process is set, the client-side termination unit is
Instructing the client side update unit to perform response processing for packets received from each of the clients,
The client-side update unit
The communication system according to claim 6, further comprising means for receiving a response processing instruction and generating and transmitting a response packet to the client.
1つの前記クライアントに対する複数の前記サーバからのパケットの送信を中継し、
中継するパケットのヘッダ情報から、個々の前記サーバにおけるパケットの送信の終了の旨を示すフラグを除去する手段を備え、
前記クライアントとの間のコネクションを切断することなく、前記複数のサーバを切り換えて発信されるパケットを前記クライアントに中継することを特徴とする請求項2から請求項7のいずれか一つに記載の通信システム。The server side update unit
Relay transmission of packets from a plurality of the servers to one client;
Means for removing from the header information of the packet to be relayed a flag indicating the end of packet transmission in each of the servers,
8. The packet transmitted by switching the plurality of servers is relayed to the client without disconnecting the connection with the client. 8. Communications system.
前記クライアントから前記サーバに対して個々のパケットに分割されて送信される送信データを、元の分割する前の状態に復元し、各パケットを、サーバを選択して送信する手段を備えることを特徴とする請求項2から請求項8のいずれか一つに記載の通信システム。The client side termination unit and the server side termination unit are:
It comprises means for restoring transmission data divided and transmitted to individual packets from the client to the server to a state before the original division, and transmitting each packet by selecting a server. The communication system according to any one of claims 2 to 8.
前記解析部は、
前記クライアント側終端部から、前記クライアントが各前記サーバに対し発信する要求の情報を取得する手段と、
前記要求に基づいて、当該クライアントが接続すべき接続先のサーバを判定する手段と、
前記サーバ側終端部に対して、当該クライアントの前記判定された接続先のサーバへの接続を指示する手段を備えることを特徴とする請求項2から請求項8のいずれか一つに記載の通信システム。An analysis unit for determining a connection destination server to which each of the clients connects;
The analysis unit
Means for acquiring information of a request that the client sends to each of the servers from the client-side termination unit;
Means for determining a connection destination server to which the client should connect based on the request;
The communication according to any one of claims 2 to 8, further comprising means for instructing the server-side termination unit to connect the client to the determined connection destination server. system.
前記クライアントから前記サーバに対して、個々のパケットに分割されて送信される送信データを元の分割する前の状態に復元した後に、当該サーバに対し送信する手段を備え、
前記解析部は、
前記元の分割する前の状態に復元された送信データに基づいて、前記接続先のサーバを判定する手段を備えることを特徴とする請求項10に記載の通信システム。The client side termination unit and the server side termination unit are:
A means for transmitting to the server after restoring the transmission data divided into individual packets and transmitted to the server from the client to the original state before the division,
The analysis unit
11. The communication system according to claim 10, further comprising means for determining the connection destination server based on the transmission data restored to the original state before the division.
前記クライアントにより発信された未処理のデータ取得要求を、その接続先のサーバ毎に順次グループに分類する手段と、
前記サーバ側終端部に対して、分類された各前記グループ毎に、対応するサーバへの接続と当該グループに分類された前記データ取得要求の実行を指示する手段を備えることを特徴とする請求項10又は請求項11に記載の通信システム。The analysis unit
Means for sequentially classifying unprocessed data acquisition requests sent by the client into groups for each server to which the connection is made;
The server-side termination unit is provided with means for instructing connection to a corresponding server and execution of the data acquisition request classified into the group for each of the classified groups. The communication system according to claim 10 or claim 11.
前記サーバから前記クライアントに対して送信されるパケットの中継時に、当該パケットのヘッダ情報を、当該パケットが交換機から発信された場合に設定される内容に書き換えて、前記パケットを前記クライアントに対して発信し、
前記クライアントからのデータ取得要求の中継時から、前記サーバから前記クライアントに対し送信される応答のパケットの送信が終了するまでの間、当該サーバから当該クライアントへの方向に対し片方向のスプライシングの処理を行ない、かつ前記クライアントから前記サーバへの方向の通信に対して再送制御及びフロー制御を行なうことを特徴とする交換機。In an exchange that relays packet communication via a communication network between multiple servers and clients,
When the packet transmitted from the server to the client is relayed, the header information of the packet is rewritten to the contents set when the packet is transmitted from the exchange, and the packet is transmitted to the client. And
One-way splicing processing from the server to the client from the time when the data acquisition request from the client is relayed until the transmission of the response packet transmitted from the server to the client is completed the performed, and exchange and performing retransmission control and flow control for from the client in the direction of communication to the server.
各前記サーバに対しアクセスし、当該サーバとの間におけるコネクションを管理しパケットを送受するサーバ側処理部と、
前記サーバから前記クライアントに対して送信されるパケットの中継時に、前記パケットのヘッダ情報の書換えを行なって、前記パケットを前記クライアントに対し発信する手段と、
前記サーバから当該クライアントへの方向に対し片方向のスプライシングの処理を行ない、かつ前記クライアントから前記クライアント側処理部への方向の通信及び前記サーバ側処理部から前記サーバへの方向の通信に対しては、確立したコネクションを切断することなく再送制御及びフロー制御を行なう手段を備えることを特徴とする請求項13に記載の交換機。A client-side processing unit that accepts a connection from each of the clients, manages a connection with the client, and transmits and receives packets;
A server-side processing unit that accesses each of the servers, manages a connection with the server, and transmits and receives packets;
Means for rewriting the header information of the packet at the time of relaying the packet transmitted from the server to the client, and transmitting the packet to the client;
One-way splicing processing is performed in the direction from the server to the client, and communication in the direction from the client to the client side processing unit and communication in the direction from the server side processing unit to the server are performed. 14. The exchange according to claim 13, further comprising means for performing retransmission control and flow control without disconnecting the established connection.
各前記クライアントとの間のコネクションを管理し、各前記クライアントからの接続や要求を受け付けるクライアント側終端部と、
前記サーバから前記クライアントに対し送信されるパケットを、ヘッダ情報を書き換えて中継するクライアント側更新部を備え、
前記サーバ側処理部は、
各前記サーバとの間のコネクションを管理し、前記クライアント側終端部から送られる各前記サーバに対する命令やデータを中継するサーバ側終端部と、
各前記サーバから各前記クライアントに対し送信されるパケットを受け付けて、前記クライアント側更新部に送るサーバ側更新部を備えることを特徴とする請求項14に記載の交換機。The client side processing unit
Managing a connection between each of the clients, and a client-side termination unit that accepts connections and requests from each of the clients;
A client side update unit that relays a packet transmitted from the server to the client by rewriting header information,
The server side processing unit
A server-side termination unit that manages a connection between each of the servers and relays instructions and data for each of the servers sent from the client-side termination unit;
15. The exchange according to claim 14, further comprising a server-side update unit that receives a packet transmitted from each server to each client and sends the packet to the client-side update unit.
個々のパケットに分割された送信データにおける、当該パケット中のデータの順番を示すシーケンス番号と、
当該パケットのデータ長と、
通信相手が既に受信済みであるデータのシーケンス番号を示すAck番号を含むことを特徴とする請求項15に記載の交換機。In the header information of the packet,
In the transmission data divided into individual packets, a sequence number indicating the order of data in the packet,
The data length of the packet,
The exchange according to claim 15, further comprising an Ack number indicating a sequence number of data that has already been received by a communication partner.
通信相手がまだ受信していない受信バッファの残り容量を示すWin値を含むことを特徴とする請求項16に記載の交換機。In the header information of the packet,
The exchange according to claim 16, further comprising a Win value indicating a remaining capacity of a reception buffer that has not yet been received by a communication partner.
各前記クライアントから受け付けたパケットのヘッダ情報を、前記クライアント側更新部及び前記サーバ側終端部に通知する手段を備え、
前記サーバ側更新部は、
各前記サーバから各前記クライアントに対し送信されるパケットのヘッダ情報を前記サーバ側終端部に通知する手段を備え、
前記クライアント側更新部及び前記サーバ側終端部は、
前記通知されたヘッダ情報を記録し参照して、パケットのヘッダ情報を適正に書き換えることを特徴とする請求項14又は請求項15に記載の交換機。The client side termination is
Means for notifying the header information of the packet received from each of the clients to the client side update unit and the server side termination unit;
The server side update unit
Means for notifying the server-side termination unit of header information of a packet transmitted from each server to each client;
The client side update unit and the server side termination unit are:
16. The exchange according to claim 14 or 15, wherein the header information of the packet is appropriately rewritten by recording and referring to the notified header information.
各前記クライアントから受け付けたパケットに対する応答処理を前記クライアント側更新部に指示し、
記クライアント側更新部は、
前記応答処理の指示を受け付けて、当該クライアントに対する応答のパケットを生成して発信する手段を備えることを特徴とする請求項18に記載の交換機。In the state where the one-way splicing process is set, the client-side termination unit is
Instructing the client side update unit to perform response processing for packets received from each of the clients,
The client-side update unit
19. The exchange according to claim 18, further comprising means for receiving a response processing instruction and generating and transmitting a response packet to the client.
1つの前記クライアントに対する複数の前記サーバからのパケットの送信を中継し、
中継するパケットのヘッダ情報から、個々の前記サーバにおけるパケットの送信の終了の旨を示すフラグを除去する手段を備え、
前記クライアントとの間のコネクションを切断することなく、前記複数のサーバを切り換えて発信されるパケットを前記クライアントに中継することを特徴とする請求項14から請求項19のいずれか一つに記載の交換機。The server side update unit
Relay transmission of packets from a plurality of the servers to one client;
Means for removing from the header information of the packet to be relayed a flag indicating the end of packet transmission in each of the servers,
20. The packet transmitted by switching the plurality of servers is relayed to the client without disconnecting the connection with the client. 20. switch.
前記クライアントから前記サーバに対して個々のパケットに分割されて送信される送信データを、元の分割する前の状態に復元し、各パケットを、サーバを選択して送信する手段を備えることを特徴とする請求項14から請求項20のいずれか一つに記載の交換機。The client side termination unit and the server side termination unit are:
It comprises means for restoring transmission data divided into individual packets to be transmitted from the client to the server to the state before the original division, and transmitting each packet by selecting the server. The exchange according to any one of claims 14 to 20.
前記解析部は、
前記クライアント側終端部から、前記クライアントが各前記サーバに対し発信する要求の情報を取得する手段と、
前記要求に基づいて、当該クライアントが接続すべき接続先のサーバを判定する手段と、
前記サーバ側終端部に対して、当該クライアントの前記判定された接続先のサーバへの接続を指示する手段を備えることを特徴とする請求項14から請求項21のいずれか一つに記載の交換機。An analysis unit for determining a connection destination server to which each of the clients connects;
The analysis unit
Means for acquiring information of a request that the client sends to each of the servers from the client-side termination unit;
Means for determining a connection destination server to which the client should connect based on the request;
The exchange according to any one of claims 14 to 21, further comprising means for instructing the server-side termination unit to connect to the determined connection destination server of the client. .
前記クライアントから前記サーバに対して、個々のパケットに分割されて送信される送信データを元の分割する前の状態に復元した後に、当該サーバに対し送信する手段を備え、
前記解析部は、
前記元の分割する前の状態に復元された送信データに基づいて、前記接続先のサーバを判定する手段を備えることを特徴とする請求項22に記載の交換機。The client side termination unit and the server side termination unit are:
A means for transmitting to the server after restoring the transmission data divided into individual packets and transmitted to the server from the client to the original state before the division,
The analysis unit
23. The exchange according to claim 22, further comprising means for determining the connection destination server based on the transmission data restored to the original state before the division.
前記クライアントにより発信された未処理のデータ取得要求を、その接続先のサーバ毎に順次グループに分類する手段と、
前記サーバ側終端部に対して、分類された各前記グループ毎に、対応するサーバへの接続と当該グループに分類された前記データ取得要求の実行を指示する手段を備えることを特徴とする請求項22又は請求項23に記載の交換機。The analysis unit
Means for sequentially classifying unprocessed data acquisition requests sent by the client into groups for each server to which the connection is made;
The server-side termination unit is provided with means for instructing connection to a corresponding server and execution of the data acquisition request classified into the group for each of the classified groups. The switch according to claim 22 or 23.
前記サーバから前記クライアントに対して送信されるパケットの中継時に、当該パケットのヘッダ情報を、当該パケットが交換機から発信された場合に設定される内容に書き換えて、前記パケットを前記クライアントに対して発信し、
前記クライアントからのデータ取得要求の中継時から、前記サーバから前記クライアントに対し送信される応答のパケットの送信が終了するまでの間、当該サーバから当該クライアントへの方向に対し片方向のスプライシングの処理を行ない、かつ前記クライアントから前記サーバへの方向の通信に対して再送制御及びフロー制御を行なうことを特徴とするパケット交換方法。In a packet switching method of an exchange that relays packet communication between a plurality of servers and clients via a communication network,
When the packet transmitted from the server to the client is relayed, the header information of the packet is rewritten to the contents set when the packet is transmitted from the exchange, and the packet is transmitted to the client. And
One-way splicing processing from the server to the client from when the data acquisition request from the client is relayed until the response packet transmitted from the server to the client is completed the performed, and packet switching method, wherein from said client to perform the direction of retransmission control and flow control for the communication to the server.
前記サーバから前記クライアントに対し送信されるパケットを、ヘッダ情報を書き換えて中継するステップと、
各前記サーバとの間のコネクションを管理し、前記クライアントから送られる各前記サーバに対する命令やデータを中継するステップを備え、
前記パケットのヘッダ情報には、
個々のパケットに分割された送信データにおける、当該パケット中のデータの順番を示すシーケンス番号と、
当該パケットのトランスポート層以下のデータ長と、
通信相手が既に受信済みであるデータのシーケンス番号を示すAck番号と、通信相手がまだ受信していない受信バッファの残り容量を示すWin値を含むことを特徴とする請求項25に記載のパケット交換方法。Managing a connection between each of the clients and receiving a connection or request from each of the clients;
A packet transmitted from the server to the client, rewriting the header information, and relaying;
Managing a connection with each of the servers, and comprising relaying instructions and data for each of the servers sent from the client;
In the header information of the packet,
In the transmission data divided into individual packets, a sequence number indicating the order of data in the packet,
The data length below the transport layer of the packet,
26. The packet exchange according to claim 25, comprising an Ack number indicating a sequence number of data that has already been received by a communication partner, and a Win value indicating a remaining capacity of a reception buffer that has not yet been received by the communication partner. Method.
中継するパケットのヘッダ情報から、個々の前記サーバにおけるパケットの送信の終了の旨を示すフラグを除去するステップを備え、
前記クライアントとの間のコネクションを切断することなく、前記複数のサーバを切り換えて発信されるパケットを前記クライアントに中継することを特徴とする請求項26に記載のパケット交換方法。Relay transmission of packets from a plurality of the servers to one client;
A step of removing a flag indicating the end of packet transmission in each of the servers from the header information of the packet to be relayed,
27. The packet switching method according to claim 26, wherein a packet transmitted by switching the plurality of servers is relayed to the client without disconnecting a connection with the client.
前記要求に基づいて、当該クライアントが接続すべき接続先のサーバを判定するステップと、
当該クライアントの前記判定された接続先のサーバへの接続を指示するステップを備えることにより、各前記クライアントが接続する接続先のサーバを決定することを特徴とする請求項26から請求項28のいずれか一つに記載のパケット交換方法。Obtaining information of a request that the client sends to each of the servers;
Determining a connection destination server to which the client should connect based on the request;
29. The server according to claim 26, further comprising a step of instructing connection of the client to the determined connection destination server, thereby determining a connection destination server to which each of the clients is connected. Or the packet switching method according to claim 1.
分類された各前記グループ毎に、対応するサーバへの接続と当該グループに分類された前記データ取得要求の実行を指示するステップを備えることを特徴とする請求項29に記載のパケット交換方法。Sequentially classifying the raw data acquisition requests sent by the client into groups for each server to which it is connected;
30. The packet switching method according to claim 29, further comprising a step of instructing, for each of the classified groups, connection to a corresponding server and execution of the data acquisition request classified into the group.
前記交換プログラムは、
前記サーバから前記クライアントに対して送信されるパケットの中継時に、当該パケットのヘッダ情報を、当該パケットが前記交換機から発信された場合に設定される内容に書き換えて、前記パケットを前記クライアントに対して発信し、
前記クライアントからのデータ取得要求の中継時から、前記サーバから前記クライアントに対し送信される応答のパケットの送信が終了するまでの間、当該サーバから当該クライアントへの方向に対し片方向のスプライシングの処理を行ない、かつ前記クライアントから前記サーバへの方向の通信に対して再送制御及びフロー制御を行なうことを特徴とする交換プログラムを記録した記録媒体。In a recording medium in which an exchange program that relays packet communication between a plurality of servers and clients via a communication network by controlling the computer is recorded so as to be readable by the computer,
The exchange program is
When a packet transmitted from the server to the client is relayed, the header information of the packet is rewritten to the contents set when the packet is transmitted from the exchange, and the packet is transmitted to the client. Outgoing,
One-way splicing processing from the server to the client from the time when the data acquisition request from the client is relayed until the transmission of the response packet transmitted from the server to the client is completed the conducted, and a recording medium recording a replacement program and performs retransmission control and flow control for the direction of communication to the server from the client.
各前記クライアントとの間のコネクションを管理し、各前記クライアントからの接続や要求を受け付けるステップと、
前記サーバから前記クライアントに対し送信されるパケットを、ヘッダ情報を書き換えて中継するステップと、
各前記サーバとの間のコネクションを管理し、前記クライアントから送られる各前記サーバに対する命令やデータを中継するステップを備え、
前記パケットのヘッダ情報には、
個々のパケットに分割された送信データにおける、当該パケット中のデータの順番を示すシーケンス番号と、
当該パケットのトランスポート層以下のデータ長と、
通信相手が既に受信済みであるデータのシーケンス番号を示すAck番号と、
通信相手がまだ受信していない受信バッファの残り容量を示すWin値を含むことを特徴とする請求項31に記載の交換プログラムを記録した記録媒体。The exchange program is
Managing a connection between each of the clients and receiving a connection or request from each of the clients;
A packet transmitted from the server to the client, rewriting the header information, and relaying;
Managing a connection with each of the servers, and comprising relaying instructions and data for each of the servers sent from the client;
In the header information of the packet,
In the transmission data divided into individual packets, a sequence number indicating the order of data in the packet,
The data length below the transport layer of the packet,
An Ack number indicating the sequence number of data that the communication partner has already received;
32. The recording medium on which the exchange program according to claim 31 is recorded, comprising a Win value indicating a remaining capacity of a reception buffer that has not yet been received by a communication partner.
1つの前記クライアントに対する複数の前記サーバからのパケットの送信を中継し、
中継するパケットのヘッダ情報から、個々の前記サーバにおけるパケットの送信の終了の旨を示すフラグを除去するステップを備え、
前記クライアントとの間のコネクションを切断することなく、前記複数のサーバを切り換えて発信されるパケットを前記クライアントに中継することを特徴とする請求項32に記載の交換プログラムを記録した記録媒体。The exchange program is
Relay transmission of packets from a plurality of the servers to one client;
A step of removing a flag indicating the end of packet transmission in each of the servers from the header information of the packet to be relayed,
The recording medium recording the exchange program according to claim 32, wherein a packet transmitted by switching the plurality of servers is relayed to the client without disconnecting the connection with the client.
前記クライアントから前記サーバに対して個々のパケットに分割されて送信される送信データを、元の分割する前の状態に復元し、各パケットを、サーバを選択して送信するステップを備えることを特徴とする請求項32又は請求項33に記載の交換プログラムを記録した記録媒体。The exchange program is
The transmission data divided into individual packets transmitted from the client to the server is restored to the state before the original division, and each packet is selected and transmitted to the server. A recording medium on which the exchange program according to claim 32 or 33 is recorded.
前記クライアントが各前記サーバに対し発信する要求の情報を取得するステップと、
前記要求に基づいて、当該クライアントが接続すべき接続先のサーバを判定するステップと、
当該クライアントの前記判定された接続先のサーバへの接続を指示するステップを備えることにより、各前記クライアントが接続する接続先のサーバを決定することを特徴とする請求項32から請求項34のいずれか一つに記載の交換プログラムを記録した記録媒体。The exchange program is
Obtaining information of a request that the client sends to each of the servers;
Determining a connection destination server to which the client should connect based on the request;
35. The server according to claim 32, further comprising a step of instructing connection of the client to the determined connection destination server to determine a connection destination server to which each of the clients is connected. A recording medium on which the exchange program according to claim 1 is recorded.
前記クライアントにより発信された未処理のデータ取得要求を、その接続先のサーバ毎に順次グループに分類するステップと、
分類された各前記グループ毎に、対応するサーバへの接続と当該グループに分類された前記データ取得要求の実行を指示するステップを備えることを特徴とする請求項35に記載の交換プログラムを記録した記録媒体。The exchange program is
Sequentially classifying the raw data acquisition requests sent by the client into groups for each server to which it is connected;
36. The exchange program according to claim 35, further comprising a step of instructing, for each of the classified groups, connection to a corresponding server and execution of the data acquisition request classified into the group. recoding media.
前記交換プログラムは、
前記交換機における前記クライアントからのデータ取得要求の中継時から、前記クライアントに対し送信される応答のパケットの送信を終了するまでの間、片方向のスプライシングによって当該クライアントへに対し前記パケットを送信することを特徴とするサーバ上で動作する交換プログラムをコンピュータにより読み取り可能に記録した記録媒体。In a recording medium in which an exchange program operating on a server in a communication system that performs packet communication between a server and a client via an exchange is recorded by controlling the computer on the server so that the computer can read it,
The exchange program is
Transmitting the packet to the client by one-way splicing from the time of relaying the data acquisition request from the client in the exchange until the end of transmission of the response packet transmitted to the client The recording medium which recorded the exchange program which operate | moves on the server characterized by these so that reading by a computer was possible.
前記交換機における前記サーバへのデータ取得要求の中継時から、前記サーバから受信される応答のパケットの送信を終了するまでの間、片方向のスプライシングによって当該サーバから前記パケットを受信することを特徴とするクライアント上で動作する交換プログラムをコンピュータにより読み取り可能に記録した記録媒体。In a recording medium in which an exchange program that operates on a client in a communication system that performs packet communication between a server and a client via a switch by controlling the computer on the client is readable by the computer,
From the time of relaying a data acquisition request to the server in the exchange until the end of transmission of a response packet received from the server, the packet is received from the server by one-way splicing. The recording medium which recorded the exchange program which operate | moves on the client to be readable by a computer.
前記交換機における前記クライアントからのデータ取得要求の中継時から、前記クライアントに対し送信される応答のパケットの送信を終了するまでの間、片方向のスプライシングによって当該クライアントへに対し前記パケットを送信することを特徴とするサーバ。A server in a communication system that performs packet communication between a server and a client via an exchange,
Transmitting the packet to the client by one-way splicing from the time of relaying the data acquisition request from the client in the exchange until the end of transmission of the response packet transmitted to the client Server characterized by.
個々のパケットに分割された送信データにおける、当該パケット中のデータの順番を示すシーケンス番号と、
当該パケットのデータ長と、
通信相手が既に受信済みであるデータのシーケンス番号を示すAck番号を含むことを特徴とする請求項40に記載のサーバ。In the header information of the packet,
In the transmission data divided into individual packets, a sequence number indicating the order of data in the packet,
The data length of the packet,
41. The server according to claim 40, further comprising an Ack number indicating a sequence number of data that has already been received by a communication partner.
通信相手がまだ受信していない受信バッファの残り容量を示すWin値を含むことを特徴とする請求項41に記載のサーバ。In the header information of the packet,
42. The server according to claim 41, comprising a Win value indicating a remaining capacity of a reception buffer that has not yet been received by a communication partner.
中継するパケットのヘッダ情報から、個々の前記サーバにおけるパケットの送信の終了の旨を示すフラグが除去され、
前記クライアントとの間のコネクションを切断することなく、前記複数のサーバを切り換えて発信されるパケットを前記クライアントに中継することを特徴とする請求項40から請求項42のいずれか一つに記載のサーバ。The switch relays transmission of packets from the plurality of servers to one client;
A flag indicating the end of packet transmission in each of the servers is removed from the header information of the packet to be relayed,
43. The packet transmitted by switching the plurality of servers is relayed to the client without disconnecting the connection with the client, according to any one of claims 40 to 42. server.
前記クライアントが各前記サーバに対し発信する要求の情報を前記交換機で取得し、
前記要求に基づいて、当該クライアントが接続すべき接続先のサーバが判定され、
当該クライアントの前記判定された接続先のサーバへの接続が指示されることを特徴とする請求項40から請求項44のいずれか一つに記載のサーバ。A server to which each client connects is determined by the exchange,
Obtain information of the request that the client sends to each of the servers with the exchange,
Based on the request, a connection destination server to which the client should connect is determined,
45. The server according to claim 40, wherein the client is instructed to connect to the determined connection destination server.
分類された各前記グループ毎に、対応するサーバへの接続と当該グループに分類された前記データ取得要求の実行が指示されることを特徴とする請求項45に記載のサーバ。Unprocessed data acquisition requests sent by the client are sequentially grouped into groups for each connected server,
46. The server according to claim 45, wherein each of the classified groups is instructed to connect to a corresponding server and execute the data acquisition request classified into the group.
前記交換機における前記サーバへのデータ取得要求の中継時から、前記サーバから受信される応答のパケットの送信を終了するまでの間、片方向のスプライシングによって当該サーバから前記パケットを受信することを特徴とするクライアント。A client in a communication system that performs packet communication between a server and a client via an exchange,
From the time of relaying a data acquisition request to the server in the exchange until the end of transmission of a response packet received from the server, the packet is received from the server by one-way splicing. Client.
個々のパケットに分割された送信データにおける、当該パケット中のデータの順番を示すシーケンス番号と、
当該パケットのデータ長と、
通信相手が既に受信済みであるデータのシーケンス番号を示すAck番号を含むことを特徴とする請求項48に記載のクライアント。In the header information of the packet,
In the transmission data divided into individual packets, a sequence number indicating the order of data in the packet,
The data length of the packet,
49. The client according to claim 48, further comprising an Ack number indicating a sequence number of data that has already been received by a communication partner.
通信相手がまだ受信していない受信バッファの残り容量を示すWin値を含むことを特徴とする請求項49に記載のクライアント。In the header information of the packet,
The client according to claim 49, further comprising a Win value indicating a remaining capacity of a reception buffer that has not yet been received by a communication partner.
中継するパケットのヘッダ情報から、個々の前記サーバにおけるパケットの送信の終了の旨を示すフラグが除去され、
前記クライアントとの間のコネクションを切断することなく、前記複数のサーバを切り換えて発信されるパケットを前記クライアントに中継することを特徴とする請求項48から請求項50のいずれか一つに記載のクライアント。The switch relays transmission of packets from the plurality of servers to one client;
A flag indicating the end of packet transmission in each of the servers is removed from the header information of the packet to be relayed,
51. The packet transmitted by switching the plurality of servers is relayed to the client without disconnecting the connection with the client, according to any one of claims 48 to 50. client.
前記クライアントが各前記サーバに対し発信する要求の情報を前記交換機で取得し、
前記要求に基づいて、当該クライアントが接続すべき接続先のサーバが判定され、
当該クライアントの前記判定された接続先のサーバへの接続が指示されることを特徴とする請求項48から請求項52のいずれか一つに記載のクライアント。A server to which each client connects is determined by the exchange,
Obtain information of the request that the client sends to each of the servers with the exchange,
Based on the request, a connection destination server to which the client should connect is determined,
53. The client according to claim 48, wherein the client is instructed to connect to the determined connection destination server.
分類された各前記グループ毎に、対応するサーバへの接続と当該グループに分類された前記データ取得要求の実行が指示されることを特徴とする請求項53に記載のクライアント。Unprocessed data acquisition requests sent by the client are sequentially grouped into groups for each server to which they are connected,
The client according to claim 53, wherein for each of the classified groups, connection to a corresponding server and execution of the data acquisition request classified into the group are instructed.
前記クライアントにより発信された未処理のデータ取得要求を、その接続先のサーバ毎に順次グループに分類する手段と、
前記サーバ側終端部に対して、分類された各前記グループ毎に、対応するサーバへの接続と当該グループに分類された前記データ取得要求の実行及び取得要求の送信後にサーバとのコネクションを切断する事を指示する手段を備えることを特徴とする請求項10又は請求項11に記載の通信システム。In Claim 12, the analysis unit comprises:
Means for sequentially classifying unprocessed data acquisition requests sent by the client into groups for each server to which the connection is made;
For each group that has been classified to the server-side termination unit, connection to the corresponding server, execution of the data acquisition request classified into the group, and disconnection of the server after transmission of the acquisition request are disconnected 12. The communication system according to claim 10, further comprising means for instructing a thing.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001246139A JP3642305B2 (en) | 2000-12-28 | 2001-08-14 | COMMUNICATION SYSTEM, PACKET EXCHANGE METHOD THEREOF, AND RECORDING MEDIUM CONTAINING EXCHANGE PROGRAM |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000401060 | 2000-12-28 | ||
JP2000-401060 | 2000-12-28 | ||
JP2001246139A JP3642305B2 (en) | 2000-12-28 | 2001-08-14 | COMMUNICATION SYSTEM, PACKET EXCHANGE METHOD THEREOF, AND RECORDING MEDIUM CONTAINING EXCHANGE PROGRAM |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002261792A JP2002261792A (en) | 2002-09-13 |
JP3642305B2 true JP3642305B2 (en) | 2005-04-27 |
Family
ID=26607080
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001246139A Expired - Fee Related JP3642305B2 (en) | 2000-12-28 | 2001-08-14 | COMMUNICATION SYSTEM, PACKET EXCHANGE METHOD THEREOF, AND RECORDING MEDIUM CONTAINING EXCHANGE PROGRAM |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3642305B2 (en) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4516439B2 (en) * | 2005-02-01 | 2010-08-04 | 富士通株式会社 | Relay program, relay method, and relay device |
WO2007102209A1 (en) * | 2006-03-08 | 2007-09-13 | Yamatake Corporation | Communication relaying device and communication relaying method |
JP4702151B2 (en) * | 2006-04-10 | 2011-06-15 | パナソニック株式会社 | Network relay device and network communication system |
JP2009152953A (en) | 2007-12-21 | 2009-07-09 | Nec Corp | Gateway apparatus, packet forwarding method |
JP5498102B2 (en) * | 2009-09-02 | 2014-05-21 | アラクサラネットワークス株式会社 | Network system, network relay device, and control method thereof |
JP5858147B2 (en) * | 2012-03-28 | 2016-02-10 | 日本電気株式会社 | COMMUNICATION SYSTEM, UPPER LAYER SWITCH, CONTROL DEVICE, SWITCH CONTROL METHOD, AND PROGRAM |
-
2001
- 2001-08-14 JP JP2001246139A patent/JP3642305B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002261792A (en) | 2002-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7519048B2 (en) | Communication system and packet switching method thereof | |
JP3811057B2 (en) | Relay connection management program and relay connection management method | |
US7542476B2 (en) | Method and system for manipulating IP packets in virtual private networks | |
JP3448481B2 (en) | TCP communication speed-up device for asymmetric line | |
JP5097620B2 (en) | Multipath communication system | |
US20040156393A1 (en) | Architecture and API for of transport and upper layer protocol processing acceleration | |
JP2005516478A (en) | System and method for providing a fault tolerant routing database | |
JP3822054B2 (en) | Communication method and system | |
US20050120140A1 (en) | Method of and system for multi-patch communication | |
EP2206320A1 (en) | Method and apparatus for peer to peer link establishment over a network | |
CN106576108B (en) | Communication method, equipment and system in communication system | |
JP2001045094A (en) | Recipient initiation recovery algorithm(rira) for layer 2 tunneling protocol(l2tp) | |
JP5913258B2 (en) | Relay device and data transfer method | |
CN109922144A (en) | Method and apparatus for handling data | |
US7564848B2 (en) | Method for the establishing of connections in a communication system | |
JP3642305B2 (en) | COMMUNICATION SYSTEM, PACKET EXCHANGE METHOD THEREOF, AND RECORDING MEDIUM CONTAINING EXCHANGE PROGRAM | |
US7984164B2 (en) | Server, and packet transferring method and program therefor | |
JP5941887B2 (en) | Edge router switching method and system, edge router and redundancy management device | |
JP4555345B2 (en) | Communication network system having bus type network structure and data transmission / reception method using the same | |
JP4229807B2 (en) | Data transfer method, TCP proxy device, and network system using the same | |
US5835728A (en) | System for routing computer network | |
JP4568846B2 (en) | Gateway device, transmission method, reception method, and information recording medium | |
JP2004254039A (en) | Mail communication relay system, mail communication relay apparatus, mail communication relay method, and mail communication relay program | |
JP4505575B2 (en) | COMMUNICATION SYSTEM, GATEWAY TRANSMISSION DEVICE, GATEWAY RECEPTION DEVICE, TRANSMISSION METHOD, RECEPTION METHOD, AND INFORMATION RECORDING MEDIUM | |
US20050180465A1 (en) | Automatic resynchronization of physically relocated links in a multi-link frame relay system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040810 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040823 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041022 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050105 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050118 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080204 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090204 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100204 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100204 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110204 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110204 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120204 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120204 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130204 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130204 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140204 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |