(57)【要約】  従来では、インターネットルーティングは、ボーダーゲートウェイプロトコル（ＢＧＰ：Border Gateway Protocol）などのルーティングプロトコルを用いて処理される。しかしながら、普通のＢＧＰは、遅延、パケット損失またはコストを考慮していない。この問題に対処するために、高速且つ高効率でトラフィックをルーティングするスマートルーティングシステムが提供される。１つの方法によれば、スマートルーティングシステムは、顧客構内と１つ以上のエンドポイントとの間の往復遅延および他のメトリックを測定、比較および分析する。これらの測定値に基づいて、各エンドポイントに最適な送受信中継プロバイダを選択する。他のスマートルーティングシステムは、リアルタイムユーザ監視（ＲＵＭ）データを収集し分析することによって、クライアントのＩＰアドレスと、性能によってランキングされたコンテンツ発信元のＩＰアドレスに基づいて、特定のクライアントにデータを提供するための異なるコンテンツ発信元の遅延性能を予測する。これらのランキングを用いて、ＩＰアドレスに関連する性能に基づきドメインネームシステム（ＤＮＳ：Domain Name System）クエリを解析することによって、より短い遅延経路に沿ってトラフィックを誘導することができる。
2018528695.tif 000002
【特許請求の範囲】
【請求項１】
複数の中継プロバイダを介して、顧客構内からのトラフィックをインターネットプロトコル（ＩＰ）アドレスに誘導するための方法であって、
前記複数の中継プロバイダのうちの第１中継プロバイダを介して、前記顧客構内の収集装置から前記ＩＰアドレスまでの第１遅延を測定するステップと、
前記複数の中継プロバイダのうちの第２中継プロバイダを介して、前記収集装置から前記ＩＰアドレスまでの第２遅延を測定するステップと、
前記第１遅延と前記第２遅延との比較を実行するステップと、
前記第１遅延と前記第２遅延との比較に基づいて、前記第１中継プロバイダおよび前記第２中継プロバイダのうちの１つを選択するステップと、
前記第１中継プロバイダおよび前記第２中継プロバイダのうちの１つを介して、前記顧客構内からのトラフィックを前記ＩＰアドレスに誘導するステップとを含む、方法。
【請求項２】
前記第１遅延を測定するステップは、
前記第１中継プロバイダを介して、エコー要求を前記ＩＰアドレスに送信することと、
前記第２中継プロバイダを介して、エコー応答を受信することとを含む、請求項１に記載の方法。
【請求項３】
前記第１遅延を測定するステップは、
前記第１中継プロバイダに接続されたボーダールータの第１インターフェイスを介して、前記ＩＰアドレスにエコー要求を送信することと、
前記ボーダールータの第２インターフェイスを介して、エコー応答を受信することとを含む、請求項１に記載の方法。
【請求項４】
前記第１遅延を測定するステップは、前記第１中継プロバイダに接続された第１ボーダールータを介して、前記第１遅延を測定することを含み、
前記第２遅延を測定するステップは、前記第１ボーダールータおよび前記第２中継プロバイダに接続された第２ボーダールータを介して、前記第２遅延を測定することを含み、
前記トラフィックを前記ＩＰアドレスに誘導するステップは、前記第１ボーダールータおよび前記第２ボーダールータを介して、前記トラフィックを前記第２中継プロバイダに誘導することを含む、請求項１に記載の方法。
【請求項５】
前記第１遅延を測定するステップは、前記第１中継プロバイダおよび前記第２中継プロバイダに接続されたボーダールータの第１インターフェイスを介して、前記第１遅延を測定することを含み、
前記第２遅延を測定するステップは、前記ボーダールータの第２インターフェースを介して、前記第２遅延を測定するステップを含み、
前記トラフィックを前記ＩＰアドレスに誘導するステップは、前記第１ボーダールータおよび前記第２ボーダールータを介して、前記トラフィックを前記第２中継プロバイダに誘導することを含む、請求項１に記載の方法。
【請求項６】
前記第１遅延と前記第２遅延との比較を実行するステップは、
前記第１中継プロバイダの受信遅延と前記第２中継プロバイダの受信遅延とを比較することと、
前記第１中継プロバイダの送信遅延と前記第２中継プロバイダの送信遅延とを比較することとを含む、請求項１に記載の方法。
【請求項７】
前記第１中継プロバイダおよび前記第２中継プロバイダのうちの１つを選択するステップは、
前記第１中継プロバイダのコストおよび前記第２中継プロバイダのコストに基づいて、前記第１中継プロバイダおよび前記第２中継プロバイダのうちの１つを選択することをさらに含む、請求項１に記載の方法。
【請求項８】
前記第１中継プロバイダおよび前記第２中継プロバイダのうちの１つを選択するステップは、
前記第１中継プロバイダのパケット損失および前記第２中継プロバイダのパケット損失に基づいて、前記第１中継プロバイダおよび前記第２中継プロバイダのうちの１つを選択することをさらに含む、請求項１に記載の方法。
【請求項９】
前記トラフィックを前記ＩＰアドレスに誘導するステップは、
パケットのホストプレフィックスをボーダーゲートウェイプロトコル（ＢＧＰ）集団属性に関連付けることと、
前記ホストプレフィックスの前記ＢＧＰ集団属性に基づいて、前記パケットを前記第１中継プロバイダおよび前記第２中継プロバイダのうちの１つに誘導することとを含む、請求項１に記載の方法。
【請求項１０】
前記トラフィックを前記ＩＰアドレスに誘導するステップは、
前記ＩＰアドレスにトラフィックを伝送するための次のホップを、前記第１中継プロバイダおよび前記第２中継プロバイダのうちの１つに接続されたボーダールータに設定することを含む、請求項１に記載の方法。
【請求項１１】
顧客構内とターゲットインターネットプロトコル（ＩＰ）アドレスとの間の遅延を測定するための方法であって、前記顧客構内は、第１中継プロバイダに接続された第１ルータと、第２中継プロバイダに接続された第２ルータとを含み、前記第１ルータは、第１プレフィックスを公表し、前記第２ルータは、第２プレフィックスを公表し、前記方法は、
前記第２ルータおよび前記第２中継プロバイダを介して、前記顧客構内の第１ＩＰアドレスから前記ターゲットＩＰアドレスに第１エコー要求を送信するステップを含み、前記第１エコー要求は、前記第１ＩＰアドレスから前記第１エコー要求を送信した時間を示す第１タイムスタンプを含み、前記第１ＩＰアドレスは、前記第１プレフィックスを有し、
前記第１中継プロバイダおよび前記第１中継プロバイダを介して、前記ターゲットＩＰアドレスから第１エコー応答を受信するステップを含み、前記第１エコー応答は、前記ターゲットＩＰアドレスから前記第１エコー応答を送信した時間を示す第１応答タイムスタンプを含み、
前記第１タイムスタンプおよび前記第１応答タイムスタンプに基づいて、第１往復遅延を決定するステップとを含む、方法。
【請求項１２】
前記第１ルータおよび前記第１中継プロバイダを介して、前記顧客構内の第２ＩＰアドレスから前記ターゲットＩＰアドレスに第２エコー要求を送信するステップを含み、前記第２エコー要求は、前記第２ＩＰアドレスから前記第２エコー要求を送信した時間を示す第２タイムスタンプを含み、前記第２ＩＰアドレスは、前記第２プレフィックスを有し、
前記第２中継プロバイダおよび前記第２中継プロバイダを介して、前記ターゲットＩＰアドレスから第２エコー応答を受信するステップを含み、前記第２エコー応答は、前記ターゲットＩＰアドレスから前記第２エコー応答を送信した時間を示す第２応答タイムスタンプを含み、
前記第２タイムスタンプおよび前記第２応答タイムスタンプに基づいて、第２往復遅延を決定するステップとを含む、請求項１１に記載の方法。
【請求項１３】
前記第１遅延と前記第２遅延との比較を実行するステップと、
前記第１遅延と前記第２遅延との比較に基づいて、前記第１中継プロバイダおよび前記第２中継プロバイダのうちの１つを選択するステップと、
前記第１中継プロバイダおよび前記第２中継プロバイダのうちの１つを介して、前記顧客構内からのトラフィックを前記ＩＰアドレスに誘導するステップとをさらに含む、請求項１２に記載の方法。
【請求項１４】
ドメインネームシステム（ＤＮＳ）要求に応答する方法であって、
ドメインを解析するために、再帰リゾルバからＤＮＳ要求を受信するステップ（ａ）を含み、前記ドメインは、複数のコンテンツ発信元の各々に格納されたコンテンツを有し、
前記ＤＮＳ要求に応答して、ＩＰアドレスの階層から１組のインターネットプロトコル（ＩＰ）アドレスを選択するステップ（ｂ）を含み、前記１組のＩＰアドレスは、少なくとも所定数のサンプルと、前記再帰リゾルバのＩＰアドレスまたは前記ＤＮＳ要求を発信したクライアントのプレフィックスの少なくとも１つとを含み、
ステップ（ｂ）で選択された前記１組のＩＰアドレス（ｉ）およびステップ（ｂ）で選択された前記１組のＩＰアドレスに関連付けられた前記複数のコンテンツ発信元のコンテンツ発信元ランキング（ｉｉ）に基づいて、前記複数のコンテンツ発信元から１つのコンテンツ発信元を選択するステップ（ｃ）と、
ステップ（ｃ）で選択された前記コンテンツ発信元のＩＰアドレスを前記再帰リゾルバに送信するステップ（ｄ）とを含む、方法。
【請求項１５】
前記コンテンツ発信元は、コンテンツ配信ネットワークからコンテンツを提供する、請求項１４に記載の方法。
【請求項１６】
前記コンテンツ発信元は、クラウドプロバイダからコンテンツを提供する、請求項１４に記載の方法。
【請求項１７】
リアルタイムでクライアントによるダウンロードを監視する方法であって、
（ａ）コンテンツ配信ネットワーク（ＣＤＮ）のドメインネームシステム（ＤＮＳ）要求を解析するために使用された複数の再帰リゾルバのうち、１つの再帰リゾルバのインターネットプロトコル（ＩＰ）アドレスを特定するステップと、
（ｂ）前記ＤＮＳ要求を解析するための解析時間を測定するステップと、
（ｃ）前記ＤＮＳ要求に応答して、前記再帰リゾルバによって返された前記ＣＤＮのＵＲＬ（uniform resource locator）を特定するステップと、
（ｄ）前記コンテンツ発信元から前記クライアントにコンテンツをダウンロードするためのダウンロード時間を測定するステップとを含む、方法。
【請求項１８】
前記クライアントから前記コンテンツを要請するための要求に応答して、前記クライアントに実行可能なコードをダウンロードさせて実行させるステップを含み、前記実行可能なコードは、実行されると、ステップ（ａ）、（ｂ）、（ｃ）および（ｄ）を実行する、請求項１７に記載の方法。
【請求項１９】
複数のＣＤＮの各々からダウンロードを行うために、ステップ（ａ）、（ｂ）、（ｃ）および（ｄ）を実行するステップと、
前記複数のＣＤＮの前記解析時間および前記ダウンロード時間の比較を実行するステップと、
前記解析時間および前記ダウンロード時間の比較に基づいて、前記再帰リゾルバによって次のＤＮＳ要求に応答するステップとをさらに含む、請求項１７に記載の方法。
【請求項２０】
前記解析時間および前記ダウンロード時間の比較を実行するステップは、
前記複数の再帰リゾルバのうち、少なくとも１つの再帰リゾルバについて、前記複数のＣＤＮ内の前記ＣＤＮをランキングするステップを含む、請求項１９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、米国特許法第１１９条（ｅ）に基づき、２０１５年９月４日に出願され且つ「リアルタイムトラフィック誘導およびリアルユーザ監視データを行うための方法および装置」と題された米国特許出願第６２／２１４８１４号の優先権を主張する。当該出願の全体は、参照により本明細書に組み込まれる。
【背景技術】
【０００２】
背景
インターネット上の経路選択は、ボーダーゲートウェイプロトコル（ＢＧＰ）に大きく依存している。ＢＧＰは、インターネット上の自律システム間の通信を可能にする拡張可能な標準プロトコルである。ＢＧＰは、１組の決定論ルールを用いて、エンドポイント間の経路を選択するため、距離ベクトル型ルーティングプロトコルとして分類される。
【０００３】
ＢＧＰは、一対のエンドポイント間の経路を選択する際に、遅延（latency）、パケット損失またはコストのうちいずれもを考慮しない。その結果、一部の回路において、遅延が許容できないほど低くなる可能性がある。他の回路において、パケットロスが高くなり、それによって、通信の効率が悪くなり、遅延がさらに長くなる可能性がある。最後に、ＢＧＰは、中継プロバイダが関心しているビジネス事項、例えば、コストおよび好ましい中継プロバイダを考慮していない。
【０００４】
現在では、いくつかの方法は、ＢＧＰ経路上の第１ホップを最適化することができる。ルータ特有ソリューションは、Cisco社のＩＰ−ＳＬＡおよびJumper社のＲＰＭソリューションを含む。他の方法は、ハードウェア特有（Noction）方法であるか、または中継プロバイダ（Internap）のレベルに存在する。これらの方法は、トラフィックフローをグローバルに評価することによって、対応するＢＧＰテーブルを変更する。
【０００５】
現在では、比較的にルータから独立しており、無制限の入力を統合することによって経路の選択を支援する全体的なまたは包括的なソリューションが存在していない。また、現在では、ターゲットサーバ上に長所を持たない復路を検討または制御するソリューションが存在していない。
【０００６】
ドメインネームシステム（ＤＮＳ）は、テキストベースのドメイン名からインターネットプロトコル（ＩＰ）空間内の論理エンドポイント／アドレスをマッピングすることができる。ターゲットに接続する必要がある場合、発信元の地理位置（geolocation）に基づいて、ターゲットを選択できる方法が存在している。
【０００７】
しかしながら、インターネットの不安定性（vagary）によって、様々なソースからターゲットの利用可能性が変わる可能性がある。例えば、サーバがダウンすることによって、経路が混雑するまたは利用できなくなる可能性がある。したがって、リアルタイムで所定のユーザまたは市場の最良目標位置を決定するための方法が必要とされる。
【発明の概要】
【課題を解決するための手段】
【０００８】
概要
本発明の技術は、特に、インターネット上のルーティングを行うために、経路選択および目標選択の決定に関連する問題に対処する。この技術の実施形態は、複数の中継プロバイダを介して、顧客構内からインターネットプロトコル（ＩＰ）アドレスにトラフィックを誘導するための方法および装置を含む。システムは、顧客構内に配置された収集装置を含み、収集装置は、複数の中継プロバイダのうちの第１中継プロバイダを介して、ＩＰアドレスまでの第１遅延と、複数の中継プロバイダのうちの第２中継プロバイダを介して、収集装置からＩＰアドレスまでの第２遅延を測定する。収集装置に接続されまたは収集装置によって実装された決定エンジンは、第１遅延および第２遅延の比較を実行し、比較に基づいて第１中継プロバイダまたは第２中継プロバイダを選択する。ルータ、スイッチまたは他の装置は、選択した中継プロバイダを介して、トラフィックを顧客構内からＩＰアドレスに誘導する。
【０００９】
場合によって、収集装置は、第１中継プロバイダを介してＩＰアドレスにエコー要求を送信し、第２中継プロバイダを介してエコー応答を受信することによって、第１遅延を測定する。また、収集装置は、第１中継プロバイダに接続されたボーダールータの第１インターフェイスを介してエコー要求をＩＰアドレスに送信し、ボーダールータの第２インターフェイスを介してエコー応答を受信することによって、第１遅延を測定することができる。収集装置は、第１中継プロバイダに接続された第１ボーダールータを介して第１遅延を測定し、第１ボーダールータおよび第２中継プロバイダに接続された第２ボーダールータとを介して第２遅延を測定することができる。この場合、ルータは、第１ボーダールータおよび第２ボーダールータを介して、トラフィックを第２中継プロバイダに誘導することができる。収集装置は、第１中継プロバイダおよび第２中継プロバイダに接続されたボーダールータの第１インターフェイスを介して第１遅延を測定し、ボーダールータの第２インターフェイスを介して第２遅延を測定することができる。この場合、ルータは、第１ボーダールータおよび第２ボーダールータを介して、トラフィックを第２中継プロバイダに誘導することができる。
【００１０】
決定エンジンは、第１中継プロバイダの受信遅延（inbound latency）と第２中継プロバイダの受信遅延とを比較することによって、第１遅延と第２遅延との比較を実行することができる。また、決定エンジンは、第１中継プロバイダの送信遅延（outbound latency）と第２中継プロバイダの送信遅延とを比較することもできる。
【００１１】
決定エンジンは、さらに第１中継プロバイダのコストおよび第２中継プロバイダのコストに基づいて、第１中継プロバイダまたは第２中継プロバイダを選択することができる。また、決定エンジンは、第１中継プロバイダのパケット損失および第２中継プロバイダのパケット損失に基づいて、第１中継プロバイダまたは第２中継プロバイダを選択することができる。
【００１２】
ルータ、スイッチまたは他のルーティング装置は、パケットのホストプレフィックスをボーダーゲートウェイプロトコル（ＢＧＰ）集団属性に関連付け、ＢＧＰ集団属性に基づいてパケットを選択された中継プロバイダに誘導することによって、トラフィックをＩＰアドレスに誘導することができる。また、ルータ、スイッチまたは他の装置は、ＩＰアドレスにトラフィックを伝送するための次のホップを、第１中継プロバイダおよび第２中継プロバイダのうちの１つに接続されたボーダールータに設定することによって、トラフィックをＩＰアドレスに誘導することができる。
【００１３】
本発明の技術の他の実施形態は、第１プレフィックスを公表し、第１中継プロバイダに接続された第１ルータと、第２プレフィクスを通知し、第２中継プロバイダに接続された第２ルータとを含む顧客構内とターゲットＩＰアドレスとの間の遅延を測定するための方法およびシステムを含む。顧客構内に配置された収集サーバは、第２ルータおよび第２中継プロバイダを介して、第１プレフィックスを有する第１ＩＰアドレスからターゲットＩＰアドレスに第１エコー要求を送信する。第１エコー要求は、第１ＩＰアドレスから第１エコー要求を送信した時間を示す第１タイムスタンプを含む。収集サーバは、第１中継プロバイダおよび第１中継プロバイダを介して、ターゲットＩＰアドレスから第１エコー応答を受信する。第１エコー応答は、ターゲットＩＰアドレスから第１エコー応答を送信した時間を示す第１応答タイムスタンプを含む。収集サーバに接続されまたは収集サーバによって実装された決定エンジンは、第１タイムスタンプおよび第１応答タイムスタンプに基づいて、第１往復遅延を決定する。
【００１４】
場合によって、収集サーバは、第１ルータおよび第１中継プロバイダを介して、顧客構内の第２ＩＰアドレスからターゲットＩＰアドレスに第２エコー要求を送信する。第２エコー要求は、第２ＩＰアドレスから第２エコー要求を送信した時間を示す第２タイムスタンプを含む。第２ＩＰアドレスは、第２プレフィックスを有する。収集サーバは、第２中継プロバイダおよび第２中継プロバイダを介して、ターゲットＩＰアドレスから第２エコー応答を受信する。第２エコー応答は、ターゲットＩＰアドレスから第２エコー応答を送信した時間を示す第２応答タイムスタンプを含む。
【００１５】
これらの場合、決定エンジンは、第２タイムスタンプおよび第２応答タイムスタンプに基づいて、第２往復遅延を決定する。また、決定エンジンは、第１遅延と第２遅延との比較を実行し、第１遅延と第２遅延との比較に基づいて、第１中継プロバイダまたは第２中継プロバイダを選択することもできる。決定エンジンに接続されたルータ、スイッチまたは他のルーティング装置は、選択された中継プロバイダを介して、顧客構内からのトラフィックをＩＰアドレスに誘導する。
【００１６】
本発明の技術の更なる他の実施形態は、ドメインネームシステム（ＤＮＳ）要求に応答するためのシステムおよび方法を含む。例示的な方法は、コンテンツ配信ネットワーク（ＣＤＮ）またはクラウドプロバイダからコンテンツを提供することができる複数のコンテンツ発信元の各々に格納されたコンテンツを有するドメインを解析するために、再帰リゾルバからＤＮＳ要求を受信することを含む。ＤＮＳ要求に応答して、権威ＤＮＳサーバまたは他のプロセッサは、ＩＰアドレスの階層から１組のＩＰアドレスを選択する。この１組のＩＰアドレスは、再帰リゾルバのＩＰアドレスと、少なくとも所定数のサンプルとを含む。権威ＤＮＳサーバは、（ｉ）１組のＩＰアドレスおよび（ｉｉ）１組のＩＰアドレスに関連付けられた複数のコンテンツ発信元のコンテンツ発信元ランキングに基づいて、複数のコンテンツ発信元から１つのコンテンツ発信元を選択する。権威ＤＮＳサーバは、選択されたコンテンツ発信元のＩＰアドレスを再帰リゾルバに送信する。
【００１７】
本発明の技術のさらに別の実施形態は、リアルタイムでクライアントによるダウンロードを監視するための方法を含む。一例において、ソフトウェア（実行可能なコード）は、クライアントによって実行されると、クライアントに、コンテンツ配信ネットワーク（ＣＤＮ）のドメインネームシステム（ＤＮＳ）要求を解析するために使用された複数の再帰リゾルバのうち、１つの再帰リゾルバのインターネットプロトコル（ＩＰ）アドレスを特定させる。クライアントは、ＤＮＳ要求を解析するための解析時間を測定し、ＤＮＳ要求に応答して、再帰リゾルバによって返されたＣＤＮのＵＲＬ（uniform resource locator）を特定し、コンテンツ発信元からコンテンツをクライアントにダウンロードするためのダウンロード時間を測定する。クライアントは、クライアントからコンテンツを要請するための要求に応答して、ソフトウェアをダウンロードして実行することができる。
【００１８】
クライアントは、再帰リゾルバのＩＰアドレスを特定し、ＤＮＳ解析時間を測定し、ＵＲＬを特定し、複数のＣＤＮの各々からのダウンロードを行うダウンロード時間を測定することができる。クライアントまたは別のプロセッサ（例えば、権威ＤＮＳサーバ）は、複数のＣＤＮの解析時間およびダウンロード時間の比較を実行することができる。例えば、各再帰リゾルバの解析時間およびダウンロード時間に基づいて、各再帰リゾルバのＣＤＮをランキングすることができる。再帰リゾルバは、この比較を用いて、次のＤＮＳ要求に応答することができる。
【００１９】
前述した発想および以下でより詳細に説明する追加の発想（これらの発想が相互に矛盾しない前提で）の全ての組み合わせは、本明細書に開示された発明の主題の一部であると理解すべきである。特に、本開示の最後の特許請求の範囲の全ての組み合わせは、本明細書に開示された発明の主題の一部であると考えられる。また、本明細書に明示的に使用された用語および参照により他の開示に援用された用語は、本明細書に開示された特定の概念と最も一致する意味で解釈されるべきであることを理解すべきである。
【００２０】
当業者であれば、図面は、主に説明の目的のものであり、本明細書に記載された発明の主題の範囲を限定するものではないことを理解するであろう。図面は、必ずしも一定の縮尺描かれていない。いくつかの例において、本明細書に開示された発明の主題の様々な態様は、異なる特徴を容易に理解させるために、図面においてこれらの特徴を拡大または縮小することがある。図面において、同様の参照符号は、一般的に、同様の特徴（例えば、機能的におよび／または構造的に類似する要素）を指す。
【図面の簡単な説明】
【００２１】
【図１Ａ】異なる中継プロバイダによって提供された顧客構内とターゲットインターネットプロトコル（ＩＰ）アドレスとの間の送受信経路の遅延を監視および測定するシステムを示す図である。
【図１Ｂ】図１Ａに示す異なる送受信経路（inbound and outbound path）の遅延の比較を示すマトリックスである。
【図２】遅延測定値に基づいて中継プロバイダを選択することによって、トラフィックをエンドポイントに誘導するためのプロセスを示す図である。
【図３】異なる中継プロバイダを介して一対のＩＰアドレス間の往復遅延を測定するためのプロセスを示す図である。
【図４】一対のＩＰアドレス間の往復遅延に基づいて、送受信中継プロバイダを選択するためのプロセスを示す図である。
【図５Ａ】収集装置といくつかのターゲットＩＰアドレスとの間の遅延を監視するために、ルートマップをボーダールータインターフェイスに適用したネットワークを示す図である。
【図５Ｂ】静的ルートを介して、手動でネットワークのトラフィックを収集装置といくつかのターゲットＩＰアドレスとの間に誘導することを示す図である。
【図５Ｃ】中継プロバイダの遅延測定値に基づいて、ＢＧＰ集団属性を異なる中継プロバイダに動的に関連付けることによって、トラフィックを誘導することを示す図である。
【図６】ルートマップを作成し、遅延およびパケットロスの監視を行うためのボーダールータインターフェイスに適用するためのプロセスを示す流れ図である。
【図７】遅延測定値に基づいてトラフィックを誘導するためのポリシーベースの静的ルーティングを示す流れ図である。
【図８】遅延測定値に基づいてトラフィックを誘導するために、自動オーバーライドを示す流れ図である。
【図９】リアルタイムユーザ監視（ＲＵＭ：Real-time User Monitoring）データを収集し、ＲＵＭデータおよびタイプ別ラベル付きＩＰセット（ＴＹＬＩＰＳ：TYped Labeled IP Set）データに基づいてトラフィックを誘導するためのシステムを示す図である。
【図１０】ＲＵＭデータを収集および集計するためのプロセスを示す図である。
【図１１】ＲＵＭデータを収集および集計するためのプロセスを示す図である。
【図１２】図１０および図１１に示されたプロセスに従ってＲＵＭデータを集計することによって形成されたヒストグラムを示す図である。
【図１３】図１２に示すようなヒストグラムを生成するためのプロセスを示す図である。
【図１４Ａ】ＤＮＳ要求を解析するようにＴＹＬＩＰＳデータを選択するための異なる階層を示すベン図である。
【図１４Ｂ】ＤＮＳ要求を解析するようにＴＹＬＩＰＳデータを選択するための異なる階層を示すベン図である。
【図１５】ＲＵＭデータに基づいたクライアントＩＰアドレスの例示的なランキングを示す図である。
【図１６】ＲＵＭデータに基づいて、トラフィックを誘導するためのプロセスを示す図である。
【発明を実施するための形態】
【００２２】
詳細な説明
遅延、パケット損失およびコストに基づき、固定エンドポイント間のスマートルーティング
パケットは、ボーダーゲートウェイプロトコル（ＢＧＰ）に従ってインターネット上にルーティングされる。ＢＧＰは、規則およびテーブルを用いて、所定の宛先までのパケットルート上の「次のホップ」を決定する。残念ながら、普通のＢＧＰは、パケットをルーティングする際の遅延、パケット損失またはコストを考慮していない。これによって、インプレッションごとに競売されるインターネット広告枠のリアルタイム入札など、短い遅延が必要なアプリケーションに対して最適ではないルーティングを引き起こしてしまう。リアルタイム入札の場合、広告購買人は、出版社のサイトを訪問することによって得られたインプレッションに入札する。購買人がオークションに勝利した場合、購買人の広告は、出版社のサイトに即座に表示される。オークションは、ユーザが出版社のサイトを訪問したことに応じてリアルタイムで行われるため、非常に短い。そのため、迅速に入札する必要がある。オークションが終了するまでに、（例えば、入札した購買人から競売人までの送信遅延によって）購買人の入札が競売人に届かない場合、購買人は、このオークションを失ってしまう。
【００２３】
幸いにも、本明細書に開示されたスマートルーティングシステムおよび方法は、２つのエンドポイント（例えば、購買人のＩＰアドレスおよび競売人のＩＰアドレス）間の遅延を測定し、２つのエンドポイント間の最短遅延ルートを選択することができる。多くの場合、これらのルートは、様々な中継プロバイダによって提供され、決定エンジンまたはスマートルートは、最短遅延を有する使用可能なルートを提供する中継プロバイダを介して、パケットを宛先ＩＰアドレスに送信する。場合によって、決定エンジンは、遅延と、他の要因、例えば、各中継プロバイダのコストおよびパケット損失とのユーザ構成可能な重み付き組み合わせに基づいて、中継プロバイダを選択することができる。この中継プロバイダのインテリジェント選択は、ＢＧＰポリシーを効果的にオーバーライドする。中継プロバイダの相対遅延、パケット損失およびコストが変化する場合、決定エンジンは、それに応じて、所定の時間で「最良」の経路を選択することによって、トラフィックを再ルーティングする。
【００２４】
他の方法は、送信経路を最適化する。これらの送信経路は、通常、送信ターゲットに対して、ルータ特有経路または汎用経路である。本明細書に開示された方法は、ルータに依存せず、特定のターゲットまたはエンドポイントに合わせて調整されたソフトウェア層として実装することができる。従来の方法とは異なり、本発明のプロセスは、受信フローの変化および最後から２番目の受信工程の最適化を説明することもできる。
【００２５】
スマートルーティングシステム
図１Ａは、顧客（例えば、リアルタイム入札プロセスの購買人）構内１０１に位置する仮想マシンまたはサーバ１１０と、１つ以上のターゲットＩＰアドレス１４０（例えば、競売人または出版社のサイト）との間の遅延およびパケット損失を監視および測定するためのシステム１００を示す概略図である。システムは、受信経路１６０ａ〜１６０ｄ（まとめて流入（inflow）または受信経路１６０という）および送信経路１７０ａ〜１７０ｄ（まとめて流出（outflow）または送信経路１７０という）に沿ってこれらのパラメータを監視し、それに応じてトラフィックを異なる経路にルーティングする。この例において、サーバ１１０は、ルータ１２０に接続され、ルータ１２０は、中継プロバイダ１３０ａおよび１３０ｂ（まとめて中継プロバイダ１３０という）を介して、トラフィックをターゲットＩＰアドレス１４０にルーティングする。また、システム１００は、仮想マシン／サーバ１１０に接続されまたは仮想マシン／サーバ１１０によって実装された決定エンジン１０３を含む。決定エンジン１０３は、仮想マシン１１０によって測定された中継プロバイダ１３０の遅延およびパケット損失に基づいて、顧客構内１０１とターゲットＩＰアドレス１４０との間のトラフィックを伝送するための中継プロバイダ１３０を選択する。
【００２６】
顧客構内１０１は、いくつかの発信元ＩＰアドレス１５０ａ〜１５０ｄ（まとめて発信元ＩＰアドレス１５０）が割り当てられた１つ以上の仮想マシンまたはサーバ１１０を含む。これらの発信元ＩＰアドレス１５０の各々を用いて、中継プロバイダ１３０によって提供された特有の受信／送信経路対の遅延およびパケット損失を測定する。各中継プロバイダ１３０が受信経路１６０および送信経路１７０の両方を提供するため、顧客構内１０１をターゲットＩＰアドレス１４０に接続するための中継プロバイダ１３０がＮ個である場合、仮想マシン１１０には、Ｎ２個の異なる発信元ＩＰアドレス１５０が割り当てられる。換言すれば、選択された発信元ＩＰアドレス１５０は、中継プロバイダ１３０を介して顧客構内１０１とターゲットＩＰアドレス１４０との間の特有の往復経路の総数を表す。
【００２７】
顧客構内１０１は、十分に大きい場合、１つ以上の特有のホストプレフィックスを公表することができる。ＩＰｖ４システムにおいて、各特有のルーティングプレフィックスは、「／２４」プレフィックス、すなわち、ネットワークプレフィックスに割り当てられた２４ビットと、ホストアドレスの指定に保留された８ビットとを有するルーティングプレフィックスである。「／２４」プレフィックスは、ＢＧＰがルーティングを行う最小プレフィックスである。図１Ａに示すように、特有の「／２４」プレフィックスに対応する発信元ＩＰアドレス１５０からのパケットは、各々の中継プロバイダ１３０を介してルーティングされる。各中継プロバイダ１３０に対応する特有の「／２４」プレフィックスは、ＢＧＰがルーティングを行う最小プレフィックスを特定することによって決定される。この例において、発信元ＩＰアドレス１５０ａおよび１５０ｂ（１．１．１．１および１．１．１．２）は、中継プロバイダ１３０ａ（１．１．１．０／２４）によって公表された「／２４」プレフィックスに対応し、発信元ＩＰアドレス１５０ｃおよび１５０ｄ（２．２．２．１および２．２．２．２）は、中継プロバイダ１３０ｂ（２．２．２．０／２４）によって公表された／２４プレフィックスに対応している。
【００２８】
ルータ１２０は、自身の内部メモリに格納されているＢＧＰテーブルに従って、中継プロバイダ１３０を介して、トラフィックをターゲットＩＰアドレス１４０にルーティングする。上述したように、各中継プロバイダ１３０の経時変動遅延およびパケット損失を調べるために、これらのＢＧＰテーブルを用いて、発信元ＩＰアドレス１５０を仮想マシン１１０に割り当てることができる。以下で説明するように、これらのＢＧＰテーブルは、ターゲットＩＰ１４０の遅延、パケット損失およびコストの重み付き組み合わせに応じて、トラフィックを強制して所定の中継プロバイダ１３０を通過するように、決定エンジン１３０によってオーバーライドされまたは変更されてもよい。
【００２９】
受信経路１６０および送信経路１７０は、中継プロバイダ１３０を介して、発信元ＩＰアドレス１５０およびターゲットＩＰアドレス１４０を接続する。受信経路１６０上のパケットは、パケットを発信する発信元ＩＰアドレス１５０に応じて、中継プロバイダ１３０を介してルーティングされる。この例において、受信経路１６０ａおよび１６０ｂ上のパケットは、中継プロバイダ１３０ａを介してルーティングされ、受信経路１６０ｃおよび１６０ｄ上のパケットは、中継プロバイダ１３０ｂを介してルーティングされる。発信元ＩＰアドレス１５０ａとターゲットＩＰアドレス１４０とを接続するための送信経路１７０ａ上のパケットは、中継経路１３０ａを介してルーティングされる。発信元ＩＰアドレス１５０ｂとターゲットＩＰ１４０とを接続するための送信経路１７０ｂ上のパケットは、中継プロバイダ１３０ｂを介してルーティングされる。同様に、ＩＰアドレス１５０ｃおよび１５０ｄをターゲットＩＰアドレス１４０に各々接続するための送信経路１７０ｃおよび１７０ｄは、各々中継プロバイダ１３０ａおよび１３０ｂを介して伝送される。
【００３０】
以下でより詳細に説明するように、決定エンジン１０３は、中継プロバイダ１３０の遅延、パケット損失および／またはコストを比較し、これらの比較に基づいてスマートルーティングを実施する。決定エンジン１０３は、ＢＧＰポリシーを変更またはオーバーライドすることによって、トラフィックを強制して、ターゲットＩＰアドレス１４０までの最も速い且つ最も費用効果の高いルートを提供する中継プロバイダ１３０に通過させる。決定エンジン１０３は、ルータに依存せず、ターゲットＩＰアドレス１４０に合わせて調整されたソフトウェア層として実装することができる。いくつかの実施形態において、決定エンジン１０３は、サーバ１１０に含まれてもよい。他の実施形態において、決定エンジン１０３は、ルータ１２０に含まれてもよく、別のプロセッサ上に実装されてもよい。
【００３１】
図１Ｂは、図１Ａに示された中継プロバイダ１３０を介してパケットの送受信に関連する遅延を表すマトリクス１０５を示す。マトリクス１０５は、中継プロバイダ１３０を介してターゲットＩＰ１４０までの受信遅延１１５および送信遅延１２５を列挙している。これらの遅延１１５および１２５を合計して比較することによって、顧客構内１０１とターゲットＩＰアドレス１４０との間の最小遅延を有する往復経路を特定することができる。
【００３２】
この例において、マトリクス１０５は、中継プロバイダ１３０ａおよび１３０ｂを介して、ターゲットＩＰ１４０までの送信経路１７０およびターゲットＩＰ１４０からの受信経路１６０の全ての組み合わせに対応する往復遅延測定値を含む。中継プロバイダ１３０が２つであるため、マトリクス内の経路の総数は、２２＝４である。この例において、マトリクス１０５は、各発信元ＩＰアドレス１５０の送受信遅延を示している。上記で説明され且つ図１Ａに示されたように、これらの遅延は、異なる送受信経路に一意にマッピングされる。マトリクス１０５内の往復遅延を比較した結果、中継プロバイダ１３０ｂを介して顧客構内１０１とターゲットＩＰアドレス１４０との間のパケット伝送は、最短遅延（１２ｍｓ）を有する。この遅延測定値に基づいて、中継プロバイダ１３０ｂの最後の受信ホップは、ＢＧＰによって設定され、中継プロバイダ１３０ｂの最初の送信ホップは、ポリシーベースルーティングによって制御される。
【００３３】
図１Ｂのマトリックス１０５は、遅延測定値のみを示しているが、当業者であれば、遅延測定値に加えてまたは遅延測定値の代わりに、他の測定値を含み得ることを容易に理解するであろう。例えば、マトリクスは、パケット損失、コスト、または遅延とパケット損失とコストの重み付き組み合わせを含むことができる。同様に、任意数の中継プロバイダおよびターゲットＩＰアドレスに応じて、マトリックス１０５を拡張することができる。
【００３４】
エンドポイント間の遅延測定および誘導
図２は、遅延測定値に基づいて、選択された中継プロバイダを介してトラフィックをルーティングするためのプロセス２００を示す流れ図である。プロセス２００は、図１Ａに示すシステム１００または図５Ａ〜５Ｃに示すシステムを含む任意の他の適切なシステムまたはネットワークを用いて実施することができる。プロセス２００は、異なる中継プロバイダを介して単一のターゲットＩＰアドレスの遅延を測定することを含む。例えば、中継プロバイダが２つである（中継プロバイダ１および中継プロバイダ２）場合、ステップ２１０において、各中継プロバイダを介してターゲットＩＰまでの遅延を測定する。ステップ２２０において、測定された遅延を比較することによって、ターゲットＩＰアドレスまでの最短遅延を有する中継プロバイダを選択する。場合によって、初期コストおよびパケット損失などの外部メトリックを比較因子として加える（２３０）。遅延の比較（２２０）に従って、ステップ２４０において、ターゲットＩＰアドレスに対して適切な中継プロバイダを選択する。選択された中継プロバイダを介して、トラフィックを誘導する（２５０）。最初の送信ホップは、ルートマップを使用するポリシーベースのルーティングまたは中継プロバイダに関連するＢＧＰ属性を使用する誘導によって制御される。
【００３５】
図２は、２つの中継プロバイダおよび１つのターゲットＩＰアドレスのみを示しているが、当業者であれば、このプロセスを３つ以上の中継プロバイダおよび２つ以上のＩＰアドレスに適用できることを容易に理解するであろう。例えば、各ＩＰアドレスに対して異なる数の中継プロバイダ（例えば、第１ＩＰアドレスには２つの中継プロバイダ、第２ＩＰアドレスには５つの中継プロバイダ）が存在する場合、このプロセスを複数のＩＰアドレスの各々に並列に適用することができる。単一の中継プロバイダは、複数のＩＰアドレスにサービスを提供することができるが、全てのＩＰアドレスにサービスを提供する必要がない。
【００３６】
エンドポイント（ターゲット／宛先ＩＰアドレス）をＰＩＮＧすることによる遅延の測定
図３は、例えば、図１Ａに示す仮想マシン１１０を用いて、送受信遅延データを収集するためのプロセス３００を示す流れ図である。顧客構内３１０の仮想マシンまたはベアメタルには、収集装置（収集サーバ）が設置される。この収集装置は、顧客によって提供されたターゲットＩＰアドレス組内の各ターゲットＩＰアドレスにＰＩＮＧすることによって、遅延データを収集する。上述したように、異なる往路および復路を調べるために、これらのＰＩＮＧは、異なる発信元ＩＰアドレスから発信されてもよい。
【００３７】
ＰＩＮＧは、以下のように行われる。ステップ３２０において、収集装置は、監視されている各中継プロバイダを介して、各ターゲットＩＰアドレスにインターネット制御メッセージプロトコル（ＩＣＭＰ：Internet Control Message Protocol）エコー要求パケットを送信する。例えば、ネットワークが２つの中継プロバイダＴＰ１およびＴＰ２を有する場合、収集装置は、ＴＰ１を介して、第１発信元ＩＰアドレスから第１ターゲットＩＰアドレスに反復エコー要求パケットを送信し、ＴＰ２を介して、第２発信元ＩＰアドレスから第２ターゲットＩＰアドレスに反復エコー要求パケットを送信する。ステップ３３０において、ターゲットＩＰアドレスは、エコー要求パケットに応答して、エコー応答パケットを送信する。各エコー応答パケットは、対応するエコー要求パケットの見かけ発信元ＩＰアドレスにルーティングされる。上述したように、ボーダールータインターフェイスに適用されたルートマップが、異なるプレフィックスを公表する中継プロバイダを介して、対応するエコー要求をターゲットＩＰアドレスに強制的にルーティングした場合、見かけ発信元ＩＰアドレスは、実際の発信元ＩＰアドレスと異なる可能性がある。
【００３８】
ステップ３４０において、収集装置は、エコー応答パケット内のタイムスタンプ（例えば、エコー要求時間およびエコー応答時間）に基づいて、往復経路の測定値に関連する遅延を決定する。当技術分野でよく理解されているように、各エコー要求メッセージは、送信時間を示すタイムスタンプおよびシーケンス番号を含むことができる。同様に、各エコー応答メッセージは、送信時間およびシーケンス番号を含むことができる。また、各エコー応答は、対応するエコー要求メッセージのタイムスタンプおよびシーケンス番号を含む。エコー応答内のタイムスタンプによって示されたエコー要求の送信時間とエコー応答の送信時間との間の差は、遅延を表す。この遅延は、データベースまたは他のメモリ記憶装置に記録または記憶されてもよい。
【００３９】
また、収集装置は、各中継プロバイダのエコー要求対エコー応答の比またはエコー応答のタイムラインに基づいて、パケット損失を評価することができる。例えば、収集装置は、第１中継プロバイダを介して１０個のエコー要求を送信し、８個のエコー応答しか受信できない場合、第１中継プロバイダのパケット損失率が２０％であると判断することができる。異なる中継プロバイダを介した往復遅延測定値を用いて送受信経路の遅延を評価することと同様に、パケット損失を複数の中継プロバイダに相関させることによって、送受信経路のパケット損失を評価することができる。
【００４０】
メトリック比較に基づいた最適経路の決定
図４は、図１Ａに示す決定エンジン１０３によって実施され、顧客構内とターゲットＩＰアドレスとを接続するための異なる中継プロバイダの様々なメトリックを比較するためのプロセス４００を示す流れ図である。ステップ４１０において、決定エンジンは、例えば、ユーザ入力に応答して、ターゲットＩＰアドレスを選択する。ステップ４２０ａおよび４２０ｂにおいて、決定エンジンは、顧客構内と、ステップ４１０で選択されたターゲットＩＰアドレスとを接続するための中継プロバイダを特定する。ステップ４３０ａ〜４３０ｄにおいて、決定エンジンは、ステップ４２０で特定された中継プロバイダを介して選択されたターゲットＩＰの送受信メトリック（inbound and outbound metrics）を決定する。送受信メトリックは、遅延、コストおよびパケット損失を含むがこれらに限定されない。図３を参照して上述したように、遅延およびパケット損失は、ターゲットＩＰアドレスをＰＩＮＧすることによって決定されてもよい。また、コスト情報は、顧客によって提供されてもよい。
【００４１】
ステップ４４０において、決定エンジンは、全ての送受信経路の組み合わせを表すマトリクス（例えば、図１Ｂに示すマトリクス）または他の表現を用意する。例えば、中継プロバイダの数がＮである場合、組み合わせによって得られる経路の総数がＮ２である。Ｎが非常に大きい場合、決定エンジンは、遅延、パケット損失、および／またはそれらの組み合わせをサンプリングすることによって、測定値の数および／または組み合わせの測定値の数を減らし、より高速な計算を行うことができる。ステップ４５０において、決定エンジンは、外部メトリック、例えば、各中継プロバイダを介してパケットのルーティングに関連するコストを因子として加える。外部メトリックを因子として加えると、ステップ４６０において、送受信メトリックは、各送受信中継プロバイダの組み合わせの優先度スコアを表すマトリクスまたは他の表現（遅延、コストおよび／またはパケット損失の重み付き組み合わせ）に統合される。ステップ４７０において、決定エンジンは、マトリクス内の優先度スコアの比較に基づいて、最適経路を特定する。
【００４２】
複数のボーダールータを経由したトラフィックの監視および誘導
図５Ａ〜５Ｃは、顧客構内の仮想マシン５１０と１つ以上のターゲット／宛先ＩＰアドレス５４０ａおよび５４０ｂ（まとめてターゲットＩＰアドレス５４０という）との間の遅延およびパケット損失を測定するためのネットワーク５００を示す。仮想マシン５１０は、監視および誘導を行うための１組のターゲットＩＰアドレスを格納する収集装置５１２を含み、集計ルータ５９０ａおよび５９０ｂ（まとめて集計ルータ５９０という）に接続される。ルーティングインターフェイスの別の層は、集計ルータ５９０に接続されたボーダールータ５２０ａおよび５２０ｂ（まとめてボーダールータ５２０という）を用いて追加される。ボーダールータ５２０は、トラフィックを他のボーダールータ５２０および中継プロバイダ５３０ａ〜５３０ｎ（まとめて中継プロバイダ５３０という）にルーティングする。
【００４３】
動作中、収集装置５１２は、上記および下記でより詳細に説明するように、発信元または発信源ＩＰアドレスＩＰ１〜ＩＰＮと、列挙されたターゲットＩＰアドレス５４０との間の伝送遅延およびパケット損失を監視する。また、収集装置５１２は、遅延およびパケット損失データを収集するためのソースポイントとして、顧客により提供された公開ＩＰアドレスを使用する。１組のターゲットＩＰアドレス５４０は、顧客から別個のＩＰアドレスを求めることによって形成することができる。顧客側の仮想マシン５１０に顧客側の収集装置５１２を設けることによって、顧客側のエンドポイントまたはターゲットＩＰアドレスからの接続を定期的に行うことができる。
【００４４】
仮想マシン５１０は、集計ルータ５９０ａ（ＳＷ１）および５９０ｂ（ＳＷ２）を介してトラフィックをルーティングする。集計ルータ５９０ａ（ＳＷ１）および５９０ｂ（ＳＷ２）は、ルート集計方法を用いて、特定のルートを生成する。この方法は、単一の汎用ルートを用いて複数のルートを置換することによって、ネットワーク５００を構築する。これによって、ルータの数が削減され、ルーティングプロトコルに関連するオーバーヘッド（overhead）が最小限に抑えられる。入口（igress）フィルタリングおよび出口（egress）フィルタリングを実行するために、ボーダールータ５２０ａ（ＢＲ１）および５２０ｂ（ＢＲ２）は、集計ルータ５９０に接続され、配置される。ボーダールータ５２０は、中枢ネットワークと１つ以上のＯＳＰＦ（Open Shortest Path First、開放型最短経路優先）領域との間の接続を形成する。
【００４５】
集計ルータ５９０は、顧客構内の仮想マシン５１０および収集装置５１２によって行われた遅延およびパケット損失の測定に基づいて、適切な中継プロバイダ５３０を介してターゲットＩＰアドレス５４０との間でトラフィックをルーティングする。上記および以下に説明するように、特定のターゲットＩＰアドレス５４０に対して適切な中継プロバイダ５３０は、中継プロバイダ１３０の監視メトリック、例えば、遅延、コストおよびパケット損失を解析および比較することによって選択される。ルーティングは、ルートマップを用いて、または以下に説明するように、メトリックの解析に基づいてＢＧＰ属性を中継プロバイダに関連付けることによって、実行される。
【００４６】
遅延およびパケット損失の監視
図５Ａにおいて、収集装置５１２は、中継プロバイダ５３０を介して、異なるターゲットＩＰアドレスまでの遅延およびパケット損失を監視する。このことは、ポリシーベースルーティングを用いて、収集装置５１２上に構成された各ＩＰアドレスをマッチングし、各ＩＰアドレスのパケットを関連する中継プロバイダ５３０にルーティングすることによって行われる。ルートマップは、ボーダールータ５２０の入口インターフェイス５２２ａおよび５２２ｂ（図５Ａでは、入口インターフェイス５２２ａおよび５２２ｂは、gig 1/1、gig 1/2およびgig 1/3として標記される）の各々に適用される。これらのルートマップは、アクセスリストを用いて収集サーバ５１２からのＩＰアドレスをマッチングし、パケットを転送するための次のホップを適切な中継プロバイダ５３０または隣接のボーダールータ５２０に設定する。集計ルータ５９０に面する各ボーダールータインターフェイスに適用されたルートマップは、全てのＩＰアドレスをカバーし、送信エコー要求パケットを対応するボーダールータに接続された中継プロバイダ５３０または隣接のボーダールータに接続された中継プロバイダ５３０に強制的にルーティングする。エコー要求パケットを異なる中継プロバイダ５３０に強制的にルーティングすることによって、収集装置５１２は、収集装置とターゲットＩＰアドレス５４０との間に利用可能な送信経路および受信経路の各組み合わせの遅延を測定することができる。
【００４７】
図６および以下の擬似コードは、第１ＩＰアドレス（例えば、顧客構内）と第２ＩＰアドレス（例えば、ターゲットＩＰアドレス）との間の遅延およびパケット損失を監視するために、ルートマップを構成および適用するためのプロセス６００の一例を示す。ステップ６１０において、顧客は、収集装置５１２上の各ターゲットＩＰアドレスに対するアクセス権を設定する。
【００４８】
【表１】
2018528695.tif 000003
【００４９】
ステップ６２０において、顧客は、集計スイッチ５９０からのパケット内の各宛先ＩＰアドレスを探すために、ルートマップ（COLLECTOR_SW）を作成する。
【００５０】
【表２】
2018528695.tif 000004
【００５１】
ステップ６３０において、顧客は、ボーダールータ５３０の相互接続を行うために、ルートマップ（COLLECTOR_BR1およびCOLLECTOR_BR2）を作成する。
【００５２】
【表３】
2018528695.tif 000005
【００５３】
ステップ６４０において、顧客は、集計スイッチ５９０に面する各インターフェイス５２２（gig 1/1およびgig 1/2）にCOLLECTOR_SWルートマップを適用し、COLLECTOR_BR1およびCOLLECTOR_BR2ルートマップを用いて、ボーダールータ５２０に面するインターフェイス５２２（gig 1/3）を相互接続する。
【００５４】
【表４】
2018528695.tif 000006
【００５５】
図１Ａを参照して上述したように、各中継プロバイダ５３０が異なる／２４を公表した場合、収集サーバ５１２は、Ｎ個の流入経路を用いて、Ｎ個の流出経路を検査することができる。上述したように、中継プロバイダ５３０ａによって公表されたプレフィックスに属する発信元ＩＰアドレスから発信されたパケット（例えば、遅延を測定するためのエコー要求パケット）は、各中継プロバイダ５３０を介して宛先ＩＰアドレスにルーティングされる。しかしながら、宛先ＩＰアドレスからの返信パケット（例えば、エコー要求に応答したエコー応答パケット）は、中継プロバイダ５３０ａを介して発信元アドレスに返される。所定の発信元ＩＰアドレスと宛先ＩＰアドレスとの間の各流入／流出経路の組み合わせを測定することによって、（例えば、図１Ｂに示すように）流入および流出経路の遅延性能のマトリックスを生成することができる。遅延測定値を比較することによって、所定の時間で、所定の宛先ＩＰアドレスまでの流入および流出経路の「最良」（例えば、最短遅延）組み合わせを選択することができる。
【００５６】
エンドポイントまでの経路を決定するための最適な中継決定エンジン
仮想マシン５１０、収集サーバ５１２または別個のプロセッサは、決定エンジン（図示せず）を実装することができる。この決定エンジンは、以下の擬似コードを実行することによって、トラフィックを所定のターゲットＩＰアドレスにルーティングするための好ましい経路を決定することができる。
【００５７】
【表５】
2018528695.tif 000007
【００５８】
切換えを推薦するか否かを決定する際に、決定エンジンは、ターゲットＩＰアドレスに対してどの中継プロバイダ５３０が最も高い優先度スコアを有するかをチェックし、そのスコアをターゲットＩＰアドレスの現在の中継プロバイダ５３０の優先度スコアに比較する。決定エンジンは、ルーティング状態（例えば、最後の推薦）レコードを維持することによってまたは顧客のシステムにルーティング構成を照会することによって、現在のプロバイダを「知る」。中継プロバイダ５３０間の望ましくない変動を防ぐために、決定エンジンは、中継プロバイダ５３０の切換えを推薦する頻度に制限を課すことができる。同様に、収集装置５１２は、（例えば、多すぎるエコー要求およびエコー応答によって渋滞を引き起こすことによって）ルーティング性能に悪影響を与えないように、遅延およびパケットの測定頻度を調整することができる。
【００５９】
静的ルート（トラフィックの手動誘導）
図５Ｂは、ネットワーク５００が、決定エンジンの推薦に従って設定された静的ルートを介して、手動でトラフィックを誘導することを示している。顧客が設定した遅延、コスト、およびパケット損失の重み付き組み合わせである優先度スコアに基づいて、各エンドポイントに対して適切な中継プロバイダ５３０を決定する。顧客サーバ５１０は、各エンドポイントの静的ルートを適用することによって、ＢＧＰポリシーをオーバーライドする。例えば、中継プロバイダ５３０ｃがトラフィックをエンドポイントＡに誘導するために最も低い優先度スコアを有する経路を提供する場合、ＢＧＰポリシーをオーバーライドして、中継プロバイダ５３０ｃを介してトラフィックをエンドポイントＡに誘導する。同様に、中継プロバイダ５３０ａがトラフィックをエンドポイントＢに誘導するために最も低い優先度スコアを有する経路を提供する場合、ＢＧＰポリシーをオーバーライドして、中継プロバイダ５３０ａを介してトラフィックをエンドポイントＢに誘導する。
【００６０】
図７および以下の擬似コードは、（手動で）トラフィックを２つのターゲットエンドポイントに誘導するためのプロセス７００を示す。ステップ７１０において、決定エンジンは、収集装置５１２によって監視されている各エンドポイント（ターゲットＩＰアドレス５４０）までの静的ルートを生成する。ステップ７２０において、決定エンジンは、エンドポイントＡおよびＢの静的ルートを各ボーダールータ５２０に適用する。
【００６１】
【表６】
2018528695.tif 000008
【００６２】
適切な中継プロバイダ５３０またはボーダールータ５２０を指向する各エンドポイントに対して、このプロセス７００（ステップ７３０および７４０）を繰り返してもよい。なお、静的ルートは、任意の順序でまたは同時に、エンドポイント５４０のボーダールータ５２０に適用されてもよい。
【００６３】
適用されると、静的ルートは、以下のように動作する。エンドポイントＡ宛てのパケットがボーダールータ５２０ａに現れた場合、ボーダールータ５２０ａは、中継プロバイダ５３０ａを介してパケットをルーティングする。同様に、エンドポイントＢ宛てのパケットがボーダールータ５２０ｂに現れた場合、ボーダールータ５２０ｂは、中継プロバイダ５３０ｃを介してパケットをエンドポイントＢにルーティングする。しかしながら、エンドポイントＢ宛てのパケットがボーダールータ５２０ａに現れた場合、ボーダールータ５２０ａは、パケットをボーダールータ５２０ｂにルーティングし、その後、ボーダールータ５２０ｂは、中継プロバイダ５３０ｃを介してパケットをエンドポイントＢにルーティングする。同様に、エンドポイントＡ宛てのパケットがボーダールータ５２０ｂに現れた場合、ボーダールータ５２０ｂは、パケットをボーダールータ５２０ａにルーティングし、その後、ボーダールータ５２０ａは、中継プロバイダ５３０ａを介してパケットをエンドポイントＡにルーティングする。
【００６４】
ＢＧＰ属性を中継プロバイダに関連付けることによるトラフィックの誘導
上述したように、静的ルートは、拡張性を有しなく、構成および障害管理の面で扱いにくい場合がある。幸いにも、顧客側の収集サーバ５１２にＢＧＰデーモンを使用することによって、動的誘導を達成することができる。図５Ｃに示すように、このＢＧＰデーモンによって、収集サーバ５１２は、直接にまたは１つ以上のルートリフレクタ５８５ａおよび５８５ｂ（まとめてルートリフレクタ５８５という）を介して、顧客ルータ５３０とピアになることができる。
【００６５】
図８および以下の擬似コードは、特定の中継プロバイダを介して所定のＩＰアドレスのトラフィックを誘導するように、ＢＧＰ集団属性を用いてルータを動的に設定するためのプロセス８００を示す。各中継プロバイダ５３０は、異なるＢＧＰ集団属性に関連付けられている。ＢＧＰ「集団」を変更することによって、各ホストプレフィックスを所定の中継プロバイダ５３０に関連付けることができる。この関連付けを形成した後、ボーダールータ５２０は、例えば、以下の擬似コードに従って、関連する中継プロバイダ５３０を介して、所定のＢＧＰ「集団」属性を用いてトラフィックを誘導する。
【００６６】
【表７】
2018528695.tif 000009
【００６７】
各中継プロバイダ５３０に割り当てられた一意のＢＧＰ集団属性と一致するポリシーを用いて、ボーダールータ５２０を設定すること（ステップ８１０）によって、プロセス８００を実施することができる。所定のＢＧＰ集団と一致する場合、各ボーダールータ５２０は、関連する中継プロバイダ５３０に向けるように対応する次のホップを変更する（ステップ８２０）。別の中継プロバイダ５３０が同一のエンドポイントに対してより短い遅延を有する場合、ＢＧＰデーモンは、そのエンドポイントのＢＧＰ集団属性の値を変更することによって、ボーダールータ５２０と中継プロバイダ５３０との間の関連付けを変更する。例えば、ＢＧＰデーモンは、ＢＧＰセッションに次のルートマップを適用することができる。
【００６８】
【表８】
2018528695.tif 000010
【００６９】
ＤＮＳクエリを解析するためのリアルタイムユーザ監視
別の方法は、遅延およびコストを含む様々な性能メトリクスに基づいてドメインネームシステム（ＤＮＳ）クエリを解析することによって、インターネットデータトラフィックを最適に誘導する。このことは、特定の再帰リゾルバを用いて、リアルタイムユーザ監視（ＲＵＭ）データを収集および分析し、異なるコンテンツの発信元からコンテンツをクライアントに提供する性能および特定の権威サーバにクエリする性能を予測することによって実現される。予測された性能を用いて、ＤＮＳクエリを所定のコンテンツ発信元に送信するようにクライアントを誘導することができる。当該コンテンツ発信元は、コンテンツ配信ネットワーク（ＣＤＮ）またはクラウドプロバイダからコンテンツを提供することができ、および／または帰納的リゾルバを所定の権威サーバに誘導することができる。トラフィックは、クライアントのＩＰアドレスに対して予測されたコンテンツ発信元の性能に基づいて誘導される。より具体的には、１つ以上のサーバは、異なるＲＵＭデータを収集することによって、各ＩＰのＲＵＭデータを処理し、１組のＩＰアドレスのＲＵＭデータを集計し、集計されたデータに高速アクセスするためのデータベースを作成する。このデータベースを用いて、最適な方法でトラフィックを誘導する。
【００７０】
当業者なら理解するように、ＤＮＳは、コンピュータ、サービス、またはインターネットまたはプライベートネットワークに接続された任意のリソースの階層型分散ネーミングシステムである。ＤＮＳは、関与する各々のエンティティに割り当てられたドメイン名に、様々な情報を関連付ける。また、ＤＮＳは、容易に覚えられるドメイン名を数値のインターネットプロトコル（ＩＰ）アドレスに変換し、ＩＰアドレスを用いて、基礎ネットワークプロトコルを有するコンピュータサービスおよび装置を特定する。
【００７１】
権威ネームサーバまたは権威としても知られている権威ＤＮＳサーバは、ドメイン名を数値ＩＰアドレスにマッピングするクエリ、およびメール交換（ＭＸ）レコードなどの他のリソースレコード（ＲＲ）を要請する要求に応答する。これらのクエリに応答するために、各権威は、ＤＮＳレコードを格納する独自のＤＮＳデータベースを有する。ＤＮＳデータベースに格納された共通種類のレコードは、対応するドメインのＩＰアドレス（ＡおよびＡＡＡＡ）、簡易メール転送プロトコル（ＳＭＴＰ：Simple Mail Transfer Protocol）ＭＸレコード、およびネームサーバ（ＮＳ）レコードを含む。ＤＮＳデータベースは、ＤＮＳレコードの認証に使用できるドメイン名エイリアス（ＣＮＡＭＥ）およびＤＮＳセキュリティ拡張（ＤＮＳＳＥＣ）レコードを含む他の種類のデータのレコードを格納することができる。
【００７２】
新たなドメインをインターネットに追加するために、基本的なＤＮＳ標準によって、ドメイン所有者または登録者は、レジストラからドメイン名を購入し、新たなドメインのクエリに応答する権威ＤＮＳサーバの名前を指定する必要がある。登録者は、権威ＤＮＳプロバイダ（例えば、ニューハンプシャー州マンチェスタ市に位置するダイナミックネットワークサービス社）から権威ＤＮＳサービスを取得し、権威ＤＮＳプロバイダを用いてドメイン名（より正確にはゾーン）のレコードを設定する。エンドユーザのコンピュータが新たなドメイン名にアクセスしようとする場合、エンドユーザは、新たなドメインのＤＮＳレコード、より一般的にＡまたはＡＡＡＡ（ＩＰｖ４またはＩＰｖ６アドレス）を取得するように、再帰サーバまたは再帰リゾルバとも呼ばれる再帰ＤＮＳサーバに要請する。これらのＤＮＳレコードは、エンドユーザが要求しているコンテンツまたは他の情報を提供するコンテンツ発信元のＩＰアドレスを含む。再帰サーバは、権威ＤＮＳプロバイダによって管理されている権威ＤＮＳサーバ（権威サーバまたは単に権威として呼ばれる）を特定し、権威ＤＮＳサーバにＤＮＳレコードを照会する。再帰ＤＮＳサーバは、権威ＤＮＳサーバの応答をエンドユーザのマシンに送信ことができ、生存時間（ＴＴＬ：Time To Live）に従って応答をキャッシュすることもできる。その後、エンドユーザのマシンは、権威ＤＮＳサーバによって提供されたＤＮＳレコードを用いて、ドメインにアクセスすることができる。
【００７３】
従来の再帰的な権威ＤＮＳサーバは、新たなドメインに対するコンテンツ発信元のＩＰアドレスとエンドユーザのマシン（クライアント）との間のパケット伝送に関連する遅延を考慮していない。代わりに、権威サーバは、単に新たなドメインのオペレータによって設定された（静的）ポリシーに従ってＩＰアドレスを提供する。その結果、従来のネームサーバは、クライアントを最も短い遅延を有するコンテンツ発信元に誘導することができない。
【００７４】
ＲＵＭデータ監視システム
図９は、ＲＵＭデータを監視し、遅延および他の要因に基づいて、ＲＵＭデータを用いてＤＮＳ要求を解析するためのシステム９００を示す。システム９００は、インターネット９０１または別のパケット交換ネットワークを介して、コンテンツ発信元９１０ａ〜９１０ｃ（まとめてコンテンツ発信元９１０という）並びに権威サーバ９２０ａおよび再帰レゾイバ９２０ｂ（まとめて権威ＤＮＳサーバ再帰レゾイバ９２０という）と通信するためのクライアント９３０を含む。また、システム９００は、ＲＵＭデータを格納するＲＵＭデータベース９４０と、タイプ別ラベル付きＩＰセット（ＴＹＬＩＰＳ：TYped Labeled IP Set）を格納する別のデータベース９５０とを含む。
【００７５】
動作中、クライアント９３０は、コンテンツ発信元９１０のうちの１つに格納されたコンテンツにアクセスするためのプロセスの一部としてのＤＮＳ要求９３１を権威サーバ９２０ａに送信する。権威サーバ９２０ａは、この要求に応答して、クライアントのＩＰアドレスと、クライアントと同様のサブネット上のＩＰアドレスを有するまたは同様の地理領域に位置する他のクライアント（図示せず）にデータを提供するコンテンツ発信元の性能ランキングとに基づいて、所望の性能を有するコンテンツ発信元を選択する。このランキングは、権威サーバ９２０ａに合わせて特別に調整することができる。権威サーバ９２０ａは、選択されたコンテンツ発信元（例えば、コンテンツ発信元９１０ａ）のＩＰアドレスまたはホスト名９２１をクライアント９３０に提供する。クライアント９３０は、選択されたコンテンツ発信元９１０からコンテンツ９１１をダウンロードし、更なるＤＮＳ要求を解析するための追加的な性能データを生成する。クライアント９３０からの関連要求は、再帰リゾルバ９２０ｂを介して送信される。
【００７６】
ＲＵＭデータの収集
図１０は、図９に示すシステム９００を用いてトラフィックを誘導するためのＲＵＭデータのデータベースを作成するためのプロセス１０００を示す流れ図である。ステップ１０１０において、インターネット性能データは、リアルタイムユーザ監視（ＲＵＭ）レコードのストリームとして収集される。データは、複数のコンテンツプロバイダまたはコンテンツ発信元からデータを要求またはダウンロードするユーザまたはクライアントから収集される。ステップ１０２０において、ほぼ同時に様々なコンテンツ発信元から同様のデータサンプルをダウンロードする時間を測定することによって、各ＲＵＭレコードを処理する。この処理によって、各対のコンテンツを直接に比較することができる。
【００７７】
ステップ１０３０において、ＩＰアドレスをタイプ別ラベル付きＩＰセット（ＴＹＬＩＰＳ）に分類する。ＴＹＬＩＰＳは、同様のプロバイダによって提供され、共通特徴例えば同様の国を有する１組のＩＰアドレスである。コンテンツ発信元の相対的な機能のヒストグラムは、各ＩＰアドレスごとに蓄積される。次に、ＴＹＬＩＰＳのために、これらのヒストグラムは、合併され、蓄積される。
【００７８】
ステップ１０４０において、最近のＲＵＭデータからのタイミング、故障および他の情報を用いて、各ＴＹＬＩＰＳの性能スコアを計算する。これらのスコアを用いて、各ＴＹＬＩＰＳのＩＰアドレスに対応するコンテンツ発信元をランキングする。コンテンツ発信元および関連するＴＹＬＩＰＳランキングは、ＴＹＬＩＰＳデータベースに格納される。このデータベースは、集計されたデータへの高速アクセスを提供し、最適な方法でトラフィックを誘導するために使用される。
【００７９】
インターネット性能データは、例えば、複数のコンテンツプロバイダまたはコンテンツ発信元からデータを要求し、ダウンロードするユーザまたはクライアントから収集することができる。データは、レコードに編成され、各ＲＵＭレコードは、ユーザからのダウンロードを複数のコンテンツ発信元に関連付け、（１）クライアントのインターネットプロトコル（ＩＰ）アドレス、（２）ＤＮＳ解析に使用された１つ以上の再帰レゾイバのＩＰアドレス、（３）コンテンツ発信元に一意的に関連付けられた識別子、例えばＵＲＩ（Uniform Resource Identifier）、および（４）ダウンロードに関連する時間データのうち１つ以上を含むことができる。コンテンツ発信元は、例えば、Akamai、Level 3などのコンテンツ配信ネットワーク（ＣＤＮ）、Digital Ocean、Amazonなどのクラウドプロバイダ、またはコンテンツ発行者のプライベートデータセンタであってもよい。ダウンロードに関連する時間データは、ドメインネームサーバ（ＤＮＳ）解析時間、接続を確立した時間、特定のコンテンツ発信元から最初のバイトをダウンロードした時間、最後のバイトをダウンロードした時間およびデータサンプルダウンロードする合計時間などのダウンロード速度を示す様々な中間測定値を含むことができる。
【００８０】
図１１は、一連のリアルタイムユーザ監視（ＲＵＭ）レコードを収集するための別のプロセス１１００を示す。ステップ１１１０において、ＲＵＭデータをダウンロードするために、JavaScript（登録商標）などのコードを配置する。いくつかの実施形態において、コードは、コンテンツ発信元のＷｅｂページを介して配置される。他の実施形態において、コードは、コンテンツ発信元のデータセンタに配置される。クライアントがコンテンツ発信元のＷｅｂページを訪問すると、配置されたコードは、クライアントのブラウザにダウンロードされる（ステップ１１２０）。ステップ１１３０において、クライアントは、このコードを実行することによって、ＲＵＭデータを収集する。ステップ１１４０において、クライアントは、クライアントのＩＰアドレス、コンテンツ発信元のＩＰアドレス、ＤＮＳ要求解析時間、コンテンツ発信元のＵＲＬ、および各ダウンロードのダウンロード時間を含むがこれらに限定されないＲＵＭデータをＲＵＭデータベースに送信する。クライアントは、同時および／または迅速且つ連続的に行われた異なるコンテンツ発信元からのダウンロードまたは同一のコンテンツ発信元からの複数のダウンロードに関するデータ収集および伝送を繰り返す（ステップ１１５０）。異なるＩＰアドレスのＤＮＳ要求解析時間およびダウンロード時間を比較することによって、クライアント、再帰リゾルバおよび／またはコンテンツ発信元の異なる組み合わせに関連するランキングを生成する（ステップ１１６０）。例えば、これらのランキングを用いて、更なるＤＮＳ要求に応答して、コンテンツ発信元特定およびコンテンツダウンロードプロセスの１つ以上のステップに関連する合計時間または時間を短縮することができる（ステップ１１７０）。
【００８１】
コードを用いてＲＵＭレコードを収集するための動作は、以下の非限定的な例を参照して説明する。クライアントは、Ｗｅｂブラウザを介して米国特許の全ページ画像を掲載するＷｅｂページhttp://patft.uspto.gov/netahtml/PTO/patimg.htmに訪問する。このＷｅｂページは、クライアントのブラウザによってダウンロードされるJavaScriptコードを提供する。この例において、クライアントがＷｅｂページから米国特許の全ページ画像をダウンロードしている間、JavaScriptコードは、Ｗｅｂブラウザ上で実行され、ＲＵＭデータを収集する。JavaScriptコードは、（１）米国特許全ページ画像を取得するためにＷｅｂページを訪問したクライアントのＩＰアドレス、（２）クライアントによって使用されたＤＮＳ再帰リゾルバのＩＰアドレス、（３）データサンプルを提供するコンテンツ発信元のＵＲＩ、および（４）データサンプルをダウンロードするためのプロセスの様々な中間時間を収集することができる。
【００８２】
ＲＵＭデータの処理
各ＲＵＭレコードにおいて、様々な発信元から同一のデータサンプルをダウンロードする時間は、ほぼ同時に測定される。これによって、各対のコンテンツ発信元の性能を直接に比較することができる。各対のコンテンツ発信元に対して、同一のデータサンプルをダウンロードする時間の差は、例えば、ＤＮＳ解析時間および／または接続時間の間の差として計算される。これらの差は、一定の期間に亘って蓄積される。各対の発信元および各種時間の差のヒストグラムを計算する。時間の例として、ＤＮＳ解析時間またはダウンロード時間が挙げられる。
【００８３】
例えば、テキサス州（Texas）ヒューストン市（Houston）に位置するＩＰアドレスを有するクライアントは、テキサス州（Texas）ダラス市（Dallas）に位置するＩＰアドレスを有する再帰リゾルバを使用する場合、ＯＩＤ１からのＤＮＳ解析時間およびダウンロード時間が各々１０ｍｓおよび４０ｍｓであり、ＯＩＤ２からのＤＮＳ解析時間およびダウンロード時間が各々１５ｍｓおよび５０ｍｓである。この例において、（ＯＩＤ１、ＯＩＤ２）対のＤＮＳ解析時間の差が−５ｍｓであり、ダウンロード時間の差が−１０ｍｓである。これらの差は、経時的に蓄積される。これらの差を用いて、クライアントまたは再帰ＩＰ、またはこれらのＩＰの特徴（例えば、地理位置、インターネットサービスプロバイダ）、時間の類別（例えば、ＤＮＳ解析時間、ダウンロード時間）、および発信元の対によって共にインデクスされたヒストグラムを作成することができる。
【００８４】
図１２は、テキサス州ヒューストン市に位置する全てのクライアントＩＰのヒストグラムの例を示している。このヒストグラムは、２４時間に亘って収集された、２つの異なるコンテンツ配信ネットワーク（ＣＤＮ）（ここでは、AkamaiおよびFastly）内のコンテンツ発信元のＤＮＳ解析時間の差から生成される。発信元対の差のヒストグラムを用いて、他方の発信元に対して一方の発信元の性能を比較することができる。図１２を含むいくつかの場合において、比較は、各差のヒストグラムに正値と負値の数を数えることによって達成される。例えば、一対の発信元（ＯＩＤ１、ＯＩＤ２）の差のヒストグラムにおいて、負値は、ＯＩＤ１の時間がＯＩＤ２の時間よりも短い状況を表しているため、ＯＩＤ１の性能が良好であることを示す。正値は、ＯＩＤ２の性能が良好である反対の状況を示す。差がゼロの場合、ＯＩＤ１とＯＩＤ２の性能が同様である。時間の絶対差が所定の閾値を下回る場合、例えば時間の絶対差が２０ｍｓ未満である場合、性能が同等であると考えられてもよい。各発信元に対して、コホート内の他の発信元に対する性能の同等比較を平均化することによって、特定の発信元の全体的な性能を表す単一スコア表現を得ることができる。他の発信元に対して各発信元を採点するために、発信元に特有の他の基準、例えば、遅延中央値、経時変動性および／または安定性、故障率を使用することができる。
【００８５】
タイプ別ラベル付きＩＰセット（ＴＹＬＩＰＳ：TYped Labeled IP Set）データの集計
ＲＵＭデータは、１つ以上の共通特徴を共有するＩＰアドレスセットに対して集計される。これらのセットは、タイプ別ラベル付きＩＰセット、または「ＴＹＬＩＰＳ」と呼ばれる。ＴＹＬＩＰＳの例として、フランス（タイプ＝国）、ボストン（タイプ＝都市）、ＡＳ１７４（タイプ＝インターネットサービスプロバイダ（ＩＳＰ））、および（パリス、ＡＳ５５１１）（タイプ＝都市プロバイダ）が挙げられる。「ＴＹＬＩＰＳ」という用語は、「ＩＰ特徴」という用語と互換的に使用することもできる。単一のＩＰは、サイズ＝１のＴＹＬＩＰＳである。ＴＹＬＩＰＳは、ＩＰアドレスセットであるため、数学の集合演算を使用することができ、セットの全ての特性を有する。例えば、２つのＴＹＬＩＰＳが交差してもよく、１つのＴＹＬＩＰＳが別のより大きなＴＹＬＩＰＳに含まれてもよい。
【００８６】
図１３は、ＲＵＭデータを集計するためのプロセスを示す流れ図である。ステップ１３１０において、ほぼ同時に各対の発信元のダウンロード時間を測定する。各対の発信元の差は、一定の期間に亘って蓄積される。ステップ１３２０において、一定の期間に累積された各対の発信元の差を計算してヒストグラムを生成する。
【００８７】
これらの発信元の相対性能のヒストグラムは、「クライアントＩＰアドレスごと」にまたは「再帰リゾルバＩＰアドレスごと」に構築されてもよい。各ＩＰアドレスのヒストグラムを蓄積し、合併することによって、ＩＰアドレス群のヒストグラムを生成する（ステップ１３３０）。各群のＩＰアドレスは、１つ以上の特徴を共有する群内の全てのＩＰアドレスに基づいて選択される。共通特徴は、例えば、地理位置（群内のＩＰアドレスが特定の都市、国または大陸に配置される）、特定のインターネットサービスプロバイダ（ＩＳＰ）による発信または伝送、または共通組織の会員であってもよい。共通特徴は、地理位置およびＩＳＰ（例えば、ヘルシンキ（Helsinki）に位置するTeliaSonera社からのＩＰアドレス）のような共同特徴であってもよい。
【００８８】
ステップ１３４０において、同一のＴＹＬＩＰＳ内の別の発信元に対して１つの発信元の性能を比較する。性能および総合スコアに基づいて、ＴＹＬＩＰＳをランキングする（ステップ１３５０）。再帰リゾルバは、ＴＹＬＩＰＳランキングを用いて、次のＤＮＳ要求（ステップ１３６０）に応答して、特定のクライアントに特定のコンテンツ発信元を選択することができる。
【００８９】
ＲＵＭデータを使用してインターネットトラフィックを最適に誘導する際に、一部のＩＰアドレスは、不完全なデータまたは不適切な品質のデータを有する可能性がある。完全なデータが利用可能の場合、各ＩＰアドレスの決定は、そのＩＰアドレスに関連するデータを用いて行うことができる。実際にデータの品質またはデータの希薄性の問題に対処するために、ＲＵＭデータをＴＹＬＩＰＳに集計し、ＴＹＬＩＰＳ階層を定義する。所定のＩＰは、階層内にいくつかの連続的な大きいＴＹＬＩＰＳに含まれている。各ＴＹＬＩＰＳの特異度、利用可能なデータの量、収集されたデータの質、および他の類似基準に基づいて、ＴＹＬＩＰＳをランキングする。ＩＰに関するデータが利用できない場合、最も詳細なＴＹＬＩＰＳ、例えば、十分な品質のデータが利用可能であ最も小さいＴＹＬＩＰＳを使用する。基本的な前提は、所定のＩＰの性能プロファイルが最も詳細なＴＹＬＩＰＳの性能プロファイルに類似することである。
【００９０】
図１４Ａおよび１４Ｂは、ＴＹＬＩＰＳの異なる階層を示す。図１４Ａにおいて、ＴＹＬＩＰＳセットの階層に基づいて、ＩＰ１の場合、ＴＹＬＩＰＳ「ネットワークプレフィックス」を選択する。ＩＰ２の場合、選択されたＴＹＬＩＰＳは、「行政区域」の「ＢＧＰ ＡＳＮ」、例えば、米国の１つの州に位置するＩＳＰである。一方、ＩＰ３の場合、選択されたＴＹＬＩＰＳは、「国」である。図１４Ｂにおいて、ＩＰアドレス８８．２２１．８．１は、以下のＴＹＬＩＰＳ階層、すなわち、プレフィックス８８．２２１．８．０／２２、ＡＳ５５１１、マドリード市、マドリッド州（Comunidad de Madrid）、スペイン国、西ヨーロッパ地域、およびヨーロッパ大陸に属している。このＴＹＬＩＰＳ階層は、予め定義されてもよく、予め定義されなくてもよい。このＩＰアドレスに対する要求があった場合、十分なデータを持つ最も詳細なＴＹＬＩＰＳが選択される。
【００９１】
いくつかのＴＹＬＩＰＳが他のＴＹＬＩＰＳに含まれる（例えば、都市は州に含まれ、州は国に含まれる）が、一方、いくつかのＴＹＬＩＰＳ、例えばプレフィックスおよび国が交差する。別のＩＰアドレス、例えば９０．８４．２５５．１に対して、入手可能な最も詳細なデータは、国レベルのみであり、そのＴＹＬＩＰＳ階層は、スペイン国、西ヨーロッパ地域、ヨーロッパ大陸である。
【００９２】
階層に基づいて、利用可能なＴＹＬＩＰＳから、最も詳細なＴＹＬＩＰＳを選択することができる。最も詳細なＴＹＬＩＰＳは、ＩＰアドレスのプロファイルと最もよく一致する性能データを有するＴＹＬＩＰＳを選択することによって選択される。また、最も詳細なＴＹＬＩＰＳは、十分な利用可能なデータに基づいて選択されてもよい。
【００９３】
ＴＹＬＩＰのランキング
ＲＵＭデータの収集に関して上述したように、クライアントは、コンテンツ発信元を訪問すると、コンテンツ発信元に配置された画像またはコードをダウンロードして実行する。このコードまたは画像は、ダウンロード時間、測定を行った時間、クライアントのＩＰ位置などのＲＵＭデータを記録する。測定値は、１つのクライアントＩＰから、コードまたはイメージをビーコンとしてホストしている全てのコンテンツ発信元までの時間測定値セットと呼ばれる。これらのビーコンは、データを処理するためのデータ処理サーバに転送される。
【００９４】
コンテンツ発信元のランキングは、ＲＵＭデータから計算される。データは、一定の時間間隔に亘って集計される。例えば、データは、２４時間に亘って集計される。時間間隔内の各ビーコンに対して、各対のコンテンツ発信元の間の時間差が計算される。
【００９５】
例えば、ビーコン内で、３つのコンテンツ発信元に関する以下の時間を測定する場合、
・  CDN_A:60ms、CDN_B:100ms、CDN_C:40ms、CDN_D:200ms
対の時間差は、次の通りである。
・  CDN_A-B:-40ms、CDN_A-C:20ms、CDN_A-D:-140ms
・  CDN_B-C:60ms、CDN_B-D:-100ms
・  CDN_C-D:-160ms
時間間隔に亘って、各対のコンテンツ発信元に対する時間差の分布を計算する。これによって、平均差を計算することができ、または１つのコンテンツ発信元が別のコンテンツ発信元よりも優れている時間の百分比を特定することができる。
【００９６】
場合によって、各コンテンツ発信元対の統計から、ランキングを計算することができる。例えば、「優れている時間の百分比」に基づくランキングの例が開示されている。所定のコンテンツ発信元に対して、競合コンテンツ発信元に対する当該コンテンツ発信元の優れている時間の百分比を特定する。次に、百分比を平均化することによって、スコアを計算する。これらのスコアを用いて、コンテンツ発信元をランキングし、同様のスコアを持つコンテンツ発信元を同一等級のグループに分ける。例示をもって最もよく説明する。４つのコンテンツ発信元を対ごとに比較すると、以下の百分比は、１つのコンテンツ発信元が別のコンテンツ発信元よりも優れていることを示す。
・  Ａ−Ｂ  ５２％−４８％、Ａ−Ｃ  ７５％−２５％、Ａ−Ｄ  ９５％−５％
・  Ｂ−Ｃ  ７０％−３０％、Ｃ−Ｄ  ９０％−１０％
・  Ｃ−Ｄ  ６０％−４％
これらのランキングを表形式する場合、次の通りである。
【００９７】
【表９】
2018528695.tif 000011
【００９８】
この例において、コンテンツ発信元Ａは、最良であるが、コンテンツ発信元Ｂとほぼ同様であり、コンテンツ発信元Ｃよりも著しく良好であり、コンテンツ発信元Ｄよりもずっと優れている。コンテンツ発信元Ｄは、最も不良である。
【００９９】
コンテンツ発信元Ａは、コンテンツ発信元Ｂ、ＣおよびＤに比べて、各々５２％、７５％および９５％の時間百分比で優れている。百分比の平均値は、７４％である。コンテンツ発信元Ｂ、ＣおよびＤの百分比平均値は、各々６９．３３％、３８．３３％および１８．３３％である。これらの平均を用いて、コンテンツ発信元を次のようにランキングする。
【０１００】
【表１０】
2018528695.tif 000012
【０１０１】
図１５は、２０１６年３月２日０：００  ＵＴＣから２０１６年３月３日０：００  ＵＴＣまでの間にデータを要求する日本のクライアントＩＰアドレスのランキングを示す例である。ランキングおよびスコアは、１５１０に示されている。百分比マトリクス１５２０は、各行で各コンテンツ発信元の優れている百分比を示している。例えば、Fastlyは、Edgecastよりも約５４％の時間で優れている。測定値の百分比が同様であり、すなわち、両方のコンテンツ発信元が同様の性能を有するため、全ての対の百分比の和が１００％になるわけではない。類似の性能を有するコンテンツ発信元は、同一等級のグループに分けられる。例えば、等級Ａにおいて、一対のコンテンツ発信元間の最大スコアの差は、１０未満である。
【０１０２】
コンテンツ発信元を等級化するために、スコアは、降順で考慮される。最初に、例えば、最高等級のＡまたは０を考慮する。等級付きの所定スコアに対して、前のスコアと次のスコアとの差を順番に計算する。さらに、このスコアと同一等級内のトップスコアとの差を計算する。スコアの差が２よりも大きく且つ（１）現在のスコアと次のスコアとの差が１０％よりも大きく、すなわち、次のスコアが現在のスコアの９０％よりも小さいである場合または（２）次のスコアと同一等級内のトップスコアとの差が１０％よりも大きく（すなわち、次のスコアが現在のスコアの９０％よりも小さく）および次のスコアと現在のスコアとの差が前のスコアと現在のスコアとの差の３倍よりも大きい場合、次の等級に繰り上げる。
【０１０３】
例えば、５０と４０との差が２よりも大きい１０であり、４０が５０の９０％、すなわち、４５よりも小さいため、５０と４０との間で分ける。同様に、スコア６０，５７，５５，５３，５１，５０，４６の場合、５０−４６＝４＞２、４６＜（０．９×６０）＝５４、５０−４６＞４＞３×（５１−５０）＝１であるため、５０と４６との間で分ける。
【０１０４】
現在の等級と次の等級との差が２０％よりも大きい場合、次のように１つ以上のステップに従って等級に繰り上げる。具体的に、（１）差が１０％〜２０％である場合、１つの等級、例えば、ＡからＢに繰り上げ、（２）差が２０％〜４０％である場合、２つの等級、例えばＡからＣに繰り上げ、（３）差が４０％〜８０％である場合、３つの等級、例えば、ＡからＤに繰り上げ、（４）差が８０％を超える場合、Ｆに繰り上げる。
【０１０５】
したがって、同様のスコアの場合、同一の等級に分けられる。スコア間の差が有意（１０％）である場合、等級分けを行う。等級分けの場合、等級内のトップスコアとボトムスコアとの差が大きくない。
【０１０６】
ＴＹＬＩＰＳから集計されたＲＵＭデータを用いたトラフィックの誘導
図１６は、１つ以上のＴＹＬＩＰＳから集計されたＲＵＭデータを用いてトラフィックを誘導するためのプロセス１００５を示す。クライアント９３０は、ドメインをＩＰアドレスに変換するために再帰リゾルバ９２０ｂにＤＮＳ要求を送信し、再帰リゾルバは、ＤＮＳ要求を権威ＤＮＳサーバ９２０ａに転送する（ステップ１６１０）。権威ＤＮＳサーバおよび再帰リゾルバ９２０は、利用可能であれば、クライアントのＤＮＳ再帰リゾルバのＩＰアドレスおよびクライアントのＩＰアドレスをＴＹＬＩＰＳデータベース９５０に提供する（ステップ１６２０）。ＴＹＬＩＰＳデータベース９５０は、クライアントのＤＮＳ再帰リゾルバおよびクライアントのＩＰアドレスに関連する利用可能且つ最も詳細なＴＹＬＩＰを検索する。また、ＴＹＬＩＰＳデータベース９５０は、利用可能且つ最も詳細なＴＹＬＩＰに対応するコンテンツ発信元のランキングを検索し、これらのランキングに基づいて、コンテンツ発信元を選択する。ＴＹＬＩＰデータベース９５０は、選択されたコンテンツ発信元を権威ＤＮＳサーバ９２０ａおよび再帰リゾルバ９２０ｂに提供する（ステップ１６３０）。権威ＤＮＳサーバ９２０ａおよび再帰リゾルバ９２０ｂは、クライアントのＤＮＳ要求に応答して、最適なコンテンツ発信元のＩＰアドレスをクライアント９３０に送信する。
【０１０７】
ＲＵＭデータに基づいて、再帰リゾルバのＩＰアドレスをクライアントのＩＰアドレスのＴＹＬＩＰＳに関連付けることができる。再帰リゾルバのＩＰアドレスがＲＵＭデータに観測されない場合、再帰リゾルバのＩＰアドレスを用いてＴＹＬＩＰＳの階層を見出すことができる。また、クライアントのサブネットデータ、例えば、クライアントのプレフィックスを用いて、ＴＹＬＩＰＳの階層を見出すこともできる。
【０１０８】
再帰リゾルバＩＰアドレスによって表されたクライアントＩＰアドレスに属するＩＰ特徴の階層またはＴＹＬＩＰＳに、再帰リゾルバのＩＰアドレスを関連付けることができる。例えば、再帰リゾルバは、米国東海岸都市に位置するクライアントの代理として、権威ＤＮＳサーバに照会することができる。他の例において、誘導の基礎として、再帰リゾルバＩＰアドレスの１つ以上の機能を直接に使用することができる。例えば、再帰リゾルバの位置をボストンに特定することができる。それにも係わらず、再帰リゾルバからのクエリに関連するＴＹＬＩＰＳセットを選択し、選択したＴＹＬＩＰＳセットを用いて誘導を決定する。
【０１０９】
例示として、マサチューセッツ州（Massachusetts）ソマービル市（Somerville）に位置し、Comcast社から発信する再帰リゾルバを挙げる。複数の発信元候補を区別し、適切な発信元を選択するために、この再帰リゾルバのＩＰアドレスに関連するＲＵＭレコードが十分である場合、再帰リゾルバのＩＰアドレスに関連付けられた詳細なランキングを使用することができる。そうでない場合、特定の基礎を形成するのに十分なＲＵＭ記録を有するより低い詳細度を有する領域（例えば、ソマービル市、マサチューセッツ州、またはニューイングランド地域）に関連付けられた発信元のランキングを使用することができる。場合によって、適切な発信元を選択するための明確な推薦を可能にするのに十分な品質のデータを有する最も詳細な特徴または共通特徴を使用することが望ましい。換言すれば、十分なデータを有する最も詳細なＴＹＬＩＰＳを選択し、最も詳細なＴＹＬＩＰＳに対して最良のスコアを有するコンテンツ発信元が推薦される。望ましい量のＲＵＭデータの閾値を提供し、現在の量が閾値よりも大きいか否かを分析することによって、データを十分であるとして定量化することができる。
【０１１０】
例えば、コンテンツプロバイダ（例えば、ニューヨークタイムズ）は、権威ＤＮＳプロバイダに支払うことによって、www.nytimes.comに訪問したユーザを、複数のコンテンツ発信元（例えば、ヨーロッパおよび北アメリカに位置する発信元）のうち適切なコンテンツ発信元に誘導することができる。権威ＤＮＳプロバイダは、（例えば、上記の方法を用いて）ＲＵＭレコードを収集し、ユーザの位置に基づいて、www.nytimes.comの性能を比較し、推薦のコンテンツ発信元を提供する。例えば、権威ＤＮＳプロバイダは、北アメリカではなくヨーロッパを推薦する場合がある。
【０１１１】
権威ＤＮＳプロバイダは、所定のゾーンに対してリアルタイムのトラフィック誘導を提供する。これによって、再帰ＤＮＳリゾルバを照会する１人以上のユーザが、要求されたコンテンツ発信元にマッピングされる。発信元は、短い遅延、高可用性、安定性、および類似する他の特性に基づいて選択することができる。換言すれば、権威ＤＮＳプロバイダは、ドメインを要請している再帰リゾルバを最も望ましい場所に導くことによって、そのドメインのデータを取得することができる。
【０１１２】
したがって、再帰ＩＰおよび／またはクライアントＩＰから、ＴＹＬＩＰＳの階層を計算するためのプロセスが開示される。各ＴＹＬＩＰＳは、予め計算されたスコアおよびコンテンツ発信元のランキングを有するデータベースにアクセスすることができる。例えば、十分なデータを有する最も詳細なＴＹＬＩＰＳなど、最良のＴＹＬＩＰＳが選択される。最良のＴＹＬＩＰＳのスコアおよびランキングを用いて、再帰ＩＰによって要求されたドメインと、最良のスコアを有するコンテンツ発信元とを一致させる。
【０１１３】
本発明の実施形態を用いて、リアルタイムでトラフィックを制御することができ、またはＤＮＳの過去性能に基づいて望ましいレベルの性能を達成するようにＤＮＳを構成することができる。本発明の方法を用いて、地理位置を所望のＣＤＮに一致させるマップを生成することができる。例えば、ユーザが現在ではコンテンツ発信元からＣＤＮサービスを購入していない場合でも、マサチューセッツ州から発信されたクエリに適切なコンテンツ発信元を推薦することができる。したがって、本発明の実施形態を用いて、新たなＣＤＮサービスの購入を評価することができる。
【０１１４】
結論
本明細書は、本発明の様々な実施形態を記載および例示したが、当業者であれば、本明細書に記載の機能を実行するため、および／または結果を得るため、および／または利点を得るために、様々な他の手段および／または構造を想到することができ、これらの変形および／または修正の各々は、本明細書に記載された本発明の実施形態の範囲内に含まれるとみなされる。より概括的に、当業者であれば、本明細書に記載された全てのパラメータ、寸法、材料および構成は、例示的であり、実際のパラメータ、寸法、材料および／または構成は、本発明の教示が使用される特定の応用に依存することを理解するであろう。当業者は、本明細書に記載のパラメータおよび構成が例示的であり、実際のパラメータおよび／または構成が本発明のシステムおよび技術が使用される具体的な用途に依存することを理解すべきである。また、当業者は、通常の実験によって、本発明の具体的な実施形態と同等するものを認識または把握することができるであろう。したがって、本明細書に記載の実施形態は、例示のみとして提示され、添付の特許請求の範囲および均等の範囲内に含まれることを理解すべきである。本発明は、具体的に説明した以外の方法で実施することができる。本明細書に記載された本発明の実施形態は、本明細書に記載された個々の特徴、システム、物品、材料、キット、および／または方法を対象とする。さらに、これらの特徴、システム、物品、キット、および／または方法の２つ以上の組み合わせが、互いに矛盾しない場合、本発明の範囲に含まれる。
【０１１５】
上述した実施形態は、多くの方法のいずれかで実施することができる。例えば、本明細書に開示された技術を設計および実施するための実施形態は、ハードウェア、ソフトウェア、またはそれらの組み合わせを用いて実装されてもよい。ソフトウェアコードは、ソフトウェアに実装される場合、単一のコンピュータによって提供された任意の適切なプロセッサまたはプロセッサ群または複数のコンピュータに分散された任意の適切なプロセッサまたはプロセッサ群に実行され得る。
【０１１６】
また、理解すべきことは、コンピュータは、ラックマウント型コンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、またはタブレットコンピュータのような多くの形態のうちのいずれかで具体化されてもよいことである。さらに、コンピュータは、一般にコンピュータとはみなされていないが適切な処理能力を有する装置、例えば、パーソナルデジタルアシスタント（ＰＤＡ）、スマートフォン、または他の適切な携帯または固定電子装置に埋め込まれてもよい。
【０１１７】
また、コンピュータは、１つ以上の入力および出力装置を有することができる。これらの装置を用いて、ユーザインターフェイスを提供することができる。ユーザインターフェイスを提供するために使用され得る出力装置の例は、可視出力を提供するためのプリンタまたはスクリーンまたは視覚を提供するためのスピーカまたは他の音生成装置を含む。ユーザインターフェイスを提供するために使用され得る入力装置の例は、キーボード、マウスなどのポインティング装置、タッチパッド、およびデジタル化タブレットを含む。別の例として、コンピュータは、音声認識または他の可聴形式で入力情報を受け取ることができる。
【０１１８】
これらのコンピュータは、企業ネットワーク、インテリジェントネットワーク（ＩＮ）またはインターネットなどのローカルエリアネットワークまたはワイドエリアネットワークを含む、任意の適切な形態の１つ以上のネットワークによって相互接続されてもよい。これらのネットワークは、任意の適切な技術に基づいてもよく、任意の適切なプロトコルに従って動作してもよく、無線ネットワーク、有線ネットワークまたは光ファイバネットワークを含んでもよい。
【０１１９】
本明細書に概説した（例えば、上記で開示した技術を設計および実施するための）様々な方法またはプロセスは、様々なオペレーティングシステムまたはプラットフォームの１つを採用する１つ以上のプロセッサ上で、実行可能なソフトウェアとしてコード化することができる。また、このようなソフトウェアは、多くの適切なプログラミング言語および／またはプログラミングツールまたはスクリプトツールのいずれかを用いて記述することができ、フレームワークまたは仮想マシン上で実行される実行可能な機械語コードまたは中間コードとしてコンパイルすることもできる。
【０１２０】
この点に関して、本発明の様々な態様は、コンピュータ可読記憶媒体（または複数のコンピュータ可読記憶媒体）（例えば、コンピュータメモリ、１つ以上のフロッピー（登録商標）ディスク、コンパクトディスク、光学ディスク、磁気テープ、フラッシュメモリ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、他の半導体装置、または他の有形的なコンピュータ記憶媒体または非一時的な媒体）にエンコードされた１つ以上のプログラムとして具体化することができ、これらのプログラムは、１つ以上のコンピュータまたは他のプロセッサ上で実行されると、上述した本発明の様々な実施形態を実現する方法を実行する。コンピュータ可読媒体は、格納しているプログラムを１つ以上の異なるコンピュータまたは他のプロセッサにロードして、上述した本発明の様々な態様を実施することができるように、移動可能である。
【０１２１】
本明細書において、「プログラム」または「ソフトウェア」という用語は、一般的な意味で、コンピュータまたは他のプロセッサに指示して、上述した本発明の様々な態様を実施するようにプログラムすることができる任意の種類のコンピュータコードまたはコンピュータ実行可能な命令セットを指す。また、この実施形態の１つの態様によれば、実行されると本発明の方法を実行する１つ以上のコンピュータプログラムは、単一のコンピュータまたはプロセッサ上に駐在する必要がなく、多くの異なるコンピュータまたはプロセッサにモジュール式で配置されても、本発明の様々な態様を実施することができる。
【０１２２】
コンピュータ実行可能な命令は、多くの形態、例えば、１つ以上のコンピュータまたは他の装置によって実行されるプログラムモジュールであってもよい。一般的には、プログラムモジュールは、特定のタスクを実行するまたは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。典型的には、プログラムモジュールの機能は、必要に応じて、様々な実施形態に組み合わられてもよく、分散されてもよい。
【０１２３】
また、データ構造は、任意の適切な形態のコンピュータ可読媒体に格納することができる。説明を簡単にするために、データ構造は、データ構造内の位置を介して関連するフィールドを有してもよい。同様に、フィールドの記憶をコンピュータ可読媒体内のフィールド間の関係を格納する位置に割り当てることによって、このような関係を達成することもできる。しかしながら、ポインタ、タグまたはデータ要素間の関係を確立する他のメカニズムの使用を含む任意の適切なメカニズムを用いて、データ構造のフィールドにおける情報間の関係を確立することができる。
【０１２４】
また、本発明の様々な概念は、例示を与えた１つ以上の方法として具体化することができる。方法の一部として実行された動作は、任意の適切な順序で実行されてもよい。したがって、例示的な実施形態では連続的な動作として示されているが、例えば、例示の順序と異なる順序で、例えば、いくつかの動作を同時に実行するように、実施形態を構成することができる。
【０１２５】
なお、本明細書において定義され、使用された全ての定義は、辞書定義、参照により組み込まれた文書の定義、および／または定義された用語の通常意味よりも優先する。
【０１２６】
特に明記しない限り、不定冠詞「ａ」または「ａｎ」は、本明細書および特許請求の範囲に使用された場合、「１つ以上」を意味する。
【０１２７】
「および／または」という語句は、本明細書および特許請求の範囲に使用された場合、列挙された要素の「一方または両方」を意味し、すなわち、これらの要素が一部の場合に共同に存在し、他の場合に単独に存在することを意味する。同様に、「および／または」で列挙された複数の要素は、列挙された要素のうち「１つ以上」として解釈すべきである。具体的に、「および／または」という語句によって具体的に特定された要素以外に、他の要素が、特定された要素と関連するか否かにかかわらず、必要に応じて存在してもよい。したがって、非限定的な例として、「Ａおよび／またはＢ」は、「含む（comprising）」などの開放型言語と併せて使用された場合、一実施形態において、Ａのみ（必要に応じて、Ｂ以外の要素）を含み、別の実施形態において、Ｂのみ（必要に応じて、Ａ以外の要素）を含み、さらに別の実施形態において、ＡおよびＢの両方（必要に応じて他の元素）を含むことを意味する。
【０１２８】
「または」という用語は、本明細書および特許請求の範囲に使用された場合、上記で定義した「および／または」と同様の意味を有すると理解すべきである。例えば、「または」または「および／または」は、リスト中の項目を分ける場合、包括的であり、すなわち、要素の数またはリストの少なくとも１つを含み、必要に応じてリストにない追加の項目を含むとして解釈すべきである。明白に反対の意味を示す用語、例えば、「１つのみ」または「正確に１つのみ」または「からなる」は、特許請求の範囲に使用された場合、要素の数またはリストの１つのみの要素を含むことを意味する。一般的に、本明細書に使用された用語「または」は、前方に「どちらか」、「一方」、「一方のみ」などの排他的な条件があった場合、排他的な意味（すなわち、両方ではなく、一方または他方）を意味するとして理解すべきである。「本質的に〜からなる」という用語は、特許請求の範囲に使用された場合、特許法の分野に使用される通常の意味を有するものとする。
【０１２９】
１つ以上の要素のリストを参照する「少なくとも１つ」という用語は、本明細書および特許請求の範囲に使用された場合、必ずしもリストに具体的に列挙された全ての要素の少なくとも１つを含まず、リスト内の複数の要素から選択された少なくとも１つの要素を含み、リスト内の要素の組み合わせを除外しないことを意味すると理解すべきである。また、「少なくとも１つの」という用語によって具体的に特定されたリスト内の要素以外に、他の要素が、具体的に特定されたリスト内の要素と関連するか否かにかかわらず、必要に応じて存在してもよい。したがって、非限定的な例として、「ＡおよびＢの少なくとも１つ」（または同等に「ＡまたはＢの少なくとも１つ」、または同等に「Ａおよび／またはＢの少なくとも１つ」）は、一実施形態において、少なくとも１つのＡ、場合によって２つ以上のＡを含み、Ｂを含まない（場合によって、Ｂ以外の元素を含む）ことを意味し、別の実施形態において、少なくとも１つのＢ、場合によって２つ以上のＢを含み、Ａを含まない（場合によって、Ａ以外の元素を含む）ことを意味し、さらに別の実施形態において、少なくとも１つのＡ、場合によって２つ以上のＡ、および少なくとも１つのＢ、場合によって２つ以上のＢ（場合によって、他の要素）を含むことを意味する。
【０１３０】
特許請求の範囲および上記の明細書において、「備える（comprising）」、「含む（including）」、「もつ（carrying）」、「有する（having）」、「含有する（containing）」、「関与する（involving）」、「保有する（holding）」、「構成される（composed of）」などの全ての接続用語は、開放的な意味、すなわち、限定せず含むという意味で理解すべきである。「〜からなる」および「本質的に〜からなる」という接続用語のみは、米国特許商標庁の特許審査手続書第２１１１．０３項に記載されているように、閉鎖型または半閉鎖型接続用語として理解すべきである。
【図１Ａ】
2018528695.tif 000013
【図１Ｂ】
2018528695.tif 000014
【図２】
2018528695.tif 000015
【図３】
2018528695.tif 000016
【図４】
2018528695.tif 000017
【図５Ａ】
2018528695.tif 000018
【図５Ｂ】
2018528695.tif 000019
【図５Ｃ】
2018528695.tif 000020
【図６】
2018528695.tif 000021
【図７】
2018528695.tif 000022
【図８】
2018528695.tif 000023
【図９】
2018528695.tif 000024
【図１０】
2018528695.tif 000025
【図１１】
2018528695.tif 000026
【図１２】
2018528695.tif 000027
【図１３】
2018528695.tif 000028
【図１４Ａ】
2018528695.tif 000029
【図１４Ｂ】
2018528695.tif 000030
【図１５】
2018528695.tif 000031
【図１６】
2018528695.tif 000032
【国際調査報告】
2018528695.tif 000033
2018528695.tif 000034
2018528695.tif 000035