(57)【要約】【課題】ネットワーク要素の転送プレーンにおいてポート状態テーブルを保持するための方法、装置、及びコンピュータプログラム製品を提示する。【解決手段】第１の転送データユニット（ＦＤＵ）に関連付けられているポートの第１のセットの状態が定期的に判定され、第１のＦＤＵは複数のＦＤＵのうちの１つである。判定済みの状態は、第１のＦＤＵに関連付けられているポート状態データベースの第１のポート状態テーブルを更新するために使用される。判定済みの状態はネットワーク要素上のその他の各ＦＤＵに伝送され、その他のＦＤＵの各々が、その他のＦＤＵの各々にローカルなポート状態データベースにポートの第１のセットの状態を格納できるようにする。ポート状態データベースは、パケットの高速再ルーティングを実行するために転送プレーンによって使用される。【選択図】図１
2010283811.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク要素の転送プレーンにおいてポート状態データベースを保持する方法であって、
第１の転送データユニット（ＦＤＵ：Ｆｏｒｗａｒｄｉｎｇ  Ｄａｔａ  Ｕｎｉｔ）に関連付けられているポートの第１のセットの状態を定期的に判定するステップであって、前記第１のＦＤＵは前記ネットワーク要素の前記転送プレーン内で転送機能を実施する複数のＦＤＵのうちの１つであるステップ、
前記判定済みの状態を使用して前記第１のＦＤＵに関連付けられている前記ポート状態データベースの第１のポート状態テーブルを更新するステップ、及び
前記ネットワーク要素上のその他の各ＦＤＵに前記判定済みの状態を伝送して、前記その他のＦＤＵの各々が、前記その他のＦＤＵの各々にローカルなポート状態データベースにポートの前記第１のセットの前記状態を格納できるようにするステップ
を備える方法。
【請求項２】
請求項１記載の方法であって、ローカルポート及びリモートポートの物理リンク状態及び接続状態を前記第１のポート状態データベースで保持するステップをさらに備える方法。
【請求項３】
請求項２記載の方法であって、前記第１のポート状態データベースはローカルポートデータテーブル及びリモートポートデータテーブルを含み、ローカルポートの物理リンク状態及び接続状態は前記ローカルポートデータテーブルで保持され、リモートポートの物理リンク状態及び接続状態は前記リモートポートデータテーブルで保持される方法。
【請求項４】
請求項３記載の方法であって、前記ローカルポートデータテーブル内で前記第１のＦＤＵ上にあるマルチリンクトランク（ＭＬＴ）ポートメンバー状態を保持するステップ、及び前記リモートポートデータテーブル内で前記その他のＦＤＵ上にあるマルチリンクトランク（ＭＬＴ）ポートメンバー状態を保持するステップをさらに備える方法。
【請求項５】
請求項１記載の方法であって、前記第１のＦＤＵを含む回線カード上のポートのローカル物理リンクステータスを含むハートビートパケットを受信するステップをさらに備え、前記第１のＦＤＵは前記ハートビートパケットの前記回線カード上のポートの前記ローカル物理リンクステータスを使用して前記ポート状態データベースを更新する方法。
【請求項６】
請求項５記載の方法であって、ハートビートパケットが前記その他のＦＤＵから受信されるかどうかを判定するために前記その他のＦＤＵの各々についてタイマーを保持するステップをさらに備え、タイマーに関連付けられている前記ＦＤＵからハートビートパケットを受信する前にそのタイマーが満了した場合、そのＦＤＵに関連付けられている各ポートはＤＯＷＮ状態にあると判定されて、そのＦＤＵが復元されるまで前記ＤＯＷＮ状態を有するポートにパケットが送信されないようにする方法。
【請求項７】
請求項６記載の方法であって、前記第１のＦＤＵの付加ポートごとに１対のローカルタイマーを保持するステップをさらに備え、前記付加ポートは論理／仮想接続で構成され、前記ローカルタイマーの１つは前記付加ポートを介して送信されるハートビートパケットを生成するために使用され、前記ローカルタイマーのもう１つは前記送信されたハートビートパケットが受信されない場合に接続障害が存在するとき、前記付加ポートの接続障害を検出するために使用される方法。
【請求項８】
請求項７記載の方法であって、前記第１のＦＤＵがそのポート状態データベースを、ハートビートパケットの到着及びタイマーの満了で更新する方法。
【請求項９】
ネットワーク要素であって、
メモリ、
プロセッサ、
通信インターフェイス、
前記メモリ、前記プロセッサ、及び前記通信インターフェイスを結合する相互接続機構を備え、
前記メモリは、前記プロセッサ上で実行されるとき、情報を処理するためのプロセスを提供する、ポート状態データベースを保持するアプリケーションでエンコードされ、前記プロセスは前記ネットワーク要素に、
第１の転送データユニット（ＦＤＵ）に関連付けられているポートの第１のセットの状態を定期的に判定する操作であって、前記第１のＦＤＵは前記ネットワーク要素の前記転送プレーン内で転送機能を実施する複数のＦＤＵのうちの１つである操作、
前記判定済みの状態を使用して前記第１のＦＤＵに関連付けられている前記ポート状態データベースの第１のポート状態テーブルを更新する操作、及び
前記ネットワーク要素上のその他の各ＦＤＵに前記判定済みの状態を伝送して、前記その他のＦＤＵの各々が、前記その他のＦＤＵの各々にローカルなポート状態データベースにポートの前記第１のセットの前記状態を格納できるようにする操作を実行させるネットワーク要素。
【請求項１０】
ポート状態データベースを保持するためのコンピュータ可読コードを有するコンピュータ可読記憶媒体であって、コンピュータシステムが、
第１の転送データユニット（ＦＤＵ）に関連付けられているポートの第１のセットの状態を定期的に判定するステップであって、前記第１のＦＤＵは前記ネットワーク要素の前記転送プレーン内で転送機能を実施する複数のＦＤＵのうちの１つであるステップ、
前記判定済みの状態を使用して前記第１のＦＤＵに関連付けられている前記ポート状態データベースの第１のポート状態テーブルを更新するステップ、及び
前記ネットワーク要素上のその他の各ＦＤＵに前記判定済みの状態を伝送して、前記その他のＦＤＵの各々が、前記その他のＦＤＵの各々にローカルなポート状態データベースにポートの前記第１のセットの前記状態を格納できるようにするステップ
を備える操作を実行する命令を含むコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、参照により全体を本明細書に取り込む２００９年５月１３日に出願した米国仮特許出願第６１／１７８，０２０号の利点を主張するものである。
【背景技術】
【０００２】
データ通信ネットワークは、様々なコンピュータ、サーバ、ノード、ルータ、スイッチ、ハブ、プロキシ、及びデータを相互に渡すように結合され、構成されたその他のデバイスを含むことができる。これらのデバイスは、本明細書において「ネットワーク要素（ｎｅｔｗｏｒｋ  ｅｌｅｍｅｎｔ）」と呼ばれ、ネットワーク上で様々なネットワークリソースをもたらすことができる。データはネットワーク上の通信リンクを介してネットワーク要素間で（パケット、セル、フレーム、又はセグメントなどの）プロトコルデータユニットを渡すことによってデータ通信ネットワーク経由で伝達される。特定のプロトコルデータユニットは、ネットワークを介してそのソースとその宛先との間を移動する際に、複数のネットワーク要素及び相互の複数の通信リンクによって処理されることもできる。コンピュータ、電話、携帯電話、携帯情報端末、及びその他のタイプの消費者電化製品のようなホストは通信ネットワークに接続し、これを介してデータを送信／受信するので、通信ネットワークによって提供される通信サービスのユーザである。
【０００３】
ネットワーク要素は通常、ネットワーク要素の操作を制御する制御プレーン、及びネットワークを通じて流れるトラフィックを処理するデータプレーンを有するように実施される。データプレーンは通常、ネットワーク上のリンクに接続するポートを有する回線カードの集合を有する。データは特定のポートで受信され、データプレーン内で交換され、１つ以上のその他のポートにおいてネットワーク上の他のリンクに出力される。データが迅速に処理されるようにするため、データプレーンは通常、データを処理する方法に関する決定の全てがハードウェアルックアップなどを使用して実行されるようにハードウェアにおいて実施される。
【０００４】
回線カードの故障、ポートに接続されているリンクの障害（例えば、回線切断）、遠端回線カードの故障などを含む、多数の原因によりポートに障害が発生する可能性がある。マルチリンクトランク（ＭＬＴ：ｍｕｌｔｉ−ｌｉｎｋ  ｔｒｕｎｋ）、リンクアグリゲーショングループ（ＬＡＧ：Ｌｉｎｋ  Ａｇｇｒｅｇａｔｉｏｎ  Ｇｒｏｕｐ）、及び論理ポートという用語は同義であり、これらの用語は互換的に使用される。同様に、ネットワーク要素内の内部転送データパスは障害を生じることもあり、そのためポート又はポートのセットに障害が発生したと見なされる場合があるか、又はポートの外部ピアエンドポイントへの論理／仮想接続に沿って何らかの他の障害がある場合もある。ポートに障害が発生する原因は数多くある。
【０００５】
ポートに障害が発生した場合、そのポートに向けられたトラフィックは、ネットワークを通じて接続を復元できるようにするため、代替ポートへと流れるように方向転換される必要がある。例えばダウンタイム及びパケット損失を最小化するなど、ネットワーク要素によって処理されているトラフィックへの影響を最小に抑えるため、トラフィックの再ルーティングはできる限り迅速に行われることが望ましい。好ましくは、トラフィックが１０ミリ秒（ｍｓ）未満で代替ポートにフェイルオーバーできるようにすることが有利となろう。好ましくは、ＬＡＧ又はＭＬＴの場合、トラフィックは、指定された代替ポートがトラフィックで過負荷状態になることを防ぐため、全てが障害発生のポートから特定の指定された代替ポートへと移動されるのではなく、残りのポートにわたり分散される必要がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国仮特許出願第６１／１７８，０２０号
【発明の概要】
【０００７】
上記で説明したような従来の機構では、様々な欠点がある。そのような欠点の１つは、従来のネットワーク要素が障害から回復するために要する時間である。回復のために要する時間が長くなれば、それに応じてパフォーマンスの遅延（さらに多くのパケット欠落を含む）及び障害ポートを克服するための他のポートのロードの時間も長くなる。現在の解決策では、ポート障害を効率的に検出し、ポート状態を配信して、パケット／セル／フレーム転送中に高速再ルーティングを行えるようにする包括的な方法をもたらすことはない。これらの解決策は通常、障害のサブセットを処理するために管理及び／又は制御プレーンソフトウェアを広範に使用する。それらの手法は、結果としてネットワークダウンタイムをさらに長引かせ、パケット損失をさらに高めることになる。
【０００８】
本発明の実施形態は、そのような欠点を大幅に克服し、ネットワーク要素の転送プレーンにおいてポート状態テーブルを保持するための方法及び装置をもたらす機構及び技法を提供する。ネットワークのダウンタイム及びパケット損失を最小にして、そのような障害が発生したときにネットワークデバイスにシームレスなフェイルオーバーをもたらすことは極めて重要である。本発明により、ノードのクラスタ内のポート状態の非常に高速かつ効率的な検出及び配信が可能になる。この機構は、高速パスが、管理及び／又は制御プレーンソフトウェアからの動的な支援を受けることなく、そのような障害の発生時にシームレスな高速再ルーティングを実行できるようにする。
【課題を解決するための手段】
【０００９】
ネットワーク要素の転送プレーンにおいてポート状態テーブルを保持するための方法の特定の実施形態において、方法は、第１の転送データユニット（ＦＤＵ）に関連付けられているポートの第１のセットの状態を定期的に決定するステップを含み、第１のＦＤＵはネットワーク要素の転送プレーン内で転送機能を実施する複数のＦＤＵのうちの１つである。方法はさらに、決定済みの状態を使用して第１のＦＤＵに関連付けられているポート状態データベースの第１のポート状態テーブルを更新するステップを含む。加えて、方法は、ネットワーク要素上のその他の各ＦＤＵに決定済みの状態を伝送して、その他のＦＤＵの各々がその他のＦＤＵの各々にローカルなポート状態データベースにポートの第１のセットの状態を格納できるようにするステップを含む。
【００１０】
その他の実施形態は、ネットワーク要素の転送プレーンにおいてポート状態テーブルを保持するためのコンピュータ可読コードを有するコンピュータ可読媒体を含む。コンピュータ可読媒体は、第１の転送データユニット（ＦＤＵ）に関連付けられているポートの第１のセットの状態を定期的に決定するための命令を含み、第１のＦＤＵはネットワーク要素の転送プレーン内で転送機能を実施する複数のＦＤＵのうちの１つである。コンピュータ可読媒体はさらに、決定済みの状態を使用して第１のＦＤＵに関連付けられているポート状態データベースの第１のポート状態テーブルを更新するための命令を含む。加えて、コンピュータ可読媒体は、ネットワーク要素上のその他の各ＦＤＵに決定済みの状態を伝送して、その他のＦＤＵの各々がその他のＦＤＵの各々にローカルなポート状態データベースにポートの第１のセットの状態を格納できるようにするための命令を含む。
【００１１】
さらに他の実施形態は、本発明の実施形態として本明細書において開示される全ての方法操作を処理するように構成されたコンピュータ制御デバイス（ネットワーク要素）を含む。そのような実施形態において、コンピュータ制御デバイスは、メモリシステム、プロセッサ、これらのコンポーネントを接続する相互接続機構の通信インターフェイスを含む。メモリシステムは、本明細書において説明されるネットワーク要素の転送プレーンにおいてポート状態テーブルを保持するステップを提供するプロセスでエンコードされ、プロセスは、プロセッサ上で行われるとき（例えば、実行するとき）、コンピュータ制御デバイス内で本明細書において説明されるように動作して、本発明の実施形態として本明細書に説明される方法の実施形態及び操作の全てを実行する。従って、本明細書において説明されるネットワーク要素の転送プレーンにおいてポート状態テーブルを保持するように実行するか又はプログラムされる任意のコンピュータ制御デバイスは本発明の実施形態である。
【００１２】
本明細書において開示される本発明の実施形態のその他の構成は上記で要約され、以下で詳細に開示される方法の実施形態のステップ及び操作を実行するソフトウェアプログラムを含む。さらに詳細には、コンピュータ制御デバイスにおいて実行されるとき、本明細書において説明されるようにネットワーク要素の転送プレーンのポート状態テーブルを保持するために関連する操作を行う、エンコードされたコンピュータプログラム論理を含むコンピュータ可読媒体を有するコンピュータプログラム製品は１つの実施形態である。コンピュータプログラム論理は、コンピューティングシステムを持つ少なくとも１つのプロセッサで実行されるとき、本発明の実施形態として本明細書において指示される操作（例えば、方法）をプロセッサに実行させる。本発明のそのような構成は通常、光学媒体（例えば、ＣＤ−ＲＯＭ）、フロッピー又はハードディスク、若しくはその他の媒体のようなコンピュータ可読媒体上で構成又はエンコードされた、１つ以上のＲＯＭ又はＲＡＭ又はＰＲＯＭチップ内のファームウェア又はマイクロコードのようなソフトウェア、コード、及び／又はその他のデータ構造として、若しくは特殊用途向け集積回路（ＡＳＩＣ）として、若しくは１つ以上のモジュール、共用ライブラリなどのダウンロード可能ソフトウェアイメージとして提供される。ソフトウェア若しくはファームウェア又はその他のそのような構成は、コンピュータ制御デバイスにインストールされて、コンピュータ制御デバイス内の１つ以上のプロセッサに、本発明の実施形態として本明細書において説明される技術を実行させることができる。データ通信デバイス又はその他のエンティティのグループのような、コンピュータ制御デバイスの集合体において動作するソフトウェアプロセスはまた、本発明のシステムを提供することができる。本発明のシステムは、複数のデータ通信デバイス上の多数のソフトウェアプロセス間で分散されてもよいか、又は全てのプロセスが専用コンピュータの小規模なセット上又は単独のコンピュータ上で実行してもよい。
【００１３】
本発明の実施形態が、ソフトウェアプログラムとして、ソフトウェア及びハードウェアとして、又はデータ通信デバイス内のように、ハードウェア及び／又は回路のみとして厳密に具現されてもよいことを理解されたい。本明細書において説明される本発明の特徴は、ニュージャージー州ＬｉｎｃｒｏｆｔのＡｖａｙａ，Ｉｎｃ．によって製造されるような、データ通信デバイス及び／又はそのようなデバイス用のソフトウェアシステムに採用されてもよい。
【００１４】
本開示において説明される様々な特徴、技術、構成などは各々、単独で、又は組み合わせて実行できることに留意されたい。従って、本発明は、多種多様な方法で具現され検討されてもよい。また、本明細書のこの発明の概要の節では、本開示又は請求の範囲に記載されている発明の全ての実施形態及び／又は追加的な新奇の態様を指定してはいない。その代わり、この発明の概要の節では、様々な実施形態及び従来の技法にまさる新奇性の対応する点について予備的な説明を行うのみである。本発明の追加の詳細、要素、及び／又は可能な観点（置換）について、読者は、以下でさらに説明される、本開示の発明を実施するための形態の節及び対応する図面を参照されたい。
【００１５】
前述の内容は、様々な図表全体を通じて類似した参照符号が同じ部分を示す添付の図面に示されている本発明の好ましい実施形態のさらに詳細な以下の説明から明らかとなろう。図面は必ずしも一定の縮尺では示されていないが、本発明の原理を説明することに重点が置かれている。
【図面の簡単な説明】
【００１６】
【図１】ノードのクラスタを編成する第１の例を示す機能ブロック図である。
【図２】ノードのクラスタを編成するもう１つの例を示す機能ブロック図である。
【図３】ノードのクラスタを編成するもう１つの例を示す機能ブロック図である。
【図４】ノードのクラスタを編成するもう１つの例を示す機能ブロック図である。
【図５】ノードのクラスタを編成するもう１つの例を示す機能ブロック図である。
【図６】ノードのクラスタを編成するもう１つの例を示す機能ブロック図である。
【図７】例示の通信ネットワークを示す機能ブロック図である。
【図８】例示のネットワーク要素を示す機能ブロック図である。
【図９】図８のネットワーク要素のようなネットワーク要素で使用され得る例示の回線カードを示す機能ブロック図である。
【図１０】図９の回線カードのような回線カードで使用され得る例示のポートデータベースを示す機能ブロック図である。
【図１１】ノードクラスタ内のデータパスのコンポーネント間のポート状態情報の流れを示すネットワーク要素の例示のクラスタの機能ブロック図である。
【図１２】本発明の実施形態によるポート状態テーブルを保持するネットワーク要素の例示のコンピュータシステムアーキテクチャを示す図である。
【図１３】本発明の実施形態によるポート状態テーブルを保持するための方法を示す流れ図である。
【図１４】本発明の実施形態によるネットワーク要素内のポート状態テーブルを更新するための方法を示す流れ図である。
【発明を実施するための形態】
【００１７】
時間とともに、ネットワーク要素がデータを処理する方法は進化してきた。例えば、２つ以上の物理リンクは、ネットワーク要素のグループの間で延在してもよく、ＭＬＴ又はＬＡＧとして集合的に使用されてもよい。図１は、マルチリンクトランク２２を形成するようにグループ化された複数のリンク２４ａ〜ｄによって接続された２つのネットワーク要素（ネットワーク要素１及びネットワーク要素２）の例を示す。特に、ＭＬＴ２２のリンク２４ａ〜ｄは各々、ネットワーク要素のいずれかによって使用されて、データを相互に転送することができる。従って、ネットワーク要素１が、ネットワーク要素２に送信するデータ（例えば、フレーム／パケット）を有する場合、ネットワーク要素１は、ＭＬＴ２２からリンク２４ａ〜２４ｄのうちの１つを選択して、そのリンクを介してパケットをネットワーク要素２に伝送することができる。
【００１８】
図２は、ネットワーク要素を相互接続することができるもう１つの例示の方法を示す。具体的には、この例において、ネットワーク要素１及びネットワーク要素２は、単一リンクであってもよいし、それ自体がマルチリンクトランクであってもよいスイッチ間トランク（ＩＳＴ：ｉｎｔｅｒ−ｓｗｉｔｃｈ  ｔｒｕｎｋ）２６によって相互接続される。マルチリンクトランクのリンクが２つの異なるネットワーク要素に物理的に接続されているとき、ＭＬＴは分割マルチリンクトランク（ＳＭＬＴ：Ｓｐｌｉｔ  Ｍｕｌｔｉ−Ｌｉｎｋ  Ｔｒｕｎｋ）と呼ばれる。ネットワーク要素１及び２は各々、ネットワーク要素３に接続する１つ以上のリンクを有することができるが、これはＳＭＬＴ２３を形成するようにグループ化されてもよい。従って、ネットワーク要素１が、ネットワーク要素３に送信するデータ（例えば、フレーム／パケット）を有する場合、ネットワーク要素１は、ネットワーク要素２がＳＭＬＴに関連付けられているそのリンクのうちの１つでデータをネットワーク要素３に転送できるようにするため、それに接続されているＳＭＬＴリンクのうちの１つを選択してもよいし、又はスイッチ間トランク２６に関連付けられているリンクのうちの１つでパケットを伝送してもよい。
【００１９】
図３は、ネットワーク要素１が、ＳＭＬＴ２３に接続されたリンクを有していないが、ＳＭＬＴに関連付けられているリンクに接続されたポートを有する２つのその他のネットワーク要素（ネットワーク要素２及びネットワーク要素３）にＩＳＴ２５及び２６によって接続されているもう１つの例を示す。このシナリオにおいて、ネットワーク要素１は、ＳＭＬＴで送信するデータを有する場合、ＩＳＴリンク（各ＩＳＴリンクは自身がＳＭＬＴであってもよいことに留意されたい）のうちの１つを選択して、ネットワーク要素２又は３のいずれかにデータを転送する。ＩＳＴは物理トランクであって直接２つのネットワーク要素間に延在してもよいか、又は論理トランクであって１つ以上の中間ネットワーク要素を経由するトンネルで延在してもよい。
【００２０】
図４は、ネットワーク要素１もまたＳＭＬＴ２３に参加するもう１つの例を示す。この例において、ネットワーク要素１は、送信するデータを有する場合、ＳＭＬＴ２３に関連付けられているそのリンクのうちの１つでデータを転送してもよいか、又はデータがＳＭＬＴ２３で転送されるようにするためＩＳＴ２５又は２６のうちの１つに関連付けられているリンクのうちの１つでデータを転送してもよい。
【００２１】
図５及び図６は、スクエア状のＳＭＬＴ構成でネットワーク要素を相互接続するもう１つの方法を示す。図５に示される構成において、４つのネットワーク要素はスクエア状構成のＩＳＴ２５〜２８を介して相互接続され、図６において、４つのネットワーク要素はメッシュ状構成のＩＳＴ２５〜３０を介して相互接続される。ＩＳＴは物理トランクであって直接２つのネットワーク要素間に延在してもよいか、又は論理トランクであって１つ以上の中間ネットワーク要素を経由するトンネルで延在してもよい。
【００２２】
ネットワークデバイスを相互接続することができる方法のいくつかの例が示されたが、ネットワーク要素のクラスタを相互接続する他の方法もあり、相互接続アーキテクチャのこの例示のセットは包括的であることを意図されていない。従って、これらの例は、単にネットワーク要素を相互接続するいくつかの方法の代表的な例を示すことを意図したものにすぎない。ネットワーク要素のグループは本明細書においてクラスタと呼ばれる。
【００２３】
図７は、加入者１２がエッジスイッチ１４に接続する例示の通信ネットワーク１０を示す。エッジスイッチ１４は、リンク１８のネットワークを通じてデータを転送するコアスイッチ１６に接続する。これらのスイッチの各々は、物理ルータ／スイッチであってもよいか、又はクラスタとして動作するように共に接続された複数のデバイスであってもよい。リンク１８の各々は、ＭＬＴであってもよいか、又はルータ／スイッチが複数の物理デバイスとして実施される場合、ＳＭＬＴであってもよい。ネットワークルーティングの観点からは、パケットがネットワークを移動する複数の方法があってもよい。例えば、図７において、エッジスイッチＡは、コアスイッチＣ及びＤを経由してパケットをエッジスイッチＢに伝送することができてもよいか、又はコアスイッチＥ及びＦを経由してパケットを伝送することができてもよい。ネットワーク層ルーティングプロトコルは、パケットの伝送に使用されるべきパスを決定するために使用されてもよい。
【００２４】
前述のように、ネットワーク要素が相互接続される方法に応じて、フレーム／パケットがその宛先に到達できるように、ネットワーク要素がフレーム／パケットを転送する数多くの方法があってもよい。本明細書において使用されるように、「クラスタ」という用語は、ネットワークレベルでノードレベルの弾性をもたらす１つ以上のノードを示すために使用される。従って、図１において、ネットワーク要素１はクラスタであり、図２において、ネットワーク要素１及び２はクラスタであり、図３及び図４において、ネットワーク要素１、２、及び３はクラスタであり、図５及び図６において、ネットワーク要素１〜４はクラスタである。前述のように、クラスタ内のノードを編成する方法は他にもある。
【００２５】
クラスタノード間の論理接続は、本明細書において、スイッチ間トランク（ＩＳＴ）と呼ばれる。ＩＳＴは、クラスタ内で１つのネットワーク要素から近傍のネットワーク要素に延在する物理リンクあってもよいか、又はクラスタ内で１つ以上の中間ネットワーク要素をトンネル通過する論理リンクであってもよい。非ＩＳＴポートからパケットを受信するノードはローカルノードと呼ばれる。クラスタ内の他の全てのノードは、受信されたパケットに関してリモートノードと呼ばれる。ＩＳＴを使用するように選択される場合、ＩＳＴは輪番ベースで選択される。これは、同じＩＳＴを繰り返し選択することを防ぐために行われ、ハッシング機能の代わりに使用される。
【００２６】
２つ以上のリンクはマルチリンクトランク（ＭＬＴ）を形成するようにグループ化されてもよい。各ＭＬＴは、ＭＬＴグループＩＤ（ＭＬＴ−ＩＤ）を割り当てられるが、これはクラスタ内のグローバル値であり、クラスタノードにわたって一意である。全てのポートメンバーが１つのノード上にだけあるＭＬＴは正規ＭＬＴグループと呼ばれる。ポートメンバーが２つ以上のノード上にあるＭＬＴグループは分割ＭＬＴ（Ｓｐｌｉｔ  ＭＬＴ）又はＳＭＬＴグループと呼ばれる。
【００２７】
論理ポートがＭＬＴ又はＳＭＬＴとして実施されるとき、ネットワーク上でパケットをその次のホップに転送することができる複数の物理ポートが実際にある。従って、ＭＬＴ／ＳＭＬＴのポートのうちの１つに障害が発生した場合、パケットがドロップされるのではなく、ネットワークを移動できるように、パケットが残りのポートのうちの１つで転送されるようにすることが有利となろう。同様に、ＭＬＴ／ＳＭＬＴの各ポートのプライマリ及びバックアップポートを指定するのではなく、パケットがＵＰである残りのポートにわたり配信され得るように、ＭＬＴ／ＳＭＬＴの残りのポートにわたりパケットを負荷分散することが有利となろう。実施形態によれば、このプロセスは、高速パス（データプレーン）が個々の複数のポート障害に自動的に対応して、公平な方法で残りのポートにわたりパケットトラフィックを自動的に宛先変更することができるように、ハードウェアで実施される。
【００２８】
図８は、図１〜図６に示されるネットワーク要素のいずれかとして使用され得る例示のネットワーク要素２０の機能ブロック図を示す。図８に示される例において、ネットワーク要素は制御プレーン３１及びデータプレーン３２を含む。制御プレーンは１つ以上のＣＰＵ３４を有し、一般に、ルーティングプロセス、管理プロセスなどのような制御プロセスを実行する。制御プレーンはデータプレーンをプログラムしてネットワーク上でデータを転送する方法をデータプレーンに指示する。
【００２９】
データプレーン３２は多種多様なアーキテクチャを使用して構築されてもよく、図８に示される例は１つのそのようなアーキテクチャの一例にすぎない。図８に示される例において、データプレーンは複数の回線カード３６を含み、回線カードは各々ネットワーク内でリンクに接続する複数の物理ポートを実施する。この実施形態において、回線カードはスイッチファブリック４０によって相互接続されるが、その他の実施形態において、回線カードは直接相互接続されて分散方式でスイッチング機能を実行してもよい。
【００３０】
図９に示されるように、各回線カード３６はネットワーク上のリンクに物理的に接続する複数のポート３８を含む。回線カードはまた、付加されたポートから受信したパケットを処理する１つ以上の機能ユニット４２を含む。本明細書において使用されるように、入口及び出口の両方向に付加されたポートからのパケットを処理して、転送の決定を行う機能ユニットは転送データパスユニット（Ｆｏｒｗａｒｄｉｎｇ  Ｄａｔａｐａｔｈ  Ｕｎｉｔ）又はＦＤＵ４２と呼ばれる。回線カードはまた、ＦＤＵ４２がネットワーク上でデータを適切に処理するように、制御プレーンがＦＤＵ４２及びオプションで回線カード上のその他のコンポーネントへの命令をプログラムできるようにするため、制御プレーンと対話する管理／制御プロセッサ（ＭＣＰ：Ｍａｎａｇｅｍｅｎｔ／Ｃｏｎｔｒｏｌ  Ｐｒｏｃｅｓｓｏｒ）４４を含むことができる。ＭＣＰ４４はまた、ＦＤＵ４２及び回線カードのその他のコンポーネントのステータスを定期的に検査して障害の発生を検出する。
【００３１】
これ以降図１０を参照すると、各ＦＤＵ４２はポート状態データベース４６を保持する。このポート状態データベース４６はそのローカルポート及び全てのリモートポートについて物理リンク状態及び接続状態を保持する。ポート状態データベース４６はローカルポートデータテーブル４８及びリモートポートデータテーブル５０という２つのテーブルを含む。ローカルポートデータテーブル４８はローカルノードに属するポート状態を保持し、リモートポートデータテーブル５０はクラスタ内のリモートノードに属するポート状態を保持する。ＭＬＴグループの場合、ＦＤＵはローカルノード上のＭＬＴポートメンバーをローカルテーブルに保持し、その他の全てのリモートノード上のポートメンバーをリモートテーブルに保持する。
【００３２】
ＦＤＵがパケットを受信するとき、ＵＰであるＭＬＴ（又はＳＭＬＴ）内のポートを見つけて、ネットワーク上のその宛先に向けてパケットを転送する必要がある。ポートはＵＰ状態又はＤＯＷＮ状態のいずれかである。前述のように、ＭＬＴ上の全てのポートがローカルである場合、ＦＤＵは、ＤＯＷＮであるポートを介してパケットを転送しようと試みることがないように、どのローカルポートがＵＰ状態にあるかを判定する必要がある。同様に、ＭＬＴに関連付けられているポートが全てローカルではない（例えば、ＳＭＬＴ）場合、ＦＤＵはＳＭＬＴに関連付けられており、ＵＰ状態を有する別個の物理ネットワーク要素でポートを選択する必要がある。
【００３３】
実施形態によれば、各ＦＤＵはクラスタ内の各ポートの状態を保持するために使用するポート状態データベース４６を保持する。データベースはそのローカルポート及び全てのリモートポートについて物理リンク状態及び接続状態を保持する。データベースは２つのテーブル、即ちローカルテーブル４８及びリモートテーブル５０を含む。ローカルテーブルはローカルノード上の全てのＦＤＵに属するポート状態を保持し、リモートテーブルはクラスタ内の全てのリモートノード上の全てのポートのポート状態を保持する。ＭＬＴグループの場合、ＦＤＵはローカルノード上にあるＭＬＴポートメンバーの状態をローカルテーブル内に保持し、その他の全てのリモートノード上にあるＭＬＴポートメンバーの状態をリモートテーブルに保持する。ローカルテーブルはまた、全てのＩＳＴポートの状態を保持する。パケットが受信されるとき、ＦＤＵはポート状態データベースを使用してＵＰであるパケットのポートを決定し、ネットワーク上で出力されるようにそのポートにパケットを転送する。
【００３４】
ポート状態データベース４６は転送の決定を行うためにＦＤＵ４２によって使用されるので、各ポートの状態に関する現行情報を含むように、ポート状態テーブルを常時最新の状態にしておくことが重要である。各回線カードは１つ以上のＦＤＵを有するので、（各回線カード内の）各ＦＤＵはローカルネットワーク要素内の他の全ての回線カードのＦＤＵ、及びクラスタ内のその他のネットワーク要素の他の全てのＦＤＵと同期する必要がある。
【００３５】
１つの実施形態において、各回線カードは、ハートビートタイマーを保持する。ハートビートタイマーのうちの特定の１つが満了するごとに、ハートビートエンジン５４はハートビートパケットを生成して、ハートビートパケットをその回線カード上のローカルＦＤＵ４２に送信する。ハートビートパケットは回線カード上の全てのポートのローカル物理リンクステータスを搬送して、その回線カード上のポートの状態をローカルＦＤＵに知らせる。パケットはグローバルポートＩＤ（ＧＰＩＤ）及びネットワーク要素ＩＤを指示する。ＦＤＵはこの状態を使用してそのローカルポート状態データベースを更新する。ＦＤＵはまた、ローカルノード内の他のＦＤＵの全て、及びクラスタ内のその他のノード上の他の全てのＦＤＵにパケットを転送する。各ＦＤＵはパケットによって搬送されたポート状態を使用してそのポート状態データベースを更新する。
【００３６】
各自のポート状態情報の収集／レポートに関連付けられているタイマーを保持することに加えて、各回線カード／ＦＤＵはまた、ローカルノード内の他の全てのＦＤＵ、及びクラスタ内のその他のノード上の他の全てのＦＤＵに関連付けられているタイマーのセットを保持する。各ＦＤＵは他の全てのローカルＦＤＵ及びリモートＦＤＵから定期ハートビートパケットを受信することを期待する。従って、ローカル受信タイマーはＦＤＵごとに（ローカルネットワーク要素の各ＦＤＵ、及びクラスタ内の各リモートネットワーク要素上の各ＦＤＵについて）保持される。ＦＤＵの障害（ローカル又はリモート）は、対応する受信タイマーが満了した場合に検出される。ハートビートパケットが受信タイマーの満了前に受信されない場合、ＦＤＵに関連付けられている各ポートはＤＯＷＮにセットされて、復元されるまでそのＦＤＵに関連付けられているポートにパケットが送信されないようにする。
【００３７】
ハートビートパケットにより、ＦＤＵは状態情報を相互に搬送することができるようになり、各ＦＤＵはデータプレーンの全てのポートの状態を知ることができるようになる。以下で説明されるように、ハートビートパケットにより、ＵＰであってしかもＤｏｗｎ状態のポートから離れたポートにデータが宛先変更され得るように、データプレーンは自動的にポート障害に適応することができる。この全ては、制御プレーンの介入なしに行われるので、制御プレーンは特定のポート／回線カードの障害を通知されることはない。制御プレーンがデータプレーンの障害を認識できるようにするため、管理／制御プロセッサ４４は定期的に、そのローカルＦＤＵ４２にハートビートパケットを注入し、そのローカルＦＤＵ４２からハートビートパケットを抽出する。注入された各ハートビートパケットはターゲットＦＤＵ及び関連するポートを通じて完全にループしてから、抽出されてプロセッサに戻る。管理ハートビートパケットは、入口及び出口の両方のデータパスの全ての機能ブロックを移動する。制御プロセッサはこの種の管理ハートビートパケットを注入するごとに、その対応する受信タイマーを開始させる。制御プロセッサは受信タイマーが満了した場合に回線カードの障害を検出する。プロセッサはこの情報を使用して制御プレーン３０に搬送されるシステムアラームをセットする。従って、制御プレーンはデータプレーンの障害を認識することができる。しかし、データプレーンはポートの障害に対応し、それに応じてトラフィックを宛先変更する自己修復機構を有するので、制御プレーンはトラフィックの宛先変更に関与する必要はなく、そのため制御プレーンへの障害の通知はネットワーク要素経由のトラフィックの復元にとって重要ではない。
【００３８】
ハートビートパケットはまた、各ＦＤＵによってそのポートの状態を決定するために使用される。１つの実施形態において、各ＦＤＵは、論理／仮想接続で構成される付加ポートごとに１対のタイマーを保持する。タイマーのうちの１つは、接続を介して送信されるハートビートパケットを生成するために使用される。その他のタイマー（受信タイマー）は接続障害を検出するために使用される。このタイマーは接続のもう一方のエンドポイントからのハートビートパケットが定時に受信されない場合に満了する。ＦＤＵはそのポート状態テーブルをハートビートパケットの到着及び受信タイマーの満了で更新する。
【００３９】
各回線カード上の各ＦＤＵは各自のポート状態テーブル４６を保持する。このテーブルは、そのローカルポート及びクラスタ内の全てのＦＤＵの全てのリモートポートについて物理リンク状態及び接続状態を保持する。ＦＤＵは受信したハートビートパケット及びタイマー満了メッセージ（接続タイムアウト又はリモートＦＤＵ障害による）を使用してテーブルを更新する。テーブルは、ローカルノードに属するポート状態、及びリモートノードに属するポート状態という２つのセグメントに区分される。ポート状態テーブルはまた、ＭＬＴ及びＳＭＬＴグループ情報を保持する。ポート状態テーブルは、以下でさらに詳細に説明される高速再ルーティングを実行するために、転送論理によって使用される。
【００４０】
図１１は、４つのノードのクラスタ内のポート状態パケットの配布を示し、濃い矢印はクラスタ内の全てのＦＤＵへのポート状態パケットの流れを表す。この図に示されるように、特定のＦＤＵに関連付けられている各ポートの状態を含むパケット１が生成される。このパケットは、左上のネットワーク要素の左上にある回線カードで参照番号１で示される。このパケットは、ＦＤＵがそのポートの現行ステータスを反映するようにそのポート状態データベースを更新することができるように、ＦＤＵに渡される。次いで、このパケットはローカルノード内のその他のＦＤＵの各々に渡される（矢印２）。１つの実施形態において、これは、パケットがスイッチファブリックによってローカルノード内の他の全てのＦＤＵにブロードキャストされるようにすることにより、実施されてもよい。パケットはまた、ポートの状態がクラスタの各ノードに関連付けられている各ＦＤＵに配信され得るように（矢印４）、クラスタ内のその他のノードに転送される（矢印３）。ＦＤＵはポート状態情報を含むパケットを受信すると直ちに、情報を使用して各自のポート状態データベースを更新する。それにより、クラスタの全てのＦＤＵのポート状態データベースは同期化することができる。
【００４１】
クラスタ内にはいくつかのネットワーク要素があり、ネットワーク要素内には複数のＦＤＵがあり、各ＦＤＵによってサポートされる複数のポートがあってもよい。各ノードが状態パケットを供給したＦＤＵを追跡し、特定のポート状態パケットを特定のＦＤＵと相関させることができるようにするため、番号方式が実施されてもよい。好ましくは、番号方式はクラスタ内の各ＦＤＵが一意に識別され得るように、クラスタ全体にわたり一意であるように実施される。１つの実施形態において、ポート状態パケットはその各々のポートに関する情報を搬送する。パケットはソースノードＩＤ及びグローバルポートＩＤ（ＧＰＩＤ）を指定する。グローバルポートＩＤはポートがポートデータベース内で一意に識別されるようにするグローバルに一意の識別子（ノード内でグローバルに一意）である。
【００４２】
以前のメッセージは、ポート状態がデータパスのポート間で同期化されるようにするためにＦＤＵがどのようにメッセージを交換したかを記述した。動作中、このポート状態情報は、ＦＤＵが選択されたポートがＵＰであることを確信して特定のデータパケットの使用可能なポートを選択できるようにする。ポートがＤｏｗｎ状態になると、クラスタ内のＦＤＵはこれらのポートを選択することをやめ、その代わりにダウンしたポートに関連付けられているＭＬＴ／ＳＭＬＴ内の代替ポートを、パケットの処理に使用されるように選択する。このようにして、データパスは、ポートの障害、回線カードの障害などに自動的に対応して、制御プレーンが関与することなく、パケットを使用可能な代替ポートに再ルーティングすることができる。従って、パケットの再ルーティングは、ネットワーク要素内、及びネットワーク要素のクラスタ間で、１０ミリ秒未満で迅速に行うことができる。
【００４３】
図１２は、本明細書において開示される例示の構成を説明する際の使用に適した、ポート状態テーブルアプリケーション１４０ー１及びポート状態テーブルプロセス１４０−２を実行、稼働、操作、又は遂行する転送データユニット（ＦＤＵ）１１０の例示のアーキテクチャを示すブロック図である。この例に示されるように、ＦＤＵ１１０は、メモリシステム１１２、プロセッサ１１３、入力／出力インターフェイス１１４、及び通信インターフェイス１１５に結合するデータバス又はその他の回路のような相互接続機構１１１を含む。通信インターフェイス１１５は、ＦＤＵ１１０がネットワーク（図示せず）上のその他のデバイス（即ち、他のコンピュータ）と通信できるようにする。
【００４４】
メモリシステム１１２は任意の種類のコンピュータ可読媒体であり、この例では、本明細書において説明されるようにポート状態テーブルアプリケーション１４０−１でエンコードされる。ポート状態テーブルアプリケーション１４０−１は、本明細書において説明される様々な実施形態により処理機能をサポートする、データ及び／又は論理命令のようなソフトウェアコード（例えば、メモリ内、又は取り外し可能ディスクのような別のコンピュータ可読媒体上に格納されたコード）として具現されてもよい。ＦＤＵ１１０の操作中、プロセッサ１１３は、ポート状態テーブルアプリケーション１４０−１の論理命令を開始、稼働、実行、解釈、又は遂行するために、相互接続１１１を介してメモリシステム１１２にアクセスする。この方法でのポート状態テーブルアプリケーション１４０−１の実行はポート状態テーブルプロセス１４０−２における処理機能をもたらす。言い換えれば、ポート状態テーブルプロセス１４０−２は、実行時にＦＤＵ１１０のプロセッサ１１３中又はプロセッサ１１３上で遂行又は実行しているポート状態テーブルアプリケーション１４０ー１の１つ以上の部分若しくは実行時インスタンス（又はポート状態テーブルアプリケーション１４０−１全体）を表す。
【００４５】
本明細書において開示される例示の構成がポート状態テーブルアプリケーション１４０−１自体を（即ち、実行されていないか、又は遂行していない論理命令及び／又はデータの形態で）含むことに留意されたい。ポート状態テーブルアプリケーション１４０−１は、コンピュータ可読媒体（フロッピーディスクなど）、ハードディスク、電子、磁気、光学、又はその他のコンピュータ可読媒体上に格納されてもよい。ポート状態テーブルアプリケーション１４０−１はまた、ファームウェア、読み取り専用メモリ（ＲＯＭ）などのメモリシステム１１２に格納されてもよく、又はこの例におけるように、例えばランダムアクセスメモリ（ＲＡＭ）に実行可能コードとして格納されてもよい。これらの実施形態に加えて、本明細書におけるその他の実施形態が、ポート状態テーブルプロセス１４０−２のように、プロセッサ１１３でのポート状態テーブルアプリケーション１４０−１の実行を含むことも留意されたい。ＦＤＵ１１０が、この例には示されていないオペレーティングシステムのようなその他のプロセス及び／又はソフトウェア及びハードウェアコンポーネントを含むことができることを、当業者であれば理解するであろう。
【００４６】
操作中、ＦＤＵ１１０のプロセッサ１１３は、ポート状態テーブルアプリケーション１４０−１の論理命令を開始、稼働、実行、解釈、又は遂行するために、相互接続１１１を介してメモリシステム１１２にアクセスする。ポート状態テーブルアプリケーション１４０−１の実行はポート状態テーブルプロセス１４０−２における処理機能をもたらす。言い換えれば、ポート状態テーブルプロセス１４０−２は、コンピュータシステム１００のプロセッサ１１３の中又は上で実行しているポート状態テーブルアプリケーション１４０ー１の１つ以上の部分（又はアプリケーション全体）を表す。
【００４７】
ポート状態テーブルプロセス１４０−２に加えて、本明細書における実施形態はポート状態テーブルアプリケーション１４０−１自体（即ち、実行されていないか、又は遂行していない論理命令及び／又はデータ）を含むことに留意されたい。ポート状態テーブルアプリケーション１４０−１はフロッピーディスク、ハードディスク、又は光学媒体などのコンピュータ可読媒体上に格納されてもよい。ポート状態テーブルアプリケーション１４０−１はまた、ファームウェア、読み取り専用メモリ（ＲＯＭ）などのメモリタイプのシステムに格納されてもよいか、又はこの例におけるように（例えば、ランダムアクセスメモリ即ちＲＡＭ内）メモリシステム１１２内の実行可能コードとして格納されてもよい。
【００４８】
これらの実施形態に加えて、本明細書におけるその他の実施形態が、ポート状態テーブルプロセス１４０−２のように、プロセッサ１１３でのポート状態テーブルアプリケーション１４０−１の実行を含むことも留意されたい。ＦＤＵ１１０が、ＦＤＵ１１０に関連付けられているハードウェアリソースの割り振り及び使用を制御するオペレーティングシステムのような、その他のプロセス及び／又はソフトウェア及びハードウェアコンポーネントを含むことができることを、当業者であれば理解するであろう。
【００４９】
本発明の開示される方法の流れ図が図１３及び図１４に示される。長方形要素は本明細書において「処理ブロック」として示され、コンピュータソフトウェア命令又は命令のグループを表す。あるいは、処理ブロックは、デジタル信号プロセッサ回路又は特殊用途向け集積回路（ＡＳＩＣ）のような機能的に等価の回路によって実行されるステップを表す。流れ図は、いかなる特定のプログラミング言語の構文も示すことはない。むしろ、流れ図は、当業者が本発明による必要な処理を実行するための回路の作成又はコンピュータソフトウェアの生成に必要とする機能情報を説明している。ループ及び変数の初期化、及び一時変数の使用など、多数のルーチンプログラム要素が図示されていないことに留意されたい。本明細書において特に指示のない限り、説明されているステップの特定のシーケンスは例示的なものにすぎず、本発明の精神を逸脱することなく変更されてもよいことが、当業者には理解されるであろう。従って、特に断りのない限り、以下で説明されるステップは順不同である、つまり、可能な場合にステップは任意の便宜的又は望ましい順序で実行されてもよいということである。
【００５０】
これ以降図１３を参照すると、ネットワーク要素の転送プレーンにおいてポート状態データベースを保持する方法２００の特定の実施形態が示される。方法２００は、第１の転送データユニット（ＦＤＵ）に関連付けられているポートの第１のセットの状態を定期的に決定するステップを開示する処理ブロック２０２で開始し、第１のＦＤＵはネットワーク要素の転送プレーン内で転送機能を実施する複数のＦＤＵのうちの１つである。
【００５１】
処理ブロック２０４は、決定済みの状態を使用して第１のＦＤＵに関連付けられているポート状態データベースの第１のポート状態テーブルを更新するステップを含む。処理ブロック２０６に示されるように、第１のポート状態データベースは、ローカルポートデータテーブル及びリモートポートデータテーブルを含み、ローカルポートの物理リンク状態及び接続状態はローカルポートデータテーブルで保持され、リモートポートの物理リンク状態及び接続状態はリモートポートデータテーブルで保持される。処理ブロック２０８においてさらに示されるように、プロセスは、ローカルポートデータテーブル内で第１のＦＤＵ上にあるマルチリンクトランク（ＭＬＴ）ポートメンバー状態を保持するステップ、及びリモートポートデータテーブル内でその他のＦＤＵ上にあるマルチリンクトランク（ＭＬＴ）ポートメンバー状態を保持するステップを含む。
【００５２】
処理はネットワーク要素上のその他の各ＦＤＵに決定済みの状態を伝送して、その他のＦＤＵの各々がその他のＦＤＵの各々にローカルなポート状態データベースにポートの第１のセットの状態を格納できるようにするステップを説明する処理ブロック２１０を続行する。処理ブロック２１２は、第１のポート状態データベースでローカルポート及びリモートポートの物理リンク状態及び接続状態を保持するステップを開示する。処理ブロック２１４は、転送プレーンによりポート状態データベースを使用して、パケットの高速再ルーティングを実行するステップを示す。
【００５３】
これ以降図１４を参照すると、ポート状態テーブルを更新するための方法２５０の特定の実施形態が示される。方法２５０は、第１のＦＤＵを含む回線カード上のポートのローカル物理リンクステータスを含むハートビートパケットを受信するステップを開示する処理ブロック２５２で開始し、第１のＦＤＵはハートビートパケットの回線カード上のポートのローカル物理リンクステータスを使用してポート状態データベースを更新する。
【００５４】
処理ブロック２５４は、ハートビートパケットが他のＦＤＵから受信されるかどうかを判定するために他のＦＤＵの各々についてタイマーを保持するステップを示し、タイマーに関連付けられているＦＤＵからハートビートパケットを受信する前にそのタイマーが満了した場合、そのＦＤＵに関連付けられている各ポートはＤＯＷＮ状態であると判定されて、そのＦＤＵが復元されるまでＤＯＷＮ状態を有するポートにパケットが送信されないようにする。
【００５５】
処理ブロック２５６は、第１のＦＤＵの付加ポートごとに１対のローカルタイマーを保持するステップを示し、付加ポートは論理／仮想接続で構成され、ローカルタイマーの１つは付加ポートを介して送信されるハートビートパケットを生成するために使用され、ローカルタイマーのもう１つは送信されたハートビートパケットが受信されない場合に接続障害が存在するとき、付加ポートの接続障害を検出するために使用される。処理ブロック２５８は、第１のＦＤＵがそのポート状態データベースを、ハートビートパケットの到着及びタイマーの満了で更新するステップを開示する。
【００５６】
プロセッサと統合するデバイス又はコンピュータシステムは、例えば、パーソナルコンピュータ、ワークステーション（例えば、Ｓｕｎ、ＨＰ）、携帯情報端末（ＰＤＡ）、携帯電話、ラップトップ、ハンドヘルドコンピュータのようなハンドヘルドデバイス、又は本明細書において示されるように動作することができるプロセッサと統合されることが可能なその他のデバイスを含むことができる。従って、本明細書において示されるデバイスは包括的なものではなく、例示のために示され、限定なものではない。
【００５７】
「マイクロプロセッサ」及び「プロセッサ」、又は「前記マイクロプロセッサ」及び「前記プロセッサ」への言及は、スタンドアロン及び／又は分散環境において通信することができ、従って他のプロセッサと有線又は無線通信を介して通信するように構成することができる１つ以上のマイクロプロセッサを含むものと理解されてもよく、そのような１つ以上のプロセッサは同様又は異なるデバイスであってもよい１つ以上のプロセッサ制御のデバイス上で動作するように構成することができる。従って、そのような「マイクロプロセッサ」又は「プロセッサ」という用語の使用はまた、中央演算処理装置、演算論理装置、特殊用途向け集積回路（ＩＣ）、及び／又はタスクエンジンを含むものと理解されてもよく、そのような例は限定的ではなく例示のために示される。
【００５８】
さらに、特に指定のない限り、メモリへの言及は、プロセッサ制御のデバイスの内部、プロセッサ制御のデバイスの外部であってもよく、及び／又は様々な通信プロトコルを使用して有線又は無線ネットワークを介してアクセスすることができ、特に指定のない限り、外部及び内部メモリデバイスの組み合わせを含むように構成されてもよい１つ以上のプロセッサ可読及びアクセス可能なメモリ要素及び／又はコンポーネントを含むことができ、そのようなメモリは用途に応じて連続及び／又は区分であってもよい。従って、データベースへの言及は、１つ以上のメモリ関連付けを含むものと理解されてもよく、そのような言及は、市販されているデータベース製品（例えば、ＳＱＬ、Ｉｎｆｏｒｍｉｘ、Ｏｒａｃｌｅ）そしてまた専有データベースを含むことができ、またリンク、キュー、グラフ、ツリーなどのメモリを関連付けるためのその他の構造を含むこともできるが、そのような構造は限定的ではなく例示のために示される。
【００５９】
ネットワークへの言及は、特に指示のない限り、１つ以上のイントラネット及び／又はインターネット、ならびに仮想ネットワークを含むことができる。本明細書において、上記に基づくマイクロプロセッサ命令又はマイクロプロセッサ実行可能命令への言及は、プログラマブルハードウェアを含むものと理解されてもよい。
【００６０】
特に明記のない限り、「概ね（ｓｕｂｓｔａｎｔｉａｌｌｙ）」という語の使用は、正確な関係、状況、構成、配向、及び／又は他の特徴、及び当業者によって理解されるその逸脱を、そのような逸脱が開示される方法及びシステムに実質的に影響を与えない限りにおいて、含むものと解釈されてもよい。
【００６１】
本発明の開示全体を通じて、名詞を修飾する冠詞「ａ」又は「ａｎ」の使用は、便宜上使用されるものと理解されてもよく、特に指定のない限り、修飾される名詞の１つ又は２つ以上を含むものと理解されてもよい。
【００６２】
何らかの別事柄に伝達する、関連付けられる、及び／又は基づくように説明される、及び／又は図面を通じて描かれる要素、コンポーネント、モジュール、及び／又はその部分は、本明細書において特に規定のない限り、直接及び／又は間接的な方法で、そのように伝達し、関連付けられ、及び／又は基づくものと理解されてもよい。
【００６３】
方法及びシステムは、その特定の実施形態に関して説明されたが、それらに限定されることはない。上記の教示を踏まえて、数多くの変更及び変形が明らかとなることは、明白である。本明細書において説明され示されている部分の詳細、素材、及び構成における数多くのさらなる変更は、当業者によって行われてもよい。
【００６４】
本発明の好ましい実施形態を説明してきたが、これらの概念を組み入れるその他の実施形態が使用されてもよいことは当業者には明らかとなろう。加えて、本発明の一部として含まれるソフトウェアは、コンピュータ使用可能媒体を含むコンピュータプログラム製品に具現されてもよい。例えば、そのようなコンピュータ使用可能媒体は、コンピュータ可読プログラムコードセグメントを格納しているハードドライブデバイス、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、又はコンピュータディスケットのような、可読メモリデバイスを含むことができる。コンピュータ可読媒体はまた、デジタル又はアナログ信号としてプログラムコードセグメントを搬送させる光学、有線、又は無線のいずれかの通信リンクを含むこともできる。従って、本発明は説明されている実施形態に限定されるべきではないが、添付の特許請求の範囲の精神及び範囲によってのみ限定されるべきであることが提示される。
【図１】
2010283811.tif 000003
【図２】
2010283811.tif 000004
【図３】
2010283811.tif 000005
【図４】
2010283811.tif 000006
【図５】
2010283811.tif 000007
【図６】
2010283811.tif 000008
【図７】
2010283811.tif 000009
【図８】
2010283811.tif 000010
【図９】
2010283811.tif 000011
【図１０】
2010283811.tif 000012
【図１１】
2010283811.tif 000013
【図１２】
2010283811.tif 000014
【図１３】
2010283811.tif 000015
【図１４】
2010283811.tif 000016
【外国語明細書】
2010283811.tif 000017
2010283811.tif 000018
2010283811.tif 000019
2010283811.tif 000020
2010283811.tif 000021
2010283811.tif 000022
2010283811.tif 000023
2010283811.tif 000024
2010283811.tif 000025
2010283811.tif 000026
2010283811.tif 000027
2010283811.tif 000028
2010283811.tif 000029
2010283811.tif 000030
2010283811.tif 000031
2010283811.tif 000032
2010283811.tif 000033
2010283811.tif 000034
2010283811.tif 000035
2010283811.tif 000036
2010283811.tif 000037
2010283811.tif 000038
2010283811.tif 000039
2010283811.tif 000040
2010283811.tif 000041
2010283811.tif 000042
2010283811.tif 000043
2010283811.tif 000044
2010283811.tif 000045
2010283811.tif 000046
2010283811.tif 000047
2010283811.tif 000048
2010283811.tif 000049
2010283811.tif 000050
2010283811.tif 000051