(57)【特許請求の範囲】
【請求項１】
マルチキャスト配信を行うオーバーレイネットワークを形成する方法であって、
上記オーバーレイネットワークを構成するオーバーレイノードの内、予め定められた条件で選定された複数のスーパーノードは、プログラムされたコンピュータ処理を実行する手段として、隣接ノード決定手段とマルチキャストツリー生成手段と子供管理テーブル保持手段と先祖リスト管理手段および参加処理手段とを具備し、
上記条件に合わない各一般ノードは、プログラムされたコンピュータ処理を実行する手段として、スーパーノード選択手段を具備し、
上記スーパーノードの隣接ノード決定手段は、論理的に接続する１以上の隣接スーパーノードを決定し、決定した隣接スーパーノード間で論理的な接続を行いスーパーノード層を形成する手順を実行し、
上記一般ノードのスーパーノード選択手段は、上記スーパーノードのいずれか一つを選択して論理的に接続し一般ノード層を形成する手順を実行し、
上記スーパーノードのマルチキャストツリー生成手段は、
上記スーパーノード層におけるマルチキャスト情報の配信経路を示すマルチキャストツリーを、当該マルチキャスト情報の配信元ノードをルートとして形成する手順を実行し、
上記スーパーノードは、新規にマルチキャスト配信に参加する場合、
上記参加処理手段により、当該マルチキャスト情報の配信元のスーパーノードに問い合わせて、当該マルチキャスト配信に既に参加している各スーパーノードを特定し、
上記隣接ノード決定手段により、上記特定した各スーパーノードの中で最も通信距離が近いスーパーノードを親スーパーノードとして抽出し、
上記参加処理手段により、上記抽出した親スーパーノードに対して、参加を要求するｃｏｎｎｅｃｔメッセージを転送する手順を実行し、
上記先祖リスト管理手段により、当該マルチキャスト情報の配信元のスーパーノードに問い合わせて、当該配信元スーパーノードをルートとするマルチキャストツリーにおける当該配信元スーパーノードから上記親スーパーノードまでの経路を示す先祖リストを取得して記憶装置に記憶する手順を実行し、
上記ｃｏｎｎｅｃｔメッセージを受信した親スーパーノードは、
上記子供管理テーブル保持手段により、上記マルチキャストツリーにおいて子となるスーパーノードのアドレスを管理する子供管理テーブルに、上記新スーパーノードのアドレスを追加すると共に、該新スーパーノードのアドレスを追加した旨を示す追加報告情報を、当該マルチキャスト情報の配信元のスーパーノードのマルチキャストツリー生成手段に対して通知する手順を実行し、
上記追加報告情報を受信した上記マルチキャスト情報の配信元のスーパーノードは、マルチキャストツリー生成手段により、当該マルチキャストツリーの更新手順を実行する
ことを特徴とするオーバーレイマルチキャスト配信ネットワーク構成方法。
【請求項２】
請求項１におけるオーバーレイマルチキャスト配信ネットワーク構成方法であって、
一般ノードのスーパーノード選択手段は、ＲＴＴを含む通信距離取得手順のいずれかを実行して、自身からの通信距離が最も近いスーパーノードを特定し、特定したスーパーノードを、上記論理的に接続するスーパーノードとして選択する
ことを特徴とするオーバーレイマルチキャスト配信ネットワーク構成方法。
【請求項３】
請求項１もしくは請求項２のいずれかに記載のオーバーレイマルチキャスト配信ネットワーク構成方法であって、
上記各スーパーノードを、着目する２つの各スーパーノードの座標から距離を推定することが可能なようにあらかじめそれぞれ２次元の座標空間に２次元の座標位置情報としてマッピングしておき、
上記スーパーノードの隣接ノード決定手段は、
予め記憶装置に記憶した自身の上記２次元の座標位置情報を読み出し、
自身を中心に２次元空間を角度θ＝π／３で空間を６つのセクターに分割し、
セクターｊ（ｊ＝１〜６）の空間に位置する他のスーパーノードから当該スーパーノードの上記２次元の座標位置情報を取得し、最も座標位置が近いスーパーノードを、当該セクタｊにおける隣接スーパーノードとして特定し、特定した隣接スーパーノードと論理的に接続する
ことを特徴とするオーバーレイマルチキャスト配信ネットワーク構成方法。
【請求項４】
請求項１から請求項３のいずれかに記載のオーバーレイマルチキャスト配信ネットワーク構成方法であって、
上記スーパーノードのマルチキャストツリー生成手段は、
自身のスーパーノードから、１以上の他のスーパーノードを経由して当該マルチキャスト情報の配信元のスーパーノードに到達する転送経路のうち、経由ホップ数が最小となる転送経路を最適経路として特定する手順、
もしくは、自身のスーパーノードと当該マルチキャスト情報の配信元のスーパーノード間のＲＴＴが最小となる転送経路を最適経路として特定する手順
を含む複数の最適経路特定手順のいずれかを実行し、
マルチキャスト情報の配信元のスーパーノードから自身のスーパーノードまでの転送経路が最適となるように上記マルチキャストツリーを構成する
ことを特徴とするオーバーレイマルチキャスト配信ネットワーク構成方法。
【請求項５】
請求項１から請求項４のいずれかに記載のオーバーレイマルチキャスト配信ネットワーク構成方法であって、
上記スーパーノードは、プログラムされたコンピュータ処理を実行する手段として、離脱処理手段を具備し、
上記スーパーノードは、マルチキャスト配信から離脱する場合、
上記先祖リスト管理手段により先祖リストを参照して当該マルチキャスト配信の親スーパーノードを特定すると共に、上記子供管理テーブル保持手段により子供管理テーブルを参照して当該マルチキャスト配信に参加している子スーパーノードを特定し、
上記離脱処理手段により、上記特定した親スーパーノードに対して、当該マルチキャスト配信からの離脱を要求するｄｉｓｃｏｎｎｅｃｔメッセージを送出し、上記特定した子スーパーノードに対して、当該マルチキャスト配信から離脱する旨を示す離脱報告情報を送出する手順を実行し、
上記ｄｉｓｃｏｎｎｅｃｔメッセージを受信した親スーパーノードは、
上記子供管理テーブル保持手段により、子供管理テーブルにおける上記離脱スーパーノードの情報を削除すると共に、
上記先祖リスト管理手段により、当該マルチキャスト配信元のスーパーノードに対して上記離脱スーパーノードの離脱を通知する手順を実行し、
上記親スーパーノードからの上記離脱スーパーノードの離脱通知を受けた上記マルチキャスト配信元のスーパーノードは、マルチキャストツリー生成手段により、当該マルチキャストツリーの更新手順を実行し、
上記親スーパーノードからの離脱報告情報を受信した子スーパーノードは、
上記先祖リスト管理手段により、先祖リストを参照して通信距離が最も近い最近傍親スーパーノードを抽出し、
上記離脱処理手段により、上記抽出した最近傍親スーパーノードに問い合わせて、該最近傍親スーパーノードの子供管理テーブル保持手段が子供管理テーブルで管理している当該マルチキャスト配信に参加している各子スーパーノードを特定し、特定した各子スーパーノードから通信距離が最も近い最近傍子スーパーノードを抽出し、抽出した最近傍子スーパーノードもしくは上記最近傍親スーパーノードの近い方を、上記離脱スーパーノードに替わる新たな親スーパーノードとして選択し、
上記先祖リスト管理手段により、先祖リストにおいて上記離脱スーパーノードに替えて上記新たに選択した親スーパーノードを管理すると共に、該新たに選択した親スーパーノードに対して、上記参加を要求するｃｏｎｎｅｃｔメッセージを送出する手順を実行する
ことを特徴とするオーバーレイマルチキャスト配信ネットワーク構成方法。
【請求項６】
請求項５に記載のオーバーレイマルチキャスト配信ネットワーク構成方法であって、
上記スーパーノードのマルチキャストツリー生成手段は、
上記ｃｏｎｎｅｃｔメッセージもしくは上記ｄｉｓｃｏｎｎｅｃｔメッセージが発生した回数をカウントする手順と、カウント値が予め定められた閾値を超えた場合、当該マルチキャストツリーを形成し直す
ことを特徴とするオーバーレイマルチキャスト配信ネットワーク構成方法。
【請求項７】
請求項５もしくは請求項６のいずれかに記載のオーバーレイマルチキャスト配信ネットワーク構成方法であって、
上記一般ノードは、プログラムされたコンピュータ処理を実行する手段として、マルチキャスト配信ネットワーク参加・離脱決定手段を具備し、
マルチキャスト配信に参加もしくはマルチキャスト配信から離脱する場合、
上記マルチキャスト配信ネットワーク参加・離脱決定手段により、上記論理的に接続したスーパーノードに対して、当該マルチキャスト配信への参加を要求する参加要求情報もしくは当該マルチキャスト配信からの離脱を要求する離脱要求情報を通知し、
上記参加要求情報を受け取ったスーパーノードは、請求項１に記載の各手段による手順を実行すると共に、上記子供管理テーブル保持手段により、上記一般ノードを子として子供管理テーブルに追加し、
上記離脱要求情報を受け取ったスーパーノードは、請求項５に記載の各手段による手順を実行すると共に、上記子供管理テーブル保持手段により、上記一般ノードを子供管理テーブルから削除する
ことを特徴とするオーバーレイマルチキャスト配信ネットワーク構成方法。
【請求項８】
請求項５から請求項７のいずれかに記載のオーバーレイマルチキャスト配信ネットワーク構成方法であって、
上記スーパーノードは、プログラムされたコンピュータ処理を実行する手段として、定期更新処理手段を具備し、
上記定期更新処理手段は、定期的に、障害監視用のａｌｉｖｅメッセージを、上記マルチキャストツリーにおいて子となるスーパーノードに対して送出する手順と、
上記ａｌｉｖｅメッセージに対する子スーパーノードからのレスポンスが、予め定めたタイムアウト時間を経過してもなければ、当該子スーパーノードの故障と判断し、請求項５に記載の各手段による手順を実行する
ことを特徴とするオーバーレイマルチキャスト配信ネットワーク構成方法。
【請求項９】
請求項１から請求項８のいずれかに記載のオーバーレイマルチキャスト配信ネットワーク構成方法であって、
上記マルチキャストツリー生成手段は、
マルチキャスト配信対象のコンテンツ毎に、上記マルチキャストツリーの形成手順を実行する
ことを特徴とするオーバーレイマルチキャスト配信ネットワーク構成方法。
【請求項１０】
ＩＰネットワーク上に、マルチキャスト配信を行うオーバーレイネットワークを形成するシステムであって、
請求項１から請求項９のいずれかに記載のオーバーレイマルチキャスト配信ネットワーク構成方法における各手順を実行する各手段を具備し、
上記オーバーレイネットワークを上記スーパーノード層と上記一般ノード層の２層から構成し、かつ、上記スーパーノード層においてマルチキャスト配信用のネットワークを構成することを特徴とするオーバーレイマルチキャスト配信ネットワーク構成システム。
【請求項１１】
コンピュータに、請求項１から請求項９のいずれかに記載のオーバーレイマルチキャスト配信ネットワーク構成方法における各手順を実行させるためのプログラム。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ネットワークにおけるマルチキャスト配信技術に係り、特に、オーバーレイネットワークを用いてインターネットにおけるストリーミング情報のマルチキャスト配信を効率的に行うのに好適なネットワーク技術に関するものである。
【背景技術】
【０００２】
ＩＰネットワークを代表するインターネットは、多様なアプリケーションの収容を可能とすべく発展・普及してきており、昨今では、ＶｏＩＰ（Ｖｏｉｃｅ  ｏｖｅｒ  ＩＰ）やストリーミングに代表されるＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）や障害に敏感な実時間アプリケーション等の収容も急速に発展している。
【０００３】
特にストリーミング配信を効率的に実現する技術が必要とされている。全てのエンドユーザにユニキャスト通信で配信すると、エンドユーザ数に比例してサーバコスト（ＣＰＵ、帯域等）が必要となり、大規模な配信は困難である。そこで、ＩＰレイヤでのマルチキャスト配信が着目されているが、インターネット上でＩＰマルチキャストを行うためには、その対象となるネットワーク内の全ルータにマルチキャスト機能が必要となる。
【０００４】
一方、下位のネットワークレイヤを変更することなくエンド・ツー・エンドＱｏＳや対障害性の向上や新たなサービス実現を柔軟に可能とする有力な技術として、例えば非特許文献１に記載の、オーバーレイネットワークによるＱｏＳ管理技術が注目されている。オーバーレイネットワークとは、例えば非特許文献２においても記載のように、既存のリンクを用いて、その上位層に目的に応じて論理的（仮想的）なリンクを形成し、構成するネットワークである。
【０００５】
図６を用いて、このようなオーバーネットワークによるＱｏＳ管理の基本的な概念を例示する。図６において、ノードａからノードｃに向けて通信したい場合を考える。このとき、ノードａからノードｃへ直接転送した場合の遅延時間よりも、ノードａから一旦ノードbへ転送し、ノードbからノードｃへ転送するという迂回経路を経由した方が遅延時間が小さい場合がある（例えばインターネットでのドメイン間ルーチングポリシーなどに起因する）。
【０００６】
このとき、オーバーレイノードａ，b，ｃで形成されるオーバーレイネットワークを用いて、実践矢印で表される経路（オーバーレイノードａ→オーバーレイノードb→オーバーレイノードｃ）にトラヒックを迂回させることができれば、ＱｏＳを向上できる。
【０００７】
従来、オーバーレイネットワークにおける基本機能（例えばＱｏＳルーチングや、ネットワーク構成法）については、検討があるものの、そのオーバーレイネットワークを用いて、ＱｏＳ・対障害性を考慮したマルチキャスト配信ネットワークをスケーラブルに実現するための技術が確立されていないという問題があった。
【０００８】
【非特許文献１】Ｌ．Ｚｈｉ  ａｎｄ  Ｐ．Ｍｏｈａｐａｔｒａ，    “ＱＲＯＮ：ＱｏＳ−ａｗａｒｅ  ｒｏｕｔｉｎｇ  ｉｎ  ｏｖｅｒｌａｙ  ｎｅｔ−ｗｏｒｋｓ，”  ＩＥＥＥ  Ｊ．Ｓｅｌｅｃｔ．Ａｒｅａｓ  Ｃｏｍｍｕｎ．，  ｖｏｌ．２２，  ｐｐ．２９−４０，  Ｊａｎｕａｒｙ  ２００４．
【非特許文献２】ＷＩＤＥプロジェクト、“オーバーレイネットワークによる統合分散環境、”  ＷＩＤＥプロジェクト研究報告書、第１７部、２００２．
【発明の開示】
【発明が解決しようとする課題】
【０００９】
解決しようとする問題点は、従来の技術では、オーバーレイネットワークを用いて、ＱｏＳ・対障害性を考慮したマルチキャスト配信ネットワークをスケーラブルに実現することができない点である。
【００１０】
本発明の目的は、これら従来技術の課題を解決し、インターネットにおけるストリーミング情報等のマルチキャスト配信を効率的に行うことを可能とすることである。
【課題を解決するための手段】
【００１１】
上記目的を達成するため、本発明では、（１）オーバーレイネットワークを用いてマルチキャスト配信を行うためのネットワークを構成する際、オーバーレイネットワークを構成するオーバーレイノードの内の幾つかをスーパーノードとし、その他を一般ノードとし、各一般ノードはいずれかのスーパーノードに所属させてスーパーノードと一般ノード間を論理的に接続し、また、一般ノード群が存在する階層を一般ノード層とし、スーパーノード間は論理的に接続されておりそれをスーパーノード層として、オーバーレイネットワークをスーパーノード層と一般ノード層の２階層の構成とし、スーパーノード層において、マルチキャスト配信に参加する各スーパーノード間を、当該マルチキャストの配信元ノードをルートにしたツリー構成で接続することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、ＱｏＳ・対障害性を考慮したマルチキャスト配信ネットワークをスケーラブルに構成することができ、例えば、インターネットにおけるストリーミング情報等のマルチキャスト配信を効率的に行うことが可能となる。
【発明を実施するための最良の形態】
【００１３】
以下、図を用いて本発明を実施するための最良の形態例を説明する。図１は、本発明に係るオーバーレイネットワークにおけるスーパーノード層を構成するスーパーノードの機能構成例を示すブロック図であり、図２は、本発明に係るオーバーレイネットワークにおける一般ノード層を構成する一般ノードの機能構成例を示すブロック図、図３は、図１におけるスーパーノードによるマルチキャスト配信木の構成手順を示す説明図、図４は、本発明に係るオーバーレイネットワークの構成例を示す説明図、図５は、本発明に係るオーバーレイネットワークの構成手順例を示すフローチャートである。
【００１４】
図１におけるスーパーノード１および図２における一般ノード２０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）や主メモリ、表示装置、入力装置、外部記憶装置等を具備したコンピュータ構成からなり、光ディスク駆動装置等を介してＣＤ−ＲＯＭ等の記憶媒体に記録されたプログラムやデータを外部記憶装置内にインストールした後、この外部記憶装置から主メモリに読み込みＣＰＵで処理することにより、各処理部の機能を実行する。
【００１５】
すなわち、図１におけるスーパーノード１は、プログラムされたコンピュータ処理を実行する処理手段として、子供管理テーブル保持部１ａ、距離管理部１ｂ、隣接ノード決定部１ｃ、ＲＰＦチェック部１ｄ、一般ノード管理部１ｅ、先祖リスト管理部１ｆ、マルチキャストツリー生成部１ｇ、経路表管理部１ｈ、パケット転送部１ｉ、参加処理部１ｊ、離脱処理部１ｋ、定期更新処理部１ｍを具備し、図２における一般ノード２０は、プログラムされたコンピュータ処理を実行する処理手段として、スーパーノード選択部２１、マルチキャスト配信ネットワーク参加・離脱決定部２２、パケット転送部２３を具備している。
【００１６】
このような構成からなる図１のスーパーノード１と図２の一般ノード２０は共に、オーバーレイネットワークを構成するオーバーレイノードであり、本例では、このようなオーバーネットワークを構成するオーバーレイノードの内の幾つかをスーパーノード（１）とし、その他を一般ノード（２０）として機能させ、各一般ノード（２０）はいずれかのスーパーノード（１）に所属させて、スーパーノード（１）と一般ノード（２０）間を論理的に接続し、一般ノード（２０）群が存在する階層を一般ノード層とし、スーパーノード（１）間は論理的に接続されておりそれをスーパーノード層として、図４に示すように、オーバーレイネットワークをスーパーノード層４１と一般ノード層４２の２階層の構成とする。
【００１７】
図４に示す２階層（スーパーノード層４１と一般ノード層４２）の構成からなるオーバーレイネットワークにおいて、さらに、本例では、図１におけるスーパーノード１の構成とすることで、図４のスーパーノード層４１において、マルチキャスト配信に参加する各スーパーノード間を、当該マルチキャストの配信元ノードをルートにしたツリー構成で接続して、本発明に係るオーバーレイマルチキャスト配信ネットワーク（オーバーレイネットワークを用いてマルチキャスト配信を行うためのネットワーク）を構成する。
【００１８】
尚、オーバーレイネットワークを構成するオーバーレイノードからのスーパーノードの選定は、当該ネットワークの管理者が選定することでも良いし、各ノードがネットワークに接続する際に、自身が、スーパーノードになるか否かを選択し、スーパーノードになるのであればその旨を既に接続しているノードに通知することでも良い。
【００１９】
いずれにしろ、十分なリソース（帯域、ＣＰＵ等）があり、ネットワークへの参加・離脱を頻繁に行わないものをスーパーノードとして選択する。このように、十分なリソースがあり、安定したノードをスーパーノードとしてスーパーノード層を形成することにより、耐障害性を考慮することが可能となる。
【００２０】
このように、本例では、オーバーレイネットワークを用いてマルチキャスト配信を行うためのネットワーク（オーバーレイマルチキャスト配信ネットワーク）を構成する際、オーバーレイネットワークを構成するオーバーレイノードの内の幾つかをスーパーノード（１）とし、その他を一般ノード（２０）とし、各一般ノードはいずれかのスーパーノードに所属させてスーパーノードと一般ノード間を論理的に接続し、また、一般ノード群が存在する階層を一般ノード層（４２）とし、スーパーノード間は論理的に接続されておりそれをスーパーノード層（４１）として、オーバーレイネットワークをスーパーノード層（４１）と一般ノード層（４２）の２階層の構成とし、スーパーノード層（４１）において、マルチキャスト配信に参加する各スーパーノード間を、当該マルチキャストの配信元ノードをルートにしたツリー構成で接続する。
【００２１】
尚、一般ノード（２０）は、自身からの距離、例えばＲＴＴ（Ｒｏｕｎｄ−Ｔｒｉｐ−Ｔｉｍｅ）等が最も近いスーパーノードに所属させる。
【００２２】
また、スーパーノード層（４１）において、各スーパーノードを２次元の幾何学的な座標空間にマッピングし、すなわち、各スーパーノードには２次元の座標位置を与え、各スーパーノード（１）は、自身を中心に２次元空間を角度θ＝π／３で空間を６つのセクターに分割し、セクターｊ（ｊ＝１〜６）の空間に位置する他のスーパーノードの中から自身に最も近いスーパーノードを隣接スーパーノードとして論理的に接続する。
【００２３】
図４では、スーパーノード層４１において、各スーパーノードを中心に６つのセクターに区切った例を示す。このようにして構成される隣接ネットワークはＹａｏグラフと呼ばれ、幾何学空間上で最短のパスを持つスパニングツリー（枝分かれしていく木）を構成できることが知られている。
【００２４】
そして、図４のスーパーノード層４１において、マルチキャスト配信元のスーパーノードから、当該マルチキャスト配信に参加する各スーパーノードまでの経路が最適となるように、配信元のスーパーノードをルートとしたマルチキャストツリーを構成する。
【００２５】
ここでの最適経路とは、当該スーパーノードからいくつかの他のスーパーノードを経由して配信元のスーパーノードに到達する経路のうち、経由ホップ数が最小のものでも良いし、当該スーパーノードと配信元のスーパーノード間の距離（ＲＴＴ等）が最小となる経路でも良い。あるいは別の尺度で最適であっても良い。
【００２６】
このように、本例では、耐障害性に優れたスーパーノード層４１において、遅延時間の短いマルチキャストツリーを形成することにより、ＱｏＳ向上を実現することができる。
【００２７】
また、オーバーレイネットワークを構成する全部のオーバーレイノードをフラットに扱うのではなく、スーパーノード層４１と一般ノード層４２の２階層にし、スーパーノード層４１のみでＱｏＳを考慮することによりスケーラビリティを確保することができる。
【００２８】
尚、図４のスーパーノード層４１において、マルチキャスト配信元のスーパーノードから、当該マルチキャスト配信に参加する各スーパーノードまでの経路が最適となるように、配信元のスーパーノードをルートとしたマルチキャストツリーを構成するための、具体的な実現例としては、例えば、ＲＰＦ（Ｒｅｖｅｒｓｅ  Ｐａｔｈ  Ｆｏｒｗａｒｄｉｎｇ）と呼ばれる技術を応用することができる。
【００２９】
このＲＰＦ技術では、まず、ルートにあるコンテンツのマルチキャスト配信元のスーパーノードは、オーバーレイネットワーク上の自分の隣接スーパーノード全てにマルチキャストツリー生成用パケットを送出する。
【００３０】
そのマルチキャストツリー生成用パケットを受け取った各スーパーノードは、自身の隣接スーパーノード群に、当該マルチキャストツリー生成用パケットを転送する。この処理を下流スーパーノードに向けて繰り返す。
【００３１】
その際、各スーパーノードは、当該マルチキャストツリー生成用パケットの送信元アドレス（つまり配信元ノードのアドレス）を仮に宛先アドレスだとみなしたときに、そのパケットを送信してきたスーパーノードが、その仮のパケットを送信すべきネクストホップかどうかをチェックし、もしそうであれば、当該マルチキャストツリー生成用パケットを下流に向けて転送する。そうでなければ、そこでそのパケットの転送は打ち切る。そして、このパケットが流れた経路を最適なマルチキャストツリーとして構成する。
【００３２】
また、マルチキャスト配信に参加する一般ノードは、自身の属するスーパーノードを当該マルチキャスト配信に参加させることで、当該スーパーノードの子としてマルチキャスト配信ネットワークに加わる。
【００３３】
また、マルチキャスト配信から離脱する一般ノードは、自身の属するスーパーノードを当該マルチキャスト配信から離脱させることで、当該オーバーレイマルチキャスト配信ネットワークから離脱する。
【００３４】
尚、図４のスーパーノード層４１におけるオーバーレイマルチキャスト配信ネットワークの生成は、マルチキャストで配信するコンテンツ毎に行うものとする。
【００３５】
さらに、あるスーパーノード（１）が、新規に、オーバーレイマルチキャスト配信ネットワークに参加する場合、まず、該当する新スーパーノードが、当該オーバーレイマルチキャスト配信ネットワークの中で最も近いスーパーノードを探索し、この最近傍スーパーノードを親として選択し、選択した親スーパーノード宛に「ｃｏｎｎｅｃｔメッセージ」を転送する。
【００３６】
親として選択され「ｃｏｎｎｅｃｔメッセージ」を受信したスーパーノードは、自身の子供（達）のアドレスを管理する子供管理テーブルに、新スーパーノードのアドレスを追加する。尚、この新スーパーノードは、ルートとしてのスーパーノードから、自身の親スーパールートまでの経路を示す先祖リストを入手して記録・保持する。
【００３７】
このように、マルチキャスト配信に参加する各スーパーノード（メンバ）が先祖リストを保持する理由は、当該マルチキャスト配信ネットワークにおけるノードの離脱・障害が生じた場合にもマルチキャスト配信サービスを中断することなくマルチキャスト配信ネットワークを維持できるようにするためである。このことは、後に詳述する。
【００３８】
また、各スーパーノードが親（スーパーノード）を選択するときに、下位レイヤのネットワーク距離を考慮して最近傍のメンバを親として選択することにより、遅延を小さく抑え、ＱｏＳが考慮される。
【００３９】
尚、ネットワーク距離をそのつど実測するのではスケーラビリティに問題があるため、例えば、「Ｅｎｇ  Ｋｅｏｎｇ  Ｌｕａ，  “Ｎｅｔｗｏｒｋ−ａｗａｒｅ  ＳｕｐｅｒＰｅｅｒｓ−Ｐｅｅｒｓ  Ｇｅｏｍｅｔｒｉｃ  ｏｖｅｒｌａｙ  ｎｅｔｗｏｒｋｓ”  ＩＥＥＥ  ＩＣＣＣＮ  ２００７．」等に記載の公知の技術を用いてノード間距離を推定する。この技術では、各ノードを座標空間にマッピングすることにより、実測しなくても着目する２ノードの座標から距離を推定することができる。
【００４０】
また、あるスーパーノードがマルチキャスト配信ネットワークを離脱する場合には、該当する離脱スーパーノードは、「ｄｉｓｃｏｎｎｅｃｔメッセージ」を親（スーパーノード）に送出する。
【００４１】
該当する親は、この離脱するスーパーノードの情報を、自身の子供管理テーブルから削除する。同時に、もし離脱スーパーノードに子供（達）がいる場合、子供（達）（仮にＡとおく）は、自身の先祖リストをチェックしてこの離脱に対して対応する。
【００４２】
具体的には、スーパーノードＡは、先祖リストの中から、最近傍の先祖を探索し、その先祖に対して、その先祖の子供管理テーブルに属する子供（達）の情報を提供するよう依頼して取得する。
【００４３】
そして、スーパーノードＡは、取得した情報で特定される先祖と子供（達）の中から、最近傍にいるノードを探索し、それを新たな親として選択し、先祖リストを更新する。選択された親（スーパーノード）は、自身の子供管理テーブルにスーパーノードＡ（のアドレス）を追加して更新する。
【００４４】
この局所的な先祖回復プロトコルにより、影響を受けた子供（達）（スーパーノードＡ）は、スーパーノードの離脱があるような状況においても、新たな親（スーパーノード）を迅速に発見でき、安定的なネットワークの維持が可能となる。
【００４５】
このように、マルチキャスト配信メンバとして参加しているスーパーノードの故障や離脱を検出するために、全ての親（スーパーノード）は、定期的に「ａｌｉｖｅメッセージ」を各々の子供（達）（スーパーノード）に送る。もし、予め定めたタイムアウト時間経過しても子（スーパーノード）からのレスポンスがなければ、当該子の故障と判断し、上述の「ｄｉｓｃｏｎｎｅｃｔメッセージ」の送信による処理を実施する。
【００４６】
また、ルートとなるスーパーノードでは、上述の「ｃｏｎｎｅｃｔメッセージ」あるいは「ｄｉｓｃｏｎｎｅｃｔメッセージ」が発生した回数をカウントしておき、その値が予め定められた閾値を超えた場合、マルチキャストツリーを生成し直す。
【００４７】
これにより、ツリーを再度最適に作り直すことができる。すなわち、最初に最適なマルチキャストツリーを生成したとしても、「ｃｏｎｎｅｃｔメッセージ」や「ｄｉｓｃｏｎｎｅｃｔメッセージ」の発生が多くなると、そのつど子供テーブルが更新され、マルチキャストツリーが変化していくため、もはや最適なマルチキャストツリーではない可能性がある。そこで、「ｃｏｎｎｅｃｔメッセージ」や「ｄｉｓｃｏｎｎｅｃｔメッセージ」の発生回数がある閾値を超えたら、ツリーを再度最適に作り直す。
【００４８】
以下、図１に示す構成のスーパーノード１と図２に示す構成の一般ノード２０により、上述のように、オーバーレイネットワークをスーパーノード層（４１）と一般ノード層（４２）の２階層に分ける技術、スーパーノード同士を論理的に接続する技術、スーパーノード層（４１）でマルチキャストツリーを構成する技術、一般ノードも含めてマルチキャスト配信ネットワークを構成する技術、マルチキャストで配信するコンテンツ毎に当該マルチキャスト配信ネットワークを構成する技術、スーパーノードの参加・離脱を行う技術、定期的にマルチキャストツリーを再構成する技術について、具体的に説明する。
【００４９】
図１のスーパーノード１における距離管理部１ｂは、現在ネットワークに参加中の他のスーパーノードと自身との距離情報を取得し図示していない記憶装置に記録保持しておくと共に、その距離情報を、隣接ノード決定部１ｃに通知する。
【００５０】
隣接ノード決定部１ｃは、自身を中心に２次元空間を角度θ＝π／３で空間を６つのセクターに分割し、通知を受けた距離情報を用いて、セクターｊ（ｊ＝１〜６）の空間に位置する他のスーパーノードの中から自身に最も近いスーパーノードを隣接スーパーノードとして選定し、論理的に接続する。
【００５１】
尚、隣接スーパーノードは、以下の手順で更新していく。
【００５２】
自身を中心とした各セクターｊにおける現在の隣接スーパーノードと、セクターｊ内の他のスーパーノードとの距離を比較し、もし、現在の隣接スーパーノードよりも近い距離に他のスーパーノードが存在すれば、その中で最も近いスーパーノードを、新たな隣接スーパーノードとして、更新していく。
【００５３】
この更新動作は、予め定められた周期で（一定周期毎に）行うか、何らかの事象を検知する度（新規スーパーノードの参加、既存スーパーノードの離脱等）に行う。
【００５４】
上述のように、各スーパーノードの接続関係が決まれば、図１のスーパーノード１は、経路表管理部１ｈにおいて、他のスーパーノード・一般ノードの宛先アドレスとネクストホップを対応付けた経路表を生成する。尚、この経路表管理部１ｈによる経路表の生成は、例えばＩＰで用いられるＯＳＰＦ（Ｏｐｅｎ  Ｓｈｏｒｔｅｓｔ  Ｐａｔｈ  Ｆｉｒｓｔ：ＴＣＰ／ＩＰにおける経路選択プロトコルの一つ）等の既存のルーチング技術を用いて実現すれば良い。
【００５５】
マルチキャストツリー生成部１ｇは、自身が、あるコンテンツのマルチキャスト配信元ノードになった場合に、自分の隣接スーパーノードの全てに対してマルチキャストツリー生成用パケットを送出する。
【００５６】
マルチキャストツリー生成部１ｇが送出したマルチキャストツリー生成用パケットを受け取った各スーパーノードは、ＲＰＦチェック部１ｄにおいて、以下の処理を行う。
【００５７】
ＲＰＦチェック部１ｄは、受信したマルチキャストツリー生成用パケットの送信元アドレス（つまり配信元ノードのアドレス）を、仮にパケットの宛先アドレスとみなした場合に、当該マルチキャストツリー生成用パケットを送信してきたスーパーノードが、仮のパケットを送信すべきネクストホップかどうかを、経路表管理部１ｈに問い合わせてチェックする。
【００５８】
ＲＰＦチェック部１ｄのチェック結果が、「当該マルチキャストツリー生成用パケットを送信してきたスーパーノードが、仮のパケットを送信すべきネクストホップである」との結果であれば、当該マルチキャストツリー生成用パケットを受け取った各スーパーノードは、自身の隣接スーパーノード群にそのパケット（マルチキャストツリー生成用パケット）を転送すると共に、当該マルチキャストツリー生成用パケットを、どのスーパーノードから受信し、どのスーパーノード（群）へ転送したか、という情報（「ツリー生成情報」）を、コンテンツのマルチキャスト配信元であるスーパーノードのマルチキャストツリー生成部１ｇに通知する。
【００５９】
尚、本例では、マルチキャストツリー生成用パケットの通知先をコンテンツのマルチキャスト配信元であるスーパーノードとしたが、マルチキャスト配信元スーパーノード以外に、別途マルチキャストツリー情報を管理するノードを設けて、そこに通知することでも良い。
【００６０】
もし、既に他のスーパーノードから受信済みのマルチキャストツリー生成用パケットを受け取った場合は、当該マルチキャストツリー生成用パケットの転送は打ち切る。
【００６１】
そして、マルチキャスト配信元スーパーノードのマルチキャストツリー生成部１ｇに対して、全てのスーパーノードからツリー生成情報が集まったならば、当該マルチキャストツリー生成部１ｇは、そのツリー生成情報を基に、当該マルチキャストツリー生成パケットが流れた経路を復元し、それを最適なマルチキャストツリーとして構成する。
【００６２】
尚、本例では、スーパーノード層（４１）を構成する全部のスーパーノードを対象にマルチキャストツリーを構成しているが、もし、当該コンテンツのマルチキャスト配信に参加するスーパーノードが一部であれば、当該マルチキャスト配信に参加するスーパーノードが、マルチキャスト配信元スーパーノードのマルチキャストツリー生成部１ｇに対して、参加の旨を通知し、通知を受けたマルチキャストツリー生成部１ｇは、参加するスーパーノードのみを対象にマルチキャストツリーを構成し、各参加スーパーノードの子供管理テーブル保持部１ａに対して、自身の子スーパーノードが誰になるかを示す子供リスト情報を通知する。
【００６３】
マルチキャストツリー生成部１ｇからの通知を受け取った各参加スーパーノードは、自身の子供管理テーブル保持部１ａにより、自身の子供管理テーブルに、受け取った子供リスト情報をエントリする。
【００６４】
以上の手順が、マルチキャスト配信を開始する時点に最初に行われる動作である。
【００６５】
それ以降に、あるスーパーノードが新規にマルチキャスト配信ネットワークに参加する場合、該当する新スーパーノードは、隣接ノード決定部１ｃにより、当該マルチキャスト配信ネットワークの中で最も近いスーパーノードを探索し、この最近傍スーパーノードを親として選択し、選択した親スーパーノードに対して「ｃｏｎｎｅｃｔメッセージ」を転送する。
【００６６】
ここで、該マルチキャスト配信ネットワークに参加しているスーパーノードの所在アドレスは、当該コンテンツのマルチキャスト配信元であるスーパーノードのマルチキャストツリー生成部１ｇにおいて管理されているので、新スーパーノードの隣接ノード決定部１ｃは、当該配信元スーパーノードのマルチキャストツリー生成部１ｇから取得する。
【００６７】
新スーパーノードからの「ｃｏｎｎｅｃｔメッセージ」の転送を受けた親スーパーノードは、子供管理テーブル保持部１ａにより、自身の子供（達）のアドレスを管理する子供管理テーブルに、新スーパーノードのアドレスを追加すると共に、自身の子が追加された旨を、当該マルチキャスト配信元のスーパーノードのマルチキャストツリー生成部１ｇに対して通知する。
【００６８】
親スーパーノードからの、子の追加報告を受け取った当該マルチキャスト配信元のスーパーノードは、マルチキャストツリー生成部１ｇにより、当該マルチキャストツリーを更新する。
【００６９】
一方、新スーパーノードは、先祖リスト管理部１ｆにより、当該コンテンツのマルチキャスト配信元スーパーノードにアクセスし、当該配信元スーパーノードのマルチキャストツリー生成部１ｇに依頼して、当該配信元スーパーノードから自身の親（スーパーノード）までの先祖を記した先祖リストを取得し、図示していない記憶装置に記憶し保管する。
【００７０】
また、スーパーノードがマルチキャスト配信ネットワークを離脱する場合には、該当する離脱スーパーノードは、離脱を要求するための「ｄｉｓｃｏｎｎｅｃｔメッセージ」を親スーパーノードに送出する。
【００７１】
「ｄｉｓｃｏｎｎｅｃｔメッセージ」を受け取った親スーパーノードは、子供管理テーブル保持部１ａにより、離脱するスーパーノードの情報を、自身の子供管理テーブルから削除する。
【００７２】
その後、親スーパーノードは、離脱するスーパーノードの情報を、当該コンテンツのマルチキャスト配信元スーパーノードのマルチキャストツリー生成部１ｇに通知し、それを受け取った配信元スーパーノードは、マルチキャストツリー生成部１ｇにより、当該コンテンツに関するマルチキャストツリーを、離脱したスーパーノードを削除した内容で更新する。
【００７３】
この際、もし離脱スーパーノードに子供（達）がいる場合、離脱スーパーノードは、子供（達）（仮にスーパーノードＣＤとする）に対して、当該マルチキャスト配信から離脱する旨を示す情報を通知し、この離脱を通知されたスーパーノードＣＤは、祖先リスト管理部１ｆにより、自身の先祖リストをチェックしてこの離脱に対して対応する。
【００７４】
具体的には、先祖リストの中から、最近傍の先祖スーパーノードを探索し、その先祖スーパーノードに対して、その先祖スーパーノードの子供管理テーブル保持部１ａで保持・管理している子供管理テーブルに属する子供（達）の情報を提供するよう依頼する。
【００７５】
そして、スーパーノードＣＤは、提供を受けた先祖と子供（達）の中から、最近傍にいるスーパーノードを探索し、それを新たな親スーパーノードとして選択し、祖先リスト管理部１ｆにより自身の先祖リストを更新すると共に、選択した新たな親スーパーノードに対して、上述の参加を要求する「ｃｏｎｎｅｃｔメッセージ」を送出する。
【００７６】
「ｃｏｎｎｅｃｔメッセージ」を受信した、新たな親スーパーノードは、子供管理テーブル保持部１ａにより、自身の子供管理テーブルにスーパーノードＣＤを追加すると共に、自身の子が追加された旨を、当該コンテンツの配信元スーパーノードに通知し、それを受け取った当該配信元スーパーノードは、マルチキャストツリー生成部１ｇにより、当該マルチキャストツリーを更新する。
【００７７】
このような離脱時の処理動作を、図３の具体例を用いて、以下に説明する。図３においては、スーパーノード（Ｌｏｎｄｏｎ＿ＵＫ）３６をコンテンツのマルチキャスト配信元ノードとし、それを起点に、スーパーノード（Ａｍｓ＿ＮＬ）３５、スーパーノード（Hａｇｕｅ＿ＮＬ）３３、スーパーノード（Ｄｅｌｆｔ＿ＮＬ）３２がマルチキャスト配信に参加し、マルチキャストツリーに含まれているものとする。
【００７８】
ここで、スーパーノード（Hａｇｕｅ＿ＮＬ）３３が、当該コンテンツのマルチキャスト配信から離脱する場合を例にその動作を説明する。
【００７９】
離脱するスーパーノード（Hａｇｕｅ＿ＮＬ）３３は、先祖リスト管理部１ｆにより、先祖リストを参照して当該マルチキャスト配信の親スーパーノード（Ａｍｓ＿ＮＬ）３５を特定すると共に、子供管理テーブル保持部１ａにより子供管理テーブルを参照して当該マルチキャスト配信に参加している子スーパーノード（Ｄｅｌｆｔ＿ＮＬ）３２を特定し、離脱処理部１ｋにより、特定した親スーパーノード（Ａｍｓ＿ＮＬ）３５に対して、当該マルチキャスト配信からの離脱を要求する「ｄｉｓｃｏｎｎｅｃｔメッセージ」を送出し、特定した子スーパーノード（Ｄｅｌｆｔ＿ＮＬ）３２に対して、当該マルチキャスト配信から離脱する旨を示す離脱報告情報を送出する。
【００８０】
スーパーノード（Hａｇｕｅ＿ＮＬ）３３からの「ｄｉｓｃｏｎｎｅｃｔメッセージ」を受信した親スーパーノード（Ａｍｓ＿ＮＬ）３５は、子供管理テーブル保持部１ａにより、子供管理テーブルにおける当該スーパーノード（Hａｇｕｅ＿ＮＬ）３３の情報を削除すると共に、先祖リスト管理部１ｆにより、当該マルチキャスト配信元のスーパーノード（Ｌｏｎｄｏｎ＿ＵＫ）３６に対して、スーパーノード（Hａｇｕｅ＿ＮＬ）３３の離脱を通知する。
【００８１】
スーパーノード（Ａｍｓ＿ＮＬ）３５から、スーパーノード（Hａｇｕｅ＿ＮＬ）３３の離脱通知を受けた当該マルチキャスト配信元のスーパーノード（Ｌｏｎｄｏｎ＿ＵＫ）３６は、マルチキャストツリー生成部１ｇにより、当該マルチキャストツリーを更新する。
【００８２】
また、スーパーノード（Hａｇｕｅ＿ＮＬ）３３からの離脱報告情報を受信した子スーパーノードであるスーパーノード（Ｄｅｌｆｔ＿ＮＬ）３２は、先祖リスト管理部１ｆにより、先祖リストを参照して通信距離が最も近い最近傍親スーパーノード（ここでは、スーパーノード（Ａｍｓ＿ＮＬ）３５とする）を抽出し、離脱処理部１ｋにより、抽出したスーパーノード（Ａｍｓ＿ＮＬ）３５に問い合わせて、このスーパーノード（Ａｍｓ＿ＮＬ）３５の子供管理テーブル保持部１ａが子供管理テーブルで管理している当該マルチキャスト配信に参加している各子スーパーノードの情報を取得する。
【００８３】
そして、スーパーノード（Ｄｅｌｆｔ＿ＮＬ）３２は、隣接ノード決定部１ｃにより、スーパーノード（Ａｍｓ＿ＮＬ）３５から取得した各子スーパーノードのうちで通信距離が最も近い最近傍子スーパーノード（ここではスーパーノード（Ｒｏｔｔｅｒｄａｏｍ＿ＮＬ）３４）を抽出し、抽出した最近傍子スーパーノードであるスーパーノード（Ｒｏｔｔｅｒｄａｏｍ＿ＮＬ）３４もしくは問い合わせたスーパーノード（Ａｍｓ＿ＮＬ）３５のいずれか近い方を、離脱したスーパーノード（Hａｇｕｅ＿ＮＬ）３３に替わる新たな親スーパーノードとして選択し、先祖リスト管理部１ｆにより、先祖リストを更新すると共に、参加処理部１ｊにより、新たに親スーパーノードとして選択したスーパーノード（Ｒｏｔｔｅｒｄａｏｍ＿ＮＬ）３４に対して、参加を要求する「ｃｏｎｎｅｃｔメッセージ」を送出する。
【００８４】
次に、図２における一般ノード２０の処理動作について説明する。
【００８５】
一般ノード２０は、オーバーレイネットワークへの参加時、スーパーノード選択部２１により、最も距離の近いスーパーノードを探索して特定し、特定した最近傍スーパーノードを、自身の属するスーパーノードとして選択して、その旨を当該スーパーノードの一般ノード管理部１ｅに通知する。
【００８６】
一般ノード管理部１ｅを介して通知を受け取った当該スーパーノードは、子供管理テーブル保持部１ａにより、通知元の一般ノード２０の情報を子供管理テーブルに登録する。
【００８７】
また、一般ノード２０は、マルチキャスト配信に参加する場合には、マルチキャスト配信ネットワーク参加・離脱決定部２２により、自身の属するスーパーノードの一般ノード管理部１ｅに対して、参加の旨を通知する。
【００８８】
一般ノード管理部１ｅを介してマルチキャスト配信の参加通知を受け取ったスーパーノードは、当該マルチキャスト配信に参加すると共に、子供管理テーブル保持部１ａにより、参加通知元の一般ノード２０を子として子供管理テーブルに追加する。
【００８９】
また、一般ノード２０は、マルチキャスト配信から離脱する場合には、マルチキャスト配信ネットワーク参加・離脱決定部２２により、自身の属するスーパーノードの一般ノード管理部１ｅに対して、離脱の旨を通知する。
【００９０】
一般ノード管理部１ｅを介してマルチキャスト配信からの離脱通知を受け取ったスーパーノードは、当該マルチキャスト配信から離脱すると共に、子供管理テーブル保持部１ａにより、離脱通知元の一般ノード２０の情報を子供管理テーブルから削除する。
【００９１】
尚、本例では、参加スーパーノードの故障や離脱を検出するために、全ての親としてのスーパーノード１は、定期更新処理部１ｍにより、定期的に、障害監視用のａｌｉｖｅメッセージを、マルチキャストツリーにおいて子となるスーパーノードに対して送出し、ａｌｉｖｅメッセージに対する子スーパーノードからのレスポンスが、予め定めたタイムアウト時間を経過してもなければ、当該子スーパーノードの故障と判断し、マルチキャスト配信から離脱する場合の処理を行う。
【００９２】
また、マルチキャスト配信元のスーパーノード１は、マルチキャストツリー生成部１ｇにより、マルチキャスト配信ネットワークにおいて、ノードの参加・離脱に伴って発生するｃｏｎｎｅｃｔメッセージもしくはｄｉｓｃｏｎｎｅｃｔメッセージが発生した回数をカウントしておき、カウント値が予め定められた閾値を超えた場合、当該マルチキャストツリーを形成し直す。
【００９３】
このような本例によるオーバーレイマルチキャスト配信ネットワークの構成処理例を、図５に示す。図５において、各オーバーレイノードは、自身がスーパーノードと一般ノードのいずれになるかを決定し（ステップＳ５０１）、スーパーノードとなった場合には（ステップＳ５０２）、各隣接スーパーノード間で論理的な接続を行いスーパーノード層を形成し（ステップＳ５０３）、マルチキャストツリーを生成する（ステップＳ５０４）。一般ノードとなった場合には（ステップＳ５０２）、最近傍のスーパーノードとの論理的な接続を行い当該スーパーノードに所属し、一般ノード層を形成する（ステップＳ５０５）。
【００９４】
以上、図１〜図５を用いて説明したように、本例では、インターネット等のＩＰネットワーク上に、マルチキャスト配信を行うオーバーレイネットワークを形成する際、図１に示すスーパーノード１および図２に示す一般ノード２０の、コンピュータ処理手段構成とすることにより、オーバーレイネットワークをスーパーノード層と一般ノード層の２層で構成し、かつ、スーパーノード層においてマルチキャスト配信用のネットワークを構成する。
【００９５】
すなわち、図１のスーパーノード１と図２の一般ノード２０により、マルチキャスト配信を行うオーバーレイネットワークを形成する際、オーバーレイネットワークを構成するオーバーレイノードの内、予め定められた条件で選定されたノードをスーパーノード１とし、条件に合わないノードを一般ノード２０とする。
【００９６】
スーパーノード１は、隣接ノード決定部１ｃにより、論理的に接続する１以上の隣接スーパーノードを決定し、決定した隣接スーパーノード間で論理的な接続を行いスーパーノード層を形成する。
【００９７】
一般ノード２０は、スーパーノード選択部２１により、スーパーノード（１）のいずれか一つを選択して論理的に接続し一般ノード層を形成する。
【００９８】
また、スーパーノード１は、マルチキャストツリー生成部１ｇにより、スーパーノード層におけるマルチキャスト情報の配信経路を示すマルチキャストツリーを、当該マルチキャスト情報の配信元ノードをルートとして形成する。
【００９９】
また、一般ノード２０は、スーパーノード選択部２１により、ＲＴＴを含む通信距離取得手順のいずれかを実行して、自身からの通信距離が最も近いスーパーノードを特定し、特定したスーパーノードを、論理的に接続するスーパーノードとして選択する。
【０１００】
また、スーパーノード１は、隣接ノード決定部１ｃにより、予め記憶装置に記憶した自身の２次元の座標位置情報を読み出し、自身を中心に２次元空間を角度θ＝π／３で空間を６つのセクターに分割し、セクターｊ（ｊ＝１〜６）の空間に位置する他のスーパーノードから当該スーパーノードの２次元の座標位置情報を取得し、最も座標位置が近いスーパーノードを、当該セクタｊにおける隣接スーパーノードとして特定し、特定した隣接スーパーノードと論理的に接続する。
【０１０１】
また、スーパーノード１は、マルチキャストツリー生成部１ｇにより、自身のスーパーノード１から、１以上の他のスーパーノードを経由して当該マルチキャスト情報の配信元のスーパーノードに到達する転送経路のうち、経由ホップ数が最小となる転送経路を最適経路として特定する手順、もしくは、自身のスーパーノードと当該マルチキャスト情報の配信元のスーパーノード間のＲＴＴが最小となる転送経路を最適経路として特定する手順を含む複数の最適経路特定手順のいずれかを実行し、マルチキャスト情報の配信元のスーパーノードから自身のスーパーノードまでの転送経路が最適となるようにマルチキャストツリーを構成する。
【０１０２】
また、スーパーノード１は、新規にマルチキャスト配信に参加する場合、参加処理部１ｊにより、当該マルチキャスト情報の配信元のスーパーノードに問い合わせて、当該マルチキャスト配信に既に参加している各スーパーノードを特定し、隣接ノード決定部１ｃにより、特定した各スーパーノードの中で最も通信距離が近いスーパーノードを親スーパーノードとして抽出し、参加処理部１ｊにより、抽出した親スーパーノードに対して、参加を要求するｃｏｎｎｅｃｔメッセージを転送し、先祖リスト管理部１ｆにより、当該マルチキャスト情報の配信元のスーパーノードに問い合わせて、当該配信元スーパーノードをルートとするマルチキャストツリーにおける当該配信元スーパーノードから親スーパーノードまでの経路を示す先祖リストを取得して記憶装置に記憶する。そして、ｃｏｎｎｅｃｔメッセージを受信した親スーパーノード１は、子供管理テーブル保持部１ａにより、マルチキャストツリーにおいて子となるスーパーノードのアドレスを管理する子供管理テーブルに、新スーパーノードのアドレスを追加すると共に、新スーパーノードのアドレスを追加した旨を示す追加報告情報を、当該マルチキャスト情報の配信元のスーパーノード（１）のマルチキャストツリー生成部（１ｇ）に対して通知し、この追加報告情報を受信したマルチキャスト情報の配信元のスーパーノード（１）は、マルチキャストツリー生成部１ｇにより、当該マルチキャストツリーを更新する。
【０１０３】
また、スーパーノード１は、マルチキャスト配信から離脱する場合、先祖リスト管理部１ｆにより先祖リストを参照して当該マルチキャスト配信の親スーパーノードを特定すると共に、子供管理テーブル保持部１ａにより子供管理テーブルを参照して当該マルチキャスト配信に参加している子スーパーノードを特定し、離脱処理部１ｋにより、特定した親スーパーノード（１）に対して、当該マルチキャスト配信からの離脱を要求するｄｉｓｃｏｎｎｅｃｔメッセージを送出し、特定した子スーパーノード（１）に対して、当該マルチキャスト配信から離脱する旨を示す離脱報告情報を送出する。ｄｉｓｃｏｎｎｅｃｔメッセージを受信した親スーパーノード（１）は、子供管理テーブル保持部１ａにより、子供管理テーブルにおける当該離脱スーパーノードの情報を削除すると共に、先祖リスト管理部１ｆにより、当該マルチキャスト配信元のスーパーノード（１）に対して離脱スーパーノードの離脱を通知し、親スーパーノードからの離脱スーパーノードの離脱通知を受けたマルチキャスト配信元のスーパーノード（１）は、マルチキャストツリー生成部１ｇにより、当該マルチキャストツリーを更新し、親スーパーノードからの離脱報告情報を受信した子スーパーノード（１）は、先祖リスト管理部１ｆにより、先祖リストを参照して通信距離が最も近い最近傍親スーパーノードを抽出し、離脱処理部１ｋにより、抽出した最近傍親スーパーノードに問い合わせて、最近傍親スーパーノードの子供管理テーブル保持部１ａが子供管理テーブルで管理している当該マルチキャスト配信に参加している各子スーパーノードを特定し、隣接ノード決定部１ｃにより、特定した各子スーパーノードから通信距離が最も近い最近傍子スーパーノードを抽出し、抽出した最近傍子スーパーノードもしくは問い合わせた最近傍親スーパーノードのいずれか近い方を、離脱スーパーノードに替わる新たな親スーパーノードとして選択し、先祖リスト管理部１ｆにより、先祖リストにおいて、離脱スーパーノードに替えて新たに選択した親スーパーノードを管理すると共に、新たに選択した親スーパーノード（１）に対して、参加を要求するｃｏｎｎｅｃｔメッセージを送出する。
【０１０４】
また、スーパーノード１は、マルチキャストツリー生成部１ｇにより、ｃｏｎｎｅｃｔメッセージもしくはｄｉｓｃｏｎｎｅｃｔメッセージが発生した回数をカウントし、カウント値が予め定められた閾値を超えた場合、当該マルチキャストツリーを形成し直す。
【０１０５】
また、一般ノード２０は、マルチキャスト配信に参加もしくはマルチキャスト配信から離脱する場合、マルチキャスト配信ネットワーク参加・離脱決定部２２により、論理的に接続したスーパーノードに対して、当該マルチキャスト配信への参加を要求する参加要求情報もしくは当該マルチキャスト配信からの離脱を要求する離脱要求情報を通知する。そして、スーパーノード１は、参加要求情報を受け取った場合には、新規にマルチキャスト配信に参加する場合の処理を行うと共に、子供管理テーブル保持部１ａにより、一般ノード２０を子として子供管理テーブルに追加し、また、離脱要求情報を受け取った場合には、マルチキャスト配信から離脱する場合の処理を行うと共に、子供管理テーブル保持部１ａにより、一般ノード２０を子供管理テーブルから削除する。
【０１０６】
また、スーパーノード１は、定期更新処理部１ｍにより、定期的に、障害監視用のａｌｉｖｅメッセージを、マルチキャストツリーにおいて子となるスーパーノードに対して送出し、ａｌｉｖｅメッセージに対する子スーパーノードからのレスポンスが、予め定めたタイムアウト時間を経過してもなければ、当該子スーパーノードの故障と判断し、マルチキャスト配信から離脱する場合の処理を行う。
【０１０７】
また、スーパーノード１は、マルチキャストツリー生成部１ｇにより、マルチキャスト配信対象のコンテンツ毎に、マルチキャストツリーの形成手順を実行する。
【０１０８】
このように、本例では、オーバーレイネットワークを用いて、ＱｏＳ・対障害性を考慮したマルチキャスト配信ネットワークをスケーラブルに実現することができ、例えばインターネットにおけるストリーミング情報等のマルチキャスト配信を効率的に行うことが可能となる。
【０１０９】
尚、本発明は、図１〜図５を用いて説明した例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。例えば、図１，図２の例では、スーパーノード１、一般ノード２０のそれぞれが、プログラムされたコンピュータ処理を実行する手段として、別々の手段を具備した構成としているが、実際には、スーパーノード１、一般ノード２０のいずれも同じ手段を具備した構成であり、オーバーレイネットワークにおいてスーパーノードと一般ノードのいずれとして機能するかにより、起動する手段を変更することで良い。
【０１１０】
また、本例のコンピュータ構成例に関しても、キーボードや光ディスクの駆動装置の無いコンピュータ構成としても良い。また、本例では、光ディスクを記録媒体として用いているが、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）等を記録媒体として用いることでも良い。また、プログラムのインストールに関しても、通信装置を介してネットワーク経由でプログラムをダウンロードしてインストールすることでも良い。
【図面の簡単な説明】
【０１１１】
【図１】本発明に係るオーバーレイネットワークにおけるスーパーノード層を構成するスーパーノードの機能構成例を示すブロック図である。
【図２】本発明に係るオーバーレイネットワークにおける一般ノード層を構成する一般ノードの機能構成例を示すブロック図である。
【図３】図１におけるスーパーノードによるマルチキャスト配信木の構成手順を示す説明図である。
【図４】本発明に係るオーバーレイネットワークの構成例を示す説明図である。
【図５】本発明に係るオーバーレイネットワークの構成手順例を示すフローチャートである。
【図６】オーバーレイネットワークによるＱｏＳ管理の基本的な概念を説明する説明図である。
【符号の説明】
【０１１２】
１：スーパーノード、１ａ：子供管理テーブル保持部、１ｂ：距離管理部、１ｃ：隣接ノード決定部、１ｄ：ＲＰＦチェック部、１ｅ：一般ノード管理部、１ｆ：先祖リスト管理部、１ｇ：マルチキャストツリー生成部、１ｈ：経路表管理部、１ｉ：パケット転送部、１ｊ：参加処理部、１ｋ：離脱処理部、１ｍ：定期更新処理部、２０：一般ノード、２１：スーパーノード選択部、２２：マルチキャスト配信ネットワーク参加・離脱決定部、２３：パケット転送部、３１：一般ノード（Ｒｉｊｓｗｉｊｋ．ＮＬ）、３２：スーパーノード（Ｄｅｌｆｔ，ＮＬ）、３３：スーパーノード（Ｔｈｅ  Ｈａｇｕｅ，ＮＬ）、３４：スーパーノード（Ｒｏｔｔｅｒｄａｍ．ＮＬ）、３５：スーパーノード（Ａｍｓ，ＮＬ）、３６：スーパーノード（Ｌｏｎｄｏｎ，ＵＫ）、３７：スーパーノード（Ｕｔｒｅｃｈｔ，ＮＬ）、３８：スーパーノード（Ｏｘｆｏｒｄ，ＵＫ）、３９：スーパーノード（Ｃａｍｂｒｉｄｇｅ，ＵＫ）、４１：スーパーノード層、４２：一般ノード層。
【図１】
0004863973.tif 000002
【図２】
0004863973.tif 000003
【図３】
0004863973.tif 000004
【図４】
0004863973.tif 000005
【図５】
0004863973.tif 000006
【図６】
0004863973.tif 000007