(57)【特許請求の範囲】
【請求項１】
多対多の通信における、ノード間のパケット送信経路を設定する端末装置であって、
前記多対多の通信に参加するメンバーを特定するアドレス情報を用いて、メンバー間のリンクの帯域幅およびパケットの往復時間を計測し、計測結果をメトリックデータベースに格納するメトリックコレクタと、
前記計測結果を用いて、前記メンバー間のパケット送信経路を、帯域幅が均等になるようにＮ−ツリーを形成し、パケット送信経路を設定してサーバー転送テーブルに格納するＡＬＭ転送テーブルコンストラクタと、
前記ＡＬＭ転送テーブルコンストラクタが設定したパケット送信経路を、入力ポート番号、宛先アドレス、宛先ポート番号の対で表現される情報に変換し、前記各メンバーに通知するＡＬＭ転送テーブルディストリビュータと、
を具備する端末装置。
【請求項２】
前記ＡＬＭ転送テーブルコンストラクタは、前記Ｎ−ツリーを形成する過程で、接続状態にある全てのノードに対するツリーの状態に関するＮ−ツリーセッション情報を最適ストリーム経路情報テーブルに格納する、
請求項１に記載の端末装置。
【請求項３】
前記ＡＬＭ転送テーブルコンストラクタは、
Ｎ−ツリーアルゴリズムの実行中、
経験的規則データベースに格納された特定の経験的規則に基づき、Ｎ−ツリーセッション内の全てのメンバーを順位付けして順序付きリストを作成し、
前記順序付きリストの順位が高いメンバーから順に、Ｎ−ツリー内の他の全てのノードに対するリンクを確立しなかったものを選択し、選択したメンバーを順位付けして規則ベース順序付きリストを作成し、
前記規則ベース順序付きリストの順位が高いメンバーから順に、このメンバーと前記経験的規則データベースに格納された特定の経験的規則を満たす前記初期リストのメンバーとを選択することによりペアノードを形成し、ペアノードを順位付けして規則ペアノード順序付きリストを作成し、
前記規則ペアノード順序付きリストの順位が高いペアノードから順に、前記経験的規則データベースに格納された追加規則を満たすメンバーを選択し、Ｎ−ツリーを形成する、
請求項１に記載の端末装置。
【請求項４】
前記ＡＬＭ転送テーブルコンストラクタは、
ペアノードを形成する際に、Ｎ−ツリーセッション内の全てのリンクの中で、ノードペア間の最も少ない待ち時間を有するリンクを選択する、
請求項３に記載の端末装置。
【請求項５】
前記ＡＬＭ転送テーブルコンストラクタは、
Ｎ個のツリーの高さを最小化するためにリンクをペアノード間で移動する、
請求項３または請求項４に記載の端末装置。
【請求項６】
前記ＡＬＭ転送テーブルコンストラクタは、
前記経験的規則データベースから経験的規則を選択し、前記最適ストリーム経路情報テーブルに基づいて前記選択した経験的規則を実行し、前記サーバー転送テーブルを更新する、
請求項３から請求項５のいずれかに記載の端末装置。
【請求項７】
前記ＡＬＭ転送テーブルコンストラクタは、
前記最適ストリーム経路情報テーブルから個々のノードを選択し、前記選択したノードを通過する全てのストリームに対して前記サーバー転送テーブルを構築する、
請求項３から請求項６のいずれかに記載の端末装置。
【請求項８】
前記経験的規則データベースに格納される経験的規則は、
ａ．少ない待ち時間のＮ−ツリーを得るために、ノードは、他のノードのストリームを運ぶのではなく、そのノード自身のストリームをアップロードするために、最初に、当該帯域幅を使用すべきであるという規則と、
ｂ．ノード間で選択がなされる場合、残りのスロット数が最も多いノードを選択するという規則と、
ｃ．リンク間で選択がなされる場合、残りのスロット容量が最大のリンクを選択するという規則と、
ｄ．規則ｃにおいて、残りのスロット数が同じのリンク間では、Ｎ−ツリーに対し、最も少ないエンドツーエンド待ち時間を与えるリンクを選択するという規則と、を含む、
請求項３から請求項７のいずれかに記載の端末装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｎ−ツリーにおいて公平な帯域幅共有を行なうための端末装置に関する。
【背景技術】
【０００２】
多地点通信、特にはインターネット上の多地点通信は、セッション中に、すべての参加ノードに対し同時に同じコンテンツを配送するマルチキャスト方法により広く行われている。
【０００３】
ＩＰマルチキャストは、ＩＰ層マルチキャスティングを可能にするための、中間ノード構成と末端ノード構成とインターネットサービスプロバイダー参加要件が複雑であるという問題がある。これに対して、アプリケーション層マルチキャスティング（Application Layer Multicasting：ＡＬＭ）は、既存のユニキャストネットワークアーキテクチャ上にアプリケーション層を実施することから、簡易であるため普及している。
【０００４】
ＡＬＭは、ＩＰ層におけるマルチキャスト転送機能が不要であることから、参加ノード間でのメンバー自身によるＡＶ（オーディオビデオ）パケット転送、及び、アプリケーション層におけるＡＶパケット転送を柔軟に行うことができる。
【０００５】
ＡＬＭは、特定セッション中にすべての参加者が事前の環境設定なしに、参加者の間でＡＶコンテンツまたはストリームを交換することができる。したがって、ＡＬＭは、複数の当事者間で行われるテレビ会議のような、ＡＶベースのアプリケーションに極めて有用である。
【０００６】
参加ノード間で交換されるＡＶストリームの数は、メンバー数をＮとすると、Ｎ×（Ｎ−１）のオーダーで増加する。通信ネットワークに、帯域幅と待ち時間との点において、公平な通信コストを維持させることは、特に末端ノード間のインターネット環境では困難である。これは、オープンネットワークとしてのインターネットは、参加ノードによるＡＶストリームの交換中において、ノード間での帯域幅の公平性を保証しないからである。
【０００７】
複数のＩＳＰ（Internet Services Provider）は、本来動的であるインターネットの経路を維持するので、複数のツリーに対し最少のストリーム配送遅延ツリーを構築し維持することは困難である。これは、例えば、ユニキャストパケットルーティングアーキテクチャによる根本的な帯域幅を意識しないソースベースツリー（ＳＢＴ）ルーティングメカニズムに起因する特定メンバーの喪失に至る。また、ＡＶセッションにおける参加ノード間の帯域幅共有のような、不公平な資源分配をもたらす。
【０００８】
パケットルーティングは、ＡＬＭ用のアプリケーション層において行われるので、参加ノードはグループに編制されることになる。そして、パケットルーティングは、パケット転送メカニズムをすべての参加ノードに知らせる必要がある。
【０００９】
ネットワーク層ルーティングメカニズムは、近視眼的な（short-sited）最も近い経路の構築方法であるため、帯域幅公平化配送ツリー（bandwidth fair distribution tree）ソリューションを提供しない。ネットワーク層ルーティングメカニズムとしては、短経路生成のためのDijkstra、Bellman-Ford、Primアルゴリズムの”欲張り”概念に基づくＳＢＴや最小スパニング樹（Minimum Spanning Tree：ＭＳＴ）などが知られている。そして、インターネット上のユニキャストパケットルーティングは、これらのアルゴリズムに基づいており、ＡＬＭルーティングの要件を反映しない。
【００１０】
これらのソリューションは、末端ノードネットワーク帯域幅及び全体ネットワークトポロジーを意識しないことから、ノードの共有経路におけるトラヒック輻輳を引き起こす。また、これらのソリューションは、ＡＬＭアプリケーションに対し長いネットワーク待ち時間とＡＶ品質劣化とをもたらす。
【００１１】
以下、従来技術、すなわちＰｒｉｍ−ＭＳＴ（最小スパニング樹）アルゴリズムメカニズムについて、簡単な例（図１７）を用いて説明する。図１７には、各ノードの回線の帯域幅Ｂ（Ｘ）容量と２つのノード間の遅延Ｄ（Ａ、Ｂ）とを有する４つの異なる場所、すなわちベトナム（ＶＮ）、日本（ＪＰ）、マレーシア（ＭＹ）、シンガポール（ＳＧ）を例示する。この例では、８Ｍｂｐｓ、４Ｍｂｐｓ、３Ｍｂｐｓまたは２Ｍｂｐｓの送信速度セット／スロットが用いられている。
【００１２】
この場合、従来の、欲張りアルゴリズム原理に基づくＰｒｉｍ−ＭＳＴアルゴリズムを実行すると、Ｎ個のノード（この例ではＮ＝４）に対する一対Ｎ分散ツリーのそれぞれは、次のように計算される。
【００１３】
（１）まず、許容帯域幅が最も大きいＭＹについて、他のノードへパケットを送信するための経路を選択する。具体的には、まず、ＭＹが、８Ｍｂｐｓの帯域幅を他の全てのノードに対して確保することができるか否か検討する。この場合、ＭＹが、ＶＮ及びＳＧに対して、パケットを直接送信する経路を選択すれば８Ｍｂｐｓの帯域幅を確保することができる。ただし、ＭＹとＪＰの間の遅延Ｄ＝３００ｍｓが、最大レイテンシ２５０ｍｓを超えているため、ＭＹが、ＪＰに対して、パケットを直接送信する経路を選択することはできない。そこで、ＭＹからＪＰへのパケットの送信は、ＳＧを経由してパケットを送信する経路を選択する。これにより、ＭＹがＪＰに対して８Ｍｂｐｓの帯域幅を確保することができる（図１８（Ａ））。この結果、残りの帯域幅は、ＭＹが２０Ｍｂｐｓ、ＳＧが１２Ｍｂｐｓ、ＪＰが１６Ｍｂｐｓ、ＶＮが６Ｍｂｐｓとなる。
【００１４】
（２）次に、当初の許容帯域幅が２番目に大きいＳＧについて、他のノードへパケットを送信するための経路を選択する。具体的には、まず、ＳＧが、８Ｍｂｐｓの帯域幅を他の全てのノードに対して確保できるか否か検討する。しかし、ＳＧが、ＭＹ及びＶＮに対して８Ｍｂｐｓの帯域幅を確保すると（８Ｍｂｐｓ×２）、ＳＧの残りの帯域幅１２Ｍｂｐｓを超えてしまう。したがって、ＳＧが８Ｍｂｐｓの帯域幅を確保することはできない。そこで、次に、ＳＧが、４Ｍｂｐｓの帯域幅を他の全てのノードに対して確保できるか否か検討する。この場合、ＳＧが、ＭＹ及びＶＮに対して、パケットを直接送信する経路を選択すれば４Ｍｂｐｓの帯域幅を確保することができる。また、ＳＧからＪＰに、ＶＮを経由してパケットを送信する経路を選択すれば、ＳＧがＪＰに対して４Ｍｂｐｓの帯域幅を確保することができる（図１８（Ｂ））。この結果、残りの帯域幅は、ＭＹが２０Ｍｂｐｓ、ＳＧが４Ｍｂｐｓ、ＪＰが１６Ｍｂｐｓ、ＶＮが２Ｍｂｐｓとなる。
【００１５】
（３）次に、当初の許容帯域幅が３番目に大きいＪＰについて、他のノードへパケットを送信するための経路を選択する。具体的には、まず、ＪＰが、４Ｍｂｐｓの帯域幅を他の全てのノードに対して確保できるか否か検討する。この場合、ＪＰが、ＳＧ及びＶＮに対して、パケットを直接送信する経路を選択すれば４Ｍｂｐｓの帯域幅を確保することができる。また、ＪＰからＭＹに、ＳＧを経由してパケットを送信する経路を選択すれば、ＪＰがＭＹに対して４Ｍｂｐｓの帯域幅を確保することができる（図１８（Ｃ））。この結果、残りの帯域幅は、ＭＹが２０Ｍｂｐｓ、ＳＧが０Ｍｂｐｓ、ＪＰが８Ｍｂｐｓ、ＶＮが２Ｍｂｐｓとなる。
【００１６】
（４）最後に、当初の帯域幅が最も小さいＶＮが、他のノードへパケットを送信するための経路を選択する。ここで、ＶＮの残りの帯域幅は２Ｍｂｐｓであるので、ＶＮが、ＭＹに対して、パケットを直接送信する経路を選択し、２Ｍｂｐｓの帯域幅を確保する。また、ＶＮからＪＰに、ＭＹを経由してパケットを送信する経路を選択すれば、ＶＮがＪＰに対して２Ｍｂｐｓの帯域幅を確保することができる。また、ＶＮからＳＧに、ＭＹ及びＪＰを経由してパケットを送信する経路を選択すれば、ＶＮがＳＧに対して２Ｍｂｐｓの帯域幅を確保することができる（図１８（Ｄ））。
【００１７】
このように、従来のＮ−ツリーアルゴリズム（Ｐｒｉｍ−ＭＳＴ）によっても、一対ＮソースベースのツリーをＮ個構築することにより、参加ノード間のＮ対Ｎのテレビ会議セッションを確立することができる。この方法は、ＳＢＴに基づく待ち時間要件を満足することは可能である。
【非特許文献１】ミン・シク・キム他「インターネットストリーミングメディアのための最適配送ツリー」（Min Sik Kim et. al，’’Optimal Distribution Tree for Internet Streaming Media’’）、第２３回ＩＥＥＥ  ＩＣＤＣＳ会議録、２００３年５月
【特許文献１】米国特許出願公開第２００６／０２５１０６２号明細書
【特許文献２】米国特許出願公開第２００６／０１５３１００号明細書
【特許文献３】米国特許出願公開第２００５／００８０８９４号明細書
【特許文献４】米国特許出願公開第２００５／０２４３７２２号明細書
【発明の開示】
【発明が解決しようとする課題】
【００１８】
しかしながら、従来のＮ−ツリーアルゴリズムは、Ｎ−ツリーの構築段階に各ツリー間の調和をとることなく個別に算出するため、Ｎ個の一対Ｎツリー間の帯域幅の公平性を満足しない。
【００１９】
図１８の場合であれば、従来のＮ−ツリーアルゴリズムは、ＶＮについて２Ｍｂｐｓの帯域幅しか確保することができない。
【００２０】
また、従来のＮ−ツリーアルゴリズムを用いて、帯域幅が公平なＮ−ツリーを構築しようとすると、全ての組み合わせについて計算しなければならないため、メンバー数Ｎが増える毎に級数的に計算量が増え、計算量が膨大となってしまう。
【００２１】
本発明は、かかる点に鑑みてなされたものであり、エンドツーエンドノード遅延を低減することによりトラヒック輻輳を最小限にし、更に、共有Ｎ−ツリーノードで利用可能な帯域幅を最大化し、すべてのＡＬＭノード間で公平な帯域幅を共有することができるＮ−ツリーを構築する端末装置を提供する。
【課題を解決するための手段】
【００２２】
本発明の端末装置は、多対多の通信における、ノード間のパケット送信経路を設定する端末装置であって、前記多対多の通信に参加するメンバーを特定するアドレス情報を用いて、メンバー間のリンクの帯域幅およびパケットの往復時間を計測し、計測結果をメトリックデータベースに格納するメトリックコレクタと、前記計測結果を用いて、前記メンバー間のパケット送信経路を、帯域幅が均等になるようにＮ−ツリーを形成し、パケット送信経路を設定してサーバー転送テーブルに格納するＡＬＭ転送テーブルコンストラクタと、前記ＡＬＭ転送テーブルコンストラクタが設定したパケット送信経路を、入力ポート番号、宛先アドレス、宛先ポート番号の対で表現される情報に変換し、前記各メンバーに通知するＡＬＭ転送テーブルディストリビュータと、を具備する構成を採る。
【発明の効果】
【００２４】
本発明によれば、経験的手法（heuristic approach）と、メトリック情報と、連続経路情報メンテナンスによるＡＬＭ転送テーブルの構築及び配送との組合せを利用することにより、エンドツーエンドノード遅延を低減することができ、トラヒック輻輳を最小限にし、更に、共有Ｎ−ツリーノードで利用可能な帯域幅を最大化することができる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【００２６】
本発明者は、本発明のＮ−ツリーアルゴリズムを「水拡散」（water-spread）ポリシーと名付けた。本発明のＮ−ツリーアルゴリズムは、「水拡散」ポリシーに基づき、Ｎ個のソースに対しＮ個のツリーを構築する。また、本発明のＮ−ツリーアルゴリズムは、同時に、帯域幅公平化ツリーを満足するために、Ｎ個のソースそれぞれに対し、「水拡散」ポリシーを適用する。
【００２７】
ここで、「水拡散」ポリシーによると、Ｎ個の水源トンネル（穴）を含む容器は、該トンネルの大きさと該トンネルの高さ（圧力：枝の選択時に利用する経験データベースに相当）に基づいて、その場所から異なる距離まで水を拡散する。大きなトンネルは、小さなトンネルと比較して、より多くの水を拡散する。容器の底に近いトンネルは、高い位置のトンネルと比較して、水をより遠くまで拡散する。各トンネルは、異なる容量（穴サイズ：帯域に相当）を有してよい。このことは、広い帯域幅を有するノードは、狭い帯域幅を有するノードと比較して、より多くのストリームをＮ−ツリー内の多くのノードに運ぶものと解釈される。なお、「トンネルの高さ」の具体的な例として、上記図１７の場合であれば、高さは、帯域幅×第１係数＋Delayの逆数×第２係数、等により計算される。
【００２８】
本アルゴリズムは、以下の３つの主要なフェーズを有する。
ｉ）接続確立フェーズ：すべてのノード間の接続が確立され、ネットワークメトリック（ノードの接続状態）が収集される。
ｉｉ）Ｎ−ツリー構築フェーズ：最適ストリーム経路情報テーブル（Optimal Stream Path Information Table）と呼ぶ接続テーブルを用い、メッシュノード接続性を有するＮ−ツリーのステータスが更新される。ＡＬＭセッション中にノードの結合及び離脱のステータスが更新される。
ｉｉｉ）制御またはＮ−ツリー最適化フェーズ：最少遅延でもって、Ｎ−ツリー全体の公平化帯域幅割り当てを段階的に改善するために改善手順を実行する。そして、Ｎ−ツリー最適化のためにノード間またはリンク間で、ノード移動またはリンク移動を実行し、結果としてＦＲＣ（Fast Route Convergence）を有するＡＬＭをもたらす。このとき、メトリック情報は、ノードに対するＡＶストリーム配送経路を構築するために使用される。なお、メトリック情報は、クライアントノード間の帯域幅、クライアントノード間の待ち時間／遅延、クライアントノードＩＰアドレス及びポート番号、ＡＬＭセッションにおけるルートを含むクライアントノード機能、子−親−祖父母関係、使用済み及び未使用アップロードリンクの数、そして使用済み及び未使用ダウンロードリンクの数等を含む。
【００２９】
ＡＢＣのノード間で通信をする場合において、ノードＡＢＣ間の接続関係は、これらのメトリック情報から算出することができる。例えば、Ａ−Ｂ間に接続性があり、Ａ−Ｃ間に接続性が無い場合、計測したメトリック情報は、Ａ−Ｃ間の帯域が０となり、Ａ−Ｃ間のレイテンシ（ＲＴＴ：Round Trip Time）が無限大となる。
【００３０】
なお、本願でのメトリック情報は、接続の有無を示す離散量（０か１）で示されるものではなく、フルメッシュ（Ａ−Ｂ，Ａ−Ｃ,Ｂ−Ｃの双方向）の計測値を反映した連続量で示される。つまり、ノードＡ−Ｃ間のメトリックは、１Ｍｂｐｓの場合や、０．１Ｍｂｐｓの場合や、０Ｍｂｐｓの場合が存在する。
【００３１】
Ｎ−ツリーアルゴリズムは、小グループの参加者が、ネットワーク上におけるすべての参加者間のセッションを通じて、高度な対話機能と良好なＡＶ品質とを有するために、ＡＶストリーム等を交換するＡＶ会議アプリケーションに好適である。
【００３２】
すべてのノードに対して帯域幅の公平性を保証するために、本発明のＮ−ツリーアルゴリズムでは、各ノードのアップロードスロット及びダウンロードスロットの容量を考慮する。なお、アップロードスロットとダウンロードスロットとは、ノードのアップリンクとダウンリンクとの帯域幅の容量を指す。帯域幅は、例えば６４ｋｂ、１２８ｋｂといった複数の離散的な範囲に分割される。
【００３３】
「水拡散」ポリシーは、帯域幅公平化配送ツリー構築のための上記Ｎ−ツリー構築アルゴリズムの３つの主要なフェーズと共に採用される。このソリューションは、所与のＡＶセッションに対し、ネットワークに参加しているすべてのノードに適用されるＡＬＭ＿ＦＲＣを実現する。Ｎ−ツリーアルゴリズムは、ノード間で集中的または分散的なやり方で実行されてよい。
【００３４】
図１は、本発明の一実施の形態に係る通信システムを示す図である。図１に示すように、本実施の形態では、複数のクライアントノード（１０４、１０６、１０８、１１０）とサーバーノード（１０２）が、それぞれネットワーク（１１２）に接続される。各クライアント内に存在するＡＶ会議アプリケーションなどのマルチメディアアプリケーションは、ＡＬＭセッション中に、複数のクライアントノード間において、ＡＶストリームを同時に交換することができる。また、サーバーノード（１０２）は、他のすべてのクライアントノードと通信を行い、それらの間でネットワーク情報を同時に交換することができる。
【００３５】
なお、本発明において、物理的及び論理的ネットワークエンティティを指す用語であるノードとエンティティとは、互いに読み替えて使用することができる。クライアントノードまたはサーバーノードと、クライアントエンティティまたはサーバーエンティティとの両方は、ネットワーク通信に関する一般的な意味に置き換えても良い。また、サーバーノード及びクライアントエンティティは、いずれも、無線通信システムにおける端末装置である。
【００３６】
サーバーノード（１０２）は、各クライアントノードからメトリック情報を所定のタイミングで（動的に）、あるいは、定期的に収集し、Ｎ−ツリーアルゴリズム（水拡散ポリシー）を実行する。次に、サーバーノード（１０２）は、Ｎ−ツリーアルゴリズムの結果である帯域幅公平化ＡＬＭ経路情報を転送テーブルに格納する。さらに、サーバーノード（１０２）は、該転送テーブルに格納された帯域幅公平化ＡＬＭ経路情報から生成した帯域幅公平化Ｎツリールーティング情報を、すべての参加クライアントノードに動的に送信する責任を負う。なお、所定のタイミングとして、例えば、上からのストリームが途絶えたタイミング等がある。
【００３７】
クライアントノードに受信された帯域幅公平化Ｎツリールーティング情報は、最終送付先に到達するまで、次のクライアントノードに受信ＡＬＭパケットを転送するために各クライアントノードで使用される。
【００３８】
図２は、本発明の一実施の形態に係るクライアントエンティティ（２５６）と、サーバーエンティティ（２１０）の内部構成を示すブロック図である。
【００３９】
ＡＬＭセッションは、論理セッションとして定義され、２つ以上のクライアントエンティティ（２５６）の間でデータパケットを同時に交換する多数共同アプリケーションにおいて、ネットワークを介し接続される。ＡＬＭセッションは、参加メンバー間のセッション調整のために、サーバーエンティティ（２１０）を必要とする。
【００４０】
クライアントエンティティ（２５６）は、すべてのノード間のネットワークパケットストリーミングのＡＬＭセッションに参加するノードにおけるＡＬＭ機能である。サーバーエンティティ（２１０）は、メトリック情報を収集するとともに、ＡＬＭ＿ＦＲＣ配送ツリーをもたらすＮ−ツリーアルゴリズムを実行する責任を負うＡＬＭ機能である。クライアントエンティティ（２５６）とサーバーエンティティ（２１０）の両方は、任意のノード内に存在してよい論理エンティティである。
【００４１】
集中型Ｎ−ツリーセッションには、ただ１つのサーバーエンティティが必要とされる。分散型の場合、各ノードは、１つのサーバーエンティティと１つのクライアントエンティティを有する。以下では、ＡＬＭセッションにおける複数のクライアントエンティティ機能と、一つのサーバーエンティティ機能の場合（集中型Ｎ−ツリーセッションの手法）について説明する。
【００４２】
図２において、サーバーエンティティ（２１０）は、メトリックコレクタ（２２０）、グループメンバーシップ（２２２）、ＡＬＭ転送テーブルコンストラクタ（ＡＬＭ Forwarding Table Constructor）（２１８）、および、ＡＬＭ転送テーブルディストリビュータ（ＡＬＭ Forwarding Table Distributor）（２７８）を有する。メトリックコレクタ（２２０）、グループメンバーシップ（２２２）およびＡＬＭ転送テーブルコンストラクタ（２１８）は、その間でメトリクス情報を交換するためにリンク（２０８）により接続される。
【００４３】
サーバーエンティティ（２１０）のメトリックコレクタ（２２０）およびグループメンバーシップ（２２２）は、ＡＬＭセッション内のすべてのクライアントノード（１０４、１０６、１０８、１１０）からメトリック情報を動的に収集する責任を負う。メトリック情報は、クライアントノード間の帯域幅、クライアントノード間の待ち時間／遅延、クライアントノードＩＰアドレス及びポート番号、ＡＬＭセッションにおけるルートを含むクライアントノード機能、子−親−祖父母関係、使用済み及び未使用アップロードリンクの数、そして使用済み及び未使用ダウンロードリンクの数等を含む。これらのメトリック情報は、リンク（２２４、２２８）を介し、それぞれアクセスすることができるメトリックデータベース（２２６）とメンバーシップデータベース（２３０）内に格納される。図４と図５は、情報／コンテンツデータ構造を詳細に例示する。メンバーシップデータベース（２３０）内には、各クライアントノードのＩＰアドレスが格納される。
【００４４】
ルートノードは、ネットワークパケットが発せられたＮ−ツリーのソースノードを指す。Ｎ−ツリー内のＮ人のメンバーに対し、ノードのすべてがネットワークパケットを送信する場合、Ｎ個のルートノードが存在する。子−親−祖父母は、Ｎ−ツリー内のノード間の関係を指す。子ノードは、親ノードのダウンロードスロットを介し親ノードからネットワークパケットを直接受信するノードである。親ノードは、子ノードのアップロードスロットを介し子ノードにネットワークパケットを直接送信する。一方、祖父母ノードは、所与の子ノードに対し、親ノードを介し接続されるノードであり、ネットワークパケットは、子ノードに到達する前に祖父母ノードから親ノードへ流れる。孫ノードは、祖父母ノードと子ノード間の直接関係である。ノードのアップロードスロットとダウンロードスロットは、ノードの出力容量と入力容量を指す。リンクスロットは、特定のＡＬＭセッションのためのアップロードスロットと、ダウンロードスロットに関連した２つのノード間のリンクの帯域幅容量を指す。
【００４５】
ＡＬＭ＿ＦＲＣのために構築されるＮ−ツリーは、所与のＡＬＭセッションに対し、アップロード／ダウンロードスロット制約、リンクスロット制約、待ち時間制約に従うものとする。
【００４６】
最適ストリーム経路情報テーブル（２０４）は、図３、図４、図５に示す、接続状態にある全てのノードに対するＮ−ツリーセッションの情報（ツリーの状態に関する情報）を格納する。最適ストリーム経路情報テーブル（２０４）は、Ｎ−ツリー接続情報を含む。一方、経験的規則データベース（Heuristic Rules Database）（２０６）は、帯域幅公平化Ｎ−ツリーを構築するために使用される一組の経験的規則を格納する。経験的規則データベース（２０６）内に存在する基本的規則と増強規則として次のものがある。
【００４７】
Ｎ−ツリーアルゴリズムの基本的規則は、ネットワークパケット配送のためにノード毎に１つのツリーを有するＮ個のツリーを構築することである。これは、各ノードが、Ｎ−１個のダウンロードスロットにより、Ｎ−１個のストリームを受信しなければならないことを意味する。各ツリーは、使用される全リンクにＮ−１個のアップロードリンクを追加するので、Ｎ個のツリーに対し、すべての参加者からの少なくとも合計Ｎ×（Ｎ−１）個のアップロードリンクが存在する。さらに、各ツリーには、制御メッセージデータ送信のためにいくつかの追加のスロットとリンクが必要である。
【００４８】
追加の経験的規則は、所与のセッションに対するアップロード／ダウンロードスロット制約、リンクスロット制約、待ち時間制約を含む。上記３つの制約条件すべてを満足する最適なＮ−ツリーを構築するのはＮＰ困難である。したがって、最善かつ最適なＮ−ツリーを構築するために、上記制約条件のいくつかに違反することは許容される。例えば、待ち時間制約の違反は、ストリームを受信する際の遅延を引き起こし、一方、アップロード制約またはリンク制約の違反はストリーム配送の一部を無効にする。経験的規則は、アップロードまたはダウンロード制約、及びリンク制約を第１に満足し、次にリンク待ち時間制約を満足する。Ｎ−ツリーは、上記規則を適用することにより許容可能な待ち時間でもって構築される。
【００４９】
また、経験的規則データベース（２０６）は、Ｎ−ツリー構築のために適用可能な次のような複数の経験的規則を格納する。
規則１：ノードは、他のノードのストリームを運ぶのではなく、それ自身のストリームをアップロードするために、まずその帯域幅を使用すべきである。これにより、当該ツリーの待ち時間が少なくなる。
規則２：ノード間で選択がなされる場合、残りのスロット容量が最大のノードを選択する。
規則３：リンク間で選択がなされる場合、残りのスロット容量が最大のリンクを選択する。
規則４：規則３において残りのスロット容量が同一であるリンク間では、ツリーに対し最も少ないエンドツーエンド待ち時間を与えるリンクを選択する。
【００５０】
サーバー転送テーブル（２０２）は、図６に示すように、特定のＮ−ツリーセッション内のすべてのノードに対するパケット転送情報である帯域幅公平化ＡＬＭ経路情報を格納する。
【００５１】
ＡＬＭ転送テーブルコンストラクタ（２１８）は、メトリックコレクタ（２２０）とグループメンバーシップ（２２２）により収集されたメトリック情報にアクセスする。また、ＡＬＭ転送テーブルコンストラクタ（２１８）は、経験的規則データベース（２０６）に格納された経験的規則を適用して、最適ストリーム経路情報テーブル（２０４）に格納されたＮ−ツリーセッションの情報を動的にかつ連続的に形成し更新する。なお、ＡＬＭ転送テーブルコンストラクタ（２１８）は、サーバーエンティティ（２１０）における主要モジュールである。
【００５２】
次に、ＡＬＭ転送テーブルコンストラクタ（２１８）は、Ｎ−ツリーアルゴリズム（水拡散ポリシー）を実行し、Ｎ−ツリーアルゴリズムの結果である帯域幅公平化ＡＬＭ経路情報を、リンク（２８２）を介し、サーバー転送テーブル（２０２）に格納する。なお、帯域幅公平化ＡＬＭ経路情報は、転送テーブルの形態となる。
【００５３】
ＡＬＭ転送テーブルコンストラクタ（２１８）は、リンク（２１６、２１４、２０８）を介し、経験的規則データベース（２０６）、最適ストリーム経路情報テーブル（２０４）、サーバー転送テーブル（２０２）、メトリックコレクタ（２２０）、グループメンバーシップ（２２２）、および、経験的規則データベース（２０６）にそれぞれアクセスする。ＡＬＭ転送テーブルコンストラクタ（２１８）は、Ｎ−ツリーアルゴリズムの実行中、リストデータベース（２６０）内の「初期リスト（Initial List）」、「順序付きリスト（Ordered List）」、「規則ベースの順序付きリスト（Rule Based Ordered List）」、「規則ベースのペアリスト（Rule Based Pair List）」が帯域幅公平化Ｎ−ツリー構築のために使用される。
【００５４】
「初期リスト」は、グループメンバーシップ（２２２）とメトリックコレクタ（２２０）により収集される、ＡＬＭセッションにおけるすべてのメンバーに関する情報を含む。「順序付きリスト」は、特定規則、例えば、アップロード及び／またはダウンロードスロット能力に基づき、ソートされたメンバーのリストを提供する。「規則ベースの順序付きリスト」は、特定規則、例えば、２つのノード間のリンク待ち時間に基づいたメンバーの順序付きリストを提供する。「規則ベースのペアリスト」は、特定規則、例えば、選択された経験的規則に基づく２つのノード間のリンクを形成するメンバーのリストを提供する。これらのリストの利用については、Ｎ−ツリーアルゴリズム説明の一部として図１３及び図１４において説明される。
【００５５】
ＡＬＭ転送テーブルディストリビュータ（２７８）は、リンク（２１２）を介し、サーバー転送テーブル（２０２）に格納された帯域幅公平化ＡＬＭ経路情報を入力し、この情報からＮ−ツリー内の各クライアントエンティティ（２５６）に対する帯域幅公平化Ｎ−ツリールーティング情報を生成する。帯域幅公平化Ｎ−ツリールーティング情報は、入力ポート番号、宛先アドレス、宛先ポート番号の対を含む。そして、ＡＬＭ転送テーブルディストリビュータ（２７８）は、ネットワークリンク（２３４）を介し、各クライアントエンティティ（２５６）に帯域幅公平化Ｎ−ツリールーティング情報を送信する。
【００５６】
ＡＬＭネットワーク内の二つ以上のノードであるクライアントエンティティ（２５６）は、ネットワークリンク（２３４、２７６）を介し、サーバーエンティティ（２１０）と接続され、動的に通信を行うことができる。クライアントエンティティ（２５６）は、４つの主要モジュール、すなわちＡＬＭ転送テーブルレシーバ（ＡＬＭ Forwarding Table Receiver）（２８０）、メトリックプロバイダ（２４４）、グループメンバーシップ（２４６）、ＡＬＭ転送テーブルエクゼキュータ（ＡＬＭ Forwarding Table Executor）（２４０）、を有する。
【００５７】
ＡＬＭ転送テーブルレシーバ（２８０）は、ＡＬＭ転送テーブルディストリビュータ（２７８）からネットワークリンク（２３４）を介して帯域幅公平化Ｎ−ツリールーティング情報を受け取り、リンク（２４２）を介し、パケットルーティング用のクライアント転送テーブル（Client Forwarding Table）（２３６）に格納する。
【００５８】
メトリックプロバイダ（２４４）およびグループメンバーシップ（２４６）は、ＡＬＭセッション内のすべてのクライアントノード（１０４、１０６、１０８、１１０）からデータを動的に収集する責任を負う。メトリック情報は、クライアントノード間の帯域幅、クライアントノード間の待ち時間／遅延、クライアントノードＩＰアドレス及びポート番号、ルートを含むＡＬＭセッション内のクライアントノード機能、子−親−祖父母関係、使用済み及び未使用アップロードリンクの数、使用済み及び未使用ダウンロードリンクの数、等を含む。
【００５９】
これらのメトリック情報は、リンク（２４８、２５２）を介し、それぞれアクセス可能なメトリックデータベース（２５０）とメンバーシップデータベース（２５４）との両方に格納される。
【００６０】
メトリック情報は、メトリックプロバイダ（２４４）とグループメンバーシップ（２４６）とにより、サーバーエンティティ（２１０）のメトリックコレクタ（２２０）とグループメンバーシップ（２２２）とに、動的にかつ定期的にそれぞれ配送される。該情報配送は、適宜にネットワークリンク（２３２、２５８）を介し行われる。
【００６１】
次に、メトリック情報は、サーバーエンティティ（２１０）のメトリックデータベース（２２６）とメンバーシップデータベース（２３０）とに対し更新される。ＡＬＭ転送テーブルエクゼキュータ（２４０）は、ローカルのメトリックデータ交換のために、リンク（２３８）を介し、メトリックプロバイダ（２４４）とグループメンバーシップ（２４６）とにアクセスする。リンク（２４８）は、メトリックプロバイダ（２４４）とメトリックデータベース（２５０）とを接続し、リンク（２５２）は、グループメンバーシップ（２４６）とメンバーシップデータベース（２５４）とを接続する。
【００６２】
ＡＬＭ転送テーブルレシーバ（２８０）は、サーバーエンティティ（２１０）から帯域幅公平化ルーティング情報を動的にかつ定期的に受信し、受信内容をローカルのクライアント転送テーブル（２３６）に対し更新する責任を負う。また、ＡＬＭ転送テーブルレシーバ（２８０）は、リンク（２７６）を介して、ＡＬＭ転送テーブルディストリビュータ（２７８）に対してそれぞれのルーティング情報を単独で要求することができる。
【００６３】
クライアント転送テーブル（２３６）内の帯域幅公平化Ｎ−ツリールーティング情報は、ＡＬＭ転送テーブルエクゼキュータ（２４０）において、他のクライアントエンティティ（１０６、１０８、１１０）から受信されたＡＬＭパケットを処理するために動的に使用される。その後、クライアント転送テーブル（２３６）内の帯域幅公平化Ｎ−ツリールーティング情報は、ルーティングエンジン（２６２）によって識別された次の送付先に転送される。ＡＬＭ転送テーブルエクゼキュータ（２４０）は、次の送付先の情報を、クライアント転送テーブル（２３６）からリンク（２７４）を介して取り出し、リンク（２７２）を介してルーティングエンジン（２６２）に提供する。ルーティングエンジン（２６２）は、アプリケーション層における全ての受信パケット（２６４）に対し、各クライアントエンティティにおけるＡＬＭ内のネットワークパケット毎に検索機能を実行する。受信パケット（２６４）は、ルーティングエンジン（２６２）においてソースアドレス（６０６）、ソースポート番号（６５４）、トランスポート層プロトコルに基づいて検索された後に、修正され、送信パケット（２６６）として指定送付先ノードに転送される。図６及び関連する記述は、この手順を詳細に説明する。
【００６４】
リンク（２７６、２３４）を介する、ＡＬＭ転送テーブルディストリビュータ（２７８）とＡＬＭ転送テーブルレシーバ（２８０）との間の通信は、特定メッセージ構造を使用して行われる。図８に示す帯域幅公平化転送テーブル情報を含む転送テーブルコンテンツ（８０８）は、図７に示す転送テーブルエントリ（ＦＴＥ）情報に含まれる。１つまたは複数の転送テーブルエントリ（ＦＴＥ）情報は、組み合わせられて、転送テーブル（ＦＴ）メッセージとして、リンク２３４を介してサーバーエンティティ（２１０）から各クライアントエンティティ（２５６）に送信される。
【００６５】
次に、図３を用いて、最適ストリーム経路情報テーブル（２０４）の構造を詳細に説明する。
【００６６】
図３において、行（３２６）のルート（３０２）エントリは、Ｎ−ツリー内のルートノードの数を示す。ルートノードは、ＡＬＭアプリケーションパケットがＮ−ツリー内で発信されたソースノードである。これらのパケットは、ＡＬＭセッション内の全てのＡＬＭ受信者に宛てられる。ルート（３０２）は、参照符号（３０４、３０６、３０８、３１０、３１２）により示される複数のルートノードが存在してよい。行（３２８、３３０、３３２、３３４、３３６）は、特定のルートノード（３０４、３０６、３０８、３１０、３１２）を、ルートとする所与のＮ−ツリーに対する参加ノード情報を保存するエントリである。
【００６７】
列（３４８）のノード（３１４）エントリは、Ｎ−ツリーセッション内の各ノード（３１６、３１８、３２０、３２２、３２４）の識別子を保存する。したがって、特定のＮ−ツリー内にＮ個のノードが存在する場合、行３１４内には、Ｎ個のエントリが存在する。同様に、Ｎ個のすべてのノードがソースパケットを生成するルートノードである場合、行（３０２）は、テーブル内にＮ個の列を有する。
【００６８】
参照符号（３３８、３４０、３４２、３４４、３４６）のテーブルエントリは、図４に例示されるようなルートノード関連情報を保存する。一方、参照符号（３３８、３４０、３４２、３４４、３４６）エントリを除く他のすべてのテーブルエントリは、図５に例示されるような特定のＮ−ツリーに対するノード特定情報を保存する。最適ストリーム経路情報テーブル（２０４）は、Ｎ−ツリーセッション内の参加ノードの展開に対処するために拡大または縮小可能な静的または動的テーブルであってよい。
【００６９】
図４は、ＡＬＭセッション内の全てのツリーに対する、最適ストリーム経路情報テーブル（２０４）、メトリックデータベース（２２６、２５０）、及びメンバーシップデータベース（２３０、２５４）内に明示されるＮ−ツリールートノード情報のデータ構造を示す。フィールド（４０２）は、全体のＮ−ツリーセッションに対し、特定のノードに対する使用済み入力リンクスロット及びダウンロードスロットの数を明示する。
【００７０】
一方、フィールド（４０４）は、全体のＮ−ツリーセッションに対し、特定のノードに対する未使用入力リンクスロット及びダウンロードスロットの数を明示する。同様に、フィールド（４０６）は、全体のＮ−ツリーセッションに対し、特定のノードに対する使用済み出力リンクスロット及びアップロードスロットの数を明示する。一方、フィールド（４０８）は、特定のノードに対する未使用出力リンクスロット及びアップロードスロットの数を明示する。フィールド（４１０）は予約済みである。
【００７１】
図５は、ＡＬＭセッション内の特定のツリーのルートノード以外であるノードに対する、Ｎ−ツリーメンバーノード情報のデータ構造を示す。フィールド（５０２）は、それぞれのルートツリーを基準としたストリームの発信ノードを明示する。フィールド（５０４）は、ルートとそれぞれのノード間の離散形式の遅延または待ち時間を表す。フィールド（５０６）は、２つの異なるノード間の子または親関係を表し、その機能が存在することを示す。この後に、接続用のポート番号情報と、パケット転送用のＩＰアドレスなどの次ノード情報または識別子を表すフィールド（５０８）が続く。このフィールドは、また、次ノードが存在することを示す。
【００７２】
すなわち、このフィールドはパケット転送のための葉ノード（転送しない終端ノード）である。同様に、続くフィールド（５１０、５１２、５１４、５１６）は、祖父母（２代前）−子と曾祖父母（３代前）−子関係（１代後）を表す。なお、本実施の形態では３つのレベルのみを明示しているが、本発明はこれに限られず、さらなる活用のためにさらに多くのレベルを定義してもよい。最後に、フィールド（５１８）は、予約済みフィールドを表す。
【００７３】
図６は、サーバーエンティティ（２１０）とクライアントエンティティ（２５６）において、使用されるサーバー転送テーブル（２０２）とクライアント転送テーブル（２３６）との両方の帯域幅公平化転送テーブル（６０２）の一般的なフォーマットを示す。テーブル（６０２）の第１レベルは、次の３列、すなわち発信ノード／ソースアドレス（６０６）、ソースポート番号（６５４）、およびトライテーブルポインタ（６０４）を含む。発信ノード（ソースアドレス）（６０６）は、ノード（６０８、６１０、６１２、６１４）のＩＰアドレスを格納する。ソースポート番号（６５４）は、すべての発信ノード（６４６、６４８、６５０、６５２）のソースポート番号（６５４）を格納する。トライテーブルポインタ（６０４）は、次のレベルの転送テーブル（６２４）に対するポインタ（６１６、６１８、６２０、６２２）を保存する。
【００７４】
発信ノード（６０６）の複数のエントリは、それぞれの次のレベルの転送テーブル（６２４）と共存することができる。次のレベルの転送テーブルは、送付先アドレス（６２６）と送付先ポート番号情報（６３６）を含む。次のレベルの転送テーブル（６２４）は、次にノード内のどこに受信パケットを転送する必要があるかを明示する、複数のＩＰアドレス（６２８、６３０、６３２、６３４）とポート番号（６３８、６４０、６４２、６４４）とが存在してよい。また、両方のテーブル（６０２、６２４）は、特定ストリーム用のトランスポートプロトコルのタイプを示すトランスポートプロトコルフィールド（６５６、６５８）を有する。
【００７５】
転送テーブル情報は、図７に示す転送テーブルメッセージ（ＦＴ）を使用することにより、サーバーエンティティ（２１０）とクライアントエンティティ（２５６）間で交換される。各ノードにおけるＮ−ツリー内のネットワークパケット転送の検索は、ＩＰアドレス、ポート番号、トランスポートプロトコル（例えば、ＵＤＰまたはＴＣＰ）を使用することにより行われる。ルーティングエンジン（２６２）は、アプリケーション層におけるすべての入力パケット（２６４）に対し、各クライアントエンティティにおけるＡＬＭ内のネットワークパケット毎に検索機能を実行する。
【００７６】
転送テーブル（６０２）は、クライアントエンティティにおいて、入力パケット毎に目的の送付先アドレス（６２６）等の検索を実行するために使用され、その後、Ｎ−ツリー内の指定された次ノードに転送される。ルーティングエンジン（２６２）は、また、送信パケット（２６６）を転送する前の転送段階中にネットワークパケットのソースＩＰアドレス及びポート番号を変更する。この機能は、Ｎ−ツリーアルゴリズムにより構築されたストリーミング経路を順守することを保証するために重要である。
【００７７】
通常のユニキャストアプリケーションでは、ネットワークパケットのソースＩＰアドレス及びポート番号は変更されない。そして、パケット転送は、公平な帯域幅割り当て無しに、オーバーレイツリーに沿って行われる。しかしながら、本発明の特徴の１つは、ＡＬＭ＿ＦＲＣを実現するために帯域幅公平化Ｎ−ツリー経路に従うように、ソースＩＰアドレス及び送付先ポートが転送ノードにより変更されることである。
【００７８】
図７は、合計６つのフィールドを有する転送テーブル（ＦＴ）メッセージ構造を示す。タイプ（７０２）フィールドは、要求メッセージタイプか応答メッセージタイプかを示す。コンテンツ（７０４）フィールドは、サーバーエンティティからの完全転送テーブルエントリ（ＦＴＥ）更新か、部分的転送テーブルエントリ（ＦＴＥ）更新か、を示すコンテンツを明示する。バージョン（７０６）フィールドは、ＡＬＭとＮ−ツリーアルゴリズムのバージョンを明示する。未使用（７０８）フィールドは、フィールドが現在使用されていないことを示す。ＦＴＥ（７１０）フィールドは、単一または複数の転送テーブルエントリ（ＦＴＥ）メッセージを含む。ＦＴメッセージは、予約済み（７１２）フィールドで終了する。
【００７９】
図８は、５つのフィールドを有する転送テーブルエントリ（ＦＴＥ）メッセージ７１０の構造を示す。発信ノードＩＰフィールド（８０２）は、ＦＴメッセージを送信したノードのＩＰアドレスを示す。タイムスタンプフィールド（８０４）は、メッセージが生成された時間を示す。未使用フィールド（８０６）と予約済みフィールド（８１０）（これから使用する予定のもの）とは、それらが現在使用されていないことを示す。タイムスタンプフィールド（８０４）は、ＦＴメッセージが構築された時間を明示するために使用される。
【００８０】
タイムスタンプフィールド（８０４）は、最新のメッセージのみが、クライアントエンティティにおいて、Ｎ−ツリーのルーティングテーブルを更新するために使用されることを保証する。トランスポートプロトコルが、トランスポートプロトコル自身のタイムスタンプフィールドを有する場合、タイムスタンプフィールド（８０４）は使用されない。しかし、トランスポートプロトコルがタイムスタンプフィールドを有しない場合は、タイムスタンプフィールド（８０４）が必要である。
【００８１】
これに続く、転送テーブルコンテンツフィールド（８０８）は、サーバーエンティティから全てのクライアントエンティティへの帯域幅公平化転送テーブル情報を含む。サーバーエンティティ（２１０）から選択された転送テーブルエントリ情報は、組み合わせられて、各クライアントエンティティ（２５６）に送信されるＦＴメッセージを形成する。単一または複数のＦＴＥメッセージを含むＦＴメッセージは、サーバー転送テーブル（２０２）に更新があると、影響を受けるクライアントエンティティに対して、ＡＦＴＣにより、動的に送信される。
【００８２】
次に、図９を用いて、Ｎ−ツリーにおいて公平な帯域幅共有を実行し、ＡＬＭ＿ＦＲＣを実現する全体のメカニズムを説明する。
【００８３】
最初に、クライアントエンティティ（２５６）のメトリックプロバイダ（２４４）とグループメンバーシップ（２４６）とは、メトリック情報の定期的な配送を行う（ＳＴ９０２）。定期的に送信されたメトリック情報は、メトリックコレクタ（２２０）とグループメンバーシップ（２２２）とにより、それぞれ収集される（ＳＴ９０４）。
【００８４】
次に、新しいメトリック情報が到着すると、ＡＬＭ転送テーブルコンストラクタ（２１８）は、メトリックコレクタ（２２０）を介してメトリックデータベース（２２６）にアクセスし、グループメンバーシップ（２２２）を介してメンバーシップデータベース（２３０）にアクセスする。新しいメトリック情報は、最適ストリーム経路情報テーブル（２０４）を更新するために、ＡＬＭ転送テーブルコンストラクタ（２１８）により、使用される（ＳＴ９０６）。
【００８５】
次に、ＡＬＭ転送テーブルコンストラクタ（２１８）は、Ｎ−ツリーアルゴリズムを実行する（ＳＴ９０８）。ＡＬＭ転送テーブルコンストラクタ（２１８）は、このＮ−ツリーアルゴリズムの定期的な実行により、最適ストリーム経路情報テーブル（２０４）とサーバー転送テーブル（２０２）とを更新する（ＳＴ９１０）。Ｎ−ツリーアルゴリズムの実行ステップは、図１１に例示され、これについては以下の節で説明する。
【００８６】
次に、更新されたサーバー転送テーブル（２０２）のコンテンツは、転送テーブル（ＦＴ）メッセージを使用することにより、サーバーエンティティ（２１０）のＡＬＭ転送テーブルディストリビュータ（２７８）から、各クライアントエンティティ（２５６）へ送信される（ＳＴ９１２）。ＡＬＭ転送テーブルレシーバ（２８０）は、受信された転送テーブル（ＦＴ）メッセージにより、クライアント転送テーブル（２３６）を更新する（ＳＴ９１４）。
【００８７】
次に、転送テーブル（ＦＴ）メッセージの交換シーケンスについて、図１０を用いて詳細に説明する。
【００８８】
定期的なメトリック情報の更新（ＰＩＴメッセージ）が行われる（ＳＴ１０１４）。つまり、クライアントエンティティ（１００８）のメトリックプロバイダ（１０１２）と、サーバーエンティティ（１００２）のメトリックコレクタ（１００６）との間で、メトリック情報の更新が継続される。
【００８９】
サーバーエンティティ（１００２）のＡＬＭ転送テーブルディストリビュータ（１００４）は、転送テーブルコンテンツを含む転送テーブル（ＦＴ）メッセージを、クライアントエンティティ（１００８）のＡＬＭ転送テーブルレシーバ（１０１０）へ転送する（ＳＴ１０１６）。あるいは、ＡＬＭ転送テーブルレシーバ（１０１０）は、転送テーブル（ＦＴ）メッセージを使用してクライアント転送テーブル（２３６）の更新要求を行うことができる（ＳＴ１０１８）。該要求に対する応答として、ＡＬＭ転送テーブルディストリビュータ（１００４）は、転送テーブルコンテンツを含む転送テーブル（ＦＴ）メッセージを、ＡＬＭ転送テーブルレシーバ（１０１０）へ転送する（ＳＴ１０２０）。
【００９０】
次に、図９に示したＳＴ９０８のＮ−ツリーアルゴリズムの実行方法について、図１１を用いて説明する。Ｎ−ツリーアルゴリズム呼出しの初期トリガは、ＡＬＭ転送テーブルコンストラクタ（２１８）により行われる（ＳＴ１１０２）。次に、経験的規則データベース（２０６）内の特定規則に対するアクセスが、ＡＬＭ転送テーブルコンストラクタ（２１８）により行われる（ＳＴ１１０４）。続いて、ＡＬＭ転送テーブルコンストラクタ（２１８）により、最適ストリーム経路情報テーブル（２０４）のアクセスが行われる（ＳＴ１１０６）。その後、Ｎ−ツリーアルゴリズムによるＡＬＭ＿ＦＲＣ保証が、メトリックに適用される（ＳＴ１１０８）。そして、ＡＬＭ転送テーブルコンストラクタ（２１８）により、生成された操作済みメトリックを用いて、サーバー転送テーブル（２０２）が、更新される（ＳＴ１１１０）。
【００９１】
次に、図１２を用いて、クライアントノードによる定期的な転送テーブル情報受信とパケット転送との方法を説明する。ＡＬＭ転送テーブルディストリビュータ（２７８）は、選択されたサーバー転送テーブル（２０２）のコンテンツを、転送テーブル（ＦＴ）メッセージを介し、特定のクライアントに定期的に送信する（ＳＴ１２０２）。クライアントエンティティ（２５６）のＡＬＭ転送テーブルレシーバ（２８０）は、これらの転送テーブル（ＦＴ）メッセージを受信し、そのクライアント転送テーブル（２３６）を更新する（ＳＴ１２０４）。
【００９２】
次に、「水拡散」ポリシーを適用することによるＮ−ツリーアルゴリズム実行の詳細工程について、図１３を用いてに具体的に説明する。全体プロセスは、単純には、すべてのソースノードが互いに接続され、Ｎ個のツリーを形成するまで、ＡＬＭセッションにおいて、Ｎ−ツリー内の各ソースノード（ルートノード）からすべてのノードまで、水の拡散で表すことができる。例えば、「初期リスト」からの、ＡＬＭセッション｛ａ，．．，ｎ｝内の各ノードは、特定カラー（カラーは送信元のノードを一意に特定するためのもの）により符号化され、ルートノードｊを有するツリーに属するすべてのリンクは、カラーｊを有する。当初、各ノードｊは、ストリーム接続または到達可能性ステータスを示すカラー集合Ｓ［ｊ］＝｛ｊ｝を含む。ストリームｋが「流れており」、ノードｊに到達すると、ノードｊは自身のカラー集合Ｓにカラーｋを追加する：Ｓ［ｊ］＝Ｓ［ｊ］＋｛ｋ｝。
【００９３】
当初、各カラーｋに対し、ＤＯＮＥ｛ａ，（ｋ＝ＦＡＬＳＥ），．．，ｎ｝は、ＦＡＬＳＥに設定される。ストリームｋが、ＡＬＭセッション内の他のすべてのノードに到達する（ｋをルートとするツリーが完成する）と、（ＤＯＮＥ｛ａ，（ｋ＝Ｔｒｕｅ），．．，ｎ｝が、Ｔｒｕｅに設定されるように、ＤＯＮＥリストにｋを追加する。ＤＯＮＥ｛ａ，．．，ｎ｝集合内のすべてのメンバーが、Ｔｒｕｅに設定されるように、Ｎ個のすべてのツリーが完成するまで、これらの工程を使用することにより、１ループに１リンクをツリーに反復的に追加する。
【００９４】
まず、ＡＬＭ転送テーブルコンストラクタ（２１８）は、メトリックコレクタ（２２０）情報とグループメンバーシップ（２２２）情報とに基づき、Ｎ−ツリーセッション内のすべてのメンバーを識別し、リストデータベース（２６０）内に「初期リスト」を作成する（ＳＴ１３０２）。次に、ＡＬＭ転送テーブルコンストラクタ（２１８）は、「初期リスト」からメンバーを選択し、すべてのＮ−ツリーのノードの「初期リスト」内のすべてのノードに対し、経験的規則データベース（２０６）からの規則に基づき、リストデータベース（２６０）内の「順序付きリスト」に該メンバーを追加する（ＳＴ１３０４）。経験的規則データベース（２０６）からの規則は、例えば、残りの未使用アップロードスロットの降順の番号である。
【００９５】
ＡＬＭ転送テーブルコンストラクタ（２１８）は、「水拡散」ポリシー例に準拠し、ＳＴ１３０４では、ＤＯＮＥ｛ａ，（ｋ＝Ｆａｌｓｅ），．．，ｎ｝を有する自身の集合Ｓ内に、カラーｋを依然として有する残されたスロットのうち、最も高い番号を有するノードを選択する。それらのノードは、「順序付きリスト」内に追加される。残されたスロットのうち、次に最も高い番号であって、アップロード／ダウンロードスロット制約のＨＲＤＢ規則を満足するものを反復的に選択する。
【００９６】
次に、ＡＬＭ転送テーブルコンストラクタ（２１８）は、経験的規則データベース（２０６）からの特定規則を満足することにより、所与のＮ−ツリーのすべてのノードに対するリンクを確立しなかった、最初のノードから始まる「順序付きリスト」からノードを選択する。次に、ＡＬＭ転送テーブルコンストラクタ（２１８）は、該ノード（例えば、未使用スロットの最も高い番号のノード）を、「規則ベースの順序付きリスト」に追加する（ＳＴ１３０６）。上記工程は、すべてのノードが順序付けられるまで、ＳＴ１３０６において規則にマッチする全てのノードに対し続けられる（ＳＴ１３０８）。
【００９７】
次に、ＡＬＭ転送テーブルコンストラクタ（２１８）は、ノードペアを形成するために、「規則ベースの順序付きリスト」から順序付きノードを選択する（ＳＴ１３１０）。そして、経験的規則データベース（２０６）からの特定規則（例えば、２つのノード間の最少待ち時間）を満足する、「初期リスト」からの別のノードが選択され、該ペアノードは「規則ベースのペアリスト」に追加される（ＳＴ１３１２）。
【００９８】
次に、ＡＬＭ転送テーブルコンストラクタ（２１８）は、「規則ベースのペアリスト」からペアノードを選択し、経験的規則データベース（２０６）からの特定規則に基づいて、ペアノードを順序付ける（ＳＴ１３１４）。特定規則は、例えば、ペアは、未使用アップロードスロットのうち順序リスト上、最も高い番号のリンク情報に基づき、マッチするものとする。これらの工程（ＳＴ１３０６〜ＳＴ１３１４）により、Ｎ−ツリー形成のためのリンク選択が行なわれる。
【００９９】
ＡＬＭ転送テーブルコンストラクタ（２１８）は、「水拡散」の例に準拠し、これらの工程（ＳＴ１３０６〜ＳＴ１３１４）では、水が拡散することができる合法のトンネル（ノード間を論理的に接続する経路）を選択する。合法のトンネル（ｐ１、ｐ２）は、その開始点ｐ１まで既に流れて来たが、未だｐ２には存在しない、いくつかのストリームを有するトンネルである。大きなトンネルまたは高い番号のスロットが好ましい。
【０１００】
次の工程では、前の工程の「順序付きリスト」のうち、メンバーｐを有するすべてのリンク（ｐ、ｑ）に対し、待ち時間制約を満足するすべてのリンク（ｉ、ｊ）と、集合Ｓ［ｉ］、Ｓ［ｊ］≠φの基数とを選択する。次に、ＡＬＭ転送テーブルコンストラクタ（２１８）は、それらを「規則ベースの順序付きリスト」に追加する（ＳＴ１３０６）。次の工程では、ＡＬＭ転送テーブルコンストラクタ（２１８）は、「規則ベースの順序付きリスト」から、最も高いスロットを選択し、それらをリストデータベース（２６０）内の「規則ベースのペアリスト」に追加する（ＳＴ１３１２）。
【０１０１】
次に、ＡＬＭ転送テーブルコンストラクタ（２１８）は、「規則ベースのペアリスト」から、経験的規則データベース（２０６）からの追加規則（例えば、ペア間の最も少ない待ち時間）を満足するメンバーを選択する（ＳＴ１３１６）。次に、ＡＬＭ転送テーブルコンストラクタ（２１８）は、経験的規則データベース（２０６）から特定規則を採用することにより、「初期リスト」から各ノードを接続するＮ−ツリーを形成する（ＳＴ１３１８）。特定規則は、例えば、最大待ち時間規則に違反することなく、Ｎ−ツリーの１つのノードから、それ自身を除く、「初期リスト」のすべてのノードへの接続を形成する複数のノードペアを選択するという規則を採用する。このプロセスは、すべてのノードに対して、リンクステータスがＴｒｕｅに設定される（ツリーにおけるリンクの完全な接続状態）ように、｛ａ，ｉ，，ｎ｝｛ａ，，ｊ，ｎ｝｛ａ，，，ｋ｝．．に対するすべてのノード、ｎ、集合Ｓのメンバーを照合することにより、「規則ベースのペアリスト」からのすべてのメンバーに対し続けられる（ＳＴ１３２０）。
【０１０２】
「水拡散」の例に準拠し、この工程では、ＡＬＭ転送テーブルコンストラクタ（２１８）は、選択すべき多くの合法のトンネルが存在する場合、最短のトンネルを選択する。すなわち、この工程では、ＡＬＭ転送テーブルコンストラクタ（２１８）は、「規則ベースのペアリスト」内のすべてのリンク（ｉ、ｊ）に対して、ノードペア（ｒ、ｖ）間の最も少ない待ち時間を有するリンク（ｒ、ｖ）を選択する。
【０１０３】
ＡＬＭ転送テーブルコンストラクタ（２１８）は、トンネル（ｒ、ｖ）の選択後、始点ｒに既に到達したストリームであって、終点ｖまで拡散し得る、多くのストリームが存在する場合、そのソースｋからポイントｖまでの許容可能な距離を与えるストリームを選択する。ＡＬＭ転送テーブルコンストラクタ（２１８）は、ノードｖが、ノードｒをルートとするストリームを未だ受信していない場合、リンク（ｒ、ｖ）をノードｒツリーに追加する。そうでなければ、ＡＬＭ転送テーブルコンストラクタ（２１８）は、集合Ｓ［ｒ］とＳ［ｖ］からのノードをリンクする１つのランダムなカラーｋに対し、待ち時間（ｋ，ｖ）が最大待ち時間以下の場合、ｋをルートとするツリーにリンク（ｒ、ｖ）を追加する。ＡＬＭ転送テーブルコンストラクタ（２１８）は、選択可能なリンク（ｒ、ｖ）が存在しない場合（例えば、待ち時間の違反のため）、残された次に最も大きな容量を有する他のリンクを選択することを試みる。
【０１０４】
ＡＬＭ転送テーブルコンストラクタ（２１８）は、「規則ベースの順序リスト」内のすべてのノードに対し、完全なＮ個のツリーが構築されるまで、このプロセスを繰り返す（ＳＴ１３２２）。完全なＮ個のツリーは、任意の１つのノードから、他のＮ−ツリー内の他のすべてのノードに到達するように、１つのＮ−ツリー内のすべてのノードが、Ｎ個のソースに対するＮ個のツリー内の他のノードに接続されるものと、定義される。これは、経験的規則データベース（２０６）からのすべての定義済み規則を完全に満足する、あるいは経験的規則データベース（２０６）からの部分的な規則を完全に満足することにより実現されてよい。
【０１０５】
最後に、図１３Ｂに示すようにＮ−ツリー最適化が行われる（ＳＴ１３２４〜ＳＴ１３３０）。最初に、Ｎ−ツリーリンク移動が行われる（ＳＴ１３２４）。この工程は、図１４Ａに示すように、Ｎ個のツリーの高さを最小化するために、リンクをペアノード間で移動することを試みる。リンク移動後にＮ個のツリーが変更された場合、工程１３１２から始まる以下の工程によりＮ個のツリーの再構築が必要である（ＳＴ１３２６）。Ｎ個のツリーの再構築がリンク移動により失敗した場合、リンク並べ替えが行われる（ＳＴ１３２８）。完全なＮ個のツリーが構築されるまで、リンク並べ替え工程（ＳＴ１３２８）は続けられる（ＳＴ１３３０）。
【０１０６】
そして、Ｎ−ツリーアルゴリズムに基づく更新情報は、クライアントエンティティ間での配送のために、最適ストリーム経路情報テーブル（２０４）とサーバー転送テーブル（２０２）において反映される（ＳＴ１３３２）。
【０１０７】
次に、２つのＮ−ツリー最適化技術、リンク移動、リンク再ルーティングについて、図１４Ａと図１４Ｂを用いて説明する。
【０１０８】
まず、図１４Ａを用いて、Ｎ−ツリーアルゴリズムのリンク並べ替え工程について詳細に説明する。最初に、ＡＬＭ転送テーブルコンストラクタ（２１８）は、Ｎ−ツリー並べ替えを行なうためのトリガを受信すると（ＳＴ１４０２）、最適ストリーム経路情報テーブル（２０４）からメンバーを選択する（ＳＴ１４０４）。最適ストリーム経路情報テーブル（２０４）内の２つのノード間に、未使用帯域幅を有するリンクが存在する場合、ＡＬＭ転送テーブルコンストラクタ（２１８）は、新しいリンクの遅延制約と帯域幅とが、元の規則に関し、依然として有効となるように、該リンクを他のノードに移動させる（ＳＴ１４０６）。２つのノード間の関係は、最適ストリーム経路情報テーブル（２０４）内の親−子関係、祖父母−子関係等に関わらないものとする。これにより、最適ストリーム経路情報テーブル（２０４）内のすべてのノードに対するＮ−ツリーリンク並べ替えが可能となる（ＳＴ１４０８）。
【０１０９】
次に、図１４Ｂを用いて、Ｎ−ツリーアルゴリズムのリンク移動工程について、詳細に説明する。最初に、ＡＬＭ転送テーブルコンストラクタ（２１８）は、リンク移動のためにトリガを受信すると（ＳＴ１４１０）、リンク移動目的の最適ストリーム経路情報テーブル（２０４）からメンバーを選択する（ＳＴ１４１２）。ＡＬＭ転送テーブルコンストラクタ（２１８）は、最適ストリーム経路情報テーブル（２０４）内の２つの同じノード間の親−子関係、祖父母−子関係等に関らず、２つ以上の論理リンクが存在し、当該リンク上の２つのノード間の遅延制約と帯域幅とが同じになるように、第１のリンクと第２のリンクを比較する。さらに、より多くの中間ノードを有する場合、ＡＬＭ転送テーブルコンストラクタ（２１８）は、より短いＮ−ツリーを有するように、前者のリンクを後者のリンクで置換する（ＳＴ１４１４）。これにより、最適ストリーム経路情報テーブル（２０４）内のすべてのノードに対し、Ｎ−ツリーの高さを最小化することができる（ＳＴ１４１６）。
【０１１０】
例外的なケースでは、Ｎ−ツリー構築中にノードのあらゆる候補について試みた後、最適化のためのリンク移動と並べ替えとの両方が失敗するということもあり得る。このようなシナリオでは、Ｎ−ツリー計算は不完全となり、Ｎ−ツリーアルゴリズムの完成に失敗する。しかしながら、Ｎ−ツリーのシミュレーションの結果は、リンク移動、リンク並べ替え技術、経験的規則データベース情報の利用により、ツリーを算出した際、所与のケースの９９％でＮ−ツリーアルゴリズムが成功することを証明した。一方、リンク移動、リンク並べ替え技術、経験的規則データベース情報が無いと、所与のケースに対しＮ−ツリー構築の成功率は９５％となった。Ｎ−ツリー計算時間は、１２個のノードに対し、普通のパーソナルコンピュータ仕様では５０ミリ秒未満である。
【０１１１】
Ｎ−ツリーの高さ最小化／リンク移動は、所与の「水拡散」の例に基づき、次のように説明することができる。任意のノードｊをルートとするツリーにおいて、ノードｋの親ノードからノードｋへのリンクを断ち、ノードｋからノードｐへのリンクへの置換は、ツリーｊの待ち時間に違反しない。なお、この場合、ノードｋの第２の親は、ノードｋの既存の直接親を置換可能なノードｐとして定義することができる。したがって、ノードは、Ｎ−１個の第２の親の組（他のノードをルートとするＮ−１個のツリーに対応する）を有することができるであろう。これは、｛ａ，，ｋ＝ｔｒｕｒｅ，，ｎ｝を｛ａ，，ｋ＝ｆａｌｓｅ，，ｎ｝に変更することにより、「規則ベースの順序リスト」からリンク「ｋ」（ペアノード間のリンク）を削除し、そして「規則ベースの順序リスト」からリンク「ｋ’」を選択する。この場合、ｋ’は、第２の親であるので選択される。
【０１１２】
次に、図１５を用いて、クライアントノードによるパケット転送方法について説明する。まず、クライアントノードは、他のいずれかのノードからソースパケットを受信する（ＳＴ１５０２）。次に、クライアントノードは、送信先ＩＰアドレス及びポート番号を識別するために、前に説明したような２つのテュープル（ＩＰアドレスとポートの組）あるいは３つのテュープル（ＩＰアドレス、ポート、または、ＡＬＭパケットであることを示すフラグもしくは区分の組）に基づいて、そのクライアント転送テーブル（２３６）を検索する（ＳＴ１５０４）。なお、ＡＬＭパケットであることを示すフラグもしくは区分とは、ＩＰｖ４のＴｏＳ（Type of Service）フィールドであっても、ＩＰｖ６ヘッダのＤＳＣＰ（Differentiated Services Code Point）領域やフローラベルのいずれか、もしくは双方の組み合わせであってもかまわない。もしくは、ＡＬＭパケットであることを示すフラグもしくは区分は、ＵＤＰペイロード領域の定められた特定の領域であってもかまわない。
【０１１３】
次に、クライアントノードは、ＡＬＭパケットのソースＩＰアドレス及びポート番号を、現在のノードＩＰアドレス及びポート番号に変更する（ＳＴ１５０６）。これは、すべてのネットワークパケットがＮ−ツリー構築された経路に従い、ノード間の帯域幅公平性がもたらされることを保証する。最後に、クライアントノードは、ネットワークパケットを、それぞれの次の送付先ノードに転送する（ＳＴ１５０８）。
【０１１４】
次に、本発明のＮ−ツリーアルゴリズムの具体例について、図１６を用いて説明する。図１６には、図１７と同じネットワーク条件に対するＮ−ツリーアルゴリズムのステップごとのアプリケーションと、その結果のネットワークリンクとを例示する。各ノード［ＮＹ、ＳＧ、ＪＰ、ＶＮ］べ−スのツリーは、規定されたいくつかの経験的規則に従う最大のものから最も少ないものへ、規定された待ち時間と帯域幅速度セット／スロットに対して最良のネットワークリンクを探索する。帯域幅速度セット／スロットは、例えば、８Ｍｂｐｓ、４Ｍｂｐｓ、３Ｍｂｐｓまたは２Ｍｂｐｓとする。
【０１１５】
この場合の経験的規則は、上記規則１から規則４である。これにより、図１６に示すように、ループ１から順番に経路が選択される。
【０１１６】
ここで、一つの経路構築がうまくいかなければ、遅延制約を遵守することに加え、すべてのノードに対する公平な帯域幅を維持する処理を再度開始するためにバックトラックが行われる。
【０１１７】
図１６の場合、本発明のＮ−ツリーアルゴリズムを実行すると、Ｎ個のノード（この例ではＮ＝４）に対する一対Ｎ分散ツリーのそれぞれは、次のように計算される。
【０１１８】
（１）まず、許容帯域幅が最も大きいＭＹから、８Ｍｂｐｓの帯域幅で、ＭＹとの遅延が最も少ないＶＮへパケットを直接送信する経路を選択し（ループ１）、ＭＹとの遅延が２番目に少ないＳＧへパケットを直接送信する経路を選択する（ループ２）（図１６（Ａ））。ただし、ＭＹとＪＰの間の遅延Ｄ＝３００ｍｓが、最大レイテンシ２５０ｍｓを超えているため、ＭＹからＪＰへパケットを直接送信する経路を選択することはできない。この結果、残りの帯域幅は、ＭＹが２０Ｍｂｐｓ、ＳＧが１２Ｍｂｐｓ、ＪＰが１６Ｍｂｐｓ、ＶＮが６Ｍｂｐｓとなる。
【０１１９】
（２）次に、残りの帯域幅が２番目に大きいＳＧから、４Ｍｂｐｓの帯域幅で、ＳＧとの遅延が最も少ないＶＮへパケットを直接送信する経路を選択し（ループ３）、ＳＧとの遅延が２番目に少ないＪＰへパケットを直接送信する経路を選択する（ループ４）。この時点で、残りの帯域幅は、ＪＰの方が大きくなるので、次に、ＪＰから、４Ｍｂｐｓの帯域幅で、ＪＰとの遅延が最も少ないＶＮへパケットを直接送信する経路を選択する（ループ５）（図１６（Ｂ））。この結果、残りの帯域幅は、ＭＹが２０Ｍｂｐｓ、ＳＧが１２Ｍｂｐｓ、ＪＰが１２Ｍｂｐｓ、ＶＮが６Ｍｂｐｓとなる。
【０１２０】
（３）次に、残りの帯域幅が２番目に大きいＪＰから、４Ｍｂｐｓの帯域幅で、ＳＧへパケットを直接送信する経路を選択する（ループ６）（図１６（Ｃ））。この結果、残りの帯域幅は、ＭＹが２０Ｍｂｐｓ、ＳＧが１２Ｍｂｐｓ、ＪＰが８Ｍｂｐｓ、ＶＮが６Ｍｂｐｓとなる。
【０１２１】
（４）次に、残りの帯域幅が２番目に大きいＳＧから、４Ｍｂｐｓの帯域幅で、ＭＹへパケットを直接送信する経路を選択する（ループ７）（図１６（Ｄ））。この結果、残りの帯域幅は、ＭＹが２０Ｍｂｐｓ、ＳＧが８Ｍｂｐｓ、ＪＰが８Ｍｂｐｓ、ＶＮが６Ｍｂｐｓとなる。
【０１２２】
（５）次に、残りの帯域幅が最も大きいＭＹから、４Ｍｂｐｓの帯域幅で、ＳＧを経由して、ＪＰへパケットを送信する経路を選択する（ループ８）（図１６（Ｅ））。この結果、残りの帯域幅は、ＭＹが２０Ｍｂｐｓ、ＳＧが４Ｍｂｐｓ、ＪＰが８Ｍｂｐｓ、ＶＮが６Ｍｂｐｓとなる。
【０１２３】
（６）次に、残りの帯域幅が２番目にＪＰから、４Ｍｂｐｓの帯域幅で、ＳＧを経由して、ＭＹへパケットを送信する経路を選択する（ループ９）（図１６（Ｆ））。この結果、残りの帯域幅は、ＭＹが２０Ｍｂｐｓ、ＳＧが０Ｍｂｐｓ、ＪＰが８Ｍｂｐｓ、ＶＮが６Ｍｂｐｓとなる。
【０１２４】
（７）次に、ＶＮから、４Ｍｂｐｓの帯域幅で、ＪＰへパケットを直接送信する経路を選択し（ループ１０）、さらに、ＶＮから、４Ｍｂｐｓの帯域幅で、ＪＰを経由して、ＳＧへパケットを送信する経路を選択する（ループ１１）（図１６（Ｇ））。この結果、残りの帯域幅は、ＭＹが２０Ｍｂｐｓ、ＳＧが０Ｍｂｐｓ、ＪＰが４Ｍｂｐｓ、ＶＮが２Ｍｂｐｓとなる。
【０１２５】
ここで、ＳＧの残りの帯域幅が０Ｍｂｐｓ、ＶＮの残りの帯域幅が２Ｍｂｐｓであるため、４Ｍｂｐｓの帯域幅で、ＶＮからＭＹに到達するための経路を見出すことができない。
【０１２６】
したがって、本発明のＮ−ツリーアルゴリズムは、バックトラッキング工程に移り、ルートの見直しを行う。具体的には、ＭＹを選択し、リンク（ＳＧ−ＶＮ）を削除し、その代わりに２つのリンク、すなわちＳＧツリー内の（ＳＧ−ＭＹ）と（ＭＹ−ＶＮ）の経路を選択する（ループ１２）（図１６（Ｈ））。この結果、残りの帯域幅は、ＭＹが１６Ｍｂｐｓ、ＳＧが４Ｍｂｐｓ、ＪＰが４Ｍｂｐｓ、ＶＮが２Ｍｂｐｓとなる。
【０１２７】
これにより、ＶＮから、４Ｍｂｐｓの帯域幅で、ＪＰ、ＳＧを経由して、ＭＹへパケットを送信する経路を選択することができるようになる（ループ１３）（図１６（Ｉ））。この結果、残りの帯域幅は、ＭＹが１６Ｍｂｐｓ、ＳＧが０Ｍｂｐｓ、ＪＰが４Ｍｂｐｓ、ＶＮが２Ｍｂｐｓとなる。
【０１２８】
このように、本発明のＮ−ツリーアルゴリズムは、ソースベースのツリーを構築して最短の遅延パスに向かうようにバイアスをかけるＭＳＴベースの方法と比較し、Ｎ個のソースツリーを同時に構築し、ストリームごとに帯域幅を公平に割り当てることができる。
【０１２９】
例えば、図１８に示した従来方法ではＶＮが２Ｍｂｐｓの帯域幅しか確保できないのに対し、図１６に示した本発明のＮ−ツリー構築方法では全てのノードにおいて４Ｍｂｐｓの帯域幅を確保することができる。すなわち、各ノード（ＭＹ、ＳＧ、ＪＰ、ＶＮ）は、公平な帯域幅と許容された遅延制約に基づきＮ−ツリーを同時に構築することができる。
【産業上の利用可能性】
【０１３０】
本発明は、小グループの参加者が、ネットワーク上ですべての参加者間のセッションを通じて高度な対話機能と良好なＡＶ品質でＡＶストリームまたはコンテンツを交換するＡＶ会議アプリケーションに用いるに好適である。
【図面の簡単な説明】
【０１３１】
【図１】本発明の一実施の形態に係る通信システムを示す図
【図２】本発明の一実施の形態に係るクライアントエンティティとサーバーエンティティの内部構成を示すブロック図
【図３】最適ストリーム経路情報テーブルの一例を示す図
【図４】ＯＳＰＩＴ内のＮ−ツリールートノード情報のデータ構造を示す図
【図５】ＯＳＰＩＴ内のＮ−ツリーメンバーノード情報のデータ構造を示す図
【図６】帯域幅公平化転送テーブルを示す図
【図７】転送テーブル（ＦＴ）メッセージ構造を示す図
【図８】転送テーブルエントリ（ＦＴＥ）メッセージ構造を示す図
【図９】ＡＬＭ＿ＦＲＣメカニズムによるＮ−ツリーアルゴリズムの全体工程を示す図
【図１０】ＦＴメッセージ交換シーケンスを示す図
【図１１】Ｎ−ツリーアルゴリズムの実行方法を示す図
【図１２】クライアントノードにおける帯域幅公平化転送テーブルの受信及び更新方法を示す図
【図１３Ａ】Ｎ−ツリーアルゴリズム実行の詳細工程を示す図
【図１３Ｂ】Ｎ−ツリーアルゴリズム実行の詳細工程を示す図
【図１４Ａ】Ｎ−ツリーアルゴリズムのリンク並べ替え工程を示す図
【図１４Ｂ】Ｎ−ツリーアルゴリズムのリンク移動工程を示す図
【図１５】クライアントノードによるパケット転送方法を示す図
【図１６】本発明のＮ−ツリーアルゴリズムの具体例を示す図
【図１７】Ｎ−ツリーアルゴリズムを具体的に行う際の前提条件を示す図
【図１８】従来のＮ−ツリーアルゴリズムの具体例を示す図
【符号の説明】
【０１３２】
１０２  サーバー
１０４、１０６、１０８、１１０  クライアント
１１２  ネットワーク
２０２  サーバー転送テーブル
２０４  最適ストリーム経路情報テーブル
２０６  経験的規則データベース
２１０  サーバーエンティティ
２１８  ＡＬＭ転送テーブルコンストラクタ
２２０  メトリックコレクタ
２２２  グループメンバーシップ
２２６  メトリックデータベース
２３０  メンバーシップデータベース
２３６  クライアント転送テーブル
２４０  ＡＬＭ転送テーブルエクゼキュータ
２４４  メトリックプロバイダ
２４６  グループメンバーシップ
２５０  メトリックデータベース
２５４  メンバーシップデータベース
２５６  クライアントエンティティ
２６０  リストデータベース
２６２  ルーティングエンジン
２７８  ＡＬＭ転送テーブルディストリビュータ
２８０  ＡＬＭ転送テーブルレシーバ
【図１】
0005058135.tif 000002
【図２】
0005058135.tif 000003
【図３】
0005058135.tif 000004
【図４】
0005058135.tif 000005
【図５】
0005058135.tif 000006
【図６】
0005058135.tif 000007
【図７】
0005058135.tif 000008
【図８】
0005058135.tif 000009
【図９】
0005058135.tif 000010
【図１０】
0005058135.tif 000011
【図１１】
0005058135.tif 000012
【図１２】
0005058135.tif 000013
【図１３Ａ】
0005058135.tif 000014
【図１３Ｂ】
0005058135.tif 000015
【図１４Ａ】
0005058135.tif 000016
【図１４Ｂ】
0005058135.tif 000017
【図１５】
0005058135.tif 000018
【図１６】
0005058135.tif 000019
【図１７】
0005058135.tif 000020
【図１８】
0005058135.tif 000021