JP2006166056A - クライアント‐ispリンクの帯域幅の評価 - Google Patents

クライアント‐ispリンクの帯域幅の評価 Download PDF

Info

Publication number
JP2006166056A
JP2006166056A JP2004354978A JP2004354978A JP2006166056A JP 2006166056 A JP2006166056 A JP 2006166056A JP 2004354978 A JP2004354978 A JP 2004354978A JP 2004354978 A JP2004354978 A JP 2004354978A JP 2006166056 A JP2006166056 A JP 2006166056A
Authority
JP
Japan
Prior art keywords
server
client
objects
bandwidth
function
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.)
Granted
Application number
JP2004354978A
Other languages
English (en)
Other versions
JP3953486B2 (ja
Inventor
Rajamony Ramakrishnan
ラマクリシュナン・ラジャモニィ
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2004354978A priority Critical patent/JP3953486B2/ja
Publication of JP2006166056A publication Critical patent/JP2006166056A/ja
Application granted granted Critical
Publication of JP3953486B2 publication Critical patent/JP3953486B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】 クライアントの獲得可能な帯域幅の信頼できる評価が得られる方法ならびにシステムを具体化する。
【解決手段】 クライアントとサーバの間のネットワーク接続の帯域幅を評価するための方法、プログラム、およびサーバは、第1および第2のオブジェクトをサーバからクライアントへ連続して供給することをサーバに対して求める要求を含む。第1および第2のオブジェクトがクライアントへ送信される。クライアントは、第1および第2のオブジェクトの配信の間の時間的な間隔を決定する。この時間間隔は、第2のオブジェクトのサイズに関する情報とともに帯域幅を評価するために使用される。第1および第2のオブジェクトは、クライアントのISPとアーキテクチャ的に近接しているコンテンツ配信ネットワーク・サーバから送信されるようにして、帯域幅評価の信頼性を向上させることができる。
【選択図】 図2

Description

本発明は、データ処理ネットワークの分野に関し、より詳細には、クライアントがインターネット・サービス・プロバイダを通じてネットワークへ接続するデータ処理ネットワークに関する。
クライアントとそのインターネット・サービス・プロバイダ(ISP)の間における技術的に可能な最大の帯域幅は、それが獲得可能なパフォーマンスに制限を課することから重要な測度である。ウェブ・サイトを提供し、維持する者は、少なくとも2つの理由からこの測度に関心を有する。第1に、クライアントが獲得可能な最大帯域幅の知識があれば、ウェブ・サイトは、貧弱なパフォーマンスのための信頼性を配分することができる。適切な帯域幅を有するISP接続を使用していると見られるクライアントが長い遅延を経験している場合に、ウェブ・サイトは、その遅延の原因の処理を試みるべきであり、クライアントのインターネット・リンクが限られた帯域幅を有している場合には、そのユーザが経験している遅延が、ウェブ・サイトの矯正能力を超えていることもあり得る。第2に、ウェブ・サイトは、クライアントの帯域幅キャパシティに対するその動作を、ウェブ・サイトがそのキャパシティを知っていればカスタム化することができる。高帯域幅ユーザに対してより高いレベルの特徴を提供する一方、低帯域幅ユーザが限りのない遅延時間に耐えることを防止できる能力は、魅力的な特徴である。
インターネット等のオープン・ネットワークの関連においては、多くの変数がドキュメントの配信に必要となる時間的な量に影響を与えることから帯域幅の測定が困難である。特に介在するルータおよびプロキシの存在は、任意の特定のディスティネーションまでドキュメントが移動するために要する時間的な量の追跡を疑わしいものとする。あるドキュメントが各種のルータ・ポイントにおいて遅延され、別のドキュメントが遅延されないといったことがあり得る。この種の遅延が非決定論であることから、既知のソースからドキュメントが到達するまでに要する長さを決定することによって帯域幅を測定することは困難を伴う。
クライアントの獲得可能な帯域幅の信頼できる評価が得られる方法ならびにシステムを具体化することは望ましいことであると言える。さらに、具体化された解決策がクライアントの現存する環境内において機能できることも望ましいことであると言えよう。
上記の目的は、連続して第1および第2のオブジェクトをクライアントへ供給することをサーバに対して求める要求を含む、クライアントとサーバの間におけるネットワーク接続の帯域幅を評価するための方法、プログラム、およびサーバによって取り組まれている。第1および第2のオブジェクトがクライアントへ送信される。クライアントは、第1および第2のオブジェクトの配信の時間的な間隔を決定する。この時間的な間隔が、第2のオブジェクトのサイズに関する情報とともに使用されて、帯域幅が評価される。第1および第2のオブジェクトを求める要求は、好ましくは、その要求がプロキシ・キャッシュによって供給されることを防止するためにネットワーク上において一意的なURLを用いて第1および第2のオブジェクトを識別する。第1および第2のオブジェクトが、クライアントのISPとアーキテクチャ的に近いコンテンツ配信ネットワーク・サーバからクライアントへ送信されるようにして帯域幅の評価の信頼性を向上することができる。一実施態様においては、ネットワーク内における第2のオブジェクトのフラグメント化を防止するために、第2のオブジェクトが、ネットワークに関連付けされる最小送信単位より小さいか、それと等しいサイズを有する。クライアントが帯域幅評価プロセスを(パケットのペアを要求することによって)起動することを可能にするソフトウエアは、好ましくはクライアントのブラウザの中から実行可能なスニペットとしてサーバから(または、サード・パーティのサービス・プロバイダから)提供することができる。1つの具体化においては、このスニペットがイメージ・オブジェクトのペアを作成し、一意的な識別子を作成し、さらにその一意的な識別子を組み込んだURLを使用してイメージ・オブジェクトとサーバ上のデータ・オブジェクト(パケット)のペアを関連付けする。一意的な識別子は、ネットワーク全体にわたって一意的であり、かつ特定の要求に対して一意的である。サーバは、URLの固有部分を無視するか、除去することができる。この具体化においては、第1および第2のオブジェクトを求めるすべての要求が、サーバ上またはCDNサーバ上にあるオブジェクトの単一ペアによって満される。帯域幅評価プロセスがサービス・プロバイダに委任される実施態様においては、サービス・プロバイダがサーバの応答時間の監視も行い、特定のクライアントのための応答時間が、そのクライアントの帯域幅が保証する時間より長い場合に警告を発する。
このほかの本発明の目的ならびに利点については、添付図面を参照した以下の詳細な説明を読むことによって明らかなものとなるであろう。
本発明には、各種の修正および代替形式が可能であるが、その特定の実施態様を、例として図面に示し、以下において詳細に説明する。しかしながら、ここに示している図面および詳細な説明は、開示されている特定の実施態様へ本発明を限定することを意図してなく、むしろその逆に、付随する特許請求の範囲によって定義される本発明の精神ならびに範囲内に含まれるあらゆる修正、等価、および変形を保護することにその意図がある。
概して言えば、本発明は、クライアントおよびそのISPの間におけるリンクにわたって獲得可能な帯域幅を評価するための方法およびシステムを企図している。クライアントがウェブ・サーバへアクセスするとき、サーバまたはサード・パーティのプロバイダ(サーバによって割り当てられる)が、比較的単純な、クライアントのブラウザ内において実行可能なコードをクライアントへ送信する。このコードが実行されると、クライアントがサーバへパケットのペアを求める要求を生成する。サーバは、『連続して』、もしくはわずかに時間を隔ててそれらの要求されたパケットを提供するか、あるいは別のサイトに提供させる。クライアントは、完全な第1のパケットを受信すると、その時刻を記録する。またクライアントは、完全な第2のパケットを受信すると、再びその時刻を記録する。これら2つの記録済みの時刻における差および第2のパケットのサイズの知識から、クライアント側のコードは、観察に基づく帯域幅番号を計算することができる。このプロセスを3回ないしはそれを超える回数にわたって繰り返し、決定されたもっとも高い帯域幅を採用することによって、精度の向上が得られる。
図1を参照すると、本発明の一実施態様に従ったデータ処理ネットワーク100の選択されたエレメントが図示されている。ここに図示されている実施態様において、ネットワーク100は、クライアント・システム(クライアント)102を含み、それが、そのクライアントのISP 110を伴うリンク103を介してインターネット等のワイド・エリア・ネットワークへ接続されていることが示されている。本発明は、クライアント対ISPリンク103の最大獲得可能帯域幅の信頼性のある評価を得ることに注目している。クライアント102からの送信、およびそこへの送信が行われるすべてのパケットがリンク103を横断しなければならず、また大多数のクライアントに関する帯域幅のボトルネックがクライアント対ISPリンク103であることから、リンク103の最大獲得可能帯域幅は、クライアントがデータを送受できる能力を実質的に決定する。クライアントがデータを送受するための帯域幅は、具体化に応じて同一でないことがある(たとえばADSL)。多くのアプリケーションについて、ウェブ・サイトのプロバイダおよびその他にとってもっとも関心のあるパラメータは、クライアントが情報を受信するための最大獲得可能帯域幅であり、それこそが本発明が主な焦点とするパラメータである。ISP 110は、クライアント102へ配信されるトラフィックおよびそこから受信されるトラフィックのすべてが通過しなければならないゲートウェイである。通常、ISP 110は、月極もしくは年間加入料と引き替えにインターネットへのクライアント102のアクセスを許可する。概して言えば、所定期間当たりの料金は、リンクの品質もしくは速度によって変化する。高速インターネット・アクセスを希望もしくは要求する加入者は、ダイアルアップ・アクセスが適切な加入者より一般に多くを支払う。それに代えて、リンクがプロバイダによって無償で提供されることもあり(たとえば、カスタマの小売店における場合)、その場合にはローカル・サーバのプロバイダが何を提供できるかによって帯域幅が制限される。それに加えて、地理的およびそのほかの考慮事項によって、エンド‐ユーザがダイアルアップ接続のみを有することが余儀なくされることもある。
クライアント102は、デスクトップもしくはノートブック・コンピュータ等のデータ処理デバイスまたはシステム、ウェブ対応携帯電話もしくはPDA等のワイヤレス・デバイス、あるいはそのほかの『ネットワーク・アウェア』デバイスである。ワールド・ワイド・ウェブ上のコンテンツへのアクセスは、クライアントのハードウエア上において実行するブラウザを用いて達成される。一般に使用されるほとんどすべてのブラウザは、かなりの程度までいくつかの共通の属性を共有する。その種の属性の1つが、JavaScript(ジャバスクリプト)(登録商標)コードを実行するブラウザの能力である。JavaScript(ジャバスクリプト)(登録商標)は、Netscape Corporation(ネットスケープ・コーポレーション)によって開発されたオープン、プラットフォーム非依存、オブジェクト指向プログラミング言語である。図示された実施態様においては、クライアント102が、システムもしくはデバイスがJavaScript(ジャバスクリプト)(登録商標)コードを実行することを可能にする完全に機能的なランタイム環境を含んでいる。
クライアント102は、組織のホーム・ページ等の情報の検索を希望するとき、そのブラウザを使用してそのホーム・ページのためのユニバーサル・リソース・ロケータ(URL)を入力する(たとえば、www.OrganizationName.com)。クライアントのブラウザは、このURLによって表されるオブジェクトを、そのオブジェクトがストアされているサーバから(またはプロキシ・サーバから)検索する要求を生成する。図1に示されているように、サーバ150は、組織のウェブ・サイトまたはウェブの存在を表す。組織のホーム・ページは、たとえばサーバ150上にストアされているか、あるいはサーバ150がアクセス可能なストレージ上にストアされている。
サーバ150によって代表される組織は、そのウェブ・サイトへ誰が訪問しているかといったことはもとより、そのビジターの有するインターネット・ケイパビリティがどの程度のレベルであるかといったことにおそらくは関心を有する。この情報は、ビジターへ提供されるサービスのタイプの差別化に使用することができる。またこれは、サーバへ、そのウェブの具体化が不適切であるときにそれを通知することもできる。特に、サーバ150が、高帯域幅接続を有している特定のクライアントがページの閲覧等において無視できない遅延を経験していることに気付いた場合には、そのウェブ・サイトの設計ならびに具体化の修正が必要なこともある。
クライアントの実際の帯域幅の正確な測度を得るときの困難は、部分的にはインターネットのアーキテクチャに帰する。理論的に言えば、クライアントの帯域幅の決定は、サーバからクライアントへ、なんらかのデータが配信されようとしているときにタイマを起動し、パケットの配信が完了したときにそのタイマを停止することによって達成することができる。データの量が既知であれば、この送信時間を使用して観察に基づく帯域幅の測度を計算することができる。ローカル・エリア・ネットワークにおいては、サーバからクライアントへ連続して(つまり、時間的に隣接するシーケンスで)パケットのペアを送信させることによって、このアプローチを実現することができる。その場合は、クライアントが第1のパケットを受信したときにタイマが開始される。このタイマは、第2のパケットの受信時に停止され、この経過時間によって第2のパケットのサイズを除することによって帯域幅が評価される。しかしながらインターネットの関連においては、介在するハードウエア・デバイスおよびファイル・キャッシュの存在がこのタスクを著しく困難なものとする。
図1に示されているように、たとえば、クライアント102からサーバ150へ至る任意のパスは、複数のルータ112を横切る。サーバ150が、単純にパケットのペアをクライアントへ送信することによってそのクライアントの帯域幅の決定を試みた場合に、ルータ112のうちのいずれかにおいて、ルータがなんらかの別のパケットの処理を行っている間に第2のパケットが遅延される可能性がある。それに加えて、インターネット上の多くのデバイスは、ファイル・キャッシュを含んでいる。ファイル・キャッシュは、最近アクセスされたデータのストアに使用されるストレージ・ファシリティである。たとえば、クライアントが特定のオブジェクトを要求した場合に、そのオブジェクトのコピーが、クライアント102とサーバ150の間にある1ないしは複数のルータおよび/またはプロキシ・サーバ上のストレージ・デバイス内にキャッシュされることがよくある。図1には、コンテンツ配信ネットワーク(CDN)サーバ120によってファイル・キャッシュの一例が表されている。CDNは、多数の異なるサーバ上に大きなキャッシュ・ファイルを維持することによって単一ウェブ・サーバへのアクセス時間を短縮するとともに、その過負荷を防止する。理想的には、これらのCDNサーバ120が、各種のISP 110の近傍に配置される。この出願の関連においては、2つのデバイスの近接が、それら2つのデバイスの間におけるネットワークの『ホップ』の数を指す。CDNサーバ120が主要なISP 110の近傍にあり、かつCDNサーバのキャッシュが非常に多くの頻繁にアクセスされるオブジェクトをキャッシュしていると仮定すると、ウェブ・オブジェクトを求める多くの要求が、要求者のISPの近傍にある、オブジェクトのキャッシュ済みコピーによって供給される可能性があることは明らかであろう。より詳細については後述するが、本発明の一実施態様は、CDNサーバ120の存在を有益にてこ入れし、観察に基づいて導出される帯域幅番号の信頼性を向上する。しかしながら、クライアント‐ISPリンクの帯域幅を測定するという点から見ると、概して特定のオブジェクトがどこから供給されているかについて確信が得られないことから問題が悪化する。パケットのペアの例においては、第1のパケットが遠くのサーバから供給され、第2のパケットが近くのサーバから供給されたとすると、結果として得られる帯域幅の決定は、不正確であり、信頼できないものとなりがちである。
本発明は、ブラウザ内からインターネット上においてパケットのペアのコンセプトを具体化することに内在する困難と取り組んでいる。具体化される解決策のいくつかは、コンピュータ可読メディア上にストアされるコンピュータ実行可能インストラクションのセットもしくはシーケンスの形式とすることができる。これらのインストラクションは、磁気ディスクもしくはテープ、フラッシュ・メモリ・デバイス等の電気的に消去可能なデバイスを含む読み出し専用メモリ(ROM)デバイス、およびこれらの類似物等々の持続性ストレージ・メディア上にストアすることができる。インストラクションが実行される時点においては、ソフトウエアが、データ処理システムのシステム・メモリあるいはシステムのプロセッサの1つに関連付けされたキャッシュ・メモリ等の揮発性ストレージ・メディア内に常駐することができる。
図2は、インターネット環境内において特定のクライアントのリンクの帯域幅を決定する方法200を示したフローチャートである。一実施態様においては、本発明を実行するために必要なコードもしくはソフトウエアのほとんどが、大抵の従来的なブラウザ内において実行可能なJavaScript(ジャバスクリプト)(登録商標)コードである。図示の実施態様においては、方法200が、図1のサーバ150等のサーバによるクライアント要求の検出を含む。クライアントから受信される代表的な要求は、周知のHTTPフォーマットされた、特定のURLのためのGET要求である。その種の要求の受信時に、サーバは、要求元のクライアントの帯域幅の評価を希望するか否かを決定する(ブロック204)。サーバは、選択されたクライアントについてだけ選択された回数だけ帯域幅の評価を行う選択をしてもよい。サーバは、たとえば、そのサーバを頻繁に訪問する(つまり、そのサーバからURLを要求する)クライアントについてだけ帯域幅が評価される選択を行うことができる。またサーバは、活動度が低いとき(帯域幅の決定のために必要なパケットの供給に関連するプロセッシング・オーバーヘッドがほとんど影響を持たないとき)、あるいは活動度が高いとき(サーバの利用可能な帯域幅の割り付けが重要なとき)に限って帯域幅が評価される選択を行うこともできる。サーバが、要求の受信に続いて帯域幅の評価が行われないことを選択した場合には、サーバは、単に従来の方法に従ってその要求を処理することになる。
サーバが帯域幅の評価を開始する場合には、図示した方法200の実施態様は、まず、実行された帯域幅評価の繰り返しの数を追跡またはカウントするための変数を初期化する(ブロック206)。本発明の好ましい実施態様においては、複数回の帯域幅評価が繰り返されて、最終的な結果の精度が改善される。繰り返しの回数は、サーバによって決定される傾向にあるとはいえ、繰り返しの回数の追跡は、クライアント側が責任を負うことがおそらくは適当であるが、変形の具体化においては、これらの責任を代替方法に従って配分することができる。繰り返し変数の初期化に続いて、サーバ(もしくは、図4に関連して説明を後述するように、サード・パーティのプロバイダ)は、要求元のクライアントへ、JavaScript(ジャバスクリプト)(登録商標)スニペットを送信する(ブロック208)。JavaScript(ジャバスクリプト)(登録商標)スニペットは、特定のタスクを遂行するために設計されたJavaScript(ジャバスクリプト)(登録商標)ソース・コードの1つである。本発明においては、クライアントへ引き渡されるスニペット(クライアント側スニペット)が、概して、サーバへのパケットのペアの要求、およびそのほかの、たとえばタイマの起動、時間の計算、帯域幅の計算等を含む帯域幅評価アクティビティを行うべく設計されている。クライアント側スニペットの具体化については、図3に関連して詳細を後述する。
サーバからクライアントへスニペットが送信されると、クライアントのブラウザが、すなわちより詳細に述べればクライアントのブラウザのJavaScript(ジャバスクリプト)ランタイム環境が、そのスニペットを実行する。一実施態様においては、サーバがスニペット内に、クライアント‐ISP間の帯域幅の決定がなされるべきか否かを決定するケイパビリティを埋め込むことができる。クライアント‐ISP間の帯域幅が決定されることになっていれば、このスニペットがクライアントに、第1および第2のパケットをサーバに求める要求を生成させる。ここで述べている実施態様においては、これらのパケットがともに、予め定義済みの一意的なURL(すなわち、以前にそのURLが要求されたことがないとする確度が極めて高い)によって識別される。一意的なURLは、本発明の関連において、要求されたオブジェクトが中間のルータまたはプロキシ・サーバのキャッシュ内に見つからないことを保証する上で望ましい。一実施態様における一意的なURLは、一意的な文字列を所定のオブジェクト名に付加することにより生成することができる。サーバがクライアントからパケット要求を受信したとき、要求されたURLのフォーマットが、そのURLが帯域幅を評価する目的で要求されたことをサーバに通知する。
ネットワークにわたって一意的であるURLを送信することが望ましいが、それぞれの要求元クライアントのために一意的なパケットを有する必要はない。それぞれのクライアントのための一意的なオブジェクトは、大量のストレージを必要とすることになる。図2に示されている本発明は、要求を送信する目的のためにネットワークにわたって一意的なURLを使用するが、すべてのクライアントに対して共通のURLの後ろに置かれているそのURL文字列の一意的な部分を取り去ることによって(ブロック210)サーバ側のストレージを節約している。このようにサーバにおいては、一意的なURLの厖大な(可能性としては無限の)セットが2片のコンテンツをマップしている。
第1の帯域幅評価パケットを求める要求を認識すると、サーバは、第2のパケットを求める要求の受信を待機する選択を行い、2つのパケットが連続して配信されることをサーバが保証できるようにする。本発明の関連においては、連続した送信が、パケット・ペアのパケットの送信間隔が、クライアントのブラウザによって検出可能な最小時間間隔より短いことを示す。この最小値は、現在のところ約10ms台であり、これは、ほとんどのサーバ・アプリケーションにおいてパケットが連続して送信されることが保証されるに充分な時間である。
第2のパケットを求める要求を受信した後、第1および第2のパケットが要求元クライアントへ連続して供給される(ブロック212)。これらのパケットは、サーバ150自体によって供給されるようにしてもよい。別の実施態様においては、サーバが、要求されたパケットの供給をコンテンツ配信ネットワークに代理させるが、供給デバイスとクライアントの間におけるホップの数を低減するためにはこれが望ましい。図1において述べたように、CDNは、図1のISP 110等のISPの(ネットワーク・ホップという意味において)近くに意図的に配置されるファイル・キャッシュ・サーバのネットワーク(サーバ120等)である。
本発明の関連においてCDNを使用することは、パケットが要求元クライアントへ送信されるときに横切るネットワーク・ホップの数を低減することによって評価される帯域幅の信頼性を有利に改善する。これは、特定のISPと特定のサーバの間の地理的な距離が大きい場合(たとえば外国のウェブ・サーバとの間の場合)に特に当てはまる。多くの大規模ウェブ・サーバは、すでに、要求されたデータへのアクセス時間を短縮する手段として、またおそらくはより重要なことであるが、短時間に大量の要求が発生したときに生じることのある過負荷状態を防止するためにCDNを使用している。
一実施態様においては、供給される第2のパケットが、帯域幅の決定がゆがめられるおそれのある、ネットワークによる複数のパケットへの分割を防止できるサイズで組み立てられる。第2のパケットのサイズは、たとえば一実施態様において、厳密に、最小送信単位(MTU)から各種のヘッダのサイズを減じたサイズに拘束されている。たとえば、IPヘッダおよびTCPヘッダは、併せて40バイトを必要とする。サーバは、第2のパケット用のコンテンツ・サイズを、コンテンツのサイズ+HTTPヘッダのサイズ+TCPヘッダのサイズ+IPヘッダのサイズが1MTUを超えることのないように選択する。その名前から暗示されるように、MTUは、単一パケットとして送信されることが保証されているデータの最大量である。MTUより大きいパケットは、中間ルータによってフラグメント化される可能性を有する。言い換えると、MTUは、インターネットのルータによるフラグメント化を伴わない送信が保証される最小パケットである。インターネット上のMTUは、576バイトである。すべてのネットワーク・ハードウエアは、MTUコンセプトを遵守しなければならず、これは、ネットワーク上のいずれのデバイスにもMTUを複数のより小さいパケットに分割することが許されていないことを意味する。好ましい実施態様においては、第1および第2のHTTPオブジェクト(すなわち、第1および第2のパケット)が、中間キャッシュに対してそれらのオブジェクトのキャッシュを行わないディレクティブとともに送信される。しかしながら、いくつかの中間キャッシュがこれらのディレクティブに従わずに、オブジェクトをキャッシュすることがある。以下に図3を参照して説明するが、そのように従わないことがあっても、それが本発明の帯域幅評価プロセスに影響することはない。
ブロック212におけるパケットの引き渡しに続いて、サーバは、クライアント側スニペットが第2のパケットの受信に要した経過時間を基礎として帯域幅を計算する間を待機する。計算された帯域幅は、その後サーバへ引き渡されてストアされる(ブロック214)。
各繰り返しの後にクライアントによってインクリメントされる繰り返し変数Nが、予め決定済みのスレッショルド値と比較される(ブロック218)。N=MAXとなるまで、このプロシージャの追加の繰り返しが行われる。繰り返しの回数には、信頼できる値を保証する一方、過剰な時間ならびにリソースを消費しないことが意図されている。逸話的な証拠は、ほとんどのアプリケーションにおいて4回のプロセスの繰り返しを行えば、良好な精度を伴うクライアントの最大獲得可能帯域幅を評価する上で充分であることを示唆している。どのような回数が指定されている場合でも、それぞれの繰り返しが対応する計算済みの帯域幅の値をもたらし、それが終了した後にサーバは、計算済みのスレッショルド数の最大値を値として選択する(ブロック220)。それに代えて、クライアントが評価済みの帯域幅の値のそれぞれをストアし、最大値を選択し、その単一の値をサーバへ送信することも可能である。クライアント上におけるパケット処理が適時的な態様で生じることを前提とすれば(すなわち、クライアント側が、第2のパケットの評価済み通過時間が不自然に低くなり、それによって不自然に高い帯域幅の評価がもたらされるほど長い時間期間にわたって第1のパケットの処理を遅延しないことを前提とすれば)、測定された帯域幅が実際の物理的な帯域幅を超えることが理論上不可能であるため最大値が使用されている。この仮定の下において、評価された帯域幅がリンクの物理的な限界を超えることは不可能であり、その結果、評価された帯域幅は、最大獲得可能帯域幅より小さいか、それと等しくなるはずである。
ここで図3を参照すると、先の図2の議論において言及したクライアント側スニペット300の実施態様を例示したフローチャートが示されている。ここに図示されている実施態様においては、スニペット300が一意的なIDを作成する(ブロック302)。この一意的なIDは、ほかのいずれのクライアントも同一の一意的なID(したがって、そのIDを一意的でなくする)を作成しないこと保証が高い確度なされる任意の方法において生成することができる。一実施態様においては、たとえば、時刻インジケータから導出した数字列および乱数を連結することによって一意性が達成される。すでに述べたように、この一意的なIDは、ISPに接続されている任意のプロキシ・サーバもしくはルータ上に存在するキャッシュが、パケット・ペア内のいずれのパケットも供給できないことを保証するメカニズムとして使用されている。
クライアント側スニペットは、一意的なIDを作成した後、第1および第2のオブジェクトを作成する(ブロック304)。好ましい実施態様においては、このとき作成されるオブジェクトがイメージ・オブジェクトになる。イメージ・オブジェクトは、概してグラフィカル・イメージのアクセスに使用されるが、本発明の関連においては、イメージ・オブジェクトのサポートする方法が帯域幅の決定に有用であることから選択されている。特に、すべてのJavaScript(ジャバスクリプト)(登録商標)イメージ・オブジェクトは、イメージ・オブジェクトがロードされるときに起動されるOnLoadイベント・ハンドラをサポートしている。2つの異なるパケットが完全にロードされる時刻をマークすることによって動作する本発明においては、このイベント・ハンドラが極めて有用になる。またイメージ・オブジェクトは、OnErrorイベント・ハンドラもサポートしており、イメージのロードを試行する間にエラーに遭遇するとそれが通知を行う。ここで注意される必要があるが、JavaScript(ジャバスクリプト)イメージ・オブジェクトがブラウザ・スクリーン上に表示される必要はなく、したがって具体化によってはエンド‐ユーザにとって不可視にすることもできる。
作成された第1および第2のイメージ・オブジェクトのいずれにも、対応するイメージ・オブジェクト用の『理解容易な』名前(たとえば、ImageObjectOneおよびImageObjectTwo)を含む名前が与えられ、その名前に一意的なIDが追加される。パケット・ペア内の両方のパケット用に同一の一意的なIDを使用することによって、サーバは、2つの要求が同一クライアントから到来したとの決定を有利に行うことができる。この具体化においては、サーバが、同一IDを伴う両方の要求が受信されるまで待機し、その後、パケットを連続して送信することができる。
イメージ・オブジェクトが、その後、作成済みオブジェクトのソース(SRC)属性をセットすることによってサーバまたはCDNへ向けて『ポイント』される(ブロック306)。SRC属性が定義されると、これらのオブジェクトは、サーバ側から名称設定済みオブジェクトの検索を開始する。第1および第2のオブジェクトの検索の前に、クライアントのスニペットは、オブジェクトのonloadおよびonerrorイベントをアクティブにする(ブロック308)。パケットの受信に続いてイベント・ローダが最終的にトリガされると(ブロック310)、時刻が記録される(ブロック312)。記録された時刻は、帯域幅評価時間計測が開始する時点を表す。つまり、イメージ・オブジェクトとして第1のパケットを受信する方法によってクライアントは、クライアントのところで第2のパケットの受信が開始される時点を決定することが可能になる。
ブロック312において第1の時刻が記録された後、スニペットは、完全な第2のイメージ・オブジェクトの受信を監視する(ブロック314)。第2のイメージが完全にロードされた後(ブロック316)、スニペットは経過時間を計算し、第2のパケットのサイズの知識を用いて、計算による帯域幅の値を決定する(ブロック318)。一実施態様においては、第2のオブジェクトのサイズがスニペット内に埋め込まれている。その後、繰り返し変数Nがインクリメントされ(ブロック319)、計算済みの帯域幅の値がサーバへ返される(ブロック320)。一実施態様においては、これがサーバ上のURLに対してオブジェクトをポイントすることによって達成され、それが帯域幅の値をパラメータとして検索する。別の実施態様においては、クライアントが、単にサーバへ、決定に使用された一意的なIDとともに2つのパケットの間の時間遅延を通知する。サーバは、この時間遅延および第2のパケット(一意的なIDを用いてそれを追跡する)のサイズを用いて帯域幅を決定する。HTTPエラー(onerrorハンドラをトリガする)に起因していずれかのオブジェクトがロードされなかった場合にJavaScript(ジャバスクリプト)スニペットは、試験を繰り返すか、あるいは中止することをクライアントに指示する。スニペットは、クライアントによって繰り返される回数を制限することができる。これらの全体の帯域幅評価は、セッションごとに1度、あるいは時間的な期間の経過ごとに1度(たとえば、4時間ごと)行うことができる。代表的な実施態様においては、関連するオーバーヘッドから、この決定をページごとには行わない。サーバによって提供されるコード・スニペットは、サーバ指定の条件に基づいてクライアントに試験を反復させる。またサーバは、その全体のクライアント‐ベースのランダムなセットだけが帯域幅評価を実行することを指示できる。ここで図4を参照すると、サーバへ帯域幅評価機能を提供する方法のフローチャートが示されている。図示された実施態様においては、参照番号160によって表されているサード・パーティのプロバイダが、サーバによって起動されたときに、適切なクライアントに対するスニペット・コードの配信を担当する。図示の実施態様においては、サーバ150が、プロバイダ160へ要求を送信することによってクライアント要求に対して応答する。プロバイダ160は、要求を受信し(ブロック402)、スニペットをクライアントへ送信する(ブロック404)。この場合にプロバイダ160(またはCDN 120)は、パケットをクライアントへ供給し(ブロック406)、(適切な回数の繰り返しの後に)クライアントから決定済みの帯域幅を受信する(ブロック408)。その後プロバイダ160は、その帯域幅を要求元サーバへ引き渡す。サード・パーティのプロバイダを採用することによってサーバは、帯域幅決定の具体化にサーバ側スクリプトが必要としていたクライアント側スニペットを維持する必要性から開放され、それに代えて、決定された帯域幅を基礎とする決定に集中することができる。サード・パーティのサーバは、帯域幅情報をサーバ160のオペレータへ、継続ベースで配信するか、あるいは集計レポートの形式で配信することを選択できる。それに加えて、評価された帯域幅が1ないしは複数の別のサーバの統計と矛盾するとき、サーバに対して修正アクション通知を発行するようにプロバイダ160の具体化を行うこともできる。一例としてプロバイダ160は、クライアント側の帯域幅限界の追跡に加えて、サーバ側の応答時間も追跡することができる。
この開示の恩典を受ける当業者であれば、本発明が、クライアント‐ISPリンクに関する帯域幅の決定を観察に基づいて引き出すためのメカニズムを企図していることは明らかであろう。詳細な説明および図面の中に示し、説明してきた本発明の形式が現在のところ好ましい例として採用されているに過ぎないことが理解される。付随する特許請求の範囲は、開示された好ましい実施態様のすべての変形を包含するべく広く解釈されることが意図されている。
データ処理ネットワークのブロック図である。 本発明の一実施態様に従ってクライアントの獲得可能な帯域幅を決定する方法のフローチャートである。 本発明の一実施態様に従ってネットワーク接続のクライアント側において実行される処理を強調した図2の方法の詳細を例示したフローチャートである。 サーバによるクライアントの獲得可能な帯域幅の決定を可能にするためのサード・パーティのサービスを例示したフローチャートである。
符号の説明
100 データ処理ネットワーク
102 クライアント
103 クライアント対ISPリンク
110 ISP
112 ルータ
120 コンテンツ配信ネットワーク(CDN)サーバ
150 サーバ
160 プロバイダ
200 方法
300 クライアント側スニペット

Claims (20)

  1. クライアントとサーバの間の接続の帯域幅を評価させるためのプログラムであって、前記プログラムが、コンピュータに、
    サーバに、第1および第2のオブジェクトを連続してクライアントへ送信することを要求する機能、
    前記クライアントの前記サーバへのアクセスに応答して、前記要求する機能を実現するスクリプトを前記クライアントへ配信する機能、
    前記クライアント上における前記スクリプトの実行を起動する機能、
    前記スクリプトからの要求に応答して、前記第1および第2のオブジェクトを前記クライアントへ送信する機能、
    および、
    前記第1および第2のオブジェクトの配信の間の時間間隔を決定するため、およびそれらから帯域幅を評価する機能を、
    実現させるプログラム。
  2. 前記第1および第2のオブジェクトを要求する機能は、前記クライアントと前記サーバを接続するネットワーク上において一意的なURLを用いて前記第1および第2のオブジェクトを識別する機能を含む、請求項1に記載のプログラム。
  3. 前記第1および第2のオブジェクトを前記クライアントへ送信する機能は、前記クライアントのISPとアーキテクチャ的に近接しているコンテンツ配信ネットワーク・サーバから前記第1および第2のオブジェクトを前記クライアントへ送信する機能を含む、請求項2に記載のプログラム。
  4. 前記第2のオブジェクトは、前記ネットワークに関連付けされる最小送信単位より小さいかそれに等しいサイズを有し、その点で前記第2のオブジェクトのフラグメント化が防止される、請求項3に記載のプログラム。
  5. 前記要求する機能は、
    第1および第2のイメージ・オブジェクトを作成する機能、
    一意的な識別子(uniqueID)を生成する機能、
    および、
    前記第1および第2のイメージ・オブジェクトと前記サーバ上の第1および第2のオブジェクトを、前記uniqueIDを含むURLを使用して関連付けする機能、
    を含む、請求項1に記載のプログラム。
  6. さらに、前記第1および第2のURL内の前記uniqueIDを前記サーバが無視する機能を包含し、それにおいて任意のクライアントからの前記第1および第2のオブジェクトを求める要求が、前記サーバによって受信された前記URL内の前記uniqueIDとは無関係に前記サーバ上のオブジェクトの単一ペアから供給される、請求項5に記載のプログラム。
  7. 前記uniqueIDを生成する機能は、時刻の値ならびに乱数を基礎として前記識別子を導出する機能を含む、請求項5に記載のプログラム。
  8. さらに、前記第1のオブジェクトを求める要求に関連付けされた前記uniqueIDと同一のuniqueIDを有する前記第2のオブジェクトを求める要求が受信された後に限り、前記第1のオブジェクトを求める要求に対して応答する機能を包含する、請求項5に記載のプログラム。
  9. さらに、前記帯域幅の複数の評価を獲得するために前記要求する機能を複数回にわたって起動する機能、および獲得されたもっとも高い帯域幅を評価済み帯域幅として選択する機能を包含する、請求項1に記載のプログラム。
  10. クライアントのネットワーク接続の獲得可能な帯域幅を評価するためのサービスであって、
    サーバが、サービス・プロバイダに、前記サーバと前記クライアントの間の接続の前記帯域幅の評価を要求することを可能にすること、
    前記クライアントへ、第1および第2のオブジェクトを時間的に連続した態様で前記クライアントへ供給することを前記サーバに要求するためのスニペットを提供することによって帯域幅の評価を求める前記要求に応答すること、
    前記スニペットを起動し、前記クライアントに、前記サーバへ前記第1および第2のオブジェクトを要求させ、それにおいて前記スニペットは、前記サービス・プロバイダへ、前記第1および第2のオブジェクトの配信の間に経過した時間的な量を示す情報を返すこと、
    前記経過した時間を部分的に基礎として前記獲得可能な帯域幅を評価すること、
    を包含するサービス。
  11. さらに、前記サーバに関する応答時間データを維持し、選択したクライアントに関する前記サーバの応答時間および前記選択したクライアントに関連付けされる前記評価した帯域幅を基礎として前記サーバに警告を発することを包含する、請求項10に記載のサービス。
  12. 前記スニペットは、前記クライアントと前記サーバを接続するネットワーク上において一意的なURLを用いて前記第1および第2のオブジェクトを識別する、請求項10に記載のサービス。
  13. 前記サーバは、前記クライアントが接続されているISPサーバとアーキテクチャ的に近接しているコンテンツ配信ネットワーク・サーバから前記クライアントへ前記第1および第2のオブジェクトを送信することによって前記第1および第2のオブジェクトを求める前記要求に応答する、請求項12に記載のサービス。
  14. 前記第2のオブジェクトは、前記ネットワークに関連付けされる最小送信単位より小さいかそれに等しいサイズを有し、その点で前記第2のオブジェクトのフラグメント化が防止される、請求項13に記載のサービス。
  15. さらに、前記スニペットを複数回にわたって起動して前記帯域幅の複数の評価を獲得し、もっとも高い帯域幅の評価を選択することを包含する、請求項14に記載のサービス。
  16. 前記スニペットが、
    第1および第2のイメージ・オブジェクトを作成するためのコード手段、
    一意的な識別子(uniqueID)を生成するためのコード手段、
    および、
    前記第1および第2のイメージ・オブジェクトと前記サーバ上の第1および第2のオブジェクトを、前記uniqueIDを含むURLを使用して関連付けするためのコード手段、
    を含む、請求項10に記載のサービス。
  17. サーバとクライアントを前記クライアントのISPを介して接続するデータ処理ネットワークにおけるサーバであって、
    帯域幅評価スニペットであって、時間的に隣接するトランザクションにおいて第1および第2のオブジェクトを前記クライアントへ送信することを前記サーバに対して要求するべく構成されている帯域幅評価スニペットを前記クライアントへ提供し、
    前記スニペットによって生成された要求を、帯域幅評価を求める要求として識別し、かつ前記要求に対して、前記第1および第2のデータ・オブジェクトを提供することによって応答し、
    かつ、
    前記クライアントから、前記第1および第2のオブジェクトの配信の間に経過した時間を示す情報を受信するべく構成されているサーバ。
  18. 前記帯域幅評価スニペットは、前記ネットワーク全体にわたり、かつ特定の要求に対して一意的である第1および第2のURLを使用して、前記サーバに対して第1および第2のオブジェクトを要求する、請求項17に記載のサーバ。
  19. 前記第1および第2のURLは、前記要求に関連付けされた時刻から導出された一意的な部分および乱数を含む、請求項17に記載のサーバ。
  20. 前記サーバは、前記クライアントのISPとアーキテクチャ的に近接しているコンテンツ配信ネットワーク・サーバへ前記第1および第2のオブジェクトを提供することによって前記第1および第2のデータ・オブジェクトを前記クライアントへ供給し、それにおいて前記クライアントは、前記CDNサーバから前記第1および第2のオブジェクトを受信する、請求項17に記載のサーバ。
JP2004354978A 2004-12-08 2004-12-08 クライアントとサーバの間の接続の帯域幅を評価させるためのプログラム、クライアントのネットワーク接続の獲得可能な帯域幅を評価するための方法、およびデータ処理ネットワークにおけるサーバ Expired - Fee Related JP3953486B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004354978A JP3953486B2 (ja) 2004-12-08 2004-12-08 クライアントとサーバの間の接続の帯域幅を評価させるためのプログラム、クライアントのネットワーク接続の獲得可能な帯域幅を評価するための方法、およびデータ処理ネットワークにおけるサーバ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004354978A JP3953486B2 (ja) 2004-12-08 2004-12-08 クライアントとサーバの間の接続の帯域幅を評価させるためのプログラム、クライアントのネットワーク接続の獲得可能な帯域幅を評価するための方法、およびデータ処理ネットワークにおけるサーバ

Publications (2)

Publication Number Publication Date
JP2006166056A true JP2006166056A (ja) 2006-06-22
JP3953486B2 JP3953486B2 (ja) 2007-08-08

Family

ID=36667552

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004354978A Expired - Fee Related JP3953486B2 (ja) 2004-12-08 2004-12-08 クライアントとサーバの間の接続の帯域幅を評価させるためのプログラム、クライアントのネットワーク接続の獲得可能な帯域幅を評価するための方法、およびデータ処理ネットワークにおけるサーバ

Country Status (1)

Country Link
JP (1) JP3953486B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013157958A (ja) * 2012-01-31 2013-08-15 Brother Ind Ltd 通信装置、通信方法、および通信プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013157958A (ja) * 2012-01-31 2013-08-15 Brother Ind Ltd 通信装置、通信方法、および通信プログラム

Also Published As

Publication number Publication date
JP3953486B2 (ja) 2007-08-08

Similar Documents

Publication Publication Date Title
US9660890B2 (en) Service provider optimization of content management
CN110096659B (zh) 一种页面显示方法、装置、设备及可读存储介质
US10148542B2 (en) Monitoring domain allocation performance
US10284446B2 (en) Optimizing content management
US8510448B2 (en) Service provider registration by a content broker
US9800539B2 (en) Request routing management based on network components
US9210099B2 (en) Optimizing resource configurations
US6438592B1 (en) Systems for monitoring and improving performance on the world wide web
US20110078327A1 (en) Content delivery utilizing multiple content delivery networks
CN106412063B (zh) 教育网内cdn节点检测与资源调度系统及方法
US20110119370A1 (en) Measuring network performance for cloud services
US8918497B2 (en) Email system latencies and bandwidths
WO2012089062A1 (zh) Cdn网络中的数据传输方法及设备
US7475129B2 (en) Estimating bandwidth of client-ISP link
US7216154B1 (en) Apparatus and method for facilitating access to network resources
JP3953486B2 (ja) クライアントとサーバの間の接続の帯域幅を評価させるためのプログラム、クライアントのネットワーク接続の獲得可能な帯域幅を評価するための方法、およびデータ処理ネットワークにおけるサーバ

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070130

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070320

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: 20070410

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070424

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: 20110511

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110511

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120511

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120511

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130511

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140511

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees