(57)【特許請求の範囲】
【請求項１】
リングネットワークを構成するネットワーク中継装置であって、
物理回線を接続するための複数のポートと、
前記複数のポートにそれぞれ接続された複数の物理回線を仮想的な仮想回線として扱う仮想回線制御部と、
前記仮想回線を介して前記ネットワーク中継装置が接続されているネットワークの状態を確認するための状態確認フレームを、前記仮想回線に送信する状態確認フレーム制御部と、
を備え、
前記状態確認フレーム制御部は、
前記状態確認フレームを、リングネットワークの第１の方向に接続されたポートおよび前記第１の方向とは異なる第２の方向に接続されたポートからそれぞれ送信し、
前記第１の方向に前記状態確認フレームを送信したポートと、前記第２の方向に送信され、リングネットワークを循環した前記状態確認フレームを前記他のネットワーク中継装置から受信したポートと、が同一となる状態が連続しないように、前記第１の方向に接続されたポートから第１の規則に従って選択されたポートを用いて、前記第２の方向に接続されたポートから第２の規則に従って選択されたポートを用いて、それぞれ次の前記状態確認フレームを送信する、ネットワーク中継装置。
【請求項２】
請求項１記載のネットワーク中継装置であって、
前記第１の規則は、前回、前記状態確認フレームを送信したポートとは異なるポートを選択することであり、
前記第２の規則は、前回、前記状態確認フレームを送信したポートと同じポートを選択することである、ネットワーク中継装置。
【請求項３】
請求項１記載のネットワーク中継装置であって、
前記第１の規則は、前回、前記状態確認フレームを送信したポートの次に大きいポート番号が割り当てられたポートを選択することであり、
前記第２の規則は、前回、前記状態確認フレームを送信したポートの次に小さいポート番号が割り当てられたポートを選択することである、ネットワーク中継装置。
【請求項４】
請求項１記載のネットワーク中継装置であって、
前記第１の規則は、前回、前記状態確認フレームを送信したポートとは異なるポートを選択することであり、
前記第２の規則は、前回、前記他のネットワーク中継装置から前記状態確認フレームを受信したポートを選択することである、ネットワーク中継装置。
【請求項５】
請求項２ないし４のいずれか一項記載のネットワーク中継装置であって、さらに、
前回、前記状態確認フレームを送信したポートの履歴と、前回、前記他のネットワーク中継装置から前記状態確認フレームを受信したポートの履歴と、を記憶するための履歴記憶部を備える、ネットワーク中継装置。
【請求項６】
リングネットワークを構成するネットワーク中継装置であって、
物理回線を接続するための複数のポートと、
前記複数のポートにそれぞれ接続された複数の物理回線を仮想的な仮想回線として扱う仮想回線制御部と、
前記仮想回線を介して前記ネットワーク中継装置が接続されているネットワークの状態を確認するための状態確認フレームを、前記仮想回線に送信する状態確認フレーム制御部と、
を備え、
前記状態確認フレーム制御部は、
リングネットワークの第１の方向に接続されたポートであって、前記仮想回線を構成する物理回線のうちの一部の物理回線に接続されたポートを用いて、前記状態確認フレームを送信すると共に、
リングネットワークの前記第１の方向とは異なる第２の方向に接続されたポートであって、前記仮想回線を構成する物理回線のうちの、前記一部の物理回線とは重複しない他の物理回線に接続されたポートを用いて、前記状態確認フレームを送信する、ネットワーク中継装置。
【請求項７】
請求項６記載のネットワーク中継装置であって、
前記状態確認フレーム制御部は、さらに、
前記仮想回線を構成する物理回線に障害が発生した場合は、前記一部の物理回線と、前記他の物理回線と、を再選択した上で、次の前記状態確認フレームを送信する、ネットワーク中継装置。
【請求項８】
請求項１ないし７のいずれか一項記載のネットワーク中継装置であって、さらに、
前記状態確認フレームを生成し、生成した前記状態確認フレームを前記状態確認フレーム制御部に送信させると共に、送信した前記状態確認フレームを、所定の時間、前記他のネットワーク中継装置から受信しなかった場合、前記ネットワークに障害が発生したものと推定し、所定の経路再構築処理を実行するリング管理部を備える、ネットワーク中継装置。
【請求項９】
リングネットワークを構成するネットワーク中継装置の制御方法であって、
（ａ）複数のポートにそれぞれ接続された複数の物理回線を仮想的な仮想回線として扱う工程と、
（ｂ）前記仮想回線を介して前記ネットワーク中継装置が接続されているネットワークの状態を確認するための状態確認フレームを、前記仮想回線に送信する工程と、
を備え、
前記工程（ｂ）は、
前記状態確認フレームを、リングネットワークの第１の方向に接続されたポートおよび前記第１の方向とは異なる第２の方向に接続されたポートからそれぞれ送信し、
前記第１の方向に前記状態確認フレームを送信したポートと、前記第２の方向に送信され、リングネットワークを循環した前記状態確認フレームを前記他のネットワーク中継装置から受信したポートと、が同一となる状態が連続しないように、前記第１の方向に接続されたポートから第１の規則に従って選択されたポートを用いて、前記第２の方向に接続されたポートから第２の規則に従って選択されたポートを用いて、それぞれ次の前記状態確認フレームを送信する、
ネットワーク中継装置の制御方法。
【請求項１０】
リングネットワークを構成するネットワーク中継装置の制御方法であって、
（ａ）複数のポートにそれぞれ接続された複数の物理回線を仮想的な仮想回線として扱う工程と、
（ｂ）前記仮想回線を介して前記ネットワーク中継装置が接続されているネットワークの状態を確認するための状態確認フレームを、前記仮想回線に送信する工程と、
を備え、
前記工程（ｂ）は、
リングネットワークの第１の方向に接続されたポートであって、前記仮想回線を構成する物理回線のうちの一部の物理回線に接続されたポートを用いて、前記状態確認フレームを送信すると共に、
リングネットワークの前記第１の方向とは異なる第２の方向に接続されたポートであって、前記仮想回線を構成する物理回線のうちの、前記一部の物理回線とは重複しない他の物理回線に接続されたポートを用いて、前記状態確認フレームを送信する、
ネットワーク中継装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク中継装置に関し、特に、ネットワーク中継装置が接続されたネットワークの障害を検出する技術に関する。
【背景技術】
【０００２】
イーサネット（登録商標）を用いたレイヤ２ネットワークにおいて、スイッチの冗長化を図るプロトコルとして、ＩＥＥＥ８０２．１ｄで標準化されているスパニングツリープロトコル（ＳＴＰ）が知られている。ＳＴＰでは、スイッチ間でＢＰＤＵ（bridge protocol data unit）と呼ばれる制御フレームを交換することで、経路のループ構成を論理的に排除すると共に、例えば、障害の有無といった、スイッチが接続されているネットワークの状態を確認することができる（例えば、非特許文献１参照）。同様に、スイッチの冗長化を図るプロトコルとして、リングプロトコルが知られている。リングプロトコルにおいても、スイッチ間でヘルスチェックフレームと呼ばれる制御フレームを交換することで、経路のループ構成を論理的に排除すると共に、スイッチが接続されているネットワークの状態を確認することができる。
【０００３】
一方、物理回線の冗長化を図る構成として、ＩＥＥＥ８０２．３ａｄ/ＩＥＥＥ８０２．１AＸで標準化されているリンクアグリゲーション（Link Aggregation）が知られている。リンクアグリゲーションを用いれば、複数の物理回線を集約して、仮想的な１つの仮想回線として扱うことが可能となる。リンクアグリゲーションでは、仮想回線の帯域幅は、集約した物理回線の帯域幅の合計となるため、帯域幅が拡大するという利点がある。また、集約した物理回線の一部において障害が発生しても、残りの物理回線で通信を継続することができるという利点がある（例えば、非特許文献２参照）。
【０００４】
近年、アクセスネットワークのみならず、コアネットワークやメトロネットワークにおいても、高速かつ大容量で、信頼性の高い通信を可能とするために、上記スイッチの冗長化と、物理回線の冗長化を組み合わせたネットワークが増加している。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】"IEEE Standard for Local and metropolitan area networks Media Access Control (MAC) Bridges", IEEE Computer Society, http://standards.ieee.org/getieee802/download/802.1D-2004.pdf
【非特許文献２】"IEEE Standard for Local and metropolitan area networks-Link Aggregation", IEEE Computer Society, http://standards.ieee.org/getieee802/download/802.1AX-2008.pdf
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来、上記のようなスイッチの冗長化と、物理回線の冗長化を組み合わせたネットワーク、例えば、リングプロトコルとリンクアグリゲーションを組み合わせたネットワークにおいて、ヘルスチェックフレームは、所定の振り分け方式に従って仮想回線内の各物理回線に振り分けられて送信される。ところが、定期的に行われるヘルスチェックフレームの送信が、仮想回線を構成する特定の物理回線に集中してしまうことがあり、このような場合に、当該特定の物理回線に障害が発生した場合、仮想回線全体としては障害が発生していない（同じ仮想回線中の他の物理回線には障害が発生していない）にもかかわらず、リングネットワークにおいて障害が発生したと誤検出してしまうという問題があった。
【０００７】
また、このような問題は、ＳＴＰ、リングプロトコル、リンクアグリゲーションといった具体的なプロトコルおよびその組合せに限定されず、物理回線を冗長化しつつ、ネットワークの状態を確認するための制御フレーム（またはパケット）を交換するネットワーク中継装置に共通する問題であった。
【０００８】
本発明は、仮想回線を用いて物理回線を冗長化しつつ、ネットワークの状態を確認するための制御フレームを交換するネットワーク中継装置において、仮想回線の障害の誤検出を低減することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、例えば、以下の形態として実現可能である。リングネットワークを構成するネットワーク中継装置であって、物理回線を接続するための複数のポートと、前記複数のポートにそれぞれ接続された複数の物理回線を仮想的な仮想回線として扱う仮想回線制御部と、前記仮想回線を介して前記ネットワーク中継装置が接続されているネットワークの状態を確認するための状態確認フレームを、前記仮想回線に送信する状態確認フレーム制御部と、を備え、前記状態確認フレーム制御部は、前記状態確認フレームを、リングネットワークの第１の方向に接続されたポートおよび前記第１の方向とは異なる第２の方向に接続されたポートからそれぞれ送信し、前記第１の方向に前記状態確認フレームを送信したポートと、前記第２の方向に送信され、リングネットワークを循環した前記状態確認フレームを前記他のネットワーク中継装置から受信したポートと、が同一となる状態が連続しないように、前記第１の方向に接続されたポートから第１の規則に従って選択されたポートを用いて、前記第２の方向に接続されたポートから第２の規則に従って選択されたポートを用いて、それぞれ次の前記状態確認フレームを送信する、ネットワーク中継装置。そのほか、以下の形態又は適用例として実現することが可能である。
【００１０】
［適用例１］
ネットワーク中継装置であって、
物理回線を接続するための複数のポートと、
前記複数のポートにそれぞれ接続された複数の物理回線を仮想的な仮想回線として扱う仮想回線制御部と、
前記仮想回線を介して前記ネットワーク中継装置が接続されているネットワークの状態を確認するための状態確認フレームを、前記仮想回線に送信する状態確認フレーム制御部と、
を備え、
前記状態確認フレーム制御部は、
前記状態確認フレームを送信したポートと、他のネットワーク中継装置から前記状態確認フレームを受信したポートが同一となる状態が連続しないように、前記状態確認フレームを送信するポートを変える、ネットワーク中継装置。
このような構成とすれば、状態確認フレーム制御部は、仮想回線を介してネットワーク中継装置が接続されたネットワークの状態を確認するための状態確認フレームを送信したポートと、他のネットワーク中継装置から状態確認フレームを受信したポートが同一となる状態が連続しないように、状態確認フレームを送信するポートを変える。このため、状態確認フレームの送受信ポートが同一となる状態が連続し、かつ、当該送受信ポートに接続された物理回線に障害が発生した結果、状態確認フレームが破棄される現象の発生を抑制することができる。この結果、仮想回線を用いて物理回線を冗長化しつつ、ネットワークの状態を確認するための制御フレームを交換するネットワーク中継装置において、仮想回線の障害の誤検出を低減することができる。
【００１１】
［適用例２］
適用例１記載のネットワーク中継装置であって、
前記ネットワーク中継装置は、リングネットワークを構成し、
前記状態確認フレーム制御部は、
前記状態確認フレームを、リングネットワークの第１の方向に接続されたポートおよび前記第１の方向とは異なる第２の方向に接続されたポートからそれぞれ送信し、
前記第１の方向に前記状態確認フレームを送信したポートと、前記第２の方向に送信され、リングネットワークを循環した前記状態確認フレームを前記他のネットワーク中継装置から受信したポートと、が同一となる状態が連続しないように、前記第１の方向に接続されたポートから第１の規則に従って選択されたポートを用いて、前記第２の方向に接続されたポートから第２の規則に従って選択されたポートを用いて、それぞれ次の前記状態確認フレームを送信する、ネットワーク中継装置。
このような構成とすれば、状態確認フレーム制御部は、第１の方向に状態確認フレームを送信したポートと、第２の方向に送信され、リングネットワークを循環した状態確認フレームを他のネットワーク中継装置から受信したポートと、が同一となる状態が連続しないように、第１の規則と、第２の規則と、を用いて、次の状態確認フレームを送信するポートの選択を行うことができる。
【００１２】
［適用例３］
適用例２記載のネットワーク中継装置であって、
前記第１の規則は、前回、前記状態確認フレームを送信したポートとは異なるポートを選択することであり、
前記第２の規則は、前回、前記状態確認フレームを送信したポートと同じポートを選択することである、ネットワーク中継装置。
このような構成とすれば、状態確認フレーム制御部は、第１の方向に接続されたポートから、前回、状態確認フレームを送信したポートとは異なるポートを選択して次の状態確認フレームを送信し、第２の方向に接続されたポートから、前回、状態確認フレームを送信したポートと同じポートを選択して次の状態確認フレームを送信するため、状態確認フレームの送受信ポートが同一となる状態が連続しないように、状態確認フレームを送信するポートを変えることができる。
【００１３】
［適用例４］
適用例２記載のネットワーク中継装置であって、
前記第１の規則は、前回、前記状態確認フレームを送信したポートの次に大きいポート番号が割り当てられたポートを選択することであり、
前記第２の規則は、前回、前記状態確認フレームを送信したポートの次に小さいポート番号が割り当てられたポートを選択することである、ネットワーク中継装置。
このような構成とすれば、状態確認フレーム制御部は、第１の方向に接続されたポートから、前回、状態確認フレームを送信したポートの次に大きいポート番号が割り当てられたポートを選択して次の状態確認フレームを送信し、第２の方向に接続されたポートから、前回、状態確認フレームを送信したポートの次に小さいポート番号が割り当てられたポートを選択して次の状態確認フレームを送信するため、状態確認フレームの送受信ポートが同一となる状態が連続しないように、状態確認フレームを送信するポートを変えることができる。
【００１４】
［適用例５］
適用例２記載のネットワーク中継装置であって、
前記第１の規則は、前回、前記状態確認フレームを送信したポートとは異なるポートを選択することであり、
前記第２の規則は、前回、前記他のネットワーク中継装置から前記状態確認フレームを受信したポートを選択することである、ネットワーク中継装置。
このような構成とすれば、状態確認フレーム制御部は、第１の方向に接続されたポートから、前回、状態確認フレームを送信したポートとは異なるポートを選択して次の状態確認フレームを送信し、第２の方向に接続されたポートから、前回、他のネットワーク中継装置から状態確認フレームを受信したポートを選択して次の状態確認フレームを送信するため、状態確認フレームの送受信ポートが同一となる状態が連続しないように、状態確認フレームを送信するポートを変えることができる。
【００１５】
［適用例６］
適用例３ないし５のいずれか一項記載のネットワーク中継装置であって、さらに、
前回、前記状態確認フレームを送信したポートの履歴と、前回、前記他のネットワーク中継装置から前記状態確認フレームを受信したポートの履歴と、を記憶するための履歴記憶部を備える、ネットワーク中継装置。
このような構成とすれば、状態確認フレーム制御部は、第１の規則に従ってポートを選択する際と、第２の規則に従ってポートを選択する際に、履歴記憶部に記憶された送受信ポートの履歴を参照することができる。
【００１６】
［適用例７］
適用例１記載のネットワーク中継装置であって、
前記ネットワーク中継装置は、リングネットワークを構成し、
前記状態確認フレーム制御部は、
リングネットワークの第１の方向に接続されたポートであって、前記仮想回線を構成する物理回線のうちの一部の物理回線に接続されたポートを用いて、前記状態確認フレームを送信すると共に、
リングネットワークの前記第１の方向とは異なる第２の方向に接続されたポートであって、前記仮想回線を構成する物理回線のうちの、前記一部の物理回線とは重複しない他の物理回線に接続されたポートを用いて、前記状態確認フレームを送信する、ネットワーク中継装置。
このような構成とすれば、状態確認フレーム制御部は、第１の方向に状態確認フレームを送信したポートと、第２の方向に送信され、リングネットワークを循環した状態確認フレームを他のネットワーク中継装置から受信したポートと、が同一とならないように、状態確認フレームを送信することができる。
【００１７】
［適用例８］
適用例７記載のネットワーク中継装置であって、
前記状態確認フレーム制御部は、さらに、
前記仮想回線を構成する物理回線に障害が発生した場合は、前記一部の物理回線と、前記他の物理回線と、を再選択した上で、次の前記状態確認フレームを送信する、ネットワーク中継装置。
このような構成とすれば、状態確認フレーム制御部は、仮想回線を構成する物理回線に障害が発生した場合は、一部の物理回線と、他の物理回線と、を再選択することができる。
【００１８】
［適用例９］
適用例１ないし８のいずれか一項記載のネットワーク中継装置であって、さらに、
前記状態確認フレームを生成し、生成した前記状態確認フレームを前記状態確認フレーム制御部に送信させると共に、送信した前記状態確認フレームを、所定の時間、前記他のネットワーク中継装置から受信しなかった場合、前記ネットワークに障害が発生したものと推定し、所定の経路再構築処理を実行するリング管理部を備える、ネットワーク中継装置。
このような構成とすれば、ネットワーク中継装置は、さらに、状態確認フレームを生成して送信させると共に、ネットワークの障害発生を検出し、所定の経路再構築処理を実行するリング管理部を備えるため、リングプロトコルにおけるマスタノードとして動作することができる。
【００１９】
なお、本発明は、種々の態様で実現することが可能である。例えば、ネットワーク中継装置および方法、ネットワーク中継システム、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記憶媒体等の形態で実現することができる。
【発明の効果】
【００２０】
本発明によれば、状態確認フレーム制御部は、仮想回線を介してネットワーク中継装置が接続されたネットワークの状態を確認するための状態確認フレームを送信したポートと、他のネットワーク中継装置から状態確認フレームを受信したポートが同一となる状態が連続しないように、状態確認フレームを送信するポートを変える。このため、状態確認フレームの送受信ポートが同一となる状態が連続し、かつ、当該送受信ポートに接続された物理回線に障害が発生した結果、状態確認フレームが破棄される現象の発生を抑制することができる。この結果、仮想回線を用いて物理回線を冗長化しつつ、ネットワークの状態を確認するための制御フレームを交換するネットワーク中継装置において、仮想回線の障害の誤検出を低減することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の一実施例としてのネットワーク中継装置が用いられたネットワークの概略構成を示す説明図である。
【図２】仮想回線について説明するための説明図である。
【図３】ヘルスチェックフレームが送信される様子を示す説明図である。
【図４】比較例においてヘルスチェックフレームが送信される様子を示す説明図である。
【図５】比較例において障害が発生した際の様子を示す説明図である。
【図６】本発明の一実施例としてのスイッチの概略構成を示す説明図である。
【図７】ＬＡリングマッピングテーブルの一例を示す説明図である。
【図８】ＬＡ管理テーブルの一例を示す説明図である。
【図９】ヘルスチェック送受信管理テーブルの一例を示す説明図である。
【図１０】フレーム受信処理の手順を示すフローチャートである。
【図１１】ヘルスチェックフレーム受信処理の手順を示すフローチャートである。
【図１２】ヘルスチェックフレーム送信処理の手順を示すフローチャートである。
【図１３】物理ポート状態変更処理の手順を示すフローチャートである。
【図１４】ネットワークにおいてヘルスチェックフレームの送受信が開始される様子を示す説明図である。
【図１５】ネットワークにおいて２回目以降のヘルスチェックフレームの送受信が行われる様子を示す説明図である。
【図１６】ネットワークにおいて障害が発生した際の様子を示す説明図である。
【図１７】ネットワークの障害発生後においてヘルスチェックフレームの送受信ポートが同一となる様子を示す説明図である。
【図１８】ネットワークの障害発生後においてヘルスチェックフレームの送受信ポートが同一となる状態を回避する様子を示す説明図である。
【図１９】第２実施例としてのスイッチの概略構成を示す説明図である。
【図２０】第２実施例におけるヘルスチェックフレーム送信処理の手順を示すフローチャートである。
【図２１】ネットワークにおいてヘルスチェックフレームの送受信が開始される様子を示す説明図である。
【図２２】ネットワークにおいて２回目のヘルスチェックフレームの送受信が行われる様子を示す説明図である。
【図２３】ネットワークにおいて３回目のヘルスチェックフレームの送受信が行われる様子を示す説明図である。
【図２４】ネットワークにおいて障害が発生した際の様子を示す説明図である。
【図２５】ネットワークの障害発生後においてヘルスチェックフレームの送受信ポートが同一となる様子を示す説明図である。
【図２６】ネットワークの障害発生後においてヘルスチェックフレームの送受信ポートが同一となる状態を回避する様子を示す説明図である。
【図２７】第３実施例としてのスイッチの概略構成を示す説明図である。
【図２８】第２実施例におけるヘルスチェック送受信管理テーブルの一例を示す説明図である。
【図２９】第３実施例におけるヘルスチェックフレーム送信処理の手順を示すフローチャートである。
【図３０】第３実施例における物理ポート状態変更処理の手順を示すフローチャートである。
【図３１】ネットワークにおいてヘルスチェックフレームの送受信が開始される様子を示す説明図である。
【図３２】ネットワークにおいて２回目のヘルスチェックフレームの送受信が行われる様子を示す説明図である。
【図３３】ネットワークにおいて障害が発生した際の様子を示す説明図である。
【図３４】ネットワークの障害発生後においてヘルスチェックフレームの送受信が開始される様子を示す説明図である。
【図３５】ネットワークの障害発生後においてヘルスチェックフレームの送受信が継続される様子を示す説明図である。
【図３６】第４実施例としてのスイッチの概略構成を示す説明図である。
【図３７】第４実施例におけるヘルスチェックフレーム受信処理の手順を示すフローチャートである。
【図３８】第４実施例におけるヘルスチェックフレーム送信処理の手順を示すフローチャートである。
【図３９】ネットワークにおいてヘルスチェックフレームの送受信が開始される様子を示す説明図である。
【図４０】ネットワークにおいて２回目のヘルスチェックフレームの送受信が行われる様子を示す説明図である。
【図４１】ネットワークにおいて障害が発生した際の様子を示す説明図である。
【図４２】ネットワークの障害発生後においてヘルスチェックフレームの送受信が開始される様子を示す説明図である。
【図４３】ネットワークの障害発生後においてヘルスチェックフレームの送受信が継続される様子を示す説明図である。
【図４４】変形例としてのネットワーク中継装置が用いられたネットワークの概略構成を示す説明図である。
【発明を実施するための形態】
【００２２】
次に、本発明の実施の形態を実施例に基づいて説明する。
【００２３】
Ａ．概略説明：
（Ａ−１）本発明の概略説明：
図１は、本発明の一実施例としてのネットワーク中継装置が用いられたネットワークの概略構成を示す説明図である。ネットワーク１０００は、４台のネットワーク中継装置１０（＃１〜＃４）を備えている。各ネットワーク中継装置１０は、いわゆるレイヤ２スイッチであり、ＭＡＣアドレスによるフレームの中継を行う機能を有する。なお、以降では、「ネットワーク中継装置」を単に「スイッチ」とも呼ぶ。また、スイッチ１０を相互に識別する必要がある場合に、一方をスイッチ＃１、他方をスイッチ＃２等と呼び、スイッチ１０そのものの構成や動作の説明では「スイッチ１０」と呼ぶ。また、図１では便宜上、説明上必要としない、他のネットワーク中継装置、回線、端末、およびネットワーク中継装置内の構成部については図示を省略している。このことは、後述する図においても同様である。
【００２４】
スイッチ＃１と＃２とは、仮想回線（詳細は後述）ＬＮＡにより接続されている。同様に、スイッチ＃２と＃３とは仮想回線ＬＮＢにより、スイッチ＃３と＃４とは仮想回線ＬＮＣにより、スイッチ＃４と＃１とは仮想回線ＬＮＤにより、それぞれ接続されている。これにより、スイッチ＃１〜＃４は、環状のリングネットワークを構成している。なお、リングネットワークを構成するために他のスイッチと接続されるポートを、「リングポート」とも呼ぶ。
【００２５】
リングネットワークにおいては、リングプロトコルを用いて、ネットワークの状態を監視し、障害発生時や障害復旧時などといったネットワークの状態変化に基づく通信経路の切り替えを行う。リングプロトコルでは、リングネットワークを構成するスイッチを、１台のマスタノードと、残りのトランジットノードに分けた上で、マスタノードが主となって、ネットワークの状態を監視し、必要に応じて通信経路を切り替える。図１の例では、スイッチ＃１がマスタノード、スイッチ＃２〜＃４がトランジットノードである。
【００２６】
リングプロトコルでは、マスタノードのリングポートのうち、特定のスイッチと接続されているリングポートを通信可能な状態とし、他のスイッチと接続されているリングポートを通信不可能な状態とすることで、環状のネットワークにおけるフレームのループを抑制している。図１の例では、スイッチ＃１のリングポートのうち、仮想回線ＬＮＡを介してスイッチ＃２と接続されているリングポートを通信不可能な論理ブロック状態ＢＫとしている。このため、図１の例では、例えば、スイッチ＃１からスイッチ＃２宛てのフレームは、「スイッチ＃１−スイッチ＃４−スイッチ＃３−スイッチ＃２」という経路を用いて中継される。なお、通信可能な状態とされたリングポートを「プライマリポート」、通信不可能な状態（論理ブロック状態ＢＫ）とされたリングポートを「セカンダリポート」とも呼ぶ。また、プライマリポートは、特許請求の範囲における「第１の方向に接続されたポート」に相当し、セカンダリポートは、特許請求の範囲における「第２の方向に接続されたポート」に相当する。
【００２７】
また、リングプロトコルでは、リングネットワークの状態を監視するために、ヘルスチェックフレームと呼ばれる専用の制御フレームを用いる。なお、ヘルスチェックフレームは、特許請求の範囲における「状態確認フレーム」に相当する。ヘルスチェックフレームは、マスタノードであるスイッチによって生成され、マスタノードのプライマリポートと、セカンダリポートの両方から送信される。送信されたヘルスチェックフレームは、リングネットワークのトランジットノードである各スイッチによって転送され、最終的にマスタノードであるスイッチに戻ってくる。図１の例では、マスタノードが、プライマリポートから送信したヘルスチェックフレームＨＣＢと、セカンダリポートから送信したヘルスチェックフレームＨＣＦとを受信する様子が示されている。なお、論理ブロック状態ＢＫのポートであっても、ヘルスチェックフレームは送受信可能である。
【００２８】
上述のように、マスタノードであるスイッチは、自らが送信したヘルスチェックフレームを所定時間受信しなかった場合に、リングネットワーク内における障害が発生したと推定することができる。障害検出後、マスタノードであるスイッチは、論理ブロック状態ＢＫのリングポートを通信可能な状態へ変更し、各スイッチにＭＡＣアドレスの再学習を指示するためのフラッシュ制御フレームを送信する。このようにして、リングプロトコルでは、経路のループ構成を論理的に排除することができる。
【００２９】
図２は、仮想回線について説明するための説明図である。図２では、スイッチ＃１と、＃２との間の仮想回線ＬＮＡを例示して説明する。スイッチ１０は、リンクアグリゲーション（ＬＡ、Link Aggregation）機能を実現するために、ＬＡ制御部２００を有している。なお、ＬＡ制御部２００は、特許請求の範囲における「仮想回線制御部」に相当する。リンクアグリゲーションとは、複数の物理回線（物理ポート）を束ねて仮想的な１つの仮想回線（仮想ポート）として取り扱うことが可能な機能であり、帯域幅の拡大や冗長性の確保を図るために用いられる。図２の例では、スイッチ１０のＬＡ制御部２００は、４本の物理回線ＬＮＡ１〜４を１本の仮想回線ＬＮＡとして取り扱い、４本の物理回線ＬＮＡ１〜４に対して、フレームＰＰ１〜３を分散させて送信する機能を持つ。また、ＬＡ制御部２００は、物理回線が接続されている物理ポートと、仮想回線との割り付けを記憶するためのＬＡ管理テーブルを含んでいる。なお、ＬＡ制御部２００およびＬＡ管理テーブルの詳細は後述する。
【００３０】
図３は、ヘルスチェックフレームが送信される様子を示す説明図である。マスタノードであるスイッチ＃１は、プライマリポートＰＰからヘルスチェックフレームＨＣＢを、セカンダリポートＳＰからヘルスチェックフレームＨＣＦを、それぞれ送信する。送信されたヘルスチェックフレームＨＣＢは、それぞれ、スイッチ＃４、スイッチ＃３、スイッチ＃２の順で中継されることによってリングネットワークを循環し、スイッチ＃１へ戻る。また、送信されたヘルスチェックフレームＨＣＦは、それぞれ、スイッチ＃２、スイッチ＃３、スイッチ＃４の順で中継されることによってリングネットワークを循環し、スイッチ＃１へ戻る。
【００３１】
なお、トランジットノードであるスイッチ＃２〜＃４については、マスタノードのプライマリポートから送信されるフレームを他のスイッチに向けて送信するリングポートを「プライマリポート」と呼ぶ。同様に、マスタノードのセカンダリポートから送信されるフレームを他のスイッチに向けて送信するリングポートを「セカンダリポート」と呼ぶ。
【００３２】
本実施例のスイッチ１０は、上記ヘルスチェックフレームの送信について、仮想回線のうちの特定の物理回線にフレームが集中しないよう制御すると共に、１つの物理回線上における同じタイミングでのフレームの送受信を抑制するよう制御する。具体的には、例えば、仮想回線ＬＮＡの物理回線を送受信されるフレームは、次のようになる。
・時刻ｔ１：物理回線ＬＮＡ１にヘルスチェックフレームＨＣＢ１、物理回線ＬＮＡ２にヘルスチェックフレームＨＣＦ１、
・時刻ｔ２：物理回線ＬＮＡ２にヘルスチェックフレームＨＣＢ２、物理回線ＬＮＡ３にヘルスチェックフレームＨＣＦ２、
・時刻ｔ３：物理回線ＬＮＡ３にヘルスチェックフレームＨＣＢ３、物理回線ＬＮＡ４にヘルスチェックフレームＨＣＦ３。
【００３３】
上記のような状況において、物理回線ＬＮＡ２に障害が発生した場合、当該回線ＬＮＡ２を通過しようとするヘルスチェックフレームＨＣＦ１と、ヘルスチェックフレームＨＣＢ２は破棄される。しかし、時刻ｔ１のヘルスチェックフレームＨＣＢ１と、時刻ｔ２のヘルスチェックフレームＨＣＦ２とは、それぞれ障害のない物理回線を経由して送受信される。
【００３４】
このように、本実施例のスイッチ１０（ネットワーク中継装置）を用いたネットワーク１０００では、スイッチ１０が仮想回線を介して接続されたネットワークの状態を確認するためのヘルスチェックフレーム（状態確認フレーム）を送信したポートと、他のスイッチ１０からヘルスチェックフレームを受信したポートが同一となる状態が連続しないように、ヘルスチェックフレームを送信するポートが変更される。従って、特定の物理回線に障害が発生した場合であっても、上記各時刻におけるヘルスチェックフレームの流れは途切れることなく継続される。このため、マスタノードであるスイッチ１０におけるリングネットワーク障害の誤検出を低減することができる。この結果、仮想回線を用いて物理回線を冗長化しつつ、ネットワークの状態を確認するための制御フレーム（ヘルスチェックフレーム）を交換するネットワーク中継装置（スイッチ）において、仮想回線の障害の誤検出を低減することができる。
【００３５】
（Ａ−２）比較例：
図４は、比較例においてヘルスチェックフレームが送信される様子を示す説明図である。図５は、比較例において障害が発生した際の様子を示す説明図である。ネットワーク１０００ｘは、比較例（従来例）の４台のスイッチ１０ｘを備えている。各スイッチの接続関係および仮想回線の説明は図１〜３と同様である。
【００３６】
マスタノードであるスイッチ＃１は、プライマリポートからヘルスチェックフレームＨＣＢを、セカンダリポートからヘルスチェックフレームＨＣＦを、それぞれ送信する。従来例では、ランダムに行われるヘルスチェックフレームの送信が、図示のように、仮想回線内の特定の物理回線（図４の例では物理回線ＬＮＡ１）に集中してしまうことがあった。このような場合に、図５のように、物理回線ＬＮＡ１に障害が発生した場合、当該回線ＬＮＡ１を通過しようとするヘルスチェックフレームＨＣＦ１〜３と、ヘルスチェックフレームＨＣＢ１〜３は全て破棄される。このため、マスタノードであるスイッチ＃１は、ヘルスチェックフレームＨＣＢ、ＨＣＦを受信することが出来なくなる。
【００３７】
スイッチ＃１がヘルスチェックフレームを受信しない状態が、予め設定された障害検出時間継続した場合、スイッチ＃１は、他の物理回線ＬＮＡ２〜４には障害が発生していないにもかかわらず、仮想回線ＬＮＡ全体として障害が発生したと誤検出してしまう。障害が発生したと誤検出したスイッチ＃１は、論理ブロック状態ＢＫのリングポートを通信可能な状態へ変更し、スイッチ＃２〜＃４にフラッシュ制御フレームを送信する。その後、スイッチ＃１〜＃４は、経路再学習処理を行う。このように比較例（従来例）では、マスタノードであるスイッチによる障害の誤検出に伴って、不要な経路再学習処理の発生、および、論理ブロック状態ＢＫの解除に伴うデータフレームのループ発生といった問題が生じる。また、経路再学習処理では、各スイッチによるフラッディングが行われるため、ネットワーク負荷が不要に増大するといった問題も生じる。
【００３８】
さらに、上記障害の誤検出を回避するために、マスタノードであるスイッチにおいて、リングプロトコルの障害検出時間をリンクアグリゲーションの障害検出時間よりも長く設定した場合、仮想回線が全断した場合（すなわち、仮想回線を構成する物理回線の全てに障害が発生した場合）の障害検出が遅くなり、ネットワークの通信不能時間が長くなるという新たな問題が生じる。
【００３９】
Ｂ．第１実施例：
（Ｂ−１）システム構成：
図６は、本発明の一実施例としてのスイッチ１０の概略構成を示す説明図である。スイッチ１０は、リング管理部１００と、ＬＡリングマッピングテーブル１１０と、ＬＡ制御部２００と、フレーム中継部３００と、フレーム識別部３１０および３２０と、ヘルスチェックフレーム制御部４００と、物理回線制御部５００とを備えている。なお、リング管理部１００と、ＬＡリングマッピングテーブル１１０は、ＣＰＵ１５およびメモリ１６により構成されている。また、ＬＡ制御部２００と、フレーム中継部３００と、フレーム識別部３１０および３２０と、ヘルスチェックフレーム制御部４００とは、ＡＳＩＣ（Application Specific Integrated Circuit）１７により構成されている。さらに、物理回線制御部５００は、ＰＨＹチップにより構成されている。
【００４０】
リング管理部１００は、リングプロトコルに基づいて、ヘルスチェックフレームの生成と送受信を行うと共に、ネットワークの状態を監視し、障害発生時や障害復旧時等のネットワークの状態変化に基づく通信経路の切り替えを行う。リング管理部１００は、スイッチ１０にインストールされたプログラムが、メモリ１６をワークエリアとして用いて、ＣＰＵ１５により実行されることでその機能が実現される。
【００４１】
図７は、ＬＡリングマッピングテーブル１１０の一例を示す説明図である。ＬＡリングマッピングテーブル１１０は、リング管理部１００のリングプロトコルに基づく制御において用いられるテーブルである。ＬＡリングマッピングテーブル１１０は、コンフィギュレーション設定により予め生成され、メモリ１６に記憶されている。ＬＡリングマッピングテーブル１１０は、リングＩＤと、ＬＡＩＤと、優先ポート情報とを含んでいる。
【００４２】
リングＩＤには、当該スイッチが属するリングネットワークを識別するための識別子が格納されている。ＬＡＩＤには、リングＩＤにより識別されるリングネットワークを構成する仮想回線（ＬＡ）を識別するための識別子が格納されている。優先ポート情報には、ＬＡＩＤにより識別される仮想回線がプライマリポートである場合は「ｐｒｉｍａｒｙ」、セカンダリポートである場合は「ｓｅｃｏｎｄａｒｙ」の値が格納されている。
【００４３】
例えば、図７の例では、スイッチ１０は、リングＩＤ１０と、リングＩＤ２０の、２つのリングネットワークに接続されている。また、リングＩＤ１０のリングネットワークは、プライマリポートがＬＡＩＤ１の仮想回線に接続され、セカンダリポートがＬＡＩＤ２の仮想回線に接続されている。
【００４４】
図６に戻り、物理回線制御部５００には、複数の物理ポート５１０が含まれている。物理ポート５１０には、それぞれ、ネットワーク回線が接続されており、このネットワーク回線を介して他のスイッチや端末が接続される。物理ポート５１０とネットワーク回線とを総称して「物理回線」とも呼ぶ。物理回線制御部５００は、これら物理回線の状態を監視すると共に、物理回線の状態に変化があった場合に、その旨をヘルスチェックフレーム制御部４００へ通知する機能を有する。また、物理回線制御部５００は、物理ポート５１０を経由して受信したフレームをフレーム識別部３２０へ送信する機能を有する。さらに、物理回線制御部５００は、ヘルスチェック送信制御部４３０やＬＡ送信制御部２３０から受信したフレームを、物理ポート５１０から送信する機能を有する。
【００４５】
ＬＡ制御部２００は、さらに、ＬＡ受信制御部２１０と、ＬＡ管理テーブル２２０と、ＬＡ送信制御部２３０と、ＬＡ管理テーブル２４０とを含んでいる。ＬＡ管理テーブル２２０と、ＬＡ管理テーブル２４０とは、同一の内容のテーブルである。
【００４６】
図８は、ＬＡ管理テーブル２２０および２４０の一例を示す説明図である。ＬＡ管理テーブル２２０、２４０は、ＬＡ制御部２００のリンクアグリゲーション制御において用いられるテーブルである。ＬＡ管理テーブル２２０、２４０は、コンフィギュレーション設定により予め生成され、記憶されている。ＬＡ管理テーブル２２０、２４０は、ＬＡＩＤと、物理ポート番号とを含んでいる。
【００４７】
ＬＡＩＤには、スイッチ１０に設定された仮想回線（ＬＡ）を識別するための識別子が格納されている。物理ポート番号には、ＬＡＩＤにより識別される仮想回線に割り当てられた物理ポート５１０の識別子が格納されている。
【００４８】
例えば、図８の例では、ＬＡＩＤ１の仮想回線には、物理ポート番号９、１０、１１、１２の４つの物理ポートが割り当てられている。また、ＬＡＩＤ２の仮想回線には、物理ポート番号１、２の２つの物理ポートが割り当てられている。
【００４９】
ＬＡ受信制御部２１０は、フレーム識別部３２０よりフレームを受信した際に、フレームのヘッダ情報を更新後、当該フレームをフレーム中継部３００へ送信する。具体的には、ＬＡ受信制御部２１０は、ＬＡ管理テーブル２２０を検索して、フレームを受信した物理ポート５１０に割り当てられているＬＡＩＤを参照し、フレームのヘッダ情報に当該ＬＡＩＤを追加する。ＬＡ送信制御部２３０は、フレーム識別部３１０よりフレームを受信した際に、フレームのヘッダ情報を更新後、当該フレームを物理回線制御部５００へ送信する。具体的には、ＬＡ送信制御部２３０は、ＬＡ管理テーブル２４０を検索して、フレームのヘッダ情報に含まれるＬＡＩＤが割り当てられている物理ポート５１０を参照し、フレームのヘッダ情報に物理ポート５１０の番号を追加する。
【００５０】
図６に戻り、フレーム中継部３００は、フレームの中継を行う。具体的には、フレーム中継部３００は、ＬＡ受信制御部２１０から受信したフレームを、フレーム識別部３１０へ送信する。同様に、フレーム中継部３００は、ヘルスチェック受信制御部４１０から受信したフレームを、リング管理部１００へ送信する。さらに、フレーム中継部３００は、リング管理部１００から受信したフレームを、フレーム識別部３１０へ送信する。フレーム識別部３１０は、フレーム中継部３００から受信したフレームを識別して振り分けるフレーム受信処理（詳細は後述）を行う。フレーム識別部３２０は、物理回線制御部５００から受信したフレームを識別して振り分けるフレーム受信処理（詳細は後述）を行う。
【００５１】
ヘルスチェックフレーム制御部４００は、ヘルスチェック受信制御部４１０と、ヘルスチェック送受信管理テーブル４２０と、ヘルスチェック送信制御部４３０とを含んでいる。なお、ヘルスチェックフレーム制御部４００は、特許請求の範囲における「状態確認フレーム制御部」に相当する。また、ヘルスチェック送受信管理テーブル４２０は、特許請求の範囲における「履歴記憶部」に相当する。ヘルスチェック受信制御部４１０は、フレーム識別部３２０からフレームを受信した際に、ヘルスチェック送受信管理テーブル４２０を更新するためのヘルスチェックフレーム受信処理（詳細は後述）を行う。ヘルスチェック送信制御部４３０は、フレーム識別部３１０からフレームを受信した際に、ヘルスチェック送受信管理テーブル４２０を更新し、フレームの送信先を特定するためのヘルスチェックフレーム送信処理（詳細は後述）を行う。さらに、ヘルスチェックフレーム制御部４００は、物理回線制御部５００から、物理回線の状態に変化があった旨の通知を受信した場合に、ヘルスチェック送受信管理テーブル４２０を更新するための物理ポート状態変更処理（詳細は後述）を行う。
【００５２】
図９は、ヘルスチェック送受信管理テーブル４２０の一例を示す説明図である。ヘルスチェック送受信管理テーブル４２０は、ヘルスチェックフレーム制御部４００における各種処理（ヘルスチェックフレーム受信処理、ヘルスチェックフレーム送信処理、物理ポート状態変更処理）において用いられるテーブルである。ヘルスチェック送受信管理テーブル４２０は、ＬＡリングマッピングテーブル１１０と、ＬＡ管理テーブル２２０（２４０）を元にして予め生成され、ヘルスチェックフレーム制御部４００の各種処理において更新される。ヘルスチェック送受信管理テーブル４２０は、リングＩＤと、ＬＡＩＤと、物理ポート番号と、優先ポート情報と、物理ポート状態と、送信フラグと、受信フラグとを含んでいる。
【００５３】
リングＩＤと、ＬＡＩＤと、物理ポート番号と、優先ポート情報と、には、ＬＡリングマッピングテーブル１１０と、ＬＡ管理テーブル２２０（２４０）を結合した内容が格納されている。物理ポート状態には、物理回線制御部５００からの通知を元に、物理ポート番号で識別される物理回線５１０の状態が格納される。なお、「Ｕｐ」は物理回線が正常状態であり通信可能であることを、「Ｄｏｗｎ」は物理回線に障害が発生しており通信不可能であることを、それぞれ示している。
【００５４】
送信フラグは、スイッチ１０が前回、ヘルスチェックフレームを送信したポートの履歴を記憶するためのフィールドである。送信フラグの既定値は「ｏｆｆ」である。送信フラグには、後述のヘルスチェックフレーム送信処理において、物理ポート番号で識別される物理回線５１０を用いてヘルスチェックフレームの送信を行った場合に「ｏｎ」という値が格納される。受信フラグは、スイッチ１０が前回、他のスイッチからヘルスチェックフレームを受信したポートの履歴を記憶するためのフィールドである。受信フラグの初期値は「ｏｆｆ」である。受信フラグには、後述のヘルスチェックフレーム受信処理において、物理ポート番号で識別される物理回線５１０を用いてヘルスチェックフレームの受信を行った場合に「ｏｎ」という値が格納される。本実施例においては、物理ポート状態、送信フラグ、受信フラグの値は、後述の各処理によって随時更新される。
【００５５】
（Ｂ−２）フレーム受信処理：
図１０は、フレーム受信処理の手順を示すフローチャートである。フレーム受信処理は、フレーム識別部３１０がフレーム中継部３００からフレームを受信した際と、フレーム識別部３２０が物理回線制御部５００からフレームを受信した際に、それぞれ実行するフレームの振り分け処理である。図１０では、フレーム識別部３２０を例にして説明する。
【００５６】
まず、フレームを受信したフレーム識別部３２０は、受信フレームのヘッダ情報をもとに、受信フレームの種別を判定する（ステップＳ１０２）。受信フレームがヘルスチェックフレームであると判定した場合、フレーム識別部３２０は、ヘルスチェックフレーム制御部４００のヘルスチェック受信制御部４１０へ受信フレームを転送し、処理を終了する（ステップＳ１０４）。一方、受信フレームがヘルスチェックフレーム以外のフレームであると判定した場合、フレーム識別部３２０は、ＬＡ制御部２００のＬＡ受信制御部２１０へ受信フレームを転送し、処理を終了する（ステップＳ１０６）。
【００５７】
なお、フレーム識別部３１０におけるフレーム受信処理の場合、ステップＳ１０４では、ヘルスチェックフレーム制御部４００のヘルスチェック送信制御部４３０へ受信フレームを転送する。また、ステップＳ１０６では、ＬＡ制御部２００のＬＡ送信制御部２３０へ受信フレームを転送する。
【００５８】
（Ｂ−３）ヘルスチェックフレーム受信処理：
図１１は、ヘルスチェックフレーム受信処理の手順を示すフローチャートである。ヘルスチェックフレーム受信処理は、ヘルスチェックフレーム制御部４００のヘルスチェック受信制御部４１０が、フレームを受信した際に実行する処理である。
【００５９】
まず、ヘルスチェック受信制御部４１０は、受信フレームのヘッダ情報をもとに、受信ポートを特定する（ステップＳ２０２）。ヘルスチェック受信制御部４１０は、受信ポートの送信フラグ判定を行う（ステップＳ２０４）。具体的には、ヘルスチェック受信制御部４１０は、ステップＳ２０２で求めた受信ポートをキーとしてヘルスチェック送受信管理テーブル４２０を検索し、一致するエントリの送信フラグの値を参照する。一致するエントリの送信フラグの値が「ｏｎ」である場合（ステップＳ２０４：ｏｎ）、ヘルスチェック受信制御部４１０は、当該エントリの受信フラグの値を「ｏｎ」へと更新し、処理をステップＳ２０８へと遷移させる（ステップＳ２０６）。一方、一致するエントリの送信フラグの値が「ｏｆｆ」である場合（ステップＳ２０４：ｏｆｆ）、ヘルスチェック受信制御部４１０は、処理をステップＳ２０８へと遷移させる。ステップＳ２０８において、ヘルスチェック受信制御部４１０は、受信フレームをフレーム中継部３００へ転送した後、処理を終了する。
【００６０】
（Ｂ−４）ヘルスチェックフレーム送信処理：
図１２は、ヘルスチェックフレーム送信処理の手順を示すフローチャートである。ヘルスチェックフレーム送信処理は、ヘルスチェックフレーム制御部４００のヘルスチェック送信制御部４３０が、フレームを受信した際に実行する処理である。
【００６１】
まず、ヘルスチェック送信制御部４３０は、受信フレームのヘッダ情報をもとに、リングＩＤを特定する（ステップＳ３０２）。なお、ヘルスチェックフレームのヘッダ情報のリングＩＤは、マスタノードであるスイッチのリング管理部１００によって、ヘルスチェックフレームの生成時に付与される。また、ヘルスチェック送信制御部４３０は、受信フレームのヘッダ情報をもとに、ＬＡＩＤを特定する（ステップＳ３０４）。ヘルスチェック送信制御部４３０は、送信フラグ判定を行う（ステップＳ３０６）。具体的には、ヘルスチェック送信制御部４３０は、ステップＳ３０２で求めたリングＩＤと、ステップＳ３０４で求めたＬＡＩＤとをキーとしてヘルスチェック送受信管理テーブル４２０を検索し、一致するエントリの中に送信フラグの値が「ｏｎ」であるエントリがあるか否かを判定する。
【００６２】
一致するエントリの中に送信フラグの値が「ｏｎ」であるエントリがない場合（ステップＳ３０６：ＡＬＬ  ｏｆｆ）、当該ＬＡＩＤにより識別される仮想回線では、ヘルスチェックフレームの送信が初めて行われることを意味する。この場合、ヘルスチェック送信制御部４３０は、優先ポート判定を行う（ステップＳ３０８）。具体的には、ヘルスチェック送信制御部４３０は、ＬＡＩＤから特定されたエントリ（ステップＳ３０６の検索結果）の優先ポート情報の値を参照する。
【００６３】
優先ポート情報の値が「ｐｒｉｍａｒｙ」である場合（ステップＳ３０８：ｐｒｉｍａｒｙ）、ヘルスチェック送信制御部４３０は、ＬＡＩＤから特定されたエントリ（ステップＳ３０６の検索結果）の中から、最若番の物理ポート番号（すなわち、物理ポート番号を昇順にソートした場合に最も小さい番号）を選択し、処理をステップＳ３１４へ遷移させる（ステップＳ３１０）。一方、優先ポート情報の値が「ｓｅｃｏｎｄａｒｙ」である場合（ステップＳ３０８：ｓｅｃｏｎｄａｒｙ）、ヘルスチェック送信制御部４３０は、ＬＡＩＤから特定されたエントリ（ステップＳ３０６の検索結果）の中から、最若番＋１の物理ポート番号（すなわち、物理ポート番号を昇順にソートした場合に２番目に小さい番号）を選択し、処理をステップ３１４へ遷移させる（ステップＳ３１２）。なお、本実施例において、「最若番」とは、最も小さな番号を意味する。
【００６４】
ステップＳ３１４において、ヘルスチェック送信制御部４３０は、選択された物理ポートに対して、物理ポート状態判定を行う。具体的には、ヘルスチェック送信制御部４３０は、選択された物理ポート番号をキーとしてヘルスチェック送受信管理テーブル４２０を検索し、一致するエントリの物理ポート状態の値を参照する。
【００６５】
物理ポート状態の値が、通信不可能であることを示す「Ｄｏｗｎ」である場合（ステップＳ３１４：Ｄｏｗｎ）、ヘルスチェック送信制御部４３０は、選択ポート＋１の物理ポート番号を再選択する（ステップＳ３１６）。具体的には、ヘルスチェック送信制御部４３０は、ＬＡＩＤから特定されたエントリ（ステップＳ３０６の検索結果）を物理ポート番号で昇順にソートし、選択中の物理ポート番号の次の番号となる物理ポート番号を選択し、処理をステップＳ３１４へ遷移させる。なお、ステップＳ３１６において、選択中の物理ポート番号が、ＬＡＩＤから特定されたエントリ（ステップＳ３０６の検索結果）の最老番（すなわち、物理ポート番号で昇順にソートした場合の最も大きい番号）である場合、ヘルスチェック送信制御部４３０は、最若番（すなわち、物理ポート番号で昇順にソートした場合の最も小さい番号）の物理ポート番号を再選択する。なお、本実施例において、「最老番」とは、最も大きな番号を意味する。
【００６６】
物理ポート状態の値が、通信可能であることを示す「Ｕｐ」である場合（ステップＳ３１４：Ｕｐ）、ヘルスチェック送信制御部４３０は、送信フラグと、受信フラグを更新する（ステップＳ３１８）。具体的には、ヘルスチェック送信制御部４３０は、選択された物理ポート番号を持つエントリ（ステップＳ３１４の検索結果）の送信フラグを「ｏｎ」へと更新する。また、ヘルスチェック送信制御部４３０は、リングＩＤと、ＬＡＩＤから特定されたエントリのうち、選択された物理ポート番号を持つエントリを除く全てのエントリの送信フラグを「ｏｆｆ」へと更新する。さらに、ヘルスチェック送信制御部４３０は、ＬＡＩＤから特定されたエントリ（ステップＳ３０６の検索結果）の全ての受信フラグを「ｏｆｆ」へと更新する。その後、ヘルスチェック送信制御部４３０は、受信フレームを物理回線制御部５００へ転送し、処理を終了する（ステップＳ３２０）。
【００６７】
ステップＳ３０６において、一致するエントリの中に送信フラグの値「ｏｎ」のエントリがある場合（ステップＳ３０６：ｏｎあり）、当該ＬＡＩＤにより識別される仮想回線におけるヘルスチェックフレームの送信が、既に過去にあった（すなわち、今回が２回目以降のフレーム送信）であることを意味する。この場合、ヘルスチェック送信制御部４３０は、優先ポート判定を行う（ステップＳ３２２）。詳細はステップＳ３０８と同様である。
【００６８】
優先ポート情報の値が「ｐｒｉｍａｒｙ」である場合（ステップＳ３２２：ｐｒｉｍａｒｙ）、ヘルスチェック送信制御部４３０は、送信フラグｏｎの物理ポート＋１の物理ポート番号を選択する（ステップＳ３２６）。具体的には、ヘルスチェック送信制御部４３０は、ＬＡＩＤから特定されたエントリ（ステップＳ３０６の検索結果）を物理ポート番号で昇順にソートし、送信フラグの値が「ｏｎ」であるエントリの物理ポート番号の次の番号となる物理ポート番号を選択する。その後、ヘルスチェック送信制御部４３０は、選択した物理ポートによるフレーム送信のために、処理をステップＳ３１４へ遷移させる。なお、ステップＳ３２６において、送信フラグｏｎの物理ポート番号が、ＬＡＩＤから特定されたエントリ（ステップＳ３０６の検索結果）の最老番（すなわち、物理ポート番号で昇順にソートした場合の最も大きい番号）である場合、ヘルスチェック送信制御部４３０は、最若番（すなわち、物理ポート番号で昇順にソートした場合の最も小さい番号）を選択する。
【００６９】
一方、優先ポート情報の値が「ｓｅｃｏｎｄａｒｙ」である場合（ステップＳ３２２：ｓｅｃｏｎｄａｒｙ）、ヘルスチェック送信制御部４３０は、送信フラグｏｎの物理ポートにおける受信フラグ判定を行う（ステップＳ３２４）。具体的には、ヘルスチェック送信制御部４３０は、ＬＡＩＤから特定されたエントリ（ステップＳ３０６の検索結果）のうち、送信フラグの値が「ｏｎ」であるエントリの受信フラグの値を参照する。受信フラグの値が「ｏｆｆ」である場合（ステップＳ３２４：ｏｆｆ）、ヘルスチェック送信制御部４３０は、処理をステップＳ３２６へ遷移させる。受信フラグの値が「ｏｎ」である場合（ステップＳ３２４：ｏｎ）、ヘルスチェック送信制御部４３０は、当該エントリに格納されている物理ポート番号を選択し、選択した物理ポートによるフレーム送信のために、処理をステップＳ３１４へ遷移させる（ステップＳ３２８）。
【００７０】
（Ｂ−５）物理ポート状態変更処理：
図１３は、物理ポート状態変更処理の手順を示すフローチャートである。物理ポート状態変更処理は、ヘルスチェックフレーム制御部４００が、物理回線制御部５００から、物理回線の状態に変化があった旨の通知を受信した場合に、その都度実行する処理である。
【００７１】
まず、ヘルスチェックフレーム制御部４００は、物理回線制御部５００からの通知を元に、状態に変化のあった物理回線に接続されている物理ポートを特定する（ステップＳ４０２）。ヘルスチェックフレーム制御部４００は、物理回線制御部５００からの通知を元に、ポート状態変更判定を行う（ステップＳ４０４）。具体的には、ヘルスチェックフレーム制御部４００は、物理回線が正常状態に変化した旨の通知を受けた場合は「Ｕｐ」であると判定し、物理回線に障害が発生した旨の通知を受けた場合は「Ｄｏｗｎ」であると判定する。
【００７２】
判定結果が「Ｕｐ」である場合（ステップＳ４０４：Ｕｐ）、ヘルスチェックフレーム制御部４００は、ヘルスチェック送受信管理テーブル４２０をステップＳ４０２で求めた物理ポート番号で検索し、一致するエントリの物理ポート状態の値を「Ｕｐ」へ更新する（ステップＳ４０６）。判定結果が「Ｄｏｗｎ」である場合（ステップＳ４０４：Ｄｏｗｎ）、ヘルスチェックフレーム制御部４００は、ヘルスチェック送受信管理テーブル４２０をステップＳ４０２で求めた物理ポート番号で検索し、一致するエントリの物理ポート状態の値を「Ｄｏｗｎ」へ更新する（ステップＳ４０８）。その後、ヘルスチェックフレーム制御部４００は処理を終了する。
【００７３】
（Ｂ−６）動作：
スイッチ１０が用いられたネットワーク１０００において、ヘルスチェックフレームの送受信が行われる様子を説明する。なお、以降では、図１に示したネットワーク１０００のうち、スイッチ＃１と＃２、および、両スイッチを接続する仮想回線ＬＮＡに焦点を当てて説明する。スイッチ＃１〜＃４は、スイッチ＃１がマスタノードとして振舞うこと、また、スイッチ＃２〜＃４がトランジットノードとして振舞うこと、を除いては同様の構成および動作を有するスイッチである。このため、スイッチ＃１を用いてスイッチ１０におけるセカンダリポートのフレーム処理を、スイッチ＃２を用いてスイッチ１０におけるプライマリポートのフレーム処理を、それぞれ説明する。なお、説明の便宜のため、スイッチ＃２の構成要素の末尾には「ｐ」を付与する。なお、スイッチ＃２と＃３、スイッチ＃３と＃４、スイッチ＃４と＃１との間についても、図１４と同様の構成を有し、同様の処理が行われる。
【００７４】
（Ｂ−６−１）時刻ｔ１（障害発生前１）：
図１４は、ネットワーク１０００においてヘルスチェックフレームの送受信が開始される様子を示す説明図である。図１４の上段は、スイッチ＃１と＃２および仮想回線ＬＮＡの概略図を表す。図１４の下段は、スイッチ＃１と＃２がそれぞれ有するヘルスチェック送受信管理テーブル４２０の一部を表す。
【００７５】
仮想回線ＬＮＡを構成する物理回線ＬＮＡ１は、スイッチ＃１のリングＩＤ１０、ＬＡＩＤ１に属する物理ポート番号９のポートと、スイッチ＃２のリングＩＤ１０、ＬＡＩＤ１に属する物理ポート番号９ｐのポートに、それぞれ接続されている。同様に、物理回線ＬＮＡ２は、スイッチ＃１のリングＩＤ１０、ＬＡＩＤ１に属する物理ポート番号１０のポートと、スイッチ＃２のリングＩＤ１０、ＬＡＩＤ１に属する物理ポート番号１０ｐのポートに、物理回線ＬＮＡ３は、スイッチ＃１のリングＩＤ１０、ＬＡＩＤ１に属する物理ポート番号１１のポートと、スイッチ＃２のリングＩＤ１０、ＬＡＩＤ１に属する物理ポート番号１１ｐのポートに、物理回線ＬＮＡ４は、スイッチ＃１のリングＩＤ１０、ＬＡＩＤ１に属する物理ポート番号１２のポートと、スイッチ＃２のリングＩＤ１０、ＬＡＩＤ１に属する物理ポート番号１２ｐのポートに、それぞれ接続されている。スイッチ＃１のうち、仮想回線ＬＮＡに接続されている物理ポート９〜１２は、通常のフレームが送信不可能な（論理ブロック状態ＢＫとされた）セカンダリポートである。一方、スイッチ＃２のうち、仮想回線ＬＮＡに接続されている物理ポート９ｐ〜１２ｐは、通常のフレームが送信可能なプライマリポートである。
【００７６】
図１４の時刻ｔ１において、スイッチ＃１のセカンダリポートから、スイッチ＃２に対して、リングＩＤ１０のヘルスチェックフレームＨＣＦ１が送信される様子について説明する。
【００７７】
まず、マスタノードであるスイッチ＃１のリング管理部１００は、リングＩＤ１０のヘルスチェックフレームＨＣＦ１を生成する。生成されたヘルスチェックフレームＨＣＦ１は、フレーム中継部３００によって中継され、フレーム識別部３１０へ送信される。ヘルスチェックフレームＨＣＦ１を受信したフレーム識別部３１０は、フレーム受信処理（図１０）を実行する。フレーム受信処理のフレーム種別判定において、ヘルスチェックフレームであると判定されるため（図１０、ステップＳ１０２：ヘルスチェックフレーム）、フレーム識別部３１０は、受信フレームをスイッチ＃１のヘルスチェック送信制御部４３０へ送信する（ステップＳ１０４）。
【００７８】
ヘルスチェックフレームＨＣＦ１を受信したヘルスチェック送信制御部４３０は、ヘルスチェックフレーム送信処理（図１２）を行う。ヘルスチェック送信制御部４３０は、受信フレームのヘッダに格納された「リングＩＤ１０、ＬＡＩＤ１」という情報を用いて、送信フラグ判定（図１２、ステップＳ３０６）を行う。時刻ｔ１におけるスイッチ＃１のヘルスチェック送受信管理テーブル４２０のエントリＥ１１〜Ｅ１４によれば、リングＩＤ１０、ＬＡＩＤ１の送信フラグの値は全てｏｆｆであるため（ステップＳ３０６：ＡＬＬ  ｏｆｆ）、ヘルスチェック送信制御部４３０は、優先ポート判定（ステップＳ３０８）を行う。ヘルスチェック送受信管理テーブル４２０には、リングＩＤ１０、ＬＡＩＤ１の優先ポート情報の値はｓｅｃｏｎｄａｒｙとされているため（ステップＳ３０８：ｓｅｃｏｎｄａｒｙ）、ヘルスチェック送信制御部４３０は、最若番＋１の物理ポート番号、すなわち、物理ポート番号１０を選択する（ステップＳ３１２）。
【００７９】
ヘルスチェック送信制御部４３０は、選択した物理ポート番号１０についての物理ポート状態判定を行う（ステップＳ３１４）。ヘルスチェック送受信管理テーブル４２０のエントリＥ１２によれば、物理ポート番号１０の物理ポート状態の値はＵｐである（ステップＳ３１４：Ｕｐ）。このため、ヘルスチェック送信制御部４３０は、エントリＥ１２の送信フラグの値を「ｏｆｆからｏｎ」へ更新すると共に、エントリＥ１１〜Ｅ１４の受信フラグの値を全て「ｏｆｆ」へ更新する（ステップＳ３１８）。その後、ヘルスチェック送信制御部４３０は、物理回線制御部５００へ、ヘルスチェックフレームＨＣＦ１を転送する。物理回線制御部５００へ転送されたヘルスチェックフレームＨＣＦ１は、物理ポート番号１０のポートから物理回線ＬＮＡ２を用いて、スイッチ＃２へ送信される。
【００８０】
図１４の時刻ｔ１において、スイッチ＃２のプライマリポートから、スイッチ＃１に対して、リングＩＤ１０のヘルスチェックフレームＨＣＢ１が転送される様子について説明する。
【００８１】
まず、スイッチ＃２が他のトランジットノードから受信したヘルスチェックフレームＨＣＢ１は、物理回線制御部５００ｐによって受信され、フレーム識別部３２０ｐへ転送される。ヘルスチェックフレームＨＣＢ１を受信したフレーム識別部３２０ｐは、フレーム受信処理（図１０）を実行する。フレーム受信処理のフレーム種別判定において、ヘルスチェックフレームであると判定されるため（図１０、ステップＳ１０２：ヘルスチェックフレーム）、フレーム識別部３２０ｐは、受信フレームをヘルスチェック受信制御部４１０ｐへ送信する（ステップＳ１０４）。
【００８２】
ヘルスチェックフレームＨＣＢ１を受信したヘルスチェック受信制御部４１０ｐは、ヘルスチェックフレーム受信処理（図１１）を実行し、受信フレームをフレーム中継部３００ｐへ転送する。その後、ヘルスチェックフレームＨＣＢ１は、フレーム中継部３００ｐによって中継され、フレーム識別部３１０ｐへ送信される。
【００８３】
ヘルスチェックフレームＨＣＢ１を受信したフレーム識別部３１０ｐは、フレーム受信処理（図１０）を実行する。フレーム受信処理のフレーム種別判定において、ヘルスチェックフレームであると判定されるため（図１０、ステップＳ１０２：ヘルスチェックフレーム）、フレーム識別部３１０ｐは、受信フレームをヘルスチェック送信制御部４３０ｐへ送信する（ステップＳ１０４）。
【００８４】
ヘルスチェックフレームＨＣＢ１を受信したヘルスチェック送信制御部４３０ｐは、ヘルスチェックフレーム送信処理（図１２）を行う。ヘルスチェック送信制御部４３０ｐは、受信フレームのヘッダに格納された「リングＩＤ１０、ＬＡＩＤ１」という情報を用いて、送信フラグ判定（図１２、ステップＳ３０６）を行う。時刻ｔ１におけるスイッチ＃２のヘルスチェック送受信管理テーブル４２０ｐのエントリＥ２１〜Ｅ２４によれば、リングＩＤ１０、ＬＡＩＤ１の送信フラグの値は全てｏｆｆであるため（ステップＳ３０６：ＡＬＬ  ｏｆｆ）、ヘルスチェック送信制御部４３０ｐは、優先ポート判定（ステップＳ３０８）を行う。ヘルスチェック送受信管理テーブル４２０ｐには、リングＩＤ１０、ＬＡＩＤ１の優先ポート情報の値はｐｒｉｍａｒｙとされているため（ステップＳ３０８：ｐｒｉｍａｒｙ）、ヘルスチェック送信制御部４３０ｐは、最若番の物理ポート番号、すなわち、物理ポート番号９ｐを選択する（ステップＳ３１０）。
【００８５】
ヘルスチェック送信制御部４３０ｐは、選択した物理ポート番号９ｐについての物理ポート状態判定を行う（ステップＳ３１４）。ヘルスチェック送受信管理テーブル４２０ｐのエントリＥ２１によれば、スイッチ＃２の物理ポート番号９ｐの物理ポートの状態はＵｐである（ステップＳ３１４：Ｕｐ）。このため、ヘルスチェック送信制御部４３０ｐは、エントリＥ２１の送信フラグの値を「ｏｆｆからｏｎ」へ更新すると共に、エントリＥ２１〜Ｅ２４の受信フラグの値を全て「ｏｆｆ」へ更新する（ステップＳ３１８）。その後、ヘルスチェック送信制御部４３０ｐは、物理回線制御部５００ｐへ、ヘルスチェックフレームＨＣＢ１を転送する。物理回線制御部５００ｐへ転送されたヘルスチェックフレームＨＣＢ１は、物理ポート番号９ｐのポートから物理回線ＬＮＡ１を用いて、スイッチ＃１へ送信される。
【００８６】
なお、スイッチ＃１および＃２において実行されるヘルスチェックフレーム受信後の処理についての詳細は後述する。
【００８７】
以上のように、ヘルスチェックフレームの送信を開始した時刻ｔ１では、プライマリポートからのヘルスチェックフレームＨＣＢ１の送信は、最若番（すなわち、最も小さい番号）の物理ポート番号を有するポートを用いて行われる。また、セカンダリポートからのヘルスチェックフレームＨＣＦ１の送信は、最若番＋１（すなわち、２番目に小さい番号）の物理ポート番号を有するポートを用いて行われる。この結果、スイッチ間の初回のヘルスチェックフレームの送受信は、仮想回線を構成する物理回線のうちの異なる物理回線を用いて行うことができる。さらに、スイッチ１０のヘルスチェック送受信管理テーブル４２０の送信フラグには、対向装置へヘルスチェックフレームを送信したポートに「ｏｎ」が格納される。
【００８８】
（Ｂ−６−２）時刻ｔ２（障害発生前２）：
図１５は、ネットワーク１０００において２回目以降のヘルスチェックフレームの送受信が行われる様子を示す説明図である。
【００８９】
図１５の時刻ｔ２において、スイッチ＃１のセカンダリポートから、スイッチ＃２に対して、リングＩＤ１０のヘルスチェックフレームＨＣＦ２が送信される様子について説明する。なお、時刻ｔ２以降の説明では、時刻ｔ１（前の時刻）と同様の処理については説明を省略する。
【００９０】
スイッチ＃１のリング管理部１００により生成されたヘルスチェックフレームＨＣＦ２を受信したヘルスチェック送信制御部４３０は、ヘルスチェックフレーム送信処理（図１２）を行う。ヘルスチェック送信制御部４３０は、受信フレームのヘッダに格納された「リングＩＤ１０、ＬＡＩＤ１」という情報を用いて、送信フラグ判定（図１２、ステップＳ３０６）を行う。時刻ｔ２におけるスイッチ＃１のヘルスチェック送受信管理テーブル４２０のエントリＥ１１〜Ｅ１４によれば、リングＩＤ１０、ＬＡＩＤ１の送信フラグの値にｏｎのあるエントリＥ１２が存在するため（ステップＳ３０６：ｏｎあり）、ヘルスチェック送信制御部４３０は、優先ポート判定（ステップＳ３２２）を行う。ヘルスチェック送受信管理テーブル４２０には、リングＩＤ１０、ＬＡＩＤ１の優先ポート情報の値はｓｅｃｏｎｄａｒｙとされているため（ステップＳ３２２：ｓｅｃｏｎｄａｒｙ）、ヘルスチェック送信制御部４３０は、受信フラグ判定（ステップＳ３２４）を行う。ヘルスチェック送受信管理テーブル４２０のエントリＥ１１〜Ｅ１４によれば、送信フラグの値がｏｎであるエントリＥ１２の受信フラグの値はｏｆｆであるため（ステップＳ３２４：ｏｆｆ）、ヘルスチェック送信制御部４３０は、送信フラグｏｎの物理ポート＋１の物理ポート番号、すなわち、物理ポート番号１１を選択する（ステップＳ３２６）。
【００９１】
その後、ヘルスチェック送信制御部４３０は、選択した物理ポート１１についての物理ポート状態判定を行う（ステップＳ３１４）。ヘルスチェック送受信管理テーブル４２０のエントリＥ１３によれば、スイッチ＃１の物理ポート１１の物理ポート状態の値はＵｐである（ステップＳ３１４：Ｕｐ）。このため、ヘルスチェック送信制御部４３０は、エントリＥ１３の送信フラグの値を「ｏｆｆからｏｎ」へ、エントリＥ１２の送信フラグの値を「ｏｎからｏｆｆ」へ、それぞれ更新すると共に、エントリＥ１１〜Ｅ１４の受信フラグの値を全て「ｏｆｆ」へ更新する（ステップＳ３１８）。その後、ヘルスチェック送信制御部４３０は、物理回線制御部５００へ、ヘルスチェックフレームＨＣＦ２を転送する。物理回線制御部５００へ転送されたヘルスチェックフレームＨＣＦ２は、物理ポート番号１１のポートから物理回線ＬＮＡ３を用いて、スイッチ＃２へ送信される。
【００９２】
図１５の時刻ｔ２において、スイッチ＃２のプライマリポートから、スイッチ＃１に対して、リングＩＤ１０のヘルスチェックフレームＨＣＢ２が転送される様子について説明する。なお、時刻ｔ２以降の説明では、時刻ｔ１（前の時刻）と同様の処理については説明を省略する。
【００９３】
スイッチ＃２が他のトランジットノードから受信したヘルスチェックフレームＨＣＢ２を受信したヘルスチェック送信制御部４３０ｐは、ヘルスチェックフレーム送信処理（図１２）を行う。ヘルスチェック送信制御部４３０ｐは、受信フレームのヘッダに格納された「リングＩＤ１０、ＬＡＩＤ１」という情報を用いて、送信フラグ判定（図１２、ステップＳ３０６）を行う。時刻ｔ２におけるスイッチ＃２のヘルスチェック送受信管理テーブル４２０ｐのエントリＥ２１〜Ｅ２４によれば、リングＩＤ１０、ＬＡＩＤ１の送信フラグの値にｏｎのあるエントリＥ２１が存在するため（ステップＳ３０６：ｏｎあり）、ヘルスチェック送信制御部４３０ｐは、優先ポート判定（ステップＳ３２２）を行う。ヘルスチェック送受信管理テーブル４２０ｐには、リングＩＤ１０、ＬＡＩＤ１の優先ポート情報の値はｐｒｉｍａｒｙとされているため（ステップＳ３２２：ｐｒｉｍａｒｙ）、ヘルスチェック送信制御部４３０ｐは、送信フラグｏｎの物理ポート＋１の物理ポート番号、すなわち、物理ポート番号１０ｐを選択する（ステップＳ３２６）。
【００９４】
その後、ヘルスチェック送信制御部４３０ｐは、選択した物理ポート１０ｐについての物理ポート状態判定を行う（ステップＳ３１４）。ヘルスチェック送受信管理テーブル４２０ｐのエントリＥ２２によれば、スイッチ＃２の物理ポート１０ｐの物理ポート状態の値はＵｐである（ステップＳ３１４：Ｕｐ）。このため、ヘルスチェック送信制御部４３０ｐは、エントリＥ２２の送信フラグの値を「ｏｆｆからｏｎへ」、エントリＥ２１の送信フラグの値を「ｏｎからｏｆｆ」へ、それぞれ更新すると共に、エントリＥ２１〜Ｅ２４の受信フラグの値を全て「ｏｆｆ」へ更新する（ステップＳ３１８）。その後、ヘルスチェック送信制御部４３０ｐは、物理回線制御部５００ｐへ、ヘルスチェックフレームＨＣＢ２を転送する。物理回線制御部５００ｐへ転送されたヘルスチェックフレームＨＣＢ２は、物理ポート番号１０ｐのポートから物理回線ＬＮＡ２を用いて、スイッチ＃１へ送信される。
【００９５】
なお、スイッチ＃１および＃２において実行されるヘルスチェックフレーム受信後の処理についての詳細は後述する。
【００９６】
以上のように、２回目以降のヘルスチェックフレームの送信が行われる時刻ｔ２では、プライマリポートからのヘルスチェックフレームＨＣＢ２の送信と、セカンダリポートからのヘルスチェックフレームＨＣＦ２の送信とは、共に、送信フラグｏｎの物理ポート＋１（すなわち、前回ヘルスチェックフレームの送信が行われたポートの次の番号）の物理ポート番号を有するポートを用いて行われる。この結果、スイッチ間の２回目以降のヘルスチェックフレームの送受信についても、仮想回線を構成する物理回線のうちの異なる物理回線を用いて行うことができる。
【００９７】
（Ｂ−６−３）時刻ｔ３（障害発生時）：
図１６は、ネットワーク１０００において障害が発生した際の様子を示す説明図である。図１６に示すように、ある時刻ｔ３において、仮想回線ＬＮＡを構成する一部の物理回線（ここでは、物理回線ＬＮＡ３とする）に障害が発生した場合の処理の様子について説明する。
【００９８】
まず、スイッチ＃１のヘルスチェックフレーム制御部４００は、物理回線制御部５００からの通知を元に、障害が検出された物理回線ＬＮＡ３に接続されている物理ポート１１を特定し、ポート状態変更判定を行う（ステップＳ４０２、Ｓ４０４）。ヘルスチェックフレーム制御部４００は、物理回線ＬＮＡ３に障害が発生した旨の通知を受けているため（ステップＳ４０４：Ｄｏｗｎ）、ヘルスチェック送受信管理テーブル４２０の該当エントリＥ１３の物理ポート状態の値を「ＵｐからＤｏｗｎ」へ更新する（ステップＳ４０８）。
【００９９】
また、スイッチ＃２のヘルスチェックフレーム制御部４００ｐについても、物理回線制御部５００ｐからの通知を元に、障害が検出された物理回線ＬＮＡ３に接続されている物理ポート１１ｐについて同様の処理を行う。
【０１００】
以上の結果、仮想回線ＬＮＡを構成する一部の物理回線に障害が発生した場合、当該物理回線に接続されているスイッチ１０は、自身のヘルスチェック送受信管理テーブル４２０内の情報（物理ポート状態）を更新することができる。
【０１０１】
（Ｂ−６−４）時刻ｔ４（障害発生後１）：
図１７は、ネットワーク１０００の障害発生後においてヘルスチェックフレームの送受信ポートが同一となる様子を示す説明図である。
【０１０２】
図１７の時刻ｔ４において、スイッチ＃１のセカンダリポートから、スイッチ＃２に対して、リングＩＤ１０のヘルスチェックフレームＨＣＦ３が送信される様子について説明する。
【０１０３】
スイッチ＃１のセカンダリポートからのヘルスチェックフレームＨＣＦ３の送信は、時刻ｔ２（図１５）と同様の手順で行うことができる。従って、ヘルスチェックフレームＨＣＦ３は、送信フラグｏｎの物理ポート＋１、すなわち、前回（時刻ｔ２、図１５）ヘルスチェックフレームの送信が行われたポート１１の次の物理ポート番号を有するポート１２から、物理回線ＬＮＡ４を用いて送信される。
【０１０４】
図１７の時刻ｔ４において、スイッチ＃２のプライマリポートから、スイッチ＃１に対して、リングＩＤ１０のヘルスチェックフレームＨＣＢ３が転送される様子について説明する。
【０１０５】
スイッチ＃２のプライマリポートからのヘルスチェックフレームＨＣＢ３の送信は、時刻ｔ２（図１５）と同様の手順で行うことはできない。これは、送信フラグｏｎの物理ポート＋１、すなわち、前回（時刻ｔ２、図１５）ヘルスチェックフレームの送信が行われたポート１０ｐの次の物理ポート番号を有するポート１１ｐは、通信不可能な状態であることに起因する。
【０１０６】
ヘルスチェックフレーム送信処理（図１２）において、ヘルスチェック送信制御部４３０ｐは、ステップＳ３０２〜Ｓ３０６、Ｓ３２２、Ｓ３２６の処理を経て、一旦、送信フラグｏｎの物理ポート＋１の物理ポート番号、すなわち、物理ポート番号１１ｐを選択する（ステップＳ３２６）。その後、ヘルスチェック送信制御部４３０ｐは、選択した物理ポート１１ｐについての物理ポート状態判定を行う（ステップＳ３１４）。ヘルスチェック送受信管理テーブル４２０ｐのエントリＥ２３によれば、スイッチ＃２の物理ポート１１ｐの物理ポート状態の値はＤｏｗｎである（ステップＳ３１４：Ｄｏｗｎ）。このため、ヘルスチェック送信制御部４３０ｐは、選択ポート＋１の物理ポート番号、すなわち、選択中の物理ポート番号１１ｐの次の物理ポート番号１２ｐを再選択する（ステップＳ３１６）。そして、ヘルスチェック送信制御部４３０ｐは、ステップＳ３１４、Ｓ３１８、Ｓ３２０の処理を継続する。この結果、ヘルスチェックフレームＨＣＢ３は、ステップＳ３１６によって再選択された物理ポート番号を有するポート１２ｐから、物理回線ＬＮＡ４を用いて送信される。
【０１０７】
以上のように、ネットワーク１０００の障害発生後においては、プライマリポートからのヘルスチェックフレームＨＣＢ３と、セカンダリポートからのヘルスチェックフレームＨＣＦ３とが、仮想回線を構成する物理回線のうちの同一の物理回線を用いて行われる場合が生じる。これは、１つのスイッチに着眼すれば、ヘルスチェックフレームの送受信ポートが同一となる状態が発生していることとなる。
【０１０８】
さらに、スイッチ＃１および＃２において実行されるヘルスチェックフレーム受信後の処理について説明する。
【０１０９】
スイッチ＃１は、スイッチ＃２から送信されたヘルスチェックフレームＨＣＢ３を物理回線制御部５００により受信する。ヘルスチェックフレームＨＣＢ３を受信した物理回線制御部５００は、受信フレームをフレーム識別部３２０へ転送する。ヘルスチェックフレームＨＣＢ３を受信したフレーム識別部３２０は、フレーム受信処理（図１０）を実行する。フレーム受信処理のフレーム種別判定において、ヘルスチェックフレームであると判定されるため（図１０、ステップＳ１０２：ヘルスチェックフレーム）、フレーム識別部３２０は、受信フレームをヘルスチェック受信制御部４１０へ送信する（ステップＳ１０４）。
【０１１０】
ヘルスチェックフレームＨＣＢ３を受信したヘルスチェック受信制御部４１０は、ヘルスチェックフレーム受信処理（図１１）を実行する。具体的には、ヘルスチェック受信制御部４１０は、受信フレームのヘッダ情報をもとにして、ヘルスチェックフレームＨＣＢ３の受信ポート（物理ポート番号１２）を特定する（ステップＳ２０２）。そして、ヘルスチェック受信制御部４１０は、受信ポートの送信フラグ判定を行う（ステップＳ２０４）。スイッチ＃１の時刻ｔ４におけるヘルスチェック送受信管理テーブル４２０によれば、受信ポートである物理ポート番号１２のエントリＥ１４の送信フラグの値はｏｎである（ステップＳ２０４：ｏｎ）。このため、ヘルスチェック受信制御部４１０は、当該エントリＥ１４の受信フラグの値を「ｏｆｆからｏｎ」へと更新し（ステップＳ２０６）、受信フレームをフレーム中継部３００へ転送する（ステップＳ２０８）。
【０１１１】
また、スイッチ＃１から送信されたヘルスチェックフレームＨＣＦ３を受信したスイッチ＃２についても、スイッチ＃１と同様に、フレーム受信処理（図１０）と、ヘルスチェックフレーム受信処理（図１１）とが行われる。
【０１１２】
この結果、スイッチ１０のヘルスチェック送受信管理テーブル４２０の受信フラグには、それぞれ、対向装置からヘルスチェックフレームを受信したポートに「ｏｎ」が格納される。
【０１１３】
（Ｂ−６−５）時刻ｔ５（障害発生後２）：
図１８は、ネットワーク１０００の障害発生後においてヘルスチェックフレームの送受信ポートが同一となる状態を回避する様子を示す説明図である。
【０１１４】
図１８の時刻ｔ５において、スイッチ＃１のセカンダリポートから、スイッチ＃２に対して、リングＩＤ１０のヘルスチェックフレームＨＣＦ４が送信される様子について説明する。
【０１１５】
スイッチ＃１のセカンダリポートからのヘルスチェックフレームＨＣＦ４の送信は、時刻ｔ２（図１５）とは異なる手順で行う。これは、時刻ｔ４で発生した、ヘルスチェックフレームの送受信ポートが同一となる状態を回避するためである。具体的には、ヘルスチェックフレーム送信処理（図１２）において、ヘルスチェック送信制御部４３０は、ステップＳ３０２〜Ｓ３０６、Ｓ３２２の処理を経て、受信フラグ判定（ステップＳ３２４）を行う。スイッチ＃１の時刻ｔ５におけるヘルスチェック送受信管理テーブル４２０のエントリＥ１１〜Ｅ１４によれば、送信フラグの値がｏｎであるエントリＥ１４の受信フラグの値はｏｎであるため（ステップＳ３２４：ｏｎ）、ヘルスチェック送信制御部４３０は、送信フラグｏｎの物理ポート番号、すなわち、物理ポート番号１２を選択する（ステップＳ３２８）。
【０１１６】
その後、ヘルスチェック送信制御部４３０は、ステップＳ３１４、Ｓ３１８、Ｓ３２０の処理を継続する。この結果、ヘルスチェックフレームＨＣＦ４は、ステップＳ３２８によって選択された物理ポート番号を有するポート１２から、物理回線ＬＮＡ４を用いて送信される。
【０１１７】
図１８の時刻ｔ５において、スイッチ＃２のプライマリポートから、スイッチ＃１に対して、リングＩＤ１０のヘルスチェックフレームＨＣＢ４が転送される様子について説明する。
【０１１８】
スイッチ＃２のプライマリポートからのヘルスチェックフレームＨＣＢ４の送信は、時刻ｔ２（図１５）と同様の手順で行うことができる。具体的には、ヘルスチェックフレームＨＣＢ４は、送信フラグｏｎの物理ポート＋１、すなわち、前回（時刻ｔ４、図１７）ヘルスチェックフレームの送信が行われたポート１２ｐの次の物理ポート番号を有するポートを用いて送信される。ここでは、ポート１２ｐは、ヘルスチェック送受信管理テーブル４２０ｐのエントリＥ２１〜Ｅ２４の中の最老番であるため、最若番であるポート９ｐを用いてヘルスチェックフレームが送信されることとなる。
【０１１９】
以上のように、ヘルスチェックフレーム送信処理（図１２）において、スイッチ１０のヘルスチェック送信制御部４３０は、プライマリポート（第１の方向）に接続されたポートからのヘルスチェックフレームの送信の場合（ステップＳ３２２：ｐｒｉｍａｒｙ）、ヘルスチェックフレームの送受信ポートが同一となる状態が発生しているか否かに関わらず、送信フラグｏｎの物理ポート＋１の番号を有するポート（すなわち、前回ヘルスチェックフレームを送信したポートとは異なるポート）を選択して、ヘルスチェックフレームの送信を行う。第１実施例においては、これを「第１の規則」とも呼ぶ。また、ヘルスチェックフレーム送信処理（図１２）において、スイッチ１０のヘルスチェック送信制御部４３０は、セカンダリポート（第２の方向）に接続されたポートからのヘルスチェックフレームの送信の場合（ステップＳ３２２：ｓｅｃｏｎｄａｒｙ）であって、ヘルスチェックフレームの送受信ポートが同一となる状態が発生している場合（ステップＳ３２４：ｏｎ）は、送信フラグｏｎの物理ポート番号を有するポート（すなわち、前回ヘルスチェックフレームを送信したポートと同じポート）を選択して、ヘルスチェックフレームの送信を行う。第１実施例においては、これを「第２の規則」とも呼ぶ。
【０１２０】
以上のように、第１実施例では、ヘルスチェックフレーム制御部４００のヘルスチェック送信制御部４３０（状態確認フレーム制御部）は、スイッチ１０（ネットワーク中継装置）が仮想回線を介して接続されたネットワークの状態を確認するためのヘルスチェックフレーム（状態確認フレーム）を送信したポートと、他のスイッチ１０からヘルスチェックフレームを受信したポートが同一となる状態が連続しないように、ヘルスチェックフレームを送信するポートを変える。具体的には、ヘルスチェックフレーム制御部４００のヘルスチェック送信制御部４３０は、プライマリポート（第１の方向に接続されたポート）から、前回、ヘルスチェックフレームを送信したポートとは異なるポートを選択して次のヘルスチェックフレームを送信し、セカンダリポート（第２の方向に接続されたポート）から、前回、ヘルスチェックフレームを送信したポートと同じポートを選択して次のヘルスチェックフレームを送信するため、ヘルスチェックフレームの送受信ポートが同一となる状態が連続しないように、ヘルスチェックフレームを送信するポートを変えることができる。
【０１２１】
従って、上記第１実施例では、ヘルスチェックフレームの送受信ポートが同一となる状態が連続し、かつ、当該送受信ポートに接続された物理回線に障害が発生した結果、ヘルスチェックフレームが破棄される現象の発生を抑制することができる。この結果、仮想回線を用いて物理回線を冗長化しつつ、ネットワークの状態を確認するための制御フレーム（ヘルスチェックフレーム）を交換するネットワーク中継装置（スイッチ１０）において、仮想回線の障害の誤検出を低減することができる。
【０１２２】
さらに、上記第１実施例では、ヘルスチェックフレーム制御部４００のヘルスチェック送信制御部４３０（状態確認フレーム制御部）は、第１の規則に従ってポートを選択する際と、第２の規則に従ってポートを選択する際に、ヘルスチェック送受信管理テーブル４２０（履歴記憶部）に記憶された送受信ポートの履歴、すなわち、送信フラグ（送信ポートの履歴）と、受信フラグ（受信ポートの履歴）を参照することができる。
【０１２３】
Ｃ．第２実施例：
本発明の第２実施例では、ヘルスチェックフレーム送信処理において、ヘルスチェックフレームの送受信ポートが同一となる状態を回避するための規則（第１の規則、第２の規則）が異なる構成について説明する。なお、図中において第１実施例と同様の構成部分については先に説明した第１実施例と同様の符号を付し、その詳細な説明を省略する。
【０１２４】
（Ｃ−１）システム構成：
図１９は、第２実施例としてのスイッチ１０ａの概略構成を示す説明図である。図６に示した第１実施例との違いは、ヘルスチェック送信制御部４３０に代えて、ヘルスチェック送信制御部４３０ａを備える点のみであり、他の構成や動作は第１実施例と同様である。ヘルスチェック送信制御部４３０ａは、フレームを受信した際に実行するヘルスチェックフレーム送信処理の内容が、図１２に示した第１実施例と異なる。
【０１２５】
（Ｃ−２）フレーム受信処理：
フレーム受信処理の手順は、図１０に示した第１実施例と同様である。
【０１２６】
（Ｃ−３）ヘルスチェックフレーム受信処理：
ヘルスチェックフレーム受信処理の手順は、図１１に示した第１実施例と同様である。
【０１２７】
（Ｃ−４）ヘルスチェックフレーム送信処理：
図２０は、第２実施例におけるヘルスチェックフレーム送信処理の手順を示すフローチャートである。図１２に示した第１実施例との違いは、ステップＳ３１２に代えてステップＳ５０２を備える点と、ステップＳ３１４とＳ３１６の間にステップＳ５０４とＳ５０６を備える点と、ステップＳ３２４とＳ３２８に代えてステップＳ５０８を備える点のみであり、他の動作は第１実施例と同様である。
【０１２８】
ステップＳ３０８の優先ポート判定において、優先ポート情報の値が「ｓｅｃｏｎｄａｒｙ」である場合（ステップＳ３０８：ｓｅｃｏｎｄａｒｙ）、ヘルスチェック送信制御部４３０ａは、ＬＡＩＤから特定されたエントリ（ステップＳ３０６の検索結果）の中から、最老番の物理ポート番号（すなわち、物理ポート番号を昇順にソートした場合に最も大きい番号）を選択し、処理をステップＳ３１４へ遷移させる（ステップＳ５０２）。
【０１２９】
ステップＳ３１４の物理ポート状態判定において、物理ポートの状態の値が、通信不可能であることを示す「Ｄｏｗｎ」である場合（ステップＳ３１４：Ｄｏｗｎ）、ヘルスチェック送信制御部４３０ａは、優先ポート判定を行う（ステップＳ５０４）。具体的には、ヘルスチェック送信制御部４３０ａは、選択された物理ポート番号をキーとしてヘルスチェック送受信管理テーブル４２０を検索し、一致するエントリの優先ポート情報の値を参照する。優先ポート情報の値が「ｐｒｉｍａｒｙ」である場合（ステップＳ５０４：ｐｒｉｍａｒｙ）、ヘルスチェック送信制御部４３０ａは、処理をステップＳ３１６へ遷移させ、選択ポート＋１の物理ポート番号を再選択する。詳細は図１２で説明した通りである。一方、優先ポート情報の値が「ｓｅｃｏｎｄａｒｙ」である場合（ステップＳ５０４：ｓｅｃｏｎｄａｒｙ）、ヘルスチェック送信制御部４３０ａは、選択ポート−１の物理ポート番号を再選択する（ステップＳ５０６）。具体的には、ヘルスチェック送信制御部４３０ａは、ＬＡＩＤから特定されたエントリ（ステップＳ３０６の検索結果）を物理ポート番号で昇順にソートし、選択中の物理ポート番号の１つ前の番号となる物理ポート番号を再選択し、処理をステップＳ３１４へ遷移させる。
【０１３０】
ステップＳ３２２の優先ポート判定において、優先ポート情報の値が「ｓｅｃｏｎｄａｒｙ」である場合（ステップＳ３２２：ｓｅｃｏｎｄａｒｙ）、ヘルスチェック送信制御部４３０ａは、送信フラグｏｎの物理ポート−１の物理ポート番号を選択する（ステップＳ５０８）。具体的には、ヘルスチェック送信制御部４３０ａは、ＬＡＩＤから特定されたエントリ（ステップＳ３０６の検索結果）を物理ポート番号で昇順にソートし、送信フラグの値が「ｏｎ」であるエントリの物理ポート番号の１つ前の番号となる物理ポート番号を選択する。その後、ヘルスチェック送信制御部４３０ａは、選択した物理ポートによるフレーム送信のために、処理をステップＳ３１４へ遷移させる。
【０１３１】
（Ｃ−５）物理ポート状態変更処理：
物理ポート状態変更処理の手順は、図１３に示した第１実施例と同様である。
【０１３２】
（Ｃ−６）動作：
第２実施例におけるスイッチ１０ａが用いられた第２実施例のネットワーク１０００において、ヘルスチェックフレームの送受信が行われる様子を説明する。なお、説明に用いる図の構成等は、原則的に第１実施例と同様であり、以下では、第１実施例と異なる部分について説明する。
【０１３３】
（Ｃ−６−１）時刻ｔ１（障害発生前１）：
図２１は、第２実施例のネットワーク１０００においてヘルスチェックフレームの送受信が開始される様子を示す説明図である。
【０１３４】
図２１の時刻ｔ１において、スイッチ＃１のセカンダリポートから、スイッチ＃２に対して、リングＩＤ１０のヘルスチェックフレームＨＣＦ１が送信される様子について説明する。
【０１３５】
スイッチ＃１のリング管理部１００により生成されたヘルスチェックフレームＨＣＦ１を受信したヘルスチェック送信制御部４３０ａは、ヘルスチェックフレーム送信処理（図２０）を行う。ヘルスチェック送信制御部４３０ａは、ステップＳ３０２〜Ｓ３０６の処理を経て、優先ポート判定を行う（ステップＳ３０８）。ヘルスチェック送受信管理テーブル４２０には、リングＩＤ１０、ＬＡＩＤ１の優先ポート情報の値はｓｅｃｏｎｄａｒｙとされているため（ステップＳ３０８：ｓｅｃｏｎｄａｒｙ）、ヘルスチェック送信制御部４３０ａは、最老番の物理ポート番号、すなわち、物理ポート番号１２を選択する（ステップＳ５０２）。ヘルスチェック送受信管理テーブル４２０のエントリＥ１４より、選択した物理ポート１２の物理ポート状態は「Ｕｐ」であるため（ステップＳ３１４：Ｕｐ）、ヘルスチェック送信制御部４３０ａは、ステップＳ３１８、Ｓ３２０の処理を継続する。従って、ヘルスチェックフレームＨＣＦ１は、物理ポート番号１２のポートから物理回線ＬＮＡ４を用いて、スイッチ＃２へ送信される。
【０１３６】
図２１の時刻ｔ１において、スイッチ＃２のプライマリポートから、スイッチ＃１に対して、リングＩＤ１０のヘルスチェックフレームＨＣＢ１が送信される処理の手順は、第１実施例の時刻ｔ１（図１４）と同様である。従って、ヘルスチェックフレームＨＣＢ１は、物理ポート番号９ｐのポートから物理回線ＬＮＡ１を用いて、スイッチ＃１へ送信される。
【０１３７】
（Ｃ−６−２）時刻ｔ２（障害発生前２）：
図２２は、第２実施例のネットワーク１０００において２回目のヘルスチェックフレームの送受信が行われる様子を示す説明図である。
【０１３８】
図２２の時刻ｔ２において、スイッチ＃１のセカンダリポートから、スイッチ＃２に対して、リングＩＤ１０のヘルスチェックフレームＨＣＦ２が送信される様子について説明する。
【０１３９】
スイッチ＃１のリング管理部１００により生成されたヘルスチェックフレームＨＣＦ２を受信したヘルスチェック送信制御部４３０ａは、ヘルスチェックフレーム送信処理（図２０）を行う。ヘルスチェック送信制御部４３０ａは、ステップＳ３０２〜３０６の処理を経て、優先ポート判定を行う（ステップＳ３２２）。ヘルスチェック送受信管理テーブル４２０には、リングＩＤ１０、ＬＡＩＤ１の優先ポート情報の値はｓｅｃｏｎｄａｒｙとされているため（ステップＳ３２２：ｓｅｃｏｎｄａｒｙ）、ヘルスチェック送信制御部４３０ａは、送信フラグｏｎの物理ポート−１の物理ポート番号、すなわち、物理ポート番号１１を選択する（ステップＳ５０８）。ヘルスチェック送受信管理テーブル４２０のエントリＥ１３より、選択した物理ポート１１の物理ポート状態は「Ｕｐ」であるため（ステップＳ３１４：Ｕｐ）、ヘルスチェック送信制御部４３０ａは、ステップＳ３１８、Ｓ３２０の処理を継続する。従って、ヘルスチェックフレームＨＣＦ２は、物理ポート番号１１のポートから物理回線ＬＮＡ３を用いて、スイッチ＃２へ送信される。
【０１４０】
図２２の時刻ｔ２において、スイッチ＃２のプライマリポートから、スイッチ＃１に対して、リングＩＤ１０のヘルスチェックフレームＨＣＢ２が送信される処理の手順は、第１実施例の時刻ｔ２（図１５）と同様である。従って、ヘルスチェックフレームＨＣＢ２は、物理ポート番号１０ｐのポートから物理回線ＬＮＡ２を用いて、スイッチ＃１へ送信される。
【０１４１】
（Ｃ−６−３）時刻ｔ３（障害発生前３）：
図２３は、第２実施例のネットワーク１０００において３回目のヘルスチェックフレームの送受信が行われる様子を示す説明図である。
【０１４２】
図２３の時刻ｔ３において、スイッチ＃１のセカンダリポートから、スイッチ＃２に対して、リングＩＤ１０のヘルスチェックフレームＨＣＦ３が送信される処理の手順は、第２実施例の時刻ｔ２（図２２）と同様である。従って、ヘルスチェックフレームＨＣＦ３は、物理ポート番号１０のポートから物理回線ＬＮＡ２を用いて、スイッチ＃２へ送信される。
【０１４３】
図２３の時刻ｔ３において、スイッチ＃２のプライマリポートから、スイッチ＃１に対して、リングＩＤ１０のヘルスチェックフレームＨＣＢ３が送信される処理の手順は、第２実施例の時刻ｔ２（図２２）と同様である。従って、ヘルスチェックフレームＨＣＢ３は、物理ポート番号１１ｐのポートから物理回線ＬＮＡ３を用いて、スイッチ＃１へ送信される。
【０１４４】
（Ｃ−６−４）時刻ｔ４（障害発生時）：
図２４は、第２実施例のネットワーク１０００において障害が発生した際の様子を示す説明図である。図２４に示すように、ある時刻ｔ４において、仮想回線ＬＮＡを構成する一部の物理回線（ここでは、物理回線ＬＮＡ１とする）に障害が発生した場合の処理の手順は、第１実施例の時刻ｔ３（図１６）と同様である。従って、スイッチ＃１のヘルスチェック送受信管理テーブル４２０のうち、障害が発生した物理ポートに該当するエントリＥ１１の、物理ポート状態の値は「ＵｐからＤｏｗｎ」へ更新される（図１３、ステップＳ４０８）。同様に、スイッチ＃２のヘルスチェック送受信管理テーブル４２０ｐのうち、障害が発生した物理ポートに該当するエントリＥ２１の物理ポート状態の値は「ＵｐからＤｏｗｎ」へ更新される（図１３、ステップＳ４０８）。
【０１４５】
（Ｃ−６−５）時刻ｔ５（障害発生後１）：
図２５は、第２実施例のネットワーク１０００の障害発生後においてヘルスチェックフレームの送受信ポートが同一となる様子を示す説明図である。
【０１４６】
図２５の時刻ｔ５において、スイッチ＃１のセカンダリポートから、スイッチ＃２に対して、リングＩＤ１０のヘルスチェックフレームＨＣＦ４が送信される様子について説明する。
【０１４７】
スイッチ＃１のセカンダリポートからのヘルスチェックフレームＨＣＦ４の送信は、時刻ｔ２（図２２）と同様の手順で行うことはできない。これは、送信フラグｏｎの物理ポート−１、すなわち、前回（時刻ｔ３、図２３）ヘルスチェックフレームの送信が行われたポート１０の前の物理ポート番号を有するポート９は、通信不可能な状態であることに起因する。
【０１４８】
ヘルスチェックフレーム送信処理（図２０）において、ヘルスチェック送信制御部４３０ａは、ステップＳ３０２〜Ｓ３０６、Ｓ３２２、Ｓ５０８の処理を経て、一旦、送信フラグｏｎの物理ポート−１の物理ポート番号、すなわち、物理ポート番号９を選択する（ステップＳ５０８）。その後、ヘルスチェック送信制御部４３０ａは、選択した物理ポート番号９についての物理ポート状態判定を行う（ステップＳ３１４）。ヘルスチェック送受信管理テーブル４２０のエントリＥ１１によれば、スイッチ＃１の物理ポート番号９の物理ポート状態の値はＤｏｗｎである（ステップＳ３１４：Ｄｏｗｎ）。
【０１４９】
このため、ヘルスチェック送信制御部４３０ａは、選択した物理ポート番号９についての優先ポート判定を行う（ステップＳ５０４）。ヘルスチェック送受信管理テーブル４２０のエントリＥ１１によれば、スイッチ＃１の物理ポート番号９の優先ポート情報の値はｓｅｃｏｎｄａｒｙである（ステップＳ５０４：ｓｅｃｏｎｄａｒｙ）。従って、ヘルスチェック送信制御部４３０ａは、選択ポート−１の物理ポート番号、すなわち、選択中の物理ポート番号９の１つ前の物理ポート番号１２を再選択する（ステップＳ５０６）。そして、ヘルスチェック送信制御部４３０ａは、ステップＳ３１４、Ｓ３１８、Ｓ３２０の処理を継続する。この結果、ヘルスチェックフレームＨＣＦ４は、ステップＳ５０６によって再選択された物理ポート番号を有するポート１２から物理回線ＬＮＡ４を用いて送信される。
【０１５０】
図２５の時刻ｔ５において、スイッチ＃２のプライマリポートから、スイッチ＃１に対して、リングＩＤ１０のヘルスチェックフレームＨＣＢ４が送信される処理の手順は、第２実施例の時刻ｔ２（図２２）と同様である。従って、ヘルスチェックフレームＨＣＢ４は、物理ポート番号１２ｐのポートから物理回線ＬＮＡ４を用いて、スイッチ＃１へ送信される。
【０１５１】
以上のように、第２実施例においても、ネットワーク１０００の障害発生後に、プライマリポートからのヘルスチェックフレームＨＣＢ４と、セカンダリポートからのヘルスチェックフレームＨＣＦ４とが、仮想回線を構成する物理回線のうちの同一の物理回線を用いて行われる場合が生じる。これは、１つのスイッチに着眼すれば、ヘルスチェックフレームの送受信ポートが同一となる状態が発生していることとなる。
【０１５２】
また、スイッチ＃１および＃２において実行される、ヘルスチェックフレーム受信後の処理の手順は、第１実施例の時刻ｔ４（図１７）と同様である。従って、スイッチ１０のヘルスチェック送受信管理テーブル４２０の受信フラグには、それぞれ、対向装置からヘルスチェックフレームを受信したポートに「ｏｎ」が格納される。（図１１、ステップＳ２０６）。
【０１５３】
（Ｃ−６−６）時刻ｔ６（障害発生後２）：
図２６は、第２実施例のネットワーク１０００の障害発生後においてヘルスチェックフレームの送受信ポートが同一となる状態を回避する様子を示す説明図である。
【０１５４】
図２６の時刻ｔ６において、スイッチ＃１のセカンダリポートから、スイッチ＃２に対して、リングＩＤ１０のヘルスチェックフレームＨＣＦ５が送信される処理の手順は、第２実施例の時刻ｔ２（図２２）と同様である。従って、ヘルスチェックフレームＨＣＦ５は、物理ポート番号１１のポートから物理回線ＬＮＡ３を用いて、スイッチ＃２へ送信される。
【０１５５】
図２６の時刻ｔ６において、スイッチ＃２のプライマリポートから、スイッチ＃１に対して、リングＩＤ１０のヘルスチェックフレームＨＣＢ５が転送される様子について説明する。
【０１５６】
スイッチ＃２のプライマリポートからのヘルスチェックフレームＨＣＢ５の送信は、第２実施例の時刻ｔ２（図２２）と同様の手順で行うことはできない。これは、送信フラグｏｎの物理ポート＋１、すなわち、前回（時刻ｔ５、図２５）ヘルスチェックフレームの送信が行われたポート１２ｐの次の物理ポート番号を有するポート９ｐは、通信不可能な状態であることに起因する。
【０１５７】
ヘルスチェックフレーム送信処理（図２０）において、ヘルスチェック送信制御部４３０ａｐは、ステップＳ３０２〜Ｓ３０６、Ｓ３２２、Ｓ３２６の処理を経て、一旦、送信フラグｏｎの物理ポート＋１の物理ポート番号、すなわち、物理ポート番号９ｐを選択する（ステップＳ３２６）。その後、ヘルスチェック送信制御部４３０ａｐは、選択した物理ポート番号９ｐについての物理ポート状態判定を行う（ステップＳ３１４）。ヘルスチェック送受信管理テーブル４２０ｐのエントリＥ２１によれば、スイッチ＃２の物理ポート９ｐの物理ポート状態の値はＤｏｗｎである（ステップＳ３１４：Ｄｏｗｎ）。
【０１５８】
また、優先ポート情報の値は「ｐｒｉｍａｒｙ」である（ステップＳ５０４：ｐｒｉｍａｒｙ）。このため、ヘルスチェック送信制御部４３０ａｐは、選択ポート＋１の物理ポート番号、すなわち、選択中の物理ポート番号９ｐの次の物理ポート番号１０ｐを再選択する（ステップＳ３１６）。そして、ヘルスチェック送信制御部４３０ａｐは、ステップＳ３１４、Ｓ３１８、Ｓ３２０の処理を継続する。この結果、ヘルスチェックフレームＨＣＢ５は、ステップＳ３１６によって再選択された物理ポート番号を有するポート１０ｐから、物理回線ＬＮＡ２を用いて送信される。
【０１５９】
以上のように、ヘルスチェックフレーム送信処理（図２０）において、スイッチ１０ａのヘルスチェック送信制御部４３０ａは、プライマリポート（第１の方向）に接続されたポートからのヘルスチェックフレーム送信の場合（ステップＳ３２２：ｐｒｉｍａｒｙ）、ヘルスチェックフレームの送受信ポートが同一となる状態が発生しているか否かに関わらず、送信フラグｏｎの物理ポート＋１の番号を有するポート（すなわち、前回ヘルスチェックフレームを送信したポートの次に大きい番号が割り当てられたポート）を選択して、ヘルスチェックフレームの送信を行う。同様に、選択された物理ポートが通信不可能なＤｏｗｎ状態であった場合（ステップＳ３１４：Ｄｏｗｎ）、選択ポート＋１の番号を有するポート（すなわち、選択された物理ポートの次に大きい番号が割り当てられたポート）を再度選択する。第２実施例においては、これらを「第１の規則」とも呼ぶ。また、ヘルスチェックフレーム送信処理（図２０）において、スイッチ１０ａのヘルスチェック送信制御部４３０ａは、セカンダリポート（第２の方向）に接続されたポートからのヘルスチェックフレームの送信の場合（ステップＳ３２２：ｓｅｃｏｎｄａｒｙ）、ヘルスチェックフレームの送受信ポートが同一となる状態が発生しているか否かに関わらず、送信フラグｏｎの物理ポート-１の番号を有するポート（すなわち、前回ヘルスチェックフレームを送信したポートの次に小さい番号が割り当てられたポート）を選択して、ヘルスチェックフレームの送信を行う。同様に、選択された物理ポートが通信不可能なＤｏｗｎ状態であった場合（ステップＳ３１４：Ｄｏｗｎ）、選択ポート-１の番号を有するポート（すなわち、選択された物理ポートの次に小さい番号が割り当てられたポート）を再度選択する。第２実施例においては、これを「第２の規則」とも呼ぶ。
【０１６０】
以上のように、第２実施例では、ヘルスチェックフレーム制御部４００のヘルスチェック送信制御部４３０ａ（状態確認フレーム制御部）は、プライマリポート（第１の方向に接続されたポート）から、前回、ヘルスチェックフレーム（状態確認フレーム）を送信したポートの次に大きいポート番号が割り当てられたポートを選択して次のヘルスチェックフレームを送信し、セカンダリポート（第２の方向に接続されたポート）から、前回、ヘルスチェックフレームを送信したポートの次に小さいポート番号が割り当てられたポートを選択して次のヘルスチェックフレームを送信するため、ヘルスチェックフレームの送受信ポートが同一となる状態が連続しないように、ヘルスチェックフレームを送信するポートを変えることができる。
【０１６１】
従って、第２実施例においても、第１実施例と同様、仮想回線を用いて物理回線を冗長化しつつ、ネットワークの状態を確認するための制御フレーム（ヘルスチェックフレーム）を交換するネットワーク中継装置（スイッチ１０ａ）において、仮想回線の障害の誤検出を低減することができる。
【０１６２】
Ｄ．第３実施例：
本発明の第３実施例では、原則として、ヘルスチェックフレームの送受信ポートが同一となる状態が発生しない構成について説明する。なお、図中において第１実施例と同様の構成部分については先に説明した第１実施例と同様の符号を付し、その詳細な説明を省略する。
【０１６３】
（Ｄ−１）システム構成：
図２７は、第３実施例としてのスイッチ１０ｂの概略構成を示す説明図である。図６に示した第１実施例との違いは、ヘルスチェックフレーム制御部４００に代えてヘルスチェックフレーム制御部４００ｂを備える点のみであり、他の構成や動作は第１実施例と同様である。
【０１６４】
ヘルスチェックフレーム制御部４００ｂは、ヘルスチェック送受信管理テーブル４２０に代えてヘルスチェック送受信管理テーブル４２０ｂを、ヘルスチェック送信制御部４３０に代えてヘルスチェック送信制御部４３０ｂを、それぞれ備えている。さらに、ヘルスチェックフレーム制御部４００ｂは、物理ポート状態変更処理の内容が、図１３に示した第１実施例とは異なる。ヘルスチェック送受信管理テーブル４２０ｂは、テーブルに格納されたエントリの内容が、図９に示した第１実施例と異なる。ヘルスチェック送信制御部４３０ｂは、フレームを受信した際に実行するヘルスチェックフレーム送信処理の内容が、図１２に示した第１実施例と異なる。
【０１６５】
図２８は、第２実施例におけるヘルスチェック送受信管理テーブル４２０ｂの一例を示す説明図である。図９に示す第１実施例との違いは、テーブルの優先ポート情報に格納されている値のみであり、他の構成や動作については第１実施例と同様である。ヘルスチェック送受信管理テーブル４２０ｂにおいて、優先ポート情報には、ＬＡＩＤにより識別される仮想回線をプライマリポートとして使用する場合は「ｐｒｉｍａｒｙ」の値が、セカンダリポートとして使用する場合は「ｓｅｃｏｎｄａｒｙ」の値が、さらに、ヘルスチェックフレームの送信ポートとして使用しない場合は「ＮＯＴ」の値が、それぞれ格納されている。
【０１６６】
具体的には、図２８の例では、プライマリポートとして用いる仮想回線については、物理ポート状態が「Ｕｐ」であるポート、すなわち、通信可能な物理回線に接続されているポートの奇数番目に対して「ｐｒｉｍａｒｙ」の値が、偶数番目に対して「ＮＯＴ」の値が、それぞれ格納されている。これとは逆に、セカンダリポートとして用いる仮想回線については、物理ポート状態が「Ｕｐ」であるポート、すなわち、通信可能な物理回線に接続されているポートの偶数番目に対して「ｓｅｃｏｎｄａｒｙ」の値が、奇数番目に対して「ＮＯＴ」の値が、それぞれ格納されている。
【０１６７】
（Ｄ−２）フレーム受信処理：
フレーム受信処理の手順は、図１０に示した第１実施例と同様である。
【０１６８】
（Ｄ−３）ヘルスチェックフレーム受信処理：
ヘルスチェックフレーム受信処理の手順は、図１１に示した第１実施例と同様である。
【０１６９】
（Ｄ−４）ヘルスチェックフレーム送信処理：
図２９は、第３実施例におけるヘルスチェックフレーム送信処理の手順を示すフローチャートである。図１２に示した第１実施例との違いは、ステップＳ３２２、Ｓ３２４、Ｓ３２８を備えない点と、ステップＳ３０８、Ｓ３１０、Ｓ３１２に代えてステップＳ６０２、Ｓ６０４、Ｓ６０６を、ステップＳ３１４に代えてステップＳ６０８を、それぞれ備える点のみであり、他の動作は第１実施例と同様である。
【０１７０】
ステップＳ３０６の送信フラグ判定において、ＬＡＩＤから特定されたエントリ（ステップＳ３０６の検索結果）の中に送信フラグの値が「ｏｎ」であるエントリがない場合（ステップＳ３０６：ＡＬＬ  ｏｆｆ）、ヘルスチェック送信制御部４３０ｂは、優先ポート判定を行う（ステップＳ６０２）。具体的には、ヘルスチェック送信制御部４３０ｂは、ＬＡＩＤから特定されたエントリ（ステップＳ３０６の検索結果）の優先ポート情報の値を参照する。
【０１７１】
優先ポート情報の値が「ｐｒｉｍａｒｙ」であるエントリが含まれている場合（ステップＳ６０２：ｐｒｉｍａｒｙあり）、ヘルスチェック送信制御部４３０ｂは、ＬＡＩＤから特定されたエントリ（ステップＳ３０６の検索結果）の中であって、かつ、優先ポート情報の値がｐｒｉｍａｒｙであるエントリの中から、最若番の物理ポート番号（すなわち、物理ポート番号を昇順にソートした場合に最も小さい番号）を選択し、処理をステップＳ６０８へ遷移させる（ステップＳ６０４）。一方、優先ポート情報の値が「ｓｅｃｏｎｄａｒｙ」であるエントリが含まれている場合（ステップＳ６０２：ｓｅｃｏｎｄａｒｙあり）、ヘルスチェック送信制御部４３０ｂは、ＬＡＩＤから特定されたエントリ（ステップＳ３０６の検索結果）の中であって、かつ、優先ポート情報の値がｓｅｃｏｎｄａｒｙであるエントリの中から、最若番の物理ポート番号（すなわち、物理ポート番号を昇順にソートした場合に最も小さい番号）を選択し、処理をステップＳ６０８へ遷移させる（ステップＳ６０６）。
【０１７２】
ステップＳ６０８において、ヘルスチェック送信制御部４３０ｂは、選択された物理ポートについて、優先ポート判定を行う（ステップＳ６０８）。具体的には、ヘルスチェック送信制御部４３０ｂは、選択された物理ポート番号をキーとしてヘルスチェック送受信管理テーブル４２０ｂを検索し、一致するエントリの優先ポート情報の値を参照する。優先ポート情報の値が、ヘルスチェックフレームの送信ポートとして使用しないことを示す「ＮＯＴ」である場合（ステップＳ６０８：ＮＯＴ）、ヘルスチェック送信制御部４３０ｂは、処理をステップＳ３１６へ遷移させ、選択ポート＋１の物理ポート番号を再選択する。詳細は図１２で説明した通りである。一方、優先ポート情報の値が、「ＮＯＴ」以外である場合（ステップＳ６０８：ＮＯＴでない）、ヘルスチェック送信制御部４３０ｂは、処理をステップＳ３１８へ遷移させ、送信フラグと受信フラグを更新する。
【０１７３】
（Ｄ−５）物理ポート状態変更処理：
図３０は、第３実施例における物理ポート状態変更処理の手順を示すフローチャートである。図１３に示した第１実施例との違いは、ステップＳ４０８の後に、ステップＳ７０２〜Ｓ７２４を備える点のみであり、他の動作は第１実施例と同様である。
【０１７４】
ステップＳ７０２においてヘルスチェックフレーム制御部４００ｂは、対象物理ポートが属するＬＡを構成する物理ポートの１つを特定する。この選択は、例えば、物理ポート番号の昇順に行うことができる。具体的には、ヘルスチェックフレーム制御部４００ｂは、ステップＳ４０２において特定した物理ポートが属するＬＡＩＤを特定し、当該ＬＡＩＤに属する物理ポートの１つを選択する。次に、ヘルスチェックフレーム制御部４００ｂは、選択された物理ポートに対して、物理ポート状態判定を行う（ステップＳ７０４）。具体的には、ヘルスチェックフレーム制御部４００ｂは、選択された物理ポート番号をキーとしてヘルスチェック送受信管理テーブル４２０ｂを検索し、一致するエントリの物理ポート状態の値を参照する。物理ポートの状態が、通信不可能であることを示す「Ｄｏｗｎ」である場合（ステップＳ７０４：Ｄｏｗｎ）、ヘルスチェックフレーム制御部４００ｂは、当該エントリの優先ポート情報の値を「ＮＯＴ」へと更新し、処理をステップＳ７１８へ遷移させる（ステップＳ７０６）。
【０１７５】
物理ポートの値が、通信可能であることを示す「Ｕｐ」である場合（ステップＳ７０４：Ｕｐ）、ヘルスチェックフレーム制御部４００ｂは、当該物理ポートはＵｐポートの奇数番目か否かを判定する（ステップＳ７０８）。具体的には、ヘルスチェックフレーム制御部４００ｂは、ステップＳ７０２において選択された物理ポートが、同じＬＡＩＤに属する物理ポートであって、物理ポート状態が「Ｕｐ」であるポート（すなわち、通信可能な物理回線に接続されているポート）のうちの奇数番目であるか否かを判定する。
【０１７６】
選択された物理ポートがＵｐポートの奇数番目である場合（ステップＳ７０８：奇数番目）、ヘルスチェックフレーム制御部４００ｂは、ＬＡ単位での優先ポート判定を行う（ステップＳ７１０）。具体的には、ヘルスチェックフレーム制御部４００ｂは、選択された物理ポートが属するＬＡＩＤの優先ポート情報がｐｒｉｍａｒｙ、ｓｅｃｏｎｄａｒｙのどちらであるかを判定する。優先ポート情報の値が「ｐｒｉｍａｒｙ」である場合（ステップＳ７１０：ｐｒｉｍａｒｙ）、ヘルスチェックフレーム制御部４００ｂは、選択された物理ポートに対して、当該エントリの優先ポート情報の値を「ｐｒｉｍａｒｙ」へと更新し、処理をステップＳ７１８へ遷移させる（ステップＳ７１２）。一方、優先ポート情報の値が「ｓｅｃｏｎｄａｒｙ」である場合（ステップＳ７１０：ｓｅｃｏｎｄａｒｙ）、ヘルスチェックフレーム制御部４００ｂは、処理をステップＳ７０６へ遷移させ、選択された物理ポートに対して、当該エントリの優先ポート情報の値を「ＮＯＴ」へ更新する。
【０１７７】
選択された物理ポートがＵｐポートの偶数番目である場合（ステップＳ７０８：偶数番目）、ヘルスチェックフレーム制御部４００ｂは、ＬＡ単位での優先ポート判定を行う（ステップＳ７１４）。詳細は、ステップＳ７１０と同様である。優先ポート情報の値が「ｐｒｉｍａｒｙ」である場合（ステップＳ７１４：ｐｒｉｍａｒｙ）、ヘルスチェックフレーム制御部４００ｂは、処理をステップＳ７０６へ遷移させ、選択された物理ポートに対して、当該エントリの優先ポート情報の値を「ＮＯＴ」へ更新する。一方、優先ポート情報の値が「ｓｅｃｏｎｄａｒｙ」である場合（ステップＳ７１４：ｓｅｃｏｎｄａｒｙ）、ヘルスチェックフレーム制御部４００ｂは、選択された物理ポートに対して、当該エントリの優先ポート情報の値を「ｓｅｃｏｎｄａｒｙ」へと更新し、処理をステップＳ７１８へ遷移させる（ステップＳ７１６）。
【０１７８】
ステップＳ７１８においてヘルスチェックフレーム制御部４００ｂは、ステップＳ４０２において特定した物理ポートが属するＬＡＩＤに属する全ての物理ポートに対して、ステップＳ７０２〜Ｓ７１６の処理を行ったか否かを判定する。全ての物理ポートに対して処理を行っていない場合（ステップＳ７１８：ＮＯ）、ヘルスチェックフレーム制御部４００ｂは、処理をステップＳ７０２へ遷移させる。
【０１７９】
全ての物理ポートに対して処理を終えた場合（ステップＳ７１８：ＹＥＳ）、ヘルスチェックフレーム制御部４００ｂは、Ｕｐポートは１つだけか否かを判定する（ステップＳ７２０）。具体的には、ヘルスチェックフレーム制御部４００ｂは、ステップＳ４０２において特定した物理ポートが属するＬＡＩＤに属する全ての物理ポートのうち、物理ポート状態が「Ｕｐ」であるポート（すなわち、通信可能な物理回線に接続されているポート）が１つだけか否かを判定する。Ｕｐポートが複数ある場合（ステップＳ７２０：ＮＯ）、ヘルスチェックフレーム制御部４００ｂは処理を終了させる。
【０１８０】
Ｕｐポートが１つだけしかない場合（ステップＳ７２０：ＹＥＳ）、ヘルスチェックフレーム制御部４００ｂは、当該Ｕｐポートの優先ポート判定を行う（ステップＳ７２２）。具体的には、ヘルスチェックフレーム制御部４００ｂは、Ｕｐポートのエントリの優先ポート情報の値を参照する。優先ポート情報の値が「ｐｒｉｍａｒｙ」である場合（ステップＳ７２２：ｐｒｉｍａｒｙ）、ヘルスチェックフレーム制御部４００ｂは処理を終了させる。一方、優先ポート情報の値が「ＮＯＴ」である場合（ステップＳ７２２：ＮＯＴ）、ヘルスチェックフレーム制御部４００ｂは、当該エントリの優先ポート情報の値を「ｓｅｃｏｎｄａｒｙ」へと更新し、処理を終了させる（ステップＳ７２４）。
【０１８１】
（Ｄ−６）動作：
第３実施例におけるスイッチ１０ｂが用いられたネットワーク１０００において、ヘルスチェックフレームの送受信が行われる様子を説明する。なお、説明に用いる図の構成等は、原則的に第１実施例と同様であり、以下では、第１実施例と異なる部分について説明する。
【０１８２】
（Ｄ−６−１）時刻ｔ１（障害発生前１）：
図３１は、第３実施例のネットワーク１０００においてヘルスチェックフレームの送受信が開始される様子を示す説明図である。
【０１８３】
図３１の時刻ｔ１において、スイッチ＃１のセカンダリポートから、スイッチ＃２に対して、リングＩＤ１０のヘルスチェックフレームＨＣＦ１が送信される様子について説明する。
【０１８４】
スイッチ＃１のリング管理部１００により生成されたヘルスチェックフレームＨＣＦ１を受信したヘルスチェック送信制御部４３０ｂは、ヘルスチェックフレーム送信処理（図２９）を行う。ヘルスチェック送信制御部４３０ｂは、ステップＳ３０２〜Ｓ３０６の処理を経て、優先ポート判定を行う（ステップＳ６０２）。ヘルスチェック送受信管理テーブル４２０ｂには、リングＩＤ１０、ＬＡＩＤ１の優先ポート情報の値はｓｅｃｏｎｄａｒｙとされているため（ステップＳ６０２：ｓｅｃｏｎｄａｒｙあり）、ヘルスチェック送信制御部４３０ｂは、ｓｅｃｏｎｄａｒｙポート（優先ポート情報の値がｓｅｃｏｎｄａｒｙであるポート）の最若番の物理ポート番号、すなわち、物理ポート番号１０を選択する（ステップＳ６０６）。その後、ヘルスチェック送信制御部４３０ｂは、優先ポート判定を行う（ステップＳ６０８）。ヘルスチェック送受信管理テーブル４２０ｂのエントリＥ１２より、選択した物理ポート番号１０の優先ポート情報の値はＮＯＴではないため（ステップＳ６０８：ＮＯＴでない）、ヘルスチェック送信制御部４３０ｂは、ステップＳ３１８、Ｓ３２０の処理を継続する。従って、ヘルスチェックフレームＨＣＦ１は、物理ポート番号１０のポートから物理回線ＬＮＡ２を用いて、スイッチ＃２へ送信される。
【０１８５】
図３１の時刻ｔ１において、スイッチ＃２のプライマリポートから、スイッチ＃１に対して、リングＩＤ１０のヘルスチェックフレームＨＣＢ１が送信される様子について説明する。
【０１８６】
スイッチ＃２が他のトランジットノードから受信したヘルスチェックフレームＨＣＢ１を受信したヘルスチェック送信制御部４３０ｂｐは、ヘルスチェックフレーム送信処理（図２９）を行う。ヘルスチェック送信制御部４３０ｂｐは、ステップＳ３０２〜Ｓ３０６の処理を経て、優先ポート判定を行う（ステップＳ６０２）。ヘルスチェック送受信管理テーブル４２０ｂｐには、リングＩＤ１０、ＬＡＩＤ１の優先ポート情報の値はｐｒｉｍａｒｙとされているため（ステップＳ６０２：ｐｒｉｍａｒｙあり）、ヘルスチェック送信制御部４３０ｂｐは、ｐｒｉｍａｒｙポート（優先ポート情報の値がｐｒｉｍａｒｙであるポート）の最若番の物理ポート番号、すなわち、物理ポート番号９ｐを選択する（ステップＳ６０４）。その後、ヘルスチェック送信制御部４３０ｂｐは、優先ポート判定を行う（ステップＳ６０８）。ヘルスチェック送受信管理テーブル４２０ｂｐのエントリＥ２１より、選択した物理ポート番号９ｐの優先ポート情報の値はＮＯＴではないため（ステップＳ６０８：ＮＯＴでない）、ヘルスチェック送信制御部４３０ｂｐは、ステップＳ３１８、Ｓ３２０の処理を継続する。従って、ヘルスチェックフレームＨＣＢ１は、物理ポート番号９ｐのポートから物理回線ＬＮＡ１を用いて、スイッチ＃１へ送信される。
【０１８７】
（Ｄ−６−２）時刻ｔ２（障害発生前２）：
図３２は、第３実施例のネットワーク１０００において２回目のヘルスチェックフレームの送受信が行われる様子を示す説明図である。
【０１８８】
図３２の時刻ｔ２において、スイッチ＃１のセカンダリポートから、スイッチ＃２に対して、リングＩＤ１０のヘルスチェックフレームＨＣＦ２が送信される処理の手順は、第３実施例の時刻ｔ１（図３１）と同様である。従って、ヘルスチェックフレームＨＣＦ２は、優先ポート情報の値がＮＯＴでないｓｅｃｏｎｄａｒｙポート、すなわち、物理ポート番号１２のポートから物理回線ＬＮＡ４を用いて、スイッチ＃２へ送信される。
【０１８９】
図３２の時刻ｔ２において、スイッチ＃２のプライマリポートから、スイッチ＃１に対して、リングＩＤ１０のヘルスチェックフレームＨＣＢ２が送信される処理の手順は、第３実施例の時刻ｔ１（図３１）と同様である。従って、ヘルスチェックフレームＨＣＢ２は、優先ポート情報の値がＮＯＴでないｐｒｉｍａｒｙポート、すなわち、物理ポート番号１１ｐのポートから物理回線ＬＮＡ３を用いて、スイッチ＃１へ送信される。
【０１９０】
（Ｄ−６−３）時刻ｔ３（障害発生時）：
図３３は、第３実施例のネットワーク１０００において障害が発生した際の様子を示す説明図である。図３３に示すように、ある時刻ｔ３において、仮想回線ＬＮＡを構成する一部の物理回線（ここでは、物理回線ＬＮＡ２とする）に障害が発生した場合の処理の様子について説明する。
【０１９１】
まず、スイッチ＃１のヘルスチェックフレーム制御部４００ｂは、物理回線制御部５００からの通知を元に、障害が検出された物理回線ＬＮＡ２に接続されている物理ポート１０を特定し、ポート状態変更判定を行う（図３０、ステップＳ４０２、Ｓ４０４）。ヘルスチェックフレーム制御部４００ｂは、物理回線ＬＮＡ２に障害が発生した旨の通知を受けているため（ステップＳ４０４：Ｄｏｗｎ）、ヘルスチェック送受信管理テーブル４２０ｂの該当エントリＥ１２の物理ポート状態の値を「ＵｐからＤｏｗｎ」へ更新する（ステップＳ４０８）。
【０１９２】
ヘルスチェックフレーム制御部４００ｂは、対象物理ポート１０が属するＬＡ（ＬＡＩＤ１）を構成する物理ポートの１つである物理ポート番号９を選択し、物理ポート状態判定を行う（ステップＳ７０２、Ｓ７０４）。時刻ｔ３におけるスイッチ＃１のヘルスチェック送受信管理テーブル４２０ｂのエントリＥ１１によれば、物理ポート番号９の物理ポート状態の値はＵｐである（ステップＳ７０４：Ｕｐ）。このため、ヘルスチェックフレーム制御部４００ｂは、当該物理ポートはＵｐポート（通信可能な物理回線に接続されているポート）の奇数番目か否かを判定する（ステップＳ７０８）。物理ポート番号９のポートは、Ｕｐポートの１番目、すなわち、奇数番目のポートである（ステップＳ７０８：奇数番目）。ヘルスチェックフレーム制御部４００ｂは、物理ポート番号９のポートが属するＬＡＩＤの優先ポート情報がｐｒｉｍａｒｙ、ｓｅｃｏｎｄａｒｙのどちらであるかを判定する（ステップＳ７１０）。物理ポート番号９のポートが属するＬＡＩＤ１の優先ポート情報はｓｅｃｏｎｄａｒｙであるため（ステップＳ７１０：ｓｅｃｏｎｄａｒｙ）、ヘルスチェックフレーム制御部４００ｂは、物理ポート番号９のエントリＥ１１の優先ポート情報の値を「ＮＯＴからＮＯＴ」へ更新する（ステップＳ７０６）。ヘルスチェックフレーム制御部４００ｂは、ＬＡＩＤ１に属する全ての物理ポートの処理を終えていないため（ステップＳ７１８：ＮＯ）、処理をステップＳ７０２へ遷移させる。
【０１９３】
ヘルスチェックフレーム制御部４００ｂは、対象物理ポート１０が属するＬＡ（ＬＡＩＤ１）を構成する物理ポートの他の１つである物理ポート番号１０を選択し、物理ポート状態判定を行う（ステップＳ７０２、Ｓ７０４）。ヘルスチェック送受信管理テーブル４２０ｂのエントリＥ１２によれば、物理ポート番号１０の物理ポート状態の値はＤｏｗｎである（ステップＳ７０４：Ｄｏｗｎ）。このため、ヘルスチェックフレーム制御部４００ｂは、物理ポート番号１０のエントリＥ１２の優先ポート情報の値を「ｓｅｃｏｎｄａｒｙからＮＯＴ」へ更新する（ステップＳ７０６）。ヘルスチェックフレーム制御部４００ｂは、ＬＡＩＤ１に属する全ての物理ポートの処理を終えていないため（ステップＳ７１８：ＮＯ）、処理をステップＳ７０２へ遷移させる。
【０１９４】
ヘルスチェックフレーム制御部４００ｂは、対象物理ポート１０が属するＬＡ（ＬＡＩＤ１）を構成する物理ポートの他の１つである物理ポート番号１１を選択し、物理ポート状態判定を行う（ステップＳ７０２、Ｓ７０４）。ヘルスチェック送受信管理テーブル４２０ｂのエントリＥ１３によれば、物理ポート番号１１の物理ポート状態の値はＵｐである（ステップＳ７０４：Ｕｐ）。このため、ヘルスチェックフレーム制御部４００ｂは、当該物理ポートはＵｐポートの奇数番目か否かを判定する（ステップＳ７０８）。物理ポート番号１１のポートは、Ｕｐポートの２番目、すなわち、偶数番目のポートである（ステップＳ７０８：偶数番目）。ヘルスチェックフレーム制御部４００ｂは、物理ポート番号１１のポートが属するＬＡＩＤの優先ポート情報がｐｒｉｍａｒｙ、ｓｅｃｏｎｄａｒｙのどちらであるかを判定する（ステップＳ７１４）。物理ポート番号１１のポートが属するＬＡＩＤ１の優先ポート情報はｓｅｃｏｎｄａｒｙであるため（ステップＳ７１４：ｓｅｃｏｎｄａｒｙ）、ヘルスチェックフレーム制御部４００ｂは、物理ポート番号１１のエントリＥ１３の優先ポート情報の値を「ＮＯＴからｓｅｃｏｎｄａｒｙ」へ更新する（ステップＳ７１６）。ヘルスチェックフレーム制御部４００ｂは、ＬＡＩＤ１に属する全ての物理ポートの処理を終えていないため（ステップＳ７１８：ＮＯ）、処理をステップＳ７０２へ遷移させる。
【０１９５】
ヘルスチェックフレーム制御部４００ｂは、対象物理ポート１０が属するＬＡ（ＬＡＩＤ１）を構成する物理ポートの１つである物理ポート番号１２を選択し、物理ポート状態判定を行う（ステップＳ７０２、Ｓ７０４）。ヘルスチェック送受信管理テーブル４２０ｂのエントリＥ１４によれば、物理ポート番号１２の物理ポート状態の値はＵｐである（ステップＳ７０４：Ｕｐ）。このため、ヘルスチェックフレーム制御部４００ｂは、当該物理ポートはＵｐポート（通信可能な物理回線に接続されているポート）の奇数番目か否かを判定する（ステップＳ７０８）。物理ポート番号１２のポートは、Ｕｐポートの３番目、すなわち、奇数番目のポートである（ステップＳ７０８：奇数番目）。ヘルスチェックフレーム制御部４００ｂは、物理ポート番号１２のポートが属するＬＡＩＤの優先ポート情報がｐｒｉｍａｒｙ、ｓｅｃｏｎｄａｒｙのどちらであるかを判定する（ステップＳ７１０）。物理ポート番号１２のポートが属するＬＡＩＤ１の優先ポート情報はｓｅｃｏｎｄａｒｙであるため（ステップＳ７１０：ｓｅｃｏｎｄａｒｙ）、ヘルスチェックフレーム制御部４００ｂは、物理ポート番号１２のエントリＥ１４の優先ポート情報の値を「ｓｅｃｏｎｄａｒｙからＮＯＴ」へ更新する（ステップＳ７０６）。
【０１９６】
ヘルスチェックフレーム制御部４００ｂは、ＬＡＩＤ１に属する全ての物理ポートの処理を終えたため（ステップＳ７１８：ＹＥＳ）、ＬＡＩＤ１に属する全ての物理ポートのうち、Ｕｐポートが１つだけか否かを判定する（ステップＳ７２０）。ＬＡＩＤ１に属する物理ポートには、番号９、１１、１２の３つのＵｐポートがあるため（ステップＳ７２０：ＮＯ）、ヘルスチェックフレーム制御部４００ｂは処理を終了させる。
【０１９７】
また、スイッチ＃２のヘルスチェックフレーム制御部４００ｂｐについても、物理回線制御部５００ｐからの通知を元に、障害が検出された物理回線ＬＮＡ２に接続されている物理ポート１０ｐについて同様の処理を行う。
【０１９８】
以上の結果、物理回線に障害が発生した場合、ヘルスチェックフレーム制御部４００ｂは、障害が発生した物理回線を有するＬＡＩＤに属する全ての物理回線について、ヘルスチェック送受信管理テーブル４２０ｂの優先ポート情報の値を付与し直す。具体的には、スイッチ１０ｂのヘルスチェック送受信管理テーブル４２０ｂは、障害発生後、障害が発生した物理回線に接続されている優先ポート情報の値に「ＮＯＴ」が付与される。このため、障害が発生した物理回線は、その後、ヘルスチェックフレームの送信には用いられなくなる。
【０１９９】
（Ｄ−６−４）時刻ｔ４（障害発生後１）：
図３４は、第３実施例のネットワーク１０００の障害発生後において、ヘルスチェックフレームの送受信が開始される様子を示す説明図である。
【０２００】
図３４の時刻ｔ４において、スイッチ＃１のセカンダリポートから、スイッチ＃２に対して、リングＩＤ１０のヘルスチェックフレームＨＣＦ３が送信される様子について説明する。
【０２０１】
スイッチ＃１のリング管理部１００により生成されたヘルスチェックフレームＨＣＦ３を受信したヘルスチェック送信制御部４３０ｂは、ヘルスチェックフレーム送信処理（図２９）を行う。ヘルスチェック送信制御部４３０ｂは、ステップＳ３０２、Ｓ３０４の処理を経て、送信フラグ判定を行う（ステップＳ３０６）。スイッチ＃１の時刻ｔ４におけるヘルスチェック送受信管理テーブル４２０ｂのエントリＥ１１〜Ｅ１４によれば、リングＩＤ１０、ＬＡＩＤ１の送信フラグの値にｏｎのあるエントリＥ１４が存在するため（ステップＳ３０６：ｏｎあり）、ヘルスチェック送信制御部４３０ｂは、送信フラグｏｎの物理ポート＋１の物理ポート番号、すなわち、物理ポート番号９を選択する（ステップＳ３２６）。その後、ヘルスチェック送信制御部４３０ｂは、選択した物理ポート番号９についての優先ポート判定を行う（ステップＳ６０８）。ヘルスチェック送受信管理テーブル４２０ｂのエントリＥ１１によれば、物理ポート番号９の優先ポート情報の値はＮＯＴである（ステップＳ６０８：ＮＯＴ）。このため、ヘルスチェック送信制御部４３０ｂは、選択ポート＋１の物理ポート番号、すなわち、物理ポート番号１０を再選択する（ステップＳ３１６）。
【０２０２】
ヘルスチェック送信制御部４３０ｂは、再選択した物理ポート番号１０についての優先ポート判定を行う（ステップＳ６０８）。ヘルスチェック送受信管理テーブル４２０ｂのエントリＥ１２によれば、物理ポート番号１０の優先ポート情報の値はＮＯＴである（ステップＳ６０８：ＮＯＴ）。このため、ヘルスチェック送信制御部４３０ｂは、選択ポート＋１の物理ポート番号、すなわち、物理ポート番号１１を再選択する（ステップＳ３１６）。ヘルスチェック送信制御部４３０ｂは、再選択した物理ポート番号１１についての優先ポート判定を行う（ステップＳ６０８）。ヘルスチェック送受信管理テーブル４２０ｂのエントリＥ１３によれば、物理ポート番号１１の優先ポート情報の値はｓｅｃｏｎｄａｒｙである（ステップＳ６０８：ＮＯＴでない）。このため、ヘルスチェック送信制御部４３０ｂは、ステップＳ３１８、Ｓ３２０の処理を継続する。この結果、ヘルスチェックフレームＨＣＦ３は、ステップＳ３１６によって再選択された物理ポート番号を有するポート１１から、物理回線ＬＮＡ３を用いて送信される。
【０２０３】
図３４の時刻ｔ４において、スイッチ＃２のプライマリポートから、スイッチ＃１に対して、リングＩＤ１０のヘルスチェックフレームＨＣＢ３が送信される様子について説明する。
【０２０４】
スイッチ＃２が他のトランジットノードから受信したヘルスチェックフレームＨＣＢ３を受信したヘルスチェック送信制御部４３０ｂｐは、ヘルスチェックフレーム送信処理（図２９）を行う。ヘルスチェック送信制御部４３０ｂｐは、ステップＳ３０２、Ｓ３０４の処理を経て、送信フラグ判定を行う（ステップＳ３０６）。スイッチ＃２の時刻ｔ４におけるヘルスチェック送受信管理テーブル４２０ｂｐのエントリＥ２１〜Ｅ２４によれば、リングＩＤ１０、ＬＡＩＤ１の送信フラグの値にｏｎのあるエントリＥ２３が存在するため（ステップＳ３０６：ｏｎあり）、ヘルスチェック送信制御部４３０ｂｐは、送信フラグｏｎの物理ポート＋１の物理ポート番号、すなわち、物理ポート番号１２ｐを選択する（ステップＳ３２６）。その後、ヘルスチェック送信制御部４３０ｂｐは、選択した物理ポート番号１２ｐについての優先ポート判定を行う（ステップＳ６０８）。ヘルスチェック送受信管理テーブル４２０ｂｐのエントリＥ２４によれば、物理ポート番号１２ｐの優先ポート情報の値はｐｒｉｍａｒｙである（ステップＳ６０８：ＮＯＴでない）。このため、ヘルスチェック送信制御部４３０ｂｐは、ステップＳ３１８、Ｓ３２０の処理を継続する。この結果、ヘルスチェックフレームＨＣＢ３は、ステップＳ３２６によって選択された物理ポート番号を有するポート１２ｐから、物理回線ＬＮＡ４を用いて送信される。
【０２０５】
（Ｄ−６−５）時刻ｔ５（障害発生後２）：
図３５は、第３実施例のネットワーク１０００の障害発生後において、ヘルスチェックフレームの送受信が継続される様子を示す説明図である。
【０２０６】
図３５の時刻ｔ５において、スイッチ＃１のセカンダリポートから、スイッチ＃２に対して、リングＩＤ１０のヘルスチェックフレームＨＣＦ４が送信される処理の手順は、第３実施例の時刻ｔ４（図３４）と同様である。従って、ヘルスチェックフレームＨＣＦ４は、優先ポート情報の値がＮＯＴでないｓｅｃｏｎｄａｒｙポート、すなわち、物理ポート番号１１のポートから物理回線ＬＮＡ３を用いて、スイッチ＃２へ送信される。
【０２０７】
図３５の時刻ｔ５において、スイッチ＃２のプライマリポートから、スイッチ＃１に対して、リングＩＤ１０のヘルスチェックフレームＨＣＢ４が送信される処理の手順は、第３実施例の時刻ｔ４（図３４）と同様である。従って、ヘルスチェックフレームＨＣＢ４は、優先ポート情報の値がＮＯＴでないｐｒｉｍａｒｙポート、すなわち、物理ポート番号９ｐのポートから物理回線ＬＮＡ１を用いて、スイッチ＃１へ送信される。
【０２０８】
以上のように、ヘルスチェック送受信管理テーブル４２０ｂの優先ポート情報には、予め、プライマリポートとして用いる仮想回線については、通信可能な物理回線に接続されているポートの奇数番目に対して「ｐｒｉｍａｒｙ」の値が、偶数番目に対して「ＮＯＴ」の値が、それぞれ格納されている。これとは逆に、セカンダリポートとして用いる仮想回線については、通信可能な物理回線に接続されているポートの偶数番目に対して「ｓｅｃｏｎｄａｒｙ」の値が、奇数番目に対して「ＮＯＴ」の値が、それぞれ格納されている。また、物理回線に障害が発生した後においても、ヘルスチェックフレーム制御部４００ｂは、物理ポート状態変更処理（図３０）によって、上記ルールに基づいて、ヘルスチェック送受信管理テーブル４２０ｂの内容を更新し、優先ポート情報の値を付与し直す。
【０２０９】
従って、障害発生前・後を問わず、通信可能な物理回線のうち、奇数番目の回線はプライマリポートのヘルスチェックフレーム送信に用いられ、偶数番目の回線はセカンダリポートのヘルスチェックフレーム送信に用いられる。換言すれば、第３実施例では、仮想回線を構成する物理回線の一部の物理回線に接続されたポートを用いて、プライマリポートのヘルスチェックフレーム送信を行い、仮想回線を構成する物理回線の他の物理回線に接続されたポートを用いて、セカンダリポートのヘルスチェックフレーム送信を行う。
【０２１０】
以上のように、第３実施例では、ヘルスチェックフレーム制御部４００ｂのヘルスチェック送信制御部４３０ｂ（状態確認フレーム制御部）は、プライマリポート（第１の方向）にヘルスチェックフレーム（状態確認フレーム）を送信したポートと、セカンダリポート（第２の方向）に送信され、リングネットワークを循環したヘルスチェックフレームを他のスイッチから受信したポートと、が同一とならないように、ヘルスチェックフレームを送信することができる。
【０２１１】
従って、第３実施例においても、第１実施例と同様、仮想回線を用いて物理回線を冗長化しつつ、ネットワークの状態を確認するための制御フレーム（ヘルスチェックフレーム）を交換するネットワーク中継装置（スイッチ１０ｂ）において、仮想回線の障害の誤検出を低減することができる。
【０２１２】
さらに、上記第３実施例では、ヘルスチェックフレーム制御部４００ｂ（状態確認フレーム制御部）は、仮想回線を構成する物理回線に障害が発生した場合は、プライマリポートのヘルスチェックフレーム送信のための回線（一部の物理回線）と、セカンダリポートのヘルスチェックフレーム送信のための回線（他の物理回線）と、を再選択することができる。このため、障害発生後においても、仮想回線の障害の誤検出を低減することができる。
【０２１３】
Ｅ．第４実施例：
本発明の第４実施例では、ヘルスチェックフレーム送信処理において、ヘルスチェックフレームの送受信ポートが同一となる状態を回避するための規則（第１の規則、第２の規則）が異なる構成について説明する。なお、図中において第１実施例と同様の構成部分については先に説明した第１実施例と同様の符号を付し、その詳細な説明を省略する。
【０２１４】
（Ｅ−１）システム構成：
図３６は、第４実施例としてのスイッチ１０ｃの概略構成を示す説明図である。図６に示した第１実施例との違いは、ヘルスチェック受信制御部４１０に代えてヘルスチェック受信制御部４１０ｃを、ヘルスチェック送信制御部４３０に代えてヘルスチェック送信制御部４３０ｃを、それぞれ備える点のみであり、他の構成や動作は第１実施例と同様である。
【０２１５】
ヘルスチェック受信制御部４１０ｃは、フレームを受信した際に実行するヘルスチェックフレーム受信処理の内容が、図１１に示した第１実施例と異なる。また、ヘルスチェック送信制御部４３０ｃは、フレームを受信した際に実行するヘルスチェックフレーム送信処理の内容が、図１２に示した第１実施例と異なる。
【０２１６】
（Ｅ−２）フレーム受信処理：
フレーム受信処理の手順は、図１０に示した第１実施例と同様である。
【０２１７】
（Ｅ−３）ヘルスチェックフレーム受信処理：
図３７は、第４実施例におけるヘルスチェックフレーム受信処理の手順を示すフローチャートである。図１１に示した第１実施例との違いは、ステップＳ２０４を備えない点のみであり、他の動作は第１実施例と同様である。すなわち、第４実施例のヘルスチェック受信制御部４１０ｃは、ヘルスチェックフレームを受信した受信ポートについては、送信フラグの値（ヘルスチェックフレームの送信に用いたポートであるか否か）に関わらず、受信フラグをｏｎに設定する点が異なる。
【０２１８】
（Ｅ−４）ヘルスチェックフレーム送信処理：
図３８は、第４実施例におけるヘルスチェックフレーム送信処理の手順を示すフローチャートである。図１２に示した第１実施例との違いは、ステップＳ３１４の後にステップＳ８０２、Ｓ８０４を備える点と、ステップＳ３２４とＳ３２８に代えてステップＳ８０６〜Ｓ８１０を備える点のみであり、他の動作は第１実施例と同様である。
【０２１９】
ステップＳ３１４の物理ポート状態判定において、物理ポート状態の値が、通信不可能であることを示す「Ｄｏｗｎ」である場合（ステップＳ３１４：Ｄｏｗｎ）、ヘルスチェック送信制御部４３０ｃは、優先ポート判定を行う（ステップＳ８０２）。具体的には、ヘルスチェック送信制御部４３０ｃは、選択された物理ポート番号をキーとしてヘルスチェック送受信管理テーブル４２０を検索し、一致するエントリの優先ポート情報の値を参照する。優先ポート情報の値が「ｐｒｉｍａｒｙ」である場合（ステップＳ８０２：ｐｒｉｍａｒｙ）、ヘルスチェック送信制御部４３０ｃは、処理をステップＳ３１６へ遷移させ、選択ポート＋１の物理ポート番号を再選択する。詳細は図１２で説明した通りである。一方、優先ポート情報の値が「ｓｅｃｏｎｄａｒｙ」である場合（ステップＳ８０２：ｓｅｃｏｎｄａｒｙ）、ヘルスチェック送信制御部４３０ｃは、選択ポート−１の物理ポート番号を再選択する（ステップＳ８０４）。具体的には、ヘルスチェック送信制御部４３０ｃは、ＬＡＩＤから特定されたエントリ（ステップＳ３０６の検索結果）を物理ポート番号で昇順にソートし、選択中の物理ポート番号の１つ前の番号となる物理ポート番号を再選択し、処理をステップＳ３１４へ遷移させる。
【０２２０】
ステップＳ３２２の優先ポート判定において、優先ポート情報の値が「ｓｅｃｏｎｄａｒｙ」である場合（ステップＳ３２２：ｓｅｃｏｎｄａｒｙ）、ヘルスチェック送信制御部４３０ｃは、受信フラグ判定を行う（ステップＳ８０６）。具体的には、ヘルスチェック送信制御部４３０ｃは、ＬＡＩＤから特定されたエントリ（ステップＳ３０６の検索結果）のうち、受信フラグの値が「ｏｎ」であるエントリがあるか否かを判定する。受信フラグの値が「ｏｎ」であるエントリがない場合（ステップＳ８０６：ＡＬＬ  ｏｆｆ）、ヘルスチェック送信制御部４３０ｃは、送信フラグｏｎの物理ポート-１の物理ポート番号を選択する（ステップＳ８０８）。具体的には、ヘルスチェック送信制御部４３０ｃは、ＬＡＩＤから特定されたエントリ（ステップＳ３０６の検索結果）を物理ポート番号で昇順にソートし、送信フラグの値が「ｏｎ」であるエントリの物理ポート番号の１つ前の番号となる物理ポート番号を選択する。受信フラグの値が「ｏｎ」であるエントリがある場合（ステップＳ８０６：ｏｎあり）、ヘルスチェック送信制御部４３０ｃは、受信フラグｏｎの物理ポート番号を選択する（ステップＳ８１０）。その後、ヘルスチェック送信制御部４３０ｃは、選択した物理ポートによるフレーム送信のために、処理をステップＳ３１４へ遷移させる。
【０２２１】
（Ｅ−５）物理ポート状態変更処理：
物理ポート状態変更処理の手順は、図１３に示した第１実施例と同様である。
【０２２２】
（Ｅ−６）動作：
第４実施例におけるスイッチ１０ｃが用いられたネットワーク１０００において、ヘルスチェックフレームの送受信が行われる様子を説明する。なお、説明に用いる図の構成等は、原則的に第１実施例と同様であり、以下では、第１実施例と異なる部分について説明する。
【０２２３】
（Ｅ−６−１）時刻ｔ１（障害発生前１）：
図３９は、第４実施例のネットワーク１０００においてヘルスチェックフレームの送受信が開始される様子を示す説明図である。
【０２２４】
図３９の時刻ｔ１において、スイッチ＃１のセカンダリポートから、スイッチ＃２に対して、リングＩＤ１０のヘルスチェックフレームＨＣＦ１が送信される処理の手順は、第１実施例の時刻ｔ１（図１４）と同様である。従って、ヘルスチェックフレームＨＣＦ１は、物理ポート番号１０のポートから物理回線ＬＮＡ２を用いて、スイッチ＃２へ送信される。
【０２２５】
図３９の時刻ｔ１において、スイッチ＃２のプライマリポートから、スイッチ＃１に対して、リングＩＤ１０のヘルスチェックフレームＨＣＢ１が送信される処理の手順は、第１実施例の時刻ｔ１（図１４）と同様である。従って、ヘルスチェックフレームＨＣＢ１は、物理ポート番号９ｐのポートから物理回線ＬＮＡ１を用いて、スイッチ＃１へ送信される。
【０２２６】
さらに、スイッチ＃１および＃２において実行されるヘルスチェックフレーム受信後の処理について説明する。
【０２２７】
スイッチ＃１は、時刻ｔ１においてスイッチ＃２から送信されたヘルスチェックフレームＨＣＢ１を物理回線制御部５００により受信する。ヘルスチェックフレームＨＣＢ１は、物理回線制御部５００、フレーム識別部３２０を経由して、ヘルスチェック受信制御部４１０ｃへ送信される（図１０、ステップＳ１０４）。ヘルスチェックフレームＨＣＢ１を受信したヘルスチェック受信制御部４１０ｃは、ヘルスチェックフレーム受信処理（図３７）を実行する。具体的には、ヘルスチェック受信制御部４１０ｃは、受信フレームのヘッダ情報をもとにして、ヘルスチェックフレームＨＣＢ１の受信ポート（物理ポート番号９）を特定する（ステップＳ２０２）。そして、ヘルスチェック受信制御部４１０ｃは、受信ポートである物理ポート番号９のエントリＥ１１の受信フラグの値を「ｏｆｆからｏｎ」へと更新し（ステップＳ２０６）、受信フレームをフレーム中継部３００へ転送する（ステップＳ２０８）。
【０２２８】
また、スイッチ＃１から送信されたヘルスチェックフレームＨＣＦ１を受信したスイッチ＃２についても、スイッチ＃１と同様に、フレーム受信処理（図１０）と、ヘルスチェックフレーム受信処理（図３７）とが行われる。
【０２２９】
この結果、スイッチ１０ｃのヘルスチェック送受信管理テーブル４２０の受信フラグには、それぞれ、対向装置からヘルスチェックフレームを受信したポートに「ｏｎ」が格納される。
【０２３０】
（Ｅ−６−２）時刻ｔ２（障害発生前２）：
図４０は、第４実施例のネットワーク１０００において２回目のヘルスチェックフレームの送受信が行われる様子を示す説明図である。
【０２３１】
図４０の時刻ｔ２において、スイッチ＃１のセカンダリポートから、スイッチ＃２に対して、リングＩＤ１０のヘルスチェックフレームＨＣＦ２が送信される様子について説明する。
【０２３２】
スイッチ＃１のリング管理部１００により生成されたヘルスチェックフレームＨＣＦ２を受信したヘルスチェック送信制御部４３０ｃは、ヘルスチェックフレーム送信処理（図３８）を行う。ヘルスチェック送信制御部４３０ｃは、ステップＳ３０２〜Ｓ３２２の処理を経て、受信フラグ判定を行う（ステップＳ８０６）。スイッチ＃１の時刻ｔ２におけるヘルスチェック送受信管理テーブル４２０のエントリＥ１１〜Ｅ１４によれば、リングＩＤ１０、ＬＡＩＤ１の受信フラグの値にｏｎのあるエントリＥ１１が存在するため（ステップＳ８０６：ｏｎあり）、ヘルスチェック送信制御部４３０ｃは、受信フラグｏｎの物理ポート番号、すなわち、物理ポート番号９を選択する（ステップＳ８１０）。ヘルスチェック送受信管理テーブル４２０のエントリＥ１１より、選択した物理ポート９の物理ポート状態は「Ｕｐ」であるため（ステップＳ３１４：Ｕｐ）、ヘルスチェック送信制御部４３０ｃは、ステップＳ３１８、Ｓ３２０の処理を継続する。従って、ヘルスチェックフレームＨＣＦ２は、物理ポート番号９のポートから物理回線ＬＮＡ１を用いて、スイッチ＃２へ送信される。
【０２３３】
図４０の時刻ｔ２において、スイッチ＃２のプライマリポートから、スイッチ＃１に対して、リングＩＤ１０のヘルスチェックフレームＨＣＢ２が送信される処理の手順は、第１実施例の時刻ｔ２（図１５）と同様である。従って、ヘルスチェックフレームＨＣＢ２は、物理ポート番号１０ｐのポートから物理回線ＬＮＡ２を用いて、スイッチ＃１へ送信される。
【０２３４】
（Ｅ−６−３）時刻ｔ３（障害発生時）：
図４１は、第４実施例のネットワーク１０００において障害が発生した際の様子を示す説明図である。図４１に示すように、ある時刻ｔ３において、仮想回線ＬＮＡを構成する一部の物理回線（ここでは、物理回線ＬＮＡ２とする）に障害が発生した場合の処理の手順は、第１実施例の時刻ｔ３（図１６）と同様である。従って、スイッチ＃１のヘルスチェック送受信管理テーブル４２０のうち、障害が発生した物理ポートに該当するエントリＥ１２の、物理ポート状態の値は「ＵｐからＤｏｗｎ」へ更新される（図１３、ステップＳ４０８）。同様に、スイッチ＃２のヘルスチェック送受信管理テーブル４２０ｐのうち、障害が発生した物理ポートに該当するエントリＥ２２の物理ポート状態の値は「ＵｐからＤｏｗｎ」へ更新される（図１３、ステップＳ４０８）。
【０２３５】
（Ｅ−６−４）時刻ｔ４（障害発生後１）：
図４２は、第４実施例のネットワーク１０００の障害発生後において、ヘルスチェックフレームの送受信が開始される様子を示す説明図である。
【０２３６】
図４２の時刻ｔ４において、スイッチ＃１のセカンダリポートから、スイッチ＃２に対して、リングＩＤ１０のヘルスチェックフレームＨＣＦ３が送信される様子について説明する。
【０２３７】
スイッチ＃１のリング管理部１００により生成されたヘルスチェックフレームＨＣＦ３を受信したヘルスチェック送信制御部４３０ｃは、ヘルスチェックフレーム送信処理（図３８）を行う。ヘルスチェック送信制御部４３０ｃは、ステップＳ３０２〜Ｓ３２２の処理を経て、受信フラグ判定を行う（ステップＳ８０６）。スイッチ＃１の時刻ｔ４におけるヘルスチェック送受信管理テーブル４２０のエントリＥ１１〜Ｅ１４によれば、リングＩＤ１０、ＬＡＩＤ１の受信フラグの値にｏｎのあるエントリＥ１２が存在するため（ステップＳ８０６：ｏｎあり）、ヘルスチェック送信制御部４３０ｃは、受信フラグｏｎの物理ポート番号、すなわち、物理ポート番号１０を選択する（ステップＳ８１０）。ヘルスチェック送受信管理テーブル４２０のエントリＥ１２より、選択した物理ポート１０の物理ポート状態は「Ｄｏｗｎ」であるため（ステップＳ３１４：Ｄｏｗｎ）、ヘルスチェック送信制御部４３０ｃは、優先ポート判定を行う（ステップＳ８０２）。ヘルスチェック送受信管理テーブル４２０のエントリＥ１２より、選択した物理ポート１０の優先ポート情報の値は「ｓｅｃｏｎｄａｒｙ」であるため、ヘルスチェック送信制御部４３０ｃは、選択ポート-１の物理ポート番号、すなわち、物理ポート番号９を選択する（ステップＳ８０４）。ヘルスチェック送受信管理テーブル４２０のエントリＥ１１より、選択した物理ポート９の物理ポート状態は「Ｕｐ」であるため（ステップＳ３１４：Ｕｐ）、ヘルスチェック送信制御部４３０ｃは、ステップＳ３１８、Ｓ３２０の処理を継続する。従って、ヘルスチェックフレームＨＣＦ３は、物理ポート番号９のポートから物理回線ＬＮＡ１を用いて、スイッチ＃２へ送信される。
【０２３８】
図４２の時刻ｔ４において、スイッチ＃２のプライマリポートから、スイッチ＃１に対して、リングＩＤ１０のヘルスチェックフレームＨＣＢ３が送信される処理の手順は、第１実施例の時刻ｔ２（図１５）と同様である。従って、ヘルスチェックフレームＨＣＢ３は、物理ポート番号１１ｐのポートから物理回線ＬＮＡ３を用いて、スイッチ＃１へ送信される。
【０２３９】
（Ｅ−６−５）時刻ｔ５（障害発生後２）：
図４３は、第４実施例のネットワーク１０００の障害発生後において、ヘルスチェックフレームの送受信が継続される様子を示す説明図である。
【０２４０】
図４３の時刻ｔ５において、スイッチ＃１のセカンダリポートから、スイッチ＃２に対して、リングＩＤ１０のヘルスチェックフレームＨＣＦ４が送信される処理の手順は、第４実施例の時刻ｔ２（図４０）と同様である。従って、ヘルスチェックフレームＨＣＦ４は、物理ポート番号１１のポートから物理回線ＬＮＡ３を用いて、スイッチ＃２へ送信される。
【０２４１】
図４３の時刻ｔ５において、スイッチ＃２のプライマリポートから、スイッチ＃１に対して、リングＩＤ１０のヘルスチェックフレームＨＣＢ４が送信される処理の手順は、第１実施例の時刻ｔ２（図１５）と同様である。従って、ヘルスチェックフレームＨＣＢ４は、物理ポート番号１２ｐのポートから物理回線ＬＮＡ４を用いて、スイッチ＃１へ送信される。
【０２４２】
以上のように、ヘルスチェックフレーム受信処理（図３７）において、スイッチ１０ｃのヘルスチェック受信制御部４１０ｃは、ヘルスチェックフレームを受信した受信ポートについては、送信フラグの値に関わらず、受信フラグの値を必ずｏｎに設定する。さらに、ヘルスチェックフレーム送信処理（図３８）において、ヘルスチェック送信制御部４３０ｃは、プライマリポート（第１の方向）に接続されたポートからのヘルスチェックフレーム送信の場合（ステップＳ３２２：ｐｒｉｍａｒｙ）、送信フラグｏｎの物理ポート＋１の番号を有するポート（すなわち、前回ヘルスチェックフレームを送信したポートとは異なるポート）を選択して、ヘルスチェックフレームの送信を行う。第４実施例においては、これを「第１の規則」とも呼ぶ。また、ヘルスチェックフレーム送信処理（図３８）において、スイッチ１０ｃのヘルスチェック送信制御部４３０ｃは、セカンダリポート（第２の方向）に接続されたポートからのヘルスチェックフレーム送信の場合（ステップＳ３２２：ｓｅｃｏｎｄａｒｙ）であって、他のスイッチからヘルスチェックフレームを受信している場合（ステップＳ８０６：ｏｎあり）は、受信フラグｏｎのポート（すなわち、前回、他のスイッチからヘルスチェックフレームを受信したポート）を選択して、ヘルスチェックフレームの送信を行う。第４実施例においては、これを「第２の規則」とも呼ぶ。
【０２４３】
以上のように、第４実施例では、ヘルスチェックフレーム制御部４００のヘルスチェック送信制御部４３０ｃ（状態確認フレーム制御部）は、プライマリポート（第１の方向に接続されたポート）から、前回、ヘルスチェックフレーム（状態確認フレーム）を送信したポートとは異なるポートを選択して次のヘルスチェックフレームを送信し、セカンダリポート（第２の方向に接続されたポート）から、前回、他のスイッチからヘルスチェックフレームを受信したポートを選択して次のヘルスチェックフレームを送信するため、ヘルスチェックフレームの送受信ポートが同一となる状態が連続しないように、ヘルスチェックフレームを送信するポートを変えることができる。
【０２４４】
従って、第４実施例においても、第１実施例と同様、仮想回線を用いて物理回線を冗長化しつつ、ネットワークの状態を確認するための制御フレーム（ヘルスチェックフレーム）を交換するネットワーク中継装置（スイッチ１０ｃ）において、仮想回線の障害の誤検出を低減することができる。
【０２４５】
Ｆ．変形例：
なお、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【０２４６】
Ｆ１．変形例１：
上記実施例では、ネットワーク中継装置が用いられたネットワーク構成の一例を示した。しかし、ネットワーク構成は、上述した態様に限らず、本発明の要旨を逸脱しない範囲において任意に定めることができる。例えば、図１に示さない端末、管理装置、他のネットワーク中継装置等を含む構成としてもよいし、図１に示した装置の一部を省略してもよい。
【０２４７】
例えば、本発明のネットワーク中継装置は、リングネットワークに限らず種々のネットワークにおいて利用可能である。具体的には、例えば、ＳＴＰ（Spanning Tree Protocol）、ＭＳＴＰ（Multiple Spanning Tree Protocol）、ＰＶＳＴＰ（Per virtual LAN Spanning Tree Protocol）、ＧＳＲＰ（Gigabit Switch Redundancy Protocol）等のプロトコルを用いるネットワークにおいても利用することができる。
【０２４８】
例えば、本発明のネットワーク中継装置は、リングネットワークに限らず種々のネットワークにおいて利用可能である。図４４は、変形例としてのネットワーク中継装置が用いられたネットワークの概略構成を示す説明図である。本発明のネットワーク中継装置は、例えば図４４のように、複数台のスイッチ１０ｄが、仮想回線を用いて直列的に接続されたネットワーク１０００ｄにおいても利用することができる。図４４の例では、例えば、スイッチ＃１がヘルスチェック管理部１００ｄを備えることによって、マスタノードとして機能する。
【０２４９】
例えば、本発明のネットワーク中継装置は、リングネットワークを構成する全ての回線が仮想回線である必要はなく、一部の回線は通常の物理回線であってもよい。
【０２５０】
Ｆ２．変形例２：
上記実施例では、ネットワーク中継装置の構成の一例を示した。しかし、ネットワーク中継装置の構成は、上述した態様に限らず、本発明の要旨を逸脱しない範囲において任意に定めることができる。例えば、図６に示さない他の処理部を含む構成としてもよいし、図６に示した処理部の一部を省略してもよい。
【０２５１】
例えば、リング管理部とＬＡリングマッピングテーブルは、ＣＰＵおよびメモリにより構成され、ＬＡ制御部とフレーム中継部とフレーム識別部とヘルスチェックフレーム制御部は、ＡＳＩＣにより構成されているものとした。しかし、これら各処理部の具体的なハードウェア構成はあくまで一例であり、種々の変形が可能である。具体的には、例えば、リング管理部とＬＡリングマッピングテーブルについても、ＡＳＩＣにより構成することも可能である。
【０２５２】
Ｆ３．変形例３：
上記実施例では、ＬＡリングマッピングテーブル、ＬＡ管理テーブル、ヘルスチェック送受信管理テーブルが備えるフィールドについて例示した。しかし、これらのテーブルが備えるフィールドは、その発明の要旨を逸脱しない範囲において任意に変更することができる。例えば、上記に例示したフィールド以外のフィールドを備えるものとしても良い。また、各テーブルには、ダイレクトマップ方式を用いることも可能である。
【０２５３】
Ｆ４．変形例４：
上記実施例では、ヘルスチェックフレーム送信処理の手順について例示した。しかし、ヘルスチェックフレーム送信処理の手順は、その発明の要旨を逸脱しない範囲において任意に変更することができる。
【０２５４】
例えば、第１実施例のヘルスチェックフレーム送信処理（図１２）において、ステップＳ３１０、Ｓ３１２では、初回のヘルスチェックフレーム送信時のポートの選択方法について例示した。しかし、これはあくまで例示であり、種々の変更が可能である。さらに、ステップＳ３２６では、２回目以降のプライマリポートのヘルスチェックフレーム送信時のポート選択方法について例示した。しかし、これはあくまで例示であり、前回のヘルスチェックフレームの送信ポートとは異なるポートを選択する限りにおいて、種々の変更が可能である。
【０２５５】
例えば、第２実施例のヘルスチェックフレーム送信処理（図２０）において、ステップＳ３１０、Ｓ５０２では、初回のヘルスチェックフレーム送信時のポート選択方法について例示した。しかし、これはあくまで例示であり、種々の変更が可能である。
【０２５６】
例えば、第３実施例のヘルスチェックフレーム送信処理（図２９）において、ステップＳ６０４、Ｓ６０６では、初回のヘルスチェックフレーム送信時のポート選択方法について例示した。しかし、これはあくまで例示であり、種々の変更が可能である。
【０２５７】
例えば、第４実施例のヘルスチェックフレーム送信処理（図３８）において、ステップＳ３１０、Ｓ３１２では、初回のヘルスチェックフレーム送信時のポートの選択方法について例示した。しかし、これはあくまで例示であり、種々の変更が可能である。さらに、ステップＳ３２６では、２回目以降のプライマリポートのヘルスチェックフレーム送信時のポート選択方法について例示した。しかし、これはあくまで例示であり、前回のヘルスチェックフレームの送信ポートとは異なるポートを選択する限りにおいて、種々の変更が可能である。
【０２５８】
Ｆ５．変形例５：
上記第３実施例では、ヘルスチェック送受信管理テーブルの構成と、物理ポート状態変更処理とを通じて、通信可能な物理回線のうち、奇数番目の回線はプライマリポートのヘルスチェックフレーム送信に用いられ、偶数番目の回線はセカンダリポートのヘルスチェックフレーム送信に用いられる構成であるとした。しかし、これはあくまで一例であり、種々の変更が可能である。
【０２５９】
例えば、奇数と偶数を逆にして、偶数番目の回線はプライマリポートのヘルスチェックフレーム送信に、奇数番目の回線はセカンダリポートのヘルスチェックフレーム送信に、それぞれ用いられる構成としてもよい。
【０２６０】
例えば、特定の物理ポート番号よりも大きい番号を有するポートに接続された物理回線は、プライマリポートのヘルスチェックフレーム送信に、特定の物理ポート番号よりも小さい番号を有するポートに接続された物理回線は、セカンダリポートのヘルスチェックフレーム送信に、それぞれ用いられる構成としてもよい。
【符号の説明】
【０２６１】
１０、１０ａ〜ｃ…スイッチ（ネットワーク中継装置）
１５…ＣＰＵ
１６…メモリ
１７…ＡＳＩＣ
１００…リング管理部
１１０…ＬＡリングマッピングテーブル
２００…ＬＡ制御部
２１０…ＬＡ受信制御部
２２０…ＬＡ管理テーブル
２３０…ＬＡ送信制御部
２４０…ＬＡ管理テーブル
３００、３００ｐ…フレーム中継部
３１０、３１０ｐ…フレーム識別部
３２０、３２０ｐ…フレーム識別部
４００、４００ｂ、４００ｐ、４００ｂｐ…ヘルスチェックフレーム制御部
４１０、４１０ｃ、４１０ｐ…ヘルスチェック受信制御部
４２０、４２０ｂ、４２０ｐ、４２０ｂｐ…ヘルスチェック送受信管理テーブル
４３０、４３０ａ〜ｃ、４３０ｐ、４３０ａｐ、４３０ｂｐ…ヘルスチェック送信制御部
５００、５００ｐ…物理回線制御部
５１０…物理ポート
１０００、１０００ａ〜ｃ、１０００ｘ…ネットワーク
ＬＮＡ１…物理回線
ＬＮＡ２…物理回線
ＬＮＡ３…物理回線
ＬＮＡ４…物理回線
ＢＫ…論理ブロック状態
ＰＰ…プライマリポート
ＳＰ…セカンダリポート
ＨＣＢ…ヘルスチェックフレーム
ＨＣＦ…ヘルスチェックフレーム
ＬＮＡ…仮想回線
ＬＮＢ…仮想回線
ＬＮＣ…仮想回線
ＬＮＤ…仮想回線
【図１】
0005580787.tif 000002
【図２】
0005580787.tif 000003
【図３】
0005580787.tif 000004
【図４】
0005580787.tif 000005
【図５】
0005580787.tif 000006
【図６】
0005580787.tif 000007
【図７】
0005580787.tif 000008
【図８】
0005580787.tif 000009
【図９】
0005580787.tif 000010
【図１０】
0005580787.tif 000011
【図１１】
0005580787.tif 000012
【図１２】
0005580787.tif 000013
【図１３】
0005580787.tif 000014
【図１４】
0005580787.tif 000015
【図１５】
0005580787.tif 000016
【図１６】
0005580787.tif 000017
【図１７】
0005580787.tif 000018
【図１８】
0005580787.tif 000019
【図１９】
0005580787.tif 000020
【図２０】
0005580787.tif 000021
【図２１】
0005580787.tif 000022
【図２２】
0005580787.tif 000023
【図２３】
0005580787.tif 000024
【図２４】
0005580787.tif 000025
【図２５】
0005580787.tif 000026
【図２６】
0005580787.tif 000027
【図２７】
0005580787.tif 000028
【図２８】
0005580787.tif 000029
【図２９】
0005580787.tif 000030
【図３０】
0005580787.tif 000031
【図３１】
0005580787.tif 000032
【図３２】
0005580787.tif 000033
【図３３】
0005580787.tif 000034
【図３４】
0005580787.tif 000035
【図３５】
0005580787.tif 000036
【図３６】
0005580787.tif 000037
【図３７】
0005580787.tif 000038
【図３８】
0005580787.tif 000039
【図３９】
0005580787.tif 000040
【図４０】
0005580787.tif 000041
【図４１】
0005580787.tif 000042
【図４２】
0005580787.tif 000043
【図４３】
0005580787.tif 000044
【図４４】
0005580787.tif 000045