(57)【要約】【課題】 アプリケーション層におけるストリームデータの配布経路を効率的かつ自動的に生成することが課題である。【解決手段】 マスタサーバ３１は、２つの再配信サーバ３２の間の経路コストをすべての再配信サーバ３２の組み合わせについて収集し、そのコスト情報をもとに、ソース１１からクライアント１３に至る配布経路ツリーを自動的に構成する。【選択図】図２
2007068221.tif 000002
【特許請求の範囲】
【請求項１】
ストリームデータを配布するための通信ネットワークにおける、アプリケーション層のストリームデータ配布経路生成装置であって、
前記通信ネットワークのノード間のホップ数および遅延時間から推測される帯域から決定される通信コストに関する情報を収集する収集手段と、
前記通信ネットワーク上の複数のクライアントに、ソースから発信されたストリームデータを配布するとき、該ソースから該複数のクライアントに至る配布経路を表す配布経路情報を、前記通信コストに関する情報に基づいて、自動的に生成する生成手段と、
前記配布経路情報を出力する出力手段と、
を備えることを特徴とする配布経路生成装置。
【請求項２】
前記生成手段は、前記ソースから転送先ノードまでの通信コストが最小になるように、該転送先ノードを選択することで、前記配布経路情報を生成することを特徴とする請求項１記載の配布経路生成装置。
【請求項３】
前記生成手段は、生成中の配布経路上の各ノードから転送先ノードまでの通信コストが最小になるように、該転送先ノードを選択することで、前記配布経路情報を生成することを特徴とする請求項１記載の配布経路生成装置。
【請求項４】
前記生成手段は、ノード群を複数のグループに分割し、前記ソースが属するグループを起点とするグループ間の配布経路情報を生成し、該ソースが属するグループ内において、該ソースを起点とする、グループ内の配布経路情報を生成し、その他のグループ内において、グループ間の配布経路の入力枝端となるノードを起点とする、グループ内の配布経路情報を生成することを特徴とする請求項１記載の配布経路生成装置。
【請求項５】
前記通信コストの測定範囲を限定する限定手段をさらに備えることを特徴とする請求項１記載の配布経路生成装置。
【請求項６】
データパケットおよび制御用パケットのうち少なくとも一方の情報に基づいて、ネットワーク状況の変化を検出する検出手段をさらに備え、前記収集手段は、該ネットワーク状況の変化を契機として、前記通信コストに関する情報を収集することを特徴とする請求項１記載の配布経路生成装置。
【請求項７】
ストリームデータを配布するための通信ネットワークにおける、アプリケーション層のストリームデータ配布経路を生成するコンピュータのためのプログラムを記録した記録媒体であって、該プログラムは、
前記通信ネットワークのノード間のホップ数および遅延時間から推測される帯域から決定される通信コストに関する情報を収集し、
前記通信ネットワーク上の複数のクライアントに、ソースから発信されたストリームデータを配布するとき、該ソースから該複数のクライアントに至る配布経路を表す配布経路情報を、前記通信コストに関する情報に基づいて、自動的に生成する処理を前記コンピュータに実行させるプログラムを記録したコンピュータ読取可能な記録媒体。
【請求項８】
ストリームデータを配布するための通信ネットワークにおける、アプリケーション層のストリームデータ配布経路を生成するための方法であって、
前記通信ネットワークのノード間のホップ数および遅延時間から推測される帯域から決定されるノード間の通信コストに関する情報を収集し、
前記通信ネットワーク上の複数のクライアントに、ソースから発信されたストリームデータを配布するとき、該ソースから該複数のクライアントに至る配布経路を表す配布経路情報を、前記通信コストに関する情報に基づいて、自動的に生成する
ことを特徴とする配布経路生成方法。
【請求項９】
前記配布経路情報を、前記配布経路に沿って、上流ノードから下流ノードに配布することを特徴とする請求項８記載の配布経路生成方法。
【請求項１０】
ストリームデータを配布するための通信ネットワークにおける、アプリケーション層のストリームデータ配布経路を生成するためのプログラムであって、
前記通信ネットワークのノード間のホップ数および遅延時間から推測される帯域から決定される通信コストに関する情報を収集し、
前記通信ネットワーク上の複数のクライアントに、ソースから発信されたストリームデータを配布するとき、該ソースから該複数のクライアントに至る配布経路を表す配布経路情報を、前記通信コストに関する情報に基づいて、自動的に生成する
処理をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク上の複数のユーザが、同じ動画や音声等のマルチメディアデータ（ストリームデータ）を受信する場合に、データの配布経路を自動的に生成する装置および方法に関する。
【背景技術】
【０００２】
現在のインターネットやイントラネットでは、図２４に示すように、複数のクライアント１３が同じストリームデータを受信しようとしたとき、多くの場合、データのソース１１がクライアント１３の数だけデータをコピーして送信する（ユニキャストする）。このとき、ソース１１から送信されたデータは、ルータ１２を介してクライアント１３に転送される。
【０００３】
この場合、同じデータが何回も同じネットワーク上を流れることになり、ネットワークが混雑して、ストリームデータの遅延や廃棄が生じる。このため、クライアントがストリームデータを快適に受信できないことがある。
【０００４】
このような問題を解決し、複数のクライアントへデータを配布する（マルチキャストする）従来技術として、ネットワーク層のマルチキャストとアプリケーション層のマルチキャストがある。
【０００５】
ネットワーク層のマルチキャストとしては、ＩＰ（internet protocol ）マルチキャストが一般的である。ＩＰマルチキャストでは、特定のホストグループに割り当てられたマルチキャストアドレスに対してソースがデータを送信するとき、ネットワーク上のルータが、ソースからクライアントまでの配布ツリーを自動的に作成し、必要に応じてデータを分岐する。これにより、複数の同じデータが同じネットワーク上を流れるのを防ぐことができる。
【０００６】
しかし、ＩＰマルチキャストを使用するためには、ソースからクライアントに至る経路上のルータのネットワーク層を変更して、ＩＰマルチキャスト機能を組み込む必要がある。また、誰かが誤ってストリームデータをマルチキャストした場合、ユニキャストと異なり、ネットワーク全体にデータが広がるため、他のデータトラフィックを圧迫する可能性がある。
【０００７】
このように、ネットワーク層の変更が必要なこと、マルチキャストアドレスやストリームデータの管理方法が確立していないこと等が問題となり、ＩＰマルチキャストは多くのドメインで導入されていないのが現状である。
【０００８】
これに対して、アプリケーション層のマルチキャストは、ホスト間に配布ツリーを作成し、データをコピーして分岐するためのアプリケーション（再配信サーバ）をツリーの分岐点に設置することで、効率的にデータを配布する方法である。このように、アプリケーションによってデータ配布を行うため、ルータのネットワーク層の変更（ＩＰマルチキャストの組み込み）を必要とせず、ネットワーク層のマルチキャストよりも、ストリームデータの管理がしやすいという利点がある。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述した従来のアプリケーション層のマルチキャストには、次のような問題がある。
配布ツリーを手作業で作成するため、管理者がネットワーク全体の構成や状況を把握し、再配信サーバの配置等を適切に設定しなければならない。また、ツリーを自動構成できるアプリケーションを用いる場合でも、ルータの位置関係等、ネットワークの物理的構成が既知であることが前提条件となるため、やはり管理者による設定が必要である。
【００１０】
通常、イントラネットの基幹部分の管理者は、イントラネットの末端のネットワーク設定を行うことは不可能あるいは困難である。また、ネットワーク管理者とアプリケーション管理者が別人（別の部署）の場合は、マルチキャストのための設定を行うことがさらに困難となる。
【００１１】
本発明の課題は、アプリケーション層におけるストリームデータの配布経路を、ネットワーク管理者による煩雑な設定作業を必要とせずに、効率的かつ自動的に生成する装置および方法を提供することである。
【課題を解決するための手段】
【００１２】
図１は、本発明の配布経路生成装置の原理図である。図１の配布経路生成装置は、収集手段２１、生成手段２２、および出力手段２３を備える。収集手段２１は、通信ネットワークのノード間の通信コストに関する情報を収集する。生成手段２２は、通信ネットワーク上の複数のクライアントに、ソースから発信されたストリームデータを配布するとき、そのソースからそれらのクライアントに至る配布経路を表す配布経路情報を、通信コストに関する情報に基づいて、自動的に生成する。出力手段２３は、生成された配布経路情報を出力する。
【００１３】
通信ネットワークのノードは、ストリームソースや再配信サーバ等に対応し、ノード間の通信コストに関する情報は、ノード間のホップ数や遅延時間等に対応する。収集手段２１は、収集した情報を生成手段２２に渡し、生成手段２２は、受け取った情報に基づいてストリームデータの配布経路を決定し、配布経路情報を出力手段２３に渡す。出力手段２３は、受け取った配布経路情報を、その配布経路上のノード等に出力する。
【００１４】
このような配布経路生成装置によれば、収集された情報に基づいて自動的に配布経路情報が生成されるため、ネットワークの物理的構成に関する情報が得られない場合でも、配布経路を構成することができる。また、ネットワーク層の変更や管理者による設定作業を必要としないため、配布経路を効率的に構成することができる。尚、例えば、図１の収集手段２１、生成手段２２、および出力手段２３は、後述する図２のマスタサーバ３１に対応する。
【発明の効果】
【００１５】
本発明によれば、ネットワーク層の変更や管理者による煩雑な設定作業を必要とせずに、アプリケーション層におけるストリームデータの配布経路が効率的かつ自動的に構成される。したがって、同じストリームデータが複数本同じネットワーク上を流れることによって引き起こされるネットワークの輻輳を回避して、クライアントにストリームデータを供給することが可能となる。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照して、本発明の実施の形態について説明する。
本実施形態では、インターネットまたはイントラネット上の複数のクライアントに、動画や音声等のマルチメディアデータ（ストリームデータ）を配布する際に、データの分岐点に再配信サーバを設置する。再配信サーバは、アプリケーションプログラムまたは同等の機能を有するハードウェア回路に対応する。
【００１７】
そして、２つの再配信サーバ間の経路コストをすべての再配信サーバの組み合わせについて収集し、そのコスト情報をもとに、以下のような方法により、データ配布経路ツリーを自動構成する。
（ａ）ストリームデータの発信ノード（ソース）からのコストが最小になるよう、次の転送先の候補となる再配信サーバ（または再配信サーバグループ）を選択する。
（ｂ）作成中の配布経路上の各再配信サーバ（または再配信サーバグループ）からのコストが最小になるように、次の転送先の候補となる再配信サーバ（または再配信サーバグループ）を選択する。
【００１８】
これにより、ネットワーク層の変更や管理者による煩雑な設定作業を必要とせずに、ストリームデータの配布経路が効率的かつ自動的に構成される。したがって、同じストリームデータが複数本同じネットワーク上を流れることによって引き起こされるネットワークの輻輳を回避して、クライアントにストリームデータを供給することが可能となる。
【００１９】
また、経路上にコストが高い枝が存在する場合には、再配信サーバ群を高コストの枝を境界とする複数のグループに分割し、ソースが含まれるグループを起点とするグループ間の配布経路ツリーを、上述の方法（ａ）により構成する。さらに、各グループ内において、ソースを含むグループでは、ソースを起点とする配布経路ツリーを、その他のグループでは、グループ間経路ツリーの入力枝端となる再配信サーバを起点とする配布経路ツリーを、方法（ａ）により構成する。
【００２０】
次に、構成された配布経路ツリーの情報を、その経路ツリーに沿って、上流側再配信サーバから下流側再配信サーバへと伝達する。このとき、ある再配信サーバよりも上流側の配布経路ツリー情報は、その再配信サーバよりも下流側に伝達する必要がないので、その情報を削除することにより、より効率的に配布経路ツリーの情報を伝達する。
【００２１】
さらに、再配信サーバ間の経路コストを収集する際、以下のような方法によりコスト測定の範囲を限定することで、コスト測定に要する負荷を軽減することもできる。
（ａ）基幹接続ルータを指定し、そのルータを直近の基幹接続ルータとする再配信サーバを、コスト測定範囲とする。
（ｂ）ある再配信サーバの上流において制限ホップ数ｈ１内のルータを検出し、そのルータから制限ホップ数ｈ２内にある再配信サーバを、コスト測定範囲とする。制限ホップ数ｈ１、ｈ２を調整することにより、コスト測定範囲を適切に設定する。
【００２２】
図２は、このような再配信サーバによるストリーム配信システムの例を示している。図２の配信システムは、ストリームデータを送信するソース１１、データを転送するルータ１２、データを受信する複数のクライアント１３、ストリーム情報や経路コスト情報等を管理するマスタサーバ３１、およびデータのコピーおよび分岐を行う１つ以上の再配信サーバ３２から構成される。
【００２３】
マスタサーバ３１は、再配信サーバの中から選択してもよいし、専用のサーバとして設けてもよい。ソース１１またはクライアント１３が、再配信サーバ３２の持つ再配信機能を、併せ持つことも可能である。また、再配信サーバ３２は、ルータ１２内に設置することもでき、２つのルータ１２の間に配置することもできる。再配信サーバ３２は、アプリケーション層で動作し、ネットワーク層の変更は必要としない。
【００２４】
新規の再配信サーバ３２は、動作開始時に、マスタサーバ３１に対して登録を要請する。マスタサーバ３１は、再配信サーバ３２の登録を契機として、新規再配信サーバ３２と既存再配信サーバ３２の間の経路コストを収集し、経路コスト情報を更新する。
【００２５】
ソース１１は、ストリームデータの送信に先立ち、マスタサーバ３１に対して、ストリームを登録する。ストリームが登録されると、マスタサーバ３１は、ストリームのソース１１を起点とする配布経路ツリーを構成し、その配布経路に沿って、ストリーム−経路対応表を再配信サーバ３２に伝達する。
【００２６】
各再配信サーバ３２は、上流の再配信サーバ３２から受け取ったストリームデータを、ストリーム−経路対応表に従って、次の宛先（再配信サーバ３２またはクライアント１３）に配信する。
【００２７】
クライアント１３は、ストリームデータの受信に先立ち、最寄りの再配信サーバ３２に接続するか、または、マスタサーバ３１に対してデータ配布を要求する。マスタサーバ３１は、クライアント１３が接続すべき再配信サーバ３２を選択し、クライアント１３に通知する。クライアント１３は、その再配信サーバ３２に接続することにより、ストリームデータを受信する。
【００２８】
再配信サーバ間の経路コストは、それを収集するために発生するネットワーク負荷が小さく、かつ、配布経路ツリーの構成に有効な情報でなければならない。経路コストを決定する上で、ホップ数と帯域（遅延時間から推測される）はとても重要である。ホップ数からは大まかなネットワーク構成を知ることができ、さらに遅延時間を考慮することにより、極めて帯域の細い経路を除外することができるからである。そこで、ここではホップ数と遅延時間を用いて、以下の式により経路コストを算出する。
経路コスト＝
ホップ数＋α＊ｍａｘ（０，（遅延−β））＊ストリームレート／基準レート＋設定値
ホップ数は、測定対象のノード間でテストパケットを交換し、パケットヘッダのＴＴＬ（time to live）の変化を調べることで、取得できる。ＴＴＬは、パケットの生存時間に対応し、目的地までのルータの残数等により記述される。また、遅延時間は、テストパケットのＲＴＴ（round trip time ）を測定することで、取得できる。また、tracerouteコマンド等を用いて、パケットの通過ルートをトレースする方法もある。
【００２９】
また、ネットワークのボトルネックや有効帯域（使用できる可能性のある帯域）等を測定し、それをもとに経路コストを算出することも考えられる。ストリームレートは、配布ストリームのレート（速度）であり、基準レートは、通常想定しているストリームレートである。また、設定値は、管理者が設定する追加コストである。この値は、その経路に流れるストリームを制限したい場合等に設定され、通常は０である。
【００３０】
αおよびβは、遅延時間をホップ数に換算するための係数である。例えば、６４ｋｂｐｓのリンク（１５００ｂｙｔｅ流すのに約１９０ｍｓ）ではホップ数２０個分のコストを追加し、５００ｋｂｐｓ以上のリンク（１５００ｂｙｔｅ流すのに約２５ｍｓ）ではコストは加算しないという場合は、β＝２５、α＝２０／（１９０−２５）＝０．１２に設定される。
【００３１】
マスタサーバ３１は、必要に応じて、管理している再配信サーバ３２間の経路コストを収集する。収集手順は以下の通りである。
１．マスタサーバ３１は、各再配信サーバ３２に、測定対象となる再配信サーバ３２のＩＰアドレスを通知する。通知の際に、マスタサーバ３１が測定対象の再配信サーバ３２を絞り込むことも可能である。絞り込みの方法については後述する。
２．各再配信サーバ３２は、通知された測定対象の再配信サーバ３２との間のホップ数と遅延を検出する。このとき、ある程度大きなサイズのパケットを数回送出して、得られた遅延の平均を算出する。また、複数の既存再配信サーバ３２が、新規再配信サーバ３２に対する遅延測定を同時に行うと、測定パケットによって輻輳が生じる可能性があるため、パケットを送出する間隔にランダムな時間の揺らぎを持たせておく。
３．各再配信サーバ３２は、検出したホップ数と遅延の情報と、自ノードの負荷情報（ＣＰＵ（中央処理装置）負荷、メモリ使用量、配信ストリーム数等）を、マスタサーバ３１に通知する。
４．マスタサーバ３１は、各再配信サーバ３２から通知された情報をもとに、経路コスト情報を更新する。
【００３２】
マスタサーバ３１は、基本的に、新規再配信サーバ３２の登録時に経路コストを収集する。また、ルート変更や輻輳等のネットワーク状況の変化に対応するために、以下のような契機でも、経路コストを収集することができる。
（１）定期的に経路コストを収集する。
（２）ストリームのデータパケットやデータ制御用パケットの情報から、経路上のネットワーク状況の変化を検出したときに、経路コストを収集する。
【００３３】
（２）のタイミングの場合、例えば、ＲＴＰ（Real-time Transfer Protocol）パケットのようなデータパケットのＴＴＬや、ＲＴＣＰ（RTP Control Protocol）パケットのような制御用パケットのｔｉｍｅｓｔａｍｐ等を利用することができる。この場合、以下のような手順で、経路コストが収集される。
１．再配信サーバ３２が、データパケットのＴＴＬの変化や制御用パケットのｔｉｍｅｓｔａｍｐ等から、上流側再配信サーバとの間のネットワーク状況の変化を検出する。ＴＴＬの変化からは、ルート変更が検出され、ｔｉｍｅｓｔａｍｐの変化からは、ルート変更または輻湊の発生が検出される。
２．再配信サーバ３２は、マスタサーバ３１に経路コスト収集を要求する。
３．マスタサーバ３１は、上述の手順に従って、経路コストの収集を開始する。
【００３４】
次に、図３から図８までを参照しながら、経路コスト情報に基づく配布経路ツリー自動生成アルゴリズムについて説明する。このアルゴリズムにおいては、各再配信サーバ３２がネットワーク上のノードとして扱われ、ノードｉからノードｊにデータを配信する際の経路コストをＣ［ｉ，ｊ］とする。また、ノードｉからノードｊへの経路コストが測定されていない場合は、Ｃ［ｉ，ｊ］＝∞とする。
【００３５】
図３は、ソースからのコストに基づく配布経路ツリー生成処理のフローチャートである。まず、マスタサーバ３１は、ソース１１（ＳＲＣ）を、集合Ｓに入れ、その他のノードを集合Ｖに入れて、ｉ＝０とおく（ステップＳ１）。このとき、集合Ｖには、ノード０からノードｎ−１までのｎ個のノードが含まれているものとする。
【００３６】
次に、ソース１１からノードｉ（ｉ∈Ｖ）までの距離Ｄ［ｉ］を、ソース１１からノードｉまでのコストＣ［ＳＲＣ，ｉ］で初期化し、ノードｉの直前ノードＰ［ｉ］をＳＲＣに初期化して、ｉ＝ｉ＋１とおく（ステップＳ２）。そして、ｉをｎと比較し（ステップＳ３）、ｉ＜ｎであれば、ステップＳ２の処理を繰り返す。
【００３７】
ステップＳ３においてｉ≧ｎとなると、次に、集合Ｖの要素の中で、Ｄ［ｉ］が最も小さいノードを探し、それをノードｖとする（ステップＳ４）。次に、ノードｖを集合Ｖから取り出して集合Ｓに加え、ｉ＝０とおく（ステップＳ５）。そして、Ｄ［ｉ］とＤ［ｖ］＋Ｃ［ｖ，ｉ］を比較する（ステップＳ６）。
【００３８】
Ｄ［ｉ］がＤ［ｖ］＋Ｃ［ｖ，ｉ］以上であれば、Ｄ［ｉ］＝Ｄ［ｖ］＋Ｃ［ｖ，ｉ］、Ｐ［ｉ］＝ｖとおき（ステップＳ７）、ｉ＝ｉ＋１とおく（ステップＳ８）。そして、ｉをｎと比較し（ステップＳ９）、ｉ＜ｎであれば、ステップＳ６以降の処理を繰り返す。また、ステップＳ６において、Ｄ［ｉ］がＤ［ｖ］＋Ｃ［ｖ，ｉ］より小さければ、ステップＳ８以降の処理を行う。
【００３９】
ステップＳ９においてｉ≧ｎとなると、次に、集合Ｖが空か否かをチェックし（ステップＳ１０）、集合Ｖが空でなければ、ステップＳ４以降の処理を繰り返す。そして、ステップＳ１０において集合Ｖが空になると、配布経路ツリーを生成して（ステップＳ１１）、処理を終了する。
【００４０】
ところで、ネットワーク資源や各再配信サーバ３２のＣＰＵやメモリ等の資源を有効利用するという観点から見ると、再配信サーバ３２を経由する場合としない場合のコストが同じならば、再配信サーバ３２を経由するように経路を構成する方が望ましい。
【００４１】
そこで、図３の処理を変更して、経由可能な再配信サーバ３２がある場合には、なるべくそれを経由するようにノードを選択することが考えられる。この場合、再配信サーバ３２を経由する経路のコストから一定値を差し引いて、その経路のコストを低く設定する。
【００４２】
具体的には、管理方針等により任意に設定される０以上の値をｃとして、マスタサーバ３１は、ステップＳ６において、Ｄ［ｉ］とＤ［ｖ］＋Ｃ［ｖ，ｉ］−ｃを比較する。そして、Ｄ［ｉ］がＤ［ｖ］＋Ｃ［ｖ，ｉ］−ｃ以上であれば、ステップＳ７以降の処理を行い、Ｄ［ｉ］がＤ［ｖ］＋Ｃ［ｖ，ｉ］−ｃより小さければ、ステップＳ８以降の処理を行う。ｃの値を適切に調整することにより、ノードｖを経由する経路が選択される可能性が高くなる。また、ｃ＝０の場合は、図３の処理と同じである。
【００４３】
図４は、図３のステップＳ１１におけるツリー生成処理のフローチャートである。マスタサーバ３１は、検索開始ノードｐ＿ｎｏｄｅをＳＲＣとおいて（ステップＳ２１）、次ノード検索処理を行う（ステップＳ２２）。
【００４４】
図５は、図４のステップＳ２２における次ノード検索処理のフローチャートである。この処理では、Ｐ［ｉ］を用いてノードをたどることにより、配布経路ツリーが生成される。まず、マスタサーバ３１は、ｉ＝０とおき（ステップＳ３１）、Ｐ［ｉ］とｐ＿ｎｏｄｅを比較する（ステップＳ３２）。そして、Ｐ［ｉ］とｐ＿ｎｏｄｅが一致すれば、ノードｉをｐ＿ｎｏｄｅの次ノードとして記憶し、ｐ＿ｎｏｄｅをノードｉの直前ノードとして記憶する（ステップＳ３３）。
【００４５】
次に、ｐ＿ｎｏｄｅ＝ｉとおいて（ステップＳ３４）、次ノード検索処理を再帰的に行う（ステップＳ３５）。次に、ｉ＝ｉ＋１とおき（ステップＳ３６）、ｉをｎと比較する（ステップＳ３７）。そして、ｉ＜ｎであれば、ステップＳ３２以降の処理を繰り返し、ｉ≧ｎとなると、処理を終了する。こうして記憶されたノード間の関係が、配布経路ツリーに対応する。
【００４６】
図６は、図３の処理により生成された配布経路の例を示している。この生成処理によれば、ソース１１から各再配信サーバ３２までの経路コストは低くなるが、図６に示されるように、複数の同一ストリームが同じ枝上を流れる可能性がある。
【００４７】
次に、図７は、配布経路上の各再配信サーバからのコストに基づく配布経路ツリー生成処理のフローチャートである。図７において、ステップＳ４１〜Ｓ４５およびＳ４８〜Ｓ５１の処理は、図３のステップＳ１〜Ｓ５およびＳ８〜Ｓ１１の処理と同様である。
【００４８】
ステップＳ４５においてノードｖを集合Ｓに加えると、次に、マスタサーバ３１は、Ｄ［ｉ］とＣ［ｖ，ｉ］を比較する（ステップＳ４６）。Ｄ［ｉ］がＣ［ｖ，ｉ］以上であれば、Ｄ［ｉ］＝Ｃ［ｖ，ｉ］、Ｐ［ｉ］＝ｖとおき（ステップＳ４７）、ステップＳ４８以降の処理を行う。また、ステップＳ４６において、Ｄ［ｉ］がＣ［ｖ，ｉ］より小さければ、そのままステップＳ４８以降の処理を行う。
【００４９】
図８は、図７の処理により生成された配布経路の例を示している。この生成処理によれば、複数の同じストリームが同じ枝上を流れることは軽減できるが、ソース１１からの経路が遠回りになったり、経路が逆流したりする場合もある。
【００５０】
次に、図９から図１１までを参照しながら、グループ化による配布経路ツリー自動生成アルゴリズムについて説明する。上述したように、図３の処理により配布経路ツリーを生成した場合、複数の同じストリームが同じ枝上を流れる可能性がある。しかし、この枝を構成する物理リンクの帯域が小さい等の理由によって、この枝の経路コストが高い場合、この枝上にはストリームが１本だけ流れるようにしたい。そこで、以下のような自動構成アルゴリズムを適用する。
【００５１】
まず、必要に応じてｍ個の経路コスト閾値を設定する。次に、再配信サーバ群を、図９に示すように、１番目の閾値よりも高い経路コストをもつ枝でのみ結ばれた複数のグループに分割する。図９では、再配信サーバ群が、Ｇ１〜Ｇ４の４つのグループに分割されている。そして、得られた各グループ内の再配信サーバ３２を、２番目の閾値を用いて同様に分割する。このような分割をｍ回行うことで、ｍ階層に分割された複数の再配信サーバグループが生成される。
【００５２】
最終的に得られた各グループ同士は１つの枝で結ばれているものと仮定し、２つのグループ間の経路コストとして、一方のグループに属する再配信サーバ３２と他方に属する再配信サーバ３２の間の経路コストのうち、最も小さいものを用いる。この経路コストに対応するグループ間経路の両端にある再配信サーバ３２が、グループ間の配布経路ツリーが生成された時点で決定される、各グループにおける入力枝端の候補となる。
【００５３】
そして、各グループを１つのノードとみなし、ソース１１が属するグループを起点（ソース）とみなして、グループ間の配布経路ツリーを生成する。ここで、ソース１１が属するグループとは、ソース１１に接続された再配信サーバ３２を含むグループを表す。
【００５４】
次に、各グループ内で、ソース１１が属するグループではソース１１を起点として、その他のグループではグループ間配布経路ツリーの入力枝端となる再配信サーバ３２を起点として、配布経路ツリーを生成する。生成されたグループ間配布経路ツリーとグループ内配布経路ツリーを組み合わせれば、グループ化による配布経路ツリーが得られる。
【００５５】
図１０は、このような配布経路ツリー生成処理のフローチャートである。まず、マスタサーバ３１は、再配信サーバ群を、設定された経路コストの閾値によって複数のグループに分割し（ステップＳ６１）、グループ間の経路コストを検出する（ステップＳ６２）。
【００５６】
次に、グループ間の経路コストをもとに、図３の処理によりグループ間配布経路ツリーを生成する（ステップＳ６３）。この時点で、各グループ内で入力枝端となる再配信サーバ３２が決定される。そして、各グループ内で、ソースまたは入力枝端となる再配信サーバ３２を起点として、図３の処理により配布経路ツリーを生成し（ステップＳ６４）、処理を終了する。
【００５７】
図１１は、図１０のステップＳ６１において階層毎に行われるグループ化処理のフローチャートである。まず、マスタサーバ３１は、ｉ＝０、集合Ｖ＝φ、集合Ｔ＝φとおき、すべてのノード（再配信サーバ）を集合Ｖに入れる（ステップＳ７１）。次に、集合Ｓｉ＝φとおき、集合Ｖから任意のノードを取り出し、集合Ｔに加える（ステップＳ７２）。また、集合Ｔから任意のノードを取り出し、集合Ｓｉに加えて、取り出したノードをノードｊとする（ステップＳ７３）。
【００５８】
次に、集合Ｖの要素である各ノードｋについて、Ｃ［ｊ，ｋ］とコスト閾値を比較する（ステップＳ７４）。ここで、Ｃ［ｊ，ｋ］＜コスト閾値という条件を満たすノードｋがあれば、そのノードｋを集合Ｖから取り出し、集合Ｔに加えて（ステップＳ７５）、ステップＳ７４の処理を繰り返す。そして、その条件を満たすノードｋがなくなれば、次に、集合Ｔが空か否かをチェックする（ステップＳ７６）。
【００５９】
集合Ｔが空でなければ、ステップＳ７３以降の処理を繰り返し、集合Ｔが空になると、次に、集合Ｖが空か否かをチェックする（ステップＳ７７）。集合Ｖが空でなければ、ｉ＝ｉ＋１とおいて（ステップＳ７８）、ステップＳ７２以降の処理を繰り返し、集合Ｖが空になると、処理を終了する。
【００６０】
次に、図１２から図１５までを参照しながら、経路コストの測定範囲を決定するアルゴリズムについて説明する。再配信サーバ間の経路コストを収集する際、コスト測定の負荷を軽減するために、コスト測定の範囲を制限することも重要である。ここでは、基幹接続ルータを指定して測定範囲を制限する方法と、ソースの直近の再配信サーバを指定し、経路情報をもとに測定範囲を制限する方法について説明する。基幹接続ルータは、ネットワークの基幹に接続しているルータに対応する。
【００６１】
基幹接続ルータを指定して測定範囲を決定するアルゴリズムでは、各再配信サーバ３２は、マスタサーバ３１への登録時に、すべての基幹接続ルータへのホップ数を測定して格納するとともに、その情報をマスタサーバ３１に通知する。また、マスタサーバ３１は、再配信サーバ３２から通知された基幹接続ルータへのホップ数を、再配信サーバリストの中で管理する。
【００６２】
図１２は、このような測定範囲決定処理のフローチャートである。まず、マスタサーバ３１は、測定を行う再配信サーバ３２から通知された基幹接続ルータへのホップ数（または、マスタサーバ３１自身が直接測定したホップ数）をもとに、その再配信サーバ３２に最も近い基幹接続ルータを検出する（ステップＳ８１）。
【００６３】
次に、再配信サーバリストの中から、検出された基幹接続ルータを直近の基幹接続ルータとする再配信サーバ３２と、それ以外の再配信サーバ３２のうちで、基幹接続ルータを経由するルート上にあるものを検出し、それらを経路コストの測定対象として（ステップＳ８２）、処理を終了する。
【００６４】
図１３は、このようにして決定された測定範囲の例を示している。図１３の測定範囲４１には、測定を行う再配信サーバ４２に最も近い基幹接続ルータ４３を直近の基幹接続ルータとする再配信サーバ４４と、再配信サーバ４２から見て、基幹接続ルータ４３、４５を経由するルート上にある再配信サーバ４６が含まれている。
【００６５】
次に、図１４は、再配信サーバまでの経路情報をもとにした測定範囲決定処理のフローチャートである。ここでは、測定を行う再配信サーバ３２の直前のルータ１２から他のルータ１２までの制限ホップ数をＨ１とし、ルータ１２から再配信サーバ３２までの制限ホップ数をＨ２とする。また、マスタサーバ３１は、ソース１１と再配信サーバ３２が一致していたり、配布経路ツリーを既に生成済みである等の理由から、ソース１１に最も近い再配信サーバ３２を知っているものとする。
【００６６】
まず、マスタサーバ３１からの指示により、ソース１１の直近の再配信サーバ３２は、測定を行う再配信サーバ３２までのルート上に存在するルータ１２と、その再配信サーバ３２までのホップ数を検出し、結果をマスタサーバ３１に通知する（ステップＳ９１）。
【００６７】
次に、マスタサーバ３１は、測定を行う再配信サーバ３２の直近のルータ１２の配下の再配信サーバ３２をピックアップして集合ＳＳ１に入れ、ｈ＝１とおく（ステップＳ９２）。
【００６８】
次に、測定を行う再配信サーバ３２の直近のルータ１２からｈホップだけソース側にあるルータ１２を、ルータｈとする（ステップＳ９３）。そして、ルータｈを通り、かつルータｈからのホップ数がＨ２以内の再配信サーバ３２（他の枝も含む）を探し、そのような再配信サーバ３２があれば、集合ＳＳ２に入れる（ステップＳ９４）。
【００６９】
次に、ｈとＨ１を比較し（ステップＳ９５）、ｈ＜Ｈ１であれば、ｈ＝ｈ＋１とおいて（ステップＳ９６）、ステップＳ９３以降の処理を繰り返す。そして、ステップＳ９５においてｈがＨ１に達すれば、次に、集合ＳＳ１に属していない集合ＳＳ２の要素があるか否かをチェックする（ステップＳ９７）。そのような要素がなければ、ステップＳ９６以降の処理を繰り返す。
【００７０】
そして、ステップＳ９７において、集合ＳＳ１に属していない集合ＳＳ２の要素があれば、集合ＳＳ１およびＳＳ２に含まれる再配信サーバ３２を測定対象として（ステップＳ９８）、処理を終了する。
【００７１】
図１５は、このようにして決定された測定範囲の例を示している。図１５の測定範囲５１には、測定を行う再配信サーバ５２に最も近いルータ５３の配下の再配信サーバ５４と、ルータ５３の１ホップ前のルータ５５に最も近い再配信サーバ５６が含まれている。
【００７２】
次に、図１６から図２１までを参照しながら、図２の配信システムにおける処理の細部について説明する。新規再配信サーバの動作開始時には、その再配信サーバがマスタサーバに登録され、新規再配信サーバと既存の再配信サーバの間の経路コストが収集される。また、再配信サーバの動作を停止する場合には、登録情報が削除され、再配信サーバ間の経路コストが更新される。
【００７３】
図１６は、新規再配信サーバの登録処理のフローチャートである。まず、新規再配信サーバは、基幹接続ルータまでのホップ数を測定し（ステップＳ１０１）、自ノードのＩＰアドレスと測定したホップ数を含む登録要求を、マスタサーバに送信する（ステップＳ１０２）。マスタサーバのアドレスは、Ｗｅｂ等で公開されているか、または、再配信サーバプログラムのダウンロード時に、そのプログラムに記入されているものとする。
【００７４】
次に、マスタサーバは、再配信サーバリストに新規再配信サーバのＩＰアドレスと基幹接続ルータまでのホップ数を登録する（ステップＳ１０３）。そして、上述した測定範囲決定処理により、経路コストの測定対象となる再配信サーバのＩＰアドレスリストを含む再配信サーバリストを作成する（ステップＳ１０４）。このとき、新規再配信サーバに対しては、その再配信サーバリストを通知し、リストに含まれる既存再配信サーバに対しては、新規再配信サーバのＩＰアドレスを、経路コストの測定対象として通知する。
【００７５】
新規再配信サーバは、マスタサーバから通知された再配信サーバリストに含まれる各再配信サーバを対象として、経路コストを測定し（ステップＳ１０５）、測定結果と自ノードの負荷情報をマスタサーバに通知する（ステップＳ１０６）。
【００７６】
また、既存再配信サーバは、マスタサーバから通知された新規再配信サーバを対象として、経路コストを測定し（ステップＳ１０７）、測定結果と自ノードの負荷情報をマスタサーバに通知する（ステップＳ１０８）。
【００７７】
次に、図１７は、再配信サーバの削除処理のフローチャートである。まず、動作を停止する再配信サーバは、マスタサーバに対して、登録削除要求を送信する（ステップＳ１１１）。次に、マスタサーバは、その再配信サーバに関する情報を削除し、配布経路ツリーを再構成して、新しい配布経路ツリーの情報を配布する（ステップＳ１１２）。また、要求を送信した再配信サーバに対して、削除許可を送信する。そして、削除許可を受信した再配信サーバは、動作を停止する。
【００７８】
配布経路ツリーは、あるストリームデータを配布するときに使用される再配信サーバの経路ツリーであり、再配信サーバ間の経路コスト情報をもとに、上述した処理により生成される。ストリームの配布経路ツリーは、そのストリームの登録を契機として生成され、再配信サーバの登録または削除の際に更新される。一般に、生成された配布経路ツリーと、実際のストリームデータが配布される経路は異なり、下流にクライアントが接続されていない配布経路ツリーの枝には、実際のストリームデータが配布されない場合がある。
【００７９】
ソースは、ストリームデータの配布に先立って、マスタサーバに対して、以下のようなストリーム情報を登録する。
（１）送信元：データを送信するホスト（ソース）のＩＰアドレス（２）ストリームＩＤ：送信ホスト毎に一意な識別情報（３）配布の形態：クライアント要求型／配布型の区別（４）配布の範囲：配布型の場合にデータを配布する範囲このうち、配布の形態がクライアント要求型の場合は、クライアントが接続されている配布経路ツリーの枝にのみデータが配布され、配布型の場合は、クライアントが接続されているか否かに関係なく、設定された範囲の再配信サーバにデータが配布される。配布の範囲はドメインで指定され、指定されていないドメインが末端となっている枝には、実データは転送されない。
【００８０】
マスタサーバは、基本的に、ストリーム情報が登録された時点で、ストリームソースを根とする配布経路ツリーを作成する。このとき、マスタサーバは、各再配信サーバの負荷情報を参照しながらアドミッション制御を行い、既に多数のストリームの配信を行っている再配信サーバは経路として使用しない。また、再配信サーバの登録／削除時や、ネットワーク状況の変化が検出されたときに、配布経路ツリーの再構成を行うこともできる。
【００８１】
また、障害が起きる可能性のある経路または再配信サーバに関する情報（負荷が高くなりやすい等）がある場合には、そのような経路上にある再配信サーバを指定し、指定された再配信サーバを通らない代替配布経路ツリーを、バックアップ用配布経路ツリーとして、あらかじめ作成しておくこともできる。
【００８２】
バックアップ用配布経路ツリーは、マスタサーバが管理している再配信サーバから、指定された再配信サーバを除いた残りを、使用可能な再配信サーバとして、自動生成アルゴリズムを適用することにより、求められる。また、障害が発生する可能性が複数考えられる場合は、それぞれの可能性について、対応する部分を除外したバックアップ用配布経路ツリーが作成される。現在使用中の配布経路ツリーからバックアップ用配布経路ツリーへの切り替えは、例えば、ネットワーク状況の変化が検出されたときを契機として行われる。
【００８３】
また、マスタサーバは、ストリームと配布経路ツリーの情報を、配布経路ツリーに沿って各再配信サーバに通知する。通知のタイミングは、ストリームの配布形態によって異なる。クライアント要求型の場合は、クライアントが接続した再配信サーバから配布経路ツリー要求を受信したときであり、配布型の場合は、配布経路ツリー生成の直後である。このとき、マスタサーバは、以下のような配布経路通知データを各再配信サーバに配布する。
ストリームソース（ＩＰアドレス）、ストリームＩＤ、上流サーバアドレス、ｐｏｒｔ、経路番号、経由再配信サーバアドレス、分岐数、分岐（下流）経路番号・・・、経路番号、経由再配信サーバアドレス、分岐数、分岐（下流）経路番号・・・、経路番号、経由再配信サーバアドレス、分岐数（０）
クライアント要求型のストリームの場合、配布経路ツリー全体の中から、配布経路ツリー要求を送信してきた再配信サーバに至る配布経路を抜き出し、配布経路通知データとして配布する。また、配布型のストリームの場合は、配布経路ツリー全体のデータを配布する。配布経路通知データを受信した各再配信サーバは、ストリームと配布経路ツリーの情報を、ストリーム−経路対応表として管理する。
【００８４】
このとき、上流再配信サーバは、下流再配信サーバに伝達する必要のない情報（上流側の配布経路に関する情報）を配布経路通知データから削除し、残りのデータを下流再配信サーバに配布する。
【００８５】
図１８は、各再配信サーバが通知された情報を他の再配信サーバに配布する処理のフローチャートである。まず、再配信サーバは、上流再配信サーバから配布経路通知データを受信し（ステップＳ１２１）、受信したデータの内容が新しいか否かをチェックする（ステップＳ１２２）。
【００８６】
受信したデータが新しいデータであれば、次に、ストリーム受信用のポートを確保して、その識別情報を上流再配信サーバに通知する（ステップＳ１２３）。このとき、例えば、確保されたポートのうち、未使用のポートの中から最も若い番号のポートを選択し、その番号を含む以下のようなデータを上流再配信サーバに通知する。
ストリームソース（ＩＰアドレス）、ストリームＩＤ、自ノードのＩＰアドレス、受信ポート番号
データを受信した上流再配信サーバは、これらの情報をストリーム−経路対応表に格納する。
【００８７】
次に、ポート番号を通知した再配信サーバは、ストリーム−経路対応表に以下のような情報を格納する（ステップＳ１２４）。ただし、下流再配信サーバの受信ポート番号は、その再配信サーバからの通知を受信した時点で格納する。
（１）ストリームソース（ＩＰアドレス）
（２）ストリームＩＤ
（３）上流再配信サーバのアドレスおよび経路番号
（４）下流再配信サーバのアドレス、ポート番号、および経路番号
次に、受信した配布経路通知データに従って設定を行い、ストリーム配信を開始する（ステップＳ１２５）。そして、配布経路通知データから、自ノードに関する情報を削除し、残りの配布経路通知データを下流再配信サーバに送信して（ステップＳ１２６）、処理を終了する。ステップＳ１２２において、受信したデータが既に受信しているデータと同じであれば、情報を格納せずに、ステップＳ１２６の処理を行う。
【００８８】
図１９は、このような処理による配布経路通知データの配布とポート番号の通知を示している。図１９において、実線の矢印は、配布経路通知データの配布を表し、破線の矢印は、ポート番号の通知を表している。配布経路通知データは、マスタサーバ３１からソース１１に送信され、配布経路ツリーに沿って下流再配信サーバに配布される。
【００８９】
また、クライアント要求型のストリームの場合、各再配信サーバは、下流にデータ配布対象の再配信サーバやクライアントがなくなったとき、上流再配信サーバに対して以下のようなデータを送信して、データ配布の中止を要求する。ストリームソース（ＩＰアドレス）、ストリームＩＤ、解除フラグ、自ノードのＩＰアドレス、受信ポート番号
次に、クライアントの接続および切断について説明する。図２０は、クライアント接続処理のフローチャートである。まず、クライアントは、接続候補となる再配信サーバの情報を持っているか否かをチェックし（ステップＳ１３１）、その情報を持っていなければ、マスタサーバに対してストリーム配信を要求する（ステップＳ１３２）。マスタサーバとストリームに関する情報は、Ｗｅｂ等から取得できるものとする。
【００９０】
マスタサーバは、要求に応じて接続候補再配信サーバを決定し（ステップＳ１３３）、クライアントに通知する（ステップＳ１３４）。このとき、マスタサーバは、ＤＮＳ（Domain Name System）を用いてクライアントのドメインを取得し、同じドメインに再配信サーバがある場合は、その再配信サーバを接続候補とする。
【００９１】
そして、上述した経路コスト測定範囲の絞り込みと同様にして、クライアントの位置を把握し、ストリームの配布経路ツリーから近い再配信サーバを選択する。また、既に多数のストリームの配信を行っている再配信サーバは、アドミッション制御により候補から除く。
【００９２】
接続候補再配信サーバを通知されると、クライアントは、その再配信サーバに接続を要求する（ステップＳ１３５）。このとき、ストリーム情報とクライアントの受信ポート番号を再配信サーバに通知する。
【００９３】
接続要求を受けた再配信サーバは、まず、該当ストリームに関するストリーム−経路対応表を持っているか否かをチェックし（ステップＳ１３６）、その対応表があれば、次に、接続を要求したクライアントがそのストリームに関する初めてのクライアントであるか否かをチェックする（ステップＳ１３７）。
【００９４】
それが初めてのクライアントであれば、クライアントが接続したことをマスタサーバに対して通知し（ステップＳ１３８）、クライアントに対してストリームデータの配信を開始する（ステップＳ１３９）。また、マスタサーバは、その再配信サーバのそのストリームに対するクライアント接続の有無に関する情報を更新する（ステップＳ１４０）。ステップＳ１３７において、接続を要求したクライアントが初めてのクライアントでなければ、再配信サーバは、そのままステップＳ１３９の処理を行う。
【００９５】
また、ステップＳ１３６において、該当ストリームに関するストリーム−経路対応表がなければ、再配信サーバは、マスタサーバに対して以下のようなデータを送信し、配布経路ツリーを要求する（ステップＳ１４１）。再配信サーバのアドレス、ストリームソースのアドレス、ストリームＩＤマスタサーバは、要求に応じて配布経路通知データを送信する（ステップＳ１４２）。再配信サーバは、上流再配信サーバを介してそれを受信し、受信データに従ってストリームデータ配信のための設定を行って（ステップＳ１４３）、ステップＳ１３７以降の処理を行う。
【００９６】
図２１は、クライアント切断処理のフローチャートである。まず、クライアントは、接続している再配信サーバに対して、切断要求を送信する（ステップＳ１５１）。
再配信サーバは、要求に応じてクライアントへのデータ配信を中止し、ストリーム−経路対応表から、そのクライアントの項目を削除する（ステップＳ１５２）。そして、そのストリームに関して、そのクライアント以外のクライアントが存在するか否かをチェックする（ステップＳ１５３）。
【００９７】
他のクライアントが存在しなければ、マスタサーバに対して、接続するクライアントがなくなったことを通知する（ステップＳ１５４）。マスタサーバは、その再配信サーバのそのストリームに対するクライアント接続の有無に関する情報を更新する（ステップＳ１５５）。
【００９８】
次に、再配信サーバは、そのストリームに関して、そのクライアント以外の転送先が存在するか否かをチェックする（ステップＳ１５６）。他の転送先が存在しなければ、上流再配信サーバに対してデータ配布の中止を要求する（ステップＳ１５７）。
【００９９】
ステップＳ１５３において他のクライアントが存在すれば、ステップＳ１５６以降の処理を行い、ステップＳ１５６において他の転送先が存在すれば、そのまま処理を終了する。
【０１００】
ところで、図２のソース１１、クライアント、マスタサーバ３１、および再配信サーバ３２は、例えば、図２２に示すような情報処理装置（コンピュータ）を用いて運用される。図２２の情報処理装置は、ＣＰＵ（中央処理装置）６１、メモリ６２、入力装置６３、出力装置６４、外部記憶装置６５、媒体駆動装置６６、およびネットワーク接続装置６７を備え、それらはバス６８により互いに接続されている。
【０１０１】
メモリ６２は、例えば、ＲＯＭ（read only memory）、ＲＡＭ（random access memory）等を含み、処理に用いられるプログラムとデータを格納する。ＣＰＵ６１は、メモリ６２を利用してプログラムを実行することにより、必要な処理を行う。
【０１０２】
入力装置６３は、例えば、キーボード、ポインティングデバイス、タッチパネル等であり、オペレータからの指示や情報の入力に用いられる。出力装置６４は、例えば、ディスプレイ、プリンタ、スピーカ等であり、オペレータへの問い合わせや処理結果の出力に用いられる。
【０１０３】
外部記憶装置６５は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。情報処理装置は、この外部記憶装置６５に、上述のプログラムとデータを保存しておき、必要に応じて、それらをメモリ６２にロードして使用する。
【０１０４】
媒体駆動装置６６は、可搬記録媒体６９を駆動し、その記録内容にアクセスする。可搬記録媒体６９としては、メモリカード、フロッピー（登録商標）ディスク、ＣＤ−ＲＯＭ（compact disk read only memory ）、光ディスク、光磁気ディスク等、任意のコンピュータ読み取り可能な記録媒体が用いられる。オペレータは、この可搬記録媒体６９に上述のプログラムとデータを格納しておき、必要に応じて、それらをメモリ６２にロードして使用する。
【０１０５】
ネットワーク接続装置６７は、インターネット、イントラネット等の任意の通信ネットワークに接続され、通信に伴うデータ変換を行う。また、情報処理装置は、上述のプログラムとデータをネットワーク接続装置６７を介して、サーバ等の他の装置から受け取り、必要に応じて、それらをメモリ６２にロードして使用する。
【０１０６】
図２３は、図２２の情報処理装置にプログラムとデータを供給することのできるコンピュータ読み取り可能な記録媒体を示している。可搬記録媒体６９やサーバ７０のデータベース７１に保存されたプログラムとデータは、メモリ６２にロードされる。このとき、サーバ７０は、プログラムとデータを搬送する搬送信号を生成し、ネットワーク上の任意の伝送媒体を介して、情報処理装置に送信する。そして、ＣＰＵ６１は、そのデータを用いてそのプログラムを実行し、必要な処理を行う。
【０１０７】
（付記１） 通信ネットワークのノード間の通信コストに関する情報を収集する収集手段と、前記通信ネットワーク上の複数のクライアントに、ソースから発信されたストリームデータを配布するとき、該ソースから該複数のクライアントに至る配布経路を表す配布経路情報を、前記通信コストに関する情報に基づいて、自動的に生成する生成手段と、前記配布経路情報を出力する出力手段とを備えることを特徴とする配布経路生成装置。
（付記２） 前記生成手段は、前記ソースから転送先ノードまでの通信コストが最小になるように、該転送先ノードを選択することで、前記配布経路情報を生成することを特徴とする付記１記載の配布経路生成装置。
（付記３） 前記生成手段は、生成中の配布経路上の各ノードから転送先ノードまでの通信コストが最小になるように、該転送先ノードを選択することで、前記配布経路情報を生成することを特徴とする付記１記載の配布経路生成装置。
（付記４） 前記生成手段は、ノード群を複数のグループに分割し、前記ソースが属するグループを起点とするグループ間の配布経路情報を生成し、該ソースが属するグループ内において、該ソースを起点とする、グループ内の配布経路情報を生成し、その他のグループ内において、グループ間の配布経路の入力枝端となるノードを起点とする、グループ内の配布経路情報を生成することを特徴とする付記１記載の配布経路生成装置。
（付記５） 前記生成手段は、ノード間の通信コストが閾値以上である枝を境界として、前記ノード群を前記複数のグループに分割することを特徴とする付記４記載の配布経路生成装置。
（付記６） 前記通信コストの測定範囲を限定する限定手段をさらに備えることを特徴とする付記１記載の配布経路生成装置。
（付記７） 前記限定手段は、前記通信ネットワークの基幹に接続するルータを指定し、指定されたルータを介して該基幹に接続する１つ以上のノードを、測定対象とすることを特徴とする付記６記載の配布経路生成装置。
（付記８） 前記限定手段は、前記ソースから測定を行う測定ノードまでの経路情報をもとに、該測定ノードから第１の制限ホップ数以内の距離にあるルータを検出し、検出されたルータから第２の制限ホップ数以内の距離にあるノードを、測定対象とすることを特徴とする付記６記載の配布経路生成装置。
（付記９） データパケットおよび制御用パケットのうち少なくとも一方の情報に基づいて、ネットワーク状況の変化を検出する検出手段をさらに備え、前記収集手段は、該ネットワーク状況の変化を契機として、前記通信コストに関する情報を収集することを特徴とする付記１記載の配布経路生成装置。
（付記１０） データパケットおよび制御用パケットのうち少なくとも一方の情報に基づいて、ネットワーク状況の変化を検出する検出手段をさらに備え、前記生成手段は、該ネットワーク状況の変化を契機として、配布経路情報を再生成することを特徴とする付記１記載の配布経路生成装置。
（付記１１） 前記生成手段は、前記通信ネットワーク上で障害の発生が予想される部分を除外した代替配布経路を表す配布経路情報をさらに生成することを特徴とする付記１記載の配布経路生成装置。
（付記１２） データパケットおよび制御用パケットのうち少なくとも一方の情報に基づいて、ネットワーク状況の変化を検出する検出手段をさらに備え、前記生成手段は、該ネットワーク状況の変化を契機として、現在の配布経路を代替配布経路へ切り替ることを特徴とする付記１１記載の配布経路生成装置。
（付記１３） コンピュータのためのプログラムを記録した記録媒体であって、該プログラムは、通信ネットワークのノード間の通信コストに関する情報を収集し、前記通信ネットワーク上の複数のクライアントに、ソースから発信されたストリームデータを配布するとき、該ソースから該複数のクライアントに至る配布経路を表す配布経路情報を、前記通信コストに関する情報に基づいて、自動的に生成する処理を前記コンピュータに実行させることを特徴とするコンピュータ読み取り可能な記録媒体。
（付記１４） コンピュータにプログラムを搬送する搬送信号であって、該プログラムは、通信ネットワークのノード間の通信コストに関する情報を収集し、前記通信ネットワーク上の複数のクライアントに、ソースから発信されたストリームデータを配布するとき、該ソースから該複数のクライアントに至る配布経路を表す配布経路情報を、前記通信コストに関する情報に基づいて、自動的に生成する処理を前記コンピュータに実行させることを特徴とする搬送信号。
（付記１５） 通信ネットワークのノード間の通信コストに関する情報を収集し、前記通信ネットワーク上の複数のクライアントに、ソースから発信されたストリームデータを配布するとき、該ソースから該複数のクライアントに至る配布経路を表す配布経路情報を、前記通信コストに関する情報に基づいて、自動的に生成することを特徴とする配布経路生成方法。
（付記１６） 前記配布経路情報を、前記配布経路に沿って、上流ノードから下流ノードに配布することを特徴とする付記１５記載の配布経路生成方法。
（付記１７） 前記上流ノードにおいて、前記下流ノードに伝達する必要のない情報を前記配布経路情報から削除し、残りの情報を該上流ノードから該下流ノードに配布することを特徴とする付記１６記載の配布経路生成方法。
（付記１８） 前記下流ノードにおいて、前記ストリームデータを受信するためのポートを確保し、該ポートの識別情報を該下流ノードから前記上流ノードに通知することを特徴とする付記１６記載の配布経路生成方法。
【図面の簡単な説明】
【０１０８】
【図１】本発明の配布経路生成装置の原理図である。
【図２】ストリーム配信システムを示す図である。
【図３】第１の配布経路ツリー生成処理のフローチャートである。
【図４】ツリー生成処理のフローチャートである。
【図５】次ノード検索処理のフローチャートである。
【図６】第１の配布経路を示す図である。
【図７】第２の配布経路ツリー生成処理のフローチャートである。
【図８】第２の配布経路を示す図である。
【図９】再配信サーバのグループを示す図である。
【図１０】第３の配布経路ツリー生成処理のフローチャートである。
【図１１】グループ化処理のフローチャートである。
【図１２】第１の測定範囲決定処理のフローチャートである。
【図１３】第１の測定範囲を示す図である。
【図１４】第２の測定範囲決定処理のフローチャートである。
【図１５】第２の測定範囲を示す図である。
【図１６】登録処理のフローチャートである。
【図１７】削除処理のフローチャートである。
【図１８】配布処理のフローチャートである。
【図１９】通知データの配布を示す図である。
【図２０】接続処理のフローチャートである。
【図２１】切断処理のフローチャートである。
【図２２】情報処理装置の構成図である。
【図２３】記録媒体を示す図である。
【図２４】ストリーム配信の現状を示す図である。
【符号の説明】
【０１０９】
１１ ストリームソース
１２、５３、５５ ルータ
１３ クライアント
２１ 収集手段
２２ 生成手段
２３ 出力手段
３１ マスタサーバ
３２、４２、４４、４６、５２、５４、５６ 再配信サーバ
４１、５１ 測定範囲
４３、４５ 基幹接続ルータ
６１ ＣＰＵ
６２ メモリ
６５ 外部記憶装置
６６ 媒体駆動装置
６７ ネットワーク接続装置
６８ バス
６９ 可搬記録媒体
７０ サーバ
７１ データベース
Ｇ１、Ｇ２、Ｇ３、Ｇ４ グループ
【図１】
2007068221.tif 000003
【図２】
2007068221.tif 000004
【図３】
2007068221.tif 000005
【図４】
2007068221.tif 000006
【図５】
2007068221.tif 000007
【図６】
2007068221.tif 000008
【図７】
2007068221.tif 000009
【図８】
2007068221.tif 000010
【図９】
2007068221.tif 000011
【図１０】
2007068221.tif 000012
【図１１】
2007068221.tif 000013
【図１２】
2007068221.tif 000014
【図１３】
2007068221.tif 000015
【図１４】
2007068221.tif 000016
【図１５】
2007068221.tif 000017
【図１６】
2007068221.tif 000018
【図１７】
2007068221.tif 000019
【図１８】
2007068221.tif 000020
【図１９】
2007068221.tif 000021
【図２０】
2007068221.tif 000022
【図２１】
2007068221.tif 000023
【図２２】
2007068221.tif 000024
【図２３】
2007068221.tif 000025
【図２４】
2007068221.tif 000026