(57)【特許請求の範囲】
【請求項１】
マルチホップ通信を行うための通信ルートを構成する、親機及び複数の子機のうち、前記親機として動作する通信装置であって、
前記複数の子機には、第一の子機と、前記通信ルート上で前記第一の子機よりも１ホップ前記親機から遠い第二の子機とが含まれ、
前記通信装置は、
前記複数の子機のそれぞれが、前記複数の子機のうち前記通信ルート上で当該子機よりも１ホップ前記親機に近い子機である上位子機とのみ対応付けられたルート情報であって、前記通信ルートを示すルート情報が記憶された記憶部と、
前記通信ルート上で前記第一の子機よりも１ホップ前記親機に近い上位通信装置と前記第一の子機との通信が不可能であることを検知した場合に、前記ルート情報のうち前記第二の子機に対応付けられた上位子機を前記第一の子機から別の子機に変更する制御部とを備える
通信装置。
【請求項２】
前記制御部は、さらに、前記上位通信装置と前記第一の子機との通信が不可能であることを検知した場合に、前記ルート情報において前記第一の子機を上位子機とする前記第二の子機以外の他の子機に対応付けられた上位子機を前記第一の子機から別の子機に変更する
請求項１に記載の通信装置。
【請求項３】
前記制御部は、前記上位通信装置と前記第一の子機との通信が不可能であり、かつ、前記第一の子機が通信可能な前記上位通信装置以外の子機が前記複数の子機に含まれないことを検知した場合に、前記ルート情報のうち前記第二の子機に対応付けられた上位子機を前記第一の子機から別の子機に変更する
請求項１または２に記載の通信装置。
【請求項４】
前記制御部は、前記上位通信装置と前記第一の子機との通信が不可能であることを検知した場合に、前記ルート情報のうち前記第二の子機に対応付けられた上位子機を前記第一の子機から別の子機に変更し、かつ、前記ルート情報のうち前記第一の子機に対応付けられた上位子機を前記第二の子機に変更する
請求項１〜３のいずれか1項に記載の通信装置。
【請求項５】
前記制御部は、前記上位通信装置と前記第一の子機との通信が不可能であることを検知した場合であって、かつ、前記第一の子機が通信可能な前記第二の子機以外の子機が前記複数の子機に含まれないことを検知した場合に、前記ルート情報のうち前記第二の子機に対応付けられた上位子機を前記第一の子機から別の子機に変更し、かつ、前記ルート情報のうち前記第一の子機に対応付けられた上位子機を前記第二の子機に変更する
請求項４に記載の通信装置。
【請求項６】
前記制御部は、
前記第二の子機に対応付けられた上位子機の前記第一の子機から別の子機への変更が不可能であると判断した場合に、前記通信ルート上で前記第二の子機よりも親機から遠い下位子機が、当該下位子機に対応付けられた上位子機の変更が可能な対象下位子機であるか否かの判断を、前記第二の子機に近い下位子機から順番に前記対象下位子機が見つかるまで行い、
前記ルート情報のうち、前記対象下位子機であると判断された下位子機に対応付けられた上位子機を変更する
請求項１〜５のいずれか１項に記載の通信装置。
【請求項７】
前記制御部は、
前記ルート情報のうち前記第二の子機に対応付けられた上位子機を、前記第一の子機から前記複数の子機に含まれる候補の子機に変更した場合の前記第二の子機から前記親機までのホップ数を特定し、
前記ルート情報のうち前記第二の子機に対応付けられた上位子機の前記第一の子機からの変更において、特定されたホップ数が変更前のホップ数以下となる前記候補の子機を、特定されたホップ数が変更前のホップ数よりも大きくなる前記候補の子機よりも優先して変更先の子機とする
請求項１〜６のいずれか１項に記載の通信装置。
【請求項８】
前記複数の子機には、前記通信ルート上で、前記第二の子機よりも前記親機から遠い第四の子機であって、前記第二の子機を経由して前記親機と通信を行う第四の子機が含まれ、
前記制御部は、さらに、前記ルート情報のうち前記第四の子機に対応付けられた上位子機を変更する
請求項１〜７のいずれか１項に記載の通信装置。
【請求項９】
前記記憶部には、前記複数の子機に含まれる２つの子機間の通信品質を示す通信品質情報が記憶され、
前記制御部は、さらに、前記ルート情報のうち前記第四の子機に対応付けられた上位子機を前記通信品質情報に基づいて変更する
請求項８に記載の通信装置。
【請求項１０】
前記制御部は、前記ルート情報のうち、前記第二の子機に対応付けられた上位子機が前記第一の子機から別の子機に変更されたことにより親機までのルートコストが所定値以上となる前記第四の子機に対応付けられた上位子機を変更する
請求項９に記載の通信装置。
【請求項１１】
前記制御部は、前記ルート情報のうち、前記第二の子機に対応付けられた上位子機が前記第一の子機から別の子機に変更されたことにより親機までのホップ数が所定数以上となる前記第四の子機に対応付けられた上位子機を変更する
請求項９に記載の通信装置。
【請求項１２】
前記制御部は、前記複数の子機の中に前記第四の子機を上位子機とする子機が存在する場合に、前記ルート情報のうち、前記第二の子機に対応付けられた上位子機が前記第一の子機から別の子機に変更されたことにより親機までのホップ数が所定数以上となる前記第四の子機に対応付けられた上位子機を変更する
請求項１１に記載の通信装置。
【請求項１３】
前記制御部は、
前記親機と対象の子機とが通信するときに、前記ルート情報のうち、前記通信に使用される前記第二の子機に対応付けられた上位子機を前記第一の子機から別の子機に変更し、
前記ルート情報のうち、前記通信において使用されない前記第二の子機の上位子機は、通信に使用されるときまで変更を保留する
請求項１〜１２のいずれか１項に記載の通信装置。
【請求項１４】
マルチホップ通信を行うための通信ルートを構成する、親機及び複数の子機を備え、
前記複数の子機には、第一の子機と、前記通信ルート上で前記第一の子機よりも１ホップ前記親機から遠い第二の子機とが含まれ、
前記親機は、
前記複数の子機のそれぞれが、前記複数の子機のうち前記通信ルート上で当該子機よりも１ホップ前記親機に近い子機である上位子機とのみ対応付けられたルート情報であって、前記通信ルートを示すルート情報が記憶された記憶部と、
前記通信ルート上で前記第一の子機よりも１ホップ前記親機に近い上位通信装置と前記第一の子機との通信が不可能であることを検知した場合に、前記ルート情報のうち前記第二の子機に対応付けられた上位子機を前記第一の子機から別の子機に変更する制御部とを備える
マルチホップ通信システム。
【請求項１５】
前記複数の子機のそれぞれは、さらに、当該子機と、前記通信ルート上で当該子機よりも１ホップ前記親機に近い子機とを対応付けたルート通知情報を前記親機あてに送信する通信部を備える
請求項１４に記載のマルチホップ通信システム。
【請求項１６】
前記第二の子機は、さらに、前記第二の子機の前記通信部が前記第二の子機よりも１ホップ前記親機から遠い第三の子機の前記通信部が送信したルート通知情報を受信した場合、受信されたルート通知情報に前記第一の子機をさらに対応付けたルート通知情報を、前記第二の子機の前記通信部から前記第一の子機の前記通信部に送信させる子機制御部を備える
請求項１５に記載のマルチホップ通信システム。
【請求項１７】
請求項１４〜１６のいずれか１項に記載のマルチホップ通信システムが備える子機として動作する通信装置。
【請求項１８】
マルチホップ通信システムが実行する通信方法であって、
前記マルチホップ通信システムは、マルチホップ通信を行うための通信ルートを構成する、親機及び複数の子機を備え、
前記複数の子機には、第一の子機と、前記通信ルート上で前記第一の子機よりも１ホップ前記親機から遠い第二の子機とが含まれ、
前記親機は、前記複数の子機のそれぞれが、前記複数の子機のうち前記通信ルート上で当該子機よりも１ホップ前記親機に近い子機である上位子機とのみ対応付けられたルート情報であって、前記通信ルートを示すルート情報が記憶された記憶部を備え、
前記通信方法は、前記通信ルート上で前記第一の子機よりも１ホップ前記親機に近い上位通信装置と前記第一の子機との通信が不可能であることを検知した場合に、前記ルート情報のうち前記第二の子機に対応付けられた上位子機を前記第一の子機から別の子機に変更する
通信方法。
【請求項１９】
請求項１８に記載の通信方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチホップ通信システム、並びに、マルチホップ通信システムにおいて用いられる通信装置及び通信方法に関する。
【背景技術】
【０００２】
従来、子機が他の子機を中継局として親機と通信を行うマルチホップ通信システムが知られている。特許文献１には、マルチホップ通信システムとして、経路情報が膨大になるのを防止することができるアドホックネットワークシステムが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−００５０４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
マルチホップ通信システムにおいて、通信ルート上で通信が不可能なリンクが生じた場合、通信ルートが再構成される必要がある。
【０００５】
本発明は、通信ルート上で通信が不可能なリンクが生じた場合に、通信ルートを再構成することができる、マルチホップ通信システム並びに、マルチホップ通信システムにおいて用いられる通信装置及び通信方法を提供する。
【課題を解決するための手段】
【０００６】
本発明の一態様に係る通信装置は、マルチホップ通信を行うための通信ルートを構成する、親機及び複数の子機のうち、前記親機として動作する通信装置であって、前記複数の子機には、第一の子機と、前記通信ルート上で前記第一の子機よりも１ホップ前記親機から遠い第二の子機とが含まれ、前記通信装置は、前記複数の子機のそれぞれが、前記複数の子機のうち前記通信ルート上で当該子機よりも１ホップ前記親機に近い子機である上位子機とのみ対応付けられたルート情報であって、前記通信ルートを示すルート情報が記憶された記憶部と、前記通信ルート上で前記第一の子機よりも１ホップ前記親機に近い上位通信装置と前記第一の子機との通信が不可能であることを検知した場合に、前記ルート情報のうち前記第二の子機に対応付けられた上位子機を変更する制御部とを備える。
【０００７】
本発明の一態様に係るマルチホップ通信システムは、マルチホップ通信を行うための通信ルートを構成する、親機及び複数の子機を備え、前記複数の子機には、第一の子機と、前記通信ルート上で前記第一の子機よりも１ホップ前記親機から遠い第二の子機とが含まれ、前記親機は、前記複数の子機のそれぞれが、前記複数の子機のうち前記通信ルート上で当該子機よりも１ホップ前記親機に近い子機である上位子機とのみ対応付けられたルート情報であって、前記通信ルートを示すルート情報が記憶された記憶部と、前記通信ルート上で前記第一の子機よりも１ホップ前記親機に近い上位通信装置と前記第一の子機との通信が不可能であることを検知した場合に、前記ルート情報のうち前記第二の子機に対応付けられた上位子機を変更する制御部とを備える。
【０００８】
本発明の一態様に係る通信装置は、前記マルチホップ通信システムが備える子機として動作する。
【０００９】
本発明の一態様に係る通信方法は、マルチホップ通信システムが実行する通信方法であって、前記マルチホップ通信システムは、マルチホップ通信を行うための通信ルートを構成する、親機及び複数の子機を備え、前記複数の子機には、第一の子機と、前記通信ルート上で前記第一の子機よりも１ホップ前記親機から遠い第二の子機とが含まれ、前記親機は、前記複数の子機のそれぞれが、前記複数の子機のうち前記通信ルート上で当該子機よりも１ホップ前記親機に近い子機である上位子機とのみ対応付けられたルート情報であって、前記通信ルートを示すルート情報が記憶された記憶部を備え、前記通信方法は、前記通信ルート上で前記第一の子機よりも１ホップ前記親機に近い上位通信装置と前記第一の子機との通信が不可能であることを検知した場合に、前記ルート情報のうち前記第二の子機に対応付けられた上位子機を変更する。
【００１０】
本発明の一態様に係るプログラムは、上記通信方法をコンピュータに実行させるためのプログラムである。
【発明の効果】
【００１１】
本発明のマルチホップ通信システム、並びに、本発明のマルチホップ通信システムにおいて用いられる通信装置及び通信方法によれば、通信ルート上で通信が不可能なリンクが生じた場合に、通信ルートを再構成することができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施の形態１に係るマルチホップ通信システムのネットワーク構成図である。
【図２】図２は、実施の形態１に係るマルチホップ通信システムの機能構成を示すブロック図である。
【図３】図３は、ノードＮ０とノードＮ１との間における、Ｈｅｌｌｏパケットの送受信を示すシーケンス図である。
【図４Ａ】図４Ａは、ノードＮ１のノードテーブルを示す第１の図である。
【図４Ｂ】図４Ｂは、ノードＮ０のノードテーブルを示す図である。
【図４Ｃ】図４Ｃは、ノードＮ１のノードテーブルを示す第２の図である。
【図５】図５は、ルート情報の一例を示す図である。
【図６】図６は、マルチホップ通信システム１００におけるルート情報の更新のフローチャートである。
【図７】図７は、更新後のルート情報を示す図である。
【図８】図８は、動作例３に基づいて更新されたルート情報を示す図である。
【図９】図９は、動作例４に基づいて更新されたルート情報を示す図である。
【図１０】図１０は、動作例５に係るマルチホップ通信システムのネットワーク構成を示す図である。
【図１１】図１１は、動作例５に基づいて更新されたルート情報を示す図である。
【図１２Ａ】図１２Ａは、トポロジ通知情報の一例を示す図である。
【図１２Ｂ】図１２Ｂは、トポロジ通知情報の別の例を示す図である。
【図１２Ｃ】図１２Ｃは、トポロジ通知情報のさらに別の例を示す図である。
【発明を実施するための形態】
【００１３】
以下、実施の形態について図面を参照しながら説明する。なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
【００１４】
なお、各図は模式図であり、必ずしも厳密に図示されたものではない。また、各図において、実質的に同一の構成に対しては同一の符号を付し、重複する説明は省略または簡略化される場合がある。
【００１５】
（実施の形態１）
［構成］
まず、実施の形態１に係るマルチホップ通信システムの構成について説明する。図１は、実施の形態１に係るマルチホップ通信システムのネットワーク構成図である。図２は、実施の形態１に係るマルチホップ通信システムの機能構成を示すブロック図である。なお、図１は、各ノードの論理構成（論理トポロジ）を示すものであり、物理構成を示すものではない。
【００１６】
図１に示されるマルチホップ通信システム１００においては、ノードＮ０を親ノードとし、ノードＮ１〜Ｎ１０を子ノードとしたマスタースレーブ型の通信ネットワークが構築されている。マスタースレーブ型の通信ネットワークにおいては、一般に、親ノードが複数の子ノードそれぞれまでのルート（ルート情報）を管理し、複数の子ノードのそれぞれは、少なくとも親ノードまでのルートを管理する。なお、以下の実施の形態では、ノードＮ０は、親機Ｎ０とも記載され、ノードＮ１〜Ｎ１０は、子機Ｎ１〜Ｎ１０とも記載される。
【００１７】
図２に示されるように、マルチホップ通信システム１００は、親機Ｎ０と、複数の子機Ｎ１〜Ｎ１０とを備える。なお、マルチホップ通信システム１００が備える子機の数は、特に限定されない。
【００１８】
なお、図２では、複数の子機のうち子機Ｎ１のみが詳細に図示され、かつ、以下では主として子機Ｎ１についての説明がなされるが、マルチホップ通信システム１００に含まれる他の子機Ｎ２〜Ｎ１０についても子機Ｎ１と同様の構成である。
【００１９】
まず、親機Ｎ０の構成について説明する。親機Ｎ０は、マルチホップ通信システム１００に含まれる親機として動作する通信装置の一例であって、第一通信部１１と、第一制御部１２と、第一記憶部１３とを備える。親機Ｎ０は、例えば、マルチホップ通信システム１００に含まれる複数の子機からデータを取得（集約）し、管理する。
【００２０】
第一通信部１１は、子機（例えば、子機Ｎ１）が備える第二通信部２１と通信するための通信インターフェースである。第一通信部１１は、具体的には、通信モジュール（通信回路）である。
【００２１】
第一通信部１１は、例えば、第一制御部１２の制御に基づいて、Ｈｅｌｌｏパケットをブロードキャスト送信する。
【００２２】
Ｈｅｌｌｏパケットは、当該Ｈｅｌｌｏパケットを送信する通信装置が、通信可能な状態である（生存している）ことを他の通信装置に通知するために、所定期間ごとにブロードキャスト送信されるパケット（信号）である。所定期間は、例えば、１０秒である。
【００２３】
第一通信部１１と第二通信部２１とが行う通信は、有線または無線のどのような通信であってもよく、特に限定されない。例えば、第一通信部１１と第二通信部２１とは、電力線搬送通信（ＰＬＣ：Ｐｏｗｅｒ  Ｌｉｎｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ）を行うが、有線ＬＡＮを用いた有線通信を行ってもよい。また、第一通信部１１と第二通信部２１とは、特定小電力無線、ＺｉｇＢｅｅ（登録商標）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、または、Ｗｉ−Ｆｉ（登録商標）などの通信規格を用いた無線通信を行ってもよい。
【００２４】
第一制御部１２は、制御部の一例である。第一制御部１２は、第一通信部１１を制御する制御装置であり、例えば、第一通信部１１を通じて、子機Ｎ１または子機Ｎ２からデータを受信する。また、第一制御部１２は、第一通信部１１に、Ｈｅｌｌｏパケット、及び、後述する暗号鍵などを送信させる。第一制御部１２は、具体的には、第一記憶部１３に記憶された制御プログラムを実行するプロセッサであるが、マイクロコンピュータ、または専用回路などにより実現されてもよい。
【００２５】
第一記憶部１３は、記憶部の一例である。第一記憶部１３は、第一制御部１２が実行する制御プログラム、及び、親機Ｎ０からマルチホップ通信システム１００に含まれる複数の子機それぞれまでのルートを示すルート情報などが記憶される記憶装置である。第一記憶部１３は、例えば、半導体メモリなどにより実現される。
【００２６】
次に、子機Ｎ１について説明する。子機Ｎ１は、マルチホップ通信システム１００に含まれる子機として動作する通信装置の一例であって、第二通信部２１と、第二制御部２２と、第二記憶部２３とを備える。
【００２７】
第二通信部２１は、通信部の一例である。第二通信部２１は、第一通信部１１、または、他の子機が備える第二通信部２１と通信するための通信インターフェースである。第二通信部２１は、具体的には、第一通信部１１と同種の通信モジュール（通信回路）である。第二通信部２１は、例えば、第二制御部２２の制御に基づいてＨｅｌｌｏパケットをブロードキャスト送信する。また、第二通信部２１は、親機Ｎ０または他の子機からＨｅｌｌｏパケットを受信する。
【００２８】
第二制御部２２は、子機制御部の一例である。第二制御部は、第二通信部２１を制御する制御装置である。例えば、第二通信部２１に、データ及びＨｅｌｌｏパケットなどを送信させる。第二制御部２２は、具体的には、第二記憶部２３に記憶された制御プログラムを実行するプロセッサであるが、マイクロコンピュータ、または専用回路などにより実現されてもよい。
【００２９】
第二記憶部２３は、第二制御部２２が実行する制御プログラム、ノードテーブル、及び、ルートテーブルなどが記憶される記憶装置である。第二記憶部２３は、具体的には、例えば、半導体メモリなどにより実現される。
【００３０】
ノードテーブル（隣接ノードテーブル）は、隣接する子機（または親機Ｎ０）の情報を管理するテーブルである。ルートテーブルは、親機Ｎ０までのルートを示す（少なくとも、当該子機よりも１ホップ親機Ｎ０に近いノードを示す）情報であり、データ（データパケット）送信時に参照される。
【００３１】
［基本動作］
次に、マルチホップ通信システム１００の基本動作について上記図１を参照しながら説明する。
【００３２】
上述のように、図１に示される通信ネットワークは、ノードＮ０を親ノードとし、ノードＮ１〜Ｎ１０を子ノードとしたマスタースレーブ型の通信ネットワークである。マスタースレーブ型の通信ネットワークでは、データを伝送するルートの一端は、ノードＮ０であり、データを伝送するルートの他端は、ノードＮ１〜Ｎ１０のいずれかになる。一の子ノードから送信される通信データは、必要に応じて他の子ノードによって中継されて、親ノードに伝送される。
【００３３】
ここで、以下の説明では、一のノードよりも、論理トポロジ上で親ノードに近いノードは、当該一のノードよりも上位のノード、のように表現される。また、一のノードよりも、論理トポロジ上で親ノードから遠いノードは、当該一のノードよりも下位のノード、のように表現される。また、一のノードと、他のノードを介さずに直接通信可能なノードは、当該一のノードと隣接するノード（当該一のノードの隣接ノード）のように表現される。一のノードと隣接するノードは、言い換えれば、論理トポロジ上で一のノードから１ホップ目に位置するノードである。
【００３４】
マルチホップ通信ネットワークでは、各ノードは、当該ノードの記憶部にノードテーブルまたはルートテーブルが記憶されるまでは、中継なしで直接通信することができる隣接ノードを知らない。したがって、隣接ノードを探索するために、Ｈｅｌｌｏパケットがブロードキャスト送信される。
【００３５】
マスタースレーブ型の通信ネットワークでは、親ノードからＨｅｌｌｏパケットの送信が開始される。図１の例では、まず、ノードＮ０がＨｅｌｌｏパケットをブロードキャスト送信し、隣接するノードＮ１及びＮ２がノードＮ０によって送信されたＨｅｌｌｏパケットを受信すると、ノードＮ１及びＮ２のそれぞれは、リンクコストを記憶する。ここで、リンクコストは、直接通信が可能な２つのノード間の通信品質の評価値であり、通信ネットワークにおけるルートの決定に用いられる。リンクコストは、例えば、値が大きいほど通信品質が悪いことを示す。
【００３６】
リンクコストは、直接通信が可能な２つのノード間において、どちらのノードを送信側とするかによって変化することがある。このため、相手ノードからの信号の受信強度に応じたリンクコストを受信リンクコストと呼び、自ノードからの信号を相手ノードが受信したときの受信強度に応じて得られるリンクコストを送信リンクコストと呼ぶ。受信リンクコストは、言い換えれば、受信側の通信品質（受信品質）の評価値であり、送信リンクコストは、言い換えれば、送信側の通信品質（送信品質）の評価値である。最終的には、受信リンクコストと送信リンクコストとのうち値の大きいほうがリンクコストとして用いられる。なお、各ノードの記憶部には、受信リンクコスト及び送信リンクコストが、相手ノードのアドレスに対応付けられて、ノードテーブルとして記憶される。なお、リンクコストの決定方法は、このような例に限定されない。例えば、受信コストがそのままリンクコストとして用いられてもよい。
【００３７】
ここで、リンクコストを決定するための処理について図面を用いて説明する。図３は、ノードＮ０とノードＮ１との間における、Ｈｅｌｌｏパケットの送受信を示すシーケンス図である。図４Ａ及び図４Ｃは、ノードＮ１のノードテーブルを示す図であり、図４Ｂは、ノードＮ０のノードテーブルを示す図である。なお、図４Ａ〜図４Ｃに示されるノードテーブルには、上位コスト及びルートコストが含まれるが、これらの内容については後述する。
【００３８】
図３に示されるように、ノードＮ０がＨｅｌｌｏパケットＨ１を送信すると、ノードＮ１は、ＨｅｌｌｏパケットＨ１を受信し、ＨｅｌｌｏパケットＨ１の受信品質に応じて受信リンクコストを算出する。ノードＮ１が算出した受信リンクコストは、図４Ａに示されるノードＮ１のノードテーブルにおいて、ノードＮ０のアドレスである「Ｎ０」に対応付けられて記憶される。ここでの受信リンクコストは、１１である。
【００３９】
次に、ノードＮ１は、ＨｅｌｌｏパケットＨ１の送信元であるノードＮ０のアドレスと受信リンクコストとを含むＨｅｌｌｏパケットＨ２を送信する。このＨｅｌｌｏパケットＨ２を受信したノードＮ０は、ＨｅｌｌｏパケットＨ２によってノードＮ１からの信号を受信したときの受信リンクコストを算出し、図４Ｂに示されるように、算出した受信リンクコストをノードＮ１のアドレスである「Ｎ１」に対応付けてノードテーブルに記憶する。ここでの受信リンクコストは、５である。
【００４０】
また、ＨｅｌｌｏパケットＨ２には、ノードＮ０のアドレスと、ノードＮ１がＨｅｌｌｏパケットＨ１を受信したときの受信リンクコストとが含まれている。したがって、ノードＮ０は、ＨｅｌｌｏパケットＨ２に含まれる受信リンクコストをノードＮ０からノードＮ１への送信リンクコストとして、ノードＮ０のアドレスに対応付けてノードテーブルに記憶する。つまり、図４Ｂに示されるように、ノードＮ０からノードＮ１への送信リンクコストは、１１となる。
【００４１】
その後、ノードＮ０は、再びＨｅｌｌｏパケットＨ３を送信する。このＨｅｌｌｏパケットＨ３は、ノードＮ１からＨｅｌｌｏパケットＨ２を受信したときの受信リンクコストとノードＮ１のアドレスとを含む。したがって、ノードＮ１は、ＨｅｌｌｏパケットＨ３を受信することにより、ノードＮ０にＨｅｌｌｏパケットＨ２を送信したときの送信リンクコストを取得することができる。ノードＮ１からノードＮ０への送信リンクコストは、５である。ノードＮ１は、図４Ｃに示されるように、ノードＮ０から受け取った受信リンクコストをノードＮ１からノードＮ０への送信リンクコストとしノードＮ０のアドレスに対応付けてノードテーブルに記憶する。
【００４２】
このように、隣接するノードＮ０及びノードＮ１の間において、ＨｅｌｌｏパケットＨ１〜Ｈ３が送受信されることにより、ノードＮ０及びノードＮ１のそれぞれは、受信リンクコスト及び送信リンクコストを記憶することができる。また、ＨｅｌｌｏパケットＨ１〜Ｈ３の送受信後には、隣接するノードのノードテーブルの内容は相補的な内容になる。つまり、一方の内容が失われても他方の内容を復元できる。なお、ノードＮ０及びノードＮ２の間においても同様に、Ｈｅｌｌｏパケットが送受信されて、ノードＮ０及びノードＮ２のそれぞれは、受信リンクコスト及び送信リンクコストを記憶する。
【００４３】
ノードＮ１及びノードＮ２が送信リンクコストを記憶すると、ノードＮ１及びノードＮ２は、Ｈｅｌｌｏパケットをブロードキャスト送信する。ノードＮ０は、受信リンクコスト及び送信リンクコストをすでに記憶しているため、ブロードキャスト送信されたＨｅｌｌｏパケットには応答しないが、ノードＮ３及びＮ６は、ノードＮ１によってブロードキャスト送信されたＨｅｌｌｏパケットに応答する。このような動作が順次繰り返されることによって、ノードＮ１〜Ｎ１０は、隣接するノードとの間の受信リンクコスト及び送信リンクコストを記憶する。
【００４４】
なお、Ｈｅｌｌｏパケットには、より詳細には、ノードＮ０までのルートに含まれるノードの、アドレス及びリンクコストなども含まれる。したがって、ノードＮ１〜Ｎ１０の各ノードは、送信元のノードからノードＮ０までのルートに含まれるノードの、アドレス及びリンクコストをノードテーブルに記憶することができる。
【００４５】
そして、ノードＮ１〜Ｎ１０の各ノードは、例えば、ノードＮ０までのルートコストが最小であるルートを選択し、当該ルートをルートテーブルとして記憶する。ルートテーブルには、選択したルートにおいて、データがあて先の子機に到着するまでに経由する全ノードのアドレスが記憶される場合と、選択したルートにおける上位の隣接ノードのアドレスのみが記憶される場合があるが、実施の形態１では、選択したルートにおける上位の隣接ノードのアドレスのみが記憶される。
【００４６】
このように、ノードＮ１〜Ｎ１０の各ノードが上位の隣接ノードを１つ選択することにより、図１に示されるようなツリー型トポロジのネットワーク（図１に示される実線のリンクの集合）が構築される。以下の実施の形態では、ツリー型トポロジのネットワークを通信ルートとも記載する。図１に示される破線は、通信は可能であるが通信ルートには含まれない未使用リンクである。
【００４７】
一方、ノードＮ０は、ノードＮ１〜Ｎ１０の各ノードから、トポロジ通知情報を受け取ることでノードテーブル及びルートテーブルを入手することができる。トポロジ通知情報は適時に送信されればよいが、通常は一定の時間間隔で定期的に送信される。
【００４８】
［動作例１］
以上説明したように、親機Ｎ０（ノードＮ０）の第一制御部１２は、複数の子機（ノードＮ１〜Ｎ１０）のうち一の子機の隣接ノード（一の子機がどの子機と直接通信できるか）を第一記憶部１３に記憶することができる。つまり、第一制御部１２は、図１に破線で示される未使用リンクが存在することを認識することができる。
【００４９】
また、第一制御部１２は、第一通信部１１が受信したトポロジ通知情報に基づいて、構築された通信ルートをルート情報として第一記憶部１３に記憶することができる。ここで、親機Ｎ０のルート情報では、複数の子機のそれぞれが、複数の子機のうち通信ルート上で当該子機よりも親機Ｎ０に１ホップ近い子機である上位子機とのみ対応付けられている。図５は、ルート情報の一例を示す図である。
【００５０】
第一制御部１２は、データを子機Ｎ６に送信したいときには、第一記憶部１３に記憶されたルート情報を参照し、子機Ｎ６の上位ノードが子機Ｎ１であると特定する。次に、第一制御部１２は、第一記憶部１３に記憶されたルート情報を参照し、特定した子機Ｎ１に対応付けられた上位子機がない（上位ノードが親機Ｎ０である）ことを特定する。このように、図５に示されるルート情報を用いれば、第一制御部１２は、あて先の子機までのルートを特定することができる。
【００５１】
ところで、図１に示される通信ルートにおいて、親機Ｎ０と子機Ｎ１とが通信できなくなった場合、親機Ｎ０は、一般的には、子機Ｎ１のリンク先を変更することにより通信ルートを再構成する。例えば、子機Ｎ１と子機Ｎ２とが通信可能である場合（子機Ｎ２が子機Ｎ１の隣接ノードである場合）には、リンクＬ１が未使用とされ、代わりに子機Ｎ１と子機Ｎ２とを接続するリンクＬ２が使用される。このとき、親機Ｎ０の第一制御部１２は、第一記憶部１３に記憶されたルート情報において、子機Ｎ１に対応付けられた上位子機を子機Ｎ２に変更する。
【００５２】
これに対し、マルチホップ通信システム１００においては、親機Ｎ０と子機Ｎ１とが通信できなくなった場合、親機Ｎ０は、通信ルート上で子機Ｎ１よりも１ホップ親機Ｎ０から遠い子機Ｎ３に対応付けられた上位子機（リンク先）を変更することによりルート情報を更新して通信ルートを再構成する。図６は、マルチホップ通信システム１００におけるルート情報の更新のフローチャートである。図７は、更新後のルート情報を示す図である。
【００５３】
図６に示されるように、まず、親機Ｎ０の第一制御部１２は、親機Ｎ０と子機Ｎ１とが通信不可能であることを検知する（Ｓ１１）。親機Ｎ０は、上位通信装置の一例であり、子機Ｎ１は、第一の子機の一例である。
【００５４】
例えば、親機Ｎ０の第一通信部１１が子機Ｎ１にデータを送信した場合に、第一通信部１１が子機Ｎ１に送信したデータに対する応答（ＡＣＫ）を受信できなかったときに、第一制御部１２は、親機Ｎ０と子機Ｎ１とのリンクＬ１が切断され、親機Ｎ０と子機Ｎ１とが通信不可能であると判定（検知）できる。
【００５５】
また、定期的に親機Ｎ０に送信される子機Ｎ１（または、子機Ｎ３、子機Ｎ４、子機Ｎ５）からのトポロジ通知情報が、リンクＬ１を経由せずに受信された場合も、第一制御部１２は、親機Ｎ０と子機Ｎ１とのリンクＬ１が切断され、親機Ｎ０と子機Ｎ１とが通信不可能であると判定（検知）できる。
【００５６】
上記のような検知の結果、第一制御部１２は、第一記憶部１３に記憶されたルート情報のうち、子機Ｎ３に対応付けられた上位子機を変更する（Ｓ１２）。具体的には、第一制御部１２は、図７に示されるように、子機Ｎ３に対応付けられた上位子機を子機Ｎ１から子機Ｎ２に変更する。つまり、図１に示される通信ルートにおいて、子機Ｎ１と子機Ｎ３とを接続するリンクＬ３が未使用とされ、代わりに、子機Ｎ２と子機Ｎ３とを接続するリンクＬ４が使用される。子機Ｎ３は、第二の子機の一例である。
【００５７】
これにより、第一制御部１２は、通信ルート上で子機同士の通信が不可能なリンクが生じた場合に、通信ルート（ルート情報）を再構成することができる。第一制御部１２は、具体的には、子機Ｎ１が通信可能な子機が通信ルート上にない場合（図１の例では、未使用リンクＬ２が存在しない場合）であっても、通信ルートを再構成することができる。
【００５８】
なお、第一制御部１２は、さらに、親機Ｎ０と子機Ｎ１との通信が不可能であることを検知した場合に、ルート情報において子機Ｎ１を上位子機とする子機Ｎ３以外の他の子機の上位子機を変更してもよい。ここで図１及び図７に示されるように、子機Ｎ１を上位子機とする子機Ｎ３以外の他の子機は、具体的には子機Ｎ６である。第一制御部１２は、第一記憶部１３に記憶されたルート情報において子機Ｎ６に対応付けられた上位子機を子機Ｎ３に変更する。つまり、図１に示される通信ルートにおいて、子機Ｎ１と子機Ｎ６とを接続するリンクＬ５が未使用とされ、代わりに、子機Ｎ３と子機Ｎ６とを接続するリンクＬ６が使用される。
【００５９】
これにより、第一制御部１２は、子機Ｎ１を上位子機とする子機Ｎ３に加えて、子機Ｎ３以外の他の子機Ｎ６の上位子機も合わせて変更することができる。つまり、１回の検知でルート情報に含まれる２つの上位子機を変更することができる。
【００６０】
なお、上記のような子機Ｎ３に対応付けられた上位子機の変更は、第一制御部１２が、親機Ｎ０と子機Ｎ１との通信が不可能であり、かつ、子機Ｎ１が通信可能な上位通信装置以外の子機が複数の子機に含まれないことを検知した場合（図１でリンクＬ１が切断され、かつ、リンクＬ２が存在しない場合）に行われてもよい。言い換えれば、図１の例のように、第一制御部１２が、親機Ｎ０と子機Ｎ１との通信が不可能であり、かつ、子機Ｎ１が子機Ｎ２と通信可能な場合には、子機Ｎ３ではなく子機Ｎ１に対応付けられた上位子機が変更されてもよい。つまり、子機Ｎ１（第一の子機）の上位子機の変更と、子機Ｎ３（第二の子機）の上位子機の変更とが子機Ｎ１が子機Ｎ２と通信可能であるか否かに基づいて選択的に行われてもよい。
【００６１】
また、第一制御部１２が子機Ｎ３に対応付けられた上位子機を変更する場合に、上位子機の候補となる子機（子機Ｎ３が直接通信できる子機）が複数存在する場合が考えられる。例えば、図１の例では、子機Ｎ３は、子機Ｎ２以外に子機Ｎ６とも直接通信できるため、第一制御部１２は、子機Ｎ６を上位子機として選択することもできる。
【００６２】
このような場合には、第一制御部１２は、候補の複数の子機のうち、親機Ｎ０からのルートコストが最も小さい子機を子機Ｎ３の上位子機として選択してもよいし、候補の複数の子機のうち、親機Ｎ０からのホップ数が最も小さい子機を子機Ｎ３の上位子機として選択してもよい。このように、第一制御部１２は、所定の選択基準に基づいて候補の複数の子機の中から上位子機を選択するとよい。
【００６３】
［動作例２］
上記動作例１では、親機Ｎ０と子機Ｎ１とが通信不可能となった場合のルート情報の更新方法が示されたが、子機同士が通信できなくなった場合にも同様の更新方法が使用できる。以下、引き続き図１を参照しながら説明を行う。
【００６４】
例えば、子機Ｎ１と子機Ｎ３とが通信できなくなった場合には、まず、親機Ｎ０の第一制御部１２は、子機Ｎ１と子機Ｎ３とが通信不可能であることを検知する。
【００６５】
例えば、親機Ｎ０の第一通信部１１が子機Ｎ３あてにデータを送信した場合、データは本来、子機Ｎ１を経由して子機Ｎ３に到着するはずである。しかしながら、子機Ｎ１と子機Ｎ３とが通信できない場合、つまり、リンクＬ３が切断されている場合には、子機Ｎ１は、子機Ｎ３に送信したデータに対する子機Ｎ３からの応答（ＡＣＫ）を受信できない。
【００６６】
そうすると、子機Ｎ１が子機Ｎ３と通信できなかった（ＡＣＫを受信できなかった）ことを示す情報を親機Ｎ０あてに送信する。親機Ｎ０の第一通信部１１がこのような情報を子機Ｎ１から受信すると、親機Ｎ０の第一制御部１２は、子機Ｎ１と子機Ｎ３とのリンクＬ３が切断され、子機Ｎ１と子機Ｎ３とが通信不可能であると判定（検知）できる。
【００６７】
また、定期的に親機Ｎ０あてに送信される子機Ｎ３（または子機Ｎ４、子機Ｎ５）からのトポロジ通知情報が、リンクＬ３を経由しないで第一通信部１１によって受信された場合も、第一制御部１２は、子機Ｎ１と子機Ｎ３とのリンクＬ３が切断され、子機Ｎ１と子機Ｎ３とが通信不可能であると判定（検知）できる。
【００６８】
上記のような検知の結果、第一制御部１２は、第一記憶部１３に記憶されたルート情報のうち、子機Ｎ４に対応付けられた上位子機を変更する。具体的には、第一制御部１２は、子機Ｎ４に対応付けられた上位子機を子機Ｎ３から子機Ｎ６に変更する。つまり、図１に示される通信ルートにおいて、子機Ｎ３と子機Ｎ４とを接続するリンクＬ７が未使用とされ、代わりに、子機Ｎ４と子機Ｎ６とを接続するリンクＬ８が使用される。
【００６９】
これにより、第一制御部１２は、通信ルート上で子機同士の通信が不可能なリンクが生じた場合に、通信ルート（ルート情報）を再構成することができる。第一制御部１２は、具体的には、子機Ｎ３が通信可能な子機が通信ルート上にない場合（図１において、未使用リンクＬ４及び未使用リンクＬ６が存在しない場合）であっても、通信ルートを再構成することができる。
【００７０】
［動作例３］
動作例１と同様に、図１に示されるように通信ルートが構成され、図５に示されるようなルート情報が第一記憶部１３に記憶され、親機Ｎ０と子機Ｎ１とが通信できなくなるシチュエーションが考えられる。
【００７１】
このようなシチュエーションにおいては、第一制御部１２は、第一記憶部１３に記憶されたルート情報のうち、子機Ｎ１に対応付けられた上位子機を子機Ｎ３に変更することは通常行わない。なぜなら、子機Ｎ１は、子機Ｎ３の上位子機であるため、子機Ｎ１と子機Ｎ３との間でルートがループしてしまうからである。
【００７２】
しかしながら、上述のように、マルチホップ通信システム１００においては、親機Ｎ０と子機Ｎ１とが通信できなくなった場合、親機Ｎ０は、通信ルート上で子機Ｎ１よりも１ホップ親機Ｎ０から遠い子機Ｎ３に対応付けられた上位子機（リンク先）を変更することによりルート情報を更新する。そうすると、子機Ｎ１は、子機Ｎ３の上位子機ではなくなるため、子機Ｎ１に対応付けられた上位子機を子機Ｎ３に変更しても、子機Ｎ１と子機Ｎ３との間でルートがループしてしまうことはない。
【００７３】
したがって、第一制御部１２は、第一記憶部１３に記憶されたルート情報のうち子機Ｎ１に対応付けられた上位子機を子機Ｎ３に変更してもよい。図８は、このような動作例３に基づいて更新されたルート情報を示す図である。図５の状態から図８の状態にルート情報が更新されると、図１においてリンクＬ１が未使用とされ、代わりにリンクＬ４が使用される。
【００７４】
このように、第一制御部１２は、親機Ｎ０と子機Ｎ１との通信が不可能であることを検知した場合に、第一記憶部１３に記憶されたルート情報のうち子機Ｎ３に対応付けられた上位子機を変更し、かつ、ルート情報のうち子機Ｎ１に対応付けられた上位子機を子機Ｎ３に変更してもよい。
【００７５】
これにより、通信ルートを再構成できる可能性を高めることができる。なお、このようなルート情報の更新は、例えば、第一制御部１２によって、子機Ｎ１が通信可能な子機Ｎ３以外の子機がマルチホップ通信システム１００に含まれないことが検知された場合に行われるとよい。つまり、第一制御部１２は、子機Ｎ３を子機Ｎ１の上位子機とすることがやむを得ない場合に、子機Ｎ１に対応付けられた上位子機を子機Ｎ３に変更してもよい。子機Ｎ１が通信可能な子機Ｎ３以外の子機がマルチホップ通信システム１００に含まれないことの検知は、例えば、第一記憶部１３に記憶されたノードテーブルを参照することによって行われる。
【００７６】
［動作例４］
また、動作例１及び動作例３と同様のシチュエーションにおいて、子機Ｎ３の上位子機を、子機Ｎ３を上位子機としている子機Ｎ４に変更し、子機Ｎ４の上位子機をさらに変更してもよい。つまり、第一制御部１２は、親機Ｎ０と子機Ｎ１との通信が不可能であることを検知した場合に、ルート情報のうち子機Ｎ３に対応付けられた上位子機を子機Ｎ４に変更し、かつ、ルート情報のうち子機Ｎ４に対応付けられた上位子機を変更してもよい。
【００７７】
この場合、第一制御部１２は、まず、子機Ｎ３に対応付けられた上位子機を子機Ｎ４に変更したと仮定した場合に、子機Ｎ４から子機Ｎ０に到達するルートが生成できるか否かを判定する。そして、第一制御部１２は、子機Ｎ４から子機Ｎ０に到達するルートが存在すると判定された場合に、ルート情報のうち子機Ｎ３に対応付けられた上位子機を子機Ｎ４に変更し、かつ、ルート情報のうち子機Ｎ４に対応付けられた上位子機を変更する。なお、子機Ｎ４に対応付けられた上位子機は、具体的には、子機Ｎ９に変更される。図９は、このような動作例４に基づいて更新されたルート情報を示す図である。図５の状態から図９の状態にルート情報が更新されると、図１においてリンクＬ３が未使用とされ、代わりにリンクＬ９が使用される。
【００７８】
これにより、通信ルートを再構成できる可能性を高めることができる。なお、このようなルート情報の更新は、例えば、第一制御部１２によって、子機Ｎ３が通信可能な子機Ｎ１及び子機Ｎ４以外の子機がマルチホップ通信システム１００に含まれないことが検知された場合に行われるとよい。つまり、第一制御部１２は、子機Ｎ４を子機Ｎ３の上位子機とすることがやむを得ない場合に、子機Ｎ３に対応付けられた上位子機を子機Ｎ４に変更してもよい。子機Ｎ３が通信可能な子機Ｎ１及び子機Ｎ３以外の子機がマルチホップ通信システム１００に含まれないことの検知は、例えば、第一記憶部１３に記憶されたノードテーブルを参照することによって行われる。
【００７９】
［動作例５］
動作例５では、図１とは異なるネットワーク構成を有するマルチホップ通信システム１００における動作例について説明する。図１０は、動作例５に係るマルチホップ通信システム１００のネットワーク構成を示す図である。なお、図１０に示される破線は、通信は可能であるが通信ルートには含まれない未使用リンクである。
【００８０】
図１０に示されるようなネットワーク構成においては、親機Ｎ０と子機Ｎ１とが通信できなくなった場合、第一制御部１２は、通信ルート上で子機Ｎ１よりも１ホップ親機Ｎ０から遠い子機Ｎ２に対応付けられた上位子機（子機Ｎ１）を変更することができない。なぜなら、子機Ｎ２は、子機Ｎ１以外の子機と通信をすることができないからである。なお、子機Ｎ２は、子機Ｎ３とは通信可能であるが、子機Ｎ２の上位子機を子機Ｎ３にしてしまうと、子機Ｎ３の上位子機が子機Ｎ２であるため、通信ルートがループしてしまう。このため、子機Ｎ３は、変更先の上位子機の候補から除外される。
【００８１】
このような場合、第一制御部１２は、子機Ｎ２よりもさらに１ホップ親機Ｎ０から遠い子機Ｎ３の上位子機の変更が可能であるかどうかを判断する。図１０の例では、子機Ｎ３は、子機Ｎ２（及び子機Ｎ３の変更先の上位子機の候補から除外される子機Ｎ４）以外の子機と通信をすることができない。そうすると、第一制御部１２は、子機Ｎ３よりもさらに１ホップ親機Ｎ０から遠い子機Ｎ４の上位子機の変更が可能であるかどうかを判断する。
【００８２】
ここで、子機Ｎ４は、子機Ｎ３以外に、子機Ｎ７とも通信が可能である。そこで、第一制御部１２は、ルート情報のうち、子機Ｎ４に対応付けられた上位子機を子機Ｎ３から子機Ｎ７に変更する。図１１は、このような動作例５に基づいて更新されたルート情報を示す図である。
【００８３】
このように、第一制御部１２は、子機Ｎ２に対応付けられた上位子機の変更が不可能であると判断した場合に、通信ルート上で子機Ｎ２よりも親機Ｎ０から遠い下位子機（子機Ｎ３及び子機Ｎ４）が、当該下位子機に対応付けられた上位子機の変更が可能な対象下位子機であるか否かの判断を、子機Ｎ２に近い下位子機から順番に（Ｎ３、Ｎ４の順番に）対象下位子機が見つかるまで行う。そして、第一制御部１２は、ルート情報のうち、対象下位子機であると判断された下位子機である子機Ｎ４に対応付けられた上位子機を変更する。
【００８４】
これにより、通信ルートを再構成できる可能性を高めることができる。なお、対象下位子機であるか否かの判断は、例えば、第一記憶部１３に記憶されたノードテーブルを参照することによって行われる。対象下位子機であるか否かの判断は、単純に、一の子機が、他の子機と通信可能かどうかに基づいて（つまり、未使用リンクの有無に基づいて）行われる。しかしながら、一の子機が他の子機と通信可能であっても上記一の子機と上記他の子機との通信品質が一定の基準に達していない場合には、一の子機を対象下位子機と判断しなくてもよい。対象下位子機であるか否かの判断は、通信可能かどうかだけでなく、通信品質を考慮して行われてもよい。また、変更先の上位子機の候補が切断されたリンクに接続されているような場合、このような上位子機の候補は除外して、対象下位子機であるか否かの判断が行われてもよい。
【００８５】
［動作例６］
上述のように、マルチホップ通信システム１００においては、動作例１、動作例３、及び、動作例４と同様のシチュエーションにおいて、第一制御部１２は、子機Ｎ３及び子機Ｎ６の上位子機を変更する。
【００８６】
ここで、第一制御部１２は、親機Ｎ０から子機Ｎ３までのホップ数に基づいて、上位子機の変更を行ってもよい。
【００８７】
例えば、第一制御部１２は、ルート情報のうち子機Ｎ３に対応付けられた上位子機を、複数の子機に含まれる候補の子機に変更した場合の子機Ｎ３から親機Ｎ０までのホップ数を特定する。そして、第一制御部１２は、ルート情報のうち子機Ｎ３に対応付けられた上位子機の変更において、特定されたホップ数が変更前のホップ数以下となる候補の子機を、特定されたホップ数が変更前のホップ数よりも大きくなる候補の子機よりも優先して変更先の子機としてもよい。
【００８８】
この結果、子機Ｎ３の上位子機の変更により、子機Ｎ３から親機Ｎ０までのホップ数の増加が抑制される。
【００８９】
［動作例７］
上述のように、マルチホップ通信システム１００においては、動作例１、動作例３、及び、動作例４と同様のシチュエーションにおいて、第一制御部１２は、子機Ｎ３及び子機Ｎ６の上位子機を変更する。
【００９０】
ここで、第一制御部１２は、例えば、子機Ｎ３の変更に加えて、子機Ｎ３よりもさらに下位の子機である、子機Ｎ４及び子機Ｎ５についても、上位子機を変更してもよい。子機Ｎ４及び子機Ｎ５は、通信ルート上で子機Ｎ３よりも親機Ｎ０から遠い子機であって、子機Ｎ３を経由して親機Ｎ０と通信を行う子機である。つまり、子機Ｎ３は第二の子機の一例であり、この場合、子機Ｎ４及び子機Ｎ５のそれぞれは、第四の子機の一例である。
【００９１】
同様に、第一制御部１２は、例えば、子機Ｎ６の変更に加えて、子機Ｎ６よりもさらに下位の子機である、子機Ｎ７、子機Ｎ８、及び子機Ｎ１０についても、上位子機を変更してもよい。子機Ｎ７、子機Ｎ８、子機Ｎ１０は、通信ルート上で子機Ｎ６よりも親機Ｎ０から遠い子機であって、子機Ｎ６を経由して親機Ｎ０と情報の送受信を行う子機である。つまり、この場合、子機Ｎ６は第二の子機の一例であり、子機Ｎ７、子機Ｎ８、及び子機Ｎ１０のそれぞれは、第四の子機の一例である。
【００９２】
このとき、第一制御部１２は、子機Ｎ３及び子機Ｎ６に加えて、子機Ｎ４、子機Ｎ５、子機Ｎ７、子機Ｎ８、及び、子機Ｎ１０の上位子機を変更してもよい。言い換えれば、第一制御部１２は、子機Ｎ３及び子機Ｎ６に加えて、子機Ｎ４、子機Ｎ５、子機Ｎ７、子機Ｎ８、及び、子機Ｎ１０のそれぞれの上位子機の見直しを行ってもよい。
【００９３】
例えば、子機Ｎ３の上位子機が変更されると、子機Ｎ４及び子機Ｎ５については、現在よりもさらに最適な上位子機が存在する可能性がある。同様に、子機Ｎ６の上位子機が変更されると、子機Ｎ７、子機Ｎ８、及び子機Ｎ１０については現在よりもさらに最適な上位子機が存在する可能性がある。
【００９４】
そこで、第一制御部１２は、子機Ｎ３の上位子機が変更されると、ルート情報のうち子機Ｎ４及び子機Ｎ５に対応付けられた上位子機を、例えば、ルートコスト（リンクコスト）に基づいて変更する。リンクコストは、マルチホップ通信システム１００に含まれる２つの子機間の通信品質を示す通信品質情報の一例であり、第一記憶部１３にノードテーブル及びルートテーブルの形式で記憶されている。なお、通信品質情報としては、その他に、受信強度等が用いられてもよい。
【００９５】
同様に、第一制御部１２は、子機Ｎ６の上位子機が変更されると、ルート情報のうち子機Ｎ７、子機Ｎ８、及び子機Ｎ１０に対応付けられた上位子機を、例えば、リンクコストに基づいて変更してもよい。
【００９６】
また、第一制御部１２は、子機Ｎ３及び子機Ｎ６に加えて、子機Ｎ４、子機Ｎ５、子機Ｎ７、子機Ｎ８、及び、子機Ｎ１０の全て、すなわち、切断されたリンクＬ１に関与する全子機の上位子機を変更してもよいが、切断されたリンクＬ１に関与する子機のうち一部の子機のみ選択的に上位子機を変更してもよい。
【００９７】
例えば、第一制御部１２は、子機Ｎ３に対応付けられた上位子機が変更されたことにより親機Ｎ０までのルートコストが所定値以上となる子機のみ、当該子機に対応付けられた上位子機を変更してもよい。
【００９８】
図１の例において、子機Ｎ３に対応付けられた上位子機が変更された状態において、親機Ｎ０から子機Ｎ４までのルートコストが所定値未満であり、親機Ｎ０から子機Ｎ５までのルートコストが所定値以上であると仮定する。この場合、第一制御部１２は、ルート情報において子機Ｎ４の上位子機は変更せず、子機Ｎ５の上位子機を子機Ｎ１０に変更する。ただし、第一制御部１２は、子機Ｎ５の上位子機を子機Ｎ１０に変更することにより、ルートコストの改善が見込める場合に子機Ｎ５の上位子機を子機Ｎ１０に変更するとよい。
【００９９】
また、第一制御部１２は、子機Ｎ６に対応付けられた上位子機が変更されたことにより親機Ｎ０までのホップ数が所定数以上となる子機のみ、当該子機に対応付けられた上位子機を変更してもよい。
【０１００】
例えば、上記所定数が５であり、子機Ｎ６の上位子機が子機Ｎ３に変更されたとする。この場合、子機Ｎ７の親機Ｎ０までのホップ数、及び、子機Ｎ８の親機Ｎ０までのホップ数のそれぞれは、子機Ｎ６に対応付けられた上位子機が子機Ｎ３に変更されたことにより３から４に増加し、子機Ｎ１０の親機Ｎ０までのホップ数は、４から５に増加する。したがって、第一制御部１２は、子機Ｎ６に対応付けられた上位子機が変更されたことにより親機Ｎ０までのホップ数が５以上となる子機Ｎ１０のみ、当該子機Ｎ１０に対応付けられた上位子機を変更し、子機Ｎ７の上位子機及び子機Ｎ８の上位子機を変更しない。
【０１０１】
また、第一制御部１２は、さらに、上位子機を変更する子機を、当該子機を上位子機とする子機が存在する子機に限定してもよい。例えば、上記の例では、第一制御部１２は、子機Ｎ１０を上位子機とする子機が存在する場合に、子機Ｎ１０に対応付けられた上位子機を変更する。図１の例では、子機Ｎ１０を上位子機とする子機は存在しないため、子機Ｎ１０は、親機までのホップ数が所定数以上となったとしても、上位子機が変更されない。
【０１０２】
また、上述のように、第一制御部１２は、親機Ｎ０と子機Ｎ１との通信が不可能であることを検知した場合には、子機Ｎ３の上位子機、及び、子機Ｎ６の上位子機を変更するが、子機Ｎ３及び子機Ｎ６のうち、通信に使用しない子機の上位子機については、実際に使用する直前になるまで上位子機の変更が保留されてもよい。
【０１０３】
例えば、親機Ｎ０と子機Ｎ４とが通信を行うときには、第一制御部１２は、子機Ｎ３の上位子機を変更し、子機Ｎ６の上位子機の変更は、親機Ｎ０が子機Ｎ７または子機Ｎ８と通信を行うときまで保留してもよい。同様に、親機Ｎ０と子機Ｎ７が通信を行うときには、第一制御部１２は、子機Ｎ６の上位子機を変更し、子機Ｎ３の上位子機の変更は、例えば、親機Ｎ０が子機Ｎ４または子機Ｎ５と通信を行うときまで保留されてもよい。
【０１０４】
これにより、通信に必要な子機の上位子機のみが変更されるため、変更にかかる時間を短縮することができる。
【０１０５】
［動作例８］
ところで、上述のトポロジ通知情報は、ルート情報の一例であって、具体的には、例えば、子機と、通信ルート上で当該子機よりも１ホップ親機Ｎ０に近い子機とを対応付けた情報である。図１２Ａは、トポロジ通知情報の一例を示す図である。
【０１０６】
図１２Ａに示されるトポロジ通知情報は、子機Ｎ５が親機Ｎ０あてに送信するトポロジ通知情報である。図１２Ａに示されるトポロジ通知情報においては、子機Ｎ５（子機Ｎ５のアドレス）と、子機Ｎ５よりも１ホップ親機Ｎ０に近い子機Ｎ４とが対応付けられている。
【０１０７】
ここで、このようなトポロジ通知情報を子機Ｎ１〜Ｎ１０のそれぞれが親機Ｎ０あてに送信すると、通信トラフィックが増大する懸念がある。
【０１０８】
そこで、子機Ｎ１〜Ｎ１０のそれぞれは、トポロジ通知情報を中継するときに、当該トポロジ通知情報に当該子機の上位子機を対応付けてもよい。
【０１０９】
例えば、子機Ｎ４は、子機Ｎ４の第二通信部２１が、子機Ｎ４よりも１ホップ親機Ｎ０から遠い子機Ｎ５の第二通信部２１が送信した親機Ｎ０あてのトポロジ通知情報（図１２Ａに示されるトポロジ通知情報）を受信する場合が考えられる。この場合、子機Ｎ４は、第二の子機の一例であり、子機Ｎ５は、第三の子機の一例である。
【０１１０】
このような場合、子機Ｎ４の第二制御部２２は、受信されたトポロジ通知情報に子機Ｎ３をさらに対応付けたトポロジ通知情報を、子機Ｎ４の第二通信部２１から子機Ｎ３の第二通信部２１に送信させる。図１２Ｂは、子機Ｎ４の第二通信部２１が送信するトポロジ通知情報の一例を示す図である。なお、この場合、子機Ｎ３は、第一の子機の一例である。
【０１１１】
同様に、子機Ｎ３の第二通信部２１が子機Ｎ４の第二通信部２１が中継した親機Ｎ０あてのトポロジ通知情報（図１２Ｂに示されるトポロジ通知情報）を受信する場合が考えられる。
【０１１２】
このような場合、子機Ｎ３の第二制御部２２は、受信されたトポロジ通知情報に子機Ｎ１をさらに対応付けたトポロジ通知情報を、子機Ｎ３の第二通信部２１から子機Ｎ１の第二通信部２１に送信させる。図１２Ｃは、子機Ｎ４の第二通信部２１が送信するトポロジ通知情報の一例を示す図である。
【０１１３】
以上のような構成によれば、親機Ｎ０は、子機Ｎ５が送信元であるトポロジ通知情報を受信すれば、子機Ｎ３、子機Ｎ４、及び、子機Ｎ５の上位子機を知ることができる。そうすると、子機Ｎ３及び子機Ｎ４は、トポロジ通知情報を別途送信する必要がないため、通信トラフィックが低減される。
【０１１４】
［まとめ］
以上説明したように、マルチホップ通信を行うための通信ルートを構成する、親機及び複数の子機のうち、親機として動作する通信装置（親機Ｎ０）は、第一記憶部１３と、第一制御部１２とを備える。第一記憶部１３は、記憶部の一例であり、第一制御部１２は、制御部の一例である。上記複数の子機には、第一の子機と、通信ルート上で第一の子機よりも１ホップ親機から遠い第二の子機とが含まれる。
【０１１５】
第一記憶部１３には、複数の子機のそれぞれが、複数の子機のうち通信ルート上で当該子機よりも１ホップ親機に近い子機である上位子機とのみ対応付けられたルート情報であって、通信ルートを示すルート情報が記憶される。第一制御部１２は、通信ルート上で第一の子機よりも１ホップ親機に近い上位通信装置と第一の子機との通信が不可能であることを検知した場合に、ルート情報のうち第二の子機に対応付けられた上位子機を変更する。なお、上位通信装置は、親機の場合もあるし、上記複数の子機のうちの１つの子機である場合もある。
【０１１６】
これにより、第一制御部１２は、通信ルート上で子機同士の通信が不可能なリンクが生じた場合に、通信ルート（ルート情報）を再構成することができる。第一制御部１２は、具体的には、第一の子機が複数の子機のうち上位通信装置以外の子機と通信できない場合であっても、通信ルートを再構成することができる。
【０１１７】
また、第一制御部１２は、さらに、上位通信装置と第一の子機との通信が不可能であることを検知した場合に、ルート情報において第一の子機を上位子機とする第二の子機以外の他の子機に対応付けられた上位子機を変更してもよい。
【０１１８】
これにより、第一制御部１２は、第一の子機を上位子機とする第二の子機に加えて、第二の子機以外の他の子機の上位子機も合わせて変更することができる。つまり、第一制御部１２は、１回の検知でルート情報に含まれる２つの上位子機を変更することができる。
【０１１９】
また、第一制御部１２は、上位通信装置と第一の子機との通信が不可能であり、かつ、第一の子機が通信可能な上位通信装置以外の子機が複数の子機に含まれないことを検知した場合に、ルート情報のうち第二の子機に対応付けられた上位子機を変更してもよい。
【０１２０】
これにより、第一制御部１２は、第一の子機が複数の子機のうち上位通信装置以外の子機と通信できない場合であっても、通信ルート（ルート情報）を再構成することができる。
【０１２１】
また、動作例３のように、第一制御部１２は、上位通信装置と第一の子機との通信が不可能であることを検知した場合に、ルート情報のうち第二の子機に対応付けられた上位子機を変更し、かつ、ルート情報のうち第一の子機に対応付けられた上位子機を第二の子機に変更してもよい。
【０１２２】
これにより、通信ルートを再構成できる可能性を高めることができる。
【０１２３】
また、第一制御部１２は、上位通信装置と第一の子機との通信が不可能であることを検知した場合であって、かつ、第一の子機が通信可能な第二の子機以外の子機が複数の子機に含まれないことを検知した場合に、ルート情報のうち第二の子機に対応付けられた上位子機を変更し、かつ、ルート情報のうち第一の子機に対応付けられた上位子機を第二の子機に変更してもよい。
【０１２４】
これにより、第一の子機が通信可能な第二の子機以外の子機が複数の子機に含まれない場合に、通信ルートを再構成できる可能性を高めることができる。
【０１２５】
また、第一制御部１２は、第二の子機に対応付けられた上位子機の変更が不可能であると判断した場合に、通信ルート上で第二の子機よりも親機から遠い下位子機が、当該下位子機に対応付けられた上位子機の変更が可能な対象下位子機であるか否かの判断を、第二の子機に近い下位子機から順番に対象下位子機が見つかるまで行ってもよい。第一制御部１２は、ルート情報のうち、対象下位子機であると判断された下位子機に対応付けられた上位子機を変更してもよい。
【０１２６】
これにより、第二の子機に対応付けられた上位子機の変更が不可能であると判断された場合であっても、通信ルートを再構成できる可能性を高めることができる。
【０１２７】
また、第一制御部１２は、ルート情報のうち第二の子機に対応付けられた上位子機を、複数の子機に含まれる候補の子機に変更した場合の第二の子機から親機までのホップ数を特定し、ルート情報のうち第二の子機に対応付けられた上位子機の変更において、特定されたホップ数が変更前のホップ数以下となる候補の子機を、特定されたホップ数が変更前のホップ数よりも大きくなる候補の子機よりも優先して変更先の子機としてもよい。
【０１２８】
これにより、第一制御部１２は、第二の子機の上位子機を変更したときのホップ数の増加を抑制することができる。
【０１２９】
また、複数の子機には、通信ルート上で、第二の子機よりも親機から遠い第四の子機であって、第二の子機を経由して親機と通信を行う第四の子機が含まれ、第一制御部１２は、さらに、ルート情報のうち第四の子機に対応付けられた上位子機を変更してもよい。
【０１３０】
これにより、第一制御部１２は、第四の子機の上位子機をさらに変更することにより、通信ルートを改善しうる。
【０１３１】
また、第一記憶部１３には、複数の子機に含まれる２つの子機間の通信品質を示す通信品質情報が記憶され、第一制御部１２は、さらに、ルート情報のうち第四の子機に対応付けられた上位子機を通信品質情報に基づいて変更してもよい。
【０１３２】
これにより、第一制御部１２は、第四の子機の上位子機をさらに変更することにより、変更後の通信ルートにおける通信品質を改善することができる。
【０１３３】
また、第一制御部１２は、ルート情報のうち、第二の子機に対応付けられた上位子機が変更されたことにより親機までのルートコストが所定値以上となる前記第四の子機に対応付けられた上位子機を変更してもよい。
【０１３４】
これにより、第一制御部１２は、第二の子機の上位子機を変更したときのルートコストの増加（通信品質の低下）を抑制することができる。
【０１３５】
また、第一制御部１２は、ルート情報のうち、第二の子機に対応付けられた上位子機が変更されたことにより親機までのホップ数が所定数以上となる第四の子機に対応付けられた上位子機を変更してもよい。
【０１３６】
これにより、第一制御部１２は、第二の子機の上位子機を変更したときのホップ数の増加を抑制することができる。
【０１３７】
また、第一制御部１２は、複数の子機の中に第四の子機を上位子機とする子機が存在する場合に、ルート情報のうち、第二の子機に対応付けられた上位子機が変更されたことにより親機までのホップ数が所定数以上となる第四の子機に対応付けられた上位子機を変更してもよい。
【０１３８】
これにより、第一制御部１２は、親機までのホップ数が増加した第四の子機であって、下位の子機を有する第四の子機の上位子機を選択的に変更することにより、ホップ数の増加を抑制することができる。
【０１３９】
また、第一制御部１２は、親機と対象の子機とが通信するときに、ルート情報のうち、上記通信に使用される第二の子機に対応付けられた上位子機を変更し、ルート情報のうち、通信において使用されない第二の子機の上位子機は、通信に使用されるときまで変更を保留してもよい。
【０１４０】
また、マルチホップ通信システム１００は、マルチホップ通信を行うための通信ルートを構成する、親機及び複数の子機を備え、複数の子機には、第一の子機と、通信ルート上で第一の子機よりも１ホップ親機から遠い第二の子機とが含まれる。
【０１４１】
親機は、第一記憶部１３と、第一制御部１２とを備える。第一記憶部１３には、複数の子機のそれぞれが、複数の子機のうち通信ルート上で当該子機よりも１ホップ親機に近い子機である上位子機とのみ対応付けられたルート情報であって、通信ルートを示すルート情報が記憶される。第一制御部１２は、通信ルート上で第一の子機よりも１ホップ親機に近い上位通信装置と第一の子機との通信が不可能であることを検知した場合に、ルート情報のうち第二の子機に対応付けられた上位子機を変更する。
【０１４２】
これにより、第一制御部１２は、通信ルート上で子機同士の通信が不可能なリンクが生じた場合に、通信ルートを再構成することができる。第一制御部１２は、具体的には、第一の子機が複数の子機のうち上位通信装置以外の子機と通信できない場合であっても、通信ルートを再構成することができる。
【０１４３】
また、複数の子機のそれぞれは、さらに、当該子機と、通信ルート上で当該子機よりも１ホップ親機に近い子機とを対応付けたトポロジ通知情報を親機あてに送信する第二通信部２１を備えてもよい。トポロジ通知情報は、ルート通知情報の一例であり、第二通信部２１は、通信部の一例である。
【０１４４】
これにより、複数の子機のそれぞれは、当該子機の上位子機を親機に通知することができる。親機は、トポロジ通知情報に基づいてルート情報を作成し、作成したルート情報を第一記憶部１３に記憶することができる。
【０１４５】
また、第二の子機は、さらに、第二の子機の第二通信部２１が第二の子機よりも１ホップ親機から遠い第三の子機の第二通信部２１が送信したルート通知情報を受信した場合、受信されたルート通知情報に第一の子機をさらに対応付けたトポロジ通知情報を、第二の子機の第二通信部２１から第一の子機の第二通信部２１に送信させる第二制御部２２を備えてもよい。第二制御部は、子機制御部の一例である。
【０１４６】
これにより、第三の子機が送信元のトポロジ通知情報に、第二の子機の上位子機を追加することができるため、第二の子機は、別途トポロジ通知情報を送信する必要がない。したがって、通信トラフィックが低減される。
【０１４７】
また、マルチホップ通信システム１００が実行する通信方法において、マルチホップ通信システム１００は、マルチホップ通信を行うための通信ルートを構成する、親機及び複数の子機を備える。複数の子機には、第一の子機と、通信ルート上で第一の子機よりも１ホップ親機から遠い第二の子機とが含まれる。
【０１４８】
親機は、複数の子機のそれぞれが、複数の子機のうち通信ルート上で当該子機よりも１ホップ親機に近い子機である上位子機とのみ対応付けられたルート情報であって、通信ルートを示すルート情報が記憶された第一記憶部１３を備える。通信方法は、通信ルート上で第一の子機よりも１ホップ親機に近い上位通信装置と第一の子機との通信が不可能であることを検知した場合に、ルート情報のうち第二の子機に対応付けられた上位子機を変更する。
【０１４９】
これにより、第一制御部１２は、通信ルート上で子機同士の通信が不可能なリンクが生じた場合に、通信ルートを再構成することができる。第一制御部１２は、具体的には、第一の子機が複数の子機のうち上位通信装置以外の子機と通信できない場合であっても、通信ルートを再構成することができる。
【０１５０】
また、マルチホップ通信システム１００が実行する通信方法において、マルチホップ通信システム１００は、マルチホップ通信を行うための通信ルートを構成する、親機及び複数の子機を備える。
【０１５１】
通信方法において、複数の子機のそれぞれは、当該子機と、通信ルート上で当該子機よりも１ホップ親機に近い子機とを対応付けたトポロジ通知情報を親機あてに送信する。
【０１５２】
これにより、複数の子機のそれぞれは、当該子機の上位子機を親機に通知することができる。親機は、トポロジ通知情報に基づいてルート情報を作成し、作成したルート情報を第一記憶部１３に記憶することができる。
【０１５３】
（その他の実施の形態）
以上、実施の形態に係るマルチホップ通信システムについて説明したが、本発明は、上記実施の形態に限定されるものではない。
【０１５４】
上記実施の形態で説明した親機として動作する通信装置、または、子機として動作する通信装置の具体的な態様は、特に限定されない。例えば、空調機器、スマートメータ、または照明機器などが通信装置として使用されてもよい。また、親機と子機とは同種の通信端末である必要はなく、子機がスマートメータである場合に、親機は、子機から取得したデータを管理するコンセントレータ（サーバ）等であってもよい。
【０１５５】
なお、上記実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、ＣＰＵまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
【０１５６】
また、各構成要素は、回路でもよい。これらの回路は、全体として１つの回路を構成してもよいし、それぞれ別々の回路でもよい。また、これらの回路は、それぞれ、汎用的な回路でもよいし、専用の回路でもよい。
【０１５７】
また、上記実施の形態において、特定の処理部が実行する処理を別の処理部が実行してもよい。また、複数の処理の順序が変更されてもよいし、複数の処理が並行して実行されてもよい。
【０１５８】
なお、本発明の包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なＣＤ−ＲＯＭなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムまたは記録媒体の任意な組み合わせで実現されてもよい。例えば、本発明は、マルチホップ通信システム、または、マルチホップ通信システムに含まれる親機もしくは子機が実行する通信方法として実現されてもよいし、このような通信方法をコンピュータに実行させるためのプログラムとして実現されてもよい。
【０１５９】
以上、一つまたは複数の態様に係るマルチホップ通信システム並びに、マルチホップ通信システムにおいて用いられる通信装置及び通信方法について、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つまたは複数の態様の範囲内に含まれてもよい。
【符号の説明】
【０１６０】
１１  第一通信部
１２  第一制御部（制御部）
１３  第一記憶部（記憶部）
２１  第二通信部（通信部）
２２  第二制御部（子機制御部）
２３  第二記憶部
１００  マルチホップ通信システム
Ｎ０  親機
Ｎ１〜Ｎ１０  子機
【図１】
0006671039.tif 000002
【図２】
0006671039.tif 000003
【図３】
0006671039.tif 000004
【図４Ａ】
0006671039.tif 000005
【図４Ｂ】
0006671039.tif 000006
【図４Ｃ】
0006671039.tif 000007
【図５】
0006671039.tif 000008
【図６】
0006671039.tif 000009
【図７】
0006671039.tif 000010
【図８】
0006671039.tif 000011
【図９】
0006671039.tif 000012
【図１０】
0006671039.tif 000013
【図１１】
0006671039.tif 000014
【図１２Ａ】
0006671039.tif 000015
【図１２Ｂ】
0006671039.tif 000016
【図１２Ｃ】
0006671039.tif 000017