(57)【要約】  ＴＣＰ接続、特に、ＴＣＰ接続の接続品質を判断する技術を提供する。本発明は、クライアントと複数のデータセンター間のＴＣＰ接続品質を測定するための技術を説明する。ウェブビーコンと呼ばれる少量のコードが、プロダクションウェブページに配置される。クライアントがプロダクションウェブページを要求した時に、ウェブページがクライアントに提供される。ウェブページコードが処理された時に、ウェブビーコンは、背景でＴＣＰ接続を通じて複数のデータセンターからゼロコンテンツ画像を検索するようにクライアントに指示する。各接続が行われた時に、受動的モニタリングシステムが、クライアントからデータセンターへの各ＴＣＰ接続に関する統計値を測定してログする。統計値は、データベースに集約され、クライアントのＩＰアドレスの範囲及び接続品質測定値に基づいて分類される。データは、次のクライアントから複数のデータセンターへの経路指定を判断するために、データベースからグローバルロードバランサにエクスポートされる。【選択図】      図２
2011508524.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータセンターからクライアントへの接続品質を測定する方法であって、
複数のクライアントの各クライアントに対して、複数のデータセンターの各データセンターからの（ａ）該データセンターと（ｂ）該各クライアント間の接続品質の測定値を含む接続品質測定値を受信する段階と、
前記複数のクライアントに対する前記接続品質測定値の受信時に、該接続品質測定値と該クライアントのＩＰアドレスとに基づいて測定値ベースのデータを発生させる段階と、
メッセージを前記複数のデータセンターに経路指定する方法を判断する際に、ロードバランシングサーバに対して、該ロードバランシングサーバによって使用するための前記測定値ベースのデータを出力する段階と、
を含むことを特徴とする方法。
【請求項２】
接続品質の測定値が、前記クライアントから複数のビーコンサーバへのＴＣＰ接続に基づいており、
前記複数のビーコンサーバの各々は、前記複数のデータセンターの１つに対応する、
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記ＴＣＰ接続は、前記複数のクライアントの各々に提供されるウェブビーコンコードの結果であることを特徴とする請求項２に記載の方法。
【請求項４】
前記測定値ベースのデータは、群に編成され、各群に対して、前記クライアントのＩＰアドレスが、ＩＰアドレスの特定の範囲にあることを特徴とする請求項１に記載の方法。
【請求項５】
測定値ベースのデータ群が、ＩＰアドレスの前記特定の範囲への接続品質によって分類されたデータセンターを含むことを特徴とする請求項４に記載の方法。
【請求項６】
接続品質の測定値が、ネットワーク待ち時間を含むことを特徴とする請求項１に記載の方法。
【請求項７】
接続品質の測定値が、パケット損失率を含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記ＴＣＰ接続は、前記複数のデータセンターの１つに対応する該複数のデータセンターの各々からゼロコンテンツ画像を検索するクライアントからのものであることを特徴とする請求項２に記載の方法。
【請求項９】
（ａ）複数のデータセンターの特定のデータセンターと（ｂ）前記複数のクライアントの各々との間の接続品質の測定値に基づく接続品質測定値と複数のクライアントのＩＰアドレスとを含む測定値ベースのデータをサーバからコンピュータ可読記憶媒体内に記憶する段階と、
前記測定値ベースのデータに基づいて前記複数のデータセンターにメッセージを経路指定する方法を判断する段階と、
を含むことを特徴とする方法。
【請求項１０】
複数のデータセンターからクライアントへの接続品質を測定する方法であって、
複数のクライアントから要求を受信する段階と、
前記要求に基づいて接続品質の測定値を記憶する段階と、
前記接続品質の測定値を該接続品質測定値と前記複数のクライアントのＩＰアドレスとに基づいて測定値ベースのデータを発生させる集約サーバに出力する段階と、
を含むことを特徴とする方法。
【請求項１１】
複数のサーバのうちの各特定のサーバが複数のデータセンターのうちの特定のデータセンターに位置し、かつ複数のクライアントのうちの各クライアントに対して、該複数のデータセンターの各データセンターからの（ａ）該データセンターと（ｂ）該各クライアントとの間の接続品質の測定値を含む接続品質測定値を測定する第１の複数のサーバと、
前記第１の複数のサーバから接続品質測定値を受信し、該接続品質測定値と前記クライアントのＩＰアドレスとに基づいて測定値ベースのデータを発生させる集約サーバと、
前記集約サーバから前記測定値ベースのデータを受信して、前記複数のデータセンターにメッセージを経路指定する方法を判断する第２の複数のサーバと、
を含むことを特徴とするシステム。
【請求項１２】
命令の１つ又はそれよりも多くのシーケンスを担持するコンピュータ可読記憶媒体であって、
前記命令の１つ又はそれよりも多くのシーケンスは、１つ又はそれよりも多くのプロセッサによって実行された時に該１つ又はそれよりも多くのプロセッサをして、
複数のクライアントの各クライアントに対して、複数のデータセンターの各データセンターからの（ａ）該データセンターと（ｂ）該各クライアント間の接続品質の測定値を含む接続品質測定値を受信させ、
前記複数のクライアントに対する前記接続品質測定値の受信時に、該接続品質測定値と該クライアントのＩＰアドレスとに基づいて測定値ベースのデータを発生させ、
メッセージを前記複数のデータセンターに経路指定する方法を判断する際に、ロードバランシングサーバに対して、該ロードバランシングサーバによって使用するための前記測定値ベースのデータを出力させる、
ことを特徴とする媒体。
【請求項１３】
接続品質の測定値が、前記クライアントから複数のビーコンサーバへのＴＣＰ接続に基づいており、
前記複数のビーコンサーバの各々は、前記複数のデータセンターの１つに対応する、
ことを特徴とする請求項１２に記載のコンピュータ可読記憶媒体。
【請求項１４】
前記ＴＣＰ接続は、前記複数のクライアントの各々に提供されるウェブビーコンコードの結果であることを特徴とする請求項１３に記載のコンピュータ可読記憶媒体。
【請求項１５】
前記測定値ベースのデータは、群に編成され、前記クライアントのＩＰアドレスが、ＩＰアドレスの特定の範囲にあることを特徴とする請求項１２に記載のコンピュータ可読記憶媒体。
【請求項１６】
測定値ベースのデータ群が、ＩＰアドレスの前記特定の範囲への接続品質によって分類されたデータセンターを含むことを特徴とする請求項１５に記載のコンピュータ可読記憶媒体。
【請求項１７】
接続品質の測定値が、ネットワーク待ち時間を含むことを特徴とする請求項１２に記載のコンピュータ可読記憶媒体。
【請求項１８】
接続品質の測定値が、パケット損失率を含むことを特徴とする請求項１２に記載のコンピュータ可読記憶媒体。
【請求項１９】
前記ＴＣＰ接続は、前記複数のデータセンターの１つに対応する該複数のデータセンターの各々からゼロコンテンツ画像を検索するクライアントからのものであることを特徴とする請求項１３に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＴＣＰ接続に関し、より具体的に、ＴＣＰ接続の接続品質を判断することに関する。
【背景技術】
【０００２】
この節に説明する手法は、推進することができると考えられる手法であるが、必ずしも以前に考えられた又は推進された手法とは限らない。従って、特に示さない限り、この節に説明する手法のいずれも、単にこの節に含むという理由で従来技術として認められると仮定してはならない。
【０００３】
本明細書で使用される場合、「データセンター」という用語は、関連のサーバのコロケーションを指す。特定のデータセンターに属するサーバは、同じ建物又は総合ビル内にあるが、データセンターは、典型的には、互いから地理的に離れたところに位置する。自然災害によって引き起こされた一方のデータセンターでの壊滅的故障が他方のデータセンターでの故障も引き起こさないように、地理的な距離は、防御を追加するものである。例えば、１つのデータセンターは、ニューヨークの東海岸に位置することができ、別のデータセンターは、サンフランシスコの西海岸に位置することができるであろう。
【０００４】
グローバルロードバランシング又は「ＧＬＢ」は、複数のサーバにわたって特定のサービスへのクライアントアクセスを分散するための機構である。例えば、特定のサービスが、ニューヨークとサンフランシスコのデータセンターに属するサーバによって提供される状況では、ＧＬＢは、ニューヨークのデータセンターに接続されるクライアントの数が、サンフランシスコのデータセンターに接続されるクライアントの数とほぼ同じになるように、クライアントアクセスを分散させることができる。
【０００５】
「インターネット」の関連において使用される場合、ＧＬＢは、「インターネット」の複雑なマップを生成するために様々な能動的及び受動的モニタリング技術を使用することができる。このマップに基づいて、ＧＬＢは、クライアントを「最も近い」サーバに接続するためのトラフィック経路指定の判断を実行する。本明細書で使用される「近い」は、必ずしも地理的なプロキシミティだけに判断が基づくことを意味しない。本明細書で使用される「近い」サーバは、クライアントへの最も速い接続をもたらすサーバである。従って、１００マイル離れたところに位置したサーバが、重たい輻輳のために２００マイル離れたところにあるサーバよりもクライアントが到達することが遅い時に、ＧＬＢは、２００マイル離れたところにある「より近い」サーバにクライアントを経路指定することになる。
【０００６】
多くの能動的及び受動的モニタリング機構は、ＧＬＢのための「インターネット」プロキシミティのグローバルマップを構築する。これらの機構によって使用されるプロトコルは、以下に限定されるものではないが、ＩＣＭＰ（ｐｉｎｇ）、ＢＧＰ（ボーダーゲートウェイプロトコル）、及びマニュアルエントリを含むことができる。「インターネットコントロールメッセージプロトコル（ＩＣＭＰ）」は、「インターネット」のコアプロトコルの１つである。１つの重要なＩＣＭＰアプリケーションは、ｐｉｎｇツールである。ｐｉｎｇツールは、ホストが到達可能か否か、及びパケットがホストとの間を移動するのにかかる時間の長さを判断するために、ＩＣＭＰエコー要求及び応答メッセージを送信及び受信する。「ボーダーゲートウェイプロトコル（ＢＧＰ）」は、「インターネット」のコア経路指定プロトコルである。ＢＧＰは、自律システム（ＡＳ）間のネットワーク到達可能性を指示するＩＰネットワークのテーブルを維持することによって機能する。ＢＧＰは、経路、ネットワークポリシー、及び規則セットに基づいて、経路指定の判断を実行する。残念ながら、これらの機構及びプロトコルは、ＴＣＰプロトコルを用いるウェブ接続の実際の性能をモニタすることができず、従って、ＴＣＰ接続に対する正確な経路指定の判断を実行することができない。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
トポロジー及び接続性における動的変更のために、ＧＬＢシステムは、「インターネット」の完全で正確なマップを維持することに困難を有する場合がある。マップにおける不正確性は、間違った経路指定の判断に至る場合がある。マッピングプロトコルがそれに基づいて用いられるこれらの経路指定の判断を訂正するために、かなりの時間が必要になることがある。
【０００８】
本発明は、同じ参照番号が類似の要素を示す添付の図面の図に制限ではなく一例として示されている。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態により異なるデータセンターに位置するウェブビーコンに接続しているクライアントを示す図である。
【図２】本発明の実施形態によるウェブビーコンから集約されるデータ及びＧＬＢサーバに分散される処理データを示す図である。
【図３】本発明の実施形態によるネットブロック毎にグループ分けされた処理データを示す図である。
【図４】本発明の実施形態を実施することができるコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【００１０】
実際のＴＣＰ接続の接続品質を測定し、次のトラフィック経路指定の判断に測定情報を使用するための技術を説明する。以下の説明では、解説の目的のために、本発明の完全な理解を提供するための多数の特定の詳細が示されている。しかし、本発明が、これらの特定の詳細なしに実施することができることは明らかであろう。他の場合、公知の構造及びデバイスは、本発明を不要に曖昧にしないためにブロック図形式で示されている。
【００１１】
全体の概要
「伝送制御プロトコル（ＴＣＰ）」は、ネットワークされたホストにおけるアプリケーションに別のホストへの接続を作成させることのできる「インターネット」プロトコルである。例えば、ウェブページを要求しているクライアントは、一方のホストを表すことができ、クライアントにウェブページコンテンツを提供しているサーバは、他方のホストを表すことができる。
【００１２】
ＴＣＰプロトコルは、ホスト間の接続に関する多くの特性を有する。ＴＣＰは、送信者から受信者へのデータの信頼できる順序正しい配信を保証する。順序正しい配信を達成するために、ＴＣＰは、失われたパケットを再送信する段階及び送信された複製パケットを廃棄する段階を提供する。ＴＣＰは、同じホストで実行される同時アプリケーション（例えば、ウェブサーバと電子メールサーバ）による複数の接続に対してデータを区別することができる。
【００１３】
ＴＣＰ接続を開始するために、２つのホストは、初期シーケンス番号を交換する。初期シーケンス番号は、各ホストから送信されたバイトの順番を識別し、それによって転送されたデータは、送信中に起こる場合があるあらゆる断片化又は無秩序化にも関わらず順序正しいままである。送信された全バイトに対して、シーケンス番号が増分される。
【００１４】
送信された各バイトは、送信者毎にシーケンス番号を割り当てられ、次に、受信者は、送信を確認するために肯定応答を送信者に戻す。例えば、コンピュータＡ（送信者）が５０のシーケンス番号を備えた４バイト（割り当てられた５０、５１、５２、及び５３のシーケンス番号を有するパケットにおける４バイト）を送信した時に、コンピュータＢ（受信者）は、コンピュータＢが受信すると予想する次のバイトを指示するために５４の肯定応答をコンピュータＡに戻すことになる。５４の肯定応答を送信することにより、コンピュータＢは、バイト５０、５１、５２、及び５３が正しく受信したことを信号で伝える。確実にいけば、バイト５０及び５１が完全に受信したので、最後の２バイトは破損し、次に、コンピュータＢは、５２の肯定応答値を送信する。コンピュータＡは、シーケンス番号５２から始まるデータをコンピュータＢに再送信する。
【００１５】
ＴＣＰは、輻輳制御を実行することができる。例えば、ＴＣＰは、ネットワークに入るデータの速度を調節することができ、ネットワーク輻輳問題を起こす速度より下にデータフローを保つ。送信データに対する受信した肯定応答、又は受信肯定応答の欠落は、送信者と受信者間のネットワーク状態を解釈するために送信者によって測定される。ＴＣＰ送信者及び受信者は、次に、良好なトラフィックフローを保証するために、遭遇するネットワーク状態に従ってデータフローの速度を変えることができる。
【００１６】
残念ながら、接続品質の正確な測定を保証するために実際のＴＣＰ接続を測定する段階は、第三者又は非ＴＣＰプロトコルによって実行されない。例えば、実際のＴＣＰ接続測定に対する代替としてＩＣＭＰのような非ＴＣＰプロトコルを使用すると、不正確な結果に至る場合がある。１つの理由は、ＩＣＭＰトラフィックがＴＣＰよりも低いサービスの品質（ＱｏＳ）を有することが多いからである。ＱｏＳは、「インターネット」におけるトラフィックに与えられる優先度である。ＱｏＳは、アプリケーションからの要求に従ってデータフローへの性能のある一定のレベルを保証することにより、異なるデータフローに異なる優先度を提供する。ＩＣＭＰによって使用されるｐｉｎｇトラフィックのＱｏＳは、ｐｉｎｇｉｎｇがｐｉｎｇの宛先に常に到達するとは保証されないので、ＴＣＰよりも低い優先度が与えられる。対照的に、ＴＣＰは、全てのトラフィックが特定の宛先に到達することを保証する。この結果、一部の測定は、通常よりも大きなパケットドロップ率及び長い待ち行列時間のような低ＱｏＳによって影響される場合がある。従って、ＩＣＭＰに基づくＴＣＰ接続のための経路指定の判断は、不正確になるであろう。
【００１７】
ＴＣＰが２地点間プロトコルであるので、第三者サービスは、ＴＣＰ接続品質を測定するのに困難を有する。２地点間プロトコルでは、トラフィックは、１つのネットワークポイントから別のネットワークポイントに経路指定される。例えば、１つのネットワークポイントは、ウェブページを要求するクライアントとすることができ、他のネットワークポイントは、ウェブページをクライアントに提供するサーバとすることができる。第三者は、接続の２つのポイント間で第三者がネットワーク上にある場合は２地点間接続からのＴＣＰトラフィックをインターセプトできるだけであり、かつ２つのパーティ間の接続での全てのパケットを能動的にビューすることができる。従って、第三者サービスによって行われるＴＣＰ接続の測定は、非常に困難であり実用的ではない。
【００１８】
ウェブビーコン及び受動的モニタリング
実施形態では、ウェブビーコン及び受動的サーバモニタリングが、クライアントとクライアントにコンテンツを提供するデータセンター内のサーバの間の実際のＴＣＰ接続の接続品質を測定する。ウェブビーコンは、ピクセルタグ、クリアＧＩＦ、又はゼロ−コンテンツ画像としても公知であり、透過的又は不可視のグラフィック画像で、通常は、１ｘ１ピクセルよりは大きくない。
【００１９】
実施形態では、ウェブビーコンは、コード又はビーコンコードの少量をプロダクションウェブページに配置することによって生成される。クライアントは、データセンターにおけるウェブサーバからプロダクションウェブページを要求し、サービス提供を受ける。プロダクションウェブページがクライアントによって処理された時に、ビーコンコードは、クライアントブラウザに、あらゆる見込みデータセンターロケーションに位置するビーコンサーバから、ウェブビーコン又はゼロ−コンテンツ画像を検索させる。例えば、ウェブページを提供することができるアメリカの３つの異なるコロケーション又はデータセンター、すなわち、西海岸の１つのコロケーション、東海岸の別のコロケーション、及び中西部の別のコロケーションが存在する場合、ビーコンコードは、クライアントに、ＴＣＰ接続によってコロケーションの各々に位置したビーコンサーバから、ウェブビーコン又はゼロ−コンテンツ画像を要求させる。要求は、クライアントの背景で行われ、それによってウェブサーバからの現在のプロダクションウェブページロードによる干渉はない。
【００２０】
実施形態では、ビーコンサーバのカーネルモジュールにおける受動的モニタリングシステムが、クライアントとデータセンター間のＴＣＰ接続に対する統計値をウェブビーコン検索から測定してログする。例えば、ネットワーク待ち時間は、ＴＣＰハンドシェークシーケンス中にパケットの到着と出発のタイミングを取ることによって測定することができる。別の実施例として、パケット損失率は、接続によって要求されたＴＣＰ再送信の数を数えることによってＴＣＰ接続の寿命にわたって測定することができる。これらの２つの測定値、ネットワーク待ち時間及びパケット損失率は、特定のクライアントと特定のデータセンター間の接続の品質の優れた指示を提供する。ＴＣＰ接続に関連付けられたあらゆる他の測定値も、受動的モニタリングシステムによって測定及び記録することができる。
【００２１】
ウェブビーコンからのＴＣＰ接続の測定が、データセンターからクライアントへの実際のウェブトラフィックに基づくので、正確なＴＣＰ接続品質測定値が保証される。これらの測定値は、次に、データセンターにおける「最も近い」サーバをクライアントに接続するために、インテリジェントグローバルトラフィック経路指定の判断を引き続き実行するために使用される。
【００２２】
実施形態によるウェブビーコン及び受動的モニタリングを示す図が、図１に示されている。図１では、クライアント１００が、３つの異なるデータセンターに経路指定される。データセンター１０２は、ビーコンサーバ１０８及びウェブサーバ１１０を収容する。データセンター１０４は、ビーコンサーバ１１２及びウェブサーバ１１４を収容する。データセンター１０６は、ビーコンサーバ１１６及びウェブサーバ１１８を収容する。クライアント１００は、サーバ１１０からウェブページを要求して受信する（送信１２０）。ウェブサーバ１１０によって提供されるウェブページは、クライアント１００に、各データセンターに位置したウェブビーコンサーバからのウェブビーコンの検索を命じるビーコンコードを収容する。この結果、クライアント１００は、要求１２２によってデータセンター１０２におけるビーコンサーバ１０８からウェブビーコンを、要求１２４によってデータセンター１０４におけるビーコンサーバ１１２からウェブビーコンを、更に要求１２６によってデータセンター１０６におけるビーコンサーバ１１６からウェブビーコンを要求する。ＴＣＰ接続は、ウェブビーコンを検索するために、クライアント１００と各ビーコンサーバ１０８、１１２、及び１１６との間で行われる。ウェブビーコンに対するこれらの要求の全ては、ウェブサーバ１１０によるページロードに干渉しないようにクライアントの背景で行われる。
【００２３】
ビーコンサーバの各々における受動的モニタリングシステムは、クライアント１００と各ビーコンサーバ１０８、１１２、及び１１６との間でウェブビーコンを検索するために行われたＴＣＰ接続に関する統計値を測定してログする。ＴＣＰ接続の測定は、クライアント１００と各ビーコンサーバに対応するデータセンターとの間の品質を判断するために使用される。ログされて記録された測定データは、実施毎に異なる。一部の実施形態では、測定データは、以下に限定されるものではないが、往復待ち時間データ及びパケット損失率データを含む。ウェブビーコンに対する各ＴＣＰ接続に関する測定及び統計値は、各ビーコンサーバによって記憶される。
【００２４】
他の方法を通じたＴＣＰ接続の測定
ＴＣＰ接続の性能の測定は、様々な方法を使用して実行される。サーバに接続するためのクライアントのビーコン又は誘導作動が、接続の性能を測定するのに使用される。クライアントは、複数のビーコンサーバに接続するように誘導される。１つよりも多いビーコンサーバが使用され、それによって接続の複数の終点が測定される。更に、クライアントは、ビーコンサーバの無作為化された選択に基づく特定のビーコンサーバに接続するように誘導される。ビーコンサーバは、接続データ測定専門にされた専用サーバとすることができる。ビーコンサーバは、実際のトラフィックを提供するサーバとすることができる。以下に限定されるものではないが、ＦＴＰ（ファイル転送プロトコル）、ＨＴＴＰ（ハイパーテキスト転送プロトコル）、又はＩＲＣ（インターネットリレーチャット）を含むＴＣＰベースの接続プロトコルのあらゆるタイプを使用することもでき、ユーザが接続するロケーションにわたって制御のある一定のレベルを有するあらゆるアプリケーションを使用することもできる。
【００２５】
実施形態では、アプリケーションは、クライアントのコンピュータに配置されている。アプリケーションが開始又は実行された時に、アプリケーションは、複数のビーコンサーバへの接続を試みる。別の実施形態では、ＤＮＳ要求がレゾルバから行われる各イベントに対して、クライアントが複数のビーコンサーバに接続するための応答が送信される。ビーコンサーバの選択は、実施毎に異なる。一部の実施形態では、クライアントは、ランダム選択方法に基づいて特定のビーコンサーバに接続するように誘導される。ランダム選択が使用されるとしても、時間にわたって収集されるデータの量は、ランダム選択方法が、各クライアントにあらゆるデータセンターにおけるビーコンサーバに接続させる精度に近づくのに十分である。ビーコンサーバのいずれかへの接続時に、各ビーコンサーバにおける受動的モニタリングシステムは、クライアントからビーコンサーバに行われた接続に関する統計値を測定してログする。
【００２６】
データの集約及び処理
実施形態では、データベースが、各データセンターに位置したウェブビーコンサーバから関係のあるクライアントＩＰアドレスと共にＴＣＰ測定値を収集する。データは、データベースサーバによって要求されるか、又はウェブビーコンサーバの各々によって定期的に送信される。データベースは、特定のデータセンターに、又は別の施設に遠隔に位置することができる。
【００２７】
実施形態では、データベースサーバは、ビーコンサーバから受信したデータを個別のネットブロックのセットに標準化する。本明細書で使用されるネットブロックは、クライアントＩＰアドレスの範囲である。例えば、ネットブロック「１．１．１．０」は、ＩＰアドレスが「１．１．１．ｘ」で始まり、「ｘ」は０と２５５の間のあらゆる値とすることができる全てのクライアントを示している。同じネットブロックにおけるクライアントは、データセンターまでの同じ経路を使用することができる。この結果、同じネットブロックにおけるクライアントに対するＴＣＰ接続測定値は、特定のクライアントから特定のデータセンターまでの経路に関するより完全な情報を提供するために集約することができる。最良サービス宛先を判断するために、各データセンターから各可能なネットブロックへの経路の接続性能が測定されて維持される。
【００２８】
実施形態では、利用可能なサーバ又はデータセンターのリストが、各特定のネットブロックへの接続品質によって分類される。別の実施形態では、データベースサーバは、ビーコンサーバから受信したＴＣＰ統計値に基づいてデータを標準化する。この状況の下で、接続は、関係のあるＩＰアドレスとの接続品質に基づいて分類される。更に別の実施形態では、データベースは、測定データ及び対応するＩＰアドレスを収集し、データにおける更に別の処理は行わない。
【００２９】
実施形態では、測定値ベースのデータは、データベースから、グローバルロードバランサとして作動する分散正式ネームサーバにエクスポートされる。測定値ベースのデータは、クライアント経路指定に関する適切な判断を実行するためにグローバルロードバランサに情報を提供する。一部の実施形態では、測定値ベースのデータは、クライアント経路指定を判断するためにグローバルロードバランサによってのみ使用される。別の実施形態では、測定値ベースのデータは、経路指定の判断を実行するためにグローバルロードバランサによって考察される付加的なデータである。
【００３０】
実施形態によるビーコンサーバからＴＣＰ統計値を収集する集中化データベースを示す図が、図２に示されている。図２では、図１からの３つのデータセンターからのビーコンサーバ（データセンター１０２からのビーコンサーバ１０８、データセンター１０４からのビーコンサーバ１１２、及びデータセンター１０６からのビーコンサーバ１１６）が、データを集中化データベース２００に送信する。集中化データベース２００は、様々な基準に基づいてデータを集約して分類する。処理されたデータは、次に、ＧＬＢ２０２、ＧＬＢ２０４、ＧＬＢ２０６、及びＧＬＢ２０８に送信される。別の実施形態では、処理されたデータは、集中化サーバ２００から他の消費者２１０に送信される。他の消費者は、データセンターに格納することができるウェブサーバ以外のアプリケーションを含む。例えば、「インターネット」会社は、クライアントがアプリケーションに直接接続することを可能にする別の音楽又はメディアアプリケーションを有することができる。これらのアプリケーションは、ビーコンサーバと同じデータセンターに関わっているので、集中化サーバによって集められたＴＣＰデータは、同様にこれらの他のアプリケーションに効率的にトラフィックを経路指定するために使用することができる。
【００３１】
測定値ベースのデータを使用するグローバルロードバランサ
グローバルロードバランサがどのように測定値ベースのデータを使用するかの実施例が以下に続く。グローバルロードバランシングは、クライアントが特定のウェブページの訪問を要求した場合に実行される。クライアントによって入力されたウェブサイトＵＲＬ（例えば、「ｗｗｗ．ｓａｍｐｌｅｄｏｍａｉｎ．ｃｏｍ」）をＩＰアドレス（例えば、「１．２．３．４」）に翻訳するためにＤＮＳルックアップが実行される。ルックアップは、正式ネームサーバ（グローバルロードバランサでもある）に誘導される。グローバルロードバランサは、要求側ＩＰアドレスを調べる。要求側ＩＰアドレスは、次に、分類された測定値ベースのデータから、その特定のネットブロックに対する情報、又はＩＰアドレスの範囲と比較される。グローバルロードバランサは、ネットワーク待ち時間及びパケット損失のような様々なＴＣＰ統計値によって分類されたリストにおける第１の利用可能なウェブサーバを選択し、ウェブサーバのＩＰアドレスをクライアントに戻す。クライアントは、従って、最良の利用可能なＴＣＰ接続性を備えたウェブサーバに経路指定される。
【００３２】
本発明の実施形態によるネットブロックによって分類された処理データの図が図３に示されている。データは、「クライアント」列３００、「コロケーションＡ」列３０２、「コロケーションＢ」列３０４、及び「コロケーションＣ」列３０６を有する。「クライアント」列３００は、コロケーションの各々が接続するクライアントのＩＰアドレスを列挙する。一部の実施形態では、クライアントは、ネットブロックに列挙される。行３０８では、ネットブロック「１．１．１．０／２４」は、ｘを０−２５５の間のあらゆる値とすることができる場合にＩＰアドレス「１．１．１．ｘ」のクライアントを有する２４のサブネットマスクを示している。クライアントがこのネットブロックからコロケーションへの接続を望む場合、コロケーションＡに接続するために、１０ミリ秒を必要とし、コロケーションＢに接続するために、５０ミリ秒を必要とし、コロケーションＣに接続するために、８０ミリ秒を必要とする。従って、ネットブロック「１．１．１．０」からのクライアントは、コロケーションＡに最も近いことになる。
【００３３】
行３１０では、ネットブロック「２．２．２．０／２６」は、ｘを０−６３の間のあらゆる数字とすることができる場合にＩＰアドレス「２．２．２．ｘ」のクライアントを有する２６のサブネットマスクを示している。クライアントがこのネットブロックからコロケーションへの接続を望む場合、コロケーションＡに接続するために、１００ミリ秒を必要とし、コロケーションＢに接続するために、４０ミリ秒を必要とし、コロケーションＣに接続するために、５ミリ秒を必要とする。従って、ネットブロック「２．２．２．０」からのクライアントは、コロケーションＣに最も近いことになる。
【００３４】
行３１２では、ネットブロック「３．３．３．０／２４」は、ｘを０−２５５の間のあらゆる数とすることができる場合にＩＰアドレス「３．３．３．ｘ」のクライアントを有する２４のサブネットマスクを示している。クライアントがこのネットブロックからコロケーションへの接続を望む場合、コロケーションＡに接続するために、３００ミリ秒を必要とし、コロケーションＢに接続するために、１ミリ秒を必要とし、コロケーションＣに接続するために、５００ミリ秒を必要とする。従って、ネットブロック「３．３．３．０」からのクライアントは、コロケーションＢに最も近いことになる。
【００３５】
閉回路フィードバック
実施形態では、「インターネット」トポロジー及び性能の変化に動的に対応することができる閉回路フィードバックループが生成される。上述のように、グローバルロードバランサは、ウェブコンテンツをフェッチするために、クライアントを特定のウェブサーバに経路指定する。グローバルロードバランサは、検索側ウェブビーコンからのＴＣＰ接続の測定値に基づいて経路指定を判断する。
【００３６】
クライアントがサーバからウェブページコンテンツを受信した時に、ウェブページコンテンツは、もう一度各データセンターからウェブビーコンを検索するようにクライアントに指示するビーコンコードを収容する。ウェブビーコンＴＣＰ接続からより多くの測定値及び統計値を連続的に取得することにより、接続品質測定システムは、ネットワーク利用可能度に影響を与える状況に対して即座に自己修正することができる。これらの状況は、以下に限定されるものではないが、ファイバーカット、機器問題、サーバフェイルオーバー、又は容量問題を含む。
【００３７】
ハードウエアの概要
図４は、本発明の実施形態を実施することができるコンピュータシステム４００を示すブロック図である。コンピュータシステム４００は、情報を伝達するためのバス４０２又は他の通信機構、及び情報を処理するためのバス４０２に連結されたプロセッサ４０４を含む。コンピュータシステム４００は、プロセッサ４０４によって実行される情報及び命令を記憶するためにバス４０２に連結されたランダムアクセスメモリ（ＲＡＭ）又は他の動的記憶デバイスのようなメインメモリ４０６を含む。メインメモリ４０６は、プロセッサ４０４によって実行される命令の実行中に一時的な変数又は他の中間情報を記憶するために使用することができる。コンピュータシステム４００は、プロセッサ４０４のための静的情報及び命令を記憶するためのバス４０２に連結された読取専用メモリ（ＲＯＭ）４０８又は他の静的記憶デバイスを更に含む。磁気ディスク又は光ディスクのような記憶デバイス４１０は、情報及び命令を記憶するために提供され、バス４０２に連結される。
【００３８】
コンピュータシステム４００は、情報をコンピュータユーザに表示するためのブラウン管（ＣＲＴ）のようなディスプレイ４１２にバス４０２を通じて連結することができる。英数字及び他のキーを含む入力デバイス４１４は、情報及び指令選択をプロセッサ４０４に伝達するためにバス４０２に連結される。ユーザ入力デバイスの別のタイプは、マウス、トラックボール、又は方向情報及び指令選択をプロセッサ４０４に伝達しディスプレイ４１２上のカーソルの動きを制御するためのカーソル方向キーのようなカーソル制御４１６である。この入力デバイスは、一般的に、２つの軸、すなわち、第１軸（例えば、ｘ）と第２軸（例えば、ｙ）における２つの自由度を有し、それによってデバイスは、平面における位置を指示することができる。
【００３９】
本発明は、本明細書に説明する技術を実施するためのコンピュータシステム４００の使用に関する。本発明の一実施形態によると、これらの技術は、メインメモリ４０６に収容された１つ又はそれよりも多くの命令の１つ又はそれよりも多くのシーケンスを実行するプロセッサ４０４に応答して、コンピュータシステム４００によって実行される。このような命令は、記憶デバイス４１０のような別の機械可読媒体からメインメモリ４０６に読み込まれる。メインメモリ４０６に収容された命令のシーケンスの実行は、プロセッサ４０４に本明細書に説明する処理段階を実行させる。他の実施形態では、本発明を実施するために、ソフトウエア命令の代わりに又はこれと組み合わせて、ハードワイヤド回路を使用することができる。従って、本発明の実施形態は、ハードウエア回路及びソフトウエアのあらゆる特定の組合せに制限されることはない。
【００４０】
本明細書で使用される「機械可読媒体」という語は、特定の方式で機械にオペレーションを実行させるデータを提供することに関わるあらゆる媒体を指す。コンピュータシステム４００を使用して実施される実施形態では、様々な機械可読媒体が、例えば、実行のためにプロセッサ４０４に命令を提供することに関わる。このような媒体は、以下に限定されるものではないが、記憶媒体及び送信媒体を含む多くの形式を取ることができる。記憶媒体は、不揮発性媒体と揮発性媒体の両方を含む。不揮発性媒体は、例えば、記憶デバイス４１０のような光又は磁気ディスクを含む。揮発性媒体は、メインメモリ４０６のような動的メモリを含む。送信媒体は、バス４０２を含むワイヤを含む同軸ケーブル、銅線、及び光ファイバを含む。送信媒体は、電波及び赤外線データ通信の間に生成されるような音響又は光波の形式を取ることができる。全てのこのような媒体は、媒体によって担持される命令が、命令を機械に読み取る物理的機構によって検出することができるように有形のものでなくてはならない。
【００４１】
機械可読媒体の一般的な形式は、例えば、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、磁気テープ、又はあらゆる他の磁気媒体、ＣＤ−ＲＯＭ、あらゆる他の光媒体、パンチカード、紙テープ、ホールのパターンを備えたあらゆる他の物理的媒体、ＲＡＭ、ＰＲＯＭ、及びＥＰＲＯＭ、ＦＬＡＳＨ−ＥＰＲＯＭ、あらゆる他のメモリチップ又はカートリッジ、以下に説明するような搬送波、又はコンピュータが読むことのできるあらゆる他の媒体を含む。
【００４２】
機械可読媒体の様々な形式は、実行のためにプロセッサ４０４に１つ又はそれよりも多くの命令の１つ又はそれよりも多くのシーケンスを担持することに携わる。例えば、命令は、リモートコンピュータの磁気ディスク上で最初は担持される。リモートコンピュータは、その動的メモリに命令をロードし、モデムを使用する電話回線を通じて命令を送信することができる。コンピュータシステム４００に対してローカルのモデムは、電話回線でデータを受信し、データを赤外線信号に変換するために赤外線送信機を使用することができる。赤外線検出器は、赤外線信号に担持されるデータを受信することができ、適切な回路が、データをバス４０２に配置することができる。バス４０２は、データをメインメモリ４０６に担持し、メインメモリ４０６から、プロセッサ４０４は、命令を検索し実行する。メインメモリ４０６によって受信した命令は、プロセッサ４０４による実行の前又は後のいずれかに記憶デバイス４１０に任意的に記憶される。
【００４３】
コンピュータシステム４００は、バス４０２に連結された通信インタフェース４１８を含む。通信インタフェース４１８は、ローカルネットワーク４２２に接続されているネットワークリンク４２０に連結する２方向データ通信を提供する。例えば、通信インタフェース４１８は、統合デジタル通信サービス網（ＩＳＤＮ）カード又はモデムとすることができ、データ通信接続を電話回線の対応するタイプに提供する。別の実施例として、通信インタフェース４１８は、データ通信接続をコンパチブルＬＡＮに提供するためのローカルエリアネットワーク（ＬＡＮ）カードとすることができる。無線リンクも達成することができる。あらゆるこのような実施でも、通信インタフェース４１８は、情報の様々なタイプを表すデジタルデータストリームを担持する電気、電磁又は光信号を送信及び受信する。
【００４４】
ネットワークリンク４２０は、一般的に、データ通信を１つ又はそれよりも多くのネットワーク上で他のデータデバイスに提供する。例えば、ネットワークリンク４２０は、ローカルネットワーク４２２を通じたホストコンピュータ４２４への又は「インターネットサービスプロバイダ（ＩＳＰ）」４２６によって作動されるデータ装置への接続を提供することができる。ＩＳＰ４２６は、今日では、一般的に「インターネット」４２８と呼ばれるワールドワイドパケットデータ通信ネットワーク上でデータ通信サービスを提供する。ローカルネットワーク４２２と「インターネット」４２８は両方とも、デジタルデータストリームを担持する電気、電磁、又は光信号を使用する。デジタルデータをコンピュータシステム４００に担持し、コンピュータシステム４００からデジタルデータを担持する様々なネットワーク上の信号及びネットワークリンク４２０上の通信インタフェース４１８を通じた信号は、情報を担持する搬送波の例示的な形式である。
【００４５】
コンピュータシステム４００は、ネットワーク、ネットワークリンク４２０、及び通信インタフェース４１８を通じて、プログラムコードを含むメッセージを送信し、プログラムコードを含むデータを受信することができる。「インターネット」の実施例では、サーバ４３０は、「インターネット」４２８、ＩＳＰ４２６、ローカルネットワーク４２２、及び通信インタフェース４１８を通じて、アプリケーションプログラムのための要求されたコードを送信することができる。
【００４６】
受信したコードは、記憶デバイス４１０又は後の実行のための他の不揮発性記憶装置で受信及び／又は記憶された時にプロセッサ４０４によって実行することができる。従って、コンピュータシステム４００は、搬送波の形式でアプリケーションコードを取得することができる。
【００４７】
上述の明細書では、本発明の実施形態は、実施毎に異なる多数の特定の詳細に関して説明している。従って、本発明であること及び本発明であると出願人によって意図されるものを唯一かつ排他的に示すものは、あらゆるその後の訂正を含む特許請求の範囲がもたらす特定の形式において本出願からもたらされる特許請求の範囲のセットである。これらの特許請求の範囲に関わっている用語に対して本明細書に明確に示されているいずれの定義も、特許請求の範囲で使用されるこれらの用語の意味を規定するものとする。従って、特許請求の範囲に明確に記載されていない制限、要素、特性、特徴、利点、又は属性は、あらゆる点でこれらの特許請求の範囲を制限するものではない。明細書及び図面は、従って、制限的な意味ではなく例証的な意味と見なすものとする。
【符号の説明】
【００４８】
１０２、１０４、１０６  データセンター
１０８、１１２、１１６  ビーコンサーバ
２００  集中化データベース
【図１】
2011508524.tif 000003
【図２】
2011508524.tif 000004
【図３】
2011508524.tif 000005
【図４】
2011508524.tif 000006
【国際調査報告】
2011508524.tif 000007
2011508524.tif 000008