JP2001308939A - スループットを制御する通信システムおよび方法 - Google Patents

スループットを制御する通信システムおよび方法

Info

Publication number
JP2001308939A
JP2001308939A JP2001034466A JP2001034466A JP2001308939A JP 2001308939 A JP2001308939 A JP 2001308939A JP 2001034466 A JP2001034466 A JP 2001034466A JP 2001034466 A JP2001034466 A JP 2001034466A JP 2001308939 A JP2001308939 A JP 2001308939A
Authority
JP
Japan
Prior art keywords
client
server
data
protocol
agent
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.)
Withdrawn
Application number
JP2001034466A
Other languages
English (en)
Inventor
Hideki Yamanaka
英樹 山中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2001034466A priority Critical patent/JP2001308939A/ja
Publication of JP2001308939A publication Critical patent/JP2001308939A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

(57)【要約】 【課題】 遅延の大きなネットワークにおいて、低コス
トでクライアント−サーバ間のスループットを向上させ
ることが課題である。 【解決手段】 エージェント中継器13とエージェント
中継器14の間で、サーバ11とクライアント12の間
のアプリケーションプロトコルのコネクションを、巨大
な通信ウィンドウを持つ多重化プロトコルに変換して、
通信を中継する。また、エージェント中継器13が大き
なバッファでサーバ11からのデータを受信すること
で、サーバ11がこのコネクションに割り当てるスルー
プットを増大させる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、クライアント−サ
ーバ間の通信、特に、大陸間、衛星中継等の遅延の大き
なインターネット通信において、スループットを制御す
る通信システムおよびその方法に関する。
【0002】
【従来の技術および発明が解決しようとする課題】大陸
間、衛星中継等の遠距離のインターネット通信において
は、一般に、近距離の通信に比べて大きな遅延が発生
し、クライアント−サーバ間の通信スループットが低下
する。ここで、通信スループットとは、一定時間内に転
送される情報量を指している。このような遅延の大きな
ネットワークにおける通信ボトルネックを解消する従来
の方法としては、以下の2つの方法が挙げられる。 (1)物理的に大容量のネットワークを構築する。 (2)主サーバが提供する情報と同様のコンテンツを有
するミラーサーバをクライアントの近辺に分散配置し、
クライアントが最初に主サーバにアクセスした時点で、
主サーバからミラーサーバにアクセスをリダイレクトす
る。
【0003】(1)の方法では、多くのユーザの通信を
賄うためにバンド幅を大きくすることはできるが、物理
的な距離により決まる遅延(物理的遅延)を小さくする
ことはできない。
【0004】これに対して、(2)の方法では、主サー
バとクライアントの間の物理的遅延に拘束されることが
なく、近距離で安価な低遅延広帯域ネットワークを実現
できる。しかし、ミラーリングできるコンテンツに制約
があり、単純なオブジェクト(データ)のダウンロード
には非常に有効であるが、CGI(common gateway int
erface)等を用いてサーバのデータベースを更新するよ
うな通信には使えない。
【0005】また、ミラーサーバを設置するためのコス
トが高いという問題もある。近年の波長多重化による光
ファイバを使った大陸間通信のコスト低減は著しく、バ
ンド幅の改善だけのためにコストの高いミラーサーバを
多数設置することは、割に合わなくなり始めている。
【0006】本発明の課題は、より低いコストで、クラ
イアント−サーバ間のスループットを向上させる通信シ
ステムおよびその方法を提供することである。
【0007】
【課題を解決するための手段】図1は、本発明の通信シ
ステムの原理図である。本発明の第1の局面において、
通信システムは、バッファ手段1と転送手段2を備え、
サーバ3とクライアント4の間の通信を中継する。
【0008】バッファ手段1は、サーバ3からクライア
ント4に送信されるデータをバッファしてサーバ3から
のデータの出力を加速することで、サーバ3がクライア
ント4とのコネクションに対して割り当てるスループッ
トを増大させる。転送手段2は、バッファ手段1に格納
されたデータをクライアント4に転送する。
【0009】バッファ手段1は、例えば、クライアント
4の受信バッファより大きな容量を持ち、サーバ3がク
ライアント4に対して送出したデータを高速に受信す
る。これにより、サーバ3からのデータの送信速度が増
大する。転送手段2は、バッファ手段1が高速に受信し
たデータをクライアント4に転送する。
【0010】サーバ3は、通常、ネットワーク遅延の小
さなコネクションに対して大きなスループットを割り当
てる制御を行うので、サーバ3の送信速度が増大するに
つれて、サーバ3とクライアント4のコネクションに割
り当てられるスループットが増大する。これにより、サ
ーバ3とクライアント4の間の遅延が大きい場合でも、
ミラーサーバを設置することなく、高速な通信を実現す
ることができる。
【0011】また、本発明の第2の局面において、通信
システムは、受信手段5、変換手段6、および送信手段
7を備え、サーバ3とクライアント4の間の通信を中継
する。
【0012】受信手段5は、サーバ3からクライアント
4に送信されるデータを受信する。変換手段6は、受信
したデータのプロトコルを、より大きなデータ量を一度
に転送可能なプロトコルに変換する。送信手段7は、変
換手段6により変換されたデータをネットワークに送信
する。
【0013】変換手段6は、受信手段5が受信したデー
タのプロトコルを別のプロトコルに変換し、送信手段7
は、変換後のプロトコルに基づいて、元のプロトコルよ
り大きなデータ量を一度にネットワークに送信する。こ
れにより、クライアント4に向けて一度に転送されるデ
ータ量が増大し、ミラーサーバを設置しなくても、高速
な通信を実現することができる。
【0014】また、本発明の第3の局面において、通信
システムは、受信手段8、変換手段9、および送信手段
10を備え、サーバ3とクライアント4の間の通信を中
継する。
【0015】受信手段8は、サーバ3からクライアント
4に送信されるデータのプロトコルを、より大きなデー
タ量を一度に転送可能なプロトコルに変換して得られた
データを、ネットワークから受信する。変換手段9は、
受信したデータのプロトコルを元のプロトコルに変換す
る。送信手段10は、変換手段9により変換されたデー
タをクライアント4に送信する。
【0016】受信手段8は、例えば、送信手段7により
送信されたデータをネットワークから受信し、変換手段
9は、受信したデータのプロトコルを変換して元のプロ
トコルに戻す。そして、送信手段10は、元のプロトコ
ルに基づいて、データをクライアント4に送信する。こ
れにより、クライアント4に向けて送信手段7から受信
手段8に一度に転送されるデータ量が増大し、ミラーサ
ーバを設置しなくても、高速な通信を実現することがで
きる。
【0017】例えば、図1のバッファ手段1と転送手段
2は、後述する図2のエージェント中継器13に対応
し、図1の受信手段5、変換手段6、送信手段7、受信
手段8、変換手段9、および送信手段10は、後述する
図7の受信モジュール31、プロトコル変換モジュール
32、送信モジュール34、受信モジュール41、プロ
トコル変換モジュール39、および送信モジュール38
に対応する。
【0018】
【発明の実施の形態】以下、図面を参照しながら、本発
明の実施の形態を詳細に説明する。大陸間通信におい
て、コストの高いミラーサーバを分散配置することをあ
きらめた場合、遠距離通信の遅延によるクライアント側
のスループット低下という問題が後に残される。クライ
アント側スループット低下の原因は、次の3つに大別さ
れる。 (1)物理的に決まる絶対遅延 (2)通信プロトコルによる遅延 (3)遅延の大きなコネクションに対するサーバのスル
ープット割り当て低減スケジューリング (1)の遅延は、超光速通信の実現を待たなければ解消
されない。(2)の遅延は、通信プロトコルや通信の枠
組みを置き換えることで、(1)に比して問題にならな
い程度まで小さくできる。また、(3)のスケジューリ
ングによれば、サーバは、サーバから見た遅延が大きな
コネクションに対しては、結果として小さなスループッ
トを割り当てるような制御を行う。そこで、トータルな
遅延ではなく、サーバから見たクライアントへのコネク
ションの遅延を小さくすれば、スループットを向上させ
ることができる。
【0019】サーバから見たコネクションの遅延は、サ
ーバの出力ポートへの書き込みのブロック時間として現
れる。サーバの近辺という非常に低遅延な場所に中継器
を置き、サーバが書き込んだデータを、中継器が大きな
バッファを使って高速に読み込み、バッファに貯まった
データを、遅延の大きなクライアントとの間で緩やかに
転送する。これにより、サーバにとっては、そのクライ
アントとのコネクションが非常に低遅延なものに見え
る。
【0020】また、通常のネットワーク通信において
は、1回の転送で送信可能な最大データ量を表す通信ウ
ィンドウが設定されており、最大通信スループットは、
ウィンドウサイズと遅延時間の比(ウィンドウサイズ/
遅延)により決まる。ただし、このウィンドウサイズ
は、送信側と受信側のバッファのサイズにより決めら
れ、ネットワークのバンド幅は、この最大通信スループ
ットより十分大きいものとする。
【0021】このため、遅延の大きな通信であっても、
ウィンドウサイズが大きければ、ウィンドウサイズが小
さくて遅延の小さな通信と同等のスループットを得るこ
とができる。したがって、転送オブジェクトが比較的小
さくて、バッファに収まる程度である場合だけでなく、
ストリーミングデータのように、ほぼ同じ速度で連続的
に流れてくるオブジェクトの場合でも、サーバから見た
実効遅延は小さくなる。
【0022】サーバが各クライアントとのコネクション
に割り当てるスループットは、ほとんどの場合、そのコ
ネクションの遅延とサーバの内部遅延のうち大きい方に
反比例する。サーバの内部遅延は、ディスクI/O(入
出力)、ネットワークI/O、CPU(中央処理装置)
等におけるキューの待ち時間で決まり、リクエストが多
くてキューが長くなれば、それだけ内部遅延が大きくな
る。
【0023】大きなサーバでは、オブジェクトを多くの
ディスクに分散したり、ストライピング等の方法でアク
セスを並列化して、ディスクI/Oの待ち時間をできる
だけ小さくしている。また、ネットワークI/Oについ
ても、高速LAN(local area network)、WAN(wi
de area network )回線を用い、複数のLANアダプタ
を設ける等の工夫を施して、待ち時間を低減している。
さらに、CPUのキューに関しては、複数のCPUを持
つ共有記憶型計算機、複数の計算機のクラスタ等を用い
て、待ち時間を低減している。
【0024】近年の急激な周辺機器の価格低減により、
多くのサーバはこれらのリソースを豊富に持っているの
で、サーバの内部遅延はかなり小さくなってきている。
その結果、クライアントへのスループット割り当ては、
多くの場合、ネットワークの遅延により決まってくる。
【0025】そこで、本実施形態では、サーバの近辺に
エージェント中継器を設置し、エージェント中継器が大
きなバッファでオブジェクトを受信することで、サーバ
から見たクライアントとのネットワーク遅延を実質的に
小さくする。
【0026】サーバから見た遅延を実質的に小さくする
ことで、合計のネットワーク遅延が同じである他のクラ
イアントに比べて、より多くのスループットが本実施形
態のシステムを利用するクライアントに割り当てられ
る。さらに、たとえ地球の反対側からアクセスしてくる
クライアントであっても、サーバの近辺の高速ネットワ
ークで繋がったクライアントと同等のスループットを獲
得することができるようになる。
【0027】図2は、このような通信システムの構成図
である。図2のシステムにおいては、Webサーバ11
とWebクライアント12の間にエージェント中継器1
3が設けられている。サーバ11とクライアント12の
間のネットワーク遅延はRTT1 であり、エージェント
中継器13は、サーバ11からのネットワーク遅延がR
TT2 で、クライアント12からのネットワーク遅延が
RTT3 の地点に設置されている。
【0028】ただし、このネットワーク遅延は、送信側
から受信側に信号を送信して、受信側から送信側に応答
を返送するまでのラウンドトリップタイムを表し、RT
1=RTT2 +RTT3 であり、エージェント中継器
13のデータ中継オーバヘッドは、RTT1 に比べて無
視できるほど小さいものとする。
【0029】サーバ11の内部遅延をDとし、サーバ1
1からクライアント12へのデータ転送のウィンドウサ
イズをBとすると、サーバ11からクライアント12へ
直接データを転送する場合の最大ダウンロード速度は、
DとRTT1 のうち大きい方の遅延とBとの比率で決ま
り、B/max(D,RTT1 )となる。max(a,
b)は、aとbのうちの最大値を表す。通常は、D<R
TT1 であるので、この最大ダウンロード速度は、B/
RTT1 である。
【0030】これに対して、エージェント中継器13
が、プロキシクライアントとして、サーバ11とクライ
アント12の間でデータの中継を行う場合、サーバ11
とエージェント中継器13の間の最大ダウンロード速度
は、B/max(D,RTT2)となる。
【0031】ここで、D<RTT2 となるようにエージ
ェント中継器13を設置すると、サーバ11とエージェ
ント中継器13の間の最大ダウンロード速度は、B/R
TT 2 となる。このとき、サーバ11から見たときの最
大ダウンロード速度は、直接通信する場合に比べて、
(B/RTT2 )/(B/RTT1 )=RTT1 /RT
2 倍となる。言い換えれば、サーバ11から見たとき
のクライアント12との遅延がRTT1 からRTT2
減少し、サーバ11がクライアント12とのコネクショ
ンに割り当てるスループットがRTT1 /RTT2 倍に
増加する。
【0032】また、エージェント中継器13とクライア
ント12の間の最大ダウンロード速度は、サーバ11と
エージェント中継器13の間のダウンロード速度と、エ
ージェント中継器13とクライアント12の間のダウン
ロード速度のうち、遅い方の速度で決まり、min(B
/RTT3 ,B/max(D,RTT2 ))となる。m
in(a,b)は、aとbのうちの最小値を表す。
【0033】ここで、RTT2 <RTT3 となるように
エージェント中継器13を設置し、D<RTT3 である
ものとすれば、B/RTT3 はB/max(D,RTT
2 )より小さくなる。したがって、エージェント中継器
13とクライアント12の間の最大ダウンロード速度
は、B/RTT3 となる。
【0034】このとき、クライアント12から見たとき
の最大ダウンロード速度は、直接通信する場合に比べ
て、(B/RTT3 )/(B/RTT1 )=RTT1
RTT 3 倍となる。RTT3 <RTT1 であるから、直
接通信の場合より、エージェント中継器13を用いた場
合の方が高速になることが分かる。
【0035】このように、D<RTT2 <RTT3 のと
き、サーバ11が割り当てるスループットがRTT1
RTT2 倍になり、クライアント12から見たときの最
大ダウンロード速度がRTT1 /RTT3 =RTT1
(RTT1 −RTT2 )倍になる。つまり、RTT2
小さいほど、サーバ11から割り当てられるスループッ
トが増大し、RTT2 が大きいほど、クライアント12
に対する最大ダウンロード速度が増大する。
【0036】したがって、RTT2 をどの程度の値にす
るかは、スループットの割り当てと最大ダウンロード速
度のトレードオフにより決定される。特に、RTT2
Dに近い値になるようにエージェント中継器13を設置
すれば、直接通信する場合に比べて、スループットの割
り当てをRTT1 /D倍程度まで増大させることができ
る。
【0037】このように、図2の通信システムによれ
ば、サーバの持つスループット特性を利用することで、
クライアント12は、同時にアクセスする他のクライア
ントより有利なスループットを獲得することができる。
【0038】また、サーバとクライアントの双方を改造
することなく、上述した通信プロトコルによる遅延を削
減するために、サーバの近辺とクライアントの近辺にそ
れぞれエージェント中継器を設けるシステムも考えられ
る。このシステムでは、これらのエージェント中継器が
プロトコル変換を行い、サーバとクライアントの間の通
信のほとんどの時間をこの変換されたプロトコルで中継
する。
【0039】例えば、各クライアントのリモートエージ
ェントをサーバの近辺のエージェント中継器に仮想的に
設置し、そのエージェント中継器とクライアントの近辺
のエージェント中継器の間で、各クライアントとサーバ
の間のアプリケーションプロトコルのコネクションを多
重化プロトコルに変換して中継する。このようなプロト
コル変換により、2つのエージェント中継器間に巨大な
通信ウィンドウを設定することで、クライアントとサー
バの間のスループットが向上し、ネットワーク遅延が隠
蔽される。
【0040】特に、HTTP(hypertext transfer pro
tocol )通信のように、1つのリクエストを送ってその
応答を待つタイプの通信の場合、クライアントから送ら
れたリクエストに対して、信頼性を保ちつつ、1ラウン
ドトリップタイム程度で応答オブジェクトをサーバから
クライアントに転送するような、理論限界速度の中継プ
ロトコルを実現できる。
【0041】この中継プロトコルでは、エージェント中
継器間のTCP(transmission control protocol )通
信に巨大なTCPウィンドウを設定し、ほとんどの大き
さのオブジェクト全体をウィンドウ内に収めて、1回の
転送で送信側から受信側に送ってしまう。そして、受信
側は、オブジェクトを受信したことを、1つのまとまっ
た受信通知(acknowledge )で送信側に知らせる。
【0042】図3は、このような通信システムの構成図
である。図3のシステムにおいては、サーバ11の近辺
にエージェント中継器13が設けられ、クライアント1
2の近辺にエージェント中継器14が設けられている。
サーバ11とクライアント12の間、サーバ11とエー
ジェント中継器13の間、エージェント中継器13とエ
ージェント中継器14の間、エージェント中継器14と
クライアント12の間のネットワーク遅延は、それぞ
れ、RTT1 、RTT2 、RTT3 、RTT4 である。
ただし、RTT1 =RTT2 +RTT3 +RTT4 であ
り、エージェント中継器13、14のデータ中継オーバ
ヘッドは、RTT1 に比べて無視できるほど小さいもの
とする。
【0043】通常、サーバ11が1つのコネクションに
割り当てるネットワークI/Oバッファは、8KB(キ
ロバイト)程度のことが多い。この理由は、WWW(wo
rldwide web)で転送されるオブジェクトの平均的な大
きさが10〜20KB程度であり、TCPの輻輳回避ア
ルゴリズムにより、ウィンドウが3KB、6KB、12
KB、...のように徐々に開いていくので、I/Oバ
ッファを大きくしても、実際に使われるバッファは8K
B程度にしかならないからである。
【0044】大きなバイナリデータを転送するときに大
きなバッファは有効であるが、平均すると8KBを越え
た領域は使われないことが多いで、過大なバッファを割
り当てることは無駄である。
【0045】このI/Oバッファを実効的に大きくする
方法は、ウィンドウが大きく開いた状態のコネクション
を多重化して、他のコネクションまたは他のクライアン
トと共有することである。この方法によれば、ウィンド
ウが大きいので実効スループットは向上し、他のコネク
ションのデータ転送にも用いられるので、小さなオブジ
ェクトの転送が多い場合でも、それらが一緒にウィンド
ウに詰め込まれて転送される。したがって、大きなバッ
ファを確保しても、実質的には無駄にならない。
【0046】この方法は、2つのエージェント中継器1
3、14でデータを中継するため、それらのオーバーヘ
ッドを必然的に含むことになるが、このオーバーヘッド
は、ハードウェアおよびソフトウェアを高性能化すれ
ば、それだけ小さくできるものである。これに対して、
物理的な絶対遅延は、ハードウェアおよびソフトウェア
の高性能化ではまったく小さくすることができず、光速
を越える通信手段が現れない限り解消されない。
【0047】このような通信ウィンドウを設定するため
に、エージェント中継器13、14の間に、大きなI/
Oバッファを備えた信頼性のある通信トランスポートプ
ロトコルでコネクションを張る。そして、このコネクシ
ョンを多重化するプロトコルを用いて、サーバ11とク
ライアント12の間のアプリケーションプロトコルの通
信を、このコネクション上で中継(トンネリング)す
る。
【0048】エージェント中継器13、14は、トラン
スポート層のパケットをそのまま中継するのではなく、
各アプリケーションプロトコルの性質を用いて、アプリ
ケーションプロトコルのパケットあるいはデータを、よ
り効率の良い多重化パケットに変換しながら、中継を行
う。このとき、エージェント中継器13、14に設けら
れたクライアント12のエージェントは、例えば、プロ
グラムモジュールとして実装され、アプリケーションプ
ロトコルと多重化プロトコルの間のプロトコル変換/逆
変換を行うインタフェースの役割を果たす。
【0049】エージェント中継器13のエージェント
は、クライアント12に代わって、大きなバッファでサ
ーバ11から高速にオブジェクトを受信しながら、バッ
ファに貯まったオブジェクトを、多重化プロトコルでエ
ージェント中継器14のエージェントに転送する。そし
て、エージェント中継器14のエージェントは、多重化
プロトコルで受信したオブジェクトを、クライアント1
2と通信するためのアプリケーションプロトコルに変換
し、クライアント12に転送する。
【0050】また、逆に、エージェント中継器14のエ
ージェントは、クライアント12の送信するオブジェク
トを大きなバッファで受信しながら、多重化プロトコル
でエージェント中継器13のエージェントに転送する。
そして、エージェント中継器13のエージェントは、転
送されたオブジェクトを大きなバッファで受信しなが
ら、バッファに貯まったオブジェクトをサーバ11に高
速に転送する。
【0051】この多重化プロトコルで、単純にアプリケ
ーションプロトコルのトランスポートプロトコルパケッ
トを中継した場合、ネットワーク遅延は中継オーバーヘ
ッドの分だけ増大するだけであるが、上述のようなアプ
リケーションプロトコルレベルのプロトコル変換を用い
れば、ネットワーク遅延を実質的に削減(隠蔽)するこ
とができる。ここで、トランスポートプロトコルパケッ
トは、IP(Internetprotocol)パケット等に対応す
る。
【0052】アプリケーションプロトコルレベルのプロ
トコル変換は、TCP等の信頼性のある通信につきもの
であるデータ転送ウィンドウのウィンドウサイズを変換
することで行われる。信頼性のある通信の最大通信速度
はウィンドウサイズ/遅延で決まるので、通信速度が遅
延の小さな区間と同等になるように、遅延の大きな区間
のウィンドウサイズを大きく設定する。ただし、ネット
ワークのバンド幅は十分大きく、最大通信速度に影響を
与えないものとする。
【0053】また、TCP等では、輻輳回避のために、
転送開始の直後から少しずつウィンドウサイズを大きく
していくスロースタート機構を採用している。このスロ
ースタートによれば、アプリケーションプロトコルより
下位層にあるTCPのようなデータ転送プロトコルのコ
ネクション毎にウィンドウが設定され、それが徐々に開
いていく。1つのコネクションが継続して使われ、転送
エラーが発生しない場合、このコネクションのウィンド
ウは、パケットの転送が成功する度に倍増し、小さな初
期値から指定された最大サイズまで指数関数的に開いて
いく。
【0054】そこで、下位のプロトコルのコネクション
を継続して利用すれば、転送エラーが発生しない限り、
下位コネクションのウィンドウは最大サイズまで開き切
ることになる。また、転送エラーが発生する場合でも、
下位のプロトコルがウィンドウサイズを適切に自動調整
することで、ウィンドウサイズは、転送エラーがほとん
ど起こらないような最大のサイズに落ち着くことにな
る。ここでは、下位コネクションの継続利用のことを、
コネクションの多重化と呼んでいる。
【0055】上位層のプロトコルの多重化コネクション
の使用を開始した時点では、下位コネクションのウィン
ドウが十分に開いていないので、通信は、下位コネクシ
ョンのスロースタートの影響を受ける。しかし、ウィン
ドウは指数関数的に開いていくので、短時間のうちに十
分に開き切り、多重化コネクションは、その使用時間の
ほとんどの間、ウィンドウが十分開いた状態の下位コネ
クションを使用することになる。
【0056】このように、ウィンドウが大きく開いた状
態のコネクションを多重化して利用すると、常に最大の
ウィンドウサイズで通信が中継されるため、サーバ11
とクライアント12の間の通信には、実質的にスロース
タートが働かなくなる。また、多重化されたコネクショ
ンには輻輳制御が働くので、多重化によってイタズラに
輻輳を悪化させることはない。
【0057】これに対して、多重化を利用しない通常の
場合、下位コネクションが毎回新たに設定されるため、
それより上位のプロトコルのコネクションに、下位コネ
クションのスロースタートの影響がそのまま現れる。
【0058】TCPの場合、ウィンドウが標準的な最大
サイズである8KBまで開くためには、17KB程度以
上のオブジェクトをダウンロードしなければならない。
しかし、WWW等のオブジェクトの典型的なサイズは3
KB程度なので、下位コネクションの能力を十分に利用
していないが実態である。
【0059】例えば、多重化コネクションを利用して、
3KBのオブジェクト10個を連続してダウンロードす
る場合、6個程度ダウンロードした時点で、既にウィン
ドウが8KBまで開き、それ以降のオブジェクトは、こ
の開いたウィンドウのままで転送される。これに対し
て、多重化しない場合は、オブジェクト毎にウィンドウ
を新たに開く動作を行うため、最後まで8KBに達する
ことはない。
【0060】このように、エージェント中継器13、1
4間の通信においては、上位層のプロトコルの多重化コ
ネクションを使用するだけで、ほとんどの間、ウィンド
ウが開き切った状態になるため、スロースタートが働か
ない。また、下位コネクションの最大ウィンドウサイズ
を標準的な数値の100倍以上に初期化するような制御
を行えば、コネクションを継続して利用しているだけ
で、通常ではあり得ない大きさにまでウィンドウを開く
ことができる。
【0061】一般に、ネットワークのバンド幅がどんな
に大きくても、転送速度はウィンドウサイズ/遅延に抑
制されてしまう。このため、ウィンドウサイズを十分に
大きな値に設定しなければ、ネットワークリソースに大
きな投資を行っても、それが十分に活用されない無駄な
ものになってしまう恐れがある。この観点から見たと
き、上位層のプロトコルの多重化は、実質的な平均ウィ
ンドウサイズを容易に拡大する1つの方法を与えてい
る。
【0062】図3のシステムにおいて、サーバ11から
クライアント12へ直接データを転送する場合の最大ダ
ウンロード速度は、図2のシステムと同様に、B/ma
x(D,RTT1 )となる。
【0063】次に、エージェント中継器13、14によ
り中継を行う場合、サーバ11とエージェント中継器1
3の間の最大ダウンロード速度は、B/max(D,R
TT 2 )となる。
【0064】また、エージェント中継器13、14の間
のデータ転送のウィンドウサイズWは、サーバ11およ
びクライアント12のバッファサイズとは独立に任意に
設定できるので、例えば、Bの数倍〜数千倍の値に設定
しておく。
【0065】エージェント中継器13、14の間の最大
ダウンロード速度は、サーバ11とエージェント中継器
13の間のダウンロード速度と、エージェント中継器1
3、14の間のダウンロード速度のうち、遅い方の速度
で決まり、min(W/RTT3 ,B/max(D,R
TT2 ))となる。
【0066】また、エージェント中継器14とクライア
ント12の間の最大ダウンロード速度は、サーバ11と
エージェント中継器13の間のダウンロード速度と、エ
ージェント中継器13、14の間のダウンロード速度
と、エージェント中継器14とクライアント12の間の
ダウンロード速度のうち、最も遅い速度で決まり、mi
n(B/RTT4 ,W/RTT3 ,B/max(D,R
TT2 ))となる。
【0067】ここで、D<RTT2 <RTT3 、RTT
4 <RTT3 となるようにエージェント中継器13、1
4を設置し、W=B×(RTT3 /RTT2 )とする
と、エージェント中継器13、14の間の最大ダウンロ
ード速度は、B/RTT2 となり、エージェント中継器
14とクライアント12の間の最大ダウンロード速度
は、min(B/RTT4 ,B/RTT2 )となる。
【0068】さらに、RTT2 ≧RTT4 とすると、エ
ージェント中継器14とクライアント12の間の最大ダ
ウンロード速度は、B/RTT2 となる。このとき、ク
ライアント12から見たときの最大ダウンロード速度
は、直接通信する場合に比べて、(B/RTT2 )/
(B/RTT1 )=RTT1 /RTT2 倍となる。RT
2 <RTT1 であるから、直接通信の場合より、エー
ジェント中継器13、14を用いた場合の方が高速にな
る。
【0069】特に、エージェント中継器13、14を、
それぞれ、サーバ11、クライアント12に隣接して設
置すれば、RTT1 とRTT3 が同じ程度の値になり、
RTT2 はRTT1 に比べてはるかに小さくなる。この
とき、WはBに比べてはるかに大きくなり、クライアン
ト12から見たときの最大ダウンロード速度は、直接通
信の場合より、はるかに高速になる。したがって、サー
バ11とクライアント12の間のスループットが飛躍的
に増大する。
【0070】また、図3のシステムにおいて、エージェ
ント中継器13、14のエージェントは、単に、スルー
プットを可能な限り高める制御を行うだけでなく、逆
に、故意にスループットを下げるような制御を行うこと
もできる。
【0071】例えば、エージェント中継器13、14が
適当なタイミングでアイドリング動作を行うことで、デ
ータ転送のスロットリングが実現される。このとき、エ
ージェント中継器13、14は、多数のクライアントの
各々のエージェントが行うアイドリングを全体的にスケ
ジューリングし、クライアント単位でリソース割り当て
を記述することで、システムが各クライアントに割り当
てるスループットを意図的に制御することができる。
【0072】図4は、このようなスロットリング制御を
示している。まず、クライアント側のエージェント中継
器14のエージェントに、適当なスループット値をリソ
ース割り当てとして与えておく。次に、エージェント中
継器14のエージェントは、この値をアイドリング時間
Iに変換して、サーバ側のエージェント中継器13のエ
ージェントに通知する。そして、エージェント中継器1
3のエージェントは、データ転送の度に、時間Iのアイ
ドリング動作を実行する。
【0073】ここで、エージェント中継器13がサーバ
11からデータを受信し、OKの受信通知(acknowledg
e )を返送してからアイドリングを行うものとすると、
サーバ11とエージェント中継器13の間の最大ダウン
ロード速度は、D、RTT2、およびIのうち最大の時
間とBとの比率で決まり、B/max(D,RTT2
I)となる。
【0074】また、エージェント中継器13、14の間
の最大ダウンロード速度は、min(W/RTT3 ,B
/max(D,RTT2 ,I))となり、エージェント
中継器14とクライアント12の間の最大ダウンロード
速度は、min(B/RTT 4 ,W/RTT3 ,B/m
ax(D,RTT2 ,I))となる。
【0075】ここで、W=B×(RTT3 /RT
2 )、I>D、I>RTT2 、I>RTT4 とする
と、エージェント中継器14とクライアント12の間の
最大ダウンロード速度は、自動的にB/Iとなる。この
とき、クライアント12から見たときの最大ダウンロー
ド速度は、直接通信する場合に比べて、(B/I)/
(B/RTT1 )=RTT1 /I倍となる。
【0076】したがって、I<RTT1 であれば、直接
通信の場合よりスループットが向上し、I>RTT1
あれば、直接通信の場合よりスループットが低下する。
このような制御によれば、クライアント単位でスループ
ットを増減することができ、クライアントの優先順位に
応じたデータ転送が実現される。
【0077】次に、図3のシステムに基づくサービスの
例について説明する。図3のシステムによれば、2つの
ネットワーク間の遅延が大きいとき、これらのネットワ
ーク間にエージェント中継器を設置することで、多重化
コネクションを用いた高速な仮想トンネルが構築され
る。この仮想トンネルをバイパスとして用いることで、
ネットワーク間の遅延を実質的に隠蔽することができ
る。したがって、特別料金を支払うプレミアユーザに対
して高スループットを保証するようなサービスを提供す
ることが可能になる。
【0078】このサービスでは、クライアント側のエー
ジェント中継器内に、各クライアントのIPアドレスを
あらかじめ登録しておき、エージェント中継器のエージ
ェントは、接続を試みるクライアントのIPアドレス
を、登録されているIPアドレスと比較することで、ユ
ーザ認証を行う。そして、クライアントのIPアドレス
が登録されていれば処理を続行し、それが登録されてい
なければ、処理を中断して接続を遮断する。
【0079】このとき、クライアント側のエージェント
中継器は、プロキシサーバと互換の動作を行い、サーバ
側のエージェント中継器を用いた方が高速な場合にの
み、そのエージェント中継器にリクエストを中継し、そ
の他の場合は、プロキシサーバとして直接サーバに接続
する。
【0080】また、HTTP通信の場合には、IPアド
レスの代わりにクッキー(cookie)を用いて、ユーザ認
証を行うことができる。クッキーは、Webサイトの提
供者が、Webブラウザを通じて、サイトを訪れたクラ
イアントに一時的にデータを書き込んで保存させる技術
である。クッキーには、ユーザに関する情報やサイトを
訪れた日時、訪問回数等が記録される。
【0081】この場合、各ユーザにあらかじめクッキー
を配布しておき、ネットワークへのアクセス時に、これ
をHTTPリクエストのヘッダに設定してもらう。ま
た、クライアント側のエージェント中継器内に、各ユー
ザのクッキーをあらかじめ登録しておく。そして、エー
ジェント中継器のエージェントは、各クライアントのH
TTPリクエストのヘッダをチェックし、登録されたク
ッキーがヘッダにあれば、処理を続行し、そのようなク
ッキーがなければ、処理を中断して接続を遮断する。
【0082】図5は、このようなプレミアユーザサービ
スを行う通信システムを示している。日本の複数のプレ
ミアユーザのクライアント12が米国の複数のサーバ1
1からサービスを受ける場合、米国、日本の適当な場所
に、それぞれ、エージェント中継器13、14を設置す
る。一般に、エージェント中継器13、14は、それぞ
れ複数設置される。また、多重化コネクションを用い
て、エージェント中継器13とエージェント中継器14
の間に仮想トンネル21を構築し、アプリケーションプ
ロトコルを仮想的にトンネリングさせる。
【0083】日本のプレミアユーザは、エージェント中
継器14をプロキシサーバとして設定し、米国のサーバ
11にアクセスする。エージェント中継器14は、クラ
イアント12からのリクエストを受け取ると、そのクラ
イアント12用のエージェントを起動して、アクセス制
御および課金制御を行う。
【0084】このエージェントは、IPアドレス、クッ
キー等を用いて、コネクション毎にクライアント12の
認証課金を行い、そのクライアント12が事前に登録さ
れているプレミアユーザであるか否かをチェックする。
そして、認証が成功すると、米国に設置された複数のエ
ージェント中継器13のうち最適なエージェント中継器
13にリクエストを転送する。また、認証が失敗する
と、単にリクエストを廃棄して、コネクションを消去す
る。
【0085】エージェント中継器14のルーティングテ
ーブルには、あらかじめ米国のサーバ11とエージェン
ト中継器13が登録されており、このルーティングテー
ブルを検索することで、最適なエージェント中継器13
へのルーティングが行われる。また、エージェント中継
器13、14の間で動的にルーティング情報を交換する
ことで、ルーティングテーブルが動的に更新される。
【0086】リクエストを受け取ったエージェント中継
器13は、クライアント12用のエージェントを起動し
て、そのリクエストをサーバ11に渡す。サーバ11
は、これと逆のルートを辿って、リクエストされたオブ
ジェクトをクライアント12に転送する。
【0087】このサービスでは、エージェント中継器1
4のエージェントがクライアント認証時に同時に課金を
行うことで、パケット数等に応じた従量制料金をユーザ
に請求することができる。また、一定期間のサービス利
用料として、固定料金をユーザに請求する課金方法も考
えられる。
【0088】このように、プレミアユーザサービスで
は、接続要求を送信したクライアント12を特定し、そ
のクライアント12と仮想トンネル21の接続の可否を
決定する。接続を許可されたクライアント12には、仮
想トンネル21を通じて、通信スループットの増大とい
うプレミアサービスが提供される。
【0089】特に、米国と日本の間のネットワーク遅延
は、日本国内および米国内のそれに比べて非常に大き
い。このため、プレミアユーザサービスにより、この間
のバンド幅を十分に大きくすることができれば、日本の
クライアント12と米国のサーバ11が直接通信する場
合に比べて、10倍以上の高速化が期待できる。
【0090】また、仮想トンネル21によりネットワー
ク間の遅延を実質的に隠蔽することで、料金を支払うサ
ービス提供者のサーバ11とそのユーザのクライアント
12の間の通信に対して、高スループットを保証するサ
ービスを提供することも可能である。
【0091】サービス提供者がミラーサーバを世界的に
分散配置するほどのコストを掛ける余裕がない場合、仮
想トンネル21を利用することで、ミラーサーバを設置
した場合に相当するサービスを、より安価なコストで実
施することができる。
【0092】この場合、エージェント中継器13、14
は、料金を支払ったサービス提供者のサーバ11に限定
して、サーバ11とクライアント12の間の通信を中継
する。より具体的には、エージェント中継器13、14
は、接続してきたクライアント12からのオブジェクト
のリクエストのうち、料金を支払った業者が登録したサ
ーバ11に対するものだけを実際に中継し、それ以外の
サーバ11へのリクエストを拒絶する。
【0093】このとき、クライアント側のエージェント
中継器14は、リモートサーバ11と互換の動作を行い
ながら、リクエストをサーバ11上のオブジェクトに転
送する。これにより、クライアント12に対して、エー
ジェント中継器14がミラーサーバと同様の動作を行っ
ているように見せることができ、クライアント12の設
定を変更する必要がまったくない。
【0094】図6は、このようなクライアントミラーリ
ングサービスを行う通信システムを示している。このシ
ステムでは、サービスの契約時に登録された米国の各サ
ーバ11に対して、それぞれ、1つずつ専用のエージェ
ント中継器13を設置し、各エージェント中継器13と
日本に設置されたエージェント中継器14をアプリケー
ションプロトコルの仮想トンネル21で結ぶ。一般に、
エージェント中継器14は複数設置される。
【0095】エージェント中継器14は、日本の一般ユ
ーザに高速ミラーサーバとして開放され、そのルーティ
ングテーブルには、各サーバ11とエージェント中継器
13の組が登録されている。エージェント中継器14
は、クライアント12からのリクエストを一旦受け取
り、リクエストされたオブジェクトをサービスしている
サーバ11をルーティングテーブル内で検索する。そし
て、そのサーバ11に結びつけられたエージェント中継
器13を転送先として選択し、リクエストを転送する。
【0096】リクエストを受け取ったエージェント中継
器13は、エージェントを起動して、アクセス制御およ
び課金制御を行う。エージェントは、サーバ11の認証
課金を行い、転送されてきたリクエストがそのエージェ
ント中継器13に結び付けられたサーバ11に対するも
のであるか否かをチェックする。
【0097】そして、認証が成功すれば、リクエストを
サーバ11に転送し、認証が失敗すれば、リクエストさ
れたオブジェクトが存在しない旨の通知をクライアント
12に返送する。これにより、プログラムの誤動作等に
よって転送されたリクエストを拒絶することが可能にな
る。
【0098】このサービスでは、エージェント中継器1
3のエージェントがサーバ認証時に同時に課金を行うこ
とで、図5のサービスと同様に、従量制料金をサービス
提供者に請求することができる。また、一定期間のサー
ビス利用料として、固定料金をサービス提供者に請求す
る課金方法も考えられる。
【0099】このように、クライアントミラーリングサ
ービスでは、接続先のサーバ11を特定し、そのサーバ
11とクライアント12を仮想トンネル21により接続
するか否かを決定する。接続を許可されたクライアント
12には、仮想トンネル21を通じて、ミラーサーバに
よるミラーリングと同様の効果を持つサービスが提供さ
れる。このサービスにおいても、図5のサービスと同様
に、直接通信の場合に比べて10倍以上の高速化が期待
できる。
【0100】次に、図7から図10までを参照しなが
ら、エージェント中継器13、14上で起動されるエー
ジェントの構成と動作を詳細に説明する。図7は、エー
ジェント中継器の構成図である。図7のエージェント中
継器は、コンピュータを用いて構成され、受信モジュー
ル31、41、プロトコル変換モジュール32、39、
多重化モジュール33、40、送信モジュール34、3
8、認証課金部35、スイッチモジュール36、ルーテ
ィングテーブル37を備える。これらのモジュールは、
例えば、プログラムモジュールとして実装され、プロト
コル変換モジュール32、39は、クライアント12に
代わって処理を行うエージェントに対応する。
【0101】まず、クライアント側のエージェント中継
器14において、受信モジュール31は、クライアント
12からのリクエストのアプリケーションプロトコルパ
ケットをネットワークから受信し、受信したパケットを
プロトコル変換モジュール32に転送する。
【0102】プレミアユーザサービスの場合、プロトコ
ル変換モジュール32は、パケットの送信元の認証課金
処理を認証課金部35に依頼し、処理結果を受け取る。
その後、パケットをエージェントプロトコルパケットに
変換して、スイッチモジュール36に渡す。ここで、エ
ージェントプロトコルは、エージェント中継器間の多重
化プロトコルに対応する。
【0103】スイッチモジュール36は、ルーティング
テーブル37を検索することで転送先のルートを決定
し、エージェントプロトコルパケットを多重化モジュー
ル33に渡す。
【0104】多重化モジュール33は、複数のコネクシ
ョンのエージェントプロトコルパケットを多重化し、送
信モジュール34は、多重化されたパケットを、サーバ
側のエージェント中継器13に向けて、ネットワーク上
に送出する。
【0105】次に、エージェント中継器13において、
受信モジュール41は、ネットワークから多重化された
パケットを受信し、多重化モジュール40は、パケット
をデマルチプレクスして、個々のエージェントプロトコ
ルパケットに分離し、スイッチモジュール36に渡す。
【0106】スイッチモジュール36は、ルーティング
テーブル37を検索することで転送先のルートを決定
し、エージェントプロトコルパケットをプロトコル変換
モジュール39に渡す。
【0107】プロトコル変換モジュール39は、受け取
ったエージェントプロトコルパケットをアプリケーショ
ンプロトコルパケットに変換する。さらに、クライアン
トミラーリングサービスの場合、送信先サーバの認証課
金処理を認証課金部35に依頼し、処理結果を受け取
る。その後、アプリケーションプロトコルパケットを送
信モジュール38に渡す。送信モジュール38は、アプ
リケーションプロトコルパケットを、転送先のサーバ1
1に向けて、ネットワーク上に送出する。
【0108】次に、エージェント中継器13において、
受信モジュール31は、サーバ11のオブジェクトのア
プリケーションプロトコルパケットをネットワークから
受信し、受信したパケットをプロトコル変換モジュール
32に転送する。
【0109】プロトコル変換モジュール32は、パケッ
トをエージェントプロトコルパケットに変換して、スイ
ッチモジュール36経由で、多重化モジュール33に渡
す。多重化モジュール33は、複数のコネクションのエ
ージェントプロトコルパケットを多重化し、送信モジュ
ール34は、多重化されたパケットを、クライアント側
のエージェント中継器14に向けて、ネットワーク上に
送出する。
【0110】次に、エージェント中継器14において、
受信モジュール41は、ネットワークから多重化された
パケットを受信する。多重化モジュール40は、パケッ
トをデマルチプレクスして、個々のエージェントプロト
コルパケットに分離し、スイッチモジュール36経由
で、プロトコル変換モジュール39に渡す。
【0111】プロトコル変換モジュール39は、受け取
ったパケットをアプリケーションプロトコルパケットに
変換し、送信モジュール38に渡す。送信モジュール3
8は、アプリケーションプロトコルパケットを、転送先
のクライアント12に向けて、ネットワーク上に送出す
る。
【0112】こうして、サーバ11にオブジェクトを要
求したクライアント12に対して、エージェント中継器
13、14経由で、要求されたオブジェクトがダウンロ
ードされる。
【0113】図8は、認証課金部35の構成図である。
図8の認証課金部35は、認証課金モジュール51、I
Pデータベース52、および認証課金データベース53
を含み、パケットに設定されたIPアドレスに基づいて
認証課金を行う。
【0114】まず、プレミアユーザサービスにおいて、
IPデータベース52には、各クライアント12のIP
アドレスとユーザ識別情報(ユーザID)からなるレコ
ードが格納され、認証課金データベース53には、ユー
ザID、サービスの利用期限、および処理されたパケッ
トの数からなるレコードが格納される。
【0115】プロトコル変換モジュール32は、アプリ
ケーションプロトコルパケットの送信元のIPアドレス
を認証課金モジュール51に渡す。認証課金モジュール
51は、そのIPアドレスをキーとしてIPデータベー
ス52を検索し、そのIPアドレスを持つレコードがあ
れば、そのレコードのユーザIDを取得する。
【0116】次に、得られたユーザIDをキーとして認
証課金データベース53を検索し、そのユーザIDを持
つレコードがあれば、そのレコードの利用期限をチェッ
クする。そして、現在の日時が利用期限内であれば、そ
のレコードのパケット数に1を加算し、認証が成功した
ことをプロトコル変換モジュール32に通知する。
【0117】送信元のIPアドレスを持つレコードがI
Pデータベース52にない場合、あるいは、サービスの
利用期限が過ぎている場合は、認証課金モジュール51
は、認証が失敗したことをプロトコル変換モジュール3
2に通知する。
【0118】次に、クライアントミラーリングサービス
において、IPデータベース52には、各サーバ11の
IPアドレスとサービス提供者識別情報(サービス提供
者ID)からなるレコードが格納され、認証課金データ
ベース53には、サービス提供者ID、サービスの利用
期限、および処理されたパケットの数からなるレコード
が格納される。
【0119】プロトコル変換モジュール39は、エージ
ェントプロトコルパケットの送信先のIPアドレスを認
証課金モジュール51に渡す。認証課金モジュール51
は、プレミアユーザサービスの場合と同様の処理を行っ
て、認証の成功または失敗をプロトコル変換モジュール
39に通知する。この場合、サービス提供者IDがユー
ザIDと同様の役割を果たす。
【0120】図9および図10は、図7のエージェント
中継器の処理のフローチャートである。各モジュール
は、処理すべきパケットをネットワークから受信したと
き、または、処理すべきパケットを他のモジュールから
入力されたときに、それぞれ、決められた処理を行う。
【0121】まず、スイッチモジュール36は、プロト
コル変換モジュール32または多重化モジュール40か
らエージェントプロトコルパケットが入力されたか否か
をチェックする(図9のステップS1)。パケットが入
力されれば、ルーティングテーブル37を検索して、対
応する転送先ルートが登録されているか否かをチェック
し(ステップS2)、転送先ルートが登録されていれ
ば、そのルートにパケットを転送する(ステップS
3)。その後、ステップS1以降の処理が繰り返され
る。
【0122】通常、プロトコル変換モジュール32から
入力されたパケットは多重化モジュール33に転送さ
れ、多重化モジュール40から入力されたパケットはプ
ロトコル変換モジュール39に転送される。転送先ルー
トが登録されていなければ、パケットを廃棄し、エラー
通知パケットを送信元に返送する(ステップS4)。そ
の後、ステップS1以降の処理が繰り返される。
【0123】スイッチモジュール36にパケットが入力
されなければ、次に、受信モジュール41は、ネットワ
ークからエージェントプロトコルパケットを受信したか
否かをチェックする(ステップS5)。パケットを受信
すれば、そのパケットを多重化モジュール40に転送し
(ステップS6)、多重化モジュール40は、パケット
をデマルチプレクスして(ステップS7)、スイッチモ
ジュール36に転送する(ステップS8)。その後、ス
テップS1以降の処理が繰り返される。
【0124】受信モジュール41がパケットを受信しな
ければ、次に、多重化モジュール33は、スイッチモジ
ュール36からエージェントプロトコルパケットが入力
されたか否かをチェックし(ステップS9)、パケット
が入力されれば、そのパケットを多重化して、送信モジ
ュール34に転送する(ステップS10)。そして、送
信モジュール34は、パケットをネットワーク上に送出
する。その後、ステップS1以降の処理が繰り返され
る。
【0125】多重化モジュール33にパケットが入力さ
れなければ、次に、受信モジュール31は、ネットワー
クからアプリケーションプロトコルパケットを受信した
か否かをチェックする(図10のステップS11)。パ
ケットを受信すれば、そのパケットをプロトコル変換モ
ジュール32に転送する(ステップS12)。
【0126】プロトコル変換モジュール32は、パケッ
トの送信元の認証課金処理を認証課金部35に依頼し、
認証課金が成功したか否かをチェックする(ステップS
13)。認証課金が成功すれば、そのパケットをエージ
ェントプロトコルパケットに変換して、スイッチモジュ
ール36に転送する(ステップS15)。その後、ステ
ップS1以降の処理が繰り返される。
【0127】認証課金が失敗すれば、パケットを廃棄
し、エラー通知パケットをスイッチモジュール36経由
で送信元に返送する(ステップS16)。その後、ステ
ップS1以降の処理が繰り返される。
【0128】受信モジュール31がパケットを受信しな
ければ、次に、プロトコル変換モジュール39は、スイ
ッチモジュール36からエージェントプロトコルパケッ
トが入力されたか否かをチェックする(ステップS1
7)。パケットが入力されれば、そのパケットをアプリ
ケーションプロトコルパケットに逆変換し(ステップS
18)、送信先の認証課金処理を認証課金部35に依頼
して、認証課金が成功したか否かをチェックする(ステ
ップS19)。
【0129】認証課金が成功すれば、パケットを送信モ
ジュール38に転送し、送信モジュール38は、パケッ
トをネットワーク上に送出する(ステップS20)。そ
の後、ステップS1以降の処理が繰り返される。
【0130】認証課金が失敗すれば、パケットを廃棄
し、エラー通知パケットをスイッチモジュール36経由
で送信元に返送する(ステップS21)。その後、ステ
ップS1以降の処理が繰り返される。
【0131】図11は、図8の認証課金モジュール51
の処理のフローチャートである。まず、認証課金モジュ
ール51は、プロトコル変換モジュール32または39
から認証課金が要求されたか否かをチェックする(ステ
ップS31)。
【0132】プロトコル変換モジュール32から認証課
金が要求されれば、その要求に含まれる送信元のIPア
ドレスをキーとしてIPデータベース52を検索し、そ
のIPアドレスを持つレコードがあるか否かをチェック
する(ステップS32)。
【0133】そのようなレコードがあれば、次に、その
レコードに含まれるユーザIDをキーとして認証課金デ
ータベース53を検索し、そのユーザIDを持つレコー
ドの処理を行って、処理結果をチェックする(ステップ
S33)。この処理では、レコードに含まれる利用期限
をチェックし、現在の日時が利用期限内であれば、その
レコードのパケット数に1を加算する。
【0134】このような処理が成功すれば、認証が成功
したことをプロトコル変換モジュール32に通知する
(ステップS34)。その後、ステップS31以降の処
理が繰り返される。
【0135】ステップS32において対応するレコード
がない場合、または、ステップS33において対応する
レコードの処理が失敗した場合は、認証が失敗したこと
をプロトコル変換モジュール32に通知する(ステップ
S35)。ステップS33においては、例えば、対応す
るレコードがないか、または利用期限が過ぎている場合
に、レコードの処理が失敗したものと判断される。その
後、ステップS31以降の処理が繰り返される。
【0136】また、ステップS31において、プロトコ
ル変換モジュール39から認証課金が要求されれば、そ
の要求に含まれる送信先のIPアドレスをキーとしてI
Pデータベース52を検索する。そして、ユーザIDの
代わりにサービス提供者IDを取得して、同様の処理を
行い、結果をプロトコル変換モジュール39に通知す
る。
【0137】ところで、図3のサーバ11、クライアン
ト12、エージェント中継器13、14は、例えば、図
12に示すような情報処理装置(コンピュータ)を用い
て構成することができる。図12の情報処理装置は、C
PU(中央処理装置)61、メモリ62、入力装置6
3、出力装置64、外部記憶装置65、媒体駆動装置6
6、およびネットワーク接続装置67を備え、それらは
バス68により互いに接続されている。
【0138】メモリ62は、例えば、ROM(read onl
y memory)、RAM(random access memory)等を含
み、処理に用いられるプログラムとデータを格納する。
図7のルーティングテーブル37と、図8のIPデータ
ベース52および認証課金データベース53は、例え
ば、メモリ62に格納される。CPU61は、メモリ6
2を利用してプログラムを実行することにより、必要な
処理を行う。
【0139】図7の受信モジュール31、41、プロト
コル変換モジュール32、39、多重化モジュール3
3、40、送信モジュール34、38、およびスイッチ
モジュール36と、図8の認証課金モジュール51は、
プログラムにより記述されたソフトウェアコンポーネン
トとしてメモリ62に格納される。
【0140】入力装置63は、例えば、キーボード、ポ
インティングデバイス、タッチパネル等であり、オペレ
ータ(ユーザ、サービス提供者、管理者等)からの指示
や情報の入力に用いられる。出力装置64は、例えば、
ディスプレイ、プリンタ、スピーカ等であり、オペレー
タへの問い合わせや処理結果の出力に用いられる。
【0141】外部記憶装置65は、例えば、磁気ディス
ク装置、光ディスク装置、光磁気ディスク(magneto-op
tical disk)装置、テープ装置等である。情報処理装置
は、この外部記憶装置65に、上述のプログラムとデー
タを保存しておき、必要に応じて、それらをメモリ62
にロードして使用する。
【0142】媒体駆動装置66は、可搬記録媒体69を
駆動し、その記録内容にアクセスする。可搬記録媒体6
9としては、メモリカード、フロッピー(登録商標)デ
ィスク、CD−ROM(compact disk read only memor
y )、光ディスク、光磁気ディスク等、任意のコンピュ
ータ読み取り可能な記録媒体が用いられる。オペレータ
は、この可搬記録媒体69に上述のプログラムとデータ
を格納しておき、必要に応じて、それらをメモリ62に
ロードして使用する。
【0143】ネットワーク接続装置67は、通信ネット
ワークへの接続に用いられる。情報処理装置は、上述の
プログラムとデータをネットワーク接続装置67を介し
て他の装置から受け取り、必要に応じて、それらをメモ
リ62にロードして使用する。
【0144】図13は、図12の情報処理装置にプログ
ラムとデータを供給することのできるコンピュータ読み
取り可能な記録媒体を示している。可搬記録媒体69や
外部のデータベース70に保存されたプログラムとデー
タは、メモリ62にロードされる。そして、CPU61
は、そのデータを用いてそのプログラムを実行し、必要
な処理を行う。
【0145】以上説明した実施形態では、エージェント
中継器13、14をサーバ11、クライアント12とは
別に設けているが、これらをそれぞれサーバ11、クラ
イアント12に組み込んでもよい。実際、サーバ側のエ
ージェント中継器13は、サーバ11と一体となって運
用されることが望ましい。
【0146】また、エージェント中継器13、14を複
数のプログラムモジュールにより構成する代わりに、ハ
ードウェアにより構成することもできる。図14は、こ
のようなエージェント中継器の構成図である。図14の
エージェント中継器は、受信機71、81、プロトコル
変換器72、79、多重化装置73、80、送信機7
4、78、認証課金部75、スイッチ76、ルーティン
グテーブル77を備える。各構成要素は、ハードウェア
回路として実装され、図7の各モジュールと同様の動作
を行う。
【0147】今日のWeb上では、プレゼンテーション
効果、ユーザのプロファイリング、Webページの動的
カスタム化等のため、コンテンツが静的なオブジェクト
から動的なオブジェクトに移行している。このため、転
送されるデータ量が増大し、キャッシュサーバ等による
トラフィック削減の効果が著しく低下している。
【0148】また、トラフィックを削減するために、ミ
ラーサーバを単に世界中に分散配置したのでは、ユーザ
プロファイルを一元管理することができない。このよう
に、Webのトレンドは、実質的なトラフィックにおい
て、情報の発信元であるサーバへの流れが増大する方向
にある。
【0149】本発明の通信システムによれば、キャッシ
ュやミラーオブジェクトを用意することなく、サーバと
クライアントの間の通信スループットを改善することが
できる。したがって、このシステムは、上述のようなW
ebのトレンドにマッチし、今後益々有効性を増すもの
と考えられる。
【0150】また、本発明の通信システムによれば、ト
ンネリングの方法を用いて、インターネットのIPネッ
トワーク上に、実質的に通信速度が速いバイパスが作り
出される。このバイパスは、ユーザに対してプレミアサ
ービスを提供し、サービス提供者に対しては、ユーザを
引きつけ、自社のサービスを他社と差別化する手段を提
供する。
【0151】
【発明の効果】本発明によれば、大陸間、衛星中継等の
遅延の大きなインターネット通信において、多数のミラ
ーサーバを分散配置することなく、クライアント−サー
バ間のスループットを向上させることができる。
【図面の簡単な説明】
【図1】本発明の通信システムの原理図である。
【図2】第1の通信システムの構成図である。
【図3】第2の通信システムの構成図である。
【図4】スロットリング制御を示す図である。
【図5】プレミアユーザサービスを示す図である。
【図6】クライアントミラーリングサービスを示す図で
ある。
【図7】第1のエージェント中継器の構成図である。
【図8】認証課金部の構成図である。
【図9】エージェント中継器の処理のフローチャート
(その1)である。
【図10】エージェント中継器の処理のフローチャート
(その2)である。
【図11】認証課金処理のフローチャートである。
【図12】情報処理装置の構成図である。
【図13】記録媒体を示す図である。
【図14】第2のエージェント中継器の構成図である。
【符号の説明】
1 バッファ手段 2 転送手段 3 サーバ 4 クライアント 5、8 受信手段 6、9 変換手段 7、10 送信手段 11 Webサーバ 12 Webクライアント 13、14 エージェント中継器 21 仮想トンネル 31、41 受信モジュール 32、39 プロトコル変換モジュール 33、40 多重化モジュール 34、38 送信モジュール 35、75 認証課金部 36 スイッチモジュール 37、77 ルーティングテーブル 51 認証課金モジュール 52 IPデータベース 53 認証課金データベース 61 CPU 62 メモリ 63 入力装置 64 出力装置 65 外部記憶装置 66 媒体駆動装置 67 ネットワーク接続装置 68 バス 69 可搬記録媒体 70 データベース 71、81 受信機 72、79 プロトコル変換器 73、80 多重化装置 74、78 送信機 76 スイッチ

