(57)【要約】  次数制約付き最小全域木（ＭＳＴ）を生成する方法および装置は、データパケットを送受信する複数のポイントツーポイント（Ｐ２Ｐ）パケット交換ノードと、データパケットを送受信する複数のポイントツーマルチポイント（Ｐ２ＭＰ）パケット交換ノードと、複数のパケット交換ノードの対を結合する、各々が或る距離を有する複数の伝送リンクとを備えている。経路演算モジュールは、複数のＰ２Ｐパケット交換ノードの各々が２の次数を有するように、次数制約付きＭＳＴを決定することが可能である。拡張Ｂｅｌｌｍａｎ−Ｆｏｒｄアルゴリズムは、逐次的に、複数のパケット交換ノードの各々を現在のノードとして解析し、次数制約付きＭＳＴを、複数の伝送リンクの各々の距離と、現在のノードの前のノードがＰ２Ｐパケット交換ノードおよびＰ２ＭＰパケット交換ノードのうちのいずれであるかとに応じて演算する。
2009531981.tif 000002
【特許請求の範囲】
【請求項１】
パケット通信システムであって、
データパケットを送受信する複数のポイントツーポイント（Ｐ２Ｐ）パケット交換ノードと、前記データパケットを送受信する複数のポイントツーマルチポイント（Ｐ２ＭＰ）パケット交換ノードとを含む複数のパケット交換ノードと、
前記複数のパケット交換ノードの対を結合する複数の伝送リンクであって、各々が或る距離を有する複数の伝送リンクと、
前記複数のＰ２Ｐパケット交換ノードの各々が２の次数を有するように、前記パケット通信システムの次数制約付き最小全域木（ＭＳＴ）を決定する経路演算モジュールであって、拡張Ｂｅｌｌｍａｎ−Ｆｏｒｄアルゴリズムが、前記複数のパケット交換ノードの各々を現在のノードとして逐次的に解析し、前記次数制約付きＭＳＴを、前記複数の伝送リンクの各々の距離と、前記現在のノードの前のノードが前記複数のＰ２Ｐパケット交換ノードのうちの１つおよび前記複数のＰ２ＭＰパケット交換ノードのうちの１つのいずれであるかとに応じて演算する経路演算モジュールと、を備えるパケット通信システム。
【請求項２】
前記拡張Ｂｅｌｌｍａｎ−Ｆｏｒｄアルゴリズムは、前記複数のパケット交換ノードのうちの１つを前記現在のノードに設定し、複数の前のノードのうちの１つと前記現在のノードとに結合された前記複数の伝送リンクのうちのいずれの伝送リンクを前記次数制約付きＭＳＴに含めるかについて、前記複数の伝送リンクのうちの１つの距離と、前記複数の前のノードのうちの前記１つが前記複数のＰ２Ｐパケット交換ノードのうちの１つおよび前記複数のＰ２ＭＰパケット交換ノードのうちの１つのいずれであるかとに基づいて決定する請求項１記載のパケット通信システム。
【請求項３】
前記次数制約付きＭＳＴ内にある前記複数のＰ２Ｐパケット交換ノードの各々は、１つのインバウンド無向伝送リンクおよび１つのアウトバウンド無向伝送リンクのみを含む請求項１記載のパケット通信システム。
【請求項４】
前記経路演算モジュールは、前記複数のＰ２Ｐパケット交換ノードの各々が２の次数を有するようにリンク交換アルゴリズムを実行する、請求項１記載のパケット通信システム。
【請求項５】
前記リンク交換アルゴリズムは、前記複数のＰ２Ｐパケット交換ノードの各々が２の次数を有するように、前記次数制約付きＭＳＴ内にある複数の伝送リンクのうちの１つ以上を前記次数制約付きＭＳＴ内にない複数の伝送リンクのうちの１つ以上と交換するように結合されている、請求項４記載のパケット通信システム。
【請求項６】
パケット通信システムにおいて次数制約付き最小全域木（ＭＳＴ）を生成する方法であって、
データパケットを送受信する複数のパケット交換ノードであって、複数のポイントツーポイント（Ｐ２Ｐ）パケット交換ノードと、複数のポイントツーマルチポイント（Ｐ２ＭＰ）パケット交換ノードとを含む複数のパケット交換ノードを設けることと、
前記複数のパケット交換ノードの対を結合する複数の伝送リンクであって、各々が或る距離を有する複数の伝送リンクを設けることと、
前記複数のＰ２Ｐパケット交換ノードの各々が２の次数を有するように、前記次数制約付きＭＳＴを演算することとを含み、該演算は、
拡張Ｂｅｌｌｍａｎ−Ｆｏｒｄアルゴリズムが、前記複数のパケット交換ノードの各々を現在のノードとして逐次的に解析すること、および
前記拡張Ｂｅｌｌｍａｎ−Ｆｏｒｄアルゴリズムが、前記次数制約付きＭＳＴを、前記複数の伝送リンクの各々の距離と、前記現在のノードの前のノードが前記複数のＰ２Ｐパケット交換ノードのうちの１つおよび前記複数のＰ２ＭＰパケット交換ノードのうちの１つのいずれであるかとに応じて演算することを含む方法。
【請求項７】
前記演算は、
前記拡張Ｂｅｌｌｍａｎ−Ｆｏｒｄアルゴリズムが、前記複数のパケット交換ノードのうちの１つを前記現在のノードに設定することと、
複数の前のノードのうちの１つと前記現在のノードとに結合された前記複数の伝送リンクのうちのいずれの伝送リンクを前記次数制約付きＭＳＴに含めるかについて、前記複数の伝送リンクのうちの１つの距離と、前記複数の前のノードのうちの前記１つが前記複数のＰ２Ｐパケット交換ノードのうちの１つおよび前記複数のＰ２ＭＰパケット交換ノードのうちの１つのいずれであるかとに応じて決定することとをさらに含む請求項６記載の方法。
【請求項８】
前記複数の前のノードが、前記複数のＰ２Ｐパケット交換ノードのうちの１つと、前記複数のＰ２ＭＰパケット交換ノードのうちの１つとからなる場合、前記複数のＰ２ＭＰパケット交換ノードのうちの前記１つと前記現在のノードとに結合された前記複数の伝送リンクのうちの１つを選択する請求項７記載の方法。
【請求項９】
前記複数の前のノードが、前記複数のＰ２Ｐパケット交換ノードのうちの２つからなり、前記複数の前のノードのうちの１つは１を超える出次数を有し、前記複数の前のノードのうちの別の１つはゼロに等しい出次数を有する場合、前記現在のノードと、ゼロに等しい次数を有する前記複数の前のノードのうちの前記１つとに結合された前記複数の伝送リンクのうちの１つを選択する請求項７記載の方法。
【請求項１０】
前記次数制約付きＭＳＴ内にある前記複数のＰ２Ｐパケット交換ノードの各々は、１つのインバウンド無向伝送リンクおよび１つのアウトバウンド無向伝送リンクのみを含む請求項６記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、次数制約付き最小全域木を生成する方法および装置に関する。
【背景技術】
【０００２】
「データパケット」と呼ばれるデータアセンブリッジとしてデータを伝送するパケット交換ネットワークによって複数のデータ処理要素を相互接続することが、ますます有用になっている。そのようなネットワークは、相互接続された複数の交換ノードを含んでいる。そのようなパケットネットワークは、広範囲に亘る地理的分布に伴って極めて大規模となることがある。そのような状況では、互いに通信することが望まれる２つのエンドノードの間で効率的な経路を選択することが最も重要となる。
【０００３】
ネットワークレベルで解決しなければならない一般的な問題は、発信元ノードと宛先ノードとの間の経路を発見することである。従来技術において、パケットネットワーク内のノード間の経路を選択するための主な基準は、最小ホップカウントと最小経路長（距離）である。ホップカウントは、２つのエンドノード間で経路を構成するのに使用されるリンクの数である。経路長は、２つのエンドノード間の経路によって課される全体的な伝送遅延の関数である。
【０００４】
ルーティングアルゴリズムの選択は、多くの場合、矛盾する多数の要件を満たさなければならないため、容易ではない。このアルゴリズムは、実装が簡単でなければならず、また、ネットワーク上の外乱がいかなるものであってもパケットが正しく進行するようにしなければならない。このアルゴリズムは、トラフィック変動およびネットワークトポロジに拘わらず、満足な結果をもたらし得るものでなければならない。また、異なるエンドユーザ間での公平さを確保し、ネットワークへのアクセス権を平等に分配しなければならない。最後に、ルーティングアルゴリズムは、可能な場合、利用形式と共に変動し得る基準に従ってネットワークを最適な方式で活用することが可能でなければならない。ほとんどの場合、ネットワークは、パケット移動時間を最小にし、且つ、最大数のパケットを転送する方式で実現されている。その他の場合、目的は、通信コストを減少させること、または、破局的な回線、ノードの故障があってもトラフィックがピークであっても正しく動作することが可能な高信頼性のネットワークを開発することである。
【０００５】
ネットワーク理論において、プリム（Ｐｒｉｍ）のアルゴリズム、クラスカル（Ｋｒｕｓｋａｌ）のアルゴリズム、およびダイクストラ（Ｄｉｊｋｓｔｒａ）のアルゴリズムなどのアルゴリズムが、ネットワークに対する最小コスト木を発見するために使用されてきた。しかしながら、単にコストだけでなく他の制約条件をも満たすほぼ最適なコスト木が必要とされている。したがって、従来技術では満たされていない、最小全域木の生成においてコストを唯一の要素とはしない、ネットワークに対する最小全域木を生成する要求が存在する。
【発明を実施するための最良の形態】
【０００６】
本発明の代表的な要素、動作上の特徴、用途および／または利点は、とりわけ、この後により詳しく示し、説明し、請求するように、構造および動作の詳細にある。本出願の一部をなす添付の図面を参照するが、図面において同様の参照符号は、全体を通じて同様の部分を指している。他の要素、動作上の特徴、用途および／または利点は、詳細な説明において詳述した或る例示的な実施形態を鑑みると明らかとなろう。
【０００７】
図における要素は、簡潔且つ明瞭にするように示されており、必ずしも実測するようには描かれていない。例えば、図における一部の要素の寸法は、本発明の種々の実施形態の理解を高めるために、他の要素に対して誇張されていることがある。さらに、「第１」、「第２」などの用語が本出願にある場合、それらの用語は、とりわけ類似した要素同士を区別するために使用されており、必ずしも発生順序または時系列順序を表わすために使用されているわけではない。さらに、「前」、「後ろ」、「頂部」、「底部」、「上」、「下」などの用語が、実施形態および／または特許請求の範囲にある場合、それらの用語は、一般に説明を目的として用いられており、必ずしも排他的な相対位置を包括的に表わすために用いられているわけではない。そのように使用された先の用語のうちのいずれも、本出願で説明する本発明の種々の実施形態が、明示的に図示したまたは別の方法で説明したもの以外の他の構成および／または配置においても動作が可能となり得るような適切な状況下では、置換することが可能である。
【０００８】
本発明の以下の代表的な説明は、概して、例示的な実施形態と最良の形態についての本発明者の構想とに関するものであり、本発明の適用性または構成をいかなる形であれ限定することを意図したものではない。むしろ、以下の説明は、本発明の種々の実施形態を実現するために好都合な実例を示すことを意図したものである。明らかなように、開示した例示的な実施形態で説明する任意の要素の機能および／または構成において、本発明の精神および範囲から逸脱することなく変更がなされ得る。
【０００９】
説明を明瞭にするために、本発明の実施形態は部分的に、別個の機能ブロックを備えるものとして示されている。これらのブロックによって表わされる機能は、限定はしないがソフトウェアを実行することが可能なハードウェアを含めて、共用のハードウェアまたは専用のハードウェアのいずれかを使用することによって提供することができる。本発明は、要素のいかなる特定の組による実施に限定されるものではなく、また、本出願における説明は、単に一実施形態を代表するものである。
【００１０】
「ａ」または「ａｎ」という用語は、本出願では、「１つ」または「一または複数」として定義されている。「複数の」という用語は、本出願では、「２つ」または「２つ以上」として定義されている。「別の」という用語は、本出願では、「少なくとも２番目またはそれ以降」として定義されている。「備えている／含んでいる」および／または「有している」という用語は、本出願では、「備えている／含んでいる」（つまり、包含的な用語）として定義されている。「結合される」という用語は、本出願では、必ずしも直接ではなく、また必ずしも機械的にではないが、「接続される」として定義されている。「プログラム」、「ソフトウェアアプリケーション」などの用語は、本出願では、コンピュータシステム上での実行のために設計された一連の命令として定義されている。プログラム、コンピュータプログラム、またはソフトウェアアプリケーションには、サブルーチン、関数、プロシージャ、オブジェクトメソッド、オブジェクトインプリメンテーション、実行可能アプリケーション、アプレット、サーブレット、オブジェクトコード、共有ライブラリ／動的ロードライブラリ、および／またはコンピュータシステム上での実行のために設計された他の一連の命令を挙げることができる。構成要素には、コンピュータプログラム、ソフトウェアアプリケーション、または一または複数行のコンピュータが読み取り可能な処理命令を挙げることができる。
【００１１】
本発明の実施形態を実装するソフトウェアブロックは、コンピュータ命令を備えるコンピュータプログラムモジュール、つまりメモリなどのコンピュータが読み取り可能な媒体に記憶されるような制御アルゴリズムの一部であることができる。コンピュータ命令は、以下で説明する任意のメソッドを実施するようにプロセッサに命令することができる。他の実施形態において、さらなるモジュールが必要に応じて与えられてもよい。
【００１２】
しかしながら、留意すべきこととして、これらの用語および類似の用語のすべては、適切な物理量と関連付けられるべきでものであり、また、それらの量に当てはめられた単に好都合な呼び名である。別段の明確な定めがない限り、以下の議論から明らかなように、説明の全体を通じて、「処理する」または「演算する」または「算出する」または「決定する」または「表示する」などの用語を利用する議論は、コンピュータシステムのレジスタおよびメモリ内で物理（電子的）量として表現されるデータを、コンピュータシステムのメモリもしくはレジスタ、またはそのような情報記憶、送信、もしくは表示装置内で物理（電子的）量として同様に表現される他のデータへと操作し変換する、コンピュータシステムまたは類似の電子演算装置の動作および処理を指していることが理解されよう。
【００１３】
本発明は、また、本出願における動作を実施する装置に関する。この装置は、必要な目的のために特別に構成されていてもよく、また、その内部に記憶されたコンピュータプログラムによって選択的に起動または再構成される汎用コンピュータを備えていてもよい。そのようなコンピュータプログラムは、限定はしないが、フロッピー（登録商標）ディスク、光ディスク、ＣＤ−ＲＯＭ、および光磁気ディスクを含めた任意の種類のディスク、読出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気もしくは光カード、または電子命令を記憶するのに好適な任意の種類の媒体など、コンピュータが読み取り可能な記憶媒体に記憶することができ、各々はコンピュータシステムバスに結合することができる。
【００１４】
マルチキャスティングは、様々な宛先からなる１つのグループに同じ情報を同時に送信することを含む。多数のマルチキャストセッションを効率的にサポートするために、ネットワークは、それらのセッションで交換される情報を、可能な限り少数のネットワークリソースを使用してトランスポートを行う必要がある。一般に、ネットワークリソースを効率的に利用するために、最小全域木がネットワークに対して確立される。本発明の以下の代表的な実施形態は、分岐するポイントツーマルチポイント（Ｐ２ＭＰ）ノードと分岐しないポイントツーポイント（Ｐ２Ｐ）ノードとを考慮して次数制約付き最小全域木を生成する新規な方法を示している。次数制約付き最小全域木は、最小コストを有していない場合でも、ほぼ最適なコストを有することができる。
【００１５】
図１は、本発明の例示的な実施形態にかかるパケット通信システム１００を代表的に示している。或る実施形態において、パケット通信システム１００は、データパケットを送受信する複数のパケット交換ノード１０２と、一対の複数のパケット交換ノード１０２を結合する複数の伝送リンク１０８とを備えている。
【００１６】
パケット通信システム１００は、マルチ・プロトコル・ラベル・スイッチング（ＭＰＬＳ）ネットワークであってもよく、このＭＰＬＳネットワークにおいて、入来データパケットは「ラベル」を付与され、ラベルスイッチパス（ＬＳＰ）に沿って転送され、このＬＳＰにおいて、各交換ノードは、ラベルのコンテンツのみに基づいて転送決定を行なう。各ホップで、交換ノードは既存のラベルを取り除き、新しいラベルを付け、その新しいラベルにより、パケットをどのように転送するかを次のホップに伝える。ＬＳＰは、或るレベルのパフォーマンスを保証するため、ネットワークの混雑を避けてルーティングするため、または、ネットワークベースの仮想プライベートネットワーク用のＩＰトンネルを作成するためなど、多様な目的でネットワークオペレータによって確立することができる。ＡＴＭ、フレームリレー、またはＥｔｈｅｒｎｅｔ（登録商標）などの複数のレイヤ２トランスポートに亘るＬＳＰを確立することができる。或る実施形態において、ＭＰＬＳは、任意の種類のトランスポート媒体に亘る特定のパフォーマンス特性を持つエンドツーエンド回路を形成して、オーバレイネットワークまたはレイヤ２専用の制御機構に対する必要性を排除することができる。
【００１７】
コネクションレス型のネットワークレイヤプロトコルのデータパケットが、或る交換ノードから次の交換ノードに移動するとき、各交換ノードは、そのデータパケットに対して、独自の転送決定を行なうことができる。つまり、各交換ノードは、データパケットのヘッダを解析することができ、また、各交換ノードは、ネットワークレイヤのルーティングアルゴリズムを実行する。各交換ノードは、パケットのヘッダの解析結果およびルーティングアルゴリズムの実行結果に基づいて、データパケットの次のホップを選択する。パケットヘッダは、単に次のホップを選択するのに必要となるよりもかなり重要な情報を含んでいる。次のホップの選択は、２つの機能から成立し得るものである。第１の機能は、使用可能なパケットの組全体を一組の「転送等価クラス（ＦＥＣ）」に分割することができる。第２の機能は、各ＦＥＣを次のホップにマップすることができる。転送決定に関する限りにおいて、同じＦＥＣにマップされた異なるデータパケットは、区別することができない。特定のＦＥＣに属し、特定の交換ノードから移動するすべてのデータパケットは、同じ経路に従う（または、或る種類のマルチパスルーティングを使用している場合、すべてのデータパケットは、ＦＥＣに関連付けられた一組の経路のうちの１つに従う）。
【００１８】
通常のＩＰ転送において、ルータのルーティングテーブル内に何らかのアドレスプレフィックスＸがあり、それによりＸが各パケットの宛先アドレスに対する「最長マッチ」となっている場合、特定の交換ノードは、典型的には、２つのデータパケットが同じＦＥＣ内に存在するとみなす。パケットがネットワークを通過するとき、各ホップでパケットを再度調べ、そのパケットをＦＥＣに割り当てる。
【００１９】
ＭＰＬＳにおいて、特定のＦＥＣへの特定のパケットの割当ては、そのパケットがネットワークに入るときに、一度だけ行なわれる。パケットの割当て先のＦＥＣは、「ラベル」として知られる短い固定長の値として符号化される。パケットが次のホップに転送されるとき、ラベルがそのパケットと共に送信される。つまり、パケットは、転送される前に「ラベル付け」される。続くホップでは、パケットのネットワークレイヤヘッダのさらなる解析は行なわれない。むしろ、ラベルは、次のホップを指定するテーブルへのインデックス、および新しいラベルとして使用される。古いラベルは、新しいラベルで置き換えられ、パケットは次のホップに転送される。ＭＰＬＳ転送パラダイムにおいては、パケットがＦＥＣに割り当てられると、さらなるヘッダ解析が、続く交換ノードによってなされることはなく、すべての転送はラベルによって行なわれる。ＭＰＬＳについてのさらなる詳細は、ＩＥＴＦ（インターネット・エンジニアリング・タスク・フォース）のＲＦＣ（Ｒｅｑｕｅｓｔ  ｆｏｒ  Ｃｏｍｍｅｎｔ）３０３１に見出すことができる。
【００２０】
複数のパケット交換ノード１０２は、ルータ、エンタプライズサーバ、ビデオサーバ、ポータブルまたはデスクトップコンピュータ、携帯電話機、ＰＤＡなど、コンピュータのような任意の装置を備えていてもよい。例えば、限定するものではないが、複数の交換ノード１０２のうちの一または複数が、ＭＰＬＳにおける動作用のラベルスイッチングルータ（ＬＳＲ）であってもよい。複数のパケット交換ノード１０２は、それぞれ、接続されたすべてのノードにデータ通信サービスを提供するデータ処理システムを備えていてもよい。複数のパケット交換ノード１０２は、それぞれ、一または複数の決定点をノード内に備えていてもよく、それらの決定点において、入来データパケットは、そのノード内でまたは別のノードで終端する一または複数の送出通信リンク上で選択的にルーティングされる。そのようなルーティング決定は、データパケットのヘッダ内の情報に応答してなされる。
【００２１】
或る実施形態において、複数の交換ノード１０２のうちの一または複数が、一または複数のポイントツーポイント（Ｐ２Ｐ）交換ノード１０４を備えていてもよく、そのＰ２Ｐ交換ノード１０４は、単に、インバウンド伝送リンク上で受信した入来データパケットをアウトバウンド伝送リンクにルーティングするものである。Ｐ２Ｐ交換ノード１０４は、複数の宛先への伝送のためにデータパケットを複製する（つまり分岐させる）ことのないものであり、図１において円形のノードで表現されている。或る実施形態において、複数の交換ノード１０２のうちの一または複数が、一または複数のポイントツーマルチポイント（Ｐ２ＭＰ）交換ノード１０６を備えていてもよく、このＰ２ＭＰ交換ノード１０６は、入来データパケットを複製し（分岐させ）、その入来データパケットの複製を複数の宛先に伝送することができる。複数のＰ２ＭＰ交換ノード１０６は、図１において四角形のノードで表わされている。
【００２２】
複数の伝送リンク１０８は、有線リンクであっても無線リンクであってもよい。さらなる複数の伝送リンク１０８は、それぞれ、関連付けられた距離１１０を有することができ、この距離１１０は、物理的距離、トラフィック混雑、障害、またはデータパケットの流れに対するコストもしくは抵抗の他の尺度を表わすことができる。
【００２３】
図２は、本発明の例示的な実施形態にかかるパケット通信サブシステム２００を代表的に示している。図２に示した要素は、複数のパケット交換ノード１０２のうちの一または複数に配置され、および／または、複数のパケット交換ノード１０２のうちの一または複数の間に分配されることができる。パケット通信サブシステム２００は、トポロジプロトコルモジュール２１０と、トポロジデータベース２２０と、経路演算モジュール２３０と、トラフィック制御モジュール２４０とを備えることができる。図２に示した要素は、単に代表的なものである。パケット通信サブシステム２００の他の構成および他の要素が、本発明の方法を実現するために使用されてもよく、また、本発明の範囲に含まれる。
【００２４】
トポロジプロトコルモジュール２１０は、パケット通信システム１００のトポロジをトポロジデータベース２２０に供給するルーティングプロトコルを実行することができる。例えば、限定するものではないが、トポロジプロトコルモジュール２１０は、ＭＰＬＳネットワーク内にあるオープン・ショーテスト・パス・ファースト（ＯＳＰＦ）ルーティングプロトコルであってもよい。或る実施形態において、トポロジプロトコルモジュール２１０は、トポロジデータベース２２０内のデータを周期的にまたは連続的に更新することができる。例えば、トポロジプロトコルモジュール２１０は、パケット通信システム１００内にある複数のパケット交換ノード１０２と複数の伝送リンク１０８の構成および／または状態を周期的にまたは連続的に更新して、トポロジデータベース２２０が、パケット通信システム１００の最新の構成および／または状態を備えるようにしてもよい。
【００２５】
或る実施形態において、トラフィック制御モジュール２４０は、ＭＰＬＳネットワーク内にＬＳＰ２５０を確立するように動作することができる。例えば、トラフィック制御モジュール２４０は、ラベルトラフィック制御システム（ＬＴＣＳ）であってもよく、また、ＭＰＬＳネットワークの機能を実現することができる。ＬＳＰ２５０を確立する目的で、トラフィック制御モジュール２４０は、１つの発信元ノードから宛先ノード（１つまたは複数）への経路を必要とする。或る実施形態において、トラフィック制御モジュール２４０は、発信元アドレス、宛先アドレス（１つまたは複数）、およびトラフィック工学的制約などの入力を与えて、経路演算モジュール２３０にリクエストを行なう。或る実施形態において、経路演算モジュール２３０は、ＭＰＬＳネットワーク内にあるＣＳＰＦ（制約付きショーテスト・パス・ファースト）モジュールであってもよい。経路演算モジュール２３０は、トラフィック制御モジュール２４０から経路演算のリクエストを受信すると、トポロジデータベース２２０のデータにアクセスし、経路を演算することができる。演算した経路は、トラフィック制御モジュール２４０に返されることができ、ここで、トラフィック制御モジュールは、１つの発信元ノードから宛先ノード（１つまたは複数）への経路の確立を開始するが、この経路をＬＳＰ２５０とすることができる。或る実施形態において、トラフィック制御モジュール２４０は、経路演算モジュール２３０から返された明示的な経路と共にコントロールプレーンシグナリングメッセージ（例えばＲＳＶＰ−ＴＥシグナリング）を送信して、ＬＳＰ２５０を確立することができる。ここで、トラフィック制御モジュール２４０は、特定の宛先アドレスを持つ、特定の発信元アドレスからのデータパケットが、どの経路に従うべきかを認識しており、その経路を通じてデータパケットを送信するために帯域幅を確保することができる。
【００２６】
或る実施形態において、ＬＳＰ２５０は、最小全域木（ＭＳＴ）によって表わすことができる。複数の伝送リンクによって結合された交換パケットノードの、接続された無向トポロジが与えられると、そのトポロジの全域木はサブトポロジとなることができ、そのサブトポロジは１つの木であり、複数の交換パケットのすべてを互いに接続する。単一のトポロジは、多数の異なる全域木を有することができる。上述のように、いかに不都合であるかを表わす数値である距離を、各伝送リンクに割り当てることができ、この距離は、全域木内にある複数の伝送リンクの距離の合計を演算することによって、全域木に重みを割り当てるために使用されることもできる。最小全域木は、全域木重みが他の各全域木の全域木重み以下である全域木であってもよい。
【００２７】
同点の場合、いくつかの最小全域木が存在することがある。特に、すべての全域木重みが同じである場合、すべての全域木が最小となる。最小全域木は、事実上、複数の交換ノードのすべてを接続する最小コストのサブグラフである。
【００２８】
ＭＳＴを取得する一方法は、Ｂｅｌｌｍａｎ−Ｆｏｒｄ（ベルマン−フォード）アルゴリズムを使用することによるものである。Ｂｅｌｌｍａｎ−Ｆｏｒｄアルゴリズムについては、ディ．バートセカス（Ｄ．Ｂｅｒｔｓｅｋａｓ）およびアール．ギャラガー（Ｒ．Ｇａｌｌａｇｅｒ）著、「データ・ネットワークス（Ｄａｔａ  Ｎｅｔｗｏｒｋｓ）」、プレンティス・ホール（Ｐｒｅｎｔｉｃｅ  Ｈａｌｌ）（ニュージャージー州イングルウッドクリフス所在）、１９８７年、に記載されている。このアルゴリズムの目的は、２つのノードを最小距離で接続する経路を発見することであり、その距離は、リンクの混雑または不都合性を反映するものと定義されている。このアルゴリズムは、発信元ノードから開始し、まず、１つ以下のリンクを含んでいる経路の制約を受ける最短経路長を発見する。次いで、２つ以下のリンクの経路の制約を伴う最短経路長を発見し、以下同様にする。
【００２９】
Ｎ＝ノードの数（１，２，…，Ｎとラベル付けする）、
Ｍ＝無向リンクの数（或るノードから別のノードに向かう１つ以下の一方向リンクが存在すると、リンクはそのエンドポイントによって識別可能である）、
ｈ＝ホップの数、
Ｄ（ｉ，ｈ）＝発信元ノード（１）からノード（ｉ）までの最短（≦ｈ）経路長（慣例により、すべてのｈに対し、Ｄ（１，ｈ）＝０とする）、
ｄｉｊ＝ノード（ｉ）からノード（ｊ）までを接続するリンクの長さ（慣例により、ノード（ｉ）がノード（ｊ）に接続されていない場合、ｄｉｊ＝∞とする）とする。
【００３０】
最初、すべてのＩ≠１に対し、Ｄ（ｉ，０）＝∞であり、
それぞれ続く０≦ｈについて、すべてのＩ≠１に対して、Ｄ（ｉ，ｈ＋１）＝ｍｉｎｊ［Ｄ（ｊ，ｈ）＋ｄｊｉ］，ｊ＝１，…，Ｎである。
【００３１】
経路は、Ｎ−１以下のリンクを含むことができる。最悪の場合、アルゴリズムは、Ｎ−１回反復しなければならず、それぞれの反復は、Ｎ−１のノードに対して行なわなければならず、また、それぞれのノードに対し、最小化は、Ｎ−１未満の選択対象に亘ってなされなければならない。したがって、演算量は、最悪の場合、Ｎ３で増加する。
【００３２】
Ｄ（ｉ）をノード（１）からノード（ｉ）までの最短経路長とし、Ｄ（１）＝０とすると、この式はｈ＝Ｎ−１で収束し、次のように記述することができる。
すべてのＩ≠１に対し、Ｄ（ｉ）＝ｍｉｎｊ［Ｄ（ｊ）＋ｄｊｉ］
Ｄ（１）＝０。
【００３３】
これは、Ｂｅｌｌｍａｎの式と呼ばれるものであり、ノード（１）からノード（ｉ）までの最短経路長が、（ｉ）の前までのノードへの（最短経路での）経路長の合計に、経路の最終リンクにおける距離を加えたものであることを表わしている。
【００３４】
Ｂｅｌｌｍａｎ−Ｆｏｒｄアルゴリズムは、最小コスト全域木について解くものであるが、ネットワークトポロジにおけるそれぞれのノードの次数を考慮するものではない。これは次数上限の制約として知られており、ＭＳＴにおけるあるノードが指定限界を超える次数を持たないことを必要とする。或る実施形態において、パケット通信システム１００は、上述したＰ２Ｐ交換ノードを含んでいてもよく、このＰ２Ｐ交換ノードは、２を超える次数を持つことがない。この次数は、インバウンド伝送リンク数と交換ノードへのアウトバウンド伝送リンク数との合計である。
【００３５】
或る実施形態において、拡張Ｂｅｌｌｍａｎ−Ｆｏｒｄアルゴリズム２４２とリンク交換アルゴリズム２４４が、次数制約付きＭＳＴ２５０を生成するために使用されてもよい。図示のように、経路演算モジュール２３０は、次数制約付きＭＳＴを、したがってＬＳＰ２５０を生成するために使用し得る拡張Ｂｅｌｌｍａｎ−Ｆｏｒｄアルゴリズム２４２とリンク交換アルゴリズム２４４とを備えることができる。上述したように、トラフィック制御モジュール２４０からリクエストを受信すると、経路演算モジュール２３０は、トポロジデータベース２２０から得たトポロジデータを使用して、ＬＳＰ２５０を生成することができる。或る実施形態において、経路演算モジュール２３０は、拡張Ｂｅｌｌｍａｎ−Ｆｏｒｄアルゴリズム２４２とリンク交換アルゴリズム２４４とを使用して、次数制約付きＭＳＴを、したがってＬＳＰ２５０を生成することができる。拡張Ｂｅｌｌｍａｎ−Ｆｏｒｄアルゴリズム２４２とリンク交換アルゴリズム２４４の操作の実施形態を、図３〜図５に示す。
【００３６】
或る例示的な実施形態において、次数制約付きＭＳＴは、２つの段階で生成することができる。第１の段階では、パケット通信システム１００のトポロジ上で拡張Ｂｅｌｌｍａｎ−Ｆｏｒｄアルゴリズム２４２を実行する。拡張Ｂｅｌｌｍａｎ−Ｆｏｒｄアルゴリズム２４２は、次数に基づいてノードを選択するための付加的な制約、この実施形態では、すべてのＰ２Ｐ交換ノード１０４が２以下の次数を有するという制約を加えて、従来のＢｅｌｌｍａｎ−Ｆｏｒｄアルゴリズムを実行する。これによって、次数制約に反するＰ２Ｐ交換ノード１０４の数が最小に維持される。拡張Ｂｅｌｌｍａｎ−Ｆｏｒｄアルゴリズム２４２を実行した後、２を超える次数を有するＰ２Ｐ交換ノード１０４が次数制約付きＭＳＴ内に存在する場合、残りのＰ２Ｐ交換ノード１０４が２以下の次数を有するようにする目的で、リンク交換アルゴリズム２４４を実行して、次数制約付きＭＳＴ内に含まれているリンクを、ＭＳＴ内に含まれていないリンクと交換することができる。
【００３７】
図３は、本発明の別の例示的な実施形態にかかるパケット通信システム３００を代表的に示している。図３は、拡張Ｂｅｌｌｍａｎ−Ｆｏｒｄアルゴリズム２４２の各ステップを示すために、図３Ａ〜図３Ｆに分割されている。図３Ａ〜図３Ｆは、図１に関連して説明したパケット通信システム１００を、発信元ノードとしてのノードＡと共に表わしている。
【００３８】
上述したように、ノードの次数は、入次数（ｉｎ−ｄｅｇｒｅｅ）および出次数（ｏｕｔ−ｄｅｇｒｅｅ）の合計であり、ここで、入次数は、ノードに入る伝送リンクの数であり、出次数は、ノードから抜け出す伝送リンクの数である。或る実施形態において、次数制約付きＭＳＴは、Ｐ２Ｐ交換ノード１０４が１の入次数と１の出次数を、したがって２の次数を有するようなものとなる。Ｐ２ＭＰ交換ノード１０６は、１の入次数と１を超える出次数とを有することができる。
【００３９】
拡張Ｂｅｌｌｍａｎ−Ｆｏｒｄアルゴリズム２４２は、従来のＢｅｌｌｍａｎ−Ｆｏｒｄアルゴリズムを使用してそれぞれの交換ノード（現在のノード）を解析するだけでなく、次の手順を使用して、（現在のノードの）前のノードのＰ２ＭＰ能力および出次数に基づいて決定を行なう。
１）解析する各ノード（現在のノード）に対し、その前のノード（現在のノードに供給を行なうノード、つまり親ノード）がＰ２ＭＰ可能かどうかを示す「ｐｒｅｖ＿ｎｏｄｅ＿ｐ２ｍｐ＿ｆｌａｇ」というフィールドを追加する。
２）解析する各ノード（現在のノード）に対し、そのノードがＰ２ＭＰ可能かどうかを示すフィールド「ｐ２ｍｐ＿ｆｌａｇ」を追加する。
３）各反復（ホップ数＝１，２…（ノード数−１））に対し、現在のノード「Ｊ」ごとに、入来伝送リンク（Ｋ１，Ｊ）または（Ｋ２，Ｊ）を次のように選択する（ここで、Ｋ１，Ｋ２は、それぞれ、現在のノードＪの前のノードである）。
【００４０】
【表１】
2009531981.tif 000003
【００４１】
上記の拡張Ｂｅｌｌｍａｎ−Ｆｏｒｄアルゴリズム２４２を使用して、ここで、例示的な実施形態について、図３Ａ〜図３Ｆを参照して説明する。
図３Ａは、図１のパケット通信システム１００の一部分を示しており、ノードＡは発信元ノード３２２であり且つＰ２ＭＰノードである（四角形形状のノードで示す）。発信元ノード３２２のＡからノードＨとノードＩに到達し、ノードＨとノードＩの双方のｐｒｅｖ＿ｎｏｄｅ＿ｐ２ｍｐ＿ｆｌａｇを真（ＴＲＵＥ）に設定する。
【００４２】
図３Ｂは、ノードＨからノードＧ、ノードＩ、およびノードＥへの移動を示している。この例において、ノードＩは、ノードＡからの入来伝送リンク（リンクＡＩ）と、ノードＨからの入来伝送リンク（リンクＨＩ）とを有している。ノードＩのｐｒｅｖ＿ｎｏｄｅ＿ｐ２ｍｐ＿ｆｌａｇをノードＨのｐ２ｍｐ＿ｆｌａｇと比較すると、ノードＡはＰ２ＭＰ交換ノードであり、ノードＨはＰ２Ｐ交換ノードであるので、リンクＡＩが、テーブル１における事例Ｃに従って選択されている。この反復において分かるように、ノードＩが現在のノード３２４であり、ノードＡおよびノードＨは現在のノード３２４の前のノード３２６である。
【００４３】
図３Ｃは、ノードＩおよびノードＨからノードＥへの移動を示している。この反復において、ノードＥが現在のノードであり、ノードＩおよびノードＨが前のノードである。ノードＥには、２つの入来伝送リンク（ＩＥおよびＨＥ）が存在する。ノードＥのｐｒｅｖ＿ｎｏｄｅ＿ｐ２ｍｐ＿ｆｌａｇをノードＩのｐ２ｍｐ＿ｆｌａｇと比較し、テーブル１における事例Ｄ（前のノードがいずれもＰ２Ｐモードである）に従って伝送リンクＩＥが選択され、処置列に示すように変数およびフラグが更新される。リンクＨＥが選択される場合、ノードＥの次数が２を超えることになるため、リンクＨＥは除去される。ノードＧは１つの入来伝送リンク（リンクＨＧ）を有しているのみであり、したがってノードＧの解析は不要である。
【００４４】
図３Ｄは、ノードＧからノードＦへの、またノードＥからノードＣおよびノードＤへの移動を示している。ノードＦからノードＥに到達すると、ノードＦには２個のＰ２Ｐノードからの２つの入来伝送リンク（リンクＩＥおよびリンクＦＥ）が存在する。更新は、この事例では不要である。図３Ｅは、ノードＣからノードＢへの移動を示している。ノードＢに、２つの入来伝送リンク（リンクＣＢおよびリンクＦＢ）が存在する。この反復において、ノードＢが現在のノードであり、ノードＣおよびノードＦが前のノードである。ノードＣはＰ２ＭＰ交換ノードであり、ノードＦはＰ２Ｐ交換ノードであるので、リンクＣＢが、テーブル１の事例Ｃに従って選択される。ノードＣから、ノードＤに到達する。テーブル１の事例Ｃにより、リンクＣＤがリンクＥＤに優先して選択される。
【００４５】
図３Ｆは、ノードＢからノードＦへの移動を示している。ノードＦが現在のノードであり、ノードＧおよびＢが前のノードであるので、事例Ｂにより、リンクＧＦに優先してリンクＢＦが得られる。最終的な全域木は、次数制約付きＭＳＴ３５０であり、ここで、各Ｐ２Ｐ交換ノード（円形のノード）は、２以下の次数３３４を有している。例えば、ノードＩは、Ｐ２Ｐ交換ノードであるが、１つのインバウンド無向伝送リンク３３０と、１つのアウトバウンド無向伝送リンク３３２とを有している。図示の実施形態において、拡張Ｂｅｌｌｍａｎ−Ｆｏｒｄアルゴリズム２４２は、有向トポロジと無向トポロジの双方に作用しており、また、Ｂｅｌｌｍａｎ−Ｆｏｒｄアルゴリズムに対するわずかな修正しか必要としていない。或る実施形態において、拡張Ｂｅｌｌｍａｎ−Ｆｏｒｄアルゴリズム２４２は、標準的なＢｅｌｌｍａｎ−Ｆｏｒｄアルゴリズムと同じ時間演算量（Ｏ（Ｖ，Ｅ）、ここで、Ｖは交換ノードの数であり、Ｅは伝送リンクの数である）を有している。
【００４６】
或る実施形態において、拡張Ｂｅｌｌｍａｎ−Ｆｏｒｄアルゴリズム２４２はヒューリスティックなアルゴリズムであってもよく、拡張Ｂｅｌｌｍａｎ−Ｆｏｒｄアルゴリズム２４２のみを使用しても、すべてのＰ２Ｐ交換ノードを２以下の次数に制限した次数制約付き最小全域木が得られないパケット通信システム１００のトポロジが存在し得る。
【００４７】
図４は、本発明の別の例示的な実施形態にかかるパケット通信システム４００を代表的に示している。図４に示す実施形態は、拡張Ｂｅｌｌｍａｎ−Ｆｏｒｄアルゴリズム２４２を使用して生成した次数制約付きＭＳＴの一部分を示しており、ここで、すべてのＰ２Ｐ交換ノードが２以下の次数を有する次数制約付きＭＳＴが、拡張Ｂｅｌｌｍａｎ−Ｆｏｒｄアルゴリズム２４２によって得られない場合、リンク交換アルゴリズム２４４を呼び出すことができる。換言すれば、リンク交換アルゴリズム２４４は、不適合なすべてのＰ２Ｐ交換ノード（２を超える次数を有するノード）を訂正することができる。実線は、次数制約付きＭＳＴ内に含まれている伝送リンクを表わしており、破線は、次数制約付きＭＳＴ内に含まれていない伝送リンクを示している。さらに、ノードＺとノードＸとの間に表わされた２つのリンクは、有向伝送リンクである。
【００４８】
図４に示すように、拡張Ｂｅｌｌｍａｎ−Ｆｏｒｄアルゴリズム２４２により次数制約付きＭＳＴが得られており、ここで、Ｐ２Ｐ交換ノードのうちの少なくとも１つ（ノードＺ）は、２を超える次数を有している。次数制約付きＭＳＴが生成された状態で、ノードＺは次数制約規則（次数は２以下）に反しており、したがって、最適な次数制約付きＭＳＴではない。これを修復するために、リンク交換アルゴリズム２４４を図示のＭＳＴに対して実行することができる。
【００４９】
第一に、２を超える次数を有するＰ２Ｐ交換ノードのすべてを含んだ調整用リスト（ｔｏ＿ａｄｊｕｓｔ＿ｌｉｓｔ）が生成される。拡張Ｂｅｌｌｍａｎ−Ｆｏｒｄアルゴリズム２４２によって生成された次数制約付きＭＳＴに現在は含まれていない、トポロジ内の伝送リンクのすべてを含んだ試験用リスト（ｔｏ＿ｔｅｓｔ＿ｌｉｓｔ）が生成される。ｔｏ＿ｔｅｓｔ＿ｌｉｓｔが、各リンクの距離に従って昇順でソートされる。ホップ数（ｈｏｐ＿ａｗａｙ）フラグが、不適合なＰ２Ｐノード（ノードＺ）から１ホップだけ離れていることを意味する１で初期化される。ｔｏ＿ａｄｊｕｓｔ＿ｌｉｓｔ内にある各ノードに対して、ｔｏ＿ａｄｊｕｓｔ＿ｌｉｓｔ内の各ノードから、すべてのノードのｈｏｐ＿ａｗａｙの調整用ホップ数リスト（ｔｏ＿ａｄｊｕｓｔ＿ｈｏｐ＿ａｗａｙ＿ｌｉｓｔ）が生成される。さらに、リンク交換アルゴリズム２４４が進行すると、リンク交換アルゴリズム２４４を実施する間にＭＳＴから除去された伝送リンクを含んだ第２の試験用リスト（ｔｏ＿ｔｅｓｔ２＿ｌｉｓｔ）が生成されてもよい。
【００５０】
ｔｏ＿ａｄｊｕｓｔ＿ｌｉｓｔ内の各ノード、例えばノードＺに対し、以下の手順を実施することができる。ｔｏ＿ｔｅｓｔ＿ｌｉｓｔの先頭（最小距離を有するリンク）から開始して、ｔｏ＿ｔｅｓｔ＿ｌｉｓｔ内のいずれかのリンク、例えばリンクＸＹをＭＳＴに追加して次の制約を満足し得るかどうかを調べる。
ａ）リンクＸＹが、調整用ノード（ｔｏ＿ａｄｊｕｓｔ＿ｎｏｄｅ）（すなわち、ノードＺ）の接続ノードのいずれか、例えばノードＸを通過する必要がある。
ｂ）除去すべきリンク（ｌｉｎｋ＿ｔｏ＿ｒｅｍｏｖｅ）を、ｔｏ＿ａｄｊｕｓｔ＿ｎｏｄｅ（ノードＺ）と同じスタートノードおよび接続ノードとしてのエンドノードから、ｔｏ＿ａｄｊｕｓｔ＿ｎｏｄｅへのリンク（リンクＺＸ）として、初期化する。接続ノード（ノードＸ）がＭＳＴにおける親ノードである場合、ｌｉｎｋ＿ｔｏ＿ｒｅｍｏｖｅは、接続ノード（ノードＸ）としてのスタートノードから、ｔｏ＿ａｄｊｕｓｔ＿ｎｏｄｅ（ノードＺ）およびｔｏ＿ａｄｊｕｓｔ＿ｎｏｄｅと同じエンドノードへのリンク（リンクＸＺ）である。これは、ＭＳＴにおける流れの方向を保つために行われる。
ｃ）現在の試験すべきリンク（ｔｏ＿ｔｅｓｔ＿ｌｉｎｋ）を追加し、ｌｉｎｋ＿ｔｏ＿ｒｅｍｏｖｅを除去することによって、
ｃ１）ｔｏ＿ａｄｊｕｓｔ＿ｎｏｄｅを調整する（不適合なノードの次数を１だけ減じる）こと、および、
ｃ２）ｔｏ＿ａｄｊｕｓｔ＿ｌｉｓｔに新しいノードを追加しないこと。
ｄ）ｔｏ＿ｔｅｓｔ＿ｌｉｎｋを追加し、ｌｉｎｋ＿ｔｏ＿ｒｅｍｏｖｅを除去することによって、ＭＳＴが依然として接続されていること（トポロジ内のすべてのノードが、発信元ノードから到達可能であること）。
【００５１】
上記の条件（ａ〜ｄ）が満足された場合、新しいリンク（リンクＸＹ）がＭＳＴに追加され、ｌｉｎｋ＿ｔｏ＿ｒｅｍｏｖｅ（リンクＸＺ）が除去される（リンクＸＺとリンクＺＸの双方が除去される）。除去されたリンクはｔｏ＿ｔｅｓｔ２＿ｌｉｓｔに追加され、ｔｏ＿ｔｅｓｔ２＿ｌｉｓｔは、リスト内の各リンクの距離に従って昇順でソートされる。上記のステップは、ｔｏ＿ａｄｊｕｓｔ＿ｎｏｄｅ（ノードＺ）がｔｏ＿ａｄｊｕｓｔ＿ｌｉｓｔから除去されるまで繰り返すことができる。さらに、上記のステップは、ｔｏ＿ａｄｊｕｓｔ＿ｌｉｓｔ内の各ノードに対して繰り返すことができる。
【００５２】
解が見つからない場合、制約（ｃ１）および（ｃ２）の一または複数を無視して上記の手順を繰り返すことができる。依然として解が見つからず、ｔｏ＿ｔｅｓｔ＿ｌｉｓｔを使い果たした場合、ｔｏ＿ｔｅｓｔ２＿ｌｉｓｔ内のリンクに注目することができる。依然として解が見つからない場合、ｈｏｐ＿ａｗａｙを１だけ増分して手順を繰り返すことができる（つまり、ｈｏｐ＿ａｗａｙを２に増分し、ｔｏ＿ａｄｊｕｓｔ＿ｎｏｄｅから２ホップ離れたノードに注目する）。ｈｏｐ＿ａｗａｙが、ＭＳＴ内のノードの数より１つ小さい値に達し、且つ、解が見つからない場合、所与のトポロジに対して得られる解は存在しない。
【００５３】
或る実施形態において、上記のリンク交換アルゴリズム２４４は、拡張Ｂｅｌｌｍａｎ−Ｆｏｒｄアルゴリズム２４２を実行した後にも２を超える次数を有する不適合なＰ２Ｐ交換ノードを訂正することができる。リンク交換アルゴリズム２４４の時間演算量は、Ｏ（Ｖ２、Ｅ）であり、ここで、Ｖは交換ノードの数であり、Ｅは伝送リンクの数である。
【００５４】
或る実施形態において、リンク交換アルゴリズム２４４はヒューリスティックなアルゴリズムであってもよく、また、すべてのＰ２Ｐ交換ノードを２以下の次数に制限した次数制約付きＭＳＴが得られないパケット通信システムのトポロジが存在し得る。さらに、拡張Ｂｅｌｌｍａｎ−Ｆｏｒｄアルゴリズム２４２およびリンク交換アルゴリズム２４４の組合せはヒューリスティックなアルゴリズムであってもよく、また、拡張Ｂｅｌｌｍａｎ−Ｆｏｒｄアルゴリズム２４２とリンク交換アルゴリズム２４４を使用しても、すべてのＰ２Ｐ交換ノードを２以下の次数に制限した次数制約付き最小全域木が得られないパケット通信システム１００のトポロジが存在し得る。
【００５５】
図５は、本発明のさらに別の例示的な実施形態にかかるパケット通信システム５００を代表的に示している。図５は、リンク交換アルゴリズム２４４の各ステップを例示的に示すために、図５Ａ〜図５Ｅに分割されている。図示のパケット通信システム５００は、ビデオ、他のパケット化データなどのマルチキャスト配信のためのトポロジ５０１を代表することができ、ここで、発信元ノード（例えばノードＣ）は、複数の伝送リンク５０８を介して一または複数の宛先ノード５０５に配信を行なう。複数の伝送リンクの各々のそれぞれの距離は、下線付きの番号で示されている。
【００５６】
図５Ａは、Ｂｅｌｌｍａｎ−Ｆｏｒｄアルゴリズム２４２の実行後のパケット通信システム５００のトポロジ５０１を示しており、Ｂｅｌｌｍａｎ−Ｆｏｒｄアルゴリズム２４２により、２を超える次数を有する不適合なＰ２Ｐ交換ノードを持つ次数制約付きＭＳＴが返されている。Ｐ２Ｐ交換ノード５０４は円形のノードで表わされており、Ｐ２ＭＰ交換ノード５０６は四角形のノードで表わされている。図示の実施形態において、ＭＳＴ内に含まれている伝送リンク５１０は実線で示されており、ＭＳＴ内にない伝送リンク５１２は破線で示されている。
【００５７】
図示の実施形態において、３つのＰ２Ｐ交換ノード（ノードＤ、ＥおよびＮ）が、２を超える次数をそれぞれ有しているので、それらのＰ２Ｐ交換ノードは不適合である。したがって、ｔｏ＿ａｄｊｕｓｔ＿ｌｉｓｔは、ノードＤ、ノードＥ、およびノードＮを含んでいる。調整用ホップ数（ｔｏ＿ａｄｊｕｓｔ＿ｈｏｐ＿ａｗａｙ）のリストは、ｔｏ＿ａｄｊｕｓｔ＿ｎｏｄｅから（最初は）１ホップ離れている各ノードを表わしている。このことを、ｔｏ＿ａｄｊｕｓｔ＿ｎｏｄｅに続き、それぞれ括弧の中にｔｏ＿ａｄｊｕｓｔ＿ｈｏｐ＿ａｗａｙのノードを示すことによって表わすことができる。つまり、ｔｏ＿ａｄｊｕｓｔ＿ｌｉｓｔは、Ｄ（Ｅ，Ｂ，ＣＰ）、Ｅ（Ｎ，Ｆ，ＤＰ）、Ｎ（Ｏ，Ｓ，ＥＰ）となり、ここで、上付き添え字「Ｐ」は、各場合の親ノードを表わす。ｔｏ＿ｔｅｓｔ＿ｌｉｓｔは、ＭＳＴ内に含まれていないリンク５１２を距離の昇順でソートしたもの、つまり、ＱＮ（３）、ＮＱ（３）、ＦＩ（３）、ＩＦ（３）、ＪＭ（３）、ＭＪ（３）、ＡＢ（４）、ＢＡ（４）、ＰＱ（５）、ＱＰ（５）、ＪＥ（６）、ＥＪ（６）を含んでいる。
【００５８】
まず、ｔｏ＿ａｄｊｕｓｔ＿ｎｏｄｅのＤが修正される。交換について考慮されているリンクは、リンクＤＥ、ＤＢ、およびＣＤである。リンクをｔｏ＿ｔｅｓｔ＿ｌｉｓｔから追加するための条件がここで考慮される。リンクＱＮ、ＮＱ、ＦＩ、ＩＦ、ＪＭ、およびＭＪは、Ｄに接続されたノードを含んでいない（上記の条件（ａ））ので、これらのリンクは考慮されない。リンクＡＢはノードＢを含んでおり、このノードＢはノードＤに接続されているので、リンクＡＢは考慮することができる。リンクＡＢが追加され、リンクＤＢが除去されると、それによって上記の条件のすべてが満たされる。すなわち、
条件（ａ）：新しいリンク（ＡＢ）は、ｔｏ＿ａｄｊｕｓｔ＿ｎｏｄｅに接続されたノードを通過する。
条件（ｂ）：ＭＳＴにおける流れの方向は保たれる。
条件（ｃ１）：ノードＤの次数は１だけ減分される。
条件（ｃ２）：リンクＡＢを追加しても、ｔｏ＿ａｄｊｕｓｔ＿ｌｉｓｔに新しいノードは追加されない。
条件（ｄ）：ＭＳＴは依然として接続されており、発信元ノードＣから他のすべてのノードに到達可能である。
【００５９】
ノードＤを訂正した後の新しいＭＳＴが図５Ｂに示されており、図５Ｂにおいて、リンクＡＢはここでは実線となっており、リンクＤＢはここでは破線となっている。新しいｔｏ＿ａｄｊｕｓｔ＿ｌｉｓｔは、Ｅ（Ｎ，Ｆ，ＤＰ）、Ｎ（Ｏ，Ｓ，ＥＰ）である。新しいｔｏ＿ｔｅｓｔ＿ｌｉｓｔは、ＱＮ（３）、ＮＱ（３）、ＦＩ（３）、ＩＦ（３）、ＪＭ（３）、ＭＪ（３）、ＰＱ（５）、ＱＰ（５）、ＪＥ（６）、ＥＪ（６）である。ｔｏ＿ｔｅｓｔ２＿ｌｉｓｔは、ＤＢ（２）、ＢＤ（２）である。
【００６０】
今度はノードＥが修正される。リンクＰＱおよびＱＰは、ノードＥに接続されたノードを含んでいない。ｔｏ＿ｔｅｓｔ＿ｌｉｓｔからの他のリンクは、次数に反することなく追加することができない（条件ｃ２）。リンクＩＦまたはＦＩを追加すると、ノードＦがｔｏ＿ａｄｊｕｓｔ＿ｌｉｓｔに追加される。リンクＪＭ、ＭＪ、ＥＪ、またはＪＥを追加すると、新しいノードＪがｔｏ＿ａｄｊｕｓｔ＿ｌｉｓｔに追加される。ＱＮを追加し、リンクＥＮを除去すると、すべての条件が満たされる。すなわち、
条件（ａ）：新しいリンク（ＱＮ）は、ｔｏ＿ａｄｊｕｓｔ＿ｎｏｄｅに接続されたノードを通過する。
条件（ｂ）：ＭＳＴにおける流れの方向は保たれる。
条件（ｃ１）：ノードＥの次数は１だけ減分される。
条件（ｃ２）：リンクＱＮを追加しても、ｔｏ＿ａｄｊｕｓｔ＿ｌｉｓｔに新しいノードは追加されない。
条件（ｄ）：ＭＳＴは依然として接続されており、発信元ノードＣから他のすべてのノードに到達可能である。
【００６１】
ノードＥを訂正した後の新しいＭＳＴが図５Ｃに示されており、リンクＱＮはここでは実線となっており、リンクＥＮはここでは破線となっている。新しいｔｏ＿ａｄｊｕｓｔ＿ｌｉｓｔは、Ｎ（Ｏ，Ｓ，ＱＰ）である。新しいｔｏ＿ｔｅｓｔ＿ｌｉｓｔは、ＦＩ（３）、ＩＦ（３）、ＪＭ（３）、ＭＪ（３）、ＰＱ（５）、ＱＰ（５）、ＪＥ（６）、ＥＪ（６）である。ｔｏ＿ｔｅｓｔ２＿ｌｉｓｔは、ＤＢ（２）、ＢＤ（２）、ＥＮ（８）、ＮＥ（８）である。
【００６２】
ここでノードＮが修正される。リンクＦＩ、ＩＦ、ＭＪ、およびＪＭは、ノードＮに接続されたノードを含んでいない。リンクＰＱを追加すると、ＭＳＴは接続されなくなるので、条件（ｄ）が満たされなくなる（ここで、ＰＱはＰからＱへの方向性があり、ＰＱを使用するとノードＰ、Ｏ、およびＮが孤立する）。リンクＱＰを追加し、リンクＱＮを除去すると、すべての条件が満たされる。すなわち、
条件（ａ）：新しいリンク（ＱＰ）は、ｔｏ＿ａｄｊｕｓｔ＿ｎｏｄｅに接続されたノードを通過する。
条件（ｂ）：ＭＳＴにおける流れの方向は保たれる。
条件（ｃ１）：ノードＮの次数は１だけ減分される。
条件（ｃ２）：リンクＱＰを追加しても、ｔｏ＿ａｄｊｕｓｔ＿ｌｉｓｔに新しいノードは追加されない。
条件（ｄ）：ＭＳＴは依然として接続されており、発信元ノードＣから他のすべてのノードに到達可能である。
【００６３】
ノードＥを訂正した後の新しいＭＳＴが図５Ｄに示されており、リンクＱＰはここでは実線となっており、リンクＱＮはここでは破線となっている。新しいｔｏ＿ａｄｊｕｓｔ＿ｌｉｓｔは空である。新しいｔｏ＿ｔｅｓｔ＿ｌｉｓｔは、ＦＩ（３）、ＩＦ（３）、ＪＭ（３）、ＭＪ（３）、ＪＥ（６）、ＥＪ（６）である。ｔｏ＿ｔｅｓｔ２＿ｌｉｓｔは、ＤＢ（２）、ＢＤ（２）、ＮＱ（３）、ＱＮ（３）、ＥＮ（８）、ＮＥ（８）である。
【００６４】
ここで、次数制約付きＭＳＴ５５０が図５Ｅに示されており、ＭＳＴ５５０に含まれていないリンクはない。Ｐ２Ｐノードのすべてがここでは、２以下の次数を有している。次数制約付きＭＳＴ５５０は、ＬＳＰ２５０を確立するために使用することができる。
【００６５】
上記の拡張Ｂｅｌｌｍａｎ−Ｆｏｒｄアルゴリズムおよびリンク交換アルゴリズムは、標準的なＢｅｌｌｍａｎ−Ｆｏｒｄアルゴリズムを実行する演算量が増加されず、リンク交換アルゴリズムのみが（必要に応じて）追加されるという利点を有している。上記のアルゴリズムはまた、有向トポロジと無向トポロジの双方に作用するという利点を有している。最終的な次数制約付きＭＳＴは、最小コストを有していない場合でも、ほぼ最適なコストを有することができる。
【００６６】
以上の詳述において、本発明は特定の例示的な実施形態を参照して記述された。しかしながら、様々な修正および変更が、特許請求の範囲に記載したような本発明の範囲から逸脱することなくなされ得ることは理解されよう。本明細書および図面は、限定的にではなく、例示的に考慮されるべきであり、そのようなすべての修正が本発明の範囲内に含まれることが意図されている。したがって、本発明の範囲は、単に上述した例によってではなく、本明細書に添付した特許請求の範囲とその法的な均等物によって定められるべきである。
【００６７】
例えば、いずれかの方法または方法クレームにおいて列挙したステップは、いかなる順序でも実行することができ、特許請求の範囲に示した特定の順序に限定されない。加えて、いずれかの装置クレームにおいて列挙した構成要素および／または要素は、本発明と実質的に同じ結果を生じるように、多様な並び換えにおいて組み立て、あるいは別の方法で操作的に構成することができ、したがって、特許請求の範囲において列挙した特定の構成に限定されない。
【００６８】
利益、他の利点、および問題の解決策について、特定の実施形態を参照して説明してきたが、しかしながら、いかなる利益、利点、問題の解決策も、あるいは、いかなる特定の利益、利点、もしくは解決策をも生じさせ得る、またはより明白にし得るいかなる要素も、特許請求の範囲の一部またはすべての重要な、必要な、または不可欠な特徴または構成要素とみなされるべきではない。
【００６９】
具体的に列挙されていないものに加えて、本発明の実施に使用される上述の構造、構成、応用、比率、要素、材料、または構成要素の他の組合せおよび／または修正は、本発明の一般的原理から逸脱することなく変更することができ、あるいは別の方法で、特定の環境、製造仕様、設計パラメータ、または他の操作要件に特に適合させることができる。
【図面の簡単な説明】
【００７０】
【図１】本発明の例示的な一実施形態にかかるパケット通信システムを代表的に示す図。
【図２】本発明の例示的な一実施形態にかかるパケット通信サブシステムを代表的に示す図。
【図３Ａ】本発明の別の例示的な実施形態にかかるパケット通信システムを代表的に示す図。
【図３Ｂ】本発明の別の例示的な実施形態にかかるパケット通信システムを代表的に示す図。
【図３Ｃ】本発明の別の例示的な実施形態にかかるパケット通信システムを代表的に示す図。
【図３Ｄ】本発明の別の例示的な実施形態にかかるパケット通信システムを代表的に示す図。
【図３Ｅ】本発明の別の例示的な実施形態にかかるパケット通信システムを代表的に示す図。
【図３Ｆ】本発明の別の例示的な実施形態にかかるパケット通信システムを代表的に示す図。
【図４】本発明のまた別の例示的な実施形態にかかるパケット通信システムを代表的に示す図。
【図５Ａ】本発明のさらに別の例示的な実施形態にかかるパケット通信システムを代表的に示す図。
【図５Ｂ】本発明のさらに別の例示的な実施形態にかかるパケット通信システムを代表的に示す図。
【図５Ｃ】本発明のさらに別の例示的な実施形態にかかるパケット通信システムを代表的に示す図。
【図５Ｄ】本発明のさらに別の例示的な実施形態にかかるパケット通信システムを代表的に示す図。
【図５Ｅ】本発明のさらに別の例示的な実施形態にかかるパケット通信システムを代表的に示す図。
【図１】
2009531981.tif 000004
【図２】
2009531981.tif 000005
【図３Ａ】
2009531981.tif 000006
【図３Ｂ】
2009531981.tif 000007
【図３Ｃ】
2009531981.tif 000008
【図３Ｄ】
2009531981.tif 000009
【図３Ｅ】
2009531981.tif 000010
【図３Ｆ】
2009531981.tif 000011
【図４】
2009531981.tif 000012
【図５Ａ】
2009531981.tif 000013
【図５Ｂ】
2009531981.tif 000014
【図５Ｃ】
2009531981.tif 000015
【図５Ｄ】
2009531981.tif 000016
【図５Ｅ】
2009531981.tif 000017