(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024035046
(43)【公開日】2024-03-13
(54)【発明の名称】オーバーレイネットワーク修正
(51)【国際特許分類】
H04L 45/42 20220101AFI20240306BHJP
H04L 45/64 20220101ALI20240306BHJP
H04L 49/354 20220101ALI20240306BHJP
【FI】
H04L45/42
H04L45/64
H04L49/354
【審査請求】未請求
【請求項の数】21
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023067205
(22)【出願日】2023-04-17
(31)【優先権主張番号】17/901,316
(32)【優先日】2022-09-01
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVASCRIPT
2.JAVA
(71)【出願人】
【識別番号】521502724
【氏名又は名称】クラウドブリンク・インコーポレイテッド
【氏名又は名称原語表記】CLOUDBRINK INC.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】スッブ・ポヌスワミー
【テーマコード(参考)】
5K030
【Fターム(参考)】
5K030GA11
5K030KA05
5K030LB07
5K030MA04
5K030MC07
(57)【要約】 (修正有)
【課題】データ伝送オーバーレイネットワークを修正する方法及び非一時的コンピュータ可読媒体を提供する。
【解決手段】物理トポロジ110と、物理トポロジ上にオーバーレイされたオーバーレイネットワーク130とを含むシステム100は、地理的領域内のオーバーレイネットワークの転送ノードに関連付けられたネットワーク属性を予測し、予測したネットワーク属性に基づいてオーバーレイネットワークを修正する。オーバーレイネットワークを修正することは、データ伝送容量を増減するために既存の転送ノードを修正することと、転送ノードを追加することと、転送ノードを除去することと、を含む。システムはまた、指定された継続時間に亘って特定の地理的領域内のオーバーレイネットワークを修正し、継続時間が経過すると、地理的領域内のオーバーレイネットワークを修正前の状態に戻す。
【選択図】
図1A
【特許請求の範囲】
【請求項1】
命令を含む非一時的コンピュータ可読媒体であって、前記命令は、1つまたは複数のハードウェアプロセッサによって実行されると、複数の動作を実行させ、前記複数の動作は、
物理通信ネットワーク上にオーバーレイされたデータ伝送オーバーレイネットワークを実装することを含み、前記データ伝送オーバーレイネットワークは、複数の転送ノードを備え、前記複数の転送ノードは、前記複数の転送ノードのうちの第1の転送ノードに通信可能に結合されたソースと、前記複数の転送ノードのうちの第2の転送ノードに通信可能に結合された宛先との間でデータを転送するように構成されており、前記複数の動作は、さらに、
特定の期間中に前記物理通信ネットワークの一部に対応する地理的領域に対するネットワークデータ伝送属性を予測することと、
前記特定の期間中の前記地理的領域に対する予測されるネットワークデータ伝送属性に基づいて、前記特定の期間中にデータを転送するために前記データ伝送オーバーレイネットワークに特定の転送ノードを追加することと、
を含む、非一時的コンピュータ可読媒体。
【請求項2】
前記複数の動作は、前記データ伝送オーバーレイネットワークに前記特定の転送ノードを前記追加したことに基づいて、前記特定の転送ノードを介してデータを転送するために前記特定の期間中に前記データ伝送オーバーレイネットワークによって使用されるルートを一時的に修正することをさらに含む、請求項1に記載の非一時的コンピュータ可読媒体。
【請求項3】
前記特定の転送ノードは、前記特定の期間に一時的に追加され、前記特定の期間の後に解除される、請求項1に記載の非一時的コンピュータ可読媒体。
【請求項4】
前記予測されるデータ伝送属性は、前記地理的領域に対応する既存の転送ノードの予測される性能を含む、請求項1に記載の非一時的コンピュータ可読媒体。
【請求項5】
前記予測されるネットワークデータ伝送属性は、
前記データ伝送オーバーレイネットワークにアクセスするユーザの地理的位置と、
前記データ伝送オーバーレイネットワークにアクセスする前記ユーザのユーザごとのトラフィックと、
前記地理的領域内で動作が維持されることが要求される転送ノードの所定の最小数と、
前記地理的領域内の1つまたは複数の転送ノードを通るデータ伝送トラフィックのレベルと、
前記地理的領域内の前記1つまたは複数の転送ノードを通る前記データ伝送トラフィックのレベルに関連付けられた時間と、
前記1つまたは複数の転送ノードのデータ処理容量と、
前記1つまたは複数の転送ノードの信頼性と、
前記地理的領域内の前記1つまたは複数の転送ノードを通るデータ伝送トラフィックの履歴レベルと、
のうちの1つまたは複数を含む、請求項1に記載の非一時的コンピュータ可読媒体。
【請求項6】
前記複数の転送ノードのうちの前記ソースと前記第2の転送ノードとの間の各転送ノードは、
データパケットを受信することと、
前記データパケットの外部ヘッダをカプセル化解除することと、
前記外部ヘッダに指定されたルートを識別することと、
ネットワーク特性に基づいて前記ルートを修正するかどうかを決定することと、
内部データパケットを修正することなく前記データパケットを再カプセル化することと、
前記第2の転送ノードへ向かう特定のルートに沿って前記データパケットを転送することと、
を含む動作を実行する、請求項1に記載の非一時的コンピュータ可読媒体。
【請求項7】
前記特定の期間中にデータを転送するために前記データ伝送オーバーレイネットワークに前記特定の転送ノードを追加することは、
前記地理的領域を第1の地理的領域および第2の地理的領域に分割することを含み、
前記特定の転送ノードを追加する前に前記データ伝送オーバーレイネットワークに存在している第3の転送ノードは、前記第1の地理的領域に配置され、前記第1の地理的領域で発生するデータトラフィックを転送し、
前記特定の転送ノードは、前記第2の地理的領域に配置され、前記第2の地理的領域で発生するデータトラフィックを転送する、請求項1に記載の非一時的コンピュータ可読媒体。
【請求項8】
前記ネットワークデータ伝送属性を予測することは、少なくとも過去のネットワークデータ伝送属性に基づいて、予測されるネットワークデータ伝送属性を表すモデルを生成することを含む、請求項1に記載の非一時的コンピュータ可読媒体。
【請求項9】
前記モデルは、前記地理的領域内の1つまたは複数の転送ノードを通過すると期待されるデータフローの数の予測を含む、請求項8に記載の非一時的コンピュータ可読媒体。
【請求項10】
前記ネットワークデータ伝送属性を予測することは、
前記ネットワークデータ伝送属性を予測するための機械学習モデルを訓練することと、
予測されるネットワークデータ伝送属性のセットを生成するために、前記機械学習モデルに現在のネットワークデータ伝送属性のセットを適用することと、
を含み、前記機械学習モデルを訓練することは、
過去のネットワーク属性データの訓練データセットを取得することを含み、各訓練データセットは、
第1の期間に関連付けられた第1のネットワークデータ伝送属性の第1のセットであって、前記第1のネットワークデータ伝送属性は、過去の地理的領域内の前記データ伝送オーバーレイネットワークを通るデータトラフィックを少なくとも含む、第1のセットと、
前記第1の期間の後の第2の期間に関連付けられた第2のネットワークデータ伝送属性の第2のセットと、
を含み、前記機械学習モデルを訓練することは、
前記訓練データセットに基づいて前記機械学習モデルを訓練することと、
現在のネットワークデータ伝送属性のセットを受信することと、
予測されるネットワークデータ伝送属性のセットを生成するために、前記現在のネットワークデータ伝送属性のセットに前記機械学習モデルを適用することと、
を含む、請求項1に記載の非一時的コンピュータ可読媒体。
【請求項11】
方法であって、
物理通信ネットワーク上にオーバーレイされたデータ伝送オーバーレイネットワークを実装することを含み、前記データ伝送オーバーレイネットワークは、複数の転送ノードを備え、前記複数の転送ノードは、前記複数の転送ノードのうちの第1の転送ノードに通信可能に結合されたソースと、前記複数の転送ノードのうちの第2の転送ノードに通信可能に結合された宛先との間でデータを転送するように構成されており、前記方法は、さらに、
特定の期間中に前記物理通信ネットワークの一部に対応する地理的領域に対するネットワークデータ伝送属性を予測することと、
前記特定の期間中の前記地理的領域に対する予測されるネットワークデータ伝送属性に基づいて、前記特定の期間中にデータを転送するために前記データ伝送オーバーレイネットワークに特定の転送ノードを追加することと、
を含む、方法。
【請求項12】
前記データ伝送オーバーレイネットワークに前記特定の転送ノードを前記追加したことに基づいて、前記特定の転送ノードを介してデータを転送するために前記特定の期間中に前記データ伝送オーバーレイネットワークによって使用されるルートを一時的に修正することをさらに含む、請求項11に記載の方法。
【請求項13】
前記特定の転送ノードは、前記特定の期間に一時的に追加され、前記特定の期間の後に解除される、請求項11に記載の方法。
【請求項14】
前記予測されるデータ伝送属性は、前記地理的領域に対応する既存の転送ノードの予測される性能を含む、請求項11に記載の方法。
【請求項15】
前記予測されるネットワークデータ伝送属性は、
前記データ伝送オーバーレイネットワークにアクセスするユーザの地理的位置と、
前記データ伝送オーバーレイネットワークにアクセスする前記ユーザのユーザごとのトラフィックと、
前記地理的領域内で動作が維持されることが要求される転送ノードの所定の最小数と、
前記地理的領域内の1つまたは複数の転送ノードを通るデータ伝送トラフィックのレベルと、
前記地理的領域内の前記1つまたは複数の転送ノードを通る前記データ伝送トラフィックのレベルに関連付けられた時間と、
前記1つまたは複数の転送ノードのデータ処理容量と、
前記1つまたは複数の転送ノードの信頼性と、
前記地理的領域内の前記1つまたは複数の転送ノードを通るデータ伝送トラフィックの履歴レベルと、
のうちの1つまたは複数を含む、請求項11に記載の方法。
【請求項16】
前記複数の転送ノードのうちの、前記ソースと前記第2の転送ノードとの間の各転送ノードは、
データパケットを受信することと、
前記データパケットの外部ヘッダをカプセル化解除することと、
前記外部ヘッダに指定されたルートを識別することと、
ネットワーク特性に基づいて前記ルートを修正するかどうかを決定することと、
内部データパケットを修正することなく前記データパケットを再カプセル化することと、
前記第2の転送ノードへ向かう特定のルートに沿って前記データパケットを転送することと、
を含む動作を実行する、請求項11に記載の方法。
【請求項17】
前記特定の期間中にデータを転送するために前記データ伝送オーバーレイネットワークに前記特定の転送ノードを追加することは、
前記地理的領域を第1の地理的領域および第2の地理的領域に分割することを含み、
前記特定の転送ノードを追加する前に前記データ伝送オーバーレイネットワークに存在している第3の転送ノードは、前記第1の地理的領域に配置され、前記第1の地理的領域で発生するデータトラフィックを転送し、
前記特定の転送ノードは、前記第2の地理的領域に配置され、前記第2の地理的領域で発生するデータトラフィックを転送する、請求項11に記載の方法。
【請求項18】
前記ネットワークデータ伝送属性を予測することは、少なくとも過去のネットワークデータ伝送属性に基づいて、予測されるネットワークデータ伝送属性を表すモデルを生成することを含む、請求項11に記載の方法。
【請求項19】
前記モデルは、前記地理的領域内の1つまたは複数の転送ノードを通過すると期待されるデータフローの数の予測を含む、請求項18に記載の方法。
【請求項20】
前記ネットワークデータ伝送属性を予測することは、
前記ネットワークデータ伝送属性を予測するための機械学習モデルを訓練することと、
予測されるネットワークデータ伝送属性のセットを生成するために、前記機械学習モデルに現在のネットワークデータ伝送属性のセットを適用することと、
を含み、前記機械学習モデルを訓練することは、
過去のネットワーク属性データの訓練データセットを取得することであって、各訓練データセットは、
第1の期間に関連付けられた第1のネットワークデータ伝送属性の第1のセットであって、前記第1のネットワークデータ伝送属性は、過去の地理的領域内の前記データ伝送オーバーレイネットワークを通るデータトラフィックを少なくとも含む、第1のセットと、
前記第1の期間の後の第2の期間に関連付けられた第2のネットワークデータ伝送属性の第2のセットと、
を含む、取得することと、
前記訓練データセットに基づいて前記機械学習モデルを訓練することと、
現在のネットワークデータ伝送属性のセットを受信することと、
予測されるネットワークデータ伝送属性のセットを生成するために、前記現在のネットワークデータ伝送属性のセットに前記機械学習モデルを適用することと、
を含む、請求項11に記載の方法。
【請求項21】
システムであって、
1つまたは複数のプロセッサと、
複数の命令を記憶するメモリとを備え、前記複数の命令は、前記1つまたは複数のプロセッサによって実行されると、前記システムに、
物理通信ネットワーク上にオーバーレイされたデータ伝送オーバーレイネットワークを実装させ、前記データ伝送オーバーレイネットワークは、複数の転送ノードを備え、前記複数の転送ノードは、前記複数の転送ノードのうちの第1の転送ノードに通信可能に結合されたソースと、前記複数の転送ノードのうちの第2の転送ノードに通信可能に結合された宛先との間でデータを転送するように構成されており、前記複数の命令は、前記システムにさらに、
特定の期間中に前記物理通信ネットワークの一部に対応する地理的領域に対するネットワークデータ伝送属性を予測することと、
前記特定の期間中の前記地理的領域に対する予測されるネットワークデータ伝送属性に基づいて、前記特定の期間中にデータを転送するために前記データ伝送オーバーレイネットワークに特定の転送ノードを追加することと、
を実行させる、システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、アンダーレイネットワーク上で動作するオーバーレイネットワーク、または物理データ伝送ネットワークを修正することに関する。特に、本開示は、測定および予測されたネットワーク特性に基づいてオーバーレイネットワークのオーバーレイネットワークノードを追加、除去、および修正することに関する。
【0002】
背景
データ伝送ネットワークは、ユーザにアクセス可能なアプリケーションを実行するリモートサーバにユーザを接続するために世界中に広がっている。典型的なデータパケットは、ネットワークを介して宛先デバイスに送信されるために、ソースデバイスにおいて宛先アドレスでカプセル化される。例えば、ソースデバイスは、(a)アプリケーションデータ、(b)伝送制御プロトコル(TCP)プロトコル情報、(c)ソース/宛先インターネットプロトコル(IP)アドレス情報、および(d)媒体アクセス制御(MAC)アドレス情報をデータパケットに付加し得る。伝送経路に沿ったデータ伝送および処理デバイスは、パケットの異なるレイヤを分析して、パケットを次ホップにどのように転送するか、またはパケットをどのように処理するかを決定する。
【発明の概要】
【0003】
最初に、ソースデバイスは、データパケットに含まれる、MACアドレスなどのレイヤ2(L2)アドレスに関連付けられたデバイスにパケットを送信する。デバイスは、宛先IPアドレスを読み取り、データパケットの次ホップを決定し、MACアドレスを次ホップに関連付けられたデバイスに変更し、パケットを伝送経路に沿って次のデバイスに転送する。例えば、ソースデバイスは、ローカルエリアネットワークによって維持されているルータへパケットを送信し得る。データが同じローカルエリアネットワーク内の他のデバイスに向けられている場合、ルータはデータを宛先デバイスに転送する。データがローカルネットワーク外のデバイスに向けられている場合、LANルータは、地域インターネットサービスプロバイダ(ISP)のルータなどの他のデータ転送デバイスにデータパケットを転送する。
【0004】
インターネット上のデータ伝送に関連付けられた典型的なネットワークインフラストラクチャは、サブネットワークのピラミッド構造の「最上部」にネットワークサービスプロバイダ(NSP)バックボーン構造(例えば、ケーブル、ルータ、およびアクセスポイント)を含む。例えば、ネットワークアクセスポイント(NAP)は、2つ以上のNSPを接続する。NSPルータは、2つ以上の地域ISPを接続することができる。地域ISPは、プライベートローカルエリアネットワークなどの2つ以上のサブネットワークを接続することができる。ルータは、通常、ネットワーク間でパケットをルーティングするためにネットワーク間に接続される。各ルータは、そのサブネットワークのルーティング情報およびそれらの関連するIPアドレスを記憶する。しかしながら、ルータは、それらのサブネットワーク外のIPアドレスについての情報を記憶しない。例えば、地域ISPルータは、通常、同じNSPルータに接続された他のISPルータに関連付けられたIPアドレス情報を記憶しない。
【0005】
パケットがルータに到着すると、ルータは、発信元のコンピュータ上のIPプロトコル層によってそこに置かれたIPアドレスを調べる。ルータは、そのルーティングテーブルをチェックする。IPアドレスを含むネットワークが見つかった場合、パケットはそのネットワークに送信される。IPアドレスを含むネットワークが見つからない場合、ルータは、デフォルトルートで、通常はネットワークの階層の上の次のルータに(例えば、地域ISPルータからバックボーンNSPルータに)パケットを送信する。このプロセスは、データパケットが宛先ネットワークまたはNSPバックボーンのいずれかに到達するまで繰り返される。NSPバックボーンに接続されたルータは、最大のルーティングテーブルを保持する。NSPルータでは、データパケットが正しいバックボーンNSPにルーティングされる。そこから、データパケットは、その宛先に到達するまで、より小さいネットワークおよびサブネットワークの階層を下って進む。
【0006】
ソースデバイスは、データパケットを送信し、確認応答データパケットが受信されるまでの継続時間を決定することによって、ソースデバイスと宛先デバイスとの間のデータパケットのラウンドトリップ時間(RTT)を計算し得る。しかしながら、各サブネットワーク内のルータは他のサブネットワーク内のルータに関する情報を含まないため、ソースデバイスは、データ伝送経路上の特定のホップについて、遅延およびジッタなどのデータ伝送特性に関する詳細な情報を取得しない場合がある。特定のサブネットワークがネットワーク内のデバイスのデータ伝送特性を監視する場合でも、データ伝送経路に沿った他のネットワーク内のデバイスのデータ伝送特性を監視することができない場合がある。
【0007】
このセクションに記載されるアプローチは、追求され得るアプローチであるが、必ずしも以前に着想または追求されたアプローチではない。したがって、別段の指示がない限り、このセクションに記載されるアプローチのいずれも、単にこのセクションに含まれることによって先行技術として認められると仮定されるべきではない。
【0008】
実施形態は、例として示されており、添付の図面の図に限定するものではない。本開示における「一(an)」または「一(one)」実施形態への言及は、必ずしも同じ実施形態への言及ではなく、それらは少なくとも1つを意味することに留意されたい。図面において、
【図面の簡単な説明】
【0009】
【
図1A】1つまたは複数の実施形態によるシステムを示す図である。
【
図1B】1つまたは複数の実施形態によるシステムを示す図である。
【
図2】1つまたは複数の実施形態によるネットワーク内のデータ転送ノードを修正するための動作の例示的なセットを示す図である。
【
図3】1つまたは複数の実施形態によるオーバーレイネットワーク属性を予測するように機械学習モデルを訓練するための動作の例示的なセットを示す図である。
【
図4A】1つまたは複数の実施形態によるオーバーレイネットワークを修正するための例示的な実施形態を示す図である。
【
図4B】1つまたは複数の実施形態によるオーバーレイネットワークを修正するための例示的な実施形態を示す図である。
【
図4C】1つまたは複数の実施形態によるオーバーレイネットワークを修正するための例示的な実施形態を示す図である。
【
図4D】1つまたは複数の実施形態によるオーバーレイネットワークを修正するための例示的な実施形態を示す図である。
【
図4E】1つまたは複数の実施形態によるオーバーレイネットワークを修正するための例示的な実施形態を示す図である。
【
図5】1つまたは複数の実施形態によるコンピュータシステムを示すブロック図である。
【発明を実施するための形態】
【0010】
詳細な説明
以下の説明では、説明の目的のために、完全な理解を提供するために多くの具体的な詳細が記載される。これらの具体的な詳細なしで、1つまたは複数の実施形態が実施され得る。一実施形態で説明される特徴は、異なる実施形態で説明される特徴と組み合わされ得る。いくつかの例では、本発明を不必要に不明瞭にすることを回避するために、周知の構造およびデバイスがブロック図形式を参照して説明される。
【0011】
1.概要
2.システムアーキテクチャ
3.オーバーレイネットワークの修正
4.機械学習モデルの訓練
5.例示的な実施形態
6.コンピュータネットワークおよびクラウドネットワーク
7.その他、拡張
8.ハードウェアの概要
1.概要
システムは、データ伝送ネットワークの物理ネットワークデバイス上で動作するデータ伝送オーバーレイネットワークを含む。データ伝送オーバーレイネットワークは、ソースデバイスと宛先デバイスとの間の転送ノードを含む。例えば、ソースデバイスは、パーソナルコンピュータを含み得る。宛先デバイスは、アプリケーションサーバを含み得る。ソースデバイスは、パーソナルコンピュータ上でアプリケーションサーバによってホストされるアプリケーションを実行するために、アプリケーションサーバとデータを交換することができる。ソースデバイスは、転送ノードシーケンスを介してデータパケットを宛先デバイスに送信する。
【0012】
データ伝送オーバーレイネットワークの転送ノードは、仮想インスタンスがリモートでインスタンス化されることを可能にする仮想インフラストラクチャ技術として実装される。そのような仮想化技術の例は、仮想マシン(VM)およびコンテナを含む。オーバーレイネットワークシステムは、ネットワーキングサービスプロバイダのアプリケーションプログラミングインターフェース(API)とインターフェースすることによって、アンダーレイネットワークトポロジデバイス(サーバなど)内のVMおよびコンテナをインスタンス化することができる。
【0013】
データ伝送オーバーレイネットワークの転送ノードは、オーバーレイネットワークの他のノードおよびエージェントにネットワーク属性データを提供する。転送ノードはまた、オーバーレイネットワークを介して伝送されるデータパケットのデータ伝送ルートを修正する。ソースデバイス上で動作するオーバーレイネットワークエージェントは、転送ノードシーケンスを含む、データパケットのルートを指定し、データパケットのカプセル化外部ヘッダにルーティング情報を含める。データパケットがオーバーレイネットワークを介して送信されるとき、転送ノードは、内部パケットをカプセル化解除することなく、外部ヘッダをカプセル化解除する。転送ノードは、ネットワーク情報を分析し、外部ヘッダに含まれるルーティング情報を修正するかどうかを決定する。例えば、転送ノードは、外部ヘッダによって指定された転送ノードシーケンスに関連付けられたデータ送信時間が、異なる転送ノードシーケンスに関連付けられたデータ送信時間よりも長いと決定することができる。転送ノードは、より短い送信時間に対応するように、外部ヘッダにおいて指定された転送ノードシーケンスを修正することができる。転送ノードは、ルーティング情報を修正するか、またはルーティング情報を変更せずに残すかのいずれかである。次いで、転送ノードは、データパケットを再カプセル化し、データパケットをオーバーレイネットワーク内の次ホップに沿って転送する。
【0014】
1つまたは複数の実施形態は、特定の地理的領域に関連付けられたネットワークデータ伝送属性を予測したことに基づいてオーバーレイネットワークを修正する。例えば、システムは、閾値の値を超える特定の地理的領域内の転送ノードを通るデータトラフィックのレベルを予測することができる。システムは、予測に基づいて地理的領域内に1つまたは複数の新しい転送ノードを作成することができる。加えて、または代替として、1つまたは複数の実施形態は、地理的領域に既に存在する転送ノードのデータ伝送容量を増加させる。
【0015】
データトラフィックレベルに加えて、システムは、データ伝送オーバーレイネットワークにアクセスするユーザの地理的位置、データ伝送オーバーレイネットワークにアクセスするユーザのユーザごとのトラフィック、地理的領域内で動作が維持されることが要求される転送ノードの所定の最小数、地理的領域内の1つまたは複数の転送ノードを通るデータ伝送トラフィックのレベル、地理的領域内の1つまたは複数の転送ノードを通るデータ伝送トラフィックのレベルに関連付けられた時間、1つまたは複数の転送ノードのデータ処理容量、1つまたは複数の転送ノードの信頼性、および地理的領域内の1つまたは複数の転送ノードを通るデータ伝送トラフィックの履歴レベルなどの、1つまたは複数の追加のデータ伝送属性に基づいて、オーバーレイネットワークを修正することができる。
【0016】
1つまたは複数の実施形態は、地理的領域内に1つまたは複数の新しい転送ノードを追加したことに基づいて、地理的領域への、および/または地理的領域からのデータ伝送ルートを修正する。例えば、システムは、ソースデバイス上で動作しているオーバーレイネットワークエージェントに、1つまたは複数の新しい転送ノードがソースデバイスと宛先デバイスとの間のデータ伝送ルートに沿ったホップとして利用可能であることを通知することができる。
【0017】
1つまたは複数の実施形態は、オーバーレイネットワークを一時的に修正する。例えば、システムは、オーバーレイネットワークに対する修正のための時間長として、1日などの特定の継続時間を指定することができる。指定された継続時間が経過すると、システムはオーバーレイネットワークをその事修正前状態に戻すことができる。例えば、システムが地理的領域内に新しい転送ノードを追加することによってオーバーレイネットワークを修正する場合、システムは、1日後に新しい転送ノードを除去することができる。
【0018】
1つまたは複数の実施形態は、予測されるネットワークデータ伝送属性を表すモデルを生成することによってネットワークデータ伝送属性を予測する。例えば、システムは、ネットワークデータ伝送属性の1つまたは複数の将来値を予測するために、過去のネットワークデータ伝送属性に基づいて機械学習モデルを訓練することができる。システムは、過去のネットワークデータ伝送属性のセットを機械学習アルゴリズムに繰り返し適用し、機械学習アルゴリズムによって生成された値に基づいてアルゴリズムの係数値およびオフセット値を調整することによって機械学習モデルを訓練することができる。システムは、訓練された機械学習モデルを現在のネットワークデータ伝送属性のセットに適用して、予測されるネットワークデータ伝送属性を生成する。
【0019】
本明細書に記載され、および/または特許請求の範囲に列挙される1つまたは複数の実施形態は、この概要セクションに含まれるとは限らない。
【0020】
2.システムアーキテクチャ
図1は、1つまたは複数の実施形態によるシステム100を示す。
図1に示すように、システム100は、物理トポロジ110と、物理トポロジ110上にオーバーレイされたオーバーレイネットワーク130とを含む。特に、物理トポロジ110は、コンピュータ、サーバ、ルータ、ロードバランサ、ファイアウォールデバイス、無線データ送信アンテナ、およびゲートウェイを含むインフラストラクチャ要素を含む。物理トポロジ110は、コンピュータ、サーバ、ルータ、ロードバランサ、ファイアウォールデバイス、無線送信アンテナ、およびゲートウェイを接続する伝送線路を含む。オーバーレイネットワーク130は、物理トポロジ110の要素上で動作するソフトウェアとして実装される。特に、オーバーレイネットワークのノード131、133、135、および137は、後述するように、物理トポロジ110内のデバイスに特定の機能を提供するために物理トポロジ110上で動作する仮想マシン(VM)およびソフトウェアパッケージを含む。
【0021】
例えば、物理ルータは、物理トポロジ110内の2つの追加の物理ルータに接続され得る。しかしながら、オーバーレイネットワーク130において、物理ルータ上で動作するオーバーレイネットワークノードは、2つの追加のルータのうちの一方をオーバーレイネットワーク120の一部として指定することができる。したがって、物理トポロジ110の要素で動作するオーバーレイネットワークソフトウェアは、オーバーレイネットワーク130内の他の要素を介してデータを送信することができる。オーバーレイネットワーク130は、オーバーレイネットワークソフトウェアを実行していない物理トポロジ110内のデバイスを介してデータを送信することを控えることができる。加えて、または代替として、物理トポロジ110内の単一の物理サーバは、オーバーレイネットワークソフトウェアを実行する2つ以上の仮想サーバに区分されてもよい。物理トポロジ110の単一の物理サーバは、オーバーレイネットワーク130内の2つのノードとして現れてもよい。
【0022】
物理トポロジ110は、ソースデバイス111a~111n、データ転送インフラストラクチャ112、および宛先デバイス119a~119nを含む。ソースデバイス111a~111nは、データ転送インフラストラクチャ112を介してデータを送信するために、宛先デバイス119a~119nと通信する。例えば、宛先デバイス119a~119nは、ソースデバイス111a~111nによってアクセス可能なアプリケーションおよびデータをホストするサーバを含み得る。宛先デバイス119a~119nは、クラウドサービスプロバイダ(CSP)などのアプリケーションプロバイダおよびデータプロバイダによって維持されるデータセンタおよびローカルネットワーク内に配置されてもよい。1つまたは複数の実施形態によれば、宛先デバイス119a~119nはオーバーレイネットワーク130の一部ではない。言い換えれば、宛先デバイスはオーバーレイネットワークソフトウェアを実行しない。代わりに、宛先デバイス119a~119nをデータ転送インフラストラクチャに接続するゲートウェイデバイスなどのデータ送信デバイスが、オーバーレイネットワークソフトウェアを実行することができる。ゲートウェイデバイスは、データ転送インフラストラクチャ112の1つまたは複数のルータから着信するデータトラフィックを宛先デバイス119a~119nの間のサーバにルーティングすることができる。代替的に、ゲートウェイデバイスは、データ転送インフラストラクチャ112の1つまたは複数のルータから着信するデータトラフィックをローカルエリアネットワーク(LAN)に関連付けられたルータにルーティングすることができる。例えば、クラウドサービスプロバイダは、自身のLANを維持してもよい。LANによってホストされるルータは、データ転送インフラストラクチャ112から着信するデータトラフィックを宛先デバイス119a~119n間のサーバに向けることができる。
【0023】
ソースデバイス111a~111nは、データセンタ112aおよび112bならびにネットワークインフラストラクチャ117を含むデータ転送インフラストラクチャ112を介して送信されるデータまたは要求を生成する任意のデバイスを含むことができる。ソースデバイス111a、111bは、例えば、パーソナルコンピュータ、ラップトップ、モバイルハンドセット、スマートフォン、携帯情報端末(「PDA」)などを含むことができる。例示的な実施形態によれば、ソースデバイス111a~111nは、データ転送インフラストラクチャ112を介してデータおよびデータの要求の一方または両方を宛先デバイス119a~119nに送信する。例えば、ソースデバイス111aは、宛先デバイス119aによってホストされるアプリケーションを実行する要求を生成することができる。ソースデバイス111aは、アプリケーションを実行する要求を含むデータのストリームを生成することができる。宛先デバイス119aは、ソースデバイス111aからの認可情報または他の情報の要求を含むデータのストリームを生成することによって応答することができる。ソースデバイス111aおよび宛先デバイス119aは、ソースデバイス111aがアプリケーションを実行する際に、要求およびデータを含むデータストリームを確立することができる。
【0024】
ソースデバイス111aを含むソースデバイスは、ユーザインターフェース121およびネットワークインターフェース122を含む。ユーザインターフェース121は、ユーザとソースデバイス111aとの間の通信を容易にするように構成されたハードウェアおよび/またはソフトウェアを含む。インターフェース121は、ユーザインターフェース要素をレンダリングし、ユーザインターフェース要素を介して入力を受信する。インターフェースの例は、グラフィカルユーザインターフェース(GUI)、コマンドラインインターフェース(CLI)、触覚インターフェース、および音声コマンドインターフェースを含む。ユーザインターフェース要素の例は、チェックボックス、ラジオボタン、ドロップダウンリスト、リストボックス、ボタン、トグル、テキストフィールド、日時セレクタ、コマンドライン、スライダ、ページ、およびフォームを含む。
【0025】
一実施形態では、インターフェース121の異なる構成要素は、異なる言語で指定される。ユーザインターフェース要素の挙動は、JavaScriptなどの動的プログラミング言語で指定される。ユーザインターフェース要素の内容は、ハイパーテキストマークアップ言語(HTML)またはXMLユーザインターフェース言語(XUL)などのマークアップ言語で指定される。ユーザインターフェース要素のレイアウトは、カスケーディングスタイルシート(CSS)などのスタイルシート言語で指定される。あるいは、インターフェース121は、Java、C、またはC++.などの1つまたは複数の他の言語で指定される。
【0026】
ネットワークインターフェース122は、ソースデバイス111aがネットワーク上の他のデバイスと対話することを可能にする。ネットワークインターフェース122は、例えば、アンテナおよび/またはイーサネットポートなどの物理データ伝送ポートを含むことができる。
【0027】
データ転送インフラストラクチャ112は、データを受信し、送信し、処理するノード118を含む。ノードは、データに関連付けられたデータパケットの特性をさらに修正することができる。ノード118は、例えば、サーバ、ルータ、およびゲートウェイを含む物理データ伝送デバイスを含む。例えば、データ転送インフラストラクチャ112は、データセンタ113a~113nに維持されているサーバ114a~114n、115a~115n、116a~116n、および117a~117nを含む。データセンタ113a~113aは、着信データを受信し、データパケットヘッダによって示されるサーバにデータパケットをルーティングするためのルータをさらに含むことができる。
【0028】
1つまたは複数の実施形態は、オーバーレイネットワーク130を含む。オーバーレイネットワーク130は、物理トポロジ110上で動作するソフトウェアとして実装される。オーバーレイネットワーク130は、オーバーレイネットワークエージェント131と、オーバーレイネットワークエッジ転送ノード133と、オーバーレイネットワークコア転送ノード135と、オーバーレイネットワークゲートウェイ転送ノード137とを含む。オーバーレイネットワーク130は、オーバーレイネットワーク管理エンジン139を含むことができる。
【0029】
オーバーレイネットワークエージェント131は、ソースデバイスにインストールされる。例えば、オーバーレイネットワークエージェント131a~131nは、ソースデバイス111a~111n内で動作する。一実施形態によれば、ソースデバイス111aは、データパケットジェネレータを含む。データパケットジェネレータは、ネットワークを介して送信するためのデータパケットを生成するアプリケーションおよび回路を含む。オーバーレイネットワークエージェント131は、ソースデバイス111aからオーバーレイネットワークエッジ転送ノード133へのデータパケットトラフィックを管理するためのトラフィックマネージャ132を含む。一実施形態によれば、トラフィックマネージャ132は、ソースデバイス111aからオーバーレイネットワークコア転送ノード135またはオーバーレイネットワークゲートウェイ転送ノード137へのデータパケットトラフィックを管理する。データパケットがオーバーレイネットワーク130を介して送信されるとき、トラフィックマネージャ134、136、および138は、検出されたネットワーク特性に基づいてトラフィックマネージャ132によって設定されたデータパケット伝送特性を修正することができる。オーバーレイネットワークエージェント131は、特定のデータパケット管理動作を実行するための回路および/またはソフトウェアを含む。オーバーレイネットワークエージェント131は、パケット分析モジュール、データパケットフロー分析モジュール、およびデータパケットフロー管理モジュールを含むことができる。パケット分析モジュールは、パケットジェネレータによって生成されたパケットを分析するために基礎となる処理回路上で実行される回路および/またはソフトウェアを含む。パケット分析モジュールは、パケットのパケット属性を識別する。データパケットフロー分析モジュールは、特定のパケットのフロー特性を分析するために基礎となる処理回路上で実行される回路および/またはソフトウェアを含む。例えば、データパケットフロー分析モジュールは、データパケットフローの長さを識別することができる。データパケットフロー管理モジュールは、識別されたパケット属性に基づいてサービス品質(QoS)要件を設定するためのロジックを含む。データパケットフロー管理モジュールはまた、データパケットフローの長さおよびQoS要件などのパケットの特性に基づいて、パケット優先度、冗長性、および伝送経路のうちの1つまたは複数などの所与のパケットのパケット伝送戦略を設定するためのロジック(処理デバイスの論理ゲートなどのハードウェアと、基礎となる処理回路上で実行するソフトウェアとの任意の組合せとして実装される)を含むことができる。1つまたは複数の実施形態によれば、データパケットフロー管理モジュールは、ソースデバイスからオーバーレイネットワークゲートウェイノードへのデータパケットのルートをマッピングする。例えば、データパケットフロー管理モジュールは、特定のデータパケットのデータ伝送ルートA-B-C-D-E-Fを指定することができ、「A」はソースデバイスと通信するエッジ転送ノードであり、「F」は宛先デバイスに接続されたゲートウェイ転送ノードであり、「B」-「E」はコア転送ノードである。対照的に、従来のデータパケット生成アプリケーションは、データパケット生成デバイスと宛先デバイスとの間の介在ホップを指定することなく、パケットの宛先アドレスおよびパケットの次ホップのアドレスを指定し得る。
【0030】
1つまたは複数の実施形態によれば、オーバーレイネットワークエージェント131は、ソースと宛先との間のオーバーレイネットワークノードを含むすべてのホップを指定する。いくつかの場合には、ソースおよび宛先の一方または両方はオーバーレイノードも含む。他の場合には、ソースおよび宛先の一方または両方はオーバーレイノードを含まない。例えば、クライアントはオーバーレイネットワークエージェントがインストールされていてもよい。一例によれば、ソースデバイスにオーバーレイネットワークエージェントがインストールされているソースデバイスは、宛先サーバにオーバーレイネットワークノードがインストールされていないサービスとしてのソフトウェア(SaaS)プロバイダと通信していてもよい。オーバーレイネットワークエージェントは、ネットワークトポロジに基づいて、SaaSサーバと通信するゲートウェイ転送ノードを識別する。オーバーレイネットワークエージェントは、クライアントとSaaSサーバに接続されたゲートウェイ転送ノードとの間のデータ伝送ルートA-B-C-D-E-Fを指定する。戻り伝送経路において、ゲートウェイ転送ノードは、クライアントへのデータ伝送ルートF-E-D-C-B-Aを指定する。指定された戻り経路は、ネットワーク状況に従って、初期伝送経路と同じであってもなくてもよい。例えば、ゲートウェイ転送ノードは、初期データ伝送ルートよりも低い推定データ伝送時間に基づいて、データ伝送ルートF-G-H-C-B-Aを指定することができる。他の例によれば、SaaSサーバをホストするデータセンタは、データセンタ内にゲートウェイ転送ノードを含むことができる。この例では、オーバーレイネットワークエージェントは、ゲートウェイ転送ノードをデータパケットの宛先として指定することができる。さらに他の例では、データパケットを生成するソースデバイスは、オーバーレイネットワークエージェントを含まない。代わりに、オーバーレイネットワークは、ソースデバイスとエッジ転送ノードとの間のブリッジ転送ノード(
図1には図示せず)を含むことができる。ブリッジ転送ノードは、データパケットを生成しないが、生成されたデータパケットを受信し、データパケットのオーバーレイネットワーク上のデータ伝送経路を指定することができる。
【0031】
一実施形態では、オーバーレイネットワークエージェント131aは、ネットワーク内のエンドツーエンドレイテンシなどのネットワーク特性を分析するためのネットワーク分析モジュールを含む。データパケットフロー管理モジュールは、パケットのQoS要件およびネットワークを介してパケットを送信するための推定送信時間に基づいてパケット送信戦略を設定することができる。データパケットフロー管理モジュールは、ヘッダを作成し、宛先ノードに送信されているデータにヘッダを付加することによって、データパケットにQoS要件を格納することができる。1つまたは複数の実施形態では、ヘッダは、特定のデータ伝送プロトコルのプロトコル情報、パケットのQoS要件、およびデータ伝送ネットワークにおけるパケットの経験を識別する履歴情報を含む可変サイズヘッダである。
【0032】
エッジ転送ノード133は、オーバーレイネットワークエージェント131とコア転送ノード135との間のインターフェースをとる。エッジ転送ノード133は、オーバーレイネットワークへの/からのデータトラフィックのための入口/出口ポイントとして機能する仮想マシン(VM)および/またはソフトウェアパッケージを含む。例えば、オーバーレイネットワークエージェント131aは、データ転送インフラストラクチャ112を介して送信するためのデータパケットを生成するソースデバイス111a内で動作していてもよい。ソースデバイス111aは、ローカルエリアネットワーク(LAN)に属していてよい。エッジ転送ノード133は、LANを広域ネットワーク(WAN)に接続するデータセンタ113aのサーバ114a内で動作するVMであってもよい。言い換えれば、オーバーレイネットワークソフトウェアを実行することによって、サーバ114aは、汎用サーバからオーバーレイネットワーク130のエッジ転送ノード133に変換される。エッジ転送ノード133として、サーバ114aは、オーバーレイネットワークエージェントを実行するソースデバイスとの間、およびコア転送ノード135として機能するサーバとの間でデータを送信する機能を有効にされる。一実施形態によれば、WANは、インターネットの一部であるか、またはインターネットに接続される。
【0033】
コア転送ノード135は、データ転送インフラストラクチャ112のサーバに実装された仮想マシン(VM)および/またはソフトウェアパッケージである。言い換えれば、オーバーレイネットワークソフトウェアを実行することによって、またはオーバーレイネットワークVMを実行することによって、サーバは、オーバーレイネットワーク130の汎用サーバからコア転送ノード135に変換される。コア転送ノード135として、サーバは、エッジ転送ノード133およびゲートウェイ転送ノード137との間でデータを送信する機能を有効にされる。1つまたは複数の実施形態によれば、コア転送ノード135は、エッジ転送ノード133の機能を含み得る。例えば、オーバーレイネットワークVMは、エッジ転送ノードからデータパケットを受信し、宛先に向かって他のコア転送ノードにデータパケットを転送することによって、コア転送ノードとして機能することができる。オーバーレイネットワークVMはまた、いかなるオーバーレイネットワークノードも介在させることなく、1つまたは複数のオーバーレイネットワークエージェントからデータパケットを受信し、1つまたは複数のオーバーレイネットワークエージェントにデータパケットを送信することによって、エッジ転送ノード133として機能することができる。
【0034】
オーバーレイネットワーク130は、オーバーレイネットワーク管理エンジン139をさらに含む。
図1Aは、オーバーレイネットワーク管理エンジン139を、エッジ転送ノード133、コア転送ノード135、およびゲートウェイ転送ノード137とは別の要素として示しているが、1つまたは複数の実施形態において、オーバーレイネットワーク管理エンジン139は、エッジ転送ノード133、コア転送ノード135、およびゲートウェイ転送ノード137の間に分散形式で実装される。一実施形態によれば、オーバーレイネットワーク管理エンジン139は、オーバーレイネットワークエージェント131、エッジ転送ノード133、コア転送ノード135、およびゲートウェイ転送ノード137と通信するサーバなどのコンピュータ上で実行することができる。例えば、あるエッジ転送ノード133は、他のエッジ転送ノード133からデータを受信し、エッジ転送ノード133のスピンアップ、スピンダウン、および修正を管理するための管理ソフトウェアを含むことができる。加えて、または代替として、一実施形態では、サーバ114a、115n、および117nは、実行されると、サーバ114a、115n、および117nをオーバーレイネットワーク130のエッジ転送ノード133として機能させるネットワークオーバーレイソフトウェアをホストする。サーバ114nは、実行されると、サーバ114nをオーバーレイネットワーク管理エンジン139として機能させるオーバーレイネットワークソフトウェアをホストすることができる。代替の実施形態によれば、サーバをエッジ転送ノード133として機能させるソフトウェアをホストするサーバ114a、115n、および117nは、サーバ114a、115n、および117nをオーバーレイネットワーク管理エンジン139として集合的に機能させるソフトウェアもホストする。
【0035】
1つまたは複数の実施形態では、オーバーレイネットワーク管理エンジン139は、データを分析および提示するために本明細書に記載の動作を実行するように構成されたハードウェアおよび/またはソフトウェアを指す。オーバーレイネットワークを修正するためにデータネットワークを分析するための動作の例が、
図2を参照して以下に説明される。
【0036】
一実施形態では、オーバーレイネットワーク管理エンジン139は、1つまたは複数のデジタルデバイス上に実装される。「デジタルデバイス」という用語は、一般に、プロセッサを含む任意のハードウェアデバイスを指す。デジタルデバイスは、アプリケーションを実行する物理デバイスまたは仮想マシンを指すことができる。デジタルデバイスの例は、コンピュータ、タブレット、ラップトップ、デスクトップ、ネットブック、サーバ、ウェブサーバ、ネットワークポリシーサーバ、プロキシサーバ、汎用マシン、機能固有ハードウェアデバイス、ハードウェアルータ、モバイルハンドセット、スマートフォン、携帯情報端末(「PDA」)、通信管理デバイス、ルータ、スイッチ、コントローラ、アクセスポイント、および/またはクライアントデバイスを含む。
【0037】
オーバーレイネットワーク管理エンジン139は、オーバーレイネットワーク130上のデータトラフィックを分析するためのデータトラフィック分析エンジン140を含む。一実施形態によれば、データトラフィック分析エンジン140は、それぞれ、オーバーレイネットワークエージェント131、オーバーレイネットワークエッジ転送ノード133、オーバーレイネットワークコア転送ノード135、およびオーバーレイネットワークゲートウェイ転送ノード137上で動作している1つまたは複数のトラフィックマネージャ132,134,136、138からデータトラフィックデータを取得する。他の実施形態によれば、データトラフィック分析エンジン140は、それぞれ、オーバーレイネットワークエージェント131、オーバーレイネットワークエッジ転送ノード133、オーバーレイネットワークコア転送ノード135、およびオーバーレイネットワークゲートウェイ転送ノード137上で動作している1つまたは複数のトラフィックマネージャ132,134,136、138の一部として実装される。
【0038】
データトラフィック分析エンジン140は、特定の地理的領域について受信されたデータトラフィック情報を分析する。データトラフィック分析エンジン140は、受信したデータトラフィック分析情報に基づいてオーバーレイネットワークを修正するために、データトラフィック分析情報をオーバーレイネットワーク修正エンジン142に提供する。例えば、データトラフィック分析エンジン140は、特定の領域内のソースデバイスから、またはローカルエリアネットワークから、エッジ転送ノードで受信されたデータトラフィックを測定することができる。データトラフィック分析エンジン140は、データトラフィックを処理するために、測定されたデータトラフィックをエッジ転送ノードの容量と比較することができる。同様に、データトラフィック分析エンジン140は、コア転送ノードへのデータトラフィックを、データトラフィックを処理するためのコア転送ノードの容量と比較することができる。
【0039】
1つまたは複数の実施形態によれば、データトラフィック分析エンジン140は、オーバーレイネットワーク130を通るデータトラフィックのモデル155を生成するためのオーバーレイネットワークモデルエンジン141を含む。モデル155は、オーバーレイネットワーク130のノードを通る将来のデータトラフィックの予測を含むことができる。例えば、データトラフィック分析エンジン140は、地理的領域に関連付けられたエッジ転送ノードのセットを介して100個のデータストリームを識別することができる。100個のデータストリームは、エッジ転送ノードのセットの低データトラフィック負荷に対応することができる。オーバーレイネットワークモデルエンジン141は、(a)エッジ転送ノードの数を減らすこと、(b)エッジ転送ノードの数を増やすこと、(c)現在のエッジ転送ノードの数をそれらの現在の構成に維持すること、または(d)1つまたは複数のエッジ転送ノードの処理容量を修正しながら現在のエッジ転送ノードの数を維持すること、のためにオーバーレイネットワーク130を修正するかどうかを決定するために、地理的領域内の予測データトラフィックに基づいてモデル155を生成することができる。
【0040】
オーバーレイネットワークモデルエンジン141は、以前に観測された季節的データトラフィックパターン(周期的な毎日、毎週、または毎月のデータトラフィックの増減など)、現在のデータトラフィックおよび最近測定されたデータトラフィックに基づく計算された傾向、ならびに地理的領域に位置する慣習などの既知の将来のイベントを含むデータセットに基づいて、オーバーレイネットワークモデルを生成することができる。一実施形態によれば、モデル155は、オーバーレイネットワーク130を通るデータトラフィックの将来の状態の予測を表す。加えて、または代替として、モデルは、オーバーレイネットワークを通るデータトラフィックの現在の状態を表すことができる。1つまたは複数の実施形態によれば、モデル155は、特定の地理的領域に関連付けられたソースデバイスとエッジ転送ノードとの間のデータフローの予測を表す。
【0041】
一実施形態によれば、オーバーレイネットワークモデルエンジン141は、ネットワークモデル155を生成する機械学習モデルエンジン143を含む。機械学習モデルエンジン143は、将来のネットワーク属性の予測を生成するために既知のネットワーク属性の訓練データセットを使用してモデルを訓練する。加えて、または代替として、機械学習モデルエンジン143は、オーバーレイネットワーク130を修正するための推奨を生成するようにモデル155を訓練することができる。例えば、一実施形態によれば、機械学習モデルエンジン143は、将来の3日間などの特定の期間のネットワーク属性154を予測するように第1のモデルを訓練する。オーバーレイネットワーク管理エンジン139は、特定の地理的領域、その地理的領域への/からのデータトラフィックを処理するエッジ転送ノード、およびその地理的領域内に位置するソースデバイスをグラフィカルに表すために、ユーザインターフェース157上にグラフィカルユーザインターフェース(GUI)を生成することができる。ソースデバイスとエッジ転送ノードとの間のデータトラフィックおよびRTTなどの予測ネットワーク属性を閾値の値と比較したことに基づいて、オーバーレイネットワーク管理エンジン139は、閾値の値を超えるネットワーク属性値に関連付けられたデータフローおよび/またはエッジ転送ノードを異なる視覚パターンで表すようにGUIを修正することができる。例えば、オーバーレイネットワーク管理エンジン139は、エッジ転送ノードへのデータフローのクラスタを赤色で強調表示することができる。加えて、または代替として、オーバーレイネットワーク管理エンジン139は、エッジ転送ノードによって処理されているデータトラフィックのレベルの増加に基づいて、エッジ転送ノードを表す要素の視覚的サイズを増加させることができる。さらに、機械学習モデルエンジン143は、オーバーレイネットワークを修正するための推奨を生成するために第2のモデルを訓練することができる。例えば、地理的領域の特定のサブ領域内に位置するソースデバイスのクラスタが閾値の値を超えるエッジ転送ノードへのデータトラフィックレベルに寄与する高レベルのトラフィックを生成するであろうことを示すデータに部分的に基づいて、第2のモデルは、ソースデバイスのクラスタに地理的に近い特定のデータセンタに特定のエッジ転送ノードを追加することを推奨することができる。オーバーレイネットワーク管理エンジン139は、予測されたネットワーク属性に基づく推奨としての描写を区別するために、他と異なる視覚的特性(他と異なる色または破線など)を有するGUIでの推奨の描写を生成することができる。
【0042】
いくつかの例では、機械学習モデルエンジン143の1つまたは複数の要素は、機械学習アルゴリズムを使用して、(a)将来のネットワーク属性値を予測すること、(b)将来の属性値に基づいてオーバーレイネットワークのモデルを生成すること、および(c)測定および/または予測されたネットワーク属性値に基づいてオーバーレイネットワークを修正するための推奨を生成することのうちの1つまたは複数を実行することができる。機械学習アルゴリズムは、訓練データのセットを使用して、入力変数のセットを出力変数に最良にマッピングする目標モデルfを学習するために反復されることができるアルゴリズムである。機械学習アルゴリズムは、教師付き構成要素および/または教師なし構成要素を含むことができる。線形回帰、ロジスティック回帰、線形判別分析、分類および回帰木、ナイーブベイズ、k近傍法、学習ベクトル量子化、サポートベクトルマシン、バギング、およびランダムフォレスト、ブースティング、逆伝播、および/またはクラスタリングなどの様々なタイプのアルゴリズムが使用され得る。
【0043】
一実施形態では、訓練データのセットは、データセットおよび関連するラベルを含む。データセットは、目標モデルfの入力変数(例えば、ソースデバイスに関連付けられたRTT測定値、データ伝送経路の測定された遅延値、データ伝送経路の測定されたレイテンシ値など)に関連付けられる。関連付けられたラベルは、対象モデルfの出力変数(例えば、将来の時刻における予測RTT値、将来の時刻における他の予測ネットワーク属性値)に関連付けられる。訓練データは、例えば、現在の目標モデルfの精度に関するフィードバックに基づいて更新されてもよい。更新された訓練データは機械学習アルゴリズムにフィードバックされ、機械学習アルゴリズムは次に目標モデルfを更新する。
【0044】
機械学習アルゴリズムは、目標モデルfが訓練データのデータセットを訓練データのラベルに最もよく適合させるように目標モデルfを生成する。追加的または代替的に、機械学習アルゴリズムは、目標モデルfが訓練データのデータセットに適用されると、目標モデルfによって決定された結果の最大数が訓練データのラベルと一致するように、目標モデルfを生成する。
【0045】
一実施形態では、第1の機械学習アルゴリズムが反復されて、測定および取得されたデータ(例えば、ネットワーク属性、地理的領域データ、および時間データ)と、将来の時点における特定のエッジ転送ノードを通るトラフィックなどの将来のネットワーク属性値との間の関係を学習することができる。一実施形態では、第2の機械学習アルゴリズムが反復されて、測定および取得されたデータ(例えば、ネットワーク属性、地理的領域データ、および時間データ)と、特定の地理的領域において新しいエッジ転送ノードを生成するなど、オーバーレイネットワークに対する推奨される修正との間の関係を学習することができる。
【0046】
データトラフィック分析エンジン140によって生成されたデータトラフィック分析情報および/またはオーバーレイネットワークモデルエンジン141によって生成されたモデルの一方または両方に基づいて、オーバーレイネットワーク修正エンジン142は、オーバーレイネットワーク130を修正する。オーバーレイネットワーク修正エンジン142は、データトラフィック分析エンジン140および/またはオーバーレイネットワークモデルエンジン141によって生成されたモデル155の一方または両方で識別されたネットワーク属性に基づいて、オーバーレイネットワーク130を修正することができる。
図1Bに例示されるように、ネットワーク属性は、測定されたネットワーク属性151および予測されるネットワーク属性154を含み得る。ネットワーク属性は、オーバーレイネットワーク属性152および物理トポロジ属性153をさらに含み得る。測定および/または予測され得るネットワーク属性の例は、エッジ転送ノードへの/からのデータトラフィックの量、コア転送ノードへの/からのデータトラフィックの量、特定の地理的領域におけるデータトラフィックに関連付けられた2つ以上のエッジ転送ノードのセットへの/からのデータトラフィックの量、オーバーレイネットワークにアクセスする地理的領域におけるユーザの数、オーバーレイネットワークにアクセスするユーザのユーザごとのトラフィック、データトラフィックのデータ伝送における測定された遅延、特定の地理的領域についてエッジ転送ノードにアクセスするソースデバイスの数、データのタイプ(例えば、ビデオ、音声、バックグラウンドアプリケーションデータ、テキストメッセージ型データ)、短命データフローに対応するデータフローの数と比較して、長命データフローに対応するエッジ転送ノードへの/からのデータフローの数(例えば、TCPの定常状態段階に進むことなく送信制御プロトコル(TCP)データ送信のスロースタート段階に留まるのに十分短いデータフロー)、地理的領域内のソースデバイスの位置、地理的領域内のソースデバイスの濃度、エッジ転送ノードまたはノードのエッジ転送グループから地理的領域内のユーザへのデータ送信のためのラウンドトリップ時間(RTT)、エッジ転送ノードまたはエッジ転送ノードグループからゲートウェイ転送ノードへのRTT、エッジ転送ノードの計算能力、異なる時間におけるデータ使用に対する予想される変化、およびエッジ転送ノードのグループに接続されたデータ送信要素のデータ伝送容量を含む。測定および予測されたネットワーク属性に加えて、定義されたネットワーク属性は、ネットワークサービスプロバイダまたはオーバーレイネットワークプロバイダから取得され得る。定義されたネットワーク属性の例は、(他の属性に関係なく)地理的領域内で動作していることが要求され得る最小数のエッジ転送ノード、要求されるエッジ転送ノードの冗長性のレベル、新しいエッジ転送ノードを追加するコスト、既存のエッジ転送ノードを修正するコスト、エッジ転送ノードグループによってサービスされる地理的領域の地理的境界、およびネットワークモデルの過去の精度を含む。データトラフィック属性のいくつかの例が上記に提供されているが、実施形態は上記に提供された例に限定されない。
【0047】
1つまたは複数の実施形態によれば、オーバーレイネットワーク修正エンジン142は、オーバーレイネットワーク130を修正するための推奨を生成する。人間のオペレータは、オーバーレイネットワーク130を修正するために推奨に応じて行動することができる。1つまたは複数の実施形態によれば、オーバーレイネットワーク修正エンジン142は、特定の修正が実施前に人間の承認を必要とするかどうか決定するために、1つまたは複数の規則156を適用することができる。例えば、オーバーレイネットワーク修正エンジン142は、地理的領域に関連付けられた新しいエッジ転送ノードを作成するために人間の認可を要求する1つの規則を適用することができる。オーバーレイネットワーク修正エンジン142は、地理的領域に関連付けられたエッジ転送ノードへのデータトラフィックの減少を検出したことに基づいて、定義された期間の後にエッジ転送ノードをシャットダウンするために人間の認可を要求しない他の規則を適用することができる。
【0048】
例示的な実施形態によれば、オーバーレイネットワーク修正エンジン142は、オーバーレイネットワークモデル155が、特定の地理的領域内のソースデバイスからデータを受信するエッジ転送ノードのセットとの間のデータトラフィックが上限閾値レベルを超えると予測すると決定したことに基づいて、特定の地理的領域に関連付けられたエッジ転送ノードのセットに追加のエッジ転送ノード133を追加することができる。エッジ転送ノードを追加することは、オーバーレイネットワーク130の既存のエッジ転送ノードを既にホストしているデータセンタの1つまたは複数のサーバにおいてオーバーレイネットワークソフトウェアの新しいインスタンスを実行することを含むことができる。代替的または追加的に、エッジ転送ノードを追加することは、オーバーレイネットワーク130の任意の既存のエッジ転送ノードを現在ホストしている任意のデータセンタから地理的に離れているデータセンタの1つまたは複数のサーバにおいてオーバーレイネットワークソフトウェアの新しいインスタンスを実行することを含むことができる。
【0049】
逆に、モデル155が、特定の地理的領域内のソースデバイスからデータを受信するエッジ転送ノードの特定のセットへの/からのデータトラフィックがより低い閾値レベルよりも低くなると予測すると決定したことに基づいて、オーバーレイネットワーク修正エンジン142は、特定の地理的領域に関連付けられたエッジ転送ノードのセットから既存のエッジ転送ノード133を除去することができる。
【0050】
さらに他の実施形態によれば、モデル155が、特定の地理的領域内のソースデバイスからデータを受信するエッジ転送ノードの特定のセットへの/からのデータトラフィックが上限閾値レベルを超えると予測すると決定したことに基づいて、オーバーレイネットワーク修正エンジン142は、既存のエッジ転送ノードの処理容量を増大させることができる。例えば、エッジ転送ノードは、サーバ上で動作する仮想マシン(VM)またはサーバクラスタとして実装されてもよい。オーバーレイネットワーク修正エンジン142は、(a)サーバクラスタ上の第2のVMをスピンアップすることによって、または(b)既存のVMの処理容量(例えば、帯域幅、割り当てられた処理スレッドなど)をスケールアップすることによって、エッジ転送ノードの処理容量を増大させることができる。第2のVMのスピンアップまたは既存のVMの処理容量のスケールアップは、例えば、クラウドサービスプロバイダ(CSP)によって維持されるAPIへの1つまたは複数のアプリケーションプログラミングインターフェース(API)呼び出しを介して達成され得る。他の実施形態によれば、データセンタは、同じサーバの異なるパーティションにアクセスする異なるクライアントを収容するようにサーバを区分することができる。パーティションは、特定の処理容量を各クライアントに、および各クライアントの特定のデータストレージに割り当てることができる。オーバーレイネットワーク修正エンジン142は、追加のVMおよび/またはソフトウェアパッケージをスピンアップすることによって既存のエッジ転送ノードの処理容量を増大させることができる。追加のVMおよび/またはソフトウェアパッケージをスピンアップすることに関連付けられたコンピューティング要求に基づいて、CSPは、既存のエッジ転送ノードが既に実行されている同じサーバ上の1つまたは複数の追加のパーティション上でVMおよび/またはソフトウェアパッケージを実行することができる。
【0051】
1つまたは複数の実施形態によれば、オーバーレイネットワーク130にエッジ転送ノードを追加することは、ソースデバイスと宛先デバイスとの間で送信されるべきデータパケットのために以前はアクセスできなかったデータ経路にアクセスすることをもたらし得る。例えば、第1の地理的領域に関連付けられた第1のエッジ転送ノードは、データ伝送線路を介して第1のコア転送ノードに通信可能に結合され得る。第2の地理的領域に関連付けられた第2のエッジ転送ノードは、データ伝送線路を介して第2のコア転送ノードに通信可能に結合され得る。第1のエッジ転送ノードは、データ伝送線路を介して第2のコア転送ノードに通信可能に結合されなくてもよい。オーバーレイネットワーク修正エンジン142は、第1の地理的領域に関連付けられた第3のエッジ転送ノードを追加することができる。第3のエッジ転送ノードは、データ伝送線路を介して第2のコア転送ノードに通信可能に結合されてもよい。結果として、オーバーレイネットワーク管理エンジン139は、第1の地理的領域からのデータトラフィックに以前は利用できなかった一部のトラフィックを第2のコア転送ノードにルーティングすることができる。
【0052】
オーバーレイネットワーク修正エンジン142がオーバーレイネットワーク130を修正すると、オーバーレイネットワーク管理エンジン139は、オーバーレイネットワーク130全体のトラフィックマネージャ132、134、136、および138に変更を通知する。例えば、オーバーレイネットワーク管理エンジン139は、新しいエッジ転送ノードに関連付けられた地理的領域内に位置するオーバーレイネットワークエージェント131へ、新しいエッジ転送ノードが、オーバーレイネットワークエージェント131が動作しているソースデバイスからのデータをルーティングするためのデータ送信ノードとして利用可能であるという通知を生成することができる。ソースデバイスが、宛先デバイスへ送信するためのデータパケットを生成すると、オーバーレイネットワークエージェント131は、データパケットにルーティング情報を付加する。例えば、オーバーレイネットワークエージェント131は、利用可能なルートのRTT、データ損失率、および信頼性などのルート特性を分析し、特定のエッジ転送ノードをデータパケットの次のストップとして指定することができる。1つまたは複数の実施形態において、オーバーレイネットワークエージェント131はまた、データパケットのルーティングデータとして、1つまたは複数のコア転送ノードおよびゲートウェイ転送ノードを指定することができる。オーバーレイネットワーク修正エンジン142が特定の地理的領域のための新しいエッジ転送ノードを追加するときに、その地理的領域内のオーバーレイネットワークエージェントは、その新しいエッジ転送ノードに関連付けられたルート特性を分析して、その新しいエッジ転送ノードを、そのオーバーレイネットワークエージェントが動作しているソースデバイスで発生するデータパケットの次のストップとして指定すべきかどうか決定する。
【0053】
オーバーレイネットワーク管理エンジン139は、新しいエッジ転送ノードのアドレスデータを、新しいエッジ転送ノードに関連付けられた地理的領域内のオーバーレイネットワークエージェント131へ送信する。いくつかの場合には、オーバーレイネットワーク管理エンジン139は、新しいエッジ転送ノードを介してアクセス可能なゲートウェイ転送ノード137のアドレスデータをさらに送信することができる。1つまたは複数の実施形態によれば、オーバーレイネットワーク管理エンジン139は、新しいエッジ転送ノードと1つまたは複数のゲートウェイ転送ノード137との間でデータを送信するための測定されたRTT、新しいエッジ転送ノードに関連付けられたデータ損失率、新しいエッジ転送ノードの処理容量、および新しいエッジ転送ノードの地理的位置などのネットワーク特性を送信することができる。通知されたオーバーレイネットワークエージェントは、オーバーレイネットワーク管理エンジンによって提供されたネットワーク特性データに基づいて、新しいエッジ転送ノードを介してパケットをルーティングすべきかどうか決定することができる。
【0054】
1つまたは複数の実施形態によれば、オーバーレイネットワーク管理エンジン139は、定義された継続時間にわたって特定の地理的領域に関連付けられたエッジ転送ノードを修正する。定義された継続時間は、(a)ネットワークデバイスプロバイダがネットワークデバイスへのアクセスをリースする時間ブロック、(b)データトラフィック分析エンジン140がデータトラフィックレベルが上限閾値レベルを超えると予測する予測期間、(c)地理的領域内のエッジ転送ノードへのデータトラフィックを測定または予測するモデルの粒度、(d)オーバーレイネットワークプロバイダによって割り当てられたデフォルト継続時間、(e)特定の時間および特定の継続時間におけるネットワークデバイスへの購入/リースアクセスに関連付けられたコスト、および(f)地理的領域についての予測または測定されたデータトラフィックレベルが正確である尤度などの1つまたは複数の要因に基づいて定義され得る。一例によれば、地理的領域に関連付けられたエッジ転送ノードにおける将来のデータトラフィックレベルを予測するモデルは、データトラフィックレベルがより低いレベルに戻る前に12時間上昇したままになるという予測を含む。モデルは、予測に高い信頼度を割り当てることができる。モデルは、地理的領域に関連付けられたエッジ転送ノードにおける将来のデータトラフィックレベルが、より低いレベルに戻る前にさらに4時間上昇したままであり得ることをさらに予測することができる。モデルは、後者の予測に低い信頼度を割り当てることができる。オーバーレイネットワーク修正エンジン142は、オーバーレイネットワークに対する修正のための定義された時間長を決定するために、オーバーレイネットワーク130を修正するための規則のセットをモデルまたはデータトラフィック分析情報に適用することができる。例えば、オーバーレイネットワーク修正エンジン142は、追加のエッジ転送ノードを維持するためにサーバリソースへのアクセスをリースするコストが、12時間の場合よりも16時間の場合のほうが実質的に高いと決定することができる。したがって、オーバーレイネットワーク修正エンジン142は、データトラフィックレベルが上昇する可能性および追加のエッジ転送ノードを維持するためのコストに基づいて、オーバーレイネットワーク130に新しいエッジ転送ノードを追加するための定義された継続時間を12時間に設定する規則を適用することができる。
【0055】
オーバーレイネットワーク管理エンジン139は、定義された継続時間中にデータトラフィックレベルを監視して、オーバーレイネットワーク130への修正を拡張するか、または修正の満了を可能にするかを決定することができる。例えば、オーバーレイネットワーク管理エンジン139が、24時間の定義された時間長にわたって地理的領域に関連付けられたデータトラフィックを処理するために新しいエッジ転送ノードを追加する場合、オーバーレイネットワーク管理エンジン139は、20時間が経過した後に地理的領域内のデータトラフィックを監視して、新しいエッジ転送ノードの可用性をさらに24時間延長するかどうかを決定することができる。
【0056】
1つまたは複数の実施形態によれば、オーバーレイネットワークは、
図1Aに示すように、オーバーレイネットワークエージェント131を実行するソースデバイスと、アプリケーションサーバなどの宛先デバイスに接続されたゲートウェイ転送ノード137との間の複数のホップにあるオーバーレイネットワークノード、またはネットワークサーバを含むプライベートクラウドネットワークを含む。データトラフィック分析エンジン140は、オーバーレイネットワークノードを含むホップ数(例えば、物理トポロジ内のノードまたはネットワークデバイス118)に対応する粒度のレベルでネットワーク属性を取得することができる。例えば、エッジ転送ノード133とゲートウェイ転送ノードとの間の各ホップがコア転送ノード135である実施形態では、オーバーレイネットワークは、エンドツーエンドからノード間まで、任意のレベルの粒度でネットワーク属性を測定することができる。例えば、データトラフィック分析エンジン140は、(a)オーバーレイネットワークエージェント131を実行しているソースデバイスとエッジ転送ノード133との間のRTT、(b)エッジ転送ノード133と任意の下流コア転送ノード135との間の伝送時間、(c)2つのコア転送ノード135間の伝送時間、(d)ソースデバイスと宛先デバイスとの間のRTT、(e)エッジ転送ノード133とゲートウェイ転送ノード137との間の伝送時間、および(f)任意のコア転送ノード135と下流ゲートウェイ転送ノード137との間の伝送時間を測定することができる。
【0057】
1つまたは複数の中間ホップがオーバーレイネットワークコア転送ノード135を含まない実施形態では、オーバーレイネットワーク管理エンジン139は、非オーバーレイネットワークデバイスのデータ伝送属性にアクセスすることができない場合がある。しかしながら、システムは、既存のオーバーレイネットワークノードに基づいてオーバーレイネットワーク属性を依然として計算することができる。例えば、データ伝送ルートがエッジ転送ノード133、コア転送ノード135、第1の非オーバーレイサーバ、第2の非オーバーレイサーバ、およびゲートウェイ転送ノード137を含む場合、オーバーレイネットワーク管理エンジン139は、エッジ転送ノード133とゲートウェイ転送ノード137との間のRTT値を計算することができる。しかしながら、オーバーレイネットワーク管理エンジン139は、第1の非オーバーレイサーバから第2の非オーバーレイサーバへの送信時間にアクセスできない場合がある。
【0058】
ネットワーク属性の粒度を高めることに加えて、オーバーレイネットワークノードは、データトラフィックルーティングの粒度をさらに高める。1つまたは複数の実施形態によれば、オーバーレイネットワークエージェント131を実行するソースデバイスとゲートウェイ転送ノード137との間のルートに沿ったオーバーレイネットワークノードは、オーバーレイネットワーク管理エンジン139によって検出されたネットワーク属性に基づいてデータパケットのルートを変更することができる。例えば、データパケットをルーティングするための従来のプロセスは、ソースデバイスが、データパケットのヘッダ内のデータパケットの宛先アドレスおよびデータパケットの次ホップのアドレスを提供することを含むことができる。次ホップ(例えば、ルータ)がそのルーティングテーブル内で宛先IPアドレスを見つけられない場合、ルータはデフォルトルートで、通常はネットワークの階層の上の次のルータに(例えば、地域ISPルータからバックボーンNSPルータに)パケットを送信する。このプロセスは、データパケットが宛先ネットワークまたはNSPバックボーンのいずれかに到達するまで繰り返される。対照的に、1つまたは複数の実施形態によれば、データパケットをデフォルトルータにルーティングする代わりに、オーバーレイネットワークノードは、信頼性、データ損失、遅延、およびレイテンシなどの検出されたネットワーク特性に基づいて、データ伝送経路に沿って特定のルータにデータパケットをルーティングすることができる。言い換えれば、データパケットをルーティングするための従来のプロセスでは、ネットワーク階層の下位のルータ(ローカルエリアネットワークルータおよびエッジルータなど)は、地域ISPルータなどの、階層の上位のルータおよびネットワークのネットワーク属性にアクセスすることができない。同様に、地域ISPルータは、バックボーンNSPルータのネットワーク属性にアクセスできない。しかしながら、オーバーレイネットワークは、オーバーレイネットワーク管理エンジン139がオーバーレイネットワークの各ホップでネットワーク属性を検出することを可能にする。加えて、オーバーレイネットワークノードは、デフォルトのルーティング設定に基づくのではなく、検出されたネットワーク属性に基づいて次のオーバーレイネットワークノードにデータパケットをルーティングすることができる。代替実施形態によれば、1つまたは複数の地域オーバーレイネットワーク管理エンジン139は、ネットワーク特性を分析し、データトラフィックのホップを指定することができる。例えば、データパケットのデータ伝送経路は、3つの領域にまたがることができる。第1の領域に関連付けられた第1のオーバーレイネットワーク管理エンジン139は、データパケットのためのエンドツーエンドデータ伝送経路を指定することができる。第2の領域に関連付けられた第2のオーバーレイネットワーク管理エンジン139は、測定され推定されたネットワーク特性に基づいて第2の領域から最終領域へのデータ伝送経路を変更することができる。第3の領域に関連付けられた第3のオーバーレイネットワーク管理エンジン139は、測定され推定されたネットワーク特性に基づいて第3の領域から最終領域へのデータ伝送経路を変更することができる。
【0059】
1つまたは複数の実施形態では、データリポジトリ150は、データを記憶するための任意の種類の記憶ユニットおよび/またはデバイス(例えば、ファイルシステム、データベース、テーブルの集合、または任意の他の記憶機構)である。さらに、データリポジトリ150は、複数の異なる記憶ユニットおよび/またはデバイスを含むことができる。複数の異なる記憶ユニットおよび/またはデバイスは、同じタイプであってもなくてもよく、または同じ物理的サイトに配置されてもいなくてもよい。さらに、データリポジトリ150は、オーバーレイネットワーク管理エンジン139と同じコンピューティングシステム上に実装または実行することができる。代替的または追加的に、データリポジトリ150は、オーバーレイネットワーク管理エンジン139とは別個のコンピューティングシステム上に実装または実行されてもよい。データリポジトリ150は、直接接続またはネットワークを介してオーバーレイネットワーク管理エンジン139に通信可能に結合され得る。
【0060】
1つまたは複数の実施形態では、システム100は、
図1Aおよび
図1Bに示す構成要素よりも多いまたは少ない構成要素を含むことができる。
図1Aおよび
図1Bに示す構成要素は、互いにローカルまたはリモートであってもよい。
図1Aおよび
図1Bに示す構成要素は、ソフトウェアおよび/またはハードウェアで実装されてもよい。各構成要素は、複数のアプリケーションおよび/またはマシンにわたって分散されてもよい。複数の構成要素を1つのアプリケーションおよび/またはマシンに組み合わせることができる。1つの構成要素に関して説明された動作は、代わりに他の構成要素によって実行されてもよい。
【0061】
コンピュータネットワークに関する追加の実施形態および/または例は、「コンピュータネットワークおよびクラウドネットワーク」と題するセクション6で以下に説明される。
【0062】
3.オーバーレイネットワークの修正
図2は、1つまたは複数の実施形態によるネットワーク属性に基づいてオーバーレイネットワークを修正するための動作の例示的なセットを示す。
図2に示す1つまたは複数の動作はひとまとめに、修正、再配置、または省略され得る。したがって、
図2に示す動作の特定のシーケンスは、1つまたは複数の実施形態の範囲を限定するものと解釈されるべきではない。
【0063】
システムは、特定の地理的領域についての物理ネットワークトポロジおよびオーバーレイネットワークのネットワーク属性を取得する(動作202)。ネットワーク属性は、ネットワーク要素間のデータ伝送のためのRTTなど、ネットワークを介したデータ伝送属性を含む。例えば、エッジ転送ノードがソースデバイスをデータ転送インフラストラクチャに接続し、ゲートウェイ転送ノードが宛先デバイスをデータ転送インフラストラクチャに接続する、
図1Aに示すトポロジを有するシステムでは、システムは、ソースデバイスと宛先デバイスとの間、ソースデバイスとエッジ転送ノードとの間、およびエッジ転送ノードとゲートウェイ転送ノードとの間のRTTを測定することができる。
【0064】
ネットワーク属性は、物理トポロジの属性および物理トポロジ上で動作するオーバーレイネットワークの属性を含むことができる。物理トポロジの属性は、ネットワークデバイス間のデータトラフィックボリュームおよび/または帯域幅、ネットワークデバイス間のデータトラフィックを構成するデータの種類(例えば、ビデオ、音声、バックグラウンドアプリケーションデータ、テキストメッセージ型データ)、新しいオーバーレイネットワークノードをスピンアップするためにオーバーレイネットワークによってアクセスされ得るオーバーレイネットワークの一部ではないネットワークデバイスの数、遅延、データ損失、およびネットワークデバイス間のレイテンシ、ネットワークデバイスのデータ伝送容量、およびネットワークデバイスのデータ処理容量を含む。オーバーレイネットワークの属性は、オーバーレイネットワークノード間および/またはソースデバイスとオーバーレイネットワークノードとの間のデータトラフィック量および/または帯域幅、オーバーレイネットワークにアクセスする地理的領域内のユーザの数、特定の地理的領域に関連付けられたソースデバイスとエッジ転送ノードとの間のユーザごとのトラフィック、ネットワークデバイス間のデータトラフィックを構成するデータの種類、オーバーレイネットワークノード間および/またはソースデバイスとオーバーレイネットワークノードとの間の遅延、データ損失、およびレイテンシ、ならびに特定の地理的領域内のオーバーレイネットワークにアクセスするソースデバイスの位置を含むことができる。
【0065】
上記の例は、測定され得るネットワーク属性を含むが、システムは、ユーザによって指定されたネットワーク属性をメモリからさらに取得することができる。例えば、ネットワークオーバーレイ管理者は、特定の地理的領域に関連付けられたエッジ転送ノードの数を特定の最小値に設定することができる。ネットワークオーバーレイ管理者は、地理的領域のデータ伝送属性を計算するために使用される地理的領域を定義する地理的境界を設定することができる。ネットワークオーバーレイ管理者は、物理ネットワークデバイス上でオーバーレイネットワークのノードを動作させるのに必要なデータ伝送特性(データ処理容量、プロセッサ、コアなど)の特定の値を設定することができる。システムは、ネットワーク内の物理デバイス間の相互接続、定義された期間にわたってネットワークデバイスへのアクセスをリースまたは取得するためのコスト、ならびにサーバなどのネットワークデバイスの処理および記憶特性(プロセッサ数、コア数、スループット容量など)などのネットワーク属性を取得することができる。
【0066】
システムは、測定データと以前に取得されたデータとの組合せに基づいていくつかのネットワーク属性を取得することができる。例えば、システムは、閾値範囲内の低い値を有するものとして、2つのオーバーレイネットワークノード間のRTTを測定することができる。しかしながら、システムは、RTTが実質的に予測不可能に変動することを示す記憶された履歴データにアクセスすることができる。したがって、システムは、2つのオーバーレイネットワークノードを含むオーバーレイネットワークルートについての低い「信頼性」ネットワーク属性を計算することができる。
【0067】
1つまたは複数の実施形態によれば、システムは、ソースデバイスと宛先デバイスとの間のデータ伝送経路に沿ったオーバーレイネットワークノードと非オーバーレイネットワークルータとの組合せに基づいてネットワーク属性を取得する。例えば、複数の非オーバーレイネットワークホップを含むデータ伝送経路では、システムは、非オーバーレイネットワークホップに固有のネットワーク属性を計算することができない場合がある。さらに、システムは、非オーバーレイネットワークホップを通る特定のルートを指定することができない場合がある。代わりに、システムはエンドツーエンドRTT値、データ損失値、およびレイテンシ値を測定することができる。さらに、システムは、オーバーレイネットワークエージェントを実行するソースデバイスとエッジ転送ノードとの間のネットワーク属性(RTT値、データ損失値、レイテンシ値など)を測定することができる。対照的に、オーバーレイネットワークノードを含むデータ伝送経路では、システムは、オーバーレイネットワークノードを含む任意のルートに沿ってネットワーク属性を測定することができる。例えば、非オーバーレイネットワークルータは、データパケットの宛先としてデフォルトルータを指定することができるが、オーバーレイネットワークコア転送ノードは、任意の他のコア転送ノードをデータパケットの次ホップとして指定する機能を含むことができる。ネットワーク属性に基づいて次ホップコア転送ノードを指定する機能は、データパケットをデフォルトルータにルーティングすることによって取得されたルートを超えてソースデバイスと宛先デバイスとの間の追加のルートのネットワーク特性を測定する機能をシステムに提供する。
【0068】
1つまたは複数の実施形態によれば、システムは、(a)ソースデバイスの位置、(b)エッジ転送ノードの位置、および(c)地理的距離に基づいて地理的領域を指定する。例えば、オーバーレイネットワークにアクセスするユーザ/ソースデバイスが比較的少ない地理的領域では、システムは、ソースデバイスおよび1つまたは複数のエッジ転送ノードを含むように比較的大きな地理的領域を指定することができる。対照的に、オーバーレイネットワークにアクセスする比較的多数のユーザ/ソースデバイスを有する領域では、システムは、ソースデバイスおよびエッジ転送ノードを含むように比較的小さな地理的領域を指定することができる。
【0069】
例えば、システムは、エッジ転送ノードの位置が許す場合、各エッジ転送ノードが第1のデータスループットレートより多くを処理すべきではない、事前定義されたパラメータの下で動作し得る。特定の地理的領域がオーバーレイネットワークにアクセスするソースデバイスを含み、第1のデータスループットレートが3倍になるとシステムが決定した場合、システムは、特定の地理的領域から3つ以上のより小さい地理的領域を生成することができ、その結果、より小さい領域の各々のエッジ転送ノードは第1のデータスループットレートを超えない。他の例として、システムは、エッジ転送ノードの位置が許す場合、各ソースデバイスがエッジ転送ノードの所定の距離内にあるべきである所定のパラメータの下で動作し得る。したがって、システムは、エッジ転送ノードからソースデバイスまでの距離に基づいて、エッジ転送ノードに関連付けられた特定の領域に地理的境界を割り当てることができる。
【0070】
測定されたネットワーク属性および指定されたネットワーク属性に基づいて、システムは、特定の地理的領域および特定の期間に関連付けられたネットワーク属性を予測する(動作204)。一実施形態によれば、システムは、物理ネットワークデバイスおよび物理ネットワークデバイス上で動作するオーバーレイネットワークノードの一方または両方を含むネットワークのモデルを生成する。モデルは、特定の時点におけるネットワーク属性の予測を表すことができる。
【0071】
一実施形態によれば、システムは、測定されたネットワーク属性の傾向を識別することによってネットワークの予測モデルを生成する。例えば、システムは、特定のレートで増加する特定のエッジ転送ノードを通るデータトラフィックを識別することができる。システムは、データトラフィックが特定の継続時間にわたって特定のレートで増加し続けるという予測に基づいてモデルを生成することができる。システムは、特定の曜日における特定のエッジ転送ノードを通るデータトラフィックの増加などの季節的な傾向を識別することができる。システムは、特定の曜日にデータトラフィックが再び増加すると予測したことに基づいてモデルを生成することができる。システムは、特定のエッジ転送ノードを通るデータトラフィックの増加に対応する、会議または大会などの特定のイベントを識別することができる。システムは、イベントの発生が再びデータトラフィックの増加をもたらすと予測したことに基づいてモデルを生成することができる。
【0072】
一実施形態によれば、システムは、機械学習モデルに基づいてシステム属性を予測するモデルを生成する。機械学習モデルは、ユーザ/ソースデバイスの数、エッジ転送ノードの数、ソースデバイスのデータ使用属性、およびエッジ転送ノードのデータトラフィック属性を含む、地理的領域に関連付けられた属性を含むデータセットに基づいて、特定の時間に特定の地理的領域に関連付けられたネットワーク属性を予測するように訓練され得る。ネットワーク属性を予測するために機械学習モデルを訓練するプロセスは、
図3でさらに詳細に説明される。
【0073】
1つまたは複数の実施形態によれば、システムは、ネットワークデバイスサービスプロバイダがネットワークデバイスへのアクセスをリースする時間間隔、新しいエッジ転送ノードを作成するためにサーバ上でオーバーレイネットワークソフトウェアを実行することなどによってオーバーレイネットワークを修正するのに必要な時間量、時間、日、週、または月などのカレンダー期間、およびクライアント契約の条項に基づく仕様のうちの1つまたは複数に基づいて、ネットワーク特性を予測するための期間を選択する。
【0074】
システムは、予測されたネットワーク属性を閾値と比較して、オーバーレイネットワークを修正すべきかどうか決定する(動作206)。例えば、システムは、エッジ転送ノードと1つまたは複数の宛先デバイスとの間の過去12時間にわたるRTTレートを閾値の値と比較し得る。他の例として、システムは、エッジ転送ノードを通るユーザあたり/ソースデバイスあたりのデータレートを閾値の値と比較し得る。他の例として、システムは、エッジ転送ノードを通る全データレートを閾値の値と比較し得る。さらに他の例として、システムは、エッジ転送ノードのプロセッサ使用率を閾値の値と比較し得る。
【0075】
いくつかのネットワーク属性の場合、閾値の値は、上限閾値の値および下限閾値の値を含み得る。例えば、システムは、エッジ転送ノードを通るデータトラフィックレートを、高レートを検出するための上限閾値および低レートを検出するための下限閾値と比較し得る。システムは、他のネットワーク属性をただ1つの閾値と比較し得る。例えば、システムは、データ伝送経路における遅延を検出するために、ソースデバイスと宛先デバイスとの間のRTTを単一の閾値の値と比較し得る。
【0076】
例えば、地理的領域内のソースデバイスからのトラフィックを処理する2つのエッジ転送ノードを含む地理的領域において、システムは、第1のエッジ転送ノードとゲートウェイ転送ノードとの間の第1のRTTを測定することができる。システムは、第2のエッジ転送ノードとゲートウェイ転送ノードとの間の第2のRTTを測定することができる。システムは、第1のエッジ転送ノードおよび第2のエッジ転送ノードの一方または両方に関連付けられた遅延を検出するために、第1のRTT値および第2のRTT値を閾値の値と比較し得る。他の例として、地理的領域内のソースデバイスからのトラフィックを処理する3つのエッジ転送ノードを含む地理的領域において、システムは、オーバーレイネットワークにアクセスするソースデバイスの数を測定することができる。システムは、地理的領域内のトラフィックを処理するエッジ転送ノードへのユーザあたりのトラフィックの平均量をさらに計算することができる。システムは、エッジ転送ノードあたりのトラフィックスループットを閾値の値と比較して、トラフィックスループットが比較的高い(例えば、上限閾値を超える)か比較的低い(例えば、下限閾値を下回る)かを決定することができる。
【0077】
予測された属性のセットが属性の上限閾値の値を超えると決定したことに基づいて、システムは、データ伝送および/または処理容量を増加させるようにオーバーレイネットワークを修正する(動作208)。システムは、新しいノードをオーバーレイネットワークに追加することによって、または既存のノードの容量を増加させることによって、データ伝送および/または処理容量を増加させることができる。
【0078】
例えば、第1のデータセンタに記憶された第1のサーバ上で動作するオーバーレイネットワークソフトウェアから構成されるエッジ転送ノードは、地理的領域内のトラフィックを処理することができる。システムは、地理的領域内の第2のデータセンタに配置された第2のサーバ上でオーバーレイネットワークソフトウェアを実行することによって新しいエッジ転送ノードを作成することによって、オーバーレイネットワークのデータ伝送容量および処理容量を増加させることができる。他の例によれば、システムは、第1のデータセンタ内の他のサーバ上でオーバーレイネットワークソフトウェアを実行することによって、オーバーレイネットワーク内に新しいエッジ転送ノードを作成することができる。
【0079】
他の例によれば、システムは、1つまたは複数の追加の処理コア、プロセッサ、および/またはサーバへのアクセスを取得することによって、オーバーレイネットワークのデータ伝送容量および処理容量を増加させることができる。例えば、エッジ転送ノードは、データセンタのラックに収容されたサーバから構成されてもよい。システムは、第1のサーバと同じラック上の第2のサーバをネットワークデバイスプロバイダからリースすることによって、新しいエッジ転送ノードを作成することなく、エッジ転送ノードの処理容量およびデータ伝送容量を増加させることができる。第2のサーバは、エッジ転送ノードの処理および伝送容量を増加させるように、第1のサーバに物理的に接続され得る。さらに他の例によれば、エッジ転送ノードは、サーバグループ上で動作する仮想マシンから構成されてもよい。システムは、仮想マシンの処理容量を増加させることによって、新しいエッジ転送ノードを作成することなく、エッジ転送ノードの処理容量およびデータ伝送容量を増加させることができる。
【0080】
1つまたは複数の実施形態によれば、システムは、ネットワーク属性に基づいて、新しいノードを追加することなく、オーバーレイネットワークに追加する新しいノードの数、または既存のノードの処理容量を増加させるように決定する。例えば、システムは、領域内のデータトラフィックが第1の量だけ閾値の値よりも高いと決定したことに基づいて、地理的領域で発生するトラフィックを処理するために、オーバーレイネットワークに1つの新しいエッジ転送ノードを追加することができる。システムは、領域内のデータトラフィックが第1の量よりも大きい第2の量だけ閾値の値よりも高いと決定したことに基づいて、地理的領域で発生するトラフィックを処理するために、オーバーレイネットワークに2つの新しいエッジ転送ノードを追加することができる。例えば、システムは、地理的領域内の定義されたレベルのトラフィックを検出したことに基づいて、新しいエッジ転送ノードが地理的領域内のオーバーレイネットワークに追加されるべきであるという規則を適用することができる。検出されたトラフィックのレベルが閾値の2倍である場合、システムは、2つの新しいエッジ転送ノードを作成することができる。システムは、1つまたは複数の追加のオーバーレイネットワークノードを追加するかどうかを決定するために様々な要因を重み付けすることができる。例えば、システムは、新しいオーバーレイネットワークノードを追加するコスト、新しいノードを追加することなく既存のノードの処理容量を増加させるコスト、既存のノードによって処理されるトラフィックのレベル、既存のノードに関連するデータ損失率、および新しいノードを追加することによるサービス品質の改善の予測を考慮することができる。
【0081】
1つまたは複数の実施形態によれば、システムは、新しいオーバーレイネットワークノードを生成するためのユーザ許可を取得するためにユーザインターフェース内にプロンプトを生成する。システムは、プロンプトを生成するかどうか、またはプロンプトを生成せずに処理容量を増加させるかどうかを決定するために、事前定義された規則を適用することができる。例えば、事前定義された規則は、システムがユーザ認可を取得することなく既存のオーバーレイネットワークノードの処理容量を増加させることができることを指定することができる。規則は、システムが新しいオーバーレイネットワークノードを生成する前にユーザ認可を取得しなければならないことをさらに指定することができる。追加的に、または代替として、規則は、システムがユーザ認可を取得することなく地理的領域内に所定数の新しいオーバーレイネットワークノードを生成することができることを指定することができる。規則は、システムが、新しいオーバーレイネットワークノードの所定数を超える新しいオーバーレイネットワークノードを作成する前にユーザ認可を取得しなければならないことをさらに指定することができる。
【0082】
1つまたは複数の実施形態によれば、1つまたは複数の新しいエッジ転送ノードを追加することは、地理的領域を2つ以上の地理的領域に分割することを含む。ソースデバイスは、エッジ転送ノードを介してオーバーレイネットワークのデータ転送インフラストラクチャ(例えば、エッジ転送ノード、コア転送ノード、およびゲートウェイ転送ノード)にアクセスする。エッジ転送ノードは、コア転送ノードを介してゲートウェイ転送ノードにデータを送信する。同様に、ゲートウェイ転送ノードは、コア転送ノードを介してエッジ転送ノードにデータを送信する。システムは、ソースデバイスの位置およびエッジ転送ノードの位置に基づいて地理的領域を定義する。特定の地理的領域内のオーバーレイネットワークにアクセスする各ソースデバイスは、同じく地理的領域内に配置されたエッジ転送ノードを介してオーバーレイネットワークにアクセスする。地理的領域は、少なくとも1つのエッジ転送ノードを含み、任意の数のソースデバイスを含むことができる。システムは、(a)ソースデバイスとエッジ転送ノードとの間の物理的距離などの物理的地理、(b)地理的領域内のソースデバイスの数、および(c)地理的領域内のエッジ転送デバイスの数に基づいて地理的領域を定義することができる。例えば、システムは、各ソースデバイスがエッジ転送ノードの定義された距離内にあるべきであると指定する地理的領域を定義するための規則を適用することができる。システムは、地理的領域を分割すると、各新しい地理的領域が、オーバーレイネットワークにアクセスする所定の最小数のソースデバイスと、それぞれの新しい地理的領域のそれぞれのエッジ転送ノードへの所定の最小レベルのデータトラフィックとを有することになる場合、地理的領域を2つの別々の地理的領域に分割すべきであると指定する地理的領域を定義するための他の規則を適用することができる。
【0083】
1つまたは複数の実施形態によれば、システムは、閾値レベルを超えるサブ領域内のデータトラフィックを検出したことに基づいて、既存の領域を2つ以上のサブ領域に分割することができる。システムは、各それぞれのサブ領域に関連付けられたデータトラフィックに基づいて、既存のエッジ転送ノードを割り当て、サブ領域に新しいエッジ転送ノードを生成することができる。一例によれば、システムは、地理的領域内の1つの位置に既存のエッジ転送ノードを維持することができる。地理的領域の特定のサブ領域で発生するデータトラフィックのレベルを検出したことに基づいて、システムは、地理的領域内の他の位置にあるデータセンタ内のサーバ上でネットワークオーバーレイソフトウェアを実行することができる。システムは、地理的領域を、元のエッジ転送ノードが第1の新しい領域で発生するトラフィックを処理する第1の新しい領域と、新しいエッジ転送ノードが第2の新しい領域で発生するトラフィックを処理する第2の新しい領域とに分割することができる。1つまたは複数の代替実施形態によれば、システムは、新しいエッジ転送ノードを作成するときに地理的領域をサブ領域に分割しない。代わりに、システムは、データ伝送特性(例えば、RTT値、レイテンシ、データ損失、データ伝送時間)を含むネットワーク属性をシステム内のソースデバイス上で動作するオーバーレイネットワークエージェントに提供することができ、オーバーレイネットワークエージェントは、データ伝送特性に基づいてデータパケットの次ホップとしてエッジ転送ノードを割り当てることができる。
【0084】
オーバーレイネットワーク内の1つまたは複数のノードのデータ伝送および/または処理容量を増加させると、システムは、更新されたオーバーレイネットワーク特性をオーバーレイネットワーク内の1つまたは複数のノードに伝送する(動作210)。例えば、システムは、地理的領域内でアクセス可能なエッジ転送ノードに対するアドレス情報を地理的領域内の各オーバーレイネットワークへ送信することができる。アドレス情報を使用して、オーバーレイネットワークエージェントは、新しいエッジ転送ノードを、オーバーレイネットワークエージェントを実行するソースデバイスによって生成されたデータパケットのデータ伝送経路における次ホップとして設定することができる。システムはまた、新しいエッジ転送ノードに関連付けられたネットワーク特性を新しいエッジ転送ノードと同じ地理的領域内のオーバーレイネットワークエージェントに送信することもできる。例えば、システムは、オーバーレイネットワークエージェントへ、エッジ転送ノードと1つまたは複数のゲートウェイ転送ノードとの間のRTTを送信することができる。システムは、新しいエッジ転送ノードと、ゲートウェイ転送ノードまたはゲートウェイ転送ノードを介してアクセスされるアプリケーションサーバなどの1つまたは複数の宛先ノードまたはデバイスとの間の1つまたは複数のデータ伝送経路についての遅延データ、信頼性データ、および遅延データを、オーバーレイネットワークエージェントに送信することができる。ネットワーク特性は、新しいエッジ転送ノードのデータ処理容量またはデータ伝送容量を含むことができる。上記の例は、新しいエッジ転送ノードを追加する際にオーバーレイネットワークエージェントに通知することを説明しているが、実施形態は、システムが新しいエッジ転送ノードを作成することなく既存のエッジ転送ノードの処理容量および/またはデータ伝送容量を増加させるときに、既存のエッジ転送ノードの処理容量および/またはデータ伝送容量の増加をオーバーレイネットワークエージェントに通知することを含む。
【0085】
システムが新しいエッジ転送ノードをオーバーレイネットワークに追加すると、エッジ転送ノードの下流の新しいデータ伝送経路が利用可能になり得る。例えば、新しいエッジ転送ノードは、新しいエッジ転送ノードと同じ地理的領域内のいずれのエッジ転送ノードにも以前に通信可能に結合されていなかったコア転送ノードに光ケーブルを介して通信可能に接続され得る。地理的領域内のオーバーレイネットワークエージェントにネットワーク特性を提供することは、オーバーレイネットワークエージェントを実行するソースデバイスとアプリケーションサーバなどの宛先デバイスとの間でデータを送信するための新しい候補ルートをオーバーレイネットワークエージェントに通知することを含む。
【0086】
更新されたオーバーレイネットワーク情報を影響を受けるオーバーレイネットワークエージェント(例えば、新規またはアップグレードされたエッジ転送ノードと同じ地理的領域内のソースデバイス上で動作するオーバーレイネットワークエージェント)に送信することに加えて、システムはまた、更新されたオーバーレイネットワーク情報をコア転送ノードおよびゲートウェイ転送ノードに送信する。例えば、コア転送ノードは、ソースデバイスとアプリケーションサーバとの間のデータ伝送経路に沿っていてもよい。システムが、ソースデバイスが配置された地理的領域に新しいエッジ転送ノードを追加すると、システムは、更新されたオーバーレイネットワーク情報をコア転送ノードに送信する。ソースデバイスの宛先アドレスを有するゲートウェイ転送ノードを介してアプリケーションサーバからデータパケットを受信すると、コア転送ノードは、ソースデバイスが配置された地理的領域内のコア転送ノードと任意のエッジ転送ノードとの間のデータ伝送経路のデータ伝送ルート特性を分析することができる。地理的領域内のエッジ転送ノードのセットは、新しいエッジ転送ノードを含む。コア転送ノードが、新しいエッジ転送ノードを含むデータ伝送ルートが他のエッジ転送ノードへのデータ伝送ルートよりも好ましい(例えば、より短いデータ送信時間、より少ないデータ損失、またはより高い信頼性を有する)と決定した場合、コア転送ノードは、新しいエッジ転送ノードを、ソースデバイスに向かうデータ伝送経路上の次のストップとして指定することができる。1つまたは複数の実施形態によれば、コア転送ノードは、データパケットヘッダにおいて宛先エッジ転送ノードとして指定されたエッジ転送ノードを変更することができる。例えば、ゲートウェイ転送ノードは、アプリケーションサーバからソースデバイスへデータパケットを送信するときに、特定のエッジ転送ノードを宛先エッジ転送ノードとして指定する機能を有することができる。コア転送ノードは、第1のエッジ転送ノードを宛先エッジ転送ノードとして指定するデータパケットを受信し、コア転送ノードと、指定されたエッジ転送ノードと同じ地理的領域内の複数のエッジ転送ノードとの間のデータ伝送ルート特性を分析し、分析に基づいて、データパケットヘッダ内で指定されたエッジ転送ノードを第1のエッジ転送ノードから新しいエッジ転送ノードに変更することができる。
【0087】
ゲートウェイ転送ノードが、アプリケーションサーバからソースデバイスへデータパケットを送信するときにエッジ転送ノードを宛先エッジ転送ノードとして指定する機能を有する他の例によれば、システムは、新規またはアップグレードされたエッジ転送ノードに関する情報をゲートウェイ転送ノードに送信することができる。システムが、ゲートウェイ転送ノードがデータを送信しているターゲットソースデバイスである、特定のソースデバイスが配置された地理的領域に新しいエッジ転送ノードを追加すると、システムは、ゲートウェイ転送ノードに更新されたオーバーレイネットワーク情報を送信する。ソースデバイスの宛先アドレスを有するデータパケットをアプリケーションサーバから受信すると、ゲートウェイ転送ノードは、ゲートウェイ転送ノードとソースデバイスが配置された地理的領域内の任意のエッジ転送ノードとの間のデータ伝送経路のデータ伝送ルート特性を分析することができる。地理的領域内のエッジ転送ノードのセットは、新しいエッジ転送ノードを含む。ゲートウェイ転送ノードが、新しいエッジ転送ノードを含むデータ伝送ルートが他のエッジ転送ノードへのデータ伝送ルートよりも好ましいと判断した場合、ゲートウェイ転送ノードは、新しいエッジ転送ノードを、ソースデバイスに向かうデータ伝送経路上の宛先エッジ転送ノードとして指定することができる。
【0088】
予測されるネットワーク属性のセットがネットワーク属性の下限閾値の値よりも小さいと決定したことに基づいて、システムは、オーバーレイネットワーク内の1つまたは複数のノードのデータ伝送および/または処理容量を減少させるようにオーバーレイネットワークを修正する(動作212)。
【0089】
例えば、2つのデータセンタに記憶された2つのサーバ上で動作するオーバーレイネットワークソフトウェアから構成される2つのエッジ転送ノードは、地理的領域内のトラフィックを処理することができる。システムは、エッジ転送ノードのうちの1つをシャットダウンすることによって、オーバーレイネットワークのデータ伝送容量および処理容量を減少させることができる。エッジ転送ノードをシャットダウンすることは、サーバまたはルータ上のオーバーレイネットワークソフトウェアを削除すること、サーバまたはルータをオーバーレイネットワークノードから汎用サーバまたはルータに変換することを含むことができる。あるいは、エッジ転送ノードをシャットダウンすることは、エッジ転送ノードがもはやオーバーレイネットワークを介して送信されるデータパケットの宛先として利用できないことを指定する更新されたオーバーレイネットワークデータをオーバーレイネットワーク内の他のノードに送信することを含むことができる。この実施形態によれば、エッジ転送ノードは、サーバまたはルータ上にロードされたオーバーレイネットワークソフトウェアを依然として有することができるが、オーバーレイネットワーク内の他のノードは、エッジ転送ノードを介してデータを送信することができない。
【0090】
他の例によれば、システムは、1つまたは複数の追加の処理コア、プロセッサ、および/またはサーバへのアクセスを放棄することによって、オーバーレイネットワークのデータ伝送容量および処理容量を減少させることができる。例えば、エッジ転送ノードは、データセンタのラックに収容されたサーバから構成されてもよい。システムは、ネットワークデバイスプロバイダからリースされる処理リソース(例えば、サーバ、プロセッサなど)を低減することによって、エッジ転送ノードをシャットダウンすることなく、エッジ転送ノードの処理容量およびデータ伝送容量を減少させることができる。さらに他の例によれば、エッジ転送ノードは、サーバグループ上で動作する仮想マシンから構成されてもよい。システムは、仮想マシンの処理容量を減少させることによって、エッジ転送ノードをシャットダウンすることなく、エッジ転送ノードの処理容量およびデータ伝送容量を減少させることができる。
【0091】
1つまたは複数の実施形態によれば、システムは、(a)既存のノードの処理容量を減少させるか、または既存のノードをシャットダウンするかどうか、および(b)ネットワーク属性に基づいてシャットダウンするオーバーレイネットワークノードの数を決定する。例えば、システムは、領域内のデータトラフィックが第1の量だけ閾値の値よりも低いと決定したことに基づいて、地理的領域内のオーバーレイネットワークから1つの既存のエッジ転送ノードを除去することができる。システムは、領域内のデータトラフィックが第1の量よりも大きい第2の量だけ閾値の値よりも低いと決定したことに基づいて、地理的領域内のオーバーレイネットワークから2つの既存のエッジ転送ノードを除去することができる。システムは、オーバーレイネットワークから1つまたは複数のオーバーレイネットワークノードを除去するかどうかを決定するために様々な要因を重み付けすることができる。例えば、システムは、オーバーレイネットワークから既存のオーバーレイネットワークノードを除去するコスト節約、オーバーレイネットワークノードを後で再起動するコスト、予測されるネットワーク属性に基づいてシステムがオーバーレイネットワークノードを後で再起動する必要がある可能性、オーバーレイネットワークから既存のノードを除去することなく既存のノードの処理容量を低減するコスト節約、既存のノードによって処理されるトラフィックのレベル、既存のノードに関連付けられたデータ損失率、および既存のノードを除去することからのサービス品質の予測される変化を考慮することができる。
【0092】
1つまたは複数の実施形態によれば、システムは、オーバーレイネットワークから既存のオーバーレイネットワークノードを除去するためのユーザ許可を取得するためにユーザインターフェース内にプロンプトを生成する。システムは、プロンプトを生成するかどうか、またはプロンプトを生成せずに処理容量を低減するかどうかを決定するために、事前定義された規則を適用することができる。例えば、事前定義された規則は、システムがユーザ認可を取得することなく既存のオーバーレイネットワークノードの処理容量を減少させることができることを指定することができる。規則は、システムがオーバーレイネットワークからいずれかの既存のノードを除去する前にユーザ認可を取得しなければならないことをさらに指定することができる。追加的に、または代替として、規則は、システムがユーザ認可を取得することなくオーバーレイネットワークから地理的領域内の所定数の既存のオーバーレイネットワークノードを除去することができることを指定することができる。規則は、システムが、オーバーレイネットワークノードの所定数を超える数のオーバーレイネットワークノードを除去する前にユーザ認可を取得しなければならないことをさらに指定することができる。
【0093】
1つまたは複数の実施形態によれば、1つまたは複数の既存のエッジ転送ノードを除去することは、2つ以上の地理的領域を1つの地理的領域に併合することを含む。システムは、閾値レベルよりも低いサブ領域内のデータトラフィックを検出したことに基づいて、2つ以上の地理的領域を1つの地理的領域に併合することができる。システムは、既存のエッジ転送ノードを組み合わされた地理的領域に割り当てることができる。システムは、エッジ転送ノードに関連付けられたデータトラフィックに基づいて、組み合わされた地理的領域内の少なくとも1つのエッジ転送ノードをシャットダウンすることができる。
【0094】
オーバーレイネットワーク内の1つまたは複数のノードのデータ伝送および/または処理容量を減少させると、システムは、更新されたオーバーレイネットワーク特性をオーバーレイネットワーク内の1つまたは複数のノードに伝送する(動作210)。例えば、システムは、地理的領域内の利用可能なエッジ転送ノードの更新されたテーブルを地理的領域内の各オーバーレイネットワークへ送信することができる。更新されたテーブルは、システムによってオーバーレイネットワークから除去されたエッジ転送ノードを省略することができる。システムが、オーバーレイネットワークからエッジ転送ノードを除去することなく既存のエッジ転送ノードの処理および/またはデータ伝送容量を低減する実施形態において、システムは、修正されたエッジ転送ノードに関連付けられたネットワーク特性をエッジ転送ノードと同じ地理的領域内のオーバーレイネットワークエージェントに送信することができる。例えば、システムは、オーバーレイネットワークエージェントへ、エッジ転送ノードと1つまたは複数のゲートウェイ転送ノードとの間の更新されたRTTを送信することができる。システムは、エッジ転送ノードと、ゲートウェイ転送ノードまたはゲートウェイ転送ノードを介してアクセスされるアプリケーションサーバなどの1つまたは複数の宛先ノードまたはデバイスとの間の1つまたは複数のデータ伝送経路についての更新された遅延データ、信頼性データ、および遅延データを、オーバーレイネットワークエージェントに送信することができる。ネットワーク特性は、修正されたエッジ転送ノードの更新されたデータ処理容量またはデータ伝送容量を含むことができる。
【0095】
システムが既存のエッジ転送ノードをオーバーレイネットワークから除去すると、エッジ転送ノードの下流の以前に利用可能であったデータ伝送経路が利用不能になり得る。例えば、エッジ転送ノードは、除去されたエッジ転送ノードと同じ地理的領域内のいずれの他のエッジ転送ノードにも通信可能に結合されていなかったコア転送ノードに光ケーブルを介して通信可能に接続され得る。
【0096】
更新されたオーバーレイネットワーク情報を影響を受けるオーバーレイネットワークエージェント(例えば、除去または修正されたエッジ転送ノードと同じ地理的領域内のソースデバイス上で動作するオーバーレイネットワークエージェント)に送信することに加えて、システムはまた、更新されたオーバーレイネットワーク情報をコア転送ノードおよびゲートウェイ転送ノードに送信する。例えば、コア転送ノードは、ソースデバイスとアプリケーションサーバとの間のデータ伝送経路に沿っていてもよい。システムが、ソースデバイスが配置された地理的領域内のエッジ転送ノードをオーバーレイネットワークから除去すると、システムは、(除去されたエッジ転送ノードを省略する更新されたルータテーブルなどの)更新されたオーバーレイネットワーク情報をコア転送ノードに送信する。ソースデバイスの宛先アドレスを有するゲートウェイ転送ノードを介してアプリケーションサーバからデータパケットを受信すると、コア転送ノードは、ソースデバイスが配置された地理的領域内のコア転送ノードと任意のエッジ転送ノードとの間のデータ伝送経路のデータ伝送ルート特性を分析することができる。地理的領域内のエッジ転送ノードのセットは、除去されたエッジ転送ノードを省略する。
【0097】
ゲートウェイ転送ノードが、アプリケーションサーバからソースデバイスへデータパケットを送信するときにエッジ転送ノードを宛先エッジ転送ノードとして指定する機能を有する他の例によれば、システムは、除去または修正されたエッジ転送ノードに関する情報をゲートウェイ転送ノードに送信することができる。システムが、ゲートウェイ転送ノードがデータを送信しているターゲットソースデバイスである、特定のソースデバイスが配置された地理的領域におけるエッジ転送ノードをオーバーレイネットワークから除去すると、システムは、ゲートウェイ転送ノードに更新されたオーバーレイネットワーク情報を送信する。ソースデバイスの宛先アドレスを有するデータパケットをアプリケーションサーバから受信すると、ゲートウェイ転送ノードは、ゲートウェイ転送ノードとソースデバイスが配置された地理的領域内の任意のエッジ転送ノードとの間のデータ伝送経路のデータ伝送ルート特性を分析することができる。地理的領域内のエッジ転送ノードのセットは、除去されたエッジ転送ノードを省略する。
【0098】
予測されるネットワーク属性が閾値の値内に入るとシステムが決定した場合、システムは、オーバーレイネットワークをその現在の構成に維持することができる(動作212)。システムは、オーバーレイネットワークからエッジ転送ノードを追加、除去、または修正するかどうかを決定するために、オーバーレイネットワークの分析を周期的な間隔で繰り返すことができる。システムはまた、オーバーレイネットワークからコア転送ノードおよびゲートウェイ転送ノードを追加、除去、または修正するかどうかを決定するために、オーバーレイネットワークの分析を周期的な間隔で繰り返すことができる。
【0099】
システムがネットワーク属性を閾値の値と比較してオーバーレイネットワークを修正するかどうかを決定する例が上記で提供されているが、1つまたは複数の代替実施形態は、オーバーレイネットワークに対する修正を推奨するために機械学習モデルを訓練することを含む。機械学習モデルは、ニューラルネットワークを含んでもよい。ニューラルネットワークは、異なる期間において、上述したものなどのネットワーク属性を含むデータセットによって訓練され得る。データセットはまた、オーバーレイネットワークを修正するかどうかを決定するためにこれまで使用されてきた特定の閾値の値を含むことができる。代替実施形態では、データセットは特定の閾値の値を省略する。代わりに、データセットは、ネットワーク属性、物理トポロジ情報、およびオーバーレイネットワーク情報を含むことができる。ニューラルネットワークは、特定のネットワーク属性に対してどのオーバーレイネットワーク構成が利用されるべきかを識別するために機械学習モデルを訓練することができる。システムは、既存のオーバーレイネットワークに対する推奨された変更を識別するために、推奨されたオーバーレイネットワーク構成を既存のオーバーレイネットワーク構成と比較することができる。例えば、ニューラルネットワークは、訓練中に、オーバーレイネットワークにエッジ転送ノードを追加または除去するときにシステムが特定のコスト/データトラフィック関係を維持したことを学習することができる。現在のまたは予測されるネットワーク属性のセットが与えられると、機械学習モデルは、学習されたコスト/データトラフィック関係を維持するために、エッジ転送ノードがオーバーレイネットワークに追加されるべきであることを識別することができる。
【0100】
システムがオーバーレイネットワークの予測される状態に基づいてオーバーレイネットワークを修正すべきかどうか決定する例が上記で提供されているが、1つまたは複数の実施形態は、ネットワーク属性の将来値を予測することなく、測定および取得されたネットワーク属性に基づいてオーバーレイネットワークを修正すべきかどうか決定することを含む。例えば、システムは、オーバーレイネットワークの予測される将来の状態のモデルを生成することなく、オーバーレイネットワークの現在の状態のモデルを生成することができる。システムは、オーバーレイネットワークの現在の状態を表すモデルに基づいてオーバーレイネットワークを修正すべきかどうか決定することができる。
【0101】
1つまたは複数の実施形態によれば、システムは、定義された期間にわたってオーバーレイネットワークを修正する。定義された期間の終わりに、システムはオーバーレイネットワークを修正されていない状態に戻す。例えば、システムは、地理的領域で発生するデータトラフィックを処理するための他のエッジ転送ノードを含むようにオーバーレイネットワークを修正することができる。システムは、修正の期間を1日のデフォルト期間に設定することができる。1日の終わりに、システムは、新たに生成されたエッジ転送ノードをオーバーレイネットワークから除去し、オーバーレイネットワークをその修正前状態に戻すことができる。一実施形態によれば、システムは、介在するユーザ認可を取得することなく、オーバーレイネットワークをその修正前状態に戻す。加えて、または代替として、システムは、オーバーレイネットワークのネットワーク属性がオーバーレイネットワークを修正するための閾値を超えているかどうかの介在する決定を行うことなく、オーバーレイネットワークをその修正前状態に戻すことができる。代替実施形態によれば、オーバーレイネットワークをその修正前状態に戻す前に、システムは、オーバーレイネットワークをその修正された状態に維持するかそれともその修正前状態に戻すかを決定するためにネットワーク属性を分析することができる。例えば、システムは、地理的領域内のエッジ転送ノードを含むようにオーバーレイネットワークを修正することができる。修正は、1日の時間長であってもよい。1日の終わりに、システムは、ネットワーク属性を分析して、地理的領域内のエッジ転送ノードへのデータトラフィックレートが閾値の値を超えるかどうかを決定することができる。システムが、データトラフィックレートが閾値の値を超えないと決定した場合、システムは、オーバーレイネットワークから新たに作成されたエッジ転送ノードを除去することができる。システムが、データトラフィックレートが閾値の値を超えると決定した場合、システムは、オーバーレイネットワークにおいて新しいエッジ転送ノードを動作させ続けることができる。さらに他の実施形態によれば、システムは、指定された期間の終わりにユーザインターフェースにプロンプトを生成することができる。ユーザは、オーバーレイネットワークをその修正された状態に保つこと、またはオーバーレイネットワークをその修正前状態に戻すことのいずれかを認可するためにプロンプトに応答することができる。例えば、システムがエッジ転送ノードを追加することによってオーバーレイネットワークを修正する場合、ユーザは、オーバーレイネットワークから追加されたエッジ転送ノードを除去することをシステムに認可するために、指定された期間の終わりにプロンプトに応答することができる。
【0102】
4.機械学習モデルの訓練
図3は、1つまたは複数の実施形態による、ランブック動作に関連付けられた補足情報を生成するために機械学習モデルを訓練するための動作のセットの例を示す。システムは、物理ネットワーク上のデータトラフィックを管理するために、物理ネットワークおよび物理ネットワーク上で動作するオーバーレイネットワークの過去のネットワークデータを取得する(動作302)。上述したように、ネットワーク属性は、測定された属性、取得された属性(ユーザ指定の属性など)、物理ネットワークデバイスおよび物理ネットワークデバイス上で動作するオーバーレイネットワークノードの位置に関する地理情報を含む。ネットワーク属性の例は、特定の期間にわたるエッジ転送ノードを介したデータトラフィック、エッジ転送ノードに関連付けられた地理的領域、地理的領域内のエッジ転送ノードの数、およびエッジ転送ノードを介してトラフィックを送信および/または受信する地理的領域内のデバイスの数を含む。
【0103】
動作302において様々なデータ(またはそのサブセット)が識別されると、システムは訓練データのセットを生成する(動作304)。訓練データは、過去のネットワーク属性のセットに関連付けられた値およびベクトル、および/または後続のネットワーク属性に関連付けられた値および/またはベクトルを含むことができる。例えば、システムは、10個の連続する期間において地理的領域に関連付けられたネットワーク属性データをベクトル値としてエンコーディングすることができる。システムは、10個のベクトル値のセットを、値のセットおよび/または将来の期間における地理的領域に関連付けられたネットワーク属性データを表すベクトルとペアリングすることができる。訓練データは、複数のベクトルセットを含む(例えば、訓練データは、地理的領域において連続的に測定されたネットワーク属性値を表す10個のベクトルを10万セット含むことができる)。
【0104】
システムは、訓練データセットに機械学習アルゴリズムを適用する(動作306)。機械学習アルゴリズムは、訓練データセットを分析して、入力データ(例えば、ネットワーク属性値のセット)とその後に測定されるネットワーク属性値との間の関係を示すデータおよびパターンを識別する。機械学習モデルのタイプは、線形回帰、ロジスティック回帰、線形判別分析、分類および回帰木、ナイーブベイズ、k最近傍、学習ベクトル量子化、サポートベクトルマシン、バギング、およびランダムフォレスト、ブースティング、逆伝播、および/またはクラスタリングを含むが、これらに限定されない。
【0105】
教師あり機械学習アルゴリズムの例では、システムは、予測されるネットワーク属性値のセットがネットワーク属性値の複数のセットの特定のセットに関連付けられるべきかどうかに関するフィードバックを取得することができる(動作308)。例えば、機械学習モデルは、連続する10日間のエッジ転送ノードを通る平均データフローを表すデータベクトルを入力として受信することができる。機械学習モデルは、指定された閾値(例えば、ユーザは、予測値のスパイクを識別するための閾値を定義することができる)外である11日目のエッジ転送ノードを通るデータトラフィックの予測のための出力値を生成することができる。ユーザは、予測が非現実的な出力値予測をもたらす入力データの非代表的なセットに基づくと決定したことに基づいて、予測を拒否するためのフィードバックを提供することができる。あるいは、フィードバックは、将来の期間の1つまたは複数のネットワーク属性値の特定の予測を確認することができる。フィードバックに基づいて、機械学習訓練セットが更新されることができ、それによってその分析精度を改善する(動作310)。更新されると、システムは、モデルを任意選択的に追加の訓練データセットに適用することによって機械学習モデルをさらに訓練することができる。
【0106】
5.例示的な実施形態
図4A~
図4Eは、ネットワークトポロジを修正する例示的な実施形態を示す。
図4Aは地理的領域411を示す。システムは、オーバーレイネットワークにアクセスするローカルエリアネットワーク(LAN)の一部であるソースデバイスを識別する。システムは、エッジ転送ノード431を介してオーバーレイネットワークにアクセスする3つのLAN401と、エッジ転送ノード432を介してオーバーレイネットワークにアクセスする4つのLAN402とを識別する。エッジ転送ノード431は、データセンタ421内に1つのサーバを備える。エッジ転送ノード432は、データセンタ422内に2つのサーバを備える。システムは、地理的領域411内の物理ネットワークトポロジを識別することができる。物理ネットワークトポロジは、データセンタ421および422と、アクセスポイント423と、アクセスポイント424とを含む。システムは、データセンタ421および422をアクセスポイント423に通信可能に接続する伝送線路441および442を識別する。データセンタ421は、LANを追加のネットワークアクセスポイントに接続するために10個のサーバの利用可能なサーバ容量を有する。データセンタ422もまた、10個のサーバの利用可能なサーバ容量を有する。アクセスポイント423は、データトラフィックを追加のアクセスポイントにルーティングするために30個のルータのルータ容量を有する。オーバーレイネットワークは、アクセスポイント423において1つのコア転送ノード433を実行する。アクセスポイント424は、データトラフィックを追加のアクセスポイントにルーティングするために10個のルータのルータ容量を有する。オーバーレイネットワークは、アクセスポイント424からのいかなるコア転送ノードも実行しない。アクセスポイント423は、光ファイバ伝送線路443を介して1つまたは複数の追加アクセスポイントに接続される。アクセスポイント424は、光ファイバ伝送線路435を介して1つまたは複数の追加アクセスポイントに接続される。
図4A~
図4Eの例示的な実施形態では、アクセスポイントは、ネットワーク間でデータをルーティングするためのルータのグループである。
【0107】
システムは、ネットワーク属性を測定して、地理的領域411内のオーバーレイネットワークのモデルを生成する。例えば、システムは、オーバーレイネットワークノードに関連付けられた重みスコアを生成するために、エッジノード431とコア転送ノード433との間のトラフィックの量、トラフィック内のデータのタイプ、トラフィックにおける遅延、トラフィックにおけるレイテンシ、およびトラフィックの宛先アドレスを測定または検出することができる。例えば、エッジ転送ノード431とコア転送ノード433との間のトラフィックに基づいて、システムは、3の重みスコア451をエッジ転送ノード431に割り当てることができる。エッジ転送ノード432とコア転送ノード433との間のトラフィックに基づいて、システムは、6の重みスコア452をエッジ転送ノード431に割り当てることができる。例えば、エッジ転送ノード432は、より大量のトラフィック、ビデオデータなどの優先度の高いトラフィックのより高い割合を生成する可能性があり、または送信中に遅延を経験している可能性がある。システムは、コア転送ノード433に供給するエッジ転送ノードの組み合わされた重みスコアに基づいて、9の重みスコア453をコア転送ノード433に割り当てることができる。
【0108】
測定および取得されたネットワーク属性値に基づいて、システムは、オーバーレイネットワークの将来の状態の予測を生成する。
図4Bに示すように、システムは、エッジ転送ノード431に関連付けられた「5」の重みスコア454およびエッジ転送ノード432に関連付けられた「8」の重みスコア455を予測する。システムは、エッジ転送ノード431および432の組み合わされた重みスコア454および455に基づいて、「13」の重みスコア456をコア転送ノード433に割り当てる。
【0109】
システムは、オーバーレイネットワーク内のノードの重みスコアを閾値の値と比較して、オーバーレイネットワークを修正するかどうかを決定することができる。例えば、システムは、エッジノード431および432に「8」の閾値の値を割り当てることができる。閾値の値は、新しいオーバーレイネットワークノードを作成するためのコスト、既存のオーバーレイネットワークノードの処理および/またはデータ伝送能力を増加させるためのコスト、ならびに既存のオーバーレイネットワークノードの既存の処理容量および/またはデータ伝送容量などのネットワーク属性に基づくことができる。ノードに関連付けられた重みスコアが閾値を超えるとシステムが決定した場合、システムは、既存のノードのデータ処理/伝送容量を増加させるか、または新しいノードを作成するようにオーバーレイネットワークを修正することができる。
図4Bに示す例では、エッジ転送ノード431および432に対する予測重み値454および455は閾値の値(「8」)を超えない。
【0110】
システムは、コア転送ノードに対して「13」の予測重みスコア456を生成することができる。システムは、コア転送ノードに対する閾値スコアを決定することができる。転送エッジノードと同様に、コア転送ノードに対する閾値スコアは、新しいオーバーレイネットワークノードを作成するためのコスト、既存のオーバーレイネットワークノードの処理および/またはデータ伝送能力を増加させるためのコスト、ならびに既存のオーバーレイネットワークノードの既存の処理容量および/またはデータ伝送容量などの、コア転送ノードに関連付けられたネットワーク属性に基づくことができる。例えば、毎秒10ギガバイト(GB)を処理することができるルータ上で動作するコア転送ノードは、1GB/秒を処理することができるルータ上で動作するコア転送ノードよりも高い閾値重みを有することができる。
【0111】
システムは、コア転送ノード433が「10」の閾値重みを有すると決定する。コア転送ノードに割り当てられた予測重みは13であるので、システムは、地理的領域411内のコア転送ノードの処理容量を増加させるようにオーバーレイネットワークが修正されるべきであると決定する。
【0112】
図4Cは、オーバーレイネットワークに対する第1の候補修正を示す。
図4Cに示すように、システムは、ネットワークデバイスプロバイダから追加のルータをリースすることによって、コア転送ノード433のデータ伝送容量を増加させる。追加のルータは、コア転送ノードに追加の処理容量を提供する。例えば、追加のルータは、処理容量を「10」から「20」に増加させることができる。
【0113】
図4Dは、オーバーレイネットワークに対する第2の候補修正を示す。
図4Dに示すように、システムは、アクセスポイント424のルータ上でオーバーレイネットワークソフトウェアを実行することによって、新しいコア転送ノード434を作成する。システムは、LAN401および402内のソースデバイス上で動作するオーバーレイネットワークエージェントに、コア転送ノード434がデータパケットをルーティングするために利用可能であることを通知する。オーバーレイネットワークエージェントは、データセンタ421および422とアクセスポイント424との間のデータ伝送線路446および445を介してトラフィックを伝送することができる。コア転送ノード434は、より高いデータ伝送容量を有するルータ上での実行に基づいて、コア転送ノード433よりも高い閾値重み値を有することができる。例えば、システムは、コア転送ノード434に「12」の閾値重み値を割り当てることができる。
【0114】
図4Eは、オーバーレイネットワークに対する第3の候補修正を示す。
図4Dと同様に、システムは、アクセスポイント424のルータ上でオーバーレイネットワークソフトウェアを実行することによって、新しいコア転送ノード434を作成する。
図4Eに示すように、システムは、地理的領域411を2つの新しい領域412および413に分割する。各領域412および413は、特定の領域内のソースデバイスからのデータをルーティングするために利用可能であり、他の領域のソースデバイスからのデータをルーティングするために利用可能ではない1つまたは複数のオーバーレイネットワークノードに関連付けられ得る。
図4Eに示す例では、領域412内のソースデバイスは、データパケットヘッダ内で、エッジ転送ノード431およびコア転送ノード433をデータ伝送経路に沿ったホップとして指定することができる。領域413内のソースデバイスは、エッジ転送ノード431およびコア転送ノード433をデータ伝送経路に沿ったホップとして指定しなくてもよい。同様に、領域413内のソースデバイスは、エッジ転送ノード432およびコア転送ノード434をデータ伝送経路に沿ったホップとして指定してもよい。領域412内のソースデバイスは、エッジ転送ノード432およびコア転送ノード434をデータ伝送経路に沿ったホップとして指定しなくてもよい。同様に、システムが領域412および413を別々の領域として定義する場合、データセンタ421とアクセスポイント424との間に物理伝送線路が存在する場合であっても、エッジ転送ノード431はコア転送ノード434にトラフィックを向けなくてもよい。
【0115】
所定の期間の後、システムは、オーバーレイネットワークを
図4Aに示すネットワークに戻すことができる。例えば、システムは、コア転送ノード433の重み値が12時間にわたって閾値の値を超えると予測することができる。システムは、
図4Cに示すように、コア転送ノード433のデータ伝送容量を増加させるための時間を24時間に設定することができる。24時間が経過したとき、システムは、アクセスポイント423内の追加されたルータをオーバーレイネットワークから除去することができる。
【0116】
6.コンピュータネットワークおよびクラウドネットワーク
1つまたは複数の実施形態では、コンピュータネットワークは、ノードのセット間の接続性を提供する。ノードは、互いにローカルおよび/またはリモートであり得る。ノードは、リンクのセットによって接続される。リンクの例は、同軸ケーブル、アンシールドツイストケーブル、銅ケーブル、光ファイバ、および仮想リンクを含む。
【0117】
ノードのサブセットはコンピュータネットワークを実装する。そのようなノードの例には、スイッチ、ルータ、ファイアウォール、およびネットワークアドレス変換器(NAT)が含まれる。ノードの他のサブセットはコンピュータネットワークを使用する。そのようなノード(「ホスト」とも呼ばれる)は、クライアントプロセスおよび/またはサーバプロセスを実行することができる。クライアントプロセスは、コンピューティングサービス(例えば、特定のアプリケーションの実行、および/または特定の量のデータの記憶など)の要求を行う。サーバプロセスは、要求されたサービスを実行すること、および/または対応するデータを返すことによって応答する。
【0118】
コンピュータネットワークは、物理リンクによって接続された物理ノードを含む物理ネットワークであってもよい。物理ノードは任意のデジタルデバイスである。物理ノードは、ハードウェアスイッチ、ハードウェアルータ、ハードウェアファイアウォール、およびハードウェアNATなどの機能固有ハードウェアデバイスであってもよい。追加的または代替的に、物理ノードは、それぞれの機能を実行する様々な仮想マシンおよび/またはアプリケーションを実行するように構成された汎用マシンであってもよい。物理リンクは、2つ以上の物理ノードを接続する物理媒体である。リンクの例は、同軸ケーブル、アンシールドツイストケーブル、銅ケーブル、および光ファイバを含む。
【0119】
コンピュータネットワークはオーバーレイネットワークであってもよい。オーバーレイネットワークは、別のネットワーク(例えば、物理ネットワーク)上に実装された論理ネットワークである。オーバーレイネットワーク内の各ノードは、基礎となるネットワーク内のそれぞれのノードに対応する。したがって、オーバーレイネットワーク内の各ノードは、(オーバーレイノードにアドレス指定するための)オーバーレイアドレスおよび(オーバーレイノードを実装するアンダーレイノードをアドレス指定するための)アンダーレイアドレスの両方に関連付けられる。オーバーレイノードは、デジタルデバイスおよび/またはソフトウェアプロセス(仮想マシン、アプリケーションインスタンス、スレッドなど)であってもよい。オーバーレイノードを接続するリンクは、基礎となるネットワークを介してトンネルとして実装される。トンネルの両端のオーバーレイノードは、それらの間の基礎となるマルチホップパスを単一の論理リンクとして扱う。トンネリングは、カプセル化およびカプセル化解除によって実行される。
【0120】
一実施形態では、クライアントは、コンピュータネットワークに対してローカルおよび/またはコンピュータネットワークからリモートであってもよい。クライアントは、プライベートネットワークまたはインターネットなどの他のコンピュータネットワークを介してコンピュータネットワークにアクセスすることができる。クライアントは、ハイパーテキスト転送プロトコル(HTTP)などの通信プロトコルを使用してコンピュータネットワークに要求を通信することができる。要求は、クライアントインターフェース(ウェブブラウザなど)、プログラムインターフェース、またはアプリケーションプログラミングインターフェース(API)などのインターフェースを介して通信される。
【0121】
一実施形態では、コンピュータネットワークは、クライアントとネットワークリソースとの間の接続性を提供する。ネットワークリソースは、サーバプロセスを実行するように構成されたハードウェアおよび/またはソフトウェアを含む。ネットワークリソースの例は、プロセッサ、データストレージ、仮想マシン、コンテナ、および/またはソフトウェアアプリケーションを含む。ネットワークリソースは複数のクライアント間で共有される。クライアントは、互いに独立してコンピュータネットワークからコンピューティングサービスを要求する。ネットワークリソースは、オンデマンドで要求および/またはクライアントに動的に割り当てられる。各要求および/またはクライアントに割り当てられるネットワークリソースは、例えば、(a)特定のクライアントによって要求されたコンピューティングサービス、(b)特定のテナントによって要求された集約されたコンピューティングサービス、および/または(c)コンピュータネットワークの要求された集約されたコンピューティングサービスに基づいてスケールアップまたはダウンされ得る。このようなコンピュータネットワークは、「クラウドネットワーク」と称されてもよい。
【0122】
一実施形態では、サービスプロバイダは、クラウドネットワークを1人または複数のエンドユーザに提供する。クラウドネットワークによって、限定はしないが、サービスとしてのソフトウェア(SaaS)、サービスとしてのプラットフォーム(PaaS)、およびサービスとしてのインフラストラクチャ(IaaS)を含む様々なサービスモデルを実装することができる。SaaSでは、サービスプロバイダは、ネットワークリソース上で実行されているサービスプロバイダのアプリケーションを使用する能力をエンドユーザに提供する。PaaSでは、サービスプロバイダは、カスタムアプリケーションをネットワークリソース上に展開する能力をエンドユーザに提供する。カスタムアプリケーションは、サービスプロバイダによってサポートされるプログラミング言語、ライブラリ、サービス、およびツールを使用して作成され得る。IaaSでは、サービスプロバイダは、処理、ストレージ、ネットワーク、およびネットワークリソースによって提供される他の基本的なコンピューティングリソースをプロビジョニングする能力をエンドユーザに提供する。オペレーティングシステムを含む任意のアプリケーションがネットワークリソース上に展開され得る。
【0123】
一実施形態では、プライベートクラウド、パブリッククラウド、およびハイブリッドクラウドを含むがこれらに限定されないコンピュータネットワークによって様々な展開モデルが実装され得る。プライベートクラウドでは、ネットワークリソースは、1つまたは複数のエンティティ(本明細書で使用される「エンティティ」という用語は、企業、組織、個人、または他のエンティティを指す)の特定のグループによる排他的使用のためにプロビジョニングされる。ネットワークリソースは、特定のエンティティグループの施設に対してローカルおよび/またはリモートであってもよい。パブリッククラウドでは、クラウドリソースは、互いに独立した複数のエンティティ(「テナント」または「顧客」とも呼ばれる)にプロビジョニングされる。コンピュータネットワークおよびそのネットワークリソースは、異なるテナントに対応するクライアントによってアクセスされる。このようなコンピュータネットワークは、「マルチテナントコンピュータネットワーク」と称されてもよい。いくつかのテナントが、異なる時間および/または同時に同じ特定のネットワークリソースを使用することができる。ネットワークリソースは、テナントの施設に対してローカルおよび/またはリモートであってもよい。ハイブリッドクラウドでは、コンピュータネットワークは、プライベートクラウドおよびパブリッククラウドを含む。プライベートクラウドとパブリッククラウドとの間のインターフェースは、データおよびアプリケーションの可搬性を可能にする。プライベートクラウドに記憶されたデータおよびパブリッククラウドに記憶されたデータは、インターフェースを介して交換され得る。プライベートクラウドで実装されるアプリケーションとパブリッククラウドで実装されるアプリケーションとは、互いに依存関係を有し得る。プライベートクラウドのアプリケーションからパブリッククラウドのアプリケーションへの(およびその逆の)呼び出しは、インターフェースを介して実行され得る。
【0124】
一実施形態では、マルチテナントコンピュータネットワークのテナントは互いに独立である。例えば、あるテナントの業務や運営が、他のテナントの業務や運営と分離していてもよい。異なるテナントは、コンピュータネットワークに対して異なるネットワーク要件を要求する場合がある。ネットワーク要件の例は、処理速度、データストレージの量、セキュリティ要件、性能要件、スループット要件、レイテンシ要件、回復性要件、サービス品質(QoS)要件、テナント分離、および/または一貫性を含む。同じコンピュータネットワークは、異なるテナントによって要求される異なるネットワーク要件を実装することを必要とし得る。
【0125】
1つまたは複数の実施形態では、マルチテナントコンピュータネットワークにおいて、異なるテナントのアプリケーションおよび/またはデータが互いに共有されないことを保証するために、テナント分離が実施される。様々なテナント分離手法が使用され得る。
【0126】
一実施形態では、各テナントはテナントIDに関連付けられる。マルチテナントコンピュータネットワークの各ネットワークリソースは、テナントIDでタグ付けされる。テナントと特定のネットワークリソースが同じテナントIDに関連付けられている場合にのみ、テナントは特定のネットワークリソースへのアクセスを許可される。
【0127】
一実施形態では、各テナントはテナントIDに関連付けられる。コンピュータネットワークによって実装される各アプリケーションは、テナントIDでタグ付けされる。追加的または代替的に、コンピュータネットワークによって記憶された各データ構造および/またはデータセットは、テナントIDでタグ付けされる。テナントおよび特定のアプリケーション、データ構造、および/またはデータセットが同じテナントIDに関連付けられている場合にのみ、テナントは特定のアプリケーション、データ構造、および/またはデータセットへのアクセスを許可される。
【0128】
一例として、マルチテナントコンピュータネットワークによって実装される各データベースは、テナントIDでタグ付けされてもよい。対応するテナントIDに関連付けられたテナントのみが、特定のデータベースのデータにアクセスできる。他の例として、マルチテナントコンピュータネットワークによって実装されるデータベース内の各エントリが、テナントIDでタグ付けされてもよい。対応するテナントIDに関連付けられたテナントのみが、特定のエントリのデータにアクセスできる。しかしながら、データベースは、複数のテナントによって共有されてもよい。
【0129】
一実施形態では、サブスクリプションリストは、どのテナントがどのアプリケーションにアクセスする権限を有するかを示す。アプリケーションごとに、アプリケーションへのアクセスが認可されたテナントのテナントIDのリストが記憶される。テナントは、特定のアプリケーションに対応するサブスクリプションリストにテナントのテナントIDが含まれている場合にのみ、特定のアプリケーションへのアクセスが許可される。
【0130】
一実施形態では、異なるテナントに対応するネットワークリソース(デジタルデバイス、仮想マシン、アプリケーションインスタンス、スレッドなど)は、マルチテナントコンピュータネットワークによって維持されるテナント固有のオーバーレイネットワークに隔離される。一例として、テナントオーバーレイネットワーク内の任意のソースデバイスからのパケットは、同じテナントオーバーレイネットワーク内の他のデバイスにのみ送信され得る。カプセル化トンネルは、テナントオーバーレイネットワーク上のソースデバイスから他のテナントオーバーレイネットワーク内のデバイスへの送信を禁止するために使用される。具体的には、ソースデバイスから受信されたパケットは外部ヘッダ内にカプセル化される。外部ヘッダは、(テナントオーバーレイネットワーク内のソースデバイスと通信する)第1のカプセル化トンネルエンドポイントから(テナントオーバーレイネットワーク内の宛先デバイスと通信する)第2のカプセル化トンネルエンドポイントに送信される。第2のカプセル化トンネルエンドポイントは、ソースデバイスによって送信された元のパケットを取得するために外部ヘッダをカプセル化解除する。元のパケットは、第2のカプセル化トンネルエンドポイントから同じ特定のオーバーレイネットワーク内の宛先デバイスに送信される。
【0131】
7.その他、拡張
実施形態は、ハードウェアプロセッサを含み、本明細書に記載され、および/または以下の特許請求の範囲のいずれかに記載された動作のいずれかを実行するように構成された1つまたは複数のデバイスを有するシステムに関する。
【0132】
一実施形態では、非一時的コンピュータ可読記憶媒体は、1つまたは複数のハードウェアプロセッサによって実行されると、本明細書に記載され、および/または特許請求の範囲のいずれかに記載された動作のいずれかの実行を引き起こす命令を含む。
【0133】
本明細書に記載の特徴および機能の任意の組合せが、1つまたは複数の実施形態に従って使用され得る。上記の明細書では、実施形態は、実装ごとに異なり得る多数の特定の詳細を参照して説明されている。したがって、本明細書および図面は、限定的な意味ではなく例示的な意味で考慮されるべきである。本発明の範囲の唯一かつ排他的な指標、および本発明の範囲であることが出願人によって意図されているものは、本出願に由来する請求項のセットの文字通りかつ均等な範囲であり、そのような請求項に由来する特定の形態では、その後の補正を含む。
【0134】
8.ハードウェアの概要
一実施形態によれば、オーバーレイネットワークを修正するための本明細書に記載の技法は、1つまたは複数の専用コンピューティングデバイスによって実施される。専用コンピューティングデバイスは、本技術を実行するように固定結線されてもよく、または本技術を実行するように永続的にプログラムされた1つまたは複数の特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、もしくはネットワーク処理ユニット(NPU)などのデジタル電子デバイスを含んでもよく、またはファームウェア、メモリ、他のストレージ、もしくは組合せ内のプログラム命令に応じて本技術を実行するようにプログラムされた1つまたは複数の汎用ハードウェアプロセッサを含んでもよい。そのような専用コンピューティングデバイスはまた、本技術を達成するために、カスタム固定結線ロジック、ASIC、FPGA、またはNPUをカスタムプログラミングと組み合わせることができる。専用コンピューティングデバイスは、デスクトップコンピュータシステム、ポータブルコンピュータシステム、ハンドヘルドデバイス、ネットワーキングデバイス、または本技術を実装するために固定結線および/またはプログラムロジックを組み込んだ任意の他のデバイスであってもよい。
【0135】
例えば、
図5は、本発明の一実施形態を実施することができるコンピュータシステム500を示すブロック図である。コンピュータシステム500は、情報を通信するためのバス502または他の通信機構と、情報を処理するためのバス502に結合されたハードウェアプロセッサ504とを含む。ハードウェアプロセッサ504は、例えば汎用マイクロプロセッサであってもよい。
【0136】
コンピュータシステム500はまた、プロセッサ504によって実行される情報および命令を記憶するためにバス502に結合された、ランダムアクセスメモリ(RAM)または他のダイナミック記憶デバイスなどのメインメモリ506を含む。メインメモリ506はまた、プロセッサ504によって実行される命令の実行中に一時変数または他の中間情報を記憶するために使用されてもよい。そのような命令は、プロセッサ504にアクセス可能な非一時的記憶媒体に記憶されると、コンピュータシステム500を、命令で指定された動作を実行するようにカスタマイズされた専用マシンにする。
【0137】
コンピュータシステム500は、プロセッサ504のための静的情報および命令を記憶するためにバス502に結合された読み出し専用メモリ(ROM)508または他の静的記憶デバイスをさらに含む。磁気ディスクまたは光ディスクなどの記憶デバイス510が設けられ、情報および命令を記憶するためにバス502に結合される。
【0138】
コンピュータシステム500は、バス502を介して、コンピュータユーザに情報を表示するための陰極線管(CRT)などのディスプレイ512に結合され得る。英数字および他のキーを含む入力デバイス514は、情報およびコマンド選択をプロセッサ504に通信するためにバス502に結合される。別の種類のユーザ入力デバイスは、プロセッサ504に方向情報およびコマンド選択を通信し、ディスプレイ512上のカーソル移動を制御するための、マウス、トラックボール、またはカーソル方向キーなどのカーソルコントロール516である。この入力デバイスは、典型的には、デバイスが平面内の位置を指定することを可能にする2つの軸、すなわち第1の軸(例えば、x)および第2の軸(例えば、y)に2つの自由度を有する。
【0139】
コンピュータシステム500は、カスタマイズされた固定結線ロジック、1つまたは複数のASICまたはFPGA、ファームウェア、および/またはコンピュータシステムと組み合わせてコンピュータシステム500を専用マシンにするかプログラムするプログラムロジックを使用して、本明細書に記載の技術を実装することができる。一実施形態によれば、本明細書の技術は、プロセッサ504がメインメモリ506に含まれる1つまたは複数の命令の1つまたは複数のシーケンスを実行することに応答して、コンピュータシステム500によって実行される。そのような命令は、記憶デバイス510などの別の記憶媒体からメインメモリ506に読み込まれてもよい。メインメモリ506に含まれる命令シーケンスの実行は、プロセッサ504に本明細書に記載のプロセスステップを実行させる。代替的な実施形態では、固定結線回路が、ソフトウェア命令の代わりに、またはソフトウェア命令と組み合わせて使用され得る。
【0140】
本明細書で使用される「記憶媒体」という用語は、機械を特定の方法で動作させるデータおよび/または命令を記憶する任意の非一時的媒体を指す。そのような記憶媒体は、不揮発性媒体および/または揮発性媒体を含むことができる。不揮発性媒体は、例えば、記憶デバイス510などの光ディスクまたは磁気ディスクを含む。揮発性媒体は、メインメモリ506などのダイナミックメモリを含む。一般的な形態の記憶媒体は、例えば、フロッピーディスク、フレキシブルディスク、ハードディスク、ソリッドステートドライブ、磁気テープ、または任意の他の磁気データ記憶媒体、CD-ROM、任意の他の光学データ記憶媒体、穴のパターンを有する任意の物理媒体、RAM、PROM、およびEPROM、FLASH-EPROM、NVRAM、任意の他のメモリチップまたはカートリッジ、連想メモリ(CAM)、および3値連想メモリ(TCAM)を含む。
【0141】
記憶媒体は、伝送媒体とは異なるが、伝送媒体とともに使用されてもよい。伝送媒体は、記憶媒体間の情報の転送に関与する。例えば、伝送媒体は、バス502を備えるワイヤを含む、同軸ケーブル、銅線、および光ファイバを含む。伝送媒体はまた、電波および赤外線データ通信中に生成されるものなどの音響波または光波の形態をとることができる。
【0142】
様々な形態の媒体は、実行のためにプロセッサ504に1つまたは複数の命令の1つまたは複数のシーケンスを搬送することに関与することができる。例えば、命令は、最初にリモートコンピュータの磁気ディスクまたはソリッドステートドライブ上で搬送されてもよい。リモートコンピュータは、命令をそのダイナミックメモリにロードし、モデムを使用して電話回線を介して命令を送信することができる。コンピュータシステム500に対してローカルなモデムは、電話回線上でデータを受信し、赤外線送信機を使用してデータを赤外線信号に変換することができる。赤外線検出器は、赤外線信号で搬送されたデータを受信することができ、適切な回路は、データをバス502上に配置することができる。バス502は、データをメインメモリ506に搬送し、そこからプロセッサ504が命令を取り出して実行する。メインメモリ506によって受信された命令は、任意選択的に、プロセッサ504による実行の前または後のいずれかに記憶デバイス510に記憶されてもよい。
【0143】
コンピュータシステム500はまた、バス502に結合された通信インターフェース518を含む。通信インターフェース518は、ローカルネットワーク522に接続されたネットワークリンク520に結合する双方向データ通信を提供する。例えば、通信インターフェース518は、対応するタイプの電話回線にデータ通信接続を提供するためのサービス総合デジタル網(ISDN)カード、ケーブルモデム、衛星モデム、またはモデムであってもよい。別の例として、通信インターフェース518は、互換性のあるLANへのデータ通信接続を提供するためのローカルエリアネットワーク(LAN)カードであってもよい。無線リンクも実装され得る。任意のそのような実装形態では、通信インターフェース518は、様々なタイプの情報を表すデジタルデータストリームを搬送する電気信号、電磁信号、または光信号を送受信する。
【0144】
ネットワークリンク520は、典型的には、1つまたは複数のネットワークを介して他のデータデバイスにデータ通信を提供する。例えば、ネットワークリンク520は、ローカルネットワーク522を介してホストコンピュータ524またはインターネットサービスプロバイダ(ISP)526によって運用されるデータ機器に接続を提供することができる。ISP526は、現在一般に「インターネット」528と呼ばれている世界的なパケットデータ通信ネットワークを介してデータ通信サービスを提供する。ローカルネットワーク522およびインターネット528は両方とも、デジタルデータストリームを搬送する電気信号、電磁信号、または光信号を使用する。様々なネットワークを介した信号、ならびにコンピュータシステム500との間でデジタルデータを搬送するネットワークリンク520上および通信インターフェース518を介した信号は、伝送媒体の例示的な形態である。
【0145】
コンピュータシステム500は、ネットワーク、ネットワークリンク520および通信インターフェース518を介して、メッセージを送信し、プログラムコードを含むデータを受信することができる。インターネットの例では、サーバ530は、インターネット528、ISP526、ローカルネットワーク522、および通信インターフェース518を介して、アプリケーションプログラムの要求されたコードを送信することができる。
【0146】
受信されたコードは、受信されたときにプロセッサ504によって実行されてもよく、および/または後の実行のために記憶デバイス510または他の不揮発性記憶デバイスに記憶されてもよい。
【0147】
上記の明細書では、本発明の実施形態は、実装ごとに異なり得る多数の特定の詳細を参照して説明されている。したがって、本明細書および図面は、限定的な意味ではなく例示的な意味で考慮されるべきである。本発明の範囲の唯一かつ排他的な指標、および本発明の範囲であることが出願人によって意図されているものは、本出願に由来する請求項のセットの文字通りかつ均等な範囲であり、そのような請求項に由来する特定の形態では、その後の補正を含む。
【外国語明細書】