"コンピュータに、前記コンピュータの属する論理ネットワークに属する要求ノードから、特定情報の送信を求める第1の要求を、前記論理ネットワークのトポロジによらず直接的に、または前記論理ネットワークの前記トポロジにおいて前記コンピュータに相当するノードに入って来るパス上の1つ以上の他のノードを介して、受信し、前記論理ネットワークの前記トポロジにおいて前記コンピュータに相当する前記ノードから出て行くエッジにより前記コンピュータと論理的に接続された1つ以上の子ノードと、前記コンピュータの中から、前記コンピュータよりは前記1つ以上の子ノードを優先して、前記特定情報の送信に関与する1つ以上の責任ノードを選択し、各責任ノードに前記特定情報の一部または全部である部分特定情報を対応づけ、前記コンピュータを前記責任ノードとして選択した場合は、前記コンピュータに対応づけた部分特定情報を、前記要求ノードに送信し、前記1つ以上の子ノードのうち前記責任ノードとして選択した責任子ノードがある場合は、前記責任子ノードに対応づけた部分特定情報を前記要求ノードに送信するよう求める第2の要求を、前記責任子ノードに送信することを含む処理を実行させるプログラム。各責任ノードに前記部分特定情報を対応づける処理は、前記責任子ノードが1つ以上ある場合は、各責任子ノードについて、前記論理ネットワークの前記トポロジにおいて当該責任子ノードを根ノードとする部分グラフに含まれるノードの使用可能リソースの合計量を示す使用可能合計リソース情報を参照し、前記特定情報のうち、前記使用可能合計リソース情報が示す量以下のリソースで送信可能な部分を、当該責任子ノードに対応づけることを含むことを特徴とする請求項1に記載のプログラム。前記プログラムが前記コンピュータに実行させる前記処理は、各子ノードについて、前記論理ネットワークの前記トポロジにおいて当該子ノードを根ノードとする部分グラフに含まれるノードのリソースの合計量を示す合計リソース情報を、当該子ノードから受信し、受信した前記合計リソース情報を当該子ノードと対応づけて記憶し、前記コンピュータのリソースの量と、各子ノードから受信して記憶した前記合計リソース情報が示す前記合計量との合計を算出し、算出した前記合計を示す新たな合計リソース情報を、前記論理ネットワークの前記トポロジにおいて前記コンピュータに相当する前記ノードの親ノードに送信し、前記責任子ノードが1つ以上ある場合は、各責任子ノードについて、当該責任子ノードと対応づけて記憶した前記合計リソース情報から、前記使用可能合計リソース情報を取得することをさらに含む、ことを特徴とする請求項2に記載のプログラム。前記第1の要求は、期限に関する第1の制約条件を指定する第1の期限情報を含み、前記コンピュータを前記責任ノードとして選択した場合における、前記コンピュータに対応づけた前記部分特定情報を前記要求ノードに送信する処理は、前記第1の制約条件を満たすタイミングで行われ、前記責任子ノードがある場合、前記プログラムが前記コンピュータに実行させる前記処理は、さらに、当該責任子ノードと前記コンピュータとの間の通信にかかる通信時間と前記第1の制約条件を用いて、期限に関する第2の制約条件を算出し、前記第2の制約条件を指定する第2の期限情報を、当該責任子ノードに送信する前記第2の要求に含めることを含む、ことを特徴とする請求項1から3のいずれか1項に記載のプログラム。前記第1の要求は、第1のビットレートを指定する第1のビットレート情報を含み、前記プログラムが前記コンピュータに実行させる前記処理は、各責任ノードに第1のビットレートの少なくとも一部を割り当てることをさらに含み、前記コンピュータを前記責任ノードとして選択した場合における、前記コンピュータに対応づけた前記部分特定情報を前記要求ノードに送信する処理は、前記コンピュータに割り当てたビットレートで行われ、前記責任子ノードがある場合、前記プログラムが前記コンピュータに実行させる前記処理は、当該責任子ノードに割り当てた第2のビットレートを示す第2のビットレート情報を、当該責任子ノードに送信する前記第2の要求に含めることさらに含む、ことを特徴とする請求項1から4のいずれか1項に記載のプログラム。通信装置であって、前記通信装置の属する論理ネットワークに属する要求ノードから、特定情報の送信を求める第1の要求を、前記論理ネットワークのトポロジによらず直接的に、または前記論理ネットワークの前記トポロジにおいて前記通信装置に相当するノードに入って来るパス上の1つ以上の他のノードを介して、受信する受信手段と、前記論理ネットワークの前記トポロジにおいて前記通信装置に相当する前記ノードから出て行くエッジにより前記通信装置と論理的に接続された1つ以上の子ノードと、前記通信装置の中から、前記通信装置よりは前記1つ以上の子ノードを優先して、前記特定情報の送信に関与する1つ以上の責任ノードを選択する選択手段と各責任ノードに前記特定情報の一部または全部である部分特定情報を対応づける対応づけ手段と、前記通信装置を前記選択手段が前記責任ノードとして選択した場合は、前記通信装置に対応づけた部分特定情報を、前記要求ノードに送信し、前記1つ以上の子ノードのうち前記選択手段が前記責任ノードとして選択した責任子ノードがある場合は、前記責任子ノードに対応づけた部分特定情報を前記要求ノードに送信するよう求める第2の要求を、前記責任子ノードに送信する送信手段と、を備える通信装置。通信装置が実行する方法であって、前記通信装置の属する論理ネットワークに属する要求ノードから、特定情報の送信を求める第1の要求を、前記論理ネットワークのトポロジによらず直接的に、または前記論理ネットワークの前記トポロジにおいて前記通信装置に相当するノードに入って来るパス上の1つ以上の他のノードを介して、受信し、前記論理ネットワークの前記トポロジにおいて前記通信装置に相当する前記ノードから出て行くエッジにより前記通信装置と論理的に接続された1つ以上の子ノードと、前記通信装置の中から、前記通信装置よりは前記1つ以上の子ノードを優先して、前記特定情報の送信に関与する1つ以上の責任ノードを選択し、各責任ノードに前記特定情報の一部または全部である部分特定情報を対応づけ、前記通信装置を前記責任ノードとして選択した場合は、前記通信装置に対応づけた部分特定情報を、前記要求ノードに送信し、前記1つ以上の子ノードのうち前記責任ノードとして選択した責任子ノードがある場合は、前記責任子ノードに対応づけた部分特定情報を前記要求ノードに送信するよう求める第2の要求を、前記責任子ノードに送信することを特徴とする方法。ある種の論理ネットワークでは、ある種の処理により生じる負荷が、論理ネットワーク内の第1のノードでは相対的に高くなりやすく、第1のノードの子孫ノードである1つ以上の第2のノードでは相対的に低くなりやすい。そして、第1のノードが、論理ネットワーク内のいずれかのノードから情報の送信を要求された場合に、もし、第1のノード自身が要求に応えて情報を送信すると、第1のノードの負荷はますます高まる。つまり、第1のノードが送信要求に応えることにより、論理ネットワーク内の負荷の偏りが悪化する。そこで本発明は、上記のような負荷の偏りの悪化を回避し、論理ネットワーク内での適切な負荷分散を実現することを目的とする。一態様により提供されるプログラムがコンピュータに実行させる処理は、前記コンピュータの属する論理ネットワークに属する要求ノードから、特定情報の送信を求める第1の要求を、前記論理ネットワークのトポロジによらず直接的に、または前記論理ネットワークの前記トポロジにおいて前記コンピュータに相当するノードに入って来るパス上の1つ以上の他のノードを介して、受信することを含む。前記処理はさらに、前記論理ネットワークの前記トポロジにおいて前記コンピュータに相当する前記ノードから出て行くエッジにより前記コンピュータと論理的に接続された1つ以上の子ノードと、前記コンピュータの中から、前記コンピュータよりは前記1つ以上の子ノードを優先して、前記特定情報の送信に関与する1つ以上の責任ノードを選択することを含む。また、前記処理は、各責任ノードに前記特定情報の一部または全部である部分特定情報を対応づけることを含む。そして、前記処理は、前記コンピュータを前記責任ノードとして選択した場合は、前記コンピュータに対応づけた部分特定情報を、前記要求ノードに送信することを含む。また、前記処理は、前記1つ以上の子ノードのうち前記責任ノードとして選択した責任子ノードがある場合は、前記責任子ノードに対応づけた部分特定情報を前記要求ノードに送信するよう求める第2の要求を、前記責任子ノードに送信する送信することを含む。論理ネットワークによっては、ある種の処理により生じる負荷が、論理ネットワーク内の第1のノードでは相対的に高くなりやすく、第1のノードの子孫ノードである1つ以上の第2のノードでは相対的に低くなりやすい。そして、1つ以上の第2のノードよりも第1のノードの方により高い負荷がかかった状況下で、ある要求ノードが第1のノードに特定情報の送信を要求することもあり得る。しかし、論理ネットワーク内の各ノードが上記プログラムを実行するならば、特定情報の送信による負荷は、既存の負荷の偏りを相殺するように割り当てられる。したがって、論理ネットワーク内での適切な負荷分散が実現される。すなわち、特定情報の送信を求める第1の要求を第1のノードが受信した場合、上記プログラムを実行するコンピュータである第1のノードは、第1のノード自身よりも子ノードを優先して責任ノードを選択する。そして、論理ネットワーク内の各ノードが上記プログラムを実行することにより、第1のノードよりも第1のノードの子ノードの方が、そして第1のノードの子ノードよりも第1のノードの孫ノードの方が、より優先的に、要求ノードへの特定情報の実際の送信を担うことになる。その結果、他の処理による負荷が相対的に高くなりやすい祖先ノードよりも、他の処理による負荷が相対的に低くなりやすい子孫ノードの方に、より優先的に、特定情報の送信による負荷がかかることになる。つまり、上記プログラムによれば、負荷の偏りの悪化を回避することができ、論理ネットワーク全体での適切な負荷分散が実現される。以下、実施形態について、図面を参照しながら詳細に説明する。具体的には、まず、ピアツーピアpeertopeer;P2P型のデータ配信システムにおける負荷分散に関する実施形態について、図1~19を参照して説明する。なお、図1は概要を説明する図であり、図2~3はネットワークの例を示す図であり、図4~5は装置の構成を示す図であり、図6~19は詳しい処理の内容と処理に使われる情報について説明する図である。その後、他の実施形態および変形例について図21~23を参照して順に説明する。各種の変形は適宜に組み合わせ可能である。さて、図1は、負荷分散を実現するための再送制御の例を示す図である。また、図2は、図1の論理ネットワークのトポロジを示す図である。本実施形態は様々なトポロジの論理ネットワークに適用可能であるが、説明の便宜上、図1~2には、具体的に論理ネットワーク100を例示した。図1~2に示すように、論理ネットワーク100は、ノードN1~N13を含むツリー型のネットワークである。また、ノードN1~N13のそれぞれは、コンピュータである。論理ネットワーク100は、具体的には、アプリケーションレイヤマルチキャストALMにおける配信ツリーdistributiontreeとして構築された論理ネットワークである。ALMは、オーバレイマルチキャストとも呼ばれる。つまり、論理ネットワーク100は、オーバレイネットワークの一例である。従来のクライアントサーバ型のデータ配信システムでは、データを受信するクライアント端末装置の数が増加するにしたがい、クライアント端末装置の数に比例して配信サーバに負荷がかかる。そのため、クライアントサーバ型の大規模なシステムでは、配信サーバを複数台設けたり、ネットワークインフラストラクチャを増強したり、といった対策が必要となり、結果として配信コストの増大を招いてしまう。そこで、近年注目されているのが、P2P技術を応用したデータ配信である。図1~2の論理ネットワーク100は、P2P型のデータ配信システムにおける配信ツリーとして構築される。P2P型のデータ配信システム例えば、ストリーミングデータの配信システムでは、データを受信した端末装置が、受信したデータを他の端末装置に中継する。すると、データはネットワーク内でリレー配信されるので、P2P型のデータ配信システムによれば、大規模な一斉同報配信も可能である。さらに、P2P型のデータ配信システムには、端末装置の数の増加に対して、配信サーバの配信負荷の増加は、比較的緩やかであるか、または、ほとんど増加しないという大きな利点がある。そして、P2P型のデータ配信システムには様々なタイプのものがあるが、いずれも、物理ネットワークではなく、端末装置間つまりピア間のリンクで形成される論理ネットワーク上でのデータ配信が行われるという点が共通である。本実施形態は、P2P型のデータ配信システムにおける再送制御に好適である。図1~2に示すように、論理ネットワーク100のトポロジは、グラフより具体的には非循環有向グラフDirectedAcyclicGraph;DAGとして表すことができる。論理ネットワーク100のトポロジを示すグラフにおける各エッジの方向は、コンテンツが配信される方向を示す。具体的には、論理ネットワーク100は以下のA-1~A-12のとおり12本のエッジを含む。各エッジは、換言すれば、隣接する2つのノード間を論理的に接続する通信リンクである。A-1ノードN1からノードN2へのエッジE1,2A-2ノードN1からノードN3へのエッジE1,3A-3ノードN2からノードN4へのエッジE2,4A-4ノードN2からノードN5へのエッジE2,5A-5ノードN3からノードN6へのエッジE3,6A-6ノードN3からノードN7へのエッジE3,7A-7ノードN3からノードN8へのエッジE3,8A-8ノードN4からノードN9へのエッジE4,9A-9ノードN4からノードN10へのエッジE4,10A-10ノードN4からノードN11へのエッジE4,11A-11ノードN6からノードN12へのエッジE6,12A-12ノードN6からノードN13へのエッジE6,13上記A-1~A-12から明らかなように、入次数が0のノードN1は、配信ツリーの根ノードである。また、出次数が0のノードN5、N7~N13は葉ノードである。他のノードN2~N4、N6は、根ノードでも葉ノードでもないノード以下中継ノードというである。論理ネットワーク100上では、データ例えばストリーミングデータの配信が行われる。しかしながら、ネットワークの状態によっては、データの一部が消失することがある。例えば、物理ネットワークにおける輻輳やルータの故障などが原因で、一部のパケットが消失することがある。そして、P2P型のデータ配信システムでは、トランスポート層のプロトコルとして、TCPTransmissionControlProtocolよりもUDPUserDatagramProtocolが使われることの方が多い。なぜなら、UDPは高速性に優れているので、リアルタイム性が重視される映像や音声などのストリーミングに適しているからである。逆に言えば、UDPは、TCPと比べてプロトコルオーバヘッドが小さいが、その代わり、TCPのような誤り訂正機能を持たない。そこで、UDPが使われる場合は、トランスポート層プロトコル以外のメカニズムによって、誤り訂正具体的には消失したパケットの回復のための対策が提供される。対策の具体例は、上述のFECとARQである。しかし、以下の理由から、たとえFECが使われる場合であっても、実用的なシステムにおいてはARQが併用される。配信されるデータには誤り訂正用の冗長な情報例えばFECパケットが追加されてもよく、冗長な情報を用いた誤り訂正すなわち、消失したパケットの回復が行われてもよい。しかし、FECパケットにより誤り訂正可能なパケットロス率には、FECパケットが挿入される割合に応じた上限がある。よって、パケットロス率が高いとき、たとえFECパケットが使われていたとしても、消失したパケットの一部が回復不能なことがある。すると、消失したデータを取得するには、データの再送が必要である。したがって、多くの実用的なシステムにおいてはARQが採用される。以下では説明の簡単化のため、FECに関する処理については説明を省略し、単にデータが消失した場合に再送が要求されるものとして説明する。しかしもちろん、FECが利用される実施形態も可能である。つまり、再送が要求される契機が、データの消失であろうと、FECによっても回復することのできなかったデータがあるという状況の検出であろうと、本実施形態による再送制御は適用可能である。図1には、本実施形態による再送制御の概略も示されている。図1において、細い実線の矢印は正常なデータ配信を示し、1点鎖線の矢印は再送要求を示し、太い実線の矢印は再送要求に応じて行われるデータ送信を示す。例えば、ノードN1がノードN2とN3にデータを送信し、ノードN2がノードN4とN5にデータを送信する。しかし、ステップS10に示すように、輻輳の発生など何らかの原因によって、データの少なくとも一部がノードN2からノードN5へのエッジE2,5上で消失することがある。ノードN5は、例えばシーケンス番号を手がかりにして、データの消失を検出し、かつ、データのどの部分が消失したのかすなわち、一連のデータパケットのうち何番から何番のデータパケットが消失したのかを認識することができる。すると、ステップS20でノードN5は、消失したデータの送信を要求する。詳しくは後述するが、ノードN5がどのノードに送信を要求するかは、実施形態に応じて任意である。図1の例では、ノードN5は、ノードN3に送信を要求する。以下では、送信が要求される対象の情報を特定情報ともいう。特定情報は、具体的には、上述のとおり、論理ネットワーク100内で配信される配信情報のうち、エッジE2,5において消失した部分である。また、特定情報の送信を要求するノード図1の例ではノードN5を要求ノードともいう。上記のようにしてステップS20でノードN5から送信された要求は、ノードN3において受信される。ここで、ノードN3にとって、ノードN5は、論理ネットワーク100のトポロジにおいてノードN3自身とエッジで接続された隣接ノードではない。つまり、特定情報の送信を求める要求は、論理ネットワーク100のトポロジによらず、直接的に、隣接ノード以外のノードから受信されることがある。特定情報の送信を求める要求を受信したノードN3は、次に、特定情報の送信に関与する1つ以上のノード以下、責任ノードresponsiblenodeというを選択する。なお、ノードN3は、ノードN3の子ノードとノードN3自身の中から、ノードN3自身よりは子ノードを優先して、1つ以上の責任ノードを選択する。各責任ノードは、実際に特定情報の一部または全部を送信することにより、特定情報の送信に関与することもある。また、各責任ノードは、当該責任ノードの子ノードに特定情報の一部または全部の送信を要求することにより、特定情報の送信に関与することもある。選択された上記1つ以上の責任ノードがそれぞれ特定情報の送信に関与することで、特定情報全体の送信が保証される。よって、ある観点から言えば、個々の責任ノードは、特定情報の送信を保証するために選択されるノードでもある。論理ネットワーク100のトポロジを示す有向グラフにおいて、あるノードNjから他のノードNkへのエッジEj,kが存在するとき、ノードNkはノードNjの子ノードであり、ノードNjはノードNkの親ノードである。図1の例では、ノードN3は、3つの子ノードN6~N8を持つ。よって、ノードN3は、ノードN3自身よりは、子ノードN6~N8を優先的に責任ノードとして選択する。つまり、ノードN3は、まず先に、子ノードN6~N8を責任ノードとして選択する。その後、ノードN3は、責任ノードとして選択した子ノードだけで特定情報全体の送信を保証するのに十分か否かを判断する。そして、もし不十分という判断結果が得られた場合は、ノードN3は、ノードN3自身を責任ノードとして選択する。なお、特定情報の量などの状況に応じて、ノードN3は、子ノードN6~N8の一部のみ例えばノードN6のみを責任ノードとして選択することもある。逆に、状況に応じて、ノードN3は、すべての子ノードN6~N8に加えてさらにノードN3自身をも責任ノードとして選択することもある。また、詳しくは後述するが、ノードN3は、責任ノードの選択にあたって、ある種の制約条件を考慮に入れてもよい。制約条件によっては、ノードN3は、結果的に、例えば、子ノードの一部とノードN3自身を責任ノードとして選択することもある。例えば、ノードN3は、まず先に、子ノードN6~N8が責任ノードとして選択可能か否かを制約条件に基づいて判断し、選択可能な子ノードを実際に責任ノードとして選択する。その後、ノードN3は、責任ノードとして選択した子ノードだけで特定情報全体の送信を保証するのに十分か否かを判断する。もし、責任ノードとして選択された子ノードだけでは特定情報全体の送信を保証するのに不十分であれば、ノードN3は、さらにノードN3を責任ノードとして選択してもよい。例えば、特定情報の量が多い場合、制約条件が厳しい場合、子ノードが存在しない場合、子ノードは存在するが少数である場合などに、要求を受けたノードが当該ノード自身を責任ノードとして選択することがある。図1には、ノードN3が責任ノードとして3つの子ノードN6~N8を選択した場合が例示されている。なお、以下では、責任ノードとして選択された子ノードを責任子ノードともいう。ノードN3は、責任ノードを選択するだけでなく、各責任ノードに、特定情報の一部または全部である部分特定情報を対応づける。つまり、ノードN3は、1つ以上の責任ノードに部分特定情報をそれぞれ割り当てる。例えば、特定情報が、具体的にはシーケンス番号が201番から220番の20個のパケットであるとする。ノードN3は、例えば、ノードN6にはシーケンス番号が201番から210番の10個のパケットを部分特定情報として対応づけてもよい。つまり、ノードN3は、10個のパケットを要求ノードN5へ送信することをノードN6に保証させてもよい。同様に、ノードN3は、ノードN7にはシーケンス番号が211番から215番の5個のパケットを部分特定情報として対応づけ、ノードN8にはシーケンス番号が216番から220番の5個のパケットを部分特定情報として対応づけてもよい。そして、ノードN3は、責任子ノードがある場合は、当該責任子ノードに対応づけた部分特定情報を要求ノードN5に送信するよう求める要求を、当該責任子ノードに送信する。つまり、ステップS30でノードN3は、特定情報のうちでノードN6に対応づけられた部分特定情報例えば、上記の例ではシーケンス番号が201番から210番の10個のパケットをノードN5に送信するよう求める要求を、ノードN6に送信する。同様に、ステップS31でノードN3は、特定情報のうちでノードN7に対応づけられた部分特定情報例えば、上記の例ではシーケンス番号が211番から215番の5個のパケットをノードN5に送信するよう求める要求を、ノードN7に送信する。さらに、ステップS32でノードN3は、特定情報のうちでノードN8に対応づけられた部分特定情報例えば、上記の例ではシーケンス番号が216番から220番の5個のパケットをノードN5に送信するよう求める要求を、ノードN8に送信する。換言すれば、ノードN3は、要求ノードN5から受信した要求を、要求の内容の一部具体的には、ノードN5に送信する対象の指示を書き換えつつ、子ノードN6~N8に転送する。なお、ステップS30~S32の実行順は任意に入れ替え可能である。すると、ノードN6~N8はそれぞれ要求を受信し、要求の受信に応じてノードN3と類似の動作をする。具体的には、次のとおりである。ノードN6にとっては、ノードN5への送信が要求される対象の特定情報とは、ノードN3から指定された情報である。例えば、上記の例では、ノードN3にとっての特定情報はシーケンス番号が201番から220番の20個のパケットであるが、ノードN6にとっての特定情報は、そのうちシーケンス番号が201番から210番の10個のパケットである。また、ノードN6は、ノードN3のように論理ネットワーク100のトポロジとは関係なく要求ノードN5から直接的に要求を受信するのではない。ノードN6は、論理ネットワーク100のトポロジにおいてノードN6に入ってくるincomingパス上の1つ以上の他のノードを介して、要求ノードN5からの要求を受信する。具体的には、ノードN6は、ノードN3からノードN6へ至るパスすなわち、エッジE3,6のみからなるパス上の、ノードN3を介して、要求ノードN5からの要求を受信する。しかし、要求の直接の送信元がどのノードであれ、要求を受信したノードは、いずれもノードN3と同様にして責任ノードを選択する。例えば、図1の例では、ノードN6は2つの子ノードN12とN13を持つ。よって、ノードN6は、ノードN6自身よりも子ノードN12とN13を優先して、責任ノードを選択する。その結果、例えば、ノードN12とN13の双方が責任ノードとして選択される。また、ノードN6は、各責任ノードに特定情報の一部または全部である部分特定情報を対応づける。例えば、上記のようにノードN6にとっての特定情報が、シーケンス番号が201番から210番の10個のパケットであるとする。この場合、ノードN6は、シーケンス番号が201番から204番の4個のパケットを部分特定情報としてノードN12に対応づけ、シーケンス番号が205番から210番の6個のパケットを部分特定情報としてノードN13に対応づけてもよい。そして、ステップS33でノードN6は、特定情報のうちでノードN12に対応づけられた部分特定情報をノードN5に送信するよう求める要求を、ノードN12に送信する。同様に、ステップS34でノードN6は、特定情報のうちでノードN13に対応づけられた部分特定情報をノードN5に送信するよう求める要求を、ノードN13に送信する。なお、ステップS33とS34の実行順序は入れ替え可能である。ところで、上記ステップS31でノードN3から要求を受信したノードN7は、ノードN3と同様にして責任ノードを選択する。しかしながら、ノードN3は子ノードを持つのに対して、ノードN7は子ノードを持たない。つまり、ノードN7自身よりも優先的に責任ノードとして選ばれるノードが存在しないので、結果的にノードN7は、ノードN7自身を唯一の責任ノードとして選択する。したがって、ノードN7は結果的に、ノードN7にとっての特定情報上記の例ではシーケンス番号が211番から215番の5個のパケットのすべてを、部分特定情報として、責任ノードであるノードN7自身に対応づける。ノードN7のように、自分自身を責任ノードとして選択したノードは、特定情報のうちで自分自身に対応づけた部分特定情報を要求ノードに送信する。つまり、ステップS41でノードN7は、特定情報をノードN5に送信する。なお、上記のように論理ネットワーク100はALMの配信ツリーとして構築されるオーバレイネットワークである。よって、ノードN7にも配信情報が配信される。つまり、ノードN3によってノードN7に割り当てられた特定情報は、ノードN7に配信されて記憶される配信情報の一部である。したがって、ノードN7は、ノードN3によってノードN7に割り当てられた特定情報を、ノードN7が備える記憶装置から読み出してノードN5に送信することができる。同様に、ステップS42ではノードN8が、ノードN8にとっての特定情報上記の例ではシーケンス番号が216番から220番の5個のパケットをノードN5に送信する。なお、ステップS41とS42は、並行して実行され得る。また、ステップS41およびS42は、ステップS33およびS34と並行して実行され得る。さらに、ノードN7やN8と同様に葉ノードであるノードN12も、ステップS43において同様に、ノードN12にとっての特定情報上記の例ではシーケンス番号が201番から204番の4個のパケットをノードN5に送信する。また、ノードN13も、ステップS44において同様に、ノードN13にとっての特定情報上記の例ではシーケンス番号が205番から210番の6個のパケットをノードN5に送信する。なお、ステップS43およびS44は、並行して実行され得る。また、ステップS43およびS44は、ステップS41およびS42と並行して実行され得る。以上のようにして、要求ノードN5は、送信を要求した特定情報を受信することができる。なお、図1の例では、要求ノードは、複数のノードから、送信を要求した特定情報の一部分ずつを受信する。しかし、論理ネットワークのトポロジや特定情報の量などの状況によっては、要求ノードは、送信を要求した特定情報の全部を1つのノードから受信することもあり得る。また、以上のような再送制御は、論理ネットワーク100内の負荷の偏りの悪化を防ぐことができ、適切な負荷分散を実現することができる。理由は以下のとおりである。ALMの配信ツリーとして構築される論理ネットワーク100においては、根ノードは配信情報例えばストリーミングデータを生成または取得し、配信情報を配信する。また、中継ノードは、配信情報を受信して再生するのみならず、配信情報を転送する。他方、葉ノードは、単に配信情報を受信して再生するだけである。したがって、一般に、根ノードや中継ノードよりも、葉ノードの負荷が低い。また、中継ノード間で比較した場合でも、ALMの配信ツリーの構築アルゴリズムによっては、根ノードに近い中継ノードは、根ノードから遠い中継ノードよりも負荷が高いことがある。なお、以下の説明において、根ノードからの距離は、根ノードからのパスの長さつまりパスに含まれるエッジの数である。例えば、ある種の構築アルゴリズムでは、リレー遅延を少なくするために、配信ツリーに新規に参加joinしようとする新規ノードの親ノードとして、根ノードに近いノードほど、より優先的に選ばれる。その結果、構築された配信ツリーでは、中継ノード同士を比較すると、根ノードに近い中継ノードほど多くの子ノードを持つ傾向がある。そして、多くの子ノードを持つ中継ノードほど、配信情報の転送にかかる負荷は大きい。したがって、配信ツリーの構築アルゴリズムによっては、根ノードに近い中継ノードは、根ノードから遠い中継ノードよりも負荷が高いことがある。つまり、再送以外の処理による負荷は、論理ネットワーク100内において、根ノードと中継ノードに偏り、葉ノードの負荷は低い。また、中継ノード同士を比較すると、再送以外の処理による負荷は、配信ツリーの構築アルゴリズムによっては、根ノードに相対的に近い中継ノードに偏りがちである。すると、再送処理と再送以外の処理に関する総合的な負荷が適切に分散されるようにするためには、再送処理によって生じる負荷は、再送以外の処理による負荷の偏りを相殺するように割り当てられることが望ましい。そして、図1に例示したような本実施形態による再送制御は、そのような割り当てを実現する。なぜなら、要求ノードへの特定情報の送信を要求されたノードは、子ノードを持っていれば、子ノードを優先的に責任ノードとして選択するからである。そして、子ノードを優先的に責任ノードとして選択する処理が論理ネットワーク100内で再帰的に行われることによって、次のB-1とB-2が成り立つ。B-1根ノードや中継ノードよりも、葉ノードの方が、実際に要求ノードへの特定情報の送信を行うノードになりやすい。B-2根ノードに近いノードよりも、根ノードから遠いノードの方が、実際に要求ノードへの特定情報の送信を行うノードになりやすい。また、上記B-1とB-2によれば、再送以外の処理による負荷が低いノードの方が、再送以外の処理による負荷が高いノードよりも、実際に要求ノードへの特定情報の送信を行うノードになりやすい。したがって、再送処理による負荷は、再送以外の処理による負荷の偏りを相殺するように割り当てられる。つまり、本実施形態による再送制御は、負荷の偏りの悪化を防ぎ、論理ネットワーク100内で適切な負荷分散を実現することができる。また、以上のような本実施形態の利点は、次の2つの比較例と比べるとより明らかである。第1の比較例では、データの消失を検出したノードは、単純に、親ノードにデータの再送を要求する。そして、再送を要求された親ノードは、他のノードに再送要求を転送することなく、自らデータを再送する。つまり、第1の比較例では、再送を要求される可能性があるノードは根ノードと中継ノードのみである。そして上記のとおり、根ノードと中継ノードは、葉ノードよりも、再送以外の処理による負荷が高い。したがって、第1の比較例では、負荷の高い根ノードと中継ノードに、ますます負荷が集中してしまう。仮に、パケットロス率が非常に高かったり、パケットロスが連続して大量に生じたりすると、当然再送の負荷も高まる。場合によっては、再送の負荷だけでも、無視することのできない量になることがある。また、図1のように本実施形態によれば、状況に応じて複数のノードが特定情報の一部分ずつを送信する。よって、たとえ特定情報の量が多くても、個々のノードの送信負荷はそれほど高くない。しかし、第1の比較例では、再送を要求されたデータの全体を1つのノードつまりパケットロスを検出したノードの親ノードが送信する。よって、再送を要求されたデータの量が多いと、親ノードの送信負荷が非常に高くなってしまう。そして、再送による高負荷は、第1の比較例では、上記のとおり、再送以外の処理による負荷がもともと高い根ノードと中継ノードに集中してしまう。したがって、ノード間での処理負荷の公平性を確保するという観点、および負荷分散によってネットワーク全体での処理効率を向上させるという観点からは、明らかに、第1の比較例よりも本実施形態の方が優れている。また、第1の比較例の欠点を克服するため、第2の比較例では、ある1台の管理サーバが論理ネットワークのトポロジを集中的に管理する。すると、管理サーバは、リレー中継を行わない葉ノードを把握することができるので、各ノードに対して、適宜選択した葉ノードを再送要求先として通知することができる。例えば、各ノードは、データの再送を要求しようとするときにあるいは事前に、管理ノードに再送要求先を問い合わせる。そして、問い合わせを受けた管理ノードは、適宜選択した葉ノードを再送要求先として返答する。すると、再送以外の処理による負荷が低い葉ノードに再送の負荷がかかる。したがって、第1の比較例よりも、第2の比較例は、ノード間の負荷分散という点で優れている。しかしながら、この第2の比較例には、ノード数に対するスケーラビリティに欠けるという欠点がある。すなわち、ノード数が多くなると、トポロジを把握し、かつ再送要求先の問い合わせに応答するための、管理サーバの負荷が増大する。また、第2の比較例では、管理サーバがシステムのSPoFSinglePointofFailureになりかねない。他方、本実施形態では、後述の図3の管理サーバ204が使われてもよいが、管理サーバ204は、論理ネットワーク100全体のトポロジを認識する必要はない。管理サーバ204は、単に、論理ネットワーク100に含まれるノードの中の任意の1つ例えば、ランダムな1つを再送要求先として選択すればよい。したがって、明らかに、本実施形態の管理サーバ204の負荷は、トポロジの認識が必要な第2の比較例の管理サーバの負荷よりも軽い。よって、本実施形態の管理サーバ204は、第2の比較例の管理サーバよりもSPoFになりにくい。また、本実施形態では、状況に応じて複数のノードが特定情報の一部分ずつを送信する。よって、たとえ特定情報の量が多くても、個々のノードの送信負荷はそれほど高くない。しかし、第2の比較例では、再送を要求されたデータの全体を1つのノードつまり管理ノードが選択した葉ノードが送信する。よって、再送を要求されたデータの量が多いと、選択された葉ノードが過負荷状態に陥るおそれがある。さらに、本実施形態では、再送要求先として管理サーバ204から通知されるノードは、根ノードかもしれないし、根ノードに比較的近い中継ノードかもしれない。にもかかわらず、本実施形態によれば、図1に関して説明したとおり、要求されたデータを実際に送信する負荷は、根ノードからより遠いノードに、優先的にかかる。また、負荷が大きい場合は、本実施形態では負荷は複数のノードに分散される。よって、本実施形態によれば、好ましい負荷分散と、管理サーバ204の負荷を軽減することで第2の比較例よりもスケーラビリティを向上させることを、ともに実現することができる。また、詳しくは後述するが、本実施形態は、再送要求先の認識のために管理サーバ204を用いないように変形することも可能である。そのような変形例は、より一層、スケーラビリティの点で第2の比較例よりも優れている。以上のとおり、本実施形態による再送制御は、第1の比較例と第2の比較例のいずれと比べても、優れている。また、図1に関する説明から明らかなとおり、本実施形態による再送制御は自律分散制御であるから、再送要求が多発する場合であっても特定のノードがSPoFとなり再送要求がオーバーフローするといった事態には陥らない。ところで、図1~2に示す論理ネットワーク100は、物理ネットワークとは異なる。つまり、論理ネットワーク100においてエッジで直接的に接続された隣接ノード同士が、物理的には非常に離れていることもあり得る。逆に、論理ネットワーク100内で離れたノード同士が、物理的には近接していることもあり得る。図3は物理ネットワークの例を示す図である。図1~2に示す論理ネットワーク100は、例えば、図3の物理ネットワーク200上のオーバレイネットワークであってもよい。物理ネットワーク200は、コアネットワーク201と、コアネットワーク201を介して互いに接続されたルータ202A~202Fを含む。また、物理ネットワーク200は、配信サーバ203、管理サーバ204、および端末装置205A~205Lを含む。図3に示すように、配信サーバ203と管理サーバ204と端末装置205Aは、ルータ202Aに接続されている。また、端末装置205B~205Cはルータ202Bに接続されており、端末装置205D~205Eはルータ202Cに接続されている。そして、端末装置205Fはルータ202Dに接続されており、端末装置205G~205Iはルータ202Eに接続されており、端末装置205J~205Lはルータ202Fに接続されている。なお、図3では各ルータと端末装置が直接的に線で結ばれている。しかし、ルータと端末装置の間は、スイッチングハブまたは無線LANLocalAreaNetworkアクセスポイントなどのネットワーク機器を介して接続されていてもよい。配信サーバ203は、端末装置205A~205Lに配信するための配信情報として、コンテンツ例えばストリーミングデータを生成または取得し、当該コンテンツを配信する。また、管理サーバ204は、配信ツリーに属するノードを管理するサーバである。つまり、管理サーバ204を含む図3は、ピュアP2Pシステムではなく、ハイブリッドP2Pシステムの例を示している。しかしもちろん、ピュアP2Pにも本実施形態は適用可能である詳しくは後述する。また、図3の例では、配信サーバ203と管理サーバ204が分かれているが、1台のサーバが配信サーバ203と管理サーバ204の機能を兼ね備えてもよい。あるいは、複数の管理サーバ204があってもよい。端末装置205A~205Lは、所定のALMアプリケーションソフトウェアがインストールされたコンピュータならば、どのようなコンピュータであってもよい。端末装置205A~205Lの具体例は、例えば、PCPersonalComputer、ワークステーション、ネットワーク通信機能を持つSTBSetTopBox、スマートフォン、携帯電話、タブレット型端末などである。以下では、図1~2の論理ネットワーク100が図3の物理ネットワーク200上のオーバレイネットワークである場合について説明する。論理ネットワーク100が物理ネットワーク200上のオーバレイネットワークである場合、配信サーバ203は、論理ネットワーク100における根ノードN1に相当する。また、管理サーバ204は、配信ツリーとして構築される論理ネットワーク100には含まれない。そして、論理ネットワーク100における根ノードN1以外のノードN2~N13が、それぞれ物理ネットワーク200の端末装置205A~205Lのいずれに相当するのかということは、場合によって様々である。以下に、論理ネットワーク100と物理ネットワーク200の対応関係の例を2つ挙げる。論理ネットワーク100と物理ネットワーク200の対応関係の第1の例は、以下のC-1~C-13のとおりである。C-1ノードN1は配信サーバ203である。C-2ノードN2は端末装置205Lである。C-3ノードN3は端末装置205Bである。C-4ノードN4は端末装置205Kである。C-5ノードN5は端末装置205Hである。C-6ノードN6は端末装置205Cである。C-7ノードN7は端末装置205Fである。C-8ノードN8は端末装置205Gである。C-9ノードN9は端末装置205Jである。C-10ノードN10は端末装置205Aである。C-11ノードN11は端末装置205Iである。C-12ノードN12は端末装置205Dである。C-13ノードN13は端末装置205Eである。上記C-1~C-13に示した第1の例において、図1のステップS10に示すようにノードN2からノードN5への送信においてデータの消失が生じる理由としては、例えば下記D-1~D-3がある。D-1ルータ202Fにおける故障または輻輳。D-2コアネットワーク201内においてルータ202Fとルータ202Eを接続する経路route上の、故障または輻輳。D-3ルータ202Eにおける故障または輻輳。仮にノードN5が、上記の第1の比較例のように単純に親ノードN2自体に再送を依頼する場合には、原因D-1またはD-2によって消失したデータは、回復の見込みが非常に低い。しかし、図1の再送制御によれば、ノードN5の論理ネットワーク100上の親ノードN2に相当する端末装置205Lとは物理ネットワーク200上で離れた端末装置205F、205G、205D、205Eから、実際の再送が行われる。よって、図1の再送制御によれば、ステップS10において原因D-1またはD-2によって消失したデータを、ノードN5が取得することが可能である。なお、原因D-3の場合は、どのノードからデータが再送されようともつまりどのような再送制御が行われようとも、再送されたデータをノードN5つまり端末装置205Hがうまく受信できないおそれが高い。例えば、ノードN5からの再送要求自体がルータ202Eで消失するおそれが高い。あるいは、仮に再送要求が消失しなかったとし、かつ図1のステップS41のようにノードN7つまり端末装置205Fからデータが再送されたとしても、再送されたデータは、ノードN5に到達する前にルータ202Eで消失してしまうおそれが高い。また、論理ネットワーク100と物理ネットワーク200の対応関係の第2の例は、以下のE-1~E-13のとおりである。E-1ノードN1は配信サーバ203である。E-2ノードN2は端末装置205Dである。E-3ノードN3は端末装置205Cである。E-4ノードN4は端末装置205Jである。E-5ノードN5は端末装置205Eである。E-6ノードN6は端末装置205Bである。E-7ノードN7は端末装置205Kである。E-8ノードN8は端末装置205Iである。E-9ノードN9は端末装置205Gである。E-10ノードN10は端末装置205Aである。E-11ノードN11は端末装置205Hである。E-12ノードN12は端末装置205Lである。E-13ノードN13は端末装置205Fである。上記E-1~E-13に示した第2の例では、ノードN2とN5が同じルータ202Cに接続されている。したがって、図1のステップS10のような消失の原因は、主に、ルータ202Cにおける故障または輻輳である。すると、上記の第1の例における原因D-3と同様に、どのノードからデータが再送されようとも、再送されたデータをノードN5つまり端末装置205Eがうまく受信できないおそれが高い。以上の対応関係の第1と第2の例に示したように、本実施形態による再送制御は、第1の比較例の再送制御と比較して、優れている。つまり、物理ネットワーク200上で要求ノードに近い装置において輻輳または故障が発生したというような、特定の状況下では、本実施形態でも、第1の比較例でも、消失したデータが再送により取得可能となる見込みは低く、再送制御の仕方による差はない。しかし、別の状況下では、消失したデータは、第1の比較例では再送により取得可能となる見込みが非常に低いのに対し、本実施形態によれば再送により取得可能となる見込みが高い。したがって、本実施形態は、消失したデータの再送による回復率の点においても、第1の比較例より優れている。ところで、図3に示した配信サーバ203、管理サーバ204、および端末装置205A~205Lは、具体的にはネットワーク通信機能を備えるコンピュータであり、コンピュータは、例えば図4のハードウェア構成図に示すような各種ハードウェアを有する。図4のコンピュータ300は、CPUCentralProcessingUnit301とRAMRandomAccessMemory302と通信インタフェイス303と入力装置304と出力装置305と不揮発性記憶装置306と可搬型記憶媒体310の駆動装置307を有する。コンピュータ300内の各部は、バス308により互いに接続されている。CPU301は、プログラムをRAM302にロードし、RAM302をワークエリアとして用いながら、プログラムを実行する。プログラムは、不揮発性記憶装置306に予め格納されていてもよい。あるいは、プログラムは、通信インタフェイス303を介してネットワークからダウンロードされて不揮発性記憶装置306にコピーされてもよい。または、プログラムは、可搬型記憶媒体310に格納されて提供され、駆動装置307により読み取られてもよい。駆動装置307により可搬型記憶媒体310から読み取られたプログラムは、直接RAM302にロードされてもよいし、一旦不揮発性記憶装置306にコピーされ、不揮発性記憶装置306からRAM302にロードされてもよい。可搬型記憶媒体310としては、CDCompactDiscやDVDDigitalVersatileDiskなどの光ディスク、光磁気ディスク、磁気ディスク、不揮発性の半導体メモリカードなどが利用可能である。また、通信インタフェイス303は、例えば、有線LANインタフェイス、無線LANインタフェイス、またはそれらの組み合わせである。入力装置304は、例えば、ボタン、キーボード、マウスやタッチスクリーンなどのポインティングデバイス、マイク、またはそれらの組み合わせである。出力装置305は、例えば、ディスプレイ、スピーカ、またはそれらの組み合わせである。ディスプレイは、タッチスクリーンであってもよい。不揮発性記憶装置306は、例えば、ROMReadOnlyMemoryやフラッシュメモリなどの半導体メモリ、ハードディスク装置、またはそれらの組み合わせである。なお、RAM302、不揮発性記憶装置306、および可搬型記憶媒体310は、いずれも、コンピュータ読み取り可能な記憶媒体の例である。これらのコンピュータ読み取り可能な記憶媒体は、有形のtangible記憶媒体であり、信号搬送波のような一時的なtransitory媒体ではない。ところで、それぞれが図4のようなハードウェアを持つ、図3の端末装置205A~205Lは、図2の論理ネットワーク100内の葉ノードまたは中継ノードである。そして、論理ネットワーク100の葉ノードと中継ノードは、いずれも、図1を参照して説明した本実施形態の再送制御を行う通信装置である。図5は、論理ネットワーク100の葉ノードと中継ノードとして使われる通信装置のブロック構成図である。図5の通信装置400は、受信部401、送信部402、バッファ部403、再生処理部404、転送処理部405、ロス検出部406、再送要求部407、ノード情報記憶部408、ノード情報管理部409、および負荷分散処理部410を有する。また、負荷分散処理部410は、選択部411、対応づけ部412、要求生成部413、および再送処理部414を含む。受信部401は他の装置からパケットを受信し、送信部402は他の装置にパケットを送信する。受信部401と送信部402は、例えば通信インタフェイス303により実現される。なお、以下では論理ネットワーク100内で配信される対象のコンテンツつまり配信情報をペイロードに含むパケットをデータパケットといい、制御用のメッセージを含むパケットを制御パケットという。また、受信部401は、受信したパケットの種類に応じて、パケットまたはパケットに含まれる一部のフィールドの値を適宜出力する。受信部401がパケットの種類を判断する機能は、例えば、CPU301により実現される。バッファ部403は、受信部401が受信したデータパケットを、ある程度の期間、保持し続ける。バッファ部403は、例えばRAM302、不揮発性記憶装置306、またはその組み合わせにより実現される。再生処理部404は、バッファ部403が保持するデータパケットを用いて、コンテンツを再生する。再生処理部404は、例えば、プログラムを実行するCPU301と、再生結果を出力する出力装置305により実現される。転送処理部405は、受信部401により受信されてバッファ部403に格納されたデータパケットを、通信装置400の子ノードに相当する他の通信装置400に転送するための制御を行う。なお、転送処理部405は、ノード情報記憶部408を参照することにより、転送先の子ノードの有無、および、子ノードがある場合の子ノードのアドレスを認識する。転送処理部405は、CPU301により実現される。ロス検出部406は、パケットロスを検出する。本実施形態では、受信部401は、データパケットを受信すると、データパケットをバッファ部403に格納するだけでなく、データパケットに含まれるシーケンス番号を抽出し、シーケンス番号をロス検出部406に通知する。よって、ロス検出部406は、受信部401から通知されたシーケンス番号に基づいて、パケットロスを検出することができる。より具体的には、ロス検出部406は、消失したデータパケットのシーケンス番号の範囲を認識する。そして、パケットロスを検出した場合、ロス検出部406は、認識したシーケンス番号の範囲を再送要求部407に通知する。すると、再送要求部407は、ロス検出部406から通知された範囲のシーケンス番号を持つデータパケットの再送を求めるための再送要求を生成する。そして、再送要求部407は、生成した再送要求を送信部402に出力する。その結果、送信部402が再送要求を送信する。なお、再送要求は、具体的には制御パケットの一種である。また、再送要求部407は、再送要求の送信先を、ノード情報記憶部408を参照して決定する。なお、ロス検出部406と再送要求部407は、例えば、CPU301により実現される。また、ノード情報記憶部408は、例えば、RAM302、不揮発性記憶装置306、またはその組み合わせにより実現される。ノード情報記憶部408は、例えば、下記F-1~F-4のような情報を記憶する。ノード情報記憶部408が記憶する情報の詳細は図9とともに後述する。F-1通信装置400自身に関する情報。例えば、通信装置400のIPInternetProtocolアドレスや、通信装置400が再送用に利用可能な帯域幅など。F-2論理ネットワーク100内で通信装置400の親ノードに当たる他の通信装置400に関する情報。例えば、親ノードのIPアドレスなど。F-3論理ネットワーク100内で通信装置400の子ノードに当たる他の通信装置400に関する情報。例えば、子ノードのIPアドレスや、論理ネットワーク100において当該子ノードを根とする部分木に含まれる各ノードが再送用に利用可能な帯域幅の総和など。F-4再送要求部407が再送要求を送信する宛先に関する情報。例えば宛先のIPアドレスなど。また、ノード情報管理部409は、受信部401が受信した制御パケットに応じて適宜ノード情報記憶部408内の情報を更新する。さらに、ノード情報管理部409は、適宜のタイミングで適宜の制御パケットを生成し、生成した制御パケットを送信部402に出力する。すると、送信部402が制御パケットを送信する。ノード情報管理部409が処理する制御パケットの具体例は後述する。なお、ノード情報管理部409は、例えば、CPU301により実現される。また、受信部401は、再送要求を受信すると、再送要求を負荷分散処理部410に出力する。すると、負荷分散処理部410は、再送要求に応じて、図1に関して説明したような処理を実行する。なお、負荷分散処理部410は、例えばCPU301により実現されてもよく、負荷分散処理部410内の各部は、次のように動作する。選択部411は、通信装置400自身よりは子ノードを優先して、1つ以上の責任ノードを選択する。選択に際し、選択部411は、ノード情報記憶部408を参照する。また、対応づけ部412は、各責任ノードに、再送要求によって要求された1つまたは複数のパケットすなわち特定情報の一部または全部を対応づける。対応づけに際し、対応づけ部412は、ノード情報記憶部408を参照してもよい。また、対応づけ部412は、対応づけの結果に応じて、ノード情報記憶部408上の情報を更新してもよい。そして、責任子ノードが1つ以上ある場合、要求生成部413は、各責任子ノードへの再送要求を生成し、生成した再送要求を送信部402に出力する。すると、送信部402が再送要求を送信する。また、選択部411が通信装置400を責任ノードとして選択した場合、再送処理部414は、対応づけ部412により通信装置400に対応づけられたデータパケットのペイロードをバッファ部403から読み出す。そして、再送処理部414は、データパケットを要求ノードに宛てて送信するための適宜のヘッダを生成し、生成したヘッダと読み出したペイロードを含むデータパケットを送信部402に出力する。すると、送信部402がデータパケットを送信する。ところで、図3の配信サーバ203も、論理ネットワーク100の根ノードとして図1の再送制御を行うという点では、図5の通信装置400と同じである。つまり、配信サーバ203も、端末装置205A~205Lに相当する通信装置400と同様に、他のノードからの再送要求の受信を契機として再送制御を行う負荷分散処理部410を有する。また、配信サーバ203は、受信部401、送信部402、バッファ部403、ノード情報記憶部408、およびノード情報管理部409も有する。ただし、配信サーバ203には、再生処理部404、転送処理部405、ロス検出部406、および再送要求部407は不要である。なお、配信サーバ203は、配信する対象のコンテンツのデータを生成してバッファ部403に出力する不図示の生成部、または、カメラなどの外部装置からコンテンツのデータを取得してバッファ部403に出力する不図示の取得部を有する。生成部は、例えばCPU301により実現されてもよく、取得部は、例えば、外部装置と配信サーバ203を接続するインタフェイスにより実現されてもよい。さらに、配信サーバ203は、生成部または取得部により生成または取得されてバッファ部403に格納されたデータを送信するための制御を行う不図示の配信処理部を有する。配信処理部は、転送処理部405と同様に、ノード情報記憶部408を参照して子ノードを認識し、バッファ部403に格納されたデータを各子ノードに送信するための制御を行う。このように、配信サーバ203も、図5の通信装置400と類似の構成を有する。そこで、以下の説明においては、特に誤解のおそれがない場合は、配信サーバ203用に上記のごとく変形された通信装置も含めて、通信装置400と称することがある。続いて、論理ネットワーク100内の各ノードに相当する通信装置400具体的には配信サーバ203または端末装置205A~205Lの動作と、管理サーバ204の動作について、詳しく説明する。論理ネットワーク100における根ノードN1に相当する配信サーバ203は、以下のG-1~G-7の処理を行う。G-1端末装置から、配信サーバ203の子ノードとして登録するよう求める要求を受信したときに、当該端末装置を配信サーバ203の子ノードとして登録する処理。このG-1の処理は、新たな端末装置の論理ネットワーク100への参加、または配信ツリーの再構築にともなって、イベント駆動で不定期に行われる処理である。G-2配信サーバ203の子ノードから、論理ネットワーク100から離脱するleaveことを知らせる通知を受信したときに、当該子ノードの情報を削除する処理。このG-2の処理は、イベント駆動で不定期に行われる処理である。G-3配信サーバ203を根ノードとするツリーすなわち論理ネットワーク100に含まれるノードがそれぞれ再送用に使用可能な帯域幅の合計値に変化が生じたときに、変化を記録する処理。G-4配信サーバ203自身が再送用に使用可能な帯域幅の変化を検出する処理。このG-4の処理は、定期的な監視処理であってもよいし、不定期に生じるイベントを検出する処理であってもよい。G-5論理ネットワーク100内に配信するコンテンツを生成または取得し、コンテンツを適宜パケット化し、適宜のタイミングで例えばサンプリングレートに応じた適宜の間隔で定期的に子ノードにデータパケットを送信する処理。なお、配信サーバ203は、再送に備えて、送信後一定時間は、データパケットをバッファ部403に保持し続ける。G-6バッファ部403から古いデータパケットを削除するエージング処理。このG-6の処理は、例えばタイマ割り込み信号によって、定期的に呼び出されてもよい。G-7論理ネットワーク100内のいずれかのノードから再送要求を受信したときに、配信サーバ203自ら再送要求に応じるか、または配信サーバ203の子ノードに再送を保証させるための処理。このG-7の処理は、イベント駆動で不定期に行われる処理である。また、論理ネットワーク100における葉ノード図1~2の例では、ノードN5、N7~N13は、以下のH-1~H-13の処理を行う。H-1新たに論理ネットワーク100に参加しようとするとき、親ノードとして適切なノードを管理サーバ204に問い合わせる処理。このH-1の処理は、初期設定のための処理である。H-2上記H-1の問い合わせに対して管理サーバ204から返答されたノードに対して、子ノードとしての登録を要求する処理。このH-2の処理も、初期設定のための処理である。H-3当該葉ノード自身が再送用に使用可能な帯域幅に変化が生じたときに、変化を記録するとともに、親ノードに変化を通知する処理。H-4当該葉ノード自身が再送用に使用可能な帯域幅の変化を検出する処理。このH-4の処理は、定期的な監視処理であってもよいし、不定期に生じるイベントを検出する処理であってもよい。H-5データパケットの受信を契機として、パケットロスの有無を検出し、必要に応じて再送要求を送信する処理。なお、葉ノードに相当する通信装置400は、他のノードから再送要求を受ける場合に備えて、一定時間は、受信したデータパケットをバッファ部403に保持し続ける。H-6バッファ部403から古いデータパケットを削除するエージング処理。このH-6の処理は、例えばタイマ割り込み信号によって、定期的に呼び出されてもよい。H-7受信したデータパケットを用いてコンテンツ例えば動画や音声などを再生する処理。H-8論理ネットワーク100内のいずれかのノードから再送要求を受信したときに、再送要求に応じる処理。このH-8の処理は、イベント駆動で不定期に行われる処理である。H-9上記H-5の処理における再送要求の送信先として適切なノードを管理サーバ204に問い合わせる処理。このH-9の処理が行われるタイミングは任意である。例えば、このH-9の処理は、上記H-1の処理とともに最初に行われてもよいし、さらにその後、定期的に繰り返し行われてもよい。H-10上記H-5の処理において再送要求を送信した場合に、再送要求に応じられない旨のNACKNegativeACKnowledgmentを受信したら、別のノードに再送要求を送信しなおす処理。H-11論理ネットワーク100から離脱しようとするとき、親ノードと管理サーバ204に離脱を通知する処理。H-12親ノードから、新たな親ノードの候補を知らせる通知を受信した場合、通知された候補に対して、子ノードとして登録するよう要求する処理。このH-12の処理における親ノードからの通知は、例えば、今までの親ノードが論理ネットワーク100から離脱する場合などに行われる。H-13当該葉ノードが管理サーバ204にかつて通知した情報が表す状況に変化があった場合、管理サーバ204に情報の更新を要求する処理。また、論理ネットワーク100における中継ノード図2の例では、ノードN2~N4、N6は、以下のI-1~I-14の処理を行う。I-1新たに論理ネットワーク100に参加しようとするとき、親ノードとして適切なノードを管理サーバ204に問い合わせる処理。このI-1の処理は、初期設定のための処理である。I-2上記I-1の問い合わせに対して管理サーバ204から返答されたノードに対して、子ノードとしての登録を要求する処理。このI-2の処理も、初期設定のための処理である。I-3他の端末装置から、子ノードとして登録するよう求める要求を受信したときに、当該端末装置を子ノードとして登録する処理。このI-3の処理は、新たな端末装置の論理ネットワーク100への参加、または配信ツリーの再構築にともなって、イベント駆動で不定期に行われる処理である。I-4子ノードから、論理ネットワーク100からの離脱を知らせる通知を受信したときに、当該子ノードの情報を削除する処理。このI-2の処理は、イベント駆動で不定期に行われる処理である。I-5当該中継ノード自身を根ノードとするツリーすなわち論理ネットワーク100の部分木に含まれるノードがそれぞれ再送用に使用可能な帯域幅の合計値に変化が生じたときに、変化を記録するとともに、親ノードに変化を通知する処理。I-6当該中継ノード自身が再送用に使用可能な帯域幅の変化を検出する処理。このI-6の処理は、定期的な監視処理であってもよいし、不定期に生じるイベントを検出する処理であってもよい。I-7データパケットの受信を契機として、パケットロスの有無を検出し、必要に応じて再送要求を送信し、受信に成功したデータパケットを子ノードに転送する処理。なお、中継ノードに相当する通信装置400は、他のノードから再送要求を受ける場合に備えて、一定時間は、受信したデータパケットをバッファ部403に保持し続ける。I-8バッファ部403から古いデータパケットを削除するエージング処理。このI-8の処理は、例えばタイマ割り込み信号によって、定期的に呼び出されてもよい。I-9受信したデータパケットを用いてコンテンツ例えば動画や音声などを再生する処理。I-10論理ネットワーク100内のいずれかのノードから再送要求を受信したときに、再送要求に応じる処理。このI-10の処理は、イベント駆動で不定期に行われる処理である。I-11上記I-7の処理における再送要求の送信先として適切なノードを管理サーバ204に問い合わせる処理。このI-11の処理が行われるタイミングは任意である。例えば、このI-11の処理は、上記I-1の処理とともに最初に行われてもよいし、さらにその後、定期的に繰り返し行われてもよい。I-12上記I-7の処理において再送要求を送信した場合に、再送要求に応じられない旨のNACKを受信したら、別のノードに再送要求を送信しなおす処理。I-13論理ネットワーク100から離脱しようとするとき、親ノードと管理サーバ204に離脱を通知するとともに、各子ノードに対して、当該子ノードの新たな親ノードの候補として、当該中継ノード自身の親ノードを通知する処理。例えば、図2の中継ノードN6が論理ネットワーク100から離脱しようとするとき、ノードN6は、親ノードN3と管理サーバ204に離脱を通知する。さらに、中継ノードN6は、子ノードN12に対して、ノードN12の新たな親ノードの候補として、ノードN6自身の親ノードN3を通知する。同様に、ノードN6は、子ノードN13に対しても、ノードN13の新たな親ノードの候補として、ノードN3を通知する。I-14当該中継ノードが管理サーバ204にかつて通知した情報が表す状況に変化があった場合、管理サーバ204に情報の更新を要求する処理。管理サーバ204は、以下のJ-1~J-4の処理を行う。J-1~J-4の処理はいずれも、制御パケットの受信を契機としてイベント駆動で行われる処理である。J-1論理ネットワーク100に新たに参加しようとする端末装置からのどのノードを親ノードとして選択すればよいかに関する問い合わせを受信した場合、問い合わせに返答する処理。すなわち、上記H-1とI-1の問い合わせに返答する処理。J-2論理ネットワーク100内の中継ノードまたは葉ノードからのどのノードに再送要求を送信すればよいかに関する問い合わせを受信した場合、問い合わせに返答する処理。すなわち、上記H-9とI-11の問い合わせに返答する処理。J-3論理ネットワーク100内のいずれかのノードから、当該ノードに関して管理サーバ204が管理している情報を更新するよう求める要求を受信した場合、要求に応じて情報を更新する処理。すなわち、上記H-13とI-14の要求に応じる処理。J-4論理ネットワーク100から離脱しようとするノードから離脱の通知を受信した場合、当該ノードに関して管理サーバ204が管理している情報を削除する処理。すなわち、上記H-11とI-13の通知に応じて、不要な情報を削除する処理。以下では、説明の便宜上、まず、管理サーバ204によるJ-1~J-4の処理について、図6~7を参照しながら説明する。その後、論理ネットワーク100内の各ノードで共通のG-4、H-4、I-6の検出処理と、再送用に使用可能な帯域幅の変化が検出処理によって検出された場合の、G-3、H-3、I-5の処理について、図8を参照して説明する。なお、G-3とI-5の処理は、例えば、制御パケットの受信を契機として行われる。そこで、続いて、再送要求以外の制御パケットの受信を契機として行われるG-1~G-3、H-12、I-3~I-5の処理について、図9~10を参照しながら説明する。その後、データパケットの送受信に関連するG-5、H-5、H-7、I-7、I-9の処理について、図11~14を参照して説明する。さらにその後、再送要求の受信を契機として行われるG-7、H-8、H-10、I-10、I-12の処理について、図15~19を参照して説明する。さて、図6は、管理サーバ204が行うJ-1~J-4の処理に関するフローチャートである。すなわち、図6は、管理サーバ204が制御パケットの受信を契機として実行する処理のフローチャートである。また、図7は、管理サーバ204が保持するノード管理情報500の例を示す図である。管理サーバ204は、論理ネットワーク100内の既存のいずれかのノードまたは論理ネットワーク100に新たに参加しようとするノードから制御パケットを受信すると、図6の処理を開始する。そして、ステップS101において管理サーバ204は、受信した制御パケットが、新規接続の要求であるか否かを判断する。なおここで、新規接続の要求とは、まだ論理ネットワーク100に参加していない新たな端末装置からの、参加要求のことである。本実施形態では、各種制御パケットは、ヘッダ中のタイプフィールドの値によりタイプが判別可能である。管理サーバ204が受信した制御パケットが新規接続の要求である場合、処理はステップS102に移行する。また、管理サーバ204が受信した制御パケットが他のタイプのメッセージである場合、処理はステップS103に移行する。ステップS102で管理サーバ204は、新規接続の要求の送信元の端末装置以下、便宜上新規ノードというの親ノードの候補を選択する。そして、管理サーバ204は、選択した候補を、新規ノードに通知する。また、管理サーバ204は、図7のノード管理情報500に新規エントリを追加し、新規エントリのフィールドに適宜値を設定する。なお、管理サーバ204が選択する候補の数は、1でもよいし2以上でもよいが、以下では説明の簡単化のため、1と仮定する。ここで、図7を参照して、管理サーバ204が保持するノード管理情報500について説明する。ノード管理情報500は、1つ以上のエントリを含む。ノード管理情報500の各エントリは、論理ネットワーク100に含まれる各ノードに対応する。また、本実施形態におけるノード管理情報500の各エントリは、ノードIDidentification、IPアドレス、ポート番号、接続能力、ISPInternetServiceProviderというフィールドを含む。ノードIDフィールドは、当該ノードに管理サーバ204が割り当てたIDを示す。IPアドレスフィールドは、当該ノードのIPアドレスを示す。ポート番号フィールドは、当該ノードの受信ポート番号を示す。また、接続能力とISPは、ノードに関連する補足情報の例である。例えば、接続能力フィールドは、当該ノードは、新たに子ノードを持つことが可能な空き帯域幅を有しているか否かということを示し、ISPフィールドは、当該ノードが接続されたISPを示す。図7の例における1つ目のエントリは、ノードIDが1のノードについて示す。1つ目のエントリによれば、ノードIDが1のノードは、IPアドレスが206.89.2.10でポート番号が50002である。また、1つ目のエントリによれば、ノードIDが1のノードは、接続能力が空きありでありつまり、新たな子ノードを受け入れ可能であり、プロバイダAに接続されている。また、2つ目のエントリは、ノードIDが2のノードについて示す。2つ目のエントリによれば、ノードIDが2のノードは、IPアドレスが220.161.1.30でポート番号が50001である。また、2つ目のエントリによれば、ノードIDが2のノードは、接続能力が空きなしでありつまり、新たな子ノードを受け入れ不能であり、プロバイダBに接続されている。なお、初期状態におけるノード管理情報500は、配信サーバ203に対応する1つのエントリを含むように、予め設定される。また、配信サーバ203のノードIDは、予め決められた値例えば1である。そして、ノード管理情報500のエントリ数は、配信ツリーの構築または再構築につれて変化する。また、実施形態によっては、ノード管理情報500はポート番号を含まなくてもよい。例えば、ALMソフトウェアによってポート番号が一意の定数に決められている場合、ポート番号フィールドは省略可能である。また、補足情報はオプショナルな情報であり、実施形態に応じて補足情報が省略されてもよい。ここで図6の説明に戻る。論理ネットワーク100に参加しようとする端末装置は、新規接続の要求を管理サーバ204に送信し、管理サーバ204は、新規接続の要求を受信すると、上記のようにステップS102の処理を行う。新規接続の要求は、上記H-1とI-1に述べたように、親ノードとして適切なノードを管理サーバ204に問い合わせるためのメッセージでもある。また、新規接続の要求は、新規ノードつまり要求の送信元の端末装置自身のIPアドレス、ポート番号、接続能力、およびISPに関する通知を含む。したがって、ステップS102で管理サーバ204は、具体的には次のような処理を行う。管理サーバ204は、新規ノードのための新規ノードIDを発行する。そして、管理サーバ204は、ノード管理情報500の既存のエントリの中から、接続能力が空きありの任意の1つのエントリに対応するノードを、新規ノードの親ノードの候補として選択する。なお、接続能力が空きありのエントリがない場合は、管理サーバ204は、配信サーバ203を選択してもよい。そして、管理サーバ204は、親ノードの候補として選択したノードのノードID、IPアドレスおよびポート番号、ならびに、発行した新規ノードIDを、新規ノードに通知する。さらに、ステップS102で管理サーバ204は、ノード管理情報500に新規エントリを追加する。そして、管理サーバ204は、追加したエントリにおいて、ノードIDフィールドには発行した新規ノードIDの値を設定し、IPアドレス、接続能力、およびISPの各フィールドには、新規接続の要求に含まれる値をそれぞれコピーする。なお、実施形態によっては、管理サーバ204は、新規接続の要求に含まれるISPと同じISPのエントリを優先的に親ノードの候補として選択してもよい。あるいは、管理サーバ204は、最上位オクテットから比較したときに、新規接続の要求に含まれるIPアドレスとなるべく多くのオクテットが一致するIPアドレスを持つノードを、優先的に親ノードの候補として選択してもよい。また、ノード管理情報500の接続能力は、空きありと空きなしの2値ではなく、受け入れ可能な子ノードの数などの数値により表されてもよい。管理サーバ204は、数値で表された接続能力と、ISPとを引数とする評価関数を用いて、最も評価の高いノードを、新規ノードの親ノードの候補として選択してもよい。以上のようにしてステップS102の一連の処理が終わると、図6の処理も終わる。他方、ステップS101において、新規接続の要求以外の制御パケットを受信したと管理サーバ204が判断した場合は、続いて、ステップS103の処理が行われる。すなわち、ステップS103で管理サーバ204は、受信した制御パケットが、論理ネットワーク100からの離脱の通知つまり、H-11またはI-13の通知であるか否かを判断する。そして、管理サーバ204が受信した制御パケットが離脱の通知である場合、処理はステップS104に移行する。また、管理サーバ204が受信した制御パケットが他のタイプのメッセージである場合、処理はステップS105に移行する。ステップS104で管理サーバ204は、離脱の通知の送信元のノードに対応するエントリをノード管理情報500から削除する。離脱の通知は、論理ネットワーク100から離脱しようとするノードのIPアドレスを含むので、管理サーバ204はIPアドレスをキーにして削除対象のエントリを特定することができる。エントリの削除後、図6の処理も終了する。また、ステップS105で管理サーバ204は、受信した制御パケットが、再送要求先の問い合わせつまりH-9またはI-11の問い合わせであるか否かを判断する。なお、論理ネットワーク100内の葉ノードまたは中継ノードは、将来の再送要求に備えて、再送要求先の問い合わせを予め管理サーバ204に送信してもよい。葉ノードまたは中継ノードは、再送要求先の問い合わせを、任意のタイミングで例えば、比較的長めの間隔で定期的に繰り返し管理サーバ204に送信してもよい。そして、管理サーバ204が受信した制御パケットが再送要求先の問い合わせである場合、処理はステップS106に移行する。また、管理サーバ204が受信した制御パケットが他のタイプのメッセージである場合、処理はステップS107に移行する。ステップS106で管理サーバ204は、ノード管理情報500の既存のエントリのうちで任意の1つのエントリに対応するノードを、再送要求先の候補として選択する。例えば、管理サーバ204は、単にランダムに1つのエントリを選択してもよい。そして、管理サーバ204は、選択した候補より具体的には、選択した候補のノードID、IPアドレスおよびポート番号を、問い合わせの送信元のノードに通知する。すると、図6の処理も終了する。また、ステップS107で管理サーバ204は、受信した制御パケットが、ノード管理情報500の更新要求つまり、H-13またはI-14の要求であるか否かを判断する。例えば、論理ネットワーク100内の葉ノードは、自分自身の接続能力を監視してもよく、接続能力が変化したときにH-13の要求を送信してもよい。中継ノードも同様にして、I-14の要求を送信してもよい。例えば、コンテンツ配信以外のアプリケーションが使う帯域幅の変化に応じて、接続能力が変化することがある。そして、管理サーバ204が受信した制御パケットが、ノード管理情報500の更新要求である場合、処理はステップS108に移行する。また、管理サーバ204が受信した制御パケットが、ノード管理情報500の更新要求ではない場合、図6の処理は終了する。ステップS108で管理サーバ204は、ノード管理情報500において、更新要求の送信元のノードに対応するエントリを検索し、検索の結果見つかったエントリの内容を、受信した更新要求に応じて更新する。なお、更新要求は、接続能力以外の値の更新を要求するものであってもよい。例えば、補足情報が接続能力とISP以外の付加的項目をさらに含む場合、更新要求は、当該付加的項目の更新を要求するものでもよい。ノード管理情報500の更新後、図6の処理は終了する。続いて、論理ネットワーク100内の各ノードで共通のG-4、H-4、I-6の検出処理と、再送用に使用可能な帯域幅の変化が検出処理によって検出された場合の、G-3、H-3、I-5の処理について説明する。本実施形態では、再送の信頼性を高めるために、再送用に使用可能な帯域幅の変化の検出および通知が行われる。以下では、あるノードNjがデータパケットの再送用に使用可能な帯域幅を、ノードNjの送信可能帯域幅という。送信可能帯域幅は、換言すれば、再送用に予約される帯域幅である。また、ノードNjを根ノードとする部分グラフに含まれるすべてのノードの送信可能帯域幅の和を、ノードNjの送信可能総帯域幅という。定義より、葉ノードにおいては送信可能帯域幅と送信可能総帯域幅が等しい。また、上記定義より、送信可能総帯域幅は、式1のように表すことができる。なお、式1において、ReservedNjはノードNjの送信可能帯域幅である。また、TotalNjはノードNjの送信可能総帯域幅であり、TotalNkはノードNkの送信可能総帯域幅である。そして、ChildNjはノードNjの子ノードの集合である。送信可能帯域幅は、例えば、ユーザによって指定されてもよい。あるいは、ノードを実現するコンピュータ例えば配信サーバ203や端末装置205A~205Lなどの通信装置400にインストールされたデータ配信アプリケーションプログラムつまりALMソフトウェアが、自動的に送信可能帯域幅を設定してもよい。データ配信アプリケーションプログラムは、再送ではない本来のデータ配信に使用される帯域幅、ネットワーク環境、同じコンピュータが実行中の他のアプリケーションプログラムにより使用される帯域幅などに基づき、動的に送信可能帯域幅を変更してもよい。すなわち、G-4、H-4、I-6の検出処理とは、例えば、下記K-1~K-4のようなイベントの発生を監視し、送信可能帯域幅の変化をもたらすイベントの発生を検出する処理である。以下、説明の便宜上、例えばK-1~K-4のようなイベントをネットワーク状況の変化と総称する。K-1ユーザが新たな値を送信可能帯域幅として設定した。K-2物理的なネットワーク環境が変化した。例えば、検出処理を行うノードが具体的には図3の端末装置205Hである場合、端末装置205Hと同じルータ202Eに接続された他の端末装置205Gまたは205Iによる通信量が変化し、その影響で端末装置205Hが使用可能な帯域幅が変化した。あるいは、ルータ202Eに接続されたコアネットワーク201内の回線の帯域幅が変化した。K-3データ配信アプリケーションにおいて、再送以外の処理のために確保することが好ましい帯域幅が変化した。例えば、子ノードの数が変化した。K-4同じコンピュータ内で実行中の他のアプリケーションが使用する帯域幅が変化した。ところで、各ノードが送信可能帯域幅の変化の検出を行う理由は、上記のとおり、再送の信頼性を高めるためつまり、再送がより確実に保証されるようにするためである。例えば、図1の例では、ノードN6が、ステップS33においてノードN12に再送処理を委譲する。しかし、もしノードN12において物理的に使用可能なほとんどの帯域幅が再送以外の他の処理によって既に占有されていたとすると、ノードN12からの再送が失敗するおそれが高い。つまり、ノードN12は、責任ノードとして選択されたにもかかわらず、再送を保証することができないおそれが高い。また、ノードN3は、ノードN6を根ノードとする部分グラフに属する1つ以上の任意のノードによって再送が保証されるということを前提として、ノードN6を責任ノードとして選択し、ステップS30でノードN6に再送を委譲する。したがって、仮にもし上記のようにノードN12が再送を保証することができないとすると、ノードN3にとっての責任ノードを選択するうえでの前提が成り立たない。そこで、再送がより確実に保証されるようにするためすなわち、上記に例示したような前提を成り立たせるため、本実施形態では、各ノードが再送用に送信可能帯域幅を予約し、かつ、各ノードが送信可能総帯域幅の変化を認識する。具体的には、式1からも明らかなように、ノードNjの送信可能総帯域幅TotalNjは、以下のL-1~L-4の理由で変化する。L-1ノードNj自身の送信可能帯域幅ReservedNjが変化した。L-2ノードNjがノードNkを新たに子ノードとしたため、ノードNkの送信可能総帯域幅TotalNkの分だけノードNjの送信可能総帯域幅TotalNjが増加した。L-3ノードNjが既に子ノードNkを持つ場合において、子ノードNkの送信可能総帯域幅TotalNkが変化した。L-4ノードNjが既に子ノードNkを持つ場合において、子ノードNkが論理ネットワークから離脱したため、ノードNkの送信可能総帯域幅TotalNkの分だけノードNjの送信可能総帯域幅TotalNjが減少した。そして、L-1の変化は、具体的には上記K-1~K-4のようなネットワーク状況の変化によって生じる。また、L-3から明らかなとおり、あるノードNkの送信可能総帯域幅TotalNkが変化した場合、ノードNkの親ノードNjの送信可能総帯域幅TotalNjも、それにともなって変化する。したがって、本実施形態では、論理ネットワーク100内の各ノードが当該ノード自身の送信可能総帯域幅の変化を認識するための処理として、子ノードから親ノードへ、送信可能総帯域幅の変化を知らせる通知が送信される。その結果、あるノードが通知を送信すると、論理ネットワーク100内のエッジを逆向きにたどって根ノードに至るまで、通知が順次連鎖的に送信される。例えば、図1のノードN9がノードN9自身の送信可能帯域幅ReservedN9の変化を検出すると、ノードN9の送信可能総帯域幅TotalN9も当然変化する。そこで、ノードN9は親ノードN4に、送信可能総帯域幅TotalN9の変化を通知する。その結果、ノードN4の送信可能総帯域幅TotalN4も変化する。よって、ノードN4は親ノードN2に送信可能総帯域幅TotalN4の変化を通知する。すると、ノードN2の送信可能総帯域幅TotalN2が変化するので、ノードN2は、送信可能総帯域幅TotalN2の変化を親ノードN1に通知する。すると、ノードN1の送信可能総帯域幅TotalN1も変化する。ただし、ノードN1は、論理ネットワーク100における根ノードなので、送信可能総帯域幅TotalN1の変化にともなう通知を送信する必要はない。例えば以上説明したような連鎖的な通知により、論理ネットワーク100内の各ノードは、送信可能総帯域幅の変化を認識することができる。そして、再送要求を受けたノードが、子ノードの送信可能総帯域幅を考慮に入れて責任ノードを選択することにより、再送がより確実に保証され、再送の信頼性が向上する。ここで、送信可能帯域幅に関するG-4、H-4、I-6の検出処理の説明に戻る。G-4、H-4、I-6の検出処理により、上記L-1の原因による送信可能総帯域幅の変化が検出可能である。よって、葉ノードまたは中継ノードは、H-4、I-6の検出処理により送信可能帯域幅の変化を検出した場合は、送信可能帯域幅の変化に起因して変化した送信可能総帯域幅を計算し、計算結果を記憶し、計算結果を親ノードに通知する。つまり、葉ノードはH-3の通知を行い、中継ノードはI-5の通知を行う。なお、根ノードは、G-4の検出処理により送信可能帯域幅の変化を検出した場合、送信可能帯域幅の変化に起因して変化した送信可能総帯域幅を計算し、計算結果を記憶するが、計算結果を他のノードに通知する必要はない。つまり、根ノードはG-3のように単に変化を記録するだけでよい。さて、以上説明した送信可能総帯域幅の変化の検出と通知について模式的に図示すると、図8のとおりである。図8の論理ネットワーク100aは、ある論理ネットワークの一部を抜粋したものである。論理ネットワーク100aは、ノードN20~N24を含む。また、ノードN21はノードN20の子ノードであり、ノードN22~N24はノードN21の子ノードである。なお、ノードN20は、根ノードでもよいし中継ノードでもよい。また、ノードN22~N24は、葉ノードでもよいし中継ノードでもよい。図1~2と同様に、図8においても、データパケット601が配信される方向が実線の矢印により示されている。破線の矢印は、送信可能総帯域幅の通知が送信される方向を示す。図8に示すように、ノードN22は、子ノードとして登録するようノードN21に求めるとき、および、ノードN22の送信可能総帯域幅TotalN22に変化があったときに、送信可能総帯域幅の通知602をノードN21に送信する。同様に、ノードN23は、子ノードとして登録するようノードN21に求めるとき、および、ノードN23の送信可能総帯域幅TotalN23に変化があったときに、送信可能総帯域幅の通知603をノードN21に送信する。さらに同様に、ノードN24は、子ノードとして登録するようノードN21に求めるとき、および、ノードN24の送信可能総帯域幅TotalN24に変化があったときに、送信可能総帯域幅の通知604をノードN21に送信する。なお、送信可能総帯域幅の通知602~604は、任意の順序で送信され得るし、必要に応じて何度でも送信され得る。ノードN21は、送信可能総帯域幅の通知602~604のいずれか1つを受信するたびに、ノードN21の送信可能総帯域幅TotalN21を計算しなおし、計算結果を記憶するとともに、計算結果を記録した通知605をノードN20に送信する。さらに、ノードN21は、ノードN21自身の送信可能帯域幅ReservedN21が変化した場合も、送信可能総帯域幅TotalN21を計算しなおし、計算結果を記憶するとともに、計算結果を記録した通知605をノードN20に送信する。ところで、以上説明した送信可能総帯域幅の通知のために、図5の通信装置400のノード情報記憶部408は、通信装置400自身の送信可能帯域幅や通信装置400の各子ノードの送信可能総帯域幅をノード情報として保持する。また、図8に例示した送信可能総帯域幅の通知602~605は制御パケットの一種であるが、図8の説明から明らかなとおり、各ノードすなわち通信装置400は、制御パケットの受信を契機として様々な処理を行う。そこで、以下では、図9を参照して、ノード情報記憶部408が保持するノード情報の例について説明し、図10を参照して、制御パケットの受信を契機とする処理について説明する。上記F-1~F-4に簡単に説明したように、通信装置400のノード情報記憶部408が保持するノード情報は、いくつかの種類の情報を含む。具体的には、ノード情報は、通信装置400の親ノードに関する親ノード情報701と、通信装置400が再送要求を送信する宛先である再送要求先のノードに関する再送要求先情報702と、通信装置400の子ノードに関する子ノード情報と、通信装置400自身に関する自ノード情報を含む。なお、子ノード情報と自ノード情報は、通信装置400が再送要求を受信すると変化する。そこで、図9では、2つの状態の子ノード情報に、703aと703bという別の参照符号が付与されている。同様に、図9では、2つの状態の自ノード情報に、704aと704bという別の参照符号が付与されている。また、図9では図示の便宜上、各種情報をテーブル形式で例示しているが、データ形式は実施形態に応じて任意である。例えば、線形リストや連想配列が使われてもよい。親ノード情報701は、通信装置400の親ノードのIPアドレスと、親ノードのポート番号具体的には受信ポート番号と、通信装置400と親ノードの間のRTTRoundTripTimeを含む。親ノード情報701は、親ノードのノードIDをさらに含んでもよい。図9の親ノード情報701の例では、IPアドレスは220.161.1.30であり、ポート番号は50001であり、RTTは5msである。例えば、ノード情報管理部409は任意のタイミングで親ノードとの間のRTTを計測し、計測結果を親ノード情報701に書き込む。RTTの計測には、例えば、pingコマンドなどが利用可能である。つまり、ノード情報管理部409は、親ノードのIPアドレスを宛先に指定したICMPInternetControlMessageProtocolのエコー要求パケットを生成し、送信部402がエコー要求パケットを送信する。そして、受信部401が親ノードからのエコー応答パケットを受信してノード情報管理部409に出力する。すると、ノード情報管理部409は、エコー要求パケットの送信からエコー応答パケットの受信までにかかった時間を親ノードと通信装置400自身との間のRTTとして認識し、認識したRTTを親ノード情報701に書き込む。また、再送要求先情報702は、通信装置400にとっての再送要求先のIPアドレスと、再送要求先のポート番号具体的には受信ポート番号と、通信装置400と再送要求先の間のRTTを含む。再送要求先情報702は、再送要求先のノードIDをさらに含んでもよい。図9の再送要求先情報702の例では、IPアドレスは217.125.10.16であり、ポート番号は50002であり、RTTは9msである。なお、ノード情報管理部409は、将来のパケットロスと再送要求に備えて、予め再送要求先情報702を取得してノード情報記憶部408に記憶しておくことが好ましい。しかし、ノード情報管理部409は、ロス検出部406がパケットロスを検出したときに、ロス検出部406からの依頼にしたがって再送要求先情報702を取得してもよい。つまり、ノード情報管理部409は、送信部402を介して、H-9またはI-11の問い合わせを任意のタイミングで管理サーバ204に送信することができる。すると、管理サーバ204は図6のステップS106で問い合わせに返答する。そして、送信部402は、返答を受信してノード情報管理部409に出力する。その結果、ノード情報管理部409は、再送要求先のIPアドレスとポート番号を認識する。また、ノード情報管理部409は、認識した再送要求先のIPアドレスを指定して任意のタイミングでpingコマンドを実行することにより、再送要求先と通信装置400との間のRTTを計測することができる。ノード情報管理部409は、計測結果を再送要求先情報702のRTTとして記録する。子ノード情報703aと703bは、異なる時点での異なる2つの状態の子ノード情報の例である。通信装置400のノード情報記憶部408が記憶する子ノード情報は、通信装置400の子ノードの数だけエントリを持つ。また、子ノード情報の各エントリは、子ノードのIPアドレス、子ノードのポート番号具体的には受信ポート番号、子ノードの送信可能総帯域幅、および子ノードと通信装置400の間のRTTを含む。実施形態によっては、子ノード情報の各エントリは、子ノードのノードIDをさらに含んでもよい。子ノード情報の各エントリはさらに、一時使用帯域幅と一時使用期限のペアを0個、1個、または複数個含む。図9では図示の都合上、一時使用帯域幅と一時使用期限のペアの数が0の場合、一時使用帯域幅と一時使用期限の列に-と表示してある。例えば、子ノード情報703aの1つ目のエントリに対応する子ノードは、IPアドレスが210.50.63.10であり、ポート番号が50004である。また、1つ目のエントリの送信可能総帯域幅が3Mbpsと例示されているが、これは、ノード情報管理部409が当該子ノードから図8と同様の送信可能総帯域幅の通知を受信したことがあり、受信した通知に3Mbpsと記録されていたということを示す。ノード情報管理部409は、子ノードと通信装置400の間のRTTも例えばpingコマンドなどを利用して任意のタイミングで計測し、計測結果を子ノード情報のRTTとして記録する。ノード情報管理部409は、例えば子ノードの登録直後にRTTの計測を行ってもよい。子ノード情報703aの1つ目のエントリには、例えば、RTTとして7msという計測結果が書き込まれている。また、子ノード情報703aの2つ目のエントリでは、IPアドレスが213.4.30.20であり、ポート番号が50003であり、送信可能総帯域幅が10Mbpsであり、RTTが3msである。なお、図9の子ノード情報703aは2つのエントリを含むが、どちらのエントリも、一時使用帯域幅と一時使用期限のペアを持たない。ところが、子ノード情報703bでは、1つ目のエントリが、以下のM-1とM-2のペアを含む。M-10.5Mbpsという一時使用帯域幅と、14時10分5.350秒という一時使用期限のペアM-20.3Mbpsという一時使用帯域幅と、14時10分5.372秒という一時使用期限のペア一時使用帯域幅と一時使用期限の詳細については後述するが、概要を説明すると以下のとおりである。上記M-1のペアは以下のN-1~N-3のことを示し、上記M-2のペアは以下のN-4~N-6のことを示す。N-1以前通信装置400が受信した再送要求に対応して、1つ目のエントリに対応する子ノードを、選択部411が責任ノードとして選んだ。N-2上記N-1の再送要求により要求されたデータパケットつまり特定情報のうち、1つ目のエントリに対応する子ノードに対応づけ部412が対応づけた部分は、送信可能総帯域幅の3Mbpsのうち、0.5Mbpsを消費する、と予測される。N-3上記N-1の再送要求により要求されたデータの送信は、14時10分5.350秒までに完了する、と予測される。すなわち、14時10分5.350秒以降は、0.5Mbpsが再び利用可能になる、と予測される。N-4上記N-1の再送要求とは別の再送要求を通信装置400がさらに受信し、選択部411は、1つ目のエントリに対応する子ノードを再度責任ノードとして選んだ。N-5上記N-4の再送要求により要求されたデータパケットのうち、1つ目のエントリに対応する子ノードに対応づけ部412が対応づけた部分は、0.3Mbpsを消費する、と予測される。N-6上記N-4の再送要求により要求されたデータの送信は、14時10分5.372秒までに完了する、と予測される。すなわち、14時10分5.372秒以降は、0.3Mbpsが再び利用可能になる、と予測される。つまり、一時使用帯域幅と一時使用期限のペアを持つエントリに対応する子ノードは、責任ノードとして選択されたノードである。また、一時使用帯域幅と一時使用期限のペアを持つエントリに対応する子ノードを根ノードとする部分グラフ中の、少なくとも1つのノードは、現在再送処理中であると推定される。さて、自ノード情報704aと704bは、異なる時点での異なる2つの状態の自ノード情報の例である。自ノード情報は、通信装置400自身のIPアドレスと、通信装置400自身のポート番号具体的には受信ポート番号と、通信装置400自身の送信可能帯域幅と、通信装置400の送信可能総帯域幅を含む。また、自ノード情報も、子ノード情報と同様に、一時使用帯域幅と一時使用期限のペアを0個、1個、または複数個含む。自ノード情報704aと704bの例では、通信装置400のIPアドレスは214.45.3.5であり、通信装置400のポート番号は50005であり、通信装置400の送信可能帯域幅は5Mbpsである。また、子ノード情報703aと703bに示すように、図9の例では子ノードの数が2であり、それぞれの子ノードから通知された送信可能総帯域幅は3Mbpsと10Mbpsである。したがって、式1より、通信装置400の送信可能総帯域幅は、18=5310Mbpsである。自ノード情報704aは一時使用帯域幅と一時使用期限のペアを含まない。他方、自ノード情報704bは、1.5Mbpsという一時使用帯域幅と、15時35分7.255秒という一時使用期限のペアを1個含む。つまり、自ノード情報704bは、以下のO-1~O-3のことを示す。O-1以前通信装置400が受信した再送要求に対応して、通信装置400自身を選択部411が責任ノードとして選んだ。O-2上記O-1の再送要求により要求されたデータパケットつまり特定情報のうち、通信装置400自身に対応づけ部412が対応づけた部分は、送信可能帯域幅の5Mbpsのうち、1.5Mbpsを消費する、と予測される。O-3上記O-1の再送要求により要求された再送は、15時35分7.255秒までに完了する、と予測される。すなわち、15時35分7.255秒以降は、1.5Mbpsが再び利用可能になる、と予測される。なお、図9の親ノード情報701、再送要求先情報702、子ノード情報703a~703b、および自ノード情報704a~704bはポート番号を含むが、実施形態によっては、これらの各情報がポート番号のフィールドを含まなくてもよい。例えば、データ配信アプリケーションにより固定的に一意のポート番号が決められている場合は、各種のノード情報自体がポート番号を含まなくてもよい。さて、続いて、図10を参照して、再送要求以外の制御パケットの受信を契機として図5の通信装置400が実行する処理について説明する。なお、再送要求の受信を契機とする処理については、図15~19とともに後述する。通信装置400の受信部401は、パケットを受信すると、例えばヘッダのタイプフィールドを参照することでパケットのタイプを判別する。判別したタイプが再送要求以外の制御パケットのいずれかであった場合、受信部401は、図10の処理を開始する。そして、ステップS201で受信部401は、受信した制御パケットが、親ノードからの離脱の通知であるか否かを判断する。受信した制御パケットが、親ノードからの離脱の通知である場合、受信部401は受信したパケットをノード情報管理部409に出力し、処理はステップS202に移行する。また、他の制御パケットが受信された場合、処理はステップS203に移行する。上記I-13のように、中継ノードは、論理ネットワーク100から離脱しようとするときに、各子ノードに対して、当該子ノードの新たな親ノードの候補として、当該中継ノード自身の親ノードを通知する。つまり、ステップS202は、I-13の通知を受信した子ノードにおける処理である。具体的には、ステップS202でノード情報管理部409は、今までの親ノードから通知された、新たな親ノードつまり、今まで親ノードの親ノードに対して、通信装置400を子ノードとして登録するよう要求する。また、ノード情報管理部409は、ノード情報記憶部408の自ノード情報から通信装置400の送信可能総帯域幅を読み取り、新たな親ノードに通信装置400の送信可能総帯域幅を通知する。なお、ステップS202における新たな親ノードに対する要求と通知は、例えば1つの制御パケットにより実現されてもよい。本実施形態では1つの制御パケットに要求と通知の双方が含まれるものとする。したがって、ステップS202でノード情報管理部409は、具体的には、新たな親ノードに送信するための1つの制御パケットを生成し、生成した制御パケットを、送信部402に送信させる。また、ノード情報管理部409は、親ノード情報701に新たな親ノードのIPアドレスとポート番号を記録する。ノード情報管理部409はさらに、新たな親ノードと通信装置400との間のRTTを計測し、親ノード情報701のRTTフィールドに計測結果を記録してもよい。そして、処理はステップS207に移行する。他方、受信部401が受信した制御パケットが、親ノードからの離脱の通知ではなかった場合、すなわち、既存または新規の子ノードからのメッセージであった場合、受信部401は、ステップS203において、メッセージの種類を判断する。そして、受信した制御パケットが、既存の子ノードからの離脱の通知であった場合、受信部401は受信したパケットをノード情報管理部409に出力し、処理はステップS204に移行する。また、受信した制御パケットが、新たに論理ネットワーク100に参加しようとするノードからの、子ノードとしての登録を求める要求であった場合、受信部401は受信したパケットをノード情報管理部409に出力し、処理はステップS205に移行する。あるいは、受信した制御パケットが、既存の子ノードからの送信可能総帯域幅の通知であった場合、受信部401は受信したパケットをノード情報管理部409に出力し、処理はステップS206に移行する。ステップS204でノード情報管理部409は、離脱の通知を送信した子ノードに対応するエントリを、ノード情報記憶部408内の子ノード情報から削除する。そして、処理はステップS207に移行する。なお、ステップS204におけるエントリの削除は、上記L-4のとおり、通信装置400自身の送信可能総帯域幅の変化を引き起こす原因の一つである。また、ステップS205でノード情報管理部409は、ノード情報記憶部408内の子ノード情報に新規エントリを追加する。そして、ノード情報管理部409は、新規エントリのIPアドレスフィールドに、要求の送信元のノードつまり新たな子ノードのIPアドレスを設定し、新規エントリのポート番号フィールドに、新たな子ノードから通知されたポート番号を設定する。ノード情報管理部409はさらに、新たな子ノードと通信装置400との間のRTTを計測して、新規エントリのRTTフィールドに計測結果を記録してもよい。なお、ステップS202に関して説明したように、本実施形態では、子ノードとしての登録を求める要求は、要求を送信するノード自身の送信可能総帯域幅の通知を兼ねる。そして、これから論理ネットワーク100に参加しようとする新たなノードは、最初は葉ノードとなることが明らかである。よって、新たなノードの送信可能総帯域幅とは、新たなノード自身の送信可能帯域幅に等しい。つまり、これから論理ネットワーク100に参加しようとする新たなノードは、参加を要求する時点での送信可能総帯域幅を認識すること可能であり、認識した送信可能総帯域幅を通知することが可能である。よって、ステップS205でノード情報管理部409は、さらに、新たなノードから通知された送信可能総帯域幅を、追加した新規エントリの送信可能総帯域幅フィールドに設定する。そして、処理はステップS207に移行する。また、ステップS206でノード情報管理部409は、ノード情報記憶部408の子ノード情報において、送信可能総帯域幅の通知を送信してきた子ノードに対応するエントリを検索する。ノード情報管理部409は、例えばIPアドレスを検索キーにすることで、送信可能総帯域幅の通知を送信してきた子ノードに対応するエントリを特定することができる。そして、ノード情報管理部409は、検索の結果として特定したエントリの送信可能総帯域幅を、通知された送信可能総帯域幅に書き換える。すると、処理はステップS207に移行する。さて、ネットワーク状況の変化に起因する通信装置400自身の送信可能帯域幅の変化を検出するための検出処理は、ノード情報管理部409によって、任意のタイミングで行われてよい。例えば、図10の例では、再送要求以外の制御パケットの受信を契機に、ノード情報管理部409がネットワーク状況を調べる。しかしもちろん、ノード情報管理部409は、再送要求以外の制御パケットの受信とは関係なく、定期的に検出処理を行ってもよい。ステップS207でノード情報管理部409は、ネットワーク状況に変化がないかを調査する。そして、ネットワーク状況に変化がある場合、処理はステップS208に移行し、ネットワーク状況に変化がない場合、処理はステップS209に移行する。なお、ノード情報管理部409は、例えばiperfなどのネットワーク帯域測定ツールを用いて、ステップS207の調査を行うこともできる。例えば、ノード情報管理部409は、ネットワーク帯域測定ツールを用いて、通信装置400が使用可能なネットワーク帯域幅を推定してもよい。説明の便宜上、推定結果が20Mbpsであったとする。すると、ノード情報管理部409は、データ配信アプリケーションが使用する帯域幅の最大値を、推定した帯域幅つまり20Mbps以下の範囲内で任意に決定する。説明の便宜上、決定された最大値が15Mbpsであったとする。ノード情報管理部409はさらに、再送以外の、本来のデータ配信で使用する帯域幅を、決定した最大値から減じることで、再送に利用可能な帯域幅すなわち送信可能帯域幅を算出する。例えば、本来のデータ配信で使用する帯域幅が12Mbpsであるとすると、ノード情報管理部409は、送信可能帯域幅として3=15-12Mbpsを算出する。ステップS207では、以上のようにして算出した新たな送信可能帯域幅が、ノード情報記憶部408に現在保持されている自ノード情報の送信可能帯域幅と等しいか否かということを、ノード情報管理部409が判断してもよい。二つの送信可能帯域幅が異なれば、ノード情報管理部409はネットワーク状況が変化したと判断する。さて、ステップS208では、ノード情報管理部409は、ステップS207で検出した変化に応じた新たな送信可能帯域幅を記録する。つまり、ノード情報管理部409は、ノード情報記憶部408内の自ノード情報の送信可能帯域幅を更新する。そして、処理はステップS209に移行する。ステップS209でノード情報管理部409は、自ノードつまり通信装置400自身の送信可能総帯域幅を計算する。そして、計算結果を、自ノード情報の送信可能総帯域幅フィールドに格納する。なお、ステップS209における計算は、式1にしたがった計算であり、より具体的には、自ノード情報の送信可能帯域幅と、子ノード情報の全エントリの送信可能総帯域幅の総和とを足す計算である。そして、ステップS209に続いて、ステップS210でノード情報管理部409は、親ノードが存在するか否かを判断する。つまり、ノード情報管理部409は、親ノード情報701が空であれば親ノードが存在しないと判断し、親ノード情報701が空でなければ親ノードが存在すると判断する。例えば、配信サーバ203におけるノード情報管理部409は、親ノードが存在しないと判断し、端末装置205A~205Lのノード情報管理部409は、親ノードが存在すると判断する。そして、親ノードが存在しない場合、図10の処理も終了する。逆に、親ノードが存在する場合、処理はステップS211に移行する。ステップS211でノード情報管理部409は、ステップS209で計算した送信可能総帯域幅を親ノードに通知するための制御パケットを生成し、生成した制御パケットを送信部402に出力する。すると、送信部402が制御パケットを親ノードに送信する。そして、図10の処理も終了する。例えば、図8のノードN21は、ノードN23から送信可能総帯域幅の通知603を受信すると図10の処理を開始する。そして、ノードN21のノード情報管理部409は、ステップS206で子ノード情報を更新し、ステップS211で親ノードN20宛の送信可能総帯域幅の通知605を生成する。その結果、ステップS211ではノードN21の送信部402が通知605をノードN20に送信する。さて、続いて、データパケットの配信に関する種々の処理について説明する。論理ネットワーク100の根ノードである配信サーバ203は、上記G-5のとおり、配信対象のコンテンツを生成または取得し、コンテンツをパケット化し、子ノードにデータパケットを送信する。また、中継ノードと葉ノードは、データパケットの受信を契機に図11の処理を実行する。さらに、中継ノードと葉ノードにおいては、図11の処理と並行して、再生処理部404がバッファ部403からデータパケットを読み出して再生処理を行う。図11は、データパケットの受信を契機として実行される処理のフローチャートである。つまり、中継ノードまたは葉ノードに相当する通信装置400の受信部401がデータパケットを受信すると、図11の処理が開始される。ステップS301で受信部401は、受信したデータパケットのシーケンス番号以下Qと表記するを抽出する。そして、受信部401は、抽出したシーケンス番号Qをロス検出部406に通知する。なお、本実施形態では各データパケットがシーケンス番号を含む。ストリーミングデータの配信システムでは、RTPRealtimeTransportProtocolがしばしば利用される。そして、RTPヘッダはシーケンス番号のフィールドを含む。ステップS301および他のステップで利用されるシーケンス番号は、例えばRTPヘッダに含まれるシーケンス番号でもよいし、RTPヘッダ以外の部分に含まれるシーケンス番号であってもよい。そして、次のステップS302でロス検出部406は、受信部401から通知されたシーケンス番号Qが、以前再送を要求した番号であるか否かを判断する。例えば、シーケンス番号が35番のデータパケットの消失をロス検出部406が以前検出したことがあり、今回受信部401が35番のデータパケットを受信した場合、受信部401から通知されたシーケンス番号Qは、以前再送を要求した番号である。そして、受信部401から通知されたシーケンス番号Qが、以前再送を要求した番号である場合、処理はステップS309に移行する。逆に、受信部401から通知されたシーケンス番号Qが、以前再送を要求した番号ではない場合、処理はステップS303に移行する。ステップS303でロス検出部406は、パケットロスの有無を検出する。ここで、通信装置400が受信済みの最新のデータパケットのシーケンス番号をQlastと表記し、最新受信シーケンス番号と呼ぶことにする。すると、今回受信される予定のデータパケットのシーケンス番号は、Qlast1である。よって、ロス検出部406は、式2が成り立つときにパケットロスを検出する。Qlast10なお、式9において、TstartとTendは、図12に示すとおり、受信部401が受信した再送要求パケット801に設定されている取得期限と完了期限の値である。また、式9において、QfromとQtoは、受信部401が受信した再送要求パケット801に設定されている開始番号と終了番号の値である。以下、式9の意味について、変数Uが初期化された状態の場合と、変数Uの値が後述のステップS511で更新された場合に分けて説明する。ステップS502で変数Uが初期化された状態でステップS505が実行された場合、U=Qfromである。よって、変数Uが初期化された状態のとき、式9は、式10のように書き換えられる。Tstartα0式10は、受信部401が受信した再送要求パケット801で要求された最初のデータパケットつまりQfrom番のデータパケットの送信を、通信装置400がi番目の子ノードに委譲しても問題ないか否かに関する制約条件を示す。具体的には、通信装置400がi番目の子ノードにデータパケットの送信を委譲する場合に生じると予測される遅延αよりも、再送要求パケット801で指定された取得期限Tstartの示す時間の方が長ければ、委譲は許容可能である。そして、遅延αは、以下のQ-1~Q-4を含む。Q-1通信装置400自身の内部処理による遅延Q-2通信装置400がi番目の子ノードにデータパケットの送信を委譲するための通知すなわち新たな再送要求パケット801の送信にかかる通信遅延Q-3i番目の子ノードの内部処理による遅延Q-4データパケットの再送を要求した要求ノードに宛ててi番目の子ノードがデータパケットを送信する場合にかかる通信遅延と、要求ノードに宛てて通信装置400自身がデータパケットを送信する場合にかかる通信遅延との差そして、上記Q-1~Q-4をいかに見積もるかは、実施形態に応じて様々であってよい。つまり、遅延αを見積もるための近似モデルは実施形態に応じて様々である。例えば、Q-1の遅延は、通信装置400を実現するコンピュータ300のCPU301の性能に依存する。そこで、通信装置400は、予め、例えばダミーのノード情報とダミーの再送要求パケットを用いて図16~17の処理を実行し、実行にかかった時間を、Q-1の遅延時間として計測してもよい。あるいは、実施形態によっては、予備実験などから、CPU301の性能を示す指標例えばクロック周波数の関数としてQ-1の遅延を表せる場合もある。その場合、選択部411は、CPU301の性能を表す指標から、当該関数にしたがって、Q-1の遅延を計算してもよい。同様に、Q-3の遅延も、i番目の子ノードを実現する他のコンピュータ300のCPU301の性能に依存する。また、Q-3の遅延も、Q-1の遅延と類似の方法によって、i番目の子ノードが予め計測することにより、またはi番目の子ノードが関数から予め計算することにより、得ることが可能である。そして、i番目の子ノードが、計測または計算によって得たQ-3の遅延を、親ノードである通信装置400に予め通知することにより、通信装置400特に負荷分散処理部410の選択部411は、Q-3の遅延を認識することができる。あるいは、i番目の子ノードは、i番目の子ノードのCPU301の性能を示す指標を、親ノードである通信装置400に通知してもよい。なお、Q-3の遅延自体が通知される場合も、i番目の子ノードのCPU301の性能を示す指標が通知される場合も、i番目の子ノードからの通知は、例えば、図8や図10に関して説明した送信可能総帯域幅の通知と同じ制御パケットに含まれていてもよい。通知を受信した通信装置400は、ノード情報記憶部408内の子ノード情報に、i番目の子ノードから通知された内容を記録することができる。そして、選択部411は、子ノード情報を参照し、必要に応じて計算を行うことにより、Q-3の遅延を認識することができる。もちろん、実施形態によっては、より簡素な近似モデルにしたがって選択部411がQ-1とQ-3の遅延を認識してもよい。例えば、論理ネットワーク100内のすべてのノードは、ある一定レベル以上の性能のCPU301を有するという仮定に基づく近似モデルが採用されてもよい。そして、選択部411は、上記一定レベルのCPU301による内部遅延として想定される定数値を、Q-1とQ-3の遅延と見なしてもよい。また、Q-2の遅延は、通信装置400とi番目の子ノードとの間のRTTの半分と見積もることが妥当である。そして、通信装置400とi番目の子ノードとの間のRTTは、図9に関して説明したとおり、子ノード情報の一部として、ノード情報記憶部408に記録されている。したがって、選択部411は、子ノード情報を参照することにより、Q-2の遅延を認識することができる。ところで、詳しくは後述するが、Q-4の時間の長さは、論理ネットワーク100のトポロジが変化せずに同じ要求ノードからの再送要求が2回以上生じる場合は、2回目以降の再送では、実測値に基づく見積もりが可能である。しかし、ある要求ノードからの初めての再送要求のときには、Q-4の時間の長さを見積もる根拠となり得る実測値は存在しないので、Q-4の時間の長さは何らかの近似モデルによって見積もられる。そこで、図18と図19を参照して、2つの近似モデルの例を説明する。図18と図19は、取得期限に関する制約条件が満たされるか否かということを、それぞれ第1と第2の近似モデルによって判断する例を説明する図である。また、図18と図19は、図1のようにノードN5が最初に再送要求をノードN3に送信する場合に行われる、ノードN3からノードN6への委譲とノードN6からノードN12への委譲の例を示す。また、図18と図19においては、ノードNjからノードNkまでの通信遅延をDj,kと表記する。通信遅延Dj,kは、ノードNjとノードNkの間のRTT以下、RTTj,kと表記するの半分と見なせる。よって、任意のjとkについて、Dj,k=Dk,j=RTTj,k/2である。ノードNjとノードNkは、いずれも、予めRTTj,kを計測することにより、再送要求を受信する前に通信遅延Dj,kすなわちDk,jを認識することができる。また、図18と図19においては、ノードNjの内部処理による遅延をIjと表記する。ノードNjにとっての遅延Ijは、上記Q-1の遅延である。また、ノードNjの親ノードがノードNkであるとき、ノードNkにとっての遅延Ijは、上記Q-3の遅延である。そして、Q-1とQ-3に関して説明したとおり、ノードNjとNkのいずれも、何らかの方法により、再送要求を受信する前に遅延Ijを認識することが可能である。また、図1、18、および19の例では、データパケットの消失を契機として再送を要求する要求ノードはノードN5であり、ノードN5にとっての再送要求先はノードN3である。そして、図14のステップS404に関して説明したように、ノードN5が再送要求パケット801に取得期限として設定する値は、ステップS402でノードN5の再送要求部407が計算した時間Lstartから、RTT5,3を引いた値である。図18と図19では、ノードN5が再送要求パケット801に取得期限として設定する値をTaと表記してある。式7から、ノードN5が図1のステップS20で送信する再送要求パケット801の取得期限の値Taは、式11のように表される。そして、式11は図18と図19に表現されているとおりである。TaLstartRTT53Lstartよって、図1のステップS20で送信された再送要求パケット801を受信したノードN3にとっては、図16のステップS505の判断に用いる式9のTstartの値が、図18および19の値Taである。そして、上記のとおり、U=Qfromの初期状態においては、式9は式10と同値である。また、式10の遅延αは、上記Q-1~Q-4を含む。そして、図1のステップS20で送信された再送要求パケット801を受信したノードN3にとっては、Q-1の遅延は、図18に示すとおりノードN3自身の内部遅延I3である。また、ノードN3が図16のステップS505で1番目の子ノードとしてノードN6に注目しているとする。すると、図18に示すとおり、ノードN3にとってのQ-2の遅延は遅延D3,6であり、ノードN3にとってのQ-3の遅延は子ノードN6の内部遅延I6である。そして、図18に示す近似モデルは、第1のノードから第2のノードまでの通信遅延を、第1のノードから第3のノードまでの通信遅延と第3のノードから第2のノードまでの通信遅延との和によって近似するモデルである。つまり、図18の近似モデルによれば、ノードN3は、責任ノードの候補として子ノードN6に注目する場合に、ノードN6から要求ノードN5への通信遅延D6,5を、式12のように近似する。D65≒D63D35図16のステップS505の判断を行うノードN3の選択部411にとってのQ-4の時間の長さは、D6,5-D3,5である。よって、式12の近似のもとでは、ノードN3の選択部411にとってのQ-4の時間の長さは、遅延D6,3と等しい。以上より、ノードN3の選択部411にとって、式10の遅延αは、具体的には、式13のとおりである。αI3D36I6D63すなわち、要求ノードN5からの再送要求パケット801を受信したノードN3の選択部411にとって、式10は、式14のとおりである。Ta0なお、図18では、式14の左辺の値をTbと表記してある。図18の近似モデルが採用される実施形態では、ノードN3の選択部411は、図16のステップS505において、具体的には、値Tbが0より大きいか否かを判断する。ここで説明の便宜上、図18に例示するようにTb>0であるとする。また、説明の便宜上、仮に後述のステップS507の条件も満たされるとする。すると、詳しくは図16のステップS508~S509に関して後述するが、ノードN3は、子ノードN6に再送を委譲するための新たな再送要求パケット801を作成し、作成した再送要求パケット801を子ノードN6に送信する。そして、作成される新たな再送要求パケット801の取得期限としてノードN3が設定する値は、図18にTcと示す値である。値Tcは、具体的には式15のとおりである。TcTaTbI6そして、取得期限として値Tcが設定された再送要求パケット801を図1のステップS30で受信したノードN6の負荷分散処理部410は、図16~17の処理を開始する。すると、ノードN6の選択部411にとっての式9と10の取得期限Tstartの値は、式15の値Tcである。また、ノードN6においても、U=Qfromの初期状態では、式9は式10と同値である。そして、ノードN6にとっては、Q-1の遅延はノードN6自身の内部遅延I6である。また、ノードN6が図16のステップS505で1番目の子ノードとしてノードN12に注目しているとする。すると、図18に示すとおり、ノードN6にとってのQ-2の通信遅延は遅延D6,12であり、ノードN6にとってのQ-3の遅延は子ノードN12の内部遅延I12である。そして、図18の近似モデルによれば、ノードN6は、責任ノードの候補として子ノードN12に注目する場合に、ノードN12から要求ノードN5への通信遅延D12,5を、式16のように近似する。D125≒D126D65また、図16のステップS505の判断を行うノードN6の選択部411にとってのQ-4の時間の長さは、D12,5-D6,5である。よって、式16の近似のもとでは、ノードN6の選択部411にとってのQ-4の時間の長さは、遅延D12,6と等しい。以上より、ノードN6の選択部411にとって、式10の遅延αは、具体的には、式17のとおりである。αI6D612I12D126すなわち、親ノードN3から再送要求パケット801を受信した子ノードN6の選択部411にとって、式10は式18のとおりである。Tc0なお、図18では、式17の左辺の値をTdと表記してある。図18の近似モデルが採用される実施形態では、ノードN6の選択部411は、図16のステップS505において、具体的には、値Tdが0より大きいか否かを判断する。ここで説明の便宜上、図18に例示するようにTd>0であるとする。また、説明の便宜上、仮に後述のステップS507の条件も満たされるとする。すると、詳しくは図16のステップS508~S509に関して後述するが、ノードN6は、子ノードN12に再送を委譲するための新たな再送要求パケット801を作成し、作成した再送要求パケット801を子ノードN12に送信する。そして、作成される新たな再送要求パケット801の取得期限としてノードN6が設定する値は、図18にTeと示す値である。値Teは、具体的には式19のとおりである。TeTcTdI12そして、取得期限として値Teが設定された再送要求パケット801を図1のステップS33で受信したノードN12の負荷分散処理部410は、図16~17の処理を開始する。以上のように、再送要求パケット801の取得期限Tstartの値は、再送要求パケット801を受信したノード自身がデータパケットの送信を行うと仮定した場合に、当該ノードはいつまでに送信を開始する必要があるかという制約条件を示す。例えば、図18のように、値Taが設定された再送要求パケット801は、ノードN3に受信される。そして、値Taは、ノードN3がデータパケットをノードN5に送信する場合は、ノードN3は値Taが示す時間以内にデータパケットの送信を開始しなくてはならないという制約条件を示す。同様に、図18の例では、値Tcが設定された再送要求パケット801は、ノードN6に受信される。そして、値Tcは、ノードN6がデータパケットをノードN5に送信する場合は、ノードN6は値Tcが示す時間以内にデータパケットの送信を開始しなくてはならないという制約条件を示す。同様に、図18の例では、値Teが設定された再送要求パケット801は、ノードN12に受信される。そして、値Teは、ノードN12がデータパケットをノードN5に送信する場合は、ノードN12は値Teが示す時間以内にデータパケットの送信を開始しなくてはならないという制約条件を示す。以上例示したとおり、ある再送要求パケット801に取得期限として設定される値は、当該再送要求パケット801を受信するノード自身がデータパケットの送信を行う場合についての制約条件を表す。そして、再送の委譲のたびに、何らかの遅延が生じる。したがって、再送の委譲のたびに、新たな再送要求パケット801に取得期限として設定される値は、適宜の近似モデルに基づいて見積もられた遅延αに基づいて、順次減らされてゆく。例えば、図18のように、取得期限として設定される値は、再送の委譲のたびに、値Taから値Tcへ、値Tcから値Teへ、というように順次減らされてゆく。ところで、上記の図18の近似モデルとは別の近似モデルを採用する実施形態も可能である。具体的には、Q-4の時間の長さに関して、図19に示す近似モデルが採用されてもよい。図19に示す近似モデルは、第1のノードと第2のノードの間の物理ネットワーク上の距離が比較的近い場合に、第1のノードから第3のノードまでの通信遅延と第2のノードから第3のノードまでの通信遅延を同じと見なす近似モデルである。図19の近似モデルは、以下に説明する場合に特に好適である。ある種のALMシステムでは、新規ノードが配信ツリーへ参加しようとするときに、物理ネットワーク上で新規ノードに近いノードが優先的に親ノードとして選ばれる。以下、説明の便宜上、このような親ノードの選択アルゴリズムを物理距離優先アルゴリズムと呼ぶことにする。物理距離優先アルゴリズムによれば、配信遅延の短縮が期待される。例えば図1の論理ネットワーク100が、物理距離優先アルゴリズムによって構築された配信ツリーであるとする。すると、ノードN3とN6の間の物理ネットワーク上の距離は近いという蓋然性が高く、ノードN6とN12の間の物理ネットワーク上の距離は近いという蓋然性も高い。なお、2つのノードの間の物理ネットワーク上での距離は、例えば、2つのノードの間に存在するルータの数と定義されてもよい。そして、親ノードと子ノードの間の物理ネットワーク上の距離が近い場合、親ノードから或るノードまでの通信遅延と、子ノードから当該或るノードまでの通信遅延は、ほとんど同じであると推定される。つまり、上記2つの通信遅延の差は、わずかである。そこで、図19の近似モデルでは、親ノードN3と子ノードN6の間の物理ネットワーク上の距離は近いという推定にしたがい、ノードN3からノードN5までの通信遅延とノードN6からノードN5までの通信遅延を同じと見なす近似が行われる。同様に、図19の近似モデルでは、親ノードN6と子ノードN12の間の物理ネットワーク上の距離は近いという推定にしたがい、ノードN6からノードN5までの通信遅延とノードN12からノードN5までの通信遅延を同じと見なす近似が行われる。すなわち、図19の近似モデルによれば、通信遅延は式20のように近似される。D35≒D65≒D125図19および式20に例示する近似モデルによれば、上記Q-4の時間の長さは、ゼロと見積もられる。もちろん、実際には、多くの場合において、通信遅延D6,5と通信遅延D3,5の差Tfは厳密にはゼロではなく、通信遅延D12,5と通信遅延D3,5の差Tgも厳密にはゼロではない。しかしながら、差Tfの絶対値は小さいと推定され、差Tgの絶対値も小さいと推定される。したがって、Q-4の時間の長さは、ゼロと見積もられる。したがって、図19の近似モデルのもとでは、図16のステップS505の判断を行うノードN3の選択部411にとって、式10の遅延αは、具体的には、式21のとおりである。αI3D36I6すなわち、要求ノードN5からの再送要求パケット801を受信したノードN3の選択部411にとって、式10は、式22のとおりである。Ta0なお、図19では、式22の左辺の値をThと表記してある。図19の近似モデルが採用される実施形態では、ノードN3の選択部411は、図16のステップS505において、具体的には、値Thが0より大きいか否かを判断する。ここで説明の便宜上、図19に例示するようにTh>0であるとする。また、説明の便宜上、仮に後述のステップS507の条件も満たされるとする。すると、詳しくは図16のステップS508~S509に関して後述するが、ノードN3は、子ノードN6に再送を委譲するための新たな再送要求パケット801を作成し、作成した再送要求パケット801を子ノードN6に送信する。そして、作成される新たな再送要求パケット801の取得期限としてノードN3が設定する値は、図19にTiと示す値である。値Tiは、具体的には式23のとおりである。TiTaThI6そして、取得期限として値Tiが設定された再送要求パケット801を図1のステップS30で受信したノードN6の負荷分散処理部410は、図16~17の処理を開始する。すると、ノードN6の選択部411にとっての式9と10の取得期限Tstartの値は、式23の値Tiである。また、ノードN6においても、U=Qfromの初期状態では、式9は式10と同値である。そして、ノードN6にとっては、Q-1の遅延はノードN6自身の内部遅延I6である。また、ノードN6が図16のステップS505で1番目の子ノードとしてノードN12に注目しているとする。すると、図19に示すとおり、ノードN6にとってのQ-2の通信遅延は遅延D6,12であり、ノードN6にとってのQ-3の遅延は子ノードN12の内部遅延I12である。そして、図19の近似モデルでは、上記のとおりQ-4の時間の長さはゼロと見積もられる。したがって、ノードN6の選択部411にとって、式10の遅延αは、具体的には、式24のとおりである。αI6D612I12すなわち、親ノードN3から再送要求パケット801を受信した子ノードN6の選択部411にとって、式10は式25のとおりである。Ti0なお、図19では、式25の左辺の値をTjと表記している。図19の近似モデルが採用される実施形態では、ノードN6の選択部411は、図16のステップS505において、具体的には、値Tjが0より大きいか否かを判断する。ここで説明の便宜上、図19に例示するようにTj>0であるとする。また、説明の便宜上、仮に後述のステップS507の条件も満たされるとする。すると、詳しくは図16のステップS508~S509に関して後述するが、ノードN6は、子ノードN12に再送を委譲するための新たな再送要求パケット801を作成し、作成した再送要求パケット801を子ノードN12に送信する。そして、作成される新たな再送要求パケット801の取得期限としてノードN6が設定する値は、図19にTkと示す値である。値Tkは、具体的には式26のとおりである。TkTiTjI12そして、取得期限として値Tkが設定された再送要求パケット801を図1のステップS33で受信したノードN12の負荷分散処理部410は、図16~17の処理を開始する。以上のように、どのような近似モデルが採用されるにしろ、再送要求パケット801に取得期限Tstartとして設定される値は、再送要求パケット801を受信したノード自身がデータパケットの送信を行う場合の送信開始期限に関する制約条件を示す。よって、選択部411は、i番目の子ノードが責任ノードとして選択可能か否かを判断する際には、i番目の子ノードつまり、もし責任ノードとして選択されれば新たな再送要求パケット801を受信することになるノードの内部処理遅延を考慮に入れる。他方、i番目の子ノードが責任ノードとして実際に選択された場合にi番目の子ノード宛に送信される新たな再送要求パケット801の取得期限の計算においては、i番目の子ノードの内部処理遅延は減算されない。なぜなら、i番目の子ノードの内部処理遅延は、新たな再送要求パケット801をi番目の子ノードが受信した後に生じる遅延だからである。ここで、図16のステップS505の説明に戻る。図18~19の例は、U=Qfromという初期状態におけるステップS505の判断の例である。しかし、変数Uの値は、後のステップS511で更新されて、開始番号Qfromより大きくなる場合がある。また、U>Qfromのとき、図13からも明らかなとおり、U番のデータパケットの取得期限はQfrom番のデータパケットの取得期限より遅い。そして、U番とQfrom番のデータパケットの取得期限の差は、U-Qfrom個のデータパケットの消費にかかる時間である。ここで、受信部401が受信した再送要求パケット801に指定されている完了期限Tendと取得期限Tstartの差は、図13~14からも理解されるように、Qto-Qfrom1個のデータパケットの消費にかかる時間である。よって、U-Qfrom個のデータパケットの消費にかかる時間は、式27のとおりである。×つまり、U番のデータパケットの取得期限は、Qfrom番のデータパケットの取得期限よりも、式27の時間のぶんだけ遅い。式9は、以上説明したような、U番とQfrom番のデータパケットの取得期限の差を考慮に入れた式であり、式10の左辺に式27の時間を足した式である。例えば、Qfrom=10の場合、受信部401が受信した再送要求パケット801に設定されている取得期限Tstartは、より具体的には、10=Qfrom番のデータパケットの取得期限を示す。また、例えば、Qto=15の場合、受信部401が受信した再送要求パケット801に設定されている完了期限Tendは、より具体的には、15=Qto番のデータパケットの完了期限を示す。また、上記のQfrom=10かつQto=15の場合において、さらにU=12と仮定して、U>Qfromの場合の式9について説明すれば次のとおりである。この場合、送信が要求されているデータパケットの個数は6=Qto-Qfrom1個であり、既に10番と11番の2=U-Qfrom個のデータパケットはいずれかの責任ノードに割り当て済みである。よって、12=U番のデータパケットの取得期限は、式27の時間つまりTend-Tstart×2/6だけ、10番のデータパケットの取得期限Tstartよりも遅い。以上説明したとおり、式9は変数Uの値によらず適用可能なように一般化された式である。よって、選択部411は、ステップS505において式9が満たされるか否かを判断する。選択部411は、式9により、i番目の子ノードは、U番のデータパケットの取得期限に間に合うようにU番以降のデータパケットを送信することを保証できるか否かを判断することができる。そして、式9が満たされる場合、i番目の子ノードに、何番のデータパケットまでを割り当てることが可能かを判断するため、処理はステップS506に移行する。逆に、式9が満たされない場合、選択部411は、i番目の子ノードは責任ノードとして適していないと判断する。そして、選択部411は、責任ノードの候補として他の子ノードに注目するために、続いてステップS513の処理を実行する。ステップS506で選択部411は、i番目の子ノードが完了期限に間に合うように送信を保証することが可能な、Qto番以下で最大の番号を計算する。そして、選択部411は、計算結果を変数Vに代入する。つまり、選択部411は、式28と29をともに満たす最大の番号Vを計算する。なお、番号Vは整数である。α×pSizeBβ0式35は、式9の遅延αを内部処理遅延Iselfで置き換えた式である。式35が満たされる場合、選択部411は、通信装置400自身は、U番のデータパケットの取得期限に間に合うようにU番以降のデータパケットを送信することができると判断し、処理はステップS515に移行する。逆に、式35が満たされない場合、選択部411は通信装置400自身は責任ノードとして適していないと判断し、処理はステップS521に移行する。ステップS515で選択部411は、通信装置400自身が完了期限に間に合うように送信することが可能な、Qto番以下で最大の番号を計算する。そして、選択部411は、計算結果を変数Vに代入する。つまり、選択部411は、式36と37をともに満たす最大の番号Vを計算する。なお、式37は式29と同じである。Iself×pSizeBself0そして、次のステップS603で選択部411は、集合Cに属する子ノードの使用可能帯域幅の和以下Bsumと表記するを計算する。具体的には、選択部411は集合Cに属する各子ノードについて、子ノード情報における当該子ノードのエントリの送信可能総帯域幅から、当該エントリに含まれる一時使用帯域幅の合計を引くことで、各子ノードの使用可能帯域幅を計算する。そして、選択部411は、集合Cに属する各子ノードについて計算した使用可能帯域幅の総和を計算する。以上のようにして得られる総和が帯域幅Bsumである。なお、後のステップS609の処理のために、選択部411は、各子ノードについて計算した使用可能帯域幅の値を記憶する。また、上記の定義からも明らかなように、或る子ノードの使用可能帯域幅は、論理ネットワーク100のトポロジにおいて当該或る子ノードを根ノードとする部分グラフに含まれるノードが再送に使うことのできる、現状における余力の総和である。続いて、ステップS604で選択部411は、受信部401が受信した再送要求パケット802に指定されているビットレートBreqと、計算した帯域幅Bsumを比較する。なお、図9で送信可能総帯域幅や一時使用帯域幅がMbps単位で示されていることからも明らかなとおり、本実施形態の帯域幅は、換言すればビットレートである。したがってビットレートBreqと帯域幅Bsumは比較可能である。そして、Breq≦Bsumの場合、子ノードだけで要求されたデータパケットの送信に対処することが可能であり、通信装置400自身を責任ノードとして選択する必要はない。よって、処理はステップS605に移行する。逆に、Breq>Bsumの場合、子ノードだけでは要求されたデータパケットの送信に対処しきれない。そこで、選択部411が通信装置400自身も責任ノードとして選択するため、処理はステップS606に移行する。以上のように、本実施形態においてはステップS604の判断によって、子ノードの方が通信装置400よりも優先的に責任ノードとして選ばれる。ところで、上記の仮定のとおり再送リストがソートされている場合、再送リスト中の或る1つのシーケンス番号以下Vと表記するを用いて、通信装置400が送信を保証するデータパケットの範囲を示すことができる。例えば、再送リストが301,304,307,310というリストでありV=307であるとすると、通信装置400が送信を保証するのは、シーケンス番号が301番と304番と307番の3つのデータパケットである。シーケンス番号Vは、以下のようにステップS605またはS608で設定される。ステップS605では、選択部411は、受信部401が受信した再送要求パケット802の再送リスト中の最後の番号QMを、変数Vに代入する。そして、処理はステップS609に移行する。また、ステップS606で選択部411は、集合Cに通信装置400自身を加える。つまり、選択部411は、通信装置400自身を責任ノードとして選択する。さらに、次のステップS607で選択部411は、ノード情報記憶部408の自ノード情報を参照する。そして、選択部411は、通信装置400自身の送信可能帯域幅から、通信装置400の一時使用帯域幅の合計を引いて使用可能帯域幅すなわち式36の帯域幅Bselfを計算する。そして、選択部411は、帯域幅Bsumを、計算した通信装置400の使用可能帯域幅Bselfのぶんだけ増やす。また、次のステップS608で選択部411は、帯域幅Bsumの送信でも期限に間に合う最大の番号を計算し、計算結果を変数Vに代入する。具体的には、選択部411は式39を満たす最大の値を計算し、計算結果を変数Vに代入する。count×pSizeBreq≧count×pSizeBsumなお、式39における関数countzは、受信部401が受信した再送要求パケット802の再送リストにおいて、z番以下のシーケンス番号の数である。例えば、受信部401が受信した再送要求パケット802の再送リストが、102,105,108,111というリストである場合、count108=3である。式39の左辺は、受信部401が受信した再送要求パケット802の再送リストに指定されているM個すべてのデータパケットを、指定されたビットレートBreqで送信するのにかかる時間である。また、式39の右辺は、受信部401が受信した再送要求パケット802の再送リストに指定されたデータパケットのうち、V番以下のシーケンス番号を持つデータパケットを、使用可能帯域幅Bsumのビットレートで送信するのにかかる時間である。よって、式39を満たす最大値は、帯域幅Bsumでの送信でも期限に間に合う最大の番号である。例えば、countQM=M=12であり、かつ、Bsum=0.7×Breqだとする。この場合、受信部401が受信した再送要求パケット802の再送リストの中から、countV=8を満たす番号Vが選ばれる。なぜなら、式39より、番号Vは、12×0.7≧countVを満たす最大の整数だからである。以上のようにしてステップS605またはS608において、通信装置400が送信を保証するデータパケットの範囲が決定されると、続いて、処理はステップS609に移行する。そして、ステップS609で対応づけ部412は、使用可能帯域幅を重みとして用いた重み付けラウンドロビンアルゴリズムにより、集合Cに属するノードに、受信部401が受信した再送要求パケット802の再送リスト中のV番までのデータパケットを分配する。ここで、図22を参照して、ステップS609の具体例を説明する。図22はビットレートに応じて割り当てられたデータパケットの送信を例示する図である。図22では、上から下に向かう時間軸が矢印で示されている。また、図22では、再送要求パケット802内の再送リストが吹き出し内に示されている。図22中の他の要素については後述する。例えば、図1の例において、ステップS20でノードN5からノードN3に送信される再送要求パケット802の再送リストが、101番から112番までの12個のシーケンス番号を含むとする。そして、再送要求パケット802を受信したノードN3が図20~21の処理を開始し、式40のような集合Cが得られたとする。CN6N7N8また、説明の便宜上、ノードN6、N7、およびN8それぞれの使用可能帯域幅の比が、3:2:1であるとする。この場合、ノードN3の対応づけ部412は、ステップS609において、ノードN6に6=12×3/321個、ノードN7に4=12×2/321個、ノードN8に2=12×1/321個のデータパケットを割り当てる。より具体的には、ステップS609で対応づけ部412は、受信部401が受信した再送要求パケット802の再送リスト中の番号を、重み付けラウンドロビンアルゴリズムによって順に、集合Cに属するいずれかのノードに割り当てる。その結果、例えば図22の例では、101~112番のデータパケットは、次のR-1~R-12のようにいずれか1つのノードに対応づけられる。R-1101番のデータパケットはノードN6に対応づけられる。R-2102番のデータパケットはノードN7に対応づけられる。R-3103番のデータパケットはノードN6に対応づけられる。R-4104番のデータパケットはノードN8に対応づけられる。R-5105番のデータパケットはノードN7に対応づけられる。R-6106番のデータパケットはノードN6に対応づけられる。R-7107番のデータパケットはノードN6に対応づけられる。R-8108番のデータパケットはノードN7に対応づけられる。R-9109番のデータパケットはノードN6に対応づけられる。R-10110番のデータパケットはノードN8に対応づけられる。R-11111番のデータパケットはノードN7に対応づけられる。R-12112番のデータパケットはノードN6に対応づけられる。以上のR-1~R-12に示した対応づけは、図22の吹き出しの中に示されているとおりである。また、図1のステップS30でノードN3がノードN6に送信する再送要求パケット802の再送リストは、図22の例では101,103,106,107,109,112というリストである。ここで、仮に、再送要求パケット802を受信したノードN6が、図1と同様に子ノードN12とN13を責任ノードとして選ぶとする。つまり、図20~21の処理を行うノードN6の選択部411が、式41のような集合Cを得たとする。CN12N13また、ノードN12とN13それぞれの使用可能帯域幅の比が2:1であるとする。この場合、ノードN6の対応づけ部412は、ステップS609において、ノードN12に4=6×2/21個、ノードN13に2=6×1/21個のデータパケットを割り当てる。より具体的には、ステップS609でノードN6の対応づけ部412は、受信部401が受信した再送要求パケット802の再送リスト中の番号を、重み付けラウンドロビンアルゴリズムによってノードN12またはN13に割り当てる。その結果、例えば図22の例では、101,103,106,107,109,112という再送リスト中に指定された6つのシーケンス番号のデータパケットは、次のS-1~S-6のように、ノードN12またはN13に対応づけられる。S-1101番のデータパケットはノードN12に対応づけられる。S-2103番のデータパケットはノードN13に対応づけられる。S-3106番のデータパケットはノードN12に対応づけられる。S-4107番のデータパケットはノードN12に対応づけられる。S-5109番のデータパケットはノードN13に対応づけられる。S-6112番のデータパケットはノードN12に対応づけられる。以上のS-1~S-6に示した対応づけは、図22の吹き出しの中に示されているとおりである。なお、図22では説明の簡単化のために、集合Cに属するノードの使用可能帯域幅の比が単純な整数比の場合を例示した。しかし、使用可能帯域幅の比が単純な整数比でない場合にも、もちろん、重み付けラウンドロビンアルゴリズムで利用可能な適宜の端数処理によって、対応づけ部412は、ステップS609での割り当てを適切に遂行することができる。ここで、図20~21の説明に戻る。ステップS609で各責任ノードに対応づけ部412がデータパケットを適宜対応づけた後、処理は図21のステップS610に移行する。そして、ステップS610で負荷分散処理部410は、集合C内のノードに順に注目するためのインデックスiを1に初期化する。続いて、ステップS611で負荷分散処理部410は、i≦|C|か否かすなわち、集合Cに属するすべてのノードに注目し終えたか否かを判断する。なお、|C|は集合Cの要素数である。もし、i≦|C|であれば、まだ負荷分散処理部410が注目していない責任ノードが残っている。そこで、負荷分散処理部410は集合Cに属するi番目のノードに注目する。そして、処理はステップS612に移行する。逆に、i>|C|であれば、集合Cのすべてのノードに負荷分散処理部410は既に注目し終わっている。そこで、処理はステップS619に移行する。ステップS612で要求生成部413は、集合Cに属するi番目のノード用のビットレートを計算する。ここで、説明の便宜上、受信部401が受信した再送要求パケット802の再送リストの要素数が図12のとおりMであるものとする。また、ステップS609において集合C中のi番目のノードに対応づけ部412が割り当てたデータパケットの数をXiと表記する。すると、ステップS612における計算は式42のように表される。Breq2Breq×XiMすなわち、要求生成部413は、受信部401が受信した再送要求パケット802に指定されたビットレートBreqを、各責任ノードが送信を保証するデータパケットの数に応じて、各責任ノードに比例配分する。例えば、図22の例で、ノードN3の要求生成部413は、ノードN6用のビットレートとして、ノードN5から受信した再送要求パケット802に指定されていたビットレートの1/2=6/12を得る。そして、次のステップS613で負荷分散処理部410は、集合C中のi番目のノードが通信装置400自身であるか否かを判断する。そして、集合C中のi番目のノードが通信装置400自身である場合、処理はステップS614に移行する。逆に、集合C中のi番目のノードが通信装置400のいずれかの子ノードである場合、処理はステップS615に移行する。ステップS614で再送処理部414は、対応づけ部412が通信装置400自身に割り当てたXi個のデータパケットの送信を開始する。再送処理部414が実際にXi個のデータパケットを送信する処理は、例えば、図20~21の処理の子プロセスであってもよいし、図20~21の処理とは別のスレッドであってもよい。なお、ステップS614で再送処理部414は、データパケットの送信を開始するための処理を行う。そして、次のステップS617以降の処理が行われるのと並行して、再送処理部414は実際のデータパケットの送信を行う。具体的には、再送処理部414は、例えば、ステップS614において、対応づけ部412が通信装置400に対応づけたXi個のデータパケットの送信をスケジューリングする。そして、再送処理部414は、スケジューリング結果にしたがって、Xi個のデータパケットの送信を制御する。例えば、再送処理部414は、通信装置400に割り当てられた最初のデータパケットの送信を今すぐに実行するようスケジューリングするとともに、以後、式43の送信間隔τで残りのデータパケットを送信するようスケジューリングする。τpSizeBreq2×ところで、ビットレートBreqでデータパケットが送信されるとは、具体的には、次のT-1~T-3のような意味である。T-1データパケットの送信が一定の送信間隔で断続的に行われる。T-2結果として、ある程度の長さの時間の平均的なビットレートは、データパケットの1つあたりの大きさを送信間隔で割った商と見なすことができる。T-3上記の商がBreqである。したがって、ビットレートと送信間隔は反比例する。そして、式43におけるpSize/Breqは、受信部401が受信した再送要求パケット802に指定されているビットレートBreqで複数のデータパケットが送信されるときの送信間隔である。よって、式42のように割り当てられたビットレートBreq2での送信を実現するための送信間隔は、式43のとおりである。なお、再送処理部414は、バッファ部403から送信対象のデータパケットのペイロードを読み出し、適宜のヘッダをペイロードの前に付けることで、要求ノード宛のデータパケットを生成する。再送処理部414は、受信部401が受信した再送要求パケット802に設定されていた要求元のIPアドレスAとポート番号Pを参照することで、データパケットのヘッダを適切に設定することができる。そして、再送処理部414は、生成したデータパケットを送信部402に出力し、送信部402がデータパケットを送信する。なお、ステップS614の実行後、処理はステップS617に移行する。他方、ステップS615では、要求生成部413が、集合C中のi番目のノードに送信するための新たな再送要求パケット802に設定する取得期限を計算する。すなわち、要求生成部413は、式44にしたがって取得期限Tstart2を計算する。Tstart2TstartαIiなお、式44における遅延αは式10と同様である。また、式44では、集合C中のi番目のノードの内部処理遅延がIiと表記されている。式44において遅延αが引かれ、内部処理遅延Iiが足される理由は、図16のステップS508の式31に関して説明したの理由と同様である。また、次のステップS616で要求生成部413は、新たな再送要求パケット802を生成して送信部402に出力する。そして、送信部402は、集合C中のi番目のノード宛に再送要求パケット802を送信する。具体的には、要求生成部413は新たな再送要求パケット802のヘッダに適宜の値を設定する。要求生成部413は、ノード情報記憶部408内の自ノード情報と子ノード情報を参照して、再送要求パケット801のヘッダに設定する送信元IPアドレス、送信先IPアドレス、ポート番号などを取得することができる。また、要求生成部413は、新たな再送要求パケット802に、ステップS615で計算した取得期限Tstart2と、ステップS612で計算したビットレートBreq2を設定する。さらに、要求生成部413は、新たな再送要求パケット802の再送先のIPアドレスとポート番号のフィールドに、受信部401が受信した再送要求パケット802の再送先のIPアドレスとポート番号の値をコピーする。そして、要求生成部413は、新たな再送要求パケット802の再送リストに、対応づけ部412が集合C中のi番目のノードにステップS609で割り当てたXi個のシーケンス番号のリストを設定する。ステップS616では、以上のようにして各フィールドに値が設定された新たな再送要求パケット802が、送信部402から送信される。そして、処理はステップS617に移行する。ステップS617で対応づけ部412は、集合C中のi番目のノードに対応する一時使用帯域幅と一時使用期限を設定する。具体的には、集合C中のi番目のノードが通信装置400であれば、対応づけ部412は、自ノード情報に一時使用帯域幅と一時使用期限のペアを追加する。また、集合C中のi番目のノードが通信装置400のいずれかの子ノードであれば、対応づけ部412は、子ノード情報中の当該子ノードのエントリに、一時使用帯域幅と一時使用期限のペアを追加する。いずれにしろ、対応づけ部412は、一時使用帯域幅として、ステップS612で要求生成部413が計算したビットレートBreq2を設定する。また、対応づけ部412は、一時使用期限として、例えば式45の時刻tmpTを設定してもよい。tmpTNow×Xiα式45におけるNowは現在時刻である。また、式45におけるM×pSize/Breqは、受信部401が受信した再送要求パケット802の再送リストで要求されているM個のデータパケットを、指定されたビットレートBreqで送信するのにかかる時間である。また、集合C中のi番目のノードに割り当てられたXi個のデータパケットのうちで最初のデータパケットは、式10の遅延αが経過するまでには、送信されると予測される。したがって、Xi個のデータパケットが一定間隔で送信される場合、集合C中のi番目のノードに割り当てられたXi個のデータパケットのうちで最後のデータパケットが送信される予測時刻は、式45の時刻tmpTである。以上のようにして、ステップS617で一時使用帯域幅と一時使用期限のペアが自ノード情報または子ノード情報に追加されると、処理はステップS618に移行する。そして、ステップS618で負荷分散処理部410は、インデックスiを1だけインクリメントする。そして処理はステップS611に戻る。さて、ステップS619の処理が実行されるのは、上記のとおり|C|<iの場合である。ステップS619で負荷分散処理部410は、番号Vが、受信部401が受信した再送要求パケット802の再送リスト中の最後の番号であるか否かを判断する。番号Vが最後の番号の場合すなわちV=QMの場合、処理はステップS620に移行する。逆に、番号Vが最後の番号ではない場合すなわちV<QMの場合、処理はステップS621に移行する。そして、ステップS620で負荷分散処理部410は、受信部401が受信した再送要求パケット802の再送リストに指定されたすべてのデータパケットの送信を保証するという旨を通知するACKパケットを生成する。そして、負荷分散処理部410は生成したACKパケットを送信部402に出力し、送信部402はACKパケットを送信する。なお、図17のステップS520と同様に、ACKパケットの送信先は、受信部401が受信した再送要求パケット802の直接の送信元のノードである。そして、ACKパケットの送信後、図20~21の処理は終了する。また、ステップS621で負荷分散処理部410は、送信を要求されたM個のデータパケットのうち、V番より大きいシーケンス番号のデータパケットの送信ができないという旨を通知するエラーパケットを生成する。そして、負荷分散処理部410は生成したエラーパケットを送信部402に出力し、送信部402はエラーパケットを送信する。なお、エラーパケットの送信先も、受信部401が受信した再送要求パケット802の直接の送信元のノードである。そして、エラーパケットの送信後、図20~21の処理は終了する。また、ステップS621で送信されるエラーパケットを受信したときのノードの動作は、実施形態に応じて様々であってよい。エラーパケットを受信したノードは、例えば、ステップS521またはS522で送信されるエラーパケットを受信したノードに関して説明した処理と類似の処理を行い、新たな再送要求パケット802を送信してもよい。続いて、図20~21を参照して説明した再送制御の効果について、再び図22の例を参照しながら説明する。図22において、N5と書かれた列には、シーケンス番号が101番から112番のデータパケットの消失を検出したノードN5において図14のステップS402で計算される時間Lstartが示されている。なお、本実施形態では、再送要求部407は、上記のとおり図11のステップS306で完了期限Tendを計算する必要がないので、図14のステップS402で時間Lendを計算する必要もない。しかし、説明の便宜上、図22のN5と書かれた列には、時間Lendも示されている。時間差Lend-Lstartは、ノードN5の再生処理部404が101番から112番までの12個のデータパケットを消費するのにかかる時間である。また、図22には、個々のデータパケットの消費にかかる時間も、横線によって示されている。上記のとおりBreq=cRateであることが好ましいので、図22ではBreq=cRateの場合が例示されている。すなわち、1つのデータパケットの消費にかかる時間は、図22において隣接する2本の横線の間の間隔であり、その長さはpSize/Breq=pSize/cRateである。また、図22における太い縦線の長さは、再送要求パケット802に指定される取得期限の長さを示す。例えば、N3と書かれた列の縦線は、ノードN3がノードN5から受信する再送要求パケット802に指定されている取得期限の長さを示す。他の列の縦線も同様である。また、各縦線の上端の位置は、再送要求パケット802の受信時刻に対応する。また、縦線に重なる小さな黒い円は、データパケットの送信を依頼されたノードが実際にデータパケットの送信を開始する時刻を示す。責任ノードとして選択されるノードは、取得期限に関する制約条件を満たすので、図22においてどの円も縦線の上端と下端の間にある。例えば、ノードN7には、上記のように102番、105番、108番、111番のデータパケットの送信が割り当てられる。N7と書かれた列の円は、ノードN7が、割り当てられたうちで最初のつまり102番のデータパケットを送信する時刻を示す。なお、N6と書かれた列の円は、ノードN6が、データパケットの送信をノードN12とN13に委譲せずに、自らデータパケットを送信すると仮定した場合に、ノードN6が101番のデータパケットを送信する時刻を示す。逆に、ノードN6がデータパケットの送信をノードN12とN13に委譲した場合は、N12の列の円が示す時刻にノードN12が101番のデータパケットを送信し、N13の列の円が示す時刻にノードN13が103番のデータパケットを送信する。また、図22におけるバツ印は、送信されたデータパケットが要求ノードN5で受信される時刻を示す。円からバツ印へ向かう矢印は、要求ノードN5がデータパケットを受信するまでの遅延を示す。例えば、N7と書かれた列には、ノードN7から送信される102番、105番、108番、111番のデータパケットがそれぞれノードN5で受信される時刻を示す4つのバツ印が示されている。図21のステップS614に関連して説明したスケジューリングにしたがってデータパケットが送信されると、図22に示すように、任意のシーケンス番号Qについて、Q番のデータパケットの取得期限までにQ番のデータパケットが要求ノードに受信される。また、例えばノードN7には4つのデータパケットが割り当てられる。よって、ノードN3がノードN7に送信する再送要求パケット802に指定されるビットレートは、ノードN5がノードN3に送信する再送要求パケット802に指定されるビットレートの4/12である。したがって、図22においてN7と書かれた列の4つのバツ印は、間隔pSize/Breq/4/12で並んでいる。同様に、2つのデータパケットが割り当てられたノードN8の列の2つのバツ印の間の間隔は、pSize/Breq/2/12である。また、ノードN6が、データパケットの送信をノードN12とN13に委譲せずに、自らデータパケットを送信する場合、ノードN6は6個のデータパケットを送信することになる。したがって、N6の列には、間隔pSize/Breq/6/12で並んだ6つのバツ印が示されている。逆に、ノードN6が、データパケットの送信をノードN12とN13に委譲する場合、ノードN12は4個のデータパケットを送信し、ノードN13は2個のデータパケットを送信する。よって、N12の列には、間隔pSize/Breq/4/12で並んだ4つのバツ印が示されており、N13の列には、間隔pSize/Breq/2/12で並んだ2つのバツ印が示されている。以上説明したように、図22には、説明の便宜上、ノードN6が責任ノードとしてノードN6のみを選ぶ場合と、2つの子ノードN12とN13のみを選ぶ場合が両方とも図示されている。しかし、いずれの場合であろうとも、各ノードは適宜の間隔をあけてデータパケットを送信する。その結果、再送が要求された12個のデータパケットは、平均的には、最初にノードN5が指定したビットレートBreqでノードN5に受信される。したがって、ノードN5や、物理ネットワーク上でノードN5に近いルータ等において、101~112番のデータパケットが短期間に集中してバースト的に受信されたために輻輳が生じるという事態は起こりにくい。つまり、再送リストに指定されるデータパケットの数に応じてビットレートが比例配分されることにより、バースト受信が緩和される。その結果、再送されたデータパケットの一部または全部が消失するといった事態が回避される。もちろん、図22に例示するように、再送が要求された12個のデータパケットのうちの一部例えば2~4個のデータパケットが、互いに非常に近い時刻にノードN5において受信されることはあり得る。例えば、ノードN6が責任ノードとしてノードN12とN13を選んだ場合、要求ノードN5における101~104番の4つのデータパケットの受信時刻は、互いに近い。しかしながら、本実施形態では輻輳は起こりにくい。その理由は、たとえ或る複数個のデータパケットの受信時刻が互いに近くても、当該或る複数個のデータパケットの受信に続く、次の1つまたは複数のデータパケット受信までには、ある程度の長さの間隔があくからである。例えば、図22に示すように、たとえ要求ノードN5における101~104番の4つのデータパケットの受信時刻が非常に近いとしても、次の105番のデータパケットの受信までには、およそpSize/Breq×3の間隔があく。よって、要求ノードN5や、物理ネットワーク上でノードN5に近いルータは、このpSize/Breq×3の時間を利用して、時間的に集中して到着した101~104番の4つのデータパケットに関する処理を済ませることができる。したがって、要求ノードN5や、物理ネットワーク上でノードN5に近いルータにおいて、バッファオーバフロー等に起因するパケットロスは起こりにくい。例えば、各ノードが可能な限り高いビットレートでデータパケットを送信する場合すなわち次の受信までの間隔が非常に短い場合と比較すれば、図22の例による輻輳回避の効果換言すれば、バースト受信を緩和する効果は明らかである。以上説明したように、ノードN5における12個のデータパケットの受信は、全体としては、平均してビットレートBreqで達成される。そして、複数のノードからのデータパケットの送信を全体で均したビットレートを、要求ノードN5が指定したビットレートBreqに保つための制御は、上記のように、再送要求パケット802のビットレートフィールドを介して、自律分散的に実現される。例えば、ノードN7、N8、N12、N13という4つのノードが実際にデータパケットを送信するとする。この場合、4つのノードがそれぞれ、受信した再送要求パケット802にしたがって送信を自律分散的にスケジューリングすることにより、要求ノードN5における平均受信ビットレートBreqが実現される。なお、バースト的な受信を一層緩和するために、要求生成部413は、図21のステップS615において、式44の代わりに、式46を用いて取得期限Tstart2を計算してもよい。式46におけるFiは、集合C中のi番目のノードに対応づけ部412が対応づけたXi個のデータパケットのうちで最初のデータパケットのシーケンス番号である。Tstart2TstartαIipSizeBreq×例えば、図22の例において、ノードN3の要求生成部413が、集合C中のi番目のノードとしてノードN8に注目している場合、ノードN8に対応づけられているデータパケットのシーケンス番号は104番と110番なので、Fi=104である。また、ノードN3が受信した再送要求パケット802の再送リストの最初のシーケンス番号は101番なので、Q1=101である。したがって、式46により計算される取得期限Tstart2は、式44により計算される取得期限Tstart2よりも、3つのデータパケット具体的には101~103番のデータパケットの消費時間のぶんだけ、遅い。要求生成部413が式46によって取得期限Tstart2を計算した場合でも、図22から明らかなように、各データパケットは、要求ノードN5における取得期限までに要求ノードに受信される。また、要求生成部413が式46によって取得期限Tstart2を計算することで、要求ノードN5において複数のデータパケットの受信時刻が時間的に集中する度合は、一層緩和され得る。さらに、以上のようなビットレートの自律分散制御は、期限内の受信を犠牲にすることなく実現される。すなわち、ステップS614に関連して説明したスケジューリングによれば、ノードN5は、図22にバツ印で示すタイミングで各データパケットを受信することができる。そして、図22にバツ印で示すタイミングは、明らかに、任意のシーケンス番号Qについて、Q番のデータパケットの取得期限までにQ番のデータパケットが要求ノードに受信されるということを示している。ところで、本発明は上記実施形態に限られるものではなく、上記実施形態は様々に変形可能である。以下に、上記実施形態を変形するいくつかの観点を例示する。例えば、上記実施形態は、下記の観点から様々に変形することができ、上記に例示したいくつかの変形および下記の変形は、相互に矛盾しない限り、任意に組み合わせることが可能である。変形の第1の観点は、論理ネットワークのトポロジに関する。例えば、図2のようなツリー型のトポロジの論理ネットワーク100ではなく、メッシュ型のトポロジの論理ネットワーク上でデータパケットが配信されるデータ配信システムにも、上記実施形態の再送制御は適用可能である。図23は、メッシュ型トポロジの論理ネットワークの例を示す図である。例えば、図23の論理ネットワーク100cは、ノードN40~N54を含むメッシュ型トポロジの論理ネットワークである。論理ネットワーク100cのトポロジは、図23において非循環有向グラフDAGにより表されている。たとえ論理ネットワーク100cのようにメッシュ型の論理ネットワークであっても、トポロジを有向グラフで表すことのできる論理ネットワークならば、親ノードと子ノードが定義可能である。つまり、論理ネットワーク上において、あるノードNjから他のノードNkへのエッジが存在するとき、ノードNkはノードNjの子ノードであり、ノードNjはノードNkの親ノードである。メッシュ型の論理ネットワーク100cにおいては、親ノードを複数持つノードもある。例えば、ノードN46は、3つの親ノードノードN40、N42、N43を持ち、4つの子ノードN45、N49、N51、N52を持つ。複数の親ノードを持つ場合、ノード情報記憶部408の親ノード情報も複数のエントリを含む。また、トポロジがDAGで表される論理ネットワークには閉路が存在しないので、任意のノードNjについて、ノードNjを根ノードとする部分グラフを親ノードと子ノードの関係に基づいて定義することができる。具体的には、ノードNjが子ノードを持たない場合、ノードNjを根ノードとする部分グラフは、ノードNjのみを含み、エッジを含まない。逆に、ノードNjが子ノードNkを持つ場合、ノードNkを根ノードとする部分グラフに属するすべてのノードと、ノードNjは、ノードNjを根ノードとする部分グラフに属する。また、ノードNjが子ノードNkを持つ場合、ノードNkを根ノードとする部分グラフに属するすべてのエッジと、ノードNjからノードNkへのエッジは、ノードNjを根ノードとする部分グラフに属する。すると、メッシュ型の論理ネットワーク100cにおいても、任意のノードNjについて、ノードNjの送信可能総帯域幅TotalNjが定義可能である。つまり、ノードNjの送信可能総帯域幅TotalNjは、ノードNjを根ノードとする部分グラフに属するすべてのノードの送信可能帯域幅の総和である。ただし、送信可能総帯域幅の通知と認識に関して、メッシュ型の論理ネットワーク100cとツリー型の論理ネットワークでは次のような違いがある。ツリー型の論理ネットワーク100では、根ノード以外のすべてのノードが必ず1つの親ノードを持つ。そのため、各ノードが図10のフローチャートにしたがって動作することにより、各ノードは、送信可能総帯域幅を正しく認識し、記憶することができる。他方、論理ネットワーク100c内の各ノードが図10のフローチャートにしたがって動作すると、ノードNjのノード情報記憶部408の自ノード情報に記録される送信可能総帯域幅の値は、必ずしも、上記のように定義されるTotalNjではない。例えば、論理ネットワーク100cでは、ノードN45は子ノードN49、N50、N51を持ち、ノードN49は子ノードN50を持ち、ノードN51は子ノードN50を持ち、ノードN50は子ノードを持たない。換言すれば、ノードN50は3つの親ノードN45、N49、N51を持ち、このうち2つの親ノードN49とN51は、偶然にも、ノードN50のもう1つの親ノードN45の子孫ノードである。したがって、論理ネットワーク100c内の各ノードが図10のフローチャートにしたがって動作する場合、以下のU-1~U-4のような処理が行われる。U-1ノードN50は、3つの親ノードN45、N49、N50のすべてに、ノードN50の送信可能総帯域幅として、ノードN50の送信可能帯域幅ReservedN50を通知する。U-2ノードN49は、U-1で通知されたノードN50の送信可能帯域幅ReservedN50とノードN49の送信可能帯域幅ReservedN49の和を計算する。そして、ノードN49は、2つの親ノードN45とN46の両方に、計算結果を、ノードN49の送信可能総帯域幅として通知する。U-3ノードN51は、U-1で通知されたノードN50の送信可能帯域幅ReservedN50とノードN51の送信可能帯域幅ReservedN51の和を計算する。そして、ノードN51は、3つの親ノードN45、N46、N47のすべてに、計算結果を、ノードN51の送信可能総帯域幅として通知する。U-4ノードN45は、U-1、U-2、U-3で通知された値と、ノードN45の送信可能帯域幅ReservedN45の和を計算する。そして、ノードN45は、2つの親ノードN42とN46の両方に、計算結果を、ノードN45の送信可能総帯域幅として通知する。上記のU-4においてノードN45が親ノードN42とN46に通知する値には、ノードN50の送信可能帯域幅ReservedN50が3重にカウントされている。したがって、U-4においてノードN45から通知される値は、ノードN45を根ノードとする部分グラフに属するすべてのノードの送信可能帯域幅の総和よりも大きい。換言すれば、U-4においてノードN45から通知される値は、上記定義による送信可能総帯域幅TotalN45の正確な値ではない。そこで、論理ネットワーク100cのようなメッシュ型トポロジの論理ネットワークが利用される実施形態においては、例えば、以下の2つの方針が採用可能である。第1の方針は、上記U-4のような重複カウントを容認するという方針である。換言すれば、第1の方針は、図10のフローチャートによる処理では、必ずしも各ノードが正確な送信可能総帯域幅を認識することができるとは限らないが、通知される値は、送信可能総帯域幅の推定値として利用可能であるという立場に拠るものである。第1の方針によれば、図10の処理は基本的には変更不要である。つまり、図10のステップS211での通知先の親ノードの数が複数の場合があり得る点は、上記実施形態と異なるが、その他の点は変わらない。したがって、第1の方針によれば、ステップS209の計算方法を変更する必要もなく、ステップS211ではステップS209の計算結果がそのまま各親ノードに通知される。以上の第1の方針が採用された場合であっても、ステップS521、S522またはS621で送信されるエラーパケットに応じて責任ノードの再選択が適宜行われれば、特に問題は生じない。また、論理ネットワークのトポロジによっては、上記U-4のような重複カウントが多発するとは限らない。つまり、図10のフローチャートにしたがって通知される値と、定義にしたがった正しい送信可能総帯域幅との間の誤差は、わずかかもしれない。誤差が小さければ、誤差の影響は無視しても差し支えないので、第1の方針は妥当である。また、論理ネットワーク100c内の各ノードは、論理ネットワーク100c全体のトポロジを認識してはいない。よって、各ノードは、上記U-4のような重複カウントが生じるか否かということも認識しない。そして、第1の方針は、上記U-4のような重複カウントの原因となるトポロジを把握するための追加的な処理を必要としないので、各ノードが論理ネットワーク100c全体のトポロジを認識しないP2Pシステムに適している。なお、第1の方針が採用される場合に、要求されたデータパケットの送信が保証されることの信頼性を向上させるために、再送要求パケットを受信したノードが付加的な処理を行ってもよい。具体的には、複数の親ノードを持つノードは、親ノードのうちの1つから再送要求パケットを受信した場合、他のすべての親ノードに対して、後述の第9の観点と同様の通知を送信してもよい。詳しくは第9の観点とともに後述するが、親ノードのうちの1つから受信した再送要求パケットに応じて一時的に消費される帯域幅を他の親ノードに通知することにより、エラーつまりNACKの発生を未然に防ぐことが可能となる。さて、第2の方針は、上記U-4のような重複カウントを避けるという方針である。具体的には、第2の方針によれば、図10のステップS211で通知する帯域幅の計算方法が変更される。図10の処理では、ステップS209で計算された値がステップS211で通知される。しかし、第2の方針によって変形された処理によれば、ステップS209で計算された値を親ノードの数で割った値が、ステップS211で通知される。変形の第2の観点は、子ノードが複数ある場合の責任ノードの選択とデータパケットの割り当てに関する。図16~17の処理は、先に見つかった子ノードから順に、再送期限に関する制約条件が満たされる限りなるべく多くのデータパケットを、見つかった子ノードに割り当てる処理である。換言すれば、図16~17の処理は、貪欲法greedyalgorithmに基づく処理であり、処理フローが単純であるという利点を持つ。しかし、ノード間の負荷の公平性をより高めるために、図16~17の処理が変形されてもよい。例えば、或るノードが5つの子ノードを持ち、当該或るノードが何回も再送要求パケット801を受信する場合、図16~17の処理によれば、複数の再送要求全体の傾向として、負荷が偏ることがある。具体的には、当該或るノードの1番目の子ノードを根ノードとする部分グラフ中のノードは、当該或るノードの5番目の子ノードを根ノードとする部分グラフ中のノードよりも、実際にデータパケットの送信を担うことが多くなりがちである。そこで、複数の再送要求全体での負荷の偏りを均すため、選択部411は、子ノード情報の複数のエントリに決まった順番で注目する例えば1番目のエントリから順に注目する代わりに、ランダムな順番で注目してもよい。あるいは、図16~17のような貪欲法による処理の代わりに、比例配分による処理が行われてもよい。例えば、選択部411は、通信装置400のすべての子ノードを、仮に責任ノードとして選択してもよい。そして、対応づけ部412は、各子ノードの現在使用可能な帯域幅すなわち式28の帯域幅Bを計算し、現在使用可能な帯域幅に基づいて、要求されたQto-Qfrom1個のデータパケットを全子ノードに仮に比例配分してもよい。例えば、図1のステップS20で、61番から68番までの8個のデータパケットの送信を要求する再送要求パケット801をノードN3が受信したとする。すると、ノードN3の選択部411は、3つの子ノードN6、N7、N8すべてを仮に責任ノードとして選択する。また、ノードN6、N7、N8がそれぞれ現在使用可能な帯域幅の比が、2:1:1であるとする。すると、ノードN3の対応づけ部412は、比例配分により、ノードN6には4個、ノードN7には2個、ノードN8には2個のデータパケットをそれぞれ仮に割り当てる。その後、対応づけ部412は、各子ノードが、再送期限による制約条件を満たしつつ、比例配分により仮に割り当てられた数のデータパケットの送信を保証することが可能か否かをチェックする。そして、もし、仮に割り当てられた数のデータパケットの送信を保証しきれない子ノードがあれば、対応づけ部412は、仮に割り当てたデータパケットの数を調整する。同じシーケンス番号のデータパケットの送信に関しては、明らかに、式9の遅延αが大きい子ノードの方が、遅延αが小さい子ノードよりも、制約条件を満たすのが難しい。そこで、対応づけ部412は、例えば、遅延αが小さい子ノードすなわち制約条件を満たす見込みの高い子ノードから順に、上記のチェック処理を行ってもよい。例えば、上記のようにノードN6、N7、N8に仮に割り当てられたデータパケットの個数がそれぞれ4個、2個、2個の場合に、ノードN8の遅延αが最小で、ノードN6の遅延αが2番目に小さく、ノードN7の遅延αが最大とする。すると、ノードN3の対応づけ部412は、遅延αが小さい順に、まず遅延αが最小のノードN8は、61~62番の2つのデータパケットについて、再送期限に関する制約条件を満たしつつ送信を保証することが可能か否かをチェックする。チェックの結果として可能と判明すれば、対応づけ部412は、ノードN8に実際に61~62番の2つのデータパケットを対応づける。あるいは、チェックの結果として、例えばノードN8が制約条件を満たしつつ送信を保証するのが可能なのは61番のデータパケットのみと判明すれば、対応づけ部412は、ノードN8に実際に61番の1つのデータパケットのみを対応づける。そして、対応づけ部412は、次に、遅延αが2番目に小さいノードN6は、ノードN8に割り当てた直後の4つのシーケンス番号を持つデータパケットについて、再送期限に関する制約条件を満たしつつ送信を保証することが可能か否かをチェックする。例えば、対応づけ部412は、ノードN8に実際に61~62番のデータパケットを割り当てた場合は、63~66番の4つのデータパケットの送信をノードN6が保証することができるか否かをチェックする。あるいは、対応づけ部412は、ノードN8に実際に61番のデータパケットのみを割り当てた場合は、62~65番の4つのデータパケットの送信をノードN6が保証することができるか否かをチェックする。そして、対応づけ部412は、チェック結果に応じて、ノードN6に実際に割り当てるデータパケットのシーケンス番号の範囲を決定する。また、対応づけ部412は、遅延αが最大のノードN7についても、上記と同様にして、チェック処理とデータパケットの実際の割り当てを行う。また、対応づけ部412は、遅延αが最大のノードN7に実際に割り当てたデータパケットのシーケンス番号を、変数Vに代入する。そして、V<Qtoの場合は、図17のステップS514以降の処理が続いて行われ、V≧Qtoの場合は、続いてステップS520の処理が行われる。例えば以上のようにして、貪欲法に基づく図16~17の処理は、比例配分に基づく処理に変形されてもよい。変形の第3の観点は、送信可能総帯域幅以外のリソースに関する。上記のように、送信可能総帯域幅は、責任ノードとして選択可能な子ノードを選択部411が選択する際にも参照され、対応づけ部412が責任ノードに対応づけるデータパケットを決める際にも参照される。しかし、帯域幅はノードが使用するリソースの一例である。ノードは、そのほかにも、CPUリソースやメモリリソースを使用する。CPUリソースの量は、例えば、CPU301のクロック周波数により測られる。メモリリソースの量は、例えば、RAM302のバイト数により測られる。例えば、使用可能な帯域幅が同じ2つの子ノードがある場合、対応づけ部412は、CPUリソースが多い方のノードに、より多くのデータパケットを対応づけてもよいし、メモリリソースが多い方のノードに、より多くのデータパケットを対応づけてもよい。対応づけ部412は、帯域幅、CPUリソース、メモリリソースなどの複数の種類のリソースの量を総合的に評価する評価値にしたがって、各責任ノードに対応づけるデータパケットの量を決めてもよい。そのために、各ノードは、対応づけ部412が参照する各種のリソースの量について、送信可能総帯域幅と同様に、親ノードに通知してもよい。また、各ノードは、各種のリソースの量について、一時使用帯域幅と同様に、一時使用中のリソース量を管理してもよい。つまり、受信部401は、論理ネットワークのトポロジにおいて通信装置400の子ノードを根ノードとする部分グラフに含まれるノードのリソースの合計量を示す合計リソース情報を、当該子ノードから受信してもよい。すると、ノード情報管理部409は、受信部401が受信した合計リソース情報を、当該子ノードと対応づけて子ノード情報としてノード情報記憶部408に記憶することができる。また、ノード情報管理部409は、通信装置400自身のリソースの量と、各子ノードから受信して記憶した合計リソース情報が示す合計量との合計を、通信装置400自身についての合計リソース情報として算出することができる。その結果、送信部402は、ノード情報管理部409が算出した新たな合計リソース情報を、通信装置400の親ノードに送信することができる。送信可能総帯域幅は、上記のような合計リソース情報が表すリソースの合計量の一例である。そして、上記のように、帯域幅に限らず、何らかのリソースについて合計リソース情報の通知が行われる場合、対応づけ部412は、ノード情報記憶部408を参照することにより、責任子ノードに対応する使用可能合計リソース情報を得ることができる。使用可能合計リソース情報の具体例は、例えば、送信可能総帯域幅から一時使用帯域幅の総和を引いた帯域幅例えば、式28の帯域幅Bである。或る1つの子ノードの使用可能合計リソース情報とは、換言すれば、当該子ノードを根ノードとする部分グラフに含まれるノードの使用可能リソースの合計量を示す情報である。そして、使用可能合計リソース情報の認識を可能とするために、対応づけ部412は、部分特定情報を責任ノードに対応づけたら、対応づけた当該部分特定情報の送信にかかる負荷に応じて消費されるリソースの量を算出する。さらに、対応づけ部412は、算出した量を示す消費リソース情報を、当該責任ノードおよび有効期限と対応づけてノード情報記憶部408に記憶する。図9の一時使用帯域幅は、上記の消費リソース情報の具体例であり、図9の一時使用期限は上記の有効期限の具体例である。以上のように、リソースの種類によらず、帯域幅と同様の管理が可能であり、使用可能なリソースの量に応じた割り当てが可能である。また、再送要求パケットを受信したノードの選択部411は、当該ノード自身よりも子ノードを優先的に責任ノードとして選択するが、子ノードを優先するという方針は、換言すれば、以下のとおりである。すなわち、通信装置400が1つ以上の子ノードを持つ場合、選択部411は、通信装置400自身のリソースの量によらず、子ノードを通信装置400自身よりも優先して責任ノードとして選択する。たとえ通信装置400自身が使用可能なリソースの量が個々の子ノードの合計リソース量より多くても、選択部411は、責任ノードの候補としてまず先に子ノードに注目する。それにより、データパケットの配信用のリレーネットワークとして使われる論理ネットワークにおいて、より根ノードから遠いつまり、より下流のノードがデータパケットの送信を行う蓋然性が高まる。もちろん、通信装置400が子ノードを持たない場合は、選択部411は、通信装置400自身を責任ノードとして選択してもよい。変形の第4の観点は、再送期限に関する。上記実施形態では、取得期限と完了期限のペアまたは取得期限とビットレートのペアにより、再送期限が表され、子ノードへの委譲と実際のデータパケットの送信は、再送期限に関する制約条件が満たされるように行われる。しかし、論理ネットワークの用途によっては、データパケットのペイロードは、リアルタイム性を持たないデータのこともある。リアルタイム制約のない種類のデータの配信が行われる実施形態においては、再送期限は考慮不要である。つまり、再送要求パケット801から取得期限と完了期限が省略されてもよく、再送要求パケット802から取得期限が省略されてもよい。ただし、バースト受信の回避のためには、ビットレートのフィールドが、取得期限が省略された形の再送要求パケット802においても残され、送信ビットレートの制御に使われることが好ましい。各ノードが再送期限を考慮しない実施形態において、選択部411は、単にすべての子ノードを責任ノードとして選択してもよい。そして、対応づけ部412は、受信部401が受信した再送要求パケットで要求されたデータパケットを、式28の帯域幅Bなどの使用可能合計リソース情報に応じて、単に子ノードに比例配分してもよい。変形の第5の観点は、遅延αの推定に関する。第4の観点で示した例とは逆に、図16~17や図20~21のように再送期限が考慮される場合は、遅延αが利用される。そして、遅延αは、上記Q-1~Q-4を含み、上記のとおり、Q-4の時間の長さは、適宜の近似モデルにしたがって見積もられる。しかし、Q-4の時間の長さは、論理ネットワーク100のトポロジが変化せずに同じ要求ノードからの再送要求が2回以上生じる場合は、2回目以降の再送では、実測値に基づく見積もりが可能である。つまり、2回目以降の再送では、1回目と同じく近似モデルによってQ-4の時間が見積もられてもよいが、実測値に基づいてQ-4の時間が見積もられてもよい。実測値に基づくQ-4の時間の見積もりは、再送要求パケットを親ノードから受信した子ノードが、当該子ノード自身と要求ノードとの間のRTTを計測し、計測結果を記憶するとともに親ノードに通知することにより、可能となる。例えば、図1のようにノードN5がノードN3に再送要求を送信することが複数回繰り返されたと仮定する。そして、1回目の再送要求が、図1に示すように転送されたとする。すると、親ノードN3から再送要求を受信したノードN6は、任意のタイミングで例えば、ネットワーク負荷の低いときなどに、ノードN6自身と、再送要求に指定された要求ノードN5との間のRTTを計測する。そして、ノードN6は、計測結果をノード情報記憶部408に記憶するとともに、親ノードN3に通知する。同様に、ノードN7は、ノードN7とノードN5の間のRTTを計測し、計測結果を記憶するとともに親ノードN3に通知する。また、ノードN8は、ノードN8とノードN5の間のRTTを計測し、計測結果を記憶するとともに親ノードN3に通知する。さらに同様に、ノードN12は、ノードN12とノードN5の間のRTTを計測し、計測結果を記憶するとともに親ノードN6に通知する。また、ノードN13は、ノードN13とノードN5の間のRTTを計測し、計測結果を記憶するとともに親ノードN6に通知する。また、親ノードではないノードN5から再送要求を受信したノードN3は、任意のタイミングで例えば、ネットワーク負荷の低いときなどに、ノードN3自身と、再送要求の送信元の要求ノードN5との間のRTTを計測する。そして、ノードN3は、計測結果をノード情報記憶部408に記憶する。すると、ノードN5が再びノードN3に再送要求を送信した場合、ノードN3は、子ノードN6に関するQ-4の遅延つまり、D6,5-D3,5を、子ノードN6から通知されたRTT6,5とノードN3自身が計測したRTT3,5から計算することができる。同様に、ノードN3は、子ノードN7に関するQ-4の遅延も、実測されたRTTから計算することができ、子ノードN8に関するQ-4の遅延も、実測されたRTTから計算することができる。さらに、ノードN5からの2回目の再送要求に応じて、ノードN3がノードN6を責任ノードとして選択したと仮定する。すると、ノードN6は、ノードN3から再送要求パケットを受信する。この場合、ノードN6は、子ノードN12に関するQ-4の遅延つまり、D12,5-D6,5を、子ノードN12から通知されたRTT12,5とノードN6自身が計測したRTT6,5から計算することができる。同様に、ノードN6は、子ノードN13に関するQ-4の遅延も、実測されたRTTから計算することができる。このように、2回目以降の再送では、実測値に基づいてQ-4の時間が見積もられてもよい。その結果、遅延αがより正確に見積もられ、より適切な割り当てが実現される。変形の第6の観点は、ノード間の同期と期限の表現に関する。実施形態に応じて、論理ネットワークは、同期系のこともあるし非同期系のこともある。つまり、論理ネットワーク内のノードがそれぞれ内蔵する時計がすべて同期されていることもあるし、時計が同期されていないこともある。例えば、論理ネットワーク100内の各ノードを実現する通信装置400が、いずれもSTBSetTopBoxの場合、論理ネットワーク100は同期系である。なぜなら、テレビ放送電波には時刻同期信号が含まれるからである。また、データ配信アプリケーションプログラムが、NTPNetworkTimeProtocolなどによる時刻同期処理のプログラムコードを含むこともあり得る。この場合、当該データ配信アプリケーションプログラムにしたがって動作して論理ネットワーク100を構成する全ノードの時計は、同期される。逆に、データ配信アプリケーションプログラムが時刻同期処理のプログラムコードを含まないこともある。しかも、通信装置400は、例えば個人ユーザのPCなど、必ずしも標準時刻への同期がなされているとは限らない装置かもしれない。すると、論理ネットワーク100は非同期系である。論理ネットワーク100が非同期系のとき、再送要求パケット801または802に指定される再送期限は、時間の長さにより表される。しかし、論理ネットワーク100が同期系のとき、再送要求パケット801または802に指定される再送期限は、時間の長さにより表されてもよいし、絶対時刻により表されてもよい。なお、再送期限が絶対時刻により表される実施形態では、以下のようにいくつかのステップの処理が変形される。まず、図14のステップS404で再送要求部407は、式7と8の代わりに、式47と48にしたがって取得期限Tstartと完了期限Tendを計算する。式47と48におけるNowは、ステップS404が実行される時点の現在時刻である。TstartNowLstartRTT2TendNowLendRTT2なお、式7と8ではRTTが減算されるのに対し、式47と48ではRTT/2が減算される。この違いの理由は、例えば図18から明らかである。つまり、取得期限Tstartが時間の長さで表される場合、図18の値Taのように、図18の太い矢印の長さが取得期限Tstartとして設定される。それに対し、取得期限Tstartが絶対時刻で表される場合、取得期限Tstartは、図18の太い矢印の下端の位置に相当する。したがって、図18からも明らかなように、取得期限Tstartが絶対時刻で表される場合、取得期限Tstartは、式47により得られる。また、図16のステップS505で選択部411は、式9が満たされるか否かではなく、式49が満たされるか否かを判断する。式49におけるNowは、ステップS505が実行される時点の現在時刻である。Tstart×αNowそして、図16のステップS506で選択部411は、式28と29をともに満たす最大の番号Vの代わりに、式50と29をともに満たす最大の番号Vを計算する。式50におけるNowは、ステップS506が実行される時点の現在時刻である。Nowα×pSizeBβNowそして、ステップS515で選択部411は、式36と37をともに満たす最大の番号Vではなく、式52と37をともに満たす最大の番号Vを計算する。式52におけるNowは、ステップS515が実行される時点の現在時刻である。NowIself×pSizeBselfNow以上説明したように、再送要求パケット801または802に指定される期限は、時間の長さにより表現されていてもよいし、絶対時刻により表現されていてもよい。いずれにしろ、受信部401が受信した再送要求が、期限に関する制約条件を指定する期限情報を含む場合に、もし選択部411が通信装置400自身を責任ノードとして選択したら、通信装置400は制約条件を満たすタイミングでデータパケットを送信する。例えば、再送要求パケット801に指定される取得期限Tstartと完了期限Tendのペアは、制約条件を指定する期限情報の一例である。また、再送要求パケット802に指定される取得期限TstartとビットレートBreqも、期限情報の一例である。なお、再送要求パケット801または802に指定される取得期限Tstartは、直接的には、再送要求パケット801または802が要求する1つまたは複数のデータパケットのうち最初の1つの取得期限を示す。しかし、再送要求パケット801または802に指定される取得期限Tstartは、間接的には、再送要求パケット801または802が要求する2番目以降の各データパケットそれぞれの取得期限についての制約条件を指定している。ところで、再送期限が絶対時刻で表現される場合にも、図16のステップS508と図21のステップS615は変更不要である。換言すれば、責任子ノード宛の新たな再送要求に設定する新たな制約条件を指定する新たな期限情報は、再送期限の表現形式によらず、同じ方法で算出される。具体的には、要求生成部413は、少なくとも、受信部401が受信した再送要求に含まれる期限情報と、通信装置400と責任子ノードとの間の通信にかかる遅延時間を用いて、新たな期限情報を算出する。受信部401が受信した再送要求に含まれる期限情報の例は、例えば取得期限Tstartである。また、通信装置400と責任子ノードとの間の通信にかかる遅延時間は、具体的には、遅延αに含まれるQ-2の通信遅延である。もちろん、要求生成部413は、上記実施形態のように、さらに内部遅延なども用いて、新たな期限情報を算出してもよい。変形の第7の観点は、管理サーバ204の有無に関する。上記実施形態の再送制御は、図3の管理サーバ204を含むハイブリッドP2Pシステムだけでなく、管理サーバ204を持たないピュアP2Pシステムにも適用可能である。ピュアP2Pシステムにおいては、新たに論理ネットワークに参加しようとする新規ノードは、参加要求パケットをフラッディングすることにより親ノードの候補を探してもよい。あるいは、新規ノードは、配信サーバ203に参加要求パケットを送信してもよい。配信サーバ203を含む論理ネットワーク内の既存のノードは、参加要求パケットを受信した場合、子ノードのいずれか1つを選んで、選んだ子ノードに参加要求パケットを転送してもよい。あるいは、参加要求パケットを受信した既存のノードは、新規ノードの親ノードとして当該既存のノード自身を新規ノードに通知してもよい。また、再送要求先を問い合わせる問い合わせパケットの送信先は、ハイブリッドP2Pシステムでは上記のように管理サーバ204であってもよいが、ピュアP2Pシステムの場合は、親ノードであってもよい。もちろん、ハイブリッドP2Pシステムにおいても、問い合わせパケットの送信先が親ノードであってもよい。例えば、図2のようなトポロジの論理ネットワーク100において、ノードN8は、親ノードN3に再送要求先を問い合わせてもよい。問い合わせパケットの転送が過度に繰り返されてネットワークに過度の負荷が生じるの防ぐため、問い合わせパケットには、TTLTimeToLiveが設定されていてもよい。例えば、ノードN8が、TTLの値を4に設定した問い合わせパケットを親ノードN3に送信するものとする。問い合わせパケットを受信したノード以下受信ノードというは、TTLの値によらず受信ノード自身を再送要求先としてノードN8に通知してもよい。TTLの値が2以上の場合、受信ノードは、受信ノードの親ノードと子ノードのうち、問い合わせパケットの送信元以外のノードのいずれか1つを適宜選び、TTLの値を1だけ減らして、選んだノードに問い合わせパケットを転送してもよい。TTLの値が1の場合、受信ノードは、受信ノード自身を再送要求先としてノードN8に通知する。なお、問い合わせパケットの転送先の選択の仕方は任意である。例えば、ランダムな選択が行われてもよい。すると、ノードN8が、TTLの値を4に設定して問い合わせパケットを親ノードN3に送信した場合、問い合わせパケットは、例えば、ノードN3、ノードN1、ノードN2、ノードN5と順に転送され、ノードN5がノードN8の再送要求先になるかもしれない。あるいは、問い合わせパケットは、例えば、ノードN3、ノードN6、ノードN12と順に転送され、ノードN12がノードN8の再送要求先になるかもしれない。また、問い合わせパケットの転送先の選択において、転送先の候補から親ノードが除外されてもよいし、親ノードよりも子ノードが優先的に選択されてもよい。すると、結果的に、根ノードからより遠いノードが再送要求先として選ばれるということの蓋然性が高まる。その結果、再送を子孫ノードに委譲する上記メカニズムとあわせて、論理ネットワーク内での負荷が比較的低いノードが、実際に再送処理を行うということの蓋然性がさらに高まり、論理ネットワーク内の負荷分散がさらに進む。変形の第8の観点は、追加的なエラー処理に関する。上記では説明を省略したが、場合によっては、再送要求を受信した通信装置400が、要求されたデータパケットをバッファ部403に保持していないことがあり得る。よって、図16~17の処理および図20~21の処理は、要求されたデータパケットがバッファ部403にない場合はエラーを返すように変形されてもよい。例えば、図2のノードN2のように根ノードからの距離が短いノードが、パケットロスを検出し、再送要求が論理ネットワーク100内を次々に転送されていき、ノードN13のように根ノードからの距離が長いノードが再送要求を受信することがあり得る。この場合、ノードN13は、再送要求を受信した時点では、要求されたデータパケットをまだ受信していないことがあり得る。あるいは、例えば図2のノードN2が、シーケンス番号が310番から320番のデータパケットの再送をノードN3に要求し、ノードN3が、ノードN8を責任ノードとして選択するとともにノードN8に315番から320番のデータパケットを割り当てたとする。この場合、ノードN8でも偶然に、315番から320番のデータパケットの一部または全部が消失していることがあり得る。よって、再送をより確実に保証するために、図16~17の処理および図20~21の処理は、例えば次のように変形されてもよい。すなわち、ステップS501の前とステップS601の前に、負荷分散処理部410が以下の処理を行ってもよい。負荷分散処理部410は、バッファ部403を参照して、受信部401が受信した再送要求パケット801または802で要求されたすべてのデータパケットを、バッファ部403が保持しているか否かを判断する。もし、要求されたすべてのデータパケットをバッファ部403が保持していれば、負荷分散処理部410は、ステップS501またはS601以降の処理を開始する。逆に、要求されたデータパケットのうちバッファ部403に保持されていないデータパケットがあれば、負荷分散処理部410は、再送要求パケット801または802の送信元ノードに対して、エラーパケットを返信する。変形の第9の観点は、使用可能な帯域幅の動的な変化の管理に関する。再送をより確実に保証するために、各ノードは、親ノード以外のノードから再送要求を受けたときに、親ノードに送信可能総帯域幅の変化を通知してもよい。換言すれば、各ノードは、親ノード以外のノードからの再送要求に応える結果として、使用可能な帯域幅が一時的に変化するときに、親のノードに送信可能総帯域幅の変化を通知してもよい。当該通知により、論理ネットワーク内で再送要求が多発して複数の再送要求に関する処理が同時に発生するような状況においても、適切な割り当てが可能となる。例えば、図1の例において、ノードN5からの再送要求とは独立して、エッジE4,10上でのパケットロスが原因で、ノードN10が再送要求をノードN7に送信するかもしれない。そして、ノードN7の送信可能帯域幅は、ノードN5への再送とノードN10への再送によってそれぞれ消費される帯域幅の合計よりも狭いかもしれない。そこで、例えば、ノードN7がステップS31よりも前にノードN10から再送要求を受信した場合は、ノードN7は、ノードN10への再送にともなって一時的に送信可能総帯域幅が減少することを、親ノードN3に通知してもよい。具体的には、ノードN7は、ノードN10への送信の終了予定時刻までの時間と、ノードN7を根ノードとする部分グラフに属するノード具体的にはノードN7のみがノードN10への送信のために消費する帯域幅の合計値を親ノードN3に通知してもよい。つまり、ノードN7は、ステップS510とS517で計算した一時使用期限のうちの最大値、あるいは|C|回繰り返したステップS617で計算した一時使用期限のうちの最大値を、親ノードN3に通知してもよい。また、ノードN7は、ステップS510とS517で計算した一時使用帯域幅の総計、あるいは|C|回繰り返したステップS617で計算した一時使用帯域幅の総計を、親ノードN3に通知してもよい。通知を受信したノードN3は、子ノード情報のノードN7のエントリに、一時使用帯域幅と一時使用期限のペアを追加する。具体的には、ノードN3は、ノードN7から通知された帯域幅を一時使用帯域幅として設定してもよい。また、ノードN3は、現在時刻にノードN7から通知された時間を足し、加算の結果得られた時刻から、ノードN7とN3の間のRTTの半分を引き、減算の結果を一時使用期限として設定してもよい。すると、ノードN3は、ステップS20の再送要求を受信したときに、ノードN7を責任ノードから除外することもできる。あるいは、ノードN3は、ノードN7を責任ノードとして選択するにしても、ノードN7に割り当てる量を小さくすることもできる。変形の第10の観点は、ハードウェア構成に関する。図5の通信装置400は、図4のようにプログラムを実行する汎用のコンピュータ300により実現されてもよい。しかし、実施形態によっては、通信装置400の一部または全部が、ASICApplicationSpecificIntegratedCircuitなどの専用のハードウェア回路により実現されてもよい。変形の第11の観点は、IPアドレスの種類に関する。上記の説明では、説明の簡単化のため、IPアドレスとしてグローバルアドレスを例示した。しかし、端末装置205A~205Lにプライベートアドレスが設定されている場合でも、適宜のNAT通過NetworkAddressTranslationtraversal技術を利用することにより、上記と同様の再送制御を行うデータ配信システムを実現することが可能である。最後に、上記の種々の実施形態に関して、さらに下記の付記を開示する。付記1コンピュータに、前記コンピュータの属する論理ネットワークに属する要求ノードから、特定情報の送信を求める第1の要求を、前記論理ネットワークのトポロジによらず直接的に、または前記論理ネットワークの前記トポロジにおいて前記コンピュータに相当するノードに入って来るパス上の1つ以上の他のノードを介して、受信し、前記論理ネットワークの前記トポロジにおいて前記コンピュータに相当する前記ノードから出て行くエッジにより前記コンピュータと論理的に接続された1つ以上の子ノードと、前記コンピュータの中から、前記コンピュータよりは前記1つ以上の子ノードを優先して、前記特定情報の送信に関与する1つ以上の責任ノードを選択し、各責任ノードに前記特定情報の一部または全部である部分特定情報を対応づけ、前記コンピュータを前記責任ノードとして選択した場合は、前記コンピュータに対応づけた部分特定情報を、前記要求ノードに送信し、前記1つ以上の子ノードのうち前記責任ノードとして選択した責任子ノードがある場合は、前記責任子ノードに対応づけた部分特定情報を前記要求ノードに送信するよう求める第2の要求を、前記責任子ノードに送信することを含む処理を実行させるプログラム。付記2各責任ノードに前記部分特定情報を対応づける処理は、前記責任子ノードが1つ以上ある場合は、各責任子ノードについて、前記論理ネットワークの前記トポロジにおいて当該責任子ノードを根ノードとする部分グラフに含まれるノードの使用可能リソースの合計量を示す使用可能合計リソース情報を参照し、前記特定情報のうち、前記使用可能合計リソース情報が示す量以下のリソースで送信可能な部分を、当該責任子ノードに対応づけることを含むことを特徴とする付記1に記載のプログラム。付記3前記プログラムが前記コンピュータに実行させる前記処理は、各子ノードについて、前記論理ネットワークの前記トポロジにおいて当該子ノードを根ノードとする部分グラフに含まれるノードのリソースの合計量を示す合計リソース情報を、当該子ノードから受信し、受信した前記合計リソース情報を当該子ノードと対応づけて記憶し、前記コンピュータのリソースの量と、各子ノードから受信して記憶した前記合計リソース情報が示す前記合計量との合計を算出し、算出した前記合計を示す新たな合計リソース情報を、前記論理ネットワークの前記トポロジにおいて前記コンピュータに相当する前記ノードの親ノードに送信し、前記責任子ノードが1つ以上ある場合は、各責任子ノードについて、当該責任子ノードと対応づけて記憶した前記合計リソース情報から、前記使用可能合計リソース情報を取得することをさらに含む、ことを特徴とする付記2に記載のプログラム。付記4前記1つ以上の責任ノードを選択する処理は、前記1つ以上の子ノードが存在する場合は、前記コンピュータのリソースの量によらず、前記1つ以上の子ノードを前記コンピュータよりも優先して前記1つ以上の責任ノードとして選択し、前記1つ以上の子ノードが存在しない場合は、前記コンピュータを前記1つ以上の責任ノードとして選択する処理であることを特徴とする付記2または3に記載のプログラム。付記5前記責任子ノードがある場合、前記プログラムが前記コンピュータに実行させる前記処理は、前記責任子ノードに対応づけた前記部分特定情報の送信にかかる負荷に応じて消費されるリソースの量を示す消費リソース情報を、前記責任子ノードおよび有効期限と対応づけて記憶することをさらに含み、前記責任子ノードが1つ以上ある場合は、各責任ノードに前記部分特定情報を対応づける処理は、各責任子ノードについて、当該責任子ノードと対応づけて記憶され、かつ対応づけられた前記有効期限がまだ満了していない前記消費リソース情報がある場合は、当該責任子ノードから受信した前記合計リソース情報が示す前記合計量から、当該責任子ノードと対応づけて記憶された前記消費リソース情報が示す量を減じることで、当該責任子ノードについての前記使用可能合計リソース情報を取得し、当該責任子ノードと対応づけて記憶され、かつ対応づけられた前記有効期限がまだ満了していない前記消費リソース情報がない場合は、当該責任子ノードから受信した前記合計リソース情報を当該責任子ノードについての前記使用可能合計リソース情報として取得することを含む、ことを特徴とする付記3に記載のプログラム。付記6前記第1の要求は、期限に関する第1の制約条件を指定する第1の期限情報を含み、前記コンピュータを前記責任ノードとして選択した場合における、前記コンピュータに対応づけた前記部分特定情報を前記要求ノードに送信する処理は、前記第1の制約条件を満たすタイミングで行われ、前記責任子ノードがある場合、前記プログラムが前記コンピュータに実行させる前記処理は、さらに、当該責任子ノードと前記コンピュータとの間の通信にかかる通信時間と前記第1の制約条件を用いて、期限に関する第2の制約条件を算出し、前記第2の制約条件を指定する第2の期限情報を、当該責任子ノードに送信する前記第2の要求に含めることを含む、ことを特徴とする付記1から5のいずれか1項に記載のプログラム。付記7前記第1の期限情報は、送信開始の期限に関する第1の値と送信終了の期限に関する第2の値を含み、前記第2の期限情報は、送信開始の期限に関する第3の値と送信終了の期限に関する第4の値を含み、前記コンピュータを前記責任ノードとして選択した場合における、前記コンピュータに対応づけた前記部分特定情報を前記要求ノードに送信する処理は、前記第1の値と前記第2の値に基づいて送信タイミングを制御することを含み、個別の責任子ノードに対応してそれぞれ前記第2の制約条件を算出する処理では、前記通信時間と、当該個別の責任子ノードに前記特定情報のうちどの部分を前記部分特定情報として対応づけたかということが、前記第3の値と前記第4の値の算出に用いられる、ことを特徴とする付記6に記載のプログラム。付記8前記1つ以上の責任ノードを選択する処理は、前記第1の制約条件にしたがって、前記1つ以上の子ノードの中から前記責任ノードの候補を絞り込むことを含むことを特徴とする付記6または7に記載のプログラム。付記9前記第1の要求は、第1のビットレートを指定する第1のビットレート情報を含み、前記プログラムが前記コンピュータに実行させる前記処理は、各責任ノードに第1のビットレートの少なくとも一部を割り当てることをさらに含み、前記コンピュータを前記責任ノードとして選択した場合における、前記コンピュータに対応づけた前記部分特定情報を前記要求ノードに送信する処理は、前記コンピュータに割り当てたビットレートで行われ、前記責任子ノードがある場合、前記プログラムが前記コンピュータに実行させる前記処理は、当該責任子ノードに割り当てた第2のビットレートを示す第2のビットレート情報を、当該責任子ノードに送信する前記第2の要求に含めることさらに含む、ことを特徴とする付記1から8のいずれか1項に記載のプログラム。付記10前記特定情報は、前記論理ネットワーク内で配信される配信情報のうち、前記要求ノードの親ノードから前記要求ノードへのエッジにおいて消失したために前記要求ノードでは受信することのできなかった部分である、ことを特徴とする付記1から9のいずれか1項に記載のプログラム。付記11通信装置であって、前記通信装置の属する論理ネットワークに属する要求ノードから、特定情報の送信を求める第1の要求を、前記論理ネットワークのトポロジによらず直接的に、または前記論理ネットワークの前記トポロジにおいて前記通信装置に相当するノードに入って来るパス上の1つ以上の他のノードを介して、受信する受信手段と、前記論理ネットワークの前記トポロジにおいて前記通信装置に相当する前記ノードから出て行くエッジにより前記通信装置と論理的に接続された1つ以上の子ノードと、前記通信装置の中から、前記通信装置よりは前記1つ以上の子ノードを優先して、前記特定情報の送信に関与する1つ以上の責任ノードを選択する選択手段と各責任ノードに前記特定情報の一部または全部である部分特定情報を対応づける対応づけ手段と、前記通信装置を前記選択手段が前記責任ノードとして選択した場合は、前記通信装置に対応づけた部分特定情報を、前記要求ノードに送信し、前記1つ以上の子ノードのうち前記選択手段が前記責任ノードとして選択した責任子ノードがある場合は、前記責任子ノードに対応づけた部分特定情報を前記要求ノードに送信するよう求める第2の要求を、前記責任子ノードに送信する送信手段と、を備える通信装置。付記12通信装置が実行する方法であって、前記通信装置の属する論理ネットワークに属する要求ノードから、特定情報の送信を求める第1の要求を、前記論理ネットワークのトポロジによらず直接的に、または前記論理ネットワークの前記トポロジにおいて前記通信装置に相当するノードに入って来るパス上の1つ以上の他のノードを介して、受信し、前記論理ネットワークの前記トポロジにおいて前記通信装置に相当する前記ノードから出て行くエッジにより前記通信装置と論理的に接続された1つ以上の子ノードと、前記通信装置の中から、前記通信装置よりは前記1つ以上の子ノードを優先して、前記特定情報の送信に関与する1つ以上の責任ノードを選択し、各責任ノードに前記特定情報の一部または全部である部分特定情報を対応づけ、前記通信装置を前記責任ノードとして選択した場合は、前記通信装置に対応づけた部分特定情報を、前記要求ノードに送信し、前記1つ以上の子ノードのうち前記責任ノードとして選択した責任子ノードがある場合は、前記責任子ノードに対応づけた部分特定情報を前記要求ノードに送信するよう求める第2の要求を、前記責任子ノードに送信することを特徴とする方法。"