(57)【要約】【課題】冗長経路によるフレームのストームを適切に抑制すること。【解決手段】中継装置は、ノードとポートとの対応情報を記憶した対応情報記憶手段と、フレームのフラッディングを抑制するポートを識別可能な情報を記憶したフラッディング抑制ポート記憶手段と、前記フラッディング抑制ポート記憶手段に記憶された情報に基づいて、前記対応情報記憶手段に記憶されていないノードを宛先とするフレームをフラッディングさせるポートを限定する中継手段とを有する。【選択図】図６
2011024178.tif 000002
【特許請求の範囲】
【請求項１】
ノードとポートとの対応情報を記憶した対応情報記憶手段と、
フレームのフラッディングを抑制するポートを識別可能な情報を記憶したフラッディング抑制ポート記憶手段と、
前記フラッディング抑制ポート記憶手段に記憶された情報に基づいて、前記対応情報記憶手段に記憶されていないノードを宛先とするフレームをフラッディングさせるポートを限定する中継手段とを有する中継装置。
【請求項２】
受信された制御フレームに含まれているコマンドに応じて、前記フラッディングを抑制するポートと前記対応情報記憶手段に記録されていないノードとの対応情報を前記対応情報記憶手段に記録する第一の最適化手段を有し、
前記中継手段は、該ノードを宛先とするフレームを当該ノードに対応付けられた前記フラッディングを抑制するポートより送出させる請求項１記載の中継装置。
【請求項３】
請求項１又は２記載の中継装置のフラッディングを抑制するポートによって冗長経路の両端が接続されたネットワークに属する複数の中継装置のいずれかより前記ネットワークの外部ノードの検知を通知する制御フレームを受信し、前記外部ノードが検知されたポートの識別情報と前記ネットワークにおける前記複数の中継装置の接続関係を示す情報とに基づいて、前記複数の各中継装置から前記外部ノードへの最適経路を前記フラッディングを抑制するポートも利用して算出し、算出結果に基づいて前記外部ノードに対応させるポートを指定するコマンドを含む制御フレームを前記ネットワークに送出する第二の最適化手段を有する中継装置。
【請求項４】
前記第二の最適化手段は、前記フラッディングを抑制するポート有する中継装置が他の中継装置より先に前記コマンドを処理するように前記制御フレームを送出する請求項３記載の中継装置。
【請求項５】
中継装置が実行する中継方法であって、
フラッディング抑制ポート記憶手段に記憶された、フレームのフラッディングを抑制するポートを識別可能な情報に基づいて、ノードとポートとの対応情報を記憶した対応情報記憶手段に記憶されていないノードを宛先とするフレームをフラッディングさせるポートを限定する中継手順を有する中継方法。
【請求項６】
中継装置が実行する中継方法であって、
請求項１又は２記載の中継装置のフラッディングを抑制するポートによって冗長経路の両端が接続されたネットワークに属する複数の中継装置のいずれかより前記ネットワークの外部ノードの検知を通知する制御フレームを受信する受信手順と、
前記外部ノードが検知されたポートの識別情報と前記ネットワークにおける前記複数の中継装置の接続関係を示す情報とに基づいて、前記複数の各中継装置から前記外部ノードへの最適経路を前記フラッディングを抑制するポートも利用して算出する最適経路算出手順と、
前記最適経路算出手順の算出結果に基づいて前記外部ノードに対応させるポートを指定するコマンドを含む制御フレームを前記ネットワークに送出する第二の最適化手順を有する中継方法。
【請求項７】
フレームの中継を行う中継装置であって、
ノードとポートとの対応情報を記憶した対応情報記憶手段と、
前記対応情報記憶手段に記憶されたノードについて、対応するポートと異なるポートより当該ノードを送信元とするフレームが受信された場合に、当該フレームを廃棄する廃棄手段と、
宛先が前記対応情報記憶手段に記憶されていないフレームが受信された場合に当該フレームを廃棄すべきことを示す情報をポートごとに記憶したフレーム廃棄設定記憶手段とを有し、
前記廃棄手段は、前記対応情報記憶手段が飽和状態である場合に、冗長経路に接続されたポートより受信され、宛先が前記対応情報記憶手段に記憶されていないフレームを、前記フレーム廃棄設定記憶手段に記憶された情報に基づいて廃棄する中継装置。
【請求項８】
前記冗長経路以外に接続されているポートによって前記対応情報記憶手段に記憶されていないノードを宛先とするフレームが受信された場合に、前記対応情報記憶手段が飽和状態であるときは、前記対応情報記憶手段に記憶されているいずれかの前記対応情報を当該ノードと当該ポートとの対応情報によって置き換える対応情報更新手段を有する請求項７記載の中継装置。
【請求項９】
フレームの中継を行う中継装置が実行する中継方法であって、
ノードとポートとの対応情報を記憶した対応情報記憶手段に記憶されたノードについて、対応するポートと異なるポートより当該ノードを送信元とするフレームが受信された場合に、当該フレームを廃棄し、前記対応情報記憶手段が飽和状態である場合に、冗長経路に接続されたポートより受信され、宛先が前記対応情報記憶手段に記憶されていないフレームを、フレーム廃棄設定記憶手段に記憶された情報に基づいて廃棄する廃棄手順を有し、
前記フレーム廃棄設定記憶手段は、宛先が前記対応情報記憶手段に記憶されていないフレームが受信された場合に当該フレームを廃棄すべきことを示す情報をポートごとに記憶する中継方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、中継装置及び中継方法に関し、特にレイヤ２のフレームを中継する中継装置及び中継方法に関する。
【背景技術】
【０００２】
図１は、スイッチスタッキングを含むネットワーク構成例を示す図である。スイッチ（レイヤ２スイッチ）のスタッキングとは、複数のスイッチをスタック接続し、一つのスイッチとして見せることをいい、スイッチの仮想化ともいえる。図中（Ａ）は物理的なネットワーク構成を示す。（Ａ）において、四つのスイッチ（ＳＷ−Ａ〜ＳＷ−Ｄ）は、スタックリンクＬ１〜Ｌ４のいずれかを介してスタック接続されている。図中（Ｂ）は、（Ａ）の論理的なネットワーク構成を示す。（Ｂ）では、スタック接続された複数のスイッチが論理的に一つのスイッチＶとして見える。この場合、ユーザーは４つのスイッチ（ＳＷ−Ａ〜ＳＷ−Ｄ）を統合的に（一つのスイッチＶとして）管理することができる。
【０００３】
スイッチスタッキングでは、スタックリンクとして冗長な経路を持つのが一般的である。スタックリンクの一つに障害が発生しても冗長な経路を迂回路として使用してフレームの中継を可能とするためである。図１では、スタックリンクＬ４が冗長な経路に相当する。例えば、スイッチＳＷ−ＣとスイッチＳＷ−Ｄとの間のスタックリンクＬ３が障害によって使用できなくなったとしても、スタックリンクＬ４を経由した反対側の経路にフレームを迂回させることでＳＷ−ＣとＳＷ−Ｄとは相互に通信することができる。
【０００４】
但し、冗長経路によってネットワークにループが形成される場合、適切な対処をしないとフレームのストームが発生するという問題がある。
【０００５】
冗長経路によるループに対する対処として、従来、以下の方法がある。
１．ＳＴＰ（Spanning Tree Protocol）によって制御する方法
２．フレームにＴＴＬ（Time to live）を含めて制御する方法
３．フレームの転送元で中継経路を決定する方法
【０００６】
図２は、ＳＴＰによって制御する方法を説明するための図である。ＳＴＰでは冗長経路が適切に切断（ブロック）され、ネットワークループが形成されないように制御される。同図では、スイッチＳＷ−ＡとスイッチＳＷ−ＤとのそれぞれにおいてスタックリンクＬ４へのポートがブロックされている。ＳＴＰでは、また、ブロックしていないリンクに問題が生じて或るスイッチ間の通信ができなくなったときには、ブロックしていた冗長経路を有効にして経路を切り替えることにより、当該スイッチ間の通信を可能とすることができる。
【０００７】
図３は、フレームにＴＴＬを含めて制御する方法を説明するための図である。この方法は、フレームにＴＴＬが含められ、スイッチを一つ通過するごとにＴＴＬが減算され、ＴＴＬが０となるとフレームは破棄される。その結果、フレームが無限にネットワーク上を流通するのを防止することができ、実質的にループを解消することができる。同図では、スイッチＳＷ−ＤからＳＷ−Ａの方向にＴＴＬが１であるフレームＦ１が送信された例が示されている。また、スイッチＳＷ−ＤからスイッチＳＷ−Ｃの方向にＴＴＬが２であるフレームＦ２が送信された例が示されている。フレームＦ１はスイッチＳＷ−Ａより先のスタックリンクへは送出されず、フレームＦ２はスイッチＳＷ−Ｂより先のスタックリンクへは送出されない。
【０００８】
図４は、フレームの転送元で経路を決定する方法を説明するための図である。この方法では、スタックに含まれるスイッチのうち、最初にフレームを受信したスイッチによってスタック内の中継経路が決定され、当該中継経路に応じてフレームが転送される。同図では、スイッチＳＷ−Ｄによって経路が決定され、当該経路の情報（経路情報）を含むフレームＦ３がスイッチＳＷ−Ａに対して送信された例が示されている。スイッチＳＷ−Ａは、フレームＦ３に含まれている経路情報に応じた中継処理を行う。
【０００９】
また、ループの対策に関する技術として他の方法も提案されている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００８−１７７６７７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、ＳＴＰでは、ブロック状態のリンクを活用できないという問題がある。すなわち、通常運用時はブロック状態のリンクでは制御フレームを除くフレームは転送されないため、宛先までの平均ホップ数が多くなってしまう。その結果、スイッチ間で共用されるリンクの負荷が高くなり、フレームの混雑が発生する。
【００１２】
また、フレームにＴＴＬを含める方法については、当該ＴＴＬに対応したスイッチにおいてのみ有効であるという問題がある。レイヤ２のフレームにはＴＴＬは標準ではないからである。
【００１３】
また、フレームの転送元で経路を決定する場合においても、各スイッチには、中継情報を含む特殊形式のフレームを処理可能であることが求められる。また、各スイッチには、経路を登録し、検索する手段が必要とされる。
【００１４】
本発明は、上記の点に鑑みてなされたものであって、冗長経路によるフレームのストームを適切に抑制することのできる中継装置及び中継方法の提供を目的とする。
【課題を解決するための手段】
【００１５】
そこで上記課題を解決するため、中継装置は、ノードとポートとの対応情報を記憶した対応情報記憶手段と、フレームのフラッディングを抑制するポートを識別可能な情報を記憶したフラッディング抑制ポート記憶手段と、前記フラッディング抑制ポート記憶手段に記憶された情報に基づいて、前記対応情報記憶手段に記憶されていないノードを宛先とするフレームをフラッディングさせるポートを限定する中継手段とを有する。
【００１６】
また、上記課題を解決するため、フレームの中継を行う中継装置であって、ノードとポートとの対応情報を記憶した対応情報記憶手段と、前記対応情報記憶手段に記憶されたノードについて、対応するポートと異なるポートより当該ノードを送信元とするフレームが受信された場合に、当該フレームを廃棄する廃棄手段と、宛先が前記対応情報記憶手段に記憶されていないフレームが受信された場合に当該フレームを廃棄すべきことを示す情報をポートごとに記憶したフレーム廃棄設定記憶手段とを有し、前記廃棄手段は、前記対応情報記憶手段が飽和状態である場合に、冗長経路に接続されたポートより受信され、宛先が前記対応情報記憶手段に記憶されていないフレームを、前記フレーム廃棄設定記憶手段に記憶された情報に基づいて廃棄する。
【発明の効果】
【００１７】
開示された装置及び方法によれば、冗長経路によるフレームのストームを適切に抑制することができる。
【図面の簡単な説明】
【００１８】
【図１】スイッチスタッキングを含むネットワーク構成例を示す図である。
【図２】ＳＴＰによって制御する方法を説明するための図である。
【図３】フレームにＴＴＬを含めて制御する方法を説明するための図である。
【図４】フレームの転送元で経路を決定する方法を説明するための図である。
【図５】本発明の実施の形態におけるネットワーク構成例を示す図である。
【図６】本発明の実施の形態におけるスイッチの構成例を示す図である。
【図７】第一の実施の形態においてユニキャストフレーム受信時のスイッチの動作を説明するためのフローチャートである。
【図８】未学習ノードの学習時のスイッチスタックの動作を説明するための図である。
【図９】学習処理の後の中継ＤＢの内容を示す図である。
【図１０】外部ノードＡ宛のフレームが受信されたときの動作を説明するための図である。
【図１１】中継経路の最適化のための未学習ノードの通知処理を説明するためのフローチャートである。
【図１２】フレームの中継経路の最適化のためのスイッチスタックの動作を説明するための図である。
【図１３】スレーブスイッチからの新規ノード検知フレームに応じてマスタースイッチによって実行される処理を説明するためのフローチャートである。
【図１４】経路設定フレームの構成例を示す図である。
【図１５】経路設定フレームに基づいて実行される処理を説明するためのフローチャートである。
【図１６】経路設定フレームに基づく中継ＤＢの更新処理を説明するための図である。
【図１７】中継ＤＢの更新例を示す図である。
【図１８】ＩＧＭＰスヌーピングを説明するための図である。
【図１９】第二の実施の形態においてＱｕｅｒｙメッセージを受信したときのスイッチスタックの動作を説明するための図である。
【図２０】マルチキャストフレームの中継において使用されないスタックリンクを示す図である。
【図２１】第二の実施の形態においてＪｏｉｎメッセージを受信したときのスイッチスタックの動作を説明するための図である。
【図２２】第二の実施の形態において各メンバよりＪｏｉｎメッセージを受信した場合の学習内容を示す図である。
【図２３】第二の実施の形態においてマルチキャストフレームに関する最適化された中継経路を示す図である。
【図２４】第三の実施の形態においてＱｕｅｒｙメッセージ受信前にＪｏｉｎメッセージを受信したときのスイッチスタックの動作を説明するための図である。
【図２５】第三の実施の形態においてＱｕｅｒｙメッセージ受信前にＪｏｉｎメッセージを受信したときのスイッチスタックの動作を説明するための図である。
【図２６】第三の実施の形態においてＱｕｅｒｙメッセージを受信したときのスイッチスタックの動作を説明するための図である。
【図２７】第四の実施の形態においてＱｕｅｒｙメッセージ受信前にＪｏｉｎメッセージを受信したときのスイッチスタックの動作を説明するための図である。
【図２８】第五の実施の形態におけるスイッチの構成例を示す図である。
【図２９】第五の実施の形態のスイッチによるフレーム受信時の動作を説明するためのフローチャートである。
【図３０】第五の実施の形態において受信内容が中継ＤＢと一致しない場合のスイッチスタックの動作を説明するための図である。
【図３１】第五の実施の形態において中継ＤＢが飽和状態の場合のスイッチスタックの動作を説明するための図である。
【図３２】第五の実施の形態において中継ＤＢが飽和状態の場合に空きエントリを作成し強制的に学習させる意義を説明するための図である。
【発明を実施するための形態】
【００１９】
以下、図面に基づいて本発明の実施の形態を説明する。図５は、本発明の実施の形態におけるネットワーク構成例を示す図である。
【００２０】
同図において、スイッチスタック１は、スイッチＳＷ１、ＳＷ２、ＳＷ３及びＳＷ４（以下、各スイッチを区別しない場合「スイッチＳＷ」という。）を含む。各スイッチＳＷは、レイヤ２スイッチ（又は「スイッチングハブ」とも呼ばれる）であり、フレームを中継する中継装置の一例である。各スイッチＳＷは、図中において隣り合うスイッチとスタック接続されている。スイッチ間を接続するケーブルを、以下「スタックリンク」という。同図では、スタックリンクＬ１〜Ｌ４が示されている。スタックリンクＬ４は、ネットワークの障害耐久性を向上させるための冗長経路である。その結果、スイッチＳＷ１〜ＳＷ４においてループが形成されている。
【００２１】
スイッチスタック１において、スイッチＳＷ３は、マスタースイッチであるとする。後述されるように、マスタースイッチは、スイッチスタック１内の最適経路を算出し、判断結果を他のスイッチＳＷに通知する等の役割を担う。最適経路は、通常は、スイッチスタック１内においてホップ数が最小となる経路（最短経路）をいう。なお、スイッチスタック１内においてマスタースイッチ以外のスイッチを、マスタースイッチとの相対的な関係において「スレーブスイッチ」という。したがって、本実施の形態において、スイッチＳＷ１、ＳＷ２、及びＳＷ４がスレーブスイッチである。
【００２２】
外部ノードＡは、スイッチＳＷ１と接続されているネットワーク機器（例えば、ルーター）であり、本実施の形態において、スイッチスタック１に対するフレームの送信元となる。また、各スイッチＳＷには、ＰＣ（Personal Computer）等の端末Ｔが接続されている。例えば、スイッチＳＷ１には、端末Ｔ１１及びＴ１２が接続されている。
【００２３】
図６は、本発明の実施の形態におけるスイッチの構成例を示す図である。本実施の形態において各スイッチＳＷは、フラッディング抑制設定部１１、最適化部１２、中継部１３、中継ＤＢ１４、及びポートＰ等を有する。
【００２４】
中継部１３は、スイッチＳＷの基本的な機能であるフレームの中継等を行う。具体的には、中継部１３は、フレームの受信に応じ、受信フレームの送信元ＭＡＣアドレスと受信ポートとの対応情報を中継ＤＢ１４に記録する。中継部１３は、受信フレームの宛先ＭＡＣアドレスとポートとの対応情報が中継ＤＢ１４に登録されている場合には、当該ポートより受信フレームを送出させる。中継部１３は、受信フレームの宛先ＭＡＣアドレスとポートとの対応情報が中継ＤＢ１４に登録されていない場合には、フラッディングを行う。フラッディングとは、受信フレームの宛先が中継ＤＢ１４に未登録の場合に、宛先ノードがどのポートに接続されているか分からないため、受信ポート以外の全てのポートより受信フレームを送出することをいう。
【００２５】
但し、本実施の形態において、各ポートＰは、フラッディング抑制部１５を有する。フラッディング抑制部１５は、対応するポートＰがフラッディング抑制状態であるか否か示す情報を管理（保持）する。例えば、フラッディング抑制部１５は、ポートＰ内のメモリの１ビット分の記憶領域として実現される。フラッディング抑制部１５（当該ビット）の値がＯＮ（１）であれば、当該ポートＰはフラッディング抑制状態であることを示し、フラッディング抑制部１５の値がＯＦＦ（０）であれば、当該ポートＰはフラッディング抑制状態ではないことを示す。中継部１３は、フラッディング抑制状態のポートＰ（以下、「フラッディング抑制ポート」という。）については、当該ポートＰに対応付けられているＭＡＣアドレスを宛先とするフレームのみを送出させる。すなわち、フラッディング時において、フラッディング抑制ポートからはフレームは送出されない。
【００２６】
フラッディング抑制設定部１１は、フラッディング抑制状態の設定又は設定解除の指示入力に応じ、設定又は設定解除対象とされたポートＰのフラッディング抑制部１５のＯＮ／ＯＦＦの設定を行う。フラッディング抑制設定部１１に対する指示入力は、スイッチＳＷのハード的なインタフェース（操作ボタン等）を介して入力されてもよいし、フラッディング抑制対象の指定コマンドを含むフレームの入力によって行われてもよい。
【００２７】
最適化部１２は、フレームの中継経路を最適（最短）とするための処理を実行する。
【００２８】
なお、中継部１３は、ＡＳＩＣ等の専用のチップによって実現される。また、フラッディング抑制設定部１１及び最適化部１２等は、中継部１３との比較において高速な処理は要求されないため、スイッチＳＷのメモリに記録されたプログラムがＣＰＵに実行させる処理によって実現される。但し、フラッディング抑制設定部１１及び最適化部１２も専用のチップによって実現されてもよい。
【００２９】
以下、スイッチＳＷの動作を説明する。第一の実施の形態として、ユニキャストフレームが転送対象である場合について説明する。図７は、第一の実施の形態においてユニキャストフレーム受信時のスイッチの動作を説明するためのフローチャートである。
【００３０】
スイッチＳＷにおいてフレーム（ユニキャストフレーム）が受信されると（Ｓ１０１）、スイッチＳＷの中継部１３は、受信されたフレーム（受信フレーム）の送信元ＭＡＣアドレスに対するエントリを中継ＤＢ１４より検索する（Ｓ１０２）。該当するエントリが検索されない場合（Ｓ１０３でＮｏ）、中継部１３は、未知のＭＡＣアドレス（未学習ノード）に対するエントリを中継ＤＢ１４に登録する（Ｓ１０４）。具体的には、当該ＭＡＣアドレスと受信ポートとの対応情報が中継ＤＢ１４に登録される。これによって、未学習ノードは学習されたことになる。
【００３１】
続いて、中継部１３は、受信フレームの宛先ＭＡＣアドレスに対するエントリを中継ＤＢ１４より検索する（Ｓ１０５）。該当するエントリが検索された場合（Ｓ１０６でＹｅｓ）、中継部１３は、検索されたエントリにおいて宛先ＭＡＣアドレスに対応付けられているポートＰより受信フレームを送出させる（Ｓ１０７）。該当するエントリが検索されなかった場合（Ｓ１０６でＹｅｓ）、中継部１３は、受信フレームをフラッディング抑制ポート以外のポートＰよりフラッディングさせる（Ｓ１０８）。
【００３２】
図７の処理が各スイッチＳＷにおいて実行されることにより、スイッチスタック１全体として、例えば図８に示されるような処理が実行される。
【００３３】
図８は、未学習ノードの学習時のスイッチスタックの動作を説明するための図である。図中（１）〜（５）において、スイッチＳＷ１の左側とスイッチＳＷ４の右側に記されているブロック記号Ｂは、フラッディング抑制ポートの位置を示す。具体的には、同図のスイッチＳＷ１においてスタックリンクＬ４が接続されているポートＰ、及びスイッチＳＷ４においてスタックリンクＬ４が接続されているポートＰは、フラッディング抑制ポートである。すなわち、冗長経路の両端に接続されているポートＰがフラッディング抑制ポートとされている。
【００３４】
（１）に示されるように、スイッチＳＷ１において、未学習の外部ノードＡよりフレームＦＡが受信されると、スイッチＳＷ１の中継部１３は、フレームＦＡの送信元ＭＡＣアドレスと受信ポートＰ１１との対応情報をスイッチＳＷ１の中継ＤＢ１４に登録する。なお、ポートを示す円の中に「Ａ」の文字が記載されていることは、当該ポートと外部ノードＡのＭＡＣアドレスとの対応情報が中継ＤＢ１４に登録されたことを示す。
【００３５】
続いて、（２）に示されるように、スイッチＳＷ１の中継部１３は、受信されたフレームＦＡをフラッディングさせる。スイッチＳＷ１よりフラッディングされたフレームＦＡを受信したスイッチＳＷ２の中継部１３は、受信ポートＰ２１とフレームＦＡの送信元ＭＡＣアドレス（外部ノードＡのＭＡＣアドレス）との対応情報をスイッチＳＷ２の中継ＤＢ１４に登録する。但し、スイッチＳＷ１においてフラッディング抑制ポートからはフレームＦＡは送出されない。したがって、スイッチＳＷ１からスイッチＳＷ４に対してフレームＦＡは転送されない。その結果、スイッチスタック１内において、フレームＦＡのストームが適切に防止される。
【００３６】
続いて、（３）に示されるように、スイッチＳＷ２の中継部１３は、受信されたフレームＦＡをフラッディングさせる。スイッチＳＷ２よりフラッディングされたフレームＦＡを受信したスイッチＳＷ３の中継部１３は、受信ポートＰ３１とフレームＦＡの送信元ＭＡＣアドレス（外部ノードＡのＭＡＣアドレス）との対応情報をスイッチＳＷ３の中継ＤＢ１４に登録する。
【００３７】
続いて、（４）に示されるように、スイッチＳＷ３の中継部１３は、受信されたフレームＦＡをフラッディングさせる。スイッチＳＷ３よりフラッディングされたフレームＦＡを受信したスイッチＳＷ４の中継部１３は、受信ポートＰ４１とフレームＦＡの送信元ＭＡＣアドレス（外部ノードＡのＭＡＣアドレス）との対応情報をスイッチＳＷ４の中継ＤＢ１４に登録する。
【００３８】
続いて、（５）に示されるように、スイッチＳＷ４の中継部１３は、受信されたフレームＦＡをフラッディングさせる。但し、スイッチＳＷ４において、フラッディング抑制ポートからはフレームＦＡは送出されない。したがって、スイッチＳＷ４からスイッチＳＷ１に対してフレームＦＡは転送されない。その結果、スイッチスタック１内において、フレームＦＡのストームが適切に防止される。
【００３９】
図８の学習処理の結果、各スイッチＳＷの中継ＤＢ１４には、図９に示されるような情報が登録される。図９は、学習処理の後の中継ＤＢの内容を示す図である。同図に示されるように、スイッチＳＷ１の中継ＤＢ１４にはポートＰ１１とノードＡのＭＡＣアドレスとの対応情報が登録される。スイッチＳＷ２の中継ＤＢ１４にはポートＰ２１と外部ノードＡのＭＡＣアドレスとの対応情報が登録される。スイッチＳＷ３の中継ＤＢ１４にはポートＰ３１とノードＡのＭＡＣアドレスとの対応情報が登録される。スイッチＳＷ４の中継ＤＢ１４にはポートＰ４１とノードＡのＭＡＣアドレスとの対応情報が登録される。この状態において、いずれかのスイッチＳＷが外部ノードＡ宛のフレームを受信した場合について説明する。
【００４０】
図１０は、外部ノードＡ宛のフレームが受信されたときの動作を説明するための図である。同図では、端末Ｔ４２からスイッチＳＷ４に対して外部ノードＡ宛のフレームＦａが送信された例が示されている。この場合、スイッチＳＷ４の中継部１３は、中継ＤＢ１４に基づいてポートＰ４１よりフレームＦａを送出する。その後、フレームＦａは、スイッチＳＷ３のポートＰ３１、スイッチＳＷ２のポートＰ２１、及びスイッチＳＷ１のポートＰ１１を経由し、外部ノードＡに到達する。
【００４１】
図１０に示される経路では、スイッチスタック１内のホップ数は３である。一方、スタックリンクＬ４を利用することができれば、スイッチスタック１内のホップ数は１となり、より効率的にフレームＦａを転送することができる。フレームＦａは、スイッチＳＷ４からスイッチＳＷ１へ直接転送されるからである。
【００４２】
そこで、本実施の形態において、未学習ノードを送信元とするフレーム（以下、「未学習フレーム」という。）をスイッチスタック１の外部より受信した各スイッチＳＷは、中継経路の最適化のため図１１に示される処理を実行する。なお、最適化のための処理は、図８の処理（学習処理）と並行して実行される。すなわち、図８では、説明の便宜上、最適化のための処理に関する説明は省略されている。
【００４３】
図１１は、中継経路の最適化のための未学習ノードの通知処理を説明するためのフローチャートである。
【００４４】
ステップＳ２０１において、スイッチＳＷの最適化部１２は、未学習ノードの学習を検知する。最適化部１２による未学習ノードの学習の検知の方法は、所定のものに限定されない。例えば、中継部１３が、ステップＳ１０４を実行した後に新たに登録したエントリを最適化部１２に送信して、未学習ノードの学習を最適化部１２に通知してもよい。この場合、後述されるステップＳ２０２は、未学習フレームが受信に応じて逐次実行される。又は、最適化部１２は、中継ＤＢ１４を定期的にポーリングすることにより、未学習フレームに基づく新たなエントリの追加を検知してもよい。この場合、後述されるステップＳ２０２は、定期的に実行される。
【００４５】
続いて、最適化部１２は、新たに学習された未学習ノード（以下、「新規ノード」という。）のＭＡＣアドレスと未学習フレームの受信ポートとの対応情報を含む制御フレームをマスタースイッチ（スイッチＳＷ３）に送信する（Ｓ２０２）。なお、当該制御フレームを、以下「新規ノード検知フレーム」という。
【００４６】
図１２は、フレームの中継経路の最適化のためのスイッチスタックの動作を説明するための図である。図中（１）では、外部ノードＡからのフレームＦＡに基づいて、新規ノード検知フレームＦＣ１がスイッチＳＷ１からスイッチＳＷ３に送信されている例が示されている。図１２に示される処理（すなわち、図１１のステップＳ２０２）は、スイッチＳＷ１以外の各スレーブスイッチによっても実行される。すなわち、スイッチＳＷ２及びＳＷ４の最適化部１２は、スイッチＳＷ１又はＳＷ３よりフラッディングされるフレームＦＡの受信に応じ、新規ノード検知フレームＦＣ１をスイッチＳＷ３に送信する。なお。各スイッチＳＷのメモリには、当該スイッチＳＷがマスタースイッチであるかスレーブスイッチであるかを示す情報が記録されている。各スイッチＳＷの最適化部１２は、当該情報に基づいて当該スイッチＳＷがマスタースイッチであるかスレーブスイッチであるかを判定する。
【００４７】
続いて、新規ノード検知フレームＦＣ１を受信したマスタースイッチにおいて実行される処理について説明する。
【００４８】
図１３は、スレーブスイッチからの新規ノード検知フレームに応じてマスタースイッチによって実行される処理を説明するためのフローチャートである。
【００４９】
マスタースイッチの中継部１３は、新規ノード検知フレームを受信すると、新規ノード検知フレームに含まれているデータをマスタースイッチの最適化部１２に送信する（Ｓ３０１）。新規ノードに含まれているデータとは、新規ノードのＭＡＣアドレスと受信ポートとの対応情報を含むデータである。なお、ステップＳ３０１は、新規ノード検知フレームが各スレーブスイッチより受信されるたびに実行される。
【００５０】
全てのスレーブスイッチより新規ノード検知フレームが受信されると、最適化部１２は、ステップＳ３０２以降の処理を実行する。換言すれば、マスタースイッチの最適化部１２は、全てのスレーブスイッチより新規ノード検知フレームが受信されるまで、ステップＳ３０２の実行を待機する。この待機は、これから実行される最適化のための処理が、図８において説明した学習処理より先に実行されないようにするためである。すなわち、最適化された状態が、学習処理によって上書きされないようにするためのである。したがって、ステップＳ３０２が実行される時点において、スイッチスタック１の各スイッチＳＷによる学習内容は、図９に示した通りとなっている。
【００５１】
ステップＳ３０２において、最適化部１２は、中継部１３より通知されたデータとスイッチスタック１のトポロジー情報とに基づいて、スイッチＳＷごとに外部ノードＡへの最適経路を算出（判定）する（Ｓ３０２）。最適経路の算出には、新規ノード（外部ノードＡ）に接続されているスイッチＳＷ（スイッチＳＷ１）より受信された新規ノード検知フレームに含まれていたデータが利用される。新規ノードに接続されているスイッチＳＷがいずれであるかはトポロジー情報に基づいて判定可能である。最適経路の算出結果（最適経路情報）として、各スイッチＳＷにおいて、新規ノードへの最短の経路となる送信ポートを示す情報が出力される。
【００５２】
スイッチスタック１のトポロジー情報とは、スイッチスタック１に含まれる各スイッチＳＷの接続関係を示す情報をいう。より詳しくは、各スイッチがいずれのポートによって他のスイッチと接続されているかを示す情報をいう。トポロジー情報は、予め判定又は定義され、マスタースイッチであるスイッチＳＷ３のメモリ内に記録されている。最適経路の計算は、公知技術を利用すればよい。例えば、ＳＴＰ（Spanning Tree Protocol）においても最適経路の判定が行われるが、ＳＴＰにおける方法と同じ方法によって最適経路が計算されてもよい。なお、最適経路の計算において、フラッディング抑制ポートついても最適経路に含まれうる。すなわち、フラッディング抑制ポートであることを理由に最適経路から除外されることはない。むしろ、フラッディング抑制ポートを利用したより効率的な経路を探し出すのが最適化の目的である。
【００５３】
続いて、最適化部１２は、空の経路設定フレームを生成する（Ｓ３０３）。経路設定フレームとは、新規ノードへの最適経路の設定をスレーブスイッチに実行させるためのコマンドを含む制御フレームをいう。続いて、最適化部１２は、スイッチスタック１のフラッディング抑制ポートの中で、送信ポートとして最適経路に利用されているポートＰを処理対象とする（Ｓ３０４）。本実施の形態において、フラッディング抑制ポートは二つ有る。一つはスイッチＳＷ１のポートＰであり、もう一つはスイッチＳＷ４のポートＰである。このうち、スイッチＳＷ１のフラッディング抑制ポートは、送信ポートとしては最適経路に利用されない。スイッチＳＷ１において外部ノードＡへの最適経路は、フレームＦＡの受信ポートだからである。一方、スイッチＳＷ４のフラッディング抑制ポートは送信ポートとして最適経路に利用される。スイッチＳＷ４から外部ノードＡへは、当該フラッディング抑制ポートを介してスイッチＳＷ１を経由するのが最短の経路だからである。したがって、ここでは、スイッチＳＷ４のフラッディング抑制ポートが処理対象とされる。
【００５４】
続いて、最適化部１２は、処理対象のポートを新規ノードに対応させるためのコマンドを経路設定フレームに追加する（Ｓ３０５）。ここで、処理対象のポートを新規ノードに対応させるためのコマンドとは、当該ポートを有するスイッチＳＷに、当該ポートを新規ノードに対応するポートとするように中継ＤＢ１４を更新させる指示を含むコマンドをいう。
【００５５】
図１４は、経路設定フレームの構成例を示す図である。同図の経路設定フレームＦＣ２において、フレームヘッダに続く、コマンド１〜コマンドｎのうちの一つがステップＳ３０５において追加されるコマンドである。一つのコマンドは、一つのスイッチＳＷに対応し、スイッチＩＤと一つ以上のサブコマンド（図中における、コマンド１−１〜コマンド１−ｍを含む。スイッチＩＤは、当該コマンドに対応する（当該コマンドを実行すべき）スイッチＳＷの識別子であり、例えば、当該スイッチＳＷのＭＡＣアドレスである。各サブコマンドは、コマンドコード、ＭＡＣアドレス、及びポートビットマップ等を含む。但し、末端のサブコマンドは、最後であることを示す符号（図中では“Ｅｎｄ”によって表現されている。）を含む。コマンドコードは、コマンドの種別を示す情報である。図示されている“ＦＤＢ  ｕｐｄａｔｅ”は、中継ＤＢ１４の更新を示す。ＭＡＣアドレスは、更新対象とされるＭＡＣアドレスである。ポートビットマップは、更新対象とされるポートＰを示すビット列である。例えば、スイッチＳＷが３２個のポートＰを有する場合、ポートビットマップは３２ビットのビット列であり、更新対象とされるポートＰに対応するビットが１となっている。なお、一つのスイッチＳＷに対して、複数のサブコマンドを指定可能なのは、複数のポートＰに対する中継ＤＢ１４の更新を一度に指示可能とするためである。
【００５６】
本実施の形態において、最初のステップＳ３０５では、スイッチＩＤがスイッチＳＷ４に対する識別子であり、新規ノード（外部ノードＡ）のＭＡＣアドレスと処理対象のポートＰを示すポートビットマップとを含むコマンド１が経路設定フレームＦＣ２に追加される。
【００５７】
続いて、最適化部１２は、処理対象のポートを有するスイッチＳＷに接続されている他のスイッチＳＷのポートであって、最適経路に含まれているものを最適経路情報より検索する（Ｓ３０６）。ここでは、スイッチＳＷ４に接続されているスイッチＳＷ３のポートが検索される。なお、スイッチＳＷ３については、スイッチＳＷ４を経由する経路の距離（ホップ数）とスイッチＳＷ２を経由する経路の距離とは同じである。但し、本実施の形態では、説明の便宜上、スイッチＳＷ４を経由する経路が、スイッチＳＷ３から外部ノードＡへの最適経路としてステップＳ３０２において採用されたこととする。したがって、ステップＳ３０６では、スイッチＳＷ３においてスイッチＳＷ４に接続されるポートが検索される。
【００５８】
該当するポートが検索された場合（Ｓ３０７でＮｏ）、最適化部１２は、該当ポートを新たに処理対象とし（Ｓ３０８）、ステップＳ３０５以降を繰り返す。したがって、新たな処理対象のポートを新規ノードに対応させるためのコマンドが更に経路設定フレームＦＣ２に追加される（Ｓ３０５）。但し、続くステップＳ３０６において、スイッチＳＷ３に接続されている他のスイッチＳＷのポートであって、最適経路に含まれているポートは検索されない。スイッチＳＷ２から外部ノードＡまでの最適経路はスイッチＳＷ１を経由するものであるからである。したがって、ステップＳ３０７では該当するポートは無いと判定される。そこで、最適化部１２は、最適経路に含まれるフラッディング抑制ポートを有するスイッチＳＷ宛に経路設定フレームＦＣ２を送信する（Ｓ３０９）。ここで、「最適経路に含まれるフラッディング抑制ポートを有するスイッチＳＷ」とは、ステップＳ３０４において最初に処理対象とされたポートを有するスイッチＳＷである。したがって、本実施の形態では宛先ＭＡＣアドレスにスイッチＳＷ４のＭＡＣアドレスが記録された経路設定フレームＦＣ２が送信される。図１２（２）には、マスタースイッチであるスイッチＳＷ３からスイッチＳＷ４に対して経路設定フレームＦＣ２が送信される様子が示されている。
【００５９】
続いて、経路設定フレームＦＣ２を受信したスイッチにおいて実行される処理手順について説明する。図１５は、経路設定フレームに基づいて実行される処理を説明するためのフローチャートである。なお、本実施の形態において経路設定フレームＦＣ２は、スイッチＳＷ４によって最初に処理される。したがって、ここでは、スイッチＳＷ４の処理として図１５を説明する。
【００６０】
スイッチＳＷ４の中継部１３は、宛先ＭＡＣアドレスがスイッチＳＷ４のＭＡＣアドレスである経路設定フレームＦＣ２を受信すると、経路設定フレームＦＣ２を最適化部１２に出力する（Ｓ４０１）。最適化部１２は、スイッチＳＷ４に対するコマンドを経路設定フレームＦＣ２より抽出し、当該コマンドに基づいてスイッチＳＷ４の中継ＤＢ１４を更新する（Ｓ４０２）。なお、スイッチＳＷ４に対するコマンドであるか否かは、コマンド内に含まれているスイッチＩＤに基づいて判定される。
【００６１】
図１６は、経路設定フレームに基づく中継ＤＢの更新処理を説明するための図である。図中（１）に示されるように、スイッチＳＷ４の最適化部１２は、経路設定フレームＦＣ２のコマンドに基づいて、中継ＤＢ１４において外部ノードＡのＭＡＣアドレスに対応するポートＰをポートＰ４１からポートＰ４２へ変更（更新）する。その結果、スイッチＳＷ４において受信される外部ノードＡ宛のフレームＦａはリンクＬ４に送出され、ＳＷ１を経由して外部ノードＡに到達するようになる。
【００６２】
また、図１７は、中継ＤＢの更新例を示す図である。同図の中継ＤＢ１４において、外部ノードＡのＭＡＣアドレスは、便宜上、「Ａ」として示されている。同図では、ＭＡＣアドレス「Ａ」に対応付けられていたポートビットマップ「０ｘ０００００００２」が、「０ｘ０００００００４」に更新された例を示す。なお、「０ｘ０００００００２」は、ポートＰ４１を示すポートビットマップであり、「０ｘ０００００００４」は、ポートＰ４２を示すポートビットマップである。
【００６３】
図１５に戻る。続いて、最適化部１２は、スイッチＳＷ４以外のコマンドが経路設定フレームＦＣ２に含まれているか否かを判定する（Ｓ４０３）。本実施の形態では、スイッチＳＷ３に対するコマンドも含まれている。従って、ステップＳ４０４に進む。ステップＳ４０４において、スイッチＳＷ４の最適化部１２は、スイッチＳＷ４に対するコマンドをコマンド経路設定フレームＦＣ２より除去する（Ｓ４０５）。続いて、最適化部１２は、経路設定フレームＦＣ２の宛先ＭＡＣアドレスを、コマンドの並び順において先頭のコマンドに含まれているスイッチＩＤに係るスイッチＳＷのＭＡＣアドレスとする（Ｓ４０５）。したがって、ここでは、スイッチＳＷ３が宛先とされる。続いて、最適化部１２は、スイッチＳＷ３に対して経路設定フレームＦＣ２を送信する（Ｓ４０６）。
【００６４】
スイッチＳＷ４より送信された経路設定フレームＦＣ２がスイッチＳＷ３によって受信されると、スイッチＳＷ３によって図１５に示される処理が実行される。その結果、スイッチＳＷ３の中継ＤＢ１４は、図１６（２）に示されるように更新される。すなわち、外部ノードＡに対するポートＰが、ポートＰ３１からポートＰ３２に変更される。その結果、スイッチＳＷ３において受信される外部ノードＡ宛のフレームＦａはスイッチＳＷ４及びスイッチＳＷ１を経由して外部ノードＡに到達するようになる。なお、本実施の形態において、スイッチＳＷ１及びＳＷ２については、経路設定フレームＦＣ２は伝搬されない。したがって、中継ＤＢ１４の更新も行われない。スイッチＳＷ１及びＳＷ２については、学習時における経路が既に最適なものであるからである。
【００６５】
ところで、図１３の処理によれば、フラッディング抑制ポートに近いポートから順番に、当該ポートを有するスイッチＳＷに対するコマンドが経路設定フレームＦＣ２に追加される。また、図１５の処理によれば、経路設定フレームＦＣ２内におけるコマンドの配列順に、制御設定フレームＦＣ２が伝搬される。
【００６６】
その結果、図１６の（１）及び（２）に示されるように、本実施の形態では、フラッディング抑制ポートを有するスイッチＳＷにおいて最初に中継ＤＢ１４の更新が行われる。その後、フラッディング抑制ポートに近いスイッチＳＷから順に中継ＤＢ１４の更新が行われる。これは、経路設定フレームＦＣ２に基づいて各スイッチＳＷにおいて中継ＤＢ１４が更新される過程においてもフレームＦａの中継が適切に行われるようにするためである。すなわち、仮にスイッチＳＷ３の中継ＤＢ１４が先に更新されてしまうと、スイッチＳＷ３及びＳＷ４の双方において、外部ノード宛のフレームＦａの送出先が相手側となってしまう。その結果、スイッチＳＷ３又はＳＷ４においてフレームＦａが受信された場合、フレームＦａは、正しく転送されないからである。
【００６７】
なお、上記では、一つの経路設定フレームＦＣ２内に複数のスイッチＳＷに対するコマンドを含め、当該経路設定フレームＦＣ２が複数のスイッチＳＷに伝搬される例を示した。但し、一つの経路設定フレームＦＣ２には一つのスイッチＳＷに対するコマンドのみを含めるようにしてもよい。この場合、マスタースイッチは、中継ＤＢ１４の更新が必要な各スイッチＳＷに経路設定フレームＦＣ２を送信すればよい。但し、この際、マスタースイッチは、フラッディング抑制ポートに近いスイッチＳＷの中継ＤＢ１４から順に更新されるよう、各経路設定フレームＦＣ２の送信順及び送信のタイミングを制御する必要がある。そのためには、例えば、各スイッチＳＷより中継ＤＢ１４の更新の完了を報告してもらい、当該報告の受信後に次のスイッチＳＷ２に対して経路設定フレームＦＣ２を送信するといった複雑な制御が必要とされうる。一方、本実施の形態において説明した一つの経路設定フレームＦＣ２を順番に伝搬させる方式によれば、斯かる複雑な制御を要しない点において優れている。
【００６８】
上述したように、第一の実施の形態のスイッチＳＷによれば、フラッディング抑制ポートによってフラッディングによるフレームのストームを抑制することができる。ここで、フラッディング抑制ポートは、学習済みのフレームについては送出に利用されるため、フラッディング抑制ポートに接続されたスタックリンクを有効に利用することができる。したがって、フレームのホップ数の増加やスタックリンクの混雑等を適切に抑制することができる。
【００６９】
また、第一の実施の形態のスイッチスタック１によれば、マスタースイッチの制御による中継経路の最適化が行われる。最適化においては、フラッディング抑制ポートも利用対象とされる。その結果、新たに学習された外部のノードへの中継経路を効率化することができる。
【００７０】
また、通常のデータを転送するためのフレーム（例えば、フレームＡ）には特別な情報は付加されない。すなわち、最適化のための処理には制御フレームが利用され、通常のデータを転送するためのフレームは利用されない。したがって、各スイッチＳＷに対して、特別なフレームを処理するためのハードウェアの追加量を削減することができる。
【００７１】
なお、スイッチスタック１内の全てのスイッチＳＷがフラッディング抑制設定部１１及びフラッディング抑制部１５を有している必要はない。本実施の形態では、スイッチＳＷ１及びＳＷ４がフラッディング抑制設定部１１及びフラッディング抑制部１５を有していればよい。すなわち、冗長経路に接続されるスイッチＳＷがフラッディング抑制設定部１１及びフラッディング抑制部１５を有していればよい。
【００７２】
また、本実施の形態においては、スイッチスタック１を例として説明したが、本実施の形態の適用範囲は、スタック接続されたスイッチに限定されない。ループを形成するようにスイッチが接続されたネットワークシステムであれば、本実施の形態は適切に適用されうる。
【００７３】
また、ネットワークのトポロジーもリングトポロジーに限定されない。他のトポロジーにおいてループが形成される場合に対しても、本実施の形態は適切に適用されうる。
【００７４】
次に、第二の実施の形態について説明する。第二の実施の形態では、マルチキャストフレームが転送対象とされる。まず、第二の実施の形態において利用される技術であるＩＧＭＰ（Internet Group Management Protocol）スヌーピングについて説明する。
【００７５】
図１８は、ＩＧＭＰスヌーピングを説明するための図である。図中（Ａ−１）に示されるように、ＩＧＭＰでは、まず、マルチキャストを発信するルーターが、特定のマルチキャストグループのメンバを問い合わせるＱｕｅｒｙメッセージＱを発信する。ＱｕｅｒｙメッセージＱはスイッチで中継され、各ポートからフラッディングされる。
【００７６】
（Ａ−２）に示されるように、フラッディングされたＱｕｅｒｙメッセージを受信したノードｎ１〜ｎ３のうち、当該マルチキャストのメンバであるノードｎ１及びｎ３は、メンバシップレポートを返信する。メンバシップレポートのうち、最初のものをＪｏｉｎメッセージと呼ぶ。ＪｏｉｎメッセージＪを受信したスイッチは、ＪｏｉｎメッセージＪをルーターへと中継する際に、ＪｏｉｎメッセージのＩＰパケットをスヌープ（覗き見）することで、特定のマルチキャストグループのメンバがどのポートに存在するかを検知する。
【００７７】
そこで、（Ａ−３）に示されるように、スイッチは、当該マルチキャストグループに対応するＭＡＣアドレスと、メンバの存在するポートとの対応情報を中継ＤＢ１４に登録する。なお、マルチキャストグループに対応するＭＡＣアドレスは、Ｑｕｅｒｙメッセージ又はＪｏｉｎメッセージを含むフレームの宛先ＭＡＣアドレスとして含まれている。
【００７８】
続いて、（Ｂ）に示されるように、ルーターからマルチキャストフレームが送信されると、スイッチは、ＩＧＭＰスヌープによって登録されたポートからマルチキャストフレームを送出する。したがって、当該マルチキャストのメンバではないノードｎ２には、フレームは中継されない。その結果、マルチキャストにおいて、スイッチのフラッディングによる不必要なフレームの転送が抑制される。これが、ＩＧＭＰスヌーピングの目的である。
【００７９】
第二の実施の形態では、このようなＩＧＭＰスヌーピングを利用したマルチキャストが本実施の形態におけるスイッチスタック１を経由して行われる場合について説明する。なお、便宜上、第二の実施の形態におけるネットワーク構成例及びスイッチスタック１の構成例は第一の実施の形態（図５）と同様とする。また、スイッチスタック１におけるフラッディング抑制ポートの位置も第一の実施の形態と同様とする。
【００８０】
図１９は、第二の実施の形態においてＱｕｅｒｙメッセージを受信したときのスイッチスタックの動作を説明するための図である。
【００８１】
同図では、外部ノードＡから送信されたＱｕｅｒｙメッセージを含むフレームＦＱがスイッチＳＷ１によって受信された場合の、フレームＦＱの伝搬経路が示されている。フレームＦＱは、スイッチＳＷ１→ＳＷ２→ＳＷ３→ＳＷ４の順にフラッディングされ、各スイッチＳＷに接続された端末Ｔに通知される。但し、スイッチＳＷ１とスイッチＳＷ４において、フラッディング抑制ポートからはフレームＦＱは送出されない。したがって、スタックリンクＬ４上におけるフレームＦＱの流通は抑制される。その結果、スイッチスタック１内において、フレームＦＱのストームは適切に防止される。
【００８２】
また、フレームＦＱを外部ノードＡより受信したスイッチＳＷ１の最適化部１２は、第一の実施の形態と同様、新規ノード検知フレームＦＣ１をマスタースイッチ（スイッチＳＷ３）に送信する。スイッチＳＷ３の最適化部１２は、新規ノード検知フレームＦＣ１とスイッチスタック１のトポロジー情報とに基づいて、各スイッチＳＷからフレームＦＱ（Ｑｕｅｒｙメッセージ）の発行元である外部ノードＡまでの最適経路を算出する。最適化部１２は、算出結果としての最適経路情報をＱｕｅｒｙメッセージに係るマルチキャストグループに対応するＭＡＣアドレス（Ｑｕｅｒｙメッセージを含むフレームの宛先ＭＡＣアドレス）に関連付けてマスタースイッチのメモリ内に記録しておく。但し、第二の実施の形態において、マスタースイッチは、最適経路の算出結果に基づく経路設定コマンドＦＣ２はスレーブスイッチに送信しない。したがって、Ｑｕｅｒｙメッセージの発行段階では、各スイッチＳＷの中継ＤＢ１４の更新は行われない。
【００８３】
なお、第二の実施の形態においても、外部ノードＡへの最適経路情報は図１６（２）に示される通りとなる。したがって、図２０に示されるように、マルチキャストフレームの中継においてスタックリンクＬ２は使用されないスタックリンクとなる。
【００８４】
続いて、各スイッチＳＷにおいてＪｏｉｎメッセージが受信されたときのスイッチスタック１の動作について説明する。図２１は、第二の実施の形態においてＪｏｉｎメッセージを受信したときのスイッチスタックの動作を説明するための図である。
【００８５】
図中（１）では、スイッチＳＷ１の中継部１３が、端末Ｔ１１よりＪｏｉｎメッセージを含むフレームＦＪを受信した例が示されている。この場合、スイッチＳＷ１の最適化部１２は、Ｊｏｉｎメッセージをトラップし、当該ＪｏｉｎメッセージとフレームＦＪの受信ポート（ポートＰ１４）の識別子とを含む制御フレームＦＣ３をマスタースイッチ（スイッチＳＷ３）に送信する。スイッチＳＷ３の最適化部１２は、スイッチＳＷ１におけるフレームＦＪの受信ポートからフレームＦＱの発行元である外部ノードＡへの最適経路を最適経路情報より検索する。検索結果は、ポートＰ１４の識別情報と、スイッチＳＷ１において外部ノードＡに接続されているポートＰ１１の識別情報とを含む情報である。
【００８６】
続いて、（２）に示されるように、スイッチＳＷ３の最適化部１２は、Ｊｏｉｎメッセージを受信したポートＰ１４と、外部ノードＡへの最適経路に係るポートＰ１１とをマルチキャストグループに対するＭＡＣアドレス（以下、「グループＭＡＣアドレス」という。）に対応付けることを指示する最適化設定フレームＦＣ４をスイッチＳＷ１に送信する。なお、最適化設定フレームＦＣ４の構造は、最適化設定フレームＦＣ２（図１４参照）と同様でよい。
【００８７】
続いて、（３）に示されるように、スイッチＳＷ１の最適化部１２は、制御フレームＦＣ４に基づいて中継ＤＢ１４を更新する。具体的には、Ｊｏｉｎメッセージを受信したポートＰ１４とグループＭＡＣアドレスとの対応情報と、外部ノードＡへの最適経路であるポートＰ１１とグループＭＡＣアドレスとの対応情報とが中継ＤＢ１４に登録される。これにより、スイッチＳＷ１において当該マルチキャストグループに関する最適経路が学習されたことになる。そこで、スイッチＳＷ１の中継部１３は、フレームＦＪをポートＰ１１より送出させる。
【００８８】
図２１において説明した処理は、各スイッチＳＷがＪｏｉｎメッセージを受信するたびに実行される。
【００８９】
例えば、図２２は、第二の実施の形態において各メンバよりＪｏｉｎメッセージを受信した場合の学習内容を示す図である。同図において、網掛けされた端末Ｔ（端末Ｔ１１、Ｔ２１、Ｔ２２、Ｔ３２、及びＴ４１）は、マルチキャストグループのメンバであるとする。
【００９０】
図中（１）は、図２１において説明した例である。すなわち、スイッチＳＷ１が、端末Ｔ１１よりＪｏｉｎメッセージを含むフレームＦＪを受信した場合の学習内容である。この場合、図２１において説明したように、スイッチＳＷ１の中継ＤＢ１４において、ポートＰ１１及びポートＰ１４がグループＭＡＣアドレスに対応付けられる。
【００９１】
図中（２）は、スイッチＳＷ２が、端末Ｔ２１又はＴ２２よりフレームＦＪを受信した場合の学習内容である。この場合、スイッチＳＷ２の中継ＤＢ１４おいて、ポートＰ２１と、ポートＰ２３又はポートＰ２４とがグループＭＡＣアドレスに対応付けられる。また、スイッチＳＷ１の中継ＤＢ１４において、ポートＰ１１及びポートＰ１３がグループＭＡＣアドレスに対応付けられる。すなわち、（２）の場合、マスタースイッチ（スイッチＳＷ３）の最適化部１２は、スイッチＳＷ２からの制御フレームＦＣ３に基づいて、ポートＰ２３又はＰ２４から外部ノードＡまでの最適経路を最適経路情報より検索する。検索結果には、外部ノードＡに至るまでに経由されるポートＰの識別情報が含まれる。具体的には、ポートＰ２３又はポートＰ２４→ポートＰ２１→ポートＰ１３→ポートＰ１１といった具合である。マスタースイッチの最適化部１２は、最適経路に含まれる各ポートを有するスイッチＳＷに対して経路設定フレームＦＣ４を送信する。この場合、第一の実施の形態において説明したように、一つの経路設定フレームＦＣ４に対して複数のスイッチＳＷに対するコマンドが含まれるようにするとよい。但し、スイッチＳＷごとに経路設定フレームＦＣ４が送信されてもよい。（２）の場合、スイッチＳＷ１に対してポートＰ１１及びＰ１３に関するコマンドが、スイッチＳＷ２に対してポートＰ２１、及びＰ２３又はＰ２４に関するコマンドが経路設定フレームＦＣ４に含まれる。経路設定フレームＦＣ４が、スイッチＳＷ１及びスイッチＳＷ２に伝搬されることにより、（２）の状態が実現される。
【００９２】
図中（３）は、スイッチＳＷ３が、端末Ｔ３２よりフレームＦＪを受信した場合の学習内容である。この場合、（２）において説明した処理と同様の処理が実行され、スイッチＳＷ３の中継ＤＢ１４おいて、ポートＰ３２及びＰ３４がグループＭＡＣアドレスに対応付けられる。また、スイッチＳＷ４の中継ＤＢ１４おいて、ポートＰ４１及びＰＰ４２がグループＭＡＣアドレスに対応付けられる。また、スイッチＳＷ１の中継ＤＢ１４おいて、ポートＰ１１及びＰ１２がグループＭＡＣアドレスに対応付けられる。
【００９３】
図中（４）は、スイッチＳＷ４が、端末Ｔ４１よりフレームＦＪを受信した場合の学習内容である。この場合、（２）において説明した処理と同様の処理が実行され、スイッチＳＷ４の中継ＤＢ１４おいて、ポートＰ４２及びＰ４３がグループＭＡＣアドレスに対応付けられる。また、スイッチＳＷ１の中継ＤＢ１４おいて、ポートＰ１１及びＰ１２がグループＭＡＣアドレスに対応付けられる。
【００９４】
したがって、メンバである全ての端末ＴよりＪｏｉｎメッセージが受信され、各Ｊｏｉｎメッセージについて図２１及び図２２において説明した処理が実行された場合、マルチキャストフレームに関する中継経路は図２３に示されるように最適化される。
【００９５】
図２３は、第二の実施の形態においてマルチキャストフレームに関する最適化された中継経路を示す図である。同図において、（１）が、本実施の形態における最適化の結果を示す。（１）の内容は、図２２における（１）〜（４）を重ね合わせたものである。
【００９６】
一方、（２）は、本実施の形態のスイッチスタック１が仮に通常のＩＧＭＰスヌーピングによって学習を行った場合の結果である。（２）では、各スイッチＳＷにおいて、Ｑｕｅｒｙメッセージを含むフレームＦＱを受信したポートＰと、Ｊｏｉｎメッセージを含むフレームＦＪを受信したポートＰとが、グループＭＡＣアドレスに対応付けられる。したがって、（２）においては、フラッディング抑制ポート（ポートＰ１２及びＰ４２）はグループＭＡＣアドレスに対応付けられない。その結果、スタックリンクＬ４は使用されないスタックリンクとなっている。図１９に示されるように、フレームＦＱのフラッディング時において、フラッディング抑制ポートからはフレームＦＱはフラッディングされないからである。換言すれば、フレームＦＱのフラッディング時において、フラッディング抑制ポートはフレームＦＱを受信することは無いからである。
【００９７】
したがって、（２）の状態において外部ノードＡよりマルチキャストフレームが送信された場合、当該マルチキャストフレームは、スイッチＳＷ１→スイッチＳＷ２→スイッチＳＷ３→スイッチＳＷ４を経由して端末Ｔ４１に到達する。
【００９８】
一方、（１）の状態において外部ノードＡよりマルチキャストフレームが送信された場合、当該マルチキャストフレームは、スイッチＳＷ１→スイッチＳＷ４を経由して（１）より少ないホップ数で端末４１に到達することができる。（１）では、フラッディング抑制ポートについても有効に使用されるからである。
【００９９】
上述したように、第二の実施の形態によれば、マルチキャストフレームに関しても、第一の実施の形態と同様の効果を得ることができる。
【０１００】
ところで、スイッチスタック１において、必ずしもＪｏｉｎメッセージはＱｕｅｒｙメッセージの後に受信されるとは限らない。例えば、新規にマルチキャストグループに追加されたノードは、Ｑｕｅｒｙメッセージを受信する前に、自らが属するマルチキャストグループをＪｏｉｎメッセージによって通知することがあるからである。そこで、Ｑｕｅｒｙメッセージ（フレームＦＱ）よりもＪｏｉｎメッセージ（フレームＦＪ）が先に受信された場合を第三の実施の形態として説明する。
【０１０１】
図２４及び図２５は、第三の実施の形態においてＱｕｅｒｙメッセージ受信前にＪｏｉｎメッセージを受信したときのスイッチスタックの動作を説明するための図である。
【０１０２】
図中（１）では、スイッチＳＷ４の中継部１３が、端末Ｔ４１よりＪｏｉｎメッセージを含むフレームＦＪを受信した例が示されている。
【０１０３】
この場合、（２）に示されるように、スイッチＳＷ４の最適化部１２は、Ｊｏｉｎメッセージをトラップし、当該Ｊｏｉｎメッセージと受信ポートの識別子とを含む制御フレームＦＣ３をマスタースイッチ（スイッチＳＷ３）に転送する。スイッチＳＷ３の最適化部１２は、制御フレーム３に含まれている受信ポートの識別子をメモリに記録しておく。
【０１０４】
この段階において、スイッチスタック１にはＱｕｅｒｙメッセージは受信されていない。スイッチＳＷ３の最適化部１２によって、最適経路は算出されておらず、最適経路情報も生成されていない。したがって、最適経路の検索は行うことはできない。
【０１０５】
そこで、（２）に示されるように、スイッチＳＷ３の最適化部１２は、既定（通常）の中継処理の実行を指示するコマンドを含む制御フレームＦＣ５をスイッチＳＷ４に送信する。
【０１０６】
制御フレームＦＣ５の受信に応じ、（３）に示されるように、スイッチＳＷ４の中継部１３は、制御フレームＦＣを受信したポートＰ４３とグループＭＡＣアドレス（フレームＦＪの宛先ＭＡＣアドレス）との対応情報を中継ＤＢ１４に登録する。また、スイッチＳＷ４の中継部１３は、フレームＦＪをフラッディング抑制ポート以外のポートよりフラッディングさせる。
【０１０７】
続いて、スイッチＳＷ４よりフラッディングされたフレームＦＪを受信したスイッチＳＷ３の中継部１３は、フレームＦＪを受信したことと受信ポートの識別子とをスイッチＳＷ３の最適化部１２に通知する。最適化部１２は、当該受信ポートをメモリに記録しておく。最適化部１２は、また、最適経路情報が無いため、既定の中継処理の実行を中継部１３に指示する。そこで、（４）に示されるように、スイッチＳＷ３の中継部１３は、フレームＦＪを受信したポートＰ３２とグループＭＡＣアドレス（フレームＦＪの宛先ＭＡＣアドレス）との対応情報を中継ＤＢ１４に登録する。また、スイッチＳＷ３の中継部１３は、フレームＦＪをフラッディングさせる。
【０１０８】
続いて、スイッチＳＷ３よりフラッディングされたフレームＦＪを受信したスイッチＳＷ２の中継部１３は、フレームＦＪを受信したことと受信ポートの識別子とをスイッチＳＷ２の最適化部１２に通知する。最適化部１２は、図２５（５）に示されるように、フレームＦＪに含まれているＪｏｉｎメッセージと受信ポートの識別子とを含む制御フレームＦＣ３をマスタースイッチ（スイッチＳＷ３）に転送する。スイッチＳＷ３の最適化部１２は、受信ポートをメモリに記録しておく。最適化部１２は、また、最適経路情報が無いため、既定の中継処理の実行を指示するコマンドを含む制御フレームＦＣ５をスイッチＳＷ２に送信する。スイッチＳＷ２の中継部１３は、フレームＦＪを受信したポートＰ２２とグループＭＡＣアドレス（フレームＦＪの宛先ＭＡＣアドレス）との対応情報を中継ＤＢ１４に登録する。また、スイッチＳＷ２の中継部１３は、フレームＦＪをフラッディングさせる。
【０１０９】
続いて、スイッチＳＷ２よりフラッディングされたフレームＦＪを受信したスイッチＳＷ１の中継部１３は、フレームＦＪを受信したことと受信ポートの識別子とをスイッチＳＷ１の最適化部１２に通知する。最適化部１２は、（６）に示されるように、フレームＦＪに含まれているＪｏｉｎメッセージと受信ポートの識別子とを含む制御フレームＦＣ３をマスタースイッチ（スイッチＳＷ３）に転送する。スイッチＳＷ３の最適化部１２は、受信ポートをメモリに記録しておく。最適化部１２は、また、最適経路情報が無いため、既定の中継処理の実行を指示するコマンドを含む制御フレームＦＣ５をスイッチＳＷ１に送信する。スイッチＳＷ１の中継部１３は、フレームＦＪを受信したポートＰ１３とグループＭＡＣアドレス（フレームＦＪの宛先ＭＡＣアドレス）との対応情報を中継ＤＢ１４に登録する。また、スイッチＳＷ１の中継部１３は、フレームＦＪをフラッディング抑制ポート以外のポートよりフラッディングさせる。
【０１１０】
端末Ｔ４１以外の他のメンバ（端末Ｔ１１、端末Ｔ２１、端末２２、及び端末３２）からＪｏｉｎメッセージをフレームＦＪが受信された場合も、上記と同様の処理が実行される。その結果（全てのメンバよりフレームＦＪが受信された結果）、スイッチスタック１の各スイッチＳＷの中継ＤＢ１４の状態（学習内容）は（７）に示されるようになる。すなわち、ポートＰ１３、Ｐ１４、Ｐ２２、Ｐ２３、Ｐ２４、Ｐ３２、Ｐ３４、及びＰ４３が、それぞれの属するスイッチＳＷの中継ＤＢ１４において、グループＭＡＣアドレスに対応付けられる。なお、上記したように、各スイッチＳＷにおけるフレームＦＪの受信ポートの識別子は、スイッチＳＷ３の最適化部１２に通知され、メモリに記録されている。したがって、（７）に示される状態は、スイッチＳＷ３の最適化部１２によって把握されている。
【０１１１】
続いて、図２５（７）の状態においてＱｅｒｙメッセージが受信された際のスイッチスタックの動作について説明する。図２６は、第三の実施の形態においてＱｕｅｒｙメッセージを受信したときのスイッチスタックの動作を説明するための図である。
【０１１２】
（８）では、外部ノードＡよりＱｕｅｒｙメッセージを含むフレームＦＱがスイッチＳＷ１によって受信された例が示されている。この場合、スイッチＳＷ１の最適化部１２は、第二の実施の形態と同様、新規ノード検知フレームＦＣ１をマスタースイッチ（スイッチＳＷ３）に送信する。スイッチＳＷ３の最適化部１２は、新規ノード検知フレームＦＣ１と、スイッチスタック１のトポロジー情報と、メモリに記録されているフレームＦＪの受信ポートの識別子群に基づいて最適経路を算出する。但し、最適経路の算出には、フレームＦＪの全ての受信ポートの識別子群ではなく、メンバの端末Ｔに接続されているポートＰの識別子群（以下、「Ｊｏｉｎ受信ポート一覧」という。）が利用される。ここで算出結果として生成される最適経路情報は、Ｊｏｉｎ受信ポート一覧に含まれる各ポートＰのそれぞれから外部ノードＡ（外部ノードＡからのフレームＦＱの受信ポート）までの最適経路を示す情報である。本実施の形態では、ポートＰ１４、Ｐ２３、Ｐ２４、Ｐ３２、Ｐ３４、及びＰ４３のそれぞれからポートＰ１１までの最適経路である。なお、フレームＦＪを受信した全ポートＰの中で、いずれのポートＰが端末Ｔに接続されたものであるかについては、トポロジー情報に基づいて判定可能である。
【０１１３】
第三の実施の形態における最適経路の算出結果は第二の実施の形態と同様となる。したがって、マルチキャストフレームの中継において、スタックリンクＬ２は使用されないスタックリンクとされる。そこで、スイッチＳＷ３の最適化部１２は、まず、スタックリンクＬ２に接続されているポートＰについて、グループＭＡＣアドレスとの対応付けを解除するためのコマンドを生成する。続いて、スイッチＳＷ３の最適化部１２は、Ｊｏｉｎ受信ポート一覧に含まれるポートＰごとに算出されたいずれかの最適経路に使用されているポートＰをグループＭＡＣアドレスに対応付けることを指示すコマンドを生成する。コマンドは、スイッチＳＷ単位で生成される。
【０１１４】
続いて、スイッチＳＷ３の最適化部１２は、各スイッチＳＷに対するコマンドを含む制御フレームである最適化設定フレームＦＣ６を各スイッチＳＷに送信する。例えば、図中（９）は、最適化設定フレームＦＣ６がスイッチＳＷ２に送信された例を示す。スイッチＳＷ２の最適化部１２は、最適化設定フレームＦＣ６に含まれているコマンドに基づいて、ポートＰ２２とグループＭＡＣアドレスとの対応情報を中継ＤＢ１４より削除する（Ｓ９１）。また、スイッチＳＷ２の最適化部１２は、最適化設定フレームＦＣ６に含まれているコマンドに基づいて、ポートＰ２１とグループＭＡＣアドレスとの対応情報を中継ＤＢ１４に記録する（Ｓ９２）。
【０１１５】
また、（１０）は、最適化設定フレームＦＣ６がスイッチＳＷ１に送信された例を示す。スイッチＳＷ１の最適化部１２は、最適化設定フレームＦＣ６に含まれているコマンドに基づいて、ポートＰ１１とグループＭＡＣアドレスとの対応情報を中継ＤＢ１４に記録する（Ｓ１００１）。また、スイッチＳＷ１の最適化部１２は、最適化設定フレームＦＣ６に含まれているコマンドに基づいて、ポートＰ１２とグループＭＡＣアドレスとの対応情報を中継ＤＢ１４に記録する（Ｓ１００２）。ポートＰ１２がグループＭＡＣアドレスに対応付けられることにより、フラッディング抑制ポートであるポートＰ１２からスタックリンクＬ４へのマルチキャストフレームの送出が可能となる。
【０１１６】
また、（１１）は、最適化設定フレームＦＣ６がスイッチＳＷ４に送信された例を示す。スイッチＳＷ４の最適化部１２は、最適化設定フレームＦＣ６に含まれているコマンドに基づいて、ポートＰ４１とグループＭＡＣアドレスとの対応情報を中継ＤＢ１４に記録する（Ｓ１１０１）。また、スイッチＳＷ４の最適化部１２は、最適化設定フレームＦＣ６に含まれているコマンドに基づいて、ポートＰ４２とグループＭＡＣアドレスとの対応情報を中継ＤＢ１４に記録する（Ｓ１１０２）。ポートＰ４２がグループＭＡＣアドレスに対応付けられることにより、フラッディング抑制ポートであるポートＰ４２からスタックリンクＬ４へのマルチキャストフレームの送出が可能となる。
【０１１７】
なお、最適化設定フレームＦＣ６の構造は、最適化設定フレームＦＣ２（図１４参照）と同様でよい。したがって、一つの最適化設定フレームＦＣ６内に複数のスイッチＳＷに対するコマンドを含め、当該最適化設定フレームＦＣ６を各スイッチＳＷに伝搬させるようにしてもよい。一つの最適化設定フレームＦＣ６をスイッチＳＷ３→スイッチＳＷ２→スイッチＳＷ１→スイッチＳＷ４という順序に伝搬させた場合も図２６と同じ結果を得ることができる。なお、図２６において、（１０）及び（１１）の順序関係は問われないが、（１０）及び（１１）より前に（９）が実行される必要がある。具体的には、フラッディング抑制ポートに対してグループＭＡＣアドレスが対応付けられ、スタックリンクＬ４が使用可能となる前に、ポートＰ２２とグループＭＡＣアドレスとの対応付けが解消されている必要がある。これは、マルチキャストフレームの中継に関してスイッチスタック１内においてループが形成されないようにするためである。すなわち、仮に、（１０）及び（１１）が（９）より先に実行された場合、マルチキャストフレームの中継に関してループが形成されてしまうからである。したがって、スイッチＳＷ３の最適化部１２は、最適経路において使用されないスタックリンクＬ４に接続されているポートＰ２２の解除が先に行われるように制御フレームＦＣ６を発行する。具体的には、スイッチＳＷごとに個別に制御フレームＦＣ６を送信する場合は、スイッチＳＷ３の最適化部１２は、スイッチＳＷ２に対する制御フレームＦＣ６を最初に送信する。また、一つの制御フレームＦＣ６を伝搬させる場合は、スイッチＳＷ３の最適化部１２は、当該制御フレームＦＣ６の最初の宛先ＭＡＣアドレスをスイッチＳＷ２のＭＡＣアドレスとする。
【０１１８】
上述したように、第三の実施の形態によれば、スイッチスタック１においてＱｕｅｒｙメッセージよりもＪｏｉｎメッセージが先に受信された場合であっても第二の実施の形態と同様の効果を得ることができる。
【０１１９】
続いて、第三の実施の形態の代替例として第四の実施の形態を説明する。すなわち、第四の実施の形態においても、Ｑｕｅｒｙメッセージ（フレームＦＱ）よりもＪｏｉｎメッセージ（フレームＦＪ）が先に受信される。
【０１２０】
図２７は、第四の実施の形態においてＱｕｅｒｙメッセージ受信前にＪｏｉｎメッセージを受信したときのスイッチスタックの動作を説明するための図である。
【０１２１】
図中（１）では、スイッチＳＷ４の中継部１３が、端末Ｔ４１よりＪｏｉｎメッセージを含むフレームＦＪを受信した例が示されている。この場合、フレームＦＪは、図示されるようにフラッディング抑制ポート以外のポートＰよりフラッディングされ各スイッチＳＷに伝搬される。但し、各スイッチＳＷは、フレームＦＪに基づく学習は行わない。
【０１２２】
より詳しくは、（２）に例示されるように、フレームＦＪを受信したスイッチＳＷ４の最適化部１２は、フレームＦＪに含まれるＪｏｉｎメッセージとフレームＦＪの受信ポートの識別子とを含む制御フレームＦＣ３をマスタースイッチ（スイッチＳＷ３）に送信する。スイッチＳＷ３の最適化部１２は、最適経路情報が無いため、既定の中継処理を指示するとともに、フレームＦＪに関する学習は行わないことを指示するコマンドを含む制御フレームＦＣ７をスイッチＳＷ４に返信する。スイッチＳＷ４の中継部１３は、スイッチＳＷ４に含まれるコマンドに基づいて、（１）に示されるようなフラッディングを行う。
【０１２３】
なお、（２）に示される処理は、各スイッチがフレームＦＪを受信した際に実行される。その結果、第四の実施の形態においては、フレームＦＪの受信に応じて中継ＤＢ１４の更新は行われない。すなわち、実質的にフレームＦＪの受信は無視される。
【０１２４】
その後、例えば、ノードＡよりＱｕｅｒｙメッセージを含むフレームＱが受信されると、第二の実施の形態と同様の処理が実行される。すなわち、スイッチＳＷ３において最適経路が計算され、最適経路情報が生成される。続いて、いずれかのスイッチＳＷがメンバよりＪｏｉｎメッセージを含むフレームＦＪを受信すると、最適経路情報に基づいて最適経路が設定される。
【０１２５】
次に、第五の実施の形態を説明する。図２８は、第五の実施の形態におけるスイッチの構成例を示す図である。図２８中、図６と同一又は対応する部分には同一符号を付し、その説明は適宜省略する。第五の実施の形態におけるスイッチＳＷは、上記実施の形態と同様に、スイッチスタック１に含まれるものである。
【０１２６】
同図において、スイッチＳＷは、ポート属性設定部２１、ポート移動検出部２２、及びフレーム廃棄部２３等を有する。ポート移動検出部２２は、学習済みのノードを送信元ＭＡＣアドレスとするフレームについて、学習されたポートＰと異なるポートＰからのフレームの受信（以下、このような状況を「ポートの移動」という。）を検出する。フレーム廃棄部２３は、ポート移動検出部２２によってポートの移動が検出された場合等に、受信フレームを廃棄する。
【０１２７】
第五の実施の形態において、各ポートＰは、フレーム廃棄設定記憶部２４を有する。フレーム廃棄設定記憶部２４は、対応するポートＰより、宛先が未学習のフレームが受信された場合に、当該受信フレームを廃棄するか否かを示す情報を管理（保持）する。例えば、フレーム廃棄設定記憶部２４は、ポートＰ内のメモリの１ビット分の記憶領域として実現される。フレーム廃棄設定記憶部２４（当該ビット）の値がＯＮ（１）であれば、当該ポートＰより受信された宛先が未学習のフレームは廃棄されるべきことを示す。フレーム廃棄設定記憶部２４の値がＯＦＦ（０）であれば、当該ポートＰより受信されたフレームの中継に関して制限は無いことを示す。
【０１２８】
ポート属性設定部２１は、フレーム廃棄設定記憶部２４に対する設定の指示入力に応じ、設定対象とされたポートＰのフレーム廃棄設定記憶部２４の値をＯＮ又はＯＦＦに設定する。ポート属性設定部２１に対する指示入力は、スイッチＳＷのハード的なインタフェース（操作ボタン等）を介して入力されてもよいし、所定のコマンドを含むフレームの入力によって行われてもよい。
【０１２９】
なお、本実施の形態において、フレーム廃棄設定記憶部２４の値は、対応するポートＰがスタックリンクに接続されている場合に有効である。したがって、対応するポートＰがスイッチスタック１の外部のノードに接続されている場合、フレーム廃棄設定記憶部２４の値は参照されない。また、スイッチスタック１に属する各スイッチＳＷにおいて、スタックリンクに接続される１つのポートＰについてのみフレーム廃棄設定記憶部２４の値はＯＮとされる。したがって、他のポートＰのフレーム廃棄設定記憶部２４の値はＯＦＦとされる。
【０１３０】
図２９は、第五の実施の形態のスイッチによるフレーム受信時の動作を説明するためのフローチャートである。
【０１３１】
スイッチＳＷにおいてフレームが受信されると、中継部１３は、受信されたフレーム（受信フレーム）の送信元ＭＡＣアドレスに対するエントリを中継ＤＢ１４より検索する（Ｓ５０１）。該当するエントリが検索された場合（Ｓ５０１でＹｅｓ）、ポート移動検出部２２は、受信フレームの受信ポートが、該当するエントリに登録されているものであるか否かを判定する（Ｓ５０３）。すなわち、受信内容と学習内容とが一致しているか否かが判定される。
【０１３２】
受信フレームの受信ポートが、該当するエントリに登録されているものでない場合（Ｓ５０３Ｎｏ）、ポート移動検出部２２は、ポートの移動を検出する。そこで、フレーム廃棄部２３は、受信フレームを廃棄する（Ｓ５０４）。したがって、この場合、受信フレームの中継処理は実行されない。
【０１３３】
受信フレームの受信ポートが該当するエントリに登録されているものである場合（Ｓ５０３Ｙｅｓ）、中継部１３は、中継ＤＢ１４における学習内容に従って、受信フレームを宛先ＭＡＣアドレスに対応するポートＰより送出、又はフラッディングさせる（Ｓ５１０）。
【０１３４】
一方、該当するエントリが検索されなかった場合（Ｓ５０２でＮｏ）、中継部１３は、中継ＤＢ１４が飽和状態（フル状態）であるか否かを確認する（Ｓ５０５）。中継ＤＢ１４の飽和状態とは、これ以上エントリを追加できない状態をいう。すなわち、中継ＤＢ１４に登録可能なエントリ数は有限である。
【０１３５】
中継ＤＢ１４が飽和状態でない場合（Ｓ５０５でＮｏ）、中継部１３は、受信ポートと受信フレームの送信元ＭＡＣアドレスとの対応情報を中継ＤＢ１４に登録する（Ｓ５０６）。続いて、中継部１３は、受信フレームの中継処理を実行する（Ｓ５１０）。
【０１３６】
中継ＤＢ１４が飽和状態である場合（Ｓ５０５でＹｅｓ）、中継部１３は、受信ポートがスタックリンク（すなわち、冗長経路）に接続されているポートＰか、スイッチスタック１の外部（外部ノードＡ又は端末Ｔ等）に接続されているポートＰかを判定する（Ｓ５０７）。当該判定は、スイッチＳＷ内のトポロジー情報に基づいて可能である。
【０１３７】
受信ポートがスタックリンクに接続されているポートＰである場合（Ｓ５０７でＹｅｓ）、中継部１３は、受信ポートのフレーム廃棄設定記憶部２４の値がＯＮであるか否かを判定する（Ｓ５０８）。受信ポートのフレーム廃棄設定記憶部２４の値がＯＮである場合（Ｓ５０８でＹｅｓ）、フレーム廃棄部２３は、受信フレームを廃棄する（Ｓ５０４）。したがって、この場合、受信フレームの中継処理、及び受信フレームに基づく学習は行われない。受信ポートのフレーム廃棄設定記憶部２４の値がＯＦＦである場合（Ｓ５０８でＮｏ）、中継部１３は、受信フレームの中継処理を実行する。但し、この場合、受信フレームに基づく学習は行われない。
【０１３８】
一方、受信ポートがスタックリンク以外（すなわち、スイッチスタック１の外部）に接続されているポートＰである場合（Ｓ５０７でＮｏ）、中継部１３は、中継ＤＢ１４に空きエントリを作成し、受信ポートに基づく学習内容を当該空きエントリに登録する（Ｓ５０９）。したがって、本実施の形態では、中継部１３が、対応情報更新手段の一例である。中継ＤＢ１４への空きエントリの作成とは、中継ＤＢ１４に登録されているいずれかの対応情報を削除することをいう。削除対象とする対応情報は、例えば、登録時期が古いもの又は利用回数が少ないもの等といった基準に基づいて選択されてもよいし、任意に選択されてもよい。また、受信ポートに基づく学習内容とは、受信ポートと受信フレームの送信元ＭＡＣアドレスとの対応情報のことをいう。続いて、中継部１３は、受信ポートの中継処理を実行する（Ｓ５１０）。
【０１３９】
図２９の処理が各スイッチＳＷにおいて実行されることにより、スイッチスタック１全体として、例えば、図３０及び図３１等に示されるような処理が実現される。
【０１４０】
図３０は、第五の実施の形態において受信内容が中継ＤＢと一致しない場合のスイッチスタックの動作を説明するための図である。すなわち、図２９のステップＳ５０３においてＮｏとなる場合のスイッチスタック１の動作である。
【０１４１】
（１）では、スイッチＳＷ１において、未学習の外部ノードＡよりフレームＦＡが受信された様子が示されている。
【０１４２】
この場合、（２）に示されるように、フレームＦＡは各スイッチＳＷにおいてフラッディングされ、ノードＡと受信ポートとの対応情報が各スイッチの中継ＤＢ１４に登録される。すなわち、スイッチＳＷ１ではポートＰ１１が外部ノードＡに対応付けられる。スイッチＳＷ２ではポートＰ２１が外部ノードＡに対応付けられる。スイッチＳＷ３ではポートＰ３２が外部ノードＡに対応付けられる。スイッチＳＷ４ではポートＰ４２が外部ノードＡに対応付けられる。なお、この例ではスイッチＳＷ３には右側（スイッチＳＷ４側）から先にフレームＦＡが到着したこととしている。
【０１４３】
続いて、（３）に示されるように、スイッチＳＷ３は、スイッチＳＷ２よりフラッディングされたフレームＦＡをポートＰ３１を介して受信する。そこで、スイッチＳＷ３は、図２９のステップＳ５０１、Ｓ５０２、Ｓ５０３、及びＳ５０４を実行する。スイッチＳＷ３において、外部ノードＡはポートＰ３２に対応付けられているにも拘わらず、ポートＰ３２とは異なるポートＰ３１より外部ノードＡを送信元とするフレームＦＡが受信されたからである。その結果、スイッチＳＷ３は、ポートの移動を検出し、フレームＦＡを廃棄する。
【０１４４】
同様に、（４）に示されるように、スイッチＳＷ２は、スイッチＳＷ３よりフラッディングされたフレームＦＡをポートＰ２２を介して受信する。そこで、スイッチＳＷ２では、図２９のステップＳ５０１、Ｓ５０２でＹｅｓ、Ｓ５０３でＮｏ、及びＳ５０４が実行される。スイッチＳＷ２において外部ノードＡはポートＰ２１に対応付けられているにも拘わらず、ポートＰ２１とは異なるポートＰ２２より外部ノードＡを送信元とするフレームＦＡが受信されたからである。その結果、スイッチＳＷ２は、ポートの移動を検出し、フレームＦＡを廃棄する。
【０１４５】
以上の結果、スイッチスタック１における、フレームＦＡのループは回避される。ループが回避されることにより、フレームＦＡが重複されて端末Ｔにフラッディングされることが防止される。また、各スイッチＳＷにおいて、ノードＡへの最適経路（最短経路）が学習される可能性が高くなる。但し、最適経路が学習されるか否かは、各スタックリンクの通信の負荷状態等に依存する。
【０１４６】
続いて、図３１は、第五の実施の形態において中継ＤＢが飽和状態の場合のスイッチスタックの動作を説明するための図である。
【０１４７】
（１）では、スイッチＳＷ１において、未学習の外部ノードＡよりフレームＦＡが受信された様子が示されている。
【０１４８】
同図では、スイッチＳＷ２の中継ＤＢ１４が飽和状態であるとする。また、スイッチＳＷ２において、ポートＰ２１のフレーム廃棄設定記憶部２４の値はＯＮであるとする。
【０１４９】
その結果、スイッチＳＷ２は、フレームＦＡがフラッディングされる過程において（２）に示されるような処理を実行する。すなわち、スイッチＳＷ２は、ポートＰ２１によるフレームＦＡの受信に応じて、図２９のステップＳ５０１、Ｓ５０２でＮｏ、Ｓ５０５でＹｅｓ、Ｓ５０７でＹｅｓ、Ｓ５０８でＹｅｓ、及びＳ５０４を実行する。その結果、スイッチＳＷ２は、当該フレームＦＡを廃棄する。また、スイッチＳＷ２は、ポートＰ２２によるフレームＦＡの受信に応じて、図２９のステップＳ５０１、Ｓ５０２でＮｏ、Ｓ５０５でＹｅｓ、Ｓ５０７でＹｅｓ、Ｓ５０８でＮｏ、及びＳ５１０を実行する。その結果、スイッチＳＷ２は、当該フレームＦＡをフラッディングさせる。
【０１５０】
以上の結果、スイッチＳＷ２が外部ノードＡを学習できない場合であっても、フレームＦＡのループが回避される。すなわち、スイッチＳＷ２の左側より受信されたフレームＦＡは廃棄されるからである。また、スイッチＳＷの右側より受信されたフレームＦＡは、スイッチＳＷ１にフラッディングされるが、スイッチＳＷ１によって廃棄されるからである。スイッチＳＷ１によって廃棄されるのは、スイッチＳＷ１において外部ノードＡはポートＰ１１に対応付けられているにも拘わらず、ポートＰ１１とは異なるポートＰ１３より外部ノードＡを送信元とするフレームＦＡが受信されるからである。また、フレームＦＡのループが回避されることにより、フレームＦＡが重複されて端末Ｔにフラッディングされることが防止される。
【０１５１】
続いて、図３２は、第五の実施の形態において中継ＤＢが飽和状態の場合に空きエントリを作成し強制的に学習させる意義を説明するための図である。すなわち、図３２は、図２９のステップＳ５０９の意義を説明するための図である。同図では、ステップＳ５０９の意義を説明するために、ステップＳ５０９が実行されない場合に生じる不都合について説明する。
【０１５２】
（１）では、スイッチＳＷ１において、未学習の外部ノードＡよりフレームＦＡが受信された様子が示されている。
【０１５３】
同図では、スイッチＳＷ１の中継ＤＢ１４が飽和状態であるとする。また、ポートＰ１２、ポートＰ２１、ポートＰ３２、及びポートＰ４１のそれぞれのフレーム廃棄設定記憶部２４の値はＯＮであるとする。
【０１５４】
スイッチＳＷ１において、フレームＦＡの受信ポートＰ１１は、スタックリンクに接続されているポートＰではない。したがって、スイッチＳＷ１は、図２９のステップＳ５０１、Ｓ５０２でＮｏ、Ｓ５０５でＹｅｓ、Ｓ５０７でＮｏ、及びＳ５１０を実行する。なお、上記したように、ここでは、ステップＳ５０９は実行されないこととする。その結果、フレームＦＡはフラッディングされ、（２）に示されるように学習される。
【０１５５】
すなわち、スイッチＳＷ２ではポートＰ２１が外部ノードＡに対応付けられる。スイッチＳＷ３ではポートＰ３１が外部ノードＡに対応付けられる。スイッチＳＷ４ではポートＰ４１が外部ノードＡに対応付けられる。一方、スイッチＳＷ１では外部ノードＡの学習は行われない。但し、図３１において説明した作用により、フレームＦＡのループは防止される。具体的には、スイッチＳＷ４からスイッチＳＷ１へフラッディングされたフレームＦＡは、廃棄される。ポートＰ１２のフレーム廃棄設定記憶部２４の値はＯＮであるからである。なお、（２）における学習により、スイッチＳＷ４の中継ＤＢ１４も飽和状態になったとする。
【０１５６】
続いて、（３）に示されるように、スイッチＳＷ４が、外部ノードＡ宛のフレームＦａを未学習の端末Ｔ４２より受信したとする。この場合、スイッチＳＷ４は、中継ＤＢ１４に基づいて、ポートＰ４１よりフレームＦａを送出する。但し、スイッチＳＷ４の中継ＤＢ１４は飽和状態であるため、スイッチＳＷ４は、端末Ｔ４２を学習することはできない。その後、フレームＦａは、各スイッチＳＷの学習内容に基づいて、スイッチＳＷ３→スイッチＳＷ２→スイッチＳＷ１→外部ノードＡへと中継される。また、中継ＤＢ１４に空きエントリの有るスイッチＳＷ３及びスイッチＳＷ２では、端末Ｔ４２が学習される。すなわち、図中においてポートを示す円の中に「Ｚ」の文字が記載されていることは、当該ポートと端末Ｔ４２のＭＡＣアドレスとの対応情報が中継ＤＢ１４に登録されたことを示す。
【０１５７】
ところで、スイッチＳＷ１から外部ノードＡにフレームＦａが中継されるのは、スイッチＳＷ１が外部ノードＡを学習しているからではなく、フレームＦａをフラッディングした結果である。したがって、（４）に示されるように、フレームＦａは、スイッチＳＷ４にもフラッディングされる。スイッチＳＷ４は、端末Ｔ４２を学習していないため、端末Ｔ４２を送信元とするフレームＦａが、端末Ｔ４２と接続されているポートＰ４４と異なるポートＰ４２より受信されたことを検出することはできない。したがって、スイッチＳＷ４は、フレームＦａを廃棄せずに、再びポートＰ４１より送出する。その結果、（３）及び（４）が繰り返し実行され、フレームＦａがループしてしまう。
【０１５８】
ステップＳ５０９は、斯かる不都合を回避するための処理である。すなわち、ステップＳ５０９が実行されれば、（１）の段階において、スイッチＳＷ１は、外部ノードＡを学習することができる。その結果、（４）に示されるフラッディングは実行されず、フレームＦａのループは回避される。
【０１５９】
上述したように、第五の実施の形態のスイッチＳＷによれば、ポート移動検出部２２によるポートの移動の検出に応じて、フレーム廃棄部２３によって受信フレームが廃棄される。その結果、フレームのストームを抑制することができる。また、中継ＤＢ１４が飽和状態となり、ノードの学習を行えないスイッチＳＷが存在する場合であっても、フレーム廃棄設定記憶部２４に対する設定等に基づいて、フレームのストームを抑制することができる。
【０１６０】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【０１６１】
以上の説明に関し、更に以下の項を開示する。
（付記１）
ノードとポートとの対応情報を記憶した対応情報記憶手段と、
フレームのフラッディングを抑制するポートを識別可能な情報を記憶したフラッディング抑制ポート記憶手段と、
前記フラッディング抑制ポート記憶手段に記憶された情報に基づいて、前記対応情報記憶手段に記憶されていないノードを宛先とするフレームをフラッディングさせるポートを限定する中継手段とを有する中継装置。
（付記２）
受信された制御フレームに含まれているコマンドに応じて、前記フラッディングを抑制するポートと前記対応情報記憶手段に記録されていないノードとの対応情報を前記対応情報記憶手段に記録する第一の最適化手段を有し、
前記中継手段は、該ノードを宛先とするフレームを当該ノードに対応付けられた前記フラッディングを抑制するポートより送出させる付記１記載の中継装置。
（付記３）
付記１又は２記載の中継装置のフラッディングを抑制するポートによって冗長経路の両端が接続されたネットワークに属する複数の中継装置のいずれかより前記ネットワークの外部ノードの検知を通知する制御フレームを受信し、前記外部ノードが検知されたポートの識別情報と前記ネットワークにおける前記複数の中継装置の接続関係を示す情報とに基づいて、前記複数の各中継装置から前記外部ノードへの最適経路を前記フラッディングを抑制するポートも利用して算出し、算出結果に基づいて前記外部ノードに対応させるポートを指定するコマンドを含む制御フレームを前記ネットワークに送出する第二の最適化手段を有する中継装置。
（付記４）
前記第二の最適化手段は、前記フラッディングを抑制するポート有する中継装置が他の中継装置より先に前記コマンドを処理するように前記制御フレームを送出する付記３記載の中継装置。
（付記５）
中継装置が実行する中継方法であって、
フラッディング抑制ポート記憶手段に記憶された、フレームのフラッディングを抑制するポートを識別可能な情報に基づいて、ノードとポートとの対応情報を記憶した対応情報記憶手段に記憶されていないノードを宛先とするフレームをフラッディングさせるポートを限定する中継手順を有する中継方法。
（付記６）
受信された制御フレームに含まれているコマンドに応じて、前記フラッディングを抑制するポートと前記対応情報記憶手段に記録されていないノードとの対応情報を前記対応情報記憶手段に記録する第一の最適化手順を有し、
前記中継手順は、該ノードを宛先とするフレームを当該ノードに対応付けられた前記フラッディングを抑制するポートより送出させる付記５記載の中継方法。
（付記７）
中継装置が実行する中継方法であって、
付記１又は２記載の中継装置のフラッディングを抑制するポートによって冗長経路の両端が接続されたネットワークに属する複数の中継装置のいずれかより前記ネットワークの外部ノードの検知を通知する制御フレームを受信する受信手順と、
前記外部ノードが検知されたポートの識別情報と前記ネットワークにおける前記複数の中継装置の接続関係を示す情報とに基づいて、前記複数の各中継装置から前記外部ノードへの最適経路を前記フラッディングを抑制するポートも利用して算出する最適経路算出手順と、
前記最適経路算出手順の算出結果に基づいて前記外部ノードに対応させるポートを指定するコマンドを含む制御フレームを前記ネットワークに送出する第二の最適化手順を有する中継方法。
（付記８）
前記第二の最適化手順は、前記フラッディングを抑制するポート有する中継装置が他の中継装置より先に前記コマンドを処理するように前記制御フレームを送出する付記７記載の中継方法。
（付記９）
フレームの中継を行う中継装置であって、
ノードとポートとの対応情報を記憶した対応情報記憶手段と、
前記対応情報記憶手段に記憶されたノードについて、対応するポートと異なるポートより当該ノードを送信元とするフレームが受信された場合に、当該フレームを廃棄する廃棄手段と、
宛先が前記対応情報記憶手段に記憶されていないフレームが受信された場合に当該フレームを廃棄すべきことを示す情報をポートごとに記憶したフレーム廃棄設定記憶手段とを有し、
前記廃棄手段は、前記対応情報記憶手段が飽和状態である場合に、冗長経路に接続されたポートより受信され、宛先が前記対応情報記憶手段に記憶されていないフレームを、前記フレーム廃棄設定記憶手段に記憶された情報に基づいて廃棄する中継装置。
（付記１０）
前記冗長経路以外に接続されているポートによって前記対応情報記憶手段に記憶されていないノードを宛先とするフレームが受信された場合に、前記対応情報記憶手段が飽和状態であるときは、前記対応情報記憶手段に記憶されているいずれかの前記対応情報を当該ノードと当該ポートとの対応情報によって置き換える対応情報更新手段を有する付記９記載の中継装置。
（付記１１）
フレームの中継を行う中継装置が実行する中継方法であって、
ノードとポートとの対応情報を記憶した対応情報記憶手段に記憶されたノードについて、対応するポートと異なるポートより当該ノードを送信元とするフレームが受信された場合に、当該フレームを廃棄し、前記対応情報記憶手段が飽和状態である場合に、冗長経路に接続されたポートより受信され、宛先が前記対応情報記憶手段に記憶されていないフレームを、フレーム廃棄設定記憶手段に記憶された情報に基づいて廃棄する廃棄手順を有し、
前記フレーム廃棄設定記憶手段は、宛先が前記対応情報記憶手段に記憶されていないフレームが受信された場合に当該フレームを廃棄すべきことを示す情報をポートごとに記憶する中継方法。
（付記１２）
前記冗長経路以外に接続されているポートによって前記対応情報記憶手段に記憶されていないノードを宛先とするフレームが受信された場合に、前記対応情報記憶手段が飽和状態であるときは、前記対応情報記憶手段に記憶されているいずれかの前記対応情報を当該ノードと当該ポートとの対応情報によって置き換える対応情報更新手順を有する付記１１記載の中継方法。
【符号の説明】
【０１６２】
１          スイッチスタック
１１        フラッディング抑制設定部
１２        最適化部
１３        中継部
１４        中継ＤＢ
１５        フラッディング抑制部
２１        ポート属性設定部
２２        ポート移動検出部
２３        フレーム廃棄部
２４        フレーム廃棄設定記憶部
Ｐ          ポート
ＳＷ１、ＳＷ２、ＳＷ３、ＳＷ４    スイッチ
【図１】
2011024178.tif 000003
【図２】
2011024178.tif 000004
【図３】
2011024178.tif 000005
【図４】
2011024178.tif 000006
【図５】
2011024178.tif 000007
【図６】
2011024178.tif 000008
【図７】
2011024178.tif 000009
【図８】
2011024178.tif 000010
【図９】
2011024178.tif 000011
【図１０】
2011024178.tif 000012
【図１１】
2011024178.tif 000013
【図１２】
2011024178.tif 000014
【図１３】
2011024178.tif 000015
【図１４】
2011024178.tif 000016
【図１５】
2011024178.tif 000017
【図１６】
2011024178.tif 000018
【図１７】
2011024178.tif 000019
【図１８】
2011024178.tif 000020
【図１９】
2011024178.tif 000021
【図２０】
2011024178.tif 000022
【図２１】
2011024178.tif 000023
【図２２】
2011024178.tif 000024
【図２３】
2011024178.tif 000025
【図２４】
2011024178.tif 000026
【図２５】
2011024178.tif 000027
【図２６】
2011024178.tif 000028
【図２７】
2011024178.tif 000029
【図２８】
2011024178.tif 000030
【図２９】
2011024178.tif 000031
【図３０】
2011024178.tif 000032
【図３１】
2011024178.tif 000033
【図３２】
2011024178.tif 000034