(57)【要約】  プロセスは、スプリットアーキテクチャネットワーク内のコントローラにより実行される。当該コントローラは、スプリットアーキテクチャネットワークにわたるトラフィックグループの輻輳をモニタリングし、トラフィックグループの輻輳を軽減するように遅延ベースデータレート制御を提供するためのプロセスを実行する。当該プロセスは、各トラフィックグループについての入口スイッチ及び出口スイッチを、各トラフィックグループのデータパケットについての遅延測定データをそれらが当該入口スイッチ及び出口スイッチに到来する際に収集するように構成することを含む。遅延測定データは、各トラフィックグループの入口スイッチ及び出口スイッチから受信される。いずれかのトラフィックグループについての最小データパケット遅延が定義される閾値を上回るかのチェックが行われる。抑制レートは、定義される閾値を上回ることに応じて、スプリットアーキテクチャネットワーク内の各トラフィックグループについて計算される。【選択図】図１
2015526036.tif 000002
【特許請求の範囲】
【請求項１】
スプリットアーキテクチャネットワーク内のコントローラにより実行される方法であって、前記コントローラは、前記スプリットアーキテクチャネットワークのデータプレーンを実装する複数のスイッチに連結され、前記コントローラは、前記スプリットアーキテクチャネットワークにわたるトラフィックグループの輻輳をモニタリングし、前記スプリットアーキテクチャネットワークにわたる前記トラフィックグループの輻輳を軽減するように遅延ベースデータレート制御を提供するための方法を実行し、各トラフィックグループは、同じやり方でハンドリングされるべきデータパケットのフローであり、各トラフィックグループの前記データパケットは、前記スプリットアーキテクチャネットワークについての前記複数のスイッチのうちの共有される入口スイッチ及び出口スイッチを有し、前記方法は、
各トラフィックグループについての入口スイッチ及び出口スイッチを、各トラフィックグループのデータパケットについての遅延測定データをそれらが当該入口スイッチ及び出口スイッチに到来する際に収集するように構成するステップ（１０１）と、
各トラフィックグループの前記入口スイッチ及び出口スイッチから前記遅延測定データを受信するステップ（１０３）と、
いずれかのトラフィックグループについての最小データパケット遅延が定義される閾値を上回るかをチェックするステップ（１０７）と、
前記定義される閾値を上回ることに応じて、前記スプリットアーキテクチャネットワーク内の各トラフィックグループについて抑制レートを計算するステップ（１０９）と、
を含む方法。
【請求項２】
前記入口スイッチでの各トラフィックグループについてのデータパケットの確率的破棄を統制するように、各トラフィックグループについての前記抑制レートを対応する当該トラフィックグループの前記入口スイッチへ配信するステップ（１１１）、をさらに含む、請求項１の方法。
【請求項３】
前記入口スイッチ及び出口スイッチを構成することは、
データパケットについて対応する遅延測定データをリンク付ける識別値を生成するために、前記データパケットのいずれかの部分を用いて識別値を生成するように、前記入口スイッチ及び出口スイッチを構成するステップ（１０１）、をさらに含む、請求項１の方法。
【請求項４】
前記入口スイッチ及び出口スイッチを構成することは、
テーブルの形式で前記コントローラへ周期的に遅延測定データ及び識別値を提供するように、前記入口スイッチ及び出口スイッチを構成するステップ（１０１）、をさらに含む、請求項１の方法。
【請求項５】
前記最小データパケット遅延は、関連付けられるトラフィックグループについてのデータパケット遅延のセットのうち最小のデータパケット遅延をとることにより計算され、
前記データパケット遅延のセットは、前回の最小データパケット遅延の計算以降に受信される遅延測定データについてのデータパケット遅延を含む、請求項１の方法。
【請求項６】
受信される前記遅延測定データの処理に応答して、追加的な遅延測定データを送信するように前記入口スイッチ又は前記出口スイッチにシグナリングすること、をさらに含む、請求項１の方法。
【請求項７】
定義される時間間隔で、一致する識別値を有する受信される遅延測定データを、前記一致する識別値に対応する各データパケットについて、前記スプリットアーキテクチャネットワークにわたるデータパケット遅延を判定するために比較すること（１０５）、をさらに含む、請求項１の方法。
【請求項８】
スプリットアーキテクチャネットワーク内のコントローラを実行するネットワークエレメントであって、前記コントローラは、前記スプリットアーキテクチャネットワークのデータプレーンを実装する複数のスイッチに連結され、前記コントローラは、前記スプリットアーキテクチャネットワークにわたる前記トラフィックグループの輻輳をモニタリングし、前記スプリットアーキテクチャネットワークにわたる前記トラフィックグループの輻輳を軽減するように遅延ベースデータレート制御を提供するための方法を実行し、各トラフィックグループは、同じやり方でハンドリングされるべきデータパケットのフローであり、各トラフィックグループの前記データパケットは、前記スプリットアーキテクチャネットワークについての前記複数のスイッチのうち共有される入口スイッチ及び出口スイッチを有し、前記ネットワークエレメントは、
前記スプリットアーキテクチャネットワーク上でデータトラフィックを受信するように構成される入口ポート（２０３）と、
前記スプリットアーキテクチャネットワーク上でデータトラフィックを送信するように構成される出口ポート（２０５）と、
前記入口ポート及び前記出口ポートに通信可能に連結され、トラフィック遅延モニタリングモジュール、スイッチ構成モジュール、及び抑制レート計算モジュールを実行するように構成される、ネットワークプロセッサ（２０７）と、
を含み、
前記スイッチ構成モジュールは、各トラフィックグループについての入口スイッチ及び出口スイッチを、各トラフィックグループのデータパケットについての遅延測定データをそれらが当該入口スイッチ及び出口スイッチに到来する際に収集するように構成するように構成され、
前記トラフィック遅延モニタリングモジュール（２０９）は、各トラフィックグループの前記入口スイッチ及び出口スイッチから前記遅延測定データを受信するように構成され、
前記抑制レート計算モジュール（２１３）は、いずれかのトラフィックグループについての最小データパケット遅延が定義される閾値を上回るかをチェックし、前記定義される閾値を上回ることに応じて、前記スプリットアーキテクチャネットワーク内の各トラフィックグループについて抑制レートを計算するように構成される、
むネットワークエレメント。
【請求項９】
前記抑制レート計算モジュールは、前記入口スイッチでの各トラフィックグループについてのデータパケットの確率的破棄を統制するように、各トラフィックグループについての前記抑制レートを対応する当該トラフィックグループの前記入口スイッチへ配信するようにさらに構成される、請求項８のネットワークエレメント。
【請求項１０】
前記スイッチ構成モジュールは、前記データパケットのいずれかの部分上に識別値を生成するように前記入口スイッチ及び出口スイッチを構成する、ようにさらに構成される、請求項８のネットワークエレメント。
【請求項１１】
前記スイッチ構成モジュールは、テーブルの形式で前記コントローラへ周期的に前記遅延測定データを提供するように前記入口スイッチ及び出口スイッチを構成する、ようにさらに構成される、請求項８のネットワークエレメント。
【請求項１２】
前記抑制レート計算モジュールは、関連付けられるトラフィックグループについてのデータパケット遅延のセットのうち最小のデータパケット遅延をとることにより前記最小データパケット遅延を計算する、ようにさらに構成され、
前記データパケット遅延のセットは、前の最小データパケット遅延の計算以降の受信される遅延測定データのうちのデータパケット遅延を含む、請求項８のネットワークエレメント。
【請求項１３】
前記トラフィック遅延モニタリングモジュールは、受信される前記遅延測定データの処理に応答して、追加的な遅延測定データを送信するように前記入口スイッチ又は前記出口スイッチにシグナリングする、ようにさらに構成される、請求項１２のネットワークエレメント。
【請求項１４】
前記トラフィック遅延モニタリングモジュールは、定義される時間間隔で、一致する識別値を有する受信される遅延測定データを、前記一致する識別値に対応する各データパケットについて、前記スプリットアーキテクチャネットワークにわたるデータパケット遅延を判定するために比較する、ように構成される、請求項８のネットワークエレメント。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願への相互参照］
本出願は、２０１２年７月１０日に提出された米国仮出願第６１／６６９，９４３号からの優先権を主張する。
【０００２】
本発明の実施形態は、スプリットアーキテクチャの分野に関し、より具体的には、スプリットアーキテクチャネットワークにわたるロードバランシングに関する。
【背景技術】
【０００３】
転送（データ）プレーンと制御プレーンの双方を同一のボックス（ネットワークエレメント）内に統合する従来のネットワークアーキテクチャとは異なり、スプリットアーキテクチャネットワークは、これら２つのプレーンを分断し、転送エレメント（スイッチ）とは異なる物理的ロケーションにあるであろうサーバ上で制御プレーンを実行する。ネットワークにおいてスプリットアーキテクチャを使用することにより、転送プレーンを実装するスイッチの単純化が可能となり、スイッチを監督する複数のコントローラにネットワークの知能部（intelligence）をシフトする。
【０００４】
従来のアーキテクチャにおいて転送プレーンと制御プレーンとを密接に連結することは、通常、制御プレーンを過度に複雑にし、ネットワーク管理を複雑化する結果となる。これが、新たなプロトコル及び技術開発に対する大きな負担と高い障壁とをもたらすことは知られている。回線速度、ポート密度、及びパフォーマンスの急速な改善にも関わらず、ネットワーク制御プレーンのメカニズムは、転送プレーンのメカニズムよりもはるかに遅いペースで発展してきた。
【０００５】
スプリットアーキテクチャのネットワークにおいて、コントローラは、スイッチから情報を収集し、適切な転送決定を計算してスイッチに配信する。コントローラ及びスイッチは、情報を通信し及び交換するためのプロトコルを使用する。そうしたプロトコルの一例がＯｐｅｎＦｌｏｗ（www.openflow.org参照）であり、ＯｐｅｎＦｌｏｗは、スイッチがコントローラと通信するためのオープンかつ標準的な方法を提供し、学術界及び産業界の双方から多大な興味を集めてきた。
【発明の概要】
【課題を解決するための手段】
【０００６】
プロセスは、スプリットアーキテクチャネットワーク内のコントローラにより実行される。当該コントローラは、スプリットアーキテクチャネットワークのデータプレーンを実装する複数のスイッチに連結され、当該コントローラは、スプリットアーキテクチャネットワークにわたるトラフィックグループの輻輳をモニタリングし、スプリットアーキテクチャネットワークにわたるトラフィックグループの輻輳を軽減するように遅延ベースデータレート制御を提供するためのプロセスを実行し、各トラフィックグループは、同じやり方でハンドリングされるべきデータパケットのフローであり、各トラフィックグループのデータパケットは、スプリットアーキテクチャネットワークについての複数のスイッチのうちの共有される入口スイッチ及び出口スイッチを有する。当該プロセスは、各トラフィックグループの入口スイッチ及び出口スイッチを、各トラフィックグループのデータパケットについての遅延測定データをそれらが当該入口スイッチ及び出口スイッチに到来する際に収集するように構成することを含む。遅延測定データは、各トラフィックグループの入口スイッチ及び出口スイッチから受信される。いずれかのトラフィックグループについての最小データパケット遅延が定義される閾値を上回るかのチェックが行われる。抑制レートは、定義される閾値を上回ることに応じて、スプリットアーキテクチャネットワーク内の各トラフィックグループについて計算される。
【０００７】
ネットワークエレメントは、スプリットアーキテクチャネットワーク内のコントローラを実行する。当該コントローラは、スプリットアーキテクチャネットワークのデータプレーンを実装する複数のスイッチに連結され、当該コントローラは、スプリットアーキテクチャネットワークにわたるトラフィックグループの輻輳をモニタリングし、スプリットアーキテクチャネットワークにわたるトラフィックグループの輻輳を軽減するように遅延ベースデータレート制御を提供するための方法を実行し、各トラフィックグループは、同じやり方でハンドリングされるべきデータパケットのフローであり、各トラフィックグループのデータパケットは、スプリットアーキテクチャネットワークについての複数のスイッチのうち共有される入口スイッチ及び出口スイッチを有する。当該ネットワークエレメントは、スプリットアーキテクチャネットワーク上でデータトラフィックを受信するように構成される入口ポートを含む。当該ネットワークエレメントは、また、スプリットアーキテクチャネットワーク上でデータトラフィックを送信するように構成される出口ポートも含む。当該ネットワークエレメント内のネットワークプロセッサは、入口ポート及び出口ポートに通信可能に連結され、トラフィック遅延モニタリングモジュール、スイッチ構成モジュール、及び抑制レート計算モジュールを実行するように構成される。スイッチ構成モジュールは、各トラフィックグループについての入口スイッチ及び出口スイッチを、各トラフィックグループのデータパケットについての遅延測定データをそれらが当該入口スイッチ及び出口スイッチに到来する際に収集するように構成するように構成される。トラフィック遅延モニタリングモジュールは、各トラフィックグループの入口スイッチ及び出口スイッチから遅延測定データを受信するように構成され、抑制レート計算モジュールは、いずれかのトラフィックグループについての最小データパケット遅延が定義される閾値を上回るかをチェックし、かつ定義される閾値を上回ることに応じて、スプリットアーキテクチャネットワーク内の各トラフィックグループについて抑制レートを計算するように構成される。
【図面の簡単な説明】
【０００８】
本発明は、本発明の実施形態を説明するために用いられる以下の説明及び添付図面を参照することにより、最もよく理解され得る。
【図１】トラフィックレート制御のためのプロセスの一実施形態のフローチャートである。
【図２】トラフィックレート制御を実装するネットワークエレメントにおけるコンポーネントの一実施形態の図である。
【図３】トラフィックレート制御を実装するスプリットアーキテクチャネットワークの一実施形態の図である。
【図４】トラフィックレート制御を実装するスプリットアーキテクチャネットワークの別の実施形態の図である。
【発明を実施するための形態】
【０００９】
以下の説明は、スプリットアーキテクチャネットワークにわたるトラフィックレート又は負荷を管理するための方法及び装置について説明する。以下の説明において、本発明のより徹底した理解を提供するために、ロジック実装、命令コード、オペランドを指定する手段、リソースの分割／共有／二重化の実装、システムコンポーネントの種類及び相互関係、及びロジックの分割／統合の選択といった、多くの具体的詳細が記載されている。しかしながら、本発明は、そのような具体的詳細なしに当業者により実施され得ることを理解されたい。他の例において、制御構造、ゲートレベル回路、完全なソフトウェア命令シーケンスは、本発明を曖昧にしないため詳細には示されない。当業者は、含まれる説明を用いて、過度の実験なしに適切な機能性を実装することができるであろう。
【００１０】
“一実施形態”、“実施形態”、“実施形態の例”等への明細書中の言及は、記載される当該実施形態が、特定の特徴、構造又は特性を含み得るが、全ての実施形態が、当該特徴、構造又は特性を必ずしも含まないかもしれないことを示す。さらに、そのような語句は必ずしも同一の実施形態に言及しない。さらに、特定の特徴、構造又は特性が、ある実施形態に関連して記載される場合、明示的に記載されるか否かに関わらず、他の実施形態に関連してそのような特徴、構造又は特性をもたらすのは当業者の知識の範囲内であると考えられる。
【００１１】
以下の説明及び特許請求の範囲において、“連結される（coupled）”及び“接続される（connected）”との用語が、それらの派生語と共に使用され得る。これらの用語は、互いに同義語として意図されないことを理解すべきである。“連結される”は、直接物理的又は電気的に互いに接触し、協働し、又は互いに相互作用する又はしない可能性がある、２つ以上のエレメントを示すために使用される。“接続される”は、互いに連結される２つ以上のエレメント間の通信の確立を示すために使用される。
【００１２】
理解を容易にするために、ある項目の任意の性質（例えば、本発明の所与の実装によりサポートされない特徴、所与の実装によりサポートされるが、ある状況では用いられ他では用いられない特徴）を表すために、図において破線が使用されている。
【００１３】
図に示された技術は、１つ以上の電子デバイス上に格納され、かつそこで実行されるコード及びデータを用いて実装され得る。そのような電子デバイスは、非一時的有形コンピュータ可読記憶媒体（例えば、磁気ディスク、光ディスク、ＲＯＭ（read  only  memory）、フラッシュメモリ装置、相変化メモリ）、及び一時的コンピュータ可読通信媒体（例えば、搬送波、赤外線信号、デジタル信号等といった、電気的、光学的、音響的、又は他の形式の伝搬信号）を用いてコード及びデータを格納し、並びに（内部的に及び／又はネットワーク上で他の電子デバイスと）通信する。さらに、そのような電子デバイスは、典型的には、記憶装置、１つ以上のユーザ入力／出力装置（例えば、キーボード、タッチスクリーン、及び／又はディスプレイ）、並びにネットワーク接続といった、１つ以上の他のコンポーネントと連結される１つ以上のプロセッサのセットを含む。プロセッサのセットと他のコンポーネントとの連結は、典型的には、１つ以上のバス又はブリッジ（バスコントローラとも呼ばれる）を通じて行われる。記憶装置及びネットワークトラフィックを伝搬する信号は、１つ以上の非一時的有形コンピュータ可読媒体及び一時的コンピュータ可読通信媒体をそれぞれ表す。したがって、所与の電子デバイス記憶装置の記憶装置は、典型的には、その電子デバイスの１つ以上のプロセッサのセット上で実行するためのコード及び／又はデータを格納する。当然ながら、本発明の実施形態の１つ以上の部分は、ソフトウェア、ファームウェア、及び／又はハードウェアの様々な組み合わせを用いて実装され得る。
【００１４】
［概説］
実施形態は、スプリットアーキテクチャネットワークにおける輻輳制御のためのプロセス及びシステムを提供する。当該方法及びシステムは、ＧＭＰＬＳ（generalized  multi-protocol  label  switching）ネットワークといった、集中型のコントローラを有する任意のネットワークにおいて実装され得る。スプリットアーキテクチャネットワーク設計は、ネットワークの制御コンポーネントと転送コンポーネントとの間に分離を導入する。そのようなアーキテクチャのユースケースの例には、キャリアグレードネットワーク、モバイルバックホールネットワーク、クラウドコンピューティングシステム、及びマルチレイヤ（例えば、インターネットプロトコル（ＩＰ）、イーサネット、光伝送ネットワーク（ＯＴＮ）及び波長分割多重（ＷＤＭ））サポートのアクセス／アグリゲーションドメインがあり、その全てはネットワーク基盤の主な構成要素（building  blocks）である。従って、これらのネットワークの適正な設計、管理、及びパフォーマンス最適化は、非常に重要である。
【００１５】
ＴＣＰ（Transmission  Control  Protocol）は、ネットワーク内のパケット破棄に従ってエンドホストの送信レートを調整することにより、輻輳制御のためにインターネットで広く使用されてきた。ＴＣＰのエンドツーエンド輻輳制御メカニズムは、ネットワーク内の未処理の確認応答されてないデータセグメントの数を減少させることにより、パケットロスに反応する。一方、ＴＣＰの輻輳制御及び従来のネットワークにおいて実装される類似の輻輳制御技術は、パフォーマンス及び有効性に限界がある。これらのパフォーマンスの問題は、主に、輻輳制御メカニズムの実装が分散型プロセスを用いて実行されることが理由である。言い換えると、ネットワーク全体の輻輳状態に基づいてではなく、輻輳しているリンク単位で決定が行われる。分散型の輻輳制御メカニズムでは、ネットワーク内の各ノード（即ち、ネットワークエレメント）は、パケット破棄（又はマーキング）について個々に決定し、それは、競合するフロー間で最適でない帯域幅を共有するという結果をもたらす恐れがある。
【００１６】
一実施形態では、トラフィックレート制御プロセス及びシステムは、集中型の方法でパケット抑制を実装する。このプロセスは、中央コントローラを有するスプリットアーキテクチャネットワークにおいて実装されることができる。コントローラは、パス遅延について受信した情報に基づいて、必要な抑制レートを計算する。この抑制レート情報は、インカミングトラフィックに適用されるために入口スイッチに送信され、それにより、局所的な情報及び条件よりもむしろエンドツーエンドの輻輳情報及び条件に基づく、集中型の輻輳制御をもたらす。
【００１７】
集中型のトラフィックレート制御プロセス及びシステムは、中央コントローラの存在を利用するため、集中型のトラフィックレート制御プロセス及びシステムは、既存の輻輳制御メカニズムを超えた利点を提供する。コントローラは、ネットワーク内の全ての（望ましい）パスにわたって、少なくとも一方向の遅延情報を受信する。このことが、ネットワーク内の輻輳状態のネットワーク全体のビューを提供し、これに基づいてより知的で効率的かつ公平な輻輳制御及びトラフィック流入の決定が行われ得る。また、この集中型モニタリングは、パケット抑制レートが、場合により、異なるトラフィックグループの優先度に基づくことを可能にする。即ち、優先度がより低いトラフィックグループのパケットは、ネットワークの入口においてより高い頻度で破棄されることとなる。
【００１８】
遅延ベースのレート制御は、境界スイッチからのみ統計値を収集する必要がある。したがって、ネットワーク内の全てのスイッチが、レート統計値を収集しかつコントローラにこれらの統計値を送信する能力を有するわけではないため、それは利用ベース（utilization-based）のアプローチを超えて特に有益である。ここで以下説明するプロセス及びシステムは、コントローラにより統制されるネットワークの端（即ち、ドメインの端）における境界スイッチ及び類似のネットワークエレメントのサポートのみを必要とする。それにより、実施形態は、（境界スイッチ間の）ネットワークにわたる遅延測定に基づく、スプリットアーキテクチャネットワークにおけるトラフィックレート制御及びパケット抑制を提供し、中央コントローラを有する任意のネットワークにおいて実装され得る。
【００１９】
実施形態は、各トラフィックグループのレート制御を、ネットワークにわたる当該グループにより経験される遅延を測定することにより実装する。遅延がある閾値を上回る場合、パスは輻輳していると識別される。コントローラは、適切な抑制レートを計算した後、その情報を入口スイッチに送信する。入口スイッチは、その後それに従って、輻輳しているトラフィックグループのパケット抑制を開始することができる。
【００２０】
トラフィックレート制御プロセス及びシステムは、論理的に集中型のコントローラにより制御される、多くのスイッチを含む任意のネットワーク上で動作する。コントローラは、全てのスイッチからトラフィック統計値を集め、この情報に基づいて、パケット破棄レートについて決定を行う。この決定は、輻輳時にパケットが（確率的に）破棄される、適切な入口スイッチに送信される。
【００２１】
一実施形態において、スプリットアーキテクチャネットワーク内のトラフィックは、各々割り当てられる重みを伴う異なるトラフィックグループにグループ化される。割り当てられる重みは、ネットワークが輻輳している場合にのみ効力を生じるように利用され得る。例えば、特定のパスが輻輳している場合に重み付けが適用され得る。その後、コントローラは、トラフィックグループの重みに従って、パスを共有する各トラフィックグループの適切なパケット破棄レートを計算する。
【００２２】
トラフィックグループの優先順位付けは、重み割り当てを通じて管理されることができ、優先度のレベルがいくつ存在するかについて制約はない。言い換えると、より多くの優先度のレベルを追加することは、計算、シグナリング又はキューイングの複雑さを増大しない（即ち、ネットワーク内の異なるトラフィックグループについて別個のキューイングが存在することはないため）。
【００２３】
トラフィックレート制御プロセス及びシステムは、モバイルバックホール／コアネットワークのために実装されることができ、それらは、トラフィックレート制御プロセス及びシステムにより提供されるサービス実装の品質から利益を得ることができる、重要なユースケースである。事業者は、個々のユーザについて保証されるサービス品質を強化するよりもむしろ、ユーザ（又はアプリケーション）をトラフィックグループにグループ化し、トラフィックグループに優先順位付けし、割り当てられる優先度レベルに従って輻輳の期間中各グループのトラフィックを扱うことができる。
【００２４】
上述しかつここで以下さらに述べるように、トラフィックグループは、輻輳制御メカニズムにより同等に扱われる必要があるパケットのセットである。例えば、トラフィックグループは、アプリケーション（ポート番号により識別される）、エンドホスト（発信元ＩＰアドレスにより識別される）、ウェブサーバ（宛て先ＩＰアドレスにより識別される）、集約されるユーザのセット（ＩＳＰに属する）、特定ＶＬＡＮのトラフィック、特定の入口−出口ノードのペア間のトラフィック、及び類似の種類のデータトラフィックとして定義されることができる。トラフィックグループ内の全てのパケットは、スプリットアーキテクチャネットワークへの同一の入口ポイント（入口スイッチ）、及びスプリットアーキテクチャネットワークからの同一の出口ポイント（出口スイッチ）を有しなければならない。さらに、トラフィックグループのパケットは、全てネットワークをわたる同一のパス（スイッチ及びリンクの同一のセット）を横断する必要がある。
【００２５】
異なるトラフィックグループは、それらに重みを割り当てることにより優先順位付けされ得る。例えば、重みが大きいほど、輻輳時のパケット破棄がより少ないことを示すのに用いられ得る。重みは、トラフィックグループに割り当てられるであろう任意の正の数であり得る。他の実施形態では、１つ以上のトラフィックグループが特定の重みを共有することができる一方、一実施形態では、異なるトラフィックグループは異なる重みを有する。任意の重みの粒度又はスプリットアーキテクチャネットワークにおいて割り当てられる可能性のある異なる重みの数が、トラフィックレート制御プロセス及びシステムによりサポートされ得る。一実施形態では、割り当てられる重みは、ネットワークが輻輳している場合に効果を生じる。スプリットアーキテクチャネットワークが輻輳している場合、ここで以下さらに説明するように、各トラフィックグループについて要求されるパケット破棄レートは、グループの重みに基づいて計算され得る。一実施形態では、２つのトラフィックグループがスプリットアーキテクチャネットワーク内で同一の輻輳しているリンクを横断する場合、２つのトラフィックグループの相対的な重みだけが重要となる。そうでない場合、２つのトラフィックグループは、同一のリソース、例えば特定リンク上の帯域幅のために競合することはないかもしれない。したがって、この例では、各トラフィックグループについての重み割り当ては、他のトラフィックグループから独立であり得る。
【００２６】
実施形態の一例において、遅延測定のメカニズムは、中央コントローラによりスプリットアーキテクチャネットワークにわたる一方向の遅延を測定する。遅延測定メカニズムは、いくつかのデータパケットをネットワーク内に注入しこれらのパケットにより経験される遅延を測定するというよりもむしろ、特定のトラフィックグループの“実際の”データパケットにより経験される遅延を測定するためのものである。遅延測定プロセスは、各々のトラフィックグループにより横断されるパスの入口スイッチ及び出口スイッチの双方における、トラフィックグループの複数のパケットの到来時間を記録することにより機能する。入口スイッチ及び出口スイッチの双方におけるタイマーが同期する場合、特定のトラフィックグループのデータパケットについての入口スイッチと出口スイッチとの間の遅延又は横断時間が、出口スイッチ及び入口スイッチにおける到来時間の時間差として計算され得る。
【００２７】
一方、問題は、入口スイッチ及び出口スイッチの双方において“同一の”パケットのセットの到来時間を記録することにある。この問題に対処するために、実施形態の一例では、以下のステップが取られる。まず、スプリットアーキテクチャネットワークを通じたパスの入口スイッチ及び出口スイッチの双方における、所望のトラフィックグループ（即ち、データフロー）に属するパケットのシーケンス（例えば、２００個のデータパケット）の到来時間が、入口スイッチ及び出口スイッチのそれぞれにおいて記録される。次に、（入口スイッチ及び出口スイッチの双方において）１パケット全体を固定数のビットに符号化するために、これらの選択されたデータパケットにハッシュ関数を適用する。ハッシュ値は、タイムスタンプテーブル（ＴＳＴ）又は類似のデータ構造にタイムスタンプと共に格納される。記録された時間情報は、その後、中央コントローラに送信される。コントローラにおいて、同じハッシュ値を有するデータパケットのタイムスタンプが比較される。パス遅延は、２つのタイムスタンプ間の差として計算される。タイムスタンプデータが受信されると、コントローラは、新たに到来するデータパケットのための別のタイムスタンプのセットが収集できるように、タイムスタンプテーブルがリセットされ得ることを入口スイッチ及び出口スイッチにシグナリングし得る。コントローラにより実装されるこのプロセスは、図１に関連して以下でさらに説明される。しかしながら、他の遅延測定メカニズムが利用され得ること、及び、この例は限定ではなく例示の目的で提供されることを、当業者は理解するであろう。遅延測定値を収集し及び相関させるために、任意の遅延測定メカニズムを利用することができ、遅延測定値は、いつ入口スイッチにおいてデータトラフィックを抑制すべきかを判定するために検査される。
【００２８】
図１は、スプリットアーキテクチャネットワークにおけるコントローラにより実行されるトラフィックレート制御のためのプロセスの一実施形態のフローチャートである。一実施形態において、プロセスは、コントローラが起動する時点で開始される。一方、コントローラの動作中いつでも、プロセスが開始されることができる。プロセスは、起動プロセスの一部として、管理者の指示で、又は類似の状況下で開始されることができる。プロセスは、限定ではなく例示の目的で提供され、当業者は、ここに記載される原理及びステップが、スプリットアーキテクチャネットワークにおけるトラフィックレート制御を達成するために異なる配置又は構造であり得ることを理解するであろう。同様に、プロセスは、トラフィックグループのセット及びこれらのトラフィックグループに関連するスプリットアーキテクチャネットワークにわたるパスのセットについて、単一のコントローラにより実装されるものとして記載されている。本提示は明確化のために利用され、当業者は、コントローラ機能が分散され得ること、並びに任意数のトラフィックグループ（又は類似のデータフローのグループ）、スイッチ及びパスなども当該プロセスによりサポートされ得ることを理解するであろう。
【００２９】
一実施形態では、コントローラは、各トラフィックグループについての入口スイッチ及び出口スイッチを、当該トラフィックグループのデータパケットについての測定データをそれらが各入口スイッチ及び出口スイッチに到来する際に、遅延させるように構成する（ブロック１０１）。この遅延測定データは、対応するデータパケットの識別に使用するための識別値と共に収集され得る。上述のように、各トラフィックグループは、単一の入口スイッチと、単一の出口スイッチと、入口スイッチ及び出口スイッチの間にスプリットアーキテクチャネットワークにわたる単一のパスとを有する。スプリットアーキテクチャネットワークを横断するデータパケットは、ただ１つのトラフィックグループに関連付けられてもよい。実施形態の一例では、各遅延測定についての識別値は、任意の種類のハッシュ関数により生成されることができる。当該ハッシュ関数は、所与のトラフィックグループについて、ハッシュ値を生成するために入口スイッチ及び出口スイッチの双方において同一のハッシュ関数が利用されるように、受信される各データパケットについてのハッシュ値を生成するために入口スイッチ及び出口スイッチにより採用され得る。識別値は、コントローラが、特定のパケットの横断時間又はパケット遅延を識別するために比較可能な遅延測定データがコントローラにおいて確実に受信されるようにすることを支援する。入口スイッチ及び出口スイッチは、いかなる数のデータパケット遅延測定結果（例えば、タイムスタンプ）を記録し、及びコントローラに報告するように構成されることもできる。各データパケット遅延測定結果は、記録及び報告されることができ、又はサンプリングが記録され得る。任意のサンプリング頻度又はパターンが採用され得る。一実施形態では、サンプリングパターンは、入口スイッチ及び出口スイッチの各々において一致するように構成され得る。他の実施形態では、サンプリングパターン及び頻度は、正確に一致しておらず、又は具体的に調整されていない。この場合、任意数の一致しない遅延測定結果がコントローラにおいて存在する可能性があり、それらは破棄され得る一方で、一致する遅延測定結果は利用される。
【００３０】
入口及び出口スイッチの構成後、コントローラは、各トラフィックグループの入口スイッチ及び出口スイッチからの遅延測定データ（及び、場合によっては、関連付けられる識別値）の受信を開始し得る（ブロック１０３）。識別値及び遅延測定データは、コントローラが入口スイッチ及び出口スイッチからの識別値を互いに、及び特定のトラフィックグループと照合し得るように、任意のフォーマットで任意のメタデータと共に提供される。これらの識別値及び遅延測定は、これらの報告において提供され得る識別値及び遅延測定結果の任意のレート及び任意の数又はフォーマットで報告され得る。一実施形態では、識別値及びタイムスタンプを提供するメッセージ又は報告は、定期的に、又はスケジューリングされる間隔で提供され得る。他の実施形態では、識別値及び遅延測定データは、入口スイッチ又は出口スイッチのバッファ、テーブル、又は類似のデータ構造が一杯（full）である、又は一杯に近づいている際に提供される。さらなる実施形態では、コントローラは、識別値及び遅延測定データをポーリングし又は類似する形で要求することができる。
【００３１】
いくつかの選択的な実施形態では、一致する識別値に対応する各データパケットについてスプリットアーキテクチャネットワークにわたるパケット遅延の判定を可能にするための一致する識別値を識別するために、定義される時間間隔で、受信される遅延測定データ及び識別値の比較が行われる（ブロック１０５）。パケット遅延は、一致する識別値（例えば、ハッシュ値）が存在する遅延測定（例えば、タイムスタンプ）間の差として計算され得る。より正確には、特定のトラフィックグループについての特定データパケットについてのパケット遅延を判定するために、出口スイッチからの遅延測定から入口スイッチの遅延測定を減算し、又は類似の比較が行われ得る。定義される時間間隔は、識別値及び遅延測定データの報告と同様、スケジュール、リソース利用、データ受信又は類似の要因に基づいて変化し得る。
【００３２】
その後、いずれかのトラフィックグループについての最小データパケット遅延が、定義される閾値を上回るか（又は下回るか）のチェックが行われ得る（ブロック１０７）。例えば、パスＰが輻輳しているか否かを判定するために、以下の基準が利用され得る：コントローラは、周期的に（周期Ｔで）測定を行う。各時間間隔Ｔの始めに、コントローラは、パスの遅延についての一連の測定を行う。これは、パスの両方のエンドポイントにおいてＮ個のパケットをサンプリングすること、及びそれらの遅延測定（例えば、タイムスタンプ）の差を見つけることによって行われる。１つの間隔を通して測定される最小の遅延が閾値Ｄを上回る場合、パスは輻輳していると宣言される。
Ｍｉｎ（パスＰ上で測定される遅延）＞Ｄ
【００３３】
パラメータＴ、Ｎ及びＤは全て、ネットワーク管理者又は事業者により適切に設定され得る、設定可能なパラメータである。これらのパラメータはそれぞれ、ネットワーク内の異なるパスについて異なった定義がされ得る。これらのパラメータ各々の設定は、輻輳検出方式の精度に影響する。これらのパラメータが、特定のスプリットアーキテクチャネットワークの効率的な動作のために、パラメータ選択のための任意のシステム又はプロセスを使用してネットワーク管理者により指定され得ることを、当業者は理解するであろう。明確化のため、正しい時間間隔、データパケットサンプルの数、及び遅延閾値が精選され、又はネットワーク管理者により、又は、ネットワーク内の所望のパス及びトラフィックグループの各々について、コントローラにおいてこれらのパラメータを自動的に選択するために特定のプロセスが実装される。
【００３４】
このように、いずれかの最小パケット遅延の検出は、抑制レートの再計算のトリガとなり得る。一方、最小パケット遅延が閾値としての差を上回らない場合、ネットワーク管理者又は類似のスケジューリングされた完了によりプロセスが終了されるまで、プロセスは継続し、閾値を上回るかを継続的に再チェックするために、遅延測定の次のセットの受信（ブロック１０３）を待つ。
【００３５】
閾値を上回った場合、プロセスは、スプリットアーキテクチャネットワーク内の各トラフィックグループについて抑制レートを計算する（ブロック１０９）。一実施形態では、重みＷｉを有するトラフィックグループｉのパケット破棄レート（Ｐｉ）は、関数Ｐｉ＝ｆ（Ｗｉ）として計算されるであろう。関数ｆについて、任意の分散又は抑制関数が利用され得る。任意の既知の分散又は抑制関数が、各トラフィックグループについて１つの抑制レートで、抑制レートのセットを生成するために各トラフィックグループについて定義される重みのセットと共に利用されるように構成され得ることを、当業者は理解するであろう。各抑制レート値は、相対レート又は絶対レートを示し、当該レートでデータパケットは担当する入口スイッチにより確率的に破棄され得る。プロセスは、全てのトラフィックグループについてその重みに関わらず同一の破棄レートを選択できることが可能である。一方、より大きい重みを有するトラフィックグループに、より高い優先度を提供するために、破棄レートは、Ｗｉに反比例する必要がある。即ち、Wiが小さいほどパケット破棄レートは同等又はより大きくなるはずである。
【００３６】
抑制レートの決定がコントローラにより行われた後、計算されたレートが対応する入口スイッチに送信される。入口スイッチでの各トラフィックグループについてのデータパケットの確率的破棄を統制するように、各トラフィックグループについての抑制レートは、対応する当該トラフィックグループの入口スイッチに配信される（ブロック１１１）。入口スイッチがこの情報を受信すると、当該グループの抑制レートに従って各トラフィックグループのパケットの（確率的）破棄を開始する。新たな抑制レートがコントローラから受信されるまで、入口スイッチは抑制レートの利用を継続することができる。他の実施形態では、抑制レートは、輻輳が緩和されると除去される一時的な設定であることができ、又は類似の構成が利用され得る。
【００３７】
一実施形態では、識別値及び遅延測定データの受信が受信された後、又は閾値のチェックが行われた後、コントローラは、識別値及び遅延測定データを提供した入口スイッチ及び出口スイッチに対し、識別値及び遅延測定データの格納に使用されたデータ構造をリセット又はクリアするようにシグナリングする。これにより、境界スイッチの各々に到来し続けるデータパケットについての遅延測定データ及び識別値を継続して収集するために、リソースが解放される。
【００３８】
図２は、トラフィックレート制御を実装するネットワークエレメント内のコンポーネントの一実施形態の図である。一実施形態では、コントローラ２０１は、ルータ又は類似のネットワークエレメントにより実装される。他の実施形態では、コントローラ２０１を実装するネットワークエレメントは、サーバ又は類似の計算装置である。コントローラ２０１は、ネットワークプロセッサ２０７といった汎用プロセス又は専用プロセッサによりネットワークエレメント上で実行されるソフトウェアとして実装され得る。コントローラ２０１は、ネットワークエレメント内の作業メモリ２１５又は類似の記憶空間に格納され、又は利用し得る。コントローラ２０１は、図示されていない、スプリットアーキテクチャにおけるスイッチの監督及び管理に関する多くのコンポーネント及び機能を含むことができる。明確化のため、コントローラ２０１のトラフィックレート制御機能を実装するコンポーネントを図示する。
【００３９】
一実施形態では、コントローラ２０１は、入口ポート２０３及び出口ポート２０５のセットを含み、又は当該セットと通信関係にある。これらのポートは、スプリットアーキテクチャネットワーク内のコントローラ２０１の制御下で、コントローラ２０１とスイッチとの間の通信を可能にする。ポート２０３、２０５は、スプリットアーキテクチャネットワークの他のスイッチとの、Ｌ１／Ｌ２及びより下位層のインカミング及びアウトゴーイング通信を処理することができる。より上位の処理は、その後、ネットワークプロセッサ２０７により実行され得る。入口ポート２０３及び出口ポート２０５は、識別値及び遅延測定データを報告するメッセージをスイッチから受信するとともに、トラフィックレート制御プロセスを実装するための構成メッセージ及び類似の通信を送信し得る。
【００４０】
ネットワークプロセッサ２０７は、トラフィック遅延モニタリングモジュール２０９、スイッチ構成モジュール２１１、抑制レート計算モジュール２１３及び類似のコンポーネントを含む、コンポーネントのセットを通じてここで上述した機能性を実装し得る。モジュールは例示のために提供されること、及び、コントローラ２０１内又は複数のコントローラにわたって分散される機能性の任意の分散及びグループ化を用いて機能が実装され得ることを、当業者は理解するであろう。
【００４１】
一実施形態では、トラフィック遅延モニタリングモジュール２０９は、接続されるスイッチから識別値及び／又は遅延測定データを受信し、メモリ２１５内の遅延測定テーブル２１７にそれらを格納する。遅延測定データ２１９及び識別値２２１データが維持され、かつこれらの値の間の関係が、特定のトラフィックグループ又は類似のデータフローのグループとの関係と共に維持されるように、任意の数、サイズ又は構成の遅延測定テーブルが使用され得る。トラフィック遅延モニタリングモジュール２０９はまた、定義される時間間隔で、一致する識別値を有するものを見つけるために、受信される遅延測定データを比較する。トラフィック遅延モニタリングモジュール２０９は、さらに、各々の遅延測定データを使用して、一致する識別値に対応する各データパケットについて、スプリットアーキテクチャネットワークにわたるデータパケット遅延を判定することができる。
【００４２】
一実施形態では、スイッチ構成モジュール２１１は、各トラフィックグループについて入口スイッチ及び出口スイッチを構成するために、ネットワークプロセッサにより実行される。構成は、各トラフィックグループのデータパケットについての遅延測定データを、対応するデータパケットについての識別値と共に、それらが当該入口スイッチ及び出口スイッチに到来する際に収集するように入口スイッチ及び出口スイッチを構成する。スイッチ構成モジュール２１１は、利用する遅延測定メカニズム、トラフィックグループ定義、遅延測定報告についての間隔、並びに入口及び出口スイッチで実装されるトラフィックレート制御プロセスの同様の特徴を指定する構成メッセージを生成し得る。スイッチ構成モジュール２１１は、また、抑制レート計算モジュール２１３から受信される開始抑制レート及び再計算された抑制レートを含む、各トラフィックグループについて利用される抑制レートを入口スイッチに通知するためのメッセージを生成し得る。
【００４３】
抑制レート計算モジュール２１３は、いずれかのトラフィックグループについての最小データパケット遅延が定義される閾値を上回るかをチェックするため、及び定義される閾値を上回ることに応じて、スプリットアーキテクチャネットワーク内の各トラフィックグループについて抑制レートを計算するために、ネットワークプロセッサ２０７により実行される。抑制レート計算モジュール２１３は、スプリットアーキテクチャネットワークにわたって負荷を分散するための任意の抑制機能を実装し得る。抑制レート計算モジュール２１３は、ネットワーク管理者により構成されるように、又は同様に各トラフィックグループについて予め定義されるように、当該機能に重みのセットを適用し得る。結果として生じる抑制レートのセットは、その後、各々の入口スイッチに配信されるためにスイッチ構成モジュール２１１に提供され得る。
【００４４】
メモリ２１５は、ＤＲＡＭ、スタティックメモリ、磁気ディスク、又は類似の記憶装置を含む、任意の種類、数の又は多様な記憶装置であり得る。メモリ２１５は、抑制レート制御プロセスを実装するために必要な、遅延測定テーブル２１７といったデータ構造とともに、ネットワークプロセッサ２０７により実行されるモジュールのためのコードも格納し得る。メモリ内に格納される他の情報及びデータ構造は、ハッシュ関数、トラフィックグループについて重み付けするデータ、トラフィックグループデータ、及び類似の情報を含み得る。
【００４５】
図３は、トラフィックレート制御を実装するスプリットアーキテクチャネットワークの一実施形態の図である。一実施形態では、スプリットアーキテクチャネットワーク３１３は、任意数のスイッチと、ネットワーク３１３にわたるデータトラフィックのフローを管理するコントローラとを含み得る。実施形態の例は、特定のトラフィックグループに関連付けられるであろう単一のパスを示すために図示される。これは、例示のために提供され、スプリットアーキテクチャネットワークは、ネットワークにわたる任意数のスイッチ及びパスを含み得る。
【００４６】
実施形態の例では、トラフィックグループは入口スイッチ３０１を有し、スプリットアーキテクチャネットワーク内の出口スイッチ３０３に到達する前にスイッチ３０５、３１３を横断する。例えば、スイッチ３０５、３１３の間で輻輳が発生したとしても、抑制レート制御プロセスは、これらの中間スイッチのいずれかがプロセスに関与することを必要としない。その代わりに、入口スイッチ３０１及び出口スイッチ３０３を含む境界スイッチが、遅延測定データを報告する。遅延測定データは、輻輳しているリンクにわたるデータトラフィックのレートを調整する入口ルータ３０１に、コントローラ２０１が抑制レートを送信することを可能にする。輻輳しているリンクを横断することができないはずのスプリットアーキテクチャ３１３内のトラフィック全体を減少させる一方、輻輳を低下させかつ輻輳しているリンクにわたるトラフィックを優先するために、輻輳しているリンクを横断する可能性のある他のトラフィックグループについて同様の抑制レートが計算される。
【００４７】
図４は、トラフィックレート制御を実装するスプリットアーキテクチャネットワークの別の実施形態の図である。この実施形態の例は、識別値の収集及び報告をハッシュ値の形式で、遅延測定データの収集及び報告を入口スイッチ３０１及び出口スイッチ３０３でのタイムスタンプの形式で示す。これが限定ではなく例示の目的で提供されることを、当業者は理解するであろう。任意の種類の遅延測定メカニズムが、抑制レートプロセスと共に利用され得る。この例では、スイッチ３０１、３０３の各々がタイムスタンプテーブル（ＴＳＴ）を維持する。スイッチ３０１、３０３の各々が、構成されるサンプリングのパターン又は頻度に従って、各々のＴＳＴのデータを収集する。
【００４８】
例では、スイッチ３０１、３０３の各々が、サンプリングされるべき４つのパケットのセット（この場合それらは同一であるが、これは必須ではない）を受信した。スイッチ３０１、３０３の各々で受信される各パケットは、対応するパケットのヘッダ又はいずれかの部分上に、計算されるハッシュ値Ｈ１−Ｈ４とともに、ＴＳＴに追加されるタイムスタンプＴ１−Ｔ４を有し、それにより各ハッシュ値は、本来一意である。ハッシュ値及びタイムスタンプタプルの各々は、したがってローカルのＴＳＴに記録される。
【００４９】
スイッチ３０１、３０３の各々は、定義される間隔で、ＴＳＴが一杯になるとき、コントローラ２０１からの要求に応じて、及び／又は同様の状況下において、コントローラ２０１にそれ自身のＴＳＴを供給し得る。コントローラ２０１によるＴＳＴの受信又は受信されたＴＳＴの使用後、コントローラは、各スイッチ３０１、３０３に‘リセットＴＳＴ’コマンドを送信する。リセットＴＳＴコマンドは、継続する進行中のトラフィックモニタリングプロセスにおける追加的なエントリのための場所を作るために、コントローラ２０１により処理されたＴＳＴのエントリを空にするようにスイッチ３０１、３０３に指示する。
【００５０】
ここで述べたように、命令は、ある動作を実行するように構成され、又は所定の機能性若しくは非一時的コンピュータ可読媒体内に実装されるメモリに格納されるソフトウェア命令を有するＡＳＩＣ（application  specific  integrated  circuits）といった特定のハードウェアの構成に言及してもよい。したがって、図に示された技術は、１つ以上の電子デバイス（例えば、エンドステーション、ネットワークエレメント）上に格納され、かつそこで実行されるコード及びデータを用いて実装され得る。そのような電子デバイスは、非一時的コンピュータ可読記憶媒体（例えば、磁気ディスク、光ディスク、ランダムアクセスメモリ、ＲＯＭ（read  only  memory）、フラッシュメモリ装置、相変化メモリ）及び一時的コンピュータ可読通信媒体（例えば、搬送波、赤外線信号、デジタル信号等といった電気的、光学的、音響的、若しくは他の形式の伝搬信号）、といったコンピュータ可読媒体を使用して、コード及びデータを格納し、並びに（内部的に及び／又はネットワーク上で他の電子デバイスと）通信する。さらに、そのような電子デバイスは、典型的には、１つ以上の記憶装置（非一時的機械可読記憶媒体）、ユーザ入力／出力装置（例えば、キーボード、タッチスクリーン、及び／又はディスプレイ）、並びにネットワーク接続といった、１つ以上の他のコンポーネントに連結される１つ以上のプロセッサのセットを含む。プロセッサのセットと他のコンポーネントとの連結は、典型的には、１つ以上のバス及びブリッジ（バスコントローラとも呼ばれる）を通じて行われる。よって、所与の電子デバイスの記憶装置は、典型的には、当該電子デバイスの１つ以上のプロセッサのセット上での実行のためのコード及び／又はデータを格納する。当然ながら、本発明の実施形態の１つ以上の部分は、ソフトウェア、ファームウェア、及び／又はハードウェアの様々な組み合わせを用いて実装され得る。
【００５１】
図面中のフロー図は、本発明のある実施形態により実行される動作の特定の順序を示しているが、そのような順序は、例示的なものである（例えば、代替の実施形態は、異なる順序で動作を実行し、ある動作を組み合わせ、ある動作を重複する等してもよい）ことを理解すべきである。
【００５２】
本発明をいくつかの実施形態に関して説明してきたが、本発明が上述の実施形態に限定されるものではなく、添付の特許請求の範囲の思想および範囲内で修正及び変形と共に実践されることができることを、当業者は認識するであろう。よって、本説明は、限定ではなく例示と捉えられるべきである。
【図１】
2015526036.tif 000003
【図２】
2015526036.tif 000004
【図３】
2015526036.tif 000005
【図４】
2015526036.tif 000006
【国際調査報告】
2015526036.tif 000007
2015526036.tif 000008
2015526036.tif 000009