(57)【特許請求の範囲】
【請求項１】
コンテンツの配信元であるコンテンツ配信サーバを頂点として、前記コンテンツを視聴する利用者が用いる複数の利用者端末が階層的に接続した配信ツリーを構成して前記コンテンツを配信するコンテンツ配信システムにおいて、前記配信ツリー上における複数の利用者端末には、他の利用者端末からの接続要求を受け付けることができる利用者端末と、受け付けることができない利用者端末と、を含み、前記利用者端末の通信環境に応じて前記利用者端末間で、前記配信ツリー上における端末の接続の順番を示す配信トポロジを組み替える利用者端末であって、
前記配信ツリー上において自端末に接続している他の利用者端末から、接続要求を受け付けることが可能か否かを示す到達可否情報を含む通信環境を示す情報を取得する通信環境情報取得手段と、
前記配信トポロジを組み替える処理の対象として、自端末に接続している複数の他の利用者端末の中からいずれか２端末を選択し、選択された２端末のうち、一方を組替要求端末として決定し、かつ、他方を組替受付端末として決定する配信トポロジ組替端末選択手段と、
前記決定された組替要求端末に対して、自端末を介さずに、前記決定された組替受付端末への接続組替要求を実行するように指示する接続組替指示手段と、
前記組替要求端末に前記接続組替要求を実行するように指示する利用者端末である組替指示端末から、当該指示を受け付けて、当該組替指示端末の識別情報を含む組替要求メッセージを前記組替受付端末に通知することで接続組替を要求する接続組替要求手段と、
前記組替要求端末から、前記組替要求メッセージを受信し、当該組替要求端末との接続を確立すると共に、前記組替指示端末との接続を切断する接続切替手段と、を備え、
前記配信トポロジ組替端末選択手段は、前記２端末を選択する際に、
少なくとも１端末は前記到達可否情報が到達可である利用者端末を選択し、
前記到達可否情報が到達可である利用者端末を前記組替受付端末に決定し、
前記組替受付端末を前記配信ツリー上で上流及び下流のうちのいずれか一方の側から選択し、前記組替要求端末を前記配信ツリー上で上流及び下流のうちの他方の側から選択することを特徴とする利用者端末。
【請求項２】
前記通信環境情報取得手段は、他の利用者端末から、通信環境を示す情報として、前記到達可否情報と当該端末の送信容量情報とを取得し、
前記配信トポロジ組替端末選択手段は、
前記２端末を選択する際に、
前記配信ツリー上において前記上流の位置にて自端末に接続するいずれか１つの利用者端末と、
前記配信ツリー上において前記下流の位置にて自端末に接続すると共に送信容量が最も大きい１つの利用者端末と、を選択し、
前記選択された２端末のいずれか一方の前記到達可否情報が到達可であることを特徴とする請求項１に記載の利用者端末。
【請求項３】
前記配信トポロジ組替端末選択手段は、
前記配信トポロジを組み替える処理の対象である２端末を選択して前記組替受付端末および前記組替要求端末を決定する処理を、自端末が前記配信ツリーから離脱する際に開始することを特徴とする請求項１又は請求項２に記載の利用者端末。
【請求項４】
前記配信トポロジ組替端末選択手段は、
前記配信トポロジを組み替える処理の対象である２端末を選択して前記組替受付端末および前記組替要求端末を決定する処理を、予め設定された任意のタイミングで開始することを特徴とする請求項１又は請求項２に記載の利用者端末。
【請求項５】
コンテンツの配信元であるコンテンツ配信サーバを頂点として、前記コンテンツを視聴する利用者が用いる複数の利用者端末が階層的に接続した配信ツリーを構成して前記コンテンツを配信するコンテンツ配信システムにおいて、前記配信ツリー上における複数の利用者端末には、他の利用者端末からの接続要求を受け付けることができる利用者端末と、受け付けることができない利用者端末と、を含み、前記利用者端末の通信環境に応じて前記利用者端末間で、前記配信ツリー上における端末の接続の順番を示す配信トポロジを組み替えるために、前記利用者端末としてのコンピュータを、
前記配信ツリー上において自端末に接続している他の利用者端末から、接続要求を受け付けることが可能か否かを示す到達可否情報を含む通信環境を示す情報を取得する通信環境情報取得手段、
前記配信トポロジを組み替える処理の対象として、自端末に接続している複数の他の利用者端末の中からいずれか２端末を選択し、選択された２端末のうち、一方を組替要求端末として決定し、かつ、他方を組替受付端末として決定する配信トポロジ組替端末選択手段、
前記決定された組替要求端末に対して、自端末を介さずに、前記決定された組替受付端末への接続組替要求を実行するように指示する接続組替指示手段、
前記組替要求端末に前記接続組替要求を実行するように指示する利用者端末である組替指示端末から、当該指示を受け付けて、当該組替指示端末の識別情報を含む組替要求メッセージを前記組替受付端末に通知することで接続組替を要求する接続組替要求手段、
前記組替要求端末から、前記組替要求メッセージを受信し、当該組替要求端末との接続を確立すると共に、前記組替指示端末との接続を切断する接続切替手段として機能させるための配信トポロジ組替プログラムであって、
前記配信トポロジ組替端末選択手段は、前記２端末を選択する際に、
少なくとも１端末は前記到達可否情報が到達可である利用者端末を選択し、
前記到達可否情報が到達可である利用者端末を前記組替受付端末に決定し、
前記組替受付端末を前記配信ツリー上で上流及び下流のうちのいずれか一方の側から選択し、前記組替要求端末を前記配信ツリー上で上流及び下流のうちの他方の側から選択することを特徴とする配信トポロジ組替プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツ配信システムに係り、特に、コンテンツを視聴する利用者が用いる利用者端末、および、配信サーバを頂点として複数の利用者端末が階層的に接続した配信ツリーに参加する利用者端末に、配信ツリー上の順番を示す配信トポロジの組替処理を実行させるための配信トポロジ組替プログラムに関する。
【背景技術】
【０００２】
近年、インターネットにおいては、ストリーミングによる動画配信サービスが普及している。また、受信端末において、視聴したいコンテンツを選択し、配信サーバより、選択したコンテンツを受信するＶＯＤ（Video On Demand）のような一対一の配信サービスに加え、同一のコンテンツを多数の受信端末に同時に伝送する一対多（放送型）の配信サービスが知られている。さらに、ＩＰネットワークにおいて、放送型の動画配信サービスを効率よく行う方式として、ＩＰマルチキャストが知られている。しかし、このＩＰマルチキャスト方式では、通信事業者の専用ネットワークが必要であり、複数事業者を跨いだサービスが困難であった。
【０００３】
こうした背景から、通信事業者の専用のネットワークを必要とせずに、複数事業者を跨いだ放送型の動画配信サービスを可能とするため、ピアツーピア技術を用いたコンテンツの分散配信技術が考案された。こうした技術は、コンテンツを要求する利用者端末同士で論理的なツリーを作り、端末上で動作するアプリケーションソフトが相互にデータ転送を行うことによりマルチキャスト（一対多通信）を実現する。例えば、特許文献１に記載されたストリームデータ分散配信方法が挙げられる。
【０００４】
特許文献１に記載のストリームデータ分散配信方法では、インターネット等のネットワーク環境において、各ノード間でストリームデータの送受信を行うために、各ノードは、上流ノードと下流ノードとの接続関係を示すトポロジ情報を交換して、上流ノードから下流ノードへストリームデータを中継している。このストリームデータ分散配信方法では、各ノード間でトポロジ情報を交換するために、各ノードが、自律的にトポロジ情報を記憶および更新し、さらに提供する等の管理を行う機能を備えている。
【０００５】
また、このようなコンテンツ配信方式の別の例として非特許文献１の技術が開示されている。非特許文献１の技術では、配信サーバにおいて、ストリーミングメディアを複数のデータパケットに断片化する（断片化されたデータをチャンクと呼ぶ）。そして、各端末は、必要なチャンクを持つ端末を動的に検出し、検出した端末から、プル型でチャンクを受信し、受信したチャンクを再構成することにより、所望のストリーミングメディアを得ることができる。このようなコンテンツ配信システムの一例を図１に示す。図１に示すコンテンツ配信システム１００の例では、配信サーバ１０３によってコンテンツを（１）〜（６）の６個に個片化したチャンクのうち、奇数番号のチャンクが実線に沿って、偶数番号のチャンクが破線に沿ってそれぞれ転送されることで、図示する６台の各端末（利用者端末）１０１ａ〜１０１ｆに対して、全てのチャンクが行き届いている様子を示している。
【０００６】
このような階層的なコンテンツ配信システム１００においては、どのような性能の利用者端末を配信ツリーのどこに配置するのかによって、システム全体の効率が変化する。例えば、複数の利用者端末の中で、接続しているインターネット回線の送信容量に余裕があり、多くの端末にストリームを分配できる利用者端末ほど、配信サーバにより近づくように接続することで、さらに多くの端末に対して安定したコンテンツを配信できるようになる。また、配信ツリーの途中の端末を利用する利用者が視聴を止めてしまい、配信ツリーが分断されてしまった場合（離脱が発生した場合）、即座に配信ツリーの別の端末と接続関係を構築し直し、ストリームの転送を途切れさせないようにすることにより、安定性を向上することができる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００３−１６９０８９号公報
【特許文献２】特開２００９−１２４６６２号公報
【非特許文献】
【０００８】
【非特許文献１】Xinyan Zhang, Jiangchuan Liu, Bo Li, and Tak-Shing Peter Yum, “CoolStreaming/DoNet: A Data-Driven Overlay Network for Efficient Live Media Streaming”, In Proc. Of the 24th IEEE INFOCOM, March 2005, p.2102-2111
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、コンテンツ配信システム１００では、インターネット回線の送信容量（伝送能力）に余裕がある利用者端末であっても、必ずしも配信サーバ１０３に近い利用者端末に接続できるとは限らない。その理由の１つは、個々の利用者端末において利用者が視聴を始めたタイミングで、その端末が配信ツリーに新規に接続してコンテンツの受信を開始するからである。また、それに加えて、もう１つの理由は、通常、１つの利用者端末に接続可能な利用者端末数（接続可能数）は制限されているからである。
【００１０】
また、コンテンツ配信システム１００では、利用者端末間で一度接続を確立すると、コンテンツの送受信が途絶えない限り接続を維持し続ける。そのため、送信容量（伝送能力）に余裕がある利用者端末が、一旦、配信ツリーの下流の方に接続してしまうと、他の利用者端末の離脱などに起因して配信サーバに近い利用者端末に接続できる余地が生じた場合であっても、余裕がある利用者端末は現状の状態を維持してしまう問題があった。
【００１１】
このような問題に対し、特許文献２では、例えばツリーの上流側に位置する爺ノードの下流に２つの親ノードが接続され、一方の親ノードの下流には２つの子ノードが接続されている構成のツリーにおいて、接続できる余地が生じた場合にも対処することで、システム全体の安定性を向上させる技術が開示されている。この技術では、他方の親ノードの接続が解除された場合、爺ノードは、一方の親ノードに対して、接続が解除されたことを通知する。そして、一方の親ノードは、下流の２つの子ノードのいずれかに、爺ノードへの接続が可能になったことを示す接続可能通知を送信する。これにより、子ノードのいずれかは、爺ノードへ新たに接続することができる。 
【００１２】
しかし、各ノード装置（利用者端末）が自律的に配信トポロジを構築するシステムを想定した場合、特許文献２の技術では、接続可能通知を受信した子ノードが、爺ノードに接続する前に、新たに参加した別のノード装置が爺ノードに接続してしまう可能性があり、
必ずしも意図通りに接続切替処理が行えるとは限らない。そのため、接続切り替えが成立せず、無駄な処理となってしまうことがある。
【００１３】
さらに、配信ツリーを構成する利用者端末は、例えばＰＣ（Personal computer）であって、一般家庭や企業に設置されたＰＣは、ＮＡＴ（Network Address Translation）ルータを介してインターネットに接続していることが多い。このようなＰＣは、自身（自端末）から接続要求を行ってインターネット上の他の端末（ＰＣやサーバ）と接続を確立し、通信を行うことができる一方で、インターネット上の他の端末からの接続要求については、ＮＡＴルータで遮られてしまうため、受け付けることができず、接続が確立できない。特許文献２に記載の技術は、この点が考慮されていない。そのため、仮に、特許文献２に記載された爺ノードがＮＡＴルータを介してインターネットに接続しており、接続要求を受付けることができない場合、子ノードから爺ノードに新たに接続要求を行うことができない。
【００１４】
本発明は、以上のような問題点に鑑みてなされたものであり、コンテンツを配信する配信ツリーに属する端末に対して安定してコンテンツを配信できる利用者端末および配信トポロジ組替プログラムを提供することを課題とする。
【課題を解決するための手段】
【００１５】
前記課題を解決するために、本発明のうち請求項１に記載の利用者端末は、コンテンツの配信元であるコンテンツ配信サーバを頂点として、前記コンテンツを視聴する利用者が用いる複数の利用者端末が階層的に接続した配信ツリーを構成して前記コンテンツを配信するコンテンツ配信システムにおいて、前記配信ツリー上における複数の利用者端末には、他の利用者端末からの接続要求を受け付けることができる利用者端末と、受け付けることができない利用者端末と、を含み、前記利用者端末の通信環境に応じて前記利用者端末間で、前記配信ツリー上における端末の接続の順番を示す配信トポロジを組み替える利用者端末であって、通信環境情報取得手段と、配信トポロジ組替端末選択手段と、接続組替指示手段と、接続組替要求手段と、接続切替手段とを備えることとした。
【００１６】
かかる構成によれば、利用者端末は、通信環境情報取得手段によって、前記配信ツリー上において自端末に接続している他の利用者端末から、接続要求を受け付けることが可能か否かを示す到達可否情報を含む通信環境を示す情報を取得する。そして、利用者端末は、配信トポロジ組替端末選択手段によって、前記配信トポロジを組み替える処理の対象として、自端末に接続している複数の他の利用者端末の中からいずれか２端末を選択し、選択された２端末のうち、一方を組替要求端末として決定し、かつ、他方を組替受付端末として決定する。ここで、組替受付端末は、選択された一方から組替の要求を受け付けて当該一方との接続を確立すると共に、決定を行った自端末と切断する接続組替を実行する。また、組替要求端末は、選択された他方に対して前記接続組替を要求する。さらに、配信トポロジ組替端末選択手段は、前記２端末を選択する際に、少なくとも１端末は前記到達可否情報が到達可である利用者端末を選択し、前記到達可否情報が到達可である利用者端末を前記組替受付端末に決定し、前記組替受付端末を前記配信ツリー上で上流及び下流のうちのいずれか一方の側から選択し、前記組替要求端末を前記配信ツリー上で上流及び下流のうちの他方の側から選択する。なお、到達可否情報が到達可である端末は、インターネット上の他の端末からの接続要求を受け付けることができる。そして、利用者端末は、接続組替指示手段によって、前記決定された組替要求端末に対して、自端末を介さずに、前記決定された組替受付端末への接続組替要求を実行するように指示する。そして、利用者端末は、前記組替要求端末として機能するときに、接続組替要求手段によって、前記組替要求端末に前記接続組替要求を実行するように指示する利用者端末である組替指示端末から、当該指示を受け付けて、当該組替指示端末の識別情報を含む組替要求メッセージを前記組替受付端末に通知することで接続組替を要求する。そして、利用者端末は、前記組替受付端末として機能するときに、接続切替手段によって、前記組替要求端末から、前記組替要求メッセージを受信し、当該組替要求端末との接続を確立すると共に、前記組替指示端末との接続を切断する。
【００１８】
かかる構成によれば、利用者端末は、配信トポロジ組替端末選択手段によって、配信ツリー上において上流に接続するいずれか１つの利用者端末と、下流に接続するいずれか１つの利用者端末とを確実に接続させ、安全に配信トポロジを組み替えることができる。
【００１９】
また、請求項２に記載の利用者端末は、請求項１に記載の利用者端末において、前記通信環境情報取得手段が、他の利用者端末から、通信環境を示す情報として、前記到達可否情報と当該端末の送信容量情報とを取得し、前記配信トポロジ組替端末選択手段が、前記２端末を選択する際に、前記配信ツリー上において前記上流の位置にて自端末に接続するいずれか１つの利用者端末と、前記配信ツリー上において前記下流の位置にて自端末に接続すると共に送信容量が最も大きい１つの利用者端末と、を選択し、前記選択された２端末のいずれか一方の前記到達可否情報が到達可であることを特徴とする。
【００２０】
かかる構成によれば、利用者端末は、配信トポロジ組替端末選択手段によって、上流端末と、下流端末のうち送信容量が最も大きい利用者端末とを優先的に選択するので、送信容量に余裕のある下流端末を上流端末に確実に接続させ、安全に配信トポロジを組み替えることができる。これにより、送信容量に余裕のある端末をコンテンツ配信サーバにより近づけることができるため、コンテンツ配信の安定性を向上できる。
【００２１】
また、請求項３に記載の利用者端末は、請求項１又は請求項２に記載の利用者端末において、前記配信トポロジ組替端末選択手段が、前記配信トポロジを組み替える処理の対象である２端末を選択して前記組替受付端末および前記組替要求端末を決定する処理を、自端末が前記配信ツリーから離脱する際に開始することを特徴とする。
【００２２】
かかる構成によれば、利用者端末は、配信ツリーから離脱する際に、配信トポロジを組み替える処理を行うので、自端末が接続する端末であって互いに接続していなかった２端末の間に接続関係を構築した後で、自端末が離脱することができる。そのため、配信ツリーにおいて、自端末が離脱したとしてもコンテンツ配信サーバからのストリームの転送を途切れさせないようにすることができ、安定性を向上できる。
【００２３】
また、請求項４に記載の利用者端末は、請求項１又は請求項２に記載の利用者端末において、前記配信トポロジ組替端末選択手段が、前記配信トポロジを組み替える処理の対象である２端末を選択して前記組替受付端末および前記組替要求端末を決定する処理を、予め設定された任意のタイミングで開始することを特徴とする。
【００２４】
かかる構成によれば、利用者端末は、予め設定された任意のタイミングで配信トポロジを組み替える処理を行うので、自端末の利用者がコンテンツを視聴中であるかどうかに関わらず、自端末が接続する端末であって互いに接続していなかった２端末の間に接続関係を構築することができる。そのため、自端末の送信容量に余裕がなくなったとしても、コンテンツ配信サーバからのストリームの転送を途切れさせないようにすることができ、安定性を向上できる。
【００２５】
また、請求項５に記載の配信トポロジ組替プログラムは、コンテンツの配信元であるコンテンツ配信サーバを頂点として、前記コンテンツを視聴する利用者が用いる複数の利用者端末が階層的に接続した配信ツリーを構成して前記コンテンツを配信するコンテンツ配信システムにおいて、前記配信ツリー上における複数の利用者端末には、他の利用者端末からの接続要求を受け付けることができる利用者端末と、受け付けることができない利用者端末と、を含み、前記利用者端末の通信環境に応じて前記利用者端末間で、前記配信ツリー上における端末の接続の順番を示す配信トポロジを組み替えるために、前記利用者端末としてのコンピュータを、通信環境情報取得手段、配信トポロジ組替端末選択手段、接続組替指示手段、接続組替要求手段、接続切替手段として機能させるためのプログラムであることとした。
【００２６】
かかる構成によれば、配信トポロジ組替プログラムは、通信環境情報取得手段によって、前記配信ツリー上において自端末に接続している他の利用者端末から、接続要求を受け付けることが可能か否かを示す到達可否情報を含む通信環境を示す情報を取得する。そして、配信トポロジ組替プログラムは、配信トポロジ組替端末選択手段によって、前記配信トポロジを組み替える処理の対象として、自端末に接続している複数の他の利用者端末の中からいずれか２端末を選択し、選択された２端末のうち、一方を組替要求端末として決定し、かつ、他方を組替受付端末として決定する。ここで、配信トポロジ組替端末選択手段は、前記２端末を選択する際に、少なくとも１端末は前記到達可否情報が到達可である利用者端末を選択し、前記到達可否情報が到達可である利用者端末を前記組替受付端末に決定し、前記組替受付端末を前記配信ツリー上で上流及び下流のうちのいずれか一方の側から選択し、前記組替要求端末を前記配信ツリー上で上流及び下流のうちの他方の側から選択する。そして、配信トポロジ組替プログラムは、接続組替指示手段によって、前記決定された組替要求端末に対して、自端末を介さずに、前記決定された組替受付端末への接続組替要求を実行するように指示する。そして、配信トポロジ組替プログラムは、接続組替要求手段によって、前記組替要求端末に前記接続組替要求を実行するように指示する利用者端末である組替指示端末から、当該指示を受け付けて、当該組替指示端末の識別情報を含む組替要求メッセージを前記組替受付端末に通知することで接続組替を要求する。そして、配信トポロジ組替プログラムは、接続切替手段によって、前記組替要求端末から、前記組替要求メッセージを受信し、当該組替要求端末との接続を確立すると共に、前記組替指示端末との接続を切断する。
【発明の効果】
【００２７】
請求項１または請求項５に記載の発明によれば、利用者端末は、配信ツリーにおいて自端末に接続している他の利用者端末の通信環境に応じて、自端末が接続する端末であって互いに接続していなかった２端末の間に接続関係を構築することができる。そのため、コンテンツを配信する配信ツリーに属する端末に対して安定してコンテンツを配信できる。
【００２８】
請求項１、請求項２または請求項５に記載の発明によれば、利用者端末は、配信ツリーにおいて自端末の下流に接続する利用者端末と、上流に接続する利用者端末とを確実に接続させ、安全に配信トポロジを組み替えることができる。
【００２９】
請求項３または請求項４に記載の発明によれば、利用者端末は、配信ツリーにおいて端末の離脱が発生したとしても、コンテンツ配信サーバからのストリームの転送を途切れさせないようにすることができ、安定性を向上できる。
【図面の簡単な説明】
【００３０】
【図１】従来のコンテンツ配信システムの構成例を示す図である。
【図２】本発明の実施形態に係る利用者端末および配信トポロジ組替方法によるコンテンツ配信システムの構成の一例を示す図である。
【図３】本発明の実施形態に係る利用者端末を示すブロック図である。
【図４】本発明の実施形態に係る利用者端末に記憶される端末情報の一例を示す。
【図５】本発明の実施形態に係る利用者端末の接続制御手段の機能を示す説明図である。
【図６】本発明の実施形態に係る利用者端末の配信トポロジ組替端末選択手段の構成例を示すブロック図である。
【図７】本発明の実施形態に係るコンテンツ配信システムにおいて新規の利用者端末が配信グループへ参加する際の手順の一例を示すシーケンス図である。
【図８】本発明の実施形態に係るコンテンツ配信システムにおいて配信グループにより形成される配信ツリーの一例を示す図である。
【図９】本発明の実施形態に係るコンテンツ配信システムにおいて各利用者端末間の接続切替動作の流れを示すシーケンス図である。
【図１０】本発明の実施形態に係る配信トポロジ組替端末選択処理の詳細（その１）を示すフローチャートである。
【図１１】本発明の実施形態に係る配信トポロジ組替端末選択処理の詳細（その２）を示すフローチャートである。
【図１２】本発明の実施形態に係る利用者端末による配信トポロジ組替処理の一例を示す図であって、（ａ）は接続組み替え前、（ｂ）は接続組み替え後をそれぞれ示している。
【発明を実施するための形態】
【００３１】
以下、本発明を実施するための形態について、１．コンテンツ配信システムの概要、２．利用者端末の詳細、３．配信トポロジ組替端末選択手段の構成例、４．利用者端末の動作の各章に分けて、図面を参照して詳細に説明する。
【００３２】
［１．コンテンツ配信システムの概要］
図２に示すコンテンツ配信システムＳは、コンテンツの配信元であるコンテンツ配信サーバ３を頂点として、コンテンツを視聴する利用者が用いる複数の利用者端末１（１Ｇ、１Ｒ，１Ｎ）が階層的に接続した配信ツリーを構成してコンテンツを配信するものである。そのため、コンテンツ配信システムＳでは、利用者端末１は、図１に示すコンテンツ配信システム１００と同様にして所望のストリーミングメディアを得ることができる。ただし、コンテンツ配信システムＳでは、利用者端末１は、３つの異なる形態でネットワーク（インターネット、ローカルネットワーク）に接続されており、機能が異なっている。
【００３３】
利用者端末１Ｇと、端末管理サーバ２と、コンテンツ配信サーバ３とは、インターネット４に直接接続している。
各ローカルネットワーク７はそれぞれのポート開放可能ＮＡＴルータ５を介してインターネット４と接続されている。
各ローカルネットワーク８はそれぞれのポート開放不可ＮＡＴルータ６を介してインターネット４と接続されている。
利用者端末１Ｒは、ローカルネットワーク７およびポート開放可能ＮＡＴルータ５を介して間接的にインターネット４に接続されている。
利用者端末１Ｎは、ローカルネットワーク８およびポート開放不可ＮＡＴルータ６を介して間接的にインターネット４に接続されている。
【００３４】
ここで、ポート開放可能ＮＡＴルータ５とは、例えばＵＰｎＰ（Universal Plug and Play）によるポート開放機能に対応しており、ルータの外部（インターネット４）からの接続要求をローカルネットワーク７内の利用者端末１Ｒに転送することができるルータである。よって、ポート開放可能ＮＡＴルータ５にローカルネットワーク７を介して接続している利用者端末１Ｒは、インターネット４を介して端末管理サーバ２、コンテンツ配信サーバ３、他の利用者端末１Ｒと、ＴＣＰ／ＩＰなどの通信プロトコルにより、相互に接続要求が可能であると共に、相互に接続要求の受け付けが可能であり（到達可であり）、接続を確立した上で、データを送受信することが可能であるものとする。
【００３５】
一方、ポート開放不可ＮＡＴルータ６とは、例えばＵＰｎＰによるポート開放機能などに対応していないか、対応していても当該機能を無効にしていることにより、ルータの外部（インターネット４）からの接続要求をローカルネットワーク８内の利用者端末１Ｎに転送することができないルータである。よって、ポート開放不可ＮＡＴルータ６にローカルネットワーク８を介して接続している利用者端末１Ｎは、インターネット４を介して端末管理サーバ２、コンテンツ配信サーバ３、および利用者端末１Ｒに対して、自身が接続要求を行うことで接続を確立し、データを送受信することは可能であるが、それら機器および他の利用者端末１Ｎの接続要求（例えばTCPコネクション）を受け付けることはできないものとする。
なお、図２においては、端末管理サーバ２、コンテンツ配信サーバ３を個別の機器として表記しているが、１つの機器に全ての機能を具備してもよい。
【００３６】
＜コンテンツ配信サーバ＞
コンテンツ配信サーバ３は、コンテンツの配信元となるサーバである。このコンテンツ配信サーバ３は、当該コンテンツ配信サーバ３および利用者端末１が階層的に接続して構成する配信ツリーに参加する利用者端末１に対して順次コンテンツデータを配信する。
なお、以下では、単に端末というとき、コンテンツ配信サーバ３や各利用者端末１を指している。また、コンテンツ配信サーバ３をノードの頂点として、ある時点で各ノードの接続関係が決定されて構築されている配信トポロジのことを配信ツリーと呼ぶ。また、配信ツリー内の各ノードの集合体のことを配信グループと呼ぶ。
【００３７】
＜端末管理サーバ＞
端末管理サーバ２は、コンテンツ配信システムＳに参加している各端末のコンテンツ配信に係る情報である端末情報を端末情報リストＬに保持して管理するものである。ここで、各端末とは、コンテンツ配信サーバ３や各利用者端末１を指している。また、端末情報には、コンテンツ配信サーバ３や利用者端末１を識別するための端末ＩＤに対応付けた情報として、ＩＰアドレスやポート番号などのデータ転送に必要な情報が含まれる。
端末管理サーバ２は、利用者端末１が配信グループへ新規参加する際に、この新規の利用者端末１から、当該利用者端末１の端末情報を含むメッセージである接続先紹介要求を受け付ける。
端末管理サーバ２は、接続先紹介要求に応じて、初期接続先リストを返信する。この初期接続先リストは、配信グループへ新規参加する利用者端末１が直接接続できる接続先の候補となる端末の端末情報を１つ以上含むリストである。ここで、接続先の候補となる端末は、コンテンツ配信サーバ３または他の利用者端末１である。
【００３８】
＜利用者端末＞
利用者端末１は、同じ配信ツリーに属する他の利用者端末１と接続し、コンテンツのデータパケット（コンテンツデータと呼ぶ）を受信したり転送したりする端末である。
つまり、利用者端末１は、配信ツリー内においてピアツーピア技術を用いたノードとして、コンテンツ配信側にも受信側にもなる機能を有している。
【００３９】
また、詳細は後記するが、利用者端末１は、利用者端末１の通信環境に応じて、利用者端末１（１Ｇ，１Ｎ，１Ｒ）間で、配信ツリー上における端末の接続の順番を示す配信トポロジを組み替える配信トポロジ組替処理を実行するために、例えば図９に示すように、他の端末に接続組替を要求する組替要求端末（以下、１ａと表記する）としての機能と、組替要求端末１ａからの接続組替の要求を受け付ける組替受付端末（以下、１ｐと表記する）としての機能と、組替要求端末１ａに、組替受付端末１ｐへの接続組替要求を実行するように指示する組替指示端末（以下、１ｃと表記する）としての機能と、を併せて保持している。詳細は後記するが、配信ツリーにおいて、組替指示端末１ｃ（図１２（ａ）においてＮｃ）は、自端末に接続している利用者端末１の中から組替要求端末１ａ（図１２（ａ）においてＮａ）と組替受付端末１ｐ（図１２（ａ）においてＮｐ）とを決定する。また、組替受付端末１ｐ（図１２（ａ）においてＮｐ）が実行する接続組替とは、組替の要求を受け付けて組替要求端末１ａ（図１２（ａ）においてＮａ）との接続を確立すると共に組替指示端末１ｃ（図１２（ａ）においてＮｃ）と切断する組替のことを指す（図１２（ｂ）に組替結果を示す）。
【００４０】
［２．利用者端末の詳細］
利用者端末１は、例えば、ＣＰＵ（Central Processing Unit）等の演算装置と、メモリやハードディスク等の記憶装置と、外部との間で各種情報の送受信を行うインタフェース装置とを備えた一般的なパーソナルコンピュータ等から構成されている。
利用者端末１は、前記したハードウェア資源がプログラムによって制御されることにより実現され、図３に示すように、記憶手段１１と、接続相手選択手段１２と、配信トポロジ組替端末選択手段１３と、接続組替指示手段１４と、接続組替要求手段１５と、接続切替手段１６と、接続制御手段１７と、端末情報管理手段１８と、通信環境情報取得手段１９と、接続通信環境計測手段２０と、コンテンツデータ中継部２１と、コンテンツバッファ２２と、コンテンツ再生部２３と、通信インタフェース２４とを備える。
【００４１】
記憶手段１１は、ＲＡＭ（Random Access Memory）やＲＯＭ（Read Only Memory）等のメモリやハードディスク等の記憶装置から構成され、端末情報記憶部１１１と、トポロジ情報記憶部１１２とを備える。
【００４２】
端末情報記憶部１１１は、自身の利用者端末１（自端末）の端末情報と、配信グループに参加している他の利用者端末１（他端末）およびコンテンツ配信サーバ３の端末情報とを記憶し、保持する。
【００４３】
端末情報の一例を図４に示す。図４の例では、各端末の端末情報をデータベース化した端末情報データベースの項目として、端末ＩＤ４１にそれぞれ関連付けてある、接続待受けアドレス４２と、到達可否４３と、伝送能力４４と、接続可能数４５と、現在接続数４６と、ホップ数４７とを含んでいる。
【００４４】
端末ＩＤ４１は、コンテンツ配信サーバ３および利用者端末１を一意に識別する識別子である。端末ＩＤ４１は、例えば、各端末の固有情報、ＭＡＣアドレス、汎用一意識別子（ＵＵＩＤ）等を用いてもよい。
【００４５】
接続待受けアドレス４２は、他端末から接続要求を受け付けることができるＩＰアドレスとポート番号の組を示している。ただし、到達可否４３の情報が「到達不可」の場合（図４の例では「否」）は、他の利用者端末１からの接続受付けが不可能なため、図４では、ポート番号を“- - - -”と示している。
【００４６】
到達可否４３は、インターネット４を介して接続要求を受付けることが可能か否かを示す情報（到達可否情報）である。例えば、受付けることが可能な場合に到達可否情報の値を「到達可」とし、受付けることできない場合に到達可否情報の値を「到達不可」とする。到達可否情報が「到達可」である端末は、インターネット上の他の端末からの接続要求はＮＡＴルータ（ポート開放可能ＮＡＴルータ５：図２参照）で遮られず、接続要求を受け付けることができる。到達可否情報が「到達不可」である端末は、インターネット上の他の端末からの接続要求はＮＡＴルータ（ポート開放不可ＮＡＴルータ６：図２参照）で遮られる。なお、図４の例では、「到達可」および「到達不可」のことを、単に「可」および「否」のように略記した。また、「到達可」、「到達不可」のことをフラグ「０」「１」等で実現することができる。
【００４７】
伝送能力４４は、端末ＩＤ４１に関連付けてある当該端末のコンテンツデータの送受信に係る送信能力を示す情報である。なお、図４では、一例として、数値が大きいものほど伝送能力が高いものとした。
【００４８】
接続可能数４５は、端末ＩＤ４１に関連付けてある当該端末がコンテンツ配信サーバ３や他の利用者端末１と接続する際に、最大何台の端末と同時に接続できるかを示す情報である。この接続可能数４５は、例えば、接続要求を受け付ける側の利用者端末１にとってみると、接続受付可能数となる。接続可能数４５として、予め規定値を設定してもよいし、利用者端末１の通信状態に合わせて順次更新してもよい。
【００４９】
現在接続数４６は、端末ＩＤ４１に関連付けてある当該端末が、現在接続しているコンテンツ配信サーバ３や他の利用者端末１の総数を示す情報である。この現在接続数４６は、例えば、接続要求を受け付ける側の利用者端末１にとってみると、接続受付数となる。
【００５０】
ホップ数４７は、配信ツリーにおけるコンテンツ配信サーバ３からの中継段数を示す値である。なお、ホップ数４７は、コンテンツ配信サーバ３から最短で中継できるように数えた段数（最小ホップ数）を示している。ここでは、コンテンツ配信サーバ３のホップ数を０として、コンテンツ配信サーバ３に直接接続している利用者端末１のホップ数を１、当該利用者端末１に接続している利用者端末１のホップ数を２とする。また、接続や切断により、現在接続しているコンテンツ配信サーバ３や他の利用者端末１が変更になった場合、ホップ数４７は、接続中の端末のホップ数の変更に合わせて随時更新することができる。
【００５１】
トポロジ情報記憶部１１２は、当該利用者端末１が他の端末に直接接続して構築されている配信トポロジの情報として、直接接続している端末の端末ＩＤの情報を記憶し、保存する。この配信トポロジの情報は、当該利用者端末１を介したコンテンツデータの送受信のために利用される。当該利用者端末１に対してコンテンツデータを送信する側を上流と呼び、当該利用者端末１からコンテンツデータを受信する側を下流と呼ぶ。
【００５２】
接続相手選択手段１２は、端末情報記憶部１１１に格納されている端末情報から、所定の基準に基づいて接続相手候補を選択し、選択された利用者端末１に対して、接続制御手段１７を介して接続要求を送信するものである。ここで、所定の基準として、例えば、次の条件Ａ１〜Ａ３をすべて満たす端末を、接続相手候補として選択することができる。
（条件Ａ１）端末ＩＤがトポロジ情報記憶部１１２に格納されていない。
（条件Ａ２）現在接続数の値が接続可能数の値よりも小さい。
（条件Ａ３）到達可否情報の値が「到達可」である。
【００５３】
図３に示す利用者端末１は、図９に示す組替指示端末１ｃ、組替要求端末１ａおよび組替受付端末１ｐのいずれの機能で動作するのかによって、例えば接続制御手段１７等の機能等が異なってくる。図３に示す各手段を、これら３機能に対応させ、一部を抽出したブロック図を図５に示す。
図５右下に示す組替指示端末１ｃは、この機能を実行するときのＩＤとしてＮｃを有している。また、図面では、この機能を実行するときの各手段の符号に「ｃ」を追加して区別した。
図５右上に示す組替要求端末１ａは、この機能を実行するときのＩＤとしてＮａを有している。また、図面では、この機能を実行するときの各手段の符号に「ａ」を追加して区別した。
図５左に示す組替受付端末１ｐは、この機能を実行するときのＩＤとしてＮｐを有している。また、図面では、この機能を実行するときの各手段の符号に「ｐ」を追加して区別した。以下、図５を参照（適宜図３参照）して、利用者端末１の各手段の構成の説明を続ける。
【００５４】
＜組替指示端末＞
組替指示端末１ｃは、図５に示すように、主たる構成として、配信トポロジ組替端末選択手段１３（図５では１３ｃと表記）と、接続組替指示手段１４（図５では１４ｃと表記）と、接続制御手段１７（図５では１７ｃと表記）とを備える。
【００５５】
配信トポロジ組替端末選択手段１３は、配信トポロジを組み替える処理の対象として、自端末に接続している複数の他の利用者端末１の中からいずれか２端末を選択し、選択された２端末のうち、選択した一方を、組替要求端末１ａとして決定し、かつ、他方を組替受付端末１ｐとして決定するものである。
この配信トポロジ組替端末選択手段１３は、２端末を選択する際に、一方として到達可否情報が到達可である利用者端末１を選択し、組替受付端末１ｐを、到達可否情報が到達可である利用者端末に決定する。
【００５６】
ここで、配信トポロジ組替端末選択手段１３は、２端末を選択する際に、上流の位置にて自端末に接続するいずれか１つの利用者端末と、下流の位置にて自端末に接続すると共に送信容量が最も大きい１つの利用者端末と、を選択することとした。なお、上流に接続する端末とは、コンテンツ配信サーバ３からのホップ数が自端末よりも小さい端末であり、下流に接続する端末とは、コンテンツ配信サーバ３からのホップ数が自端末よりも大きい端末である。
【００５７】
本実施形態では、配信トポロジ組替端末選択手段１３は、トポロジ情報記憶部１１２に端末ＩＤが格納されている利用者端末１の中から、伝送能力や到達可否情報に基づいて配信トポロジ組替の対象となる２つの利用者端末１を選択し、一方を組替要求端末１ａ、他方を組替受付端末１ｐに決定し、それら利用者端末１の端末ＩＤをそれぞれ組替要求端末ＩＤ（＝Ｎａ）、組替受付端末ＩＤ（＝Ｎｐ）として接続組替指示手段１４に出力する。
なお、詳細については後記する。
【００５８】
接続組替指示手段１４は、配信トポロジ組替端末選択手段１３で決定された組替要求端末１ａに対して、配信トポロジ組替端末選択手段１３で決定された組替受付端末１ｐへの接続組替要求を実行するように指示するものである。
ここで、接続組替指示手段１４は、配信トポロジ組替端末選択手段１３より入力した、組替要求端末ＩＤ（＝Ｎａ）、組替受付端末ＩＤ（＝Ｎｐ）、および自端末の端末ＩＤである組替指示端末ＩＤ（＝Ｎｃ）を利用して、組替指示メッセージを生成、送信する。
本実施形態では、接続組替指示手段１４は、組替指示メッセージ送信部１４１を備えることとした。この組替指示メッセージ送信部１４１は、組替受付端末ＩＤ（＝Ｎｐ）および組替指示端末ＩＤ（＝Ｎｃ）を含む組替指示メッセージを、組替要求端末１ａに対して、所定の通信インタフェース２４を介して送信する。
【００５９】
接続制御手段１７（図５では１７ｃと表記）は、接続要求部１７１と、接続受付部１７２と、切断部１７３とを備え、接続受付部１７２が機能する。なお、図５において、機能していないサブブロックは、破線の枠で示した。
【００６０】
接続受付部１７２（図５では１７２ｃと表記）は、接続指示および接続要求に応じて組替受付端末１ｐが送信する後記する切断要求を受信し、切断した場合は、その切断した他端末の端末ＩＤを、記憶手段１１ｃのトポロジ情報記憶部１１２（図３参照）から削除すると共に、端末情報記憶部１１１（図３参照）に記憶された自端末の端末情報において現在接続数をデクリメントする（１を減算する）。
【００６１】
＜組替要求端末＞
組替要求端末１ａは、図５に示すように、主たる構成として、接続組替要求手段１５（図５では１５ａと表記）と、接続制御手段１７（図５では１７ａと表記）とを備える。
【００６２】
接続組替要求手段１５は、組替指示端末１ｃから、接続組替の指示（組替指示メッセージ）を受信し、当該組替指示端末１ｃのＩＤ（識別情報＝Ｎｃ）を含む組替要求メッセージを組替受付端末１ｐに通知することで接続組替を要求するものである。
本実施形態では、接続組替要求手段１５は、組替指示メッセージ受信部１５１を備えることとした。この組替指示メッセージ受信部１５１は、組替指示端末１ｃから、通信インタフェース２４を介して組替指示メッセージを受信する。
接続組替要求手段１５は、受信した組替指示メッセージから、組替指示端末ＩＤ（＝Ｎｃ）および組替受付端末ＩＤ（＝Ｎｐ）を抽出し、組替指示端末ＩＤ（＝Ｎｃ）および組替要求端末ＩＤ（＝Ｎａ）を含む組替要求メッセージを生成し、接続制御手段１７を介して、組替受付端末１ｐに送信する。
【００６３】
接続制御手段１７（図５では１７ａと表記）は、接続要求部１７１と、接続受付部１７２と、切断部１７３とを備え、接続要求部１７１および接続受付部１７２が機能する。なお、図５において、機能していないサブブロックは、破線の枠で示した。
【００６４】
接続要求部１７１（図５では１７１ａと表記）は、接続組替要求手段１５の指示のもと、接続要求を行う。接続要求部１７１ａ（図５参照）は、接続が確立した場合は、その確立した他端末の端末ＩＤをトポロジ情報記憶部１１２ａ（図５参照）に追加すると共に、端末情報記憶部１１１ａ（図５参照）に記憶された端末情報において現在接続数およびホップ数を更新する。例えば、ホップ数の更新値を算出するために以下の方法を用いることができる。具体的には、現在接続数が「３」であって、それぞれのホップ数の値が「ｈ１」、「ｈ２」、「ｈ３」であった場合を想定すると、更新後において現在接続数は、「４」、更新後においてホップ数は、“Ｍｉｎ（ｈ１、ｈ２、ｈ３）＋１”の演算により算出することができる。
【００６５】
接続受付部１７２（図５では１７２ａと表記）は、接続要求に応じて組替受付端末１ｐが送信する組替応答を受信し、確立した場合は、その旨を接続要求部１７１ａ（図５参照）に通知する。これにより、接続要求部１７１ａ（図５参照）にてトポロジ情報記憶部１１２ａ（図５参照）および端末情報記憶部１１１ａ（図５参照）の更新処理を行う。
【００６６】
＜組替受付端末＞
組替受付端末１ｐは、図５に示すように、主たる構成として、接続切替手段１６（図５では１６ｐと表記）と、接続制御手段１７（図５では１７ｐと表記）とを備える。
接続切替手段１６は、組替要求端末１ａから、組替要求メッセージを受信し、当該組替要求端末１ａとの接続を確立すると共に、組替指示端末１ｃとの接続を切断するものである。本実施形態では、接続切替手段１６は、組替要求端末１ａから、接続制御手段１７を介して、組替要求を入力し、組替要求端末ＩＤ（＝Ｎａ）および組替指示端末ＩＤ（＝Ｎｃ）を抽出し、組替要求端末１ａに対して、組み替えが成功したことを示す組替応答を送信すると共に、組替指示端末１ｃに対して、接続制御手段１７を通して切断要求を行う。
【００６７】
接続制御手段１７（図５では１７ｐと表記）は、接続要求部１７１と、接続受付部１７２と、切断部１７３とを備える。
接続要求部１７１（図５では１７１ｐと表記）は、接続組替要求手段１５の指示のもと、接続要求を行う。この場合、接続要求部１７１ｐ（図５参照）は、組替要求端末１ａに対して、組み替えが成功したことを示す組替応答を送信する。
【００６８】
接続受付部１７２（図５では１７２ｐと表記）は、他端末からの接続要求（組替要求）を受付け、所定の基準に基づいて接続を確立するか否か判定する。ここで、所定の基準として、例えば、次の条件Ｂ１およびＢ２をいずれも満たす場合、接続を確立することができる。なお、到達可否情報が「到達可」であることを前提とすることはもちろんである。
（条件Ｂ１）自端末（組替受付端末１ｐとして機能する当該利用者端末１）の端末情報の現在接続数の値が接続可能数の値よりも小さい。
（条件Ｂ２）当該他端末（組替要求端末１ａとして機能する当該利用者端末１）の端末ＩＤがトポロジ情報記憶部１１２に格納されていない。
【００６９】
また、接続受付部１７２ｐ（図５参照）は、接続が確立した場合、その確立した他端末の端末ＩＤをトポロジ情報記憶部１１２ｐ（図５参照）に追加すると共に、端末情報記憶部１１１ｐ（図５参照）に記憶された端末情報において、現在接続数、およびホップ数を更新する。
【００７０】
切断部１７３（図５では１７３ｐと表記）は、接続受付部１７２ｐ（図５参照）が組替要求を受信した場合、接続切替手段１６に従い、組替指示端末１ｃに対して切断要求を行うものである。この切断部１７３は、組替受付端末ＩＤ（＝Ｎｐ）を含む切断要求メッセージを生成、送信する。なお、切断部１７３は、切断した他端末の端末ＩＤをトポロジ情報記憶部１１２から削除する
【００７１】
図３に戻って、利用者端末１の各手段の構成の説明を続ける。
端末情報管理手段１８は、図３に示すように、端末情報生成部１８１と、端末情報送信部１８２と、端末情報受信部１８３とを備える。
端末情報生成部１８１は、自端末の端末ＩＤを含む端末情報を生成し、端末情報記憶部１１１に保存する。
端末情報送信部１８２は、自端末の端末情報を端末情報記憶部１１１から読み出し、通信インタフェース２４を介して、端末管理サーバ２または端末ＩＤが端末情報記憶部１１１に記憶されている他の利用者端末１へ送信する。
端末情報受信部１８３は、端末管理サーバ２または他の利用者端末１から、通信インタフェース２４を介して、端末ＩＤを含む端末情報を受け取り、端末情報記憶部１１１において端末ＩＤに関連付けて端末情報を保存する。また、端末情報受信部１８３が受け取った他端末の端末情報を、端末情報記憶部１１１に記憶されている別の他端末に対して、例えばゴシップ型マルチキャストなどを用いて転送することも可能であるものとする。
【００７２】
通信環境情報取得手段１９は、配信ツリー上において自端末に接続している他の利用者端末１から、接続要求を受け付けることが可能か否かを示す到達可否情報を含む当該端末の通信環境を示す情報を取得するものである。
通信環境情報取得手段１９は、他の利用者端末１から、通信環境を示す情報として、到達可否情報と当該端末の送信容量情報とを取得する。
本実施形態では、通信環境情報取得手段１９は、端末情報管理手段１８で取得した他端末の端末情報から、伝送能力、到達可否情報を取得し、配信トポロジ組替端末選択手段１３に出力することとした。
【００７３】
接続通信環境計測手段２０は、到達可否判定部２０１と、帯域計測部２０２とを備える。到達可否判定部２０１は、自端末が他端末から接続要求を受け付けることができるか否かを判定する。例えば、自端末がインターネット４に直接接続している場合、到達可否情報を「到達可」として端末情報記憶部１１１に登録しておくことができる。
また、例えば、自端末がローカルネットワークを介してルータに接続していることを前提としたときに、ルータが外部（インターネット４）からの接続要求を自端末に転送することができる場合は到達可否情報を「到達可」とし、ルータが外部からの接続要求を自端末に転送できない場合は到達可否情報を「不可」とすることができる。
到達可否判定部２０１は、端末情報記憶部１１１に記憶された端末情報を参照して自端末が他端末から接続要求を受け付けることができるか否かを判別し、その判別結果を接続制御手段１７の接続受付部１７２に出力する（図５参照）。
【００７４】
帯域計測部２０２は、自端末のコンテンツデータの送受信に係る伝送能力を計測するものである。例えば、順次行うコンテンツデータ中継の際に送信したバイト数と、送信に要した時間とから、ビットレート（ｂｉｔ／ｓｅｃ）を計測し、その値を伝送能力とすることもできる。あるいは、自端末が接続している契約回線種別の情報に基づいて、規定値を伝送能力として設定することもできる。規定値として、例えば、ＦＴＴＨ／ＡＤＳＬ／携帯回線に対して、ＦＴＴＨ＝“３”、ＡＤＳＬ＝“２”、携帯回線＝“１”と設定してもよい。なお、図４に示す端末情報は、この規定値に対応している。
【００７５】
コンテンツデータ中継部２１は、トポロジ情報（トポロジ情報記憶部１１２ａに記憶された端末ＩＤ）に基づいて、接続先端末から通信インタフェース２４を介してコンテンツデータを順次受信し、この受信したコンテンツデータを他の接続先端末へ中継するものである。コンテンツデータ中継部２１は、受信したコンテンツデータをコンテンツバッファ２２に格納する。このコンテンツデータ中継部２１は、例えば受信データの中継状態のときには、それに応じた信号を配信トポロジ組替端末選択手段１３に出力し続け、受信データの中継が停止したときには、その信号を停止することで、当該利用者端末１が配信ツリーから離脱したか否かを配信トポロジ組替端末選択手段１３に通知することができる。
【００７６】
コンテンツ再生部２３は、コンテンツバッファ２２よりコンテンツデータを取り出し、順次デコードおよび再生する再生部である。コンテンツ再生部２３には、例えば、利用者の操作にしたがったＯＮ／ＯＦＦ信号等が入力される。例えばＯＮ信号が入力されると、コンテンツが再生され、ＯＦＦ信号が入力されると、コンテンツの再生が停止し、受信中のコンテンツデータの中継を停止し、配信ツリーから離脱することができる。
【００７７】
利用者端末１は、一般的なコンピュータを、前記した各手段として機能させるプログラムにより動作させることで実現することができる。このプログラム（配信トポロジ組替プログラム）は、通信回線を介して配布することも可能であるし、ＤＶＤやＣＤ−ＲＯＭ等の記録媒体に書き込んで配布することも可能である。
【００７８】
［３．配信トポロジ組替端末選択手段の構成例］
次に、配信トポロジ組替端末選択手段の構成例について図６を参照（適宜図３参照）して説明する。図６に示す例では、配信トポロジ組替端末選択手段１３は、タイミング判定手段３１と、下流端末選定制御手段３２と、上流端末選定制御手段３３と、組替端末決定手段３４とを備えることとした。
【００７９】
＜タイミング判定手段３１＞
タイミング判定手段３１は、現時点が配信トポロジ組替処理の処理開始タイミングであるか否かを判別するものである。処理開始タイミングか否かの判別結果は、下流端末選定制御手段３２の後記する伝送能力判別部３２１および端末ＩＤ抽出部３２２に出力される。ここでは、タイミング判定手段３１は、受信終了検知部３１１と、設定時刻検知部３１２とを備えることとした。
【００８０】
受信終了検知部３１１は、現時点の状態が受信処理の終了（離脱）か否かを検知し、離脱の場合、処理開始タイミングであると判別し、かつ、その旨を端末ＩＤ抽出部３２２に通知し、一方、離脱ではない場合、その旨を設定時刻検知部３１２に通知する。なお、受信終了検知部３１１は、例えばコンテンツデータ中継部２１からの信号が途絶えたときに離脱であることを検知することができる。
【００８１】
設定時刻検知部３１２は、離脱ではない場合、現在時刻が設定時刻か否かを検知し、設定時刻の場合、処理開始タイミングであると判別し、かつ、その旨を伝送能力判別部３２１に通知し、一方、設定時刻ではない場合、待機する。設定時刻は、予め定めておいてもよいし、ユーザが設定時刻を図示しない入力装置から随時更新できるようにしてもよい。設定時刻のタイミングは、任意でよく、不定期のタイミングでも定期的のタイミングでも構わない。定期的のタイミングの場合、１秒毎のような一定時間間隔でもよいし、１秒と２秒のように複数の時間間隔を一定のリズムで順次利用してもよい。
なお、タイミング判定手段３１は、受信終了検知部３１１および設定時刻検知部３１２のうちのいずれか１つだけを備えることとしてもよい。
【００８２】
＜下流端末選定制御手段３２＞
下流端末選定制御手段３２は、配信トポロジ組替処理の対象とするいずれか２端末のうち、一方を自端末からみて配信トポロジの下流に接続された下流端末の中から選定するものであって、伝送能力判別部３２１と、端末ＩＤ抽出部３２２と、端末ＩＤソート部３２３と、端末ＩＤ取得制御部３２４と、到達可否判別部３２５とを備える。
【００８３】
伝送能力判別部３２１は、タイミング判定手段３１の設定時刻検知部３１２から、処理開始タイミングである旨の判別結果の通知を受けたときに、トポロジ情報記憶部１１２に、自端末よりも伝送能力が高い下流端末が存在するか否かを判別するものである。自端末よりも伝送能力が高い下流端末が存在するか否かの判別結果は端末ＩＤ抽出部３２２に通知される。なお、伝送能力判別部３２１は、通信環境情報取得手段１９から、各端末の端末情報における伝送能力を取得して判定に用いる。端末ＩＤ抽出部３２２も同様である。
【００８４】
端末ＩＤ抽出部３２２は、タイミング判定手段３１の受信終了検知部３１１から、処理開始タイミングである旨の判別結果の通知を受けたときに、トポロジ情報記憶部１１２から下流端末の端末ＩＤを全て抽出し、端末ＩＤソート部３２３に出力する。
一方、端末ＩＤ抽出部３２２は、伝送能力判別部３２１から、自端末よりも伝送能力が高い下流端末が存在する旨の判別結果の通知を受けた場合、トポロジ情報記憶部１１２に格納されており、且つ自端末よりも伝送能力が高い下流端末の端末ＩＤを抽出し、端末ＩＤソート部３２３に出力する。
【００８５】
端末ＩＤソート部３２３は、端末ＩＤ抽出部３２２で抽出した下流端末の端末ＩＤを、伝送能力の高い順にソートして、端末ＩＤ取得制御部３２４に出力するものである。
端末ＩＤ取得制御部３２４は、下流端末選定制御手段３２と上流端末選定制御手段３３とを連動させた繰り返し処理を制御するものである。この端末ＩＤ取得制御部３２４は、端末ＩＤ抽出部３２２で抽出された下流端末の端末ＩＤの抽出数に応じて、選択すべき下流端末の候補として、伝送能力の高いものから順に１つずつ下流端末の端末ＩＤを取得し、到達可否判別部３２５に出力する。
【００８６】
到達可否判別部３２５は、端末ＩＤ取得制御部３２４で取得された端末ＩＤの下流端末の端末情報を端末情報記憶部１１１から取得し、その取得した端末情報において到達可否情報が「到達可」であるか否かを判別するものである。この判別結果は、上流端末選定制御手段３３の後記する端末候補判別部３３１および端末ＩＤ取得部３３２に出力される。なお、到達可否判別部３２５は、通信環境情報取得手段１９から、各端末の端末情報における到達可否情報を取得して判定に用いる。端末候補判別部３３１、端末ＩＤ取得部３３２、到達可否判別部３４１も同様である。
また、この到達可否判別部３２５は、「到達可」であると判別した場合、下流端末の当該端末ＩＤ（例えばＮｄｉ）を上流端末選定制御手段３３の後記するＩＤ設定部３４２に出力する。
【００８７】
上流端末選定制御手段３３は、配信トポロジ組替処理の対象とするいずれか２端末のうち、他方を自端末からみて配信トポロジの上流に接続された上流端末の中から選定するものであって、端末候補判別部３３１と、端末ＩＤ取得部３３２とを備える。
【００８８】
端末候補判別部３３１は、到達可否判別部３２５から、下流端末の候補の端末情報において到達可否情報が「到達不可」であると旨の判別結果の通知を受けたときに、トポロジ情報記憶部１１２に、到達可否情報が「到達可」である上流端末が存在するか否かを判別するものである。この端末候補判別部３３１は、到達可否情報が「到達可」である上流端末が存在しない場合、その旨を端末ＩＤ取得制御部３２４に通知し、「到達可」である上流端末が存在する場合、その旨を端末ＩＤ取得部３３２に通知する。
【００８９】
端末ＩＤ取得部３３２は、端末候補判別部３３１から、到達可否情報が「到達可」である上流端末が存在する旨の判別結果の通知を受けたときに、トポロジ情報記憶部１１２から、到達可否情報が「到達可」である任意の上流端末の端末ＩＤ（例えばＮｕｉ）を１端末分だけ取得する。
一方、端末ＩＤ取得部３３２は、到達可否判別部３２５から、下流端末の候補の端末情報において到達可否情報が「到達可」であると旨の判別結果の通知を受けたときに、トポロジ情報記憶部１１２から、任意の上流端末の端末ＩＤ（例えばＮｕｉ）を１端末分だけ取得する。
端末ＩＤ取得部３３２で取得された上流端末の端末ＩＤ（例えばＮｕｉ）は、組替端末決定手段３４の後記する到達可否判別部３４１に出力される。
【００９０】
組替端末決定手段３４は、配信トポロジ組替処理の対象とする２端末を決定するものであって、到達可否判別部３４１と、ＩＤ設定部３４２とを備える。
到達可否判別部３４１は、端末ＩＤ取得部３３２から取得した上流端末の端末ＩＤ（例えばＮｕｉ）に基づいて、このＮｕｉに関連付けられた到達可否情報が「到達可」であるか否かを判別するものである。「到達可」であるか否かの判別結果はＩＤ設定部３４２に出力される。
【００９１】
ＩＤ設定部３４２は、組替要求端末ＩＤ（Ｎａ）と、組替受付端末ＩＤ（Ｎｐ）と、組替指示端末ＩＤ（Ｎｃ）とを設定するものである。
ＩＤ設定部３４２は、端末情報記憶部１１１から読み出した自端末ＩＤを、組替指示端末ＩＤ（Ｎｃ）に設定する。
また、ＩＤ設定部３４２は、到達可否判別部３４１の判別結果に応じて、組替要求端末ＩＤ（Ｎａ）と、組替受付端末ＩＤ（Ｎｐ）とを設定する。
具体的には、ＩＤ設定部３４２は、到達可否判別部３４１から、Ｎｕｉに関連付けられた到達可否情報が「到達可」である旨の判別結果の通知を受けた場合、組替要求端末ＩＤ（Ｎａ）に「Ｎｄｉ」を設定し、組替受付端末ＩＤ（Ｎｐ）に「Ｎｕｉ」を設定する。
一方、ＩＤ設定部３４２は、到達可否判別部３４１から、Ｎｕｉに関連付けられた到達可否情報が「到達不可」である旨の判別結果の通知を受けた場合、組替要求端末ＩＤ（Ｎａ）に「Ｎｕｉ」を設定し、組替受付端末ＩＤ（Ｎｐ）に「Ｎｄｉ」を設定する。
ここで設定されたＮａ、Ｎｐ、Ｎｃは、接続組替指示手段１４に出力される。
【００９２】
［４．利用者端末の動作］
次に、利用者端末の動作について、５つに細分化して、４−１．利用者端末のグループ加入処理、４−２．配信ツリーの例、４−３．配信トポロジ組替処理、４−４．配信トポロジ組替端末選択処理、４−５．配信トポロジ組替処理の具体例のそれぞれについて詳細に説明する。
【００９３】
＜４−１．利用者端末のグループ加入処理＞
まず、新規の利用者端末１が配信グループへ参加する際に行うグループ加入処理の手順の一例について図７を参照（適宜図３参照）して説明する。
本実施形態に係るコンテンツ配信システムＳでは、利用者端末１は、利用者の操作にしたがって、図示しないコンテンツ視聴アプリケーションを起動後に、利用者が視聴したいコンテンツを選択すると、端末情報管理手段１８の端末情報送信部１８２によって、自端末の端末情報を含む接続先紹介要求を端末管理サーバ２に送信する（Ｓ００１）。
【００９４】
端末管理サーバ２は、新規の利用者端末１から受信した接続先紹介要求に含まれる端末情報を抽出し、自身が管理する端末情報リストＬ（図２参照）を更新すると共に、端末情報リストＬから、要求されたコンテンツを受信中の利用者端末１の端末情報を１つ以上抽出し（Ｓ００２）、初期接続先リストとして、利用者端末１に送信する（Ｓ００３）。
利用者端末１は、端末情報管理手段１８の端末情報受信部１８３によって、初期接続先リストを受信し、端末情報記憶部１１１に格納する（Ｓ００４）。
【００９５】
利用者端末１は、端末情報管理手段１８の端末情報送信部１８２によって、自端末の端末情報を、端末情報記憶部１１１に端末ＩＤが格納されている他端末に対して送信し、自身が配信グループに参加したことを配信グループの他端末に知らせる。また、新規に配信グループに参加した利用者端末１は、接続制御手段１７によって、自端末から接続要求を行うか、または、他端末から接続要求を受け付けることにより、配信トポロジ（配信ツリー）を構築することができる。
【００９６】
＜４−２．配信ツリーの例＞
ここでは、利用者端末１による配信トポロジ組替処理（接続切替動作）を説明するために、前提とするコンテンツ配信システムＳの配信ツリーの一例について説明する。図８に示す例では、コンテンツ配信サーバ３を頂点とした構造の配信ツリーに属する利用者端末１を円で示している。このうち白丸で示す利用者端末１は、端末情報の到達可否情報が「到達可」であることを示し、黒丸で示す利用者端末１は、端末情報の到達可否情報が「到達不可」であることを示している。利用者端末１の円内に示す数値は、それぞれの利用者端末１の伝送能力を示している。利用者端末１間の線は、お互いが接続関係にあること（配信トポロジを構築していること）を示しており、矢印は、接続要求を行った端末から、接続要求を受付けた端末に向いている。
【００９７】
また、配信グループＧ内の各利用者端末１には固有の端末ＩＤが付されている。
図８において、所定の基準の位置に配置された利用者端末１のＩＤを「Ｎｓ」とし、この利用者端末１を自端末とする。
ＩＤ＝Ｎｕ１、Ｎｕ２の利用者端末１のホップ数はそれぞれ「１」、ＩＤ＝Ｎｓの利用者端末１のホップ数は「２」、ＩＤ＝Ｎｄ１、Ｎｄ２の利用者端末１のホップ数はそれぞれ「３」であるものとする。
また、自端末よりもホップ数が小さい端末（ＩＤ＝Ｎｕ１、Ｎｕ２）のことを、基準に対して上流にそれぞれ配置された上流端末と呼ぶ。
また、自端末よりもホップ数が大きい端末（ＩＤ＝Ｎｄ１、Ｎｄ２）のことを、基準に対して下流にそれぞれ配置された下流端末と呼ぶ。
【００９８】
＜４−３．配信トポロジ組替処理＞
ここでは、利用者端末１による配信トポロジ組替処理の動作（配信トポロジ組替方法）について、図９のシーケンス図を参照（適宜図３、図５、図８参照）して説明する。なお、配信トポロジ組替処理は、自端末である組替指示端末１ｃがコンテンツの受信を止め、コンテンツ配信システムＳに係る処理を終了（離脱）する直前に開始するほか、一定時間間隔など任意のタイミングで開始することができる。
【００９９】
まず、組替指示端末１ｃは、配信トポロジ組替端末選択手段１３によって、配信トポロジの組み替えの対象とする２つの端末を選択する配信トポロジ組替端末選択処理により、組替要求を行う利用者端末１である組替要求端末１ａ、および、組み替えの受付先となる利用者端末１である組替受付端末１ｐを選択する。そして、組替要求端末１ａとして選択した端末の端末ＩＤを、組替要求端末ＩＤ（Ｎａ）の値として設定し、組替受付端末１ｐとして選択した端末の端末ＩＤを、組替受付端末ＩＤ（Ｎｐ）の値として設定し、自端末の端末ＩＤを組替指示端末ＩＤ（Ｎｃ）の値に設定する（Ｓ１０１）。なお、この配信トポロジ組替端末選択処理の詳細については、後記する。
【０１００】
以下、組替要求端末ＩＤのことを単にＮａと表記し、組替受付端末ＩＤのことをＮｐと表記し、組替指示端末ＩＤのことをＮｃと表記することがある。
次に、組替指示端末１ｃは、組替指示メッセージ送信部１４１によって、ＮｐおよびＮｃを含む組替指示メッセージを組替要求端末１ａに送信する（Ｓ１０２）。
組替要求端末１ａは、組替指示メッセージ受信部１５１によって、組替指示端末１ｃから、組替指示メッセージを受信し（Ｓ１０３）、接続組替要求手段１５によって、メッセージからＮｐおよびＮｃを抽出し（Ｓ１０４）、ＮｃおよびＮａを含む組替要求を組替受付端末１ｐに送信する（Ｓ１０５）。
【０１０１】
組替受付端末１ｐは、接続受付部１７２によって、組替要求端末１ａから組替要求を受信し（Ｓ１０６）、ＮｃおよびＮａを抽出する（Ｓ１０７）。
次に、組替受付端末１ｐは、接続切替手段１６によって、組替要求に対する応答（組替応答）を組替要求端末１ａへ送信し（Ｓ１０８）、トポロジ情報記憶部１１２にＮａを追加する（Ｓ１０９）。
組替要求端末１ａは、接続受付部１７２によって、組替応答を受信し（Ｓ１１０）、自身のトポロジ情報記憶部１１２にＮｐを追加する（Ｓ１１１）。
【０１０２】
続いて、組替受付端末１ｐは、切断部１７３によって、Ｎｐを含む切断要求を組替指示端末１ｃに送信し（Ｓ１１２）、自身のトポロジ情報記憶部１１２から、Ｎｃを削除する（Ｓ１１３）。
組替指示端末１ｃは、接続受付部１７２によって、組替受付端末１ｐから切断要求を受信し（Ｓ１１４）、自身のトポロジ情報記憶部１１２からＮｐを削除すると共に、自端末の端末情報の現在接続数をデクリメントする（Ｓ１１５）。
【０１０３】
そして、組替指示端末１ｃは、配信トポロジ組替端末選択手段１３によって、下流端末が存在するか否かを確認し（Ｓ１１６）、存在する場合（Ｓ１１６にてＹｅｓ）、配信トポロジ組替端末選択処理（Ｓ１０１）に戻り、存在しない場合（Ｓ１１６でＮｏ）、処理を終了する。
【０１０４】
なお、組替指示端末１ｃは、下流端末が存在するか否かを確認するために、自身の端末情報記憶部１１１とトポロジ情報記憶部１１２とを参照する。このとき、端末情報記憶部１１１に記憶された端末情報において、自端末のホップ数よりも大きなホップ数に関連付けられた端末ＩＤであって、トポロジ情報記憶部１１２にも記憶されている端末ＩＤが存在すれば、下流端末が存在することになる。
【０１０５】
＜４−４．配信トポロジ組替端末選択処理＞
次に、図９に示した配信トポロジ組替端末選択処理（Ｓ１０１）について、図１０および図１１のシーケンス図を参照（適宜図３、図６、図８、図９参照）して説明する。
自端末である組替指示端末１ｃにおいて、配信トポロジ組替端末選択手段１３は、以下の動作を行う。タイミング判定手段３１によって、現時点の状態が受信処理の終了（離脱）による処理開始タイミングであるか否かを判別する（Ｓ２０１）。離脱による処理開始タイミングとなった場合（Ｓ２０１にてＹｅｓ）、端末ＩＤ抽出部３２２によって、トポロジ情報記憶部１１２から下流端末の端末ＩＤを全て抽出する（Ｓ２０２）。このときの抽出数を「Ｗ」とする。
【０１０６】
一方、前記したＳ２０１において、離脱による処理開始タイミングではなく（Ｓ２０１にてＮｏ）、設定時刻検知部３１２によって、設定時刻による処理開始タイミングであると判別した場合、伝送能力判別部３２１によって、トポロジ情報記憶部１１２に、自端末よりも伝送能力が高い下流端末が存在するか否かを判別する（Ｓ２０３）。自端末よりも伝送能力が高い下流端末が存在する場合（Ｓ２０３にてＹｅｓ）、端末ＩＤ抽出部３２２によって、トポロジ情報記憶部１１２に格納されており、且つ自端末よりも伝送能力が高い下流端末の端末ＩＤを抽出する（Ｓ２０４）。このときの抽出数を「Ｗ」とする。一方、前記したＳ２０３において、自端末よりも伝送能力が高い下流端末が存在しない場合（Ｓ２０３にてＮｏ）、配信トポロジ組替端末選択手段１３は、この配信トポロジ組替処理を終了する。
【０１０７】
次に、端末ＩＤソート部３２３によって、前記したＳ２０２またはＳ２０４の処理により抽出した下流端末の端末ＩＤを、伝送能力の高い順にソートする（Ｓ２０５）。
次に、端末ＩＤ取得制御部３２４によって、変数Ｉの値を「１」に設定し（Ｓ２０６）、変数Ｉの値が「Ｗ」より小さいか否かを判別する（Ｓ２０７）。まだ変数Ｉの値が「Ｗ」より小さい場合（Ｓ２０７にてＹｅｓ）、配信トポロジ組替端末選択手段１３は、図１１に示すように以下の処理を繰り返し、変数Ｉの値が「Ｗ」と等しくなった場合（Ｓ２０７にてＮｏ）、処理を終了する。
【０１０８】
続いて、図１１に示すように、Ｓ２０８において、端末ＩＤ取得制御部３２４によって、現在の変数Ｉの値に基づいてＩ番目の端末ＩＤ（Ｎｄｉ）を取得する。そして、到達可否判別部３２５によって、当該端末ＩＤの端末の端末情報を端末情報記憶部１１１から取得し、その中の到達可否情報が「到達可」であるか否かを判定する（Ｓ２０９）。到達可否情報が「到達可」である場合（Ｓ２０９でＹｅｓ）、端末ＩＤ取得部３３２によって、トポロジ情報記憶部１１２から、任意の上流端末の端末ＩＤ（Ｎｕｉ）を１端末分だけ取得する（Ｓ２１０）。
【０１０９】
一方、前記Ｓ２０９において、到達可否情報が「到達不可」である場合（Ｓ２０９でＮｏ）、端末候補判別部３３１によって、トポロジ情報記憶部１１２に、到達可否情報が「到達可」である上流端末が存在するか否かを判定する（Ｓ２１１）。到達可否情報が「到達可」である上流端末が存在する場合（Ｓ２１１でＹｅｓ）、端末ＩＤ取得部３３２によって、トポロジ情報記憶部１１２から、到達可否情報が「到達可」である任意の上流端末の端末ＩＤ（Ｎｕｉ）を１端末分だけ取得する（Ｓ２１２）。
【０１１０】
一方、前記Ｓ２１１において、到達可否情報が「到達可」である上流端末が存在しない場合（Ｓ２１１でＮｏ）、端末候補判別部３３１は、その旨を端末ＩＤ取得制御部３２４に通知し、端末ＩＤ取得制御部３２４は、現在のＩの値をインクリメント（＋１歩進）させ（Ｓ２１３）、図１０に示すＳ２０７の処理に戻る。
【０１１１】
続いて、図１１に示すように、Ｓ２１４にて、到達可否判別部３４１によって、前記したＳ２１０またはＳ２１２の処理により取得した上流端末の端末ＩＤ（Ｎｕｉ）に基づいて、Ｎｕｉに関連付けられた到達可否情報が「到達可」であるか否かを判別する。Ｎｕｉに関連付けられた到達可否情報が「到達可」である場合（Ｓ２１４：Ｙｅｓ）、ＩＤ設定部３４２によって、組替要求端末ＩＤ（Ｎａ）にＮｄｉを設定し、組替受付端末ＩＤ（Ｎｐ）にＮｕｉを設定し、組替指示端末ＩＤ（Ｎｃ）に自端末ＩＤを設定する（Ｓ２１５）。一方、Ｎｕｉに関連付けられた到達可否情報が「到達不可」である場合（Ｓ２１４：Ｎｏ）、ＩＤ設定部３４２によって、組替要求端末ＩＤ（Ｎａ）にＮｕｉを設定し、組替受付端末ＩＤ（Ｎｐ）にＮｄｉを設定し、組替指示端末ＩＤ（Ｎｃ）に自端末ＩＤを設定する（Ｓ２１６）。
【０１１２】
そして、配信トポロジ組替端末選択手段１３は、前記Ｓ２１５またはＳ２１６の処理に続いて、図１０に示すＳ２０１に戻る。また、配信トポロジ組替端末選択手段１３は、前記Ｓ２１５またはＳ２１６の処理により設定したＮａ、Ｎｐ、Ｎｃを、接続組替指示手段１４に出力する。これにより、接続組替指示手段は、Ｎａ、Ｎｐ、Ｎｃを用いて、前記したＳ１０２（図９参照）の処理を行う。以上により、利用者端末１は、自身の下流に接続する利用者端末１と、自身の上流に接続する利用者端末１とを確実に接続させ、安全に配信トポロジを組み替えることができる。
【０１１３】
＜４−５．配信トポロジ組替処理の具体例＞
さらに、図１０および図１１に示す配信トポロジ組替処理の具体例について図１２を参照して説明する。図１２（ａ）は、図８をもとに作成した同様な配信ツリーにおいて配信トポロジ組替処理の概要を図示したものである。図８と同様に各利用者端末１には固有の端末ＩＤが付されている。以下の説明では、基準の位置に配置された利用者端末１のＩＤを「Ｎｓ」とし、この利用者端末１を自端末とする。また、上流端末は、ＩＤ＝Ｎｕ１、Ｎｕ２の２つの利用者端末１である。また、下流端末は、ＩＤ＝Ｎｄ１、Ｎｄ２の２つの利用者端末１である。
【０１１４】
この場合、ＩＤ＝Ｎｓの利用者端末１（自端末）は、前記した配信トポロジ組替端末選択処理（Ｓ１０１：図９参照）において、Ｓ２０４により抽出した２つの下流端末を、伝送能力の高い順にソートし（Ｓ２０５：図１０参照）、Ｉ＝「１」のとき、つまり１番目に、２つの下流端末の中から、伝送能力が高いＩＤ＝Ｎｄ１の利用者端末１（伝送能力＝「３」）を選択する（Ｓ２０８：図１１参照）。ここで、ＩＤ＝Ｎｄ１の利用者端末１は、黒丸で示されているように到達可否情報が「到達不可」であるので（Ｓ２０９でＮｏ：図１１参照）、２つの上流端末の中から、到達可否情報が「到達可」である利用者端末１（白丸で示されている端末）の端末ＩＤ（＝Ｎｕ１）を１端末分だけ取得する（Ｓ２１２：図１１参照）。さらに、このＩＤ＝Ｎｕ１に関連付けられた到達可否情報が「到達可」であるので（Ｓ２１４でＹｅｓ：図１１参照）、組替要求端末ＩＤ（Ｎａ）の値に「Ｎｄ１」を設定し、組替受付端末ＩＤ（Ｎｐ）の値に「Ｎｕ１」を設定し、組替指示端末ＩＤ（Ｎｃ）の値に「Ｎｓ」を設定する。これら設定値と、端末ＩＤ（Ｎａ、Ｎｐ、Ｎｃ）との対応関係は、図１２（ａ）に図示する通りである。
【０１１５】
次に、図９に示した配信トポロジ組替処理の手順により、組替指示端末ＩＤ（Ｎｃ）として設定されたＩＤ＝Ｎｓを有した組替指示端末１ｃ（自端末）は、Ｎｐ（設定値は「Ｎｕ１」）およびＮｃ（設定値は「Ｎｓ」）を含む組替指示メッセージを、組替要求端末ＩＤ（Ｎａ）として設定されたＩＤ＝Ｎｄ１を有する組替要求端末１ａに送信する（Ｓ１０２：図９参照）。
【０１１６】
続いて、組替要求端末ＩＤ（Ｎａ）として設定されたＩＤ＝Ｎｄ１を有する組替要求端末１ａは、Ｎｃ（設定値は「Ｎｓ」）およびＮａ（設定値は「Ｎｄ１」）を含む組替要求を、組替受付端末ＩＤ（Ｎｐ）として設定されたＩＤ＝Ｎｕ１を有する組替受付端末１ｐに送信する（Ｓ１０５：図９参照）。
【０１１７】
次に、組替受付端末ＩＤ（Ｎｐ）として設定されたＩＤ＝Ｎｕ１を有する組替受付端末１ｐは、組替要求に対する応答（組替応答）を、組替要求端末ＩＤ（Ｎａ）として設定されたＩＤ＝Ｎｄ１を有する組替要求端末１ａへ送信して接続を確立し（Ｓ１０８：図９参照）、さらに、組替指示端末ＩＤ（Ｎｃ）として設定されたＩＤ＝Ｎｓを有する組替指示端末１ｃ（自端末）に切断要求を送信して切断する（Ｓ１１２：図９参照）。以上の一連の処理の結果、図１２（ｂ）のように、配信トポロジの組み替えを行うことができる。
【０１１８】
以上により、本実施形態の利用者端末１によれば、インターネット４にＮＡＴルータを介して接続しているために他端末から接続要求を受付けることができない利用者端末が存在する環境においても、コンテンツ配信システムＳの配信ツリーに参加する利用者端末１が、自身の下流に接続する利用者端末１と、自身の上流に接続する利用者端末１とを確実に接続させ、安全に配信トポロジ（ツリー上の順番）を組み替えることができる。そのため、配信の安定性を向上させると共に、接続切り替えに係る無駄な処理を減らすことができる。
【０１１９】
以上、実施形態に基づいて本発明を説明したが、本発明はこれに限定されるものではない。例えば、本実施形態では、通信環境情報取得手段１９は、他の利用者端末１から、通信環境を示す情報として、到達可否情報と当該端末の送信容量情報の双方を取得することとしたが、到達可否情報だけを取得するようにしてもよい。この場合、配信トポロジ組替端末選択手段１３は、２端末を選択する際に、配信ツリー上において上流の位置にて自端末に接続するいずれか１つの利用者端末と、下流の位置にて自端末に接続するいずれか１つの利用者端末と、を選択することとすればよい。
【０１２０】
また、配信トポロジ組替端末選択手段１３は、２端末を選択する際に、一方は到達可否情報が到達可である利用者端末１を選択するものとしたが、双方を到達可である利用者端末１として選択しても、同様の効果を奏することができる。
また、配信トポロジ組替端末選択手段１３は、２端末を選択する際に、上流と下流から１つずつ端末を選択するものとしたが、双方を下流から選択してもよいし、双方を上流から選択してもよい。
【符号の説明】
【０１２１】
Ｓ      コンテンツ配信システム
１，１Ｇ，１Ｎ，１Ｒ  利用者端末
１ａ    組替要求端末
１ｃ    組替指示端末
１ｐ    組替受付端末
２      端末管理サーバ
３      コンテンツ配信サーバ
４      インターネット
５      ポート開放可能ＮＡＴルータ
６      ポート開放不可ＮＡＴルータ
７      ローカルネットワーク
８      ローカルネットワーク
１１    記憶手段
１１１  端末情報記憶部
１１２  トポロジ情報記憶部
１２    接続相手選択手段
１３    配信トポロジ組替端末選択手段
１４    接続組替指示手段
１４１  組替指示メッセージ送信部
１５    接続組替要求手段
１５１  組替指示メッセージ受信部
１６    接続切替手段
１７    接続制御手段
１７１  接続要求部
１７２  接続受付部
１７３  切断部
１８    端末情報管理手段
１８１  端末情報生成部
１８２  端末情報送信部
１８３  端末情報受信部
１９    通信環境情報取得手段
２０    接続通信環境計測手段
２０１  到達可否判定部
２０２  帯域計測部
２１    コンテンツデータ中継部
２２    コンテンツバッファ
２３    コンテンツ再生部
２４    通信インタフェース
３１    タイミング判定手段
３１１  受信終了検知部
３１２  設定時刻検知部
３２    下流端末選定制御手段
３２１  伝送能力判別部
３２２  端末ＩＤ抽出部
３２３  端末ＩＤソート部
３２４  端末ＩＤ取得制御部
３２５  到達可否判別部
３３    上流端末選定制御手段
３３１  端末候補判別部
３３２  端末ＩＤ取得部
３４    組替端末決定手段
３４１  到達可否判別部
３４２  ＩＤ設定部
Ｌ  端末情報リスト
【図１】
0005616801.tif 000002
【図２】
0005616801.tif 000003
【図３】
0005616801.tif 000004
【図４】
0005616801.tif 000005
【図５】
0005616801.tif 000006
【図６】
0005616801.tif 000007
【図７】
0005616801.tif 000008
【図８】
0005616801.tif 000009
【図９】
0005616801.tif 000010
【図１０】
0005616801.tif 000011
【図１１】
0005616801.tif 000012
【図１２】
0005616801.tif 000013