(57)【要約】  コンピュータに実装された方法およびトランスポートマネージャシステムは、ネットワーク内の１つ以上のデータフローを検出することと、候補フロー検出しきい値を使用して、１つ以上のデータフローのデータフローが候補フローであるかどうかを決定することであって、候補フロー検出しきい値が、１つ以上のデータフローの１つ以上の特性に基づいている、決定することと、データフローが候補フローであると決定したことに応答して、データフローを管理することと、を行うことによって、ネットワーク輻輳を低減するように動作する。消費レート、継続時間、通信されるバイト数、スループット、または1つ以上のデータフローの集約された特性が、候補フロー検出しきい値を決定するために使用され得る。
2021512567.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク輻輳を低減するためのコンピュータに実装される方法であって、
ネットワーク内の１つ以上のデータフローを検出することと、
候補フロー検出しきい値を使用して、前記１つ以上のデータフローのうちのデータフローが候補フローであるかどうかを決定することであって、前記候補フロー検出しきい値が、前記１つ以上のデータフローの１つ以上の特性に基づいている、決定することと、
前記データフローが前記候補フローであると決定したことに応答して、前記データフローを管理することと、を含む方法。
【請求項２】
前記データフローによって搬送されるデータの消費レートを決定することであって、前記データの消費レートが、前記候補フロー検出しきい値を決定するために使用される、決定することをさらに含む、請求項１に記載の方法。
【請求項３】
前記消費レートが符号化レートに関する、請求項２に記載の方法。
【請求項４】
前記データフローのスループットを決定することであって、前記スループットが、前記消費レートに所定の継続時間を乗じたものに対応するデータ量をバッファするのに必要な伝送時間に従って、前記候補フロー検出しきい値を決定するために使用される、決定することと、
前記データフローの継続時間を前記候補フロー検出しきい値と比較して、前記データフローが前記候補フローであるかどうかを決定する、請求項２に記載の方法。
【請求項５】
前記消費レートに所定のバッファ成長レート値が加算されて、前記候補フロー検出しきい値を決定し、当該方法は、
前記データフローのスループットを決定することと、
前記データフローの前記スループットを前記候補フロー検出しきい値と比較して、前記データフローが候補フローであるかどうかを決定することと、をさらに含む請求項２に記載の方法。
【請求項６】
候補フローであると決定した前記複数のデータフローのパーセンテージを決定することと、
前記決定したパーセンテージと所定の目標パーセンテージとを比較することと、
前記決定したパーセンテージが前記所定の目標パーセンテージより小さいことに応答して、前記候補フロー検出しきい値を調整して、候補フローであると決定される前記複数のデータフローの数を増加させることと、
前記決定したパーセンテージが前記所定の目標パーセンテージより大きいことに応答して、前記候補フロー検出しきい値を調整して、候補フローであると決定される前記複数のデータフローの数を減少させることと、
前記候補フロー検出しきい値は、前記候補フロー検出しきい値を決定するように調整される、請求項１に記載の方法。
【請求項７】
前記1つ以上の特性の分布または前記１つ以上の特性の組み合せを決定することと、
前記決定した分布の所定のパーセンタイルに対応する値を決定することと、
前記決定した値に従って、前記候補フロー検出しきい値を決定することと、をさらに含む、請求項１に記載の方法。
【請求項８】
当該方法が、第１のネットワークノードによって行われ、当該方法は、
第２のネットワークノードから前記複数のデータフローについての情報を受信することと、
前記受信した情報を使用して、前記候補フロー検出しきい値を決定することと、をさらに含む、請求項１に記載の方法。
【請求項９】
当該方法が、第１のネットワークノードによって実行され、当該方法は、
第２のネットワークノードからのネットワークメトリックを受信することと、
前記受信したネットワークメトリックを使用して、前記候補フロー検出しきい値を決定すること、をさらに含み、
前記第１のネットワークノードは、前記複数のデータフローを受信した前記ネットワークノードである、請求項１に記載の方法。
【請求項１０】
現在の時刻を決定することと、
前記現在の時刻に従って、前記候補フロー検出しきい値を決定することと、をさらに含む、請求項１に記載の方法。
【請求項１１】
前記データフローがパケットをアクティブに転送する継続時間を決定することと、
前記継続時間と前記候補フロー検出しきい値とを比較して、前記データフローが前記候補フローであるかどうかを決定することと、をさらに含む、請求項１に記載の方法。
【請求項１２】
前記データフローによって通信されるバイト数を決定することと、
前記バイト数と前記候補フロー検出しきい値とを比較して、前記データフローが前記候補フローであるかどうかを決定することと、をさらに含む、請求項１に記載の方法。
【請求項１３】
トランスポートマネージャシステムであって、
互いに通信可能に結合されている１つ以上のプロセッサ、ネットワークインターフェース、キュー、およびコンピュータ実行可能命令を記憶する記憶装置であって、前記コンピュータ実行可能命令は、前記１つ以上のプロセッサによって実行されるときに、前記トランスポートマネージャシステムに、
ネットワーク内の１つ以上のデータフローを検出することと、
候補フロー検出しきい値を使用して、データフローが候補フローであるかどうかを決定することであって、前記候補フロー検出しきい値が、前記１つ以上のデータフローの１つ以上の特性に基づいている、決定することと、
前記データフローが前記候補フローであると決定したことに応答して、前記データフローを管理することと、を行わせる、トランスポートマネージャシステム。
【請求項１４】
前記コンピュータ実行可能命令が、前記１つ以上のプロセッサによって実行されるときに、前記トランスポートマネージャシステムに、
前記データフローによって搬送されるデータの消費レートを決定することであって、前記消費レートが、前記候補フロー検出しきい値を決定するために使用される、決定することを行わせる、請求項１３に記載のトランスポートマネージャシステム。
【請求項１５】
前記消費レートが符号化レートに関する、請求項１４に記載のトランスポートマネージャシステム。
【請求項１６】
前記コンピュータ実行可能命令が、前記１つ以上のプロセッサによって実行されるときに、前記トランスポートマネージャシステムに、
前記データフローのスループットを決定することであって、前記スループットが、前記消費レートに所定の継続時間を乗じたものに対応するデータ量をバッファするのに必要な伝送時間に従って、前記候補フロー検出しきい値を決定するために使用される、決定することを行わせ、
前記データフローの継続時間を前記候補フロー検出しきい値と比較して、前記データフローが前記候補フローであるかどうかを決定する、請求項１４に記載のトランスポートマネージャシステム。
【請求項１７】
前記消費レートに所定のバッファ成長レート値が加算されて、前記候補フロー検出しきい値を決定し、前記コンピュータ実行可能命令が、前記１つ以上のプロセッサによって実行されるときに、前記トランスポートマネージャシステムに、
前記データフローのスループットを決定することと、
前記データフローの前記スループットを前記候補フロー検出しきい値と比較して、前記データフローが候補フローであるかどうかを決定することと、を行わせる、請求項１４に記載のトランスポートマネージャシステム。
【請求項１８】
前記コンピュータ実行可能命令が、前記１つ以上のプロセッサによって実行されるときに、前記トランスポートマネージャシステムに、
候補フローであると決定した前記複数のデータフローのパーセンテージを決定することと、
前記決定したパーセンテージと所定の目標パーセンテージとを比較することと、
前記決定したパーセンテージが前記所定の目標パーセンテージより小さいことに応答して、前記候補フロー検出しきい値を調整して、候補フローであると決定する前記複数のデータフローの数を増加させることと、
前記決定したパーセンテージが前記所定の目標パーセンテージより大きいことに応答して、前記候補フロー検出しきい値を調整して、候補フローであると決定する前記複数のデータフローの数を減少させることと、を行わせる請求項１３に記載のトランスポートマネージャシステム。
【請求項１９】
前記コンピュータ実行可能命令が、前記１つ以上のプロセッサによって実行されるときに、前記トランスポートマネージャシステムに、
前記１つ以上の特性の分布または前記１つ以上の特性の組み合せを決定することと、
前記決定した分布の所定のパーセンタイルに対応する値を決定することと、
前記決定した値に従って、前記候補フロー検出しきい値を決定することと、を行わせる、請求項１３に記載のトランスポートマネージャシステム。
【請求項２０】
前記トランスポートマネージャシステムが、第１のネットワークノードに含まれ、前記コンピュータ実行可能命令が、前記１つ以上のプロセッサによって実行されるときに、前記トランスポートマネージャシステムに、
第２のネットワークノードから前記複数のデータフローについての情報を受信することと、
前記受信した情報を使用して、前記候補フロー検出しきい値を決定することと、を行わせる、請求項１３に記載のトランスポートマネージャシステム。
【請求項２１】
前記トランスポートマネージャシステムが、第１のネットワークノードに含まれ、前記コンピュータ実行可能命令が、前記１つ以上のプロセッサによって実行されるときに、前記トランスポートマネージャシステムに、
第２のネットワークノードからのネットワークメトリックを受信することと、
前記受信したネットワークメトリックを使用して、前記候補フロー検出しきい値を決定すること、を行わせる、請求項１３に記載のトランスポートマネージャシステム。
【請求項２２】
前記コンピュータ実行可能命令が、前記１つ以上のプロセッサによって実行されるときに、前記トランスポートマネージャシステムに、
現在の時刻を決定することと、
前記現在の時刻に従って、前記候補フロー検出しきい値を決定することと、を行わせる、請求項１３に記載のトランスポートマネージャシステム。
【請求項２３】
前記コンピュータ実行可能命令が、前記１つ以上のプロセッサによって実行されるときに、前記トランスポートマネージャシステムに、
前記データフローがパケットをアクティブに転送する継続時間を決定することと、
前記継続時間と前記候補フロー検出しきい値とを比較して、前記データフローが前記候補フローであるかどうかを決定することと、を行わせる、請求項１３に記載のトランスポートマネージャシステム。
【請求項２４】
前記コンピュータ実行可能命令が、前記１つ以上のプロセッサによって実行されるときに、前記トランスポートマネージャシステムに、
前記データフローによって通信されるバイト数を決定することと、
前記バイト数と前記候補フロー検出しきい値とを比較して、前記データフローが前記候補フローであるかどうかを決定することと、を行わせる、請求項１３に記載のトランスポートマネージャシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この出願は、２０１８年１月２６日に出願された米国仮出願第６２／６２２，７４６号の利益を主張し、その全内容は参照により本明細書に組み込まれる。
【背景技術】
【０００２】
今日のデータネットワーク（無線、有線および／またはファイバネットワークを含み得る）が直面する増大する問題の１つは、エンドユーザ装置への、またはエンドユーザ装置からの配信中に、長時間にわたって不相応な量のネットワークリソースを消費する個々のデータフロー（「フロー」）によってこれらのデータネットワークに課される負担であり、これは「エレファントフロー」と呼ばれることがある。ストリーミングメディアコンテンツ（音声、ビデオ、および／または他のタイプのコンテンツデータ）、大きなダウンロードなどは、そのようなエレファントフローを生成することが多い。
【０００３】
消費者アクセスネットワークは、通常、クライアント装置による短いバーストデータおよび短い期間のネットワークリソース使用の配信のために設計される。その結果、エレファントフローは、有限のネットワークリソースを使用する多くのユーザのピーク使用要求を満足させようとするネットワークトラフィックエンジニアにとって、主要な挑戦となることがある。ネットワークにおいて、多数の管理されていないエレファントフローが存在すると、ネットワークの輻輳が発生し、すべてのユーザとそれらのアプリケーションのネットワーク応答が遅くなることがある。
【０００４】
従って、ネットワーク性能を維持するために（例えば、フローごとの帯域幅割り当てを通して）管理され得るエレファントフローのような候補フローを識別できることが望ましい。
【発明の概要】
【０００５】
本明細書で説明するのは、ネットワークの性能が低下するのを防止するために処理および／または管理され得る、エレファントフローのような候補フローを決定するシステムおよび方法である。候補フローは、動的に調整され得る候補フロー検出しきい値を使用して決定され得る。
【０００６】
さまざまな実施形態によれば、候補フロー検出しきい値が、ネットワーク環境および多くの他の要因に基づいて変動してもよい。一実施形態は、ビデオストリームであるフローを識別することによって、および符号化レートを直接観察することによって、またはフローのスループットを観察することによって、装置に配信されているビデオ符号化レートを識別または推論することによって、候補フロー検出しきい値を調整してもよい。次いで、その実施形態は、既に配信されたバッファの量および／またはバッファが成長しているレートのいずれかを計算し、１つ以上のこれらの値を使用して、そのフローに対する１つ以上の候補フロー検出しきい値を上下に調整してもよい。
【０００７】
別の実施形態は、データトランスポートネットワーク全体またはネットワークのサブセット（例えば、単一のｅＮｏｄｅＢ、宛先、送信元、加入者タイプなど）のいずれかに対して、期待される候補フローの目標パーセンテージを識別し、候補フローの目標パーセンテージが満たされるまで、候補フロー検出しきい値を動的に調整してもよい。
【０００８】
別の実施形態は、データトランスポートネットワーク全体またはデータトランスポートネットワークのサブセット（すなわち、データネットワーク内のノード、またはコンテンツ宛先またはコンテンツ送信元、コンテンツのタイプなど）のいずれかでのデータ転送セッションのパーセンタイルを利用して、候補フロー検出しきい値を決定する。例えば、ネットワークノード内で、実施形態は、すべてのデータ転送セッションのサイズの９０番目のパーセンタイルに対する値を見つけ、その値に従って、そのネットワークノードに対する候補フロー検出しきい値を決定してもよい。他の実施形態は、適切な候補フロー検出しきい値を決定するための入力として、データ転送セッションスループットまたはデータ転送セッションの継続時間を含むが、これらに限定されない、他のデータ転送セッションインジケータを使用して同様に動作してもよい。
【０００９】
別の実施形態は、データ転送セッションの送信元または宛先に基づいて候補フロー識別の周波数を測定してもよい。この情報は、その送信元または宛先に対する候補フロー検出しきい値を増減するために使用してもよい。
【００１０】
別の実施形態では、実施形態は、別のネットワークノードから情報を受信し、その情報を利用して、そのネットワークノードによって報告された現在のデータトランスポートネットワーク状態に基づいて、候補フロー検出しきい値を上下に調整してもよい。例えば、ネットワークノードのリソースの使用量が増減する場合、実施形態は、それがそのネットワークノードに対して検出する候補フローの数を増減少させる可能性がある。
【００１１】
一実施形態では、候補フロー検出しきい値を時刻に基づいて調整することができ、そのしきい値が、その日のある時間の間にトラフィックが増加し、次いで、異なる時間の間に減少するときに適応することができるようにする。実施形態は、異なるそれぞれの候補フロー検出しきい値が定義される複数の期間を識別することを可能にしてもよい。
【図面の簡単な説明】
【００１２】
【図１Ａ】例示的なネットワーク環境を示す。
【図１Ｂ】別の例示的なネットワーク環境を示す。
【図２Ａ】一実施形態によるトランスポートマネージャシステムのブロック図である。
【図２Ｂ】別の実施形態によるトランスポートマネージャシステムのブロック図である。
【図２Ｃ】別の実施形態によるトランスポートマネージャシステムのブロック図である。
【図２Ｄ】別の実施形態によるトランスポートマネージャシステムのブロック図である。
【図３】一実施形態のユーザ機器のブロック図である。
【図４】一実施形態による候補フロー検出器が、ビデオであり得るフローを識別し、すでに装置に配信された量に基づいて候補フロー検出しきい値を調整する意思決定ロジックを示す。
【図５】一実施形態による候補フロー検出器が、ビデオであり得るか、または別のネットワークノードからデータ転送セッションがビデオであると通知されたデータ転送セッションを識別し、ビデオ再生バッファの成長レートに基づいて候補フロー検出しきい値を調整する意思決定ロジックを示す。
【図６】一実施形態によるフロー検出器が、フローのグループにわたって候補フローの目標パーセンテージを達成するために、候補フロー検出しきい値を調整する意思決定ロジックを示す。
【図７】一実施形態によるフロー検出器が、フローのグループにわたって目標パーセンタイル値を達成するために、候補フロー検出しきい値を調整する意思決定ロジックを示す。
【図８】一実施形態による候補フロー検出器が、候補フロー検出器によって収集されたか、または別個のネットワークノードから報告された情報のいずれかを使用し、これを使用して、これらのフローの候補フロー検出しきい値を調整する意思決定ロジックを示す。
【図９】一実施形態による候補フロー検出器が、別のネットワークノードから受信した情報に基づいて候補フローしきい値を調整する意思決定ロジックを示す。
【図１０】一実施形態による候補フロー検出器が時刻に基づいて候補フロー検出しきい値を調整する意思決定ロジックを示す。
【図１１】一実施形態によるコンピュータシステムを示す。
【発明を実施するための形態】
【００１３】
本明細書で説明するのは、ネットワークの性能が低下するのを防止するために処理および／または管理され得る、エレファントフローのような候補フローを決定するシステムおよび方法である。候補フローは、候補フロー検出しきい値を使用して決定され得る。
【００１４】
データネットワークが輻輳するときに、ネットワークを移動するデータパケット（例えば、データフローまたはフロー）のレートが通常低下し、最適なデータスループットより低いものとなる。ネットワーク輻輳の原因の１つは、「エレファントフロー」または共有スループット容量を含むネットワークリソースの使用において比較的負担となる他のタイプのフローの存在または実在である。
【００１５】
候補フロー検出は、パケットデータネットワーク内の任意のポイントで行われ、ネットワークの性能を改善するために管理され得る負担となるフローを識別することができる。候補フロー検出は、データトラフィックまたはトラフィックのコピー上で直接なされ得る。ネットワークにおいて他のデータフローに対して候補フローを識別したい理由が多くあり、これには、候補フローへのＱｏＳ（Quality  of  Service）ポリシーの適用、識別された候補フロー挙動に基づくセキュリティポリシーの作成、ユーザ挙動の統計分析などが含まれるが、これらに限定されない。
【００１６】
フローは、トランスポートプロトコルにかかわらず、１つ以上の送信元デバイスから１つ以上の宛先デバイスへのデータグラムパケットのストリームとして定義されてもよい。一例として、フローが、１つ以上のデータ転送セッションを含み得る。例えば、スマートフォンのようなエンドユーザデバイスがビデオを起動する場合、両方とも同じ宛先サーバに向かう、ビデオストリームのための１つのデータ転送セッションとオーディオストリームのための別のデータ転送セッションを作成してもよい。様々な実施形態によれば、候補フロー検出システムの観点からは、これは単一フローとみなされてもよい。
【００１７】
候補フローの例は、例えば、ネットワーク帯域幅の大きな部分を使用するメディアコンテンツ（例えば、ビデオおよび／またはオーディオファイル）に関連するパケットデータフローを含む。いくつかの場合では、候補フローは、あるしきい値レベルよりも大きいネットワーク帯域幅全体の一部を消費するデータフローとして定義され得る。他の場合では、候補フローは、あるしきい値量を超えるデータレートを有するデータフローとして定義され得る。さらに他の場合では、候補フローは、しきい値継続時間より長く継続するデータフローとして定義され得る。もちろん、しきい値レベルおよびしきい値量の値は、例えば、関与するデータネットワークのタイプ、エンドユーザの数、ネットワーク帯域幅全体などを多数の要因に基づいた設計選択であってもよい。実施形態において、しきい値レベルおよびしきい値レベルは、動的に調整され得る。
【００１８】
ネットワークにおける候補フローの識別は、１つ以上のメトリックに基づいてなされ得る。一実施形態では、サイズしきい値（例えば、少なくとも３ＭＢの転送）を超えるフローは、候補フローとして分類される。一実施形態では、最小時間のフロー転送パケットが、候補フローとして分類される（例えば、４５秒以上パケットをアクティブに転送するフロー）。別の例では、候補フローは、あるしきい値、例えば、２メガビット／秒を超えるデータレートを有するフローとして定義され得る。２０１６年３月３日に出願され、米国特許出願公開第２０１６／０２６１５１０号として公開された米国特許出願第１５／０６０，４８６号は、エレファントフローのような候補フローを識別するための例示的な条件およびしきい値を特定し、その全体が参照により本明細書に組み込まれる。
【００１９】
図１Ａは、一実施形態による例示的なネットワーク環境１００を示す。図示のように、ネットワーク環境１００は、トランスポートマネージャシステム１０２ａ、ユーザ機器１０４、コンテンツサーバ１０６、データネットワーク１０８、およびデータネットワーク１１０を含む。図１Ａに明示的に図示していないが、１つ以上の追加のユーザ機器１０４および１つ以上の追加のコンテンツサーバ１０６が、データネットワーク１０８および／またはデータネットワーク１１０とインターフェースをとってもよい。
【００２０】
一実施形態では、ユーザ機器１０４は、デスクトップコンピュータ、ワークステーション、セットトップボックス、ワークステーション、スマートフォンまたはタブレットコンピュータのようなモバイルコンピューティングデバイス、スマートウォッチまたは拡張現実グラスのようなウェアラブルコンピューティングデバイスなどとしてもよい。
【００２１】
一実施形態では、コンテンツサーバ１０６が、例えば、ビデオおよび／またはオーディオファイルのようなメディアコンテンツおよび／またはデータファイルを、例えばユーザ機器１０４を含む他のネットワークノードに提供するサーバであってもよい。
【００２２】
２つのデータネットワーク１０８、１１０は、ユーザ機器１０４、トランスポートマネージャシステム１０２ａ、およびコンテンツサーバ１０６間で、データパケットの形態でデータを交換するためのパスとして使用されてもよい。例えば、ビデオまたはオーディオファイルのようなメディアコンテンツファイルがコンテンツサーバ１０６からユーザ機器１０４にダウンロードされているときに、メディアコンテンツファイルはコンテンツサーバ１０６からトランスポートマネージャシステム１０２ａを通して、かつデータネットワーク１０８および１１０を介してユーザ機器１０４にルーティングされてもよい。例えば、コンテンツサーバ１０６が、ユーザ機器１０４のネットワークアドレス（例えば、インターネットプロトコルＩＰアドレス）を宛先として含むヘッダを備えたデータパケットを送信することによって、データネットワーク１０８および１１０を介してユーザ機器１０４にメディアコンテンツファイルを送信してもよい。一実施形態では、２つのデータネットワーク１０８および１１０は、２つの別個のネットワークであってもよく、または単一の大きな機能的ネットワークの一部であってもよい。
【００２３】
いくつかの実施形態では、データネットワーク１０８が、トランスポートマネージャシステム１０２ａをユーザ機器１０４に通信的にリンクするアクセスネットワーク（ＡＮ）であってもよい。例えば、いくつかの場合では、データネットワーク１０８が、第２世代（２Ｇ）ネットワーク、第３世代（３Ｇ）ネットワーク、ロングタームエボリューション（ＬＴＥ）ネットワーク、第５世代（５Ｇ）ネットワークなどの移動セルラアクセスネットワークの１つであってもよい。いくつかの場合では、データネットワーク１０８は、無線アクセスネットワーク（ＲＡＮ）にリンクされるサブノードのコアコレクションを含み得る。いくつかの場合では、データネットワーク１０８、１１０、１１４の一部は、ローカルエリアネットワークまたはデータセンター、例えば、モバイルネットワークの境界に位置するＳＧｉ−ＬＡＮ（Serving  Gateway  Interface-Local  Area  Network）またはＧｉ−ＬＡＮ（Gateway  Interface-Local  Area  Network）であってもよい。
【００２４】
いくつかの実施形態では、コンテンツサーバ１０６をトランスポートマネージャシステム１０２ａにリンクするデータネットワーク１１０が、例示を目的として、インターネットとみなされ得るワイドエリアネットワーク（ＷＡＮ）であってもよい。
【００２５】
いくつかの実施形態では、コンテンツサーバ１０６とユーザ機器１０４との間のパケットデータトラフィックの少なくとも選択された部分が、トランスポートマネージャシステム１０２ａを通過するか、またはこれに沿っていると想定してもよい。トランスポートマネージャシステム１０２ａを通過するトラフィックを促進にするために、一実施形態では、トランスポートマネージャシステム１０２ａの物理的位置が、データネットワーク１０８（例えば、セルラまたはＷｉ−Ｆｉネットワークのようなアクセスネットワーク）をデータネットワーク１１０（例えば、ＷＡＮ）に接続する境界トラフィック集約ポイントにあってもよい。しかしながら、他の実施形態では、トランスポートマネージャシステム１０２ａが、他の場所に配置されてもよい。いくつかの実施形態では、トランスポートマネージャシステム１０２ａが、１つ以上のＡＮにサービスを提供するＣＤＮ（Content  Delivery  Network）の一部であってもよい。
【００２６】
図２Ａおよび図２Ｂに関して説明するように、トランスポートマネージャシステム１０２ａは、複数のデータフローを監視し、さらなる処理および／または管理のために１つ以上のデータフローを選択するフロー検出器を含む。
【００２７】
図１Ｂは、一実施形態による別の例示的なネットワーク環境１５０を示す。図示のように、ネットワーク環境１５０は、図１Ａのトランスポートマネージャシステム１０２ａと同様に、２つのネットワーク機器（例えば、ユーザ機器１０４およびコンテンツサーバ１０６）間のデータフローを管理するように設計されるトランスポートマネージャシステム１０２ｂを含む。図１Ｂのトランスポートマネージャシステム１０２ｂは、図１Ａのトランスポートマネージャシステム１０２ａに含まれるものと同様の構成要素を含む。しかしながら、図１Ａに示すトランスポートマネージャシステム１０２ａとは異なり、図１Ｂのトランスポートマネージャシステム１０２ｂは、フロー検出器を含まない。代わりに、フロー検出器は、フロー検出器システム１１２の一部である。
【００２８】
フロー検出器システム１１２は、ネットワークインターフェース１６０、１つ以上のプロセッサ１６２（例えば、中央処理装置（ＣＰＵ）、グラフィカル処理装置（ＧＰＵ）など）、記憶装置１６４（例えば、揮発性および／または不揮発性メモリ）、およびフロー検出器１６６を含む。フロー検出器１１２は、他の機能の中でも、図２Ａ〜２Ｄを参照して後述するように、データネットワーク１０８、１１０、および１１４を介してコンテンツサーバ１０６とユーザ機器１０４との間のデータトラフィックを監視および／またはサンプリングするように設計されてもよい。図１Ｂのフロー検出器システム１１２およびトランスポートマネージャシステム１０２ｂは、データネットワーク１１４を介してリンクされてもよく、これは、一部の実施形態では、ローカルエリアネットワークまたは、ルータ、スイッチ、ゲートウェイなどの直接相互接続されたハードウェアコレクションで構成される１つのネットワークまたは複数のネットワークのようなソフトウェア定義ネットワークであってもよい。いくつかの実施形態では、３つのデータネットワーク１０８、１１０、および１１４が、単一の機能的ネットワークであってもよい。
【００２９】
一実施形態では、候補フローを識別するために、データネットワーク１０８、１１０、および１１４を横断するデータフローを特徴付ける設定されたポリシーまたはテンプレートに基づいて、選択的パケットデータフローが、フロー検出器システム１１２によってさらなる処理のために識別され得る。例えば、フロー検出器システム１１２は、フロー検出器１６６を使用して、共有スループット容量を含むネットワークリソースの比較的大きく不釣り合いな使用により、比較的負担がかかるタイプのデータフローである候補フローとしてフローを分類するために、データフローの平均スループット、配信データ量、継続時間、および他の特性を測定し、エレファントフローが管理のための候補フローであると決定する。
【００３０】
データネットワーク１０８、１１０、および１１４を通って流れるパケットの特定のフロータイプ（例えば、エレファントフロー）は、例えば、ＩＰ送信元および宛先アドレス、トランスポート制御プロトコル（ＴＣＰ）またはＵＤＰ（User  Datagram  Protocol）送信元および宛先ポート、プロトコル（例えば、ＩＰｖ４）、フローラベル（例えば、ＩＰｖ６）、フラグ、拡張ヘッダフィールドなどの組み合わせを含み得る、パケットのコンポ―ネットパケットネットワークおよびトランスポートレイヤヘッダに基づいて決定され得る。すなわち、異なるパケットは、例えば、パケットのヘッダを処理して、パケットが、例えば、同一の送信元および宛先ポート、プロトコル、フローラベル、拡張ヘッダフィールドなどを有することを決定することによって、同一のデータフロー（または仮想フロー）に属するものとして識別され得る。データフロー（すなわち、パケットデータフロー）が識別されると、データフローが候補フローであるかどうかを決定するために、識別したデータフローの特性（例えば、搬送されるデータの量、継続時間など）が確認され得る。
【００３１】
いくつかの実施形態では、データフローは、１つ以上のフローの集合組み合わせのパケットをサンプリングし、規定されたサンプリング継続時間内で測定されたしきい値データレートを超えるフローを選択することによって、候補フローとして識別される。他の実施形態では、データフローは、各々がしきい値データレートを超える、連続するデータレートの数、またはデータレートのシーケンスを測定することによって規定され得る連続したアクティビティ継続時間しきい値を超えるフローをサンプリングおよび選択することによって、候補フローとして識別される。さらに他の実施形態では、データフローは、１つ以上のフローの集合組み合わせのパケットの一部のみをランダムにサンプリングし、集約トラフィック帯域幅の比較的不釣り合いな使用を示す相対的検出確率を超えるフローを選択することによって、候補フローとして識別される。さらに他の実施形態では、これらの方法は、他の類似の方法と組み合わせて、またはこれと共に使用され得る。
【００３２】
いくつかの場合では、ネットワークまたはトランスポート層のパケットペイロードが暗号化または難読化されるときに、ペイロードヘッダは、同じパケットデータフローに属するパケットを識別するために処理／検査されてもよい。他の場合では、パケットデータペイロードが読み取り可能である場合、ネットワークまたはトランスポートパケットペイロード内の情報が処理／検査されて、特定のデータフローまたはデータフローのタイプ（例えば、ストリーミングビデオ）に関連するパケットを識別するのをさらに助けてもよい。
【００３３】
いくつかの実施形態では、フロー検出器システム１１２が候補フローまたは負荷となり得る別のフローを識別すると、フロー検出器システム１１２が、識別されたデータフロー内のパケットが送信元（例えば、コンテンツサーバ１０６）と宛先（例えば、１０４）との間のエンドツーエンド経路においてトランスポートマネージャシステム１０２ｂを通過するように指向されるように、データネットワーク１１４内のパケットフォワーデイングロジックの再構成をトリガしてもよい。例えば、フロー検出器システム１１２が、候補フローの特性を、データネットワーク１１４を含む１つ以上のルータおよびスイッチに通知してもよい。従って、動的に設定されるフォワーディングまたはスイッチング規則は、例えばソフトウェア定義ネットワークの原理を使用して、パケットのエンドツーエンド経路内のトランスポートマネージャシステム１０２ｂを通過するように、候補フロー内の後続のパケットを指向するために使用され得る。しかしながら、他の実施形態では、トランスポートマネージャシステム１０２ｂが、デフォルトルールに従って、エンドツーエンド経路に含まれてもよく、フロー検出器システム１１２は、単に、１つ以上の分類テンプレートに一致する検出したフローをトランスポートマネージャシステム１０２ｂに通知し、検出したフローが処理され（例えば、検出されたフローの配信レートを低減するために、フローレートをペーシングする）、他のトラフィックフローが処理されずにフォワーディングされるようにする。
【００３４】
いくつかの場合では、フローは、一方向（例えば、上りリンクまたは下りリンクフローのいずれか）であってもよく、あるいは、接続エンドポイントの通信対に属する反対方向のフローと対にされることによって、双方向であってもよい（例えば、相互交換宛先および送信元ネットワークアドレス、相互交換ポートアドレス、共通フローラベルなどを備えたパケット）。いくつかの実施形態において、双方向フロー対の両方向は、トランスポートマネージャシステム１０２ｂに指向され得る。
【００３５】
いくつかの実施形態において、フロー検出器システム１１２およびトランスポートマネージャシステム１０２ｂは、図１Ｂに示すような別個の機能要素であってもよく、または図１Ａに示すように単一の機能ユニットに組み合わせられ得る。
【００３６】
図２Ａは、図１Ａのトランスポートマネージャシステム１０２ａを実装するために使用され得るトランスポートマネージャシステム２００ａを示す。トランスポートマネージャシステム２００ａは、バス２１０を介して一緒にリンクされるネットワークインターフェース２０２（例えば、ネットワークインターフェースカードまたは「ＮＩＣ」）、１つ以上のプロセッサ２０４、キュー２０６（例えば、バッファ）、フロー検出器１６６、および記憶装置２０８（すなわち、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、フラッシュメモリ、ディスクメモリなどを含む、揮発性および／または不揮発性メモリなどの非一時的コンピュータ読取可能媒体）を含む。記憶装置２０８は、どのパケットデータフローを管理すべきかを選択および／または決定するために、１つ以上のアプリケーション２１４（例えば、コンピュータ読取可能命令）および１つ以上のポリシー２１６を記憶してもよい。
【００３７】
フロー検出器１６６は、他の特徴の中でも、複数のデータフローを検出および監視し、さらに処理／管理するために候補フローとしてデータフローのうちの1つ以上を選択することによって候補フロー検出器として動作するように設計され得る。候補フローの選択は、記憶装置２０８に記憶されているか、または他のソースからのポリシー２１６のうちの１つ以上に基づくことができる。様々な実施形態において、フロー検出器は、カスタマイズされた回路（例えば、特定用途向け集積回路またはＡＳＩＣ）を使用して、またはカスタマイズされた回路と、１つ以上のプロセッサなどのプログラマブル回路によって実行されるソフトウェアとの組み合わせを使用することによって実装され得る。
【００３８】
図２Ａにさらに示されるように、トランスポートマネージャシステム２００ａは、他の機能の中でも、データフロー（すなわち、パケットデータフロー）の配信性能（例えば、配信スループットまたは他の配信パラメータの一部）を測定するように設計され得るフローマネージャ２１２ａをさらに含む。フローマネージャ２１２ａは、少なくとも部分的に、データフローの測定した配信性能に基づいてネットワークが輻輳しているかどうかを検出してもよく、データフローの配信レートを低下させるために、ネットワークの輻輳を検出することに応答して、宛先（例えば、ユーザ機器１０４）へのデータフローの配信を調整することによって、データフローをペーシングしてもよい。図２Ａに示す実施形態では、フローマネージャ２１２ａは、１つ以上のコンピュータ可読プログラミング命令（例えば、アプリケーション２１４）を実行する１つ以上のプロセッサ２０４（または他のプログラマブル回路）によって実装される。フローマネージャ２１２ａ、図２Ｂのフローマネージャ２１２ｂ、および図２Ｂのフロー検出器１６６は、各々、本明細書で説明するさまざまな機能を行うように設計されている論理ユニットである。
【００３９】
図２Ｂは、図１Ａのトランスポートマネージャシステム１０２ａを実装するために使用され得る別のトランスポートマネージャシステム２００ｂを示す。トランスポートマネージャシステム２００ｂは、図２Ａのトランスポートマネージャシステム２００ａと同じコンポーネントの一部を含む。しかしながら、図２Ａのフローマネージャ２１２ａとは異なり、図２Ｂに示されるフローマネージャ２１２ｂは、ソフトウェア（例えば、機械可読プログラミング命令）を実行する１つ以上のプロセッサ２０４を使用して実装されるのではなく、カスタマイズされた回路を使用して実装され得る。
【００４０】
さらに他の実施形態では、図２Ａのフローマネージャ２１２ａまたは図２Ｂのフローマネージャ２１２ｂは、カスタマイズされた回路と、プログラマブル回路によって（例えば、プロセッサ２０４によって）実行されるソフトウェアとの組み合わせを使用して実装されてもよい。
【００４１】
図２Ｃは、図１Ｂのトランスポートマネージャシステム１０２ｂを実装するために使用され得るトランスポートマネージャシステム２００ｃを示す。トランスポートマネージャシステム２００ｃは、図２Ａのトランスポートマネージャシステム２００ａと同じコンポーネントの多くを含むが、トランスポートマネージャシステム２００ａのフロー検出器１６６を含まない。
【００４２】
図２Ｄは、図１Ｂのトランスポートマネージャシステム１０２ｂを実装するために使用され得る別のトランスポートマネージャシステム２００ｄを示す。トランスポートマネージャシステム２００ｄは、図２Ｂのトランスポートマネージャシステム２００ｂと同じコンポーネントの多くを含むが、トランスポートマネージャシステム２００ｂのフロー検出器１６６を含まない。
【００４３】
実施形態において、フローマネージャ２１２ａまたはフローマネージャ２１２ｂのようなフローマネージャは、フロー検出器１６６と共に機能して、管理すべき候補フローを識別する候補フロー検出器として動作し得る。
【００４４】
図３は、一実施形態による、ユーザ機器１０４のブロック図である。いくつかの場合では、モバイルコンピューティングデバイスまたはデスクトップコンピュータであり得るユーザ機器１０４は、バス３１０を介して互いに結合されているネットワークインターフェース３０２（例えば、ＮＩＣ）、１つ以上のプロセッサ３０４、ユーザインターフェース３０６（例えば、ディスプレイ、スピーカ、キーボード、マウスなどを含む）、および記憶装置３０８（例えば、揮発性および／または不揮発性メモリ）を含み得る。記憶装置３０８は、１つ以上のアプリケーション３１４および１つ以上のファイル３１６（例えば、オーディオおよび／またはビデオファイルなどのメディアコンテンツファイル）を記憶し得る。いくつかの実施形態では、１つ以上のプロセッサ３０４は、図１Ａのトランスポートマネージャシステム１０２ａおよび／または図１Ｂのトランスポートマネージャシステム１０２ｂによって行われる様々な機能を容易にするように設計され得るエージェント３１２を実装する１つ以上のコンピュータ可読命令（例えば、アプリケーション３１４）を実行し得る。
【００４５】
実施形態は、データフローの１つ以上の特性、複数のデータフローの１つ以上の特性、時刻、デバイスのタイプ、デバイスのアイデンティティ、データフローのエンドポイントのアイデンティティなどのうちの１つ以上に適合する候補フロー検出しきい値を使用して、輻輳管理のための候補フローを決定することに関する。複数のデータフローは、データ通信ネットワークの全体または一部を通してのデータフロー、個々のデバイスへのまたはそのデバイスからのデータフロー、特定のタイプまたはモデルのデバイスへのまたはそのデバイスからのデータフロー、ネットワーク内のノードまたはノードグループを通過するデータフローなどであり得る。
【００４６】
図４は、一実施形態による、ビデオバッファサイズに基づく候補フロー検出しきい値計算ロジックのためのプロセス４００の意思決定ロジックを示す。プロセス４００において、候補フロー検出器は、ビデオであり得るフローを識別し、すでにビデオ再生装置に配信された可能性のあるバッファの量（時間）に基づいて候補フロー検出しきい値を調整する。いくつかの実施形態では、プロセス４００は、図２Ａおよび２Ｃのフローマネージャ２１２ａのようなフローマネージャによって行われ得る。他の実施形態では、プロセス４００は、図２Ｂおよび２Ｃのフローマネージャ２１２ｂのようなフローマネージャによって行われ得る。
【００４７】
Ｓ４０２では、プロセス４００は、データ転送セッションを監視することによって、データトランスポートネットワークを通過するデータフローを検出する。
【００４８】
Ｓ４０４では、プロセス４００は、各フローに対して、それがビデオフローであり得るかどうかを決定する。プロセス４００は、フローが、コンテンツの宛先識別（例えば、ビデオフローの送信元としてフローのエンドポイントを認識することによる）、トラフィックパターン認識、ＤＮＳスニフイング、およびディープパケット検査を含むが、これらに限定されない様々な方法を通して、ビデオフローであり得ると検出してもよい。ビデオとしてのデータ転送セッションの識別はまた、別のネットワークノードによって行われてもよく、その情報はプロセス４００に搬送される。実施形態では、ビデオフローを識別するいくつかの方法は、ビデオデータフローとして非ビデオデータフローを誤って識別することがあるが、誤って識別したデータフローは、依然として候補フローとして識別され、それに応じて管理されてもよい。
【００４９】
Ｓ４０４において、フローがビデオフローであると決定されるときに、プロセス４００は、Ｓ４０６に進み、そうでなければ、プロセス４００は終了する。
【００５０】
フローがビデオフローであると決定されると、Ｓ４０６において、ビデオフローのスループットが決定される。Ｓ４０８において、プロセス４００は、配信されているビデオ符号化レート（すなわち、ビデオビットレートであり、より一般的には、フローによって転送されるメディアの消費レート）を決定する。ビデオ符号化レートは、データ転送セッションのプロパティを観察することによって、またはデータ転送セッションの転送レートから推論することによって決定され得る。
【００５１】
ビデオ符号化レートが決定または推論されると、Ｓ４１０において、プロセス４００は、候補フロー検出しきい値を調整して、データ転送セッションのデータを受信する装置のバッファに特定の量のビデオ再生が配信された後に、データ転送セッションが候補フローとして識別されるようにする。
【００５２】
一例として、プロセス４００は、フローを使用して送信されるビデオのうちの３０秒がフローの宛先で配信されるときに、ビデオフローを候補フローとして分類しようとし得る。ビデオフローＡは、１．５Ｍｂｐｓのスループットを有することができ、そこから、プロセス４００は、ビデオフローＡが４８０ｐのビデオを配信していると推論し得る。４８０ｐのビデオは、１．３Ｍｂｐｓの符号化レートを有すると推定され得る。従って、プロセス４００は、ビデオフローＡの余分なスループット（１．５Ｍｂｐｓ提供対１．３Ｍｂｐｓ必要）は、２６秒で３０秒のビデオを提供する（＝３０×１．３／１．５）と推定してもよく、ビデオフローＡの継続時間が２６秒を超えると、ビデオフローＡを候補フローとみなし得る。すなわち、ビデオフローＡに対する候補フロー検出しきい値は、２６秒に設定される。
【００５３】
しかしながら、ビデオフローＢは、７Ｍｂｐｓのスループットを有することがあり、そこから、プロセス４００は、ビデオフローＡが１０８０ｐのビデオを配信していると推論することがある。１０８０ｐビデオは、５Ｍｂｐｓの符号化レートを有すると推定されることがある。従って、プロセス４００は、ビデオフローＢの余分なスループット（７Ｍｂｐｓ提供対５Ｍｂｐｓ必要）は、約２１．４秒で３０秒のビデオを提供する（＝３０×５／７）と推定してもよく、ビデオフローＡの継続時間が２１．４秒を超えると、ビデオフローＡは候補フローであるとみなし得る。
【００５４】
データフローが候補フローであると決定されると、データの輻輳を低減するために管理され得る。候補フローを管理することは、そのスループットを低減するために候補フローをペーシングすることを含み得る。一実施形態では、候補フローをペーシングすることは、上述の米国特許出願公開第２０１６／０２６１５１０号に記載されているように、候補フローのパケット間に待ち時間を挿入するか、パケットを遅延させるか、またはパケットをバッファすることによって行われ得る。一実施形態では、候補フローをペーシングすることは、パケットをドロップする、ＴＣＰ輻輳ウィンドウのサイズを調整させるために信号を送信ノードに送信するなどの他の輻輳制御メカニズムを使用することを含み得る。
【００５５】
これらの実施例では、候補検出しきい値は時間であるが、配信されたバイトまたは様々な実施形態による推定バッファ容量に基づいて調整されるバイトまたは他の値の組み合わせとすることもできる。
【００５６】
Ｓ４１２において、プロセス４００は、Ｓ４１０で計算された候補フロー検出しきい値を使用してデータ転送セッションを評価し、データ転送セッションがそれに応じて候補フローであるかどうかを決定する。データ転送セッションが候補フローであると決定された場合、ネットワーク輻輳の可能性を低減するために、上述のように管理され得る。
【００５７】
図５は、一実施形態による、ビデオバッファ充填レートに基づく候補フロー検出しきい値計算ロジックのためのプロセス５００の意思決定ロジックを示す。プロセス５００において、候補フロー検出器は、ビデオであるデータ転送セッションを識別し、または別のネットワークノードによってデータ転送セッションがビデオであると通知され、ビデオ再生装置でのビデオ再生バッファの成長レートに基づいて候補フロー検出しきい値を調整する。
【００５８】
実装においては、図５のステップＳ５０２〜Ｓ５０８は、図４のステップＳ４０２〜Ｓ４０８に対応し、その説明は簡潔にするため省略する。
【００５９】
ビデオフローとして識別されるデータフローの符号化レートが決定または推論された後、Ｓ５１０において、プロセス５００は候補フロー検出しきい値を調整して、バッファ成長レートが目標値を超えた後にデータ転送セッションが候補フローとして識別されるようにする。
【００６０】
一例として、ビデオフローＡが、１．５Ｍｂｐｓのスループットを有することがあり、そこから、プロセス４００は、ビデオフローＡが４８０ｐのビデオを配信していると推論し得る。４８０ｐのビデオは、１．３Ｍｂｐｓの符号化レートを有すると推定され得る。従って、プロセス５００は、ビデオフローＡのバッファ成長レートが０．２Ｍｂｐｓ（＝１．５Ｍｂｐｓ−１．３Ｍｂｐｓ）であると推定してもよい。
【００６１】
ビデオフローＢが、７Ｍｂｐｓのスループットを有することがあり、そこから、プロセス４００は、ビデオフローＡが１０８０ｐのビデオを配信していると推測し得る。１０８０ｐのビデオは、５Ｍｂｐｓの符号化レートを有すると推定され得る。従って、プロセス５００は、ビデオフローＡのバッファ成長レートが２Ｍｂｐｓ（＝１．５Ｍｂｐｓ−１．３Ｍｂｐｓ）であると推定し得る。
【００６２】
Ｓ５１２において、プロセス５００は、各ビデオフローに対する推定バッファ成長レートを候補フロー検出しきい値と比較して、各ビデオフローが候補フローであるかどうかを決定する。例えば、候補フロー検出しきい値が０．２５Ｍｂｐｓである場合、推定バッファ成長レートが０．２ＭｂｐｓのビデオフローＡは候補フローとして識別されず、推定バッファ成長レートが２ＭｂｐｓのビデオフローＢが候補フローとして識別される。別の実施形態では、バッファ成長レート目標値が各符号化レートに追加されて、各ビデオフローに対する候補フロー検出しきい値を決定し、各ビデオフローのスループットが、それぞれの候補フロー検出しきい値と比較されて、ビデオフローが候補フローであるかどうかを決定する。ビデオフローのスループットがその候補フロー検出しきい値を超えるときに、ビデオフローは候補フローであると決定され、その後、ネットワーク輻輳を低減するように管理され得る。
【００６３】
図６は、一実施形態による、候補フローの目標パーセンテージを達成するために、フロー検出器が候補フロー検出しきい値を調整するプロセス６００の意思決定ロジックを示す。プロセス６００において、フロー検出器は、フローのグループにわたって候補フローの目標パーセンテージを達成するために、候補フロー検出しきい値を調整する。図６において、Ｓ６０２から開始する２つの矢印は潜在的な並行性を示し、Ｓ６０４、Ｓ６０６、Ｓ６０８、およびＳ６１０が、プロセス６００の第１のサブプロセスを含み、Ｓ６１２およびＳ６１４が、プロセス６００の第２のサブプロセスを含み、第１および第２のサブプロセスは、実施形態に応じて並列または順番に行われ得る。
【００６４】
Ｓ６０２において、プロセス６００は、データ転送セッションを監視することによって、データ転送ネットワークの１つ以上のノードを通過するデータフローを検出する。
【００６５】
Ｓ６０４において、プロセス６００は、候補フローとして分類されたアクティブデータフローのパーセンテージを決定する。例えば、１０００個のデータフローが現在ネットワーク上で行われており、これらのデータフローのうちの３１個が候補フローであると決定された場合、Ｓ６０２において、プロセス６００は、全フローの３．１％が候補フローであったと決定する。
【００６６】
Ｓ６０６において、プロセス６００は、候補フローであるアクティブデータフローのパーセンテージを目標パーセンテージと比較する。候補フローであるアクティブデータフローのパーセンテージが目標パーセンテージより小さいときに、プロセス６００はＳ６０８に進む。候補フローであるアクティブデータフローのパーセンテージが目標パーセンテージより大きいときに、プロセス６００はＳ６１０に進む。
【００６７】
Ｓ６０８において、プロセス６００は、候補フローであると決定されるデータフローの数を増加させるために、候補フロー検出しきい値を減少させる。
【００６８】
Ｓ６１０において、プロセス６００は、候補フローであると決定されるデータフローの数を減少させるために、候補フロー検出しきい値を増加させる。
【００６９】
例えば、目標パーセンテージが３％であり、プロセス６００がＳ６０４においてデータフロー全体の３．１％が候補フローとして分類されていると決定するときに、Ｓ６０６において、プロセス６００はＳ６１０に進み、プロセス６００は、候補フロー検出しきい値（例えば、その値を増加させることによって）を変更し、より低いパーセンテージのデータフローが候補フローであると決定されるようにする。
【００７０】
しかしながら、目標パーセンテージが３％であり、Ｓ６０４において、プロセス６００がデータフロー全体の２．９％が候補フローとして分類されていると決定するときに、Ｓ６０６において、プロセス６００はＳ６０８に進み、プロセス６００は、候補フロー検出しきい値（例えば、その値を減少させることによって）を変更し、より高いパーセンテージのデータフローが候補フローであると決定されるようにする。
【００７１】
一実施形態では、候補フロー検出しきい値の調整は、決定したパーセンテージと目標パーセンテージとの間の差に比例し得る。例えば、目標パーセンテージが３％であり、候補フロー検出しきい値は３ＭＢであり、候補フローと決定される現在のフローの測定したパーセンテージが２．８％であるときに、候補フロー検出しきい値は２．８ＭＢに下方に調整され得る。
【００７２】
一実施形態では、候補フロー検出器は、データ転送ネットワーク全体に対して、単一のネットワークノード、宛先ノード、別の識別要因、またはそれらの組み合わせに対して、候補フローの目標パーセンテージを有することができる。一例として、ネットワークノードは、そのネットワークノードによってトランスポートされるすべてのデータセッションの３％の目標パーセントに従って設定されるエレファントフロー検出しきい値を有してもよい。
【００７３】
Ｓ６１２において、プロセス６００は、データ転送セッションに対して、候補フローを識別するために使用される対応するデータフローのプロパティが候補フロー検出しきい値を超えるかどうかを決定する。候補フロー検出しきい値を超えるときに、Ｓ６１２において、プロセス６００は、Ｓ６１４に進み、そうでなければ、プロセス６００は終了し得る。
【００７４】
Ｓ６１４において、プロセス６００は、データ転送セッションを候補フローとしてマークする。
【００７５】
図７は、一実施形態による、フローのグループにわたって目標パーセンタイル値を達成するために、フロー検出器が候補フロー検出しきい値を調整するプロセス７００の意思決定ロジックを示す。図７において、Ｓ７０２から開始する２つの矢印は潜在的な並行性を示し、Ｓ７０４がプロセス７００の第１のサブプロセスを含み、Ｓ７１２およびＳ７１４がプロセス７００の第２のサブプロセスを含み、第１および第２のサブプロセスは、実施形態に依存して並列または順番に実行され得る。図７のＳ７０２、Ｓ７１２、Ｓ７１４は、それぞれ図６のＳ６０２、Ｓ６１２、Ｓ６１４に対応し、Ｓ７０２、Ｓ７１２、Ｓ７１４の説明は簡略化のため省略する。
【００７６】
Ｓ７０４において、プロセス７００は、Ｓ７０２で監視しているデータ転送セッションの１つ以上の特性の分布に従って、候補フロー検出しきい値を周期的に更新する。プロセス７００は、特性の目標パーセンタイル内のフローが候補フローとみなされるように、候補フロー検出しきい値を設定する。
【００７７】
例えば、一実施形態において、候補フローを決定するために使用されているプロパティは、転送されるデータ量であってもよい。Ｓ７０４において、プロセス７００は、転送されるデータ量の分布を決定する。次いで、プロセス７００は、目標パーセンタイルに対応する転送されるデータ量を識別する。例えば、目標パーセンタイルが９０％であった場合、プロセス７００は、監視したデータ転送セッションの９０％が転送されるデータ量よりも少なく、監視されたデータ転送セッションの１０％が転送されるデータ量を少なくとも有する、転送されるデータ量の９０番目のパーセンタイルを決定する。次いで、プロセス７００は、候補検出しきい値を、決定した転送されるデータ量の９０番目のパーセンタイル量に設定する。
【００７８】
パーセンタイル値は、転送されるデータ量、データ転送の継続時間などのデータ転送セッション特性の１つ、複数、または組み合わせに基づくことができる。追加的に、プロセス７００は、データトランスポートネットワーク全体に渡って、単一のネットワークノードに対して、宛先ノードに対して、別のネットワークノードに対して、またはユーザ装置に対して行われ得る。
【００７９】
図８は、一実施形態によるプロセス８００の意思決定ロジックを示す。プロセス８００において、候補フロー検出器は、候補フロー検出器によって収集されるか、または別個のネットワークノードから報告された情報のいずれかを使用し、これを使用して、これらのフローに対する候補フロー検出しきい値を調整する。図８において、Ｓ８０２から開始する２つの矢印は、潜在的な並列性を示し、Ｓ８０４およびＳ８０６は、プロセス８００の第１のサブプロセスを含み、Ｓ８１２およびＳ８１４は、プロセス８００の第２のサブプロセスを含み、第１および第２の部分プロセスは実施形態に依存して並列または順序で行われ得る。図８のＳ８０２、Ｓ８１２およびＳ８１４は、それぞれ図６のＳ６０２、Ｓ６１２およびＳ６１４に対応し、Ｓ８０２、Ｓ８１２およびＳ８１４の説明は簡略化のため省略する。
【００８０】
Ｓ８０４において、プロセス８００は、別のネットワークノードからデータフローに関する情報を受信し、Ｓ８０２で監視したデータフローに関する情報を決定するか、またはその両方を行う。
【００８１】
Ｓ８０６において、プロセス８００は、Ｓ８０４で受信、計算、またはその両方がなされた情報を使用して、候補フロー検出しきい値を調整または計算する。候補フロー検出しきい値は、すべてのデータ転送セッションまたはデータ転送セッションのサブセットのいずれかに対して調整され得る。
【００８２】
一実施形態では、候補フロー検出器は、データ転送ネットワークを通過するデータ転送セッションを観察し、コンテンツ配信ノードまたはユーザ機器がデータ転送セッションを生成または要求する頻度、およびこれらのデータ転送セッションが候補フローとして分類される頻度に関する情報を内部的に計算するか、別のネットワークノードから受信する。
【００８３】
例示的な実施形態では、候補フロー検出器は、候補フローとして識別されるユーザ装置によって生成されたデータ転送セッションのパーセンテージを追跡し、候補フローデータ転送セッションのパーセンテージが設定値を超えた場合に、そのユーザ装置によって生成された後続のデータ転送セッションに対する候補フロー検出しきい値への変更をトリガしてもよい。
【００８４】
別の例示的な実施形態では、候補フロー検出器は、識別のユーザ機器タイプ（ユーザ機器タイプのメークおよび／またはモデルなど）に対して候補フローが検出されたレートを内部的に決定するか、または別のネットワークノードによって通知され、そのユーザ機器タイプについてのデータ転送セッションに対する候補フロー検出しきい値を適宜調整することができる。
【００８５】
図９は、一実施形態による、プロセス９００の意思決定ロジックを示す。プロセス９００では、候補フロー検出器が、別のネットワークノードから受信した情報に基づいて、候補フローしきい値を調整する。図９において、Ｓ９０２から開始する２つの矢印は、潜在的な並列性を示し、Ｓ９０４およびＳ９０６は、プロセス９００の第１のサブプロセスを含み、Ｓ９１２およびＳ９１４は、プロセス９００の第２のサブプロセスを含み、第１および第２のサブプロセスは実施形態に依存して並列または順序で実行され得る。図９のＳ９０２、Ｓ９１２およびＳ９１４は、それぞれ、図６のＳ６０２、Ｓ６１２およびＳ６１４に対応し、Ｓ９０２、Ｓ９１２およびＳ９１４の説明は、簡略化のため省略する。
【００８６】
Ｓ９０４において、プロセス９００は、ネットワークノードからメッセージを受信し、受信したメッセージ内の情報に応答して、すべてのデータ転送セッションまたはデータ転送セッションのサブセットのいずれかに対する候補フロー検出しきい値を調整してもよい。実施形態において、受信したメッセージ内の情報が、Ｓ９０２で行われた監視から導出された情報と組み合わされて、候補フロー検出閾値を調整してもよい。
【００８７】
例えば、データトランスポートネットワークは、ユーザ機器または他のネットワークノードからデータ転送セッションパフォーマンスメトリックを収集し、候補フロー検出しきい値を調整するためにその情報を候補フロー検出器に送信するネットワークノードを有することができる。大量のデータ量を転送する大きなデータ転送セッションを生成するネットワークノードまたはユーザ機器であって、これらのデータ転送セッションがネットワーク性能を劣化させないか、または他のデータ転送セッションに悪影響を与えない場合には、候補フロー検出器は、これらのタイプのデータ転送セッションに対する候補フロー検出しきい値を増加させることができる。一実施形態では、データ転送品質報告ネットワークノードは、任意のタイプの機器またはプロセスであってよく、任意のタイプのメトリックを収集し、候補フロー検出器に送信することができる。
【００８８】
一実施形態では、フローが候補フローであるかどうかを決定するために、データ転送セッションの連続した継続時間（すなわち、フローが中断することなく動作した時間）が使用されてもよい。
【００８９】
図１０は、一実施形態による、時刻に基づいて、候補フロー検出器が候補フロー検出しきい値を調整するプロセス１０００の意思決定ロジックを示す。図１０において、Ｓ１００２から開始する２つの矢印は潜在的な並行性を示し、Ｓ１００４およびＳ１００６はプロセス１０００の第１のサブプロセスを含み、Ｓ１０１２およびＳ１０１４はプロセス１０００の第２のサブプロセスを含み、第１および第２の部分プロセスは実施形態に依存して並列または順序で行われ得る。図１０のＳ１００２、Ｓ１０１２およびＳ１０１４は、それぞれ図６のＳ６０２、Ｓ６１２およびＳ６１４に対応し、Ｓ１００２、Ｓ１０１２、Ｓ１０１４の説明は簡略化のために省略する。
【００９０】
Ｓ１００４において、プロセス１０００は、時刻に基づいて、候補フロー検出しきい値を調整してもよい。例えば、典型的なネットワークノードでは、午前１時にはトラフィックがほとんど、または全くなく、午後９時頃にはトラフィックがピークになる。一実施形態では、候補フロー検出器は、夜中は候補フロー検出しきい値をより高い値に調整し、次いでピーク時間は候補フロー検出しきい値をより低くして、異なる時間でネットワークノード上に実在する異なるトラフィック条件に対処するように構成され得る。
【００９１】
一実施形態において、時刻は、時刻だけでなく、月または年の１日、曜日、休日であるかどうかなども含み得る。例えば、一実施形態では、候補フロー検出しきい値は、現在の時間が週末に対応するかどうか、または現在の時間がネットワークトラフィック（主要なスポーツイベントなど）の増加に関連するスケジュールされたイベントの継続時間に対応するかに応じて調整され得る。
【００９２】
本開示の実施形態が、コンピュータシステムまたは非一時的なコンピュータ可読媒体上で実装され得る。図１１は、プロセッサ１１２１、バス１１２２、メモリ１１２３、およびユーザインターフェース入力装置１１２６、ユーザインターフェース出力装置１１２７、記憶装置１１２８、およびネットワーク１１３０に結合されているネットワークインターフェース１１２９を含むコンピュータシステム１１２０を示す。プロセッサ１１２１が、メモリ１１２３および／または記憶装置１１２８に記憶された処理命令を実行する中央処理装置（ＣＰＵ）または半導体デバイスであってもよい。メモリ１１２３および記憶装置１１２８は、さまざまな形態の揮発性または不揮発性記憶媒体を含み得る。例えば、メモリＸ２３は、ＲＯＭ１１２４およびＲＡＭ１２５を含み得る。
【００９３】
従って、本開示の実施形態は、コンピュータ実装方法として、またはコンピュータ実行可能命令を記憶した非一時的コンピュータ可読媒体として実装されてもよい。一実施形態では、プロセッサによって実行されるときに、コンピュータ読取可能命令は、本開示の少なくとも１つの態様に従って方法を行ってもよい。
【００９４】
本技術の態様を態様の実施例に関して説明したが、本技術の実施形態は、これらの実施例によって限定されない。例えば、当業者は、アイドル状態のネットワーク容量を条件付きで使用することによるデータのダウンロードは、本技術の範囲または精神から逸脱することなく、様々な他のアルゴリズムおよびプロセスに従って実行されてもよいと認識するであろう。
【図１Ａ】
2021512567.tif 000003
【図１Ｂ】
2021512567.tif 000004
【図２Ａ】
2021512567.tif 000005
【図２Ｂ】
2021512567.tif 000006
【図２Ｃ】
2021512567.tif 000007
【図２Ｄ】
2021512567.tif 000008
【図３】
2021512567.tif 000009
【図４】
2021512567.tif 000010
【図５】
2021512567.tif 000011
【図６】
2021512567.tif 000012
【図７】
2021512567.tif 000013
【図８】
2021512567.tif 000014
【図９】
2021512567.tif 000015
【図１０】
2021512567.tif 000016
【図１１】
2021512567.tif 000017
【国際調査報告】
2021512567.tif 000018
2021512567.tif 000019