Claims (17)

    【特許請求の範囲】
  1. 【請求項1】 サーバとクライアントの間の通信を中継
    する通信システムであって、 前記サーバから前記クライアントに送信されるデータを
    バッファして該サーバからのデータの出力を加速するこ
    とで、該サーバが該クライアントとのコネクションに対
    して割り当てるスループットを増大させるバッファ手段
    と、 前記バッファ手段に格納されたデータを前記クライアン
    トに転送する転送手段とを備えることを特徴とする通信
    システム。
  2. 【請求項2】 サーバとクライアントの間の通信を中継
    する通信システムであって、 前記サーバから前記クライアントに送信されるデータを
    受信する受信手段と、 受信したデータのプロトコルを、より大きなデータ量を
    一度に転送可能なプロトコルに変換する変換手段と、 前記変換手段により変換されたデータをネットワークに
    送信する送信手段とを備えることを特徴とする通信シス
    テム。
  3. 【請求項3】 前記変換手段により変換された複数のコ
    ネクションのデータを多重化する多重化手段をさらに備
    え、前記送信手段は、多重化されたデータを送信するこ
    とを特徴とする請求項2記載の通信システム。
  4. 【請求項4】 前記クライアントに割り当てられたリソ
    ースに基づいて、アイドリング動作を行うアイドリング
    手段をさらに備え、前記送信手段は、該アイドリング動
    作が終了した後にデータを送信することを特徴とする請
    求項2記載の通信システム。
  5. 【請求項5】 前記サーバのサービス提供者に対する課
    金処理を行う課金手段をさらに備え、前記受信手段は、
    前記クライアントからの要求を前記ネットワークから受
    信し、該課金手段は、該クライアントからの要求が該サ
    ーバに対する要求であるか否かをチェックし、該クライ
    アントからの要求が該サーバに対する要求であるとき、
    前記送信手段は、該クライアントからの要求を該サーバ
    に転送し、該課金手段は、該サービス提供者に対して課
    金することを特徴とする請求項2記載の通信システム。
  6. 【請求項6】 サーバとクライアントの間の通信を中継
    する通信システムであって、 前記サーバから前記クライアントに送信されるデータの
    プロトコルを、より大きなデータ量を一度に転送可能な
    プロトコルに変換して得られたデータを、ネットワーク
    から受信する受信手段と、 受信したデータのプロトコルを元のプロトコルに変換す
    る変換手段と、 前記変換手段により変換されたデータを前記クライアン
    トに送信する送信手段とを備えることを特徴とする通信
    システム。
  7. 【請求項7】 多重化されたデータをデマルチプレクス
    するデマルチプレクス手段をさらに備え、前記受信手段
    は、プロトコルを変換した、複数のコネクションのデー
    タを多重化することで得られたデータを受信し、該デマ
    ルチプレクス手段は、受信したデータをデマルチプレク
    スし、前記変換手段は、デマルチプレクスされたデータ
    のプロトコルを変換することを特徴とする請求項6記載
    の通信システム。
  8. 【請求項8】 前記クライアントのユーザに対する課金
    処理を行う課金手段をさらに備え、前記受信手段は、前
    記サーバに対する要求を前記ネットワークから受信し、
    該課金手段は、該サーバに対する要求が該クライアント
    からの要求であるか否かをチェックし、該サーバに対す
    る要求が該クライアントからの要求であるとき、前記送
    信手段は、該サーバに対する要求を該サーバに転送し、
    該課金手段は、該ユーザに対して課金することを特徴と
    する請求項6記載の通信システム。
  9. 【請求項9】 サーバとクライアントの間の通信を制御
    するコンピュータのためのプログラムを記録した記録媒
    体であって、 前記プログラムは、 前記サーバから前記クライアントに送信されるデータを
    バッファして該サーバからのデータの出力を加速するこ
    とで、該サーバが該クライアントとのコネクションに対
    して割り当てるスループットを増大させ、 バッファされたデータを前記クライアントに転送する処
    理を前記コンピュータに実行させることを特徴とするコ
    ンピュータ読み取り可能な記録媒体。
  10. 【請求項10】 サーバとクライアントの間の通信を制
    御するコンピュータのためのプログラムを記録した記録
    媒体であって、 前記プログラムは、 前記サーバから前記クライアントに送信されるデータを
    受信し、 受信したデータのプロトコルを、より大きなデータ量を
    一度に転送可能なプロトコルに変換し、 変換されたデータをネットワークに送信する処理を前記
    コンピュータに実行させることを特徴とするコンピュー
    タ読み取り可能な記録媒体。
  11. 【請求項11】 サーバとクライアントの間の通信を制
    御するコンピュータのためのプログラムを記録した記録
    媒体であって、 前記プログラムは、 前記サーバから前記クライアントに送信されるデータの
    プロトコルを、より大きなデータ量を一度に転送可能な
    プロトコルに変換して得られたデータを、ネットワーク
    から受信し、 受信したデータのプロトコルを元のプロトコルに変換
    し、 変換されたデータを前記クライアントに送信する処理を
    前記コンピュータに実行させることを特徴とするコンピ
    ュータ読み取り可能な記録媒体。
  12. 【請求項12】 サーバとクライアントの間に、ネット
    ワーク遅延を隠蔽するための仮想トンネルを構築し、 前記仮想トンネルを前記サーバと前記クライアントの間
    の通信バイパスとして用いて、該サーバと該クライアン
    トの間のスループットを増大させることを特徴とする通
    信方法。
  13. 【請求項13】 前記仮想トンネルを用いた通信を利用
    するクライアントのユーザに対して、料金を請求するこ
    とを特徴とする請求項12記載の通信方法。
  14. 【請求項14】 前記仮想トンネルを用いた通信を利用
    するサーバのサービス提供者に対して、料金を請求する
    ことを特徴とする請求項12記載の通信方法。
  15. 【請求項15】 サーバとクライアントの間の通信を制
    御するコンピュータのためのプログラムであって、 前記サーバから前記クライアントに送信されるデータを
    バッファして該サーバからのデータの出力を加速するこ
    とで、該サーバが該クライアントとのコネクションに対
    して割り当てるスループットを増大させ、 バッファされたデータを前記クライアントに転送する処
    理を前記コンピュータに実行させるためのプログラム。
  16. 【請求項16】 サーバとクライアントの間の通信を制
    御するコンピュータのためのプログラムであって、 前記サーバから前記クライアントに送信されるデータを
    受信し、 受信したデータのプロトコルを、より大きなデータ量を
    一度に転送可能なプロトコルに変換し、 変換されたデータをネットワークに送信する処理を前記
    コンピュータに実行させるためのプログラム。
  17. 【請求項17】 サーバとクライアントの間の通信を制
    御するコンピュータのためのプログラムであって、 前記サーバから前記クライアントに送信されるデータの
    プロトコルを、より大きなデータ量を一度に転送可能な
    プロトコルに変換して得られたデータを、ネットワーク
    から受信し、 受信したデータのプロトコルを元のプロトコルに変換
    し、 変換されたデータを前記クライアントに送信する処理を
    前記コンピュータに実行させるためのプログラム。
