(57)【要約】  ネットワーク内に接続されたスイッチにおいてデータ・フローを管理するために方法および装置が提供される。そのような方法は、スイッチを横断するデータ・フローのセットを、所定のリソース使用ポリシーを遵守しているか、監視することと、不遵守データ・フローの検出に応答して、フローのデータ・パケットのセットをミラーリングし、それぞれのミラー・パケットをスイッチのミラー・ポートに送信することと、を含む。方法は、ミラー・ポートに送信されるミラー・パケットを使用して、不遵守フローについての不遵守通知を構築することと、不遵守通知をネットワーク内に送信することと、をさらに含む。リソース使用ポリシーは、不遵守フローに起因する輻輳の発生前に不遵守通知を送信するようにスイッチが動作可能であるように定義され得る。
2021516012.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク内に接続されたスイッチにおいてデータ・フローを管理する方法であって、
前記スイッチを横断するデータ・フローのセットを、所定のリソース使用ポリシーを遵守しているか、監視することと、
不遵守データ・フローの検出に応答して、前記フローのデータ・パケットのセットをミラーリングして、それぞれのミラー・パケットを前記スイッチのミラー・ポートに送信することと、
前記ミラー・ポートに送信される前記ミラー・パケットを使用して、前記不遵守フローについての不遵守通知を構築することと、
前記不遵守通知を前記ネットワーク内に送信することと、
を含む、方法。
【請求項２】
前記リソース使用ポリシーは、前記不遵守フローに起因する輻輳の発生前に前記不遵守通知を送信するように前記スイッチが動作可能であるように定義される、請求項１に記載の方法。
【請求項３】
前記リソース使用ポリシーは、前記データ・フローのセットの複数のサブセットのそれぞれについて、前記サブセットについての少なくとも１つのリソース使用限度を定義し、前記限度は、前記サブセットについての最大許容値よりも小さい、請求項２に記載の方法。
【請求項４】
前記少なくとも１つのリソース使用限度が、フロー・レートを含む、請求項３に記載の方法。
【請求項５】
前記少なくとも１つのリソース使用限度が、キュー占有率閾値を含む、請求項３に記載の方法。
【請求項６】
前記不遵守通知が、前記不遵守通知を示す識別子を含む少なくとも１つのルーティング可能なデータ・パケットを含む、請求項１に記載の方法。
【請求項７】
前記ルーティング可能なデータ・パケットが、前記不遵守フローにおける上流のネットワーク・ノードに宛先指定される、請求項６に記載の方法。
【請求項８】
前記ルーティング可能なデータ・パケットが、前記不遵守フローのソースに宛先指定される、請求項７に記載の方法。
【請求項９】
前記ミラー・パケット内のソース・アドレスと宛先アドレスとを交換することと、
前記不遵守通知を示す前記識別子を設定することと、
によって、前記ミラー・パケットから前記ルーティング可能なデータ・パケットを作り出すことを含む、請求項７に記載の方法。
【請求項１０】
前記識別子が、ＥＣＮフラグを含む、請求項９に記載の方法。
【請求項１１】
前記ルーティング可能なデータ・パケットが、前記ネットワーク内のネットワーク・コントローラに宛先指定される、請求項６に記載の方法。
【請求項１２】
前記ルーティング可能なデータ・パケットから、前記ネットワーク内のネットワーク・コントローラに宛先指定されるコピー・パケットを生成することと、前記コピー・パケットを前記ネットワーク内に送信することと、を含む、請求項７に記載の方法。
【請求項１３】
前記不遵守通知が、前記不遵守フローにおける上流のネットワーク・ノードに宛先指定され、前記不遵守通知を示す識別子を含む、少なくとも１つのルーティング可能なデータ・パケットを含む、請求項２に記載の方法。
【請求項１４】
前記ルーティング可能なデータ・パケットが、前記不遵守フローのソースに宛先指定される、請求項１３に記載の方法。
【請求項１５】
前記ミラー・パケット内のソース・アドレスと宛先アドレスとを交換することと、
前記不遵守通知を示す前記識別子を設定することと、
によって、前記ミラー・パケットから前記ルーティング可能なデータ・パケットを作り出すことを含む、請求項１４に記載の方法。
【請求項１６】
前記識別子が、ＥＣＮフラグを含む、請求項１５に記載の方法。
【請求項１７】
ネットワークにおける接続のための複数のポートを有するスイッチであって、
前記スイッチを横断するデータ・フローのセットを、所定のリソース使用ポリシーを遵守しているか、監視するように動作可能なフロー監視ロジックと、
前記フロー監視ロジックによる不遵守データ・フローの検出に応答して、前記フローのデータ・パケットのセットをミラーリングし、それぞれのミラー・パケットを前記スイッチのミラー・ポートに送信するように動作可能なミラーリング・ロジックと、
前記ミラー・ポートに送信される前記ミラー・パケットを使用して、前記不遵守フローについての不遵守通知を構築し、前記不遵守通知を前記ネットワーク内に送信するように動作可能な、通知ロジックと、
を備える、スイッチ。
【請求項１８】
前記リソース使用ポリシーは、前記不遵守フローに起因する輻輳の発生前に前記不遵守通知を送信するように前記スイッチが動作可能であるように定義される、請求項１７に記載のスイッチ。
【請求項１９】
前記リソース使用ポリシーは、前記データ・フローのセットの複数のサブセットのそれぞれについて、前記サブセットについての少なくとも１つのリソース使用限度を定義し、前記限度は、前記サブセットについての最大許容値よりも小さい、請求項１８に記載のスイッチ。
【請求項２０】
前記フロー監視ロジックが、前記データ・フローのセットのパケットを検出するフィルタリング・モジュールと、それぞれの前記サブセットについての前記リソース使用限度の遵守をポリシングするポリサー・モジュールと、を含む、請求項１９に記載のスイッチ。
【請求項２１】
前記不遵守通知が、前記不遵守通知を示す識別子を含む少なくとも１つのルーティング可能なデータ・パケットを含む、請求項１８に記載のスイッチ。
【請求項２２】
前記通知ロジックが、前記ルーティング可能なデータ・パケットを前記ネットワーク内の前記不遵守フローのソースに宛先指定するように適合される、請求項２１に記載のスイッチ。
【請求項２３】
前記通知ロジックが、
前記ミラー・パケット内のソース・アドレスと宛先アドレスとを交換することと、
前記不遵守通知を示す前記識別子を設定することと、
によって、前記ミラー・パケットから前記ルーティング可能なデータ・パケットを作り出すように適合される、請求項２２に記載のスイッチ。
【請求項２４】
ネットワーク内に接続された、データ・フローについてのソース・ノードと宛先ノードとの間で前記フローを通信するための複数のスイッチを有する前記ネットワークであって、各スイッチが、請求項１７に記載のスイッチを含む、ネットワーク。
【請求項２５】
複数のエッジ・ノードと、前記エッジ・ノード間でのデータ・フローを通信するための複数のスイッチと、を含むネットワークであって、
各スイッチが、請求項２２に記載のスイッチを含み、
各エッジ・ノードが、不遵守フローについての不遵守通知をスイッチから受信することに応答して、前記スイッチの前記リソース使用ポリシーの不遵守を抑制するように不遵守フローを適合させるように動作可能である、ネットワーク。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、ネットワークにおけるフロー管理に関し、より詳細には、ネットワーク輻輳を抑制するためのネットワーク・スイッチにおけるデータ・フローの管理に関する。
【背景技術】
【０００２】
現在のネットワーク・スイッチは、ネットワークにおける輻輳を制御することに関連する様々な技術を実施し得る。基本レベルにおいて、スイッチは、典型的には、スイッチ・バッファにおけるキューの状態を監視するため、何らかの形態のＡＱＭ（アクティブ・キュー管理）システムを採用し、また、必要なときに選択的にデータ・パケットを破棄する。パケットは、キューが一杯の場合に破棄されてもよく、あるいは、ＲＥＤ（ランダム初期検知）アルゴリズムもしくはその変形に従って、平均キュー長に依存して確率ベースで破棄されてもよい。パケット破棄は、データ損失をもたらし、または破棄されたパケットがネットワーク・プロトコルによって検出され得る場合にはパケットの再送をもたらし、ネットワーク効率（プロトコル・オーバヘッド、レイテンシの増加、およびネットワーク内のどこかで輻輳を引き起こし得る多重送信）に対する不利な影響を伴う。スイッチは、また、ＯＳＩ（開放型システム間相互接続）モデルのレイヤ２において動作する制御メカニズムを採用し得る。イーサネット（登録商標）ポーズ・フレーム、ＰＦＣ（優先順位ベースのフロー制御）、ＰＣＩｅ（ペリフェラル・コンポーネント・インターコネクト・エクスプレス）クレジットなどの、これらのリンクレベルのメカニズムは、スイッチにおける輻輳を抑制するために、レイヤ２リンク上のスイッチ内へのパケット・フローを制御することを目的とする。これらのメカニズムは、バックプレッシャーを上流ノードに伝播し得る。ブロックされた「ホット」データ・フローは、ＨＯＬ（ヘッド・オブ・ライン）・ブロッキングを介して他の「コールド」フローが前進することを妨げ得る。極端な場合、単一のホットスポットが、ネットワーク・スループットのグローバルな崩壊を引き起こし得る。
【０００３】
いくつかのスイッチは、より上位のＯＳＩレイヤにおいて動作する、より精巧な輻輳制御方式を実施する。例えば、ＥＣＮ（明示輻輳通知）対応ネットワークでは、スイッチが、例えばＲＥＤ方式を介して、輻輳に応答してパケットに（破棄するのではなく）マーキングし、パケット内にフラグ（ＥＣＮコードポイント）を設定することができる。このフラグは、パケットの宛先ノード（受信側）によって検出され、ソース・ノード（送信側）にエコー・バックされ、そして、ソース・ノードは、例えば、パケット破棄に関してその輻輳ウィンドウを減少させることによって、違反データ・フローを抑えることができる。ＥＣＮ、ならびにＤＣＴＣＰ（データ・センタ伝送制御プロトコル）およびＱＣＮ（量子化された輻輳通知）などの他の精巧な輻輳制御メカニズムは、グローバル・ベースで輻輳に対処するために、それらのソースにおいてデータ・フローを制御することを目的とする。しかしながら、これらの方式は、複雑であることがあり、それらの適用が制限される。それらは、上位ＯＳＩレイヤにおけるハンドリングを必要とし、それらの実施をサポートする特定のプロトコルのみで動作する。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ネットワークにおいてデータ・フローを管理するためのメカニズムの改善が、大いに望ましい。
【課題を解決するための手段】
【０００５】
本発明の少なくとも１つの実施形態によれば、ネットワーク内に接続されたスイッチにおいてデータ・フローを管理する方法が提供される。方法は、スイッチを横断するデータ・フローのセットを、所定のリソース使用ポリシーを遵守しているか、監視することと、不遵守データ・フローの検出に応答して、フローのデータ・パケットのセットをミラーリングし、それぞれのミラー・パケットをスイッチのミラー・ポートに送信することと、を含む。方法は、ミラー・ポートに送信されるミラー・パケットを使用して、不遵守フローについての不遵守通知を構築することと、不遵守通知をネットワーク内に送信することと、をさらに含む。
【０００６】
本発明を具現化する方法は、ネットワークにおける有効なグローバル・フロー制御の基礎を提供する、洗練された簡単で実用的なメカニズムを提案する。基本的な動作原理は、プロトコル非依存であり、任意のＯＳＩレイヤの任意のスイッチにおいて採用され得る。さらに、本発明を具現化する方法は、方法の動作に必要な機能を実施するために、スイッチにおいて幅広く利用可能である標準機能性を利用し得る。例えば、ミラーリング機能性は、最新のスイッチにおける標準である。しかしながら、ミラーリングの従来の使用とは異なり、ミラーリング機能は、不遵守フローの検出に応答してトリガされ、ミラー・パケットは、ネットワーク内に送信される、不遵守通知を構築するために使用される。ミラーリングは、コピー（ミラー）・パケットを生成することを伴うため、ミラーリングされる元のパケットは、データ・フロー内に残っており、ネットワーク内に引き続き存続する。しかしながら、不遵守通知は、より幅広いネットワークが、スイッチのリソース使用ポリシーの不遵守を抑制するように必要に応じて適合されることを可能にする。これは、元のデータ・フローにパケット損失または遅延の影響を及ぼすことなく行われ得る。
【０００７】
スイッチによって適用されるリソース使用ポリシーは、ネットワーク内のデータ・フローについて、所望により定義され得る。ポリシー制約の適当な設定によって、不遵守通知は、潜在的な輻輳状態への早期応答を可能にするために送信され得る。特に有利な実施形態では、したがって、リソース使用ポリシーは、不遵守フローに起因する輻輳の発生前に不遵守通知を送信するようにスイッチが動作可能であるように定義される。不遵守通知は、その際、不遵守フローに起因する潜在的な輻輳の早期警告を提供し、それによって、ネットワークが、輻輳およびそれによる潜在的なパケット破棄を抑制するように適合することが可能となる。これは、グローバル・エンドツーエンド・ロスレス・ネットワーク動作の基礎を提供する、簡単で実用的なシステムを提供する。さらに、ミラーリング動作は、監視されるデータ・フローにおいてパケットに影響を及ぼさないため、既存のフロー／輻輳制御メカニズムの上で方式が実施されてもよく、輻輳制御に使用される既存のＰＩＤ（比例積分偏差）制御ループの予測導関数成分を提供する。
【０００８】
リソース使用ポリシーは、監視されるデータ・フローのセットの複数のサブセットのそれぞれについて、そのサブセットについて少なくとも１つのリソース使用限度を定義してもよく、この限度は、そのサブセットについての最大許容値よりも小さい。そのような最大許容値は、サービス要件が全てのフローについて満たされ得ることを保証するために、バッファ容量または帯域幅あるいはその両方などの利用可能なリソース、および、データ・フローにサービスするための要件に基づいて、事前決定され得る。これは、潜在的な輻輳の早期／予測通知のための簡便なシステムを提供し、スイッチにおいて標準的なフィルタリング／ポリサー・ツールを利用することによって容易に実施され得る。
【０００９】
上述したリソース使用限度は、例えばフロー・レートを含み得る。そのようなフロー・レート限度は、フローに対する最大許容（目標）レートについてのシャドウ・フロー・レートとして課されることがあり、遵守は、トークン・バケット・アルゴリズムを実施するポリサーによって簡便に監視され得る。リソース使用限度は、代替的には、例えばキュー占有率閾値を含み得る。そのような限度は、ファントム・キュー占有率閾値として課されてもよく、リーキー・バケット・アルゴリズムを実施するポリサーによって、遵守が簡便に監視され得る。
【００１０】
不遵守通知は、不遵守通知を示す識別子を含む、少なくとも１つのルーティング可能なデータ・パケットを含み得る。不遵守通知は、好適には、不遵守フローの上流のネットワーク・ノードに宛先指定される。パケットを上流ノードに宛先指定することによって、ネットワークにおける高速応答が可能となる。そのようなルーティング可能なデータ・パケットは、また、既存の輻輳管理メカニズムを利用し、かつ輻輳の早期警告を提供するように、別の輻輳制御方式のパケット、例えばＥＣＮマーキングされたパケットを模倣してもよい。理想的には、ルーティング可能なデータ・パケットは、ネットワークにおける不遵守フローのソース・ノードに宛先指定され得る。これによって、例えば、フローを抑えるためにソースが素早く反応することが可能となる。ネットワークは、例えば、従来のＥＣＮに関連するＲＴＴ（ラウンド・トリップ・タイム）遅延を回避して、既存のフロー制御方式を用いるよりも高速に応答することができる。このようなルーティング可能なデータ・パケットは、また、ミラー・パケット内でソース・アドレスと宛先アドレスとを交換すること、および不遵守通知を示す識別子、例えばＥＣＮフラグを設定することによって、ミラー・パケットから簡単なやり方で生成され得る。
【００１１】
本発明のそれぞれのさらなる実施形態は、上述したデータ・フローを管理する方法を実施するために適合されるネットワーク・スイッチ、および複数のそのようなスイッチを含むネットワークを提供する。
【００１２】
本発明の実施形態は、添付図面を参照して、例示的かつ非限定的な例として以下でより詳細に説明される。
【図面の簡単な説明】
【００１３】
【図１】ネットワークの概略図である。
【図２】本発明を具現化するネットワーク・スイッチの概略表現である。
【図３】図２のスイッチによって実行されるデータ・フローを管理する方法のステップを示す。
【図４】図２のスイッチの実施形態におけるフロー監視ロジックのより詳細な概略を示す。
【図５】図４のフロー監視ロジックを具現化するフロー管理方法のステップを示す。
【図６】図５の方法の実施形態におけるパケット処理ステップを示す。
【図７】図５の方法の別の実施形態におけるパケット処理ステップを示す。
【発明を実施するための形態】
【００１４】
図１は、複数のエッジ・ノード３を相互接続する複数のスイッチ２を備える、例示的なデータ通信ネットワーク１の簡単な概略である。各スイッチ２は、スイッチがそれを介してその近隣スイッチ２またはエッジ・ノード３あるいはその両方に接続される物理リンク（概して、有線リンクまたは無線リンクあるいはその両方を含み得る）への接続用の複数のポートを有する。ネットワーク１内のデータ・フローは、フローのソース・ノードと宛先ノードとの間の途中で１つまたは複数のスイッチを横断してもよく、各スイッチ２は、ネットワーク動作中に同時に複数のフロー（例えば、何千ものフロー）を処理することが可能である。各スイッチ２は、そのポートに到達するインバウンド・フローのデータ・パケットを処理し、それらの宛先ノードに向けてアウトバウンド・リンクを介して進行中の送信のために適当なポートにパケットを転送する。
【００１５】
パケット処理の需要が利用可能な処理リソースを超える場合、ネットワークの任意のポイントにおいて、輻輳が発生し得る。簡単な例として、エッジ・ノード３の間で２つのデータ・フローからのパケットを処理する輻輳したスイッチ２が、図面においてシェーディングされて示されている。輻輳を抑制するために、スイッチは、図面において実線の矢印によって示される、リンクレベル（レイヤ２）フロー制御メカニズムを活用して、レイヤ２（Ｌ２）リンク上で上流ノードからの着信パケットの送信を管理することができる。さらに、より上位のレイヤ・プロトコルによってサポートされる場合、スイッチは、最終的にデータ・フローのソースに戻るように中継される輻輳通知を提供するために、パケットにマーキングし得る。ここでの例において、図面中の破線矢印で示されるように、輻輳したスイッチ２は、ＥＣＮ方式に従ってパケットにマーキングし得る。ＥＣＮマーキングされたパケットは、輻輳したフローの宛先ノード３によって検出され、それは、次いで輻輳通知を既知のやり方でソース・ノードに戻るように中継する。ソース・ノードは、次いで違反フローを抑えるために、その輻輳ウィンドウを減少させ得る。そのような従来の輻輳制御メカニズムに加えて、ネットワーク１の１つまたは複数のスイッチ２は、後述するデータ・フロー管理方法を実施し得る。ネットワーク１の好適な実施形態において、全てのスイッチ２が、このデータ・フロー管理方法を実施するように適合される。
【００１６】
図２は、スイッチの動作に含まれる基本要素および後述するデータ・フロー管理方法の実施を示す、スイッチ２の例示的実施形態の概略ブロック図である。スイッチ２は、ネットワーク・リンクへの接続用の、Ｐ１〜Ｐｎにおいて示される複数のポートを有し、Ｉ／Ｏ（入力／出力）ステージ１０、パケット処理ロジック１１、およびスイッチ・ファブリック１２を含む。少なくとも１つのスイッチ・ポート、この例ではポートＰｎが、指定された（典型的には、専用）ミラー・ポートである。典型的なスイッチは、例えばネットワーク監視のために、１〜８個のそのようなミラー・ポートを有し得る。この場合においては、しかしながら、ミラー・ポートＰｎは、後述されるフロー管理方式に使用される。
【００１７】
Ｉ／Ｏステージ１０は、各ポートにおけるデータの送信／受信のためのＭＡＣ（メディア・アクセス制御）ユニット１３を含み、ＱｏＳ（サービス品質）処理、データ暗号化／復号などに関連する追加機能を実行し得る。スイッチ・ポートに到達したパケットは、Ｉ／Ｏステージ１０内のＭＡＣユニットによってパケット処理ロジック１１に渡される。これは、アドレス・ルックアップを実行するパケット転送モジュール（または「転送エンジン」）を含み、ネットワークにおける前方への送信のためにパケットが中継されるべき適当な出力ポートを判断するために、それぞれのポートにおいてパケットの転送決定を行う。パケット処理ロジック１１は、また、フロー監視ロジックを含むモジュール１５を含み、フロー監視ロジックは、以下の詳細のように、モジュール１５内に記憶される所定のリソース使用ポリシーに基づいてデータ・フローを監視するための機能性を提供する。処理ロジック１１は、標準ミラーリング・ロジック１６と、ＡＱＭおよび輻輳制御モジュール１７とをさらに含み、ＡＱＭおよび輻輳制御モジュール１７は、スイッチのスイッチ・ファブリック１２に接続されるキュー・バッファ１８のセットにおいてデータ・パケットのキューを管理する。特に、スイッチ・ポートにおける着信パケットは、そのポートに関連付けられたバッファ１８内の１つまたは複数の（現実または仮想）キュー内にキューイングされ、それらのアウトバウンド・ポートに関連付けられたバッファへのスイッチ・ファブリック１２を介した移送を保留し、ここで、パケットは再びキューイングされ、アウトバウンド・ポートＭＡＣユニットによる処理を保留する。
【００１８】
制御モジュール１７は、上述のように従来のレイヤ２輻輳制御を実施するロジックを含む。特定のネットワークおよびスイッチの実施に依存して、そのようなレイヤ２制御メカニズムは、例えば、ポーズ・フレームなどのイーサネット（登録商標）・フロー制御、ＰＦＣもしくはＳＰＦＣ（選択的ＰＦＣ）、またはＰＣＩｅクレジット、ＩＢ（インフィニバンド）クレジット、ＦＣ（ファイバ・チャネル）クレジット、もしくはＯＰ（オムニパス）クレジットを含み得る。制御モジュール１７は、また、上位レイヤのフロー制御メカニズムのための機能性、例えば、ＥＣＮ、またはＤＣＴＣＰ（データ・センタ伝送制御プロトコル）マーキングもしくはＲｏＣＥ（拡張イーサネット（登録商標）上のリモート・ダイレクト・メモリ・アクセス）マーキングなどのＥＣＮの変形、ＱＣＮ、ＩＢ  ＣＣＡ（インフィニバンド輻輳制御アネックス）などを実施してもよく、その場合に、ネットワーク１における上位レイヤ・プロトコルによってサポートされる。図示される例において、モジュール１７は、前述したようにＲＥＤマーキングに基づいてＥＣＮを実施する。
【００１９】
パケット処理ロジック１１は、また、ミラー・ポートＰｎに関連付けられるＮＣＮ（不遵守通知）モジュール１９の形態で通知ロジックを含む。特に、ここでのＮＣＮモジュールは、ミラー・ポートＰｎのＭＡＣユニットに接続され、以下で詳細に説明されるように、不遵守通知を生成するための機能性を提供する。
【００２０】
概して、ネットワーク１は、ＯＳＩモデルの異なるレイヤにおいて動作する多様なネットワーク・プロトコルを実施し得る。スイッチ２は、任意のＯＳＩレイヤにおける動作のための機能性を組み込み得る。スイッチ２は、したがって、レイヤ２またはより上位レイヤのスイッチを含んでもよく、例えば、ルータ、ブリッジ、もしくはゲートウェイ、またはネットワークにおいてスイッチング機能性を提供する任意の他のデバイスを実施し得る。概して、モジュール１４〜１９の機能性は、ハードウェアもしくはソフトウェア、またはそれらの組み合わせによって実施され得る。例えば、機能性は、スイッチ２の、１つまたは複数のＡＳＩＣ（特定用途向け集積回路）、ＦＰＧＡ（フィールド・プログラマブル・ゲート・アレイ）、マイクロコントローラ、マイクロコード、ファームウェアなどの上で提供され得る１つまたは複数のプロセッサによって実行可能なソフトウェア・モジュールによって実施され得る。ソフトウェアにおいて実施される機能性は、ソフト・スイッチ、ＳＤＮ（ソフトウェア確定ネットワーク）スイッチ、ｖＳｗｉｔｃｈなどによって提供され得る。１つまたは複数のモジュールの機能性は、全体的にまたは部分的に結合されてもよく、スイッチ２は、説明されるフロー管理方法に直交する追加の機能性、例えば、スイッチ／ネットワーク固有の機能性のための追加のパケット処理エンジン、および概して処理モジュールの動作を制御するための中央制御ユニットを含んでもよい。
【００２１】
ネットワーク１は、ローカル・エリア・ネットワークまたはワイド・エリア・ネットワーク、データセンタ・ネットワーク、クラウド・ネットワーク、分散型処理ネットワーク、ＶＭ（仮想機械）ネットワーク、静的またはアドホック・ワイヤレス・ネットワーク、ＩｏＴ（モノのインターネット）ネットワークなどの任意の種類のデータ処理／通信ネットワークを含んでもよく、１つまたは複数のコンポーネント・ネットワーク、または、インターネットを含むインターネットワークあるいはその両方を概して含み得る。
【００２２】
エッジ・ノード３は、例えば、汎用もしくは専用コンピュータ、サーバ、プロセッサ、ＮＩＣ（ネットワーク・インターフェース・コントローラ）、ＶＭ、ハイパバイザ、ＶＦ（仮想機能）、ＳｏＣ（システム・オン・チップ）、アプリケーションなど、または任意の他の（現実もしくは仮想）ネットワーク化エンティティを含み得る。
【００２３】
特定のアプリケーションに依存して、スイッチ２によって処理されるデータ・パケットは、任意のＯＳＩレイヤにおける任意のネットワーク・プロトコルについて定義されるデータ・パケットを含んでもよく、任意の所与のプロトコルによって定義される、フレーム、セグメント、パケット、データグラムなどに対応し得る。
【００２４】
スイッチ２の動作において、フロー監視モジュール１５は、所定のリソース使用ポリシーを遵守しているか、スイッチを横断するデータ・フローのセットを監視する。監視されるデータ・フローのセットは、概して１つまたは複数のフローを含んでもよく、より典型的には、数百または数千のフローが監視され得る。リソース使用ポリシーは、個々のフローまたはフローのグループ、例えば、ネットワーク１における特定のソース・ノードからの、または特定の宛先ノードへの、あるいはその両方のフローについて、リソース使用制約を指定し得る。いくつかの応用について、スイッチによってハンドリングされる全てのフローが、監視され得る。他の例では、選択されたフロー、例えば、「ホット」または潜在的に輻輳するフローのみが、監視されてもよい。リソース使用制約は、バッファ占有率レベル、例えばスイッチ・ポートにおけるバッファ１８内のパケット数、またはパケット処理レート、例えば、スイッチ・ポートに到達するパケットのパケット・レートもしくはビット・レートに関してフローによって消費される帯域幅、あるいはその両方の点から指定され得る。
【００２５】
図３は、スイッチ２によって実行されるフロー管理方法の基本ステップを示す。スイッチによって受信されるデータ・パケットは、上述のように転送エンジン１４によって処理され、バッファ１８内にキューイングされる。フロー監視（ＦＭ）モジュール１５は、ステップ３０において示されるように、監視されるフロー（即ち、リソース使用（ＲＵ）ポリシーにおいて指定されるフロー）のパケットを検出するために、転送モジュール１４によって各ポートにおけるバッファ１８に送信されるパケットを監視する。監視されるフローを検出すると、ステップ３１において、ＦＭモジュール１５は、フローがリソース使用ポリシーに不遵守であるかどうかをチェックする。決定ブロック３２において「いいえ」（Ｎ）で示されるように、不遵守でない場合、いかなるアクションも要求されず、処理は終了する。フローがポリシーに不遵守である（決定ブロック３２において「はい」（Ｙ））場合、ステップ３３において、ＦＭモジュールは、ミラー・フラグをパケット内に設定することによって、ミラーリングのためにフローの（１つまたは複数の）パケットのセットにマーキングする。（ここで、現在のパケットのみがミラーリングのためにマーキングされてもよく、あるいは、例えば、所定の不遵守フロー検出間隔内に受信されるフローもしくはポートについてのバッファ１８内に既にキューイングされているフローの、任意のパケットまたはサンプリングされたパケットにおいて、ミラー・フラグが設定されてもよい。）ステップ３４において、ミラーリング・モジュールは、マーキングされたパケットを通常のやり方で検出およびミラーリングし、スイッチのミラー・ポートＰｎに送信されるべきそれぞれのコピー（ミラー）・パケットを生成する。ミラー・パケットは、キュー・バッファ１８およびスイッチ・ファブリック１２を介して通常のやり方でミラー・ポートＰｎに転送される。ミラーリングされる、元のデータ・パケットは、同様にフローにおける前方への送信のために適当な発信ポートに転送される。ステップ３５において、ＮＣＮモジュール１９は、ミラー・ポートＰｎに送信されるミラー・パケットのセットを受信し、ミラー・パケットを使用して不遵守フローについての不遵守通知を構築する。不遵守通知は、不遵守通知を示す識別子を含む１つまたは複数のルーティング可能なデータ・パケットを含む。これは、さらに後述するように、ミラー・パケットを用いた様々なやり方で構築され得る。ステップ３６において、ＮＣＮモジュールは、ミラー・ポートＰｎを介してネットワーク内に不遵守通知を送信し、プロセスは、現在の不遵守フローについて完了する。
【００２６】
上記プロセスは、ネットワーク内のグローバル・フロー制御の基礎として、レイヤ２以上において任意のスイッチで採用され得る簡単で実用的、かつ汎用的に適用可能な（プロトコル非依存の）メカニズムを提供する。原理は、ネットワーキング規格およびトランスポート・プロトコルから独立であり、必要に応じて、イーサネット（登録商標）、インフィニバンド、オムニパス、ＮＶｌｉｎｋなどのネットワーク、およびＴＣＰ（伝送制御プロトコル）、ＵＤＰ（ユーザ・データグラム・プロトコル）、ＶＰＮ（仮想プライベートネットワーク）トンネル、オーバレイ、ＲＤＭＡ（リモート・ダイレクト・メモリ・アクセス）などを用いて動作し得る。不遵守通知は、ミラーリング・パケットによって元のデータ・フローに影響を及ぼすことなく生成され得る。それによって、方式は、スイッチにおいて提供される従来の輻輳／フロー制御メカニズムの上で採用され得る。フロー監視および不遵守通知は、スイッチを通して複数の仮想フローについて実施されてもよく、レイヤ４移送の分解能でレイヤ２のフロー制御の速度を（フロー毎またはフローのグループ毎に）供給し、ＨＯＬブロッキングを回避する。さらに、リソース使用ポリシーは、潜在的な輻輳条件の早期通知を提供するために容易に定義され得る。それによって、ネットワークは、輻輳の発生およびその結果であるパケット損失を抑制するように応答し得る。そのような早期輻輳通知方式の例示的な実施は、ここでより詳細に説明される。
【００２７】
以下の実施形態において、ＦＭモジュール１５におけるリソース使用ポリシーは、不遵守フローに起因する輻輳発生前に不遵守通知を送信するようにスイッチが動作可能であるように定義される。特に、不遵守通知が、典型的にはスイッチ２における標準輻輳管理メカニズムのアクティブ化前に送信されるように、ポリシーが定義され得る。この例では、レイヤ２フロー制御およびＥＣＮマーキングが必要とされる前に、早期輻輳通知メカニズムが、アクティブ化され得る。監視されるデータ・フローのセットは、理想的には、スイッチによってハンドリングされる全てのフロー、または少なくとも潜在的な輻輳条件を起こし得る全てのフローを含む。データ・フローの複数のサブセットのそれぞれについて、リソース使用ポリシーは、そのサブセットについて少なくとも１つのリソース使用限度を定義する。各サブセットは、ここで、概して１つまたは複数のフロー、例えば、特定のソース・ノードおよび宛先ノードペア間のフロー、または特定のソース／宛先ノードもしくはノードのセットからの／への全てのフローを含む。各サブセットについて、リソース使用限度が、そのサブセットについての最大許容値より小さい（例えば、０．５％〜１０％小さい）値において設定される。各場合における最大許容値は、フローが適当に対応され得ることを保証するために、バッファ容量、帯域幅利用可能性、およびフローについてのサービス要件、例えば、ＱｏＳ要件、速度、遅延、優先順位などの、様々なスイッチ／ネットワーク・パラメータに基づいて判断され得る。そのような最大値または目標値が、所与のネットワークについて多様なやり方で、例えば、ネットワーク・コントローラ（図１に示されない）が共有リソース利用のためのアルゴリズムを用いることによって、計算され得る。目標値、およびフローについての対応するリソース使用限度は、所与のネットワークについて事前定義されてもよく、または動的に更新されてもよい。したがって、ＦＭモジュール１５は、特定のネットワークについての静的リソース使用ポリシーを用いて事前構成されてもよく、または、ポリシーは、例えば、ネットワーク・コントローラによって実行時にもしくは周期的に動的に判断され、所与の期間における適用のためにスイッチ２に供給されてもよい。
【００２８】
好適な実施形態はここで、ネットワーク・スイッチにおいて幅広く利用可能な標準機能性を利用して、スイッチ２のＦＭロジック１５を実施する。図４は、これらの実施形態における、ＦＭモジュール１５のより詳細な概略を示す。ＦＭモジュールは、フィルタリング・モジュール４０と、ポリサー・モジュール４１と、任意選択で以下のいくつかの実施について、トリガ・モジュール４２と、を含む。フィルタリング・モジュール４０は、ＡＣＬ（アクセス制御リスト）規則のセットとして実施される。ＡＣＬは、通常、スイッチにおいて採用され、条件：アクション・タイプ規則のセットを定義し、監視されるフローのパケットを識別するため、およびパケットをポリサー・モジュール４１に転送するためにここで使用される。ポリサー・モジュール４１は、複数のポリサーを実施する。１つのポリサーが、監視されるデータ・フロー、即ち各フローまたはフローのグループの各サブセットについて提供され、それについてのリソース使用限度がＲＵポリシーにおいて指定される。各ポリサーは、リソース使用制約の不遵守（即ち、リソース使用限度が超過されているか）についてチェックし、不遵守の場合に、指定されたアクション、ここではパケットのマーキングまたは破棄を実行する。トリガ・モジュール４２は、ポリサー・アクションがパケットを破棄することである場合、さらに後述されるように動作する。
【００２９】
図５は、トリガ・モジュール４２のない図４のＦＭモジュールを使用した、第１のフロー管理方法の基本ステップを示す。フィルタリング・モジュール４０は、各スイッチ・ポートに到達するパケットを監視し、全てのＡＣＬ規則条件に対してパケット・ヘッダ情報をチェックする。ルール条件は、監視されるフローに対応したパケット・ヘッダ情報（例えば、ソース・ノード・アドレスまたは宛先ノード・アドレスもしくはその両方）を指定する。ステップ５０において示されるように規則条件を満たすパケットを検出すると、ステップ５１において、フィルタリング・モジュールは、規則アクションにおいて指定されるモジュール４１の特定のポリサーにパケットを転送し、例えばＡＣＬ規則（条件＝「宛先ＩＰ」＝＝「ＥｘａｍｐｌｅＩＰ」、アクション＝ｐ１）は、「ＥｘａｍｐｌｅＩＰ」に等しい宛先ＩＰアドレスを有するパケットをモジュール４１のポリサー「ｐ１」に送信する。ステップ５２において、受信側のポリサーは、指定されたリソース使用限度の遵守についてパケットをチェックする。このステップの特定の実施が、さらに後述される。パケットが遵守している場合（決定ブロック５３における、いいえ）、さらなるアクションは必要とされない。パケットが、不遵守と見なされる場合（決定ブロック５３における、はい）、ステップ５４において、ポリサーがミラーリングのためにパケットにマーキングする。ステップ５５において、ミラーリング・モジュール１６は、ミラー・フラグを検出し、ミラー・ポートＰｎに転送されるミラー・パケットを生成する。ここでステップ５６において、ＮＣＮモジュール１９は、ミラー・パケットを受信し、ミラー・パケット内のソース・アドレスＳＲＣと宛先アドレスＤＳＴとを交換すること、およびＥＣＮフラグをパケット内に設定することによって、回線速度（line speed）において不遵守通知を生成する。結果として生じるＮＣＮパケットは、したがって、不遵守フローのソース・ノードに宛先設定されるルーティング可能なデータ・パケットを含み、ここで、ＥＣＮフラグがパケットのための不遵守標識としての役割をする。しかしながら、フローについての目標値より小さいリソース使用限度に基づいてパケットが生成されるため、ＮＣＮパケットは、フローが輻輳を引き起こす前、および、スイッチ２における従来のＥＣＮマーキング・メカニズムのアクティブ化前に早期に生成される。ＮＣＮパケットは、よって早期ＥＣＮ通知、以下「ＥＥＣＮパケット」を提供し、ＥＥＣＮパケットは、違反フローのソースに直接送信される。ステップ５７において、ＮＣＮモジュール１９は、ミラー・ポートＰｎを介してＥＥＣＮパケットを送信し、処理が完了する。
【００３０】
上記プロセスは、スイッチにおける既存のＬ２およびＥＣＮ制御メカニズムの上で動作する、潜在的な輻輳条件の早期通知についての効率的かつ実用的なメカニズムを提供する。ＥＥＣＮパケットは、標準ＥＣＮマーキング・メカニズムを利用するが、パケットは、ソース・ノードに直接中継され、潜在的な問題の高速な早期通知を提供する。ソース・ノードは、したがって、スイッチのＲＵポリシーへの不遵守を抑制するように、例えば通常のやり方でその輻輳ウィンドウを減少させるように、フローを適合するように素早く反応し得る。システムは、よって、安定した、スケーラブルな閉ループ輻輳制御を提供し、ここでは、一過性のバーストがローカル・スイッチ・バッファにおいて吸収可能であり、輻輳がネットワークのエッジに押しやられる。リソース使用限度は、パケット破棄が０で、スイッチにおいて施行され、ホット・トラフィックは、ＥＥＣＮを介したフィードバックとしてミラーリングされる。ソース・ノードにおけるＥＥＣＮに対する早期応答によって、グローバル・ロスレス動作が、ネットワーク１において達成され得る。
【００３１】
図６は、図５の方法における使用のための、ポリサーの１つの実施におけるパケット処理ステップを示す。この例において、ポリサーによって適用されるリソース使用限度は、フロー・レートを含む。これは、フローについての最大許容（目標）レートよりも小さい、シャドウ・フロー・レートとして定義され、ポリサー・モジュール４１においてトークン・バケット・アルゴリズムを介して実施される。トークンは、バケットが一杯になるまで、指定されたシャドウ・フロー・レートでバケットに供給される。図６のプロセスは、図５内のステップ５２〜５４に対応する。ステップ６０において、パケット（図５のステップ５０においてＡＣＬ規則によって選択される）は、ポリサーによって受信される。決定ステップ６１において、ポリサーは、バケットが任意のトークンを含むかどうかを判断する。含む場合、ステップ６２において、トークンは除去され、ステップ６３において、パケットが出力される。ステップ６１において、バケットが空である場合、ステップ６４において、ポリサーは、ミラーリングのためにパケットにマーキングし、ステップ６３において、マーキングされたパケットが出力される。
【００３２】
図７は、代替的なポリサー実施におけるパケット処理ステップを示す。ここで、ポリサーによって適用されるリソース使用限度は、キュー占有率閾値を含む。これは、フローについての目標レートでサービスされるファントム・キューについてのファントム・キュー占有率閾値として定義され、ポリサー・モジュール４１においてリーキー・バケット・アルゴリズムを介して実施される。トークンは、目標サービス・レートでバケットから削除（「リーク」）され、キュー占有率閾値は、バケットの容量より少ないレベルに設定される。ステップ７０において、パケットは、ポリサーによって受信され、ステップ７１において、トークンは、バケットに追加される。決定ステップ７２において、ポリサーは、閾値が超過されているかどうかを判断する。超過されていない場合、ステップ７３において、パケットが出力される。閾値が超過されている場合、ステップ７４において、ポリサーは、ミラーリングのためにパケットにマーキングし、ステップ７３において、マーキングされたパケットが出力される。
【００３３】
図７の動作に対する修正において、全てのパケットにマーキングするためのハードな閾値を用いる代わりに、確率的なマーキング方式、例えば、ＲＥＤマーキングが採用されてもよく、それによって、バケット内のトークンのレベルが基本閾値レベルより上に増加するにつれて増加する確率で、パケットがマーキングされる。
【００３４】
Ｉｎｔｅｌ  ＣｏｒｐｏｒａｔｉｏｎのＲＲＣ（Ｒｅｄ  Ｒｏｃｋ  Ｃａｎｙｏｎ）スイッチなどのいくつかのスイッチにおいて、ポリサーの機能性は、破棄されるべき（かつミラーリングされない）パケットにのみマーキングし得る。この場合、トリガ・モジュール４２は、ＦＭモジュール１５において採用され得る。ここで、ポリサーは、概して上述のように動作し得るが、リソース使用限度が超過されるときに、破棄フラグをパケット内に設定し得る。トリガ・モジュール４２は、ポリサーによって設定される破棄フラグを検出するために定義され得る条件：アクション・タイプ規則を実施する。破棄フラグがパケット内で検出される場合、トリガ・モジュールは、破棄フラグをクリアし、ミラー・フラグを設定する。この仮想破棄、または破棄／非破棄アクションは、要求されるパケットが、前のようにミラーリングされることを可能にする。
【００３５】
多くの変更および修正が、上述の例示的実施形態に対して行われ得ると理解されたい。例えば、ＮＣＮパケットは、ソース・ノード以外のネットワーク・ノード、例えば不遵守フロー内のスイッチ２から上流のノードに宛先設定されてもよく、ＥＣＮマーキング以外の既存の制御メカニズムを利用してもよい。例えば、ＮＣＮのためのＬ２制御メカニズムを利用することによって、大まかなローカル・フロー制御が達成され得る。例として、ＮＣＮは、不遵守フローにおける上流の次のＬ２ノードをミラー・パケットから判断すること、およびポーズ・フレーム、ＰＦＣフレーム、ＳＰＦＣフレーム、クレジット・キャンセレーションなどをそのノードにＮＣＮとして送信することによって生成され得る。
【００３６】
概して、ＮＣＮを受信するノードは、利用される特定の制御メカニズムに依存して様々なやり方で応答し得る。例えば、ノードは、さらなる不遵守を抑制するために、フローを休止することもしくは抑えること、またはロード・バランシング、レート制限、トラフィック・シェーピング、もしくは適応ルーティング技術などを実施することによって応答し得る。早期ＮＣＮは、また、ＥＣＮ以外の、またはＥＣＮに追加の上位レイヤ制御メカニズム、例えば、（ＤＣ）ＴＣＰ、ＩＢ  ＣＣＡ、ＱＣＮ、またはＲｏＣＥ方式に基づき得る。それによって、複数クラスのロスレス・フィードバックが、これらの方式から最良の実践で達成されるロスレス動作で実施され得る。
【００３７】
ＮＣＮパケットは、ミラー・パケットから多様なやり方で生成されてもよく、実施に応じて、任意のネットワーク・プロトコルのルーティング可能なデータ・パケット、例えば、イーサネット（登録商標）・フレーム／パケット、ＩＰパケットなどを含み得る。ＮＣＮパケットは、ミラー・パケットから１対１で生成されてもよく、もしくはＮ個のミラー・パケットを処理／圧縮することによって１対Ｎで生成されてもよく、またはＮ個のミラー・パケットのベクトルとして生成されてもよい。ＮＣＮパケットは、ミラー・パケットから直接生成されてもよく、またはパケットから選択される情報、例えば、ソース／上流ノードを判断するためのアドレス情報のみを使用して生成されてもよい。ＮＣＮ識別子は、概して、ＮＣＮに属するものとしてパケットを識別する任意のフラグまたはマーカを含み得る。
【００３８】
単一のミラー・ポートＰｎを用いた動作が上記で説明されているが、１つまたは複数のミラー・ポートが、ＮＣＮを生成するために使用されてもよい。ＮＣＮモジュール１９が、方式によって生成されたミラー・パケットを受信するミラー・ポートの外部に接続されるスイッチ２のユニットで提供される実施形態も、考えられ得る。
【００３９】
いくつかの実施形態において、ＮＣＮパケットは、ネットワーク１内のネットワーク・コントローラ、例えば、ＳＤＮコントローラ、クラウド・コンピューティング・ネットワーク内のＯｐｅｎＳｔａｃｋコントローラ、ＶＭネットワークを制御するハイパバイザなどに宛先指定され得る。そのようなコントローラは、その際、ネットワークにおいてグローバル・ベースでフロー制御を実施し得る。他の実施形態において、ＮＣＮモジュール１９は、ネットワーク・コントローラに宛先指定されるコピー・パケットを各ＮＣＮデータ・パケットから生成し、コピー・パケットをネットワーク内に送信し得る。ネットワーク・コントローラは、次いで、フローをグローバルに監視し、必要であればネットワーク・パラメータを修正し得る。
【００４０】
本発明の様々な実施形態の説明は、例示の目的で提示されているが、網羅的であること、または開示された実施形態に限定することを意図したものではない。多くの修正および変形が、説明された実施形態の範囲および思想から逸脱することなく当業者には明らかであろう。本明細書で使用される専門用語は、実施形態の原理、実用的な適用、もしくは市場で見出される技術に対する技術的改善を最もよく説明するため、または本明細書に開示される実施形態を他の当業者が理解可能にするために、選択された。
【図１】
2021516012.tif 000003
【図２】
2021516012.tif 000004
【図３】
2021516012.tif 000005
【図４】
2021516012.tif 000006
【図５】
2021516012.tif 000007
【図６】
2021516012.tif 000008
【図７】
2021516012.tif 000009
【国際調査報告】
2021516012.tif 000010
2021516012.tif 000011