(57)【特許請求の範囲】
【請求項１】
パケット交換機のために、転送テーブルを生成する方法であって、
パケット交換機の転送テーブルから、前記転送テーブル内の複数のルーティングエントリの各初期セットに各々対応する複数の多重径路グループを特定するステップを備え、各ルーティングエントリは、前記パケット交換機の出口ポートを特定し、前記特定された多重経路グループは、予め定めされたエントリ数を超える数の転送エントリを有しており、
ネットワークトラフィックの重要度に相当するスコアを取得するステップと、
前記スコアに基づいて、前記複数の多重径路グループのうち１つ以上の多重径路グループのために、各多重径路グループに対応する前記複数のルーティングエントリの初期セットよりも少ないルーティングエントリを有する少なくとも１つのルーティングエントリ置換セットを生成するステップと、
トラフィック低減コストメトリックに基づいて、前記複数の多重径路グループのうち異なる多重径路グループに各々対応する１つ以上のルーティングエントリ置換セットを選択するステップとを備え、前記トラフィック低減コストメトリックは、前記対応するルーティングエントリ初期セットの代わりに、前記１つ以上のルーティングエントリ置換セットの各々を用いてもたらされるネットワーク性能の潜在変化の測定値を表わし、
選択された各ルーティングエントリ置換セットを用いて、前記パケット交換機の前記転送テーブルにおいて、前記選択されたルーティングエントリ置換セットに対応する各多重径路グループの前記ルーティングエントリ初期セットを置換するステップとを含む、方法。
【請求項２】
前記スコアは、前記トラフィック低減コストメトリックの一部である、請求項１に記載の方法。
【請求項３】
前記ルーティングエントリ置換セットの選択は、最大数のルーティングエントリよりも少ないルーティングエントリを有する置換セットを選択するステップを含み、
前記置換セット内の各ルーティングエントリは、異なるネットワーク径路に対応する、請求項１または２に記載の方法。
【請求項４】
前記最大数のルーティングエントリよりも少ないルーティングエントリを有する前記置換セットは、正確に２つのルーティングエントリを有する、請求項３に記載の方法。
【請求項５】
ステートフルトランスポート層プロトコルを使用するネットワーク伝送の重要度は、ステートレストランスポート層プロトコルを使用するネットワーク伝送の重要度よりも高い、請求項１〜４のいずれかに記載の方法。
【請求項６】
サイズ制限を超えるパケット流の重要度は、サイズ制限を超えていないパケット流の重要度よりも高い、請求項１〜４のいずれか１項に記載の方法。
【請求項７】
特定のネットワークアドレス範囲に指定されたネットワークパケットの重要度は、前記特定のネットワークアドレス範囲外に指定されたネットワークパケットの重要度よりも高い、請求項１〜４のいずれか１項に記載の方法。
【請求項８】
第１多重径路グループに対応して生成された第１ルーティングエントリ置換セットの重要度を、前記第１多重径路グループに対応して生成された第２ルーティングエントリ置換セットの重要度と比較するステップと、
前記比較に基づいて、生成された前記第１ルーティングエントリ置換セットを選択するステップとをさらに含む、請求項１〜４のいずれか１項に記載の方法。
【請求項９】
第１多重径路グループに対応して生成された第１ルーティングエントリ置換セットの重要度を、第２多重径路グループに対応して生成された第２ルーティングエントリ置換セットの重要度と比較するステップと、
前記比較に基づいて、生成された前記第１ルーティングエントリ置換セットを選択するステップとをさらに含む、請求項１〜４のいずれか１項に記載の方法。
【請求項１０】
第１複数の多重径路グループに各々対応して生成された第１複数のルーティングエントリ置換セットの重要度を、第２複数の多重径路グループに各々対応して生成された第２複数のルーティングエントリ置換セットの重要度と比較するステップと、
前記比較に基づいて、生成された前記第１複数のルーティングエントリ置換セットを選択するステップとをさらに含む、請求項１〜４のいずれか１項に記載の方法。
【請求項１１】
前記ルーティングエントリ置換セットを用いて前記ルーティングエントリ初期セットを置換するステップは、少なくとも所定量で前記転送テーブル内のルーティングエントリの個数を減少させる、請求項１〜１０のいずれか１項に記載の方法。
【請求項１２】
前記ルーティングエントリ置換セットの選択は、重要度と、前記ルーティングエントリ置換セットが選択されたときのネットワークの容量損失とに基づいて行われる、請求項１〜１１のいずれか１項に記載の方法。
【請求項１３】
前記パケット交換機は、ソフトウェア定義ネットワーク（ＳＤＮ）の一部であり、
前記ルーティングエントリ置換セットを用いて、前記ルーティングエントリ初期セットを前記パケット交換機の前記転送テーブルにおいて置換するステップは、ＳＤＮ制御装置からの指示を前記パケット交換機に伝送するステップを含む、請求項１〜１２のいずれか１項に記載の方法。
【請求項１４】
システムであって、
転送テーブルを有するパケット交換機と、
前記パケット交換機のルートマネージャとを含み、
前記ルートマネージャは、
前記転送テーブル内の複数のルーティングエントリの各初期セットに各々対応する複数の多重径路グループを前記転送テーブルから特定し、各ルーティングエントリは、前記パケット交換機の出口ポートを特定し、前記特定された多重経路グループは、予め定められたエントリ数を超える数の転送エントリを有しており、
ネットワークトラフィックの重要度に相当するスコアを取得し、
前記スコアに基づいて、前記複数の多重径路グループのうち１つ以上の多重径路グループのために、各多重径路グループに対応する前記複数のルーティングエントリの初期セットよりも少ないルーティングエントリを有する少なくとも１つのルーティングエントリ置換セットを生成し、
トラフィック低減コストメトリックに基づいて、前記複数の多重径路グループのうち異なる多重径路グループに各々対応する１つ以上のルーティングエントリ置換セットを選択し、前記トラフィック低減コストメトリックは、前記対応するルーティングエントリ初期セットの代わりに、前記１つ以上のルーティングエントリ置換セットの各々を用いてもたらされるネットワーク性能の潜在変化の測定値を表わし、
選択された各ルーティングエントリ置換セットを用いて、前記転送テーブルにおいて、前記選択されたルーティングエントリ置換セットに対応する各多重径路グループの前記ルーティングエントリ初期セットを置換するように構成される、システム。
【請求項１５】
前記スコアは、前記トラフィック低減コストメトリックの一部である、請求項１４に記載のシステム。
【請求項１６】
前記ルートマネージャは、最大数のルーティングエントリよりも少ないルーティングエントリを有する置換セットを選択することによって、ルーティングエントリ置換セットを選択するように構成され、
前記置換セット内の各ルーティングエントリは、異なるネットワーク径路に対応する、請求項１４または１５に記載のシステム。
【請求項１７】
前記最大数のルーティングエントリよりも少ないルーティングエントリを有する前記置換セットは、正確に２つのルーティングエントリを有する、請求項１６に記載のシステム。
【請求項１８】
ステートフルトランスポート層プロトコルを使用するネットワーク送信の重要度は、ステートレストランスポート層プロトコルを使用するネットワーク送信の重要度よりも高い、請求項１４〜１７のいずれか１項に記載のシステム。
【請求項１９】
サイズ制限を超えるパケット流の重要度は、サイズ制限を超えていないパケット流の重要度よりも高い、請求項１４〜１７のいずれか１項に記載のシステム。
【請求項２０】
特定のネットワークアドレス範囲に指定されたネットワークパケットの重要度は、前記特定のネットワークアドレス範囲外に指定されたネットワークパケットの重要度よりも高い、請求項１４〜１７のいずれか１項に記載のシステム。
【請求項２１】
前記ルートマネージャは、さらに、
第１多重径路グループに対応して生成された第１ルーティングエントリ置換セットの重要度を、前記第１多重径路グループに対応して生成された第２ルーティングエントリ置換セットの重要度と比較し、
前記比較に基づいて、生成された前記第１ルーティングエントリ置換セットを選択するように構成される、請求項１４〜１７のいずれか１項に記載のシステム。
【請求項２２】
前記ルートマネージャは、さらに、
第１多重径路グループに対応して生成された第１ルーティングエントリ置換セットの重要度を、第２多重径路グループに対応して生成された第２ルーティングエントリ置換セットの重要度と比較し、
前記比較に基づいて、生成された前記第１ルーティングエントリ置換セットを選択するように構成される、請求項１４〜１７のいずれか１項に記載のシステム。
【請求項２３】
前記ルートマネージャは、さらに、
第１複数の多重径路グループに各々対応して生成された第１複数のルーティングエントリ置換セットの重要度を、第２複数の多重径路グループに各々対応して生成された第２複数のルーティングエントリ置換セットの重要度と比較し、
前記比較に基づいて、生成された前記第１複数のルーティングエントリ置換セットを選択するように構成される、請求項１４〜１７のいずれか１項に記載のシステム。
【請求項２４】
前記ルートマネージャは、前記ルーティングエントリ置換セットを用いて前記ルーティングエントリ初期セットを置換することによって、少なくとも所定量で前記転送テーブル内のルーティングエントリの個数を減少させるように構成される、請求項１４〜２３のいずれか１項に記載のシステム。
【請求項２５】
前記ルーティングエントリ置換セットの選択は、重要度と、前記ルーティングエントリ置換セットが選択されたときのネットワークの容量損失とに基づいて行われる、請求項１４〜２４のいずれか１項に記載のシステム。
【請求項２６】
前記パケット交換機は、ソフトウェア定義ネットワーク（ＳＤＮ）の一部であり、
前記ルートマネージャは、ＳＤＮ制御装置の一部であり、
前記ＳＤＮ制御装置は、前記パケット交換機に指示を伝送することによって、前記ルーティングエントリ置換セットを用いて、前記パケット交換機の前記転送テーブルにおいて、前記ルーティングエントリ初期セットを置換するように構成される、請求項１４〜２５のいずれか１項に記載のシステム。
【請求項２７】
１以上のプロセッサに実行されることによって、請求項１〜１３のいずれか１項に記載の方法を前記１以上のプロセッサに実行させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、２０１５年３月１０日に出願され、「プレフィックスアウェア加重コスト多重径路グループの減縮」と題された米国特許出願第１４／６４３７１２号の利益および優先権を主張する。前述の米国特許出願は、２０１４年５月１２日に出願され、「プレフィックスアウェア加重コスト多重径路グループの減縮」（Prefix-Aware Weighted Cost Multi-Path Group Reduction）と題された米国仮出願番号第６１／９９１９６９号の優先権を主張する。両方の出願の全体が引用により本明細書に援用される。
【背景技術】
【０００２】
背景
情報は、１つ以上の相互接続されたネットワーク内に位置する１つのネットワーク装置から別のネットワーク装置、すなわち、交換機を通過するネットワークパケットの形で、コンピュータシステムの間に伝送される。各ネットワーク装置は、受信したパケットをパケットヘッダ情報によって指定された目的地に転送する。目的アドレスは、第三者によって制御される別のネットワークに位置する装置のアドレスであってもよく、パケットは、送信元と目的地との間に位置する任意数の異なるネットワークを通過してもよい。
【０００３】
一部のネットワーク装置、代表的に交換機は、転送テーブルに割り当てられたメモリを有する。ネットワーク装置は、パケットを受信するときに、転送テーブル内の情報を用いて、受信したパケットの処理を決定することができる。例えば、転送テーブルは、ルーティングエントリを含み、このルーティングエントリは、ネットワーク目的地までの経路に沿って次の中継点に接続される出力ポートを特定することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一部のネットワーク構成において、１つのネットワーク装置から特定のネットワーク目的地までに、複数の可能な経路が存在する可能性がある。同等コスト多重径路（ＥＣＭＰ）ルーティングによって、転送テーブルは、複数の径路の各々のために、ルーティングエントリを含むことができる。よって、ＥＣＭＰをサポートする交換機は、ネットワークトラフィックをＥＣＭＰルートセット内の複数のルートに分散することができる。加重コスト多重径路（ＷＣＭＰ）ルーティングによって、多重径路セット内の複数の可能な径路の一部を同一セット内の他の径路よりも多く使用することができる。しかしながら、ＷＣＭＰルーティングセットのルーティングエントリは、転送テーブルに割り当てられたメモリの多くを消費してしまうことがある。
【課題を解決するための手段】
【０００５】
概要
一局面において、本開示は、パケット交換機のために、転送テーブルを生成する方法に関する。この方法は、パケット交換機の転送テーブルから、転送テーブル内のルーティングエントリの各初期セットに各々対応する複数の多重径路グループを特定するステップと、複数の多重径路グループのうち１つ以上の多重径路グループのために、各多重径路グループに対応するルーティングエントリ初期セットよりも少ないルーティングエントリを有する少なくとも１つのルーティングエントリ置換セットを生成するステップと、トラフィック低減コストメトリックに基づいて、複数の多重径路グループのうち異なる多重径路グループに各々対応する１つ以上のルーティングエントリ置換セットを選択するステップと、選択された各ルーティングエントリ置換セットを用いて、パケット交換機の転送テーブルにおいて選択されたルーティングエントリ置換セットに対応する各多重径路グループのルーティングエントリ初期セットを置換するステップとを含む。いくつかの実現例において、トラフィック低減コストメトリックは、第１トラフィック特性を含む。
【０００６】
別の局面において、本開示は、システムに関する。システムは、転送テーブルを有するパケット交換機と、パケット交換機のルートマネージャとを含む。ルートマネージャは、転送テーブル内のルーティングエントリの各初期セットに各々対応する複数の多重径路グループを転送テーブルから特定し、複数の多重径路グループのうち１つ以上の多重径路グループのために、各多重径路グループに対応するルーティングエントリ初期セットよりも少ないルーティングエントリを有する少なくとも１つのルーティングエントリ置換セットを生成し、トラフィック低減コストメトリックに基づいて、複数の多重径路グループのうち異なる多重径路グループに各々対応する１つ以上のルーティングエントリ置換セットを選択し、選択された各ルーティングエントリ置換セットを用いて、転送テーブルにおいて、選択されたルーティングエントリ置換セットに対応する各多重径路グループのルーティングエントリ初期セットを置換するように構成される。いくつかの実現例において、トラフィック低減コストメトリックは、第１トラフィック特性を含む。いくつかの実現例において、パケット交換機は、ソフトウェア定義ネットワーク（ＳＤＮ）に加入し、ルートマネージャは、パケット交換機のＳＤＮ制御装置の一部である。
【０００７】
本開示の上記および関連する目的、特徴および利点は、以下の図面と併せて、以下の詳細な説明を参照することによって、より完全に理解されるであろう。同様の参照番号および名称は、さまざまな図面において同様の要素を示す。
【図面の簡単な説明】
【０００８】
【図１】例示的なネットワークを示すブロック図である。
【図２】例示的なネットワーク装置を示すブロック図である。
【図３Ａ】例示的な転送テーブルを示すブロック図である。
【図３Ｂ】例示的な転送テーブルを示すブロック図である。
【図３Ｃ】例示的な転送テーブルを示すブロック図である。
【図４】プレフィックスアウェアＷＣＭＰグループの減縮方法を示すフローチャートである。
【図５】重要なネットワークトラフィックの伝送に使用されていない多重径路セット用のＷＣＭＰグループの減縮方法を示すフローチャートである。
【図６】実現例に係るコンピューティングシステムを示すブロック図である。
【発明を実施するための形態】
【０００９】
詳細な説明
図１は、種々の相互接続点で互いに接続された複数の独立したネットワークから構成される例示的なネットワーク環境を示すブロック図である。図示のように、ローカルネットワーク１１０は、１つ以上の中間ネットワーク１３０を介して、目的ネットワーク１５０に接続する。ローカルネットワーク１１０は、ローカルネットワーク１１０のエッジに位置するネットワーク装置１２４および１２６を介して、中間ネットワーク１３０に接続する。これらの「エッジ」ネットワーク装置は、中継ネットワーク１３０を介して、図示された３つのネットワーク経路、径路「Ａ」１４４、径路「Ｂ」１４６および径路「Ｃ」１４８に加入する。各径路１４４、１４６および１４８は、ネットワーク１１０、１３０および１５０を通って、目的ネットワーク１５０に位置する目的装置１５４に到達する別々のルートである。ローカルネットワーク１１０に位置するネットワーク装置１２２は、目的装置１５４のアドレスに指定されたパケットをエッジ装置１２４または１２６に転送することによって、このパケットを目的装置１５４に送達することができる。すなわち、ネットワーク装置１２２は、多重径路ルーティングを実現することができる。
【００１０】
より詳細には、図１を参照して、ローカルネットワーク１１０は、さまざまなネットワーク装置１２２、１２４および１２６を含む。ローカルネットワーク１１０は、複数のコンピューティングシステム間の通信を容易にするための任意種類のデータネットワークであってもよい。ローカルネットワーク１１０に位置するネットワーク装置１２２は、ローカルネットワーク１１０に位置する他のネットワーク装置、例えばローカルネットワーク１１０のエッジに位置するネットワーク装置１２４および１２６にパケットを送信（伝送）することができ、そこからパケットを受信することができる。いくつかの実現例において、ローカルネットワーク装置１１０は、ソフトウェア定義ネットワーク（ＳＤＮ）である。このＳＤＮにおいて、１つ以上のネットワーク装置は、（図１に図示せず）ＳＤＮ制御装置によって制御される。ＳＤＮ制御装置によって制御されるネットワーク装置の一例は、図２に示されている。ネットワーク装置を実現するために使用することができるコンピュータシステムの一例は、図７に示されている。
【００１１】
再び図１を参照して、エッジネットワーク装置１２４および１２６は、ローカルネットワーク１１０を他のネットワーク１３０に接続する。いくつかの実現例において、エッジ装置は、１つのネットワークに接続される１つのネットワークインターフェイスと、別のネットワークに接続される別のネットワークインターフェイスとを有する。これによって、「マルチホーム」装置は、両方のネットワークに加入することができる。いくつかの実現例において、エッジ装置は、ネットワーク相互接続、例えば第３者のインターネットエクスチェンジプロバイダ（ＩＸＰ）によって提供された相互接続を介して、別のネットワークに位置するエッジ装置に接続する。エッジ装置１２４および１２６は、ローカルネットワーク１１０とネットワーク１３０との間のゲートウェイとして機能する。いくつかの実現例において、エッジ装置１２４および１２６は、境界ゲートウェイプロトコル（ＢＧＰ）のようなルーティングプロトコルを実現する。ローカルネットワーク１１０内のパケットをローカルネットワーク１１０の外部に位置する目的装置１５４に伝送する場合、パケットは、ローカルネットワーク１１０からエッジ装置にルーティングされ、ネットワーク経路に沿って、目的装置１５４をホストする目的ネットワーク１５０に伝送される。図示されたエッジネットワーク装置１２４は、少なくとも２つの異なる経路、すなわち、経路「Ａ」１４４および経路「Ｂ」１４６に加入して、中継ネットワーク１３０を介して、目的ネットワーク１５０に接続される。図示された別のエッジネットワーク装置１２６は、第３の異なる径路、すなわち、径路「Ｃ」１４８に加入して、中継ネットワーク１３０を介して、目的ネットワーク１５０に接続される。すなわち、ローカルネットワーク１１０から目的ネットワーク１５０までの間に、少なくとも３つの異なる経路が存在する。
【００１２】
中継ネットワーク１３０は、複数のコンピューティングシステム間の通信を容易にするデータネットワークである。いくつかの実現例において、中継ネットワーク１３０は、例えば、自律システムにおいてローカルネットワーク１１０を制御するものと同一のものによって制御される。いくつかの実現例において、中継ネットワーク１３０は、第３者によって制御される。いくつかの実現例において、中継ネットワーク１３０は、キャリアネットワークである。いくつかの実現例において、ローカルネットワーク１１０から目的ネットワーク１５０に送信されるパケットは、複数の中継ネットワーク１３０を通過する。
【００１３】
目的装置１５４は、ネットワークパケットを受信することができるコンピューティングシステムまたはネットワーク装置である。目的装置１５４は、目的ネットワーク１５０のネットワークアドレス空間に目的装置１５４を位置付けるための少なくとも１つのネットワークアドレスを有する。目的装置１５４は、ネットワークからパケットを受信することができる任意のコンピューティングシステムとすることができる。例えば、目的装置１５４は、目的ネットワーク１５０から受信した情報をコンピュータユーザに提供するように構成されたクライアント装置とすることができる。いくつかの実現例において、目的装置１５４は、サーバである。例えば、目的装置１５４は、オフサイト（off-site）データ記憶システムとすることができる。図７は、目的装置１５４を実現するために使用することができるコンピュータシステムの一例を示している。
【００１４】
目的ネットワーク１５０は、複数のコンピューティングシステム間の通信を容易にする任意種類のデータネットワークとすることができる。いくつかの実現例において、目的ネットワーク１５０は、インターネットサービスプロバイダ（ＩＳＰ）ネットワークである。
【００１５】
ローカルネットワーク１１０、中継ネットワーク１３０および目的ネットワーク１５０の各々は、複数のコンピューティングシステム間の通信を容易にする任意種類のデータネットワークとすることができる。例えば、各ネットワーク１１０、１３０および／または１５０は、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）または仮想ネットワークとすることができる。各ネットワークは、ＯＳＩ物理層特性を有し、ＯＳＩリンク層プロトコル、例えばイーサネット（登録商標）を使用して動作する。各ネットワークは、図１に示されていない追加のネットワーク装置、例えば、ハブ、ブリッジ、交換機またはルータを含むことができる。ネットワーク１１０、１３０および／または１５０のいずれかは、ソフトウェア定義ネットワーク（ＳＤＮ）とすることができる。
【００１６】
いくつかの実現例において、すべてのネットワーク装置１２２、１２４、１２６および１５４は、異なるネットワーク内に配置されるの代わりに、同一のネットワークに含まれてもよい。例えば、すべての装置は、同一のソフトウェア定義データセンタネットワークに配置されてもよい。一部のデータセンタネットワークは、ラック状に配置された多数のサーバを含み、各々のサーバは、１つ以上のラック上部交換機を含む。サーバは、集約層交換機の１つ以上の層を介して、データセンタ内の他のサーバと通信する。このようなネットワークにおいて、一例として、データセンタ内のラック上部交換機は、複数の集約層交換機に連結され、多重径路ルーティングを用いて、ラック状に配置されたサーバから出力されたトラフィックをネットワークの所定の集約層に位置する複数の交換機に分散するように構成することができる。同様に、集約層交換機は、多重径路ルーティングを使用することもできる。
【００１７】
図２は、制御リンク１１２によって分けられたソフトウェア定義ネットワーク制御装置２２０およびネットワーク装置２３０の一例を示すブロック図である。概略図において、ＳＤＮ制御装置２２０は、制御モジュール２４２と、ネットワーク構成データおよびルーティングデータなどを格納するためのメモリ２２６とを含む。ネットワーク装置２３０は、制御モジュール２４４と、装置構成データおよびルーティングデータなどを格納するためのメモリ２３６とを含む。ネットワーク装置２３０は、転送エンジン２３４を含む。転送エンジン２３４は、メモリ２３６に格納された装置構成データおよびルーティングデータを用いて、ネットワークインターフェイス２３８のデータトラフィックを管理する。ネットワーク装置２３０は、図１に示されたネットワーク装置１２２、１２４および１２６のいずれか１つとして適切に使用されることができる。
【００１８】
図２を参照して、より詳細には、ＳＤＮ制御装置２２０は、制御モジュール２４２とメモリ２２６とを含む。制御モジュール２４２は、メモリ２４６に格納されたネットワーク構成データおよびルーティングデータを用いて、ネットワーク装置２３０を設定する。いくつかの実現例において、制御モジュール２４２は、周期的に、ステータス情報または利用可能性情報をネットワーク装置２３０に送信する。いくつかの実現例において、ＳＤＮ制御装置２２０は、転送テーブルを生成し、生成された転送テーブルを１つ以上のネットワーク装置２３０に発行する。
【００１９】
ネットワーク装置２３０は、制御モジュール２４４と、メモリ２３６とを含む。ネットワーク装置の制御モジュール２４４は、（制御リンク１１２を介して）ＳＤＮ制御装置制御モジュール２４２から、構成情報およびルーティング情報を受信し、メモリ２３６に格納されたデータを更新する。
【００２０】
ネットワーク装置２３０は、一連のネットワークインターフェイス２３８を含む。各ネットワークインターフェイス２３８は、データネットワークに接続することができる。例えば、ネットワーク装置２３０は、第１ネットワークインターフェイス（例えば、ネットワークインターフェイス２３８ａ）を介して、ネットワークのデータパケットを受信することができる。ネットワーク装置２３０は、別のインターフェイス（例えば、ネットワークインターフェイス２３８ｂ）を介して、受信したデータパケットを次の適切な中継点に転送する。いくつかの実現例において、転送エンジン２３４は、各データパケットを受信する度に、使用するネットワークインターフェイス２３８を決定する。いくつかの実現例において、転送エンジン２３４は、メモリ２３６に格納された転送テーブルを使用して、使用するネットワークインターフェイス２３８を決定する。
【００２１】
転送エンジン２３４は、メモリ２３６内の構成データおよびルーティングデータを用いて、ネットワークインターフェイスポート２３８のデータトラフィックを管理する。ＳＤＮ制御装置２２０は、制御モジュール２４４を介して、メモリ２３６内の構成データおよびルーティングデータを制御する。いくつかの実現例において、転送エンジン２３４は、パケットをネットワークインターフェイス出口ポート２３８に転送する前に、パケットヘッダを更新する。例えば、転送エンジン２３４は、明示的輻輳通知（ＥＣＮ）、中継点数（ＴＴＬ）、またはパケットヘッダのチェックサム情報を更新することができる。
【００２２】
メモリ２２６およびメモリ２３６の各々は、コンピュータ読み取り可能なデータの記憶に適する任意の装置であってもよい。例としては、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＳＲＡＭおよびフラッシュメモリ装置などの半導体メモリ装置を含むがこれらに限定されない。いくつかの実現例において、メモリ２３６には、三値連想メモリ（ＴＣＡＭ）である。いくつかの実現例において、ネットワーク装置２３０のメモリ２３６は、パケット流がネットワーク装置２３０を通過するときに、パケット流のバッファリングに使用される専用メモリを含む。ネットワーク装置２３０は、任意数のメモリ装置２３６を有してもよい。ＳＤＮ制御装置２２０は、任意数のメモリ装置２４６を有してもよい。
【００２３】
図３Ａ、３Ｂおよび３Ｃは、ネットワーク装置によって使用され、パケットの出力ポートを特定することができる転送テーブルの例を示す図である。
【００２４】
図３Ａは、簡略化した転送テーブル３１０を示している。テーブル３１０内の各ルーティングエントリは、マッチパターン３１６および転送命令３１８を表す。マッチパターン３１６、例えば「パターンＡ」は、対応する転送命令３１８、例えば「径路Ａに沿って転送」を使用して処理すべきパケットによって満たされる。いくつかの例において、マッチパターン３１６は、特定のネットワークまたは自律システムに転送されたすべてのパケットとマッチングする。例えば、マッチパターン３１６は、目的アドレスのパケットの一部とマッチングする。対応する転送命令３１８は、パターン３１６とマッチングするすべてのネットワークアドレスに向かうネットワーク経路に沿って、１つのネットワーク装置から次の中継ネットワーク装置への出力ポートを特定することができる。いくつかの例において、マッチパターン３１６は、特定の流れのパケットにマッチングする。図示された転送テーブル３１０内の各ルーティングエントリは、ルーティングエントリを一意に特定するインデックス３１２を有する。いくつかの実現例において、転送テーブルは、特定のインデックス３１２を有しない。
【００２５】
図３Ｂは、インデックス３３２と、マッチパターン３３６と、転送命令３３８とを有する多重径路ルーティングテーブル３３０を示している。多重径路ルーティングテーブル３３０は、同様のパターン３３６、すなわち「パターンＡ」を有し、異なる転送命令３３８、すなわち「径路Ａ」、「径路Ｂ」および「径路Ｃ」の各々に沿って転送する転送命令を有するルーティングルーティングエントリの多重径路セット３４２を含む。図示のテーブルは、追加の多重径路セット３４４および非多重径路ルーティングエントリ３４８をさらに含む。よって、同様の転送テーブル３３０は、多重径路ルーティングエントリおよび単一径路ルーティングエントリの両方に使用することができる。
【００２６】
一般的に、同等コスト多重径路（ＥＣＭＰ）ルーティングは、目的地までの複数の径路を同等物として取り扱う。ネットワーク交換機は、複数の同等径路のいずれか１つを介して、トラフィックを同一の目的地に転送することができる。ＥＣＭＰのいくつかの実現例において、同一の目的地用の複数のルーティングエントリが転送テーブル３３０に存在する場合、ネットワーク装置は、目的地に転送するトラフィックを複数の径路の間に分散する。トラフィックを分散できる方法がいくつある。例えば、ネットワーク装置は、単にルーティングエントリを反復することことによって、各パケットが別々の経路をとるようにすることができる。いくつかの実現例において、ネットワーク装置を通過する各々の新たなパケット流を特定の径路に割り当てる。この手法は、異なるパケット流を異なる径路に分散するとともに、単一のパケット流の異なるパケットを同一の径路に沿って送信する。そのような実現例の一部において、各パケットのヘッダ情報の一部をハッシュ化し、ハッシュ結果の最下位ビットを用いて、パケットのルーティングエントリ、例えばインデックス３３２を特定する。ヘッダ情報の部分は、同一のパケット流のパケットが同一のハッシュ値を生成するように、選択される。例えば、いくつかの実現例において、目的アドレスおよびプロトコル種類を示すヘッダビットは、ハッシュ化される。図３Ｂに示された多重径路転送テーブル３３０は、「パターンＢ」のマッチパターン３３６に対応する、２つの経路を有する多重径路セット３４４を含む。パケット流をセット３４４内の径路に分散する簡単例として、パターンＢと一致したパケット流のパケットヘッダをハッシュ化することができる。この例において、ハッシュ値が偶数である場合、パターンＢのインデックス「１３４４」を有するルーティングエントリを用いて、径路Ｄに沿ってパケットを送信する。ハッシュ値が奇数である場合、パターンＢのインデックス「１３４５」を有するルーティングエントリを用いて、径路Ｅに沿ってパケットを送信する。
【００２７】
なお、加重コスト多重径路（ＷＣＭＰ）ルーティングを使用して、他のルーティング経路よりも一部のルーティング径路を多く使用することもできる。ＷＣＭＰを実現する１つの方法は、同様の経路を有する多重径路セットに追加のルーティングエントリを追加することである。たとえば、径路Ｄは、径路Ｅに比べて２倍の帯域幅容量を有するため、二倍に使用されるべきである。追加のエントリ（図示せず）を用いて、径路Ｄ（エントリインデックス「１３４４」）のマッチパターン３３６および転送命令３３８を反復するように、多重径路セット３４４を拡張することができる。これによって、ネットワークトラフィックが３つのルーティングエントリに分散される。よって、径路Ｅに比べて、径路Ｄを用いて、二倍のトラフィックを転送することができる。この加重コスト多重径路セットは、｛Ｄｘ  ２，Ｅｘ  １｝または単に｛２，１｝として表すことができる。しかしながら、転送テーブル内の多重径路セットの拡張表示は、転送テーブルに割り当てられるメモリをかなり多く消耗する。
【００２８】
図３Ｃは、加重ルーティングエントリを有する多重径路ルーティングテーブル３５０を示している。図示された多重径路ルーティングテーブル３５０は、インデックス３５２と、マッチパターン３５６と、転送命令３５８とを含む。多重径路ルーティングテーブル３５０は、同様のパターン３５６、すなわち「パターンＡ」を有し、３つの可能な転送命令３５８、すなわちサブセット３６４に対応する「径路Ａ」、サブセット３６６に対応する「径路Ｂ」およびサブセット３６８に対応する「径路Ｃ」の各々に沿って転送する転送命令を有するルーティングルーティングエントリの多重径路セット３６２を含む。図示のテーブルは、図３Ｂのセット３４４およびセット３４８の各々に対応する追加の多重径路セット３７４および非多重径路ルーティングエントリ３７６をさらに含む。さらに図３Ｃを参照して、同様の転送テーブル３５０は、多重径路ルーティングエントリおよび単一径路ルーティングエントリの両方に使用することができる。
【００２９】
図３Ｂおよび３Ｃは、径路の重みに小さな変化が転送テーブルに劇的な影響を与えることができることを示している。図３Ｂの多重径路セット３４２は、３つの径路Ａ、ＢおよびＣ（例えば、図１に示された３つの径路１４４、１４６および１４８）に対応する。すべての径路は、互いに等しくなるように、各々が１／３＝０．３３３・・・の重みを有する。図３Ｃの多重径路セット３６２は、同様の３つの径路Ａ、ＢおよびＣに対応するが、第３経路の重みがわずかに小さくなる。この重みの変化によって、径路Ｃは、径路Ａまたは径路Ｂのいずれよりも三分の一より少ないトラフィックしか処理できない。図３Ｃに示された多重径路転送テーブル３５０は、径路Ａに対応する３つのルーティングエントリ３６４、径路Ｂに対応する３つのルーティングエントリ３６６、径路Ｃに対応する２つのルーティングエントリ３６８を含む。換言すれば、径路Ａおよび径路Ｂは、３／８＝０．３７５の重みを有するが、径路Ｃは、２／８＝０．２５０の重みを有する。しかしながら、多重径路テーブル３５０の多重径路セット３６２は、８つのエントリ｛３，３，２｝を使用するが、一方、多重径路テーブル３３０の多重径路セット３４２は、３つのみのエントリ｛１，１，１｝を使用する。
【００３０】
図４は、プレフィックスアウェアＷＣＭＰグループの減縮方法４００を示すフローチャートである。方法４００は、最初に、ルートマネージャを用いて、転送テーブルから、最小数のルーティングエントリよりも多いルーティングエントリを有する１つ以上の多重径路セット、例えば３つ以上のルーティングエントリを有する多重径路セットを各々特定する（ステップ４１０）。ルートマネージャは、特定された各多重径路セットのために、当該多重径路セットを介して伝送されたネットワークトラフィックの重要度に相当するスコアを取得する（ステップ４２０）。ルートマネージャは、取得されたスコアに基づいて、特定された各多重径路セットを置換する１つ以上の可能な置換セットを生成する（ステップ４３０）。ルートマネージャは、可能な置換セットを比較し（ステップ４４０）、テーブルエントリの減縮目標およびネットワークの性能基準を満たす１つ以上の可能な置換セットを選択する（ステップ４５０）。その後、ルートマネージャは、選択された置換セットのルーティングエントリを用いて、対応する１つ以上の多重径路セットのルーティングエントリを転送テーブルから置換する（ステップ４６０）。図２を参照して、いくつかの実現例において、ルートマネージャは、ＳＤＮ制御装置２２０であり、または一部分としてＳＤＮ制御装置２２０に含まれる。
【００３１】
図４を参照して、より詳細には、方法４００は、最初に、ルートマネージャを用いて、最小数のルーティングエントリよりも多いルーティングエントリを有する１つ以上の多重径路セットを転送テーブルからを特定する（ステージ４１０）。例えば、ルーティングエントリの最小数が５である場合、６以上のエントリを有する多重径路セットが減縮対象となる。ルーティングエントリの最小数が２である場合、３つ以上のエントリを有する多重径路セットが減縮対象となる。ルートマネージャは、特定された多重径路セットによって使用されるテーブルにおけるエントリの数を減少する目的で、転送テーブルから多重径路セットを特定する。いくつかの実現例において、方法４００は、周期的に実行される。いくつかの実現例において、方法４００は、転送テーブルが閾値を超えるエントリで飽和されたときに、実行される。いくつかの実現例において、方法４００は、管理者によって開始される。
【００３２】
ルートマネージャは、特定された各多重径路セットのために、当該多重径路セットを介して伝送されたネットワークトラフィックの重要度に相当するスコアを取得する（ステップ４２０）。いくつかの実現例において、このスコアは、トラフィック低減コストメトリックの一部である。いくつかの実現例において、ルートマネージャは、伝送されたパケットの種類に基づいて、スコア（「重要度スコア」）を維持する。いくつかの実現例において、特定のプロトコルを使用するパケット流は、他のパケット流よりも重要であると考えられる。例えば、いくつかの実現例において、ステートフルトランスポート層プロトコルを使用するネットワーク伝送は、ステートレストランスポート層プロトコルを使用する伝送よりも重要であると考えられる。ステートフルトランスポート層プロトコルの例としては、伝送制御プロトコル（ＴＣＰ）、データグラム輻輳制御プロトコル（ＤＣＣＰ）およびストリーム制御伝送プロトコル（ＳＣＴＰ）を含むが、これらに限定されない。ステートレストランスポート層プロトコルの例としては、ユーザデータグラムプロトコル（ＵＤＰ）が挙げられる。いくつかの実施形態において、サイズ制限を超えるパケット流は、他のネットワーク伝送よりも重要であると考えられる。いくつかの実施形態において、ソースおよび／または目的ネットワークアドレス（またはネットワークアドレスプレフィックス）を用いて、ネットワークトラフィックが重要であるか否かを特定する。いくつかの実現例において、特定のネットワークアドレスまたはネットワークアドレス範囲に指定されたネットワークパケットは、他のネットワーク伝送よりも高い重要度（または低い重要度）を有するると考えられている。いくつかの実現例において、重要度スコアは、一定の期間中に伝送されたネットワークトラフィックの重要度を測る変動スコアである。いくつかの実現例において、多重径路セットを介して伝送されたデータの量は、重要度スコアに影響を与える。いくつかの実現例において、重要度スコアは、重要度を示すブール値（Boolean value）である。いくつかの実現例において、重要度スコアは、数値である。
【００３３】
次に、ルートマネージャは、得られたスコアに基づいて、特定された各多重径路のために、１つ以上の可能な置換セットを生成する（ステージ４３０）。いくつかの実現例において、多重径路セットが比較的低い重要度スコアを有する場合またはスコアによって当該多重径路セットが重要ではないことを示す場合、ルートマネージャは、図５に示された方法５００を用いて、重要ではない多重径路セットに対応する最小セットの異なるルーティングエントリを選択する。いくつかの実現例において、加重コスト多重径路（ＷＣＭＰ）セットの場合、可能な置換セットは、当該ＷＣＭＰセットを等価コスト多重径路（ＥＣＭＰ）セットに変換することによって、生成される。例えば、ＷＣＭＰセット｛４，４，２，１｝は、｛１，１，１，１｝に平坦化されてもよい。いくつかの実現例において、ＷＣＭＰセットの場合、当該セットから１つ以上のより低い重みを有する径路を削除する。例えば、ＷＣＭＰセット｛４，４，２，１｝を｛４，４，２｝に変換し、さらに｛４，４，２｝を｛２，２，１｝に分解することができる。この手順をさらに繰り返して、例えば｛１，２，２｝を｛１，１｝に減少することができる。いくつかの実現例において、ＷＣＭＰセットから１つ以上の径路を削除し、残りの径路をＥＣＭＰセットに平坦化することによって、ＷＣＭＰセットを変更する。得られたＥＣＭＰセットにおいて、各経路は、一回しか現れない。例えば、ＷＣＭＰセット｛４，４，２，１｝を｛１，１，１｝に減縮することができる。
【００３４】
ルートマネージャは、可能な置換セットを比較し（ステップ４４０）、テーブルエントリの減縮目標およびネットワークの性能基準を満たす１つ以上の可能な置換セットを選択する（ステップ４５０）。各々の可能な置換セットは、対応する多重径路セットを置換するように使用される場合、使用された転送テーブルエントリの数を減少させる。また、各々の可能な置換セットは、対応する多重径路セットを置換するように使用される場合、ネットワーク性能が低下した多重径路セットを用いてネットワークトラフィックを提供する。例えば、多重径路セットから径路を削除する場合、削除された径路により貢献した帯域幅を用いて、トラフィックを転送することができなくなる。この損失は、他の要素によって相殺することができる。このネットワーク性能の潜在変化は、トラフィック低減コストメトリックとして測定される。
【００３５】
いくつかの実現例において、ネットワーク性能の潜在変化は、ステップ４２０で得られた重要度スコアによって加重される。換言すれば、低重要度または中重要度のトラフィックは、ネットワーク性能上の特定の変更をより許容できるが、高重要度のトラフィックは、ネットワーク性能上の同様の変更を許容できない。
【００３６】
ステップ４４０の比較は、同一の多重径路グループに対応するルーティングエントリの少なくとも２つの異なる置換セットの比較、少なくとも２つの異なる多重径路グループに対応するルーティングエントリの置換セットの比較、および複数の多重径路グループに各々対応するルーティングエントリの複数の置換セットの少なくとも２つの集合体の比較のうち、１つ以上を含むことができる。
【００３７】
いくつかの実現例において、ルートマネージャは、可能性を比較し、ネットワーク性能に許容可能な低い影響を与える前提で、転送テーブル内の少なくとも目標個数のルーティングエントリを解放するように、１つ以上の可能な置換セットを選択する（ステップ４５０）。いくつかの実現例において、ルートマネージャは、テーブル減縮目標を達成するために、複数の多重径路セットの置換セットからなる組み合わせを使用する。いくつかの実現例において、ルートマネージャは、１つ以上の可能な置換セットを使用することによって生じ得る可能な帯域幅損失を算出し、計算結果を用いて、ステップ４５０で選択する可能な置換セットを決定する。いくつかの実現例において、ルートマネージャは、選択された１つ以上の可能な置換セットに起因する帯域幅の予想損失をネットワーク監視者に報告する。
【００３８】
図１および３Ｃの例示を参照して、中継ネットワーク１３０を経由する図示の径路１４４、１４６および１４８は、１つの多重径路セットである。これらの径路は、多重径路転送テーブル３５０において、多重径路セット３６２、すなわち｛３，３，２｝として示される。径路Ａ  １４４および径路Ｂ  １４６は、第１エッジ装置１２４を使用し、径路Ｃ  １４８は、第２エッジ装置１２６を使用する。２つのエッジ装置１２４および１２６は、異なる中継ネットワーク１３０に接続されてもよく、径路Ｃ  １４８を径路Ａまたは径路Ｂよりも低い容量で動作させる他の実装特性を有してもよい。多重径路セット｛３，３，２｝は、多重径路転送テーブル３５０の８つのエントリを使用する。いくつかの実現例において、方法４００は、第３経路、すなわち径路Ｃを捨てることによって、｛３，３，２｝の可能な置換セットとして｛１，１｝を生成することができる。この可能な置換セットは、多重径路転送テーブルの２つのエントリしか使わないため、６つのテーブルエントリを減らすことができる。しかしながら、径路Ｃの削除は、径路Ｃが寄与したネットワーク容量の損失を引き起こす。特に、多重径路セットから径路Ｃを削除した後、ルーティング選択肢の８分の２（２５％）を寄与する径路Ｃが使用できなくなる。いくつかの実現例において、多重径路セットは、特定の多重径路セットを介して伝送されたトラフィックに関連付けられた重要度メトリックに対応する値を有する。例えば、いくつかの実現例において、重要度メトリックに対応する値は、ステップ４２０で得られた重要度スコアである。いくつかの実現例において、各可能な置換セットに、インパクトスコアを割り当てる。このインパクトスコアは、削除されたルーティング選択肢の割合で乗じた重要度メトリック値に等しい。｛３，３，２｝を｛１，１｝に減縮する例において、多重径路セットを介して伝送されたトラフィックが重要度Ｘを有すると仮定する場合、インパクトスコアは、０．２５Ｘである。いくつかの実現例において、このインパクトスコアが、転送テーブルにおける多重径路グループの一部（またはすべて）の他の可能な減縮案のスコアと比較され、最も低いインパクトスコアを有する置換グループ（または置換グループの組み合わせ）が選択される。
【００３９】
例示のシナリオとして、３つのＷＣＭＰセットは、グループＧ１、Ｇ２およびＧ３として表され、各グループは、４つのパターンＰ１、Ｐ２、Ｐ３およびＰ４のうち１つとマッチングするネットワーク流を搬送する。各パターンのネットワークトラフィックには、対応する重要度スコアＣＰ１＝３２、ＣＰ２＝３、ＣＰ３＝３、ＣＰ４＝８を付ける。パターンＰ１にマッチングしたネットワーク流は、多重径路セットＧ１、すなわち｛２，２，２，１，１｝のネットワークルートを使用し、パターンＰ２またはＰ３にマッチングしたネットワーク流は、多重径路セットＧ２、すなわち｛３，３，２，２｝のネットワークルートを使用し、パターンＰ４にマッチングしたネットワーク流は、多重径路セットＧ４、すなわち｛３、３、３、１｝のネットワークルートを使用する。このシナリオ例は、以下の表１に示される。３つのＷＣＭＰセット（Ｇ１、Ｇ２およびＧ３）を減縮する２つの例は、以下の表２および３に示される。表２の目的は、転送テーブルから少なくとも５つのエントリを解放することである。表３の目的は、転送テーブルから少なくとも１２個のエントリを解放することである。
【００４０】
【表１】
0006383805.tif 000002
【００４１】
以下に示す表２は、転送テーブルから少なくとも５つのエントリを解放することを目的とする減縮選択肢を示している。セット｛１，１，１，１｝を用いて、多重径路セットＧ１、すなわち｛２，２，２，２，１，１｝を置換することができる。これによって、２つの最小加重の経路が削除され、残りの径路が同等の径路と見なされる。その結果、１０個のルーティング選択肢のうち２つのみを損失することで、転送テーブルから６つのエントリを解放することができる。ネットワークの重要度（すなわち、トラフィックを多重径路グループにルーティングするために使用されたパターンにマッチングしたネットワーク流の重要度スコアの合計）で、２０％の容量損失を加重することによって、６．４という加重低減インパクトスコアを生成する。セット｛１，１，１，１｝を用いて、多重径路セットＧ２、すなわち｛３，３，２，２｝を置換することができる。これによって、すべての径路が保持され、すべての径路が同等の径路と見なされる。その結果、ルーティング選択肢の２０％のみを損失することで、転送テーブルから６つのエントリを解放することができる。パターンＰ２にマッチングするトラフィックおよびパターンＰ３にマッチングするトラフィックの重要度で、２０％の容量損失を加重することによって、１．２という加重低減インパクトスコアを生成する。セット｛１，１，１｝を用いて、多重径路セットＧ３、すなわち｛３，３，３，１｝を置換することができる。これによって、最小加重の経路が削除され、残りの径路が同等の径路と見なされる。その結果、ルーティング選択肢の１０％のみを損失することで、転送テーブルから７つのエントリを解放することができる。加重低減インパクトスコアは、０．８であり、３つの選択肢のうち、最も低いインパクトスコアである。したがって、３つの選択肢のうち、３番目の置換選択を選択すべきである。
【００４２】
【表２】
0006383805.tif 000003
【００４３】
以下に示す表３は、転送テーブルから少なくとも１２個のエントリを解放することを目的とする減縮選択肢を示している。実現例１と同様にセット｛１，１，１，１｝またはさらに小さい多重径路セット｛１，１，１｝、｛１，１｝または｛１｝を用いて、多重径路セットＧ１、すなわち｛２，２，２，２，１，１｝を置換することができる。これによって、余分な経路が削除される。しかしながら、これらの置換選択のいずれかは、単独で、転送テーブルから１２個のエントリを解放することができなかった。多重径路セットＧ２、すなわち｛３，３，２，２｝および多重径路セットＧ３、すなわち｛３，３，３，１｝の置換も同様である。しかしながら、最も低いインパクトスコアを有する２つの置換選択の組み合わせは、転送テーブルから１３個のエントリを解放することができ、目的を達成する。いくつかの実現例において、転送テーブル内のエントリの使用数を目標数に減縮することができる単一の置換選択が存在しない場合、ルートマネージャは、目標数を２つ以上の部分に分割する。２つ以上の部分の合計は、元の目標数と等しい。例えば、転送テーブルからの１２個のエントリを削除するという目的は、最初に６つのエントリを削除し、その後、残りの６つのエントリを削除することによって達成することができる。換言すれば、（１２）という目標を（６，６）に分割する。いくつかの実現例において、複数の分割は、可能である。例えば、（６，６）、（７，５）、（８，４）、（４，４，４）、（５，４，３）などが挙げられる。表３に示した例において、６つのエントリを解放するような置換セットの検索が、Ｇ３を置換するセット｛１，１，１｝の選択をもたらし、残りの６つのエントリを解放するような置換セットの検索が、Ｇ２を置換するセット｛１，１，１，１｝の選択をもたらことになる。このようにして、置換セットの組み合わせは、転送テーブルから１３個のエントリを減少し、１２個のエントリを解放する目的を満たすことができる。
【００４４】
【表３】
0006383805.tif 000004
【００４５】
いくつかの実現例において、徹底的な比較は、可能なすべての置換セット、または制約パラメータセット内のすべての可能な置換セットに対して、実行される。いくつかの実現例において、徹底的な比較は、候補置換セットとして生成された可能な置換セットのサブセットに限定される。例えば、いくつかの実現例において、多重径路置換セットの置換選択は、閾値よりも低い重要度スコアを有するトラフィックを伝送するために使用されるＷＣＭＰセットに対して、生成される。いくつかのこのような実現例において、閾値は、実行可能な置換選択が特定されるまで、増分で増加する。いくつかの実現例において、徹底的な比較は、置換セットの可能な組み合わせの比較を含む。例えば、表３に示された例において、置換セットの組み合わせを使用した。
【００４６】
図４を参照して、その後、ルートマネージャは、選択された置換セットのルーティングエントリを用いて、対応する１つ以上の多重径路セットのルーティングエントリを転送テーブルから置換する（ステップ４６０）。いくつかの実現例において、ルートマネージャは、選択された多重径路置換セットを用いて、新たな転送テーブルを生成し、セットの置換を省略する。
【００４７】
図５は、重要なネットワークトラフィックの伝送に使用されていない多重径路セット用のＷＣＭＰグループの減縮方法５００を示すフローチャートである。方法４００と同様に、方法５００は、最初に、ルートマネージャを用いて、転送テーブルから、最小数のルーティングエントリよりも多いルーティングエントリを有する多重径路セットを特定する（ステップ５１０）。ルートマネージャは、特定された多重径路セットが重要なネットワークトラフィックの伝送に使用されていないことを判断し（ステップ５２０）、多重径路セットに対応する最小セットの異なるルーティングエントリを選択する（ステップ５３０）。ルートマネージャは、多重径路セットのうち、選択されたルーティングエントリ以外のすべての他のルーティングエントリを転送テーブルから削除する（ステップ５４０）。
【００４８】
図５を参照して、より詳細には、方法５００は、最初に、ルートマネージャを用いて、転送テーブルから、最小数のルーティングエントリよりも多いルーティングエントリを有する多重径路セットを特定し（ステップ５１０）、特定された多重径路セットが重要なネットワークトラフィックの伝送に使用されていないことを判断する（ステップ５２０）。これは、図４に示されたステップ４１０および４２０の特例である。これによって、転送テーブルにおいて最小数（例えば、２）のルーティングエントリよりも多いルーティングエントリを有する多重径路セットは、トラフィックを伝送しない径路セットまたは低い重要度のトラフィックを伝送する径路セットとして特定される。
【００４９】
さらに図５を参照して、より詳細には、ルートマネージャは、多重径路セットに対応する最小セットの異なるルーティングエントリを選択する（ステップ５３０）。いくつかの実現例において、最小セットが２つの経路を有する。いくつかの実現例において、より大きな最小セットが使用される。ルートマネージャは、非同一の径路に対応するルーティングエントリを選択する。その結果、得られた多重径路置換セットは、径路多様性を有する。いくつかの実現例において、ルートマネージャは、最高加重値を有する非同一の径路を選択し、最小セットに入れる。いくつかの実現例において、ルートマネージャは、さまざまなルーティングエントリを削除または置換することによって生じ得る可能な帯域幅損失を計算し、帯域幅の減少許容レベルに関連するルーティングエントリを選択する。いくつかのそのような実現例において、選択は、帯域幅損失を最小化する。いくつかの実現例において、ルートマネージャは、選択された１つ以上の可能な置換セットに起因する帯域幅の予想損失をネットワーク監視者に報告する。いくつかの実現例において、ルートマネージャは、ランダムにまたは他の選択基準に従って、非同一の径路を選択する。いくつかの実現例において、ステップ５３０の選択は、図４に示された方法を参照して説明したステップ４５０の選択と同様である。
【００５０】
さらに図５を参照して、ルートマネージャは、選択された異なるルートの最小セットを用いて多重径路ルートセットを置換することによって、転送テーブルを更新する（ステップ５４０）。ルートマネージャは、多重径路セットのうち、選択されたルーティングエントリ以外のすべての他のルーティングエントリを転送テーブルから削除する。
【００５１】
図６は、本明細書に記載のコンピュータ化要素の実装に適するコンピューティングシステム９１０を示すブロック図である。概略図において、コンピューティングシステム９１０は、命令に応じて操作を実行するための少なくとも１つのプロセッサ９５０と、命令およびデータを記憶するための１つ以上のメモリ装置９７０および／または９７５とを含む。図示の例において、コンピューティングシステム９１０は、１つ以上のプロセッサ９５０を含み、１つ以上のプロセッサ９５０は、バス９１５を介して、メモリ９７０に接続し、外部のネットワーク装置９２４に接続するため、すなわち、ネットワーク（例えば、図１に示されたネットワーク１１０、１３０および１５０）に加入するために、バス９１５を介して、ネットワークインターフェイス９２２を有する少なくとも１つのネットワークインターフェイス制御装置９２０に接続する。また、１つ以上のプロセッサ９５０は、バス９１５を介して、１つ以上のＩ／Ｏインターフェイス９３０のＩ／Ｏ装置および他の装置９８０と連通する。図示されたプロセッサ９５０は、キャッシュメモリ９７５を含むまたはキャッシュメモリ９７５に直接に接続される。一般に、プロセッサは、メモリから受信した命令を実行する。
【００５２】
より詳細には、プロセッサ９５０は、例えば、メモリ９７０またはキャッシュ９７５から得られた命令を処理する任意の論理回路であってもよい。多くの実施形態において、プロセッサ９５０は、マイクロプロセッサユニットまたは専用プロセッサである。コンピューティング装置９１０は、本明細書に記載されたように動作可能な任意のプロセッサまたは任意のプロセッサセットを基礎にして構成されてもよい。プロセッサ９５０は、シングルコアプロセッサであってもよく、マルチコアプロセッサであってもよい。プロセッサ９５０は、複数のプロセッサから構成されてもよい。
【００５３】
メモリ９７０は、コンピュータ読み取り可能なデータの記憶に適する任意の装置であってもよい。メモリ９７０は、固定記憶容量を有する装置であってもよく、取り外し可能な記憶媒体を読み取るための装置であってもよい。例としては、すべての種類の非揮発性メモリ、媒体およびメモリ装置、半導体メモリ装置（例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＳＤＲＡＭ、フラッシュメモリ装置）、磁気ディスク、光磁気ディスク、光ディスク（例えば、ＣＤ  ＲＯＭ、ＤＶＤ−ＲＯＭ、およびブルーレイ（登録商標）ディスク）を含む。コンピュータシステム９１０は、任意数のメモリ装置９７０を有してもよい。
【００５４】
キャッシュメモリ９７５は、一般的に、高速な読み込みを得るために、プロセッサ９５０に近接して配置された一種のコンピュータメモリである。いくつかの実現例において、キャッシュメモリ９７５は、プロセッサ９５０の一部であるかまたはプロセッサ９５０と同一のチップに配置される。いくつかの実現例において、キャッシュ９７５は、複数のレベル、例えばキャッシュ層Ｌ２およびＬ３を有する。
【００５５】
ネットワークインターフェイス制御装置９２０は、ネットワークインターフェイス９２２を介してデータの送受信を管理する。ネットワークインターフェイス制御装置９２０は、ＯＳＩモデルの物理層およびデータリンク層を操作して、ネットワーク通信を行う。いくつかの実現例において、ネットワークインターフェイス制御装置のタスクの一部は、プロセッサ９５０によって処理される。いくつかの実現例において、ネットワークインターフェイス制御装置９２０は、プロセッサ９５０の一部である。いくつかの実現例において、コンピュータシステム９１０は、複数のネットワークインターフェイス制御装置９２０を有する。いくつかの実現例において、ネットワークインターフェイス９２２は、物理ネットワークリンク、例えばＲＪ  ４５コネクタの接続点である。いくつかの実現例において、ネットワークインターフェイス制御装置９２０は、無線ネットワーク接続をサポートし、インターフェイスポート９２２は、無線受信機／送信機である。いくつかの実現例において、コンピューティング装置９１０は、一般的には、ネットワークインターフェイス９２２に接続される物理リンクまたは無線リンクを介して、他のコンピューティング装置９２４とデータの送受信を行う。いくつかの実現例において、ネットワークインターフェイス制御装置９２０は、イーサネット（登録商標）などのネットワークプロトコルを実現する。
【００５６】
他のコンピューティング装置９２４は、ネットワークインターフェイスポート９２２を介して、コンピューティング装置９１０に接続される。他のコンピューティング装置９２４は、コンピューティング装置、ネットワーク装置またはネットワーク機能を有する他のコンピューティング装置のピアであってもよい。例えば、コンピューティング装置９２４は、コンピューティング装置９１０をデータネットワーク、例えばインターネットに接続するハブ、ブリッジ、交換機またはルータなどのネットワーク装置であってもよい。
【００５７】
いくつかの用途において、Ｉ／Ｏインターフェイス９３０は、入力装置および／または出力装置（図示せず）をサポートする。いくつかの用途において、入力装置および出力装置は、同一のハードウェア、例えばタッチスクリーンに組み込まれる。いくつかの用途において、例えばサーバの場合、Ｉ／Ｏインターフェイス９３０を設けないまたはＩ／Ｏインターフェイス９３０を使用しない。いくつかの用途において、外部機器などの付加的な他の要素９８０は、例えばユニバーサルシリアルバス（ＵＳＢ）を介してコンピュータシステム９１０に接続される。
【００５８】
他の装置９８０は、Ｉ／Ｏインターフェイス９３０、外部装置シリアルポートおよび追加のコプロセッサを含むことができる。例えば、コンピュータシステム９１０は、入力装置（例えば、キーボード、マイク、マウスまたは他のポインティング装置）、出力装置（例えば、ビデオディスプレイ、スピーカ、点字端末またはプリンタ）、または付加的なメモリ装置（例えば、携帯型フラッシュドライブまたは外部媒体ドライブ）を接続するためのインターフェイス（例えば、ユニバーサルシリアルバス（ＵＳＢ）インターフェイス）を含んでもよい。いくつかの実現例において、タブレット装置のタッチスクリーンのようなＩ／Ｏ装置は、コンピューティングシステム９１０に組み込まれる。いくつかの実現例において、コンピューティング装置９１０は、プロセッサ９５０の高精度または複雑な計算を補助することができるコプロセッサ、例えば数値演算コプロセッサのような付加的な装置９８０を含む。
【００５９】
本明細書に記載の主題および操作は、本明細書に開示された構造物およびそれらの構造均等物を含むデジタル電子回路、もしくは有形媒体、ファームウェアまたはハードウェア上で具体化されたコンピュータソフトウェア、もしくはこれらの１種以上の組み合わせに実現することができる。本明細書に記載の主題は、有形媒体に上で具体化されたコンピュータプログラムとして、すなわち、データ処理装置によって実行されるためにまたはデータ処理装置の操作を制御するために、１つ以上のコンピュータ記憶媒体にエンコードされたコンピュータプログラム命令の１つ以上のモジュールとして実装することができる。コンピュータ記憶媒体は、コンピュータ読み取り可能な記憶装置、コンピュータ読み取り可能な記憶基板、ランダムまたはシリアルアクセスメモリアレイまたは装置、もしくは１つ以上のこれらの装置の組み合わせであってもよく、その中に含まれてもよい。コンピュータ記憶媒体は、１つ以上の別個の要素または媒体（例えば、複数のＣＤ、ディスクまたは他の記憶装置）であってもよく、その中に含まれてもよい。コンピュータ記憶媒体は、有形且つ非一時的なものであってもよい。
【００６０】
本明細書に記載の操作は、１つ以上のコンピュータ読み取り可能な記憶装置に記憶されたデータまたは他のソースから受信したデータに従って、データ処理装置によって実行されることができる。工程の流れおよび論理流れは、専用論理回路、例えばＦＰＧＡ（フィールドプログラマブルゲートアレイ）またはＡＳＩＣ（特定用途向け集積回路）として実装された装置によって実行されることができる。
【００６１】
本明細書は、多くの具体的な実現詳細を記載しているが、これらの詳細は、発明または特許請求の範囲を限定するものとして解釈すべきではなく、特定の発明の特定の実現に必要な特徴の説明として解釈すべきである。また、本明細書の個別の実現例に記載された特定の特徴は、単一の実現例に組み合わせて実施することができる。逆に、単一の実現例に記載されたさまざまな特徴は、複数の個別の実現例にまたは実現例の適切な組み合わせに実施することができる。さらに、上記で特定の組み合わせで動作すると記載されまたは最初にこのようにクレームされたにも関わらず、必要に応じて、クレームされた組み合わせに含まれた１つ以上の特徴をその組み合わせから除去されてもよく、クレームされた組み合わせを別の組み合わせまたはその変形例に加えてもよい。
【００６２】
用語「または」を言及する場合、「または」を用いて記載された任意の用語が、単一のもの、複数のものおよび記載されたすべてのものを指すように、包含的であると解釈すべきである。「第１」、「第２」および「第３」などの用語は、必ずしも順序を指すものではなく、一般に同様または類似の項目または要素を区別するため使用される。
【００６３】
主題の特定の実現例は、上記のように記載されているが、他の実現例も以下の特許請求の範囲に含まれる。場合によって、特許請求の範囲に記載された操作は、異なる順序で実行されても、望ましい結果を達成することができる。また、添付の図面に示された工程は、望ましい結果を達成するために、必ずしも図示された特定の順序または順番を必要としない。いくつかの実現例において、マルチタスクまたは並列処理を利用することができる。
【図１】
0006383805.tif 000005
【図２】
0006383805.tif 000006
【図３Ａ】
0006383805.tif 000007
【図３Ｂ】
0006383805.tif 000008
【図３Ｃ】
0006383805.tif 000009
【図４】
0006383805.tif 000010
【図５】
0006383805.tif 000011
【図６】
0006383805.tif 000012