"コンテンツの配信元であるコンテンツ配信サーバを頂点として、前記コンテンツを視聴する利用者が用いる複数の利用者端末が階層的に接続した配信ツリーを構成して前記コンテンツを配信するコンテンツ配信システムにおいて、前記利用者端末の通信環境に応じて前記利用者端末間で、前記配信ツリー上における端末の接続の順番を示す配信トポロジを組み替える利用者端末であって、前記配信ツリー上において自端末に接続している他の利用者端末から、接続要求を受け付けることが可能か否かを示す到達可否情報を含む通信環境を示す情報を取得する通信環境情報取得手段と、前記配信トポロジを組み替える処理の対象として、自端末に接続している複数の他の利用者端末の中からいずれか2端末を選択し、選択された2端末のうち、一方を組替要求端末として決定し、かつ、他方を組替受付端末として決定する配信トポロジ組替端末選択手段と、前記決定された組替要求端末に対して、自端末を介さずに、前記決定された組替受付端末への接続組替要求を実行するように指示する接続組替指示手段と、前記組替要求端末に前記接続組替要求を実行するように指示する利用者端末を示す組替指示端末から、当該指示を受け付けて、当該組替指示端末の識別情報を含む組替要求メッセージを前記組替受付端末に通知することで接続組替を要求する接続組替要求手段と、前記組替要求端末から、前記組替要求メッセージを受信し、当該組替要求端末との接続を確立すると共に、前記組替指示端末との接続を切断する接続切替手段と、を備え、前記配信トポロジ組替端末選択手段は、前記2端末を選択する際に、少なくとも一方として前記到達可否情報が到達可である利用者端末を選択し、前記組替受付端末を、前記到達可否情報が到達可である利用者端末に決定することを特徴とする利用者端末。前記配信トポロジ組替端末選択手段は、前記2端末を選択する際に、前記配信ツリー上において前記コンテンツ配信サーバからのホップ数が自端末よりも小さい上流の位置にて自端末に接続するいずれか1つの利用者端末と、前記ホップ数が自端末よりも大きい下流の位置にて自端末に接続するいずれか1つの利用者端末と、を選択し、前記選択された2端末のいずれか一方の前記到達可否情報が到達可であることを特徴とする請求項1に記載の利用者端末。前記通信環境情報取得手段は、他の利用者端末から、通信環境を示す情報として、前記到達可否情報と当該端末の送信容量情報とを取得し、前記配信トポロジ組替端末選択手段は、前記2端末を選択する際に、前記配信ツリー上において前記上流の位置にて自端末に接続するいずれか1つの利用者端末と、前記配信ツリー上において前記下流の位置にて自端末に接続すると共に送信容量が最も大きい1つの利用者端末と、を選択し、前記選択された2端末のいずれか一方の前記到達可否情報が到達可であることを特徴とする請求項2に記載の利用者端末。前記配信トポロジ組替端末選択手段は、前記配信トポロジを組み替える処理の対象である2端末を選択して前記組替受付端末および前記組替要求端末を決定する処理を、自端末が前記配信ツリーから離脱する際に開始することを特徴とする請求項1ないし請求項3のいずれか一項に記載の利用者端末。前記配信トポロジ組替端末選択手段は、前記配信トポロジを組み替える処理の対象である2端末を選択して前記組替受付端末および前記組替要求端末を決定する処理を、予め設定された任意のタイミングで開始することを特徴とする請求項1ないし請求項3のいずれか一項に記載の利用者端末。コンテンツの配信元であるコンテンツ配信サーバを頂点として、前記コンテンツを視聴する利用者が用いる複数の利用者端末が階層的に接続した配信ツリーを構成して前記コンテンツを配信するコンテンツ配信システムにおいて、前記利用者端末の通信環境に応じて前記利用者端末間で、前記配信ツリー上における端末の接続の順番を示す配信トポロジを組み替えるために、前記利用者端末としてのコンピュータを、前記配信ツリー上において自端末に接続している他の利用者端末から、接続要求を受け付けることが可能か否かを示す到達可否情報を含む通信環境を示す情報を取得する通信環境情報取得手段、前記配信トポロジを組み替える処理の対象として、自端末に接続している複数の他の利用者端末の中からいずれか2端末を選択し、選択された2端末のうち、一方を組替要求端末として決定し、かつ、他方を組替受付端末として決定する配信トポロジ組替端末選択手段、前記決定された組替要求端末に対して、自端末を介さずに、前記決定された組替受付端末への接続組替要求を実行するように指示する接続組替指示手段、前記組替要求端末に前記接続組替要求を実行するように指示する利用者端末を示す組替指示端末から、当該指示を受け付けて、当該組替指示端末の識別情報を含む組替要求メッセージを前記組替受付端末に通知することで接続組替を要求する接続組替要求手段、前記組替要求端末から、前記組替要求メッセージを受信し、当該組替要求端末との接続を確立すると共に、前記組替指示端末との接続を切断する接続切替手段として機能させるための配信トポロジ組替プログラムであって、前記配信トポロジ組替端末選択手段は、前記2端末を選択する際に、少なくとも一方として前記到達可否情報が到達可である利用者端末を選択し、前記組替受付端末を、前記到達可否情報が到達可である利用者端末に決定することを特徴とする配信トポロジ組替プログラム。しかしながら、コンテンツ配信システム100では、インターネット回線の送信容量伝送能力に余裕がある利用者端末であっても、必ずしも配信サーバ103に近い利用者端末に接続できるとは限らない。その理由の1つは、個々の利用者端末において利用者が視聴を始めたタイミングで、その端末が配信ツリーに新規に接続してコンテンツの受信を開始するからである。また、それに加えて、もう1つの理由は、通常、1つの利用者端末に接続可能な利用者端末数接続可能数は制限されているからである。また、コンテンツ配信システム100では、利用者端末間で一度接続を確立すると、コンテンツの送受信が途絶えない限り接続を維持し続ける。そのため、送信容量伝送能力に余裕がある利用者端末が、一旦、配信ツリーの下流の方に接続してしまうと、他の利用者端末の離脱などに起因して配信サーバに近い利用者端末に接続できる余地が生じた場合であっても、余裕がある利用者端末は現状の状態を維持してしまう問題があった。このような問題に対し、特許文献2では、例えばツリーの上流側に位置する爺ノードの下流に2つの親ノードが接続され、一方の親ノードの下流には2つの子ノードが接続されている構成のツリーにおいて、接続できる余地が生じた場合にも対処することで、システム全体の安定性を向上させる技術が開示されている。この技術では、他方の親ノードの接続が解除された場合、爺ノードは、一方の親ノードに対して、接続が解除されたことを通知する。そして、一方の親ノードは、下流の2つの子ノードのいずれかに、爺ノードへの接続が可能になったことを示す接続可能通知を送信する。これにより、子ノードのいずれかは、爺ノードへ新たに接続することができる。しかし、各ノード装置利用者端末が自律的に配信トポロジを構築するシステムを想定した場合、特許文献2の技術では、接続可能通知を受信した子ノードが、爺ノードに接続する前に、新たに参加した別のノード装置が爺ノードに接続してしまう可能性があり、必ずしも意図通りに接続切替処理が行えるとは限らない。そのため、接続切り替えが成立せず、無駄な処理となってしまうことがある。さらに、配信ツリーを構成する利用者端末は、例えばPCPersonalcomputerであって、一般家庭や企業に設置されたPCは、NATNetworkAddressTranslationルータを介してインターネットに接続していることが多い。このようなPCは、自身自端末から接続要求を行ってインターネット上の他の端末PCやサーバと接続を確立し、通信を行うことができる一方で、インターネット上の他の端末からの接続要求については、NATルータで遮られてしまうため、受け付けることができず、接続が確立できない。特許文献2に記載の技術は、この点が考慮されていない。そのため、仮に、特許文献2に記載された爺ノードがNATルータを介してインターネットに接続しており、接続要求を受付けることができない場合、子ノードから爺ノードに新たに接続要求を行うことができない。本発明は、以上のような問題点に鑑みてなされたものであり、コンテンツを配信する配信ツリーに属する端末に対して安定してコンテンツを配信できる利用者端末および配信トポロジ組替プログラムを提供することを課題とする。前記課題を解決するために、本発明のうち請求項1に記載の利用者端末は、コンテンツの配信元であるコンテンツ配信サーバを頂点として、前記コンテンツを視聴する利用者が用いる複数の利用者端末が階層的に接続した配信ツリーを構成して前記コンテンツを配信するコンテンツ配信システムにおいて、前記利用者端末の通信環境に応じて前記利用者端末間で、前記配信ツリー上における端末の接続の順番を示す配信トポロジを組み替える利用者端末であって、通信環境情報取得手段と、配信トポロジ組替端末選択手段と、接続組替指示手段と、接続組替要求手段と、接続切替手段とを備えることとした。かかる構成によれば、利用者端末は、通信環境情報取得手段によって、前記配信ツリー上において自端末に接続している他の利用者端末から、接続要求を受け付けることが可能か否かを示す到達可否情報を含む通信環境を示す情報を取得する。そして、利用者端末は、配信トポロジ組替端末選択手段によって、前記配信トポロジを組み替える処理の対象として、自端末に接続している複数の他の利用者端末の中からいずれか2端末を選択し、選択された2端末のうち、一方を組替要求端末として決定し、かつ、他方を組替受付端末として決定する。ここで、組替受付端末は、選択された他方から組替の要求を受け付けて当該他方との接続を確立すると共に、決定を行った自端末と切断する接続組替を実行する。また、組替要求端末は、選択された一方に対して前記接続組替を要求する。さらに、配信トポロジ組替端末選択手段は、前記2端末を選択する際に、少なくとも一方として前記到達可否情報が到達可である利用者端末を選択し、前記組替受付端末を、前記到達可否情報が到達可である利用者端末に決定する。なお、到達可否情報が到達可である端末は、インターネット上の他の端末からの接続要求を受け付けることができる。そして、利用者端末は、接続組替指示手段によって、前記決定された組替要求端末に対して、自端末を介さずに、前記決定された組替受付端末への接続組替要求を実行するように指示する。そして、利用者端末は、前記組替要求端末として機能するときに、接続組替要求手段によって、前記組替要求端末に前記接続組替要求を実行するように指示する利用者端末を示す組替指示端末から、当該指示を受け付けて、当該組替指示端末の識別情報を含む組替要求メッセージを前記組替受付端末に通知することで接続組替を要求する。そして、利用者端末は、前記組替受付端末として機能するときに、接続切替手段によって、前記組替要求端末から、前記組替要求メッセージを受信し、当該組替要求端末との接続を確立すると共に、前記組替指示端末との接続を切断する。また、請求項2に記載の利用者端末は、請求項1に記載の利用者端末において、前記配信トポロジ組替端末選択手段が、前記2端末を選択する際に、前記配信ツリー上において前記コンテンツ配信サーバからのホップ数が自端末よりも小さい上流の位置にて自端末に接続するいずれか1つの利用者端末と、前記ホップ数が自端末よりも大きい下流の位置にて自端末に接続するいずれか1つの利用者端末と、を選択し、前記選択された2端末のいずれか一方の前記到達可否情報が到達可であることを特徴とする。かかる構成によれば、利用者端末は、配信トポロジ組替端末選択手段によって、配信ツリー上において上流に接続するいずれか1つの利用者端末と、下流に接続するいずれか1つの利用者端末とを確実に接続させ、安全に配信トポロジを組み替えることができる。また、請求項3に記載の利用者端末は、請求項2に記載の利用者端末において、前記通信環境情報取得手段が、他の利用者端末から、通信環境を示す情報として、前記到達可否情報と当該端末の送信容量情報とを取得し、前記配信トポロジ組替端末選択手段が、前記2端末を選択する際に、前記配信ツリー上において前記上流の位置にて自端末に接続するいずれか1つの利用者端末と、前記配信ツリー上において前記下流の位置にて自端末に接続すると共に送信容量が最も大きい1つの利用者端末と、を選択し、前記選択された2端末のいずれか一方の前記到達可否情報が到達可であることを特徴とする。かかる構成によれば、利用者端末は、配信トポロジ組替端末選択手段によって、上流端末と、下流端末のうち送信容量が最も大きい利用者端末とを優先的に選択するので、送信容量に余裕のある下流端末を上流端末に確実に接続させ、安全に配信トポロジを組み替えることができる。これにより、送信容量に余裕のある端末をコンテンツ配信サーバにより近づけることができるため、コンテンツ配信の安定性を向上できる。また、請求項4に記載の利用者端末は、請求項1ないし請求項3のいずれか一項に記載の利用者端末において、前記配信トポロジ組替端末選択手段が、前記配信トポロジを組み替える処理の対象である2端末を選択して前記組替受付端末および前記組替要求端末を決定する処理を、自端末が前記配信ツリーから離脱する際に開始することを特徴とする。かかる構成によれば、利用者端末は、配信ツリーから離脱する際に、配信トポロジを組み替える処理を行うので、自端末が接続する端末であって互いに接続していなかった2端末の間に接続関係を構築した後で、自端末が離脱することができる。そのため、配信ツリーにおいて、自端末が離脱したとしてもコンテンツ配信サーバからのストリームの転送を途切れさせないようにすることができ、安定性を向上できる。また、請求項5に記載の利用者端末は、請求項1ないし請求項3のいずれか一項に記載の利用者端末において、前記配信トポロジ組替端末選択手段が、前記配信トポロジを組み替える処理の対象である2端末を選択して前記組替受付端末および前記組替要求端末を決定する処理を、予め設定された任意のタイミングで開始することを特徴とする。かかる構成によれば、利用者端末は、予め設定された任意のタイミングで配信トポロジを組み替える処理を行うので、自端末の利用者がコンテンツを視聴中であるかどうかに関わらず、自端末が接続する端末であって互いに接続していなかった2端末の間に接続関係を構築することができる。そのため、自端末の送信容量に余裕がなくなったとしても、コンテンツ配信サーバからのストリームの転送を途切れさせないようにすることができ、安定性を向上できる。また、請求項6に記載の配信トポロジ組替プログラムは、コンテンツの配信元であるコンテンツ配信サーバを頂点として、前記コンテンツを視聴する利用者が用いる複数の利用者端末が階層的に接続した配信ツリーを構成して前記コンテンツを配信するコンテンツ配信システムにおいて、前記利用者端末の通信環境に応じて前記利用者端末間で、前記配信ツリー上における端末の接続の順番を示す配信トポロジを組み替えるために、前記利用者端末としてのコンピュータを、通信環境情報取得手段、配信トポロジ組替端末選択手段、接続組替指示手段、接続組替要求手段、接続切替手段として機能させるためのプログラムであることとした。かかる構成によれば、配信トポロジ組替プログラムは、通信環境情報取得手段によって、前記配信ツリー上において自端末に接続している他の利用者端末から、接続要求を受け付けることが可能か否かを示す到達可否情報を含む通信環境を示す情報を取得する。そして、配信トポロジ組替プログラムは、配信トポロジ組替端末選択手段によって、前記配信トポロジを組み替える処理の対象として、自端末に接続している複数の他の利用者端末の中からいずれか2端末を選択し、選択された2端末のうち、一方を組替要求端末として決定し、かつ、他方を組替受付端末として決定する。ここで、配信トポロジ組替端末選択手段は、前記2端末を選択する際に、少なくとも一方として前記到達可否情報が到達可である利用者端末を選択し、前記組替受付端末を、前記到達可否情報が到達可である利用者端末に決定する。そして、配信トポロジ組替プログラムは、接続組替指示手段によって、前記決定された組替要求端末に対して、自端末を介さずに、前記決定された組替受付端末への接続組替要求を実行するように指示する。そして、配信トポロジ組替プログラムは、接続組替要求手段によって、前記組替要求端末に前記接続組替要求を実行するように指示する利用者端末を示す組替指示端末から、当該指示を受け付けて、当該組替指示端末の識別情報を含む組替要求メッセージを前記組替受付端末に通知することで接続組替を要求する。そして、配信トポロジ組替プログラムは、接続切替手段によって、前記組替要求端末から、前記組替要求メッセージを受信し、当該組替要求端末との接続を確立すると共に、前記組替指示端末との接続を切断する。請求項1または請求項6に記載の発明によれば、利用者端末は、配信ツリーにおいて自端末に接続している他の利用者端末の通信環境に応じて、自端末が接続する端末であって互いに接続していなかった2端末の間に接続関係を構築することができる。そのため、コンテンツを配信する配信ツリーに属する端末に対して安定してコンテンツを配信できる。請求項2または請求項3に記載の発明によれば、利用者端末は、配信ツリーにおいて自端末の下流に接続する利用者端末と、上流に接続する利用者端末とを確実に接続させ、安全に配信トポロジを組み替えることができる。請求項4または請求項5に記載の発明によれば、利用者端末は、配信ツリーにおいて端末の離脱が発生したとしても、コンテンツ配信サーバからのストリームの転送を途切れさせないようにすることができ、安定性を向上できる。以下、本発明を実施するための形態について、1.コンテンツ配信システムの概要、2.利用者端末の詳細、3.配信トポロジ組替端末選択手段の構成例、4.利用者端末の動作の各章に分けて、図面を参照して詳細に説明する。[1.コンテンツ配信システムの概要]図2に示すコンテンツ配信システムSは、コンテンツの配信元であるコンテンツ配信サーバ3を頂点として、コンテンツを視聴する利用者が用いる複数の利用者端末11G、1R,1Nが階層的に接続した配信ツリーを構成してコンテンツを配信するものである。そのため、コンテンツ配信システムSでは、利用者端末1は、図1に示すコンテンツ配信システム100と同様にして所望のストリーミングメディアを得ることができる。ただし、コンテンツ配信システムSでは、利用者端末1は、3つの異なる形態でネットワークインターネット、ローカルネットワークに接続されており、機能が異なっている。利用者端末1Gと、端末管理サーバ2と、コンテンツ配信サーバ3とは、インターネット4に直接接続している。各ローカルネットワーク7はそれぞれのポート開放可能NATルータ5を介してインターネット4と接続されている。各ローカルネットワーク8はそれぞれのポート開放不可NATルータ6を介してインターネット4と接続されている。利用者端末1Rは、ローカルネットワーク7およびポート開放可能NATルータ5を介して間接的にインターネット4に接続されている。利用者端末1Nは、ローカルネットワーク8およびポート開放不可NATルータ6を介して間接的にインターネット4に接続されている。ここで、ポート開放可能NATルータ5とは、例えばUPnPUniversalPlugandPlayによるポート開放機能に対応しており、ルータの外部インターネット4からの接続要求をローカルネットワーク7内の利用者端末1Rに転送することができるルータである。よって、ポート開放可能NATルータ5にローカルネットワーク7を介して接続している利用者端末1Rは、インターネット4を介して端末管理サーバ2、コンテンツ配信サーバ3、他の利用者端末1Rと、TCP/IPなどの通信プロトコルにより、相互に接続要求が可能であると共に、相互に接続要求の受け付けが可能であり到達可であり、接続を確立した上で、データを送受信することが可能であるものとする。一方、ポート開放不可NATルータ6とは、例えばUPnPによるポート開放機能などに対応していないか、対応していても当該機能を無効にしていることにより、ルータの外部インターネット4からの接続要求をローカルネットワーク8内の利用者端末1Nに転送することができないルータである。よって、ポート開放不可NATルータ6にローカルネットワーク8を介して接続している利用者端末1Nは、インターネット4を介して端末管理サーバ2、コンテンツ配信サーバ3、および利用者端末1Rに対して、自身が接続要求を行うことで接続を確立し、データを送受信することは可能であるが、それら機器および他の利用者端末1Nの接続要求例えばTCPコネクションを受け付けることはできないものとする。なお、図2においては、端末管理サーバ2、コンテンツ配信サーバ3を個別の機器として表記しているが、1つの機器に全ての機能を具備してもよい。<コンテンツ配信サーバ>コンテンツ配信サーバ3は、コンテンツの配信元となるサーバである。このコンテンツ配信サーバ3は、当該コンテンツ配信サーバ3および利用者端末1が階層的に接続して構成する配信ツリーに参加する利用者端末1に対して順次コンテンツデータを配信する。なお、以下では、単に端末というとき、コンテンツ配信サーバ3や各利用者端末1を指している。また、コンテンツ配信サーバ3をノードの頂点として、ある時点で各ノードの接続関係が決定されて構築されている配信トポロジのことを配信ツリーと呼ぶ。また、配信ツリー内の各ノードの集合体のことを配信グループと呼ぶ。<端末管理サーバ>端末管理サーバ2は、コンテンツ配信システムSに参加している各端末のコンテンツ配信に係る情報である端末情報を端末情報リストLに保持して管理するものである。ここで、各端末とは、コンテンツ配信サーバ3や各利用者端末1を指している。また、端末情報には、コンテンツ配信サーバ3や利用者端末1を識別するための端末IDに対応付けた情報として、IPアドレスやポート番号などのデータ転送に必要な情報が含まれる。端末管理サーバ2は、利用者端末1が配信グループへ新規参加する際に、この新規の利用者端末1から、当該利用者端末1の端末情報を含むメッセージである接続先紹介要求を受け付ける。端末管理サーバ2は、接続先紹介要求に応じて、初期接続先リストを返信する。この初期接続先リストは、配信グループへ新規参加する利用者端末1が直接接続できる接続先の候補となる端末の端末情報を1つ以上含むリストである。ここで、接続先の候補となる端末は、コンテンツ配信サーバ3または他の利用者端末1である。<利用者端末>利用者端末1は、同じ配信ツリーに属する他の利用者端末1と接続し、コンテンツのデータパケットコンテンツデータと呼ぶを受信したり転送したりする端末である。つまり、利用者端末1は、配信ツリー内においてピアツーピア技術を用いたノードとして、コンテンツ配信側にも受信側にもなる機能を有している。また、詳細は後記するが、利用者端末1は、利用者端末1の通信環境に応じて、利用者端末11G,1N,1R間で、配信ツリー上における端末の接続の順番を示す配信トポロジを組み替える配信トポロジ組替処理を実行するために、例えば図9に示すように、他の端末に接続組替を要求する組替要求端末以下、1aと表記するとしての機能と、組替要求端末1aからの接続組替の要求を受け付ける組替受付端末以下、1pと表記するとしての機能と、組替要求端末1aに、組替受付端末1pへの接続組替要求を実行するように指示する組替指示端末以下、1cと表記するとしての機能と、を併せて保持している。詳細は後記するが、配信ツリーにおいて、組替指示端末1c図12aにおいてNcは、自端末に接続している利用者端末1の中から端末組替要求端末1a図12aにおいてNaと組替受付端末1p図12aにおいてNpとを決定する。また、組替受付端末1p図12aにおいてNpが実行する接続組替とは、組替の要求を受け付けて組替要求端末1a図12aにおいてNaとの接続を確立すると共に組替指示端末1c図12aにおいてNcと切断する組替のことを指す図12bに組替結果を示す。[2.利用者端末の詳細]利用者端末1は、例えば、CPUCentralProcessingUnit等の演算装置と、メモリやハードディスク等の記憶装置と、外部との間で各種情報の送受信を行うインタフェース装置とを備えた一般的なパーソナルコンピュータ等から構成されている。利用者端末1は、前記したハードウェア資源がプログラムによって制御されることにより実現され、図3に示すように、記憶手段11と、接続相手選択手段12と、配信トポロジ組替端末選択手段13と、接続組替指示手段14と、接続組替要求手段15と、接続切替手段16と、接続制御手段17と、端末情報管理手段18と、通信環境情報取得手段19と、接続通信環境計測手段20と、コンテンツデータ中継部21と、コンテンツバッファ22と、コンテンツ再生部23と、通信インタフェース24とを備える。記憶手段11は、RAMRandomAccessMemoryやROMReadOnlyMemory等のメモリやハードディスク等の記憶装置から構成され、端末情報記憶部111と、トポロジ情報記憶部112とを備える。端末情報記憶部111は、自身の利用者端末1自端末の端末情報と、配信グループに参加している他の利用者端末1他端末およびコンテンツ配信サーバ3の端末情報とを記憶し、保持する。端末情報の一例を図4に示す。図4の例では、各端末の端末情報をデータベース化した端末情報データベースの項目として、端末ID41にそれぞれ関連付けてある、接続待受けアドレス42と、到達可否43と、伝送能力44と、接続可能数45と、現在接続数46と、ホップ数47とを含んでいる。端末ID41は、コンテンツ配信サーバ3および利用者端末1を一意に識別する識別子である。端末ID41は、例えば、各端末の固有情報、MACアドレス、汎用一意識別子UUID等を用いてもよい。接続待受けアドレス42は、他端末から接続要求を受け付けることができるIPアドレスとポート番号の組を示している。ただし、到達可否43の情報が到達不可の場合図4の例では否は、他の利用者端末1からの接続受付けが不可能なため、図4では、ポート番号をと示している。到達可否43は、インターネット4を介して接続要求を受付けることが可能か否かを示す情報到達可否情報である。例えば、受付けることが可能な場合に到達可否情報の値を到達可とし、受付けることできない場合に到達可否情報の値を到達不可とする。到達可否情報が到達可である端末は、インターネット上の他の端末からの接続要求はNATルータポート開放可能NATルータ5:図2参照で遮られず、接続要求を受け付けることができる。到達可否情報が到達不可である端末は、インターネット上の他の端末からの接続要求はNATルータポート開放不可NATルータ6:図2参照で遮られる。なお、図4の例では、到達可および到達不可のことを、単に可および否のように略記した。また、到達可、到達不可のことをフラグ01等で実現することができる。伝送能力44は、端末ID41に関連付けてある当該端末のコンテンツデータの送受信に係る送信能力を示す情報である。なお、図4では、一例として、数値が大きいものほど伝送能力が高いものとした。接続可能数45は、端末ID41に関連付けてある当該端末がコンテンツ配信サーバ3や他の利用者端末1と接続する際に、最大何台の端末と同時に接続できるかを示す情報である。この接続可能数45は、例えば、接続要求を受け付ける側の利用者端末1にとってみると、接続受付可能数となる。接続可能数45として、予め規定値を設定してもよいし、利用者端末1の通信状態に合わせて順次更新してもよい。現在接続数46は、端末ID41に関連付けてある当該端末が、現在接続しているコンテンツ配信サーバ3や他の利用者端末1の総数を示す情報である。この現在接続数46は、例えば、接続要求を受け付ける側の利用者端末1にとってみると、接続受付数となる。ホップ数47は、配信ツリーにおけるコンテンツ配信サーバ3からの中継段数を示す値である。なお、ホップ数47は、コンテンツ配信サーバ3から最短で中継できるように数えた段数最小ホップ数を示している。ここでは、コンテンツ配信サーバ3のホップ数を0として、コンテンツ配信サーバ3に直接接続している利用者端末1のホップ数を1、当該利用者端末1に接続している利用者端末1のホップ数を2とする。また、接続や切断により、現在接続しているコンテンツ配信サーバ3や他の利用者端末1が変更になった場合、ホップ数47は、接続中の端末のホップ数の変更に合わせて随時更新することができる。トポロジ情報記憶部112は、当該利用者端末1が他の端末に直接接続して構築されている配信トポロジの情報として、直接接続している端末の端末IDの情報を記憶し、保存する。この配信トポロジの情報は、当該利用者端末1を介したコンテンツデータの送受信のために利用される。当該利用者端末1に対してコンテンツデータを送信する側を上流と呼び、当該利用者端末1からコンテンツデータを受信する側を下流と呼ぶ。接続相手選択手段12は、端末情報記憶部111に格納されている端末情報から、所定の基準に基づいて接続相手候補を選択し、選択された利用者端末1に対して、接続制御手段17を介して接続要求を送信するものである。ここで、所定の基準として、例えば、次の条件A1~A3をすべて満たす端末を、接続相手候補として選択することができる。条件A1端末IDがトポロジ情報記憶部112に格納されていない。条件A2現在接続数の値が接続可能数の値よりも小さい。条件A3到達可否情報の値が到達可である。図3に示す利用者端末1は、図9に示す組替指示端末1c、組替要求端末1aおよび組替受付端末1pのいずれの機能で動作するのかによって、例えば接続制御手段17等の機能等が異なってくる。図3に示す各手段を、これら3機能に対応させ、一部を抽出したブロック図を図5に示す。図5右下に示す組替指示端末1cは、この機能を実行するときのIDとしてNcを有している。また、図面では、この機能を実行するときの各手段の符号にcを追加して区別した。図5右上に示す組替要求端末1aは、この機能を実行するときのIDとしてNaを有している。また、図面では、この機能を実行するときの各手段の符号にaを追加して区別した。図5左に示す組替受付端末1pは、この機能を実行するときのIDとしてNpを有している。また、図面では、この機能を実行するときの各手段の符号にpを追加して区別した。以下、図5を参照適宜図3参照して、利用者端末1の各手段の構成の説明を続ける。<組替指示端末>組替指示端末1cは、図5に示すように、主たる構成として、配信トポロジ組替端末選択手段13図5では13cと表記と、接続組替指示手段14図5では14cと表記と、接続制御手段17図5では17cと表記とを備える。配信トポロジ組替端末選択手段13は、配信トポロジを組み替える処理の対象として、自端末に接続している複数の他の利用者端末1の中からいずれか2端末を選択し、選択された2端末のうち、選択した一方を、組替要求端末1aとして決定し、かつ、他方を組替受付端末1pとして決定するものである。この配信トポロジ組替端末選択手段13は、2端末を選択する際に、一方として到達可否情報が到達可である利用者端末1を選択し、組替受付端末1pを、到達可否情報が到達可である利用者端末に決定する。ここで、配信トポロジ組替端末選択手段13は、2端末を選択する際に、上流の位置にて自端末に接続するいずれか1つの利用者端末と、下流の位置にて自端末に接続すると共に送信容量が最も大きい1つの利用者端末と、を選択することとした。なお、上流に接続する端末とは、コンテンツ配信サーバ3からのホップ数が自端末よりも小さい端末であり、下流に接続する端末とは、コンテンツ配信サーバ3からのホップ数が自端末よりも大きい端末である。本実施形態では、配信トポロジ組替端末選択手段13は、トポロジ情報記憶部112に端末IDが格納されている利用者端末1の中から、伝送能力や到達可否情報に基づいて配信トポロジ組替の対象となる2つの利用者端末1を選択し、一方を組替要求端末1a、他方を組替受付端末1pに決定し、それら利用者端末1の端末IDをそれぞれ組替要求端末ID=Na、組替受付端末ID=Npとして接続組替指示手段14に出力する。なお、詳細については後記する。接続組替指示手段14は、配信トポロジ組替端末選択手段13で決定された組替要求端末1aに対して、配信トポロジ組替端末選択手段13で決定された組替受付端末1pへの接続組替要求を実行するように指示するものである。ここで、接続組替指示手段14は、配信トポロジ組替端末選択手段13より入力した、組替要求端末ID=Na、組替受付端末ID=Np、および自端末の端末IDである組替指示端末ID=Ncを利用して、組替指示メッセージを生成、送信する。本実施形態では、接続組替指示手段14は、組替指示メッセージ送信部141を備えることとした。この組替指示メッセージ送信部141は、組替受付端末ID=Npおよび組替指示端末ID=Ncを含む組替指示メッセージを、組替要求端末1aに対して、所定の通信インタフェース24を介して送信する。接続制御手段17図5では17cと表記は、接続要求部171と、接続受付部172と、切断部173とを備え、接続受付部172が機能する。なお、図5において、機能していないサブブロックは、破線の枠で示した。接続受付部172図5では172cと表記は、接続指示および接続要求に応じて組替受付端末1pが送信する後記する切断要求を受信し、切断した場合は、その切断した他端末の端末IDを、記憶手段11cのトポロジ情報記憶部112図3参照から削除すると共に、端末情報記憶部111図3参照に記憶された自端末の端末情報において現在接続数をデクリメントする1を減算する。<組替要求端末>組替要求端末1aは、図5に示すように、主たる構成として、接続組替要求手段15図5では15aと表記と、接続制御手段17図5では17aと表記とを備える。接続組替要求手段15は、組替指示端末1cから、接続組替の指示組替指示メッセージを受信し、当該組替指示端末1cのID識別情報=Ncを含む組替要求メッセージを組替受付端末1pに通知することで接続組替を要求するものである。本実施形態では、接続組替要求手段15は、組替指示メッセージ受信部151を備えることとした。この組替指示メッセージ受信部151は、組替指示端末1cから、通信インタフェース24を介して組替指示メッセージを受信する。接続組替要求手段15は、受信した組替指示メッセージから、組替指示端末ID=Ncおよび組替受付端末ID=Npを抽出し、組替指示端末ID=Ncおよび組替要求端末ID=Naを含む組替要求メッセージを生成し、接続制御手段17を介して、組替受付端末1pに送信する。接続制御手段17図5では17aと表記は、接続要求部171と、接続受付部172と、切断部173とを備え、接続要求部171および接続受付部172が機能する。なお、図5において、機能していないサブブロックは、破線の枠で示した。接続要求部171図5では171aと表記は、接続組替要求手段15の指示のもと、接続要求を行う。接続要求部171a図5参照は、接続が確立した場合は、その確立した他端末の端末IDをトポロジ情報記憶部112a図5参照に追加すると共に、端末情報記憶部111a図5参照に記憶された端末情報において現在接続数およびホップ数を更新する。例えば、ホップ数の更新値を算出するために以下の方法を用いることができる。具体的には、現在接続数が3であって、それぞれのホップ数の値がh1、h2、h3であった場合を想定すると、更新後において現在接続数は、4、更新後においてホップ数は、Minh1、h2、h31の演算により算出することができる。接続受付部172図5では172aと表記は、接続要求に応じて組替受付端末1pが送信する組替応答を受信し、確立した場合は、その旨を接続要求部171a図5参照に通知する。これにより、接続要求部171a図5参照にてトポロジ情報記憶部112a図5参照および端末情報記憶部111a図5参照の更新処理を行う。<組替受付端末>組替受付端末1pは、図5に示すように、主たる構成として、接続切替手段16図5では16pと表記と、接続制御手段17図5では17pと表記とを備える。接続切替手段16は、組替要求端末1aから、組替要求メッセージを受信し、当該組替要求端末1aとの接続を確立すると共に、組替指示端末1cとの接続を切断するものである。本実施形態では、接続切替手段16は、組替要求端末1aから、接続制御手段17を介して、組替要求を入力し、組替要求端末ID=Naおよび組替指示端末ID=Ncを抽出し、組替要求端末1aに対して、組み替えが成功したことを示す組替応答を送信すると共に、組替指示端末1cに対して、接続制御手段17を通して切断要求を行う。接続制御手段17図5では17pと表記は、接続要求部171と、接続受付部172と、切断部173とを備える。接続要求部171図5では171pと表記は、接続組替要求手段15の指示のもと、接続要求を行う。この場合、接続要求部171p図5参照は、組替要求端末1aに対して、組み替えが成功したことを示す組替応答を送信する。接続受付部172図5では172pと表記は、他端末からの接続要求組替要求を受付け、所定の基準に基づいて接続を確立するか否か判定する。ここで、所定の基準として、例えば、次の条件B1およびB2をいずれも満たす場合、接続を確立することができる。なお、到達可否情報が到達可であることを前提とすることはもちろんである。条件B1自端末組替受付端末1pとして機能する当該利用者端末1の端末情報の現在接続数の値が接続可能数の値よりも小さい。条件B2当該他端末組替要求端末1aとして機能する当該利用者端末1の端末IDがトポロジ情報記憶部112に格納されていない。また、接続受付部172p図5参照は、接続が確立した場合、その確立した他端末の端末IDをトポロジ情報記憶部112p図5参照に追加すると共に、端末情報記憶部111p図5参照に記憶された端末情報において、現在接続数、およびホップ数を更新する。切断部173図5では173pと表記は、接続受付部172p図5参照が組替要求を受信した場合、接続切替手段16に従い、組替指示端末1cに対して切断要求を行うものである。この切断部173は、組替受付端末ID=Npを含む切断要求メッセージを生成、送信する。なお、切断部173は、切断した他端末の端末IDをトポロジ情報記憶部112から削除する図3に戻って、利用者端末1の各手段の構成の説明を続ける。端末情報管理手段18は、図3に示すように、端末情報生成部181と、端末情報送信部182と、端末情報受信部183とを備える。端末情報生成部181は、自端末の端末IDを含む端末情報を生成し、端末情報記憶部111に保存する。端末情報送信部182は、自端末の端末情報を端末情報記憶部111から読み出し、通信インタフェース24を介して、端末管理サーバ2または端末IDが端末情報記憶部111に記憶されている他の利用者端末1へ送信する。端末情報受信部183は、端末管理サーバ2または他の利用者端末1から、通信インタフェース24を介して、端末IDを含む端末情報を受け取り、端末情報記憶部111において端末IDに関連付けて端末情報を保存する。また、端末情報受信部183が受け取った他端末の端末情報を、端末情報記憶部111に記憶されている別の他端末に対して、例えばゴシップ型マルチキャストなどを用いて転送することも可能であるものとする。通信環境情報取得手段19は、配信ツリー上において自端末に接続している他の利用者端末1から、接続要求を受け付けることが可能か否かを示す到達可否情報を含む当該端末の通信環境を示す情報を取得するものである。通信環境情報取得手段19は、他の利用者端末1から、通信環境を示す情報として、到達可否情報と当該端末の送信容量情報とを取得する。本実施形態では、通信環境情報取得手段19は、端末情報管理手段18で取得した他端末の端末情報から、伝送能力、到達可否情報を取得し、配信トポロジ組替端末選択手段13に出力することとした。接続通信環境計測手段20は、到達可否判定部201と、帯域計測部202とを備える。到達可否判定部201は、自端末が他端末から接続要求を受け付けることができるか否かを判定する。例えば、自端末がインターネット4に直接接続している場合、到達可否情報を到達可として端末情報記憶部111に登録しておくことができる。また、例えば、自端末がローカルネットワークを介してルータに接続していることを前提としたときに、ルータが外部インターネット4からの接続要求を自端末に転送することができる場合は到達可否情報を到達可とし、ルータが外部からの接続要求を自端末に転送できない場合は到達可否情報を不可とすることができる。到達可否判定部201は、端末情報記憶部111に記憶された端末情報を参照して自端末が他端末から接続要求を受け付けることができるか否かを判別し、その判別結果を接続制御手段17の接続受付部172に出力する図5参照。帯域計測部202は、自端末のコンテンツデータの送受信に係る伝送能力を計測するものである。例えば、順次行うコンテンツデータ中継の際に送信したバイト数と、送信に要した時間とから、ビットレートbit/secを計測し、その値を伝送能力とすることもできる。あるいは、自端末が接続している契約回線種別の情報に基づいて、規定値を伝送能力として設定することもできる。規定値として、例えば、FTTH/ADSL/携帯回線に対して、FTTH=3、ADSL=2、携帯回線=1と設定してもよい。なお、図4に示す端末情報は、この規定値に対応している。コンテンツデータ中継部21は、トポロジ情報トポロジ情報記憶部112aに記憶された端末IDに基づいて、接続先端末から通信インタフェース24を介してコンテンツデータを順次受信し、この受信したコンテンツデータを他の接続先端末へ中継するものである。コンテンツデータ中継部21は、受信したコンテンツデータをコンテンツバッファ22に格納する。このコンテンツデータ中継部21は、例えば受信データの中継状態のときには、それに応じた信号を配信トポロジ組替端末選択手段13に出力し続け、受信データの中継が停止したときには、その信号を停止することで、当該利用者端末1が配信ツリーから離脱したか否かを配信トポロジ組替端末選択手段13に通知することができる。コンテンツ再生部23は、コンテンツバッファ22よりコンテンツデータを取り出し、順次デコードおよび再生する再生部である。コンテンツ再生部23には、例えば、利用者の操作にしたがったON/OFF信号等が入力される。例えばON信号が入力されると、コンテンツが再生され、OFF信号が入力されると、コンテンツの再生が停止し、受信中のコンテンツデータの中継を停止し、配信ツリーから離脱することができる。利用者端末1は、一般的なコンピュータを、前記した各手段として機能させるプログラムにより動作させることで実現することができる。このプログラム配信トポロジ組替プログラムは、通信回線を介して配布することも可能であるし、DVDやCD-ROM等の記録媒体に書き込んで配布することも可能である。[3.配信トポロジ組替端末選択手段の構成例]次に、配信トポロジ組替端末選択手段の構成例について図6を参照適宜図3参照して説明する。図6に示す例では、配信トポロジ組替端末選択手段13は、タイミング判定手段31と、下流端末選定制御手段32と、上流端末選定制御手段33と、組替端末決定手段34とを備えることとした。<タイミング判定手段31>タイミング判定手段31は、現時点が配信トポロジ組替処理の処理開始タイミングであるか否かを判別するものである。処理開始タイミングか否かの判別結果は、下流端末選定制御手段32の後記する伝送能力判別部321および端末ID抽出部322に出力される。ここでは、タイミング判定手段31は、受信終了検知部311と、設定時刻検知部312とを備えることとした。受信終了検知部311は、現時点の状態が受信処理の終了離脱か否かを検知し、離脱の場合、処理開始タイミングであると判別し、かつ、その旨を端末ID抽出部322に通知し、一方、離脱ではない場合、その旨を設定時刻検知部312に通知する。なお、受信終了検知部311は、例えばコンテンツデータ中継部21からの信号が途絶えたときに離脱であることを検知することができる。設定時刻検知部312は、離脱ではない場合、現在時刻が設定時刻か否かを検知し、設定時刻の場合、処理開始タイミングであると判別し、かつ、その旨を伝送能力判別部321に通知し、一方、設定時刻ではない場合、待機する。設定時刻は、予め定めておいてもよいし、ユーザが設定時刻を図示しない入力装置から随時更新できるようにしてもよい。設定時刻のタイミングは、任意でよく、不定期のタイミングでも定期的のタイミングでも構わない。定期的のタイミングの場合、1秒毎のような一定時間間隔でもよいし、1秒と2秒のように複数の時間間隔を一定のリズムで順次利用してもよい。なお、タイミング判定手段31は、受信終了検知部311および設定時刻検知部312のうちのいずれか1つだけを備えることとしてもよい。<下流端末選定制御手段32>下流端末選定制御手段32は、配信トポロジ組替処理の対象とするいずれか2端末のうち、一方を自端末からみて配信トポロジの下流に接続された下流端末の中から選定するものであって、伝送能力判別部321と、端末ID抽出部322と、端末IDソート部323と、端末ID取得制御部324と、到達可否判別部325とを備える。伝送能力判別部321は、タイミング判定手段31の設定時刻検知部312から、処理開始タイミングである旨の判別結果の通知を受けたときに、トポロジ情報記憶部112に、自端末よりも伝送能力が高い下流端末が存在するか否かを判別するものである。自端末よりも伝送能力が高い下流端末が存在するか否かの判別結果は端末ID抽出部322に通知される。なお、伝送能力判別部321は、通信環境情報取得手段19から、各端末の端末情報における伝送能力を取得して判定に用いる。端末ID抽出部322も同様である。端末ID抽出部322は、タイミング判定手段31の受信終了検知部311から、処理開始タイミングである旨の判別結果の通知を受けたときに、トポロジ情報記憶部112から下流端末の端末IDを全て抽出し、端末IDソート部323に出力する。一方、端末ID抽出部322は、伝送能力判別部321から、自端末よりも伝送能力が高い下流端末が存在する旨の判別結果の通知を受けた場合、トポロジ情報記憶部112に格納されており、且つ自端末よりも伝送能力が高い下流端末の端末IDを抽出し、端末IDソート部323に出力する。端末IDソート部323は、端末ID抽出部322で抽出した下流端末の端末IDを、伝送能力の高い順にソートして、端末ID取得制御部324に出力するものである。端末ID取得制御部324は、下流端末選定制御手段32と上流端末選定制御手段33とを連動させた繰り返し処理を制御するものである。この端末ID取得制御部324は、端末ID抽出部322で抽出された下流端末の端末IDの抽出数に応じて、選択すべき下流端末の候補として、伝送能力の高いものから順に1つずつ下流端末の端末IDを取得し、到達可否判別部325に出力する。到達可否判別部325は、端末ID取得制御部324で取得された端末IDの下流端末の端末情報を端末情報記憶部111から取得し、その取得した端末情報において到達可否情報が到達可であるか否かを判別するものである。この判別結果は、上流端末選定制御手段33の後記する端末候補判別部331および端末ID取得部332に出力される。なお、到達可否判別部325は、通信環境情報取得手段19から、各端末の端末情報における到達可否情報を取得して判定に用いる。端末候補判別部331、端末ID取得部332、到達可否判別部341も同様である。また、この到達可否判別部325は、到達可であると判別した場合、下流端末の当該端末ID例えばNdiを上流端末選定制御手段33の後記するID設定部342に出力する。上流端末選定制御手段33は、配信トポロジ組替処理の対象とするいずれか2端末のうち、他方を自端末からみて配信トポロジの上流に接続された上流端末の中から選定するものであって、端末候補判別部331と、端末ID取得部332とを備える。端末候補判別部331は、到達可否判別部325から、下流端末の候補の端末情報において到達可否情報が到達不可であると旨の判別結果の通知を受けたときに、トポロジ情報記憶部112に、到達可否情報が到達可である上流端末が存在するか否かを判別するものである。この端末候補判別部331は、到達可否情報が到達可である上流端末が存在しない場合、その旨を端末ID取得制御部324に通知し、到達可である上流端末が存在する場合、その旨を端末ID取得部332に通知する。端末ID取得部332は、端末候補判別部331から、到達可否情報が到達可である上流端末が存在する旨の判別結果の通知を受けたときに、トポロジ情報記憶部112から、到達可否情報が到達可である任意の上流端末の端末ID例えばNuiを1端末分だけ取得する。一方、端末ID取得部332は、到達可否判別部325から、下流端末の候補の端末情報において到達可否情報が到達可であると旨の判別結果の通知を受けたときに、トポロジ情報記憶部112から、任意の上流端末の端末ID例えばNuiを1端末分だけ取得する。端末ID取得部332で取得された上流端末の端末ID例えばNuiは、組替端末決定手段34の後記する到達可否判別部341に出力される。組替端末決定手段34は、配信トポロジ組替処理の対象とする2端末を決定するものであって、到達可否判別部341と、ID設定部342とを備える。到達可否判別部341は、端末ID取得部332から取得した上流端末の端末ID例えばNuiに基づいて、このNuiに関連付けられた到達可否情報が到達可であるか否かを判別するものである。到達可であるか否かの判別結果はID設定部342に出力される。ID設定部342は、組替要求端末IDNaと、組替受付端末IDNpと、組替指示端末IDNcとを設定するものである。ID設定部342は、端末情報記憶部111から読み出した自端末IDを、組替指示端末IDNcに設定する。また、ID設定部342は、到達可否判別部341の判別結果に応じて、組替要求端末IDNaと、組替受付端末IDNpとを設定する。具体的には、ID設定部342は、到達可否判別部341から、Nuiに関連付けられた到達可否情報が到達可である旨の判別結果の通知を受けた場合、組替要求端末IDNaにNdiを設定し、組替受付端末IDNpにNuiを設定する。一方、ID設定部342は、到達可否判別部341から、Nuiに関連付けられた到達可否情報が到達不可である旨の判別結果の通知を受けた場合、組替要求端末IDNaにNuiを設定し、組替受付端末IDNpにNdiを設定する。ここで設定されたNa、Np、Ncは、接続組替指示手段14に出力される。[4.利用者端末の動作]次に、利用者端末の動作について、5つに細分化して、4-1.利用者端末のグループ加入処理、4-2.配信ツリーの例、4-3.配信トポロジ組替処理、4-4.配信トポロジ組替端末選択処理、4-5.配信トポロジ組替処理の具体例のそれぞれについて詳細に説明する。<4-1.利用者端末のグループ加入処理>まず、新規の利用者端末1が配信グループへ参加する際に行うグループ加入処理の手順の一例について図7を参照適宜図3参照して説明する。本実施形態に係るコンテンツ配信システムSでは、利用者端末1は、利用者の操作にしたがって、図示しないコンテンツ視聴アプリケーションを起動後に、利用者が視聴したいコンテンツを選択すると、端末情報管理手段18の端末情報送信部182によって、自端末の端末情報を含む接続先紹介要求を端末管理サーバ2に送信するS001。端末管理サーバ2は、新規の利用者端末1から受信した接続先紹介要求に含まれる端末情報を抽出し、自身が管理する端末情報リストL図2参照を更新すると共に、端末情報リストLから、要求されたコンテンツを受信中の利用者端末1の端末情報を1つ以上抽出しS002、初期接続先リストとして、利用者端末1に送信するS003。利用者端末1は、端末情報管理手段18の端末情報受信部183によって、初期接続先リストを受信し、端末情報記憶部111に格納するS004。利用者端末1は、端末情報管理手段18の端末情報送信部182によって、自端末の端末情報を、端末情報記憶部111に端末IDが格納されている他端末に対して送信し、自身が配信グループに参加したことを配信グループの他端末に知らせる。また、新規に配信グループに参加した利用者端末1は、接続制御手段17によって、自端末から接続要求を行うか、または、他端末から接続要求を受け付けることにより、配信トポロジ配信ツリーを構築することができる。<4-2.配信ツリーの例>ここでは、利用者端末1による配信トポロジ組替処理接続切替動作を説明するために、前提とするコンテンツ配信システムSの配信ツリーの一例について説明する。図8に示す例では、コンテンツ配信サーバ3を頂点とした構造の配信ツリーに属する利用者端末1を円で示している。このうち白丸で示す利用者端末1は、端末情報の到達可否情報が到達可であることを示し、黒丸で示す利用者端末1は、端末情報の到達可否情報が到達不可であることを示している。利用者端末1の円内に示す数値は、それぞれの利用者端末1の伝送能力を示している。利用者端末1間の線は、お互いが接続関係にあること配信トポロジを構築していることを示しており、矢印は、接続要求を行った端末から、接続要求を受付けた端末に向いている。また、配信グループG内の各利用者端末1には固有の端末IDが付されている。図8において、所定の基準の位置に配置された利用者端末1のIDをNsとし、この利用者端末1を自端末とする。ID=Nu1、Nu2の利用者端末1のホップ数はそれぞれ1、ID=Nsの利用者端末1のホップ数は2、ID=Nd1、Nd2の利用者端末1のホップ数はそれぞれ3であるものとする。また、自端末よりもホップ数が小さい端末ID=Nu1、Nu2のことを、基準に対して上流にそれぞれ配置された上流端末と呼ぶ。また、自端末よりもホップ数が大きい端末ID=Nd1、Nd2のことを、基準に対して下流にそれぞれ配置された下流端末と呼ぶ。<4-3.配信トポロジ組替処理>ここでは、利用者端末1による配信トポロジ組替処理の動作配信トポロジ組替方法について、図9のシーケンス図を参照適宜図3、図5、図8参照して説明する。なお、配信トポロジ組替処理は、自端末である組替指示端末1cがコンテンツの受信を止め、コンテンツ配信システムSに係る処理を終了離脱する直前に開始するほか、一定時間間隔など任意のタイミングで開始することができる。まず、組替指示端末1cは、配信トポロジ組替端末選択手段13によって、配信トポロジの組み替えの対象とする2つの端末を選択する配信トポロジ組替端末選択処理により、組替要求を行う利用者端末1である組替要求端末1a、および、組み替えの受付先となる利用者端末1である組替受付端末1pを選択する。そして、組替要求端末1aとして選択した端末の端末IDを、組替要求端末IDNaの値として設定し、組替受付端末1pとして選択した端末の端末IDを、組替受付端末IDNpの値として設定し、自端末の端末IDを組替指示端末IDNcの値に設定するS101。なお、この配信トポロジ組替端末選択処理の詳細については、後記する。以下、組替要求端末IDのことを単にNaと表記し、組替受付端末IDのことをNpと表記し、組替指示端末IDのことをNcと表記することがある。次に、組替指示端末1cは、組替指示メッセージ送信部141によって、NpおよびNcを含む組替指示メッセージを組替要求端末1aに送信するS102。組替要求端末1aは、組替指示メッセージ受信部151によって、組替指示端末1cから、組替指示メッセージを受信しS103、接続組替要求手段15によって、メッセージからNpおよびNcを抽出しS104、NcおよびNaを含む組替要求を組替受付端末1pに送信するS105。組替受付端末1pは、接続受付部172によって、組替要求端末1aから組替要求を受信しS106、NcおよびNaを抽出するS107。次に、組替受付端末1pは、接続切替手段16によって、組替要求に対する応答組替応答を組替要求端末1aへ送信しS108、トポロジ情報記憶部112にNaを追加するS109。組替要求端末1aは、接続受付部172によって、組替応答を受信しS110、自身のトポロジ情報記憶部112にNpを追加するS111。続いて、組替受付端末1pは、切断部173によって、Npを含む切断要求を組替指示端末1cに送信しS112、自身のトポロジ情報記憶部112から、Ncを削除するS113。組替指示端末1cは、接続受付部172によって、組替受付端末1pから切断要求を受信しS114、自身のトポロジ情報記憶部112からNpを削除すると共に、自端末の端末情報の現在接続数をデクリメントするS115。そして、組替指示端末1cは、配信トポロジ組替端末選択手段13によって、下流端末が存在するか否かを確認しS116、存在する場合S116にてYes、配信トポロジ組替端末選択処理S101に戻り、存在しない場合S116でNo、処理を終了する。なお、組替指示端末1cは、下流端末が存在するか否かを確認するために、自身の端末情報記憶部111とトポロジ情報記憶部112とを参照する。このとき、端末情報記憶部111に記憶された端末情報において、自端末のホップ数よりも大きなホップ数に関連付けられた端末IDであって、トポロジ情報記憶部112にも記憶されている端末IDが存在すれば、下流端末が存在することになる。<4-4.配信トポロジ組替端末選択処理>次に、図9に示した配信トポロジ組替端末選択処理S101について、図10および図11のシーケンス図を参照適宜図3、図6、図8、図9参照して説明する。自端末である組替指示端末1cにおいて、配信トポロジ組替端末選択手段13は、以下の動作を行う。タイミング判定手段31によって、現時点の状態が受信処理の終了離脱による処理開始タイミングであるか否かを判別するS201。離脱による処理開始タイミングとなった場合S201にてYes、端末ID抽出部322によって、トポロジ情報記憶部112から下流端末の端末IDを全て抽出するS202。このときの抽出数をWとする。一方、前記したS201において、離脱による処理開始タイミングではなくS201にてNo、設定時刻検知部312によって、設定時刻による処理開始タイミングであると判別した場合、伝送能力判別部321によって、トポロジ情報記憶部112に、自端末よりも伝送能力が高い下流端末が存在するか否かを判別するS203。自端末よりも伝送能力が高い下流端末が存在する場合S203にてYes、端末ID抽出部322によって、トポロジ情報記憶部112に格納されており、且つ自端末よりも伝送能力が高い下流端末の端末IDを抽出するS204。このときの抽出数をWとする。一方、前記したS203において、自端末よりも伝送能力が高い下流端末が存在しない場合S203にてNo、配信トポロジ組替端末選択手段13は、この配信トポロジ組替処理を終了する。次に、端末IDソート部323によって、前記したS202またはS204の処理により抽出した下流端末の端末IDを、伝送能力の高い順にソートするS205。次に、端末ID取得制御部324によって、変数Iの値を1に設定しS206、変数Iの値がWより小さいか否かを判別するS207。まだ変数Iの値がWより小さい場合S207にてYes、配信トポロジ組替端末選択手段13は、図11に示すように以下の処理を繰り返し、変数Iの値がWと等しくなった場合S207にてNo、処理を終了する。続いて、図11に示すように、S208において、端末ID取得制御部324によって、現在の変数Iの値に基づいてI番目の端末IDNdiを取得する。そして、到達可否判別部325によって、当該端末IDの端末の端末情報を端末情報記憶部111から取得し、その中の到達可否情報が到達可であるか否かを判定するS209。到達可否情報が到達可である場合S209でYes、端末ID取得部332によって、トポロジ情報記憶部112から、任意の上流端末の端末IDNuiを1端末分だけ取得するS210。一方、前記S209において、到達可否情報が到達不可である場合S209でNo、端末候補判別部331によって、トポロジ情報記憶部112に、到達可否情報が到達可である上流端末が存在するか否かを判定するS211。到達可否情報が到達可である上流端末が存在する場合S211でYes、端末ID取得部332によって、トポロジ情報記憶部112から、到達可否情報が到達可である任意の上流端末の端末IDNuiを1端末分だけ取得するS212。一方、前記S211において、到達可否情報が到達可である上流端末が存在しない場合S211でNo、端末候補判別部331は、その旨を端末ID取得制御部324に通知し、端末ID取得制御部324は、現在のIの値をインクリメント1歩進させS213、図10に示すS207の処理に戻る。続いて、図11に示すように、S214にて、到達可否判別部341によって、前記したS210またはS212の処理により取得した上流端末の端末IDNuiに基づいて、Nuiに関連付けられた到達可否情報が到達可であるか否かを判別する。Nuiに関連付けられた到達可否情報が到達可である場合S214:Yes、ID設定部342によって、組替要求端末IDNaにNdiを設定し、組替受付端末IDNpにNuiを設定し、組替指示端末IDNcに自端末IDを設定するS215。一方、Nuiに関連付けられた到達可否情報が到達不可である場合S214:No、ID設定部342によって、組替要求端末IDNaにNuiを設定し、組替受付端末IDNpにNdiを設定し、組替指示端末IDNcに自端末IDを設定するS216。そして、配信トポロジ組替端末選択手段13は、前記S215またはS216の処理に続いて、図10に示すS201に戻る。また、配信トポロジ組替端末選択手段13は、前記S215またはS216の処理により設定したNa、Np、Ncを、接続組替指示手段14に出力する。これにより、接続組替指示手段は、Na、Np、Ncを用いて、前記したS102図9参照の処理を行う。以上により、利用者端末1は、自身の下流に接続する利用者端末1と、自身の上流に接続する利用者端末1とを確実に接続させ、安全に配信トポロジを組み替えることができる。<4-5.配信トポロジ組替処理の具体例>さらに、図10および図11に示す配信トポロジ組替処理の具体例について図12を参照して説明する。図12aは、図8をもとに作成した同様な配信ツリーにおいて配信トポロジ組替処理の概要を図示したものである。図8と同様に各利用者端末1には固有の端末IDが付されている。以下の説明では、基準の位置に配置された利用者端末1のIDをNsとし、この利用者端末1を自端末とする。また、上流端末は、ID=Nu1、Nu2の2つの利用者端末1である。また、下流端末は、ID=Nd1、Nd2の2つの利用者端末1である。この場合、ID=Nsの利用者端末1自端末は、前記した配信トポロジ組替端末選択処理S101:図9参照において、S204により抽出した2つの下流端末を、伝送能力の高い順にソートしS205:図10参照、I=1のとき、つまり1番目に、2つの下流端末の中から、伝送能力が高いID=Nd1の利用者端末1伝送能力=3を選択するS208:図11参照。ここで、ID=Nd1の利用者端末1は、黒丸で示されているように到達可否情報が到達不可であるのでS209でNo:図11参照、2つの上流端末の中から、到達可否情報が到達可である利用者端末1白丸で示されている端末の端末ID=Nu1を1端末分だけ取得するS212:図11参照。さらに、このID=Nu1に関連付けられた到達可否情報が到達可であるのでS214でYes:図11参照、組替要求端末IDNaの値にNd1を設定し、組替受付端末IDNpの値にNu1を設定し、組替指示端末IDNcの値にNsを設定する。これら設定値と、端末IDNa、Np、Ncとの対応関係は、図12aに図示する通りである。次に、図9に示した配信トポロジ組替処理の手順により、組替指示端末IDNcとして設定されたID=Nsを有した組替指示端末1c自端末は、Np設定値はNu1およびNc設定値はNsを含む組替指示メッセージを、組替要求端末IDNaとして設定されたID=Nd1を有する組替要求端末1aに送信するS102:図9参照。続いて、組替要求端末IDNaとして設定されたID=Nd1を有する組替要求端末1aは、Nc設定値はNsおよびNa設定値はNd1を含む組替要求を、組替受付端末IDNpとして設定されたID=Nu1を有する組替受付端末1pに送信するS105:図9参照。次に、組替受付端末IDNpとして設定されたID=Nu1を有する組替要求端末1aは、組替要求に対する応答組替応答を、組替要求端末IDNaとして設定されたID=Nd1を有する組替要求端末1aへ送信して接続を確立しS108:図9参照、さらに、組替指示端末IDNcとして設定されたID=Nsを有する組替指示端末1c自端末に切断要求を送信して切断するS112:図9参照。以上の一連の処理の結果、図12bのように、配信トポロジの組み替えを行うことができる。以上により、本実施形態の利用者端末1によれば、インターネット4にNATルータを介して接続しているために他端末から接続要求を受付けることができない利用者端末が存在する環境においても、コンテンツ配信システムSの配信ツリーに参加する利用者端末1が、自身の下流に接続する利用者端末1と、自身の上流に接続する利用者端末1とを確実に接続させ、安全に配信トポロジツリー上の順番を組み替えることができる。そのため、配信の安定性を向上させると共に、接続切り替えに係る無駄な処理を減らすことができる。以上、実施形態に基づいて本発明を説明したが、本発明はこれに限定されるものではない。例えば、本実施形態では、通信環境情報取得手段19は、他の利用者端末1から、通信環境を示す情報として、到達可否情報と当該端末の送信容量情報の双方を取得することとしたが、到達可否情報だけを取得するようにしてもよい。この場合、配信トポロジ組替端末選択手段13は、2端末を選択する際に、配信ツリー上において上流の位置にて自端末に接続するいずれか1つの利用者端末と、下流の位置にて自端末に接続するいずれか1つの利用者端末と、を選択することとすればよい。また、配信トポロジ組替端末選択手段13は、2端末を選択する際に、一方は到達可否情報が到達可である利用者端末1を選択するものとしたが、双方を到達可である利用者端末1として選択しても、同様の効果を奏することができる。また、配信トポロジ組替端末選択手段13は、2端末を選択する際に、上流と下流から1つずつ端末を選択するものとしたが、双方を下流から選択してもよいし、双方を上流から選択してもよい。"