(57)【要約】      （修正有）【課題】エラーが発生した際のリングネットワークの通信帯域の圧迫を抑制するデータパケット送信方法、データパケット送信システム及びノード装置を提供する。【解決手段】エラーが発生する前の状態において各ノード装置は、宛先デバイスまでの通信経路上に配置された他のノード装置の第１の数を登録しておき、エラーが発生した際に、エラーが発生した通信リンクまでの通信経路上に配置された他のノード装置の第２の数を、第１の数と比較することにより、ＦＤＢに登録された内容のうち、変更が必要な個所を特定し、特定された個所の所定の情報を選択的に書き換える処理により、エラーが発生した際のリングネットワークの通信帯域の圧迫を抑制する。【選択図】図１５
2019129391.tif 000002
【特許請求の範囲】
【請求項１】
複数のノード装置と複数の通信リンクが環状に接続されたリングネットワークを用いたデータパケット送信方法であって、
前記複数の通信リンクに含まれる第１通信リンクは閉鎖リンクとして設定され、
前記複数のノード装置の各々は、前記リングネットワークの第１の回転方向に向かう第１ポートと、前記リングネットワークの前記第１の回転方向とは異なる第２の回転方向に向かう第２ポートとを含む複数のポートを有し、
前記複数のノード装置の各々は、データパケットを前記複数のポートの何れのポートに出力するかを示す出力ポート情報と、前記リングネットワークに含まれる前記複数のノード装置のうち、前記第１通信リンクを経由しない経路上にあって、自ノード装置と前記データパケットの宛先デバイスとの間に存在するノード装置の数を示す第１ノード数とが、前記データパケットの宛先アドレス毎に登録されるフォワーディングデータベースを有し、
前記データパケット送信方法は、
前記複数の通信リンクに含まれる第２通信リンクにおいてエラーが発生した場合、前記第１通信リンクを前記閉鎖リンクとする設定を解除し、
前記複数のノード装置に含まれ、前記第２通信リンクの第１端に接続された第１ノード装置が、前記エラーの発生を示す第１エラー通知フレームを前記リングネットワークの他のノード装置に送信し、
前記複数のノード装置に含まれるノード装置であって、前記第１エラー通知フレームを受信した第２ノード装置が、前記複数のノード装置に含まれるノード装置であって、前記エラーが発生した前記第２通信リンクと前記第２ノード装置との間に存在するノード装置の数を示す第２ノード数を、前記第１エラー通知フレームに基づいて特定し、
前記第２ノード装置が前記第１エラー通知フレームを前記第１ポートにおいて受信した場合であって、前記第２ノード装置の前記フォワーディングデータベースに登録された、第１宛先アドレスに対応する前記出力ポート情報が前記第１ポートを示し、かつ、前記第１ノード数が前記第２ノード数よりも大きい場合には、前記第２ノード装置は、前記第２ノード装置の前記フォワーディングデータベースの前記第１宛先アドレスに対応する前記出力ポート情報を、前記第１ポートを示す内容から前記第２ポートを示す内容に更新し、
前記フォワーディングデータベースが更新された後に前記第２ノード装置が前記第１宛先アドレスを宛先とする第１データパケットを受信した場合に、前記第２ノード装置は、更新後の前記フォワーディングデータベースに基づき、前記第２ポートを介して前記第１データパケットを前記リングネットワークの他のノード装置に送信する
ことを特徴とするデータパケット送信方法。
【請求項２】
前記第２ノード装置が前記第１エラー通知フレームを前記第１ポートにおいて受信した場合であって、前記第２ノード装置の前記フォワーディングデータベースに登録された前記出力ポート情報が前記第１ポートを示し、かつ、前記第１ノード数が示すノード装置の数が、前記第２ノード数が示すノード装置の数以下である場合には、前記第２ノード装置は、前記第２ノード装置の前記フォワーディングデータベースの前記第１宛先アドレスに対応する前記出力ポート情報を、前記第１ポートを示す内容に維持し、
前記第２ノード装置は、前記第１ポートを介して前記第１データパケットを前記リングネットワークの他のノード装置に送信する
ことを特徴とする請求項１に記載のデータパケット送信方法。
【請求項３】
前記複数のノード装置に含まれ、前記第２通信リンクの第２端に接続された第３ノード装置が、前記エラーの発生を示す第２エラー通知フレームを前記リングネットワークの他のノード装置に送信し、
前記第２エラー通知フレームを受信した前記第２ノード装置が、前記複数のノード装置に含まれるノード装置のうち、前記第２通信リンクを経由しない経路上にあって、前記エラーが発生した前記第２通信リンクと自ノード装置との間に存在するノード装置の数を示す第３ノード数を、前記第２エラー通知フレームに基づいて特定し、
前記第２ノード装置は、前記第１ノード数と前記第２ノード数と前記第３ノード数とに基づいて、前記第２ノード装置の前記フォワーディングデータベースの前記第１ノード数を更新する
ことを特徴とする請求項１又は２に記載のデータパケット送信方法。
【請求項４】
前記第１エラー通知フレームの前記第２ノード装置への到達が、第２エラー通知フレームの前記第２ノード装置への到達よりも先であり、前記第２ノード装置が前記第１エラー通知フレームに基づいて前記出力ポート情報を更新した場合は、前記第２ノード装置は、前記第１エラー通知フレームを受信した後であって、前記第２エラー通知フレームを受信する前に、前記第１ノード数をゼロに変更する
ことを特徴とする請求項３に記載のデータパケット送信方法。
【請求項５】
前記第１ノード装置は、前記第３ノード装置から送信された前記第２エラー通知フレームを受信し、
前記第１ノード装置の前記フォワーディングデータベースに登録された前記第１ノード数と、前記第３ノード数に基づき、前記第１ノード数を更新する
ことを特徴とする請求項３又は４に記載のデータパケット送信方法。
【請求項６】
前記第１エラー通知フレームは、前記第２ノード数を格納する領域を有し、
前記第１エラー通知フレームが前記複数のノード装置の各々を通過する度に、前記第２ノード数が１ずつ増加されるよう、第１エラー通知フレームが更新され、
前記第２エラー通知フレームは、前記第３ノード数を格納する領域を有し、
前記第２エラー通知フレームが前記複数のノード装置の各々を通過する度に、前記第３ノード数が１ずつ増加されるよう、第２エラー通知フレームが更新される
ことを特徴とする請求項３乃至５何れか一項に記載のデータパケット送信方法。
【請求項７】
前記複数のノード装置の各々は、前記リングネットワークの外の他のネットワークに接続される第３ポートを有し、
前記複数のノード装置の各々は、前記第３ポートにおいて第２データパケットを受信した場合に制御フレームを生成し、
前記複数のノード装置の各々は、生成された前記制御フレームを前記リングネットワークの他のノード装置に送信し、
前記制御フレームは、前記第１ノード数を格納する領域を有し、
前記制御フレームが前記複数のノード装置の各々を通過する度に、前記第１ノード数が１ずつ増加されるよう、前記制御フレームが更新され、
前記制御フレームを受信した前記他のノード装置は、前記制御フレームに含まれる前記第１ノード数を前記他のノード装置の前記フォワーディングデータベースに登録する
ことを特徴とする請求項１乃至６何れか一項に記載のデータパケット送信方法。
【請求項８】
前記複数のノード装置の各々は、互いに接続確認メッセージを送信し合うことによって前記エラーの発生を検知し、
前記接続確認メッセージは前記第１ノード数を格納する領域を有し、
前記複数のノード装置の各々は、他のノード装置より受信した前記接続確認メッセージに含まれる前記第１ノード数を１増加させて自身の接続確認メッセージを生成し、生成された前記接続確認メッセージを、更に他のノード装置へ送信する
ことを特徴とする請求項１乃至６何れか一項に記載のデータパケット送信方法。
【請求項９】
複数のノード装置と複数の通信リンクとを含み、前記複数のノード装置と前記複数の通信リンクとが環状に接続されてリングネットワークを形成するデータパケット送信システムであって、
前記複数の通信リンクに含まれる第１通信リンクは閉鎖リンクとして設定され、
前記複数のノード装置の各々は、前記リングネットワークの第１の回転方向に向かう第１ポートと、前記リングネットワークの前記第１の回転方向とは異なる第２の回転方向に向かう第２ポートとを含む複数のポートを有し、
前記複数のノード装置の各々は、データパケットを前記複数のポートの何れのポートに出力するかを示す出力ポート情報と、前記リングネットワークに含まれる前記複数のノード装置のうち、前記第１通信リンクを経由しない経路上にあって、自ノード装置と前記データパケットの宛先デバイスとの間に存在するノード装置の数を示す第１ノード数とが、前記データパケットの宛先アドレス毎に登録されるフォワーディングデータベースを有し、
前記複数の通信リンクに含まれる第２通信リンクにおいてエラーが発生した場合、前記第１通信リンクを前記閉鎖リンクとする設定を解除し、
前記複数のノード装置に含まれ、前記第２通信リンクの第１端に接続された第１ノード装置が、前記エラーの発生を示す第１エラー通知フレームを前記リングネットワークの他のノード装置に送信し、
前記複数のノード装置に含まれるノード装置であって、前記第１エラー通知フレームを受信した第２ノード装置が、前記複数のノード装置に含まれるノード装置であって、前記エラーが発生した前記第２通信リンクと前記第２ノード装置との間に存在するノード装置の数を示す第２ノード数を、前記第１エラー通知フレームに基づいて特定し、
前記第２ノード装置が前記第１エラー通知フレームを前記第１ポートにおいて受信した場合であって、前記第２ノード装置の前記フォワーディングデータベースに登録された、第１宛先アドレスに対応する前記出力ポート情報が前記第１ポートを示し、かつ、前記第１ノード数が前記第２ノード数よりも大きい場合には、前記第２ノード装置は、前記第２ノード装置の前記フォワーディングデータベースの前記第１宛先アドレスに対応する前記出力ポート情報を、前記第１ポートを示す内容から前記第２ポートを示す内容に更新し、
前記フォワーディングデータベースが更新された後に前記第２ノード装置が前記第１宛先アドレスを宛先とする第１データパケットを受信した場合に、前記第２ノード装置は、更新後の前記フォワーディングデータベースに基づき、前記第２ポートを介して前記第１データパケットを前記リングネットワークの他のノード装置に送信する
ことを特徴とするデータパケット送信システム。
【請求項１０】
複数のノード装置と複数の通信リンクが環状に接続されたリングネットワークに含まれる第１ノード装置であって、
前記複数の通信リンクに含まれる第１通信リンクは閉鎖リンクとして設定され、
前記第１ノード装置は、
前記リングネットワークの第１の回転方向に向かう第１ポートと、前記リングネットワークの前記第１の回転方向とは異なる第２の回転方向に向かう第２ポートとを含む複数のポートと、
データパケットを前記複数のポートの何れのポートに出力するかを示す出力ポート情報と、前記リングネットワークに含まれる前記複数のノード装置のうち、前記第１通信リンクを経由しない経路上にあって、前記第１ノード装置と前記データパケットの宛先デバイスとの間に存在するノード装置の数を示す第１ノード数とが、前記データパケットの宛先アドレス毎に登録されるフォワーディングデータベースと
を有し、
前記第１ノード装置は、
前記複数の通信リンクに含まれる第２通信リンクにおいてエラーが発生した場合、前記複数のノード装置に含まれ、前記第２通信リンクの第１端に接続された第２ノード装置から、前記エラーの発生を示す第１エラー通知フレームを受信し、
前記複数のノード装置に含まれるノード装置であって、前記エラーが発生した前記第２通信リンクと前記第１ノード装置との間に存在するノード装置の数を示す第２ノード数を、前記第１エラー通知フレームに基づいて特定し、
前記第２ノード装置が前記第１エラー通知フレームを前記第１ポートにおいて受信した場合であって、前記フォワーディングデータベースに登録された、第１宛先アドレスに対応する前記出力ポート情報が前記第１ポートを示し、かつ、前記第１ノード数が前記第２ノード数よりも大きい場合には、前記フォワーディングデータベースの前記第１宛先アドレスに対応する前記出力ポート情報を、前記第１ポートを示す内容から前記第２ポートを示す内容に更新し、
前記フォワーディングデータベースが更新された後に前記第１宛先アドレスを宛先とする第１データパケットを受信した場合に、更新後の前記フォワーディングデータベースに基づき、前記第２ポートを介して前記第１データパケットを前記リングネットワークの他のノード装置に送信する
ことを特徴とする第１ノード装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、データパケット送信方法、データパケット送信システム及びノード装置に関する。
【背景技術】
【０００２】
ネットワークの信頼性を高めるために通信経路に冗長性を持たせる構成として、複数のノード装置、例えば複数のスイッチ装置と複数の通信リンク、例えば光通信ケーブルを環状に接続したリングネットワークが用いられている。リングネットワークにおいてデータパケット（データフレーム）のループが発生すると通信帯域が不要に消費されるため、ループの発生を抑制する必要がある。ループの発生を抑制するために、環状に接続された複数の通信リンクの少なくとも一カ所を理論的に閉鎖する方法が用いられている。そして、複数の通信リンクの何れかにおいてエラー（障害）が発生した場合には、閉鎖されていた通信リンクを開放することによって新たな通信経路が確保される。
【０００３】
例えばイーサネット（登録商標）のリングプロテクション規格であるＥｔｈｅｒｎｅｔ（登録商標）Ｒｉｎｇ  Ｐｒｏｔｅｃｔｉｏｎ（以下、ＥＲＰ）では、複数のノード装置によってリングネットワークが構成され、複数のノード装置の各々は、通信リンクに接続されるポートを複数有している。リングネットワークを構成する複数のノード装置のうち、特定のノード装置のポートを閉鎖状態に設定することで、当該ポートに接続される通信リンクを理論的に切断し、ループの発生を回避する。そしてリングネットワークを構成する何れかの通信リンクにエラーが発生した場合には、エラーリンクの両端に配置されたノード装置がエラーを検知し、エラーリンクに接続されたポートを閉鎖する。またエラーの発生を検知したノード装置は、Ｒｉｎｇ−Ａｕｔｏｍａｔｉｃ  Ｐｒｏｔｅｃｔｉｏｎ  Ｓｗｉｔｃｈｉｎｇ（以下、Ｒ−ＡＰＳ）と呼ばれるエラー通知フレームを生成してリングネットワーク内の他のノード装置に送信する。ループを回避するために閉鎖されていた通信リンクの両端に配置されたノード装置は、Ｒ−ＡＰＳを受信した際、閉鎖リンクに接続されるポートの閉鎖設定を解除する。これにより新たな通信経路への切り換えが行われ、ネットワークの信頼性を高めることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】ＷＯ２０１４／１９９６７０
【発明の概要】
【発明が解決しようとする課題】
【０００５】
リングネットワークに含まれる複数のノード装置の各々は、受信されたデータパケットを、自ノード装置の有する複数のポートのうちのどのポートを用いて転送すべきか特定するためのＦｏｒｗａｒｄｉｎｇ  Ｄａｔａ  Ｂａｓｅ（以下、ＦＤＢ）を有している。ＦＤＢには、データパケットを送信するべきポートを特定する情報（出力ポート情報）が、データパケットの宛先アドレス、例えばＭｅｄｉａ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ（以下、ＭＡＣ）アドレスに対応付けられて登録される。ＦＤＢは、各ノード装置がデータパケットを受信した際に、データパケットの送信元アドレスと、データパケットを受信したポートとの対応関係を登録することによって作成される。受信されたデータパケットに基づいてＦＤＢに必要な情報を登録する作業は、例えばＭＡＣ学習と呼ばれる。
【０００６】
リングネットワークにおいて新たな通信経路への切り換えが行われた場合、各ノード装置は、自ノード装置が有するＦＤＢの書き換え処理を実行する。この書き換え処理では、それまでに登録されたＦＤＢの内容が一度全て初期化される。そしてその後、各ノード装置が再度ＭＡＣ学習を行うことにより新たなＦＤＢが作成される。ＭＡＣ学習が終了するまでの期間は、各ノード装置はデータパケットを何れのポートに出力すべきかを判断できないため、データパケットは他のノード装置にフラッディング送信（ブロードキャスト）される。そのため、リングネットワーク上の通信帯域が圧迫される、という問題が生じる。
【０００７】
本発明は、エラーが発生した際のリングネットワークの通信帯域の圧迫を抑制することを目的とする。
【課題を解決するための手段】
【０００８】
複数のノード装置と複数の通信リンクが環状に接続されたリングネットワークを用いたデータパケット送信方法であって、前記複数の通信リンクに含まれる第１通信リンクは閉鎖リンクとして設定され、前記複数のノード装置の各々は、前記リングネットワークの第１の回転方向に向かう第１ポートと、前記リングネットワークの前記第１の回転方向とは異なる第２の回転方向に向かう第２ポートとを含む複数のポートを有し、前記複数のノード装置の各々は、データパケットを前記複数のポートの何れのポートに出力するかを示す出力ポート情報と、前記リングネットワークに含まれる前記複数のノード装置のうち、前記第１通信リンクを経由しない経路上にあって、自ノード装置と前記データパケットの宛先デバイスとの間に存在するノード装置の数を示す第１ノード数とが、前記データパケットの宛先アドレス毎に登録されるフォワーディングデータベースを有し、前記データパケット送信方法は、前記複数の通信リンクに含まれる第２通信リンクにおいてエラーが発生した場合、前記第１通信リンクを前記閉鎖リンクとする設定を解除し、前記複数のノード装置に含まれ、前記第２通信リンクの第１端に接続された第１ノード装置が、前記エラーの発生を示す第１エラー通知フレームを前記リングネットワークの他のノード装置に送信し、前記複数のノード装置に含まれるノード装置であって、前記第１エラー通知フレームを受信した第２ノード装置が、前記複数のノード装置に含まれるノード装置であって、前記エラーが発生した前記第２通信リンクと前記第２ノード装置との間に存在するノード装置の数を示す第２ノード数を、前記第１エラー通知フレームに基づいて特定し、前記第２ノード装置が前記第１エラー通知フレームを前記第１ポートにおいて受信した場合であって、前記第２ノード装置の前記フォワーディングデータベースに登録された、第１宛先アドレスに対応する前記出力ポート情報が前記第１ポートを示し、かつ、前記第１ノード数が前記第２ノード数よりも大きい場合には、前記第２ノード装置は、前記第２ノード装置の前記フォワーディングデータベースの前記第１宛先アドレスに対応する前記出力ポート情報を、前記第１ポートを示す内容から前記第２ポートを示す内容に更新し、前記フォワーディングデータベースが更新された後に前記第２ノード装置が前記第１宛先アドレスを宛先とする第１データパケットを受信した場合に、前記第２ノード装置は、更新後の前記フォワーディングデータベースに基づき、前記第２ポートを介して前記第１データパケットを前記リングネットワークの他のノード装置に送信することを特徴とするデータパケット送信方法が開示される。
【発明の効果】
【０００９】
本発明は、エラーが発生した際のリングネットワークの通信帯域の圧迫を抑制することができる。
【図面の簡単な説明】
【００１０】
【図１】リングネットワークの構成を示す図である。
【図２】リングネットワークに含まれる複数の通信リンクの何れかにおいてエラーが発生した場合のデータパケットの通信経路の切り換えを示す図である。
【図３】ノード装置に保持されたＦＤＢの内容を例示する図である。
【図４】ＦＤＢに登録された情報のうち変更が必要な情報を選択的に変更する場合の、ＦＤＢの書き換え処理を説明する図である。
【図５】エラーが発生する前に実行されるＭＡＣ学習の方法を説明するための図である。
【図６】ＦＤＢに登録される第１ノード数の技術的意義を説明するための図である。
【図７】通信リンクにエラーが発生した場合の各ノード装置が実行するＦＤＢの書き換え処理を説明するための図である。
【図８】エラー通知フレームを受信したノード装置によって実行される他の処理について説明するための図である。
【図９】ノード装置が、第２エラー通知フレームを受信した場合に実行する処理を説明するための図である。
【図１０】エラーを検知したノード装置が実行するＦＤＢ更新処理を説明するための図である。
【図１１】各ノード装置のハードウェア構成を示す図である。
【図１２】ノード装置のプロセッサの機能ブロックを示す図である。
【図１３】プロセッサによって実行される処理のフローチャートであり、ノード装置がデータパケットを受信した際に実行される処理を説明するための図である。
【図１４】プロセッサによって実行される処理のフローチャートであり、ノード装置が制御フレームを受信した際に実行される処理を説明するための図である。
【図１５】プロセッサによって実行される処理のフローチャートであり、ノード装置がエラーを検知した際に実行される処理を説明するための図である。
【図１６】プロセッサによって実行される処理のフローチャートであり、ノード装置がエラー通知フレームを受信した際に実行される処理を説明するための図である。
【図１７】プロセッサによって実行される処理のフローチャートであり、図１６に引き続き、ノード装置がエラー通知フレームを受信した際に実行される処理を説明するための図である。
【図１８】各ノード装置のハードウェア構成の他の例を示す図である。
【発明を実施するための形態】
【００１１】
図１は、リングネットワークの構成を示す図である。図１においてリングネットワークは、環状に接続された複数のノード装置Ｎ１、Ｎ２、Ｎ３、Ｎ４と複数の通信リンクＬ１、Ｌ２、Ｌ３、Ｌ４を含む。以下、複数のノード装置Ｎ１、Ｎ２、Ｎ３、Ｎ４を互いに区別しない場合は、「ノード装置Ｎ」と記載し、複数の通信リンクＬ１、Ｌ２、Ｌ３、Ｌ４を互いに区別しない場合は、「通信リンクＬ」と記載する。ノード装置Ｎは、例えばレイヤ２スイッチであり、通信リンクＬは例えば光通信ケーブルである。ノード装置Ｎは、複数のポート（物理ポート）として、ポートＰ１、Ｐ２、Ｐ３を有する。以下、複数のポートＰ１、Ｐ２、Ｐ３を互いに区別しない場合は、「ポートＰ」と記載する。各ノード装置Ｎは、他のノード装置ＮとポートＰを介して接続され、またリングネットワーク外の他のネットワークとポートＰを介して接続される。尚、図１においては、各ノード装置ＮのポートＰ１は、リングネットワークの反時計回りの方向に向かうポートＰとして、ポートＰ２は、リングネットワークの時計回りの方向に向かうポートＰとして、ポートＰ３は、リングネットワーク外の他のネットワークに接続されるポートＰとして示される。
【００１２】
図１に示される例においては、ノード装置Ｎ１とノード装置Ｎ４の間の通信リンクＬ４が閉鎖リンクとして設定されている。この場合、ノード装置Ｎ１のポートＰ２とノード装置Ｎ４のポートＰ１が閉鎖ポートとして機能する。例えば端末Ｘが、端末Ｚを宛先とするデータパケットを送信したとする。データパケットはノード装置Ｎ１によって受信される。ノード装置Ｎ１においてポートＰ２は閉鎖ポートであるため、データパケットはノード装置Ｎ１、ノード装置Ｎ４、ノード装置Ｎ３を経由する通信経路を用いては端末Ｚに送信され得ない。そのためデータパケットはノード装置Ｎ１、ノード装置Ｎ２、ノード装置Ｎ３を経由する通信経路を用いて端末Ｚに送信される。図示はされていないが、ノード装置ＮはＦＤＢを有している。ＦＤＢには、データパケットを複数のポートＰの何れのポートＰに出力するかを示す出力ポート情報と、データパケットの宛先アドレスとが、対応付けられて登録されている。
【００１３】
図２は、リングネットワークに含まれる複数の通信リンクＬの何れかにおいてエラーが発生した場合のデータパケットの通信経路の切り換えを示す図である。ここでは通信リンクＬ２においてエラーが発生したとする。エラーが発生した通信リンクＬ２の両端に配置されたノード装置Ｎ２及びノード装置Ｎ３は、それぞれ通信リンクＬ２に接続されたポートＰ１及びポートＰ２を閉鎖ポートとして設定する。一方、ノード装置Ｎ１及びノード装置Ｎ４はそれぞれ、ポートＰ２及びポートＰ１の閉鎖の設定を解除することにより、通信リンクＬ４が開通し、新たな通信経路が形成される。この場合、端末Ｘからのデータパケットは、ノード装置Ｎ１、ノード装置Ｎ４、ノード装置Ｎ３を経由する通信経路を用いて端末Ｚに送信される。尚、通信リンクＬ２でエラーが発生することには、通信リンクＬ２自体においてエラーが発生する場合の他、通信リンクＬ２に接続される、ノード装置Ｎ２のポートＰ１やノード装置Ｎ３のポートＰ２にエラーが発生する場合も含まれる。ノード装置Ｎ２のポートＰ１やノード装置Ｎ３のポートＰ２にエラーが発生した場合も、ノード装置Ｎ２とノード装置Ｎ３との間で通信が途絶えるからである。
【００１４】
図３は、ノード装置Ｎ１に保持されたＦＤＢの内容を例示する図である。図３の（Ａ）は、図１のように通信リンクＬ４が閉鎖リンクとして設定されている状態におけるノード装置Ｎ１のＦＤＢの内容を示す。ＦＤＢには、データパケットの宛先アドレスと、データパケットを出力するポートＰを特定する情報（出力ポート情報）とが対応付けられて登録される。図３の（Ａ）においては、端末ＹのＭＡＣアドレス「Ｙ」と、ポートＰ１が出力ポートであることを示す出力ポート情報「Ｐ１」とが対応付けられて登録され、端末ＺのＭＡＣアドレス「Ｚ」と、出力ポート情報「Ｐ１」とが対応付けられて登録されている。よって、ノード装置Ｎ１が宛先アドレスを「Ｙ」とするデータパケットを受信した場合には、ポートＰ１から当該データパケットが出力され、ノード装置Ｎ１が宛先アドレスを「Ｚ」とするデータパケットを受信した場合には、ポートＰ１から当該データパケットが出力される。また、ＦＤＢには他の情報として、例えばＶｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＶＬＡＮ）を特定するための情報としてＶＬＡＮ―Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ（以下、ＶＬＡＮ―ＩＤ）が登録されてもよい。
【００１５】
図２に示されるようにリングネットワーク内の何れかの通信リンクＬでエラーが発生し、新たな通信経路が確立される場合には、各ノード装置ＮにおいてＦＤＢの内容を変更する必要が生じる。ＦＤＢの内容を変更する方法として、各ノード装置Ｎが自身のＦＤＢの内容を一度全て消去し、その後各ノード装置Ｎが再度ＭＡＣ学習を行って通信経路変更後の新たなＦＤＢを登録することが考えられる。ＦＤＢの内容を全て消去する処理はＦＤＢフラッシュ処理と呼ばれる。図３の（Ｂ）は、図３の（Ａ）に示されたノード装置Ｎ１のＦＤＢに対してＦＤＢフラッシュ処理が実行された状態を示す。更に図３の（Ｃ）は、ＦＤＢフラッシュ処理の後にＭＡＣ学習によって得られたノード装置Ｎ１の新たなＦＤＢの内容を示す。図３の（Ｃ）においては、端末ＹのＭＡＣアドレス「Ｙ」と出力ポート情報「Ｐ１」が対応付けられて登録され、端末ＺのＭＡＣアドレス「Ｚ」と、出力ポート情報「Ｐ２」が対応付けられて登録されている。図３の（Ａ）と（Ｃ）を比較すると、宛先アドレス「Ｚ」に対応するポート情報が、「Ｐ１」から「Ｐ２」に変更されている。つまり、端末Ｚを宛先とするデータパケットは、図１の状態においてはノード装置Ｎ１のポートＰ１からノード装置Ｎ２を経由して送信されるのに対し、エラーの発生後の状態（図２の状態）においてはノード装置Ｎ１のポートＰ２からノード装置Ｎ４を経由して送信される。
【００１６】
このように、リングネットワークにおいてエラーが発生した場合に、各ノード装置ＮがＦＤＢフラッシュ処理を実行する方法においては、その後にＭＡＣ学習が終了するまでの期間、各ノード装置Ｎはデータパケットのフラッディング送信を行なうことになり、通信帯域が圧迫される。
【００１７】
ここで本願の発明者は、通信リンクＬにエラーが発生した場合に、ＦＤＢフラッシュ処理を行わずに、ＦＤＢに登録された内容のうち変更が必要な情報を選択的に書き換える方法を見出した。通信リンクＬにエラーが発生した後のＦＤＢフラッシュ処理及びＭＡＣ学習を不要とすることにより、リングネットワークの通信帯域が圧迫されることを抑制し、またＦＤＢの変更に要する時間を短縮することができる。
【００１８】
図３の（Ａ）と（Ｃ）を比べると、宛先アドレス「Ｚ」については対応する出力ポート情報が「Ｐ１」から「Ｐ２」に変更されているが、宛先アドレス「Ｙ」については対応する出力ポート情報は「Ｐ１」のまま維持されていることが分かる。図２から理解できるように、通信リンクＬ２でエラーが発生した場合、端末Ｘから端末Ｚへのデータパケットの送信に関しては、エラー発生前とは異なる新たな通信経路への切り換えが行われる。一方、端末Ｘから端末Ｙへのデータパケットの送信に関しては、エラー発生後であっても、エラー発生前と同じ通信経路（ノード装置Ｎ１及びノード装置Ｎ２を経由する通信経路）を利用することができる。言い換えれば、通信リンクＬにエラーが発生した場合であっても、ＦＤＢに登録された情報の全てが書き換えられる訳ではなく、一部のデータは変更されることなく維持され得る。
【００１９】
図４は、ＦＤＢに登録された情報のうち変更が必要な情報を選択的に変更する場合の、ＦＤＢの書き換え処理を説明する図である。図４の（Ａ）は図３の（Ａ）と同様に、エラーが発生する前のノード装置Ｎ１のＦＤＢの内容を示し、図４の（Ｂ）は図３の（Ｃ）と同様に、エラーが発生した後のノード装置Ｎ１のＦＤＢの内容を示す。エラーが発生した場合には、ＦＤＢに登録された内容のうちの変更される個所、具体的には宛先アドレス「Ｚ」に対応する出力ポート情報が選択的に「Ｐ１」から「Ｐ２」に変更される。一方、宛先アドレス「Ｙ」に対応する出力ポート情報は「Ｐ１」に維持される。ＦＤＢに登録された情報のうち、変更が必要となる情報を選択的に抽出し、抽出された情報に対して適切な変更を行う方法の詳細について、以下に開示する。
【００２０】
本実施例においては、エラー発生前において第１の通信リンクＬが閉鎖リンクとして設定される。複数のノード装置Ｎの各々は、データパケットを複数のポートＰの何れのポートＰに出力するかを示す出力ポート情報と、第１ノード数とを、互いに対応付けてＦＤＢに登録する。第１ノード数とは、リングネットワークに含まれるノード装置Ｎのうち、第１通信リンクＬを経由しない経路上にあって、自ノード装置Ｎとデータパケットの宛先デバイスとの間に存在するノード装置Ｎの数を示す情報である。第１の通信リンクＬとは異なる第２の通信リンクＬにおいてエラーが発生した場合、第１の通信リンクＬを閉鎖リンクとする設定が解除される。また、第２の通信リンクＬの第１端に接続されたノード装置Ｎが、エラーの発生を示すエラー通知フレームをリングネットワークの他のノード装置Ｎに送信する。エラー通知フレームを受信した第２のノード装置Ｎは、リングネットワークに含まれるノード装置Ｎであって、エラーが発生した第２の通信リンクＬと自ノード装置Ｎとの間に存在するノード装置Ｎの数を示す第２ノード数を、エラー通知フレームに基づいて特定する。第２のノード装置Ｎがエラー通知フレームを第１のポートＰにおいて受信した場合、第２のノード装置Ｎは、ＦＤＢに登録されたエントリのうち、第１の宛先アドレスに対応する出力ポート情報が第１のポートＰを示すエントリを抽出する。更に第２のノード装置Ｎは、抽出されたエントリのうち、第１ノード数が示すノード装置Ｎの数が、第２ノード数が示すノード装置Ｎの数よりも大きいエントリを特定する。そして第２のノード装置Ｎは、特定されたエントリの出力ポート情報を書き換える。具体的には、出力ポート情報としてリングネットワークの第１の回転方向に向かう第１のポートＰ（例えばポートＰ１）が登録されている場合は、リングネットワークの第２の回転方向に向かう第２のポートＰ（例えばポートＰ２）に出力ポート情報を変更する。以下、詳述する。
【００２１】
図５は、エラーが発生する前に実行されるＭＡＣ学習の方法を説明するための図である。図１と同様に、ノード装置Ｎ１とノード装置Ｎ４の間の通信リンクＬ４が閉鎖リンクとして設定されているものとする。また何れのノード装置Ｎにおいても、ＦＤＢには情報が登録されていないものとする。まず端末Ｚが、端末Ｘを宛先とするデータパケットを送信するものとする。データパケットには、宛先デバイスを特定する宛先アドレスと、送信元デバイスを特定する送信元アドレスが含まれる。またデータパケットには、ＶＬＡＮを特定するＶＬＡＮ―ＩＤが含まれてもよい。データパケットはノード装置Ｎ３のポートＰ３によって受信される。
【００２２】
データパケットを受信したノード装置Ｎ３は、データパケットの送信元アドレスである「Ｚ」を、宛先アドレスとしてＦＤＢに登録し、データパケットを受信したポートＰ３を特定する情報「Ｐ３」を、出力ポート情報としてＦＤＢに登録する。送信元アドレス「Ｚ」と出力ポート情報「Ｐ３」はＦＤＢにおいて対応付けて登録される。またデータパケットに含まれる他の情報、例えばＶＬＡＮ―ＩＤが、ＦＤＢに登録される。
【００２３】
更にＦＤＢには、リングネットワークに含まれるノード装置Ｎであって、データパケットの送信元デバイスとデータパケットを受信したノード装置Ｎとの間に存在するノード装置Ｎの数を示す第１ノード数が登録される。図５に示される状態においては、各ノード装置ＮのＦＤＢの第１ノード数は未だ登録されていない。
【００２４】
ノード装置Ｎ３は、受信されたデータパケットに基づいてＦＤＢに所定の情報を登録した後、データパケットをフラッディング送信する。ここでは、ポートＰ１とポートＰ２の両方から、データパケットが送信される。ノード装置Ｎ３のポートＰ２から送信されたデータパケットは、ノード装置Ｎ３に隣接するノード装置Ｎ２のポートＰ１によって受信される。そしてノード装置Ｎ２は、受信されたデータパケットの送信元デバイスを示す送信元アドレス「Ｚ」を、宛先アドレスとしてＦＤＢに登録し、データパケットを受信したポートＰ１を特定する情報「Ｐ１」を、出力ポート情報としてＦＤＢに登録する。宛先アドレス「Ｚ」と出力ポート情報「Ｐ１」はＦＤＢにおいて対応付けて登録される。
【００２５】
更にノード装置Ｎ２は、受信されたデータパケットに基づいてＦＤＢに所定の情報を登録した後、データパケットをフラッディング送信する。ここでは、ポートＰ２とポートＰ３の両方から、データパケットが送信される。
【００２６】
ノード装置Ｎ２のポートＰ２から送信されたデータパケットは、ノード装置Ｎ２に隣接するノード装置Ｎ１のポートＰ１によって受信される。そしてノード装置Ｎ１は、受信されたデータパケットの送信元デバイスを示す送信元アドレス「Ｚ」を、宛先アドレスとしてＦＤＢに登録し、データパケットを受信したポートＰ１を特定する情報「Ｐ１」を、出力ポート情報としてＦＤＢに登録する。宛先アドレス「Ｚ」と出力ポート情報「Ｐ１」はＦＤＢにおいて対応付けて登録される。
【００２７】
更にノード装置Ｎ１は、受信されたデータパケットに基づいてＦＤＢに所定の情報を登録した後、データパケットをフラッディング送信する。ここでは、ポートＰ２は閉鎖ポートとして設定されているため、ポートＰ３からデータパケットが送信される。その後データパケットは、ネットワークを介して端末Ｘに送信される。
【００２８】
このようにして各ノード装置ＮがＭＡＣ学習を行ってＦＤＢを作成した後に、例えば端末Ｘが端末Ｚ宛てのデータパケットを送信したとする。この場合、まずノード装置Ｎ１がデータパケットを受信し、ノード装置Ｎ１は自身のＦＤＢに基づいてデータパケットをどのポートＰを用いて出力するかを判断する。具体的には、データパケットの宛先アドレスが「Ｚ」であるため、ＦＤＢにおいて宛先アドレス「Ｚ」に対応して登録されている出力ポート情報「Ｐ１」が特定される。そしてノード装置Ｎ１のポートＰ１から出力されたデータパケットは、ノード装置Ｎ２によって受信され、ノード装置Ｎ２は自身のＦＤＢを参照することによってポートＰ１を用いてデータパケットを転送する。更にこのデータパケットを受信したノード装置Ｎ３は、自身のＦＤＢを参照することによってポートＰ３を用いてデータパケットを転送する。その後、データパケットは宛先デバイスである端末Ｚに到達する。
【００２９】
以上、ＭＡＣ学習の方法と、ＭＡＣ学習によって生成されたＦＤＢの利用方法について説明した。次に、各ノード装置ＮのＦＤＢに登録される第１ノード数について説明する。
【００３０】
図６は、ＦＤＢに登録される第１ノード数の技術的意義を説明するための図である。図５においてデータパケットがノード装置Ｎ３、ノード装置Ｎ２、ノード装置Ｎ１を経由して端末Ｚから端末Ｘへ送信された後、ノード装置Ｎ３が制御フレームを生成する。制御フレームは、先に送信されたデータパケットの送信元アドレス「Ｚ」と、第１ノード数とを含むフレームであり、複数のデータパケットが送信される場合にはデータパケットとデータパケットの間の領域（Ｉｎｔｅｒ  Ｆｒａｍｅ  Ｇａｐ領域、以下、ＩＦＧ領域）を利用して送信される。ノード装置Ｎ３によって生成される制御フレームにおいて、第１ノード数は初期値である「１」に設定される。ノード装置Ｎ３は制御フレームをフラッディング送信する。尚、制御フレームの先頭位置には、当該フレームが宛先アドレスと第１ノード数を含む制御フレームであることを示す判定用データが登録される。例えば判定用データとしては、１バイトの全ての値を「１」とした「１１１１１１１１」が用いられる。
【００３１】
ノード装置Ｎ３から送信された制御フレームは、ノード装置Ｎ２によって受信される。ノード装置Ｎ２は、受信されたフレームの先頭の１バイトの値が全て「１」である場合に、当該フレームが制御フレームであることを認識する。そしてノード装置Ｎ２は、判定用データに続く送信元アドレス「Ｚ」と第１ノード数「１」に基づき、自身のＦＢＤに、第１ノード数「１」を宛先アドレス「Ｚ」に対応させて登録する。
【００３２】
次にノード装置Ｎ２は、制御フレーム内の第１ノード数「１」を１つ増加（インクリメント）させて「２」に更新し、更新後の制御フレームをポートＰ２から出力する。
【００３３】
ノード装置Ｎ２に隣接するノード装置Ｎ１は、ノード装置Ｎ２から送信された制御フレームを受信し、制御フレームに含まれる送信元アドレス「Ｚ」と第１ノード数「２」に基づき、自身のＦＢＤに第１ノード数「２」を、宛先アドレス「Ｚ」に対応させて登録する。言い換えれば、各ノード装置ＮのＦＤＢに登録される第１ノード数は、リングネットワークに含まれるノード装置Ｎであって、宛先アドレスによって特定されるデバイスと自ノード装置Ｎとの間に配置されたノード装置Ｎの数を意味する。次に、各ノード装置ＮのＦＤＢに登録された第１ノード数を用いたＦＤＢの書き換え処理について説明する。
【００３４】
図７は、通信リンクＬにエラーが発生した場合の各ノード装置Ｎが実行するＦＤＢの書き換え処理を説明するための図である。リングネットワークに含まれる複数のノード装置Ｎの各々は、自身が接続される通信リンクＬにエラーが発生したか否かをモニタする。例えば複数のノード装置Ｎの各々は互いに、通信リンクＬを介して接続確認メッセージ、例えばＣｏｎｔｉｎｕｉｔｙ  Ｃｈｅｃｋ  Ｍｅｓｓａｇｅ（以下、ＣＣＭ）を送信し合い、接続確認メッセージの受信が途絶えた場合に、通信リンクＬにおいてエラーが発生したことを検知する。図７に示されるように、通信リンクＬ２においてエラーが発生した場合、エラーが発生した通信リンクＬ２の両端に位置するノード装置Ｎ２とノード装置Ｎ３がエラーの発生を検知する。
【００３５】
ノード装置Ｎ２及びノード装置Ｎ３は、エラーの発生を他のノード装置Ｎに通知するためのエラー通知フレームを発行する。説明の便宜上、ノード装置Ｎ２が発行したエラー通知フレームを「第１エラー通知フレーム」と記載し、ノード装置Ｎ３が発行したエラー通知フレームを「第２エラー通知フレーム」と記載するが、両者を区別する必要がない場合は単に「エラー通知フレーム」と記載するものとする。エラー通知フレームは、第２ノード数を含む。第２ノード数は、エラー通知フレームが通過したノード装置Ｎの数を示す情報である。ノード装置Ｎ２から出力されたエラー通知フレームにおいて、第２ノード数は初期値ある「１」に設定される。同様にノード装置Ｎ３から出力されたエラー通知フレームにおいても、第２ノード数は初期値の「１」に設定される。そしてエラー通知フレームはリングネットワークに含まれる他のノード装置Ｎに送信される。尚、各ノード装置Ｎが他のリングネットワークに属する場合もあるため、エラー通知フレームには、リングネットワークを特定するリングＩＤが含まれる。またノード装置Ｎ２及びノード装置Ｎ３はそれぞれ、エラーが発生した通信リンクＬ２に接続されるポートＰ１及びポートＰ２を閉鎖ポートに切り替える処理も実行する。
【００３６】
尚、エラー通知フレームが他のノード装置Ｎによって受信された場合、当該他のノード装置Ｎは、エラー通知フレームに含まれる第２ノード数が示す値をインクリメントさせてエラー通知フレームを更新する。更新されたエラー通知フレームは更に他のノード装置Ｎに転送される。このようにエラー通知フレームは、ノード装置Ｎを通過する度に第２ノード数の値が１つずつ増加され、リングネットワーク内を順に転送される。
【００３７】
図７において、ノード装置Ｎ２から送信されたエラー通知フレームは、ノード装置Ｎ１によって受信される。ノード装置Ｎ１は、受信されたエラー通知フレームに基づいて、ＦＤＢに登録されたエントリのうち、エラーの発生に起因して書き換える必要が生じたエントリを特定する。ここで、ノード装置Ｎ１のＦＤＢに登録されたエントリのうち、エラーの発生に起因して書き換える必要が生じたエントリを特定する方法について説明する。
【００３８】
ノード装置Ｎ１は、自身のＦＤＢに登録されているエントリのうち、以下に説明される第１条件と第２条件の両方を満たすエントリを特定する。第１条件は、「エントリに含まれる出力ポート情報が示すポートＰが、エラー通知フレームを受信したポートＰと同一であるエントリであること」である。すなわち図７の例においては、ノード装置Ｎ１はポートＰ１においてエラー通知フレームを受信しているため、ＦＤＢに登録されている出力ポート情報が「Ｐ１」となっているエントリが第１条件を満たす。その結果、宛先アドレスが「Ｙ」であるエントリと、宛先アドレスが「Ｚ」であるエントリが抽出される。
【００３９】
第２条件は、「第１ノード数が、第２ノード数よりも大きいエントリであること」である。よってノード装置Ｎ１は、第１条件を満たすエントリに関して、エントリに含まれる第１ノード数と、受信されたエラー通知フレームに含まれる第２ノード数を、エントリ毎に比較する。そして第１ノード数が、第２ノード数よりも大きいエントリを特定する。図７に示される例において、宛先アドレスが「Ｙ」であるエントリについては、第１ノード数値は「１」であり、第２ノード数の「１」と同じ値である。そのため、このエントリは変更対象としては特定されない。一方、宛先アドレスが「Ｚ」であるエントリについては、第１ノード数は「２」であり、第２ノード数の「１」よりも大きい。よってこのエントリが変更対象としては特定される。そして特定されたエントリの出力ポート情報の内容が書き換えられる。具体的には、リングネットワークの第１の回転方向に接続されたポートＰ（例えばポートＰ１）が出力ポートとして登録されていた場合には、リングネットワークの第２の回転方向に接続されたポートＰ（例えばポートＰ２）が新たな出力ポートとなるように、ＦＤＢが変更される。このような手法によれば、エラーが発生した場合であってもＦＤＢフラッシュ処理は実行されず、宛先アドレス「Ｚ」のエントリの出力ポート情報が選択的に変更される。つまり、上記の第１条件と第２条件を満たすエントリ以外のエントリについては登録された内容が維持される。また、第１条件と第２条件を満たすエントリについても、ＭＡＣ学習を再度行うことなく、新たな出力ポート情報が登録される。
【００４０】
図８は、エラー通知フレームを受信したノード装置Ｎ１によって実行される他の処理について説明するための図である。ノード装置Ｎ１は、宛先アドレスが「Ｚ」であるエントリの出力ポート情報を「Ｐ１」から「Ｐ２」に書き換えるとともに、第１ノード数を一旦「０」に変更する。ノード装置Ｎ１が、出力ポート情報を書き換えた後に、ノード装置Ｎ３から送信された第２エラー通知フレームを受信した場合に、第２エラー通知フレームについて上記の第１条件及び第２条件が満たされる場合がある。そのような場合には、出力ポート情報が再度書き換わる（元に戻る）ことになる。出力ポート情報の再度の書き換えを防止するために、ノード装置Ｎ１は、第１ノード数を一旦「０」に変更する。
【００４１】
更にノード装置Ｎ１は、ポートＰ２を閉鎖ポートから解放する。この処理は、ノード装置Ｎ３から送信された第２エラー通知フレームを受信したノード装置Ｎ４においても同様に実行される。これによりリングネットワーク内に新たな通信経路が形成される。
【００４２】
図９は、ノード装置Ｎが、第２エラー通知フレームを受信した場合に実行する処理を説明するための図である。図８において説明されたように、ノード装置Ｎ１とノード装置Ｎ４との間の通信リンクＬ４の閉鎖が解除され、その結果、図９においてノード装置Ｎ１は、ノード装置Ｎ３が発行した第２エラー通知フレームを受信する。上述のように、エラー通知フレームがノード装置Ｎを通過する度に、エラー通知フレームに含まれる第２ノード数はインクリメントされる。そのため、ノード装置Ｎ１が受信した第２エラー通知フレームの第２ノード数は「２」である。ここでノード装置Ｎ１は第２エラー通知フレームの受信に基づき、第１条件と第２条件を満たすエントリを特定する。第１条件を満たすエントリとしては、宛先アドレスが「Ｚ」であるエントリが挙げられる。すなわち、先の第１エラー通知フレームの受信に基づき、宛先アドレスが「Ｚ」であるエントリの出力ポート情報は「Ｐ１」から「Ｐ２」に変更されており、第１条件が満たされる。次にノード装置Ｎ１は第１条件を満たすエントリに関して第２条件が満たされるか否かを判定する。第２エラー通知フレームに含まれる第２ノード数は「２」である。一方、第１ノード数は、上述のように第１エラー通知フレームの受信に基づき「２」から「０」に変更されている。その結果、第２条件は満たされず、このエントリの出力ポート情報が再度書き換えられることが防止される。仮に第１エラー通知フレームの受信時に出力ポート情報を変更し、第１ノード数の「０」への変更を行わないとすると、第１ノード数と第２ノード数の大小関係によっては、第２エラー通知フレームの受信に基づいて出力ポート情報が元の内容に戻ってしまう場合が有り得る。更新された出力ポート情報が元の内容に戻ることを防止するために、第１ノード数を一旦「０」に変更しておく処理は有効である。但しこの第１ノード数の「０」という値は、ノード装置Ｎ１から端末Ｚへ至る新たな通信経路におけるノード装置Ｎの実際の数を表しておらず、改めて正しい値が登録される必要がる。ここで、新たな通信経路における第１ノード数の算出方法について説明する。
【００４３】
ノード装置Ｎ１は、変更される前の第１ノード数（ａとする）と、第１エラー通知フレームに含まれる第２ノード数（ｂとする）を記憶しておく。そしてノード装置Ｎ１は、第２エラー通知フレームを受信した際に、第２エラー通知フレームに含まれる第２ノード数（ｃとする）を取得し、下記の式１に基づいて、新たな通信経路における第１ノード数（ｄとする）を算出する。
（式１）
ｄ＝ｂ＋ｃ＋１−ａ
図９の例においては、ａ＝２、ｂ＝１、ｃ＝２であるので、式１に基づきｄが「２」と算出される。これは、図９においてノード装置Ｎ１から端末Ｚに至る新たな通信経路は、ノード装置Ｎ１、ノード装置Ｎ４及びノード装置Ｎ３を経由して端末Ｚに至るため、ノード装置Ｎ１と端末Ｚの間に、リングネットワークを構成するノード装置Ｎが「２」個配置されていることを意味する。そしてノード装置Ｎ１はこの計算結果に基づき、ＦＤＢに登録されている第１ノード数を「０」から「２」に書き換える。このように、通信経路の変更があった場合には、出力ポート情報のみならず、第１ノード数も更新されることにより、その後に更なるエラーが発生した場合おいても、同様の手法によりＦＤＢの内容を適切に更新することが可能となる。これにより、ノード装置Ｎ１における一連のＦＤＢ更新処理が終了する。
【００４４】
図１０は、エラーを検知したノード装置Ｎ２及びノード装置Ｎ３が実行するＦＤＢ更新処理を説明するための図である。図９において説明された処理に加え、ノード装置Ｎ１は更に第２エラー通知フレームをノード装置Ｎ２に送信する。尚、第２エラー通知フレームの第２ノード数は「３」にインクリメントされているものとする。
【００４５】
ノード装置Ｎ２は、図７において説明されたように、エラーの発生を検知したノード装置Ｎであり、自身のポートＰ１が接続される通信リンクＬ２においてエラーが発生したことを認識している。よってノード装置Ｎ２は、自身のＦＤＢにおいて出力ポート情報が「Ｐ１」と登録されているエントリについては、全て出力ポート情報を「Ｐ１」から「Ｐ２」に変更する。図１０の例においては、ＦＤＢに登録されたエントリのうち、宛先アドレスが「Ｚ」であるエントリの出力ポート情報が「Ｐ１」から「Ｐ２」に変更される。尚、この処理は、第２エラー通知フレームの受信に起因して実行される必要はなく、例えば図７においてエラーが検知されたタイミング以降の何れかのタイミングで実行されればよい。
【００４６】
またノード装置Ｎ２は、第２エラー通知フレームを受信した際、出力ポート情報が変更されたエントリの第１ノード数を変更する。具体的にはノード装置Ｎ２は、変更される前の第１ノード数ａと、第２エラー通知フレームに含まれる第２ノード数ｃを用い、下記の式２に基づいて、新たな通信経路における第１ノード数ｄを算出する。
（式２）
ｄ＝ｃ＋１−ａ
図１０の例においては、ａ＝１、ｃ＝３であるので、式２に基づきｄが「３」と算出される。これは、ノード装置Ｎ２から端末Ｚに至る新たな通信経路は、ノード装置Ｎ２からノード装置Ｎ１、ノード装置Ｎ４及びノード装置Ｎ３を経由して端末Ｚに至るため、ノード装置Ｎ２と端末Ｚの間に、リングネットワークを構成するノード装置Ｎが「３」個配置されていることを意味する。そしてノード装置Ｎ２はこの計算結果に基づき、ＦＤＢに登録されている第１ノード数を「１」から「３」に書き換える。これにより、ノード装置Ｎ２における一連のＦＤＢ更新処理が終了する。
【００４７】
エラーを検知した他のノード装置Ｎであるノード装置Ｎ３は、ノード装置Ｎ２と同様の処理を行うことにより、出力ポート情報及び第１ノード数を更新する。
【００４８】
ここまでに説明されたように、本実施例においては、エラーが発生した際にＦＤＢフラッシュ処理によりＦＤＢに登録されている内容、すなわちＭＡＣ学習によって得られた情報を消去することなく、通信経路の変更に伴う出力ポート情報の書き換えが行われる。よって、ＦＤＢフラッシュ処理により再度のＭＡＣ学習を行う必要はなく、データパケットのフラッディング送信を抑制することができ、リングネットワークの通信帯域が圧迫されることを抑えることができる。またＦＤＢの書き換えに要する時間を短縮することができる。
【００４９】
図１１は、各ノード装置Ｎのハードウェア構成を示す図である。ノード装置Ｎは、複数のコネクタ（図１乃至図１０におけるポートＰ１、Ｐ２、Ｐ３に対応）と、各コネクタ１０５に対応して設けられた複数の光モジュール１１０と、プロセッサ１２０と、不揮発性メモリ１３０と、揮発性メモリ１４０とを有する。
【００５０】
複数のコネクタ１０５は、それぞれ例えば光ケーブルを介して他のノード装置Ｎに接続される。光モジュール１１０は、コネクタ１０５にて受信された光信号を電気信号に変換するコンバータである。プロセッサ１２０は、不揮発性メモリ１３０に格納されたコンピュータプログラムを揮発性メモリ１４０にロードして実行する。例えばプロセッサ１２０は、各ポートＰの閉鎖の設定及び閉鎖の設定の解除、ＭＡＣ学習、制御フレームの生成、エラーの検知、エラー通知フレームの生成、ＦＤＢの書き換え処理等を実行する。プロセッサ１２０はハードウェアプロセッサであり、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＣＰＵ）、Ｍｉｃｒｏ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ（ＭＣＵ）、Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＭＰＵ）、Ｎｅｔｗｏｒｋ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ（ＮＰＵ）、Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ（ＤＳＰ）の他、Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ（ＦＰＧＡ）やＡｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ（ＡＳＩＣ）も適用可能である。
【００５１】
不揮発性メモリ１３０は、コンピュータで読み取り可能な記録媒体である。不揮発性メモリ１３０には、プロセッサ１２０によって実行されるコンピュータプログラム等が格納される。不揮発性メモリ１３０は、例えばＲｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＲＯＭ）、Ｍａｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（マスクＲＯＭ）、Ｐｒｏｇｒａｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＰＲＯＭ）、フラッシュメモリ、Ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＭＲＡＭ）、Ｒｅｓｉｓｔｉｖｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＲｅＲＡＭ）、Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＦｅＲＡＭ）等である。コンピュータプログラムは、不揮発性メモリ１３０以外の記憶媒体であって、コンピュータで読み取り可能な記録媒体（ただし、搬送波は除く）に記録されることもできる。また、コンピュータプログラムが記録されたＤｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ（ＤＶＤ）、Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（ＣＤ−ＲＯＭ）などの可搬型記録媒体を流通させることもできる。また、コンピュータプログラムは、ネットワークを介して送信され得る。
【００５２】
揮発性メモリ１４０は、コンピュータで読み取り可能な記録媒体である。揮発性メモリ１４０には、不揮発性メモリ１３０に格納されているコンピュータプログラムがロードされる。また揮発性メモリ１４０には、プロセッサ１２０による演算処理に使用されるデータや演算処理の結果であるデータ等が保持される。揮発性メモリ１４０は、例えばＳｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＳＲＡＭ）やＤｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（ＤＲＡＭ）等である。
【００５３】
図１２は、ノード装置Ｎのプロセッサ１２０の機能ブロックを示す図である。プロセッサ１２０は、例えば不揮発性メモリ１３０に格納されたコンピュータプログラムを実行することにより、制御フレーム生成部１２１、データ送受信部１２２、ＦＤＢ制御部１２３、ブロッキング制御部１２４、エラー検知部１２５、エラー通知フレーム生成部１２６、ポート制御部１２７として機能する。
【００５４】
制御フレーム生成部１２１は、第１ノード数を含む制御フレームを生成する。ノード装置Ｎが他のノード装置Ｎから制御フレームを受信した場合には、制御フレーム生成部１２１は、受信された制御フレームに含まれる第１ノード数をインクリメントすることによって制御フレームを更新する。また制御フレーム生成部１２１は、ＩＦＧ領域の制御フレームを受信した際、制御フレームを各フィールド（第１ノード数など）に分解する。データ送受信部１２２は、データパケットや制御フレーム、エラー通知フレーム等の送受信を行う。ＦＤＢ制御部１２３は、ＭＡＣ学習時におけるＦＢＤへのエントリの登録や、エラーが発生した際のＦＤＢのエントリの登録内容の書き換え等を行う。ブロッキング制御部１２４は、ポートＰの閉鎖の設定や、閉鎖の設定の解除を行う。エラー検知部１２５は、通信リンクＬにおいて発生したエラーの検知処理を行う。エラー通知フレーム生成部１２６は、エラー検知部１２５がエラーを検知した際に、エラー通知フレームを生成する。ポート制御部１２７は、データパケットの宛先アドレスに対応してＦＤＢに登録されている出力ポート情報に基づき、データパケットが送信されるポートＰを選択し、選択されたポートＰからデータパケットが送信されるようポートＰを制御する。
【００５５】
またプロセッサ１２０は、ＦＤＢ１２８を有する。ＦＤＢ１２８は、プロセッサ１２０の外部に設けられてもよい。例えばＦＤＢ１２８は不揮発性メモリ１３０や揮発性メモリ１４０に保存されてもよい。
【００５６】
図１３は、プロセッサ１２０によって実行される処理のフローチャートであり、ノード装置Ｎがデータパケットを受信した際に実行される処理を説明するための図である。処理フローは処理Ｓ３０において開始され、処理Ｓ３１においてデータ送受信部１２２が、データパケットを受信する。処理Ｓ３２においてＦＤＢ制御部１２３が、受信されたデータパケットの宛先アドレスがＦＤＢ１２８に登録されているか否かを判定する。データパケットの宛先アドレスがＦＤＢ１２８に登録されていると判定された場合（処理Ｓ３２のＹｅｓ）は、処理フローは処理Ｓ３３へ進み、データパケットの宛先アドレスがＦＤＢ１２８に登録されていると判定されない場合（処理Ｓ３２のＮｏ）は、処理フローは処理Ｓ３４へ進む。処理フローが処理Ｓ３３へ進んだ場合、処理Ｓ３３においてポート制御部１２７が、ＦＤＢ１２８の内容とデータパケットの宛先アドレスに基づいてポートＰを選択し、データ送受信部１２２が、選択されたポートＰからデータパケットを送信する。処理フローが処理Ｓ３４に進んだ場合は、処理Ｓ３４においてポート制御部１２７及びデータ送受信部１２２が、データパケットを全てのポートＰからフラッディング送信する。
【００５７】
処理Ｓ３５においてＦＤＢ制御部１２３が、データパケットの送信元アドレスがＦＤＢ１２８に登録されているか否かを判定する。送信元アドレスがＦＤＢ１２８に登録されていると判定された場合（処理Ｓ３５のＹｅｓ）は、処理フローは処理Ｓ３７へ進み、送信元アドレスがＦＤＢ１２８に登録されていると判定されない場合（処理Ｓ３５のＮｏ）は、処理フローは処理Ｓ３６へ進む。処理Ｓ３６においてＦＤＢ制御部１２３が、新たなエントリとして、宛先アドレス（データパケットの送信元アドレス）と、データパケットを受信したポートＰを特定する出力ポート情報とを、互いに対応付けてＦＤＢ１２８に登録する。処理Ｓ３７においてデータ送受信部１２２が、データパケットを受信したポートＰがリングネットワーク外に接続されたポートＰであるか否かを判定する。ポートＰがリングネットワーク外に接続されたポートＰであると判定された場合（処理Ｓ３７のＹｅｓ）は、処理フローは処理Ｓ３８へ進み、ポートＰがリングネットワーク外に接続されたポートＰであると判定されない場合（処理Ｓ３７のＮｏ）は、処理フローは処理Ｓ４０へ進む。
【００５８】
処理Ｓ３８において制御フレーム生成部１２１は、制御フレームを生成する。ここで制御フレームには、第１ノード数と、データパケットの送信元アドレスが登録される。第１ノード数は、初期値として「１」に設定される。処理Ｓ３９においてデータ送受信部１２２が、初期値「１」に設定された第１ノード数を含む制御フレームを、リングネットワークに含まれる他のノード装置Ｎへ送信する。その後、処理フローは処理Ｓ４０において終了する。
【００５９】
図１４は、プロセッサ１２０によって実行される処理のフローチャートであり、ノード装置Ｎが制御フレームを受信した際に実行される処理を説明するための図である。処理フローは処理Ｓ５０において開始され、処理Ｓ５１においてデータ送受信部１２２が制御フレームを受信する。尚、データ送受信部１２２は、ＩＦＧ領域において受信されたフレームの判定用データの内容に基づいて、当該フレームが第１ノード数等を含む制御フレームであることを識別する。処理Ｓ５２においてＦＤＢ制御部１２３が、制御フレームに含まれる送信元アドレスを抽出する。処理Ｓ５３においてＦＤＢ制御部１２３が、ＦＤＢ１２８に登録されているエントリのうち、制御フレームから抽出された送信元アドレスと一致する宛先アドレスを有するエントリを特定する。処理Ｓ５４においてＦＤＢ制御部１２３が、特定されたエントリに、制御フレームに含まれる第１ノード数を登録する。これにより、ＦＤＢ１２８には、宛先アドレスと、出力ポート情報と、第１ノード数とが互いに対応付けられて登録される。処理Ｓ５５において制御フレーム生成部１２１が、受信された制御フレームの第１ノード数をインクリメントすることによって制御フレームを更新する。そして処理Ｓ５６においてデータ送受信部１２２が、更新された制御フレームをリングネットワークの次のノード装置Ｎに送信する。その後、処理フローは処理Ｓ５７において終了する。
【００６０】
図１５は、プロセッサ１２０によって実行される処理のフローチャートであり、ノード装置Ｎがエラーを検知した際に実行される処理を説明するための図である。処理フローは処理Ｓ６０において開始され、処理Ｓ６１においてエラー検知部１２５が、自ノード装置Ｎに含まれる何れかのポートＰに接続された通信リンクＬにおいてエラーが発生したことを検知する。処理Ｓ６２においてブロッキング制御部１２４が、自ノード装置Ｎに含まれる複数のポートＰのうち、閉鎖ポートとして設定されているポートＰがあるか否かを判定する。閉鎖ポートとして設定されているポートＰがあると判定された場合（処理Ｓ６２のＹｅｓ）は、処理フローは処理Ｓ６３へ進み、閉鎖ポートとして設定されているポートＰがあると判定されない場合（処理Ｓ６２のＮｏ）は、処理フローは処理Ｓ６４へ進む。
【００６１】
処理Ｓ６３においてブロッキング制御部１２４は、閉鎖ポートとして設定されているポートＰについて、閉鎖の設定を解除する。これにより閉鎖リンクの通信経路としての使用が可能となる。処理Ｓ６４においてブロッキング制御部１２４が、エラーが発生した通信リンクＬに接続されたポートＰを、閉鎖ポートとして設定する。これにより、エラーが発生した通信リンクＬは通信経路から除外される。処理Ｓ６５においてＦＤＢ制御部１２３が、自ノード装置ＮのＦＤＢ１２８のエントリのうち、閉鎖されたポートＰが出力ポートとして登録されているエントリについて、出力ポート情報を変更する。具体的には、閉鎖されたポートＰがリングネットワークの第１の回転方向に向かうポートＰ（例えばポートＰ１）である場合は、第１の回転方向とは逆の第２の回転方向に向かうポートＰ（例えばポートＰ２）が出力ポートとなるように、出力ポート情報を変更する。処理Ｓ６６においてエラー通知フレーム生成部１２６が、発生したエラーを他のノード装置Ｎに通知するためのエラー通知フレームを生成する。エラー通知フレームには、第２ノード数が含まれる。第２ノード数は、初期値である「１」に設定される。処理Ｓ６７においてデータ送受信部１２２が、エラー通知フレームをリングネットワークの次のノード装置Ｎに送信する。その後、処理フローは処理Ｓ６８において終了する。
【００６２】
図１６は、プロセッサ１２０によって実行される処理のフローチャートであり、ノード装置Ｎがエラー通知フレームを受信した際に実行される処理を説明するための図である。処理フローは処理Ｓ７０において開始され、処理Ｓ７１においてデータ送受信部１２２が、エラー通知フレームを受信する。処理Ｓ７２においてエラー検知部１２５が、自ノード装置Ｎがエラーを検知したノード装置Ｎであるか否かを判定する。自ノード装置Ｎがエラーを検知したノード装置Ｎであると判定された場合（処理Ｓ７２のＹｅｓ）は、処理フローは、後述の図１７の処理Ｓ８２へ進み、自ノード装置Ｎがエラーを検知したノード装置Ｎであると判定されない場合（処理Ｓ７２のＮｏ）は、処理フローは処理Ｓ７３へ進む。処理Ｓ７２のＹｅｓの場合とは、エラーを検知したノード装置Ｎが、エラーが発生した通信リンクＬの他の端に設けられた他のノード装置Ｎから、他のエラー通知フレームを受信した場合を意味する。
【００６３】
処理フローが処理Ｓ７３に進んだ場合、処理Ｓ７３においてブロッキング制御部１２４が、自ノード装置Ｎが有する複数のポートＰのうち、閉鎖ポートとして設定されているポートＰがあるか否かを判定する。閉鎖ポートとして設定されているポートＰがあると判定された場合（処理Ｓ７３のＹｅｓ）は、処理フローは処理Ｓ７４へ進み、閉鎖ポートとして設定されているポートＰがあると判定されない場合（処理Ｓ７３のＮｏ）は、処理フローは処理Ｓ７５へ進む。
【００６４】
処理Ｓ７４においてブロッキング制御部１２４は、閉鎖ポートとして設定されているポートＰについて、閉鎖の設定を解除する。これにより閉鎖されていた通信リンクＬを通信経路として使用することが可能となる。処理Ｓ７５においてエラー通知フレーム生成部１２６が、受信されたエラー通知フレームに含まれる第２ノード数をインクリメントすることにより、エラー通知フレームを更新する。処理Ｓ７６においてデータ送受信部１２２が、更新されたエラー通知フレームをリングネットワークの次のノード装置Ｎに送信する。処理フローは図１７に示される処理Ｓ７７に進む。
【００６５】
図１７は、プロセッサ１２０によって実行される処理のフローチャートであり、図１６に引き続き、ノード装置Ｎがエラー通知フレームを受信した際に実行される処理を説明するための図である。処理Ｓ７７においてＦＤＢ制御部１２３が、エラー通知フレームを受信したポートＰと同一のポートＰが出力ポート情報として登録されているエントリを抽出する。処理Ｓ７８においてＦＤＢ制御部１２３が、処理Ｓ７７において抽出されたエントリであって、エントリ中の第１ノード数が、エラー通知フレーム中の第２ノード数よりも大きいエントリを特定する。処理Ｓ７９においてＦＤＢ制御部１２３が、特定されたエントリ中の出力ポート情報を変更する。例えばノード装置Ｎが、リングネットワークの第１の回転方向に向かう第１のポート（例えばポートＰ１）と、リングネットワークの第２の回転方向に向かう第２のポートＰ（例えばポートＰ２）を有し、エントリに登録されている出力ポート情報が「Ｐ１」である場合には、出力ポート情報は「Ｐ２」に変更される。更に処理Ｓ８０においてＦＤＢ制御部１２３が、特定されたエントリ中の第１ノード数を「０」に変更する。これは上述のように、ノード装置Ｎが他のエラー通知フレームを受信した場合に、既に変更された出力ポート情報が再度変更されて元に戻ることを防止するために実行される処理である。
【００６６】
処理Ｓ８１においてデータ送受信部１２２が、他のエラー通知フレームを受信したか否かを判定する。他のエラー通知フレームを受信したと判定された場合（処理Ｓ８１のＹｅｓ）は、処理フローは処理Ｓ８２へ進み、他のエラー通知フレームを受信したと判定されない場合（処理Ｓ８１のＮｏ）は、処理フローは処理Ｓ８１を繰り返す。処理Ｓ８２においてＦＤＢ制御部１２３は、エラー通知フレームに含まれる第２ノード数に基づき、新たな第１ノード数を特定する。処理Ｓ８１から処理Ｓ８２へ処理フローが進んだ場合は、受信された２つのエラー通知フレームの各々に含まれる第２ノード数に基づき、式１に基づいて新たな第１ノード数が特定される。処理Ｓ７２から処理Ｓ８２へ処理フローが進んだ場合は、受信された１つのエラー通知フレームに含まれる第２ノード数に基づき、式２に基づいて新たな第１ノード数が特定される。そして処理Ｓ８３においてＦＤＢ制御部１２３は、特定された第１ノード数をＦＤＢ１２８に登録する。
【００６７】
以上、エラーが発生した際の、各ノード装置Ｎにおいて実行される処理フローが説明された。
【００６８】
図１８は、各ノード装置Ｎのハードウェア構成の他の例を示す図である。図１１において開示されたハードウェア構成に含まれるプロセッサ１２０は、データ処理機能を有する複数のデバイスの組み合わせによって実現されてもよい。例えば、プロセッサ１２０は、ＣＰＵ１２０ａ、ＦＰＧＡ１２０ｂ、Ｌ２スイッチデバイス１２０ｃの組み合わせによって実現されてもよい。この場合、図１２に開示されたプロセッサ１２０の複数の機能のうち、例えば、ポート制御部１２７がＣＰＵ１２０ａによって実現され、制御フレーム生成部１２１、エラー検知部１２５、エラー通知フレーム生成部１２６がＦＰＧＡ１２０ｂによって実現され、データ送受信部１２２、ＦＤＢ制御部１２３、ブロッキング制御部１２４がＬ２スイッチデバイス１２０ｃによって実現されてもよい。
【００６９】
次に、第１ノード数を含む制御フレームの変形例について説明する。図６においては、制御フレームは、ＩＦＧ領域を利用して送信された。変形例としては、各ノード装置Ｎは接続確認のために送信し合う接続確認メッセージ、例えばＣＣＭを用いて、第１ノード数を他のノード装置Ｎに通知してもよい。上述のように、各ノード装置は定期的にリングネットワークの他のノード装置ＮにＣＣＭを送信する。変形例においては、ＣＣＭの空き領域（例えばｔｘＣＦｂ領域又はＲｅｓｅｒｖｅｄ領域）に、図６にて開示された判定用データ、送信元アドレス、第１ノード数が格納される。第１ノード数は、初期値の「１」に設定され、他のノード装置Ｎへ送信される。ＣＣＭを受信した他のノード装置Ｎは、ＣＣＭに含まれる第１ノード数をＦＤＢ１２８に登録する。更に当該他のノード装置Ｎは、受信されたＣＣＭの第１ノード数をインクリメントした値を用いて自身のＣＣＭを生成し、生成されたＣＣＭを更に他のノード装置Ｎへ送信する。この方法により、ＩＦＧ領域を用いて制御フレームを送信することなく、各ノード装置Ｎが第１ノード数をＦＤＢ１２８に登録することが可能となる。
【００７０】
開示の実施例に基づき、更に以下の付記を開示する。
（付記１）
複数のノード装置と複数の通信リンクが環状に接続されたリングネットワークを用いたデータパケット送信方法であって、
前記複数の通信リンクに含まれる第１通信リンクは閉鎖リンクとして設定され、
前記複数のノード装置の各々は、前記リングネットワークの第１の回転方向に向かう第１ポートと、前記リングネットワークの前記第１の回転方向とは異なる第２の回転方向に向かう第２ポートとを含む複数のポートを有し、
前記複数のノード装置の各々は、データパケットを前記複数のポートの何れのポートに出力するかを示す出力ポート情報と、前記リングネットワークに含まれる前記複数のノード装置のうち、前記第１通信リンクを経由しない経路上にあって、自ノード装置と前記データパケットの宛先デバイスとの間に存在するノード装置の数を示す第１ノード数とが、前記データパケットの宛先アドレス毎に登録されるフォワーディングデータベースを有し、
前記データパケット送信方法は、
前記複数の通信リンクに含まれる第２通信リンクにおいてエラーが発生した場合、前記第１通信リンクを前記閉鎖リンクとする設定を解除し、
前記複数のノード装置に含まれ、前記第２通信リンクの第１端に接続された第１ノード装置が、前記エラーの発生を示す第１エラー通知フレームを前記リングネットワークの他のノード装置に送信し、
前記複数のノード装置に含まれるノード装置であって、前記第１エラー通知フレームを受信した第２ノード装置が、前記複数のノード装置に含まれるノード装置であって、前記エラーが発生した前記第２通信リンクと前記第２ノード装置との間に存在するノード装置の数を示す第２ノード数を、前記第１エラー通知フレームに基づいて特定し、
前記第２ノード装置が前記第１エラー通知フレームを前記第１ポートにおいて受信した場合であって、前記第２ノード装置の前記フォワーディングデータベースに登録された、第１宛先アドレスに対応する前記出力ポート情報が前記第１ポートを示し、かつ、前記第１ノード数が前記第２ノード数よりも大きい場合には、前記第２ノード装置は、前記第２ノード装置の前記フォワーディングデータベースの前記第１宛先アドレスに対応する前記出力ポート情報を、前記第１ポートを示す内容から前記第２ポートを示す内容に更新し、
前記フォワーディングデータベースが更新された後に前記第２ノード装置が前記第１宛先アドレスを宛先とする第１データパケットを受信した場合に、前記第２ノード装置は、更新後の前記フォワーディングデータベースに基づき、前記第２ポートを前記第１データパケットを介して前記リングネットワークの他のノード装置に送信する
ことを特徴とするデータパケット送信方法。
（付記２）
前記第２ノード装置が前記第１エラー通知フレームを前記第１ポートにおいて受信した場合であって、前記第２ノード装置の前記フォワーディングデータベースに登録された前記出力ポート情報が前記第１ポートを示し、かつ、前記第１ノード数が示すノード装置の数が、前記第２ノード数が示すノード装置の数以下である場合には、前記第２ノード装置は、前記第２ノード装置の前記フォワーディングデータベースの前記第１宛先アドレスに対応する前記出力ポート情報を、前記第１ポートを示す内容に維持し、
前記第２ノード装置は、前記第１ポートを介して前記第１データパケットを前記リングネットワークの他のノード装置に送信する
ことを特徴とする付記１に記載のデータパケット送信方法。
（付記３）
前記複数のノード装置に含まれ、前記第２通信リンクの第２端に接続された第３ノード装置が、前記エラーの発生を示す第２エラー通知フレームを前記リングネットワークの他のノード装置に送信し、
前記第２エラー通知フレームを受信した前記第２ノード装置が、前記複数のノード装置に含まれるノード装置のうち、前記第２通信リンクを経由しない経路上にあって、前記エラーが発生した前記第２通信リンクと自ノード装置との間に存在するノード装置の数を示す第３ノード数を、前記第２エラー通知フレームに基づいて特定し、
前記第２ノード装置は、前記第１ノード数と前記第２ノード数と前記第３ノード数とに基づいて、前記第２ノード装置の前記フォワーディングデータベースの前記第１ノード数を更新する
ことを特徴とする付記１又は２に記載のデータパケット送信方法。
（付記４）
前記第１エラー通知フレームの前記第２ノード装置への到達が、第２エラー通知フレームの前記第２ノード装置への到達よりも先であり、前記第２ノード装置が前記第１エラー通知フレームに基づいて前記出力ポート情報を更新した場合は、前記第２ノード装置は、前記第１エラー通知フレームを受信した後であって、前記第２エラー通知フレームを受信する前に、前記第１ノード数をゼロに変更する
ことを特徴とする付記３に記載のデータパケット送信方法。
（付記５）
前記第１ノード装置は、前記第３ノード装置から送信された前記第２エラー通知フレームを受信し、
前記第１ノード装置の前記フォワーディングデータベースに登録された前記第１ノード数と、前記第３ノード数に基づき、前記第１ノード数を更新する
ことを特徴とする付記３又は４に記載のデータパケット送信方法。
（付記６）
前記第１エラー通知フレームは、前記第２ノード数を格納する領域を有し、
前記第１エラー通知フレームが前記複数のノード装置の各々を通過する度に、前記第２ノード数が１ずつ増加されるよう、第１エラー通知フレームが更新され、
前記第２エラー通知フレームは、前記第３ノード数を格納する領域を有し、
前記第２エラー通知フレームが前記複数のノード装置の各々を通過する度に、前記第３ノード数が１ずつ増加されるよう、第２エラー通知フレームが更新される
ことを特徴とする付記３乃至５何れか一つに記載のデータパケット送信方法。
（付記７）
前記複数のノード装置の各々は、前記リングネットワークの外の他のネットワークに接続される第３ポートを有し、
前記複数のノード装置の各々は、前記第３ポートにおいて第２データパケットを受信した場合に制御フレームを生成し、
前記複数のノード装置の各々は、生成された前記制御フレームを前記リングネットワークの他のノード装置に送信し、
前記制御フレームは、前記第１ノード数を格納する領域を有し、
前記制御フレームが前記複数のノード装置の各々を通過する度に、前記第１ノード数が１ずつ増加されるよう、前記制御フレームが更新され、
前記制御フレームを受信した前記他のノード装置は、前記制御フレームに含まれる前記第１ノード数を前記他のノード装置の前記フォワーディングデータベースに登録する
ことを特徴とする付記１乃至６何れか一つに記載のデータパケット送信方法。
（付記８）
前記複数のノード装置の各々は、互いに接続確認メッセージを送信し合うことによって前記エラーの発生を検知し、
前記接続確認メッセージは前記第１ノード数を格納する領域を有し、
前記複数のノード装置の各々は、他のノード装置より受信した前記接続確認メッセージに含まれる前記第１ノード数を１増加させて自身の接続確認メッセージを生成し、生成された前記接続確認メッセージを、更に他のノード装置へ送信する
ことを特徴とする付記１乃至６何れか一つに記載のデータパケット送信方法。
（付記９）
複数のノード装置と複数の通信リンクとを含み、前記複数のノード装置と前記複数の通信リンクとが環状に接続されてリングネットワークを形成するデータパケット送信システムであって、
前記複数の通信リンクに含まれる第１通信リンクは閉鎖リンクとして設定され、
前記複数のノード装置の各々は、前記リングネットワークの第１の回転方向に向かう第１ポートと、前記リングネットワークの前記第１の回転方向とは異なる第２の回転方向に向かう第２ポートとを含む複数のポートを有し、
前記複数のノード装置の各々は、データパケットを前記複数のポートの何れのポートに出力するかを示す出力ポート情報と、前記リングネットワークに含まれる前記複数のノード装置のうち、前記第１通信リンクを経由しない経路上にあって、自ノード装置と前記データパケットの宛先デバイスとの間に存在するノード装置の数を示す第１ノード数とが、前記データパケットの宛先アドレス毎に登録されるフォワーディングデータベースを有し、
前記複数の通信リンクに含まれる第２通信リンクにおいてエラーが発生した場合、前記第１通信リンクを前記閉鎖リンクとする設定を解除し、
前記複数のノード装置に含まれ、前記第２通信リンクの第１端に接続された第１ノード装置が、前記エラーの発生を示す第１エラー通知フレームを前記リングネットワークの他のノード装置に送信し、
前記複数のノード装置に含まれるノード装置であって、前記第１エラー通知フレームを受信した第２ノード装置が、前記複数のノード装置に含まれるノード装置であって、前記エラーが発生した前記第２通信リンクと前記第２ノード装置との間に存在するノード装置の数を示す第２ノード数を、前記第１エラー通知フレームに基づいて特定し、
前記第２ノード装置が前記第１エラー通知フレームを前記第１ポートにおいて受信した場合であって、前記第２ノード装置の前記フォワーディングデータベースに登録された、第１宛先アドレスに対応する前記出力ポート情報が前記第１ポートを示し、かつ、前記第１ノード数が前記第２ノード数よりも大きい場合には、前記第２ノード装置は、前記第２ノード装置の前記フォワーディングデータベースの前記第１宛先アドレスに対応する前記出力ポート情報を、前記第１ポートを示す内容から前記第２ポートを示す内容に更新し、
前記フォワーディングデータベースが更新された後に前記第２ノード装置が前記第１宛先アドレスを宛先とする第１データパケットを受信した場合に、前記第２ノード装置は、更新後の前記フォワーディングデータベースに基づき、前記第２ポートを介して前記第１データパケットを前記リングネットワークの他のノード装置に送信する
ことを特徴とするデータパケット送信システム。
（付記１０）
前記第２ノード装置が前記第１エラー通知フレームを前記第１ポートにおいて受信した場合であって、前記第２ノード装置の前記フォワーディングデータベースに登録された前記出力ポート情報が前記第１ポートを示し、かつ、前記第１ノード数が示すノード装置の数が、前記第２ノード数が示すノード装置の数以下である場合には、前記第２ノード装置は、前記第２ノード装置の前記フォワーディングデータベースの前記第１宛先アドレスに対応する前記出力ポート情報を、前記第１ポートを示す内容に維持し、
前記第２ノード装置は、前記第１ポートを介して前記第１データパケットを前記リングネットワークの他のノード装置に送信する
ことを特徴とする付記９に記載のデータパケット送信システム。
（付記１１）
前記複数のノード装置に含まれ、前記第２通信リンクの第２端に接続された第３ノード装置が、前記エラーの発生を示す第２エラー通知フレームを前記リングネットワークの他のノード装置に送信し、
前記第２エラー通知フレームを受信した前記第２ノード装置が、前記複数のノード装置に含まれるノード装置のうち、前記第２通信リンクを経由しない経路上にあって、前記エラーが発生した前記第２通信リンクと自ノード装置との間に存在するノード装置の数を示す第３ノード数を、前記第２エラー通知フレームに基づいて特定し、
前記第２ノード装置は、前記第１ノード数と前記第２ノード数と前記第３ノード数とに基づいて、前記第２ノード装置の前記フォワーディングデータベースの前記第１ノード数を更新する
ことを特徴とする付記９又は１０に記載のデータパケット送信システム。
（付記１２）
前記第１エラー通知フレームの前記第２ノード装置への到達が、第２エラー通知フレームの前記第２ノード装置への到達よりも先であり、前記第２ノード装置が前記第１エラー通知フレームに基づいて前記出力ポート情報を更新した場合は、前記第２ノード装置は、前記第１エラー通知フレームを受信した後であって、前記第２エラー通知フレームを受信する前に、前記第１ノード数をゼロに変更する
ことを特徴とする付記１１に記載のデータパケット送信システム。
（付記１３）
前記第１ノード装置は、前記第３ノード装置から送信された前記第２エラー通知フレームを受信し、
前記第１ノード装置の前記フォワーディングデータベースに登録された前記第１ノード数と、前記第３ノード数に基づき、前記第１ノード数を更新する
ことを特徴とする付記１１又は１２に記載のデータパケット送信システム。
（付記１４）
前記第１エラー通知フレームは、前記第２ノード数を格納する領域を有し、
前記第１エラー通知フレームが前記複数のノード装置の各々を通過する度に、前記第２ノード数が１ずつ増加されるよう、第１エラー通知フレームが更新され、
前記第２エラー通知フレームは、前記第３ノード数を格納する領域を有し、
前記第２エラー通知フレームが前記複数のノード装置の各々を通過する度に、前記第３ノード数が１ずつ増加されるよう、第２エラー通知フレームが更新される
ことを特徴とする付記１１乃至１３何れか一つに記載のデータパケット送信システム。
（付記１５）
前記複数のノード装置の各々は、前記リングネットワークの外の他のネットワークに接続される第３ポートを有し、
前記複数のノード装置の各々は、前記第３ポートにおいて第２データパケットを受信した場合に制御フレームを生成し、
前記複数のノード装置の各々は、生成された前記制御フレームを前記リングネットワークの他のノード装置に送信し、
前記制御フレームは、前記第１ノード数を格納する領域を有し、
前記制御フレームが前記複数のノード装置の各々を通過する度に、前記第１ノード数が１ずつ増加されるよう、前記制御フレームが更新され、
前記制御フレームを受信した前記他のノード装置は、前記制御フレームに含まれる前記第１ノード数を前記他のノード装置の前記フォワーディングデータベースに登録する
ことを特徴とする付記９乃至１４何れか一つに記載のデータパケット送信システム。
（付記１６）
前記複数のノード装置の各々は、互いに接続確認メッセージを送信し合うことによって前記エラーの発生を検知し、
前記接続確認メッセージは前記第１ノード数を格納する領域を有し、
前記複数のノード装置の各々は、他のノード装置より受信した前記接続確認メッセージに含まれる前記第１ノード数を１増加させて自身の接続確認メッセージを生成し、生成された前記接続確認メッセージを、更に他のノード装置へ送信する
ことを特徴とする付記９乃至１４何れか一つに記載のデータパケット送信システム。
（付記１７）
複数のノード装置と複数の通信リンクが環状に接続されたリングネットワークに含まれる第１ノード装置であって、
前記複数の通信リンクに含まれる第１通信リンクは閉鎖リンクとして設定され、
前記第１ノード装置は、
前記リングネットワークの第１の回転方向に向かう第１ポートと、前記リングネットワークの前記第１の回転方向とは異なる第２の回転方向に向かう第２ポートとを含む複数のポートと、
データパケットを前記複数のポートの何れのポートに出力するかを示す出力ポート情報と、前記リングネットワークに含まれる前記複数のノード装置のうち、前記第１通信リンクを経由しない経路上にあって、前記第１ノード装置と前記データパケットの宛先デバイスとの間に存在するノード装置の数を示す第１ノード数とが、前記データパケットの宛先アドレス毎に登録されるフォワーディングデータベースと
を有し、
前記第１ノード装置は、
前記複数の通信リンクに含まれる第２通信リンクにおいてエラーが発生した場合、前記複数のノード装置に含まれ、前記第２通信リンクの第１端に接続された第２ノード装置から、前記エラーの発生を示す第１エラー通知フレームを受信し、
前記複数のノード装置に含まれるノード装置であって、前記エラーが発生した前記第２通信リンクと前記第１ノード装置との間に存在するノード装置の数を示す第２ノード数を、前記第１エラー通知フレームに基づいて特定し、
前記第２ノード装置が前記第１エラー通知フレームを前記第１ポートにおいて受信した場合であって、前記フォワーディングデータベースに登録された、第１宛先アドレスに対応する前記出力ポート情報が前記第１ポートを示し、かつ、前記第１ノード数が前記第２ノード数よりも大きい場合には、前記フォワーディングデータベースの前記第１宛先アドレスに対応する前記出力ポート情報を、前記第１ポートを示す内容から前記第２ポートを示す内容に更新し、
前記フォワーディングデータベースが更新された後に前記第１宛先アドレスを宛先とする第１データパケットを受信した場合に、更新後の前記フォワーディングデータベースに基づき、前記第２ポートを介して前記第１データパケットを前記リングネットワークの他のノード装置に送信する
ことを特徴とする第１ノード装置。
（付記１８）
前記第１エラー通知フレームを前記第１ポートにおいて受信した場合であって、前記フォワーディングデータベースに登録された前記出力ポート情報が前記第１ポートを示し、かつ、前記第１ノード数が示すノード装置の数が、前記第２ノード数が示すノード装置の数以下である場合には、前記フォワーディングデータベースの前記第１宛先アドレスに対応する前記出力ポート情報を、前記第１ポートを示す内容に維持し、
前記第１ポートを介して前記第１データパケットを前記リングネットワークの他のノード装置に送信する
ことを特徴とする付記１７に記載の第１ノード装置。
（付記１９）
前記複数のノード装置に含まれ、前記第２通信リンクの第２端に接続された第３ノード装置が、前記エラーの発生を示す第２エラー通知フレームを前記リングネットワークの他のノード装置に送信した場合に、前記第２エラー通知フレームを受信し、
前記複数のノード装置に含まれるノード装置のうち、前記第２通信リンクを経由しない経路上にあって、前記エラーが発生した前記第２通信リンクと前記第１ノード装置との間に存在するノード装置の数を示す第３ノード数を、前記第２エラー通知フレームに基づいて特定し、
前記第１ノード数と前記第２ノード数と前記第３ノード数とに基づいて、前記フォワーディングデータベースの前記第１ノード数を更新する
ことを特徴とする付記１７又は１８に記載の第１ノード装置。
（付記２０）
前記第１エラー通知フレームの前記第１ノード装置への到達が、第２エラー通知フレームの前記第１ノード装置への到達よりも先であり、前記第１ノード装置が前記第１エラー通知フレームに基づいて前記出力ポート情報を更新した場合は、前記第１ノード装置は、前記第１エラー通知フレームを受信した後であって、前記第２エラー通知フレームを受信する前に、前記第１ノード数をゼロに変更する
ことを特徴とする付記１９に記載の第１ノード装置。
【符号の説明】
【００７１】
Ｎ、Ｎ１、Ｎ２、Ｎ３、Ｎ４  ノード装置
Ｐ、Ｐ１、Ｐ２、Ｐ３、Ｐ４  ポート
Ｌ、Ｌ１、Ｌ２、Ｌ３、Ｌ４  通信リンク
１０５  コネクタ
１１０  光モジュール
１２０  プロセッサ
１２０ａ  ＣＰＵ
１２０ｂ  ＦＰＧＡ
１２０ｃ  Ｌ２スイッチデバイス
１３０  不揮発性メモリ
１４０  揮発性メモリ
１２１  制御フレーム生成部
１２２  データ送受信部
１２３  ＦＤＢ制御部
１２４  ブロッキング制御部
１２５  エラー検知部
１２６  エラー通知フレーム生成部
１２７  ポート制御部
１２８  ＦＤＢ
【図１】
2019129391.tif 000003
【図２】
2019129391.tif 000004
【図３】
2019129391.tif 000005
【図４】
2019129391.tif 000006
【図５】
2019129391.tif 000007
【図６】
2019129391.tif 000008
【図７】
2019129391.tif 000009
【図８】
2019129391.tif 000010
【図９】
2019129391.tif 000011
【図１０】
2019129391.tif 000012
【図１１】
2019129391.tif 000013
【図１２】
2019129391.tif 000014
【図１３】
2019129391.tif 000015
【図１４】
2019129391.tif 000016
【図１５】
2019129391.tif 000017
【図１６】
2019129391.tif 000018
【図１７】
2019129391.tif 000019
【図１８】
2019129391.tif 000020