(57)【要約】      （修正有）【課題】配信データの配信元となる配信元ノードと、配信データの配信を受ける複数の受信ノードにより構成される配信ツリーをより効率的に構築する。【解決手段】配信構成管理サーバは、各ノードのＩＰアドレスを含むノード情報を取得する対象ノード情報取得部と、親ノードの選択対象となる受信ノードのＩＰアドレスと各候補ノードのＩＰアドレスとで一致するビット長に応じて候補ノードから親ノードを選択する親ノード選択部と、親ノードの選択結果に従った配信ツリーの構成を管理する配信ツリー記憶部と、管理している配信ツリーの構成に従って、配信元ノード及びそれぞれの受信ノードの通信を制御する手段とを有する。【選択図】図１
2019207644.tif 000002
【特許請求の範囲】
【請求項１】
配信データの配信元である配信元ノードと、前記配信元ノードもしくは他の受信ノードから配信データを受信して所定の処理を行うと共に、受信した配信データを他の受信ノードに対して再配信することが可能な複数の受信ノードと、前記配信元ノードとそれぞれの前記受信ノードの通信を制御する通信制御装置とを有するデータ配信システムにおいて、
前記通信制御装置は、
前記配信元ノードとそれぞれの前記受信ノードについて、ＩＰアドレスを含むノード情報を取得するノード情報取得手段と、
それぞれの前記受信ノードに対して、前記配信元ノードと他の前記受信ノードから親ノードの候補となる候補ノードから、親ノードの選択対象となる前記受信ノードのＩＰアドレスと、それぞれの前記候補ノードのＩＰアドレスとで一致するビット長に応じて、前記候補ノードから親ノードの選択対象となる前記受信ノードの親ノードを選択する親ノード選択手段と、
前記親ノード選択手段の決定に従って、前記配信元ノードと前記受信ノードにより構成される配信ツリーの構成を管理する配信ツリー管理手段と、
前記配信ツリー管理手段が管理している前記配信ツリーの構成に従って、前記配信元ノード及びそれぞれの前記受信ノードの通信を制御する通信制御手段とを有し、
それぞれの前記配信元ノードは、前記通信制御装置の通信制御に従って配信データの送信を行う配信データ送信手段を有し、
それぞれの前記受信ノードは、前記通信制御装置の制御に従って、配信データの送受信を行う配信データ送受信手段を有する
ことを特徴とするデータ配信システム。
【請求項２】
前記通信制御装置は、
親ノードの選択対象となる前記受信ノードのＩＰアドレスと、それぞれの前記候補ノードのＩＰアドレスとのプレフィックス部分の一致長に応じて、親ノードの選択対象となる前記受信ノードとそれぞれの前記候補ノードとの間のネットワーク的な近さを示す距離を算出する距離計算手段をさらに備え、
前記親ノード選択手段は、親ノードの選択対象となる前記受信ノードと前記距離計算手段が計算した距離の最も近い前記候補ノードを、親ノードの選択対象となる前記受信ノードの親ノードとして選択する
ことを特徴とする請求項１に記載のデータ配信システム。
【請求項３】
前記通信制御装置は、親ノードの選択対象となる前記受信ノードのＩＰアドレスと、それぞれの前記候補ノードのＩＰアドレスとのプレフィックス部分の一致長に応じて、それぞれの前記候補ノードについて親ノードの選択対象となる前記受信ノードと同一のサブネットワークに属するか否かを判断し、その判断結果に応じて前記距離計算手段で計算した距離を補正する距離補正手段とをさらに有することを特徴とする請求項２に記載のデータ配信システム。
【請求項４】
前記距離補正手段は、親ノードの選択対象となる前記受信ノードのＩＰアドレスと、プレフィックス部分の一致長が所定以上の前記候補ノードの距離については、親ノードの選択対象となる前記受信ノードと同じサブネットワークに属すると判断して、当該サブネットワークのプレフィックス長さに応じた距離に補正することを特徴とする請求項３に記載のデータ配信システム。
【請求項５】
前記親ノード選択手段は、少なくとも、ツリー分岐数が所定の第１の閾値以上の前記候補ノード、又は前記配信元ノードからの前記配信ツリーの深さが第２の閾値以上のいずれかの条件に該当する前記候補ノードを親ノードとして選択しないことを特徴とする請求項１〜４のいずれかに記載のデータ配信システム。
【請求項６】
前記ノード情報取得手段が取得するノード情報には、付帯情報が含まれており、
前記親ノード選択手段は、それぞれの前記候補ノードの付帯情報も考慮して親ノードを決定する
ことを特徴とする請求項１〜５のいずれかに記載のデータ配信システム。
【請求項７】
前記親ノード選択手段は、距離が最小となる前記候補ノードが複数存在する場合には、付帯情報も考慮して親ノードを選択することを特徴とする請求項６に記載のデータ配信システム。
【請求項８】
前記ノード情報取得手段は、付帯情報として、少なくとも、前記配信元ノード及びそれぞれの前記受信ノードの処理能力を示す処理能力情報を取得することを特徴とする請求項６又は７に記載のデータ配信システム。
【請求項９】
前記親ノード選択手段は、距離が最小となる前記候補ノードが複数存在する場合には、距離が最小となる前記候補ノードからランダムに親ノードを選択することを特徴とする請求項３又は４に記載のデータ配信システム。
【請求項１０】
前記親ノード選択手段は、全ての前記受信ノードについて親ノードを決定した後、前記配信ツリーの配信パスごとの通信履歴に基づいて、それぞれの前記受信ノードの親ノードを変更することを特徴とする請求項１〜９のいずれかに記載のデータ配信システム。
【請求項１１】
前記親ノード選択手段は、全ての前記受信ノードについて親ノードを決定した後、前記配信ツリーの配信パスごとの通信履歴に基づいて、経路変更の必要な配信パスを検出し、前記経路変更の必要な配信パスの下位側の前記受信ノードについて、前記候補ノードから現在の親ノード及び子孫ノードを除外して親ノードを選択することを特徴とする請求項１０に記載のデータ配信システム。
【請求項１２】
前記配信元ノード及びそれぞれの前記受信ノードは、自装置のＩＰアドレスを含むノード情報を前記通信制御装置に送信することを特徴とする請求項１〜１１のいずれかに記載のデータ配信システム。
【請求項１３】
前記通信制御装置は、前記配信ツリー管理手段で管理されている前記配信ツリーの構成に基づき、前記配信元ノード及びそれぞれの前記受信ノードに子ノードの情報を通知する通信制御手段を有し、
前記配信元ノードは、前記通信制御装置から通知される子ノードに対応する前記受信ノードに対して、配信データを送信し
それぞれの前記受信ノードは、前記通信制御装置から通知される子ノードに対応する前記受信ノードに対して、親ノードから受信した配信データを送信する
ことを特徴とする請求項１２に記載のデータ配信システム。
【請求項１４】
前記親ノード選択手段は、前記配信ツリーに参加している前記受信ノードが離脱した場合、離脱した前記受信ノードから直接配信データを受信していた受信ノードに対して、新たな親ノードを選択する処理を行うことを特徴とする請求項１〜１３のいずれかに記載のデータ配信システム。
【請求項１５】
前記親ノード選択手段は、前記配信ツリーに参加している前記受信ノードが離脱した場合、離脱した前記受信ノードの子ノードを含む子孫ノードについても新たな親ノードを選択する処理を行うことを特徴とする請求項１４に記載のデータ配信システム。
【請求項１６】
当該データ配信システムは、複数の前記配信元ノードを備え、
前記親ノード選択手段は、それぞれの前記受信ノードについて、ノード情報に含まれる配信を受けたい配信データを特定する特定情報に応じた前記配信元ノードを起点とする前記配信ツリーを選択し、それぞれの前記受信ノードについて選択した前記配信ツリーから親ノードを選択し、
前記配信ツリー管理手段は、それぞれの前記配信元ノードを起点とする複数の前記配信ツリーを管理する
ことを特徴とする請求項１〜１５のいずれかに記載のデータ配信システム。
【請求項１７】
配信データの配信元である配信元ノードと、前記配信元ノードもしくは他の受信ノードから配信データを受信して所定の処理を行うと共に、受信した配信データを他の受信ノードに対して再配信することが可能な複数の受信ノードと、前記配信元ノードとそれぞれの前記受信ノードの通信を制御する通信制御装置とを有するデータ配信システムのデータ配信方法において、
前記通信制御装置は、ノード情報取得手段、親ノード選択手段、配信ツリー管理手段、及び通信制御手段を有し、
前記配信元ノードは、配信データ送信手段を有し、
それぞれの前記受信ノードは、配信データ送受信手段を有し、
前記ノード情報取得手段は、前記配信元ノードとそれぞれの前記受信ノードについて、ＩＰアドレスを含むノード情報を取得し、
前記親ノード選択手段は、それぞれの前記受信ノードに対して、前記配信元ノードと他の前記受信ノードから親ノードの候補となる候補ノードから、親ノードの選択対象となる前記受信ノードのＩＰアドレスと、それぞれの前記候補ノードのＩＰアドレスとで一致するビット長に応じて、前記候補ノードから親ノードの選択対象となる前記受信ノードの親ノードを選択し、
前記配信ツリー管理手段は、前記親ノード選択手段の決定に従って、前記配信元ノードと前記受信ノードにより構成される配信ツリーの構成を管理し、
前記通信制御手段は、前記配信ツリー管理手段が管理している前記配信ツリーの構成に従って、前記配信元ノード及びそれぞれの前記受信ノードの通信を制御し、
前記配信データ送信手段は、前記通信制御装置の通信制御に従って配信データの送信を行い、
前記配信データ送受信手段は、前記通信制御装置の制御に従って、配信データの送受信を行う
ことを特徴とするデータ配信方法。
【請求項１８】
配信データの配信元である配信元ノードと、前記配信元ノードもしくは他の受信ノードから配信データを受信して所定の処理を行うと共に、受信した配信データを他の受信ノードに対して再配信することが可能な複数の受信ノードにより構成される配信ツリーの制御を行う通信制御装置において、
前記配信元ノードとそれぞれの前記受信ノードについて、ＩＰアドレスを含むノード情報を取得するノード情報取得手段と、
それぞれの前記受信ノードに対して、前記配信元ノードと他の前記受信ノードから親ノードの候補となる候補ノードから、親ノードの選択対象となる前記受信ノードのＩＰアドレスと、それぞれの前記候補ノードのＩＰアドレスとで一致するビット長に応じて、前記候補ノードから親ノードの選択対象となる前記受信ノードの親ノードを選択する親ノード選択手段と、
前記親ノード選択手段の決定に従って、前記配信元ノードと前記受信ノードにより構成される配信ツリーの構成を管理する配信ツリー管理手段とを有する
ことを特徴とする通信制御装置。
【請求項１９】
配信データの配信元である配信元ノードと、前記配信元ノードもしくは他の受信ノードから配信データを受信して所定の処理を行うと共に、受信した配信データを他の受信ノードに対して再配信することが可能な複数の受信ノードにより構成される配信ツリーの制御を行う通信制御装置に搭載されたコンピュータを、
前記配信元ノードとそれぞれの前記受信ノードについて、ＩＰアドレスを含むノード情報を取得するノード情報取得手段と、
それぞれの前記受信ノードに対して、前記配信元ノードと他の前記受信ノードから親ノードの候補となる候補ノードから、親ノードの選択対象となる前記受信ノードのＩＰアドレスと、それぞれの前記候補ノードのＩＰアドレスとで一致するビット長に応じて、前記候補ノードから親ノードの選択対象となる前記受信ノードの親ノードを選択する親ノード選択手段と、
前記親ノード選択手段の決定に従って、前記配信元ノードと前記受信ノードにより構成される配信ツリーの構成を管理する配信ツリー管理手段と
して機能させることを特徴とする通信制御プログラム。
【請求項２０】
請求項１８に記載の通信制御装置の通信制御に従って配信データの送信を行う配信データ送信手段を有することを特徴とする配信元ノード。
【請求項２１】
配信元ノードに搭載されたコンピュータを、
請求項１８に記載の通信制御装置の通信制御に従って配信データの送信する配信データ送信手段として機能させることを特徴とする配信処理プログラム。
【請求項２２】
請求項１８に記載の通信制御装置の通信制御に従って配信データの送受信を行う配信データ送受信手段を有することを特徴とする受信ノード。
【請求項２３】
受信ノードに搭載されたコンピュータを、
請求項１８に記載の通信制御装置の通信制御に従って配信データの送受信を行う配信データ送受信手段として機能させることを特徴とする受信処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データ配信システム、データ配信方法、通信制御装置、通信制御プログラム、配信元ノード、配信処理プログラム、受信ノード、及び受信処理プログラムに関し、例えば、映像情報や音声情報等のマルチメディアデータを配信元から複数ユーザへ配信するシステムに適用し得る。
【背景技術】
【０００２】
近年、情報通信技術の発達により、遠隔の離れた場所にいる者同士があたかも同じ場所にいるかのようにコミュニケーションしたり、共同作業を行ったりする技術が注目されている。従来の複数の映像や音声等の情報を、複数の場所や複数のユーザに配信することによりこれら遠隔の複数者間のコミュニケーションを実現している。従来、映像や音声等のデータを複数のユーザに配信する場合、ビデオカメラ等の映像ソースや、マイク等の音声ソースからのマルチメディアデータを持つ配信元から、これらのデータを要求するユーザに対してＩＰパケット等を用いたユニキャスト通信で配信する方法が用いられる。
【０００３】
従来、このようなユニキャスト通信では、同じデータを要求するユーザ数が増加すると、配信サーバでは、ユーザ数に応じたユニキャスト通信路の数だけ同じデータを複製して配信するため、ネットワークの帯域幅を浪費して十分な数のユーザに配信できないという問題がある（図６参照）。また、従来、ユニキャスト通信ではなくマルチキャスト通信を用いてデータの複製を配信経路の途中のルータで行うことによりネットワーク帯域の浪費を防止する方法もあるが、経路上のすべてのルータがマルチキャスト通信に対応する必要があり、一般には普及していない（図７参照）。
【０００４】
従来、上述のような問題への対策として、アプリケーションレベルマルチキャストと呼ばれる技術が知られている。アプリケーションマルチキャストとは、配信を受けているユーザ（ユーザコンピュータ）が中継ノードとなり、さらに別のユーザに対して再配信することにより、ユーザ間のアプリケーションのみで多数のユーザへのマルチキャストを実現する方法である（図８参照）。
【０００５】
従来、アプリケーションレベルマルチキャストを用いてデータ配信するシステムでは、配信経路をいかに構築するかがシステム全体の配信性能に大きく影響する。
【０００６】
特許文献１では、アプリケーションレベルマルチキャストを用いてデータ配信を行う配信ツリーを、配信パスのスループット等を計測することによって、状況に応じて配信ツリーを切り替えていく方法が開示されている。また、従来のアプリケーションマルチキャストを用いたデータ配信システムにおいて、初期の配信ツリーの構築方法としては、例えば、新規のノードと各ノードとのネットワーク遅延に基づく計測結果を用いる方法が挙げられる。特許文献１では、過去のスループットの記憶から推定して、実際のスループット等の計測結果に基づき配信ツリーを構築する方法が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００７−２３５６８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来のアプリケーションマルチキャストを用いたデータ配信システムでは、実際のルータなどの物理的なネットワーク構成を把握しない状態で、スループットの計測結果などが得られていない新規のノードを配信ツリーに参加させる場合は、ランダムに配信可能なノードを新規ノードの親ノードとして選出するなどにより配信ツリーを構築するしかない。したがって、従来のアプリケーションマルチキャストを用いたデータ配信システムでは、十分な計測結果が得られるまでは非効率な配信ツリーとなってしまうなどの問題があった。
【０００９】
また、従来のアプリケーションマルチキャストを用いたデータ配信システムでは、実際の配信データ以外のデータをスループット等の計測の目的で多数のノードと送受信することは好ましくない。特に、従来のアプリケーションマルチキャストを用いたデータ配信システムでは、リアルタイムの映像配信など、計測結果が収集できるよりも早期に配信ツリーに参加させたい場合や、配信を受けていた親ノードが離脱してしまった場合に迅速に配信ツリーを再構築することができない恐れがある。
【００１０】
そのため、配信データの配信元となる配信元ノードと、配信データの配信を受ける複数の受信ノードにより構成される配信ツリーをより効率的に構築することができるデータ配信システム、データ配信方法、通信制御装置、通信制御プログラム、配信元ノード、配信処理プログラム、受信ノード、及び受信処理プログラムが望まれている。
【課題を解決するための手段】
【００１１】
第１の本発明は、配信データの配信元である配信元ノードと、前記配信元ノードもしくは他の受信ノードから配信データを受信して所定の処理を行うと共に、受信した配信データを他の受信ノードに対して再配信することが可能な複数の受信ノードと、前記配信元ノードとそれぞれの前記受信ノードの通信を制御する通信制御装置とを有するデータ配信システムにおいて、（１）前記通信制御装置は、（１−１）前記配信元ノードとそれぞれの前記受信ノードについて、ＩＰアドレスを含むノード情報を取得するノード情報取得手段と、（１−２）それぞれの前記受信ノードに対して、前記配信元ノードと他の前記受信ノードから親ノードの候補となる候補ノードから、親ノードの選択対象となる前記受信ノードのＩＰアドレスと、それぞれの前記候補ノードのＩＰアドレスとで一致するビット長に応じて、前記候補ノードから親ノードの選択対象となる前記受信ノードの親ノードを選択する親ノード選択手段と、（１−３）前記親ノード選択手段の決定に従って、前記配信元ノードと前記受信ノードにより構成される配信ツリーの構成を管理する配信ツリー管理手段と、（１−４）前記配信ツリー管理手段が管理している前記配信ツリーの構成に従って、前記配信元ノード及びそれぞれの前記受信ノードの通信を制御する通信制御手段とを有し、（２）それぞれの前記配信元ノードは、前記通信制御装置の通信制御に従って配信データの送信を行う配信データ送信手段を有し、（３）それぞれの前記受信ノードは、前記通信制御装置の制御に従って、配信データの送受信を行う配信データ送受信手段を有することを特徴とする。
【００１２】
第２の本発明は、配信データの配信元である配信元ノードと、前記配信元ノードもしくは他の受信ノードから配信データを受信して所定の処理を行うと共に、受信した配信データを他の受信ノードに対して再配信することが可能な複数の受信ノードと、前記配信元ノードとそれぞれの前記受信ノードの通信を制御する通信制御装置とを有するデータ配信システムのデータ配信方法において、（１）前記通信制御装置は、ノード情報取得手段、親ノード選択手段、配信ツリー管理手段、及び通信制御手段を有し、（２）前記配信元ノードは、配信データ送信手段を有し、（３）それぞれの前記受信ノードは、配信データ送受信手段を有し、（４）前記ノード情報取得手段は、前記配信元ノードとそれぞれの前記受信ノードについて、ＩＰアドレスを含むノード情報を取得し、（５）前記親ノード選択手段は、それぞれの前記受信ノードに対して、前記配信元ノードと他の前記受信ノードから親ノードの候補となる候補ノードから、親ノードの選択対象となる前記受信ノードのＩＰアドレスと、それぞれの前記候補ノードのＩＰアドレスとで一致するビット長に応じて、前記候補ノードから親ノードの選択対象となる前記受信ノードの親ノードを選択し、（６）前記配信ツリー管理手段は、前記親ノード選択手段の決定に従って、前記配信元ノードと前記受信ノードにより構成される配信ツリーの構成を管理し、（７）前記通信制御手段は、前記配信ツリー管理手段が管理している前記配信ツリーの構成に従って、前記配信元ノード及びそれぞれの前記受信ノードの通信を制御し、（８）前記配信データ送信手段は、前記通信制御装置の通信制御に従って配信データの送信を行い、（９）前記配信データ送受信手段は、前記通信制御装置の制御に従って、配信データの送受信を行うことを特徴とする。
【００１３】
第３の本発明は、配信データの配信元である配信元ノードと、前記配信元ノードもしくは他の受信ノードから配信データを受信して所定の処理を行うと共に、受信した配信データを他の受信ノードに対して再配信することが可能な複数の受信ノードにより構成される配信ツリーの制御を行う通信制御装置において、（１）前記配信元ノードとそれぞれの前記受信ノードについて、ＩＰアドレスを含むノード情報を取得するノード情報取得手段と、（２）それぞれの前記受信ノードに対して、前記配信元ノードと他の前記受信ノードから親ノードの候補となる候補ノードから、親ノードの選択対象となる前記受信ノードのＩＰアドレスと、それぞれの前記候補ノードのＩＰアドレスとで一致するビット長に応じて、前記候補ノードから親ノードの選択対象となる前記受信ノードの親ノードを選択する親ノード選択手段と、（４）前記親ノード選択手段の決定に従って、前記配信元ノードと前記受信ノードにより構成される配信ツリーの構成を管理する配信ツリー管理手段とを有することを特徴とする。
【００１４】
第４の本発明の通信制御プログラムは、配信データの配信元である配信元ノードと、前記配信元ノードもしくは他の受信ノードから配信データを受信して所定の処理を行うと共に、受信した配信データを他の受信ノードに対して再配信することが可能な複数の受信ノードにより構成される配信ツリーの制御を行う通信制御装置に搭載されたコンピュータを、（１）前記配信元ノードとそれぞれの前記受信ノードについて、ＩＰアドレスを含むノード情報を取得するノード情報取得手段と、（２）それぞれの前記受信ノードに対して、前記配信元ノードと他の前記受信ノードから親ノードの候補となる候補ノードから、親ノードの選択対象となる前記受信ノードのＩＰアドレスと、それぞれの前記候補ノードのＩＰアドレスとで一致するビット長に応じて、前記候補ノードから親ノードの選択対象となる前記受信ノードの親ノードを選択する親ノード選択手段と、（３）前記親ノード選択手段の決定に従って、前記配信元ノードと前記受信ノードにより構成される配信ツリーの構成を管理する配信ツリー管理手段として機能させることを特徴とする。
【００１５】
第５の本発明の配信元ノードは、第２の本発明の通信制御装置の通信制御に従って配信データの送信を行う配信データ送信手段を有することを特徴とする。
【００１６】
第６の本発明の配信処理プログラムは、配信元ノードに搭載されたコンピュータを、第２の本発明の通信制御装置の通信制御に従って配信データの送信する配信データ送信手段として機能させることを特徴とする。
【００１７】
第７の本発明の受信ノードは、第２の本発明の通信制御装置の通信制御に従って配信データの送受信を行う配信データ送受信手段を有することを特徴とする。
【００１８】
第８の本発明の受信処理プログラムは、受信ノードに搭載されたコンピュータを、第２の本発明の通信制御装置の通信制御に従って配信データの送受信を行う配信出た―送受信手段として機能させることを特徴とする。
【発明の効果】
【００１９】
本発明によれば、配信データの配信元となる配信元ノードと、配信データの配信を受ける複数の受信ノードにより構成される配信ツリーをより効率的に構築することができる。
【図面の簡単な説明】
【００２０】
【図１】実施形態に係る配信構成管理サーバの機能的構成について示したブロック図である。
【図２】実施形態に係るデータ配信システムの全体構成の例について示したブロック図である。
【図３】実施形態に係る受信ノードの機能的構成について示したブロック図である。
【図４】実施形態に係る配信元ノードの機能的構成について示したブロック図である。
【図５】実施形態に係るデータ配信システムを構成するネットワークの物理構成及びＩＰアドレス構成の例について示した説明図である。
【図６】従来のユニキャストによるデータ配信の例について示した説明図である。
【図７】従来のマルチキャストによるデータ配信の例について示した説明図である。
【図８】従来のアプリケーションレベルマルチキャストによるデータ配信の例について示した説明図である。
【発明を実施するための形態】
【００２１】
（Ａ）主たる実施形態
以下、本発明によるデータ配信システム、データ配信方法、通信制御装置、通信制御プログラム、配信元ノード、配信処理プログラム、受信ノード、及び受信処理プログラムの一実施形態を、図面を参照しながら詳述する。以下では、本発明の通信制御装置及び通信制御プログラムを、配信構成管理サーバに適用した例について説明する。
【００２２】
（Ａ−１）実施形態の構成
図２は、この実施形態のデータ配信システム１の全体構成（論理的な接続構成）を示すブロック図である。
【００２３】
図２に示すように、データ配信システム１には、配信構成管理サーバ１０、配信元ノード２０、及び５つの受信ノード３０（３０−１〜３０−５）が配置されている。なお、データ配信システム１において、配置される各装置の数は限定されないものである。また、データ配信システム１において、各装置間の接続手段（ネットワーク構成）については限定されないものであり、例えば、インターネット、広域ＬＡＮ、無線ＩＰネットワーク等を適用することができる。
【００２４】
配信構成管理サーバ１０は、配信元ノード２０と各受信ノード３０により形成される配信ツリーの構成を管理する装置である。
【００２５】
配信元ノード２０は、各受信ノード３０に配信するデータ（以下、「配信データ」とも呼ぶ）の配信元となる装置である。配信データの内容や形式は限定されないものであるが、例えば、映像や音声等のコンテンツデータ（例えば、ファイル形式の映像データに基づいてストリーミング形式に変換されたデータ）や、ビデオカメラ等の映像ソースからの映像データや、マイク等の音声ソースからの音響データ等のマルチメディアデータ（マルチメディア情報）が挙げられる。また、配信データは、例えば、映像や音声データ以外に文書やプレゼンテーション等のデータとしてもよい。配信元ノード２０は、配信構成管理サーバ１０の制御に応じて、複数の受信ノード３０の内、配信ツリー上の子ノード（直接の配信先となる受信ノード３０）に対して配信データの送信を行う。
【００２６】
受信ノード３０は、配信構成管理サーバ１０の制御に応じて、親ノード（配信元ノード２０もしくは他の受信ノード３０）から配信データを受信して所定の処理（例えば、ディスプレイやスピーカ等を用いた出力処理）を行うと共に、受信した配信データを子ノード（他の受信ノード３０）に対して再配信する装置である。
【００２７】
配信構成管理サーバ１０は、配信元ノード２０と受信ノード３０の間の配信ツリーの構成を管理し、新規の受信ノード３０の参加の場合や、受信ノード３０の離脱に伴う配信ツリーの再構成の際に、配信元ノード２０や受信ノード３０に対して通信制御（例えば、配信ツリーの構成指示等）を行う。
【００２８】
なお、配信元ノード２０は複数存在してもよく、配信構成管理サーバ１０では配信ツリーをそれぞれの配信元ごとに管理するようにしてもよい。例えば、複数の拠点にそれぞれ配信元ノード２０を配置し、複数拠点間で双方向にデータを配信しあうことでコミュニケーションを実現するような構成としてもよい。
【００２９】
次に、配信構成管理サーバ１０の内部構成について図１を用いて説明する。
【００３０】
図１は、配信構成管理サーバ１０の機能的構成について示したブロック図である。
【００３１】
配信構成管理サーバ１０は、少なくとも配信元ノード２０を起点とする配信ツリーの構成を管理する配信構成管理部１１を有している。また、配信構成管理部１１は、親ノード決定処理部１１０、対象ノード情報取得部１２０、及び情報送信部１３０を有している。
【００３２】
配信構成管理サーバ１０は、例えば、ＰＣやワークステーション等のコンピュータにプログラム（実施形態に係る通信制御プログラムを含む）をインストールすることにより構成するようにしてもよい。
【００３３】
親ノード決定処理部１１０は、配信ツリーの構成時／再構成時に、各受信ノード３０の親ノード（配信データを直接受信するノード）を決定する処理を行う。
【００３４】
対象ノード情報取得部１２０は、親ノードを決定する対象となる受信ノード３０（以下、「対象ノード」とも呼ぶ）に関する情報（以下、「ノード情報」と呼ぶ）を取得する処理を行う。
【００３５】
情報送信部１３０は、各受信ノード３０に対して、親ノード決定処理部１１０で決定した親ノードに関する情報（以下、「親ノード情報」とも呼ぶ）に基づいた通信制御処理（親ノード情報に対応する配信パス（親ノードと子ノードの組）を設定する通信制御処理）を行う。例えば、情報送信部１３０は、その親ノード情報における対象ノード（子ノード）に、親ノードに関する情報（例えば、ネットワークアドレスを含む情報）を送信し、その親ノード情報における親ノード（対象ノードの親ノード）に、子ノード（対象ノード）に関する情報（例えば、ネットワークアドレスを含む情報）を送信することにより、配信パスを設定するようにしてもよい。以上のように、情報送信部１３０により、配信元ノード２０及び各受信ノード３０の通信制御が行われ、配信ツリーの構成／再構成が行われる。
【００３６】
次に、親ノード決定処理部１１０の内部構成について説明する。
【００３７】
親ノード決定処理部１１０は、ネットワークアドレス間距離計算部１１１、親ノード選択部１１２、配信ツリー記憶部１１３、親ノード候補生成部１１４、及びサブネット判定・距離補正部１１５を有している。
【００３８】
配信ツリー記憶部１１３は、配信ツリーを構成する各ノード（配信元ノード２０及び各受信ノード３０）に関するノード情報と、配信元ノード２０を起点（ルート）とする配信ツリーの構成状態の情報（以下、「配信ツリー構成情報」と呼ぶ）等を記憶するものである。
【００３９】
親ノード候補生成部１１４は、配信ツリー記憶部１１３に記憶された配信ツリー構成情報に基づく配信ツリーに参加しているノード（配信元ノード２０、及び各受信ノード３０）の内から、新規追加などの配信パスの割り当て（親ノード等の決定）が必要な対象ノード（ノード情報）に対して、配信元の親ノードとなりうるノード（以下、「候補ノード」と呼ぶ）のリストを含む情報（以下、「候補ノードの情報」と呼ぶ）を生成するものである。
【００４０】
ネットワークアドレス間距離計算部１１１は、入力される対象ノードのノード情報に含まれるネットワークアドレス情報（対象ノードのネットワークアドレス情報）と、親ノード候補生成部１１４で生成される候補ノード情報に含まれる各候補ノードのネットワークアドレス情報から、対象ノードと各候補ノードとのネットワークアドレス間の近さを示す距離を算出するものである。
【００４１】
サブネット判定・距離補正部１１５は、ネットワークアドレス間距離計算部１１１で計算された距離に基づいて、対象ノードと候補ノードが同一サブネットワークに属するかを判定して、ネットワークアドレス間の距離を補正するものである。サブネット判定・距離補正部１１５による補正処理の詳細については後述する。
【００４２】
親ノード選択部１１２は、サブネット判定・距離補正部１１５で得られた、補正されたネットワークアドレス間の距離情報を用いて、候補ノードの内から対象ノードの親ノードとするノードを決定するものである。
【００４３】
親ノード選択部１１２は、対象ノードに対する親ノードの選択結果を示す親ノード情報を情報送信部１３０に供給すると共に、親ノード選択部１１２の選択結果にしたがって、配信ツリー記憶部１１３の配信ツリー構成情報を更新させる処理を行う。親ノード情報には、例えば、対象ノード及び当該対象ノードの親ノードにより構成される配信パスを特定する情報（例えば、対象ノード及び当該対象ノードの親ノードのネットワークアドレス情報を含む情報）を含むようにしてもよい。
【００４４】
次に、各受信ノード３０の内部構成について図３を用いて説明する。
【００４５】
各受信ノード３０は、受信部３０１、受信データ処理部３０２、再送信部３０３、及び配信制御部３０４を有している。
【００４６】
受信ノード３０は、例えば、ＰＣ、ワークステーション、モバイルデバイス（例えば、スマートホンやタブレット端末等）等のコンピュータにプログラム（実施形態に係る通信制御プログラムを含む）をインストールすることにより構成（例えば、ＷｅｂブラウザのＪａｖａＳｃｒｉｐｔ（登録商標）のように、都度ダウンロードして実行する構成を含む）するようにしてもよい。
【００４７】
受信部３０１は、親ノードからの配信データを受信するものである。
【００４８】
受信データ処理部３０２は、親ノードから受信した配信データに対して所定の処理（例えば、ディスプレイやスピーカを用いたユーザへの表示出力処理等）を行う。
【００４９】
再送信部３０３は、配信制御部３０４の制御に応じて、他の受信ノード３０（子ノード）に対して配信データの再送信の処理を行う。
【００５０】
配信制御部３０４は、送受信処理（受信部３０１及び再送信部３０３による処理）を制御する処理等を行う。
【００５１】
受信ノード３０では、受信部３０１、再送信部３０３、及び配信制御部３０４により、配信データを送受信する配信データ送受信手段が構成されている。
【００５２】
次に、各配信元ノード２０の内部構成について図４を用いて説明する。
【００５３】
各配信元ノード２０は送信部２０１、取得部２０２、及び配信制御部２０３を有している。
【００５４】
配信元ノード２０は、例えば、ＰＣ、ワークステーション、モバイル端末（例えば、スマートホンやタブレット端末等）等のコンピュータにプログラム（実施形態に係る配信処理プログラムを含む）をインストールすることにより構成（例えば、ＷｅｂブラウザのＪａｖａＳｃｒｉｐｔのように、都度ダウンロードして実行する構成を含む）するようにしてもよい。
【００５５】
取得部２０２は、配信データを保持する。取得部２０２が、配信データを保持する方法は限定されないものである。取得部２０２は、例えば、配信データを一括したデータ（例えば、外部ストレージに記録された映像のデータファイル等）として取得るようにしてもよいし、配信データをカメラやマイク等のソースから逐次取得るようにしてもよい。
【００５６】
送信部２０１は、取得部２０２が取得した配信データを配信制御部２０３の制御に応じた配信先（子ノードとなる受信ノード３０）に配信（送信）する処理を行う。
【００５７】
配信制御部２０３は、送信部２０１による配信処理を制御する処理等を行う。
【００５８】
配信元ノード２０では、送信部２０１、及び配信制御部２０３により、配信データを送信する配信データ送信手段が構成されている。
【００５９】
（Ａ−２）実施形態の動作
次に、以上のような構成を有するこの実施形態のデータ配信システム１の動作を説明する。
【００６０】
まず、データ配信システム１における配信ツリーの構成手順の概要について説明する。
【００６１】
図２に示すように、データ配信システム１では、配信データの配信元である配信元ノード２０から、配信データの配信先（受信者）である（複数の）受信ノード３０に対してアプリケーションレベルマルチキャストを用いて配信データの配信が行われる。
【００６２】
データ配信システム１において、配信ツリー構造情報は、配信構成管理サーバ１０が管理している。配信構成管理サーバ１０は、配信ツリーを構成する各ノード（配信元ノード２０や受信ノード３０）との間で、各ノードに関するノード情報や、配信ツリーの構成に関わる情報をやり取りすることにより、動的なノードの追加や離脱に応じた配信ツリーの再構築を行う。なお、以下では、配信ツリーの構成に関わる事項のみを説明するが、具体的な配信パスとなる通信路を設定するためのシグナリング等については任意の方法を用いることができる。例えば、配信構成管理サーバ１０がノード間のシグナリングを中継するシグナリングサーバを兼務するような構成としても良い。
【００６３】
まず、配信元ノード２０の配信制御部２０３が、自身のネットワークアドレス情報としてのＩＰアドレス情報を含むノード情報を配信構成管理サーバ１０に通知したものとする。また、受信ノード３０の配信制御部３０４が、自身のネットワークアドレス情報としてＩＰアドレス情報を含むノード情報を配信構成管理サーバ１０に通知したものとする。以下、データ配信システム１において、ネットワークアドレスとしてはＩＰアドレス（ＩＰｖ４のアドレス）を用いる例で説明する。
【００６４】
配信構成管理サーバ１０は、その主たる構成要素である配信構成管理部１１において、配信元ノード２０や（複数の）受信ノード３０からのノード情報を記憶して配信ツリーの構成を決定し、それぞれのノードに対して配信パスの接続相手に関わる情報を通知する。
【００６５】
配信元ノード２０や受信ノード３０の各ノードは、配信ツリーを構成する配信パスに従った接続相手との通信路を確保し、配信元ノード２０は自身が持つ配信データの送信を、受信ノード３０は親ノードからの配信データの受信と、自身が子ノードを持つ場合は、受信した配信データの再送信を行う。新規に受信ノード３０が配信ツリーに参加する場合、配信構成管理サーバ１０は、新規参加の受信ノード３０（対象ノード）から通知されるノード情報にしたがって、その新規参加の受信ノード３０の親ノードを割り当てる。そして、その割り当てられた親ノードが、新規の受信ノード３０への配信を開始することにより、配信ツリーの構築（再構築）が行われる。
【００６６】
配信ツリーに参加している受信ノード３０の内の１つが配信ツリーから離脱した場合、離脱した受信ノード３０を親ノード（や祖先ノード）としていた受信ノード３０への配信が停止してしまう。したがって、配信構成管理サーバ１０は、配信が停止してしまう受信ノード３０に対して新たな親ノードの割り当てを行う。配信構成管理サーバ１０において、親ノードの再割り当ては、離脱ノードの直接の子ノードに対してのみ行っても良いし、直接の子ノード以外にも、子ノードの子孫のノードに対しても再割り当てを行っても良い。配信構成管理サーバ１０は、これらの受信ノード３０に対して、親ノードの再割り当てを行うことにより、配信ツリーの再構築を行う。
【００６７】
次に、配信構成管理サーバ１０の配信構成管理部１１が、各ノードに対して親ノードを決定する処理の詳細について説明する。
【００６８】
上述の通り、配信構成管理部１１では、親ノード決定処理部１１０が、親ノードの割り当てが必要となったノードに対して、配信元となる親ノードを決定する処理を行う。
【００６９】
親ノード決定処理部１１０では、親ノードの割り当て対象となったノードに関する情報（対象ノード情報）が入力されると、その対象ノード情報からＩＰアドレス情報を含む情報を取得する。そして、親ノード決定処理部１１０は、取得した対象ノード情報に基づいて親ノードを選択し、その選択結果を示す親ノード情報を出力する。
【００７０】
配信ツリー記憶部１１３では、現在の配信ツリーの構成状態（接続状態）を示す配信ツリー構成情報と、配信ツリーに参加している各ノードのノード情報が記憶されている。
【００７１】
対象ノードのノード情報が入力されると、親ノード候補生成部１１４は、配信ツリー記憶部１１３に記憶されている情報を参照して、配信ツリーに参加している各ノード（配信元ノード２０及び各受信ノード３０）の内で、対象ノードに対して配信データを配信可能なノードを候補ノードとして検出する。ノードの離脱に伴う再構成の場合は、対象ノードの子孫ノードを親ノードとしても配信可能なノード（配信元ノード２０に到達できるノード）ではないため、候補ノードには含めない。また、この時、親ノード選択部１１２において、例えばあらかじめ設定したツリーの分岐数（子ノードの数）の上限や、配信元ノード２０からの配信ツリーの深さ（経由ノード数）の上限などの条件を満たさないノードは候補ノードとしないように構成しても良い。
【００７２】
次に、ネットワークアドレス間距離計算部１１１が、それぞれの候補ノードに対して、対象ノードのＩＰアドレス情報と、各候補ノードのＩＰアドレス情報をもとにＩＰアドレス間の近さに相当するＩＰアドレス間距離を算出する。ＩＰアドレス間距離の算出方法については後述する。
【００７３】
次に、サブネット判定・距離補正部１１５では、ネットワークアドレス間距離計算部１１１で算出されたＩＰアドレス間距離をもとに、対象ノードと各候補ノードが同一サブネットワークに属するかを判定し、同一サブネットワークに属すると判定した場合はＩＰアドレス間距離を補正する。
【００７４】
次に、親ノード選択部１１２が、得られた各候補ノードに対する補正されたＩＰアドレス間距離等の情報を用いて候補ノードの内から対象ノードに対する最適な親ノードを選択し、選択結果に基づく親ノード情報を出力する。また、親ノード選択部１１２は、決定された対象ノードと親ノードの接続関係に基づき、配信ツリー記憶部１１３の配信ツリー構成情報を更新する。さらに、親ノード選択部１１２は、対象ノードに関するノード情報を配信ツリー記憶部１１３上で管理（配信ツリー記憶部１１３上でノード情報の追加記憶又は削除）する。
【００７５】
以上のように、親ノード選択部１１２は、配信ツリー記憶部１１３に記憶される情報を更新することで配信ツリーを管理する。
【００７６】
次に、ネットワークアドレス間距離計算部１１１でのＩＰアドレス間距離の算出方法について説明する。
【００７７】
ＩＰアドレスは、それ自身では物理なネットワークの接続状態に関する情報は持っていない。しかし、一般的なＩＰネットワークのルータではＩＰアドレスのプレフィックス（上位ビット部分）ごとの経路テーブルによってルーティング先を決定するなどの処理が用いられる。そのため、一般的なＩＰネットワークでは、同じ組織や同じ拠点では共通のプレフィックスのＩＰアドレスを付与したり、ルータの経路テーブルの集約（同じ経路へのテーブルエントリの集約）のために同じ物理的な経路を通るネットワークに対して共通のプレフィックスとなるＩＰアドレスを付与することが多い。また、一般的なＩＰネットワークでは、同じルータ配下の同じサブネットワークではＩＰアドレスの内のネットワーク部であるプレフィックス部分（ネットワークアドレスの部分）は同じ値となる。言い換えると、一般的なＩＰネットワークを構成する２つのサブネットワーク間では、プレフィックスの共通部分が多いほど、より少ないホップ数やパスコストで到達可能な傾向にある。
【００７８】
そこで、この実施形態では、２つのＩＰアドレス間（２つのノード間）の距離に相当する指標として、ＩＰアドレスを構成するプレフィックス一致長（２つのＩＰアドレスの上位ビットから何ビットが一致しているか）を用いるものとする。この場合、２つのＩＰアドレス間で、プレフィックス一致長（最上位ビットから連続して一致するビット数）が長くなるほど、距離が短いことを示すことになる。すなわち、対象ノードとの間で、プレフィックス一致長が長い候補ノードを優先して親ノードとして選択することになる。
【００７９】
なお、距離という意味（近いほど小さな値となるような）では、一致したプレフィックス部分を除くサフィックス部分のビット長（最上位の不一致ビットの最下位ビットから数えた位置）を用いても良い。この場合は、対象ノードと任意の候補ノードとの間で、サフィックス部分のビット長が短いものを優先して親ノードとして選択することになる。
【００８０】
図５に、各ノードの物理的なネットワークの構成とＩＰアドレスの一例を示す。
【００８１】
例えば、図５に示すネットワークでは、３つの地区Ｂ１〜Ｂ３があり、それぞれ１０．１．０．０／１６、１０．２．０．０／１６、１０．３．０．０／１６という１６ビットプレフィックスのアドレス空間を利用しているとする。また、地区Ｂ１内には、３つのサブネットワークＳＮ１〜ＳＮ３が設定されているものとする。ここでは、サブネットワークＳＮ１〜ＳＮ３では、それぞれ１０．１．１．０／２４、１０．１．２．０／２４、１０．１．３．０／２４という２４ビットプレフィックスのアドレス空間が利用されているものとする。また、図５では、５つのノードＮＡ、ＮＢ、ＮＣ、ＮＤ、ＮＥが配置されている。さらに、図５では、地区Ｂ２内にノードＮＤが配置されている。さらにまた、図５では、地区Ｂ１のサブネットワークＳＮ１（１０．１．１．０／２４）に、ノードＮＡ、ＮＢ、ＮＥが配置されている。また、図５では、地区Ｂ１のサブネットワークＳＮ２（１０．１．２．０／２４）に、ノードＮＣが配置されている。
【００８２】
ノードＮＡに対して、同じサブネット内のノードＮＢ、サブネットは異なるが同じ地区内のノードＮＣ、異なる地区内のノードＮＤを考えると、それぞれが持つＩＰアドレスは、例えば、以下のようになる。なお、以下において、ａａ、ｂｂ、ｃｃにはそれぞれ任意の８ビットの値が設定されるものとする。また、以下において、「ｄｄ．ｄｄ」には任意の１６ビットの値が設定されるものとする。
ノードＮＡのＩＰアドレス：１０．１．１．ａａ
ノードＮＢのＩＰアドレス：１０．１．１．ｂｂ
ノードＮＣのＩＰアドレス：１０．１．２．ｃｃ
ノードＮＤのＩＰアドレス：１０．２．ｄｄ．ｄｄ
【００８３】
この時のノードＮＡのＩＰアドレスに対する、ノードＮＢ、ＮＣ、ＮＤのプレフィックス一致長を検証する。ノードＮＡとノードＮＢで一致するプレフィックス一致長は２４ビット以上となり、ノードＮＡとノードＮＣで一致するプレフィックス一致長は１６ビット以上２４ビット未満となり、ノードＮＡとノードＮＤで一致するプレフィックス一致長は１６ビット未満となる。すなわち、ノードＮＡから、物理ネットワーク的により近いノード（例えば、ホップ数やパスコストが少ないノード）ほど、プレフィックス一致長は大きな値となる。
【００８４】
以上のように、ネットワークアドレス間距離計算部１１１で算出されたプレフィックス一致長が最大となるような候補ノードを親ノードとして選出すれば、物理ネットワーク的により近いノードを親ノードとして選出することが可能となる。
【００８５】
しかし、例えば、ノードＮＡ、ＮＢと同一サブネットワーク内に、ノードＮＢよりも配信能力が高いノード（例えば、より多くのＣＰＵを有するなど）、あるいは、ノードＮＢよりも再配信している子ノードの数が少ない（再配信可能数に余裕がある）ノードであるノードＮＥが存在していたとしても、ノードＮＥのＩＰアドレス（例えば、１０．１．１．ｅｅ；ｅｅは任意の８ビットの値）よりもノードＮＢのＩＰアドレスのほうがノードＮＡのＩＰアドレスとの一致長が長い（ＩＰアドレスのホスト部のビットパターンが似ている）と、ノードＮＢのほうを選択してしまうことになる。
【００８６】
そこで、この実施形態のサブネット判定・距離補正部１１５では、ネットワークアドレス間距離計算部１１１で算出されたプレフィックス一致長に基づいて、対象ノードと候補ノードが同一サブネットワークに属するかを判定し、同一サブネットワークに属すると判定した場合は、プレフィックスのサブネットワークアドレス部分のみが一致したものとしてネットワークアドレス間距離を補正し、同一サブネットワーク内の他のノードと距離としては対等となるように補正を行う。
【００８７】
サブネット判定・距離補正部１１５では、まずＩＰアドレスのプレフィックス一致長が最大値（ＩＰｖ４アドレスでは３２ビット）であるか（すべてのビットパターンが一致したか）を判定する。この場合は対象ノードと候補ノードが同じ装置内（例えば、ユーザ端末内）にあることを意味し、サブネットワーク内の別の装置と区別するために、距離の補正は行わない。次に、サブネット判定・距離補正部１１５は、プレフィックス一致長があらかじめ設定したサブネットワークプレフィックス長（例えば、２４ビットに固定）より大きな値であった場合は、サブネットワークプレフィックス長を補正後の距離とする。すなわち、サブネット判定・距離補正部１１５は、同じサブネットワーク内の複数の候補ノードとの距離が、それぞれ同等の値となるよう補正する。プレフィックス一致長が所定のサブネットワークプレフィックス長より短い場合は、特に補正は行わない。サブネットワーク判定に用いるサブネットワークプレフィックス長は、実際のネットワークでは個々のサブネットワークごとに異なる場合があるが、あらかじめ既知のサブネットワークについてはデータベースを参照するなどして個々の実際のプレフィックス長を用いたり、未知のサブネットワークの場合は２４ビットなどの既定の固定値を用いて判定してもよい。また、ＩＰｖ６ネットワークの場合は、サブネットワークプレフィックス長として６４ビットなどの既定の値を用いてもよい。
【００８８】
親ノード決定処理部１１０では、例えば、単純にはネットワークアドレス間距離計算部１１１で算出されたプレフィックス一致長が最大となる候補ノードを親ノードとして選択する。すなわち、図５の例では、親ノード決定処理部１１０は、ノードＮＡに対する親ノードとしてノードＮＢを選択するようにしてもよい。親ノード決定処理部１１０は、サブネット判定・距離補正部１１５により補正されたプレフィックス一致長が最大となるノードが複数存在する場合は、例えば、これらのノードのうちから乱数等を用いてランダムに親ノードを選択してもよい。さらに、親ノード決定処理部１１０は、ノード情報に付帯するその他の情報（例えば、ノードの処理能力など）も加味して、プレフィックス一致長が同一の候補ノードから親ノードを決定するようにしても良い。すなわち、この場合親ノード決定処理部１１０は、ノードＮＢよりもノードＮＥの方に処理能力等の余裕があれば、ノードＮＥを選択することになる。
【００８９】
以上のように、配信構成管理サーバ１０（親ノード決定処理部１１０）では、各ノードのＩＰアドレス情報を用いることで、実際のスループット等の計測を行わずに、物理ネットワーク的により近いことが期待できる候補ノードを親ノードとして選択して配信ツリーを構築することができる。
【００９０】
次に、各受信ノード３０内の動作について説明する。
【００９１】
配信制御部３０４は、自身のＩＰアドレス情報を含むノード情報を、配信構成管理サーバ１０の内の配信構成管理部１１に通知する。
【００９２】
配信制御部３０４では、配信構成管理サーバ１０（配信構成管理部１１）から、通信制御に係る情報（例えば、親ノードや子ノードのネットワークアドレス情報の配信パスを定義する情報）が通知される。
【００９３】
配信制御部３０４は、親ノードと受信部３０１の間の通信路を確保して、受信部３０１による親ノードからの配信データの受信が開始される。
【００９４】
受信データ処理部３０２は、受信した配信データに対して所定の処理（例えば、映像データの場合は表示したり、音声データの場合は再生したりする等の処理）を行う。
【００９５】
配信制御部３０４は、自身を親ノードとするような他の受信ノード３０（子ノード）が存在することが配信構成管理サーバ１０（配信構成管理部１１）から通知されている場合、再送信部３０３から、自身の子ノードに対して配信データの再送信を行う。配信制御部３０４は、子ノードが存在しない場合は、再送信の制御は行わない。
【００９６】
以上のような処理により、データ配信システム１では、アプリケーションマルチキャストを用いた配信データの配信が行われる。
【００９７】
（Ａ−３）実施形態の効果
この実施形態によれば、以下のような効果を奏することができる。
【００９８】
この実施形態のデータ配信システム１では、アプリケーションマルチキャストを用いた情報の配信ツリーに、新規に参加する、あるいは、親ノードの離脱による配信ツリーの再構築の際に、配信元となる親ノードの選択が必要となった対象ノードに対して、物理的なネットワークトポロジー的に近い位置であることが期待できる親ノードを選定することができる。これにより、この実施形態のデータ配信システム１では、配信ツリーが非効率となってしまうという課題を軽減することが可能となる。
【００９９】
また、この実施形態のデータ配信システム１では、実際のスループットの計測等を行わずに選択が可能であるので、迅速に配信ツリーを構築でき、さらに、スループット計測等のための余分なトラフィックの発生量も低減することができる。
【０１００】
さらに、この実施形態のデータ配信システム１では、同一サブネット内に親ノードの候補が複数ある場合に、ランダムに選択したり、候補ノードの処理能力等を加味した選択を行うことにより、再接続等で接続されるノードが分散され、より効率的な配信ツリーを構築することが可能となる。
【０１０１】
（Ｂ）他の実施形態
本発明は、上記の実施形態に限定されるものではなく、以下に例示するような変形実施形態も挙げることができる。
【０１０２】
（Ｂ−１）上記の実施形態のデータ配信システム１では、ネットワークアドレスとして、ＩＰｖ４アドレスを用いる例を説明したが、ＩＰｖ６アドレスでも同様にプレフィックス一致長を用いることによりＩＰアドレス間の距離を算出することが可能である。上記のデータ配信システム１において、ＩＰｖ６ネットワークや、その他のネットワーク、ＩＰｖ４とＩＰｖ６が混在するネットワークなど、様々なネットワーク上での配信システムにも適用可能である。
【０１０３】
（Ｂ−２）上記の実施形態のデータ配信システム１において、実際に配信を開始してからの配信パスごとの配信データ送受信のスループット等の計測結果（通信履歴）に基づいて、動的に配信経路を更新していくような方法も併用するように構成してもよい。例えば、上記の実施形態の配信構成管理サーバ１０において、スループットの出ていない配信パスから受信している受信ノード３０を検出し、この受信ノード３０を対象ノードとして、現在の親ノード（と対象ノードの子孫ノード）を除外した親ノード候補から上記と同様な選択を行うなどして動的に配信経路を更新する構成としてもよい。
【符号の説明】
【０１０４】
１…データ配信システム、１０…配信構成管理サーバ、１１…配信構成管理部、１１０…親ノード決定処理部、１１１…ネットワークアドレス間距離計算部、１１２…親ノード選択部、１１３…配信ツリー記憶部、１１４…親ノード候補生成部、１１５…サブネット判定・距離補正部、１２０…対象ノード情報取得部、１３０…情報送信部、２０…配信元ノード、２０１…送信部、２０２…取得部、２０３…配信制御部、３０、３０−１〜３０−５…受信ノード、３０１…受信部、３０２…受信データ処理部、３０３…再送信部、３０４…配信制御部。
【図１】
2019207644.tif 000003
【図２】
2019207644.tif 000004
【図３】
2019207644.tif 000005
【図４】
2019207644.tif 000006
【図５】
2019207644.tif 000007
【図６】
2019207644.tif 000008
【図７】
2019207644.tif 000009
【図８】
2019207644.tif 000010