JP2004206172A - 通信制御方法および装置 - Google Patents
通信制御方法および装置 Download PDFInfo
- Publication number
- JP2004206172A JP2004206172A JP2002371041A JP2002371041A JP2004206172A JP 2004206172 A JP2004206172 A JP 2004206172A JP 2002371041 A JP2002371041 A JP 2002371041A JP 2002371041 A JP2002371041 A JP 2002371041A JP 2004206172 A JP2004206172 A JP 2004206172A
- Authority
- JP
- Japan
- Prior art keywords
- connection
- connections
- maintained
- client
- congestion window
- 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.)
- Pending
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】強制的に切断すべきコネクションの選択を誤ると、特定のクライアントに著しいレスポンスの低下を生じさせてしまう。
【解決手段】複数のHTTPクライアント12は、インターネット16を介してHTTPサーバ14に接続される。各HTTPクライアント12は、それぞれHTTPサーバ14との間で複数のコネクションを維持している。一つのクライアントについて維持されるコネクション数は必ずしも同じではない。HTTPサーバ14が同時に維持するコネクション数の上限が設定されており、これを超えるようなコネクション確立要求がHTTPクライアント13から送信された場合、1クライアントあたりのコネクション数や輻輳ウインドウの値などに応じてコネクションの配分を調整する。
【選択図】 図1
【解決手段】複数のHTTPクライアント12は、インターネット16を介してHTTPサーバ14に接続される。各HTTPクライアント12は、それぞれHTTPサーバ14との間で複数のコネクションを維持している。一つのクライアントについて維持されるコネクション数は必ずしも同じではない。HTTPサーバ14が同時に維持するコネクション数の上限が設定されており、これを超えるようなコネクション確立要求がHTTPクライアント13から送信された場合、1クライアントあたりのコネクション数や輻輳ウインドウの値などに応じてコネクションの配分を調整する。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、通信制御方法および通信制御装置に関する。本発明は特に、HTTPサーバにおける通信を制御する技術に関する。
【0002】
【従来の技術】
インターネットの中核をなす技術の一つであるTCP(Transmission ControlProtocol)は、データ転送の前後にコネクションの確立と切断を行うなど、仮想的な通信路を確保して信頼性の高いデータ転送を実現している。ウェブブラウザでHTML(Hyper Text Markup Language)文書を表示する場合のように複数の画像やテキストを一度にダウンロードしたいとき、ファイル別にコネクションの確立と切断を繰り返すと転送効率の低下を招く。したがって、HTTP(Hyper Text Transfer Protocol)においてはパーシステントコネクション(Persistent Connection、永続接続)を採用する場合が多い(例えば、特許文献1参照)。
【0003】
【特許文献1】
特開2001−84200号公報 (全文)
【0004】
【発明が解決しようとする課題】
パーシステントコネクションによると、明示的に切断されない限りコネクションが維持されることから、特定の接続先が長時間にわたってサーバ資源の一部を占有し続けてしまうおそれがある。したがって、許容するコネクション数が一杯の状態で新たなコネクションの確立要求を受信した場合、いずれかのコネクションが切断されるまでその要求を送ったクライアントを待機させなければならない。こうした占有を回避すべくいずれかのコネクションを強制的に切断する場合、切断対象の選択を誤るとかえって特定のクライアントにレスポンスの低下を生じさせ、全体としてウェブサービスの質を低下させるおそれがある。
【0005】
本発明はこうした状況に鑑みなされたものであり、その目的はHTTPサーバにおけるウェブサービスの質を維持する点にある。本発明の別の目的は、HTTPサーバにおいて複数のコネクションにわたって伝送効率を良好に保つ点にある。さらに別の目的は、HTTPサーバにおけるレスポンス低下を防止する点にある。
【0006】
【課題を解決するための手段】
本発明のある態様は通信制御方法である。この方法は、新たなコネクションの確立要求を受信する過程と、受信した確立要求に応じて新たなコネクションを確立した場合の総コネクション数が許容数を超過するか否かを判断する過程と、許容数を超過すると判断した場合、現在維持されている複数のコネクションから、それぞれの輻輳ウインドウの値に基づいていずれかのコネクションを選択する過程と、選択したコネクションを切断する過程と、新たなコネクションを確立する過程と、を有する。
【0007】
この態様では、新たなコネクションを確立する前にいずれかのコネクションを切断する。「コネクション」は、HTTPにおけるパーシステントコネクションを主に想定し、明示的な切断があるまでは確立状態が維持されてもよい。一つのクライアントが複数のコネクションを維持してもよく、そのような複数のコネクションを維持するクライアントに対してのみいずれかのコネクションを切断する方法を採用してもよい。
【0008】
「コネクションの確立」として、例えばクライアントの端末との間でTCPによるネゴシエーションを経た仮想的な通信路を確立してもよい。「コネクションの切断」として、例えばクライアントの端末との間で確保されていた仮想的な通信路を閉鎖してもよい。許容数を超過するか否かの判断は、例えばコネクションを確立するためのネゴシエーションの間に並行して実行されてもよい。
【0009】
以上の方法により、総コネクション数を許容数以内に抑えながら新たなコネクションを確立する。このとき、切断すべきコネクションを輻輳ウインドウの値に基づいて決定するので、より伝送効率の低いコネクションを選択的に切断できる。したがって、接続先から見た場合、その接続先に対して複数維持されていたコネクションのうち最も伝送効率の低いコネクションが切断され、全体的なレスポンスの低下は最小限に留まり、ウェブサービスの質低下も小さい。
【0010】
本発明の別の態様もまた通信制御方法である。この方法は、新たなコネクションを確立する過程と、新たなコネクションの確立により総コネクション数が許容数を超過するか否かを判断する過程と、許容数を超過すると判断した場合、現在維持されている複数のコネクションから、それぞれの輻輳ウインドウの値に基づいていずれかのコネクションを選択する過程と、選択したコネクションを切断する過程と、を有する。
【0011】
この態様では、新たなコネクションを確立した後にいずれかのコネクションを切断する。このとき、許容数を超過する数のコネクションを切断してもよい。以上の方法においても、より伝送効率の低いコネクションを選択的に切断でき、全体的なレスポンスの低下とウェブサービスの質低下を小さくすることができる。
【0012】
本発明のさらに別の態様は通信制御装置である。この装置は、新たなコネクションを確立する確立処理部と、維持されているコネクション数を記憶するコネクション管理部と、コネクションごとに輻輳ウインドウの値を調整する輻輳制御部と、維持されている総コネクション数が許容数の範囲内に収まるよう複数の接続先との間でコネクションの配分を調整する調整処理部と、を有する。調整処理部は、新たなコネクションの確立によって総コネクション数が許容数を超過する場合に、維持されている複数のコネクションのうち、輻輳ウインドウの値に基づいて選択したコネクションを切断する。
【0013】
調整処理部は、維持されている複数のコネクションのうち、輻輳ウインドウの値がより小さいコネクションを優先的に切断してもよい。調整処理部は、接続先ごとにコネクションの占有度を検出し、占有度の高い接続先とのコネクションを優先的に切断してもよい。接続先ごとのコネクションの占有度は、ある特定の接続先との間で連続して維持されたコネクション数とその連続して維持された時間に基づいて算出されてもよい。確立処理部は、確立する新たなコネクションの数を、ひとつの接続先に対して同時に維持されたコネクション数の平均に基づいて制限してもよい。
【0014】
この通信制御装置は、主にHTTPサーバとして動作するコンピュータを想定する。「接続先」は、例えばグローバルIPアドレスによって特定されるネットワークノードであり、特にHTTPクライアントとして動作する端末であってもよい。以上の構成においても、より伝送効率の低いコネクションを選択的に切断でき、全体的なレスポンスの低下とウェブサービスの質低下を小さくすることができる。特に、特定の接続先によるサーバ資源の占有を防止することにより、複数の接続先の間における資源共有の公平性を維持でき、接続先全体としての相対的なレスポンス向上を図ることができる。また、より多くの接続先に対してサービスを提供できる。
【0015】
なお、以上の構成要素の任意の組合せや、本発明の構成要素や表現を方法、装置、システム、コンピュータプログラム、プログラムを格納した記録媒体、データ構造などの間で相互に置換したものもまた、本発明の態様として有効である。
【0016】
【発明の実施の形態】
(第1実施形態)
図1は、HTTPによる通信システムの基本構成を示す。複数のHTTPクライアント12はインターネット16を介してHTTPサーバ14に接続される。HTTPクライアント12は、HTTPサーバ14との間で複数のコネクションを同時に確立および維持できる。また、同時に維持するコネクション数はHTTPクライアント12ごとに異なってもよい。図はHTTPクライアント12ごとに維持されるコネクション数を線の本数で表しており、例えば、5本、3本、1本、5本、のように異なる。ここで示されるコネクションの本数は全二重通信と半二重通信を区別しない。
【0017】
一方、HTTPサーバ14には同時に維持できるコネクション数の上限として、許容数が設定されている。本実施形態では許容数が16本に設定されている。現在HTTPクライアント12との間で維持されている総コネクション数が14本であり、あと2本の余裕がある。ここで、新たにHTTPクライアント13から5本のコネクション確立要求が送信されたとき、これをすべて確立してしまうと総コネクション数が19本となって許容数を3本超過してしまう。
【0018】
ここでまずコネクション配分における公平性維持の観点から、要求のあった5本すべてを確立すべきかを判断する。このとき各HTTPクライアント12の同時確立コネクション数の平均が約4本であれば、要求のあった5本すべてではなく4本を上限として確立すべきと判断する。次に、4本確立するとしても許容数を2本超過してしまうので、他のコネクションから特に伝送効率の低いコネクションを2本選択してこれらを切断する。これによりコネクション配分を公平にするだけでなく、各HTTPクライアント12におけるレスポンス低下を最小限に留め、ウェブサービスの質を維持する。
【0019】
HTTPサーバ14の構成は、ハードウエア的には、CPU、メモリ、通信モジュール、その他のLSIで実現でき、ソフトウエア的にはデータ送受信機能、コンテンツ保持機能などを備えたWWWサーバソフトウェアなどのプログラムによって実現されるが、以下それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。HTTPクライアント12も同様に、WWWブラウザなどのプログラムが稼働するコンピュータによって実現される。
【0020】
図2は、HTTPサーバ14の構成を示す機能ブロック図である。HTTPサーバ14は、ウェブコンテンツ保持部20、通信部22、調整処理部24、コネクション管理部34、輻輳制御部36、および確立処理部38を有する。各部は、通信部22を介してインターネット16上の各HTTPクライアント12との間でデータを送受信する。ウェブコンテンツ保持部20は、HTML文書、画像、音声データ、CGIプログラムなど、インターネット16上で公開するデータを保持する。
【0021】
確立処理部38は、要求受信部40、確立数決定部42、および応答処理部44を含む。要求受信部40は、HTTPクライアント12からコネクション確立要求や切断要求などのパケットを取得し、これを確立数決定部42および応答処理部44へ渡す。
【0022】
確立数決定部42は、確立要求のあったコネクション数に対して実際に何本のコネクションを確立すべきかを決定する。確立すべき本数は、現在ひとつのHTTPクライアント12に対して同時に維持されているコネクション数の平均に基づいて決定する。例えば、現在の平均が1クライアントあたり4本であった場合、確立数決定部42は4本を上限として確立すべきコネクション数を決定する。現在のコネクション数はコネクション管理部34が保持している。コネクションの平均はコネクション管理部34が算出してもよい。これにより、状況に応じてコネクション配分の公平性が保たれる。
【0023】
応答処理部44は、コネクション確立要求や切断要求などに対する応答のパケットを送信する。また、確立数決定部42により決定された数のコネクション数を確立する。コネクション確立後は、通信部22がHTTPクライアント12から送信されたデータ取得要求に対応するデータをウェブコンテンツ保持部20から抽出し、これをHTTPクライアント12へ転送する。
【0024】
輻輳制御部36は、通信部22が維持するコネクションごとに輻輳ウインドウの値を調整する。例えば、コネクションの確立時は輻輳ウインドウの値を1に設定し、これを所定の値になるまで指数関数的に増加させる。その後は線形的に増加させる。また、輻輳制御部36は、通信部22が維持するコネクションごとに輻輳の発生を検出し、発生したと判断したコネクションに対してはその輻輳ウインドウの値を1/2程度に制限した上で、再び線形的に増加させる。こうしてコネクションごとの輻輳ウインドウの値を通信状況に応じた最適な状態に調整する。
【0025】
調整処理部24は、許容監視部26、占有検出部28、配分決定部30、および切断処理部32を有する。許容監視部26は、通信部22が維持する総コネクション数が許容数の範囲内に収まっているか否かを監視する。占有検出部28は、HTTPクライアント12ごとにコネクション占有度を検出する。占有度は、例えば同時コネクション数×連続維持時間で求める。
【0026】
配分決定部30は、複数のHTTPクライアント12に対する最適なコネクションの配分を決定する。例えば許容監視部26において総コネクション数が許容数を超過すると判断された場合に、占有検出部28により検出された占有度に基づき、どのクライアントから優先的にコネクションを切断すべきかを決定する。すなわち、占有度の高いクライアントのコネクションから優先的に切断する。ただし、占有度が高いクライアントであっても、一つしかコネクションを維持していないクライアントは、これを切断したときの影響の大きさを考慮して切断対象から除外する。
【0027】
切断処理部32は、複数のコネクションのうちいずれを切断すべきかを判断する。本実施形態においては、配分決定部30によって選択されたクライアントを対象にして、一つのクライアントにつき一つのコネクションを切断する。例えば、占有度の高い二つのHTTPクライアント12を配分決定部30が選択した場合に、切断処理部32はそれぞれにつき一つずつ切断すべきコネクションを選択する。切断処理部32は、切断対象のクライアントが維持する複数のコネクションについて、それぞれに設定されている輻輳ウインドウの値を検出する。切断処理部32は、クライアントごとに最も輻輳ウインドウの値が小さいコネクションを選択し、これを切断する。
【0028】
図3は、輻輳ウインドウの値の遷移を示す。輻輳ウインドウの値(cwnd)を縦軸にとり、データ送信時間(t)を横軸にとる。コネクション確立直後の輻輳ウインドウは、スロースタートと呼ばれる増加曲線を描くよう制御される。このときの輻輳ウインドウの値は、1、2、4、8、16・・・のように指数関数的に増加する。一定の値まで増加した後の輻輳ウインドウは、線形的に増加するよう制御される。ここで、輻輳が発生したと判断したときは、輻輳ウインドウの値を1/2程度に制限され、その後再び線形的に増加するよう制御される。図のように輻輳の発生と輻輳ウインドウの制限が繰り返され、またこうした制御はコネクションごとに独立してなされるので、ある瞬間における輻輳ウインドウの値はコネクションごとに相違する。
【0029】
図4は、クライアントごとのサーバ資源の占有度を示す棒グラフの図である。占有度、すなわちコネクション数×連続維持時間を縦軸にとり、クライアント番号を横軸にとる。各棒の長さがクライアントごとの占有度を示す。各棒の上には、クライアントごとの同時コネクション数を記載している。本図は、各クライアントの棒を占有度の順に並び替えた状態を示す。単純に占有度のみを基準として切断すべきクライアントを決定するならば、切断対象は最も占有度の高い4番のクライアントと、次に占有度の高い3番のクライアントとなる。しかし、3番のクライアントの同時コネクション数は1本のみなので、これを切断対象から除外する。したがって、本実施形態における実際の切断対象は4番と2番のクライアントとなる。
【0030】
図5は、コネクションごとの残存データサイズと輻輳ウインドウデータサイズを比較する棒グラフの図である。残存データサイズを左側の縦軸にとり、輻輳ウインドウデータサイズを右側の縦軸にとる。残存データサイズは、そのコネクションにおいて現在伝送されているデータの未伝送量である。実線で描かれている棒の長さがそれぞれの残存データサイズを示す。コネクションAの残存データサイズはXバイトであり、コネクションBの残存データサイズはYバイトである。
【0031】
輻輳ウインドウデータサイズは、1パケットで伝送可能なデータサイズである最大セグメントサイズ(mss:Maximum Segment Size)を輻輳ウインドウの値に掛け合わせた値である。破線で描かれている棒の長さがそれぞれの輻輳ウインドウデータサイズを示す。コネクションAの輻輳ウインドウデータサイズは、cwndA×mssであり、コネクションBの輻輳ウインドウデータサイズは、cwndB×mssである。
【0032】
ここで、コネクションAおよびBのうちいずれを切断すべきかを、残存データサイズのみを比較した結果に基づいて決定する場合を考える。この場合、コネクションBの残存データがコネクションAの残存データよりも小さいので、伝送完了までの時間もコネクションBの方が短いと判断することになる。したがって、コネクションBの伝送完了を待ってこれを切断すべきとの判断になると考えられる。しかしながら、実際にはどちらのコネクションも残存データサイズが輻輳ウインドウデータサイズの範囲内なので、伝送完了までの時間の差は僅かしかないとみなすことができる。したがって、残存データサイズのみを判断基準とするのは必ずしも適当ではない。
【0033】
そこで、本実施形態では、輻輳ウインドウの値を比較した結果に基づいてコネクションAおよびBのうちいずれを切断すべきかを判断する。各コネクションの輻輳ウインドウの値はそれぞれの伝送効率を示している。コネクションAは輻輳ウインドウの値がより小さいので、伝送効率がより低いコネクションであると判断し、これを切断対象として選択する。クライアント側から見ても伝送効率の低いコネクションを切断される方がレスポンスの低下が最小限となる。
【0034】
図6は、HTTPサーバ14におけるコネクション制御の手順を示すフローチャートである。新たなコネクション確立要求をHTTPクライアント13から受信するまで待機し(S10)、確立要求を受信したとき(S10Y)、要求されたコネクション数が現在維持されているコネクション数の平均以下であればS14の処理をスキップし(S12Y)、平均を超過していれば(S12N)、その要求のあったコネクション数を平均以下に制限する(S14)。
【0035】
新たなコネクションを確立した場合の総コネクション数が許容数を超過しない場合は(S16N)、S18からS26の処理をスキップして新たなコネクションを確立する(S28)。総コネクション数が許容数を超過してしまう場合は(S16Y)、クライアントごとの占有度を検出し(S18)、その占有度をもとに切断対象とするクライアントを選択する(S20)。選択したクライアントとの間で維持される複数のコネクションについて、それぞれの輻輳ウインドウの値を検出し(S22)、これらを比較して切断対象のコネクションを選択する(S24)。選択されたコネクションを切断し(S26)、新たなコネクションを確立する(S28)。
【0036】
(第2実施形態)
本実施形態においては、新たなコネクションを確立した後に、総コネクション数が許容数を超過してしまったときにその超過分のコネクションを切断する。その点で、新たなコネクションを確立する前に、超過する分のコネクションを切断する第1実施形態と異なる。すなわち、図6におけるS28の処理はS14とS16の間に実行される。本実施形態におけるHTTPサーバ14の構成は図2に示される構成と同様である。
【0037】
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、その各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。以下、変形例を挙げる。
【0038】
実施の形態においては、ひとつのクライアントにつき最大で一つのコネクションを切断する構成とした。変形例においては、一つのクライアントから最大で二つ以上のコネクションを切断する構成としてもよい。
【0039】
【発明の効果】
本発明によれば、HTTPサーバにおけるデータ転送パフォーマンスを良好に保つことができる。
【図面の簡単な説明】
【図1】HTTPによる通信システムの基本構成を示す図である。
【図2】HTTPサーバの構成を示す機能ブロック図である。
【図3】輻輳ウインドウの値の遷移を示す図である。
【図4】クライアントごとのサーバ資源の占有度を示す棒グラフの図である。
【図5】コネクションごとの残存データサイズと輻輳ウインドウデータサイズを比較する棒グラフの図である。
【図6】HTTPサーバにおけるコネクション制御の手順を示すフローチャートである。
【符号の説明】
12 ユーザ端末、 14 HTTPサーバ、 16 インターネット、 24 調整処理部、 34 コネクション管理部、 36 輻輳制御部、 38 確立処理部。
【発明の属する技術分野】
本発明は、通信制御方法および通信制御装置に関する。本発明は特に、HTTPサーバにおける通信を制御する技術に関する。
【0002】
【従来の技術】
インターネットの中核をなす技術の一つであるTCP(Transmission ControlProtocol)は、データ転送の前後にコネクションの確立と切断を行うなど、仮想的な通信路を確保して信頼性の高いデータ転送を実現している。ウェブブラウザでHTML(Hyper Text Markup Language)文書を表示する場合のように複数の画像やテキストを一度にダウンロードしたいとき、ファイル別にコネクションの確立と切断を繰り返すと転送効率の低下を招く。したがって、HTTP(Hyper Text Transfer Protocol)においてはパーシステントコネクション(Persistent Connection、永続接続)を採用する場合が多い(例えば、特許文献1参照)。
【0003】
【特許文献1】
特開2001−84200号公報 (全文)
【0004】
【発明が解決しようとする課題】
パーシステントコネクションによると、明示的に切断されない限りコネクションが維持されることから、特定の接続先が長時間にわたってサーバ資源の一部を占有し続けてしまうおそれがある。したがって、許容するコネクション数が一杯の状態で新たなコネクションの確立要求を受信した場合、いずれかのコネクションが切断されるまでその要求を送ったクライアントを待機させなければならない。こうした占有を回避すべくいずれかのコネクションを強制的に切断する場合、切断対象の選択を誤るとかえって特定のクライアントにレスポンスの低下を生じさせ、全体としてウェブサービスの質を低下させるおそれがある。
【0005】
本発明はこうした状況に鑑みなされたものであり、その目的はHTTPサーバにおけるウェブサービスの質を維持する点にある。本発明の別の目的は、HTTPサーバにおいて複数のコネクションにわたって伝送効率を良好に保つ点にある。さらに別の目的は、HTTPサーバにおけるレスポンス低下を防止する点にある。
【0006】
【課題を解決するための手段】
本発明のある態様は通信制御方法である。この方法は、新たなコネクションの確立要求を受信する過程と、受信した確立要求に応じて新たなコネクションを確立した場合の総コネクション数が許容数を超過するか否かを判断する過程と、許容数を超過すると判断した場合、現在維持されている複数のコネクションから、それぞれの輻輳ウインドウの値に基づいていずれかのコネクションを選択する過程と、選択したコネクションを切断する過程と、新たなコネクションを確立する過程と、を有する。
【0007】
この態様では、新たなコネクションを確立する前にいずれかのコネクションを切断する。「コネクション」は、HTTPにおけるパーシステントコネクションを主に想定し、明示的な切断があるまでは確立状態が維持されてもよい。一つのクライアントが複数のコネクションを維持してもよく、そのような複数のコネクションを維持するクライアントに対してのみいずれかのコネクションを切断する方法を採用してもよい。
【0008】
「コネクションの確立」として、例えばクライアントの端末との間でTCPによるネゴシエーションを経た仮想的な通信路を確立してもよい。「コネクションの切断」として、例えばクライアントの端末との間で確保されていた仮想的な通信路を閉鎖してもよい。許容数を超過するか否かの判断は、例えばコネクションを確立するためのネゴシエーションの間に並行して実行されてもよい。
【0009】
以上の方法により、総コネクション数を許容数以内に抑えながら新たなコネクションを確立する。このとき、切断すべきコネクションを輻輳ウインドウの値に基づいて決定するので、より伝送効率の低いコネクションを選択的に切断できる。したがって、接続先から見た場合、その接続先に対して複数維持されていたコネクションのうち最も伝送効率の低いコネクションが切断され、全体的なレスポンスの低下は最小限に留まり、ウェブサービスの質低下も小さい。
【0010】
本発明の別の態様もまた通信制御方法である。この方法は、新たなコネクションを確立する過程と、新たなコネクションの確立により総コネクション数が許容数を超過するか否かを判断する過程と、許容数を超過すると判断した場合、現在維持されている複数のコネクションから、それぞれの輻輳ウインドウの値に基づいていずれかのコネクションを選択する過程と、選択したコネクションを切断する過程と、を有する。
【0011】
この態様では、新たなコネクションを確立した後にいずれかのコネクションを切断する。このとき、許容数を超過する数のコネクションを切断してもよい。以上の方法においても、より伝送効率の低いコネクションを選択的に切断でき、全体的なレスポンスの低下とウェブサービスの質低下を小さくすることができる。
【0012】
本発明のさらに別の態様は通信制御装置である。この装置は、新たなコネクションを確立する確立処理部と、維持されているコネクション数を記憶するコネクション管理部と、コネクションごとに輻輳ウインドウの値を調整する輻輳制御部と、維持されている総コネクション数が許容数の範囲内に収まるよう複数の接続先との間でコネクションの配分を調整する調整処理部と、を有する。調整処理部は、新たなコネクションの確立によって総コネクション数が許容数を超過する場合に、維持されている複数のコネクションのうち、輻輳ウインドウの値に基づいて選択したコネクションを切断する。
【0013】
調整処理部は、維持されている複数のコネクションのうち、輻輳ウインドウの値がより小さいコネクションを優先的に切断してもよい。調整処理部は、接続先ごとにコネクションの占有度を検出し、占有度の高い接続先とのコネクションを優先的に切断してもよい。接続先ごとのコネクションの占有度は、ある特定の接続先との間で連続して維持されたコネクション数とその連続して維持された時間に基づいて算出されてもよい。確立処理部は、確立する新たなコネクションの数を、ひとつの接続先に対して同時に維持されたコネクション数の平均に基づいて制限してもよい。
【0014】
この通信制御装置は、主にHTTPサーバとして動作するコンピュータを想定する。「接続先」は、例えばグローバルIPアドレスによって特定されるネットワークノードであり、特にHTTPクライアントとして動作する端末であってもよい。以上の構成においても、より伝送効率の低いコネクションを選択的に切断でき、全体的なレスポンスの低下とウェブサービスの質低下を小さくすることができる。特に、特定の接続先によるサーバ資源の占有を防止することにより、複数の接続先の間における資源共有の公平性を維持でき、接続先全体としての相対的なレスポンス向上を図ることができる。また、より多くの接続先に対してサービスを提供できる。
【0015】
なお、以上の構成要素の任意の組合せや、本発明の構成要素や表現を方法、装置、システム、コンピュータプログラム、プログラムを格納した記録媒体、データ構造などの間で相互に置換したものもまた、本発明の態様として有効である。
【0016】
【発明の実施の形態】
(第1実施形態)
図1は、HTTPによる通信システムの基本構成を示す。複数のHTTPクライアント12はインターネット16を介してHTTPサーバ14に接続される。HTTPクライアント12は、HTTPサーバ14との間で複数のコネクションを同時に確立および維持できる。また、同時に維持するコネクション数はHTTPクライアント12ごとに異なってもよい。図はHTTPクライアント12ごとに維持されるコネクション数を線の本数で表しており、例えば、5本、3本、1本、5本、のように異なる。ここで示されるコネクションの本数は全二重通信と半二重通信を区別しない。
【0017】
一方、HTTPサーバ14には同時に維持できるコネクション数の上限として、許容数が設定されている。本実施形態では許容数が16本に設定されている。現在HTTPクライアント12との間で維持されている総コネクション数が14本であり、あと2本の余裕がある。ここで、新たにHTTPクライアント13から5本のコネクション確立要求が送信されたとき、これをすべて確立してしまうと総コネクション数が19本となって許容数を3本超過してしまう。
【0018】
ここでまずコネクション配分における公平性維持の観点から、要求のあった5本すべてを確立すべきかを判断する。このとき各HTTPクライアント12の同時確立コネクション数の平均が約4本であれば、要求のあった5本すべてではなく4本を上限として確立すべきと判断する。次に、4本確立するとしても許容数を2本超過してしまうので、他のコネクションから特に伝送効率の低いコネクションを2本選択してこれらを切断する。これによりコネクション配分を公平にするだけでなく、各HTTPクライアント12におけるレスポンス低下を最小限に留め、ウェブサービスの質を維持する。
【0019】
HTTPサーバ14の構成は、ハードウエア的には、CPU、メモリ、通信モジュール、その他のLSIで実現でき、ソフトウエア的にはデータ送受信機能、コンテンツ保持機能などを備えたWWWサーバソフトウェアなどのプログラムによって実現されるが、以下それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。HTTPクライアント12も同様に、WWWブラウザなどのプログラムが稼働するコンピュータによって実現される。
【0020】
図2は、HTTPサーバ14の構成を示す機能ブロック図である。HTTPサーバ14は、ウェブコンテンツ保持部20、通信部22、調整処理部24、コネクション管理部34、輻輳制御部36、および確立処理部38を有する。各部は、通信部22を介してインターネット16上の各HTTPクライアント12との間でデータを送受信する。ウェブコンテンツ保持部20は、HTML文書、画像、音声データ、CGIプログラムなど、インターネット16上で公開するデータを保持する。
【0021】
確立処理部38は、要求受信部40、確立数決定部42、および応答処理部44を含む。要求受信部40は、HTTPクライアント12からコネクション確立要求や切断要求などのパケットを取得し、これを確立数決定部42および応答処理部44へ渡す。
【0022】
確立数決定部42は、確立要求のあったコネクション数に対して実際に何本のコネクションを確立すべきかを決定する。確立すべき本数は、現在ひとつのHTTPクライアント12に対して同時に維持されているコネクション数の平均に基づいて決定する。例えば、現在の平均が1クライアントあたり4本であった場合、確立数決定部42は4本を上限として確立すべきコネクション数を決定する。現在のコネクション数はコネクション管理部34が保持している。コネクションの平均はコネクション管理部34が算出してもよい。これにより、状況に応じてコネクション配分の公平性が保たれる。
【0023】
応答処理部44は、コネクション確立要求や切断要求などに対する応答のパケットを送信する。また、確立数決定部42により決定された数のコネクション数を確立する。コネクション確立後は、通信部22がHTTPクライアント12から送信されたデータ取得要求に対応するデータをウェブコンテンツ保持部20から抽出し、これをHTTPクライアント12へ転送する。
【0024】
輻輳制御部36は、通信部22が維持するコネクションごとに輻輳ウインドウの値を調整する。例えば、コネクションの確立時は輻輳ウインドウの値を1に設定し、これを所定の値になるまで指数関数的に増加させる。その後は線形的に増加させる。また、輻輳制御部36は、通信部22が維持するコネクションごとに輻輳の発生を検出し、発生したと判断したコネクションに対してはその輻輳ウインドウの値を1/2程度に制限した上で、再び線形的に増加させる。こうしてコネクションごとの輻輳ウインドウの値を通信状況に応じた最適な状態に調整する。
【0025】
調整処理部24は、許容監視部26、占有検出部28、配分決定部30、および切断処理部32を有する。許容監視部26は、通信部22が維持する総コネクション数が許容数の範囲内に収まっているか否かを監視する。占有検出部28は、HTTPクライアント12ごとにコネクション占有度を検出する。占有度は、例えば同時コネクション数×連続維持時間で求める。
【0026】
配分決定部30は、複数のHTTPクライアント12に対する最適なコネクションの配分を決定する。例えば許容監視部26において総コネクション数が許容数を超過すると判断された場合に、占有検出部28により検出された占有度に基づき、どのクライアントから優先的にコネクションを切断すべきかを決定する。すなわち、占有度の高いクライアントのコネクションから優先的に切断する。ただし、占有度が高いクライアントであっても、一つしかコネクションを維持していないクライアントは、これを切断したときの影響の大きさを考慮して切断対象から除外する。
【0027】
切断処理部32は、複数のコネクションのうちいずれを切断すべきかを判断する。本実施形態においては、配分決定部30によって選択されたクライアントを対象にして、一つのクライアントにつき一つのコネクションを切断する。例えば、占有度の高い二つのHTTPクライアント12を配分決定部30が選択した場合に、切断処理部32はそれぞれにつき一つずつ切断すべきコネクションを選択する。切断処理部32は、切断対象のクライアントが維持する複数のコネクションについて、それぞれに設定されている輻輳ウインドウの値を検出する。切断処理部32は、クライアントごとに最も輻輳ウインドウの値が小さいコネクションを選択し、これを切断する。
【0028】
図3は、輻輳ウインドウの値の遷移を示す。輻輳ウインドウの値(cwnd)を縦軸にとり、データ送信時間(t)を横軸にとる。コネクション確立直後の輻輳ウインドウは、スロースタートと呼ばれる増加曲線を描くよう制御される。このときの輻輳ウインドウの値は、1、2、4、8、16・・・のように指数関数的に増加する。一定の値まで増加した後の輻輳ウインドウは、線形的に増加するよう制御される。ここで、輻輳が発生したと判断したときは、輻輳ウインドウの値を1/2程度に制限され、その後再び線形的に増加するよう制御される。図のように輻輳の発生と輻輳ウインドウの制限が繰り返され、またこうした制御はコネクションごとに独立してなされるので、ある瞬間における輻輳ウインドウの値はコネクションごとに相違する。
【0029】
図4は、クライアントごとのサーバ資源の占有度を示す棒グラフの図である。占有度、すなわちコネクション数×連続維持時間を縦軸にとり、クライアント番号を横軸にとる。各棒の長さがクライアントごとの占有度を示す。各棒の上には、クライアントごとの同時コネクション数を記載している。本図は、各クライアントの棒を占有度の順に並び替えた状態を示す。単純に占有度のみを基準として切断すべきクライアントを決定するならば、切断対象は最も占有度の高い4番のクライアントと、次に占有度の高い3番のクライアントとなる。しかし、3番のクライアントの同時コネクション数は1本のみなので、これを切断対象から除外する。したがって、本実施形態における実際の切断対象は4番と2番のクライアントとなる。
【0030】
図5は、コネクションごとの残存データサイズと輻輳ウインドウデータサイズを比較する棒グラフの図である。残存データサイズを左側の縦軸にとり、輻輳ウインドウデータサイズを右側の縦軸にとる。残存データサイズは、そのコネクションにおいて現在伝送されているデータの未伝送量である。実線で描かれている棒の長さがそれぞれの残存データサイズを示す。コネクションAの残存データサイズはXバイトであり、コネクションBの残存データサイズはYバイトである。
【0031】
輻輳ウインドウデータサイズは、1パケットで伝送可能なデータサイズである最大セグメントサイズ(mss:Maximum Segment Size)を輻輳ウインドウの値に掛け合わせた値である。破線で描かれている棒の長さがそれぞれの輻輳ウインドウデータサイズを示す。コネクションAの輻輳ウインドウデータサイズは、cwndA×mssであり、コネクションBの輻輳ウインドウデータサイズは、cwndB×mssである。
【0032】
ここで、コネクションAおよびBのうちいずれを切断すべきかを、残存データサイズのみを比較した結果に基づいて決定する場合を考える。この場合、コネクションBの残存データがコネクションAの残存データよりも小さいので、伝送完了までの時間もコネクションBの方が短いと判断することになる。したがって、コネクションBの伝送完了を待ってこれを切断すべきとの判断になると考えられる。しかしながら、実際にはどちらのコネクションも残存データサイズが輻輳ウインドウデータサイズの範囲内なので、伝送完了までの時間の差は僅かしかないとみなすことができる。したがって、残存データサイズのみを判断基準とするのは必ずしも適当ではない。
【0033】
そこで、本実施形態では、輻輳ウインドウの値を比較した結果に基づいてコネクションAおよびBのうちいずれを切断すべきかを判断する。各コネクションの輻輳ウインドウの値はそれぞれの伝送効率を示している。コネクションAは輻輳ウインドウの値がより小さいので、伝送効率がより低いコネクションであると判断し、これを切断対象として選択する。クライアント側から見ても伝送効率の低いコネクションを切断される方がレスポンスの低下が最小限となる。
【0034】
図6は、HTTPサーバ14におけるコネクション制御の手順を示すフローチャートである。新たなコネクション確立要求をHTTPクライアント13から受信するまで待機し(S10)、確立要求を受信したとき(S10Y)、要求されたコネクション数が現在維持されているコネクション数の平均以下であればS14の処理をスキップし(S12Y)、平均を超過していれば(S12N)、その要求のあったコネクション数を平均以下に制限する(S14)。
【0035】
新たなコネクションを確立した場合の総コネクション数が許容数を超過しない場合は(S16N)、S18からS26の処理をスキップして新たなコネクションを確立する(S28)。総コネクション数が許容数を超過してしまう場合は(S16Y)、クライアントごとの占有度を検出し(S18)、その占有度をもとに切断対象とするクライアントを選択する(S20)。選択したクライアントとの間で維持される複数のコネクションについて、それぞれの輻輳ウインドウの値を検出し(S22)、これらを比較して切断対象のコネクションを選択する(S24)。選択されたコネクションを切断し(S26)、新たなコネクションを確立する(S28)。
【0036】
(第2実施形態)
本実施形態においては、新たなコネクションを確立した後に、総コネクション数が許容数を超過してしまったときにその超過分のコネクションを切断する。その点で、新たなコネクションを確立する前に、超過する分のコネクションを切断する第1実施形態と異なる。すなわち、図6におけるS28の処理はS14とS16の間に実行される。本実施形態におけるHTTPサーバ14の構成は図2に示される構成と同様である。
【0037】
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、その各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。以下、変形例を挙げる。
【0038】
実施の形態においては、ひとつのクライアントにつき最大で一つのコネクションを切断する構成とした。変形例においては、一つのクライアントから最大で二つ以上のコネクションを切断する構成としてもよい。
【0039】
【発明の効果】
本発明によれば、HTTPサーバにおけるデータ転送パフォーマンスを良好に保つことができる。
【図面の簡単な説明】
【図1】HTTPによる通信システムの基本構成を示す図である。
【図2】HTTPサーバの構成を示す機能ブロック図である。
【図3】輻輳ウインドウの値の遷移を示す図である。
【図4】クライアントごとのサーバ資源の占有度を示す棒グラフの図である。
【図5】コネクションごとの残存データサイズと輻輳ウインドウデータサイズを比較する棒グラフの図である。
【図6】HTTPサーバにおけるコネクション制御の手順を示すフローチャートである。
【符号の説明】
12 ユーザ端末、 14 HTTPサーバ、 16 インターネット、 24 調整処理部、 34 コネクション管理部、 36 輻輳制御部、 38 確立処理部。
Claims (6)
- 新たなコネクションの確立要求を受信する過程と、
前記受信した確立要求に応じて新たなコネクションを確立した場合の総コネクション数が許容数を超過するか否かを判断する過程と、
前記許容数を超過すると判断した場合、現在維持されている複数のコネクションから、それぞれの輻輳ウインドウの値に基づいていずれかのコネクションを選択する過程と、
前記選択したコネクションを切断する過程と、
前記新たなコネクションを確立する過程と、
を有することを特徴とする通信制御方法。 - 新たなコネクションを確立する過程と、
前記新たなコネクションの確立により総コネクション数が許容数を超過するか否かを判断する過程と、
前記許容数を超過すると判断した場合、現在維持されている複数のコネクションから、それぞれの輻輳ウインドウの値に基づいていずれかのコネクションを選択する過程と、
前記選択したコネクションを切断する過程と、
を有することを特徴とする通信制御方法。 - 新たなコネクションを確立する確立処理部と、
維持されているコネクション数を記憶するコネクション管理部と、
コネクションごとに輻輳ウインドウの値を調整する輻輳制御部と、
前記維持されている総コネクション数が許容数の範囲内に収まるよう複数の接続先との間でコネクションの配分を調整する調整処理部と、を有し、
前記調整処理部は、前記新たなコネクションの確立によって前記総コネクション数が許容数を超過する場合に、前記維持されている複数のコネクションのうち、前記輻輳ウインドウの値に基づいて選択したコネクションを切断することを特徴とする通信制御装置。 - 前記調整処理部は、前記維持されている複数のコネクションのうち、前記輻輳ウインドウの値がより小さいコネクションを優先的に切断することを特徴とする請求項3に記載の通信制御装置。
- 前記調整処理部は、接続先ごとにコネクションの占有度を検出し、前記占有度の高い接続先とのコネクションを優先的に切断することを特徴とする請求項3または4に記載の通信制御装置。
- 前記確立処理部は、前記確立する新たなコネクションの数を、ひとつの接続先に対して同時に維持されたコネクション数の平均に基づいて制限することを特徴とする請求項3から5のいずれかに記載の通信制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002371041A JP2004206172A (ja) | 2002-12-20 | 2002-12-20 | 通信制御方法および装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002371041A JP2004206172A (ja) | 2002-12-20 | 2002-12-20 | 通信制御方法および装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004206172A true JP2004206172A (ja) | 2004-07-22 |
Family
ID=32810034
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002371041A Pending JP2004206172A (ja) | 2002-12-20 | 2002-12-20 | 通信制御方法および装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004206172A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008512799A (ja) * | 2004-09-10 | 2008-04-24 | ネトリ,インコーポレーテッド | コネクションを最適化するための装置および方法 |
JP2010526377A (ja) * | 2007-04-25 | 2010-07-29 | アリババ グループ ホールディング リミテッド | クラスタデータ処理のための方法及び装置 |
JP2010537337A (ja) * | 2007-08-29 | 2010-12-02 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 1つ又は複数のアーカイブに小さなオブジェクトをパッケージするようにブラウザとサーバとの間で協働するための装置、システム、及び方法 |
JP2012095098A (ja) * | 2010-10-27 | 2012-05-17 | Sony Corp | データ通信方法及び情報処理装置 |
JP2013066059A (ja) * | 2011-09-16 | 2013-04-11 | Canon Inc | 情報処理装置、情報処理方法及びプログラム |
-
2002
- 2002-12-20 JP JP2002371041A patent/JP2004206172A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008512799A (ja) * | 2004-09-10 | 2008-04-24 | ネトリ,インコーポレーテッド | コネクションを最適化するための装置および方法 |
JP2010526377A (ja) * | 2007-04-25 | 2010-07-29 | アリババ グループ ホールディング リミテッド | クラスタデータ処理のための方法及び装置 |
US8769100B2 (en) | 2007-04-25 | 2014-07-01 | Alibaba Group Holding Limited | Method and apparatus for cluster data processing |
JP2010537337A (ja) * | 2007-08-29 | 2010-12-02 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 1つ又は複数のアーカイブに小さなオブジェクトをパッケージするようにブラウザとサーバとの間で協働するための装置、システム、及び方法 |
JP2012095098A (ja) * | 2010-10-27 | 2012-05-17 | Sony Corp | データ通信方法及び情報処理装置 |
JP2013066059A (ja) * | 2011-09-16 | 2013-04-11 | Canon Inc | 情報処理装置、情報処理方法及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10462707B2 (en) | Data transmission method and apparatus | |
US8799502B2 (en) | Systems and methods for controlling the number of connections established with a server | |
US7478160B2 (en) | Method and apparatus for transparent negotiations | |
US9602591B2 (en) | Managing TCP anycast requests | |
US6370163B1 (en) | Apparatus and method for speech transport with adaptive packet size | |
KR100869421B1 (ko) | 클라이언트-서버 연결 방법, 로드 밸런서 동작 방법 및패킷 전송 방법 | |
US8667120B2 (en) | Load control device and method thereof for controlling requests sent to a server | |
US6928051B2 (en) | Application based bandwidth limiting proxies | |
US7315896B2 (en) | Server network controller including packet forwarding and method therefor | |
US20040008628A1 (en) | System, method and computer readable medium for flow control of data traffic | |
US20100235464A1 (en) | Handoff and optimization of a network protocol stack | |
US20130291104A1 (en) | File Transfer Method and Device | |
EP1545093B1 (en) | Traffic control apparatus and service system using the same | |
JP2008059040A (ja) | 負荷制御システムおよび方法 | |
JP2004206172A (ja) | 通信制御方法および装置 | |
JP2009032083A (ja) | 負荷制御装置及び方法及びプログラム | |
JP4285101B2 (ja) | リアルタイムデータ通信システム、リアルタイムデータ通信装置およびリアルタイムデータ通信方法 | |
JP2003242065A (ja) | コンテンツ選択、コンテンツ要求受付制御、輻輳制御方法およびコンテンツ管理装置、網リソース管理サーバ装置、ポータルサーバ装置、エッジ装置 | |
US20240298051A1 (en) | Data relay apparatus, distribution system, data relay method, and computer-readable medium | |
JP3701891B2 (ja) | サービス毎の最適通信品質保証ネットワークシステムおよびサービス毎の最適通信品質保証方法 | |
JP2001007862A (ja) | 通信負荷分散方法 | |
JP2008005078A (ja) | 中継通信システム、中継装置及びそれらに用いるセッション別帯域制御方法並びにそのプログラム | |
Davern et al. | Optimising Internet Access over Satellite Backhaul | |
KR20050062945A (ko) | 스트리밍 서버의 rtsp 모듈과 그 제어 메시지 처리 방법 | |
JP2004112576A (ja) | 通信ノードインタフェース装置 |