(57)【要約】【課題】ノード毎のアクセス回線速度が均一でなく、同時にバックボーンネットワークの混雑状況が一定でない場合でも、コンテンツ配送処理の負荷を効率的に分散して、高い配信性能を実現する。【解決手段】ソースノード２００は、ソースノード２００と配信対象ノード２０１、２０２、２０３のアクセス回線速度を基にファンアウト数上限値を算出する。そして、この算出したファンアウト数上限値と、ノード間のスループットの大きさとを基準にしてノード間のパスと配信先ノードを順次選択することでコンテンツの配信経路となるツリーを構築し、更に残余スループットを使って同様の手順で複数のツリーを構築する。また、データを複数のブロックに分割して、各々のツリーの応答時間に基づいて各ツリーに割り振るブロックを決定することで、複数の配信対象ノード２０１、２０２、２０３に対してマルチキャストにより同一のコンテンツを配信する。【選択図】図２
2008078775.tif 000002
【特許請求の範囲】
【請求項１】
配信元ノードからマルチキャストにより複数の配信先ノードに対して同一のコンテンツを配信する通信ネットワークにおいて、
前記配信元ノードと配信先のノードとの間に、コンテンツの配信経路となる複数のツリーを構築するツリー構築手段と、
配信するコンテンツを複数のデータブロックに分割するコンテンツ分割手段と、
前記ツリー構築手段が構築したツリー毎の通信状態を観測し、前記データブロック毎に、前記通信状態に応じて配信に用いるツリーをそれぞれ選択する配信経路選択手段と、
前記配信経路選択手段によって選択されたツリーを介してデータブロックを配信するコンテンツ配信手段とを備えた通信ネットワークであって、
前記配信元ノード及び前記配信先ノードのアクセス回線速度に基づいて、ノード毎のファンアウト数上限値を算出するファンアウト数上限値算出手段を備え、
前記ツリー構築手段は、前記配信元ノード及び前記配信先ノードのファンアウト数が前記ファンアウト数上限値算出手段によって算出されたファンアウト数上限値を超えないように個々のツリーを構築する
ことを特徴とする通信ネットワーク。
【請求項２】
ファンアウト数上限値算出手段は、配信元ノード又は配信先ノードのアクセス回線速度の速さに応じた値となるように、ノード毎のファンアウト数上限値を算出する
請求項１記載の通信ネットワーク。
【請求項３】
ツリー構築手段は、複数のツリーを構築する際に、一つのツリーを構築したら、次のツリーを構築する際に使用する配信元ノード及び配信先ノードのそれぞれのアクセス回線速度を再度計算する回線速度計算手段を備え、
ファンアウト数上限値算出手段は、前記回線速度計算手段が再計算したアクセス回線速度に基づいて、前記配信元ノード及び前記配信先ノード毎のファンアウト数上限値を再度計算し、
当該ツリー構築手段は、前記ファンアウト数上限値算出手段によって再計算されたファンアウト数上限値を超えないように次のツリーを構築する
請求項１又は請求項２記載の通信ネットワーク。
【請求項４】
ファンアウト数上限値算出手段は、配信元ノード及び配信先ノードのアクセス回線速度の和を前記配信先ノードの数で除算し、
除算して得られた値によって各ノードのアクセス回線速度を除算し、
前記各ノードのアクセス回線を除算して得られた値の小数点以下を切り下げた値を、各ノードのファンアウト数上限値とする
請求項１から請求項３のうちのいずれか１項に記載の通信ネットワーク。
【請求項５】
ファンアウト数上限値算出手段は、各ノードのファンアウト数上限値の合計値が配信先ノードの数に満たない場合に、各ノードについて、アクセス回線速度をそれぞれのノードのファンアウト数上限値に１を加えた値で除算し、除算して得られた値が最大であるノードのファンアウト数上限値を、前記各ノードのファンアウト数上限値の合計値が前記配信先ノードの数以上となるまで１ずつ増やす
請求項１から請求項４のうちのいずれか１項に記載の通信ネットワーク。
【請求項６】
ファンアウト数上限値算出手段は、ファンアウト数上限値を設定してツリーを生成したときに、前記ファンアウト数上限値が原因となって配信元ノード及び全ての配信先ノードを含むツリーが生成されなかった場合に、ツリー構築手段によって前記配信元ノードと全ての前記配信先ノードとを含むツリーが生成されるまで、ノードのファンアウト数上限値を１増やす
請求項５記載の通信ネットワーク。
【請求項７】
ツリー構築手段は、配信元ノード及び配信先ノードのファンアウト数がそれぞれのファンアウト数上限値を超えないように、スループットの大きさを基準にしてノード間のパスと該パスに接続された配信先ノードとを選択し、ツリーを構築する
請求項１から請求項６のうちのいずれか１項に記載の通信ネットワーク。
【請求項８】
ツリー構築手段は、スループットが最大のパスから順に選択してツリーを構築する
請求項１から請求項７のうちのいずれか１項に記載の通信ネットワーク。
【請求項９】
ツリー構築手段は、既にツリーに加えられた配信元ノード及び配信先ノードのうちファンアウト数がファンアウト数上限値未満のノードと前記ツリーに加えられていない配信先ノードとの間のスループットが最大であるパスと、該パスに接続されていて前記ツリーに加えられていない配信先ノードとを順次選択し、ツリーを構築する
請求項１から請求項８のうちのいずれか１項に記載の通信ネットワーク。
【請求項１０】
配信元ノードが、
ファンアウト数上限値算出手段と、
ツリー構築手段とを備えた
請求項１から請求項９のうちのいずれか１項に記載の通信ネットワーク。
【請求項１１】
当該通信ネットワークは管理サーバを備え、
前記管理サーバが、
ファンアウト数上限値算出手段と、
ツリー構築手段とを備えた
請求項１から請求項１０のうちのいずれか１項に記載の通信ネットワーク。
【請求項１２】
配信元ノードからマルチキャストにより複数の配信先ノードに対して同一のコンテンツを配信する通信ネットワークにおいて、
前記配信元ノードと配信先のノードとの間に、コンテンツの配信経路となる複数のツリーを構築するツリー構築手段と、
配信するコンテンツを複数のデータブロックに分割するコンテンツ分割手段と、
前記ツリー構築手段が構築したツリー毎の通信状態を観測し、前記データブロック毎に、前記通信状態に応じて配信に用いるツリーをそれぞれ選択する配信経路選択手段と、
前記配信経路選択手段によって選択されたツリーを介してデータブロックを配信するコンテンツ配信手段とを備えたコンテンツ配信ノードであって、
当該コンテンツ配信ノード及び配信先ノードのアクセス回線速度に基づいてノード毎のファンアウト数上限値を算出するファンアウト数上限値算出手段を備え、
ツリー構築手段は、当該コンテンツ配信ノード及び前記配信先ノードのファンアウト数が前記ファンアウト数上限値算出手段によって算出されたファンアウト数上限値を超えないように個々のツリーを構築する
ことを特徴とするコンテンツ配信ノード。
【請求項１３】
ファンアウト数上限値算出手段は、当該コンテンツ配信ノード又は配信先ノードのアクセス回線速度の速さに応じた値となるように、ノード毎のファンアウト数上限値を算出する
請求項１２記載のコンテンツ配信ノード。
【請求項１４】
ツリー構築手段は、複数のツリーを構築する際に、一つのツリーを構築したら、次のツリーを構築する際に使用する当該コンテンツ配信ノード及び配信先ノードのそれぞれのアクセス回線速度を再度計算する回線速度計算手段を備え、
ファンアウト数上限値算出手段は、前記回線速度計算手段が再計算したアクセス回線速度に基づいて、当該コンテンツ配信ノード及び前記配信先ノード毎のファンアウト数上限値を再度計算し、
前記ツリー構築手段は、前記ファンアウト数上限値算出手段によって再計算されたファンアウト数上限値を超えないように次のツリーを構築する
請求項１２または請求項１３記載のコンテンツ配信ノード。
【請求項１５】
ファンアウト数上限値算出手段は、当該コンテンツ配信ノード及び配信先ノードのアクセス回線速度の和を前記配信先ノードの数で除算し、除算して得られた値によって各ノードのアクセス回線速度を除算し、前記各ノードのアクセス回線を除算して得られた値の小数点以下を切り下げた値を、各ノードのファンアウト数上限値とする
請求項１２から請求項１４のうちのいずれか１項に記載のコンテンツ配信ノード。
【請求項１６】
ファンアウト数上限値算出手段は、各ノードのファンアウト数上限値の合計値が配信先ノードの数に満たない場合に、各ノードについて、アクセス回線速度をそれぞれのノードのファンアウト数上限値に１を加えた値で除算し、除算して得られた値が最大であるノードのファンアウト数上限値を、前記各ノードのファンアウト数上限値の合計値が前記配信先ノードの数以上となるまで１ずつ増やす
請求項１２から請求項１５のうちのいずれか１項に記載のコンテンツ配信ノード。
【請求項１７】
ファンアウト数上限値算出手段は、ファンアウト数上限値を設定してツリーを生成したときに、当該コンテンツ配信ノード及び全ての配信先ノードを含むツリーが生成されなかった場合に、ツリー構築手段によって前記配信元ノードと全ての前記配信先ノードとを含むツリーが生成されるまで、ノードのファンアウト数上限値を１増やす
請求項１６記載のコンテンツ配信ノード。
【請求項１８】
ツリー構築手段は、当該コンテンツ配信ノード及び配信先ノードのファンアウト数がそれぞれのファンアウト数上限値を超えないように、スループットの大きさを基準にしてノード間のパスと該パスに接続された配信先ノードとを選択し、ツリーを構築する
請求項１２から請求項１７のうちのいずれか１項に記載のコンテンツ配信ノード。
【請求項１９】
ツリー構築手段は、スループットが最大のパスから順に選択してツリーを構築する
請求項１２から請求項１８のうちのいずれか１項に記載のコンテンツ配信ノード。
【請求項２０】
ツリー構築手段は、既にツリーに加えられた当該コンテンツ配信ノード及び配信先ノードのうちファンアウト数がファンアウト数上限値未満のノードと前記ツリーに加えられていない配信先ノードとの間のスループットが最大であるパスと、該パスに接続されていて前記ツリーに加えられていない配信先ノードとを順次選択し、ツリーを構築する
請求項１２から請求項１９のうちのいずれか１項に記載のコンテンツ配信ノード。
【請求項２１】
配信元ノードからマルチキャストにより複数の配信先ノードに対して同一のコンテンツを配信する通信ネットワークにおいて使用されるツリー構築方法であって、
当該配信元ノードと配信先のノードとの間に、コンテンツの配信経路となる複数のツリーを構築するステップと、
配信するコンテンツを複数のデータブロックに分割するステップと、
構築したツリー毎の通信状態を観測して、前記データブロック毎に、前記通信状態に応じて配信に用いるツリーをそれぞれ選択するステップと、
選択したツリーを介してデータブロックを配信するステップとを含むツリー構築方法であって、
配信元ノード及び配信先ノードのアクセス回線速度に基づいてノード毎のファンアウト数上限値を算出するステップと、
当該配信元ノード及び前記配信先ノードのファンアウト数が算出したファンアウト数上限値を超えないように、ノード間のパスと該パスに接続された配信先ノードとを選択するステップと、
選択したパス及び配信先ノードをツリーに追加するステップとを含む
ことを特徴とするツリー構築方法。
【請求項２２】
ノード毎のファンアウト数上限値を、当該配信元ノード又は配信先ノードのアクセス回線速度の速さに応じた値となるように算出する
請求項２１記載のツリー構築方法。
【請求項２３】
複数のツリーを構築する際に、一つのツリーを構築したら、次のツリーを構築する際に使用する当該配信元ノード及び配信先ノードのそれぞれのアクセス回線速度を再度計算するステップと、
再計算したアクセス回線速度に基づいて、当該配信元ノード及び前記配信先ノード毎のファンアウト数上限値を再度計算するステップとを含む
請求項２１または請求項２２記載のツリー構築方法。
【請求項２４】
当該配信元ノード及び配信先ノードのアクセス回線速度の和を前記配信先ノードの数で除算するステップと、
除算して得られた値によって各ノードのアクセス回線速度を除算するステップと、
前記各ノードのアクセス回線を除算して得られた値の小数点以下を切り下げた値を、各ノードのファンアウト数上限値とするステップとを含む
請求項２１から請求項２３のうちのいずれか１項に記載のツリー構築方法。
【請求項２５】
各ノードのファンアウト数上限値の合計値が配信先ノードの数に満たない場合に、
各ノードについて、アクセス回線速度をそれぞれのノードのファンアウト数上限値に１を加えた値で除算するステップと、
除算して得られた値が最大であるノードのファンアウト数上限値を、前記各ノードのファンアウト数上限値の合計値が前記配信先ノードの数以上となるまで１ずつ増やすステップとを含む
請求項２１から請求項２４のうちのいずれか１項に記載のツリー構築方法。
【請求項２６】
ファンアウト数上限値を設定してツリーを生成したときに、配信元ノード及び全ての配信先ノードを含むツリーが生成されなかった場合に、
当該配信元ノードと前記全ての配信先ノードとを含むツリーが生成されるまで、ノードのファンアウト数上限値を１増やすステップを含む
請求項２５記載のツリー構築方法。
【請求項２７】
配信元ノード及び配信先ノードのファンアウト数がそれぞれのファンアウト数上限値を超えないように、スループットの大きさを基準にしてノード間のパスと該パスに接続された配信先ノードとを選択し、ツリーを構築するステップを含む
請求項２１から請求項２６のうちのいずれか１項に記載のツリー構築方法。
【請求項２８】
スループットが最大のパスから順に選択してツリーを構築するステップを含む
請求項２１から請求項２７のうちのいずれか１項に記載のツリー構築方法。
【請求項２９】
ツリーを構築する際に、既にツリーに加えられた当該配信元ノード及び配信先ノードのうちファンアウト数がファンアウト数上限値未満のノードと前記ツリーに加えられていない配信先ノードとの間のスループットが最大であるパスと、該パスに接続されていて前記ツリーに加えられていない配信先ノードとを順次選択するステップを含む
請求項２１から請求項２８のうちのいずれか１項に記載のツリー構築方法。
【請求項３０】
配信元ノードが、ファンアウト数上限値の算出およびツリーの構築を行う
請求項２１から請求項２９のうちのいずれか１項に記載のツリー構築方法。
【請求項３１】
配信元ノードからマルチキャストにより複数の配信先ノードに対して同一のコンテンツを配信する通信ネットワークにおける、
前記配信元ノードと配信先のノードとの間にコンテンツの配信経路となる複数のツリーを構築するツリー構築処理と、
配信するコンテンツを複数のデータブロックに分割するコンテンツ分割処理と、
前記ツリー構築処理で構築したツリー毎の通信状態を観測して、前記データブロック毎に、前記通信状態に応じて配信に用いるツリーをそれぞれ選択する配信経路選択処理と、
前記配信経路選択処理で選択したツリーを介してデータブロックを配信するコンテンツ配信処理とを実行するシステムにおいて、
コンピュータに、
前記配信元ノード及び配信先ノードのアクセス回線速度に基づいてノード毎のファンアウト数上限値を算出するファンアウト数上限値算出処理と、
ツリー構築処理で、前記配信元ノード及び前記配信先ノードのファンアウト数が前記ファンアウト数上限値算出処理で算出したファンアウト数上限値を超えないように個々のツリーを構築する処理とを
実行させるためのコンテンツ配信制御プログラム。
【請求項３２】
コンピュータに、
ファンアウト数上限値算出処理で、配信元ノード又は配信先ノードのアクセス回線速度の速さに応じた値となるように、ノード毎のファンアウト数上限値を算出する処理を実行させるための
請求項３１記載のコンテンツ配信制御プログラム。
【請求項３３】
コンピュータに、
複数のツリーを構築する際に、一つのツリーを構築したら、次のツリーを構築する際に使用する配信元ノード及び配信先ノードのそれぞれのアクセス回線速度を再度計算するアクセス回線計算処理と、
前記アクセス回線計算処理で再計算したアクセス回線速度に基づいて、前記配信元ノード及び前記配信先ノード毎のファンアウト数上限値を再度計算する処理とを実行させるための
請求項３１または請求項３２記載のコンテンツ配信制御プログラム。
【請求項３４】
コンピュータに、
ファンアウト数上限値算出処理で、配信元ノード及び配信先ノードのアクセス回線速度の和を前記配信先ノードの数で除算し、除算して得られた値によって各ノードのアクセス回線速度をそれぞれ除算し、前記各ノードのアクセス回線を除算して得られた値の小数点以下を切り下げた値を、各ノードのファンアウト数上限値とする処理を実行させるための
請求項３１から請求項３３のうちのいずれか１項に記載のコンテンツ配信制御プログラム。
【請求項３５】
コンピュータに、
各ノードのファンアウト数上限値の合計値が配信先ノードの数に満たない場合に、各ノードについて、アクセス回線速度をそれぞれのノードのファンアウト数上限値に１を加えた値で除算する処理と、除算して得られた値が最大であるノードのファンアウト数上限値を、前記各ノードのファンアウト数上限値の合計値が前記配信先ノードの数以上となるまで１ずつ増やす処理とを実行させるための
請求項３１から請求項３４のうちのいずれか１項に記載のコンテンツ配信制御プログラム。
【請求項３６】
コンピュータに、
ファンアウト数上限値を設定してツリーを生成したときに配信元ノード及び全ての配信先ノードを含むツリーが生成されなかった場合に、前記配信元ノードと前記全ての配信先ノードとを含むツリーが生成されるまで、ノードのファンアウト数上限値を１増やす処理を実行させるための
請求項３５記載のコンテンツ配信制御プログラム。
【請求項３７】
コンピュータに、
ツリー構築処理で、配信元ノード及び配信先ノードのファンアウト数がそれぞれのファンアウト数上限値を超えないように、スループットの大きさを基準にしてノード間のパスと該パスに接続された配信先ノードとを選択し、ツリーを構築する処理を実行させるための
請求項３１から請求項３６のうちのいずれか１項に記載のコンテンツ配信制御プログラム。
【請求項３８】
コンピュータに、
ツリー構築処理で、スループットが最大のパスから順に選択する処理を実行させるための
請求項３１から請求項３７のうちのいずれか１項に記載のコンテンツ配信制御プログラム。
【請求項３９】
コンピュータに、
ツリー構築処理で、既にツリーに加えられた配信元ノード及び配信先ノードのうちファンアウト数がファンアウト数上限値未満のノードと前記ツリーに加えられていない配信先ノードとの間のスループットが最大であるパスと、該パスに接続されていて前記ツリーに加えられていない配信先ノードとを順次選択する処理を実行させるための
請求項３１から請求項３８のうちのいずれか１項に記載のコンテンツ配信制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツをマルチキャストによって配信する通信ネットワークに関し、特に、コンテンツ配送処理負荷の分散と配信効率の向上とを実現する通信ネットワーク、コンテンツ配信ノード、ツリー構築方法およびコンテンツ配信制御プログラムに関する。
【背景技術】
【０００２】
情報通信ネットワーク上で行われるマルチキャスト配信は、送信者が複数の受信者に対して同一のデータを同時に配信することを目的とする。マルチキャスト配信を用いると、送信者の負荷とネットワークの負荷とを上げることなく、データを複数の受信者に一斉に配信することができる。
【０００３】
アプリケーション層マルチキャスト（ＡＬＭ：Ａｐｐｌｉｃａｔｉｏｎ−Ｌａｙｅｒ  Ｍｕｌｔｉｃａｓｔ）は、送信者および受信者だけを構成要素とする論理ネットワーク上にマルチキャストツリーを形成し、分岐点に位置する受信者がデータのコピーを下流の受信者に転送することによって、ツリーに沿ってバケツリレー式にデータの配信を行う方式である。また、ＡＬＭを行う場合、データの中継を行うのを受信者だけに限る必要はなく、中継だけを行う中継ノードをデータの中継に使用することもできる。
【０００４】
上記のようなマルチキャスト配信システムにおけるマルチキャストツリー構築方法およびデータ配信方法では、以下のような手順が用いられている。
方法１．一つのマルチキャストツリーを構築して、そのツリーを用いてデータの配信を行う。
方法２．複数のマルチキャストツリーを構築し、更にデータを複数のブロックに分割して、その複数のツリーに適切にブロックを割り振ることでデータの配信を行う。
【０００５】
方法１に対して、方法２では、複数のマルチキャストツリーを構築し、複数のマルチキャストツリーを同時に用いることによって、ネットワーク上の空き資源をより有効に活用できる。よって、方法２では、高い配信性能を実現することができるようになる。
【０００６】
更に、方法１に対して、方法２では、複数のマルチキャストツリーを構築して、ツリーの性能に応じてそのツリーに割り振るデータブロックの量が決定される。よって、方法２では、ネットワークの混雑状況が変化した場合でも、時間と共に変化するネットワーク上のボトルネック回線を回避し、高い配信性能を実現することができるようになる。
【０００７】
情報通信ネットワーク上で行われる上記のようなマルチキャスト配信において、効率的な配信処理を実現する技術がある（例えば、特許文献１、非特許文献１および非特許文献２参照。）。
【０００８】
特許文献１に記載されている発明では、データ配信システムにおいて、送信サーバが、時刻ｊにおいて直接接続する端末Ｒｊのそれぞれに対して、データおよび少なくともアドレスリストからなる２次配信依頼情報を順次送信する。送信サーバは、データおよび２次配信依頼情報を送信するとともに、同時刻における通信数の上限値である輻輳制限数ｓｊと、端末Ｒｊの台数で表される分木数Ｎからなる輻輳制限パラメータと、データを直接的または間接的に受信する端末の全台数である送信端末数ｄｊとを算出する。そして、算出した輻輳制限数ｓｊ、分木数Ｎおよび送信端末数ｄｊを、端末Ｒｊのそれぞれに対して送信する。そのようにすることによって、通信時に生じる輻輳を制限し、効率的な配信処理を実現するシステムが提供される。
【０００９】
また、非特許文献１には、複数のマルチキャストツリーによるデータ配信について、バックボーンネットワーク側にボトルネックとなる回線が存在する場合において、効率的な配信処理を実現するマルチキャストツリー構築方法および配信方法が記載されている。
【００１０】
また、例えば非特許文献２には、複数のマルチキャストツリーによるストリーム配信について、アクセス回線側にボトルネックとなる回線が存在する場合において、効率的な配信処理を実現するマルチキャストツリー構築方法および配信方法が記載されている。非特許文献２に記載されているシステムは、ストリームを複数のｓｔｒｉｐｅに分割してｓｔｒｉｐｅ毎にツリーを構築し、ノードがそのアクセス回線速度に応じて受信、転送するｓｔｒｉｐｅ数（映像品質）を選択するシステムである。
【００１１】
【特許文献１】特開２００４−４０７１６号公報（段落０１４９−０１９８、図２３）
【非特許文献１】S. Ganguly、外４名、「Fast Replication in Content Distribution Overlays 」、Proceedings of the 24th Annual Joint Conference of the IEEE Computer and Communications Societies 、２００５年３月、vol.4 、ｐ．２２４６−２２５６
【非特許文献２】M. Castro 、外５名、「SplitStream : High-Bandwidth Multicast in Cooperative Environments」、Proceedings of the 19th ACM Symposium on Operating Systems Principles 、２００３年１０月、ｐ．２９８−３１３
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかし、上記の効率的な配信処理を実現する技術システムには、以下に述べるような問題点が存在する。
【００１３】
第１の問題点は、特許文献１に記載されている従来技術では、各ノードのアクセス回線速度が均一でない場合に、各ノードのアクセス回線がボトルネックとなるので、効率的なコンテンツ配信処理を実現できないことである。その理由は、制御用パラメータが、端末間で共用されるネットワーク（バックボーン）側の輻輳制御を目的として設定されていて、各端末のアクセス回線速度およびその速度の不均質性が考慮されていないためである。
【００１４】
第２の問題点は、非特許文献１に記載されている従来技術では、ノードのアクセス回線速度が均一でない場合に、アクセス回線側とバックボーンネットワーク側の双方にボトルネックとなる回線が混在すると、コンテンツ配信の効率が低下することである。その理由は、マルチキャストツリー構築方法がバックボーンネットワーク側だけにボトルネックが存在する場合を想定して設計されていて、各ノードのアクセス回線速度がボトルネックとなる場合が考慮されていないためである。
【００１５】
第３の問題点は、非特許文献２に記載されている従来技術では、ストリーム配信を行う場合を想定していて、バルクデータ配信における全体の配信完了時間を最小化する方法を提供していないことである。
【００１６】
そこで、本発明は、コンテンツ配送処理の負荷を効率的に分散する通信ネットワーク、コンテンツ配信ノード、ツリー構築方法およびコンテンツ配信制御プログラムを提供することを目的とする。また、本発明は、配信効率を向上させ、コンテンツ配信完了時間を短縮する通信ネットワーク、コンテンツ配信ノード、ツリー構築方法およびコンテンツ配信制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１７】
本発明による通信ネットワークは、配信元ノードからマルチキャストにより複数の配信先ノードに対して同一のコンテンツを配信する通信ネットワークにおいて、配信元ノードと配信先のノードとの間に、コンテンツの配信経路となる複数のツリーを構築するツリー構築手段と、配信するコンテンツを複数のデータブロックに分割するコンテンツ分割手段と、ツリー構築手段が構築したツリー毎の通信状態を観測し、データブロック毎に、通信状態に応じて配信に用いるツリーをそれぞれ選択する配信経路選択手段と、配信経路選択手段によって選択されたツリーを介してデータブロックを配信するコンテンツ配信手段とを備えた通信ネットワークであって、配信元ノードおよび配信先ノードのアクセス回線速度に基づいて、ノード毎のファンアウト数の上限値を算出するファンアウト数上限値算出手段を備え、ツリー構築手段は、配信元ノードおよび配信先ノードのファンアウト数がファンアウト数上限値算出手段によって算出されたファンアウト数の上限値を超えないように個々のツリーを構築することを特徴とする。
【００１８】
ツリー構築手段は、複数のツリーを構築する際に、一つのツリーを構築したら、次のツリーを構築する際に使用する配信元ノードおよび配信先ノードのそれぞれのアクセス回線速度を再度計算する回線速度計算手段を備え、ファンアウト数上限値算出手段は、回線速度計算手段が再計算したアクセス回線速度に基づいて、配信元ノードおよび配信先ノード毎のファンアウト数の上限値を再度計算し、当該ツリー構築手段は、ファンアウト数上限値算出手段によって再計算されたファンアウト数上限値を超えないように次のツリーを構築するように構成されていてもよい。
【００１９】
ファンアウト数上限値算出手段は、配信元ノードまたは配信先ノードのアクセス回線速度の速さに応じた値となるように、ノード毎のファンアウト数の上限値を算出するように構成されることが好ましい。
【００２０】
ファンアウト数上限値算出手段は、配信元ノードおよび配信先ノードのアクセス回線速度の和を配信先ノードの数で除算し、除算して得られた値によって各ノードのアクセス回線速度を除算し、各ノードのアクセス回線を除算して得られた値の小数点以下を切り下げた値を、各ノードのファンアウト数の上限値としてもよい。
【００２１】
ファンアウト数上限値算出手段は、各ノードのファンアウト数の上限値の合計値が配信先ノードの数に満たない場合に、各ノードについて、アクセス回線速度をそれぞれのノードのファンアウト数の上限値に１を加えた値で除算し、除算して得られた値が最大であるノードのファンアウト数の上限値を、各ノードのファンアウト数の上限値の合計値が配信先ノードの数以上となるまで１ずつ増やすように構成されていてもよい。
【００２２】
ファンアウト数上限値算出手段は、ファンアウト数の上限値を設定してツリーを生成したときに、ファンアウト数の上限値が原因となって配信元ノードおよび全ての配信先ノードを含むツリーが生成されなかった場合に、ツリー構築手段によって配信元ノードと全ての配信先ノードとを含むツリーが生成されるまで、ノードのファンアウト数の上限値を１増やすように構成されていてもよい。
【００２３】
ツリー構築手段は、配信元ノードおよび配信先ノードのファンアウト数がそれぞれのファンアウト数の上限値を超えないように、スループットの大きさを基準にしてノード間のパスと該パスに接続された配信先ノードとを選択し、ツリーを構築するように構成されていてもよい。
【００２４】
ツリー構築手段は、スループットが最大のパスから順に選択してツリーを構築してもよい。
【００２５】
ツリー構築手段は、既にツリーに加えられた配信元ノードおよび配信先ノードのうちファンアウト数がファンアウト数の上限値未満のノードとツリーに加えられていない配信先ノードとの間のスループットが最大であるパスと、該パスに接続されていてツリーに加えられていない配信先ノードとを順次選択し、ツリーを構築してもよい。
【００２６】
配信元ノードが、ファンアウト数上限値算出手段と、ツリー構築手段とを備えていてもよい。
【００２７】
また、本発明による通信ネットワークは、管理サーバを備え、管理サーバが、ファンアウト数上限値算出手段と、ツリー構築手段とを備えていてもよい。
【００２８】
本発明による好ましい態様の通信ネットワークは、ノード毎のアクセス回線速度および上流の受信者が情報の複製を下流の受信者に転送する数（ファンアウト数）の上限値を個々に考慮して、複数のツリーでコンテンツを配信することで、コンテンツ配送処理の負荷を効率的に分散する。
【００２９】
本発明による好ましい態様の通信ネットワークは、ノード毎のアクセス回線速度およびファンアウト数の上限値を個々に考慮して複数のツリーでコンテンツを配信することで、配信効率を向上させ、コンテンツ配信完了時間を短縮する。
【００３０】
本発明による好ましい態様の通信ネットワークでは、通信ネットワーク上で、配信元ノード（例えばソースノード２００）からマルチキャストにより複数の配信先のノード（例えば配信対象ノード２０１〜２０３）に対して同一のコンテンツを配信する場合に、配信元ノードが、配信元ノードおよび配信先のノードのアクセス回線速度に基づいて、配信元のノードおよび配信先のノード毎のファンアウト数の上限値を算出する。また、配信元のノードまたは配信先のノードのアクセス回線速度に比例した値となるように、ノード毎のファンアウト数の上限値を算出する。更に、配信元のノードおよび配信先のノードのファンアウト数が、算出されたファンアウト数の上限値を超えないように、スループットの大きさを基準にしてノード間のパスと配信先ノードを順次選択することで、コンテンツの配信経路となるツリーを構築する。
【００３１】
更に、ツリー構築が完了すると、その構築したツリーが使用した全てのパスおよびアクセス回線に関して、次のツリーを構築するために使用することができる残余スループットを算出する（例えば図５におけるステップＳ５１１）。また、配信元ノードが、配信元ノードおよび配信先のノードのアクセス回線残余スループットに基づいて、配信元のノードおよび配信先の次のツリーを構築するためのノード毎のファンアウト数の上限値を算出する。また、配信元のノードまたは配信先のノードのアクセス回線残余スループットに比例した値となるように、次のツリーを構築するためのノード毎のファンアウト数の上限値を算出する。更に、配信元のノードおよび配信先のノードのファンアウト数が、算出された次のツリーを構築するためのファンアウト数の上限値を超えないように、次のツリーを構築するためのパスの残余スループットの大きさを基準にしてノード間のパスと配信先ノードを順次選択することで次のツリーを構築する。その場合、配信元ノードおよび配信先ノードのファンアウト数が、ファンアウト数の上限値を超えないように、スループットが最大のパスから順に選択する。
【００３２】
また、構築したツリー上の全てのパススループット値から、そのツリー上のパススループット値の最小値を減算し、更に、そのツリー上の転送ノードのアクセス回線上り方向のスループット値から、そのツリーにおけるパススループット値の最小値とそのノードのファンアウト数の積を減算することで、次のツリーを構築するためのパスの残余スループット値と、ノードのアクセス回線の残余スループット値を算出する。
【００３３】
また、ツリー構築が完了すると、まだ次のツリーを構築するために必要なパススループットとアクセス回線スループットが残っている場合は、所定のツリー数に達するまでの次のツリーを構築する作業を繰り返す。
【００３４】
そして、ツリーの構築が完了するとそのツリーに従ってコンテンツを配信する。
【００３５】
また、データ（コンテンツ）を複数のブロックに分割して、複数のツリーに適切にブロックを割り振ることでデータを配信する。また、データを複数のブロックに分割して、複数のツリーの各々の応答時間を測定して、測定結果に基づいて各ツリーに割り振るデータブロックを決定してもよい。
【００３６】
本発明によるコンテンツ配信ノードは、配信元ノードからマルチキャストにより複数の配信先ノードに対して同一のコンテンツを配信する通信ネットワークにおいて、配信元ノードと配信先のノードとの間に、コンテンツの配信経路となる複数のツリーを構築するツリー構築手段と、配信するコンテンツを複数のデータブロックに分割するコンテンツ分割手段と、ツリー構築手段が構築したツリー毎の通信状態を観測し、データブロック毎に、通信状態に応じて配信に用いるツリーをそれぞれ選択する配信経路選択手段と、配信経路選択手段によって選択されたツリーを介してデータブロックを配信するコンテンツ配信手段とを備えたコンテンツ配信ノードであって、当該コンテンツ配信ノードおよび配信先ノードのアクセス回線速度に基づいてノード毎のファンアウト数の上限値を算出するファンアウト数上限値算出手段を備え、ツリー構築手段は、当該コンテンツ配信ノードおよび配信先ノードのファンアウト数がファンアウト数上限値算出手段によって算出されたファンアウト数の上限値を超えないように個々のツリーを構築することを特徴とする。
【００３７】
本発明によるツリー構築方法は、配信元ノードからマルチキャストにより複数の配信先ノードに対して同一のコンテンツを配信する通信ネットワークにおいて使用されるツリー構築方法であって、当該配信元ノードと配信先のノードとの間に、コンテンツの配信経路となる複数のツリーを構築するステップと、配信するコンテンツを複数のデータブロックに分割するステップと、構築したツリー毎の通信状態を観測して、データブロック毎に、通信状態に応じて配信に用いるツリーをそれぞれ選択するステップと、選択したツリーを介してデータブロックを配信するステップとを含むツリー構築方法であって、当該配信元ノードおよび配信先ノードのアクセス回線速度に基づいてノード毎のファンアウト数の上限値を算出するステップと、当該配信元ノードおよび配信先ノードのファンアウト数が算出したファンアウト数の上限値を超えないように、ノード間のパスと該パスに接続された配信先ノードとを選択するステップと、選択したパスおよび配信先ノードをツリーに追加するステップとを含むことを特徴とする。
【００３８】
本発明によるツリー構築方法は、ノード毎のファンアウト数の上限値を、当該配信元ノードまたは配信先ノードのアクセス回線速度の速さに応じた値となるように算出することが好ましい。
【００３９】
複数のツリーを構築する際に、一つのツリーを構築したら、次のツリーを構築する際に使用する当該配信元ノードおよび配信先ノードのそれぞれのアクセス回線速度を再度計算するステップと、再計算したアクセス回線速度に基づいて、当該配信元ノードおよび配信先ノード毎のファンアウト数の上限値を再度計算するステップとを含んでいてもよい。
【００４０】
当該配信元ノードおよび配信先ノードのアクセス回線速度の和を配信先ノードの数で除算するステップと、除算して得られた値によって各ノードのアクセス回線速度を除算するステップと、各ノードのアクセス回線を除算して得られた値の小数点以下を切り下げた値を、各ノードのファンアウト数の上限値とするステップとを含んでいてもよい。
【００４１】
各ノードのファンアウト数の上限値の合計値が配信先ノードの数に満たない場合に、各ノードについて、アクセス回線速度をそれぞれのノードのファンアウト数の上限値に１を加えた値で除算するステップと、除算して得られた値が最大であるノードのファンアウト数の上限値を、各ノードのファンアウト数の上限値の合計値が配信先ノードの数以上となるまで１ずつ増やすステップとを含んでいてもよい。
【００４２】
ファンアウト数の上限値を設定してツリーを生成したときに、配信元ノードおよび全ての配信先ノードを含むツリーが生成されなかった場合に、当該配信元ノードと全ての配信先ノードとを含むツリーが生成されるまで、ノードのファンアウト数の上限値を１増やすステップを含んでいてもよい。
【００４３】
当該配信元ノードおよび配信先ノードのファンアウト数がそれぞれのファンアウト数の上限値を超えないように、スループットの大きさを基準にしてノード間のパスと該パスに接続された配信先ノードとを選択し、ツリーを構築するステップを含んでいてもよい。
【００４４】
スループットが最大のパスから順に選択してツリーを構築するステップを含んでいてもよい。
【００４５】
ツリーを構築する際に、既にツリーに加えられた当該配信元ノードおよび配信先ノードのうちファンアウト数がファンアウト数の上限値未満のノードとツリーに加えられていない配信先ノードとの間のスループットが最大であるパスと、該パスに接続されていてツリーに加えられていない配信先ノードとを順次選択するステップを含んでいてもよい。
【００４６】
配信元ノードが、ファンアウト数上限値の算出およびツリーの構築を行ってもよい。
【００４７】
本発明によるコンテンツ配信制御プログラムは、配信元ノードからマルチキャストにより複数の配信先ノードに対して同一のコンテンツを配信する通信ネットワークにおける、配信元ノードと配信先のノードとの間にコンテンツの配信経路となる複数のツリーを構築するツリー構築処理と、配信するコンテンツを複数のデータブロックに分割するコンテンツ分割処理と、ツリー構築処理で構築したツリー毎の通信状態を観測して、データブロック毎に、通信状態に応じて配信に用いるツリーをそれぞれ選択する配信経路選択処理と、配信経路選択処理で選択したツリーを介してデータブロックを配信するコンテンツ配信処理とを実行するシステムにおいて、コンピュータに、配信元ノードおよび配信先ノードのアクセス回線速度に基づいてノード毎のファンアウト数の上限値を算出するファンアウト数上限値算出処理と、ツリー構築処理で、配信元ノードおよび配信先ノードのファンアウト数がファンアウト数上限値算出処理で算出したファンアウト数の上限値を超えないように個々のツリーを構築する処理とを実行させることを特徴とする。
【００４８】
コンテンツ配信制御プログラムは、コンピュータに、ファンアウト数上限値算出処理で、配信元ノードまたは配信先ノードのアクセス回線速度に応じた値となるようにノード毎のファンアウト数の上限値を算出する処理を実行させるように構成されていてもよい。
【００４９】
本発明によるコンテンツ配信制御プログラムは、コンピュータに、複数のツリーを構築する際に、一つのツリーを構築したら、次のツリーを構築する際に使用する配信元ノードおよび配信先ノードのそれぞれのアクセス回線速度を再度計算するアクセス回線計算処理と、アクセス回線計算処理で再計算したアクセス回線速度に基づいて、配信元ノードおよび配信先ノード毎のファンアウト数の上限値を再度計算する処理とを実行させる。
【００５０】
本発明によるコンテンツ配信制御プログラムは、コンピュータに、ファンアウト数上限値算出処理で、配信元ノードおよび配信先ノードのアクセス回線速度の和を配信先ノードの数で除算し、除算して得られた値によって各ノードのアクセス回線速度をそれぞれ除算し、各ノードのアクセス回線を除算して得られた値の小数点以下を切り下げた値を、各ノードのファンアウト数の上限値とする処理を実行させる。
【００５１】
本発明によるコンテンツ配信制御プログラムは、コンピュータに、各ノードのファンアウト数の上限値の合計値が配信先ノードの数に満たない場合に、各ノードについて、アクセス回線速度をそれぞれのノードのファンアウト数の上限値に１を加えた値で除算する処理と、除算して得られた値が最大であるノードのファンアウト数の上限値を、各ノードのファンアウト数の上限値の合計値が配信先ノードの数以上となるまで１ずつ増やす処理とを実行させる。
【００５２】
また、本発明によるコンテンツ配信制御プログラムは、コンピュータに、ファンアウト数の上限値を設定してツリーを生成したときに、配信元ノードおよび全ての配信先ノードを含むツリーが生成されなかった場合に、配信元ノードと全ての配信先ノードとを含むツリーが生成されるまで、ノードのファンアウト数の上限値を１増やす処理を実行させる。
【００５３】
また、本発明によるコンテンツ配信制御プログラムは、コンピュータに、ツリー構築処理で、配信元ノードおよび配信先ノードのファンアウト数がそれぞれのファンアウト数の上限値を超えないように、スループットの大きさを基準にしてノード間のパスと該パスに接続された配信先ノードとを選択し、ツリーを構築する処理を実行させる。
【００５４】
また、本発明によるコンテンツ配信制御プログラムは、コンピュータに、ツリー構築処理で、スループットが最大のパスから順に選択する処理を実行させる。
【００５５】
また、本発明によるコンテンツ配信制御プログラムは、コンピュータに、ツリー構築処理で、既にツリーに加えられた配信元ノードおよび配信先ノードのうちファンアウト数がファンアウト数の上限値未満のノードとツリーに加えられていない配信先ノードとの間のスループットが最大であるパスと、該パスに接続されていてツリーに加えられていない配信先ノードとを順次選択する処理を実行させる。
【発明の効果】
【００５６】
本発明によれば、コンテンツ配送処理の負荷を効率的に分散することができる。また、本発明によれば、配信効率を向上させ、コンテンツ配信完了時間を短縮することができる。具体的には、本発明によれば、以下の効果を得ることができる。
【００５７】
第１の効果は、通信ネットワークのノード毎の上りアクセス回線速度が均一でない場合でも、全配信対象ノードに対するコンテンツ配送処理の負荷が特定リンクに集中しないように複数のツリーを構築することができることである。更に、データを複数のブロックに分割して、各々のツリーの応答時間に基づいて各ツリーに割り振るブロックを決定することで、アクセス回線側とバックボーンネットワーク側の双方にボトルネック箇所が存在し得る場合でも、コンテンツ配信の効率が低下することを防ぐことができる。
【００５８】
その理由は、ノード毎のアクセス回線帯域に応じてファンアウト数の上限値を算出し、算出したファンアウト数の上限値にもとづいて複数のツリーを構築してコンテンツを配信するので、ノード毎のアクセス回線速度が均一でない場合でも、ノードの上りのアクセス回線速度がボトルネックとならない複数のツリーを構築できるからである。更に、データを複数のブロックに分割し、複数ツリーの各々の応答時間を計測して、各々のツリーの応答時間に基づいて各ツリーに割り振るブロックを決定することで、バックボーンネットワーク側のトラヒックの変化にも対応できると共に、バックボーンネットワーク側にボトルネック箇所が存在する場合でも通信負荷を効率的に分散できるからである。したがって、全体としてコンテンツ配送処理の負荷が特定リンクに集中しないような配信を実現できる。
【００５９】
第２の効果は、通信ネットワークのノード毎のアクセス回線速度が均一でなく、同時にバックボーンネットワークの混雑状況が一定でないために、アクセス回線側とバックボーンネットワーク側の双方にボトルネック箇所が存在し得る場合でも、全配信対象ノードに対する性能の良い複数のツリーを構築することができることである。したがって、コンテンツ配信完了時間を短縮できる。
【００６０】
その理由は、ノード毎のアクセス回線帯域に応じてファンアウト数の上限値を算出し、ノード毎のファンアウト数の上限値に応じ、ノード間のスループット値が大きいパスを順次選択することでコンテンツの配信経路となるツリーを構築するからである。更に、残余スループットを使って同様の手順で複数のツリーを構築し、データを複数のブロックに分割して、各々のツリーの応答時間に基づいて各ツリーに割り振るブロックを決定するからである。したがって、アクセス回線側とバックボーンネットワーク側の双方にボトルネック箇所が存在し得る場合でも通信速度を低下させることなく通信負荷を効率よく分散することができる。
【発明を実施するための最良の形態】
【００６１】
実施の形態１．
以下、本発明の実施の形態を図面を参照して説明する。図１は、本発明による通信ネットワークの物理的な構成例を示すシステム構成図である。ネットワーク１５０において、ルータ２１１〜２１４を有するバックボーンネットワーク１６０を介して、コンテンツの配信元であるソースノード２００と、コンテンツの配信先となる配信対象ノード２０１〜２０３とが接続されている。本実施の形態では、バックボーンネットワーク１６０に対するソースノード２００の上り方向のアクセス回線速度Ａ１が１００Ｍｂｐｓ、配信対象ノード２０３の上り方向のアクセス回線速度Ａ２が７０Ｍｂｐｓ、配信対象ノード２０１の上り方向のアクセス回線速度Ａ３が１０Ｍｂｐｓ、配信対象ノード２０２の上り方向のアクセス回線速度Ａ４が１Ｍｂｐｓであると想定する。
【００６２】
ネットワーク１５０では、ソースノード２００から全ての配信対象ノード２０１〜２０３に対して同一のコンテンツがマルチキャストにより配信される。なお、図１では、３つの配信対象ノードを示しているが、通信ネットワークは、さらに多くの配信対象ノードを含んでいてもよい。
【００６３】
図２は、図１に示す物理的なネットワーク１５０を論理的にモデル化して説明するための説明図である。図１に示すようなネットワーク１５０上でコンテンツの配信を行う場合に、図２に示すような論理フルメッシュ（完全重み付き有向グラフ）で形成される論理ネットワーク１００上で、後述する方法によってコンテンツ配信のためのツリーが構築される。そして、その構築したツリーに従ってコンテンツのマルチキャストによる配信が実行される。なお、論理ネットワーク１００は、全ノードを含むトポロジーとなっていれば、必ずしもフルメッシュである必要はない。
【００６４】
図２に示されているように、論理ネットワーク１００は、ソースノード２００と配信対象ノード２０１〜２０３間が、論理リンクであるパス３０１〜３０６によってフルメッシュで接続された構成となっている。
【００６５】
図３は、論理ネットワーク１００の特性を示す模式図である。図３に示すように、各パス３０１〜３０６に、ソースノード２００および配信対象ノード２０１〜２０３間のスループットの情報が付与されている。スループットは、各パスに付した矢印とそれに対応した数値とによって示されている。例えば、パス３０１のソースノード２００から配信対象ノード２０３に向かう方向のスループットは５５Ｍｂｐｓであることが示されている。これらの情報（スループットの情報）は、予めソースノード２００に登録され管理されている。
【００６６】
図４は、ソースノード２００のハードウェアの一構成例を示すブロック図である。図４に示されているように、ソースノード２００は、一般的なコンピュータ装置と同様のハードウェア構成によって実現することができる。具体的には、ソースノード２００は、ＣＰＵ４０１と、主記憶部４０２と、ネットワーク伝送制御部４０３と、ハードディスク装置等の補助記憶部４０４と、キーボードやマウス等の入力部４０５と、液晶ディスプレイ等の表示部４０６とを備えている。
【００６７】
主記憶部４０２には、例えばＲＡＭなどの半導体素子によって実現される。主記憶部４０２には、補助記憶部４０４に格納されたコンテンツ配信制御プログラム５００等がロードされる。
【００６８】
ＣＰＵ４０１が主記憶部４０２にロードされたコンテンツ配信制御プログラム５００を実行することによって、ソースノード２００は、後述するコンテンツ配信のためのツリー構築の処理を行う機能およびマルチキャストによるコンテンツの配信を行う機能を提供する。
【００６９】
ネットワーク伝送制御部４０３は、所定の通信プロトコルにしたがって信号の送受信を行う機能を有する。具体的には、ネットワーク伝送制御部４０３は、ネットワーク１６０への回線接続等を実行する。
【００７０】
なお、ノードＩＤ、ＩＰアドレス、アクセス回線情報、ノード間のスループット値等を含む情報も、補助記憶部４０４などに格納される。
【００７１】
次に、論理ネットワーク１００におけるコンテンツ配信制御の手順について説明する。図５は、ソースノード２００によるツリー構築手順を示すフローチャートである。ソースノード２００は、論理ネットワーク１００上で複数の配信対象ノード２０１〜２０３に対して同一のコンテンツを配信する。
【００７２】
まず、ソースノード２００には、配信対象としてのノードと、生成するツリー数の上限値と、個々のツリーの最低スループット値の下限値とが登録される（ステップＳ５０１）。ステップＳ５０１では、ノード２０１〜２０３のノードＩＤ、ＩＰアドレス、アクセス回線情報、ノード間のスループット値等を含む情報がソースノード２００に登録される。なお、図２に示されているネットワーク構成では、初期状態では、ソースノード２００だけがツリーに追加され、配信対象ノードおよびパスの何れもツリーに追加されていない。
【００７３】
配信対象ノード２０１〜２０３をソースノード２００に登録した後、以下の手順によってツリーを構築する。そして、構築したツリーに従って、ソースノード２００が複数の配信対象ノード２０１〜２０３に対して同一のコンテンツをマルチキャストにより配信する。
【００７４】
ソースノード２００は、ソースノード２００および配信対象ノード２０１〜２０３のファンアウト数の上限値をそれぞれ算出する（ステップＳ５０２）。ファンアウト数とは、上流の受信者が情報の複製を下流の受信者に転送できる数である。
【００７５】
ステップＳ５０２におけるソースノード２００の動作を、図６のフローチャートを参照して説明する。図６は、各ノードのファンアウト数の上限値の算出手順を示すフローチャートである。
【００７６】
まず、ソースノード２００は、ソースノード２００および配信対象ノード２０１〜２０３について、上り方向のアクセス回線速度Ａｉを求める（ステップＳ６０１）。ここで、ｉは、１からノード数ｎまでの任意の整数である。なお、上述したように、図１および図２に示すネットワークにおいて、上り方向のアクセス回線速度Ａ１は１００Ｍｂｐｓ、上り方向のアクセス回線速度Ａ２は７０Ｍｂｐｓ、上り方向のアクセス回線速度Ａ３は１０Ｍｂｐｓ、上り方向のアクセス回線速度Ａ４は１Ｍｂｐｓである。
【００７７】
次いで、下記の式１にもとづいて、ｘ（Ｍｂｐｓ）を算出する（ステップＳ６０２）。このｘ（Ｍｂｐｓ）は、ツリー構成時に用いる論理パスあたりの想定データ転送速度を意味している。
【００７８】
【数１】
2008078775.tif 000003
【００７９】
本実施の形態では、
ΣＡｉ＝１００＋７０＋１０＋１＝１８１（Ｍｂｐｓ）
となり、全配信対象ノード数は配信対象ノード２０１〜２０３の「３」であるから、数１から、ｘ（Ｍｂｐｓ）＝１８１／３≒６０．３（Ｍｂｐｓ）が算出される。
【００８０】
次に、各ノードのファンアウト数の上限値として、Ａｉ／ｘの小数点以下を切り下げた値を算出する（ステップＳ６０３）。例えば、ソースノード２００のファンアウト数の上限値として、１００／６０．３≒１．７の小数点以下を切り下げた値「１」が算出される。同様に、配信対象ノード２０１のファンアウト数の上限値として、１０／６０．３≒０．１７の小数点以下を切り下げた値「０」が、配信対象ノード２０２のファンアウト数の上限値として、１／６０．３≒０．０１７の小数点以下を切り下げた値「０」が、配信対象ノード２０３のファンアウト数の上限値として、７０／６０．３≒１．２の小数点以下を切り下げた値「１」がそれぞれ算出される。したがって、各ノードのファンアウト数の上限値の合計値は１＋０＋０＋１＝２となる。なお、算出されたそれぞれのファンアウト数の上限値は、配信元または配信先のノードのアクセス回線速度にほぼ比例した値である。
【００８１】
ここで、ファンアウト数の上限値の合計値２は、全ノード数４から１（ソースノード）を引いた値３に満たないので（ステップＳ６０４：ＹＥＳ）、ファンアウト数の上限値を追加することになる。その場合、まず各ノードのファンアウト数の上限値に１を加えた値で、それぞれのノードのスループット（アクセス回線速度）を除算する。例えば、ソースノード２００のファンアウト数の上限値を１増やした場合の上限値は２となり、この値でスループット１００を割ると５０となる。同様に、配信対象ノード２０１の場合１０÷１＝１０となり、配信対象ノード２０２の場合１÷１＝１となり、配信対象ノード２０３の場合７０÷２＝３５となる。
【００８２】
そして、上限値を１増やした場合のファンアウト数１当たりの単位スループットを比較すると、ソースノード２００の５０という値が最も大きいので、ソースノード２００のファンアウト数の上限値を１増やす（ステップＳ６０５）。すなわち、ソースノード２００のファンアウト数の上限値は２となる。結果として、ステップＳ５０２では、ソースノード２００のファンアウト数の上限値として「２」が、配信対象ノード２０１のファンアウト数の上限値として「０」が、配信対象ノード２０２のファンアウト数の上限値として「０」が、配信対象ノード２０３のファンアウト数の上限値として「１」がそれぞれ算出される。
【００８３】
上記のようにファンアウト数の上限値を設定してツリーを生成したときに、ファンアウトの上限値設定の影響で配信元ノードと全ての配信先ノードを含むツリーが一つも生成されない場合には、上記と同様の作業によりファンアウト数の上限値を増やして、再度ツリーを生成する。具体的には、ソースノード２００は、ステップＳ５０３およびステップＳ５０４でファンアウト数の上限値を調整する。なお、「ファンアウトの上限値設定の影響で」とは、例えば、全ての既にツリーに追加されているノードのファンアウト数が上限値に達しているためにスパニングツリーが生成されない場合をいう。
【００８４】
ソースノード２００は、ファンアウト数が上限値未満であるツリー加入ノードが存在するか否かを判定する（ステップＳ５０３）。初期状態では、ソースノード２００のファンアウト数が上限値未満であるか否かを判定する。そして、ファンアウト数が上限値未満であるツリー加入ノードが存在しない場合、ソースノード２００は、ファンアウト数の上限値を調整する（ステップＳ５０４）。
【００８５】
図７は、ファンアウト数の上限値を調整する際の動作を示すフローチャートである。ソースノード２００は、ファンアウト数１当たりの単位スループットが最大のノードのファンアウト数の上限値を１増やす（ステップＳ７０１）。具体的には、ソースノード２００は、ステップＳ６０５と同様の処理を実行する。そして、ソースノード２００は、ファンアウト数が上限値未満であるツリー加入ノードが存在するか否かを判定する（ステップＳ７０２）。ソースノード２００は、ファンアウト数が上限値未満であるツリー加入ノードが存在するようになるまで、ステップＳ７０１とステップＳ７０２を繰り返し実行する。
【００８６】
各ノードのファンアウト数の上限値を算出すると、ソースノード２００はツリーに追加するノードを選択する。具体的には、ソースノード２００は、既にツリーに追加されているノードでファンアウト数が算出した上限値未満（ファンアウト数＜上限値）のノードとツリーに追加されていないノードとの間のスループットが最大であるパスおよびそのパスを含むノードを選択する（ステップＳ５０５）。
【００８７】
次いで、ソースノード２００は、スループット最大のパスが複数存在するかどうかを調べ（ステップＳ５０６）、複数存在する場合には、任意の１つのパスおよびノードを選択する（ステップＳ５０７）。ステップＳ５０６で複数のパスが存在しない場合には、ソースノード２００は、ステップＳ５０８の処理に進む。
【００８８】
そして、ソースノード２００は、ステップＳ５０５およびステップＳ５０７で選択したパスおよびノードをツリーに追加する（ステップＳ５０８）。
【００８９】
次に、ソースノード２００は、ネットワークの全てのノードがツリーに含まれているか（全てのノードが追加されているか）どうかを調べる（ステップＳ５０９）。ステップＳ５０９で全てのノードがツリーに含まれていないと判定した場合、ソースノード２００は、ステップＳ５０３に戻り、全ノードがツリーに追加されるまで処理を繰り返し実行する。
【００９０】
全てのノードが含まれていると判定した場合（ステップＳ５０９：ＹＥＳ）、ツリーが完成したことを示しているので、ソースノード２００は、生成したツリーの数がステップＳ５０１で登録された生成ツリー数上限値未満であるかどうかを確認する（ステップＳ５１０）。
【００９１】
生成したツリーの数が生成ツリー数上限値未満である場合は（ステップＳ５１０：ＹＥＳ）、次のツリーを生成するために、ノード間のパススループット値およびノードの上り方向のアクセス回線速度の再計算を行う（ステップＳ５１１）。
【００９２】
ソースノード２００によるノード間のパススループット値およびノードの上り帯域（上り方向のアクセス回線速度）の再計算の手順について、図８のフローチャートを用いて説明する。まず、ソースノード２００は、生成したツリー上のパススループット値の最小値Ｂｍｉｎを算出する（ステップＳ８０１）。
【００９３】
ソースノード２００は、生成したツリーが使用した全てのパスのスループット値からそれぞれＢｍｉｎを減算し（ステップＳ８０２）、それらの値を次のツリー生成で用いるパススループット値とする。
【００９４】
そして、ソースノード２００は、でき上がったツリー上の転送ノードの上り方向のアクセス回線速度から「Ｂｍｉｎ×ツリー上のファンアウト数」を引いた値を算出し、それらを次のツリーを生成するための上り方向のアクセス回線速度とする（ステップＳ８０３）。
【００９５】
ステップＳ５１１でノード間のパススループット値およびノードの上りスループット値の再計算が終わると、ソースノード２００は、ステップＳ５０２に戻り次のツリー生成を開始する。
【００９６】
生成したツリー数が生成ツリー数上限値以上である場合は（ステップＳ５１０：ＮＯ）、ソースノード２００は、完成したツリーに従って各配信対象ノード２０１〜２０３に対してコンテンツの配信を実行する（ステップＳ５１２）。
【００９７】
次に、上述したツリー構築方法をより具体的に説明する。図９は、図３の論理ネットワークにおいて、生成ツリー数上限値を「２」とした場合のツリー構築の過程を示す説明図である。
【００９８】
図９（１−ａ）に示す状態では、既にツリーに追加されているノードでファンアウト数が算出した上限値未満のノードとして、ソースノード２００が該当する。ツリーに追加されていないノードとして配信対象ノード２０１〜２０３が該当する。ソースノード２００は、ソースノード２００と各配信対象ノード２０１〜２０３間とのスループットを調べ、ソースノード２００と未加入ノード間とのスループットが最大であるパスとしてパス３０１を選択し、パス３０１に接続されている配信対象ノード２０３を選択する（ステップＳ５０５）。
【００９９】
パス３０１および配信対象ノード２０３が選択された状態を図９（１−ｂ）に示す。なお、図９では、選択されているパスを波線で示し、選択後に追加されたパスを太線で示す。
【０１００】
そして、ソースノード２００は、スループット最大のパスが複数存在するかどうかを調べる（ステップＳ５０６）。この場合、選択されたパスはパス３０１だけであるので、ソースノード２００は、パス３０１と配信対象ノード２０３とをツリーに追加する（ステップＳ５０８）。この状態を図９（１−ｃ）に示す。
【０１０１】
次に、ソースノード２００は、全てのノードがツリーに含まれているかどうかを確認する（ステップＳ５０９）。図９（１−ｃ）の状態では、配信対象ノード２０１および２０２がツリーに含まれていないので、ソースノード２００はステップＳ５０３に戻り再度選択処理を実行する。
【０１０２】
パス３０１および配信対象ノード２０３が追加された状態である図９（１−ｃ）では、ソースノード２００のファンアウト数が「１」、配信対象ノード２０３のファンアウト数が「０」である。また、ファンアウト数の上限値は、ソースノードが「２」、配信対象ノード２０３が「１」である。
【０１０３】
図９（１−ｃ）の状態で、既にツリーに追加されているノードでファンアウト数が算出した上限値未満のノードとしては、ソースノード２００と配信対象ノード２０３とが該当する。そして、ツリーに追加されていないノードとして配信対象ノード２０１および２０２が該当する。したがって、ソースノード２００は、ソースノード２００と配信対象ノード２０１、２０２間および配信対象ノード２０３と配信対象ノード２０１、２０２間のパスのスループットを調べる。すなわち、パス３０２〜３０４とパス３０６のスループットを調べる。その結果、ソースノード２００は、スループットが最大であるパスとしてパス３０２を選択し、パス３０２に接続されている配信対象ノード２０１も選択する（ステップＳ５０５。選択された状態を図９（１−ｄ）に示す。）。この場合、候補が一つであるので、選択したパスおよびノードはツリーに追加される（図１０（１−ｅ））。
【０１０４】
パス３０２と配信対象ノード２０１が追加された状態（図１０（１−ｅ））では、ソースノード２００のファンアウト数が「２」、配信対象ノード２０１および２０３のファンアウト数が「０」である。また、ファンアウト数の上限値は、ソースノード２００が「２」、配信対象ノード２０１が「０」、配信対象ノード２０３が「１」である。
【０１０５】
図１０（１−ｅ）に示されている状態では、配信対象ノード２０２がツリーに含まれていないので、ソースノード２００はステップＳ５０３に戻り再度選択処理を実行する（ステップＳ５０９：ＮＯ）。
【０１０６】
図１０（１−ｅ）に示されている状態では、既にツリーに追加されているノードのうち、ファンアウト数が算出した上限値未満であるノードとしては、配信対象ノード２０３が該当する。そして、ツリーに追加されていないノードは配信対象ノード２０２のみである。なお、既にツリーに追加されているノードのうちソースノード２００と配信対象ノード２０１については、ステップＳ５０３でファンアウト数の上限値未満の条件を満たさないので、対象から除かれる。
【０１０７】
ソースノード２００は、図１０（１−ｆ）に示されているように、パス３０６および配信対象ノード２０２を選択し、ツリーに追加する（図１０（１−ｇ））。図１０（１−ｇ）では、全てのノードがツリーに含まれている状態となるので（ステップＳ５０９：ＹＥＳ）、ソースノード２００はステップＳ５１０に進み処理を実行する。すなわち、一つ目のツリーが完成したことになる。
【０１０８】
完成したツリー数が「１」で生成ツリー数の上限値の「２」を下回るので（ステップＳ５１０：ＹＥＳ）、ソースノード２００は、二つ目のツリーを作成することになる。ソースノード２００は、パススループット値とノード毎の上り回線のアクセス回線速度とを再計算する（ステップＳ５１１）。
【０１０９】
図１０（１−ｇ）で完成したツリー上のパスのスループット値はパス３０１が「５５」、パス３０２が「４０」、パス３０６が「６」であり、最小値はパス３０６の「６」である（ステップＳ８０１）。したがって、ソースノード２００は、ツリーが使用した全てのパス３０１、３０２、３０６のスループット値からそれぞれ「６」を引く（ステップＳ８０２）。更に、ソースノード２００はノード２００〜２０３の上り回線のアクセス回線速度から「６×ファンアウト数」を引く（ステップＳ８０３）。その結果、図１０（１−ｈ）に示されている状態となる。
【０１１０】
次に、二つ目のツリーを構築する際の動作について説明する。図１０（１−ｈ）に示されている状態において、ソースノード２００は、ステップＳ５０２に進み、一つ目のツリー作成時と同様に図５に従って二つ目のツリーを構築する。
【０１１１】
まず、ソースノード２００はパス３０１と配信対象ノード２０３とを選択し（図１１（２−ａ））、二つ目のツリーに追加する（図１１（２−ｂ））。
【０１１２】
次に、ソースノード２００はパス３０４と配信対象ノード２０１とを選択し（図１１（２−ｃ））、二つ目のツリーに追加する（図１１（２−ｄ））。
【０１１３】
そして、ソースノード２００はパス３０３と配信対象ノード２０２とを選択し（図１２（２−ｅ））、二つ目のツリーに追加する（図１２（２−ｆ））。
【０１１４】
ソースノード２００は、図１０（１−ｇ）および図１２（２−ｆ）に示されている二つのツリーが完成していることから（ステップＳ５１０：ＮＯ）、完成したツリーに従って全ての配信対象ノード２０１〜２０３に対して同一のコンテンツを配信する（ステップＳ５１２）。
【０１１５】
次に、複数ツリーによるコンテンツの配信の手順について説明する。図１３は、ソースノード２００が二つのツリーを用いてコンテンツを配信する場合の説明図である。
【０１１６】
図１３（ａ）に示すように、ソースノード２００はコンテンツ９０１を複数（ｍ個）のブロック９０２に分割する。そして、ソースノード２００は、まず一つ目のツリーに一つ目のブロックを割り振り、二つ目のツリーに二つ目のブロックを割り振る。
【０１１７】
なお、コンテンツをブロックに分割して配送する際、ソースノード２００は、各ブロックの先頭に制御情報を書き込む。制御情報とは、例えば各ブロックのＩＤであるblock_id、各ブロックの配信に用いるツリーのＩＤであるtree_id 、およびツリー情報である。各ブロックは固有のblock_idを、各ツリーは固有のtree_id を有する。また、ツリー情報とは、作成したツリー毎の、tree_id やトポロジー情報等である。各配信対象ノードは、受信したトポロジー情報を元にコンテンツの２次配信を実行する。
【０１１８】
配信対象ノード２０１〜２０３がブロックを受け取った後の動作について、ツリー１に着目して説明する。図１３（ｂ）に示すように、末端のリーフノードである配信対象ノード２０１は、ブロックの受信を完了すると上流のノード２００にＡｃｋ１を返す（送信する）。また、同じくリーフノードであるノード２０２は、ブロックの受信を完了すると上流のノード２０３にＡｃｋ２を返す。
【０１１９】
途中のノードであるノード２０３は、ブロックの受信を完了し、かつ下流ノード２０２からＡｃｋ２を受け取ると、上流ノード２００にＡｃｋ３を返す。ソースノード２００は、ツリー１における隣接ノード２０１、２０３からＡｃｋ１およびＡｃｋ３を受け取る（受信する）と、ツリー１に属する全てのノードに対してブロックの配信が完了したと判断する。そして、ソースノード２００は、次に配信するブロックをツリー１に割り振る。なお、あるツリーにおいて、Ａｃｋを待たずに送出できるブロック数の最大値を、任意に設定できることが好ましい。
【０１２０】
以上のように、本実施の態様の通信ネットワークでは、ノード毎のアクセス回線速度およびファンアウト数の上限値を個々に考慮し、複数のツリーを用いてコンテンツが配信される。その結果、コンテンツ配送処理の負荷を効率的に分散することができる。また、ノード毎のアクセス回線速度およびファンアウト数の上限値を個々に考慮して複数のツリーでコンテンツを配信することで、配信効率を向上させ、コンテンツ配信完了時間を短縮することもできる。
【０１２１】
以下、本実施の形態により得られる効果を具体的に述べる。
【０１２２】
本実施の形態では、ネットワーク１５０における各ノード２００〜２０３の上りアクセス回線速度Ａ１〜Ａ４が均一でない場合でも、全配信対象ノード２０１〜２０３に対するコンテンツ配送処理の負荷が特定リンクに集中しないように複数のツリーを構築することができる。更に、データを複数のブロックに分割して、各々のツリーの応答時間に基づいて各ツリーに割り振るブロックを決定することができる。したがって、第１の効果は、アクセス回線側とバックボーンネットワーク１６０の双方にボトルネック箇所が存在し得る場合でも、コンテンツ配信効率の低下を防ぐことができることである。
【０１２３】
その理由は、本実施の形態では、各ノード２００〜２０３の上りのアクセス回線速度Ａ１〜Ａ４を用いて算出した各ノード２００〜２０３のファンアウト数の上限値にもとづいてコンテンツを配信するからである。その場合、各ノード２００〜２０３のアクセス回線速度Ａ１〜Ａ４を超えることなくコンテンツを配信できることから、各ノード２００〜２０３のアクセス回線速度Ａ１〜Ａ４が均一でない場合でも、各ノード２００〜２０３の上りのアクセス回線速度Ａ１〜Ａ４がボトルネックとならない複数のツリーを構築できる。
【０１２４】
更に、本実施の形態では、データを複数のブロックに分割し、複数ツリーの各々の応答時間を計測して、各々のツリーの応答時間に基づいて各ツリーに割り振るブロックを決定するからである。バックボーンネットワーク１６０のトラヒックの変化にも対応できると共に、バックボーンネットワーク１６０にボトルネック箇所が存在する場合でも通信負荷を効率的に分散できる。その結果、全体としてコンテンツ配送処理の負荷が特定リンクに集中しないような配信を実現できる。
【０１２５】
また、本実施の形態では、ネットワーク１５０の各ノード２００〜２０３のアクセス回線速度が均一でなく、同時にバックボーンネットワークの混雑状況が一定でない場合であっても効果を得ることができる。つまり、第２の効果は、アクセス回線側とバックボーンネットワーク１６０側の双方にボトルネック箇所が存在し得る場合でも、全配信対象ノード２０１〜２０３に対する性能の良い複数のツリーを構築することができ、コンテンツ配信完了時間を短縮できることである。
【０１２６】
その理由は、各ノード２００〜２０３のアクセス回線速度Ａ１〜Ａ４およびその速度の不均質性を考慮し、上りのアクセス回線速度Ａ１〜Ａ４および全ノード数に基づいて各ノード２００〜２０３のファンアウト数の上限値を算出するからである。その場合、各ノード２００〜２０３のファンアウト数の上限値に応じ、各ノード２００〜２０３間のスループット値が大きいパスを順次選択することでコンテンツの配信経路となるツリーを構築する。
【０１２７】
更に、本実施の形態では、残余スループットを使って同様の手順で複数のツリーを構築し、データを複数のブロックに分割して、各々のツリーの応答時間に基づいて各ツリーに割り振るブロックを決定するからである。その結果、アクセス回線側とバックボーンネットワーク側の双方にボトルネック箇所が存在し得る場合でも通信速度を低下させることなく通信負荷を効率よく分散することができる。
【０１２８】
次に、本発明による通信ネットワークにおいて、ファンアウト数の上限値を条件に用いてツリー構築を行った場合の効果について説明する。
【０１２９】
図１４は、ファンアウト数の上限値を条件に用いて複数ツリーの構築を行った場合の効果を説明する説明図である。図１４には、配信完了時間とバックボーンを流れるバックグランドトラヒックとの関係が示されている。図１４に示されているネットワークの配信対象ノード数は３０である。そのうち、５ノードが第１の回線１００Ｍｂｐｓ、５ノードが第２の回線５０Ｍｂｐｓ、５ノードが第３の回線２５Ｍｂｐｓ、５ノードが第４の回線上り１Ｍｂｐｓ下り８Ｍｂｐｓ、５ノードが第５の回線上り１Ｍｂｐｓ下り４０Ｍｂｐｓ、５ノードが第６の回線上り５Ｍｂｐｓ下り５０Ｍｂｐｓで接続されている。
【０１３０】
上記のような構成のネットワークにおいて、例えば非特許文献１が提供する方法で三つのツリーを構築した場合と、本発明が提供する方法で三つのツリーを構築した場合とを比較する。図１４は、そのような場合において、サイズ１ＧＢのコンテンツを三つのツリーによりマルチキャスト配信した時の配信完了時間を比較して示した図である。
【０１３１】
図１４の横軸には、ルータ３０台で構成されるバックボーンネットワークにおけるバックボーン回線に流れるバックグランドトラヒックの量が表されている。例えば［０，５００］の場合は、バックボーン回線毎、更にその方向毎のバックグランドトラヒック本数が［０，５００］ の範囲の一様乱数で与えられることを意味している。
【０１３２】
図１４に表されているように、本発明が提供する方法でツリーを構築した場合、従来方式でツリーを構築した場合と比較して、配信完了時間が３５％前後短縮されていることが分かる。
【０１３３】
実施の形態２．
次に、第２の実施の形態について説明する。第１の実施の形態では、コンテンツを配信するソースノードがツリーを構築する場合について説明したが、第２の実施の形態では、専用機器がツリーを構築する場合について説明する。図１５に示されているように、論理ネットワーク１００は、ツリー構築を実行するための専用の管理サーバ４００を備えていてもよい。
【０１３４】
管理サーバ４００は、各ノード（ソースノード２００および配信対象ノード２０１〜２０３）のノードＩＤとＩＰアドレス、アクセス回線情報（スループット値等）および各ノード間のパススループット値等を含む情報を有する。そして、管理サーバ４００は、ファンアウト数の上限値の算出処理および図５に示す手順により複数のツリーの構築を実行する。
【０１３５】
そして、ソースノード２００は、管理サーバ４００から完成したツリーの情報を取得することで、そのツリーに従ってコンテンツの配信を実行する。
【０１３６】
実施の形態３．
次に、第３の実施の形態について説明する。第１の実施の形態では、数１によってパラメータｘの値を設定して、そのｘの値によりファンアウト数の上限値を設定した。第３の実施の形態では、バックボーンネットワークが他のトラヒックによって混雑して、バックボーンリンクの平均利用可能帯域が数１によって得られる値よりも小さくなった場合には、ｘの値を数１で得られる値よりも小さな値とすることでファンアウト数の上限値を設定する。例えば、ｘの値を各ノード間スループットの平均値とする。
【０１３７】
例えば、バックボーンリンクの平均利用可能帯域が数１で与えられる値よりも小さい場合は、数１で与えられる値をｘとしてファンアウト数の上限値を設定すると、各ノードのファンアウト数を不要に厳しく制限してしまい、配信性能が低下する。それに対して、本実施の形態によれば、配信性能が低下してしまうのを防ぎ、バックボーンネットワークが他のトラヒックによって混雑した状況において、ツリーの配信性能を向上させることができる。
【０１３８】
以上好ましい実施の形態をあげて本発明を説明したが、本発明は、必ずしも上記実施の形態に限定されるものでない。本発明は、その技術的思想の範囲内において様々に変形して実施することができる。
【産業上の利用可能性】
【０１３９】
マルチキャストによりコンテンツを配信する通信ネットワークに適用できる。
【図面の簡単な説明】
【０１４０】
【図１】本発明による通信ネットワークの一構成例を示すシステム構成図である。
【図２】ネットワーク１５０を論理的にモデル化して説明するための説明図である。
【図３】論理ネットワークの特性を示した模式図である。
【図４】ソースノードのハードウェアの一構成例を示すブロック図である。
【図５】ツリー構築手順を示すフローチャートである。
【図６】各ノードのファンアウト数の上限値の算出手順を示すフローチャートである。
【図７】ファンアウト数の上限値を調整する際の動作を示すフローチャートである。
【図８】ノード間のパススループット値および各ノードの上り方向のアクセス回線速度の再計算手順を示すフローチャートである。
【図９】生成ツリー数の上限値を２とした場合のツリー構築の過程を示す説明図である。
【図１０】生成ツリー数の上限値を２とした場合のツリー構築の過程を示す説明図である。
【図１１】生成ツリー数の上限値を２とした場合のツリー構築の過程を示す説明図である。
【図１２】生成ツリー数の上限値を２とした場合のツリー構築の過程を示す説明図である。
【図１３】二つのツリーを用いてコンテンツを配信する場合の配信の手順を説明する説明図である。
【図１４】ファンアウト数の上限値を条件に用いて複数ツリーの構築を行った場合の効果を説明する説明図である。
【図１５】第２の実施の形態の論理ネットワークの一構成例を示すシステム構成図である。
【符号の説明】
【０１４１】
１、２  ツリー
３  アクセス回線
１００  論理ネットワーク
１５０  ネットワーク
１６０  バックボーンネットワーク
２００  ソースノード
２０１、２０２、２０３  配信対象ノード
２１１、２１２、２１３、２１４  ルータ
３０１、３０２、３０３、３０４、３０５、３０６  パス
４０１  ＣＰＵ
４０２  主記憶部
４０３  ネットワーク伝送制御部
４０４  補助記憶部
４０５  入力部
４０６  表示部
５００  コンテンツ配信制御プログラム
【図１】
2008078775.tif 000004
【図２】
2008078775.tif 000005
【図３】
2008078775.tif 000006
【図４】
2008078775.tif 000007
【図５】
2008078775.tif 000008
【図６】
2008078775.tif 000009
【図７】
2008078775.tif 000010
【図８】
2008078775.tif 000011
【図９】
2008078775.tif 000012
【図１０】
2008078775.tif 000013
【図１１】
2008078775.tif 000014
【図１２】
2008078775.tif 000015
【図１３】
2008078775.tif 000016
【図１４】
2008078775.tif 000017
【図１５】
2008078775.tif 000018