(57)【要約】  １つのノードにつき複数のリンクをサポートするツリー状又はグラフトポロジを使用してルーティングをサポートするシステム及び方法を提供し、各リンクをトポロジ内で上りリンク、下りリンク、又はラテラルリンク、又はこれらの両方として指定する。システムは、セグメント化したＭＡＣアーキテクチャを使用することができ、このアーキテクチャは、ＭＡＣ  ＩＰアドレスを内部ＭＡＣ及び外部ＭＡＣに再利用し、通常であればＭＡＣがスイッチに送り込むための物理シグナリングとなったであろうものを利用する方法を有することができる。【選択図】図１Ａ
2013509808.tif 000002
【特許請求の範囲】
【請求項１】
スイッチ構造システムであって、
複数のノードと、
各ノードに関連する複数のリンクと、
を含み、前記複数のリンクは、前記ノードを前記複数のノード内の別のノードに接続して、前記複数のノードを通じてデータをルーティングするための、前記スイッチ構造のツリートポロジ又はグラフトポロジの一方を形成し、
各リンクが、前記トポロジ内で上りリンク、下りリンク、及びラテラルリンクのうちの１つとして指定される、
ことを特徴とするシステム。
【請求項２】
各ノードを、計算及びスイッチノード、及びスイッチノードの一方とすることができる、
ことを特徴とする請求項１に記載のスイッチ構造システム。
【請求項３】
各ノードが入出力部を含む、
ことを特徴とする請求項２に記載のシステム。
【請求項４】
各々を計算及びスイッチノード、及びスイッチノードの一方とすることができる複数のノードを有する、
ことを特徴とするスイッチ構造システム。
【請求項５】
セグメント化された媒体アクセス制御（ＭＡＣ）アーキテクチャによる複数のノードを有するスイッチ構造システムのためのスイッチであって、
前記スイッチ内のデータのルーティングを制御する少なくとも１つのプロセッサユニットと、
前記少なくとも１つのプロセッサに接続されて、イーサネットコントローラへのデータ用インターフェイスを有する、前記スイッチの第１の部分と、
前記データを複数のパケットに変換し、該複数のパケットを構造スイッチに送信する、前記スイッチの第２の部分と、
前記スイッチの前記第２の部分に接続された、イーサネットシグナリングを実行するポートを有するパケットスイッチと、
を備えることを特徴とするスイッチ。
【請求項６】
前記スイッチ構造が、
前記スイッチ内のデータのルーティングを制御する少なくとも１つのプロセッサユニットと、
前記少なくとも１つのプロセッサに接続されて、イーサネットコントローラへのデータ用インターフェイスを有する、前記スイッチの第１の部分と、
前記データを複数のパケットに変換し、該複数のパケットを構造スイッチに送信する、前記スイッチの第２の部分と、
前記スイッチの前記第２の部分に接続された、イーサネットシグナリングを実行するポートを有するパケットスイッチと、
を備えることを特徴とする請求項１に記載のシステム。
【請求項７】
前記スイッチ構造が、
前記スイッチ内のデータのルーティングを制御する少なくとも１つのプロセッサユニットと、
前記少なくとも１つのプロセッサに接続されて、イーサネットコントローラへのデータ用インターフェイスを有する、前記スイッチの第１の部分と、
前記データを複数のパケットに変換し、該複数のパケットを構造スイッチに送信する、前記スイッチの第２の部分と、
前記スイッチの前記第２の部分に接続された、イーサネットシグナリングを実行するポートを有するパケットスイッチと、
を備えることを特徴とする請求項４に記載のシステム。
【請求項８】
各々が管理プロセッサを有する複数のノードを含み、前記複数のノードの前記管理プロセッサ間の通信経路が、前記管理プロセッサが相互に信頼できるようにセキュアである、
ことを特徴とするスイッチ構造システム。
【請求項９】
イーサネットＭＡＣコントローラＩＰを内部ＭＡＣ及び外部ＭＡＣに再利用し、通常であればＭＡＣがスイッチに送り込むための物理シグナリングとなったであろうものを利用する、
ことを特徴とする方法。
【請求項１０】
スイッチ構造システムにおける非スプーフィング通信方法であって、
検証済みソフトウェアである１又はそれ以上のソフトウェアを実行する管理プロセッサを各々が有する複数のノードを提供するステップと、
パケットの送信元ノードにおいてルーティングヘッダにドメインＩＤを挿入するステップを含む、前記複数のノード間の信頼できる関係を確立するステップと、
前記ドメインＩＤを含むパケットの前記ルーティングヘッダが宛先ノードによって検証された場合、前記送信元ノードの管理プロセッサと前記宛先ノードの管理プロセッサとの間で安全に通信を行うステップと、
を含むことを特徴とする方法。
【請求項１１】
スイッチ構造内の耐障害性ユニキャストルーティング方法であって、前記スイッチ構造は、複数のノードと、各ノードに関連する複数のリンクとを備え、前記ノードを前記複数のノード内の別のノードに接続して複数のルートを含むスイッチ構造を形成し、前記方法は、
前記スイッチ構造内の第１のノードから第２のノードへの、優先度の低い重みを有する避難ルートを生成するステップと、
リンクが非アクティブの場合、前記第１のノードから前記第２のノードへデータを誤ルーティングするステップと、
を含み、前記避難ルート及び誤ルーティングが、前記スイッチ構造に耐障害性を提供する、
ことを特徴とする方法。
【請求項１２】
前記第１のノードから前記第２のノードへデータを誤ルーティングするステップが、前記第１のノードと第２のノードの間のリンクが非アクティブの場合、前記第１のノードから前記第２のノードへ１又はそれ以上の中間ノードを通じてデータをルーティングするように反復的に同じ経路を引き返すステップをさらに含む、
ことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記反復的に同じ経路を引き返すステップが、
データ経路内のノードが前記第２のノードへのリンク経路を有していない場合、前記データのヘッダ内に誤ルーティングビットを設定するステップと、
前記誤ルーティングビットを設定したノードに前記データを送信した送信元ノードに前記データを返送するステップと、
前記送信元ノードにより、前記データのための１又はそれ以上の代替リンクを選択するステップと、
前記データが前記代替リンクの１つを介して前記第２のノードに到達した場合、前記データのヘッダ内の前記誤ルーティングビットをクリアするステップと、
をさらに含むことを特徴とする請求項１２に記載の方法。
【請求項１４】
アクティブでない場合に休止状態に入る１又はそれ以上のメインプロセッサと、
前記休止状態に入らない管理プロセッサと、
第１のアドレスを有する第１のイーサネットポート及び第２のアドレスを有する第２のイーサネットポートと、
を備え、前記１又はそれ以上のメインプロセッサが前記休止状態にあるときに、前記管理プロセッサに前記第１及び第２のアドレスが再マッピングされる、
ことを特徴とするスイッチ。
【請求項１５】
前記管理プロセッサが、該管理プロセッサに再マッピングされた到着パケットを、特定のクラスを有する前記パケットを破棄すること、前記休止状態のメインプロセッサのネットワーク内の存在を維持するように前記パケットにプロキシして応答すること、前記パケットを前記メインプロセッサによって処理すべきかどうかを判断し、前記休止状態のプロセッサを起動させて前記到着パケットを処理することのうちの１つによって処理する、
ことを特徴とする請求項１４に記載のスイッチ。
【請求項１６】
複数のノードと、
各ノードに関連する複数のリンクと、
を含み、前記複数のリンクは、前記ノードを前記複数のノード内の別のノードに接続して、前記複数のノードを通じてデータをルーティングするためのスイッチ構造のトポロジを形成し、
前記スイッチ構造を通じた前記データのルーティングを制御する管理プロセッサをさらに含み、
前記管理プロセッサが、ノード名空間アレイ及び２次元ルーティングテーブルを記憶し、各ノード名が、ドメイン識別子及びノード識別子を有し、前記ノード識別子及び前記ドメイン識別子によって識別されるマルチドメインノードにデータパケットがルーティングされる、
ことを特徴とするスイッチシステム。
【請求項１７】
複数のノードと、
各ノードに関連する複数のリンクと、
を含み、前記複数のリンクは、前記ノードを前記複数のノード内の別のノードに接続して、前記複数のノードを通じてデータをルーティングするためのスイッチ構造のトポロジを形成し、
前記スイッチ構造を通じた前記データのルーティングを制御する管理プロセッサと、
２又はそれ以上の連続するＭＡＣアドレスを前記ルーティングテーブルの単一のエントリ内に圧縮したルーティングテーブルを使用して、イーサネットフレームパケットのルーティングフレームヘッダを生成する少なくとも１つのルーティングヘッダプロセッサと、
をさらに含むことを特徴とするスイッチシステム。
【請求項１８】
複数のノードと、
各ノードに関連する複数のリンクと、
を含み、前記複数のリンクは、前記ノードを前記複数のノード内の別のノードに接続して、前記複数のノードを通じてデータをルーティングするためのスイッチ構造のトポロジを形成し、
前記スイッチ構造を通じた前記データのルーティングを制御する管理プロセッサと、
特定のリンクを介して特定のイーサネットフレームパケットを宛先ノードに通信するリンク符号化ユニキャストエントリを有するルーティングテーブルを使用して、イーサネットフレームパケットのルーティングフレームヘッダを生成する少なくとも１つのルーティングヘッダプロセッサと、
をさらに含むことを特徴とするスイッチシステム。
【請求項１９】
複数のノードと、
各ノードに関連する複数のリンクと、
を含み、前記複数のリンクは、前記ノードを前記複数のノード内の別のノードに接続して、前記複数のノードを通じてデータをルーティングするためのスイッチ構造のトポロジを形成し、
前記スイッチ構造を通じた前記データのルーティングを制御する管理プロセッサと、
特定のノードＩＤを有するノードにイーサネットフレームパケットが送信されて、ノードＩＤがアドレスに符号化されるようにするノード符号化ユニキャストエントリを有するルーティングテーブルを使用して、イーサネットフレームパケットのルーティングフレームヘッダを生成する少なくとも１つのルーティングヘッダプロセッサと、
をさらに含むことを特徴とするスイッチシステム。
【請求項２０】
複数のノードと、
各ノードに関連する複数のリンクと、
を含み、前記複数のリンクは、前記ノードを前記複数のノード内の別のノードに接続して、前記複数のノードを通じてデータをルーティングするためのスイッチ構造のトポロジを形成し、
前記スイッチ構造を通じた前記データのルーティングを制御する管理プロセッサと、
ルーティングテーブルを使用してイーサネットフレームパケットのルーティングフレームヘッダを生成する少なくとも１つのルーティングヘッダプロセッサと、
をさらに含み、前記管理プロセッサが、ローカルに開始されたブロードキャストをスヌープして、前記ローカルに開始されたブロードキャストを前記管理プロセッサへ送信する、
ことを特徴とするスイッチシステム。
【請求項２１】
複数のノードと、
各ノードに関連する複数のリンクと、
を含み、前記複数のリンクは、前記ノードを前記複数のノード内の別のノードに接続して、前記複数のノードを通じてデータをルーティングするためのスイッチ構造のトポロジを形成し、
前記スイッチ構造を通じた前記データのルーティングを制御する管理プロセッサと、
非スイッチ構造アドレスをノードにマッピングするルーティングテーブルを使用して、イーサネットフレームパケットのルーティングフレームヘッダを生成する少なくとも１つのルーティングヘッダプロセッサと、
をさらに含むことを特徴とするスイッチシステム。
【請求項２２】
複数のノードと、
各ノードに関連する複数のリンクと、
を含み、前記複数のリンクは、前記ノードを前記複数のノード内の別のノードに接続して、前記複数のノードを通じてデータをルーティングするためのスイッチ構造のトポロジを形成し、
前記スイッチ構造を通じた前記データのルーティングを制御する管理プロセッサと、
前記データパケットの適応的ルーティングを可能にするための各リンクの経路コスト及び重みを含むルーティングテーブルを使用して、イーサネットフレームパケットのルーティングフレームヘッダを生成する少なくとも１つのルーティングヘッダプロセッサと、
をさらに含むことを特徴とするスイッチシステム。
【請求項２３】
複数のノードと、
各ノードに関連する複数のリンクと、
を含み、前記複数のリンクは、前記ノードを前記複数のノード内の別のノードに接続して、前記複数のノードを通じてデータをルーティングするためのスイッチ構造のトポロジを形成し、
前記スイッチ構造を通じた前記データのルーティングを制御する管理プロセッサと、
前記リンクを通じて１又はそれ以上のパケットを送信元ノードの隣接ノードへ送信するが、隣接ノードではない他のノードにはブロードキャストしない隣接マルチキャストエントリを有するルーティングテーブルを使用して、イーサネットフレームパケットのルーティングフレームヘッダを生成する少なくとも１つのルーティングヘッダプロセッサと、
をさらに含むことを特徴とするスイッチシステム。
【請求項２４】
各々がスイッチを有する複数のノードと、
各ノードに関連する複数のリンクと、
を含み、前記複数のリンクは、前記ノードを前記複数のノード内の別のノードに接続して、前記複数のノードを通じてデータをルーティングするためのスイッチ構造のトポロジを形成し、
前記スイッチ構造を通じた前記データのルーティングを制御する管理プロセッサと、
各スイッチにおける少なくとも１つのルーティングヘッダプロセッサと、
をさらに含み、前記ルーティングヘッダプロセッサが、送信元ノードからのブロードキャストパケットのブロードキャストＩＤを、ブロードキャストＩＤのブロードキャストエントリ及び送信元ノードと比較して、前記到着したブロードキャストパケットが前記特定のスイッチを横切ったかどうかを判断し、前記到着したブロードキャストパケットが前記特定のスイッチを横切っていない場合、前記到着したブロードキャストパケットを、前記特定のスイッチを有する前記ノードに接続された全てのリンクを通じて再ブロードキャストする、
ことを特徴とするスイッチシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
〔優先権の主張／関連出願〕
本特許出願は、２００９年１０月３０に出願された「マルチプロセッサシステムオブチップ（ＳＯＣ）における通信強化のためのシステム及び方法」という名称の米国仮特許出願第６１／２５６，７２３号に対して合衆米国特許法第１１９条（ｅ）に基づく利益を主張するものであり、この特許出願はその全体が引用により本明細書に組み入れられる。
【０００２】
本開示は、一般にコンピュータベースシステムのスイッチング構造に関する。
【背景技術】
【０００３】
インターネット、ウェブベース企業及びシステムの継続的成長、並びにコンピュータの急増に伴い、温度制御された、外部から管理できる場所に複数のサーバコンピュータを収容するデータセンターが数多く存在することはよく知られている通りである。
【０００４】
図１Ａ及び図１Ｂに、現在よく知られているような古典的なデータセンターネットワーク集合体を示す。図１Ａには、典型的なネットワークデータセンターアーキテクチャ１００の概略図を示しており、ローカルルータ１０３ａ〜ｆが散在するブレードサーバ１０７ａ〜ｎで満たされたラック１０２ａ〜ｎの最上部に最上位スイッチ１０１ａ〜ｎが存在する。追加のストレージルータ及びコアスイッチ１０５ａ〜ｂ、及び追加のラックユニット１０８ａ〜ｎが、追加サーバ１０４ｅ〜ｋ及びルータ１０６ａ〜ｇを含む。図１ｂには、エッジルータシステム１１２ａ〜ｈの周囲に配置された周辺サーバ１１１ａ〜ｂｎを含むシステムの例示的な物理図１１０を示す。通常、このような集合体１１０は、ラックサーバからこれらのトップオブラックスイッチへの１Ｇｂイーサネットを有し、しばしばエッジ及びコアルータへの１０Ｇｂイーサネットポートを有する。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、典型的システムのサイズ及び電力要件を抑えると同時にコストを削減する、ネットワーク集合体に焦点を合わせたパケットスイッチング機能のためのシステム及び方法が必要とされており、本開示はこれを目的とする。
【図面の簡単な説明】
【０００６】
【図１Ａ】典型的なデータセンターシステムを示す図である。
【図１Ｂ】典型的なデータセンターシステムを示す図である。
【図２】ネットワーク集約システムの概観を示す図である。
【図３】ラックシステム内の例示的なデータセンターの概観を示す図である。
【図４】ネットワーク集約システムの高水準トポロジを示す図である。
【図５Ａ】ネットワーク集約システムの例示的なスイッチのブロック図である。
【図５Ｂ】ＭＡＣアドレスの符号化を示す図である。
【図６】ネットワーク集約システムのブロードキャスト機構の第１の実施形態を示す図である。
【図７】ネットワーク集約システムのユニキャストルーティングの例を示す図である。
【図８】ネットワーク集約システムの耐障害性ユニキャストルーティングの例を示す図である。
【図９】ネットワーク集約システムのブロードキャスト機構の第２の実施形態を示す図である。
【発明を実施するための形態】
【０００７】
本開示は、以下に例示して説明するようなネットワーク集約システム及び方法に特に適用可能であり、これに関連して本開示を説明する。しかしながら、本システム及び方法は、本開示の範囲に含まれるその他の要素及びアーキテクチャを使用して実施できるので、より実用性が高く、従って本開示は、以下で説明する例示的な実施形態に限定されるものではないと理解されたい。
【０００８】
本システム及び方法はまた、１つのノードにつき複数のリンクをサポートするツリー状又はグラフトポロジを使用してルーティングをサポートし、この場合、各リンクは、トポロジ内で上りリンク、下りリンク、又はラテラルリンク、又はこれらの両方として指定される。また、システム内の各ノードは、複合計算／スイッチノードであっても、又は単なるスイッチノードであってもよく、以下でより詳細に説明するように、いずれのノード上にも入出力部（Ｉ／Ｏ）が存在することができる。システムは、セグメント化されたイーサネット媒体アクセス制御（ＭＡＣ）アーキテクチャを有するシステムを提供することもでき、このアーキテクチャは、ＭＡＣ  ＩＰアドレスを内部ＭＡＣ及び外部ＭＡＣに再利用し、通常であればＭＡＣがスイッチに送り込むための物理シグナリングとなったであろうものを利用する方法を有することができる。システムは、非スプーフィング通信方法、及び耐障害性ブロードキャスト方法を提供することもでき、これらの方法は、耐障害性のためのユニキャスト誤ルーティング方法を有することができる。ネットワークセキュリティの側面から言えば、スプーフィング攻撃とは、１人の人物又はプログラムが、データを改ざんして不当な利益を得ることによりうまく他人になりすます状況のことである。
【０００９】
システムは、管理プロセッサが互いに「信頼」できるように、管理プロセッサ間に厳密なセキュリティを提供することもできる。（以下でより詳細に説明する）図５Ａに示すシステム例では、各ＳｏＣ内に管理プロセッサが存在する（図５Ａのブロック９０６のＭ３マイクロコントローラ）。管理プロセッサ上で実行されるソフトウェアは、ａ）ベンダ（この場合はＳｍｏｏｔｈ−Ｓｔｏｎｅ社）が開発したものでコードを検証済みであり、ｂ）非ベンダコードはプロセッサ上で実行できない、という理由で信頼できる。管理プロセッサ間で信頼関係を維持することにより、これらのプロセッサは、コマンドを通信し（例えば、別のノードを再起動し）、又はユーザがスプーフィングする可能性を心配することなく別のノードに機密情報を要求して、情報にアクセスし又はシステムを制御できるようになる。
【００１０】
システムは、システムオンチップ（ＳＯＣ）内の常時オンパワードメイン内に統合マイクロコントローラを有するネットワークプロキシを提供することもでき、このネットワークプロキシは、より大型の内蔵プロセッサのためのネットワークプロキシングを引き継いで、これをサブツリーに適用することができる。システムは、ルーティングヘッダ及びルーティングテーブルにわずかな変更を加えるだけで、ルーティング可能なファットツリー状構造のサイズを劇的に拡張できるマルチドメイニング技術を提供することもできる。
【００１１】
図２に、ネットワーク集約システム３００を示す。このネットワーク集合体は、１０Ｇｂ／秒のイーサネット通信などの１又はそれ以上の高速リンク３０１（太線）をサポートし、このリンクが、集約ルータ３０２と、図３に示す３つのラック３０３ａ〜ｃなどの１又はそれ以上のラック３０３とを接続する。第１のラック３０３ａ内では、ネットワーク集約システムが、ラック内の棚上のサーバコンピュータなどの１又はそれ以上のＳｍｏｏｔｈ−Ｓｔｏｎｅ社の演算器３０６ａ〜ｄ間に、太線で示す複数の高速１０Ｇｂ経路を提供する。各Ｓｍｏｏｔｈ−Ｓｔｏｎｅ社の演算器のさらなる詳細は、２００９年１０月３０に出願された「マルチプロセッサシステムオブチップ（ＳＯＣ）における通信強化のためのシステム及び方法」という名称の米国仮特許出願第６１／２５６，７２３号により詳細に記載されており、この特許出願はその全体が引用により本明細書に組み入れられる。トップオブラックスイッチに置き換えてＳｍｏｏｔｈ−Ｓｔｏｎｅ社の演算器内の内蔵スイッチ３０６ａ〜ｄを使用することで、劇的な量の電力及びコストを削減する一方で、集約ルータ３０２に１０Ｇｂイーサネットポートを提供することができる。ネットワーク集約システムのスイッチング構造は、従来のイーサネット（１Ｇｂ又は１０Ｇｂ）をＸＡＵＩ構造に統合することができ、Ｓｍｏｏｔｈ−Ｓｔｏｎｅ社の演算器は、サードパーティのイーサネット接続サーバ用のトップオブラックスイッチとして動作することができる。
【００１２】
真ん中のラック３０３ｂには、ネットワーク集約システム内のラックの別の構成を示しており、既にトップオブラックスイッチ３０８ａを含んでいる既存のデータセンターラックに１又はそれ以上のＳｍｏｏｔｈ−Ｓｔｏｎｅ社の演算器３０６ｅ、ｆを統合することができる。この場合、このＩＴグループは、これらのグループの他の演算器を１Ｇｂイーサネットを介して既存のトップオブラックスイッチまで接続し続けることができ、１０ＧｂのＸＡＵＩ構造を介して内部のＳｍｏｏｔｈ−Ｓｔｏｎｅ社の演算器を接続することができ、これらの演算器を、図２に示すような１Ｇｂ又は１０Ｇｂイーサネット相互接続のいずれかを使用して既存のトップオブラックスイッチまで統合することができる。第３のラック３０３ｃには、データセンターのラックを従来通りに配置した現行の方法を示している。第３ラック３０３ｃ内の細い赤線は、１Ｇｂイーサネットを表す。従って、従来、データセンターのラックの現行の配置では、トップオブラックスイッチ３０８ｂまでが１Ｇｂイーサネットであり、トップオブラックスイッチから集約ルータまでが１０Ｇｂ（太い赤線３０１）である。なお、存在する全てのサーバは無限量であるが、本明細書では説明を明確かつ単純にするためにこれらを有限量で示している。また、拡張ＳＳサーバを使用すると、これらは以下で説明するように独自のＸＡＵＩスイッチング構造を動作させるので、追加ルータが不要となる。
【００１３】
図３に、システムの一実施形態による例示的な「ラック内データセンター」４００の概観を示す。「ラック内データセンター」４００は、１０ＧｂイーサネットＰＨＹ４０１ａ〜ｎ及び１ＧｂプライベートイーサネットＰＨＹ４０２を有することができる。大型コンピュータ（パワーサーバ）４０３ａ〜ｎは、検索、データマイニング、インデックス付け、ＪａｖａソフトウェアフレームワークであるＡｐａｃｈｅ  Ｈａｄｏｏｐ、一群のコンピュータ上の膨大なデータセットに関する分散コンピューティングをサポートするためにＧｏｏｇｌｅ社によって導入されたソフトウェアフレームワークであるＭａｐＲｅｄｕｃｅ、クラウドアプリケーションなどをサポートする。ローカルフラッシュ及び／又は固体ディスク（ＳＳＤ）を含むコンピュータ（サーバ）４０４ａ〜ｎは、検索、ＭｙＳＱＬ、ＣＤＮ、ｓｏｆｔｗａｒｅ−ａｓ−ａ−ｓｅｒｖｉｃｅ （ＳａａＳ）、クラウドアプリケーションなどをサポートする。単一の大型低速ファン４０５が、その上に垂直に実装されたサーバの対流冷却を増強する。データセンター４００は、ハードディスクのアレイ４０６を単なるディスクの束（ＪＢＯＤ）構成などの形で有し、任意にＳｍｏｏｔｈ−Ｓｔｏｎｅ社の演算器をディスクフォームファクタ（例えば、アレイ４０６及び４０７内の緑のボックス）の形で有し、これらは任意にディスクコントローラとして動作する。ハードディスクサーバ又はＳＳディスクサーバは、ウェブサーバ、ユーザアプリケーション、及びクラウドアプリケーションなどとして使用することができる。古いアプリケーションのための標準的イーサネットインターフェイスを備えたストレージサーバのアレイ４０７及び履歴サーバ４０８ａ、ｂ（あらゆるサイズ、あらゆるベンダ）も示している。
【００１４】
ラック内データセンター４００は、独自のシステム相互接続法を使用し、これにより電力及び配線が劇的に削減され、異種システムが可能になり、既存のイーサネットベースのサーバが統合され、古いアプリケーションが有効になる。１つの態様では、完全なサーバ又はストレージサーバを、ディスク又はＳＳＤのフォームファクタで、４つのＳｅｒｖｅｒＮｏｄｅｓ（商標）を含む８〜１６個のＳＡＴＡインターフェイス及び４つのＳｅｒｖｅｒＮｏｄｅｓ（商標）を含む８つのＰＣＩｅ  ｘ４インターフェイスとともに配置する。この態様は、（単複の）ディスクと対になった専用ボードを使用し、ウェブサーバ、ユーザアプリケーション、クラウドアプリケーション、ディスクキャッシュ機能などをサポートするディスク及び／又はＳＳＤ＋ＳｅｒｖｅｒＮｏｄｅ（商標）をサポートする。
【００１５】
Ｓｍｏｏｔｈ−Ｓｔｏｎｅ社のＸＡＵＩシステム相互接続では、ラックの電力、配線、及びサイズが減少する。個々のサーバ上に、強力で高価なイーサネットスイッチ及び強力なイーサネットＰｈｙは必要ない。ケーブル（ケーブルの複雑性、コスト、重大な故障原因）も劇的に減少する。この態様では、ラック内で異種サーバを混合することもでき、イーサネット又はＳＡＴＡ又はＰＣＩｅを使用するあらゆる装置をサポートする。この態様を、システム相互接続に統合することもできる。
【００１６】
本明細書に示す、パケットスイッチ機能を備えたサーバオンチップ（ＳＯＣ）の態様は、ネットワーク集合体に焦点を当てたものである。ＳＯＣは、例えばＣｉｓｃｏ社のスイッチ又はルータなどの業界標準ネットワークスイッチと機能的に完全に同等ではない。しかしながら、本明細書を通じて説明するいくつかの用途では、ＳＯＣの方が良好な価格／性能比、並びに電力／性能比をもたらす。ＳＯＣは、送信元／宛先ＭＡＣアドレスに基づいてルーティングを行うレイヤ２パケットスイッチを含む。ＳＯＣは、仮想ローカルエリアネットワーク（ＶＬＡＮ）をさらにサポートし、ドメイン到着パケットに対して設定可能なＶＬＡＮフィルタリングを行ってドメイン内の不要なトラフィックを最小化する。ＳＯＣ内に埋め込まれたＭＡＣは、ＶＬＡＮサポートを明確に有する内蔵スイッチを伴わずに、ＳＯＣ全体にＶＬＡＮ機能を提供する完全なＶＬＡＮサポートを有する。ＳＯＣは、管理プロセッサによってシステムを起動し、管理プロセッサにリンク状態の推移を通知して、障害を迂回するルートをとるようにルーティング構成を再プログラムすることもできる。このような機能は、レイヤ３（又はそれよりも上位の）処理を必要としない（すなわち、ルータではない）。ＳＯＣは、完全なＶＬＡＮサポート、ＱｏＳ／ＣｏＳのサポート、アドレス学習、フィルタリング、スパニングツリープロトコル（ＳＴＰ）などの提供も行わない。
【００１７】
図４に、スイッチング構造によって接続されたＸＡＵＩ接続のＳｏＣノードを示すネットワークシステムの高水準トポロジ８００を示す。ツリーの最上位から、１０ＧｂイーサネットポートＥｔｈ０  ８０１ａ及びＥｔｈ１  ８０１ｂが来る。楕円８０２ａ〜ｎは、計算プロセッサと内蔵スイッチの両方を含むＳｍｏｏｔｈ−Ｓｔｏｎｅ社のノードである。これらのノードは、内部スイッチに接続された５つのＸＡＵＩリンクを有する。スイッチングレイヤは、この５つのＸＡＵＩリンクを全てスイッチングに使用する。レベル０の葉ノード８０２ｄ、ｅ（すなわち、Ｎ０ｎノード、又はｘ＝レベル及びｙ＝アイテム番号とするＮｘｙ）は、相互接続に連結するために１つのＸＡＵＩリンクしか使用せず、ＸＡＵＩ、１０Ｇｂイーサネット、ＰＣＩｅ、ＳＡＴＡなどとして使用できる４つの高速ポートをＩ／Ｏへの連結のために残しておく。ツリー及びファットツリーの大部分では、アクティブノードが葉ノードとしてのみ存在し、他のノードは純粋なスイッチングノードである。この方法により、ルーティングが大幅に容易になる。トポロジ８００は、いずれのノードを複合計算及びスイッチノードにすることも、又は単なるスイッチノードにすることもできるという柔軟性を有する。ほとんどのツリータイプの実施構成は、Ｉ／Ｏを葉ノード上に有するが、トポロジ８００では、あらゆるノード上にＩ／Ｏが存在するようにする。一般に、ツリーの最上位にイーサネットを配置すると、イーサネットまでの平均ホップ数が最小化される。
【００１８】
より詳細には、図６のツリー志向トポロジに示す楕円は、計算クラスタ内の個々のノードを表す。図５Ａに、クラスタの個々のノードの１つの例示的な実施構成を示す。例えば、図６のトポロジの従来の実施構成を見ると、通常、計算ノードは、下位レベルの葉ノード（例えば、Ｎ００〜Ｎ０８）内に見出され、上位レベルのノードは計算要素を有しておらず、単なるネットワークスイッチング要素（Ｎ１０〜Ｎ２１）である。図６Ａに示すノードアーキテクチャでは、Ａ９コア（９０５）を任意に有効にすることができ、或いは単に電源オフのままにしておくこともできる。従って、図６の上位レベルのスイッチングノード（Ｎ１０〜Ｎ２１）を（従来の実施構成のように）純粋なスイッチング要素として使用することもでき、或いはＡ９コアモジュールの電源をオンにして、これらを計算クラスタ内の完全なノードとして使用することもできる。
【００１９】
スイッチアーキテクチャでは、イーサネットフレームの先頭にルーティングフレームを追加することが必要である。スイッチは、ルーティングフレーム内のフィールドに対してのみ動作し、イーサネットフレームを直接検査することはない。図５ａには、本明細書に開示するシステム及び方法の１つの態様による例示的なスイッチ９００のブロック図を示している。この図には、４つの関心領域９１０ａ〜ｄが存在する。領域９１０ａは、ＣＰＵと内部ＭＡＣの間のイーサネットパケットに相当する。領域９１０ｂは、内部ＭＡＣにおけるイーサネット物理インターフェイスのイーサネットフレームに相当し、プリアンブルフィールド、フレーム開始フィールド、及びフレーム間ギャップフィールドを含む。領域９１０ｃは、外部ＭＡＣにおけるイーサネット物理インターフェイスのイーサネットフレームに相当し、プリアンブルフィールド、フレーム開始フィールド、及びフレーム間ギャップフィールドを含む。領域９１０ｄは、ルーティングヘッダのプロセッサ９０１と外部ＭＡＣ９０４の間のイーサネットパケットに相当する。このセグメント化されたＭＡＣアーキテクチャは非対称である。内部ＭＡＣは、ルーティングヘッダプロセッサ内へのイーサネット物理シグナリングインターフェイスを有し、外部ＭＡＣは、ルーティングヘッダプロセッサ内へのイーサネットパケットインターフェイスを有する。従って、ＭＡＣ  ＩＰは、内部ＭＡＣ及び外部ＭＡＣに再利用され、通常であればＭＡＣがスイッチ内に送り込むための物理シグナリングとなったであろうものを利用する。ＭＡＣ構成は、Ａ９コア９０５のオペレーティングシステムのデバイスドライバが、内部Ｅｔｈ０  ＭＡＣ９０２及び内部Ｅｔｈ１  ＭＡＣ９０３を管理して制御するようなものである。管理プロセッサ９０６のデバイスドライバが、内部Ｅｔｈ２  ＭＡＣ９０７を管理して制御する。外部Ｅｔｈ  ＭＡＣ９０４は、デバイスドライバによって制御されない。ＭＡＣ９０４は、プロミスキャスモードで構成されて、ネットワークモニタリングのためのフィルタリングを行わずに全てのフレームを転送する。このＭＡＣの初期化は、ＭＡＣのハードウェアインスタンス化と、他のいずれかの必要な管理プロセッサ初期化との間で調整される。外部Ｅｔｈ  ＭＡＣ９０４レジスタは、Ａ９  ９０５及び管理プロセッサ９０６のいずれのアドレスマップからも見える。外部Ｅｔｈ  ＭＡＣ９０４のための割り込みは、Ａ９又は管理プロセッサのいずれかにルーティング可能である。ＸＧＭＡＣは、ＸＧＭＩＩリンクの障害状態のあらゆる変化、ＰＨＹのホットプラギング又は取り外し、アライブ状態又はリンク状態の変更、及びいずれかのＲＭＯＮカウンタが閾値レジスタと等しい値に達することを含む、ＣＰＵがモニタしたいと望み得るいくつかの割り込み可能なイベントをサポートする。
【００２０】
場合によっては、特定のマイクロアーキテクチャに応じ、ＸＡＵＩにわたってプリアンブルフィールド、フレーム開始フィールド、及びフレーム間ギャップフィールドが存在してもよい。ルーティングフレームヘッダプロセッサが、これらのフィールドを標準化することができる。ＸＡＵＩインターフェイスは、これらのフィールドの一部又は全部を必要とすることもある。この場合、領域９１０ｄのルーティングヘッダプロセッサが、スイッチに入るこれらのフィールドを追加し、スイッチから出るこれらのフィールドを削除する必要がある。ＸＡＵＩで送信する必要があるバイト数を削減するために、これらの３つのフィールドを削除することができる（ＸＡＵＩインターフェイスが許可する場合）。この場合、領域９１０ｂのルーティングヘッダプロセッサが、スイッチに入るこれらのフィールドを除去し、スイッチから出るこれらのフィールドを再び追加する必要がある。
【００２１】
ルーティングフレームヘッダプロセッサは、ＭＡＣからイーサネットフレームを受け取り、ルーティングフレームをスイッチへ送信する。このプロセッサはまた、プリアンブルフィールド、フレーム開始フィールド、及びフレーム間ギャップフィールドを標準化し、ルーティングヘッダを先頭に追加し、スイッチからルーティングフレームを受け取り、イーサネットフレームをＭＡＣ内へ送信する。次に、このプロセッサは、ルーティングヘッダを除去し、プリアンブルフィールド、フレーム開始フィールド、及びフレーム間ギャップフィールドを標準化する。なお、構造内を流れるフレームは全てルーティングフレームであり、イーサネットフレームではない。イーサネットフレーム／ルーティングフレームの変換は、パケットがＭＡＣを介して構造に出入りするときにのみ行われる。また、スイッチ内のルーティングロジックにより、ルーティングフレーム内のフィールドが変更されることもある。イーサネットフレームは（プリアンブルフィールド、フレーム開始フィールド、及びフレーム間ギャップフィールドの追加／削除以外は）決して変更されない。
【００２２】
ルーティングフレームは、ルーティングフレームヘッダにイーサネットフレームのコア部分を加えたもので構成され、以下の表１に示すような構造である。
表１
2013509808.tif 000003
【００２３】
なお、ビットのサイジングを行うための実施構成の前提は、４０９６ノード→１２ビットのノードＩＤである。これらのフィールドは、必要に応じて実施中にサイズ変更することができる。
【００２４】
ルーティングフレームヘッダは、以下の表２に示すフィールドで構成される。
表２
2013509808.tif 000004
【００２５】
スイッチが、チェックサムに失敗したパケットを受け取った場合、このパケットを欠落させ、統計カウンタを増分して管理プロセッサに通知する。
【００２６】
ルーティングフレームプロセッサは、複数の宛先ＭＡＣアドレスの符号化を識別する。参考までに、ＭＡＣアドレスは、図５ｂに示すようにフォーマットされる。以下の表は、ＭＡＣアドレス内の３バイトのＯＵＩ及び３バイトのＮＩＣ固有のフィールドの使用法を示すものである。本明細書に開示するシステム及び方法の新規の態様の１つは、以下の表３の、「構造内ノードのローカルアドレスがＭＡＣ  Ｌｏｏｋｕｐ  ＣＡＭにヒット」という２番目の項目にも示すように、追加のアドレスビットを使用して内部ＭＡＣから外部ＭＡＣへのマッピングを符号化することである。
表３
2013509808.tif 000005
【００２７】
さらに、表３では、１つの内部ノード又はリンクが全ての外部ＭＡＣ部分をアドレス指定できるようにする「ノード符号化ユニキャスト」及び「リンク符号化ユニキャスト」、並びに隣接ノードへのマルチキャストを可能にする「隣接マルチキャスト」という項目に他の新規の態様を見出すことができる。
【００２８】
なお、ＳＳ＿ＭＡＣ＿ＮＯＤＥ＿ＥＮＣＯＤＥＤ＿ＭＡＧＩＣ及びＳＳ＿ＭＡＣ＿ＬＩＮＫ＿ＥＮＣＯＤＥＤ＿ＭＡＧＩＣという値は、これらのＭＡＣアドレスタイプを一意に識別するために使用される定数識別子である。「魔法数」」という用語は、ファイルフォーマット又はプロトコルを識別するために使用される一定の数値又はテキスト値を表す標準的業界用語である。これらの魔法数は、ハードウェアの初期化中に標準値へのデフォルト設定を行う２つのレジスタ（ｍａｇｉｃＮｏｄｅＥｎｃｏｄｅｄＭＡＣ及びｍａｇｉｃＬｉｎｋＥｎｃｏｄｅｄＭＡＣ）内で設定されるが、必要に応じて管理プロセッサソフトウェアがこれらを変更できるようにもする。
【００２９】
以下の表４に示すように、ヘッダプロセッサは、６バイトのＭＡＣアドレスを１２ビットのノードＩＤにマッピングするＭＡＣ  Ｌｏｏｋｕｐ  ＣＡＭ（連想メモリ）であるｍａｃＡｄｄｒＬｏｏｋｕｐを含む。
表４
2013509808.tif 000006
【００３０】
このＣＡＭ内の行数は実施構成によるが、約２５６〜１０２４行であると予想される。管理プロセッサは、ＳＳ構造内の全てのノードのノードＩＤマッピングでＣＡＭを初期化する。行には、そのＮｏｄｅ  Ｌｏｃａｌビットの設定に応じて２つのタイプがある。Ｎｏｄｅ  Ｌｏｃａｌフィールドでは、デフォルトＭＡＣアドレスに関してＣＡＭ内のＭＡＣアドレスを４：１に圧縮し、４つのＭＡＣ全てを、以下の表５のＣＡＭテーブル内の１つの行にマッピングすることができる。
表５
2013509808.tif 000007
【００３１】
ＣＡＭ内の任意の行では、ＭＡＣアドレスエイリアスをノードにマッピングすることができる。Ｌｉｎｕｘ（及びＭＡＣ）では、（ｉｆｃｏｎｆｉｇ  ｅｔｈ０  ｈｗ  ｅｔｈｅｒ  ００：８０：４８：ＢＡ：ｄ１：３０などにより）ネットワークインターフェイス上でＭＡＣアドレスを再割り当てすることができる。仮想化／クラウドコンピューティングでこれを使用して、セッション開始後の再ＡＲＰの必要性を避けることもある。
【００３２】
スイッチアーキテクチャは、Ｓｗｉｔｃｈ  ＯＵＩに一致するアドレスのＭＡＣアドレスのＮＩＣ固有部分の３バイトのみを記憶する２次ＭＡＣ  Ｌｏｏｋｕｐ  ＣＡＭを提供する。このローカルＯＵＩ  ＣＡＭの利用可能性は実施構成によって決まる。以下の表６を参照されたい。
表６
2013509808.tif 000008
【００３３】
３種類のＭＡＣアドレス符号化のための最大ノード制限数は、以下のように求めることができる。
１．デフォルトＭＡＣアドレス−管理プロセッサが、構造内のノードの各々のＮｏｄｅ  Ｌｏｃａｌマッピングを設定する。各ノードのＣＡＭ内に１つのエントリが存在する。最大ノード数は、ＭＡＣ  Ａｄｄｒｅｓｓ  Ｌｏｏｋｕｐ  ＣＡＭ内の最大行数によって制御される。
２．ノード符号化アドレス−全てのＭＡＣを、ノード符号化アドレスを使用するように再プログラムする。このようにして、ノードＩＤをＭＡＣアドレス内に直接符号化する。ＭＡＣ  Ｌｏｏｋｕｐ  ＣＡＭ内のエントリは使用しない。最大ノード数は、Ｕｎｉｃａｓｔ  ｌｏｏｋｕｐテーブル（Ｌｏｏｋｕｐ  ＣＡＭと比較すると容易に大きくできる）内の最大行数によって制御される。なお、これにより、ＭＡＣ  Ｌｏｏｋｕｐ  ＣＡＭロジックが壊れた場合に何らかのリスク緩和が得られる。ノード符号化アドレス案の使用例を提供する。
３．任意のＭＡＣアドレスエイリアス−ＣＡＭ内の行を取り出す。一例として、５１２行のＣＡＭは、２５６個のノード（ノードローカルアドレス）＋ノードごとに１つのＭＡＣアドレスエイリアスを保持することができる。
【００３４】
Ｌｏｏｋｕｐ  ＣＡＭは、ルーティングヘッダ生成中にしかアクセスを受けないので、管理プロセッサは、実際には構造内のＭＡＣアドレスがパケット内で送信元又は宛先ＭＡＣアドレスとして使用されている場合にのみ行に投入すればよい。換言すれば、２つのノードが相互に対話しない場合、マッピング行を生成する必要はない。しかしながら、通常は、管理プロセッサがこのような知識を持つことはないので、全てのノード内で全てのノードのマッピングが生成されると予想される。また、Ｌｏｏｋｕｐ  ＣＡＭでエントリが生成されない場合でも、パケットをイーサネットゲートウェイから外部ルータを経由して構造内に戻し、宛先ノードまでルーティングすることにより、実際にはやはりルーティングに成功すると思われる。
【００３５】
表７に、宛先ノードとポート以外の全てのフィールドのルーティングヘッダ内のフィールドの設定方法を定義する。
表７
2013509808.tif 000009
【００３６】
表８には、構造内のアドレスの宛先ノード及びポートの設定方法を定義する。
表８
2013509808.tif 000010
【００３７】
表９には、構造外のアドレスの宛先ノード及びポートの設定方法を定義する。
表９
2013509808.tif 000011
【００３８】
また、本明細書で開示するシステム及び方法の管理プロセッサのソフトウェアアーキテクチャは、現在のところ、「信頼」すべき管理プロセッサノードの能力に相互に依存する。この、管理プロセッサから管理プロセッサへの通信に対するより厳しいセキュリティは、構造を横切るプライベート管理ＬＡＮに対するより良好なセキュリティとともに望ましいものである。複数の「堅固な」セキュリティドメインを必要とする環境では、顧客が構造内のセキュリティドメインを容易に混同しないことを単純に定義することにより、この構造問題を緩和することができる。このような場合、トップオブラックスイッチに１４ノードボードを接続して、顧客が各１４ノードボードのＶＬＡＮ粒度を制御できるようにすることができる。
【００３９】
説明したマルチドメイン構造アーキテクチャは、構造を横切る安全な「トンネル」及びドメインを生成することによってＶＬＡＮサポートの欠如に対処し、ＶＬＡＮ保護されたルータポートと１：１で相互運用することができる。
【００４０】
本明細書に開示するシステム及び方法のドメイン管理方法は以下の通りである。構造内の複数のドメインＩＤをサポートする。ノード（管理プロセッサ、ＭＡＣ０、ＭＡＣ１、ゲートウェイ）内のＭＡＣの各々をドメインＩＤに個別に割り当て（設定されていない場合には０をタグ付け）できるようにする。ノード内のＭＡＣの各々が、管理ドメインへのアクセスを示すビットを有することができるようにする。ＭＡＣに関連するドメインＩＤについては、管理プロセッサのみが割り当てることができ、Ａ９が変更することはできない。ＭＡＣ（内部及び外部の両方）により生成されたフレームでは、ルーティングフレームプロセッサが、このＭＡＣに関連するドメインＩＤ及び管理ドメイン状態をルーティングフレームにタグ付けする。ドメインは、このドメイン内にパケット（ユニキャスト及びマルチキャストの両方）を保持し、このドメイン外のＭＡＣがこれらのパケットを傍受又はスプーフィングできないようにするという点で、トンネル又はＶＬＡＮの効果をもたらすようになる。また、この方法は、５ビットのドメインＩＤを使用する。これにより、例えば、非定義（すなわち０）のドメインＩＤを有するパケットが配信されたかどうかを定義するＭＡＣごとのブール値を有するスイッチ、或いは定義済み（０以外）ではあるが一致しないドメインＩＤを有するパケットが配信されたかどうかを定義するＭＡＣごとのブール値を有するスイッチなどの、ドメイン処理を制御するためのオプションが加わる。スイッチ内のさらなるオプションは、ノード符号化ＭＡＣアドレスをＭＡＣごとにオフにする（別の形の潜在的な攻撃ベクトルを排除する）ことができる。
【００４１】
管理プロセッサから管理プロセッサへの通信を安全に保つために、全ての管理プロセッサＭＡＣ上の管理ドメインビットにマーキングすることができる。一般に、管理プロセッサは、（慣例により）ドメイン１上でルーティングを行うべきである。このような技術により、全ての管理プロセッサが管理ドメイン上でパケットをトンネリングでき、従って他のＶＬＡＮ又はドメイン上の他の装置（構造内部又は外部）がこれらを検査又はスプーフィングできないようにすることができる。さらに、セキュアな管理ＬＡＮを提供するために、管理ドメインビットを設定したゲートウェイＭＡＣを割り当てて、管理パケットを管理プロセッサドメインに対してプライベートに保つことができる。また、このスイッチ構造は、各ゲートウェイＭＡＣを別個のドメインに関連付けることにより、スイッチ内の「マルチテナント」をサポートすることができる。例えば、各ゲートウェイＭＡＣは、外部ルータ上の個別のポートに接続して、このポートを任意にＶＬＡＮに関連付けることができる。ゲートウェイ内にパケットが入ってくるときには、これらにドメインＩＤをタグ付けし、構造全体にわたり、このドメインに関連するＭＡＣに対してこのトラフィックをプライベートに保つ。
【００４２】
このスイッチは、数多くのレジスタ（ａｋａ  ＣＳＲ、ａｋａ  ＭＭＲ）をサポートして、ソフトウェア又はファームウェアがスイッチを制御できるようにする。これらのレジスタの実際のレイアウトは、実施構成により定められる。表１０に示すフィールドは、ソフトウェアの読み出し／書き込みである。これらのレジスタは全て、Ａ９からの書き込みからレジスタを保護するための機構を有する必要がある（セキュアモード又は管理プロセッサのプライベートバス上とすることができる）。
表１０
2013509808.tif 000012
2013509808.tif 000013
2013509808.tif 000014
2013509808.tif 000015
【００４３】
表１１に示すレジスタは、スイッチの実施構成に含まれるが、ソフトウェアによるアクセスが可能である必要はない。
表１１
2013509808.tif 000016
【００４４】
なお、ソフトウェアは、アクティブなパケットルーティングに関して自動的にルーティングテーブル（ｕｎｉｃａｓｔＲｏｕｔｅ）及びｍａｃＡｄｄｒＬｏｏｋｕｐ  ＣＡＭを更新できるべきである。１つの実施構成は、更新動作中にこれらのテーブルへのルーティングアクセスを防ぐことである。
【００４５】
ブロードキャスト／マルチキャストルーティング
図６に、本明細書に開示するシステム及び方法の１つの態様による例示的なブロードキャスト機構１０００を示す。点線１００３で示すように、ノードＮ１０  １００１とＮ２１  １００２の間のリンクが機能していない。マルチキャストパケットのルーティングヘッダの生成中、送信元ノードは、この送信元ノードの増分したブロードキャストＩＤをルーティングフレームに入れる（ｒｆｒａｍｅ．ｂｃａｓｔＩＤ）。あるノードがマルチキャストルーティングフレーム（すなわち、ｒｆｒａｍｅ．ｒｆＴｙｐｅ＝＝Ｍｕｌｔｉｃａｓｔ｜｜ｒｆｒａｍｅ．ｒｆＴｙｐｅ＝＝ＮｅｉｇｈｂｏｒＭｕｌｔｉｃａｓｔ）を受け取ると、このノードは、このブロードキャストパケットを既に認識しているかどうかをチェックする。このチェックは、ブロードキャスト送信元ノード及びブロードキャストＩＤで形成されたタグを有するｂｃａｓｔＩＤＳｅｅｎ  ＣＡＭにアクセスすることによって行われる。これが既に認識されていた場合（すなわち、ＣＡＭヒット）、何も動作は行われない。ブロードキャストフレームがまだ認識されていなかった場合、ノードは、これを適当な内部ポート及び外部ゲートウェイ（ｉｎｔＰｏｒｔＢｒｏａｄｃａｓｔＶｅｃレジスタ）にブロードキャストし、このフレームが入ってきたリンク以外の全ての外向きのＸＡＵＩリンクを通じてこれを再ブロードキャストする。なお、ｂｒｏａｄｃａｓｔＬａｔｅｒａｌレジスタが設定されている場合、ラテラルのみを通じてブロードキャストする。ほとんどのトポロジでは、ラテラルにブロードキャストする必要はなく、これを行うことで、重複するブロードキャストパケットを無効にすることにより、その数を減少させることができる。次に、このブロードキャストタグをｂｃａｓｔＩＤＳｅｅｎＣＡＭにＦＩＦＯの順で追加する。図７において、Ｎ０４  １００４が、全ての近隣、すなわちＮ１１  １１０５へのブロードキャストを開始する。Ｎ１１は、このパケットを認識していなかったので、到着ノード以外の全ての近隣、この例ではＮ２１  １００２、Ｎ２０  １００６、Ｎ０３  １００７、及びＮ０５  １００８にブロードキャストして、このパケットを内部に受け入れる。ノード０３及び０５は、このパケットを認識していなかったので、ブロードキャストを内部に受け入れる。Ｎ２１は、このパケットを認識していなかったので、到着リンク以外の全てのアクティブなリンク（例えば、Ｎ１０、Ｎ１２  １００９）にこのパケットをブロードキャストし、このパケットを内部に受け入れる。Ｎ２０は、到着リンク以外の全てのアクティブなリンク（すなわち、Ｎ１２）にこのパケットをブロードキャストし、このパケットを内部に受け入れる。Ｎ１０は、Ｎ００  １０１０、Ｎ０１  １０１１、及びＮ０２  １０１２に下り方向にブロードキャストする。Ｎ１２は、Ｎ０６  １０１３、Ｎ０７  １０１４、Ｎ０８  １０１５、並びにＮ２１及びＮ２０の一方（ブロードキャストパケットの取得元ではない方）に再ブロードキャストする。なお、Ｎ２０及びＮ２１の一方、並びにＮ１２は、このパケットを２回認識する。これらのノードは、最初の時点にのみ動作を行い、２回目には、このパケットがブロードキャストＣＡＭに重複としてヒットし、無視���れる。
【００４６】
ユニキャストルーティング
他のノードへのユニキャスト
（図７に示すような）ユニキャストルーティングは、非マルチキャスト（すなわち、ユニキャスト）パケットを次のノードにルーティングするものである。これは、宛先ノードに到達するために利用できるリンクのベクトルを提供するソフトウェア計算したｕｎｉｃａｓｔＲｏｕｔｅ［］次ノードルーティングテーブルを利用することによって行われる。
条件
ｒｆｒａｍｅ．ｒｆＴｙｐｅ＝＝Ｕｎｉｃａｓｔ
ルーティング
【００４７】
障害迂回ルーティングに関しては、相当な複雑性が存在する。無障害ルーティング及び障害迂回ルーティングについて別個に説明する。
【００４８】
従来、ツリールーティングでは、パケットは、（送信元、宛先）の共通親に達するまで上り方向にルーティングされる。この上り方向ルーティングは、確定的、非記憶的、又は適応的なものとすることができる。その後、パケットは、確定的ルーティングを使用して下り方向に宛先へルーティングされる。
【００４９】
一例として、図７に、ノードＮ００  １０１０からＮ０８  １０１５へのパケットルーティングを示す。パケットは、上りフェーズでノードＮ１０  １００１を経由して共通祖先（Ｎ２１）へ、その後下りフェーズで宛先へルーティングされる。
【００５０】
なお、ノードＮ１０における上りフェーズ中は、２つのリンク候補（Ｎ１０，Ｎ２１）及び（Ｎ１０，Ｎ２０）が存在する。確定的に第１のリンク候補を選択することもでき、或いは適応的アルゴリズムによってこれらのリンクのいずれかを動的に選択することもできる。しかしながら、ノードが共通祖先に達して下り方向に方向を変えると、ノードが宛先に到達するための冗長経路は（通常は）存在しない。
【００５１】
障害がない場合のユニキャストルーティング
このｕｎｉｃａｓｔＲｏｕｔｅテーブルでは、各リンクに２ビットのリンク重みの注釈が付けられ、ソフトウェアは、このリンクを介した宛先ノードまでの相対的コスト／距離を表すことができる。慣例により、リンク重みは以下を表すべきである。
・０＝ルートなし
・３＝ダイレクト次ホップ接続
・１及び２＝ソフトウェアが計算した相対的コスト。一例として、コストが２ホップ、３ホップ、及び６ホップの３つのリンクをまたぐ経路が存在する場合、最初の２つのリンクに重み＝２を割り当て、６ホップ経路に重み＝１を割り当てることができる。
無障害ユニキャストルーティングのためのアルゴリズム
・ユニキャストルーティングテーブルからリンク重みベクトルを取得する。
・ｌｉｎｋＷｅｉｇｈｔＶｅｃｔｏｒ＝ｕｎｉｃａｓｔＲｏｕｔｅ［ｒｆｒａｍｅ．ｄｓｔＮｏｄｅ］
・入ってきたリンクを削除して、ここに返送する可能性を排除する。
・機能していないリンクを全て削除する。
・この時点で、関連するリンク重みを有するリンク候補リストを得る。
・最も高い優先度（３）から開始して下へ１までリンク重みを反復する。この優先度のリンク候補リストを収集し、候補リストに少なくとも１つのリンクが挙がったら停止する。この結果、優先度が最も高いリンク候補リストが得られる。一例として、重み＝２のリンクが２つ、重み＝１のリンクが２つ存在する場合、優先候補リストには、重み＝２のリンク２つが含まれる。
・適応的レジスタをチェックして、適応的ルーティングを行うか、それとも確定的ルーティングを行うかを判断する。
・適応的＝＝０は、確定的ルーティングを使用すべきであることを示し、従って優先候補リストから第１のリンクを選択する。
・適応的＝＝１は、適応的ルーティングを使用すべきであることを示す。スイッチの実施構成では、ターゲットリンクを適応的に選択するためのアルゴリズムを優先候補リストから選択する。この適応的アルゴリズムを、リスト内総当たりのように単純にすることができる。或いは、ＦＩＦＯのない深さ、リンク速度、．．．などの他の特性を織り込むように選択することもできる。
・実施構成のオプションとしては、レジスタオプションを追加して、ルータが全ての非ゼロの重みから適応的に選択を行えるようにすること、或いは優先度が最も高い候補リストからのみ適応的に選択を行うことが考えられる。
・この選択したリンクでパケットを送出する。
【００５２】
耐障害性ユニキャストルーティング
耐障害性ユニキャストルーティングの複雑性の原因として２〜３の問題点が挙げられる。
・局所的知識のみで障害ルーティングを行おうと望むこと。ノードは、あるリンクが隣接ノードに対して機能していないことを暗黙的に知る。障害が存在する場合に包括的で統一された状態を維持するのは複雑であるため、リンク（又はノード）が構造内のどこか他の場所で機能していないことを伝達する必要性を避けるような設計を選択する。
・ツリー内のルーティングの性質。パケットルーティングの上りフェーズ中は、リンクを冗長リンクから適応的に選択することができ、従って通常の適応的リンク選択によるリンクを避けることが容易になり得る。
・しかしながら、パケットが降下し始めると、従来、（ルーティングルールに従う）降下経路には冗長経路が存在せず、従って障害ルーティングが課題となり得る。
・図８にリンク障害（Ｎ１０、Ｎ２１）を示しており、ユニキャストルーティングにより、上述した通常の適応的ルーティングアルゴリズムを使用して（Ｎ１０、Ｎ２０）リンクを選択した。しかしながら、パケットがＮ２０へ上向きにルーティングされ、リンク（Ｎ２０、Ｎ１２）が機能していない場合、宛先に容易に到達できる経路はない。
【００５３】
障害迂回ルーティングを処理するための方法は２つある。
・ソフトウェアが、重み＝１の代替手段ではあるが望ましくない経路を作成することができる。これらを避難経路と呼ぶ。これらは、障害迂回ルーティング中に使用する厳密なルーティングルールに違反する可能性がある優先度の低い経路である。一例として、リンク（Ｎ２０、Ｎ１２）が機能していないものとした場合、Ｎ２０のｕｎｉｃａｓｔＲｏｕｔｅ［Ｎ０８］エントリは、重み＝２のＮ１２へのリンク及び重み＝１のＮ１１へのリンクを含むことができる。このようにして、通常の適応的ルーティングアルゴリズムは、Ｎ２０−＞Ｎ１１−＞Ｎ２１−＞Ｎ１２−＞Ｎ０８の経路を自動的にとる。
・構造アーキテクチャは、「誤ルーティング」と呼ぶ技術を含む。誤ルーティングでは、反復的に同じ経路を引き返す。
・これらの技術は、いずれも実質的なユニキャスト耐障害性をもたらす。
【００５４】
ユニキャスト誤ルーティング
一例として、（図９に赤で示すような）障害のある３つのリンク１１０１、１１０２、及び１１０３を含む以下のトポロジについて検討する。Ｎ０からＮ３へのユニキャストルートを検討する。誤ルーティング技術を理解するために以下のルーティングについて検討するが、このルートは、適応的に選択できたいくつかのルートのうちの１つにすぎないと理解されたい。
・パケットがＮ０からＮ６へルーティングされる。
・パケットがＮ６からＮ１０へルーティングされる。
・Ｎ１０は、パケットが入ってきたリンク以外にＮ３に到達するための経路を有していないと認識する。Ｎ１０は、ルーティングヘッダ内に誤ルーティングビットを設定して、これをＮ６へ返送する。
・Ｎ６は、パケットが誤ルーティングされていることを認識し、ルーティングヘッダ内のｍｉｓｒｏｕｔｅＶｅｃｔｏｒ内のＮ１０リンクのビットを設定し、誤ルーティングされていない別のリンクを選択して、パケットをＮ１１へ送信する。
・Ｎ１１は、パケットが入ってきたリンク以外にＮ３への経路を有していないと認識する。誤ルーティングビットは既に設定されており、これをＮ６へ返送する。
・Ｎ６は、パケットが誤ルーティングされていることを認識し、ｍｉｓｒｏｕｔｅＶｅｃｔｏｒにＮ１１リンクを追加し（これでＮ１０のリンクＩＤとＮ１１のリンクＩＤを含む）、誤ルーティングされていない別のリンクを選択して、パケットをＮ７へ送信する。
・Ｎ７は、誤ルーティングビットが設定されていることを認識するが、Ｎ３への有効なリンク（Ｎ１２へ）を有しており、従ってヘッダ内の誤ルーティングビットをクリアして、パケットをＮ１２へ転送する。
・Ｎ１２はＮ９へ送信する。
・現在、Ｎ９  ｕｎｉｃａｓｔＲｏｕｔｅは、Ｎ３へのリンク（重み＝３）及びＮ８へのリンク（重み＝２）を含む可能性が高い。Ｎ３への直接リンクは機能していないので、通常の適応的ルーティングではこれが選択されることはなく、パケットをＮ８へルーティングして、最終的にＮ３へルーティングする。
・Ｎ６がそのリンク候補リストを使い果たしていた（すなわち、ｍｉｓｒｏｕｔｅＶｅｃｔｏｒによってこれらが全て隠されていた）場合、この実施構成には２つの選択肢がある。
・このパケットを欠落させて、Ｍ３にルーティングの失敗を通知する。
・ｍｉｓｒｏｕｔｅＶｅｃｔｏｒをクリアして誤ルーティング設定を残し、下向きのリンク（存在する場合）の１つを通じてパケットを転送する。これにより、１つ下のレイヤで誤ルーティングが再試行される。この実施構成では、１つ下のレイヤオプションでこの再試行を有効にするためのレジスタビット（ｅｎａｂｌｅＲｅｃｕｒｓｉｖｅＭｉｓｒｏｕｔｉｎｇ）を得たいと望むことができる。
スイッチが誤ルーティングアルゴリズムを開始するかどうかをソフトウェアが制御できるようにするｅｎａｂｌｅＭｉｓｒｏｕｔｉｎｇというレジスタが存在する。
【００５５】
マルチドメイニング
発明者らは、マルチドメイニングについても認識しており、この目的は、ノードの（６４Ｋ個のノードなどの）数多くのノードへのアドレス指定能力を、ユニキャストルーティングテーブルのサイズを６４Ｋ個のノードに増やす必要なく高めることである。
【００５６】
現在説明しているように、ユニキャストルーティングテーブルは、ノード番号（すなわち、０〜ＭＡＸ＿ＮＯＤＥＳ−１）によってインデックスを付けた１次元アレイであり、典型的な実施構成では２５６個〜４Ｋ個のノードになる。
【００５７】
この節では、現行のアーキテクチャを、いかにして最大ノードが６４Ｋ個の複数のドメインをサポートするように変更するかについて説明する。
・ノード名空間を、０〜ＭＡＸ＿ＮＯＤＥＳ−１のノードＩＤから、（ドメインＩＤ，ノードＩＤ）の２タプルに変更し、この場合ドメインＩＤとノードＩＤはいずれも０〜２５５である。従って、事実上２５６個のドメインが存在することができ、各ドメインが最大２５６のノードを含むことができる。
・ユニキャストルーティングテーブルを、ＭＡＸ＿ＮＯＤＥのサイズの１次元テーブルから２５６のサイズの２次元テーブルに変更する。これで、ユニキャストルーティングテーブルは、ｕｎｉｃａｓｔＲｏｕｔｅ［ＮＯＤＥＳ］の構造からｕｎｉｃａｓｔＲｏｕｔｅ［２］［２５６］の構造に変更される。
・ローカルドメインルーティング：このドメイン内のノードにルーティングする場合、ユニキャストルーティングテーブルは、ｕｎｉｃａｓｔＲｏｕｔｅ［０］［ノードＩＤ］としてアクセスを受け、現在のノードから指定されたノードＩＤにルーティングするように重み付けされたリンクベクトルを提供する。
・リモートドメインルーティング：リモートドメイン内のノードにルーティングする場合、ユニキャストルーティングテーブルは、ｕｎｉｃａｓｔＲｏｕｔｅ［１］［ドメインＩＤ］としてアクセスを受け、現在のノードから指定されたドメインＩＤにルーティングするように重み付けされたリンクベクトルを提供する。
・ルーティングフレーム：ルーティングフレームにｄｓｔＲｅｍｏｔｅという１ビットを追加し、リモートドメインにルーティングする場合にこれを真（ｔｒｕｅ）に設定する。
・ローカル管理ＭＡＣアドレス：以下の節では、ノード符号化ユニキャストＭＡＣアドレスの符号化を以下のように記述する。
2013509808.tif 000017
マルチドメイニングでは、これを以下のように変更する。
2013509808.tif 000018
・ルーティングフレームヘッダの作成：表２に、ルーティングフレームヘッダを作成するためのアルゴリズムを示している。マルチドメイニングの場合、これを以下によって拡張する。
if ( dstDomain == myDomainID ) {      // Route to local domain
rframe.dstRemote = false;
rframe.dstNode = dstNode;
}
else {                    // Route to remote domain
rframe.dstRemote = true;
rframe.dstNode = dstDomain;
【００５８】
ネットワークプロキシ
ネットワークプロキシの概念は、メインプロセッサ（図５Ａの９０５）の、低電力スリープ／休止状態の間にネットワークの存在を維持する能力、及びさらなる処理が必要な場合に知的に起動を行う能力である。ネットワークプロキシに関連するアーキテクチャ特性がいくつか存在する。
・ポートＩＤの再マッピングを可能にするためのＣＳＲ（ｐｏｒｔＲｅｍａｐ）が存在する。実際には、スイッチが内部ＭＡＣ０ポート（例えば、図５Ａの９０２）にパケットを配信すべき場合、このＰｏｒｔ  Ｒｅｍａｐｐｉｎｇ  ＣＳＲは、ソフトウェアがＭＡＣ０を管理プロセッサＭＡＣ（例えば、図５Ａの９０７）に再マッピングして、ネットワークプロキシ処理のためにパケットが管理プロセッサに配信されるようにすることができる。このｒｅｍａｐｐｉｎｇ  ＣＳＲを使用して、ＭＡＣ１トラフィックをＭＡＣ０に、又はＭＡＣ１トラフィックを管理プロセッサに再マッピングすることもできる。
・通常、スイッチは、ルーティングフレームの宛先ノードＩＤを見て、パケットがノード内の内部ポートに配信されるか、それとも他のＸＡＵＩ接続ノードにルーティングされるかを判断する。この判断は、宛先ノードＩＤを「Ｍｙ  Ｎｏｄｅ  ＩＤ」にマッチさせることによって行われる。ｎｏｄｅＲａｎｇｅＬｏ＜＝Ｄｅｓｔｉｎａｔｉｏｎ＿Ｎｏｄｅ＜＝ｎｏｄｅＲａｎｇｅＨｉ｜｜ｍｙＮｏｄｅＩＤ＝＝Ｄｅｓｔｉｎａｔｉｏｎ＿Ｎｏｄｅの場合、Ｎｏｄｅ  ＩＤ  Ｍａｔｃｈレジスタ（ｎｏｄｅＲａｎｇｅＬｏ，ｎｏｄｅＲａｎｇｅＨｉ）が、ノード内の内部ポートにパケットが配信されるようにする。これにより、ノードが、ノードのサブツリーのためにプロキシできるようになる。
【００５９】
典型的な使用順序は、以下の形をとる。
・管理プロセッサが、ＭＡＣ０及びＭＡＣ１のＩＰからＭＡＣアドレスへのマッピングをノード上に保持する。これは、メインプロセッサＯＳから管理プロセッサにこれらのマッピングを明示的に通信することによって行うこともでき、或いはローカルの不当なＡＲＰブロードキャストを管理プロセッサにスヌープさせることによって非明示的に行うこともできる。
・メインプロセッサは、管理プロセッサと協動して低電力休眠状態に入る。この遷移中、管理プロセッサは、Ｐｏｒｔ  ＩＤ  ｒｅｍａｐｐｉｎｇ  ＣＳＲを、ＭＡＣ０及びＭＡＣ１トラフィックを管理プロセッサにルーティングするように構成する。
・管理プロセッサは、全ての到着するＭＡＣ０／ＭＡＣ１パケットを処理する。処理には３つの種類がある。
・（ＡＲＰ応答及びＩＣＭＰピングなどの）単純な応答を求めるいくつかのクラスのトランザクションに応答する。
・いくつかのクラスのパケット、典型的には他のコンピュータ宛てのユニキャスト又はブロードキャストパケットをダンプして無視する。
・いくつかのクラスのパケットを処理するためにメインプロセッサを起動しなければならないと判断する。管理プロセッサは、メインプロセッサを起動させ、Ｐｏｒｔ  ＩＤ  ｒｅｍａｐｐｉｎｇレジスタを取り消し、スイッチを通じてパケットを再送して、パケットがＭＡＣ０／１に再ルーティングされる。
【００６０】
Ｗａｋｅ−ｏｎ−ＬＡＮマジックパケット
従来のデスクトップコンピュータでは、起動しておくべきコンピュータを、ネットワークカードのための電力を確保した状態でシャットダウン（スリープ、休止、又はソフトオフ、すなわちＡＣＰＩ状態のＧ１又はＧ２）するが、コンピュータの電源からは切断しない。ネットワークカードは、この特定のサブネット（又はＬＡＮ全体、ただし、これには特殊なハードウェア又は構成が必要である）のためのブロードキャストアドレス上でブロードキャストされるＭＡＣアドレスを含む、マジックパケットと呼ばれる特定のパケットをリスンする。マジックパケットは、ＯＳＩモデルのデータリンク又はレイヤ２上で送信され、ブロードキャストアドレスのネットワーク内の全てのＮＩＣにブロードキャストされ、ＩＰアドレス（ＯＳＩモデルのレイヤ３）は使用されない。リスン中のコンピュータがこのパケットを受け取ると、ネットワークカードは、正しい情報を求めてパケットをチェックする。マジックパケットが有効である場合、ネットワークカードは、コンピュータを休止又はスタンバイから復帰させ、又はこれを起動する。
【００６１】
マジックパケットは、そのペイロード内のいずれかに、６バイトの１（結果的に、１６進数でＦＦ  ＦＦ  ＦＦ  ＦＦ  ＦＦ  ＦＦ）の後にターゲットコンピュータのＭＡＣアドレスの１６回の繰り返しを含むブロードキャストフレームである。マジックパケットは、上記の文字列に関してしか走査されず、完全なプロトコルスタックによって実際に解析されるわけではないので、あらゆるネットワークレイヤ及びトランスポートレイヤプロトコルのブロードキャストパケットとして送信することができる。通常、このマジックパケットは、ポート０、７、又は９へのＵＤＰデータグラムとして送信され、又は以前はＩＰＸパケットとして送信されていた。
【００６２】
管理プロセッサは、上記のネットワークプロキシアーキテクチャを使用して、これらのＷａｋｅ−Ｏｎ−ＬＡＮパケットをサポートすることができる。管理プロセッサは、これらのブロードキャストパケットを取得し、ノード上の他のＭＡＣのＭＡＣアドレスを知り、必要時にメインプロセッサを起動することができる。これらのＷａｋｅ−ｏｎ−ＬＡＮパケットをサポートするために、スイッチ内にさらなる機能は不要である。
【００６３】
以上、本発明の特定の実施形態を参照しながら説明したが、当業者であれば、添付の特許請求の範囲により範囲を定義される本開示の原理及び思想から逸脱することなく、本実施形態に変更を加えることができると理解するであろう。
【符号の説明】
【００６４】
１００  ネットワークデータセンターアーキテクチャ
１０１ａ〜ｎ  最上位スイッチ
１０２ａ〜ｎ  ラック
１０３ａ〜ｆ  ローカルルータ
１０４ｅ〜ｋ  追加サーバ
１０５ａ  追加ストレージルータ及びコアスイッチ
１０５ｂ  追加ストレージルータ及びコアスイッチ
１０６ａ〜ｇ  ルータ
１０７ａ〜ｎ  ブレードサーバ
１０８ａ〜ｎ  追加ラックユニット
【図１Ａ】
2013509808.tif 000019
【図２】
2013509808.tif 000020
【図３】
2013509808.tif 000021
【図４】
2013509808.tif 000022
【図５Ｂ】
2013509808.tif 000023
【図６】
2013509808.tif 000024
【図７】
2013509808.tif 000025
【図８】
2013509808.tif 000026
【図９】
2013509808.tif 000027
【図１Ｂ】
2013509808.tif 000028
【図５Ａ】
2013509808.tif 000029
【国際調査報告】
2013509808.tif 000030
2013509808.tif 000031