(57)【特許請求の範囲】
【請求項１】
演算処理装置と、前記演算処理装置に接続される記憶装置と、１以上のポートを備えるネットワークインタフェースとを備え、複数の転送モードで動作可能なフレーム転送装置であって、
前記複数の転送モードは、第１の転送モード、第２の転送モード及び第３の転送モードを含み、
前記フレーム転送装置は、
前記フレームを受信する受信部と、
前記フレームを送信する送信部と、
前記フレームを送信するポートを決定するポート決定部と、
受信した前記フレームを解析するフレーム解析部と、
前記フレーム解析部によって解析された結果を蓄積する学習部と、
前記フレーム転送装置の転送モードを示すモード情報を保持し、前記モード情報に基づいて前記転送モードを切り替え、前記フレーム転送装置を制御する状態管理部と、
を備え、
前記第１の転送モードでは、
前記ポートから受信した第１のフレームの解析の結果に基づいて、前記第１のフレームの転送処理を実行し、
前記第２の転送モードでは、
他の前記フレーム転送装置が接続されたポートから第２のフレームを受信した場合には、前記第２のフレームの解析の結果に基づいて、前記第２のフレームの転送処理を実行し、
当該他のフレーム転送装置以外の装置が接続されたポートから第３のフレームを受信した場合には、前記第３のフレームを当該他のフレーム転送装置に転送し、
前記第３の転送モードでは、
前記他のフレーム転送装置が接続されたポートから第４のフレームを受信し、かつ、前記第４のフレームに対応する解析の結果が蓄積されている場合には、前記第４のフレームを廃棄し、
前記他のフレーム転送装置が接続されたポートから前記第４のフレームを受信し、かつ、前記第４のフレームに対応する解析の結果が蓄積されていない場合には、前記第４のフレームの解析の結果に基づいて、前記第４のフレームの転送処理を実行し、
前記他のフレーム転送装置以外の装置が接続されたポートから第５のフレームを受信した場合には、前記第５のフレームの解析の結果に基づいて、前記第５のフレームの転送処理を実行することを特徴とするフレーム転送装置。
【請求項２】
前記フレーム転送装置は、
前記転送モードが切り替えられる前は、前記第１の転送モード又は前記第２の転送モードのいずれかで動作し、
前記転送モードを切り替える場合に、前記第１の転送モード又は前記第２の転送モードから前記第３の転送モードを経由して、前記第１の転送モード又は前記第２の転送モードへ切り替えることを特徴とする請求項１に記載のフレーム転送装置。
【請求項３】
前記第１のフレームの転送処理では、
前記第１のフレームの解析の結果に基づいて、前記第１のフレームを送信する送信ポートを検索し、
前記送信ポートが１個以上検索された場合には、前記検索された１個以上のポートから前記第１のフレームを送信し、
前記検索された送信ポートが０個の場合には、前記第１のフレームを廃棄し、
前記第２のフレームの転送処理では、
前記他のフレーム転送装置が接続されるポートを除く前記ポートの中から前記第２のフレームを送信する前記送信ポートを検索し、
前記送信ポートが１個以上検索された場合には、前記検索された１個以上のポートから前記第２のフレームを送信し、
前記検索された送信ポートが０個の場合には、前記第２のフレームを廃棄し、
前記第４のフレームの転送処理では、
前記他のフレーム転送装置が接続されるポートを除く前記ポートの中から前記第４のフレームを送信する前記送信ポートを検索し、
前記送信ポートが１個以上検索された場合には、前記検索された１個以上のポートから前記第４のフレームを送信し、
前記検索された送信ポートが０個の場合には、前記第４のフレームを廃棄し、
前記第５のフレームの転送処理では、
前記第５のフレームの解析の結果に基づいて、前記第５のフレームを送信する送信ポートを検索し、
前記送信ポートが１個以上検索された場合には、前記検索された１個以上のポートから前記第５のフレームを送信し、
前記検索された送信ポートが０個の場合には、前記第５のフレームを廃棄することを特徴とする請求項２に記載のフレーム転送装置。
【請求項４】
前記フレーム転送装置は、
切替条件に関する情報を保持し、
前記切替条件が満たされた場合に、前記転送モードを切り替えることを特徴とする請求項３に記載のフレーム転送装置。
【請求項５】
前記フレーム転送装置は、前記転送モードの切替指示を受け付けた場合に、前記転送モードを切り替えることを特徴とする請求項３に記載のフレーム転送装置。
【請求項６】
前記転送モードの切替指示は、ＩＥＥＥ  ８０２．１Ｑｂｇに規定され、前記フレーム転送装置及び前記他のフレーム転送装置の状態を示す情報を含むフレームによって送信されることを特徴とする請求項５に記載のフレーム転送装置。
【請求項７】
前記転送モードを切り替える場合に、前記他のフレーム転送装置以外の装置が接続されたポートから受信したフレームの転送を所定時間停止することを特徴とする請求項３に記載のフレーム転送装置。
【請求項８】
前記フレームの転送の停止中に、前記他のフレーム転送装置以外の装置が接続されたポートからフレームを受信した場合、前記受信したフレームを蓄積し、
前記フレームの転送停止状態が解除された後に、前記蓄積されたフレームを転送することを特徴とする請求項７に記載のフレーム転送装置。
【請求項９】
演算処理装置と、前記演算処理装置に接続される記憶装置と、１以上のポートを備えるネットワークインタフェースとを備え、前記各々のポート毎に複数の転送モードで動作可能なフレーム転送装置であって、
前記フレーム転送装置は、ネットワークを介して、他のフレーム転送装置と接続され、
前記フレーム転送装置は、
前記フレームを受信する受信部と、
前記フレームを送信する送信部と、
前記フレームを送信するポートを決定するポート決定部と、
受信した前記フレームを解析するフレーム解析部と、
前記フレーム解析部によって解析された結果を蓄積する学習部と、
前記他のフレーム転送装置の制御を指示する制御フレームを生成するフレーム生成部と、
前記フレーム転送装置の転送モードを示すモード情報を保持し、前記モード情報に基づいて、前記転送モードを切り替えて、前記フレーム転送装置を制御する状態管理部と、
を備え、
前記複数の転送モードは、
前記ポートからフレームを受信した場合に、前記受信したフレームの解析の結果に基づいて、前記フレームを受信したポートを除く前記ポートの中から前記フレームを送信する送信ポートを検索し、前記送信ポートが１個以上検索された場合には前記検索された１個以上のポートから前記フレームを送信し、前記検索された送信ポートが０個の場合には前記フレームを廃棄する第１の転送モードと、
前記ポートからフレームを受信した場合に、前記受信したフレームの解析の結果に基づいて、前記フレームを送信する前記送信ポートを検索し、前記送信ポートが１個以上検索された場合には前記検索された１個以上のポートから前記フレームを送信し、前記検索された送信ポートが０個の場合には前記フレームを廃棄する第２の転送モードと、
を含み、
前記フレーム転送装置は、
前記他のフレーム転送装置が接続される第１のポートから、前記他のフレーム転送装置の前記転送モードの切り替えを要求する第１の制御フレームを送信し、
前記第１のポートにおける前記第１の転送モードと前記第２の転送モードとの間の切替処理を要求する第２の制御フレームを前記第１のポートから受信し、
前記第２の制御フレームに基づいて、前記切替処理を実行し、
前記切替処理の結果を通知する第３の制御フレームを生成し、
前記生成された第３の制御フレームを前記第１のポートから送信することを特徴とするフレーム転送装置。
【請求項１０】
前記第１の制御フレーム、前記第２の制御フレーム及び前記第３の制御フレームは、ＩＥＥＥ  ８０２．１Ｑｂｇに規定され、前記フレーム転送装置及び前記他のフレーム転送装置の状態を示す情報を含むフレームであることを特徴とする請求項９に記載のフレーム転送装置。
【請求項１１】
第１の演算処理装置、前記第１の演算処理装置に接続される第１の記憶装置及び１以上のポートを有する第１のネットワークインタフェースを有し、前記ポート毎に複数の転送モードで動作可能な第１のフレーム転送装置と、第２の演算処理装置、前記第２の演算処理装置に接続される第２の記憶装置及び１以上のポートを有する第２のネットワークインタフェースを有し、複数の転送モードで動作可能な第２のフレーム転送装置と、を備えるネットワークシステムであって、
前記第１のフレーム転送装置及び前記第２のフレーム転送装置は、ネットワークを介して接続され、
前記第１のフレーム転送装置における前記複数の転送モードは、第１の転送モード又は第２の転送モードを含み、
前記第２のフレーム転送装置における前記複数の動作モードは、第３の転送モード、第４の転送モード又は第５の転送モードを含み、
前記第１のフレーム転送装置は、
前記フレームを受信する第１の受信部と、
前記フレームを送信する第１の送信部と、
前記フレームを送信するポートを決定する第１のポート決定部と、
受信した前記フレームを解析する第１のフレーム解析部と、
前記第１のフレーム解析部によって解析された結果を蓄積する第１の学習部と、
前記第２のフレーム転送装置の制御を指示する制御フレームを生成する第１のフレーム生成部と、
前記フレーム転送装置の転送モードを示すモード情報を保持し、前記モード情報に基づいて、前記転送モードを切り替えて、前記フレーム転送装置を制御する第１の状態管理部と、を有し、
前記第２のフレーム転送装置は、
前記フレームを受信する第２の受信部と、
前記フレームを送信する第２の送信部と、
前記フレームを送信するポートを決定する第２のポート決定部と、
受信した前記フレームを解析する第２のフレーム解析部と、
前記第２のフレーム解析部によって解析された結果を蓄積する第２の学習部と、
前記第１のフレーム転送装置の制御を指示する制御フレームを生成する第２のフレーム生成部と、
前記フレーム転送装置の転送モードを示すモード情報を保持し、前記モード情報に基づいて、前記転送モードを切り替えて、前記フレーム転送装置を制御する第２の状態管理部と、を有し、
前記第１の転送モードでは、
前記第１のフレーム転送装置が、前記ポートから第１のフレームを受信した場合に、前記第１のフレームの解析の結果に基づいて、前記第１のフレームを受信したポートを除く前記ポートの中から前記第１のフレームを送信する送信ポートを検索し、前記送信ポートが１個以上検索された場合には前記検索された１個以上のポートから前記第１のフレームを送信し、前記検索された送信ポートが０個の場合には前記第１のフレームを廃棄し、
前記第２の転送モードでは、
前記第１のフレーム転送装置が、前記ポートから第２のフレームを受信した場合に、前記第２のフレームの解析の結果に基づいて、前記第２のフレームを送信する送信ポートを検索し、前記送信ポートが１個以上検索された場合には前記検索された１個以上のポートから前記第２のフレームを送信し、前記検索された送信ポートが０個の場合には前記第２のフレームを廃棄し、
前記第３の転送モードでは、
前記第２のフレーム転送装置が、前記ポートから受信した第３のフレームの解析の結果に基づいて、前記第３のフレームの転送処理を実行し、
前記第４の転送モードでは、
前記第２のフレーム転送装置が、前記第１のフレーム転送装置が接続される第２のポートから第４のフレームを受信した場合に、前記第４のフレームの解析の結果に基づいて、前記第４のフレームの転送処理を実行し、当該第１のフレーム転送装置以外の装置が接続される前記ポートから第５のフレームを受信した場合に、前記第５のフレームを当該第２のフレーム転送装置に転送し、
前記第５の転送モードでは、
前記第２のフレーム転送装置が、前記第１のフレーム転送装置が接続される前記第２のポートから第６のフレームを受信し、かつ、前記第６のフレームに対応する解析の結果が蓄積されている場合には前記第６のフレームを廃棄し、当該第１のフレーム転送装置以外の装置が接続されるポートから第７のフレームを受信した場合、又は、当該第１のフレーム転送装置が接続される前記第２のポートから前記第６のフレームを受信し、かつ、前記第６のフレームに対応する解析の結果が蓄積されていない場合には前記第６のフレーム又は前記第７のフレームの解析の結果に基づいて、前記第６のフレーム又は前記第７のフレームの転送処理を実行し、
前記ネットワークシステムは、
前記第２のフレーム転送装置が、
前記転送モードの切り替えを要求する第１の制御フレームを受信した場合に、当該第１の制御フレームに基づいて、前記第１のフレーム転送装置に前記転送モードの切り替えを要求する第２の制御フレームを生成し、
前記生成された第２の制御フレームを前記第１のフレーム転送装置に送信し、
前記第１のフレーム転送装置が、
前記第２の制御フレームに基づいて、前記第２のフレーム転送装置が接続される前記ポートの前記転送モードを切り替え、
前記転送モードを切り替えた旨を通知する第３の制御フレームを生成し、
前記第３の制御フレームを前記第２のフレーム転送装置に送信し、
前記第２のフレーム転送装置が、前記第３の制御フレームを受信した後に前記転送モードを切り替えることを特徴とするネットワークシステム。
【請求項１２】
前記第２のフレーム転送装置は、
前記第１の制御フレームを受信する前は、前記第３の転送モード又は前記第４の転送モードのいずれかで動作し、
前記第１の制御フレームを受信した後、前記第３の転送モード又は前記第４の転送モードから前記第５の転送モードに切り替え、
前記第４の制御フレームを受信した後、前記第４の転送モード又は前記第３の転送モードに切り替えることを特徴とする請求項１１に記載のネットワークシステム。
【請求項１３】
前記第１の制御フレーム、前記第２の制御フレーム及び前記第３の制御フレームは、ＩＥＥＥ  ８０２．１Ｑｂｇに規定され、前記第１のフレーム転送装置及び前記第２のフレーム転送装置の状態を示す情報を含むフレームであることを特徴とする請求項１２に記載のネットワークシステム。
【請求項１４】
前記第２のフレーム転送装置は、
前記第３の転送モードから前記第４の転送モードへ切り替える場合、又は、前記第４の転送モードから前記第３の転送モードへ切り替える場合、前記第１のフレーム転送装置以外の装置が接続されたポートから受信したフレームの転送を所定時間停止し、
前記フレームの転送が停止されているときに前記第１のフレーム転送装置以外の装置が接続されたポートからフレームを受信した場合に、前記受信したフレームを蓄積し、
前記フレームの転送停止状態が解除された後に、前記蓄積されたフレームを転送することを特徴とする請求項１２に記載のネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークの分野に関する。具体的には、フレームの転送技術に関する。
【背景技術】
【０００２】
情報システムの利用拡大及び複雑化並びにネットワークの広帯域化を背景に、情報システムの効率化のため、データセンタへの情報システムの集約、及び１台の物理的に機器の上に論理的な複数の機器（仮想マシン）を動作させる仮想化技術が進展している。
【０００３】
仮想マシンは、仮想マシンを動作させる機器であるサーバ内に構成された仮想ネットワークを介して通信を行う。仮想ネットワークは、外部ネットワークと仮想マシンとが仮想的なネットワーク機器であるＥｄｇｅ  Ｒｅｌａｙ（ＥＲ）を介して相互に接続された構成をとる。
【０００４】
これまで、ＥＲとしては、Ｖｉｒｔｕａｌ  Ｅｄｇｅ  Ｂｒｉｄｇｅ（ＶＥＢ）が広く用いられてきた。ＶＥＢはＯＳＩ参照モデルにおけるデータリンク層のスイッチング処理を行うＥＲであり、また、ＶＥＢはネットワーク機器のスイッチを仮想化したものであるため、仮想スイッチとも呼ばれる。
【０００５】
通常、ＶＥＢは、仮想マシンが動作するサーバ上でソフトウェアによって実装される。したがって、ＶＥＢを用いた処理、特にアクセス制御のような高度なスイッチング処理が実行された場合にＣＰＵの処理負荷が増加するという問題があった。また、ＶＥＢはサーバ外部のネットワーク機器と管理手法が異なるため、サーバ外部のネットワーク機器と別に管理する必要があり、管理及び運用コストが増加するという問題があった。
【０００６】
ＶＥＢが抱える前述した問題に対し、Ｖｉｒｔｕａｌ  Ｅｄｇｅ  Ｐｏｒｔ  Ａｇｇｒｅｇａｔｏｒ（ＶＥＰＡ）と呼ばれるＥＲが提案されている。ＶＥＰＡは、自身では直接にはスイッチング処理を実行せず、仮想マシンから受け取ったスイッチング対象のフレームをそのままサーバに接続された外部のネットワーク機器（外部スイッチ）に転送する。
【０００７】
外部スイッチは、受け取ったフレームに対してスイッチング処理を実行し、処理の結果、ＶＥＰＡに接続された仮想マシンに送信する必要のあるフレームをＶＥＰＡに転送する。ＶＥＰＡは外部スイッチから受信したフレームを宛先である仮想マシンに転送する。
【０００８】
ＶＥＰＡを用いた場合、外部スイッチによって仮想マシンのフレームに対するスイッチング処理が実行されるため、ＶＥＢ用いた場合における問題を解決することできる。しかし、ＶＥＰＡを用いた場合、外部スイッチがスイッチング処理を実行するため、同一サーバ上で動作する仮想マシン間の通信において、ＶＥＢに比べてサーバ及び外部スイッチ間の使用帯域が増加し、レイテンシが増えるという問題がある。
【０００９】
前述したようにＶＥＢ及びＶＥＰＡはいずれもＥＲであるが、スイッチング処理を実行する装置（位置）が異なっている。そして、ＶＥＢ及びＶＥＰＡは、それぞれ、スイッチング処理を実行する装置（スイッチング位置）に関連した長所及び短所を持つため、仮想ネットワークにおける通信に合わせて、ＶＥＢ及びＶＥＰＡを切り替えて利用することが望ましい。
【００１０】
一般に、サーバの負荷、通信の内容及び通信量は時々刻々変化するため、仮想マシンが利用できる計算機資源、レイテンシ及び帯域等の通信に必要となるネットワークの性質は動的に変化する。そのため、ＶＥＢ及びＶＥＰＡの切り替えることによって、スイッチング処理を実行する装置（スイッチング位置）を動的に変更する必要がある。
【００１１】
また、通信の停止は、サーバ及びサーバ上で動作する仮想マシンに多大な影響を与えるため、動的なスイッチング処理の位置の変更に伴う通信の停止は避けなくてはならない。すなわち、ＶＥＢ及びＶＥＰＡの切り替えは、動的にかつ通信を維持したまま行う必要がある。さらに、ＶＥＢやＶＥＰＡといったＥＲをサーバや外部スイッチ毎に異なる方式で管理すると管理及び運用コストが増加するため、スイッチング処理を実行する装置（位置）を変更するためのＥＲの管理は標準規格に準拠した管理方式で行われることが望ましい。
【００１２】
ＶＥＢ及びＶＥＰＡ、並びに、これらの切り替えに関する背景技術として、特許文献１及び非特許文献１がある。
【００１３】
特許文献１には、動的スイッチングモジュールは、前記トラフィックを前記ＡＰにおいてローカルに切り換えるか、又は前記トラフィックを上流へ渡すかを決定し、前記トラフィックは、前記決定に従って送られることが、記載されている。
【００１４】
また、非特許文献１では、Ｅｄｇｅ  Ｖｉｒｔｕａｌ  Ｂｒｉｄｇｉｎｇ（ＥＶＢ）に関する標準規格として、ＥＲ（ＶＥＢ及びＶＥＰＡ）自体及びＥＲと通信するＥＶＢ  Ｂｒｉｄｇｅ（外部スイッチ）の要件、利用可能な機能の通知や共通利用する機能を決定するためにＥＲとＥＶＢ  Ｂｒｉｄｇｅとの間で交換される情報であるＥＶＢ  ＴＬＶ、並びに、ＥＲを含むＥＶＢ  ｓｔａｔｉｏｎ（サーバ）の管理オブジェクト等が規定されている。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特表２００９−５４０６７８号公報
【非特許文献】
【００１６】
【非特許文献１】IEEE P802.1Qbg/D1.6 Virtual Bridged Local Area Networks - Amendment: Edge Virtual Bridging
【発明の概要】
【発明が解決しようとする課題】
【００１７】
特許文献１には、仮想化に係る発明ではないものの、無線局のアクセスポイント（ＡＰ）における処理として、無線スイッチ（外部スイッチに相当）がスイッチング処理を実行するＶＥＰＡに相当する動作と、ＡＰ（ＥＲに相当）がスイッチング処理を実行するＶＥＢに相当する動作とを切り替えることが開示されている。
【００１８】
しかし、特許文献１においては、前述する動作を切り替える契機の一例は開示されているが、動作を切り替える時に通信を維持するための構成については開示されていない。単純に、ＶＥＢ及びＶＥＰＡを切り替えた場合、外部スイッチはＥＲがＶＥＢとして動作していると想定し、一方でＥＲはＶＥＰＡとして動作する等、外部スイッチの動作とＥＲの動作との間で不整合が生じ、結果として通信の単位であるフレームの送信、順序変更等、通信に不具合が生じて通信が維持できなくなる可能性がある。
【００１９】
さらに、特許文献１においては、ＶＥＢ及びＶＥＰＡに相当する動作の切り替えをどのような方式（プロトコル）で管理するかについて開示がないため、標準に準拠した管理方式を適用することはできない。
【００２０】
一方、非特許文献１では、ＶＥＢ及びＶＥＰＡを切り替えるための管理情報や情報の取り扱い（プロトコルに相当）は開示されているが、ＶＥＢ及びＶＥＰＡを切り替える時に通信を維持するための構成に関しては開示はなされていない。
【００２１】
したがって、従来技術では、動的にかつ通信を維持したまま、スイッチング位置を変更することができないという課題があった。
【課題を解決するための手段】
【００２２】
本発明の代表的な一例を示せば以下の通りである。すなわち、演算処理装置と、前記演算処理装置に接続される記憶装置と、１以上のポートを備えるネットワークインタフェースとを備え、複数の転送モードで動作可能なフレーム転送装置であって、前記複数の転送モードは、第１の転送モード、第２の転送モード及び第３の転送モードを含み、前記フレーム転送装置は、前記フレームを受信する受信部と、前記フレームを送信する送信部と、前記フレームを送信するポートを決定するポート決定部と、受信した前記フレームを解析するフレーム解析部と、前記フレーム解析部によって解析された結果を蓄積する学習部と、前記フレーム転送装置の転送モードを示すモード情報を保持し、前記モード情報に基づいて前記転送モードを切り替え、前記フレーム転送装置を制御する状態管理部と、を備え、前記第１の転送モードでは、前記ポートから受信した第１のフレームの解析の結果に基づいて、前記第１のフレームの転送処理を実行し、前記第２の転送モードでは、他の前記フレーム転送装置が接続されたポートから第２のフレームを受信した場合には、前記第２のフレームの解析の結果に基づいて、前記第２のフレームの転送処理を実行し、当該他のフレーム転送装置以外の装置が接続されたポートから第３のフレームを受信した場合には、前記第３のフレームを当該他のフレーム転送装置に転送し、前記第３の転送モードでは、前記他のフレーム転送装置が接続されたポートから第４のフレームを受信し、かつ、前記第４のフレームに対応する解析の結果が蓄積されている場合には、前記第４のフレームを廃棄し、前記他のフレーム転送装置が接続されたポートから前記第４のフレームを受信し、かつ、前記第４のフレームに対応する解析の結果が蓄積されていない場合には、前記第４のフレームの解析の結果に基づいて、前記第４のフレームの転送処理を実行し、前記他のフレーム転送装置以外の装置が接続されたポートから第５のフレームを受信した場合には、前記第５のフレームの解析の結果に基づいて、前記第５のフレームの転送処理を実行することを特徴とする。
【発明の効果】
【００２３】
本発明の一形態によれば、第３の転送モードを設けることによって、通信を維持したまま転送モードを動的に切り替えることができる。さらに、標準規格に準拠した方式で転送モードを切り替えることができる。そのため、所定の契機にしたがって、フレーム転送におけるスイッチング位置を柔軟に変更できるようになり、管理コスト及び運用コストの抑制、処理負荷及び通信帯域の抑制、並びにレイテンシの短縮等が可能となる。
【図面の簡単な説明】
【００２４】
【図１】本発明の第１の実施形態における計算機システム構成を説明するブロック図である。
【図２】本発明の第１の実施形態における計算機システムの論理的な構成を説明するブロック図である。
【図３】本発明の第１の実施形態におけるＥｄｇｅＲｅｌａｙ及びブリッジ装置のソフトウェア構成を示すブロック図である。
【図４】本発明の第１の実施形態における転送ポート管理表の一例を示す説明図である。
【図５】本発明の第１の実施形態におけるＥＶＢ  ＴＬＶの構成を示す説明図である。
【図６】本発明の第１の実施形態のＥｄｇｅＲｅｌａｙにおけるモード及び状態遷移を示す説明図である。
【図７】本発明の第１の実施形態のブリッジ装置のポートにおけるモード及び状態遷移を示す説明図である。
【図８Ａ】本発明の第１の実施形態におけるＥｄｇｅＲｅｌａｙが実行する処理を説明するフローチャートである。
【図８Ｂ】本発明の第１の実施形態におけるＥｄｇｅＲｅｌａｙが実行する処理を説明するフローチャートである。
【図９】本発明の第１の実施形態のＥｄｇｅＲｅｌａｙにおけるフレーム転送処理を説明するフローチャートである。
【図１０Ａ】本発明の実施形態のＥｄｇｅＲｅｌａｙにおける状態遷移処理を説明するフローチャートである。
【図１０Ｂ】本発明の実施形態のＥｄｇｅＲｅｌａｙにおける状態遷移処理を説明するフローチャートである。
【図１０Ｃ】本発明の実施形態のＥｄｇｅＲｅｌａｙにおける状態遷移処理を説明するフローチャートである。
【図１０Ｄ】本発明の実施形態のＥｄｇｅＲｅｌａｙにおける状態遷移処理を説明するフローチャートである。
【図１０Ｅ】本発明の実施形態のＥｄｇｅＲｅｌａｙにおける状態遷移処理を説明するフローチャートである。
【図１０Ｆ】本発明の実施形態のＥｄｇｅＲｅｌａｙにおける状態遷移処理を説明するフローチャートである。
【図１１Ａ】本発明の第１の実施形態におけるブリッジ装置が実行する処理を説明するフローチャートである。
【図１１Ｂ】本発明の第１の実施形態におけるブリッジ装置が実行する処理を説明するフローチャートである。
【図１２Ａ】本発明の第１の実施形態のブリッジ装置におけるポート状態遷移処理を表すフローチャートである。
【図１２Ｂ】本発明の第１の実施形態のブリッジ装置におけるポート状態遷移処理を表すフローチャートである。
【図１２Ｃ】本発明の第１の実施形態のブリッジ装置におけるポート状態遷移処理を表すフローチャートである。
【図１２Ｄ】本発明の第１の実施形態のブリッジ装置におけるポート状態遷移処理を表すフローチャートである。
【図１３】本発明の第２の実施形態における計算機システムの論理的な構成を説明するブロック図である。
【発明を実施するための形態】
【００２５】
以下、本発明を実施するための最良の形態を図に即して説明する。なお、概略はそれ以外の説明を補足するための文章であり、正確性及び網羅性よりもわかりやすさを優先して記述する。
【００２６】
［第１の実施形態］
（システム及びハードウェアの構成）
図１は、本発明の第１の実施形態における計算機システム構成を説明するブロック図である。
【００２７】
図１に示すように、計算機システムは、ブリッジ装置１０１、サーバ装置１０２−１、サーバ装置１０２−２及びノード装置１０４から構成される。サーバ装置１０２−１はケーブル１０５−１を介してブリッジ装置１０１と接続され、サーバ装置１０２−２はケーブル１０５−２を介してブリッジ装置１０１と接続され、また、ノード装置１０４はケーブル１０５−３を介してブリッジ装置１０１と接続される。
【００２８】
以下では、サーバ装置１０２−１及びサーバ装置１０２−２を区別しない場合には、サーバ装置１０２と記載する。また、ケーブル１０５−１、ケーブル１０５−２及びケーブル１０５−３を区別しない場合には、ケーブル１０５と記載する。
【００２９】
本実施形態における計算機システムでは、ブリッジ装置１０１、サーバ装置１０２−１、サーバ装置１０２−２及びノード装置１０４はイーサネット（登録商標、以下同じ）による通信を実現する。
【００３０】
ブリッジ装置１０１はイーサネットフレームを転送するブリッジ機能を備えるネットワーク装置であり、ネットワークスイッチとも呼ばれる。なお、イーサネットについては、ＩＥＥＥ  ８０２．３に規定されており、ブリッジ機能はＩＥＥＥ  ８０２．１Ｄ及びＩＥＥＥ  ８０２．１Ｑに規定されている。
【００３１】
ケーブル１０５はイーサネットによる通信を伝送する媒体であり、金属によるケーブル、光ファイバ等の有線であってもよいし、電波等の無線によるものであってもよいし、Ｌ２ＴＰ（Ｌａｙｅｒ  ２  Ｔｕｎｎｅｌｉｎｇ  Ｐｒｏｔｏｃｏｌ）のように他の通信により構築された論理的なものであってもよい。
【００３２】
サーバ装置１０２−１、サーバ装置１０２−２及びノード装置１０４は、イーサネットに準拠した入出力ポートを有するネットワークノードである。ノード装置１０４はサーバ装置１０２と同様の計算機でもよいし、ブリッジ装置やルータ装置を含むネットワーク機器でもよいし、ネットワークを介して接続されるストレージ装置でもよい。また、ノード装置１０４は、さらに一般化してＬｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＬＡＮ）と呼ばれるネットワークととらえてもよい。
【００３３】
本実施形態では、ノード装置１０４の一例として、サーバ装置１０２を説明する。なお、サーバ装置１０２−２は、はサーバ装置１０２−１と同一の構成であるものとする。また、図１に示すように、サーバ装置１０２を含むノード装置１０４の数は３つに限られるものではなく１つ以上であれば任意の数でよい。例えば、より多くのノード装置１０４を用意してケーブル１０５を介してブリッジ装置１０１とそれぞれ接続し、より多くのノード装置１０４間でブリッジ装置１０１を介して通信できるようにしてもよい。
【００３４】
図１では、サーバ装置１０２−１とサーバ装置１０２−２との間、サーバ装置１０２−２とノード装置１０４との間の点線を用いて、ノード装置１０４の数が任意であることを表現している。以下の説明において用いる図では、構成要素の数が限定されないことを、点線を用いて表現するものとする。
【００３５】
また、本実施形態では、ブリッジ装置１０１、サーバ装置１０２−１、サーバ装置１０２−２及びノード装置１０４は、それぞれ物理的に異なる装置として説明するが、本発明の実施形態はこれに限定されるものではない。
【００３６】
例えば、仮想マシンを稼動させる仮想化ソフトウェアを用いて、物理的に同一装置内で複数の仮想マシンを生成し、当該仮想マシンがブリッジ装置１０１、サーバ装置１０２−１及びノード装置１０４の機能を実現させてもよい。このとき、仮想化ソフトウェアを用いた仮想化では、ケーブル１０５−１、ケーブル１０５−２及びケーブル１０５−３は、共有メモリやメモリ間コピー等に置き換えられる。
【００３７】
仮想化ソフトウェアを実行することによって生成された仮想マシンを用いることによって、柔軟な接続関係の変更、及びハードウェアの利用効率を高めることが可能となる。
【００３８】
なお、本実施形態ではイーサネットによる通信を例に説明するが、本発明はイーサネットに限るものではなく、例えば、無線ＬＡＮ等の他のデータリンク層（Ｌａｙｅｒ  ２）のプロトコルを用いた通信でもよい。他のプロトコルを利用することによって、例えば、通信の広帯域化や通信の信頼性を増加させることを見込め、また、配線の自由度を増すことができる。
【００３９】
また、例えば、ＩＥＥＥ  ８０２．１Ｑｂｇに規定されるＳ−ｃｈａｎｎｅｌのように、ＶＬＡＮタグ等によって仮想的に構成された通信路を用いて、構成の柔軟性を確保し、物理的な配線数以上の通信路を実現してもよい。
【００４０】
（ブリッジ装置１０１のハードウェア構成）
図１を用いてブリッジ装置１０１のハードウェア構成を説明する。
【００４１】
ブリッジ装置１０１は、演算処理装置１０８、記憶装置１０９、入出力装置１１０、ネットワークインタフェース１１１−１、ネットワークインタフェース１１１−２及びネットワークインタフェース１１１−３を備え、各構成が互いに共有バス１１４を介して接続される。
【００４２】
以下では、ネットワークインタフェース１１１−１、ネットワークインタフェース１１１−２及びネットワークインタフェース１１１−３を区別しない場合、ネットワークインタフェース１１１と記載する。
【００４３】
ネットワークインタフェース１１１−１はケーブル１０５−１を介してサーバ装置１０２−１と、ネットワークインタフェース１１１−２はケーブル１０５−２を介してサーバ装置１０２−２と、ネットワークインタフェース１１１−３はケーブル１０５−３を介してノード装置１０４と、それぞれ接続され、各装置間においてイーサネットフレームを送受信する。
【００４４】
図１において、ネットワークインタフェース１１１の数は接続される装置の数に合わせて３つとしたが、１つ又は３つ以上備えていてもよい。複数のネットワークインタフェース１１１を備える場合、いずれの装置にも接続されていないネットワークインタフェース１１１があってもよい。
【００４５】
演算処理装置１０８は、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＣＰＵ）に代表される演算処理装置であり、記憶装置１０９上に展開されたプログラム（ソフトウェア）を実行する。なお、演算処理装置１０８は、物理的又は論理的な複数のＣＰＵによって構成されてよい。
【００４６】
記憶装置１０９は、演算処理装置１０８によって実行されるプログラム及び当該プログラムの実行に必要な情報を格納する。当該情報には、プログラムの実行中に生成されるデータ、プログラムの実行時に読み出されるデータ及び設定が含まれる。
【００４７】
演算処理装置１０８が、記憶装置１０９に格納されるプログラムを実行することによって、ブリッジ装置１０１が有する機能を実現することができる。
【００４８】
記憶装置１０９上に展開されたプログラムは、演算処理装置１０８によって実行される形式のデータであり、プログラムの内部にデータやプログラムが含まれてもよいし、データの内部にプログラムが含まれてもよく、両者の区別は便宜的なものである。
【００４９】
記憶装置１０９は、例えばメモリ、ハードディスク、若しくは光ディスク等のデータ及びプログラムを保持可能な記憶媒体を含む装置（遠隔地に設置され、ネットワークインタフェース１１１及び入出力装置１１０等を介して通信可能な装置を含む）、又はこれらを組み合わせたものから構成される。
【００５０】
記憶装置１０９に格納されるプログラムには、全体制御部１２０、ポート制御部１２１−１、ポート制御部１２１−２及びポート制御部１２１−３が含まれる。また、記憶装置１０９に格納されるデータの一例としては、転送ポート管理表１２４が含まれる。以下では、ポート制御部１２１−１、ポート制御部１２１−２及びポート制御部１２１−３を区別しない場合、ポート制御部１２１と記載する。
【００５１】
全体制御部１２０は、ブリッジ装置１０１の全体を制御するためのプログラムである。ポート制御部１２１は、ネットワークインタフェース１１１が備える入出力ポートを制御するためのプログラムである。
【００５２】
これらの詳細については後述するが、以下のブリッジ装置１０１に関する説明において、データ及び変数の保存、保持、記憶、記録及び格納等の書込処理、並びに、参照及び取り出し等の読出処理は、記憶装置１０９に対して実行されるものとする。
【００５３】
記憶装置１０９に格納されるプログラムは、ブリッジ装置１０１を制御するための機能を論理的に区別するために表したものであり、例えば、すべてプログラムを１つのプログラムとして実行させてもよいし、細分化して複数のスレッド又はプロセス等に分離して実行させてもよい。なお、記憶装置１０９にはブリッジ装置１０１を制御するためのプログラムによって生成された他のデータが格納されてもよい。
【００５４】
入出力装置１１０は、ブリッジ装置１０１に対して情報を入出力するための装置である。入出力装置１１０は、例えば、スイッチ、キーボード、マウス、マイクロホン、ビデオカメラ、ディスプレイ及びスピーカー等の機器が含まれる。
【００５５】
なお、ブリッジ装置１０１には入出力装置１１０が直接接続されてもよいし、入出力装置１１０に接続可能なインタフェースを介して入出力装置１１０と接続する形態でもよい。また、入出力装置１１０には、信号ケーブル、又は、電波及び赤外線等の無線を介して行われるシリアル通信などの通信によって接続されるものも含まれる。
【００５６】
ブリッジ装置１０１は、入出力装置１１０を介して、ブリッジ装置１０１のユーザ又は管理者からの指示を受け付け、また、結果を出力することが可能となる。
【００５７】
ネットワークインタフェース１１１−１、ネットワークインタフェース１１１−２及びネットワークインタフェース１１１−３は、それぞれ、イーサネットフレームを送受信するための入出力ポート１２５−１、入出力ポート１２５−２及び入出力ポート１２５−３を備える。以下では、入出力ポート１２５−１、入出力ポート１２５−２及び入出力ポート１２５−３を区別しない場合には、入出力ポート１２５と記載する。
【００５８】
入出力ポート１２５は、演算処理装置１０８が実行するポート制御部１２１によってそれぞれ制御され、他の機器とイーサネットフレームを用いた通信を行う。以下、入出力ポート１２５と、当該入出力ポート１２５を制御するポート制御部１２１とをまとめてポートと呼ぶ。
【００５９】
なお、共有バス１１４は、ブリッジ装置１０１の各構成要素間の通信を実現するためのものであるが、本発明は共有バス１１４に限定されるものではない。各構成要素間で通信できれば、共有バス１１４を用いる以外の方法によって接続されてもよい。例えば、各構成要素間を直接接続することのよって、要素間の接続を最適化し、処理に必要な消費電力を減らし、また、処理効率を上げることが可能となる。
【００６０】
（サーバ装置１０２のハードウェア構成）
次に、図１を用いてサーバ装置１０２のハードウェア構成を説明する。
【００６１】
サーバ装置１０２は、演算処理装置１１５、記憶装置１１６、入出力装置１１７及びネットワークインタフェース１１８を備え、各構成が互いに共有バス１１９を介して接続される。
【００６２】
ネットワークインタフェース１１８はケーブル１０５−１を介してブリッジ装置１０１と接続され、イーサネットフレームを送受信する。
【００６３】
図１に示す例では、ネットワークインタフェース１１８の数は１つとしたが、１つ以上であれば任意の数でよく、ネットワークの冗長化及び広帯域化を実現するために、サーバ装置１０２が複数のネットワークインタフェース１１８を備えてもよい。
【００６４】
演算処理装置１１５は、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＣＰＵ）に代表される演算処理装置であり、記憶装置１１６上に展開されたプログラム（ソフトウェア）を実行する。なお、演算処理装置１１５は、物理的又は論理的な複数のＣＰＵによって構成されてよい。
【００６５】
記憶装置１１６は、演算処理装置１１５によって実行されるプログラム及び当該プログラムの実行に必要な情報を格納する。当該情報には、プログラムの実行中に生成されるデータ、プログラムの実行時に読み出されるデータ及び設定が含まれる。
【００６６】
演算処理装置１１５が、記憶装置１１６に格納されるプログラムを実行することによって、サーバ装置１０２が有する機能を実現することができる。
【００６７】
記憶装置１１６上に展開されたプログラムは、演算処理装置１１５によって実行される形式のデータであり、プログラムの内部にデータやプログラムが含まれてもよいし、データの内部にプログラムが含まれてもよく、両者の区別は便宜的なものである。
【００６８】
記憶装置１１６は、例えば、メモリ、ハードディスク、若しくは光ディスク等のデータ及びプログラムを保持可能な記憶媒体を含む装置（遠隔地に設置され、ネットワークインタフェース１１８又は入出力装置１１７等を介して通信可能な装置を含む）、又はこれらを組み合わせたものから構成される。
【００６９】
記憶装置１１６に格納されるプログラムには、ＥｄｇｅＲｅｌａｙ１２８及び仮想化ソフトウェア１２９が含まれる。また、記憶装置１１６に格納されるデータの一例としては、仮想マシン１３０−１及び仮想マシン１３０−２が含まれる。以下、仮想マシン１３０−１及び仮想マシン１３０−２を区別しない場合には、仮想マシン１３０と記載する。
【００７０】
ＥｄｇｅＲｅｌａｙ１２８は、仮想的なネットワークスイッチの機能を実現するプログラムであり、ブリッジ装置１０１と同様の構成をソフトウェアとして提供する。従って、ＥｄｇｅＲｅｌａｙ１２８の内部には、ブリッジ装置１０１における全体制御部１２０、ポート制御部１２１、転送ポート管理表１２４及び入出力ポート１２５等のプログラム及びデータに対応するものが含まれる。なお、ＥｄｇｅＲｅｌａｙ１２８の詳細については後述する。
【００７１】
仮想化ソフトウェア１２９は、ハイパバイザとも呼ばれ、サーバ装置１０２のような仮想的な計算機を動作させるプログラムである。仮想化ソフトウェア１２９は、仮想マシン１３０のような仮想マシンに対応するデータを読み出し、それぞれのデータに従って仮想的な計算機として動作させる。仮想化ソフトウェア１２９を用いることによってサーバ装置１０２上に複数の仮想的な計算機を動作させることができる。
【００７２】
仮想マシン１３０は、仮想化ソフトウェア１２９を用いて仮想的に動作する計算機の実態であるデータであり、仮想的な計算機の状態、記憶装置１１６に格納されるプログラム及びデータ等が含まれる。図１に示す例では、サーバ装置１０２に２つ仮想マシン１３０を動作させる例を示しているが、仮想マシン１３０の数は任意である。例えば、２つ以上の仮想マシン１３０を動作させて、サーバ装置１０２上でより多くの処理を実行させて利用効率を高めてもよい。
【００７３】
なお、仮想化ソフトウェア１２９及び仮想マシン１３０は一般的なものであるため詳細な説明は省略する。
【００７４】
なお、以下のサーバ装置１０２に関する説明において、データ及び変数の保存、保持、記憶、記録及び格納等の書込処理、並びに、参照及び取り出し等の読出処理は、記憶装置１１６に対して実行されるものとする。
【００７５】
記憶装置１１６に格納されるプログラムは、サーバ装置１０２を制御するための機能を論理的に区別するために表したものであり、例えば、すべてのプログラムを１つのプログラムとして実行させてもよいし、細分化して複数のスレッド又はプロセス等に分離して実行させてもよい。なお、記憶装置１１６にはサーバ装置１０２を制御するためのプログラムによって生成された他のデータが格納されてもよい。
【００７６】
入出力装置１１７は、サーバ装置１０２に対して情報を入出力するための装置である。入出力装置１１７は、例えば、スイッチ、キーボード、マウス、マイクロホン、ビデオカメラ、ディスプレイ及びスピーカー等の機器が含まれる。
【００７７】
なお、サーバ装置１０２には、入出力装置１１７が直接接続されてもよいし、入出力装置に接続可能なインタフェースを介して入出力装置１１７に接続する形態でもよい。また、入出力装置１１７には、信号ケーブル、又は、電波及び赤外線等の無線を介して行われるシリアル通信などの通信によって接続されるものも含まれる。
【００７８】
サーバ装置１０２は、入出力装置１１７を介して、サーバ装置１０２のユーザ又は管理者からの指示を受け付け、また、結果を出力することが可能となる。
【００７９】
ネットワークインタフェース１１８は、演算処理装置１０８が実行するＥｄｇｅＲｅｌａｙ１２８又は仮想化ソフトウェア１２９の指示にしたがって、他の機器とイーサネットフレームを用いた通信を行う。ＥｄｇｅＲｅｌａｙ１２８又は仮想化ソフトウェア１２９は、ソフトウェアによって仮想的に生成されたネットワークインタフェース、又は、ネットワークインタフェース１１８を用いて他の機器や構成要素と通信する。
【００８０】
なお、共有バス１１９は、サーバ装置１０２の各構成要素間の通信を実現するためのものであるが、本発明は共有バス１１９に限定されるものではない。各構成要素間で通信できれば、共有バス１１９を用いる以外の方法によって接続されてもよい。例えば、各構成要素間を直接接続することのよって、要素間の接続を最適化し、処理に必要な消費電力を減らし、また、処理効率を上げることが可能となる。
【００８１】
ノード装置１０４は、イーサネットを用いた通信を行う機器であり、例えば、ブリッジ装置１０１等のネットワーク機器やサーバ装置１０２等の計算機であるが、本発明に特有の構成を必要とするものではないため説明は省略する。
【００８２】
（システム及びハードウェアの変形例）
なお、図１に示す計算機システムの構成は一例であり、ブリッジ装置１０１又はサーバ装置１０２の構成要素の個数は図１に示すものに限定されない。例えば、入出力装置１１０及び入出力装置１１７等を２つ用意して冗長化し、また、機能を分担してもよい。
【００８３】
また、本発明は、記憶装置１０９及び記憶装置１１６に格納されたプログラムによって実現される機能のうち、一部又は全部の機能をハードウェアとして実装してもよい。ハードウェアとして実装することによって、例えば、処理の高速化や低消費電力化が可能となる。
【００８４】
また、当該ハードウェアが備える機能を、仮想化ソフトウェアを用いてプログラムとして実現してもよい。ハードウェアが備える機能をプログラムとして実現することによって、例えば、設置スペースを削減し、管理を単純化することができる。
【００８５】
また、プログラムによって実現される機能の構成は後述する構成に限るものではなく、複数の機能が統合される構成、又は１つの機能が複数に分割される構成でもよい。また、各機能によって実行される処理の順序についても、後述する順序に限るものではなく、処理の依存関係が許すならば、並列で同時に実行し、また、処理の実行順序を入れ替えて実行してもよい。例えば、処理を並列実行することによって処理時間を短縮でき、実行順序を入れ替えることによって待ち時間を減らすことができる。
【００８６】
図２は、本発明の第１の実施形態における計算機システムの論理的な構成を説明するブロック図である。
【００８７】
サーバ装置１０２では、演算処理装置１１５がＥｄｇｅＲｅｌａｙ１２８を実行することによって仮想的なネットワーク機器として動作し、演算処理装置１１５が仮想化ソフトウェア１２９を実行することによって仮想的な計算機である仮想マシン１３０−１及び仮想マシン１３０−２がサーバ装置１０２上で稼動する。
【００８８】
ＥｄｇｅＲｅｌａｙ１２８、仮想マシン１３０−１及び仮想マシン１３０−２が、イーサネットフレームを送受信する主体となる。サーバ装置１０２内においてＥｄｇｅＲｅｌａｙ１２８、仮想マシン１３０−１及び仮想マシン１３０−２の論理的な接続は、図２に示すような接続関係となっている。
【００８９】
ＥｄｇｅＲｅｌａｙ１２８は、仮想ケーブル２１１−１を介して仮想マシン１３０−１と接続され、仮想ケーブル２１１−２を介して仮想マシン１３０−２と接続される。以下、仮想ケーブル２１１−１及び仮想ケーブル２１１−２を区別しない場合には、仮想ケーブル２１１と記載する。
【００９０】
仮想ケーブル２１１は、ケーブル１０５と同様の機能を仮想的に実現したものであり、共有メモリ又はメモリ間のコピー等によって、仮想マシン１３０及びＥｄｇｅＲｅｌａｙ１２８から送信されたフレームが、対向装置（仮想マシン１３０及びＥｄｇｅＲｅｌａｙ１２８等の仮想的な機器、又は、ブリッジ装置１０１等の物理的な機器）に送信される。
【００９１】
また、ＥｄｇｅＲｅｌａｙ１２８は、ケーブル１０５−１を介してブリッジ装置１０１とフレームを送受信する。ケーブル１０５−１と仮想ケーブル２１１とは物理と論理との違いはあるが、いずれも構成要素間を接続するという点では同一のものである。仮想化ソフトウェア１２９は、ＥｄｇｅＲｅｌａｙ１２８が仮想ケーブル２１１をケーブル１０５と同様に扱えるように制御する。なお、仮想化ソフトウェア１２９における制御は、仮想ネットワークインタフェース、デバイス仮想化等の名称で一般的な技術であるため、説明は省略する。
【００９２】
本実施形態においては、例えば、仮想マシン１３０−１から仮想マシン１３０−２宛にフレームが送信された場合、後述するＥｄｇｅＲｅｌａｙ１２８のモードに従ってフレームの伝送経路が異なる。すなわち、ＥｄｇｅＲｅｌａｙ１２８のみを経由する経路か、ＥｄｇｅＲｅｌａｙ１２８及びブリッジ装置１０１の両方を経由する経路のいずれかの伝送経路を介してフレームが伝達される。
【００９３】
ＥｄｇｅＲｅｌａｙ１２８及びブリッジ装置１０１の両方を経由する伝送経路では、最初にＥｄｇｅＲｅｌａｙ１２８を通り、次にブリッジ装置１０１を通り、その後、ＥｄｇｅＲｅｌａｙ１２８を通ってフレームが伝達される。
【００９４】
前述した一例のように、本実施形態は、送信元の仮想マシン１３０と、宛先又は届けられる先（ブロードキャストフレーム等）の仮想マシン１３０とが同一のサーバ装置１０２内にある場合、ＥｄｇｅＲｅｌａｙ１２８のモードによってフレームの伝達経路が変わる。
【００９５】
また、本実施形態では、ＥｄｇｅＲｅｌａｙ１２８のモードと整合がとれるようにブリッジ装置１０１のモードも切り替えられるため、通信を維持した状態でＥｄｇｅＲｅｌａｙ１２８のモードを切り替えられる。そのため、本実施形態では、伝達経路を動的に切り替えることができる。
【００９６】
以下、前述したＥｄｇｅＲｅｌａｙ１２８及びブリッジ装置１０１のモードと、モードの切り替え方法について説明する。
【００９７】
（ソフトウェアの構成）
図３は、本発明の第１の実施形態におけるＥｄｇｅＲｅｌａｙ１２８及びブリッジ装置１０１のソフトウェア構成を示すブロック図である。
【００９８】
ＥｄｇｅＲｅｌａｙ１２８及びブリッジ装置１０１は、仮想的な装置と物理的な装置という違いはあるが、いずれもネットワーク機器として動作し、そのソフトウェアの構成は同一であってもよいため、同一の図を用いて説明する。図３では、主に、ブリッジ装置１０１を例に説明し、ＥｄｇｅＲｅｌａｙ１２８と違いのある場合を除き、ＥｄｇｅＲｅｌａｙ１２８としての説明は省略する。
【００９９】
なお、図３において、四角は実行されるプログラムによって実現される処理ブロックを表す。また、処理ブロック間の矢印は、矢印の方向に情報又は指示及び指令が伝送されることを示す。処理ブロック間で伝送される情報又は指示及び指令については後述する。
【０１００】
ブリッジ装置１０１は、全体制御部１２０、ポート制御部１２１−１、ポート制御部１２１−２、入出力ポート１２５−１及び入出力ポート１２５−２を備える。図１で説明したようにポートの数は任意であるため、図３ではポートを２つとし、ポート制御部１２１−３及び入出力ポート１２５−３に対応するポートは省略している。
【０１０１】
ＥｄｇｅＲｅｌａｙ１２８の場合は、全体制御部１２０、ポート制御部１２１−１、ポート制御部１２１−２、入出力ポート１２５−１及び入出力ポート１２５−２は、ＥｄｇｅＲｅｌａｙ１２８にモジュールとして含まれるものとする。
【０１０２】
なお、本実施形態では各ポートのソフトウェア構成はいずれも同一とし、ポート番号及び役割、接続される対向装置等によって動作を変更するものとするが、それぞれのポートに適したソフトウェア構成としてもよい。例えば、ポート毎にソフトウェア構成を変更して不要な機能を省略し、コードサイズを削減してもよい。なお、ポートを含めたブリッジ装置１０１及びＥｄｇｅＲｅｌａｙ１２８の動作については後述する。
【０１０３】
また、全体制御部１２０の数は複数でもよく、例えば、ポートと同じ数だけ全体制御部１２０を用意し、各全体制御部１２０がポート毎に並列処理を実行することによって処理時間を短縮する構成でもよい。また、複数のポート制御部１２１を統括する制御部を追加して、当該制御部を全体制御部１２０が制御するように処理を階層化して、全体制御部１２０の処理を削減することによって制御を単純化してもよい。
【０１０４】
ブリッジ装置１０１は、入出力ポート１２５−１及び入出力ポート１２５−２を介してイーサネットフレームを送受信する。ポート制御部１２１−１及びポート制御部１２１−２は、それぞれ、入出力ポート１２５−１及び入出力ポート１２５−２を介して送信する情報及び受信した情報を、再度送受信するか否かを制御する。
【０１０５】
また、ポート制御部１２１−１及びポート制御部１２１−２は、必要に応じて、互いに、ポート間で情報を移動し、またコピーする。
【０１０６】
全体制御部１２０は、ポート制御部１２１−１及びポート制御部１２１−２を介して各ポートで送受信する情報を制御し、また、外部からの入力、設定及び受信した情報に基づいて動作を変更する。
【０１０７】
ブリッジ装置１０１は、各構成要素を用いて、あるポートが受信したイーサネットフレームを適切なポートから送信し、イーサネットフレームの通信を中継するブリッジ機能を実現する。なお、フレームの内容やブリッジ装置１０１の状態によってはポートからフレームが送信されないこともある。
【０１０８】
全体制御部１２０は、状態管理部３０６、制御フレーム処理部３０７、制御フレーム生成部３０８、配送ポート決定部３０９及びポート学習部３１０から構成される。
【０１０９】
状態管理部３０６は、各ポート及び装置全体のモード、状態及び設定を管理する。制御フレーム処理部３０７は、接続された対向装置から受信したフレームのうち対向装置（装置全体又はポート）の状態を通知する制御フレームを処理して情報を抽出する。
【０１１０】
制御フレーム生成部３０８は、自装置（又は自ポート）の状態を対向装置に通知する制御フレームを生成する。配送ポート決定部３０９は、自装置（又は自ポート）の状態、及び受信したフレームの宛先等の内容に基づいて、受信したフレームを配送（送信）するポートを決定する。
【０１１１】
ポート学習部３１０は、受信したフレームの内容から各ポートが受信したフレームの送信元等の情報を保持する。ポート学習部３１０が保持する情報は、配送ポートを決定するときに用いられる。
【０１１２】
ポート制御部１２１は、フレーム分類／情報抽出部３１１、フレーム蓄積部３１２及び送受信制御部３１３から構成される。
【０１１３】
フレーム分類／情報抽出部３１１は、フレームから必要な情報を抽出し、適切な構成要素に、抽出された情報を出力する。フレーム蓄積部３１２は、受信したフレーム及び送信するフレームを保持する。送受信制御部３１３は、フレームの送信及び受信の可否を制御する。
【０１１４】
入出力ポート１２５は、フレーム受信部３１４及びフレーム送信部３１５から構成される。フレーム受信部３１４は、フレームを受信する。フレーム送信部３１５は、フレームを送信する。
【０１１５】
以下では、どのようにして情報、指示及び指令が各構成要素間で伝達されるかを説明する。
【０１１６】
まず、ブリッジ装置１０１への指示は２通りの経路で行われる。
【０１１７】
ひとつは、入出力装置１１０又はプログラム起動時の引数、設定ファイル、他のプログラムからの通知を介して指示が行われる。当該指示は、全体制御部１２０の状態管理部３０６に入力される。
【０１１８】
もうひとつは、ネットワークインタフェース１１１を介した制御フレームを用いて指示が行われる。当該指示を含む制御フレームは、入出力ポート１２５及び対応するポート制御部１２１を経由して制御フレーム処理部３０７に伝達され、さらに、状態管理部３０６に入力される。
【０１１９】
状態管理部３０６は、現在の状態と、入力された指示とに基づいて、新しい状態を決定する。ブリッジ装置１０１の動作は、状態に基づいて決定される。当該状態の決定方法（状態遷移）及び各状態におけるブリッジ装置１０１の動作については後述する。また、制御フレームの内容及び形式に関しても後述する。
【０１２０】
次に、入出力ポート１２５から受信したイーサネットフレームを適切なポートから送信するためのブリッジ機能の実現方法について説明する。
【０１２１】
ブリッジ装置１０１に対してフレームが送信されると、当該フレームは、ネットワークインタフェース１１１を通してフレーム受信部３１４によって受信される。フレーム受信部３１４は、フレーム単位で処理を実行する。
【０１２２】
ネットワークインタフェース１１１は、ケーブル１０５等の媒体を介して伝送される光信号及び電気信号からフレームへの変換を行う。なお、ＥｄｇｅＲｅｌａｙ１２８が仮想ケーブル２１１を介してフレームを受信した場合、記憶装置１１６上にて受信処理が実現されるため、前述した変換処理は通常は必要ない。ただし、記憶装置１１６上の表現（例えば、エンディアンやビット順序等）を変更する等、フレームを扱う上で必要がある場合にはフレームへの変換処理が実行されてもよい。
【０１２３】
フレーム受信部３１４は、受信したフレームをフレーム蓄積部３１２に格納し、当該フレームを参照するための記憶装置１１６上のアドレスをフレーム分類／情報抽出部３１１に伝達する。
【０１２４】
なお、フレーム受信部３１４がフレーム分類／情報抽出部３１１に伝達する情報には、記憶装置１１６上のアドレスが必ず含まれている必要はなく、当該フレームを参照するために必要な情報が含まれていればよい。例えば、フレーム受信部３１４は、フレームの優先度等、フレーム内容に応じてフレームを分類して異なるキューに格納し、キュー番号及びキュー内の位置（順序等）をフレーム分類／情報抽出部３１１に伝達してもよい。この場合、キュー毎にフレームを区別して、優先度毎に異なる扱いを行ってもよい。
【０１２５】
フレーム分類／情報抽出部３１１は、フレーム受信部３１４から伝達された情報を用いて、フレーム蓄積部３１２にアクセスしてフレームの内容を読み出し、読み出されたフレームの内容に基づいてフレームを分類する。具体的には、以下のような処理が実行される。
【０１２６】
イーサネットフレームの宛先（Ｄｅｓｔｉｎａｔｉｏｎ）Ｍａｃ（Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ）アドレスから当該フレームが制御フレームであると判定された場合、フレーム分類／情報抽出部３１１は制御フレーム処理部３０７にフレーム内容を伝達する。
【０１２７】
一方、制御フレーム以外のフレームであると判定された場合、フレーム分類／情報抽出部３１１は、ポート番号、当該フレームのメモリアドレス、フレームから抽出された宛先ＭＡＣアドレス、送信元ＭＡＣアドレス、ＶＬＡＮ（Ｖｉｒｔｕａｌ  ＬＡＮ）  ＩＤ等を配送ポート決定部３０９に伝達する。また、フレーム分類／情報抽出部３１１は、ポート番号、並びに、フレームから抽出した送信元ＭＡＣアドレス及びＶＬＡＮ  ＩＤをポート学習部３１０に伝達し、さらに、フレームを受信したポート番号と制御フレームであるか否か示す情報とを状態管理部３０６に伝達する。
【０１２８】
なお、フレーム分類／情報抽出部３１１が伝達する情報は、前述した情報に限るものではない。例えば、フレームの内容に応じてフレームを複数のキューに格納し、キュー番号を配送ポート決定部３０９に伝達して、フレームの内容毎に配送ポートを変更してもよい。また、ＭＡＣアドレス及びＶＬＡＮ  ＩＤではなく、これらの組み合わせから決定される番号Ｆｏｒｗａｒｄｉｎｇ  ＩＤを配送ポート決定部３０９及びポート学習部３１０に伝達して、伝達する情報を減らしてもよい。この場合、Ｆｏｒｗａｒｄｉｎｇ  ＩＤに基づいて配送ポートが決定される。また、ＶＬＡＮ  ＩＤを省略した構成とし、構成を簡素化してもよい。また、ＶＬＡＮ  ＩＤをフレームから抽出するのではなく、ポート毎に予め定めた値を用いてもよい。また、制御フレーム処理部３０７にフレームの内容ではなく当該フレームを格納した記憶装置１１６上のアドレスを伝達することによって伝達する情報を削減してもよい。
【０１２９】
また、イーサネットフレームの宛先及び送信元を識別する情報としてＭＡＣアドレス以外の情報として、例えば、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレス等を用いてもよい。
【０１３０】
制御フレーム処理部３０７は、フレーム分類／情報抽出部３１１から伝達されたフレームの内容からＬＬＤＰ（Ｌｉｎｋ  Ｌａｙｅｒ  Ｄｉｓｃｏｖｅｒｙ  Ｐｒｏｔｏｃｏｌ）のＴＬＶ（ｔｙｐｅ−ｌｅｎｇｔｈ−ｖａｌｕｅ）を抽出し、状態管理部３０６に伝達する。
【０１３１】
なお、ＬＬＤＰのＴＬＶはＩＥＥＥ  ８０２．１ＡＢとして標準化されおり、後述するように、本実施形態ではＬＬＤＰのＴＬＶのうち、ＩＥＥＥ  ８０２．１Ｑｂｇに規定されるＥＶＢ（Ｅｄｇｅ  Ｖｉｒｔｕａｌ  Ｂｒｉｄｇｉｎｇ）  ＴＬＶのみを用いる。ただし、接続機器の管理等に役立てるために、Ｃｈａｓｓｉｓ  ＩＤ  ＴＬＶ等、その他の情報を使用してもよい。
【０１３２】
ポート学習部３１０は、状態管理部３０６から伝達された指示がポート学習を示す場合のみポート学習を実行する。
【０１３３】
ポート学習では、フレーム分類／情報抽出部３１１から伝達されたＭＡＣアドレスとＶＬＡＮ  ＩＤとに基づいて転送ポート管理表１２４を参照して一致するエントリが検索される。一致するエントリが見つかった場合には、当該エントリのポート番号が更新される。また、一致するエントリが見つからない場合には、フレーム分類／情報抽出部３１１から伝達されたＭＡＣアドレス、ＶＬＡＮ  ＩＤ及びポート番号を対応づけた新たなエントリが転送ポート管理表１２４に生成される。
【０１３４】
転送ポート管理表１２４では、古いエントリは削除される。なお、本発明において、ポート学習に相当する機能は必須の構成ではなく、例えば、予めエントリを生成しておき、更新処理を省略することによってエントリの検索処理を高速化してもよい。
【０１３５】
なお、転送ポート管理表１２４におけるエントリ追加及び削除等のポート学習の詳細に関しては、ＭＡＣアドレステーブル又はＦｏｒｗａｒｄｉｎｇ  Ｄａｔａｂａｓｅとしてブリッジ装置１０１において一般的な技術であるため、本実施形態では説明を省略する。
【０１３６】
配送ポート決定部３０９は、状態管理部３０６が管理する状態に従って、フレーム分類／情報抽出部３１１から伝達されたポート番号、宛先ＭＡＣアドレス、送信元ＭＡＣアドレス及びＶＬＡＮ  ＩＤを用いて当該フレームを配送するポート（以下、配送ポートとも呼ぶ）を決定する。また、配送ポート決定部３０９は、フレーム分類／情報抽出部３１１から伝達されたポート番号及び当該フレームのメモリアドレスを、決定された配送ポートに対応する送受信制御部３１３に伝達する。
【０１３７】
なお、配送ポートの数は、複数個でもよいし、０個でもよい。配送ポートが複数個の場合には、各配送ポートに同一のフレームが配送される。配送ポートが０個の場合には、フレームは転送されない。すなわち、フレームは廃棄される。また、後述する一部のモードにおいて、ブロードキャストフレームは受信ポートを除く全ポートに配送される。
【０１３８】
なお、配送ポート決定部３０９は、後述する所定のモードではポート学習部３１０に宛先ＭＡＣアドレス、送信元ＭＡＣアドレス及びＶＬＡＮ  ＩＤを伝送する。ポート学習部３１０は伝送された情報に一致するエントリ（宛先と送信元とは別エントリ）を検索し、一致するエントリが見つかった場合にはポート番号を、一致するエントリが見つからなかった場合にはエントリが見つからなかった旨を配送ポート決定部３０９に伝達する。
【０１３９】
配送ポート決定部３０９は、ポート学習部３１０から伝達された検索結果に含まれるポート番号に対応するポートを配送ポートとして決定し、又は、当該ポートを除くポートの中から配送ポートを決定し、状態管理部３０６に配送ポートを通知する。また、配送ポート決定部３０９は、送受信制御部３１３に当該フレームが保存されているポート番号とメモリアドレスとを通知してフレームを配送する。
【０１４０】
前述した配送ポート決定部３０９における動作は、ブリッジ装置１０１及びＥｄｇｅＲｅｌａｙ１２８のモードに従って動作が異なる。なお、詳細については後述する。
【０１４１】
また、状態管理部３０６は、現在の状態、Ｃｈａｓｓｉｓ  ＩＤやポートを識別するＩＤ、有効期限、ポートのＭＡＣアドレス及び宛先ＭＡＣアドレスを制御フレーム生成部３０８に伝送する。これによって、制御フレームが送信される。なお、制御フレームが送信される契機については後述する。
【０１４２】
状態管理部３０６から制御フレーム生成部３０８に伝送される情報のうち、状態については後述する。また、伝送される情報のうち、状態以外の情報については設定から取得されるが、具体的な情報については、ＬＬＤＰの必須ＴＬＶとして一般的な内容であるため本実施形態では説明は省略する。
【０１４３】
制御フレーム生成部３０８は、状態管理部３０６から伝送された情報がＴＬＶとして埋め込まれたＬＬＤＰフレームを生成し、生成されたＬＬＤＰフレームを全ポートのフレーム蓄積部３１２に保存する。また、制御フレーム生成部３０８は、各ポートの送受信制御部３１３にポート番号と、保存されたＬＬＤＰフレームを参照するための記憶装置１１６上のアドレスとを伝送する。
【０１４４】
なお、一つのポートのフレーム蓄積部３１２にのみ前述のＬＬＤＰフレームを保存し、当該ポートのポート番号と当該ＬＬＤＰフレームを参照するための記憶装置１１６上のアドレスとを全ポートのフレーム蓄積部３１２に通知することによってＬＬＤＰフレームの保存に必要な記憶容量を節約してもよい。また、前述のＬＬＤＰフレームはＰｏｒｔ  ＩＤ等、ポート毎に異なる内容を含んでもよい。また、一部のポートにおいてＬＬＤＰフレームの送信を抑止し、ＬＬＤＰフレームが不要なリンクの帯域を節約してもよい。
【０１４５】
なお、制御フレーム生成部３０８が生成するＬＬＤＰフレームの内容については後述する。
【０１４６】
ＥｄｇｅＲｅｌａｙ１２８において、ＥｄｇｅＲｅｌａｙ１２８の状態によって、状態管理部３０６は送受信制御部３１３に対して、フレーム受信の一時停止又は再開を指示することがある。このとき、送受信制御部３１３は、前述の一時停止又は再開の指示を受け付けると、フレーム分類／情報抽出部３１１にフレーム受信の一時停止又は再開の指示を伝達する。なお、本指示に関係するＥｄｇｅＲｅｌａｙ１２８の状態は後述する。
【０１４７】
フレーム分類／情報抽出部３１１は、送受信制御部３１３からフレーム受信の一時停止の指示を受け付けた後、フレームを受信した場合、フレーム蓄積部３１２にフレームを保存するが、配送ポート決定部３０９及びポート学習部３１０への情報の伝達を一時停止する。フレーム分類／情報抽出部３１１は、送受信制御部３１３からフレーム受信の再開の指示を受け付けると情報の伝達を再開する。また、フレーム分類／情報抽出部３１１は、前述のフレーム受信の一時停止中では、状態管理部３０６にフレームが保存された旨を通知する。
【０１４８】
フレーム受信の一時停止中に保存されたフレームに関する情報は、フレーム受信が再開された後、受信した順に配送ポート決定部３０９及びポート学習部３１０に伝達される。
【０１４９】
なお、フレーム分類／情報抽出部３１１は、フレーム受信の一時停止中でも制御フレーム処理部３０７へ情報を伝達するが、配送ポート決定部３０９及びポート学習部３１０への情報の伝達と同様に、制御フレーム処理部３０７への情報の伝達も一時停止し、再開の指示を受けた後に再開するように簡素化してもよい。前述の伝達の一時停止及び再開は、キューという仕組みによって実現されるが、情報処理においてキューはＦｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ（ＦＩＦＯ）とも呼ばれ一般的であるので説明を省略する。
【０１５０】
また、フレーム受信の一時停止及び再開は必ずしも前述した方法である必要はなく、例えば、フレーム受信の一時停止中は送受信制御部３１３がフレーム全体を受信した順にキューに入れて、再開後にフレームを順に取り出して送受信制御部３１３が処理する方法でもよい。これによって、プログラムを簡素化できる。
【０１５１】
次に、送受信制御部３１３のその他処理について説明する。
【０１５２】
フレーム蓄積部３１２は、ユーザからの指示があったときに、送受信制御部３１３に対して、受信フレームの廃棄を指示する。なお受信フレームの廃棄の契機はユーザからの指示に限るものではなく、例えば、状態管理部３０６が管理している状態が所定の状態となったときを契機として受信フレームの廃棄を行うようにして、特定条件下でフレームを廃棄できるようにしてもよい。
【０１５３】
送受信制御部３１３は、フレーム蓄積部３１２から受信フレームの廃棄を指示された場合、フレーム分類／情報抽出部３１１に受信フレームの廃棄を指示する。フレーム分類／情報抽出部３１１は、送受信制御部３１３から受信フレームの廃棄の指示を受け付けた後にフレームを受信した時、配送ポート決定部３０９、ポート学習部３１０及び制御フレーム処理部３０７への情報の伝達を停止し、受信フレームの廃棄の指示が解除された場合も、フレーム受信の停止中に受信したフレームに関する情報を伝達しない。
【０１５４】
なお、フレーム分類／情報抽出部３１１は、フレーム受信の停止中に受信したフレームに使用された記憶領域の開放をフレーム蓄積部３１２に指示し、当該指示を受けたフレーム蓄積部３１２は当該記憶領域を開放する。
【０１５５】
本発明は前述の処理によって受信フレームの廃棄を実現するが、前述の処理に限るものではなく、例えば、フレーム受信部３１４の処理を停止して受信フレームの実質的な廃棄を実現してもよい。
【０１５６】
次に、ポートからフレームを送信する場合の動作について説明する。
【０１５７】
送受信制御部３１３は、制御フレーム処理部３０７又は配送ポート決定部３０９から伝送された送信対象のフレームが保存されるフレーム蓄積部３１２のポート番号及び記憶装置１１６上のアドレスが、フレームを送信するポートと異なる場合、送信対象のフレームが保存されるフレーム蓄積部３１２からフレームを読み出して、フレームを送信するポートのフレーム蓄積部３１２に保存する。
【０１５８】
そして、送受信制御部３１３は、送信対象のフレームをフレーム送信部３１５に伝送するようにフレーム蓄積部３１２に指示する。フレーム蓄積部３１２は、前述の指示に従って、フレーム送信部３１５に送信対象のフレームを伝送する。フレーム送信部３１５は、フレーム蓄積部３１２から伝送されたフレームを送信する。
【０１５９】
なお、送受信制御部３１３は、送信済みのフレームの削除をフレーム蓄積部３１２に指示し、当該フレーム蓄積部３１２がフレームを削除する。ただし、複数のポートからフレームが送信される場合に整合性を保ったフレームの削除方法としては、情報処理において参照カウントとして一般的な技術であるため、本実施形態での説明を省略する。
【０１６０】
また、本実施形態ではポート毎にフレーム蓄積部３１２を持つ構成としたが、フレームを蓄積するフレーム蓄積部３１２を記憶装置１１６内で集約し、管理することによって、記憶装置１１６内のコピー回数を減らして処理を高速化し、記憶装置１１６の利用効率を高めてもよい。記憶装置１１６の管理に関しては、情報処理においてメモリ確保やメモリ管理等として一般的な技術であるため、本実施形態での説明を省略する。
【０１６１】
図４は、本発明の第１の実施形態における転送ポート管理表１２４の一例を示す説明図である。
【０１６２】
転送ポート管理表１２４は、ＭＡＣアドレス４０１、ＶＬＡＮ＿ＩＤ４０２及びポートＩＤ４０３を含むエントリから構成される。
【０１６３】
ＭＡＣアドレス４０１は、イーサネットにおけるエンティティを識別するためのアドレスである。ＶＬＡＮ＿ＩＤ４０２は、ＩＥＥＥ  ８０２．１Ｑに規定されるイーサネットフレームにおけるＶＬＡＮの識別子である。異なるＶＬＡＮ  ＩＤを含むフレームは、別のＶＬＡＮとして扱われる。ポートＩＤ４０３は、複数あるポート（入出力ポート１２５及び入出力ポート１２５対応するポート制御部１２１を表す）を識別するための識別子である。
【０１６４】
なお、仮想マシン１３０の場合、ＭＡＣアドレス４０１には仮想的なＭＡＣアドレスが格納され、ポートＩＤ４０３には仮想的なポートＩＤが格納される。
【０１６５】
ポート学習部３１０は、ＭＡＣアドレス４０１及びＶＬＡＮ＿ＩＤ４０２が、フレーム分類／情報抽出部３１１から伝達された送信元ＭＡＣアドレス及びＶＬＡＮ  ＩＤに一致するエントリを検索する。
【０１６６】
一致するエントリが見つからない場合、ポート学習部３１０は、送信元ＭＡＣアドレス及びＶＬＡＮ  ＩＤをそれぞれＭＡＣアドレス４０１及びＶＬＡＮ＿ＩＤ４０２に格納し、伝送されたポート番号をポートＩＤ４０３に格納して新たなエントリを追加する。
【０１６７】
一致するエントリが見つかった場合、ポート学習部３１０は、当該エントリのポートＩＤ４０３を伝達されたポート番号に更新する。
【０１６８】
また、ポート学習部３１０は、ＭＡＣアドレス４０１及びＶＬＡＮ＿ＩＤ４０２が、配送ポート決定部３０９から伝達されたＭＡＣアドレス及びＶＬＡＮ  ＩＤに一致するエントリを検索する。
【０１６９】
検索の結果、一致するエントリが見つかった場合には当該エントリのポートＩＤ４０３を、一致するエントリが見つからなかった場合にはエントリが見つからなかった旨を配送ポート決定部３０９に伝達する。
【０１７０】
転送ポート管理表１２４は、ＩＥＥＥ  ８０２．１ＱにおけるＦｉｌｔｅｒｉｎｇ  Ｄａｔａｂａｓｅに対応する。なお、転送ポート管理表１２４とフレームの情報と照合して当該フレームを転送するポートを決定する機能が実現できれば、転送ポート管理表１２４の構成は必ずしも図４に示す情報のみの構成に限定されない。例えば、入力ポートを識別するポートＩＤと転送先のポートＩＤ４０３との対応表という構成も考えられ、ＶＬＡＮ＿ＩＤ４０２を省いた構成（ＩＥＥＥ  ８０２．１Ｄに規定されるブリッジ機能）としてもよい。
【０１７１】
また、転送ポート管理表１２４は、入力されたフレームの送信元ＭＡＣアドレス、ＶＬＡＮ  ＩＤ及びポート番号（ポートＩＤ）を対応づけたエントリとして追加し、一定時間使用されなかったエントリを削除するポート学習によって管理される。なお、本発明はこれに限るものではなく、例えば、固定的なエントリを作成し、ポート学習の処理を省略してもよい。
【０１７２】
（制御フレーム）
前述したように、制御フレームは、ブリッジ装置１０１及びＥｄｇｅＲｅｌａｙ１２８の制御フレーム生成部３０８によって生成され、フレーム送信部３１５から送信される。制御フレームは、所定の周期、又は特定の状態変化があった場合に送信される。制御フレームの送信契機にはＬＬＤＰとして規定されているものに加え、後述する状態遷移に伴うものも含まれる。
【０１７３】
送信された制御フレームは、対向装置（ブリッジ装置１０１又はＥｄｇｅＲｅｌａｙ１２８）のフレーム受信部３１４が受信し、制御フレーム処理部３０７が当該フレームを処理する。制御フレームは、ＩＥＥＥ  ８０２．１ＡＢに規定されるＬＬＤＰフレームとして構成され、本実施形態では、ＬＬＤＰ  ＴＬＶの１つとしてＩＥＥＥ  ８０２．１Ｑｂｇに規定されるＥＶＢ  ＴＬＶを用いて自装置（ブリッジ装置１０１の各ポート又はＥｄｇｅＲｅｌａｙ１２８）の状態情報を対向装置に伝達する。また、対向装置は、受信した状態情報に基づいて状態遷移の処理を実行する。
【０１７４】
図５は、本発明の第１の実施形態におけるＥＶＢ  ＴＬＶの構成を示す説明図である。
【０１７５】
図５では、ＥＶＢ  ＴＬＶのどの部分にどのような状態情報を埋め込んで伝えるかを示している。
【０１７６】
本発明では、ブリッジ装置１０１はポート毎に状態情報ＲＲＣＡＰと状態情報ＲＲＣＴＲとを保持し、また、ＥｄｇｅＲｅｌａｙ１２８は状態情報ＲＲＲＥＱと状態情報ＲＲＳＴＡＴとを保持する。前述した状態情報の詳細については後述する。
【０１７７】
本発明では、ブリッジ装置１０１は、自装置の制御フレームを送信するポートの状態情報ＲＲＣＡＰ及び状態情報ＲＲＣＴＲを、ＥＶＢ＿Ｂｒｉｄｇｅ＿ｓｔａｔｕｓ５０１に含まれるＲＲＣＡＰ５０４及びＲＲＣＴＲ５０５にそれぞれ埋め込み、対向装置であるＥｄｇｅＲｅｌａｙ１２８の状態情報ＲＲＲＥＱ及び状態情報ＲＲＳＴＡＴをＥＶＢ＿ｓｔａｔｉｏｎ＿ｓｔａｔｕｓ５０２に含まれるＲＲＲＥＱ５０６及びＲＲＳＴＡＴ５０７にそれぞれ埋め込み、さらに、ＥＶＢ＿Ｍｏｄｅ５０３にはＥＶＢ  Ｂｒｉｄｇｅであることを示す値「１」を埋め込んでＥＶＢ  ＴＬＶを生成し、制御フレームとして送信する。
【０１７８】
また、本発明では、ＥｄｇｅＲｅｌａｙ１２８は、対向装置であるブリッジ装置１０１の当該ＥｄｇｅＲｅｌａｙ１２８が接続されたポートの状態情報ＲＲＣＡＰ及び状態情報ＲＲＣＴＲをＥＶＢ＿Ｂｒｉｄｇｅ＿ｓｔａｔｕｓ５０１に含まれるＲＲＣＡＰ５０４及びＲＲＣＴＲ５０５にそれぞれ埋め込み、自装置の状態情報ＲＲＲＥＱ及び状態情報ＲＲＳＴＡＴをＥＶＢ＿ｓｔａｔｉｏｎ＿ｓｔａｔｕｓ５０２に含まれるＲＲＲＥＱ５０６及びＲＲＳＴＡＴ５０７にそれぞれ埋め込み、さらに、ＥＶＢ＿Ｍｏｄｅ５０３にはＥＶＢ  ｓｔａｔｉｏｎであることを示す値「２」を埋め込んでＥＶＢ  ＴＬＶを生成し、制御フレームとして送信する。
【０１７９】
また、ＥｄｇｅＲｅｌａｙ１２８は、対向装置から送信された制御フレームから対向装置（ポート）の状態情報を取得し、取得された状態情報を用いて制御フレームを生成する。なお、対向装置から制御フレームを受信していない場合には、対向装置の状態情報をすべて「０」とした制御フレームが生成される。
【０１８０】
なお、ＩＥＥＥ  ８０２．１Ｑｂｇの標準に規定されるＥＶＢ  ＴＬＶにおいて、図５に挙げたＥＶＢ＿Ｂｒｉｄｇｅ＿ｓｔａｔｕｓ５０１、ＥＶＢ＿ｓｔａｔｉｏｎ＿ｓｔａｔｕｓ５０２、ＥＶＢ＿Ｍｏｄｅ５０３、ＲＲＣＡＰ５０４、ＲＲＣＴＲ５０５、ＲＲＲＥＱ５０６及びＲＲＳＴＡＴ５０７は、標準における同名の情報であるものとし、それ以外の情報はＩＥＥＥ  ８０２．１Ｑｂｇの標準に従うものとする。
【０１８１】
すなわち、状態情報が埋め込まれたＥＶＢ  ＴＬＶは、ＩＥＥＥ  ８０２．１Ｑｂｇの標準に従ったＥＶＢ  ＴＬＶとして扱うことができる。従って、状態情報が埋め込まれたＥＶＢ  ＴＬＶを含む制御フレームはＬＬＤＰフレームであり、ＩＥＥＥ  ８０２．１ＡＢの標準に従うものとする。
【０１８２】
また、本発明において使用される制御フレームは前述したＬＬＤＰフレームに限るものではなく、前述した状態情報を通知することができるフレームであれば、前述の形式に限定されるものではない。例えば、ブリッジ装置１０１は状態情報ＲＲＣＡＰ及び状態情報ＲＲＣＴＲのみを、ＥｄｇｅＲｅｌａｙ１２８は状態情報ＲＲＲＥＱ及び状態情報ＲＲＳＴＡＴのみ含むフレームを送信して、状態情報の伝達に必要な転送量を節約してもよい。
【０１８３】
次に、本発明に用いる状態情報ＲＲＣＡＰ、状態情報ＲＲＣＴＲ、状態情報ＲＲＲＥＱ及び状態情報ＲＲＳＴＡＴの考え方を説明する。
【０１８４】
本発明では、ブリッジ装置１０１は、Ｒｅｆｌｅｃｔｉｖｅ  Ｒｅｌａｙと呼ばれる機能を有する。Ｒｅｆｌｅｃｔｉｖｅ  Ｒｅｌａｙは、イーサネットのブリッジ機能において、フレームを受信したポートから、さらに当該フレームを送信することを認める機能である。
【０１８５】
ＩＥＥＥ  ８０２．１Ｑｂｇでは、状態情報ＲＲＣＡＰの値は、ＥＶＢ  Ｂｒｉｄｇｅ（ブリッジ装置１０１に相当）がＲｅｆｌｅｃｔｉｖｅ  Ｒｅｌａｙの機能を持つ場合には「１」とし、Ｒｅｆｌｅｃｔｉｖｅ  Ｒｅｌａｙの機能を持たない場合には「０」とすること規定されている。本発明では、後述するブリッジ装置１０１のモードに従って、状態情報ＲＲＣＡＰの値を「０」又は「１」に変更する。
【０１８６】
ＩＥＥＥ  ８０２．１Ｑｂｇでは、状態情報ＲＲＣＴＲの値は、ＥＶＢ  ＢｒｉｄｇｅがＲｅｆｌｅｃｔｉｖｅ  Ｒｅｌａｙとして動作している場合には「１」とし、Ｒｅｆｌｅｃｔｉｖｅ  Ｒｅｌａｙとして動作していない場合には「０」とすることが規定されている。本発明でも同様にブリッジ装置１０１がＲｅｆｌｅｃｔｉｖｅ  Ｒｅｌａｙとして動作している場合には値を「１」とし、Ｒｅｆｌｅｃｔｉｖｅ  Ｒｅｌａｙとして動作していない場合には値を「０」とする。
【０１８７】
ＩＥＥＥ  ８０２．１Ｑｂｇでは、状態情報ＲＲＲＥＱの値は、ＥＶＢ  ｓｔａｔｉｏｎ（サーバ装置１０２に相当）のＥｄｇｅ  Ｒｅｌａｙ（ＥｄｇｅＲｅｌａｙ１２８に相当）がＥＶＢ  ＢｒｉｄｇｅにＲｅｆｌｅｃｔｉｖｅ  Ｒｅｌａｙとしての動作を希望する場合には「１」とし、Ｒｅｆｌｅｃｔｉｖｅ  Ｒｅｌａｙとしての動作を希望しない場合には「０」とすることが規定されている。本発明でも同様に、ＥｄｇｅＲｅｌａｙ１２８が、ブリッジ装置１０１にＲｅｆｌｅｃｔｉｖｅ  Ｒｅｌａｙとして動作することを希望する場合には値を「１」とし、Ｒｅｆｌｅｃｔｉｖｅ  Ｒｅｌａｙとして動作することを希望しない場合には値を「０」とする。
【０１８８】
ＩＥＥＥ  ８０２．１Ｑｂｇでは、状態情報ＲＲＳＴＡＴの値は、ＥＶＢ  ｓｔａｔｉｏｎがＥＶＢ  Ｂｒｉｄｇｅの動作を判定し、ＥＶＢ  ＢｒｉｄｇｅがＲｅｆｌｅｃｔｉｖｅ  Ｒｅｌａｙとして動作していないと判定された場合には「０」とし、ＥＶＢ  ＢｒｉｄｇｅがＲｅｆｌｅｃｔｉｖｅ  Ｒｅｌａｙとして動作していると判定された場合には「１」とし、さらに、ＥＶＢ  Ｂｒｉｄｇｅの動作が不明の場合には「２」又は「３」とすることが規定されている。本発明でも同様に、ＥｄｇｅＲｅｌａｙ１２８がブリッジ装置１０１の動作を判定し、ブリッジ装置１０１がＲｅｆｌｅｃｔｉｖｅ  Ｒｅｌａｙとして動作していないと判定された場合には値を「０」とし、ブリッジ装置１０１がＲｅｆｌｅｃｔｉｖｅ  Ｒｅｌａｙとして動作していると判定された場合には値を「１」、さらに、ブリッジ装置１０１の動作が不明の場合には値を「２」とする。
【０１８９】
ブリッジ装置１０１及びＥｄｇｅＲｅｌａｙ１２８の状態情報の考え方は前述の通りだが、これらの状態情報の変更に伴う状態遷移に関しては後述する。
【０１９０】
以下では、状態情報ＲＲＣＡＰ、状態情報ＲＲＣＴＲ、状態情報ＲＲＲＥＱ及び状態情報ＲＲＳＴＡＴを、単に、ＲＲＣＡＰ、ＲＲＣＴＲ、ＲＲＲＥＱ及びＲＲＳＴＡＴとも記載する。
【０１９１】
（ＥｄｇｅＲｅｌａｙ及びブリッジ装置におけるモード及び状態）
次に、ブリッジ装置１０１及びＥｄｇｅＲｅｌａｙ１２８におけるモード及び状態について説明する。
【０１９２】
図６は、本発明の第１の実施形態のＥｄｇｅＲｅｌａｙ１２８におけるモード及び状態遷移を示す説明図である。
【０１９３】
図６において、点線の四角はモードを表し、実線の四角は状態を表し、また、矢印は状態遷移を表す。
【０１９４】
図６に示すように、ＥｄｇｅＲｅｌａｙ１２８は、ＲＲＳＴＡＴ及びＲＲＲＥＱの２つの状態情報の組み合わせに対応して、Ｓ０状態６０４、Ｓ１状態６０５、Ｓ２状態６０６、Ｓ３状態６０７、Ｓ４状態６０８及びＳ５状態６０９の６種類のうちのいずれかの状態を取り得る。
【０１９５】
また、ＥｄｇｅＲｅｌａｙ１２８はそれぞれの状態に対応したモードで動作する。各モードでは、受信フレームの転送時の動作が異なり、１つ又は複数の状態を含む。具体的には、ＥｄｇｅＲｅｌａｙ１２８は、Ｓ０状態６０４の場合にはＶＥＢモード６０１で動作し、Ｓ３状態６０７の場合にはＶＥＰＡモード６０２で動作し、Ｓ１状態６０５、Ｓ２状態６０６、Ｓ４状態６０８及びＳ５状態６０９のいずれかの場合にはＴＲＡＮモード６０３で動作する。
【０１９６】
各モードにおけるＥｄｇｅＲｅｌａｙ１２８の動作については後述する。また、各状態間での遷移についても後述する。
【０１９７】
６種類の状態は、ＲＲＲＥＱ及びＲＲＳＴＡＴに関連づけられている。具体的には、ＲＲＳＴＡＴが「０」かつＲＲＲＥＱが「０」の状態がＳ０状態６０４と、ＲＲＳＴＡＴが「０」かつＲＲＲＥＱが「１」の状態がＳ１状態６０５と、ＲＲＳＴＡＴが「１」かつＲＲＲＥＱが「０」の状態がＳ２状態６０６と、ＲＲＳＴＡＴが「１」かつＲＲＲＥＱが「１」の状態がＳ３状態６０７と、ＲＲＳＴＡＴが「２」かつＲＲＲＥＱが「０」の状態がＳ４状態６０８と、ＲＲＳＴＡＴが「２」かつＲＲＲＥＱが「１」の状態がＳ５状態６０９と関連づけられている。
【０１９８】
前述したように、ＥｄｇｅＲｅｌａｙ１２８は、図５で説明した制御フレームを用いて、ＲＲＲＥＱ及びＲＲＳＴＡＴ、すなわち、ＥｄｇｅＲｅｌａｙ１２８の状態をブリッジ装置１０１に伝達する。
【０１９９】
図７は、本発明の第１の実施形態のブリッジ装置１０１のポートにおけるモード及び状態遷移を示す説明図である。
【０２００】
図７において、点線の四角はモードを表し、実線の四角は状態を表し、また、矢印は状態遷移を表す。
【０２０１】
図７に示すように、ブリッジ装置１０１のポートは、ＲＲＣＡＰ及びＲＲＣＴＲの２つの状態情報の組み合わせに対応して、Ｂ０状態７０３、Ｂ１状態７０４、Ｂ２状態７０５及びＢ３状態７０６の４種類のいずれかの状態をとる。
【０２０２】
４種類の状態は、ＲＲＣＡＰ及びＲＲＣＴＲと関連づけられている。具体的には、ＲＲＣＡＰが「０」かつＲＲＣＴＲが「０」の状態がＢ０状態７０３と、ＲＲＣＡＰが「０」かつＲＲＣＴＲが「１」の状態がＢ１状態７０４と、ＲＲＣＡＰが「１」かつＲＲＣＴＲが「０」の状態がＢ２状態７０５と、ＲＲＣＡＰが「１」かつＲＲＣＴＲが「１」の状態がＢ３状態７０６と関連づけられている。
【０２０３】
また、ブリッジ装置１０１のポートはそれぞれの状態に対応したモードで動作する。各モードでは、受信フレームの転送時の動作が異なり、１つ又は複数の状態を含む。具体的には、ブリッジ装置１０１のポートは、Ｂ０状態７０３又はＢ２状態７０５の場合にはＳＷモード７０１で動作し、Ｂ３状態７０６又はＢ１状態７０４の場合にはＲＲモード７０２で動作する。
【０２０４】
ブリッジ装置１０１は、ポート毎に独立した状態を保持し、かつ、ポート毎に独立したモードで動作する。すなわち、ブリッジ装置１０１の一つのポートと他のポートとは異なる状態又はモードとなってもよい。各モードにおけるブリッジ装置１０１の動作については後述する。また、各状態間における状態遷移についても後述する。
【０２０５】
前述したように、ブリッジ装置１０１は、図５で説明した制御フレームを用いて、各ポートにおけるＲＲＣＡＰ及びＲＲＣＴＲ、すなわち、ブリッジ装置１０１のポートの状態をＥｄｇｅＲｅｌａｙ１２８に伝達する。
【０２０６】
ここで、ＥｄｇｅＲｅｌａｙ１２８のモードと、ブリッジ装置１０１のポートのモードとの関係について説明する。
【０２０７】
基本的に、ＥｄｇｅＲｅｌａｙ１２８のモードは、対向装置であるブリッジ装置１０１のポートのモードと連動する。具体的には、ブリッジ装置１０１のポートがＳＷモード７０１で動作している場合、ＥｄｇｅＲｅｌａｙ１２８はＶＥＢモード６０１で動作し、ブリッジ装置１０１のポートがＲＲモード７０２で動作している場合、ＥｄｇｅＲｅｌａｙ１２８はＶＥＰＡモード６０２で動作する。
【０２０８】
ブリッジ装置１０１のポートのモードが変更される時には、ＥｄｇｅＲｅｌａｙ１２８はＴＲＡＮモード６０３で動作する。詳細は後述するが、ＶＥＢモード６０１の場合、ＥｄｇｅＲｅｌａｙ１２８はＶｉｒｔｕａｌ  Ｅｄｇｅ  Ｂｒｉｄｇｅ（ＶＥＢ）として、すなわち、一般的なネットワークスイッチとして動作する。このとき、ＥｄｇｅＲｅｌａｙ１２８が、仮想マシン１３０−１と仮想マシン１３−２との間の通信に必要なスイッチング処理を実行する。
【０２０９】
一方で、ＶＥＰＡモード６０２の場合、ＥｄｇｅＲｅｌａｙ１２８はＶｉｒｔｕａｌ  Ｅｄｇｅ  Ｐｏｒｔ  Ａｇｇｒｅｇａｔｏｒ（ＶＥＰＡ）として動作する。このとき、仮想マシン１３０−１と仮想マシン１３０−２との間の通信では、ＥｄｇｅＲｅｌａｙ１２８から、一旦、ブリッジ装置１０１にフレームが転送され、ブリッジ装置１０１がスイッチング処理を実行することとなる。
【０２１０】
ブリッジ装置１０１のポートのモードがＳＷモード７０１の場合と、ＲＲモード７０２の場合とでは、動作は以下のような相違点がある。すなわち、ＳＷモード７０１の動作ではフレームを受信したポートに対して当該フレームが転送されないが、ＲＲモード７０２の動作ではフレームを受信したポートに対しても当該フレームが転送されるという違いがある。
【０２１１】
ＳＷモード７０１で動作するブリッジ装置１０１のポートは、ＶＥＢモード６０１で動作するＥｄｇｅＲｅｌａｙ１２８と同じく、一般的なネットワークスイッチとして動作する。ＳＷモード７０１の場合に、フレームを受信したポートに対して当該フレームが転送されないのは、当該ポートに接続された装置が同一フレームを重複して受信することを防ぐためである。
【０２１２】
しかし、当該ポートに接続された装置がＶＥＰＡとして動作している場合、すなわち、ＶＥＰＡモード６０２で動作するＥｄｇｅＲｅｌａｙ１２８が当該ポートに接続されている場合、ＲＲモード７０２で動作する必要がある。これは、ＥｄｇｅＲｅｌａｙ１２８は、ブリッジ装置１０１に転送したフレームがＥｄｇｅＲｅｌａｙ１２８に接続された仮想マシン１３０に転送される必要がある場合に、ブリッジ装置１０１によりＥｄｇｅＲｅｌａｙ１２８に折り返されることを前提として動作するためである。
【０２１３】
すなわち、ＶＥＢモード６０１で動作するＥｄｇｅＲｅｌａｙ１２８はＲＲモード７０２で動作するポートには接続できず、ＶＥＰＡモード６０２で動作するＥｄｇｅＲｅｌａｙ１２８はＳＷモード７０１で動作するポートには接続できない。
【０２１４】
本発明では、ＶＥＢモード６０１とＶＥＰＡモード６０２とを動的に切り替える場合に、過渡的な状態でも正しく通信を継続するためＴＲＡＮモード６０３を導入している。
【０２１５】
ＴＲＡＮモード６０３では、ＶＥＢモード６０１の動作を基本として、ブリッジ装置１０１に接続されたポートから入力されたフレームのうち、送信元アドレスが他のポートによって学習されている場合、又は、他のポートに登録されている場合にはフレームを廃棄し、ポート学習は実行されない。すなわち、ＴＲＡＮモード６０３では、ＥｄｇｅＲｅｌａｙ１２８からブリッジ装置１０１に転送されたフレームが、さらにブリッジ装置１０１からＥｄｇｅＲｅｌａｙ１２８に転送された場合、すなわち、フレームが折り返された場合に、ＥｄｇｅＲｅｌａｙ１２８が当該フレームを廃棄することによって重複フレームの受信を防ぐ。
【０２１６】
そのため、ＴＲＡＮモード６０３で動作するＥｄｇｅＲｅｌａｙ１２８がＲＲモード７０２で動作するポートと接続されても問題がなく、さらに、当該ポートがＳＷモード７０１となった場合には折り返されたフレームは転送されないため、通常のフレーム転送時の問題はなくなる。ただし、ＴＲＡＮモード６０３におけるＥｄｇｅＲｅｌａｙ１２８の動作にも制限がある。
【０２１７】
例えば、サーバ装置１０２−１内においてＴＲＡＮモード６０３で動作するＥｄｇｅＲｅｌａｙ１２８に接続され、仮想マシン１３０−１にフレームを送信していた仮想マシン１３０−２が、サーバ装置１０２−２に移動した場合、移動前と同様に仮想マシン１３０−２が仮想マシン１３０−１宛に送信したフレームはブリッジ装置１０１を経由してＥｄｇｅＲｅｌａｙ１２８に届くため、ＴＲＡＮモード６０３の動作に従って当該フレームが廃棄され、通信が遮断されてしまう。
【０２１８】
本発明では、前述の通信遮断の発生を抑制するため、ＥｄｇｅＲｅｌａｙ１２８のモードを、ＶＥＢモード６０１とＶＥＰＡモード６０２とを切り替える場合にのみ、過渡的なＴＲＡＮモード６０３に変更する。
【０２１９】
ＥｄｇｅＲｅｌａｙ１２８及びブリッジ装置１０１のモードに関しては、各モードでの切り替えを含む動作を後述する。
【０２２０】
次に、図６における状態情報を含む制御フレームをＥｄｇｅＲｅｌａｙ１２８からブリッジ装置１０１に送信する場合の各状態情報の位置づけを説明する。
【０２２１】
Ｓ０状態６０４を通知する制御フレームは、ＥｄｇｅＲｅｌａｙ１２８が現在ＶＥＢモード６０１で動作していることをブリッジ装置１０１に通知する役割がある。
【０２２２】
Ｓ１状態６０５又はＳ５状態６０９を通知する制御フレームは、ＥｄｇｅＲｅｌａｙ１２８が現在ＴＲＡＮモード６０３で動作していることをブリッジ装置１０１に通知し、さらに、ＶＥＰＡモード６０２で動作するために、ＲＲモード７０２で動作するようブリッジ装置１０１に要求する役割がある。
【０２２３】
Ｓ３状態６０７を通知する制御フレームは、ＥｄｇｅＲｅｌａｙ１２８が現在ＶＥＰＡモード６０２で動作していることをブリッジ装置１０１に通知する役割がある。
【０２２４】
Ｓ２状態６０６又はＳ４状態６０８を通知する制御フレームは、ＥｄｇｅＲｅｌａｙ１２８が現在ＴＲＡＮモード６０３で動作していることをブリッジ装置１０１に通知し、さらに、ＶＥＢモード６０１で動作するために、ＳＷモード７０１で動作するようブリッジ装置１０１に要求する役割がある。
【０２２５】
次に、図７における状態情報を含む制御フレームをブリッジ装置１０１からＥｄｇｅＲｅｌａｙ１２８に送信する場合の各状態情報の位置づけを説明する。
【０２２６】
Ｂ０状態７０３を通知する制御フレームは、ブリッジ装置１０１が現在ＳＷモード７０１で動作していることをＥｄｇｅＲｅｌａｙ１２８に通知する役割がある。
【０２２７】
Ｂ２状態７０５を通知する制御フレームは、ブリッジ装置１０１が現在ＳＷモード７０１で動作していることを通知し、さらに、ＲＲモード７０２で動作するために、ＶＥＰＡモード６０２で動作するようＥｄｇｅＲｅｌａｙ１２８に要求する役割がある。
【０２２８】
Ｂ３状態７０６を通知する制御フレームは、ブリッジ装置１０１が現在ＲＲモード７０２で動作していることを通知する役割がある。
【０２２９】
Ｂ１状態７０４を通知する制御フレームは、ブリッジ装置１０１が現在ＲＲモード７０２で動作していることを通知し、さらに、ＳＷモード７０１で動作するために、ＶＥＢモード６０１で動作するようＥｄｇｅＲｅｌａｙ１２８に要求する役割がある。
【０２３０】
以上で説明したように、本発明において、図６及び図７に示した状態情報を含む制御フレームは、各装置の状態を通知し、さらに、接続された装置にモードの遷移を要求する役割がある。
【０２３１】
ＥｄｇｅＲｅｌａｙ１２８及びブリッジ装置１０１は、モードの遷移指示に従って、前述した制御フレームを送信し、制御フレームの受信時に適切なモードとなるように動作する。
【０２３２】
以下、ＥｄｇｅＲｅｌａｙ１２８及びブリッジ装置１０１の動作を以下について説明する。なお、以下の説明においては、変数名は変数に格納された値を表すものとする。
【０２３３】
（ＥｄｇｅＲｅｌａｙの動作）
図８Ａ及び図８Ｂは、本発明の第１の実施形態におけるＥｄｇｅＲｅｌａｙ１２８が実行する処理を説明するフローチャートである。
【０２３４】
ＥｄｇｅＲｅｌａｙ１２８は、起動すると、ハードウェア及び設定の確認等、プログラムの初期化を実行した後、開始状態となる（ステップＳ８０１）。
【０２３５】
状態管理部３０６は、変数「ＲＲＳＴＡＴ」及び変数「ＲＲＲＥＱ」を管理しており、各変数の値の組み合わせに基づいて、Ｓ０状態６０４、Ｓ１状態６０５、Ｓ２状態６０６、Ｓ３状態６０７、Ｓ４状態６０８及びＳ５状態６０９のいずれの状態であるかを管理する。また、状態管理部３０６は、状態遷移が必要な場合に各状態を変更する。
【０２３６】
また、状態管理部３０６は、変数「ＲＲＣＡＰ」及び変数「ＲＲＣＴＲ」を管理しており、各変数の値の組み合わせに基づいて、ＥｄｇｅＲｅｌａｙ１２８に接続されたブリッジ装置１０１のポートの状態がＢ０状態７０３、Ｂ１状態７０４、Ｂ２状態７０５及びＢ３状態７０６のいずれの状態であるかを管理する。なお、状態管理部３０６は、ポートの状態を把握できない場合には、ポートの状態が不明であることを認識できる。
【０２３７】
また、状態管理部３０６は、変数「転送停止状態」を管理し、当該変数の値に基づいて、受信したフレームの転送を停止する転送停止の状態であるか否かを管理する。
【０２３８】
ここで、状態管理部３０６は、初期化においてＳ４状態６０８となるように設定する。また、状態管理部３０６は、初期化において、例えば、変数「ＲＲＣＡＰ」の値を「２」に、変数「ＲＲＣＴＲ」の値を「０」に設定して、ＥｄｇｅＲｅｌａｙ１２８に接続されたブリッジ装置１０１のポートの状態が「不明」とする。また、状態管理部３０６は、初期化において、転送停止の状態ではないとする。
【０２３９】
状態管理部３０６は、開始状態となると、まず、遷移指示を受け付けたか否かを判定する（ステップＳ８０２）。ここで、遷移指示は、ＶＥＢモード６０１への遷移指示又はＶＥＰＡモード６０２への遷移指示のいずれかであり、設定によって又は外部から与えられる。
【０２４０】
なお、ステップＳ８０２の判定では、遷移指示を受け付ける度に１度だけ、遷移指示を受け付けたと判定されるものとする。すなわち、１回の遷移指示に対して、１回だけ判定結果が「ＹＥＳ」となるものとする。このような判定は、例えば、毎回遷移指示の状態を変数等に保存し、前回と今回の遷移指示を比較し、変化があり、かつ今回遷移指示があった場合に限り「ＹＥＳ」とすれば実現できる。
【０２４１】
遷移指示を受け付けたと判定された場合、状態管理部３０６は、遷移指示に関する情報を記録し、ステップＳ８０４に進む（ステップＳ８０３）。具体的には、遷移指示を受け付けたこと、及び、当該遷移指示がＶＥＢモード６０１への遷移指示又はＶＥＰＡモード６０２への遷移指示のいずれであるかを示す変数「遷移指示状態」が記録される。
【０２４２】
状態管理部３０６は、ＥｄｇｅＲｅｌａｙ１２８における状態遷移処理を実行し、ステップＳ８０５に進む（ステップＳ８０４）。なお、ＥｄｇｅＲｅｌａｙ１２８における状態遷移処理の詳細については後述する。
【０２４３】
状態管理部３０６は、状態遷移処理が終了した後、変数「遷移指示状態」を参照して、遷移指示が記録されているか否かを判定する（ステップＳ８０５）。変数「遷移指示状態」にＶＥＢモード６０１への遷移指示又はＶＥＰＡモード６０２への遷移指示を示す値が格納されている場合、遷移指示が記録されていると判定される。
【０２４４】
遷移指示が記録されていないと判定された場合、状態管理部３０６は、ステップＳ８０２に戻り、同様の処理を実行する。
【０２４５】
遷移指示が記録されていると判定された場合、状態管理部３０６は、変数「遷移指示状態」、変数「ＲＲＳＴＡＴ」及び変数「ＲＲＲＥＱ」を参照して、ＶＥＢモード６０１への遷移指示が記録され、かつ、Ｓ０状態６０４であるか否かを判定する（ステップＳ８０６）。
【０２４６】
ステップＳ８０６の判定条件を満たすと判定された場合、状態管理部３０６は、受け付けた遷移指示に対して成功した旨を応答し、ステップＳ８０８に進む（ステップＳ８０７）。応答の方法としては、例えば、入出力装置１１７を介して成功した旨を示す情報を出力し、ポートを介して成功した旨を示す情報を含むフレームを送信することによって応答する方法が考えられる。また、制御フレームによる状態の通知にあわせて当該情報を通知してもよい。なお、遷移指示の応答が必要ない場合には、当該処理は省略してもよい。
【０２４７】
状態管理部３０６は、変数「遷移指示状態」を消去し、ステップＳ８０２に戻り同様の処理を実行する（ステップＳ８０８）。ここで、変数「遷移指示状態」の消去方法としては、例えば、遷移指示を示す値とは異なる値を代入する。なお、開始状態では変数「遷移指示状態」は消去されている状態とする。
【０２４８】
ステップＳ８０６において、ステップＳ８０６の判定条件を満たさないと判定された場合、状態管理部３０６は、変数「遷移指示状態」、変数「ＲＲＳＴＡＴ」及び変数「ＲＲＲＥＱ」を参照し、ＶＥＰＡモード６０２への遷移指示が記録され、かつ、Ｓ３状態６０７であるか否かを判定する（ステップＳ８０９）。
【０２４９】
ステップＳ８０９の判定条件を満たすと判定された場合、状態管理部３０６は、ステップＳ８０７に進む。
【０２５０】
ステップＳ８０９の判定条件を満たさないと判定された場合、状態管理部３０６は、変数「遷移指示状態」、変数「ＲＲＳＴＡＴ」及び変数「ＲＲＲＥＱ」を参照し、ＶＥＰＡモード６０２への遷移指示が記録され、かつ、Ｓ２状態６０６であるか否かを判定する（ステップＳ８１０）。応答の方法は、ステップＳ８０８と同一の方法を用いる。なお、遷移指示の応答が必要ない場合には、当該処理は省略してもよい。
【０２５１】
ステップＳ８１０の判定条件を満たさないと判定された場合、状態管理部３０６は、ステップＳ８０２に戻り同様の処理を実行する。
【０２５２】
ステップＳ８１０の判定結果を満たすと判定された場合、状態管理部３０６は、遷移指示に対して失敗した旨を応答し、ステップＳ８０８に進む（ステップＳ８１１）。
【０２５３】
ステップＳ８０２において、遷移指示を受け付けていないと判定された場合、状態管理部３０６は、フレーム分類／情報抽出部３１１から伝達された情報に基づいて、ポートがフレームを受信したか否かを判定する（ステップＳ８１２）。
【０２５４】
フレームを受信したと判定された場合、状態管理部３０６は、フレーム分類／情報抽出部３１１から伝達された情報に基づいて、当該フレームが制御フレームであるか否かを判定する（ステップＳ８１３）。
【０２５５】
制御フレームを受信したと判定された場合、状態管理部３０６は、ステップＳ８０４に進む。このとき、状態管理部３０６は、制御フレーム処理部３０７から受信した制御フレームの内容を取得し、取得された内容に基づいて変数「ＲＲＣＡＰ」及び変数「ＲＲＣＴＲ」に値を設定する。
【０２５６】
制御フレームを受信していないと判定された場合、状態管理部３０６は、変数「転送停止状態」を参照し、転送停止の状態であるか否かを判定する（ステップＳ８１４）。
【０２５７】
転送停止の状態であると判定された場合、状態管理部３０６は、フレーム分類／情報抽出部３１１から伝達された情報に基づいて、ステップＳ８１２においてフレームを受信したポートが、ブリッジ装置１０１に接続されているポート、すなわち、ＵＰＬＩＮＫポートであるか否かを判定する（ステップＳ８１５）。
【０２５８】
フレームを受信したポートがＵＰＬＩＮＫポートであると判定された場合、状態管理部３０６は、処理対象であるフレームに対して、ＥｄｇｅＲｅｌａｙ１２８におけるフレーム転送処理を実行し、ステップ８１７に進む（ステップＳ８１６）。なお、ＥｄｇｅＲｅｌａｙ１２８におけるフレーム転送処理の詳細については後述する。
【０２５９】
状態管理部３０６は、フレーム転送処理の実行後、配送ポート決定部３０９から各ポートに配送されたフレームがあるか否かを判定する（ステップＳ８１７）。
【０２６０】
ポートに配送されたフレームがないと判定された場合、状態管理部３０６は、ステップ８０２に戻り同様の処理を実行する。
【０２６１】
ポートに配送されたフレームがあると判定された場合、状態管理部３０６は、送受信制御部３１３に配送されたフレームの送信を指示し、その後、ステップＳ８０２に戻り同様の処理を実行する（ステップＳ８１８）。
【０２６２】
ステップＳ８１４において、転送停止の状態でないと判定された場合、状態管理部３０６は、フレーム分類／情報抽出部３１１からから伝達された情報に基づいて、フレーム蓄積部３１２に蓄積されたフレームがあるか否かを判定する（ステップＳ８１９）。
【０２６３】
蓄積されたフレームがないと判定された場合、状態管理部３０６は、ステップＳ８１６に進む。
【０２６４】
蓄積されたフレームがあると判定された場合、状態管理部３０６は、蓄積されたフレーム、受信したフレームの順に転送処理の対象とし、ステップＳ８１６に進む（ステップＳ８２０）。
【０２６５】
ステップＳ８１２において、フレームを受信していないと判定された場合、状態管理部３０６は、変数「転送停止状態」を参照し、転送停止の状態であるか否かを判定する（ステップＳ８２１）。
【０２６６】
転送停止の状態であると判定された場合、状態管理部３０６は、ステップＳ８０２に戻り同様の処理を実行する。
【０２６７】
転送停止の状態でないと判定された場合、状態管理部３０６は、フレーム分類／情報抽出部３１１から伝達された情報に基づいて、フレーム蓄積部３１２に蓄積されたフレームがあるか否かを判定する（ステップＳ８２２）。
【０２６８】
蓄積されたフレームがないと判定された場合、状態管理部３０６は、ステップＳ８０２に戻り同様の処理を実行する。
【０２６９】
蓄積されたフレームがあると判定された場合、状態管理部３０６は、フレーム蓄積部３１２に蓄積されたフレームを処理対象とし、ステップＳ８１６に進む（ステップＳ８２３）。
【０２７０】
ステップＳ８１５において、フレームを受信したポートがＵＰＬＩＮＫポートでないと判定された場合、状態管理部３０６は、現在転送停止の状態であるため、フレーム受信部３１４に受信フレームをそのままフレーム蓄積部３１２に蓄積するように指示し、ステップ８０２に戻り同様の処理を実行する（ステップＳ８２４）。
【０２７１】
以上で説明したＥｄｇｅＲｅｌａｙ１２８が実行する処理の概略は以下のようになる。
【０２７２】
まず、ＥｄｇｅＲｅｌａｙ１２８は初期化処理を実行する。そして、遷移指示がある場合（ステップＳ８０２がＹＥＳ）、ＥｄｇｅＲｅｌａｙ１２８は状態遷移処理を実行する（ステップＳ８０４）。ＥｄｇｅＲｅｌａｙ１２８は、処理の結果が出た場合（ステップＳ８０６、ステップＳ８０９、ステップＳ８１０）、応答を返し（ステップＳ８０７、ステップＳ８１１）、最初に戻る（ステップＳ８０２）。
【０２７３】
遷移指示がなく、かつ、制御フレームを受信した場合（ステップＳ８１３がＹＥＳ）、ＥｄｇｅＲｅｌａｙ１２８は、状態遷移処理を実行し（ステップＳ８０４）、その後、最初に戻る（ステップＳ８０２）。
【０２７４】
遷移指示がなく、制御フレーム以外のフレームを受信し、かつ、転送停止の状態である場合（ステップＳ８１４がＹＥＳ）、ＥｄｇｅＲｅｌａｙ１２８は、ＵＰＬＩＮＫポート以外のポートについては、受信フレームを蓄積する（ステップＳ８２４）。一方、転送停止の状態であり、かつ、フレームを受信したポートがＵＰＬＩＮＫポートである場合、又は、転送停止の状態でない場合、ＥｄｇｅＲｅｌａｙ１２８は、フレーム転送処理を実行し（ステップＳ８１６）、実行結果に基づいてフレームを送信する（ステップＳ８１８）。
【０２７５】
遷移指示がなく、フレームを受信しておらず、かつ、転送停止の状態において蓄積されたフレームがある場合（ステップＳ８２２がＹＥＳ）、ＥｄｇｅＲｅｌａｙ１２８は、蓄積フレームを処理対象とし（ステップＳ８２１）、フレーム転送処理を実行し（ステップＳ８１６）、実行結果に基づいてフレームを送信する（ステップＳ８１８）。
【０２７６】
（フレーム転送処理）
次に、ＥｄｇｅＲｅｌａｙ１２８におけるフレーム転送処理について説明する。
【０２７７】
図９は、本発明の第１の実施形態のＥｄｇｅＲｅｌａｙ１２８におけるフレーム転送処理を説明するフローチャートである。
【０２７８】
ＥｄｇｅＲｅｌａｙ１２８におけるフレーム転送処理の開始が指示されると、開始状態となり処理が開始される（ステップＳ９０１）。
【０２７９】
ＥｄｇｅＲｅｌａｙ１２８は、現在の状態がＳ０状態６０４、すなわち、ＶＥＢモード６０１であるか否かを判定する（ステップＳ９０２）。具体的には、状態管理部３０６が、変数「ＲＲＳＴＡＴ」及び変数「ＲＲＲＥＱ」を参照して、現在の状態がＶＥＢモード６０１であるか否かを判定する。
【０２８０】
現在の状態がＶＥＢモードであると判定された場合、ＥｄｇｅＲｅｌａｙ１２８は、ポート学習を実行し、ステップＳ９０４に進む（ステップＳ９０３）。具体的には、状態管理部３０６がポート学習部３１０にポート学習の実行を指示し、当該指示を受け付けたポート学習部３１０は、対象フレームの送信元ＭＡＣアドレス及びＶＬＡＮ  ＩＤを用いてポート学習を実行する。
【０２８１】
次に、ＥｄｇｅＲｅｌａｙ１２８は、配送ポートを検索する（ステップＳ９０４）。具体的には、配送ポート決定部３０９が、対象フレームの宛先ＭＡＣアドレス及びＶＬＡＮ  ＩＤに対応するポート、すなわち、学習済みのポートの検索をポート学習部３１０に指示する。対応するポートが見つかった場合には、当該ポート（１つ以上）が配送ポートに決定され、また、対応するポートが見つからなかった場合には、全ポートを配送ポートに決定される。なお、ポート学習処理の省略時において、対応ポートが見つからないフレームを受信した場合やマルチキャストフレームを受信した場合等に、特定の宛先を持つフレームに対して配送ポートを０個とし、当該フレームを廃棄するようにして転送帯域等の資源を節約してもよい。
【０２８２】
ＥｄｇｅＲｅｌａｙ１２８は、対象フレームを受信したポートを配送ポートから除外して、配送ポートを決定し、ステップＳ９０６に進む（ステップＳ９０５）。具体的には、配送ポート決定部３０９が、ステップＳ９０４において決定された配送ポートのうち、フレーム分類／情報抽出部３１１から伝達された対象フレームを受信したポートを除外し、残りのポートを新たな配送ポートとして決定する。
【０２８３】
ＥｄｇｅＲｅｌａｙ１２８は、配送ポートからフレームを配送して、処理を終了する（ステップＳ９０６、ステップＳ９０７）。具体的には、配送ポート決定部３０９が、決定された配送ポートに対象フレームを配送する。
【０２８４】
ステップＳ９０２において、現在の状態がＶＥＢモードでないと判定された場合、ＥｄｇｅＲｅｌａｙ１２８は、現在の状態がＳ３状態６０７、すなわち、ＶＥＰＡモードであるか否かを判定する（ステップＳ９０８）。具体的には、状態管理部３０６が、変数「ＲＲＳＴＡＴ」及び変数「ＲＲＲＥＱ」を参照して、現在の状態がＳ３状態６０７であるか否かを判定する。
【０２８５】
現在の状態がＶＥＰＡモードであると判定された場合、ＥｄｇｅＲｅｌａｙ１２８は、フレームを受信したポートがブリッジ装置１０１に接続されているポート、すなわち、ＵＰＬＩＮＫポートであるか否かを判定する（ステップＳ９０９）。具体的には、状態管理部３０６が、フレーム分類／情報抽出部３１１から伝達された情報に基づいて、対象フレームを受信したポートがＵＰＬＩＮＫポートであるか否かを判定する。
【０２８６】
対象フレームを受信したポートがＵＰＬＩＮＫポートであると判定された場合、ＥｄｇｅＲｅｌａｙ１２８は、ステップＳ９０４に進む。
【０２８７】
対象フレームを受信したポートがＵＰＬＩＮＫポートでないと判定された場合、ＥｄｇｅＲｅｌａｙ１２８は、ポート学習を実行し、ステップＳ９１１に進む（ステップＳ９１０）。具体的には、状態管理部３０６が、ポート学習部３１０にポート学習の実行を指示し、当該指示を受け付けたポート学習部３１０が対象フレームの送信元ＭＡＣアドレス及びＶＬＡＮ  ＩＤを用いてポート学習を実行する。
【０２８８】
ＥｄｇｅＲｅｌａｙ１２８は、ポート学習の実行後、配送ポートを決定してステップＳ９０６に進む（ステップＳ９１１）。具体的には、配送ポート決定部３０９が、ＵＰＬＩＮＫポートのみを配送ポートとして決定する。
【０２８９】
ステップＳ９０８において、現在の状態がＶＥＰＡモードでない、すなわち、ＴＲＡＮモードであると判定された場合、ＥｄｇｅＲｅｌａｙ１２８は、対象フレームを受信したポートがブリッジ装置１０１に接続されているポート、すなわち、ＵＰＬＩＮＫポートであるか否かを判定する（ステップＳ９１２）。具体的には、配送ポート決定部３０９が、フレーム分類／情報抽出部３１１から伝達された情報に基づいて、対象フレームを受信したポートがＵＰＬＩＮＫポートであるか否かを判定する。
【０２９０】
対象フレームを受信したポートがＵＰＬＩＮＫポートでないと判定された場合、ＥｄｇｅＲｅｌａｙ１２８は、ステップＳ９０３に進む。
【０２９１】
対象フレームを受信したポートがＵＰＬＩＮＫポートであると判定された場合、ＥｄｇｅＲｅｌａｙ１２８は、送信元アドレスが登録済みであるか否かを判定する（ステップＳ９１３）。具体的には、配送ポート決定部３０９が、ポート学習部３１０に対象フレームの送信元アドレス及びＶＬＡＮ  ＩＤに基づいて学習されているポートの検索を指示し、当該ポートが見つかったか否かを判定する。送信元アドレスが登録済みである場合、ＥｄｇｅＲｅｌａｙ１２８が接続する装置（仮想マシン１３０）から送信されたフレームであることを示す。
【０２９２】
送信元アドレスが登録済みでないと判定された場合、ＥｄｇｅＲｅｌａｙ１２８は、ステップＳ９０３に進む。
【０２９３】
送信元アドレスが登録済みであると判定された場合、ＥｄｇｅＲｅｌａｙ１２８は、フレームを廃棄して、処理を終了する（ステップＳ９１４）。具体的には、配送ポート決定部３０９が、送受信制御部３１３に対象フレームを廃棄するように指示する。
【０２９４】
以上で説明したように、ＥｄｇｅＲｅｌａｙ１２８におけるフレーム転送処理は、モードによって異なる。処理の概要を示すと以下の通りである。
【０２９５】
まず、ＥｄｇｅＲｅｌａｙ１２８は、どのモードで動作しているかを判定する（ステップＳ９０２、ステップＳ９０８）。
【０２９６】
ＶＥＢモード６０１で動作している場合、ＥｄｇｅＲｅｌａｙ１２８は、ポート学習を実行し（ステップＳ９０３）、配送ポートの検索結果から受信ポート以外のポートを配送ポートに決定し（ステップＳ９０４、ステップＳ９０５）、当該配送ポートにフレームを配送する（ステップＳ９０６）。
【０２９７】
ＶＥＰＡモード６０２で動作している場合、ＥｄｇｅＲｅｌａｙ１２８は、ＵＰＬＩＮＫポートからフレームを受信すると（ステップＳ９０９がＹＥＳ）、ポート学習は実行せず、ＶＥＢモード６０１の場合と同様にフレームを配送する（ステップＳ９０４、ステップＳ９０５、ステップＳ９０６）。一方、ＶＥＰＡモード６０２で動作している場合に、ＵＰＬＩＮＫポート以外のポートからフレームを受信すると、ＥｄｇｅＲｅｌａｙ１２８は、ポート学習を実行し（ステップＳ９１０）、ＵＰＬＩＮＫポートにフレームを配送する（ステップＳ９１１、ステップＳ９０６）。
【０２９８】
ＴＲＡＮモード６０３で動作している場合、ＵＰＬＩＮＫポートからフレームを受信し、かつ、非ＵＰＬＩＮＫポートにおけるポート学習の結果から、送信元アドレスが非ＵＰＬＩＮＫポートに接続されていると判明している場合は、ＥｄｇｅＲｅｌａｙ１２８は、フレーム廃棄する（ステップＳ９１４）。一方、それ以外の場合には、ＥｄｇｅＲｅｌａｙ１２８は、ＶＥＢモード６０１と同様の処理を実行する。
【０２９９】
（状態遷移処理）
次に、ステップＳ８０５において実行される、ＥｄｇｅＲｅｌａｙ１２８における状態遷移処理について説明する。
【０３００】
図１０Ａから図１０Ｆは、本発明の実施形態のＥｄｇｅＲｅｌａｙ１２８における状態遷移処理を説明するフローチャートである。
【０３０１】
ＥｄｇｅＲｅｌａｙ１２８の状態の取得、及び、ブリッジ装置１０１のポートの状態情報を含む制御フレームの受信は、図８において説明したため以下では省略する。
【０３０２】
なお、ＥｄｇｅＲｅｌａｙ１２８の状態の変更は、変数「ＲＲＳＴＡＴ」及び変数「ＲＲＲＥＱ」の値を変更することによって実現される。したがって、ＥｄｇｅＲｅｌａｙ１２８の状態が変更された場合には、変数「ＲＲＳＴＡＴ」及び変数「ＲＲＲＥＱ」の値が変更されたことを意味する。
【０３０３】
また、状態管理部３０６は変数「遷移待機開始時刻」及び「転送停止開始時刻」を保持し、これらの変数は、状態遷移処理の終了後、再び、状態遷移処理が実行される場合に、同一の値を参照できるものとする。
【０３０４】
さらに、状態管理部３０６は設定「遷移待機時間」及び設定「受信待機時間」を保持する。
【０３０５】
また、変数「転送停止状態」及び変数「遷移指示状態」は、図８において説明した変数と同一のものである。
【０３０６】
なお、以下で説明する状態遷移処理は、遷移指示を受け付け又は制御フレームの受信を契機に実行される。以下の説明において、「状態情報を含む制御フレームを受信した」という表現は、状態遷移処理の契機となる制御フレームに状態情報（Ｂ０状態７０３、Ｂ１状態７０４、Ｂ２状態７０５又はＢ３状態７０６）が含まれていることを表すものとする。また、状態管理部３０６は、制御フレームの内容に従って変数「ＲＲＣＡＰ」及び変数「ＲＲＣＴＲ」を更新し、変数「ＲＲＣＡＰ」及び変数「ＲＲＣＴＲ」を参照してブリッジ装置１０１の状態情報を取得できる。
【０３０７】
ＥｄｇｅＲｅｌａｙ１２８における状態遷移処理が開始されると（ステップＳ１００１）、状態管理部３０６は、変数「転送停止状態」を参照して、転送停止の状態であるか否かを判定する（ステップＳ１００２）。
【０３０８】
なお、図８で説明したように、遷移指示又は制御フレームの受信を契機に状態遷移処理が開始される。
【０３０９】
状態管理部３０６は、制御フレームに含まれる情報に従って変数「ＲＲＣＡＰ」及び変数「ＲＲＣＴＲ」を更新し、また、変数「ＲＲＣＡＰ」及び変数「ＲＲＣＴＲ」を参照することによってブリッジ装置１０１におけるポートの状態情報を取得できる。
【０３１０】
転送停止の状態であると判定された場合、状態管理部３０６は、ステップＳ１０２１に進む。
【０３１１】
転送停止の状態でないと判定された場合、状態管理部３０６は、Ｂ０状態７０３を含む制御フレームを受信したか否かを判定する（ステップＳ１００３）。
【０３１２】
Ｂ０状態７０３を含む制御フレームを受信していないと判定された場合、状態管理部３０６は、ステップＳ１０３１に進む。
【０３１３】
Ｂ０状態７０３を含む制御フレームを受信したと判定された場合、状態管理部３０６は、現在のＥｄｇｅＲｅｌａｙ１２８の状態がＳ２状態６０６又はＳ４状態６０８のいずれかに該当するか否かを判定する（ステップＳ１００４）。
【０３１４】
ステップＳ１００４の判定条件を満たすと判定された場合、状態管理部３０６は、ＥｄｇｅＲｅｌａｙ１２８の状態をＳ０状態６０４に変更し、ステップＳ１００６に進む（ステップＳ１００５）。
【０３１５】
状態管理部３０６は、現在の状態を通知するための状態情報を含む制御フレームを送信し、処理を終了する（ステップＳ１００６、ステップＳ１００７）。具体的には、状態管理部３０６は、制御フレームの生成を制御フレーム生成部３０８に指示し、生成された制御フレームをブリッジ装置１０１に送信する。
【０３１６】
ステップＳ１００４において、ステップＳ１００４の判定条件を満たさないと判定された場合、状態管理部３０６は、現在のＥｄｇｅＲｅｌａｙ１２８の状態がＳ５状態６０９であるか否かを判定する（ステップＳ１００８）。
【０３１７】
ステップＳ１００８の判定条件を満たすと判定された場合、状態管理部３０６は、ＥｄｇｅＲｅｌａｙ１２８の状態をＳ１状態６０５に変更し、ステップＳ１０１０に進む（ステップＳ１００９）。
【０３１８】
状態管理部３０６は、現在の時刻を変数「遷移待機開始時刻」に保存し、ステップＳ１００６に進む（ステップＳ１０１０）。
【０３１９】
ステップＳ１００８において、ステップＳ１００８の判定条件を満たさないと判定された場合、状態管理部３０６は、現在のＥｄｇｅＲｅｌａｙ１２８の状態がＳ３状態６０７であるか否かを判定する（ステップＳ１０１１）。
【０３２０】
ステップＳ１０１１の判定条件を満たすと判定された場合、状態管理部３０６は、ＥｄｇｅＲｅｌａｙ１２８の状態をＳ２状態６０６に変更し、ステップ１０１０に進む（ステップＳ１０１２）。
【０３２１】
ステップＳ１０１１の判定条件を満たさないと判定された場合、状態管理部３０６は、現在のＥｄｇｅＲｅｌａｙ１２８の状態がＳ１状態６０５であるか否かを判定する（ステップＳ１０１３）。
【０３２２】
ステップＳ１０１３の判定条件を満たさないと判定された場合、すなわち、現在のＥｄｇｅＲｅｌａｙ１２８の状態がＳ０状態６０４の場合、状態管理部３０６は、処理を終了する（ステップＳ１００７）。
【０３２３】
ステップＳ１０１３の判定条件を満たすと判定された場合、状態管理部３０６は、遷移待機時間に設定された時間を経過したか否かを判定する（ステップＳ１０１４）。
【０３２４】
具体的には、状態管理部３０６は、現在の時刻から変数「遷移待機開始時刻」の時刻を減算して時刻差を算出し、算出された時刻差が設定「遷移待機時間」の値より大きいか否かを判定する。算出された時刻差が設定「遷移待機時間」の値より大きい場合には、遷移待機時間を経過したと判定される。
【０３２５】
遷移待機時間に設定された時間を経過したと判定された場合、状態管理部３０６は、ステップＳ１０１２に進む。一方、遷移待機時間に設定された時間を経過したと判定された場合、状態管理部３０６は、処理を終了する（ステップＳ１００７）。
【０３２６】
ステップＳ１００２において、転送停止の状態であると判定された場合、状態管理部３０６は、受信待機時間を経過したか否かを判定する（ステップＳ１０２１）。
【０３２７】
具体的には、状態管理部３０６は、現在の時刻から変数「転送停止開始時刻」の時刻を減算して時刻差を算出し、算出された時刻差が設定「受信待機時間」の値より大きいか否かを判定する。算出された時刻差が設定「受信待機時間」の値より大きい場合には、受信待機時間を経過したと判定される。
【０３２８】
受信待機時間を経過していないと判定された場合、状態管理部３０６は、処理を終了する（ステップＳ１００７）。
【０３２９】
受信待機時間を経過したと判定された場合、状態管理部３０６は、現在のＥｄｇｅＲｅｌａｙ１２８の状態がＳ３状態６０７であるか否かを判定する（ステップＳ１０２３）。
【０３３０】
ステップＳ１０２３の判定条件を満たすと判定された場合、状態管理部３０６は、ＥｄｇｅＲｅｌａｙ１２８の状態をＳ２状態６０６に変更し、ステップＳ１０２２Ａに進む（ステップＳ１０２４）。
【０３３１】
そして、状態管理部３０６は、転送停止の状態を解除し、ステップＳ１０１０に進む（ステップＳ１０２２Ａ）。具体的には、変数「転送停止状態」に、転送停止の状態以外の状態を示す値が設定される。
【０３３２】
ステップＳ１０２３の判定条件を満たさないと判定された場合、状態管理部３０６は、ＥｄｇｅＲｅｌａｙ１２８の状態をＳ３状態６０７に変更し、ステップＳ１０２２Ｂに進む（ステップＳ１０２５）。
【０３３３】
そして、状態管理部３０６は、転送停止の状態を解除し、ステップＳ１００６に進む（ステップＳ１０２２Ｂ）。具体的には、変数「転送停止状態」に、転送停止の状態以外の状態を示す値が設定される。
【０３３４】
ステップＳ１００３において、ステップＳ１００３の判定条件を満たさないと判定された場合、状態管理部３０６は、Ｂ１状態７０４を含む制御フレームを受信し、又は、ＶＥＢモード６０１への遷移指示を受け付けたか否かを判定する（ステップＳ１０３１）。
【０３３５】
なお、状態管理部３０６は、変数「遷移指示状態」を参照することによって、ＶＥＢモード６０１への遷移指示を受け付けたか否かを判定できる。また、少なくともいずれかの条件に該当する場合には、ステップＳ１０３１の判定条件を満たすと判定される。
【０３３６】
ステップＳ１０３１の判定条件を満たさないと判定された場合、状態管理部３０６は、ステップＳ１０４１に進む。
【０３３７】
ステップＳ１０３１の判定条件を満たすと判定された場合、状態管理部３０６は、現在のＥｄｇｅＲｅｌａｙ１２８の状態がＳ３状態６０７であるか否かを判定する（ステップＳ１０３２）。
【０３３８】
ステップＳ１０３２の判定条件を満たすと判定された場合、状態管理部３０６は、ステップＳ１０６１に進む。
【０３３９】
ステップＳ１０３２の判定条件を満たさないと判定された場合、状態管理部３０６は、現在のＥｄｇｅＲｅｌａｙ１２８の状態がＳ１状態６０５、Ｓ４状態６０８又はＳ５状態６０９のいずれかに該当するか否かを判定する（ステップＳ１０３３）。
【０３４０】
現在のＥｄｇｅＲｅｌａｙ１２８の状態が、Ｓ１状態６０５、Ｓ４状態６０８又はＳ５状態６０９のいずれかに該当する場合には、ステップＳ１０３３の判定条件を満たすと判定される。
【０３４１】
ステップＳ１０３３の判定条件を満たさないと判定された場合、状態管理部３０６は、ステップＳ１００６に進む。
【０３４２】
ステップＳ１０３３の判定条件を満たすと判定された場合、状態管理部３０６は、Ｂ１状態７０４を含む制御フレームを受信し、又は、ＥｄｇｅＲｅｌａｙ１２８の状態がＳ１状態６０５であるか否かを判定する（ステップＳ１０３４）。少なくともいずれかの条件に該当する場合には、ステップＳ１０３４の判定条件を満たすと判定される。
【０３４３】
ステップＳ１０３４の判定条件を満たさないと判定された場合、状態管理部３０６は、ステップＳ１０３６に進む。
【０３４４】
ステップ１０３４の判定条件を満たすと判定された場合、状態管理部３０６は、ＥｄｇｅＲｅｌａｙ１２８の状態をＳ２状態６０６に変更し、ステップＳ１０１０に進む（ステップＳ１０３５）。
【０３４５】
ステップＳ１０３４の判定条件を満たさないと判定された場合、状態管理部３０６は、現在のＥｄｇｅＲｅｌａｙ１２８の状態がＳ５状態６０９であるか否かを判定する（ステップＳ１０３６）。
【０３４６】
ステップＳ１０３６の判定条件を満たさないと判定された場合、状態管理部３０６は、ステップＳ１００６に進む。
【０３４７】
ステップＳ１０３６の判定条件を満たすと判定された場合、状態管理部３０６は、ＥｄｇｅＲｅｌａｙ１２８の状態をＳ４状態６０８に変更し、ステップＳ１０１０に進む（ステップＳ１０３７）。
【０３４８】
ステップＳ１０３１において、ステップＳ１０３１の判定条件を満たさないと判定された場合、状態管理部３０６は、Ｂ２状態７０５を含む制御フレームを受信し、又は、ＶＥＰＡモード６０２への遷移指示を受け付けたか否かを判定する（ステップＳ１０４１）。なお、状態管理部３０６は、変数「遷移指示状態」を参照することによって、ＶＥＰＡモード６０２への遷移指示を受け付けたか否かを判定できる。少なくともいずれかの条件に該当する場合には、ステップＳ１０４１の判定条件を満たすと判定される。
【０３４９】
ステップＳ１０４１の判定条件を満たさないと判定された場合、状態管理部３０６は、ステップ１０５１に進む。
【０３５０】
ステップＳ１０４１の判定条件を満たすと判定された場合、状態管理部３０６は、現在のＥｄｇｅＲｅｌａｙ１２８の状態がＳ０状態６０４、Ｓ２状態６０６、Ｓ４状態６０８又はＳ５状態６０９のいずれかに該当するか否かを判定する（ステップＳ１０４２）。
【０３５１】
現在のＥｄｇｅＲｅｌａｙ１２８の状態が、Ｓ０状態６０４、Ｓ２状態６０６、Ｓ４状態６０８又はＳ５状態６０９のいずれかに該当する場合には、ステップＳ１０４２の判定条件を満たすと判定される。
【０３５２】
ステップＳ１０４２の判定条件を満たさないと判定された場合、状態管理部３０６は、ステップＳ１００６に進む。
【０３５３】
ステップＳ１０４２の判定条件を満たすと判定された場合、状態管理部３０６は、Ｂ２状態７０５を含む制御フレームを受信し、又は、ＥｄｇｅＲｅｌａｙ１２８の状態がＳ０状態６０４若しくはＳ２状態６０６のいずれかに該当するか否かを判定する（ステップＳ１０４３）。少なくともいずれかの条件に該当する場合には、ステップＳ１０４３の判定条件を満たすと判定される。
【０３５４】
ステップＳ１０４３の判定条件を満たすと判定された場合、状態管理部３０６は、ＥｄｇｅＲｅｌａｙ１２８の状態をＳ１状態６０５に変更し、ステップＳ１０１０に進む（ステップＳ１０４４）。
【０３５５】
ステップＳ１０４３の判定条件を満たさないと判定された場合、状態管理部３０６は、現在のＥｄｇｅＲｅｌａｙ１２８の状態がＳ４状態６０８であるか否かを判定する（ステップＳ１０４５）。ステップＳ１０４５の判定条件を満たさないと判定された場合、状態管理部３０６は、ステップＳ１００６に進む。
【０３５６】
ステップＳ１０４５の判定条件を満たすと判定された場合、状態管理部３０６は、ＥｄｇｅＲｅｌａｙ１２８の状態をＳ５状態６０９に変更し、ステップＳ１０１０に進む（ステップＳ１０４６）。
【０３５７】
ステップＳ１０４１において、ステップＳ１０４１の判定条件を満たさないと判定された場合、すなわち、Ｂ３状態７０６を含む制御フレームを受信したと判定された場合、状態管理部３０６は、現在のＥｄｇｅＲｅｌａｙ１２８の状態がＳ１状態６０５又はＳ５状態６０９のいずれかに該当するか否かを判定する（ステップＳ１０５１）。
【０３５８】
ステップＳ１０５１の判定条件を満たさないと判定された場合、状態管理部３０６は、ステップＳ１０６１に進む。
【０３５９】
ステップＳ１０５１の判定条件を満たすと判定された場合、状態管理部３０６は、現在のＥｄｇｅＲｅｌａｙ１２８の状態がＳ４状態６０８であるか否かを判定する（ステップＳ１０５２）。
【０３６０】
ステップＳ１０５２の判定条件を満たすと判定された場合、状態管理部３０６は、ＥｄｇｅＲｅｌａｙ１２８の状態をＳ２状態６０６に変更し、ステップＳ１０１０に進む（ステップＳ１０５３）。
【０３６１】
ステップＳ１０５２の判定条件を満たさないと判定された場合、状態管理部３０６は、ＥｄｇｅＲｅｌａｙ１２８の状態がＳ０状態６０４であるか否かを判定する（ステップＳ１０５４）。
【０３６２】
ステップＳ１０５４の判定条件を満たすと判定された場合、状態管理部３０６は、ＥｄｇｅＲｅｌａｙ１２８の状態をＳ１状態６０５に変更し、ステップＳ１０１０に進む（ステップＳ１０５５）。
【０３６３】
ステップＳ１０５５の判定条件を満たさないと判定された場合、状態管理部３０６は、現在のＥｄｇｅＲｅｌａｙ１２８の状態がＳ２状態６０６であるか否かを判定する（ステップＳ１０５６）。
【０３６４】
ステップ１０５６の判定条件を満たさないと判定された場合、すなわち、現在のＥｄｇｅＲｅｌａｙ１２８の状態がＳ３状態６０７であると判定された場合、状態管理部３０６は、処理を終了する（ステップＳ１００７）。
【０３６５】
ステップＳ１０５６の判定条件を満たすと判定された場合、状態管理部３０６は、遷移待機時間を経過したか否かを判定する（ステップＳ１０５７）。なおステップＳ１０５７の処理は、ステップ１０１４と同一である。すなわち、現在の時刻と変数「遷移待機開始時刻」の時刻との差が設定「遷移待機時間」より大きい場合に、遷移待機時間を経過したと判定される。
【０３６６】
遷移待機時間を経過していないと判定された場合、状態管理部３０６は、処理を終了する（ステップＳ１００７）。
【０３６７】
遷移待機時間を経過していると判定された場合、状態管理部３０６は、ステップＳ１０１０に進む。
【０３６８】
ステップＳ１０３２において判定条件を満たすと判定された場合、又は、ステップＳ１０５１において判定条件を満たすと判定された場合、状態管理部３０６は、転送停止開始時刻を記録して、ステップＳ１０６２に進む（ステップＳ１０６１）。具体的には、状態管理部３０６は、変数「遷移待機開始時刻」に現在の時刻を格納する。
【０３６９】
状態管理部３０６は、転送停止の状態に設定し、処理を終了する（ステップＳ１０６２、ステップＳ１００７）。具体的には、状態管理部３０６は、変数「転送停止状態」に転送停止の状態であることを示す値を設定する。
【０３７０】
以上で説明したＥｄｇｅＲｅｌａｙ１２８における状態遷移処理の概略は以下のようになる。
【０３７１】
ＥｄｇｅＲｅｌａｙ１２８における状態遷移処理は、遷移指示を受け付け、又は、制御フレームを受信すると開始される。
【０３７２】
状態管理部３０６は、まず、現在のＥｄｇｅＲｅｌａｙ１２８の状態と、遷移指示の内容と、受信した制御フレームに含まれる状態情報と、経過時間とに基づいて、ＥｄｇｅＲｅｌａｙ１２８の状態を決定し、決定された状態に変更する。
【０３７３】
また、状態管理部３０６は、変更した状態を通知するための制御フレームをブリッジ装置１０１に転送する。さらに、状態管理部３０６は、転送停止の状態に設定することによってフレームの転送を停止し、又は、転送停止の状態を解除することによってフレームの転送を再開する。
【０３７４】
転送停止の状態に設定されている場合、状態管理部３０６は、一定時間経過後（ステップＳ１０２１がＹＥＳ）、現在のＥｄｇｅＲｅｌａｙ１２８の状態がＳ３状態６０７の場合にはＳ２状態６０６に変更し（ステップＳ１０２４）、Ｓ３状態６０７以外の状態（Ｓ１状態６０５又はＳ５状態６０９）の場合にはＳ３状態６０７に変更する（ステップＳ１０２５）。その後、状態管理部３０６は、転送停止の状態を解除する（ステップＳ１０２２Ａ及びステップ１０２２Ｂ）。
【０３７５】
Ｂ０状態７０３を含む制御フレームを受信し（ステップＳ１００３がＹＥＳ）、かつ、ＥｄｇｅＲｅｌａｙ１２８の状態がＳ０状態６０４の場合（ステップＳ１０１３がＮＯ）の場合、状態管理部３０６は、処理を終了する。
【０３７６】
Ｂ０状態７０３を含む制御フレームを受信し（ステップＳ１００３がＹＥＳ）、かつ、ＥｄｇｅＲｅｌａｙ１２８の状態がＳ１状態６０５の場合（ステップＳ１０１３がＹＥＳ）の場合、一定時間経過した後（ステップＳ１０１４がＹＥＳ）、Ｓ２状態６０６に変更し（ステップＳ１０１２）、遷移待機時刻の計測をリセットする（ステップＳ１０１０）。その後、状態管理部３０６は、変更後の状態に基づいて制御フレームを送信し、処理を終了する（ステップＳ１００６、ステップＳ１００７）。
【０３７７】
また、Ｂ０状態７０３を含む制御フレームを受信し（ステップＳ１００３がＹＥＳ）、かつ、ＥｄｇｅＲｅｌａｙ１２８の状態がＳ３状態６０７又はＳ５状態６０９の場合、状態管理部３０６は、状態を変更し（ステップＳ１００９又はステップＳ１０１２）、遷移待機時刻の計測をリセットする（ステップＳ１０１０）。その後、状態管理部３０６は、変更後の状態に基づいて制御フレームを送信し、処理を終了する（ステップＳ１００６、ステップＳ１００７）。
【０３７８】
また、Ｂ０状態７０３を含む制御フレームが受信し（ステップＳ１００３がＹＥＳ）、かつ、ＥｄｇｅＲｅｌａｙ１２８の状態がＳ２状態６０６又はＳ４状態６０８のいずれかに該当する場合、状態管理部３０６は、Ｓ０状態６０４に変更し（ステップＳ１００５）、変更後の状態に基づいて制御フレームを送信し、処理を終了する（ステップＳ１００６、ステップＳ１００７）。
【０３７９】
Ｂ３状態７０６を含む制御フレームを受信した場合も（ステップＳ１０４１がＮＯ）、Ｂ０状態７０３の制御フレームを受信した場合と同様の処理が実行されるが、以下で説明する分岐Ａ及び分岐Ｂが異なる。
【０３８０】
分岐Ａでは、ＥｄｇｅＲｅｌａｙ１２８の状態がＳ１状態６０５又はＳ５状態６０９の場合（ステップＳ１０５１がＹＥＳ）、フレームの転送が停止される（ステップＳ１０６２）。
【０３８１】
一方、分岐Ｂでは、ＥｄｇｅＲｅｌａｙ１２８の状態がＳ２状態６０６、かつ、一定時間経過した場合（ステップＳ１０５７がＹＥＳ）、状態は変更されずＳ２状態６０６のままである。分岐Ａについては、ステップＳ１０３２がＮＯである場合と合わせて後述する。
【０３８２】
分岐Ｂについては、状態管理部３０６は、ＥｄｇｅＲｅｌａｙ１２８の状態がＳ１状態６０５であり、かつ、一定時間経過後に（ステップＳ１０１４がＹＥＳ）、ＶＥＰＡモード６０２への遷移をあきらめてフェイルセーフとしてＶＥＢモード６０１への遷移するために、Ｓ２状態６０６に状態を変更し、ＶＥＢモード６０１への遷移を試みる。
【０３８３】
これは、ＥｄｇｅＲｅｌａｙ１２８がＶＥＰＡモード６０２への遷移をブリッジ装置１０１に要求したがモードの遷移が成功せずＶＥＢモード６０１で動作を継続しているときに、制御フレームがバッファされた等、何らかの理由で遅れてモードの遷移が成功することによって、ＥｄｇｅＲｅｌａｙ１２８がＶＥＢモード６０１で動作して、一方でブリッジ装置１０１がＲＲモード７０２で動作する事態が起こる可能性を減らすためである。
【０３８４】
前述した各装置のモードの組み合わせでは、ＥｄｇｅＲｅｌａｙ１２８から送信されたフレームがＥｄｇｅＲｅｌａｙ１２８に戻ってくる可能性があるため、フレームが重複し、ポート学習に不具合が起き、また、フレームの複製が際限なく実行されことによってフレームが増加して制御不能となる恐れがある。一方、ＥｄｇｅＲｅｌａｙ１２８がＶＥＰＡモード６０２で動作し、ブリッジ装置１０１がＳＷモード７０１で動作する場合では、ＥｄｇｅＲｅｌａｙ１２８が送信したフレームが失われる可能性あるが、前述したモードの組み合わせと比較して、危険な状態にはならない。
【０３８５】
なお、本実施形態では、遷移待機時間が経過した後にＥｄｇｅＲｅｌａｙ１２８の状態を遷移させているのは、ＥｄｇｅＲｅｌａｙ１２８への遷移指示よりも、後述するブリッジ装置１０１への遷移指示を優先して実行するためであるが、本発明はこの実行順に限らない。
【０３８６】
例えば、ブリッジ装置１０１が遷移待機時間の経過後に状態を遷移するように構成を変更し、ＥｄｇｅＲｅｌａｙ１２８から前述した状態遷移の構成を省略することによって状態遷移の実行順序を逆にしてもよい。当該構成によって、ＥｄｇｅＲｅｌａｙ１２８の構成を簡素化できる。また、ＥｄｇｅＲｅｌａｙ１２８及びブリッジ装置１０１の両方で遷移待機時間の経過後に状態遷移の処理を実行させるように構成してもよい。これによって、状態遷移の失敗を低減することができる。
【０３８７】
なお、これら遷移待機時間中に状態遷移が生じる原因としては、制御フレームの宇宙線等を原因とするエラーによる喪失、ＥｄｇｅＲｅｌａｙ１２８又はブリッジ装置１０１による制御フレームの受信失敗若しくは処理失敗、又は処理に想定外に時間がかかっていることなどが考えられる。
【０３８８】
一方、Ｂ２状態７０５を含む制御フレームを受信し、又はＶＥＰＡモード６０２への遷移指示を受け付け（ステップＳ１０４１がＹＥＳ）、かつ、ＥｄｇｅＲｅｌａｙ１２８の状態がＳ１状態６０５又はＳ３状態６０７である場合（ステップＳ１０４２がＮＯ）、ＥｄｇｅＲｅｌａｙ１２８の状態そのままである。また、ＶＥＰＡモード６０２への遷移指示を受信し（ステップＳ１０４１がＹＥＳ）、かつ、ＥｄｇｅＲｅｌａｙ１２８の状態がＳ５状態６０９の場合も（ステップＳ１０４５がＮＯ）、ＥｄｇｅＲｅｌａｙ１２８の状態そのままである。
【０３８９】
ＶＥＰＡモード６０２への遷移指示を受信し、かつ、ＥｄｇｅＲｅｌａｙ１２８の状態がＳ４状態６０８の場合（ステップＳ１０４５がＹＥＳ）、状態管理部３０６は、Ｓ５状態６０９に変更し（ステップＳ１０４６）、時間計測をリセット（ステップＳ１０１０）し、変更後の状態に基づいて制御フレームを送信する（ステップＳ１００６）。
【０３９０】
また、それ以外の場合（ステップＳ１０４３がＹＥＳ）、状態管理部３０６は、Ｓ１状態６０５に変更し（ステップＳ１０４４）、時間計測をリセットして（ステップＳ１０１０）、変更後の状態に基づいて制御フレームを送信する（ステップＳ１００６）。
【０３９１】
Ｂ１状態７０４を含む制御フレームを受信し、又は、ＶＥＢモード６０１への遷移指示を受け付けた場合（ステップＳ１０３１がＹＥＳ）も、ステップＳ１０４１がＹＥＳである場合と同様の動作となるが、Ｓ３状態６０７の場合（ステップＳ１０３２がＹＥＳ）、状態管理部３０６は、転送停止の状態に設定する点が異なる（ステップＳ１０６２）。
【０３９２】
ＶＥＰＡモード６０２への遷移が完了する場合（ステップＳ１０５１がＹＥＳ）、又は、ＶＥＰＡモード６０２からＶＥＢモード６０１への遷移を開始する場合（ステップＳ１０３２がＹＥＳ）の場合、状態管理部３０６は、受信待機時間が経過するまでの間は、フレームの転送を停止する。
【０３９３】
フレームの転送停止中にフレームを受信した場合、状態管理部３０６は、ブリッジ装置１０１に接続されたＵＰＬＩＮＫポートから受信したフレームを先に処理し、ＵＰＬＩＮＫ以外のポートから受信したフレームを蓄積して後で処理する。この動作によって、スイッチング処理の実行する装置（位置）がブリッジ装置１０１とＥｄｇｅＲｅｌａｙ１２８とで切り替わる瞬間、すなわち、ＶＥＰＡモード６０２とＴＲＡＮモード６０３との間で状態が遷移する時のフレームの順序が維持できる。
【０３９４】
なお、受信待機時間は、ＥｄｇｅＲｅｌａｙ１２８とブリッジ装置１０１との往復とＥｄｇｅＲｅｌａｙ１２８及びブリッジ装置１０１の処理時間をカバーする時間であるものとするが、一般的に数マイクロ秒〜数ミリ秒以下であり、転送停止を原因とする通信中断による通信の利用者に対する実質的な影響はない。
【０３９５】
また、転送停止中にブリッジ装置１０１から折り返され、ＵＰＬＩＮＫポートで受信されたフレームは、ＶＥＰＡモード６０２からＴＲＡＮモード６０３への遷移時はＶＥＰＡモード６０２の動作に基づいて転送されるためフレーム廃棄を抑止でき、ＴＲＡＮモード６０３からＶＥＰＡモード６０２への遷移時はＴＲＡＮモード６０３の動作に基づいて廃棄されるためフレームの重複を防止でき、それぞれ正しく処理されることとなる。
【０３９６】
（ブリッジ装置１０１における動作）
次に、ブリッジ装置１０１が実行する処理について説明する。以下の説明において、変数名は変数に格納された値を表すものとする。
【０３９７】
図１１Ａ及び図１１Ｂは、本発明の第１の実施形態におけるブリッジ装置１０１が実行する処理を説明するフローチャートである。
【０３９８】
ブリッジ装置１０１が起動すると、ハードウェア及び設定の確認等、プログラムの初期化が実行された後、開始状態となる（ステップＳ１１０１）。
【０３９９】
なお、図１１Ａ及び図１１Ｂに示す処理はポート毎に実行される。本実施形態では、状態管理部３０６が各ポートの状態を管理し、ポート毎に以下で説明する処理を実行するものとするが、本発明はこれに限らない。例えば、ポート毎又は複数のポートをまとめたグループ毎に状態管理部３０６又は全体制御部１２０を用意して並列に処理を実行させることによって処理を高速化してもよいし、一部の処理だけポート毎又はグループ毎に並列に処理を実行させてもよい。
【０４００】
状態管理部３０６は、ポート毎に変数「ＲＲＣＡＰ」及び変数「ＲＲＣＴＲ」を管理しており、変数の値の組み合わせに基づいて、各ポートがＢ０状態７０３、Ｂ１状態７０４、Ｂ２状態７０５及びＢ３状態７０６のいずれの状態であるかを管理する。また、状態管理部３０６は、状態遷移が必要な場合に各状態を変更する。
【０４０１】
また、状態管理部３０６は、ポート毎に変数「ＲＲＳＴＡＴ」及び変数「ＲＲＲＥＱ」を管理しており、変数の組み合わせに基づいて、ポートに接続されたＥｄｇｅＲｅｌａｙ１２８の状態がＳ０状態６０４、Ｓ１状態６０５、Ｓ２状態６０６、Ｓ３状態６０７、Ｓ４状態６０８及びＳ５状態６０９のいずれの状態であるかを管理する。
【０４０２】
ここで、状態管理部３０６は、初期化においてＢ０状態７０３となるように設定する。また、状態管理部３０６は、初期化において、ブリッジ装置１０１のポートに接続されたＥｄｇｅＲｅｌａｙ１２８の状態をＳ０状態６０４とする。
【０４０３】
ブリッジ装置１０１の状態管理部３０６は、開始状態になると、まず、遷移指示を受け付けたか否かを判定する（ステップＳ１１０２）。ここで、遷移指示は、ＳＷモード７０１への遷移指示と又はＲＲモード７０２への遷移指示のいずれかであり、設定によって又は外部から与えられる。
【０４０４】
なお、ステップ１１０２の判定では、遷移指示を受け付ける度に１度だけ、遷移指示を受け付けたと判定されるものとする。すなわち、１回の遷移指示に対して、１回だけ判定結果が「ＹＥＳ」となるものとする。
【０４０５】
遷移指示を受け付けたと判定された場合、状態管理部３０６は、遷移指示に関する情報を記録し、ステップＳ１１０４に進む（ステップＳ１１０３）。具体的には、遷移指示を受け付けたこと、及び、当該遷移指示がＳＷモード７０１への遷移指示又はＲＲモード７０２への遷移指示のいずれであるかを示す変数「遷移指示状態」が記録される。
【０４０６】
状態管理部３０６は、ブリッジ装置１０１におけるポート状態遷移処理を実行し、ステップ１１０５に進む（ステップＳ１１０４）。なお、ブリッジ装置１０１におけるポート状態遷移処理の詳細については後述する。
【０４０７】
状態管理部３０６は、状態遷移処理が終了した後、変数「遷移指示状態」を参照して、遷移指示が記録されているか否かを判定する（ステップＳ１１０５）。変数「遷移指示状態」にＳＷモード７０１への遷移指示又はＲＲモード７０２への遷移指示を示す値が格納されている場合、遷移指示が記録されていると判定される。
【０４０８】
遷移指示が記録されていないと判定された場合、状態管理部３０６は、ステップＳ１１０２に戻り、同様の処理を実行する。
【０４０９】
ステップＳ１１０２において遷移指示を受け付けていないと判定された場合、状態管理部３０６は、フレーム分類／情報抽出部３１１から伝達された情報に基づいて、ポートがフレームを受信したか否かを判定する（ステップＳ１１０６）。
【０４１０】
ポートがフレームを受信していないと判定された場合、状態管理部３０６は、ステップＳ１１０２に戻り同様の処理を実行する。
【０４１１】
ポートがフレームを受信していると判定された場合、状態管理部３０６は、フレーム分類／情報抽出部３１１から伝達された情報に基づいて、ポートが制御フレームを受信したか否かを判定する（ステップＳ１１０７）。
【０４１２】
ポートが制御フレームを受信していないと判定された場合、状態管理部３０６は、ステップＳ１１２１に進む。
【０４１３】
ポートが制御フレームを受信したと判定された場合、状態管理部３０６は、制御フレーム処理部３０７から制御フレームの内容を取得し、変数「ＲＲＳＴＡＴ」及び変数「ＲＲＲＥＱ」に値を設定して、ステップＳ１１０４に進む。
【０４１４】
ステップＳ１１０５において遷移指示が記録されていると判定された場合、状態管理部３０６は、変数「遷移指示状態」、変数「ＲＲＣＡＰ」及び変数「ＲＲＣＴＲ」を参照し、ＳＷモード７０１への遷移指示が記録され、かつ、現在のブリッジ装置１０１のポートの状態がＢ０状態７０３であるか否かを判定する（ステップＳ１１０８）。
【０４１５】
ステップＳ１１０８の判定条件を満たすと判定された場合、状態管理部３０６は、受け付けた遷移指示に対して成功した旨を応答し、ステップＳ１１１０に進む（ステップＳ１１０９）。応答の方法としては、例えば、入出力装置を介して成功した旨を示す情報を出力し、ポートを介して成功した旨を示す情報を含むフレームを送信することによって応答する方法が考えられる。また、制御フレームによる状態の通知にあわせて当該情報を通知してもよい。なお、遷移指示の応答が必要ない場合には、当該処理は省略してもよい。
【０４１６】
状態管理部３０６は、変数「遷移指示状態」を消去し、ステップＳ１１０２に戻り同様の処理を実行する（ステップＳ１１１０）。ここで、変数「遷移指示状態」の消去方法としては、例えば、遷移指示を示す値とは異なる値を変数に代入する。なお、開始状態では変数「遷移指示状態」は消去されている状態とする。
【０４１７】
ステップＳ１１０８において、ステップＳ１１０８の判定条件を満たさないと判定された場合、状態管理部３０６は、変数「遷移指示状態」、変数「ＲＲＣＡＰ」及び変数「ＲＲＣＴＲ」を参照し、ＲＲモード７０２への遷移指示が記録され、かつ、現在のブリッジ装置１０１のポートの状態がＢ３状態７０６であるか否かを判定する（ステップＳ１１１１）。
【０４１８】
ステップＳ１１１１の判定条件を満たさないと判定された場合、状態管理部３０６は、ステップＳ１１０２に戻り同様の処理を実行する。ステップＳ１１１１の判定条件を満たすと判定された場合、状態管理部３０６は、ステップＳ１１０９に進む。
【０４１９】
ステップＳ１１０７において、ポートが制御フレームを受信していないと判定された場合、状態管理部３０６は、ポート学習部３１０にポート学習の実行を指示する（ステップＳ１１２１）。当該指示を受け付けたポート学習部３１０は、対象フレームの送信元ＭＡＣアドレス及びＶＬＡＮ  ＩＤを用いてポート学習を実行する。
【０４２０】
次に、状態管理部３０６は、配送ポート決定部３０９に対して、配送ポートの検索を指示し、ステップＳ１１２３に進む（ステップＳ１１２２）。当該指示を受け付けた配送ポート決定部３０９は、以下のような処理を実行する。
【０４２１】
まず、配送ポート決定部３０９は、対象フレームの宛先ＭＡＣアドレス及びＶＬＡＮ  ＩＤに基づいてポート学習部３１０に問い合わせをすることによって、学習済みのポートを検索する。
【０４２２】
学習済みのポートが見つかった場合、配送ポート決定部３０９は、当該ポート（１個以上）を配送ポートに決定し、学習済みのポートが見つからなかった場合、全ポートを配送ポートに決定する。
【０４２３】
次に、状態管理部３０６は、変数「ＲＲＣＡＰ」及び変数「ＲＲＣＴＲ」を参照し、現在のブリッジ装置１０１のポートのモードがＲＲモード７０２（Ｂ１状態７０４又はＢ３状態７０６）であるか否かを判定する（ステップＳ１１２３）。
【０４２４】
現在のブリッジ装置１０１のポートのモードがＲＲモード７０２であると判定された場合、状態管理部３０６は、配送ポート決定部３０９に配送ポートへのフレームの配送を指示する（ステップＳ１１２４）。
【０４２５】
状態管理部３０６は、配送ポート決定部３０９に問い合わせて、各ポートに配送されたフレームがあるか否かを判定する（ステップＳ１１２５）。各ポートに配送されたフレームがないと判定された場合、状態管理部３０６は、ステップＳ１１０２に戻り同様の処理を実行する。
【０４２６】
各ポートに配送されたフレームがあると判定された場合、状態管理部３０６は、送受信制御部３１３に配送されたフレームの送信を指示し、その後、ステップＳ１１０２に戻り同様の処理を実行する（ステップＳ１１２６）。
【０４２７】
ステップＳ１１２３において現在のブリッジ装置１０１のモードがＲＲモード７０２でないと判定された場合、状態管理部３０６は、配送ポートの除外を指示し、ステップＳ１１２４に進む（ステップＳ１１２７）。当該指示を受け付けた配送ポート決定部３０９は、ステップＳ１１２２において決定された配送ポートのうち、フレーム分類／情報抽出部３１１から伝達された対象フレームの受信ポートを除外し、残りのポートを新たな配送ポートとして決定する。
【０４２８】
以上で説明したブリッジ装置１０１が実行する処理の概略は以下のようになる。
【０４２９】
まず、ブリッジ装置１０１は、初期化を実行する。そして、遷移指示を受け付けた場合（ステップＳ１１０２がＹＥＳ）、ブリッジ装置１０１はポート状態遷移処理を実行する（ステップＳ１１０４）。ブリッジ装置１０１は、処理の結果が出た場合（ステップＳ１１０８、ステップＳ１１１１）は応答を返し（ステップＳ１１０９）、最初に戻る（ステップＳ１１０２）。
【０４３０】
遷移指示を受け付けてなく、かつ、制御フレームを受信した場合（ステップＳ１１０７がＹＥＳ）、ブリッジ装置１０１は、ポート状態遷移処理を実行し（ステップＳ１１０４）、その後、最初に戻る（ステップＳ１１０２）。
【０４３１】
遷移指示を受け付けてなく、かつ、制御フレーム以外のフレームを受信した場合（ステップＳ１００７がＮＯ）、ブリッジ装置１０１は、フレーム配送処理（ステップＳ１１２１〜１１２４、ステップＳ１１２７）を実行した後、フレームを送信する（ステップＳ１１２６）。
【０４３２】
なお、フレーム配送処理において、ブリッジ装置１０１のモードがＲＲモード７０２の場合、ブリッジ装置１０１は、配送ポートから受信ポートを除外しない。以上で説明した処理はポート毎に実行される。
【０４３３】
（ポート状態遷移処理）
次に、ブリッジ装置１０１におけるポート状態遷移処理について説明する。
【０４３４】
図１２Ａ、図１２Ｂ、図１２Ｃ及び図１２Ｄは、本発明の第１の実施形態のブリッジ装置１０１におけるポート状態遷移処理を表すフローチャートである。
【０４３５】
また、ブリッジ装置１０１の状態の取得、及び、ＥｄｇｅＲｅｌａｙ１２８の状態情報を含む制御フレームの受信は、図１１において説明したため以下では省略する。
【０４３６】
ブリッジ装置１０１の状態の変更は、変数「ＲＲＣＡＰ」及び変数「ＲＲＣＴＲ」の値を変更することによって実現される。したがって、ブリッジ装置１０１の状態が変更された場合には、変数「ＲＲＣＡＰ」及び変数「ＲＲＣＴＲ」の値が変更されたことを意味する。
【０４３７】
なお、ポート状態遷移処理は、遷移指示を受け付け、又は、制御フレームの受信を契機に実行され、以下の説明において「状態情報を含む制御フレームを受信した」という表現はポート状態遷移処理の契機となる制御フレームに状態情報（Ｓ０状態６０４、Ｓ１状態６０５、Ｓ２状態６０６、Ｓ３状態６０７、Ｓ４状態６０８又はＳ５状態６０９）が含まれていることを表すものとする。また、状態管理部３０６は、制御フレームに従って変数「ＲＲＳＴＡＴ」及び変数「ＲＲＲＥＱ」を更新し、変数「ＲＲＳＴＡＴ」及び変数「ＲＲＲＥＱ」を参照してＥｄｇｅＲｅｌａｙ１２８の状態情報を取得できる。
【０４３８】
ブリッジ装置１０１におけるポート状態遷移処理が開始されると（ステップＳ１２０１）、状態管理部３０６は、ブリッジ装置１０１の状態がＢ０状態７０３であるか否かを判定する（ステップＳ１２０２）。
【０４３９】
ステップＳ１２０２の判定条件を満たさないと判定された場合、状態管理部３０６は、ステップＳ１２１１に進む。
【０４４０】
ステップＳ１２０２の判定条件を満たすと判定された場合、状態管理部３０６は、変数「遷移指示状態」を参照して、ＲＲモード７０２への遷移指示を受け付けたか否かを判定する（ステップＳ１２０３）。
【０４４１】
ＲＲモード７０２への遷移指示を受け付けたと判定された場合、状態管理部３０６は、ブリッジ装置１０１の状態をＢ２状態７０５に変更し、ステップ１２０５に進む（ステップＳ１２０４）。
【０４４２】
状態管理部３０６は、現在のブリッジ装置１０１の状態情報を含む制御フレームの生成を制御フレーム生成部３０８に指示し、処理を終了する（ステップＳ１２０５、ステップＳ１２０６）。当該指示を受け付けた制御フレーム生成部３０８は、制御フレームを生成し、処理対象のポートに接続されたＥｄｇｅＲｅｌａｙ１２８に制御フレームを送信する。
【０４４３】
ステップＳ１２０３においてＲＲモード７０２への遷移指示を受け付けていないと判定された場合、状態管理部３０６は、変数「遷移指示状態」を参照してＳＷモード７０１への遷移指示を受け付けたか否かを判定する（ステップＳ１２０７）。
【０４４４】
ＳＷモード７０１への遷移指示を受け付けたと判定された場合、状態管理部３０６は、処理を終了する（ステップＳ１２０６）。
【０４４５】
ＳＷモード７０１への遷移指示を受け付けていないと判定された場合、状態管理部３０６は、Ｓ１状態６０５又はＳ５状態６０９を含む制御フレームを受信したか否かを判定する（ステップＳ１２０８）。
【０４４６】
ステップＳ１２０８の判定条件を満たさないと判定された場合、状態管理部３０６は、ブリッジ装置１０１の状態を変更することなくステップＳ１２１０に進む。
【０４４７】
ステップＳ１２０８の判定条件を満たすと判定された場合、状態管理部３０６は、ブリッジ装置１０１の状態をＢ３状態７０６に変更し、ステップＳ１２１０に進む（ステップＳ１２０９）。
【０４４８】
状態管理部３０６は、Ｓ１状態６０５、Ｓ２状態６０６、Ｓ４状態６０８又はＳ５状態６０９のいずれかを含む制御フレームを受信したか否かを判定する（ステップＳ１２１０）。
【０４４９】
ステップＳ１２１０の判定条件を満たさないと判定された場合、状態管理部３０６は、処理を終了する（ステップＳ１２０６）。ステップＳ１２１０の判定条件を満たすと判定された場合、状態管理部３０６、ステップＳ１２０５に進む。
【０４５０】
ステップＳ１２０２において、ステップＳ１２０２の判定条件を満たさないと判定された場合、状態管理部３０６は、ブリッジ装置１０１の状態がＢ１状態７０４であるか否かを判定する（ステップＳ１２１１）。
【０４５１】
ステップＳ１２１１の判定条件を満たすと判定された場合、状態管理部３０６は、変数「遷移指示状態」を参照してＲＲモード７０２への遷移指示を受け付けたか否かを判定する（ステップＳ１２１２）。
【０４５２】
ステップＳ１２１２の判定条件を満たすと判定された場合、状態管理部３０６は、ブリッジ装置１０１の状態をＢ３状態７０６に変更し、ステップ１２０５に進む（ステップＳ１２１３）。
【０４５３】
ステップＳ１２１２の判定条件を満たさないと判定された場合、状態管理部３０６は、変数「遷移指示状態」を参照してＳＷモード７０１への遷移指示を受け付けたか否かを判定する（ステップＳ１２１４）。
【０４５４】
ステップＳ１２１４の判定条件を満たすと判定された場合、状態管理部３０６は、処理を終了する（ステップＳ１２０６）。
【０４５５】
ステップＳ１２１４の判定条件を満たさないと判定された場合、状態管理部３０６は、Ｓ０状態６０４、Ｓ２状態６０６又はＳ４状態６０８のいずれかを含む制御フレームを受信したか否かを判定する（ステップＳ１２１５）。
【０４５６】
ステップＳ１２１５の判定条件を満たさないと判定された場合、状態管理部３０６は、ステップＳ１２１０に進む。
【０４５７】
ステップＳ１２１５の判定条件を満たすと判定された場合、状態管理部３０６は、ブリッジ装置１０１の状態をＢ０状態７０３に変更し、ステップＳ１２１０に進む（ステップＳ１２１６）。
【０４５８】
ステップＳ１２１１において、ステップＳ１２１１の判定条件を満たさないと判定された場合、状態管理部３０６は、ブリッジ装置１０１の状態がＢ２状態７０５であるか否かを判定する（ステップＳ１２２１）。
【０４５９】
ステップＳ１２２１の判定条件を満たすと判定された場合、状態管理部３０６は、変数「遷移指示状態」を参照してＳＷモード７０１への遷移指示を受け付けたか否かを判定する（ステップＳ１２２２）。
【０４６０】
ステップＳ１２２２の判定条件を満たすと判定された場合、状態管理部３０６は、ブリッジ装置１０１の状態をＢ０状態７０３に変更し、ステップ１２０５に進む（ステップＳ１２２３）。
【０４６１】
ステップＳ１２２２の判定条件を満たさないと判定された場合、状態管理部３０６は、状態管理部３０６は、変数「遷移指示状態」を参照してＲＲモード７０２への遷移指示を受け付けたか否かを判定する（ステップＳ１２２４）。
【０４６２】
ステップＳ１２２４の判定条件を満たすと判定された場合、状態管理部３０６は、処理を終了する（ステップＳ１２０６）。
【０４６３】
ステップＳ１２２４の判定条件を満たさないと判定された場合、状態管理部３０６は、Ｓ１状態６０５、Ｓ３状態６０７又はＳ５状態６０９のいずれかを含む制御フレームを受信したか否かを判定する（ステップＳ１２２５）。
【０４６４】
ステップＳ１２２５の判定条件を満たさないと判定された場合、状態管理部３０６は、ステップＳ１２１０に進む。
【０４６５】
ステップＳ１２２５の判定条件を満たすと判定された場合、状態管理部３０６は、ブリッジ装置１０１の状態をＢ３状態７０６に変更し、ステップＳ１２１０に進む（ステップＳ１２２６）。
【０４６６】
ステップＳ１２２１において、ステップＳ１２２１の判定条件を満たさない、すなわち、ブリッジ装置１０１の状態がＢ３状態であると判定された場合、状態管理部３０６は、変数「遷移指示状態」を参照してＳＷモード７０１への遷移指示を受け付けたか否かを判定する（ステップＳ１２３１）。
【０４６７】
ステップＳ１２３１の判定条件を満たすと判定された場合、状態管理部３０６は、ブリッジ装置１０１の状態をＢ１状態７０４に変更し、ステップＳ１２０５に進む（ステップＳ１２３２）。
【０４６８】
ステップＳ１２３１の判定条件を満たさないと判定されて場合、状態管理部３０６は、変数「遷移指示状態」を参照してＲＲモード７０２への遷移指示を受け付けたか否かを判定する（ステップＳ１２３３）。
【０４６９】
ステップＳ１２３３の判定条件を満たすと判定された場合、状態管理部３０６は、処理を終了する（ステップＳ１２０６）。
【０４７０】
ステップＳ１２３３の判定条件を満たさないと判定された場合、状態管理部３０６は、Ｓ２状態６０６又はＳ４状態６０８を含む制御フレームを受信したか否かを判定する（ステップＳ１２３４）。
【０４７１】
ステップＳ１２３４の判定条件を満たさないと判定された場合、状態管理部３０６は、ステップＳ１２１０に進む。
【０４７２】
ステップＳ１２３４の判定条件を満たすと判定された場合、状態管理部３０６は、ブリッジ装置１０１の状態をＢ０状態７０３に変更し、ステップＳ１２１０に進む（ステップＳ１２３５）。
【０４７３】
以上で説明したブリッジ装置１０１におけるポート状態遷移処理の概略は以下の通りである。
【０４７４】
ブリッジ装置におけるポート状態遷移処理は、遷移指示を受け付け、又は、制御フレームを受信すると開始される。状態管理部３０６は、まず、現在のブリッジ装置１０１の状態と、遷移指示の内容と、受信した制御フレームに含まれるＥｄｇｅＲｅｌａｙ１２８の状態情報とに基づいて、ブリッジ装置１０１の状態を決定し、決定された状態に変更する。また、状態管理部３０６は、変更した状態を通知するための制御フレームを転送する。
【０４７５】
Ｂ０状態７０３、かつ、ＲＲモード７０２への遷移指示を受け付けた場合、状態管理部３０６は、ブリッジ装置１０１の状態をＢ２状態７０５に変更する（ステップＳ１２０４）。また、Ｂ３状態７０６、かつ、ＳＷモード７０１への遷移指示を受け付けた場合、状態管理部３０６は、ブリッジ装置１０１の状態をＢ１状態７０４に変更する（ステップＳ１２３２）。
【０４７６】
Ｂ０状態７０３でＳ１状態６０５若しくはＳ５状態６０９を含む制御フレームを受信した場合（ステップＳ１２０８がＹＥＳ）、Ｂ１状態７０４、かつ、ＲＲモード７０２への遷移指示を受け付けた場合（ステップＳ１２１２がＹＥＳ）、又は、Ｂ２状態７０５、かつ、Ｓ１状態６０５、Ｓ３状態６０７若しくはＳ５状態６０９のいずれかを含む制御フレームを受信した場合（ステップＳ１２２５がＹＥＳ）、状態管理部３０６は、ブリッジ装置１０１の状態をＢ３状態７０６に変更する。
【０４７７】
Ｂ１状態７０４、かつ、Ｓ０状態６０４、Ｓ２状態６０６又はＳ４状態６０８を受信した場合（ステップＳ１２１５がＹＥＳ）、Ｂ２状態７０５、かつ、ＳＷモード７０１への遷移指示を受け付けた場合（ステップＳ１２２２がＹＥＳ）、又は、Ｂ３状態７０６、かつ、Ｓ２状態６０６若しくはＳ４状態６０８を含む制御フレームを受信した場合（ステップＳ１２３４がＹＥＳ）、状態管理部３０６は、ブリッジ装置１０１の状態をＢ０状態７０３に変更する。
【０４７８】
遷移指示を受け付け、又は、Ｓ１状態６０５、Ｓ２状態６０６、Ｓ４状態６０８若しくはＳ５状態６０９を含む制御フレームを受信することによって状態が変更された場合、状態管理部３０６は、変更後の状態を通知するための制御フレームを送信する（ステップＳ１２０５）。
【０４７９】
図１０で説明したＥｄｇｅＲｅｌａｙ１２８における状態遷移処理に比べると、ブリッジ装置１０１におけるポート状態遷移処理の方が単純となっている。これは、ＥｄｇｅＲｅｌａｙ１２８の状態の数が６つあるのに対して、ブリッジ装置１０１の状態の数が４つであり、また、時間経過に伴う処理及びフレームの転送停止に関する処理がないためである。
【０４８０】
次に、ＥｄｇｅＲｅｌａｙ１２８及びブリッジ装置１０１を含むシステムにおける動作の概略について説明する。以下、各装置のモードの組み合わせについて説明する。
【０４８１】
（ＥｄｇｅＲｅｌａｙ１２８がＶＥＢモード６０１で動作し、ブリッジ装置１０１がＳＷモード７０１で動作する場合）
ここでは、ＥｄｇｅＲｅｌａｙ１２８はＶＥＢモード６０１（Ｓ０状態６０４）で動作し、ブリッジ装置１０１はＳＷモード７０１（Ｂ０状態７０３）で動作しているものとする。この場合、ＥｄｇｅＲｅｌａｙ１２８及びブリッジ装置１０１は、互いに制御フレームを送受信しても状態は変化しない。
【０４８２】
仮想マシン１３０−１から仮想マシン１３０−２宛のフレームが送信された場合、初期状態ではＥｄｇｅＲｅｌａｙ１２８及びブリッジ装置１０１は、共にポート学習が実行されていない。したがって、ＥｄｇｅＲｅｌａｙ１２８は、受信ポートを除く全ポート、すなわち、仮想マシン１３０−２とブリッジ装置１０１にフレームを転送し、同様に、ブリッジ装置１０１は、サーバ装置１０２−２及びノード装置１０４にフレームを転送する。
【０４８３】
仮想マシン１３０−２は、転送されたフレームの宛先が自分宛であるためフレームを受信し、フレームを用いて所定の処理を実行する。一方、サーバ装置１０２−２及びノード装置１０４は、転送されたフレームの宛先が自分宛でないためフレームを廃棄する。したがって、結果として仮想マシン１３０−２に正しくフレームが伝送される。
【０４８４】
このとき、ＥｄｇｅＲｅｌａｙ１２８及びブリッジ装置１０１は、送信元のアドレスに仮想マシン１３０−１のアドレスを含むフレームをどのポートから受信したかを学習する。
【０４８５】
次に、仮想マシン１３０−２から仮想マシン１３０−１宛のフレームが送信された場合、ＥｄｇｅＲｅｌａｙ１２８はポート学習の結果、仮想マシン１３０−１のアドレスのポートを学習済みであるため、仮想マシン１３０−１が接続されるポートにのみにフレームを転送する。また、仮想マシン１３０−１はフレームを受信し、フレームを用いて所定の処理を実行する。
【０４８６】
このとき、ＥｄｇｅＲｅｌａｙ１２８及びブリッジ装置１０１は、それぞれ、送信元のアドレスに仮想マシン１３０−２のアドレスを含むフレームをどのポートから受信したかを学習する。
【０４８７】
以降、同様の手順に従って、ＥｄｇｅＲｅｌａｙ１２８及びブリッジ装置１０１は、仮想マシン１３０−１及び仮想マシン１３０−２を学習済みであるとする。
【０４８８】
サーバ装置１０２−２やノード装置１０４から送信された仮想マシン１３０−１宛のフレームは、同様に、ブリッジ装置１０１、ＥｄｇｅＲｅｌａｙ１２８の順に経由して仮想マシン１３０−１に伝送される。
【０４８９】
仮想マシン１３０−１と仮想マシン１３０−２との間で送受信されるフレームの伝送経路は、ＥｄｇｅＲｅｌａｙ１２８及びブリッジ装置１０１の状態及びモードによって変化するが、それ以外のフレームの伝送経路は変化しないため以下の説明では省略する。
【０４９０】
現在、ＥｄｇｅＲｅｌａｙ１２８はＶＥＢモード６０１（Ｓ０状態６０４）で動作し、ブリッジ装置１０１はＳＷモード７０１（Ｂ０状態７０３）で動作している。
【０４９１】
仮想マシン１３０−１から仮想マシン１３０−２宛のフレームが送信されると、ＥｄｇｅＲｅｌａｙ１２８が当該フレームのスイッチング処理を実行して、当該フレームを仮想マシン１３０−２に転送するため、ブリッジ装置１０１に当該フレームが転送されることはない。
【０４９２】
また、仮想マシン１３０−１からブロードキャストフレームが送信されると、ＥｄｇｅＲｅｌａｙ１２８から仮想マシン１３０−２とブリッジ装置１０１とにフレームが転送され、ブリッジ装置１０１は、受信ポートを除く全ポート、すなわち、サーバ装置１０２−２及びノード装置１０４にフレームを転送する。従って、仮想マシン１３０−２、サーバ装置１０２−２及びノード装置１０４にそれぞれフレームが転送されるため、正しくブロードキャストの通信が行える。
【０４９３】
（ＶＥＰＡモード６０２への遷移指示を受け付け後、ＥｄｇｅＲｅｌａｙ１２８がＴＲＡＮモード６０３で動作し、ブリッジ装置１０１がＳＷモード７０１で動作する場合）
次に、ＥｄｇｅＲｅｌａｙ１２８は、ＶＥＰＡモード６０２への遷移指示を受け付けた場合、状態遷移処理を実行することによって状態をＳ１状態６０５に変更する。これに伴って、ＥｄｇｅＲｅｌａｙ１２８は、ＴＲＡＮモード６０３で動作する。また、ＥｄｇｅＲｅｌａｙ１２８は、Ｓ１状態６０５を含む制御フレームをブリッジ装置１０１に送信する。
【０４９４】
このとき、ＥｄｇｅＲｅｌａｙ１２８はＴＲＡＮモード６０３（Ｓ１状態６０５）で動作し、ブリッジ装置１０１はＳＷモード７０１（Ｂ０状態７０３）で動作している。
【０４９５】
仮想マシン１３０−１から仮想マシン１３０−２宛のフレームが送信された場合、ＥｄｇｅＲｅｌａｙ１２８が当該フレームのスイッチング処理を実行して、当該フレームを仮想マシン１３０−２に転送するため、ブリッジ装置１０１に当該フレームが転送されることはない。
【０４９６】
また、仮想マシン１３０−２からブロードキャストフレームが送信されると、ＥｄｇｅＲｅｌａｙ１２８から仮想マシン１３０−２とブリッジ装置１０１とにフレームが転送され、ブリッジ装置１０１は、受信ポートを除く全ポート、すなわち、サーバ装置１０２−２及びノード装置１０４にフレームを転送する。従って、仮想マシン１３０−２、サーバ装置１０２−２及びノード装置１０４のそれぞれにフレームが転送されるため、正しくブロードキャストの通信が行える。
【０４９７】
（ＥｄｇｅＲｅｌａｙ１２８がＴＲＡＮモード６０３で動作し、ブリッジ装置１０１がＲＲモード７０２で動作する場合）
ブリッジ装置１０１は、Ｓ１状態６０５を含む制御フレームを受信すると、ポート状態遷移処理を実行することによって状態をＢ３状態７０６に変更し、さらに、Ｂ３状態７０６を含む制御フレームをＥｄｇｅＲｅｌａｙ１２８に送信する。このとき、ＥｄｇｅＲｅｌａｙ１２８はＴＲＡＮモード６０３（Ｓ１状態６０５）で動作し、ブリッジ装置１０１はＲＲモード７０２（Ｂ３状態７０６）で動作している。
【０４９８】
仮想マシン１３０−１から仮想マシン１３０−２宛のフレームが送信された場合、ＥｄｇｅＲｅｌａｙ１２８が当該フレームのスイッチング処理を実行して、当該フレームを仮想マシン１３０に転送するため、ブリッジ装置１０１に当該フレームが転送されることはない。
【０４９９】
また、仮想マシン１３０−１からブロードキャストフレームが送信されると、ＥｄｇｅＲｅｌａｙ１２８から仮想マシン１３０−２とブリッジ装置１０１とにフレームが転送され、ＲＲモード７０２で動作するブリッジ装置１０１は、受信ポートを含む全ポート、すなわち、ＥｄｇｅＲｅｌａｙ１２８、サーバ装置１０２−２及びノード装置１０４にフレームを転送する。
【０５００】
一方、ＴＲＡＮモード６０３で動作するＥｄｇｅＲｅｌａｙ１２８は、転送ポート管理表１２４に受信ポート以外のポートを示すエントリが存在するため、ブリッジ装置１０１から転送されたフレームの送信元（仮想マシン１３０−１）の情報が学習済みであると判定する（ステップＳ９１３がＹＥＳ）。したがって、ＥｄｇｅＲｅｌａｙ１２８は、当該フレームを廃棄する。
【０５０１】
本発明ではＴＲＡＮモード６０３を導入することによって、結果として、仮想マシン１３０−２、サーバ装置１０２−２及びノード装置１０４のそれぞれにフレームが転送されるため、正しくブロードキャストの通信が行える。
【０５０２】
（ＥｄｇｅＲｅｌａｙ１２８がＶＥＰＡモード６０２で動作し、ブリッジ装置１０１がＲＲモード７０２で動作する場合）
ＥｄｇｅＲｅｌａｙ１２８は、Ｂ３状態７０６を含む制御フレームを受信すると、状態遷移処理を実行して、ブリッジ装置１０１が接続されるＵＰＬＩＮＫポートが受信したフレームの転送を継続し（ステップＳ８１５がＹＥＳ）、一方、ＵＰＬＩＮＫポート以外のポートが受信したフレームの転送を受信待機時間の間停止して（ステップＳ１０６２）、フレームを蓄積する（ステップＳ８２４）。
【０５０３】
ＥｄｇｅＲｅｌａｙ１２８は、状態をＳ３状態６０７に変更することによってＶＥＰＡモード６０２での動作を開始した後、フレームの転送を再開し（ステップＳ１０２２Ｂ）、蓄積されたフレームから順に転送処理を実行する（ステップＳ８２１）。この結果、転送停止中にＥｄｇｅＲｅｌａｙ１２８が受信したフレームは、正しい順序で転送される。また、ＥｄｇｅＲｅｌａｙ１２８は、Ｓ３状態６０７を含む制御フレームをブリッジ装置１０１に送信する。
【０５０４】
このとき、ＥｄｇｅＲｅｌａｙ１２８は、前半はＴＲＡＮモード６０３で動作しているが転送停止の状態であり、後半は、ＶＥＰＡモード６０２（Ｓ３状態６０７）で動作する。一方、ブリッジ装置１０１は前半及び後半いずれの場合でもＲＲモード７０２（Ｂ３状態７０６）で動作する。
【０５０５】
そのため、仮想マシン１３０−１から仮想マシン１３０−２宛のフレームが送信された場合、前半はＥｄｇｅＲｅｌａｙ１２８に当該フレームが蓄積されるため、ブリッジ装置１０１に当該フレームが転送されることはない。
【０５０６】
後半では、ＥｄｇｅＲｅｌａｙ１２８が蓄積したフレームと新たに受信したフレームとのスイッチング処理を順に実行する。仮想マシン１３０−１から仮想マシン１３０−２宛のフレームが送信されている場合、ブリッジ装置１０１が接続されたポート（ＵＰＬＩＮＫポート）以外のポートから当該フレームを受信するため（ステップＳ９０９がＮＯ）、当該フレームをブリッジ装置１０１に転送する。
【０５０７】
ブリッジ装置１０１は、ＥｄｇｅＲｅｌａｙ１２８から転送されたフレームのスイッチング処理を実行する。このとき、ブリッジ装置１０１は仮想マシン１３０−２の宛先を学習済みであるため、ＥｄｇｅＲｅｌａｙ１２８が接続されたポートに当該フレームを転送する。
【０５０８】
ＥｄｇｅＲｅｌａｙ１２８は、ブリッジ装置１０１が接続されたポート（ＵＰＬＩＮＫポート）からフレームを受信するため（ステップＳ９０９がＹＥＳ）、仮想マシン１３０−２にフレームを転送する。仮想マシン１３０−２は、当該フレームを受信し、フレームを用いて所定の処理を実行する。
【０５０９】
すなわち、ブリッジ装置１０１と仮想マシン１３０−１との間で互いを宛先として送受信されるフレームは、ＥｄｇｅＲｅｌａｙ１２８を経由してブリッジ装置１０１に転送され、ブリッジ装置１０１によってスイッチング処理が実行され、さらに、ＥｄｇｅＲｅｌａｙ１２８を経由して宛先に伝送される。
【０５１０】
仮想マシン１３０−２からブロードキャストフレームが送信された場合も、仮想マシン１３０−１には同様の経路を通って１フレーム毎にフレームが伝送され、サーバ装置１０２−１及びノード装置１０４にはＥｄｇｅＲｅｌａｙ１２８を経由してブリッジ装置１０１から１フレーム毎にフレームが伝送される。
【０５１１】
（ＥｄｇｅＲｅｌａｙ１２８がＶＥＢモード６０１に遷移中の動作）
ＥｄｇｅＲｅｌａｙ１２８は、ＶＥＰＡモード６０２への遷移指示を受け付けると、状態遷移処理を実行して、ブリッジ装置１０１が接続されたＵＰＬＩＮＫポートから受信したフレームの転送を継続し（ステップＳ８１５がＹＥＳ）、ＵＰＬＩＮＫポート以外のポートから受信したフレームの転送を受信待機時間の間は停止して（ステップＳ１０６２）、フレームを蓄積する（ステップＳ８２４）。
【０５１２】
ＥｄｇｅＲｅｌａｙ１２８は、Ｓ２状態６０６に変更することによってＴＲＡＮモード６０３での動作を開始し、フレームの転送を再開し（ステップＳ１０２２Ａ及びステップＳ１０２２Ｂ）、蓄積されたフレームから順に転送処理を実行する（ステップＳ８２０）。この結果、転送停止中の状態の場合にＥｄｇｅＲｅｌａｙ１２８が受信したフレームは、正しい順序で転送される。
【０５１３】
また、ＥｄｇｅＲｅｌａｙ１２８は、Ｓ２状態６０６を含む制御フレームをブリッジ装置１０１に送信する。
【０５１４】
このとき、ＥｄｇｅＲｅｌａｙ１２８は、前半はＶＥＰＡモード６０２で動作しているが、転送停止の状態であり、後半はＴＲＡＮモード６０３で動作し、フレームの転送を再開する。一方、ブリッジ装置１０１は前半及び後半いずれの場合でもＲＲモード７０２で動作する。
【０５１５】
そのため、仮想マシン１３０−１から仮想マシン１３０−２宛のフレームが送信され他場合、前半はＥｄｇｅＲｅｌａｙ１２８に当該フレームが蓄積され、後半はＥｄｇｅＲｅｌａｙ１２８が蓄積したフレームと当該フレームのスイッチング処理を順に実行して、当該フレームを仮想マシン１３０−２に転送するため、ブリッジ装置１０１に当該フレームが転送されることはない。
【０５１６】
また、仮想マシン１３０−１からブロードキャストフレームが送信されると、転送再開後にＥｄｇｅＲｅｌａｙ１２８から仮想マシン１３０−２及びブリッジ装置１０１にフレームが転送される。ＲＲモード７０２で動作するブリッジ装置１０１は、受信ポートを含む全ポート、すなわち、ＥｄｇｅＲｅｌａｙ１２８、サーバ装置１０２−２及びノード装置１０４にフレームを転送する。
【０５１７】
ＴＲＡＮモード６０３で動作するＥｄｇｅＲｅｌａｙ１２８は、転送ポート管理表１２４に受信ポート以外のポートを示すエントリが存在するため、ブリッジ装置１０１から転送されたフレームの送信元（仮想マシン１３０−２）の情報を学習済みであると判定する（ステップＳ９１３がＹＥＳ）。したがって、ＥｄｇｅＲｅｌａｙ１２８は、当該フレームを廃棄する。
【０５１８】
本発明ではＴＲＡＮモード６０３を導入することによって、結果として、仮想マシン１３０−２、サーバ装置１０２−２及びノード装置１０４のそれぞれに当該フレームが転送されるため、正しくブロードキャストの通信が行える。
【０５１９】
ブリッジ装置１０１は、Ｓ２状態６０６を含む制御フレームを受信すると、ポート状態遷移処理を実行することによって状態をＢ０状態７０３に変更し、Ｂ０状態７０３を含む制御フレームをＥｄｇｅＲｅｌａｙ１２８に送信する。このとき、ＥｄｇｅＲｅｌａｙ１２８はＴＲＡＮモード６０３（Ｓ２状態６０６）で動作し、ブリッジ装置１０１はＳＷモード７０１（Ｂ０状態７０３）で動作する。当該モードの組み合わせにおける動作は前述したため説明を省略する。
【０５２０】
Ｂ０状態７０３を含む制御フレームを受信したＥｄｇｅＲｅｌａｙ１２８は、状態遷移処理を実行することによって状態をＳ０状態６０４に変更して、ＶＥＢモード６０１で動作を開始し、また、Ｓ０状態６０４を含む制御フレームをブリッジ装置１０１に送信する。このとき、ＥｄｇｅＲｅｌａｙ１２８はＶＥＢモード６０１（Ｓ０状態６０４）で動作し、ブリッジ装置１０１はＳＷモード７０１（Ｂ０状態７０３）で動作する。当該モードの組み合わせにおける動作は前述したため説明を省略する。
【０５２１】
（モード遷移の説明）
以上で示した手順によって、ＥｄｇｅＲｅｌａｙ１２８は、ＶＥＢモード６０１からＴＲＡＮモード６０３を経て、フレームの転送を一時停止した後、ＶＥＰＡモード６０２に遷移し、さらに、フレームの転送を一時停止した後、ＶＥＰＡモード６０２からＴＲＡＮモード６０３を経てＶＥＢモード６０１に遷移する。
【０５２２】
また、ＥｄｇｅＲｅｌａｙ１２８のモードの遷移に対応して、ブリッジ装置１０１は、ＳＷモード７０１からＲＲモード７０２に遷移し、さらに、ＲＲモード７０２からＳＷモード７０１に遷移する。
【０５２３】
ブリッジ装置１０１と仮想マシン１３０−１との間で送受信されるフレームのスイッチング処理を実行する装置は、モードの変更に伴って、ＥｄｇｅＲｅｌａｙ１２８からブリッジ装置１０１に、ブリッジ装置１０１からＥｄｇｅＲｅｌａｙ１２８に、通信を継続したまま動的に変更される。
【０５２４】
ＥｄｇｅＲｅｌａｙ１２８及びブリッジ装置１０１のモードの組み合わせは、ＶＥＢモード６０１とＳＷモード７０１、ＴＲＡＮモード６０３とＳＷモード７０１、ＴＲＡＮモード６０３とＲＲモード７０２、及びＶＥＰＡモード６０２とＲＲモード７０２のいずれかである。各組み合わせでの動作は前述したとおりである。
【０５２５】
ＶＥＰＡモード６０２とＴＲＡＮモード６０３との間でのモード遷移時にフレームの転送を一時停止させるのは、ＥｄｇｅＲｅｌａｙ１２８からＲＲモード７０２で動作するブリッジ装置１０１に転送され、ブリッジ装置１０１からＥｄｇｅＲｅｌａｙ１２８に転送されるブロードキャストフレームと、ＴＲＡＮモード６０３で動作するＥｄｇｅＲｅｌａｙ１２８がスイッチング処理を実行することによって転送されるフレームとが重複することを避けるためである。
【０５２６】
（遷移指示の契機）
本発明において、状態遷移の契機のひとつであるＥｄｇｅＲｅｌａｙ１２８及びブリッジ装置１０１におけるモードの遷移指示は、ユーザ又は管理者からの指示するものとしているが、本発明はこれに限らない。
【０５２７】
例えば、ＥｄｇｅＲｅｌａｙ１２８又はブリッジ装置１０１に閾値を設定し、サーバ装置１０２又はブリッジ装置１０１のＣＰＵ使用率やメモリ使用量等が閾値を超えた場合に遷移指示を発行することによって、サーバ装置１０２又はブリッジ装置１０１の負荷変動に合わせてスイッチング処理を実行する装置を変更できるようにしてもよい。
【０５２８】
また、例えば、ＥｄｇｅＲｅｌａｙ１２８又はブリッジ装置１０１に時刻を設定し、設定された時刻になった場合に遷移指示を発行することによって、スイッチング処理を実行する装置を時間毎に変更できるようにしてもよい。
【０５２９】
以上に例示するように、本発明では、遷移指示をＥｄｇｅＲｅｌａｙ１２８及びブリッジ装置１０１のいずれに行ってもよい。例えば、ブリッジ装置１０１にネットワーク管理者が遷移指示を与えて、ネットワーク機器の利用予定やモニタリング等のネットワーク管理の都合に合わせたスイッチング処理を実行する装置を変更してもよいし、例えば、サーバ管理者がＥｄｇｅＲｅｌａｙ１２８に遷移指示を与えて、サーバ利用者が必要とするレイテンシ等のネットワーク要件に合わせてスイッチング処理を実行する装置を変更してもよい。
【０５３０】
（本実施形態の装置以外との接続）
ここで、ＥｄｇｅＲｅｌａｙ１２８と他のブリッジ装置（以下、他ブリッジ装置）を接続した場合、及びブリッジ装置１０１と他ブリッジ装置を接続した場合の動作について説明する。
【０５３１】
ＥｄｇｅＲｅｌａｙ１２８と他ブリッジ装置との接続に関しては、ＥｄｇｅＲｅｌａｙ１２８がＴＲＡＮモード６０３で動作し、一定時間、制御フレームを受信しない場合に、状態をＳ０状態６０４に遷移する処理を追加すれば対応できる。
【０５３２】
まず、他ブリッジ装置がＩＥＥＥ  ８０２．１Ｑｂｇをサポートしない、すなわち、制御フレームを送信しない場合を説明する。
【０５３３】
ＥｄｇｅＲｅｌａｙ１２８と他ブリッジ装置とを接続した場合、初期状態ではＥｄｇｅＲｅｌａｙ１２８はＴＲＡＮモード６０３で動作する。仮想マシンの移動を伴わなければ、ＴＲＡＮモード６０３でも通信は正常に行われる。また、制御フレームが一定時間受信されず、Ｓ０状態６０４に遷移し、ＶＥＢモード６０１で動作するため、通信は正常に行われる。
【０５３４】
なお、ＶＥＰＡモード６０２への遷移が指示された場合、ＥｄｇｅＲｅｌａｙ１２８は、一時的にＴＲＡＮモード６０３に遷移するが、同様にＶＥＢモード６０１に遷移することとなる。また、本発明のブリッジ装置１０１を他ブリッジ装置（Ｅｄｇｅ  Ｒｅｌａｙとして動作）と接続した場合、初期状態ではＢ０状態７０３となっているため、ＳＷモード７０１で動作し、通信は正常に行われる。ＲＲモード７０２への遷移指示を行った場合でも、状態がＢ２状態７０５に遷移するが、ブリッジ装置１０１はＳＷモード７０１のまま動作するため、通信は正常に行われる。
【０５３５】
次に、他ブリッジ装置がＩＥＥＥ  ８０２．１Ｑｂｇに準拠している場合の動作を説明する。
【０５３６】
ＩＥＥＥ  ８０２．１Ｑｂｇでは、ＲＲＣＡＰが「１」でＲＲＲＥＱが「１」の場合のみ、ＥＶＢ  ＢｒｉｄｇｅのＲｅｆｌｅｃｔｉｖｅ  Ｒｅｌａｙ動作が有効となると規定されている。
【０５３７】
ＥｄｇｅＲｅｌａｙ１２８とＩＥＥＥ  ８０２．１Ｑｂｇ準拠の他ブリッジ装置を接続し、他ブリッジ装置がＲｅｆｌｅｃｔｉｖｅ  Ｒｅｌａｙ機能を持たない場合、Ｂ０状態７０３を含む制御フレームのみを受信するため、ＥｄｇｅＲｅｌａｙ１２８は、制御フレームを受信していない時にはＴＲＡＮモード６０３、制御フレームを受信した時にはＶＥＢモード６０１で動作する。従って、通信は正常に行われる。ＶＥＰＡモード６０２への遷移を指示した場合も同様である。
【０５３８】
また、他ブリッジ装置がＲｅｆｌｅｃｔｉｖｅ  Ｒｅｌａｙ機能を持つ場合、ＥｄｇｅＲｅｌａｙ１２８は、Ｂ２状態７０５又はＢ３状態７０６を含む制御フレームを受信することとなる。この場合、ＥｄｇｅＲｅｌａｙ１２８が受信するＢ２状態７０５を含む制御フレームを、Ｂ０状態７０３を含む制御フレームと置き換えて扱えば、ＥｄｇｅＲｅｌａｙ１２８へのモードの遷移指示も含めて動作する。
【０５３９】
一方、本発明のブリッジ装置１０１をＩＥＥＥ  ８０２．１Ｑｂｇに準拠する他ブリッジ装置（Ｅｄｇｅ  Ｒｅｌａｙとして動作）と接続した場合、Ｂ０状態７０３をＢ２状態７０５に置き換えて扱うようにすれば、ブリッジ装置１０１への遷移指示以外は正常に動作する。ブリッジ装置１０１へのモード遷移指示は、他ブリッジ装置の挙動を完全には制御できないため遷移が完了しないことがあり、失敗することがある。また、遷移中の動作はＩＥＥＥ  ８０２．１Ｑｂｇでは規定されていないため、他ブリッジ装置における通信が正常に行われない可能性がある。
【０５４０】
したがって、本実施形態におけるＥｄｇｅＲｅｌａｙ１２８（前述した若干の変更を含む）が他ブリッジ装置と接続し、他ブリッジ装置がＩＥＥＥ  ８０２．１Ｑｂｇに対応したＲｅｆｌｅｃｔｉｖｅ  Ｒｅｌａｙ機能を持つ場合、ＥｄｇｅＲｅｌａｙ１２８への遷移指示まで含めて、それ以外では遷移指示を除いて動作する。また、遷移指示を行った場合も含めて通信は正常に行われる。また、本実施形態におけるブリッジ装置１０１（前述した若干の変更を含む）は、他ブリッジ装置（Ｅｄｇｅ  Ｒｅｌａｙとして動作）と接続される場合、ＥｄｇｅＲｅｌａｙ１２８への遷移指示を除いて動作し、通信も正常に行わる。
【０５４１】
第１の実施形態によれば、ＥｄｇｅＲｅｌａｙ１２８とブリッジ装置１０１との間の通信を継続したまま、動的にスイッチング処理を実行する装置を変更できる。また、前述の変更に必要な制御フレームにはＩＥＥＥ  ８０２．１Ｑｂｇの規定に準拠したものを用いているため、他のブリッジ装置と接続される場合、モード遷移指示以外では正常に動作して、通信も正常に行える。
【０５４２】
さらに、ＩＥＥＥ  ８０２．１Ｑｂｇに準拠したＥｄｇｅＲｅｌａｙ１２８と、Ｒｅｆｌｅｃｔｉｖｅ  Ｒｅｌａｙ機能を持つブリッジ装置とを接続した場合、ＥｄｇｅＲｅｌａｙ１２８へのモード遷移指示も含めて動作可能となる。
【０５４３】
［第２の実施形態］
第１の実施形態では、ＥｄｇｅＲｅｌａｙ１２８はサーバ装置１０２において動作するプログラムであった。しかし、図３で説明したように、ＥｄｇｅＲｅｌａｙ１２８とブリッジ装置１０１とのソフトウェア構成は同一であるため、ブリッジ装置１０１にＥｄｇｅＲｅｌａｙ１２８の機能を含めることができる。本発明の第２の実施形態では、ブリッジ装置１０１にＥｄｇｅＲｅｌａｙ１２８が含まれる点が第１の実施形態と異なる。
【０５４４】
以下、第１の実施形態との差異を中心に、第２の実施形態について説明する。
【０５４５】
本発明の第１の実施形態における計算機システムの論理的な構成を説明するブロック図である。
【０５４６】
（システム構成）
図１３は、本発明の第２の実施形態における計算機システムの論理的な構成を説明するブロック図である。
【０５４７】
なお、サーバ装置１０２、ブリッジ装置１３０１及びＥｄｇｅＲｅｌａｙ１３０２の構成は第１の実施形態と同一であるため説明を省略する。
【０５４８】
図１３において、ブリッジ装置１３０１は、ブリッジ装置１０１と同一の構成であり、サーバ装置１３０３−１、サーバ装置１３０３−２及びサーバ装置１３０３−３はサーバ装置１０２と同一の構成であり、また、ノード装置１３０６はノード装置１０４と同一の構成である。また、ケーブル１３０７−１、ケーブル１３０７−２、ケーブル１３０８−１、ケーブル１３０８−２及びケーブル１３１１はケーブル１０５と同一の構成である。
【０５４９】
図１３において、ＥｄｇｅＲｅｌａｙ１３０２は、ＥｄｇｅＲｅｌａｙ１２８が実行されたブリッジ装置１０１を示す。
【０５５０】
サーバ装置１３０３−１、サーバ装置１３０３−２及びサーバ装置１３０３−３は、いずれもイーサネットに準拠した入出力ポートを備えるネットワークノードである。ＥｄｇｅＲｅｌａｙ１３０２及びブリッジ装置１３０１が実行する処理は、第１の実施形態においてＥｄｇｅＲｅｌａｙ１２８及びブリッジ装置１０１として同一であるため説明を省略する。
【０５５１】
第２の実施形態によれば、第１の実施形態と同様、ＥｄｇｅＲｅｌａｙ１３０２とブリッジ装置１３０１との間で、通信を継続したまま動的にスイッチング処理を実行する装置を変更できる。さらに、ＥｄｇｅＲｅｌａｙ１３０２はサーバ装置１３０３以外の装置上で実行されるため、仮想化機能を備えていない計算機でも、スイッチング処理を実行する装置を動的に変更することができる。
【０５５２】
［第３の実施形態］
本発明において、ＥｄｇｅＲｅｌａｙ１２８及びブリッジ装置１０１は、両者の機能を兼ねる装置又はプログラムを用いて実現してもよい。第３の実施形態では、ブリッジ装置１０１に機能を集約した場合を例に説明する。
【０５５３】
第３の実施形態におけるハードウェア構成及び論理的な構成は、第１の実施形態又は第２の実施形態と同一であるため省略する。以下では、第３の実施形態におけるブリッジ装置１０１の動作について説明する。
【０５５４】
図１１Ａ及び図１１Ｂで説明したブリッジ装置１０１の動作は、図８Ａ及び図８Ｂにおける転送停止の状態に関係する処理を除けば、図８Ａ及び図８Ｂで説明したＥｄｇｅＲｅｌａｙ１２８のＶＥＢモード６０１における動作と同様である。
【０５５５】
これは、ブリッジ装置１０１とＥｄｇｅＲｅｌａｙ１２８との動作はいずれも、基本的な動作として、受信したフレームの転送処理と（ステップＳ８１６、ステップＳ８２０〜ステップＳ８２４、ステップＳ１１２１〜ステップＳ１１２７）、受け付けた遷移指示又は受信した制御フレームに従った状態の変更処理（ステップＳ８０５〜ステップＳ８０９、ステップＳ１１０４〜ステップＳ１１０５、ステップＳ１１０８〜ステップＳ１１１１）を実行するためである。
【０５５６】
なお、フレームの転送処理では、ＲＲモード７０２の場合、ステップＳ１１２７の処理は実行されない点が異なり、状態の変更処理では、状態遷移処理と（ステップＳ８０４）、ポート状態遷移処理（ステップＳ１１０４）の内容に大きな違いがある。
【０５５７】
しかし、フレームの転送処理における違いは単なる条件分岐であるし、状態の変更処理における違いは、状態遷移処理（ステップＳ８０４）が全体の処理である一方でポート状態遷移処理（ステップＳ１１０４）はポート毎の処理であるため、ブリッジ装置１０１の動作とＥｄｇｅＲｅｌａｙ１２８の動作を、同一装置内で実現して共存させることができる。例えば、ＥｄｇｅＲｅｌａｙ１２８の各ポートは、ＶＥＰＡモード６０２においてＵＰＬＩＮＫとして動作しているポートを除いて、変更を加えてブリッジ装置１０１のポートにおける動作をさせることができる。
【０５５８】
具体的には、図９において、ステップＳ９０５に換えて、「状態管理部３０６は、当該ポートがＲＲモード７０２で動作するか否かを判定し、ポートがＲＲモード７０２で動作する場合にはステップＳ９０６に進み、ポートがＲＲモード７０２で動作していない場合にはステップ９０５に進むステップ」と、ステップＳ９０５とを置くことによって共存させられる。
【０５５９】
第３の実施形態によれば、ＥｄｇｅＲｅｌａｙ１２８の機能とブリッジ装置１０１の機能とを実現可能な装置又はソフトウェア（以下、同時実施装置という）を多段に接続可能となる。また、同時実施装置の一方を第１の実施形態又は第２の実施形態におけるブリッジ装置１０１に接続し、もう一方をＥｄｇｅＲｅｌａｙ１２８に接続して、スイッチング処理位置の変更を目的に応じてＥｄｇｅＲｅｌａｙ１２８、ブリッジ装置１０１、同時実施装置から自由に選択することが可能となる。
【０５６０】
特許請求の範囲に記載した以外の発明の観点の代表的なものとして、次のものがあげられる。
（１）演算処理装置と、前記演算処理装置に接続される記憶装置と、１以上のポートを備えるネットワークインタフェースとを備え、複数の転送モードで動作可能なフレーム転送装置におけるフレーム転送方法であって、
前記複数の転送モードは、第１の転送モード、第２の転送モード及び第３の転送モードを含み、
前記フレーム転送装置は、
前記フレームを受信する受信部と、
前記フレームを送信する送信部と、
前記フレームを送信するポートを決定するポート決定部と、
受信した前記フレームを解析するフレーム解析部と、
前記フレーム解析部によって解析された結果を蓄積する学習部と、
前記フレーム転送装置の転送モードを示すモード情報を保持し、前記モード情報に基づいて前記転送モードを切り替え、前記フレーム転送装置を制御する状態管理部と、
を備え、
前記方法は、
前記第１の転送モードでは、
前記フレーム転送装置が、前記ポートから受信した第１のフレームの解析の結果に基づいて、前記第１のフレームの転送処理を実行するステップを含み、
前記第２の転送モードでは、
前記フレーム転送装置が、他の前記フレーム転送装置が接続されたポートから第２のフレームを受信した場合、前記第２のフレームの解析の結果に基づいて、前記第２のフレームの転送処理を実行するステップと、
前記フレーム転送装置が、当該他のフレーム転送装置以外の装置が接続されたポートから第３のフレームを受信した場合、前記第３のフレームを当該他のフレーム転送装置に転送するステップと、を含み、
前記第３の転送モードでは、
前記フレーム転送装置が、前記他のフレーム転送装置が接続されたポートから第４のフレームを受信し、かつ、前記第４のフレームに対応する解析の結果が蓄積されている場合には、前記第４のフレームを廃棄するステップと、
前記フレーム転送装置が、当該他のフレーム転送装置以外の装置が接続されたポートから第５のフレームを受信した場合、又は、当該他のフレーム転送装置が接続されたポートから前記第４のフレームを受信し、かつ、前記第４のフレームに対応する解析の結果が蓄積されていない場合には、前記第４のフレームの解析の結果又は前記第５のフレームの解析の結果に基づいて、前記第４のフレーム又は前記第５のフレームの転送処理を実行するステップと、を含むことを特徴とするフレーム転送方法。
（２）前記フレーム転送装置は、前記転送モードが切り替えられる前は、前記第１の転送モード又は第２の転送モードのいずれかで動作し、
前記方法は、さらに、
前記第１の転送モード又は前記第２の転送モードから前記第３の転送モードを経由して、前記第１の転送モード又は前記第２の転送モードへ切り替えるステップを含むことを特徴とする（１）に記載のフレーム転送方法。
（３）前記第１のフレームの転送処理は、
前記第１のフレームの解析の結果に基づいて、前記第１のフレームを送信する送信ポートを検索するステップと、
前記送信ポートが１個以上検索された場合には、前記検索された１個以上のポートから前記第１のフレームを送信するステップと、
前記検索された送信ポートが０個の場合には、前記第１のフレームを廃棄するステップと、を含み、
前記第２のフレームの転送処理は、
前記他のフレーム転送装置が接続されるポートを除く前記ポートの中から前記第２のフレームを送信する前記送信ポートを検索するステップと、
前記送信ポートが１個以上検索された場合には、前記検索された１個以上のポートから前記第２のフレームを送信するステップと、
前記検索された送信ポートが０個の場合には、前記第２のフレームを廃棄するステップと、を含み、
前記第４のフレームの転送処理は、
前記他のフレーム転送装置が接続されるポートを除く前記ポートの中から前記第４のフレームを送信する前記送信ポートを検索するステップと、
前記送信ポートが１個以上検索された場合には、前記検索された１個以上のポートから前記第４のフレームを送信するステップと、
前記検索された送信ポートが０個の場合には、前記第４のフレームを廃棄するステップと、を含み、
前記第５のフレームの転送処理は、
前記第５のフレームの解析の結果を蓄積するステップと、
前記第５のフレームの解析の結果に基づいて、前記第５のフレームを送信する送信ポートを検索するステップと、
前記送信ポートが１個以上検索された場合には、前記検索された１個以上のポートから前記第５のフレームを送信するステップと、
前記検索された送信ポートが０個の場合には、前記第５のフレームを廃棄するステップと、を含むことを特徴とする（２）に記載のフレーム転送方法。
（４）前記フレーム転送装置は、
切替条件に関する情報を保持し、
前記切替条件が満たされた場合に、前記転送モードを切り替えることを特徴とする（３）に記載のフレーム転送方法。
（５）前記フレーム転送装置は、前記転送モードの切替指示を受け付けた場合に、前記転送モードを切り替えることを特徴とする（３）に記載のフレーム転送方法。
（６）前記転送モードの切替指示は、ＩＥＥＥ  ８０２．１Ｑｂｇに規定され、前記フレーム転送装置及び前記他のフレーム転送装置の状態を示す情報を含むフレームによって送信されることを特徴とする（５）に記載のフレーム転送方法。
（７）前記方法は、さらに、前記転送モードを切り替える場合に、前記他のフレーム転送装置以外の装置が接続されたポートから受信したフレームの転送を所定時間停止するステップを含むことを特徴とする（３）に記載のフレーム転送方法。
（８）前記方法は、さらに、前記フレームの転送停止中に、前記他のフレーム転送装置以外の装置が接続されたポートからフレームを受信した場合、前記受信したフレームを蓄積するステップと、
前記フレームの転送停止状態が解除された後に、前記蓄積されたフレームを転送するステップと、を含むことを特徴とする（７）に記載のフレーム転送方法。
【符号の説明】
【０５６１】
１０１  ブリッジ装置
１０２  サーバ装置
１０４  ノード装置
１０５  ケーブル
１０８  演算処理装置
１０９  記憶装置
１１０  入出力装置
１１１  ネットワークインタフェース
１１４  共有バス
１１５  演算処理装置
１１６  記憶装置
１１７  入出力装置
１１８  ネットワークインタフェース
１１９  共有バス
１２０  全体制御部
１２１  ポート制御部
１２４  転送ポート管理表
１２５  入出力ポート
１２８  ＥｄｇｅＲｅｌａｙ
１２９  仮想化ソフトウェア
１３０  仮想マシン
２１１  仮想ケーブル
３０６  状態管理部
３０７  制御フレーム処理部
３０８  制御フレーム生成部
３０９  配送ポート決定部
３１０  ポート学習部
３１１  フレーム分類／情報抽出部
３１２  フレーム蓄積部
３１３  送受信制御部
３１４  フレーム受信部
３１５  フレーム送信部
４０１  ＭＡＣアドレス
４０２  ＶＬＡＮ＿ＩＤ
４０３  ポートＩＤ
５０１  ＥＶＢ＿Ｂｒｉｄｇｅ＿ｓｔａｔｕｓ
５０２  ＥＶＢ＿ｓｔａｔｉｏｎ＿ｓｔａｔｕｓ
５０３  ＥＶＢ＿Ｍｏｄｅ
５０４  ＲＲＣＡＰ
５０５  ＲＲＣＴＲ
５０６  ＲＲＲＥＱ
５０７  ＲＲＳＴＡＴ
６０１  ＶＥＢモード
６０２  ＶＥＰＡモード
６０３  ＴＲＡＮモード
６０４  Ｓ０状態
６０５  Ｓ１状態
６０６  Ｓ２状態
６０７  Ｓ３状態
６０８  Ｓ４状態
６０９  Ｓ５状態
７０１  ＳＷモード
７０２  ＲＲモード
７０３  Ｂ０状態
７０４  Ｂ１状態
７０５  Ｂ２状態
７０６  Ｂ３状態
１３０１  ブリッジ装置
１３０２  ＥｄｇｅＲｅｌａｙ
１３０３  サーバ装置
１３０６  ノード装置
１３０７  ケーブル
１３０８  ケーブル
１３１１  ケーブル
【図１】
0005712416.tif 000002
【図２】
0005712416.tif 000003
【図３】
0005712416.tif 000004
【図４】
0005712416.tif 000005
【図５】
0005712416.tif 000006
【図６】
0005712416.tif 000007
【図７】
0005712416.tif 000008
【図８Ａ】
0005712416.tif 000009
【図８Ｂ】
0005712416.tif 000010
【図９】
0005712416.tif 000011
【図１０Ａ】
0005712416.tif 000012
【図１０Ｂ】
0005712416.tif 000013
【図１０Ｃ】
0005712416.tif 000014
【図１０Ｄ】
0005712416.tif 000015
【図１０Ｅ】
0005712416.tif 000016
【図１０Ｆ】
0005712416.tif 000017
【図１１Ａ】
0005712416.tif 000018
【図１１Ｂ】
0005712416.tif 000019
【図１２Ａ】
0005712416.tif 000020
【図１２Ｂ】
0005712416.tif 000021
【図１２Ｃ】
0005712416.tif 000022
【図１２Ｄ】
0005712416.tif 000023
【図１３】
0005712416.tif 000024