(57)【要約】【課題】効率的にデータ配信を行う。【解決手段】複数の通信装置を含む配信システムに参加する第１の通信装置は、第１の通信装置の接続先となり得る通信装置から選択した対象通信装置と第１の通信装置との間の通信品質を、品質閾値と比較する。第１の通信装置は、品質閾値を、対象通信装置でのデータの受信品質と第１の通信装置が対象通信装置以外に接続を試みた通信装置の数の関数として求める。第１の通信装置は、通信品質が品質閾値以上の場合、品質閾値を、接続先の変更を行う契機を検出するための検出閾値に設定する。第１の通信装置は、第１の通信装置の接続先となり得る通信装置のうちで第１の通信装置との間の通信品質が相対的に高い第２の通信装置を、第２の通信装置と第１の通信装置の間の通信品質が検出閾値を下回るまでの間の接続先に決定する。【選択図】図２
2017017630.tif 000002
【特許請求の範囲】
【請求項１】
複数の通信装置を含む配信システムに参加する第１の通信装置が、
前記第１の通信装置の接続先となり得る通信装置から選択した対象通信装置と前記第１の通信装置との間の通信品質を、前記対象通信装置でのデータの受信品質と前記第１の通信装置が前記対象通信装置以外に接続を試みた通信装置の数の関数として求めた品質閾値と比較し、
前記通信品質が前記品質閾値以上の場合、前記品質閾値を、接続先の変更を行う契機を検出するための検出閾値に設定し、
前記第１の通信装置の接続先となり得る通信装置のうちで前記第１の通信装置との間の通信品質が相対的に高い第２の通信装置を、前記第２の通信装置と前記第１の通信装置の間の通信品質が前記検出閾値を下回るまでの間の接続先に決定する
処理を行うことを特徴とする接続方法。
【請求項２】
前記第１の通信装置は、前記接続先を検索する際に、
前記第２の通信装置と前記第１の通信装置の間の通信品質である第１の通信品質が、前記第２の通信装置での受信品質を用いて計算された第１の品質閾値より小さい場合、前記第１の通信品質を記憶し、
前記第２の通信装置とは異なる第３の通信装置を新たな対象通信装置に選択すると共に、前記第３の通信装置での受信品質を用いて第２の品質閾値を計算し、
前記第３の通信装置と前記第１の通信装置の間の通信品質である第２の通信品質か、前記第１の通信品質のいずれかが、前記第２の品質閾値以上の場合、前記第２の品質閾値を前記検出閾値に設定する
処理をさらに行うことを特徴とする請求項１に記載の接続方法。
【請求項３】
前記第１の通信装置は、
前記配信システムに参加する際の前記第１の通信装置の接続先となり得る通信装置のリストを取得し、
前記リスト中で前記第１の通信装置が接続を試みていない通信装置のうちで、前記第１の通信装置の接続先としての優先度が相対的に高い通信装置を前記対象通信装置に選択する
ことを特徴とする請求項１または２に記載の接続方法。
【請求項４】
前記第１の通信装置は、前記対象通信装置でのデータの受信品質から、前記第１の通信装置が前記対象通信装置以外に接続を試みた装置の数に正比例する値を差し引くことにより、前記対象通信装置に接続したときの前記第１の通信装置での受信品質との比較に使用する品質閾値を計算する
ことを特徴とする請求項１〜３のいずれか１項に記載の接続方法。
【請求項５】
複数の通信装置を含む配信システムに参加可能な通信装置であって、
前記配信システムに参加する際の接続先となり得る通信装置から選択した対象通信装置との間の通信品質を、前記対象通信装置でのデータの受信品質と前記対象通信装置以外に接続を試みた装置の数の関数として求めた品質閾値と比較する比較部と、
前記通信品質が前記品質閾値以上の場合、前記品質閾値を、接続先の変更を行う契機を検出するための検出閾値に設定する設定部と、
前記配信システムに参加する際の接続先となり得る通信装置のうちで前記通信装置との間の通信品質が相対的に高い他の通信装置を、前記他の通信装置と前記通信装置の間の通信品質が前記検出閾値を下回るまでの間の接続先とする接続処理部
を備えることを特徴とする通信装置。
【請求項６】
データの配信を受けている複数の通信装置と
前記データを受信するための接続先を検索する第１の通信装置
を含み、
前記第１の通信装置は、
前記第１の通信装置の接続先となり得る通信装置から選択した対象通信装置と前記第１の通信装置との間の通信品質を、前記対象通信装置でのデータの受信品質と前記第１の通信装置が前記対象通信装置以外に接続を試みた通信装置の数の関数として求めた品質閾値と比較し、
前記通信品質が前記品質閾値以上の場合、前記品質閾値を、接続先の変更を行う契機を検出するための検出閾値に設定し、
前記第１の通信装置の接続先となり得る通信装置のうちで前記第１の通信装置との間の通信品質が相対的に高い第２の通信装置を、前記第２の通信装置と前記第１の通信装置の間の通信品質が前記検出閾値を下回るまでの間の接続先に決定する
ことを特徴とする通信システム。
【請求項７】
複数の通信装置を含む配信システムに参加する第１の通信装置に、
前記第１の通信装置の接続先となり得る通信装置から選択した対象通信装置と前記第１の通信装置との間の通信品質を、前記対象通信装置でのデータの受信品質と前記第１の通信装置が前記対象通信装置以外に接続を試みた通信装置の数の関数として求めた品質閾値と比較し、
前記通信品質が前記品質閾値以上の場合、前記品質閾値を、接続先の変更を行う契機を検出するための検出閾値に設定し、
前記第１の通信装置の接続先となり得る通信装置のうちで前記第１の通信装置との間の通信品質が相対的に高い第２の通信装置を、前記第２の通信装置と前記第１の通信装置の間の通信品質が前記検出閾値を下回るまでの間の接続先に決定する
処理を行わせることを特徴とする通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置と通信システム中の接続先との接続方法に関する。
【背景技術】
【０００２】
通信装置間でのピアツーピア（Peer to Peer、Ｐ２Ｐ）型の通信処理により、複数の装置にデータが配信されるデータ配信システムが使用されることがある。このようなデータ配信システムでは、データの配信元を起点としたツリー状のネットワークが使用されることがある。データ配信システムに参加している通信装置は、受信品質をモニタしており、自装置での受信品質が所定の閾値を下回ると、接続先との間の通信を切断するとともに、データ配信システム中で自装置が接続可能な他の装置との間の通信を開始する。
【０００３】
図１は、データ配信システムの例を説明する図である。図１に示すデータ配信システムには、サーバ５と通信装置１ａ〜１ｈが含まれており、通信の開始時には、通信装置１ｈは、通信装置１ｆに接続しているとする。サーバ５は、データを通信装置１ａに配信し、通信装置１ａは、サーバ５から受信したデータを、通信装置１ｂと通信装置１ｃに送信する。通信装置１ｂは、通信装置１ａから受信したデータを、通信装置１ｆに送信する。同様に、通信装置１ｃは、通信装置１ａから受信したデータを、通信装置１ｄと通信装置１ｅに送信する。一方、通信装置１ｆは、通信装置１ｂから受信したデータを、通信装置１ｇと通信装置１ｈに送信する。図１において、各通信装置の近傍の数値は、サーバから配信されたデータのうち、各通信装置で正しく受信できたデータの百分率である。例えば、通信装置１ａ〜１ｄでは配信されたデータの９９％、通信装置１ｅ〜１ｇでは、配信されたデータの９８％を正しく受信できている。一方、通信装置１ｈでは、配信されたデータの９４％を正しく受信できている。
【０００４】
ここで、通信装置が接続先を変更するかを判定するための閾値（受信品質閾値）が、いずれの装置でも９５％に設定されているとする。この場合、各通信装置は、配信されたデータの９５％以上を正しく受信できている場合は接続先を変更しないが、正しく受信したデータが９５％を下回ると、接続先を変更する。図１の例では、通信装置１ｈが通信装置１ｆに接続しているときに受信したデータは、配信されたデータの９４％であるので、通信装置１ｈは、接続先を通信装置１ｆから他の装置に変更することを決定する。通信装置１ｈは、通信装置１ｄに接続可能であることを特定すると、矢印Ａで示すように、接続先を通信装置１ｄに変更する。図１の例では、接続先を通信装置１ｄに変更した後では、通信装置１ｈは、矢印Ｂに示すように通信装置１ｄからデータを受信することにより、配信されたデータの９９％を受信できている。そこで、通信装置１ｈは、通信装置１ｄを接続先としてデータを取得する。
【０００５】
関連する技術として、ノードが複数の隣接ノードの各々との間のリンク品質を閾値と比較し、閾値以上の品質のリンクを承認リンクとする制御方法が提案されている。また、サーバの負荷が閾値以上になると、ハイブリッド型Ｐ２Ｐに基づくＡＬＭ（Application Layer Multicast）の制御方式からピュア型Ｐ２Ｐに基づくＡＬＭの制御方式に切り替えるための指示を送信する方法も提案されている。この方法では、ツリー型放送システム中の上位階層のノードが下位階層のノードに対して切り替えのための指示を送信する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２０１４−５０４０８９号公報
【特許文献２】特開２００９−２３２２７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
データの受信品質が閾値に満たない場合に接続先を変更する通信方法では、新たに配信システムに参加する通信装置は、閾値以上の受信品質が得られる接続先が発見できるまで受信品質の良い接続先を検索する。このため、他の通信装置との間での通信状況が悪い通信装置は、配信システムに参加せずに接続先を検索し続け、データを取得しないことになってしまう。その結果、通信状況が悪い通信装置が含まれている場合、データ配信の効率が悪くなる。
【０００８】
本発明は、効率的にデータ配信を行う方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
１つの態様では、接続方法は、複数の通信装置を含む配信システムに参加する第１の通信装置によって行われる。第１の通信装置は、前記第１の通信装置の接続先となり得る通信装置から選択した対象通信装置と前記第１の通信装置との間の通信品質を、品質閾値と比較する。第１の通信装置は、品質閾値を、前記対象通信装置でのデータの受信品質と前記第１の通信装置が前記対象通信装置以外に接続を試みた通信装置の数の関数として求める。第１の通信装置は、前記通信品質が前記品質閾値以上の場合、前記品質閾値を、接続先の変更を行う契機を検出するための検出閾値に設定する。第１の通信装置は、前記第１の通信装置の接続先となり得る通信装置のうちで前記第１の通信装置との間の通信品質が相対的に高い第２の通信装置を、前記第２の通信装置と前記第１の通信装置の間の通信品質が前記検出閾値を下回るまでの間の接続先に決定する。
【発明の効果】
【００１０】
１つの側面として、効率的にデータ配信が行われる。
【図面の簡単な説明】
【００１１】
【図１】データ配信システムの例を説明する図である。
【図２】実施形態にかかる通信方法の例を説明するフローチャートである。
【図３】通信装置の構成の例を説明する図である。
【図４】通信装置のハードウェア構成の例を説明する図である。
【図５】接続先の情報の取得方法の例を説明する図である。
【図６】受信品質の計算方法の例を説明する図である。
【図７】実施形態にかかる通信方法の例を説明する図である。
【図８】接続先候補リストと品質リストの例を示す図である。
【図９】接続先候補リストと品質リストの例を示す図である。
【図１０】実施形態にかかる通信方法の例を説明するフローチャートである。
【図１１】実施形態にかかる方法を用いたデータ配信システムの改善例を示す図である。
【図１２】変形例にかかる通信方法の例を説明するフローチャートである。
【発明を実施するための形態】
【００１２】
図２は、実施形態にかかる通信方法の例を説明するフローチャートである。図２において、変数ｎと定数Ｎが使用される。ここで、変数ｎは、データ配信システムに参加する通信装置１０が受信品質を計測した接続先の候補の数であり、定数Ｎは接続先となり得る通信装置１０の総数である。
【００１３】
データ配信システムに参加する通信装置１０は、接続先となり得る通信装置１０のリストを取得する（ステップＳ１）。データ配信システムに参加する通信装置１０は、変数ｎを１に設定し、接続先としての優先度がｎ番目に高い通信装置でのデータの受信品質と、それまでに接続を試みた装置数を用いて、閾値Ｔｈｎを計算する（ステップＳ２、Ｓ３）。このとき、通信装置１０は、これまでに接続を試みた装置数が多いほど、閾値Ｔｈｎが小さくなるように、閾値を計算する。
【００１４】
データ配信システムに参加する通信装置１０は、接続先としての優先度がｎ番目に高い装置を接続先としたときの通信品質（Ｘｎ）を取得する（ステップＳ４）。ここで、通信品質として、例えば、データの受信品質が使用される。データ配信システムに参加する通信装置１０は、通信品質Ｘｎと閾値Ｔｈｎを比較し、通信品質Ｘｎよりも閾値Ｔｈｎが大きい場合は、ｎ番目に優先度の高い装置を接続先とせずに、変数ｎを１つインクリメントする（ステップＳ５でＮｏ、ステップＳ６）。変数ｎが定数Ｎを超えていない場合、ステップＳ３以降の処理が繰り返される（ステップＳ７でＮｏ）。
【００１５】
一方、通信品質Ｘｎが閾値Ｔｈｎ以上の場合、データ配信システムに参加する通信装置１０は、自装置が接続先を変更する契機の検出に使用する閾値（検出閾値）を、閾値Ｔｈｎと同じ値に設定する（ステップＳ５でＹｅｓ、ステップＳ９）。さらに、通信装置１０は、受信品質を測定済みの装置の中で、通信品質が最も良い接続先を、通信品質が検出閾値未満になるまでの接続先に決定する（ステップＳ１０）。
【００１６】
なお、いずれの接続先との間でも、通信品質が閾値を下回る場合、通信装置１０は、通信品質が最も良い接続先との通信品質を、検出閾値に設定する（ステップＳ７でＹｅｓ、ステップＳ８）。その後、通信装置１０は、ステップＳ１０の処理により接続先を決定する（ステップＳ１０）。
【００１７】
このように、実施形態にかかる方法では、各通信装置１０は、接続先の変更を行うかの判定に使用する検出閾値を、その通信装置１０がこれまでに接続を試みた装置数と接続先の装置での受信品質に応じて変動させる。このため、他の通信装置１０との間の通信状況が悪い装置では、検出閾値を小さい値に設定することにより、相対的に通信状況の良好な接続先から、配信データを受信することができる。また、他の通信装置１０との間の通信状況が悪い装置では、検出閾値を小さい値に設定することにより、接続先の検索の頻度が高すぎるためにデータの配信を受けられなくなることも防止している。
【００１８】
＜装置構成＞
図３は、通信装置１０の構成の例を説明する図である。通信装置１０は、送受信部１３、制御部２０、記憶部３０を備える。記憶部３０は、接続先候補リスト３１、閾値データ３２、品質リスト３３を記憶する。制御部２０は、取得部２１、品質算出部２２、比較部２３、設定部２４、接続処理部２５、データ処理部２６、中継処理部２７を有する。
【００１９】
送受信部１３は、受信部１１と送信部１２を有する。受信部１１は、サーバ５や他の通信装置１０など、他の装置からパケットを受信する。送信部１２は、サーバ５や他の通信装置１０など、他の装置にパケットを送信する。
【００２０】
取得部２１は、受信パケットを用いて、自装置が参加しようとしているデータ配信システム中の装置から、接続先候補リスト３１または接続先候補リスト３１の生成に使用可能な情報を取得する。ここで、接続先候補リスト３１は、自装置の接続先となり得る通信装置１０のリストである。品質算出部２２は、自装置での配信データの受信品質を算出する。品質算出部２２は、算出した受信品質を、適宜、品質リスト３３に記録する。比較部２３は、自装置が接続先を検索しているときに、接続先の候補となる通信装置１０での受信品質や、自装置が接続を試みた装置の数を用いて、閾値を計算する。比較部２３で計算された閾値は、適宜、閾値データ３２として記憶部３０に記憶される。さらに、比較部２３は、得られた閾値を、品質算出部２２で算出された受信品質と比較する。設定部２４は、品質算出部２２で算出された受信品質が、比較部２３で算出された閾値以上である場合、比較処理に使用された閾値を、検出閾値に設定する。
【００２１】
接続処理部２５は、接続先の候補の通信装置１０や、接続先の候補から接続先として選択した通信装置１０との間の接続を確立する。さらに、接続処理部２５は、データ配信システムに参加中に、品質算出部２２で得られた受信品質と検出閾値を定期的に比較し、受信品質が検出閾値を下回ると、接続先を変更する契機を検出したと判定する。データ処理部２６は、データ配信システムに参加中に受信した配信データを処理する。中継処理部２７は、配信対象のデータを自装置から取得している通信装置１０に対して、配信対象のデータを中継するための処理を行う。
【００２２】
図４は、通信装置１０のハードウェア構成の例を説明する図である。通信装置１０は、プロセッサ１０１、メモリ１０２、バス１０３、ネットワークインタフェース１０４を備える。プロセッサ１０１は、ＣＰＵ（Central Processing Unit）を含む任意の処理回路である。プロセッサ１０１は、メモリ１０２をワーキングメモリとして使用して、プログラムを実行することにより、様々な処理を実行する。メモリ１０２には、ＲＡＭ（Random Access Memory）が含まれ、さらに、ＲＯＭ（Read Only Memory）等の不揮発性のメモリも含まれる。バス１０３は、プロセッサ１０１、メモリ１０２、ネットワークインタフェース１０４を、互いにデータの入出力が可能になるように接続する。通信装置１０において、プロセッサ１０１は制御部２０として動作し、メモリ１０２は記憶部３０として動作する。さらに、ネットワークインタフェース１０４は、送受信部１３を実現する。
【００２３】
＜実施形態＞
以下、ある通信装置１０が新たにデータ配信システムに参加する際に行う処理の例を、データ配信システムでの接続先の候補の取得、受信品質の計算方法、接続先の決定に分けて説明する。以下、処理を行っている通信装置１０を明確にするために、符号の末尾に通信装置１０に割り当てられた識別子と同じアルファベットを付すことがある。例えば、取得部２１ｈは、通信装置１０ｈに含まれている取得部２１を指す。
【００２４】
（１）接続先の候補の取得
図５は、接続先の情報の取得方法の例を説明する図である。図５に示すネットワークでは、サーバ５と３つのグループＧ１〜Ｇ３を図示しているが、ネットワーク中のグループの数は任意である。各グループには、１つ以上の任意の数の通信装置１０が含まれており、各グループには、１台の代表ノード５２（ＧＭＮ、Group Manager Node）が含まれている。代表ノード５２は、グループの生成の際にサーバ５などから新たな代表ノード５２になる通信装置１０に、代表ノード５２として動作することを要求する制御パケットが送信されることにより、決定される。代表ノード５２以外のグループ中の各通信装置１０は、自装置に接続している通信装置１０の数、自装置が新たに形成することができる接続の数、受信品質などを、自装置が属するグループ中の代表ノード５２に対して、定期的に通知する。なお、各通信装置１０は、自装置が接続可能な装置の総数と現在接続中の装置の数を認識しており、これらの値から新たに接続可能な装置の数を計算するものとする。従って、各代表ノード５２は、自装置が含まれているグループ中の他の通信装置１０の情報を定期的に取得できる。
【００２５】
図５のテーブルＴ１は、代表ノード５２ａが保持しているグループＧ１中の各通信装置１０の情報である。テーブルＴ１には、グループ中の各装置のＩＤ、ＩＰ（Internet Protocol）アドレス、新たな接続の可否が記録されている。テーブルＴ１の例では、グループＧ１に通信装置１０ａ〜１０ｃが含まれており、通信装置１０ａと通信装置１０ｃには新たな通信装置１０が接続可能であるが、通信装置１０ｂは新たな通信装置１０との間の接続を許可しない場合が示されている。
【００２６】
図５では、グループＧ１の代表ノード５２ａと、グループＧ２中の代表ノード５２ｂがサーバ５に直接接続し、グループＧ３の代表ノード５２ｃは、代表ノード５２ａに接続している場合を例として示している。なお、図５では、代表ノード５２が他の代表ノード５２やサーバ５に接続している場合を例としているが、代表ノード５２の接続先は、他の代表ノード５２やサーバ５には限られない。
【００２７】
図５に示すデータ配信システムに、通信装置１０が参加しようとする場合、通信装置１０は、サーバ５に参加要求パケットＰ１を送信する（矢印Ａ１）。参加要求パケットＰ１には、ヘッダと、通信装置１０がデータ配信システムへの参加を要求することを示す情報が含まれている。
【００２８】
サーバ５は、受信した参加要求パケットＰ１を、サーバ５に接続しているノードを含むグループ中の代表ノード５２に転送する。図５の例では、サーバ５は、代表ノード５２ａと代表ノード５２ｂに、参加要求パケットＰ１を転送する（矢印Ａ２）。代表ノード５２は、自装置の下流側に他のグループが存在する場合、下流側のグループの代表ノード５２に、参加要求パケットＰ１を転送する。例えば、代表ノード５２ａは、グループＧ３中の代表ノード５２ｃに参加要求パケットＰ１を転送する（矢印Ａ３）。このような処理により、データ配信システム中の全てのグループの代表ノード５２に、参加要求パケットＰ１が転送される。
【００２９】
参加要求パケットＰ１を取得した代表ノード５２は、自装置が含まれているグループ中の通信装置１０のうち、新たな接続を形成することができる通信装置１０の情報を、参加要求パケットＰ１の送信元に対して通知する。例えば、代表ノード５２ａは、テーブルＴ１に基づいて、通信装置１０ａと通信装置１０ｃには接続可能であることと、通信装置１０ａと通信装置１０ｃの各々のＩＰアドレスを、参加要求パケットＰ１の送信元の通信装置１０に送信する（矢印Ａ４）。代表ノード５２ａは、さらに、接続先の候補の各装置での受信品質も、参加要求パケットＰ１の送信元に合わせて通知する。受信品質の求め方については、図６を参照しながら説明する。他のグループの代表ノード５２ｂ、５２ｃも、代表ノード５２ａと同様に、自装置の属するグループ中で新たな接続を形成可能な装置のＩＰアドレスとその装置での受信品質を、参加要求パケットＰ１の送信元の通信装置１０に送信する（矢印Ａ５）。
【００３０】
通信装置１０は、各代表ノード５２から接続可能な通信装置１０の情報を通知するパケットを受信する。通信装置１０の取得部２１は、受信部１１を介して受信パケットを取得すると、受信パケット中の接続先の候補となる装置の情報を抽出して、接続先候補リスト３１に記憶する。
【００３１】
（２）受信品質の計算方法
図６は、受信品質の計算方法の例を説明する図である。図６を参照しながら、データ配信システム中の各装置やデータ配信システムに参加しようとする装置において行われる受信品質の計算方法の例を説明する。図６の例では、配信データを配信する装置は、配信先の装置に対して、データパケットと制御パケットを送信する。なお、配信データを配信する装置は、サーバ５だけでなく、他の通信装置１０に対して配信データを含むパケットを送信する通信装置１０も含む。図６のＰ１１の例では、データ配信システムで配信されるデータパケットに映像データが含まれている。データパケットは、Ｐ１１に示すように、ＩＰヘッダ、ＵＤＰ（User Datagram Protocol）ヘッダ、シーケンス番号、配信対象の映像データを含む。シーケンス番号は、配信されている映像データの順序を表わす番号である。なお、シーケンス番号は、ペイロード中の情報としてパケットに含められている。
【００３２】
一方、制御パケットは、所定期間中に送信されたデータパケットの数を通知するために送信されるパケットであり、所定の期間（ΔＴ）ごとに送信される。制御パケットは、Ｐ１２に示すように、ＩＰヘッダ、ＴＣＰ（Transmission Control Protocol）ヘッダ、制御データを含む。制御データは、直前の制御パケットが送信された後で送信されたデータパケットに含まれているシーケンス番号の先頭の値、送信されたデータパケットに含まれているシーケンス番号の末尾の値、送信されたパケット数が含まれる。
【００３３】
図６中のシーケンスＳＥＱ１は、通信装置１０ｆから通信装置１０ｈにデータが配信される場合を例として、制御パケットとデータパケットの送信タイミングの例を示している。シーケンスＳＥＱ１において、制御パケットの送信を実線の矢印で表わし、データパケットの送信を破線の矢印で表わす。
【００３４】
例えば、通信装置１０ｆの中継処理部２７ｆが、データ配信の開始時に制御パケットを生成し、送信部１２ｆを介して通信装置１０ｈに送信したとする（矢印Ａ１１）。矢印Ａ１１に示す制御パケットの送信の前には、データパケットが送信されていないので、矢印Ａ１１において通信装置１０ｆから送信された制御パケットには、以下の情報が含まれている。
先頭のシーケンス番号：０
末尾のシーケンス番号：０
送信パケット数      ：０
【００３５】
その後、通信装置１０ｆの中継処理部２７ｆでの処理により、通信装置１０ｆから通信装置１０ｈに向けて、シーケンス番号１〜１００のデータパケットが送信されたとする。通信装置１０ｈの品質算出部２２ｈは、受信部１１ｈを介してデータパケットを取得し、取得したデータパケット中のシーケンス番号を記憶する。この例では、通信装置１０ｈは、シーケンス番号＝１のデータパケットと、シーケンス番号＝３〜１００のデータパケットを受信したとする。すると、品質算出部２２ｈは、シーケンス番号＝１、３〜１００を記憶しており、記憶しているシーケンス番号の数は９９である。
【００３６】
その後、前回の制御パケットの送信時刻から制御パケットの送信周期（ΔＴ）が経過すると、通信装置１０ｆは、以下の情報を含む制御パケットを生成し、通信装置１０ｈに送信する（矢印Ａ１２）。
先頭のシーケンス番号：１
末尾のシーケンス番号：１００
送信パケット数      ：１００
【００３７】
通信装置１０ｈにおいて、品質算出部２２ｈは、受信部１１ｈを介して制御パケットを取得し、前回受信した制御パケットと今回受信した制御パケットの間に送信されたデータパケットの数とシーケンス番号を取得する。矢印Ａ１１で受信した制御パケットと矢印Ａ１２で受信した制御パケットの間で１００個のデータパケットが送信されているのに対し、品質算出部２２ｈは、９９個のデータパケットのシーケンス番号しか保持していない。そこで、品質算出部２２ｈは、受信したデータパケット数の送信されたデータパケットの総数に対する割合を受信品質として計算する。この例では、１００個のデータパケットが送信されたのに対して９９個のデータパケットを受信しているので、品質算出部２２ｈは、受信品質が９９％であると計算する。品質算出部２２ｈは、受信品質を計算し終えると、受信パケット数をリセットし、その後も同様に受信品質を計算する。
【００３８】
例えば、矢印Ａ１２に示す制御パケットの受信の後に、通信装置１０ｆは通信装置１０ｈに向けて、シーケンス番号１０１〜２００のデータパケットを送信したとする。また、通信装置１０ｈでは、シーケンス番号＝１０１〜１８０のデータパケットを受信したが、シーケンス番号＝１８１以降のパケットを受信しなかったとする。すると、品質算出部２２ｈは、矢印Ａ１２に示す制御パケットの後に、シーケンス番号＝１０１〜１８０の８０個のパケットを受信したことを記憶する。
【００３９】
通信装置１０ｆは、以下の情報を含む制御パケットを生成し、通信装置１０ｈに送信する（矢印Ａ１３）。
先頭のシーケンス番号：１０１
末尾のシーケンス番号：２００
送信パケット数      ：１００
【００４０】
矢印Ａ１２で受信した制御パケットと矢印Ａ１３で受信した制御パケットの間で１００個のデータパケットが送信されているのに対し、品質算出部２２ｈは、８０個のデータパケットしか受信していない。そこで、品質算出部２２ｈは、１００個のデータパケットが送信されたのに対して８０個のデータパケットを受信しているので、受信品質が８０％であると計算する。なお、制御パケットの送信間隔ΔＴは実装に応じて決定される。
【００４１】
（３）接続先の決定
図７は、実施形態にかかる通信方法の例を説明する図である。以下、サーバ５から送信されるデータの配信システム中に、通信装置１０ａ〜１０ｇを含む複数の装置が含まれているものとする。なお、図７には、データ配信システム中の一部の通信装置１０が図示されている。図７の通信装置１０ａ〜１０ｅについて、受信品質と各装置で通信先の変更を行うかの判定に使用する閾値の値を、スラッシュを挟んだ文字列として表記する。スラッシュの左側の値は、その通信装置１０の受信品質であり、スラッシュの右側の値はその通信装置１０で使用されている閾値である。受信品質や閾値は、通信装置１０の通信環境によって異なることがある。例えば、通信装置１０ａでは、受信品質は１００％であり、閾値も１００％である。このため、通信装置１０ａでは、受信品質が１００％を下回ると接続先を変更する。一方、通信装置１０ｃ、通信装置１０ｄでは、受信品質は１００％であるが閾値は９９％なので、受信品質が９９．５％になっても接続先を変更しない。
【００４２】
図７の通信装置１０ｈ−１〜１０ｈ−３は、データ配信システムに参加しようとしている通信装置１０ｈが接続先として通知された候補に接続する様子を図示している。以下、図７〜図９を併用しながら、新たにデータ配信システムに参加する通信装置１０が接続先を決定する際に行う処理の例を説明する。
【００４３】
まず、通信装置１０ｈ中の取得部２１ｈは、データ配信システムへの参加を要求する参加要求を生成し、送信部１２ｈを介してサーバ５に送信する。すると、図５を参照しながら説明した処理により、通信装置１０ｈに対して、通信装置１０ｈが接続可能な通信装置１０の情報が通知される。通信装置１０ｈ中の取得部２１ｈは、受信パケットを用いて、接続先候補リスト３１ｈを生成する。以下の説明では、接続先候補リスト３１ｈには、通信装置１０ｂ、通信装置１０ｄ〜１０ｇの５台の通信装置１０の情報が通知されたとする。以下の説明では、通信装置１０ｂに１０．０．０．２、通信装置１０ｄに１９２．１６８．１０．２、通信装置１０ｅに１９２．１６８．１０．３がＩＰアドレスとして割り当てられているとする。同様に、通信装置１０ｆに１９２．１６８．１１．２、通信装置１０ｇに１９２．１６８．１１．３がＩＰアドレスとして割り当てられているとする。また、通信装置１０ｈに割り当てられたＩＰアドレスは１９２．１６８．１０．１００であるとする。
【００４４】
図８と図９は、接続先候補リスト３１と品質リスト３３の例である。図８の接続先候補リスト３１ｈ−１は、取得部２１ｈが受信パケットを用いて生成した接続先候補リスト３１ｈの例である。接続先候補リスト３１ｈ−１には、得られた接続先候補の各々について、優先順位、ＩＰアドレス、受信品質が記録されている。
【００４５】
取得部２１ｈは、通信装置１０ｈの接続先の候補となる通信装置１０として複数の装置の情報を取得すると、通知された接続先候補の各々に対して、通信装置１０ｈの接続先としての優先順位を決定する。接続先候補リスト３１ｈ−１の例では、取得部２１ｈは、通信装置１０ｈと同じセグメントに属する通信装置１０を他のセグメントに属する通信装置１０よりも、接続先として優先している。さらに、同じセグメント中の複数の通信装置１０が接続先の候補になっている場合、受信品質が高い通信装置１０ほど優先順位を上げる。なお、優先順位が高いほど、優先順位を表わす数値は小さくなるものとする。取得部２１ｈは、通信装置１０とは異なるセグメントについては、通信装置１０ｈのＩＰアドレスとセグメントのネットワークアドレスとの間で一致するビット長が長いほど、通信装置１０ｈの属するセグメントに近いセグメントであると判定する。取得部２１ｈは、通信装置１０ｈとは異なるセグメント中の装置については、通信装置１０ｈに近いセグメントに属する装置ほど、優先順位を高くする。図８の例では、通信装置１０ｄ、通信装置１０ｅ、通信装置１０ｈが同じセグメントに含まれている。また、通信装置１０ｆと通信装置１０ｇは、互いに同じセグメントに含まれているが、いずれも通信装置１０ｈとは異なるセグメントに属する。さらに、通信装置１０ｆと通信装置１０ｇが含まれているセグメントは、通信装置１０ｂが属するセグメントよりも、通信装置１０ｈに近いセグメントであると判定される。このため、通信装置１０ｈの接続先の候補について、通信装置１０ｄ、通信装置１０ｅ、通信装置１０ｆ、通信装置１０ｇ、通信装置１０ｂの順に優先順位が設定されている。なお、ＩＰアドレスと各通信装置１０との対応を見やすくするために、図８、図９においては、ＩＰアドレスの後に括弧書きでそのアドレスが割り当てられている装置の符号を記載する。
【００４６】
優先順位の決定が終わると、比較部２３ｈは、接続先候補リスト３１ｈ−１中の装置から接続先とする通信装置１０を選択し、選択した通信装置１０を品質算出部２２ｈと接続処理部２５ｈに通知する。以下、通信品質を測定する際の接続先に選択された装置を「対象装置」と記載することがある。接続処理部２５ｈは、受信部１１ｈや送信部１２ｈを介して、対象装置との間の通信を開始する。例えば、比較部２３ｈが、接続先候補リスト３１ｈ−１の中で優先順位が最高（優先順位＝１）の通信装置１０ｄを、対象装置に選択したとする。すると、接続処理部２５ｈは、送受信部１３ｈを介して通信装置１０ｄとの間で制御パケットを送受信することにより、通信装置１０ｈを通信装置１０ｄに接続する。通信装置１０ｈが通信装置１０ｄに接続している様子を、図７の通信装置１０ｈ−１に示す。
【００４７】
比較部２３ｈは、対象装置との間の受信品質と比較する閾値を、式（１）を用いて計算する。
Ｔｈｎ＝ＲＱｎ−α×（ｎ−１）  ・・・（１）
ここで、Ｔｈｎは受信品質と比較する際に用いる閾値、ｎは対象装置として選択された装置に対応付けられた優先順位を表わす数値、ＲＱｎは対象装置として選択された装置での受信品質、αは定数である。定数αは、これまでに接続を試みた装置との間で通信品質が閾値よりも悪いと判定されたことに起因して、閾値を小さくする際に使用する定数である。定数αは、ネットワークの通信品質に応じて決定される正の値である。例えば、データ配信システムでの通信品質が良好である場合、定数αは比較的小さい値に設定されるが、データ配信システムでの通信品質が劣悪である場合、定数αの値は大きくなる。なお、定数αにかけ合わせられている（ｎ−１）は、対象装置の前に接続が試みられた通信装置１０の数である。このため、接続が試みられた回数が大きくなると、閾値の算出時に接続先の通信装置１０での受信品質から差し引かれる値が大きくなるので、閾値は小さくなりやすい。
【００４８】
図７の通信装置１０ｈ−１に示す例では、対象装置は、接続先候補リスト３１ｈ−１の中で優先順位が最高（優先順位＝１）の通信装置１０ｄである。このため、通信装置１０ｄに対応付けられている受信品質（ＲＱ１）と、通信装置１０ｄ以外に通信装置１０ｈが接続を試みた通信装置１０の数を用いて、比較部２３ｈは、受信品質との比較に使用する閾値（Ｔｈ１）を（２）式から計算する。
Ｔｈ１＝ＲＱ１−α×（１−１）＝ＲＱ１＝１００  ・・・（２）
（２）式より、閾値Ｔｈ１は、通信装置１０ｄでの受信品質と同じ値となる。閾値Ｔｈ１が通信装置１０ｄでの受信品質と同じ値であることを、図７では、通信装置１０ｄの受信品質から通信装置１０ｈ−１で使用している閾値を結ぶ矢印と両者での差分値（−０）で表わしている。閾値Ｔｈ１＝１００であるため、比較部２３ｈは、通信装置１０ｈが通信装置１０ｄからデータを受信しているときの受信品質が１００％であれば、通信装置１０ｄとの間の接続状況は、通信装置１０ｄをデータの配信元とできる程度に良好であると判定する。
【００４９】
一方、通信装置１０ｈが通信装置１０ｄに接続すると、通信装置１０ｈは、配信データを含むデータパケットや制御パケットを、通信装置１０ｄから受信し始める。品質算出部２２ｈは、受信部１１ｈを介して通信装置１０ｄからの受信パケットを取得し、受信品質を計算する。受信品質の計算方法は、図６を参照しながら説明したとおりである。品質算出部２２ｈは、得られた受信品質を、通信先の情報と共に、品質リスト３３ｈに記録する。図８の品質リスト３３ｈ−１の例では、通信装置１０ｄが接続先であるときに得られた受信品質は９４％である。
【００５０】
比較部２３ｈは、品質リスト３３ｈ−１（図８）を参照することにより、通信装置１０ｄからデータを受信したときの受信品質を取得し、得られた受信値を閾値Ｔｈ１と比較する。閾値Ｔｈ１は１００％であるのに対し、通信装置１０ｄからデータを受信したときの受信品質は９４％である。このため、比較部２３ｈは、通信装置１０ｄと通信装置１０ｈの間の接続状況は、通信装置１０ｄをデータの配信元とできる程度に良好ではないと判定する。すると、比較部２３ｈは、通信装置１０ｄを接続先候補リスト３１ｈ−１から削除することにより、接続先候補リスト３１ｈ−２（図８）を生成する。
【００５１】
次に、比較部２３ｈは、接続先候補リスト３１ｈ−２の中で優先順位が最高（優先順位＝２）の通信装置１０ｅを対象装置に選択したとする。接続処理部２５ｈでの処理により、図７の通信装置１０ｈ−２に示すように、通信装置１０ｈは通信装置１０ｅに接続されたとする。
【００５２】
比較部２３ｈは、通信装置１０ｅで得られている受信品質（ＲＱ２）と、通信装置１０ｅ以外に通信装置１０ｈが接続を試みた通信装置１０の数を用いて、受信品質との比較に使用する閾値（Ｔｈ２）を（３）式から計算する。以下、定数αが２であるとする。
Ｔｈ２＝ＲＱ２−α×（ｎ−１）
＝９９−２×（２−１）＝９７  ・・・（３）
（３）式より、閾値Ｔｈ２は、通信装置１０ｅでの受信品質より小さな値となる。閾値Ｔｈ２が通信装置１０ｅでの受信品質より小さな値であることを、図７では、通信装置１０ｅの受信品質から通信装置１０ｈ−２で使用している閾値に向かう矢印と、両者での差分値（−２）で表わしている。閾値Ｔｈ２＝９７％であるため、比較部２３ｈは、通信装置１０ｈが通信装置１０ｅからデータを受信しているときの受信品質が９７％以上であれば、通信装置１０ｅとの間の接続状況は、通信装置１０ｅをデータの配信元とできる程度に良好であると判定する。
【００５３】
通信装置１０ｈが通信装置１０ｅに接続すると、通信装置１０ｈは、配信データを含むデータパケットや制御パケットを、通信装置１０ｅから受信し始める。品質算出部２２ｈは、受信品質を計算する。この例では、通信装置１０ｈが通信装置１０ｅからデータを受信しているときの受信品質は９３％であるとする。品質算出部２２ｈは、得られた受信品質の情報を品質リスト３３ｈに記録するので、品質リスト３３ｈは、品質リスト３３ｈ−１から品質リスト３３ｈ−２（図８）に示すように更新される。
【００５４】
比較部２３ｈは、品質リスト３３ｈ−２を用いて、通信装置１０ｅからデータを受信したときの受信品質を取得し、得られた受信値を閾値Ｔｈ２と比較する。閾値Ｔｈ２は９７％であるのに対し、通信装置１０ｅからデータを受信したときの受信品質は９３％である。このため、比較部２３ｈは、通信装置１０ｅと通信装置１０ｈの間の接続状況は、通信装置１０ｅをデータの配信元とできる程度に良好ではないと判定し、通信装置１０ｅを接続先候補リスト３１ｈ−２から削除する。このため、接続先候補リスト３１ｈは、接続先候補リスト３１ｈ−３（図８）に示すように更新される。
【００５５】
次に、比較部２３ｈは、接続先候補リスト３１ｈ−３の中で優先順位が最高（優先順位＝３）の通信装置１０ｆを対象装置に選択したとする。接続処理部２５ｈでの処理により、通信装置１０ｈは通信装置１０ｆに接続されたとする。
【００５６】
比較部２３ｈは、通信装置１０ｆで得られている受信品質（ＲＱ３）と、通信装置１０ｆ以外に通信装置１０ｈが接続を試みた通信装置１０の数を用いて、受信品質との比較に使用する閾値（Ｔｈ３）を（４）式から計算する。
Ｔｈ３＝ＲＱ３−α×（ｎ−１）
＝１００−２×（３−１）＝９６  ・・・（４）
閾値Ｔｈ３＝９６％であるため、比較部２３ｈは、通信装置１０ｈが通信装置１０ｆからデータを受信しているときの受信品質が９６％以上であれば、通信装置１０ｆとの間の接続状況は、通信装置１０ｆをデータの配信元とできる程度に良好であると判定する。
【００５７】
通信装置１０ｈが通信装置１０ｆに接続すると、品質算出部２２ｈは、受信品質を計算する。この例では、通信装置１０ｈが通信装置１０ｆからデータを受信しているときの受信品質は８９％であるとする。品質算出部２２ｈは、得られた受信品質の情報を品質リスト３３ｈに記録するので、品質リスト３３ｈは、品質リスト３３ｈ−２から品質リスト３３ｈ−３（図８）に示すように更新される。
【００５８】
比較部２３ｈは、品質リスト３３ｈ−３を用いて、通信装置１０ｆからデータを受信したときの受信品質を取得し、得られた受信値を閾値Ｔｈ３と比較する。閾値Ｔｈ３は９６％であるのに対し、通信装置１０ｆからデータを受信したときの受信品質は８９％である。このため、比較部２３ｈは、通信装置１０ｆと通信装置１０ｈの間の接続状況は、通信装置１０ｆをデータの配信元とできる程度に良好ではないと判定し、通信装置１０ｆを接続先候補リスト３１ｈ−３から削除する。このため、接続先候補リスト３１ｈは、接続先候補リスト３１ｈ−４（図９）に示すように更新される。
【００５９】
次に、比較部２３ｈは、接続先候補リスト３１ｈ−４（図９）の中で優先順位が最高（優先順位＝４）の通信装置１０ｇを対象装置に選択したとする。また、接続処理部２５ｈでの処理により、通信装置１０ｈは通信装置１０ｇに接続されたとする。
【００６０】
比較部２３ｈは、通信装置１０ｇで得られている受信品質（ＲＱ４）と、通信装置１０ｇ以外に通信装置１０ｈが接続を試みた通信装置１０の数を用いて、受信品質との比較に使用する閾値（Ｔｈ４）を（５）式から計算する。
Ｔｈ４＝ＲＱ４−α×（ｎ−１）
＝９７−２×（４−１）＝９１  ・・・（５）
閾値Ｔｈ４＝９１％であるため、比較部２３ｈは、通信装置１０ｈが通信装置１０ｇからデータを受信しているときの受信品質が９１％以上であれば、通信装置１０ｇとの間の接続状況は、通信装置１０ｇをデータの配信元とできる程度に良好であると判定する。
【００６１】
通信装置１０ｈが通信装置１０ｇに接続すると、品質算出部２２ｈは、受信品質を計算する。この例では、通信装置１０ｈが通信装置１０ｇからデータを受信しているときの受信品質は９０％であるとする。品質算出部２２ｈは、得られた受信品質の情報を品質リスト３３ｈに記録するので、品質リスト３３ｈは、品質リスト３３ｈ−３（図８）から品質リスト３３ｈ−４（図９）に示すように更新される。
【００６２】
比較部２３ｈは、品質リスト３３ｈ−４を用いて、通信装置１０ｇからデータを受信したときの受信品質と閾値Ｔｈ４を比較する。閾値Ｔｈ４は９１％であるのに対し、通信装置１０ｇからデータを受信したときの受信品質は９０％である。このため、比較部２３ｈは、通信装置１０ｇと通信装置１０ｈの間の接続状況は、通信装置１０ｇをデータの配信元とできる程度に良好ではないと判定し、通信装置１０ｇを接続先候補リスト３１ｈ−４から削除する。このため、接続先候補リスト３１ｈは、接続先候補リスト３１ｈ−５（図９）に示すように更新される。
【００６３】
次に、比較部２３ｈは、接続先候補リスト３１ｈ−５の中で優先順位が最高（優先順位＝５）の通信装置１０ｂを対象装置に選択する。接続処理部２５ｈでの処理により、通信装置１０ｈは通信装置１０ｂに接続されたとする。
【００６４】
比較部２３ｈは、通信装置１０ｂで得られている受信品質（ＲＱ５）と、通信装置１０ｂ以外に通信装置１０ｈが接続を試みた通信装置１０の数を用いて、受信品質との比較に使用する閾値（Ｔｈ５）を（６）式から計算する。
Ｔｈ５＝ＲＱ５−α×（ｎ−１）
＝９８−２×（５−１）＝９０  ・・・（６）
（６）式より、閾値Ｔｈ５は、通信装置１０ｂでの受信品質より小さな値となる。閾値Ｔｈ５が通信装置１０ｂでの受信品質より小さな値であることを、図７では、通信装置１０ｂの受信品質から通信装置１０ｈ−３で使用している閾値に向かう矢印と、両者での差分値（−８）で表わしている。閾値Ｔｈ５＝９０％であるため、比較部２３ｈは、通信装置１０ｈが通信装置１０ｂからデータを受信しているときの受信品質が９０％以上であれば、通信装置１０ｂとの間の接続状況は、通信装置１０ｂをデータの配信元とできる程度に良好であると判定する。
【００６５】
通信装置１０ｈが通信装置１０ｂに接続すると、品質算出部２２ｈは、受信品質を計算する。この例では、通信装置１０ｈが通信装置１０ｂからデータを受信しているときの受信品質は９１％であるとする。品質算出部２２ｈは、得られた受信品質の情報を品質リスト３３ｈに記録するので、品質リスト３３ｈは、品質リスト３３ｈ−４（図９）から品質リスト３３ｈ−５（図９）に示すように更新される。
【００６６】
比較部２３ｈは、品質リスト３３ｈ−５を用いて、通信装置１０ｂからデータを受信したときの受信品質と閾値Ｔｈ５を比較する。閾値Ｔｈ５は９０％であるのに対し、通信装置１０ｂからデータを受信したときの受信品質は９１％である。このため、比較部２３ｈは、通信装置１０ｂと通信装置１０ｈの間の接続状況は、通信装置１０ｂをデータの配信元とできる程度に良好であると判定する。そこで、比較部２３ｈは、現在使用している閾値Ｔｈ５以上の受信品質が得られる接続先が見つかったことを設定部２４ｈと接続処理部２５ｈに出力する。
【００６７】
設定部２４ｈは、現在使用している閾値Ｔｈ５を検出閾値に設定する。接続処理部２５ｈは、品質リスト３３ｈ−５を用いて、これまでに受信品質を測定した中で最も受信品質の良い通信装置１０を接続先として選択する。品質リスト３３ｈ−５によると、受信品質を測定した中では、通信装置１０ｄを接続先としたときの受信品質が最高の値であるので、接続処理部２５ｈは、通信装置１０ｄを接続先に決定する。接続処理部２５ｈは、現在接続中の通信装置１０ｂとの間の接続を切断して、通信装置１０ｄに通信装置１０ｈを接続する。
【００６８】
接続先が決定された後も、品質算出部２２ｈは、受信品質の計算を継続する。また、接続処理部２５ｈは、品質算出部２２ｈで計算された受信品質を検出閾値と比較することにより、接続先が適切であるかをモニタする。接続処理部２５ｈは、品質算出部２２ｈで計算された受信品質が検出閾値を下回ると、接続先を変更することを決定すると共に、取得部２１ｈに接続先の候補の取得を要求する。すると、取得部２１ｈは、接続処理部２５ｈからの要求に応じて、データ配信システムへの参加の際と同様に、接続先の情報を取得するため、以上で説明した処理と同様の処理により、接続先が変更される。
【００６９】
なお、通信装置１０ｈがいずれかの通信装置１０に接続している場合、配信されたデータを含むデータパケットは、品質算出部２２ｈだけでなく、データ処理部２６ｈにも出力される。データ処理部２６ｈでは、配信されたデータが処理されるので、適宜、ディスプレイやスピーカなどの出力装置を介して、通信装置１０ｈのユーザにデータの処理結果が提供される。さらに、通信装置１０ｈに他の通信装置１０が接続した場合、配信されたデータを含むデータパケットは、中継処理部２７ｈにも出力される。中継処理部２７ｈは、通信装置１０ｈに接続している通信装置１０に対して、送信部１２ｈを介して、配信されたデータを含むデータパケットを送信する。
【００７０】
図１０は、実施形態にかかる通信方法の例を説明するフローチャートである。なお、図１０に示す手順は一例であり、例えば、ステップＳ３１とＳ３２の順序は互いに変更されても良い。また、ステップＳ３５を省略して、全てのケースでステップＳ３６の処理が行われるように改変することも可能である。また、ステップＳ２６とステップＳ２７の順序は互いに変更されても良く、また、ステップＳ２６とＳ２７が並行して行われても良い。
【００７１】
取得部２１がサーバ５に向けて接続要求を送信する（ステップＳ２１）。受信部１１は、接続先候補の情報を含むパケットを受信し、取得部２１に出力する（ステップＳ２２）。取得部２１は、取得した情報から接続先候補リスト３１を生成する。比較部２３は、接続先候補リスト３１中に自装置と同一のセグメントに含まれている通信装置１０があるかを判定する（ステップＳ２３）。接続先候補リスト３１中に自装置と同一のセグメントに含まれている通信装置１０がない場合、比較部２３は、自装置のセグメントとアドレスが最長一致するセグメントを選択する（ステップＳ２３でＮｏ、ステップＳ２４）。一方、接続先候補リスト３１中に自装置と同一のセグメントに含まれている通信装置１０がある場合、比較部２３は、自装置と同一のセグメントを選択する（ステップＳ２３でＹｅｓ）。比較部２３は、選択したセグメントで受信品質が高い候補を対象装置に選択する（ステップＳ２５）。比較部２３は、受信品質との比較に使用する閾値を、対象装置の受信品質の値から、リトライ回数と一定値（定数α）の積を差し引いた値に設定する（ステップＳ２６）。なお、リトライ回数は、処理対象の対象装置への接続の前に接続を試みた装置の数である。接続処理部２５は、自装置を対象装置に接続する（ステップＳ２７）。その後、品質算出部２２は、受信品質を測定し、得られた値を品質リスト３３に記録する（ステップＳ２８、Ｓ２９）。比較部２３は、受信品質が閾値以上であるかを判定する（ステップＳ３０）。受信品質が閾値以上である場合、接続処理部２５は、今回得られた受信品質が品質リスト３３に記録された受信品質の中での最高値かを判定する（ステップＳ３０でＹｅｓ、ステップＳ３５）。今回得られた受信品質が品質リスト３３に記録された受信品質の中での最高値である場合、接続処理が終了する（ステップＳ３５でＹｅｓ）。
【００７２】
一方、今回の受信品質が品質リスト３３中での最高値ではない場合、接続処理部２５は、現在の接続先との間の接続を切断すると共に、受信品質が最高値であったときの対象装置に自装置を接続する（ステップＳ３５でＮｏ、ステップＳ３６）。
【００７３】
ステップＳ３０において、受信品質が閾値以上ではないと判定した場合、比較部２３は、接続先候補リスト３１から今回の対象装置を除いて、リトライ回数を１つインクリメントする（ステップＳ３１、Ｓ３２）。比較部２３は、接続先候補リスト３１が空でない場合、ステップＳ２３に戻る（ステップＳ３３でＮｏ）。一方、接続先候補リスト３１が空である場合、設定部２４は、品質リスト３３中の最高値を閾値に設定する（ステップＳ３３でＹｅｓ、ステップＳ３４）。ステップＳ３４の処理の後、ステップＳ３５以降の処理が行われる。
【００７４】
このように、実施形態にかかる方法では、データ配信システムに参加しようとする通信装置１０は、接続先の変更を行うかの判定に使用する検出閾値を、その通信装置１０がこれまでに接続を試みた装置数と接続先の装置での受信品質に応じて変動させる。このため、最終的に接続する通信装置１０を決定するまでに接続を試みた装置が多い通信装置１０ほど、検出閾値を小さい値に設定することができる。検出閾値を小さい値に設定している通信装置１０では、受信品質が検出閾値を下回りにくいので、データの配信中に頻繁に接続先を変更することにはならない。換言すると、実施形態にかかる方法によると、他の装置との間の通信状況が悪い通信装置１０であっても、検出閾値を小さい値に設定することにより、接続先の検索の頻度が高すぎるためにデータの配信を受けられなくなることを防止できる。また、実施形態にかかる方法によると、通信装置１０は、受信品質を測定した中で相対的に通信状況の良好な接続先から、配信データを受信することができる。
【００７５】
以上の説明では、理解しやすくするために、１台の通信装置１０が新たにデータ配信システムに参加する場合を例として説明したが、受信品質が検出閾値を下回った通信装置１０も、同様の処理により、接続先を決定する。
【００７６】
図１１は、実施形態にかかる方法を用いたデータ配信システムの改善例を示す図である。図１１のケースＣ１は、ある企業の複数の支社にまたがってデータ配信システムが形成されている場合のネットワークの例を示す。通信装置１０ｘと通信装置１０ｙはＡ支社に位置しており、通信装置１０ｍ、通信装置１０ｎ、通信装置１０ｐはＣ支社に位置しているとする。また、通信装置１０ｓ、通信装置１０ｔ、通信装置１０ｕは、いずれの支社内にも位置していないとする。なお、図１１では、サーバ５は図示していないが、通信装置１０ｘは、サーバ５から配信されたデータをサーバ５から直接受信しても良く、また、他の装置を介して受信しても良い。通信装置１０ｘは、受信したデータを、通信装置１０ｓと通信装置１０ｙに転送する。通信装置１０ｓは、受信したデータを通信装置１０ｔと通信装置１０ｕに転送し、通信装置１０ｙは受信したデータを通信装置１０ｍに転送している。さらに、通信装置１０ｍは、通信装置１０ｙから受信したデータを、通信装置１０ｎと通信装置１０ｐに転送しているとする。
【００７７】
ケースＣ１に示す経路で通信が行われているときに、Ａ支社とＣ支社の間の通信状況が悪化したとする。通信状況が悪化したときにＣ支社に位置する各通信装置１０での受信品質は、通信装置１０ｍと通信装置１０ｎで９２％、通信装置１０ｐで９１％であるとする。また、Ａ支社内に位置する通信装置１０ｘと通信装置１０ｙでは、いずれも、受信品質は９９％であるとする。ケースＣ１に示す状況において、仮に、いずれの通信装置１０においても検出閾値が９５％に設定されているとすると、通信装置１０ｍ、通信装置１０ｎ、通信装置１０ｐにおいて、いずれも受信品質が検出閾値を下回る。このため、通信装置１０ｍ、通信装置１０ｎ、通信装置１０ｐにおいて、現在の接続先との間の接続を切断して、配信データを受信するための接続先を検出する処理が開始される。
【００７８】
通信装置１０ｍは、図５〜図１０を参照しながら説明した処理を行うことにより、接続先での受信品質や、接続先に選択した対象装置との接続前に接続を試みた装置数を用いて、接続の失敗回数が増えるごとに閾値を小さくしたとする。その結果、通信装置１０ｍでの検出閾値が９０％になったときに、通信装置１０ｙとの間で接続を確立したとする。
【００７９】
図１１のケースＣ２は、通信装置１０ｍで使用している検出閾値が９０％に設定されている状態で通信装置１０ｍが通信装置１０ｙに接続する様子を示す。ケースＣ２において、Ａ支社とＣ支社に位置する通信装置１０のそれぞれについて、使用中の検出閾値と受信品質を示している。スラッシュの左側が受信品質であり、スラッシュの右側が検出閾値である。例えば、ケースＣ２に示す状態では、通信装置１０ｍでの受信品質は９２％であるので、通信装置１０ｍでの受信品質と検出閾値を「９２／９０」と記載している。通信装置１０ｍが接続先を通信装置１０ｙに再設定した後で、通信装置１０ｎや通信装置１０ｐも、通信装置１０ｍと同様の処理により、接続先を検索する。その結果、ケースＣ２に示す例では、通信装置１０ｎは、検出閾値＝９２％のときに通信装置１０ｍを接続先に決定し、受信品質が９２％になっている。一方、通信装置１０ｐは、検出閾値＝９０％のときに通信装置１０ｍを接続先に決定し、受信品質が９１％になっている。
【００８０】
図１１を参照しながら説明したように、通信状況が悪い通信装置１０ｍは、実施形態にかかる方法を用いて、検出閾値を小さくすることにより、頻繁に接続先の検索を行うことを避けて、比較的安定的にデータを受信することができる。また、通信装置１０ｍは、受信品質は余り良好ではないものの、安定的にデータを受信しているため、通信装置１０ｍに接続している通信装置１０ｎ、通信装置１０ｐに対してもデータを転送することができる。このように、実施形態にかかる方法によると、拠点間での境界に位置する通信装置１０での通信状況が悪くても、その通信装置１０は、自装置での通信環境に合わせて検出閾値を小さくしつつ、比較的安定的にデータを取得可能な接続先を検出する。このため、他の拠点との境界に位置する通信装置１０での通信状況が悪いことに起因して、通信状況が悪い通信装置１０を含む拠点の全体にデータが配信されないという事態が回避され、データの配信が効率化される。
【００８１】
＜変形例＞
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
【００８２】
以上の説明では、接続先の受信品質を用いて計算した閾値は、その接続先に接続したときの受信品質とだけ比較されていたが、１つの閾値が品質リスト３３中の全ての受信品質と比較されても良い。このように変形すると、接続先との間の受信品質が他の通信装置１０に接続したときの受信品質よりも悪いケースにおいて、上述の方法よりも早く接続先を発見することができる。
【００８３】
図１２は、変形例にかかる通信方法の例を説明するフローチャートである。ステップＳ４１〜Ｓ４９の処理は、図１０を参照しながら説明したステップＳ２１〜Ｓ２９と同様である。また、ステップＳ５１〜Ｓ５６の処理は、図１０を参照しながら説明したステップＳ３１〜Ｓ３６と同様である。ステップＳ５０において、比較部２３は、品質リスト３３中に記録されている受信品質の中で、今回の処理に使用している閾値を上回るものがあるかを判定する。品質リスト３３中に記録されている受信品質の中で、今回の処理に使用している閾値を上回るものがある場合、ステップＳ５５以降の処理が行われる。品質リスト３３中に記録されている受信品質の中で、今回の処理に使用している閾値を上回るものがない場合、ステップＳ５１以降の処理が行われる。
【００８４】
さらに、優先順位の決定法は、実装に応じて変更されても良い。例えば、通信装置１０の属するセグメントに関係なく、受信品質の良い順を優先順位の高い順に設定しても良い。
【００８５】
以上での説明に関し、さらに以下の付記を開示する。
（付記１）
複数の通信装置を含む配信システムに参加する第１の通信装置が、
前記第１の通信装置の接続先となり得る通信装置から選択した対象通信装置と前記第１の通信装置との間の通信品質を、前記対象通信装置でのデータの受信品質と前記第１の通信装置が前記対象通信装置以外に接続を試みた通信装置の数の関数として求めた品質閾値と比較し、
前記通信品質が前記品質閾値以上の場合、前記品質閾値を、接続先の変更を行う契機を検出するための検出閾値に設定し、
前記第１の通信装置の接続先となり得る通信装置のうちで前記第１の通信装置との間の通信品質が相対的に高い第２の通信装置を、前記第２の通信装置と前記第１の通信装置の間の通信品質が前記検出閾値を下回るまでの間の接続先に決定する
処理を行うことを特徴とする接続方法。
（付記２）  
前記第１の通信装置は、前記接続先を検索する際に、
前記第２の通信装置と前記第１の通信装置の間の通信品質である第１の通信品質が、前記第２の通信装置での受信品質を用いて計算された第１の品質閾値より小さい場合、前記第１の通信品質を記憶し、
前記第２の通信装置とは異なる第３の通信装置を新たな対象通信装置に選択すると共に、前記第３の通信装置での受信品質を用いて第２の品質閾値を計算し、
前記第３の通信装置と前記第１の通信装置の間の通信品質である第２の通信品質か、前記第１の通信品質のいずれかが、前記第２の品質閾値以上の場合、前記第２の品質閾値を前記検出閾値に設定する
処理をさらに行うことを特徴とする付記１に記載の接続方法。
（付記３）
前記第１の通信装置は、
前記配信システムに参加する際の前記第１の通信装置の接続先となり得る通信装置のリストを取得し、
前記リスト中で前記第１の通信装置が接続を試みていない通信装置のうちで、前記第１の通信装置の接続先としての優先度が相対的に高い通信装置を前記対象通信装置に選択する
ことを特徴とする付記１または２に記載の接続方法。
（付記４）
前記第１の通信装置は、前記対象通信装置でのデータの受信品質から、前記第１の通信装置が前記対象通信装置以外に接続を試みた装置の数に正比例する値を差し引くことにより、前記対象通信装置に接続したときの前記第１の通信装置での受信品質との比較に使用する品質閾値を計算する
ことを特徴とする付記１〜３のいずれか１項に記載の接続方法。
（付記５）
複数の通信装置を含む配信システムに参加可能な通信装置であって、
前記配信システムに参加する際の接続先となり得る通信装置から選択した対象通信装置との間の通信品質を、前記対象通信装置でのデータの受信品質と前記対象通信装置以外に接続を試みた装置の数の関数として求めた品質閾値と比較する比較部と、
前記通信品質が前記品質閾値以上の場合、前記品質閾値を、接続先の変更を行う契機を検出するための検出閾値に設定する設定部と、
前記配信システムに参加する際の接続先となり得る通信装置のうちで前記通信装置との間の通信品質が相対的に高い他の通信装置を、前記他の通信装置と前記通信装置の間の通信品質が前記検出閾値を下回るまでの間の接続先とする接続処理部
を備えることを特徴とする通信装置。
（付記６）
前記対象通信装置として選択された第１の通信装置との間の通信品質である第１の通信品質が、前記第１の通信装置での受信品質を用いて計算された第１の品質閾値より小さい場合、前記第１の通信品質を記憶する記憶部
をさらに備え、
前記比較部は、前記第１の通信装置とは異なる第２の通信装置を新たな対象通信装置に選択すると共に、前記第２の通信装置での受信品質を用いて第２の品質閾値を計算し、
前記設定部は、前記第２の通信装置との間の通信品質である第２の通信品質か、前記第１の通信品質のいずれかが、前記第２の品質閾値以上の場合、前記第２の品質閾値を前記検出閾値に設定する
ことを特徴とする付記５に記載の通信装置。
（付記７）
前記配信システムに参加する際の接続先となり得る通信装置のリストを取得する取得部
をさらに備え、
前記比較部は、前記リスト中で前記対象通信装置として選択されていない通信装置のうちで、前記第１の通信装置の接続先としての優先度が相対的に高い通信装置を前記対象通信装置に選択する
ことを特徴とする付記５または６に記載の通信装置。
（付記８）
前記比較部は、前記対象通信装置でのデータの受信品質から、前記対象通信装置以外に接続を試みた通信装置の数に正比例する値を差し引くことにより、前記対象通信装置に接続したときに得られる受信品質との比較に使用する品質閾値を計算する
ことを特徴とする付記５〜７のいずれか１項に記載の接続先決定方法。
（付記９）
データの配信を受けている複数の通信装置と
前記データを受信するための接続先を検索する第１の通信装置
を含み、
前記第１の通信装置は、
前記第１の通信装置の接続先となり得る通信装置から選択した対象通信装置と前記第１の通信装置との間の通信品質を、前記対象通信装置でのデータの受信品質と前記第１の通信装置が前記対象通信装置以外に接続を試みた通信装置の数の関数として求めた品質閾値と比較し、
前記通信品質が前記品質閾値以上の場合、前記品質閾値を、接続先の変更を行う契機を検出するための検出閾値に設定し、
前記第１の通信装置の接続先となり得る通信装置のうちで前記第１の通信装置との間の通信品質が相対的に高い第２の通信装置を、前記第２の通信装置と前記第１の通信装置の間の通信品質が前記検出閾値を下回るまでの間の接続先に決定する
ことを特徴とする通信システム。
（付記１０）
前記第１の通信装置は、前記接続先を検索する際に、
前記第２の通信装置と前記第１の通信装置の間の通信品質である第１の通信品質が、前記第２の通信装置での受信品質を用いて計算された第１の品質閾値より小さい場合、前記第１の通信品質を記憶し、
前記第２の通信装置とは異なる第３の通信装置を新たな対象通信装置に選択すると共に、前記第３の通信装置での受信品質を用いて第２の品質閾値を計算し、
前記第３の通信装置と前記第１の通信装置の間の通信品質である第２の通信品質か、前記第１の通信品質のいずれかが、前記第２の品質閾値以上の場合、前記第２の品質閾値を前記検出閾値に設定する
処理をさらに行うことを特徴とする付記９に記載の通信システム。
（付記１１）
前記第１の通信装置は、
前記複数の通信装置のうちで前記第１の通信装置の接続先となり得る通信装置のリストを取得し、
前記リスト中で前記第１の通信装置が接続を試みていない通信装置のうちで、前記第１の通信装置の接続先としての優先度が相対的に高い通信装置を前記対象通信装置に選択する
ことを特徴とする付記９または１０に記載の通信システム。
（付記１２）
前記第１の通信装置は、前記対象通信装置でのデータの受信品質から、前記第１の通信装置が前記対象通信装置以外に接続を試みた通信装置の数に正比例する値を差し引くことにより、前記対象通信装置に接続したときの前記第１の通信装置での受信品質との比較に使用する品質閾値を計算する
ことを特徴とする付記９〜１１のいずれか１項に記載の通信システム。
（付記１３）
複数の通信装置を含む配信システムに参加する第１の通信装置に、
前記第１の通信装置の接続先となり得る通信装置から選択した対象通信装置と前記第１の通信装置との間の通信品質を、前記対象通信装置でのデータの受信品質と前記第１の通信装置が前記対象通信装置以外に接続を試みた通信装置の数の関数として求めた品質閾値と比較し、
前記通信品質が前記品質閾値以上の場合、前記品質閾値を、接続先の変更を行う契機を検出するための検出閾値に設定し、
前記第１の通信装置の接続先となり得る通信装置のうちで前記第１の通信装置との間の通信品質が相対的に高い第２の通信装置を、前記第２の通信装置と前記第１の通信装置の間の通信品質が前記検出閾値を下回るまでの間の接続先に決定する
処理を行わせることを特徴とする通信プログラム。
（付記１４）
前記第１の通信装置が前記接続先を検索する際に、
前記対象通信装置として選択された前記第２の通信装置と前記第１の通信装置の間の通信品質である第１の通信品質が、前記第２の通信装置での受信品質を用いて計算された第１の品質閾値より小さい場合、前記第１の通信品質を記憶し、
前記第２の通信装置とは異なる第３の通信装置を新たな対象通信装置に選択すると共に、前記第３の通信装置での受信品質を用いて第２の品質閾値を計算し、
前記第３の通信装置と前記第１の通信装置の間の通信品質である第２の通信品質か、前記第１の通信品質のいずれかが、前記第２の品質閾値以上の場合、前記第２の品質閾値を前記検出閾値に設定する
処理を前記第１の通信装置にさらに行わせることを特徴とする付記１３に記載の通信プログラム。
【符号の説明】
【００８６】
１、１０  通信装置
５  サーバ
１１  受信部
１２  送信部
１３  送受信部
２０  制御部
２１  取得部
２２  品質算出部
２３  比較部
２４  設定部
２５  接続処理部
２６  データ処理部
２７  中継処理部
３０  記憶部
３１  接続先候補リスト
３２  閾値データ
３３  品質リスト
５２  代表ノード
１０１  プロセッサ
１０２  メモリ
１０３  バス
１０４  ネットワークインタフェース
【図２】
2017017630.tif 000003
【図３】
2017017630.tif 000004
【図４】
2017017630.tif 000005
【図５】
2017017630.tif 000006
【図８】
2017017630.tif 000007
【図９】
2017017630.tif 000008
【図１０】
2017017630.tif 000009
【図１２】
2017017630.tif 000010
【図１】
2017017630.tif 000011
【図６】
2017017630.tif 000012
【図７】
2017017630.tif 000013
【図１１】
2017017630.tif 000014