(57)【特許請求の範囲】
【請求項１】
上位ティア、および複数の下位ティア・エンティティを含む下位ティアを含むスイッチング・ネットワークにおいてフロー制御を実施するための方法であって、
前記複数の下位ティア・エンティティのそれぞれ１つとそれぞれが結合可能な複数のポートを有する前記上位ティアのマスタ・スイッチにおいて、前記複数のポートのそれぞれに、前記ポートに結合可能な前記下位ティア・エンティティの複数のリモート物理インターフェース（ＲＰＩ）のそれぞれ１つにそれぞれが対応する複数の仮想ポートを実装するステップと、
前記マスタ・スイッチと前記複数の下位ティア・エンティティのＲＰＩとの間で伝達されるデータ・トラフィックを、前記データ・トラフィックが伝達される下位ティア・エンティティの前記ＲＰＩに対応する、前記複数の仮想ポートの中の仮想ポート内のキューに追加するステップと、
前記マスタ・スイッチが、所与の仮想ポートに対応する特定のＲＰＩが存在する下位ティア・エンティティに、前記特定のＲＰＩによって伝達されるデータ・トラフィックの少なくとも２つの異なるクラスに関する優先度を指定する優先度ベース・フロー制御（ＰＦＣ）データ・フレームを送信することによって、前記所与の仮想ポートのデータ・トラフィックに対するＰＦＣを施行するステップとを含む、方法。
【請求項２】
前記マスタ・スイッチと前記複数の下位ティア・エンティティとの間で伝達される前記データ・トラフィックが、前記トラフィックが伝達される前記下位ティア・エンティティのＲＰＩを特定するＲＰＩ識別子を含み、
キューに追加する前記ステップが、前記データ・トラフィックを、前記ＲＰＩ識別子に基づいて前記マスタ・スイッチの仮想ポートのキューに追加するステップを含む請求項１に記載の方法。
【請求項３】
前記下位ティア・エンティティが、フロー・スルー・モードに構成されたフォロワ・スイッチを含み、
前記特定のＲＰＩが、データ・ポートを含み、
前記方法が、前記フォロワ・スイッチが前記ＰＦＣデータ・フレームを受信し、前記ＰＦＣデータ・フレームから前記特定のＲＰＩを特定するＲＰＩ識別子を削除して規格通りのＰＦＣデータ・フレームを取得し、前記規格通りのＰＦＣデータ・フレームを前記特定のＲＰＩに対応する前記データ・ポートを介して送信するステップをさらに含む請求項１または請求項２に記載の方法。
【請求項４】
前記下位ティア・エンティティが、ネットワーク・インターフェースおよび仮想マシン・モニタを有するホスト・プラットフォームを含み、
前記特定のＲＰＩが、前記ホスト・プラットフォームで実行される仮想マシンを含み、
前記方法が、前記ネットワーク・インターフェースが前記ＰＦＣデータ・フレームを前記仮想マシン・モニタに伝達するステップをさらに含む請求項１ないし３のいずれかに記載の方法。
【請求項５】
前記ＰＦＣデータ・フレームを受信することに応じて、前記ホスト・プラットフォームの前記仮想マシン・モニタが、前記ＰＦＣデータ・フレームで指定された前記特定のＲＰＩに基づいて前記仮想マシンに前記ＰＦＣデータ・フレームを送信するステップをさらに含む請求項４に記載の方法。
【請求項６】
施行する前記ステップが、前記マスタ・スイッチが優先度ごと、アプリケーションごとにＰＦＣを施行するステップを含む請求項１ないし５のいずれかに記載の方法。
【請求項７】
前記特定のＲＰＩが、物理ポート、リンク・アグリゲーション・グループ（ＬＡＧ）インターフェース、および仮想ポートを含む集合のうちの１つを含む請求項１ないし６のいずれかに記載の方法。
【請求項８】
前記仮想ポートが、仮想ネットワーク・インターフェース・カード（ＮＩＣ）、シングル・ルートＩ／Ｏ仮想化（ＳＲ−ＩＯＶ）ＮＩＣのパーティション、およびファイバ・チャネル・オーバ・イーサネット（ＦＣｏＥ）ポートを含む集合のうちの１つを含む請求項７に記載の方法。
【請求項９】
前記ＰＦＣフレームが、
前記特定のＲＰＩを特定するＲＰＩフィールドと、
データ・トラフィックの前記少なくとも２つの異なるクラスに関する相対的な優先度を指定する複数のフィールドとを含む請求項１ないし８のいずれかに記載の方法。
【請求項１０】
施行する前記ステップが、前記マスタ・スイッチが、前記下位ティア・エンティティの２つの異なるＲＰＩに対して異なる優先度ベース・フロー制御を施行するステップを含む請求項１ないし９のいずれかに記載の方法。
【請求項１１】
マスタ・スイッチを含む上位ティアおよび複数の下位ティア・エンティティを含む下位ティアを含むスイッチング・ネットワークのためのマスタ・スイッチであって、
前記複数の下位ティア・エンティティのうちのそれぞれ１つにそれぞれが結合可能な複数のポートであって、複数のポートのそれぞれが、ポートに結合可能な前記下位ティア・エンティティの複数のリモート物理インターフェース（ＲＰＩ）のうちのそれぞれ１つにそれぞれが対応する複数の仮想ポートを含み、マスタ・スイッチと前記複数の下位ティア・エンティティのＲＰＩとの間で伝達されるデータ・トラフィックが、前記データ・トラフィックが伝達される下位ティア・エンティティの前記ＲＰＩに対応する、前記複数の仮想ポートの中の仮想ポートのキューに追加される、複数のポートと、
前記複数のポートの間でデータ・トラフィックをスイッチングするスイッチ・コントローラとを含み、
所与の仮想ポートに対応する特定のＲＰＩが存在する下位ティア・エンティティに、前記特定のＲＰＩによって伝達されるデータ・トラフィックの少なくとも２つの異なるクラスに関する優先度を指定する優先度ベース・フロー制御（ＰＦＣ）データ・フレームを送信することによって、前記所与の仮想ポートのデータ・トラフィックに対するＰＦＣを施行する、マスタ・スイッチ。
【請求項１２】
前記マスタ・スイッチと前記複数の下位ティア・エンティティとの間で伝達される前記データ・トラフィックが、前記トラフィックが伝達される前記下位ティア・エンティティのＲＰＩを特定するＲＰＩ識別子を含み、
前記マスタ・スイッチが、データ・トラフィックを、前記ＲＰＩ識別子に基づいて前記マスタ・スイッチの仮想ポートのキューに追加する請求項１１に記載のマスタ・スイッチ。
【請求項１３】
優先度ごと、アプリケーションごとにＰＦＣを施行する請求項１１に記載のマスタ・スイッチ。
【請求項１４】
前記ＰＦＣフレームが、
前記特定のＲＰＩを特定するＲＰＩフィールドと、
データ・トラフィックの前記少なくとも２つの異なるクラスに関する相対的な優先度を指定する複数のフィールドとを含む請求項１１または請求項１２に記載のマスタ・スイッチ。
【請求項１５】
前記下位ティア・エンティティの２つの異なるＲＰＩに対して異なる優先度ベース・フロー制御を施行する請求項１１ないし１４のいずれかに記載のマスタ・スイッチ。
【請求項１６】
請求項１１ないし１５のいずれかに記載のマスタ・スイッチと、
複数の下位ティア・エンティティとを含むスイッチング・ネットワーク。
【請求項１７】
前記下位ティア・エンティティが、フロー・スルー・モードに構成されたフォロワ・スイッチを含み、
前記特定のＲＰＩが、前記フォロワ・スイッチのデータ・ポートを含み、
前記フォロワ・スイッチが、前記ＰＦＣデータ・フレームを受信し、前記ＰＦＣデータ・フレームから前記特定のＲＰＩを特定するＲＰＩ識別子を削除して規格通りのＰＦＣデータ・フレームを取得し、前記規格通りのＰＦＣデータ・フレームを前記特定のＲＰＩに対応する前記データ・ポートを介して送信する請求項１６に記載のスイッチング・ネットワーク。
【請求項１８】
前記下位ティア・エンティティが、ホスト・プラットフォームを含み、
前記特定のＲＰＩが、前記ホスト・プラットフォームで実行される仮想マシンを含む請求項１６または請求項１７に記載のスイッチング・ネットワーク。
【請求項１９】
前記ホスト・プラットフォームが、仮想マシン・モニタを実行し、
前記ホスト・プラットフォームが、前記ＰＦＣデータ・フレームを受信し、前記ＰＦＣデータ・フレームを前記仮想マシン・モニタに伝達するネットワーク・インターフェースを含み、
前記仮想マシン・モニタが、前記ＰＦＣデータ・フレームで指定された前記特定のＲＰＩに基づいて前記仮想マシンに前記ＰＦＣデータ・フレームを伝達する請求項１８に記載のスイッチング・ネットワーク。
【請求項２０】
前記特定のＲＰＩが、物理ポート、リンク・アグリゲーション・グループ（ＬＡＧ）インターフェース、および仮想ポートを含む集合のうちの１つを含む請求項１６ないし１９のいずれかに記載のスイッチング・ネットワーク。
【請求項２１】
前記仮想ポートが、仮想ネットワーク・インターフェース・カード（ＮＩＣ）、シングル・ルートＩ／Ｏ仮想化（ＳＲ−ＩＯＶ）ＮＩＣのパーティション、およびファイバ・チャネル・オーバ・イーサネット（ＦＣｏＥ）ポートを含む集合のうちの１つを含む請求項２０に記載のスイッチング・ネットワーク。
【請求項２２】
機械可読ストレージ・デバイスと、
前記機械可読ストレージ・デバイス内に記憶されたプログラム・コードであって、機械によって処理されるときに、前記機械に
マスタ・スイッチを有する上位ティアおよび複数の下位ティア・エンティティを有する下位ティアを含むスイッチング・ネットワークにおいて、前記複数の下位ティア・エンティティのそれぞれ１つとそれぞれが結合可能な複数のポートを有する前記マスタ・スイッチが、前記複数のポートのそれぞれに、前記ポートに結合可能な前記下位ティア・エンティティの複数のリモート物理インターフェース（ＲＰＩ）のそれぞれ１つにそれぞれが対応する複数の仮想ポートを実装すること、
前記マスタ・スイッチが、前記マスタ・スイッチと前記複数の下位ティア・エンティティのＲＰＩとの間で伝達されるデータ・トラフィックを、前記データ・トラフィックが伝達される下位ティア・エンティティの前記ＲＰＩに対応する、前記複数の仮想ポートの中の仮想ポート内のキューに追加すること、ならびに
前記マスタ・スイッチが、所与の仮想ポートに対応する特定のＲＰＩが存在する下位ティア・エンティティに、前記特定のＲＰＩによって伝達されるデータ・トラフィックの少なくとも２つの異なるクラスに関する優先度を指定する優先度ベース・フロー制御（ＰＦＣ）データ・フレームを送信することによって、前記所与の仮想ポートのデータ・トラフィックに対するＰＦＣを施行することを実行させる、プログラム・コードとを含むプログラム。
【請求項２３】
上位ティア、および複数の下位ティア・エンティティを含む下位ティアを含むスイッチング・ネットワークにおいてフロー制御を実施するための装置であって、
前記複数の下位ティア・エンティティのそれぞれ１つとそれぞれが結合可能な複数のポートを有する前記上位ティアのマスタ・スイッチにおいて、前記複数のポートのそれぞれに、前記ポートに結合可能な前記下位ティア・エンティティの複数のリモート物理インターフェース（ＲＰＩ）のそれぞれ１つにそれぞれが対応する複数の仮想ポートを実装するための手段と、
前記マスタ・スイッチと前記複数の下位ティア・エンティティのＲＰＩとの間で伝達されるデータ・トラフィックを、前記データ・トラフィックが伝達される下位ティア・エンティティの前記ＲＰＩに対応する、前記複数の仮想ポートの中の仮想ポート内のキューに追加するための手段と、
前記マスタ・スイッチにおいて、所与の仮想ポートのデータ・トラフィックに対する優先度ベース・フロー制御（ＰＦＣ）を施行するための手段であって、前記所与の仮想ポートに対応する特定のＲＰＩが存在する下位ティア・エンティティに、前記特定のＲＰＩによって伝達されるデータ・トラフィックの少なくとも２つの異なるクラスに関する優先度を指定するＰＦＣデータ・フレームを送信するための手段をさらに含む、施行するための手段とを含む、装置。
【請求項２４】
請求項１〜１０のいずれかの方法の各ステップを装置に実行させる、プログラム。
【請求項２５】
請求項１〜１０のいずれかの方法の各ステップを実行するための手段を備える、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にはネットワーク通信に関し、詳細には、コンピュータ・ネットワークの改善されたスイッチング・ネットワーク・アーキテクチャに関する。
【背景技術】
【０００２】
当技術分野で知られているように、通常、ネットワーク通信は、階層のプロトコル自体は規定せずにさまざまなプロトコル階層の機能を定義するよく知られている７階層の開放型システム間相互接続（ＯＳＩ）モデルに基づく。本明細書においてレイヤ７からレイヤ１と呼ばれることがある７つの階層は、それぞれ、アプリケーション層、プレゼンテーション層、セッション層、トランスポート層、ネットワーク層、データ・リンク層、および物理層である。
【０００３】
発信局において、データ通信は、データが機能のスタックの最上位（アプリケーション）層の発信プロセスから受け取られるときに始まる。データは、データ・リンク層でビットのデータ・フレームが得られるまでスタックのそれぞれの連続する下層で順次形式を整えられる。最後に、物理層において、データは、ネットワーク・リンクを介して宛先局に電磁信号の形態で送信される。宛先局で受信されるとき、送信されたデータは、そのデータが発信局において処理されたのと反対の順番で対応する機能のスタックを上に向かって通され、したがって、宛先局の受信プロセスに情報を提供する。
【０００４】
ＯＳＩモデルによってサポートされる階層化プロトコルのような階層化プロトコルの原則は、データがモデルの階層を上下に通過する間に、発信局および宛先局の階層がピア・ツー・ピアで（すなわち、レイヤＮ・ツー・レイヤＮ（Layer N to Layer N）で）インタラクションし、それぞれの個々の階層の機能が、その個々の階層の機能とその個々の階層の直上および直下のプロトコル階層との間のインターフェースに影響を与えることなく実行されることである。この結果を得るために、発信局のプロトコル・スタックの各階層は、通常、送信プロセスによって生成されたデータがスタックを下るにつれてそのデータに情報を（カプセル化されたヘッダの形態で）追加する。宛先局においては、これらのカプセル化されたヘッダが、カプセル化を解除されたデータが受信プロセスに届けられるまで、データがスタックの階層を上に向かって伝わるにつれて１つずつはがされる。
【０００５】
発信局と宛先局とを結ぶ物理的なネットワークは、１つまたは複数の有線または無線ネットワーク・リンクによって相互に接続された任意の数のネットワーク・ノードを含み得る。通常、ネットワーク・ノードは、ネットワーク・トラフィックを生成し、消費するホスト（例えば、サーバ・コンピュータ、クライアント・コンピュータ、モバイル・デバイスなど）、スイッチ、およびルータを含む。通常のネットワーク・スイッチは、異なるネットワーク・セグメントを相互に接続し、ＯＳＩモデルのデータ・リンク層（レイヤ２）でデータを処理し、転送する。概して、スイッチは、レイヤ２の媒体アクセス制御（ＭＡＣ）アドレスによってデータ・トラフィックをフィルタリングすることと、フレームの発信ＭＡＣアドレスを学習することと、宛先ＭＡＣアドレスに基づいてフレームを転送することとを含む少なくとも基本的なブリッジ機能を提供する。概して、ＯＳＩモデルのネットワーク（レイヤ３）で異なるネットワークを相互に接続するルータは、経路の処理、経路の決定、および経路のスイッチングなどのネットワーク・サービスを実装する。
【０００６】
概して、大規模なネットワークは、管理プレーン、制御プレーン、およびデータ・プレーンで独立に動作する多数のスイッチを含む。したがって、各スイッチは、独立して構成されなければならず、データ・トラフィックに対する独立した制御（例えば、アクセス制御リスト（ＡＣＬ））を実装し、いかなるその他のスイッチによって処理されるデータ・トラフィックとも無関係にデータ・トラフィックを転送する。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】ＩＥＥＥ８０２．１ＡＸ−２００８
【発明の概要】
【発明が解決しようとする課題】
【０００８】
したがって、本発明の目的の一つは、スイッチング・ネットワークにおいてフロー制御を実施するための改善された方法、マスタ・スイッチ、スイッチング・ネットワーク、プログラム、装置、システムを提供することである。
【課題を解決するための手段】
【０００９】
少なくとも１つの実施形態によれば、コンピュータ・ネットワークの複数のスイッチの管理、制御、およびデータ処理が、改善される。
【００１０】
少なくとも１つの実施形態においては、スイッチング・ネットワークが、マスタ・スイッチを含む上位ティアと、複数の下位ティア・エンティティを含む下位ティアとを含む。マスタ・スイッチは、複数の下位ティア・エンティティのうちのそれぞれ１つとそれぞれが結合された複数のポートを含む。複数のポートのそれぞれは、そのポートに結合された下位ティア・エンティティの複数のリモート物理インターフェース（remote physical interface）（ＲＰＩ）のうちのそれぞれ１つにそれぞれが対応する複数の仮想ポートを含む。複数のポートのそれぞれは、複数の下位ティア・エンティティの中の特定の下位ティア・エンティティからのデータ・トラフィックの受信に応じて、データ・トラフィックの発信元であった特定の下位ティア・エンティティのＲＰＩに対応する、複数の仮想ポートの中の仮想ポートのキューにそのデータ・トラフィックを追加する受信インターフェースも含む。マスタ・スイッチは、仮想ポートからのデータ・トラフィックを、そのデータ・トラフィックがその出力（egress）ポートから転送される複数のポートの中の出力ポートにスイッチングするスイッチ・コントローラをさらに含む。
【００１１】
少なくとも１つの実施形態においては、スイッチング・ネットワークが、上位ティアと、複数の下位ティア・エンティティを含む下位ティアとを含む。それぞれの下位ティア・エンティティにそれぞれが結合された複数のポートを有する上位ティアのマスタ・スイッチが、ポートのそれぞれに、そのポートに結合された下位ティア・エンティティの複数のリモート物理インターフェース（ＲＰＩ）のそれぞれ１つにそれぞれが対応する複数の仮想ポートを実装する。マスタ・スイッチとＲＰＩの間で伝達されるデータ・トラフィックが、そのデータ・トラフィックが伝達される下位ティア・エンティティのＲＰＩに対応する仮想ポート内のキューに追加される。マスタ・スイッチは、対応するＲＰＩが存在する下位ティア・エンティティに、その特定のＲＰＩによって伝達されるデータ・トラフィックの少なくとも２つの異なるクラスに関する優先度を指定する優先度ベース・フロー制御（priority-based flow control）（ＰＦＣ）データ・フレームを送信することによって、所与の仮想ポートのデータ・トラフィックに対するＰＦＣを施行する。
【００１２】
少なくとも１つの実施形態においては、スイッチング・ネットワークが、マスタ・スイッチを有する上位ティアと、複数の下位ティア・エンティティを含む下位ティアとを含む。それぞれの下位ティア・エンティティにそれぞれが結合された複数のポートを有するマスタ・スイッチが、ポートのそれぞれに、そのポートに結合された下位ティア・エンティティの複数のリモート物理インターフェース（ＲＰＩ）のそれぞれ１つにそれぞれが対応する複数の仮想ポートを実装する。マスタ・スイッチとＲＰＩの間で伝達されるデータ・トラフィックが、そのデータ・トラフィックが伝達されるＲＰＩに対応する仮想ポート内のキューに追加される。マスタ・スイッチは、少なくともデータ・トラフィックがキューに追加される仮想ポートに基づく制御ポリシーにしたがってデータ・トラフィックにデータ処理を適用し、したがって、マスタ・スイッチは、マスタ・スイッチの同じポートの２つの仮想ポートのキューに追加されたデータ・トラフィックに異なるポリシーを適用する。
【００１３】
開示自体、ならびに開示の好ましい使用の形態および利点は、添付の図面と併せて読まれるときに、例示的な実施形態の以下の詳細な説明を参照することによって最も深く理解されるであろう。
【図面の簡単な説明】
【００１４】
【図１】一実施形態によるデータ処理環境の高レベルの構成図である。
【図２】図１のデータ処理環境内に実装され得る分散ファブリック・プロトコル（ＤＦＰ）スイッチング・ネットワーク・アーキテクチャの一実施形態の高レベルの構成図である。
【図３】図１のデータ処理環境内に実装され得るＤＦＰスイッチング・ネットワーク・アーキテクチャの別の実施形態の高レベルの構成図である。
【図４】一実施形態による図３のホストのより詳細な構成図である。
【図５】一実施形態によるＤＦＰスイッチング・ネットワークのマスタ・スイッチの例示的な実施形態の高レベルの構成図である。
【図６】一実施形態によるＤＦＰスイッチング・ネットワークのフォロワ・スイッチ（followerswitch）の例示的な実施形態の高レベルの構成図である。
【図７】一実施形態による管理インターフェースを介して、仮想化されたスイッチとして表示された図２または図３のＤＦＰスイッチング・ネットワーク・アーキテクチャの図である。
【図８】一実施形態による、ＤＦＰスイッチング・ネットワークを管理するための例示的なプロセスの高レベルの論理的な流れ図である。
【図９】一実施形態による、仮想化されたスイッチとして動作するように構成されたＤＦＰスイッチング・ネットワークの上位ティアに下位ティアからネットワーク・トラフィックが転送される例示的なプロセスの高レベルの論理的な流れ図である。
【図１０】一実施形態による、ＤＦＰスイッチング・ネットワークの下位ティアから受信されたデータ・フレームを上位ティアのマスタ・スイッチが処理する例示的なプロセスの高レベルの論理的な流れ図である。
【図１１】一実施形態による、ＤＦＰスイッチング・ネットワークの上位ティアのマスタ・スイッチから受信されたデータ・フレームを下位ティアのフォロワ・スイッチまたはホストが処理する例示的なプロセスの高レベルの論理的な流れ図である。
【図１２】一実施形態による、ＤＦＰスイッチング・ネットワークでリンク・アグリゲーション・グループ（link aggregation group）（ＬＡＧ）を運用する例示的な方法の高レベルの論理的な流れ図である。
【図１３】一実施形態による、ＬＡＧのメンバーシップを記録するために利用されるＬＡＧデータ構造の例示的な実施形態を示す図である。
【図１４】一実施形態による、ＤＦＰスイッチング・ネットワークにおけるマルチキャストの例示的な方法の高レベルの論理的な流れ図である。
【図１５】レイヤ２およびレイヤ３・マルチキャスト・インデックス・データ構造（multicastindex data structure）の例示的な実施形態を示す図である。
【図１６】一実施形態による、ＤＦＰスイッチング・ネットワークにおける拡張伝送選択（enhancedtransmission selection）（ＥＴＳ）の例示的な方法の高レベルの論理的な流れ図である。
【図１７】一実施形態による、ＤＦＰスイッチング・ネットワークのマスタ・スイッチのためにＥＴＳを構成するために利用され得る例示的な拡張伝送選択（ＥＴＳ）データ構造を示す図である。
【図１８】ＤＦＰスイッチング・ネットワークが下位ティアにおいて優先度ベース・フロー制御（ＰＦＣ）またはその他のサービスあるいはその両方を実施する例示的な方法の高レベルの論理的な流れ図である。
【図１９】一実施形態による、ＤＦＰスイッチング・ネットワークの下位ティアにおいて優先度ベース・フロー制御（ＰＦＣ）またはその他のサービスあるいはその両方を実装するために利用され得る例示的なＰＦＣデータ・フレーム１８００を示す図である。
【図２０】一実施形態による、マスタ・スイッチから受信されたＰＦＣデータ・フレームをＤＦＰスイッチング・ネットワークの下位レベルのフォロワ・スイッチが処理する例示的なプロセスの高レベルの論理的な流れ図である。
【図２１】一実施形態による、マスタ・スイッチから受信されたＰＦＣデータ・フレームをＤＦＰスイッチング・ネットワークの下位レベルのホストが処理する例示的なプロセスの高レベルの論理的な流れ図である。
【発明を実施するための形態】
【００１５】
本明細書において開示されるのは、コンピュータ・ネットワークの複数の相互に接続されたスイッチ上に統一された管理プレーン、制御プレーン、およびデータ・プレーンを設けるスイッチング・ネットワーク・アーキテクチャである。
【００１６】
ここで図面を参照し、とくに図１を参照すると、一実施形態よる例示的なデータ処理環境１００の高レベルの構成図が示されている。示されるように、データ処理環境１００は、リソース１０２の集合を含む。さまざまなホスト、クライアント、スイッチ、ルータ、ストレージなどを含み得るリソース１０２は、通信のために相互に接続され、１つまたは複数の公衆ネットワーク、プライベート・ネットワーク、コミュニティ・ネットワーク、またはクラウド・ネットワーク、あるいはこれらの組み合わせで物理的または仮想的にグループ化される可能性がある（図示せず）。このようにして、データ処理環境１００は、パーソナル（例えば、デスクトップ、ラップトップ、ネットブック、タブレット、またはハンドヘルド）コンピュータ１１０ａ、スマート・フォン１１０ｂ、サーバ・コンピュータ・システム１１０ｃ、およびメディア・プレーヤ１１０ｄ（例えば、セット・トップ・ボックス、デジタル・バーサタイル・ディスク（ＤＶＤ）プレーヤ、またはデジタル・ビデオ・レコーダ（ＤＶＲ））などの家庭用電化製品などのさまざまなクライアント・デバイス１１０がアクセス可能なインフラストラクチャ、プラットフォーム、ソフトウェア、またはサービス、あるいはそれらすべてを提供することができる。図１に示されたクライアント・デバイス１１０の種類は例示的であるに過ぎず、クライアント・デバイス１１０は、パケット・ネットワークを介してリソース１０２と通信し、リソース１０２にアクセスすることができる任意の種類の電子デバイスである可能性があることを理解されたい。
【００１７】
ここで図２を参照すると、一実施形態による、リソース１０２内に実装され得る例示的な分散ファブリック・プロトコル（ＤＦＰ）スイッチング・ネットワーク・アーキテクチャの高レベルの構成図が示されている。示された例示的な実施形態において、リソース１０２は、ＤＦＰスイッチング・ネットワーク２００を形成する複数の物理的なネットワーク・スイッチまたは仮想的なネットワーク・スイッチあるいはその両方を含む。各スイッチが独立した管理プレーン、制御プレーン、およびデータ・プレーンを実装する通常のネットワーク環境とは対照的に、ＤＦＰスイッチング・ネットワーク２００は、統一された管理プレーン、制御プレーン、およびデータ・プレーンを実装し、すべての構成要素であるスイッチが統一された仮想化されたスイッチと見なされることを可能にし、したがって、ネットワーク・ファブリックの配置、構成、および管理を簡素化する。
【００１８】
ＤＦＰスイッチング・ネットワーク２００は、本実施形態においては、フォロワ・スイッチ２０２ａ〜２０２ｄを含む複数のフォロワ・スイッチを有する下位ティアと、マスタ・スイッチ２０４ａ〜２０４ｂを含む複数のマスタ・スイッチを有する上位ティアとを含むスイッチの２つ以上のティアを含む。示されるように２つのティアを有する一実施形態において、各マスタ・スイッチ２０４のポートは、各フォロワ・スイッチ２０２のポートのうちの１つにティア間リンク２０６のうちの１つによって直接的に接続され、各マスタ・スイッチ２０４のポートは、マスタ・リンク２０８によって少なくとも１つのその他のマスタ・スイッチ２０４のポートに直接的にまたは間接的に結合される。そのような区別が適切であるとき、ティア間リンク２０６を介したスイッチ同士の通信をサポートするポートは、本明細書において「スイッチ間ポート」と呼ばれ、（例えば、フォロワ・スイッチ２０２ａ〜２０２ｄの）その他のポートは、「データ・ポート」と呼ばれる。
【００１９】
好ましい実施形態において、フォロワ・スイッチ２０２は、データ・プレーンにおいてパス・スルー・モード（pass-through mode）で動作するように構成され、これはつまり、（例えば、ホストから）フォロワ・スイッチ２０２のデータ・ポート２１０で受信されるすべての入力（ingress）データ・トラフィックがフォロワ・スイッチ２０２によってスイッチ間ポートおよびティア間リンク２０６を介してマスタ・スイッチ２０４のうちの１つに転送されることを意味する。そして今度は、マスタ・スイッチ２０４が、データ・トラフィックのためのファブリックとして働き（したがって、分散ファブリック（distributedfabric）の概念）、データ・トラフィックに関するすべてのパケット・スイッチングおよびルーティングを実施する。この構成を用いて、データ・トラフィックは、例えば、矢印２１２ａ〜２１２ｄによって示される第１の例示的なフローおよび矢印２１４ａ〜２１４ｅによって示される第２の例示的なフローで転送される可能性がある。
【００２０】
理解されるであろうように、マスタ・スイッチ２０４でのフォロワ・スイッチ２０２に関するスイッチングおよびルーティングの集中化は、マスタ・スイッチ２０４がデータ・トラフィックが受信されたフォロワ・スイッチ２０２の入力データ・ポートの知識を持つことを示唆する。好ましい実施形態において、リンク２０６、２０８を介したスイッチ同士の通信は、明示的なタグ付けを利用してＤＦＰスイッチング・ネットワーク２００上に複数のレイヤ２の仮想ローカル・エリア・ネットワーク（ＶＬＡＮ）を確立するＣｉｓｃｏ  Ｃｏｒｐｏｒａｔｉｏｎによって開発されたＩｎｔｅｒ−Ｓｗｉｔｃｈ  Ｌｉｎｋ（ＩＳＬ）プロトコルまたはＩＥＥＥ８０２．１ＱｉｎＱなどのレイヤ２・プロトコルを使用する。各フォロワ・スイッチ２０２は、受信マスタ・スイッチ２０４にデータ・フレームが受信されたフォロワ・スイッチ２０２の入力データ・ポート２１０を伝達するためにデータ・フレームにＶＬＡＮタグ（サービス・タグ（service tag）（Ｓタグ（S-tag））としても知られる）を適用することが好ましい。代替的な実施形態においては、入力データ・ポートは、別の識別子、例えば、ＭＡＣ−ｉｎ−ＭＡＣヘッダ、一意的なＭＡＣアドレス、ＩＰ−ｉｎ−ＩＰヘッダなどによって伝達される可能性がある。以下でさらに検討されるように、各フォロワ・スイッチ２０２の各データ・ポート２１０は、各マスタ・スイッチ２０４上に対応する仮想ポート（またはｖポート（vport））を有し、フォロワ・スイッチ２０２のデータ・ポート２１０に到着するデータ・フレームは、受信マスタ・スイッチ２０４上の対応するｖポートに到着したかのように処理される。
【００２１】
ここで図３を参照すると、一実施形態による、リソース１０２内に実装され得る別の例示的な分散ファブリック・プロトコル（ＤＦＰ）スイッチング・ネットワーク・アーキテクチャの高レベルの構成図が示されている。ＤＦＰスイッチング・ネットワーク３００全体で統一された管理プレーン、制御プレーン、およびデータ・プレーンを実装する図３に示されるＤＦＰアーキテクチャは、図２に示されたＤＦＰスイッチング・ネットワーク・アーキテクチャの代替として、または図２のＤＦＰスイッチング・ネットワーク・アーキテクチャに加えてリソース１０２内で実装され得る。
【００２２】
示された例示的な実施形態において、ＤＦＰスイッチング・ネットワーク３００内のリソース１０２は、上位ティアのマスタ・スイッチ２０４ａ〜２０４ｂのうちの少なくとも１つを実装する１つまたは複数の物理的なネットワーク・スイッチまたは仮想的なネットワーク・スイッチあるいはその両方を含む。スイッチング・ネットワーク３００は、下位ティアに複数の物理的なホスト３０２ａ〜３０２ｄをさらに含む。図４に示されるように、例示的な実施形態において、各ホスト３０２は、そのホスト３０２が（１つまたは複数の）マスタ・スイッチ２０４と通信するインターフェースを提供する１つまたは複数のネットワーク・インターフェース４０４（例えば、ネットワーク・インターフェース・カード（ＮＩＣ）、コンバージド・ネットワーク・アダプタ（ＣＮＡ）など）を含む。ホスト３０２は、例えば、データ処理環境１００においてデータまたはソフトウェアを管理し、アクセスし、操作するためにデータおよびプログラム・コードを処理する１つまたは複数の（概して１つまたは複数の集積回路を含む）プロセッサ４０２をさらに含む。ホスト３０２は、ホスト３０２またはデータ処理環境１００の（１つもしくは複数の）その他のリソースあるいはその両方によって実行される処理の入力を受信し、出力を提供するポート、ディスプレイ、ユーザ入力デバイス、および付属デバイス（attached device）などの入力／出力（Ｉ／Ｏ）デバイス４０６も含む。最後に、ホスト３０２は、メモリ、ソリッド・ステート・ドライブ、光学式または磁気式ディスク・ドライブ、テープ・ドライブなどを含む１つまたは複数の揮発性または不揮発性ストレージ・デバイスを含み得るデータ・ストレージ４１０を含む。データ・ストレージ４１０は、例えば、（ソフトウェア、ファームウェア、またはこれらの組み合わせを含む）プログラム・コードおよびデータを記憶することができる。
【００２３】
図３に戻ると、各ホスト３０２によって実行されるプログラム・コードは、（ハイパーバイザとも呼ばれる）仮想マシン・モニタ（ＶＭＭ）３０４を含み、ＶＭＭ３０４は、そのＶＭＭ３０４のそれぞれの物理ホスト３０２のリソースを仮想化し、管理する。各ＶＭＭ３０４は、１つまたは複数の異種である可能性があるオペレーティング・システムのパーティションの１つまたは複数の仮想マシン（ＶＭ）３０６にリソースを割り当て、そのようなＶＭ３０６の実行をサポートする。ＶＭ３０６のそれぞれは、少なくともＯＳＩモデルのレイヤ２および３のネットワーク接続性を提供する１つ（場合によっては複数）の仮想ネットワーク・インターフェース（仮想ＮＩＣ（ＶＮＩＣ））を有する可能性がある。
【００２４】
示されるように、ＶＭＭ３０４ａ〜３０４ｄのうちの１つまたは複数は、ＶＭ３０６が属する可能性がある１つまたは複数の仮想スイッチ（ＶＳ）３１０（例えば、（１つまたは複数の）ファイバ・チャネル・スイッチ、（１つまたは複数の）イーサネット・スイッチ、ファイバ・チャネル・オーバ・イーサネット（ＦＣｏＥ）スイッチなど）を任意で提供することができる。同様に、ホスト３０２のネットワーク・インターフェース４０４のうちの１つまたは複数は、ＶＭ３０６が接続し得る１つまたは複数の仮想スイッチ（ＶＳ）３１２（例えば、（１つまたは複数の）ファイバ・チャネル・スイッチ、（１つまたは複数の）イーサネット・スイッチ、ＦＣｏＥスイッチなど）を任意で提供することができる。したがって、ＶＭ３０６は、ティア間リンク２０６、ネットワーク・インターフェース４０４、ＶＭＭ３０４によって提供される仮想化層、および任意でプログラム・コードまたはハードウェアあるいはその両方で実装された１つまたは複数の仮想スイッチ３１０、３１２を介して（１つまたは複数の）マスタ・スイッチ２０４と通信する。
【００２５】
図２のように、好ましくは、仮想スイッチ３１０、３１２は、存在する場合、データ・プレーンにおいてパス・スルー・モードで動作するように構成され、これはつまり、仮想スイッチ３１０、３１２の仮想データ・ポートでＶＭ３０６から受信されるすべての入力データ・トラフィックが仮想スイッチ３１０、３１２によってネットワーク・インターフェース４０４およびティア間リンク２０６を介してマスタ・スイッチ２０４のうちの１つに転送されることを意味する。そして今度は、マスタ・スイッチ２０４が、データ・トラフィックのためのファブリックとして働き、データ・トラフィックに関するすべてのパケット・スイッチングおよびルーティングを実施する。
【００２６】
上で検討されたように、（１つまたは複数の）マスタ・スイッチ２０４でのホスト３０２に関するスイッチングおよびルーティングの集中化は、ホスト３０２からのデータ・トラフィックを受信するマスタ・スイッチ２０４がデータ・トラフィックの発信元（例えば、リンク・アグリゲーション・グループ（ＬＡＧ）インターフェース、物理ポート、仮想ポートなど）の知識を持つことを示唆する。やはり、そのようなトラフィックの発信元の情報の伝達を可能にするために、ティア間リンク２０６を介した通信は、ＤＦＰスイッチング・ネットワーク３００上に複数のレイヤ２の仮想ローカル・エリア・ネットワーク（ＶＬＡＮ）を確立するための明示的なタグ付けを含む、Ｃｉｓｃｏ  Ｃｏｒｐｏｒａｔｉｏｎによって開発されたＩｎｔｅｒ−Ｓｗｉｔｃｈ  Ｌｉｎｋ（ＩＳＬ）プロトコルまたはＩＥＥＥ８０２．１ＱｉｎＱなどのレイヤ２・プロトコルを利用することが好ましい。各ホスト３０２は、受信マスタ・スイッチ２０４にデータ・フレームが受信されたデータ・トラフィックの発信元（例えば、物理ポート、ＬＡＧインターフェース、仮想ポート（例えば、ＶＭの仮想ネットワーク・インターフェース・カード（ＶＮＩＣ）、シングル・ルートＩ／Ｏ仮想化（Single Root I/O Virtualization）（ＳＲ−ＩＯＶ）のＮＩＣパーティション、またはＦＣｏＥポート）など）を伝達するためにデータ・トラフィックにＶＬＡＮタグを適用することが好ましい。それぞれのそのようなデータ・トラフィックの発信元は、各マスタ・スイッチ２０４上に対応するｖポートを有し、ホスト３０２のデータ・トラフィックの発信元から発生するデータ・フレームは、受信マスタ・スイッチ２０４上の対応するｖポートに到着したかのように処理される。まとめるために、ホスト３０２のデータ・トラフィックの発信元およびフォロワ・スイッチ２０２のデータ・ポート２１０は、以降、さまざまな種類のリモート物理インターフェース（ＲＰＩ）の間のなんらかの区別が意図されない限りリモート物理インターフェース（ＲＰＩ）と呼ばれる。
【００２７】
ＤＦＰスイッチング・ネットワーク２００および３００において、負荷分散は、フォロワ・スイッチ２０２またはホスト３０２あるいはその両方の構成を通じて実現され得る。例えば、静的な構成の１つのあり得る実施形態においては、データ・トラフィックが、発信元ＲＰＩに基づいてマスタ・スイッチ２０４の間に分けられ得る。この例示的な実施形態においては、２つのマスタ・スイッチ２０４が配置される場合、各フォロワ・スイッチ２０２またはホスト３０２が、そのフォロワ・スイッチ２０２またはホスト３０２のＲＰＩの半数をそれぞれが含む２つの静的なＲＰＩグループを実装し、そして、ＲＰＩグループのそれぞれのトラフィックを２つのマスタ・スイッチ２０４のうちの異なる方に送信するように構成され得る。同様に、４つのマスタ・スイッチ２０４が配置される場合、各フォロワ・スイッチ２０２またはホスト３０２が、そのフォロワ・スイッチ２０２またはホスト３０２のＲＰＩの４分の１をそれぞれが含む４つの静的なＲＰＩグループを実装し、そして、ＲＰＩグループのそれぞれのトラフィックを４つのマスタ・スイッチ２０４のうちの異なる１つに送信するように構成され得る。
【００２８】
ここで図５を参照すると、図２〜３のマスタ・スイッチ２０４のいずれかを実装するために利用され得るスイッチ５００ａの例示的な実施形態の高レベルの構成図が示されている。
【００２９】
示されるように、スイッチ５００ａは、複数の物理ポート５０２ａ〜５０２ｍを含む。各ポート５０２は、複数の受信（Ｒｘ）インターフェース５０４ａ〜５０４ｍのうちのそれぞれ１つと、関連するＲｘインターフェース５０４によって受信されたデータ・フレームをバッファリングする複数の入力キュー５０６ａ〜５０６ｍのうちのそれぞれ１つとを含む。ポート５０２ａ〜５０２ｍのそれぞれは、複数の出力キュー５１４ａ〜５１４ｍのうちのそれぞれ１つと、関連する出力キュー５１４からのデータ・フレームを送信する複数の送信（Ｔｘ）インターフェース５２０ａ〜５２０ｍのうちのそれぞれ１つとをさらに含む。
【００３０】
一実施形態において、各ポート５０２の入力キュー５０６および出力キュー５１４のそれぞれは、そのポート５０２で入力データ・トラフィックが受信され得るＤＦＰスイッチング・ネットワーク２００、３００の下位ティアのＲＰＩごとに複数の（例えば、８個の）キュー・エントリ（queue entry）を提供するように構成される。下位ティアのＲＰＩのために定義されるマスタ・スイッチ２０４内の複数のキュー・エントリのグループは、本明細書において仮想ポート（ｖポート）として定義され、ｖポートの各キュー・エントリはＶＯＱに対応する。例えば、図２に示されたＤＦＰスイッチング・ネットワーク２００に関して、スイッチ５００ａのポート５０２ａは、ポート５０２ａに接続されたフォロワ・スイッチ２０２のｋ＋１個のデータ・ポート２１０のそれぞれに関して、入力ｖポート５２２ａ０〜５２２ａｋのうちのそれぞれ１つと、出力ｖポート５２４ａ０〜５２４ａｋのうちのそれぞれ１つとを実装するように構成される。スイッチ５００ａが図３に示されたＤＦＰスイッチング・ネットワーク３００で実装される場合、ポート５０２ａは、ティア間リンク２０６によってポート５０２ａに接続されたホスト３０２のｋ＋１個のデータ・トラフィックの発信元のそれぞれのためのそれぞれのｖポート５２２を実装するように構成される。同様に、図２に示されたＤＦＰスイッチング・ネットワーク２００に関して、スイッチ５００ａのポート５０２ｍは、ポート５０２ｍに接続されたフォロワ・スイッチ２０２のｐ＋１個のデータ・ポート２１０のそれぞれに関して、入力ｖポート５２２ｍ０〜５２２ｍｐのうちのそれぞれ１つと、出力ｖポート５２４ｍ０〜５２４ｍｐのうちのそれぞれ１つとを実装するように構成される。スイッチ５００ａが図３に示されたＤＦＰスイッチング・ネットワーク３００で実装される場合、ポート５０２ａは、ティア間リンク２０６によってポート５０２ａに接続されたホスト３０２のｋ個のデータ・トラフィックの発信元のそれぞれのためのそれぞれのｖポート５２２を実装する。理解されるであろうように、ポート５０２のそれぞれで実装される入力ｖポートの数は、ポート５０２のそれぞれに接続された特定の下位ティア・エンティティ（例えば、フォロワ・スイッチ２０２またはホスト３０２）のＲＰＩの数に応じて変わり得る。したがって、ＤＦＰスイッチング・ネットワーク２００または３００の下位ティアの各ＲＰＩは、各マスタ・スイッチ２０４の物理ポート５０２の１組の入力ｖポート５２２および出力ｖポート５２４にマッピングされ、そのＲＰＩからのデータ・フレームが物理ポート５０２で受信されるとき、ポート５０２の受信インターフェース５０４は、データ・フレームをデータ・トラフィックのＲＰＩ識別子に基づいて適切な入力ｖポート５２２に導くことができる。
【００３１】
マスタ・スイッチ２０４は、例えば、下位ティア・エンティティ２０２、３０２との接続状態によって必要に応じてそのマスタ・スイッチ２０４の物理ポート５０２全体でｖポート５２２、５２４を生成、破棄、無効化、またはマイグレーションする可能性がある。例えば、フォロワ・スイッチ２０２がより多くのポートを有する代替フォロワ・スイッチ２０２によって置き換えられる場合、マスタ・スイッチ２０４は、代替フォロワ・スイッチ２０２のさらなるＲＰＩを受け入れるために、関連する物理ポート５０２に追加的なｖポート５２２、５２４を自動的に生成する。同様に、マスタ・スイッチ２０４の第１の物理ポートに接続されたホスト３０２で実行されるＶＭ３０６が、マスタ・スイッチ２０４の異なる第２の物理ポートに接続された異なるホスト３０２にマイグレーションする（すなわち、マイグレーションはスイッチのドメイン内に留まる）場合、マスタ・スイッチ２０４は、ＶＭ３０６に対応するｖポート５２２、５２４をマスタ・スイッチ２０４の第１の物理ポート５０２からマスタ・スイッチ２０４の第２の物理ポート５０２に自動的にマイグレーションする。ＶＭ３０６が所定のフラッシュ間隔（flush interval）以内でそのＶＭ３０６のマイグレーションを完了する場合、ＶＭ３０６に関するデータ・トラフィックは、スイッチ・コントローラ５３０ａによって認識され、第２の物理ポート５０２の出力ｖポート５２４に転送され得る。このようにして、ＶＭ３０６のマイグレーションは、トラフィックの中断またはデータ・トラフィックの損失なしに実現可能であり、このことは、損失に影響されやすいプロトコルにとって特に有利である。
【００３２】
各マスタ・スイッチ２０４は、下位ティア・エンティティへのティア間リンク２０６の喪失（例えば、リンクの状態がアップからダウンに変わる、ティア間リンク２０６が切断される、または下位ティア・エンティティが故障する）をさらに検出する。ティア間リンク２０６の喪失が検出される場合、マスタ・スイッチ２０４は、ティア間リンク２０６の復元が検出されるまで、関連するｖポート５２２、５２４を自動的に無効化する。ティア間リンク２０６が所定のフラッシュ間隔以内に復元されない場合、マスタ・スイッチ２０４は、キューの容量を取り戻すために、通信が失われた下位ティア・エンティティに関連するｖポート５２２、５２４を破棄する。フラッシュ間隔中は、スイッチ・コントローラ５３０ａは、無効化された出力ｖポート５２４宛てのデータ・トラフィックが入力側でバッファリングされることを許す。ティア間リンク２０６が回復され、無効化された出力ｖポート５２４が再び有効化される場合、バッファリングされたデータ・トラフィックが、損失なく出力ｖポート５２４に転送され得る。
【００３３】
スイッチ５００ａは、スイッチ・コントローラ５３０ａの指示の下で入力キュー５０６ａ〜５０６ｍのいずれかから出力キュー５１４ａ〜５１４ｍのいずれかへの（したがって、任意の入力ｖポート５２２と任意の出力ｖポート５２４の間の）データ・フレームのインテリジェントなスイッチングを行うように動作可能なクロスバー５１０をさらに含む。理解されるであろうように、スイッチ・コントローラ５３０ａは、すべてハードウェアで、あるいはより多くの場合、処理要素によるファームウェアおよびソフトウェアまたはその両方の実行を通じて制御を実装することができる１つまたは複数の集中型または分散型の専用または汎用処理要素または論理デバイスで実装され得る。
【００３４】
データ・フレームのインテリジェントなスイッチングを行うために、スイッチ・コントローラ５３０ａは、１つまたは複数のデータ・プレーン・データ構造、例えば、通常、連想メモリ（ＣＡＭ）内の転送テーブルとして実装される転送情報ベース（ＦＩＢ）５３２ａを構築し、保有する。示された例において、ＦＩＢ５３２ａは、例えば、ＭＡＣフィールド５３６、ポート識別子（ＰＩＤ）フィールド５３８、および仮想ポート（ｖポート）識別子（ＶＰＩＤ）フィールド５４０を含み得る複数のエントリ５３４を含む。したがって、各エントリ５３４は、データ・フレームの宛先ＭＡＣアドレスを、そのデータ・フレームのための特定の出力ポート５０２の特定のｖポート５２０と関連付ける。スイッチ・コントローラ５３０ａは、観測されたデータ・フレームから、ポート５０２およびｖポート５２０と、データ・フレームによって指定された宛先ＭＡＣアドレスとの間の関連付けを学習し、学習された関連付けをＦＩＢ５３２ａに記録することによって、自動化された方法でＦＩＢ５３２ａを構築する。その後、スイッチ・コントローラ５３０ａは、ＦＩＢ５３２ａに記録された関連付けにしたがってデータ・フレームをスイッチングするようにクロスバー５１０を制御する。したがって、各マスタ・スイッチ２０４は、そのマスタ・スイッチ２０４のレイヤ２およびレイヤ３のＱｏＳ、ＡＣＬ、ならびにその他の管理データ構造を、下位ティアのＲＰＩに対応するｖポートごとに管理し、アクセスする。
【００３５】
スイッチ・コントローラ５３０ａは、統一された仮想化されたスイッチに関する管理および制御の中心として働く管理モジュール５５０をさらに実装する。一実施形態においては、各マスタ・スイッチ２０４が管理モジュール５５０を含むが、所与のＤＦＰスイッチング・ネットワーク２００または３００の単一のマスタ・スイッチ２０４（本明細書においては管理マスタ・スイッチ２０４と呼ばれる）のみの管理モジュール５５０が、一度に動作可能である。（例えば、マスタ・リンク２０８を介した管理マスタ・スイッチ２０４によるハートビート・メッセージングが途絶えることによって検出される）管理マスタ・スイッチ２０４としてそのとき働くマスタ・スイッチ２０４の故障が発生した場合、事前に決められるか、または残りの動作しているマスタ・スイッチ２０４の中から選択される可能性がある別のマスタ・スイッチ２０４が、自動的に、管理マスタ・スイッチ２０４の役割を引き受け、自身の管理モジュール５５０を利用してＤＦＰスイッチング・ネットワーク２００または３００の集中的な管理および制御を提供することが好ましい。
【００３６】
管理モジュール５５０は、ログインおよび管理者認証情報の入力に応じて、ネットワークに接続された管理者コンソール（例えば、クライアント・デバイス１１０ａ〜１１０ｃのうちの１つ）に配置された管理者がアクセス可能な管理インターフェース５５２、例えば、ＸＭＬまたはＨＴＭＬインターフェースを含むことが好ましい。管理モジュール５５０は、管理インターフェース５５２を介してＤＦＰスイッチング・ネットワーク２００または３００のすべてのスイッチ（例えば、スイッチ２０４または２０２あるいはその両方）に存在するすべてのポートの全体像を表示することが好ましい。例えば、図７は、一実施形態による管理インターフェース５５２を介して、仮想化されたスイッチ６００として表示された図２のＤＦＰスイッチング・ネットワーク２００の図である。この実施形態において、マスタ・スイッチ２０４は、フォロワ・スイッチ２０２が仮想的なライン・カードとして働く仮想的なスイッチング・シャーシ（switching chassis）と見なされ得る。この例において、例えば、管理者コンソールのディスプレイにグラフィカルにまたは表形式であるいはその両方で表され得る仮想化されたスイッチ６００は、フォロワ・スイッチ２０２ａのデータ・ポートおよびスイッチ間ポートに対応する仮想化されたポート（Ｐａ〜Ｐｆ）６０２ａと、フォロワ・スイッチ２０２ｂのデータ・ポートおよびスイッチ間ポートに対応するＰｌ〜Ｐｐ  ６０２ｂと、フォロワ・スイッチ２０２ｃのデータ・ポートおよびスイッチ間ポートに対応するＰｑ〜Ｐｓ  ６０２ｃと、フォロワ・スイッチ２０２ｄのデータ・ポートおよびスイッチ間ポートに対応するＰｗ〜Ｐｚ  ６０２ｄとを示す。加えて、仮想化されたスイッチ６００は、Ｐｇ〜Ｐｋ  ６０２ｅによってマスタ・スイッチ２０４ａのスイッチ間ポートを示し、Ｐｔ〜Ｐｖ  ６０２ｆによってマスタ・スイッチ２０４ｂのスイッチ間ポートを示す。さらに、仮想化されたスイッチ６００は、仮想出力キュー（virtualoutput queue）（ＶＯＱ）６０４のそれぞれの組によって、マスタ・スイッチ２０４に実装された各ｖポート５２２、５２４を示す。例えば、マスタ・スイッチ２０４ａ、２０４ｂに実装されたｖポート５２２、５２４のそれぞれは、ＶＯＱの組６０４ａ〜６０４ｋのうちのそれぞれ１つによって示される。仮想化されたスイッチ６００とインタラクションすることによって、管理者は、統一されたインターフェースを介してＤＦＰスイッチング・ネットワーク２００のフォロワ・スイッチ２０２およびマスタ・スイッチ２０４のうちの１つまたは複数（またはすべて）の１つまたは複数の（またはすべての）ポートまたはｖポートの所望の制御を（例えば、グラフィカルな入力、テキストの入力、数値の入力、またはその他の入力、あるいはそれらすべてによって）管理し、確立することができる。仮想化されたポートＰａ〜Ｐｆ  ６０２ａ、Ｐｌ〜Ｐｐ  ６０２ｂ、Ｐｑ〜Ｐｓ  ６０２ｃ、およびＰｗ〜Ｐｚ  ６０２ｄに加えて、仮想化されたスイッチ６００内にＶＯＱ６０４ａ〜６０４ｋの組を実装することは、ＤＦＰスイッチング・ネットワーク２００または３００のどちらかのティア（または両方のティア）の各ＲＰＩのデータ・トラフィックの（およびＲＰＩのデータ・トラフィックのそれぞれのトラフィックのクラス分けの）個別化された制御の実施を可能にすることに留意されたい。したがって、以下でさらに検討されるように、管理者は、仮想化されたスイッチ６００の仮想化されたポートＰａとインタラクションすることによって、フォロワ・スイッチ２０２ａの特定のデータ・ポート２１０の特定のトラフィックのクラス分けの所望の制御を実施することができる。代替的にまたは追加的に、管理者は、データ・ポート２１０に対応する入力ｖポート５２２または出力ｖポート５２４を表すＶＯＱの組６０４の、そのトラフィックのクラス分けに対応する特定のＶＯＱとインタラクションすることによって、そのデータ・ポート２１０に関するそのトラフィックのクラス分けの所望の制御を確立することができる。
【００３７】
図５に戻ると、スイッチ・コントローラ５３０ａは、ＤＦＰスイッチング・ネットワーク２００または３００を通過するデータ・フレームの所望の制御を実施するために利用され得る制御モジュール５６０ａをさらに含む。制御モジュール５６０ａは、ｖポートごとに入力または出力あるいはその両方におけるスイッチ５００ａに関する所望の一式の制御ポリシーを実施するローカル・ポリシー・モジュール５６２を含む。制御モジュール５６０は、ｖポートごとにスイッチ５００ａへの入力アクセスを制限するローカル・アクセス制御リスト（ＡＣＬ）５６４をさらに含み得る。管理マスタ・スイッチ２０４は、データ・ポートごとに入力または出力あるいはその両方におけるフォロワ・スイッチ２０２または仮想スイッチ３１０、３１２のうちの１つまたは複数に対する所望の一式の制御ポリシーおよびアクセス制御を実施するリモート・ポリシー・モジュール５６６およびリモートＡＣＬ５６８を任意でさらに含む可能性がある。有利なことに、管理マスタ・スイッチ２０４は、別のマスタ・スイッチ２０４、フォロワ・スイッチ２０２、または仮想スイッチ３１０、３１２に関する新たに追加されるまたは更新される制御情報（例えば、制御ポリシーまたはＡＣＬ）を、予約された管理ＶＬＡＮを介して目標のスイッチにプッシュすることができる。したがって、仮想化されたスイッチを通過するトラフィックに関する制御ポリシーおよびその他の制御情報が、マスタ・スイッチ２０４によってマスタ・スイッチ２０４のｖポート５２２、５２４において、フォロワ・スイッチ２０２によってデータ・ポート２１０において、または仮想スイッチ３１０、３１２の仮想ポートにおいて、あるいはそれらすべてで施行され得る。
【００３８】
ＤＦＰスイッチング・ネットワーク２００または３００内の１つまたは複数の所望の位置でポリシーおよびアクセス制御をグローバルに実施する能力は、いくつかの管理の特徴を容易にする。例えば、マスタ・スイッチ２０４の間の所望の負荷分散を実現するために、同種のまたは異種の制御ポリシーが、フォロワ・スイッチ２０２または仮想スイッチ３１０、３１２によって実施され、スイッチングおよびルーティングのために（１つまたは複数の）マスタ・スイッチ２０４に進むデータ・トラフィックの所望の分散を実現することができる。１つの特定の実装において、負荷分散は、異なる通信プロトコルが異なるマスタ・スイッチ２０４で実行されるようにしてさまざまなトラフィックの種類に応じて行われ得る。このように、マスタ・スイッチ２０４に接続されたフォロワ・スイッチ２０２およびホスト３０２が、複数の異なるトラフィックの種類のそれぞれのプロトコル・データ・ユニット（ＰＤＵ）をそのプロトコルを担当するマスタ・スイッチ２０４に導くことによって所望の負荷分散を実施することができる。
【００３９】
図５には明示されていないが、少なくとも一部の実施形態において、スイッチ・コントローラ５３０ａは、レイヤ２のフレームのスイッチングに加えて、当技術分野で知られているように、レイヤ３（およびそれより上位）のルーティングおよびその他のパケット処理をさらに実装する可能性があることを理解されたい。そのような場合、スイッチ・コントローラ５３０ａは、経路をレイヤ３のアドレスに関連付けるルーティング情報ベース（ＲＩＢ）を含み得る。
【００４０】
ここで図６を参照すると、図２のフォロワ・スイッチ２０２のいずれかを実装するために利用され得るスイッチ５００ｂの例示的な実施形態の高レベルの構成図が示されている。同様の参照番号で示されるように、スイッチ５００ｂは、複数のポート５０２ａ〜５０２ｍ、スイッチ・コントローラ５３０ｂ、およびスイッチ・コントローラ５３０ｂによって制御されるクロスバー・スイッチ５１０を用いてスイッチ５００ａと同様にして構築され得る。しかし、スイッチ５００ｂは、フレームを転送する最終責任をマスタ・スイッチ２０４に追わせるパス・スルー・モードで動作するように意図されるので、スイッチ・コントローラ５３０ｂは、簡素化される。例えば、示された実施形態において、ＦＩＢ５３２ｂの各エントリ５３４は、（フレームのクラス分けが管理モジュール５５０によってスイッチ・コントローラ５３０ｂにプッシュされる場合に）フレームをクラス分けするために利用される１つまたは複数のフレームのフィールド（例えば、宛先ＭＡＣアドレス、ＲＰＩなど）に関する値を特定するための制御フィールド５７０と、データ・トラフィックのそのクラス分けを転送するための、マスタ・スイッチ２０４に接続されるスイッチ５３０ｂの出力データ・ポート５０２を特定する関連するＰＩＤフィールド５３８とを含む。制御モジュール５６０は、リモート・ポリシー５６６またはリモートＡＣＬ５６８がサポートされないので同様に簡素化される。最後に、管理モジュール５５０は、スイッチ５００ｂがマスタ・スイッチ２０４として働く能力を備える必要がないので完全に省略され得る。
【００４１】
ここで図８を参照すると、一実施形態によるＤＦＰスイッチング・ネットワークを管理するための例示的なプロセスの高レベルの論理的な流れ図が示されている。便宜上、図８のプロセスが、図２〜３のＤＦＰスイッチング・ネットワーク２００および３００に関連して説明される。本明細書において示されるその他の論理的な流れ図と同様に、ステップは、厳密な発生順ではなく論理的な順序で示され、少なくとも一部のステップは、示されるのとは異なる順序で、または同時に実行され得る。
【００４２】
プロセスは、ブロック７００で始まり、次いで、マスタ・スイッチ２０４ａ、２０４ｂのそれぞれがそのマスタ・スイッチが位置するＤＦＰスイッチング・ネットワーク２００または３００のメンバーシップおよびトポロジーを学習することを示すブロック７０２に進む。さまざまな実施形態において、マスタ・スイッチ２０４ａ、２０４ｂは、例えば、クライアント・デバイス１１０ａ〜１１０ｃのうちの１つに配置されたネットワーク管理者から構成を受信することによって、または代替的にマスタ・スイッチ２０４ａ、２０４ｂのそれぞれのスイッチ・コントローラ５３０ａによる自動化されたスイッチ発見プロトコル（switch discovery protocol）の実施によってＤＦＰスイッチング・ネットワーク２００または３００のトポロジーおよびメンバーシップを学習することができる。ＤＦＰスイッチング・ネットワーク２００または３００内の発見されたメンバーシップに基づいて、マスタ・スイッチ２０４のそれぞれのスイッチ・コントローラ５３０ａは、各ポート５０２において、そのポート５０２で入力データ・トラフィックが受信され得るＤＦＰスイッチング・ネットワーク２００、３００の下位ティアの各ＲＰＩのためのそれぞれの入力ｖポート５２２およびそれぞれの出力ｖポート５２４を実装する（ブロック７０４）。その後、管理マスタ・スイッチ２０４、例えば、マスタ・スイッチ２０４ａが、管理インターフェース５５２を通じてＤＦＰスイッチング・ネットワーク２００または３００を仮想化されたスイッチ６００として構成し、管理し、制御することを許可する（ブロック７０６）。仮想化されたスイッチ６００として、ＤＦＰスイッチング・ネットワーク２００または３００は、仮想化されたスイッチ６００のすべての仮想化されたポート６０２が単一の物理的なスイッチ内にあるかのように動作するように構成、管理、および制御され得ることを理解されたい。したがって、例えば、ポート・ミラーリング、ポート・トランキング、マルチキャスト、拡張伝送選択（ＥＴＳ）（例えば、標準草案ＩＥＥＥ８０２．１Ｑａｚによるレート制限およびレート・シェーピング）、ならびに優先度ベース・フロー制御が、対応するＲＰＩが属するスイッチ２０２、３１０、３１２、またはホスト３０２に無関係に、仮想化されたポート６０２に関して実施され得る。その後、管理マスタ・スイッチ（例えば、マスタ・スイッチ２０４ａ）のスイッチ・コントローラ５３０ａの管理モジュール５５０が、その他のスイッチの制御モジュール５６０およびＦＩＢ５３２のプロパティを構成するために、その他のマスタ・スイッチ２０４、フォロワ・スイッチ２０２、または仮想スイッチ３１０、３１２、あるいはそれらすべてに制御情報をプッシュする（ブロック７０８）。その後、図８のプロセスは、ブロック７１０で終了する。
【００４３】
ここで図９を参照すると、一実施形態による、仮想化されたスイッチとして動作するように構成されたＤＦＰスイッチング・ネットワークの上位ティアに下位ティアからネットワーク・トラフィックが転送される例示的なプロセスの高レベルの論理的な流れ図が示されている。便宜上、図９のプロセスが、やはり、図２のＤＦＰスイッチング・ネットワーク２００および図３のＤＦＰスイッチング・ネットワーク３００に関連して説明される。
【００４４】
示されたプロセスは、ブロック８００で始まり、その後、ＤＦＰスイッチング・ネットワークの下位ティアのＲＰＩがマスタ・スイッチ２０４に送信されるべきデータ・フレームを受信することを示すブロック８０２に進む。ブロック８０４において破線で描くことによって示されるように、ＲＰＩが位置するフォロワ・スイッチ２０２またはホスト３０２は、管理マスタ・スイッチ２０４によってそうするように既に指示されている場合、データ・フレームに対するポリシー制御または（ＡＣＬを参照することによる）アクセス制御を任意で施行することができる。
【００４５】
ブロック８０６において、下位ティアのフォロワ・スイッチ２０２またはホスト３０２は、データ・フレームが受信された入力ＲＰＩを特定するために、データ・フレームにＲＰＩ識別子（例えば、Ｓタグ）を適用する。下位ティアのフォロワ・スイッチ２０２またはホスト３０２は、次いで、データ・フレームをＤＦＰスイッチング・ネットワーク２００または３００の上位ティアのマスタ・スイッチ２０４に転送する（ブロック８０８）。フォロワ・スイッチ２０２の場合、データ・フレームは、ブロック８０８において、ＦＩＢ５３２ｂによって示されるスイッチ間出力ポートを介して転送される。その後、図９に示されたプロセスは、ブロック８１０において終了する。
【００４６】
図１０を参照すると、一実施形態による、ＤＦＰスイッチング・ネットワークの下位ティアから受信されたデータ・フレームを上位ティアのマスタ・スイッチが処理する例示的なプロセスの高レベルの論理的な流れ図が示されている。示されたプロセスは、ブロック９００で始まり、次いで、ＤＦＰスイッチング・ネットワーク２００または３００のマスタ・スイッチ２０４がそのマスタ・スイッチ２０４のポート５０２でフォロワ・スイッチ２０２またはホスト３０２からデータ・フレームを受信することを示すブロック９０２に進む。データ・フレームの受信に応じて、データ・フレームが受信されたポート５０２の受信インターフェース５０４が、データ・フレームによって指定されたＲＰＩ識別子（例えば、Ｓタグ）にしたがってデータ・フレームを事前にクラス分けし、データ・フレームをそのＲＰＩに関連する入力ｖポート５２２のキューに追加する（ブロック９０４）。ブロック９０４から、図１０に示されたプロセスは、ブロック９１０と９２０の両方に進む。
【００４７】
ブロック９１０において、スイッチ・コントローラ５３０ａが、データ・フレームによって指定された宛先ＭＡＣアドレスを利用してＦＩＢ５３２ａにアクセスする。一致するＭＡＣフィールド５３６を有するＦＩＢのエントリ５３４が見つかる場合、処理は、以下で説明されるブロック９２２〜９２８で継続する。しかし、スイッチ・コントローラ５３０ａが、ブロック９１０において、宛先ＭＡＣアドレスが未知であると判定する場合、スイッチ・コントローラ５３０ａは、通常の発見技術を利用して宛先ＭＡＣアドレスと、出力ポート５０２と、宛先ＲＰＩとの間の関連付けを学習し、それに応じてＦＩＢ５３２ａを更新する。次いで、プロセスは、ブロック９２２〜９２８に進む。
【００４８】
ブロック９２０において、スイッチ・コントローラ５３０ａは、データ・フレームに、制御モジュール５６０ａによって入力ｖポート５２２に対して指定された任意のローカル・ポリシー５６２またはローカルＡＣＬ５６４を適用する。加えて、スイッチ・コントローラ５３０ａは、データ・フレームの入力に対する任意のその他の特別な処理を実行する。以下でより詳細に検討されるように、この特別な処理は、例えば、ポート・トランキング、優先度ベース・フロー制御、マルチキャスト、ポート・ミラーリング、またはＥＴＳの実施を含み得る。それぞれの種類の特別な処理が、以下でさらに説明されるように、入力または出力あるいはその両方でデータ・トラフィックに適用される可能性がある。次いで、プロセスは、ブロック９２２〜９２８に進む。
【００４９】
ここでブロック９２２〜９２４を参照すると、スイッチ・コントローラ５３０ａが、一致するＦＩＢのエントリ５３４のＶＰＩＤフィールド５４０で指定された（または発見プロセスによって学習された）ＲＰＩ識別子に等しくなるようにデータ・フレームのＲＰＩ識別子を更新し、データ・フレームを、一致するＦＩＢのエントリ５３４のＰＩＤフィールド５３８によって特定された（または発見プロセスによって学習された）対応する出力ｖポート５２４のキューに追加する。ブロック９２６において、スイッチ・コントローラ５３０ａは、データ・フレームに、制御モジュール５６０ａによって出力ｖポート５２４に対して指定された任意のローカル・ポリシー５６２またはローカルＡＣＬ５６４を適用する。加えて、スイッチ・コントローラ５３０ａは、例えば、ポート・トランキング、優先度ベース・フロー制御、マルチキャスト、ポート・ミラーリング、またはＥＴＳの実施を含む、データ・フレームの出力に対する任意のその他の特別な処理を実行する。その後、マスタ・スイッチ２０４は、データ・フレームをティア間リンク２０６を介してＤＦＰスイッチング・ネットワーク２００または３００の下位ティア（例えば、フォロワ・スイッチ２０２またはホスト３０２）に転送する（ブロック９２８）。その後、図１０に示されたプロセスは、ブロック９３０で終了する。
【００５０】
ここで図１１を参照すると、一実施形態による、ＤＦＰスイッチング・ネットワーク２００または３００の上位ティアのマスタ・スイッチから受信されたデータ・フレームを下位ティアのフォロワ・スイッチ２０２またはホスト３０２が処理する例示的なプロセスの高レベルの論理的な流れ図が示されている。図１１に示されたプロセスは、ブロック１０００で始まり、次いで、フォロワ・スイッチ２０２またはホスト３０２などの下位ティア・エンティティが、例えば、フォロワ・スイッチ２０２のスイッチ間ポート５０２で、またはホスト３０２のネットワーク・インターフェース４０４もしくはＶＭＭ３０４でマスタ・スイッチ２０４からデータ・フレームを受信することを示すブロック１００２に進む。
【００５１】
データ・フレームの受信に応じて、下位レベル・エンティティは、マスタ・スイッチ２０４によって更新されたＲＰＩ識別子をデータ・フレームから取り除く（ブロック１００４）。次に、下位レベル・エンティティは、データ・フレームを、抽出されたＲＰＩ識別子によって特定されたＲＰＩに流す（ブロック１００６）。したがって、例えば、スイッチ・コントローラ５３０ｂが、そのＲＰＩまたはデータ・フレームの宛先ＭＡＣアドレスあるいはその両方を用いてそのスイッチ・コントローラ５３０ｂのＦＩＢ５３２ｂにアクセスして一致するＦＩＢのエントリ５３４を特定し、次に、一致するＦＩＢのエントリ５３４のＰＩＤフィールド５３８で指定されたポートにデータ・フレームを転送するようにクロスバー５１０を制御する。ホストのネットワーク・インターフェース４０４またはＶＭＭ３０４も、同様にして、ＲＰＩ識別子によって示されたＲＰＩにデータ・フレームを導く。その後、プロセスは、ブロック１００８で終了する。
【００５２】
ここで図１２を参照すると、一実施形態による、ＤＦＰスイッチング・ネットワークでリンク・アグリゲーション・グループ（ＬＡＧ）を運用する例示的な方法の高レベルの論理的な流れ図が示されている。また、リンク・アグリゲーションは、当技術分野において、トランキング、リンク・バンドリング、ボンディング、チーミング、ポート・チャネル、ＥｔｈｅｒＣｈａｎｎｅｌ、およびマルチ・リンク・トランキングとさまざまに呼ばれる。
【００５３】
図１２に示されたプロセスは、ブロック１１００で始まり、次いで、複数のＲＰＩを含むＬＡＧの、ＤＦＰスイッチング・ネットワーク２００または３００のマスタ・スイッチ２０４における確立を示すブロック１１０２に進む。通常のＬＡＧと異なり、ＤＦＰスイッチング・ネットワーク２００または３００で確立されるＬＡＧは、複数の異なる（および異種である可能性がある）フォロワ・スイッチ２０２またはホスト３０２あるいはその両方のＲＰＩを含み得る。例えば、図２〜３のＤＦＰスイッチング・ネットワーク２００および３００においては、単一のＬＡＧが、フォロワ・スイッチ２０２ａ〜２０２ｄまたはホスト３０２ａ〜３０２ｄあるいはその両方のうちの１つまたは複数のＲＰＩを含む可能性がある。
【００５４】
少なくとも一部の実施形態において、ＬＡＧは、例えば、クライアント・デバイス１１０ａ〜１１０ｃのうちの１つに配置されたシステム管理者が管理マスタ・スイッチ２０４の管理インターフェース５５２とインタラクションすることによって、マスタ・スイッチ２０４の静的な構成によってマスタ・スイッチ２０４において確立され得る。代替的にまたは追加的に、ＬＡＧは、参照により本明細書に組み込まれているＩＥＥＥ８０２．１ＡＸ−２００８で定義されたリンク・アグリゲーション制御プロトコル（Link Aggregation Control Protocol）（ＬＡＣＰ）によるマスタ・スイッチ２０４と１つまたは複数の下位ティア・エンティティ（例えば、フォロワ・スイッチ２０２またはホスト３０２）との間のメッセージの交換によってマスタ・スイッチ２０４において確立され得る。ＬＡＧはマスタ・スイッチ２０４において確立されるので、ＬＡＧに属するティア間リンク２０６に接続された下位レベル・エンティティの必ずしもすべてがＬＡＧのサポートを提供する（またはＬＡＧの存在を認識することさえ）必要はないことを理解されたい。
【００５５】
好ましくは、ブロック１１０２に示されたマスタ・スイッチ２０４におけるＬＡＧの確立は、図１３に示されるスイッチ・コントローラ５３０ａ内のＬＡＧデータ構造１２００にＬＡＧのメンバーシップを記録することを含む。示された例示的な実施形態において、ＬＡＧデータ構造１２００は、それぞれのＬＡＧにおけるメンバーシップをそれぞれが指定する１つまたは複数のＬＡＧメンバーシップ・エントリ１２０２を含む。１つの好ましい実施形態において、ＬＡＧメンバーシップ・エントリ１２０２は、ＬＡＧを形成するＲＰＩまたはＲＰＩに関連するｖポート５２０によってＬＡＧのメンバーシップを表現する。その他の実施形態においては、ＬＡＧは、代替的にまたは追加的に、マスタ・スイッチ２０４とＲＰＩとを接続するティア間リンク２０６によって表現される可能性がある。理解されるであろうように、ＬＡＧデータ構造１２００は、独立したデータ構造として実装され得るか、またはＦＩＢ５３２ａなどの別のデータ構造の１つもしくは複数のフィールドで実装され得る。
【００５６】
ＬＡＧの確立に続いて、マスタ・スイッチ２０４は、図１０のブロック９２０〜９２６を参照して上述されたように、ＬＡＧ内のＲＰＩに導かれるデータ・フレームに対する特別な処理を実行する。特に、ブロック１１０４に示されるように、スイッチ・コントローラ５３０ａが、転送するために受信されたデータ・フレームを監視し、例えば、ＦＩＢ５３２ａまたはＬＡＧデータ構造１２００あるいはその両方を参照することによって、データ・フレームに含まれる宛先ＭＡＣアドレスがＬＡＧに属するＲＰＩに関連することが分かっているか否かを判定する。ブロック１１０４における否定の判定に応じて、プロセスは、以下で説明されるブロック１１１２に進む。しかし、スイッチ・コントローラ５３２ａが、ブロック１１０４において、データ・フレームがＬＡＧに属するＲＰＩに関連する宛先ＭＡＣにアドレス指定されていると判定する場合、スイッチ・コントローラ５３２ａは、ＬＡＧのメンバーシップの中からそのデータ・フレームのための出力ＲＰＩを選択する。
【００５７】
ブロック１１１０において、スイッチ・コントローラ５３２ａは、ラウンド・ロビン、ブロードキャスト、負荷分散、またはハッシュを含む複数のＬＡＧのポリシーのいずれかに基づいてＬＡＧのメンバーシップの中から出力ＲＰＩを選択することができる。ハッシュされるＬＡＧのポリシーの１つの実装において、スイッチ・コントローラ５３２ａは、所与の宛先ＭＡＣアドレスのために同じＲＰＩを常に選択するために、発信元ＭＡＣアドレスと宛先ＭＡＣアドレスの排他的論理和を取り、その結果に対してＬＡＧのサイズを用いてモジュロ演算を実行する。その他の実施形態において、ハッシュされるＬＡＧのポリシーは、発信元ＩＰアドレス、宛先ＩＰアドレス、発信元ＭＡＣアドレス、宛先アドレス、もしくは発信元ＲＰＩ、またはそれらすべてなどを含む異なるまたはさらなる要因に基づいて出力ＲＰＩを選択する可能性がある。
【００５８】
ブロック１１１２に示されるように、例えば、マスタ・スイッチ２０４の静的な構成を削除することによってまたはＬＣＡＰを介してＬＡＧが構成を解除されるまで、ＬＡＧ全体へのデータ・フレームの「散布」または分散が継続する。その後、図１２に示されたプロセスは、ブロック１１２０で終了する。
【００５９】
異なる下位レベル・エンティティにわたるマスタ・スイッチ２０４における分散されたＬＡＧを実装する能力は、追加的なネットワークの能力をもたらす。例えば、同じサービスを提供する複数のＶＭ３０６を含むＤＦＰスイッチング・ネットワーク３００においては、すべてのそのようなＶＭをメンバーとして有するＬＡＧを形成することは、サービスに関するデータ・トラフィックが、ＶＭＭ３０４によるいかなる管理もなしにサービス・タグおよびその他のタプルのフィールドに基づいてＶＭ３０６全体に自動的に負荷分散されることを可能にする。さらに、そのような負荷分散は、異なるＶＭＭ３０４および異なるホスト３０２で実行されるＶＭ３０６にまたがって実現され得る。
【００６０】
上述のように、図１０のブロック９２０〜９２６において任意で実行される特別な処理は、ＬＡＧへのフレームの分散だけでなく、データ・トラフィックのマルチキャストも含み得る。ここで図１４を参照すると、一実施形態による、ＤＦＰスイッチング・ネットワークにおけるマルチキャストの例示的な方法の高レベルの論理的な流れ図が示されている。プロセスは、ブロック１３００で始まり、次いで、図１０のブロック９２０〜９２６を参照して既に説明されたように、マルチキャスト・データ・トラフィックのためにマスタ・スイッチによって実行される特別な処理を示すブロック１３０２〜１３２２に進む。
【００６１】
具体的には、ブロック１３１０において、マスタ・スイッチ２０４のスイッチ・コントローラ５３０ａが、データ・トラフィック内で指定された宛先ＭＡＣアドレスまたはＩＰアドレスを参照することによって、データ・トラフィックがマルチキャスト配信を要求するかどうかを判定する。例えば、ＩＰは、２２４．０．０．０から２３９．２５５．２５５．２５５までをマルチキャスト・アドレスのために予約しており、イーサネットは、少なくとも表Ｉにまとめられたマルチキャスト・アドレスを利用する。
【００６２】
【表１】
0005497244.tif 000002
【００６３】
データ・トラフィックがマルチキャスト処理を必要としないとのブロック１３１０における判定に応じて、（その他の特別な処理が実行される可能性があるが）マルチキャスト処理はデータ・トラフィックに対して実行されず、プロセスはブロック１３１０で反復する。しかし、スイッチ・コントローラ５３０ａが、ブロック１３１０において、入力データ・トラフィックがマルチキャスト・トラフィックであると判定する場合、プロセスは、ブロック１３１２に進む。
【００６４】
ブロック１３１２において、スイッチ・コントローラ５３０ａは、マルチキャスト・インデックス・データ構造内でそのマルチキャスト・データ・トラフィックの検索を行う。例えば、図１５に示される１つの例示的な実施形態においては、スイッチ・コントローラ５３０ａが、レイヤ２のマルチキャスト・フレームのためのレイヤ２・マルチキャスト・インデックス・データ構造１４００と、レイヤ３のマルチキャスト・パケットのためのレイヤ３・マルチキャスト・インデックス・データ構造１４１０とを実装する。示された例示的な実施形態において、例えばテーブルとして実装され得るレイヤ２・マルチキャスト・インデックス・データ構造１４００は、入力ＲＰＩ、発信元ＭＡＣアドレス、宛先ＭＡＣアドレス、およびＶＬＡＮから形成される４つ組みフィールド１４０４を、マルチキャスト宛先データ構造１４２０に対するインデックスを指定するインデックス・フィールド１４０６にそれぞれが関連付ける複数のエントリ１４０２を含む。同様にテーブルとして実装され得るレイヤ３・マルチキャスト・インデックス・データ構造１４１０は、発信元レイヤ３（例えば、ＩＰ）アドレスおよびマルチキャスト・グループＩＤから形成される２つ組みフィールド１４１４を、マルチキャスト宛先データ構造１４２０に対するインデックスを指定するインデックス・フィールド１４１６にそれぞれが関連付ける複数のエントリ１４１２を含む。さらに、テーブルまたはリンクされたリストとしてやはり実装され得るマルチキャスト宛先データ構造１４２０は、データ・トラフィックが送信されるべき下位ティアの１つまたは複数のＲＰＩをそれぞれが特定する複数のマルチキャスト宛先エントリ１４２２を含む。レイヤ２・マルチキャスト・データ構造１４００、レイヤ３・マルチキャスト・インデックス・データ構造１４１０、およびマルチキャスト宛先データ構造１４２０は、すべて、通常のＭＣの学習プロセスで制御プレーンによってデータを投入されることが好ましい。
【００６５】
したがって、ブロック１３１２において、スイッチ・コントローラ５３０ａは、データ・トラフィックがレイヤ２・マルチキャスト・フレームである場合、レイヤ２・マルチキャスト・インデックス・データ構造１４００内でマルチキャスト宛先データ構造１４２０に対するインデックスを得るための検索を行い、データ・トラフィックがＬ３・マルチキャスト・パケットである場合、レイヤ３・マルチキャスト・インデックス・データ構造１４１０内の検索を行う。ブロック１３１４に示されるように、マスタ・スイッチ２０４は、好ましくはスイッチ・コントローラ５３０ａにおいて構成された所望の実装によって、入力の複製または出力の複製のどちらかを通じてデータ・トラフィックのマルチキャストを処理することができる。出力の複製がマスタ・スイッチ２０４で構成される場合、プロセスは、スイッチ・コントローラ５３０ａが、データ・トラフィックの単一のコピーがクロスバー５１０を通過し、ブロック１３１２において取得されたインデックスによって特定されたマルチキャスト宛先エントリ１４２２で特定されたＲＰＩに対応する各出力キュー５１４で複製されるようにすることを示すブロック１３１６に進む。理解されるであろうように、マルチキャスト・トラフィックの出力の複製は、ヘッド・オブ・ライン（ＨＯＬ）ブロッキング（head-of-line (HOL) blocking）を代償としてクロスバー５１０の帯域幅の利用を削減する。ブロック１３１６に続いて、マスタ・スイッチ２０４による複製されたデータ・トラフィックの処理が、図１０に既に示されたように継続する（ブロック１３３０）。
【００６６】
一方、マスタ・スイッチ２０４が入力の複製のために構成される場合、プロセスは、ブロック１３１４から、スイッチ・コントローラ５３０ａが、インデックスで指定されたマルチキャスト宛先エントリ１４２２で特定されたＲＰＩに関連する出力キュー５１４を有するポート５０２の入力キュー５０６のそれぞれの中でマルチキャスト・データ・トラフィックが複製されるようにすることを示すブロック１３２０に進む。理解されるであろうように、このような入力の複製は、ＨＯＬブロッキングを解消する。ブロック１３２０に続いて、データ・トラフィックは、図１０を参照して上で検討されたように追加的な処理を受ける。そのような処理において、スイッチ・コントローラ５３０ａは、入力で複製されたマルチキャスト・データ・トラフィックを入力キュー５０６から同じポート５０２の出力キュー５１４に直接送信するようにクロスバー５１０を制御する。
【００６７】
理解されるであろうように、フォロワ・スイッチ２０２ではなく、説明されたようにＤＦＰスイッチング・ネットワーク２００のマスタ・スイッチ２０４にＭＣの処理を実装することは、データ・トラフィックのマルチキャスト配信に対応している必要がない簡素化されたフォロワ・スイッチ２０２の使用を可能にする。
【００６８】
図１０のブロック９２０〜９２６を参照して上で説明されたように、ＤＦＰスイッチング・ネットワークにおけるデータ・トラフィックの特別な処理は、データ・トラフィックに対するＥＴＳの適用を任意で含む可能性がある。図１６は、一実施形態による、ＤＦＰスイッチング・ネットワーク２００または３００における拡張伝送選択（ＥＴＳ）の例示的な方法の高レベルの論理的な流れ図である。
【００６９】
図１６に示されたプロセスは、ブロック１５００で始まり、次に、例えば、ＤＦＰスイッチング・ネットワーク２００または３００の管理マスタ・スイッチ２０４の管理インターフェース５５２を介して、ＥＴＳを実施するようにマスタ・スイッチ２０４を構成することを示すブロック１５０２に進む。さまざまな実施形態において、ＥＴＳは、マスタ・スイッチ２０４の入力または出力あるいはその両方で実施されるように構成される。
【００７０】
標準草案ＩＥＥＥ８０２．１Ｑａｚで定義されているＥＴＳは、複数のトラフィック・クラス・グループ（traffic class group）を確立し、ＴＣＧの間でリンクの利用の所望のバランスを実現するために、トラフィックのキュー（例えば、入力ｖポート５２２または出力ｖポート５２４）からのさまざまなＴＣＧのデータ・トラフィックの送信の優先度（すなわち、スケジューリング）を指定する。ＥＴＳは、各ＴＣＧに関する最小の保証される帯域幅を確立するだけでなく、優先度のより高いＴＣＧが名目的に利用可能な利用される帯域幅を優先度のより低いトラフィックが消費することも可能にし、それによって、優先度のより低いトラフィックのスターベーションを防止しながらリンクの利用および柔軟性を改善する。マスタ・スイッチ２０４におけるＥＴＳの構成は、例えば、マスタ・スイッチ２０４のスイッチ・コントローラ５３０ａ内で、図１７に示されるようなＥＴＳデータ構造１６００を確立すること、またはそのようなＥＴＳデータ構造１６００にデータを投入すること、あるいはその両方を含み得る。図１７に示される例示的な実施形態において、例えばテーブルとして実装され得るＥＴＳデータ構造１６００は、複数のＥＴＳエントリ１６０２を含む。示された実施形態において、各ＥＴＳエントリ１６０２は、所与のＴＣＧに属する（１つまたは複数の）トラフィックの種類（例えば、ファイバ・チャネル（ＦＣ）、イーサネット、ＦＣオーバ・イーサネット（ＦＣｏＥ）、ｉＳＣＳＩなど）を定義するＴＣＧフィールド１６０４と、ＴＣＧフィールド１６０４で定義されたＴＣＧに関する保証される最小の帯域幅を（例えば、絶対的にまたは割合として）定義する最小フィールド１６０６と、ＴＣＧフィールド１６０４で定義されたＴＣＧに関する最大の帯域幅を（例えば、絶対的にまたは割合として）定義する最大フィールド１６０８とを含む。
【００７１】
図１６に戻ると、マスタ・スイッチ１５０２においてＥＴＳを構成した後、プロセスは、図１０のブロック９２０〜９２６においてＥＴＳに関して任意で実行される特別な処理を示すブロック１５０４〜１５１０に進む。具体的には、ブロック１５０４は、入力ｖポート５２０または出力ｖポート５２２で受信されたデータ・フレームが、例えばＥＴＳデータ構造１６００によって定義された現在構成されているＥＴＳのＴＣＧに属するトラフィック・クラスに属するか否かをマスタ・スイッチ２０４が判定することを示す。理解されるであろうように、データ・フレームは、通常のイーサネット・フレームなどのＥｔｈｅｒｔｙｐｅフィールドに基づいてクラス分けされ得る。受信されたデータ・フレームが現在構成されているＥＴＳのＴＣＧに属さないとのブロック１５０４における判定に応じて、データ・フレームは、ベスト・エフォートのスケジューリングを受け、プロセスは、以下で説明されるブロック１５１２に進む。
【００７２】
ブロック１５０４に戻ると、受信されたデータ・フレームが現在構成されているＥＴＳのＴＣＧに属するとの判定に応じて、マスタ・スイッチ２０４は、ＥＴＳデータ構造１６００の関連するＥＴＳエントリ１６０２のフィールド１６０６、１６０８内でそのＥＴＳのＴＣＧに対して指定された最小および最大帯域幅にしたがうようにデータ・フレームに対してレート制限およびトラフィック・シェーピングを適用する（ブロック１５１０）。上述のように、構成に応じて、マスタ・スイッチ２０４は、入力ｖポート５２２または出力ｖポート５２４あるいはその両方のＶＯＱに対してＥＴＳを適用することができる。次いで、プロセスは、マスタ・スイッチ２０４が、ブロック１５０４および１５１０で示されたようにトラフィック・クラスに対するＥＴＳを、そのトラフィック・クラスに関してＥＴＳが構成を解除されるまで実施することを示すブロック１５１２に進む。その後、図１６に示されたプロセスは、ブロック１５２０で終了する。
【００７３】
ＤＦＰスイッチング・ネットワーク２００または３００においては、有利なことに、フロー制御が、図１６〜１７を参照して説明されたようにマスタ・スイッチ２０４において実施され得るだけでなく、フォロワ・スイッチ２０２およびホスト３０２などの下位ティア・エンティティのＲＰＩにおいても実施され得る。ここで図１８を参照すると、ＤＦＰスイッチング・ネットワーク２００または３００が下位ティアにおいて優先度ベース・フロー制御（ＰＦＣ）またはその他のサービスあるいはその両方を実施する例示的な方法の高レベルの論理的な流れ図が示されている。
【００７４】
図１８に示されたプロセスは、ブロック１７００で始まり、次いで、マスタ・スイッチ２０４が、例えば、（１）下位ティア・エンティティの少なくとも１つのＲＰＩに対応する仮想化されたポート６０２ａ〜６０２ｄに関するＰＦＣの構成を、管理モジュール５５０を実行する管理マスタ・スイッチ２０４で受信すること、または（２）ネットワーク内の下流のエンティティから生じ、パス・スルー・フォロワ・スイッチ２０２を介してマスタ・スイッチ２０４で受信される規格に基づくＰＦＣデータ・フレームをマスタ・スイッチ２０４で受信することに応じてＤＦＰスイッチング・ネットワーク２００または３００の下位ティアのエンティティに関する優先度ベース・フロー制御（ＰＦＣ）を実施することを示すブロック１７０２に進む。当業者に理解されるであろうように、規格に基づくＰＦＣデータ・フレームは、トラフィック・フローの輻輳を上流のエンティティに知らせるために、上流のエンティティからデータ・トラフィック・フローを受信する下流のエンティティによって生成され得る。マスタ・スイッチ２０４が下位ティア・エンティティに関するＰＦＣの構成を受信したとのブロック１７０２における肯定の判定に応じて、プロセスは、マスタ・スイッチ２０４が、ＰＦＣに関して下位ティア・エンティティを構成するためにＰＦＣ構成フィールドによって拡張された独自仕様のデータ・フレーム（以降、独自仕様ＰＦＣデータ・フレームと呼ばれる）を構築し、その独自仕様のデータ・フレームを少なくとも１つの下位ティア・エンティティ（例えば、フォロワ・スイッチ２０２またはホスト３０２）に送信することを示すブロック１７０４に進む。その後、図１８に示されたプロセスは、ブロック１７０６において終了する。
【００７５】
ここで図１９を参照すると、一実施形態による例示的な独自仕様ＰＦＣデータ・フレーム１８００の構造が示されている。図１８のブロック１７０４を参照して既に説明されたように、独自仕様ＰＦＣデータ・フレーム１８００は、下位ティア・エンティティにおいてＰＦＣを実施するために、マスタ・スイッチ２０４によって構築され、フォロワ・スイッチ２０２またはホスト３０２などのＤＦＰスイッチング・ネットワークの下位ティア・エンティティに送信され得る。
【００７６】
示された例示的な実施形態において、独自仕様ＰＦＣデータ・フレーム１８００は、拡張されたイーサネットＭＡＣ制御フレームとして実装される。結果として、独自仕様ＰＦＣデータ・フレーム１８００は、マスタ・スイッチ２０４がデータ・フレームを受信する可能性がある下位ティア・エンティティのＲＰＩのＭＡＣアドレスを指定する宛先ＭＡＣアドレス・フィールド１８０２と、独自仕様ＰＦＣデータ・フレーム１８００が送信されるマスタ・スイッチ２０４の出力ｖポートを特定する発信元ＭＡＣアドレス・フィールド１８０４とを含む。アドレス・フィールド１８０２、１８０４の後には、（例えば、値０ｘ８８０８によって）ＰＦＣデータ・フレーム１８００をＭＡＣ制御フレームとして特定するＥｔｈｅｒｔｙｐｅフィールド１８０６が続く。
【００７７】
次に、独自仕様ＰＦＣデータ・フレーム１８００のデータ・フィールドが、（例えば、ＰＡＵＳＥコマンドの値０ｘ０１０１によって）独自仕様ＰＦＣデータ・フレーム１８００がフロー制御を実施するためのものであることを示すＭＡＣ制御命令コード・フィールド１８０８から始まる。ＭＡＣ制御命令コード・フィールド１８０８の後には、有効化フィールド（enable field）１８１２およびクラス・ベクトル・フィールド（class vector field）１８１４を含む優先度有効化ベクトル（priorityenable vector）１８１０が続く。一実施形態において、有効化フィールド１８１２は、独自仕様ＰＦＣデータ・フレーム１８００が独自仕様ＰＦＣデータ・フレーム１８００の宛先である下位ティア・エンティティのＲＰＩでフロー制御を実施するためのものであるか否かを最下位ビットの状態によって示す。さらに、クラス・ベクトル１８１４が、独自仕様ＰＦＣデータ・フレーム１８００によってトラフィックのＮ個のクラスのうちのどのクラスに関してそのフロー制御が実施されるのかを、例えばマルチ・ホット符号化（multi-hotencoding）を利用して示す。優先度有効化ベクトル１８１０に続いて、独自仕様ＰＦＣデータ・フレーム１８００は、フロー制御が実施され得るトラフィックのＮ個のクラスのそれぞれ１つにそれぞれが対応するＮ個のタイム・クォンタム・フィールド１８２０ａ〜１８２０ｎを含む。有効化フィールド１８１２がＲＰＩに関するフロー制御を有効化するように設定され、クラス・ベクトル１８１４の対応するビットが特定のトラフィック・クラスに関するフロー制御を示すように設定されていると仮定すると、所与のタイム・クォンタム・フィールド１８２０は、関連するトラフィック・クラスのデータのＲＰＩによる送信の最大帯域幅を（例えば、割合としてまたは絶対的な値として）指定する。さらに、独自仕様ＰＦＣデータ・フレーム１８００によってフロー制御が構成されるＲＰＩが、ＲＰＩフィールド１８２４によって指定される。
【００７８】
データ・フィールドに続いて、独自仕様ＰＦＣデータ・フレーム１８００は、所定のサイズの独自仕様ＰＦＣデータ・フレーム１８００を得るために任意のパディング１８２６を含む。最後に、独自仕様ＰＦＣデータ・フレーム１８００は、独自仕様ＰＦＣデータ・フレーム１８００の誤りを検出するために利用される通常のチェックサム・フィールド１８３０を含む。
【００７９】
理解されるであろうように、独自仕様ＰＦＣデータ・フレーム１８００は、ＲＰＩに関するフロー制御以外の機能をトリガするために利用され得る。例えば、独自仕様ＰＦＣデータ・フレーム１８００は、指定されたＲＰＩに関して（例えば、タイム・クォンタム・フィールド１８２０の特別に予約された値を利用して）サービスをトリガするために利用される可能性もある。これらの追加的なサービスは、例えば、サーバの負荷分散ポリシーを作り直すこと、ファイアウォールの制限を更新すること、サービス拒否（ＤＯＳ）攻撃の検査を施行することなどを含み得る。
【００８０】
図２０を参照すると、一実施形態による、マスタ・スイッチ２０４から受信された独自仕様ＰＦＣデータ・フレーム１８００をフォロワ・スイッチ２０２などのＤＦＰスイッチング・ネットワーク２００または３００の下位レベル・エンティティが処理する例示的なプロセスの高レベルの論理的な流れ図が示されている。
【００８１】
プロセスは、ブロック１９００で始まり、次いで、フォロワ・スイッチ２０２などのパス・スルー下位レベル・エンティティが独自仕様ＰＦＣデータ・フレーム１８００の受信を監視することを示すブロック１９０２に進む。例えば、ＭＡＣ制御命令コード・フィールド１８０８に基づくクラス分けによって検出される独自仕様ＰＦＣデータ・フレーム１８００の受信に応じて、プロセスは、ブロック１９０２からブロック１９０４に進む。ブロック１９０４は、フォロワ・スイッチ２０２（例えば、スイッチ・コントローラ５３０ｂ）が、例えば、非標準フィールド１８１０、１８２０、および１８２４を抽出することによって独自仕様ＰＦＣデータ・フレーム１８００を規格に基づくＰＦＣデータ・フレームに変換することを示す。次いで、フォロワ・スイッチ２０２は、例えば、ＲＰＩフィールド１８２４から抽出されたＲＰＩをＦＩＢ５３２ｂを参照してポートＩＤに変換することによって規格に基づくＰＦＣデータ・フレームのための出力データ・ポート２１０を決定し、結果として得られた規格に基づくＰＦＣデータ・フレームを、決定された出力データ・ポート２１０を介して、輻輳を引き起こすデータ・トラフィックの発信元に転送する（ブロック１９０６）。その後、図２０に示されたプロセスは、ブロック１９１０において終了する。ＰＦＣはＲＰＩごとに個別に実施され得るので、説明されたプロセスは、同じ下位ティア・エンティティ（例えば、フォロワ・スイッチ２０２またはホスト３０２）の異なるＲＰＩに対して異なるＰＦＣを実施するために利用され得ることに留意されたい。さらに、下位ティア・エンティティのＲＰＩはＶＯＱ６０４によって表されるので、同じポート５０２が異なるｖポート５２２、５２４のデータ・トラフィックに対して異なるＰＦＣを実施するように、ＲＰＩのうちの１つまたは複数に関する個別化されたＰＦＣがマスタ・スイッチ２０４において択一的および選択的に実施され得る。
【００８２】
ここで図２１を参照すると、一実施形態による、マスタ・スイッチ２０４から受信された独自仕様ＰＦＣデータ・フレーム１８００をホスト３０２などのＤＦＰスイッチング・ネットワーク２００または３００の下位レベル・エンティティが処理する例示的なプロセスの高レベルの論理的な流れ図が示されている。
【００８３】
プロセスは、ブロック１９２０で始まり、次いで、ホスト３０２のネットワーク・インターフェース４０４（例えば、ＣＮＡまたはＮＩＣ）が、例えば、ＭＡＣ制御命令コード・フィールド１８０８に基づいて入力データ・フレームをクラス分けすることによって独自仕様ＰＦＣデータ・フレーム１８００の受信を監視することを示すブロック１９２２に進む。独自仕様ＰＦＣデータ・フレーム１８００の受信を検出することに応じて、プロセスは、ブロック１９２２からブロック１９３０に進む。ブロック１９３０は、ネットワーク・インターフェース４０４が、独自仕様ＰＦＣデータ・フレーム１８００を、例えば、割り込みまたはその他のメッセージによって、処理のためにＶＭＭ３０４に送信することを示す。独自仕様ＰＦＣデータ・フレーム１８００の受信に応じて、さらに、ハイパーバイザ３０４が、独自仕様ＰＦＣデータ・フレーム１８００を、独自仕様ＰＦＣデータ・フレーム１８００のＲＰＩフィールド１８２４で示されたＲＰＩに関連するＶＭ３０６に送信する（ブロック１９３２）。それに応じて、ＶＭ３０６が、独自仕様ＰＦＣデータ・フレーム１８００によって示された特定のアプリケーションおよびトラフィックの優先度に対してＰＦＣ（または独自仕様ＰＦＣデータ・フレーム１８００によって示されたその他のサービス）を適用する（ブロック１９３４）。したがって、ＰＦＣは、優先度ごと、アプリケーションごとに実施可能であり、例えば、データ・センターのサーバ・プラットフォームが、例えば、そのデータ・センターのサーバ・プラットフォームと通信するビデオ・ストリーミング・クライアントからのバック・プレッシャーに応じて、第２のＶＭ３０６（例えば、ＦＴＰサーバ）とは異なるＰＦＣを第１のＶＭ３０６（例えば、ビデオ・ストリーミング・サーバ）に適用することを可能にする。ブロック１９３４の後、図２１に示されたプロセスは、ブロック１９４０で終了する。
【００８４】
上述のように、少なくとも一部の実施形態において、スイッチング・ネットワークは、マスタ・スイッチを含む上位ティアと、複数の下位ティア・エンティティを含む下位ティアとを含む。マスタ・スイッチは、複数の下位ティア・エンティティのうちのそれぞれ１つとそれぞれが結合された複数のポートを含む。複数のポートのそれぞれは、そのポートに結合された下位ティア・エンティティの複数のリモート物理インターフェース（ＲＰＩ）のうちのそれぞれ１つにそれぞれが対応する複数の仮想ポートを含む。複数のポートのそれぞれは、複数の下位ティア・エンティティの中の特定の下位ティア・エンティティからのデータ・トラフィックの受信に応じて、データ・トラフィックの発信元であった特定の下位ティア・エンティティのＲＰＩに対応する、複数の仮想ポートの中の仮想ポートのキューにそのデータ・トラフィックを追加する受信インターフェースも含む。マスタ・スイッチは、仮想ポートからのデータ・トラフィックを、そのデータ・トラフィックがその出力ポートから転送される複数のポートの中の出力ポートにスイッチングするスイッチ・コントローラをさらに含む。
【００８５】
上位ティアと下位ティアとを含むスイッチング・ネットワークの一部の実施形態において、それぞれの下位ティア・エンティティにそれぞれが結合された複数のポートを有する上位ティアのマスタ・スイッチは、ポートのそれぞれに、そのポートに結合された下位ティア・エンティティの複数のリモート物理インターフェース（ＲＰＩ）のそれぞれ１つにそれぞれが対応する複数の仮想ポートを実装する。マスタ・スイッチとＲＰＩの間で伝達されるデータ・トラフィックは、そのデータ・トラフィックが伝達される下位ティア・エンティティのＲＰＩに対応する仮想ポート内のキューに追加される。マスタ・スイッチは、対応するＲＰＩが存在する下位ティア・エンティティに、その特定のＲＰＩによって伝達されるデータ・トラフィックの少なくとも２つの異なるクラスに関する優先度を指定する優先度ベース・フロー制御（ＰＦＣ）データ・フレームを送信することによって、所与の仮想ポートのデータ・トラフィックに対するＰＦＣを施行する。
【００８６】
上位ティアと下位ティアとを含むスイッチング・ネットワークの一部の実施形態において、それぞれの下位ティア・エンティティにそれぞれが結合された複数のポートを有する上位ティアのマスタ・スイッチは、ポートのそれぞれに、そのポートに結合された下位ティア・エンティティの複数のリモート物理インターフェース（ＲＰＩ）のそれぞれ１つにそれぞれが対応する複数の仮想ポートを実装する。マスタ・スイッチとＲＰＩの間で伝達されるデータ・トラフィックは、そのデータ・トラフィックが伝達されるＲＰＩに対応する仮想ポート内のキューに追加される。マスタ・スイッチは、少なくともデータ・トラフィックがキューに追加される仮想ポートに基づく制御ポリシーにしたがってデータ・トラフィックにデータ処理を適用し、したがって、マスタ・スイッチは、マスタ・スイッチの同じポートの２つの仮想ポートのキューに追加されたデータ・トラフィックに異なるポリシーを適用する。
【００８７】
本発明が、１つまたは複数の好ましい実施形態を参照して説明されたように具体的に示されたが、本発明の精神および範囲を逸脱することなくそれらの好ましい実施形態において形態および詳細のさまざまな変更がなされ得ることが、当業者に理解されるであろう。例えば、態様が、本明細書に記載の機能に指示を与えるプログラム・コード（例えば、ソフトウェア、ファームウェア、またはこれらの組み合わせ）を実行する１つまたは複数の機械（例えば、ホストまたはネットワーク・スイッチあるいはその両方）に関連して説明されたが、実施形態は、代替的に、説明された機能のうちの１つまたは複数を機械に実行させる、機械によって処理され得るプログラム・コードを記憶する有形の機械可読ストレージ媒体またはストレージ・デバイス（例えば、光学式ストレージ媒体、メモリ・ストレージ媒体、ディスク・ストレージ媒体など）を含むプログラム製品として実装され得ることを理解されたい。
【図１】
0005497244.tif 000003
【図２】
0005497244.tif 000004
【図３】
0005497244.tif 000005
【図４】
0005497244.tif 000006
【図５】
0005497244.tif 000007
【図６】
0005497244.tif 000008
【図７】
0005497244.tif 000009
【図８】
0005497244.tif 000010
【図９】
0005497244.tif 000011
【図１０】
0005497244.tif 000012
【図１１】
0005497244.tif 000013
【図１２】
0005497244.tif 000014
【図１３】
0005497244.tif 000015
【図１４】
0005497244.tif 000016
【図１５】
0005497244.tif 000017
【図１６】
0005497244.tif 000018
【図１７】
0005497244.tif 000019
【図１８】
0005497244.tif 000020
【図１９】
0005497244.tif 000021
【図２０】
0005497244.tif 000022
【図２１】
0005497244.tif 000023