(57)【要約】【課題】強制的に切断すべきコネクションの選択を誤ると、特定のクライアントに著しいレスポンスの低下を生じさせてしまう。【解決手段】複数のＨＴＴＰクライアント１２は、インターネット１６を介してＨＴＴＰサーバ１４に接続される。各ＨＴＴＰクライアント１２は、それぞれＨＴＴＰサーバ１４との間で複数のコネクションを維持している。一つのクライアントについて維持されるコネクション数は必ずしも同じではない。ＨＴＴＰサーバ１４が同時に維持するコネクション数の上限が設定されており、これを超えるようなコネクション確立要求がＨＴＴＰクライアント１３から送信された場合、１クライアントあたりのコネクション数や輻輳ウインドウの値などに応じてコネクションの配分を調整する。【選択図】        図１
2004206172.tif 000002
【特許請求の範囲】
【請求項１】
新たなコネクションの確立要求を受信する過程と、
前記受信した確立要求に応じて新たなコネクションを確立した場合の総コネクション数が許容数を超過するか否かを判断する過程と、
前記許容数を超過すると判断した場合、現在維持されている複数のコネクションから、それぞれの輻輳ウインドウの値に基づいていずれかのコネクションを選択する過程と、
前記選択したコネクションを切断する過程と、
前記新たなコネクションを確立する過程と、
を有することを特徴とする通信制御方法。
【請求項２】
新たなコネクションを確立する過程と、
前記新たなコネクションの確立により総コネクション数が許容数を超過するか否かを判断する過程と、
前記許容数を超過すると判断した場合、現在維持されている複数のコネクションから、それぞれの輻輳ウインドウの値に基づいていずれかのコネクションを選択する過程と、
前記選択したコネクションを切断する過程と、
を有することを特徴とする通信制御方法。
【請求項３】
新たなコネクションを確立する確立処理部と、
維持されているコネクション数を記憶するコネクション管理部と、
コネクションごとに輻輳ウインドウの値を調整する輻輳制御部と、
前記維持されている総コネクション数が許容数の範囲内に収まるよう複数の接続先との間でコネクションの配分を調整する調整処理部と、を有し、
前記調整処理部は、前記新たなコネクションの確立によって前記総コネクション数が許容数を超過する場合に、前記維持されている複数のコネクションのうち、前記輻輳ウインドウの値に基づいて選択したコネクションを切断することを特徴とする通信制御装置。
【請求項４】
前記調整処理部は、前記維持されている複数のコネクションのうち、前記輻輳ウインドウの値がより小さいコネクションを優先的に切断することを特徴とする請求項３に記載の通信制御装置。
【請求項５】
前記調整処理部は、接続先ごとにコネクションの占有度を検出し、前記占有度の高い接続先とのコネクションを優先的に切断することを特徴とする請求項３または４に記載の通信制御装置。
【請求項６】
前記確立処理部は、前記確立する新たなコネクションの数を、ひとつの接続先に対して同時に維持されたコネクション数の平均に基づいて制限することを特徴とする請求項３から５のいずれかに記載の通信制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、通信制御方法および通信制御装置に関する。本発明は特に、ＨＴＴＰサーバにおける通信を制御する技術に関する。
【０００２】
【従来の技術】
インターネットの中核をなす技術の一つであるＴＣＰ（Transmission ControlProtocol）は、データ転送の前後にコネクションの確立と切断を行うなど、仮想的な通信路を確保して信頼性の高いデータ転送を実現している。ウェブブラウザでＨＴＭＬ（Hyper Text Markup Language）文書を表示する場合のように複数の画像やテキストを一度にダウンロードしたいとき、ファイル別にコネクションの確立と切断を繰り返すと転送効率の低下を招く。したがって、ＨＴＴＰ（Hyper Text Transfer Protocol）においてはパーシステントコネクション（Persistent Connection、永続接続）を採用する場合が多い（例えば、特許文献１参照）。
【０００３】
【特許文献１】
特開２００１−８４２００号公報  （全文）
【０００４】
【発明が解決しようとする課題】
パーシステントコネクションによると、明示的に切断されない限りコネクションが維持されることから、特定の接続先が長時間にわたってサーバ資源の一部を占有し続けてしまうおそれがある。したがって、許容するコネクション数が一杯の状態で新たなコネクションの確立要求を受信した場合、いずれかのコネクションが切断されるまでその要求を送ったクライアントを待機させなければならない。こうした占有を回避すべくいずれかのコネクションを強制的に切断する場合、切断対象の選択を誤るとかえって特定のクライアントにレスポンスの低下を生じさせ、全体としてウェブサービスの質を低下させるおそれがある。
【０００５】
本発明はこうした状況に鑑みなされたものであり、その目的はＨＴＴＰサーバにおけるウェブサービスの質を維持する点にある。本発明の別の目的は、ＨＴＴＰサーバにおいて複数のコネクションにわたって伝送効率を良好に保つ点にある。さらに別の目的は、ＨＴＴＰサーバにおけるレスポンス低下を防止する点にある。
【０００６】
【課題を解決するための手段】
本発明のある態様は通信制御方法である。この方法は、新たなコネクションの確立要求を受信する過程と、受信した確立要求に応じて新たなコネクションを確立した場合の総コネクション数が許容数を超過するか否かを判断する過程と、許容数を超過すると判断した場合、現在維持されている複数のコネクションから、それぞれの輻輳ウインドウの値に基づいていずれかのコネクションを選択する過程と、選択したコネクションを切断する過程と、新たなコネクションを確立する過程と、を有する。
【０００７】
この態様では、新たなコネクションを確立する前にいずれかのコネクションを切断する。「コネクション」は、ＨＴＴＰにおけるパーシステントコネクションを主に想定し、明示的な切断があるまでは確立状態が維持されてもよい。一つのクライアントが複数のコネクションを維持してもよく、そのような複数のコネクションを維持するクライアントに対してのみいずれかのコネクションを切断する方法を採用してもよい。
【０００８】
「コネクションの確立」として、例えばクライアントの端末との間でＴＣＰによるネゴシエーションを経た仮想的な通信路を確立してもよい。「コネクションの切断」として、例えばクライアントの端末との間で確保されていた仮想的な通信路を閉鎖してもよい。許容数を超過するか否かの判断は、例えばコネクションを確立するためのネゴシエーションの間に並行して実行されてもよい。
【０００９】
以上の方法により、総コネクション数を許容数以内に抑えながら新たなコネクションを確立する。このとき、切断すべきコネクションを輻輳ウインドウの値に基づいて決定するので、より伝送効率の低いコネクションを選択的に切断できる。したがって、接続先から見た場合、その接続先に対して複数維持されていたコネクションのうち最も伝送効率の低いコネクションが切断され、全体的なレスポンスの低下は最小限に留まり、ウェブサービスの質低下も小さい。
【００１０】
本発明の別の態様もまた通信制御方法である。この方法は、新たなコネクションを確立する過程と、新たなコネクションの確立により総コネクション数が許容数を超過するか否かを判断する過程と、許容数を超過すると判断した場合、現在維持されている複数のコネクションから、それぞれの輻輳ウインドウの値に基づいていずれかのコネクションを選択する過程と、選択したコネクションを切断する過程と、を有する。
【００１１】
この態様では、新たなコネクションを確立した後にいずれかのコネクションを切断する。このとき、許容数を超過する数のコネクションを切断してもよい。以上の方法においても、より伝送効率の低いコネクションを選択的に切断でき、全体的なレスポンスの低下とウェブサービスの質低下を小さくすることができる。
【００１２】
本発明のさらに別の態様は通信制御装置である。この装置は、新たなコネクションを確立する確立処理部と、維持されているコネクション数を記憶するコネクション管理部と、コネクションごとに輻輳ウインドウの値を調整する輻輳制御部と、維持されている総コネクション数が許容数の範囲内に収まるよう複数の接続先との間でコネクションの配分を調整する調整処理部と、を有する。調整処理部は、新たなコネクションの確立によって総コネクション数が許容数を超過する場合に、維持されている複数のコネクションのうち、輻輳ウインドウの値に基づいて選択したコネクションを切断する。
【００１３】
調整処理部は、維持されている複数のコネクションのうち、輻輳ウインドウの値がより小さいコネクションを優先的に切断してもよい。調整処理部は、接続先ごとにコネクションの占有度を検出し、占有度の高い接続先とのコネクションを優先的に切断してもよい。接続先ごとのコネクションの占有度は、ある特定の接続先との間で連続して維持されたコネクション数とその連続して維持された時間に基づいて算出されてもよい。確立処理部は、確立する新たなコネクションの数を、ひとつの接続先に対して同時に維持されたコネクション数の平均に基づいて制限してもよい。
【００１４】
この通信制御装置は、主にＨＴＴＰサーバとして動作するコンピュータを想定する。「接続先」は、例えばグローバルＩＰアドレスによって特定されるネットワークノードであり、特にＨＴＴＰクライアントとして動作する端末であってもよい。以上の構成においても、より伝送効率の低いコネクションを選択的に切断でき、全体的なレスポンスの低下とウェブサービスの質低下を小さくすることができる。特に、特定の接続先によるサーバ資源の占有を防止することにより、複数の接続先の間における資源共有の公平性を維持でき、接続先全体としての相対的なレスポンス向上を図ることができる。また、より多くの接続先に対してサービスを提供できる。
【００１５】
なお、以上の構成要素の任意の組合せや、本発明の構成要素や表現を方法、装置、システム、コンピュータプログラム、プログラムを格納した記録媒体、データ構造などの間で相互に置換したものもまた、本発明の態様として有効である。
【００１６】
【発明の実施の形態】
（第１実施形態）
図１は、ＨＴＴＰによる通信システムの基本構成を示す。複数のＨＴＴＰクライアント１２はインターネット１６を介してＨＴＴＰサーバ１４に接続される。ＨＴＴＰクライアント１２は、ＨＴＴＰサーバ１４との間で複数のコネクションを同時に確立および維持できる。また、同時に維持するコネクション数はＨＴＴＰクライアント１２ごとに異なってもよい。図はＨＴＴＰクライアント１２ごとに維持されるコネクション数を線の本数で表しており、例えば、５本、３本、１本、５本、のように異なる。ここで示されるコネクションの本数は全二重通信と半二重通信を区別しない。
【００１７】
一方、ＨＴＴＰサーバ１４には同時に維持できるコネクション数の上限として、許容数が設定されている。本実施形態では許容数が１６本に設定されている。現在ＨＴＴＰクライアント１２との間で維持されている総コネクション数が１４本であり、あと２本の余裕がある。ここで、新たにＨＴＴＰクライアント１３から５本のコネクション確立要求が送信されたとき、これをすべて確立してしまうと総コネクション数が１９本となって許容数を３本超過してしまう。
【００１８】
ここでまずコネクション配分における公平性維持の観点から、要求のあった５本すべてを確立すべきかを判断する。このとき各ＨＴＴＰクライアント１２の同時確立コネクション数の平均が約４本であれば、要求のあった５本すべてではなく４本を上限として確立すべきと判断する。次に、４本確立するとしても許容数を２本超過してしまうので、他のコネクションから特に伝送効率の低いコネクションを２本選択してこれらを切断する。これによりコネクション配分を公平にするだけでなく、各ＨＴＴＰクライアント１２におけるレスポンス低下を最小限に留め、ウェブサービスの質を維持する。
【００１９】
ＨＴＴＰサーバ１４の構成は、ハードウエア的には、ＣＰＵ、メモリ、通信モジュール、その他のＬＳＩで実現でき、ソフトウエア的にはデータ送受信機能、コンテンツ保持機能などを備えたＷＷＷサーバソフトウェアなどのプログラムによって実現されるが、以下それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。ＨＴＴＰクライアント１２も同様に、ＷＷＷブラウザなどのプログラムが稼働するコンピュータによって実現される。
【００２０】
図２は、ＨＴＴＰサーバ１４の構成を示す機能ブロック図である。ＨＴＴＰサーバ１４は、ウェブコンテンツ保持部２０、通信部２２、調整処理部２４、コネクション管理部３４、輻輳制御部３６、および確立処理部３８を有する。各部は、通信部２２を介してインターネット１６上の各ＨＴＴＰクライアント１２との間でデータを送受信する。ウェブコンテンツ保持部２０は、ＨＴＭＬ文書、画像、音声データ、ＣＧＩプログラムなど、インターネット１６上で公開するデータを保持する。
【００２１】
確立処理部３８は、要求受信部４０、確立数決定部４２、および応答処理部４４を含む。要求受信部４０は、ＨＴＴＰクライアント１２からコネクション確立要求や切断要求などのパケットを取得し、これを確立数決定部４２および応答処理部４４へ渡す。
【００２２】
確立数決定部４２は、確立要求のあったコネクション数に対して実際に何本のコネクションを確立すべきかを決定する。確立すべき本数は、現在ひとつのＨＴＴＰクライアント１２に対して同時に維持されているコネクション数の平均に基づいて決定する。例えば、現在の平均が１クライアントあたり４本であった場合、確立数決定部４２は４本を上限として確立すべきコネクション数を決定する。現在のコネクション数はコネクション管理部３４が保持している。コネクションの平均はコネクション管理部３４が算出してもよい。これにより、状況に応じてコネクション配分の公平性が保たれる。
【００２３】
応答処理部４４は、コネクション確立要求や切断要求などに対する応答のパケットを送信する。また、確立数決定部４２により決定された数のコネクション数を確立する。コネクション確立後は、通信部２２がＨＴＴＰクライアント１２から送信されたデータ取得要求に対応するデータをウェブコンテンツ保持部２０から抽出し、これをＨＴＴＰクライアント１２へ転送する。
【００２４】
輻輳制御部３６は、通信部２２が維持するコネクションごとに輻輳ウインドウの値を調整する。例えば、コネクションの確立時は輻輳ウインドウの値を１に設定し、これを所定の値になるまで指数関数的に増加させる。その後は線形的に増加させる。また、輻輳制御部３６は、通信部２２が維持するコネクションごとに輻輳の発生を検出し、発生したと判断したコネクションに対してはその輻輳ウインドウの値を１／２程度に制限した上で、再び線形的に増加させる。こうしてコネクションごとの輻輳ウインドウの値を通信状況に応じた最適な状態に調整する。
【００２５】
調整処理部２４は、許容監視部２６、占有検出部２８、配分決定部３０、および切断処理部３２を有する。許容監視部２６は、通信部２２が維持する総コネクション数が許容数の範囲内に収まっているか否かを監視する。占有検出部２８は、ＨＴＴＰクライアント１２ごとにコネクション占有度を検出する。占有度は、例えば同時コネクション数×連続維持時間で求める。
【００２６】
配分決定部３０は、複数のＨＴＴＰクライアント１２に対する最適なコネクションの配分を決定する。例えば許容監視部２６において総コネクション数が許容数を超過すると判断された場合に、占有検出部２８により検出された占有度に基づき、どのクライアントから優先的にコネクションを切断すべきかを決定する。すなわち、占有度の高いクライアントのコネクションから優先的に切断する。ただし、占有度が高いクライアントであっても、一つしかコネクションを維持していないクライアントは、これを切断したときの影響の大きさを考慮して切断対象から除外する。
【００２７】
切断処理部３２は、複数のコネクションのうちいずれを切断すべきかを判断する。本実施形態においては、配分決定部３０によって選択されたクライアントを対象にして、一つのクライアントにつき一つのコネクションを切断する。例えば、占有度の高い二つのＨＴＴＰクライアント１２を配分決定部３０が選択した場合に、切断処理部３２はそれぞれにつき一つずつ切断すべきコネクションを選択する。切断処理部３２は、切断対象のクライアントが維持する複数のコネクションについて、それぞれに設定されている輻輳ウインドウの値を検出する。切断処理部３２は、クライアントごとに最も輻輳ウインドウの値が小さいコネクションを選択し、これを切断する。
【００２８】
図３は、輻輳ウインドウの値の遷移を示す。輻輳ウインドウの値（ｃｗｎｄ）を縦軸にとり、データ送信時間（ｔ）を横軸にとる。コネクション確立直後の輻輳ウインドウは、スロースタートと呼ばれる増加曲線を描くよう制御される。このときの輻輳ウインドウの値は、１、２、４、８、１６・・・のように指数関数的に増加する。一定の値まで増加した後の輻輳ウインドウは、線形的に増加するよう制御される。ここで、輻輳が発生したと判断したときは、輻輳ウインドウの値を１／２程度に制限され、その後再び線形的に増加するよう制御される。図のように輻輳の発生と輻輳ウインドウの制限が繰り返され、またこうした制御はコネクションごとに独立してなされるので、ある瞬間における輻輳ウインドウの値はコネクションごとに相違する。
【００２９】
図４は、クライアントごとのサーバ資源の占有度を示す棒グラフの図である。占有度、すなわちコネクション数×連続維持時間を縦軸にとり、クライアント番号を横軸にとる。各棒の長さがクライアントごとの占有度を示す。各棒の上には、クライアントごとの同時コネクション数を記載している。本図は、各クライアントの棒を占有度の順に並び替えた状態を示す。単純に占有度のみを基準として切断すべきクライアントを決定するならば、切断対象は最も占有度の高い４番のクライアントと、次に占有度の高い３番のクライアントとなる。しかし、３番のクライアントの同時コネクション数は１本のみなので、これを切断対象から除外する。したがって、本実施形態における実際の切断対象は４番と２番のクライアントとなる。
【００３０】
図５は、コネクションごとの残存データサイズと輻輳ウインドウデータサイズを比較する棒グラフの図である。残存データサイズを左側の縦軸にとり、輻輳ウインドウデータサイズを右側の縦軸にとる。残存データサイズは、そのコネクションにおいて現在伝送されているデータの未伝送量である。実線で描かれている棒の長さがそれぞれの残存データサイズを示す。コネクションＡの残存データサイズはＸバイトであり、コネクションＢの残存データサイズはＹバイトである。
【００３１】
輻輳ウインドウデータサイズは、１パケットで伝送可能なデータサイズである最大セグメントサイズ（ｍｓｓ：Maximum Segment Size）を輻輳ウインドウの値に掛け合わせた値である。破線で描かれている棒の長さがそれぞれの輻輳ウインドウデータサイズを示す。コネクションＡの輻輳ウインドウデータサイズは、ｃｗｎｄＡ×ｍｓｓであり、コネクションＢの輻輳ウインドウデータサイズは、ｃｗｎｄＢ×ｍｓｓである。
【００３２】
ここで、コネクションＡおよびＢのうちいずれを切断すべきかを、残存データサイズのみを比較した結果に基づいて決定する場合を考える。この場合、コネクションＢの残存データがコネクションＡの残存データよりも小さいので、伝送完了までの時間もコネクションＢの方が短いと判断することになる。したがって、コネクションＢの伝送完了を待ってこれを切断すべきとの判断になると考えられる。しかしながら、実際にはどちらのコネクションも残存データサイズが輻輳ウインドウデータサイズの範囲内なので、伝送完了までの時間の差は僅かしかないとみなすことができる。したがって、残存データサイズのみを判断基準とするのは必ずしも適当ではない。
【００３３】
そこで、本実施形態では、輻輳ウインドウの値を比較した結果に基づいてコネクションＡおよびＢのうちいずれを切断すべきかを判断する。各コネクションの輻輳ウインドウの値はそれぞれの伝送効率を示している。コネクションＡは輻輳ウインドウの値がより小さいので、伝送効率がより低いコネクションであると判断し、これを切断対象として選択する。クライアント側から見ても伝送効率の低いコネクションを切断される方がレスポンスの低下が最小限となる。
【００３４】
図６は、ＨＴＴＰサーバ１４におけるコネクション制御の手順を示すフローチャートである。新たなコネクション確立要求をＨＴＴＰクライアント１３から受信するまで待機し（Ｓ１０）、確立要求を受信したとき（Ｓ１０Ｙ）、要求されたコネクション数が現在維持されているコネクション数の平均以下であればＳ１４の処理をスキップし（Ｓ１２Ｙ）、平均を超過していれば（Ｓ１２Ｎ）、その要求のあったコネクション数を平均以下に制限する（Ｓ１４）。
【００３５】
新たなコネクションを確立した場合の総コネクション数が許容数を超過しない場合は（Ｓ１６Ｎ）、Ｓ１８からＳ２６の処理をスキップして新たなコネクションを確立する（Ｓ２８）。総コネクション数が許容数を超過してしまう場合は（Ｓ１６Ｙ）、クライアントごとの占有度を検出し（Ｓ１８）、その占有度をもとに切断対象とするクライアントを選択する（Ｓ２０）。選択したクライアントとの間で維持される複数のコネクションについて、それぞれの輻輳ウインドウの値を検出し（Ｓ２２）、これらを比較して切断対象のコネクションを選択する（Ｓ２４）。選択されたコネクションを切断し（Ｓ２６）、新たなコネクションを確立する（Ｓ２８）。
【００３６】
（第２実施形態）
本実施形態においては、新たなコネクションを確立した後に、総コネクション数が許容数を超過してしまったときにその超過分のコネクションを切断する。その点で、新たなコネクションを確立する前に、超過する分のコネクションを切断する第１実施形態と異なる。すなわち、図６におけるＳ２８の処理はＳ１４とＳ１６の間に実行される。本実施形態におけるＨＴＴＰサーバ１４の構成は図２に示される構成と同様である。
【００３７】
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、その各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。以下、変形例を挙げる。
【００３８】
実施の形態においては、ひとつのクライアントにつき最大で一つのコネクションを切断する構成とした。変形例においては、一つのクライアントから最大で二つ以上のコネクションを切断する構成としてもよい。
【００３９】
【発明の効果】
本発明によれば、ＨＴＴＰサーバにおけるデータ転送パフォーマンスを良好に保つことができる。
【図面の簡単な説明】
【図１】ＨＴＴＰによる通信システムの基本構成を示す図である。
【図２】ＨＴＴＰサーバの構成を示す機能ブロック図である。
【図３】輻輳ウインドウの値の遷移を示す図である。
【図４】クライアントごとのサーバ資源の占有度を示す棒グラフの図である。
【図５】コネクションごとの残存データサイズと輻輳ウインドウデータサイズを比較する棒グラフの図である。
【図６】ＨＴＴＰサーバにおけるコネクション制御の手順を示すフローチャートである。
【符号の説明】
１２  ユーザ端末、  １４  ＨＴＴＰサーバ、  １６  インターネット、  ２４  調整処理部、  ３４  コネクション管理部、  ３６  輻輳制御部、  ３８  確立処理部。
【図１】
2004206172.tif 000003
【図２】
2004206172.tif 000004
【図３】
2004206172.tif 000005
【図４】
2004206172.tif 000006
【図５】
2004206172.tif 000007
【図６】
2004206172.tif 000008