(57)【特許請求の範囲】
【請求項１】
通信ネットワーク内の複数の等コストパスから選択するための装置であって、１個または複数個のプロセッサおよび１個または複数個のメモリを含み、前記１個または複数個のメモリは、前記１個または複数個のプロセッサ内にロードされるとき、
通信ネットワーク上の１対のノード間の１組の等コストパスを決定するステップであって、各パスは複数のリンクを含む、１組の等コストパスを決定するステップと、
前記等コストパスのそれぞれのパス上のリンクごとに第１のリンクＩＤを構築するステップであって、前記第１のリンクＩＤのそれぞれは、前記ネットワーク上の前記リンクに接続するノードの順序付きノードＩＤを連結することによって作成される、第１のリンクＩＤを構築するステップと、
前記等コストパスのそれぞれの第１のパスＩＤを構築するステップであって、前記第１のパスＩＤのそれぞれは、前記通信ネットワークを通るそのパスを形成する前記複数のリンクの第１のリンクＩＤを連結することによって作成される、第１のパスＩＤを構築するステップと、
前記通信ネットワークを通る第１のダイバースパスの組を選択するために、前記第１のパスＩＤをパスに依存しない方法でランク付けするステップと、
前記等コストパス上のリンクごとに第２のリンクＩＤを構築するステップであって、前記第２のリンクＩＤのそれぞれは、前記ネットワーク上の前記リンクに接続する前記ノードのうちの１つのノードＩＤを、前記ネットワーク上のそのリンクに接続する前記ノードのうちの他の反転されたノードＩＤに連結することによって作成され、前記ノードＩＤは、前記第１のリンクＩＤを構築するときに決められたのと同じ順序で前記第２のリンクＩＤを形成するために連結される、第２のリンクＩＤを構築するステップと、
前記等コストパスのそれぞれの第２のパスＩＤを構築するステップであって、前記第２のパスＩＤのそれぞれは、前記通信ネットワークを通るそのパスを形成する前記複数のリンクの第２のリンクＩＤを連結することによって作成される、第２のパスＩＤを構築するステップと、
前記通信ネットワークを通る第２のダイバースパスの組を選択するために、前記第２のパスＩＤをパスに依存しない方法でランク付けするステップと、
を含む前記複数の等コストパスから選択する方法を実行するように前記装置を構成するデータおよび命令を含む、装置。
【請求項２】
前記第１のリンクＩＤを形成するために使用される前記連結された順序付きノードＩＤが、低位ノードＩＤが前記リンクＩＤの最上位ビットを形成し、高位ノードＩＤが前記リンクＩＤの最下位ビットを形成するように順序付けられる、請求項１に記載の装置。
【請求項３】
前記第１のパスＩＤを構築するステップが、前記第１のパスＩＤ内で前記第１のリンクＩＤが現れる順序がパスに依存しないように前記第１のリンクＩＤをソートするステップを含む、請求項１に記載の装置。
【請求項４】
前記等コストパスのそれぞれの前記第１のパスＩＤを構築するステップが、最低位から最高位に前記リンクＩＤをソートするステップを含む、請求項１に記載の装置。
【請求項５】
前記第１のパスＩＤをランク付けするステップが、前記第１のパスＩＤを最低位から最高位に順序付けるステップを含む、請求項１に記載の装置。
【請求項６】
前記通信ネットワークを通る前記第１のダイバースパスの組が、最も低いランクの第１のパスＩＤを有する前記パス、および最も高いランクの第１のパスＩＤを有する前記パスである、請求項５に記載の装置。
【請求項７】
前記第２のリンクＩＤを構築するステップが、前記リンクのそれぞれの前記ノードＩＤのうちの１つに同一の反転関数を適用して前記反転されたノードＩＤを作成するステップを含む、請求項１に記載の装置。
【請求項８】
前記反転関数が排他的論理和関数である、請求項７に記載の装置。
【請求項９】
前記第２のリンクＩＤを形成するために使用される前記連結された順序付きノードＩＤが、低位ノードＩＤが前記リンクＩＤの最上位ビットを形成し、高位ノードＩＤが前記リンクＩＤの最下位ビットを形成するように順序付けられる、請求項７に記載の装置。
【請求項１０】
前記第２のパスＩＤを構築するステップが、前記第２のパスＩＤ内で前記第２のリンクＩＤが現れる順序がパスに依存しないように前記第２のリンクＩＤをソートするステップを含む、請求項１に記載の装置。
【請求項１１】
前記第２のパスＩＤを形成する場合、連結を行う前に前記第２のリンクＩＤを最低位から最高位に順序付ける、請求項１に記載の装置。
【請求項１２】
前記第２のパスＩＤをランク付けするステップが、前記第２のパスＩＤを最低位から最高位に順序付けるステップを含む、請求項１に記載の装置。
【請求項１３】
前記通信ネットワークを通る前記第２のダイバースパスの組が、最も低いランクの第２のパスＩＤを有する前記パス、および最も高いランクの第２のパスＩＤを有する前記パスである、請求項１２に記載の装置。
【請求項１４】
前記第１のパスの組が通る前記ネットワーク上の通過ノードを優先的に選択するために、前記第１のリンクＩＤおよび前記第２のリンクＩＤを作成する前にすべてのノードＩＤに第１の反転関数を適用するステップをさらに含む、請求項１に記載の装置。
【請求項１５】
前記第２のリンクＩＤを構築するステップが、前記通過ノードを通り、前記通過ノードから分岐する前記第２のパスの組を選択できるようにするために、前記リンクのそれぞれの前記ノードＩＤのうちの１つに第２の反転関数を適用して前記反転されたノードＩＤを作成するステップを含む、請求項１４に記載の装置。
【請求項１６】
リンクによって相互接続される複数のノードを含む通信ネットワークであって、各ノードはノードＩＤを有し、少なくとも１個のプロセッサおよび関連するメモリを含み、各ノードの前記メモリは、前記プロセッサ内にロードされるとき、前記ノードが前記ネットワーク上の他のノードとネットワーク構成情報を交換し、前記ネットワークを通るパスを計算することを可能にするリンクステート型ルーティングプロトコルプロセスを前記ノードに実装させるデータおよび命令をさらに含み、各ノードの前記メモリは、前記プロセッサ内にロードされるとき、
通信ネットワーク上の１対のノード間の１組の等コストパスを決定するステップであって、各パスは複数のリンクを含む、１組の等コストパスを決定するステップと、
前記等コストパスのそれぞれのパス上のリンクごとに第１のリンクＩＤを構築するステップであって、前記第１のリンクＩＤのそれぞれは、前記ネットワーク上の前記リンクに接続するノードの順序付きノードＩＤを連結することによって作成される、第１のリンクＩＤを構築するステップと、
前記等コストパスのそれぞれの第１のパスＩＤを構築するステップであって、前記第１のパスＩＤのそれぞれは、前記通信ネットワークを通るそのパスを形成する前記複数のリンクの第１のリンクＩＤを連結することによって作成される、第１のパスＩＤを構築するステップと、
前記通信ネットワークを通る第１のダイバースパスの組を選択するために、前記第１のパスＩＤをパスに依存しない方法でランク付けするステップと、
前記等コストパス上のリンクごとに第２のリンクＩＤを構築するステップであって、前記第２のリンクＩＤのそれぞれは、前記ネットワーク上の前記リンクに接続する前記ノードのうちの１つのノードＩＤを、前記ネットワーク上の前記リンクに接続する前記ノードのうちの他の反転されたノードＩＤに連結することによって作成され、前記ノードＩＤは、前記第１のリンクＩＤを構築するときに決められたのと同じ順序で連結される、第２のリンクＩＤを構築するステップと、
前記等コストパスのそれぞれの第２のパスＩＤを構築するステップであって、前記第２のパスＩＤのそれぞれは、前記通信ネットワークを通るそのパスを形成する前記複数のリンクの第２のリンクＩＤを連結することによって作成される、第２のパスＩＤを構築するステップと、
前記通信ネットワークを通る第２のダイバースパスの組を選択するために、前記第２のパスＩＤをパスに依存しない方法でランク付けするステップと、
を含む方法を前記ノードに実行させるデータおよび命令をさらに含む、通信ネットワーク。
【請求項１７】
前記第１のダイバースパスの組および前記第２のダイバースパスの組が前記ネットワークの選択された位置において分岐することを可能にするために、ノード分類によるノードＩＤの別個の範囲から各ノードＩＤを管理的に割り当てる、請求項１６に記載のネットワーク。
【請求項１８】
前記第１のダイバースパスの組および前記第２のダイバースパスの組を前記ネットワークの端部においてリンクダイバースにするために、前記ネットワークの前記端部のノードに低い範囲からのノードＩＤを割り当て、前記ネットワークの内部のノードに高い範囲からのノードＩＤを割り当てる、請求項１７に記載のネットワーク。
【請求項１９】
前記第２のリンクＩＤを構築するステップが、前記リンクのそれぞれの前記ノードＩＤのうちの１つに同一の反転関数を適用して前記反転されたノードＩＤを作成するステップを含む、請求項１６に記載のネットワーク。
【請求項２０】
前記第２のリンクＩＤを形成するために使用される前記連結された順序付きノードＩＤが、低位ノードＩＤが前記リンクＩＤの最上位ビットを形成し、高位ノードＩＤが前記リンクＩＤの最下位ビットを形成するように順序付けられる、請求項１９に記載の装置。
【請求項２１】
前記第１のリンクＩＤおよび第２のリンクＩＤの構築を連続して繰り返す間、通過ノードが順に通過点となるように、前記通過ノードの前記ノードＩＤを管理的に割り当てる、請求項１６に記載のネットワーク。
【請求項２２】
前記通過ノードの前記管理的に割り当てられたノードＩＤに一致するように選択される選択的反転関数を、第１のリンクＩＤおよび第２のリンクＩＤを作成する前記ステップ、第１のパスＩＤおよび第２のパスＩＤを作成する前記ステップ、および前記第１のパスＩＤおよび前記第２のパスＩＤをランク付けする前記ステップを反復する間、すべてのノードＩＤに連続的に適用して、前記ネットワーク上の各割当済み通過ノードにより前記反復中に様々なパスが順に選択されることをもたらす、請求項２１に記載のネットワーク。
【請求項２３】
前記反転関数が排他的論理和関数である、請求項２２に記載のネットワーク。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、参照によりその各々の内容が本明細書に組み込まれる、２００９年１０月７日に出願された米国特許出願第１２／５７４，８７２号明細書、２００９年９月８日に出願され、「Ｅｎｈａｎｃｅｄ  Ｓｙｍｍｅｔｒｉｃ  Ｔｉｅ  Ｂｒｅａｋｉｎｇ  Ａｌｇｏｒｉｔｈｍｓ」と題された米国仮特許出願第６１／２４０，４２０号明細書、および２００９年９月２６日に出願され、「Ｅｎｈａｎｃｅｄ  Ｓｙｍｍｅｔｒｉｃ  Ｔｉｅ  Ｂｒｅａｋｉｎｇ  Ａｌｇｏｒｉｔｈｍｓ」と題された米国仮特許出願第６１／２４６，１１０号明細書の優先権を主張する。
【０００２】
本発明は、通信ネットワークに関し、より詳細には、複数の等コストパスから選択するための方法および装置に関する。
【背景技術】
【０００３】
データ通信ネットワークは、共に結合され、互いにデータを送るように構成される様々なコンピュータ、サーバ、ノード、ルータ、スイッチ、ブリッジ、ハブ、プロキシ、および他のネットワーク装置を含むことができる。本明細書では、これらの装置を「ネットワーク要素」と呼ぶ。データは、１つまたは複数の通信リンクを利用してデータフレーム、パケット、セル、セグメントなどのプロトコルデータユニットをネットワーク要素間で送ることにより、データ通信ネットワークを介して伝えられる。ネットワークを介してその発信源と宛先との間を移動するとき、特定のプロトコルデータユニットは複数のネットワーク要素によって処理され、複数の通信リンクを横断する場合がある。
【０００４】
通信ネットワーク上の様々なネットワーク要素は、本明細書ではプロトコルと呼ぶ事前に定義された一連の規則を使用して互いに通信する。ネットワーク要素間で伝送するためにどのように信号を形成すべきか、プロトコルデータユニットがとるべき様々な形、ネットワーク要素がどうパケットを処理しまたはネットワークを通してどのルートにすべきか、パス情報に関連する情報をネットワーク要素間でどう交換すべきかなど、通信の様々な状況を管理するために様々なプロトコルが使用される。異なるプロトコルを使用するネットワークは異なるように動作し、異なる種類の通信ネットワークであるとみなされる。所与の通信ネットワークは、様々なネットワーク層において複数のプロトコルを使用して、ネットワーク要素がネットワークを介して互いに通信できるようにすることができる。
【０００５】
パケット転送通信ネットワークでは、ノードがネットワークのトポロジについて学習することができ、トポロジで得た知識に基づき、他のネットワークノードのそれぞれにトラフィックをどのようにルートさせるのか決定することができる。往々にして、パスを選択するための主な基準はパスのコストであり、パスのコストは、ノード間のホップ数の観点から、またはノードを接続するリンクの帯域幅など他の何らかのメトリクスにより、またはその両方によって特定することができる。開放型最短パス優先（ＯＳＰＦ）および中間システム間連携（ＩＳ−ＩＳ）は、パスのコストについての各ノードの知らせに基づいて最短パスを確立する、広く使われているリンクステート型プロトコルである。
【０００６】
所与のノードが１対の所与のブリッジ間の最短パス上にあるかどうか、様々な最短パスアルゴリズムを使用して決定を下すことができる。ノードは、ノードの対間の最短パスを計算するために、フロイドのアルゴリズムやダイクストラの単一源最短パスアルゴリズムなど、全対最短パスアルゴリズムを実装することができる。他の任意の適切な最短パスアルゴリズムを利用し得ることを理解すべきである。最短パスアルゴリズムが使用するリンクメトリクスは、静的とすることができ、またはトラフィックエンジニアリング情報を考慮に入れるために動的に修正することもできる。例えば、リンクメトリクスには、容量、速度、使用量、可用性などのコストの測度が含まれ得る。
【０００７】
１対の所与のノード間のネットワークを通る、複数の等コストパスが存在する状況がある。ＩＳＩＳおよびＯＳＰＦは、単純化した単方向同位解消プロセスを使用してこれらの複数の等コストパスから選択し、または単に等コストパス間にトラフィックを分配する。分配アルゴリズムは特定されておらず、ルータごとに異なり得る。あるいは、各ルータは単一パスの局所的選択を行うことができるが、他のルータが行う選択との一貫性は考慮されない。その結果いずれの場合にも、順方向によって使用されるパスを逆方向のフローが使用することは保証されない。このことは、全装置があらゆる宛先のための完全な転送テーブルを有し、あらゆるインターフェイス上であらゆる宛先行きのパケットを無差別に受け付けるユニキャスト転送には十分である。しかし、安定したネットワーク内の実際の転送パスがコネクション型特性を示せるようにするために、一貫性のある決定が下されなければならず、双方向対称性が求められる、マルチキャストルーティングなどの他の状況ではうまく機能しない。
【０００８】
マルチキャスト開放型最短パス優先（ＭＯＳＰＦ）などのマルチキャストルーティングプロトコルは、同じ最短パスツリーを構築するネットワーク内の各ルータに依存する。このためＭＯＳＰＦでは、リンクの種類、ＬＡＮ対ポイント・ツー・ポイント、およびルータの識別子に基づく同位解消方式を実装して同一ツリーがもたらされることを保証する。しかし、最も大きい識別子を有する親に同位解消の決定を基づかせることは、逆方向フローによって使用されるパスが、順方向フローによって使用されるパスと同じでない可能性があることを含意する。
【０００９】
提案された標準８０２．１ａｑとして電気電子技術者協会（ＩＥＥＥ）が規定しているプロバイダリンクステートブリッジング（ＰＬＳＢ）など、一部の新興プロトコルでは、トラフィックが順方向／逆方向の両フロー方向で共通のパスを使用するように、ユニキャストトラフィックおよびマルチキャストトラフィックの両方について、ネットワーク上での転送の双方向の一致を保つ要件がある。したがって、等コストパス間の同位解消を行う場合、ノードが常に同じ決定に達し、どのノードが所与の計算のルートであるのかに同位解消プロセスが依存しないことが重要である。さらに、ノードが、最低限の処理労力で同位解消を行えることが望ましい。
【００１０】
一般に、どんな同位解消アルゴリズムも完全であるべきであり、すなわち常に２つのパスから選択できなければならない。さらに、同位解消アルゴリズムは、可換的、連想的、対称的、かつ局所的であるべきである。これらの特性を以下の表１に示す。
【表１】
0005551253.tif 000002
【００１１】
同位解消アルゴリズムの最重要点は、常に「機能する」ことである。このアルゴリズムにどんなパスの組が示されようと、このアルゴリズムは常に唯一のパスを選択できるべきである。したがって何よりもまず、同位解消アルゴリズムは完全であるべきである。一貫性のある同位解消を行うために、このアルゴリズムは、等コストパスを発見し、同位解消を行う順序に関係なく同じ結果をもたらさなければならない。つまり、同位解消アルゴリズムは可換的かつ連想的であるべきである。パスの対を検討する順序に関係なく、３つのパス間の同位解消が同じ結果をもたらさなければならないという要件は、それほど明白ではないが、等コストパスは、ネットワークを通る計算の方向に応じて様々な順序で発見されるので、一貫性のある結果を得るには不可欠である。同位解消アルゴリズムは対称的でもあるべきであり、すなわち、同位解消アルゴリズムはパスの方向に関係なく同じ結果をもたらさなければならず、つまり２つのノードＡとＢとの間の最短パスは、ＢとＡとの間の最短パスの逆にならなければならない。
【００１２】
最後に、局所性は、ルーティングシステムによって活用される最短パスの非常に重要な特性である。この局所性特性は、単純に、最短パスのサブパスも最短パスであることを示す。この一見したところ些細な最短パスの特性には、宛先ベースの転送を使用するパケットネットワークにおいて重要な使い道がある。これらのネットワークでは、パスに沿った中間ノードにおける転送決定は、パケットの送信元アドレスではなくパケットの宛先アドレスだけに基づく。その結果、自らの転送情報を生成するために、ノードは、そのノードから他のすべてのノードまでの最短パスを計算するだけでよく、作成される転送情報の量は、ネットワーク内のノードの数に比例して二次的ではなく一次的に増大する。したがって、宛先ベースの転送を可能にするために、同位解消アルゴリズムは最短パスの局所性特性を保たなければならず、つまり同位解消アルゴリズムが選択する最短パスのサブパスは、同位解消アルゴリズムが選択する最短パスにならなければならない。
【００１３】
計算効率についての検討は、一見したところ異なる別の要件を同位解消アルゴリズムに加え、その要件とはつまり、このアルゴリズムは等コストパスが発見され次第、同位解消の決定を行えるべきであるというものである。例えば、中間ノードＩが２つの等コストパスｐおよびｑによってノードＡに接続され、別の１対の等コストパスｒおよびｓによってノードＢに接続される場合、ノードＡとノードＢとの間には、すべてノードＩを通過する４つの等コストパスｐ＋ｒ、ｐ＋ｓ、ｑ＋ｒ、ｑ＋ｓがある。
【００１４】
ノードＡとノードＢとの間のパスを計算するとき、ＡとＩとの間の等コストサブパス（ｐおよびｑ）がまず発見される。これら２つのパスの知識を繰り越す必要性を回避するために、同位解消アルゴリズムは、第２の等コスト最短サブパスの存在を発見し次第、これらのパスから選択できるべきである。中間ノードにおいて下される同位解消の決定は、最終的には計算結果に影響を及ぼす。ノードＡとノードＩとの間の２つのサブパスｐおよびｑのうちの一方を除去することにより、このアルゴリズムは、ノードＡとノードＢとの間の４つの最短パスのうちの２つをさらなる検討から除外する。同様に逆方向では、同位解消アルゴリズムは、ＡとＩとの間のパスについての最終的な決定を下す前に、（ノードＢとノードＩとの間の）サブパスｒおよびｓから選択を行う。これらの局所的決定は互いに一貫性がなければならず、具体的には、ネットワーク内の後続のノードにパスを拡張しても、２つの等コストパス間の選択は同じままであるべきである。
【００１５】
同位解消アルゴリズムが一貫性のある局所的決定を下すことを保証するために、対称性および局所性の条件がどちらも必要かつ十分であることが判明し、このことは、複数の等コスト最短パスがある状態で、単一源最短パスアルゴリズムの非常に効率的な実装形態をもたらすために活用することができるということである。
【００１６】
表１に提示した要件の一覧は網羅的であることを意図せず、表１に含めることができる最短パスの他の特性がある。例えば、最短パスの一部ではないリンクがグラフから除去される場合、最短パスの選択は影響を受けない。同様に、被選択パスの一部ではないリンクがネットワークを表すグラフから除去される場合、たとえこのリンクがアルゴリズムによって拒否された一部の等コストパスの一部分でも、複数の等コストパス間の同位解消アルゴリズムの選択は影響を受けない。
【００１７】
多くのネットワーキング技術は、ネットワーク内の任意の２点間の単一の最短パスに限定されないので、複数のパスを活用することができる。これは、複数のパス内への次のホップの選択がホップごとに任意でよく、対称性の要件を有さないコネクションレスネットワークの形を取ることができ、または終端間パスへの割当がネットワークへの入口点に限定されるコネクション型と厳密にすることができる。イーサネットおよび具体的には新興の８０２．１ａｑ標準は、対称性およびコネクション型挙動の両方に対する要件があり、データプレーンがネットワーク内の任意の２点間の複数のパスをサポートすることができる一例である。イーサネットは、ＶＬＡＮごとに一意のパスが存在し得るように、ＶＬＡＮごとにフィルタリングデータベースを論理的に区分化できることによりこの要件を実現する。課題は、最小数のパスのバリエーションがネットワークを十分活用するように、各ＶＬＡＮにおける接続性のバリエーションをインスタンス化（ｉｎｓｔａｎｔｉａｔｅ）し、パスの組のダイバーシティを最大化することにより、利用可能な接続性を効果的に活用することである。ネットワークを活用するために必要なパスのバリエーションと考えられる実在する一意パスの数の比を拡大率（ｄｉｌａｔｉｏｎ  ｒａｔｉｏ）と呼び、望ましい目標はこの比を最小化することであり、その理由はこの比を最小化することが、ネットワークを最大限に活用することに関連する状態および計算の量を最小化するからである。
【００１８】
多くの技法が、上記の表１に概説した特性を明確に維持しようとすると同時に、１対のノード間に複数の等コストパスが存在するパスダイバーシティを高めようと試みてきた。米国特許出願公開第２００９／０１６８７６８号明細書は１つの技法を提供し、この技法に対する拡張も試みられている。例えば、ノードＩＤのアルゴリズム的操作は機能するが、パスダイバーシティの量を大幅に増やすことはないことが分かった。例えば、ノードＩＤの操作を使用し、８×４の完全なメッシュノード配列のリンク利用率は６３％から６７％に及んだ。さらに、４つ未満のパスがある場合、１組のノードＩＤ上で４つの一意パスをランク付けしようとする試みは、重複する順列を探索するのではなく、２番目に高位のパスが結局は最低位パスまたは２番目に低位のパスに等しくなるので機能を果たさなくなる。さらに、ノード識別子の大きさ、およびノードＩＤのスペースがまばらか密かはほとんど影響しない。
【００１９】
試行されたもう１つの技法は、負荷不等率（ｌｏａｄ  ｄｉｖｅｒｓｉｔｙ）を最大化することに基づいてパスを割り当てるものである。この技法は非循環平面グラフをもたらさず、そのことは単一の最短パスツリー内の所与のノードへの２つ以上のパスを必要とすることを意味するので、この技法は機能しないことが分かった。さらに、ネットワークが計算ノードから離れて横断されるので、この技法は将来の計算結果を事前に知っていることを必要とする。要するに、どちらかの端からネットワークの中央へと進むとき、ギャップをつなぐものが何もない。
【００２０】
試行されたさらに別の技法は、よく知られている特定の（最低位、最高位、２番目に低位、２番目に高位等の）ランキングを選択するものである。この技法は２つのパス（高位／低位）では機能するが、より多くの数のパスの選択に拡張する場合は機能を果たさなくなる。他のノードのランク付けされた組と次のホップにおいて組み合わせられる場合、中間ノードは自らが生成する１組のランク付きパスがどのように成り行くのかを予想できないので、この技法は機能せず、そのため局所性特性が失われる。その結果、親によってランク付けされる最短パスの断片が、子によって予期されるパスと不連続になる。さらに、子ノードにおける低位および高位以外のパスランキングが非循環ツリーをもたらす保証はない。加えて、最高位パスまたは最低位パスの障害はそのパスから外れてランク付けされるすべてのパスに影響を及ぼすので、２番目に高位、２番目に低位等を選択することは依存関係を作り出す。最後に、そのようなアルゴリズムを機能させることができると仮定しても、そのアルゴリズムは、明らかにしたように最短パスの一部を分解（ｒｅｓｏｌｖｅ）できる特性を失い、ダイクストラ計算が進行したときすべての状態を繰り越す必要があるため、アルゴリズムの性能に著しく影響する。その結果、低いランキングおよび高いランキングが、１組のランク付パスから選択し得る唯一の信頼できるランキングになる。したがって、３つ以上のパスを選択する場合、単純に追加のランキングを選択することを使用してパスダイバーシティを高めることはできない。
【００２１】
米国特許出願公開第２００９／０１６８７６８号明細書は、１つの同位解消プロセスを開示し、その内容は参照により本明細書に組み込まれる。この出願に記載されているプロセスは十分機能するが、利用可能なパスにわたりトラフィックを分配できるようにするために、複数のパスがある状態で良好なパス分散を得るための別の方法を提供することがなお有利である。さらに、この分散は、好ましくは通常動作の機能であり、複雑なネットワーク設計を必要とせず、ネットワークアドミニストレータによるどんな明確な設定も最小化すべきである。
【発明の概要】
【００２２】
以下の概要およびこの明細書の最後に示す要約を、下記の詳細な説明の中で論じる概念の一部を紹介するために本明細書に提供する。概要および要約の節は包括的ではなく、下記の特許請求の範囲によって示す保護可能な主題の範囲を線引きすることを意図するものでもない。
【００２３】
複数の等コストパスから選択するための方法および装置は、かなりの程度のパスダイバーシティを伴い、かつ重要な基本特性を保ちながら、分散アルゴリズムを使用して複数の等コストパスから複数の（３つ以上の）パスを選択することを可能にする。つまりこの拡張アルゴリズムは対称性を実現し、グラフにわたる計算の方向に関係なく結果は同じになる。提案するアルゴリズムは、所与のランキングの最短パスの任意の部分も最短パスであるように、ダウンストリームの一致も提供する。最後に、このアルゴリズムは、非循環最短パスツリーをもたらす。
【００２４】
本発明の一実施形態によれば、リンクＩＤを作成するために、ネットワーク内の各リンクに接続するノードＩＤを使用する。例えば、リンクＩＤを作成するために、リンクの両端のノードＩＤを使用することができる。ネットワークを通るパスを形成する１組の順序付きリンクＩＤを連結することにより、ネットワークを通る各パスにパスＩＤを与える。パスＩＤを作成してパスのランク付けを容易にする場合、リンクＩＤを、最低位ＩＤから最高位ＩＤにソートする。ネットワークを通る第１のダイバースパスの組として、このランク付きリストから高位および低位にランク付けしたパスを選択する。もしネットワーク内のすべてのコンピューティングノードが共通の改変形態を使用するように構成されているならば、リンクＩＤ内のノードＩＤを低位−高位ではなく、高位−低位として順序付けることや、ランク付けする前にパスＩＤを高位から低位にソートすることなど、同様の特性を有するこの改変形態が、アルゴリズムの等しく有効なインスタンス化であり得ることに気付くのは自明なはずである。
【００２５】
追加のパスを選択するために、リンク名を付ける方法を変えて、パスに新たなパスＩＤを割り当て、最初に選択した低高位パスから有利なダイバーシティ特性を有するランク付けを促進できるようにする。例えば、各リンクに関連する高位ノードＩＤを反転させることができ、それにより、当初の低位ノードＩＤおよび反転された高位ノードＩＤを使用して新たなリンクＩＤを作成することができる。例えば、ノードＩＤが１から（２＾１６−１）の範囲で割り当てられる場合、２＾１６からノードＩＤを減算することにより、またはノードＩＤを０ｘｆｆｆｆもしくは何らかの同様の値と排他的論理和演算することにより、ノードＩＤを反転させることができる。これらの新たなリンクＩＤは、新たなパスＩＤ（連結されたリンクＩＤの順序付きリスト）を作成するために使用し、次いでそれらのパスＩＤをランク付けし、ランク付けし直した１組のパスから、低いランキングのパスおよび高いランキングのパスを第２の１対のパスとしてとる。この場合もやはり、リンクＩＤ内の低位ノードＩＤに変換を施すなど、等しく有効な改変形態を仮定することができる。
【００２６】
リンクＩＤを構築するための、ノードＩＤのソート後の連結は一意であり、そのためネットワークを通る各パスＩＤも一意であり、どんな変換を施そうとリンクＩＤ内のノードＩＤのいずれかはこの一意性を保つ必要があり、よって「不可逆（ｌｏｓｓｙ）」であってはならず、一意に施さなければならず、この要件を満たす一例は単純なビット反転である。したがって、例えば低位ノードＩＤと、反転されたより高位のノードＩＤとのソート後の連結（例えば逆数（ノードＢ）に連結されるノードＡ、ただしノードＡ＜ノードＢ）も一意であり、単純にパスをランク付けし直すこととなる。したがって、ネットワーク内のリンク利用率の程度を高めるために、第１の低位／高位パスランキングと、第１のランキングとは著しく異なる第２の低位／高位パスランキングとの両方を得ることができる。さらに、相対ランキングがないのでパス障害の結果は次につながらず、前に選択した１つまたは複数のパスが共用するリンクに障害が起きればそれらのパスを検討から除外するが、残りのパスのランキング、つまりこの技法を使って選択される残りの存続可能なパスのルーティングには影響を及ぼさない。
【００２７】
本発明の諸態様は、添付の特許請求の範囲の中で詳細に指摘される。以下の図面の中で本発明を例として示すが、類似の参照番号は同様の要素を示す。以下の図面は、専ら例示目的のために本発明の様々な実施形態を開示し、本発明の範囲を限定することを目的とするものではない。明瞭にするために、すべての図面においてすべてのコンポーネントをラベル表示し得るとは限らない。
【図面の簡単な説明】
【００２８】
【図１】本発明の一実施形態を実装することができる通信ネットワークの一例の機能ブロック図である。
【図２】本発明の一実施形態を実装することができる通信ネットワークの一例の機能ブロック図である。
【図３Ａ】参照ネットワーク内の１対のノード間の等コストパスの一例を示す図である。
【図３Ｂ】参照ネットワーク内の１対のノード間の等コストパスの一例を示す図である。
【図３Ｃ】参照ネットワーク内の１対のノード間の等コストパスの一例を示す図である。
【図３Ｄ】参照ネットワーク内の１対のノード間の等コストパスの一例を示す図である。
【図３Ｅ】参照ネットワーク内の１対のノード間の等コストパスの一例を示す図である。
【図４】本発明の一実施形態による、複数の等コストパスから選択されるプロセスの流れ図の一例、およびそのプロセスを図３Ａ〜３Ｅに示す等コストパスに終端ノードにおいて適用することを示す図である。
【図５Ａ】図３Ａ〜３Ｅに示すパス上の中間ノードにおいて図４のプロセスを適用することを示す図である。
【図５Ｂ】図３Ａ〜３Ｅに示すパス上の中間ノードにおいて図４のプロセスを適用することを示す図である。
【図６】（図４に示すように）エンドポイントにおいて、および（図５Ａ〜５Ｂに示すように）中間点において複数の等コストパスから選択する場合のプロセスの一致を示す図である。
【図７】本発明の一実施形態によりネットワーク上のパス選択を調節するために、ノードＩＤの管理的な割当と併せて反転関数の操作をどのように使用し得るかを示す図である。
【図８】本発明の一実施形態によりネットワーク上のパス選択を調節するために、ノードＩＤの管理的な割当と併せて反転関数の操作をどのように使用し得るかを示す図である。
【図９】本発明の一実施形態により、エッジノードをネットワーク上の同位解消点とすることによりリンクダイバースパスの選択を強制するために、ノードＩＤの操作をどのように使用得るかを示す図である。
【図１０】本発明の一実施形態により、エッジノードをネットワーク上の同位解消点とすることによりリンクダイバースパスの選択を強制するために、ノードＩＤの操作をどのように使用得るかを示す図である。
【発明を実施するための形態】
【００２９】
【００３０】
【００３１】
【００３２】
【００３３】
【００３４】
【００３５】
【００３６】
図１は、本発明を実装することができる、リンクステート型プロトコルによって制御されるイーサネットネットワーク１０の一例を示し、図２は、本発明の一実施形態を実装するために使用することができるノードのうちの１つの機能ブロック図を示す。図１のメッシュネットワークを形成するノード（ブリッジまたはブリッジノードとも呼ぶ）１１〜１８は、リンクステート広告（メッセージ）２６を互いに交換する。この交換は、リンクステートルーティングシステムのよく理解されている機構によって実現される。ルーティングシステムモジュール２１は、リンクステート型ルーティングプロトコルを使用し、ネットワークトポロジに関する情報２６をネットワーク内のピアノードと交換する。この情報交換は、ノードが、ネットワークトポロジについての同期されたビューを生成することを可能にする。各ノードにおいて、最短パス決定モジュール２２が最短パスツリーを計算し、この最短パスツリーは他の各ノードへの最短パスを決定する。ネットワークを通るトラフィックを導くためのエントリで転送情報ベース２４を追加するために、モジュール２２が決定する最短パスを使用する。
【００３７】
上述の通り、ネットワークの端から端まで複数の等コストパスがある状況が生じる。この場合、同位解消モジュール２３が、一貫した方法でそれらの等コストパスのうちの１つ（または複数）を選択する。通常動作では、パケットがノードにおいて受信され、宛先探索モジュール２５が、受信パケットを転送すべきポート（またはマルチキャスト配送の場合は複数のポート）を、ＦＩＢ２４を使用して決定する。ＦＩＢ２４内に有効なエントリがない場合、そのパケットを放棄することができる。当然のことながら、図２に示すモジュールは専ら例示目的であり、当業者によって理解されるように、ノードのモジュール間で機能を組み合わせまたは分散させることによって実装することができる。
【００３８】
完全なノードのダイバーシティが不可能であるかまたは限定されているが、パス間のリンクダイバーシティがあり得るという状況がある。同様に、ファットツリーネットワークアーキテクチャがしばしば展開されるデータセンタの応用例では、往々にして３つ以上の等コストパスが使用可能である。特定のリンクに負荷をかけ過ぎることを避けるために、利用可能なパスのすべてにわたりトラフィックを分散させてリンクの構成を「再編成」し、パス間のリンクダイバーシティの程度を高めることが望ましい。したがって、これらのおよび他の状況では、１対のノード間でトラフィックを転送するために使用すべき、ネットワークを通る等コストパスのうちの複数（３つ以上）を選択することが望ましい。
【００３９】
本発明の一実施形態によれば、リンクＩＤはノードＩＤの順序付連結（ｏｒｄｅｒｅｄ  ｃｏｎｃａｔｅｎａｔｉｏｎ）から構築され、パスＩＤはリンクＩＤの順序付連結から構築され、そのためパスＩＤをランク付けすることができる。このランキングは、これらのランク付パスのうちの最低位および最高位を選択することにより、同位解消アルゴリズムにおける初期パス選択を実装するために使用する。
【００４０】
一実施形態では、リンクＩＤを作成するために、ネットワーク内の各リンクに接続するノードＩＤを使用する。この状況において、リンクＩＤは、リンクの両端上のノードＩＤを連結することによって生成される。ノードＩＤの連結は、ノードＩＤがリンクＩＤの範囲内でランク付けされるように実装し、そのため一例では、最低位ノードＩＤが最初であり、より高位のノードＩＤは２番目になる。したがって、リンクがノード４８からノード２３に及ぶ場合、リンクＩＤは（４８，２３）ではなく（２３，４８）になる。ランク付けする前にノードＩＤをソートすることは、計算順序に関係なく共通の結果を計算できるようにする。ネットワークを通る１組の終端間パスを生成し、それらのパス上のリンクのリンクＩＤを連結してパスＩＤを形成する。パスＩＤ内のリンクＩＤも同様にソートし、その後、パスＩＤをランク付けし、第１のダイバースパスの対として高位／低位パスＩＤを選択する。
【００４１】
次いで、第２のパス選択を得るために、例えばリンクＩＤを作成するために使用した２つのノードＩＤの一方に対して普遍的に変換を施すことにより、パスＩＤを作成するために使用したリンクＩＤを再命名する。この変換は、リンクＩＤを形成する連結されたノードＩＤ内の第２の（すなわち最下位）ノードＩＤに対して常に施す。改訂されたリンクＩＤを使用して、等コストパスのそれぞれのために新たなパスＩＤを作成する。新たなパスＩＤにランクを付け、第２の低位−高位ランク付けされるパスの対を作成するために、変換したパスＩＤのうちの最低位ランクおよび最高位ランクをとることにより、第２の１組のパスを選択する。この第２の低位−高位ランク付けされるパスの対は、当初の被選択パスの対と違ってかなりの程度のリンクダイバーシティを有するが、ノードＩＤの配置への依存が相変わらずあるのでリンクダイバースが十分に保証されない。密メッシュネットワークでは、さらにダイバースパスの順列を生成するために、リンクＩＤの他の変換を使用してもよい。ただし、リンクＩＤ内の低位ノードＩＤおよび高位ノードＩＤの両方を共通変換することは、大幅なダイバーシティをもたらすには高度に相関し過ぎていることに留意すべきである。
【００４２】
この手法を、繰り返される単純なノードＩＤの無作為割当と対比させることにより、この手法の利益が示される。無作為のノードＩＤが繰返し割り当てられ、低位パスＩＤをとる場合、得られる結果は誕生日問題の式によって直接予測することができる。１−（１−１／ｎ）＊＊ｋ．  （ｎ＝リンク，  ｋ＝実際に使用されるパスの数）。そのため、（例えば）デュアルアップリンクを示すファットツリーでは、階層のどのレベルにおいても典型的には４つのリンクがある。したがって、４つのツリーを伴う等コストマルチツリー（ＥＣＭＴ）を使用する場合、このプロセスは、平均してリンクの約６８％を使用する。ネットワークを十分に利用するためにこの値を改善するには、探索される等コストツリーのバリエーション数を著しく拡張することを必要とし、リンク利用率の標準偏差はかなり変化する。
【００４３】
好ましいアルゴリズムは、リンクＩＤ内の高位ノードＩＤの単純な反転において、変換がノードＩＤの相対ランキングしか考慮せず、ノードＩＤが割り当てられる方法（連続、無作為、範囲等）に敏感ではないという点で望ましい特性を有する。そのため、性能は管理実務に影響されず、ネットワークの挙動を管理することが望まれる状況では設計規則を容易に促進する。
【００４４】
好ましいアルゴリズムは、実現されるパスダイバーシティの程度が、１組の等コストパスによって横断されるホップ数と無関係であるというさらに望ましい特性を有する。したがって、ネットワーク直径が増すにつれてダイバーシティの量が低下（ｄｅｇｒａｄｅ）することはない。
【００４５】
高対称性の階層ネットワークに適用されるわずかな程度の管理は、このアルゴリズムが実現するダイバーシティの程度をさらに高めることができる。スイッチング階層のレベルが、奇数または偶数、および大量の差で増進（ｐｒｏｍｏｔｅ）される奇数行または偶数行のＩＤとして特定できるように列挙される場合、リンクダイバースパスをアルゴリズムが選択できない状況の多くは除去される。例えば、最大ノードＩＤ値が２＾１６−１の場合、階層の奇数レベルにあるすべてのノードのノードＩＤに２＾１６を加えることは、パス内のノードの順序を極小値と極大値との間で順に交代させる。極小値を通過する複数のパスの可能性がある場合、次のスイッチングレベルにおいて極小値が接続されるすべてのノードは、共通に極大値になることが保証され、ノードＩＤを反転させることはランキングを反転させ、次の被選択パスに異なるリンクが使用されることを確実にする。
【００４６】
図３Ａ〜３Ｅは、参照ネットワークの一例を通る５つの等コストパスの組を示し、図４、および図５Ａ〜Ｂ、ならびに図６は、この参照ネットワークの一例上の１対のノード間の１組のパスを選択するプロセスを示す。図３Ａ〜３Ｅでは、同じ参照ネットワークが示されているが、それぞれの図面がノード１とノード８との間の５つの異なる等コストパスを示す。例えば図３Ａは、ノード１とノード８との間の参照ネットワーク３０の一例を通り、ノード１、４、２、および８を含む第１のパスを示す。このパス上のリンクは、リンクの両端上のノードＩＤを連結することによって命名される。したがって、ノード１からノード４までの第１のリンクはリンク１−４となり、次のリンクはリンク２−４であり、最後のリンクはリンク２−８である。連結されたノードＩＤを構築する際、規約により、より低位のノードＩＤが常に最初であることに留意されたい。ネットワーク上のすべてのノードが同じ規約を使用する限り、別の規約（例えば、より高位のノードＩＤを常に最初にすること）を採用してもよい。
【００４７】
図３Ｂ〜３Ｅは、ノード１とノード８との間の他の４つの代替的等コストパスを示す。具体的には、図３Ｂはノード１、４、３および８を通るパスを示す。このパスは、リンクＩＤ１−４、３−４、および３−８を使用して命名される。図３Ｃは、ノード１、５、２および８を通るパスを示す。このパスは、リンクＩＤ１−５、２−５、および２−８を使用して命名される。図３Ｄは、ノード１、５、３および８を通るパスを示す。このパスは、リンクＩＤ１−５、３−５、および３−８を使用して命名される。図３Ｅは、ノード１、５、７および８を通るパスを示す。このパスは、リンクＩＤ１−５、５−７、および７−８を使用して命名される。
【００４８】
図４は、ネットワーク内の１対のノード間の２組のダイバースパスを選択するプロセスを示す。このプロセスを右側に示し、図３Ａ〜３Ｅのネットワークに対するこのプロセスの適用例をこの図面の左欄に示す。左欄を形成する枠の中に示す例における数字は、図３Ａ〜３Ｅに示す参照ネットワークおよびパスの例から取った。
【００４９】
最初に、最短パスルーティングシステムが、１対のノード間の１組の等コストパスを見つける（１００）。パス識別子（ＩＤ）は、リンクＩＤ１０２のソート後のリストとして構築される。図４に示すように、ソート後のパスＩＤは、図３Ａ〜３Ｅに示すパスに対応する。考えられる等コストパスをランク付けし、ランク付けしたパスＩＤを使用して第１の２つのダイバースパスの組を選択する。とりわけ、このランク付きリストから、高位および低位にランク付けされたパスを選択する（１０４）。図示の例では、低位パスがパス１２４８（図３Ａ）であり、高位パスが１５７８（図３Ｅ）である。枠１０２内で、これらの被選択パスを丸で囲んでいる。
【００５０】
このランキングプロセスは、２つのダイバースパスを選択できるようにする。追加のパスを選択するために、本発明の一実施形態によれば、パスを作成するために使用したリンクＩＤを変えて（本明細書ではリンクの再命名と呼ぶ）、同じパスに新たなパスＩＤを割り当てられるようにする。例えば一実施形態では、各リンクＩＤ内の最高位ノードＩＤを反転させる（１０６）。こうすることで、各リンクＩＤがネットワーク内で一意のままであることを確実にしながら、リンクＩＤを再命名できるようになる。ネットワークの一例にこの反転を適用し得る方法を、枠１０８による例の中で示す。例えばパス１では、リンク１−４は、４のノードＩＤを示す高位ノードを有する。リンクＩＤが１−１２となるように、このノードＩＤを反転させる。図４に示す例では、ノードの反転を、ビット単位の反転によって、またはノードＩＤが相変わらず一意である十分大きな値からそれらのノードＩＤを減算することによって行う。この例では、ノードＩＤは１６から減算することによって反転させることができる。ノードＩＤを反転させる他の方法も使用することができる。例えば、ノードＩＤを特定の値と排他的論理和演算することができ、ノードＩＤが０から２＾Ｎ−１の範囲で割り当てられる場合、適切な特定の値も２＾Ｎ−１である。リンクを再命名するためにノードＩＤを反転させる他の方法も使用することができる。例えば、高位ノードＩＤを反転させた実施形態を示したが、他の実施形態は、低位ノードＩＤを反転させることによるものなど、リンクを再命名する他の方法を見出すことができる。
【００５１】
リンクを再命名すると（例えば高位ノードを反転させると）、連結されたリンクの順序付きリストをパスＩＤが再び含むように、各パス内のリンクをソートする。連結されたリンクをこのプロセスにおいて順序付けし、最低位リンクが最初であり、より高位のリンクをその後最低位リンク上に連結する。したがって、例えば枠１０８では、反転させた後、パス１はリンク１−１２、２−１２、および２−８を含む。２−８は２−１２よりも下位なので、このパスを枠１１２内に示すように並べ直して、パス１をリンク１−１２、２−８、および２−１２の連結として表せるようにする。新たなパス識別子が、最低位のリンク識別子から最高位のリンク識別子に順序付けられる１組の連結されたリンクを有することを可能にするために、パスのそれぞれを個々に並べ直す。リンクを並べ直すことは、パスのランク付けを促進するが、ランキングプロセスが順序付けされていないリンクＩＤの組を使用してパスをランク付けできる場合、オプションで省略してもよい。
【００５２】
パスＩＤを最初に形成したとき（１００、１０２）、各リンクＩＤがまず最低位ノードＩＤとその後に続く最高位ノードＩＤとを有するように、個々のリンクＩＤを設定した。リンクを再命名し（１０６、１０８）、最高位ノードＩＤを反転させる場合、このことは、個々のリンクＩＤの一部がより高位のノードＩＤを最初に、そしてより低位のノードＩＤを次に有することをもたらす場合がある。この関連で、最初のリンクＩＤは、より高位のノードＩＤに連結されるより低位のノードＩＤを常に最初にしておくことによって作成したことに留意されたい。より高位のノードＩＤを反転させることは、この正規の順序を転換することをもたらし得る。しかし、この反転処理後、特定のリンクに関連するノードＩＤの順序は、たとえ反転が行われても変えるべきではなく、その理由は、ノードＩＤの順序を変えることは、もはやそのリンクがネットワーク内で全体的に一意でなくなる原因になり得るからである。
【００５３】
パスに関連するリンクＩＤを再命名し（１０６）、リンクＩＤを再構成すること（１１０）によりパス用の新たなパスＩＤを作成すると、新たに命名したパスをランク付けし直すためにパスを再びソートする（１１４）。この順序付けし直すステップの結果を、例えば枠１１６内に示す。この例に示すように、最初のランキングプロセス中は２番目に低いパスＩＤであったパスが、新たなパスＩＤを作成するためにリンクを再命名した後は最低位パスＩＤになっている。同様に、最初のランク付け中は３番目に低いパスＩＤであったパスが、今は最高位にランク付けされたパスになっている。改訂されたパスリスト内の高低位パスをとることにより、第２のダイバースパスの対を得ることができる（１１８）。
【００５４】
ソートされる最初のノードＩＤの連結は一意であり、そのため、ネットワークを通る特定のパスについて使用して作成される各パスＩＤも一意である。同様に、逆数（ノードＢ）に連結されるノードＡも一意であり、単純に一意のパスをランク付けし直すことをもたらす。したがって、ネットワーク上のリンク利用率の総計を高めるために、第１の低位／高位の対と、第２の低位／高位の対との両方を得ることができる。必要に応じて、リンクＩＤの第２の再命名を、例えば高位ノードＩＤではなく低位ノードＩＤを反転させることによって実装することができ、ネットワークを通る第３のダイバースパスの組を見つけるためにこのプロセスを繰り返すことができる。同様に、パスＩＤを変更する場合にリンクを再命名するために使用する反転関数を変えることにより、様々なランキングを作成することができる。
【００５５】
図に示すように、その後のダイバースパスの組を選択するプロセスは、当初のランキングに依存しない。よって、相対ランキングがないのでパス障害は次につながらず、パスが所与のランキングプロセス中に別のパスに関連してランク付けされたので、単独で選択されるパスはない。したがって、他のパスが当初のランキングに依存しない他のランキング操作で選択されるため、前に選択した１つまたは複数のパスが共用するリンクに障害が起きても、そのリンクを含むそれらのパスを検討から除外するが、残存しているパスのランキング順序には影響を及ぼさない。別の言い方をすれば、他のパスがそれぞれに依存しないで選択されたので、被選択パスのうちの１つのパス上のリンクで障害が起きることは、他のパスの選択には影響を及ぼさず、よってその障害が、他のパスの選択に影響を及ぼすように次につながることはない。
【００５６】
エンドポイントにおいてダイバースパスを探すことに加え、中間ノードが見つけるどんなパスも、エンドポイントによって選択されるダイバースパスに一致することが重要である。図５Ａ〜５Ｂ、および図６は、中間ノードが選択するパス区分が、エンドポイントによって選択されるダイバースパスに一致することを示すために提供する。
【００５７】
上記に説明したように、図示の実施形態では、最初のパスランキングが、ノード１とノード８との間で第１のパスの対１２４８および１５７８を選択することを可能にした。リンクを再命名し、再命名したリンクを使ってパスを順序付けし直すことは、ノード１とノード８との間で選択される第２のパスの組１２５８および１３４８をもたらした。図６に、これらの被選択パスを列挙する。
【００５８】
一実施形態によれば、各中間ノードは、エンドポイント１およびエンドポイント８が実行したのと同じプロセスを実行する。しかし、このノードはパスのエンドポイントの代わりになり、そのため、中間ノードは自らと目的とするエンドポイントとの間の複数のパスを選択するための計算を使用する。したがって、各ノード４およびノード５は、宛先までの１組の等コストパスを割り出し、パスをランク付けし、高位および低位を選択し、リンクを再命名し、パスをランク付けし直し、ランク付けした高低位パスを再び選択する。
【００５９】
図５Ａおよび図５Ｂは、中間ノード５および中間ノード４についてのこのプロセスの結果を示す。図５Ａに示すように、中間ノード５は、ノード８までの等コストパス２５８、３５８、および５７８を見つける。連結されたエンドポイントノードＩＤを使用し、これらのパスに沿ったリンクを命名することにより、枠１２０内に示す１組のリンクがもたらされる。つまり、パス２５８は、リンク２−５および５−８を含むパスＩＤを有し、パス３５８は、リンク３−５および５−８を含むパスＩＤを有し、パス５７８は、リンク５−７および７−８を含むパスＩＤを有する。これらのパスを図示のようにランク付けし、最高位パスおよび最低位パスを選択する。次いで、枠１２２内に示すように高位ノードＩＤを反転させることにより、リンクを再命名する。リンクＩＤを昇順（最低位リンクＩＤが最初）に並べるためにリンクの順序を再調節し、新たなパスＩＤをランク付けし直す。この場合もやはり、リスト内の最高位パスＩＤおよび最低位パスＩＤを選択し、この例では、それらのＩＤは当初の１組のパスと同じである。したがって、中間ノード５は、このプロセスを使用してパス５７８および２５８を選択し、この選択は、ノード５を通過した１から８までの１組の被選択パスに一致する。とりわけ、図６に示すように、ノード１からノード８までのパスを選択するために実装する場合、このプロセスはパス１２４８、１５７８、１２５８、および１３４８を選択した。これらのパスのうち２つ、１５７８および１２５８がノード５を通過した。このプロセスをノード５において実装したとき、ノード５も同様に５７８および２５８を選択し、そのため、終端間パスの選択に一致するパスを中間ノードは選択している。
【００６０】
図５Ｂは、中間ノード４についての同じプロセスを示す。枠１２６、１２８、および１３０内に示すように、および図６の枠１３２内に示すように、ノード４はパス２４８および３４８を選択し、これらのパスは、終端間選択プロセス中に選択される２つのパスに一致する。したがって、上述のプロセスを使用した中間結果は、終端間の結果に一致する。ノード８からノード１への逆方向のパス選択プロセスも同じ１組の被選択パスをもたらすことを示すために、同様の計算を実行することができる。同様に、ノード９とノード８との間など、他のノードの組の間のパスが、ノード１とノード８との間のパスに対して非循環／平面であることを示すことができる。
【００６１】
先の例では、パスをランク付けし、高低位パスを選択した後、高位ノードＩＤを反転させることによりリンクを再命名した。場合により、この再命名することは、例えば低位ノードＩＤも反転させることにより２回目を行うことができる。この実施形態では、リンクＩＤを再命名し（１０６）、再命名したリンクからパスＩＤを再構築し（１１０）、パスを並べ直し（１１４）、高低位パスをとった（１１８）後、このプロセスを反復して、異なる再命名規約を使用して元のリンクＩＤを再び再命名することができる。一例として、この反復中に低位ノードＩＤを反転させることができる。第２の再命名プロセスの後、再命名したリンクからパスＩＤを再構築し（１１０）、パスを並べ直し（１１４）、高低位パスをとる（１１８）残りのステップを実装して、１組のさらなるパスを選択する。
【００６２】
可能な場合、ネットワーク管理を回避することが概して望ましい。しかし、ネットワーク内の無作為に割り当てられたノードＩＤは、とりわけネットワーク内の所与の階層レベルにおけるパスの順列数が５以上の場合、ネットワーク上で利用可能なダイバーシティのうちの最大限の量を十分活用できないこともあり得る。本発明の一実施形態によれば、ネットワーク内の特定のノードＩＤを選択的に調節することは、上述のパス選択プロセスと組み合わせて使用する場合、複数の等コストパスから選択する場合に実現されるダイバーシティの量を高めることができる。
【００６３】
上記に記載したプロセスでは、最低位ノードが最初で最高位ノードが２番目の状態でノードＩＤを連結することによりリンクＩＤを作成する場合、最高位ノードＩＤがリンクＩＤの最下位ビット内に含まれながら、最低位ノードＩＤがリンクＩＤの最上位ビット内に含まれる。よって、最高位ノードＩＤを反転させることは、リンクＩＤの最下位ビットに影響を及ぼすので、リンクＩＤの値に与える影響は少ない。したがって、１対のノード間のパスの一部として最低位ノードＩＤが選択される場合、上記に記載した再命名プロセスも、同じノードをやはり通過する第２のパスを選択する可能性が高い。
【００６４】
この特性は、ネットワークの構造が知られている場合、ノードＩＤの値を選択的に調節することが、アルゴリズムにネットワーク上の所望のノードを通過するパスを選択させることができるように活用することができる。したがって、ノードＩＤの少なくとも一部を管理的に設定することにより、アドミニストレータは、ネットワーク上でパスが通過する主要な中間地点を選択することができる。同様に、特定のノードＩＤ反転関数を選択することにより、アドミニストレータは特定のノードを通過するようにパスを強制することができ、そのため、異なる反転関数を使用することは、様々なパス選択プロセスに、様々なノードを通過させ、ネットワーク上のそれらのノードにおいてリンクダイバースになる。中間地点を選択するために、ネットワーク内のすべてのノードＩＤにこの反転関数を均一に適用する。次いで、各ノードＩＤ反転関数によって作成されるパスに先に記載したリンク命名および再命名手順を順に適用し、その効果は、現在のノードＩＤ反転関数によって選択される中間地点を通過する様々な終端間パスを選択することである。
【００６５】
図７および図８は、パス選択にコアノードのうちの選択した１つを選択的に横断させるために、異なるノードＩＤ反転関数を使用するパス選択プロセスの応用例を示す。具体的には、図７では、コアノードにノードＩＤ０ｘ００、０ｘ０８、０ｘ１０、および０ｘ１８が割り当てられている。リンク名を形成する前にすべてのノードＩＤに均一に適用される様々な反転関数を使用し、上記に記載した様々なパス選択プロセスを実装する。例えば、リンクを再命名するために使用する反転関数は、ノードＩＤが０ｘ００、０ｘ０８、０ｘ１０、および０ｘ１８と順に、または他の値と排他的論理和演算されることをもたらすことができる。第１の反転関数を使用することは、図７に示すように上端のコアノードを通過するパスが選択されることをもたらし、その理由は、上端のコアノードのノードＩＤがゼロの値を有し、このことは、そのコアノードに付加されるすべてのリンクがゼロの低位ノードＩＤを有する状態を作り出し、よってパスＩＤをランク付けするときに選択されることが保証されるからである。ノードＩＤを異なる値と排他的論理和演算させるために反転関数を調節することは、例えばノードＩＤを０ｘ１０と排他的論理和演算することの結果である図８に示すように、被選択パスが別のコアノードを通過することをもたらす。したがって、ネットワークの構造についての知識、および最初のリンク命名プロセス中にすべてのノードに反転関数を選択的に適用することで、パスが通過するコアノードをアドミニストレータが選択できるようになる。よって、コアノードを循環し、コアノードのすべてが使用されるようにネットワーク内のトラフィックをより良く分散させるために、パス選択プロセスにコアノードのそれぞれを利用することを強制することができる。この最初のノードＩＤ反転プロセスを使用して最初のコアノードを選択した後、第２のパス選択プロセスを行えるようにするために、各リンクのノードＩＤの１つに第２の関数を均一に適用することにより、上記に記載したようにリンクを再命名することができる。したがって、このノードＩＤ反転プロセスは、図７および図８に示すように異なるエッジノードだが共通のコアノードを通って得られる複数のパスを順に選択するために、「内部ループ」として実行される前述のリンク再命名プロセスとともに適用される。
【００６６】
ネットワーク上でパス選択をどのように実装するのかを管理的に調節する別の方法は、異なる範囲からノードＩＤを割り当てることである。図９は、ノードのすべてに同じ範囲からの番号が割り当てられる一例を示す。図９では、ノードＡからノードＺまでの等コストパスが計算されていると考えられる。この例では、中間ノードＤおよびＦが低いノードＩＤ値を有し、そのため、ネットワーク上でパスが分岐する位置を形成する。これは、ＤおよびＦの一方または他方が、（その低位ノードＩＤ成分に基づき）最低位リンクＩＤを有するからである。上端のコアノードのノードＩＤが下のコアノードよりも低いという理由で、第１の被選択パスが上端のコアノードを通過する場合、リンク再命名反転プロセスの後、下のコアノードを通るリンクが最低位ノードＩＤを有する。
【００６７】
図１０は、ネットワークに接続する外部ノード（図１０のノードＡおよびノードＺ）に、ネットワーク上のノードとは異なる範囲からノードＩＤ値が割り当てられる別の一例を示す。具体的には、図１０では、１から１０２３の間の数字を使用してノードＡおよびノードＺにノードＩＤ値が割り当てられている。エッジノード、集約ノード、コアノード等には、１０２５から２０４７の間など、別のより高い範囲から番号が割り当てられている。当然ながら他の範囲を使用してもよく、これらの範囲は単に一例を提供することを意図するに過ぎない。
【００６８】
ネットワークに接続するノードに低いノードＩＤ値を割り当て、ネットワーク上の他のノードに高いノードＩＤ値を割り当てることにより、ネットワークに接続するノードを被選択等コストパスが分岐する軸点として選択することができる。したがって、例えば図１０に示すように、ネットワークに接続するノードにおいて、リンクダイバースパスが選択されるようになされ、よって、ネットワークに接続するノードは、ネットワークにデュアルホームされている場合、トラフィックを複数のアクセスリンクにわたって分散させることができる。さらに、ＡおよびＺの両方に低いノードＩＤ値が割り当てられているので、このパス分岐はＡおよびＺの両方において生じ、そのためＡもＺも、ネットワークに接続するリンクダイバース代替等コストパスを有することが保証される。加えて、ネットワーク内でパスが収束する場合があるが、図１０に示す例のように、ネットワークの全体にわたり依然としてパスがリンクダイバースのままである可能性は高い。
【００６９】
したがって、ノードＩＤ値を管理的に調節することは、上述のプロセスを使用して選択されるパスが、ネットワーク上の特定の位置において生じることをもたらし得る。このことは、アドミニストレータが、ダイバースパスをネットワーク内の特定の位置において行わせ、したがって、トラフィック分散の観点からより最適な方法でパス選択を行わせることにより、トラフィックを意図的にネットワーク中に分散させられることを可能にする。さらに、この技法を使用する場合、ノードＩＤは個々にではなく別個の範囲から割り当てられるので、それらの範囲内でノードＩＤを厳密に選択することは、図１０に示すトラフィックパターンなどのトラフィックパターンを発展させるために不可欠ではなく、ある範囲内の一意のノードＩＤをいくつかのよく知られている技法により自動で割り当てることができるので、管理上の負担は比較的最小限である。ネットワークに接続するノードが、その他のネットワークノードに割り当てられるノードＩＤとは異なる（より低い）範囲から選択される限り、ノードＡからノードＺまでの最初のパス分岐は図１０に示すように生じる。
【００７０】
特定の範囲のノードＩＤを使用するための、このノードの管理的割当は、主要な中間地点ノードにノードＩＤを割り当て、ノードＩＤ反転関数を使用する先述の技法と有益に組み合わせることができる。中間地点選択プロセスは、コアを通るパスの高レベルの選択を制御できるようにし、他のノードに範囲を管理的に割り当てることは、選択した中間地点を通過する、リンクダイバース終端間パスの入口（ｏｐｅｎｉｎｇ）を最大化するために行うことができる。
【００７１】
上記に記載した関数は、コンピュータ可読メモリ内に記憶され、コンピュータプラットフォーム上の１個または複数個のプロセッサ上で実行される１組のプログラム命令として、実装することができる。ただし、本明細書に記載のすべてのロジックは、個別部品、特定用途向け集積回路（ＡＳＩＣ）などの集積回路、書替え可能ゲートアレイ（ＦＰＧＡ）やマイクロプロセッサなど、プログラマブルロジックデバイスと組み合わせて使用されるプログラマブルロジック、状態機械、またはこれらの任意の組合せを含む他の任意の装置を使用して実施できることが、当業者には明らかである。プログラマブルロジックは、読出し専用メモリチップ、コンピュータメモリ、ディスク、他の記憶媒体など、有形媒体の中に一時的にまたは永続的にとどめることができる。プログラマブルロジックは、プログラマブルロジックをコンピュータバスや通信ネットワークなどのインターフェイスを介して伝送することを可能にする、搬送波によって具体化されるコンピュータデータ信号内にとどめることもできる。以上のすべての実施形態は、本発明の範囲内に含まれるよう意図されている。
【００７２】
図面に示し、本明細書内で説明した諸実施形態の様々な変更および修正は、本発明の趣旨および範囲内に含め得ることを理解すべきである。したがって、上記の説明に含まれ、添付図面に示すすべての内容は限定的な意味ではなく、例示的な意味で解釈されることを意図する。
【図１】
0005551253.tif 000003
【図２】
0005551253.tif 000004
【図３Ａ】
0005551253.tif 000005
【図３Ｂ】
0005551253.tif 000006
【図３Ｃ】
0005551253.tif 000007
【図３Ｄ】
0005551253.tif 000008
【図３Ｅ】
0005551253.tif 000009
【図４】
0005551253.tif 000010
【図５Ａ】
0005551253.tif 000011
【図５Ｂ】
0005551253.tif 000012
【図６】
0005551253.tif 000013
【図７】
0005551253.tif 000014
【図８】
0005551253.tif 000015
【図９】
0005551253.tif 000016
【図１０】
0005551253.tif 000017