一実施形態において、本開示は、ネットワークにおける第1のノードで実現される方法を含む。当該方法は、第1のノードの受信器で、第1のノードを含むネットワーク内の複数のノードの接続性を示すデータを受信するステップを含む。当該方法は、第1のノードのプロセッサにより、接続性に基づくフラッディングトポロジを構築するステップをさらに含む。フラッディングトポロジは、ノードのうち1つをルートノードとして選択すること、及びルートノードをネットワーク内のノードに接続するリンクのツリーを構築することにより構築される。フラッディングトポロジは、ネットワーク内の複数のノードに送信することなく、フラッディングトポロジをメモリに記憶される。当該方法は、第1のノードの送信器により、フラッディングトポロジを通じてリンクステートメッセージをフラッディングするステップをさらに含む。フラッディングトポロジを採用することで、リンクステートメッセージが全てのリンクを通じてフラッディングされる必要なく、リストステートメッセージはネットワーク内の全てのノードに到達することができる。これは、冗長なリンクステートメッセージトラフィックを低減し、したがってネットワークトラフィック輻輳を低減する。そのような低減は、フラッディングトポロジがネットワークノードの数に比例する方法でネットワークトラフィックの輻輳を低減するので、ネットワークスケーラビリティの増大をさらに提供する。また、各ノードがネットワークを通じてフラッディングトポロジを送信することなくフラッディングトポロジを別個に計算できるようにすることは、ネットワークトラフィック輻輳をさらに低減する。
任意で、前述の態様のいずれかにおいて、該態様の別の実装は、受信器で、ツリーに追加すべきリーフリンクの数を指定する要求を受信するステップと、プロセッサにより、フラッディングトポロジに対し、ネットワーク内のノード間における上記数のリーフリンクを追加するステップと、をさらに含むことを含む。フラッディングトポロジへのリーフリンクの追加は、冗長性を加えるが、安定性も加える。さらなるリーフリンクは、フラッディングトポロジを切り離す可能性のある機器故障の潜在的な原因の数を低減する。
任意で、前述の態様のいずれかにおいて、該態様の別の実装は、リーフリンクを追加する前、フラッディングトポロジにおけるリンクのツリーは、ネットワーク内のノード全てをルートノードに接続するための最小数のリンクを含むことを含む。
任意で、前述の態様のいずれかにおいて、該態様の別の実装は、プロセッサにより、新たに接続されたノードとの隣接関係を確立するステップをさらに含むことを含む。新たに接続されたノードは、リンクを介して第1のノードに直接接続される。当該方法は、プロセッサにより、フラッディングトポロジが再計算されるまで、新たに接続されたノードをフラッディングトポロジにおけるリンクのツリーに加えるステップをさらに含む。これにより、新しいノードは、フラッディングトポロジをネットワーク全体により即時に再計算する必要なく、フラッディングトポロジに追加されることが可能である。
任意で、前述の態様のいずれかにおいて、態様の別の実施態様は、受信器で、フラッディングトポロジから除外されたリンクを通して第1のリンクステートメッセージを受信するステップと、送信器により、フラッディングトポロジ上のリンクを通して第1のリンクステートメッセージをフラッディングするステップと、をさらに含むことを含む。これにより、フラッディングトポロジの外部から受信されたリンクステートメッセージは、全てのインターフェースを通してフラッディングすることなく、ネットワークにわたり転送されることが可能である。これは、フラッディングトポロジを採用できないデバイスとの後方互換性を可能にするために使用されてもよい。
任意で、前述の態様のいずれかにおいて、態様の別の実施態様は、受信器で、ネットワーク内の第2のノードがダウンしていることを示す第2のリンクステートメッセージを受信するステップと、送信器により、第1のノードと第2のノードのネイバーとの間を接続するリンクに第2のリンクステートメッセージをフラッディングするステップと、をさらに含むことを含む。これは、誤動作に直接接続されていないネットワークの部分のフラッディングトポロジを維持しながら、誤動作しているノードの周りの通信を可能にする。
任意で、前述の態様のいずれかにおいて、態様の別の実施態様は、受信器で、ネットワーク内の第1のリンクがダウンしていることを示す第3のリンクステートメッセージを受信するステップをさらに含むことを含む。当該方法は、第1のリンクがクリティカル要素であると判定するステップをさらに含む。当該方法は、判定に基づき、ネイバーに接続するリンクであり、第1のリンクにアタッチされたノードに隣接するノードをさらに接続するリンクに、第3のリンクステートメッセージを送るステップをさらに含む。これは、誤動作に直接接続されていないネットワークの部分に関するフラッディングトポロジを維持しながら、誤動作しているリンクの周りの通信を可能にする。
任意で、前述の態様のいずれかにおいて、該該態様の別の実装は、プロセッサにより、クリティカル要素を決定するステップであり、クリティカル要素は、その故障がフラッディングトポロジを分割するリンク又はノードである、ステップと、クリティカルインターフェースが故障したとき、フラッディングトポロジの使用を停止するステップと、をさらに含むことを含む。クリティカル要素の故障は、フラッディングトポロジを複数のトポロジに分ける。したがって、クリティカル要素の故障は、リンクステートメッセージがフラッディングトポロジを通じてネットワーク内の全てのノードに到達することを妨げる可能性がある。この潜在的な問題の認識を維持することで、ネットワークは、クリティカルインターフェースを省略する別のフラッディングトポロジを生成できるまで、一般的なフラッディングに戻ることができる。
任意で、前述の態様のいずれかにおいて、該態様の別の実装は、リンクステートメッセージは、オープンショーテストパスファースト(OSPF)リンクステートアドバタイズメント(LSA)であることを含む。
任意で、前述の態様のいずれかにおいて、該態様の別の実装は、リンクステートメッセージは、中間システム対中間システム(IS‐IS)リンクステートプロトコルデータユニット(LSP)であることを含む。
任意で、前述の態様のいずれかにおいて、該態様の別の実装は、リンクステートメッセージは、フラッディングトポロジを介してリンクステートフラッディング低減をサポートするネットワーク内のノードを示すために設定されるフラッディング低減(F)フラグを含むことを含む。Fフラグは、後方互換性を可能にする。
任意で、前述の態様のいずれかにおいて、該態様の別の実装は、リンクステートメッセージは、集中リンクステートフラッディング低減、分散リンクステートフラッディング低減、又は静的構成リンクステートフラッディング低減を示すために設定されるモードフィールドを含むことを含む。
任意で、前述の態様のいずれかにおいて、該態様の別の実装は、リンクステートメッセージは、フラッディングトポロジにおけるリンクのツリーを構築するためのアルゴリズムを示すために設定されるアルゴリズムフィールドを含むことを含む。
任意で、前述の態様のいずれかにおいて、該態様の別の実装は、リンクステートメッセージは、フルネットワークフラッディングからリンクステートフラッディング低減に切り替えるために設定される動作(OP)フィールドを含むことを含む。
一実施形態において、本開示は、ネットワークにおける第1のノードを含む。当該第1のノードは、当該第1のノードを含むネットワーク内の複数のノードの接続性を示すデータを受信するように構成された受信器を備える。当該第1のノードは、受信器に結合されたプロセッサをさらに備える。プロセッサは、接続性に基づくフラッディングトポロジを構築するように構成される。これは、ノードのうち1つをルートノードとして選択すること、及びルートノードをネットワーク内のノードに接続するリンクのツリーを構築することにより生じる。当該第1のノードは、プロセッサに結合されたメモリであり、フラッディングトポロジを記憶するように構成される、メモリをさらに備える。当該第1のノードは、プロセッサに結合された送信器であり、フラッディングトポロジをネットワーク内の残りのノードに送信することなく、フラッディングトポロジを通じてリンクステートメッセージをフラッディングするように構成される、送信器をさらに備える。フラッディングトポロジを採用することで、リンクステートメッセージが全てのリンクを通じてフラッディングされる必要なく、リストステートメッセージはネットワーク内の全てのノードに到達することができる。これは、冗長なリンクステートメッセージトラフィックを低減し、したがってネットワークトラフィック輻輳を低減する。そのような低減は、フラッディングトポロジがネットワークノードの数に比例する方法でネットワークトラフィックの輻輳を低減するので、ネットワークスケーラビリティの増大をさらに提供する。また、各ノードがネットワークを通じてフラッディングトポロジを送信することなくフラッディングトポロジを別個に計算できるようにすることは、ネットワークトラフィック輻輳をさらに低減する。
任意で、前述の態様のいずれかにおいて、該態様の別の実装は、受信器は、ツリーに追加すべきリーフリンクの数を指定する要求を受信するようにさらに構成され、プロセッサは、フラッディングトポロジに対し、ネットワーク内のノード間における上記数のリーフリンクを追加するようにさらに構成されることを含む。フラッディングトポロジへのリーフリンクの追加は、冗長性を加えるが、安定性も加える。さらなるリーフリンクは、フラッディングトポロジを切り離す可能性のある機器故障の潜在的な原因の数を低減する。
任意で、前述の態様のいずれかにおいて、該態様の別の実装は、リーフリンクを追加する前、フラッディングトポロジにおけるリンクのツリーは、ネットワーク内のノード全てをルートノードに接続するための最小数のリンクを含むことを含む。
任意で、前述の態様のいずれかにおいて、該態様の別の実装は、プロセッサは、新たに接続されたノードとの隣接関係を確立するようにさらに構成され、新たに接続されたノードは、リンクを介して当該第1のノードに直接接続され、プロセッサは、フラッディングトポロジが再計算されるまで、新たに接続されたノードをフラッディングトポロジにおけるリンクのツリーに加えるようにさらに構成されることを含む。これにより、新しいノードは、フラッディングトポロジをネットワーク全体により即時に再計算する必要なく、フラッディングトポロジに追加されることが可能である。
任意で、前述の態様のいずれかにおいて、該態様の別の実装は、受信器は、フラッディングトポロジから除外されたリンクを通して第1のリンクステートメッセージを受信するようにさらに構成され、送信器は、フラッディングトポロジ上のリンクを通して第1のリンクステートメッセージをフラッディングするようにさらに構成されることを含む。これにより、フラッディングトポロジの外部から受信されたリンクステートメッセージは、全てのインターフェースを通してフラッディングすることなく、ネットワークにわたり転送されることが可能である。これは、フラッディングトポロジを採用できないデバイスとの後方互換性を可能にするために使用されてもよい。
任意で、前述の態様のいずれかにおいて、該態様の別の実装は、受信器は、ネットワーク内の第2のノードがダウンしていることを示す第2のリンクステートメッセージを受信するようにさらに構成され、送信器は、当該第1のノードと第2のノードのネイバーとの間を接続するリンクに第2のリンクステートメッセージをフラッディングするようにさらに構成されることを含む。これは、誤動作に直接接続されていないネットワークの部分のフラッディングトポロジを維持しながら、誤動作しているノードの周りの通信を可能にする。
任意で、前述の態様のいずれかにおいて、該態様の別の実装は、受信器は、ネットワーク内の第1のリンクがダウンしていることを示す第3のリンクステートメッセージを受信するようにさらに構成され、プロセッサは、第1のリンクがクリティカル要素であると判定するようにさらに構成され、送信器は、判定に基づき、ネイバーに接続するリンクであり、第1のリンクにアタッチされたノードに隣接するノードにさらに接続するリンクに、第3のリンクステートメッセージを送るようにさらに構成されることを含む。これは、誤動作に直接接続されていないネットワークの部分に関するフラッディングトポロジを維持しながら、誤動作しているリンクの周りの通信を可能にする。
任意で、前述の態様のいずれかにおいて、該態様の別の実装は、プロセッサは、クリティカル要素を決定し、クリティカル要素は、その故障がフラッディングトポロジを分割するリンク又はノードであり、クリティカル要素が故障したとき、フラッディングトポロジの使用を停止するようにさらに構成されることを含む。クリティカル要素の故障は、フラッディングトポロジを複数のトポロジに分ける。したがって、クリティカル要素の故障は、リンクステートメッセージがフラッディングトポロジを通じてネットワーク内の全てのノードに到達することを妨げる可能性がある。この潜在的な問題の認識を維持することで、ネットワークは、クリティカルインターフェースを省略する別のフラッディングトポロジを生成できるまで、一般的なフラッディングに戻ることができる。
任意で、前述の態様のいずれかにおいて、該態様の別の実装は、リンクステートメッセージは、オープンショーテストパスファースト(OSPF)リンクステートアドバタイズメント(LSA)であることを含む。
任意で、前述の態様のいずれかにおいて、該態様の別の実装は、リンクステートメッセージは、中間システム対中間システム(IS‐IS)リンクステートプロトコルデータユニット(LSP)であることを含む。
任意で、前述の態様のいずれかにおいて、該態様の別の実装は、リンクステートメッセージは、フラッディングトポロジを介してリンクステートフラッディング低減をサポートするネットワーク内のノードを示すために設定されるフラッディング低減(F)フラグを含むことを含む。Fフラグは、後方互換性を可能にする。
任意で、前述の態様のいずれかにおいて、該態様の別の実装は、リンクステートメッセージは、集中リンクステートフラッディング低減、分散リンクステートフラッディング低減、又は静的構成リンクステートフラッディング低減を示すために設定されるモードフィールドを含むことを含む。
任意で、前述の態様のいずれかにおいて、該態様の別の実装は、リンクステートメッセージは、フラッディングトポロジにおけるリンクのツリーを構築するためのアルゴリズムを示すために設定されるアルゴリズムフィールドを含むことを含む。
任意で、前述の態様のいずれかにおいて、該態様の別の実装は、リンクステートメッセージは、フルネットワークフラッディングからリンクステートフラッディング低減に切り替えるために設定される動作(OP)フィールドを含むことを含む。
一実施形態において、本開示は、ネットワークにおける第1のノードにより使用されるコンピュータプログラムプロダクトを含む非一時的コンピュータ読取可能媒体を含み、コンピュータプログラムプロダクトは、プロセッサにより実行されたとき第1のノードに前述の態様のうちいずれか1つを実行させるように当該非一時的コンピュータ読取可能媒体に記憶されたコンピュータ実行可能命令を含む。
一実施形態において、本開示は、ネットワークにおける第1のノードを含む。当該第1のノードは、当該第1のノードを含むネットワーク内の複数のノードの接続性を示すデータを受信する受信手段を備える。当該第1のノードは、接続性に基づくフラッディングトポロジを構築する処理手段をさらに備える。これは、ノードのうち1つをルートノードとして選択すること、及びルートノードをネットワーク内のノードに接続するリンクのツリーを構築することにより生じる。当該第1のノードは、フラッディングトポロジを記憶するメモリ記憶手段をさらに備える。当該第1のノードは、フラッディングトポロジをネットワーク内の残りのノードに送信することなく、フラッディングトポロジを通じてリンクステートメッセージをフラッディングする送信手段をさらに備える。
任意で、前述の態様のいずれかにおいて、該態様の別の実装は、受信手段、処理手段、メモリ記憶手段、及び送信手段は、前述の態様のうちいずれか1つを実行するように構成されることを含む。
明瞭さを目的とし、前述の実施形態のいずれか1つを、他の前述の実施形態のいずれか1つ以上と組み合わせて、本開示の範囲内の新たな実施形態を作り出すことができる。
これら及び他の特徴が、添付の図面及び特許請求の範囲に関連して解される以下の詳細な説明から、より明確に理解されるであろう。
最初に、1つ以上の実施形態の例示的な実装が以下に提供されるが、開示されるシステム及び/又は方法は、現在知られているか又は存在するかに関わらず任意の数の手法を使用して実現され得ることを理解されたい。本開示は、本明細書で例示及び説明される例示的な設計及び実装を含む、以下に示す例示的な実装、図面、及び手法に限定されるべきでなく、別記の特許請求の範囲の範囲内で、それらの同等物の全範囲と共に修正され得る。
本明細書において、OSPF及び/又はIS‐ISネットワークなどのIGPネットワークにおけるリンクステートメッセージに関連する信号オーバヘッドを低減するための種々の機構が開示される。ノードからネットワークドメイン内の全ての他のノードにリンクステートメッセージを通信することは、フラッディングと呼ばれる。開示される機構は、集合的にLSFRと呼ばれ、実ネットワークのトポロジのサブセットであるフラッディングトポロジを生成することにより、リンクステートメッセージフラッディングの影響を低減する。一般に、各ノードは、フラッディングトポロジを通じてリンクステートメッセージを送信することにより、フラッディングトポロジから除外されたネットワークリンクを通してそのようなメッセージを送信することなく、ネットワークをフラッディングする。これは、各ノードで受信されるメッセージの冗長コピーの数を最小化しながら、メッセージがネットワーク内の全ての他のノードに到達することを可能にする。例えば、フラッディングトポロジは、ノードを接続するリンクのツリー(例えば、スパニングツリー)として生成されてもよい。そのようなリンクのツリーは、各ノードがフラッディングされたメッセージの単一コピーを受け取ることを保証しながら、リンクステートメッセージが全てのノードにフラッディングされることを可能にする。信頼性を高めるために、ネットワーク管理者による指示に応じて、リンクのツリーにリーフが追加されてもよい。これは、返ってメッセージ冗長性を加えるが、リンク又はノードが誤動作している場合にフラッディングトポロジにわたり代替的なメッセージパスを提供することにより、ネットワーク信頼性を高める。分散モードにおいて、各ノードは、共通アルゴリズムを採用することによりフラッディングツリーを決定し、共通アルゴリズムは、管理者により選択され得る。これにより、各ノードは、ネットワーク輻輳を増加させることになるネットワークを通じてのフラッディングトポロジのコピーのフラッディングをすることなく、フラッディングトポロジのコピーを維持することができる。フラッディング低減(Flooding reduction、F)フラグがさらに開示される。Fフラグにより、各ノードは、LSFRサポートを通信することができ、したがって、ノードは、LSFRをサポートしないノードとの後方互換性(backwards compatibility)を維持しながらフラッディングトポロジを採用することができる。Fフラグはまた、非LSFRノードがフラッディングトポロジツリーのルートから遠く離れて接続されることを可能にする。さらに、ネットワーク変更の場合にリンクステートメッセージフラッディングを管理する機構が開示される。例えば、新しいノードがネットワークに入り、すでにフラッディングトポロジ上にある近隣ノード(ネイバーノード(neighbor node))と通信するとき、ネイバーノードは、フラッディングトポロジの再計算が生じ、新しいフラッディングトポロジが構築されるまで、新しいノードをフラッディングトポロジに加え得る。さらに、リンク又はノードが誤動作しているとき、誤動作に隣接するノードは、フラッディングトポロジから除外されたリンクを介して、誤動作に隣接する他のノードにリンクステートメッセージを通信し、そのようなノードが、誤動作が対処されるまで、リンクステートメッセージを継続して受信することを保証することができる。さらに、ノードは各々、クリティカル要素(critical elements)の知識を保持し得る。クリティカル要素は、故障するとフラッディングトポロジを2つ以上の分断部分に分割するフラッディングトポロジリンク/インターフェース又はノードである。クリティカル要素の故障の通知に対して、ノードは、リンク/ノードが修復されるまで、あるいは故障した要素を含まない新しいフラッディングトポロジを計算できるまで、全てのリンクを通じてのリンクステートメッセージのフラッディングに戻ってネットワーク機能性を維持し得る。クリティカル要素がフラッディングトポロジリンク(又はインターフェース)であるとき、クリティカル要素はクリティカルインターフェース又はクリティカルリンクと呼ばれる。クリティカル要素がフラッディングトポロジノードであるとき、クリティカル要素はクリティカルノードと呼ばれる。
図1は、一例示的なIGPネットワーク100の概略図である。IGPネットワーク100は、OSPF及び/又はIS‐ISなどのIGPプロトコルに基づいてルーティング及び/又はスイッチング情報を交換するように構成されたネットワークである。IGPネットワーク100は、リンク115により相互接続された複数のノード111を含む。ノード111は、第1のインターフェース上のソースからデータパケットを受信し、第2のインターフェースを介して到達可能なデータパケットの宛先を決定し、第2のインターフェースを介してデータパケットを宛先に転送することができるネットワークデバイスである。議論を明瞭にするため、用語のデータパケットは、本明細書で用いられるとき、データパケットとデータフレームの双方を含む。リンク115は、第1のノード111のインターフェースから第2のノード111のインターフェースに信号を伝搬することができる媒体である。
ノード111は、相互接続されてネットワークドメイン110を形成する。本明細書で用いられるとき、ネットワークドメイン110は、ネットワークアドレス指定スキーム、ポリシー、及び/又はプロトコルを共有する相互接続されたノード111のグループである。具体的には、ネットワークドメイン110のノード111は、リンクステートルーティングプロトコルを採用する。リンクステートルーティングプロトコルを採用するとき、ネットワークドメイン110内の各ノード111は、完全なネットワークトポロジ(例えば、ルーティングテーブル)を維持し、ネットワークトポロジに関連するローカルに記憶された情報を採用することにより、データパケットの次のホップを独立して決定する。ネットワークトポロジは、ノード111及びリンク115の接続、ノード111の隣接関係(adjacencies)、ノード111のインターフェース情報、及び/又は他のリンク115/ノード111の関係情報などの、IGPネットワーク100の構造を示すデータを含む。
ノード111は、ネットワークドメイン110にわたりリンクステート情報を共有する。ノード111のリンクステート情報は、ノード111を識別するデータ(例えば、ノード111のアドレス)、ノード111の近隣(ネイバー(neighbors))のリスト、及びノード111とノード111のネイバーとの間のコスト/遅延を含む。ノード111は、単一のリンク115により分離されたとき、ネイバーである。リンクステート情報を共有するために、ノード111は、ネットワークドメイン110にわたりリンクステートメッセージをフラッディングする。OSPFでは、リンクステートメッセージはリンクステートアドバタイズメント(link state advertisements、LSA)として知られている。IS‐ISでは、リンクステートメッセージはリンクステートプロトコルデータユニット(link state protocol data units、LSP)として知られている。いくつかの例において、各ノード111は、全てのインターフェース上でリンクステートメッセージをフラッディングする。本明細書で用いられるとき、フラッディングは、予め定義されたネットワークインターフェースセット上のパケット/フレームの同時送信を示す。このようなアプローチは、IGPネットワーク100のサイズが増大すると問題を生じる可能性がある。例えば、各ノード111が全てのインターフェースを介して全ての他のノード111にリンクステートメッセージを周期的に送信するとき、リンクステートデータに関連するネットワークトラフィックは、さらなるノード111がIGPネットワーク100に追加されると急激に増加する可能性がある。さらに、各ノード111は、全てのインターフェース上で各々の他のノード111のリンクステートメッセージを受信し得る。これは、各ノード111が複数の冗長なリンクステートメッセージを受信する結果をもたらす可能性がある。
本開示は、ネットワークドメイン110内のノード111により採用されるプロトコルを修正して、冗長なリンクステートメッセージを低減する。冗長なリンクステートメッセージ通信を低減する処理は、本明細書においてリストステートフラッディング低減(list state flood reduction、LSFR)と呼ばれる。具体的には、ノード111が、IGPネットワーク100のトポロジのサブセットであるフラッディングトポロジを生成及び維持するように修正される。リンクステートメッセージは、IGPネットワーク100のトポロジ全体を通じてではなく、フラッディングトポロジを通じてフラッディングされる。このアプローチは、冗長なリンクステートメッセージの通信を低減し、これは、IGPネットワーク100のスケーラビリティを増大させる。さらに、リンクステートメッセージトラフィックの低減は、全体的なネットワーク保守シグナリングを低減し、したがって、データトラフィックに関するノード111の通信容量を増大させる。
図2は、分散LSFRをサポートするためのフラッディングトポロジ219を有する一例示的なIGPネットワーク200の概略図である。例えば、IGPネットワーク200は、IGPネットワーク100上でLSFRを実現するために採用され得る。IGPネットワーク200は、ノード211、ルートノード212、及び第1のノード213を含み、これらはIGPネットワーク100内のノード111と実質的に同様でもよい。ルートノード212は、フラッディングトポロジ219として採用されるスパニングツリーのルートとして選択されたノード211である。第1のノード213は、ノード211であり、本明細書で論じられるLSFRスキームを説明するときに議論の明瞭さをサポートするために区別されている。IGPネットワーク200は、フラッディングトポロジリンク216及びリンク217を含み、これらはリンク115と実質的に同様である。太線で示されたフラッディングトポロジリンク216は、フラッディングトポロジ219に含まれるリンクであり、したがってリンクステートメッセージを送信するために採用される。太線なしで示されたリンク217は、フラッディングトポロジ219に含まれず、以下で図に関連して論じられるように、ある特定の場合にのみリンクステートメッセージを伝える。
IGPネットワーク200は、分散モードで動作し得る。分散モードにおいて、各ノード211、212、及び213は、ネットワークにおける変更が検出された後、フラッディングトポロジ219を生成する。フラッディングトポロジ219は、リンクステートメッセージを送信するために採用されるフラッディングトポロジリンク216のツリーである。ノード211、212、及び213は、フラッディングトポロジ219を生成するために同じアルゴリズムを採用する。したがって、各ノード211、212、及び213は、フラッディングトポロジ219を示すフラッディングデータをIGPネットワーク200の残りのノードに送信することなく、フラッディングトポロジ219をローカルメモリに記憶する。このようにして、フラッディングトポロジ219を示すデータは、全てのノード211に送信されるわけではない。フラッディングトポロジ219は、以下で図に関連して論じられるように、いくつかのアルゴリズムに従って生成できる。
各ノード211、212、及び213は、各ノード211、212、及び213においてIGPネットワーク200内のノード212、211、及び/又は213の接続性(connectivity)を示すデータを受信した後、フラッディングトポロジ219を生成することができる。データの受信/送信は、既存のフラッディングトポロジ219を通じて、及び/又は既存のフラッディングトポロジ219が存在しない場合には一般的なフラッディングを介して生じ得る。各ノード211、212、及び213は、選択されたアルゴリズムを採用することにより、フラッディングトポロジ219のコピーを構築することができる。例えば、IGPネットワーク200のノードのうち1つが、ルートノード212として選択される。ルートノード212は、多くの機構によりノード211/213から選択できる。例えば、ルートノード212は、最大又は最小の識別子(identifier、ID)、インターネットプロトコル(internet protocol、IP)アドレス、媒体アクセス制御(media access control、MAC)アドレス等を有するノードとして、ノード211/213から選択されてもよい。ひとたびルートノード212が選択されると、フラッディングトポロジリンク216のツリーが構築され、それにより、フラッディングトポロジリンク216のツリーはルートノード212をネットワーク内のノードに接続する。例えば、フラッディングトポロジ219は、スパニングツリー及び/又は最小重み(minimum weight)スパニングツリーとして構築されてもよい。スパニングツリーはグラフのサブセットであり、全ての頂点(ノード211、212、及び213)が最小数のエッジ(リンク216)を介して接続される。最小重みスパニングツリーはグラフのサブセットであり、全ての頂点(ノード211、212、及び213)が最小エッジ重み(例えば、レイテンシの観点でのリンクコスト)を介して接続される。ルートノード212を有するフラッディングトポロジ219のツリーは、O(N)で計算されてもよく、O(N)は、入力(例えば、ノード数)に基づく線形計算時間を示すビッグO記法である。
フラッディングトポロジ219は、いくつかの基準を満たすIGPネットワーク200のトポロジのサブネットワークトポロジである。第1に、フラッディングトポロジ219は、サブネットワーク内で、実ネットワーク(例えば、IGPネットワーク200)内と同等の、全てのノードに対する到達可能性を提供する。第2に、n(n>0)個のリンク216が故障しているとき、サブネットワーク内の全てのノード(例えば、ノード211、212、及び213)への到達可能性は、実ネットワーク内と同じであるべきである。第3に、m(m>0)個のノードが故障しているとき、サブネットワーク内の全てのライブノードへの到達可能性は、実ネットワーク内と同じであるべきである。第4に、リストステートフラッディングを低減するために、フラッディングトポロジ219内のフラッディングトポロジリンク216の数を最小化すべきである。
ひとたびフラッディングトポロジ219が生成されると、ノード211、212、及び213は、フラッディングトポロジ219を通じて、OSPF LSA及び/又はIS‐IS LSPなどのリンクステートメッセージをフラッディングすることができる。フラッディングトポロジ219は、リンクステートメッセージをフラッディングするときにいくつかの基準を採用することによりIGPネットワーク200と相互作用するように設計される。例えば、リンクステートメッセージは、フラッディングトポロジ219と実IGPネットワーク200のトポロジの双方を使用する。さらに、フラッディングトポロジ219及び関連するフラッディング機構は、多くの場合、IGPネットワーク200内のあらゆるノード211、212、及び/又は213へのリンクステートメッセージ(例えば、リンクステートメッセージ221)のフラッディングをサポートすべきであり、これらは、以下で図に関連してより詳細に論じられる。例えば、フラッディング機構は、n(n>1)個のノードがダウンしているとき(例えば、ノード故障)、リンクステートメッセージが全てのノード、ノード211、212、及び/又は213に到達することを可能にすべきである。別の例として、フラッディング機構は、m(m>1)個のリンクがダウンしているとき(例えば、リンク/インターフェース故障)、リンクステートメッセージが全てのノード211、212、及び/又は213に到達することを可能にすべきである。フラッディング機構は、リンクステートメッセージフラッディングを低減(例えば、ほぼ最小化)しながら、そのような基準を満たすべきである。また、フラッディング機構は、LSFRをサポートするノード211、212、及び/又は213とLSFRが不可能なノードとを含むフラッディングトポロジ219で動作するように、後方互換性があるべきである。互換性は、以下で図に関連してより詳細に論じられる。一般に、能力のないノードは、フラッディングトポロジ219上に配置されるが、ルートノード212から遠く離れる。次いで、能力のないノードは、フラッディングトポロジ219からリンクステートメッセージを受信し、それらを全てのインターフェースを通じてフラッディングすることができる。
説明を目的として、フラッディングトポロジ219を通じてのリンクステートメッセージフラッディング機構が、第1のノード213の観点から論じられる。本明細書で用いられるとき、用語の第1のノード213は、議論を明瞭にするため、IGPネットワーク200から任意に選択されたノード211を示す。第1のノード213は、例えば、1つ以上のリンク216を通じてルートノード212から、リンクステートメッセージ221を受信することができる。リンクステートメッセージ221は、LSA、LSP、又はリンクステート情報を搬送する他のパケット/フレームでもよい。リンクステートメッセージ221は、ソースノード211/212のID、ノード211/212の隣接関係、リンク216/217のID、インターフェース情報(例えば、ポートデータ)、及び/又はリンク216/217のコスト(例えば、レイテンシ)などのリンク/ノード状態情報などの接続性データを含んでもよい。
第1のノード213は、フラッディングトポロジリンク216を通じてリンクステートメッセージ221を受信する。第1のノード213は、そのような情報がローカルに記憶されたデータより新しいとき、リンクステートメッセージ221からのデータを解析し、記憶する。次いで、第1のノード213は、フラッディングトポロジ219のフラッディングトポロジリンク216を通じてリンクステートメッセージ221をネイバーノード211に転送する。リンクステートメッセージ221は、リンクステートメッセージ221を受信したインターフェースを戻って(例えば、ルートノード212に向けて戻って)フラッディングされることはない。図示のように、リンクステートメッセージ221は、一般に、以下で図に関連してより詳細に論じられるように、特定の場合でない限り、フラッディングトポロジ219の外部のリンク217を通してフラッディングされることはない。したがって、リンクステートフラッディングは、フラッディングトポロジ219に従って達成される。フラッディングトポロジ219が全てのノード211、212、及び213を接続すると、IGPネットワーク200内の各ノードはリンクステートメッセージ221のコピーを受信し、(例えば、ルーティングテーブル内の)ローカルのリンクステート情報を更新する。しかしながら、リンクステートメッセージ221は、一般にリンク217を通してフラッディングされないので、ノード211、212、及び213は、一般にリンクステートメッセージ221の冗長コピーを受信しない。したがって、リンクステートメッセージ221のフラッディングが低減され、それにより、各ノード211、212、及び213は、各インターフェース上のコピーの代わりにリンクステートメッセージ221の単一コピーを受信する。
一般に、リンクステートメッセージ221のフラッディングをフラッディングトポロジ219に制限することは、いくつかの利点を結果としてもたらす。例えば、本明細書で説論じられるフラッディング機構は全体的なネットワークトラフィックを低減し、したがってネットワーク性能を強化する。さらに、本明細書で論じられるフラッディング機構は、分散モードにおいてフラッディングトポロジ219が各ノードで算出されるため、ネットワーク輻輳を改善する。さらに、本明細書で論じられるフラッディング機構は、他のリンクステートフラッディング機構と比較したとき、構成要件を低減し得る。
機器の故障から保護するために、IGPネットワーク200にいくらかの冗長性が設計されてもよいことに留意されたい。具体的には、潜在的なIGPネットワーク200の通信問題を緩和するために、フラッディングトポロジ219に付加的なリンク216が追加されてもよい。そのような場合、いくつかのノード211、212、213は、複数のリンクステートメッセージ221を受信し得る。したがって、LSFRは、冗長なリンクステートメッセージに基づいて、さらなる信頼性との間でバランスがとられ得る。フラッディングトポロジ219の信頼性を高めるための機構を以下で論じる。
図3は、リーフリンク318を採用するフラッディングトポロジ319を有する一例示的なIGPネットワーク300の概略図であり、これは、ネットワーク信頼性を高めるために採用され得る。IGPネットワーク300は、IGPネットワーク200と実質的に同様であるが、フラッディングトポロジ319内に付加的なリーフリンク318を含む。したがって、IGPネットワーク300は、ルートノード312、ノード311、リンク317、及びフラッディングトポロジリンク316を含むフラッディングトポロジ319を含み、これらは、それぞれ、ルートノード212、ノード211/213、リンク217、フラッディングトポロジ219、及びフラッディングトポロジリンク216と実質的に同様である。
リーフリンク318は、IGPネットワーク300の信頼性をサポートするためにフラッディングトポロジ319に追加されたリンクである。リーフリンク318は、破線の太線で示されている。リーフリンク318がフラッディングトポロジ319に追加され(例えば、円形を作成している)、ノード311/312へのリンク316/317のいくつかは、他のノード311/312をフラッディングトポロジリンク316のツリーから分離させることなく、誤動作する可能性がある。しかしながら、リーフリンク318の追加は、リーフリンク318のエンドポイントノード311/312のうちの1つに、冗長なリンクステートメッセージを受信させ得る。したがって、IGPネットワーク300の信頼性は、わずかに増加したシグナリングオーバヘッドを犠牲にして高められる。
リーフリンク318の追加は、フラッディングトポロジ319を構築する処理の間に生じてもよい。例えば、システム管理者は、フラッディングトポロジ319に追加すべきリーフリンク318の数を選択することができる。そのような選択は、IGPネットワーク300内の全てのノード311/312に送信できる。したがって、各ノード311/312は、フラッディングトポロジ319におけるフラッディングトポロジリンク316のツリーに追加すべきリーフリンク318の数を指定する要求を受信する。各ノード311/312は、上記で論じられた接続性情報に基づいてフラッディングトポロジ319を構築することができる。リーフリンク318を追加する前、フラッディングトポロジ319内のリンク316のツリーは、IGPネットワーク300内のノード311全てをルートノード312に接続するための最小数のリンクを含んでもよい。フラッディングトポロジ319を生成した後、ノード311/312は、システム管理者からの要求で指定されたとおりの数のリーフリンク318 k個(k>=0)をフラッディングトポロジ319に追加する。リーフリンク318は、信頼性を高めるために、IGPネットワーク300内のノード311/312の間に追加される。リーフリンク318は、いくつかの機構に基づいて配置できる。例えば、故障するとフラッディングトポロジ319を複数のツリー/部分に分割することになる任意のフラッディングトポロジリンク316又はノード311/312は、クリティカル要素として指定できる。リーフリンク318は、IGPネットワーク300内のクリティカル要素の数を最小化するように選択された位置に配置されてもよい。さらなるリーフリンク318の配置機構を以下で論じる。
例えば、フラッディングトポロジ319は、Ftと呼ばれ、図5~図7に関連して説明される機構のうち1つにより構築されてもよい。そのような場合、フラッディングトポロジ319は、ツリーの形状をとり得る。次いで、整数個のリーフリンク318 k個(k>=0)をツリーに追加して、増大した接続性を有する強化されたフラッディングトポロジ319を作成することができる。例えば、フラッディングトポロジ319上のノードXに直接接続されたm個(m>0)のリンク317が存在し得る。例えば、決定的アルゴリズム又はルールを使用することにより、リーフリンク318の数kを選択でき、ここでk<=mである。1つのアルゴリズム又はルールが、フラッディングトポロジ319に現在接続されていないリンク317のうち最小又は最大のIDを有するk個のリーフリンク318を選択することを含んでもよい。(例えば、これらk個のリンクの非リーフ端のIDは、ノードXに直接接続された他のリンクのIDより小さい/大きい。)あらゆるノードは、固有のIDを有し得る。したがって、これらリンクの非リーフ端のうち、より小さい又はより大きいIDを有するk個のリーフリンクを選択することは、決定的である。特定の例として、このアルゴリズム下でk=1である場合、選択されるリーフリンク318は、ノードXに直接接続された全てのリンクの非リーフ端のIDの中で最小/最大のIDを有する。
別の例示的な機構において、第1のノードLが、フラッディングトポロジ319 Ft内の第2のノードNに直接接続され得る。第3のノードへの接続/隣接関係は、第1のノードLから、決定的アルゴリズム又はルールを使用することにより、Ft内のリーフリンク318として選択できる。例えば、第1のノードLは、隣接関係を介してフラッディングトポロジ319 Ft内の第3のノードNi(i=1,2,...,s)に直接接続され得る。さらに、第3のノードNiは、第2のノードNでなく、IDiは、第3のノードNiのIDであり、Hi(i=1,2,...,s)は、フラッディングトポロジ319 Ftにおける第1のノードLから第3のノードNiへのホップ数である。1つのアルゴリズム又はルールは、第3のノードNj(1<=j<=s)への接続を、HjがH1,H2,...,Hsの中で最大であるようなリーフリンク318として選択することである。別の第3のノードNa(1<=a<=s)が存在し、Hj=Haである場合、より小さい(又はより大きい)ノードIDを有する第3のノードを選択する。具体的には、HjがHaに等しく、IDj<IDaである場合、より小さいIDを有するリンクを選択することにより第3のノードNjへの接続を選択する(あるいは、Hj==Ha及びIDj<IDaの場合、より大きいノードIDを有するものを選択するためにNaへの接続を選択する)。
例示を目的として、リーフリンク318として追加されるべき選択されたノードLとフラッディングトポロジ319 Ft内のノードとの間の合計接続数は、NLcとして示され得る。リーフリンク318の数NLcは、プログラムで制限できる。一例において、NLcは10などの指定数に設定され、これは、リーフノードLとフラッディングトポロジ319 Ft内のノードとの間の最大10個の接続が選択され、フラッディングトポロジ319 Ftに追加されて、強化されたフラッディングトポロジ319 Ftを生成できることを示す。別の例において、NLcは、ネットワーク内のノード311/312の数の指定パーセンテージ(例えば、5パーセント)に設定され、これは、選択されFtに追加されるべきリーフノードとFt内のノードとの間の接続数が、IGPネットワーク300内のノード311/312の数の最大5パーセントであることを示す。例えば、1000個のノード311/31を有するネットワークでは、1000の5%は50である。ゆえに、リーフノードLとフラッディングトポロジ319 Ft内のノードとの間の最大50個のリーフリンク318が選択され、フラッディングトポロジ319 Ftに追加される。
図4は、IGPネットワーク100、200、及び/又は300内のノードなどの、IGPネットワーク内で動作する一例示的なネットワークノード400の概略図である。例えば、ネットワークノード400は、ノード111、211、212、213、311、及び/又は312を実現するために採用できる。さらに、ネットワークノード400は、ネットワークトポロジ219及び/又は319を計算するために採用されてもよい。ネットワークノード400はまた、LSA又はLSPなどのリンクステートメッセージ(例えば、リンクステートメッセージ221)を、そのようなフラッディングトポロジを通じて受信、処理、及び転送して、LSFRを実現し得る。したがって、ネットワークノード400は、本明細書に記載されるように、開示される例/実施形態を実現するのに適する。ネットワークノード400は、下流ポート420、上流ポート450、及び/又はトランシーバユニット(Tx/Rx)410を含み、Tx/Rx410は、ネットワークを通じて上流及び/又は下流にデータを通信するための送信器及び/又は受信器を含む。ネットワークノード400は、データを処理する論理ユニット及び/又は中央処理装置(central processing unit、CPU)を含むプロセッサ430と、データを記憶するメモリ432をさらに含む。ネットワークノード400は、光又は無線通信ネットワークを介したデータの通信のために上流ポート450及び/又は下流ポート420に結合された光対電気(optical-to-electrical、OE)コンポーネント、電気対光(electrical-to-optical、EO)コンポーネント、及び/又は無線通信コンポーネントをさらに含んでもよい。ネットワークノード400は、いくつかの場合、ユーザとの間でデータをやりとりするための入力及び/又は出力(input/output、I/O)デバイスをさらに含んでもよい。
プロセッサ430は、ハードウェア及びソフトウェアにより実現される。プロセッサ430は、1つ以上のCPUチップ、コア(例えば、マルチコアプロセッサとして)、フィールドプログラマブルゲートアレイ(field-programmable gate arrays、FPGA)、特定用途向け集積回路(application specific integrated circuits、ASIC)、及びデジタル信号プロセッサ(digital signal processors、DSP)として実装されてもよい。プロセッサ430は、下流ポート420、Tx/Rx410、上流ポート450、及びメモリ432と通信する。プロセッサ430は、LSFRモジュール414を備える。LSFRモジュール414は、本明細書に記載される開示の実施形態を実現する。具体的には、LSFRモジュール414は、接続性情報に基づいてフラッディングトポロジを構築し得る。LSFRモジュール414は、以下で論じられる方法500、600、及び/又は700によってなど、いくつかの機構を採用することによりフラッディングトポロジを構築してもよい。また、LSFRモジュール414は、ユーザ/システム管理者により指示されたとおりの数のリーフリンクをフラッディングトポロジに追加してもよい。LSFRモジュール414は、フラッディングトポロジをメモリ432に記憶し得る。次いで、LSFRモジュール414は、下流ポート420、Tx/Rx410、及び/又は上流ポート450を採用することにより、フラッディングトポロジを介してIGPネットワークを通じて、OSPF LSA及び/又はIS‐IS LSPなどのリンクステートメッセージを受信及び/又はフラッディングし得る。また、LSFRモジュール414は、以下で図に関連して論じられるように、リンクステートメッセージのケース特有の処理を採用してもよい。例えば、LSFRモジュール414は、起動においてフラッディングトポロジに新しいノードを追加してもよく、リンク/ノード故障の場合にフラッディングトポロジの外部にリンクステートメッセージを転送してもよい。また、LSFRモジュール414は、クリティカル要素の認識を維持し、クリティカル要素故障の場合にリンクステートメッセージの一般的なフラッディングに戻ってもよい。LSFRモジュール414により実現されるこれら及び他の機構は、以下で図に関連してより詳細に論じられる。さらに、LSFRモジュール414は、ネットワークノード400の異なるステートへの変換をもたらす。あるいは、LSFRモジュール414は、メモリ432に記憶されプロセッサ430により実行される命令として(例えば、非一時的媒体に記憶されたコンピュータプログラムプロダクトとして)実装できる。
メモリ432は、ディスク、テープドライブ、ソリッドステートドライブ(solid-state drives)、読取専用メモリ(read only memory、ROM)、ランダムアクセスメモリ(random access memory、RAM)、フラッシュメモリ、三値連想メモリ(ternary content-addressable memory、TCAM)、スタティックランダムアクセスメモリ(static random-access memory、SRAM)等などの1つ以上のメモリタイプを含む。メモリ432は、オーバーフローデータ記憶デバイスとして、プログラムが実行のために選択されたときそのようなプログラムを記憶するため、及びプログラム実行中に読み出された命令及びデータを記憶するために使用され得る。
図5、図6、及び図7は、フラッディングトポロジを構築する例示的な方法を示す。一般に、フラッディングトポロジの構築は、1)最大/最小のノードIDを有するノードなどのルールに従ってノードRを選択すること、2)Rをツリーのルートとして使用してツリーを構築すること、及び3)フラッディングトポロジに機器故障緩和を加えるために、必要に応じてk個(k>=0)のリーフをツリーに接続することを含む。分散モードにおいて、ネットワーク内のノードの各々は、このアルゴリズムを使用してフラッディングトポロジを生成し、ゆえに、フラッディングトポロジは、IGPネットワーク内で分散/フラッディングされない。2つの例示的な機構タイプを以下で論じる。1つの機構タイプは、ノードがLSFRをサポートしているかどうかをチェックすることなく、フラッディングトポロジのツリーを構築する。そのような機構は、ドメイン内の全てのルータがLSFRをサポートすると仮定する。第2の機構タイプは、フラッディングトポロジのツリーを構築する間、各ノードがLSFRをサポートするかどうかを考慮する。そのような機構は、LSFRをサポートするノードをルートノードにより近く配置して、LSFRをサポートするノードをフラッディングトポロジに連続的に接続できるようにする。LSFRのサポートは、Fフラグにおいてシグナリングでき、Fフラグは、IS‐ISルータ能力タイプ長値(type length value、TLV)及び/又はOSPF LSAに含めることができる。例えば、Fフラグは、1に設定されてノード/ルータがLSFRをサポートすることを示し、0に設定されてノード/ルータがLSFRをサポートしないことを示すことができる。次いで、ルートノードは、対応するルールに従って、例えば、(例えば、Fフラグが1に設定されたノードの中で)LSFRもサポートする最大/最小のノードIDを有するノードとして選択できる。
図5は、フラッディングトポロジ219及び/又は319などのフラッディングトポロジを構築する一例示的な方法500のフローチャートである。したがって、方法500は、ノード111、211、212、213、311、312、及び/又は400により採用され得る。方法500は、ノードRと最初に空のフラッディングトポロジFtとを最初に含む候補キュー(candidate queue、Cq)を用いてルートノードRからのツリーを構築する機構である。
ブロック501において、フラッディングトポロジ生成が開始される。例えば、フラッディングトポロジは、ネットワークに変更があるとき再計算できる。別の例として、フラッディングトポロジは、イベントの発生において再計算できる。具体的には、フラッディングトポロジは、クリティカル要素の故障において再計算できる。別の例として、フラッディングトポロジは、再計算を要求するユーザ/システム管理者からのメッセージを受信すると再計算できる。上述のように、分散モードにおいて、方法500は、LSFRが可能なネットワーク内の各ノード上で実質的に同時に開始される。
ブロック503において、フラッディングトポロジのルートノードが例えばID番号に基づいて選択される。選択したルートノードは、空の候補キューに追加される。さらに、フラッディングトポロジは、ブロック503において空で初期化されてもよい。次いで、方法500はブロック505に進み、ブロック505はブロック507、511、及び513と反復ループを形成する。
ブロック505は、どのノードがLSFRをサポートするかを方法500が考慮するかどうかに応じて変わる。方法500が、どのノードがLSFRをサポートするかを考慮しない場合、ブロック505は、候補キューから最初のノードを除去し、除去したノードをフラッディングトポロジに追加する。除去したノードがルートノードでない(例えば、除去したノードの追加の前に、フラッディングトポロジが空でない)場合、除去したノードとフラッディングトポロジに追加された最後のノードとの間のリンクもフラッディングトポロジに含まれる。したがって、ブロック505は、ルートノードから順に候補キューを通して反復し、ノードをフラッディングトポロジ上に配置する。
方法500が、どのノードがLSFRをサポートするかを考慮する場合、ブロック505は、候補キューから、LSFRもサポートする最初のノードを除去する。候補キュー内のいずれのノードもLSFRをサポートしないとき、(LSFRをサポートしない)候補キュー内の最初のノードが候補キューから除去される。次いで、除去されたノードと、該当する場合はフラッディングトポロジにおける前のノードへの対応するリンクが、フラッディングトポロジに追加される。このようにして、ブロック505は、LSFRをサポートするノードをルートノードにより近いフラッディングトポロジ上の位置に配置することができる。これは、LSFRをサポートしないノードをルートノードから遠く離して配置する結果をもたらし、したがって、フラッディングトポロジにわたるリンクステートデータの通信に関してそのようなノードへの依存を低減する。
ブロック507において、ネットワーク内のノードのリストがフラッディングトポロジ上のノードのリストと比較される。全てのノードがフラッディングトポロジに追加されたとき、方法500はブロック509に進み、完成したフラッディングトポロジFTを返す。少なくとも1つのノードがフラッディングトポロジFTに含まれていないとき、方法500はブロック511に進む。
ブロック511は、どのノードがLSFRをサポートするかを方法500が考慮するかどうかに応じて変わる。方法500が、どのノードがLSFRをサポートするかを考慮しない場合、ブロック511は、フラッディングトポロジに追加された最後のノードに接続されるノードXi(i=1,2,3,...n)のリストを決定し、そのようなノードは、まだフラッディングトポロジ内ではない。次いで、そのようなノードXiは、リンクコスト及び/又はリンク/ノード/インターフェースIDによりソートされ得る。リンクコストは、レイテンシ、リンク長、又はリンク最大帯域幅、及び/又は他のリンク能力を示し得る。さらに、リンクコストは、フラッディングトポロジに追加された最後のノードと対応するノードXiとの間のコストを示してもよい。そのようなアプローチは、より低コストのリンクを有するノードXiを候補キューにおいてより高位に配置するために採用され得る。したがって、そのようなより低コストのリンクは、ルートノードのより近くに追加され、フラッディングトポロジにおいてより多く利用される可能性が高い。コストが同一のとき、リンク/ノード/インターフェースIDが採用されて順序を決定することができる。方法500が、どのノードがLSFRをサポートするかを考慮する場合、ブロック511は、コストを決定するときにLSFRサポートを考慮してもよい。例えば、実メトリックが採用されて、LSFRをサポートするノードのコストを決定することができる。さらに、LSFRをサポートしないノードの実メトリックは、最も低コストの非LSFRのメトリックが最も高コストのLSFRのメトリックより高いようにファクタによりスケーリングすることができる。このようにしてコストを採用することにより、LSFRをサポートしないノードは、候補キューの末尾に配置される。これは、LSFRをサポートしないノードをルートノードから可能な限り遠く離して配置することをさらにサポートする。
ブロック513において、ブロック511からのノードXiは、ブロック511でソートされた順に候補キューの末尾に追加される。次いで、方法500はブロック505に戻り、候補キューからの次のノードをフラッディングトポロジへ追加し得る。
上述のアプローチを採用することにより、フラッディングトポロジは、ルートノードで開始するバランスのとれたツリーとして成長する。ルートノードは、最初にフラッディングトポロジに追加される。次いで、ルートノードに接続された各ノード(例えば、第1段(degree)ノード)がフラッディングツリーに追加される。次いで、ルートノードに接続されたノードに接続された各ノード(例えば、第1段ノードに接続された第2段ノード)がフラッディングツリーに追加される。この処理は、全てのノードが対応するリンクと共にフラッディングトポロジに追加されるまで続く。
図6は、フラッディングトポロジ219及び/又は319などのフラッディングトポロジを構築する別の例示的な方法600のフローチャートである。したがって、方法600は、ノード111、211、212、213、311、312、及び/又は400により採用され得る。方法600は、ノードRと最初に空のフラッディングトポロジFtとを最初に含む候補キューを用いてルートノードRからのツリーを構築する機構である。方法600は、ブロック601、603、605、607、609、及び611を採用しており、これらはそれぞれ、ブロック501、503、505、507、509、及び511と実質的に同様である。また、方法600はブロック613を採用しており、これはブロック513と同様である。しかしながら、ブロック613は、ブロック611からのノードXiを、候補キューの先頭にではなく候補キューの末尾に追加する。方法600は、ノードXiをソートするときにそのようなノードがLSFR可能であるかどうかを考慮してもよく、あるいは方法600は、LSFR能力を考慮せずに(例えば、方法500と実質的に同様の方法で)動作してもよい。
したがって、方法600は方法500と実質的に同様だが、フラッディングツリーは別様に成長する。具体的には、ツリーは、最初の分岐に接続された全てのノードがフラッディングトポロジに追加されるまで、ルートノードから最初の分岐に沿って成長する。次いで、(まだ追加されていない)ルートノードから2番目の分岐にアタッチされたノードが、フラッディングトポロジに追加される、等である。LSFR能力が考慮される場合、LSFR可能でないノードは、ブロック611におけるソートにより、シーケンス内でより後方に配置できる。
図7は、フラッディングトポロジ219及び/又は319などのフラッディングトポロジを構築する別の例示的な方法700のフローチャートである。したがって、方法700は、ノード111、211、212、213、311、312、及び/又は400により採用され得る。方法700は、ノードRと最初に空のフラッディングトポロジFtとを最初に含む候補キューを用いてルートノードRからのツリーを構築する機構である。方法700は、ブロック701、703、705、707、及び709を採用しており、これらはそれぞれ、ブロック501、503、505、507、及び509と実質的に同様である。方法700は、ブロック711及び713をさらに含み、これらはそれぞれ、ブロック511及び513と同様である。しかしながら、ブロック711及び713は、ID又はフラッディングトポロジ内の前のノードに戻るコストではなく、ルートノードに戻るコストに基づいて候補キュー内のノードXiを順序づける。
具体的には、ブロック711は、ブロック705でフラッディングトポロジに追加された最後のノードに結合される各ノードXiについて、ルートノードへの最低コストを判定する。LSFR能力を考慮する例において、LSFRをサポートしないノードを横断する経路は増加したコストを割り当られ、そのような経路が除外されること、及び/又は完全なLSFRサポートパスが利用できないときのみフラッディングトポロジ上で採用されることを保証することができる。フラッディングトポロジに追加された最後のノードに結合されるノードXiは、ルートノードに戻る関連最短コストと共に候補キューに追加される。すでにフラッディングトポロジにある別のノードへの接続に起因して、ノードXiが前の反復の間に候補キューに事前に含まれていた場合、ルートノードへの新しいコストがルートノードへの前のコストと比較される。次いで、新しいコストが前のコストより小さい場合、コストが更新される。このアプローチは、各反復の間、ルートノードに戻る最低コストに基づいて、候補キューにおいて各ノードを考慮させる。次いで、候補キューは、ルートノードに戻るコストにより、及び/又はインターフェース/ノード/リンクIDに基づいてソートされる。
したがって、方法700は方法500と実質的に同様であるが、フラッディングツリーは別様に成長する。例えば、方法700のフラッディングトポロジは、ルートノードに戻る最低コストの順序でノードを追加することにより成長する。このアプローチは、フラッディングトポロジを主に最低コストパスで埋めさせる。最低コストパスがフラッディングトポロジに配置され、それにより、そのようなパスが最大量のリンクステートトラフィックで用いられる。したがって、より高コストのパスは、除外されるか、あるいはフルの接続性を保証するための最後の手段としてのみフラッディングトポロジに含まれる。ゆえに、そのようなより高コストのパスの使用、及び/又は非LSFR対応デバイスを横断するパスの使用は、最小量のリンクステートトラフィックに対して用いられる。
例えば、方法500、600、及び700に従って生成されるようなフラッディングトポロジの採用は、特定の問題を結果としてもたらす可能性がある。例えば、ネットワーク内で変更が発生したとき、特に、複数のリンク又はノードの故障が発生したときに、ネットワーク内の各ノードが短時間で完全なフラッディングトポロジを取得することを保証するために、特定の機構が採用され得る。そのような問題を緩和する1つのアプローチは、ノードに冗長なフラッディングトポロジを維持/計算させることである。そのような冗長フラッディングトポロジは、ダウンしたリンク又はノードを除外する変更をフラッディングするための基本フラッディングトポロジを含んでもよい。さらに、冗長フラッディングトポロジは、1つのリンク又はノード故障のため、及び複数のリンク又はノード故障のための情報(フラッディングパスなど)を含んでもよい。採用され得る別の機構は、ルートノードにおける変更を考慮する機構である。例えば、ノードXが、フラッディングツリーを計算するために使用されたルートノードRがダウンし又は到達不能であることを見出したとき、ノードXは、最小/最大のノードIDを有するノードなどの何らかのルールに従って新しいルートノードRを選択する。次いで、ノードXは、上記で論じられたようにフラッディングツリーを計算し、フラッディングツリーに基づいて(例えば、即時に)フラッディングトポロジを構築する。さらに、新しいノードが既存のトポロジに追加され、到達可能であるとき、ノードXは、新しいノードIDが新しい最小/最大のノードIDであるなどのルートノード選択ルールに従って、新しいノードがフラッディングツリーの新しいルートであるかどうかを判定するためにチェックしてもよい。新しいノードが新しいルートノードである場合、ノードXは、新しいノードRをルートとして使用してフラッディングツリーを計算し、5秒などの予め定義された時間間隔の後、フラッディングツリーに基づいてフラッディングトポロジを構築する。
図8は、一例示的なフラッディング機構800の概略図であり、これは、IGPネットワーク100、200、及び/又は300などのIGPネットワークで採用され得る。フラッディング機構800は、第1のノード813に関して採用され、これは、フラッディングトポロジ219及び/又は319などのフラッディングトポロジを採用するIGPネットワーク内の任意のノード(例えば、ノード111、211、212、213、311、312、及び/又は400)であり得る。そのようなフラッディングトポロジは、例えば、方法500、600、及び/又は700に従って生成できる。
説明の目的で図示されるように、ノード813は、フラッディングトポロジから除外されたリンク817と、フラッディングトポロジに含まれるリンク816に結合されている。上述のように、ノード813は、一般に、フラッディングトポロジからリンクステート情報を受信し、そのようなリンクステート情報をフラッディングトポロジに結合された他のインターフェースを通じてフラッディングする。しかしながら、ノード813がフラッディングトポロジに含まれないリンク817からリンクステート情報を受信する特定のケースが生じる可能性がある。例えば、ノード813は、LSFRが可能でないノードからリンクステートメッセージ821を受信することがあり、したがって、リンクステートメッセージ821を全てのインターフェース上でフラッディングした。別の例として、ノード813は、ノード/リンクが誤動作したとき、フラッディングトポロジの外部からリンクステートメッセージ821を受信することがある。したがって、ノード813は、例に応じて種々の措置を講じることができる。一例において、リンクステートメッセージ821が、フラッディングトポロジ上でないリンク817から受信された場合、ノード813は、リンクステートメッセージ821を受信したリンク817を除く、ノード813にアタッチされた(attached)全ての他のリンク816及び817を通じて、ノード813のネイバーにリンクステートメッセージ823及び822を送信する(例えば、リンクステートフラッディングは実ネットワークトポロジに従う)。メッセージ822及び823は、メッセージ821のコピーであることに注意する。別の例において、リンクステートメッセージ821が、フラッディングトポロジ上でないリンク817から受信された場合、ノード813は、ノード813にアタッチされフラッディングトポロジ上に含まれる全てのリンク816を通じてノード813のネイバーにリンクステートメッセージ823を送信する。したがって、ノード813は、フラッディングトポロジから除外されたリンク817を通してリンクステートメッセージ821を受信し、フラッディングトポロジの外部にリンクステートメッセージ822をフラッディングするように構成され得る。
図9は、第1のノード913により第2の新しいノード914を発見すると採用される一例示的なフラッディング機構900の概略図である。フラッディング機構900は、IGPネットワーク100、200、及び/又は300などのIGPネットワークで採用され得る。フラッディング機構900は、ノード913に関して採用され、これは、フラッディングトポロジ219及び/又は319などのフラッディングトポロジを採用するIGPネットワーク内の任意のノード(例えば、ノード111、211、212、213、311、312、及び/又は400)であり得る。そのようなフラッディングトポロジは、例えば、方法500、600、及び/又は700に従って生成できる。フラッディング機構900は、新しいノード914が発見されたとき、フラッディング機構800と共に採用できる。
機構900は、新しいノード914が、すでにネットワーク上で動作している第1のノード913として示されるノード913に接続されたとき、リンクステートフラッディングを調整するアプローチを例示する。機構900は、第1のノード913が新たに接続された新しいノード914との隣接関係を確立したとき、トリガされ得る。図示のように、新たに接続された新しいノード914は、リンク919を介して第1のノード913に直接接続される。第1のノード913は、(例えば、ネットワークに変更があった後に)フラッディングトポロジを再構築できるまで、新しいノード914が対応するリンク919を介してフラッディングトポロジに結合されると仮定する。したがって、リンク919は、第1のノード913のメモリにおいて、フラッディングトポロジリンクとして一時的に(temporally)ラベル付けされる。したがって、リンク919は、フラッディングトポロジが再計算されるまで、新たに接続された新しいノード914をフラッディングトポロジ内のリンクのツリーに加えるために採用される。新しいノード914がフラッディングトポロジに追加された後、第1のノード913は、フラッディングトポロジ内のリンク916を通じてリンクステートメッセージ921を受信し得る。次いで、第1のノード913は、フラッディングトポロジリンク916と新しいノード914へのリンク919の双方を通してリンクステートメッセージ922(メッセージ921のコピー)を転送し得る。リンクステートメッセージ921は、その他の方法でフラッディングトポロジから除外されているリンク917には転送されなくてもよい。
図10は、ノードが誤動作した(例えば、ダウンした)ことを発見すると採用される一例示的なフラッディング機構1000の概略図である。フラッディング機構1000は、IGPネットワーク100、200、及び/又は300などのIGPネットワーク上で動作する。フラッディング機構1000は、第1のノード1013に関して例示されており、これは、フラッディングトポロジ219及び/又は319などのフラッディングトポロジを採用するIGPネットワーク内の任意のノード(例えば、ノード111、211、212、213、311、312、及び/又は400)であり得る。そのようなフラッディングトポロジは、例えば、方法500、600、及び/又は700に従って生成できる。フラッディング機構1000は、ダウンノード1031が誤動作したとき、フラッディング機構800及び/又は900と共に採用できる。
図示のように、機構1000は、ノード1011、ルートノード1012、及び第1のノード1013がリンク1017及びフラッディングトポロジリンク1016により接続されたIGPネットワーク上で動作し、これらはそれぞれ、ノード211、ルートノード212、第1のノード213、リンク217、及びフラッディングトポロジリンク216と実質的に同様である。機構1000は、任意のノード上で動作し得、議論を明瞭にするため第1のノード1013の観点から例示される。機構1000は、第1のノード1013がフラッディングトポロジリンク1016を通じてネイバーノード1033から新しいリンクステートメッセージ1021を受信したときに開始され得る。リンクステートメッセージ1021は、ダウンノード1031が機能していないことを示す。ダウンノード1031はノード1033との間でネイバーであり、ノード1033は第1のノード1013のネイバーでもある。ダウンノード1031はノード1034との間でネイバーであり、ノード1034は第1のノード1013のネイバーではない。
リンクステートメッセージ1021がフラッディングトポロジリンク1016から受信されたとき、第1のノード1013は、リンクステートメッセージ1021を受信したフラッディングトポロジリンク1016を除くフラッディングトポロジリンク1016を通じて、第1のノード1013のネイバーにリンクステートメッセージ1022(メッセージ1021のコピー)を送信する。これは、新しいリンクステートメッセージ1021がフラッディングトポロジを通じて適切に転送されることを保証する。さらに、第1のノード1013は、第1のノード1013及びダウンノード1031の双方に対してネイバーであるノード1033に、リンクステートメッセージ1023(メッセージ1021の別のコピー)を送信する。そのようなリンクステートメッセージ1023は、第1のノード1013をノード1033にアタッチするリンク1017を通じて、そのようなリンク1017がフラッディングトポロジに含まれていなくても送信される。この機構1000は、ノードネイバー1033がリンクステートメッセージ1021に関してダウンノード1031に依存し得ることを考慮する。したがって、第1のノード1013は、ネイバーノード1033にダウンノード1031を通知して、リンクステートメッセージ1021がそのようなノード1033に伝搬されることを保証する。第1のノード1013は、ダウンノード1031の残りのネイバーノード1034にリンクステートメッセージ1021を転送しなくてもよく、なぜならば、ノード1034は第1のノード1013のネイバーではないためである。本機構は、ノード1034のネイバーに依存して、ダウンノード1031が動作不能であることをノード1034に知らせる。このアプローチは、ダウンノード1031が誤動作したとき、ネットワーク内のあらゆるノードが全ての他のノードにコンタクトすることを防止する。
したがって、第1のノード1013は、ネットワーク内の第2のダウンノード1031がダウンしていることを示すリンクステートメッセージ1021(例えば、本明細書で論じられる他のリンクステートメッセージとの区別のため、第3のリンクステートメッセージ)を受信し得る。次いで、第1のノード1013は、フラッディングトポロジから除外され、かつ第1のノード1013とダウンノード1031のネイバーノード1033との間を接続するリンク1017に、リンクステートメッセージ1021をフラッディングし得る。
図11は、ノードが誤動作した(例えば、ダウンした)ことを発見すると採用される別の例示的なフラッディング機構1100の概略図である。フラッディング機構1100は、IGPネットワーク100、200、及び/又は300などのIGPネットワーク上で動作する。フラッディング機構1100は、第1のノード1113に関して例示されており、これは、フラッディングトポロジ219及び/又は319などのフラッディングトポロジを採用するIGPネットワーク内の任意のノード(例えば、ノード111、211、212、213、311、312、及び/又は400)であり得る。そのようなフラッディングトポロジは、例えば、方法500、600、及び/又は700に従って生成できる。フラッディング機構1100は、ダウンノード1131が誤動作したとき、フラッディング機構800及び/又は900と共に採用できる。
図示のように、機構1100は、ノード1111、ルートノード1112、及び第1のノード1113がリンク1117及びフラッディングトポロジリンク1116により接続されたIGPネットワーク上で動作し、これらはそれぞれ、ノード1011、ルートノード1012、第1のノード1013、リンク1017、及びフラッディングトポロジリンク1016と実質的に同様である。さらに、ダウンノード1131が誤動作し、これはダウンノード1031と同様である。また、ネットワークは、第1のノード1113及びダウンノード1131に対してネイバーであるノード1133と、ダウンノード1031のネイバーであり第1のノード1113のネイバーではないノード1134を含む。
機構1100は、機構1000と同様であるが、第1のノード1113がフラッディングトポロジ上でないリンク1117を通じてネイバーノードから新しいリンクステートメッセージ1121を受信したときに採用される。リンクステートメッセージ1121は、ダウンノード1131がダウン/誤動作していることを示す情報を含む。一例において、第1のノード1113は、リンクステートメッセージ1121を受信したリンク1117を除く第1のノード1113に接続された全てのリンク1116及び1117を通じて、全てのネイバーノードにリンクステートメッセージ1121を送信する。そのような応答は、機構800と実質的に同様であり、実ネットワークトポロジに従うことによりリンクステートメッセージ1121をフラッディングできる。そのような例は、第1のノード1113がフラッディングトポロジを通じてリンクステートメッセージを適切に受信していないことを想定し、リンクステートメッセージ1121が可能な限り広範囲に送信されることを保証するための措置を講じる。
別の例において、第1のノード1113は、フラッディングトポロジリンク1116を通じてリンクステートメッセージ1122(メッセージ1121のコピー)をフラッディングする。第1のノード1113は、フラッディングトポロジ上でないリンク1117を通じて、第1の1113ノード及びダウンノード1131の双方に対してネイバーであるノード1133にリンクステートメッセージ1122をさらにフラッディングする。リンクステートメッセージ1122は、リンクステートメッセージ1121を受信したリンク1117上で戻って転送される必要はない。さらに、第1のノード1113は、ダウンノード1131の残りのネイバーノード1134にリンクステートメッセージ1121を転送しなくてもよく、なぜならば、ノード1134は第1のノード1113のネイバーではないためである。そのような例は、フラッディングトポロジに沿ってリンクステート情報を転送し、ダウンノード1131のネイバーに誤動作を知らせることに焦点を合わせる。
いずれの例においても、第1のノード1113は、ネットワーク内の第2のダウンノード1131がダウンしていることを示すリンクステートメッセージ1121(例えば、本明細書で論じられる他のリンクステートメッセージとの区別のため、第3のリンクステートメッセージ)を受信する。次いで、第1のノード1113は、フラッディングトポロジから除外され、かつ第1のノード1113とダウンノード1131のネイバーノード1133との間を接続するリンク1117に、リンクステートメッセージ1122をフラッディングする。
図12は、リンク1231が誤動作した(例えば、ダウンした)ことを発見すると採用される一例示的なフラッディング機構1200の概略図である。フラッディング機構1200は、IGPネットワーク100、200、及び/又は300などのIGPネットワーク上で動作する。フラッディング機構1200は、第1のノード1213に関して例示されており、これは、フラッディングトポロジ219及び/又は319などのフラッディングトポロジを採用するIGPネットワーク内の任意のノード(例えば、ノード111、211、212、213、311、312、及び/又は400)であり得る。そのようなフラッディングトポロジは、例えば、方法500、600、及び/又は700に従って生成できる。フラッディング機構1200は、リンク1231がダウン/誤動作したとき、フラッディング機構800、900、1000、及び/又は1100と共に採用できる。
図示のように、機構1200は、ノード1211、ルートノード1212、及び第1のノード1213がリンク1217及びフラッディングトポロジリンク1216により接続されたIGPネットワーク上で動作し、これらはそれぞれ、ノード1011、ルートノード1012、第1のノード1013、リンク1017、及びフラッディングトポロジリンク1016と実質的に同様である。さらに、ダウンリンク1231が誤動作する。ノード1232は、ダウンリンク1231を介して第1のノード1213に結合されている。ノード1233は、第1のノード1213とダウンリンク1231に隣接するノード1232との双方に対するネイバーである。ノード1234は、(ダウンリンクに隣接する)ノード1232に対するネイバーであるが、第1のノード1213のネイバーではない。
第1のノード1213は、本ケースではフラッディングトポロジリンク1216であるリンクを通じて、本ケースではルートノード1212であるネイバーノードから、より新しいリンクステートメッセージ1221を受信すると、リンク1231がダウンしていることを見出す。第1のノード1213は、最初、ダウンリンク1231がフラッディングトポロジ上であるかどうかを判定するためにチェックする。ダウンリンク1231がフラッディングトポロジ上でない場合、ダウンリンク1231はリンクステートフラッディングに影響を及ぼさず、フラッディングトポロジにわたりリンクステートメッセージ1222(メッセージ1221のコピー)を転送すること以外に措置が講じられる必要はない。図示の例において、ダウンリンク1231はフラッディングトポロジ上であるので、第1のノード1213は、ダウンリンク1231が第1のノード1213の近隣インターフェース上であるかどうかをチェックすることに進む。ダウンリンク1231が近隣インターフェース上でない場合、第1のノード1213は、ダウンリンク1231に隣接するノードが何らかのシグナリングを処理することを可能にでき、したがって、フラッディングトポロジにわたりリンクステートメッセージ1222を転送すること以外に措置を講じないことが可能である。このアプローチは、ネットワーク内のあらゆるノードがダウンリンク1231を検出するとシグナリングすることを防止する。図示の例において、ダウンリンク1231は第1のノード1213に隣接しているので、第1のノード1213は、フラッディングトポロジを再計算できるまで、ダウンリンク1231に依存する可能性のあるノードがリンクステート情報を継続して受信することを保証するために、シグナリングの合理性をとる。この場合、第1のノード1213は、フラッディングトポロジにわたり、リンクステートメッセージ1221を受信したフラッディングトポロジリンク1216を除く各フラッディングトポロジリンク1216に、リンクステートメッセージ1222を送信する。さらに、第1のノード1213は、第1のノード1213とダウンリンク1231に隣接するノード1232との双方に対するネイバーであるノード1233にコンタクトするために、必要に応じて、フラッディングトポロジから除外されたリンク1217を通じてリンクステートメッセージ1223(メッセージ1221の別のコピー)を送信する。さらに、第1のノード1213は、ノード1232の残りのネイバーノード1234にリンクステートメッセージ1221を転送しなくてもよく、なぜならば、ノード1234は第1のノード1213のネイバーではないためである。このアプローチは、リンクステート情報を受信するためにダウンリンク1231に潜在的に依存するノード1233が、壊れたフラッディングトポロジにも関わらず、そのようなリンクステート情報を継続して受信することを可能にする。
したがって、第1のノード1213は、機構1200を採用することにより、ネットワーク内のリンク1231(例えば、第1のリンク)がダウンしていることを示すリンクステートメッセージ1221(例えば、本明細書で論じられる他のリンクステートメッセージとの区別のため、第4のリンクステートメッセージ)を受信することができる。第1のノード1213は、第1のリンク1213がフラッディングトポロジ内にあること、及び第1のリンク1231が第1のノード1213に接続されていることを判定することができる。判定に基づき、次いで、第1のノード1213は、第1のリンクに隣接するノード1232にさらに接続するネイバーに接続するリンク1216及び/又は1217に、リンクステートメッセージ1221を送信することができる。
既存の/古いフラッディングトポロジ上のリンク1231がダウンしているか、又は(例えば、機構1000及び1100で論じられるように)ノードがダウンしているとき、その後すぐに新しいフラッディングトポロジが生成されることに留意されたい。機構1000、1100、及び/又は1200は、新しいフラッディングトポロジがノードにより計算及び採用できるまで、既存のフラッディングトポロジが動作し続けることを可能にする。上述の機構1000、1100、及び1200は、ネットワークトポロジが誤動作により複数の孤立したフラッディングトポロジに分割されない限り、リンク又はノードがダウンしたときにネットワークが機能し続けることを可能にする。クリティカルインターフェースは、以下で論じられるようなシナリオを扱うために、メモリに保存することができる。
図13は、フラッディングトポロジ1319内にクリティカルインターフェース1335を有する一例示的なIGPネットワーク1300の概略図である。IGPネットワーク1300は、IGPネットワーク100、200、及び/又は300と実質的に同様である。IGPネットワーク1300はノード1311及びルートノード1312を含み、これらはノード111、211、212、213、311、312、及び/又は400と同様でもよい。IGPネットワーク1300のフラッディングトポロジ1319は、フラッディングトポロジ219及び/又は319と同様でもよい。そのようなフラッディングトポロジ1319は、例えば、方法500、600、及び/又は700に従って生成できる。ノード1311及びルートノード1312は、フラッディング機構800、900、1000、1100、及び/又は1200を採用してもよい。
フラッディングトポロジ1319を計算すると、ノード1311及びルートノード1312は、フラッディングトポロジ1319内の任意のクリティカルインターフェース1335の認識を維持する。クリティカルインターフェース1335は、除去された場合にフラッディングトポロジ1319を2つ以上の接続されていないリンクトポロジに分割することになる、フラッディングトポロジ1319上の任意のインターフェース(例えば、リンク又はノード)である。図示の例において、フラッディングトポロジ1319は、フラッディングトポロジリンクの複数ループを含む。ループ内のフラッディングトポロジリンクが除去されたとき、フラッディングトポロジ1319は、依然として、ループのうち損傷のない部分を通してループ上の全てのノードにリンクステート情報を転送することができる。したがって、そのようなリンクはクリティカルインターフェースではない。しかしながら、クリティカルインターフェース1335がフラッディングトポロジ1319から除去された場合、フラッディングトポロジ1319は、第1のツリー1341と第2のツリー1342に分割される。クリティカルインターフェース1335がない場合、フラッディングトポロジ1319のリンクが2つのツリーを接続しないことになるので、第1のツリー1341と第2のツリー1342はリンクステート情報を通信することができない。
クリティカルインターフェース1335は、フラッディングトポロジ1319の計算中/計算後に各ノード1311/1312で決定され、メモリに保存され得る。クリティカルインターフェース1335の数は、上記で論じられたようにより多くのリーフリンクを追加することにより低減できる。クリティカルインターフェース1335に関連するリンク又はノードが誤動作したとき、ノード1311/1312は(リンクステートメッセージを介した誤動作の通知に対して)、新しいフラッディングトポロジ1319が生成されてクリティカルインターフェースの故障に対処し、全てのノード1311/1312を再接続することができるまで、全てのインターフェース上でのリンクステートメッセージのフラッディングに戻ってもよい。
したがって、ノード1312/1311は、クリティカルインターフェース1335を決定し得、クリティカルインターフェース1335は、その故障がフラッディングトポロジ1319を分割するリンク又はノードである。ノード1312/1311は、クリティカルインターフェース1335が故障したとき、フラッディングトポロジ1319の使用を停止することができる。
図14は、LSFRのノードサポートを示すための一例示的なOSPF v2符号化1400の概略図である。例えば、IGPネットワーク100、200、300、及び/又は1300などのIGPネットワークにおける、ノード111、211、212、213、311、312、400、1311、1312、及び/又は1333などのノードが、符号化1400を採用して、ノードがLSFRをサポートするかどうかを示してもよい。そのような情報は、例えば、方法500、600、及び/又は700に基づいてフラッディングトポロジを構築するとき、他のノードにより採用されてもよい。LSFRを採用し、したがって符号化1400を採用するOSPF v2ノードは、フラッディング機構800、900、1000、1100、及び/又は1200をさらに採用してもよい。
符号化1400を採用して、OSPF v2と互換性のあるIGPネットワークにLSFRを組み込むことができる。具体的には、符号化1400は、OSPF v2 LSAに含めることができる。符号化1400は、LSAが発信されてからの時間(例えば、秒単位)を示すために設定されるLSエイジフィールド1401を含む。LSAエイジフィールド1401は、16ビット長でもよく、ビット0からビット15にわたってもよい。符号化1400は、LSAにより記述されるようにIGPネットワーク内のルーティングドメインの一部でサポートされる任意的な能力を示すデータを含み得るオプションフィールド1402をさらに含む。オプションフィールド1402は、8ビット長でもよく、ビット16からビット23にわたってもよい。符号化1400は、LSAのタイプを示すために設定できるLSタイプフィールド1403をさらに含む。例えば、LSタイプフィールド1403を1に設定して、LSAがルータ(例えばノード)LSAであることを示すことができる。LSタイプフィールド1403は、8ビット長でもよく、ビット24からビット31にわたってもよい。符号化1400は、LSAにより記述されているインターネット環境の部分を識別するデータを含むリンクステートIDフィールド1404をさらに含む。例えば、リンクステートIDフィールド1404は、LSAがルータのインターフェースの収集されたステートを記述していることを示すために設定できる。リンクステートIDフィールド1404は、32ビット長でもよく、ビット0からビット31にわたってもよい。符号化1400は、LSAを発信したルータのルータIDを含むアドバタイジングルータフィールド1405をさらに含む。アドバタイジングルータフィールド1405は、32ビット長でもよく、ビット0からビット31にわたってもよい。符号化1400は、LSAを識別するためのデータを含むLSシーケンス番号フィールド1406をさらに含む。LSシーケンス番号フィールド1406のデータは、古い又は重複したLSAを検出するために採用できる。LSシーケンス番号フィールド1406は、32ビット長でもよく、ビット0からビット31にわたってもよい。符号化1400は、エラーチェックをサポートするためのチェックサムデータを含むLSチェックサムフィールド1407をさらに含む。LSチェックサムフィールド1407は、16ビット長でもよく、ビット0からビット15にわたってもよい。符号化1400は、LSAの長さをバイト単位で示すデータを含むLS長フィールド1408をさらに含む。LS長フィールド1408は、16ビット長でもよく、ビット16からビット301にわたってもよい。
符号化1400は、LSAを開始するルータの種々の特性を示すために採用される種々のフラグをさらに含む。符号化は、ビット位置5に仮想(virtual、V)フラグ1421を含むことができ、これは、ルータが1つ以上の隣接仮想リンクに対するエンドポイントであるときを示すために設定できる。符号化は、ビット位置6に外部(external、E)フラグ1422をさらに含むことができ、これは、ルータが自律システム境界ルータであるときを示すために設定できる。符号化は、ビット位置7に境界(border、B)フラグ1423をさらに含むことができ、これは、ルータが境界エリアルータであるときを示すために設定できる。
符号化1400は、Fフラグ1431をさらに含む。Fフラグ1431は、1ビットでもよく、ビット位置8に配置されてもよい。Fフラグ1431は、LSAを開始したルータが(例えば、本明細書で論じられるLSFR機構に従って)フラッディング低減をサポートすることを示すために設定(例えば、1に設定)できる。また、Fフラグ1431のビット位置は、デフォルトで未設定にされる(unset)(例えば、ゼロに設定される)ことが可能であり、それにより、LSFRをサポートしないルータを、LSAを受信したルータにより識別できる。したがって、符号化1400により、リンクステートメッセージは、フラッディングトポロジを介してリンクステートフラッディング低減をサポートするネットワーク内のノードを示すために設定されるFフラグを含むことができる。
符号化1400は、LSAにより記述されるリンクの数を示すリンク数フィールド1409をさらに含む。リンク数フィールド1409は、16ビット長でもよく、ビット位置16からビット位置31にわたってもよい。符号化1400は、LSAにより記述される各リンクのためのリンクIDフィールド1410をさらに含む。リンクIDフィールド1410は、対応するリンクが接続されているオブジェクト(例えばノード)を識別するIDを含む。リンクIDフィールド1410は、32ビット長でもよく、ビット0からビット31にわたってもよい。符号化1400は、LSAにより記述される各リンクのためのリンクデータフィールド1411をさらに含む。リンクデータフィールド1411は、対応するリンク/インターフェースに関連するアドレス情報(例えば、IPアドレス情報)を含む。リンクデータフィールド1411は、32ビット長でもよく、ビット0からビット31にわたってもよい。
符号化1400は、LSAにより記述される各リンクのためのタイプフィールド1412をさらに含む。タイプフィールド1412は、ルータリンクを記述するデータを含む。タイプフィールド1412は、8ビット長でもよく、ビット0からビット7にわたってもよい。符号化1400は、LSAにより記述される各リンクのためのサービスタイプ(type of service、ToS)数フィールド1413をさらに含む。ToS数フィールド1413は、LSAに含まれる対応するリンクのToSメトリックの数を示す。ToS数フィールド1413は、8ビット長でもよく、ビット8からビット15にわたってもよい。符号化1400は、対応するリンクを使用するコスト(例えば、ルーティングコスト/レイテンシ等)を含むメトリックフィールド1414をさらに含む。メトリックフィールド1414は、16ビット長でもよく、ビット16からビット31にわたってもよい。符号化1400は、対応するリンクに関連するToS情報を示すToSフィールド1415及びToSメトリックフィールド1416をさらに含んでもよい。Tosフィールド1415は、ToSメトリックフィールド1416により参照されるサービスタイプを示し、8ビット長でもよく、ビット位置0からビット位置7にわたってもよい。Tosメトリックフィールド1416は、リンクに対するToS特有の情報を示してもよく、16ビット長でもよく、ビット16からビット31にわたってもよい。
図15は、LSFRのノードサポートを示すための一例示的なOSPF v3符号化1500の概略図である。例えば、IGPネットワーク100、200、300、及び/又は1300などのIGPネットワークにおける、ノード111、211、212、213、311、312、400、1311、1312、及び/又は1333などのノードが、符号化1500を採用して、ノードがLSFRをサポートするかどうかを示してもよい。そのような情報は、例えば、方法500、600、及び/又は700に基づいてフラッディングトポロジを構築するとき、他のノードにより採用されてもよい。LSFRを採用し、したがって符号化1500を採用するOSPF v3ノードは、フラッディング機構800、900、1000、1100、及び/又は1200をさらに採用してもよい。
符号化1500を採用して、OSPF v3と互換性のあるIGPネットワークにLSFRを組み込むことができる。具体的には、符号化1500は、OSPF v3 LSAに含めることができる。符号化1500は、LSエイジフィールド1501、LSタイプフィールド1503、リンクステートIDフィールド1504、アドバタイジングルータフィールド1505、LSシーケンス番号フィールド1506、LSチェックサムフィールド1507、及びLS長フィールド1508を含んでもよく、これらはそれぞれ、LSエイジフィールド1401、LSタイプフィールド1403、リンクステートIDフィールド1404、アドバタイジングルータフィールド1405、LSシーケンス番号フィールド1406、LSチェックサムフィールド1407、及びLS長フィールド1408と実質的に同様でもよい。LSタイプフィールド1403とは異なり、LSタイプフィールド1503は16ビット長であり、ビット位置16からビット位置31にわたる。
符号化1500は、LSAを開始したルータによりサポートされる任意的な能力を示すために設定できるオプションフィールド1509をさらに含む。オプションフィールド1509は、32ビット長でもよく、ビット0からビット31にわたってもよい。オプションフィールド1509は、LSAを開始したルータの種々の特性を示すために採用される種々のフラグを含む。オプションフィールド1509は、Vフラグ1521、Eフラグ1522、及びBフラグ1523を含んでもよく、これらはそれぞれ、Vフラグ1421、Eフラグ1422、及びBフラグ1423と実質的に同様でもよい。オプションフィールド1509は、LSAを開始したルータがワイルドカードマルチキャストレシーバであることを示すために設定され得るワイルドカード(wildcard、W)フラグ1524をさらに含んでもよい。Wフラグ1524は、1ビット長でもよく、ビット位置4に配置されてもよい。
オプションフィールド1509は、Fフラグ1531をさらに含む。Fフラグ1531は、1ビットでもよく、ビット位置8に配置されてもよい。Fフラグ1531は、LSAを開始したルータが(例えば、本明細書で論じられるLSFR機構に従って)フラッディング低減をサポートすることを示すために設定(例えば、1に設定)できる。Fフラグ1531のビット位置は、デフォルトで未設定にされる(例えば、ゼロに設定される)ことが可能であり、それにより、LSFRをサポートしないルータを、LSAを受信したルータにより識別できる。したがって、符号化1500により、リンクステートメッセージは、フラッディングトポロジを介してリンクステートフラッディング低減をサポートするネットワーク内のノードを示すために設定されるFフラグを含むことができる。
符号化1500は、LSAにより記述される各リンクのためのタイプフィールド1512及びメトリックフィールド1514をさらに含んでもよい。タイプフィールド1512及びメトリックフィールド1514はそれぞれ、タイプフィールド1412及びメトリックフィールド1414と実質的に同様でもよい。符号化1500は、LSAに記述される各リンクのためのインターフェースIDフィールド1510、ネイバーインターフェースIDフィールド1515、及びネイバールータIDフィールド1516をさらに含んでもよい。インターフェースIDフィールド1510、ネイバーインターフェースIDフィールド1515、及びネイバールータIDフィールド1516は各々、32ビット長で、ビット位置0からビット位置31にわたってもよい。インターフェースIDフィールド1510は、記述されているインターフェース(例えば、リンク)に割り当てられたIDを示す。ネイバーインターフェースIDフィールド1515は、記述されているリンクに結合された近隣ルータのインターフェースIDを示す。ネイバールータIDフィールド1516は、記述されているリンクに結合された近隣ルータのルータIDを示す。
図16は、LSFRのノードサポートを示すための一例示的なIS‐IS符号化1600の概略図である。例えば、IGPネットワーク100、200、300、及び/又は1300などのIGPネットワークにおける、ノード111、211、212、213、311、312、400、1311、1312、及び/又は1333などのノードが、IS‐IS符号化1600を採用して、ノードがLSFRをサポートするかどうかを示してもよい。そのような情報は、例えば、方法500、600、及び/又は700に基づいてフラッディングトポロジを構築するとき、他のノードにより採用されてもよい。LSFRを採用し、したがって符号化1600を採用するIS‐ISノードは、フラッディング機構800、900、1000、1100、及び/又は1200をさらに採用してもよい。
符号化1600を採用して、IS‐ISと互換性のあるIGPネットワークにLSFRを組み込むことができる。具体的には、符号化1600は、IS‐IS LSPにTLVとして含めることができる。符号化1600は、符号化がIS‐ISルータ対応TLVであることを示すために設定されるタイプフィールド1601を含む。例えば、タイプフィールド1601は、8ビット長でもよく、ビット位置0からビット位置7にわたってもよく、242に設定されてもよい。符号化1600は、長さフィールド1602を含み、これは、8ビット長でもよく、ビット位置8からビット位置15にわたってもよく、TLVの長さを示すために設定されてもよい。長さフィールド1602は、5~255の間のこれらを含む値に設定できる。符号化1600は、ルータIDフィールド1603をさらに含み、これは、32又は48ビット長であり、ビット位置16からビット位置15又は31ビットにわたってもよく、リンクステートメッセージを開始したルータのIDを含む。符号化1600は、リンクステートメッセージを開始したルータの能力を示すフラグ1605のセットをさらに含む。フラグ1605は、8ビット長でもよく、ビット16からビット23にわたってもよい。フラグ1605は、ビット位置22に配置され得る脱ループ(de-looping)(D)フラグ1621を含み、TLVがIS‐ISシステム内のレベル間でリークされ得るかどうかを示すために設定されてもよい。フラグ1605は、ビット位置23に配置され得るセット(S)フラグ1622をさらに含み、TLVがIS‐ISネットワークドメイン全体にわたりフラッディングしているか又は特定のIS‐ISネットワークレベルに含まれるかを示すために設定されてもよい。
フラグ1605は、Fフラグ1631をさらに含み、これは、ビット位置21に配置されてもよい。Fフラグ1631は、LSPを開始したルータが(例えば、本明細書で論じられるLSFR機構に従って)フラッディング低減をサポートすることを示すために設定(例えば、1に設定)できる。Fフラグ1631のビット位置は、デフォルトで未設定にされる(例えば、ゼロに設定される)ことが可能であり、それにより、LSFRをサポートしないルータを、LSPを受信したルータにより識別できる。したがって、符号化1600により、リンクステートメッセージは、フラッディングトポロジを介してリンクステートフラッディング低減をサポートするネットワーク内のノードを示すために設定されるFフラグを含むことができる。
符号化1600は、LSPに関連するさらなる情報を含む1つ以上の任意的なサブTLV1606をさらに含んでもよい。
図17は、IGPネットワークにおけるLSFRを管理するための一例示的なLSFR制御TLV符号化1700の概略図である。例えば、IGPネットワーク100、200、300、及び/又は1300などのIGPネットワークにおける、ノード111、211、212、213、311、312、400、1311、1312、及び/又は1333などのノードが、LSFR制御TLV符号化1700を受信して、ネットワークにおけるLSFRの実装を制御してもよい。具体的には、LSFR制御TLV符号化1700は、ユーザ/システム管理者がLSFR及び関連するフラッディングトポロジの動作モードを選択及し及び/又は切り替えることを可能にし得る。LSFR制御TLV符号化1700は、符号化1400、1500、及び/又は1600などのリンクステートメッセージの一部として採用されてもよい。そのような情報は、例えば、方法500、600、及び/又は700に基づいてフラッディングトポロジを構築するとき、ノードにより採用されてもよい。LSFR制御TLV符号化1700は、さらに、LSFRフラッディング機構800、900、1000、1100、及び/又は1200をいつ採用すべきかをノードに示してもよい。
LSFR制御TLV符号化1700は、TLVをLSFR制御TLVとして識別するデータを含み得る情報TLVタイプフィールド1701を採用する。TLVタイプフィールド1701は、16ビット長でもよく、ビット位置0からビット位置15にわたってもよい。LSFR制御TLV符号化1700は、LSFR制御TLVの長さを示すデータを含むTLV長フィールド1702をさらに採用する。TLV長フィールド1702は、16ビット長でもよく、ビット位置16からビット位置31にわたってもよい。
LSFR制御TLV符号化1700は、動作(OP)フィールド1731をさらに採用し、これは、3ビット長でもよく、ビット位置0からビット位置2にわたってもよい。OPフィールド1731は、LSFR可能であるノードのLSFR動作モードを選択及び/又は変更するために採用できる。OPフィールド1731は、ノードがフラッディング低減を実行すべきであることを示すデータを含むことができ、あるいはノードがフラッディングトポロジを使用せずに通常のフラッディングにロールバックすべきであることを示すデータを含んでもよい。したがって、LSFR制御TLV符号化1700により、リンクステートメッセージは、フルネットワークフラッディングからリンクステートフラッディング低減に切り替えるために設定されるOPフィールドを含むことができる。例えば、ユーザ/システム管理者は、OPフィールド1731を採用して、必要に応じてLSFRをオン及び/又はオフにしてもよい。
LSFR制御TLV符号化1700は、モード(MOD)フィールド1732をさらに採用し、これは、3ビット長でもよく、ビット位置3からビット位置5にわたってもよい。LSFRは、集中モード、分散モード、及び静的構成モードを含む3つのモードを含んでもよく、MODフィールド1732は、モード間の切り替えをシグナリングするために採用されてもよい。例えば、MODフィールド1732は、集中モードに設定でき、これは、IGPネットワークに、リーダー及び/又はバックアップリーダーを選択するように指示する。次いで、リーダーはフラッディングトポロジを計算し、フラッディングトポロジを他のノードにフラッディングする。あらゆるノードがリーダーからのフラッディングトポロジを受信し、使用する。MODフィールド1732はまた、分散モードに設定でき、これは、IGPネットワーク内のノードに、上記で論じられたように共通アルゴリズムを採用することによりフラッディングトポロジを計算するように指示する。MODフィールド1732はまた、静的構成モードに設定でき、これは、IGPネットワーク内のノードに、構成されたフラッディングトポロジを採用するように指示する。したがって、LSFR制御TLV符号化1700により、リンクステートメッセージは、集中リンクステートフラッディング低減、分散リンクステートフラッディング低減、又は静的構成リンクステートフラッディング低減を示すために設定されるMODフィールド1732を含むことができる。
LSFR制御TLV符号化1700は、アルゴリズムフィールド1733をさらに採用し、これは、8ビット長でもよく、ビット位置6からビット位置13にわたってもよい。アルゴリズムフィールド1733は、集中及び/又は分散モードにおいてノードにより使用されるべきフラッディングトポロジを計算するためのアルゴリズム(例えば、方法500、600、及び/又は、700)を示すデータを含んでもよい。したがって、LSFR制御TLV符号化1700により、リンクステートメッセージは、フラッディングトポロジにおけるリンクのツリーを構築するためのアルゴリズムを示すために設定されるアルゴリズムフィールド1733を含むことができる。
符号化1700は、LSFR実装に関連するさらなる情報を含む1つ以上の任意的なサブTLV1706をさらに含んでもよい。
図18は、集中LSFRを分散LSFRと統合するための一例示的なTLV符号化1800の概略図である。具体的には、TLV符号化1800は、LSFR制御TLV符号化1700と関連して、例えば、MODフィールド1732が集中モードに設定されているときに使用されてもよい。TLV符号化1800は、情報TLVタイプフィールド1801及びTLV長フィールド1802を含み、これらはそれぞれ、情報TLVタイプフィールド1701及びTLV長フィールド1702と実質的に同様である。TLV符号化1800は、プライオリティフィールド1803をさらに含み、これは、8ビット長でもよく、ビット位置0からビット位置7にわたってもよい。プライオリティフィールド1803は、集中モードにおいてリーダーになるために、TLVを発したノードのプライオリティを示すために採用されてもよい。符号化1800は、LSFR実装に関連するさらなる情報を含む1つ以上の任意的なサブTLV1806をさらに含んでもよい。そのようなサブTLV1806は、リーダーサブTLV及び/又はバックアップリーダーサブTLVを含んでもよく、これらはそれぞれ、リーダー及び/又はバックアップリーダーを選択するための方法/アルゴリズムを含む。
図19は、IGPネットワークにおいてLSFR機構を動作させる一例示的な方法1900のフローチャートである。方法1900は、IGPネットワーク100、200、300、及び/又は1300などのIGPネットワークにおける、ノード111、211、212、213、311、312、400、1311、1312、及び/又は1333などのノードにより採用されてもよい。方法1900は、OSPF及び/又はIGPネットワークで採用されてもよく、したがって、符号化1400、1500、及び/又は1600と関連して採用されてもよい。方法1900は、例えば、方法500、600、及び/又は700を採用することにより、フラッディングトポロジを構築するために採用されてもよい。方法1900は、さらに、フラッディング機構800、900、1000、1100、及び/又は1200などのフラッディング機構を採用してもよい。方法1800は、さらに、LSFR制御TLV符号化1700の受信により開始されてもよい。
方法1900は、IGPネットワーク内の任意のノードで実現でき、これは、議論を明瞭にする目的で第1のノードとして示される。ブロック1901において、第1のノードで、ネットワーク内の複数のノードの接続性を示すデータが受信される。そのようなデータは、リンクステートデータを含み、例えば、OSPF LSA又はIS‐IS LSPなどのリンクステートメッセージの一般的なフラッディングに従って受信できる。
ブロック1903で、第1のノード(及び、ネットワーク内の全てのノード)が、接続性に基づいてフラッディングトポロジを構築する。フラッディングトポロジは、ネットワークノードのうち1つをルートノードとして選択し、ルートノードをネットワーク内の他のノードに接続するフラッディングトポロジリンクのツリーを構築することにより構築できる。例えば、ブロック1903は、方法500、600、及び/又は700を採用することによりフラッディングトポロジを構築してもよい。フラッディングトポロジの構築は、周期的に、及び/又はリンク/ノードの誤動作、クリティカルインターフェースの誤動作などの条件の発生に対して生じてもよい。上記で論じられたように、フラッディングトポロジは、ノードのLSFR能力に基づいて、例えば、Fフラグを採用したリンクステートメッセージにおけるアドバタイジングに応じて構築できる。さらに、第1のノード(及び全てのノード)は、(例えば、リンクステートメッセージ内の)LSFR制御TLV符号化1700に示されるアルゴリズムに従ってフラッディングトポロジを構築することができる。
任意のブロック1905において、第1のノードは、ツリーに追加すべきリーフリンクの数を指定する要求を受信してもよい。要求は、例えば、ユーザ/ネットワーク管理者により開始される、リンクステートメッセージに含まれるTLVでもよい。要求が受信された場合、第1のノード(及び、ネットワーク内の全てのノード)は、要求で指定された数のリーフリンクをフラッディングトポロジに追加する。そのようなリーフリンクは、例えば、上記で図3に関連して論じられたように、ネットワーク内のノード間に追加される。例えば、リーフリンクは、クリティカルインターフェースの数を低減するために追加できる、リンクID/インターフェースID/ノードIDに基づいて追加できる、等である。そのようなリーフリンクを追加する前、フラッディングトポロジにおけるリンクのツリーは、ネットワーク内のノード全てをルートノードに接続するための最小数のリンクを含んでもよい。リーフリンクは、冗長なリンクステートメッセージ通信をわずかに増加させることを犠牲にして、フラッディングトポロジの信頼性を高め得る。
ブロック1907において、第1のノードが、フラッディングトポロジをネットワーク内の他のノードに送信することなく、フラッディングトポロジをメモリに記憶する。このアプローチは、フラッディングトポロジが予め選択されたアルゴリズムに従って各ノードで作成されることを保証し、これは、次に、フラッディングトポロジに関連するリンクステートメッセージフラッディングを低減する。
ブロック1909において、第1のノードが、フラッディングトポロジを通じてリンクステートメッセージをフラッディングする。さらに、第1のノードは、フラッディングトポロジの外部にリンクステートメッセージをフラッディングしない。
任意のブロック1911において、第1のノードは、リンク/ノード状態の変化に基づいてフラッディング手順を変更してもよい。例えば、第1のノードは、ネットワークで発生する変更のタイプに応じて、フラッディング機構800、900、1000、1100、及び/又は1200を採用してもよい。具体的な例として、第1のノードは、新たに接続されたノードから第1のリンクステートメッセージを受信することができ、新たに接続されたノードは、リンクを介して第1のノードに直接接続されている。次いで、第1のノードは、フラッディングトポロジが再計算されるまで、フラッディングトポロジにおけるリンクのツリーに、新たに接続されたノードを加えることができる。別の例として、第1のノードは、フラッディングトポロジから除外されたリンクを通して第2のリンクステートメッセージを受信することができる。次いで、第1のノードは、フラッディングトポロジの外部に第2のリンクステートメッセージをフラッディングすることができる。別の例として、第1のノードは、ネットワーク内の第2のノードがダウンしていることを示す第3のリンクステートメッセージを受信することができる。次いで、第1のノードは、フラッディングトポロジから除外され、かつ第1のノードと第2のノードのネイバーとの間を接続するリンクに、第3のリンクステートメッセージをフラッディングすることができる。別の例として、第1のノードは、ネットワーク内の第1のリンクがダウンしていることを示す第4のリンクステートメッセージを受信することができる。第1のノードは、第1のリンクがフラッディングトポロジ内にあり、第1のリンクが第1のノードに接続されていることを判定することができる。判定に基づき、第1のノードは、第1のリンクに隣接するノードをさらに接続するネイバーに接続するリンクに、第4のリンクステートメッセージを送信することができる。別の例として、第1のノードは、ネットワーク内のクリティカルインターフェースを決定することができ、クリティカルインターフェースは、その故障がフラッディングトポロジを分割するリンク又はノードである。第1のノードは、クリティカルインターフェースが故障したとき、フラッディングトポロジの使用を停止することができる。
図20は、IGPネットワークにおいてLSFR機構を動作させるデバイス2000の一実施形態である。例えば、デバイス2000は、方法1900を実現するために採用されてもよい。さらに、デバイス2000は、IGPネットワーク100、200、300、及び/又は1300などのIGPネットワークにおける、ノード111、211、212、213、311、312、400、1311、1312、及び/又は1333などのノードとして採用されてもよい。デバイス2000は、OSPF及び/又はIGPネットワークで採用されてもよく、したがって、符号化1400、1500、及び/又は1600と関連して採用されてもよい。デバイス2000は、例えば、方法500、600、及び/又は700を採用することにより、フラッディングトポロジを構築するために採用されてもよい。デバイス2000は、さらに、フラッディング機構800、900、1000、1100、及び/又は1200などのフラッディング機構を採用してもよい。デバイス2000は、さらに、LSFR制御TLV符号化1700の受信により制御されてもよい。
デバイス2000は、受信モジュール2001を含み、これは、第1のノードを含むネットワーク内の複数のノードの接続性を示すデータを受信する手段である。デバイス2000は、フラッディングトポロジ構築モジュール2003を含み、これは、接続性に基づくフラッディングトポロジを、ノードのうち1つをルートノードとして選択し、ルートノードをネットワーク内のノードに接続するリンクのツリーを構築することにより構築する手段である。デバイス2000は、記憶モジュール2005を含み、これは、フラッディングトポロジをネットワーク内の複数のノードに送信することなくフラッディングトポロジを記憶する手段である。デバイス2000は、フラッディングモジュール2007をさらに含み、これは、フラッディングトポロジを通じてリンクステートメッセージをフラッディングする手段である。
一実施形態において、ネットワーク内の第1のノードが、第1のノードを含むネットワーク内の複数のノードの接続性を示すデータを受信する受信手段を含む。第1のノードは、第1のノードのプロセッサ手段により、接続性に基づくフラッディングトポロジを、ノードのうち1つをルートノードとして選択することにより、ルートノードをネットワーク内のノードに接続するリンクのツリーを構築することにより、フラッディングトポロジをネットワーク内の複数のノードに送信することなくフラッディングトポロジをメモリに記憶することにより、及びフラッディングトポロジを通じてリンクステートメッセージをフラッディングすることにより、構築する構築手段をさらに含む。
第1のコンポーネントは、第1のコンポーネントと第2のコンポーネントとの間のライン、トレース、又は別の媒体を除き、介在するコンポーネントが存在しないとき、第2のコンポーネントに直接結合される。第1のコンポーネントは、第1のコンポーネントと第2のコンポーネントとの間にライン、トレース、又は他の媒体以外の介在するコンポーネントが存在するとき、第2のコンポーネントに間接的に結合される。用語「結合される」及びその変形は、直接結合及び間接結合の双方を含む。用語「約」の使用は、別段示されない限り、その後に続く数の±10%を含む範囲を意味する。
本開示においていくつかの実施形態が提供されたが、開示されたシステム及び方法は、本開示の主旨又は範囲から逸脱することなく多くの他の特定の形態で具現化されてもよいことが理解され得る。本例は、限定的なものでなく例示的なものとみなされるべきであり、その意図は、本明細書で与えられる詳細に限定されるべきではない。例えば、種々の要素又はコンポーネントが別のシステムと組み合わせられ、又は統合されてもよく、あるいは、特定の特徴が省略され、又は実現されなくてもよい。
さらに、様々な実施形態において個別又は別個に記載及び例示された手法、システム、サブシステム、及び方法は、本開示の範囲から逸脱することなく他のシステム、コンポーネント、手法、又は方法と組み合わせられ、あるいは統合されてもよい。他の変更、置換、及び改変の例が当業者により確認可能であり、本明細書に開示された主旨及び範囲から逸脱することなくなされ得る。