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