(57)【特許請求の範囲】
【請求項１】
１つのスイッチの入口ポートと他のスイッチの出口ポートの間のリンクとの入口及び出口ポートを伴うパケットデータスイッチのネットワークに連結される中央コントローラにおいて実行される方法であって、前記方法は、前記リンク上のトラフィックを抑制するためのものであり、前記ネットワーク内の複数のユーザのパケットは、サービス品質を保証する単位である個々のユーザごとにではなく複数の前記ユーザをまたいで複数のパケットトラフィックグループへとグループ化され、各パケットトラフィックグループは、前記ネットワークの事業者により割り当てられる重みを有し、前記方法は、
前記ネットワークの輻輳しているリンクを識別することと、当該リンクは入口ポートから出口ポートへの複数のパケットトラフィックグループからのトラフィックを有することと、
前記パケットトラフィックグループの前記重み及び前記パケットトラフィックグループの現在トラフィックレートに基づいて、輻輳している前記リンクのパケットトラフィックグループについて抑制レートを決定することと、
決定した前記抑制レートを前記中央コントローラから前記ネットワークの入口スイッチへ送信することと、当該入口スイッチは、前記リンクの入口ポートへ連結されている出口ポートを有することと、
を含む方法。
【請求項２】
輻輳しているリンクを識別することは、前記ネットワークの報告スイッチから輻輳メッセージを受信することを含む、請求項１の方法。
【請求項３】
前記輻輳メッセージに応答して、前記入口スイッチにトラフィック統計値リクエストを送信することをさらに含む、請求項２の方法。
【請求項４】
前記入口スイッチからトラフィック統計値を受信することをさらに含み、
抑制レートを決定することは、受信した前記トラフィック統計値を使用して抑制レートを決定することを含む、
請求項３の方法。
【請求項５】
トラフィック統計値を受信することは、受信した前記輻輳メッセージに関連して、リンク上のパケットトラフィックグループのトラフィックレートについての値を受信することを含む、
請求項４の方法。
【請求項６】
前記中央コントローラにおいて複数のスイッチからトラフィック統計値を集めることをさらに含み、
輻輳しているリンクを識別することは、
集められた前記トラフィック統計値を使用して、リンクについての現在のパケットデータのトラフィック負荷を決定することと、
前記現在のパケットデータのトラフィック負荷を前記リンクについてのトラフィック帯域幅と比較することと、
を含む、請求項１の方法。
【請求項７】
現在の負荷を決定することは、前記ネットワークのスイッチからのパケットデータのトラフィック統計値をリクエストすることを含む、請求項６の方法。
【請求項８】
前記パケットをパケットトラフィックグループに分類することをさらに含む、請求項１の方法。
【請求項９】
抑制レートを決定することは、前記パケットトラフィックグループの現在トラフィックレートの、輻輳している前記リンクについてのトラフィック帯域幅に対する比を計算することを含む、請求項１の方法。
【請求項１０】
前記パケットトラフィックグループについての前記重みは、前記リンクについての前記トラフィック帯域幅のうちの、前記パケットトラフィックグループにより使用され得る部分を提供する、請求項９の方法。
【請求項１１】
前記抑制レートは、前記現在トラフィックレートの、許容されるトラフィックレートに対する前記比に比例する、請求項９の方法。
【請求項１２】
各パケットトラフィックグループは、共通のポート番号を有するパケット、共通の発信元ＩＰアドレスを有するパケット、共通の宛て先ＩＰアドレスを有するパケット、共通のユーザを有するパケットのうち、少なくとも１つを含む、請求項１の方法。
【請求項１３】
決定された前記抑制レートを前記入口スイッチにおいて受信することと、
前記抑制レートに基づいて前記パケットトラフィックグループの着信データパケットを破棄することと、
をさらに含む、請求項１の方法。
【請求項１４】
１つのスイッチの入口ポートと他のスイッチの出口ポートの間のリンクとの入口及び出口ポートを伴うパケットデータスイッチのネットワークに連結されるネットワークエレメントであって、前記ネットワークエレメントは、前記リンク上のトラフィックを抑制するための中央コントローラとして動作し、前記ネットワークエレメントは、ネットワークプロセッサと、送信ポートとを含み、前記ネットワーク内の複数のユーザのパケットは、サービス品質を保証する単位である個々のユーザごとにではなく複数の前記ユーザをまたいで複数のパケットトラフィックグループへとグループ化され、各パケットトラフィックグループは、前記ネットワークの事業者により割り当てられる重みを有し、
前記ネットワークプロセッサは、前記ネットワークの輻輳しているリンクを識別するため、及び、前記パケットトラフィックグループの前記重み及び前記パケットトラフィックグループの現在トラフィックレートに基づいて、輻輳している前記リンクのパケットトラフィックグループについて抑制レートを決定するためのものであり、
当該リンクは入口ポートから出口ポートへの複数のパケットトラフィックグループからのトラフィックを有し、
前記送信ポートは、前記ネットワークに連結されて、決定した前記抑制レートを前記ネットワークエレメントから前記リンクの入口スイッチへ送信するためのものであり、当該入口スイッチは、前記リンクの入口ポートへ連結されている出口ポートを有する、
ネットワークエレメント。
【請求項１５】
前記ネットワークの複数のスイッチからのトラフィック統計値を集めるための受信ポートと、
集められた前記トラフィック統計値を格納するためのメモリと、
をさらに含み、
前記ネットワークプロセッサは、集められた前記トラフィック統計値を使用してリンクについての現在のパケットデータのトラフィック負荷を決定し、前記現在のパケットデータのトラフィック負荷を前記リンクについてのトラフィック帯域幅と比較することにより、輻輳しているリンクを識別する、請求項１４のネットワークエレメント。
【請求項１６】
前記ネットワークプロセッサは、前記送信ポートを介して前記ネットワークのスイッチからのパケットデータのトラフィック統計値をリクエストすることにより現在の負荷を決定する、
請求項１５のネットワークエレメント。
【請求項１７】
前記ネットワークプロセッサは、前記パケットトラフィックグループの現在トラフィックレートの、輻輳している前記リンクについてのトラフィック帯域幅に対する比を計算することにより、抑制レートを決定する、請求項１５のネットワークエレメント。
【請求項１８】
パケットデータスイッチのネットワークに連結されるネットワークエレメントであって、
前記ネットワークエレメントは、１つのスイッチの入口ポートと他のスイッチの出口ポートの間で前記ネットワークのパケットデータスイッチと共にリンクを形成するための入口及び出口ポートを有し、前記ネットワーク内の複数のユーザのパケットは、サービス品質を保証する単位である個々のユーザごとにではなく複数の前記ユーザをまたいで複数のパケットトラフィックグループへとグループ化され、各パケットトラフィックグループは、前記ネットワークの事業者により割り当てられる重みを有し、
前記ネットワークエレメントは、中央コントローラからの命令に基づいて、前記ネットワークエレメントが接続されている前記リンク上のトラフィックを抑制するように動作し、
前記ネットワークエレメントは、
前記リンク上の現在のパケットデータのトラフィック負荷を前記リンクの前記パケットデータのトラフィック帯域幅と比較することにより、前記ネットワークの輻輳しているリンクを識別するためのプロセッサと、
前記ネットワークの中央コントローラに輻輳メッセージを送信するための送信ポートとを含み、
当該トラフィック負荷は、複数の前記パケットトラフィックグループからのトラフィックを含み、当該リンクは、前記ネットワークエレメントの入口ポートからの複数の前記パケットトラフィックグループからのトラフィックを有し、
前記ネットワークエレメントは、前記中央コントローラから抑制レートを受信するための受信ポートをさらに含み、
前記抑制レートは、前記パケットトラフィックグループの前記重み及び前記パケットトラフィックグループの現在トラフィックレートに基づく、輻輳している前記リンクのパケットトラフィックグループについてのものであり、
前記プロセッサは、前記抑制レートに基づいて前記パケットトラフィックグループの着信データパケットを破棄するためのものである、
ネットワークエレメント。
【請求項１９】
前記中央コントローラに送信するためのトラフィック統計値を収集するためのメモリをさらに含み、
前記トラフィック統計値は、パケットトラフィックグループにより識別されるリンクについてのパケットデータのトラフィック負荷を含む、
請求項１８のネットワークエレメント。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、パケットデータネットワークにおいて中央コントローラで輻輳を制御することに関し、より具体的には、パケットトラフィックグループ及び各トラフィックグループについての重みを用いてリンクを通じて輻輳を制御することに関する。
【背景技術】
【０００２】
ＴＣＰ（Transmission  Control  Protocol）は、数十年にわたってパケットデータネットワーキングのための信頼性のあるトランスポートレイヤプロトコルとして使用されてきた。特に、ＴＣＰは、ＴＣＰ／ＩＰのためにＩＰ（Internet  Protocol）と組み合わせて扱われ、年々継続的に改善されてきている。
【０００３】
インターネットにおいて、パケットのロスは、送信エラーを理由として生じ得るが、より一般的には輻輳を理由として生じる。ＴＣＰは、エンドツーエンドのパケットロスを扱う輻輳制御メカニズムを有し、ネットワーク内で許容される確認応答のなされていない未処理のデータセグメントの数を削減することにより対応する。
【０００４】
しかしながら、全てのインターネットアプリケーションがＴＣＰを使用するわけではなく、従って、輻輳制御の同じ概念に従うわけではない。ある音声／映像ストリーミングアプリケーションは、例えば、ＴＣＰではなくＵＤＰ（User  Datagram  Protocol）を使用する。ストリーミングは、現在のところ、インターネットオーディオプレーヤ、ＩＰテレフォニー、ビデオ会議及び類似のタイプのリアルタイムアプリケーションのために使用されている。それらアプリケーションは、通常、ＴＣＰ準拠の輻輳制御メカニズムと一体化しておらず、ＴＣＰフローが他のフローをいかに処理するかとは異なるように、競合するＴＣＰフローを処理する。典型的には、輻輳に遭遇すると、全ての争い合うＴＣＰフローは、輻輳を解消するための試みにおいて自身のデータレートを削減し、一方で非ＴＣＰフローは、自身のもとのレートで送信を続ける。これは、ＴＣＰトラフィックの欠乏、又は輻輳の破綻さえもたらし得る。ネットワーク内の利用可能な帯域幅は、その宛て先への到達前の輻輳を理由に破棄されるパケットにより、ほとんど排他的に占有される。輻輳制御は、動作が分散的なやり方で行われネットワーク全体の輻輳ステータスに関する限定的な知識に基づくために、ＴＣＰ及び他のメカニズムにおいてさらに限定される。
【発明の概要】
【課題を解決するための手段】
【０００５】
方法は、パケットデータネットワークのリンク内の輻輳を制御するためのネットワークエレメントにおいて実装される。輻輳しているリンクは識別され、輻輳しているリンクを横断する１以上のトラフィックグループについて抑制レートが決定される。中央コントローラは、リンクを経由するグループの重み及びグループの現在トラフィックレートを使用して抑制レートを決定する。抑制レートは、影響を受ける各グループについてのトラフィックを抑制するために、スイッチに送信される。
【０００６】
ユーザ（又はアプリケーション）は、トラフィックグループにグループ化されることができ、トラフィックグループには、重みを用いて優先順位が付けられる。各グループのトラフィックには、輻輳が発生している間、割り当てられた優先度の重みに従って異なる処理が行われ得る。
【０００７】
多くのスイッチを有するネットワークは、単一の集中型コントローラにより制御され得る。これは、ネットワークにおいて輻輳ステータスのネットワーク全体のビューを提供する。このビューを用いて、より知的で効果的な輻輳制御の決定が行われることができる。
【０００８】
一実施形態では、方法は、１つのスイッチの入口ポートと他のスイッチの出口ポートの間のリンクとの入口及び出口ポートを伴うパケットデータスイッチのネットワークに連結される中央コントローラエレメントにおいて実行される。中央コントローラは、ネットワークの輻輳しているリンクを識別し、当該リンクは入口ポートから出口ポートへの複数のパケットトラフィックグループからのトラフィックを有する。それは、グループの重み及びグループの現在トラフィックレートに基づいて、輻輳しているリンクのパケットトラフィックグループについて抑制レートを決定し、決定した抑制レートを中央コントローラからネットワークの入口スイッチへ送信し、当該入口スイッチは、リンクの入口ポートへ連結されている出口ポートを有する。
【０００９】
別の実施形態では、ネットワークエレメントは、１つのスイッチの入口ポートと他のスイッチの出口ポートの間のリンクとの入口及び出口ポートを伴うパケットデータスイッチのネットワークに連結され、当該ネットワークエレメントは、当該リンク上のトラフィックを抑制するための中央コントローラとして動作する。ネットワークコントローラは、ネットワークの輻輳しているリンクを識別するため、及び、グループの重み及びグループの現在トラフィックレートに基づいて、輻輳しているリンクのパケットトラフィックグループについて抑制レートを決定するためのネットワークプロセッサと、ネットワークに連結されて、決定した抑制レートをネットワークエレメントからリンクの入口スイッチへ送信するための送信ポートとを含み、当該リンクは入口ポートから出口ポートへの複数のパケットトラフィックグループからのトラフィックを有し、当該入口スイッチは、リンクの入口ポートへ連結されている出口ポートを有する。
【００１０】
別の実施形態では、ネットワークエレメントは、パケットデータスイッチのネットワークに連結され、１つのスイッチの入口ポートと他のスイッチの出口ポートの間でネットワークのパケットデータスイッチと共にリンクを形成するための入口及び出口ポートを有し、中央コントローラからの命令に基づいて、それが接続されているリンク上のトラフィックを抑制するように動作する。当該ネットワークエレメントは、また、前記リンク上の現在のパケットデータトラフィック負荷をリンクのパケットデータのトラフィック帯域幅と比較することにより、ネットワークの輻輳しているリンクを識別するためのプロセッサと、ネットワークの中央コントローラに輻輳メッセージを送信するための送信ポートとを含み、当該負荷は、複数のパケットトラフィックグループからのトラフィックを含み、当該リンクは、ネットワークエレメントの入口ポートからの複数のパケットトラフィックグループからのトラフィックを有する。
【図面の簡単な説明】
【００１１】
本発明は、添付図面の図において、限定ではなく例示として説明され、同様の参照符号は同様のエレメントを示す。本開示における“一の（"an"又は"one"）”実施形態に対する異なる参照符号は、必ずしも同一の実施形態というわけではなく、そのような参照符号は、少なくとも１つを意味することに留意すべきである。さらに、特定の特徴、構造、又は特性が、実施形態に関連して記載される場合、明示的に記載されているか否かに関わらず、それは他の実施形態にも適用され得る。
【００１２】
【図１】簡単なOpenFlowネットワークのための例としてのアーキテクチャの一実施形態の図である。
【図２】発明の実施形態に係る、中央コントローラ及び輻輳しているリンクを有するネットワークエリアの図である。
【図３】発明の実施形態に係る、パケットデータネットワークにおける輻輳制御のための処理フロー図である。
【図４】発明の実施形態に係る、ネットワーク内の輻輳しているリンクに関するスイッチ及びコントローラ間のメッセージングのための処理フロー図である。
【図５】発明の実施形態に係る、スプリットアーキテクチャネットワークの一例としての実施形態の図である。
【図６】発明の実施形態に係る、コントローラ又はスイッチを実装するネットワークエレメントの一実施形態の図の図である。
【発明を実施するための形態】
【００１３】
以下の説明では、多数の特定の詳細が記載されている。しかしながら、発明の実施形態は、これらの特定の詳細なしに実施され得ると理解される。他の例では、本説明の理解を曖昧にしないために、周知の回路、構造及び技術については詳細に示されていない。しかし、当然のことながら、発明はそのような特定の詳細なしに当業者によって実施され得る。当業者は、含まれる説明があれば、過度の実験を行うことなく適切な機能を実装することができるであろう。
【００１４】
フロー図の動作は、図の例となる実施形態を参照して説明されるであろう。しかしながら、フロー図の動作は、議論されるもの以外の発明の実施形態により実行されることができ、説明される実施形態は、フロー図を参照して議論されるものとは異なる動作を実行することができる。
【００１５】
図に示される技術は、１以上の電子装置（例えば、エンドステーション、ネットワークエレメント、サーバ又は同様の電子装置）上に格納及び実行されるコード及びデータを使用して実装されることができる。そのような電子装置は、非一時的機械可読又はコンピュータ可読記憶媒体（例えば、磁気ディスク、光ディスク、ＲＡＭ、ＲＯＭ、フラッシュメモリ装置、及び相変化メモリ）といった、非一時的機械可読又はコンピュータ可読媒体を使用して、コード及びデータを（内部的に及び／又はネットワークを介して他の電子装置と）格納及び通信する。さらに、そのような電子装置は、典型的には、１以上の記憶装置、ユーザ入力／出力装置（例えば、キーボード、タッチスクリーン、及び／又はディスプレイ）及びネットワーク接続といった、１以上の他のコンポーネントに連結される１以上のプロセッサ一式を含む。プロセッサ一式と他のコンポーネントとの連結は、典型的には、１以上のバス及びブリッジ（バスコントローラとも称する）を介してなされる。記憶装置は、１以上の非一時的機械可読記憶媒体又はコンピュータ可読記憶媒体、及び非一時的機械可読通信媒体又はコンピュータ可読通信媒体を表す。したがって、所与の電子装置の記憶装置は、典型的には、その電子装置の１以上のプロセッサ一式上で実行するためのコード及び／又はデータを格納する。当然のことながら、発明の実施形態の１以上の部分は、ソフトウェア、ファームウェア及び／又はハードウェアを使用して実装され得る。
【００１６】
ここで用いられるように、ネットワークエレメント（例えば、ルータ、スイッチ、ブリッジ、又は同様のネットワーキング装置）は、ネットワーク上の他の機器（例えば、他のネットワークエレメント、エンドステーション、又は同様のネットワーキング装置）を通信可能に相互接続するハードウェア及びソフトウェアを含む、１つのネットワーキング機器である。いくつかのネットワークエレメントは、複数のネットワーキング機能（例えば、ルーティング、ブリッジング、スイッチング、レイヤ２集約、セッションボーダコントロール、マルチキャスティング、及び／若しくは加入者管理）のためのサポートを提供し、並びに／又は複数のアプリケーションサービス（例えば、データ収集）のためのサポートを提供する、“複数のサービスネットワークエレメント”である。
【００１７】
単一のアクセス／集約ネットワークは、複数の従来のルータと共に作動する複数の個別のスプリットアーキテクチャで構成されることができる。ここで使用される、スプリットアーキテクチャエリアは、ドメインと類似の別個のルーティングを有するスプリットアーキテクチャネットワークの一部である。これは、ネットワークの堅牢性又は制御プレーンの拡張性のため、広域の地理的エリアにわたる管理（administration）を簡略化するために行われ得る。それぞれのスプリットアーキテクチャエリアは、別個のコントローラにより管理され得る。特定のアプリケーションに依存して、これらの個別のスプリットアーキテクチャエリアのコントローラは、スプリットアーキテクチャネットワークの適切な管理のためにいくつかの情報を共有し、交換する必要がある。
【００１８】
スプリットアーキテクチャネットワーク設計は、制御プレーン及び転送又はデータプレーンとも称される、ネットワークの制御コンポーネントと転送コンポーネントとの間に分離を導入する。スプリットアーキテクチャネットワークは、キャリアグレードネットワークのアクセス／集約ドメイン、モバイルバックホール、クラウドコンピューティング、及びマルチレイヤ（Ｌ３＆Ｌ２＆Ｌ１、光伝送ネットワーク（ＯＴＮ：optical  transport  network）、波長分割多重（ＷＤＭ：wavelength  division  multiplexing））サポートで利用されることができ、これらは全てネットワークアーキテクチャの構築ブロックの１つである。
【００１９】
転送（データ）プレーンと制御プレーンの両方を同じボックス内に統合する従来のネットワークアーキテクチャとは異なり、スプリットアーキテクチャはこれら２つの機能を切り離し、転送エレメント（スイッチ）とは異なる物理位置にある可能性があるサーバ（コントローラ）上で制御プレーンを実行する。スプリットアーキテクチャは、転送プラットフォームの機能及びハードウェアを簡略化し、ネットワークのインテリジェンス及び管理を、スイッチを監督するコントローラのセットに集中させる。従来のネットワークアーキテクチャにおける転送及び制御プレーンの密結合の結果として、通常、かなり複雑な制御プレーン及び手間のかかるネットワーク管理が生じている。これにより、新たなネットワーキングデバイスの製作にはコストが掛かり、これらのデバイスの潜在的な展開についての新たなプロトコル及び技術に参入するためには高い障壁が生じている。回線速度、ポート密度、及びパフォーマンスは急速に改善されているにもかかわらず、これらの特徴を管理するためのネットワーク制御プレーンメカニズムの進歩はかなり遅れている。
【００２０】
スプリットアーキテクチャネットワークにおいて、コントローラはスイッチから情報を収集し、適切な転送決定を計算して、これをスイッチに配信する。コントローラ及びスイッチは、制御プレーンプロトコルを使用して情報の通信及び交換を行う。このようなプロトコルの例がOpenFlowであり、コントローラと通信するためのオープンで標準的な方法をスイッチに提供する。図１は、スイッチとコントローラとの間のOpenFlowインタフェースの概要の図である。OpenFlowコントローラは、セキュアなチャネルを用いてOpenFlowスイッチと通信して、転送テーブル（フローテーブル）を構成する。
【００２１】
OpenFlowスイッチ内の転送テーブルには、パケットヘッダ内のフィールドについての合致を定義するルール、ルールによって定義される合致の検出時に実行されるべきアクション、及び、データプレーン内のデータパケットの処理に関する統計の収集からなる、エントリが存在する。着信データパケットが特定のルールに合致する場合、関連付けられたアクションがデータパケット上で実行される。ルールは、例えば、Ethernet  MACアドレス、ＩＰアドレス、ＩＰプロトコル、ＴＣＰ／ＵＤＰポート番号、及び着信ポート番号等の、プロトコルスタック内の数個のヘッダからのキーフィールドを含む。同様の特性を有するデータパケットのセットはフローとして管理され得る。フローは、データパケット内の任意数又は任意の組み合わせの使用可能なフィールドを使用して定義されることができる。不要なフィールドについてのワイルドカードを使用して、使用可能なフィールドのサブセットに関する合致に対しルールを制約することも可能である。
【００２２】
スプリットアーキテクチャの制御プレーンとデータプレーンとの分離により、ネットワーク制御ロジックを修正するタスクが容易になり、開発者が多様な新しいプロトコル及び管理アプリケーションを構築可能なプログラマチックインタフェースが提供される。このモデルでは、データプレーンエレメントのコストは削減される一方で、データプレーン及び制御プレーンが独立して発展及び拡縮（scale）することができる。
【００２３】
いくつかの実施形態では、輻輳制御及びトラフィック管理は、スプリットアーキテクチャネットワークにおいて提供される。ここに記載されるアプローチは、ＧＭＰＬＳ（Generalized  Multiprotocol  Label  Switching）ネットワークといった、集中型コントローラを伴う任意のネットワークに適用され得る。モバイルバックホール／コアネットワークは、記載される輻輳制御メカニズムが良好に適合するネットワークの一例である。現在行われているように、個々のユーザそれぞれについて保証されたサービスの質を強化するよりもむしろ、事業者は、ユーザ（又はアプリケーション）をトラフィックグループにグループ化し、トラフィックグループに優先順位を付け、輻輳が発生している間、割り当てられた優先レベルに従って各グループのトラフィックを処理することができる。
【００２４】
本発明の実施形態では、中央コントローラが使用される。多数のスイッチを有するネットワークは、単一の集中型コントローラにより制御され得る。一実施形態において、集中型コントローラは、全てのスイッチからトラフィック統計値を集め、リアルタイムで輻輳管理についての決定を行う。中央コントローラは、また、ネットワーク内の全てのリンクから特定の輻輳情報を受信し得る。これは、ネットワークにおける輻輳ステータスのネットワーク全体のビューを提供する。このビューを用いて、より知的で効果的な輻輳制御の決定を行うことができる。しかしながら、中央コントローラは、ネットワークのスイッチ若しくはルータと共同設置されてもよく、又はスイッチ、ルータ、若しくはその他のネットワークエレメントの一部であってもよい。
【００２５】
本発明は、単一のエリアネットワークの入口ノード及び出口ノードのペア間のトラフィックについての輻輳制御に限定されない。複数のパケットヘッダを共有する任意のパケットのセットが、記載される輻輳制御メカニズムで使用するためのトラフィックグループとして処理されるように分類されてよい。
【００２６】
記載される実施形態は、スイッチからのドロップ統計値を必要としない。替わりに他の統計値が使用され得る。結果的に、パケットドロップの記録をサポートしないスイッチをサポートすることができる。その代わりに、全ての計算は、パケット到着率に基づき得る。ネットワーク内のスイッチからの集約統計値もまた使用されてよく、その場合フローの集約はフロー毎の統計値を可能としない。
【００２７】
いくつかの実施形態では、輻輳は、トラフィックグループ毎に管理される。ネットワーク内のトラフィックは、異なるトラフィックグループにグループ化されることができ、各トラフィックグループは、割り当てられた重みを有する。本説明の目的のためのトラフィックグループは、輻輳制御メカニズムにより均等に処理されるパケットのセットである。グループの定義は、輻輳制御の様々な適用に適するように適合され得る。例えば、トラフィックグループは、アプリケーション（例えば、ポート番号により識別される）、エンドホスト（例えば、送信元ＩＰアドレスにより識別される）、ウェブサーバ（例えば、宛て先ＩＰアドレスにより識別される）、集約されたユーザのセット（例えば、ＩＳＰに属する）、特定のＶＬＡＮのトラフィック、特定の入口−出口ポートのペア間のトラフィック、等として定義されることができる。定義されたトラフィックのグループ化は、ルーティング及び運用管理機能といった、他の多くの目的のためにも使用され得る。
【００２８】
輻輳制御の目的のため、異なるトラフィックグループは、異なる重みを割り当てられる。重みが大きいほど輻輳の発生時にパケット破棄が少なくなる結果となるという意味で、割り当てられる重みは、異なるトラフィックグループに優先順位を付けることを可能にする。割り当てられる重みは、ネットワークが輻輳しているときに使用される。リンクが輻輳しているとき、そのリンクを使用する各トラフィックグループについて必要とされる抑制レートは、トラフィックグループの重みに基づいて計算され得る。
【００２９】
例として、リンクが輻輳している場合に、コントローラは、グループの重みに従って、各グループによって消費される帯域幅を調整し得る。このレート調整は、ネットワークの入口スイッチ若しくはエリアにおける確率的なパケット破棄（パケット抑制）又は他の種類のパケット抑制の使用を通じて行われ得る。例としての抑制戦略についての詳細は、以下でより詳細に記載される。
【００３０】
重みは任意の正数であり得る。異なるトラフィックグループが、異なる重みを有する必要はなく、重みの粒度又はネットワーク内で割り当てられる可能性のある異なる重みの数に対する制約はない。各グループは、異なる重みを有することができ、いくつかのグループは、同じ重みを有することができる。２つのトラフィックグループが両方ともネットワーク内の同一のリンクを横断する場合、２つのトラフィックグループの相対的な重みだけが問題となる。そうでなければ、２つのグループは決して同一のリンクのために争うことはないであろう。この場合、２つのトラフィックグループに対する重みの割り当ては、互いに独立であることができる。
【００３１】
トラフィックのグループ化及び重みの割り当ては、ネットワークの構成及びネットワーク上のトラフィックに依存して任意の様々な異なる方法で実行され得る。グループ及び重みの特定の選択は、ネットワーク管理に大いに柔軟性を提供する、任意の特定の実装に適するように適合され得る。
【００３２】
記載される輻輳制御メカニズムは、重み割り当てを用いてトラフィックグループに優先順位を付けるため、システムがサポート可能な異なる優先度のレベルの数において制約はない。ネットワーク内の異なるトラフィックグループについて別個のキューイングは必要ないため、計算、シグナリング、又はキューイングの複雑さに影響することなく、より多くの優先度のレベルが追加され得る。
【００３３】
スプリットアーキテクチャでは、スイッチの振る舞いは、フローという文脈において抽象化されてもよく、その場合、各フローがリンクをまたぐパケットのセットに対応する。スイッチによりハンドリング及び処理される必要がある各フロー（例えば、パケットのセット）について、フロー又はセット内でパケットが合致する多数のヘッダフィールドを特定するためにルールが定義され得る。各ルールに対応して、ルールに合致する着信パケットに適用されることとなるアクションのセットがある。ルールは、“気にしない（don’t  care）”ビットを有することも可能である。これはフローが集約されることを可能にする。
【００３４】
スイッチは、各ルールについてのヒットの数を追跡することもできる。一例では、ルールに対する合致があるごとにカウンタが更新される。スプリットアーキテクチャのスイッチにおけるカウンタは、パケット到着についての統計値が収集できるようにする。ネットワークの入口スイッチにおいて、これらの統計値は、各フローについて収集され得る。一方、入口後のネットワーク内では、フローが集約された後、各フローについての個々の統計値を収集することができない可能性がある。後述のような輻輳制御は、ネットワークの入口スイッチにおいてはトラフィックグループ毎の統計値を、ネットワーク内では集約統計値を使用する。
【００３５】
ネットワーク内の個々のスイッチにより収集される統計値は、中央コントローラによりスイッチから求められ（solicited）、又はリクエストされ得る。コントローラからのリクエストを受信すると、スイッチは、そのカウンタ情報をコントローラに送信し得る。あるいは、スイッチは、事前に設定されたレートで、又はトリガ‘イベント’発生時に、そのカウンタ統計値をコントローラに送信し得る。
【００３６】
図２は、スプリットアーキテクチャのレイアウトを使用するコンピュータネットワークの図であるが、発明はそのように限定されない。中央コントローラ２０３は、ＳＡ（スプリットアーキテクチャエリア）２０５内のスイッチから統計値を収集し、スイッチは、互いに連結され、及び他の外部のパケットソース及びシンク（不図示）に連結される。トラフィックフローは、中央コントローラにより課されるパケットルーティングに基づくスイッチングを経由して渡されるが、任意の他のルーティング制御が使用されてもよい。図示される例では、２つのトラフィックグループ、トラフィックグループ１  ２２１及びトラフィックグループ２  ２２３が存在する。これらは、外部スイッチからＳＡ２０５を経由してルーティングされるべき着信パケットのグループである。トラフィックグループ１についての入口スイッチ２０９は、２つ目のスイッチ２０７にグループのパケットを転送する。トラフィックグループ２についての入口スイッチ２１１も、そのパケットを同じ２つ目のスイッチ２０７に転送する。結合されたパケットフローは、その後、ＳＡの更なるスイッチ２１３に送信され、２つの他の出口スイッチ２１５、２１７のうち１つに転送するためにソートされる。この単純なパケットフロー及び単純なスイッチのネットワークは、例として提供されており、他の多くのネットワーク構成及びルーティングパスが可能である。
【００３７】
一例では、各スイッチは、そのリンク出力ポートの各々における負荷監視のケイパビリティを有する。これは、任意の様々な異なる方法、例えば、対応する出力キューの占有率の監視により、破棄されたパケット数の監視により、又は別の方法で行われ得る。スイッチは、その後これをリンクの輻輳閾値と比較し得る。負荷が閾値を超えている場合、スイッチは、コントローラに‘輻輳’メッセージを送信し得る。
【００３８】
図２は、また、コントローラとスイッチとの間で交換され得る一連のメッセージを示している。第１のメッセージ（１）は、“輻輳検出”メッセージであり、スイッチ２０７のうち１つからコントローラ２０３に送信される。メッセージを送信する、報告スイッチは、この場合３つの異なるリンク２２５、２２７、２２９に連結されている。この場合、輻輳メッセージは、２つのトラフィックグループを結合するリンク２２５を識別するため、輻輳は、２つのグループからのトラフィックの組み合わせである。
【００３９】
コントローラは、収集されたトラフィック統計値を参照して、もしあれば、どのアクションが取られるべきかを判定する。又は、図示された例のように、コントローラは、輻輳しているリンク２２５にパケットを提供する入口スイッチ２０９、２１１の各々にトラフィックレートのリクエスト（２）を送信する。入口スイッチは、ＳＡ内の２つのグループからトラフィックを受信するためにスイッチの端に位置している。コントローラは、それらのパスの一部として輻輳しているリンク２２５を有する、これらのトラフィックグループ（ｇ１，ｇ２）の実際の又は現在のレート（ｒ１，ｒ２）について入口スイッチに問い合わせる
【００４０】
２つの入口スイッチは、レートレスポンスメッセージ（３）を用いて、リクエストされたレートと共に応答する。コントローラは、この情報を収集し、既知の重み及び帯域幅の値を適用し、抑制レートを決定する。コントローラは、適切な抑制レート（ｔ１，ｔ２）の決定後、メッセージ（４）内の対応するレートを入口スイッチに返送する。入口スイッチは、その後、計算された抑制レートをトラフィックに適用する。これにより、トラフィックのうちのいくつかはネットワークエリアに入るのを停止し、全てのダウンストリームネットワークエレメント上の輻輳の量が減少する。
【００４１】
代替として、各スイッチは、収集されたトラフィック統計値と共にメッセージをコントローラに送信する。メッセージは、定期的、反復的、又は周期的に送信されてもよく、事前に設定されたレートで送信されてもよい。このように、コントローラは、トラフィックレートを計算し、それを輻輳閾値と比較する。コントローラは、替わりに、コントローラにより決定されるスケジュールに基づいて、データについてスイッチにポーリングを行ってもよい。コントローラは、有するトラフィックの量がより少ないスイッチよりも、よりアクティブなスイッチにより高い頻度でポーリングを行うことを選択してもよい。又は、いつスイッチにポーリングを行うべきかを判断するための任意の他の基準を使用してもよい。
【００４２】
輻輳メッセージが使用される場合、スイッチは、閾値に対して各出力キューについてのトラフィックレートを監視する。これにより、各スイッチは、それが輻輳しているリンクに連結されているか否かを独立して判定することが可能となる。統計値が集められる際、スイッチは、そのカウンタ統計値（ヒット数）のみをコントローラに送信する。コントローラは、任意のリンクが輻輳しているか否かを判定するために、レートを閾値と比較する。コントローラがより多くの機能を実行しなければならない一方、スイッチはより単純である。他方、コントローラにより必要とされない統計値をスイッチが送信する場合、シグナリングのオーバヘッドは増加する。例えば、コントローラは、トラフィック統計値を収集及び格納し、但し輻輳しているリンクに関する警告をもスイッチから受信するといったように、２つのアプローチが組み合されてもよい。
【００４３】
上述のように、スイッチ又はコントローラのいずれかが、リンクが輻輳しているか否かを判定する。これは、様々な異なる方法で判定され得る。いくつかの実施形態では、トラフィック統計値を閾値と比較することによりそれが判定される。例として、そのリンク上の負荷がリンクの総トラフィック帯域幅のある割合を上回る場合に、リンク上での輻輳が認定され得る。負荷は、異なる方法で、例えば、リンク上の全てのトラフィックグループの集約トラフィックレートとして表されることができる。これは、数学的には数式１として表されることができる。
【００４４】
【数１】
0006321628.tif 000002
【００４５】
数式１では、負荷は、リンク上の総トラフィックである。Σriは、リンク上の全てのグループの集約トラフィックレートであり、riは、グループｉについてのトラフィックレートである。Ｃｌは、リンクｌの帯域幅であり、０＜α≦１は、事業者により決定される設定可能な輻輳パラメータである。例えば、α＝０．７は、リンク帯域幅の７０％を上回る負荷は、輻輳しているとしてリンクを識別するということを意味する。
【００４６】
上の例では、スイッチ又はコントローラは、輻輳パラメータ及び各リンクについて許容される帯域幅のテーブル（α，Ｃ１）を有し、各リンク上の各グループについてのトラフィックレート（ｒ）を収集する。各トラフィックグループについてのトラフィックレートは、その後帯域幅と比較される負荷を決定するために合計される。
【００４７】
輻輳メッセージを受信するか、又はリンクが輻輳していると判定する場合。コントローラのスイッチは、輻輳しているリンク上にトラフィックを有するグループについての抑制レートを計算する。抑制レートは、多くの様々な方法で決定され得る。いくつかの実施形態では、トラフィックレートは、グループのパケットがネットワークの入口で破棄されるべきレートである。
【００４８】
トラフィックグループが存在する単一の輻輳しているリンクについて、リンクを使用する全てのトラフィックグループの重みに対するトラフィックグループの重みＷの比を計算し、及び許容されるリンク帯域幅の係数としてその比を適用することにより、トラフィックグループｉについて許容されるレート（ａｉ）が、決定され得る。
【００４９】
特定のグループについての許容されるレート（ai）のそのような決定は、数学的には数式２として表されることができる。
【００５０】
【数２】
0006321628.tif 000003
【００５１】
数式２において、ａｉは、トラフィックグループｉについての許容されるトラフィックレートである。αＣｌは、リンク上の集約された許容されるトラフィックレートである。Ｗｉは、トラフィックグループｉの重みであり、ΣＷｉは、リンクｌを共有するトラフィックグループ全ての重みの合計である。結果的に、各トラフィックグループについての許容されるレートは、グループの重みに比例する。総和ΣＷｉは、リンクｌを共有するトラフィックグループのみにわたって行われることに留意すべきである。
【００５２】
トラフィックグループｉについての許容されるレートａｉを使用して、実際の又は現在のグループのレートｒｉの許容されるレートａｉに対する比を計算することにより、抑制レートｔｉが決定され得る。現在のレートが、許容されるレートを下回る場合、抑制は適用されない。これは、リンクを使いすぎていないトラフィックグループを保護する役割を果たす。数式２において、許容されるレートは、同じリンクを使用する他のトラフィックグループに関連するトラフィックグループの重みに基づくため、重みは、トラフィックグループに優先順位を付けるための方法としての役割を果たす。この原理を用いると、サービスの質は、特定のトラフィックグループに割り当てられる重みに基づいて制御され得る。高い重みを有するトラフィックグループには、より低いレートを有するトラフィックグループよりもより高いトラフィックレートが許容されるであろう。
【００５３】
他方、現在トラフィックレートが許容されるトラフィックレートを上回る場合、抑制レートがトラフィックレートに適用され得る。抑制レートは、抑制を適用するスイッチの特質及び複雑さに依存して、様々な異なる方法で決定され表され得る。一例では、抑制レートは、単に、許容されるレートを現在レートにより割り算した比率である。１（unity）から引き算すると、レートが抑制されるべき０と１との間の比となるであろう。現在レートｒｉが許容されるレートａｉよりもはるかに大きい場合、抑制レートは、１又は１００％に近づくであろう。この抑制レート決定の例は、数学的には数式３として表されることができる。
【００５４】
【数３】
0006321628.tif 000004
【００５５】
数式３において、ドロップレートは、実際のレート（ri）と許容されるレート（ai）との差に基づいて計算される。実際のレートが許容されるレートを既に下回っている場合、抑制は必要とされない。そうでない場合、抑制レートは、許容されるレートを上回るレートの量と比例するであろう。
【００５６】
ネットワーク内に輻輳しているリンクが複数ある場合、トラフィックグループの抑制レートは、ネットワーク内のトラフィックグループにより横断される全ての輻輳しているリンクにわたって決定される、全ての抑制レートの最大値として決定され得る。言い換えると、輻輳している各リンクについて、トラフィックグループについての抑制レートが決定される。これらの抑制レートは比較され、最大のレートが選択される。
【００５７】
特定のトラフィックグループについて抑制レートが決定された後、計算された抑制レートは、対応する入口スイッチ、即ち、輻輳により影響を受けるトラフィックを有する入口スイッチに送信される。入口スイッチは、抑制レートについての情報を受信すると、グループの抑制レートに従って各トラフィックグループのパケットを破棄する。図２の例で示すように、輻輳しているリンク２２５を経由して２つの異なるトラフィックグループ２２１及び２２３が結合され、リンク２２５が２つの内部スイッチ２０７及び２１３の間にある間、抑制レートｔ１及びｔ２は、当該トラフィックグループがネットワークに入る入口スイッチ２０９及び２１１に送信される。
【００５８】
図３は、パケットデータネットワーク内の輻輳を制御するための処理フロー図である。３１１において、輻輳しているリンクが識別される。これは、任意の様々な異なる方法で行われ得る。一例では、現在トラフィックレートが、特定のリンクについての許容される帯域幅と比較される。トラフィックレートが許容される帯域幅を上回る場合、リンクは輻輳していると判定される。３１３において、輻輳判定がスイッチにより行われる場合、輻輳メッセージは、報告スイッチから中央コントローラにより受信される。あるいは、輻輳判定がコントローラで行われる場合、スイッチからの輻輳メッセージは必要ない。輻輳メッセージが使用される場合、輻輳メッセージは、輻輳していると判定されるリンクを黙示的又は明示的に識別し得る。
【００５９】
３１５で、輻輳メッセージが受信された場合、コントローラは、トラフィック統計値のリクエストを送信する。コントローラは、ネットワークのトポロジー又は異なるトラフィックグループのルーティングパスを知っているため、コントローラは、識別されるリンクにおいて輻輳しているトラフィックに対応する入口スイッチにリクエストを送信し得る。コントローラは、また、報告スイッチを含む他のスイッチからの統計値をリクエストし得る。対応する入口スイッチは、その後、トラフィック統計値を送信することによりリクエストに応答する。３１７において、コントローラは、スイッチから送信されたトラフィック統計値を受信する。コントローラは、代替的に、前のリクエストから既に取得された、収集された統計値を使用してもよい。
【００６０】
３１９において、コントローラは、統計値を使用して、輻輳しているリンクにおける現在のトラフィック負荷を許容されるトラフィック帯域幅と比較する。これは、リンクが輻輳していることをコントローラが検証することを可能にするだけでなく、抑制レートを決定するためにも用いられ得る。３２１において、コントローラは、パケットトラフィックグループについての抑制レートを決定する。輻輳メッセージが特定のリンクのみを識別する一方、統計値は、様々なトラフィックグループについてのトラフィックレートを識別できる。各グループについてのトラフィックレートの、各グループについての帯域幅に対する比が計算され得る。これにより、各グループについての抑制レートが結果として得られる。いくつかのグループは抑制されない可能性があり、その場合、抑制レートは、抑制をもたらさないレートである。数式３に従うと、その抑制レートは０である。あるいは、コントローラは、単に、抑制されないトラフィックグループについてのレートを送信しない可能性がある。任意の１つのリンクについて、ただ１つのトラフィックグループが存在する可能性がある一方で、多くのトラフィックグループが存在する可能性もある。コントローラは、重み、現在トラフィックレート及び許容される帯域幅に基づいて、各トラフィックグループについて異なる抑制レートを決定し得る。
【００６１】
３２２では、コントローラは、（１つ又は複数の）決定された抑制レートを適切なスイッチに送信する。上述の例では、抑制レートは、各トラフィックグループについての入口スイッチに送信される。抑制レートを受信する各スイッチにおいて、スイッチは、受信された抑制レートに基づいてそれぞれのトラフィックグループの着信データパケットを破棄する。
【００６２】
図４は、ネットワーク内の輻輳しているリンクに関する、スイッチとコントローラとの間のメッセージングのための処理フロー図である。４１１において、トラフィック統計値が収集される。統計値は、コントローラ若しくはスイッチ、又はその両方によって収集され得る。４１３において、統計値を使用して、輻輳しているリンクが識別される。４１５において、現在パケットデータのトラフィック負荷が、パケットデータのトラフィック帯域幅と比較される。この情報は、輻輳しているリンクを識別するために、又は後の抑制レート決定のために使用され得る。動作３１３〜３１９と同様に、この動作も任意である。
【００６３】
４１７において、輻輳メッセージが、輻輳しているリンクを検知したスイッチから中央コントローラに送信される。スイッチは、トランザクションのために報告スイッチになる。４１９において、報告スイッチは、中央コントローラからトラフィック統計値のリクエストを受信する。４２１において、リクエストに応答して、スイッチは、輻輳しているリンクについてのトラフィック統計値をコントローラに送信する。送信された統計値は、加工されていない統計値である可能性があり、又は、パケットデータのトラフィック負荷のリンク帯域幅に対する比といった、中間の計算を含む可能性がある。統計値は、輻輳しているリンクを横断するトラフィックレートグループの各々について独立であり得る。これにより、コントローラは、各グループについて異なる抑制レートを決定することが可能となる。
【００６４】
４２３において、報告スイッチは、中央コントローラから抑制レートを受信する。図２の例と比較して、この例では、報告スイッチも抑制を実行する。これは、報告スイッチがトラフィックグループについての入口スイッチであることが理由である可能性があり、又は、輻輳状態を決定するスイッチにおいてトラフィックが管理されるべきであるとコントローラが決定することが理由である可能性がある。４２５において、スイッチは、受信された抑制レートに基づいて、着信データパケットを破棄する。抑制レートは、全てのトラフィックについてのものであってもよく、又は、各トラフィックグループについて異なる抑制レートが存在してもよい。上述の例では、報告スイッチは、それが入口スイッチとしての役割を果たす各トラフィックグループについての抑制レートを受信する。一方、代替的な実施形態では、スイッチは、そのリンクについての輻輳メッセージを送信した当該リンク上の任意のトラフィックグループについての抑制レートを受信する。スイッチは、輻輳しているリンク上で送信される全てのパケットを制御するため、輻輳しているリンク上のトラフィックを抑制することができる。中央コントローラは、様々なネットワークアーキテクチャ及び管理要因に基づいて、抑制レートを受信するためのスイッチを選択し得る。
【００６５】
図５は、スプリットアーキテクチャネットワークの一例としての実施形態の図である。例としてのスプリットアーキテクチャネットワークは、別個のスプリットアーキテクチャエリア（ＳＡ）５０１Ａ〜Ｃに分割される。各エリア５０１Ａ〜Ｃ（エリアI、エリアII、エリアIIIとも表示される）は、スイッチのセットを含む。同一エリア内の全てのスイッチは、単一の論理コントローラ５０３Ａ〜Ｃにより制御される。一実施形態では、ＳＡは、第１のコントローラ、及び冗長性の目的のためのバックアップコントローラのセットとして実装され得る。単一の物理コントローラが各ＳＡについて示されているが、各ＳＡについての単一の論理コントローラを作り上げるために複数の物理コンポーネントが存在してもよい。各ＳＡ内のネットワークエレメントは、典型的には、単一の論理コントローラの制御下にある。
【００６６】
各ＳＡ内のスイッチは、任意の種類のルータ、スイッチ、又は、スプリットアーキテクチャネットワークのデータプレーンを実装することが可能な類似のネットワーキングデバイスであり得る。スイッチは、境界スプリットアーキテクチャスイッチと、内部スプリットアーキテクチャスイッチとを含み得る。境界スプリットアーキテクチャスイッチは、異なるＳＡ内の別のスイッチに接続するインタフェースを有するスプリットアーキテクチャ機能をサポートする。境界スプリットアーキテクチャスイッチは、典型的に、単一のＳＡのコントローラにより制御される。他の実施形態では、境界スプリットアーキテクチャスイッチは、複数のＳＡ内にあることができ、各々のＳＡコントローラにより制御されるインタフェースを有する。内部スプリットアーキテクチャスイッチは、スプリットアーキテクチャプロトコルをサポートする。それは、そのエリア内のコントローラにより制御される。その近隣は全て同一のＳＡ内にある。
【００６７】
スイッチは、リンクのセット上で互いに通信関係にある。これらのリンクは、有線又は無線通信媒体及びそれらの任意の組み合わせを含む、任意の種類の通信媒体であり得る。リンクは、内部リンク又は外部リンクのいずれかとして分類され得る。内部リンクは、ＳＡ内の２つのスイッチ間のリンクであり、これらのスイッチは、同一のＳＡに属する、境界スイッチ又は内部ＳＡスイッチのいずれかであり得る。外部リンクは、異なるＳＡに属する２つのＳＡスイッチ間のリンクである。この場合、ＳＡスイッチの両方が境界スイッチである。図示された例では、エリアIについての境界スイッチは、Ａ、Ｂ、及びＣと表示されている。これらの３つのスイッチは、エリアIに入る、又はエリアIから出るデータトラフィックについての入口及び出口スイッチでもある。
【００６８】
図示されたように、ＳＡ１についての中央コントローラ５０３Ｂは、統計値のテーブル５０５をメンテナンスする。このテーブルは、ＳＡによりサービスされるトラフィックグループ各々についての、レートｒ、アロケーションａ、及び重みｗを含む。テーブルは、特定の実施形態に依存した任意の他の好適な手段により、リクエストに対する報告、応答を用いてメンテナンスされる。テーブルはその後、コントローラにおいてメモリ内に格納される。
【００６９】
図６は、コントローラ又はスイッチを実装するネットワークエレメントの一実施形態の図である。一実施形態では、コントローラ６０１は、ルータ、スイッチ又は類似のネットワーキングデバイスである。コントローラ６０１は、入口モジュール又はポート６０３、出口モジュール又はポート６０５、ネットワークプロセッサ６０７、及び記憶装置６１１を含み得る。入口モジュール６０３は、物理レベル及びリンクレベルにおける着信データトラフィックをハンドリングし、更なる処理のためにこのデータをネットワークプロセッサに提供する。この入口モジュールは、データトラフィックのための、並びにコマンド及び制御情報のための受信ポートとしての役割を果たす。任意のリクエスト、レスポンス又はその他のメッセージは、この受信ポートで受信される。同様に、出口モジュール６０５は、物理レベル又はリンクレベルにおける発信データトラフィックをハンドリングし、それを接続されたネットワーク上で他のデバイスに送信する。出口モジュールは、データのための、並びにコマンド及び制御情報のための送信ポートとしての役割を果たす。任意の発信リクエスト、メッセージ又はレスポンスは、この送信ポートを介して送信される。これら２つのモジュールは、ネットワーク上の他のデバイスとの通信を可能にするために共に機能する。ネットワークエレメント６０１は、別個の入口及び出口モジュール又はポートを有するものとして示されているが、これら２つのポートは、単一の物理コネクタを介して連結されてもよい。
【００７０】
ネットワークプロセッサ６０７は、ネットワークのデータプレーンを統制するネットワークの制御プレーンに関連する各々の機能を含む、ネットワークエレメントの機能を実行する、処理デバイス又は処理デバイスのセットである。ネットワークプロセッサ６０７は、近隣探索モジュール６１３、輻輳制御モジュール６１５、輻輳制御モジュール６１７、リンクステート管理モジュール６１９、及びOpenFlowコントローラ６２１といった制御モジュールを含むモジュールのセットを実行することができる。
【００７１】
さらに、ネットワークプロセッサ６０７は、記憶装置６１１内に格納されたデータにアクセスすることができる。記憶装置６１１内に格納されたデータは、ルーティングテーブル６２３及びリンク統計値データベース６２５を含むことができる。他の実施形態では、記憶装置６１１は、任意数の別個のローカルな又は分散された記憶装置、及びこれらのデバイスにわたって格納されるデータの任意の配列を含むことができる。ネットワークプロセッサにより実行される他のモジュールもまた、記憶装置６１１からロードされ、又は記憶装置６１１上に格納されることができる。
【００７２】
近隣探索モジュール６１３は、コントローラにより管理されるＳＡのスイッチ間の適切な通信及びスイッチの構成を可能にするために、ネットワーク内の近隣コントローラ各々についての情報を取得するhelloプロトコル又は類似のプロトコルを使用して、ネットワーク内の他のデバイスと通信するためのプロトコルを管理することができる。ＳＡについての隣接コントローラ及びスイッチを識別するために、任意のhelloプロトコル又は処理が利用されることができる。
【００７３】
輻輳制御モジュール６１５は、リンクステート管理モジュール６１９により集められた情報を使用して、リンクが輻輳しているか否かを決定し、コントローラの場合リンクに適用される抑制レートを決定する。スイッチにおいて、輻輳制御モジュールは、出口モジュールがコントローラに輻輳メッセージを送信し、コントローラからの任意のリクエストに返答するトリガとなり得る。輻輳制御モジュールは、接続されるリンクについての輻輳状態の判定に用いるレート及びフローの統計値を取得するために、又は、コントローラの場合抑制レートを決定するために、リンク統計値データベース６２５に連結される。
【００７４】
抑制モジュール６１９は、スイッチの場合、コントローラから任意の抑制レートを受信し、それらを影響のあるトラフィックグループの着信パケットに適用する。
【００７５】
リンクステート管理モジュール６１９は、リンク統計値データベース６２５内のネットワーク又はネットワークのエリアについてのリンクステート情報を管理する。リンクステート管理モジュール６１９は、また、コントローラのＳＡ内と同様に、コントローラと他のコントローラとの間の接続に関する情報を提供する隣接コントローラに広めるためにリンクステート広告を生成し得る。この情報は、ネットワーク内の他のコントローラに送信される、各境界スイッチペアについてのリンクステート広告のセットとして、パッケージ化され得る。
【００７６】
コントローラ６２１は、ＳＡの制御プレーンを管理するための、任意の種類のスプリットアーキテクチャコントローラであり得る。コントローラは、スプリットアーキテクチャネットワークを管理するためのOpenFlowプロトコル又は類似のプロトコルを実装し得る。コントローラモジュール６２１は、データプレーン上のパケットの転送を構成するために、ＳＡ内のスイッチと通信し得る。コントローラ６２１は、また、近隣情報、リンクステート広告を交換するため、及びピアに対し類似の情報を提供するために、他のコントローラと通信する。
【００７７】
さらに、ネットワークプロセッサ６０７は、記憶装置６１１内に格納されたデータにアクセスし得る。記憶装置６１１に格納されたデータは、ルーティングテーブル６２３及びリンクステートデータベース６２５を含み得る。他の実施形態では、記憶装置６１１は、任意数の別個のローカルな、又は分散された記憶装置、及びこれらのデバイスにわたって格納されるデータの任意の配列を含み得る。ネットワークプロセスにより実行される他のモジュールもまた、記憶装置６１１からロードされ、又は記憶装置６１１上に格納されることができる。
【００７８】
このように、パケットデータネットワークにおける輻輳制御のための方法、システム、及び装置について説明した。上記説明は、例示を意図したものであり、制限を意図したものではない。他の多くの実施形態が、上記説明を読み理解することにより当業者には明らかであろう。したがって、本発明の範囲は、添付の特許請求の範囲を参照して、そのような請求項が権利を有する均等物の全範囲とともに決定されるべきである。
【図１】
0006321628.tif 000005
【図２】
0006321628.tif 000006
【図３】
0006321628.tif 000007
【図４】
0006321628.tif 000008
【図５】
0006321628.tif 000009
【図６】
0006321628.tif 000010