(57)【特許請求の範囲】
【請求項１】
ネットワークノードにおいて実行されるネットワークにおけるルーティングパスコンバージェンス時間を短縮する方法であって、
予測される将来のネットワーク状態の順序付きセットを生成するステップであって、予測される将来のネットワーク状態の順序付きセットが、ネットワークがそれぞれの将来のネットワークの各々に移行する可能性に基づいて順序付けされる、ステップと、
ルーティング情報がまだ計算されていない予測される将来のネットワーク状態の順序付きセット内の第１の将来のネットワーク状態を決定するステップと、
第１の将来のネットワーク状態に基づいて予測されるルーティング情報を計算するステップと、
ノードにおいて第１の将来のネットワーク状態に関連して予測されるルーティング情報を格納するステップと、
第１のネットワークノードにおいて、現在のネットワーク状態が、古いネットワーク状態から新しいネットワーク状態に変化したという指示を受信するステップと、
第１のネットワークノードが新しいネットワーク状態に関連付けられている事前計算済みのルーティング情報にアクセスできるかどうかを決定するステップと、
第１のネットワークノードが新しいネットワーク状態に関連付けられている事前計算済みのルーティング情報にアクセスできる場合、事前計算済みのルーティング情報を使用して将来のネットワークトラフィックをルーティングするステップと、
第１のネットワークノードが新しいネットワーク状態に関連付けられている事前計算済みのルーティング情報にアクセスできない場合、新しいルーティング情報を計算し、新しいルーティング情報を使用して将来のネットワークトラフィックをルーティングするステップと
を備える、方法。
【請求項２】
予測するステップおよび計算するステップのうちの少なくとも１つが、第１のネットワークノードとは別個の第２のネットワークノードにおいて実行される、請求項１に記載の方法。
【請求項３】
事前計算済みのルーティング情報および新しいルーティング情報がいずれも最短パスツリーまたは転送テーブルである、請求項１に記載の方法。
【請求項４】
事前計算済みのルーティング情報を使用して将来のネットワークトラフィックをルーティングするステップが、
事前計算済みのルーティング情報に基づいて転送テーブルを計算するステップをさらに備える、請求項１に記載の方法。
【請求項５】
現在のネットワーク状態が変化したという指示を受信した後、古いネットワーク状態に関連して第１のネットワークノードにおいて古いネットワーク状態に関連付けられている古いルーティング情報を格納するステップをさらに備える、請求項１に記載の方法。
【請求項６】
ネットワークにおいてルーティングパスコンバージェンス時間を短縮する第１のネットワークノードであって、
プロセッサと、
ネットワーク状態情報を受信する第１のインターフェイスと、
ネットワーク状態情報に基づいて予測される将来のネットワーク状態の順序付きセットを予測するネットワーク状態予測器であって、予測される将来のネットワーク状態の順序付きセットが、ネットワークがそれぞれの将来のネットワークの各々に移行する可能性に基づいて順序付けされる、ネットワーク状態予測器と、
予測される将来のネットワーク状態の順序付きセットに基づいてルーティング情報の少なくとも１つのセットを生成するルーティング情報生成器と
を備える、第１のネットワークノード。
【請求項７】
少なくとも１つの将来のネットワーク状態を含む予測メッセージを生成するネットワーク状態予測生成器と、
予測メッセージを第２のネットワークノードに伝送する第２のインターフェイスと
をさらに備える、請求項６に記載の第１のネットワークノード。
【請求項８】
第２のインターフェイスと、
転送テーブルを格納する転送テーブルストレージと、
第１のインターフェイスを介してネットワークトラフィックを受信し、
転送テーブルを使用してネットワークトラフィックのネクストホップを決定し、
第２のインターフェイスを介してネットワークトラフィックをネクストホップに伝送するルーティングプロセッサと
をさらに備える、請求項６に記載の第１のネットワークノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書において開示されるさまざまな例示的な実施形態は、一般に、ネットワークトラフィックのルーティングに関する。
【背景技術】
【０００２】
パケット交換ネットワークは、今日のさまざまな形態の常に増加する通信量を可能にするために使用される。インターネットのようなネットワークを介するコンピュータ間の通信に加えて、パケット交換ネットワークは、テレビジョン、電話、およびラジオのような他のアプリケーションに関連付けられている情報の通信を可能にする。それらのアプリケーションおよび他のアプリケーションを通じて、エンドユーザは、遠く離れた距離にわたって多数の情報タイプを伝送および受信することができる。
【０００３】
そのような情報をその送信元からその宛先まで移動させるために、パケット交換ネットワークは、複数の相互接続されたルーティングデバイスを採用する。１つのルータがデータのパケットを受信すると、ルータは、パケットの宛先がどこに位置するかを決定して、パケットを次に最も近いルータに転送する。この次のルータは同様の手順に従い、このようにして、さながら「バケツリレー」のように、パケットは最終的にその宛先に配信される。
【０００４】
パケット交換ネットワークにおける１つの重大な問題は、ネットワーク内の各ルータに、各パケットが伝送されるべき「ネクストホップ（ｎｅｘｔ  ｈｏｐ）」ルータを決定するために必要な情報を提供することである。理論的には、この情報はルータに手動でプログラムされてもよいが、ネットワークトポロジのサイズおよび動的な特性が、通常、この方法を実行不可能なものにしている。代わりに、ルータごとに各宛先への最善パスを自動的に決定するために、さまざまなプロトコルが開発されてきた。たとえば、オープンショーテストパスファースト（Ｏｐｅｎ  Ｓｈｏｒｔｅｓｔ  Ｐａｔｈ  Ｆｉｒｓｔ）規格は、自律システム内のルータがシステム内のリンクの状態に関する情報を共有することを規定する。この情報を使用して、各ルータは、パケットがそれぞれの宛先に向けてどのように転送されるかを決定する際に使用する転送テーブルを独立して作成することができる。ネットワーク状態が変化すると、各ルータは、それぞれの宛先が引き続き到達可能であり、選択されるそれぞれのパスが最適であるように、その転送テーブルを更新する。ネットワーク内のさまざまなルータによって保持されるルーティング情報は、ネットワークの望ましい動作を可能にするため、相互に一致している必要がある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
オープンショーテストパスファーストのような規格は、ルーティング情報を生成することの問題に実用的な解決策をもたらすが、それらの規格は機能するまでに時間を要する。たとえば、ネットワークの変化が生じた直後、各ノードにおけるルーティング情報は、ある程度、古いものになっており不正確である。各ノードが変化の指示を受信して、ネットワークの新しい状態を決定し、最適なルーティングパスを決定して、転送テーブルを更新するまで、情報は古い状態のままである。ノードがネットワークに追加される、ノードがネットワークから除去される、ノードが障害状態に入る、ノードが障害状態から回復する、および他のネットワーク変化のイベントが頻発する可能性があるので、ルータの動作時間の相当の部分が、古いルーティング情報に従ってトラフィックを転送すること、または最新のルーティング情報を待つことに費やされる場合もある。ネットワーク変化イベントとネットワーク内のすべてのノードにおける転送テーブルの正常な更新との間のこの時間は、本明細書において、ネットワークコンバージェンス時間（ｎｅｔｗｏｒｋ  ｃｏｎｖｅｒｇｅｎｃｅ  ｔｉｍｅ）と称される。
【０００６】
したがって、ネットワーク変化イベントとネットワーク内のさまざまなノードにおけるルーティング情報のコンバージェンスとの間の時間を短縮する方法が必要とされている。特に、転送テーブルの更新に費やされる時間を短縮する方法およびネットワークノードを提供することが望ましいと考えられる。
【課題を解決するための手段】
【０００７】
ネットワークコンバージェンス時間を短縮する方法に対する現在の必要性を踏まえて、さまざまな例示的な実施形態の概要が提示される。以下の要約において、簡略化および省略が一部行なわれることがあるが、それは、本発明の範囲を限定するためではなく、さまざまな例示的な実施形態の一部の態様を強調し導入することが意図されている。当業者が本発明の概念を実施して使用できるようにするために十分な、好ましい例示的な実施形態の詳細な説明は、後段において続いて行なわれる。
【０００８】
さまざまな例示的な実施形態は、起こりうる将来のネットワーク状態を予測することができるネットワークルータを提供する。次いで、そのようなネットワークルータは、これらの起こりうる将来のネットワーク状態に対して、最短パスツリー、転送テーブル、および／またはルーティングテーブルのようなルーティング情報を事前計算して格納することができる。その後、ネットワーク状態が変化したという指示をネットワークノードが受信すると、ノードは最初に、新しいネットワーク状態が、ルーティング情報が事前計算したネットワーク状態であるかどうかを調べることができる。事前計算されたネットワーク状態である場合、ノードは、事前計算済みのルーティング情報を使用することで、ルーティング情報が最新の状態になるまでの時間を短縮することができる。この第１の例示的な実施形態によれば、すべての予測および事前計算の機能は、ネットワークノードにおいてローカルに実行される。
【０００９】
さまざまな代替的な実施形態は、ネットワーク内の他のノードに対してこれらのさまざまな予測機能の少なくとも一部を実行する予測ノードを提供する。たとえば、予測ノードは、他のノードについて起こりうる関連した将来のネットワーク状態を単純に予測して、この情報を適切なノードに伝送することができる。次いで、他の各ノードは、将来のネットワーク状態に関連付けられているルーティング情報をローカルに事前計算することができる。あるいは、予測ノードは、他のノードの各々についてルーティング情報を事前計算して、関連するルーティング情報を将来の状態情報と共に、他のノードの各々に伝送することができる。その後、他のノードは、将来使用できるようにこの情報を格納しておくだけでよい。
【００１０】
さまざまな例示的な実施形態は、ノードにおいて、現在のネットワーク状態が、古いネットワーク状態から新しいネットワーク状態に変化したという指示を受信するステップと、ノードが新しいネットワーク状態に関連付けられている事前計算済みのルーティング情報にアクセスできるかどうかを決定するステップと、ノードが新しいネットワーク状態に関連付けられている事前計算済みのルーティング情報にアクセスできる場合、事前計算済みのルーティング情報を使用して将来のネットワークトラフィックをルーティングするステップと、ノードが新しいネットワーク状態に関連付けられている事前計算済みのルーティング情報にアクセスできない場合、新しいルーティング情報を計算し、新しいルーティング情報を使用して将来のネットワークトラフィックをルーティングするステップのうちの１つまたは複数を含む方法および関連するネットワークノードに関する。
【００１１】
さまざまな例示的な実施形態は、付加的または代替的に、ネットワーク状態情報を受信する第１のインターフェイスと、ネットワーク状態情報に基づいて少なくとも１つの将来のネットワーク状態を予測するネットワーク状態予測器のうちの１つまたは複数を含み、少なくとも１つの将来のネットワーク状態は現在のネットワーク状態とは異なる、方法および関連するネットワークノードに関する。
【００１２】
このようにして、さまざまな例示的な実施形態は、ネットワークコンバージェンス時間の短縮を可能にすることが明らかとなろう。特に、起こりうる将来のネットワーク状態に対してルーティング情報を事前計算することにより、ネットワークノードは、ネットワークが実際に変化した後に転送テーブルを更新するために費やす時間を短縮することができる。
【００１３】
さまざまな例示的な実施形態をより深く理解するため、添付の図面に参照が行なわれる。
【図面の簡単な説明】
【００１４】
【図１】データパケットをルーティングするための例示的なネットワークを示す図である。
【図２】１つのノードから複数の他の可能なノードへの最適パスを決定するための例示的な最短パスツリーを示す図である。
【図３】パケット宛先に基づいてパケットが伝送されるべきネクストホップを決定するための例示的な転送テーブルを示す図である。
【図４】パケットをルーティングして、ネットワークコンバージェンス時間を短縮するための例示的なネットワークノードを示す図である。
【図５】起こりうる将来のネットワーク状態を予測するための例示的な予測ノードを示す図である。
【図６】パケットをルーティングし、予測ノードと協働してネットワークコンバージェンス時間を短縮するためのネットワークノードの例示的な実施形態を示す図である。
【図７】起こりうる将来のネットワーク状態を予測するための予測ノードの代替的な実施形態を示す図である。
【図８】パケットをルーティングし、予測ノードと協働してネットワークコンバージェンス時間を短縮するためのネットワークノードの代替的な実施形態を示す図である。
【図９】事前計算済みのルーティング情報を見つけるための例示的な状態機械を示す図である。
【図１０】ネットワークコンバージェンス時間を短縮するための例示的な方法を示す図である。
【発明を実施するための形態】
【００１５】
これ以降、類似する番号が類似するコンポーネントまたはステップを示す図面を参照して、さまざまな例示的な実施形態の広範な態様が開示される。
【００１６】
図１は、データパケットをルーティングするための例示的なネットワーク１００を示す。例示的なネットワークは、さまざまなアプリケーションにデータ転送を行なうためのパケット交換通信ネットワークであってもよい。例示的なネットワーク１００はさらに、ネットワーク内の変化に応答してルーティング情報を自動更新するための規格を実施することができる。たとえば、ネットワーク１００は、オープンショーテストパスファースト（ＯＳＰＦ）規格を実施する自律システムを構成することができる。
【００１７】
例示的なネットワークは、複数のノードＡ−Ｇ  １１０−１７０を含むことができる。各ノードＡ−Ｇ  １１０−１７０は、ルータ、スイッチ、またはデータパケットを受信してパケットのそれぞれの宛先に向けて転送するように構成された他のネットワーク機器であってもよい。各ノードはまた、追加のネットワークデバイスおよびエンドユーザ機器のような、複数の追加のデバイス（図示せず）に接続されてもよい。
【００１８】
ノードＡ−Ｇ  １１０−１７０は各々、１つまたは複数のリンクを介して１つまたは複数の他のノードＡ−Ｇ  １１０−１７０に接続されてもよい。各リンクは、リンクコストに関連付けられてもよい。たとえば、ノードＣ１３０は、コスト２を有するリンクを介してノードＤ１４０に接続されてもよい。このリンクコストは、たとえば、ノード間の地理的距離、リンクに関連付けられているビットレート、ノード間の中間デバイスの数、および／またはリンクの現在の負荷のようなさまざまな要因に基づいて割り当てられてもよい。ノードＢ１２０とノードＧ１７０の間のリンクなどの一部のリンクは、障害が生じているため、パケットの転送には望ましくないこともある。そのようなリンクは、それに応じて、使用を妨げるように、非常に高いかまたは無限のリンクコストを割り当てられてもよい。
【００１９】
各ノードＡ−Ｇ  １１０−１７０は、例示的なネットワーク１００のローカル表現を格納することができる。そのようなローカル表現は、ＯＳＰＦに従って他のノードＡ−Ｇ  １１０−１７０によって伝送されたリンク状態アドバタイズメント（ＬＳＡ）メッセージで搬送された情報からローカルに構築されてもよい。たとえば、各ノードは、リンク状態データベース（ＬＳＤＢ：Ｌｉｎｋ  Ｓｔａｔｅ  Ｄａｔａｂａｓｅ）のすべてのノードおよびエッジの指示を格納することができる。そのような表現は、最短パスツリーを構築するため、および最終的に、パケットをそれぞれの宛先に転送する際に使用する転送テーブルを構築するため、各ノードＡ−Ｇ  １１０−１７０によって使用されてもよい。
【００２０】
図２は、１つのノードから複数の他の可能なノードへの最適パスを決定するための例示的な最短パスツリー（ＳＰＴ）２００を示す。ＳＰＴ２００は、当業者に知られている任意の方法を使用して、例示的なネットワーク１００のようなネットワークの現在の状態の表現を使用するノードＣ１３０のパースペクティブから構築されてもよい。たとえば、ノードはダイクストラの最短経路ツリー（Ｄｊｉｋｓｔｒａ’ｓ  Ｓｈｏｒｔｅｓｔ  Ｐａｔｈ  Ｔｒｅｅ）アルゴリズムを使用してＳＰＴを構築することができる。
【００２１】
ＳＰＴ２００は、例示的なネットワーク１００を考慮すると、ノードＣ１３０によって構築されたＳＰＴであってもよい。ＳＰＴ２００は、ノードＡ−Ｇ  １１０−１７０に対応する複数のノード表現Ａ−Ｇ  ２１０−２７０を含むことができる。ＳＰＴ２００は、ノードＣ１３０からネットワーク内の各ノードへの最適パスを指示することができる。たとえば、ＳＰＴ２００は、ノードＣ１３０からノードＧ１７０への最短パスが、ノードＢ１２０または他のパス経由ではなく、ノードＤ１４０を経由することを指示する。したがって、ノードＧ１７０に宛てられた、ノードＣ１３０によって受信されたパケットは、ＳＰＴ２００に従ってノードＤ１４０に転送される必要がある。次に、ノードＤ１４０は、パケットをノードＧ１７０に転送できるようにする自身のルーティング情報を含むことができる。
【００２２】
ＳＰＴ２００を計算した後、ノードＣ１３０は、例示的なネットワーク１００の新しい状態を反映するように、その転送テーブルを更新することができる。特に、ノードＣ１３０は、ＳＰＴ２００を分析して、とりうる宛先ノードごとに使用されるべきネクストホップノードを決定することができる。次いで、この情報は、パケットを転送するときに迅速にアクセスできるよう転送テーブルに格納されてもよい。
【００２３】
図３は、パケット宛先に基づいてパケットが伝送されるべきネクストホップを決定するための例示的な転送テーブル３００を示す。転送テーブル３００は、たとえば、ノードＣ１３０に格納されているデータベース内のテーブルであってもよい。あるいは、転送テーブル３００は、一連のリンクされたリスト、アレイ、または類似するデータ構造であってもよい。したがって、転送テーブル３００は、基礎をなすデータの抽象化であり、基礎をなすデータの格納に適した任意のデータ構造が使用されてもよいことが明らかとなろう。
【００２４】
転送テーブル３００は、宛先フィールド３０２、およびネクストホップフィールド３０４を含むことができる。宛先フィールド３０２は、各エントリが関連付けられている宛先デバイスを指示することができ、ネクストホップフィールド３０４は、関連する宛先デバイスに適切なネクストホップデバイスを指示することができる。転送テーブル３００が、いくつかの点で、簡略化されたものであることは明らかとなろう。たとえば、転送テーブルは、ＩＰプレフィックス、発信ポート番号、宛先ＭＡＣアドレス、および／または代替ネクストホップのような、追加のフィールドを含むことができる。さまざまな変形が、当業者には明らかとなろう。例示的なテーブル３００に示されるデータが、いくつかの点で、抽象化および／または簡略化されたものであり、たとえば、宛先フィールド３０２は１つまたは複数の宛先ノードのアドレスを格納することができることが明らかとなろう。
【００２５】
転送テーブルは、複数のエントリ３１０−３７０を含むことができる。エントリ３１０は、ノードＡ１１０に宛てられたパケットが、ノードＢ１２０に転送される必要があることを指示することができる。同様に、エントリ３２０および３５０は、ノードＢ１２０またはノードＥ１５０に宛てられたパケットが、ノードＢ１２０に転送される必要があることを指示することができる。エントリ３４０、３６０、３７０は、それぞれ、ノードＤ１４０、ノードＦ１６０、ノードＧ１７０に宛てられたパケットが、ノードＤ１４０に転送される必要があることを指示することができる。
【００２６】
例示的なネットワーク１００のコンポーネントを説明してきたが、例示的なネットワーク１００の動作の概要がこれ以降説明される。後段の説明が例示的なネットワーク１００の動作の概要を提供することを意図されており、したがって若干簡略化されたものであることは明らかとなろう。例示的なネットワーク１００の詳細な動作は、図４−図１０に関連して以下でさらに詳細に説明される。
【００２７】
ノードＣ１３０がテーブル３００のような最新の転送テーブルを生成した後、ノードＣ１３０は、そのアイドル処理時間を使用して、次に認められる可能性のある将来のネットワーク状態を予測することができる。次いで、ノードＣ１３０は、それらの予測される状態の各々についてＳＰＴを事前計算し、格納することができる。次いで、ネットワークが予測される状態のうちの１つに移行する場合、事前計算済みのＳＰＴは直ちに使用されてもよい。したがって、ノードＣ１３０が直ちにその転送テーブルの更新を開始することができるので、コンバージェンス時間は短縮されてもよい。
【００２８】
図４は、パケットをルーティングして、ネットワークコンバージェンス時間を短縮するための例示的なネットワークノード４００を示す。ネットワークノード４００は、例示的なネットワーク１００の１つまたは複数のノードＡ−Ｇ  １１０−１７０に対応することができる。ネットワークノード４００は、パケット受信機４０５、リンク状態アドバタイズメント（ＬＳＡ）識別子４１０、ルーティングプロセッサ４２０、パケット送信機４２５、ネットワーク状態機械４３０、ネットワーク状態履歴ストレージ４４０、最短パスツリー（ＳＰＴ）生成器４５０、転送テーブル生成器４６０、転送テーブルストレージ４７０、およびネットワーク状態予測器４８０を含むことができる。
【００２９】
パケット受信機４０５は、他のネットワークデバイスからパケットを受信するように構成されたハードウェア、および／または機械可読ストレージ媒体上の符号化された実行可能命令を備えるインターフェイスであってもよい。パケット受信機４０５は、複数のポートを含むことができ、複数のネットワークデバイスからパケットを受信することができる。たとえば、パケット受信機４０５は、リンク状態アドバタイズメントパケット、および通常のネットワークトラフィックに関連するパケットを受信することができる。
【００３０】
リンク状態アドバタイズメント（ＬＳＡ）識別子４１０は、受信したパケットがノード４００の処理すべきＬＳＡであるかどうかを決定するように構成されたハードウェア、および／または機械可読ストレージ媒体上の実行可能命令を含むことができる。パケットがＬＳＡである場合、ＬＳＡ識別子４１０は、ネットワークで変化が生じたことを、ネットワーク状態機械４３０に通知することができる。たとえば、ＬＳＡ識別子４１０は、パケットを、ネットワーク状態機械４１０に単に渡すことができる。それ以外の場合、ＬＳＡ識別子は、パケットを、さらにルーティングするためにルーティングプロセッサに渡すことができる。
【００３１】
ルーティングプロセッサ４２０は、パケットをそれぞれの宛先にルーティングするように構成されたハードウェア、および／または機械可読ストレージ媒体上の実行可能命令を含むことができる。ルーティングプロセッサは、受信した各パケットから宛先を抽出し、転送テーブルストレージ４７０に格納されている転送テーブルを使用してその宛先のネクストホップを決定することができる。次いで、ルーティングプロセッサは、パケットを、送信機４２５を介して適切なネクストホップに転送することができる。
【００３２】
パケット送信機４２５は、他のネットワークデバイスにパケットを送信するように構成されたハードウェア、および／または機械可読ストレージ媒体上の符号化された実行可能命令を備えるインターフェイスであってもよい。パケット送信機４２５は、複数のポートを含むことができ、複数のネットワークデバイスに複数種のパケットを送信することができる。たとえば、パケット送信機４２５は、リンク状態アドバタイズメントパケット、および通常のネットワークトラフィックに関連するパケットを送信することができる。
【００３３】
ネットワーク状態機械４３０は、ネットワーク状態がどのように変化したかを決定するために受信したＬＳＡを解釈するように構成されたハードウェア、および／または機械可読ストレージ媒体上の実行可能命令を含むことができる。たとえば、ネットワーク状態機械は、現在のネットワーク状態の表現にアクセスすることができ、受信したＬＳＡに基づいてネットワーク状態を変更することができる。次いで、新しいネットワーク状態表現は、たとえば、ネットワーク状態履歴ストレージ４４０に格納されてもよい。
【００３４】
ネットワーク状態機械４３０はさらに、受信したＬＳＡに基づいて、ＳＰＴが新しいネットワーク状態に既に使用可能であるかどうかを決定することができる。ネットワーク状態機械４３０の例示的な実施形態の詳細な動作は、図９に関して以下でさらに詳細に説明される。ネットワーク状態機械４３０が事前計算済みのＳＰＴを見つけることができる場合、ネットワーク状態機械４３０は、ＳＰＴを転送テーブル生成器４６０に転送することができる。それ以外の場合、ネットワーク状態機械４３０は、新しいＳＰＴが生成される必要があるという指示をＳＰＴ生成器４５０に送信することができる。
【００３５】
さまざまな実施形態において、ネットワーク状態機械４３０は、新しい状態に入る場合、以前の状態の表現を削除することができる。さまざまな代替的な実施形態において、ネットワーク状態機械は、以前の状態および任意のＳＰＴ、転送テーブル、ルーティングテーブル、および／またはそれに関連付けられている他のルーティング情報を保持することができる。ネットワーク状態機械４３０はさらに、図９を参照して以下でさらに詳細に説明されるように、新しい状態から以前の状態に再度入るために、１つまたは複数の移行を生成することができる。たとえば、ネットワーク状態機械４３０は、処理したばかりのＬＳＡの逆であって、この以前の状態に戻るよう導く移行を生成することができる。
【００３６】
ネットワーク状態履歴ストレージ４４０は、以前および／または現在のネットワーク状態の表現を格納することができる任意の機械可読媒体であってもよい。したがって、ネットワーク状態履歴ストレージ４４０は、読み取り専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスクストレージ媒体、光ストレージ媒体、フラッシュメモリデバイス、および／または類似するストレージ媒体のような機械可読ストレージ媒体を含むことができる。
【００３７】
最短パスツリー（ＳＰＴ）生成器４５０は、ネットワークの表現から最短パスツリーを生成するように構成されたハードウェア、および／または機械可読ストレージ媒体上の実行可能命令を含むことができる。たとえば、ＳＰＴ生成器４５０は、ダイクストラのアルゴリズムまたは当業者に知られている任意の他の方法を使用して、最短パスツリーを生成することができる。ＳＰＴが生成されると、ＳＰＴ生成器４５０は、ＳＰＴが現在のネットワーク状態を表す場合、ＳＰＴを転送テーブル生成器に送信することができる。一方、新しいＳＰＴが予測されるネットワーク状態を表す場合、以下でさらに詳細に説明されるように、ＳＰＴ生成器４５０は、将来使用する可能性に備えて、新しいＳＰＴをネットワーク状態機械４３０に渡すことができる。次いで、ネットワーク状態機械４３０は、ＳＰＴを自身のローカルメモリまたはノード４００内の他のストレージデバイスに格納することができる。
【００３８】
転送テーブル生成器４６０は、ＳＰＴに基づいて転送テーブルを生成するかまたは更新するように構成されたハードウェア、および／または機械可読ストレージ媒体上の実行可能命令を含むことができる。たとえば、転送テーブル生成器は、ネットワークノード４００の現在のＳＰＴに基づいて、転送テーブルストレージ４７０の任意のエントリが追加または変更されるべきであるかどうかを決定することができる。
【００３９】
転送テーブルストレージ４７０は、転送テーブルを格納することができる任意の機械可読媒体であってもよい。したがって、転送テーブルストレージ４７０は、読み取り専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスクストレージ媒体、光ストレージ媒体、フラッシュメモリデバイス、および／または類似するストレージ媒体のような機械可読ストレージ媒体を含むことができる。転送テーブルストレージ４７０は、ノード４００内の独立したストレージデバイスであってもよいか、またはネットワーク状態履歴ストレージ４４０と同じものであってもよい。
【００４０】
ネットワーク状態予測器４８０は、可能性のある将来のネットワーク状態を予測するように構成されたハードウェア、および／または機械可読ストレージ媒体上の実行可能命令を含むことができる。そのような予測は、たとえば、現在のネットワーク状態、以前認められたネットワーク状態、起こりうる変化の可能性、およびネットワークへの起こりうる変化の関連性のような、複数の要因に基づいてもよい。たとえば、ネットワーク状態履歴ストレージ４４０内のデータが、現在使用可能な特定のリンクが頻繁に障害状態に入って、転送テーブルに変化を生じさせていることを指示する場合、ネットワーク状態予測器４８０は、次のＬＳＡにおいてリンクが障害を生じていると示される可能性があることを指示することができる。一方、ネットワーク状態予測器が、頻繁に障害を生じるリンクが転送テーブルの変更を必要とすることはまれであると決定する場合、ネットワーク状態予測器４８０は、このとりうる状態を起こりうる将来の状態として報告または考察することを控えることができる。事前計算のためにどのネットワーク状態が最も有利であるかを決定するために、多数の方法および基準が採用されてもよいことは明らかであろう。
【００４１】
ネットワーク状態予測器４８０は、ネットワークノード４００が他のタスクの実行中によるビジー状態ではない間、ネットワークノード４００のアイドル時間を使用して将来のネットワーク状態を予測することができる。ネットワーク状態予測器４８０は、一度に１つの状態を予測することができるか、または予測される状態のリストを生成することができる。そのようなリストは、可能性／関連性の降順で順序付けられてもよい。その後、ネットワーク状態予測器４８０は、ネットワークノード４００のアイドル時間中に、予測される状態を最短パスツリー生成器に伝送することができ、ＳＰＴが予測される状態の各々について事前計算されるようにすることができる。アイドル時間は、ノード４００プロセッサが他のタスクの実行中によるビジー状態ではない時間として、ネットワークノード４００によって識別されてもよい。ネットワーク状態予測器４８０は、特定数の状態に関連付けられているＳＰＴが事前計算されるまで、または特定の量のメモリが事前計算済みのＳＰＴの格納に使用されるまで、このように続行することができる。
【００４２】
一部の実施形態において、ネットワーク状態予測器４８０は、いずれのルーティング情報にも変化をもたらすことのない将来の状態を予測することができる。そのような場合、ネットワーク状態機械４３０は、そのような予測を無視することができるか、もしくは現在のＳＰＴが使用されてもよいという指示、またはそのようなネットワークの変化に応答してアクションを行なう必要がないという指示を格納することができる。
【００４３】
ネットワーク状態が変化する場合、ネットワーク状態予測器４８０は、最初から開始して、予測される状態およびＳＰＴの新しいセットを生成することができる。あるいは、ネットワーク状態予測器４８０は、以前事前計算済みのＳＰＴを再使用して、現在のネットワーク状態に照らして最も関連性または生じる可能性の低いＳＰＴのみを置き換えるよう試みることもできる。
【００４４】
例示的なノード４００は事前計算された最短パスツリーに関して説明されているが、さまざまな代替的な実施形態が代替または追加のタイプのルーティング情報を事前計算できることに留意されたい。たとえば、ノード（図示せず）は、転送テーブル自体、その一部、ルーティングテーブル、またはその一部を事前計算することができる。ＯＳＰＦ以外の規格を採用するシステムの場合、それらの規格に固有のルーティング情報が事前計算されてもよい。そのような代替的な実施形態を実施する際に有用な変更は、当業者には明らかとなろう。
【００４５】
図５は、起こりうる将来のネットワーク状態を予測するための例示的な予測ノード５００を示す。予測ノード５００は、例示的なネットワーク１００または追加のノード（図示せず）の１つまたは複数のノードＡ−Ｇ  １１０−１７０に対応することができる。予測ノード５００は、将来のＳＰＴを予測するために１つまたは複数のノードＡ−Ｇ  １１０−１７０と共に動作するように構成されてもよい。予測ノード５００は、パケット受信機５０５、ネットワーク状態履歴識別子５１０、ネットワーク状態予測生成器５２０、パケット送信機５２５、ネットワーク状態履歴ストレージ５４０、およびネットワーク状態予測器５８０を含むことができる。予測ノード５００は、追加の他のコンポーネントを含むことができる。たとえば、予測ノード５００がルータでもあるさまざまな実施形態において、予測ノード５００は、ネットワークノード４００の１つまたは複数の要素を含むことができる。
【００４６】
パケット受信機５０５は、他のネットワークデバイスからパケットを受信するように構成されたハードウェア、および／または機械可読ストレージ媒体上の符号化された実行可能命令を備えるインターフェイスであってもよい。パケット受信機５０５は、複数のポートを含むことができ、複数のネットワークデバイスからパケットを受信することができる。たとえば、パケット受信機５０５は、リンク状態アドバタイズメントパケット、他のネットワーク状態履歴パケット、および／または通常のネットワークトラフィックに関連するパケットを受信することができる。
【００４７】
ネットワーク状態履歴識別子５１０は、パケット受信機５０５を介して受信したパケットがネットワーク状態履歴を含むかどうかを決定するように構成されたハードウェア、および／または機械可読ストレージ媒体上の実行可能命令を含むことができる。一部の実施形態において、そのようなパケットはＬＳＡであってもよい。他のネットワークノードがネットワーク状態に関する情報を伝達するように構成される他の実施形態において、そのようなパケットは、別のノードによって予測ノード５００に伝送される特別に構築されたパケットであってもよい。そのようなパケットは、定期的に伝送されてもよいか、または発信側ノードによって認められるネットワーク状態への更新がある場合に伝送されてもよい。ネットワーク状態履歴パケットを識別すると、ネットワーク状態履歴識別子５１０は、更新を反映するように、ネットワーク状態履歴ストレージに格納されているデータを更新することができる。
【００４８】
ネットワーク状態予測生成器５２０は、他のノードに伝送するためにネットワーク状態予測メッセージを生成するように構成されたハードウェア、および／または機械可読ストレージ媒体上の実行可能命令を含むことができる。たとえば、ネットワーク状態予測生成器５２０は、単一のネットワーク状態予測、またはネットワーク状態予測器５８０によって生成されたネットワーク状態予測の順序付きリストを含むパケットを構築することができる。その後、ネットワーク状態予測生成器は、パケット送信機５２５を介して、新しいパケットを１つまたは複数の他のノードに送信することができる。以下でネットワーク状態予測器５８０に関して説明されるように、予測は、複数のノードまたは単一のノードのみに適用可能であってもよい。ネットワーク状態予測生成器５２０は、予測が適用可能であるノードだけに新しいパケットを転送することができる。
【００４９】
パケット送信機５２５は、他のネットワークデバイスにパケットを送信するように構成されたハードウェア、および／または機械可読ストレージ媒体上の符号化された実行可能命令を備えるインターフェイスであってもよい。パケット送信機５２５は、複数のポートを含むことができ、複数のネットワークデバイスにパケットを送信することができる。たとえば、パケット送信機４２５は、リンク状態アドバタイズメントパケット、ネットワーク状態予測パケット、および／または通常のネットワークトラフィックに関連するパケットを送信することができる。
【００５０】
ネットワーク状態履歴ストレージ５４０は、以前および／または現在のネットワーク状態の表現を格納することができる任意の機械可読媒体であってもよい。したがって、ネットワーク状態履歴ストレージ５４０は、読み取り専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスクストレージ媒体、光ストレージ媒体、フラッシュメモリデバイス、および／または類似するストレージ媒体のような機械可読ストレージ媒体を含むことができる。
【００５１】
ネットワーク状態予測器５８０は、可能性のある将来のネットワーク状態を予測するように構成されたハードウェア、および／または機械可読ストレージ媒体上の実行可能命令を含むことができる。この点において、ネットワーク状態予測器は、ネットワーク状態予測器４８０と類似するか、または同一であってもよい。
【００５２】
ネットワーク状態予測器５８０はさらに、特定のノードのコンテキスト内で予測を生成するように構成されてもよい。したがって、ネットワーク状態予測器は、ネットワーク内のさまざまなノードについてさまざまな予測を生成することができる。たとえば、ネットワーク状態予測器は、１つの起こりうる将来のネットワーク状態が、第１のノードの転送テーブルへの更新を必要とするが、第２のノードの転送テーブルへの更新は必要としないことを決定することができる。したがって、ネットワーク状態予測器５８０は、この将来のネットワーク状態が、第１のノードに報告されるべきであるが、第２のノードにはその必要がないことを指示することができる。
【００５３】
図６は、パケットをルーティングし、予測ノードと協働してネットワークコンバージェンス時間を短縮するためのネットワークノード６００の例示的な実施形態を示す。ネットワークノード６００は、例示的なネットワーク１００の１つまたは複数のノードＡ−Ｇ  １１０−１７０に対応することができる。ネットワークノード６００は、パケット受信機４０５、ネットワーク状態予測識別子６８０、リンク状態アドバタイズメント（ＬＳＡ）識別子４１０、ルーティングプロセッサ４２０、パケット送信機４２５、ネットワーク状態機械４３０、予測ストレージ６８５、最短パスツリー（ＳＰＴ）生成器４５０、転送テーブル生成器４６０、転送テーブルストレージ４７０、およびネットワーク状態予測器４８０を含むことができる。したがって、ネットワークノード６００の多数の要素が、ネットワークノード４００のさまざまな要素と類似するかまたは同一であってもよい。
【００５４】
ネットワーク状態予測識別子６８０は、受信したパケットが予測ノード５００によって構築され伝送されたネットワーク状態予測メッセージのようなネットワーク状態予測を含むかどうかを決定するように構成されたハードウェア、および／または機械可読ストレージ媒体上の実行可能命令を含むことができる。受信したパケットがそのような情報を含む場合、ネットワーク状態予測識別子６８０は、パケットから１つまたは複数のネットワーク状態予測を抽出して、それらを予測ストレージ６８５に格納することができる。その後、最短パスツリー生成器４５０は、ネットワークノード６００のアイドル処理時間を使用して、予測されるネットワーク状態に従ってＳＰＴを計算し、ネットワーク状態機械４３０を更新することができる。
【００５５】
予測ストレージ６８５は、現在および／または予測されるネットワーク状態の表現を格納することができる任意の機械可読媒体であってもよい。したがって、予測ストレージ６８５は、読み取り専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスクストレージ媒体、光ストレージ媒体、フラッシュメモリデバイス、および／または類似するストレージ媒体のような機械可読ストレージ媒体を含むことができる。
【００５６】
図７は、起こりうる将来のネットワーク状態を予測するための予測ノード７００の代替的な実施形態を示す。予測ノード７００は、例示的なネットワーク１００の１つまたは複数のノードＡ−Ｇ  １１０−１７０または追加のノード（図示せず）に対応することができる。予測ノード７００は、将来のＳＰＴを予測するために１つまたは複数のノードＡ−Ｇ  １１０−１７０と共に動作するように構成されてもよい。予測ノード７００は、パケット受信機５０５、ネットワーク状態履歴識別子５１０、パケット送信機５２５、ネットワーク状態履歴ストレージ５４０、ネットワーク状態予測器５８０、最短パスツリー生成器７５０、および最短パスツリーメッセージ生成器７９０を含むことができる。したがって、予測ノード７００の多数の要素が、予測ノード５００のさまざまな要素と類似するかまたは同一であってもよい。予測ノード７００は、追加の他のコンポーネントを含むことができる。たとえば、予測ノード７００がルータでもあるさまざまな実施形態において、予測ノードは、ネットワークノード４００の１つまたは複数の要素を含むことができる。
【００５７】
最短パスツリー（ＳＰＴ）生成器７５０は、ネットワークの表現から最短パスツリーを生成するように構成されたハードウェア、および／または機械可読ストレージ媒体上の実行可能命令を含むことができる。したがって、ＳＰＴ生成器７５０は、ネットワークノード４００のＳＰＴ生成器４５０と類似するかまたは同一であってもよい。ＳＰＴ生成器７５０は、予測ノード７００のアイドル時間を使用して、ネットワーク状態予測生成器５８０によって生成された予測ネットワーク状態に対して１つまたは複数のＳＰＴを生成することができる。
【００５８】
最短パスツリー（ＳＰＴ）メッセージ生成器７９０は、他のノードに伝送するためにＳＰＴ予測メッセージを生成するように構成されたハードウェア、および／または機械可読ストレージ媒体上の実行可能命令を含むことができる。たとえば、ＳＰＴメッセージ生成器７９０は、単一のネットワーク状態予測を含むパケットを構築して、ＳＰＴまたはネットワーク状態予測の順序付きリストと、ネットワーク状態予測器５８０およびＳＰＴ生成器７５０によって生成された関連するＳＰＴを関連付けることができる。その後、ＳＰＴメッセージ生成器７９０は、パケット送信機５２５を介して、新しいパケットを１つまたは複数の他のノードに送信することができる。上記で説明されているように、予測は、複数のノードまたは単一のノードのみに適用可能であってもよい。ＳＰＴメッセージ生成器７９０は、予測が適用可能であるノードだけに新しいパケットを転送することができる。
【００５９】
図８は、パケットをルーティングし、予測ノードと協働してネットワークコンバージェンス時間を短縮するためのネットワークノード８００の代替的な実施形態を示す。ネットワークノード８００は、例示的なネットワーク１００の１つまたは複数のノードＡ−Ｇ  １１０−１７０に対応することができる。ネットワークノード８００は、パケット受信機４０５、最短パスツリー（ＳＰＴ）メッセージ識別子８９５、リンク状態アドバタイズメント（ＬＳＡ）識別子４１０、ルーティングプロセッサ４２０、パケット送信機４２５、ネットワーク状態機械４３０、最短パスツリー（ＳＰＴ）生成器４５０、転送テーブル生成器４６０、転送テーブルストレージ４７０、およびネットワーク状態予測器４８０を含むことができる。したがって、ネットワークノード８００の多数の要素が、ネットワークノード４００および／またはネットワークノード６００のさまざまな要素と類似するかまたは同一であってもよい。
【００６０】
最短パスツリー（ＳＰＴ）メッセージ識別子８９５は、受信したパケットが予測ノード７００によって生成されたＳＰＴメッセージのような１つまたは複数の予測されるＳＰＴを含むかどうかを決定するように構成されたハードウェア、および／または機械可読ストレージ媒体上の実行可能命令を含むことができる。受信したパケットがそのような情報を含む場合、ＳＰＴメッセージ識別子８９５は、将来使用される可能性に備えて、予測されるＳＰＴをネットワーク状態機械４３０に転送することができる。
【００６１】
図９は、事前計算済みのルーティング情報を見つけるための例示的な状態機械９００を示す。状態機械９００は、ネットワーク状態機械４３０のプログラミング、および／またはネットワーク状態機械４３０によって管理される１つまたは複数のデータ構造に対応することができる。状態機械９００は、現在の状態９１０、複数のとりうる状態９２０、９３０、９４０、および複数のとりうる移行９１１、９１２、９１３、９１４を含むことができる。各状態９１０、９２０、９３０、９４０はさらに、ＳＰＴに関連付けられてもよい。
【００６２】
移行９１１は、現在の状態９１０において開始して終端する。移行９１１は、ノードＢ１２０とノードＧ１７０の間のリンクが１０のリンクコストに復元されたことをＬＳＡが指示する場合、適用可能であることを指示する。移行９１１は同じ状態にループバックするので、そのようなＬＳＡの場合には、ノードの適切なＳＰＴには変更が行なわれることはないことを指示する。次いで、ノードは、さらなるアクションは必要ないと決定することができる。
【００６３】
移行９１２は、現在の状態９１０において開始し、とりうる状態９２０において終端し、ノードＣ１３０とノードＤ１４０の間のリンクの障害を指示するＬＳＡに適用可能である。そのような場合、ノードは、状態９２０に関連付けられているＳＰＴを使用し、その結果、新しく障害が発生したリンクの使用を回避する。
【００６４】
移行９１３は、現在の状態９１０において開始し、とりうる状態９３０において終端し、障害ノードＢ１２０を指示するＬＳＡに適用可能である。そのような場合、ノードは、状態９３０に関連付けられているＳＰＴを使用し、その結果、やむを得ない場合を除きトラフィックをノードＢ１２０に送信することを回避する。この例において、ノードＢ１２０に宛てられたトラフィックのみが、ノードＢ１２０に送信される。
【００６５】
移行９１４は、現在の状態９１０において開始し、とりうる状態９４０において終端し、ノードＦ１６０のみに接続されている新しいノードＨ（図示せず）がネットワークに追加されたことを指示するＬＳＡに適用可能である。そのような場合、ノードは、状態９４０に関連付けられているＳＰＴを使用し、その後、ノードＤ１４０を介して新しいノードにトラフィックを送信する。
【００６６】
示されている移行基準は一例を表していることに留意されたい。追加の移行基準が、当業者には明らかとなろう。たとえば、ネットワークからのノードの除去が基準として使用されてもよい。さらなる例として、複数の変化が単一の移行において指示されてもよい。たとえば、Ｂにおける障害およびＢとＧの間のリンクを報告するＬＳＡに適用可能な移行（図示せず）が状態９１０から状態９１３に追加されてもよい。
【００６７】
図１０は、ネットワークコンバージェンス時間を短縮するための例示的な方法１０００を示す。方法１０００またはその一部は、ネットワークノード４００、５００、６００、７００、および／または８００のコンポーネントによって実行されてもよい。
【００６８】
方法１０００は、ステップ１０００で開始して、ステップ１０１０に進み、ここでネットワークノードがＬＳＡを受信する。次いで、ステップ１０２０において、ノードは何が新しいネットワーク状態であるかを決定することができる。たとえば、ノードは、上記で説明されるように、ＬＳＡを状態機械に適用することができる。ステップ１０３０において、ノードは、最短パスツリー（ＳＰＴ）が新しいネットワーク状態に対して既に計算されているかどうかを決定することができる。たとえば、ノードは、ＬＳＡに対して状態が状態機械に存在するかどうか、および／またはＳＰＴが状態に関連付けられているかどうかを決定することができる。そのような場合、ステップ１０４０において、ノードは単に事前計算済みのＳＰＴを取り出すことができる。
【００６９】
一方、事前計算済みのＳＰＴが使用可能ではない場合、ステップ１０５０において、ノードは新しいＳＰＴを計算することができる。入手方法にはかかわりなく、ＳＰＴが使用可能になれば、ステップ１０６０において、ノードは転送テーブルの生成を開始することができる。
【００７０】
図７および／または図８の実施形態におけるような、第２のノードが他のノードに対して予測されるＳＰＴを生成するさまざまな実施形態において、方法１０００は、直接ステップ１０９５に進むことができる。それ以外の場合、方法１０００は、ステップ１０６５に進むことができ、ここでノードは、ノードのＣＰＵまたはコアのうちの少なくとも１つが現在アイドル状態であるかどうかを決定することができる。ステップ１０６５において、方法１０００は、処理する前にＣＰＵがアイドル状態になるまで待機することができる。あるいは、方法１０００は、この待機期間中に、新しいＬＳＡの受信のような他のイベントによって中断または一時停止されてもよい。ノードが、ＣＰＵは現在アイドル状態であると決定する場合、方法１００は、ステップ１０７０に進むことができる。ステップ１０７０において、ノードは、追加のＳＰＴを格納するために十分なメモリが使用可能であるかどうかを決定することができる。代替的または追加的に、ノードは、満足な数のＳＰＴが事前計算されているかどうかを決定することができる。さらに多くのＳＰＴが事前計算されうる、および／または事前計算されるべきである場合、方法１０００はステップ１０８０に進む。さまざまな実施形態において、予測される状態にＳＰＴを適応させるため、１つまたは複数の関連性の低いＳＰＴがメモリから消去されてもよい。
【００７１】
ステップ１０８０において、ノードは予測される状態を決定する。これは、将来の状態をローカルに予測するステップ、および／または外部ノードによって提供された予測される状態を読み込むステップを含むことができる。次いで、方法１０００はステップ１０９０に進み、ここでノードは、予測されるネットワーク状態に基づいて新しいＳＰＴを計算する。次いで、方法１０００は、ステップ１０６５にループバックして、プロセスを繰り返す。
【００７２】
メモリが満杯であるか、または満足な数のＳＰＴが事前計算されてしまうと、実施形態に応じて、方法１０００はステップ１０７０からステップ１０９５に進んで終了する。
【００７３】
ノードがＳＰＴを事前計算している間に、新しいＬＳＡが到着可能なことは明らかである。さまざまな実施形態は、ステップ１０７０−１０９０のＳＰＴ事前計算手順が新しいＬＳＡを処理するために中断または時期尚早に一時停止されてもよいことを規定することができる。現実世界で実施するための追加の変更は、当業者には明らかとなろう。
【００７４】
前述のさまざまな例示的な実施形態により、ネットワークコンバージェンス時間を短縮することができる。特に、起こりうる将来のネットワーク状態に対して、ＳＰＴおよび／または転送テーブルのようなルーティング情報を事前計算することにより、ネットワークノードは、ネットワークが実際に変化した後に転送テーブルを更新するために費やす時間を短縮することができる。
【００７５】
本発明のさまざまな例示的な実施形態が、ハードウェア、ソフトウェア、および／またはファームウェアにおいて実施されうることが、上記の説明から明らかとなろう。さらに、さまざまな例示的な実施形態は、本明細書において詳細に説明される動作を実行するために少なくとも１つのプロセッサによって読み込まれ実行されうる、機械可読ストレージ媒体に格納された命令として実施されてもよい。機械可読ストレージ媒体は、パーソナルまたはラップトップコンピュータ、サーバ、または他のコンピューティングデバイスのような、機械によって読み取り可能な形態で情報を格納するための任意のメカニズムを含むことができる。したがって、機械可読ストレージ媒体は、読み取り専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスクストレージ媒体、光ストレージ媒体、フラッシュメモリデバイス、および類似するストレージ媒体を含むことができる。
【００７６】
「プロセッサ」と称される任意の機能ブロックを含む、図面に示されるさまざまな要素の機能は、専用ハードウェア、および適切なソフトウェアと関連してソフトウェアを実行することができるハードウェアの使用を通じて提供されてもよい。プロセッサにより提供される場合、機能は、単一の専用プロセッサ、単一の共有プロセッサ、または一部が共有されうる複数の個々のプロセッサによって提供されてもよい。さらに、「プロセッサ」または「コントローラ」という用語の明示的な使用は、ソフトウェアを実行することができるハードウェアのみを参照するものと解釈されるべきではなく、デジタル信号プロセッサ（ＤＳＰ）ハードウェア、ネットワークプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ソフトウェアを格納するための読み取り専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、および不揮発性ストレージを、制限なく暗黙的に含むことができる。標準および／またはカスタムの他のハードウェアが含まれてもよい。同様に、図面に示される任意のスイッチは、概念的なものに過ぎない。それらの機能は、プログラム論理の動作を通じて、専用論理を通じて、プログラム制御および専用論理の相互作用を通じて、または手動によっても実行されてもよく、特定の技法は、コンテキストからさらに具体的に理解されるように実施者により選択可能である。
【００７７】
当業者には、本明細書における任意のブロック図が、本発明の原理を具現する例示的な回路の概念的な図を表すことが理解されるであろう。同様に、任意の流れ図、フローダイアグラム、状態遷移図、擬似コードなどは、機械可読媒体において概ね表されてもよく、コンピュータまたはプロセッサにより（そのようなコンピュータまたはプロセッサが明示的に示されているかどうかにかかわらず）実行されてもよいさまざまなプロセスを表すことが理解されよう。
【００７８】
さまざまな例示的な実施形態が、その特定の例示的な態様を特に参照して詳細に説明されてきたが、本発明は他の実施形態が可能であり、その詳細はさまざまな明白な点において変更が可能であることを理解されたい。当業者には容易に明らかなように、本発明の趣旨および範囲を逸脱することなく変形および変更が行なわれてもよい。したがって、前述の開示、説明、および図面は、例示のみを目的としており、本発明を何ら限定するものではなく、本発明は特許請求の範囲によってのみ定義される。
【図１】
0005622942.tif 000002
【図２】
0005622942.tif 000003
【図３】
0005622942.tif 000004
【図４】
0005622942.tif 000005
【図５】
0005622942.tif 000006
【図６】
0005622942.tif 000007
【図７】
0005622942.tif 000008
【図８】
0005622942.tif 000009
【図９】
0005622942.tif 000010
【図１０】
0005622942.tif 000011