JP6820320B2 - リアルタイムユーザ監視データを用いてリアルタイムトラフィック誘導を行うための方法および装置 - Google Patents

リアルタイムユーザ監視データを用いてリアルタイムトラフィック誘導を行うための方法および装置 Download PDF

Info

Publication number
JP6820320B2
JP6820320B2 JP2018511640A JP2018511640A JP6820320B2 JP 6820320 B2 JP6820320 B2 JP 6820320B2 JP 2018511640 A JP2018511640 A JP 2018511640A JP 2018511640 A JP2018511640 A JP 2018511640A JP 6820320 B2 JP6820320 B2 JP 6820320B2
Authority
JP
Japan
Prior art keywords
address
delay
relay
relay provider
provider
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018511640A
Other languages
English (en)
Other versions
JP2018528695A5 (ja
JP2018528695A (ja
Inventor
ポペスク,アリン
スタンホープ,フィリップ
メフラ,アルン
フルショフ,スティーブン
プレモア,ブライアン
マドリー,ダグラス
ブラジナ,スコット・マイケル
ベイカー,チャーリー
ギブソン,リチャード
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dynamic Network Services Inc
Original Assignee
Dynamic Network Services Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dynamic Network Services Inc filed Critical Dynamic Network Services Inc
Publication of JP2018528695A publication Critical patent/JP2018528695A/ja
Publication of JP2018528695A5 publication Critical patent/JP2018528695A5/ja
Application granted granted Critical
Publication of JP6820320B2 publication Critical patent/JP6820320B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0864Round trip delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • H04L43/106Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/04Interdomain routing, e.g. hierarchical routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/121Shortest path evaluation by minimising delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

関連出願の相互参照
本願は、米国特許法第119条(e)に基づき、2015年9月4日に出願され且つ「リアルタイムトラフィック誘導およびリアルユーザ監視データを行うための方法および装置」と題された米国特許出願第62/214814号の優先権を主張する。当該出願の全体は、参照により本明細書に組み込まれる。
背景
インターネット上の経路選択は、ボーダーゲートウェイプロトコル(BGP)に大きく依存している。BGPは、インターネット上の自律システム間の通信を可能にする拡張可能な標準プロトコルである。BGPは、1組の決定論ルールを用いて、エンドポイント間の経路を選択するため、距離ベクトル型ルーティングプロトコルとして分類される。
BGPは、一対のエンドポイント間の経路を選択する際に、遅延(latency)、パケット損失またはコストのうちいずれもを考慮しない。その結果、一部の回路において、遅延が許容できないほど低くなる可能性がある。他の回路において、パケットロスが高くなり、それによって、通信の効率が悪くなり、遅延がさらに長くなる可能性がある。最後に、BGPは、中継プロバイダが関心しているビジネス事項、例えば、コストおよび好ましい中継プロバイダを考慮していない。
現在では、いくつかの方法は、BGP経路上の第1ホップを最適化することができる。ルータ特有ソリューションは、Cisco社のIP−SLAおよびJumper社のRPMソリューションを含む。他の方法は、ハードウェア特有(Noction)方法であるか、または中継プロバイダ(Internap)のレベルに存在する。これらの方法は、トラフィックフローをグローバルに評価することによって、対応するBGPテーブルを変更する。
現在では、比較的にルータから独立しており、無制限の入力を統合することによって経路の選択を支援する全体的なまたは包括的なソリューションが存在していない。また、現在では、ターゲットサーバ上に長所を持たない復路を検討または制御するソリューションが存在していない。
ドメインネームシステム(DNS)は、テキストベースのドメイン名からインターネットプロトコル(IP)空間内の論理エンドポイント/アドレスをマッピングすることができる。ターゲットに接続する必要がある場合、発信元の地理位置(geolocation)に基づいて、ターゲットを選択できる方法が存在している。
しかしながら、インターネットの不安定性(vagary)によって、様々なソースからターゲットの利用可能性が変わる可能性がある。例えば、サーバがダウンすることによって、経路が混雑するまたは利用できなくなる可能性がある。したがって、リアルタイムで所定のユーザまたは市場の最良目標位置を決定するための方法が必要とされる。
概要
本発明の技術は、特に、インターネット上のルーティングを行うために、経路選択および目標選択の決定に関連する問題に対処する。この技術の実施形態は、複数の中継プロバイダを介して、顧客構内からインターネットプロトコル(IP)アドレスにトラフィックを誘導するための方法および装置を含む。システムは、顧客構内に配置された収集装置を含み、収集装置は、複数の中継プロバイダのうちの第1中継プロバイダを介して、IPアドレスまでの第1遅延と、複数の中継プロバイダのうちの第2中継プロバイダを介して、収集装置からIPアドレスまでの第2遅延を測定する。収集装置に接続されまたは収集装置によって実装された決定エンジンは、第1遅延および第2遅延の比較を実行し、比較に基づいて第1中継プロバイダまたは第2中継プロバイダを選択する。ルータ、スイッチまたは他の装置は、選択した中継プロバイダを介して、トラフィックを顧客構内からIPアドレスに誘導する。
場合によって、収集装置は、第1中継プロバイダを介してIPアドレスにエコー要求を送信し、第2中継プロバイダを介してエコー応答を受信することによって、第1遅延を測定する。また、収集装置は、第1中継プロバイダに接続されたボーダールータの第1インターフェイスを介してエコー要求をIPアドレスに送信し、ボーダールータの第2インターフェイスを介してエコー応答を受信することによって、第1遅延を測定することができる。収集装置は、第1中継プロバイダに接続された第1ボーダールータを介して第1遅延を測定し、第1ボーダールータおよび第2中継プロバイダに接続された第2ボーダールータとを介して第2遅延を測定することができる。この場合、ルータは、第1ボーダールータおよび第2ボーダールータを介して、トラフィックを第2中継プロバイダに誘導することができる。収集装置は、第1中継プロバイダおよび第2中継プロバイダに接続されたボーダールータの第1インターフェイスを介して第1遅延を測定し、ボーダールータの第2インターフェイスを介して第2遅延を測定することができる。この場合、ルータは、第1ボーダールータおよび第2ボーダールータを介して、トラフィックを第2中継プロバイダに誘導することができる。
決定エンジンは、第1中継プロバイダの受信遅延(inbound latency)と第2中継プロバイダの受信遅延とを比較することによって、第1遅延と第2遅延との比較を実行することができる。また、決定エンジンは、第1中継プロバイダの送信遅延(outbound latency)と第2中継プロバイダの送信遅延とを比較することもできる。
決定エンジンは、さらに第1中継プロバイダのコストおよび第2中継プロバイダのコストに基づいて、第1中継プロバイダまたは第2中継プロバイダを選択することができる。また、決定エンジンは、第1中継プロバイダのパケット損失および第2中継プロバイダのパケット損失に基づいて、第1中継プロバイダまたは第2中継プロバイダを選択することができる。
ルータ、スイッチまたは他のルーティング装置は、パケットのホストプレフィックスをボーダーゲートウェイプロトコル(BGP)集団属性に関連付け、BGP集団属性に基づいてパケットを選択された中継プロバイダに誘導することによって、トラフィックをIPアドレスに誘導することができる。また、ルータ、スイッチまたは他の装置は、IPアドレスにトラフィックを伝送するための次のホップを、第1中継プロバイダおよび第2中継プロバイダのうちの1つに接続されたボーダールータに設定することによって、トラフィックをIPアドレスに誘導することができる。
本発明の技術の他の実施形態は、第1プレフィックスを公表し、第1中継プロバイダに接続された第1ルータと、第2プレフィクスを通知し、第2中継プロバイダに接続された第2ルータとを含む顧客構内とターゲットIPアドレスとの間の遅延を測定するための方法およびシステムを含む。顧客構内に配置された収集サーバは、第2ルータおよび第2中継プロバイダを介して、第1プレフィックスを有する第1IPアドレスからターゲットIPアドレスに第1エコー要求を送信する。第1エコー要求は、第1IPアドレスから第1エコー要求を送信した時間を示す第1タイムスタンプを含む。収集サーバは、第1中継プロバイダおよび第1中継プロバイダを介して、ターゲットIPアドレスから第1エコー応答を受信する。第1エコー応答は、ターゲットIPアドレスから第1エコー応答を送信した時間を示す第1応答タイムスタンプを含む。収集サーバに接続されまたは収集サーバによって実装された決定エンジンは、第1タイムスタンプおよび第1応答タイムスタンプに基づいて、第1往復遅延を決定する。
場合によって、収集サーバは、第1ルータおよび第1中継プロバイダを介して、顧客構内の第2IPアドレスからターゲットIPアドレスに第2エコー要求を送信する。第2エコー要求は、第2IPアドレスから第2エコー要求を送信した時間を示す第2タイムスタンプを含む。第2IPアドレスは、第2プレフィックスを有する。収集サーバは、第2中継プロバイダおよび第2中継プロバイダを介して、ターゲットIPアドレスから第2エコー応答を受信する。第2エコー応答は、ターゲットIPアドレスから第2エコー応答を送信した時間を示す第2応答タイムスタンプを含む。
これらの場合、決定エンジンは、第2タイムスタンプおよび第2応答タイムスタンプに基づいて、第2往復遅延を決定する。また、決定エンジンは、第1遅延と第2遅延との比較を実行し、第1遅延と第2遅延との比較に基づいて、第1中継プロバイダまたは第2中継プロバイダを選択することもできる。決定エンジンに接続されたルータ、スイッチまたは他のルーティング装置は、選択された中継プロバイダを介して、顧客構内からのトラフィックをIPアドレスに誘導する。
本発明の技術の更なる他の実施形態は、ドメインネームシステム(DNS)要求に応答するためのシステムおよび方法を含む。例示的な方法は、コンテンツ配信ネットワーク(CDN)またはクラウドプロバイダからコンテンツを提供することができる複数のコンテンツ発信元の各々に格納されたコンテンツを有するドメインを解析するために、再帰リゾルバからDNS要求を受信することを含む。DNS要求に応答して、権威DNSサーバまたは他のプロセッサは、IPアドレスの階層から1組のIPアドレスを選択する。この1組のIPアドレスは、再帰リゾルバのIPアドレスと、少なくとも所定数のサンプルとを含む。権威DNSサーバは、(i)1組のIPアドレスおよび(ii)1組のIPアドレスに関連付けられた複数のコンテンツ発信元のコンテンツ発信元ランキングに基づいて、複数のコンテンツ発信元から1つのコンテンツ発信元を選択する。権威DNSサーバは、選択されたコンテンツ発信元のIPアドレスを再帰リゾルバに送信する。
本発明の技術のさらに別の実施形態は、リアルタイムでクライアントによるダウンロードを監視するための方法を含む。一例において、ソフトウェア(実行可能なコード)は、クライアントによって実行されると、クライアントに、コンテンツ配信ネットワーク(CDN)のドメインネームシステム(DNS)要求を解析するために使用された複数の再帰リゾルバのうち、1つの再帰リゾルバのインターネットプロトコル(IP)アドレスを特定させる。クライアントは、DNS要求を解析するための解析時間を測定し、DNS要求に応答して、再帰リゾルバによって返されたCDNのURL(uniform resource locator)を特定し、コンテンツ発信元からコンテンツをクライアントにダウンロードするためのダウンロード時間を測定する。クライアントは、クライアントからコンテンツを要請するための要求に応答して、ソフトウェアをダウンロードして実行することができる。
クライアントは、再帰リゾルバのIPアドレスを特定し、DNS解析時間を測定し、URLを特定し、複数のCDNの各々からのダウンロードを行うダウンロード時間を測定することができる。クライアントまたは別のプロセッサ(例えば、権威DNSサーバ)は、複数のCDNの解析時間およびダウンロード時間の比較を実行することができる。例えば、各再帰リゾルバの解析時間およびダウンロード時間に基づいて、各再帰リゾルバのCDNをランキングすることができる。再帰リゾルバは、この比較を用いて、次のDNS要求に応答することができる。
前述した発想および以下でより詳細に説明する追加の発想(これらの発想が相互に矛盾しない前提で)の全ての組み合わせは、本明細書に開示された発明の主題の一部であると理解すべきである。特に、本開示の最後の特許請求の範囲の全ての組み合わせは、本明細書に開示された発明の主題の一部であると考えられる。また、本明細書に明示的に使用された用語および参照により他の開示に援用された用語は、本明細書に開示された特定の概念と最も一致する意味で解釈されるべきであることを理解すべきである。
当業者であれば、図面は、主に説明の目的のものであり、本明細書に記載された発明の主題の範囲を限定するものではないことを理解するであろう。図面は、必ずしも一定の縮尺描かれていない。いくつかの例において、本明細書に開示された発明の主題の様々な態様は、異なる特徴を容易に理解させるために、図面においてこれらの特徴を拡大または縮小することがある。図面において、同様の参照符号は、一般的に、同様の特徴(例えば、機能的におよび/または構造的に類似する要素)を指す。
異なる中継プロバイダによって提供された顧客構内とターゲットインターネットプロトコル(IP)アドレスとの間の送受信経路の遅延を監視および測定するシステムを示す図である。 図1Aに示す異なる送受信経路(inbound and outbound path)の遅延の比較を示すマトリックスである。 遅延測定値に基づいて中継プロバイダを選択することによって、トラフィックをエンドポイントに誘導するためのプロセスを示す図である。 異なる中継プロバイダを介して一対のIPアドレス間の往復遅延を測定するためのプロセスを示す図である。 一対のIPアドレス間の往復遅延に基づいて、送受信中継プロバイダを選択するためのプロセスを示す図である。 収集装置といくつかのターゲットIPアドレスとの間の遅延を監視するために、ルートマップをボーダールータインターフェイスに適用したネットワークを示す図である。 静的ルートを介して、手動でネットワークのトラフィックを収集装置といくつかのターゲットIPアドレスとの間に誘導することを示す図である。 中継プロバイダの遅延測定値に基づいて、BGP集団属性を異なる中継プロバイダに動的に関連付けることによって、トラフィックを誘導することを示す図である。 ルートマップを作成し、遅延およびパケットロスの監視を行うためのボーダールータインターフェイスに適用するためのプロセスを示す流れ図である。 遅延測定値に基づいてトラフィックを誘導するためのポリシーベースの静的ルーティングを示す流れ図である。 遅延測定値に基づいてトラフィックを誘導するために、自動オーバーライドを示す流れ図である。 リアルタイムユーザ監視(RUM:Real-time User Monitoring)データを収集し、RUMデータおよびタイプ別ラベル付きIPセット(TYLIPS:TYped Labeled IP Set)データに基づいてトラフィックを誘導するためのシステムを示す図である。 RUMデータを収集および集計するためのプロセスを示す図である。 RUMデータを収集および集計するためのプロセスを示す図である。 図10および図11に示されたプロセスに従ってRUMデータを集計することによって形成されたヒストグラムを示す図である。 図12に示すようなヒストグラムを生成するためのプロセスを示す図である。 DNS要求を解析するようにTYLIPSデータを選択するための異なる階層を示すベン図である。 DNS要求を解析するようにTYLIPSデータを選択するための異なる階層を示すベン図である。 RUMデータに基づいたクライアントIPアドレスの例示的なランキングを示す図である。 RUMデータに基づいて、トラフィックを誘導するためのプロセスを示す図である。
詳細な説明
遅延、パケット損失およびコストに基づき、固定エンドポイント間のスマートルーティング
パケットは、ボーダーゲートウェイプロトコル(BGP)に従ってインターネット上にルーティングされる。BGPは、規則およびテーブルを用いて、所定の宛先までのパケットルート上の「次のホップ」を決定する。残念ながら、普通のBGPは、パケットをルーティングする際の遅延、パケット損失またはコストを考慮していない。これによって、インプレッションごとに競売されるインターネット広告枠のリアルタイム入札など、短い遅延が必要なアプリケーションに対して最適ではないルーティングを引き起こしてしまう。リアルタイム入札の場合、広告購買人は、出版社のサイトを訪問することによって得られたインプレッションに入札する。購買人がオークションに勝利した場合、購買人の広告は、出版社のサイトに即座に表示される。オークションは、ユーザが出版社のサイトを訪問したことに応じてリアルタイムで行われるため、非常に短い。そのため、迅速に入札する必要がある。オークションが終了するまでに、(例えば、入札した購買人から競売人までの送信遅延によって)購買人の入札が競売人に届かない場合、購買人は、このオークションを失ってしまう。
幸いにも、本明細書に開示されたスマートルーティングシステムおよび方法は、2つのエンドポイント(例えば、購買人のIPアドレスおよび競売人のIPアドレス)間の遅延を測定し、2つのエンドポイント間の最短遅延ルートを選択することができる。多くの場合、これらのルートは、様々な中継プロバイダによって提供され、決定エンジンまたはスマートルートは、最短遅延を有する使用可能なルートを提供する中継プロバイダを介して、パケットを宛先IPアドレスに送信する。場合によって、決定エンジンは、遅延と、他の要因、例えば、各中継プロバイダのコストおよびパケット損失とのユーザ構成可能な重み付き組み合わせに基づいて、中継プロバイダを選択することができる。この中継プロバイダのインテリジェント選択は、BGPポリシーを効果的にオーバーライドする。中継プロバイダの相対遅延、パケット損失およびコストが変化する場合、決定エンジンは、それに応じて、所定の時間で「最良」の経路を選択することによって、トラフィックを再ルーティングする。
他の方法は、送信経路を最適化する。これらの送信経路は、通常、送信ターゲットに対して、ルータ特有経路または汎用経路である。本明細書に開示された方法は、ルータに依存せず、特定のターゲットまたはエンドポイントに合わせて調整されたソフトウェア層として実装することができる。従来の方法とは異なり、本発明のプロセスは、受信フローの変化および最後から2番目の受信工程の最適化を説明することもできる。
スマートルーティングシステム
図1Aは、顧客(例えば、リアルタイム入札プロセスの購買人)構内101に位置する仮想マシンまたはサーバ110と、1つ以上のターゲットIPアドレス140(例えば、競売人または出版社のサイト)との間の遅延およびパケット損失を監視および測定するためのシステム100を示す概略図である。システムは、受信経路160a〜160d(まとめて流入(inflow)または受信経路160という)および送信経路170a〜170d(まとめて流出(outflow)または送信経路170という)に沿ってこれらのパラメータを監視し、それに応じてトラフィックを異なる経路にルーティングする。この例において、サーバ110は、ルータ120に接続され、ルータ120は、中継プロバイダ130aおよび130b(まとめて中継プロバイダ130という)を介して、トラフィックをターゲットIPアドレス140にルーティングする。また、システム100は、仮想マシン/サーバ110に接続されまたは仮想マシン/サーバ110によって実装された決定エンジン103を含む。決定エンジン103は、仮想マシン110によって測定された中継プロバイダ130の遅延およびパケット損失に基づいて、顧客構内101とターゲットIPアドレス140との間のトラフィックを伝送するための中継プロバイダ130を選択する。
顧客構内101は、いくつかの発信元IPアドレス150a〜150d(まとめて発信元IPアドレス150)が割り当てられた1つ以上の仮想マシンまたはサーバ110を含む。これらの発信元IPアドレス150の各々を用いて、中継プロバイダ130によって提供された特有の受信/送信経路対の遅延およびパケット損失を測定する。各中継プロバイダ130が受信経路160および送信経路170の両方を提供するため、顧客構内101をターゲットIPアドレス140に接続するための中継プロバイダ130がN個である場合、仮想マシン110には、N個の異なる発信元IPアドレス150が割り当てられる。換言すれば、選択された発信元IPアドレス150は、中継プロバイダ130を介して顧客構内101とターゲットIPアドレス140との間の特有の往復経路の総数を表す。
顧客構内101は、十分に大きい場合、1つ以上の特有のホストプレフィックスを公表することができる。IPv4システムにおいて、各特有のルーティングプレフィックスは、「/24」プレフィックス、すなわち、ネットワークプレフィックスに割り当てられた24ビットと、ホストアドレスの指定に保留された8ビットとを有するルーティングプレフィックスである。「/24」プレフィックスは、BGPがルーティングを行う最小プレフィックスである。図1Aに示すように、特有の「/24」プレフィックスに対応する発信元IPアドレス150からのパケットは、各々の中継プロバイダ130を介してルーティングされる。各中継プロバイダ130に対応する特有の「/24」プレフィックスは、BGPがルーティングを行う最小プレフィックスを特定することによって決定される。この例において、発信元IPアドレス150aおよび150b(1.1.1.1および1.1.1.2)は、中継プロバイダ130a(1.1.1.0/24)によって公表された「/24」プレフィックスに対応し、発信元IPアドレス150cおよび150d(2.2.2.1および2.2.2.2)は、中継プロバイダ130b(2.2.2.0/24)によって公表された/24プレフィックスに対応している。
ルータ120は、自身の内部メモリに格納されているBGPテーブルに従って、中継プロバイダ130を介して、トラフィックをターゲットIPアドレス140にルーティングする。上述したように、各中継プロバイダ130の経時変動遅延およびパケット損失を調べるために、これらのBGPテーブルを用いて、発信元IPアドレス150を仮想マシン110に割り当てることができる。以下で説明するように、これらのBGPテーブルは、ターゲットIP140の遅延、パケット損失およびコストの重み付き組み合わせに応じて、トラフィックを強制して所定の中継プロバイダ130を通過するように、決定エンジン130によってオーバーライドされまたは変更されてもよい。
受信経路160および送信経路170は、中継プロバイダ130を介して、発信元IPアドレス150およびターゲットIPアドレス140を接続する。受信経路160上のパケットは、パケットを発信する発信元IPアドレス150に応じて、中継プロバイダ130を介してルーティングされる。この例において、受信経路160aおよび160b上のパケットは、中継プロバイダ130aを介してルーティングされ、受信経路160cおよび160d上のパケットは、中継プロバイダ130bを介してルーティングされる。発信元IPアドレス150aとターゲットIPアドレス140とを接続するための送信経路170a上のパケットは、中継経路130aを介してルーティングされる。発信元IPアドレス150bとターゲットIP140とを接続するための送信経路170b上のパケットは、中継プロバイダ130bを介してルーティングされる。同様に、IPアドレス150cおよび150dをターゲットIPアドレス140に各々接続するための送信経路170cおよび170dは、各々中継プロバイダ130aおよび130bを介して伝送される。
以下でより詳細に説明するように、決定エンジン103は、中継プロバイダ130の遅延、パケット損失および/またはコストを比較し、これらの比較に基づいてスマートルーティングを実施する。決定エンジン103は、BGPポリシーを変更またはオーバーライドすることによって、トラフィックを強制して、ターゲットIPアドレス140までの最も速い且つ最も費用効果の高いルートを提供する中継プロバイダ130に通過させる。決定エンジン103は、ルータに依存せず、ターゲットIPアドレス140に合わせて調整されたソフトウェア層として実装することができる。いくつかの実施形態において、決定エンジン103は、サーバ110に含まれてもよい。他の実施形態において、決定エンジン103は、ルータ120に含まれてもよく、別のプロセッサ上に実装されてもよい。
図1Bは、図1Aに示された中継プロバイダ130を介してパケットの送受信に関連する遅延を表すマトリクス105を示す。マトリクス105は、中継プロバイダ130を介してターゲットIP140までの受信遅延115および送信遅延125を列挙している。これらの遅延115および125を合計して比較することによって、顧客構内101とターゲットIPアドレス140との間の最小遅延を有する往復経路を特定することができる。
この例において、マトリクス105は、中継プロバイダ130aおよび130bを介して、ターゲットIP140までの送信経路170およびターゲットIP140からの受信経路160の全ての組み合わせに対応する往復遅延測定値を含む。中継プロバイダ130が2つであるため、マトリクス内の経路の総数は、2=4である。この例において、マトリクス105は、各発信元IPアドレス150の送受信遅延を示している。上記で説明され且つ図1Aに示されたように、これらの遅延は、異なる送受信経路に一意にマッピングされる。マトリクス105内の往復遅延を比較した結果、中継プロバイダ130bを介して顧客構内101とターゲットIPアドレス140との間のパケット伝送は、最短遅延(12ms)を有する。この遅延測定値に基づいて、中継プロバイダ130bの最後の受信ホップは、BGPによって設定され、中継プロバイダ130bの最初の送信ホップは、ポリシーベースルーティングによって制御される。
図1Bのマトリックス105は、遅延測定値のみを示しているが、当業者であれば、遅延測定値に加えてまたは遅延測定値の代わりに、他の測定値を含み得ることを容易に理解するであろう。例えば、マトリクスは、パケット損失、コスト、または遅延とパケット損失とコストの重み付き組み合わせを含むことができる。同様に、任意数の中継プロバイダおよびターゲットIPアドレスに応じて、マトリックス105を拡張することができる。
エンドポイント間の遅延測定および誘導
図2は、遅延測定値に基づいて、選択された中継プロバイダを介してトラフィックをルーティングするためのプロセス200を示す流れ図である。プロセス200は、図1Aに示すシステム100または図5A〜5Cに示すシステムを含む任意の他の適切なシステムまたはネットワークを用いて実施することができる。プロセス200は、異なる中継プロバイダを介して単一のターゲットIPアドレスの遅延を測定することを含む。例えば、中継プロバイダが2つである(中継プロバイダ1および中継プロバイダ2)場合、ステップ210において、各中継プロバイダを介してターゲットIPまでの遅延を測定する。ステップ220において、測定された遅延を比較することによって、ターゲットIPアドレスまでの最短遅延を有する中継プロバイダを選択する。場合によって、初期コストおよびパケット損失などの外部メトリックを比較因子として加える(230)。遅延の比較(220)に従って、ステップ240において、ターゲットIPアドレスに対して適切な中継プロバイダを選択する。選択された中継プロバイダを介して、トラフィックを誘導する(250)。最初の送信ホップは、ルートマップを使用するポリシーベースのルーティングまたは中継プロバイダに関連するBGP属性を使用する誘導によって制御される。
図2は、2つの中継プロバイダおよび1つのターゲットIPアドレスのみを示しているが、当業者であれば、このプロセスを3つ以上の中継プロバイダおよび2つ以上のIPアドレスに適用できることを容易に理解するであろう。例えば、各IPアドレスに対して異なる数の中継プロバイダ(例えば、第1IPアドレスには2つの中継プロバイダ、第2IPアドレスには5つの中継プロバイダ)が存在する場合、このプロセスを複数のIPアドレスの各々に並列に適用することができる。単一の中継プロバイダは、複数のIPアドレスにサービスを提供することができるが、全てのIPアドレスにサービスを提供する必要がない。
エンドポイント(ターゲット/宛先IPアドレス)をPINGすることによる遅延の測定
図3は、例えば、図1Aに示す仮想マシン110を用いて、送受信遅延データを収集するためのプロセス300を示す流れ図である。顧客構内310の仮想マシンまたはベアメタルには、収集装置(収集サーバ)が設置される。この収集装置は、顧客によって提供されたターゲットIPアドレス組内の各ターゲットIPアドレスにPINGすることによって、遅延データを収集する。上述したように、異なる往路および復路を調べるために、これらのPINGは、異なる発信元IPアドレスから発信されてもよい。
PINGは、以下のように行われる。ステップ320において、収集装置は、監視されている各中継プロバイダを介して、各ターゲットIPアドレスにインターネット制御メッセージプロトコル(ICMP:Internet Control Message Protocol)エコー要求パケットを送信する。例えば、ネットワークが2つの中継プロバイダTP1およびTP2を有する場合、収集装置は、TP1を介して、第1発信元IPアドレスから第1ターゲットIPアドレスに反復エコー要求パケットを送信し、TP2を介して、第2発信元IPアドレスから第2ターゲットIPアドレスに反復エコー要求パケットを送信する。ステップ330において、ターゲットIPアドレスは、エコー要求パケットに応答して、エコー応答パケットを送信する。各エコー応答パケットは、対応するエコー要求パケットの見かけ発信元IPアドレスにルーティングされる。上述したように、ボーダールータインターフェイスに適用されたルートマップが、異なるプレフィックスを公表する中継プロバイダを介して、対応するエコー要求をターゲットIPアドレスに強制的にルーティングした場合、見かけ発信元IPアドレスは、実際の発信元IPアドレスと異なる可能性がある。
ステップ340において、収集装置は、エコー応答パケット内のタイムスタンプ(例えば、エコー要求時間およびエコー応答時間)に基づいて、往復経路の測定値に関連する遅延を決定する。当技術分野でよく理解されているように、各エコー要求メッセージは、送信時間を示すタイムスタンプおよびシーケンス番号を含むことができる。同様に、各エコー応答メッセージは、送信時間およびシーケンス番号を含むことができる。また、各エコー応答は、対応するエコー要求メッセージのタイムスタンプおよびシーケンス番号を含む。エコー応答内のタイムスタンプによって示されたエコー要求の送信時間とエコー応答の送信時間との間の差は、遅延を表す。この遅延は、データベースまたは他のメモリ記憶装置に記録または記憶されてもよい。
また、収集装置は、各中継プロバイダのエコー要求対エコー応答の比またはエコー応答のタイムラインに基づいて、パケット損失を評価することができる。例えば、収集装置は、第1中継プロバイダを介して10個のエコー要求を送信し、8個のエコー応答しか受信できない場合、第1中継プロバイダのパケット損失率が20%であると判断することができる。異なる中継プロバイダを介した往復遅延測定値を用いて送受信経路の遅延を評価することと同様に、パケット損失を複数の中継プロバイダに相関させることによって、送受信経路のパケット損失を評価することができる。
メトリック比較に基づいた最適経路の決定
図4は、図1Aに示す決定エンジン103によって実施され、顧客構内とターゲットIPアドレスとを接続するための異なる中継プロバイダの様々なメトリックを比較するためのプロセス400を示す流れ図である。ステップ410において、決定エンジンは、例えば、ユーザ入力に応答して、ターゲットIPアドレスを選択する。ステップ420aおよび420bにおいて、決定エンジンは、顧客構内と、ステップ410で選択されたターゲットIPアドレスとを接続するための中継プロバイダを特定する。ステップ430a〜430dにおいて、決定エンジンは、ステップ420で特定された中継プロバイダを介して選択されたターゲットIPの送受信メトリック(inbound and outbound metrics)を決定する。送受信メトリックは、遅延、コストおよびパケット損失を含むがこれらに限定されない。図3を参照して上述したように、遅延およびパケット損失は、ターゲットIPアドレスをPINGすることによって決定されてもよい。また、コスト情報は、顧客によって提供されてもよい。
ステップ440において、決定エンジンは、全ての送受信経路の組み合わせを表すマトリクス(例えば、図1Bに示すマトリクス)または他の表現を用意する。例えば、中継プロバイダの数がNである場合、組み合わせによって得られる経路の総数がNである。Nが非常に大きい場合、決定エンジンは、遅延、パケット損失、および/またはそれらの組み合わせをサンプリングすることによって、測定値の数および/または組み合わせの測定値の数を減らし、より高速な計算を行うことができる。ステップ450において、決定エンジンは、外部メトリック、例えば、各中継プロバイダを介してパケットのルーティングに関連するコストを因子として加える。外部メトリックを因子として加えると、ステップ460において、送受信メトリックは、各送受信中継プロバイダの組み合わせの優先度スコアを表すマトリクスまたは他の表現(遅延、コストおよび/またはパケット損失の重み付き組み合わせ)に統合される。ステップ470において、決定エンジンは、マトリクス内の優先度スコアの比較に基づいて、最適経路を特定する。
複数のボーダールータを経由したトラフィックの監視および誘導
図5A〜5Cは、顧客構内の仮想マシン510と1つ以上のターゲット/宛先IPアドレス540aおよび540b(まとめてターゲットIPアドレス540という)との間の遅延およびパケット損失を測定するためのネットワーク500を示す。仮想マシン510は、監視および誘導を行うための1組のターゲットIPアドレスを格納する収集装置512を含み、集計ルータ590aおよび590b(まとめて集計ルータ590という)に接続される。ルーティングインターフェイスの別の層は、集計ルータ590に接続されたボーダールータ520aおよび520b(まとめてボーダールータ520という)を用いて追加される。ボーダールータ520は、トラフィックを他のボーダールータ520および中継プロバイダ530a〜530n(まとめて中継プロバイダ530という)にルーティングする。
動作中、収集装置512は、上記および下記でより詳細に説明するように、発信元または発信源IPアドレスIP1〜IPNと、列挙されたターゲットIPアドレス540との間の伝送遅延およびパケット損失を監視する。また、収集装置512は、遅延およびパケット損失データを収集するためのソースポイントとして、顧客により提供された公開IPアドレスを使用する。1組のターゲットIPアドレス540は、顧客から別個のIPアドレスを求めることによって形成することができる。顧客側の仮想マシン510に顧客側の収集装置512を設けることによって、顧客側のエンドポイントまたはターゲットIPアドレスからの接続を定期的に行うことができる。
仮想マシン510は、集計ルータ590a(SW1)および590b(SW2)を介してトラフィックをルーティングする。集計ルータ590a(SW1)および590b(SW2)は、ルート集計方法を用いて、特定のルートを生成する。この方法は、単一の汎用ルートを用いて複数のルートを置換することによって、ネットワーク500を構築する。これによって、ルータの数が削減され、ルーティングプロトコルに関連するオーバーヘッド(overhead)が最小限に抑えられる。入口(igress)フィルタリングおよび出口(egress)フィルタリングを実行するために、ボーダールータ520a(BR1)および520b(BR2)は、集計ルータ590に接続され、配置される。ボーダールータ520は、中枢ネットワークと1つ以上のOSPF(Open Shortest Path First、開放型最短経路優先)領域との間の接続を形成する。
集計ルータ590は、顧客構内の仮想マシン510および収集装置512によって行われた遅延およびパケット損失の測定に基づいて、適切な中継プロバイダ530を介してターゲットIPアドレス540との間でトラフィックをルーティングする。上記および以下に説明するように、特定のターゲットIPアドレス540に対して適切な中継プロバイダ530は、中継プロバイダ130の監視メトリック、例えば、遅延、コストおよびパケット損失を解析および比較することによって選択される。ルーティングは、ルートマップを用いて、または以下に説明するように、メトリックの解析に基づいてBGP属性を中継プロバイダに関連付けることによって、実行される。
遅延およびパケット損失の監視
図5Aにおいて、収集装置512は、中継プロバイダ530を介して、異なるターゲットIPアドレスまでの遅延およびパケット損失を監視する。このことは、ポリシーベースルーティングを用いて、収集装置512上に構成された各IPアドレスをマッチングし、各IPアドレスのパケットを関連する中継プロバイダ530にルーティングすることによって行われる。ルートマップは、ボーダールータ520の入口インターフェイス522aおよび522b(図5Aでは、入口インターフェイス522aおよび522bは、gig 1/1、gig 1/2およびgig 1/3として標記される)の各々に適用される。これらのルートマップは、アクセスリストを用いて収集サーバ512からのIPアドレスをマッチングし、パケットを転送するための次のホップを適切な中継プロバイダ530または隣接のボーダールータ520に設定する。集計ルータ590に面する各ボーダールータインターフェイスに適用されたルートマップは、全てのIPアドレスをカバーし、送信エコー要求パケットを対応するボーダールータに接続された中継プロバイダ530または隣接のボーダールータに接続された中継プロバイダ530に強制的にルーティングする。エコー要求パケットを異なる中継プロバイダ530に強制的にルーティングすることによって、収集装置512は、収集装置とターゲットIPアドレス540との間に利用可能な送信経路および受信経路の各組み合わせの遅延を測定することができる。
図6および以下の擬似コードは、第1IPアドレス(例えば、顧客構内)と第2IPアドレス(例えば、ターゲットIPアドレス)との間の遅延およびパケット損失を監視するために、ルートマップを構成および適用するためのプロセス600の一例を示す。ステップ610において、顧客は、収集装置512上の各ターゲットIPアドレスに対するアクセス権を設定する。
ステップ620において、顧客は、集計スイッチ590からのパケット内の各宛先IPアドレスを探すために、ルートマップ(COLLECTOR_SW)を作成する。
ステップ630において、顧客は、ボーダールータ530の相互接続を行うために、ルートマップ(COLLECTOR_BR1およびCOLLECTOR_BR2)を作成する。
ステップ640において、顧客は、集計スイッチ590に面する各インターフェイス522(gig 1/1およびgig 1/2)にCOLLECTOR_SWルートマップを適用し、COLLECTOR_BR1およびCOLLECTOR_BR2ルートマップを用いて、ボーダールータ520に面するインターフェイス522(gig 1/3)を相互接続する。
図1Aを参照して上述したように、各中継プロバイダ530が異なる/24を公表した場合、収集サーバ512は、N個の流入経路を用いて、N個の流出経路を検査することができる。上述したように、中継プロバイダ530aによって公表されたプレフィックスに属する発信元IPアドレスから発信されたパケット(例えば、遅延を測定するためのエコー要求パケット)は、各中継プロバイダ530を介して宛先IPアドレスにルーティングされる。しかしながら、宛先IPアドレスからの返信パケット(例えば、エコー要求に応答したエコー応答パケット)は、中継プロバイダ530aを介して発信元アドレスに返される。所定の発信元IPアドレスと宛先IPアドレスとの間の各流入/流出経路の組み合わせを測定することによって、(例えば、図1Bに示すように)流入および流出経路の遅延性能のマトリックスを生成することができる。遅延測定値を比較することによって、所定の時間で、所定の宛先IPアドレスまでの流入および流出経路の「最良」(例えば、最短遅延)組み合わせを選択することができる。
エンドポイントまでの経路を決定するための最適な中継決定エンジン
仮想マシン510、収集サーバ512または別個のプロセッサは、決定エンジン(図示せず)を実装することができる。この決定エンジンは、以下の擬似コードを実行することによって、トラフィックを所定のターゲットIPアドレスにルーティングするための好ましい経路を決定することができる。
切換えを推薦するか否かを決定する際に、決定エンジンは、ターゲットIPアドレスに対してどの中継プロバイダ530が最も高い優先度スコアを有するかをチェックし、そのスコアをターゲットIPアドレスの現在の中継プロバイダ530の優先度スコアに比較する。決定エンジンは、ルーティング状態(例えば、最後の推薦)レコードを維持することによってまたは顧客のシステムにルーティング構成を照会することによって、現在のプロバイダを「知る」。中継プロバイダ530間の望ましくない変動を防ぐために、決定エンジンは、中継プロバイダ530の切換えを推薦する頻度に制限を課すことができる。同様に、収集装置512は、(例えば、多すぎるエコー要求およびエコー応答によって渋滞を引き起こすことによって)ルーティング性能に悪影響を与えないように、遅延およびパケットの測定頻度を調整することができる。
静的ルート(トラフィックの手動誘導)
図5Bは、ネットワーク500が、決定エンジンの推薦に従って設定された静的ルートを介して、手動でトラフィックを誘導することを示している。顧客が設定した遅延、コスト、およびパケット損失の重み付き組み合わせである優先度スコアに基づいて、各エンドポイントに対して適切な中継プロバイダ530を決定する。顧客サーバ510は、各エンドポイントの静的ルートを適用することによって、BGPポリシーをオーバーライドする。例えば、中継プロバイダ530cがトラフィックをエンドポイントAに誘導するために最も低い優先度スコアを有する経路を提供する場合、BGPポリシーをオーバーライドして、中継プロバイダ530cを介してトラフィックをエンドポイントAに誘導する。同様に、中継プロバイダ530aがトラフィックをエンドポイントBに誘導するために最も低い優先度スコアを有する経路を提供する場合、BGPポリシーをオーバーライドして、中継プロバイダ530aを介してトラフィックをエンドポイントBに誘導する。
図7および以下の擬似コードは、(手動で)トラフィックを2つのターゲットエンドポイントに誘導するためのプロセス700を示す。ステップ710において、決定エンジンは、収集装置512によって監視されている各エンドポイント(ターゲットIPアドレス540)までの静的ルートを生成する。ステップ720において、決定エンジンは、エンドポイントAおよびBの静的ルートを各ボーダールータ520に適用する。
適切な中継プロバイダ530またはボーダールータ520を指向する各エンドポイントに対して、このプロセス700(ステップ730および740)を繰り返してもよい。なお、静的ルートは、任意の順序でまたは同時に、エンドポイント540のボーダールータ520に適用されてもよい。
適用されると、静的ルートは、以下のように動作する。エンドポイントA宛てのパケットがボーダールータ520aに現れた場合、ボーダールータ520aは、中継プロバイダ530aを介してパケットをルーティングする。同様に、エンドポイントB宛てのパケットがボーダールータ520bに現れた場合、ボーダールータ520bは、中継プロバイダ530cを介してパケットをエンドポイントBにルーティングする。しかしながら、エンドポイントB宛てのパケットがボーダールータ520aに現れた場合、ボーダールータ520aは、パケットをボーダールータ520bにルーティングし、その後、ボーダールータ520bは、中継プロバイダ530cを介してパケットをエンドポイントBにルーティングする。同様に、エンドポイントA宛てのパケットがボーダールータ520bに現れた場合、ボーダールータ520bは、パケットをボーダールータ520aにルーティングし、その後、ボーダールータ520aは、中継プロバイダ530aを介してパケットをエンドポイントAにルーティングする。
BGP属性を中継プロバイダに関連付けることによるトラフィックの誘導
上述したように、静的ルートは、拡張性を有しなく、構成および障害管理の面で扱いにくい場合がある。幸いにも、顧客側の収集サーバ512にBGPデーモンを使用することによって、動的誘導を達成することができる。図5Cに示すように、このBGPデーモンによって、収集サーバ512は、直接にまたは1つ以上のルートリフレクタ585aおよび585b(まとめてルートリフレクタ585という)を介して、顧客ルータ530とピアになることができる。
図8および以下の擬似コードは、特定の中継プロバイダを介して所定のIPアドレスのトラフィックを誘導するように、BGP集団属性を用いてルータを動的に設定するためのプロセス800を示す。各中継プロバイダ530は、異なるBGP集団属性に関連付けられている。BGP「集団」を変更することによって、各ホストプレフィックスを所定の中継プロバイダ530に関連付けることができる。この関連付けを形成した後、ボーダールータ520は、例えば、以下の擬似コードに従って、関連する中継プロバイダ530を介して、所定のBGP「集団」属性を用いてトラフィックを誘導する。
各中継プロバイダ530に割り当てられた一意のBGP集団属性と一致するポリシーを用いて、ボーダールータ520を設定すること(ステップ810)によって、プロセス800を実施することができる。所定のBGP集団と一致する場合、各ボーダールータ520は、関連する中継プロバイダ530に向けるように対応する次のホップを変更する(ステップ820)。別の中継プロバイダ530が同一のエンドポイントに対してより短い遅延を有する場合、BGPデーモンは、そのエンドポイントのBGP集団属性の値を変更することによって、ボーダールータ520と中継プロバイダ530との間の関連付けを変更する。例えば、BGPデーモンは、BGPセッションに次のルートマップを適用することができる。
DNSクエリを解析するためのリアルタイムユーザ監視
別の方法は、遅延およびコストを含む様々な性能メトリクスに基づいてドメインネームシステム(DNS)クエリを解析することによって、インターネットデータトラフィックを最適に誘導する。このことは、特定の再帰リゾルバを用いて、リアルタイムユーザ監視(RUM)データを収集および分析し、異なるコンテンツの発信元からコンテンツをクライアントに提供する性能および特定の権威サーバにクエリする性能を予測することによって実現される。予測された性能を用いて、DNSクエリを所定のコンテンツ発信元に送信するようにクライアントを誘導することができる。当該コンテンツ発信元は、コンテンツ配信ネットワーク(CDN)またはクラウドプロバイダからコンテンツを提供することができ、および/または帰納的リゾルバを所定の権威サーバに誘導することができる。トラフィックは、クライアントのIPアドレスに対して予測されたコンテンツ発信元の性能に基づいて誘導される。より具体的には、1つ以上のサーバは、異なるRUMデータを収集することによって、各IPのRUMデータを処理し、1組のIPアドレスのRUMデータを集計し、集計されたデータに高速アクセスするためのデータベースを作成する。このデータベースを用いて、最適な方法でトラフィックを誘導する。
当業者なら理解するように、DNSは、コンピュータ、サービス、またはインターネットまたはプライベートネットワークに接続された任意のリソースの階層型分散ネーミングシステムである。DNSは、関与する各々のエンティティに割り当てられたドメイン名に、様々な情報を関連付ける。また、DNSは、容易に覚えられるドメイン名を数値のインターネットプロトコル(IP)アドレスに変換し、IPアドレスを用いて、基礎ネットワークプロトコルを有するコンピュータサービスおよび装置を特定する。
権威ネームサーバまたは権威としても知られている権威DNSサーバは、ドメイン名を数値IPアドレスにマッピングするクエリ、およびメール交換(MX)レコードなどの他のリソースレコード(RR)を要請する要求に応答する。これらのクエリに応答するために、各権威は、DNSレコードを格納する独自のDNSデータベースを有する。DNSデータベースに格納された共通種類のレコードは、対応するドメインのIPアドレス(AおよびAAAA)、簡易メール転送プロトコル(SMTP:Simple Mail Transfer Protocol)MXレコード、およびネームサーバ(NS)レコードを含む。DNSデータベースは、DNSレコードの認証に使用できるドメイン名エイリアス(CNAME)およびDNSセキュリティ拡張(DNSSEC)レコードを含む他の種類のデータのレコードを格納することができる。
新たなドメインをインターネットに追加するために、基本的なDNS標準によって、ドメイン所有者または登録者は、レジストラからドメイン名を購入し、新たなドメインのクエリに応答する権威DNSサーバの名前を指定する必要がある。登録者は、権威DNSプロバイダ(例えば、ニューハンプシャー州マンチェスタ市に位置するダイナミックネットワークサービス社)から権威DNSサービスを取得し、権威DNSプロバイダを用いてドメイン名(より正確にはゾーン)のレコードを設定する。エンドユーザのコンピュータが新たなドメイン名にアクセスしようとする場合、エンドユーザは、新たなドメインのDNSレコード、より一般的にAまたはAAAA(IPv4またはIPv6アドレス)を取得するように、再帰サーバまたは再帰リゾルバとも呼ばれる再帰DNSサーバに要請する。これらのDNSレコードは、エンドユーザが要求しているコンテンツまたは他の情報を提供するコンテンツ発信元のIPアドレスを含む。再帰サーバは、権威DNSプロバイダによって管理されている権威DNSサーバ(権威サーバまたは単に権威として呼ばれる)を特定し、権威DNSサーバにDNSレコードを照会する。再帰DNSサーバは、権威DNSサーバの応答をエンドユーザのマシンに送信ことができ、生存時間(TTL:Time To Live)に従って応答をキャッシュすることもできる。その後、エンドユーザのマシンは、権威DNSサーバによって提供されたDNSレコードを用いて、ドメインにアクセスすることができる。
従来の再帰的な権威DNSサーバは、新たなドメインに対するコンテンツ発信元のIPアドレスとエンドユーザのマシン(クライアント)との間のパケット伝送に関連する遅延を考慮していない。代わりに、権威サーバは、単に新たなドメインのオペレータによって設定された(静的)ポリシーに従ってIPアドレスを提供する。その結果、従来のネームサーバは、クライアントを最も短い遅延を有するコンテンツ発信元に誘導することができない。
RUMデータ監視システム
図9は、RUMデータを監視し、遅延および他の要因に基づいて、RUMデータを用いてDNS要求を解析するためのシステム900を示す。システム900は、インターネット901または別のパケット交換ネットワークを介して、コンテンツ発信元910a〜910c(まとめてコンテンツ発信元910という)並びに権威サーバ920aおよび再帰レゾイバ920b(まとめて権威DNSサーバ再帰レゾイバ920という)と通信するためのクライアント930を含む。また、システム900は、RUMデータを格納するRUMデータベース940と、タイプ別ラベル付きIPセット(TYLIPS:TYped Labeled IP Set)を格納する別のデータベース950とを含む。
動作中、クライアント930は、コンテンツ発信元910のうちの1つに格納されたコンテンツにアクセスするためのプロセスの一部としてのDNS要求931を権威サーバ920aに送信する。権威サーバ920aは、この要求に応答して、クライアントのIPアドレスと、クライアントと同様のサブネット上のIPアドレスを有するまたは同様の地理領域に位置する他のクライアント(図示せず)にデータを提供するコンテンツ発信元の性能ランキングとに基づいて、所望の性能を有するコンテンツ発信元を選択する。このランキングは、権威サーバ920aに合わせて特別に調整することができる。権威サーバ920aは、選択されたコンテンツ発信元(例えば、コンテンツ発信元910a)のIPアドレスまたはホスト名921をクライアント930に提供する。クライアント930は、選択されたコンテンツ発信元910からコンテンツ911をダウンロードし、更なるDNS要求を解析するための追加的な性能データを生成する。クライアント930からの関連要求は、再帰リゾルバ920bを介して送信される。
RUMデータの収集
図10は、図9に示すシステム900を用いてトラフィックを誘導するためのRUMデータのデータベースを作成するためのプロセス1000を示す流れ図である。ステップ1010において、インターネット性能データは、リアルタイムユーザ監視(RUM)レコードのストリームとして収集される。データは、複数のコンテンツプロバイダまたはコンテンツ発信元からデータを要求またはダウンロードするユーザまたはクライアントから収集される。ステップ1020において、ほぼ同時に様々なコンテンツ発信元から同様のデータサンプルをダウンロードする時間を測定することによって、各RUMレコードを処理する。この処理によって、各対のコンテンツを直接に比較することができる。
ステップ1030において、IPアドレスをタイプ別ラベル付きIPセット(TYLIPS)に分類する。TYLIPSは、同様のプロバイダによって提供され、共通特徴例えば同様の国を有する1組のIPアドレスである。コンテンツ発信元の相対的な機能のヒストグラムは、各IPアドレスごとに蓄積される。次に、TYLIPSのために、これらのヒストグラムは、合併され、蓄積される。
ステップ1040において、最近のRUMデータからのタイミング、故障および他の情報を用いて、各TYLIPSの性能スコアを計算する。これらのスコアを用いて、各TYLIPSのIPアドレスに対応するコンテンツ発信元をランキングする。コンテンツ発信元および関連するTYLIPSランキングは、TYLIPSデータベースに格納される。このデータベースは、集計されたデータへの高速アクセスを提供し、最適な方法でトラフィックを誘導するために使用される。
インターネット性能データは、例えば、複数のコンテンツプロバイダまたはコンテンツ発信元からデータを要求し、ダウンロードするユーザまたはクライアントから収集することができる。データは、レコードに編成され、各RUMレコードは、ユーザからのダウンロードを複数のコンテンツ発信元に関連付け、(1)クライアントのインターネットプロトコル(IP)アドレス、(2)DNS解析に使用された1つ以上の再帰レゾイバのIPアドレス、(3)コンテンツ発信元に一意的に関連付けられた識別子、例えばURI(Uniform Resource Identifier)、および(4)ダウンロードに関連する時間データのうち1つ以上を含むことができる。コンテンツ発信元は、例えば、Akamai、Level 3などのコンテンツ配信ネットワーク(CDN)、Digital Ocean、Amazonなどのクラウドプロバイダ、またはコンテンツ発行者のプライベートデータセンタであってもよい。ダウンロードに関連する時間データは、ドメインネームサーバ(DNS)解析時間、接続を確立した時間、特定のコンテンツ発信元から最初のバイトをダウンロードした時間、最後のバイトをダウンロードした時間およびデータサンプルダウンロードする合計時間などのダウンロード速度を示す様々な中間測定値を含むことができる。
図11は、一連のリアルタイムユーザ監視(RUM)レコードを収集するための別のプロセス1100を示す。ステップ1110において、RUMデータをダウンロードするために、JavaScript(登録商標)などのコードを配置する。いくつかの実施形態において、コードは、コンテンツ発信元のWebページを介して配置される。他の実施形態において、コードは、コンテンツ発信元のデータセンタに配置される。クライアントがコンテンツ発信元のWebページを訪問すると、配置されたコードは、クライアントのブラウザにダウンロードされる(ステップ1120)。ステップ1130において、クライアントは、このコードを実行することによって、RUMデータを収集する。ステップ1140において、クライアントは、クライアントのIPアドレス、コンテンツ発信元のIPアドレス、DNS要求解析時間、コンテンツ発信元のURL、および各ダウンロードのダウンロード時間を含むがこれらに限定されないRUMデータをRUMデータベースに送信する。クライアントは、同時および/または迅速且つ連続的に行われた異なるコンテンツ発信元からのダウンロードまたは同一のコンテンツ発信元からの複数のダウンロードに関するデータ収集および伝送を繰り返す(ステップ1150)。異なるIPアドレスのDNS要求解析時間およびダウンロード時間を比較することによって、クライアント、再帰リゾルバおよび/またはコンテンツ発信元の異なる組み合わせに関連するランキングを生成する(ステップ1160)。例えば、これらのランキングを用いて、更なるDNS要求に応答して、コンテンツ発信元特定およびコンテンツダウンロードプロセスの1つ以上のステップに関連する合計時間または時間を短縮することができる(ステップ1170)。
コードを用いてRUMレコードを収集するための動作は、以下の非限定的な例を参照して説明する。クライアントは、Webブラウザを介して米国特許の全ページ画像を掲載するWebページhttp://patft.uspto.gov/netahtml/PTO/patimg.htmに訪問する。このWebページは、クライアントのブラウザによってダウンロードされるJavaScriptコードを提供する。この例において、クライアントがWebページから米国特許の全ページ画像をダウンロードしている間、JavaScriptコードは、Webブラウザ上で実行され、RUMデータを収集する。JavaScriptコードは、(1)米国特許全ページ画像を取得するためにWebページを訪問したクライアントのIPアドレス、(2)クライアントによって使用されたDNS再帰リゾルバのIPアドレス、(3)データサンプルを提供するコンテンツ発信元のURI、および(4)データサンプルをダウンロードするためのプロセスの様々な中間時間を収集することができる。
RUMデータの処理
各RUMレコードにおいて、様々な発信元から同一のデータサンプルをダウンロードする時間は、ほぼ同時に測定される。これによって、各対のコンテンツ発信元の性能を直接に比較することができる。各対のコンテンツ発信元に対して、同一のデータサンプルをダウンロードする時間の差は、例えば、DNS解析時間および/または接続時間の間の差として計算される。これらの差は、一定の期間に亘って蓄積される。各対の発信元および各種時間の差のヒストグラムを計算する。時間の例として、DNS解析時間またはダウンロード時間が挙げられる。
例えば、テキサス州(Texas)ヒューストン市(Houston)に位置するIPアドレスを有するクライアントは、テキサス州(Texas)ダラス市(Dallas)に位置するIPアドレスを有する再帰リゾルバを使用する場合、OID1からのDNS解析時間およびダウンロード時間が各々10msおよび40msであり、OID2からのDNS解析時間およびダウンロード時間が各々15msおよび50msである。この例において、(OID1、OID2)対のDNS解析時間の差が−5msであり、ダウンロード時間の差が−10msである。これらの差は、経時的に蓄積される。これらの差を用いて、クライアントまたは再帰IP、またはこれらのIPの特徴(例えば、地理位置、インターネットサービスプロバイダ)、時間の類別(例えば、DNS解析時間、ダウンロード時間)、および発信元の対によって共にインデクスされたヒストグラムを作成することができる。
図12は、テキサス州ヒューストン市に位置する全てのクライアントIPのヒストグラムの例を示している。このヒストグラムは、24時間に亘って収集された、2つの異なるコンテンツ配信ネットワーク(CDN)(ここでは、AkamaiおよびFastly)内のコンテンツ発信元のDNS解析時間の差から生成される。発信元対の差のヒストグラムを用いて、他方の発信元に対して一方の発信元の性能を比較することができる。図12を含むいくつかの場合において、比較は、各差のヒストグラムに正値と負値の数を数えることによって達成される。例えば、一対の発信元(OID1、OID2)の差のヒストグラムにおいて、負値は、OID1の時間がOID2の時間よりも短い状況を表しているため、OID1の性能が良好であることを示す。正値は、OID2の性能が良好である反対の状況を示す。差がゼロの場合、OID1とOID2の性能が同様である。時間の絶対差が所定の閾値を下回る場合、例えば時間の絶対差が20ms未満である場合、性能が同等であると考えられてもよい。各発信元に対して、コホート内の他の発信元に対する性能の同等比較を平均化することによって、特定の発信元の全体的な性能を表す単一スコア表現を得ることができる。他の発信元に対して各発信元を採点するために、発信元に特有の他の基準、例えば、遅延中央値、経時変動性および/または安定性、故障率を使用することができる。
タイプ別ラベル付きIPセット(TYLIPS:TYped Labeled IP Set)データの集計
RUMデータは、1つ以上の共通特徴を共有するIPアドレスセットに対して集計される。これらのセットは、タイプ別ラベル付きIPセット、または「TYLIPS」と呼ばれる。TYLIPSの例として、フランス(タイプ=国)、ボストン(タイプ=都市)、AS174(タイプ=インターネットサービスプロバイダ(ISP))、および(パリス、AS5511)(タイプ=都市プロバイダ)が挙げられる。「TYLIPS」という用語は、「IP特徴」という用語と互換的に使用することもできる。単一のIPは、サイズ=1のTYLIPSである。TYLIPSは、IPアドレスセットであるため、数学の集合演算を使用することができ、セットの全ての特性を有する。例えば、2つのTYLIPSが交差してもよく、1つのTYLIPSが別のより大きなTYLIPSに含まれてもよい。
図13は、RUMデータを集計するためのプロセスを示す流れ図である。ステップ1310において、ほぼ同時に各対の発信元のダウンロード時間を測定する。各対の発信元の差は、一定の期間に亘って蓄積される。ステップ1320において、一定の期間に累積された各対の発信元の差を計算してヒストグラムを生成する。
これらの発信元の相対性能のヒストグラムは、「クライアントIPアドレスごと」にまたは「再帰リゾルバIPアドレスごと」に構築されてもよい。各IPアドレスのヒストグラムを蓄積し、合併することによって、IPアドレス群のヒストグラムを生成する(ステップ1330)。各群のIPアドレスは、1つ以上の特徴を共有する群内の全てのIPアドレスに基づいて選択される。共通特徴は、例えば、地理位置(群内のIPアドレスが特定の都市、国または大陸に配置される)、特定のインターネットサービスプロバイダ(ISP)による発信または伝送、または共通組織の会員であってもよい。共通特徴は、地理位置およびISP(例えば、ヘルシンキ(Helsinki)に位置するTeliaSonera社からのIPアドレス)のような共同特徴であってもよい。
ステップ1340において、同一のTYLIPS内の別の発信元に対して1つの発信元の性能を比較する。性能および総合スコアに基づいて、TYLIPSをランキングする(ステップ1350)。再帰リゾルバは、TYLIPSランキングを用いて、次のDNS要求(ステップ1360)に応答して、特定のクライアントに特定のコンテンツ発信元を選択することができる。
RUMデータを使用してインターネットトラフィックを最適に誘導する際に、一部のIPアドレスは、不完全なデータまたは不適切な品質のデータを有する可能性がある。完全なデータが利用可能の場合、各IPアドレスの決定は、そのIPアドレスに関連するデータを用いて行うことができる。実際にデータの品質またはデータの希薄性の問題に対処するために、RUMデータをTYLIPSに集計し、TYLIPS階層を定義する。所定のIPは、階層内にいくつかの連続的な大きいTYLIPSに含まれている。各TYLIPSの特異度、利用可能なデータの量、収集されたデータの質、および他の類似基準に基づいて、TYLIPSをランキングする。IPに関するデータが利用できない場合、最も詳細なTYLIPS、例えば、十分な品質のデータが利用可能であ最も小さいTYLIPSを使用する。基本的な前提は、所定のIPの性能プロファイルが最も詳細なTYLIPSの性能プロファイルに類似することである。
図14Aおよび14Bは、TYLIPSの異なる階層を示す。図14Aにおいて、TYLIPSセットの階層に基づいて、IP1の場合、TYLIPS「ネットワークプレフィックス」を選択する。IP2の場合、選択されたTYLIPSは、「行政区域」の「BGP ASN」、例えば、米国の1つの州に位置するISPである。一方、IP3の場合、選択されたTYLIPSは、「国」である。図14Bにおいて、IPアドレス88.221.8.1は、以下のTYLIPS階層、すなわち、プレフィックス88.221.8.0/22、AS5511、マドリード市、マドリッド州(Comunidad de Madrid)、スペイン国、西ヨーロッパ地域、およびヨーロッパ大陸に属している。このTYLIPS階層は、予め定義されてもよく、予め定義されなくてもよい。このIPアドレスに対する要求があった場合、十分なデータを持つ最も詳細なTYLIPSが選択される。
いくつかのTYLIPSが他のTYLIPSに含まれる(例えば、都市は州に含まれ、州は国に含まれる)が、一方、いくつかのTYLIPS、例えばプレフィックスおよび国が交差する。別のIPアドレス、例えば90.84.255.1に対して、入手可能な最も詳細なデータは、国レベルのみであり、そのTYLIPS階層は、スペイン国、西ヨーロッパ地域、ヨーロッパ大陸である。
階層に基づいて、利用可能なTYLIPSから、最も詳細なTYLIPSを選択することができる。最も詳細なTYLIPSは、IPアドレスのプロファイルと最もよく一致する性能データを有するTYLIPSを選択することによって選択される。また、最も詳細なTYLIPSは、十分な利用可能なデータに基づいて選択されてもよい。
TYLIPのランキング
RUMデータの収集に関して上述したように、クライアントは、コンテンツ発信元を訪問すると、コンテンツ発信元に配置された画像またはコードをダウンロードして実行する。このコードまたは画像は、ダウンロード時間、測定を行った時間、クライアントのIP位置などのRUMデータを記録する。測定値は、1つのクライアントIPから、コードまたはイメージをビーコンとしてホストしている全てのコンテンツ発信元までの時間測定値セットと呼ばれる。これらのビーコンは、データを処理するためのデータ処理サーバに転送される。
コンテンツ発信元のランキングは、RUMデータから計算される。データは、一定の時間間隔に亘って集計される。例えば、データは、24時間に亘って集計される。時間間隔内の各ビーコンに対して、各対のコンテンツ発信元の間の時間差が計算される。
例えば、ビーコン内で、3つのコンテンツ発信元に関する以下の時間を測定する場合、
・ 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
時間間隔に亘って、各対のコンテンツ発信元に対する時間差の分布を計算する。これによって、平均差を計算することができ、または1つのコンテンツ発信元が別のコンテンツ発信元よりも優れている時間の百分比を特定することができる。
場合によって、各コンテンツ発信元対の統計から、ランキングを計算することができる。例えば、「優れている時間の百分比」に基づくランキングの例が開示されている。所定のコンテンツ発信元に対して、競合コンテンツ発信元に対する当該コンテンツ発信元の優れている時間の百分比を特定する。次に、百分比を平均化することによって、スコアを計算する。これらのスコアを用いて、コンテンツ発信元をランキングし、同様のスコアを持つコンテンツ発信元を同一等級のグループに分ける。例示をもって最もよく説明する。4つのコンテンツ発信元を対ごとに比較すると、以下の百分比は、1つのコンテンツ発信元が別のコンテンツ発信元よりも優れていることを示す。
・ A−B 52%−48%、A−C 75%−25%、A−D 95%−5%
・ B−C 70%−30%、C−D 90%−10%
・ C−D 60%−4%
これらのランキングを表形式する場合、次の通りである。
この例において、コンテンツ発信元Aは、最良であるが、コンテンツ発信元Bとほぼ同様であり、コンテンツ発信元Cよりも著しく良好であり、コンテンツ発信元Dよりもずっと優れている。コンテンツ発信元Dは、最も不良である。
コンテンツ発信元Aは、コンテンツ発信元B、CおよびDに比べて、各々52%、75%および95%の時間百分比で優れている。百分比の平均値は、74%である。コンテンツ発信元B、CおよびDの百分比平均値は、各々69.33%、38.33%および18.33%である。これらの平均を用いて、コンテンツ発信元を次のようにランキングする。
図15は、2016年3月2日0:00 UTCから2016年3月3日0:00 UTCまでの間にデータを要求する日本のクライアントIPアドレスのランキングを示す例である。ランキングおよびスコアは、1510に示されている。百分比マトリクス1520は、各行で各コンテンツ発信元の優れている百分比を示している。例えば、Fastlyは、Edgecastよりも約54%の時間で優れている。測定値の百分比が同様であり、すなわち、両方のコンテンツ発信元が同様の性能を有するため、全ての対の百分比の和が100%になるわけではない。類似の性能を有するコンテンツ発信元は、同一等級のグループに分けられる。例えば、等級Aにおいて、一対のコンテンツ発信元間の最大スコアの差は、10未満である。
コンテンツ発信元を等級化するために、スコアは、降順で考慮される。最初に、例えば、最高等級のAまたは0を考慮する。等級付きの所定スコアに対して、前のスコアと次のスコアとの差を順番に計算する。さらに、このスコアと同一等級内のトップスコアとの差を計算する。スコアの差が2よりも大きく且つ(1)現在のスコアと次のスコアとの差が10%よりも大きく、すなわち、次のスコアが現在のスコアの90%よりも小さいである場合または(2)次のスコアと同一等級内のトップスコアとの差が10%よりも大きく(すなわち、次のスコアが現在のスコアの90%よりも小さく)および次のスコアと現在のスコアとの差が前のスコアと現在のスコアとの差の3倍よりも大きい場合、次の等級に繰り上げる。
例えば、50と40との差が2よりも大きい10であり、40が50の90%、すなわち、45よりも小さいため、50と40との間で分ける。同様に、スコア60,57,55,53,51,50,46の場合、50−46=4>2、46<(0.9×60)=54、50−46>4>3×(51−50)=1であるため、50と46との間で分ける。
現在の等級と次の等級との差が20%よりも大きい場合、次のように1つ以上のステップに従って等級に繰り上げる。具体的に、(1)差が10%〜20%である場合、1つの等級、例えば、AからBに繰り上げ、(2)差が20%〜40%である場合、2つの等級、例えばAからCに繰り上げ、(3)差が40%〜80%である場合、3つの等級、例えば、AからDに繰り上げ、(4)差が80%を超える場合、Fに繰り上げる。
したがって、同様のスコアの場合、同一の等級に分けられる。スコア間の差が有意(10%)である場合、等級分けを行う。等級分けの場合、等級内のトップスコアとボトムスコアとの差が大きくない。
TYLIPSから集計されたRUMデータを用いたトラフィックの誘導
図16は、1つ以上のTYLIPSから集計されたRUMデータを用いてトラフィックを誘導するためのプロセス1005を示す。クライアント930は、ドメインをIPアドレスに変換するために再帰リゾルバ920bにDNS要求を送信し、再帰リゾルバは、DNS要求を権威DNSサーバ920aに転送する(ステップ1610)。権威DNSサーバおよび再帰リゾルバ920は、利用可能であれば、クライアントのDNS再帰リゾルバのIPアドレスおよびクライアントのIPアドレスをTYLIPSデータベース950に提供する(ステップ1620)。TYLIPSデータベース950は、クライアントのDNS再帰リゾルバおよびクライアントのIPアドレスに関連する利用可能且つ最も詳細なTYLIPを検索する。また、TYLIPSデータベース950は、利用可能且つ最も詳細なTYLIPに対応するコンテンツ発信元のランキングを検索し、これらのランキングに基づいて、コンテンツ発信元を選択する。TYLIPデータベース950は、選択されたコンテンツ発信元を権威DNSサーバ920aおよび再帰リゾルバ920bに提供する(ステップ1630)。権威DNSサーバ920aおよび再帰リゾルバ920bは、クライアントのDNS要求に応答して、最適なコンテンツ発信元のIPアドレスをクライアント930に送信する。
RUMデータに基づいて、再帰リゾルバのIPアドレスをクライアントのIPアドレスのTYLIPSに関連付けることができる。再帰リゾルバのIPアドレスがRUMデータに観測されない場合、再帰リゾルバのIPアドレスを用いてTYLIPSの階層を見出すことができる。また、クライアントのサブネットデータ、例えば、クライアントのプレフィックスを用いて、TYLIPSの階層を見出すこともできる。
再帰リゾルバIPアドレスによって表されたクライアントIPアドレスに属するIP特徴の階層またはTYLIPSに、再帰リゾルバのIPアドレスを関連付けることができる。例えば、再帰リゾルバは、米国東海岸都市に位置するクライアントの代理として、権威DNSサーバに照会することができる。他の例において、誘導の基礎として、再帰リゾルバIPアドレスの1つ以上の機能を直接に使用することができる。例えば、再帰リゾルバの位置をボストンに特定することができる。それにも係わらず、再帰リゾルバからのクエリに関連するTYLIPSセットを選択し、選択したTYLIPSセットを用いて誘導を決定する。
例示として、マサチューセッツ州(Massachusetts)ソマービル市(Somerville)に位置し、Comcast社から発信する再帰リゾルバを挙げる。複数の発信元候補を区別し、適切な発信元を選択するために、この再帰リゾルバのIPアドレスに関連するRUMレコードが十分である場合、再帰リゾルバのIPアドレスに関連付けられた詳細なランキングを使用することができる。そうでない場合、特定の基礎を形成するのに十分なRUM記録を有するより低い詳細度を有する領域(例えば、ソマービル市、マサチューセッツ州、またはニューイングランド地域)に関連付けられた発信元のランキングを使用することができる。場合によって、適切な発信元を選択するための明確な推薦を可能にするのに十分な品質のデータを有する最も詳細な特徴または共通特徴を使用することが望ましい。換言すれば、十分なデータを有する最も詳細なTYLIPSを選択し、最も詳細なTYLIPSに対して最良のスコアを有するコンテンツ発信元が推薦される。望ましい量のRUMデータの閾値を提供し、現在の量が閾値よりも大きいか否かを分析することによって、データを十分であるとして定量化することができる。
例えば、コンテンツプロバイダ(例えば、ニューヨークタイムズ)は、権威DNSプロバイダに支払うことによって、www.nytimes.comに訪問したユーザを、複数のコンテンツ発信元(例えば、ヨーロッパおよび北アメリカに位置する発信元)のうち適切なコンテンツ発信元に誘導することができる。権威DNSプロバイダは、(例えば、上記の方法を用いて)RUMレコードを収集し、ユーザの位置に基づいて、www.nytimes.comの性能を比較し、推薦のコンテンツ発信元を提供する。例えば、権威DNSプロバイダは、北アメリカではなくヨーロッパを推薦する場合がある。
権威DNSプロバイダは、所定のゾーンに対してリアルタイムのトラフィック誘導を提供する。これによって、再帰DNSリゾルバを照会する1人以上のユーザが、要求されたコンテンツ発信元にマッピングされる。発信元は、短い遅延、高可用性、安定性、および類似する他の特性に基づいて選択することができる。換言すれば、権威DNSプロバイダは、ドメインを要請している再帰リゾルバを最も望ましい場所に導くことによって、そのドメインのデータを取得することができる。
したがって、再帰IPおよび/またはクライアントIPから、TYLIPSの階層を計算するためのプロセスが開示される。各TYLIPSは、予め計算されたスコアおよびコンテンツ発信元のランキングを有するデータベースにアクセスすることができる。例えば、十分なデータを有する最も詳細なTYLIPSなど、最良のTYLIPSが選択される。最良のTYLIPSのスコアおよびランキングを用いて、再帰IPによって要求されたドメインと、最良のスコアを有するコンテンツ発信元とを一致させる。
本発明の実施形態を用いて、リアルタイムでトラフィックを制御することができ、またはDNSの過去性能に基づいて望ましいレベルの性能を達成するようにDNSを構成することができる。本発明の方法を用いて、地理位置を所望のCDNに一致させるマップを生成することができる。例えば、ユーザが現在ではコンテンツ発信元からCDNサービスを購入していない場合でも、マサチューセッツ州から発信されたクエリに適切なコンテンツ発信元を推薦することができる。したがって、本発明の実施形態を用いて、新たなCDNサービスの購入を評価することができる。
結論
本明細書は、本発明の様々な実施形態を記載および例示したが、当業者であれば、本明細書に記載の機能を実行するため、および/または結果を得るため、および/または利点を得るために、様々な他の手段および/または構造を想到することができ、これらの変形および/または修正の各々は、本明細書に記載された本発明の実施形態の範囲内に含まれるとみなされる。より概括的に、当業者であれば、本明細書に記載された全てのパラメータ、寸法、材料および構成は、例示的であり、実際のパラメータ、寸法、材料および/または構成は、本発明の教示が使用される特定の応用に依存することを理解するであろう。当業者は、本明細書に記載のパラメータおよび構成が例示的であり、実際のパラメータおよび/または構成が本発明のシステムおよび技術が使用される具体的な用途に依存することを理解すべきである。また、当業者は、通常の実験によって、本発明の具体的な実施形態と同等するものを認識または把握することができるであろう。したがって、本明細書に記載の実施形態は、例示のみとして提示され、添付の特許請求の範囲および均等の範囲内に含まれることを理解すべきである。本発明は、具体的に説明した以外の方法で実施することができる。本明細書に記載された本発明の実施形態は、本明細書に記載された個々の特徴、システム、物品、材料、キット、および/または方法を対象とする。さらに、これらの特徴、システム、物品、キット、および/または方法の2つ以上の組み合わせが、互いに矛盾しない場合、本発明の範囲に含まれる。
上述した実施形態は、多くの方法のいずれかで実施することができる。例えば、本明細書に開示された技術を設計および実施するための実施形態は、ハードウェア、ソフトウェア、またはそれらの組み合わせを用いて実装されてもよい。ソフトウェアコードは、ソフトウェアに実装される場合、単一のコンピュータによって提供された任意の適切なプロセッサまたはプロセッサ群または複数のコンピュータに分散された任意の適切なプロセッサまたはプロセッサ群に実行され得る。
また、理解すべきことは、コンピュータは、ラックマウント型コンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、またはタブレットコンピュータのような多くの形態のうちのいずれかで具体化されてもよいことである。さらに、コンピュータは、一般にコンピュータとはみなされていないが適切な処理能力を有する装置、例えば、パーソナルデジタルアシスタント(PDA)、スマートフォン、または他の適切な携帯または固定電子装置に埋め込まれてもよい。
また、コンピュータは、1つ以上の入力および出力装置を有することができる。これらの装置を用いて、ユーザインターフェイスを提供することができる。ユーザインターフェイスを提供するために使用され得る出力装置の例は、可視出力を提供するためのプリンタまたはスクリーンまたは視覚を提供するためのスピーカまたは他の音生成装置を含む。ユーザインターフェイスを提供するために使用され得る入力装置の例は、キーボード、マウスなどのポインティング装置、タッチパッド、およびデジタル化タブレットを含む。別の例として、コンピュータは、音声認識または他の可聴形式で入力情報を受け取ることができる。
これらのコンピュータは、企業ネットワーク、インテリジェントネットワーク(IN)またはインターネットなどのローカルエリアネットワークまたはワイドエリアネットワークを含む、任意の適切な形態の1つ以上のネットワークによって相互接続されてもよい。これらのネットワークは、任意の適切な技術に基づいてもよく、任意の適切なプロトコルに従って動作してもよく、無線ネットワーク、有線ネットワークまたは光ファイバネットワークを含んでもよい。
本明細書に概説した(例えば、上記で開示した技術を設計および実施するための)様々な方法またはプロセスは、様々なオペレーティングシステムまたはプラットフォームの1つを採用する1つ以上のプロセッサ上で、実行可能なソフトウェアとしてコード化することができる。また、このようなソフトウェアは、多くの適切なプログラミング言語および/またはプログラミングツールまたはスクリプトツールのいずれかを用いて記述することができ、フレームワークまたは仮想マシン上で実行される実行可能な機械語コードまたは中間コードとしてコンパイルすることもできる。
この点に関して、本発明の様々な態様は、コンピュータ可読記憶媒体(または複数のコンピュータ可読記憶媒体)(例えば、コンピュータメモリ、1つ以上のフロッピー(登録商標)ディスク、コンパクトディスク、光学ディスク、磁気テープ、フラッシュメモリ、フィールドプログラマブルゲートアレイ(FPGA)、他の半導体装置、または他の有形的なコンピュータ記憶媒体または非一時的な媒体)にエンコードされた1つ以上のプログラムとして具体化することができ、これらのプログラムは、1つ以上のコンピュータまたは他のプロセッサ上で実行されると、上述した本発明の様々な実施形態を実現する方法を実行する。コンピュータ可読媒体は、格納しているプログラムを1つ以上の異なるコンピュータまたは他のプロセッサにロードして、上述した本発明の様々な態様を実施することができるように、移動可能である。
本明細書において、「プログラム」または「ソフトウェア」という用語は、一般的な意味で、コンピュータまたは他のプロセッサに指示して、上述した本発明の様々な態様を実施するようにプログラムすることができる任意の種類のコンピュータコードまたはコンピュータ実行可能な命令セットを指す。また、この実施形態の1つの態様によれば、実行されると本発明の方法を実行する1つ以上のコンピュータプログラムは、単一のコンピュータまたはプロセッサ上に駐在する必要がなく、多くの異なるコンピュータまたはプロセッサにモジュール式で配置されても、本発明の様々な態様を実施することができる。
コンピュータ実行可能な命令は、多くの形態、例えば、1つ以上のコンピュータまたは他の装置によって実行されるプログラムモジュールであってもよい。一般的には、プログラムモジュールは、特定のタスクを実行するまたは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。典型的には、プログラムモジュールの機能は、必要に応じて、様々な実施形態に組み合わられてもよく、分散されてもよい。
また、データ構造は、任意の適切な形態のコンピュータ可読媒体に格納することができる。説明を簡単にするために、データ構造は、データ構造内の位置を介して関連するフィールドを有してもよい。同様に、フィールドの記憶をコンピュータ可読媒体内のフィールド間の関係を格納する位置に割り当てることによって、このような関係を達成することもできる。しかしながら、ポインタ、タグまたはデータ要素間の関係を確立する他のメカニズムの使用を含む任意の適切なメカニズムを用いて、データ構造のフィールドにおける情報間の関係を確立することができる。
また、本発明の様々な概念は、例示を与えた1つ以上の方法として具体化することができる。方法の一部として実行された動作は、任意の適切な順序で実行されてもよい。したがって、例示的な実施形態では連続的な動作として示されているが、例えば、例示の順序と異なる順序で、例えば、いくつかの動作を同時に実行するように、実施形態を構成することができる。
なお、本明細書において定義され、使用された全ての定義は、辞書定義、参照により組み込まれた文書の定義、および/または定義された用語の通常意味よりも優先する。
特に明記しない限り、不定冠詞「a」または「an」は、本明細書および特許請求の範囲に使用された場合、「1つ以上」を意味する。
「および/または」という語句は、本明細書および特許請求の範囲に使用された場合、列挙された要素の「一方または両方」を意味し、すなわち、これらの要素が一部の場合に共同に存在し、他の場合に単独に存在することを意味する。同様に、「および/または」で列挙された複数の要素は、列挙された要素のうち「1つ以上」として解釈すべきである。具体的に、「および/または」という語句によって具体的に特定された要素以外に、他の要素が、特定された要素と関連するか否かにかかわらず、必要に応じて存在してもよい。したがって、非限定的な例として、「Aおよび/またはB」は、「含む(comprising)」などの開放型言語と併せて使用された場合、一実施形態において、Aのみ(必要に応じて、B以外の要素)を含み、別の実施形態において、Bのみ(必要に応じて、A以外の要素)を含み、さらに別の実施形態において、AおよびBの両方(必要に応じて他の元素)を含むことを意味する。
「または」という用語は、本明細書および特許請求の範囲に使用された場合、上記で定義した「および/または」と同様の意味を有すると理解すべきである。例えば、「または」または「および/または」は、リスト中の項目を分ける場合、包括的であり、すなわち、要素の数またはリストの少なくとも1つを含み、必要に応じてリストにない追加の項目を含むとして解釈すべきである。明白に反対の意味を示す用語、例えば、「1つのみ」または「正確に1つのみ」または「からなる」は、特許請求の範囲に使用された場合、要素の数またはリストの1つのみの要素を含むことを意味する。一般的に、本明細書に使用された用語「または」は、前方に「どちらか」、「一方」、「一方のみ」などの排他的な条件があった場合、排他的な意味(すなわち、両方ではなく、一方または他方)を意味するとして理解すべきである。「本質的に〜からなる」という用語は、特許請求の範囲に使用された場合、特許法の分野に使用される通常の意味を有するものとする。
1つ以上の要素のリストを参照する「少なくとも1つ」という用語は、本明細書および特許請求の範囲に使用された場合、必ずしもリストに具体的に列挙された全ての要素の少なくとも1つを含まず、リスト内の複数の要素から選択された少なくとも1つの要素を含み、リスト内の要素の組み合わせを除外しないことを意味すると理解すべきである。また、「少なくとも1つの」という用語によって具体的に特定されたリスト内の要素以外に、他の要素が、具体的に特定されたリスト内の要素と関連するか否かにかかわらず、必要に応じて存在してもよい。したがって、非限定的な例として、「AおよびBの少なくとも1つ」(または同等に「AまたはBの少なくとも1つ」、または同等に「Aおよび/またはBの少なくとも1つ」)は、一実施形態において、少なくとも1つのA、場合によって2つ以上のAを含み、Bを含まない(場合によって、B以外の元素を含む)ことを意味し、別の実施形態において、少なくとも1つのB、場合によって2つ以上のBを含み、Aを含まない(場合によって、A以外の元素を含む)ことを意味し、さらに別の実施形態において、少なくとも1つのA、場合によって2つ以上のA、および少なくとも1つのB、場合によって2つ以上のB(場合によって、他の要素)を含むことを意味する。
特許請求の範囲および上記の明細書において、「備える(comprising)」、「含む(including)」、「もつ(carrying)」、「有する(having)」、「含有する(containing)」、「関与する(involving)」、「保有する(holding)」、「構成される(composed of)」などの全ての接続用語は、開放的な意味、すなわち、限定せず含むという意味で理解すべきである。「〜からなる」および「本質的に〜からなる」という接続用語のみは、米国特許商標庁の特許審査手続書第2111.03項に記載されているように、閉鎖型または半閉鎖型接続用語として理解すべきである。

Claims (12)

  1. 複数の中継プロバイダを介して、顧客構内からのトラフィックをインターネットプロトコル(IP)アドレスに誘導するための方法であって、
    前記複数の中継プロバイダのうちの第1中継プロバイダを介して、前記顧客構内の収集装置から前記IPアドレスまでの第1遅延を測定するステップと、
    前記複数の中継プロバイダのうちの第2中継プロバイダを介して、前記収集装置から前記IPアドレスまでの第2遅延を測定するステップと、
    前記第1遅延と前記第2遅延との比較を実行するステップと、
    前記第1遅延と前記第2遅延との比較に基づいて、前記第1中継プロバイダおよび前記第2中継プロバイダのうちの1つを選択するステップと、
    前記第1中継プロバイダおよび前記第2中継プロバイダのうちの1つを介して、前記顧客構内からのトラフィックを前記IPアドレスに誘導するステップとを含
    前記第1遅延を測定するステップは、前記第1中継プロバイダを介して、エコー要求を前記IPアドレスに送信することを含み、
    前記第2遅延を測定するステップは、前記第2中継プロバイダを介して、エコー応答を受信することを含む、方法。
  2. 前記第1遅延を測定するステップは、前記第1中継プロバイダに接続されたボーダールータの第1インターフェイスを介して、前記IPアドレスにエコー要求を送信することをさらに含み
    前記第2遅延を測定するステップは、前記ボーダールータの第2インターフェイスを介して、エコー応答を受信することをさらに含む、請求項1に記載の方法。
  3. 前記第1遅延を測定するステップは、前記第1中継プロバイダに接続された第1ボーダールータを介して、前記第1遅延を測定することをさらに含み、
    前記第2遅延を測定するステップは、前記第1ボーダールータおよび前記第2中継プロバイダに接続された第2ボーダールータを介して、前記第2遅延を測定することをさらに含み、
    前記トラフィックを前記IPアドレスに誘導するステップは、前記第1ボーダールータ
    および前記第2ボーダールータを介して、前記トラフィックを前記第2中継プロバイダに誘導することを含む、請求項1に記載の方法。
  4. 前記第1遅延を測定するステップは、前記第1中継プロバイダおよび前記第2中継プロバイダに接続されたボーダールータの第1インターフェイスを介して、前記第1遅延を測定することをさらに含み、
    前記第2遅延を測定するステップは、前記ボーダールータの第2インターフェースを介して、前記第2遅延を測定するステップをさらに含み、
    前記トラフィックを前記IPアドレスに誘導するステップは、第1ボーダールータおよび第2ボーダールータを介して、前記トラフィックを前記第2中継プロバイダに誘導することを含む、請求項1に記載の方法。
  5. 前記第1遅延と前記第2遅延との比較を実行するステップは、
    前記第1中継プロバイダの受信遅延と前記第2中継プロバイダの受信遅延とを比較することと、
    前記第1中継プロバイダの送信遅延と前記第2中継プロバイダの送信遅延とを比較することとを含む、請求項1〜のいずれか1項に記載の方法。
  6. 前記第1中継プロバイダおよび前記第2中継プロバイダのうちの1つを選択するステップは、
    前記第1中継プロバイダのコストおよび前記第2中継プロバイダのコストに基づいて、前記第1中継プロバイダおよび前記第2中継プロバイダのうちの1つを選択することをさらに含む、請求項1〜のいずれか1項に記載の方法。
  7. 前記第1中継プロバイダおよび前記第2中継プロバイダのうちの1つを選択するステップは、
    前記第1中継プロバイダのパケット損失および前記第2中継プロバイダのパケット損失に基づいて、前記第1中継プロバイダおよび前記第2中継プロバイダのうちの1つを選択することをさらに含む、請求項1〜のいずれか1項に記載の方法。
  8. 前記トラフィックを前記IPアドレスに誘導するステップは、
    パケットのホストプレフィックスをボーダーゲートウェイプロトコル(BGP)集団属性に関連付けることと、
    前記ホストプレフィックスの前記BGP集団属性に基づいて、前記パケットを前記第1中継プロバイダおよび前記第2中継プロバイダのうちの1つに誘導することとを含む、請求項1〜のいずれか1項に記載の方法。
  9. 前記トラフィックを前記IPアドレスに誘導するステップは、
    前記IPアドレスにトラフィックを伝送するための次のホップを、前記第1中継プロバイダおよび前記第2中継プロバイダのうちの1つに接続されたボーダールータに設定することを含む、請求項1〜のいずれか1項に記載の方法。
  10. 顧客構内とターゲットインターネットプロトコル(IP)アドレスとの間の遅延を測定するための方法であって、前記顧客構内は、第1中継プロバイダに接続された第1ルータと、第2中継プロバイダに接続された第2ルータとを含み、前記第1ルータは、第1プレフィックスを公表し、前記第2ルータは、第2プレフィックスを公表し、前記方法は、
    前記第2ルータおよび前記第2中継プロバイダを介して、前記顧客構内の第1IPアドレスから前記ターゲットIPアドレスに第1エコー要求を送信するステップを含み、前記第1エコー要求は、前記第1IPアドレスから前記第1エコー要求を送信した時間を示す第1タイムスタンプを含み、前記第1IPアドレスは、前記第1プレフィックスを有し、
    前記第1中継プロバイダおよび前記第1ルータを介して、前記ターゲットIPアドレスから第1エコー応答を受信するステップを含み、前記第1エコー応答は、前記ターゲットIPアドレスから前記第1エコー応答を送信した時間を示す第1応答タイムスタンプを含み、
    前記第1タイムスタンプおよび前記第1応答タイムスタンプに基づいて、第1往復遅延を決定するステップとを含む、方法。
  11. 前記第1ルータおよび前記第1中継プロバイダを介して、前記顧客構内の第2IPアドレスから前記ターゲットIPアドレスに第2エコー要求を送信するステップを含み、前記第2エコー要求は、前記第2IPアドレスから前記第2エコー要求を送信した時間を示す第2タイムスタンプを含み、前記第2IPアドレスは、前記第2プレフィックスを有し、
    前記第2中継プロバイダおよび前記第2中継プロバイダを介して、前記ターゲットIPアドレスから第2エコー応答を受信するステップを含み、前記第2エコー応答は、前記ターゲットIPアドレスから前記第2エコー応答を送信した時間を示す第2応答タイムスタンプを含み、
    前記第2タイムスタンプおよび前記第2応答タイムスタンプに基づいて、第2往復遅延を決定するステップとを含む、請求項10に記載の方法。
  12. 前記第1往復遅延と前記第2往復遅延との比較を実行するステップと、
    前記第1往復遅延と前記第2往復遅延との比較に基づいて、前記第1中継プロバイダおよび前記第2中継プロバイダのうちの1つを選択するステップと、
    前記第1中継プロバイダおよび前記第2中継プロバイダのうちの1つを介して、前記顧客構内からのトラフィックを前記IPアドレスに誘導するステップとをさらに含む、請求項11に記載の方法。
JP2018511640A 2015-09-04 2016-09-06 リアルタイムユーザ監視データを用いてリアルタイムトラフィック誘導を行うための方法および装置 Active JP6820320B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562214814P 2015-09-04 2015-09-04
US62/214,814 2015-09-04
PCT/US2016/050429 WO2017041107A1 (en) 2015-09-04 2016-09-06 Methods and apparatus for real-time traffic steering using real-time user monitoring data

Publications (3)

Publication Number Publication Date
JP2018528695A JP2018528695A (ja) 2018-09-27
JP2018528695A5 JP2018528695A5 (ja) 2019-09-19
JP6820320B2 true JP6820320B2 (ja) 2021-01-27

Family

ID=58188533

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018511640A Active JP6820320B2 (ja) 2015-09-04 2016-09-06 リアルタイムユーザ監視データを用いてリアルタイムトラフィック誘導を行うための方法および装置

Country Status (5)

Country Link
US (2) US10673767B2 (ja)
EP (1) EP3345346B1 (ja)
JP (1) JP6820320B2 (ja)
CN (2) CN108476146B (ja)
WO (1) WO2017041107A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230031496A1 (en) * 2020-01-06 2023-02-02 Orange Method for managing data routing in a communication system and devices for implementing the method

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107615731B (zh) * 2016-04-25 2020-06-26 华为技术有限公司 一种组播时延诊断方法及装置
US10552838B2 (en) 2016-09-09 2020-02-04 Ns8, Inc. System and method for evaluating fraud in online transactions
US10592922B2 (en) * 2016-09-09 2020-03-17 Ns8, Inc. System and method for detecting fraudulent internet traffic
US11115323B2 (en) * 2017-05-10 2021-09-07 Saudi Arabian Oil Company Securing Layer-3 virtual private network
CN107222492A (zh) * 2017-06-23 2017-09-29 网宿科技股份有限公司 一种dns防攻击方法、设备和***
US10348632B2 (en) * 2017-12-08 2019-07-09 Nokia Solutions And Networks Oy Traffic steering
CN110474853B (zh) * 2018-05-11 2022-10-18 华为技术有限公司 一种报文发送的方法、网络节点和***
US10298611B1 (en) * 2018-12-10 2019-05-21 Securitymetrics, Inc. Network vulnerability assessment
EP3742308A1 (en) * 2019-05-21 2020-11-25 Siemens Healthcare GmbH Computer-implemented method for providing cross-linking between cloud-based webapplications
US11290352B2 (en) * 2020-04-29 2022-03-29 Twilio Inc. Message routing optimization system
US11606267B1 (en) 2021-09-10 2023-03-14 Microsoft Technology Licensing, Llc Detecting and quantifying latency components in accessing cloud services
CN116389487A (zh) * 2021-12-24 2023-07-04 上海诺基亚贝尔股份有限公司 网络通信的用户设备、服务器、方法、装置和计算机可读介质
WO2024031334A1 (en) * 2022-08-09 2024-02-15 Microsoft Technology Licensing, Llc Routing network traffic using time zone information

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6556541B1 (en) 1999-01-11 2003-04-29 Hewlett-Packard Development Company, L.P. MAC address learning and propagation in load balancing switch protocols
US6976090B2 (en) * 2000-04-20 2005-12-13 Actona Technologies Ltd. Differentiated content and application delivery via internet
US7246045B1 (en) * 2000-08-04 2007-07-17 Wireless Valley Communication, Inc. System and method for efficiently visualizing and comparing communication network system performance
US20020133575A1 (en) * 2001-02-22 2002-09-19 Viola Networks Ltd. Troubleshooting remote internet users
US6738933B2 (en) 2001-05-09 2004-05-18 Mercury Interactive Corporation Root cause analysis of server system performance degradations
US7668966B2 (en) * 2001-11-02 2010-02-23 Internap Network Services Corporation Data network controller
JP4173401B2 (ja) * 2003-05-01 2008-10-29 株式会社エヌ・ティ・ティ・ドコモ ルータ、アドレス識別情報管理サーバ
US20050144287A1 (en) * 2003-12-11 2005-06-30 International Business Machines Corporation Computer product and system for establishing network connections
US7769021B1 (en) * 2004-07-03 2010-08-03 At&T Corp. Multiple media fail-over to alternate media
US7852749B2 (en) * 2005-04-06 2010-12-14 Callwave, Inc. Methods and systems for routing telecommunications
JP4545109B2 (ja) * 2006-03-28 2010-09-15 京セラ株式会社 通信経路制御装置
US8130793B2 (en) * 2006-08-22 2012-03-06 Embarq Holdings Company, Llc System and method for enabling reciprocal billing for different types of communications over a packet network
US8028090B2 (en) * 2008-11-17 2011-09-27 Amazon Technologies, Inc. Request routing utilizing client location information
US7991910B2 (en) * 2008-11-17 2011-08-02 Amazon Technologies, Inc. Updating routing information based on client location
US7962597B2 (en) * 2008-03-31 2011-06-14 Amazon Technologies, Inc. Request routing based on class
US8059557B1 (en) * 2008-07-14 2011-11-15 Sprint Spectrum L.P. Method and system for access gateway selection
US8155158B2 (en) * 2008-11-12 2012-04-10 Patricio Humberto Saavedra System, apparatus and method for providing aggregated network connections
CA2741895C (en) * 2008-11-17 2015-01-20 Amazon Technologies, Inc. Request routing and updating routing information utilizing client location information
WO2010099513A2 (en) * 2009-02-27 2010-09-02 Coach Wei Adaptive network with automatic scaling
US8391303B2 (en) 2009-04-16 2013-03-05 Futurewei Technologies, Inc. Border gateway protocol (BGP) grouped route withdrawals
US8600382B2 (en) * 2009-04-24 2013-12-03 At&T Intellectual Property I, L.P. Apparatus and method for measurement-based medium selection in a network
US8284691B2 (en) * 2009-12-15 2012-10-09 Verizon Patent And Licensing Inc. Estimating data throughput
US8996669B2 (en) * 2010-04-02 2015-03-31 Nominum, Inc. Internet improvement platform with learning module
US8472324B1 (en) * 2010-06-29 2013-06-25 Amazon Technologies, Inc. Managing route selection in a communication network
US8694642B2 (en) 2010-10-21 2014-04-08 Opendns, Inc. Selective proxying in domain name systems
US9401962B2 (en) * 2010-10-28 2016-07-26 Verizon Patent And Licensing Inc. Traffic steering system
CN102457933B (zh) * 2010-10-29 2015-06-24 富士通株式会社 无线网络设备、无线网络***和路由选择控制方法
US9026644B2 (en) * 2011-03-10 2015-05-05 Verizon Patent And Licensing Inc. Anomaly detection and identification using traffic steering and real-time analytics
US8738766B1 (en) * 2011-11-01 2014-05-27 Edgecast Networks, Inc. End-to-end monitoring and optimization of a content delivery network using anycast routing
US8745177B1 (en) * 2011-11-01 2014-06-03 Edgecast Networks, Inc. End-to-end monitoring and optimization of a content delivery network using anycast routing
US9094308B2 (en) * 2012-06-06 2015-07-28 Juniper Networks, Inc. Finding latency through a physical network in a virtualized network
JP2014068258A (ja) 2012-09-26 2014-04-17 Oki Electric Ind Co Ltd 制御装置
KR101491639B1 (ko) * 2012-11-15 2015-02-09 (주)씨디네트웍스 통신망의 종류를 구분하는 방법 및 이를 이용한 콘텐츠 제공 방법
EP2773144A1 (en) * 2013-03-01 2014-09-03 Thomson Licensing Method of diagnosis of degradation in a heterogeneous network using a neighbour network
US9391847B2 (en) * 2013-08-08 2016-07-12 Level 3 Communications, Llc Content delivery methods and systems
US10375195B2 (en) * 2013-11-06 2019-08-06 Fastly, Inc. Content node selection using network performance profiles
US9467506B2 (en) * 2014-01-27 2016-10-11 Google Inc. Anycast based, wide area distributed mapping and load balancing system
US10033628B2 (en) * 2015-04-06 2018-07-24 Verizon Digital Media Services Inc. Application controlled path selection over different transit providers
WO2017015454A1 (en) * 2015-07-22 2017-01-26 Dynamic Network Services, Inc. Methods, systems, and apparatus for geographic location using trace routes
US10356660B2 (en) * 2015-09-25 2019-07-16 Carlos Giraldo Rodriguez Systems and methods for optimizing network traffic

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230031496A1 (en) * 2020-01-06 2023-02-02 Orange Method for managing data routing in a communication system and devices for implementing the method

Also Published As

Publication number Publication date
WO2017041107A1 (en) 2017-03-09
JP2018528695A (ja) 2018-09-27
EP3345346B1 (en) 2020-10-21
US10673767B2 (en) 2020-06-02
CN114422400B (zh) 2023-09-05
EP3345346A1 (en) 2018-07-11
CN108476146A (zh) 2018-08-31
US11025553B2 (en) 2021-06-01
EP3345346A4 (en) 2019-05-22
CN114422400A (zh) 2022-04-29
CN108476146B (zh) 2022-02-25
US20180270161A1 (en) 2018-09-20
US20200252343A1 (en) 2020-08-06

Similar Documents

Publication Publication Date Title
JP6820320B2 (ja) リアルタイムユーザ監視データを用いてリアルタイムトラフィック誘導を行うための方法および装置
US10447648B2 (en) Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP
WO2018040816A1 (zh) 一种资源获取的方法、终端及服务器
US20040249971A1 (en) Methods and systems for providing dynamic domain name system for inbound route control
US9503370B2 (en) Optimized content routing distribution using proximity based on predictive client flow trajectories
Valancius et al. Quantifying the benefits of joint content and network routing
Frank et al. Collaboration opportunities for content delivery and network infrastructures
CN103873604A (zh) 一种基于分析cdn网络数据的网络访问方法
Hohlfeld et al. Characterizing a meta-CDN
Calder et al. A cloud provider’s view of EDNS Client-Subnet adoption
US20090150564A1 (en) Per-user bandwidth availability
JP5871908B2 (ja) ネットワーク内部のデータ通信を制御するための方法およびシステム
Mazzola et al. On the latency impact of remote peering
Palacin et al. The impact of content delivery networks on the internet ecosystem
KR100342107B1 (ko) 인터넷 주소 부가정보 서비스 제공을 위한 기관 및 지역별 인터넷 주소 묶음결정 방법, 인터넷 주소 묶음별 사용지역 정보 획득 방법
CN114520784A (zh) 一种动态内容加速访问方法及装置
Deri et al. Graph theoretical models of DNS traffic
Gregori et al. Inferring geography from BGP raw data
Li et al. Assessing locator/identifier separation protocol interworking performance through RIPE Atlas
Krenc Revisiting the interplay of inter-domain traffic and routing policies
Rahmatov et al. Hop count measurement between autonomous systems using a combination of active and passive monitoring
Tomic et al. Implementation and efficiency analysis of composite DNS-metric for dynamic server selection
EP2827557A1 (en) Automated application metric selection for multi-cost ALTO queries
Perez et al. Delivering application-layer traffic optimization services based on public routing data at internet exchange points
Hussein Request Routing In Content Delivery Networks

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190808

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190808

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200825

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200826

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201124

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201208

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210104

R150 Certificate of patent or registration of utility model

Ref document number: 6820320

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250