(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-27
(45)【発行日】2023-04-04
(54)【発明の名称】コンテキストアウェア型の経路の計算及び選択
(51)【国際特許分類】
H04L 45/12 20220101AFI20230328BHJP
H04L 45/24 20220101ALI20230328BHJP
【FI】
H04L45/12
H04L45/24
(21)【出願番号】P 2020515830
(86)(22)【出願日】2018-05-25
(86)【国際出願番号】 US2018034669
(87)【国際公開番号】W WO2018218158
(87)【国際公開日】2018-11-29
【審査請求日】2021-05-25
(32)【優先日】2017-05-25
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2018-05-24
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】519418891
【氏名又は名称】ジーカーダ ネットワークス,インコーポレイテッド
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】アンソニーラジ,ロザリン,ロイ
(72)【発明者】
【氏名】バラーダラジャン,スブラマニアン
【審査官】鈴木 香苗
(56)【参考文献】
【文献】特表2016-537925(JP,A)
【文献】特開2013-118460(JP,A)
【文献】特開2008-092145(JP,A)
【文献】特開2016-082373(JP,A)
【文献】国際公開第2016/058417(WO,A1)
【文献】米国特許第08665841(US,B1)
【文献】中国特許出願公開第101217497(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 45/12
H04L 45/24
(57)【特許請求の範囲】
【請求項1】
サービスとの第1のコネクションのトラフィックを受信する前に、経路管理ハブによって、メッシュネットワークを形成する複数のプロキシサーバノードのそれぞれからリンクパフォーマンスメトリックを受信することであって、前記複数のプロキシサーバノードのそれぞれが、前記複数のプロキシサーバノード内の2つ以上の他のノードのそれぞれへのリンクを介して前記メッシュネットワークの一部を形成し、前記リンクパフォーマンスメトリックが複数のリンクパフォーマンスメトリックタイプを表す、受信することと、
前記経路管理ハブによって、前記リンクパフォーマンスメトリックの受信に応じて、複数のメトリックタイプのそれぞれ及び/又はメトリックタイプの組み合わせに関する最適な経路を判定するために、前記受信したリンクパフォーマンスメトリックを使用して前記複数のプロキシサーバノード内のそれぞれの第1のノードと第2のノードとの間の複数の潜在的な経路を評価することと、
前記経路管理ハブによって、サービスで優先される1つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストを判定することと、
前記経路管理ハブによって、前記判定されたコンテキストの前記1つ又は複数のリンクパフォーマンスメトリックタイプを使用して、前記第1のノードと前記第2のノードとの間の複数の最適な経路に前記サービスのためのサービス識別子をマップすることと、
前記経路管理ハブから、前記経路管理ハブとは別個の前記第1のノードに、
前記複数の最適な経路のそれぞれに対するそれぞれのネクストホップと、
それぞれのネクストホップのそれぞれと前記サービス識別子との間のマッピングと、
を送信することと、
前記第1のノードによって、前記経路管理ハブから、前記複数の最適な経路に対して複数のネクストホップにマップされた前記サービス識別子を受信することと、
前記第1のノードによって、前記サービスとの第1のコネクションのトラフィックを受信することと、
前記第1のノードによって、前記受信したトラフィックが前記サービスのためのものであるとの判定に応じて、前記複数の最適な経路に対する前記複数のネクストホップの前記サービス識別子にマップされた第1のネクストホップを選択することと、
前記第1のノードによって、前記受信したトラフィックを前記選択された第1のネクストホップに転送することと、
前記第1のノードによって、前記複数のネクストホップのそれぞれを介して前記サービスのトラフィックに関するリンクパフォーマンスメトリックを追跡することと、
前記第1のノードによって、前記第1のノードによって追跡された前記リンクパフォーマンスメトリックを使用して、前記経路管理ハブから受信した前記複数のネクストホップの前記サービス識別子にマップされた第2のネクストホップが、前記追跡されたリンクパフォーマンスメトリックのうちの少なくとも1つにおいて前記第1のネクストホップよりも優れていると判定することと、
前記第1のノードによって、前記サービスとの第2のコネクションのトラフィックを受信することと、
前記第1のノードによって、前記第2のネクストホップが前記第1のネクストホップよりも優れているとの判定に応じて、前記サービスとの前記第2のコネクションの前記受信したトラフィックを前記第2のネクストホップに転送することと、
を含む、コンピュータ実施方法。
【請求項2】
前記第1のノードによって前記経路管理ハブに、
前記第1のノードが前記サービスのトラフィックを転送するために前記第2のネクストホップを使用する指示と、
前記追跡されたリンクパフォーマンスメトリックと、
を送信すること
をさらに含む、請求項
1に記載のコンピュータ実施方法。
【請求項3】
前記第1のノードによって、前記複数のネクストホップのそれぞれを介して前記サービスのトラフィックに関するリンクパフォーマンスメトリックを追跡することであって、前記第1のノードによって追跡される前記リンクパフォーマンスメトリックが、コネクションごとに、一定期間に前記サービスに差し向けられたバイト数及び一定期間に前記サービスから受信したバイト数を含む、追跡することと、
前記第1のノードによって、前記第1のノードによって追跡された前記リンクパフォーマンスメトリックを使用して、前記サービスに差し向けられたバイト数の前記サービスから受信したバイト数に対する比が第1の閾値を上回ると判定することと、
前記第1のノードによって、前記サービスとの第2のコネクションのトラフィックを受信することと、
前記第1のノードによって、前記比が前記第1の閾値を上回るとの判定に応じて、前記サービスとの前記第2のコネクションの前記受信したトラフィックを第2のネクストホップに転送することと、
をさらに含む、請求項1に記載のコンピュータ実施方法。
【請求項4】
前記第1のノードによって、前記複数のネクストホップのそれぞれを介して前記サービスのトラフィックに関するリンクパフォーマンスメトリックを追跡することであって、前記第1のノードによって追跡される前記リンクパフォーマンスメトリックが、コネクションごとに、一定期間に前記サービスに差し向けられたバイト数及び一定期間に前記サービスから受信したバイト数を含む、追跡することと、
前記第1のノードによって、前記第1のノードによって追跡された前記リンクパフォーマンスメトリックを使用して、前記サービスに差し向けられたバイト数の前記サービスから受信したバイト数に対する比が第1の並べ替え基準を満たすか否かを判定することと、
前記第1のノードによって、前記サービスとの第2のコネクションのトラフィックを受信することと、
前記第1のノードによって、前記サービスに差し向けられたバイト数の前記サービスから受信したバイト数に対する前記比が前記第1の並べ替え基準を満たすとの判定に応じて、前記サービスとの前記第2のコネクションの前記受信したトラフィックを第2のネクストホップに転送することと、
をさらに含む、請求項1に記載のコンピュータ実施方法。
【請求項5】
前記第1のノードによって、前記第1のネクストホップを介して前記サービスのための前記第1のコネクションの前記トラフィックに関するリンクパフォーマンスメトリックを追跡することと、
前記第1のノードによって、前記第1のノードによって追跡された前記リンクパフォーマンスメトリックを使用して、前記第1のコネクションに関する前記リンクパフォーマンスメトリックのうちの少なくとも1つが第2の閾値を上回ると判定することと、
前記第1のノードによって、前記サービスとの第2のコネクションのトラフィックを受信することと、
前記第1のノードによって、前記第1のコネクションに関する前記少なくとも1つのリンクパフォーマンスメトリックが前記第2の閾値を上回るとの判定に応じて、前記サービスとの前記第2のコネクションの前記受信したトラフィックを第2のネクストホップに転送することと、
をさらに含む、請求項1に記載のコンピュータ実施方法。
【請求項6】
前記第1のノードによって、前記第1のネクストホップを介して前記サービスのための前記第1のコネクションの前記トラフィックに関するリンクパフォーマンスメトリックを追跡することと、
前記第1のノードによって、前記第1のノードによって追跡された前記リンクパフォーマンスメトリックを使用して、前記第1のコネクションに関する前記リンクパフォーマンスメトリックのうちの少なくとも1つが第2の並べ替え基準を満たすと判定することと、
前記第1のノードによって、前記サービスとの第2のコネクションのトラフィックを受信することと、
前記第1のノードによって、前記第1のコネクションに関する前記少なくとも1つのリンクパフォーマンスメトリックが前記第2の並べ替え基準を満たすとの判定に応じて、前記サービスとの前記第2のコネクションの前記受信したトラフィックを第2のネクストホップに転送することと、
をさらに含む、請求項1に記載のコンピュータ実施方法。
【請求項7】
前記リンクパフォーマンスメトリックが、コネクションごとに、一定期間に各サービスに差し向けられたバイト数及び一定期間に各サービスから受信したバイト数を含み、前記方法が、
前記経路管理ハブによって、前記リンクパフォーマンスメトリックを使用して、前記サービスに差し向けられたバイト数の前記サービスから受信したバイト数に対する比が第3の閾値を上回るか否かを判定することと、
前記経路管理ハブによって、前記サービスに差し向けられたバイト数の前記サービスから受信したバイト数に対する前記比が前記第3の閾値を上回るとの判定に応じて、1つ又は複数のリンクパフォーマンスメトリックタイプを表す前記コンテキストを選択することと、
をさらに含む、請求項1に記載のコンピュータ実施方法。
【請求項8】
前記リンクパフォーマンスメトリックが、コネクションごとに、一定期間に各サービスに差し向けられたバイト数及び一定期間に各サービスから受信したバイト数を含み、前記方法が、
前記経路管理ハブによって、前記リンクパフォーマンスメトリックを使用して、前記サービスに差し向けられたバイト数の前記サービスから受信したバイト数に対する比がコンテキスト調整基準を満たすか否かを判定することと、
前記経路管理ハブによって、前記サービスに差し向けられたバイト数の前記サービスから受信したバイト数に対する前記比が前記コンテキスト調整基準を満たすとの判定に応じて、1つ又は複数のリンクパフォーマンスメトリックタイプを表す前記コンテキストを選択することと、
をさらに含む、請求項1に記載のコンピュータ実施方法。
【請求項9】
前記経路管理ハブから前記第1のノードに送信される前記複数の最適な経路に対して前記ネクストホップにマップされる前記サービス識別子が、前記1つ又は複数のリンクパフォーマンスメトリックタイプを表す前記コンテキストへのマッピングを含む、請求項1から
8のいずれか一項に記載のコンピュータ実施方法。
【請求項10】
前記複数のリンクパフォーマンスメトリックタイプが、帯域幅、1秒当たりの要求、パケット損失、ジッタ、及びレイテンシのうちの1つ又は複数を含む、請求項1から
9のいずれか一項に記載のコンピュータ実施方法。
【請求項11】
前記サービスで優先される前記1つ又は複数のリンクパフォーマンスメトリックタイプを表す前記コンテキストを判定することが、前記経路管理ハブによって、前記コンテキストの選択を受信することを含む、請求項1から
10のいずれか一項に記載のコンピュータ実施方法。
【請求項12】
命令を格納する非一時的コンピュータ可読媒体であって、前記命令は、処理装置によって実行されると、請求項1から
11のいずれか一項に記載の方法を前記処理装置に実行させる、非一時的コンピュータ可読媒体。
【請求項13】
経路管理ハブを備えたシステムであって、前記経路管理ハブが、第1の処理装置と前記第1の処理装置に接続された第1のメモリとを備え、前記第1のメモリが、前記第1の処理装置によって実行されると、請求項1から
11のいずれか一項に記載の方法を前記経路管理ハブに行わせる命令を格納する、システム。
【発明の詳細な説明】
【技術分野】
【0001】
発明の分野
[0001] 本明細書で説明される様々な実施形態は、メッシュネットワークのための経路の計算及び選択に関する。詳細には、実施形態は、トラフィックのコンテキストに基づいて最適な経路を動的に計算及び選択することにより、プロキシサーバのメッシュネットワークを介してアプリケーション又はデータコンテンツを配信する。
【発明の概要】
【発明が解決しようとする課題】
【0002】
簡単な概要
[0002] ネットワークトラフィックの伝送経路を選択するための装置及び方法が必要とされている。このようなシステム及び方法は、伝送経路を選択するための従来のシステムを任意で補完したりその代わりになったりする。
【課題を解決するための手段】
【0003】
[0003] いくつかの実施形態によれば、方法が、経路管理ハブによって、メッシュネットワークを形成する複数のプロキシサーバノードのそれぞれからリンクパフォーマンスメトリックを受信することを含む。複数のノードのそれぞれは、複数のノード内の2つ以上の他のノードのそれぞれへのリンクを介してメッシュネットワークの一部を形成する。リンクパフォーマンスメトリックは、複数のパフォーマンスメトリックタイプを表す。本方法はまた、経路管理ハブによって、リンクパフォーマンスメトリックの受信に応じて、複数のメトリックタイプのそれぞれ及び/又はメトリックタイプの組み合わせに関する最適な経路を判定するために、受信したリンクパフォーマンスメトリックを使用して複数のノード内のそれぞれの第1のノードと第2のノードとの間の複数の潜在的な経路を評価することを含む。本方法はまた、経路管理ハブによって、サービスで優先される1つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストを判定することを含む。本方法はまた、経路管理ハブによって、判定されたコンテキストの1つ又は複数のリンクパフォーマンスメトリックタイプを使用して、第1のノードと第2のノードとの間の複数の判定された最適な経路にサービスのためのサービス識別子をマップすることを含む。本方法はまた、経路管理ハブから第1のノードに、複数のマップされた最適な経路のそれぞれに対するそれぞれのネクストホップと、それぞれのネクストホップのそれぞれとサービス識別子との間のマッピングと、を送信することを含む。本方法はまた、第1のノードによって、経路管理ハブから、複数のマップされた最適な経路に対して複数のネクストホップにマップされたサービス識別子を受信することを含む。本方法はまた、第1のノードによって、サービスとの第1のコネクションのトラフィックを受信することを含む。本方法はまた、第1のノードによって、受信したトラフィックがサービスのためのものであるとの判定に応じて、複数のマップされた最適な経路に対する複数のネクストホップのサービス識別子にマップされた第1のネクストホップを選択することを含む。本方法はまた、第1のノードによって、受信したトラフィックを選択された第1のネクストホップに転送することを含む。
【0004】
[0004] いくつかの実施形態では、本方法はまた、第1のノードによって、複数のネクストホップのそれぞれを介してサービスのトラフィックに関するリンクパフォーマンスメトリックを追跡することを含む。本方法はまた、第1のノードによって、第1のノードによって追跡されたリンクパフォーマンスメトリックを使用して、経路管理ハブから受信した複数のネクストホップのサービス識別子にマップされた第2のネクストホップが、追跡されたパフォーマンスメトリックのうちの少なくとも1つにおいて第1のネクストホップよりも優れていると判定することを含む。本方法はまた、第1のノードによって、サービスとの第2のコネクションのトラフィックを受信することを含む。本方法はまた、第1のノードによって、第2のネクストホップが第1のネクストホップよりも優れているとの判定に応じて、サービスとの第2のコネクションの受信したトラフィックを第2のネクストホップに転送することを含む。
【0005】
[0005] いくつかの実施形態では、本方法はまた、第1のノードによって経路管理ハブに、第1のノードがサービスのトラフィックを転送するために第2のネクストホップを使用する指示と、追跡されたリンクパフォーマンスメトリックと、を送信することを含む。
【0006】
[0006] いくつかの実施形態では、本方法はまた、第1のノードによって、複数のネクストホップのそれぞれを介してサービスのトラフィックに関するリンクパフォーマンスメトリックを追跡することであって、第1のノードによって追跡されるリンクパフォーマンスメトリックは、コネクションごとに、一定期間にサービスに差し向けられたバイト数及び一定期間にサービスから受信したバイト数を含む、追跡することを含む。本方法はまた、第1のノードによって、第1のノードによって追跡されたリンクパフォーマンスメトリックを使用して、サービスに差し向けられたバイト数のサービスから受信したバイト数に対する比が第1の閾値を上回ると判定することを含む。本方法はまた、第1のノードによって、サービスとの第2のコネクションのトラフィックを受信することを含む。本方法はまた、第1のノードによって、上記比が第1の閾値を上回るとの判定に応じて、サービスとの第2のコネクションの受信したトラフィックを第2のネクストホップに転送することを含む。
【0007】
[0007] いくつかの実施形態では、本方法はまた、第1のノードによって、複数のネクストホップのそれぞれを介してサービスのトラフィックに関するリンクパフォーマンスメトリックを追跡することであって、第1のノードによって追跡されるリンクパフォーマンスメトリックは、コネクションごとに、一定期間にサービスに差し向けられたバイト数及び一定期間にサービスから受信したバイト数を含む、追跡することを含む。本方法はまた、第1のノードによって、第1のノードによって追跡されたリンクパフォーマンスメトリックを使用して、サービスに差し向けられたバイト数のサービスから受信したバイト数に対する比が第1の並べ替え基準を満たすか否かを判定することを含む。本方法はまた、第1のノードによって、サービスとの第2のコネクションのトラフィックを受信することを含む。本方法はまた、第1のノードによって、サービスに差し向けられたバイト数のサービスから受信したバイト数に対する比が第1の並べ替え基準を満たすとの判定に応じて、サービスとの第2のコネクションの受信したトラフィックを第2のネクストホップに転送することを含む。
【0008】
[0008] いくつかの実施形態では、本方法はまた、第1のノードによって、第1のネクストホップを介してサービスのための第1のコネクションのトラフィックに関するリンクパフォーマンスメトリックを追跡することを含む。本方法はまた、第1のノードによって、第1のノードによって追跡されたリンクパフォーマンスメトリックを使用して、第1のコネクションに関するリンクパフォーマンスメトリックのうちの少なくとも1つが第2の閾値を上回ると判定することを含む。本方法はまた、第1のノードによって、サービスとの第2のコネクションのトラフィックを受信することを含む。本方法はまた、第1のノードによって、第1のコネクションに関する少なくとも1つのリンクパフォーマンスメトリックが第2の閾値を上回るとの判定に応じて、サービスとの第2のコネクションの受信したトラフィックを第2のネクストホップに転送することを含む。
【0009】
[0009] いくつかの実施形態では、本方法はまた、第1のノードによって、第1のネクストホップを介してサービスのための第1のコネクションのトラフィックに関するリンクパフォーマンスメトリックを追跡することを含む。本方法はまた、第1のノードによって、第1のノードによって追跡されたリンクパフォーマンスメトリックを使用して、第1のコネクションに関するリンクパフォーマンスメトリックのうちの少なくとも1つが第2の並べ替え基準を満たすと判定することを含む。本方法はまた、第1のノードによって、サービスとの第2のコネクションのトラフィックを受信することを含む。本方法はまた、第1のノードによって、第1のコネクションに関する少なくとも1つのリンクパフォーマンスメトリックが第2の並べ替え基準を満たすとの判定に応じて、サービスとの第2のコネクションの受信したトラフィックを第2のネクストホップに転送することを含む。
【0010】
[0010] いくつかの実施形態では、リンクパフォーマンスメトリックは、コネクションごとに、一定期間に各サービスに差し向けられたバイト数及び一定期間に各サービスから受信したバイト数を含む。本方法はまた、経路管理ハブによって、リンクパフォーマンスメトリックを使用して、サービスに差し向けられたバイト数のサービスから受信したバイト数に対する比が第3の閾値を上回るか否かを判定することを含む。本方法はまた、経路管理ハブによって、サービスに差し向けられたバイト数のサービスから受信したバイト数に対する比が第3の閾値を上回るとの判定に応じて、1つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストを選択することを含む。
【0011】
[0011] いくつかの実施形態では、リンクパフォーマンスメトリックは、コネクションごとに、一定期間に各サービスに差し向けられたバイト数及び一定期間に各サービスから受信したバイト数を含む。本方法はまた、経路管理ハブによって、リンクパフォーマンスメトリックを使用して、サービスに差し向けられたバイト数のサービスから受信したバイト数に対する比がコンテキスト調整基準を満たすか否かを判定することを含む。本方法はまた、経路管理ハブによって、サービスに差し向けられたバイト数のサービスから受信したバイト数に対する比がコンテキスト調整基準を満たすとの判定に応じて、1つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストを選択することを含む。
【0012】
[0012] いくつかの実施形態では、経路管理ハブから第1のノードに送信される複数の最適な経路に対してネクストホップにマップされるサービス識別子は、1つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストへのマッピングを含む。
【0013】
[0013] いくつかの実施形態では、複数のリンクパフォーマンスメトリックタイプは、帯域幅、1秒当たりの要求、パケット損失、ジッタ、及びレイテンシのうちの1つ又は複数を含む。
【0014】
[0014] いくつかの実施形態では、サービスで優先される1つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストを判定することは、経路管理ハブによって、コンテキストの選択を受信することを含む。
【0015】
[0015] いくつかの実施形態によれば、非一時的コンピュータ可読媒体は、処理装置によって実行されると、処理装置に方法を実行させる命令を格納する。本方法は、経路管理ハブによって、メッシュネットワークを形成する複数のプロキシサーバノードのそれぞれからリンクパフォーマンスメトリックを受信することを含む。複数のノードのそれぞれは、複数のノード内の2つ以上の他のノードのそれぞれへのリンクを介してメッシュネットワークの一部を形成する。リンクパフォーマンスメトリックは、複数のパフォーマンスメトリックタイプを表す。本方法はまた、経路管理ハブによって、リンクパフォーマンスメトリックの受信に応じて、複数のメトリックタイプのそれぞれ及び/又はメトリックタイプの組み合わせに関する最適な経路を判定するために、受信したリンクパフォーマンスメトリックを使用して複数のノード内のそれぞれの第1のノードと第2のノードとの間の複数の潜在的な経路を評価することを含む。本方法はまた、経路管理ハブによって、サービスで優先される1つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストを判定することを含む。本方法はまた、経路管理ハブによって、判定されたコンテキストの1つ又は複数のリンクパフォーマンスメトリックタイプを使用して、第1のノードと第2のノードとの間の複数の判定された最適な経路にサービスのためのサービス識別子をマップすることを含む。本方法はまた、経路管理ハブから第1のノードに、複数のマップされた最適な経路のそれぞれに対するそれぞれのネクストホップと、それぞれのネクストホップのそれぞれとサービス識別子との間のマッピングと、を送信することを含む。本方法はまた、第1のノードによって、経路管理ハブから、複数のマップされた最適な経路に対して複数のネクストホップにマップされたサービス識別子を受信することを含む。本方法はまた、第1のノードによって、サービスとの第1のコネクションのトラフィックを受信することを含む。本方法はまた、第1のノードによって、受信したトラフィックがサービスのためのものであるとの判定に応じて、複数のマップされた最適な経路に対する複数のネクストホップのサービス識別子にマップされた第1のネクストホップを選択することを含む。本方法はまた、第1のノードによって、受信したトラフィックを選択された第1のネクストホップに転送することを含む。
【0016】
[0016] いくつかの実施形態では、命令は、処理装置に、第1のノードによって、複数のネクストホップのそれぞれを介してサービスのトラフィックに関するリンクパフォーマンスメトリックを追跡させる。命令はまた、処理装置に、第1のノードによって、第1のノードによって追跡されたリンクパフォーマンスメトリックを使用して、経路管理ハブから受信した複数のネクストホップのサービス識別子にマップされた第2のネクストホップが、追跡されたパフォーマンスメトリックのうちの少なくとも1つにおいて第1のネクストホップよりも優れていると判定させる。命令はまた、処理装置に、第1のノードによって、サービスとの第2のコネクションのトラフィックを受信させる。命令はまた、処理装置に、第1のノードによって、第2のネクストホップが第1のネクストホップよりも優れているとの判定に応じて、サービスとの第2のコネクションの受信したトラフィックを第2のネクストホップに転送させる。
【0017】
[0017] いくつかの実施形態では、命令はまた、処理装置に、第1のノードによって経路管理ハブに、第1のノードがサービスのトラフィックを転送するための第2のネクストホップを使用する指示と、追跡されたリンクパフォーマンスメトリックと、を送信させる。
【0018】
[0018] いくつかの実施形態では、命令はまた、処理装置に、第1のノードによって、複数のネクストホップのそれぞれを介してサービスのトラフィックに関するリンクパフォーマンスメトリックを追跡させる。第1のノードによって追跡されるリンクパフォーマンスメトリックは、コネクションごとに、一定期間にサービスに差し向けられたバイト数及び一定期間にサービスから受信したバイト数を含む。命令はまた、処理装置に、第1のノードによって、第1のノードによって追跡されたリンクパフォーマンスメトリックを使用して、サービスに差し向けられたバイト数のサービスから受信したバイト数に対する比が第1の並べ替え基準を満たすと判定させる。命令はまた、処理装置に、第1のノードによって、サービスとの第2のコネクションのトラフィックを受信させる。命令はまた、処理装置に、第1のノードによって、サービスに差し向けられたバイト数のサービスから受信したバイト数に対する比が並べ替え基準を満たすとの判定に応じて、サービスとの第2のコネクションの受信したトラフィックを第2のネクストホップに転送させる。
【0019】
[0019] いくつかの実施形態では、命令はまた、処理装置に、第1のノードによって、第1のホップを介してサービスのための第1のコネクションのトラフィックに関するリンクパフォーマンスメトリックを追跡させる。命令はまた、処理装置に、第1のノードによって、第1のノードによって追跡されたリンクパフォーマンスメトリックを使用して、第1のコネクションに関するリンクパフォーマンスメトリックのうちの少なくとも1つが第2の並べ替え基準を満たすと判定させる。命令はまた、処理装置に、第1のノードによって、サービスとの第2のコネクションのトラフィックを受信させる。命令はまた、処理装置に、第1のノードによって、第1のコネクションに関する少なくとも1つのリンクパフォーマンスメトリックが第2の並べ替え基準を満たすとの判定に応じて、サービスとの第2のコネクションの受信したトラフィックを第2のネクストホップに転送させる。
【0020】
[0020] いくつかの実施形態では、リンクパフォーマンスメトリックは、コネクションごとに、一定期間に各サービスに差し向けられたバイト数及び一定期間に各サービスから受信したバイト数を含む。命令はまた、処理装置に、経路管理ハブによって、リンクパフォーマンスメトリックを使用して、サービスに差し向けられたバイト数のサービスから受信したバイト数に対する比がコンテキスト調整基準を満たすか否かを判定させる。命令はまた、処理装置に、経路管理ハブによって、サービスに差し向けられたバイト数のサービスから受信したバイト数に対する比がコンテキスト調整基準を満たすとの判定に応じて、1つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストを選択させる。
【0021】
[0021] いくつかの実施形態では、経路管理ハブから第1のノードに送信される複数の最適な経路に対してネクストホップにマップされるサービス識別子は、1つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストへのマッピングを含む。
【0022】
[0022] いくつかの実施形態では、複数のリンクパフォーマンスメトリックタイプは、帯域幅、1秒当たりの要求、パケット損失、ジッタ、及びレイテンシのうちの1つ又は複数を含む。
【0023】
[0023] いくつかの実施形態では、サービスで優先される1つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストを判定することは、経路管理ハブによって、コンテキストの選択を受信することを含む。
【0024】
[0024] いくつかの実施形態によれば、システムが、第1の処理装置と第1の処理装置に接続された第1のメモリとを備える経路管理ハブを備える。第1のメモリは、第1の処理装置によって実行されると、経路管理ハブに、メッシュネットワークを形成する複数のプロキシサーバノードのそれぞれからリンクパフォーマンスメトリックを受信させる命令を格納する。複数のノードのそれぞれは、複数のノード内の2つ以上の他のノードのそれぞれへのリンクを介してメッシュネットワークの一部を形成する。リンクパフォーマンスメトリックは、複数のパフォーマンスメトリックタイプを表す。第1のメモリの命令はまた、経路管理ハブに、リンクパフォーマンスメトリックの受信に応じて、複数のメトリックタイプのそれぞれ及び/又はメトリックタイプの組み合わせに関する最適な経路を判定するために、受信したリンクパフォーマンスメトリックを使用して複数のノード内のそれぞれの第1のノードと第2のノードとの間の複数の潜在的な経路を評価させる。第1のメモリの命令はまた、経路管理ハブに、サービスで優先される1つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストを判定させる。第1のメモリの命令はまた、経路管理ハブに、判定されたコンテキストの1つ又は複数のリンクパフォーマンスメトリックタイプを使用して、第1のノードと第2のノードとの間の複数の判定された最適な経路にサービスのためのサービス識別子をマップさせる。第1のメモリの命令はまた、経路管理ハブに、複数のマップされた最適な経路のそれぞれに対するそれぞれのネクストホップと、それぞれのネクストホップのそれぞれとサービス識別子との間のマッピングと、を第1のノードに送信させる。第1のノードは、第2の処理装置と第2の処理装置に接続された第2のメモリとを備える。第2のメモリは、第2の処理装置によって実行されると、第1のノードに、経路管理ハブから、複数のマップされた最適な経路に対して複数のネクストホップにマップされたサービス識別子を受信させる命令を格納する。第2のメモリの命令はまた、第1のノードに、サービスとの第1のコネクションのトラフィックを受信させる。第2のメモリの命令はまた、第1のノードに、受信したトラフィックがサービスのためのものであるとの判定に応じて、複数のマップされた最適な経路に対する複数のネクストホップのサービス識別子にマップされた第1のネクストホップを選択させる。第2のメモリの命令はまた、第1のノードに、受信したトラフィックを選択された第1のネクストホップに転送させる。
【0025】
[0025] いくつかの実施形態では、第2のメモリに格納された命令の実行はさらに、第1のノードに、複数のネクストホップのそれぞれを介してサービスのトラフィックに関するリンクパフォーマンスメトリックを追跡させる。第2のメモリに格納された命令はまた、第1のノードに、第1のノードによって追跡されたリンクパフォーマンスメトリックを使用して、経路管理ハブから受信した複数のネクストホップのサービス識別子にマップされた第2のネクストホップが、追跡されたパフォーマンスメトリックのうちの少なくとも1つにおいて第1のネクストホップよりも優れていると判定させる。第2のメモリに格納された命令はまた、第1のノードに、サービスとの第2のコネクションのトラフィックを受信させる。第2のメモリに格納された命令はまた、第1のノードに、第2のネクストホップが第1のネクストホップよりも優れているとの判定に応じて、サービスとの第2のコネクションの受信したトラフィックを第2のネクストホップに転送させる。
【0026】
[0026] いくつかの実施形態によれば、コンピュータ実施方法が、経路管理ハブによって、メッシュネットワークを形成する複数のプロキシサーバノードのそれぞれからリンクパフォーマンスメトリックを受信することを含む。複数のノードのそれぞれは、複数のノード内の2つ以上の他のノードのそれぞれへのリンクを介してメッシュネットワークの一部を形成する。リンクパフォーマンスメトリックは、複数のパフォーマンスメトリックタイプを表す。本方法はまた、経路管理ハブによって、リンクパフォーマンスメトリックの受信に応じて、複数のメトリックタイプのそれぞれ及び/又はメトリックタイプの組み合わせに関する最適な経路を判定するために、受信したリンクパフォーマンスメトリックを使用して複数のノード内のそれぞれの第1のノードと第2のノードとの間の複数の潜在的な経路を評価することを含む。本方法はまた、経路管理ハブによって、サービスで優先される1つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストを判定することを含む。本方法はまた、経路管理ハブによって、判定されたコンテキストの1つ又は複数のリンクパフォーマンスメトリックタイプを使用して、第1のノードと第2のノードとの間の複数の判定された最適な経路にサービスのためのサービス識別子をマップすることを含む。本方法はまた、経路管理ハブから第1のノードに、複数のマップされた最適な経路のそれぞれに対するそれぞれのネクストホップと、それぞれのネクストホップのそれぞれとサービス識別子との間のマッピングと、を送信することを含む。
【背景技術】
【0027】
発明の背景
[0027] コンテンツ配信ネットワーク(CDN)は、高い可用性及び高いパフォーマンスでエンドユーザにコンテンツを提供することを目的としている。特に、CDNは、コンテンツをキャッシュして提供するために、地理的に多様な複数のデータセンタにプロキシサーバを配備する。コンテンツが要求されると、要求は、例えば、必要なホップ数が最も少ないノード、コンテンツを要求するクライアントからネットワーク秒数が最小のノードなどに差し向けられる。通常、これによりクライアントに最も近いエッジノードが選択される。例えば、電気通信サービスプロバイダ(TSP)ネットワーク内のプロキシサーバは、コンテンツをキャッシュしてTSPの顧客に提供して、ネットワークバックボーンに対する需要を減らし、コンテンツを迅速且つ確実に配信する。しかしながら、どのようなクライアントの近くにもプロキシサーバがある機会を最大化するために多くの場所でコンテンツをキャッシュすると、多大なコストが発生し得る。
【0028】
図面の簡単な説明
[0028] 本実施形態は、添付の図面内の図において限定ではなく例として示されており、添付の図面においては、同様の参照番号は同様の要素を指示している。
【図面の簡単な説明】
【0029】
【
図1】[0029]コンテキストアウェア型の経路計算を実施するプロキシサーバの例示的なメッシュネットワークを示すブロック図である。
【
図2】[0030]コンテキストアウェア型の経路の計算及び選択の例示的な方法を示すフローチャートである。
【
図3】[0031]サービスで優先される1つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストを判定するために使用される例示的なトラフィックフローを示す図である。
【
図4】[0031]サービスで優先される1つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストを判定するために使用される例示的なトラフィックフローを示す図である。
【
図5】[0031]サービスで優先される1つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストを判定するために使用される例示的なトラフィックフローを示す図である。
【
図6】[0031]サービスで優先される1つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストを判定するために使用される例示的なトラフィックフローを示す図である。
【発明を実施するための形態】
【0030】
詳細な説明
[0032] 本明細書は、トラフィックのコンテキストに基づいて最適な経路を動的に計算及び選択することにより、プロキシサーバのメッシュネットワークを介してアプリケーション又はデータコンテンツを配信する実施形態を説明する。最適な経路が、メッシュベースを構成するプロキシサーバノードから受信したリンクパフォーマンスメトリックを使用して、またサービスベースのコンテキストに基づいて、経路管理ハブによって選択される。経路管理ハブは、ある場所における又は複数の場所にわたる単一のサーバ又は分散システムとして実装され得る。各サービスベースのコンテキストが、そのサービスで優先される1つ又は複数のリンクパフォーマンスメトリックタイプを表す。いくつかの実施形態では、サービスの管理者が特定のコンテキストの選択を提供する。いくつかの実施形態では、ハブが、デフォルト設定にコンテキストを設定するか、サービスのトラフィックフローパターンの評価に基づいてコンテキストを設定する。最適な経路を選択する一例として、経路管理ハブは、メッシュネットワークを通る潜在的な経路に沿ったリンクの様々なパフォーマンスメトリックを使用して有向グラフを計算し、各サービスベースのコンテキストに基づいて複数の経路を最適な経路として選択することができる。経路管理ハブは、コンテキストベースの最適な経路を対応するサービスにマップする。
【0031】
[0033] 最適な経路が選択されてマップされると、経路管理ハブはネクストホップ情報をノードに配信する。いくつかの実施形態では、所与のサービスのトラフィックを受信するノードは、マッピングを使用して、経路管理ハブによって提供されるネクストホップを選択し、そのネクストホップにトラフィックを転送する。いくつかの実施形態では、1つ又は複数のノードがリンクパフォーマンスメトリックを追跡して、経路管理ハブに報告を返す。いくつかの実施形態では、ノードは追跡されたリンクパフォーマンスメトリックを使用して、単一のサービスにマッピングされた複数のネクストホップから選択する。
【0032】
[0034] その結果、実施形態により、高いパフォーマンスを提供するためにコンテンツをキャッシュしたりアプリケーションをホストしたりするために必要な場所の数が削減される。それどころか、実施形態により、プロキシサーバのメッシュを通る経路のインテリジェントな選択を使用して、アプリケーション又はデータコンテンツを配信する際に高いパフォーマンスが達成される。加えて、実施形態は、ハブのメッシュネットワークのグローバルビューに基づく帯域外経路選択、及び個々のノードのパフォーマンスメトリックの評価に基づく帯域内選択を使用する。
【0033】
[0035]
図1は、コンテキストアウェア型の経路計算を実施するプロキシサーバノード105(例えば、ノード105a、105b、105c、105d、105e、105f、105g、105h、105i、105j、105k、及び105l)の例示的なメッシュネットワーク100をブロック図形式で示している。いくつかの実施形態では、メッシュネットワーク100は、コンテンツ配信ネットワーク(CDN)及び/又はアプリケーション配信ネットワーク(ADN)である。メッシュネットワーク100は、複数のデータセンタに配備された地理的に分散した一式のプロキシサーバノード105を含む。メッシュネットワーク100は、図示されているよりも多い又は少ないノード105を含むことができる。
【0034】
[0036] いくつかの実施形態では、それぞれのノード105は(例えば、ノード105aによって示されるように)ハードウェア110を備える。ハードウェア110は、1つ又は複数のプロセッサ(「CPU」)と、データストレージ及びメモリ(例えば、「RAM」)と、ネットワークインターフェースコントローラ(「NIC」)とを備える。データストレージ及びメモリは、プロセッサで実行するためのデータ、メタデータ、及びプログラム(例えば、リンク評価モジュール115、DNSモジュール120、転送モジュール125、及び/又は経路計算モジュール130)を格納するために使用され得る。いくつかの実施形態では、データストレージ及びメモリは、ランダムアクセスメモリ(「RAM」)、読み取り専用メモリ(「ROM」)、ソリッドステートディスク(「SSD」)、フラッシュ、相変化メモリ(「PCM」)、及び/又は磁気ディスクドライブ、光ディスクドライブなどの他の種類のデータストレージなどの揮発性メモリ及び不揮発性メモリのうちの1つ又は複数を含み得る。いくつかの実施形態では、メモリは内部メモリ及び/又は分散メモリを含む。いくつかの実施形態では、1つ又は複数のバス(図示せず)がハードウェア110の様々なコンポーネントを相互接続する。いくつかの実施形態では、NICは、有線及び/又は無線ネットワークを介して、ノード105(例えば、ノード105a~105l)のうちのもう1つを他のノード105、メッシュネットワーク100の外部のクライアント装置、及び/又はメッシュネットワーク100の外部のサーバ装置に接続する。
【0035】
[0037] いくつかの実施形態では、それぞれのノードは(例えば、ノード105aによって示されるように)複数のモジュールを備える。これらのモジュールのそれぞれは、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの組み合わせで実現され得る。リンク評価モジュール115は、ノード105(例えば、ノード105a~105l)間のメトリックを追跡する。例えば、第1のノードのリンク評価モジュール115は、第1のノードを通してサービスに送信されたコネクションごとの1秒当たりのバイト数と、第1のノードによってサービスから受信されたコネクションごとの1秒当たりのバイト数とを追跡し得る。いくつかの実施形態では、これらのメトリックは、クライアントとサービスとの間のコネクションの際のデータフロー特性の表現を提供する。
図3~
図6を参照して例示的なデータフロー特性をさらに詳細に説明する。いくつかの実施形態では、リンク評価モジュール115は、コネクションごとの1秒当たりの要求、ネットワークアドレスごとの受信パケット損失、ネットワークアドレスごとの送信パケット損失、ネットワークアドレスごとのレイテンシ、ネットワークアドレスごとの帯域幅、ネットワークアドレスごとのジッタ、ネットワーク使用率、トラフィックコンテンツ(例えば、送信中のヘッダ、パケット、又は他のデータ/メタデータの検査による)、様々な要求及び/又は応答のレイテンシ(例えば、HTMLページ、JavaScript、CSS、画像、API、及び/又はメディアの要求及び/又は応答)などのうちの1つ又は複数を含む、他のメトリックタイプを追跡する。
【0036】
[0038] リンク評価モジュール115は、追跡されたメトリックをハードウェア110内のデータストレージ又はメモリに格納する。加えて、リンク評価モジュール115は、ハードウェア110内のNICを使用して、追跡されたメトリックを経路管理ハブに送信する。いくつかの実施形態では、リンク評価モジュール115は、1つ又は複数のメトリックを対応するトラフィックのサービスにマップする。例えば、リンク評価モジュール115は、サービスのための識別子をサービスに対して送受信されるトラフィックに関するメトリックにマップするデータストレージ又はメモリ内のデータ構造を維持し得る。例示的なサービスは、ウェブサイトのためのコンテンツの提供、ビデオのストリーミング、アプリケーションのためのデータの提供などを含む。
【0037】
[0039] いくつかの実施形態では、リンク評価モジュール115は、第1のそれぞれのノード105(例えば、ノード105a)と複数の第2のノード105(例えば、ノード105b~105l)のそれぞれとの間のメトリックを追跡するためにテストトラフィックを投入する。例えば、それぞれのノード105のそれぞれが、他のノード105のネットワークアドレスのリストとテスト送信のためのデータとを格納し得る。他のノード105にテストトラフィックを送信し、他のノード105からの応答を受信することにより、リンク評価モジュール115は、1つ又は複数のサービスに差し向けられた実際のトラフィック及び1つ又は複数のサービスから受信された実際のトラフィックの追跡に加えて、又はその代わりに他のノード105へのリンクに関するメトリックを追跡できる。
【0038】
[0040] いくつかの実施形態では、リンク評価モジュール115は、例えば
図2~
図6を参照してより詳細に説明するように、追跡されたリンクパフォーマンスメトリックを使用して、トラフィックのためのネクストホップを選択する。
【0039】
[0041] いくつかの実施形態では、それぞれのノード105は(例えば、ノード105aによって示されるように)ドメインネームシステム(DNS)モジュール120を備える。DNSモジュール120はネクストホップ情報を格納する。例えば、それぞれのノード105は、それぞれの隣接ノード105を判定し、アドレス発見プロトコルを使用してトラフィックのためのネクストホップを追跡し得る。いくつかの実施形態では、ネクストホップ情報は経路管理ハブによって提供される。例えば、本明細書でより詳細に説明するように、経路管理ハブは、サービスごとに最適な経路を判定し、それらの経路のノード105にネクストホップ情報を配信し得る。サービスのためのネクストホップ情報は、ランク付けされた順序でサービスにマップされた最適なネクストホップのリストを含み得る。いくつかの実施形態では、リンク評価モジュール115は、例えば
図2~
図6を参照してより詳細に説明するように、追跡されたリンクパフォーマンスメトリックに基づいてネクストホップのランク付けされた順序を調整する。
【0040】
[0042] いくつかの実施形態では、それぞれのノード105は(例えば、ノード105aによって示されるように)転送モジュール125を備える。転送モジュール125は、クライアント、サービス、若しくは別のノード105からトラフィックを受信する、受信したトラフィックからサービス及び/又は宛先を判定する、及び/又はDNSモジュール120によって格納されたマッピングを使用してネクストホップを選択する。
【0041】
[0043] いくつかの実施形態では、ノード105(例えば、ノード105a)は経路計算モジュール130を備える。いくつかの実施形態では、経路計算モジュール130を備えるノードは、メッシュネットワーク100のための経路管理ハブとして機能する。例えば、メッシュネットワーク100は、最適な経路を計算してノード105に配信する1つのアクティブな経路管理ハブを有し得る。
【0042】
[0044] いくつかの実施形態では、経路計算モジュール130は、メッシュネットワーク100内のノード105のレジストリを維持する。いくつかの実施形態では、経路計算モジュール130は、ノード105のそれぞれからリンクパフォーマンスメトリックを受信し、受信したリンクパフォーマンスメトリックを使用して、複数のメトリックタイプのそれぞれ又はメトリックタイプの組み合わせに関するノード105間の最適な経路を判定する。いくつかの実施形態では、経路計算モジュール130は、1つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストに関する複数の判定された最適な経路にサービス識別子をマップし、複数のマップされた最適な経路のそれぞれのためのネクストホップをネクストホップへのサービスのマッピングと共に1つ又は複数のノードに送信する。いくつかの実施形態では、経路計算モジュール130は、コンテキスト又はリンクパフォーマンスメトリックタイプをネクストホップのうちの1つ又は複数にマップし、そのマッピングを1つ又は複数のノードに送信する。経路管理ハブ内に実装されている経路計算モジュール130については、
図2~
図6を参照してより詳細に説明する。
【0043】
[0045]
図2は、コンテキストアウェア型の経路の計算及び選択の例示的な方法200を示すフローチャートである。ブロック205において、経路管理ハブは、メッシュネットワーク100内のノード105からリンクパフォーマンスメトリックデータを受信する。例えば、メッシュネットワーク100は、12個のノード105a~105lを含むものとして示されており、そのうちの1つ(例えば、ノード105a)は、経路計算モジュール130を能動的に使用することにより経路管理ハブとして機能する。それぞれのノード105のそれぞれの各リンク評価モジュール115は、そのそれぞれのノード105が送信及び/又は受信した実際のトラフィック及び/又はテストトラフィックに関するリンクパフォーマンスメトリックを追跡及び送信し、リンクパフォーマンスメトリックを経路管理ハブに送信する。いくつかの実施形態では、経路管理ハブは、(例えば、期間、評価されるコネクションの数などによって定義される)各ノード105について定期的な間隔でリンクパフォーマンスメトリックを受信する。経路管理ハブは、例えば、それぞれのノード105のそれぞれとのクライアント/サーバ通信を介して、及び/又はメッセージキューを介して、リンクパフォーマンスメトリックを受信する。受信したリンクパフォーマンスメトリックは、ノードを通してサービスに送信されるコネクションごとの1秒当たりのバイト数、ノードによってサービスから受信されたコネクションごとの1秒当たりのバイト数、送信/受信されたバイト数で表される、クライアントとサービスとの間のコネクションの際のデータフローのタイプの指示、コネクションごとの1秒当たりの要求、ネットワークアドレスごとの受信パケット損失、ネットワークアドレスごとの送信パケット損失、ネットワークアドレスごとのレイテンシ、ネットワークアドレスごとの帯域幅、ネットワークアドレスごとのジッタ、ネットワーク使用率、トラフィックコンテンツタイプ(例えば、送信中のヘッダ、パケット、又は他のデータ/メタデータの検査による)、それぞれのノード105によって判定されるサービスのためのコンテキスト/リンクパフォーマンスメトリックタイプなどのうちの1つ又は複数を含む。いくつかの実施形態では、リンクパフォーマンスメトリックは、サービス、期間、送信元アドレス、又は他の識別子、及び宛先アドレス又は他の識別子のうちの1つ又は複数にマップされる。
【0044】
[0046] ブロック210において、経路管理ハブは、メッシュネットワーク100を使用する各サービスに関する1つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストを判定する。いくつかの実施形態では、コンテキストは、サービスへのトラフィック及び/又はサービスからのトラフィックが帯域幅の影響を受けることを指示する。そのような実施形態では、経路管理ハブは、帯域幅に関して最高のパフォーマンスを提供するメッシュネットワーク100を通る経路を優先させる。いくつかの実施形態では、コンテキストは、サービスへのトラフィック及び/又はサービスからのトラフィックがレイテンシの影響を受けることを指示し得る。そのような実施形態では、経路管理ハブは、レイテンシに関して最高のパフォーマンスを提供するメッシュネットワーク100を通る経路を優先させる。コンテキストは、複数のリンクパフォーマンスメトリックタイプを表し得る。例えば、コンテキストは、サービスへのトラフィック及び/又はサービスからのトラフィックがレイテンシ及びコストの影響を受けることを指示し得る。そのような例では、経路管理ハブは、コスト効率が良い及び/又はコストの閾値を超えないものでありながらも、レイテンシに関して最高のパフォーマンスを提供するメッシュネットワーク100を通る経路を優先させる。コンテキストはこれらの例に限定されず、別のリンクパフォーマンスメトリックタイプ又はリンクパフォーマンスメトリックタイプの組み合わせを表してもよい。
【0045】
[0047] 経路管理ハブは、格納されたサービスとコンテキストとの間のマッピングをルックアップすることにより、又はノード105から受信したデータに基づいて判定を行うことにより、サービスのためのコンテキストを判定する。例えば、経路管理ハブは、コンテンツ又はアプリケーションをメッシュネットワーク100を介して配信しようとしている管理者又はサービスの他の担当者から優先されるコンテキストを受信し、格納し得る。或いは、経路管理ハブは、ノード105によって判定された優先されるコンテキストを受信し、格納してもよい。別の代替策として、経路管理ハブの判定は、事前構成されたコンテキストがないと判定することと、コンテキストをデフォルト設定に設定することとを含む。
【0046】
[0048] いくつかの実施形態では、経路管理ハブは、ノード105に基づいてコンテキストを判定し、トラフィックヘッダ/メタデータ及び/又はトラフィックペイロードデータを解析することによりトラフィックタイプを識別し、トラフィックタイプを経路管理ハブに送信する。例えば、経路管理ハブは、ノード105から、サービスのための識別子と、ノード105により判定されたそのサービスのためのトラフィックタイプとの間のマッピングを受信し得る。トラフィックタイプは、コンテンツを、例えば、画像、音声、ビデオ、アプリケーションプログラミングインターフェース(API)要求及び/又は応答、ボイスオーバーインターネットプロトコル(VoIP)コールなどに分類し得る。或いは、ノード105から受信したトラフィックタイプがトラフィックを分類してもよい。例えば、ノード105は、画像並びにAPI要求及び/又は応答をレイテンシに影響を受けるトラフィック、ストリーミングビデオを帯域幅に影響を受けるトラフィック、VoIPコールをジッタに影響を受けるトラフィックなどとして分類してもよい。
【0047】
[0049] いくつかの実施形態では、経路管理ハブは、ノード105によって検出されたデータフローパターンに基づいてコンテキストを判定する。例えば、ノード105は、例えば
図3~
図6を参照して説明されるように、データフローを追跡し、追跡されたデータフローに基づいてサービスのための識別子とトラフィックタイプとの間のマッピングを経路管理ハブに送信し得る。例えば、ノード105は、ノードを通してサービスに送信されたコネクションごとの1秒当たりのバイト数、ノードによってサービスから受信されたコネクションごとの1秒当たりのバイト数、受信パケット量、送信パケット量、受信トラフィックと送信トラフィックとの間の対称性などに基づいて、レイテンシに影響を受けるトラフィック、帯域幅に影響を受けるトラフィック、ジッタに影響を受けるトラフィックなどとしてトラフィックフローを分類できる。
【0048】
[0050] ブロック215において、経路管理ハブは、各リンクパフォーマンスメトリックタイプに関する1つ又は複数の最適な経路を計算又は他の仕方で判定する。例えば、リンクパフォーマンスネットワークの受信に応じて、経路管理ハブは、受信したリンクパフォーマンスメトリックを使用して、メッシュネットワーク100内の2つのノード105間の各リンクに値を割り当てる。各リンクパフォーマンスメトリックタイプについて、経路管理ハブは、ダイクストラのアルゴリズム又はノード105間の最短経路を判定する別のアルゴリズムへの入力としてそのパフォーマンスメトリックタイプの値を使用して、ノード105間の有向グラフを計算する。
【0049】
[0051] いくつかの実施形態では、経路管理ハブは、リンクパフォーマンスメトリックタイプの組み合わせに関する1つ又は複数の最適な経路を判定する。例えば、経路管理ハブは、複数のリンクパフォーマンスメトリックタイプを使用して、2つのノード105間の各リンクに値を割り当てることができる。いくつかの実施形態では、複数のパフォーマンスメトリックタイプを使用することは、各次元がパフォーマンスメトリックタイプを表す多次元値を作成することを含む。いくつかの実施形態では、複数のパフォーマンスメトリックタイプを使用することは、各リンクの各タイプのパフォーマンスメトリックの和、積、又は他の組み合わせを計算することを含む。いくつかの実施形態では、複数のパフォーマンスメトリックタイプを使用することは、第2のパフォーマンスメトリックタイプの閾値を超えない、又は閾値を下回らない第1のパフォーマンスメトリックタイプの最短経路を計算することを含む。
【0050】
[0052] いくつかの実施形態では、各リンクに値を割り当てることは、受信したリンクパフォーマンスメトリックを正規化することを含む。受信したリンクパフォーマンスメトリックを正規化することは、所与のリンクパフォーマンスメトリックタイプに対して高い値が最適であるか低い値が最適であるかに基づいて値を調整することを含み得る。例えば、レイテンシに関する最短経路は低レイテンシのリンクに基づいており、帯域幅に関する最短経路は高帯域幅のリンクに基づいている。加えて、受信したリンクパフォーマンスメトリックを正規化することは、リンクパフォーマンスメトリックタイプに基づいてリンクパフォーマンスメトリックを重み付けすることを含み得る。
【0051】
[0053] いくつかの実施形態では、最適な経路を判定する際に、経路管理は、各リンクパフォーマンスメトリックタイプについてノード105間の複数の経路をランク付けする。例えば、経路管理ハブは、2つのノード105間の上位2つ又は3つの最適な経路を判定し得る。サービスが複数のノード105によって提供され得る場合(例えば、複数のノード105のそれぞれにおいてキャッシュされたコンテンツを使用して提供され得る場合、又は複数のノード105のそれぞれが所与のサービスの発信元の入口/出口の点として機能し得る場合)、経路管理ハブは、第1のノード105と複数の他のノードのうちの1つとの間の上位2つ又は3つの最適な経路を判定し得る。或いは、経路管理ハブは、2つのノード105の各セット間の単一の最適な経路を判定する。
【0052】
[0054] ブロック220において、経路管理ハブは、各サービスのためのサービス識別子を、そのサービスのための判定されたコンテキストに基づいて最適な経路のうちの1つ又は複数にマップする。例えば、サービスのための判定されたコンテキストが高帯域幅経路を優先することを示している場合、経路管理ハブは、そのサービスのための識別子を帯域幅に関して最適であると判定された経路にマップする。コンテキストに対して複数の最適な経路が判定される実施形態では、経路管理ハブは、最適な経路のランク付けされたリストに識別子をマップする。サービス識別子は、ポート番号、ネットワークアドレス、ポート番号とネットワークアドレスとの組み合わせ、又はサービスのための別の一意の識別子である。
【0053】
[0055] いくつかの実施形態では、経路管理ハブはコンテキストを使用してサービス識別子を複数の最適な経路にマップし、各経路は異なるリンクパフォーマンスメトリックタイプに最適であるとして選択される。例えば、デフォルトのコンテキストを使用して、サービス識別子を、帯域幅に関して最適な経路、レイテンシに関して最適な経路、及びジッタに関して最適な経路を含むリストにマップできる。(例えば、本明細書で説明されるように、トラフィックフロー又は検査に基づいて)判定されたトラフィックタイプを使用して、ノード105は、トラフィックタイプに対応する最適な経路を選択し得る。例えば、帯域幅に影響を受けるトラフィックタイプでは、ノード105は帯域幅に関して最適な経路を選択する。
【0054】
[0056] 加えて、経路管理ハブは、マップされた最適な経路のネクストホップ情報をノード105に配信する。例えば、最適な経路は、トラフィックを転送する第1のノード105とトラフィックを受信する第2のノード105との間に中間ノード105を含み得る。経路管理ハブは、サービスごとに各ノード105について各最適な経路に沿ってネクストホップを判定し、そのサービスに適用すると判定されたコンテキストの1つ又は複数のネクストホップにサービス識別子のマッピングを送信する。いくつかの実施形態では、経路管理ハブは、ノード105に配信される場合のネクストホップへのコンテキスト又はリンクパフォーマンスメトリックタイプのマッピングを含む。
【0055】
[0057] ブロック225において、各ノード105は、経路管理ハブからネクストホップ情報を受信する。例えば、サービスごとに、第1のノード105は、第1のノードがサービスのトラフィックを転送する他のノード105を表すネクストホップのランク付けされたリストにマップされたサービスのための識別子を受信する。いくつかの実施形態では、ランク付けされたリストは、サービスとコンテキストとの両方にマップされる。いくつかの実施形態では、ランク付けされたリストはサービスにマップされ、ランク付けされたリスト内の各ネクストホップがコンテキストにマップされる。DNSモジュール120は、マップされたランク付けされたリストを格納する。
【0056】
[0058] ブロック230において、ノード105はネットワークトラフィックを受信し、受信したネクストホップ情報を使用してトラフィックを転送する。例えば、転送モジュール125は、ドメイン、送信元アドレス、宛先アドレス、ポート番号、アドレスとポート番号との組み合わせ、及び/又はサービスに関連付けられた別の一意の識別子を含むネットワークトラフィックを受信する。サービス識別子を使用して、DNSモジュール120はネクストホップを選択する。ノード105がサービス識別子にマップされたネクストホップのランク付けされたリストを受信する実施形態では、DNSモジュール120がリスト内で最上位にランク付けされたネクストホップを選択し、転送モジュール125がそのネクストホップでノード105にトラフィックを転送する。
【0057】
[0059] ブロック235において、ノード105はリンクパフォーマンスメトリックを追跡する。いくつかの実施形態では、リンク評価モジュール115は、第1のノード105と複数の第2のノード105のそれぞれとの間のメトリックを追跡するためにテストトラフィックを投入する。例えば、各ノード105が、他のノード105のネットワークアドレスのリストとテスト送信のためのデータとを格納し得る。いくつかの実施形態では、格納されたネットワークアドレスのリストは、経路管理ハブから受信したネクストホップの集合である。他のノード105にテストトラフィックを送信し、他のノード105からの応答を受信することにより、リンク評価モジュール115は、1つ又は複数のサービスに差し向けられた実際のトラフィック及び1つ又は複数のサービスから受信された実際のトラフィックの追跡に加えて、又はその代わりに他のノード105へのリンクのメトリック(例えば、本明細書で説明される複数のリンクパフォーマンスメトリックタイプのうちの1つ又は複数)を追跡できる。いくつかの実施形態では、リンク評価モジュール115は、定期的な時間間隔の満了、コネクションの閾値数の完了、又は別の間隔/閾値に応じて、転送モジュール125を介してテストトラフィックを送信及び受信する。
【0058】
[0060] ノード105は、追跡されたリンクパフォーマンスメトリックを経路管理ハブに送信する。いくつかの実施形態では、リンク評価モジュール115は、リンクのバッチの評価が完了すると、追跡されたリンクパフォーマンスメトリックを経路管理ハブに送信する。いくつかの実施形態では、リンク評価モジュール115は、判定されたとおりに追跡されたリンクパフォーマンスメトリックを送信する。
【0059】
[0061] リンク評価モジュール115は、追跡されたリンクパフォーマンスメトリックに基づいて、DNSモジュール120によって格納されたネクストホップ情報を任意で並べ替える。このような並べ替えの結果として、ノード105は、経路管理ハブによって行われた最適な経路に対する外部/帯域外調整の間に、最適な経路に対する内部/帯域内調整を行う。例えば、リンク評価モジュール115は、追跡されたリンクパフォーマンスメトリックを使用して、経路管理ハブによって判定された最上位にランク付けされたネクストホップが所与のコンテキストに関して最適な経路ではなくなったことを判定し得る。具体的な例として、ノード105が受信したネクストホップ情報は、サービスが帯域幅を優先させるように構成されたコンテキストに、そしてコンテキストに基づいて3つのネクストホップにマップされることを指示する。帯域幅においてランク付けされたリストの第2のネクストホップがランク付けされたリストの第1のネクストホップよりも優れていることを追跡されたリンクパフォーマンスメトリックが示すとリンク評価モジュール115が判定したことに応じて、リンク評価モジュールは、ランク付けされたリストを並べ替えて、第2のネクストホップを第1にする。
【0060】
[0062] いくつかの実施形態では、リンク評価モジュール115は、所与のサービスに関してネクストホップのランク付けされたリストを評価するために使用するリンクパフォーマンスメトリックを判定することにより、サービスに関してネクストホップのランク付けされたリストを並べ替える判定を行う。例えば、サービスと共に経路管理ハブから受信され、そのサービスに関するネクストホップにマップされたコンテキスト識別子は、1つ又は複数のリンクパフォーマンスメトリックを表すとしてリンク評価モジュール115によって解決され得る。
【0061】
[0063] いくつかの実施形態では、リンク評価モジュール115は、そのサービスのためのトラフィックを検査することにより、そのサービスに関してネクストホップのランク付けされたリストを並べ替える判定を行う。例えば、転送中のヘッダ、パケット、又は他のデータ/メタデータを検査することにより、リンク評価モジュール115はそのサービスに関するトラフィックタイプを判定する。トラフィックタイプは、コンテンツを、例えば、画像、音声、ビデオ、アプリケーションプログラミングインターフェース(API)要求及び/又は応答、ボイスオーバーインターネットプロトコル(VoIP)コールなどに分類し得る、及び/又はトラフィックタイプをコンテキスト/リンクパフォーマンスメトリックタイプにマップし得る。リンク評価モジュール115は、トラフィックに関する判定されたリンクパフォーマンスメトリックタイプの追跡されたリンクパフォーマンスメトリックにおいて、下位にランク付けされたネクストホップが上位にランク付けされたネクストホップよりも優れている場合、ネクストホップのランク付けされたリストを並べ替える。
【0062】
[0064] いくつかの実施形態では、ランク付けされたリストは、異なるコンテキスト又はリンクパフォーマンスメトリックタイプを優先させるネクストホップを含み得る。そのような実施形態において、リンク評価モジュール115は、下位にランク付けされたネクストホップがトラフィックに関して判定されたリンクパフォーマンスメトリックタイプに優先され、上位にランク付けされたネクストホップが優先されない場合、ネクストホップのランク付けされたリストを並べ替える。
【0063】
[0065] いくつかの実施形態では、リンク評価モジュール115は、リンク、ノード105、又はサービスの負荷を推定することに基づいて、サービスに関してネクストホップのランク付けされたリストを並べ替える判定を行う。例えば、サービスは、異なるノード105に接続された複数のオリジンサーバによって、又はプロキシとして異なるノード105によって提供されてもよい。追跡されたリンクパフォーマンスメトリックは、低負荷の経路、ノード105、若しくはオリジン、及び/又は負荷閾値を上回る経路、ノード105、若しくはオリジンの指示を提供し得る。低負荷のオプションがあるとの判定に応じて、又は上位にランク付けされたネクストホップが負荷閾値を上回るオプションであるとの判定に応じて、リンク評価モジュール115はランク付けされたリストを並べ替えて負荷分散、スロットルトラフィックなどを提供する。
【0064】
[0066] いくつかの実施形態では、リンク評価モジュール115は、サービスに関してトラフィックフローデータの特徴付けを行うことにより、サービスに関してネクストホップのランク付けされたリストを並べ替える判定を行う。例えば、トラフィックフローは、コンテキスト又は1つ若しくは複数のリンクパフォーマンスメトリックタイプに対応するものとして特徴付けられ得る。上記のように、コンテキスト又はリンクパフォーマンスメトリックタイプを使用して、リンクパフォーマンスメトリックを評価し、ネクストホップを並べ替えることができる。
【0065】
[0067] 方法200は、並行して、ブロック205及びブロック230に続く。経路管理ハブは、ノード105から更新されたリンクパフォーマンスメトリックを受信し、ブロック205~220に関連して説明したように、最適な経路及び対応するネクストホップ情報を更新する。加えて、その間に、ノード105は、ブロック230及び235に関連して説明したように、トラフィックを受信及び転送し、リンクパフォーマンスメトリックを追跡し、ネクストホップを任意で並べ替えることを続ける。
【0066】
[0068]
図3~
図6は、サービスで優先される1つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストを判定するために使用される例示的なトラフィックフローを示している。例えば、リンク評価モジュール115は、リンクパフォーマンスメトリックの一部として、コネクションごとに、ノードを通してサービスに送信した1秒当たりのバイト数、及び/又はノードによってサービスから受信した1秒当たりのバイト数を追跡し得る。リンク評価モジュール115は、ネクストホップの並べ替え基準及び/又はコンテキスト調整基準が満たされているか否かを判定するために、
図3~
図6に関して説明したように判定を実行できる。
【0067】
[0069]
図3は、ファイルの要求及び応答の例示的なトラフィックフローを示している。例えば、サービスは、1つ又は複数のカスケードスタイルシート(CSS)、JavaScript、ハイパーテキストマークアップ言語(HTML)ファイル、画像、又は他のファイルを提供し得る。図示のように、そのようなファイルの要求及び応答のトラフィックフローは、送受信される1秒当たりのバイト数が比較的少なくなり得る。加えて、このようなファイルの示されているトラフィックフローは、送信バイト数と比較して受信バイト数の比率が比較的等しいことを示している。リンク評価モジュール115は、受信バイト数及び送信バイト数の量及び/又は比率を使用して、トラフィックのためのネクストホップがレイテンシを優先させるべきであることを判定する。例えば、リンク評価モジュール115は、受信バイト数の量及び/又は送信バイト数の量(及び/又は受信バイト数の送信バイト数に対する比)が並べ替え基準を満たしている(例えば、送信バイト数の量が閾値未満である、及び/又は受信バイト数の送信バイト数に対する比が、事前に定義された比の値の範囲内にある)と判定し、これにより、レイテンシを優先させるコンテキストにマップする。
【0068】
[0070]
図4は、ストリーミングサービスの要求及び応答の例示的なトラフィックフローを示している。示されているトラフィックフローは、1秒当たりの受信バイト数が比較的少なく、1秒当たりの送信バイト数が多いことを示している。リンク評価モジュール115は、送信バイト数の量及び/又は1秒当たりの受信バイト数の1秒当たりの送信バイト数に対する比を使用して、トラフィックのためのネクストホップが帯域幅を優先させるべきであることを判定する。例えば、リンク評価モジュール115は、例えば、送信バイト数の量が閾値を超えている場合、及び/又は受信バイト数の送信バイト数に対する比が(例えば、所定の期間にわたって)閾値比未満である場合に、並べ替え基準が満たされていると判定し、これにより、帯域幅を優先させるコンテキストにマップする。
【0069】
[0071]
図5は、チャンク方式でデータを送信するストリーミングサービスの要求及び応答の例示的なトラフィックフローを示している。
図4と同様に、示されているトラフィックフローは、1秒当たりの受信バイト数が比較的少なく、1秒当たりの送信バイト数が多いことを示している。リンク評価モジュール115は、受信バイト数及び送信バイト数の量及び/又は比率を使用して、トラフィックのためのネクストホップが帯域幅を優先させるべきであることを判定する。例えば、リンク評価モジュール115は、例えば、送信バイト数の量が閾値を超えている場合、及び/又は受信バイト数の送信バイト数に対する量の比が(例えば、所定の期間にわたって)閾値比未満である場合に、並べ替え基準が満たされていると判定し、これにより、帯域幅を優先させるコンテキストにマップする。
【0070】
[0072]
図6は、フレームベースのプロトコルの要求及び応答の例示的なトラフィックフローを示している。例えば、HTTP/2プロトコルの場合、クライアントが接続するとすぐに、そしてクライアントが要求又は他のバイトを送信する前に、サーバがデータの送信を開始する可能性がある。
【0071】
[0073] 本明細書から、本発明の態様を少なくとも部分的にソフトウェアで実施できることは明らかである。つまり、リンク評価モジュール115、DNSモジュール120、転送モジュール125、経路計算モジュール130、及び/又はコンピュータ実施方法200は、1つ又は複数のそれぞれのノード105などのコンピュータシステム又は他のデータ処理システムにおいて、そのプロセッサがメモリ又は他の非一時的機械可読記憶媒体に含まれる命令のシーケンスを実行するのに応じて実施又は実行できる。ソフトウェアはさらに、ネットワークインターフェースを介してネットワーク(図示せず)上で送信又は受信されてもよい。様々な実施形態において、本実施形態を実施するために、ソフトウェア命令と組み合わせてハードワイヤード回路を使用してもよい。よって、本技法は、ハードウェア回路とソフトウェアとのいかなる特定の組み合わせにも、ノード105によって実行される命令のいかなる特定のソースにも限定されない。また、示されていないさらなるコンポーネントもノード105の一部とすることができ、特定の実施形態では、ノード105で使用されるコンポーネントが
図1に示されているコンポーネントよりも少なくてもよいことも理解されたい。
【0072】
[0074] 上記の実施形態の機能の少なくとも一部を提供するプログラムコードを格納するために製品を使用してもよい。加えて、上記の実施形態の機能の少なくとも一部を使用して作成されたプログラムコードを格納するために製品を使用してもよい。プログラムコードを格納する製品は、これらに限定されないが、1つ又は複数のメモリ(例えば、1つ又は複数のフラッシュメモリ、ランダムアクセスメモリ-静的、動的、又はその他)、光ディスク、CD-ROM、DVD-ROM、EPROM、EEPROM、磁気若しくは光学カード、ソリッドステートドライブ(SSD)、又は電子的命令を格納するのに適した他の種類の非一時的コンピュータ可読媒体として具現化されてもよい。加えて、本発明の実施形態は、これらに限定されないが、FPGA、ASIC、プロセッサ、コンピュータ、又はネットワークを含むコンピュータシステムを使用するハードウェア又はファームウェアで実施されてもよい。本発明の実施形態を大幅に変更することなく、ハードウェア又はソフトウェア実装のモジュール及びコンポーネントを分割したり組み合わせたりすることができる。
【0073】
[0075] 本明細書のここまでの部分において、本発明を、その特定の例示的な実施形態に関連して説明してきた。本発明の様々な実施形態及び態様は、本明細書で説明されている詳細に関連して説明されており、添付の図面は様々な実施形態を例示している。上記の説明及び図面は、本発明を例示するためのものであり、本発明を限定するものとして解釈されるべきではない。本明細書における「1つの実施形態」、「一実施形態」、「例示的な実施形態」などへの言及は、記載された実施形態が特定の特徴、構造、又は特性を含み得ることを示すが、必ずしもすべての実施形態がその特定の特徴、構造、又は特性を含むとは限らない。さらに、そのような語句は必ずしも同じ実施形態に言及しているわけではない。さらに、特定の特徴、構造、又は特性が一実施形態に関連して説明される場合、そのような特徴、構造、又は特性は、明示的に説明されているか否かにかかわらず、他の実施形態に関連して実装され得る。加えて、本明細書で使用される場合、「例示的」という用語は、単に例又は例示として機能する実施形態を指す。「例示的」の使用が、好ましい例を示すものと解釈されるべきではない。破線の境界線(例えば、大きな破線、小さな破線、一点鎖線、点)を有するブロックは、仮想化されたリソースを示すため、又はフローチャートにおいて本発明の実施形態にさらなる特徴を追加する任意の動作を示すために使用されている。ただし、そのような表記法は、これらが唯一のオプション又は任意の動作であること、及び/又は本発明の特定の実施形態における実線の境界線を有するブロックが任意ではないことを意味するものとして解釈されるべきではない。本発明の様々な実施形態の十分な理解を提供するために、多くの具体的な詳細が説明されている。しかしながら、特定の例では、本発明の実施形態の議論を簡潔にするために、周知又は従来の詳細は説明されていない。
【0074】
[0076] 当然のことながら、添付の特許請求の範囲に記載されている本発明のより広い趣旨及び範囲から逸脱することなく、様々な修正を加えることができる。例えば、本明細書で説明される方法は、より少ない又はより多い特徴/ブロックで実行されてもよいし、特徴/ブロックが異なる順序で実行されてもよい。加えて、本明細書で説明される方法は、互いに並行して、又は同じ方法若しくは類似の方法の異なるインスタンスと並行して繰り返されたり実行されたりしてよい。