(57)【要約】【課題】データの配信システム中での受信品質の低下を防止する。【解決手段】通信システムは、第１の通信装置、複数の転送先、複数の通信装置を備える。第１の通信装置は、データの配信を受け、複数の転送先にデータを転送する。複数の通信装置は、複数の転送先のいずれかを介してデータを受信する。第１の通信装置は、複数の転送先に含まれる第２の通信装置でのデータの受信品質より、複数の通信装置に含まれる第３の通信装置でのデータの受信品質が良い場合、第２の通信装置に、第３の通信装置からデータを受信することを要求する。第２の通信装置は、第１の通信装置からの要求を受信すると、接続先を第１の通信装置から第３の通信装置に変更する。【選択図】図２
2017022631.tif 000002
【特許請求の範囲】
【請求項１】
データの配信を受けている第１の通信装置と、
前記第１の通信装置が前記データを転送する複数の転送先と、
前記複数の転送先のいずれかを介して前記データを受信する複数の通信装置
を備え、
前記第１の通信装置は、前記複数の転送先に含まれる第２の通信装置での前記データの受信品質より、前記複数の通信装置に含まれる第３の通信装置での前記データの受信品質が良い場合、前記第２の通信装置に、前記第３の通信装置から前記データを受信することを要求し、
前記第２の通信装置は、前記第１の通信装置からの要求を受信すると、接続先を前記第１の通信装置から前記第３の通信装置に変更する
ことを特徴とする通信システム。
【請求項２】
前記第１の通信装置は、
前記複数の通信装置のうちで前記第２の通信装置よりも良い受信品質で前記データを受信している装置から対象装置を選択し、
前記対象装置に、前記データの転送元を前記第１の通信装置に変更することを要求し、
前記対象装置が前記第１の通信装置に接続すると、前記対象装置に前記データを転送する
ことを特徴とする請求項１に記載の通信システム。
【請求項３】
前記第２の通信装置は、前記第３の通信装置に接続する前の前記第２の通信装置の接続先が前記第１の通信装置であることを、前記第３の通信装置に通知し、
前記第３の通信装置が前記第１の通信装置に接続し、
前記第１の通信装置は、前記第３の通信装置との接続の確立後、前記第３の通信装置に前記データを転送する
ことを特徴とする請求項１に記載の通信システム。
【請求項４】
前記第１の通信装置は、
前記複数の通信装置の各々について、当該通信装置が前記データを転送中の装置に加えて他の通信装置にも前記データを配信可能な装置であるかを表わす情報を取得し、
前記複数の通信装置のうちで、前記第２の通信装置よりも前記データの受信品質が良く、前記他の通信装置に前記データを配信可能な装置を、前記第３の通信装置に選択する
ことを特徴とする請求項１〜３のいずれか１項に記載の通信システム。
【請求項５】
前記第１の通信装置は、
前記複数の転送先の間での前記データの受信品質の違いが大きいほど大きくなるように計算される指標値が閾値以上の場合、前記第２の通信装置の前記データの転送元を前記第３の通信装置に変更し、
前記指標値が前記閾値未満の場合、前記第２の通信装置の前記データの転送元を変更しない
ことを特徴とする請求項１〜４のいずれか１項に記載の通信システム。
【請求項６】
配信元から送信されたデータが配信される配信システムにおいて、
第１の通信装置は、
前記データを受信し、
第２の通信装置を含む複数の転送先に前記データを転送し、
前記複数の転送先のいずれかを介して前記データを受信する複数の通信装置のうちで、前記第２の通信装置よりも受信品質の良い第３の通信装置を検出すると、前記第２の通信装置に、前記第３の通信装置から前記データを受信することを要求し、
前記第２の通信装置は、前記第１の通信装置からの要求を受信すると、接続先を前記第１の通信装置から前記第３の通信装置に変更する
ことを特徴とする通信方法。
【請求項７】
配信元から送信されたデータが配信される配信システム中の通信装置であって、
前記データを受信する受信部と、
第１の通信装置を含む複数の転送先に前記データを転送する送信部と、
前記複数の転送先のいずれかを介して前記データを受信する複数の通信装置のうちで、前記第１の通信装置よりも受信品質の良い第２の通信装置を検出すると、前記第１の通信装置に、前記第２の通信装置から前記データを受信することを要求する制御部
を備えることを特徴とする通信装置。
【請求項８】
配信元から送信されたデータが配信される配信システムに含まれる第１の通信装置に、
前記データを取得し、
第２の通信装置を含む複数の転送先に前記データを転送し、
前記複数の転送先のいずれかを介して前記データを受信する複数の通信装置のうちで、前記第２の通信装置よりも受信品質の良い第３の通信装置を検出すると、前記第２の通信装置に、前記第３の通信装置から前記データを受信することを要求する
処理を行わせることを特徴とする通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システムと、通信システムで行われる通信方法に関する。
【背景技術】
【０００２】
通信装置間でのピアツーピア（Peer to Peer、Ｐ２Ｐ）型の通信処理により、複数の装置にデータが配信されるデータ配信システムが使用されることがある。このようなデータ配信システムでは、データの配信元を起点としたツリー状のネットワークが使用されることがある。データ配信システムに参加している通信装置は、受信品質をモニタしており、自装置での受信品質が所定の閾値を下回ると、接続先との間の通信を切断するとともに、データ配信システム中で自装置が接続可能な他の装置との間の通信を開始する。
【０００３】
図１は、データ配信システムの例を説明する図である。図１に示すデータ配信システムには、サーバ５と通信装置１ａ〜１ｈが含まれており、通信の開始時には、通信装置１ｈは、通信装置１ｆに接続しているとする。サーバ５は、データを通信装置１ａに配信し、通信装置１ａは、サーバ５から受信したデータを、通信装置１ｂと通信装置１ｃに送信する。通信装置１ｂは、通信装置１ａから受信したデータを、通信装置１ｆに送信する。同様に、通信装置１ｃは、通信装置１ａから受信したデータを、通信装置１ｄと通信装置１ｅに送信する。一方、通信装置１ｆは、通信装置１ｂから受信したデータを、通信装置１ｇと通信装置１ｈに送信する。図１において、各通信装置の近傍の数値は、サーバから配信されたデータのうち、各通信装置で正しく受信できたデータの百分率である。例えば、通信装置１ａ〜１ｄでは配信されたデータの９９％、通信装置１ｅ〜１ｇでは、配信されたデータの９８％を正しく受信できている。一方、通信装置１ｈでは、配信されたデータの９４％を正しく受信できている。
【０００４】
ここで、通信装置が接続先を変更するかを判定するための閾値（受信品質閾値）が、いずれの装置でも９５％に設定されているとする。この場合、各通信装置は、配信されたデータの９５％以上を正しく受信できている場合は接続先を変更しないが、正しく受信したデータが９５％を下回ると、接続先を変更する。図１の例では、通信装置１ｈが通信装置１ｆに接続しているときに受信したデータは、配信されたデータの９４％であるので、通信装置１ｈは、接続先を通信装置１ｆから他の装置に変更することを決定する。通信装置１ｈは、通信装置１ｄに接続可能であることを特定すると、矢印Ａで示すように、接続先を通信装置１ｄに変更する。図１の例では、接続先を通信装置１ｄに変更した後では、通信装置１ｈは、矢印Ｂに示すように通信装置１ｄからデータを受信することにより、配信されたデータの９９％を受信できている。そこで、通信装置１ｈは、通信装置１ｄを接続先としてデータを取得する。
【０００５】
関連する技術として、子端末との間で生成可能な通信ルートの残数が閾値Ｋ１以下になった親端末と通信している子端末は、形成可能な通信ルートの残数が閾値Ｋ２を上回っている親端末に接続先を変更する方法が提案されている（例えば特許文献１など）。また、マルチホップ無線ネットワーク中の通信装置が、アドレスを用いた所定の計算式から求めた経路から選択した経路を使って、中継先を決定する経路設定方法も提案されている（例えば、特許文献２など）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−７０３６８号公報
【特許文献２】特開２００９−２００７６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
通信装置が接続先を変更するかを判定する際に用いる閾値を高い値にすると、データを配信可能な通信装置の数が少なくなるので、閾値は、ユーザが快適に受信データを使用できると想定される値以下に設定されることがある。この場合、受信品質が閾値をわずかに超えているに過ぎない通信装置であっても、閾値を下回るまでは接続先を変更しない。下流側の通信装置での受信品質は接続先の通信装置よりも良くなることはないので、受信品質が閾値をわずかに上回る通信装置がデータ配信システムの上流側に存在すると、下流側の通信装置での受信品質が悪くなりやすい。
【０００８】
本発明は、データの配信システム中での受信品質の低下を防止することを目的とする。
【課題を解決するための手段】
【０００９】
１つの態様では、通信システムは、データの配信を受けている第１の通信装置と、前記第１の通信装置が前記データを転送する複数の転送先と、前記複数の転送先のいずれかを介して前記データを受信する複数の通信装置を備える。前記第１の通信装置は、前記複数の転送先に含まれる第２の通信装置での前記データの受信品質より、第３の通信装置での前記データの受信品質が良い場合、前記第２の通信装置に、前記第３の通信装置から前記データを受信することを要求する。ここで、第３の通信装置は、前記複数の通信装置に含まれる装置である。前記第２の通信装置は、前記第１の通信装置からの要求を受信すると、接続先を前記第１の通信装置から前記第３の通信装置に変更する。
【発明の効果】
【００１０】
１つの側面として、データの配信システム中での受信品質の低下を防止することができる。
【図面の簡単な説明】
【００１１】
【図１】データ配信システムの例を説明する図である。
【図２】実施形態にかかる通信方法の例を説明する図である。
【図３】通信装置の構成の例を説明する図である。
【図４】通信装置のハードウェア構成の例を説明する図である。
【図５】データの転送先からの品質情報の取得方法の例を説明する図である。
【図６】品質情報の通知方法の例を説明するフローチャートである。
【図７】受信品質の計算方法の例を説明する図である。
【図８】受信品質に有意差があるかを判定する方法の例を説明する図である。
【図９】接続先の検索方法の例を説明する図である。
【図１０】接続先の検索方法の例を説明する図である。
【図１１】接続先の変更処理の例を説明する図である。
【図１２】接続先の検索方法の例を説明する図である。
【図１３】接続先の検索方法の例を説明する図である。
【図１４】接続先の検索方法の例を説明する図である。
【図１５Ａ】接続先の検索方法の例を説明するフローチャートである。
【図１５Ｂ】接続先の検索方法の例を説明するフローチャートである。
【図１６】受信品質の比較方法の例を説明するフローチャートである。
【図１７】接続先の変更方法の例を説明するフローチャートである。
【発明を実施するための形態】
【００１２】
図２は、実施形態にかかる通信方法の例を説明する図である。ケースＣ１は、通信装置１０Ａ〜１０Ｊがデータの配信を受けている配信システムの例である。各通信装置１０から伸びている実線の矢印は、その通信装置１０が他の通信装置１０にデータを転送していることを示す。例えば、通信装置１０Ａは、通信装置１０Ｂと通信装置１０Ｃにデータを転送し、通信装置１０Ｂは通信装置１０Ｄと通信装置１０Ｅにデータを転送している。以下の説明では、紙面の都合から、送信先の通信装置１０を図示しないこともある。例えば、通信装置１０Ｉから矢印が２本伸びていることは、通信装置１０Ｉが他の２台の通信装置１０にデータを転送していることを示しているが、通信装置１０Ｉからのデータの転送先は図示していない。図２以降においても、図１と同様に、各通信装置で正しく受信できたデータの百分率を、通信装置１０の近傍に示す。
【００１３】
ケースＣ１の例では、通信装置１０Ａ、通信装置１０Ｂは、サーバ５（図示せず）から送信された全てのパケットを受信しているが、通信装置１０Ｃは送信されたパケットのうちの９０％だけを受信できている。通信装置１０Ｃは送信されたパケットのうちの９０％しか受信に成功していないため、通信装置１０Ｃを介してパケットを受信する通信装置１０では、通信装置１０Ｃ以下の品質でしかデータを受信しない。例えば、通信装置１０Ｃからパケットを受信している通信装置１０Ｆでは、送信されたパケットの８９％しか受信していない。
【００１４】
以下、複数の装置の接続関係を分かりやすくするために、ある通信装置１０からのデータの転送先を、その装置の「子端末」と記載する。同様に、ある装置の子端末からデータを受信する通信装置１０を、ある通信装置１０の「孫端末」と記載する。また、子端末に対してデータを送信している通信装置１０のことを、子端末にとっての「親端末」と記載することもある。さらに、ある通信装置１０でのデータの転送先（子端末）を介してデータを取得する装置には、ある通信装置１０にとっての孫端末や孫端末からデータを取得する装置など、子端末を経由してデータを受信する装置が含まれるものとする。
【００１５】
通信装置１０Ａは、データの転送先の通信装置１０Ｂ、通信装置１０Ｃから定期的に各装置の受信品質や新たな装置の接続の可否を表す情報を取得する。このとき、通信装置１０Ａは、子端末である通信装置１０Ｂ、１０Ｃから、孫端末の情報も取得してもよい。通信装置１０Ａは、孫端末からも、各孫端末や各孫端末を介してデータを受信している通信装置１０の情報を取得できる。従って、通信装置１０Ａは、例えば、ケースＣ１に示すネットワークの状態を認識することができる。例えば、通信装置１０Ａは、通信装置１０Ａの子端末である通信装置１０Ｃでの受信品質が９０％であることを特定できる。さらに、通信装置１０Ａは、通信装置１０Ａの孫端末である通信装置１０Ｅを介してデータを受信している通信装置１０Ｇでは、受信品質が９９％であることも特定する。すると、通信装置１０Ａは、子端末の通信装置１０Ｃより下流の通信装置１０Ｇなどの装置での受信品質の方が、通信装置１０Ｃでの受信品質が良いことから、通信装置１０Ｃを下流側に移動させることを決定する。通信装置１０Ａは、通信装置１０Ｃに接続先を通信装置１０Ａから通信装置１０Ｇに変更することを要求する。
【００１６】
ケースＣ２は、接続の切り替えの例を示している。ケースＣ２では、通信装置１０Ｇから通信装置１０Ｃに向かう破線の矢印で、通信装置１０Ｃが通信装置１０Ｇの下流に移動したことと、通信装置１０Ｃへのデータの流れを示す。また、通信装置１０Ａから通信装置１０Ｃに向かう実線の矢印に付した×印は、通信装置１０Ｃが通信装置１０Ａとの間の接続を切断することを示す。
【００１７】
ケースＣ３は、ケースＣ２での処理により得られたネットワークの例である。ケースＣ３に示すネットワークでは、通信装置１０Ａには通信装置１０Ｂが接続しているが、通信装置１０Ｃは通信装置１０Ａに接続していない。通信装置１０Ｃは、通信装置１０Ａの子端末よりも下流側の通信装置１０Ｇに接続している。このため、通信装置１０Ｃは、通信装置１０Ｂ、通信装置１０Ｅ、通信装置１０Ｇの３台の通信装置１０を介して、通信装置１０Ａに接続されており、ケースＣ２に比べて下流側に移動している。
【００１８】
このように、実施形態にかかる方法では、受信品質の悪い通信装置１０が上流側から下流側に移動する。このため、通信装置１０Ｃのように受信品質の悪い装置が上流側に接続されていることにより、データを受信している装置での受信品質が低下する可能性を低くすることができる。ここで、受信品質が低下すると、受信品質の低下による再送や通信の切断が多くなり、通信が効率的に行われない可能性もある。実施形態にかかる方法では、受信品質の悪い通信装置１０が下流側に移動するので、受信品質の低下による通信効率の低下も防止している。
【００１９】
さらに、通信装置１０Ｃが下流側に移動したことにより、通信装置１０Ａには他の通信装置１０が接続可能である。このため、新たにデータ配信システムに参加する通信装置１０を通信装置１０Ａに接続させることができる。また、既にデータ配信システムに参加している通信装置１０のうちで、比較的受信品質が良い通信装置１０を通信装置１０Ａに接続させることにより、システム内の階層を減らして、さらに通信効率をよくすることもできる。例えば、ケースＣ３では、通信装置１０Ａから末端の通信装置１０Ｆまでは４台の通信装置１０を介して接続されている。ここで、通信装置１０Ｇを通信装置１０Ｃの代わりに通信装置１０Ａに接続させることにより、通信装置１０Ｆは通信装置１０Ｇと通信装置１０Ｃを介して通信装置１０Ａに接続できる。この場合、通信装置１０Ａから通信装置１０Ｆにデータが届くまでに行われる転送処理の回数が減るため、通信装置１０Ｆのような末端の通信装置１０での受信品質の低下を防ぎやすい。
【００２０】
なお、図２では、通信装置１０Ａが他の通信装置１０を移動させることや移動先を決定する場合を例として説明したが以上の説明は一例に過ぎない。ネットワーク中で子端末と孫端末が接続しているいずれの通信装置１０も、通信装置１０Ａと同様に、自装置を介してデータを取得している装置の接続先を変更するかを決定すると共に、新たな接続先を指定することができる。
【００２１】
＜装置構成＞
図３は、通信装置１０の構成の例を説明する図である。通信装置１０は、送受信部１３、制御部２０、記憶部３０を備える。記憶部３０は、接続情報テーブル３１を記憶する。制御部２０は、取得部２１、品質算出部２２、切り替え要求部２３、接続処理部２５、データ処理部２６、中継処理部２７を有する。
【００２２】
送受信部１３は、受信部１１と送信部１２を有する。受信部１１は、サーバ５や他の通信装置１０など、他の装置からパケットを受信する。送信部１２は、サーバ５や他の通信装置１０など、他の装置にパケットを送信する。
【００２３】
取得部２１は、子端末や孫端末からの受信パケットを用いて、自装置の下流側に接続している通信装置１０での受信品質などの情報を取得する。取得部２１は、取得した情報を、適宜、接続情報テーブル３１に記録する。品質算出部２２は、自装置での配信データの受信品質を算出する。切り替え要求部２３は、子端末の受信品質を、いずれかの子端末を介してデータを受信している通信装置１０での受信品質と比較することにより、子端末を下流側に移動させるかを判定する。いずれかの子端末を介してデータを受信している通信装置１０での受信品質が、子端末の受信品質よりも良い場合、切り替え要求部２３は、子端末に宛てに、接続先の移動を要求するための制御パケット（切り替え要求パケット）を生成する。
【００２４】
接続処理部２５は、他の通信装置１０から接続先の変更を要求された場合、新たに指定された接続先の通信装置１０との間の接続を確立する。データ処理部２６は、データ配信システムに参加中に受信した配信データを処理する。中継処理部２７は、配信対象のデータを自装置から取得している通信装置１０に対して、配信対象のデータを中継するための処理を行う。
【００２５】
図４は、通信装置１０のハードウェア構成の例を説明する図である。通信装置１０は、プロセッサ１０１、メモリ１０２、バス１０３、ネットワークインタフェース１０４を備える。プロセッサ１０１は、ＣＰＵ（Central Processing Unit）を含む任意の処理回路である。プロセッサ１０１は、メモリ１０２をワーキングメモリとして使用して、プログラムを実行することにより、様々な処理を実行する。メモリ１０２には、ＲＡＭ（Random Access Memory）が含まれ、さらに、ＲＯＭ（Read Only Memory）等の不揮発性のメモリも含まれる。また、メモリ１０２には、適宜、プログラムが格納される。バス１０３は、プロセッサ１０１、メモリ１０２、ネットワークインタフェース１０４を、互いにデータの入出力が可能になるように接続する。通信装置１０において、プロセッサ１０１は制御部２０として動作し、メモリ１０２は記憶部３０として動作する。さらに、送受信部１３は、プロセッサ１０１とネットワークインタフェース１０４により実現される。
【００２６】
＜実施形態＞
以下、実施形態にかかる通信を、配信先の情報の取得方法、各装置で行われる受信品質の計算方法、子端末の接続先を変更するかの判定、接続先の検索と接続先の変更に分けて説明する。以下、処理を行っている通信装置１０を明確にするために、符号の末尾に通信装置１０に割り当てられた識別子と同じアルファベットの小文字を付すことがある。例えば、取得部２１ａは、通信装置１０Ａに含まれている取得部２１を指す。
【００２７】
（１）配信先の情報の取得
図５は、データの転送先からの品質情報の取得方法の例を説明する図である。以下、図５のネットワークＮ１に示すネットワークを例として説明する。ネットワークＮ１では、通信装置１０Ａは通信装置１０Ｂと通信装置１０Ｃにデータを配信する。通信装置１０Ｂは、通信装置１０Ｄと通信装置１０Ｅへデータを配信し、通信装置１０Ｅは通信装置１０Ｇと通信装置１０Ｈにデータを配信する。さらに、通信装置１０Ｇは通信装置１０Ｉ、通信装置１０Ｈは通信装置１０Ｊ、通信装置１０Ｃは通信装置１０Ｆにデータを配信している。
【００２８】
子端末が接続している通信装置１０の各々では、取得部２１が、自装置の子端末から子端末自身の通信の状況やその子端末に接続している孫端末などの通信情報を取得するために、定期的に制御パケットを生成する。なお、各通信装置１０は、自装置の接続先や子端末のアドレスを、接続を確立する際の制御により認識しているものとする。以下、通信情報の取得の際に使用される制御パケットを「情報要求パケット」と記載することがある。ここでは、通信装置１０Ａの取得部２１ａが、通信装置１０Ａの孫端末までの情報を取得するための情報要求パケットを通信装置１０Ｂ宛に生成したとする。
【００２９】
図５のＰ１は、情報要求パケットのフォーマットの例である。情報要求パケットは、ＩＰ（Internet Protocol）ヘッダ、情報要求パケットであることを示す情報、範囲情報を含む。ここで、範囲情報は、情報要求パケットによって情報の通知が要求されている範囲を表わす値であり、情報要求パケットを受信した装置を基準として、どの階層までの端末の情報の通知を要求するかを示す値である。以下の説明では、範囲情報は、基準とする装置との間の通信に使用される通信リンクの数を−１倍した値である。例えば、情報要求パケットが通信装置１０Ｂに送信される場合、通信装置１０Ｂが階層情報の基準となる。この場合、通信装置１０Ｂの階層は０、通信装置１０Ｂの子端末の階層は−１、通信装置１０Ｂの孫端末の階層は−２となる。
【００３０】
通信装置１０Ｂの受信部１１ｂは、情報要求パケットを受信し、取得部２１ｂに出力する。取得部２１ｂは接続情報テーブル３１ｂに記録されている情報と、品質算出部２２ｂで計算された通信装置１０Ｂでの受信品質を用いて、通信装置１０Ａに通知するデータを生成する。取得部２１ｂが生成したデータの例をデータＤ１に示す。
【００３１】
図５のデータＤ１には、情報要求パケットを受信した装置自身の情報と、情報要求パケットで指定された範囲の階層の装置の情報が含まれる。また、各通信装置１０について、その装置の識別情報、ＩＰアドレス、関係、品質、接続可否が含まれる。関係は、情報要求パケットを受信した通信装置１０を基準としたときの通知対象の通信装置１０が属する階層を表わす値である。例えば、通信装置１０Ｂは通信装置１０Ａから情報要求パケットを受信した装置であるので、通信装置１０Ｂが通信装置１０Ａに通知する情報では、通信装置１０Ｂの関係は０である。一方、通信装置１０Ｄと通信装置１０Ｅはいずれも通信装置１０Ｂの子端末であるので、通信装置１０Ｄと通信装置１０Ｅのいずれについても関係の値は−１である。
【００３２】
品質は、通知対象の通信装置１０での受信品質である。受信品質の計算方法の詳細については後述する（図７）。図５の例では、通信装置１０Ｂの受信品質は１００％、通信装置１０Ｄの受信品質は９９％、通信装置１０Ｅの受信品質は９８％であるものとする。接続可否は、通知対象の通信装置１０が新たな接続を形成することができるかを表わす情報である。データＤ１では、通信装置１０Ｂ、通信装置１０Ｄでは、さらに新たな子端末との間で接続の確立が可能であるのに対し、通信装置１０Ｅは新たな接続を形成しない場合を示している。取得部２１ｂは、データＤ１に示す情報にヘッダを付して、通信装置１０Ａ宛ての応答パケットを生成する。送信部１２ｂは、応答パケットを通信装置１０Ａに送信する。
【００３３】
通信装置１０Ａの受信部１１ａは、応答パケットを受信すると、取得部２１ａに出力する。取得部２１ａは、応答パケットに含まれているデータを接続情報テーブル３１ａに記録する。このとき、取得部２１ａは、通信装置１０の識別情報、ＩＰアドレス、品質、接続可否については、子端末から通知された情報を接続情報テーブル３１ａに記録するが、関係を表わす値は、通信装置１０Ａを基準とした値に変更する。例えば、データＤ１は通信装置１０Ｂから送信されたデータであるので、データＤ１中の基準となっている通信装置１０Ｂは通信装置１０Ａにとっての子端末である。そこで、データＤ１に含まれているいずれの装置についても、取得部２１ａは、関係を表わす値を１つ減算して得た値を、接続情報テーブル３１ａに記録する。すると、通信装置１０Ｂの関係＝−１、通信装置１０Ｄの関係＝−２、通信装置１０Ｅの関係＝−２となる。換言すると、接続情報テーブル３１ａには、通信装置１０Ｂが通信装置１０Ａの子端末であることと、通信装置１０Ｄと通信装置１０Ｅが通信装置１０Ａの孫端末であることが記録される。
【００３４】
図５を参照しながら、通信装置１０Ａが子端末に情報要求パケットを送信して、子端末からデータを受信する場合を説明したが、通信装置１０は、孫端末など、子端末よりも下流側の装置に対して情報要求パケットを送信することもできる。この場合も、情報要求パケットに対する応答パケットで得られたデータが接続情報テーブル３１に格納されるが、応答パケット中の関係の値は、データの送信元と情報要求パケットの送信元の間の関係に応じて、修正される。
【００３５】
図６は、品質情報の通知方法の例を説明するフローチャートである。図６は、情報要求パケットを受信した通信装置１０が、応答パケットを送信するまでに行う処理の例を示している。
【００３６】
品質算出部２２は、自装置での受信品質を計算する（ステップＳ１）。取得部２１は、情報要求パケットを受信するまで待機する（ステップＳ２でＮｏ）。取得部２１は、情報要求パケットを受信すると、自装置に子端末として接続している通信装置１０があるかを判定する（ステップＳ２でＹｅｓ、ステップＳ３）。自装置に子端末として接続している通信装置１０がある場合、取得部２１は、接続情報テーブル３１に格納している子端末のデータと、品質算出部２２で算出された自装置の品質に関するデータをマージする（ステップＳ３でＹｅｓ、ステップＳ４）。取得部２１は、情報要求パケット中の範囲フィールドの値を用いて、孫端末のデータが要求されているかを判定する（ステップＳ５）。孫端末のデータが要求されている場合、取得部２１は、孫端末があるかを判定する（ステップＳ６）。ここで、孫端末の有無は、子端末からの情報の取得の際に、合わせて取得しているものとする。自装置に孫端末がある場合、取得部２１は、孫端末の品質データを接続情報テーブル３１から取得し、子端末と自装置のデータをマージして得られたデータに、孫端末のデータをさらにマージする（ステップＳ６でＹｅｓ、ステップＳ７）。取得部２１は、生成したデータにヘッダなどの情報を付加して応答パケットを生成し、送信部１２を介して、情報要求パケットの送信元に送信する（ステップＳ８）。
【００３７】
一方、ステップＳ６において、自装置に孫端末が無いと判定した場合も、取得部２１は、ステップＳ８の処理を行う（ステップＳ６でＮｏ、ステップＳ８）。同様に、ステップＳ３において、自装置に子端末が無いと判定した場合、取得部２１は、ステップＳ８の処理を行う（ステップＳ３でＮｏ、ステップＳ８）。
【００３８】
（２）受信品質の計算方法
図７は、受信品質の計算方法の例を説明する図である。図７を参照しながら、データ配信システム中の各装置やデータ配信システムに参加しようとする装置において行われる受信品質の計算方法の例を説明する。図７の例では、配信データを配信する装置は、配信先の装置に対して、データパケットと制御パケットを送信する。なお、配信データを配信する装置は、サーバ５だけでなく、他の通信装置１０に対して配信データを含むパケットを送信する通信装置１０も含む。図７のＰ１１の例では、データ配信システムで配信されるデータパケットに映像データが含まれている。データパケットは、Ｐ１１に示すように、ＩＰヘッダ、ＵＤＰ（User Datagram Protocol）ヘッダ、シーケンス番号、配信対象の映像データを含む。シーケンス番号は、配信されている映像データの順序を表わす番号である。なお、シーケンス番号は、ペイロード中の情報としてパケットに含められている。
【００３９】
一方、制御パケットは、所定期間中に送信されたデータパケットの数を通知するために送信されるパケットであり、所定の期間（ΔＴ）ごとに送信される。制御パケットは、Ｐ１２に示すように、ＩＰヘッダ、ＴＣＰ（Transmission Control Protocol）ヘッダ、制御データを含む。制御データは、直前の制御パケットが送信された後で送信されたデータパケットに含まれているシーケンス番号の先頭の値、送信されたデータパケットに含まれているシーケンス番号の末尾の値、送信されたパケット数が含まれる。
【００４０】
図７中のシーケンスＳＥＱ１は、通信装置１０Ｂから通信装置１０Ｅにデータが配信される場合を例として、制御パケットとデータパケットの送信タイミングを示している。シーケンスＳＥＱ１において、制御パケットの送信を実線の矢印で表わし、データパケットの送信を破線の矢印で表わす。
【００４１】
例えば、通信装置１０Ｂの中継処理部２７ｂが、データ配信の開始時に制御パケットを生成し、送信部１２ｂを介して通信装置１０Ｅに送信したとする（矢印Ａ１１）。矢印Ａ１１に示す制御パケットの送信の前には、データパケットが送信されていないので、矢印Ａ１１において通信装置１０Ｂから送信された制御パケットには、以下の情報が含まれている。
先頭のシーケンス番号：０
末尾のシーケンス番号：０
送信パケット数      ：０
【００４２】
その後、通信装置１０Ｂの中継処理部２７ｂでの処理により、通信装置１０Ｂから通信装置１０Ｅに向けて、シーケンス番号１〜１００のデータパケットが送信されたとする。通信装置１０Ｅの品質算出部２２ｅは、受信部１１ｅを介してデータパケットを取得し、取得したデータパケット中のシーケンス番号を記憶する。この例では、通信装置１０Ｅは、シーケンス番号＝１のデータパケットと、シーケンス番号＝３〜１００のデータパケットを受信したとする。すると、品質算出部２２ｅは、シーケンス番号＝１、３〜１００を記憶し、品質算出部２２ｅが記憶しているシーケンス番号の数は９９である。
【００４３】
その後、前回の制御パケットの送信時刻から制御パケットの送信周期（ΔＴ）が経過すると、通信装置１０Ｂは、以下の情報を含む制御パケットを生成し、通信装置１０Ｅに送信する（矢印Ａ１２）。
先頭のシーケンス番号：１
末尾のシーケンス番号：１００
送信パケット数      ：１００
【００４４】
通信装置１０Ｅにおいて、品質算出部２２ｅは、受信部１１ｅを介して制御パケットを取得し、前回受信した制御パケットと今回受信した制御パケットの間に送信されたデータパケットの数とシーケンス番号を取得する。矢印Ａ１１で受信した制御パケットと矢印Ａ１２で受信した制御パケットの間で１００個のデータパケットが送信されているのに対し、品質算出部２２ｅは、９９個のデータパケットのシーケンス番号しか保持していない。そこで、品質算出部２２ｅは、送信されたデータパケットの総数に対する受信したデータパケット数の割合を受信品質として計算する。この例では、１００個のデータパケットが送信されたのに対して９９個のデータパケットを受信しているので、品質算出部２２ｅは、受信品質が９９％であると計算する。品質算出部２２ｅは、受信品質を計算し終えると、受信パケット数をリセットし、その後も同様に受信品質を計算する。
【００４５】
例えば、矢印Ａ１２に示す制御パケットの受信の後に、通信装置１０Ｂは通信装置１０Ｅに向けて、シーケンス番号１０１〜２００のデータパケットを送信したとする。また、通信装置１０Ｅでは、シーケンス番号＝１０１〜１８０のデータパケットを受信したが、シーケンス番号＝１８１以降のパケットを受信しなかったとする。すると、品質算出部２２ｅは、矢印Ａ１２に示す制御パケットの後に、シーケンス番号＝１０１〜１８０の８０個のパケットを受信したことを記憶する。
【００４６】
通信装置１０Ｂは、以下の情報を含む制御パケットを生成し、通信装置１０Ｅに送信する（矢印Ａ１３）。
先頭のシーケンス番号：１０１
末尾のシーケンス番号：２００
送信パケット数      ：１００
【００４７】
矢印Ａ１２で受信した制御パケットと矢印Ａ１３で受信した制御パケットの間で１００個のデータパケットが送信されているのに対し、品質算出部２２ｅは、８０個のデータパケットしか受信していない。そこで、品質算出部２２ｅは、１００個のデータパケットが送信されたのに対して８０個のデータパケットを受信しているので、受信品質が８０％であると計算する。なお、制御パケットの送信間隔ΔＴは実装に応じて決定される。
【００４８】
（３）子端末の接続先を変更するかの判定
切り替え要求部２３は、複数の子端末での受信品質に差があるかを判定することにより、自装置に接続している子端末の接続先を変更するかを判定する。
【００４９】
図８は、受信品質に有意差があるかを判定する方法の例を説明する図である。図８のケースＣ１１、Ｃ１２のいずれも、ネットワークＮ１のうちの通信装置１０Ａ〜１０Ｃの間の接続と、通信装置１０Ａ〜１０Ｃの各々の受信品質の例を示している。
【００５０】
ケースＣ１１では、通信装置１０Ａでの受信品質は１００％である。通信装置１０Ｂと通信装置１０Ｃはいずれも通信装置１０Ａの子端末であるが、通信装置１０Ｂでの受信品質は９２％、通信装置１０Ｃでの受信品質は９０％である。切り替え要求部２３ａは、例えば、式（１）に示す計算から、子端末間での受信品質に有意差があるかを判定するための指標値（Ｘ）を求める。
Ｘ＝（Ｒｐａ−Ｒｃ１）／（Ｒｐａ−Ｒｃ２）  ・・・（１）
ここで、Ｒｐａは親端末での受信品質の百分率、Ｒｃ１は子端末の内で最も受信品質の良い端末での受信品質の百分率、Ｒｃ２は子端末の内で最も受信品質の悪い端末での受信品質の百分率である。換言すると、（Ｒｐａ−Ｒｃ１）は、親端末と子端末の間の受信品質の百分率の差の最小値であり、（Ｒｐａ−Ｒｃ２）は、親端末と子端末の間の受信品質の百分率の差の最大値である。指標値が所定の閾値Ｔｈ未満の場合、切り替え要求部２３ａは、子端末の間での品質に有意差があると判定する。
【００５１】
例えば、閾値Ｔｈ＝０．７５であるとする。この場合、ケースＣ１１の状況で得られる指標値（ＸＣ１１）は、ＸＣ１１＝（１００−９２）／（１００−９０）＝８／１０＝０．８であり、ケースＣ１１では、指標値は閾値Ｔｈを上回っている。このため、切り替え要求部２３は、通信装置１０Ｂと通信装置１０Ｃの間には、有意な受信品質の差が無いと判定する。ケースＣ１１のように、子端末の間で受信品質の有意差がなく、全部の子端末での通信品質が悪い場合は、ある特定の子端末が原因で受信品質が低下しているわけではないので、子端末の接続先を変更しても、下流側の装置の受信品質に影響しにくい。そこで、切り替え要求部２３ａは、自装置の子端末の接続先を変更しないことを決定して、処理を終了する。なお、ある通信装置１０に接続された全ての子端末の受信品質が悪い場合でも、その通信装置１０よりも上流側で接続先が変更されることにより、各通信装置１０での受信品質が改善される可能性がある。
【００５２】
ケースＣ１２では、通信装置１０Ａでの受信品質は１００％であり、通信装置１０Ｂでの受信品質は９６％、通信装置１０Ｃでの受信品質は９０％である。この場合、ケースＣ１２の状況で得られる指標値（ＸＣ１２）は、ＸＣ１２＝（１００−９６）／（１００−９０）＝４／１０＝０．４であり、ケースＣ１２では、指標値は閾値Ｔｈを下回っている。このため、切り替え要求部２３ａは、通信装置１０Ｂと通信装置１０Ｃの間には、有意な受信品質の差があると判定する。子端末の間で受信品質の有意差がある場合、切り替え要求部２３ａは、受信品質の悪い通信装置１０Ｃによって、他の通信装置１０への受信品質が低下する可能性があると判定して、通信装置１０Ｃを下流側に移動させることを決定する。換言すると、切り替え要求部２３ａは、通信装置１０Ｃを下流側に移動することにより、通信装置１０Ｃに起因して他の通信装置１０の受信品質が低下することを防止できるか可能性があると判定している。この場合、接続先の検索処理と、子端末での接続先の変更が行われる。
【００５３】
（４）接続先の検索と接続先の変更
以下、接続先の検索と接続先の変更処理をいくつかのパターンに分けて説明する。
【００５４】
（４．１）パターン１
図９〜図１１を参照しながら、親端末が子端末を孫端末よりも下流に移動させる場合に行われる処理の具体例を説明する。なお、図９〜図１１は、ネットワークＮ１（図５）での通信処理の例を示すが、見やすさを優先させるために、一部の通信装置１０を図示しない場合がある。
【００５５】
図９のケースＣ２１は、通信装置１０Ａの切り替え要求部２３ａにおいて、通信装置１０Ｂと通信装置１０Ｃの間の受信品質に有意の差があると判定された場合の例を示す。ケースＣ２１の例では、通信装置１０Ａと通信装置１０Ｂの受信品質は１００％であり、通信装置１０Ｃと通信装置１０Ｄの受信品質は９０％である。一方、通信装置１０Ｅの受信品質は９９％、通信装置１０Ｆの受信品質は８９％である。
【００５６】
図９の接続情報テーブル３１ａ−１は、ケースＣ２１において、通信装置１０Ａが孫端末までの情報を保持する場合の接続情報テーブル３１の例である。子端末間に受信品質の有意差があるので、切り替え要求部２３ａは、孫端末のうちで受信品質が子端末の受信品質を上回るものがあるかを判定する。接続情報テーブル３１ａ−１の例では、通信装置１０Ａの孫端末である通信装置１０Ｅの受信品質は、通信装置１０Ａの子端末である通信装置１０Ｃの受信品質を上回っている。そこで、切り替え要求部２３ａは、通信装置１０Ｅが新たな接続を確立できる場合は、通信装置１０Ｃの接続先を通信装置１０Ｅに変更できると判定する。しかし、接続情報テーブル３１ａ−１の例では、通信装置１０Ｅは、他の装置との間で新たな接続を確立しない。そこで、切り替え要求部２３ａは、通信装置１０Ｅに接続している装置のうちで、通信装置１０Ｃよりも受信品質の良い装置に、通信装置１０Ｃを接続できるかを調べるために、通信装置１０Ｅからの接続情報を取得することを、取得部２１ａに要求する。取得部２１ａは、切り替え要求部２３ａからの要求に応じて、図５等を参照しながら説明した処理と同様の処理により、通信装置１０Ｅに向けて、情報要求パケットを送信する。なお、取得部２１ａは、通信装置１０Ｅに対して、通信装置１０Ｅの孫端末までの情報を要求したとする。
【００５７】
通信装置１０Ｅの取得部２１ｅは、受信部１１ｅを介して情報要求パケットを取得すると、通信装置１０Ｅの孫端末までの情報を含む応答パケットを生成し、送信部１２ｅを介して通信装置１０Ａに送信する。取得部２１ａは、通信装置１０Ｅから受信した応答パケット中のデータを処理することにより、接続情報テーブル３１を更新する。
【００５８】
図１０の接続情報テーブル３１ａ−２は、取得部２１ａの処理により更新された接続情報テーブル３１の例である。通信装置１０Ｅから得られた情報をネットワークに図示すると、図１０のケースＣ２２に示すとおりになる。通信装置１０Ｇおよび通信装置１０Ｉでは受信品質は９９％であるが、通信装置１０Ｈと通信装置１０Ｊでの受信品質は９０％である。一方、通信装置１０Ａ〜１０Ｆでの受信品質は、ケースＣ２２でもケースＣ２１（図９）と同様である。
【００５９】
接続情報テーブル３１が更新されると、切り替え要求部２３ａは、孫端末を介してデータを受信している通信装置１０のうちで受信品質が子端末の受信品質を上回るものがあるかを判定する。接続情報テーブル３１ａ−２の例では、通信装置１０Ｅの子端末である通信装置１０Ｇでの受信品質と、通信装置１０Ｅの孫端末である通信装置１０Ｉの受信品質は、通信装置１０Ａの子端末である通信装置１０Ｃの受信品質を上回っている。そこで、切り替え要求部２３ａは、通信装置１０Ｇが新たな接続を確立できる場合は、通信装置１０Ｃの接続先を通信装置１０Ｇに変更できると判定する。接続情報テーブル３１ａ−２には、通信装置１０Ｇが新たな接続を確立できることが記録されている。
【００６０】
図１１は、接続先の変更処理の例を説明する図である。ケースＣ２３は、通信装置１０Ｃの接続先を通信装置１０Ｇに変更することが決定された場合に行われる処理の例を示す。切り替え要求部２３ａは、通信装置１０Ｃ宛に、新たな接続先のＩＰアドレスを１０．０．０．７（通信装置１０Ｇ）とすることを要求する切り替え要求パケットを生成する。切り替えパケットは、送信部１２ａから、通信装置１０Ｃに送信される（矢印Ａ２１）。通信装置１０Ｃの受信部１１ｃは、切り替え要求パケットを受信すると、接続処理部２５ｃに出力する。接続処理部２５ｃは、切り替え要求パケット中のデータを用いて、通信装置１０Ａと通信装置１０Ｃとの間の接続を切断すると共に、通信装置１０Ｃと通信装置１０Ｇの間の接続を確立する（矢印Ａ２２、Ａ２３）。
【００６１】
このように、通信装置１０Ｃの接続先が通信装置１０Ｇに変更されるため、受信品質の良好でない通信装置１０が配信システムの上流側に残ってしまい、配信システムでの通信が非効率的になることが防止される。
【００６２】
次に、図１１のケースＣ２４、Ｃ２５を参照しながら、子端末の接続先の変更処理の後で、元の子端末の新たな接続先を、親端末に接続させる場合の処理の例を説明する。通信装置１０Ｃの切り替え要求部２３ｃは、通信装置１０Ｇとの接続前には通信装置１０Ａ（１０．０．０．１）に接続していたことを通知する通知パケットを、通信装置１０Ｇに送信する（矢印Ａ２４）。
【００６３】
通信装置１０Ｇ中の接続処理部２５ｇは、受信部１１ｇを介して、通信装置１０Ｃからのパケットを取得する。接続処理部２５ｇは、通知パケットを用いて、通信装置１０Ｃでの接続先が、通信装置１０Ａから通信装置１０Ｇに変更されたことを認識する。すると、接続処理部２５ｃは、通信装置１０Ｃと通信装置１０Ａとの間の接続がなくなったことで、通信装置１０Ａとの接続が可能であると判定する。そこで、接続処理部２５ｇは、通信装置１０Ｇと通信装置１０Ｅとの間の接続を切断する（Ａ２５）。その後、接続処理部２５ｇは、通信装置１０Ａに対して接続要求パケットを送信することにより、接続の確立を要求する（矢印Ａ２６）。
【００６４】
通信装置１０Ａの接続処理部２５ａは、受信部１１ａを介して、通信装置１０Ｇからの接続要求パケットを取得する。接続処理部２５ａは、接続要求パケット中の情報を用いて、通信装置１０Ａと通信装置１０Ｇとの間の接続を確立する。通信装置１０Ａと通信装置１０Ｇが接続されている様子を、ケースＣ２５に示す。
【００６５】
ケースＣ２５に示すように、通信装置１０Ａと通信装置１０Ｇの間での接続が確立されると、通信装置１０Ａ中の中継処理部２７ａは、通信装置１０Ａで取得したデータを通信装置１０Ｇに中継する。このとき、通信装置１０Ａの子端末は、通信装置１０Ｂと通信装置１０Ｇになっており、いずれの子端末での受信品質も良好である。このため、パターン１で説明した処理により、配信システムの上流側に受信品質の悪い通信装置１０があることにより、配信システム全体での通信効率が低下することを防止できる。
【００６６】
なお、ケースＣ２４を参照しながら、下流側に移動した通信装置１０Ｃが通信装置１０Ｇに新たな接続先を通知する場合を例としたが、新たな子端末への接続先の情報は、親端末から新たな子端末となる通信装置１０に通知されても良い。また、通信装置１０Ａ（親端末）は、移動させる通信装置１０Ｃ（子端末）に対して送信する切り替え要求パケットに、通信装置１０Ｃの新たな接続先となる通信装置１０Ｇの接続の変更先の情報を含めることもできる。この場合、通信装置１０Ｃは、切り替え要求パケットに含まれている通信装置１０Ｇ向けの接続先の情報を、通信装置１０Ｇに通知する。すると、通信装置１０Ｇは、通信装置１０Ｃからの通知に基づいて、接続先を変更できる。
【００６７】
（４．２）パターン２
パターン１では、通信装置１０Ａが孫端末である通信装置１０Ｅに接続している端末に通信装置１０Ｃを接続させることを決定したが、ネットワークによっては、孫端末の接続先では新たな接続が形成されない場合もある。このような場合に行われる処理をパターン２として、図１２を参照しながら説明する
図１２のケースＣ３１には、通信装置１０間の接続と、各通信装置１０で得られている受信品質を示している。ケースＣ３１の場合、通信装置１０Ａと通信装置１０Ｂでは受信品質は１００％であり、通信装置１０Ｃでの受信品質は９０％であり、さらに、通信装置１０Ｄでの受信品質は９８％である。通信装置１０Ｅ、通信装置１０Ｇ、通信装置１０Ｉでの受信品質は、いずれも９９％である。さらに、通信装置１０Ｈと通信装置１０Ｊでの受信品質は９０％で、通信装置１０Ｆでの受信品質は８９％である。
【００６８】
ネットワークがケースＣ３１に示すとおりである場合、通信装置１０Ａは接続情報テーブル３１ａ−３を保持している。接続情報テーブル３１ａ−３に示すとおり、通信装置１０Ｄ、通信装置１０Ｅ、通信装置１０Ｇ、通信装置１０Ｉでは、通信装置１０Ａの子端末である通信装置１０Ｃよりも良い受信品質で通信している。しかし、通信装置１０Ａの孫端末である通信装置１０Ｄと通信装置１０Ｅのいずれの接続可否情報も、接続可否＝ＮＧであるので、通信装置１０Ｄと通信装置１０Ｅは、いずれも通信装置１０Ｃの接続先とはならない。
【００６９】
次に、切り替え要求部２３ａは、通信装置１０Ｅの子端末である通信装置１０Ｇに通信装置１０Ｃが接続可能であるかを判定する。接続情報テーブル３１ａ−３において、通信装置１０Ｇの接続可否情報は、接続可否＝ＮＧであるので、切り替え要求部２３ａは、通信装置１０Ｃを通信装置１０Ｇに接続させないことを決定する。
【００７０】
切り替え要求部２３ａは、通信装置１０Ｇの子端末である通信装置１０Ｉでの受信品質が９９であり、通信装置１０Ｃよりも良好であるので、通信装置１０Ｉに通信装置１０Ｃが接続可能であるかを判定する。接続情報テーブル３１ａ−３において、通信装置１０Ｉの接続可否情報も、接続可否＝ＮＧであるので、切り替え要求部２３ａは、通信装置１０Ｃを通信装置１０Ｉに接続させないことを決定する。
【００７１】
次に、切り替え要求部２３ａは、通信装置１０Ｅとは異なる孫端末である通信装置１０Ｄも通信装置１０Ｃよりも受信品質がよいことから、通信装置１０Ｄに対して、情報要求パケットを送信することを決定する。情報要求パケットの送信が行われ、通信装置１０Ｄ中の取得部２１ｄから通信装置１０Ｄの子端末などの情報が通信装置１０Ａに通知される。ここで、通信装置１０Ｄの子端末（通信装置１０Ｋ、図示せず）が通信装置１０Ｃよりも受信状況が良く、さらに、新たな接続の形成が可能であるとする。この場合、切り替え要求部２３ａは、通信装置１０Ｋを通信装置１０Ｃの接続先に決定する。
【００７２】
切り替え要求部２３ａが接続先を決定した後に行われる処理は、図１１を参照しながら説明した処理と同様である。このため、パターン２の場合には、通信装置１０Ｃは通信装置１０Ｋに接続されることにより、通信装置１０Ａの子端末ではなくなる。また、適宜、ケースＣ２４、Ｃ２５を参照しながら説明した処理が行われることにより、通信装置１０Ｋが通信装置１０Ａの新たな子端末となり得る。
【００７３】
なお、切り替え要求部２３ａが通信装置１０Ｉに通信装置１０Ｃを接続しないことを決定した場合、切り替え要求部２３ａは、通信装置１０Ｉに、通信装置１０Ｉの子端末などの情報を要求しても良い。その後、切り替え要求部２３ａは、図１２などを参照しながら説明した処理と同様の処理を行うことにより、通信装置１０Ｃの接続先を検索することができる。
【００７４】
（４．３）パターン３
図１３を参照しながら、子端末が他の子端末に接続している孫端末に接続先を変更可能な場合の具体例を説明する。例えば、通信装置１０がケースＣ４１に示すように接続されているとする。通信装置１０Ａと通信装置１０Ｂでの受信品質は１００％であるとする。通信装置１０Ｄでの受信品質は９８％、通信装置１０Ｅでの受信品質は９９％である。ここで、通信装置１０Ｄと通信装置１０Ｅは通信装置１０Ａの孫端末である。また、通信装置１０Ａの子端末である通信装置１０Ｃの受信品質は９０％であり、通信装置１０Ｃに接続している通信装置１０Ｄでは受信品質が８９％であるとする。
【００７５】
図１３の接続情報テーブル３１ａ−４は、ケースＣ４１において、通信装置１０Ａが孫端末までの情報を保持している場合の接続情報テーブル３１の例である。切り替え要求部２３ａは、孫端末のうちで受信品質が子端末の受信品質を上回るものがあるかを判定する。接続情報テーブル３１ａ−４の例では、通信装置１０Ｄと通信装置１０Ｅの受信品質は、通信装置１０Ａの子端末である通信装置１０Ｃの受信品質を上回っている。そこで、まず、切り替え要求部２３ａは、通信装置１０Ｅが新たな接続を確立できる場合は、通信装置１０Ｃの接続先を通信装置１０Ｅに変更できると判定する。しかし、接続情報テーブル３１ａ−４に示すように、図１３の例では、通信装置１０Ｅは、他の装置との間で新たな接続を確立しない。次に、切り替え要求部２３ａは、通信装置１０Ｃを通信装置１０Ｄに接続できるかを判定する。接続情報テーブル３１ａ−４に示すように、通信装置１０Ｄの接続可否情報は、接続可否＝ＯＫに設定されているので、通信装置１０Ｄは、新たに他の通信装置１０との接続を確立できる。そこで、切り替え要求部２３ａは、通信装置１０Ｄを通信装置１０Ｃの接続先に決定する。
【００７６】
切り替え要求部２３ａが接続先を決定した後に行われる処理は、図１１を参照しながら説明した処理と同様である。このため、パターン３の場合には、通信装置１０Ｃは通信装置１０Ｄに接続されることにより、通信装置１０Ａの子端末ではなくなる。このため、配信システムの上流側に受信品質の悪い通信装置１０が接続し続けることによる通信効率の低下が防止される。
【００７７】
（４．３）パターン４
図１４を参照しながら、子端末を介してデータを受信しており、かつ、子端末よりも受信品質の良い通信装置１０がない場合の例を説明する。例えば、通信装置１０がケースＣ５１に示すように接続されているとする。通信装置１０Ａと通信装置１０Ｂでの受信品質は１００％であるとする。通信装置１０Ａの子端末である通信装置１０Ｃでの受信品質は９９％である。一方、通信装置１０Ａの孫端末である通信装置１０Ｄおよび通信装置１０Ｅでの受信品質は９９％、通信装置１０Ｆでの受信品質は９８％である。
【００７８】
図１４の接続情報テーブル３１ａ−５は、ケースＣ５１において、通信装置１０Ａが孫端末までの情報を保持する場合の接続情報テーブル３１の例である。切り替え要求部２３ａは、孫端末のうちで受信品質が子端末の受信品質を上回るものがあるかを判定する。接続情報テーブル３１ａ−５の例では、通信装置１０Ｄと通信装置１０Ｅの受信品質は、通信装置１０Ａの子端末である通信装置１０Ｃの受信品質以下である。この場合、切り替え要求部２３ａは、通信装置１０Ｃの接続先を変更しないことを決定して処理を終了する。
【００７９】
図１５Ａと図１５Ｂは、接続先の検索方法の例を説明するフローチャートである。図１５Ａと図１５Ｂでは、接続先の変更処理に使用する情報の取得から、接続先の変更に至るまでの全体の処理の流れを時系列に沿って示す。
【００８０】
取得部２１は、子端末での接続に関する情報を取得する定期処理のタイミングまで待機する（ステップＳ１１でＮｏ）。子端末での接続に関する情報を取得する定期処理のタイミングになると、取得部２１は、自装置に接続している子端末があるかを判定する（ステップＳ１２）。自装置に接続している子端末が無い場合は、ステップＳ１１に戻る（ステップＳ１２でＮｏ）。自装置に接続している子端末がある場合、取得部２１は、子端末の各々に対して、情報要求パケットを送信する（ステップＳ１２でＹｅｓ、ステップＳ１３）。取得部２１は、情報要求パケットを送信した全ての子端末から応答パケットを受信するまで待機する（ステップＳ１４でＮｏ）。取得部２１は、情報要求パケットを送信した全ての子端末から応答パケットを受信すると、受信パケット中の情報を接続情報テーブル３１に記録する（ステップＳ１４でＹｅｓ、ステップＳ１５）。
【００８１】
切り替え要求部２３は、子端末の間に有意な受信品質の差があるかを判定する（ステップＳ１６）。子端末の間に有意な受信品質の差が無い場合、ステップＳ１１に戻る（ステップＳ１６でＮｏ）。一方、子端末の間に有意な受信品質の差がある場合、切り替え要求部２３は、自装置に孫端末があるかを判定する（ステップＳ１６でＹｅｓ、ステップＳ１７）。自装置に孫端末が無い場合、ステップＳ１１に戻る（ステップＳ１７でＮｏ）。
【００８２】
自装置に孫端末がある場合、切り替え要求部２３は、子端末の最低品質よりも受信品質が高い孫端末があるかを判定する（ステップＳ１７でＹｅｓ、ステップＳ１８）。子端末の最低品質よりも受信品質が高い孫端末が無い場合、ステップＳ１１に戻る（ステップＳ１８でＮｏ）。子端末の最低品質よりも受信品質が高い孫端末がある場合、切り替え要求部２３は、子端末よりも受信品質の良い孫端末のうち、新たな接続を確立可能な通信装置１０があるかを判定する（ステップＳ１８でＹｅｓ、ステップＳ１９）。子端末よりも受信品質が良く、新たな接続を確立可能な孫端末がある場合、切り替え要求部２３は、それらの通信装置１０の中で受信品質が高くて下流側に接続されている装置を、新たな接続先として選択する（ステップＳ１９でＹｅｓ、ステップＳ２０）。切り替え要求部２３は、受信品質の悪い子端末に、新たな接続先として選択した通信装置１０への接続の切り替えを要求する（ステップＳ２１）。
【００８３】
一方、子端末よりも受信品質が良く、新たな接続を確立可能な孫端末がない場合、取得部２１は、子端末よりも受信品質の良い孫端末のうちで受信品質が最高の通信装置１０を選択する（ステップＳ１９でＮｏ、ステップＳ２２）。取得部２１は、選択した通信装置１０に対して、その通信装置１０の子端末と孫端末の品質情報を要求するための情報要求パケットを送信する（ステップＳ２３）。取得部２１は、選択した通信装置１０からの応答パケットを受信するまで待機する（ステップＳ２４でＮｏ）。
【００８４】
選択した通信装置１０から応答パケットを受信すると、得られた情報に、子端末の最低品質よりも受信品質の高い通信装置１０の情報が含まれているかを判定する（ステップＳ２４でＹｅｓ、ステップＳ２５）。応答パケット中の情報に、子端末の最低品質よりも受信品質の高い通信装置１０の情報が無い場合、ステップＳ１１に戻る（ステップＳ２５でＮｏ）。
【００８５】
一方、子端末の最低品質よりも受信品質の高い通信装置１０がある場合、切り替え要求部２３は、子端末の最低品質よりも受信品質の良い通信装置１０のうちで接続可能な装置があるかを判定する（ステップＳ２５でＹｅｓ、ステップＳ２６）。子端末の最低品質よりも受信品質の高い通信装置１０のうちで接続可能な装置がある場合、切り替え要求部２３は、ステップＳ２０以降の処理を行う（ステップＳ２６でＹｅｓ）。
【００８６】
子端末の最低品質よりも受信品質の高い接続先が見つからない場合、取得部２１は、子端末の最低品質よりも受信品質の高い通信装置１０のうちで情報要求パケットを送信していない通信装置１０があるかを判定する（ステップＳ２６でＮｏ、ステップＳ２７）。子端末よりも受信品質の高い通信装置１０のうちで情報要求パケットを送信していない通信装置１０がある場合、取得部２１は、情報要求パケットの送信を行うことを決定する（ステップＳ２７でＹｅｓ）。取得部２１は、子端末よりも受信品質の高く、情報要求パケットを送信していない装置のうちで品質が相対的に高い通信装置１０を情報要求パケットの送信先に選択する（ステップＳ２８）。ステップＳ２８の処理後、ステップＳ２３以降の処理が行われる。一方、子端末の最低品質よりも受信品質の高い通信装置１０のうちで情報要求を送信していない通信装置１０がない場合、ステップＳ１１に戻る（ステップＳ２７でＮｏ）。
【００８７】
なお、図１５Ａ、図１５Ｂは処理の一例である。例えば、ステップＳ１４とステップＳ１５の処理が並行して行われても良い。この場合、取得部２１は、受信した応答パケット中のデータから順に接続情報テーブル３１に書き込む。また、ステップＳ２０は、接続先の通信装置１０の選択方法の一例であり、実装に応じて変更されても良い。
【００８８】
図１６は、受信品質の比較方法の例を説明するフローチャートである。図１６のフローチャートは、図１５ＡのステップＳ１６で行われる処理を詳細に説明している。なお、図１６のステップＳ４２での判定処理に使用する計算式は実装に応じて変更され得る。例えば、ステップＳ４２で使用している式は、図８での説明に使用した式（１）の逆数を求める式である。
【００８９】
切り替え要求部２３は、子端末の各々について、その子端末の受信品質と自装置の受信品質の差を算出する（ステップＳ４１）。切り替え要求部２３は、子端末との間の受信品質の差の最小値を基準とした、子端末との間の受信品質の差の最大値の比率が閾値以上であるかを判定する（ステップＳ４２）。子端末との間の受信品質の差の最小値を基準とした、子端末との間の受信品質の差の最大値の比率が閾値以上である場合、切り替え要求部２３は、子端末間での受信品質に有意な差があると判定する（ステップＳ４２でＹｅｓ、ステップＳ４３）。子端末との間の受信品質の差の最小値を基準とした、子端末との間の受信品質の差の最大値の比率が閾値未満である場合、切り替え要求部２３は、子端末間での受信品質に有意な差がないと判定する（ステップＳ４２でＮｏ、ステップＳ４４）。
【００９０】
図１７は、接続先の変更方法の例を説明するフローチャートである。図１７は、図１５ＢのステップＳ２１の処理の後に接続処理部２５で行われる処理を説明している。受信部１１は、切り替え要求パケットを受信するまで待機する（ステップＳ５１でＮｏ）。切り替え要求パケットを取得すると、接続処理部２５は、新たな接続先を特定し、接続先の切り替え処理を行う（ステップＳ５２）。切り替え要求部２３は、切り替え処理が終わるまで待機する（ステップＳ５３でＮｏ）。
【００９１】
切り替え要求部２３は、切り替え要求パケットに、接続先の装置に通知する通知用ＩＰアドレスが含まれているかを判定する（ステップＳ５３でＹｅｓ、ステップＳ５４）。接続先の装置に通知する通知用ＩＰアドレスが含まれていない場合、ステップＳ５１に戻る（ステップＳ５４でＮｏ）。一方、接続先の装置に通知する通知用ＩＰアドレスが含まれている場合、切り替え要求部２３は、新たな接続先の通信装置１０に、通知用ＩＰアドレスが割り当てられた装置への切り替えを要求する（ステップＳ５５）。
【００９２】
以上説明したように、実施形態にかかる方法では、受信品質の悪い通信装置１０が上流側から下流側に移動するので、受信品質が悪い通信装置１０が上流にあるために他の通信装置１０の通信品質が劣化することを防ぐことができる。また、実施形態にかかる方法が適用されるシステムでは、受信品質の劣化や受信品質の劣化に伴う再送、通信の切断などが起こりにくくなるので、通信効率が良くなる。
【００９３】
また、実施形態にかかる方法では、ツリー状の配信システムで一部の装置を介した経路での階層が深くなることにより、受信品質の低下が起こることも防ぎやすい。例えば、ある装置の子端末の一方では受信品質が悪く、他方では受信品質が良い場合、配信システムに参加する通信装置１０は、受信品質を良くするために、受信品質の良い方の子端末や受信品質の良い子端末を経由してデータを受信する装置に接続することが多い。すると、配信システムのうちの一部の子端末を介して多数の通信装置１０がデータを受信するため、受信品質の良い子端末を介するルートでは階層が深くなる。しかし、実施形態にかかる方法では、子端末の内で受信品質が悪い端末は下流側に移動するので、このような階層の不均衡も生じにくい。さらに、図１１を参照しながら説明したように、実施形態にかかる方法によると、受信品質の悪い端末が下流に移動した後で、受信品質の良好な端末を上流側に移動させることもできる。このため、配信システムの階層が深くなることにより、転送回数が増え、受信品質が劣化しやすくなるという事態も防止される。
【００９４】
＜変形例＞
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
【００９５】
子端末を下流側に移動させる際に、子端末よりも下流側の通信装置１０を新たな子端末にする場合、親端末は、下流側に移動させた子端末の接続先以外の装置を新たな子端末としても良い。例えば、図１１のケースＣ２４に示すように、通信装置１０Ａの子端末であった通信装置１０Ｃが、接続先を通信装置１０Ａから下流側の通信装置１０Ｇに変更したとする。このとき、通信装置１０Ａの切り替え要求部２３ａは、通信装置１０Ｃよりも受信品質が良く、通信装置１０Ａの孫端末か孫端末よりも下流側に接続している通信装置１０から、新たな子端末とする通信装置１０を選択できる。例えば、ケースＣ２４の例では、切り替え要求部２３ａは、通信装置１０Ｅ、通信装置１０Ｇ、通信装置１０Ｉのいずれかを、新たな子端末とすることを決定することができる。この場合、切り替え要求部２３ａは、新たに子端末とする通信装置１０に対して、通信装置１０Ａに接続することを要求するための切り替え要求パケットを送信する。切り替え要求パケットを受信した通信装置１０では、接続処理部２５が通信装置１０Ａに接続するための処理を行う。中継処理部２７ａは、新たな子端末が通信装置１０Ａに接続すると、新たな子端末に対しても、データの中継処理を行う。
【００９６】
また、子端末同士の受信品質に有意の差があるかを判定する際に使用する指標値の計算方法は、実装に応じて変更され得る。例えば、子端末間で受信品質に有意の差があるかは、子端末の受信品質同士の差でも良い。なお、指標値の計算方法に応じて、閾値の設定値も変更され得る。
【００９７】
以上の説明で示したパケットフォーマットやテーブル中の情報要素は一例であり、これらは実装に応じて変更され得る。
【００９８】
図８の例では、子端末間での受信品質の差があるかを判定する際の例として、子端末が２台の場合を用いて説明したが、子端末の数は実装に応じて任意に変更され得る。
【００９９】
上述の実施形態に関し、さらに以下の付記を開示する。
（付記１）
データの配信を受けている第１の通信装置と、
前記第１の通信装置が前記データを転送する複数の転送先と、
前記複数の転送先のいずれかを介して前記データを受信する複数の通信装置
を備え、
前記第１の通信装置は、前記複数の転送先に含まれる第２の通信装置での前記データの受信品質より、前記複数の通信装置に含まれる第３の通信装置での前記データの受信品質が良い場合、前記第２の通信装置に、前記第３の通信装置から前記データを受信することを要求し、
前記第２の通信装置は、前記第１の通信装置からの要求を受信すると、接続先を前記第１の通信装置から前記第３の通信装置に変更する
ことを特徴とする通信システム。
（付記２）
前記第１の通信装置は、
前記複数の通信装置のうちで前記第２の通信装置よりも良い受信品質で前記データを受信している装置から対象装置を選択し、
前記対象装置に、前記データの転送元を前記第１の通信装置に変更することを要求し、
前記対象装置が前記第１の通信装置に接続すると、前記対象装置に前記データを転送する
ことを特徴とする付記１に記載の通信システム。
（付記３）
前記第２の通信装置は、前記第３の通信装置に接続する前の前記第２の通信装置の接続先が前記第１の通信装置であることを、前記第３の通信装置に通知し、
前記第３の通信装置が前記第１の通信装置に接続し、
前記第１の通信装置は、前記第３の通信装置との接続の確立後、前記第３の通信装置に前記データを転送する
ことを特徴とする付記１に記載の通信システム。
（付記４）
前記第１の通信装置は、
前記複数の通信装置の各々について、当該通信装置が前記データを転送中の装置に加えて他の通信装置にも前記データを配信可能な装置であるかを表わす情報を取得し、
前記複数の通信装置のうちで、前記第２の通信装置よりも前記データの受信品質が良く、前記他の通信装置に前記データを配信可能な装置を、前記第３の通信装置に選択する
ことを特徴とする付記１〜３のいずれか１項に記載の通信システム。
（付記５）
前記第１の通信装置は、
前記複数の転送先の間での前記データの受信品質の違いが大きいほど大きくなるように計算される指標値が閾値以上の場合、前記第２の通信装置の前記データの転送元を前記第３の通信装置に変更し、
前記指標値が前記閾値未満の場合、前記第２の通信装置の前記データの転送元を変更しない
ことを特徴とする付記１〜４のいずれか１項に記載の通信システム。
（付記６）
配信元から送信されたデータが配信される配信システムにおいて、
第１の通信装置は、
前記データを受信し、
第２の通信装置を含む複数の転送先に前記データを転送し、
前記複数の転送先のいずれかを介して前記データを受信する複数の通信装置のうちで、前記第２の通信装置よりも受信品質の良い第３の通信装置を検出すると、前記第２の通信装置に、前記第３の通信装置から前記データを受信することを要求し、
前記第２の通信装置は、前記第１の通信装置からの要求を受信すると、接続先を前記第１の通信装置から前記第３の通信装置に変更する
ことを特徴とする通信方法。
（付記７）
前記第１の通信装置は、
前記複数の通信装置のうちで、前記第２の通信装置よりも良い受信品質で前記データを受信している装置から対象装置を選択し、
前記対象装置に、前記データの転送元を前記第１の通信装置に変更することを要求し、
前記対象装置が前記第１の通信装置に接続すると、前記対象装置に前記データを転送する
ことを特徴とする付記６に記載の通信方法。
（付記８）
前記第１の通信装置は、
前記複数の通信装置の各々について、当該通信装置が前記データを転送中の装置に加えて他の通信装置にも前記データを配信可能な装置であるかを表わす情報を取得し、
前記複数の通信装置のうちで、前記第２の通信装置よりも前記データの受信品質が良く、前記他の通信装置に前記データを配信可能な装置を、前記第３の通信装置に選択する
ことを特徴とする付記６または７に記載の通信方法。
（付記９）
前記第１の通信装置は、
前記複数の転送先の間での前記データの受信品質の違いが大きいほど大きくなるように計算される指標値が閾値以上の場合、前記第２の通信装置の前記データの転送元を前記第３の通信装置に変更し、
前記指標値が前記閾値未満の場合、前記第２の通信装置の前記データの転送元を変更しない
ことを特徴とする付記６〜８のいずれか１項に記載の通信方法。
（付記１０）
配信元から送信されたデータが配信される配信システム中の通信装置であって、
前記データを受信する受信部と、
第１の通信装置を含む複数の転送先に前記データを転送する送信部と、
前記複数の転送先のいずれかを介して前記データを受信する複数の通信装置のうちで、前記第１の通信装置よりも受信品質の良い第２の通信装置を検出すると、前記第１の通信装置に、前記第２の通信装置から前記データを受信することを要求する制御部
を備えることを特徴とする通信装置。
（付記１１）
前記制御部は、
前記複数の通信装置のうちで、前記第１の通信装置よりも良い受信品質で前記データを受信している装置から対象装置を選択し、
前記対象装置に、前記データの転送が可能であることを通知する制御パケットを生成し、
前記送信部は、前記制御パケットを前記対象装置に送信すると共に、前記対象装置との接続が確立すると、前記対象装置に前記データを転送する
ことを特徴とする付記１０に記載の通信装置。
（付記１２）
前記制御部は、
前記複数の通信装置の各々について、当該通信装置が前記データを転送中の装置に加えて他の通信装置にも前記データを配信可能な装置であるかを表わす情報を取得し、
前記複数の通信装置のうちで、前記第１の通信装置よりも前記データの受信品質が良く、前記他の通信装置に前記データを配信可能な装置を、前記第２の通信装置に選択する
ことを特徴とする付記１０または１１に記載の通信装置。
（付記１３）
前記制御部は、
前記複数の転送先の間での前記データの受信品質の違いが大きいほど大きくなるように計算される指標値が閾値以上の場合、前記第１の通信装置の前記データの転送元を前記第２の通信装置に変更し、
前記指標値が前記閾値未満の場合、前記第１の通信装置の前記データの転送元を変更しない
ことを特徴とする付記１０〜１２のいずれか１項に記載の通信装置。
（付記１４）
配信元から送信されたデータが配信される配信システムに含まれる第１の通信装置に、
前記データを取得し、
第２の通信装置を含む複数の転送先に前記データを転送し、
前記複数の転送先のいずれかを介して前記データを受信する複数の通信装置のうちで、前記第２の通信装置よりも受信品質の良い第３の通信装置を検出すると、前記第２の通信装置に、前記第３の通信装置から前記データを受信することを要求する
処理を行わせることを特徴とする通信プログラム。
（付記１５）
前記複数の通信装置のうちで、前記第２の通信装置よりも良い受信品質で前記データを受信している装置から対象装置を選択し、
前記対象装置に、前記データの転送が可能であることを通知する制御パケットを生成し、
前記制御パケットを前記対象装置に送信し、
前記対象装置との接続が確立すると、前記対象装置に前記データを転送する
処理を前記第１の通信装置に行わせることを特徴とする付記１４に記載の通信プログラム。
【符号の説明】
【０１００】
１、１０  通信装置
５  サーバ
１１  受信部
１２  送信部
１３  送受信部
２０  制御部
２１  取得部
２２  品質算出部
２３  切り替え要求部
２５  接続処理部
２６  データ処理部
２７  中継処理部
３０  記憶部
３１  接続情報テーブル
１０１  プロセッサ
１０２  メモリ
１０３  バス
１０４  ネットワークインタフェース
【図３】
2017022631.tif 000003
【図４】
2017022631.tif 000004
【図６】
2017022631.tif 000005
【図１５Ａ】
2017022631.tif 000006
【図１５Ｂ】
2017022631.tif 000007
【図１６】
2017022631.tif 000008
【図１７】
2017022631.tif 000009
【図１】
2017022631.tif 000010
【図２】
2017022631.tif 000011
【図５】
2017022631.tif 000012
【図７】
2017022631.tif 000013
【図８】
2017022631.tif 000014
【図９】
2017022631.tif 000015
【図１０】
2017022631.tif 000016
【図１１】
2017022631.tif 000017
【図１２】
2017022631.tif 000018
【図１３】
2017022631.tif 000019
【図１４】
2017022631.tif 000020