(57)【要約】  例示的な方法、装置、及びシステムは、メッシュネットワークを形成する経路管理ハブ及びプロキシサーバノードを含む。ハブは、ノードのそれぞれからリンクパフォーマンスメトリックを受信する。ハブは、受信したリンクパフォーマンスメトリックを使用して、複数のメトリックタイプのそれぞれ又はメトリックタイプの組み合わせについて、第１のノードと第２のノードとの間の最適な経路を判定する。ハブは、１つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストに関する複数の判定された最適な経路にサービス識別子をマップする。ハブは、複数のマップされた最適な経路のそれぞれに対するネクストホップをマッピングと共に第１のノードに送信する。第１のノードは、ネクストホップにマップされたサービス識別子及び第１のコネクションのトラフィックを受信する。受信したトラフィックがサービスのためのものであるとの判定に応じて、第１のノードは、第１のネクストホップを選択してトラフィックを転送する。【選択図】図２
2020522211.tif 000002
【特許請求の範囲】
【請求項１】
経路管理ハブによって、メッシュネットワークを形成する複数のプロキシサーバノードのそれぞれからリンクパフォーマンスメトリックを受信することであって、前記複数のノードのそれぞれが、前記複数のノード内の２つ以上の他のノードのそれぞれへのリンクを介して前記メッシュネットワークの一部を形成し、前記リンクパフォーマンスメトリックが複数のパフォーマンスメトリックタイプを表す、受信することと、
前記経路管理ハブによって、前記リンクパフォーマンスメトリックの受信に応じて、複数のメトリックタイプのそれぞれ及び／又はメトリックタイプの組み合わせに関する最適な経路を判定するために、前記受信したリンクパフォーマンスメトリックを使用して前記複数のノード内のそれぞれの第１のノードと第２のノードとの間の複数の潜在的な経路を評価することと、
前記経路管理ハブによって、サービスで優先される１つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストを判定することと、
前記経路管理ハブによって、前記判定されたコンテキストの前記１つ又は複数のリンクパフォーマンスメトリックタイプを使用して、前記第１のノードと前記第２のノードとの間の複数の前記判定された最適な経路に前記サービスのためのサービス識別子をマップすることと、
前記経路管理ハブから前記第１のノードに、
前記複数のマップされた最適な経路のそれぞれに対するそれぞれのネクストホップと、
それぞれのネクストホップのそれぞれと前記サービス識別子との間の前記マッピングと、
を送信することと、
前記第１のノードによって、前記経路管理ハブから、前記複数のマップされた最適な経路に対して複数のネクストホップにマップされた前記サービス識別子を受信することと、
前記第１のノードによって、前記サービスとの第１のコネクションのトラフィックを受信することと、
前記第１のノードによって、前記受信したトラフィックが前記サービスのためのものであるとの判定に応じて、前記複数のマップされた最適な経路に対する前記複数のネクストホップの前記サービス識別子にマップされた第１のネクストホップを選択することと、
前記第１のノードによって、前記受信したトラフィックを前記選択された第１のネクストホップに転送することと、
を含む、コンピュータ実施方法。
【請求項２】
前記第１のノードによって、前記複数のネクストホップのそれぞれを介して前記サービスのトラフィックに関するリンクパフォーマンスメトリックを追跡することと、
前記第１のノードによって、前記第１のノードによって追跡された前記リンクパフォーマンスメトリックを使用して、前記経路管理ハブから受信した前記複数のネクストホップの前記サービス識別子にマップされた第２のネクストホップが、前記追跡されたパフォーマンスメトリックのうちの少なくとも１つにおいて前記第１のネクストホップよりも優れていると判定することと、
前記第１のノードによって、前記サービスとの第２のコネクションのトラフィックを受信することと、
前記第１のノードによって、前記第２のネクストホップが前記第１のネクストホップよりも優れているとの判定に応じて、前記サービスとの前記第２のコネクションの前記受信したトラフィックを前記第２のネクストホップに転送することと、
をさらに含む、請求項１に記載のコンピュータ実施方法。
【請求項３】
前記第１のノードによって前記経路管理ハブに、
前記第１のノードが前記サービスのトラフィックを転送するために前記第２のネクストホップを使用する指示と、
前記追跡されたリンクパフォーマンスメトリックと、
を送信すること
をさらに含む、請求項２に記載のコンピュータ実施方法。
【請求項４】
前記第１のノードによって、前記複数のネクストホップのそれぞれを介して前記サービスのトラフィックに関するリンクパフォーマンスメトリックを追跡することであって、前記第１のノードによって追跡される前記リンクパフォーマンスメトリックが、コネクションごとに、一定期間に前記サービスに差し向けられたバイト数及び一定期間に前記サービスから受信したバイト数を含む、追跡することと、
前記第１のノードによって、前記第１のノードによって追跡された前記リンクパフォーマンスメトリックを使用して、前記サービスに差し向けられたバイト数の前記サービスから受信したバイト数に対する比が第１の閾値を上回ると判定することと、
前記第１のノードによって、前記サービスとの第２のコネクションのトラフィックを受信することと、
前記第１のノードによって、前記比が前記第１の閾値を上回るとの判定に応じて、前記サービスとの前記第２のコネクションの前記受信したトラフィックを第２のネクストホップに転送することと、
をさらに含む、請求項１に記載のコンピュータ実施方法。
【請求項５】
前記第１のノードによって、前記複数のネクストホップのそれぞれを介して前記サービスのトラフィックに関するリンクパフォーマンスメトリックを追跡することであって、前記第１のノードによって追跡される前記リンクパフォーマンスメトリックが、コネクションごとに、一定期間に前記サービスに差し向けられたバイト数及び一定期間に前記サービスから受信したバイト数を含む、追跡することと、
前記第１のノードによって、前記第１のノードによって追跡された前記リンクパフォーマンスメトリックを使用して、前記サービスに差し向けられたバイト数の前記サービスから受信したバイト数に対する比が第１の並べ替え基準を満たすか否かを判定することと、
前記第１のノードによって、前記サービスとの第２のコネクションのトラフィックを受信することと、
前記第１のノードによって、前記サービスに差し向けられたバイト数の前記サービスから受信したバイト数に対する前記比が前記第１の並べ替え基準を満たすとの判定に応じて、前記サービスとの前記第２のコネクションの前記受信したトラフィックを第２のネクストホップに転送することと、
をさらに含む、請求項１に記載のコンピュータ実施方法。
【請求項６】
前記第１のノードによって、前記第１のネクストホップを介して前記サービスのための前記第１のコネクションのトラフィックに関するリンクパフォーマンスメトリックを追跡することと、
前記第１のノードによって、前記第１のノードによって追跡された前記リンクパフォーマンスメトリックを使用して、前記第１のコネクションに関する前記リンクパフォーマンスメトリックのうちの少なくとも１つが第２の閾値を上回ると判定することと、
前記第１のノードによって、前記サービスとの第２のコネクションのトラフィックを受信することと、
前記第１のノードによって、前記第１のコネクションに関する前記少なくとも１つのリンクパフォーマンスメトリックが前記第２の閾値を上回るとの判定に応じて、前記サービスとの前記第２のコネクションの前記受信したトラフィックを前記第２のネクストホップに転送することと、
をさらに含む、請求項１に記載のコンピュータ実施方法。
【請求項７】
前記第１のノードによって、前記第１のネクストホップを介して前記サービスのための前記第１のコネクションのトラフィックに関するリンクパフォーマンスメトリックを追跡することと、
前記第１のノードによって、前記第１のノードによって追跡された前記リンクパフォーマンスメトリックを使用して、前記第１のコネクションに関する前記リンクパフォーマンスメトリックのうちの少なくとも１つが第２の並べ替え基準を満たすと判定することと、
前記第１のノードによって、前記サービスとの第２のコネクションのトラフィックを受信することと、
前記第１のノードによって、前記第１のコネクションに関する前記少なくとも１つのリンクパフォーマンスメトリックが前記第２の並べ替え基準を満たすとの判定に応じて、前記サービスとの前記第２のコネクションの前記受信したトラフィックを前記第２のネクストホップに転送することと、
をさらに含む、請求項１に記載のコンピュータ実施方法。
【請求項８】
前記リンクパフォーマンスメトリックが、コネクションごとに、一定期間に各サービスに差し向けられたバイト数及び一定期間に各サービスから受信したバイト数を含み、前記方法が、
前記経路管理ハブによって、前記リンクパフォーマンスメトリックを使用して、前記サービスに差し向けられたバイト数の前記サービスから受信したバイト数に対する比が第３の閾値を上回るか否かを判定することと、
前記経路管理ハブによって、前記サービスに差し向けられたバイト数の前記サービスから受信したバイト数に対する前記比が前記第３の閾値を上回るとの判定に応じて、１つ又は複数のリンクパフォーマンスメトリックタイプを表す前記コンテキストを選択することと、
をさらに含む、請求項１に記載のコンピュータ実施方法。
【請求項９】
前記リンクパフォーマンスメトリックが、コネクションごとに、一定期間に各サービスに差し向けられたバイト数及び一定期間に各サービスから受信したバイト数を含み、前記方法が、
前記経路管理ハブによって、前記リンクパフォーマンスメトリックを使用して、前記サービスに差し向けられたバイト数の前記サービスから受信したバイト数に対する比がコンテキスト調整基準を満たすか否かを判定することと、
前記経路管理ハブによって、前記サービスに差し向けられたバイト数の前記サービスから受信したバイト数に対する前記比が前記コンテキスト調整基準を満たすとの判定に応じて、１つ又は複数のリンクパフォーマンスメトリックタイプを表す前記コンテキストを選択することと、
をさらに含む、請求項１に記載のコンピュータ実施方法。
【請求項１０】
前記経路管理ハブから前記第１のノードに送信される前記複数の最適な経路に対して前記ネクストホップにマップされる前記サービス識別子が、前記１つ又は複数のリンクパフォーマンスメトリックタイプを表す前記コンテキストへのマッピングを含む、請求項１から９のいずれか一項に記載のコンピュータ実施方法。
【請求項１１】
前記複数のリンクパフォーマンスメトリックタイプが、帯域幅、１秒当たりの要求、パケット損失、ジッタ、及びレイテンシのうちの１つ又は複数を含む、請求項１から１０のいずれか一項に記載のコンピュータ実施方法。
【請求項１２】
前記サービスで優先される前記１つ又は複数のリンクパフォーマンスメトリックタイプを表す前記コンテキストを判定することが、前記経路管理ハブによって、前記コンテキストの選択を受信することを含む、請求項１から１１のいずれか一項に記載のコンピュータ実施方法。
【請求項１３】
処理装置によって実行されると、
経路管理ハブによって、メッシュネットワークを形成する複数のプロキシサーバノードのそれぞれからリンクパフォーマンスメトリックを受信することであって、前記複数のノードのそれぞれが、前記複数のノード内の２つ以上の他のノードのそれぞれへのリンクを介して前記メッシュネットワークの一部を形成し、前記リンクパフォーマンスメトリックが複数のパフォーマンスメトリックタイプを表す、受信することと、
前記経路管理ハブによって、前記リンクパフォーマンスメトリックの受信に応じて、複数のメトリックタイプのそれぞれ及び／又はメトリックタイプの組み合わせに関する最適な経路を判定するために、前記受信したリンクパフォーマンスメトリックを使用して前記複数のノード内のそれぞれの第１のノードと第２のノードとの間の複数の潜在的な経路を評価することと、
前記経路管理ハブによって、サービスで優先される１つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストを判定することと、
前記経路管理ハブによって、前記判定されたコンテキストの前記１つ又は複数のリンクパフォーマンスメトリックタイプを使用して、前記第１のノードと前記第２のノードとの間の複数の前記判定された最適な経路に前記サービスのためのサービス識別子をマップすることと、
前記経路管理ハブから前記第１のノードに、
前記複数のマップされた最適な経路のそれぞれに対するそれぞれのネクストホップと、
それぞれのネクストホップのそれぞれと前記サービス識別子との間の前記マッピングと、
を送信することと、
前記第１のノードによって、前記経路管理ハブから、前記複数のマップされた最適な経路に対して複数のネクストホップにマップされた前記サービス識別子を受信することと、
前記第１のノードによって、前記サービスとの第１のコネクションのトラフィックを受信することと、
前記第１のノードによって、前記受信したトラフィックが前記サービスのためのものであるとの判定に応じて、前記複数のマップされた最適な経路に対する前記複数のネクストホップの前記サービス識別子にマップされた第１のネクストホップを選択することと、
前記第１のノードによって、前記受信したトラフィックを前記選択された第１のネクストホップに転送することと、
を含む方法を前記処理装置に実行させる命令を格納する非一時的コンピュータ可読媒体。
【請求項１４】
前記方法が、
前記第１のノードによって、前記複数のネクストホップのそれぞれを介して前記サービスのトラフィックに関するリンクパフォーマンスメトリックを追跡することと、
前記第１のノードによって、前記第１のノードによって追跡された前記リンクパフォーマンスメトリックを使用して、前記経路管理ハブから受信した前記複数のネクストホップの前記サービス識別子にマップされた第２のネクストホップが、前記追跡されたパフォーマンスメトリックのうちの少なくとも１つにおいて前記第１のネクストホップよりも優れていると判定することと、
前記第１のノードによって、前記サービスとの第２のコネクションのトラフィックを受信することと、
前記第１のノードによって、前記第２のネクストホップが前記第１のネクストホップよりも優れているとの判定に応じて、前記サービスとの前記第２のコネクションの前記受信したトラフィックを前記第２のネクストホップに転送することと、
をさらに含む、請求項１３に記載の非一時的コンピュータ可読媒体。
【請求項１５】
前記方法が、
前記第１のノードによって前記経路管理ハブに、
前記第１のノードが前記サービスのトラフィックを転送するために前記第２のネクストホップを使用する指示と、
前記追跡されたリンクパフォーマンスメトリックと、
を送信すること
をさらに含む、請求項１４に記載の非一時的コンピュータ可読媒体。
【請求項１６】
前記方法が、
前記第１のノードによって、前記複数のネクストホップのそれぞれを介して前記サービスのトラフィックに関するリンクパフォーマンスメトリックを追跡することであって、前記第１のノードによって追跡される前記リンクパフォーマンスメトリックが、コネクションごとに、一定期間に前記サービスに差し向けられたバイト数及び一定期間に前記サービスから受信したバイト数を含む、追跡することと、
前記第１のノードによって、前記第１のノードによって追跡された前記リンクパフォーマンスメトリックを使用して、前記サービスに差し向けられたバイト数の前記サービスから受信したバイト数に対する比が第１の並べ替え基準を満たすと判定することと、
前記第１のノードによって、前記サービスとの第２のコネクションのトラフィックを受信することと、
前記第１のノードによって、前記サービスに差し向けられたバイト数の前記サービスから受信したバイト数に対する前記比が前記並べ替え基準を満たすとの判定に応じて、前記サービスとの前記第２のコネクションの前記受信したトラフィックを前記第２のネクストホップに転送することと、
をさらに含む、請求項１３に記載の非一時的コンピュータ可読媒体。
【請求項１７】
前記方法が、
前記第１のノードによって、前記第１のホップを介して前記サービスのための前記第１のコネクションのトラフィックに関するリンクパフォーマンスメトリックを追跡することと、
前記第１のノードによって、前記第１のノードによって追跡された前記リンクパフォーマンスメトリックを使用して、前記第１のコネクションに関する前記リンクパフォーマンスメトリックのうちの少なくとも１つが第２の並べ替え基準を満たすと判定することと、
前記第１のノードによって、前記サービスとの第２のコネクションのトラフィックを受信することと、
前記第１のノードによって、前記第１のコネクションに関する前記少なくとも１つのリンクパフォーマンスメトリックが前記第２の並べ替え基準を満たすとの判定に応じて、前記サービスとの前記第２のコネクションの前記受信したトラフィックを前記第２のネクストホップに転送することと、
をさらに含む、請求項１３に記載の非一時的コンピュータ可読媒体。
【請求項１８】
前記リンクパフォーマンスメトリックが、コネクションごとに、一定期間に各サービスに差し向けられたバイト数及び一定期間に各サービスから受信したバイト数を含み、前記方法が、
前記経路管理ハブによって、前記リンクパフォーマンスメトリックを使用して、前記サービスに差し向けられたバイト数の前記サービスから受信したバイト数に対する比がコンテキスト調整基準を満たすか否かを判定することと、
前記経路管理ハブによって、前記サービスに差し向けられたバイト数の前記サービスから受信したバイト数に対する前記比が前記コンテキスト調整基準を満たすとの判定に応じて、１つ又は複数のリンクパフォーマンスメトリックタイプを表す前記コンテキストを選択することと、
をさらに含む、請求項１３に記載の非一時的コンピュータ可読媒体。
【請求項１９】
前記経路管理ハブから前記第１のノードに送信される前記複数の最適な経路に対して前記ネクストホップにマップされる前記サービス識別子が、前記１つ又は複数のリンクパフォーマンスメトリックタイプを表す前記コンテキストへのマッピングを含む、請求項１３から１８のいずれか一項に記載の非一時的コンピュータ可読媒体。
【請求項２０】
前記複数のリンクパフォーマンスメトリックタイプが、帯域幅、１秒当たりの要求、パケット損失、ジッタ、及びレイテンシのうちの１つ又は複数を含む、請求項１３から１９のいずれか一項に記載の非一時的コンピュータ可読媒体。
【請求項２１】
前記サービスで優先される前記１つ又は複数のリンクパフォーマンスメトリックタイプを表す前記コンテキストを判定することが、前記経路管理ハブによって、前記コンテキストの選択を受信することを含む、請求項１３から２０のいずれか一項に記載の非一時的コンピュータ可読媒体。
【請求項２２】
第１の処理装置と前記第１の処理装置に接続された第１のメモリとを備える経路管理ハブであって、前記第１のメモリが、前記第１の処理装置によって実行されると、
メッシュネットワークを形成する複数のプロキシサーバノードのそれぞれからリンクパフォーマンスメトリックを受信することであって、前記複数のノードのそれぞれが、前記複数のノード内の２つ以上の他のノードのそれぞれへのリンクを介して前記メッシュネットワークの一部を形成し、前記リンクパフォーマンスメトリックが複数のパフォーマンスメトリックタイプを表す、受信することと、
前記リンクパフォーマンスメトリックの受信に応じて、複数のメトリックタイプのそれぞれ及び／又はメトリックタイプの組み合わせに関する最適な経路を判定するために、前記受信したリンクパフォーマンスメトリックを使用して前記複数のノード内のそれぞれの第１のノードと第２のノードとの間の複数の潜在的な経路を評価することと、
サービスで優先される１つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストを判定することと、
前記判定されたコンテキストの前記１つ又は複数のリンクパフォーマンスメトリックタイプを使用して、前記第１のノードと前記第２のノードとの間の複数の前記判定された最適な経路に前記サービスのためのサービス識別子をマップすることと、
前記第１のノードに、
前記複数のマップされた最適な経路のそれぞれに対するそれぞれのネクストホップと、
それぞれのネクストホップのそれぞれと前記サービス識別子との間の前記マッピングと、
を送信することと、
を前記経路管理ハブに行わせる命令を格納する、経路管理ハブと、
第２の処理装置と前記第２の処理装置に接続された第２のメモリとを備える前記第１のノードであって、前記第２のメモリが、前記第２の処理装置によって実行されると、
前記経路管理ハブから、前記複数のマップされた最適な経路に対して複数のネクストホップにマップされた前記サービス識別子を受信することと、
前記サービスとの第１のコネクションのトラフィックを受信することと、
前記受信したトラフィックが前記サービスのためのものであるとの判定に応じて、前記複数のマップされた最適な経路に対する前記複数のネクストホップの前記サービス識別子にマップされた第１のネクストホップを選択することと、
前記受信したトラフィックを前記選択された第１のネクストホップに転送することと、
を前記第１のノードに行わせる命令を格納する、前記第１のノードと、
を備える、システム。
【請求項２３】
前記第２のメモリに格納された前記命令の実行が、
前記複数のネクストホップのそれぞれを介して前記サービスのトラフィックに関するリンクパフォーマンスメトリックを追跡することと、
前記第１のノードによって追跡された前記リンクパフォーマンスメトリックを使用して、前記経路管理ハブから受信した前記複数のネクストホップの前記サービス識別子にマップされた第２のネクストホップが、前記追跡されたパフォーマンスメトリックのうちの少なくとも１つにおいて前記第１のネクストホップよりも優れていると判定することと、
前記サービスとの第２のコネクションのトラフィックを受信することと、
前記第２のネクストホップが前記第１のネクストホップよりも優れているとの判定に応じて、前記サービスとの前記第２のコネクションの前記受信したトラフィックを前記第２のネクストホップに転送することと、
を前記第１のノードにさらに行わせる、請求項２２に記載のシステム。
【請求項２４】
経路管理ハブによって、メッシュネットワークを形成する複数のプロキシサーバノードのそれぞれからリンクパフォーマンスメトリックを受信することであって、前記複数のノードのそれぞれが、前記複数のノード内の２つ以上の他のノードのそれぞれへのリンクを介して前記メッシュネットワークの一部を形成し、前記リンクパフォーマンスメトリックが複数のパフォーマンスメトリックタイプを表す、受信することと、
前記経路管理ハブによって、前記リンクパフォーマンスメトリックの受信に応じて、複数のメトリックタイプのそれぞれ及び／又はメトリックタイプの組み合わせに関する最適な経路を判定するために、前記受信したリンクパフォーマンスメトリックを使用して前記複数のノード内のそれぞれの第１のノードと第２のノードとの間の複数の潜在的な経路を評価することと、
前記経路管理ハブによって、サービスで優先される１つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストを判定することと、
前記経路管理ハブによって、前記判定されたコンテキストの前記１つ又は複数のリンクパフォーマンスメトリックタイプを使用して、前記第１のノードと前記第２のノードとの間の複数の前記判定された最適な経路に前記サービスのためのサービス識別子をマップすることと、
前記経路管理ハブから前記第１のノードに、
前記複数のマップされた最適な経路のそれぞれに対するそれぞれのネクストホップと、
それぞれのネクストホップのそれぞれと前記サービス識別子との間の前記マッピングと、
を送信することと、
を含む、コンピュータ実施方法。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の分野
[0001]  本明細書で説明される様々な実施形態は、メッシュネットワークのための経路の計算及び選択に関する。詳細には、実施形態は、トラフィックのコンテキストに基づいて最適な経路を動的に計算及び選択することにより、プロキシサーバのメッシュネットワークを介してアプリケーション又はデータコンテンツを配信する。
【発明の概要】
【発明が解決しようとする課題】
【０００２】
簡単な概要
[0002]  ネットワークトラフィックの伝送経路を選択するための装置及び方法が必要とされている。このようなシステム及び方法は、伝送経路を選択するための従来のシステムを任意で補完したりその代わりになったりする。
【課題を解決するための手段】
【０００３】
[0003]  いくつかの実施形態によれば、方法が、経路管理ハブによって、メッシュネットワークを形成する複数のプロキシサーバノードのそれぞれからリンクパフォーマンスメトリックを受信することを含む。複数のノードのそれぞれは、複数のノード内の２つ以上の他のノードのそれぞれへのリンクを介してメッシュネットワークの一部を形成する。リンクパフォーマンスメトリックは、複数のパフォーマンスメトリックタイプを表す。本方法はまた、経路管理ハブによって、リンクパフォーマンスメトリックの受信に応じて、複数のメトリックタイプのそれぞれ及び／又はメトリックタイプの組み合わせに関する最適な経路を判定するために、受信したリンクパフォーマンスメトリックを使用して複数のノード内のそれぞれの第１のノードと第２のノードとの間の複数の潜在的な経路を評価することを含む。本方法はまた、経路管理ハブによって、サービスで優先される１つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストを判定することを含む。本方法はまた、経路管理ハブによって、判定されたコンテキストの１つ又は複数のリンクパフォーマンスメトリックタイプを使用して、第１のノードと第２のノードとの間の複数の判定された最適な経路にサービスのためのサービス識別子をマップすることを含む。本方法はまた、経路管理ハブから第１のノードに、複数のマップされた最適な経路のそれぞれに対するそれぞれのネクストホップと、それぞれのネクストホップのそれぞれとサービス識別子との間のマッピングと、を送信することを含む。本方法はまた、第１のノードによって、経路管理ハブから、複数のマップされた最適な経路に対して複数のネクストホップにマップされたサービス識別子を受信することを含む。本方法はまた、第１のノードによって、サービスとの第１のコネクションのトラフィックを受信することを含む。本方法はまた、第１のノードによって、受信したトラフィックがサービスのためのものであるとの判定に応じて、複数のマップされた最適な経路に対する複数のネクストホップのサービス識別子にマップされた第１のネクストホップを選択することを含む。本方法はまた、第１のノードによって、受信したトラフィックを選択された第１のネクストホップに転送することを含む。
【０００４】
[0004]  いくつかの実施形態では、本方法はまた、第１のノードによって、複数のネクストホップのそれぞれを介してサービスのトラフィックに関するリンクパフォーマンスメトリックを追跡することを含む。本方法はまた、第１のノードによって、第１のノードによって追跡されたリンクパフォーマンスメトリックを使用して、経路管理ハブから受信した複数のネクストホップのサービス識別子にマップされた第２のネクストホップが、追跡されたパフォーマンスメトリックのうちの少なくとも１つにおいて第１のネクストホップよりも優れていると判定することを含む。本方法はまた、第１のノードによって、サービスとの第２のコネクションのトラフィックを受信することを含む。本方法はまた、第１のノードによって、第２のネクストホップが第１のネクストホップよりも優れているとの判定に応じて、サービスとの第２のコネクションの受信したトラフィックを第２のネクストホップに転送することを含む。
【０００５】
[0005]  いくつかの実施形態では、本方法はまた、第１のノードによって経路管理ハブに、第１のノードがサービスのトラフィックを転送するために第２のネクストホップを使用する指示と、追跡されたリンクパフォーマンスメトリックと、を送信することを含む。
【０００６】
[0006]  いくつかの実施形態では、本方法はまた、第１のノードによって、複数のネクストホップのそれぞれを介してサービスのトラフィックに関するリンクパフォーマンスメトリックを追跡することであって、第１のノードによって追跡されるリンクパフォーマンスメトリックは、コネクションごとに、一定期間にサービスに差し向けられたバイト数及び一定期間にサービスから受信したバイト数を含む、追跡することを含む。本方法はまた、第１のノードによって、第１のノードによって追跡されたリンクパフォーマンスメトリックを使用して、サービスに差し向けられたバイト数のサービスから受信したバイト数に対する比が第１の閾値を上回ると判定することを含む。本方法はまた、第１のノードによって、サービスとの第２のコネクションのトラフィックを受信することを含む。本方法はまた、第１のノードによって、上記比が第１の閾値を上回るとの判定に応じて、サービスとの第２のコネクションの受信したトラフィックを第２のネクストホップに転送することを含む。
【０００７】
[0007]  いくつかの実施形態では、本方法はまた、第１のノードによって、複数のネクストホップのそれぞれを介してサービスのトラフィックに関するリンクパフォーマンスメトリックを追跡することであって、第１のノードによって追跡されるリンクパフォーマンスメトリックは、コネクションごとに、一定期間にサービスに差し向けられたバイト数及び一定期間にサービスから受信したバイト数を含む、追跡することを含む。本方法はまた、第１のノードによって、第１のノードによって追跡されたリンクパフォーマンスメトリックを使用して、サービスに差し向けられたバイト数のサービスから受信したバイト数に対する比が第１の並べ替え基準を満たすか否かを判定することを含む。本方法はまた、第１のノードによって、サービスとの第２のコネクションのトラフィックを受信することを含む。本方法はまた、第１のノードによって、サービスに差し向けられたバイト数のサービスから受信したバイト数に対する比が第１の並べ替え基準を満たすとの判定に応じて、サービスとの第２のコネクションの受信したトラフィックを第２のネクストホップに転送することを含む。
【０００８】
[0008]  いくつかの実施形態では、本方法はまた、第１のノードによって、第１のネクストホップを介してサービスのための第１のコネクションのトラフィックに関するリンクパフォーマンスメトリックを追跡することを含む。本方法はまた、第１のノードによって、第１のノードによって追跡されたリンクパフォーマンスメトリックを使用して、第１のコネクションに関するリンクパフォーマンスメトリックのうちの少なくとも１つが第２の閾値を上回ると判定することを含む。本方法はまた、第１のノードによって、サービスとの第２のコネクションのトラフィックを受信することを含む。本方法はまた、第１のノードによって、第１のコネクションに関する少なくとも１つのリンクパフォーマンスメトリックが第２の閾値を上回るとの判定に応じて、サービスとの第２のコネクションの受信したトラフィックを第２のネクストホップに転送することを含む。
【０００９】
[0009]  いくつかの実施形態では、本方法はまた、第１のノードによって、第１のネクストホップを介してサービスのための第１のコネクションのトラフィックに関するリンクパフォーマンスメトリックを追跡することを含む。本方法はまた、第１のノードによって、第１のノードによって追跡されたリンクパフォーマンスメトリックを使用して、第１のコネクションに関するリンクパフォーマンスメトリックのうちの少なくとも１つが第２の並べ替え基準を満たすと判定することを含む。本方法はまた、第１のノードによって、サービスとの第２のコネクションのトラフィックを受信することを含む。本方法はまた、第１のノードによって、第１のコネクションに関する少なくとも１つのリンクパフォーマンスメトリックが第２の並べ替え基準を満たすとの判定に応じて、サービスとの第２のコネクションの受信したトラフィックを第２のネクストホップに転送することを含む。
【００１０】
[0010]  いくつかの実施形態では、リンクパフォーマンスメトリックは、コネクションごとに、一定期間に各サービスに差し向けられたバイト数及び一定期間に各サービスから受信したバイト数を含む。本方法はまた、経路管理ハブによって、リンクパフォーマンスメトリックを使用して、サービスに差し向けられたバイト数のサービスから受信したバイト数に対する比が第３の閾値を上回るか否かを判定することを含む。本方法はまた、経路管理ハブによって、サービスに差し向けられたバイト数のサービスから受信したバイト数に対する比が第３の閾値を上回るとの判定に応じて、１つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストを選択することを含む。
【００１１】
[0011]  いくつかの実施形態では、リンクパフォーマンスメトリックは、コネクションごとに、一定期間に各サービスに差し向けられたバイト数及び一定期間に各サービスから受信したバイト数を含む。本方法はまた、経路管理ハブによって、リンクパフォーマンスメトリックを使用して、サービスに差し向けられたバイト数のサービスから受信したバイト数に対する比がコンテキスト調整基準を満たすか否かを判定することを含む。本方法はまた、経路管理ハブによって、サービスに差し向けられたバイト数のサービスから受信したバイト数に対する比がコンテキスト調整基準を満たすとの判定に応じて、１つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストを選択することを含む。
【００１２】
[0012]  いくつかの実施形態では、経路管理ハブから第１のノードに送信される複数の最適な経路に対してネクストホップにマップされるサービス識別子は、１つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストへのマッピングを含む。
【００１３】
[0013]  いくつかの実施形態では、複数のリンクパフォーマンスメトリックタイプは、帯域幅、１秒当たりの要求、パケット損失、ジッタ、及びレイテンシのうちの１つ又は複数を含む。
【００１４】
[0014]  いくつかの実施形態では、サービスで優先される１つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストを判定することは、経路管理ハブによって、コンテキストの選択を受信することを含む。
【００１５】
[0015]  いくつかの実施形態によれば、非一時的コンピュータ可読媒体は、処理装置によって実行されると、処理装置に方法を実行させる命令を格納する。本方法は、経路管理ハブによって、メッシュネットワークを形成する複数のプロキシサーバノードのそれぞれからリンクパフォーマンスメトリックを受信することを含む。複数のノードのそれぞれは、複数のノード内の２つ以上の他のノードのそれぞれへのリンクを介してメッシュネットワークの一部を形成する。リンクパフォーマンスメトリックは、複数のパフォーマンスメトリックタイプを表す。本方法はまた、経路管理ハブによって、リンクパフォーマンスメトリックの受信に応じて、複数のメトリックタイプのそれぞれ及び／又はメトリックタイプの組み合わせに関する最適な経路を判定するために、受信したリンクパフォーマンスメトリックを使用して複数のノード内のそれぞれの第１のノードと第２のノードとの間の複数の潜在的な経路を評価することを含む。本方法はまた、経路管理ハブによって、サービスで優先される１つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストを判定することを含む。本方法はまた、経路管理ハブによって、判定されたコンテキストの１つ又は複数のリンクパフォーマンスメトリックタイプを使用して、第１のノードと第２のノードとの間の複数の判定された最適な経路にサービスのためのサービス識別子をマップすることを含む。本方法はまた、経路管理ハブから第１のノードに、複数のマップされた最適な経路のそれぞれに対するそれぞれのネクストホップと、それぞれのネクストホップのそれぞれとサービス識別子との間のマッピングと、を送信することを含む。本方法はまた、第１のノードによって、経路管理ハブから、複数のマップされた最適な経路に対して複数のネクストホップにマップされたサービス識別子を受信することを含む。本方法はまた、第１のノードによって、サービスとの第１のコネクションのトラフィックを受信することを含む。本方法はまた、第１のノードによって、受信したトラフィックがサービスのためのものであるとの判定に応じて、複数のマップされた最適な経路に対する複数のネクストホップのサービス識別子にマップされた第１のネクストホップを選択することを含む。本方法はまた、第１のノードによって、受信したトラフィックを選択された第１のネクストホップに転送することを含む。
【００１６】
[0016]  いくつかの実施形態では、命令は、処理装置に、第１のノードによって、複数のネクストホップのそれぞれを介してサービスのトラフィックに関するリンクパフォーマンスメトリックを追跡させる。命令はまた、処理装置に、第１のノードによって、第１のノードによって追跡されたリンクパフォーマンスメトリックを使用して、経路管理ハブから受信した複数のネクストホップのサービス識別子にマップされた第２のネクストホップが、追跡されたパフォーマンスメトリックのうちの少なくとも１つにおいて第１のネクストホップよりも優れていると判定させる。命令はまた、処理装置に、第１のノードによって、サービスとの第２のコネクションのトラフィックを受信させる。命令はまた、処理装置に、第１のノードによって、第２のネクストホップが第１のネクストホップよりも優れているとの判定に応じて、サービスとの第２のコネクションの受信したトラフィックを第２のネクストホップに転送させる。
【００１７】
[0017]  いくつかの実施形態では、命令はまた、処理装置に、第１のノードによって経路管理ハブに、第１のノードがサービスのトラフィックを転送するための第２のネクストホップを使用する指示と、追跡されたリンクパフォーマンスメトリックと、を送信させる。
【００１８】
[0018]  いくつかの実施形態では、命令はまた、処理装置に、第１のノードによって、複数のネクストホップのそれぞれを介してサービスのトラフィックに関するリンクパフォーマンスメトリックを追跡させる。第１のノードによって追跡されるリンクパフォーマンスメトリックは、コネクションごとに、一定期間にサービスに差し向けられたバイト数及び一定期間にサービスから受信したバイト数を含む。命令はまた、処理装置に、第１のノードによって、第１のノードによって追跡されたリンクパフォーマンスメトリックを使用して、サービスに差し向けられたバイト数のサービスから受信したバイト数に対する比が第１の並べ替え基準を満たすと判定させる。命令はまた、処理装置に、第１のノードによって、サービスとの第２のコネクションのトラフィックを受信させる。命令はまた、処理装置に、第１のノードによって、サービスに差し向けられたバイト数のサービスから受信したバイト数に対する比が並べ替え基準を満たすとの判定に応じて、サービスとの第２のコネクションの受信したトラフィックを第２のネクストホップに転送させる。
【００１９】
[0019]  いくつかの実施形態では、命令はまた、処理装置に、第１のノードによって、第１のホップを介してサービスのための第１のコネクションのトラフィックに関するリンクパフォーマンスメトリックを追跡させる。命令はまた、処理装置に、第１のノードによって、第１のノードによって追跡されたリンクパフォーマンスメトリックを使用して、第１のコネクションに関するリンクパフォーマンスメトリックのうちの少なくとも１つが第２の並べ替え基準を満たすと判定させる。命令はまた、処理装置に、第１のノードによって、サービスとの第２のコネクションのトラフィックを受信させる。命令はまた、処理装置に、第１のノードによって、第１のコネクションに関する少なくとも１つのリンクパフォーマンスメトリックが第２の並べ替え基準を満たすとの判定に応じて、サービスとの第２のコネクションの受信したトラフィックを第２のネクストホップに転送させる。
【００２０】
[0020]  いくつかの実施形態では、リンクパフォーマンスメトリックは、コネクションごとに、一定期間に各サービスに差し向けられたバイト数及び一定期間に各サービスから受信したバイト数を含む。命令はまた、処理装置に、経路管理ハブによって、リンクパフォーマンスメトリックを使用して、サービスに差し向けられたバイト数のサービスから受信したバイト数に対する比がコンテキスト調整基準を満たすか否かを判定させる。命令はまた、処理装置に、経路管理ハブによって、サービスに差し向けられたバイト数のサービスから受信したバイト数に対する比がコンテキスト調整基準を満たすとの判定に応じて、１つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストを選択させる。
【００２１】
[0021]  いくつかの実施形態では、経路管理ハブから第１のノードに送信される複数の最適な経路に対してネクストホップにマップされるサービス識別子は、１つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストへのマッピングを含む。
【００２２】
[0022]  いくつかの実施形態では、複数のリンクパフォーマンスメトリックタイプは、帯域幅、１秒当たりの要求、パケット損失、ジッタ、及びレイテンシのうちの１つ又は複数を含む。
【００２３】
[0023]  いくつかの実施形態では、サービスで優先される１つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストを判定することは、経路管理ハブによって、コンテキストの選択を受信することを含む。
【００２４】
[0024]  いくつかの実施形態によれば、システムが、第１の処理装置と第１の処理装置に接続された第１のメモリとを備える経路管理ハブを備える。第１のメモリは、第１の処理装置によって実行されると、経路管理ハブに、メッシュネットワークを形成する複数のプロキシサーバノードのそれぞれからリンクパフォーマンスメトリックを受信させる命令を格納する。複数のノードのそれぞれは、複数のノード内の２つ以上の他のノードのそれぞれへのリンクを介してメッシュネットワークの一部を形成する。リンクパフォーマンスメトリックは、複数のパフォーマンスメトリックタイプを表す。第１のメモリの命令はまた、経路管理ハブに、リンクパフォーマンスメトリックの受信に応じて、複数のメトリックタイプのそれぞれ及び／又はメトリックタイプの組み合わせに関する最適な経路を判定するために、受信したリンクパフォーマンスメトリックを使用して複数のノード内のそれぞれの第１のノードと第２のノードとの間の複数の潜在的な経路を評価させる。第１のメモリの命令はまた、経路管理ハブに、サービスで優先される１つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストを判定させる。第１のメモリの命令はまた、経路管理ハブに、判定されたコンテキストの１つ又は複数のリンクパフォーマンスメトリックタイプを使用して、第１のノードと第２のノードとの間の複数の判定された最適な経路にサービスのためのサービス識別子をマップさせる。第１のメモリの命令はまた、経路管理ハブに、複数のマップされた最適な経路のそれぞれに対するそれぞれのネクストホップと、それぞれのネクストホップのそれぞれとサービス識別子との間のマッピングと、を第１のノードに送信させる。第１のノードは、第２の処理装置と第２の処理装置に接続された第２のメモリとを備える。第２のメモリは、第２の処理装置によって実行されると、第１のノードに、経路管理ハブから、複数のマップされた最適な経路に対して複数のネクストホップにマップされたサービス識別子を受信させる命令を格納する。第２のメモリの命令はまた、第１のノードに、サービスとの第１のコネクションのトラフィックを受信させる。第２のメモリの命令はまた、第１のノードに、受信したトラフィックがサービスのためのものであるとの判定に応じて、複数のマップされた最適な経路に対する複数のネクストホップのサービス識別子にマップされた第１のネクストホップを選択させる。第２のメモリの命令はまた、第１のノードに、受信したトラフィックを選択された第１のネクストホップに転送させる。
【００２５】
[0025]  いくつかの実施形態では、第２のメモリに格納された命令の実行はさらに、第１のノードに、複数のネクストホップのそれぞれを介してサービスのトラフィックに関するリンクパフォーマンスメトリックを追跡させる。第２のメモリに格納された命令はまた、第１のノードに、第１のノードによって追跡されたリンクパフォーマンスメトリックを使用して、経路管理ハブから受信した複数のネクストホップのサービス識別子にマップされた第２のネクストホップが、追跡されたパフォーマンスメトリックのうちの少なくとも１つにおいて第１のネクストホップよりも優れていると判定させる。第２のメモリに格納された命令はまた、第１のノードに、サービスとの第２のコネクションのトラフィックを受信させる。第２のメモリに格納された命令はまた、第１のノードに、第２のネクストホップが第１のネクストホップよりも優れているとの判定に応じて、サービスとの第２のコネクションの受信したトラフィックを第２のネクストホップに転送させる。
【００２６】
[0026]  いくつかの実施形態によれば、コンピュータ実施方法が、経路管理ハブによって、メッシュネットワークを形成する複数のプロキシサーバノードのそれぞれからリンクパフォーマンスメトリックを受信することを含む。複数のノードのそれぞれは、複数のノード内の２つ以上の他のノードのそれぞれへのリンクを介してメッシュネットワークの一部を形成する。リンクパフォーマンスメトリックは、複数のパフォーマンスメトリックタイプを表す。本方法はまた、経路管理ハブによって、リンクパフォーマンスメトリックの受信に応じて、複数のメトリックタイプのそれぞれ及び／又はメトリックタイプの組み合わせに関する最適な経路を判定するために、受信したリンクパフォーマンスメトリックを使用して複数のノード内のそれぞれの第１のノードと第２のノードとの間の複数の潜在的な経路を評価することを含む。本方法はまた、経路管理ハブによって、サービスで優先される１つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストを判定することを含む。本方法はまた、経路管理ハブによって、判定されたコンテキストの１つ又は複数のリンクパフォーマンスメトリックタイプを使用して、第１のノードと第２のノードとの間の複数の判定された最適な経路にサービスのためのサービス識別子をマップすることを含む。本方法はまた、経路管理ハブから第１のノードに、複数のマップされた最適な経路のそれぞれに対するそれぞれのネクストホップと、それぞれのネクストホップのそれぞれとサービス識別子との間のマッピングと、を送信することを含む。
【背景技術】
【００２７】
発明の背景
[0027]  コンテンツ配信ネットワーク（ＣＤＮ）は、高い可用性及び高いパフォーマンスでエンドユーザにコンテンツを提供することを目的としている。特に、ＣＤＮは、コンテンツをキャッシュして提供するために、地理的に多様な複数のデータセンタにプロキシサーバを配備する。コンテンツが要求されると、要求は、例えば、必要なホップ数が最も少ないノード、コンテンツを要求するクライアントからネットワーク秒数が最小のノードなどに差し向けられる。通常、これによりクライアントに最も近いエッジノードが選択される。例えば、電気通信サービスプロバイダ（ＴＳＰ）ネットワーク内のプロキシサーバは、コンテンツをキャッシュしてＴＳＰの顧客に提供して、ネットワークバックボーンに対する需要を減らし、コンテンツを迅速且つ確実に配信する。しかしながら、どのようなクライアントの近くにもプロキシサーバがある機会を最大化するために多くの場所でコンテンツをキャッシュすると、多大なコストが発生し得る。
【００２８】
図面の簡単な説明
[0028]  本実施形態は、添付の図面内の図において限定ではなく例として示されており、添付の図面においては、同様の参照番号は同様の要素を指示している。
【図面の簡単な説明】
【００２９】
【図１】[0029]コンテキストアウェア型の経路計算を実施するプロキシサーバの例示的なメッシュネットワークを示すブロック図である。
【図２】[0030]コンテキストアウェア型の経路の計算及び選択の例示的な方法を示すフローチャートである。
【図３】[0031]サービスで優先される１つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストを判定するために使用される例示的なトラフィックフローを示す図である。
【図４】[0031]サービスで優先される１つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストを判定するために使用される例示的なトラフィックフローを示す図である。
【図５】[0031]サービスで優先される１つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストを判定するために使用される例示的なトラフィックフローを示す図である。
【図６】[0031]サービスで優先される１つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストを判定するために使用される例示的なトラフィックフローを示す図である。
【発明を実施するための形態】
【００３０】
詳細な説明
[0032]  本明細書は、トラフィックのコンテキストに基づいて最適な経路を動的に計算及び選択することにより、プロキシサーバのメッシュネットワークを介してアプリケーション又はデータコンテンツを配信する実施形態を説明する。最適な経路が、メッシュベースを構成するプロキシサーバノードから受信したリンクパフォーマンスメトリックを使用して、またサービスベースのコンテキストに基づいて、経路管理ハブによって選択される。経路管理ハブは、ある場所における又は複数の場所にわたる単一のサーバ又は分散システムとして実装され得る。各サービスベースのコンテキストが、そのサービスで優先される１つ又は複数のリンクパフォーマンスメトリックタイプを表す。いくつかの実施形態では、サービスの管理者が特定のコンテキストの選択を提供する。いくつかの実施形態では、ハブが、デフォルト設定にコンテキストを設定するか、サービスのトラフィックフローパターンの評価に基づいてコンテキストを設定する。最適な経路を選択する一例として、経路管理ハブは、メッシュネットワークを通る潜在的な経路に沿ったリンクの様々なパフォーマンスメトリックを使用して有向グラフを計算し、各サービスベースのコンテキストに基づいて複数の経路を最適な経路として選択することができる。経路管理ハブは、コンテキストベースの最適な経路を対応するサービスにマップする。
【００３１】
[0033]  最適な経路が選択されてマップされると、経路管理ハブはネクストホップ情報をノードに配信する。いくつかの実施形態では、所与のサービスのトラフィックを受信するノードは、マッピングを使用して、経路管理ハブによって提供されるネクストホップを選択し、そのネクストホップにトラフィックを転送する。いくつかの実施形態では、１つ又は複数のノードがリンクパフォーマンスメトリックを追跡して、経路管理ハブに報告を返す。いくつかの実施形態では、ノードは追跡されたリンクパフォーマンスメトリックを使用して、単一のサービスにマッピングされた複数のネクストホップから選択する。
【００３２】
[0034]  その結果、実施形態により、高いパフォーマンスを提供するためにコンテンツをキャッシュしたりアプリケーションをホストしたりするために必要な場所の数が削減される。それどころか、実施形態により、プロキシサーバのメッシュを通る経路のインテリジェントな選択を使用して、アプリケーション又はデータコンテンツを配信する際に高いパフォーマンスが達成される。加えて、実施形態は、ハブのメッシュネットワークのグローバルビューに基づく帯域外経路選択、及び個々のノードのパフォーマンスメトリックの評価に基づく帯域内選択を使用する。
【００３３】
[0035]  図１は、コンテキストアウェア型の経路計算を実施するプロキシサーバノード１０５（例えば、ノード１０５ａ、１０５ｂ、１０５ｃ、１０５ｄ、１０５ｅ、１０５ｆ、１０５ｇ、１０５ｈ、１０５ｉ、１０５ｊ、１０５ｋ、及び１０５ｌ）の例示的なメッシュネットワーク１００をブロック図形式で示している。いくつかの実施形態では、メッシュネットワーク１００は、コンテンツ配信ネットワーク（ＣＤＮ）及び／又はアプリケーション配信ネットワーク（ＡＤＮ）である。メッシュネットワーク１００は、複数のデータセンタに配備された地理的に分散した一式のプロキシサーバノード１０５を含む。メッシュネットワーク１００は、図示されているよりも多い又は少ないノード１０５を含むことができる。
【００３４】
[0036]  いくつかの実施形態では、それぞれのノード１０５は（例えば、ノード１０５ａによって示されるように）ハードウェア１１０を備える。ハードウェア１１０は、１つ又は複数のプロセッサ（「ＣＰＵ」）と、データストレージ及びメモリ（例えば、「ＲＡＭ」）と、ネットワークインターフェースコントローラ（「ＮＩＣ」）とを備える。データストレージ及びメモリは、プロセッサで実行するためのデータ、メタデータ、及びプログラム（例えば、リンク評価モジュール１１５、ＤＮＳモジュール１２０、転送モジュール１２５、及び／又は経路計算モジュール１３０）を格納するために使用され得る。いくつかの実施形態では、データストレージ及びメモリは、ランダムアクセスメモリ（「ＲＡＭ」）、読み取り専用メモリ（「ＲＯＭ」）、ソリッドステートディスク（「ＳＳＤ」）、フラッシュ、相変化メモリ（「ＰＣＭ」）、及び／又は磁気ディスクドライブ、光ディスクドライブなどの他の種類のデータストレージなどの揮発性メモリ及び不揮発性メモリのうちの１つ又は複数を含み得る。いくつかの実施形態では、メモリは内部メモリ及び／又は分散メモリを含む。いくつかの実施形態では、１つ又は複数のバス（図示せず）がハードウェア１１０の様々なコンポーネントを相互接続する。いくつかの実施形態では、ＮＩＣは、有線及び／又は無線ネットワークを介して、ノード１０５（例えば、ノード１０５ａ〜１０５ｌ）のうちのもう１つを他のノード１０５、メッシュネットワーク１００の外部のクライアント装置、及び／又はメッシュネットワーク１００の外部のサーバ装置に接続する。
【００３５】
[0037]  いくつかの実施形態では、それぞれのノードは（例えば、ノード１０５ａによって示されるように）複数のモジュールを備える。これらのモジュールのそれぞれは、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの組み合わせで実現され得る。リンク評価モジュール１１５は、ノード１０５（例えば、ノード１０５ａ〜１０５ｌ）間のメトリックを追跡する。例えば、第１のノードのリンク評価モジュール１１５は、第１のノードを通してサービスに送信されたコネクションごとの１秒当たりのバイト数と、第１のノードによってサービスから受信されたコネクションごとの１秒当たりのバイト数とを追跡し得る。いくつかの実施形態では、これらのメトリックは、クライアントとサービスとの間のコネクションの際のデータフロー特性の表現を提供する。図３〜図６を参照して例示的なデータフロー特性をさらに詳細に説明する。いくつかの実施形態では、リンク評価モジュール１１５は、コネクションごとの１秒当たりの要求、ネットワークアドレスごとの受信パケット損失、ネットワークアドレスごとの送信パケット損失、ネットワークアドレスごとのレイテンシ、ネットワークアドレスごとの帯域幅、ネットワークアドレスごとのジッタ、ネットワーク使用率、トラフィックコンテンツ（例えば、送信中のヘッダ、パケット、又は他のデータ／メタデータの検査による）、様々な要求及び／又は応答のレイテンシ（例えば、ＨＴＭＬページ、JavaScript、ＣＳＳ、画像、ＡＰＩ、及び／又はメディアの要求及び／又は応答）などのうちの１つ又は複数を含む、他のメトリックタイプを追跡する。
【００３６】
[0038]  リンク評価モジュール１１５は、追跡されたメトリックをハードウェア１１０内のデータストレージ又はメモリに格納する。加えて、リンク評価モジュール１１５は、ハードウェア１１０内のＮＩＣを使用して、追跡されたメトリックを経路管理ハブに送信する。いくつかの実施形態では、リンク評価モジュール１１５は、１つ又は複数のメトリックを対応するトラフィックのサービスにマップする。例えば、リンク評価モジュール１１５は、サービスのための識別子をサービスに対して送受信されるトラフィックに関するメトリックにマップするデータストレージ又はメモリ内のデータ構造を維持し得る。例示的なサービスは、ウェブサイトのためのコンテンツの提供、ビデオのストリーミング、アプリケーションのためのデータの提供などを含む。
【００３７】
[0039]  いくつかの実施形態では、リンク評価モジュール１１５は、第１のそれぞれのノード１０５（例えば、ノード１０５ａ）と複数の第２のノード１０５（例えば、ノード１０５ｂ〜１０５ｌ）のそれぞれとの間のメトリックを追跡するためにテストトラフィックを投入する。例えば、それぞれのノード１０５のそれぞれが、他のノード１０５のネットワークアドレスのリストとテスト送信のためのデータとを格納し得る。他のノード１０５にテストトラフィックを送信し、他のノード１０５からの応答を受信することにより、リンク評価モジュール１１５は、１つ又は複数のサービスに差し向けられた実際のトラフィック及び１つ又は複数のサービスから受信された実際のトラフィックの追跡に加えて、又はその代わりに他のノード１０５へのリンクに関するメトリックを追跡できる。
【００３８】
[0040]  いくつかの実施形態では、リンク評価モジュール１１５は、例えば図２〜図６を参照してより詳細に説明するように、追跡されたリンクパフォーマンスメトリックを使用して、トラフィックのためのネクストホップを選択する。
【００３９】
[0041]  いくつかの実施形態では、それぞれのノード１０５は（例えば、ノード１０５ａによって示されるように）ドメインネームシステム（ＤＮＳ）モジュール１２０を備える。ＤＮＳモジュール１２０はネクストホップ情報を格納する。例えば、それぞれのノード１０５は、それぞれの隣接ノード１０５を判定し、アドレス発見プロトコルを使用してトラフィックのためのネクストホップを追跡し得る。いくつかの実施形態では、ネクストホップ情報は経路管理ハブによって提供される。例えば、本明細書でより詳細に説明するように、経路管理ハブは、サービスごとに最適な経路を判定し、それらの経路のノード１０５にネクストホップ情報を配信し得る。サービスのためのネクストホップ情報は、ランク付けされた順序でサービスにマップされた最適なネクストホップのリストを含み得る。いくつかの実施形態では、リンク評価モジュール１１５は、例えば図２〜図６を参照してより詳細に説明するように、追跡されたリンクパフォーマンスメトリックに基づいてネクストホップのランク付けされた順序を調整する。
【００４０】
[0042]  いくつかの実施形態では、それぞれのノード１０５は（例えば、ノード１０５ａによって示されるように）転送モジュール１２５を備える。転送モジュール１２５は、クライアント、サービス、若しくは別のノード１０５からトラフィックを受信する、受信したトラフィックからサービス及び／又は宛先を判定する、及び／又はＤＮＳモジュール１２０によって格納されたマッピングを使用してネクストホップを選択する。
【００４１】
[0043]  いくつかの実施形態では、ノード１０５（例えば、ノード１０５ａ）は経路計算モジュール１３０を備える。いくつかの実施形態では、経路計算モジュール１３０を備えるノードは、メッシュネットワーク１００のための経路管理ハブとして機能する。例えば、メッシュネットワーク１００は、最適な経路を計算してノード１０５に配信する１つのアクティブな経路管理ハブを有し得る。
【００４２】
[0044]  いくつかの実施形態では、経路計算モジュール１３０は、メッシュネットワーク１００内のノード１０５のレジストリを維持する。いくつかの実施形態では、経路計算モジュール１３０は、ノード１０５のそれぞれからリンクパフォーマンスメトリックを受信し、受信したリンクパフォーマンスメトリックを使用して、複数のメトリックタイプのそれぞれ又はメトリックタイプの組み合わせに関するノード１０５間の最適な経路を判定する。いくつかの実施形態では、経路計算モジュール１３０は、１つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストに関する複数の判定された最適な経路にサービス識別子をマップし、複数のマップされた最適な経路のそれぞれのためのネクストホップをネクストホップへのサービスのマッピングと共に１つ又は複数のノードに送信する。いくつかの実施形態では、経路計算モジュール１３０は、コンテキスト又はリンクパフォーマンスメトリックタイプをネクストホップのうちの１つ又は複数にマップし、そのマッピングを１つ又は複数のノードに送信する。経路管理ハブ内に実装されている経路計算モジュール１３０については、図２〜図６を参照してより詳細に説明する。
【００４３】
[0045]  図２は、コンテキストアウェア型の経路の計算及び選択の例示的な方法２００を示すフローチャートである。ブロック２０５において、経路管理ハブは、メッシュネットワーク１００内のノード１０５からリンクパフォーマンスメトリックデータを受信する。例えば、メッシュネットワーク１００は、１２個のノード１０５ａ〜１０５ｌを含むものとして示されており、そのうちの１つ（例えば、ノード１０５ａ）は、経路計算モジュール１３０を能動的に使用することにより経路管理ハブとして機能する。それぞれのノード１０５のそれぞれの各リンク評価モジュール１１５は、そのそれぞれのノード１０５が送信及び／又は受信した実際のトラフィック及び／又はテストトラフィックに関するリンクパフォーマンスメトリックを追跡及び送信し、リンクパフォーマンスメトリックを経路管理ハブに送信する。いくつかの実施形態では、経路管理ハブは、（例えば、期間、評価されるコネクションの数などによって定義される）各ノード１０５について定期的な間隔でリンクパフォーマンスメトリックを受信する。経路管理ハブは、例えば、それぞれのノード１０５のそれぞれとのクライアント／サーバ通信を介して、及び／又はメッセージキューを介して、リンクパフォーマンスメトリックを受信する。受信したリンクパフォーマンスメトリックは、ノードを通してサービスに送信されるコネクションごとの１秒当たりのバイト数、ノードによってサービスから受信されたコネクションごとの１秒当たりのバイト数、送信／受信されたバイト数で表される、クライアントとサービスとの間のコネクションの際のデータフローのタイプの指示、コネクションごとの１秒当たりの要求、ネットワークアドレスごとの受信パケット損失、ネットワークアドレスごとの送信パケット損失、ネットワークアドレスごとのレイテンシ、ネットワークアドレスごとの帯域幅、ネットワークアドレスごとのジッタ、ネットワーク使用率、トラフィックコンテンツタイプ（例えば、送信中のヘッダ、パケット、又は他のデータ／メタデータの検査による）、それぞれのノード１０５によって判定されるサービスのためのコンテキスト／リンクパフォーマンスメトリックタイプなどのうちの１つ又は複数を含む。いくつかの実施形態では、リンクパフォーマンスメトリックは、サービス、期間、送信元アドレス、又は他の識別子、及び宛先アドレス又は他の識別子のうちの１つ又は複数にマップされる。
【００４４】
[0046]  ブロック２１０において、経路管理ハブは、メッシュネットワーク１００を使用する各サービスに関する１つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストを判定する。いくつかの実施形態では、コンテキストは、サービスへのトラフィック及び／又はサービスからのトラフィックが帯域幅の影響を受けることを指示する。そのような実施形態では、経路管理ハブは、帯域幅に関して最高のパフォーマンスを提供するメッシュネットワーク１００を通る経路を優先させる。いくつかの実施形態では、コンテキストは、サービスへのトラフィック及び／又はサービスからのトラフィックがレイテンシの影響を受けることを指示し得る。そのような実施形態では、経路管理ハブは、レイテンシに関して最高のパフォーマンスを提供するメッシュネットワーク１００を通る経路を優先させる。コンテキストは、複数のリンクパフォーマンスメトリックタイプを表し得る。例えば、コンテキストは、サービスへのトラフィック及び／又はサービスからのトラフィックがレイテンシ及びコストの影響を受けることを指示し得る。そのような例では、経路管理ハブは、コスト効率が良い及び／又はコストの閾値を超えないものでありながらも、レイテンシに関して最高のパフォーマンスを提供するメッシュネットワーク１００を通る経路を優先させる。コンテキストはこれらの例に限定されず、別のリンクパフォーマンスメトリックタイプ又はリンクパフォーマンスメトリックタイプの組み合わせを表してもよい。
【００４５】
[0047]  経路管理ハブは、格納されたサービスとコンテキストとの間のマッピングをルックアップすることにより、又はノード１０５から受信したデータに基づいて判定を行うことにより、サービスのためのコンテキストを判定する。例えば、経路管理ハブは、コンテンツ又はアプリケーションをメッシュネットワーク１００を介して配信しようとしている管理者又はサービスの他の担当者から優先されるコンテキストを受信し、格納し得る。或いは、経路管理ハブは、ノード１０５によって判定された優先されるコンテキストを受信し、格納してもよい。別の代替策として、経路管理ハブの判定は、事前構成されたコンテキストがないと判定することと、コンテキストをデフォルト設定に設定することとを含む。
【００４６】
[0048]  いくつかの実施形態では、経路管理ハブは、ノード１０５に基づいてコンテキストを判定し、トラフィックヘッダ／メタデータ及び／又はトラフィックペイロードデータを解析することによりトラフィックタイプを識別し、トラフィックタイプを経路管理ハブに送信する。例えば、経路管理ハブは、ノード１０５から、サービスのための識別子と、ノード１０５により判定されたそのサービスのためのトラフィックタイプとの間のマッピングを受信し得る。トラフィックタイプは、コンテンツを、例えば、画像、音声、ビデオ、アプリケーションプログラミングインターフェース（ＡＰＩ）要求及び／又は応答、ボイスオーバーインターネットプロトコル（ＶｏＩＰ）コールなどに分類し得る。或いは、ノード１０５から受信したトラフィックタイプがトラフィックを分類してもよい。例えば、ノード１０５は、画像並びにＡＰＩ要求及び／又は応答をレイテンシに影響を受けるトラフィック、ストリーミングビデオを帯域幅に影響を受けるトラフィック、ＶｏＩＰコールをジッタに影響を受けるトラフィックなどとして分類してもよい。
【００４７】
[0049]  いくつかの実施形態では、経路管理ハブは、ノード１０５によって検出されたデータフローパターンに基づいてコンテキストを判定する。例えば、ノード１０５は、例えば図３〜図６を参照して説明されるように、データフローを追跡し、追跡されたデータフローに基づいてサービスのための識別子とトラフィックタイプとの間のマッピングを経路管理ハブに送信し得る。例えば、ノード１０５は、ノードを通してサービスに送信されたコネクションごとの１秒当たりのバイト数、ノードによってサービスから受信されたコネクションごとの１秒当たりのバイト数、受信パケット量、送信パケット量、受信トラフィックと送信トラフィックとの間の対称性などに基づいて、レイテンシに影響を受けるトラフィック、帯域幅に影響を受けるトラフィック、ジッタに影響を受けるトラフィックなどとしてトラフィックフローを分類できる。
【００４８】
[0050]  ブロック２１５において、経路管理ハブは、各リンクパフォーマンスメトリックタイプに関する１つ又は複数の最適な経路を計算又は他の仕方で判定する。例えば、リンクパフォーマンスネットワークの受信に応じて、経路管理ハブは、受信したリンクパフォーマンスメトリックを使用して、メッシュネットワーク１００内の２つのノード１０５間の各リンクに値を割り当てる。各リンクパフォーマンスメトリックタイプについて、経路管理ハブは、ダイクストラのアルゴリズム又はノード１０５間の最短経路を判定する別のアルゴリズムへの入力としてそのパフォーマンスメトリックタイプの値を使用して、ノード１０５間の有向グラフを計算する。
【００４９】
[0051]  いくつかの実施形態では、経路管理ハブは、リンクパフォーマンスメトリックタイプの組み合わせに関する１つ又は複数の最適な経路を判定する。例えば、経路管理ハブは、複数のリンクパフォーマンスメトリックタイプを使用して、２つのノード１０５間の各リンクに値を割り当てることができる。いくつかの実施形態では、複数のパフォーマンスメトリックタイプを使用することは、各次元がパフォーマンスメトリックタイプを表す多次元値を作成することを含む。いくつかの実施形態では、複数のパフォーマンスメトリックタイプを使用することは、各リンクの各タイプのパフォーマンスメトリックの和、積、又は他の組み合わせを計算することを含む。いくつかの実施形態では、複数のパフォーマンスメトリックタイプを使用することは、第２のパフォーマンスメトリックタイプの閾値を超えない、又は閾値を下回らない第１のパフォーマンスメトリックタイプの最短経路を計算することを含む。
【００５０】
[0052]  いくつかの実施形態では、各リンクに値を割り当てることは、受信したリンクパフォーマンスメトリックを正規化することを含む。受信したリンクパフォーマンスメトリックを正規化することは、所与のリンクパフォーマンスメトリックタイプに対して高い値が最適であるか低い値が最適であるかに基づいて値を調整することを含み得る。例えば、レイテンシに関する最短経路は低レイテンシのリンクに基づいており、帯域幅に関する最短経路は高帯域幅のリンクに基づいている。加えて、受信したリンクパフォーマンスメトリックを正規化することは、リンクパフォーマンスメトリックタイプに基づいてリンクパフォーマンスメトリックを重み付けすることを含み得る。
【００５１】
[0053]  いくつかの実施形態では、最適な経路を判定する際に、経路管理は、各リンクパフォーマンスメトリックタイプについてノード１０５間の複数の経路をランク付けする。例えば、経路管理ハブは、２つのノード１０５間の上位２つ又は３つの最適な経路を判定し得る。サービスが複数のノード１０５によって提供され得る場合（例えば、複数のノード１０５のそれぞれにおいてキャッシュされたコンテンツを使用して提供され得る場合、又は複数のノード１０５のそれぞれが所与のサービスの発信元の入口／出口の点として機能し得る場合）、経路管理ハブは、第１のノード１０５と複数の他のノードのうちの１つとの間の上位２つ又は３つの最適な経路を判定し得る。或いは、経路管理ハブは、２つのノード１０５の各セット間の単一の最適な経路を判定する。
【００５２】
[0054]  ブロック２２０において、経路管理ハブは、各サービスのためのサービス識別子を、そのサービスのための判定されたコンテキストに基づいて最適な経路のうちの１つ又は複数にマップする。例えば、サービスのための判定されたコンテキストが高帯域幅経路を優先することを示している場合、経路管理ハブは、そのサービスのための識別子を帯域幅に関して最適であると判定された経路にマップする。コンテキストに対して複数の最適な経路が判定される実施形態では、経路管理ハブは、最適な経路のランク付けされたリストに識別子をマップする。サービス識別子は、ポート番号、ネットワークアドレス、ポート番号とネットワークアドレスとの組み合わせ、又はサービスのための別の一意の識別子である。
【００５３】
[0055]  いくつかの実施形態では、経路管理ハブはコンテキストを使用してサービス識別子を複数の最適な経路にマップし、各経路は異なるリンクパフォーマンスメトリックタイプに最適であるとして選択される。例えば、デフォルトのコンテキストを使用して、サービス識別子を、帯域幅に関して最適な経路、レイテンシに関して最適な経路、及びジッタに関して最適な経路を含むリストにマップできる。（例えば、本明細書で説明されるように、トラフィックフロー又は検査に基づいて）判定されたトラフィックタイプを使用して、ノード１０５は、トラフィックタイプに対応する最適な経路を選択し得る。例えば、帯域幅に影響を受けるトラフィックタイプでは、ノード１０５は帯域幅に関して最適な経路を選択する。
【００５４】
[0056]  加えて、経路管理ハブは、マップされた最適な経路のネクストホップ情報をノード１０５に配信する。例えば、最適な経路は、トラフィックを転送する第１のノード１０５とトラフィックを受信する第２のノード１０５との間に中間ノード１０５を含み得る。経路管理ハブは、サービスごとに各ノード１０５について各最適な経路に沿ってネクストホップを判定し、そのサービスに適用すると判定されたコンテキストの１つ又は複数のネクストホップにサービス識別子のマッピングを送信する。いくつかの実施形態では、経路管理ハブは、ノード１０５に配信される場合のネクストホップへのコンテキスト又はリンクパフォーマンスメトリックタイプのマッピングを含む。
【００５５】
[0057]  ブロック２２５において、各ノード１０５は、経路管理ハブからネクストホップ情報を受信する。例えば、サービスごとに、第１のノード１０５は、第１のノードがサービスのトラフィックを転送する他のノード１０５を表すネクストホップのランク付けされたリストにマップされたサービスのための識別子を受信する。いくつかの実施形態では、ランク付けされたリストは、サービスとコンテキストとの両方にマップされる。いくつかの実施形態では、ランク付けされたリストはサービスにマップされ、ランク付けされたリスト内の各ネクストホップがコンテキストにマップされる。ＤＮＳモジュール１２０は、マップされたランク付けされたリストを格納する。
【００５６】
[0058]  ブロック２３０において、ノード１０５はネットワークトラフィックを受信し、受信したネクストホップ情報を使用してトラフィックを転送する。例えば、転送モジュール１２５は、ドメイン、送信元アドレス、宛先アドレス、ポート番号、アドレスとポート番号との組み合わせ、及び／又はサービスに関連付けられた別の一意の識別子を含むネットワークトラフィックを受信する。サービス識別子を使用して、ＤＮＳモジュール１２０はネクストホップを選択する。ノード１０５がサービス識別子にマップされたネクストホップのランク付けされたリストを受信する実施形態では、ＤＮＳモジュール１２０がリスト内で最上位にランク付けされたネクストホップを選択し、転送モジュール１２５がそのネクストホップでノード１０５にトラフィックを転送する。
【００５７】
[0059]  ブロック２３５において、ノード１０５はリンクパフォーマンスメトリックを追跡する。いくつかの実施形態では、リンク評価モジュール１１５は、第１のノード１０５と複数の第２のノード１０５のそれぞれとの間のメトリックを追跡するためにテストトラフィックを投入する。例えば、各ノード１０５が、他のノード１０５のネットワークアドレスのリストとテスト送信のためのデータとを格納し得る。いくつかの実施形態では、格納されたネットワークアドレスのリストは、経路管理ハブから受信したネクストホップの集合である。他のノード１０５にテストトラフィックを送信し、他のノード１０５からの応答を受信することにより、リンク評価モジュール１１５は、１つ又は複数のサービスに差し向けられた実際のトラフィック及び１つ又は複数のサービスから受信された実際のトラフィックの追跡に加えて、又はその代わりに他のノード１０５へのリンクのメトリック（例えば、本明細書で説明される複数のリンクパフォーマンスメトリックタイプのうちの１つ又は複数）を追跡できる。いくつかの実施形態では、リンク評価モジュール１１５は、定期的な時間間隔の満了、コネクションの閾値数の完了、又は別の間隔／閾値に応じて、転送モジュール１２５を介してテストトラフィックを送信及び受信する。
【００５８】
[0060]  ノード１０５は、追跡されたリンクパフォーマンスメトリックを経路管理ハブに送信する。いくつかの実施形態では、リンク評価モジュール１１５は、リンクのバッチの評価が完了すると、追跡されたリンクパフォーマンスメトリックを経路管理ハブに送信する。いくつかの実施形態では、リンク評価モジュール１１５は、判定されたとおりに追跡されたリンクパフォーマンスメトリックを送信する。
【００５９】
[0061]  リンク評価モジュール１１５は、追跡されたリンクパフォーマンスメトリックに基づいて、ＤＮＳモジュール１２０によって格納されたネクストホップ情報を任意で並べ替える。このような並べ替えの結果として、ノード１０５は、経路管理ハブによって行われた最適な経路に対する外部／帯域外調整の間に、最適な経路に対する内部／帯域内調整を行う。例えば、リンク評価モジュール１１５は、追跡されたリンクパフォーマンスメトリックを使用して、経路管理ハブによって判定された最上位にランク付けされたネクストホップが所与のコンテキストに関して最適な経路ではなくなったことを判定し得る。具体的な例として、ノード１０５が受信したネクストホップ情報は、サービスが帯域幅を優先させるように構成されたコンテキストに、そしてコンテキストに基づいて３つのネクストホップにマップされることを指示する。帯域幅においてランク付けされたリストの第２のネクストホップがランク付けされたリストの第１のネクストホップよりも優れていることを追跡されたリンクパフォーマンスメトリックが示すとリンク評価モジュール１１５が判定したことに応じて、リンク評価モジュールは、ランク付けされたリストを並べ替えて、第２のネクストホップを第１にする。
【００６０】
[0062]  いくつかの実施形態では、リンク評価モジュール１１５は、所与のサービスに関してネクストホップのランク付けされたリストを評価するために使用するリンクパフォーマンスメトリックを判定することにより、サービスに関してネクストホップのランク付けされたリストを並べ替える判定を行う。例えば、サービスと共に経路管理ハブから受信され、そのサービスに関するネクストホップにマップされたコンテキスト識別子は、１つ又は複数のリンクパフォーマンスメトリックを表すとしてリンク評価モジュール１１５によって解決され得る。
【００６１】
[0063]  いくつかの実施形態では、リンク評価モジュール１１５は、そのサービスのためのトラフィックを検査することにより、そのサービスに関してネクストホップのランク付けされたリストを並べ替える判定を行う。例えば、転送中のヘッダ、パケット、又は他のデータ／メタデータを検査することにより、リンク評価モジュール１１５はそのサービスに関するトラフィックタイプを判定する。トラフィックタイプは、コンテンツを、例えば、画像、音声、ビデオ、アプリケーションプログラミングインターフェース（ＡＰＩ）要求及び／又は応答、ボイスオーバーインターネットプロトコル（ＶｏＩＰ）コールなどに分類し得る、及び／又はトラフィックタイプをコンテキスト／リンクパフォーマンスメトリックタイプにマップし得る。リンク評価モジュール１１５は、トラフィックに関する判定されたリンクパフォーマンスメトリックタイプの追跡されたリンクパフォーマンスメトリックにおいて、下位にランク付けされたネクストホップが上位にランク付けされたネクストホップよりも優れている場合、ネクストホップのランク付けされたリストを並べ替える。
【００６２】
[0064]  いくつかの実施形態では、ランク付けされたリストは、異なるコンテキスト又はリンクパフォーマンスメトリックタイプを優先させるネクストホップを含み得る。そのような実施形態において、リンク評価モジュール１１５は、下位にランク付けされたネクストホップがトラフィックに関して判定されたリンクパフォーマンスメトリックタイプに優先され、上位にランク付けされたネクストホップが優先されない場合、ネクストホップのランク付けされたリストを並べ替える。
【００６３】
[0065]  いくつかの実施形態では、リンク評価モジュール１１５は、リンク、ノード１０５、又はサービスの負荷を推定することに基づいて、サービスに関してネクストホップのランク付けされたリストを並べ替える判定を行う。例えば、サービスは、異なるノード１０５に接続された複数のオリジンサーバによって、又はプロキシとして異なるノード１０５によって提供されてもよい。追跡されたリンクパフォーマンスメトリックは、低負荷の経路、ノード１０５、若しくはオリジン、及び／又は負荷閾値を上回る経路、ノード１０５、若しくはオリジンの指示を提供し得る。低負荷のオプションがあるとの判定に応じて、又は上位にランク付けされたネクストホップが負荷閾値を上回るオプションであるとの判定に応じて、リンク評価モジュール１１５はランク付けされたリストを並べ替えて負荷分散、スロットルトラフィックなどを提供する。
【００６４】
[0066]  いくつかの実施形態では、リンク評価モジュール１１５は、サービスに関してトラフィックフローデータの特徴付けを行うことにより、サービスに関してネクストホップのランク付けされたリストを並べ替える判定を行う。例えば、トラフィックフローは、コンテキスト又は１つ若しくは複数のリンクパフォーマンスメトリックタイプに対応するものとして特徴付けられ得る。上記のように、コンテキスト又はリンクパフォーマンスメトリックタイプを使用して、リンクパフォーマンスメトリックを評価し、ネクストホップを並べ替えることができる。
【００６５】
[0067]  方法２００は、並行して、ブロック２０５及びブロック２３０に続く。経路管理ハブは、ノード１０５から更新されたリンクパフォーマンスメトリックを受信し、ブロック２０５〜２２０に関連して説明したように、最適な経路及び対応するネクストホップ情報を更新する。加えて、その間に、ノード１０５は、ブロック２３０及び２３５に関連して説明したように、トラフィックを受信及び転送し、リンクパフォーマンスメトリックを追跡し、ネクストホップを任意で並べ替えることを続ける。
【００６６】
[0068]  図３〜図６は、サービスで優先される１つ又は複数のリンクパフォーマンスメトリックタイプを表すコンテキストを判定するために使用される例示的なトラフィックフローを示している。例えば、リンク評価モジュール１１５は、リンクパフォーマンスメトリックの一部として、コネクションごとに、ノードを通してサービスに送信した１秒当たりのバイト数、及び／又はノードによってサービスから受信した１秒当たりのバイト数を追跡し得る。リンク評価モジュール１１５は、ネクストホップの並べ替え基準及び／又はコンテキスト調整基準が満たされているか否かを判定するために、図３〜図６に関して説明したように判定を実行できる。
【００６７】
[0069]  図３は、ファイルの要求及び応答の例示的なトラフィックフローを示している。例えば、サービスは、１つ又は複数のカスケードスタイルシート（ＣＳＳ）、JavaScript、ハイパーテキストマークアップ言語（ＨＴＭＬ）ファイル、画像、又は他のファイルを提供し得る。図示のように、そのようなファイルの要求及び応答のトラフィックフローは、送受信される１秒当たりのバイト数が比較的少なくなり得る。加えて、このようなファイルの示されているトラフィックフローは、送信バイト数と比較して受信バイト数の比率が比較的等しいことを示している。リンク評価モジュール１１５は、受信バイト数及び送信バイト数の量及び／又は比率を使用して、トラフィックのためのネクストホップがレイテンシを優先させるべきであることを判定する。例えば、リンク評価モジュール１１５は、受信バイト数の量及び／又は送信バイト数の量（及び／又は受信バイト数の送信バイト数に対する比）が並べ替え基準を満たしている（例えば、送信バイト数の量が閾値未満である、及び／又は受信バイト数の送信バイト数に対する比が、事前に定義された比の値の範囲内にある）と判定し、これにより、レイテンシを優先させるコンテキストにマップする。
【００６８】
[0070]  図４は、ストリーミングサービスの要求及び応答の例示的なトラフィックフローを示している。示されているトラフィックフローは、１秒当たりの受信バイト数が比較的少なく、１秒当たりの送信バイト数が多いことを示している。リンク評価モジュール１１５は、送信バイト数の量及び／又は１秒当たりの受信バイト数の１秒当たりの送信バイト数に対する比を使用して、トラフィックのためのネクストホップが帯域幅を優先させるべきであることを判定する。例えば、リンク評価モジュール１１５は、例えば、送信バイト数の量が閾値を超えている場合、及び／又は受信バイト数の送信バイト数に対する比が（例えば、所定の期間にわたって）閾値比未満である場合に、並べ替え基準が満たされていると判定し、これにより、帯域幅を優先させるコンテキストにマップする。
【００６９】
[0071]  図５は、チャンク方式でデータを送信するストリーミングサービスの要求及び応答の例示的なトラフィックフローを示している。図４と同様に、示されているトラフィックフローは、１秒当たりの受信バイト数が比較的少なく、１秒当たりの送信バイト数が多いことを示している。リンク評価モジュール１１５は、受信バイト数及び送信バイト数の量及び／又は比率を使用して、トラフィックのためのネクストホップが帯域幅を優先させるべきであることを判定する。例えば、リンク評価モジュール１１５は、例えば、送信バイト数の量が閾値を超えている場合、及び／又は受信バイト数の送信バイト数に対する量の比が（例えば、所定の期間にわたって）閾値比未満である場合に、並べ替え基準が満たされていると判定し、これにより、帯域幅を優先させるコンテキストにマップする。
【００７０】
[0072]  図６は、フレームベースのプロトコルの要求及び応答の例示的なトラフィックフローを示している。例えば、ＨＴＴＰ／２プロトコルの場合、クライアントが接続するとすぐに、そしてクライアントが要求又は他のバイトを送信する前に、サーバがデータの送信を開始する可能性がある。
【００７１】
[0073]  本明細書から、本発明の態様を少なくとも部分的にソフトウェアで実施できることは明らかである。つまり、リンク評価モジュール１１５、ＤＮＳモジュール１２０、転送モジュール１２５、経路計算モジュール１３０、及び／又はコンピュータ実施方法２００は、１つ又は複数のそれぞれのノード１０５などのコンピュータシステム又は他のデータ処理システムにおいて、そのプロセッサがメモリ又は他の非一時的機械可読記憶媒体に含まれる命令のシーケンスを実行するのに応じて実施又は実行できる。ソフトウェアはさらに、ネットワークインターフェースを介してネットワーク（図示せず）上で送信又は受信されてもよい。様々な実施形態において、本実施形態を実施するために、ソフトウェア命令と組み合わせてハードワイヤード回路を使用してもよい。よって、本技法は、ハードウェア回路とソフトウェアとのいかなる特定の組み合わせにも、ノード１０５によって実行される命令のいかなる特定のソースにも限定されない。また、示されていないさらなるコンポーネントもノード１０５の一部とすることができ、特定の実施形態では、ノード１０５で使用されるコンポーネントが図１に示されているコンポーネントよりも少なくてもよいことも理解されたい。
【００７２】
[0074]  上記の実施形態の機能の少なくとも一部を提供するプログラムコードを格納するために製品を使用してもよい。加えて、上記の実施形態の機能の少なくとも一部を使用して作成されたプログラムコードを格納するために製品を使用してもよい。プログラムコードを格納する製品は、これらに限定されないが、１つ又は複数のメモリ（例えば、１つ又は複数のフラッシュメモリ、ランダムアクセスメモリ−静的、動的、又はその他）、光ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気若しくは光学カード、ソリッドステートドライブ（ＳＳＤ）、又は電子的命令を格納するのに適した他の種類の非一時的コンピュータ可読媒体として具現化されてもよい。加えて、本発明の実施形態は、これらに限定されないが、ＦＰＧＡ、ＡＳＩＣ、プロセッサ、コンピュータ、又はネットワークを含むコンピュータシステムを使用するハードウェア又はファームウェアで実施されてもよい。本発明の実施形態を大幅に変更することなく、ハードウェア又はソフトウェア実装のモジュール及びコンポーネントを分割したり組み合わせたりすることができる。
【００７３】
[0075]  本明細書のここまでの部分において、本発明を、その特定の例示的な実施形態に関連して説明してきた。本発明の様々な実施形態及び態様は、本明細書で説明されている詳細に関連して説明されており、添付の図面は様々な実施形態を例示している。上記の説明及び図面は、本発明を例示するためのものであり、本発明を限定するものとして解釈されるべきではない。本明細書における「１つの実施形態」、「一実施形態」、「例示的な実施形態」などへの言及は、記載された実施形態が特定の特徴、構造、又は特性を含み得ることを示すが、必ずしもすべての実施形態がその特定の特徴、構造、又は特性を含むとは限らない。さらに、そのような語句は必ずしも同じ実施形態に言及しているわけではない。さらに、特定の特徴、構造、又は特性が一実施形態に関連して説明される場合、そのような特徴、構造、又は特性は、明示的に説明されているか否かにかかわらず、他の実施形態に関連して実装され得る。加えて、本明細書で使用される場合、「例示的」という用語は、単に例又は例示として機能する実施形態を指す。「例示的」の使用が、好ましい例を示すものと解釈されるべきではない。破線の境界線（例えば、大きな破線、小さな破線、一点鎖線、点）を有するブロックは、仮想化されたリソースを示すため、又はフローチャートにおいて本発明の実施形態にさらなる特徴を追加する任意の動作を示すために使用されている。ただし、そのような表記法は、これらが唯一のオプション又は任意の動作であること、及び／又は本発明の特定の実施形態における実線の境界線を有するブロックが任意ではないことを意味するものとして解釈されるべきではない。本発明の様々な実施形態の十分な理解を提供するために、多くの具体的な詳細が説明されている。しかしながら、特定の例では、本発明の実施形態の議論を簡潔にするために、周知又は従来の詳細は説明されていない。
【００７４】
[0076]  当然のことながら、添付の特許請求の範囲に記載されている本発明のより広い趣旨及び範囲から逸脱することなく、様々な修正を加えることができる。例えば、本明細書で説明される方法は、より少ない又はより多い特徴／ブロックで実行されてもよいし、特徴／ブロックが異なる順序で実行されてもよい。加えて、本明細書で説明される方法は、互いに並行して、又は同じ方法若しくは類似の方法の異なるインスタンスと並行して繰り返されたり実行されたりしてよい。
【図１】
2020522211.tif 000003
【図２】
2020522211.tif 000004
【図３】
2020522211.tif 000005
【図４】
2020522211.tif 000006
【図５】
2020522211.tif 000007
【図６】
2020522211.tif 000008
【国際調査報告】
2020522211.tif 000009
2020522211.tif 000010