(57)【要約】方法は、ソフトウェア定義ネットワーク（ＳＤＮ）において宛先に向かうデータフローを受信することを含みうる。本方法は更に、アプリケーションの分類を識別することを含みうる。本方法は更に、アプリケーションの分類に関連付けられたパフォーマンス閾値のセットを識別することを含みうる。本方法は更に、ＳＤＮにおけるアプリケーションのデータフローの現在のパフォーマンスを判定することを含みうる。本方法は更に、パフォーマンス閾値のセットと、ＳＤＮにおけるアプリケーションのデータフローの現在のパフォーマンスとに基づいて、アプリケーションのパフォーマンススコアを生成することを含みうる。本方法は更に、アプリケーションのパフォーマンススコアをインタフェースを介して提示させることを含みうる。
2020529761.tif 000002
【特許請求の範囲】
【請求項１】
方法であって、
ソフトウェア定義ネットワーク（ＳＤＮ）における宛先に向かうアプリケーションのデータフローを受信することと、
前記アプリケーションの分類を識別することと、
前記アプリケーションの前記分類に関連付けられたパフォーマンス閾値のセットを識別することと、
前記ＳＤＮにおける前記アプリケーションの前記データフローの現在のパフォーマンスを判定することと、
パフォーマンス閾値の前記セットと、前記ＳＤＮにおける前記アプリケーションの前記データフローの前記現在のパフォーマンスとに基づいて、前記アプリケーションについてのパフォーマンススコアを生成することと、
前記アプリケーションについての前記パフォーマンススコアを、インタフェースを介して提示させることと、
を含む方法。
【請求項２】
前記アプリケーションに関連付けられた第１のトンネルであって前記データフローが当該第１のトンネルを通じて伝わるように構成される第１のトンネルを識別することと、
前記アプリケーションについての前記パフォーマンススコアに基づいて第２のトンネルを選択することと、
を更に含む、請求項１に記載の方法。
【請求項３】
前記アプリケーションについての前記パフォーマンススコアに基づいて前記第２のトンネルを選択することは、前記第２のトンネルを介する前記データフローが、前記第１のトンネルを介する前記データフローよりも、パフォーマンス閾値の前記セットを満たす可能性が高いと判定することを含む、請求項２に記載の方法。
【請求項４】
前記第１のトンネル及び前記第２のトンネルについての１つ以上のネットワークパフォーマンスメトリックをモニタリングすることと、
前記第１のトンネル及び前記第２のトンネルの前記ネットワークパフォーマンスメトリックのヒストリカルパフォーマンスデータを記憶することと、を更に含み、前記第２のトンネルは、前記第１のトンネル及び前記第２のトンネルの前記ネットワークパフォーマンスメトリックの前記ヒストリカルパフォーマンスデータに少なくとも部分的に基づいて選択される、請求項２又は３に記載の方法。
【請求項５】
前記第２のトンネルは、前記第１のトンネルがこれまでにパフォーマンス閾値の前記セットを上回っていたよりも長い継続時間にわたって、前記第２のトンネルがこれまでにパフォーマンス閾値の前記セットを上回っていたことに基づいて選択される、請求項２から４のいずれか１項に記載の方法。
【請求項６】
パフォーマンス閾値の前記セットは、レイテンシ閾値、損失パーセンテージ閾値、及びジッタ閾値を含む、請求項１から５のいずれか１項に記載の方法。
【請求項７】
パフォーマンス閾値の前記セットは、レイテンシ／ジッタ感度閾値、及び損失パーセンテージ感度閾値を含む、請求項１から６のいずれか１項に記載の方法。
【請求項８】
システムであって、
メモリと、
１つ以上のプロセッサとを備え、当該１つ以上のプロセッサは、
ソフトウェア定義ネットワーク（ＳＤＮ）における宛先に向かうアプリケーションのデータフローを受信することと、
前記アプリケーションの分類を識別することと、
前記アプリケーションの前記分類に関連付けられたパフォーマンス閾値のセットを識別することと、
前記ＳＤＮにおける前記アプリケーションの前記データフローの現在のパフォーマンスを判定することと、
パフォーマンス閾値の前記セットと、前記ＳＤＮにおける前記アプリケーションの前記データフローの前記現在のパフォーマンスとに基づいて、前記アプリケーションについてのパフォーマンススコアを生成することと、
前記アプリケーションについての前記パフォーマンススコアを、インタフェースを介して提示させることと、
を含む動作を実行するように構成される、システム。
【請求項９】
前記１つ以上のプロセッサは、
前記アプリケーションに関連付けられた第１のトンネルであって前記データフローが当該第１のトンネルを通じて伝わるように構成される第１のトンネルを識別することと、
前記アプリケーションについての前記パフォーマンススコアに基づいて第２のトンネルを選択することと、
を含む更なる動作を実行するように構成される、請求項８に記載のシステム。
【請求項１０】
前記１つ以上のプロセッサは、前記アプリケーションについての前記パフォーマンススコアに基づいて前記第２のトンネルを選択する際に、前記第２のトンネルを介する前記データフローが、前記第１のトンネルを介する前記データフローよりも、パフォーマンス閾値の前記セットを満たす可能性が高いと判定するように構成される、請求項９に記載のシステム。
【請求項１１】
前記１つ以上のプロセッサは、
前記第１のトンネル及び前記第２のトンネルについての１つ以上のネットワークパフォーマンスメトリックをモニタリングすることと、
前記第１のトンネル及び前記第２のトンネルの前記ネットワークパフォーマンスメトリックのヒストリカルパフォーマンスデータを記憶することと、を含む更なる動作を実行するように構成され、前記第２のトンネルは、前記第１のトンネル及び前記第２のトンネルの前記ネットワークパフォーマンスメトリックの前記ヒストリカルパフォーマンスデータに少なくとも部分的に基づいて選択される、請求項９又は１０に記載のシステム。
【請求項１２】
前記第２のトンネルは、前記第１のトンネルがこれまでにパフォーマンス閾値の前記セットを上回っていたよりも長い継続時間にわたって、前記第２のトンネルがこれまでにパフォーマンス閾値の前記セットを上回っていたことに基づいて選択される、請求項９から１１のいずれか１項に記載のシステム。
【請求項１３】
パフォーマンス閾値の前記セットは、レイテンシ閾値、損失パーセンテージ閾値、及びジッタ閾値を含む、請求項８から１２のいずれか１項に記載のシステム。
【請求項１４】
パフォーマンス閾値の前記セットは、レイテンシ／ジッタ感度閾値、及び損失パーセンテージ感度閾値を含む、請求項８から１３のいずれか１項に記載のシステム。
【請求項１５】
非一時的なコンピュータ読み取り可能媒体であって、当該媒体に格納されたコンピュータ読み取り可能命令を含み、当該命令は、
ソフトウェア定義ネットワーク（ＳＤＮ）における宛先に向かうアプリケーションのデータフローを受信することと、
前記アプリケーションの分類を識別することと、
前記アプリケーションの前記分類に関連付けられたパフォーマンス閾値のセットを識別することと、
前記ＳＤＮにおける前記アプリケーションの前記データフローの現在のパフォーマンスを判定することと、
パフォーマンス閾値の前記セットと、前記ＳＤＮにおける前記アプリケーションの前記データフローの前記現在のパフォーマンスとに基づいて、前記アプリケーションについてのパフォーマンススコアを生成することと、
前記アプリケーションについての前記パフォーマンススコアを、インタフェースを介して提示させることと、
を含む動作の実行を行う又は制御するためにプロセッサにより実行可能である、コンピュータ読み取り可能媒体。
【請求項１６】
前記動作は、
前記アプリケーションに関連付けられた第１のトンネルであって前記データフローが当該第１のトンネルを通じて伝わるように構成される第１のトンネルを識別することと、
前記アプリケーションについての前記パフォーマンススコアに基づいて第２のトンネルを選択することと、
を更に含む、請求項１５に記載の非一時的なコンピュータ読み取り可能媒体。
【請求項１７】
前記アプリケーションについての前記パフォーマンススコアに基づいて前記第２のトンネルを選択することは、前記第２のトンネルを介する前記データフローが、前記第１のトンネルを介する前記データフローよりも、パフォーマンス閾値の前記セットを満たす可能性が高いと判定することを含む、請求項１６に記載の非一時的なコンピュータ読み取り可能媒体。
【請求項１８】
前記動作は、
前記第１のトンネル及び前記第２のトンネルについての１つ以上のネットワークパフォーマンスメトリックをモニタリングすることと、
前記第１のトンネル及び前記第２のトンネルの前記ネットワークパフォーマンスメトリックのヒストリカルパフォーマンスデータを記憶することと、を更に含み、前記第２のトンネルは、前記第１のトンネル及び前記第２のトンネルの前記ネットワークパフォーマンスメトリックの前記ヒストリカルパフォーマンスデータに少なくとも部分的に基づいて選択される、請求項１６又は１７に記載の非一時的なコンピュータ読み取り可能媒体。
【請求項１９】
前記第２のトンネルは、前記第１のトンネルがこれまでにパフォーマンス閾値の前記セットを上回っていたよりも長い継続時間にわたって、前記第２のトンネルがこれまでにパフォーマンス閾値の前記セットを上回っていたことに基づいて選択される、請求項１６から１８のいずれか１項に記載の非一時的なコンピュータ読み取り可能媒体。
【請求項２０】
パフォーマンス閾値の前記セットは、レイテンシ閾値、損失パーセンテージ閾値、及びジッタ閾値を含む、請求項１５から１９のいずれか１項に記載の非一時的なコンピュータ読み取り可能媒体。
【請求項２１】
装置であって、
ソフトウェア定義ネットワーク（ＳＤＮ）における宛先に向かうアプリケーションのデータフローを受信する手段と、
前記アプリケーションの分類を識別する手段と、
前記アプリケーションの前記分類に関連付けられたパフォーマンス閾値のセットを識別する手段と、
前記ＳＤＮにおける前記アプリケーションの前記データフローの現在のパフォーマンスを判定する手段と、
パフォーマンス閾値の前記セットと、前記ＳＤＮにおける前記アプリケーションの前記データフローの前記現在のパフォーマンスとに基づいて、前記アプリケーションについてのパフォーマンススコアを生成する手段と、
前記アプリケーションについての前記パフォーマンススコアを、インタフェースを介して提示させる手段と、
を備える装置。
【請求項２２】
請求項２から７のいずれか１項に記載の方法を実行する手段を更に備える、請求項２１に記載の装置。
【請求項２３】
コンピュータによって実行されると当該コンピュータに請求項１から７のいずれか１項に記載の方法のステップを実行させる命令を含むコンピュータプログラム、コンピュータプログラム製品、又はコンピュータ読み取り可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示で説明される実施形態は、ソフトウェア定義ネットワークにおけるアプリケーションのための改善されたパス選択に関する。
【背景技術】
【０００２】
ネットワークの使用は、別個のコンピューティングデバイス間の通信を可能にするのに有用なツールである。あるネットワークトラフィックは、当該ネットワークトラフィックについて期待されるサービスレベルの合意（アグリーメント）又は要求条件に従いうる。そのような合意又は要求条件は、時には「サービスレベルアグリーメント」（ＳＬＡ：service level agreements）と称される。
【０００３】
本開示において請求される主題は、任意の欠点を解決する又は上述のような環境においてのみ動作する実施形態に限定されない。むしろ、この背景は、本開示で説明されるいくつかの実施形態が実施されうる技術分野の一例を示すためにのみ提供される。
【発明の概要】
【０００４】
本発明の態様は独立請求項に記載されており、好ましい特徴は従属請求項に記載されている。１つの態様の特徴は、各態様に対して単独で、又は他の態様と組み合わせて適用されうる。
【０００５】
本開示の１つ以上の実施形態は、ソフトウェア定義ネットワーク（ＳＤＮ）において宛先に向かうデータフローを受信することを含みうる方法を含みうる。本方法は更に、アプリケーションの分類を識別することを含みうる。本方法は更に、アプリケーションの分類に関連付けられた複数のパフォーマンス閾値を含むセットを識別することを含みうる。本方法は更に、ＳＤＮにおけるアプリケーションのデータフローの現在のパフォーマンスを判定することを含みうる。本方法は更に、パフォーマンス閾値のセットと、ＳＤＮにおけるアプリケーションのデータフローの現在のパフォーマンスとに基づいて、アプリケーションのパフォーマンススコアを生成することを含みうる。本方法は更に、アプリケーションのパフォーマンススコアをインタフェースを介して提示させることを含みうる。
【０００６】
本開示の１つ以上の実施形態は、そのような方法の実行を容易にするためのシステム及び／又は非一時的なコンピュータ読み取り可能媒体を更に含みうる。
【０００７】
実施形態の目的及び利点は、少なくとも、請求項において具体的に指摘されるエレメント、特徴、及び組み合わせによって実現されて達成される。
【０００８】
前述の全体的な説明及び以下の詳細な説明の両方は、単に例及び説明のためのものであり、請求される本発明を限定するものではないことを理解されたい。
【図面の簡単な説明】
【０００９】
実施形態の例は、以下の添付図面を使用して更なる具体性及び詳細を伴って記載及び説明される。
【００１０】
【図１】図１は、ソフトウェア定義ネットワークを実装するネットワークコンポーネントのシステム例を示す。
【００１１】
【図２】図２は、ネットワークデバイス間に複数のパスを有するシステム例を示す。
【００１２】
【図３】図３は、ネットワークにおけるアプリケーションのパフォーマンススコアを生成する方法例のフローチャートを示す。
【００１３】
【図４】図４は、コンピューティングシステムの例を示す。
【発明を実施するための形態】
【００１４】
本開示のいくつかの実施形態は、ソフトウェア定義ネットワーク（ＳＤＮ）の動作及びデータパスの選択の改善に関するものである。ＳＤＮでは、ネットワーク制御プレーンは、従来のネットワーキングとは異なり、物理トポロジ及びデータプレーンから機能的に分離されうる。制御プレーンを介して、制御デバイスは、ＳＤＮと、デバイス（例えば、ルータ）間のデータプレーントンネルのパス特性とをモニタリングしうる。少なくともいくつかの実施形態では、ＳＤＮは、仮想マシン、ハイパーバイザ、又はクラウドベースのサーバ上で動作するルータ等の、１つ以上の仮想化コンポーネントを含みうる。本開示は、ＳＤＮに関連するアプリケーションのパフォーマンスを判定するためのメカニズムを提供しうる。
【００１５】
本開示のいくつかの実施形態は、ソフトウェア定義ネットワークにおけるアプリケーションのためのネットワークパスの特徴付け及び選択の改善に関するものである。本明細書で説明する技術は、トンネルごとに、損失、レイテンシ、及びジッタについてのネットワークメトリックを判定しうる。本明細書で説明するシステムは、どのアプリケーションがどのトンネルを通過するかについての可視性を提供しうる。これらのシステムは、アプリケーションをそれぞれのトンネルメトリックと相関させうる。これらのシステムは、それぞれのトンネル上のアプリケーションのパフォーマンスを示すアプリケーションスコアを判定しうる。少なくともいくつかの実施形態では、アプリケーションパフォーマンスを測定するために、アプリケーションスコアが使用されうる。少なくともいくつかの実施形態では、アプリケーションスコアに基づいて、アプリケーションのために新しいパスが選択されうる。少なくともいくつかの実施形態では、ＳＬＡに基づいて、アプリケーションのためのトンネルが変更されうる。ＳＬＡは、帯域幅、可用性、ジッタ、レイテンシ、損失、及び／又はその他のもの等の、１つ以上のネットワークパフォーマンスメトリックについての合意された閾値レベルを含みうる。
【００１６】
本開示のいくつかの実施形態では、ネットワークパスパフォーマンスの最新のスナップショットのみを考慮するのではなく、ネットワークデバイスは、種々のパスのヒストリカルパフォーマンス及び／又は特定のパスに関連付けられたコスト等の、二次的ファクタを考慮しうる。例えば、ネットワークデバイスは、潜在的なパスの各々が、所与の期間の間にＳＬＡを下回った回数を考慮してもよく、最良のパフォーマンスを有するパスを選択してもよい。いくつかの実施形態では、種々のパスのヒストリカルパフォーマンスの比較に機械学習アルゴリズムが使用されうる。そのような機械学習アルゴリズムは、考慮され、かつ、時間とともに継続的に精製される複数のファクタ（例えば、ジッタ、レイテンシ、損失、コスト、キャリアの評価（reputation）等）を含みうる。ヒストリカルパフォーマンス及び／又はその他のファクタを使用することによって、最も最近のスナップショットに基づいてパスを単に選択するのではなく、データフローのＳＬＡを満たす可能性がより高いパスを見つけるために選択が行われる。
【００１７】
本開示の実施形態は、コンピュータネットワークに対する改善及びコンピュータ自体の動作に対する改善を提供することができる。例えば、パフォーマンス要求条件を満たす可能性がより高いパスをアプリケーションに使用することができ、それにより応答時間の増加及びアプリケーションパフォーマンスの向上が可能になるため、アプリケーションのパフォーマンスを改善することができる。更に、データフローのＳＬＡを満たす可能性がより高いパスを選択することによって、ネットワークトラフィックが、パフォーマンスが向上した状態で流れることができる。例えば、本開示の実施形態を使用することにより、より信頼性の高いパス上にネットワークトラフィックを配置する可能性をより高くでき、それによりデータの再送をより少なくできる。より少ない再送を提供することによって、帯域幅等の貴重なネットワークリソースを保ち、応答時間の増加を提供できる。更に、再送の回数が減少するため、内部ネットワークドメインを流れるトラフィックの量を低減することができ、それにより内部ネットワークドメインに対して優れたパフォーマンスが提供される。本開示が、パスを選択する際の１つのファクタとしてコスト節約を含むことができる別の利点は、パス選択プロセスにおいて特定のパスに関連付けられたコストを考慮することを含みうる。本明細書で説明するパス選択技術は、サービスとしてのソフトウェア（「ＳａａＳ：software-as-a-service」）及び／又はクラウドベースのアプリケーションにも使用することができる。
【００１８】
添付の図面を参照して、本開示の実施形態について説明する。
【００１９】
図１は、本開示の１つ以上の実施形態に係る、ソフトウェア定義ネットワークを実装するネットワークコンポーネントの例示的なシステム１００を示す。いくつかの実施形態では、アプリケーションパフォーマンス及びネットワークパス選択の決定が、システム１００によって示されるネットワークのような、ソフトウェア定義ネットワークにおいて実装されうる。システム１００は、内部ネットワークドメイン１０５及び１つ以上の外部ネットワークドメインを含みうる。システム１００は、１つ以上のエッジネットワークデバイス１１０（エッジネットワークデバイス１１０ａ〜１１０ｄ等）、制御デバイス１２０、通信ネットワーク１３０、並びに、外部ネットワークデバイス１４０及び１４１（外部ネットワークデバイス１４０ａ〜１４０ｄ及び１４１ａ〜１４１ｄ等）を含みうる。
【００２０】
システム１００は、ソフトウェア定義ネットワークを実装しうる。ソフトウェア定義ネットワークは、ハードウェアによって制御されるのではなくソフトウェアによって管理されるネットワークを含みうる。このため、ソフトウェア定義ネットワークは、インターネット、マルチプロトコルラベルスイッチング（ＭＰＬＳ：MultiProtocol Label Switching）コネクション、及び／又はセルラコネクション（Long Term Evolution（ＬＴＥ）、LTE Advanced、Worldwide Interoperability for Microwave Access（ＷｉＭＡＸ）、４Ｇ、及び／又はその他のもの等）のような、複数のタイプのコネクション又は通信リンクをサポートしうる。加えて、ネットワークは、種々のコネクション間のロードバランシング又はロードシェアリングをサポートしうる。更に、ネットワークについての分散された性質に起因して、ソフトウェア定義ネットワークは、仮想プライベートネットワーク（ＶＰＮ）、ファイアウォール、及び他のセキュリティサービスをサポートしうる。例えば、ソフトウェア定義ネットワークでは、制御プレーンが物理トポロジから機能的に分離されうる。いくつかの実施形態では、ソフトウェア定義ネットワークは、（ソフトウェアにより管理される）ネットワークの制御プレーンを、（ネットワークのハードウェア上で動作する）ネットワークのデータプレーンから分離しうる。本明細書で使用されるように、制御プレーンという用語は、データプレーンで生じうる、ネットワークを通じたデータ伝送ではなく、ネットワーク自体の制御及び管理で使用される通信及びコネクションを指しうる。本明細書で使用されるように、データプレーンという用語は、ネットワークを通じたデータの送信及び受信で使用される通信及びコネクションを指しうる。例えば、制御プレーンは、ネットワーク内のネットワークデバイスに向かう管理トラフィックを含む場合があり、データプレーンは、ネットワーク内のネットワークデバイスを通過するトラフィックを含む場合がある。
【００２１】
いくつかの実施形態においては、とりわけ、ソフトウェア定義ネットワークは、ソフトウェア定義ワイドネットワーク（ＳＤ−ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）として実装されうる。ネットワークパス選択の１つ以上の実施形態が、ＳＤ−ＷＡＮとの関連で説明されうるが、このような実施形態はあらゆるネットワークでも実装されうる。
【００２２】
いくつかの実施形態では、制御デバイス１２０は、エッジネットワークデバイス１１０の動作の１つ以上の態様を指示することによって、内部ネットワークドメイン１０５の制御プレーンを管理するように構成されうる。例えば、制御デバイス１２０は、１つ以上のエッジネットワークデバイス１１０にポリシーを生成及び／又は配布しうる。ポリシーは、ルーティング、優先度、メディア等の、ネットワークトラフィックの処理に関係するルール又はルールのセットを含みうる。いくつかの実施形態では、ポリシーは、種々のデータフローに対するＳＬＡを含みうる。例えば、ビデオアプリケーションに関連付けられたデータフローは、第１の閾値を下回るレイテンシを有するパスに沿ってデータフローがルーティングされるＳＬＡを有してもよく、音声送信アプリケーションに関連付けられたデータフローは、第１の閾値を下回る損失及び第２の閾値を下回るジッタを有するパスに沿ってデータフローがルーティングされるＳＬＡを有してもよい。
【００２３】
内部ネットワークドメイン１０５は、特定の機能及び／又はプロトコルを有する、保護され制御されたドメインとして動作しうる。いくつかの実施形態では、エッジネットワークデバイス１１０は、制御デバイス１２０によって作成された及び／又は伝えられた１つ以上のポリシーに基づいて動作しうる。これら及び他の実施形態では、エッジネットワークデバイス１１０は、制御デバイス１２０によって作成された及び／又は伝えられたポリシーに基づいて、内部ネットワークドメイン１０５内のデータトラフィックをルーティングしうる。
【００２４】
いくつかの実施形態では、エッジネットワークデバイス（例えば、エッジネットワークデバイス１１０ａ）は、他のエッジネットワークデバイス（例えば、エッジネットワークデバイス１１０ｄ）へルーティングされるべきアプリケーションについてのデータフローを受信しうる。エッジネットワークデバイス１１０ａは、当該アプリケーションについてのデータフローがＳＬＡの対象であることと、エッジネットワークデバイス１１０ａがトラフィックをエッジネットワークデバイス１１０ｄへルーティングするための複数の潜在的なパスが存在することとを判定しうる。エッジネットワークデバイス１１０ａは、当該アプリケーションについての分類を識別しうる。アプリケーションは、アプリケーションのタイプによって分類されうる。例えば、アプリケーションは、以下の表に基づいて分類されうる。
2020529761.tif 000003
【００２５】
アプリケーションについての分類は、例えば、複数のパフォーマンス閾値を含むセットに関連付けられうる。パフォーマンス閾値のセットは、ネットワークメトリック及び／又はアプリケーションメトリック等の、任意の数及びタイプのメトリックを含みうる。例えば、パフォーマンス閾値のセットは、損失、レイテンシ、及びジッタを含みうる。更なる例には、平均オピニオンスコア（mean opinion score）（「ＭＯＳスコア」）（例えば、リアルタイムアプリの場合）、ＴＣＰセッションタイムアウト／再送等が含まれうる。パフォーマンス閾値のセットの例は、以下の表のようなものとされうる。パフォーマンス閾値のセットの値は、ユーザ及びアプリケーションの間で許容されうるエンドツーエンド・メトリックの一部に基づいてもよい。以下の表の値は、ブランチエッジからセントラルオフィスエッジ／クラウドエッジメトリックを表しうる。
2020529761.tif 000004
【００２６】
エッジネットワークデバイス１１０ａは、例えばトンネルごとに、アプリケーションの現在のパフォーマンスを判定しうる。エッジネットワークデバイス１１０ａは、当該アプリケーションの現在のパフォーマンスをパフォーマンス閾値のセットと比較しうる。この比較に少なくとも部分的に基づいて、エッジネットワークデバイス１１０ａは、当該アプリケーションについてのパフォーマンススコアを生成しうる。当該アプリケーションについてのパフォーマンススコアがスコア閾値を下回る場合、エッジネットワークデバイス１１０ａは、当該アプリケーションについてのパフォーマンススコアを増加させるために、当該アプリケーションについての異なるパス及び／又はトンネルを識別及び／又は選択しうる。
【００２７】
一例では、所与のアプリケーションについて、エッジネットワークデバイス１１０ａは、以下の技術を使用してパフォーマンススコアを生成しうる。まず、エッジネットワークデバイス１１０ａは、以下の式を使用して、「ＩＭ」と称されうる個別のレイテンシ、損失及びジッタスコアを計算しうる。
（ＡＭ＜＝ＤＭ）である場合、ＩＭ＝１０であり、それ以外の場合、ＩＭ＝ＤＭ／ＡＭ＊１０であり、
ここで、ＡＭは現在のパフォーマンスであり、ＤＭはパフォーマンス閾値のセットである。その後、エッジネットワークデバイス１１０ａは、以下の式を使用する等、個別のレイテンシ、損失及びジッタスコアを使用して、パフォーマンススコアを生成しうる。
クラスがレイテンシにセンシティブ及び損失にセンシティブの両方である場合、又は、クラスが損失にセンシティブでもレイテンシにセンシティブでもない場合、パフォーマンススコア＝ｓｕｍ(ＩＭ[ｉ])／３ であり、
クラスが損失にセンシティブであるがレイテンシにセンシティブでない場合、パフォーマンススコア＝((ＩＭ[レイテンシ]＋ＩＭ[ジッタ])＊０．５＋ＩＭ[損失])／２ である。
【００２８】
エッジネットワークデバイス１１０ａは更に、どのパスがデータフローのために使用されるべきかを安定する際に、種々のパスのヒストリカルパフォーマンス等の二次的ファクタを考慮しうる。ヒストリカルパフォーマンスの１つの例示的な態様は、所与の継続時間中の、ヒストリカルパフォーマンスデータが閾値を下回った回数を含みうる。このような判定では、閾値の上から閾値の下へ進む動作がカウントされてもよいが、このような判定のための他のメカニズムが使用されてもよい。ヒストリカルパフォーマンスの他の例示的な態様は、ヒストリカルパフォーマンスデータが所与の期間にわたって閾値を下回った継続時間を含みうる。ヒストリカルパフォーマンスの他の例示的な態様は、パスのキャリアについての考慮事項を含みうる。追加的には、第１のキャリアの、他の評価、パフォーマンス、オピニオン等のデータがパス選択に含められうる。
【００２９】
パス選択に含められうる他の例示的な態様は、特定のパスを使用することに関連付けられたコストでありうる。例えば、データを搬送するために第２のネットワークよりも第１のネットワークが高価である場合、パス選択の決定は、第２のネットワークを通る、より安価なパスを優先してもよい。
【００３０】
いくつかの実施形態では、ヒストリカルパフォーマンスに基づいてパスを決定することは、パスを決定する際に、機械学習アルゴリズム又は他の分析等の分析の使用を含みうる。いくつかの実施形態では、当該分析は、分析されたヒストリカルパフォーマンスに基づいて、パスについての所与のスコアをもたらしうるとともに、パスについてのアグリゲート（aggregate）ヒストリカルパフォーマンスを表しうる。例えば、第１のネットワークデバイス２１０ａは、データフローが受信されるごとにヒストリカルデータ分析を実行するのではなく、データフローについてのパス選択を実行する際に、スコアを調べうる。いくつかの実施形態では、当該スコアは、時間とともに継続的に精製されうる。
【００３１】
いくつかの実施形態では、アグリゲート・ヒストリカルパフォーマンスを判定するための分析は、機械学習アルゴリズムを含みうる。本開示に整合する機械学習アルゴリズムの一例は、ランダムフォレストアルゴリズムを含んでよく、当該アルゴリズムにおいて、当該アルゴリズムの変数には、ヒストリカルパフォーマンスデータが閾値を下回った回数、ヒストリカルパフォーマンスデータが閾値を下回った時間長、及び／又はパスのキャリアの評価等の、ヒストリカルパフォーマンスの態様のうちの１つ以上が含まれうる。これら及び他の実施形態では、ヒストリカルパフォーマンスの複数の態様は、アグリゲート・ヒストリカルパフォーマンスを生成すること、又はパス選択を実行することに含まれうる。
【００３２】
例えば、ランダムフォレストアルゴリズムの場合、所与のパスのパフォーマンスをスコアとして特徴付けるための複数の決定木が生成されうる。決定木は、考慮されている変数のセット（例えば、閾値を下回る時間の継続時間、閾値をクロスする回数、コスト、キャリア評価等）と、変数の所与の組み合わせについての期待されるスコアとを含んでもよい。決定木は、変数及びそれらの対応するスコアのそのような既知の組み合わせについてのランダムなグループ化に基づいて生成されてもよい。パスのヒストリカルパフォーマンスデータを分析するために複数の決定木が使用されてもよい。例えば、分析対象のパスについてのヒストリカルパフォーマンスデータは、決定木の各々のスコアを生成するために当該決定木を通されてもよい。パスについてのスコアを提供するために、決定木間の共通又は平均スコアが使用されてもよい。いくつかの実施形態では、ヒストリカルパフォーマンスデータは、データフローが受信される際に、ネットワークパフォーマンスを測定するプローブが戻る際に、定期的に、又は任意の他のベースで、決定木を使用して分析されうる。いくつかの実施形態では、ネットワークデバイスがパス選択決定を実行する際にスコアが既に生成されていてもよいように、当該スコアが記憶されていてもよく、それにより、当該ネットワークデバイスは、スコアを取得し、かつ、それをパス選択の実行において他の潜在的なパスのスコアと比較する。ランダムフォレストアルゴリズムについて記載されているが、パスのヒストリカルパフォーマンスを比較して、ＳＬＡの対象となるデータフローについてのパスを選択するために、任意の他の機械学習、分析、又は他の解析が実行されてもよい。
【００３３】
いくつかの実施形態では、アグリゲート・ヒストリカルパフォーマンスは、ヒストリカルパフォーマンスの１つ以上のデータポイントに対する重み係数を含みうる。例えば、より最近のヒストリカルパフォーマンスデータポイントは、過去のデータポイントよりも大きく重み付けされうる。これらの及び他の実施形態では、重み付け係数は、特定のデータポイントの影響がますます少なくなるように、及び／又は最終的にはアグリゲート・ヒストリカルパフォーマンスに何ら影響を及ぼさないように、半減期又は他の減衰関数を含みうる。いくつかの実施形態では、ヒストリカルパフォーマンスのどのデータポイントをアグリゲート・ヒストリカルパフォーマンスの決定で使用するかを決定する際に、カットオフポイントが使用されうる。例えば、そのようなカットオフポイントは、ヒストリカルパフォーマンスのある数の最近のデータポイント、又はアグリゲート・ヒストリカルパフォーマンスに寄与するために使用されうるデータポイントのある継続時間に対して、アグリゲート・ヒストリカルパフォーマンスを集中させうる。
【００３４】
いくつかの実施形態では、アグリゲート・ヒストリカルパフォーマンスは、短期のヒストリカルパフォーマンス（例えば、先週、最近の２週間、又は先月等の、特定の期間内）、長期ヒストリカルパフォーマンス（例えば、１週間以上、２週間以上、又は１ヶ月以上等の、特定の期間内よりも古い）、又は両方の組み合わせに基づいていてもよい。
【００３５】
いくつかの実施形態では、制御デバイス１２０は、エッジネットワークデバイス１１０の各々と制御プレーンコネクションを形成しうる。制御プレーンコネクションは、内部ネットワークドメイン１０５の管理及び制御のために、エッジネットワークデバイス１１０と制御デバイス１２０との間のデータのやりとりを容易にしうる。制御プレーンコネクションは、データグラム・トランスポート層セキュリティ（ＤＴＬＳ：Datagram Transport Layer Security）トンネル等の、通信ネットワーク１３０を通るトンネルとして動作しうる。いくつかの実施形態では、制御プレーンコネクション上で伝送されるデータは、制御デバイス１２０が通信ネットワーク１３０のトポロジを判定することを容易にしうる。例えば、制御デバイス１２０は、通信ネットワーク１３０内のエッジネットワークデバイス１１０間にどのような物理的コネクションが存在するかを判定するために、エッジネットワークデバイス１１０と通信しうる。追加的又は代替的には、制御プレーンコネクション上で伝送されるデータは、エッジネットワークデバイス１１０間の通信ネットワーク１３０を通る、最適な又は望ましいパスを制御デバイス１２０が判定することを容易にしうる。そのような通信は、パス選択を容易にしうる。追加的又は代替的には、制御デバイス１２０は、制御プレーンコネクション上でエッジネットワークデバイス１１０にルート情報を伝達しうる。これらの及び他の実施形態では、制御プレーンコネクションは、制御デバイス１２０とエッジネットワークデバイス１１０との間の永続的コネクションを含んでもよく、それにより、制御デバイス１２０と所与のエッジネットワークデバイス１１０との間のコネクションが切断された場合に、エッジネットワークデバイス１１０は、内部ネットワークドメイン１０５を介して通信することができないか、さもなければ、通信することを許可されないことがある。
【００３６】
いくつかの実施形態では、制御デバイス１２０は、内部ネットワークドメイン１０５内にルート情報を格納する中央ルートテーブルを維持しうる。例えば、制御デバイス１２０は、通信ネットワーク１３０を通じてエッジネットワークデバイス１１０が使用可能な物理的コネクションを判定するために、様々なエッジネットワークデバイス１１０と通信しうる。いくつかの実施形態では、エッジネットワークデバイス１１０は、互いに対する１つ以上の物理的コネクションを含みうる。これらの及び他の実施形態では、制御デバイス１２０は、内部ネットワークドメイン１１０を通るパスを判定するために、中央ルートテーブルとともに１つ以上のポリシーを生成及び／又は更新しうるとともに、それらのパスを、エッジネットワークデバイス１１０へ伝達しうる。少なくとも１つの実施形態では、制御デバイス１２０は、内部ネットワークドメイン１０５を通る全ての個別のフローに関与するのではなく、データフローに関連するポリシー及び他の分類ルールを、エッジネットワークデバイス１１０に提供しうる。
【００３７】
これらの及び他の実施形態では、エッジネットワークデバイス１１０は、システム１００全体のトポロジ及び／又はルートパスを格納していなくてもよい。エッジネットワークデバイス１１０の各々は、到達可能性を判定するために、互いに個別に問い合わせる必要がない場合がある。その代わりに、制御デバイス１２０は、そのような情報をエッジネットワークデバイス１１０に提供してもよい。追加的又は代替的には、例えば、制御デバイス１２０の１つ以上のポリシーに基づいて、到達可能性及び／又はインフラストラクチャ情報のサブセットがエッジネットワークデバイス１１０に提供されてもよい。
【００３８】
ネットワークパス選択決定において、ネットワークトラフィックがＳＬＡの対象となるデータフローである場合、パス選択決定を実行するエッジネットワークデバイス１１０は、内部ネットワークドメイン１０５を通るコネクション上の種々の潜在的なパスのヒストリカルパフォーマンスを考慮しうる。
【００３９】
制御デバイス１２０は、パス選択決定を行う際にエッジネットワークデバイス１１０をガイドするためのポリシーを生成することに加えて、エッジネットワークデバイス１１０が従うべき他のポリシーを生成してもよい。いくつかの実施形態では、制御デバイス１２０は、内部ネットワークドメイン１０５内のあるネットワークトラフィックフローを、あるタイプのコネクション（例えば、ＬＴＥ、ＭＰＬＳ）を介して、及び／又はあるエッジネットワークデバイス１１０を介してルーティングさせるためのポリシーを生成しうる。例えば、制御デバイス１２０は、中央ルートテーブルをチェックし、エッジネットワークデバイス１１０ａとエッジネットワークデバイス１１０ｃとの間に直接コネクションが存在することを判定しうる。制御デバイス１２０は、エッジネットワークデバイス１１０ａとエッジネットワークデバイス１１０ｃとの間でデータが直接ルーティングされることを可能にするのではなく、代わりに、エッジネットワークデバイス１１０ｄを通じてデータがルーティングされるようにするためのポリシーを生成しうる。例えば、データは、種々の理由でエッジネットワークデバイス１１０ｄを通じてルーティングされうるが、これは、エッジネットワークデバイス１１０ｄが、とりわけ、ファイアウォール、データフィルタ、セキュリティ機能、データ損失防止（ＤＬＰ：data loss prevention）機能、エクスポート制御、又は政府コンプライアンス機能を含みうるため等である。他の例として、制御デバイス１２０は、１つ以上のエッジネットワークデバイス１１０に、データセンタに関連付けられたエッジネットワークデバイス１１０を通じてトラフィックをルーティングさせるためのポリシーを生成しうるが、これは、例えば、データセンタがファイアウォール、データフィルタ等を含むためである。そのようなアプローチを使用して、内部ネットワークドメイン１０５内のトラフィックのフローは、制御デバイス１２０によってエッジネットワークデバイス１１０に伝えられるポリシー及びトラフィックルートに基づいて、容易に制御され、かつガイドされうる。
【００４０】
エッジネットワークデバイス１１０は、内部ネットワークドメイン１０５の境界で動作しうる。エッジネットワークデバイス１１０は、内部ネットワークドメイン１０５内で動作しうる１つ以上の物理的コネクション及び／又は論理的コネクションを含みうる。そのようなコネクションが通信ネットワーク１３０の一部として示されてもよい。追加的又は代替的には、エッジネットワークデバイス１１０は、内部ネットワークドメイン１０５の外部で動作する１つ以上の物理的コネクション及び／又は論理的コネクションを含んでもよい。例えば、エッジネットワークデバイス１１０は、（複数の）外部ネットワークデバイス１４０及び／又は１４１に接続されてもよい。
【００４１】
いくつかの実施形態では、エッジネットワークデバイス１１０は、関連する外部ネットワークデバイス１４０及び１４１から内部ネットワークドメイン１０５にトラフィックをルーティングするように動作しうる。追加的又は代替的には、エッジネットワークデバイス１１０は、内部ネットワークドメイン１０５から関連する外部ネットワークデバイス１４０及び１４１にトラフィックをルーティングするように動作してもよい。いくつかの実施形態では、エッジネットワークデバイス１１０は、とりわけ、オープン・ショーテスト・パス・ファースト（ＯＳＰＦ：Open Shortest Path First）、ボーダ・ゲートウェイ・プロトコル（ＢＧＰ：Border Gateway Protocol）、仮想ルータ冗長プロトコル（ＶＲＲＰ：Virtual Router Redundancy Protocol）、及び双方向フォワーディング検出（ＢＦＤ：Bi-directional Forwarding Detection）等の、典型的な通信プロトコルを使用して、関連する外部ネットワークデバイス１４０及び１４１と通信しうる。追加的又は代替的には、エッジネットワークデバイス１１０は、とりわけ、仮想ローカルエリアネットワーク（ＶＬＡＮ：Virtual Local Area Network）タグ付け、サービス品質（ＱｏＳ：Quality of Service）モニタリング、インターネットプロトコル（ＩＰ）フォワーディング、インターネットプロトコルセキュリティ（ＩＰｓｅｃ：Internet Protocol Security）、アクセス制御リスト（ＡＣＬ：Access Control Lists）等の、他のネットワーク機能をサポートしてもよい。
【００４２】
例えば、ＱｏＳモニタリングでは、エッジネットワークデバイス１１０は、ジッタ、帯域幅、誤り率、ビットレート、スループット、及び／又はその他のもの等の、モニタリング対象となりうる１つ以上のネットワークパフォーマンスメトリックを提供しうる。いくつかの実施形態では、エッジネットワークデバイス１１０は、１つ以上のネットワークパフォーマンスメトリックを測定するためにメッセージを定期的に送信することによって、ネットワークパフォーマンスメトリックをモニタリングしうる。そのようなメッセージは、インターネット制御メッセージプロトコル（ＩＣＭＰ）エコープローブ、ジッタプローブ、伝送制御プロトコル（ＴＣＰ）プローブ、ユーザデータグラムプロトコル（ＵＤＰ）エコープローブ等の、任意のフォーマットをとりうる。これらの及び他の実施形態では、モニタリングメッセージは、３０秒ごと、６０秒ごと、２分ごと、５分ごと、１０分ごと等の、任意の頻度で送信されうる。追加的又は代替的には、モニタリングプローブは、１つ以上のイベントに応じて送信されてもよい。いくつかの実施形態では、そのようなメッセージの頻度は、トラフィックが流れていないときには減少した頻度で送信されてもよく、及び／又は、トラフィックがパスに沿って流れているときには増加した頻度で送信されてもよい。
【００４３】
いくつかの実施形態では、エッジネットワークデバイス１１０は、１つ以上のローカルルートテーブルをローカルで維持しうる。いくつかの実施形態では、エッジネットワークデバイス１１０は、制御デバイス１２０から送信された１つ以上のポリシーに基づいて、ローカルルートテーブルを調整又は変更しうる。例えば、１つ以上のポリシーに基づいて、エッジネットワークデバイス１１０によって、１つ以上のエントリが、除去されてもよいし、廃棄されてもよいし、又はさもなければローカルルートテーブルに追加されなくてもよい。いくつかの実施形態では、エッジネットワークデバイス１１０は、エッジネットワークデバイス１１０によって処理されるトラフィックに基づいて、ルートテーブルを更新、変更、及び／又は生成するためのロジックを含みうる。１つ以上のローカルルートテーブルが、ＢＧＰ及び／又はＯＳＰＦ等の１つ以上のネットワークプロトコルを使用して学習された、直接インタフェースルート、静的ルート、及び／又は動的ルートに基づいて、エッジネットワークデバイス１１０によって自動的に追加されてもよい。いくつかの実施形態では、内部ネットワークドメイン１０５の外部のデータのためのルーティング決定が、制御デバイス１２０からの特定の指示、入力、又は制御無しで、特定のエッジネットワークデバイス１１０によって実行されうる。例えば、特定のエッジネットワークデバイス１１０は、特定のエッジネットワークデバイス１１０が制御デバイス１２０から受信した１つ以上のポリシーに基づいて、特定のエッジネットワークデバイス１１０のローカルルートテーブルを参照して、及び／又はパスのヒストリカルパフォーマンスに基づいて、パスを選択してもよい。
【００４４】
いくつかの実施形態では、エッジネットワークデバイス１１０及び／又は制御デバイス１２０のうちの１つ以上が、１つ以上の物理コンピューティングデバイス上で動作する１つ以上の仮想マシンとして実装されうる。追加的又は代替的には、エッジネットワークデバイス１１０及び／又は制御デバイス１２０はそれぞれ、個別のスタンドアロン型コンピューティングデバイスを含んでもよい。
【００４５】
本開示の範囲から逸脱することなく、図１に対して変更、追加、又は省略が行われてもよい。例えば、４つのエッジネットワークデバイス１１０及び１つの制御デバイス１２０を含むものとして示されているが、システム１００は、何千又は何万ものエッジネットワークデバイス１１０及び５つ以上の制御デバイス１２０のような、任意の数のエッジネットワークデバイス１１０及び制御デバイス１２０を含んでもよい。他の例として、単一の通信ネットワーク１３０として示されるように、通信ネットワーク１３０は、複数のタイプの通信コネクションを含んでもよい。
【００４６】
図２は、本開示の１つ以上の実施形態に係る、ネットワークデバイス２１０間に複数のパスを有する例示的なシステム２００を示す。ネットワークデバイス２１０（第１のネットワークデバイス２１０ａ及び第２のネットワークデバイス２１０ｂ等）は、１つ以上のネットワーク２３０（第１のネットワーク２３０ａ及び第２のネットワーク２３０ｂ等）を介してアプリケーションのためのデータフローをルーティングするように構成されうる。第１のネットワークデバイス２１０ａと第２のネットワークデバイス２１０ｂとの間に、（第１のネットワーク２３０ａを通る第１のパス２２０ａ及び第２のパス２２０ｂと、第２のネットワーク２３０ｂを通る第３のパス２２０ｃ及び第４のパス２２０ｄ等の）複数のパス２２０が存在しうる。
【００４７】
ネットワークデバイス２１０ａ〜ｂは、ネットワーク２３０ａ〜ｂのうちの１つ以上を介してルーティングされるデータフローを受信し、かつ、ネットワーク２３０ａ〜ｂのうちの１つ以上を介して当該データフローをルーティングするように構成された、任意のデバイス又はシステムを含みうる。例えば、ネットワークデバイス２１０ａ〜ｂは、図１のエッジネットワークデバイス１１０として実装されてもよい。いくつかの実施形態では、ネットワークデバイス２１０ａ〜ｂは、１つ以上の電子デバイス（図示せず）からデータフローを受信してもよい。
【００４８】
いくつかの実施形態では、ネットワークデバイス２１０ａ〜ｂは、ネットワーク２３０ａ〜ｂを通るパス２２０ａ〜ｄのネットワークパフォーマンスをモニタリングしうる。例えば、第１のネットワークデバイス２１０ａは、種々のパスについての種々のメトリック（ＱｏＳメトリック等）のネットワークパフォーマンスを測定するために、ネットワーク２３０ａ〜ｂを通じてプローブ又は他のメッセージを定期的に送信してもよい。追加的又は代替的には、ネットワークデバイス２１０ａ〜ｂは、パス２２０ａ〜ｄのパフォーマンスに関するデータを記憶しうる。そのような記憶されるネットワークパフォーマンスは、ヒストリカルパフォーマンスデータと称されうる。ヒストリカルパフォーマンスデータは、ローカルに維持されてもよいし、中央デバイス（図１の制御デバイス１２０等）に伝達されてもよいし、その両方であってもよい。
【００４９】
第２のネットワークデバイス２１０ｂに向かうアプリケーションのためのデータフローを第１のネットワークデバイス２１０ａで受信した後、第１のネットワークデバイス２１０ａは、パス２２０ａ〜ｄのうちのいずれを使用してデータフローを第２のネットワークデバイス２１０ｂにルーティングするかを決定しうる。例えば、アプリケーションについてのデータフローがＳＬＡの対象である場合、第１のネットワークデバイス２１０ａは、パス２２０ａ〜ｄのいずれかがＳＬＡに準拠しているかどうかを判定しうる。例えば、第１のネットワークデバイス２１０ａは、種々のパス２２０ａ〜ｄについて、ＳＬＡに関連付けられた最新のヒストリカルパフォーマンスデータを、観察、ルックアップ、要求、又はさもなければ取得しうる。１つのパスのみが、ＳＬＡに関連付けられたネットワークパフォーマンスメトリックを満たす場合、第１のネットワークデバイス２１０ａは、そのパスに沿ってデータフローをルーティングしうる。しかしながら、複数のパスが、ＳＬＡネットワークパフォーマンスメトリックを満たす場合、それらのパス（又は可能性のある全てのパス）のヒストリカルパフォーマンスが考慮されうる。追加的又は代替的には、いずれのパスもＳＬＡパフォーマンスメトリックを満たさない場合、パス２２０ａ〜ｄの全てのヒストリカルパフォーマンスが考慮されてもよい。いずれのパスがデータフローを搬送すべきかを決定するために、パス２２０ａ〜ｄのヒストリカルパフォーマンスの様々な態様のいずれかが使用されうる。図３は、ヒストリカルパフォーマンスデータの様々な例を示しうるとともに、ヒストリカルパフォーマンスのそのような態様の例を明確にするために使用されうる。
【００５０】
本開示の範囲から逸脱することなく、図２に対して変更、追加、又は省略が行われてもよい。例えば、システム２００は、２つのネットワークデバイス２１０ａ〜ｂを含むものとして示されているが、任意の数のネットワークデバイスを含みうる。他の例としては、４つのパス２２０ａ〜ｄとして示されるように、任意の数のネットワーク上の任意の数のパスが含まれうる。
【００５１】
図３は、ネットワークにおけるアプリケーションについてのパフォーマンススコアを生成する例示的な方法３００のフローチャートを示す。アプリケーションについてのパフォーマンススコアに基づいて、ネットワークに対して変更が行われうる。本方法は、ハードウェア（回路、専用ロジック等）、ソフトウェア（汎用コンピュータシステム又は専用マシン上で実行されるもの等）、又は両方の組合せを含みうる処理ロジックによって実行されてよく、この処理ロジックは、ネットワークデバイス（例えば、図１〜図２のエッジネットワークデバイス１１０、又は２１０）又は他のコンピュータシステム若しくはデバイスのいずれかに含められうる。ただし、他のシステム、又は複数のシステムの組合せが、本方法を実行するために使用されてもよい。説明を簡単にするために、本明細書で説明される方法は、一連の動作として示され、説明される。しかし、本開示による動作は、様々な順序で、及び／又は同時に、並びに本明細書で提示されず説明されない他の動作とともに生じてもよい。更に、開示された主題による方法を実行するために、全ての例示された動作が使用されるわけではない。更に、当業者であれば、これらの方法が代替的には状態図又はイベントを介して一連の相互に関連する状態として表されうることを理解し、認識するであろう。更に、本明細書で開示される方法は、そのような方法をコンピューティングデバイスにトランスポート及び転送することを容易にするために、非一時的なコンピュータ読み取り可能媒体等の製品に格納されることが可能である。本明細書で使用される製品という用語は、任意のコンピュータ読み取り可能なデバイス又は記憶媒体からアクセス可能なコンピュータプログラムを包含することが意図される。別個のブロックとして示されているが、種々のブロックは、所望の実装に応じて、追加のブロックに分割され、より少ないブロックに結合され、又は削除されてもよい。
【００５２】
方法３００は、ブロック３０５で開始しうる。当該ブロックにおいて、処理ロジックは、ソフトウェア定義ネットワーク（ＳＤＮ）における宛先に向かうアプリケーションのデータフローを受信しうる。
【００５３】
ブロック３１０で、処理ロジックは、アプリケーション分類のテーブルを参照すること等によって、アプリケーションの分類を識別しうる。アプリケーション分類のテーブルは、アプリケーション又はアプリケーションの識別子でキーイングされてもよい。アプリケーションの分類は、図１に関して説明した分類を含みうる。
【００５４】
ブロック３１５で、処理ロジックは、アプリケーションの分類に関連付けられたパフォーマンス閾値のセットを識別しうる。パフォーマンス閾値は、とりわけ、レイテンシ、損失、ジッタ、レイテンシ／ジッタ感度、損失感度についての閾値を含みうる。パフォーマンス閾値の例について、図１に関連して更に説明される。
【００５５】
ブロック３２０において、処理ロジックは、ＳＤＮにおけるアプリケーションのデータフローの現在のパフォーマンスを判定しうる。処理ロジックは、トンネル、リンク、エッジデバイス等のパスのコンポーネントのいずれかについての現在のパフォーマンスを識別しうる。
【００５６】
ブロック３２５において、処理ロジックは、パフォーマンス閾値のセットと、ＳＤＮにおけるアプリケーションのデータフローの現在のパフォーマンスとに基づいて、当該アプリケーションについてのパフォーマンススコアを生成しうる。例えば、アプリケーションについてのパフォーマンススコアは、トンネルがＳＬＡ閾値を上回ったままである時間の継続時間に基づいて生成されてもよい。これらの及び他の実施形態では、より短い期間にわたって閾値を超えたままであるトンネルが、より長い期間にわたってＳＬＡ閾値を超えたままである他のトンネルよりも選択されうる。他の例では、アプリケーションについてのパフォーマンススコアは、ＳＬＡ閾値を超えて発生した可能性がある変動の回数に基づいて生成されうる。更なる例では、アプリケーションについてのパフォーマンススコアは、キャリア情報に基づいて生成されうる。更に他の例では、アプリケーションについてのパフォーマンススコアは、そのリンクを介してトラフィックを搬送するコストに基づいて生成されうる。少なくともいくつかの実施形態では、処理ロジックは、他のメトリックの中でもとりわけ上記のメトリックに基づいて、アプリケーションについてのパフォーマンススコアを定期的に更新しうる。ブロック３３０において、処理ロジックは、アプリケーションについてのパフォーマンススコアを、グラフィカルユーザインタフェース（ＧＵＩ）等のインタフェースを介して提示させうる。
【００５７】
ブロック３３５において、処理ロジックは、パフォーマンススコアに基づいて更なるアクションを行いうる。少なくともいくつかの実施形態では、処理ロジックは、アプリケーションに関連付けられた第１のトンネルであって当該第１のトンネルを通じてデータフローが伝わるように構成されている第１のトンネルを識別し、当該アプリケーションについてのパフォーマンススコアに基づいて第２のトンネルを選択しうる。
【００５８】
少なくともいくつかの実施形態では、アプリケーションについてのパフォーマンススコアに基づいて第２のトンネルを選択する際に、処理ロジックは、第２のトンネルを介するデータフローが、第１のトンネルを介するデータフローよりも、パフォーマンス閾値のセットを満たす可能性が高いと判定しうる。
【００５９】
少なくともいくつかの実施形態では、処理ロジックは、第１のトンネル及び第２のトンネルについての１つ以上のネットワークパフォーマンスメトリックをモニタリングし、第１のトンネル及び第２のトンネルのネットワークパフォーマンスメトリックのヒストリカルパフォーマンスデータ記憶しうる。例えば、処理ロジックは、トンネル及び／又はパス内のメッセージに関する１つ以上の演算又は分析を観察又はさもなければ実行しうるとともに、パス及び／又はトンネルのネットワークパフォーマンスメトリックをモニタリングしうる。
【００６０】
第２のトンネルは、第１のトンネル及び第２のトンネルのネットワークパフォーマンスメトリックのヒストリカルパフォーマンスデータに少なくとも部分的に基づいて選択されうる。少なくともいくつかの実施形態では、第２のトンネルは、第１のトンネルがこれまでにパフォーマンス閾値のセットを上回っていたよりも長い継続時間にわたって、第２のトンネルがこれまでにパフォーマンス閾値のセットを上回っていたことに基づいて選択されうる。少なくともいくつかの実施形態では、パフォーマンス閾値のセットは、レイテンシ閾値、損失パーセンテージ閾値、及びジッタ閾値を含む。少なくともいくつかの実施形態では、パフォーマンス閾値のセットは、レイテンシ／ジッタ感度閾値及び損失パーセンテージ感度閾値を含む。
【００６１】
少なくともいくつかの実施形態では、パス及び／又はトンネルについてのネットワークパフォーマンスメトリックを判定するために、メッセージが、１つ以上のパスに沿って宛先に定期的に送信されうる。例えば、ネットワークデバイス（図２の第１のネットワークデバイス２１０ａ等）は、ネットワーク（図２のネットワーク２３０ａ〜ｂ等）を通じて他のネットワークデバイス（図２の第２のネットワークデバイス２１０ｂ等）へ、種々のパス（パス２２０ａ〜ｄ等）についてのジッタ、レイテンシ、損失等を判定するためのプローブを、定期的に送信しうる。
【００６２】
当業者であれば、これらのプロセス、動作、及び方法について、実行される機能及び／又は動作が異なる順序で実装されうることを理解するであろう。更に、概説された機能及び動作は例としてのみ提供され、当該機能及び動作のいくつかは、開示された実施形態の本質から逸脱することなく、オプションでありうるか、より少ない機能及び動作と組み合わされるうるか、又は追加の機能及び動作に拡張されうる。例えば、任意の数のトンネルが考慮、分析、及び選択されてもよい。少なくともいくつかの実施形態では、任意の数のトンネルをランク付けするために選択基準が使用されてもよい。
【００６３】
図４は、本開示で説明される少なくとも１つの実施形態に係る、例示的なコンピューティングシステム４００を示す。システム４００は、データフローをルーティングするパスを選択する、又はそのようなパス選択を容易にするように構成された、任意の適切なシステム、装置、又はデバイスを含みうる。コンピューティングシステム４００は、プロセッサ４１０、メモリ４２０、データストレージ４３０、及び通信ユニット４４０を備え、これらは全て通信可能に接続されうる。いくつかの実施形態では、本開示のネットワークデバイス（例えば、図１のエッジネットワークデバイス１１０又は図２のネットワークデバイス２１０）、又は他のコンピューティングデバイスのいずれかが、コンピューティングシステム４００として実装されうる。追加的又は代替的には、ネットワークデバイス、又は他のコンピューティングデバイスのうちの１つ以上は、コンピューティングシステム４００等の物理コンピューティングシステム上で動作する仮想マシンとして実装されうる。
【００６４】
一般に、プロセッサ４１０は、種々のコンピュータハードウェア又はソフトウェアモジュールを含む、任意の適切な専用又は汎用コンピュータ、コンピューティングエンティティ、又は処理デバイスを含みうるとともに、任意の適用可能なコンピュータ読み取り可能な記憶媒体上に記憶された命令を実行するように構成されうる。例えば、プロセッサ４１０は、プログラム命令の解釈及び／又は実行、及び／又はデータの処理を行うように構成された、マイクロプロセッサ、マイクロコントローラ、ディジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、又は任意の他のディジタル若しくはアナログ回路を含みうる。
【００６５】
図４では単一のプロセッサとして示されているが、プロセッサ４１０は、本開示で説明される任意の数の動作を個別に又はまとめて実行するように構成された、任意の数のネットワーク又は物理的ロケーションにわたって分散された任意の数のプロセッサを含みうることを理解されたい。いくつかの実施形態では、プロセッサ４１０は、メモリ４２０に、データストレージ４３０に、又はメモリ４２０及びデータストレージ４３０に格納された、プログラム命令の解釈及び／又は実行と、格納されたデータの処理との少なくともいずれかを行いうる。いくつかの実施形態では、プロセッサ４１０は、データストレージ４３０からプログラム命令をフェッチし、そのプログラム命令をメモリ４２０にロードしうる。
【００６６】
プログラム命令がメモリ４２０にロードされた後、プロセッサ４１０は、図３の方法３００をそれぞれ実行するための命令等のプログラム命令を実行しうる。例えば、プロセッサ４１０は、アプリケーションについてのパフォーマンススコアを生成し、当該パフォーマンススコアに基づいて、ネットワークにおいて何らかのアクション行いうる。
【００６７】
メモリ４２０及びデータストレージ４３０は、当該媒体に格納されたコンピュータ実行可能命令又はデータ構造を担持する又は有するための、コンピュータ読み取り可能な記憶媒体又は１つ以上のコンピュータ読み取り可能な記憶媒体を含みうる。そのようなコンピュータ読み取り可能な記憶媒体は、プロセッサ４１０等の汎用又は専用コンピュータによってアクセスされうる任意の使用可能な媒体とされうる。いくつかの実施形態では、コンピューティングシステム４００は、メモリ４２０及びデータストレージ４３０のいずれかを備えていても備えていなくてもよい。
【００６８】
例として、そのようなコンピュータ読み取り可能な記憶媒体は、ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）、電気的消去可能プログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）、コンパクトディスク・リードオンリメモリ（ＣＤ−ＲＯＭ）若しくは他の光ディスクストレージ、磁気ディスクストレージ若しくは他の磁気ストレージデバイス、フラッシュメモリデバイス（例えば、ソリッドステートメモリデバイス）、又は、コンピュータ実行可能命令の形式の所望のプログラムコード若しくはデータ構造を担持若しくは格納するために使用されうる、かつ、汎用又は専用コンピュータによってアクセスされうる任意の他の記憶媒体を含む、非一時的なコンピュータ読み取り可能な記憶媒体を含みうる。上記の組合せも、コンピュータ読み取り可能な記憶媒体の範囲内に含まれうる。コンピュータ実行可能命令は、例えば、プロセッサ４１０に特定の動作又は動作群を実行させるように構成された、命令及びデータを含みうる。
【００６９】
通信ユニット４４０は、ＭＰＬＳコネクション、インターネット、セルラネットワーク（例えば、ＬＴＥネットワーク）等のネットワークを介して情報を送信又は受信するように構成された、任意のコンポーネント、デバイス、システム、又はそれらの組合せを含みうる。いくつかの実施形態では、通信ユニット４４０は、他のロケーションの他のデバイスと通信、同じロケーションの他のデバイスと通信、又は同じシステム内の他のコンポーネントとさえ通信しうる。例えば、通信ユニット４４０は、モデム、ネットワークカード（無線又は有線）、光通信デバイス、赤外線通信デバイス、無線通信デバイス（アンテナ等）、チップセット（Ｂｌｕｅｔｏｏｔｈ（登録商標）デバイス、８０２．６デバイス（例えば、メトロポリタンエリアネットワーク（ＭＡＮ））、ＷｉＦｉデバイス、ＷｉＭａｘデバイス、セルラ通信設備、又はその他のもの等）、及び／又はそれらの任意の組合せを含みうる。通信ユニット４４０は、本開示で説明されるネットワーク及び／又は任意の他のデバイス若しくはシステムとデータがやりとりされることを可能にしうる。例えば、通信ユニット４４０は、システム４００が、ネットワークデバイス、制御デバイス及び／又は他のネットワーク等の、他のシステムと通信することを可能にしうる。
【００７０】
本開示の範囲から逸脱することなく、システム４００に対して変更、追加、又は省略が行われてもよい。例えば、データストレージ４３０は、複数のロケーションに配置され、かつ、ネットワークを介してプロセッサ４１０によってアクセスされる、異なる複数の記憶媒体を含みうる。
【００７１】
上述のように、本開示で説明される実施形態は、以下でより詳細に説明されるように、種々のコンピュータハードウェア又はソフトウェアモジュールを含む専用又は汎用コンピュータ（例えば、図４のプロセッサ４１０）の使用を含みうる。更に、上述のように、本開示で説明される実施形態は、当該媒体に格納されたコンピュータ実行可能命令又はデータ構造を担持する又は有するための、コンピュータ読み取り可能媒体（例えば、図４のメモリ４２０又はデータストレージ４３０）を用いて実装されうる。
【００７２】
本開示で使用されるように、「モジュール」又は「コンポーネント」という用語は、コンピューティングシステムの汎用ハードウェア（例えば、コンピュータ読み取り可能媒体、処理デバイス、又は他の何らかのハードウェア）に格納される、及び／又はそれによって実行されうる、モジュール又はコンポーネント及び／又はソフトウェアオブジェクト又はソフトウェアルーチンのアクションを実行するように構成された、特定のハードウェア実装を指しうる。いくつかの実施形態では、本開示で説明される異なるコンポーネント、モジュール、エンジン、及びサービスは、コンピューティングシステム上で実行されるオブジェクト又はプロセスとして（例えば、別個のスレッドとして）実装されうる。本開示で説明されるシステム及び方法のいくつかは、全体として、（汎用ハードウェアに格納される、及び／又は汎用ハードウェアによって実行される）ソフトウェアで実装されるものとして説明されるが、特定のハードウェア実装、又はソフトウェアと特定のハードウェア実装との組合せも可能であり、考えられる。本明細書では、「コンピューティングエンティティ」は、本開示でこれまでに定義された任意のコンピューティングシステム、又はコンピューティングシステム上で実行される任意のモジュール又はモジュールの組合せとされうる。
【００７３】
一般的な慣行によれば、図面に示される種々の特徴は、一定の縮尺で描かれていない場合がある。本開示で提示される例示は、任意の特定の装置（例えば、デバイス、システム等）又は方法の実際の図であることを意味するものではなく、本開示の種々の実施形態を説明するために用いられた理想化された表現にすぎない。したがって、種々の特徴の寸法は、明確にするために任意に拡大又は縮小されてもよい。更に、図面のいくつかは、明確にするために簡略化されている場合がある。したがって、図面は、所与の装置（例えば、デバイス）のコンポーネントの全て、又は特定の方法の全ての動作を示すわけではない。
【００７４】
本開示及び特に添付の請求項（例えば、添付の請求項のボディ）で使用される用語は、全体として「open」用語として意図される（例えば、「含んでいる（including）」という用語は、「含んでいるが、これに限定されない」と解釈されるべきであり、「有する」という用語は、「少なくとも有する」と解釈されるべきであり、「含む（includes）」という用語は、とりわけ「含むが、これに限定されない」と解釈されるべきである）。
【００７５】
更に、導入された請求項記載の特定の数が意図される場合、そのような意図は、請求項において明示的に記載され、そのような記載がない場合、そのような意図は存在しない。例えば、理解を助けるために、以下の添付の請求項は、請求項記載を導入するために「少なくとも１つの」及び「１つ以上の」という導入フレーズの使用を含む場合がある。
【００７６】
加えて、たとえ導入された請求項記載の特定の数が明示的に記載されているとしても、当業者であれば、そのような記載が少なくとも記載された数を意味すると解釈されるべきであることを認識するであろう（例えば、他の修飾語が無い「２つの記載」という最小限の記載は、少なくとも２つの記載、又は２つ以上の記載を意味する）。更に、「Ａ、Ｂ、及びＣ等のうちの少なくとも１つ」又は「Ａ、Ｂ、及びＣ等のうちの１つ以上」に類似する慣習が使用される場合、一般に、このような構成は、Ａ単独、Ｂ単独、Ｃ単独、Ａ及びＢの組み合わせ、Ａ及びＢの組み合わせ、Ａ及びＣの組み合わせ、Ｂ及びＣの組み合わせ、又は、Ａ、Ｂ及びＣの組み合わせ等を含むことが意図される。
【００７７】
更に、明細書、特許請求の範囲、又は図面のいずれにおいても、２つ以上の代替的用語を表す任意の分離語又はフレーズは、用語のうちの１つ、用語のうちのいずれか、又は両方の用語を含む可能性が考えられていると理解されるべきである。例えば、フレーズ「Ａ又はＢ」は、「Ａ」又は「Ｂ」又は「Ａ及びＢ」の可能性を含むと理解されるべきである。
【００７８】
しかしながら、そのようなフレーズの使用は、不定冠詞「ａ」又は「ａｎ」による請求項記載の導入が、そのような導入された請求項記載を含む任意の特定の請求項を、そのような記載を１つだけ含む実施形態に限定することを黙示するものと解釈されるべきではなく、同じ請求項が、導入フレーズ「１つ以上の」又は「少なくとも１つの」、及び「ａ」又は「ａｎ」等の不定冠詞を含む場合であっても（例えば、「ａ」及び／又は「ａｎ」は、「少なくとも１つの」又は「１つ以上の」を意味するように解釈されるべきである）、同じことが、請求項記載を導入するために使用される明確な冠詞の使用に当てはまる。
【００７９】
更に、「第１の」、「第２の」、「第３の」等の用語の使用は、本明細書では必ずしも特定の順序又は特定のエレメント数を示すためには使用されない。一般に、「第１の」、「第２の」、「第３の」等の用語は、異なるエレメント間で一般的な識別子として区別するために使用される。「第１の」、「第２の」、「第３の」等の用語が特定の順序を示していることの提示が無い場合、これらの用語は、特定の順序を示すものと理解されるべきではない。更に、「第１の」、「第２の」、「第３の」等の用語が特定のエレメント数を示していることの提示が無い場合、これらの用語は、特定のエレメント数を示すものと理解されるべきではない。例えば、第１のウィジェットは第１のサイドを有するものとして記述され、第２のウィジェットは第２のサイドを有するものとして記述されてもよい。第２のウィジェットに関する「第２のサイド」との用語の使用は、第２のウィジェットのそのようなサイドを、第１のウィジェットの「第１のサイド」と区別しうるが、第２のウィジェットが２つのサイドを有することを示すものではない。
【００８０】
本開示に記載された全ての例及び条件表現は、本発明と発明者によって当該技術を促進することに貢献した概念とを読者が理解するのを助けるための、教育的目的を意図しており、そのような具体的に記載された例及び条件に限定されるものではないと解釈されるべきである。本開示の実施形態が詳細に説明されてきたが、本開示の精神及び範囲から逸脱することなく、様々な変更、置換及び改変がそれらに対してなされうることが理解されるべきである。
【図１】
2020529761.tif 000005
【図２】
2020529761.tif 000006
【図３】
2020529761.tif 000007
【図４】
2020529761.tif 000008
【国際調査報告】
2020529761.tif 000009
2020529761.tif 000010
2020529761.tif 000011