(57)【要約】  本発明は、ネットワークのノードとして動作する通信装置であって、ネットワーク内での障害発生を検出するごとに、ネットワークの状態を示す状態情報を更新するポート状態管理部３４０と、受信フレームの送信元アドレスおよび受信ポートと、ポート状態管理部３４０で管理されている状態情報とに基づいて、送信元アドレスを宛先アドレスとしたフレームを受信した場合の出力ポートを決定するためのデータベースを更新するデータベース更新手段と、受信フレームの宛先アドレスおよびポート状態管理部３４０で管理されている状態情報を検索キーとしてデータベースを検索することにより、受信フレームの出力ポートを決定する出力先決定手段と、を備える。
2011104847.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークのノードとして動作する通信装置であって、
ネットワーク内での障害発生を検出するごとに、ネットワークの状態を示す状態情報を更新する状態管理手段と、
受信フレームの送信元アドレスおよび受信ポートと、前記状態管理手段で管理されている状態情報とに基づいて、当該送信元アドレスを宛先アドレスとしたフレームを受信した場合の出力ポートを決定するためのデータベースを更新するデータベース更新手段と、
受信フレームの宛先アドレスおよび前記状態管理手段で管理されている状態情報を検索キーとして前記データベースを検索することにより、受信フレームの出力ポートを決定する出力先決定手段と、
を備えることを特徴とする通信装置。
【請求項２】
前記データベース更新手段は、
前記送信元アドレスおよび前記状態情報を検索キーとし、前記受信ポートを出力情報としたエントリを作成して前記データベースへ登録する
ことを特徴とする請求項１に記載の通信装置。
【請求項３】
前記データベース更新手段は、
受信フレームの送信元アドレスおよび前記状態管理手段で管理されている状態情報を検索キーとするエントリが前記データベースに登録されていない場合、当該送信元アドレスおよび当該状態情報を検索キーとし、前記受信ポートを出力情報としたエントリを作成して前記データベースへ登録する
ことを特徴とする請求項１に記載の通信装置。
【請求項４】
前記データベース更新手段は、
受信フレームの送信元アドレスおよび前記状態管理手段で管理されている状態情報を検索キーとするエントリが前記データベースに登録されているが、その出力情報が前記受信ポートを示していない場合、当該エントリの出力情報が前記受信ポートを示すように、当該エントリを変更する
ことを特徴とする請求項１または３に記載の通信装置。
【請求項５】
ネットワークのノードとして動作する通信装置であって、
ネットワーク内での障害発生を検出するごとに、ネットワークの状態を示す状態情報を更新し、さらに、障害が発生しているポート、または障害発生す通知するフレームを受信したポートを無効ポートとして記憶する状態管理手段と、
受信フレームの送信元アドレスおよび受信ポートと、前記状態管理手段で管理されている状態情報とに基づいて、当該送信元アドレスを宛先アドレスとしたフレームを受信した場合の出力ポートを決定するためのデータベースを更新するデータベース更新手段と、
受信フレームの宛先アドレスを検索キーとして前記データベースを検索し、得られた検索結果と、前記状態管理手段で記憶されている無効ポートとに基づいて、受信フレームの出力ポートを決定する出力先決定手段と、
を備えることを特徴とする通信装置。
【請求項６】
前記データベース更新手段は、
前記送信元アドレスを検索キーとし、前記状態情報および前記受信ポートを出力情報としたエントリを作成して前記データベースへ登録する
ことを特徴とする請求項５に記載の通信装置。
【請求項７】
前記データベース更新手段は、
受信フレームの送信元アドレスを検索キーとするエントリが前記データベースに登録されているが、その出力情報が前記受信ポートとは異なるポートを示している、または当該出力情報が前記状態管理手段で管理されている状態情報とは異なる状態情報を含んでいる場合、当該エントリの出力情報が前記受信ポートを示しなおかつ前記状態管理手段で管理されている状態情報と同一の状態情報を含むように、当該エントリを変更する
ことを特徴とする請求項５または６に記載の通信装置。
【請求項８】
前記出力先決定手段は、
前記検索結果に含まれる状態情報が前記状態管理手段で管理されている状態情報とは異なり、なおかつ当該検索結果が示す出力ポートが前記状態管理手段で記憶されている無効ポートに該当する場合、当該検索結果に対応する前記データベース内のエントリを無効化する
ことを特徴とする請求項５、６または７に記載の通信装置。
【請求項９】
前記出力先決定手段は、
前記検索結果に含まれる状態情報が前記状態管理手段で管理されている状態情報とは異なり、なおかつ当該検索結果が示す出力ポートが前記状態管理手段で記憶されている無効ポートとは異なる場合、当該検索結果に対応するデータベース内のエントリが前記状態管理手段で管理されている状態情報と同一の管理情報を含むように、当該エントリを更新する
ことを特徴とする請求項５、６または７に記載の通信装置。
【請求項１０】
前記出力先決定手段は、
前記受信フレームの出力先を前記検索結果が示す出力ポートに決定する
ことを特徴とする請求項９に記載の通信装置。
【請求項１１】
リングネットワークを構成する
ことを特徴とする請求項１〜１０のいずれか一つに記載の通信装置。
【請求項１２】
ネットワークのノードとして動作する通信装置が、フレームを受信した場合の出力ポートを決定するためのデータベースを更新する場合に実行するアドレス学習方法であって、
ネットワーク内での障害発生を検出するごとに、ネットワークの状態を示す状態情報を更新する状態情報更新ステップと、
受信フレームの送信元アドレスおよび受信ポートと、前記状態情報とに基づいて、前記データベースに新規エントリを登録する必要があるかどうか確認し、必要な場合には、当該送信元アドレスおよび当該状態情報を検索キーとし、当該受信ポートを出力情報としたエントリを作成して前記データベースへ登録するエントリ登録ステップと、
を含むことを特徴とするアドレス学習方法。
【請求項１３】
前記エントリ登録ステップでは、最新の状態情報とは異なる状態情報を有するエントリがデータベースに登録されている場合、当該既存エントリに対して前記作成したエントリを上書き登録する
ことを特徴とする請求項１２に記載のアドレス学習方法。
【請求項１４】
受信フレームの送信元アドレスおよび前記状態情報を検索キーとしたエントリが前記データベースに登録されているかどうか確認し、登録されている場合、さらに、当該エントリの出力情報が前記受信フレームの受信ポートを示しているかどうか確認し、示していなければ、出力情報が前記受信フレームの受信ポートを示すように、当該エントリを変更する登録済みエントリ変更ステップ、
をさらに含むことを特徴とする請求項１２または１３に記載のアドレス学習方法。
【請求項１５】
ネットワークのノードとして動作する通信装置が、フレームを受信した場合の出力ポートを決定するためのデータベースを更新する場合に実行するアドレス学習方法であって、
ネットワーク内での障害発生を検出するごとに、ネットワークの状態を示す状態情報を更新し、さらに、障害が発生しているポート、または障害発生す通知するフレームを受信したポートを無効ポートとして記憶する管理情報更新ステップと、
受信フレームの送信元アドレスおよび受信ポートと、前記状態情報とに基づいて、前記データベースに新規エントリを登録する必要があるかどうか確認し、必要な場合、当該送信元アドレスを検索キーとし、当該状態情報および当該受信ポートを出力情報としたエントリを作成して前記データベースへ登録するエントリ登録ステップと、
を含むことを特徴とするアドレス学習方法。
【請求項１６】
受信フレームの送信元アドレスを検索キーとしたエントリが前記データベースに登録されているが、その出力情報が当該受信フレームの受信ポートとは異なるポートを示している、または当該出力情報が最新の状態情報とは異なる状態情報を含んでいる場合には、当該エントリの出力情報が当該受信ポートを示しなおかつ最新の状態情報と同一の状態情報を含むように、当該エントリを変更するエントリ変更ステップ、
をさらに含むことを特徴とする請求項１５に記載のアドレス学習方法。
【請求項１７】
出力ポートを決定するためのデータベース検索を実行し、その結果、受信フレームの宛先アドレスに対応するエントリが前記データベースに登録されているが、その出力情報に含まれる状態情報が最新の状態情報とは異なり、なおかつ当該出力情報が示す出力ポートが前記無効ポートに該当することを検出した場合、当該エントリを無効化するエントリ無効化ステップ、
をさらに含むことを特徴とする請求項１５または１６に記載のアドレス学習方法。
【請求項１８】
出力ポートを決定するためのデータベース検索を実行し、その結果、受信フレームの宛先アドレスに対応するエントリが前記データベースに登録されているが、その出力情報に含まれる状態情報が最新の状態情報とは異なり、なおかつ当該出力情報が示す出力ポートが前記無効ポートとは異なることを検出した場合、当該エントリの出力情報が最新の状態情報を含むように、当該エントリを変更するエントリ更新ステップ、
をさらに含むことを特徴とする請求項１５、１６または１７に記載のアドレス学習方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークにおいて受信フレームを中継する通信装置、およびアドレス学習方法に関する。
【背景技術】
【０００２】
イーサネット（登録商標）フレーム（以下、単に「フレーム」と記載する）の中継装置であるブリッジ装置やスイッチ装置（以降Ｌ２スイッチと呼ぶ）では、受信したフレームの送信元ＭＡＣアドレスと受信したポート、およびその他の情報からなるエントリを蓄積するＦＤＢ（Ｆｉｌｔｅｒｉｎｇ  Ｄａｔａｂａｓｅ）と呼ばれるデータベースを持っている。このＦＤＢは新たにフレームを受信するたびにエントリを追加していく。この動作は、ＭＡＣアドレス学習（もしくはアドレス学習）と呼ばれる。【０００３】
ＦＤＢは、受信フレームを中継する際に利用するものである。具体的には、フレームを受信したＬ２スイッチは、受信フレームの宛先ＭＡＣアドレスを検索キーとしてＦＤＢを検索する。そして、学習済みのＭＡＣアドレスであれば、検索キーとしたＭＡＣアドレスに対応するポート（出力ポート）が得られる。このポートに受信フレームを転送すれば、転送先の他のＬ２スイッチも同じ動作を行なうため、最終的に受信フレームは目的のイーサネット（登録商標）ノード（以下、単に「ノード」と記載する）に到達する。一方、ＦＤＢにエントリのない宛先ＭＡＣアドレスを持つ受信フレームは、ＦＤＢを検索しても出力ポートの情報が得られない（どのポートに転送すればよいかわからない）ので、フレームを受信したＬ２スイッチは、受信したポート以外の全てのポートに対して、受信したフレームをブロードキャストする。この動作はフラッディングと呼ばれている。このようなフレーム中継動作は、非特許文献１に記載されている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】ＩＥＥＥ  Ｓｔａｎｄａｒｄ  ｆｏｒ  Ｌｏｃａｌ  ａｎｄ  Ｍｅｔｒｏｐｏｌｉｔａｎ  Ａｒｅａ  Ｎｅｔｗｏｒｋｓ：Ｍｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  （ＭＡＣ）  Ｂｒｉｄｇｅｓ，ＩＥＥＥ  Ｓｔｄ  ８０２．１Ｄ−２００４，ｐ．４１〜４８
【発明の概要】
【発明が解決しようとする課題】
【０００５】
複数のＬ２スイッチで構成されたネットワークでは、ネットワークのどこかに障害が発生するとフレームの中継経路が変わるため、各Ｌ２スイッチが持っているＦＤＢの全エントリを無効化し、変更された中継経路で再度アドレス学習を行い、ＦＤＢを再構築する必要があった。このＦＤＢ全エントリの無効化は、ＦＤＢフラッシュとも呼ばれる。【０００６】
一方、ネットワークの大規模化が進み、接続されるノード数が増大するのに伴ってＦＤＢのエントリ数も多大になり、その結果、ＦＤＢフラッシュに費やす時間が問題視されるようになってきた。具体的には、ＦＤＢの全エントリの無効化が終了するまではアドレス学習ができないため、アドレス学習が完了するまでの間、Ｌ２スイッチは受信フレームを全てフラッディングしてしまう。すなわち、ＦＤＢフラッシュに伴ってネットワークのトラフィックが増加し、運用に支障をきたしかねないという問題があった。【０００７】
本発明は、上記に鑑みてなされたものであって、ネットワークで障害が検出された後、ＦＤＢを再構築するためのアドレス学習を迅速に再開する通信装置を得ることを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明は、ネットワークのノードとして動作する通信装置であって、ネットワーク内での障害発生を検出するごとに、ネットワークの状態を示す状態情報を更新する状態管理手段と、受信フレームの送信元アドレスおよび受信ポートと、前記状態管理手段で管理されている状態情報とに基づいて、当該送信元アドレスを宛先アドレスとしたフレームを受信した場合の出力ポートを決定するためのデータベースを更新するデータベース更新手段と、受信フレームの宛先アドレスおよび前記状態管理手段で管理されている状態情報を検索キーとして前記データベースを検索することにより、受信フレームの出力ポートを決定する出力先決定手段と、を備えることを特徴とする。
【発明の効果】
【０００９】
本発明にかかる通信装置は、ネットワークで障害が発生してからＦＤＢの再構築を開始するまでの所要時間を短縮化できる、という効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施の形態１の通信システムの構成例を示す図である。
【図２】図２は、リングノードの構成例を示す図である。
【図３】図３は、ポート状態管理部の内部構成を示す図である。
【図４】図４は、出力ポート検索処理部の構成例を示す図である。
【図５】図５は、実施の形態１のリングノードにおけるＦＤＢ更新手順の一例を示すフローチャートである。
【図６】図６は、ＦＤＢに登録された情報の一例を示す図である。
【図７】図７は、リングネットワークで発生する障害の一例を示す図である。
【図８】図８は、実施の形態１のリングノードによるフレーム転送手順を示したフローチャートである。
【図９】図９は、障害発生後のＦＤＢ学習動作の一例を示す図である。
【図１０】図１０は、障害発生後のＦＤＢ学習動作の一例を示す図である。
【図１１】図１１は、実施の形態２のリングノードが管理しているＦＤＢの構成例を示す図である。
【図１２】図１２は、実施の形態２のリングノードが備えるポート状態管理部で管理されている情報の構成例を示す図である。
【図１３】図１３は、実施の形態２のリングノードにおけるＦＤＢ更新手順の一例を示すフローチャートである。
【図１４】図１４は、実施の形態２のリングノードによるフレーム転送手順を示したフローチャートである。
【発明を実施するための形態】
【００１１】
以下に、本発明にかかる通信装置およびアドレス学習方法の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１２】
実施の形態１．
図１は、本実施の形態の通信装置に相当するリングノード装置（以下、「リングノード」と記載する）により構成されたリングネットワークを含んだ通信システムの構成例を示す図である。この通信システムは、本実施の形態にかかる複数のリングノード（リングノード１００，２００，３００，４００，５００，６００）により構成されたリングネットワーク１と、リングネットワーク１に接続された複数のノード（ノード１０，２０，３０，４０，５０，６０）を含んでいる。なお、図１においては、各リングノードの入出力ポートも併せて記載しており、リングノード３００の入出力ポートをポート３０１〜３０３としている。ポート３０１はリングノード２００と接続されたリンクを収容し、ポート３０２はリングノード４００と接続されたリンクを収容し、ポート３０３はノード３０が接続されたリンクを収容している。
【００１３】
リングネットワーク１は、文献「ＩＴＵ−Ｔ勧告Ｇ．８０３２／Ｙ．１３４４，Ｅｔｈｅｒｎｅｔ  Ｒｉｎｇ  Ｐｒｏｔｅｃｔｉｏｎ  Ｓｗｉｔｃｈｉｎｇ」（以下、「ＥＲＰ」と記載する）に規定された手法に従って構成したものであり、リングネットワーク１を構成している各リングノードは、このＥＲＰに準拠した機能が実装されたＬ２スイッチである。ＥＰＲには、ネットワーク障害切り替え手法についても規定されており、この規定によれば、ネットワークの中継経路の障害切り替えが発生した場合、ＦＤＢフラッシュが必要とされる。
【００１４】
また、リングネットワーク１では、リングノード１００と６００を接続するリンクをＲｉｎｇ  Ｐｒｏｔｅｃｔｉｏｎ  Ｌｉｎｋに設定し、リングノード６００がＲＰＬ（Ｒｉｎｇ  Ｐｒｏｔｅｃｔｉｏｎ  Ｌｉｎｋ）  Ｏｗｎｅｒと呼ばれるノードに設定されている。リングノード６００では、Ｒｉｎｇ  Ｐｒｏｔｅｃｔｉｏｎ  Ｌｉｎｋを収容するポートをブロッキングすることで、リングネットワーク１上をフレームがループするのを防止している。
【００１５】
図２は、リングネットワーク１に含まれるリングノードの構成例を示す図である。図２では、一例としてリングノード３００の構成例を示しているが、リングネットワーク１に含まれる各リングノードの構成は同一である。なお、上述したとおり、ＲＰＬ  Ｏｗｎｅｒに設定されているリングノード６００においては、Ｒｉｎｇ  Ｐｒｏｔｅｃｔｉｏｎ  Ｌｉｎｋを収容するポートがブロッキングされている。
【００１６】
図２に示したように、リングノード３００は、複数のポート３０１，３０２，３０３，…と、これらの複数のポートと同数の入出力処理部３１０と、スイッチング処理部３２０と、リング管理処理部３３０と、ポート状態管理部３４０と、出力ポート検索処理部３５０とを備える。各ポートには、接続するリンクを区別するために異なる符号を付しているが（図１参照）、これらは全く同じ機能を有している。すなわち、図２では、ポート３０１とこれに接続された入出力処理部３１０の内部構成のみを記載しているが、その他のポート３０２，３０３，…、およびこれらに接続された入出力処理部３１０も同様の内部構成となっている。また、ポート３０１およびこれに接続された入出力処理部３１０以外のポートおよび入出力処理部については、スイッチング処理部３２０を除いた他の構成要素（リング管理処理部３３０など）との間の接続線（信号線）の記載を省略しているが、同様に接続されているものとする。
【００１７】
各ポートは、入力ポートおよび出力ポートにより構成され、たとえばポート３０１は、入力ポート３０１−１および出力ポート３０１−２を備えている。これらの各ポートは、接続するリンクや自ポート（ポート３０１，３０２，…）の障害を検出すると、ポート状態管理部３４０に通知する。なお、ポート３０１はリングノード２００と接続されたリンクを収容し、ポート３０２はリングノード４００と接続されたリンクを収容し、ポート３０３はノード３０が接続されたリンクを収容している（図１参照）。
【００１８】
各入出力処理部３１０は、入力フレーム処理部３１１および出力フレーム処理部３１２をそれぞれ備えており、フレームの多重・分離を行う。
【００１９】
入出力処理部３１０の入力フレーム処理部３１１は、受信フレームを解析し、受信フレームがＥＲＰに基づくリング管理フレームであればリング管理処理部３３０へ転送する。また、「ＩＴＵ−Ｔ勧告Ｙ．１７３１，ＯＡＭ  Ｆｕｎｃｔｉｏｎｓ  ａｎｄ  Ｍｅｃｈａｎｉｓｍｓ  ｆｏｒ  Ｅｔｈｅｒｎｅｔ  ｂａｓｅｄ  Ｎｅｔｗｏｒｋｓ」（以下、「ＥｔｈｅｒＯＡＭ機能」とする）に記載される、隣接リングノードとのリンク管理フレームを受信すると、ポート状態管理部３４０へ転送する。リング管理フレームおよびリンク管理フレームを転送する場合、そのフレームを受信したポートも併せて通知する。また、一般フレームを受信したときは、受信フレームの宛先ＭＡＣアドレスを出力ポート検索処理部３５０に通知して出力ポートの検索を依頼する。そして、出力ポート検索処理部３５０から出力ポートが通知されると、スイッチング処理部３２０へ出力ポートを通知するとともに受信フレームを渡して、フレームの転送を依頼する。ここで通知する出力ポートは一つである場合も、複数である場合もある。フラッディングの場合は、複数のポートが通知される。また、入力フレーム処理部３１１は、フレームを受信したポート、および受信したフレームの送信元ＭＡＣアドレスを出力ポート検索処理部３５０に通知し、ＦＤＢの更新を依頼する。
【００２０】
入出力処理部３１０の出力フレーム処理部３１２は、スイッチング処理部３２０経由で他の入出力処理部３１０から転送されてきたフレームと、リング管理処理部３３０から受け取ったフレームと、ポート状態管理部３４０から受け取ったフレームとを多重化し、ポート３０１（出力ポート部）へ転送する。
【００２１】
リング管理処理部３３０は、ＥＲＰに基づくリング管理を行う処理部であり、リング管理フレームの送受信や、障害発生／解除に伴いポート状態管理部３４０が行うべき動作の指示を行う。自リングノードのポート障害が検出された場合や自リングノードに接続されているリンクでの障害が検出された場合、リング管理フレームとして、障害の内容を通知するための障害通知フレームを生成する。また、他のリングノードから障害発生の通知を受けた場合、および自リングノードで障害発生を検知した場合、ポート状態管理部３４０に対して、ＦＤＢフラッシュを実行するように指示する。
【００２２】
図３は、ポート状態管理部３４０の内部構成を示す図であり、図示したように、ポート状態管理部３４０は、ポート状態テーブル３４１および障害状態番号３４２を管理している。ポート状態テーブル３４１には、リングノード３００の全ポートの状態が格納されている。障害状態番号３４２は、リングネットワーク１の状態（障害発生状況）を管理するための情報である。
【００２３】
ポート状態管理部３４０（状態管理手段に相当）は、各ポートのいずれかからポート障害が通知された場合、ポート状態テーブル３４１内の該当するポートの状態を更新する（障害発生を記録する）とともに障害状態番号３４２を更新し、また、障害発生と障害が発生しているポートをリング管理処理部３３０に通知する。
【００２４】
さらに、ポート状態管理部３４０は、上記のＥｔｈｅｒｎｔＯＡＭ機能に基づき、隣接リングノードとのリンク状態を監視し、リンク障害を検出した場合にも、上記のポート障害が通知されてきた場合と同様に、障害発生と、障害発生リンク（障害が発生しているリンク）と接続しているポートとをリング管理処理部３３０に通知する。
【００２５】
図４は、出力ポート検索処理部３５０の構成例を示す図である。出力ポート検索処理部３５０は、ＦＤＢ制御部３５１およびＦＤＢ３５２を備えている。ＦＤＢ制御部３５１は、入力フレーム処理部３１１から出力ポートの検索依頼を受けた場合、ＦＤＢ３５２を検索して出力ポートを求め、入力フレーム処理部３１１へ通知する。また、ＦＤＢ３５２に該当するＦＤＢエントリがない場合には、入力フレーム処理部３１１にフラッディングを指示する。また、入力フレーム処理部３１１からＦＤＢの更新依頼を受けた場合、更新依頼時に通知されたＭＡＣフレームなどに基づいて、ＦＤＢ３５２のエントリ追加／更新処理を行う。なお、ＦＤＢ制御部３５１が、データベース更新手段および出力先決定手段として動作する。
【００２６】
つづいて、本実施の形態のリングネットワーク１を構成している各リングノードがＦＤＢを更新する動作（アドレス学習動作）について説明する。
【００２７】
図５は、本実施の形態のリングノードにおけるＦＤＢ更新手順の一例を示すフローチャートである。
【００２８】
（ＦＤＢに新規エントリを登録する場合の動作）
まず、ＦＤＢに新規エントリを登録する場合のアドレス学習動作について、図面を参照しながら説明する。ここでは、リングノード３００が全く何も学習していない状態（ＦＤＢ３５２にエントリが全く登録されていない状態）からアドレス学習を行う場合の動作例を説明する。なお、ポート状態管理部３４０の障害状態番号３４２には、障害状態番号として０が記憶されているものとする。
【００２９】
たとえば、リングノード５００に接続されたノード５０から送信され、リングノード５００により転送されたフレーム（一般フレーム）をポート３０２で受信すると、受信フレームはポート３０２に接続された入力フレーム処理部３１１に渡される（ステップＳ１）。入力フレーム処理部３１１は、受け取ったフレームの送信元ＭＡＣアドレスであるノード５０のＭＡＣアドレスおよびこのフレームを受信したポート３０２を出力ポート検索処理部３５０へ通知してＦＤＢの更新を依頼する。ＦＤＢの更新依頼を受けた出力ポート検索処理部３５０では、ＦＤＢ制御部３５１が、通知されたＭＡＣアドレス、およびポート状態管理部３４０の障害状態番号３４２に記憶されている障害状態番号０を検索キーとしてＦＤＢ３５２を検索し、ＦＤＢにエントリがあるかどうかを確認する（ステップＳ２，ステップＳ３）。そして、この時点では、ＦＤＢ３５２は何も学習していない状態なので、ＦＤＢ制御部３５１は、ＦＤＢエントリなしと判断し（ステップＳ３：Ｎｏ）、上記のＦＤＢの更新依頼で通知された情報および現在の障害状態番号に基づいて、ＦＤＢ３５２を更新する。具体的には、ＦＤＢ制御部３５１は、ＦＤＢの更新依頼で通知されたノード５０のＭＡＣアドレス、および現在の障害状態番号０を検索キーとし、また、この検索キーに対応する出力情報（出力ポート）をＦＤＢの更新依頼で通知されたポート３０２としたＦＤＢエントリをＦＤＢ３５２に新規登録する（ステップＳ４）。
【００３０】
また、その他のリングノードから送信されたフレーム（一般フレーム）を受信した場合も同様に上記のステップＳ１〜Ｓ４を実行してＦＤＢの更新（アドレス学習）を行い、図６に示したような、ＭＡＣアドレスと障害状態番号と出力ポートで構成されたエントリが登録されたＦＤＢ３５２を作り上げる。
【００３１】
（ＦＤＢに登録済みのエントリを更新する場合の動作）
次に、ＦＤＢに登録済みのエントリを更新する場合のアドレス学習動作について説明する。ここでは、ノード５０のＭＡＣアドレスの出力ポートがポート３０１としてＦＤＢ３５２へ登録されている状態において、ノード５０が送信したフレームをポート３０２から受信したときの再学習動作について、図面を参照しながら説明する。なお、ポート状態管理部３４０の障害状態番号３４２には、障害状態番号として０が記憶されているものとする。
【００３２】
リングノード５００に接続されたノード５０から送信され、リングノード５００により転送されたフレーム（一般フレーム）をポート３０２で受信すると、受信フレームはポート３０２に接続された入力フレーム処理部３１１に渡される（ステップＳ１）。入力フレーム処理部３１１は、受け取ったフレームの送信元ＭＡＣアドレスであるノード５０のＭＡＣアドレスおよびこのフレームを受信したポート３０２を出力ポート検索処理部３５０へ通知してＦＤＢの更新を依頼する。ＦＤＢの更新依頼を受けた出力ポート検索処理部３５０では、ＦＤＢ制御部３５１が、通知されたＭＡＣアドレス、およびポート状態管理部３４０の障害状態番号３４２に記憶されている障害状態番号０を検索キーとしてＦＤＢ３５２を検索し、ＦＤＢにエントリがあるかどうかを確認する（ステップＳ２，ステップＳ３）。この場合、ＦＤＢ３５２には、ノード５０のＭＡＣアドレスと障害状態番号０を検索キーとしたエントリが存在しているので（ステップＳ３：Ｙｅｓ）、ＦＤＢ制御部３５１は、検索したエントリに登録されている出力ポートと、上記のＦＤＢの更新依頼で通知されたポート３０２が一致しているかどうか確認する（ステップＳ５）。確認の結果、一致していないので（ステップＳ５：Ｎｏ）、ステップＳ２で検索したエントリの出力ポートを、ＦＤＢの更新依頼で通知されたポート３０２として上書き登録する（ステップＳ６）。ちなみに、上記の検索したエントリに登録されている出力ポートとＦＤＢの更新依頼で通知されたポートが一致している場合には（ステップＳ５：Ｙｅｓ）、ＦＤＢ３５２を更新せずに処理を終了する。
【００３３】
なお、上記の図５を用いたアドレス学習動作の説明では、説明の簡単化のために、受信したフレームを転送する動作については記載を省略している。実際には、上述したアドレス学習動作に加えて、受信したフレームの宛先ＭＡＣアドレスを用いた出力ポート検索を行い、検索結果に従ってフレームを転送する処理も実施する。このフレーム転送動作は従来と同様であるため、詳細説明は省略する。これ以降においてアドレス学習動作を説明する場合も同様に、受信フレームの転送動作については説明を省略する。
【００３４】
つづいて、図１に示したリングネットワーク１で障害が発生した場合の各リングノードの動作について説明する。ここでは、一例として、リングノード４００と５００との間のリンクで障害が発生した場合（図７参照）のリングノード３００の動作を説明する。なお、障害発生時において、ポート状態管理部３４０の障害状態番号３４２には、障害状態番号として０が記憶されているものとする。
【００３５】
リングノード４００は、リングノード５００と接続しているリンクの障害を検出すると、リングノード３００と接続しているリンクに、障害を検出したことを通知するためのリング管理フレームである障害通知フレームを送信する。リングノード５００も同様に、障害を検出すると、リングノード６００と接続しているリンクに、障害通知フレームを送信する。なお、リングノード４００および５００は、障害を検出したリンクを収容しているポートをブロッキングし、リングノード６００は、障害通知フレームを受信すると、リングノード１００との間のリンクを収容しているポートのブロッキングを解除する（図７参照）。
【００３６】
リングノード３００では、リングノード４００から障害通知フレームを受信した場合、入出力処理部３１０およびスイッチング処理部３２０が、この障害通知フレームをリングノード２００と接続しているリンクに転送する。また、この障害通知フレームは、入出力処理部３１０からリング管理処理部３３０へ転送される。
【００３７】
リング管理処理部３３０は、上記転送された障害通知フレームを受け取ると、その内容を確認し、障害通知フレームが送信されてきたリンクを収容しているポートであるポート３０２を出力ポートとするＦＤＢエントリを無効化する必要があると判断する。そして、ポート状態管理部３４０と出力ポート検索処理部３５０にＦＤＢフラッシュ実行を指示する。
【００３８】
ＦＤＢフラッシュ実行指示を受けたポート状態管理部３４０は、障害状態番号３４２を更新する。ここでは、障害状態番号３４２を０から１に更新する。
【００３９】
また、ＦＤＢフラッシュ実行指示を受けた出力ポート検索処理部３５０では、ＦＤＢ制御３５１が、ＦＤＢ３５２が次に学習する空きエントリを、ＦＤＢ３５２の先頭に設定する。一般的には、ここでＦＤＢの全エントリを無効化するが、本実施の形態のリングノードでは、ＦＤＢの全エントリを無効化する処理は行わない。
【００４０】
ＦＤＢエントリを無効化する目的は、障害以前に学習していたフレーム転送先に中継してしまうことによって所望の宛先にフレームを到達させられないことを防ぐため、障害以前のフレーム転送先を忘れることである。しかしながら、上記のとおり、本実施の形態のリングノードでは、障害発生の通知を受けた直後にＦＤＢの全エントリを無効化することはしない。以下に、本実施の形態のリングノードではＦＤＢの全エントリ無効化が不要である理由について、具体例を示して説明する。
【００４１】
ここでは、リングノード３００のＦＤＢ３５２が図６に示した状態であり、この状態で、上記のリングノード４００と５００の間のリンクにおける障害発生通知を受け、その後、ポート３０１がリングノード５００に接続されたノード５０宛のフレームを受信した場合の動作、具体的には、フレームを受信した場合に実施する、フレームの出力ポートを検索する動作および検索結果に従ってフレームを送信する動作について、図８に示したフローチャートを用いて説明する。図８は、障害発生通知を受けた後に実施するフレーム転送手順を示したフローチャートである。
【００４２】
上述したとおり、障害発生通知を受けた時点では出力ポート検索処理部３５０のＦＤＢ制御部３５１はＦＤＢ３５２に登録済みのエントリを変更することはしないので、障害発生通知を受けた直後のＦＤＢ３５２は、図６に示した状態であり、このときＦＤＢ制御３５１は、ＦＤＢ３５２が次に学習する空きエントリをＦＤＢ３５２の先頭に設定した状態となっている。なお、ポート状態管理部３４０の障害状態番号３４２には、障害状態番号として１が記憶されている（障害発生通知に伴って０から１に更新された）ものとする。
【００４３】
リングノード３００は、たとえば、リングノード５００に接続されたノード５０のＭＡＣアドレスが宛先ＭＡＣアドレスに設定されたフレームをポート３０１で受信すると（ステップＳ１１）、ノード５０のＭＡＣアドレスを検索キーとしてＦＤＢ３５２を検索するように、入出力処理部３１０は出力ポート検索処理部３５０に依頼（出力ポートの検索依頼）を行う。出力ポートの検索依頼を受けた出力ポート検索処理部３５０では、ＦＤＢ制御部３５１が、依頼時に通知されたノード５０のＭＡＣアドレスと、障害状態番号３４２に記憶している障害状態番号の値（この場合１となる）とを検索キーとしてＦＤＢ３５２を検索し、依頼内容に対応するエントリが存在するかどうか確認する（ステップＳ１２，Ｓ１３）。このとき、ＦＤＢ３５２では、ノード５０のＭＡＣアドレスは、障害状態番号値０との組で学習されているが、障害状態番号１との組では学習されていないので、ＦＤＢ制御部３５１は、該当エントリなしと判断し（ステップＳ１３：Ｎｏ）、その旨を入出力処理部３１０へ通知する。該当エントリなしの通知を受けた入出力処理部３１０は、受信フレームをコピーし、このフレームを受信したポート３０１以外のポート（ポート３０２，３０３，…）に転送（フラッディング）するようにスイッチング処理部３２０へ依頼し、スイッチング処理部３２０は、依頼内容に従って、ポート３０１で受信した上記のフレームをフラッディングする（ステップＳ１４）。なお、ＦＤＢ制御部３５１が上記依頼内容に対応するエントリを発見した場合（ステップＳ１３：Ｙｅｓ）、発見したエントリに登録されている出力ポートを入出力処理部３１０へ通知し、入出力処理部３１０およびスイッチング処理部３２０は、通知された出力ポートに受信フレームを転送する（ステップＳ１５）。
【００４４】
このように、障害発生以前の障害状態番号値とＭＡＣアドレスを検索キーとしてＦＤＢ３５２に記憶しているため、障害状態番号が更新された後は、更新以前のエントリが無効となる。したがって、障害発生後に全エントリを無効化することなく、無効化したことと同様の効果が得られる。障害状態番号値を更新するだけなので、本実施の形態の通信装置（リングノード装置）では、従来実施していたＦＤＢの全エントリを無効化する処理と比較して、処理時間を大幅に短縮できる。また、従来の処理では、無効化が必要なエントリ数の増加に伴って処理に要する時間も増加するが、本実施の形態の通信装置で適用している上記の手法では、エントリ数が増加しても処理時間が増加することは無い。
【００４５】
また、障害発生後のＦＤＢ学習について、図９および図１０を用いて説明する。なお、図９および図１０は、障害発生後のＦＤＢ学習動作の一例を示す図である。
【００４６】
先述の通り、各リングノードでは、障害通知を受けた場合、空きエントリの先頭をＦＤＢの先頭とする。たとえばリングノード３００では空きエントリの先頭をＦＤＢ３５２の先頭に設定する。その後、リングノード３００で新たに学習されるエントリは、ＦＤＢ３５２の先頭から順に、上書きするように追加していく。図９は、障害発生後に新たなエントリが学習されているＦＤＢ３５２の例を示した図である。図９に示した例では、障害発生後、まず初めにノード３０の出力ポートが学習されたため、先頭エントリ（エントリ番号１）にノード３０に関するエントリが登録されている。そして、まだ学習が進んでいないため、障害状態番号が以前のもの（０のもの）であるノード３０のエントリもエントリ番号３に残っている。この次に新たな学習が行われると、このエントリが上書きされることとなる。このように順次アドレス学習が進むと、ＦＤＢ３５２は、たとえば図１０に示したような状態に更新される。
【００４７】
なお、従来のＦＤＢの全エントリを無効化する処理と同等の効果（障害以前に学習していたフレーム転送先にフレームを中継してしまうのを防止すること）を得るためには、障害通知を受けた場合に、空きエントリの先頭をＦＤＢの先頭とする動作は必須ではない。しかしながら、出力ポートの検索処理時間を考慮すると、空きエントリの先頭をＦＤＢの先頭に設定し、ＦＤＢへの登録エントリ数（検索対象となるエントリの数）が必要以上に増大するのを防止することが望ましい。
【００４８】
ただし、空きエントリの先頭をＦＤＢの先頭に設定するのは登録エントリ数の増大防止を実現するための一例に過ぎない。アドレス学習においては、現在の障害状態番号（最新障害状態番号）と異なる障害状態番号（旧障害状態番号）のエントリが存在していればそのエントリに対して新規のエントリを上書き登録するようにし、旧障害状態番号のエントリが存在しない場合に未使用のエントリ（宛先ＭＡＣアドレスや出力ポートが全く登録されていない領域）へ新規エントリを登録するようにすればよい。すなわち、旧障害状態番号の各エントリに対しては、どのような順番で上書き登録を行ってもよい。
【００４９】
このように、本実施の形態のリングノードは、リングネットワークでの障害発生の通知を受けるごとに、ＦＤＢ学習を行った時点のネットワーク状態を示す管理番号（障害状態番号）を更新することとし、また、一般フレームの受信に伴ってアドレス学習を行い、ＦＤＢを更新する場合（ＦＤＢへ新たなエントリを登録する、または登録済みのエントリを変更する場合）には、その時点の障害状態番号と、受信したフレームの送信元ＭＡＣアドレスとを検索キーとしてエントリへ登録することとした。これにより、出力ポート検索では、ＭＡＣアドレスおよび障害状態番号が一致している場合に受信フレームの出力ポート（転送先）が特定されるようになり、障害発生前に学習した出力ポートへフレームを転送することがなくなるので、障害発生時には、従来必要であったＦＤＢの全エントリを無効化する処理が不要となる。この結果、リングネットワークで障害が発生してからアドレス学習を再開するまでの所要時間が短縮化される。
【００５０】
実施の形態２．
実施の形態１では、障害発生の通知を受けると、ＦＤＢに登録されているすべてのエントリを無効化するリングノードについて説明したが、本実施の形態では、特定の出力ポートを持つＦＤＢエントリのみを無効化するリングノードについて説明する。なお、通信システムの構成は実施の形態１と同様であるものとする（図１参照）。
【００５１】
本実施の形態のリングノードでは、ＦＤＢの検索キーは従来どおり宛先ＭＡＣアドレスのみとし、ＦＤＢ検索によって出力される情報を障害状態番号と出力ポートとする（図１１参照）。図１１は、本実施の形態のリングノードが管理しているＦＤＢの構成例を示す図である。障害状態番号は、実施の形態１で示した障害状態番号と同じものである。本実施の形態においても先の実施の形態１と同様に、リングノード３００の動作例について説明する。
【００５２】
図１２は、本実施の形態のリングノード３００が備えるポート状態管理部で管理されている情報の構成例を示す図である。図示したように、リングノード３００のポート状態管理部３４０ａは、実施の形態１で示したポート状態管理部３４０（図３参照）で管理していたポート状態テーブル３４１および障害状態番号３４２に加えて、ＦＤＢフラッシュ要因ポート番号３４３を管理している。ＦＤＢフラッシュ要因ポート番号３４３は、障害通知フレームを受信したポートの番号である。
【００５３】
なお、本実施の形態のリングノード３００は、ポート状態管理部３４０ａ以外の部分は実施の形態１で説明したリングノードと同様である。
【００５４】
ポート状態管理部３４０ａは、リング管理処理部３３０からＦＤＢフラッシュ実行の指示を受けると、障害状態番号３４２の値を更新するとともに、ＦＤＢフラッシュの実行指示を受けた際に通知されたポートの番号（ＦＤＢフラッシュ要因ポート番号）を、ＦＤＢフラッシュ要因ポート番号３４３に格納する。
【００５５】
つづいて、本実施の形態のリングネットワーク１を構成している各リングノードがＦＤＢを更新する動作（アドレス学習動作）について説明する。
【００５６】
図１３は、本実施の形態のリングノードにおけるＦＤＢ更新手順の一例を示すフローチャートである。
【００５７】
（ＦＤＢに新規エントリを登録する場合の動作）
まず、ＦＤＢに新規エントリを登録する場合のアドレス学習動作について、図面を参照しながら説明する。ここでは、リングノード３００が全く何も学習していない状態（ＦＤＢ３５２にエントリが全く登録されていない状態）からアドレス学習を行う場合の動作例を説明する。なお、ポート状態管理部３４０の障害状態番号３４２には、障害状態番号として０が記憶されているものとする。
【００５８】
たとえば、リングノード５００に接続されたノード５０から送信され、リングノード５００により転送されたフレーム（一般フレーム）をポート３０２で受信すると、受信フレームはポート３０２に接続された入力フレーム処理部３１１に渡される（ステップＳ２１）。入力フレーム処理部３１１は、受け取ったフレームの送信元ＭＡＣアドレスであるノード５０のＭＡＣアドレスおよびこのフレームを受信したポート３０２を出力ポート検索処理部３５０へ通知してＦＤＢの更新を依頼する。ＦＤＢの更新依頼を受けた出力ポート検索処理部３５０では、ＦＤＢ制御部３５１が、通知されたＭＡＣアドレスを検索キーとしてＦＤＢ３５２を検索し、ＦＤＢにエントリがあるかどうかを確認する（ステップＳ２２，ステップＳ２３）。そして、この時点では、ＦＤＢ３５２は何も学習していない状態なので、ＦＤＢ制御部３５１は、ＦＤＢエントリなしと判断し（ステップＳ２３：Ｎｏ）、上記のＦＤＢの更新依頼で通知された情報および現在の障害状態番号に基づいて、ＦＤＢ３５２を更新する。具体的には、ＦＤＢ制御部３５１は、ＦＤＢの更新依頼で通知されたノード５０のＭＡＣアドレスを検索キーとし、また、この検索キーに対応する出力情報（障害状態番号および出力ポート）を、現在の障害状態番号０およびＦＤＢの更新依頼で通知されたポート３０２としたＦＤＢエントリをＦＤＢ３５２に新規登録する（ステップＳ２４）。
【００５９】
その他のリングノードから送信された一般フレームを受信した場合も同様に上記のステップＳ２１〜Ｓ２４を実行してＦＤＢを更新する。
【００６０】
（ＦＤＢに登録済みのエントリを更新する場合の動作）
次に、ＦＤＢに登録済みのエントリを更新する場合のアドレス学習動作について説明する。ここでは、（１）フレームを受信したポートとＦＤＢに登録されているエントリが示すポートが一致していない場合の更新動作、および（２）フレームを受信した時点の障害状態番号とＦＤＢに登録されている障害状態番号が一致していない場合の更新動作、について説明する。
【００６１】
（１）フレームを受信したポートとＦＤＢに登録されているエントリが示すポートが一致していない場合の更新動作
一例として、ノード５０のＭＡＣアドレスの出力ポートがポート３０１としてＦＤＢ３５２へ登録されている状態において、ノード５０が送信したフレームをポート３０２から受信したときの再学習動作を説明する。
【００６２】
リングノード５００に接続されたノード５０から送信され、リングノード５００により転送されたフレーム（一般フレーム）をポート３０２で受信すると、受信フレームはポート３０２に接続された入力フレーム処理部３１１に渡される（ステップＳ２１）。入力フレーム処理部３１１は、受け取ったフレームの送信元ＭＡＣアドレスであるノード５０のＭＡＣアドレスおよびこのフレームを受信したポート３０２を出力ポート検索処理部３５０へ通知してＦＤＢの更新を依頼する。ＦＤＢの更新依頼を受けた出力ポート検索処理部３５０では、ＦＤＢ制御部３５１が、通知されたＭＡＣアドレスを検索キーとしてＦＤＢ３５２を検索し、ＦＤＢにエントリがあるかどうかを確認する（ステップＳ２２，ステップＳ２３）。この場合、ＦＤＢ３５２には、ノード５０のＭＡＣアドレスを検索キーとしたエントリが存在しているので（ステップＳ２３：Ｙｅｓ）、ＦＤＢ制御部３５１は、検索したエントリに登録されている出力ポートと、上記のＦＤＢの更新依頼で通知されたポート３０２が一致しているかどうか確認する（ステップＳ２５）。確認の結果、一致していないので（ステップＳ２５：Ｎｏ）、ステップＳ２２で検索したエントリの出力ポートおよび障害状態番号をそれぞれ、ＦＤＢの更新依頼で通知されたポート３０２および現在の障害状態番号０として、エントリを上書き登録する（ステップＳ２６）。
【００６３】
（２）フレームを受信した時点の障害状態番号とＦＤＢに登録されている障害状態番号が一致していない場合の更新動作
一例として、ノード５０のＭＡＣアドレスの出力ポートがポート３０２、これに対応する状態番号が０としてＦＤＢ３５２へ登録されている状態において、ノード５０が送信したフレームをポート３０２から受信したときの再学習動作を説明する。なお、ポート状態管理部３４０の障害状態番号３４２には、障害状態番号として１が記憶されているものとする。
【００６４】
リングノード５００に接続されたノード５０から送信され、リングノード５００により転送されたフレーム（一般フレーム）をポート３０２で受信すると、受信フレームはポート３０２に接続された入力フレーム処理部３１１に渡される（ステップＳ２１）。入力フレーム処理部３１１は、受け取ったフレームの送信元ＭＡＣアドレスであるノード５０のＭＡＣアドレスおよびこのフレームを受信したポート３０２を出力ポート検索処理部３５０へ通知してＦＤＢの更新を依頼する。ＦＤＢの更新依頼を受けた出力ポート検索処理部３５０では、ＦＤＢ制御部３５１が、通知されたＭＡＣアドレスを検索キーとしてＦＤＢ３５２を検索し、ＦＤＢにエントリがあるかどうかを確認する（ステップＳ２２，ステップＳ２３）。この場合、ＦＤＢ３５２には、ノード５０のＭＡＣアドレスを検索キーとしたエントリが存在しているので（ステップＳ２３：Ｙｅｓ）、ＦＤＢ制御部３５１は、検索したエントリに登録されている出力ポートと、上記のＦＤＢの更新依頼で通知されたポート３０２が一致しているかどうか確認する（ステップＳ２５）。ここでは、確認の結果、一致していると判断し（ステップＳ２５：Ｙｅｓ）、さらに、検索したエントリに登録されている障害状態番号が現在の障害状態番号（障害状態番号３４２に記憶されている障害状態番号）が一致しているかどうか確認する（ステップＳ２７）。そして、確認の結果一致していないので（ステップＳ２７：Ｎｏ）、ステップＳ２２で検索したエントリの出力ポートおよび障害状態番号をそれぞれ、ＦＤＢの更新依頼で通知されたポート３０２および現在の障害状態番号０として、エントリを上書き登録する（ステップＳ２６）。ちなみに、上記の検索したエントリに登録されている障害状態番号および出力ポートと、現在の障害状態番号およびＦＤＢの更新依頼で通知されたポートが一致している場合には（ステップＳ２７：Ｙｅｓ）、ＦＤＢ３５２を更新せずに処理を終了する。
【００６５】
つづいて、本実施の形態のリングネットワーク１で障害が発生した場合の各リングノードの動作について説明する。ここでは、先の実施の形態１での説明と同様に、リングノード４００と５００との間のリンクで障害が発生した場合（図７参照）のリングノード３００の動作例について説明する。なお、障害発生時において、ポート状態管理部３４０の障害状態番号３４２には、障害状態番号として０が記憶されているものとする。
【００６６】
リングノード４００および５００は、リンクの障害を検出すると、その旨を示す障害通知フレームを送信する。
【００６７】
その結果、リングノード３００は、リングノード４００から送信された障害検知フレームを受信する。この場合、リングノード３００では、入出力処理部３１０およびスイッチング処理部３２０が、この障害通知フレームをリングノード２００と接続しているリンクに転送する。また、この障害通知フレームは、入出力処理部３１０からリング管理処理部３３０へ転送される。
【００６８】
リング管理処理部３３０は、上記転送された障害通知フレームを受け取ると、その内容を確認し、障害通知フレームが送信されてきたリンクを収容しているポートであるポート３０２を出力ポートとするＦＤＢエントリを無効化する必要があると判断する。そして、ポート状態管理部３４０ａと出力ポート検索処理部３５０に対し、ポート３０２を通知するとともにＦＤＢフラッシュ実行を指示する。
【００６９】
ＦＤＢフラッシュ実行指示を受けたポート状態管理部３４０は、障害状態番号３４２を更新する。ここでは、障害状態番号３４２を０から１に更新する。ポート状態管理部３４０は、さらに、ＦＤＢフラッシュ要因ポート番号３４３に、通知されてきたポート３０２の識別情報（ポート番号）を格納する。
【００７０】
つづいて、本実施の形態のリングノードではＦＤＢの全エントリ無効化が不要である理由について、具体例を示して説明する。
【００７１】
ここでは、リングノード３００のＦＤＢ３５２が図１１に示した状態であり、この状態で、上記のリングノード４００と５００の間のリンクにおける障害発生通知を受け、その後、ポート３０３がリングノード５００に接続されたノード５０宛のフレームを受信した場合に実行する動作（フレーム転送動作）について、図１４に示したフローチャートを用いて説明する。図１４は、障害発生通知を受けた後に実施するフレーム転送手順を示したフローチャートである。なお、ポート状態管理部３４０の障害状態番号３４２には、障害状態番号として１が記憶されている（障害発生通知に伴って０から１に更新された）ものとする。
【００７２】
また、図１４に示したフレーム転送手順を、（Ａ）ＦＤＢ３５２に受信フレームの宛先ＭＡＣアドレスに該当するエントリがない場合、（Ｂ）ＦＤＢ３５２に受信フレームの宛先ＭＡＣアドレスに該当するエントリがあり、得られたエントリの障害状態番号が障害状態番号３４２に記憶されている値と等しい場合、（Ｃ）ＦＤＢ３５２に受信フレームの宛先ＭＡＣアドレスに該当するエントリがあり、得られたエントリの障害状態番号が障害状態番号３４２に記憶されている値と異なり、得られたエントリの出力ポートがＦＤＢフラッシュ要因ポート番号３４３と異なる場合、（Ｄ）ＦＤＢ３５２に受信フレームの宛先ＭＡＣアドレスに該当するエントリがあり、得られたエントリの障害状態番号が障害状態番号３４２に記憶されている値と異なり、得られたエントリの出力ポートがＦＤＢフラッシュ要因ポート番号３４３と等しい場合、に分けて説明する。
【００７３】
（Ａ）ＦＤＢ３５２に受信フレームの宛先ＭＡＣアドレスに該当するエントリがない場合のフレーム転送
【００７４】
リングノード３００は、たとえば、ノード５０宛のフレームをポート３０３で受信すると（ステップＳ３１）、ノード５０のＭＡＣアドレスを検索キーとしてＦＤＢ３５２を検索するように、入出力処理部３１０は出力ポート検索処理部３５０に依頼（出力ポートの検索依頼）を行う。出力ポートの検索依頼を受けた出力ポート検索処理部３５０では、ＦＤＢ制御部３５１が、依頼時に通知されたノード５０のＭＡＣアドレスを検索キーとしてＦＤＢ３５２を検索し、依頼内容に対応するエントリが存在するかどうか確認する（ステップＳ３２，Ｓ３３）。そして、ここでは、ＦＤＢ制御部３５１は、該当エントリなしと判断し（ステップＳ３３：Ｎｏ）、その旨を入出力処理部３１０へ通知する。該当エントリなしの通知を受けた入出力処理部３１０は、受信フレームをコピーし、このフレームを受信したポート３０３以外のポートに転送（フラッディング）するようにスイッチング処理部３２０へ依頼し、スイッチング処理部３２０は、依頼内容に従って、ポート３０３で受信した上記のフレームをフラッディングする（ステップＳ３４）。
【００７５】
（Ｂ）ＦＤＢ３５２に受信フレームの宛先ＭＡＣアドレスに該当するエントリがあり、得られたエントリの障害状態番号が障害状態番号３４２に記憶されている値と等しい場合のフレーム転送
【００７６】
リングノード３００は、たとえば、ノード５０宛のフレームをポート３０３で受信すると（ステップＳ３１）、ノード５０のＭＡＣアドレスを検索キーとしてＦＤＢ３５２を検索するように、入出力処理部３１０は出力ポート検索処理部３５０に依頼（出力ポートの検索依頼）を行う。出力ポートの検索依頼を受けた出力ポート検索処理部３５０では、ＦＤＢ制御部３５１が、依頼時に通知されたノード５０のＭＡＣアドレスを検索キーとしてＦＤＢ３５２を検索し、依頼内容に対応するエントリが存在するかどうか確認する（ステップＳ３２，Ｓ３３）。そして、ここでは、ＦＤＢ制御部３５１は、検索キーに対応するエントリを取得し（ステップＳ３３：Ｙｅｓ）、さらに、エントリに登録されている障害状態番号が最新かどうか確認する。すなわち、登録されている障害状態番号が障害状態番号３４２に記憶されている障害状態番号と一致しているかどうか確認する（ステップＳ３５）。そして、ここでは、上記取得したエントリの障害状態番号が最新であると判断し（ステップＳ３５：Ｙｅｓ）、ＦＤＢ制御部３５１は、このエントリに登録されている出力ポートを入出力処理部３１０へ通知する。この通知を受けた入出力処理部３１０は、通知された出力ポートに受信フレームを転送するようにスイッチング処理部３２０へ依頼し、スイッチング処理部３２０は受信フレームを転送する（ステップＳ３８）。
（Ｃ）ＦＤＢ３５２に受信フレームの宛先ＭＡＣアドレスに該当するエントリがあり、得られたエントリの障害状態番号が障害状態番号３４２に記憶されている値と異なり、得られたエントリの出力ポートがＦＤＢフラッシュ要因ポート番号３４３と異なる場合のフレーム転送
これは、出力ポート検索で得られたエントリは障害発生前に学習されているものであるが、障害による経路変更を必要としない宛先のエントリであるときの動作である。
【００７７】
リングノード３００は、たとえば、ノード５０宛のフレームをポート３０３で受信すると（ステップＳ３１）、ノード５０のＭＡＣアドレスを検索キーとしてＦＤＢ３５２を検索するように、入出力処理部３１０は出力ポート検索処理部３５０に依頼（出力ポートの検索依頼）を行う。出力ポートの検索依頼を受けた出力ポート検索処理部３５０では、ＦＤＢ制御部３５１が、依頼時に通知されたノード５０のＭＡＣアドレスを検索キーとしてＦＤＢ３５２を検索し、依頼内容に対応するエントリが存在するかどうか確認する（ステップＳ３２，Ｓ３３）。そして、ここでは、ＦＤＢ制御部３５１は、検索キーに対応するエントリを取得し（ステップＳ３３：Ｙｅｓ）、さらに、エントリに登録されている障害状態番号が最新かどうか確認する。すなわち、登録されている障害状態番号が障害状態番号３４２に記憶されている障害状態番号と一致しているかどうか確認する（ステップＳ３５）。そして、上記取得したエントリの障害状態番号が最新ではないと判断し（ステップＳ３５：Ｎｏ）、さらに、上記取得したエントリに登録されている出力ポート番号がＦＤＢフラッシュ要因ポート番号に該当するかどうか確認する（ステップＳ３６）。すなわち、ＦＤＢ制御部３５１は、エントリに登録されている出力ポート番号がポート状態管理３４０ａのＦＤＢフラッシュ要因ポート番号３４３の値と一致するかどうかを確認し、この場合は一致していないのでＦＤＢフラッシュ要因ポート番号に該当しないと判断し（ステップＳ３６：Ｎｏ）、上記取得したエントリに登録されている障害状態番号をポート状態管理３４０ａの障害状態番号３４２の値に更新し、更新後のエントリを上書き登録する（ステップＳ３７）。また、ＦＤＢ制御部３５１は、このエントリに登録されている出力ポートを入出力処理部３１０へ通知する。この通知を受けた入出力処理部３１０は、通知された出力ポートに受信フレームを転送するようにスイッチング処理部３２０へ依頼し、スイッチング処理部３２０は受信フレームを転送する（ステップＳ３８）。
【００７８】
（Ｄ）ＦＤＢ３５２に受信フレームの宛先ＭＡＣアドレスに該当するエントリがあり、得られたエントリの障害状態番号が障害状態番号３４２に記憶されている値と異なり、得られたエントリの出力ポートがＦＤＢフラッシュ要因ポート番号３４３と等しい場合のフレーム転送
これは、出力ポート検索で得られたエントリが障害発生前に学習されているものであり、さらに障害による経路変更を必要とする宛先のエントリであるときの動作である。
【００７９】
リングノード３００は、たとえば、ノード５０宛のフレームをポート３０３で受信すると（ステップＳ３１）、ノード５０のＭＡＣアドレスを検索キーとしてＦＤＢ３５２を検索するように、入出力処理部３１０は出力ポート検索処理部３５０に依頼（出力ポートの検索依頼）を行う。出力ポートの検索依頼を受けた出力ポート検索処理部３５０では、ＦＤＢ制御部３５１が、依頼時に通知されたノード５０のＭＡＣアドレスを検索キーとしてＦＤＢ３５２を検索し、依頼内容に対応するエントリが存在するかどうか確認する（ステップＳ３２，Ｓ３３）。そして、ここでは、ＦＤＢ制御部３５１は、検索キーに対応するエントリを取得し（ステップＳ３３：Ｙｅｓ）、さらに、エントリに登録されている障害状態番号が最新かどうか確認する。すなわち、登録されている障害状態番号が障害状態番号３４２に記憶されている障害状態番号と一致しているかどうか確認する（ステップＳ３５）。そして、上記取得したエントリの障害状態番号が最新ではないと判断し（ステップＳ３５：Ｎｏ）、さらに、上記取得したエントリに登録されている出力ポート番号がＦＤＢフラッシュ要因ポート番号に該当するかどうか確認する（ステップＳ３６）。そして、ＦＤＢフラッシュ要因ポート番号に該当すると判断し（ステップＳ３６：Ｙｅｓ）、ＦＤＢ制御部３５１は、このエントリを無効化する（ステップＳ３９）。無効化の方法については特に規定しない。エントリの検索キーおよび出力情報をすべて消去してもよいし検索キーのみを消去してもよい。また、無効化したことを示すフラグ（空きエントリを示すフラグ）を用意しておき、このフラグをたてるようにしてもよい。その他、どのような方法で無効化を行ってもよい。エントリの無効化を行った後、ＦＤＢ制御部３５１は、該当エントリなし（該当する出力ポート不明）を入出力処理部３１０へ通知する。該当エントリなしの通知を受けた入出力処理部３１０は、受信フレームをコピーし、このフレームを受信したポート３０３以外のポートに転送（フラッディング）するようにスイッチング処理部３２０へ依頼し、スイッチング処理部３２０は、依頼内容に従って、ポート３０２で受信した上記のフレームをフラッディングする（ステップＳ３４）。
【００８０】
このように、本実施の形態のリングノードは、リングネットワークでの障害発生の通知を受けるごとに、ＦＤＢ学習を行った時点のネットワーク状態を示す管理番号（障害状態番号）を更新し、さらに障害発生を通知してきたフレーム（障害通知フレーム）の受信ポートをＦＤＢフラッシュ要因ポートとして記憶し、また、一般フレームの受信に伴ってアドレス学習を行い、ＦＤＢを更新する場合には、受信したフレームの送信元ＭＡＣアドレスを検索キーとし、その時点の障害状態番号およびフレームの受信ポートを出力情報としてエントリへ登録することとした。そして、フレームを転送する際の出力ポート検索では、検索キーに対応するエントリに登録されている障害状態番号が最新の値ではなく、なおかつこのエントリに登録されている出力ポートがＦＤＢフラッシュ要因ポートに該当する場合に、このエントリを無効化することとした。これにより、従来必要であったＦＤＢの全エントリを無効化する処理を不要とし、真に必要な宛先のＦＤＢエントリのみを無効化することができる。この結果、リングネットワークで障害が発生した場合に、アドレス学習を迅速に再開することができるとともに、障害による経路切り替えに影響されない経路のノードへの無駄なフラッディング動作を不要にすることができる。
【００８１】
なお、本実施の形態では、特定のポートに出力するエントリのみ無効化の対象とする手法について説明したが、ネットワーク障害によっては、全てのエントリの無効化が必要な場合もある。よって、ＦＤＢフラッシュ要因ポートとして全ポートを示す特別な値を定義しておき、全てのエントリの無効化が必要な場合には、ＦＤＢフラッシュ要因ポート番号３４３にその値を記憶させるようにしてもよい。
【００８２】
また、実施の形態１および２ではリングネットワークのノードとして動作する通信装置について説明したが、本発明にかかる通信装置は、ネットワークでの障害発生に伴ってそれまでのアドレス学習結果を無効化して新たにアドレス学習を行うように各ノードが動作するネットワークであれば、リング型以外のトポロジーを採用したネットワークにも適用可能である。
【産業上の利用可能性】
【００８３】
以上のように、本発明にかかる通信装置は、ネットワークを構成し、アドレス学習結果に従って受信フレームを転送するノード装置に有用であり、特に、障害発生後のアドレス学習を短時間で再開するノード装置に適している。
【符号の説明】
【００８４】
１  リングネットワーク
１０，２０，３０，４０，５０，６０  ノード
１００，２００，３００，４００，５００，６００  リングノード
３０１，３０２，３０３  ポート
３０１−１  入力ポート
３０１−２  出力ポート
３１０  入出力処理部
３１１  入力フレーム処理部
３１２  出力フレーム処理部
３２０  スイッチング処理部
３３０  リング管理処理部
３４０，３４０ａ  ポート状態管理部
３４１  ポート状態テーブル
３４２  障害状態番号
３４３  ＦＤＢフラッシュ要因ポート番号
３５０  出力ポート検索処理部
３５１  ＦＤＢ制御部
３５２  ＦＤＢ
【図１】
2011104847.tif 000003
【図２】
2011104847.tif 000004
【図３】
2011104847.tif 000005
【図４】
2011104847.tif 000006
【図５】
2011104847.tif 000007
【図６】
2011104847.tif 000008
【図７】
2011104847.tif 000009
【図８】
2011104847.tif 000010
【図９】
2011104847.tif 000011
【図１０】
2011104847.tif 000012
【図１１】
2011104847.tif 000013
【図１２】
2011104847.tif 000014
【図１３】
2011104847.tif 000015
【図１４】
2011104847.tif 000016
【手続補正書】
【提出日】平成24年7月2日(2012.7.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ネットワークのノードとして動作する通信装置であって、
ネットワーク内での障害発生を検出するごとに、ネットワークの状態を示す状態情報を更新する状態管理手段と、
受信フレームの送信元アドレスおよび受信ポートと、前記状態管理手段で管理されている状態情報とに基づいて、当該送信元アドレスを宛先アドレスとしたフレームを受信した場合の出力ポートを決定するためのデータベースを更新するデータベース更新手段と、
受信フレームの宛先アドレスおよび前記状態管理手段で管理されている状態情報を検索キーとして前記データベースを検索することにより、受信フレームの出力ポートを決定する出力先決定手段と、
を備えることを特徴とする通信装置。
【請求項２】
前記データベース更新手段は、
前記送信元アドレスおよび前記状態情報を検索キーとし、前記受信ポートを出力情報としたエントリを作成して前記データベースへ登録する
ことを特徴とする請求項１に記載の通信装置。
【請求項３】
前記データベース更新手段は、
受信フレームの送信元アドレスおよび前記状態管理手段で管理されている状態情報を検索キーとするエントリが前記データベースに登録されていない場合、当該送信元アドレスおよび当該状態情報を検索キーとし、前記受信ポートを出力情報としたエントリを作成して前記データベースへ登録する
ことを特徴とする請求項１に記載の通信装置。
【請求項４】
前記データベース更新手段は、
受信フレームの送信元アドレスおよび前記状態管理手段で管理されている状態情報を検索キーとするエントリが前記データベースに登録されているが、その出力情報が前記受信ポートを示していない場合、当該エントリの出力情報が前記受信ポートを示すように、当該エントリを変更する
ことを特徴とする請求項１または３に記載の通信装置。
【請求項５】
ネットワークのノードとして動作する通信装置であって、
ネットワーク内での障害発生を検出するごとに、ネットワークの状態を示す状態情報を更新し、さらに、障害が発生しているポート、または障害発生を通知するフレームを受信したポートを無効ポートとして記憶する状態管理手段と、
受信フレームの送信元アドレスおよび受信ポートと、前記状態管理手段で管理されている状態情報とに基づいて、当該送信元アドレスを宛先アドレスとしたフレームを受信した場合の出力ポートを決定するためのデータベースを更新するデータベース更新手段と、
受信フレームの宛先アドレスを検索キーとして前記データベースを検索し、得られた検索結果と、前記状態管理手段で記憶されている無効ポートとに基づいて、受信フレームの出力ポートを決定する出力先決定手段と、
を備えることを特徴とする通信装置。
【請求項６】
前記データベース更新手段は、
前記送信元アドレスを検索キーとし、前記状態情報および前記受信ポートを出力情報としたエントリを作成して前記データベースへ登録する
ことを特徴とする請求項５に記載の通信装置。
【請求項７】
前記データベース更新手段は、
受信フレームの送信元アドレスを検索キーとするエントリが前記データベースに登録されているが、その出力情報が前記受信ポートとは異なるポートを示している、または当該出力情報が前記状態管理手段で管理されている状態情報とは異なる状態情報を含んでいる場合、当該エントリの出力情報が前記受信ポートを示しなおかつ前記状態管理手段で管理されている状態情報と同一の状態情報を含むように、当該エントリを変更する
ことを特徴とする請求項５または６に記載の通信装置。
【請求項８】
前記出力先決定手段は、
前記検索結果に含まれる状態情報が前記状態管理手段で管理されている状態情報とは異なり、なおかつ当該検索結果が示す出力ポートが前記状態管理手段で記憶されている無効ポートに該当する場合、当該検索結果に対応する前記データベース内のエントリを無効化する
ことを特徴とする請求項５、６または７に記載の通信装置。
【請求項９】
前記出力先決定手段は、
前記検索結果に含まれる状態情報が前記状態管理手段で管理されている状態情報とは異なり、なおかつ当該検索結果が示す出力ポートが前記状態管理手段で記憶されている無効ポートとは異なる場合、当該検索結果に対応するデータベース内のエントリが前記状態管理手段で管理されている状態情報と同一の管理情報を含むように、当該エントリを更新する
ことを特徴とする請求項５、６または７に記載の通信装置。
【請求項１０】
前記出力先決定手段は、
前記受信フレームの出力先を前記検索結果が示す出力ポートに決定する
ことを特徴とする請求項９に記載の通信装置。
【請求項１１】
リングネットワークを構成する
ことを特徴とする請求項１〜１０のいずれか一つに記載の通信装置。
【請求項１２】
ネットワークのノードとして動作する通信装置が、フレームを受信した場合の出力ポートを決定するためのデータベースを更新する場合に実行するアドレス学習方法であって、
ネットワーク内での障害発生を検出するごとに、ネットワークの状態を示す状態情報を更新する状態情報更新ステップと、
受信フレームの送信元アドレスおよび受信ポートと、前記状態情報とに基づいて、前記データベースに新規エントリを登録する必要があるかどうか確認し、必要な場合には、当該送信元アドレスおよび当該状態情報を検索キーとし、当該受信ポートを出力情報としたエントリを作成して前記データベースへ登録するエントリ登録ステップと、
を含むことを特徴とするアドレス学習方法。
【請求項１３】
前記エントリ登録ステップでは、最新の状態情報とは異なる状態情報を有するエントリがデータベースに登録されている場合、当該既存エントリに対して前記作成したエントリを上書き登録する
ことを特徴とする請求項１２に記載のアドレス学習方法。
【請求項１４】
受信フレームの送信元アドレスおよび前記状態情報を検索キーとしたエントリが前記データベースに登録されているかどうか確認し、登録されている場合、さらに、当該エントリの出力情報が前記受信フレームの受信ポートを示しているかどうか確認し、示していなければ、出力情報が前記受信フレームの受信ポートを示すように、当該エントリを変更する登録済みエントリ変更ステップ、
をさらに含むことを特徴とする請求項１２または１３に記載のアドレス学習方法。
【請求項１５】
ネットワークのノードとして動作する通信装置が、フレームを受信した場合の出力ポートを決定するためのデータベースを更新する場合に実行するアドレス学習方法であって、
ネットワーク内での障害発生を検出するごとに、ネットワークの状態を示す状態情報を更新し、さらに、障害が発生しているポート、または障害発生を通知するフレームを受信したポートを無効ポートとして記憶する管理情報更新ステップと、
受信フレームの送信元アドレスおよび受信ポートと、前記状態情報とに基づいて、前記データベースに新規エントリを登録する必要があるかどうか確認し、必要な場合、当該送信元アドレスを検索キーとし、当該状態情報および当該受信ポートを出力情報としたエントリを作成して前記データベースへ登録するエントリ登録ステップと、
を含むことを特徴とするアドレス学習方法。
【請求項１６】
受信フレームの送信元アドレスを検索キーとしたエントリが前記データベースに登録されているが、その出力情報が当該受信フレームの受信ポートとは異なるポートを示している、または当該出力情報が最新の状態情報とは異なる状態情報を含んでいる場合には、当該エントリの出力情報が当該受信ポートを示しなおかつ最新の状態情報と同一の状態情報を含むように、当該エントリを変更するエントリ変更ステップ、
をさらに含むことを特徴とする請求項１５に記載のアドレス学習方法。
【請求項１７】
出力ポートを決定するためのデータベース検索を実行し、その結果、受信フレームの宛先アドレスに対応するエントリが前記データベースに登録されているが、その出力情報に含まれる状態情報が最新の状態情報とは異なり、なおかつ当該出力情報が示す出力ポートが前記無効ポートに該当することを検出した場合、当該エントリを無効化するエントリ無効化ステップ、
をさらに含むことを特徴とする請求項１５または１６に記載のアドレス学習方法。
【請求項１８】
出力ポートを決定するためのデータベース検索を実行し、その結果、受信フレームの宛先アドレスに対応するエントリが前記データベースに登録されているが、その出力情報に含まれる状態情報が最新の状態情報とは異なり、なおかつ当該出力情報が示す出力ポートが前記無効ポートとは異なることを検出した場合、当該エントリの出力情報が最新の状態情報を含むように、当該エントリを変更するエントリ更新ステップ、
をさらに含むことを特徴とする請求項１５、１６または１７に記載のアドレス学習方法。
【国際調査報告】
2011104847.tif 000017
2011104847.tif 000018