説明

受動TCP性能測定法を使用するグローバルトラフィックロードバランシングのためのネットワークプロキシミティを判断する方法

TCP接続、特に、TCP接続の接続品質を判断する技術を提供する。本発明は、クライアントと複数のデータセンター間のTCP接続品質を測定するための技術を説明する。ウェブビーコンと呼ばれる少量のコードが、プロダクションウェブページに配置される。クライアントがプロダクションウェブページを要求した時に、ウェブページがクライアントに提供される。ウェブページコードが処理された時に、ウェブビーコンは、背景でTCP接続を通じて複数のデータセンターからゼロコンテンツ画像を検索するようにクライアントに指示する。各接続が行われた時に、受動的モニタリングシステムが、クライアントからデータセンターへの各TCP接続に関する統計値を測定してログする。統計値は、データベースに集約され、クライアントのIPアドレスの範囲及び接続品質測定値に基づいて分類される。データは、次のクライアントから複数のデータセンターへの経路指定を判断するために、データベースからグローバルロードバランサにエクスポートされる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、TCP接続に関し、より具体的に、TCP接続の接続品質を判断することに関する。
【背景技術】
【0002】
この節に説明する手法は、推進することができると考えられる手法であるが、必ずしも以前に考えられた又は推進された手法とは限らない。従って、特に示さない限り、この節に説明する手法のいずれも、単にこの節に含むという理由で従来技術として認められると仮定してはならない。
【0003】
本明細書で使用される場合、「データセンター」という用語は、関連のサーバのコロケーションを指す。特定のデータセンターに属するサーバは、同じ建物又は総合ビル内にあるが、データセンターは、典型的には、互いから地理的に離れたところに位置する。自然災害によって引き起こされた一方のデータセンターでの壊滅的故障が他方のデータセンターでの故障も引き起こさないように、地理的な距離は、防御を追加するものである。例えば、1つのデータセンターは、ニューヨークの東海岸に位置することができ、別のデータセンターは、サンフランシスコの西海岸に位置することができるであろう。
【0004】
グローバルロードバランシング又は「GLB」は、複数のサーバにわたって特定のサービスへのクライアントアクセスを分散するための機構である。例えば、特定のサービスが、ニューヨークとサンフランシスコのデータセンターに属するサーバによって提供される状況では、GLBは、ニューヨークのデータセンターに接続されるクライアントの数が、サンフランシスコのデータセンターに接続されるクライアントの数とほぼ同じになるように、クライアントアクセスを分散させることができる。
【0005】
「インターネット」の関連において使用される場合、GLBは、「インターネット」の複雑なマップを生成するために様々な能動的及び受動的モニタリング技術を使用することができる。このマップに基づいて、GLBは、クライアントを「最も近い」サーバに接続するためのトラフィック経路指定の判断を実行する。本明細書で使用される「近い」は、必ずしも地理的なプロキシミティだけに判断が基づくことを意味しない。本明細書で使用される「近い」サーバは、クライアントへの最も速い接続をもたらすサーバである。従って、100マイル離れたところに位置したサーバが、重たい輻輳のために200マイル離れたところにあるサーバよりもクライアントが到達することが遅い時に、GLBは、200マイル離れたところにある「より近い」サーバにクライアントを経路指定することになる。
【0006】
多くの能動的及び受動的モニタリング機構は、GLBのための「インターネット」プロキシミティのグローバルマップを構築する。これらの機構によって使用されるプロトコルは、以下に限定されるものではないが、ICMP(ping)、BGP(ボーダーゲートウェイプロトコル)、及びマニュアルエントリを含むことができる。「インターネットコントロールメッセージプロトコル(ICMP)」は、「インターネット」のコアプロトコルの1つである。1つの重要なICMPアプリケーションは、pingツールである。pingツールは、ホストが到達可能か否か、及びパケットがホストとの間を移動するのにかかる時間の長さを判断するために、ICMPエコー要求及び応答メッセージを送信及び受信する。「ボーダーゲートウェイプロトコル(BGP)」は、「インターネット」のコア経路指定プロトコルである。BGPは、自律システム(AS)間のネットワーク到達可能性を指示するIPネットワークのテーブルを維持することによって機能する。BGPは、経路、ネットワークポリシー、及び規則セットに基づいて、経路指定の判断を実行する。残念ながら、これらの機構及びプロトコルは、TCPプロトコルを用いるウェブ接続の実際の性能をモニタすることができず、従って、TCP接続に対する正確な経路指定の判断を実行することができない。
【発明の概要】
【発明が解決しようとする課題】
【0007】
トポロジー及び接続性における動的変更のために、GLBシステムは、「インターネット」の完全で正確なマップを維持することに困難を有する場合がある。マップにおける不正確性は、間違った経路指定の判断に至る場合がある。マッピングプロトコルがそれに基づいて用いられるこれらの経路指定の判断を訂正するために、かなりの時間が必要になることがある。
【0008】
本発明は、同じ参照番号が類似の要素を示す添付の図面の図に制限ではなく一例として示されている。
【図面の簡単な説明】
【0009】
【図1】本発明の実施形態により異なるデータセンターに位置するウェブビーコンに接続しているクライアントを示す図である。
【図2】本発明の実施形態によるウェブビーコンから集約されるデータ及びGLBサーバに分散される処理データを示す図である。
【図3】本発明の実施形態によるネットブロック毎にグループ分けされた処理データを示す図である。
【図4】本発明の実施形態を実施することができるコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【0010】
実際のTCP接続の接続品質を測定し、次のトラフィック経路指定の判断に測定情報を使用するための技術を説明する。以下の説明では、解説の目的のために、本発明の完全な理解を提供するための多数の特定の詳細が示されている。しかし、本発明が、これらの特定の詳細なしに実施することができることは明らかであろう。他の場合、公知の構造及びデバイスは、本発明を不要に曖昧にしないためにブロック図形式で示されている。
【0011】
全体の概要
「伝送制御プロトコル(TCP)」は、ネットワークされたホストにおけるアプリケーションに別のホストへの接続を作成させることのできる「インターネット」プロトコルである。例えば、ウェブページを要求しているクライアントは、一方のホストを表すことができ、クライアントにウェブページコンテンツを提供しているサーバは、他方のホストを表すことができる。
【0012】
TCPプロトコルは、ホスト間の接続に関する多くの特性を有する。TCPは、送信者から受信者へのデータの信頼できる順序正しい配信を保証する。順序正しい配信を達成するために、TCPは、失われたパケットを再送信する段階及び送信された複製パケットを廃棄する段階を提供する。TCPは、同じホストで実行される同時アプリケーション(例えば、ウェブサーバと電子メールサーバ)による複数の接続に対してデータを区別することができる。
【0013】
TCP接続を開始するために、2つのホストは、初期シーケンス番号を交換する。初期シーケンス番号は、各ホストから送信されたバイトの順番を識別し、それによって転送されたデータは、送信中に起こる場合があるあらゆる断片化又は無秩序化にも関わらず順序正しいままである。送信された全バイトに対して、シーケンス番号が増分される。
【0014】
送信された各バイトは、送信者毎にシーケンス番号を割り当てられ、次に、受信者は、送信を確認するために肯定応答を送信者に戻す。例えば、コンピュータA(送信者)が50のシーケンス番号を備えた4バイト(割り当てられた50、51、52、及び53のシーケンス番号を有するパケットにおける4バイト)を送信した時に、コンピュータB(受信者)は、コンピュータBが受信すると予想する次のバイトを指示するために54の肯定応答をコンピュータAに戻すことになる。54の肯定応答を送信することにより、コンピュータBは、バイト50、51、52、及び53が正しく受信したことを信号で伝える。確実にいけば、バイト50及び51が完全に受信したので、最後の2バイトは破損し、次に、コンピュータBは、52の肯定応答値を送信する。コンピュータAは、シーケンス番号52から始まるデータをコンピュータBに再送信する。
【0015】
TCPは、輻輳制御を実行することができる。例えば、TCPは、ネットワークに入るデータの速度を調節することができ、ネットワーク輻輳問題を起こす速度より下にデータフローを保つ。送信データに対する受信した肯定応答、又は受信肯定応答の欠落は、送信者と受信者間のネットワーク状態を解釈するために送信者によって測定される。TCP送信者及び受信者は、次に、良好なトラフィックフローを保証するために、遭遇するネットワーク状態に従ってデータフローの速度を変えることができる。
【0016】
残念ながら、接続品質の正確な測定を保証するために実際のTCP接続を測定する段階は、第三者又は非TCPプロトコルによって実行されない。例えば、実際のTCP接続測定に対する代替としてICMPのような非TCPプロトコルを使用すると、不正確な結果に至る場合がある。1つの理由は、ICMPトラフィックがTCPよりも低いサービスの品質(QoS)を有することが多いからである。QoSは、「インターネット」におけるトラフィックに与えられる優先度である。QoSは、アプリケーションからの要求に従ってデータフローへの性能のある一定のレベルを保証することにより、異なるデータフローに異なる優先度を提供する。ICMPによって使用されるpingトラフィックのQoSは、pingingがpingの宛先に常に到達するとは保証されないので、TCPよりも低い優先度が与えられる。対照的に、TCPは、全てのトラフィックが特定の宛先に到達することを保証する。この結果、一部の測定は、通常よりも大きなパケットドロップ率及び長い待ち行列時間のような低QoSによって影響される場合がある。従って、ICMPに基づくTCP接続のための経路指定の判断は、不正確になるであろう。
【0017】
TCPが2地点間プロトコルであるので、第三者サービスは、TCP接続品質を測定するのに困難を有する。2地点間プロトコルでは、トラフィックは、1つのネットワークポイントから別のネットワークポイントに経路指定される。例えば、1つのネットワークポイントは、ウェブページを要求するクライアントとすることができ、他のネットワークポイントは、ウェブページをクライアントに提供するサーバとすることができる。第三者は、接続の2つのポイント間で第三者がネットワーク上にある場合は2地点間接続からのTCPトラフィックをインターセプトできるだけであり、かつ2つのパーティ間の接続での全てのパケットを能動的にビューすることができる。従って、第三者サービスによって行われるTCP接続の測定は、非常に困難であり実用的ではない。
【0018】
ウェブビーコン及び受動的モニタリング
実施形態では、ウェブビーコン及び受動的サーバモニタリングが、クライアントとクライアントにコンテンツを提供するデータセンター内のサーバの間の実際のTCP接続の接続品質を測定する。ウェブビーコンは、ピクセルタグ、クリアGIF、又はゼロ−コンテンツ画像としても公知であり、透過的又は不可視のグラフィック画像で、通常は、1x1ピクセルよりは大きくない。
【0019】
実施形態では、ウェブビーコンは、コード又はビーコンコードの少量をプロダクションウェブページに配置することによって生成される。クライアントは、データセンターにおけるウェブサーバからプロダクションウェブページを要求し、サービス提供を受ける。プロダクションウェブページがクライアントによって処理された時に、ビーコンコードは、クライアントブラウザに、あらゆる見込みデータセンターロケーションに位置するビーコンサーバから、ウェブビーコン又はゼロ−コンテンツ画像を検索させる。例えば、ウェブページを提供することができるアメリカの3つの異なるコロケーション又はデータセンター、すなわち、西海岸の1つのコロケーション、東海岸の別のコロケーション、及び中西部の別のコロケーションが存在する場合、ビーコンコードは、クライアントに、TCP接続によってコロケーションの各々に位置したビーコンサーバから、ウェブビーコン又はゼロ−コンテンツ画像を要求させる。要求は、クライアントの背景で行われ、それによってウェブサーバからの現在のプロダクションウェブページロードによる干渉はない。
【0020】
実施形態では、ビーコンサーバのカーネルモジュールにおける受動的モニタリングシステムが、クライアントとデータセンター間のTCP接続に対する統計値をウェブビーコン検索から測定してログする。例えば、ネットワーク待ち時間は、TCPハンドシェークシーケンス中にパケットの到着と出発のタイミングを取ることによって測定することができる。別の実施例として、パケット損失率は、接続によって要求されたTCP再送信の数を数えることによってTCP接続の寿命にわたって測定することができる。これらの2つの測定値、ネットワーク待ち時間及びパケット損失率は、特定のクライアントと特定のデータセンター間の接続の品質の優れた指示を提供する。TCP接続に関連付けられたあらゆる他の測定値も、受動的モニタリングシステムによって測定及び記録することができる。
【0021】
ウェブビーコンからのTCP接続の測定が、データセンターからクライアントへの実際のウェブトラフィックに基づくので、正確なTCP接続品質測定値が保証される。これらの測定値は、次に、データセンターにおける「最も近い」サーバをクライアントに接続するために、インテリジェントグローバルトラフィック経路指定の判断を引き続き実行するために使用される。
【0022】
実施形態によるウェブビーコン及び受動的モニタリングを示す図が、図1に示されている。図1では、クライアント100が、3つの異なるデータセンターに経路指定される。データセンター102は、ビーコンサーバ108及びウェブサーバ110を収容する。データセンター104は、ビーコンサーバ112及びウェブサーバ114を収容する。データセンター106は、ビーコンサーバ116及びウェブサーバ118を収容する。クライアント100は、サーバ110からウェブページを要求して受信する(送信120)。ウェブサーバ110によって提供されるウェブページは、クライアント100に、各データセンターに位置したウェブビーコンサーバからのウェブビーコンの検索を命じるビーコンコードを収容する。この結果、クライアント100は、要求122によってデータセンター102におけるビーコンサーバ108からウェブビーコンを、要求124によってデータセンター104におけるビーコンサーバ112からウェブビーコンを、更に要求126によってデータセンター106におけるビーコンサーバ116からウェブビーコンを要求する。TCP接続は、ウェブビーコンを検索するために、クライアント100と各ビーコンサーバ108、112、及び116との間で行われる。ウェブビーコンに対するこれらの要求の全ては、ウェブサーバ110によるページロードに干渉しないようにクライアントの背景で行われる。
【0023】
ビーコンサーバの各々における受動的モニタリングシステムは、クライアント100と各ビーコンサーバ108、112、及び116との間でウェブビーコンを検索するために行われたTCP接続に関する統計値を測定してログする。TCP接続の測定は、クライアント100と各ビーコンサーバに対応するデータセンターとの間の品質を判断するために使用される。ログされて記録された測定データは、実施毎に異なる。一部の実施形態では、測定データは、以下に限定されるものではないが、往復待ち時間データ及びパケット損失率データを含む。ウェブビーコンに対する各TCP接続に関する測定及び統計値は、各ビーコンサーバによって記憶される。
【0024】
他の方法を通じたTCP接続の測定
TCP接続の性能の測定は、様々な方法を使用して実行される。サーバに接続するためのクライアントのビーコン又は誘導作動が、接続の性能を測定するのに使用される。クライアントは、複数のビーコンサーバに接続するように誘導される。1つよりも多いビーコンサーバが使用され、それによって接続の複数の終点が測定される。更に、クライアントは、ビーコンサーバの無作為化された選択に基づく特定のビーコンサーバに接続するように誘導される。ビーコンサーバは、接続データ測定専門にされた専用サーバとすることができる。ビーコンサーバは、実際のトラフィックを提供するサーバとすることができる。以下に限定されるものではないが、FTP(ファイル転送プロトコル)、HTTP(ハイパーテキスト転送プロトコル)、又はIRC(インターネットリレーチャット)を含むTCPベースの接続プロトコルのあらゆるタイプを使用することもでき、ユーザが接続するロケーションにわたって制御のある一定のレベルを有するあらゆるアプリケーションを使用することもできる。
【0025】
実施形態では、アプリケーションは、クライアントのコンピュータに配置されている。アプリケーションが開始又は実行された時に、アプリケーションは、複数のビーコンサーバへの接続を試みる。別の実施形態では、DNS要求がレゾルバから行われる各イベントに対して、クライアントが複数のビーコンサーバに接続するための応答が送信される。ビーコンサーバの選択は、実施毎に異なる。一部の実施形態では、クライアントは、ランダム選択方法に基づいて特定のビーコンサーバに接続するように誘導される。ランダム選択が使用されるとしても、時間にわたって収集されるデータの量は、ランダム選択方法が、各クライアントにあらゆるデータセンターにおけるビーコンサーバに接続させる精度に近づくのに十分である。ビーコンサーバのいずれかへの接続時に、各ビーコンサーバにおける受動的モニタリングシステムは、クライアントからビーコンサーバに行われた接続に関する統計値を測定してログする。
【0026】
データの集約及び処理
実施形態では、データベースが、各データセンターに位置したウェブビーコンサーバから関係のあるクライアントIPアドレスと共にTCP測定値を収集する。データは、データベースサーバによって要求されるか、又はウェブビーコンサーバの各々によって定期的に送信される。データベースは、特定のデータセンターに、又は別の施設に遠隔に位置することができる。
【0027】
実施形態では、データベースサーバは、ビーコンサーバから受信したデータを個別のネットブロックのセットに標準化する。本明細書で使用されるネットブロックは、クライアントIPアドレスの範囲である。例えば、ネットブロック「1.1.1.0」は、IPアドレスが「1.1.1.x」で始まり、「x」は0と255の間のあらゆる値とすることができる全てのクライアントを示している。同じネットブロックにおけるクライアントは、データセンターまでの同じ経路を使用することができる。この結果、同じネットブロックにおけるクライアントに対するTCP接続測定値は、特定のクライアントから特定のデータセンターまでの経路に関するより完全な情報を提供するために集約することができる。最良サービス宛先を判断するために、各データセンターから各可能なネットブロックへの経路の接続性能が測定されて維持される。
【0028】
実施形態では、利用可能なサーバ又はデータセンターのリストが、各特定のネットブロックへの接続品質によって分類される。別の実施形態では、データベースサーバは、ビーコンサーバから受信したTCP統計値に基づいてデータを標準化する。この状況の下で、接続は、関係のあるIPアドレスとの接続品質に基づいて分類される。更に別の実施形態では、データベースは、測定データ及び対応するIPアドレスを収集し、データにおける更に別の処理は行わない。
【0029】
実施形態では、測定値ベースのデータは、データベースから、グローバルロードバランサとして作動する分散正式ネームサーバにエクスポートされる。測定値ベースのデータは、クライアント経路指定に関する適切な判断を実行するためにグローバルロードバランサに情報を提供する。一部の実施形態では、測定値ベースのデータは、クライアント経路指定を判断するためにグローバルロードバランサによってのみ使用される。別の実施形態では、測定値ベースのデータは、経路指定の判断を実行するためにグローバルロードバランサによって考察される付加的なデータである。
【0030】
実施形態によるビーコンサーバからTCP統計値を収集する集中化データベースを示す図が、図2に示されている。図2では、図1からの3つのデータセンターからのビーコンサーバ(データセンター102からのビーコンサーバ108、データセンター104からのビーコンサーバ112、及びデータセンター106からのビーコンサーバ116)が、データを集中化データベース200に送信する。集中化データベース200は、様々な基準に基づいてデータを集約して分類する。処理されたデータは、次に、GLB202、GLB204、GLB206、及びGLB208に送信される。別の実施形態では、処理されたデータは、集中化サーバ200から他の消費者210に送信される。他の消費者は、データセンターに格納することができるウェブサーバ以外のアプリケーションを含む。例えば、「インターネット」会社は、クライアントがアプリケーションに直接接続することを可能にする別の音楽又はメディアアプリケーションを有することができる。これらのアプリケーションは、ビーコンサーバと同じデータセンターに関わっているので、集中化サーバによって集められたTCPデータは、同様にこれらの他のアプリケーションに効率的にトラフィックを経路指定するために使用することができる。
【0031】
測定値ベースのデータを使用するグローバルロードバランサ
グローバルロードバランサがどのように測定値ベースのデータを使用するかの実施例が以下に続く。グローバルロードバランシングは、クライアントが特定のウェブページの訪問を要求した場合に実行される。クライアントによって入力されたウェブサイトURL(例えば、「www.sampledomain.com」)をIPアドレス(例えば、「1.2.3.4」)に翻訳するためにDNSルックアップが実行される。ルックアップは、正式ネームサーバ(グローバルロードバランサでもある)に誘導される。グローバルロードバランサは、要求側IPアドレスを調べる。要求側IPアドレスは、次に、分類された測定値ベースのデータから、その特定のネットブロックに対する情報、又はIPアドレスの範囲と比較される。グローバルロードバランサは、ネットワーク待ち時間及びパケット損失のような様々なTCP統計値によって分類されたリストにおける第1の利用可能なウェブサーバを選択し、ウェブサーバのIPアドレスをクライアントに戻す。クライアントは、従って、最良の利用可能なTCP接続性を備えたウェブサーバに経路指定される。
【0032】
本発明の実施形態によるネットブロックによって分類された処理データの図が図3に示されている。データは、「クライアント」列300、「コロケーションA」列302、「コロケーションB」列304、及び「コロケーションC」列306を有する。「クライアント」列300は、コロケーションの各々が接続するクライアントのIPアドレスを列挙する。一部の実施形態では、クライアントは、ネットブロックに列挙される。行308では、ネットブロック「1.1.1.0/24」は、xを0−255の間のあらゆる値とすることができる場合にIPアドレス「1.1.1.x」のクライアントを有する24のサブネットマスクを示している。クライアントがこのネットブロックからコロケーションへの接続を望む場合、コロケーションAに接続するために、10ミリ秒を必要とし、コロケーションBに接続するために、50ミリ秒を必要とし、コロケーションCに接続するために、80ミリ秒を必要とする。従って、ネットブロック「1.1.1.0」からのクライアントは、コロケーションAに最も近いことになる。
【0033】
行310では、ネットブロック「2.2.2.0/26」は、xを0−63の間のあらゆる数字とすることができる場合にIPアドレス「2.2.2.x」のクライアントを有する26のサブネットマスクを示している。クライアントがこのネットブロックからコロケーションへの接続を望む場合、コロケーションAに接続するために、100ミリ秒を必要とし、コロケーションBに接続するために、40ミリ秒を必要とし、コロケーションCに接続するために、5ミリ秒を必要とする。従って、ネットブロック「2.2.2.0」からのクライアントは、コロケーションCに最も近いことになる。
【0034】
行312では、ネットブロック「3.3.3.0/24」は、xを0−255の間のあらゆる数とすることができる場合にIPアドレス「3.3.3.x」のクライアントを有する24のサブネットマスクを示している。クライアントがこのネットブロックからコロケーションへの接続を望む場合、コロケーションAに接続するために、300ミリ秒を必要とし、コロケーションBに接続するために、1ミリ秒を必要とし、コロケーションCに接続するために、500ミリ秒を必要とする。従って、ネットブロック「3.3.3.0」からのクライアントは、コロケーションBに最も近いことになる。
【0035】
閉回路フィードバック
実施形態では、「インターネット」トポロジー及び性能の変化に動的に対応することができる閉回路フィードバックループが生成される。上述のように、グローバルロードバランサは、ウェブコンテンツをフェッチするために、クライアントを特定のウェブサーバに経路指定する。グローバルロードバランサは、検索側ウェブビーコンからのTCP接続の測定値に基づいて経路指定を判断する。
【0036】
クライアントがサーバからウェブページコンテンツを受信した時に、ウェブページコンテンツは、もう一度各データセンターからウェブビーコンを検索するようにクライアントに指示するビーコンコードを収容する。ウェブビーコンTCP接続からより多くの測定値及び統計値を連続的に取得することにより、接続品質測定システムは、ネットワーク利用可能度に影響を与える状況に対して即座に自己修正することができる。これらの状況は、以下に限定されるものではないが、ファイバーカット、機器問題、サーバフェイルオーバー、又は容量問題を含む。
【0037】
ハードウエアの概要
図4は、本発明の実施形態を実施することができるコンピュータシステム400を示すブロック図である。コンピュータシステム400は、情報を伝達するためのバス402又は他の通信機構、及び情報を処理するためのバス402に連結されたプロセッサ404を含む。コンピュータシステム400は、プロセッサ404によって実行される情報及び命令を記憶するためにバス402に連結されたランダムアクセスメモリ(RAM)又は他の動的記憶デバイスのようなメインメモリ406を含む。メインメモリ406は、プロセッサ404によって実行される命令の実行中に一時的な変数又は他の中間情報を記憶するために使用することができる。コンピュータシステム400は、プロセッサ404のための静的情報及び命令を記憶するためのバス402に連結された読取専用メモリ(ROM)408又は他の静的記憶デバイスを更に含む。磁気ディスク又は光ディスクのような記憶デバイス410は、情報及び命令を記憶するために提供され、バス402に連結される。
【0038】
コンピュータシステム400は、情報をコンピュータユーザに表示するためのブラウン管(CRT)のようなディスプレイ412にバス402を通じて連結することができる。英数字及び他のキーを含む入力デバイス414は、情報及び指令選択をプロセッサ404に伝達するためにバス402に連結される。ユーザ入力デバイスの別のタイプは、マウス、トラックボール、又は方向情報及び指令選択をプロセッサ404に伝達しディスプレイ412上のカーソルの動きを制御するためのカーソル方向キーのようなカーソル制御416である。この入力デバイスは、一般的に、2つの軸、すなわち、第1軸(例えば、x)と第2軸(例えば、y)における2つの自由度を有し、それによってデバイスは、平面における位置を指示することができる。
【0039】
本発明は、本明細書に説明する技術を実施するためのコンピュータシステム400の使用に関する。本発明の一実施形態によると、これらの技術は、メインメモリ406に収容された1つ又はそれよりも多くの命令の1つ又はそれよりも多くのシーケンスを実行するプロセッサ404に応答して、コンピュータシステム400によって実行される。このような命令は、記憶デバイス410のような別の機械可読媒体からメインメモリ406に読み込まれる。メインメモリ406に収容された命令のシーケンスの実行は、プロセッサ404に本明細書に説明する処理段階を実行させる。他の実施形態では、本発明を実施するために、ソフトウエア命令の代わりに又はこれと組み合わせて、ハードワイヤド回路を使用することができる。従って、本発明の実施形態は、ハードウエア回路及びソフトウエアのあらゆる特定の組合せに制限されることはない。
【0040】
本明細書で使用される「機械可読媒体」という語は、特定の方式で機械にオペレーションを実行させるデータを提供することに関わるあらゆる媒体を指す。コンピュータシステム400を使用して実施される実施形態では、様々な機械可読媒体が、例えば、実行のためにプロセッサ404に命令を提供することに関わる。このような媒体は、以下に限定されるものではないが、記憶媒体及び送信媒体を含む多くの形式を取ることができる。記憶媒体は、不揮発性媒体と揮発性媒体の両方を含む。不揮発性媒体は、例えば、記憶デバイス410のような光又は磁気ディスクを含む。揮発性媒体は、メインメモリ406のような動的メモリを含む。送信媒体は、バス402を含むワイヤを含む同軸ケーブル、銅線、及び光ファイバを含む。送信媒体は、電波及び赤外線データ通信の間に生成されるような音響又は光波の形式を取ることができる。全てのこのような媒体は、媒体によって担持される命令が、命令を機械に読み取る物理的機構によって検出することができるように有形のものでなくてはならない。
【0041】
機械可読媒体の一般的な形式は、例えば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、又はあらゆる他の磁気媒体、CD−ROM、あらゆる他の光媒体、パンチカード、紙テープ、ホールのパターンを備えたあらゆる他の物理的媒体、RAM、PROM、及びEPROM、FLASH−EPROM、あらゆる他のメモリチップ又はカートリッジ、以下に説明するような搬送波、又はコンピュータが読むことのできるあらゆる他の媒体を含む。
【0042】
機械可読媒体の様々な形式は、実行のためにプロセッサ404に1つ又はそれよりも多くの命令の1つ又はそれよりも多くのシーケンスを担持することに携わる。例えば、命令は、リモートコンピュータの磁気ディスク上で最初は担持される。リモートコンピュータは、その動的メモリに命令をロードし、モデムを使用する電話回線を通じて命令を送信することができる。コンピュータシステム400に対してローカルのモデムは、電話回線でデータを受信し、データを赤外線信号に変換するために赤外線送信機を使用することができる。赤外線検出器は、赤外線信号に担持されるデータを受信することができ、適切な回路が、データをバス402に配置することができる。バス402は、データをメインメモリ406に担持し、メインメモリ406から、プロセッサ404は、命令を検索し実行する。メインメモリ406によって受信した命令は、プロセッサ404による実行の前又は後のいずれかに記憶デバイス410に任意的に記憶される。
【0043】
コンピュータシステム400は、バス402に連結された通信インタフェース418を含む。通信インタフェース418は、ローカルネットワーク422に接続されているネットワークリンク420に連結する2方向データ通信を提供する。例えば、通信インタフェース418は、統合デジタル通信サービス網(ISDN)カード又はモデムとすることができ、データ通信接続を電話回線の対応するタイプに提供する。別の実施例として、通信インタフェース418は、データ通信接続をコンパチブルLANに提供するためのローカルエリアネットワーク(LAN)カードとすることができる。無線リンクも達成することができる。あらゆるこのような実施でも、通信インタフェース418は、情報の様々なタイプを表すデジタルデータストリームを担持する電気、電磁又は光信号を送信及び受信する。
【0044】
ネットワークリンク420は、一般的に、データ通信を1つ又はそれよりも多くのネットワーク上で他のデータデバイスに提供する。例えば、ネットワークリンク420は、ローカルネットワーク422を通じたホストコンピュータ424への又は「インターネットサービスプロバイダ(ISP)」426によって作動されるデータ装置への接続を提供することができる。ISP426は、今日では、一般的に「インターネット」428と呼ばれるワールドワイドパケットデータ通信ネットワーク上でデータ通信サービスを提供する。ローカルネットワーク422と「インターネット」428は両方とも、デジタルデータストリームを担持する電気、電磁、又は光信号を使用する。デジタルデータをコンピュータシステム400に担持し、コンピュータシステム400からデジタルデータを担持する様々なネットワーク上の信号及びネットワークリンク420上の通信インタフェース418を通じた信号は、情報を担持する搬送波の例示的な形式である。
【0045】
コンピュータシステム400は、ネットワーク、ネットワークリンク420、及び通信インタフェース418を通じて、プログラムコードを含むメッセージを送信し、プログラムコードを含むデータを受信することができる。「インターネット」の実施例では、サーバ430は、「インターネット」428、ISP426、ローカルネットワーク422、及び通信インタフェース418を通じて、アプリケーションプログラムのための要求されたコードを送信することができる。
【0046】
受信したコードは、記憶デバイス410又は後の実行のための他の不揮発性記憶装置で受信及び/又は記憶された時にプロセッサ404によって実行することができる。従って、コンピュータシステム400は、搬送波の形式でアプリケーションコードを取得することができる。
【0047】
上述の明細書では、本発明の実施形態は、実施毎に異なる多数の特定の詳細に関して説明している。従って、本発明であること及び本発明であると出願人によって意図されるものを唯一かつ排他的に示すものは、あらゆるその後の訂正を含む特許請求の範囲がもたらす特定の形式において本出願からもたらされる特許請求の範囲のセットである。これらの特許請求の範囲に関わっている用語に対して本明細書に明確に示されているいずれの定義も、特許請求の範囲で使用されるこれらの用語の意味を規定するものとする。従って、特許請求の範囲に明確に記載されていない制限、要素、特性、特徴、利点、又は属性は、あらゆる点でこれらの特許請求の範囲を制限するものではない。明細書及び図面は、従って、制限的な意味ではなく例証的な意味と見なすものとする。
【符号の説明】
【0048】
102、104、106 データセンター
108、112、116 ビーコンサーバ
200 集中化データベース

