(57)【特許請求の範囲】
【請求項１】
リングトポロジネットワーク内にあるネットワークノードにおける障害回復を実行する方法であって、
（ａ）前記ネットワークノードの第１のポートを介する入口経路において、データパケットを受信するステップと、
（ｂ）前記ネットワークノードの第２のポートを介する入口経路において、前記パケットのコピーが既に受信されているかどうかを判断するステップと、
（ｃ）前記パケットが前記ネットワークノードにアドレス指定されているかどうかを判断するステップと、
（ｄ）前記パケットのコピーが受信されていない場合に前記パケットを処理するステップと
を含み、前記パケットを処理するステップが、
（Ａ）前記パケットが前記ネットワークノードにアドレス指定されていない場合、前記ネットワークノードの前記第２のポートを介する出口経路において前記パケットを隣接するネットワークノードに転送するステップと、
（Ｂ）前記パケットが前記ネットワークノードにアドレス指定されている場合、応答パケットを構築して前記ネットワークノードの前記第１のポートを介する出口経路において前記応答パケットを隣接するネットワークノードに転送するステップと
を含むことを特徴とする方法。
【請求項２】
前記リングトポロジネットワークが、産業オートメーションシステムの一部であることを特徴とする、請求項１に記載の方法。
【請求項３】
前記ネットワークノードが、前記産業オートメーションシステムにおけるＩ／Ｏモジュールであるであることを特徴とする、請求項２に記載の方法。
【請求項４】
ステップ（ｂ）が、
（Ａ）前記ネットワークノードの前記第１のポートにおいて受信される前記パケットに関するトランザクション情報及びタイムスタンプを受信するステップと、
（Ｂ）前記パケットが一致するかどうかを決定するために、前記ネットワークノードの前記第１のポートにおいて受信される前記パケットに関する前記トランザクション情報及び前記タイムスタンプを、前記ネットワークノードの前記第２のポートにおいて受信される最も新しいパケットに関するトランザクション情報及びタイムスタンプと比較するステップと
を含むことを特徴とする、請求項１に記載の方法。
【請求項５】
前記ネットワークノードの前記第１のポートにおいて受信される前記パケットに関する前記トランザクション情報及び前記タイムスタンプがデータ構造内に記憶されることを特徴とする、請求項４に記載の方法。
【請求項６】
前記ネットワークノードの前記第２のポートにおいて受信される前記最も新しいパケットに関する前記トランザクション情報及び前記タイムスタンプがデータ構造内に記憶されることを特徴とする、請求項４に記載の方法。
【請求項７】
前記データ構造がＦＩＦＯキューであることを特徴とする、請求項５に記載の方法。
【請求項８】
前記データ構造が連結リストであることを特徴とする、請求項５に記載の方法。
【請求項９】
分散産業オートメーションシステム内のＩ／Ｏモジュールであって、前記Ｉ／Ｏモジュールがリングトポロジネットワーク内のモジュールであり、プロセッサと、前記プロセッサに結合されるメモリとを有し、前記メモリが、
（ａ）前記Ｉ／Ｏモジュールの第１のポートを介する入口経路において、データパケットを受信するステップと、
（ｂ）前記Ｉ／Ｏモジュールの第２のポートを介する入口経路において、前記パケットのコピーが既に受信されているかどうかを判断するステップと、
（ｃ）前記パケットが、前記Ｉ／Ｏモジュールにアドレス指定されているかどうかを判断するステップと、
（ｄ）前記パケットのコピーが受信されていない場合に前記パケットを処理するステップと
を実行するコンピュータ実行可能命令を含み、前記パケットを処理するステップが、
（Ａ）前記パケットが前記Ｉ／Ｏモジュールにアドレス指定されていない場合、前記Ｉ／Ｏモジュールの前記第２のポートを介する出口経路において前記パケットを前記リングトポロジネットワークにおいて隣接するモジュールに転送するステップと、
（Ｂ）前記パケットが前記Ｉ／Ｏモジュールにアドレス指定されている場合、応答パケットを構築して前記Ｉ／Ｏモジュールの前記第１のポートを介する出口経路において前記応答パケットを前記リングトポロジネットワーク上において隣接するモジュールに転送するステップと
を含むことを特徴とするＩ／Ｏモジュール。
【請求項１０】
ステップ（ｂ）が、
（Ａ）前記Ｉ／Ｏモジュールの前記第１のポートにおいて受信される前記パケットに関するトランザクション情報及びタイムスタンプを受信するステップと、
（Ｂ）前記パケットが一致するかどうかを決定するために、前記Ｉ／Ｏモジュールの前記第１のポートにおいて受信される前記パケットに関する前記トランザクション情報及び前記タイムスタンプを、前記Ｉ／Ｏモジュールの前記第２のポートにおいて受信される最も新しいパケットに関するトランザクション情報及びタイムスタンプと比較するステップと
を含むことを特徴とする、請求項９に記載のＩ／Ｏモジュール。
【請求項１１】
前記Ｉ／Ｏモジュールの前記第１のポートにおいて受信される前記パケットに関する前記トランザクション情報及び前記タイムスタンプがデータ構造内に記憶されることを特徴とする、請求項１０に記載のＩ／Ｏモジュール。
【請求項１２】
前記Ｉ／Ｏモジュールの前記第２のポートにおいて受信される前記最も新しいパケットに関する前記トランザクション情報及び前記タイムスタンプがデータ構造内に記憶されることを特徴とする、請求項１０に記載のＩ／Ｏモジュール。
【請求項１３】
前記データ構造がＦＩＦＯキューであることを特徴とする、請求項１１に記載のＩ／Ｏモジュール。
【請求項１４】
前記データ構造が連結リストであることを特徴とする、請求項１１に記載のＩ／Ｏモジュール。
【請求項１５】
リングトポロジネットワーク上のコンピュータ装置に以下のステップを実行させるコンピュータ実行可能命令を含む有形のコンピュータ可読記録媒体であって、前記以下のステップは、
（ａ）前記コンピュータ装置の第１のポートを介する入口経路において、データパケットを受信するステップと、
（ｂ）前記コンピュータ装置の第２のポートを介する入口経路において、前記パケットのコピーが既に受信されているかどうかを判断するステップと、
（ｃ）前記パケットが、前記コンピュータ装置にアドレス指定されているかどうかを判断するステップと、
（ｄ）前記パケットのコピーが受信されていない場合に前記パケットを処理するステップと
を含み、前記パケットを処理するステップが、
（Ａ）前記パケットが前記コンピュータ装置にアドレス指定されていない場合、前記コンピュータ装置の前記第２のポートを介する出口経路において前記パケットを隣接するコンピュータ装置に転送するステップと、
（Ｂ）前記パケットが前記コンピュータ装置にアドレス指定されている場合、応答パケットを構築して前記コンピュータ装置の前記第１のポートを介する出口経路において前記応答パケットを隣接するコンピュータ装置に転送するステップと
を含むことを特徴とする有形のコンピュータ可読記録媒体。
【請求項１６】
前記コンピュータ装置が、産業オートメーションシステムの一部であることを特徴とする、請求項１５に記載の有形のコンピュータ可読記録媒体。
【請求項１７】
ステップ（ｂ）が、
（Ａ）前記コンピュータ装置の前記第１のポートにおいて受信される前記パケットに関するトランザクション情報及びタイムスタンプを受信するステップと、
（Ｂ）前記パケットが一致するかどうかを決定するために、前記コンピュータ装置の前記第１のポートにおいて受信される前記パケットに関する前記トランザクション情報及び前記タイムスタンプを、前記コンピュータ装置の前記第２のポートにおいて受信される最も新しいパケットに関するトランザクション情報及びタイムスタンプと比較するステップと
を含むことを特徴とする、請求項１５に記載の有形のコンピュータ可読記録媒体。  
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、チェーン及びリングネットワークにおけるリンク障害の透過的なオートリカバリのための方法に関する。より詳細には、本発明は、障害時におけるデータトラフィックの自動再ルーティングに関する。
【背景技術】
【０００２】
コンピュータシステム及びネットワークコンピューティング業務は、重大なサービス及びビジネス業務に関して、個人、ビジネス、及び政府にますます依存している。このようなシステムにおいて、ネットワーク使用可能時間は、基本的なサービス又は業務の円滑な運用に重大であり得る。また、ネットワーク障害は、迅速に隔離され又は修復されなければならない。従って、ネットワーク障害状態における隔離及び自動リカバリは、高帯域幅ネットワーク及びタスククリティカルなネットワークには非常に重要な要件である。さらに、典型的なネットワーク障害及びリカバリの場合、約数百ミリ秒の遅延でさえ、重大であり得る。
【０００３】
ネットワーク障害の場合に遭遇し得る別の問題は、障害場所における物理リンク又は装置へのアクセス不能性である。例えば、製造又は他のオートメーションシステムにおいて、アーキテクチャは、分散又は分配され得るが、一方で集中型システムと比べても遜色ない性能をもたらし得る。例えば、ＡＤＶＡＮＴＹＳ  ＳＴＢ分散Ｉ／Ｏシステムは、バス又は通信ネットワークを介してマスタコントローラによって管理されるオートメーション諸島（ｉｓｌａｎｄｓ  ｏｆ  ａｕｔｏｍａｔｉｏｎ）を設計することを可能にするオープンなモジュラ入／出力システムである。ＡＤＶＡＮＴＹＳ  ＳＴＢ分散Ｉ／Ｏシステムは、マサチューセッツ州、北アンドーバー、ワンハイ通りのシュナイダーオートメーション社（Ｓｃｈｎｅｉｄｅｒ  Ａｕｔｏｍａｔｉｏｎ  Ｉｎｃ．，  Ｏｎｅ  Ｈｉｇｈ  Ｓｔｒｅｅｔ，  Ｎｏｒｔｈ  Ａｎｄｏｖｅｒ，  Ｍａｓｓａｃｈｕｓｅｔｔｓ）の製品である。
【０００４】
諸島及び関連Ｉ／Ｏモジュールは、広範に分散され且つ隔離された場所にあることが多い。又は、対象システムが他の機械類に囲まれる場合がある。こうした種類のネットワーク運用において、障害時に遠隔Ｉ／Ｏモジュール又はネットワークリンクへの物理アクセスを得ることは困難であり得る。さらに、例えば産業オートメーションシステム等のネットワークでは、信頼性が重大である。例えば工場において、ネットワーク接続が故障すると、操作者が物理的に傷付けられ得る。こうした種類のネットワーク動作において、障害リカバリは自動でなければならない。
【０００５】
典型的な障害リカバリの場合、障害が発生すると、データトラフィックは、現在の障害のある経路からバックアップ経路に再ルーティングされ又は切り替えられる。実際の冗長化ストラテジによっては、待機又はバックアップデータ経路は専用であり、接続の物理的な変化を必要とし、又はアクティブ若しくはプライマリ経路への仮想バックアップ経路であってもよい。ネットワークに冗長性を提供する現在のソフトウェア方法は、ネットワーク上の装置がバックアップ経路を決定するために全体ネットワークを分析又は発見することが必要である。ラピッドスパニングツリープロトコル（ＲＳＴＰ）及びヒルシュマン（Ｈｉｒｓｃｈｍａｎｎ）（ＴＭ）ＨＩＰＥＲ−Ｒｉｎｇ（ＴＭ）は、このような方法の２つである。ＲＳＴＰ及びヒルシュマン（ＴＭ）ＨＩＰＥＲ−Ｒｉｎｇ（ＴＭ）の双方において、ルーティングが実行され得る前に、全体ネットワークが発見されなければならず、障害リカバリに対するコンピュータリソースの時間及び使用を増加させる。さらに、ＲＳＴＰ及びヒルシュマン（ＴＭ）ＨＩＰＥＲ−Ｒｉｎｇ（ＴＭ）の双方において、障害リカバリを実行するネットワーク装置は、ネットワーク上の他のネットワーク装置との通信を行わなければならない。
【０００６】
従って、ネットワーク装置によって自動的に実行される、即時性があり、且つネットワーク上の他のノードに透過的である障害リカバリの方法に対する要求がある。
【発明の概要】
【０００７】
本発明の態様は、リングトポロジに基づくネットワークにおいて自動的な障害リカバリの効果的且つ迅速な方法を提供する。ネットワークでリンクが故障すると、データトラフィックは、システム又はネットワークの再構成を必要とせずに自動的に再ルーティングされる。さらに、オートリカバリ動作は、ノード間のメッセージ交換及びリモートクライアントとの通信なしでリング上の各ノードで実行される。
【０００８】
本発明の実施形態によれば、リモートホストからリングネットワーク上のノードに送信される各データパケットは、エッジスイッチの２つのポートからリングネットワークに同時にマルチキャストされる。よって、通常の動作状態の下では、受信ノードは、リングネットワーク上で反対方向からデータパケットの２つのコピーを受信する。本発明の態様によれば、データパケットの第１のコピーはノードによって処理されて、データパケットの第２のコピーは破棄される。しかし、リンク又は装置障害の状態では、通常のデータフローは中断させられ得る。障害状態において、本発明は、少なくとも１つのデータパケットのコピーが受信ノードによって受信されることを想定する。
【０００９】
さらに、本発明の態様によれば、障害状態におけるオートリカバリは、各ローカルノード上で迅速に処理される。従って、全体の処理時間を最適化することが出来る。結果として、全てのオートリカバリ関連動作がリモートホストに透過的となる。
【００１０】
本発明は、以下の図面に例示として示されるのであって、添付の図面によって限定されない。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態が実行され得る例示のリングネットワークを示す。
【図２】本明細書に記載のオートリカバリ技術を実装するのに適した例示のネットワークノードを示す。
【図３Ａ】本発明によるデータフロー及びオートリカバリ技術の１実施形態を示す流れ図である。
【図３Ｂ】本発明によるデータフロー及びオートリカバリ技術の別の実施形態を示す流れ図である。
【図４Ａ】本発明の実施形態による２つの例示のリングネットワーク上のデータフローを示す。
【図４Ｂ】本発明の実施形態による２つの例示のリングネットワーク上のデータフローを示す。
【図５Ａ】本発明の実施形態による例示のリングネットワーク上の例示の障害場所を示す。
【図５Ｂ】本発明の実施形態による例示のリングネットワーク上の障害状態の間のデータフローを示す。
【図５Ｃ】本発明の実施形態による例示のリングネットワーク上の障害状態の間のデータフローを示す。
【図５Ｄ】本発明の実施形態による例示のリングネットワーク上の障害状態の間のデータフローを示す。
【図５Ｅ】本発明の実施形態による例示のリングネットワーク上の障害状態の間のデータフローを示す。
【図５Ｆ】本発明の実施形態による例示のリングネットワーク上の障害状態の間のデータフローを示す。
【図５Ｇ】本発明の実施形態による例示のリングネットワーク上の障害状態の間のデータフローを示す。
【発明を実施するための形態】
【００１２】
本発明の態様は、デイジーチェーンループ又は他のリングネットワークシステムで使用されるオートリカバリ機構を提供する。図１は、本発明の実施形態が実行され得る例示のリングネットワーク１０３を示す。例示のネットワークは、冗長なリンク１０２及び１０４を有するエッジスイッチ１００、例示のネットワークノード１１０、１２０、１３０、１４０及び１５０を含む。ネットワーク１０３は、例えばイーサネット（登録商標）（Ｅｔｈｅｒｎｅｔ（登録商標））等の多様なデータリンク層プロトコルを使用して実装されてもよい。各ネットワークノードは、２つのポートＡ及びＢを含む。また、ポートＡ及びＢは共にトラフィックの入口及び出口に使用され得る。従って、図１に示された例示のネットワークは、２つの冗長データ経路（１５１及び１１１）がループ又はリング１０３に存在するので、既に設備レベルの冗長性を提供している。冗長データ経路に加えて、エッジスイッチ１００は、トラフィックが冗長データ経路１５１及び１１１上でポート１０７及び１０８からマルチキャストされ得る２つの冗長データリンク１０２及び１０４がプロビジョニングされてもよい。ネットワークプロビジョニングの当業者であれば、このような種類の設備冗長性を理解してプロビジョニングすることが出来るであろう。
【００１３】
図１によれば、ノード１１０は、経路１１１に沿ってネットワークループ１０３への入力ポートとして機能し、且つ経路１５１に沿ってループ１０３に対する出力ポートとしても動作する。対称的に、ノード１５０は、経路１５１に沿ってネットワークループ１０３に対する入力ポートとして機能し、且つ経路１１１に沿ってネットワークループ１０３に対する出力ポートとしても動作する。さらに、ノード１１０及び１５０は共に、閉ループを確立するエッジスイッチ１００に直接的に接続される。ループ１０３の中間にあるノード１２０、１３０及び１４０は、それぞれが２つの隣接ノードに接続される。イーサネット（登録商標）エッジスイッチ１００は、（リンク１０２及び１０４によって施設される）外部ネットワーク１０１への入力点（入口）及び出力点（出口）の双方として機能する。
【００１４】
本発明の別の実施形態によれば、エッジスイッチノード１００上の１つのポート（図１の１０５又は１０６のいずれか）は無効にされてもよい。このような場合、リンク（１０２又は１０４）から受信されたデータは、ポート１０７及び１０８にマルチキャストされてもよい。図４Ｂに関してこの場合がさらに検討される。
【００１５】
例えばイーサネット（登録商標）スイッチ等の汎用スイッチ装置が、本明細書に記載の発明の実施形態をサポートするために使用されてもよい。スイッチは、４つのポートの任意の１つから別の他のポートにノンブロッキングのパケット転送を提供してもよい。さらに、エッジスイッチは、本明細書に記載のように、任意のポートから任意のポートへのパケットのブロードキャスト又はパケットのマルチキャストの双方をサポート可能であるべきである。
【００１６】
本発明の態様は、例えば図２に記載のネットワークノード２００等の従来の多様なネットワーク化コンピュータシステムを用いて実装されてもよい。ノード２００は、データトラフィックの受信入口及び送信出口用のネットワークインターフェースポート２０２及び２０４、中央プロセッサ２０６、システムメモリ２０８、並びにポート２０２と２０４、中央プロセッサ２０６及びシステムメモリ２０８を含む多様なシステム構成要素を結合するシステムバス２１０を有する。システムバス２１０は、任意の多様なバスアーキテクチャを使用するメモリバス又はメモリコントローラ、周辺機器用バス、及びローカルバスを含む任意の複数の種類のバス構造であってもよい。システムメモリ２０８の構造は、当業者には周知であり、ＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ）に記憶されるＢＩＯＳ（ｂａｓｉｃ  ｉｎｐｕｔ／ｏｕｔｐｕｔ  ｓｙｓｔｅｍ）及び例えばＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）に記憶されるオペレーティングシステム、アプリケーションプログラム及びプログラムデータ等の１つ以上のプログラムモジュールを含んでもよい。インターフェース２０２及び２０４は、当業者に周知の任意の種類のネットワークインターフェースであってもよい。さらに、コンピュータ２００は、他の種類のコンピュータ読取り可能媒体とインターフェース接続するドライブを有してもよい。
【００１７】
ノード２００の動作は、多様な異なるプログラムモジュールによって制御可能である。プログラムモジュールの例は、特定のタスクを実行し又は特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等である。また、本発明は、例えば図１の例示のネットワーク等の通信ネットワークを介して結び付けられるリモート処理装置によってタスクが実行される分散コンピュータ環境において実施されてもよい。分散コンピュータ環境において、プログラムモジュールは、ローカル及びリモートの双方のメモリ記憶装置に設置されてもよい。
【００１８】
図３Ａ及び３Ｂは、本発明によるオートリカバリ技術のデータフロー及びアルゴリズムの実施形態を示す流れ図である。図３Ａは、ユニキャスト、ブロードキャスト及びマルチキャストのデータトラフィックを処理するネットワークにおける包括的なデータフロー及びアルゴリズムを示す。図３Ｂは、ユニキャストデータトラフィックを受信及び処理することにのみ関するネットワークにおける特定のデータフローを示す。図３Ａ及び３Ｂは、図４Ａ−４Ｂ及び図５Ａ−５Ｇに関して以下で検討される。
【００１９】
図４Ａ及び４Ｂは、本発明の実施形態による２つの例示のリングネットワーク上のデータフローを示す。図４Ａのネットワークにおいて、イーサネット（登録商標）エッジスイッチ４００は４つのポート（４０５、４０６、４０７、及び４０８）で構成される。また、図４Ｂは、イーサネット（登録商標）エッジスイッチ４００の３つのポート（４０５、４０７、及び４０８）で構成されるネットワークを示す。図４Ａのネットワークは、ポート４０５及び４０６が外部ネットワーク４０１への冗長リンク４０２及び４０４をサポートするという点でさらなる冗長性を有する。対称的に、図４Ｂのネットワークは、ポート４０５で外部ネットワーク４０１への１つのリンク４０２のみをサポートする。
【００２０】
図４Ａにおいて、２つのポート４０５及び４０６は、エッジスイッチ４００上に構成されており、冗長リンク４０２及び４０４を介する外部ネットワーク４０１への接続専用である。ポート４０７及び４０８は、エッジスイッチと２つの先頭ノード４１０及び４５０との間の接続専用であってもよい。入口方向に、スイッチ４００は、ポート４０５からポート４０７へ、及びポート４０６からポート４０８へと内部パケット転送を提供してもよい。トラフィックフロー４６０及び４８０は、入口トラフィックを示す。出口方向に、エッジスイッチは、ポート４０７からポート４０５及び４０６へと出口トラフィックをマルチキャストしてもよい。対称的に、ポート４０８に到着する出口トラフィックは、ポート４０５及びポート４０６の双方にマルチキャストされてもよい。
【００２１】
図４Ａに見られるように、リモートホストから内部ループネットワーク４０３上の任意のノードへの任意のパケットがポート４０５及びポート４０６で受信されてもよい。図４Ｂに見られるポート４０５又はポート４０６の１方のリンクのみが構成される場合、パケットは、そのリンクが故障すれば保護されないであろう。しかし、双方のリンクが構成される場合、パケットは保護され且つリンク障害に耐えることが出来る。
【００２２】
図４Ｂでは、単一のポート４０５が、エッジスイッチ４００上で構成され、且つリンク４０２を介する外部ネットワーク４０１への接続専用である。入口方向に、スイッチ４００は、ポート４０５からポート４０７及び４０８へと内部パケット転送／マルチキャストを提供してもよい。トラフィックフロー４８２及び４８６は、入口トラフィックを示す。出口方向に、エッジスイッチ４００は、ポート４０７からポート４０５へと出口トラフィック４８４を転送してもよい。
【００２３】
本明細書に記載の発明の実施形態によれば、エッジスイッチ４００のポート４０７及び４０８は、１つ（図４Ａ）又は２つ（図４Ｂ）の外部リンクがプロビジョニングされるかどうかに関係なく使用可能にされなければならない。双方の外部リンクがプロビジョニングされる場合は、２つの入口ポート、ポート４０５及び４０６が共に使用可能にされるであろう。１つのリンクのみがプロビジョニングされる場合は、リンクと接続する唯一のポートが使用可能にされるであろう。双方のポートが使用可能にされる場合、ポート４０５で受信される任意のパケットは、ポート４０７に転送され（２地点間）、ポート４０６で受信される任意のパケットは、ポート４０８に転送されるであろう（２地点間）。１つのポートのみが使用可能にされる場合、そのポートで受信される任意のパケットがポート４０７及びポート４０８の双方にマルチキャストされるであろう。こうした制御論理は、エッジスイッチ４００のシステム構成で事前に定義され且つ実施されてもよく、又はエッジスイッチの通常の動作モードで動的に定義されてもよい。
【００２４】
さらに、チェーン上の各ノード４１０、４２０、４３０、４４０及び４５０は、少なくとも２つの全二重ポートＡ及びＢを含む。一方のポートが上流ノード又はエッジスイッチ４００に各ノードを接続するために使用される。また、他方のポートが下流ノード又はエッジスイッチ４００に各ノードを接続するために使用される。図４Ａ及び４Ｂに示されるようなループネットワーク４０３内で、ノード４１０のポートＡは、エッジスイッチ４００のポート４０７と直接的な接続を有してもよく、且つノード４１０のポートＢは、経路４１１に沿って下流ノード４２０のポートＡに直接的に接続されてもよい。このチェーン接続は、ノード４５０まで続く。ここで、ノード４５０のポートＢは、接続ループを閉じるためにエッジスイッチ４００のポート４０８に直接的に接続されてもよい。経路４５１についてその逆が当てはまる。
【００２５】
従って、図４Ａ及び４Ｂに示されるように、ネットワークループ４０３に２組の冗長性が提供される。第１に、一対の冗長リンク４０２及び４０４が、エッジスイッチ４００を介してループ４０３に接続するために外部ネットワーク４０１を介してリモートホストによって提供されてもよい。以下にさらに記載されるように、リンク４０２又は４０４のいずれかが切断されると、この冗長性がオートリカバリのために使用されてもよい。上述のように、記載された１実施形態においてこの冗長性がサポートされる。さらに、２つの冗長な全２重データ経路４５１及び４１１が、ノード４１０、４２０、４３０、４４０、及び４５０によって生成されるネットワークループ４０３内に提供されてもよい。以下にさらに記載されるように、ネットワークループ４０３内で障害が起こると、オートリカバリのためにこの冗長性が使用されてもよい。
【００２６】
図４Ａは、４ポート構成エッジスイッチ４００の通常の動作状態におけるデータフローをさらに示す。ポート４０５で受信されるトラフィックは、ポート４０７に転送されて、トラフィック４６０がネットワークノードのループ４０３に入るループ４０３の経路４１１にさらに送られてもよい。同様に、ポート４０６で受信されるトラフィックがポート４０８に転送されてもよく、次に、同じトラフィック４８０がループ４０３の４５１上に送られる。図４Ａにおいて、データパケットはノード４２０に送信される。データパケットの宛先アドレスはノード４２０のネットワークアドレスである。例えば、データパケットの宛先アドレスはノード４２０のＩＰアドレスであってもよい。各ノードは、パケット処理ルーチン４２２及びパケットスケルチルーチン４２４をさらに含む。同様に、図４Ｂは、３ポート構成エッジスイッチの通常の動作状態におけるデータフローを示す。
【００２７】
図４Ａを参照すると、通常の動作状態において、ネットワークループ４０３を流れる各データパケットは、２つの別個の経路、経路４５１及び４１１に沿って移動する。従って、ループ４０３上の各ノードは、同じデータパケットの２つのコピーを受信する。本発明の態様によれば、パケットの第１のコピーは、ルーチン４２２によって処理されて、第２のコピーは、ルーチン４２４によって破棄されるであろう（図３Ａ及び３Ｂを参照）。図４Ａの実施形態によれば、エッジスイッチ４００において、ポート４０７又は４０８のいずれかで出口方向に受信されるデータパケット（トラフィックフロー４７０）は、ポート４０５及び４０６の双方にマルチキャストされるであろう。
【００２８】
リモートホストから内部ループネットワーク４０３上のノードに送信される任意のパケットは、エッジスイッチ４００を介してループネットワーク４０３に入って、ポート４０７又はポート４０８のいずれかから送信されてもよい。パケットが経路４１１に沿ってノード４１０、４２０、４３０、４４０又は４５０の任意の１つによって受信される場合、受信ポートはそれのポートＡであろう。パケットが４５１に沿って受信される場合、受信ポートはそれのポートＢであろう。
【００２９】
図４Ａ及び４Ｂの双方を参照すると、内部ネットワークループ４０３上のノードから外部ネットワーク４０１上のリモートホストに送信される任意の応答メッセージパケットがポート４０７又は４０８で受信されてもよいが、双方では受信されない。単一の外部リンクのみが構成される場合（図４Ｂを参照）、パケットは、応答メッセージが外部ネットワーク４０１を介してリモートホストに送信される構成外部リンク４０５又は４０６に転送されるであろう。双方のリンクが構成される場合、パケットは、パケットが外部ネットワーク４０１を介して双方の外部リンク上のリモートホストに送信されるポート４０５及び４０６の双方にマルチキャストされるであろう。
【００３０】
内部ループネットワーク４０３上のノードからリモートホストに送信される任意の応答パケットは、エッジスイッチ４００を介して送信されてもよい。内部ノード（図４Ａのノード４２０）からパケットが生成されて、そのポートＡ又はポートＢから送信されてもよいが、双方のポートからは送信されない。応答パケットがポートＡで送信される場合、パケットは、経路４５１を介してエッジスイッチ４００のポート４０７に送信されるであろう。パケットがポートＢで送信される場合、パケットは、経路４１１を介してエッジスイッチ４００のポート４０８に送信されるであろう。
【００３１】
透過的なオートリカバリの方法及びアルゴリズム
図３Ａに記載の実施形態を再度参照すると、ノードがステップ３０２でデータパケットを受信すると、ノードは、パケットの処理を開始する（ステップ３０４−３１４及びステップ３２８）。パケットが処理された後、ステップ３３２及び３３４で同じ経路に沿って反対方向に応答又は確認パケットを送信することによってパケットを処理することを決定し、又はパケットがこのノードで一度も受信されていない場合はステップ３１８でその下流ノードにパケットを転送する。又は、同じパケットが以前に受信されていない場合、ノードは、ステップ３２８及びステップ３３０でパケットを破棄するであろう。図３Ｂの実施形態を再度参照すると、ステップ３４０でノードにアドレス指定されていないデータパケットをノードが受信すると、ノードは、データパケットをさらに処理することなく同じ経路に沿ってその下流ノードに同じパケットを転送する（ステップ３４４）。ステップ３４０でノードにアドレス指定されていないデータパケットをノードが受信すると（例えば、図４Ａ及び４Ｂのノード４２０）、ノードは、パケットを処理する（ステップ３５４−３７０）。パケットが処理された後、ノードは、次に、ステップ３７４で同じ経路に沿って反対方向に応答又は確認パケット送信する。図３Ａ及び３Ｂに示される双方の実施形態は、以下でさらに記載される。
【００３２】
図３Ａの実施形態によれば、ステップ３００でノードはパケットを待つ。ステップ３０２で、ノード（例えば、図４Ａのノード４２０）は、その一方のポート（例えば、図４Ａのノード４２０のポートＡ）でパケットを受信する。ノードのポートＡ又はポートＢで受信される有効な各パケットについて、ノードは、ステップ３０４で、パケットのトランザクション情報及びパケットがポート用のデータ構造で受信されるときのタイムスタンプをローカルに保存してもよい。この情報は、次に、ステップ３０８−３１２で使用されてもよい。当業者は、本発明の実施形態で使用される適切なデータ構造を特定することが出来る。適切なデータ構造が有する特徴は、新しいエントリが容易に構造に挿入可能であること、構造におけるリスト上のエントリ全体、又は最初及び最後のエントリを横断することが容易且つ高速に行われること、リストが満ちている場合、新しいエントリをリストに挿入する場所を作るために構造の最後のエントリを取り除くことが出来ること、構造が固定数のエントリを有することであってもよい。
【００３３】
さらに、本発明の態様によるデータ構造キューは、処理ステップ３０８−３１２に見られるように、パケットが入口点から出口点へとループネットワーク全体に沿って移動する時間に対応する時間ウインドウで全ての受信される有効なパケットを収容するための十分な空間を有するべきである。このウインドウは、各ノードで内部的にポートＡからポートＢにパケットを転送する内部ノード時間に加えて、パケットがループ上のノード間の各リンクで費やす時間を含む。従って、実際に必要とされるキューのサイズは、実際にはループのサイズに依存する。
【００３４】
このように、図３Ａのステップ３０４で、ノードは、ノードにアドレス指定される受信パケットのトランザクション情報及びタイムスタンプを取得する。トランザクション情報は、パケットを識別するために使用されるパケットのヘッダ又はペイロードに含まれる任意の形式の情報又は識別子であってもよい。ステップ３０６で、ノード上のどのポートがパケットを受信したかが判断される。パケットがノードのポートＡで受信された場合、ノードは、ポートＢで受信された最新のパケットのタイムスタンプを取得して、デルタ時間で到着するようにこのタイムスタンプを処理されている現在のパケットのタイムスタンプから減ずる（ステップ３０８）。パケットがノードのポートＢで受信される場合、ノードは、ポートＡで受信された最新のパケットのタイムスタンプを取得して、デルタ時間で到着するようにこのタイムスタンプを処理されている現在のパケットのタイムスタンプから減ずる（ステップ３１０）。次に、ステップ３１２で、ノードは、デルタ時間を所与のシステムに関するラウンドトリップ時間と比較する。任意の所与のシステムに関して、ラウンドトリップ時間は、パケットが例えばノード４００上のポート４０５（図４Ａを参照）からノード４１０に、次にノード４２０に、さらにノード４００のポート４０６までループを移動するのにかかる最長時間である。ノードによって計算されるデルタ時間がループネットワークに関するラウンドトリップ時間以上である場合、ノードがパケットをまだ受信していないので、ノードは、一致を見つけるためにピアポートのデータ構造を横断する必要がない。より正確には、それはノードによって受信されるパケットの第１のコピーであって、ノードはそれを破棄するのではなく処理するであろう。このように、ステップ３１４で、ノードは簡潔に、パケットがノードに対してアドレス指定されているかどうかを判断する。例えば、パケットがノード４２０に対してアドレス指定されているとノード４２０が判断する場合、ステップ３３２で、ノードは、次に、パケットのペイロードを処理して、リモートホストに送信する応答パケットを構築する。ステップ３３４で、ノードは、応答パケットを送信する。ステップ３１４で、パケットがノードにアドレス指定されていないとノードが判断する場合、ノードは、ピアポートの送信機が使用可能かどうかを判断する（ステップ３１６）。もし使用可能であれば、パケットはこのポート（例えば、図４Ａのノード４２０のポートＢ）から転送されるであろう。このパケットは、同じ経路、すなわち図４Ａの経路４１１に沿って同じ方向にその下流ノード（図４Ａのノード４３０）に送信されるであろう。逆に、パケットがポートＢで受信される場合、そのパケットはポートＡに転送されるであろう。このパケットは、同じ経路、すなわち経路４５１に沿って同じ方向にその下流ノードに送信されるであろう。ステップ３１６で（ピアポート上の）転送送信機が使用可能でない場合、ステップ３２０でノードは、最初に、パケットが応答パケットであるかどうかを判断する。応答パケットである場合、ステップ３２２でパケットが破棄される。パケットが応答パケットでない場合、ステップ３２４で、パケットは、それが受信された同じポートで反対方向に送信機を使用して転送されるであろう。このように、パケットは、その上流ノード、ノード４１０（図４Ａ又は４Ｂを参照）に送信されるであろう。
【００３５】
ステップ３１２に戻ると、ノードによって計算されたデルタ時間がループに関するラウンドトリップ時間以上でない場合、ステップ３２６で、パケットがピアポートで既に受信されているかどうか、すなわちステップ３２８で一致が検出されるかどうかを判断するためにピアポートのデータ構造（すなわち、受信パケットに関するトランザクション情報及びタイムスタンプ）を横断する。一致が検出される場合、ステップ３３０で、ノードは、パケットを破棄する。一致が検出されない場合、上記のようにパケットがノードに対してアドレス指定されているかどうかを判断するために、ノードはステップ３１４を継続する。
【００３６】
上記のように、図３Ｂは、ユニキャストトラフィックのみが問題となる本発明の第２の実施形態によるオートリカバリ技術のデータフロー及びアルゴリズムの流れ図である。
【００３７】
図３Ｂの実施形態によれば、ステップ３３６で、ノードはパケットを待つ。ステップ３３８で、ノード（上記の例に従って、図４Ａのノード４２０）は、そのポートの１つ（例えば、ポートＡ）でパケットを受信する。ステップ３４０で、ノードは、パケットがそれにアドレス指定されているかどうかを判断する。パケットがノードにアドレス指定されていない場合、ノードはその転送送信機が使用可能であるかどうかを判断する（ステップ３４２）。もし使用可能であれば、パケットは、反対のポート（例えば、ポートＢ）から転送されるであろう。ここで、パケットは、同じ経路（受信ポートがポートＡである場合は経路４１１又はポートＢで受信される場合は経路４５１）に沿って同じ方向に下流ノード（図４Ａのノード４３０）へと送信されるであろう。ステップ３４２で転送送信機が使用可能でない場合、ステップ３４６でノードは、最初に、パケットが応答パケットであるかどうかを判断する。応答パケットである場合、ステップ３５２でパケットが破棄される。パケットが応答パケットでない場合、ステップ３４８でノードは、ピア経路送信機が使用可能であるかどうかを判断する。もし使用可能であれば、ステップ３５０で、パケットはピア経路送信機に転送されるであろう。
【００３８】
図３Ｂをさらに参照すると、受信パケットがノード（例えば、図４Ａのノード４２０上のポートＡ）にアドレス指定されている場合、ノードはパケットを処理するであろう（ステップ３５４−３７０）。同一のパケットがノードのピアポートでまだ受信されていない場合、応答メッセージが生成されて、次に、自身の送信機で送信される。ステップ３７２及び３７４で、このパケットは、経路４５１に沿って送信されれるであろう。応答パケットを同じポート上の送信機を介して送信することができない場合、ステップ３７６及び３７８で、応答パケットは、パケットが経路４１１に沿って送信されるピアポート上の送信機に送信されるであろう。
【００３９】
図３Ｂに示されるように、ステップ３５４で、ネットワークループ上の任意のノードの２つのポート（ポートＡ及びポートＢ）のそれぞれにおいて受信され且つ受け入れられるパケットが記録される。ノードのポートＡ又はポートＢで受信される有効な各パケットについて、ノードは、パケットのトランザクション情報及びパケットがポート用のデータ構造で受信されるときのタイムスタンプをローカルに保存してもよい。この情報は、次に、ステップ３５８−３６２で使用されてもよい。上記のように、当業者は、本発明の実施形態で使用される適切なデータ構造を特定することが出来る。
【００４０】
図３Ｂのステップ３５４で、ノードは、ノードにアドレス指定される受信パケットのトランザクション情報及びタイムスタンプを取得する。トランザクション情報は、パケットを識別するために使用されるパケットのヘッダ又はペイロードに含まれる任意の形式の情報又は識別子であってもよい。ステップ３５８で、パケットがノードのポートＢで受信される場合、ノードは、ポートＡで受信された最後のパケットのタイムスタンプを取得して、デルタ時間で到着するようにこのタイムスタンプを処理されている現在のパケットのタイムスタンプから減ずる。パケットがノードのポートＡで受信される場合、ノードは、ポートＢで受信された最後のパケットのタイムスタンプを取得して、デルタ時間で到着するようにこのタイムスタンプを処理されている現在のパケットのタイムスタンプから減ずる（ステップ３６０）。次に、ノードは、デルタ時間を所与のシステムに関するラウンドトリップ時間と比較する。任意の所与のシステムに関して、ラウンドトリップ時間は、パケットが例えばポート４０５からポート４０６にループ上を移動するのにかかる最長時間である。ステップ３６２で、ノードによって計算されたデルタ時間がループネットワークに関するラウンドトリップ時間以上である場合、パケットはピアポートに到達するためにループ上を反対方向に移動する時間を有していなかったので、ノードは、ピアポートのデータ構造を横断する必要がない。よって、トランザクション情報及びタイムスタンプは適切なポートのデータ構造で保存され、ノードはパケットのペイロードを処理し、且つノードはリモートホストに応答パケットを構築して送信する（ステップ３７０）。ノードによって計算されたデルタ時間がループネットワークに関するラウンドトリップ時間以上でない場合、ステップ３６４で、パケットがピアポートで既に受信されているかどうかを判断するためにピアポートのデータ構造（すなわち、受信パケットに関するトランザクション情報及びタイムスタンプ）を横断する。一致が検出される場合、ステップ３６８で、ノードは、パケットを破棄する。一致が検出されない場合、ステップ３７０で記載されたように、ノードはパケットを処理する。
【００４１】
障害状態下においてオートリカバリするデータフロー
図５Ａは、本明細書に記載される実施形態で発生し得る障害状態を示す。また、図５Ｂ−５Ｇは、本明細書に記載のオートリカバリ技術に従うデータフローを示す。図５Ａに見られるように、障害状態５６０及び５６２は、外部ネットワーク５０１におけるリンクダウン状態の間に発生してもよい。図５Ａの障害状態５６４は、エッジスイッチ５００のポート５０７とノード５１０のポートＡとの間のリンクにおけるリンクダウン状態の間に発生してもよい。図５Ａの障害状態５６６は、エッジスイッチ５００のポート５０８とノード５５０のポートＢとの間のリンクにおけるリンクダウン状態の間に発生してもよい。
【００４２】
図５Ａの障害状態５６８は、ネットワークループ５０３の中間のノード５２０のポートＢ及びノード５３０のポートＡで検出されるリンクダウン欠陥状態の間に発生してもよい。図５Ａの障害状態５７０は、ノード５３０の装置障害又は取り外しの間に発生してもよく、ネットワークループ５０３の中間のノード５４０のポートＡ及びノード５２０のポートＢで検出されるリンクダウン欠陥状態を生むであろう。図５Ａの障害状態５７２は、エッジスイッチ５００の障害の間に発生してもよい。障害状態５７２の間、本明細書に記載のオートリカバリ技術は、外部ネットワークリンクとネットワークループ５０３との間のデータフローを解決しないであろう。
【００４３】
図３Ａ及び３Ｂにおいて上述されたデータフロー及びアルゴリズム技術を用いて、本発明の態様によれば、図５Ａを参照して上述された例示の障害状態５６０、５６２、５６４、５６６、５６８、５７０、及び５７２において、所定のデータフローが確保されるであろう。
【００４４】
エッジスイッチ５００上のデータフロー制御及びネットワークループ５０３の各ノード上のデータフロー制御は、大きく異なる。エッジスイッチにおけるデータフローの制御は、事前定義されてもよく、且つ動的制御論理又はアルゴリズムが必要とされない。従って、エッジスイッチ５００における静的データフロー制御は、システムが使用可能モードになる前に、システム構成段階で実行されてもよい。
【００４５】
図５Ａを参照すると、ループネットワーク５０３のエッジスイッチ５００と２つの先頭ノード５１０及び５５０のそれぞれとの間の障害状態は、同様の自動リカバリ動作を引き起こすであろう。エッジスイッチとノード５１０との間の障害は、ループ５０３内の全体経路５１１を分断するであろう。さらに、ポート５０７は、この経路上の出口方向からの応答メッセージパケットの受信を停止するであろう。エッジスイッチ５００とノード５５０との間の障害は、ループ５０３内の全体経路５５１を分断するであろう。さらに、ポート５０８は、この経路上の出口方向からの応答メッセージパケットの受信を停止するであろう。こうした障害は、１つのデータ経路にのみ影響を与えるが、双方には与えない。ループネットワーク５０３の中間における任意の単一の障害状態（例えば、５６８及び５７０）は、双方のデータ経路（５５１及び５１１）に同時に影響を与えるであろう。しかし、障害状態５６８又は５７０が発生する場合、経路５５１及び５１１は、双方とも完全にはブロックされないであろう。その代わり、２つの経路の一部のみが影響を受けるであろう。本発明の態様によるそれぞれ記載された障害状態５６０、５６２、５６４、５６６、５６８、５７０、及び５７２に関するデータフローが以下に記載される。
【００４６】
図５Ｂ及び５Ｃは、外部ネットワーク５０１へのポート５０５又はポート５０６のそれぞれにおける障害状態５６０及び５６２のオートリカバリの間の例示的なデータフローを示す。
【００４７】
ポート５０５又はポート５０６の双方でなく、いずれかへのリンク上の障害は、ネットワークループ５０３内に異なるデータフローを引き起こさないであろう。その代わり、こうした障害状態（５６０及び５６２）は、エッジスイッチ５００内のデータフローにのみ差異をもたらすであろう。
【００４８】
図５Ｂにおいて、ポート５０５を介するデータ経路がブロックされる一方で、ポート５０６を介する経路はまだ利用可能である。パケットは、リモートホストからノード５２０に送信されている。本発明の実施形態によれば、同一の受信パケットの２つのコピーがノード５２０に送信されるであろう。図５Ｂに示されるように、経路５１１から到着するパケットは、関連する応答メッセージパケットが生成されて経路５１１に沿って反対方向にエッジスイッチ５００上のポート５０７に戻されるであろう。応答パケットがポート５０７に到着した後、エッジスイッチ５００は、パケットをポート５０６に転送するであろう。次に、メッセージは、ループネットワーク５０３から外部ネットワーク５０１又はリモートホストに送信される。結果として、ノード５２０とリモートホストとの間の２重通信チャネルは、障害５６０に耐えることが出来る。このリカバリは、図３Ａ及び図３Ｂに記載のデータフロー制御及び実施形態によって確保される。
【００４９】
図５Ｃにおいて、ポート５０６を介するデータ経路ブロックされる一方で、ポート５０５を介する経路はまだ利用可能である。障害状態５６２における本発明の実施形態によれば、パケットは、同様にリモートホストからノード５２０に送信されると推定される。図５Ｃに示される場合に関して、障害状態におけるデータフローは、図５Ｂに示される障害状態に関する上記の記載と同様である。
【００５０】
図５Ｄは、エッジスイッチ５００とノード５１０との間のリンクにおける障害状態５６４のオートリカバリの間の例示的なデータフローを示す。図５Ｄにおいて、パケットは、リモートホストからノード５２０に送信されている。障害５６４が発生する前に、ノード５２０に向かうパケットは、ノード５００上のポート５０７及び５０８の双方から送信される。すなわち、同一のパケットの２つのコピーがノード５２０に到着するであろう。一方で、経路５１１に沿ってポートＡで受信されるパケットは、処理されるコピーであろう。また、応答メッセージパケットは、同じ経路（データ経路５１１）に沿って反対方向に送り戻されるであろう。こうしたデータフローは、図４Ａ及び４Ｂに共に示されている。
【００５１】
障害５６４が発生した後（図５Ｄを参照）、経路５５１に沿うパケットのみがノード５２０に到達可能である一方で、経路５１１に沿って送信された第２のコピーは到達することが出来ない。ノード５２０は、パケットを受信した後、それを処理して、次に、同一の経路、すなわち経路５５１に沿って、内部ノード５４０及びノード５５０を介して反対方向にエッジスイッチ５００上のポート５０８へと関連する応答パケットを送り戻すことが出来る。エッジスイッチ５００において、ポート５０８が応答パケットを受信すると、パケットはポート５０５及び５０６の双方にマルチキャストされて、次に、ネットワーク５０１に送信されるであろう。このリカバリは、図３Ａ及び図３Ｂに記載のデータフロー制御及び実施形態によって確保される。
【００５２】
図５Ｅは、エッジスイッチ５００とノード５５０との間のリンクにおける障害状態５６６のオートリカバリの間の例示的なデータフローを示す。図５Ｅにおいて、リモートホストからノード５２０にパケットが送信されている。図５Ｅに記載される場合に関するデータフローは、本明細書に記載のオートリカバリ技術によれば、図５Ｄの障害状態５６４における記載と同様である。
【００５３】
図５Ｆは、ループネットワーク５０３の中央における障害状態５６８のオートリカバリの間の例示的なデータフローを示す。図５Ｆにおいて、パケットは、リモートホストからノード５２０に送信されている。図５Ｆに記載の障害状態において、経路５１１及び５５１は共に、ノード５２０とノード５３０との間の地点で分断される。しかし、エッジスイッチ５００のポート５０７からノード５２０への経路５１１の一部及びエッジスイッチ５００のポート５０８からノード５３０への経路５５１の一部はまだ接続されている。よって、図５Ｆに記載の障害状態において、リモートホストは、経路５１１を介してノード５１０及びノード５２０にまだ到達することが可能であり、且つ経路５５１を介してノード５３０、ノード５４０及びノード５５０に到達することが可能である。本発明の実施形態による障害状態５６８において、リモートホストがノード５２０にパケットを送信する必要がある場合、唯一の利用可能なデータ経路は、経路５１１であろう。しかし、５３０に向かうパケットは、経路５５１を介してのみ送信され得る。このリカバリは、図３Ａ及び図３Ｂに記載のデータフロー制御及び実施形態によって確保される。
【００５４】
図５Ｇは、ループネットワーク５０３の中間のノード、本実施形態ではノード５３０における障害状態５７０のオートリカバリの間の例示的なデータフローを示す。図５Ｇにおいて、リモートホストからノード５２０にパケットが送信されている。ループ５０３上のノードが装置障害に遭遇し又は取り除かれる場合に、図５Ｇに示される障害状態５７０が発生する。障害状態において、ノード５３０上の双方の部分は、隣接ノード（又は、障害ノードが経路５５１又は経路５１１上の先頭ノードである場合はエッジスイッチ）と通信するために使用することが出来ない。図５Ｇに示されるように、リモートホストは、経路５１１を介してのみノード５１０及びノード５２０にアクセスすることが可能であってもよい。また、リモートホストは、経路５５１を介してのみノード５４０及びノード５５０にアクセス可能であってもよい。図５Ｇの実施形態において、ノード５３０は、何れの経路を介してもアクセスされ得ない。上述の他の障害の場合と同様に、リモートホストとネットワークループ５０３上の対象ノード５２０との間の通信チャネルはこの障害に耐える。さらに、図５Ｇの実施形態によれば、ノード５２０によってリモートホストに送信される応答メッセージは、エッジスイッチノード５００上のポート５０７を介して双方のリンク５０２及び５０４でホストに送信されてもよい。このリカバリは、図３Ａ及び図３Ｂに記載のデータフロー制御及び実施形態によって確保される。
【００５５】
エッジスイッチ５００上で装置障害が発生する場合、又はエッジスイッチ５００がネットワークから外される場合（すなわち、図５Ａの障害状態５７２）、リモートホストと本発明の実施形態によるループネットワーク５０３内のノードとの間の通信を回復することは出来ない。
【００５６】
図５Ａに示される４ポート構成のエッジスイッチ５００に関して上述された本発明の実施形態に従って、外部ネットワーク５０１への双方のリンクは、入口及び出口方向の双方に同じトラフィックを伝送する。さらに、３ポート又は４ポート構成のエッジスイッチ５００に関して、ネットワークループ５０３内の２つのデータ経路（経路５１１及び５５１）に沿ったトラフィックは同一である。直接的な結果として、本発明の態様によれば、同一のデータパケットの２つのコピーが通常の動作において対象ノードに送信されてもよい。本明細書に記載の障害状態において、本発明の態様によれば、対象ノードは、冗長性のためにデータパケットの少なくとも１つのコピーを受信するべきである。
【００５７】
当業者であれば、多様なリング状又はループネットワークシステムにおいて、及び多様な伝送媒体と共に、上述の技術が実装されてもよいことを理解するであろう。有線、光ファイバケーブル、無線又は他の伝送媒体に基づくネットワークが本発明を利用してもよい。例えば、本発明の別の実施形態は、衛星に基づくネットワークにおいて、先述のオートリカバリ技術を実装することを含む。このような実装において、衛星ネットワーク内のノードは、２つの衛生局から複製した伝送を受信してもよい。本発明の態様によれば、ノードは、上述されたように複製した伝送を処理するであろう。
【００５８】
本発明の所定の態様が本明細書に記載されているが、本発明は記載された実施形態に限定されないことがさらに留意されるべきである。当業者であれば、本発明を読めば又は実施する際に、本発明によって具現化されるさらなる変形を認識するであろう。以下の請求項は、本発明の範囲を明示する。
【図１】
0005546461.tif 000002
【図２】
0005546461.tif 000003
【図３Ａ】
0005546461.tif 000004
【図３Ｂ】
0005546461.tif 000005
【図４Ａ】
0005546461.tif 000006
【図４Ｂ】
0005546461.tif 000007
【図５Ａ】
0005546461.tif 000008
【図５Ｂ】
0005546461.tif 000009
【図５Ｃ】
0005546461.tif 000010
【図５Ｄ】
0005546461.tif 000011
【図５Ｅ】
0005546461.tif 000012
【図５Ｆ】
0005546461.tif 000013
【図５Ｇ】
0005546461.tif 000014