JP2001034466A 2000-02-17 2001-02-09 スループットを制御する通信システムおよび方法 Withdrawn JP2001308939A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001034466A JP2001308939A (ja) 2000-02-17 2001-02-09 スループットを制御する通信システムおよび方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2000040009 2000-02-17
JP2000-40009 2000-02-17
JP2001034466A JP2001308939A (ja) 2000-02-17 2001-02-09 スループットを制御する通信システムおよび方法

Publications (1)

Publication Number Publication Date
JP2001308939A true JP2001308939A (ja) 2001-11-02

Family

ID=26585594

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001034466A Withdrawn JP2001308939A (ja) 2000-02-17 2001-02-09 スループットを制御する通信システムおよび方法

Country Status (1)

Country Link
JP (1) JP2001308939A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006120119A (ja) * 2004-10-20 2006-05-11 Seagate Technology Llc 二重制御装置を有する冗長データ記憶システムおよびその動作方法
JP2006173961A (ja) * 2004-12-15 2006-06-29 Hiroyasu Obata 広帯域、高遅延無線ネットワークにおけるtcp輻輳制御方式

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006120119A (ja) * 2004-10-20 2006-05-11 Seagate Technology Llc 二重制御装置を有する冗長データ記憶システムおよびその動作方法
JP2006173961A (ja) * 2004-12-15 2006-06-29 Hiroyasu Obata 広帯域、高遅延無線ネットワークにおけるtcp輻輳制御方式
JP4599554B2 (ja) * 2004-12-15 2010-12-15 広島市 広帯域、高遅延無線ネットワークにおけるtcp輻輳制御方式