【特許請求の範囲】
【請求項1】
複数のデータセンターからクライアントへの接続品質を測定する方法であって、
複数のクライアントの各クライアントに対して、複数のデータセンターの各データセンターからの(a)該データセンターと(b)該各クライアント間の接続品質の測定値を含む接続品質測定値を受信する段階と、
前記複数のクライアントに対する前記接続品質測定値の受信時に、該接続品質測定値と該クライアントのIPアドレスとに基づいて測定値ベースのデータを発生させる段階と、
メッセージを前記複数のデータセンターに経路指定する方法を判断する際に、ロードバランシングサーバに対して、該ロードバランシングサーバによって使用するための前記測定値ベースのデータを出力する段階と、
を含むことを特徴とする方法。
【請求項2】
接続品質の測定値が、前記クライアントから複数のビーコンサーバへのTCP接続に基づいており、
前記複数のビーコンサーバの各々は、前記複数のデータセンターの1つに対応する、
ことを特徴とする請求項1に記載の方法。
【請求項3】
前記TCP接続は、前記複数のクライアントの各々に提供されるウェブビーコンコードの結果であることを特徴とする請求項2に記載の方法。
【請求項4】
前記測定値ベースのデータは、群に編成され、各群に対して、前記クライアントのIPアドレスが、IPアドレスの特定の範囲にあることを特徴とする請求項1に記載の方法。
【請求項5】
測定値ベースのデータ群が、IPアドレスの前記特定の範囲への接続品質によって分類されたデータセンターを含むことを特徴とする請求項4に記載の方法。
【請求項6】
接続品質の測定値が、ネットワーク待ち時間を含むことを特徴とする請求項1に記載の方法。
【請求項7】
接続品質の測定値が、パケット損失率を含むことを特徴とする請求項1に記載の方法。
【請求項8】
前記TCP接続は、前記複数のデータセンターの1つに対応する該複数のデータセンターの各々からゼロコンテンツ画像を検索するクライアントからのものであることを特徴とする請求項2に記載の方法。
【請求項9】
(a)複数のデータセンターの特定のデータセンターと(b)前記複数のクライアントの各々との間の接続品質の測定値に基づく接続品質測定値と複数のクライアントのIPアドレスとを含む測定値ベースのデータをサーバからコンピュータ可読記憶媒体内に記憶する段階と、
前記測定値ベースのデータに基づいて前記複数のデータセンターにメッセージを経路指定する方法を判断する段階と、
を含むことを特徴とする方法。
【請求項10】
複数のデータセンターからクライアントへの接続品質を測定する方法であって、
複数のクライアントから要求を受信する段階と、
前記要求に基づいて接続品質の測定値を記憶する段階と、
前記接続品質の測定値を該接続品質測定値と前記複数のクライアントのIPアドレスとに基づいて測定値ベースのデータを発生させる集約サーバに出力する段階と、
を含むことを特徴とする方法。
【請求項11】
複数のサーバのうちの各特定のサーバが複数のデータセンターのうちの特定のデータセンターに位置し、かつ複数のクライアントのうちの各クライアントに対して、該複数のデータセンターの各データセンターからの(a)該データセンターと(b)該各クライアントとの間の接続品質の測定値を含む接続品質測定値を測定する第1の複数のサーバと、
前記第1の複数のサーバから接続品質測定値を受信し、該接続品質測定値と前記クライアントのIPアドレスとに基づいて測定値ベースのデータを発生させる集約サーバと、
前記集約サーバから前記測定値ベースのデータを受信して、前記複数のデータセンターにメッセージを経路指定する方法を判断する第2の複数のサーバと、
を含むことを特徴とするシステム。
【請求項12】
命令の1つ又はそれよりも多くのシーケンスを担持するコンピュータ可読記憶媒体であって、
前記命令の1つ又はそれよりも多くのシーケンスは、1つ又はそれよりも多くのプロセッサによって実行された時に該1つ又はそれよりも多くのプロセッサをして、
複数のクライアントの各クライアントに対して、複数のデータセンターの各データセンターからの(a)該データセンターと(b)該各クライアント間の接続品質の測定値を含む接続品質測定値を受信させ、
前記複数のクライアントに対する前記接続品質測定値の受信時に、該接続品質測定値と該クライアントのIPアドレスとに基づいて測定値ベースのデータを発生させ、
メッセージを前記複数のデータセンターに経路指定する方法を判断する際に、ロードバランシングサーバに対して、該ロードバランシングサーバによって使用するための前記測定値ベースのデータを出力させる、
ことを特徴とする媒体。
【請求項13】
接続品質の測定値が、前記クライアントから複数のビーコンサーバへのTCP接続に基づいており、
前記複数のビーコンサーバの各々は、前記複数のデータセンターの1つに対応する、
ことを特徴とする請求項12に記載のコンピュータ可読記憶媒体。
【請求項14】
前記TCP接続は、前記複数のクライアントの各々に提供されるウェブビーコンコードの結果であることを特徴とする請求項13に記載のコンピュータ可読記憶媒体。
【請求項15】
前記測定値ベースのデータは、群に編成され、前記クライアントのIPアドレスが、IPアドレスの特定の範囲にあることを特徴とする請求項12に記載のコンピュータ可読記憶媒体。
【請求項16】
測定値ベースのデータ群が、IPアドレスの前記特定の範囲への接続品質によって分類されたデータセンターを含むことを特徴とする請求項15に記載のコンピュータ可読記憶媒体。
【請求項17】
接続品質の測定値が、ネットワーク待ち時間を含むことを特徴とする請求項12に記載のコンピュータ可読記憶媒体。
【請求項18】
接続品質の測定値が、パケット損失率を含むことを特徴とする請求項12に記載のコンピュータ可読記憶媒体。
【請求項19】
前記TCP接続は、前記複数のデータセンターの1つに対応する該複数のデータセンターの各々からゼロコンテンツ画像を検索するクライアントからのものであることを特徴とする請求項13に記載のコンピュータ可読記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公表番号】特表2011−508524(P2011−508524A)
【公表日】平成23年3月10日(2011.3.10)
【国際特許分類】
【出願番号】特願2010−539661(P2010−539661)
【出願日】平成20年12月12日(2008.12.12)
【国際出願番号】PCT/US2008/086700
【国際公開番号】WO2009/085669
【国際公開日】平成21年7月9日(2009.7.9)
【出願人】(501438485)ヤフー! インコーポレイテッド (200)
【Fターム(参考)】