(57)【要約】【課題】パケット転送機能から制御プレーン機能の実装を分離するＳｏｆｔＲｏｕｔｅｒアーキテクチャを提供すること。【解決手段】このアーキテクチャでは、すべての制御プレーン機能は、転送要素（ＦＥ）５０６から数ホップ分だけ離れていると思われる制御要素（ＣＥ）５０２と呼ばれる汎用サーバ上に実装される。ネットワーク要素（ＮＥ）またはルータは、ＣＥ  ５０２とＦＥ  ５０６との間の動的バインディングを使用して形成される。一方のＣＥ  ５０２から他方のＣＥ  ５０２に制御を移すためにＦＥ  ５０６により開始されたフェイルオーバーを処理するプロトコル・フェイルオーバー・メカニズムが用意される。【選択図】図１
2006135973.tif 000002
【特許請求の範囲】
【請求項１】
プロトコル・フェイルオーバーを実行する方法であって、
転送要素（ＦＥ）において、特定のプロトコル用のプロトコル・オーバーレイ・プロセスおよびルーティング・テーブル・マネージャ（ＲＴＭ）プロセスを用意することと、
前記ＦＥにおいて、アクティブ・プロトコル制御要素（ＣＥ）からルーティング・プロトコル・メッセージを受信し、それに対する応答として、前記ルーティング・プロトコル・メッセージをすべてのプロトコルＣＥに伝播し、前記受信ルーティング・プロトコル・メッセージにハートビート・メッセージが載せられることと、
送信されたメッセージに対する応答として、前記アクティブ・プロトコルＣＥから受信確認を前記ＦＥにより受信することと、
前記アクティブ・プロトコルＣＥの障害が発生した後、バックアップ・プロトコルＣＥへのフェイルオーバーを前記ＦＥにより開始することとを含む方法。
【請求項２】
前記ルーティング・プロトコル・メッセージは、前記プロトコル・オーバーレイ・プロセスに関連付けられたシーケンス番号を含み、前記受信確認は、前記シーケンス番号を含む請求項１に記載の方法。
【請求項３】
プロトコル・フェイルオーバーを実行する方法であって、
特定のプロトコル用の複数の制御要素（ＣＥ）内のそれぞれの（ＣＥ）により、プロトコル・オーバーレイ・プロセスを実行し、前記ＣＥはアクティブ・プロトコルＣＥおよびバックアップ・プロトコルＣＥを含むことと、
前記アクティブ・プロトコルＣＥにより制御される転送要素（ＦＥ）の代わりに、前記アクティブ・プロトコルＣＥにより、プロトコル・プロセスを実行することと、
前記アクティブ・プロトコルＣＥにより、チェックポイントを定期的に送信し、前記チェックポイントは前記ＦＥにより前記バックアップ・プロトコルＣＥに伝播され、前記チェックポイントは障害から回復した後プロトコル状態を更新することと、
前記バックアップ・プロトコルＣＥにより、前記ＦＥによって開始されたプロトコル・フェイルオーバーに参加することとを含む方法。
【請求項４】
さらに、
発信ルーティング・プロトコル・メッセージが前記アクティブ・プロトコルＣＥから前記ＦＥへのメッセージである場合に、前記プロトコル・オーバーレイ・プロセスにより、前記発信ルーティング・プロトコル・メッセージをヘッダにカプセル化することと、
前記転送要素（ＦＥ）が前記アクティブ・プロトコルＣＥからのみルーティング・プロトコル・メッセージを受信するように前記バックアップ・プロトコルＣＥから前記ＦＥへの発信ルーティング・プロトコル・メッセージを、前記プロトコル・オーバーレイ・プロセスにより、削除することと、
前記プロトコル・オーバーレイ・プロセスにより、ハートビートをそれぞれのメッセージに含めることとを含む請求項３に記載の方法。
【請求項５】
さらに、
それぞれのＣＥにより、それぞれが着信プロトコル・メッセージのコピーを受信することと、
それぞれのＣＥにより、それぞれの着信プロトコル・メッセージの受信確認をすることと、
それぞれのＣＥにより、それぞれのルーティング・プロトコル・メッセージを受信し、格納することとを含む請求項３に記載の方法。
【請求項６】
さらに、
障害からの回復後に、前記アクティブ・プロトコルＣＥにより同期処理を開始することを含む請求項３に記載の方法。
【請求項７】
さらに、
前記プロトコル・オーバーレイ・プロセスにより不揮発性メモリ内に格納されているメッセージを、前記バックアップ・プロトコルＣＥにより、回復させることを含む請求項３に記載の方法。
【請求項８】
さらに、
前記バックアップ・プロトコルＣＥにより、前記アクティブ・プロトコルＣＥからの最後のチェックポイント以降のメッセージの再送を要求することを含む請求項３に記載の方法。
【請求項９】
プロトコル・フェイルオーバーを実行する方法であって、
転送要素（ＦＥ）により、着信および発信プロトコル・メッセージをすべての制御要素（ＣＥ）に送信し、前記ＦＥはデータ・プレーン内の複数のＦＥのうちの１つであり、前記ＣＥは前記データ・プレーンから物理的および論理的に隔てられている制御プレーン内にあり、前記ＣＥおよびＦＥは標準プロトコルを介して通信し、それぞれのＦＥは前記複数のＣＥのうちの１つに動的にバインドされることと、
前記アクティブ・プロトコルＣＥおよび前記バックアップ・プロトコルＣＥを、最新のチェックポイントよりも新しいメッセージに関して同期化することと、
前記ＦＥにより、前記アクティブ・プロトコルＣＥから前記複数のバックアップ・プロトコルＣＥのうちの１つへのプロトコル・フェイルオーバーを開始することと、
前記複数のバックアップ・プロトコルＣＥのうちの１つにより、それがアクティブ・プロトコルＣＥになったとことを確認することとを含む方法。
【請求項１０】
ネットワーク・アーキテクチャであって、
パケット転送のため複数の転送要素（ＦＥ）を含むデータ・プレーンと、
プロトコルを介して、ルーティング情報を構成し、制御し、前記複数のＦＥに供給するための少なくとも１つの制御要素（ＣＥ）と、
複数のＦＥおよび複数のＣＥをバインドするための動的バインディング・プロトコルと、
前記データ・プレーンから物理的および論理的に隔てられている、前記ＣＥを含む制御プレーンと、
それぞれのルーティング・プロトコルについて一方のＣＥから他方のＣＥに制御を移すために前記複数のＦＥによって開始されたフェイルオーバーを処理するためのプロトコル・フェイルオーバー・メカニズムとを備えるネットワーク・アーキテクチャ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、ネットワーキングの分野に関するものであり、特に、ＳｏｆｔＲｏｕｔｅｒアーキテクチャの実施例におけるプロトコル・フェイルオーバーに関するものである。
【背景技術】
【０００２】
本発明は、２００４年１１月１日に出願された「ＳｏｆｔＲｏｕｔｅｒ：Ｒｏｕｔｅｒ  Ｄｉｓａｇｇｒｅｇａｔｉｏｎ」という表題の仮出願第６０／６２３，８８５号（整理番号Ｌａｋｓｈｍａｎ  ３５−２−２３−６２−３１）の利益を主張するものである。さらに、本出願は、本出願と同じ日に出願された同時係属出願「ＳｏｆｔＲｏｕｔｅｒ」（整理番号Ｌａｋｓｈｍａｎ  ３５−２−２３−６２−３１（ＬＣＮＴ／１２６７７０））、「ＳｏｆｔＲｏｕｔｅｒ  Ｐｒｏｔｏｃｏｌ  Ｄｉｓａｇｇｒｅｇａｔｉｏｎ」（整理番号Ａｎｓａｒｉ  ２−２−４１−３−２４−３４（ＬＣＮＴ／１２７３０５））、「ＳｏｆｔＲｏｕｔｅｒ  Ｓｅｐａｒａｔｅ  Ｃｏｎｔｒｏｌ  Ｎｅｔｗｏｒｋ」（整理番号Ｌａｋｓｈｍａｎ  ４３−６４−３６（ＬＣＮＴ／１２７３０７））、「ＳｏｆｔＲｏｕｔｅｒ  Ｆｅａｔｕｒｅ  Ｓｅｒｖｅｒ」（整理番号Ｌａｋｓｈｍａｎ  ４４−６５−３７（ＬＣＮＴ／１２７３０８））、「ＳｏｆｔＲｏｕｔｅｒ  Ｄｙｎａｍｉｃ  Ｂｉｎｄｉｎｇ  Ｐｒｏｔｏｃｏｌ」（整理番号Ａｎｓａｒｉ  ４−３−４５−５−２６−３８（ＬＣＮＴ／１２７３０９））に関係する。仮出願および関連出願は、すべて参照により本明細書に組み込まれる。
【０００３】
今日では、インターネット制御プレーンに多数の機能が付加されて行くとともに、従来のルータ・アーキテクチャは次第に複雑になりつつある。ルーティング・ポリシー実施およびトラフィック・エンジニアリングなどの多くの運用タスクは、自律的で複雑なルータからなるネットワークでは実行が困難であり、また厄介でもあるネットワーク規模の制御を必要とする。さらに、現在のルータでは、ルート・コントローラは転送エンジンに密結合されており、この静的バインディングのため障害が共有されることになる。
【０００４】
単純なコア・ネットワークを目指すエンドツーエンド・アーキテクチャ設計原理にもかかわらず、新しい機能が標準化されるとともに、ルータには制御プレーンの複雑さがますます加わる。これらの機能は、ルーティング（例えば、ＢＧＰベースのＭＰＬＳ−ＶＰＮ）、トラフィック・エンジニアリング（ＴＥ）（例えば、開放型最短経路優先（ＯＳＰＦ）−ＴＥ）、セキュリティなどを含む。それとは対照的に、大規模なハードウェア集積化（例えば、ＡＳＩＣ）が急速に進み、市販チップが入手しやすくなるにつれ、徐々に、転送パスの実装が容易になってきた。
【０００５】
従来のＩＰネットワークは、比較的自律的に動作するルータを使用して構築される。ネットワークのいたる所の多くの点に潜在的に管理しにくい複雑度が存在する。これは、多くの望ましくない帰結を導く。第１に、制御点が複数あると、運用の複雑さ（例えば、構成間違い設定）が著しく高まる。第２に、いくつかの特定の状況において、これらの自律的ルータの非協調アクションのため、せいぜい部分的に最適なパフォーマンス（例えば、回復時間が長い）にしかならず、最悪の場合にはネットワークが不安定になる可能性がある。最後に、新しい機能を導入するには、多数のルータへのアップグレードを必要とする場合があり、この作業は複雑であり、また間違いを犯しがちである。
【０００６】
従来のルータ・アーキテクチャでは、制御と転送を統合している。制御プレーン機能を実装する制御プロセッサは、転送機能を実装し、同じルータ・バックプレーンを共有することが多いライン・カードと同じ場所に配置される。制御プロセッサは、同じ場所に配置されているライン・カードにのみ制御機能を提供し、またその逆も同様であり、同じ場所に配置されている（複数の）コントローラに故障が生じた場合に、ライン・カードを管理できないようなシナリオに至る。
【特許文献１】仮出願第６０／６２３，８８５号
【特許文献２】同時係属出願「ＳｏｆｔＲｏｕｔｅｒ」（整理番号Ｌａｋｓｈｍａｎ  ３５−２−２３−６２−３１（ＬＣＮＴ／１２６７７０））
【特許文献３】「ＳｏｆｔＲｏｕｔｅｒ  Ｐｒｏｔｏｃｏｌ  Ｄｉｓａｇｇｒｅｇａｔｉｏｎ」（整理番号Ａｎｓａｒｉ  ２−２−４１−３−２４−３４（ＬＣＮＴ／１２７３０５））、
【特許文献４】同時係属出願「ＳｏｆｔＲｏｕｔｅｒ  Ｓｅｐａｒａｔｅ  Ｃｏｎｔｒｏｌ  Ｎｅｔｗｏｒｋ」（整理番号Ｌａｋｓｈｍａｎ  ４３−６４−３６（ＬＣＮＴ／１２７３０７））
【特許文献５】同時係属出願「ＳｏｆｔＲｏｕｔｅｒ  Ｆｅａｔｕｒｅ  Ｓｅｒｖｅｒ」（整理番号Ｌａｋｓｈｍａｎ  ４４−６５−３７（ＬＣＮＴ／１２７３０８））
【特許文献６】同時係属出願「ＳｏｆｔＲｏｕｔｅｒ  Ｄｙｎａｍｉｃ  Ｂｉｎｄｉｎｇ  Ｐｒｏｔｏｃｏｌ」（整理番号Ａｎｓａｒｉ  ４−３−４５−５−２６−３８（ＬＣＮＴ／１２７３０９））
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従来技術のさまざまな欠点は、多くの実施形態を含むＳｏｆｔＲｏｕｔｅｒアーキテクチャの実施例に対するプロトコル・フェイルオーバーの本発明により対処される。
【課題を解決するための手段】
【０００８】
一実施形態は、転送要素（ＦＥ）が特定のプロトコル用のプロトコル・オーバーレイ・プロセスおよびルーティング・テーブル・マネージャ（ＲＴＭ）プロセスを実行する、プロトコル・フェイルオーバーを実行する方法である。ＦＥは、アクティブ・プロトコル制御要素（ＣＥ）からルーティング・プロトコル・メッセージを受信し、それに対する応答として、それらをすべてのプロトコルＣＥに伝播する。ハートビート・メッセージが、受信されたルーティング・プロトコル・メッセージに載せられる。ＦＥは、送信されたメッセージに対する応答として、アクティブ・プロトコルＣＥから受信確認を受け取る。ＦＥは、アクティブ・プロトコルＣＥの障害が発生した後、バックアップ・プロトコルＣＥへのフェイルオーバーを開始する。
【０００９】
他の実施形態は、それぞれの制御要素（ＣＥ）が特定のプロトコル用のプロトコル・オーバーレイ・プロセスを実行する、プロトコル・フェイルオーバーを実行する方法である。ＣＥは、アクティブ・プロトコルＣＥおよびバックアップ・プロトコルＣＥを含む。アクティブ・プロトコルＣＥは、アクティブ・プロトコルＣＥにより制御される転送要素（ＦＥ）の代わりにプロトコル・プロセスを実行する。アクティブ・プロトコルＣＥは、チェックポイントを定期的に送信する。チェックポイントは、ＦＥによりバックアップ・プロトコルＣＥに伝播される。チェックポイントは、障害から回復した後、プロトコル状態を更新するためのものである。バックアップ・プロトコルＣＥは、ＦＥによって開始されたプロトコル・フェイルオーバーに参加する。
【００１０】
他の実施形態は、転送要素（ＦＥ）が着信および発信プロトコル・メッセージをすべての制御要素（ＣＥ）に送信する。プロトコル・フェイルオーバーを実行する方法であるＦＥは、データ・プレーン内の多数のＦＥのうちの１つである。ＣＥは、データ・プレーンから物理的に、また論理的にも隔てられている制御プレーン内にある。ＣＥおよびＦＥは、標準プロトコルを介して通信する。それぞれのＣＥは、複数のＣＥの１つに動的にバインドされる。アクティブ・プロトコルＣＥおよびバックアップ・プロトコルＣＥは、最新のチェックポイントよりも新しいメッセージに関して同期する。ＦＥは、アクティブ・プロトコルＣＥからバックアップ・プロトコルＣＥの１つへのプロトコル・フェイルオーバーを開始し、これはそれが現在アクティブ・プロトコルＣＥであることを確認する。他の態様は、この方法を実行するための命令を備えるコンピュータ・プログラム製品を格納する記憶媒体である。
【００１１】
他の実施形態は、データ・プレーン、制御プレーン、およびプロトコル・フェイルオーバー・メカニズムを含む、ネットワーク・アーキテクチャである。データ・プレーンは、パケット転送のため多数の転送要素（ＦＥ）を含む。制御プレーンは、データ・プレーンから物理的に、また論理的にも隔てられている。制御プレーンは、標準プロトコルを介して、ルーティング情報を構成し、制御し、それを複数のＦＥに供給するため少なくとも１つの制御要素（ＣＥ）を含む。複数のＦＥおよび複数のＣＥをバインドするために動的バインディング・プロトコルがある。プロトコル・フェイルオーバー・メカニズムは、それぞれのルーティング・プロトコルについて一方のＣＥから他方のＣＥに制御を移すために複数のＦＥによって開始されたフェイルオーバーを処理する。
本発明の教示は、付属の図面とともに以下の説明を考察することによりよく理解できる。
【発明を実施するための最良の形態】
【００１２】
理解しやすくするために、同一の参照番号を使用し、これらの図に共通の同一の要素をできる限り指定する。
【００１３】
本発明は、主に、ＳｏｆｔＲｏｕｔｅｒアーキテクチャの実施例の実施形態の一般的背景状況の範囲内において説明されるが、ただし、当業者および本明細書の教示による情報を得た者であれば、分離概念を使用して、ネットワーク・アーキテクチャの他のさまざまな実施形態を生み出すことができること、および本発明は、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、および他のネットワーク、多くの開放型システム間相互接続（ＯＳＩ）層、ゲートウェイ・プロトコル、シリアル回線プロトコル、プロトコル・スタック・ルーティングおよびブリッジング・プロトコル、多くの他のプロトコル、トラフィック管理、光学、エッジ／コア・ルーティング、無線、ケーブル、データ・センター、補助信号経路（ＡＳＰ）、故障管理、構成管理、アカウンティング管理、パフォーマンス管理、セキュリティ管理、その他のネットワーク管理、企業、政府、軍事アプリケーション、およびその他の多くの異なる種類のネットワーキング特性およびアプリケーションに適用可能であることを理解するであろう。
【００１４】
インターネット・プロトコル（ＩＰ）は、プロトコルおよびアプリケーションにエンドツーエンドのデータグラム配信サービスを提供し、パケットを配信するリンク層技術を使用することができる。図１は、さらに多くの機能をＩＰに追いやる新たに出現するアプリケーションの問題を例示しており、砂時計の中央部分を拡大している。これら新しいアプリケーションは、電子メール、ｗｗｗ電話、簡易メール転送プロトコル（ＳＭＴＰ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、ルーティング・テーブル・プロトコル（ＲＴＰ）、伝送制御プロトコル（ＴＣＰ）、ユーザ・データグラム・プロトコル（ＵＤＰ）、および、サービスの品質（ＱｏＳ）、マルチキャスト、モビリティ、仮想プライベート・ネットワーク（ＶＰＮ）、およびその他の機能を伴い、銅線、ファイバ、無線、およびその他の物理的トランスポート手段を介してＥｔｈｅｒｎｅｔ（登録商標）、ポイント・ツー・ポイント・プロトコル（ＰＰＰ）、キャリア検知多重アクセス（ＣＳＭＡ）、ＡＳＹＮＣ（テレタイプライター（ＴＴＹ）の部分集合）、同期光ネットワーク（ＳＯＮＥＴ）、およびその他のプロトコルを使用してトランスポートされるその他のプロトコルを含む。従来のルータ・アーキテクチャでは、新しいＩＰ機能をすべてルータに組み込もうとし、その結果、ネットワークの複数のルータ内で複雑な機能が重複することになる。これは、資本支出および運用費用も増大させる。一般に、複数のルータからなるネットワークを運用することの複雑さおよび費用を低減する必要がある。
【００１５】
多くの新しい機能、例えば、境界ゲートウェイ・プロトコル（ＢＧＰ）、マルチプロトコル・ラベル・スイッチング（ＭＰＬＳ）ベースのＶＰＮ、およびトラフィック・エンジニアリング（ＴＥ）がルータに追加される。従来のルータ・アーキテクチャでは、５００万から１０００万行のコードを持ち、ネットワーク全体に複雑さが拡散される。トラフィック・エンジニアリングなどのオペレータのネットワーク規模の目的を達成するために、大域的目標を多数の個別ルータ内の構成情報に翻訳する複雑な作業を必要とする。構成設定間違いまたは非協調構成のため、パフォーマンスの低下またはネットワーク不安定性が生じる可能性がある。
【００１６】
インターネットが非常に大きな成功を収めたことで、新しい機能およびサービスの開発および展開がひっきりなしに続き、次第にその技術的基盤では間に合わなくなってきた。これは、ＩＰネットワークにおける機能の現在の配分のアーキテクチャリングを変更すれば、ネットワークの安定性、ネットワーク運用の簡素化、および新しいネットワーク・プロトコルおよびサービスの柔軟な導入にとって著しく有益であろうとの考えに信憑性を与えた。
【００１７】
ルーティング・ポリシー実施およびトラフィック・エンジニアリングなどの多くの高度なネットワーク管理タスクであれば、ネットワーク規模のビューを利用できることで著しい恩恵を受けるであろう。例えば、ＢＧＰによってネットワークの安定性および運用のいくつかの共通の問題が引き起こされる場合、それらの問題は、ＢＧＰを個々のルータから自律的システム（ＡＳ）規模のスコープを持つ単一エンティティに移動することにより解決されるであろう。同様に、多くの管理機能は、ネットワーク規模のビューを必要とし、それなしでは、ネットワークは振動と安定性の悪さを露呈しうる。しかし、ネットワーク規模の制御は、自律的で複雑なルータからなる今日のネットワークでは実行が困難であり、また厄介でもある。
【００１８】
従来のルータ・アーキテクチャでは、基礎となるテーマは、現在のルータ制御および転送機能の深い相互の絡み合いである。これらの機能を縮小して、ごく少数の標準パケット転送機能のみをサポートし、すべての制御プロトコルおよび非転送関係状態および制御処理をネットワーク規模の制御の一次機能を持つ少数のスマート・ネットワーク・ベースの制御エンティティに移行することにより、ルータの脱構築を行いネットワーク・エンティティの大半をできる限り黙らせる必要がある。また、プロトコル・フェイルオーバーを正しい手順で継ぎ目なく処理する必要もある。
【００１９】
インターネットワーキングにオープンな標準ベースのプロトコルを使用してルータのハードウェアをルータのソフトウェアから分離することには、多くの利点がある。分離概念は、各コンポーネントのサプライヤを分断することで、ハードウェア・ベンダの参入を阻害している壁を低くし、新規ハードウェア市場参入者に供給するキャリア・クラス・ルーティング・ソフトウェアの開発に独立系ソフトウェア・ベンダ（ＩＳＶ）が投資する意欲を高める。この分離概念を利用することにより、それぞれのコンポーネントがそれ独自の革新曲線から逸れることなく辿れるようにできる。ハードウェア・メーカーは、最低のコストで最高の単位密度当たり速度を達成することに集中して、資本支出を低減することができ、またソフトウェア・メーカーは、新しいアプリケーションおよびマネジャビリティに集中して、経常経費を下げつつ収益を高めることができる。
【００２０】
ＳｏｆｔＲｏｕｔｅｒアーキテクチャの実施例の一実施形態では、制御プレーン機能の実装とパケット転送機能とを分けることによりルータの脱構築を行う。この脱構築を実現するネットワーク・アーキテクチャの他の実施形態も、本発明の範囲内にある。本発明は、この脱構築の概念およびネットワーク・アーキテクチャに対するその密接な関係を対象とする。ＳｏｆｔＲｏｕｔｅｒアーキテクチャの実施例では、すべての制御プレーン機能は、転送エンジンと同じ場所に配置される必要のない別の制御エンティティ上に実装される。協調構成変更は少数のスマート・ネットワーク要素のみで行えばよく、ＡＳ内のすべてのネットワーク要素で行う必要がないため、すべての非転送関係状態および制御処理を少数のネットワーク・ベースの制御エンティティに移行することにより、ネットワーク規模の目標を単純化することが可能になる。さらに、コントローラと転送エンジンとの関連は動的であり、制御を行うことができる制御エンティティによる転送エンジンの柔軟な制御が可能である。
【００２１】
ＳｏｆｔＲｏｕｔｅｒアーキテクチャの実施例は、ネットワーク内の転送エンティティと制御エンティティとの間の動的バインディングを確立し、維持するための動的バインディング・プロトコルを含む。ドメイン内およびドメイン間ルーティングは、ドメイン内プロトコルＯＳＰＦのパフォーマンス改善を含む、パフォーマンスが改善されたＳｏｆｔＲｏｕｔｅｒアーキテクチャの実施例において適合される。
【００２２】
インターネットワーキングにオープンな標準ベースのプロトコルを使用してルータのハードウェアをルータのソフトウェアから分離することには、多くの利点がある。分離概念は、各コンポーネントのサプライヤを分断することで、ハードウェア・ベンダの参入を阻害している壁を低くし、新規ハードウェア市場参入者に供給するキャリア・クラス・ルーティング・ソフトウェアの開発に独立系ソフトウェア・ベンダ（ＩＳＶ）が投資する意欲を高める。この分離概念を利用することにより、それぞれのコンポーネントがそれ独自の革新曲線から逸れることなく辿れるようにできる。ハードウェア・メーカーは、最低のコストで最高の単位密度当たり速度を達成することに集中して、資本支出を低減することができ、またソフトウェア・メーカーは、新しいアプリケーションおよびマネジャビリティに集中して、経常経費を下げつつ収益を高めることができる。
【００２３】
ＳｏｆｔＲｏｕｔｅｒアーキテクチャの実施例の一実施形態は、新しく出てくるアプリケーションにより要求される複雑なＩＰ機能を分離する１つのアプローチである。ＳｏｆｔＲｏｕｔｅｒは、複雑さの共有を中央に集中し、複雑さの共有を可能にする。ＳｏｆｔＲｏｕｔｅｒでは、ＩＰ転送機能を過度に妨げることなく新機能のスケーラブルな導入を果たせる。
【００２４】
図２は、集積化された制御およびトランスポート・プレーンを備える従来のルータ２００を示している。従来のルータ２００は、ソフトウェア２０２およびハードウェア２０４を備え、専用インターフェイス２０６を通じて通信する。
【００２５】
それとは対照的に、図３は、標準プロトコルを使用して通信する別々のハードウェア内の制御プレーンとトランスポート・プレーンを分離するＳｏｆｔＲｏｕｔｅｒアーキテクチャ３００の実施例の高水準抽象化を示している。ＳｏｆｔＲｏｕｔｅｒアーキテクチャ３００は、制御要素およびフィーチャ・サーバ・コンポーネント３０２、および標準ベースのプロトコル３０６を使用して通信するパケット転送要素コンポーネント３０４を備える。
【００２６】
図４は、相互接続された多数のルータ４００を備える従来のルータ・アーキテクチャを示す。
【００２７】
図５は、ＳｏｆｔＲｏｕｔｅｒアーキテクチャ５００の実施例の一実施形態を示している。ＳｏｆｔＲｏｕｔｅｒアーキテクチャ５００のこの実施形態では、ソフトウェア・サーバは、制御要素（ＣＥ）５０２およびフィーチャ・サーバ（ＦＳ）５０４を含む。ＣＥ  ５０２は、従来のルーティング、例えば、内部ゲートウェイ・プロトコル（ＩＧＰ）（例えば、ＯＳＰＦ）および外部ゲートウェイ・プロトコル（ＥＧＰ）（例えば、境界ゲートウェイ・プロトコル（ＢＧＰ））の両方に関与する。ＦＳ  ５０４は、付加価値機能およびネットワーク・ベース・アプリケーション、例えば、ＱｏＳ、ＶＰＮ、およびモバイルＩＰに関与する。ＣＥ  ５０２およびＦＳ  ５０４は、両方とも、転送要素（ＦＥ）５０６とインターフェイスする。ＣＥ  ５０２およびＦＳ  ５０４は、それぞれ相手との追加インターフェイスを備えることができる。ＳｏｆｔＲｏｕｔｅｒアーキテクチャの実施例は、ソフトウェア・ベースのルート・コントローラ（ＳｏｆｔＲｏｕｔｅｒ）をハードウェア・ベースのトランスポートおよびパケット転送から分離して、中央に集中させる。
【００２８】
ＳｏｆｔＲｏｕｔｅｒアーキテクチャの実施例におけるルータの脱構築により、制御機能と転送機能とが分離される。この分離は、論理的に行われるだけでなく（例えば、モジュール型アプリケーション・プログラミング・インターフェイス（ＡＰＩ）で正しく定義されたインターフェイスの使用）、実際、制御は、転送が実行される場所から数ホップ分だけ物理的に隔てられている（つまり、別のネットワーク要素内で実行される）。
【００２９】
ＦＥ  ５０６は、トラフィックの実際の転送およびスイッチングを実行するネットワーク要素である。構造上、ＦＥ  ５０６は、それぞれ次々に複数のポートの終端となる複数のライン・カード、および一方のライン・カードから他方のライン・カードへデータ・トラフィックを往復するスイッチ・ファブリックを備えることができるという点で従来のルータと類似している。しかし、ローカルで実行される高度な制御ロジック（例えば、ＯＳＰＦまたはＢＧＰのようなルーティング・プロセス）がないため、ＦＥ  ５０６は従来のルータと異なる。その代わりに、制御ロジックはリモートでホスティングされる。
【００３０】
ＣＥ  ５０２は、サーバなどの汎用コンピューティング要素である。これは、エンド・ホストと同様にネットワークに接続するが、ただし、通常、複数のＦＥ  ５０６を介してネットワークにマルチホーミングで接続されるため、単一のリンクに障害が発生してもネットワークから切断されることはない。ＣＥ  ５０２は、ＦＥ  ５０６の代わりに、制御ロジックを実行し、したがって、それらを制御する。従来のルータに通常存在する制御ロジックは、ＯＳＰＦおよびＢＧＰのようなルーティング・プロトコルだけでなく資源予約プロトコル（ＲＳＶＰ）、ラベル配布プロトコル（ＬＤＰ）、モバイルＩＰなどのプロトコルをも含めて、ＣＥ  ５０２に移行することができる。
【００３１】
ＦＥ  ５０６は、リンク間でデータ・トラフィックを転送する機能を実行する。この機能は、特にパケット転送、ラベル・スイッチング、および光スイッチングなど、さまざまな形態を取りうる。パケット転送は、レイヤ２（媒体アクセス制御（ＭＡＣ）ベースのスイッチング）およびレイヤ３（最長プレフィックス一致）転送の両方を含む。ラベル・スイッチングは、例えば、ＭＰＬＳ転送を含む。データ・パス転送機能は、ラベル・スワッピング、プッシング、およびポッピングを含むことができる。光スイッチングでは、トラフィックは、リンク間で、時間スイッチング、波長スイッチング、または空間スイッチングが可能である。これらの場合のそれぞれにおいて、スイッチング機能は、ネットワーク内のＣＥ  ５０２により計算され、インストールされる単純ローカル・テーブルにより駆動される。そこで、ＦＥ  ５０６がローカル・データ構造にのみ基づいてその作業を遂行できることは、ＦＥ  ５０６は低機能であるが高速であるように設計され、より複雑なロジックはリモートにあるそれでありながら高機能なＣＥ  ５０２に委ねられていることを意味している。
【００３２】
ＦＥ  ５０６およびＣＥ  ５０２は、両方とも、物理ネットワーク要素であることに加えて論理エンティティと理解される。特に、ＦＥ  ５０６は、トラフィックを相互に切り換えられるポートの集合体として論理的に定義される。例えば、ＦＥ  ５０６は、単一のライン・カード上のすべてのポートを含むことができるが、この場合、物理パケット・スイッチ全体は複数の論理ＦＥ  ５０６で構成される。ＦＥ  ５０６は、さらに、複数の物理スイッチにまたがってもよいが、ＣＥは複数のＦＥ  ５０６を制御することができる。同様に、ＣＥ  ５０２は、ＦＥ  ５０６の代わりに制御を行うためにインスタンス化された論理プロセスとして理解することができ、また実際にそれを実行するサーバ・マシンから区別することができる。特に、物理ＣＥサーバ・マシン（ＰＣＥ）は、それぞれ複数のＦＥ  ５０６からなる異なる集合体にサービスを提供する、複数のＣＥ  ５０２プロセスをホスティングすることができる。その逆に、同じＦＥ  ５０６にサービスを提供する複数のＣＥ  ５０２プロセス（それぞれ、内部ゲートウェイ・プロトコル（ＩＧＰ）および外部ゲートウェイ・プロトコル（ＥＧＰ）などの異なる制御目的に合わせてインスタンス化される）を異なるＰＣＥ上でホスティングすることも可能である。ＦＥ  ５０６およびＣＥ  ５０２の物理的および論理的定義は、入れ換えて使用できる。
【００３３】
図６は、ネットワーク要素６００を例示するＳｏｆｔＲｏｕｔｅｒアーキテクチャの実施例の一実施形態を示している。ルータという概念は、ＳｏｆｔＲｏｕｔｅｒアーキテクチャの実施例では厳密には必要とされないが、ネットワークのルーティングに関する面を理解するために、何らかの同等の概念を用意することが有用である。この目的のために、ネットワーク要素（ＮＥ）６００の概念は、ＦＥ  ５０６およびそれらのＦＥ  ５０６を制御するそれぞれのＣＥ  ５０２からなる論理グループとして高水準の定義が行われる。特定のＮＥ  ６００グループは、暗黙のうちに、ＦＥ  ５０６間の各リンクを内部（またはＮＥ内）または外部（またはＮＥ間）のいずれかとして分類する。内部リンクは、同じＮＥ  ６００に属する２つのポートを接続し、外部リンクは、異なるＮＥ  ６００に属する２つのポートを接続する。ＮＥ  ６００の概念は、ＮＥ内およびＮＥ間ルーティングが異なるアプローチに従う場合に有用である。
【００３４】
制約を加えることなく、ＮＥ  ６００の上記の定義は柔軟に対応できる。例えば、この定義では、ネットワークの非連結部分の中の２つのＦＥ  ５０６が同じＮＥ  ６００に属すようにできる。また、これにより、ＦＥ  ５０６が物理要素内の完全にすべてのポートを含み、（複数の）制御ＣＥ  ５０２が同じ要素上の同じ場所に配置される従来のルータ・モデルが可能になる。
【００３５】
クラスタ化されたルーティングでは、ＮＥ  ６００を構成するＦＥ  ５０６は、切れ目のないクラウドの一部である。つまり、ＮＥ  ６００のすべてのポートは、ＮＥ  ６００の内部のリンクを介してお互いから到達可能であるということである。物理的に、これは、隣接する物理ＦＥ  ５０６の単一のＮＥ  ６００内へのクラスタ化を表す。本社では複数のルータが背中合わせで接続されているというのが通常のシナリオである。ルーティングの観点からは、ＮＥ  ６００に対するこのクラスタ化ベースの定義は、著しい簡素化をもたらしうる。ルーティングの面でＮＥ  ６００の個数が減ることにより、ＮＥ間のルーティングの複雑さが減じ、異なる、場合によっては複雑さの少ないルーティング・プロトコルをＮＥ内ルーティングに採用することができる。
【００３６】
ＦＥ  ５０６とＣＥ  ５０２との制御関係は、バインディングと正式に呼ばれる。より正確には、ＦＥ  ５０６とＣＥ  ５０２との間バインディングは、ＣＥ  ５０２がＦＥ  ５０６の代わりに特定の制御機能を実行していることを意味する。複数のプロトコル（例えば、ＩＧＰおよびＥＧＰ、またはさらには１つのプロトコルの複数のインスタンス）がＦＥ  ５０６の動作に必要になる場合があるため、ＦＥ  ５０６は複数のＣＥ  ５０２バインディングを持ちうる。
【００３７】
ＳｏｆｔＲｏｕｔｅｒアーキテクチャの実施例は、さまざまなプロトコルを含む。ＳｏｆｔＲｏｕｔｅｒアーキテクチャの実施例に従って設計されたネットワークの運用には、動的バインディング・プロトコルおよびＦＥ／ＣＥトランスポート・プロトコルを含む、さまざまな多数のプロトコルが使用される。ＦＥ  ５０６とＣＥ  ５０２との間のバインディングは、ＣＥ  ５０２およびＦＥ  ５０６を発見するプロトコルを介して確立され、さらに、ネットワークの接続途絶に直面したときもこれらのバインディングを維持する。動的バインディング・プロトコルの最も一般的な場合には、ＦＥ  ５０６は、利用可能な任意のＣＥ  ５０２にバインドすることができ、ＣＥ  ５０２は、任意のＦＥ  ５０６に対する制御機能を実行し、それによって、回復力を最大限発揮し、構成オーバーヘッドを最小限にとどめることができる。この動的バインディング機能は、制御機能と転送機能とが独立している脱構築ルータ群の概念の１つの特徴である。ＦＥ／ＣＥトランスポート・プロトコルは、２つの部分、つまりデータおよび制御を持つ。データ部については、ＦＥ／ＣＥトランスポート・プロトコルは、ＦＥ  ５０６とＣＥ  ５０２との間のルーティング・プロトコル・パケットのトンネリングをサポートしており、そのため、ＦＥ  ５０６により受信されたルーティング・プロトコル・パケットをＣＥ  ５０２に送信して処理させることができる。制御部については、バインディングが確立されると、ＦＥ  ５０６およびＣＥ  ５０２は、ＦＥ／ＣＥトランスポート・プロトコルを使用して、状態情報を伝達し、制御を実行する。アップリンク（ＦＥ  ５０６からＣＥ  ５０２）方向では、この制御部は、リンクおよび転送状態情報（例えば、リンク・アップ／ダウン信号）をＣＥ  ５０２に供給する。ダウンリンク方向では、ＦＥ／ＣＥトランスポート・プロトコルは、構成および制御情報を伝送する（例えば、リンク、転送情報ベース（ＦＩＢ）の有効／無効を設定する）。転送および制御要素の分離などの知られているプロトコル（ＦｏｒＣＥＳ）を、ＦＥ／ＣＥトランスポート・プロトコルに使用することができる。
【００３８】
ＳｏｆｔＲｏｕｔｅｒアーキテクチャの実施例の動的バインディング機能では、ＦＥ  ５０６をＣＥ  ５０２から数ホップ分だけ隔てることができる。このような柔軟性は、転送要素の初期構成の複雑度が高まることと引き換えに実現される。ＳｏｆｔＲｏｕｔｅｒモデルでは、ブートアップ後に、ＦＥ  ５０６は、サーバ上に常駐するリモートＣＥ  ５０２からインターフェイスのＩＰアドレスを含む、構成情報を取得する。これは、パラドックスを引き起こす可能性がある、つまり、ＣＥ  ５０２を発見し、それにパケットを送信するために、ＦＥ  ５０６はルーティング情報を必要とするが、ルーティング情報は、ＣＥ  ５０２から発せられると想定されている。このパラドックスは、ＳｏｆｔＲｏｕｔｅｒアーキテクチャの実施例の一部である発見プロトコル（例えば、Ｂｅｌｌ  Ｌａｂｓ発見プロトコル（ＢＬＤＰ））を使用して解決される。この発見プロトコルにより、ＦＥ  ５０６およびＣＥ  ５０２はお互いを発見し合い、それらのエンティティの間のルーティング可能な経路を維持する。動的バインディング・プロセスは、さらに、ＣＥ  ５０２負荷分散、ＣＥ−ＦＥバインディング回復性を改善する制約クラスタ化アルゴリズム、およびフェイルオーバーなどの強化された機能をサポートし、ネットワークの可用性を向上させる。また、これらの機能を使用することにより、ネットワーク計画を改善し、ネットワーク規模の制御を適切に行うことができる。
【００３９】
動的バインディング・プロトコルの実施形態は、ＦＥ  ５０６用のバインディング・サービスおよびＦＥ−ＣＥメッセージ用のルーティング・サービスを提供する。動的バインディング・プロトコルは、ネットワーク内で動作する他のプロトコルとは無関係に、独立したプロトコルとしてネットワークの存続期間中、すべての要素（ＦＥ  ５０６およびＣＥ  ５０２）上で連続実行される。最低でも、それぞれのＦＥ  ５０６およびＣＥ  ５０２は、一意的な識別子として働く事前構成された８進数文字列（ＦＥＩＤ／ＣＥＩＤ）を持つ。ＦＥ  ５０６とＣＥ  ５０２からなるブリッジ接続ネットワーク（例えば、Ｅｔｈｅｒｎｅｔ（登録商標）経由で接続）では、高速スパニング・ツリー・プロトコルにより、ＦＥ−ＣＥ通信用の接続を行う。異機種のＦＥ  ５０６の可能性がある場合、このようなネットワークは唯一可能なものではないので、動的バインディング・プロトコルは、ＣＥ  ５０２とＦＥ  ５０６との間のルーティング・サービスをサポートする独立したコンポーネントを含む。しかし、スパニング・ツリー・プロトコルが利用できる場合、動的バインディング・プロトコルでは、それをルーティング・サービスに使用することができる。動的バインディング・プロトコルは、発見、関連付け、修復による障害検出、およびトランスポート・トンネルの４つのコンポーネントを持つ。
【００４０】
動的バインディング・プロトコルの発見コンポーネントを使用することにより、ＦＥ  ５０６はそれを管理できるＣＥ  ５０２を発見することができる。このＣＥ  ５０２は、そのＦＥ  ５０６用の管理側ＣＥと呼ばれる。発見コンポーネントが構成プロセスに対し高速な収束を行えるようにするために、ＣＥ  ５０２情報がネットワーク全体にわたって配給され、これによりＦＥ  ５０６は、ネットワーク管理者により事前に構成されるか、または分散クラスタ化アルゴリズムを使用して得られるバインディングを使用して最良のＣＥ  ５０２に動的にバインドできる。
【００４１】
ソースでルーティングされるルーティング・レイヤは、発見プロセスに役立つ。ブートアップ時に、それぞれのＦＥ  ５０６は、ランダムに選択された一時ＩＰアドレスをＦＥＩＤとともに使用して、事前発見ルーティングを実行する。このアドレスは、制御されたアドレス空間、例えば、プライベート・サブネット・アドレスから選択される。ＣＥ  ５０２は、事前構成されており、したがって、有効なＩＰアドレスを持つ。すべてのメッセージは、ＦＥ  ５０６およびＣＥ  ５０２のすべてのインターフェイス上でブロードキャストされる。
【００４２】
ＦＥ  ５０６およびＣＥ  ５０２は、定期的ブロードキャストを使用して自身の存在を直近の要素に広告することによりお互いを発見する。それぞれのノード（ＦＥ／ＣＥ）は、近隣要素のリストをローカル・テーブルに保持する。ＦＥ  ５０６は、さらに、すべての近隣要素にＣＥ  ５０２情報を定期的に要請し、ネットワーク内のＣＥ  ５０２上で最新情報を収集する。それに対し、近隣のＦＥ／ＣＥは、それらに知られているＣＥ  ５０２のリストで応答する。リスト内のそれぞれのＣＥ  ５０２は、さらに、近隣のＦＥ／ＣＥからＣＥ  ５０２への知られているソース・ルートに関連付けられている。それぞれのエントリを有効期間パラメータに関連付けると、ＣＥ  ５０２情報は、ＣＥ  ５０２に到達するための最良の経路で定期的に更新される。それぞれのノードは、最短ホップ・カウントのソース・ルートを使用して、ＣＥ  ５０２に接触する。発見プロセスは、常時、ＳｏｆｔＲｏｕｔｅｒアーキテクチャの実施例に従って設計されたネットワーク内で実行される。
【００４３】
それぞれのＦＥ  ５０６は、計画時にネットワーク管理者により１つの一次ＣＥおよび少なくとも１つのバックアップＣＥを割り当てられる。この情報は、ＣＥ  ５０２で構成され、任意選択により、ＦＥ  ５０６でも構成される。通常、この割当は、ＣＥ  ５０２に対する負荷、ＣＥ  ５０２とＦＥ  ５０６との間の距離、およびそれらの間のリンクの信頼性などのファクタを考慮して、先験的に行われる。そのため、ＦＥ  ５０６からＣＥ  ５０２に接触があった場合、ＣＥ  ５０２は、ＦＥ  ５０６に、その一次ＣＥおよびバックアップＣＥのＩＤ情報が利用できる場合にそれを知らせるか、またはＦＥ  ５０６を管理できる場合にはそのＦＥ  ５０６を受け入れる。受け入れられない場合、ＦＥ  ５０６は、その一次ＣＥまたはバックアップＣＥとの接触に進む。
【００４４】
この関連付けプロセスでは、ＦＥ  ５０６とその一次ＣＥおよびバックアップＣＥとの間のアクティブな関連付けを確立し、維持するよう努める。管理側ＣＥは、アクティブに関連付けられたＣＥ  ５０２のリストからＦＥ  ５０６により選択され、一次ＣＥは常に他のＣＥ  ５０２よりも好まれる。
【００４５】
動的バインディング・プロトコルは、関連付け障害を検出し、修復するメカニズムを備える。ＦＥ  ５０６とＣＥ  ５０２との間で関連付けが行われた後、その関連付けが有効かどうか、ＦＥ  ５０６により開始されたハートビート・メッセージを通じて定期的に調査が行われる。ハートビート・メッセージがＣＥ  ５０２からどのような応答も引き出さない場合、ＣＥ  ５０２への経路はもはや有効でない、またはＣＥ  ５０２はもはや生きていないことを意味する。ＣＥ  ５０２は、変更を受け入れたＦＥ  ５０６からの受信確認なしではＣＥ  ５０２との関連付けを解除できない。これは、管理側ＣＥの変更を望んでいるＦＥ  ５０６についても当てはまる。
【００４６】
ＳｏｆｔＲｏｕｔｅｒアーキテクチャの実施例の複数の実施形態に対するプロトコル・フェイルオーバーの方法実施例がある。このプロトコル・フェイルオーバーは、信頼できるメッセージ受け渡しに基づく。プロトコル・フェイルオーバーのこの方法実施例では、プロトコル毎にＣＥ  ５０２のリストが１つある。このリストは、プロトコル毎に保持される。プロトコルのいくつかの実施例は、ＯＳＰＦ、ＩＳ−ＩＳ、拡張内部ゲートウェイ・ルーティング・プロトコル（ＥＩＧＲＰ）、ルーティング情報プロトコル（ＲＩＰ）、およびその他のルーティング・プロトコルを含む。他の実施形態では、これらのリストは、どのプロトコルでも同じである。いつでも１つのＣＥのみが、ＦＥ  ５０６をアクティブに管理している。このＣＥは、アクティブ・プロトコルＣＥ、例えば、アクティブＯＳＰＦ−ＣＥと呼ばれる。他のＣＥ  ５０２は、バックアップ・プロトコルＣＥと呼ばれる。すべてのプロトコルＣＥは、ＦＥ  ５０６に代わってプロトコル・インスタンスを実行する。ＦＥ  ５０６は、着信プロトコル・メッセージをすべてのＣＥ  ５０２に確実に送信する。アクティブ・プロトコルＣＥにより定期的チェックポイントが生成される。チェックポイントは、ＦＥ  ５０６によりすべてのバックアップＣＥに確実に伝播される。チェックポイントは、障害から回復した後、プロトコル状態を更新する場合に使用できる。プロトコルＣＥの回復後、アクティブ・プロトコルＣＥにより同期処理が実行される。プロトコル障害は、ＦＥ  ５０６側で開始する。
【００４７】
図７は、任意のＦＥ  ５０６、ＦＥ  ｎ  ７００に対するアクティブ・プロトコルＣＥおよびバックアップＣＥのリスト例を示している。あるプロトコル、プロトコルｉ  ７０２について、ＦＥ  ｎ  ７００は、アクティブ・プロトコルＣＥ  ７０４のリストおよびバックアップＣＥ  ７０６のリストを持つ。他方のプロトコル、プロトコルｊ  ７０８について、ＦＥ  ｎ  ７００は、さらに、アクティブ・プロトコルＣＥ  ７０９のリストおよびバックアップＣＥ  ７１０のリストを持つ。ＦＥ  ｎ  ７００は、他のプロトコルのリストを持つこともできる。一般に、アクティブ・プロトコルＣＥ  ７０４、７０９およびバックアップＣＥ  ７０６、７１０のリストは、プロトコル毎に保持される。それぞれのＦＥ  ５０６は、構成されるときに、一次ＣＥと二次ＣＥのリストとを割り当てられる。任意の特定の時刻にＦＥ  ５０６を管理しているＣＥ  ５０２は、アクティブ・プロトコルＣＥと呼ばれる。一次ＣＥおよび二次ＣＥの集合内の他のすべての稼働中ＣＥ  ５０２は、バックアップＣＥと呼ばれる。
【００４８】
図８は、集合の階層例を示している。管理集合８００は、ネットワーク内のすべてのＣＥ  ５０２の集合である。管理集合８００は、さらに、それぞれの特定のプロトコルに対するａｄｍｉｎ集合８０２も含む。ａｄｍｉｎ集合８０２は、特定のプロトコルについて、アクティブ・プロトコルＣＥ集合８０４およびバックアップＣＥ集合８０６を含む。管理集合８００は、一次ＣＥ  ８０４（１つからなる集合）および特定のＦＥ  ５０６に対する二次ＣＥ  ８０６の集合を含む。プロトコル固有のアクティブ・プロトコルＣＥおよびバックアップＣＥの集合は、特定のＦＥ  ５０６について与えられたプロトコルのａｄｍｉｎ集合８０２と呼ばれ、ａｄｍｉｎ集合８０２は、管理集合８００の部分集合である。ａｄｍｉｎ集合８０２は、プロトコル固有であり、また構成可能である。例えば、ＯＳＰＦは、特定のＦＥ  ５０６で、ＢＧＰと異なるａｄｍｉｎ集合８０２を持つことができる。発見プロトコルは、管理集合８００内で、ＦＥ  ５０６とすべてのＣＥ  ５０２との間のハートビートを確立しようとする。ハートビートが存在し、特定のプロトコル・メッセージがＣＥ  ５０２により受信確認された場合、ＣＥ  ５０２は、そのプロトコルについてａｄｍｉｎ集合８０２内に移動する。
【００４９】
プロトコル・フェイルオーバーのこの方法実施例では、発見プロトコルは、ＦＥ  ５０６とすべてのプロトコルＣＥとの間の基本ハートビートを確立する。ハートビートが存在するということは、ＦＥ  ５０６とＣＥ  ５０２との間に有効な通信経路があることを意味する。ハートビート障害は、通信経路の障害があることを意味する。プロトコル障害のこの方法実施例は、ストリーム（例えば、ＢＧＰ）ではなくメッセージ（例えば、ＯＳＰＦ、ＩＳ−ＩＳ、ＲＩＰ、ＥＩＧＲＰ）に基づいて動作するプロトコルに適用される。ストリームに基づいて動作するプロトコルを処理するように他の実施形態を適合できる。ピアからのＦＥ  ５０６を対象とするすべてのルーティング・プロトコル・メッセージはそのＦＥ  ５０６を通り、プロトコルＣＥに入る。プロトコルＣＥへの他のルートは使用されないが、それは、デスティネーション・アドレスはＦＥ  ５０６のデスティネーション・アドレスだからである。ルーティング・テーブル・マネージャ（ＲＴＭ）プロセスは、プロトコル・プロセスに類似している。ＲＴＭプロセスは、ＦＥ  ５０６上でＦＩＢを更新する。ＲＴＭプロセスへの入力は、さまざまなプロトコル・プロセス、例えば、ＩＳＰＦ、ＢＧＰからのルーティング・テーブル・エントリ（ＲＴＥ）出力である。ＦＥ  ５０６からプロトコルＣＥへのすべてのメッセージ、およびその逆の方向のすべてのメッセージは、メッセージの順序を決めるシーケンス番号を伝送する。
【００５０】
プロトコル・フェイルオーバーのこの方法実施例では、ＦＥ  ５０６からは、着信ルーティング・プロトコル・メッセージ、発信ルーティング・プロトコル・メッセージ、およびメンテナンス・メッセージの３種類のメッセージが見える。着信ルーティング・プロトコル・メッセージは、他のＦＥ  ５０６から、または他のＦＥ  ５０６の代わりにＣＥ  ５０２から届く。発信ルーティング・プロトコル・メッセージは、アクティブ・プロトコルＣＥから他のＦＥ  ５０６へのメッセージである。メンテナンス・メッセージは、ハートビート、フェイルオーバー、チェックポイント、および再同期を含む。着信ルーティング・プロトコル・メッセージは、ＦＥ  ５０６により、すべてのプロトコルＣＥに送信される。メッセージは、例えば、ストリーム制御伝送プロトコル（ＳＣＴＰ）または伝送制御プロトコル（ＴＣＰ）を使用して確実に送信される。それぞれのルーティング・メッセージは、ＦＥ  ５０６により与えられたメッセージ番号を持つ。メッセージは、すべてのプロトコルＣＥにより受信確認される。ハートビート・メッセージは、ＦＥ  ５０６とＣＥ  ５０２との間のすべての通信に載せられ、アクティブ・プロトコルＣＥＩＤを含む。ハートビートは、プロトコル固有である。これは、一般ＣＥ  ５０２ノード障害を検出するために使用される、発見プロトコル・ハートビートと異なる。
【００５１】
図９は、フェイルオーバーに対するプロトコル・オーバーレイの例を示している。プロトコル・フェイルオーバーのこの方法実施例は、フェイルオーバーを有効にするためのフェイルオーバーに対するシームレス・プロトコル・オーバーレイ（Ｓ−ＰＲＯＦ）と呼ばれるプロトコル・オーバーレイを含む。すべてのＣＥ  ５０２は、ルーティング・プロトコル・プロセス９０４およびＳ−ＰＲＯＦプロセス９０６だけでなく、発見プロトコル／ＩＰプロセス９０８を実行する。これは、アクティブ・プロトコルＣＥ  ９００およびバックアップ・プロトコルＣＥ  ９０２を含む。Ｓ−ＰＲＯＦプロセス９０６は、信頼性およびフェイルオーバー・メンテナンス問題を取り扱う。ルーティング・プロトコル・プロセス９０４は、フェイルオーバー／Ｓ−ＰＲＯＦプロセスに関しては不可知である。すべてのＣＥ  ５０２は、すべての着信プロトコル・メッセージのコピーを受信する。ＦＥ  ５０６は、それらをマルチキャストするか、またはコピー・アンド・ユニキャスト・アプローチを採用することができる。すべてのルーティング・プロトコル・メッセージの受信確認が行われる（ＳＣＴＰ／ＴＣＰ）。着信ルーティング・プロトコル・メッセージは、Ｓ−ＰＲＯＦオーバーレイ・プロセスにより格納される。Ｓ−ＰＲＯＦヘッダに、着信ルーティング・メッセージおよび発信ルーティング・メッセージの両方を含む、すべてのルーティング・メッセージがカプセル化される。Ｓ−ＰＲＯＦでは、ＣＥ  ５０２がアクティブ・プロトコルＣＥ  ９００の場合に、発信（ＣＥ  ５０２から）ルーティング・プロトコル・メッセージをカプセル化する。バックアップ・プロトコルＣＥ  ９０２からの発信メッセージは、Ｓ−ＰＲＯＦプロセス９０６で落とされ、空のＳ−ＰＲＯＦパケットがＦＥ  ５０６に送信される。ＦＥ  ５０６におけるＳ−ＰＲＯＦプロセスは、アクティブ・プロトコルＣＥ  ９００からのみルーティング・プロトコル・メッセージを受信する。プロトコル・ハートビートは、すべてのＳ−ＰＲＯＦメッセージの一部分である。
【００５２】
ＦＥ  ５０６からＣＥ  ５０２に送信されるＳ−ＰＲＯＦメッセージに対するメッセージ形式の実施例は、ソースＦＥＩＤ、デスティネーションＣＥＩＤ、ルーティング・プロトコル識別子、メッセージのＳ−ＰＲＯＦシーケンス番号（ＳＣＴＰ接続からの）、チェックポイント・メッセージ識別子、アクティブ・プロトコルＣＥのＣＥＩＤ、およびもしあれば、同封されているプロトコル・メッセージをフィールドとして含む。
【００５３】
ＣＥ  ５０２からＦＥ  ５０６に送信されるＳ−ＰＲＯＦメッセージに対するメッセージ形式の実施例は、ソースＣＥＩＤ、デスティネーションＦＥＩＤ、ルーティング・プロトコル識別子、受信確認されるプロトコル・メッセージのＳ−ＰＲＯＦシーケンス番号、チェックポイント・メッセージ識別子、ＣＥ  ５０２状態識別子（例えば、アクティブ、バックアップ、再同期）、プロトコル・メッセージ（もしあれば、またソースＣＥ  ５０２がアクティブ・プロトコルＣＥの場合のみ）、および転送フラグをフィールドとして含む。転送フラグは、出力ルーティング・プロトコル・メッセージの転送先を示す。他のルーティング・ピア、他のプロトコルＣＥ、および他のプロトコル・プロセス（例えば、ＲＴＭプロセス）に送出されるメッセージを区別するためである。
【００５４】
このフェイルオーバー・プロセスの実施例では、ルーティング・プロトコルへの入力は、ルーティング・メッセージである。一方のプロトコルＣＥでの手動による再構成変更は、他方のプロトコルＣＥに伝達される。アクティブ・プロトコルＣＥは、ＦＥ  ５０６を更新し、その後他を更新する。すべてのプロトコルＣＥにわたって入力が整合していることを確認するための信頼できる転送がある。再送は、Ｓ−ＰＲＯＦシーケンス番号に基づいてＦＥ  ５０６により開始される。所定の回数の再試行の後、プロトコルＣＥによる再送の受信確認がない場合、ＣＥ  ５０２は、バックアップＣＥリストから削除される。ルーティング・プロトコル・プロセス障害が検出可能である。Ｓ−ＰＲＯＦメッセージは、ルーティング・プロトコル・プロセスから出力メッセージがある場合のみ、ＣＥ  ５０２により送信される。バックアップ・プロトコルＣＥから送られるＳ−ＰＲＯＦメッセージは空である。Ｓ−ＰＲＯＦメッセージが存在しない場合は、ＣＥ  ５０２上のルーティング・プロトコル・プロセスが失敗したということである。
【００５５】
ＦＥ  ５０６はフェイルオーバーを開始する。（１）アクティブ・プロトコルＣＥがダウンした、（２）アクティブ・プロトコルＣＥとＦＥ  ５０６との間のすべての通信経路がダウンした、（３）アクティブ・プロトコルＣＥ上のプロトコル・プロセスが失敗した、という３つの場合を含む、多数の障害の可能性がある。最初の２つの場合は、プロトコル（例えば、ＢＬＤＰ）により識別され、第３の場合は、ＣＥ  ５０２からのＳ−ＰＲＯＦメッセージを欠いていることにより識別される。３つの場合のすべてで、ＦＥ  ５０６はバックアップのうちの１つに切り替わる。ＦＥ  ５０６は、バックアップ・プロトコルＣＥを選択し、それをアクティブ・ステータスに変更する。Ｓ−ＰＲＯＦメッセージ内のアクティブ・プロトコルＣＥＩＤによりすべてのプロトコルＣＥに通知が送られる。バックアップ・プロトコルＣＥのＳ−ＰＲＯＦプロセスでは、その変更を確認し、ルーティング・プロトコル・プロセスからのメッセージのカプセル化を開始し、しかもそれを破棄することはしない。前者のアクティブ・プロトコルＣＥは、プロトコル・プロセスがもう一度応答を開始すると、変更について知る。バックアップ・プロトコルＣＥがその間に何らかのメッセージを送信した場合でも、ＦＥ  ５０６は、バックアップ・プロトコルＣＥからのすべてのルーティング・プロトコル・メッセージを無視する。
【００５６】
アクティブ・プロトコルＣＥが失敗した場合、バックアップ・プロトコルＣＥがアクティブ・プロトコルＣＥとして引き継ぐ。すべてのＣＥ  ５０２は、ＦＥ  ５０６から次のメッセージを受信するとすぐに、変更を認識する。障害が発生した後、回復プロセスが以下のように進む。ＣＥ  ５０２ノードまたはＣＥプロセスが、障害から回復する（Ｓ−ＰＲＯＦプロセスとともに）。障害からの次のプロトコル・メッセージを受信した後、バックアップ・プロトコルＣＥは、現在のアクティブ・プロトコルＣＥおよび最新のチェックポイントを認識する。メッセージは、Ｓ−ＰＲＯＦにより、不揮発性メモリに格納されるため、いくつかのメッセージは復元可能である。不明メッセージ（Ｓ−ＰＲＯＦシーケンス番号に基づく）は、ＦＥ  ５０６とＣＥ  ５０２との間の信頼できる接続により、現在のアクティブ・プロトコルＣＥの助けを借りて復元される。再同期メッセージは、設計選択に応じて、アクティブ・プロトコルＣＥまたはＦＥ  ５０６のいずれかから発信される。ＣＥ  ５０２が同期処理されるまで、ＣＥ  ５０２は再同期状態にある。同期処理の後、ＣＥ  ５０２はバックアップ状態に切り替わる。
【００５７】
プロトコル・フェイルオーバーのこの方法実施例では、チェックポイントは、特定のＳ−ＰＲＯＦメッセージ番号である。チェックポイントよりも小さいすべてのＳ−ＰＲＯＦメッセージ番号は重要でない。プロトコルＣＥは、ＦＥ  ５０６毎のチェックポイントを保持する。すべてのプロトコルＣＥは、最後のチェックポイントよりも新しいＳ−ＰＲＯＦメッセージについて同期処理される。アクティブ・プロトコルＣＥは、チェックポイントを設定し、それをすべてのＣＥ  ５０２に伝達する。これは、初期化時に構成されるプロシージャにより決定されるプロトコル固有のチェックポイントである。ＦＥ  ５０６は、プロトコルの詳細について知っている必要はなく、したがって、汎用サービスのままである。チェックポイント情報およびアクティブ・プロトコルＣＥＩＤは、バックアップ・プロトコルＣＥに送信されるすべてのプロトコル・メッセージに含まれる。バックアップ・プロトコルＣＥは、障害回復／リブート後、最後のチェックポイント以降のすべての欠落メッセージについてアクティブ・プロトコルＣＥに再送を要求する。アクティブ・プロトコルＣＥとバックアップＣＥとの間のすべての通信は、ＦＥ  ５０６を経由する。いくつかの実施形態では、ＦＥ  ５０６は、不揮発性記憶装置が利用可能であれば、再同期のためメッセージを格納する。例えば、ＯＳＰＦでは、３０分毎に対称ＬＳＡが送信され、新しいチェックポイントは、６０分毎に設定することができ、それにより、バックアップ同期のオーバーヘッドを低減できる。
【００５８】
プロトコル・フェイルオーバーのこの方法実施例では、ＣＥ  ５０２ノード／プロセスが失敗してから高速回復すること（スラッシング）、バックアップ・プロトコルＣＥリスト内の異なるＣＥに対して異なるメッセージが失われること、高負荷がかかっているときのパフォーマンスなど、いくつかの整合性問題に対処する。スラッシングに対処するために、この方法実施例では、好ましいＣＥ  ５０２に切り換えて戻る前に十分な間隔を置く。また、信頼できるトランスポート・プロトコル（例えば、ＳＴＣＰ／ＴＣＰ）を使用して再同期を保証し、ＣＥ  ５０２で不揮発性記憶装置を使用して再同期を高速化し、チェックポイントを設定して大きな再同期負荷を回避するようにする。メッセージ喪失に対処するために、信頼できるトランスポートを使用する。一部のＣＥ  ５０２で喪失が激しい場合、この方法実施例は、再同期状態に切り替わり、不整合を回避する。バックアップ・リストから削除を行うことでも、後の段階で再同期を確実なものにできる。過負荷に対処するために、バックアップ・リスト内のすべてのＣＥ  ５０２がＦＥ  ５０６に対するプロトコル・インスタンスを実行する。かかっている負荷が重いとパフォーマンスの低下もありえるが、これは、それらのＣＥ  ５０２上のバックアップ・プロセスに低い優先度を割り当てることにより緩和される。
【００５９】
Ｓ−ＰＲＯＦは、汎用サービスとして実装できる。プロトコル固有のインスタンス化を必要に応じて行うことができる。タイマーは、それぞれのプロトコルに応じて設定することができ、転送フラグの挙動は可変とすることができる。Ｓ−ＰＲＯＦは、ＲＴＭプロセスと相互作用する。ＲＴＭプロセスは、失敗する場合もあり、したがって、確実であるためには、ホット・スタンバイを必要とする。ＲＴＭプロセスがルーティング・プロトコル・プロセスと共存する場合、ＦＥ  ５０６は、そのＣＥ  ５０２でＳ−ＰＲＯＦプロセスに通知する。そうでない場合、アクティブ・プロトコルＣＥのＳ−ＰＲＯＦは、転送フラグをセットアップし、ＲＴＭ更新を適宜転送することをＦＥ  ５０６に通知する。
図１０は、ハートビートがまず存在し、チェックポイントが生成され、ハートビートが失敗し、バックアップ・プロトコルＣＥが新しいアクティブ・プロトコルＣＥになり、失敗したアクティブ・プロトコルＣＥがリブートし、新しいアクティブ・プロトコルＣＥと再同期して新しいバックアップＣＥになるというフェイルオーバーのシナリオ例を示すシーケンス線図である。
【００６０】
ＦＥ開始フェイルオーバーのための方法実施例がある。ＦＥ  ５０６は、プロトコル・ハートビート（または存在する場合には、メッセージ）をアクティブ・プロトコルＣＥと定期的に交換する。アクティブ・プロトコルＣＥがダウンした、アクティブ・プロトコルＣＥとＦＥ  ５０６との間のすべての通信経路がダウンした、またはアクティブ・プロトコルＣＥ上のプロトコル・プロセスが失敗した、という３つの障害の可能性がある。ＣＥ  ５０２から応答（例えば、受信確認またはメッセージ）がない場合、ＦＥ  ５０６は、ａｄｍｉｎ集合からアクティブ・プロトコルＣＥを取り除き、ａｄｍｉｎ集合内のバックアップＣＥの１つへのフェイルオーバーを開始する。バックアップ・プロトコルＣＥは、ＦＥ  ５０６に応答し、準備ができていることを知らせる。ＦＥ  ５０６は、メッセージをすべてのプロトコルＣＥに送信し、バックアップ・プロトコルＣＥへのフェイルオーバーを行うことを伝える。バックアップ・プロトコルＣＥは、アクティブ・プロトコルＣＥになったという確認を送って応答する。
【００６１】
ＣＥ  ５０２におけるフェイルオーバーのための方法実施例がある。バックアップ・プロトコルＣＥは、障害発生後、アクティブ・プロトコルＣＥとして引き継ぐ。新しいアクティブ・プロトコルＣＥが最後に知られているチェックポイントからのすべてのプロトコル・メッセージを受け取っていて、プロトコル・メッセージを順番に処理すれば、新しいアクティブ・プロトコルＣＥは、すぐに、現在のプロトコル状態に達する。新しいアクティブ・プロトコルＣＥにおけるＳ−ＰＲＯＦプロセスは、ＦＥ  ５０６を削除する代わりにＦＥ  ５０６へのメッセージのカプセル化を開始する。そこで、この現在状態は、ルーティング・テーブル・マネージャに更新情報を入れるために使用される。
【００６２】
図１１は、コンピュータを示す高水準のブロック図である。コンピュータ１１００を採用して、本発明のいくつかの実施形態を実装できる。コンピュータ１１００は、プロセッサ１１３０とともに、さまざまなプログラム１１４４およびデータ１１４６を格納するためのメモリ１１４０を備える。メモリ１１４０は、さらに、プログラム１１４４をサポートするオペレーティング・システム１１４２を格納することもできる。
【００６３】
プロセッサ１１３０は、電源、クロック回路、キャッシュ・メモリなどの従来のサポート回路とともに、メモリ１１４０に格納されているソフトウェア・ルーチンの実行を補助する回路と連携する。したがって、本明細書でソフトウェア方法として説明される工程のいくつかは、ハードウェア内に、例えば、プロセッサ１１３０と連携してさまざまな方法工程を実行する回路として実装することができる。コンピュータ１１００は、さらに、コンピュータ１１００と通信するさまざまな機能要素間のインターフェイスを形成する入出力（Ｉ／Ｏ）回路も備える。
【００６４】
コンピュータ１１００は、本発明によりさまざま機能を実行するようにプログラムされた汎用コンピュータとして示されているが、本発明は、ハードウェアで、例えば、特定用途向け集積回路（ＡＳＩＣ）またはフィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）として実装することができる。したがって、本明細書で説明されている工程段階は、ソフトウェア、ハードウェア、またはそれらの組み合わせにより等しく実行されるものとして広く解釈することを意図されている。
【００６５】
本発明は、コンピュータ命令がコンピュータにより処理されると、本発明の方法および／または技術が呼び出されるか、または何らかの方法により提供されるようにコンピュータの動作を適合させるコンピュータ・プログラム製品として実装することができる。本発明の方法を呼び出す命令は、固定または取り外し可能媒体に格納するか、放送媒体または他の信号伝送媒体でデータストリームを介して送信するか、および／または命令に従って動作するコンピューティング・デバイス内の作業用メモリ内に格納することができる。
【００６６】
前記の説明は本発明のさまざまな実施形態を対象としているが、本発明の基本的範囲から逸脱することなく本発明の他の実施形態およびさらなる実施形態を考案することができる。したがって、本発明の適切な範囲は、請求項により決定されるものとする。
【図面の簡単な説明】
【００６７】
【図１】さらに多くの機能をＩＰに追いやる新たに出現するアプリケーションの問題を例示する図である。
【図２】従来のルータを示すブロック図である。
【図３】ＳｏｆｔＲｏｕｔｅｒアーキテクチャの実施例の高水準抽象化を示すブロック図である。
【図４】従来のルータ・アーキテクチャを示すブロック図である。
【図５】ＳｏｆｔＲｏｕｔｅｒアーキテクチャの実施例の実施形態を示すブロック図である。
【図６】ネットワーク要素を例示するＳｏｆｔＲｏｕｔｅｒアーキテクチャの実施例の実施形態を示すブロック図である。
【図７】転送要素（ＦＥ）に対するアクティブ制御要素（ＣＥ）およびバックアップの実施例のリストを示すブロック図である。
【図８】集合の階層の実施例を示すベン図である。
【図９】フェイルオーバーに対するプロトコル・オーバーレイの実施例を示すブロック図である。
【図１０】フェイルオーバーのシナリオの実施例を示すシーケンス線図である。
【図１１】コンピュータを示す高水準のブロック図である。
【図１】
2006135973.tif 000003
【図２】
2006135973.tif 000004
【図３】
2006135973.tif 000005
【図４】
2006135973.tif 000006
【図５】
2006135973.tif 000007
【図６】
2006135973.tif 000008
【図７】
2006135973.tif 000009
【図８】
2006135973.tif 000010
【図９】
2006135973.tif 000011
【図１０】
2006135973.tif 000012
【図１１】
2006135973.tif 000013