(57)【要約】トップレベルドメイン名システム（ＤＮＳ）サーバは、ドメイン名に対応するネットワークアドレスを要求するＤＮＳクエリを、ローカルＤＮＳリゾルバから受信する。トップレベルＤＮＳサーバは、ローカルＤＮＳリゾルバをリフレクタＤＮＳサーバに反射する。リフレクタＤＮＳサーバは、ローカルＤＮＳリゾルバをコレクタＤＮＳサーバに反射し、コレクタＤＮＳサーバは次に、ネットワークアドレスをローカルＤＮＳリゾルバに返す。リフレクタＤＮＳサーバおよびコレクタＤＮＳサーバは両方とも同一データセンタ内にあり、ローカルＤＮＳリゾルバとデータセンタとの間の通信の１つまたは複数のネットワーク性能測定結果を、ローカルＤＮＳリゾルバと、リフレクタＤＮＳサーバおよびコレクタＤＮＳサーバの両方との間の通信に基づいて判定する。
2013527704.tif 000002
【特許請求の範囲】
【請求項１】
第１のデータセンタの第１のドメイン名システム（ＤＮＳ）サーバにおいて、ローカルＤＮＳリゾルバからの第１のＤＮＳクエリを受信するステップであって、前記第１のＤＮＳクエリは、クエリドメイン名に対応するネットワークアドレスを要求する、受信するステップと、
前記ローカルＤＮＳリゾルバを第２のデータセンタの１つまたは複数のリフレクタＤＮＳサーバに反射することによって、前記第１のＤＮＳサーバから、前記第１のＤＮＳクエリに応答するステップであって、前記第１のデータセンタおよび第２のデータセンタの両方は前記クエリドメイン名に対応する、応答するステップと、
前記１つまたは複数のリフレクタＤＮＳサーバにおいて、１つまたは複数の追加のＤＮＳクエリを受信するステップと、
前記クエリドメイン名に対応する前記ネットワークアドレスを用いて、コレクタＤＮＳサーバから、最終ＤＮＳクエリに応答するステップと、
前記ローカルＤＮＳリゾルバと、前記第２のデータセンタの前記１つまたは複数のリフレクタＤＮＳサーバおよび前記コレクタＤＮＳサーバとの間の通信に基づいて、前記ローカルＤＮＳリゾルバと前記第２のデータセンタとの間の通信の１つまたは複数のネットワーク性能測定結果を判定するステップと
を備えたことを特徴とする方法。
【請求項２】
前記ネットワークアドレスは、前記クエリドメイン名に対応する第３のデータセンタ内のサーバのインターネットプロトコル（ＩＰ）アドレスであることを特徴とする請求項１に記載の方法。
【請求項３】
前記１つまたは複数のネットワーク性能測定結果は、前記１つまたは複数のリフレクタＤＮＳサーバのうちの第１のサーバにおいて受信される前記ローカルＤＮＳリゾルバからの第１の要求と、前記リフレクタＤＮＳサーバのうちの第２のサーバもしくは前記コレクタＤＮＳサーバで受信される前記ローカルＤＮＳリゾルバからの第２の要求との間で経過した時間量として判定された、前記第２のデータセンタと前記ローカルＤＮＳリゾルバとの間の通信の往復時間を含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記１つまたは複数のネットワーク性能測定結果は、前記ローカルＤＮＳリゾルバによって識別される、前記第２のデータセンタと前記ローカルＤＮＳリゾルバとの間の通信の往復時間を含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記１つまたは複数のネットワーク性能測定結果は、前記第２のデータセンタと前記ローカルＤＮＳリゾルバとの間のパケット損失率またはパケット損失パターンを含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記１つまたは複数のネットワーク性能測定結果は、前記第２のデータセンタ内の１つまたは複数のＤＮＳサーバから前記ローカルＤＮＳリゾルバに送信されたパケットのパケット損失率、またはパケット損失パターンの第１の測定である第１の数と、前記ローカルＤＮＳリゾルバから前記第２のデータセンタ内の前記１つまたは複数のＤＮＳサーバに送信されたパケットのパケット損失率、またはパケット損失パターンの第２の測定である第２の数とを含むことを特徴とする請求項５に記載の方法。
【請求項７】
前記第１のＤＮＳサーバから前記第１のＤＮＳクエリに応答するステップは、前記第１のＤＮＳサーバによって前記ローカルＤＮＳリゾルバに返される応答を生成するステップを含み、前記応答は、前記１つまたは複数のリフレクタＤＮＳサーバのうちの１つのネットワークアドレスと、前記最終ＤＮＳクエリに応答して含まれることになる前記クエリドメイン名に対応する前記ネットワークアドレスの両方を含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記第１のＤＮＳクエリに応答するステップは、前記クエリドメイン名に対応する前記ネットワークアドレスを組み込んだエイリアスを前記応答内に含めるステップを含み、１つまたは複数の追加のＤＮＳクエリを受信するステップは、前記エイリアスを含む１つまたは複数の追加のＤＮＳクエリを受信するステップを含み、前記方法は、前記コレクタＤＮＳサーバにおいて、前記エイリアスから前記クエリドメイン名に対応する前記ネットワークアドレスを取得するステップをさらに備えたことを特徴とする請求項７に記載の方法。
【請求項９】
前記１つまたは複数のリフレクタＤＮＳサーバおよび前記コレクタＤＮＳサーバは、前記第２のデータセンタ内の同一コンピューティングデバイス上で実装され、前記コンピューティングデバイスは複数のネットワークインターフェースを有することを特徴とする請求項１に記載の方法。
【請求項１０】
前記コレクタＤＮＳサーバは、前記第２のデータセンタ内に含まれることを特徴とする請求項１に記載の方法。
【請求項１１】
プロセッサと、
複数の命令を記憶した１つまたは複数のコンピュータ可読媒体と
を備え、前記プロセッサによる前記複数の命令の実行は、
リフレクタドメイン名システム（ＤＮＳ）サーバにおいて、ドメイン名に対応するネットワークアドレスの第１のＤＮＳ要求であって、ローカルＤＮＳリゾルバから受信されている第１のＤＮＳ要求を受信し、
前記ローカルＤＮＳリゾルバに、前記ローカルＤＮＳリゾルバをコレクタＤＮＳサーバに反射する第１の応答を返し、
前記コレクタＤＮＳサーバにおいて、前記ドメイン名に対応する前記ネットワークアドレスの第２のＤＮＳ要求であって、前記ローカルＤＮＳリゾルバから受信されている第２のＤＮＳ要求を受信し、
前記ローカルＤＮＳリゾルバに、前記ドメイン名に対応する前記ネットワークアドレスを含む第２の応答を返し、
前記第１の要求、前記第２の要求、前記第１の応答、および前記第２の応答のうちの２つ以上に基づいて、前記ローカルＤＮＳリゾルバと前記データセンタのと間の通信の１つまたは複数のネットワーク性能測定結果を判定する
ことを前記プロセッサにさせることを特徴とするコンピューティングデバイス。
【請求項１２】
前記リフレクタＤＮＳサーバおよび前記コレクタＤＮＳサーバの両方は、複数のネットワークインターフェースを有する同一コンピューティングデバイスに実装されることを特徴とする請求項１１に記載のコンピューティングデバイス。
【請求項１３】
前記第１のＤＮＳ要求および前記第２のＤＮＳ要求の両方は、第３のＤＮＳサーバから前記ローカルＤＮＳリゾルバによって取得されるエイリアスを含み、前記ドメイン名に対応する前記ネットワークアドレスである目標アドレスは、前記エイリアスに組み込まれることを特徴とする請求項１１に記載のコンピューティングデバイス。
【請求項１４】
前記リフレクタＤＮＳサーバおよび前記コレクタＤＮＳサーバの両方は、同一データセンタに含まれ、前記１つまたは複数のネットワーク性能測定結果は、前記第１の要求および前記第２の要求との間で経過した時間量として判定される、前記データセンタと前記ローカルＤＮＳリゾルバとの間の通信の往復時間を含み、前記第１の要求および前記第２の要求は、前記ローカルＤＮＳリゾルバからの２つの後続の要求であることを特徴とする請求項１１に記載のコンピューティングデバイス。
【請求項１５】
前記リフレクタＤＮＳサーバおよび前記コレクタＤＮＳサーバの両方は、同一データセンタ内に含まれ、前記１つまたは複数のネットワーク性能測定結果は、前記データセンタと前記ローカルＤＮＳリゾルバとの間のパケット損失に関する情報を含むことを特徴とする請求項１１に記載のコンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＤＮＳリフレクションを使用したネットワーク性能の測定に関する。
【背景技術】
【０００２】
世界中のユーザに様々な機能を提供するネットワーク化されたサービスが利用可能である。これらのネットワーク化されたサービスは、異なる地理的エリアに置かれたデータセンタ内のサーバコンピュータによってしばしば提供される。ネットワーク化されたサービスの作業負荷は、異なるユーザがこれらのデータセンタの異なるものにアクセスできるように、異なるデータセンタにわたって広がり得る。しかし、複数のデータセンタのうちのどれに個々のユーザがアクセスしようとしているかを判断することは難しいことがある。
【発明の概要】
【０００３】
本発明の概要を、「発明を実施するための形態」で以下にさらに説明される簡素化された形での概念の選択を紹介するために提供する。本発明の概要は、特許請求される主題の重要な特徴または本質的な特徴を特定するものではなく、特許請求される主題の範囲を限定するために使用されるものでもない。
【０００４】
１つまたは複数の態様によれば、リフレクタドメイン名システム（ＤＮＳ）サーバおよびコレクタＤＮＳサーバを、データセンタ内に含む。ドメイン名に対応するネットワークアドレスについての第１のＤＮＳ要求を、ローカルＤＮＳリゾルバから、リフレクタＤＮＳサーバで受信する。第１の応答をローカルＤＮＳリゾルバに返し、第１の応答はローカルＤＮＳリゾルバにコレクタＤＮＳサーバからネットワークアドレスを取得するように指示する。ドメイン名に対応するネットワークアドレスについての第２のＤＮＳ要求を、ローカルＤＮＳリゾルバから、コレクタＤＮＳサーバで受信する。ドメイン名に対応するネットワークアドレスを含む第２の応答を、ローカルＤＮＳリゾルバに返す。第１の要求、第２の要求、第１の応答、および第２の応答のうちの２つ以上に基づいて、ローカルＤＮＳリゾルバとデータセンタの間の通信の１つまたは複数のネットワーク性能測定結果を判定する。
【図面の簡単な説明】
【０００５】
同一番号を、以下の図面を通して同様の特徴を参照するために使用する。
【０００６】
【図１】１つまたは複数の実施形態によるＤＮＳリフレクションを使用したネットワーク性能の測定を実装する例示的システムを示す図である。
【図２】ローカルＤＮＳリゾルバとデータセンタとの間のネットワーク性能測定結果を１つまたは複数の実施形態にしたがって判定する例示的システムを示す図である。
【図３】１つまたは複数の実施形態によるＤＮＳリフレクションを使用したネットワーク性能の測定を実装するデバイスの例示的プロセスを示す流れ図である。
【図４】１つまたは複数の実施形態にしたがってＤＮＳリフレクションを使用したネットワーク性能の測定を実装するように構成可能な例示的コンピューティングデバイスを示す図である。
【発明を実施するための形態】
【０００７】
ＤＮＳリフレクションを使用したネットワーク性能の測定を本明細書で論じる。ドメイン名システム（ＤＮＳ）クエリは、そのうちの１つがＤＮＳクエリで要求されたネットワークアドレスを提供する、データセンタ内の複数の異なるＤＮＳサーバに、そのクエリを反射することによって、解決される。ローカルＤＮＳリゾルバとＤＮＳクエリを解決するのに使用されるデータセンタ内の異なるＤＮＳサーバの間の通信の１つまたは複数のネットワーク性能測定結果を、ＤＮＳクエリの解決中に判定する。これらのネットワーク性能測定結果は、ローカルＤＮＳリゾルバとデータセンタとの間の通信遅延を示す往復時間、ならびに／または、ローカルＤＮＳリゾルバとデータセンタとの間のパケット損失を含み得る。異なるＤＮＳクエリについて判定されるネットワーク性能測定結果の記録を保持し、かつどのデータセンタがどのコンピューティングデバイスによってアクセスされることになるかを判断するために使用することができる。
【０００８】
図１は、１つまたは複数の実施形態によるＤＮＳリフレクションを使用したネットワーク性能の測定を実装する例示的システム１００を示す。システム１００は、ローカルＤＮＳリゾルバ１０４と通信することができる１つまたは複数（ｍ）のコンピューティングデバイス１０２を含む。ローカルＤＮＳリゾルバ１０４は、ネットワーク１０８を介して１つまたは複数（ｎ）のデータセンタ１０６と通信することができる。ネットワーク１０８は、インターネット、ローカルエリアネットワーク（ＬＡＮ）、公衆電話網、イントラネット、他の公衆のおよび／または所有権を主張できるネットワーク、それらの組合せなどを含む、様々な異なるネットワークとすることができる。コンピューティングデバイス１０２は、ローカルＤＮＳリゾルバ１０４と直接に、あるいはネットワーク（たとえば、ネットワーク１０８に類似したネットワーク）を介して、通信することができる。
【０００９】
各コンピューティングデバイス１０２は、様々な異なるタイプのデバイスとすることができる。たとえば、コンピューティングデバイス１０２は、デスクトップコンピュータ、移動局、エンターテイメント器具、表示デバイスに通信で結合されたセットトップボックス、テレビジョン、セルラもしくは他のワイヤレス電話、ゲーム機、自動車用コンピュータなどとすることができる。したがって、コンピューティングデバイス１０２は、かなりのメモリおよびプロセッサリソースを有する豊富なリソースのデバイス（たとえば、パーソナルコンピュータ、ゲーム機など）から、限られたメモリおよび／または処理リソースを有する低リソースのデバイス（たとえば、従来型のセットトップボックス、携帯ゲーム機）まで多岐にわたり得る。異なるコンピューティングデバイス１０２は、同一あるいは異なるタイプのコンピューティングデバイスとすることができる。
【００１０】
各データセンタ１０６は、１つまたは複数のＤＮＳサーバ１１０および１つまたは複数のオペレーションサーバ１１２を含む。オペレーションサーバ１１２は、１つまたは複数のサービスをコンピューティングデバイス１０２に提供するように動作する。たとえば、オペレーションサーバ１１２は、情報サービス（たとえば、１つまたは複数のウェブページをホスティングする）、ソーシャルネットワーキングサービス、電子メールサービス、メッセージングサービス、画像および／またはビデオ共有サービス、ファイルストレージサービス、ゲームまたは他のエンターテイメントサービスなどのうちの１つまたは複数を提供することができる。ＤＮＳサーバ１１０は、オペレーションサーバ１１２のアドレスをコンピューティングデバイス１０２に提供するように動作し、コンピューティングデバイス１０２がオペレーションサーバ１１２によって提供されるサービスにアクセスするおよびそれを使用することを可能にする。
【００１１】
前述のコンピューティングデバイス１０２の論議と同様に、ＤＮＳサーバ１１０およびオペレーションサーバ１１２は、かなりのメモリおよびプロセッサリソースを有する豊富なリソースのデバイスから限定されたメモリおよび／または処理リソースを有する低リソースのデバイスに及ぶ、様々な異なるタイプのコンピューティングデバイスとすることができる。各データセンタ１０６は通常は、複数のサーバ（たとえば、約数十、数百、またはそれ以上のサーバ）を含む。
【００１２】
データセンタ１０６は世界中の様々な場所に位置し得ることに留意されたい。データセンタ１０６はしばしば、異なるグループのユーザと地理的により近づけるために、世界中に物理的に置かれ得る。しかし、２つ以上のデータセンタ１０６が、互いに地理的にごく接近して位置付けられ場合もある。多様な地理的存在の利点は、任意の特定のエンドユーザにデータセンタの複数の選択肢を提供することであり、そして、正確に行われれば、エンドユーザは、エンドユーザによって最も良く認識される性能を生み出す「最適な」データセンタからサービスされることになる。
【００１３】
複数のデータセンタ１０６にわたるオペレーションサーバ１１２は、集合的に動作して１つまたは複数のサービスをコンピューティングデバイス１０２に提供する。異なるデータセンタ１０６内のオペレーションサーバ１１２は、重複データを記憶すること、および／または、協力して１つまたは複数のサービスをコンピューティングデバイス１０２に提供することができる。複数のデータセンタ１０６にわたるオペレーションサーバ１１２は集合的に動作し、各コンピューティングデバイス１０２は通常は１つのデータセンタ１０６のオペレーションサーバ１１２と通信する。本明細書で論じられるＤＮＳリフレクションを使用してネットワーク性能を測定する技法を、特定のコンピューティングデバイス１０２について、どのデータセンタ１０６が特定のコンピューティングデバイス１０２によってアクセスされることになるかを識別するために使用することができる。
【００１４】
本明細書で論じられるＤＮＳリフレクションを使用してネットワーク性能を測定する技法は、ＤＮＳシステムを利用する。ＤＮＳシステムは、ネットワークアドレス（インターネットプロトコル（ＩＰ）ｖ４またはｖ６アドレスなど）よりもユーザによって通常はより容易に使用および参照されるドメイン名（ＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）など）を使用してサービスを識別することを可能にする。データセンタ１０６内のオペレーションサーバ１１２は、異なるネットワークアドレスを有するが、同一ドメイン名に対応する。同様に、集合的に動作して１つまたは複数のサービスをコンピューティングデバイス１０２に提供する複数のデータセンタ１０６は、同一ドメイン名に対応する。１つまたは複数のＤＮＳサーバは、特定のオペレーションサーバにアクセスするためにコンピューティングデバイスによって使用可能な、対応するネットワークアドレスに特定のドメイン名をマップするように動作する。対応するネットワークアドレスへのドメイン名のこのマッピングは、ＤＮＳ解決とも呼ばれる。
【００１５】
本明細書の議論の多くはＵＲＬおよびＩＰアドレスを参照するが、他のドメイン名および／またはネットワークアドレスが本明細書で論じられるＤＮＳリフレクションを使用してネットワーク性能を測定する技法とともに使用可能であることが理解されよう。加えて、本明細書で論じられるＤＮＳシステムは、（たとえば、１９８７年１１月、ネットワーク作業グループコメント要求１０３５で論じられるような）既知のＤＮＳプロトコルにしたがったシステムを参照する。しかし、本明細書で論じられるＤＮＳリフレクションを使用してネットワーク性能を測定する技法は、ＤＮＳプロトコルと同様に、ドメイン名を特定のネットワークアドレスにマップすることを可能にする、他のシステムとともに使用することができる。
【００１６】
ローカルＤＮＳリゾルバ１０４は、特定のＵＲＬのＩＰアドレスの要求であるコンピューティングデバイス１０２からのＤＮＳクエリを受信する。ローカルＤＮＳリゾルバ１０４は、これらのＤＮＳクエリを１つまたは複数のＤＮＳサーバ１１０に転送する。ＩＰアドレスがＤＮＳクエリに応答してリゾルバ１０４に返されると、ＩＰアドレスを、ＤＮＳクエリを受信した元のコンピューティングデバイス１０２に返す。加えて、ローカルＤＮＳリゾルバ１０４は、ＩＰアドレスにＵＲＬをマップするキャッシュを任意選択で保持することができ、キャッシュに含まれるＵＲＬについてのＤＮＳクエリに応答して、ローカルＤＮＳリゾルバ１０４がＵＲＬのＩＰアドレスを返すことを可能にする。ローカルＤＮＳリゾルバ１０４を、インターネットサービスプロバイダ（ＩＳＰ）のサーバまたは他のデバイス内、コンピューティングデバイス１０２を含むローカルエリアネットワーク上のデバイス内など、様々な異なるデバイス内に実装することができる。単一のローカルＤＮＳリゾルバ１０４を図１に示しているが、任意の数のローカルＤＮＳリゾルバ１０４をシステム１００に含むことができることを理解されたい。
【００１７】
たとえば、オペレーションサーバ１１２が集合的に作動してインターネット検索エンジンを提供すると仮定する。このインターネット検索エンジンは、「ｗｗｗ．ｂｉｎｇ．ｃｏｍ」などの単純なＵＲＬを使用し、容易に識別することができる。インターネット検索エンジンにアクセスするために、コンピューティングデバイス１０２が、ＵＲＬ「ｗｗｗ．ｂｉｎｇ．ｃｏｍ」のＩＰアドレスを要求するローカルＤＮＳリゾルバ１０４へのＤＮＳクエリを提出する。ローカルＤＮＳリゾルバ１０４は、次いで、ＵＲＬ「ｗｗｗ．ｂｉｎｇ．ｃｏｍ」のＩＰアドレスを要求する１つまたは複数のＤＮＳサーバ１１０へのＤＮＳクエリを提出する。ローカルＤＮＳリゾルバ１０４がＤＮＳクエリを提出する先の特定のＤＮＳサーバ１１０を、以下により詳細に論じる。最終的に、ＤＮＳサーバ１１０が、ローカルＤＮＳリゾルバ１０４にＵＲＬ「ｗｗｗ．ｂｉｎｇ．ｃｏｍ」のＩＰアドレスを返す。このＩＰアドレスは、オペレーションサーバ１１２のうちの１つのアドレスであり、ローカルＤＮＳリゾルバ１０４は、ＤＮＳクエリを受信した元のコンピューティングデバイス１０２にこのＩＰアドレスを返す。ＩＰアドレスがローカルＤＮＳリゾルバ１０４に返される特定のオペレーションサーバ１１２を、様々な異なる形で１つまたは複数のＤＮＳサーバ１１０によって選択することができる。たとえば、特定のオペレーションサーバ１１２を、ＤＮＳクエリを提出したコンピューティングデバイス１０２とデータセンタ１０６との間の通信遅延が最も小さいデータセンタ１０６内のオペレーションサーバ１１２、ＤＮＳクエリを提出したコンピューティングデバイス１０２とデータセンタ１０６との間の失われたパケットの数が最も小さいデータセンタ１０６内のオペレーションサーバ１１２などとして選択することができる。コンピューティングデバイス１０２は続いて、ＤＮＳクエリに応答して受信したＩＰアドレスを使用し、インターネット検索エンジンにアクセスしてオペレーションサーバ１１２のうちの１つにアクセスすることができる。
【００１８】
ＤＮＳサーバ１１０のうちの１つまたは複数は、ＩＰアドレスへのローカルＤＮＳリゾルバのマップを保持する。このマップは、ローカルＤＮＳリゾルバ１０４からのＤＮＳクエリに応答して返されることになるオペレーションサーバ１１２の特定のＩＰアドレスを指示する。このマップは通常はオペレーションサーバＩＰアドレスへのローカルＤＮＳリゾルバのマッピングであるが、一方で、このマップはオペレーションサーバＩＰアドレスへのコンピューティングデバイス１０２のマッピングとすることができることに留意されたい。
【００１９】
ＤＮＳサーバがＤＮＳクエリを受信するが、別のＤＮＳサーバにＤＮＳクエリに応答してオペレーションサーバの特定のＩＰアドレスを返す責任を委譲するという状況が生じ得る。ＤＮＳリフレクションは、１つのＤＮＳサーバがクエリを行うローカルＤＮＳリゾルバが応答を受信したときにもう１つのＤＮＳ要求を第２の所望のＤＮＳサーバに発行することになるという方法で委譲応答を制御するという、委譲の特定の使用を指す。
【００２０】
システム１００の動作中に、ローカルＤＮＳリゾルバ１０４とデータセンタ１０６の１つまたは複数のＤＮＳサーバ１１０との間の通信の１つまたは複数のネットワーク性能測定結果を判定する。これらのネットワーク性能測定結果を、以下にさらに詳しく論じるように、ＤＮＳクエリ内で提出されたＵＲＬのＩＰアドレスを返すプロセスの部分として、判定する。これらのネットワーク性能測定結果の記録を保持し、かつＤＮＳサーバ１１０によって保持されるＩＰアドレスへのローカルＤＮＳリゾルバのマップの更新の基礎として使用することができる。
【００２１】
図２は、ローカルＤＮＳリゾルバとデータセンタの間のネットワーク性能測定結果を１つまたは複数の実施形態にしたがって判定する例示的システム２００を示す。システム２００は、コンピューティングデバイス２０２、ローカルＤＮＳリゾルバ２０４、トップレベルＤＮＳサーバ２０６、リフレクタＤＮＳサーバ２０８、およびコレクタＤＮＳサーバ２１０を含む。コンピューティングデバイス２０２は、たとえば、図１のコンピューティングデバイス１０２とすることができる。ローカルＤＮＳリゾルバ２０４は、たとえば、図１のローカルＤＮＳリゾルバ１０４とすることができる。トップレベルＤＮＳサーバ２０６、リフレクタＤＮＳサーバ２０８、およびコレクタＤＮＳサーバ２１０は、各々、たとえば、図１のＤＮＳサーバ１１０とすることができる。リフレクタＤＮＳサーバ２０８およびコレクタＤＮＳサーバ２１０は、同一データセンタ２１２（たとえば、図１の特定のデータセンタ１０６）に含まれる。トップレベルＤＮＳサーバ２０６を、リフレクタＤＮＳサーバ２０８およびコレクタＤＮＳサーバ２１０と同じデータセンタ内に、あるいは異なるデータセンタ内に含むことができる。
【００２２】
コンピューティングデバイス２０２は、特定のＵＲＬのＩＰアドレスを要求するローカルＤＮＳリゾルバ２０４へのＤＮＳクエリ２１４を提出する。また、この特定のＵＲＬを、クエリＵＲＬまたはクエリドメイン名と呼ぶことができる。ローカルＤＮＳリゾルバ２０４は、ＤＮＳクエリ２１４を受信し、ＤＮＳクエリ２１６としてのＤＮＳクエリをトップレベルＤＮＳサーバ２０６に提出する。トップレベルＤＮＳサーバ２０６は、特定のＵＲＬの権限をもつネームサーバ（ａｕｔｈｏｒｉｔａｔｉｖｅ  ｎａｍｅ  ｓｅｒｖｅｒ、マスタネームサーバとも呼ばれる）であり、ローカルＤＮＳリゾルバのＩＰアドレスへのマッピング２３０を保持する。ローカルＤＮＳリゾルバ２０４は、トップレベルＤＮＳサーバ２０６からのＩＰアドレスの指示の受信、ＤＮＳシステムにしたがった（たとえば、図１のネットワーク１０８などのネットワークを介してアクセスされる）別のデバイスからのＩＰアドレスの取得など、様々な異なる形でトップレベルＤＮＳサーバ２０６のＩＰアドレスを取得することができる。
【００２３】
ＤＮＳクエリ２１６に応答して、トップレベルＤＮＳサーバ２０６は、コンピューティングデバイス２０２に返されることになるデータセンタ内のオペレーションサーバのＩＰアドレスを判定する。トップレベルＤＮＳサーバ２０６は、マップ２３０内のローカルＤＮＳリゾルバ２０４を探索することによって、このＩＰアドレスを判定する。この探索は、ローカルＤＮＳリゾルバ２０４の（ＤＮＳクエリ２１６に含まれる）ＩＰアドレス、ローカルＤＮＳリゾルバ２０４の名または他の識別子などに基づくことができる。マップ２３０は、コンピューティングデバイス２０２に返されることになるデータセンタ内のオペレーションサーバのＩＰアドレスである特定のＩＰアドレスへのローカルＤＮＳリゾルバ２０４のマッピングを含む。
【００２４】
トップレベルＤＮＳサーバ２０６は、ＤＮＳクエリ２１６に応答して、ローカルＤＮＳリゾルバ２０４に応答２１８を提供する。応答２１８は、リフレクタＤＮＳサーバ２０８の識別子ならびにコレクタＤＮＳサーバ２１０の識別子を含む。応答２１８は、トップレベルＤＮＳサーバ２０６がＤＮＳ解決をリフレクタＤＮＳサーバ２０８に委譲したというローカルＤＮＳリゾルバ２０４への指示を含む。応答２１８はまたコンピューティングデバイス２０２に返されることになるオペレーションサーバのＩＰアドレスを含むが、このＩＰアドレスを、ＩＰアドレスが応答２１８に含まれていることがローカルＤＮＳリゾルバ２０４には分からないような形で、応答２１８に含めている。したがって、ローカルＤＮＳリゾルバ２０４は、以下にさらに詳しく論じるように、リフレクタＤＮＳサーバ２０８にＩＰアドレスを要求する。
【００２５】
１つまたは複数の実施形態で、応答２１８は、エイリアスとも呼ばれるＣＮＡＭＥを含む。ＣＮＡＭＥは、リフレクタＤＮＳサーバ２０８およびコレクタＤＮＳサーバ２１０のＩＰアドレスと、そしてまた（マップ２３０に基づいて判定されるようにコンピューティングデバイス２０２に返されることになるデータセンタ内のオペレーションサーバのＩＰアドレスである）目標ＩＰアドレスを組み込む。サーバ２０８および２１０は、トップレベルＤＮＳサーバ２０６が権限をもつネームサーバであるドメインの部分についてのネットワークアドレスへのローカルＤＮＳリゾルバのマッピングを管理することができるので、リフレクタＤＮＳサーバ２０８およびコレクタＤＮＳサーバ２１０をまた、トップレベルＤＮＳサーバ２０６のサブドメインサーバと呼ぶことができる。応答２１８はまた、リフレクタＤＮＳサーバ２０８の名およびＩＰアドレスである、ローカルＤＮＳリゾルバ２０４がＤＮＳクエリ２２０を送信しようとする先のサーバを示すサブドメインサーバ名およびサブドメインＩＰアドレスを含む。
【００２６】
たとえば、応答２１８は、ｒａｎｄ．ｌａｘ．ｒｅｆｌｅｃｔｏｒ−ｃｏｌｌｅｃｔｏｒ−ｔａｒｇｅｔ．ｍｓｒａｐｏｌｌｏ．ｎｅｔのＣＮＡＭＥを含み得る。ＣＮＡＭＥにおいて、「ｒｅｆｌｅｃｔｏｒ」はリフレクタＤＮＳサーバ２０８のＩＰアドレスであり、「ｃｏｌｌｅｃｔｏｒ」はコレクタＤＮＳサーバ２１０のＩＰアドレスであり、そして、「ｔａｒｇｅｔ」は目標ＩＰアドレスである。さらに、応答２１８は、ｎｓ．ｒｅｆｌｅｃｔｏｒ−ｃｏｌｌｅｃｔｏｒ−ｔａｒｇｅｔ．ｍｓｒａｐｏｌｌｏ．ｎｅｔのサーバ名またはＮＳを含み得る。このサーバ名は、リフレクタＤＮＳサーバ２０８の名である。応答２１８はまた、ｒｅｆｌｅｃｔｏｒのサーバアドレスまたはＮＳ＿ＡＤＤＲＥＳＳを含み得る。このサーバアドレスは、リフレクタＤＮＳサーバ２０８のＩＰアドレスである。
【００２７】
ローカルＤＮＳリゾルバ２０４は、応答２１８を受信し、ＤＮＳ解決がリフレクタＤＮＳサーバ２０８に委託されたと（応答２１８内の指示に基づいて）判断する。目標ＩＰアドレスは応答２１８に組み込まれるが、ローカルＤＮＳリゾルバ２０４は組み込まれた目標ＩＰアドレスを解釈する仕方を知らない。したがって、応答２１８の受信に応えて、ローカルＤＮＳリゾルバ２０４は、リフレクタＤＮＳサーバ２０８にＤＮＳクエリ２２０を提出し、特定のＵＲＬのＩＰアドレスを要求する。ＤＮＳクエリ２２０は、コンピューティングデバイス２０２に返されることになるオペレーションサーバのＩＰアドレスおよびまたコレクタＤＮＳサーバ２１０の識別子を含み、両方とも（たとえば、ＣＮＡＭＥに組み込まれ）応答２１８でローカルＤＮＳリゾルバ２０４によって受信されたものである。したがって、応答２１８に組み込まれているのがコンピューティングデバイス２０２に返されることになるオペレーションサーバのＩＰアドレスであっても、ローカルＤＮＳリゾルバ２０４は組み込まれた目標ＩＰアドレスの解釈の仕方を知らないので、ローカルＤＮＳリゾルバ２０４はＤＮＳクエリ２２０をリフレクタＤＮＳサーバ２０８に提出する。
【００２８】
１つまたは複数の実施形態で、応答２１８は、リフレクタＤＮＳサーバ２０８の名およびＩＰアドレスを含み、ＤＮＳクエリ２２０が提出されようとする先のＤＮＳサーバをローカルＤＮＳリゾルバ２０４に知らせる。ローカルＤＮＳリゾルバ２０４は、ネットワークアドレスがそのために要求されるドメイン名として応答２１８で受信されるＣＮＡＭＥをＤＮＳクエリ２２０内に含む。
【００２９】
リフレクタＤＮＳサーバ２０８は、ＤＮＳクエリ２２０を受信し、ＤＮＳクエリ２２０に応答して、リフレクタＤＮＳサーバ２０８がＤＮＳ解決をコレクタＤＮＳサーバ２１０に委託したという指示を含む応答２２２を生成する。これをまた、ＤＮＳクエリのコレクタＤＮＳサーバ２１０への反射と呼ぶ。応答２２２はまた、（前述のように、トップレベルＤＮＳサーバ２０６によって判定され、応答２１８に含まれた）コンピューティングデバイス２０２に返されることになるオペレーションサーバのＩＰアドレスを含む。
【００３０】
１つまたは複数の実施形態で、応答２２２は、ＤＮＳクエリ２２０で受信されたＣＮＡＭＥを含む。応答２２２はまた、コレクタＤＮＳサーバ２１０の名およびＩＰアドレスである、ローカルＤＮＳリゾルバ２０４がＤＮＳクエリ２２４を送信しようとする先のサーバを指示するサブドメインサーバ名およびサブドメインＩＰアドレスを含む。
【００３１】
ローカルＤＮＳリゾルバ２０４は、応答２２２を受信し、ＤＮＳ解決がコレクタＤＮＳサーバ２１０に委託されたと（応答２２２の指示に基づいて）判断する。目標ＩＰアドレスは応答２２２に組み込まれるが、ローカルＤＮＳリゾルバ２０４は、組み込まれた目標ＩＰアドレスの解釈の仕方を知らない。したがって、応答２２２の受信に応答して、ローカルＤＮＳリゾルバ２０４は、ＤＮＳクエリ２２４をコレクタＤＮＳサーバ２１０に提出して、特定のＵＲＬのＩＰアドレスを要求する。ＤＮＳクエリ２２４は、応答２２２でローカルＤＮＳリゾルバ２０４によって受信された（たとえば、ＣＮＡＭＥに組み込まれた）、コンピューティングデバイス２０２に返されることになるオペレーションサーバのＩＰアドレスを含む。したがって、応答２２２内に組み込まれたのが、コンピューティングデバイス２０２に返されることになるオペレーションサーバのＩＰアドレスであっても、ローカルＤＮＳリゾルバ２０４は組み込まれた目標ＩＰアドレスの解釈の仕方を知らないので、ローカルＤＮＳリゾルバ２０４は、ＤＮＳクエリ２２４をコレクタＤＮＳサーバ２１０に提出する。
【００３２】
１つまたは複数の実施形態で、応答２２２は、コレクタＤＮＳサーバ２１０の名およびＩＰアドレスを含み、ＤＮＳクエリ２２４が提出されることになる先のＤＮＳサーバをローカルＤＮＳリゾルバ２０４に知らせる。ローカルＤＮＳリゾルバ２０４は、ネットワークアドレスがそのために要求されるドメイン名として応答２２２で受信されるＣＮＡＭＥをＤＮＳクエリ２２４内に含む。
【００３３】
コレクタＤＮＳサーバ２１０は、ＤＮＳクエリ２２４を受信し、ＤＮＳクエリ２２４に応答してコンピューティングデバイス２０２に返されることになるオペレーションサーバの（前述のようにトップレベルＤＮＳサーバ２０６によって判定され、応答２１８および応答２２２に含まれる）ＩＰアドレスを含む応答２２６を生成する。ローカルＤＮＳリゾルバ２０４は、応答２２６を受信し、応答して、応答２２８を生成してコンピューティングデバイス２０２に送信する。応答２２８は、前述のようにトップレベルＤＮＳサーバ２０６によって判定されたコンピューティングデバイス２０２に返されることになるオペレーションサーバのＩＰアドレスを含む。
【００３４】
１つまたは複数の実施形態で、コレクタＤＮＳサーバ２１０は、ＤＮＳクエリ２２４から、ＤＮＳクエリ２２４で受信されたＣＮＡＭＥに組み込まれた、目標ＩＰアドレスを取得する。コレクタＤＮＳサーバ２１０は、マップ２３０に基づいて判定されるようなコンピューティングデバイス２０２に返されることになるデータセンタ内のオペレーションサーバのＩＰアドレスとしてローカルＤＮＳリゾルバ２０４に目標ＩＰアドレスを返す。
【００３５】
加えて、ローカルＤＮＳリゾルバ２０４およびデータセンタ２１２の間の通信の１つまたは複数のネットワーク性能測定結果を判定する。これらのネットワーク性能測定結果は、ローカルＤＮＳリゾルバ２０４とデータセンタ２１２の間の往復時間（ＲＴＴ）、ならびに／またはローカルＤＮＳリゾルバ２０４とデータセンタ２１２の間のパケット損失測定結果とすることができる。ローカルＤＮＳリゾルバとデータセンタ２１２の間の通信のネットワーク性能測定結果を、ローカルＤＮＳリゾルバ２０４とサーバ２０８および２１０の間の通信に基づいて判定する。
【００３６】
ローカルＤＮＳリゾルバ２０４およびデータセンタ２１２の間の通信の往復時間を、コレクタＤＮＳサーバ２１０によって、あるいは別のモジュールもしくはデバイスによって、判定することができる。この往復時間を、応答２２２のローカルＤＮＳリゾルバ２０４への送信とコレクタＤＮＳサーバ２１０によるＤＮＳクエリ２２４の受信の間に経過した時間量として判定する。あるいは、この往復時間を、リフレクタＤＮＳサーバ２０８によるＤＮＳクエリ２２０の受信とコレクタＤＮＳサーバ２１０によるＤＮＳクエリ２２４の受信の間に経過した時間量など、他の形で判定することができる。ローカルＤＮＳリゾルバ２０４とデータセンタ２１２の間の距離、ローカルＤＮＳリゾルバ２０４とデータセンタ２１２の間のネットワーク内のデバイスの数および／もしくはタイプ、ローカルＤＮＳリゾルバ２０４とデータセンタ２１２の間のネットワークの帯域幅、ローカルＤＮＳリゾルバ２０４とデータセンタ２１２との間のネットワークのトラフィックもしくは輻輳の量など、様々な異なる要因がこの往復時間に影響を与え得ることが理解されよう。
【００３７】
ローカルＤＮＳリゾルバ２０４とデータセンタ２１２との間のパケット損失測定結果を、異なる形で判定することができる。ローカルＤＮＳリゾルバ２０４とＤＮＳサーバ（たとえば、サーバ２０６、２０８、および２１０）との間の通信は、ネットワーク（たとえば、図１のネットワーク１０８）を介してパケットで情報を通信することによって、運ばれる。ネットワークを介して送信される１つまたは複数のパケットが、それらの意図した宛先に到達せず、したがって、失われたパケットと呼ばれるという状況が生じ得る。１つまたは複数のパケットの損失を、異なる方式で識別することができる。
【００３８】
１つまたは複数の実施形態で、リフレクタＤＮＳサーバ２０８からローカルＤＮＳリゾルバ２０４への応答２２２を含むパケットの損失を、識別することができる。ローカルＤＮＳリゾルバ２０４は通常は、ＤＮＳクエリ２２０の送信の、タイムアウト期間としばしば呼ばれる、特定の時間内にＤＮＳクエリ２２０への応答２２２を期待する。ローカルＤＮＳリゾルバ２０４がこのタイムアウト期間内に応答２２２を受信しない場合、リゾルバ２０４がＤＮＳクエリ２２０を再送する。したがって、リフレクタＤＮＳサーバ２０８が同一ＤＮＳクエリ２２０を複数回受信した場合、サーバ２０８は、応答２２２がローカルＤＮＳリゾルバ２０４によって受信されなかったと知る。リフレクタＤＮＳサーバ２０８は、サーバ２０８が以前に受信した同一ＤＮＳクエリ２２０を受信するたびに、応答２２２を含むパケットが失われたと見なすことができる。
【００３９】
加えて、異なるローカルＤＮＳリゾルバは異なるタイムアウト期間を実装することができるが、これらのタイムアウト期間は通常は、０．５秒または１秒などの固定された時間量である。これらのタイムアウト期間は通常は、ローカルＤＮＳリゾルバ２０４とデータセンタ２１２の間の往復時間よりもはるかに長い。したがって、タイムアウト期間は、往復時間と容易に区別することができる。リフレクタＤＮＳサーバ２０８は、ＤＮＳクエリ２２０に応答２２２を送信しないことによってローカルＤＮＳリゾルバ２０４によって使用されるタイムアウト期間を定めることができる。応答２２２を送信しなかったとき、ローカルＤＮＳリゾルバ２０４は、ローカルＤＮＳリゾルバ２０４によって使用されるタイムアウト期間が経過した後に、ＤＮＳクエリ２２０を再送することになる。リフレクタＤＮＳサーバ２０８は、最初に送信されたＤＮＳクエリ２２０と再送されたＤＮＳクエリ２２０の間に経過する時間をローカルＤＮＳリゾルバ２０４によって使用されるタイムアウト期間として（たとえば、最も近い２分の１秒単位の時間にして）定めることができる。
【００４０】
１つまたは複数の実施形態で、ローカルＤＮＳリゾルバ２０４からコレクタＤＮＳサーバ２１０へのＤＮＳクエリ２２４を含むパケットの損失を識別することができる。コレクタＤＮＳサーバ２１０は、応答２２２がリフレクタＤＮＳサーバ２０８によって送信された後にＤＮＳクエリ２２４を予期することを知っている。応答２２２の送信とＤＮＳクエリ２２４の受信の間の時間量が閾値を超える場合、コレクタＤＮＳサーバ２１０は、ＤＮＳクエリ２２４を含むパケットが失われたと見なすことができる。この閾値時間量は、前述のように判定され得る、ローカルＤＮＳリゾルバ２０４によって使用されるタイムアウト期間に基づくことができる。応答２２２の送信とＤＮＳクエリ２２４の受信との間の時間量がローカルＤＮＳリゾルバ２０４によって使用されるタイムアウト期間を超える場合、コレクタＤＮＳサーバ２１０は次いで、ＤＮＳクエリ２２４を含むパケットが失われたと見なすことができる。
【００４１】
１つまたは複数の実施形態で、コレクタＤＮＳサーバ２１０からローカルＤＮＳリゾルバ２０４への応答２２６を含むパケットの損失を識別することができる。ローカルＤＮＳリゾルバ２０４は通常は、ＤＮＳクエリ２２４の送信の、しばしばタイムアウト期間と呼ばれる、特定の時間量内にＤＮＳクエリ２２４への応答２２６を期待する。このタイムアウト期間は、ＤＮＳクエリ２２０への応答２２２を期待しているローカルＤＮＳリゾルバ２０４によって使用される同一タイムアウト期間、あるいは異なるタイムアウト期間とすることができる。ローカルＤＮＳリゾルバ２０４がこのタイムアウト期間内に応答２２６を受信しなかった場合、リゾルバ２０４はＤＮＳクエリ２２４を再送する。したがって、コレクタＤＮＳサーバ２１０が同一ＤＮＳクエリ２２４を複数回受信した場合、サーバ２１０は、応答２２６がローカルＤＮＳリゾルバ２０４によって受信されなかったと知る。コレクタＤＮＳサーバ２１０は、サーバ２１０がそれが前に受信した同一ＤＮＳクエリ２２４を受信するたびに、応答２２６を含むパケットが失われたと見なすことができる。
【００４２】
同様に、複数のパケットの損失を判定することができる。タイムアウト期間は、異なる失われたパケットにより異なる場合がある。たとえば、１秒の第１のタイムアウトは、第１のパケットが失われた後に、使用することができ、２秒の第２のタイムアウトは、その次のパケットが失われた場合に使用することができ、３秒の第３のタイムアウトは、その次のパケットが失われた場合に使用することができるなど。これらの異なるタイムアウト期間は、前述のように識別することができる（たとえば、リフレクタＤＮＳサーバ２０８は、ローカルＤＮＳリゾルバ２０４から受信された最初の３つのＤＮＳクエリ２２０に応答２２２を送信しないことによってローカルＤＮＳリゾルバ２０４によって使用されるタイムアウト期間を定めることができる）。
【００４３】
あるいは、ローカルＤＮＳリゾルバ２０４は、失われたパケットに関する情報を識別および保持するための機能を含み得る。このような状況で、ローカルＤＮＳリゾルバ２０４はまた、呼び出されて（たとえば、リフレクタＤＮＳサーバ２０８および／またはコレクタＤＮＳサーバ２１０によって）ローカルＤＮＳリゾルバ２０４からの失われたパケットに関する情報を取得することができる、アプリケーションプログラミングインターフェース（ＡＰＩ）などのインターフェースを露出することができる。
【００４４】
パケットの損失に関する様々な情報を保持する。パケットの損失に関するこの情報は、たとえば、パケット損失率、またはパケットが失われる頻度、パケット損失パターン（たとえば、失われるパケットの数、失われる連続パケット、パケット損失の時刻、パケット損失の曜日など）などを含み得る。
【００４５】
１つまたは複数のパケットの損失を、通常はリフレクタＤＮＳサーバ２０８および／またはコレクタＤＮＳサーバ２１０によって識別するが、一方で１つまたは複数のパケットの損失はデータセンタ２１２の別のモジュールもしくはデバイスによって識別することができる。１つまたは複数のパケットの損失の識別に加えて、このような損失が生じた方向もまた識別することができる。すなわち、データセンタ２１２からローカルＤＮＳリゾルバ２０４に送信されたパケットの損失を、ローカルＤＮＳリゾルバ２０４からデータセンタ２１２に送信されるパケットの損失とは別個に識別することができる。このような損失が生じた特定の方向でのパケットの損失に関する様々な情報を保持することができる。
【００４６】
したがって、ＤＮＳ解決プロセスの部分として、ローカルＤＮＳリゾルバとデータセンタの間の通信のネットワーク性能測定結果を取得する。複数の異なるローカルＤＮＳリゾルバの各々について、ネットワーク性能測定結果を、ローカルＤＮＳリゾルバと複数の異なるデータセンタの間で取得することができる。これらの取得されたネットワーク性能測定結果の記録を保持する。この記録を、１つまたは複数のヒストグラムなどの異なる形で保持することができる。ローカルＤＮＳリゾルバとデータセンタの間のネットワーク性能測定結果は、（リゾルバからアドレスへのマップ２３０に記憶されるような、）データセンタの特定のオペレーションサーバＩＰアドレスへの特定のローカルＤＮＳリゾルバのマッピングを判定するために使用することができる。
【００４７】
ローカルＤＮＳリゾルバとデータセンタの間のネットワーク性能測定結果は、様々な異なる形でのデータセンタの特定のオペレーションサーバＩＰアドレスへの特定のローカルＤＮＳリゾルバのマッピングを判定するために使用することができる。特定のローカルＤＮＳリゾルバについて、ローカルＤＮＳリゾルバと異なるデータセンタの間の取得されたネットワーク性能測定結果は、比較または他の方法で分析されてデータセンタを選択することができる。選択されたデータセンタ内のオペレーションサーバのＩＰアドレスは、マップ２３０に含まれる。たとえば、データセンタと特定のローカルＤＮＳリゾルバとの間で最も短い往復時間測定が取得されたデータセンタを選択することができる。別の例として、データセンタと特定のローカルＤＮＳリゾルバとの間の失われたパケットの最小数を取得した（または、データセンタから特定のローカルＤＮＳリゾルバに送信された失われたパケットの最小数を取得した）データセンタを選択することができる。あるいは、取得された往復時間測定結果および／またはパケット損失測定結果を、様々な他の技法またはプロセスとともにデータセンタを選択するために使用することができる。
【００４８】
１つまたは複数の実施形態で、リゾルバからアドレスへのマップ２３０は、前述のようにネットワーク性能測定結果に基づいて経時的に更新可能な特定のローカルＤＮＳリゾルバの初期のマッピングを含む。特定のローカルＤＮＳリゾルバの初期のマッピングは、様々な異なる形で取得可能であり、地理的位置、他のローカルＤＮＳリゾルバがマップされた先のデータセンタ、無作為抽出、他の基準またはルールなどの様々な異なる基準に基づくことができる。たとえば、トップレベルＤＮＳサーバ２０６は、リゾルバ２０４のネットワークアドレス内のプレフィックスを分析すること、および、同一プレフィックスを有する別のローカルＤＮＳリゾルバにマップされたリゾルバ２０４にオペレーションサーバアドレスをマップすることによって、ローカルＤＮＳリゾルバ２０４の初期のマッピングを識別することができる。たとえば、ローカルＤＮＳリゾルバ２０４がａａａ．ｂｂｂ．ｃｃｃ．ｄｄｄのネットワークアドレスを有し、マップ２３０内の別のローカルＤＮＳリゾルバがａａａ．ｂｂｂ．ｃｃｃ．ｅｅｅのネットワークアドレスを有する場合、次いでこれらの２つのローカルＤＮＳリゾルバは、同一プレフィックスａａａ．ｂｂｂ．ｃｃｃを有するネットワークアドレスを有し、トップレベルＤＮＳサーバ２０６は、ネットワークアドレスａａａ．ｂｂｂ．ｃｃｃ．ｅｅｅを有するローカルＤＮＳリゾルバがマップされるのと同じオペレーションサーバアドレスにローカルＤＮＳリゾルバ２０４をマップする。
【００４９】
１つまたは複数の実施形態で、ローカルＤＮＳリゾルバ２０４を、ローカルＤＮＳリゾルバ２０４がトップレベルＤＮＳサーバ２０６に提出する各ＤＮＳクエリに応答してリフレクタＤＮＳサーバ２０８およびコレクタＤＮＳサーバ２１０に反射することができる。あるいは、トップレベルＤＮＳサーバ２０６は、ローカルＤＮＳリゾルバ２０４を特定のＤＮＳクエリについてのみサーバ２０８および２１０に反射することになると定めることができる。これらの特定のＤＮＳクエリを、時間間隔に基づいて、ＤＮＳクエリが受信される頻度に基づいて、特定のローカルＤＮＳリゾルバについて以前に反射されたＤＮＳクエリの数に基づいてなど、様々な異なる形で識別することができる。たとえば、トップレベルＤＮＳサーバ２０６は、各ローカルＤＮＳリゾルバについて１時間当たりに１つのＤＮＳクエリをサーバ２０８および２１０に反射することになるように定めることができる。別の例として、トップレベルＤＮＳサーバ２０６は、閾値数のＤＮＳクエリを反射するまで、ローカルＤＮＳリゾルバからの各ＤＮＳクエリをサーバ２０８および２１０に反射することになるように定めることができ、次いでローカルＤＮＳリゾルバについて１時間当たりに１つのＤＮＳクエリをサーバ２０８および２１０に反射することになる。この閾値数は、固定数（たとえば、５０ＤＮＳクエリ）、あるいは相対数（たとえば、そのドメイン名に対応するデータセンタの数の２倍）とすることができる。
【００５０】
あるいは、他の技法を使用してデータセンタ２１２とローカルＤＮＳリゾルバ２０４の間のネットワーク性能測定結果を取得することができ、本明細書で論じられるＤＮＳリフレクションを使用してネットワーク性能を測定する技法を、このような他の技法が失敗したときに（あるいは、このような他の技法を介して取得されたネットワーク性能測定結果を確認するために）使用する。たとえば、データセンタ２１２内のデバイス（リフレクタＤＮＳサーバ２０８およびコレクタＤＮＳサーバ２１０を含むデバイスなど）は、従来のｐｉｎｇ要求を使用してデータセンタ２１２とローカルＤＮＳリゾルバ２０４の間のネットワーク性能測定結果を取得することができる。ｐｉｎｇ要求を使用するときの往復時間および／または失われたパケットを、前述のものと同様の技法を使用して、識別することができる。本明細書で論じられるＤＮＳリフレクションを使用してネットワーク性能を測定する技法は、ｐｉｎｇ要求を使用して取得されたネットワーク性能測定結果を確認するために使用することができる、または、ローカルＤＮＳリゾルバ２０４がｐｉｎｇ要求に応答しない場合に使用することができる。
【００５１】
別の例として、データセンタ２１２内のデバイス（リフレクタＤＮＳサーバ２０８およびコレクタＤＮＳサーバ２１０を含むデバイスなど）は、ローカルＤＮＳリゾルバ２０４にＤＮＳクエリを送信することによって、ネットワーク性能測定結果を取得することができる。このＤＮＳクエリは、単純な「．」または「．ｃｏｍ」などの様々な異なるドメイン名を解決するための要求とすることができる。このようなＤＮＳクエリを提出するときの往復時間および／または失われたパケットは、前述のものと同様の技法を使用して識別され得る。本明細書で論じられるＤＮＳリフレクションを使用してネットワーク性能を測定する技法は、このようなＤＮＳクエリを提出するときに取得されたネットワーク性能測定結果を確認するために使用することができる、または、ローカルＤＮＳリゾルバ２０４がこのようなＤＮＳクエリを提出するときに応答しなかった場合に使用することができる。
【００５２】
加えて、ローカルＤＮＳリゾルバ２０４を、１つまたは複数の特定のドメインのＤＮＳクエリに応答してリフレクタＤＮＳサーバ２０８およびコレクタＤＮＳサーバ２１０に反射することができることに留意されたい。トップレベルＤＮＳサーバ２０６がこれらの１つまたは複数の特定のドメインのうちの１つについてのＤＮＳクエリを受信するとき、ローカルＤＮＳリゾルバ２０４を、前述のように、サーバ２０８および２１０に反射する。しかし、トップレベルＤＮＳサーバ２０６が異なるドメインについてのＤＮＳクエリを受信するとき、サーバ２０６は、ローカルＤＮＳリゾルバ２０４を反射することなしにマップ２３０から要求されたネットワークアドレスを返す。
【００５３】
トップレベルＤＮＳサーバ２０６に１つまたは複数の特定のドメインのみについてＤＮＳクエリを反射させることは、様々な異なる使用のシナリオをサポートする。たとえば、コンピューティングデバイス２０２に返されることになるウェブページが、特定のファイルへのＵＲＬを組み込んでいる場合がある。この特定のファイルは、サイズは小さくてもよく、ウェブページの部分として表示される必要さえない。しかし、この特定のファイルへのＵＲＬは、ＤＮＳクエリが反射される１つまたは複数の特定のドメインのうちの１つである。したがって、ウェブページをコンピューティングデバイス２０２によって要求するとき、ウェブページのＵＲＬを解決し、ネットワークアドレスが、ＤＮＳクエリを反射することなしにトップレベルＤＮＳサーバ２０６によって返される。ウェブページは次いで、コンピューティングデバイス２０２として検索および表示することが可能であり、この検索および表示の部分として、特定のファイルへの組み込まれたＵＲＬを識別する。しかしながら、この組み込まれたＵＲＬは、前述のようにリフレクタＤＮＳサーバ２０８およびコレクタＤＮＳサーバ２１０へのＵＲＬを含むＤＮＳクエリを反射することによって解決される。
【００５４】
図２の例では、１つのデータセンタ２１２を示す。しかしながら、複数のデータセンタが、前述のように特定のドメイン名に対応する。トップレベルＤＮＳサーバ２０６は、ローカルＤＮＳリゾルバが、時間間隔に基づいて、ＤＮＳクエリを特定のデータセンタに反射する頻度に基づいて、各データセンタに前に反射されたＤＮＳクエリの数に基づいて、データセンタの地理的位置に基づいてなど、様々な異なる形で反射される先の特定のデータセンタを判断することができる。たとえば、トップレベルＤＮＳサーバ２０６は、各ローカルＤＮＳリゾルバについて１時間ごとに１つのＤＮＳクエリを各データセンタに反射することになると判定することができる。別の例として、サーバ２０６が、ＤＮＳクエリを特定のデータセンタに反射することになると判定するたびに、データセンタの順序付きリストで識別される次のデータセンタがＤＮＳクエリを、反射される先のデータセンタとして選択するように、トップレベルＤＮＳサーバ２０６は、データセンタの順序付きリストを保持し、ラウンドロビン方式でデータセンタを識別することができる。
【００５５】
さらに別の例として、トップレベルＤＮＳサーバ２０６は、特定のローカルＤＮＳリゾルバがマップされた現在のデータセンタについて取得されたネットワーク性能測定結果が閾値を上回る場合、次いで、特定のローカルＤＮＳリゾルバを、現在のデータセンタの地理的にごく近傍にないデータセンタに反射する必要がないと判断することができる。この閾値は、固定値（たとえば、０．２秒未満の往復時間）、または相対的値（たとえば、マップ２３０内のその他のマッピングのオペレーションサーバアドレスについての往復時間の少なくとも７０％未満の往復時間）とすることができる。データセンタの地理的近傍を、マイルでの直線距離、同市内に置かれたデータセンタ、同大陸内に置かれたデータセンタなど、異なる形で判定することができる。たとえば、特定のローカルＤＮＳリゾルバがマップされた現在のデータセンタについて取得されたネットワーク性能測定結果が閾値を上回り、そして、現在のデータセンタが北米に置かれている場合、そのとき、特定のローカルＤＮＳリゾルバを、ヨーロッパまたはオーストラリアのデータセンタに反射する必要はない。
【００５６】
リフレクタＤＮＳサーバ２０８およびコレクタＤＮＳサーバ２１０は、２つの異なるＩＰアドレスを有し、ローカルＤＮＳリゾルバ２０４によって２つの異なるサーバとして見られる。それでもなお、１つまたは複数の実施形態で、リフレクタＤＮＳサーバ２０８およびコレクタＤＮＳサーバ２１０を両方とも同一コンピューティングデバイスに実装し（たとえば、複数のネットワークインターフェースを有し）、同一クロックを両方のサーバ２０８および２１０が使用することを可能にする。サーバ２０８および２１０の同一クロックの使用を可能にすることは、２つの異なるデバイスからのクロックを同期化する必要がないので、ネットワーク性能測定結果の取得を単純化する。あるいは、リフレクタＤＮＳサーバ２０８およびコレクタＤＮＳサーバ２１０を、２つの異なるコンピューティングデバイス上に、これらの２つの異なるコンピューティングデバイス上のクロックを互いに同期化しながら、実装することができる。
【００５７】
本明細書に記載の技法を使用して取得されたネットワーク性能測定結果は、ローカルＤＮＳリゾルバとデータセンタとの間のネットワーク性能測定結果であることに留意されたい。同様に、リゾルバからアドレスへのマップ２３０は、データセンタ内のオペレーションサーバのネットワークアドレスへのローカルＤＮＳリゾルバのマッピングである。ローカルＤＮＳリゾルバによって送信される特定のコンピューティングデバイスからのＤＮＳクエリに基づいて取得されるネットワーク性能測定結果は、任意の追加のコンピューティングデバイスに対して使用可能であり、同一ローカルＤＮＳリゾルバを使用することもできる。したがって、同一ローカルＤＮＳリゾルバを使用する様々なコンピューティングデバイスが、同一ネットワークアドレスへとＤＮＳクエリを解決させることになる。たとえば、コンピューティングデバイス２０２に加えて、複数の追加のコンピューティングデバイスが、ローカルＤＮＳリゾルバ２０４を使用してＤＮＳクエリを解決することができる。これらの複数の追加のコンピューティングデバイスの各々、ならびにコンピューティングデバイス２０２は、同一ネットワークアドレスへと同一ＤＮＳクエリを解決させる。
【００５８】
前述の議論で、リゾルバからアドレスへのマップ２３０を、トップレベルＤＮＳサーバ２０６によって保持するものとして論じている。あるいは、マップ２３０を、リフレクタＤＮＳサーバ、コレクタＤＮＳサーバ、または、様々なデータセンタ内の他のデバイスなど、他のデバイスによって保持することができる。マップ２３０を保持する方式に応じて、マップのコピーを、異なるデバイスにわたって同期化することができる。たとえば、様々なデータセンタ内のコレクタＤＮＳサーバはマップ２３０を保持することができ、特定のコレクタＤＮＳサーバによってマップ２３０に行われた各変更を、その他のコレクタＤＮＳサーバに通信する。マップ２３０をトップレベルＤＮＳサーバ２０６以外のデバイスによって保持する実施形態では、ＤＮＳクエリ２１６内で要求されているネットワークアドレスを、サーバ２０６によって判定せず、サーバ２０６が返す応答２１８に組み込まないことを理解されたい。そうではなくて、ＤＮＳクエリ２１６内で要求されているネットワークアドレスを、別のデバイスによって判定することになる。たとえば、マップ２３０を様々なデータセンタ内のコレクタＤＮＳサーバによって保持する場合、次いで、コレクタＤＮＳサーバ２１０はＤＮＳクエリ２１６内で要求されているネットワークアドレスを判定し、それゆえにネットワークアドレスをＤＮＳクエリ２２０および２２４に含まない。
【００５９】
加えて、前述の議論では、ＤＮＳクエリを、１つのリフレクタＤＮＳサーバおよび１つのコレクタＤＮＳサーバに反射するものとして論じている。しかし、本明細書で論じられるＤＮＳリフレクションを使用してネットワーク性能を測定する技法を、データセンタ内の複数の異なるＤＮＳサーバにＤＮＳクエリを反射するために使用することができる。たとえば、ローカルＤＮＳリゾルバ２０４をコレクタＤＮＳサーバ２１０に反射するのではなくて、ローカルＤＮＳリゾルバ２０４を、データセンタ２１２内の複数の異なるリフレクタＤＮＳサーバ２０８に反射することができる。これらの追加の反射についてのネットワーク性能測定結果を、測定結果の取得に関する前述の議論に類似して、取得することができる。さらに、本明細書で論じられるＤＮＳリフレクションを使用してネットワーク性能を測定する技法を、複数の異なるデータセンタの複数の異なるリフレクタおよびコレクタＤＮＳサーバにＤＮＳクエリを反射するために使用することができることを理解されたい。たとえば、要求されたネットワークアドレスを返すのではなくて、コレクタＤＮＳサーバ２１０は、ドメイン名に対応する追加のデータセンタのリフレクタＤＮＳサーバにローカルＤＮＳリゾルバ２０４からのＤＮＳクエリを反射することができる。この追加のデータセンタについてのネットワーク性能測定結果を、前述のようにデータセンタ２１２について取得される測定結果と類似して、取得することができる。
【００６０】
図２の議論で、リフレクタＤＮＳサーバ２０８およびコレクタＤＮＳサーバ２１０を、別個のＤＮＳサーバとして論じる。ローカルＤＮＳリゾルバ２０４を通常は、リゾルバ２０４がそのＤＮＳサーバから応答を受信した後に、同一ＤＮＳサーバにＤＮＳクエリを再送しないように構成する。したがって、２つの異なるＤＮＳサーバ２０８および２１０を図２で使用する。ローカルＤＮＳリゾルバ２０４は、リゾルバ２０４がＤＮＳサーバから応答を受信した後に、同一ＤＮＳサーバへのＤＮＳクエリの再送をサポートすることになり、その場合、リフレクタＤＮＳサーバ２０８およびコレクタＤＮＳサーバ２１０は同一ＤＮＳサーバとすることができる。
【００６１】
図３は、１つまたは複数の実施形態によるＤＮＳリフレクションを使用したネットワーク性能の測定を実装するデバイスの例示的プロセス３００を示す流れ図である。プロセス３００を、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せに実装することができる。プロセス３００を、１組の動作として示すが、様々な動作の操作を実行するために示された順番に限定しない。プロセス３００は、ＤＮＳリフレクションを使用したネットワーク性能の測定のための例示的プロセスであり、ＤＮＳリフレクションを使用したネットワーク性能の測定の追加の議論が異なる図面を参照して本明細書に含まれる。
【００６２】
プロセス３００で、トップレベルＤＮＳサーバは、ドメイン名に対応するネットワークアドレスについてのＤＮＳクエリを受信する（動作３０２）。このＤＮＳクエリをローカルＤＮＳリゾルバから受信し、ドメイン名を通常は、前述のようにＵＲＬとして識別する。要求されるネットワークアドレスは、前述のように、ＩＰアドレスあるいは別のアドレスとすることができる。
【００６３】
トップレベルＤＮＳサーバは、別のサーバにローカルＤＮＳリゾルバを反射してネットワークアドレスを取得するローカルＤＮＳリゾルバに応答を返す（動作３０４）。この他のサーバは、トップレベルＤＮＳサーバを含むデータセンタとは通常は（但し、その必要はない）異なるデータセンタであるデータセンタ内に含まれるリフレクタＤＮＳサーバである。
【００６４】
リフレクタＤＮＳサーバが、ドメイン名に対応するネットワークアドレスのＤＮＳクエリを受信する（動作３０６）。動作３０６のこのＤＮＳクエリを、ローカルＤＮＳリゾルバから受信し、動作３０６でこのＤＮＳクエリを受信するリフレクタＤＮＳサーバは、動作３０４でトップレベルＤＮＳサーバが指示するリフレクタＤＮＳサーバである。
【００６５】
リフレクタＤＮＳサーバは、さらに別のサーバにローカルＤＮＳリゾルバを反射してネットワークアドレスを取得するローカルＤＮＳリゾルバに応答を返す（動作３０８）。ローカルＤＮＳリゾルバが反射される先のこの他のサーバは、リフレクタＤＮＳサーバと同じデータセンタに含まれるコレクタＤＮＳサーバである。あるいは、１つまたは複数のリフレクタＤＮＳサーバは、リフレクタＤＮＳサーバが最終的にローカルＤＮＳリゾルバをコレクタＤＮＳサーバに反射する前に、別のリフレクタＤＮＳサーバにローカルＤＮＳリゾルバを反射することができる。
【００６６】
コレクタＤＮＳサーバが、ドメイン名に対応するネットワークアドレスのＤＮＳクエリを受信する（動作３１０）。動作３１０のこのＤＮＳクエリをローカルＤＮＳリゾルバから受信し、動作３１０でこのＤＮＳクエリを受信するコレクタＤＮＳサーバは、動作３０８でリフレクタＤＮＳサーバにが指示するコレクタＤＮＳサーバである。
【００６７】
コレクタＤＮＳサーバが、ローカルＤＮＳリゾルバに、ドメイン名に対応する要求されたネットワークアドレスを含む応答を返す（動作３１２）。コレクタＤＮＳサーバは、前述のように、コレクタＤＮＳサーバによって受信されるＤＮＳクエリに組み込まれたものとしてネットワークアドレスを識別すること、ネットワークアドレスの表または他の記録にアクセスすることによってなど、異なる形でネットワークアドレスを識別することができる。コレクタＤＮＳサーバによって返される応答が実際にＤＮＳリフレクションオペレーションを終了させるので、動作３１０で受信されるクエリを、最終ＤＮＳクエリとも呼び、動作３１２での応答の返信を、最終ＤＮＳ応答とも呼ぶ。
【００６８】
加えて、リフレクタＤＮＳサーバおよびコレクタＤＮＳサーバの両方でのローカルＤＮＳリゾルバとの間の通信を、ネットワーク性能測定結果を判定するために使用する（動作３１４）。これらのネットワーク性能測定結果は、ローカルＤＮＳリゾルバとリフレクタＤＮＳサーバおよびコレクタＤＮＳサーバの両方を含むデータセンタの間の通信のネットワーク性能の測定結果である。異なるネットワーク性能測定結果を、前述のように往復時間およびパケット損失情報など、動作３１４で識別することができる。
【００６９】
したがって、本明細書で論じられるＤＮＳリフレクションを使用してネットワーク性能を測定する技法は、ＤＮＳシステムを活用して、ローカルＤＮＳリゾルバとデータセンタの間の実際の通信に基づくネットワーク性能測定結果を取得することが理解されよう。ＤＮＳクエリの別のサーバへの反射を、それらの正規のオペレーションの部分として標準的なローカルＤＮＳリゾルバによってサポートし、それゆえに、本明細書で論じられるＤＮＳリフレクションを使用してネットワーク性能を測定する技法をサポートするために、標準的な既存のローカルＤＮＳリゾルバへの改変を行う必要はない。さらに、ローカルＤＮＳリゾルバを、それらが他の点で応答するように構成するようになるのではない追加の要求（ｐｉｎｇ要求など）に応答するように構成する必要はない。
【００７０】
さらに、本明細書で論じられるＤＮＳリフレクションを使用してネットワーク性能を測定する技法を、ＤＮＳ解決プロセスで使用する。データセンタのオペレーションサーバが保持するデータの要求および／または要求への応答は通常は、影響されない。言い換えれば、本明細書で論じられるＤＮＳリフレクションを使用してネットワーク性能を測定する技法は、データセンタのオペレーションサーバから要求されるデータを取得する際にどのサーバをアクセスするかではなく、ＤＮＳクエリを解決するときにどのサーバをアクセスするかに影響を与える。
【００７１】
図４は、１つまたは複数の実施形態によるＤＮＳリフレクションを使用したネットワーク性能の測定を実装するように構成可能な例示的コンピューティングデバイス４００を示す。コンピューティングデバイス４００は、たとえば、図１のコンピューティングデバイス１０２もしくは図２のコンピューティングデバイス２０２とすることができ、または、図１のローカルＤＮＳリゾルバ１０４、ＤＮＳサーバ１１０、およびオペレーションサーバ１１２のいずれか、もしくは、図２のリゾルバ２０４、トップレベルＤＮＳサーバ２０６、リフレクタＤＮＳサーバ２０８、およびコレクタＤＮＳサーバ２１０のいずれかを実装するために使用可能である。
【００７２】
コンピューティングデバイス４００は、１つまたは複数のプロセッサまたは処理ユニット４０２、１つまたは複数のメモリおよび／またはストレージ構成要素４０６を含むことができる１つまたは複数のコンピュータ可読媒体４０４、１つまたは複数の入力／出力（Ｉ／Ｏ）デバイス４０８、ならびに、様々な構成要素およびデバイスが互いに通信できるようにするバス４１０を含む。コンピュータ可読媒体４０４および／または１つもしくは複数のＩ／Ｏデバイス４０８を、コンピューティングデバイス４００の部分として含むことができ、あるいはそれに結合することができる。バス４１０は、メモリバスもしくはメモリコントローラ、周辺バス、加速グラフィックポート、プロセッサもしくはローカルバス、および、様々な異なるバスアーキテクチャを使用するその他のものを含む、いくつかのタイプのバス構造体のうちの１つもしくは複数を表す。バス４１０は、ワイヤードおよび／またはワイヤレスバスを含むことができる。
【００７３】
メモリ／ストレージ構成要素４０６は、１つまたは複数のコンピュータストレージ媒体を表す。構成要素４０６は、揮発性媒体（ランダムアクセスメモリ（ＲＡＭ）など）および／または非揮発性媒体（読取り専用メモリ（ＲＯＭ）、フラッシュメモリ、光ディスク、磁気ディスクなど）を含むことができる。構成要素４０６は、固定媒体（たとえば、ＲＡＭ、ＲＯＭ、固定ハードドライブなど）ならびに取外し可能な媒体（たとえば、フラッシュメモリドライブ、取外し可能なハードドライブ、光ディスクなど）を含むことができる。
【００７４】
本明細書で論じる技法を、１つまたは複数の処理ユニット４０２によって実行される命令を有する、ソフトウェアで実装することができる。異なる命令が、処理ユニット４０２内、処理ユニット４０２の様々なキャッシュメモリ内、デバイス４００（図示せず）の他のキャッシュメモリ内、他のコンピュータ可読媒体内など、コンピューティングデバイス４００の異なる構成要素内に記憶可能であることを理解されたい。加えて、命令がコンピューティングデバイス４００内で記憶される場所は経時的に変化し得ることを理解されたい。
【００７５】
１つまたは複数の入力／出力デバイス４０８は、ユーザがコンピューティングデバイス４００にコマンドおよび情報を入力できるようにし、そしてまた情報がユーザおよび／または他の構成要素もしくはデバイスに提示されることを可能にする。入力デバイスの例は、キーボード、カーソル制御デバイス（たとえば、マウス）、マイクロフォン、スキャナなどを含む。出力デバイスの例は、表示デバイス（たとえば、モニタもしくはプロジェクタ）、スピーカ、プリンタ、ネットワークカードなどを含む。
【００７６】
様々な技法を、ソフトウェアもしくはプログラムモジュールの一般的状況において本明細書で説明することができる。一般に、ソフトウェアは、特定のタスクを実行するまたは特定の抽象データタイプを実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造体などを含む。これらのモジュールおよび技法の実装を、ある種の形態のコンピュータ可読媒体に記憶することができ、またはそれらを介して送信することができる。コンピュータ可読媒体は、コンピューティングデバイスによってアクセス可能な任意の利用可能な媒体とすることができる。例として、そして限定ではなく、コンピュータ可読媒体は、「コンピュータストレージ媒体」および「通信媒体」を含むことができる。
【００７７】
「コンピュータストレージ媒体」は、コンピュータ可読命令、データ構造体、プログラムモジュール、または他のデータなどの情報の記憶のための任意の方法または技術で実装される揮発性および非揮発性、取外し可能なおよび取外し不可能な媒体を含む。コンピュータストレージ媒体を、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）もしくは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、または、所望の情報を記憶するために使用することができる、そしてコンピュータによってアクセス可能な、任意の他の媒体を含むが、これらに限定しない。
【００７８】
「通信媒体」は通常は、搬送波もしくは他の移送機構などの変調されたデータ信号でコンピュータ可読命令、データ構造体、プログラムモジュール、または、他のデータを具現化する。通信媒体はまた、任意の情報配信媒体を含む。「変調されたデータ信号」という用語は、信号内の情報をコード化するような方式でその特徴のうちの１つまたは複数をセットまたは変更される信号を意味する。例として、限定ではなく、通信媒体は、ワイヤードネットワークまたはダイレクトワイヤード接続などのワイヤード媒体と、音響、ＲＦ、赤外線、および他のワイヤレス媒体などのワイヤレス媒体とを含む。前述のいずれかの組合せもまた、コンピュータ可読媒体の範囲に含まれる。
【００７９】
概して、本明細書に記載の機能または技法のいずれも、ソフトウェア、ファームウェア、ハードウェア（たとえば、固定論理回路）、マニュアル処理、またはこれらの実装の組合せを使用し、実装することができる。本明細書で使用される「モジュール」および「構成要素」という用語は概して、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せを表す。ソフトウェア実装の場合、モジュールまたは構成要素は、プロセッサ（たとえば、１つまたは複数のＣＰＵ）で実行されるときに指定されたタスクを実行するプログラムコードを表す。プログラムコードを、そのさらなる説明を図４を参照して見ることができる１つまたは複数のコンピュータ可読メモリデバイスに記憶することができる。本明細書に記載のＤＮＳリフレクションを使用してネットワーク性能を測定する技法の特徴は、プラットフォームに依存しないことであり、その技法が様々なプロセッサを有する様々な商用計算プラットフォームに実装可能であることを意味する。
【００８０】
本主題を構造的特徴および／または方法論的動作に特有の言語で説明するが、添付の特許請求の範囲で定義される主題は前述の特定の特徴または動作に必ずしも限定しないことを理解されたい。そうではなくて、前述の特定の特徴および動作を、本特許請求の範囲を実装する例示的形態として開示する。
【図１】
2013527704.tif 000003
【図２】
2013527704.tif 000004
【図３】
2013527704.tif 000005
【図４】
2013527704.tif 000006
【国際調査報告】
2013527704.tif 000007
2013527704.tif 000008
2013527704.tif 000009
2013527704.tif 000010