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