Similar Documents

Publication Publication Date Title
US6600737B1 (en) Bandwidth protection for voice over IP
US6535518B1 (en) System for bypassing a server to achieve higher throughput between data network and data storage system
EP3238401B1 (en) Network extended tcp splicing
US8645556B1 (en) Method and system for reducing memory used for idle connections
CA2367942C (en) Splicing persistent connections
US7219158B2 (en) Method and system for improving network performance using a performance enhancing proxy
US8706799B2 (en) Method and apparatus to exchange information with a local storage device
US8090859B2 (en) Decoupling TCP/IP processing in system area networks with call filtering
US20010016878A1 (en) Communicating system and communicating method for controlling throughput
US8571061B2 (en) Inter-network translation
JP2004535631A (ja) 通信ネットワークからユーザへ情報を送る時間を減らすシステムと方法
US9258336B2 (en) Dynamic modification of a subscriber connection
US20110206059A1 (en) Methods and devices for transmitting data between storage area networks
US20040059827A1 (en) System for controlling network flow by monitoring download bandwidth
US20120226307A1 (en) Devices and methods for reshaping cartilage structures
US6810412B1 (en) Method for increasing network bandwidth across multiple network interfaces with single internet protocol address
EP0884860A2 (en) Channel allocation method for a satellite communication system
JP2001308939A (ja) スループットを制御する通信システムおよび方法
WO2024029085A1 (ja) 通信中継装置、通信システム、通信中継方法及びプログラム
JP4510524B2 (ja) データ通信装置
JPH06261094A (ja) データ通信システムおよびデータ通信方法
Hintelmann et al. Performance analysis of TCP's flow control mechanisms using queueing SDL
JPH1115718A (ja) 分散ファイルシステムおよびその分散ファイルシステムで用いられるゲートウェイ計算機
JP2003527669A (ja) 両指向性周辺キャッシュ装置と方法
Valchanov et al. Improving Performance of Multimedia Web Transfer over WAN Connections

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061113

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20080328