(57)【要約】【課題】リング状パケットネットワークにおける障害発生、障害復旧時のＦＤＢクリアによる輻輳を回避し、通信断時間を最小限とする。【解決手段】ＦＤＢの各エントリに、リング外にパケットを送出するノードまでのホップ数を記録しておき、障害発生時、障害区間までのホップ数を示す障害通知パケットを受信することにより、障害区間を特定し、障害区間を通過する設定のエントリについて、その送出先ポートを書換え、障害区間への転送を回避する。【選択図】        図９
2006270169.tif 000002
【特許請求の範囲】
【請求項１】
パケットを送受信する複数のポートを備え、受信パケットに含まれるアドレスと、該アドレスを宛先として有するパケットを送信すべきポートの識別子との対応を示す送信ポートデータベースに基づいて受信パケットを送信する、リング状ネットワークを構成する中継装置において、
障害を検出した中継装置が送信する障害通知パケットの受信を検出する制御パケット処理部と、
隣接する一方の中継装置から前記障害通知パケットを受信すると、前記障害通知パケットを受信したポートのポート識別子を送信先として有する前記送信ポートデータベースのポート識別子を、隣接する他方の中継装置と接続されたポートのポート識別子に書換える制御部と、
を有することを特徴とする中継装置。
【請求項２】
請求項１に記載の中継装置であって、
前記送信ポートデータベースは、更に、該アドレスを宛先として有するパケットが該リング状ネットワーク外に送出されるまでに経由する中継装置数を示すホップ数との対応を示し、
前記制御パケット処理部は、前記障害通知パケットを受信すると、前記障害通知パケットに含まれる障害区間から自中継装置に至るまでに経由する中継装置数を示す障害区間ホップ数を抽出して前記制御部に通知し、
前記制御部は、隣接する一方の中継装置から前記障害通知パケットを受信すると、前記障害通知パケットを受信したポートのポート識別子を送信先として有する前記送信ポートデータベースのポート識別子を、対応するホップ数が前記障害区間ホップ数を超えるものについて、隣接する他方の中継装置と接続されたポートのポート識別子に書換え、対応するホップ数を全中継装置数から前記送信ポートデータベースに書き込まれていたホップ数を減算した値に書換える
ことを特徴とする中継装置。
【請求項３】
パケットを送受信する複数のポートを備え、リング状ネットワークを構成する中継装置であって、
受信パケットに含まれるアドレスと、該アドレスを宛先として有するパケットを送信すべきポートの識別子と、該アドレスを宛先として有するパケットが該リング状ネットワーク外に送出されるまでに経由する中継装置数を示すホップ数との対応を示す送信ポートデータベースと、
受信したパケットの送信先ポートを前記送信ポートデータベースに基づいて決定し、決定したポートから送出するパケット処理部と、
障害を検出した中継装置が送信する障害通知パケットの受信を検出し、該障害通知パケットに含まれる、障害区間から自中継装置に至るまでに経由する中継装置数を示す障害区間ホップ数を抽出して制御部に通知する制御パケット処理部と、
障害通知パケットを受信したポートの識別子と、前記送信ポートデータベースの該ポート識別子に対応するホップ数と、前記抽出された障害区間ホップ数とに基づいて、前記送信ポートデータベースのポート識別子と、対応するホップ数とを書換える制御部と、
を有することを特徴とする中継装置。
【請求項４】
請求項３に記載の中継装置であって、
隣接する中継装置との通信障害の発生を検出して前記制御部に通知するポート監視制御部をさらに備え、
前記制御部は、
前記通信障害の発生通知により、ホップ数フィールドを初期値に設定した障害通知パケットの送出指示を前記制御パケット処理部に出力し、
隣接する中継装置からの障害通知パケットの受信通知により、抽出した障害区間ホップ数に１を加えた値をホップ数フィールドに設定した障害通知パケットを次段の中継装置に転送する指示を前記制御パケット処理部に出力する
ことを特徴とする中継装置。
【請求項５】
請求項４に記載のパケット中継装置であって、
前記ポート監視制御部は、隣接するノードに接続された２つのポートが、フォワーディング状態とブロッキング状態のいずれの状態であるかを前記制御部に通知し、
前記制御部は、ブロッキング状態のポートがある場合、リングノード数フィールドと、初期値を設定したホップ数フィールドとを有する管理パケットの送出指示を制御パケット処理部に定期的に出力し、
前記制御パケット処理部は、
前記ブロッキング状態のポートがある場合、前記管理パケットを受信すると、該管理パケットの前記ホップ数フィールドの値をリングノード数として前記制御部に通知するとともに、前記リングノード数フィールドに前記リングノード数を設定した管理パケットを次の送信指示のタイミングで送出し、
前記ブロッキング状態のポートがない場合、前記管理パケットを受信すると、該管理パケットの前記リングノード数フィールドの値を前記制御部に通知するとともに、ホップ数フィールドの値に１を加えた値で前記ホップ数フィールドを書換え、次段の中継装置に転送する
ことを特徴とする中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、パケット伝送技術、特に、リング型トポロジーを有するパケットネットワークと、これを構成するパケット中継装置、およびパケット中継方法に関する。
【背景技術】
【０００２】
現在、サービスの提供に必要な基盤設備を自ら保有する通信事業者（いわゆるキャリアと言われる第一種電気通信事業者）などによって提供されている広域イーサネット（イーサネットは登録商標、以下同様）サービスでは、多数のレイヤ２スイッチ装置（以下L2SW装置と呼ぶ）が交換ノードとして接続される形でネットワークが構築されており、そのトポロジーも利用形態によって様々である。
【０００３】
構築するネットワークのトポロジーを決定するにあたっては、網全体の信頼性やコストが重要な要素となる。中でもリング型ネットワークはメッシュ型ネットワークよりは若干劣るもののその信頼性は高く、また網を構成するノード間の伝送路やノードの伝送路インターフェース部の必要量が少なく、経済的であるという理由から採用されるケースが多い。
【０００４】
リング型ネットワークでは、リングを構成する伝送路の一部に障害があった場合、フレーム（パケット）の転送経路を変更して通信を継続できる、という冗長機能により、その信頼性を確保している。
【０００５】
しかしながら単にL2SW装置をリング状に接続しただけではデータフレーム（ＭＡＣフレーム）の通る経路にループ経路を形成してしまうことになる。この状態でL2SW装置に入力したＭＡＣフレームがブロードキャストフレームであった場合、このフレームはノードを通過する毎に複数のフレームに増殖され、また、ループ上をこのフレームが周回することによって、ブロードキャストストームと呼ばれるトラフィック輻輳状態となり、リング上の正常なデータトラフィックを阻害し、最終的にネットワークをダウンさせる恐れがある。
【０００６】
このためリング状にL2SW装置を接続したときにループ経路が形成されないための仕組みが必要となる。また、リング上のノード間にリンク断などの障害が発生した場合に、データトラフィックが障害発生箇所を回避するような経路の切り替えを行い、迅速に通信を再開させることができなければ信頼性の高いネットワークとはいえない。
【０００７】
このようにリング型ネットワークにおいては、ループ経路や障害時の経路切換え、また障害に直接関係のないデータトラフィックへの影響について十分考慮する必要があり、課題が数多く存在する。
【０００８】
つぎに、イーサネットにおける従来のリング冗長方式について以下に述べる。
【０００９】
従来、ネットワークの信頼性にかかわる冗長方式については、ＳＯＮＥＴ（Synchronous Optical NETwork）またはＳＤＨ（Synchronous Digital Hierarchy）の各伝送方式においてはリング型ネットワークをベースとしたもの、イーサネットはスター型ネットワークをベースとしたものを中心に検討されていた。
【００１０】
しかし、低価格で実現可能なイーサネットでリング型ネットワークを構成したいという通信事業者向けに、広域イーサネットサービスに適した機能としてベンダが独自に開発した下記の方式が現在一般的なイーサネットサービスにおけるリング冗長方式として知られている。
【００１１】
図１３は従来のリング型ネットワークの冗長方式を説明する図である。
【００１２】
図１３において、L2SW装置であるノードＡ７１〜ノードＦ７６は、それぞれ伝送路２１〜２６によりリング状ネットワーク１０を構成している。例えば、ノードＡ７１〜ノードＢ７２間は、ノードＡ７１のポートＰ１とノードＢ７２のポートＰ２間が伝送路２１により接続されている。なお、ポートおよび伝送路は双方向の通信が可能であるよう構成されている。
【００１３】
また、各ノードのポートＰ３には、それぞれ端末装置３１〜３６が接続されており、これら端末装置のＭＡＣアドレスをそれぞれＸ、Ｙ、Ｚ、Ｕ、Ｖ、Ｗとする。なお、各ノードの端末接続用ポートであるポートＰ３はここでは簡略化のため各ノードに１つだけを示しているが、一般的には複数の端末を接続するために端末接続用ポートも複数備えている。
【００１４】
この構成において、ノードＡ７１〜ノードＦ７６のうちの一台を制御ノード（Master Node）として指定する。図１３はノードＡ７１が制御ノードと指定された場合である。この制御ノードはネットワークの管理者によって手動で設定されるものであり、リング伝送路に属する２つのポートＰ１、Ｐ２のうち一方をプライマリポート、他方をセカンダリポートと呼ぶ。図１３の例ではノードＡ７１のポートＰ１がプライマリポート、ポートＰ２がセカンダリポートである。
【００１５】
制御ノード以外のリング上のノードＢ７２〜Ｆ７６は中継ノード（Transit Node）と呼ばれ、通常時はリングに属するポートＰ１、Ｐ２はフレーム転送可能（Forwarding）状態にある。
【００１６】
制御ノードは自身のプライマリポートより数秒間隔でヘルスチェックパケットをリング上に送信し、中継ノードは受信したヘルスチェックパケットを隣のノードへ次々と転送していく。このヘルスチェックパケットがリング上を一周して制御ノードのセカンダリポートで受信されることにより制御ノードはリングが正常状態であることを認識する。
【００１７】
また制御ノードのセカンダリポートはＭＡＣフレームが出口のない閉ループ状態になることを回避するために、通常時はヘルスチェックパケットのみ受信可能で、その他のデータトラフィックは受信しないブロッキング（Blocking）状態となっている。以上がリングが正常状態であるときの動作である。
【００１８】
図１４は従来のリング型ネットワークの冗長方式を説明する図（２）である。
【００１９】
図１４に示すように、ノードＣ７３〜ノードＤ７４間で伝送路断等によってリンク障害が発生した場合を例に障害発生時の動作を以下に説明する。
【００２０】
リンク障害が発生すると制御ノードＡ７１から送信されたヘルスチェックパケットは、リング伝送路を周回できず、制御ノードＡ７１自身には戻らなくなる。またリンク障害を検知したノードＣ７３、ノードＤ７４は障害を検出したポートと反対側のポートから制御ノードに対して障害通知パケット（トラップパケット）を送出する。図１４の例では、ノードＣ７３はポートＰ２から、ノードＤ７４はポートＰ１から障害通知パケットを送出する。
【００２１】
制御ノードＡ７１は自身のプライマリポートＰ１、あるいはセカンダリポートＰ２において障害通知パケットを受信すると、ブロッキング状態にあったセカンダリポートをフォワーディング状態へと変化させる。これによりノードＣ７３からノードＤ７４までの通信経路は制御ノードＡ７１を介して確保され、全ノード間の通信が可能となる。
【００２２】
しかしこの時点ではリング上を転送されるフレームは、障害発生前に各ノードが保持していたＦＤＢ（Forwarding Data Base）に従ってスイッチングされるため、障害発生前にノードＣ７３〜ノードＤ７４間を通っていたフレームはそのまま障害区間に向けて転送されてしまい、結果として喪失されてしまう。つまりノードのＦＤＢがクリアされるまで通信断が継続することになる。
【００２３】
これを回避するため、制御ノードＡ７１はセカンダリポートＰ２をフォワーディング状態にした直後に全中継ノードに対して、ノードが保持するＦＤＢのクリアを指示するためのパケットであるＦＤＢフラッシュパケットを送信する。これにより、リング上の中継ノードの保持するＦＤＢを一度クリアすることにより、新たな通信経路が学習され通信が可能となる仕組みとなっている。
【００２４】
ネットワークの保守者等によって障害から復旧した時の動作に関して、障害区間であったノードＣ７３〜ノードＤ７４間のリンク障害が正常に戻った場合について以下に述べる。
【００２５】
障害復旧によりノードＣ７３〜ノードＤ７４間を制御ノードＡ７１からのヘルスチェックパケットが通過できるようになり、制御ノードＡ７１は自身のセカンダリポートＰ２でヘルスチェックパケットを受信でき、リングが正常な状態に戻ったことを認識する。その後、再び制御ノードＡ７１はセカンダリポートＰ２をフォワーディング状態からブロッキング状態へ変化させる。これにより、ノードＡ７１〜ノードＦ７６間の通信経路は通信遮断状態となり、前述したと同様の理由で各中継ノードでのＦＤＢクリアが必要となる。
【００２６】
そして、制御ノードＡ７１は、自身のポートＰ２をブロッキング状態にしたことを中継ノードに知らせるためと、ＦＤＢクリアを指示するためのパケットを全中継ノードに対して送信する。
【００２７】
以上の動作によりリング状ネットワークの信頼性を高める冗長方式となっている。しかしながら本冗長方式ではリング内に制御ノードが固定的に存在し、すべての動作は制御ノードからの何らかの制御パケットによって行われるため、リング状ネットワークを構成するノード数が増加するにしたがって通信断時間が長くなる等の問題が存在する。
【００２８】
なお、二重リングネットワークを構成するノードが、伝送路等の障害を回避するために、ヘルスチェックパケットの残存時間を用いて、送信または受信するリングを高速に切り替える技術が開示されている（例えば特許文献１参照）。
【特許文献１】特開２００３−２３４７４７号公報
【発明の開示】
【発明が解決しようとする課題】
【００２９】
前述した従来の冗長方式には以下の課題がある。
【００３０】
すなわち、従来の方式では、障害発生から通信が回復するまでの間に、リンク断等の障害を検出したノードが障害通知パケットを制御ノードに対して送信し、それを受けた制御ノードが自身のセカンダリポートをブロッキング状態からフォワーディング状態へ状態遷移させ、ＦＤＢフラッシュパケットをリング状ネットワークを構成する各中継ノードへ送信する。
【００３１】
そして、このＦＤＢフラッシュパケットを受信した各中継ノードは、保持していたＦＤＢをクリアすることにより、転送すべきフレームの転送経路を再学習して、その結果、フレームの転送経路が変更されて通信が再開される。
【００３２】
このように通信が再開されるまでに何段階もの手順を踏む必要があり、当然ながら手順が多くなればその分通信断時間は長くなる。また、フレームの転送経路を変更するために各ノードのＦＤＢクリアを必要とするが、リング上の全ノードのＦＤＢを一斉にクリアすると、瞬間的に大量のフラッディングが発生することになる。
【００３３】
これは、ＦＤＢをクリアした各ノードの次に述べる動作によるものである。
【００３４】
例えば、図１３において、端末３１が端末３６にデータを伝送するとき、端末３１が送信するフレームには、送信元アドレス（ＳＡ：Source Address）であるＸと、宛先アドレス（ＤＡ：Destination Address）であるＷとが含まれている。
【００３５】
このフレームをポートＰ３から受信したノードＡ７１は、まず、ＳＡ：ＸとポートＰ３とを対応付けてＦＤＢに登録する。また、このフレームを送出すべきポートを決定するために、ＤＡを検索キーとしてＦＤＢを検索し、ヒットすれば、対応するポートにこのフレームを転送する。
【００３６】
ヒットしなければ、受信したポート（この場合ポートＰ３）以外の全ポート（ポートＰ１、Ｐ２）にこのフレームを転送する。この動作がフラッディングである。
【００３７】
ノードＡ７１のフラッディングにより、各ノードはこのフレームを受信する。
【００３８】
そして、各ノードは前記と同様に、ＳＡ：Ｘと受信したポートとを対応付けてＦＤＢに登録する。また、このフレームを送出すべきポートを決定するために、ＤＡを検索キーとしてＦＤＢを検索し、ヒットすれば、対応するポートにこのフレームを転送する。
【００３９】
ヒットしなければ、受信したポート以外の全ポートにこのフレームを転送する。ここでは、ＤＡ：Ｗの端末３６が接続されているノードＦ７６のＦＤＢにおいてもヒットしない場合を想定する。これは、ＦＤＢクリアや、ＳＡ：Ｗのフレームが一定時間受信されないことにより、ＦＤＢにおいてアドレスＷを有するエントリがないことを意味する。
【００４０】
このとき、例えばノードＢ７２では、このフレームをポートＰ２から受信し、ポートＰ１、Ｐ３に転送する。また、ノードＦ７６では、このフレームをポートＰ２から受信し、ポートＰ１、Ｐ３に転送する。ノードＦ７６のポートＰ３から送出されたフレームは端末３６で受信され、ＤＡが自端末のアドレスであることから、このフレームを受信する。
【００４１】
この一連の動作によって、各ノードのＦＤＢにはアドレスＸのエントリが登録され、このアドレスに対応するポートは、それぞれ、ノードＡ７１：Ｐ３、ノードＢ７２：Ｐ２、ノードＣ７３：Ｐ２、ノードＤ７４：Ｐ２、ノードＥ７５：Ｐ２、ノードＦ７６：Ｐ２となる。この動作をＦＤＢがＭＡＣアドレスを学習すると言う。
【００４２】
この状態で、例えばノードＦ７６に接続された端末３６から端末３１にＤＡ：Ｘのフレームを送信すると、これを受信したノードＦ７６は、Ｘを検索キーとしてＦＤＢを検索し、対応するポートＰ２が得られ、このポートにフレームを転送する。以下同様にして各ノード間で転送され、ノードＡ７１のポート１でこのフレームが受信されると、ＦＤＢ検索によりアドレスＸに対応するポート３に出力され、端末３１にこのフレームが転送される。このようにフレームが転送されると同時に、この一連の転送処理によって各ノードのＦＤＢは、送信元である端末装置Ｗ３６のアドレスＷとそれを受信したポートの対応を学習し、アドレスＷについてのエントリを生成する。
【００４３】
以上述べたように、ＦＤＢにエントリがないときにはフラッディングが生じてトラフィックが増大する。特にＦＤＢがクリアされた後、すなわち、ＦＤＢの全エントリが消去された後は、ノードに接続された端末数、クリアされたノード数に応じてトラフィックの増大が顕著になることは明らかで、この急激なトラフィックの増加が回線容量を圧迫し、障害に直接関係のないユーザのデータトラフィックに影響を与えてしまう、という課題がある。
【００４４】
また、従来のリング冗長方式では中心的役割を果たす制御ノードが固定的に設定されているため、障害復旧時においてもＦＤＢクリアが必要であり、本来は起こるべきではないパケットロスや、フラッディングに伴うネットワークの輻輳が発生してしまう、という課題がある。
【００４５】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、リング状パケットネットワークにおける障害発生時、障害復旧時の輻輳やパケットロスを最小限に留める技術を提供することを目的とする。
【課題を解決するための手段】
【００４６】
上記の目的を達成するため、本発明に係る中継装置の１つの態様は、パケットを送受信する複数のポートを備え、受信パケットに含まれるアドレスと、該アドレスを宛先として有するパケットを送信すべきポートの識別子との対応を示す送信ポートデータベースに基づいて受信パケットを送信する、リング状ネットワークを構成する中継装置において、障害を検出した中継装置が送信する障害通知パケットの受信を検出する制御パケット処理部と、隣接する一方の中継装置から前記障害通知パケットを受信すると、前記障害通知パケットを受信したポートのポート識別子を送信先として有する前記送信ポートデータベースのポート識別子を、隣接する他方の中継装置と接続されたポートのポート識別子に書換える制御部と、を有することを特徴とする。
【００４７】
また、この中継装置は、送信ポートデータベースが、更に、該アドレスを宛先として有するパケットがリング状ネットワーク外に送出されるまでに経由する中継装置数を示すホップ数との対応を示すように構成し、制御パケット処理部が、前記障害通知パケットを受信すると、前記障害通知パケットに含まれる障害区間から自中継装置に至るまでに経由する中継装置数を示す障害区間ホップ数を抽出して制御部に通知するように構成し、前記制御部が、隣接する一方の中継装置から前記障害通知パケットを受信すると、前記障害通知パケットを受信したポートのポート識別子を送信先として有する送信ポートデータベースのポート識別子を、対応するホップ数が前記障害区間ホップ数を超えるものについて、隣接する他方の中継装置と接続されたポートのポート識別子に書換え、対応するホップ数を全中継装置数から送信ポートデータベースに書き込まれていたホップ数を減算した値に書換えるように構成しても良い。
【００４８】
また、上記の目的を達成するため、本発明に係る中継装置の他の態様は、パケットを送受信する複数のポートを備え、リング状ネットワークを構成する中継装置であって、（１）受信パケットに含まれるアドレスと、（２）該アドレスを宛先として有するパケットを送信すべきポートの識別子と、（３）該アドレスを宛先として有するパケットが該リング状ネットワーク外に送出されるまでに経由する中継装置数を示すホップ数との対応を示す送信ポートデータベースと、受信したパケットの送信先ポートを前記送信ポートデータベースに基づいて決定し、決定したポートから送出するパケット処理部と、障害を検出した中継装置が送信する障害通知パケットの受信を検出し、該障害通知パケットに含まれる、障害区間から自中継装置に至るまでに経由する中継装置数を示す障害区間ホップ数を抽出して制御部に通知する制御パケット処理部と、障害通知パケットを受信したポートの識別子と、前記送信ポートデータベースの該ポート識別子に対応するホップ数と、前記抽出された障害区間ホップ数とに基づいて、前記送信ポートデータベースのポート識別子と、対応するホップ数とを書換える制御部と、を有することを特徴とする。
【００４９】
また、この中継装置は、隣接する中継装置との通信障害の発生を検出して前記制御部に通知するポート監視制御部をさらに備え、前記制御部は、前記通信障害の発生通知により、ホップ数フィールドを初期値に設定した障害通知パケットの送出指示を前記制御パケット処理部に出力し、隣接する中継装置からの障害通知パケットの受信通知により、抽出した障害区間ホップ数に１を加えた値をホップ数フィールドに設定した障害通知パケットを次段の中継装置に転送する指示を前記制御パケット処理部に出力する構成としても良い。
【００５０】
さらに、前記ポート監視制御部は、隣接するノードに接続された２つのポートが、フォワーディング状態とブロッキング状態のいずれの状態であるかを前記制御部に通知し、前記制御部は、ブロッキング状態のポートがある場合、リングノード数フィールドと、初期値を設定したホップ数フィールドとを有する管理パケットの送出指示を制御パケット処理部に定期的に出力し、前記制御パケット処理部は、前記ブロッキング状態のポートがある場合、前記管理パケットを受信すると、該管理パケットの前記ホップ数フィールドの値をリングノード数として前記制御部に通知するとともに、前記リングノード数フィールドに前記リングノード数を設定した管理パケットを次の送信指示のタイミングで送出し、前記ブロッキング状態のポートがない場合、前記管理パケットを受信すると、該管理パケットの前記リングノード数フィールドの値を前記制御部に通知するとともに、ホップ数フィールドの値に１を加えた値で前記ホップ数フィールドを書換え、次段の中継装置に転送する構成としても良い。
また、前記制御部は、前記ポート監視制御部は、隣接する中継装置との通信障害の復旧を検出して前記制御部に通知し、前記制御部は、前記通信障害の復旧通知を受けると、前記障害復旧したポートをブロッキング状態とする指示を前記ポート監視制御部に出力し、該ポートが予め指定されたポートであると、所定の時間経過後に該ポートをフォワーディング状態とする指示を前記ポート監視制御部に出力する構成としても良い。
【００５１】
また、本発明に係るパケット転送方法の１つの態様は、パケットを送受信する複数のポートを備え、リング状ネットワークを構成する中継装置におけるパケット転送方法であって、
（１）隣接する中継装置と接続されたポート以外のポートから受信したパケットが、隣接する中継装置と接続されたポートから送出するものである場合、初期値を設定したホップ数フィールドを含むリングタグを付加したパケットに変換し、隣接する中継装置と接続されたポートに送出するステップと、
（２）該パケットの送信元アドレスと、受信したポートの識別子と、該リング状ネットワーク外に送出されるまでに経由する中継装置数を示すホップ数としての所定の値との対応を送信ポートデータベースに記録するステップと、
（３）前記リングタグが付加されたパケットを受信すると、該パケットの送信元アドレスと、受信したポートの識別子と、該パケットのホップ数フィールドの値との対応を前記送信ポートデータベースに記録し、該パケットのホップ数フィールドの値に１を加えた値で該ホップ数フィールドを書換えたパケットを、前記送信ポートデータベースに応じて決定された出力ポートから送出するステップと、
（４）障害を検出した中継装置が送信した障害通知パケットを受信すると、該障害通知パケットに含まれる、障害区間から該障害通知パケットを受信した中継装置に至るまでに経由する中継装置数を示す障害区間ホップ数を抽出するステップと、
（５）前記障害通知パケットを受信したポートの識別子と、前記送信ポートデータベースの該ポート識別子に対応するホップ数と、前記抽出された障害区間ホップ数とに基づいて、前記送信ポートデータベースのポート識別子と、対応するホップ数とを書換えるステップとを含むことを特徴とする。
【発明の効果】
【００５２】
本発明によれば、リング状ネットワークにおいて、隣接する一方の中継装置から障害通知パケットを受信すると、その受信したポートを送信先として有する送信ポートデータベース（ＦＤＢ）のポート識別子を、隣接する他方の中継装置と接続されたポートのポート識別子とするので、障害発生側の中継装置に送信していたパケットを、逆方向の中継装置に転送することができ、障害発生時のＦＤＢのクリアや、これに伴うフラッディングが発生しないので、ネットワークの輻輳を回避することができる。
【００５３】
また本発明によれば、リングネットワークの障害発生時に障害区間を跨いで転送されるＦＤＢのエントリを、障害区間を回避するように変更するので、障害発生時のＦＤＢのクリアや、これに伴うフラッディングが発生しないので、ネットワークの輻輳を回避することができる。
【００５４】
また、障害復旧時、障害が発生していた区間にブロッキングポートを設定するので、ＦＤＢの変更やＦＤＢのクリアが不要であり、パケットロスやフラッディングに伴うネットワークの輻輳を回避できる。
【発明を実施するための最良の形態】
【００５５】
以下に添付図面を参照して、この発明に係るパケット伝送装置の好適な実施の形態を詳細に説明する。
【実施例】
【００５６】
図１は本実施例に係るリング型ネットワークの一例を示す図である。
【００５７】
ノードＡ１１〜ノードＦ１６は、リング型パケットネットワークを構成する中継装置としてのL2SW装置であり、一つのノードのプライマリポートであるポートＰ１と、隣接するノードのセカンダリポートであるＰ２とが、伝送路を介して接続されており、リング状ネットワーク１０を構成している。例えば、ノードＡ１１において、リングを構成するための第１のポートＰ１は隣接するノードＢ１２の第２のポートＰ２と伝送路２１を介して接続され、リングを構成するための第２のポートＰ２は隣接するノードＦ１６の第１のポートＰ１と伝送路２６を介して接続されている。なお、ポートおよび伝送路は双方向の通信が可能であるよう構成されている。
【００５８】
また、各ノードのポートＰ３には、それぞれ端末装置３１〜３６が接続されており、これら端末装置のＭＡＣアドレスをそれぞれＸ、Ｙ、Ｚ、Ｕ、Ｖ、Ｗとする。なお、各ノードの端末接続用ポートであるポートＰ３はここでは簡略化のため各ノードに１つだけを示しているが、複数の端末（セグメント）を接続ために端末接続用ポートを複数備えている場合や、端末接続用ポートを備えていない場合もある。
【００５９】
この構成において、リングを構成するノードＡ１１〜ノードＦ１６のうちの一台を制御ノード（Master Node）として指定する。図１ではノードＡ１１が制御ノードと指定された場合である。
【００６０】
図２は本発明に係る中継装置（ノード）の構成図である。
【００６１】
ポートＰ１  ４１とポートＰ２  ４２はそれぞれ隣接するノードとパケットを送受信するためのプライマリポートとセカンダリポート、ポートＰ３  ４３はリング状ネットワーク外の端末装置やセグメントとパケットを送受信するポートであり、パケット処理部５１は前記各ポートから受信されるパケットを処理し、ＦＤＢ５２を参照して適切なポートに送出する機能を有する。
【００６２】
また、ＦＤＢ５２は、受信パケットに含まれるアドレスと、該アドレスを宛先として有するパケットを送出すべきポートの識別子と、該パケットが該リング状ネットワーク外に送出されるまでに経由する中継装置数を示すホップ数との対応を示す送信ポートデータベースであり、制御パケット処理部５３は各ノード間で送受信される後述する管理パケットや障害通知パケットなどの制御パケットを処理する機能を有する。
【００６３】
さらにポート監視制御部５４は、隣接ノードと接続されているポートＰ１  ４１とポートＰ２  ４２とを監視し、それぞれの通信障害、リンク断を検出して、障害情報を制御部５５に通知する機能と、制御部の指示に従ってポートＰ１、ポートＰ２をそれぞれフォワーディング状態またはブロッキング状態に制御する機能を有する。
【００６４】
ここで、フォワーディング状態とは、通常のパケットの送受信を行う状態、ブロッキング状態とは、通常のパケットの送受信を行わない状態である。そして通常のパケットとは、後述する管理パケットや障害通知パケット等、中継装置間でのみ送受信されるリング監視・制御用パケット以外のパケットのことで、リング状ネットワーク１０によるパケット転送サービスを受けるため、中継装置に接続される端末間等で送受信されるパケットを意味している。
【００６５】
制御部５５はパケット処理部５１、ＦＤＢ５２、制御パケット処理部５３、ポート監視制御部５４のそれぞれと情報の送受信を行い、必要な制御を行う。
（１）通常時の動作
本発明に係るリング状パケットネットワークを構成する中継装置（ノード）の通常時の動作を以下に説明する。
【００６６】
制御ノードに指定されたノードＡ１１はそのセカンダリポートＰ２をブロッキング状態に設定する。そして、プライマリポートＰ１よりリングに向けてリングの状態を把握するための管理パケットを数秒間隔で送信する。
【００６７】
図３は管理パケットのフレームフォーマット例を示す図である。
【００６８】
管理パケットはリングを構成するノード間で送受信されるもので、ＤＡ（Destination Address）フィールドは宛先ノードアドレス、ＳＡ（Source Address）フィールドは送信元ノードアドレス、ＦＣＳ（Flame Check sequence）フィールドは誤り検出符号であり、管理データフィールドはネットワーク管理のための情報を示す。
【００６９】
この管理データフィールドはさらに、Message Typeフィールド、ホップ数フィールド、リングノード数フィールドから構成される。Message Typeフィールドは通常の管理パケットと障害通知パケットのいずれのタイプであるかを示し、ホップ数フィールドは送信元ノードで初期値が設定され、これを受信したノードがこのフィールドの値に１を加えた値でこのフィールドを書換え、次のノードに転送する。
【００７０】
リングノード数フィールドはリングを構成する全ノード数を示す。
【００７１】
図４は管理パケットが転送される様子を示す図であり、管理パケットの中の数字は、ホップ数フィールドの値を示す。
【００７２】
以下にリングノード数フィールドに全ノード数が設定される動作を説明する。
【００７３】
制御ノードＡ１１はホップ数フィールドを初期値”１”に設定した管理パケットをプライマリポートＰ１から送信する。なお、最初に管理パケットを送信する時点では、リングノード数フィールドには値が設定されていない。この管理パケットをポートＰ１で受信したノードＢ１２は、ホップ数フィールドの値”１”に１を加えた値”２”で、管理パケットのホップ数フィールドを書換えてポートＰ１から送出することにより、次段のノードＣ１３に転送する。
【００７４】
このように、管理パケットをポートＰ１で受信した各ノードは、ホップ数フィールドの値を１ずつカウントアップした管理パケットをポートＰ１に送出し、リングを一周した管理パケットは、制御ノードがセカンダリポートＰ２で受信する。このときのホップ数フィールドには全ノード数Ｎ（本実施例では”６”）が記録されることになる。
【００７５】
制御ノードＡ１１はこの周回してきた管理パケットの受信により、リングの正常性を確認するとともに、このホップ数フィールドの値を全ノード数Ｎとして保持し、このパケットは終端、すなわち破棄する。そして、制御ノードＡ１１は次の管理パケット送信タイミングでホップ数フィールドの値として”１”、リングノード数フィールドに全ノード数Ｎ（”６”）を設定して送信する。これを受信した各ノードはリングを構成する全ノード数Ｎを保持する。なお、これらの動作は各ノードの制御パケット処理部５３が行い、全ノード数は各ノードの制御部５５に通知され、保持される。
【００７６】
このように、管理パケットを用いて制御ノードはリング伝送路の正常性を確認するとともに、リング状ネットワークを構成する全ノードは、全ノード数を認識する。
【００７７】
一方、リングネットワーク外からの通常のパケット、すなわち、各ノードのポートＰ３で受信されるパケットは次の手順で処理、転送される。
【００７８】
リング状ネットワーク１０の外部より受信したパケット（ＭＡＣフレーム）は、リングネットワークに転送される時点でパケット処理部５１によりリングタグを付加される。なお、リングネットワークに転送されないフレーム、つまり、リング外部より受信され、そのノードでリング外部に転送されるフレームは加工せずにそのまま転送される。
【００７９】
図５はリングタグが付加されたフレームフォーマットを示す図である。
【００８０】
付加するリングタグフィールド以外は通常のＭＡＣフレームの構成であるので、説明を省略する。
【００８１】
リングタグフィールドは、ＰＩＤ（Protocol IDentifier）フィールド、ＰＲＩ（PRIority）フィールド、ＣＦＩ（Canonical Format Indicator）フィールド、ホップ数フィールドから構成される。
【００８２】
ＰＩＤフィールドにはリング上を転送されているフレームであることを判別するための識別子が格納されており、フレーム受信時に本フィールドを参照することにより通常のＭＡＣフレームではないことを各ノードが認識するためのものである。
【００８３】
ＰＲＩフィールドは、フレームのプライオリティを設定するためのフィールドであり、フレームに８段階の優先度を設定可能とするものである。
【００８４】
ＣＦＩフィールドは、IEEE 802.1Q規格のＶＬＡＮタグにあるＣＦＩビット同様キャノニカル識別子を表し、イーサネットにおいては常にＣＦＩ＝０をとる。
【００８５】
ホップ数フィールドは、ＭＡＣフレーム（パケット）をポートＰ３から受信したノードにて初期値”１”に設定される。これは、このパケットがリング状ネットワーク外から受信されて１つのノードを経由したことを示している。そして、このパケットを中継する各ノードでは、このフィールドの値に１を加えた値にこのフィールドを書換えて、次のノードに転送する。従って、受信したパケットのホップ数フィールドの値は、該パケットがリングを構成するノードをいくつ経由して対応するポートによって受信されたかを示すことになる。
【００８６】
図６はＦＤＢの一例を示す図で、ノードＡ１１のＦＤＢを示す。
【００８７】
本発明に係るＦＤＢでは、従来のL2SW装置におけるＦＤＢのアドレスと対応するポート（ポート識別子）との関係に加えて、対応するホップ数を示す領域を設けていることに特徴がある。
【００８８】
ＦＤＢの各エントリは通常運用時にはつぎのようにして作成される。
【００８９】
ノードＡ１１と接続されている端末３１がＳＡ：Ｘであるパケットを送出すると、ノードＡ１１はポートＰ３で受信する。これによりアドレス：Ｘ、ポート：Ｐ３で、ホップ数：０のエントリが形成される。ホップ数：０は、ポートＰ３がリングを構成するポートでないときに設定される。
【００９０】
ノードＢ１２と接続されている端末３２がＳＡ：Ｙであるパケットを送出すると、ノードＢ１２がポートＰ３で受信し、リングタグを付加してリングネットワークに転送する。ノードＡ１１はこのパケットをポートＰ１で受信する。これによりアドレス：Ｙ、ポート：Ｐ１で、ホップ数：１のエントリが形成される。ホップ数：１は、受信したパケットのリングタグフィールドを参照して得たものである。
【００９１】
同様にして、ノードＡ１１のＦＤＢ５２には、アドレス：Ｚ、ポート：Ｐ１、ホップ数：２であるエントリ、アドレス：Ｕ、ポート：Ｐ１、ホップ数：３であるエントリ、アドレス：Ｖ、ポート：Ｐ１、ホップ数：４であるエントリ、アドレス：Ｗ、ポート：Ｐ１、ホップ数：６であるエントリが形成される。
【００９２】
以上の説明では、ノードに視点を置いて説明したが、転送されるパケットに視点を置いたＦＤＢのエントリ形成について以下に説明する。
【００９３】
図７はパケット転送と、各ＦＤＢエントリの関係を示す図である。
【００９４】
ノードＡ１１のポートＰ３に接続された、ＭＡＣアドレスＸの端末３１が、ノードＤ１４のポートＰ３に接続されたＭＡＣアドレスＵの端末３４にパケット（ＭＡＣフレーム）を転送する場合を以下に示す。このとき、ＦＤＢにはアドレスＵのエントリが既に存在している状態であると仮定する。
【００９５】
端末３１はＳＡ：Ｘ、ＤＡ：Ｕが含まれるパケットを送出する。ノードＡ１１はこのパケットをポート３で受信し、そのパケット処理部５１はパケットに含まれるＳＡからアドレス：Ｘ、ポート３、ホップ数：０のエントリをＦＤＢに形成する。パケット処理部５１はＦＤＢ（ノードＡ）をＤＡ：Ｕにより検索して、ヒットしたエントリによってポートＰ１を得る。ポートＰ１はリングを構成するポートであるので、該当するパケットにホップ数：１のリングタグを付加してポートＰ１から送出する。
【００９６】
ノードＢ１２はこのパケットをポート２で受信し、そのパケット処理部５１はパケットに含まれるＳＡとホップ数からアドレス：Ｘ、ポート２、ホップ数：１のエントリをＦＤＢに形成する。パケット処理部５１はＦＤＢ（ノードＢ）をＤＡ：Ｕにより検索して、ヒットしたエントリによってポートＰ１を得る。ポートＰ１はリングを構成するポートであるので、該当するパケットのホップ数を１インクリメントし、ホップ数を２に書換えてポートＰ１から送出する。
【００９７】
同様にノードＣ１３はこのパケットをポート２で受信し、そのパケット処理部５１はパケットに含まれるＳＡとホップ数からアドレス：Ｘ、ポート２、ホップ数：２のエントリをＦＤＢに形成する。パケット処理部５１はＦＤＢ（ノードＣ）をＤＡ：Ｕにより検索して、ヒットしたエントリによってポートＰ１を得る。ポートＰ１はリングを構成するポートであるので、該当するパケットのホップ数を１インクリメントし、ホップ数を３に書換えてポートＰ１から送出する。
【００９８】
そして、ノードＤ１４はこのパケットをポート２で受信し、そのパケット処理部５１はパケットに含まれるＳＡとホップ数からアドレス：Ｘ、ポート２、ホップ数：３のエントリをＦＤＢに形成する。パケット処理部５１はＦＤＢ（ノードＣ）をＤＡ：Ｕにより検索して、ヒットしたエントリによってポートＰ３を得る。ポートＰ３はリングを構成するポートではないので、該当するパケットのリングタグを削除して、ポートＰ３から送出し、端末３４がこのパケットを受信する。
【００９９】
なお、ＦＤＢにアドレス：Ｕのエントリが存在しない場合は、該当するノードはそのパケットを受信したポート以外のポート全てにそのパケットを転送するフラッディングを行う。ノードＡ１１は制御ノードであるので、ブロッキング状態のポートＰ２にはパケットを送出しないので、ポートＰ１にパケットを送出することになる。その他のノードはポートＰ１とポートＰ３にパケットを送出することとなる。ノードＦ１６はノードＡ１１に向けてパケットを送出するが、ノードＡ１１のポートＰ２はブロッキング状態であるため、ノードＡ１１によりこのパケットは破棄されることになる。
【０１００】
図８は通常時の各ノードのＦＤＢを示す図で、全ノードに全端末アドレスのエントリが作成された状態である。
（２）障害発生時の動作
図７および図８に示した状態において、ノードＣ１３とノードＤ１４間において障害が発生した場合について以下に説明する。
【０１０１】
図９は障害発生時の動作（１）を説明する図、図１０は障害発生時の動作（２）を説明する図、図１１は障害発生時の動作（３）を説明する図である。
【０１０２】
図９（ａ）は図７に示したネットワーク構成のノードＢ１２、ノードＣ１３、ノードＤ１４、ノードＥ１５の部分の構成を示す図である。ノードＣ１３とノードＤ１４間に障害が発生すると、ノードＣ１３ではポート監視制御部５４により、プライマリポートＰ１に接続された伝送路で障害が発生したことを検出する。同様に、ノードＤ１４ではポート監視制御部５４により、セカンダリポートＰ２に接続された伝送路で障害が発生したことを検出し、各ノードの制御部５５に通知する。
【０１０３】
通知を受けた制御部５５は、障害を検出したポートとリング上の反対側のポートに、図３で示した障害通知パケット（トラップパケット）を、障害区間ホップ数を意味するホップ数フィールドの値を初期値”１”に設定して送信するよう制御パケット処理部に指示する。これにより、ノードＣ１３ではポートＰ１から、ノードＤ１４ではポートＰ２からそれぞれ障害通知パケットが送出される。なお、図９（ａ）において、障害通知パケットの中の数字は、ホップ数フィールドの値を示す。
【０１０４】
さらに、制御部５５は障害検出ポートの識別子を検索キーとして自ノードのＦＤＢ５２を検索し、ヒットしたエントリについて、該当するポート識別子を障害検出していない側のポート識別子に書換え、該当するホップ数を（全ノード数Ｎ）−（現在書き込まれているホップ数Ｈａ）に書換える。これは、該当するパケットが障害を検出したポートから送出されるものであるので、これを回避するために、リング上で反対方向に転送するようにエントリを書換えることを意味している。
【０１０５】
以下にこのＦＤＢの書換えについて具体的に説明する。
【０１０６】
図９（ｂ）、（ｃ）はノードＣ１３における正常時のＦＤＢと障害発生後のＦＤＢを示す。
【０１０７】
ノードＣ１３では障害検出ポートがポートＰ１、障害検出していないポートがポートＰ２であるので、ポートＰ１でＦＤＢを検索し、エントリＵ、Ｖ、Ｗがヒットする。そして、これらのエントリのポート識別子をＰ１からＰ２に書換え、エントリＵでは（Ｎ：６）−（Ｈａ：１）＝５を、新しいホップ数として書き込む。同様にＶ、Ｗのホップ数はそれぞれ４、３となる。
【０１０８】
図９（ｄ）、（ｅ）はノードＤ１４における正常時のＦＤＢと障害発生後のＦＤＢを示す。
【０１０９】
ノードＤ１４では障害検出ポートがポートＰ２、障害検出していないポートがポートＰ１であるので、ポートＰ２でＦＤＢを検索し、エントリＸ、Ｙ、Ｚがヒットする。そして、これらのエントリのポート識別子をＰ２からＰ１に書換え、エントリＸでは（Ｎ：６）−（Ｈａ：３）＝３を、新しいホップ数として書き込む。同様にＹ、Ｚのホップ数はそれぞれ２、１となる。
【０１１０】
次に、障害通知パケットを受信したノードＢ１２、ノードＥ１５の動作について説明する。
【０１１１】
図１０（ａ）は図７に示したネットワーク構成のノードＡ１１、ノードＢ１２、ノードＥ１５、ノードＦ１６の部分の構成を示す図である。
【０１１２】
上述のとおり、障害を検出したノードＣ１３、ノードＤ１４はホップ数を１に設定した障害通知パケットを、障害検出しなかったポートから送出する。
【０１１３】
障害通知パケットを受信したノードは、その制御パケット処理部５３で受信ポートとホップ数を制御部５５に通知する。すなわち、ノードＢ１２はポートＰ１でホップ数に１が設定された障害通知パケットを受信し、ノードＥ１５はポートＰ２でホップ数に１が設定された障害通知パケットを受信して、それぞれの制御部５５に通知する。
【０１１４】
このことは、ノードＢ１２がポートＰ１側の１番目のノード、つまりノードＣ１３の先での障害発生を認識したことを意味し、ノードＥ１５がポートＰ２側の１番目のノード、つまりノードＤ１４の先での障害発生を認識したことを意味する。
【０１１５】
通知を受けた制御部５５は、通知されたホップ数に１を加えた値を設定した障害通知パケットを、受信したポートとリング上で反対方向のポートに送出する指示を制御パケット処理部５３に通知し、制御処理部５３は障害通知パケットを送出する。すなわち、ノードＢ１２ではホップ数を２とした障害通知パケットがポートＰ２から送出され、ノードＥ１５ではホップ数を２とした障害通知パケットがポートＰ１から送出されることになる。
【０１１６】
また、制御部５５は障害通知パケットを受信したポート識別子を検索キーとして自ノードのＦＤＢ５２を検索し、ヒットしたエントリについて、そのエントリのホップ数（Ｈａ）と、障害通知パケットのホップ数フィールドの値（Ｈｂ）とを比較する。
【０１１７】
（Ｈａ）＞（Ｈｂ）であるとき、該当するエントリのポート識別子を、障害通知パケットを受信したポートとはリング上で反対方向のポート識別子に書換え、該当するホップ数を（全ノード数Ｎ）−（現在書き込まれているホップ数Ｈａ）に書換える。これは、該当するパケットが、障害区間方向のポートから送出されるものであり、さらに障害区間を越えて転送される場合に相当しており、これを回避するため、リング上で反対方向から転送するようにエントリを書換えることを意味している。
【０１１８】
（Ｈａ）＜＝（Ｈｂ）であるとき、該当するエントリは変更しない。これは、該当するパケットが、障害区間方向のポートから送出されるものであるが、障害区間に至るまでにリング外へと転送される場合に相当しており、該当するエントリはパケット転送に支障がないことを意味している。
【０１１９】
以下にこのＦＤＢの書換えについて具体的に説明する。なお、全ノード数Ｎ：６である。
【０１２０】
図１０（ｂ）、（ｃ）はノードＢにおける障害通知パケット検出前のＦＤＢと検出後のＦＤＢを示す。ここで、障害通知パケットのホップ数フィールドの値Ｈｂ：１である。
【０１２１】
ノードＢ１２では障害通知パケットの受信ポートがポートＰ１、リング上で反対方向のポートがポートＰ２であるので、制御部５５はポートＰ１でＦＤＢ５２を検索し、エントリＺ、Ｕ、Ｖ、Ｗがヒットする。そして、エントリＺは（Ｈａ：１）＝（Ｈｂ：１）であるので、このエントリは変更しない。
【０１２２】
エントリＵ、Ｖ、Ｗは（Ｈａ：２、３、４）＞（Ｈｂ：１）であるので、これらのエントリのポート識別子をＰ２に書換え、ホップ数はエントリＵでは（Ｎ：６）−（Ｈａ：２）＝４を新しいホップ数として書き込む。同様にＶ、Ｗのホップ数はそれぞれ３、２となる。
【０１２３】
図１０（ｄ）、（ｅ）はノードＥ１５における障害通知パケット検出前のＦＤＢと検出後のＦＤＢを示す。ここで、障害通知パケットのホップ数フィールドの値Ｈｂ：１である。
【０１２４】
ノードＥ１５では障害通知パケット受信ポートがポートＰ２、反対方向のポートがポートＰ１であるので、ポートＰ２でＦＤＢを検索し、エントリＸ、Ｙ、Ｚ、Ｕがヒットする。そして、エントリＵは（Ｈａ：１）＝（Ｈｂ：１）であるので、このエントリは変更しない。
【０１２５】
エントリＸ、Ｙ、Ｚは（Ｈａ：４、３、２）＞（Ｈｂ：１）であるので、これらのエントリのポート識別子をＰ１に書換え、ホップ数はエントリＸでは（Ｎ：６）−（Ｈａ：４）＝２を新しいホップ数として書き込む。同様にＹ、Ｚのホップ数はそれぞれ３、４となる。
【０１２６】
次に、障害通知パケットを受信したノードＡ１１、ノードＦ１６の動作について説明する。
【０１２７】
図１１（ａ）は図７に示したネットワーク構成のノードＡ１１、ノードＢ１２、ノードＥ１５、ノードＦ１６の部分の構成を示す図である。
【０１２８】
ノードＦ１６の動作は上述のノードＢ１２、ノードＥ１５と同様であるので以下に概略動作を示す。
【０１２９】
ノードＦ１６では、ホップ数が２である障害通知パケットをポートＰ２により受信し、ホップ数を３とした障害通知パケットをポートＰ１から送出する。
【０１３０】
図１１（ｄ）、（ｅ）はノードＦ１６における障害通知パケット検出前のＦＤＢと検出後のＦＤＢを示し、障害区間を通過するエントリＸ、Ｙ、Ｚを書換える。
【０１３１】
次に制御ノードであるノードＡ１１の動作を示す。
【０１３２】
図１１（ｂ）、（ｃ）はノードＡ１１における障害通知パケット検出前のＦＤＢと検出後のＦＤＢを示す。ＦＤＢの変更に関しては、ノードＡ１１も上述の各ノードと同様の動作をし、概要を示すと、障害区間を通過するエントリＵ、Ｖ、Ｗを書換える。
【０１３３】
そして、障害通知パケット受信の通知を受けた制御ノードであるノードＡ１１の制御部５５は、制御信号をポート監視制御部５４に出力して、ブロッキング状態としていたセカンダリポートＰ２をフォワーディング状態に変更する。これにより、前記した各ＦＤＢの変更に従って、障害区間を回避するようにパケットの転送が可能となる。
（３）障害復旧時の動作
図９、図１０および図１１に示した障害発生時の動作が完了し、ノードＣ１３とノードＤ１４間において障害が復旧した場合について以下に説明する。
【０１３４】
図１２は障害復旧時の動作を説明する図である。
【０１３５】
ノードＣ１３、ノードＤ１４間の障害が復旧すると、ループ経路の形成を防ぐため障害を検出していたポートを一時的に一般のパケット（データフレーム）を通さないブロッキング状態とする。すなわち、ノードＣ１３においては、ポート監視制御部５５でプライマリポートＰ１の障害復旧を検出し、この情報を制御部５３に向けて出力し、これを受けた制御部５３は、該当するポートをブロッキング状態に設定する指示をポート監視制御部５５に出力し、この結果、プライマリポートＰ２がブロッキング状態となる。
【０１３６】
同様にして、ノードＤ１４では、セカンダリポートＰ２がブロッキング状態となる。
【０１３７】
ここで、リングが正常の場合には、（１）通常時の動作で説明したように、管理パケットを送信し、プライマリポートＰ２がブロッキング状態である制御ノードが必要であるが、（２）障害発生時の動作で説明したとおり、制御ノードであったノードＡ１１は、この時点で制御ノードとしての機能を果たしていない状態である。
【０１３８】
そこで、セカンダリポートが障害検出していたノードＤ１４がリング内で新しい制御ノードとして機能する。そして、ノードＤ１４は制御ノードとして、自身のプライマリポートＰ１から管理パケットを数秒間隔で送信開始する。すなわち、ノードＤ１４の制御部はセカンダリポートＰ２での障害復旧をポート監視制御部５５からの通知によって認識すると、プライマリポートＰ１から（１）通常時の動作で説明した管理パケットを数秒間隔で送信開始する指示を制御パケット処理部５４に出力する。
【０１３９】
ノードＣ１３は制御ノードＤ１４からの管理パケットを受信すると、自身のプライマリポートＰ１をブロッキング状態からフォワーディング状態へと変更する。すなわち、ノードＣ１３の制御部は管理パケットの受信をポート監視制御部５５からの通知によって認識すると、プライマリポートＰ１をブロッキング状態からフォワーディング状態へと変更する指示をポート監視制御部に出力する。以上の動作により、制御ノードがノードＤ１４である、正常なリングネットワーク状態に戻る。
【０１４０】
以上説明したように、本発明によれば、リングネットワークの伝送路に障害が発生した場合、各ノードのＦＤＢが、障害区間を通過するアドレスを有するエントリについてだけ、障害区間を回避するように書換えられるので、ＦＤＢをクリアする必要がなく、フラッディングが発生しないので、これに起因するネットワークの輻輳を回避できる。
【０１４１】
また、ＦＤＢ書換えのために必要となる全ノード数は、各ノードでカウントアップされる所定のフィールドを有するパケットを、周期的にリングに周回させることにより得ているので、ノード識別子やその接続順などの情報は必要なく、ノードが追加、削除されたときでも、容易にこの情報を獲得できる。
【０１４２】
さらに、各ノードは制御ノードからの指示を待つことなく迂回経路に転送されるようにＦＤＢを書換えるので、パケットロスの発生時間を短くできる。特に全ノード数が多い場合や、制御ノードから離れた（ホップ数の多い）ノードで障害が検出された場合にこの効果は顕著である。
【０１４３】
また、ＦＤＢ書換えのために必要となる、障害検出ノードから自ノードまでのホップ数も、各ノードでカウントアップされる所定のフィールドを有するパケットを障害検出ノードから送出するので、ノード識別子やその接続順などの情報は必要なく、ノードが追加、削除されたときでも、容易にこの情報を獲得できる。
【０１４４】
そして、リングネットワークの伝送路の障害が復旧した場合、障害を検出していたノードの一方が制御ノードの機能を果たし、以前の障害区間をブロッキング状態とするので、各ノードのＦＤＢは障害発生によって書換えたものをそのまま使用でき、制御ノードが固定的に割り当てられている場合に必要となるＦＤＢクリアが不要であり、本来発生すべきではないパケットロスや、フラッディングにともなう輻輳を回避することができる。
【０１４５】
以上、本明細書で開示した主な発明について以下にまとめる。
（付記１）  パケットを送受信する複数のポートを備え、受信パケットに含まれるアドレスと、該アドレスを宛先として有するパケットを送信すべきポートの識別子との対応を示す送信ポートデータベースに基づいて受信パケットを送信する、リング状ネットワークを構成する中継装置において、
障害を検出した中継装置が送信する障害通知パケットの受信を検出する制御パケット処理部と、
隣接する一方の中継装置から前記障害通知パケットを受信すると、前記障害通知パケットを受信したポートのポート識別子を送信先として有する前記送信ポートデータベースのポート識別子を、隣接する他方の中継装置と接続されたポートのポート識別子に書換える制御部と、
を有することを特徴とする中継装置。（１）
（付記２）  付記１に記載の中継装置であって、
前記送信ポートデータベースは、更に、該アドレスを宛先として有するパケットが該リング状ネットワーク外に送出されるまでに経由する中継装置数を示すホップ数との対応を示し、
前記制御パケット処理部は、前記障害通知パケットを受信すると、前記障害通知パケットに含まれる障害区間から自中継装置に至るまでに経由する中継装置数を示す障害区間ホップ数を抽出して前記制御部に通知し、
前記制御部は、隣接する一方の中継装置から前記障害通知パケットを受信すると、前記障害通知パケットを受信したポートのポート識別子を送信先として有する前記送信ポートデータベースのポート識別子を、対応するホップ数が前記障害区間ホップ数を超えるものについて、隣接する他方の中継装置と接続されたポートのポート識別子に書換え、対応するホップ数を全中継装置数から前記送信ポートデータベースに書き込まれていたホップ数を減算した値に書換える
ことを特徴とする中継装置。（２）
（付記３）  パケットを送受信する複数のポートを備え、リング状ネットワークを構成する中継装置であって、
受信パケットに含まれるアドレスと、該アドレスを宛先として有するパケットを送信すべきポートの識別子と、該アドレスを宛先として有するパケットが該リング状ネットワーク外に送出されるまでに経由する中継装置数を示すホップ数との対応を示す送信ポートデータベースと、
受信したパケットの送信先ポートを前記送信ポートデータベースに基づいて決定し、決定したポートから送出するパケット処理部と、
障害を検出した中継装置が送信する障害通知パケットの受信を検出し、該障害通知パケットに含まれる、障害区間から自中継装置に至るまでに経由する中継装置数を示す障害区間ホップ数を抽出して制御部に通知する制御パケット処理部と、
障害通知パケットを受信したポートの識別子と、前記送信ポートデータベースの該ポート識別子に対応するホップ数と、前記抽出された障害区間ホップ数とに基づいて、前記送信ポートデータベースのポート識別子と、対応するホップ数とを書換える制御部と、
を有することを特徴とする中継装置。（３）
（付記４）  付記３記載の中継装置であって、
隣接する中継装置との通信障害の発生を検出して前記制御部に通知するポート監視制御部をさらに備え、
前記制御部は、
前記通信障害の発生通知により、ホップ数フィールドを初期値に設定した障害通知パケットの送出指示を前記制御パケット処理部に出力し、
隣接する中継装置からの障害通知パケットの受信通知により、抽出した障害区間ホップ数に１を加えた値をホップ数フィールドに設定した障害通知パケットを次段の中継装置に転送する指示を前記制御パケット処理部に出力する
ことを特徴とする中継装置。（４）
（付記５）  付記３記載の中継装置であって、
前記パケット処理部は、
中継装置と接続されたポート以外のポートから受信したパケットが、中継装置と接続されたポートから送出するものである場合、初期値に設定したホップ数フィールドを含むリングタグを該パケットに付加するとともに、該パケットの送信元アドレスと、受信したポートの識別子と、ホップ数として所定の値との対応を前記送信ポートデータベースに記録し、
中継装置と接続されたポートから受信したパケットが、中継装置と接続されたポートから送出するものである場合、該パケットのホップ数フィールドの値に１を加えた値で、前記ホップ数フィールドを書換えるとともに、該パケットの送信元アドレスと、受信したポートの識別子と、ホップ数として前記受信したホップ数フィールドの値との対応を前記送信ポートデータベースに記録し、
中継装置と接続されたポートから受信したパケットが、中継装置と接続されたポート以外のポートから送出するものである場合、該パケットのリングタグを削除するとともに、該パケットの送信元アドレスと、受信したポートの識別子と、ホップ数として所定の値との対応を前記送信ポートデータベースに記録する
ことを特徴とする中継装置。
（付記６）  付記４記載のパケット中継装置であって、
前記ポート監視制御部は、隣接するノードに接続された２つのポートが、フォワーディング状態とブロッキング状態のいずれの状態であるかを前記制御部に通知し、
前記制御部は、ブロッキング状態のポートがある場合、リングノード数フィールドと、初期値を設定したホップ数フィールドとを有する管理パケットの送出指示を制御パケット処理部に定期的に出力し、
前記制御パケット処理部は、
前記ブロッキング状態のポートがある場合、前記管理パケットを受信すると、該管理パケットの前記ホップ数フィールドの値をリングノード数として前記制御部に通知するとともに、前記リングノード数フィールドに前記リングノード数を設定した管理パケットを次の送信指示のタイミングで送出し、
前記ブロッキング状態のポートがない場合、前記管理パケットを受信すると、該管理パケットの前記リングノード数フィールドの値を前記制御部に通知するとともに、ホップ数フィールドの値に１を加えた値で前記ホップ数フィールドを書換え、次段の中継装置に転送する
ことを特徴とする中継装置。（５）
（付記７）  付記６記載の中継装置であって、
前記ポート監視制御部は、隣接する中継装置との通信障害の復旧を検出して前記制御部に通知し、
前記制御部は、前記通信障害の復旧通知を受けると、前記障害復旧したポートをブロッキング状態とする指示を前記ポート監視制御部に出力し、該ポートが予め指定されたポートであると、所定の時間経過後に該ポートをフォワーディング状態とする指示を前記ポート監視制御部に出力する
ことを特徴とする中継装置。
（付記８）  パケットを送受信する複数のポートを備え、リング状ネットワークを構成する中継装置におけるパケット転送方法であって、
隣接する中継装置と接続されたポート以外のポートから受信したパケットが、隣接する中継装置と接続されたポートから送出するものである場合、初期値を設定したホップ数フィールドを含むリングタグを付加したパケットに変換し、隣接する中継装置と接続されたポートに送出するステップと、
該パケットの送信元アドレスと、受信したポートの識別子と、該リング状ネットワーク外に送出されるまでに経由する中継装置数を示すホップ数としての所定の値との対応を送信ポートデータベースに記録するステップと、
前記リングタグが付加されたパケットを受信すると、該パケットの送信元アドレスと、受信したポートの識別子と、該パケットのホップ数フィールドの値との対応を前記送信ポートデータベースに記録し、該パケットのホップ数フィールドの値に１を加えた値で該ホップ数フィールドを書換えたパケットを、前記送信ポートデータベースに応じて決定された出力ポートから送出するステップと、
障害を検出した中継装置が送信した障害通知パケットを受信すると、該障害通知パケットに含まれる、障害区間から該障害通知パケットを受信した中継装置に至るまでに経由する中継装置数を示す障害区間ホップ数を抽出するステップと、
前記障害通知パケットを受信したポートの識別子と、前記送信ポートデータベースの該ポート識別子に対応するホップ数と、前記抽出された障害区間ホップ数とに基づいて、前記送信ポートデータベースのポート識別子と、対応するホップ数とを書換えるステップと
を含むことを特徴とするパケット転送方法。
（付記９）付記８記載のパケット転送方法であって、
隣接する一方の中継装置との障害を検出すると、
前記送信ポートデータベースのうち、障害を検出したポートの識別子を有するエントリについて、そのポート識別子を、隣接する他方の中継装置と接続されているポートの識別子に書換え、対応するホップ数を、全中継装置数から現在書き込まれているホップ数を減算した値に書換えるステップと、
前記障害区間ホップ数として初期値を設定した障害通知パケットを送出するステップと、
前記障害通知パケットを検出すると、
前記障害区間ホップ数に１を加えた値を新たな障害区間ホップ数として次段の中継装置に転送するステップと、
をさらに含むことを特徴とするパケット転送方法。
【産業上の利用可能性】
【０１４６】
以上のように、本発明によればリングネットワークにおける障害発生時の輻輳を回避し、障害復旧時のパケットロスや輻輳を回避でき、パケット伝送分野において極めて有用と考えられる。
【図面の簡単な説明】
【０１４７】
【図１】本実施例に係るリング型ネットワークの一例を示す図である。
【図２】本発明に係る中継装置（ノード）の構成図である。
【図３】管理パケットのフレームフォーマット例を示す図である。
【図４】管理パケットが転送される様子を示す図である。
【図５】リングタグが付加されたフレームフォーマットを示す図である。
【図６】ＦＤＢの一例を示す図である。
【図７】パケット転送と、各ＦＤＢエントリの関係を示す図である。
【図８】通常時の各ノードのＦＤＢを示す図である。
【図９】障害発生時の動作を説明する図（１）である。
【図１０】障害発生時の動作を説明する図（２）である。
【図１１】障害発生時の動作を説明する図（３）である。
【図１２】障害復旧時の動作を説明する図である。
【図１３】従来のリング型ネットワークの冗長方式の説明図である。
【図１４】従来のリング型ネットワークの冗長方式の説明図（２）である。
【符号の説明】
【０１４８】
１０  リングネットワーク
１１、１２、１３、１４、１５、１６    ノード
２１、２２、２３、２４、２５、２６    伝送路
３１、３２、３３、３４、３５、３６    端末
７１、７２、７３、７４、７５、７６    ノード
４１    プライマリポート
４２    セカンダリポート
４３    ポート
５１    パケット処理部
５２    ＦＤＢ（Forwarding Data Base）
５３    制御パケット処理部
５４    ポート監視制御部
５５    制御部
【図１】
2006270169.tif 000003
【図２】
2006270169.tif 000004
【図３】
2006270169.tif 000005
【図４】
2006270169.tif 000006
【図５】
2006270169.tif 000007
【図６】
2006270169.tif 000008
【図７】
2006270169.tif 000009
【図８】
2006270169.tif 000010
【図９】
2006270169.tif 000011
【図１０】
2006270169.tif 000012
【図１１】
2006270169.tif 000013
【図１２】
2006270169.tif 000014
【図１３】
2006270169.tif 000015
【図１４】
2006270169.tif 000016