(57)【特許請求の範囲】
【請求項１】
ＦＣｏＥ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  Ｏｖｅｒ  Ｅｔｈｅｒｎｅｔ）に基づいてフレームの送受信を行うノードと、
前記フレームの転送を行うネットワークと、
前記ノード及び前記ネットワークの管理を行うコントローラと、
前記ノードに対して設けられたゲートウェイと
を備え、
前記フレームは、通信に必要な制御情報をやりとりするための制御フレームと、ノード間でデータを送受信するためのデータフレームとに分類され、
前記ゲートウェイは、前記ノードから受け取ったフレームが前記制御フレームか前記データフレームかを判定し、前記制御フレームを前記コントローラに転送し、前記データフレームを前記ネットワークに転送し、
前記コントローラは、前記ゲートウェイから受け取った前記制御フレームに基づいて前記管理を行い、
前記ネットワークは、前記ゲートウェイから受け取った前記データフレームを、前記コントローラを介することなく、ターゲットノードに転送し、
前記コントローラは、前記ネットワークにおける前記データフレームの転送経路を、フロー毎に管理するフロー管理部を備え、
前記ターゲットノードとの通信を要求する前記ノードは、イニシエータノードであり、
フロー登録処理において、前記フロー管理部は、前記イニシエータノード及び前記ターゲットノードのＭＡＣアドレスに基づいて、前記イニシエータノードと前記ターゲットノードとの間の前記データフレームの転送経路を設計する
ネットワークシステム。
【請求項２】
請求項１に記載のネットワークシステムであって、
前記イニシエータノードは、前記ターゲットノードとの通信を要求する前記制御フレームである通信要求フレームを、前記コントローラに向けて送信し、
前記ゲートウェイは、前記イニシエータノードから受け取る前記通信要求フレームを、前記コントローラに転送し、
前記フロー管理部は、前記通信要求フレームに応答して、前記フロー登録処理を実行する
ネットワークシステム。
【請求項３】
請求項２に記載のネットワークシステムであって、
前記コントローラは、更に、ノード毎にＦＣ−ＩＤとＭＡＣアドレスとの対応関係を示すノード情報を保持するＦＣ管理部を備え、
前記通信要求フレームは、前記イニシエータノードのＭＡＣアドレスと前記ターゲットノードのＦＣ−ＩＤを示す情報を含んでおり、
前記ＦＣ管理部は、前記ノード情報を参照することによって、前記通信要求フレームで示される前記ターゲットノードのＦＣ−ＩＤを前記ターゲットノードのＭＡＣアドレスに変換し、
前記フロー管理部は、前記ＦＣ管理部によって得られた前記ターゲットノードのＭＡＣアドレスを用いて、前記イニシエータノードと前記ターゲットノードとの間の前記データフレームの転送経路を設計する
ネットワークシステム。
【請求項４】
請求項１乃至３のいずれか一項に記載のネットワークシステムであって、
前記コントローラは、更に、フロー管理情報をフロー毎に示すフロー管理テーブルを備え、
前記フロー管理情報は、前記イニシエータノードと前記ターゲットノードのＭＡＣアドレスのペア、及び前記データフレームの前記転送経路を示し、
前記フロー登録処理において、前記フロー管理部は、該当フローに関する前記フロー管理情報を前記フロー管理テーブルに登録する
ネットワークシステム。
【請求項５】
請求項４に記載のネットワークシステムであって、
前記イニシエータノードは、前記ターゲットノードとの通信の切断を要求する前記制御フレームである通信切断フレームを、前記コントローラに向けて送信し、
前記ゲートウェイは、前記イニシエータノードから受け取る前記通信切断フレームを、前記コントローラに転送し、
前記フロー管理部は、前記通信切断フレームに応答して、該当フローに関する前記フロー管理情報を前記フロー管理テーブルから削除する
ネットワークシステム。
【請求項６】
請求項１乃至５のいずれか一項に記載のネットワークシステムであって、
前記ノードは、前記フレームの宛先ＭＡＣアドレスを前記コントローラのＭＡＣアドレスに設定し、
前記ゲートウェイは、前記受け取ったフレームが前記データフレームの場合、前記データフレームの宛先ＭＡＣアドレスを前記ターゲットノードのＭＡＣアドレスに変換し、その後、前記データフレームを前記ネットワークに出力する
ネットワークシステム。
【請求項７】
請求項１乃至６のいずれか一項に記載のネットワークシステムであって、
前記ゲートウェイは、ＦＣＰフレームを前記データフレームと判定し、それ以外のフレームを前記制御フレームと判定する
ネットワークシステム。
【請求項８】
請求項１乃至７のいずれか一項に記載のネットワークシステムであって、
前記ゲートウェイは、前記ノードのネットワークカードに組み込まれている
ネットワークシステム。
【請求項９】
ネットワークシステムにおけるフレーム通信方法であって、
前記ネットワークシステムは、
ＦＣｏＥ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  Ｏｖｅｒ  Ｅｔｈｅｒｎｅｔ）に基づいてフレームの送受信を行うノードと、
前記フレームの転送を行うネットワークと、
前記ノード及び前記ネットワークの管理を行うコントローラと
を備え、
前記フレームは、通信に必要な制御情報をやりとりするための制御フレームと、ノード間でデータを送受信するためのデータフレームとに分類され、
前記フレーム通信方法は、
前記ノードから送信されるフレームが前記制御フレームか前記データフレームかを判定するステップと、
前記制御フレームを前記コントローラに転送し、前記コントローラにおいて、前記制御フレームに基づいて前記管理を行うステップと、
前記データフレームを前記ネットワークに転送し、前記コントローラを介することなく、送信先ノードに伝送するステップと、
前記コントローラにおいて、前記ネットワークにおける前記データフレームの転送経路をフロー毎に管理するステップと
を含み、
前記ターゲットノードとの通信を要求する前記ノードは、イニシエータノードであり、
フロー登録処理において、前記イニシエータノード及び前記ターゲットノードのＭＡＣアドレスに基づいて、前記イニシエータノードと前記ターゲットノードとの間の前記データフレームの転送経路が設計される
フレーム通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フレーム通信を行うネットワークシステムに関する。
【背景技術】
【０００２】
ネットワーク上で通信を行うための技術の一つに、「データのカプセル化」がある。具体的には、次の通りである。
【０００３】
ネットワーク間で転送されるデータは、転送時に使用される通信方式に従って、その形を構成する。ネットワーク上では、ＯＳＩ参照モデルやＴＣＰ／ＩＰスタックに代表されるように、複数の階層を経由して通信が行われる。そのため、データの形は各階層の仕様に対応可能である必要がある。一般的には、データはヘッダーとペイロードで構成される。ヘッダーには、特定の階層において制御データとなる内容が含まれており、そのヘッダーの内容をその階層の通信規格が解釈することによって、他層へペイロードが転送される。各階層において、ヘッダーは、送信の際はペイロードの頭に付加され、受信の際は除去される。そのため、ペイロードには、より上位の層においてヘッダーとなりうる内容が含まれている。データ通信を開始する際、データは通信方式の最上位の階層より生成される。データは次々に下位層を通過し、最下層を通過後、ネットワーク上に出力される。最下位の階層に到達するまで、各階層に対応したヘッダーがデータに追加され、上層でヘッダーであった部分はペイロードとして扱われる。ここで行われるヘッダーの追加が、データのカプセル化と呼ばれている。
【０００４】
データのカプセル化は、特定の通信方式に対応したヘッダーを付加することにより、以前まで通信不可能であった機種との通信を可能にする技術として見なせる。この技術の応用によって、データのセキュリティーの向上や、既存の複数の通信方式に対応可能となる新しい通信方式の生成が可能である。
【０００５】
このような技術を利用した新しい通信方式が、非特許文献１に記載されている。非特許文献１によれば、近年のデータセンター向けの技術の一つとして、「Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  Ｏｖｅｒ  Ｅｔｈｅｒｎｅｔ（ＦＣｏＥ）」が提案されている。
【０００６】
現在のデータセンターでは、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ（ＦＣ）に代表されるＳｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＳＡＮ）と、Ｅｔｈｅｒｎｅｔ（登録商標）に代表されるＬｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＬＡＮ）が混在したネットワーク構成で運営がなされている。別々のネットワークが混在しているため、管理コスト及び機器コストの高騰が問題となっている。
【０００７】
そのような問題を受けて、ＦＣｏＥが提案された。ＦＣｏＥは、ＦＣのデータを、Ｅｔｈｅｒｎｅｔのヘッダーと新規に定義されたＦＣｏＥのヘッダーを用いてカプセル化する。これにより、Ｅｔｈｅｒｎｅｔ形式に通信方式を統合し、ＳＡＮとＬＡＮが統合したネットワーク構成を実現することが可能となる。統合ネットワーク上では管理および使用機器の一括化が実現されるため、問題解決の技術として有力視されている。
【０００８】
しかし、現在のＦＣｏＥによる通信は、「ＦＣｏＥ  Ｆｏｒｗａｒｄｅｒ（ＦＣＦ）」と呼ばれるＦＣｏＥ通信用のスイッチを、必ず経由する必要がある。このことは、ネットワークの柔軟性と拡張性の制限となり、多量の通信機器を用いるデータセンターの構成には対応が出来ない。
【先行技術文献】
【特許文献】
【０００９】
【非特許文献１】ＩＮＣＩＴＳ  ＴＣ  Ｔ１１，  Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  Ｂａｃｋｂｏｎｅ−５，ｈｔｔｐ：／／ｗｗｗ．ｆｃｏｅ．ｃｏｍ／０９−０５６ｖ５．ｐｄｆ
【発明の概要】
【発明が解決しようとする課題】
【００１０】
非特許文献１に記載された通信方式では、通信の際に必ず経由する機器が存在する。このことは、ネットワークの柔軟性と拡張性の低下につながる。
【００１１】
本発明の目的は、ネットワークの柔軟性と拡張性を向上させることができる技術を提供することにある。
【課題を解決するための手段】
【００１２】
本発明の１つの観点において、ネットワークシステムが提供される。そのネットワークシステムは、ＦＣｏＥ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  Ｏｖｅｒ  Ｅｔｈｅｒｎｅｔ）に基づいてフレームの送受信を行うノードと、フレームの転送を行うネットワークと、ノード及びネットワークの管理を行うコントローラと、ノードに対して設けられたゲートウェイと、を備える。フレームは、通信に必要な制御情報をやりとりするための制御フレームと、ノード間でデータを送受信するためのデータフレームとに分類される。ゲートウェイは、ノードから受け取ったフレームが制御フレームかデータフレームかを判定し、制御フレームをコントローラに転送し、データフレームをネットワークに転送する。コントローラは、ゲートウェイから受け取った制御フレームに基づいて管理を行う。ネットワークは、ゲートウェイから受け取ったデータフレームを、コントローラを介することなく、送信先ノードに転送する。コントローラは、ネットワークにおけるデータフレームの転送経路を、フロー毎に管理するフロー管理部を備える。
【００１３】
本発明の他の観点において、ネットワークシステムにおけるフレーム通信方法が提供される。そのネットワークシステムは、ＦＣｏＥ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  Ｏｖｅｒ  Ｅｔｈｅｒｎｅｔ）に基づいてフレームの送受信を行うノードと、フレームの転送を行うネットワークと、ノード及びネットワークの管理を行うコントローラと、を備える。フレームは、通信に必要な制御情報をやりとりするための制御フレームと、ノード間でデータを送受信するためのデータフレームとに分類される。本発明に係るフレーム通信方法は、（Ａ）ノードから送信されるフレームが制御フレームかデータフレームかを判定するステップと、（Ｂ）制御フレームをコントローラに転送し、コントローラにおいて、制御フレームに基づいて管理を行うステップと、（Ｃ）データフレームをネットワークに転送し、コントローラを介することなく、送信先ノードに伝送するステップと、（Ｄ）コントローラにおいて、ネットワークにおけるデータフレームの転送経路をフロー毎に管理するステップと、を含む。
【発明の効果】
【００１４】
本発明によれば、ノードから送られるフレームが、制御フレームとデータフレームとに分離される。そして、制御フレームに比べて情報量が膨大であるデータフレームは、特定の経路を経由することなく伝送される。つまり、本発明の通信方式は、ネットワークの性能に大きく関わるデータフレームが必ず経由する機器が存在するという制約から解放される。従って、ネットワークの柔軟性と拡張性を高めることが可能となる。
【００１５】
更に、本発明によれば、コントローラが、ネットワークにおけるデータフレームの転送経路を、フロー毎に集中管理する。これにより、ネットワークの利用効率及び通信性能を向上させることが可能となる。
【図面の簡単な説明】
【００１６】
【図１】図１は、本発明の実施の形態に係るネットワークシステムの構成を示すブロック図である。
【図２】図２は、本発明の実施の形態に係るコントローラの構成を示すブロック図である。
【図３】図３は、本発明の実施の形態に係るゲートウェイの構成を示すブロック図である。
【図４】図４は、本発明の実施の形態に係るコントローラの動作を示すフローチャートである。
【図５】図５は、本発明の実施の形態に係るネットワークシステムの変形例を示すブロック図である。
【図６】図６は、本発明の実施の形態に係るコントローラのハードウェア構成例を示すブロック図である。
【図７】図７は、一般的なＦＣｏＥ通信ネットワークの構成を示すブロック図である。
【図８】図８は、一般的なＦＣｏＥ通信において使用されるフレームの分類図である。
【図９】図９は、一般的なＦＣｏＥ通信におけるＳＣＳＩ−ＦＣＰフレームの構造を示す概念図である。
【図１０】図１０は、ＦＣｏＥ通信に本発明を適用した場合のコントローラの構成を示すブロック図である。
【図１１】図１１は、ＦＣｏＥ通信に本発明を適用した場合のフレームの分類図である。
【図１２】図１２は、本発明の実施の形態に係るネットワークシステムの構成を示すブロック図である。
【図１３】図１３は、本発明の実施の形態において用いられるアドレスを説明するための概念図である。
【図１４】図１４は、本発明の実施の形態におけるコントローラ２’による処理を示す概念図である。
【図１５】図１５は、本発明の実施の形態におけるコントローラ２’の構成例を示すブロック図である。
【図１６】図１６は、本発明の実施の形態におけるスイッチの構成例を示すブロック図である。
【図１７】図１７は、本発明の実施の形態におけるコントローラ２’による処理を示すフローチャートである。
【図１８】図１８は、本発明の実施の形態におけるコントローラ２’による処理を示すフローチャートである。
【図１９】図１９は、本発明の実施の形態におけるコントローラ２’による処理を示すフローチャートである。
【発明を実施するための形態】
【００１７】
添付図面を参照して、本発明の実施の形態を説明する。
【００１８】
１．Ｕ／Ｃ分離機能
本特許出願の出願人は、未公開の先願（特願２０１０−２０８０４８）において、上記課題を解決するための手段として「Ｕ／Ｃ分離機能」を記述している。Ｕ／Ｃ分離機能によれば、ノードから送られるフレームが、データフレーム（ユーザデータフレーム）と制御フレームとに分離される。そして、制御フレームに比べて情報量が膨大であるデータフレームは、特定の経路を経由することなく伝送される。つまり、Ｕ／Ｃ分離機能によれば、ネットワークの性能に大きく関わるデータフレームが必ず経由する機器が存在するという制約から解放される。従って、ネットワークの柔軟性と拡張性を高めることが可能となる。
【００１９】
以下、Ｕ／Ｃ分離機能について詳しく説明する。尚、未公開の特願２０１０−２０８０４８に記載されている内容は、参照により本明細書に組み込まれる。
【００２０】
１−１．構成
図１は、本発明の実施の形態に係るネットワークシステムの構成を示すブロック図である。本実施の形態に係るネットワークシステムは、ノード１、コントローラ２、ゲートウェイ３、及びネットワーク４を備えている。ノード１は、ゲートウェイ３に接続されている。ゲートウェイ３は、ノード１とネットワーク４との間に接続されている。コントローラ２は、各ゲートウェイ３に接続されている。
【００２１】
ノード１は、フレーム１０の送受信を行う通信装置である。そのフレーム１０は、制御フレーム１１とデータフレーム１２とに分類される。制御フレーム１１は、通信に必要な制御情報をやりとりするためのフレーム１０である。例えば、制御フレーム１１は、通信ネットワークへのアクセスや機器へのログイン、また、そのための情報交換を行うために用いられる。一方、データフレーム１２は、ノード１同士でデータの送受信を行うためのフレーム１０である。データフレーム１２の情報量は、制御フレーム１１のそれに比べ膨大であることに留意されたい。制御フレーム１１とデータフレーム１２とは、フレーム１０のフレームタイプにより識別可能である。
【００２２】
ネットワーク４は、ノード１の間で送受信されるフレーム１０を転送する。ネットワーク４は、フレームの中継を行うスイッチ等の接続機器と、接続機器を繋ぐネットワークケーブルの組み合わせで構成される。
【００２３】
ゲートウェイ３は、ノード１と１組で構成される。ゲートウェイ３は、ノード１から送信されるフレーム１０を受け取り、受け取ったフレーム１０が制御フレーム１１かデータフレーム１２かを判定する。そして、ゲートウェイ３は、制御フレーム１１をコントローラ２に転送し、データフレーム１２をネットワーク４へ転送する。すなわち、情報量が膨大なデータフレーム１２は、コントローラ２を経由することなく、ネットワーク４によって送信先に転送される。また、ゲートウェイ３は、コントローラ２及びネットワーク４からフレーム１０（制御フレーム１１、データフレーム１２）を受け取り、受け取ったフレーム１０をノード１に転送する。尚、ゲートウェイ３は、フレーム１０の転送を行う際、送信先の機器がフレーム１０を正しく扱えるように、必要に応じてフレーム１０の情報を変更する。詳細は後述する。
【００２４】
コントローラ２は、ゲートウェイ３から制御フレーム１１を受け取り、その制御フレーム１１を処理する。具体的には、コントローラ２は、受け取った制御フレーム１１の内容に基づいて、ノード１やネットワーク４に関する情報の管理を行う。また、必要に応じて、コントローラ２は、ノード１やゲートウェイ３に対してフレーム１０を送信または転送する。
【００２５】
以下、コントローラ２の構成を詳細に説明する。図２は、コントローラ２の構成を示すブロック図である。コントローラ２は、受信部２０、処理部２１、ノード情報テーブル２２、及び送信部２３を備えている。
【００２６】
ノード情報テーブル２２は、ノード１やゲートウェイ３、ネットワーク４上の接続機器に関する管理情報を示す。受信部２０は、ゲートウェイ３から制御フレーム１１を受け取り、その制御フレーム１１を処理部２１に転送する。処理部２１は、受け取った制御フレーム１１の内容に応じた処理を行う。例えば、処理部２１は、制御フレーム１１の内容に応じてノード情報テーブル２２を更新する。また、処理部２１は、ノード情報テーブル２２を参照して返信用の制御フレーム１１を生成し、その返信用の制御フレーム１１を送信部２３へ出力する。また、処理部２１は、受け取った制御フレーム１１をそのまま送信部２３に転送する。送信部２３は、処理部２１から受け取った制御フレーム１１を、対象のゲートウェイ３へ送信する。
【００２７】
以下、ゲートウェイ３の構成を詳細に説明する。図３は、ゲートウェイ３の構成を示すブロック図である。ゲートウェイ３は、分離部３０、アドレス変換部３１、及び多重化部３２を備えている。
【００２８】
分離部３０は、ノード１からフレーム１０を受け取る。そして、分離部３０は、受け取ったフレーム１０の解析を行い、当該フレーム１０が制御フレーム１１かデータフレーム１２かを判定する。そして、分離部３０は、制御フレーム１１をコントローラ２に転送し、データフレーム１２をアドレス変換部３１へ転送する。アドレス変換部３１は、分離部３０から受け取ったデータフレーム１２の宛先ＭＡＣアドレスの変換を行い、その後、当該データフレーム１２をネットワーク４に転送する。また、アドレス変換部３１は、ネットワーク４からデータフレーム１２を受け取ると、受け取ったデータフレーム１２の送信元ＭＡＣアドレスの変換を行い、その後、当該データフレーム１２を多重化部３２に出力する。多重化部３２は、コントローラ２から入力される制御フレーム１１、及びアドレス変換部３１から入力されるデータフレーム１２を、ノード１へ出力する。
【００２９】
このように、本実施の形態によれば、ノード１から送られるフレーム１０が、制御フレーム１１とデータフレーム１２とに分離される。そして、制御フレーム１１に比べて情報量が膨大であるデータフレーム１２は、特定の経路（コントローラ２）を経由することなく伝送される。つまり、本実施の形態の通信方式は、ネットワークの性能に大きく関わるデータフレーム１２が必ず経由する機器が存在するという制約から解放される。従って、ネットワークの柔軟性と拡張性を高めることが可能となる。
【００３０】
１−２．コントローラ２の動作フロー
図４は、本実施の形態に係るコントローラ２の動作を示すフローチャートである。以下、図２及び図４を参照して、コントローラ２の動作フローを説明する。
【００３１】
ステップＳ１００：
処理部２１は、受信部２０からフレーム１０（制御フレーム１１）の入力を待つ。
【００３２】
ステップＳ１０１：
処理部２１は、受信部２０から受け取ったフレーム１０のヘッダー及びペイロードを参照し、当該フレーム１０の宛先（終端先）がコントローラ２であるか、送信元と対向するノード１であるかを判定する。宛先がコントローラ２の場合、処理はステップＳ１０２に進む。一方、宛先がノード１の場合、処理はステップＳ１０６に進む。
【００３３】
ステップＳ１０２：
処理部２１は、当該フレーム１０の種別を判定する。具体的には、処理部２１は、当該フレーム１０が、送信元であるノード１の情報を登録するためのもの（情報登録フレーム）か、他のノード１もしくはコントローラ２の情報を取得するためのもの（情報取得フレーム）か、を判定する。情報登録フレームの場合、処理はステップＳ１０３に進む。一方、情報取得フレームの場合、処理はステップＳ１０４に進む。
【００３４】
ステップＳ１０３：
処理部２１は、情報登録フレームに基づいて、送信元のノード１の情報をノード情報テーブル２２に登録する。その後、処理はステップＳ１０５に進む。
【００３５】
ステップＳ１０４：
処理部２１は、情報取得フレームが要求する内容に対応した情報を、ノード情報テーブル２２から取得する。その後、処理はステップＳ１０５に進む。
【００３６】
ステップＳ１０５：
処理部２１は、返信用のフレーム１０（制御フレーム１１）を作成する。上記ステップＳ１０４が実施された場合、処理部２１は、ノード情報テーブル２２から取得した情報を、返信用のフレーム１０に含める。そして、処理部２１は、返信用のフレーム１０を送信部２３に出力する。送信部２３は、返信用のフレーム１０を、送信元のノード１側のゲートウェイ３に送信する。
【００３７】
ステップＳ１０６：
一方、宛先がノード１の場合、処理部２１は、ノード情報テーブル２２を参照して当該フレーム１０の宛先ＭＡＣアドレスを変更する。そして、処理部２１は、当該フレーム１０を送信部２３に出力する。
【００３８】
ステップＳ１０７：
送信部２３は、当該フレーム１０を、送信先のノード１側のゲートウェイ３に送信する。
【００３９】
１−３．変形例
図５は、本実施の形態に係るネットワークシステムの変形例を示すブロック図である。本変形例では、ゲートウェイ３は、ノード１内のネットワーク装置に組み込まれる。より詳細には、ノード１はネットワークカード４０を備えており、ゲートウェイ３はそのネットワークカード４０内に設置される。図５におけるゲートウェイ３は、設置個所が異なる点を除けば、図１におけるゲートウェイ３と同じである。本変形例によれば、ノード１に機能が集約されるため、ネットワークの柔軟性が更に高まることが期待される。
【００４０】
図６は、本実施の形態に係るコントローラ２のハードウェア構成例を示すブロック図である。コントローラ２の機能は、１台のサーバ９０に実装される。サーバ９０は、ネットワークインタフェースカード（ＮＩＣ）１００、処理装置（ＣＰＵ）１０１、及びメモリ１０２を備えている。コントローラ２の機能は、これらハードウェアとコンピュータプログラムとの協働によって実現される。より詳細には、フレーム１０の送受信を行うネットワークインタフェースカード１００は、上述の受信部２０及び送信部２３として機能する。フレーム処理を行う処理装置１０１は、上述の処理部２１として機能する。メモリ１０２には、上述のノード情報テーブル２２が格納される。尚、コントローラ２の機能を実現するコンピュータプログラムは、コンピュータ読み取り可能な記録媒体に記録されていてもよい。
【００４１】
１−４．ＦＣｏＥへの応用
次に、本実施の形態をＦＣｏＥに適用することを考える。
【００４２】
図７は、一般的なＦＣｏＥ通信ネットワークの構成を示すブロック図である。ＦＣｏＥに基づいてフレーム通信を行うノード１は、ＦＣｏＥに対応したリンクで構成されたネットワーク４を通して、ＦＣＦ（ＦＣｏＥ  Ｆｏｒｗａｒｄｅｒ）５０に接続される。ＦＣＦ５０は、ＦＣｏＥ通信用のスイッチである。現在、ＦＣｏＥによる通信は必ず、このＦＣＦ５０を経由する必要がある。
【００４３】
図８は、一般的なＦＣｏＥ通信において使用されるフレームの分類図である。各フレームを順番に説明する。
【００４４】
１．ＤＣＢＸ（ＬＬＤＰ）：ＦＣｏＥ通信を行うための、Ｅｔｈｅｔｎｅｔ通信網に使用される拡張機能についての情報をリンク間で交換する。
【００４５】
２．ＦＩＰ  ＶＬＡＮ  Ｄｉｓｃｏｖｅｒｙ：ノードがＦＣＦから、ＦＣｏＥ通信に使用するＶＬＡＮ  ＩＤを取得する。
【００４６】
３．ＦＩＰ  Ｄｉｓｃｏｖｅｒｙ：ノードがＦＣＦから、ＦＣｏＥ通信に使用するＦＣＦのＭＡＣアドレスを取得する。
【００４７】
４．ＦＩＰ  ＦＬＯＧＩ：ノードがＦＣＦへアクセスし、ＦＣｏＥ通信に使用する自身のＭＡＣアドレスを取得する。
【００４８】
５．ＰＬＯＧＩ：ノードがＦＣＦを介して、ＦＣＦおよび送信先のノードとＦＣｏＥ通信のための情報交換を行う。
【００４９】
６．ＰＲＬＩ：ノードがＦＣＦを介して、送信先のノードとデータをやり取りするための情報交換を行う。
【００５０】
７．ＳＣＳＩ−ＦＣＰ：ノードがＦＣＦを介して、送信先のノードとデータをやり取りする。
【００５１】
８．ＰＲＬＯ：ノードがＦＣＦを介して、ノード同士の接続を切断する（情報を削除する）。
【００５２】
９．ＬＯＧＯ：ノードがＦＣＦへアクセスし、ＦＣＦとノードの接続を切断する（情報を削除する）。
【００５３】
上述のうち、“ＳＣＳＩ−ＦＣＰフレーム”がデータフレーム１２に相当し、その情報量は他の種類のフレームと比較して非常に大きい。図７で示された一般的なＦＣｏＥ通信ネットワークの場合、このＳＣＳＩ−ＦＣＰフレームも含めて全てのフレームがＦＣＦ５０を経由する。そのため、ＳＣＳＩ−ＦＣＰフレームの転送時間が、ネットワークの性能に大きな影響を与えてしまう。
【００５４】
本実施の形態がＦＣｏＥに適用される場合の動作は、次の通りである。
【００５５】
まず、ゲートウェイ３の動作を説明する。ゲートウェイ３は、受け取ったフレーム１０が制御フレーム１１かデータフレーム１２かを判定する。制御フレーム１１は、送信先のノード１にアクセスするための情報交換を行うためのフレームである。一方、データフレーム１２は、ノード１同士でデータの送受信を行うためのフレームである。図８に示されたフレームの中では、“ＳＣＳＩ−ＦＣＰ”がデータフレーム１２と判定され、その他のフレームは制御フレーム１１と判定される。
【００５６】
ゲートウェイ３は、例えば次の方法により、フレーム種類を判定することができる。図９は、ＳＣＳＩ−ＦＣＰフレームの構造を示す概念図である。図９を参照すると、ＦＣｏＥ  Ｆｉｅｌｄの中にあるＦＣ  Ｆｉｅｌｄに、“ＦＣ  Ｔｙｐｅ：ＦＣＰ”という要素がある。ＳＣＳＩ−ＦＣＰフレームをその他のフレームから明確に区別できる点は、この“ＦＣ  Ｔｙｐｅ”である。従って、ゲートウェイ３は、受け取ったフレーム１０の“ＦＣ  Ｔｙｐｅ”を参照することによって、当該フレーム１０が制御フレーム１１かデータフレーム１２かを判定することができる。
【００５７】
また、ゲートウェイ３は、必要に応じて、フレーム１０の宛先ＭＡＣアドレスを変更する。その理由は、次の通りである。従来のＦＣｏＥ通信では、制御フレームとデータフレームの双方がＦＣＦ５０を経由する。そのため、宛先ＭＡＣアドレスが不明であっても、とりあえず宛先ＭＡＣアドレスをＦＣＦ５０のＭＡＣアドレスとしておけば、ＦＣＦ５０が宛先ＭＡＣアドレスの変換を行ってくれていた。しかし、本実施の形態によれば、データフレーム１２はコントローラ２を経由しない。ノード１は送信フレーム１０の宛先ＭＡＣアドレスをコントローラ２のＭＡＣアドレスに設定するため、ゲートウェイ３において宛先ＭＡＣアドレスの変換が行われない限り、ネットワーク４は送信先のノード１へデータフレーム１２を転送することができない。そのため、ゲートウェイ３は、データフレーム１２が正しい送信先へ転送されるように、データフレーム１２の宛先ＭＡＣアドレスを送信先のノード１のＭＡＣアドレスに変換し、その後、当該データフレーム１２をネットワーク４に出力する。
【００５８】
ここで、従来のＦＣｏＥ通信で使用されるＭＡＣアドレス（仮想ＭＡＣアドレス）は、ノード１が元々保持しているＭＡＣアドレス（物理ＭＡＣアドレス）とは異なり、ＦＣＦ５０がＦＣｏＥ通信用に配布するものである。この配布される仮想ＭＡＣアドレスの割付には規定があり、仮想ＭＡＣアドレス６バイトのうち上位３バイトを固定値、下位３バイトが可変としている。そして、下位３バイトの値はＦＣｏＥフレームにカプセル化されたＦＣフレームにおける、通信機器のアドレスとして使用される。そして、従来のＦＣｏＥ通信では、ノード１が送信先のノード１へフレーム１０を送信する場合は、ＭＡＣアドレスはＦＣＦ５０の仮想ＭＡＣアドレスであるが、ＦＣフレームの送信先アドレスには送信先のノード１のアドレス（ＦＣ−ＩＤ）を指定する。よって、ゲートウェイ３においてデータフレーム１２と判定されたフレーム１０に関しては、カプセル化されたＦＣフレームの送信先アドレスを解析することによって、上記の法則に従い送信先のノード１の仮想ＭＡＣアドレスを取得することができる。
【００５９】
このようにして、データフレーム１２は、ネットワーク４を経由して、コントローラ２を経由することなく、送信先のノード１へ転送される。
【００６０】
次に、コントローラ２の動作を説明する。コントローラ２は、従来のＦＣＦ５０が行っていた制御フレーム１１（つまり、データフレーム１２であるＳＣＳＩ−ＦＣＰ以外）に対する処理を担当する。
【００６１】
図１０は、ＦＣｏＥ通信に本実施の形態を適用した場合のコントローラ２の構成を示すブロック図である。図１０に示されるように、コントローラ２は、調定部６０、ネットワーク情報管理部６１、及びＦＣｏＥ情報管理部６２を備えている。
【００６２】
調定部６０は、コントローラ２に到着したフレーム種別を判別し、各情報管理部（６１，６２）にフレームを転送する。また、調定部６０は、各情報管理部（６１，６２）から送信フレーム用の構築情報を取得し、ゲートウェイ３へフレームを生成・送信する。
【００６３】
ネットワーク情報管理部６１は、スイッチ間トポロジー管理部７０、経路情報管理部７１、及びＶＬＡＮ  ＩＤ管理部７２を備えている。
【００６４】
スイッチ間トポロジー管理部７０は、ネットワーク４中の各スイッチのポートの接続情報を識別、管理する。
【００６５】
経路情報管理部７１は、スイッチ間トポロジー管理部７０で判明しているノード１間の経路を管理する。また、経路情報管理部７１は、ＦＣｏＥ情報管理部６２から新規のノード１間の設定要求を受け取った場合、各スイッチに経路情報を展開する。
【００６６】
ＶＬＡＮ  ＩＤ管理部７２は、スイッチのポートへのＶＬＡＮ  ＩＤ付与を管理する。また、ＶＬＡＮ  ＩＤ管理部７２は、ＦＣｏＥ情報管理部６２からの検索要求に応じて、ＶＬＡＮ  ＩＤを検索・応答する。
【００６７】
ＦＣｏＥ情報管理部６２は、コントローラＭＡＣ８０、ノード／ＶＬＡＮ  ＩＤ管理部８１、ログインサーバ８２、ディレクトリサーバ８３、及びファブリック管理部８４を備えている。
【００６８】
コントローラＭＡＣ８０は、ＦＣｏＥ情報管理部６２宛の通信用ＭＡＣアドレスを管理する。コントローラＭＡＣ８０は、ノード１からのＦＩＰ  Ｄｉｓｃｏｖｅｒｙに対して、コントローラ２のＭＡＣアドレスを返答する。
【００６９】
ノード／ＶＬＡＮ  ＩＤ管理部８１は、ノード１が所属するＶＬＡＮ  ＩＤを管理する。ノード／ＶＬＡＮ  ＩＤ管理部８１は、ノード１からのＦＩＰ  ＶＬＡＮ  Ｄｉｓｃｏｖｅｒｙに対して、当ＦＣｏＥのネットワークが所属するＶＬＡＮ  ＩＤを返答する。
【００７０】
ログインサーバ８２は、ノード１の管理を目的として、ＦＬＯＧＩにて通知されるノード１の物理ＭＡＣアドレスを管理する。
【００７１】
ディレクトリサーバ８３は、ＦＬＯＧＩ済のノード１の各ポートの情報であるＷＷＰＮ  （Ｗｏｒｌｄ  Ｗｉｄｅ  Ｐｏｒｔ  Ｎａｍｅ）、ＷＷＮＮ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｎｏｄｅ  Ｎａｍｅ）、サポート可能なＦＣのサービスクラスを管理する。また、ディレクトリサーバ８３は、ｄＮＳによってノード１からの問い合わせに対して応答する。
【００７２】
ファブリック管理部８４は、ノード１のポート状態を管理し、状態変更（ポートの有効／無効、ポートのＦａｂｒｉｃへの参加／離脱）があった場合に、他ノードに通知する（ＲＳＣＮ／ＳＣＲ）。
【００７３】
図１１は、ＦＣｏＥ通信に本実施の形態を適用した場合のフレームの分類図である。各フレームを順番に説明する。
【００７４】
１．ＤＣＢＸ（ＬＬＤＰ）：ＦＣｏＥ通信を行うための、Ｅｔｈｅｒｎｅｔ通信網に使用される拡張機能についての情報をリンク間で交換する。
【００７５】
２．ＦＩＰ  ＶＬＡＮ  Ｄｉｓｃｏｖｅｒｙ：ノード１がコントローラ２から、ＦＣｏＥ通信に使用するＶＬＡＮ  ＩＤを取得する。
【００７６】
３．ＦＩＰ  Ｄｉｓｃｏｖｅｒｙ：ノード１がコントローラ２から、ＦＣｏＥ通信に使用するコントローラ２のＭＡＣアドレスを取得する。
【００７７】
４．ＦＩＰ  ＦＬＯＧＩ：ノード１がコントローラ２へアクセスし、ＦＣｏＥ通信に使用する自身のＭＡＣアドレスを取得する。
【００７８】
５．ＰＬＯＧＩ：ノード１がコントローラ２を介して、コントローラ２および送信先のノード１とＦＣｏＥ通信のための情報交換を行う。
【００７９】
６．ＰＲＬＩ：ノード１がコントローラ２を介して、送信先のノード１とデータをやり取りするための情報交換を行う。
【００８０】
７．ＳＣＳＩ−ＦＣＰ：ノード１が、ネットワーク４を通して送信先のノード１とデータをやり取りする。
【００８１】
８．ＰＲＬＯ：ノード１がコントローラ２を介して、ノード１同士の接続を切断する（情報を削除する）。
【００８２】
９．ＬＯＧＯ：ノード１がコントローラ２へアクセスし、コントローラ２とノード１の接続を切断する（情報を削除する）。
【００８３】
以上に説明されたように、本実施の形態がＦＣｏＥ通信に適用された場合、データフレーム１２であるＳＣＳＩ−ＦＣＰフレームは、その他のフレームから分離される。そして、そのＳＣＳＩ−ＦＣＰフレームは、ＦＣＦを介することなく、Ｅｔｈｅｒｎｅｔネットワーク４のみで転送される。ネットワークの性能に大きく影響するＳＣＳＩ−ＦＣＰフレームが特定の経路を通る必要が無くなるため、ネットワークの性能が高まる。また、従来のＥｔｈｅｒｎｅｔで使用する通信機器が流用可能であるため、ネットワークの統合がより容易となる。
【００８４】
２．フロー管理
２−１．概要
次に、本実施の形態において、ノード１間の通信フローをコントローラ２により集中管理することを考える。例えば、コントローラ２は、ネットワーク４中のデータフレーム１２の転送経路を、フロー毎に管理する。コントローラ２は、ネットワーク４中のスイッチやリンクにかかる負荷を考慮して、負荷が分散されるように、それぞれのフローの転送経路を制御することもできる。このようにフロー毎に転送経路を制御することにより、ネットワーク４の利用効率及び通信性能を向上させることが可能となる。
【００８５】
上記のようにコントローラがフローを集中管理する技術として、例えば、「オープンフロー（ＯｐｅｎＦｌｏｗ）」という技術が知られている（参考文献：Ｎｉｃｋ  ＭｃＫｅｏｗｎ  ｅｔ  ａｌ．，  “ＯｐｅｎＦｌｏｗ：  Ｅｎａｂｌｉｎｇ  Ｉｎｎｏｖａｔｉｏｎ  ｉｎ  Ｃａｍｐｕｓ  Ｎｅｔｗｏｒｋｓ”，  ＡＣＭ  ＳＩＧＣＯＭＭ  Ｃｏｍｐｕｔｅｒ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｒｅｖｉｅｗ，  Ｖｏｌ．  ３８，  Ｎｏ．  ２，  ２００８．  （ｈｔｔｐ：／／ｗｗｗ．ｏｐｅｎｆｌｏｗｓｗｉｔｃｈ．ｏｒｇ／／ｄｏｃｕｍｅｎｔｓ／ｏｐｅｎｆｌｏｗ−ｗｐ−ｌａｔｅｓｔ．ｐｄｆ）。オープンフローによれば、フロー単位で経路制御、障害回復、負荷分散、最適化が行われる。オープンフローにおいて用いられるコントローラ及びスイッチは、それぞれ、オープンフローコントローラ（ＯＦＣ：ＯｐｅｎＦｌｏｗ  Ｃｏｎｔｒｏｌｌｅｒ）及びオープンフロースイッチ（ＯＦＳ：ＯｐｅｎＦｌｏｗ  Ｓｗｉｔｃｈ）と呼ばれている。
【００８６】
以下、上述の第１節で説明されたＵ／Ｃ分離に加えて、コントローラ２によるフローの集中管理が実施される場合を説明する。上述の第１節で説明された機能に加えて、フローの集中管理を行う機能を有するコントローラ２は、以下「コントローラ２’」と参照される。
【００８７】
図１２は、本実施の形態に係るネットワークシステムの構成を示すブロック図である。第１節でのものと重複する説明は、適宜省略される。ネットワーク４は、複数のスイッチ５を含んでいる。尚、各スイッチ５は、コントローラ２’と通信可能に接続されている。
【００８８】
コントローラ２’は、ＦＣ管理部２１０及びフロー管理部２２０を備えている。ＦＣ管理部２１０は、上述の第１節で説明されたコントローラ２と同じ機能を有する。一方、フロー管理部２２０は、ノード１間のフローを集中管理する機能を有する。例えば、フロー管理部２２０は、オープンフローで用いられるオープンフローコントローラ（ＯＦＣ）と同じ機能を有する。その場合、ネットワーク４中のスイッチ５として、オープンフロースイッチ（ＯＦＳ）が用いられる。
【００８９】
フロー管理部２２０は、ネットワーク４におけるデータフレーム１２の転送経路を、フロー毎に管理する。例えば、フロー管理部２２０は、ネットワーク４中のスイッチ５やリンクにかかる負荷を考慮して、負荷が分散されるように、それぞれのフローの転送経路を制御することもできる。このようにフロー毎に転送経路を制御することにより、ネットワーク４の利用効率及び通信性能を向上させることが可能となる。
【００９０】
２−２．経路設計
次に、本実施の形態に係るフロー管理部２２０が、ノード１間のネットワーク４におけるデータフレーム１２の転送経路を設計（決定）する場合を考える。
【００９１】
以下の説明において、通信を要求する側のノード１は「イニシエータ（initiator）ノード１Ａ」と参照され、通信相手側のノード１は「ターゲット（target）ノード１Ｂ」と参照される。イニシエータノード１Ａは、コントローラ２’（ＦＣ管理部２１０）を介して、ターゲットノード１Ｂとの通信を要求する。イニシエータノード１Ａとターゲットノード１Ｂとの間のデータフレーム１２の転送経路を設計するためには、イニシエータノード１Ａとターゲットノード１Ｂの両方のアドレスが必要である。まず、図１３を参照して、本実施の形態において用いられるアドレスについて説明する。
【００９２】
図１３において、“ＭＡＣ＿ＦＣＣ”は、コントローラ２’のＭＡＣアドレスである。“ＭＡＣ＿１Ａ”は、イニシエータノード１ＡのＭＡＣアドレスである。“ＭＡＣ＿１Ｂ”は、ターゲットノード１ＢのＭＡＣアドレスである。“ＭＡＣ  ＤＡ”及び“ＭＡＣ  ＳＡ”は、それぞれ、ＦＣｏＥフレーム中で示される宛先ＭＡＣアドレス及び送信元ＭＡＣアドレスを表す。尚、ここでのＭＡＣアドレスは全て、仮想ＭＡＣアドレスを意味しており、物理ＭＡＣアドレスとは異なっていることに留意されたい。第１節で説明されたように、仮想ＭＡＣアドレスは、ＦＣｏＥ通信において一般に使用されるＭＡＣアドレスであり、ＦＣ管理部２１０によって割り当てられ、配布される。
【００９３】
また、図１３において、“ＦＣ＿１Ａ”は、イニシエータノード１ＡのＦＣ−ＩＤ（ＦＣプロトコルにおけるアドレス）である。“ＦＣ＿１Ｂ”は、ターゲットノード１ＢのＦＣ−ＩＤである。“ＦＣ  Ｄ＿ＩＤ”及び“ＦＣ  Ｓ＿ＩＤ”は、それぞれ、ＦＣｏＥフレーム中で示される宛先ＦＣ−ＩＤ及び送信元ＦＣ−ＩＤを表す。
【００９４】
イニシエータノード１Ａは、フレーム１０を送出する。このとき、イニシエータノード１Ａは、送出するフレーム１０中の宛先ＭＡＣアドレスを、コントローラ２’のＭＡＣアドレス“ＭＡＣ＿ＦＣＣ”に設定する（第１節参照）。
【００９５】
ゲートウェイ３は、イニシエータノード１Ａから受け取ったフレーム１０が制御フレーム１１かデータフレーム１２かを判定する。制御フレーム１１の場合、ゲートウェイ３は、アドレス変換を行うことなく、当該制御フレーム１１をそのままコントローラ２’へ転送する。一方、データフレーム１２の場合、ゲートウェイ３は、宛先ＭＡＣアドレス（ＭＡＣ  ＤＡ）をターゲットノード１ＢのＭＡＣアドレス“ＭＡＣ＿１Ｂ”に書き換えた上で、当該データフレーム１２をネットワーク４に送る（第１節参照）。
【００９６】
また、ターゲットノード１Ｂ側のゲートウェイ３は、ネットワーク４からデータフレーム１２を受け取ると、送信元ＭＡＣアドレス（ＭＡＣ  ＳＡ）をコントローラ２’のＭＡＣアドレス“ＭＡＣ＿ＦＣＣ”に書き換えた上で、当該データフレーム１２をターゲットノード１Ｂに送る（第１節参照）。
【００９７】
このような状況において、フロー管理部２２０は、イニシエータノード１Ａとターゲットノード１Ｂとの間のデータフレーム１２の転送経路を設計する。その経路設計には、イニシエータノード１Ａとターゲットノード１Ｂの両方のアドレスが必要である。しかしながら、フロー管理部２２０は、必ずしもＦＣプロトコルには対応していない。すなわち、フロー管理部２２０は、ＦＣ−ＩＤを認識できるとは限らない。例えば、オープンフローコントローラは、Ｅｔｈｅｒｎｅｔ／ＩＰ／ＴＣＰ／ＵＤＰを解釈できるが、ＦＣプロトコルを解釈できない。つまり、ＦＣｏＥフレームの場合、オープンフローコントローラは、Ｅｔｈｅｒｎｅｔの部分までしか解釈できない。従って、本実施の形態に係るフロー管理部２２０は、イニシエータノード１ＡのＭＡＣアドレス（ＭＡＣ＿１Ａ）とターゲットノード１ＢのＭＡＣアドレス（ＭＡＣ＿１Ｂ）に基づいて、イニシエータノード１Ａとターゲットノード１Ｂとの間のデータフレーム１２の転送経路を設計する。
【００９８】
次に、フロー管理部２２０が経路設計を実施するタイミングについて考える。例えば、そのタイミングは、イニシエータノード１Ａがコントローラ２’を介してターゲットノード１Ｂとの通信を要求する時である。言い換えれば、そのタイミングは、イニシエータノード１Ａがファブリックにログインする時である。
【００９９】
図１３及び図１４を参照して、本実施の形態におけるログイン時の処理を説明する。ログイン時、イニシエータノード１Ａは、ターゲットノード１Ｂとの通信を要求する制御フレーム１１（以下、「通信要求フレーム１１Ａ」と参照される）を、コントローラ２’に向けて送信する。通信要求フレーム１１Ａでは、イニシエータノード１ＡのＦＣ−ＩＤ（ＦＣ＿１Ａ）とターゲットノード１ＢのＦＣ−ＩＤ（ＦＣ＿１Ｂ）が指定されている。また、通信要求フレーム１１Ａの宛先ＭＡＣアドレス（ＭＡＣ  ＤＡ）及び送信元ＭＡＣアドレス（ＭＡＣ  ＳＡ）は、それぞれ、コントローラ２’のＭＡＣアドレス（ＭＡＣ＿ＦＣＣ）及びイニシエータノード１ＡのＭＡＣアドレス（ＭＡＣ＿１Ａ）である。図１１に示される例では、「ＰＬＯＧＩ」が通信要求フレーム１１Ａに相当する。
【０１００】
ゲートウェイ３は、通信要求フレーム１１Ａをイニシエータノード１Ａから受け取る。通信要求フレーム１１Ａは制御フレーム１１であるので、ゲートウェイ３は、アドレス変換を行うことなく、受け取った通信要求フレーム１１Ａをコントローラ２’に転送する。
【０１０１】
コントローラ２’は、通信要求フレーム１１Ａの受信に応答して、イニシエータノード１Ａとターゲットノード１Ｂとの間のデータフレーム１２の転送経路を設計する。但し、上述の通り、経路設計には、イニシエータノード１ＡのＭＡＣアドレス（ＭＡＣ＿１Ａ）とターゲットノード１ＢのＭＡＣアドレス（ＭＡＣ＿１Ｂ）が必要である。しかしながら、通信要求フレーム１１Ａの宛先ＭＡＣアドレス（ＭＡＣ  ＤＡ）はコントローラ２’のＭＡＣアドレス（ＭＡＣ＿ＦＣＣ）であり、ターゲットノード１ＢのＭＡＣアドレス（ＭＡＣ＿１Ｂ）が分からない。そこで、コントローラ２’のＦＣ管理部２１０が、通信要求フレーム１１Ａに含まれるターゲットノード１ＢのＦＣ−ＩＤ（ＦＣ＿１Ｂ）を、ターゲットノード１ＢのＭＡＣアドレス（ＭＡＣ＿１Ｂ）に変換する。
【０１０２】
より詳細には、図１４に示されるように、ＦＣ管理部２１０は、ノード情報２１５を保持している。上述の通り、ＦＣｏＥで使用される仮想ＭＡＣアドレスは、ＦＣ管理部２１０によって管理され、各ノード１に配布される。ノード情報２１５は、そのような仮想ＭＡＣアドレスの管理等に必要な情報である。具体的には、ノード情報２１５は、各ノード１に関する、物理ＭＡＣアドレス、仮想ＭＡＣアドレス、ＦＣ−ＩＤ、仮想ＭＡＣアドレスとＦＣ−ＩＤとの対応関係、等を含んでいる。
【０１０３】
ＦＣ管理部２１０は、通信要求フレーム１１Ａを受け取る。そして、ＦＣ管理部２１０は、ノード情報２１５（特に、仮想ＭＡＣアドレスとＦＣ−ＩＤとの対応関係）を参照することによって、受け取った通信要求フレーム１１Ａで示されるターゲットノード１ＢのＦＣ−ＩＤ（ＦＣ＿１Ｂ）を、ターゲットノード１ＢのＭＡＣアドレス（ＭＡＣ＿１Ｂ）に変換する。その結果、経路設計に必要な、イニシエータノード１Ａとターゲットノード１ＢのＭＡＣアドレスペア（ＭＡＣ＿１Ａ、ＭＡＣ＿１Ｂ）が得られる。ＦＣ管理部２１０は、得られたＭＡＣアドレスペアをフロー管理部２２０に通知する。
【０１０４】
フロー管理部２２０は、ノード１やスイッチ５の接続関係を示すトポロジー情報を保持しており、ＭＡＣアドレスペア（ＭＡＣ＿１Ａ、ＭＡＣ＿１Ｂ）を用いることによって、イニシエータノード１Ａとターゲットノード１Ｂとの間のデータフレーム１２の転送経路を設計する。そして、フロー管理部２２０は、設計された転送経路に沿って対象フローのデータフレーム１２が転送されるように、各スイッチ５のフローテーブルを設定する。このようにして、本実施の形態に係るコントローラ２’は、イニシエータノード１Ａのログインタイミング時に、対象フローの転送経路を設計・設定することができる。
【０１０５】
２−３．構成例
図１５は、本実施の形態におけるコントローラ２’の構成例を示すブロック図である。コントローラ２’は、入出力部２００、ＦＣ管理部２１０、フロー管理部２２０、フロー管理テーブル２３０、及び統計情報テーブル２４０を備えている。
【０１０６】
フロー管理テーブル２３０は、フロー毎にフロー管理情報を示す。フロー管理情報は、イニシエータノード１Ａとターゲットノード１ＢのＭＡＣアドレスペア（ＭＡＣ＿１Ａ、ＭＡＣ＿１Ｂ）、転送経路情報、各ノード１に最寄りのスイッチ５の宛先、等を含んでいる。
【０１０７】
統計情報テーブル２４０は、統計情報を示す。統計情報は、各スイッチ５を通過したフレーム総数、廃棄フレーム総数、フロー毎のフレーム数、等を含んでいる。尚、統計情報は、各スイッチ５によって観測され、各スイッチ５からコントローラ２’に通知される。
【０１０８】
尚、フロー管理テーブル２３０や統計情報テーブル２４０は、コントローラ２’外部のサーバに格納されていてもよい。
【０１０９】
図１６は、本実施の形態におけるスイッチ５（オープンフロースイッチ）の構成例を示すブロック図である。スイッチ５は、フレーム処理部５１０、フローテーブル管理部５２０、コントローラ通信部５３０、及び複数のポート５４０を備えている。
【０１１０】
コントローラ通信部５３０は、コントローラ２’との通信機能を有している。オープンフローの場合、ＳｅｃｕｒｅＣｈａｎｎｅｌがコントローラ通信部５３０に相当する。
【０１１１】
フローテーブル管理部５２０は、フローテーブル５２５の管理を行う。フローテーブル５２５は、０個以上のフローエントリを有する。各フローエントリは、マッチ条件、アクション、タイムアウト値といったフィールドを有する。マッチ条件は、フレームヘッダを構成するフィールドの組み合わせで表され、受信フレームが当該フローエントリにマッチするか否かを判定するために用いられる。アクションは、マッチ条件にマッチするフレームに対して行われるフレーム処理の内容（例：指定ポートへの出力）を示している。フローテーブル管理部５２０は、コントローラ２’からの指示に従って、フローテーブル５２５の設定（フローエントリの追加、変更、削除等）を行う。
【０１１２】
フレーム処理部５１０は、ポート５４０（入力ポート）を通してフレームを受信する。すると、フレーム処理部５１０は、フローテーブル５２５を参照し、受信フレームにマッチするフローエントリ（ヒットエントリ）が有るか否かを判定する。ヒットエントリが無い場合、フレーム処理部５１０は、当該受信フレームを、コントローラ通信部５３０を通してコントローラ２’に送信する。一方、ヒットエントリが有る場合、フレーム処理部５１０は、当該受信フレームに対して、ヒットエントリのアクションで指定される処理（例：指定された出力ポート５４０への出力）を実施する。
【０１１３】
図１７は、本実施の形態におけるコントローラ２’による処理を示すフローチャートである。コントローラ２’の入出力部２００は、フレームを受信する（ステップＳ２００）。入出力部２００が受信するフレームは、ＦＣｏＥの制御フレーム１１に限られない。入出力部２００は、ＦＣｏＥフレームではない通常のＥｔｈｅｒｎｅｔフレームを受信する場合もあるし、各スイッチ５から送られてくる統計情報のフレームを受信する場合もある。そこで、入出力部２００は、受信フレームのヘッダーを参照して、受信フレームがＦＣｏＥの制御フレーム１１かそれ以外かを判定する（ステップＳ２０１）。
【０１１４】
受信フレームがＦＣｏＥの制御フレーム１１の場合（ステップＳ２０１；Ｙｅｓ）、入出力部２００は、その制御フレーム１１をＦＣ管理部２１０に転送する（ステップＳ２０２）。それ以外の場合（ステップＳ２０１；Ｎｏ）、入出力部２００は、受信フレームをフロー管理部２２０に転送する（ステップＳ２０３）。
【０１１５】
図１８は、ステップＳ２０２以降の処理を示すフローチャートである。ＦＣ管理部２１０は、ＦＣｏＥの制御フレーム１１を受け取ると、その制御フレーム１１に応じた所定の処理（第１節参照）を実行する（ステップＳ２１０）。
【０１１６】
制御フレーム１１は、上述の通信要求フレーム１１Ａである場合もある。その場合（ステップＳ２１１；Ｙｅｓ）、図１４で示されたように、ＦＣ管理部２１０はアドレス変換を行う（ステップＳ２１３）。ＦＣ管理部２１０は、アドレス変換により得られたＭＡＣアドレスペアを、フロー管理部２２０に通知する。
【０１１７】
フロー管理部２２０は、フロー登録処理を実行する（ステップＳ２２０）。具体的には、フロー管理部２２０は、ＭＡＣアドレスペア（ＭＡＣ＿１Ａ、ＭＡＣ＿１Ｂ）に基づいて、イニシエータノード１Ａとターゲットノード１Ｂとの間のデータフレーム１２の転送経路を設計する（ステップＳ２２１）。また、フロー管理部２２０は、対象フローに関するフロー管理情報をフロー管理テーブル２３０に登録する（ステップＳ２２２）。更に、フロー管理部２２０は、設計された転送経路に沿って対象フローのデータフレーム１２が転送されるように、各スイッチ５に対してフローテーブル５２５の設定を指示する（ステップＳ２２３）。スイッチ５のフローテーブル管理部５２０は、フロー管理部２２０からの指示に従って、対象フローに関するフローエントリをフローテーブル５２５に追加する。
【０１１８】
また、制御フレーム１１は、ターゲットノード１Ｂとの通信の切断を要求するもの（以下、「通信切断フレーム」と参照される）である場合もある。イニシエータノード１Ａがファブリックからログアウトする時、イニシエータノード１Ａは、通信切断フレームを、コントローラ２’に向けて送信する。通信切断フレームでは、イニシエータノード１ＡのＦＣ−ＩＤ（ＦＣ＿１Ａ）とターゲットノード１ＢのＦＣ−ＩＤ（ＦＣ＿１Ｂ）が指定されている。また、通信切断フレームの宛先ＭＡＣアドレス（ＭＡＣ  ＤＡ）及び送信元ＭＡＣアドレス（ＭＡＣ  ＳＡ）は、それぞれ、コントローラ２’のＭＡＣアドレス（ＭＡＣ＿ＦＣＣ）及びイニシエータノード１ＡのＭＡＣアドレス（ＭＡＣ＿１Ａ）である。図１１に示される例では、「ＬＯＧＯ」が通信切断フレームに相当する。
【０１１９】
ゲートウェイ３は、通信切断フレームをイニシエータノード１Ａから受け取る。通信切断フレームは制御フレーム１１であるので、ゲートウェイ３は、アドレス変換を行うことなく、受け取った通信切断フレーム１１をコントローラ２’に転送する。
【０１２０】
ＦＣ管理部２１０は、通信切断フレームを受け取る（ステップＳ２１１；Ｎｏ、ステップＳ２１２；Ｙｅｓ）。通信要求フレーム１１Ａの場合と同様に、ＦＣ管理部２１０は、アドレス変換を行う（ステップＳ２１４）。その結果、イニシエータノード１Ａとターゲットノード１ＢのＭＡＣアドレスペア（ＭＡＣ＿１Ａ、ＭＡＣ＿１Ｂ）が得られる。ＦＣ管理部２１０は、得られたＭＡＣアドレスペアをフロー管理部２２０に通知する。
【０１２１】
フロー管理部２２０は、フロー削除処理を実行する（ステップＳ２３０）。具体的には、フロー管理部２２０は、ＭＡＣアドレスペア（ＭＡＣ＿１Ａ、ＭＡＣ＿１Ｂ）に対応するフローに関する管理情報を、フロー管理テーブル２３０から削除する（ステップＳ２３１）。更に、フロー管理部２２０は、削除対象フローに関するフローエントリをフローテーブル５２５から削除するように、各スイッチ５に対して指示する（ステップＳ２３２）。スイッチ５のフローテーブル管理部５２０は、フロー管理部２２０からの指示に従って、削除対象フローに関するフローエントリをフローテーブル５２５から削除する。
【０１２２】
図１９は、ステップＳ２０３以降の処理を示すフローチャートである。フロー管理部２２０は、受信フレームを受け取る。その受信フレームがスイッチ５から送られてくる統計情報のフレームである場合（ステップＳ２４０；Ｙｅｓ）、処理はステップＳ２４１に進む。それ以外の場合、処理はステップＳ２４２に進む。
【０１２３】
ステップＳ２４１において、フロー管理部２２０は、受け取った統計情報を用いて統計情報テーブル２４０を更新する。フロー管理部２２０は、統計情報テーブル２４０を参照することによって、負荷が分散されるように転送経路を動的に変更してもよい。
【０１２４】
ステップＳ２４２において、フロー管理部２２０は、受信フレームに応じてフロー制御を行う。
【０１２５】
例えば、一般的なオープンフローでは、新規フローが開始する場合、あるスイッチ５が、当該新規フローのＥｔｈｅｒｎｅｔフレームを受信する。しかしながら、そのスイッチ５のフローテーブル５２５には、当該新規フローに関するヒットエントリはまだ存在しない。従って、そのスイッチ５は、受信フレームを経路設定要求（第１パケットとも呼ばれる）として、オープンフローコントローラに送る。オープンフローコントローラは、その経路設定要求に応答して、当該新規フローに関する経路設計・設定を行う。同様に、フロー管理部２２０も、受信フレームが経路設定要求（第１パケット）の場合に、経路設計・設定を行う。
【０１２６】
また、例えば、スイッチ５は、タイムアウトを契機にして、フローエントリをフローテーブル５２５から削除してもよい。その場合、スイッチ５は、コントローラ２’に、フローエントリを削除した旨を通知する。それに応答して、フロー管理部２２０は、削除対象フローに関する管理情報を、フロー管理テーブル２３０から削除する。
【０１２７】
２−４．変形例
上述の実施の形態では、コントローラ２’が経路設計を実施するタイミングは、イニシエータノード１Ａのログイン時であった。変形例として、一般的なオープンフローの場合と同様に、スイッチ５から送られてくる経路設定要求（第１パケット）に応答して経路設計を行うことを考える。
【０１２８】
具体的には、ログイン時に経路設計・設定が行われないまま、イニシエータノード１Ａは、１つ目のデータフレーム１２を送出する。図１３で示されたように、ゲートウェイ３は、そのデータフレーム１２の宛先ＭＡＣアドレス（ＭＡＣ  ＤＡ）をターゲットノード１ＢのＭＡＣアドレス“ＭＡＣ＿１Ｂ”に書き換えた上で、当該データフレーム１２をネットワーク４に送る。ネットワーク４中のあるスイッチ５は、そのデータフレーム１２を受信する。しかしながら、そのスイッチ５のフローテーブル５２５には、当該新規フローに関するヒットエントリはまだ存在しない。従って、そのスイッチ５は、受信したデータフレーム１２を経路設定要求（第１パケット）として、コントローラ２’に送る。その経路設定要求には、既に、イニシエータノード１ＡのＭＡＣアドレス（ＭＡＣ＿１Ａ）とターゲットノード１ＢのＭＡＣアドレス（ＭＡＣ＿１Ｂ）が含まれている。従って、コントローラ２’内部でアドレス変換することなく、経路設定要求に基づいて、経路設計が可能である。
【０１２９】
但し、確実性の観点から言えば、ログイン時の通信要求フレーム１１Ａに応答して経路設計・設定を実施することが好ましい。
【０１３０】
以上、本発明の実施の形態が添付の図面を参照することにより説明された。但し、本発明は、上述の実施の形態に限定されず、要旨を逸脱しない範囲で当業者により適宜変更され得る。
【０１３１】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【０１３２】
（付記１）
ＦＣｏＥ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  Ｏｖｅｒ  Ｅｔｈｅｒｎｅｔ）に基づいてフレームの送受信を行うノードと、
前記フレームの転送を行うネットワークと、
前記ノード及び前記ネットワークの管理を行うコントローラと、
前記ノードに対して設けられたゲートウェイと
を備え、
前記フレームは、通信に必要な制御情報をやりとりするための制御フレームと、ノード間でデータを送受信するためのデータフレームとに分類され、
前記ゲートウェイは、前記ノードから受け取ったフレームが前記制御フレームか前記データフレームかを判定し、前記制御フレームを前記コントローラに転送し、前記データフレームを前記ネットワークに転送し、
前記コントローラは、前記ゲートウェイから受け取った前記制御フレームに基づいて前記管理を行い、
前記ネットワークは、前記ゲートウェイから受け取った前記データフレームを、前記コントローラを介することなく、ターゲットノードに転送し、
前記コントローラは、前記ネットワークにおける前記データフレームの転送経路を、フロー毎に管理するフロー管理部を備える
ネットワークシステム。
【０１３３】
（付記２）
付記１に記載のネットワークシステムであって、
前記ターゲットノードとの通信を要求する前記ノードは、イニシエータノードであり、
フロー登録処理において、前記フロー管理部は、前記イニシエータノード及び前記ターゲットノードのＭＡＣアドレスに基づいて、前記イニシエータノードと前記ターゲットノードとの間の前記データフレームの転送経路を設計する
ネットワークシステム。
【０１３４】
（付記３）
付記２に記載のネットワークシステムであって、
前記イニシエータノードは、前記ターゲットノードとの通信を要求する前記制御フレームである通信要求フレームを、前記コントローラに向けて送信し、
前記ゲートウェイは、前記イニシエータノードから受け取る前記通信要求フレームを、前記コントローラに転送し、
前記フロー管理部は、前記通信要求フレームに応答して、前記フロー登録処理を実行する
ネットワークシステム。
【０１３５】
（付記４）
付記３に記載のネットワークシステムであって、
前記コントローラは、更に、ノード毎にＦＣ−ＩＤとＭＡＣアドレスとの対応関係を示すノード情報を保持するＦＣ管理部を備え、
前記通信要求フレームは、前記イニシエータノードのＭＡＣアドレスと前記ターゲットノードのＦＣ−ＩＤを示す情報を含んでおり、
前記ＦＣ管理部は、前記ノード情報を参照することによって、前記通信要求フレームで示される前記ターゲットノードのＦＣ−ＩＤを前記ターゲットノードのＭＡＣアドレスに変換し、
前記フロー管理部は、前記ＦＣ管理部によって得られた前記ターゲットノードのＭＡＣアドレスを用いて、前記イニシエータノードと前記ターゲットノードとの間の前記データフレームの転送経路を設計する
ネットワークシステム。
【０１３６】
（付記５）
付記２乃至４のいずれか一項に記載のネットワークシステムであって、
前記コントローラは、更に、フロー管理情報をフロー毎に示すフロー管理テーブルを備え、
前記フロー管理情報は、前記イニシエータノードと前記ターゲットノードのＭＡＣアドレスのペア、及び前記データフレームの前記転送経路を示し、
前記フロー登録処理において、前記フロー管理部は、該当フローに関する前記フロー管理情報を前記フロー管理テーブルに登録する
ネットワークシステム。
【０１３７】
（付記６）
付記５に記載のネットワークシステムであって、
前記イニシエータノードは、前記ターゲットノードとの通信の切断を要求する前記制御フレームである通信切断フレームを、前記コントローラに向けて送信し、
前記ゲートウェイは、前記イニシエータノードから受け取る前記通信切断フレームを、前記コントローラに転送し、
前記フロー管理部は、前記通信切断フレームに応答して、該当フローに関する前記フロー管理情報を前記フロー管理テーブルから削除する
ネットワークシステム。
【０１３８】
（付記７）
付記１乃至６のいずれか一項に記載のネットワークシステムであって、
前記ノードは、前記フレームの宛先ＭＡＣアドレスを前記コントローラのＭＡＣアドレスに設定し、
前記ゲートウェイは、前記受け取ったフレームが前記データフレームの場合、前記データフレームの宛先ＭＡＣアドレスを前記ターゲットノードのＭＡＣアドレスに変換し、その後、前記データフレームを前記ネットワークに出力する
ネットワークシステム。
【０１３９】
（付記８）
付記１乃至７のいずれか一項に記載のネットワークシステムであって、
前記ゲートウェイは、ＦＣＰフレームを前記データフレームと判定し、それ以外のフレームを前記制御フレームと判定する
ネットワークシステム。
【０１４０】
（付記９）
付記１乃至８のいずれか一項に記載のネットワークシステムであって、
前記ゲートウェイは、前記ノードのネットワークカードに組み込まれている
ネットワークシステム。
【０１４１】
（付記１０）
ネットワークシステムにおけるフレーム通信方法であって、
前記ネットワークシステムは、
ＦＣｏＥ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  Ｏｖｅｒ  Ｅｔｈｅｒｎｅｔ）に基づいてフレームの送受信を行うノードと、
前記フレームの転送を行うネットワークと、
前記ノード及び前記ネットワークの管理を行うコントローラと
を備え、
前記フレームは、通信に必要な制御情報をやりとりするための制御フレームと、ノード間でデータを送受信するためのデータフレームとに分類され、
前記フレーム通信方法は、
前記ノードから送信されるフレームが前記制御フレームか前記データフレームかを判定するステップと、
前記制御フレームを前記コントローラに転送し、前記コントローラにおいて、前記制御フレームに基づいて前記管理を行うステップと、
前記データフレームを前記ネットワークに転送し、前記コントローラを介することなく、送信先ノードに伝送するステップと、
前記コントローラにおいて、前記ネットワークにおける前記データフレームの転送経路をフロー毎に管理するステップと
を含む
フレーム通信方法。
【符号の説明】
【０１４２】
１    ノード
１Ａ  イニシエータノード
１Ｂ  ターゲットノード
２，２’    コントローラ
３    ゲートウェイ
４    ネットワーク
５    スイッチ
１０    フレーム
１１    制御フレーム
１１Ａ  通信要求フレーム
１２    データフレーム
２０    受信部
２１    処理部
２２    ノード情報テーブル
２３    送信部
３０    分離部
３１    アドレス変換部
３２    多重化部
４０    ネットワークカード
５０    ＦＣＦ
６０    調定部
６１    ネットワーク情報管理部
６２    ＦＣｏＥ情報管理部
７０    スイッチ間トポロジー管理部
７１    経路情報管理部
７２    ＶＬＡＮ  ＩＤ管理部
８０    コントローラＭＡＣ
８１    ノード／ＶＬＡＮ  ＩＤ管理部
８２    ログインサーバ
８３    ディレクトリサーバ
８４    ファブリック管理部
９０    サーバ
１００    ＮＩＣ
１０１    ＣＰＵ
１０２    メモリ
２００    入出力部
２１０    ＦＣ管理部
２１５    ノード情報
２２０    フロー管理部
２３０    フロー管理テーブル
２４０    統計情報テーブル
５１０    フレーム処理部
５２０    フローテーブル管理部
５２５    フローテーブル
５３０    コントローラ通信部
５４０    ポート
【図１】
0005691782.tif 000002
【図２】
0005691782.tif 000003
【図３】
0005691782.tif 000004
【図４】
0005691782.tif 000005
【図５】
0005691782.tif 000006
【図６】
0005691782.tif 000007
【図７】
0005691782.tif 000008
【図８】
0005691782.tif 000009
【図９】
0005691782.tif 000010
【図１０】
0005691782.tif 000011
【図１１】
0005691782.tif 000012
【図１２】
0005691782.tif 000013
【図１３】
0005691782.tif 000014
【図１４】
0005691782.tif 000015
【図１５】
0005691782.tif 000016
【図１６】
0005691782.tif 000017
【図１７】
0005691782.tif 000018
【図１８】
0005691782.tif 000019
【図１９】
0005691782.tif 000020