(57)【要約】【課題】  ネットワーク管理に用いられるデータの送信量を、データの有用性が損なわれることなく低減することができる通信装置、通信システム、通信方法、及び通信プログラムを提供する。【解決手段】  通信装置は、アドホックネットワーク内の１以上の隣接ノードの各々との通信状態に関する第１データを収集する第１収集部と、前記アドホックネットワークの管理に用いられる第２データを送信する送信部と、前記第１データに基づき、前記１以上の隣接ノードのうち、通信品質が所定の基準を満たす通信経路を提供可能なノードの数を判定する判定部と、前記送信部の前記第２データの送信量を前記ノードの数に応じて制御する制御部とを有する。【選択図】図３
2019041194.tif 000002
【特許請求の範囲】
【請求項１】
アドホックネットワーク内の１以上の隣接ノードの各々との通信状態に関する第１データを収集する第１収集部と、
前記アドホックネットワークの管理に用いられる第２データを送信する送信部と、
前記第１データに基づき、前記１以上の隣接ノードのうち、通信品質が所定の基準を満たす通信経路を提供可能なノードの数を判定する判定部と、
前記送信部の前記第２データの送信量を前記ノードの数に応じて制御する制御部とを有することを特徴とする通信装置。
【請求項２】
前記制御部は、前記ノードの数が所定の閾値以上である場合、前記送信部の前記第２データの送信量を、前記ノードの数が前記所定の閾値より少ない場合より減らすことを特徴とする請求項１に記載の通信装置。
【請求項３】
前記送信部は、前記第１データに基づいて、前記１以上の隣接ノードのうち、通信状態が良好なノードに関する前記第２データを優先して送信することを特徴とする請求項１または２に記載の通信装置。
【請求項４】
前記第２データには、前記第１データが含まれ、
前記制御部は、前記１以上の隣接ノードのうち、前記第１データが前記送信部の送信対象となるノードの最大数を、前記判定部が判定した前記ノードの数に応じて決定することにより、前記第１データの送信量を制御することを特徴とする請求項１乃至３の何れかに記載の通信装置。
【請求項５】
前記通信装置の負荷状態及び移動状態の少なくとも一方を検出する検出部を有し、
前記第２データには、前記第１データと、前記検出部が検出した負荷状態及び移動状態の少なくとも一方の情報とが含まれ、
前記制御部は、前記第２データのうち、前記第１データの送信量を前記ノードの数に応じて制御することを特徴とする請求項１乃至３の何れかに記載の通信装置。
【請求項６】
前記第２データには、前記ノードの数がさらに含まれることを特徴とする請求項５に記載の通信装置。
【請求項７】
前記１以上の隣接ノードの負荷状態、移動状態、及び通信経路の状態の少なくとも１つに関する第３データを収集する第２収集部を有し、
前記判定部は、前記第１データ及び前記第３データに基づき、前記ノードの数を判定することを特徴とする請求項１乃至６の何れかに記載の通信装置。
【請求項８】
第１通信装置と、複数の第２通信装置とを有し、
前記複数の第２通信装置は、それぞれ、
アドホックネットワーク内の１以上の隣接ノードの各々との通信状態に関する第１データを収集する第１収集部と、
前記第１通信装置に対し、前記アドホックネットワークの管理に用いられる第２データを送信する送信部と、
前記第１データに基づき、前記１以上の隣接ノードのうち、通信品質が所定の基準を満たす通信経路を提供可能なノードの数を判定する判定部と、
前記送信部の前記第２データの送信量を前記ノードの数に応じて制御する制御部とを有することを特徴とする通信システム。
【請求項９】
アドホックネットワーク内の１以上の隣接ノードの各々との通信状態に関する第１データを収集する工程と、
前記アドホックネットワークの管理に用いられる第２データを送信する工程と、
前記第１データに基づき、前記１以上の隣接ノードのうち、通信品質が所定の基準を満たす通信経路を提供可能なノードの数を判定する工程と、
前記第２データの送信量を前記ノードの数に応じて制御する工程とを、コンピュータが実行することを特徴とする通信方法。
【請求項１０】
アドホックネットワーク内の１以上の隣接ノードの各々との通信状態に関する第１データを収集し、
前記アドホックネットワークの管理に用いられる第２データを送信し、
前記第１データに基づき、前記１以上の隣接ノードのうち、通信品質が所定の基準を満たす通信経路を提供可能なノードの数を判定し、
前記第２データの送信量を前記ノードの数に応じて制御する、処理をコンピュータに実行させることを特徴とする通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、通信装置、通信システム、通信方法、及び通信プログラムに関する。
【背景技術】
【０００２】
例えば河川や下水道の氾濫の監視、または工場及び工事現場の機器や作業員の異常検出などにＩｏＴ（Internet Of Things）技術を活用するソリューションが検討されている。この種のソリューションでは、広範囲に設置された多数のセンサが、水位や温度などを検出し、そのデータを特定のサーバなどに送信する。
【０００３】
このため、センサのデータ送信手段としては、コストの観点から、通信ケーブルが必要な有線通信よりも、通信ケーブルが不要な無線通信が用いられることが多い。上記のように頻繁に環境が変動する屋外状況において、ノード間にマルチホップ通信の通信経路を柔軟に構成する技術としてアドホックネットワークが知られている（例えば特許文献１参照）。アドホックネットワークは、基地局などのアクセスポイントが不要であるため、各センサとサーバの間を結ぶ通信経路を、各ノードの無線通信端末が互いにリンクすることにより容易に形成することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−３９２６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
アドホックネットワーク内の各ノードは、ルータ機能により、通信状態に応じて個別に通信経路を切り替えるため、アドホックネットワークの構成は動的に変化する。このため、アドホックネットワークの管理装置は、ネットワーク構成を検出するため、例えば各ノード間の隣接関係、エラー率、及び受信強度（RSSI: Received Signal Strength Indicator）などの管理データを各無線通信端末から収集する必要がある。
【０００６】
しかし、無線通信端末には、小型化、低消費電力化、及び低コスト化が要求されるため、その通信帯域は、大量の管理データを伝送できるほど十分に広いわけではない。例えば管理装置のゲートウェイに接続されたノードとリンクしているノードには、センサのデータだけではなく、他の複数のノードからリレー方式で転送された大量の管理データが集中するため、通信帯域が不足するおそれがある。
【０００７】
これに対して、各ノードの無線通信端末が管理データの送信量を抑えれば通信帯域の不足は解消され得るが、管理データの収集量の不足によりその有用性が損なわれることによって、ネットワーク管理に支障が出るおそれがある。
【０００８】
そこで本件は、ネットワーク管理に用いられるデータの送信量を、データの有用性が損なわれることなく低減することができる通信装置、通信システム、通信方法、及び通信プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
１つの態様では、通信装置は、アドホックネットワーク内の１以上の隣接ノードの各々との通信状態に関する第１データを収集する第１収集部と、前記アドホックネットワークの管理に用いられる第２データを送信する送信部と、前記第１データに基づき、前記１以上の隣接ノードのうち、通信品質が所定の基準を満たす通信経路を提供可能なノードの数を判定する判定部と、前記送信部の前記第２データの送信量を前記ノードの数に応じて制御する制御部とを有する。
【００１０】
１つの態様では、通信システムは、第１通信装置と、複数の第２通信装置とを有し、前記複数の第２通信装置は、それぞれ、前記アドホックネットワーク内の１以上の隣接ノードの各々との通信状態に関する第１データを収集する第１収集部と、前記第１通信装置に対し、前記アドホックネットワークの管理に用いられる第２データを送信する送信部と、前記第１データに基づき、前記１以上の隣接ノードのうち、通信品質が所定の基準を満たす通信経路を提供可能なノードの数を判定する判定部と、前記送信部の前記第２データの送信量を前記ノードの数に応じて制御する制御部とを有する。
【００１１】
１つの態様では、通信方法は、アドホックネットワーク内の１以上の隣接ノードの各々との通信状態に関する第１データを収集する工程と、前記アドホックネットワークの管理に用いられる第２データを送信する工程と、前記第１データに基づき、前記１以上の隣接ノードのうち、通信品質が所定の基準を満たす通信経路を提供可能なノードの数を判定する工程と、前記第２データの送信量を前記ノードの数に応じて制御する工程とを、コンピュータが実行する方法である。
【００１２】
１つの態様では、通信プログラムは、アドホックネットワーク内の１以上の隣接ノードの各々との通信状態に関する第１データを収集し、前記アドホックネットワークの管理に用いられる第２データを送信し、前記第１データに基づき、前記１以上の隣接ノードのうち、通信品質が所定の基準を満たす通信経路を提供可能なノードの数を判定し、前記第２データの送信量を前記ノードの数に応じて制御する、処理をコンピュータに実行させるプログラムである。
【発明の効果】
【００１３】
１つの側面として、ネットワーク管理に用いられるデータの送信量を、データの有用性が損なわれることなく低減することができる。
【図面の簡単な説明】
【００１４】
【図１】アドホックネットワークの一例を示す構成図である。
【図２】管理データを収容したパケットの一例を示すフォーマット図である。
【図３】管理データの送信量の制御の一例を示す図である。
【図４】ゲートウェイの一例を示す構成図である。
【図５】サーバの一例を示す構成図である。
【図６】子ノードの一例を示す構成図である。
【図７】状態データテーブルの一例を示す図である。
【図８】収集データテーブルの一例を示す図である。
【図９】親ノードの一例を示す構成図である。
【図１０】子ノードの動作の一例を示すシーケンス図である。
【図１１】経路冗長度の判定処理の一例を示すフローチャートである。
【図１２】管理データの送信量の制御処理の一例を示すフローチャートである。
【図１３】管理データの送信処理の一例を示すフローチャートである。
【図１４】送信対象の通信状態の情報の選択の一例を示す図である。
【発明を実施するための形態】
【００１５】
図１は、アドホックネットワークＮＷの一例を示す構成図である。アドホックネットワークＮＷには、無線通信端末がそれぞれ設けられた親ノードＮｐ及び複数の子ノード（＃１〜＃５）Ｎｃが含まれる。親ノードＮｐの無線通信端末は所定の位置に設置されており、子ノードＮｃの無線通信端末は、所定の位置に設置されるか、または移動体（人間や機械など）に設けられている。
【００１６】
親ノードＮｐの無線通信端末は第１通信装置の一例であり、子ノードＮｃの無線通信端末は第２通信装置及び通信装置の一例である。また、親ノードＮｐ及び子ノードＮｃの各通信装置は、通信システムの一例を構成する。なお、以降の説明では、親ノードＮｐの無線通信端末を単に「親ノードＮｐ」と表記し、子ノードＮｃの無線通信端末を単に「子ノードＮｃ」と表記する。
【００１７】
親ノードＮｐは、サーバ４に対する通信を中継するゲートウェイ３に直接的に接続されている。ゲートウェイ３は、例えば有線のＬＡＮ（Local Area Network）９０を介し、インターネットなどの広域ネットワーク９１上のサーバ４に接続されている。子ノードＮｃは、親ノードＮｐを介してゲートウェイ３にアクセスすることによりサーバ４と通信する。
【００１８】
親ノードＮｐは、点線で示されるように、その近傍に存在する子ノードＮｃとリンクすることにより通信する。また、近傍に存在する子ノードＮｃ同士も、点線で示されるように、互いにリンクすることにより通信する。例えば、親ノードＮｐは、子ノード（＃１）Ｎｃと子ノード（＃２）Ｎｃとリンクし、子ノード（＃２）Ｎｃは親ノードＮｐ、子ノード（＃３）Ｎｃ、及び子ノード（＃４）Ｎｃとリンクしている。
【００１９】
親ノードＮｐと子ノードＮｃの間の通信、及び子ノードＮｃ同士の通信は、例えばＷｉ−ＳＵＮやＺｉｇＢｅｅなどのプロトコルに従って行われる。
【００２０】
また、親ノードＮｐと子ノードＮｃは、その近傍のセンサＮｓとリンクすることにより通信する。例えば、子ノード（＃１）Ｎｃはセンサ（＃１）Ｎｓとリンクし、子ノード（＃３）Ｎｃはセンサ（＃２）Ｎｓとリンクしている。親ノードＮｐと子ノードＮｃは、例えばＢＬＥ（Bluetooth Low Energy）（登録商標）などのプロトコルに従ってセンサＮｓと通信する。
【００２１】
センサＮｓは、例えば、屋外に設置され、河川や下水道の水位や温度などを検出する。センサＮｓは、その検出値のデータ（以下、「検出データ」と表記）を、例えば周期的に親ノードＮｐまたは子ノードＮｃに送信する。なお、本例において、センサＮｓは親ノードＮｐ及び子ノードＮｃから独立しているが、親ノードＮｐ及び子ノードＮｃの少なくとも一方に、センサＮｓと同様のセンサ機能を備えてもよい。
【００２２】
子ノードＮｃは、センサＮｓから受信した検出データを親ノードＮｐに送信する。子ノードＮｃは、ルータ機能により、親ノードＮｐまでのマルチホップの通信経路を探索する。例えば、子ノード（＃３）Ｎｃは、子ノード（＃１）Ｎｃを経由する通信経路Ｒａにより検出データを親ノードＮｐに送信する。
【００２３】
さらに、子ノードＮｃは、通信経路に障害が生じた場合、障害箇所を迂回するように通信経路を切り替える。子ノード（＃３）Ｎｃは、例えば親ノードＮｐと子ノード（＃１）Ｎｃの間のリンクが切断されることにより通信経路Ｒａに障害（×印参照）が生じた場合、親ノードＮｐまでの通信経路を、通信経路Ｒａから、子ノード（＃２）Ｎｃを経由する通信経路Ｒｂに切り替える。
【００２４】
親ノードＮｐは、各センサＮｓの検出データを直接的に、または１以上の子ノードＮｃを介して受信しゲートウェイ３に送信する。ゲートウェイ３は、検出データをサーバ４に中継する。
【００２５】
サーバ４は、ゲートウェイ３を介して親ノードＮｐ及び子ノードＮｃと通信することにより、各センサＮｓの検出データを収集する。サーバ４は、例えば、検出データを用いて、広域ネットワーク９１を介したクラウドサービスを提供する。
【００２６】
また、サーバ４は、アドホックネットワークＮＷの管理装置として機能する。サーバ４は、ネットワーク構成を検出するため、例えば、親ノードＮｐと子ノードＮｃの間の隣接関係、子ノードＮｃ間の隣接関係、エラー率、及び受信強度などの管理データを各無線通信端末から収集する。なお、管理データは、アドホックネットワークＮＷの管理に用いられる第２データの一例である。
【００２７】
しかし、無線通信端末には、小型化、低消費電力化、及び低コスト化が要求されるため、その通信帯域は、大量の管理データを伝送できるほど十分に広いわけではない。例えば親ノードＮｐとリンクしている子ノード（＃１）Ｎｃ及び子ノード（＃２）Ｎｃには、センサＮｓの検出データだけではなく、他の子ノード（＃３〜５）Ｎｃからリレー方式で転送された大量の管理データが集中するため、通信帯域が不足するおそれがある。
【００２８】
これに対して、親ノードＮｐ及び子ノードＮｃが管理データの送信量を抑えれば通信帯域の不足は解消され得るが、管理データの収集量の不足によりその有用性が損なわれることによって、ネットワーク管理に支障が出るおそれがある。
【００２９】
そこで、子ノードＮｃは、隣接ノードＮｐ，Ｎｃとの通信状態に関するデータに基づき経路冗長度を判定し、経路冗長度に応じて管理データの送信量を制御する。経路冗長度とは、通信品質が所定の基準を満たす通信経路（以下、「高品質経路」と表記）を提供可能な隣接ノードＮｐ，Ｎｃの数を指す。
【００３０】
このため、子ノードＮｃは、管理データの送信量を隣接ノードＮｐ，Ｎｃごとの通信経路の安定性に応じて抑えることができるので、例えば通信経路の切断のリスクが高いほど、多くの管理データを送信することができる。したがって、サーバ４は、管理データからアドホックネットワークＮＷの構成を解析し、例えば通信経路の障害の復旧及び回避の予測を行うことができる。
【００３１】
よって、子ノードＮｃは、管理データの送信量を、データの有用性が損なわれることなく低減することができる。以下に管理データを収容したパケットのフォーマットについて述べ、送信量の制御について例を挙げて説明する。
【００３２】
図２は、管理データを収容したパケットの一例を示すフォーマット図である。パケットには、宛先及び送信元などの情報を含むヘッダと、ノード状態及び通信状態＃１〜＃ｎ（ｎ：１以上の整数）の情報を含む管理データとを収容する。
【００３３】
ノード状態は、送信元の親ノードＮｐまたは子ノードＮｃの状態である。ノード状態には、一例として、送信元ノードＩＤと、経路冗長度と、移動状態、及び負荷状態とが含まれる。送信元ノードＩＤは、例えば、送信元の親ノードＮｐまたは子ノードＮｃのＭＡＣ（Media Access Control）アドレスを示す。経路冗長度は、上述したとおりである。
【００３４】
移動状態は、送信元の親ノードＮｐまたは子ノードＮｃが移動中であるのか、または静止中であるのかを示す。なお、親ノードＮｐの場合、移動状態は静止中となる。
【００３５】
負荷状態は、送信元の親ノードＮｐまたは子ノードＮｃの処理の負荷が正常であるのか、または異常であるのかを示す。負荷状態は、例えば、負荷が所定の基準値以下である場合、正常と判定され、負荷が所定の基準値を上回る場合、異常と判定される。
【００３６】
また、通信状態＃１〜＃ｎは、隣接ノードＮｐ，Ｎｃとの間のリンクごとの通信の状態を示す。通信状態＃１〜＃ｎには、一例として、それぞれ、隣接ノードＩＤと、ＲＳＳＩと、送信エラー率と、応答時間とが含まれる。隣接ノードＩＤは、例えば、隣接ノードＮｐ，ＮｃのＭＡＣアドレスを示す。
【００３７】
ＲＳＳＩは、隣接ノードＮｐ，Ｎｃが送信元のノードＮｐ，Ｎｃから受信した電波の信号強度である。送信エラー率は、隣接ノードＮｐ，Ｎｃから送信元のノードＮｐ，Ｎｃに送信したデータのエラー率である。応答時間は、隣接ノードＮｐ，Ｎｃから送信元のノードＮｐ，Ｎｃにデータを送信してから、送信元のノードＮｐ，Ｎｃの応答を受信するまでの経過時間である。
【００３８】
なお、通信状態＃１〜＃ｎの情報は、アドホックネットワークＮＷ内の各隣接ノードＮｐ，Ｎｃとの通信状態に関する第１データの一例である。通信状態＃１〜＃ｎの情報には、上記に限定されず、例えば通信チャネルの使用率、及び所定時間内に通信した隣接ノードＮｐ，Ｎｃの数などが含まれてもよい。
【００３９】
また、一例として、ヘッダのサイズは１０（Byte）であり、ノード状態の情報のサイズは２５（Byte）であり、各通信状態（＃１〜＃ｎ）の情報のサイズは２０（Byte）である。また、パケットの最大サイズは、使用するプロトコルに応じて異なり、例えばＺｉｇＢｅｅの場合、１２７（Byte）である。
【００４０】
通信状態＃１〜＃ｎの情報の合計サイズは、リンク数ｎに応じて増加するため、ヘッダやノード状態の情報よりデータ量が多くなり得る。このため、リンク数ｎによっては、全ての通信状態＃１〜＃ｎの情報を１つのパケットに収容することができず、フラグメンテーション処理により複数のパケットに分割して収容する場合がある。この場合、通信帯域に占める管理データの比率が、フラグメンテーション処理が用いられない場合より増加する。
【００４１】
このため、親ノードＮｐ及び子ノードＮｃは、管理データのうち、通信状態＃１〜＃ｎの情報の送信量を経路冗長度に応じて制御することにより、管理データの送信量を効果的に低減する。また、親ノードＮｐ及び子ノードＮｃは、管理データのうち、ノード状態の情報を、経路冗長度によらず、サーバ４に送信することができる。
【００４２】
図３は、管理データの送信量の制御の一例を示す図である。本例のアドホックネットワークＮＷには、親ノードＮｐと、子ノード（＃１〜＃８）Ｎｃとが含まれる。
【００４３】
親ノードＮｐは、子ノード（＃５〜＃８）Ｎｃとリンクし、子ノード（＃１）Ｎｃは、子ノード（＃２）Ｎｃ、子ノード（＃４）Ｎｃ、及び子ノード（＃６）Ｎｃとリンクしている。子ノード（＃２）Ｎｃは、子ノード（＃１）Ｎｃ及び子ノード（＃３〜＃５）Ｎｃとリンクし、子ノード（＃３）Ｎｃは、子ノード（＃２）Ｎｃ、子ノード（＃４）Ｎｃ、及び子ノード（＃５）Ｎｃとリンクしている。
【００４４】
子ノード（＃４）Ｎｃは、子ノード（＃１〜＃３）Ｎｃ、子ノード（＃５）Ｎｃ、及び子ノード（＃６）Ｎｃとリンクし、子ノード（＃５）Ｎｃは、子ノード（＃２〜＃４）Ｎｃ、子ノード（＃６）Ｎｃ、及び親ノードＮｐとリンクしている。子ノード（＃７）Ｎｃは、子ノード（＃６）Ｎｃと親ノードＮｐにリンクし、子ノード（＃８）Ｎｃは親ノードＮｐにリンクしている。
【００４５】
子ノード（＃１〜＃８）Ｎｃは、親ノードＮｐまでの通信経路を探索して、その通信経路を介し、管理データを収容したパケットを送信する。親ノードＮｐは、子ノード（＃１〜＃８）Ｎｃから受信した管理データを、自ノードの管理データとともにゲートウェイ３に送信する。
【００４６】
各子ノードＮｃは、隣接ノードＮｐ，Ｎｃごとの通信状態及びノード状態に基づいて経路冗長度を判定する。図３には、子ノードＮｃごとの経路冗長度が表示されている。
【００４７】
例えば子ノード（＃１）Ｎｃは、隣接ノードである子ノード（＃２）Ｎｃ、子ノード（＃４）Ｎｃ、及び子ノード（＃６）Ｎｃの通信状態及びノード状態に基づいて経路冗長度を判定する。
【００４８】
より具体的には、子ノード（＃１）Ｎｃは、子ノード（＃２）Ｎｃの経路冗長度が０であるため、子ノード（＃２）Ｎｃを、高品質経路の提供が不可能な隣接ノードであると判定する。また、子ノード（＃１）Ｎｃは、子ノード（＃４）Ｎｃが移動中であるため、子ノード（＃４）Ｎｃを、高品質経路の提供が不可能な隣接ノードであると判定する。また、子ノード（＃１）Ｎｃは、子ノード（＃６）ＮｃのＲＳＳＩが所定値より低いため、子ノード（＃４）Ｎｃを、高品質経路の提供が不可能な隣接ノードであると判定する。
【００４９】
したがって、子ノード（＃１）Ｎｃは、高品質経路を提供可能な隣接ノード数が０であることから、経路冗長度を０と判定する。ここで経路冗長度の閾値を１とすると、子ノード（＃１）Ｎｃは、経路冗長度が閾値より小さいため、管理データの送信量を、経路冗長度が閾値以上である場合より増やす（「送信量増加」参照）。
【００５０】
また、子ノード（＃２）Ｎｃは、隣接ノードである子ノード（＃１）Ｎｃ及び子ノード（＃３〜＃５）Ｎｃの通信状態及びノード状態に基づいて経路冗長度を判定する。
【００５１】
より具体的には、子ノード（＃２）Ｎｃは、子ノード（＃１）Ｎｃの経路冗長度が０であるため、子ノード（＃１）Ｎｃを、高品質経路の提供が不可能な隣接ノードであると判定する。また、子ノード（＃２）Ｎｃは、子ノード（＃３）Ｎｃ及び子ノード（＃４）Ｎｃが移動中であるため、子ノード（＃３）Ｎｃ及び子ノード（＃４）Ｎｃを、高品質経路の提供が不可能な隣接ノードであると判定する。また、子ノード（＃２）Ｎｃは、子ノード（＃５）Ｎｃが過負荷であるため、子ノード（＃５）Ｎｃを、高品質経路の提供が不可能な隣接ノードであると判定する。
【００５２】
したがって、子ノード（＃２）Ｎｃは、高品質経路を提供可能な隣接ノード数が０であることから、経路冗長度を０と判定する。子ノード（＃２）Ｎｃは、経路冗長度が閾値（＝１）より小さいため、管理データの送信量を、経路冗長度が閾値以上である場合より増やす（「送信量増加」参照）。
【００５３】
また、子ノード（＃８）Ｎｃは、隣接ノードである親ノードＮｐの通信状態及びノード状態に基づいて経路冗長度を判定する。子ノード（＃８）Ｎｃは、親ノードＮｐが高品質経路の提供に関する全ての条件を満たすため、経路冗長度を１と判定する。子ノード（＃８）Ｎｃは、経路冗長度が閾値（＝１）以上であるため、管理データの送信量を、経路冗長度が閾値より小さい場合より減らす（「送信量減少」参照）。
【００５４】
このように、子ノードＮｃは、隣接ノードＮｐ，Ｎｃの通信状態及びノード状態に基づいて経路冗長度を判定し、経路冗長度に応じて管理データの送信量を増減する。このため、子ノードＮｃは、管理データの送信量を隣接ノードＮｐ，Ｎｃごとの通信経路の安定性に応じて抑えることができるので、通信経路の切断のリスクが高いほど、多くの管理データを送信することができる。
【００５５】
次に、ゲートウェイ３、サーバ４、子ノードＮｃ、及び親ノードＮｐの構成について述べる。
【００５６】
図４は、ゲートウェイ３の一例を示す構成図である。ゲートウェイ３は、広域ネットワーク９１上のサーバ４と、アドホックネットワークＮＷの親ノードＮｐ及び子ノードＮｃとの間の通信を中継する。例えば、ゲートウェイ３は、親ノードＮｐ及び子ノードＮｃから管理データと検出データを受信してサーバ４に中継する。
【００５７】
ゲートウェイ３は、ＣＰＵ（Central Processing Unit）３０、ＲＯＭ（Read Only Memory）３１、ＲＡＭ（Random Access Memory）３２、フラッシュメモリ３３、及び通信ポート３４，３５を有する。ＣＰＵ３０は、互いに信号の入出力ができるように、ＲＯＭ３１、ＲＡＭ３２、フラッシュメモリ３３、及び通信ポート３４，３５と、バス３９を介して接続されている。
【００５８】
ＲＯＭ３１は、ＣＰＵ３０を駆動するプログラムが格納されている。ＲＡＭ３２は、ＣＰＵ３０のワーキングメモリとして機能する。フラッシュメモリ３３には、管理データを収容したパケット、及び検出データを収容したパケットなどを格納するパケットバッファ３３１が保持されている。
【００５９】
通信ポート３４は、例えばＵＳＢ（Universal Serial Bus）コントローラであり、親ノードＮｐとの通信を処理する。通信ポート３５は、例えばＬＡＮコントローラであり、ＬＡＮ９０を介した広域ネットワーク９１との通信、つまりサーバ４との通信を処理する。なお、通信ポート３４，３５は、例えばＦＰＧＡ（Field Programmable Gate Array）やＡＳＩＣ（Application Specified Integrated Circuit）などのハードウェアから構成される回路である。
【００６０】
ＣＰＵ３０は、ＲＯＭ３１からプログラムを読み込むと、機能として、中継処理部３００が形成される。中継処理部３００は、サーバ４と、親ノードＮｐ及び子ノードＮｃとの間でパケットを中継する。より具体的には、中継処理部３００は、通信ポート３４，３５を介して送受信するパケットをパケットバッファ３３１に一時的に格納し中継する。このとき、中継処理部３００は、パケットのフォーマット変換やプロトコル変換なども行う。
【００６１】
図５は、サーバ４の一例を示す構成図である。サーバ４は、広域ネットワーク９１に接続されており、例えば、検出データを用いたクラウドサービスを提供する。
【００６２】
サーバ４は、ＣＰＵ４０、ＲＯＭ４１、ＲＡＭ４２、フラッシュメモリ４３、及び通信ポート４４を有する。ＣＰＵ４０は、互いに信号の入出力ができるように、ＲＯＭ４１、ＲＡＭ４２、フラッシュメモリ４３、及び通信ポート４４と、バス４９を介して接続されている。
【００６３】
ＲＯＭ４１は、ＣＰＵ４０を駆動するプログラムが格納されている。ＲＡＭ４２は、ＣＰＵ４０のワーキングメモリとして機能する。フラッシュメモリ４３には、検出データが登録された検出値データベース（ＤＢ）４３１と、管理データが登録された管理データベース（ＤＢ）４３２とが保持されている。
【００６４】
通信ポート４４は、例えばＬＡＮコントローラであり、広域ネットワーク９１を介したゲートウェイ３との通信を処理する。なお、通信ポート４４は、例えばＦＰＧＡやＡＳＩＣなどのハードウェアから構成される回路である。
【００６５】
ＣＰＵ４０は、ＲＯＭ４１からプログラムを読み込むと、機能として、動作制御部４００、登録処理部４０１と、ネットワーク解析部４０２、及びクラウドサービス提供部４０３が形成される。動作制御部４００はサーバ４の全体の動作を制御する。動作制御部４００は、所定のシーケンスに従い、登録処理部４０１、ネットワーク解析部４０２、及びクラウドサービス提供部４０３に各種の処理の実行を指示する。
【００６６】
登録処理部４０１は、通信ポート４４を介して受信したパケットから検出データまたは管理データを取り出す。登録処理部４０１は、検出データを検出値データベース４３１に登録し、管理データを管理データベース４３２に登録する。
【００６７】
ネットワーク解析部４０２は、管理データベース４３２に基づいて、ネットワークの解析処理を実行する。ネットワーク解析部４０２は、管理データベース４３２からアドホックネットワークＮＷの構成を解析し、例えば通信経路の障害の復旧及び回避の予測を行う。
【００６８】
クラウドサービス提供部４０３は、通信ポート４４から受信したユーザの要求に応じ、検出値データベース４３１に基づく所定のクラウドサービスを提供する。
【００６９】
図６は、子ノードＮｃの一例を示す構成図である。子ノードＮｃは、ＣＰＵ１０、ＲＯＭ１１、ＲＡＭ１２、フラッシュメモリ１３、及び無線通信モジュール１４，１５を有する。ＣＰＵ１０は、互いに信号の入出力ができるように、ＲＯＭ１１、ＲＡＭ１２、フラッシュメモリ１３、及び無線通信モジュール１４，１５と、バス１９を介して接続されている。なお、ＣＰＵ１０はコンピュータの一例であり、ＣＰＵ１０に代えて、他のプロセッサが用いられてもよい。
【００７０】
ＲＯＭ１１は、ＣＰＵ１０を駆動するプログラムが格納されている。プログラムには、通信方法を実行する通信プログラムが含まれている。ＲＡＭ１２は、ＣＰＵ１０のワーキングメモリとして機能する。フラッシュメモリ１３には、設定テーブル１３０と、通信経路テーブル１３１と、パケットバッファ１３２と、収集データテーブル１３３と、状態データテーブル１３４とが保持されている。
【００７１】
無線通信モジュール１４は、例えばＢＬＥに従ってセンサＮｓと無線通信する。また、無線通信モジュール１５は、例えばＷｉ−ＳＵＮやＺｉｇＢｅｅに従って隣接ノードＮｐ，Ｎｃと無線通信する。なお、無線通信モジュール１４，１５は、例えばアンテナや通信処理回路などのハードウェアから構成される。
【００７２】
ＣＰＵ１０は、ＲＯＭ１１からプログラムを読み込むと、機能として、動作制御部１００、通信経路探索部１０１、パケット転送処理部１０２、通信状態検出部１０３、ノード状態検出部１０４、管理データ送信部１０５、通信状態収集部１０６、ノード状態収集部１０７、経路冗長度判定部１０８、及び送信量制御部１０９とが形成される。なお、動作制御部１００、通信経路探索部１０１、パケット転送処理部１０２、通信状態検出部１０３、ノード状態検出部１０４、管理データ送信部１０５、通信状態収集部１０６、ノード状態収集部１０７、経路冗長度判定部１０８、及び送信量制御部１０９はＦＰＧＡやＡＳＩＣなどの回路により構成されてもよい。
【００７３】
動作制御部１００は、子ノードＮｃの全体の動作を制御する。動作制御部１００は、所定のシーケンスに従い、通信経路探索部１０１、パケット転送処理部１０２、通信状態検出部１０３、ノード状態検出部１０４、管理データ送信部１０５、通信状態収集部１０６、ノード状態収集部１０７、経路冗長度判定部１０８、及び送信量制御部１０９に各種の処理の実行を指示する。
【００７４】
また、動作制御部１００は、設定テーブル１３０に基づいて通信経路探索部１０１、パケット転送処理部１０２、通信状態検出部１０３、ノード状態検出部１０４、管理データ送信部１０５、通信状態収集部１０６、ノード状態収集部１０７、経路冗長度判定部１０８、及び送信量制御部１０９に各種のパラメータを設定する。
【００７５】
設定テーブル１３０には、例えば、管理データの送信量の制御に用いられる経路冗長度の閾値ＴＨや管理データの送信量の制御に関する上限数Ｎｍａｘ（正の整数）及び下限数Ｎｍｉｎ（正の整数、Ｎｍｉｎ＜Ｎｍａｘ）などが登録されている。動作制御部１００は、例えば起動時に設定テーブル１３０から閾値ＴＨ、上限数Ｎｍａｘ、及び下限数Ｎｍｉｎを読み出して送信量制御部１０９に設定する。
【００７６】
通信経路探索部１０１は、隣接ノードＮｐ，Ｎｃと制御情報を交換することにより、親ノードＮｐまでの通信経路を探索する。通信経路探索部１０１は、制御情報から障害の発生を検出すると、障害箇所のリンクを迂回する通信経路を探索する。通信経路探索部１０１は、探索した通信経路を通信経路テーブル１３１に登録する。
【００７７】
パケット転送処理部１０２は、通信経路テーブル１３１を参照することにより、パケットを最適な通信経路に沿って隣接ノードＮｐ，Ｎｃに転送する。より具体的には、パケット転送処理部１０２は、無線通信モジュール１４，１５から転送対象のパケットを取得してパケットバッファ１３２に一時的に格納し、転送経路に従った次ホップの隣接ノードＮｐ，Ｎｃを検出する。パケット転送処理部１０２は、隣接ノードＮｐ，Ｎｃへのパケットの転送を無線通信モジュール１５に指示する。
【００７８】
通信状態検出部１０３は、例えば周期的に隣接ノードＮｐ，Ｎｃごとの通信状態を検出する。より具体的には、通信状態検出部１０３は、無線通信モジュール１５から隣接ノードＮｐ，Ｎｃごとの通信状態に関するデータを取得する。通信状態に関するデータとしては、ＲＳＳＩ、送信エラー率、及び応答時間が挙げられるが、これに限定されない。なお、無線通信モジュール１５は、通信状態検出部１０３からの指示に応じて、ＲＳＳＩ、送信エラー率、及び応答時間などを測定する。
【００７９】
ノード状態検出部１０４は、例えば周期的に子ノードＮｃ（自装置）の状態を検出する。より具体的には、ノード状態検出部１０４は、子ノードＮｃの移動状態及び負荷状態を検出する。なお、子ノードＮｃの状態としては、移動状態及び負荷状態に限られず、例えばバッテリ残量などが含まれてもよく、また、移動状態及び負荷状態の一方だけが含まれてもよい。
【００８０】
ノード状態検出部１０４は、移動状態として、子ノードＮｃが移動中または静止中の何れであるのかを検出する。移動状態の検出手段としては、例えば、加速度センサの検出値やＲＳＳＩの変化値に基づく検出手段が挙げられるが、これに限定されない。
【００８１】
また、ノード状態検出部１０４は、負荷状態として、子ノードＮｃが過負荷または通常の何れであるのかを検出する。負荷状態の検出手段としては、例えば、ＣＰＵ１０のロードアベレージや利用率などに基づく検出手段が挙げられるが、これに限定されない。
【００８２】
このように、ノード状態検出部１０４は、検出部の一例として、子ノードＮｃの負荷状態及び移動状態の少なくとも一方を検出する。
【００８３】
ノード状態検出部１０４は、移動状態及び負荷状態を状態データテーブル１３４に登録する。また、通信状態検出部１０３は、通信状態を状態データテーブル１３４に登録する。
【００８４】
図７は、状態データテーブル１３４の一例を示す図である。状態データテーブル１３４には、通信状態及びノード状態が登録されている。通信状態には、ＲＳＳＩ、送信エラー率、及び応答時間が含まれており、ノード状態には、経路冗長度、移動状態、及び負荷状態が含まれている。ノード状態のうち、経路冗長度は、経路冗長度判定部１０８により登録される。
【００８５】
再び図６を参照すると、管理データ送信部１０５は、送信部の一例であり、親ノードＮｐを宛先として管理データを送信する。
【００８６】
より具体的には、管理データ送信部１０５は、例えば周期的に、収集データテーブル１３３から隣接ノードＮｐ，Ｎｃの通信状態の情報を取得し、状態データテーブル１３４から自装置のノード状態の情報を取得する。管理データ送信部１０５は、自装置のノード状態の情報と隣接ノードＮｐ，Ｎｃの通信状態の情報とから、図２に示される管理データを収容したパケットを生成する。すなわち、管理データには、自装置のノード状態の情報と隣接ノードＮｐ，Ｎｃの通信状態の情報とが含まれる。
【００８７】
管理データ送信部１０５は、管理データを収容したパケットを、無線通信モジュール１５を介して送信する。このとき、管理データ送信部１０５は、通信経路テーブル１３１を参照することにより、パケットを最適な通信経路に沿って隣接ノードＮｐ，Ｎｃに送信する。
【００８８】
また、管理データ送信部１０５は、送信量制御部１０９により管理データの送信量が制御される。管理データ送信部１０５は、隣接ノードＮｐ，Ｎｃの通信状態の情報に基づいて、通信状態が良好な隣接ノードＮｐ，Ｎｃに関する管理データを優先して送信する。このため、管理データ送信部１０５は、サーバ４が、より安定な通信経路を探索するために有用な管理データを送信することができる。
【００８９】
通信状態収集部１０６は、第１収集部の一例であり、各隣接ノードＮｐ，Ｎｃの通信状態の情報を収集する。より具体的には、通信状態収集部１０６は、各隣接ノードＮｐ，Ｎｃから、一例としてＲＳＳＩ、送信エラー率、及び応答時間を通知するパケットを、無線通信モジュール１５を介して受信する。ＲＳＳＩ、送信エラー率、及び応答時間は、各隣接ノードＮｐ，Ｎｃの通信状態に関する第１データの一例である。なお、通信状態収集部１０６が収集する通信状態の情報は、ＲＳＳＩ、送信エラー率、及び応答時間に限定されない。
【００９０】
また、通信状態収集部１０６は、例えば周期的に状態データテーブル１３４から自装置の通信状態の情報を読み出してパケットに収容し、無線通信モジュール１５を介して各隣接ノードＮｐ，Ｎｃに送信する。
【００９１】
このように、通信状態収集部１０６は、各隣接ノードＮｐ，Ｎｃと通信状態の情報を交換する。なお、通信状態の情報の交換には、例えば経路探索に用いられるＨＥＬＬＯメッセージの送受信処理が利用されてもよい。
【００９２】
ノード状態収集部１０７は、第２収集部の一例であり、隣接ノードＮｐ，Ｎｃのノード状態の情報を収集する。より具体的には、ノード状態収集部１０７は、一例として、負荷状態、移動状態、及び経路冗長度を通知するパケットを、無線通信モジュール１５を介して受信する。なお、隣接ノードＮｐ，Ｎｃの負荷状態、移動状態、及び経路冗長度は、第３データの一例であり、隣接ノードＮｐ，Ｎｃの経路冗長度は通信経路の状態の一例である。また、ノード状態収集部１０７が収集するノード状態の情報は、負荷状態、移動状態、及び経路冗長度に限定されず、また、負荷状態、移動状態、及び経路冗長度の少なくとも１つであってもよい。
【００９３】
また、ノード状態収集部１０７は、例えば周期的に状態データテーブル１３４から自装置のノード状態の情報を読み出してパケットに収容し、無線通信モジュール１５を介して各隣接ノードＮｐ，Ｎｃに送信する。
【００９４】
このように、ノード状態収集部１０７は、各隣接ノードＮｐ，Ｎｃとノード状態の情報を交換する。
【００９５】
通信状態収集部１０６及びノード状態収集部１０７は、収集した情報を収集データテーブル１３３に登録する。通信状態収集部１０６及びノード状態収集部１０７は、周期的に隣接ノードＮｐ，Ｎｃから情報を収集して収集データテーブル１３３を更新する。
【００９６】
図８は、収集データテーブル１３３の一例を示す図である。収集データテーブル１３３には、隣接ノードＩＤ、通信状態、及びノード状態が登録されている。
【００９７】
隣接ノードＩＤは、隣接ノードＮｐ，Ｎｃの識別子であり、例えばＭＡＣアドレスが挙げられる。例えば無線通信モジュール１５は、隣接ノードＮｐ，Ｎｃを検出したとき、その隣接ノードＩＤを検出し、通信状態収集部１０６及びノード状態収集部１０７に通知する。通信状態収集部１０６及びノード状態収集部１０７は、通知された隣接ノードＩＤごとに情報を収集する。
【００９８】
通信状態には、ＲＳＳＩ、送信エラー率、及び応答時間が含まれており、ノード状態には、経路冗長度、移動状態、及び負荷状態が含まれている。通信状態の情報は、管理データ送信部１０５により管理データの一部として親ノードＮｐに送信されるが、その送信量は送信量制御部１０９により制御される。
【００９９】
再び図６を参照すると、経路冗長度判定部１０８は、判定部の一例であり、各隣接ノードＮｐ，Ｎｃの通信状態及びノード状態の情報に基づき、通信品質が所定の基準を満たす通信経路を提供可能な隣接ノードＮｐ，Ｎｃの数、つまり経路冗長度を判定する。ここで、経路冗長度判定部１０８は、各隣接ノードＮｐ，Ｎｃの通信状態の情報のみに基づいて経路冗長度を判定してもよいが、上記のように各隣接ノードＮｐ，Ｎｃの通信状態及びノード状態の情報に基づき判定を行うことにより、経路冗長度を高精度に判定することができる。なお、経路冗長度の判定処理の詳細は後述する。
【０１００】
送信量制御部１０９は、制御部の一例であり、管理データ送信部１０５の管理データの送信量を経路冗長度に応じて制御する。このため、子ノードＮｃは、管理データの送信量を隣接ノードＮｐ，Ｎｃごとの通信経路の安定性に応じて抑えることができるので、例えば通信経路の切断のリスクが高いほど、多くの管理データを送信することができる。
【０１０１】
したがって、サーバ４は、管理データからアドホックネットワークＮＷの構成を解析し、例えば通信経路の障害の復旧及び回避の予測を行うことができる。よって、子ノードＮｃは、管理データの送信量を、データの有用性が損なわれることなく低減することができる。
【０１０２】
より具体的には、送信量制御部１０９は、経路冗長度が所定の閾値ＴＨ以上である場合、管理データ送信部１０５の管理データの送信量を、経路冗長度が所定の閾値ＴＨより小さい場合より減らす。このため、子ノードＮｃは、管理データの送信量を隣接ノードＮｐ，Ｎｃごとの通信経路の安定性に応じて抑えることができるので、通信経路の切断のリスクが高いほど、多くの管理データを送信することができる。
【０１０３】
また、送信量制御部１０９は、図２を参照して述べたように、管理データのうち、各隣接ノードＮｐ，Ｎｃの通信状態の情報の送信量を経路冗長度に応じて制御するため、管理データの送信量を効果的に低減することができる。ここで、管理データには、各隣接ノードＮｐ，Ｎｃの経路冗長度が含まれているため、管理データの有用性が高められる。
【０１０４】
また、送信量制御部１０９は、通信状態の情報が管理データ送信部１０５の送信対象となる隣接ノードＮｐ，Ｎｃの最大数を、経路冗長度判定部１０８が判定した経路冗長度に応じて決定することにより、管理データの送信量を制御する。このため、送信量制御部１０９は、ノード単位で管理データの送信量を制御することができる。
【０１０５】
図９は、親ノードＮｐの一例を示す構成図である。図９において、図６と共通する構成には同一の符号を付し、その説明は省略する。
【０１０６】
親ノードＮｐは、ＣＰＵ１０、ＲＯＭ１１、ＲＡＭ１２、フラッシュメモリ１３、通信ポート１６、及び無線通信モジュール１４，１５を有する。ＣＰＵ１０は、互いに信号の入出力ができるように、ＲＯＭ１１、ＲＡＭ１２、フラッシュメモリ１３、通信ポート１６、及び無線通信モジュール１４，１５と、バス１９を介して接続されている。
【０１０７】
通信ポート１６は、例えばＵＳＢコントローラであり、ゲートウェイ３との通信を処理する。なお、通信ポート１６は、例えばＦＰＧＡやＡＳＩＣなどのハードウェアから構成される回路である。
【０１０８】
ＣＰＵ１０は、ＲＯＭ１１からプログラムを読み込むと、機能として、動作制御部１００、通信経路探索部１０１、パケット転送処理部１０２ａ、通信状態検出部１０３、ノード状態検出部１０４、管理データ送信部１０５ａ、通信状態収集部１０６、ノード状態収集部１０７、経路冗長度判定部１０８、及び送信量制御部１０９とが形成される。
【０１０９】
動作制御部１００は、親ノードＮｐの全体の動作を制御する。動作制御部１００は、所定のシーケンスに従い、通信経路探索部１０１、パケット転送処理部１０２ａ、通信状態検出部１０３、ノード状態検出部１０４、管理データ送信部１０５ａ、通信状態収集部１０６、ノード状態収集部１０７、経路冗長度判定部１０８、及び送信量制御部１０９に各種の処理の実行を指示する。
【０１１０】
管理データ送信部１０５ａは、状態データテーブル１３４のノード状態の情報と収集データテーブル１３３の通信状態の情報から管理データを収容するパケットを生成し、通信ポート１６を介しゲートウェイ３に送信する。また、管理データ送信部１０５ａは、子ノードＮｃの管理データ送信部１０５と同様に、送信量制御部１０９により親ノードＮｐの管理データの送信量が制御される。
【０１１１】
パケット転送処理部１０２ａは、子ノードＮｃのパケット転送処理部１０２とは異なり、検出データまたは管理データを収容したパケットを隣接ノードＮｐ，Ｎｃから受信した場合、そのパケットをパケットバッファ１３２に一時的に格納した後、通信ポート１６に出力する。これにより、検出データ及び管理データがゲートウェイ３経由でサーバ４に中継される。
【０１１２】
このように、親ノードＮｐは、各子ノードＮｃから管理データを収集し、自装置の管理データとともにゲートウェイ３経由でサーバ４に送信する。このため、サーバ４は、アドホックネットワークＮＷの全体的な構成を解析することができる。これに対し、各子ノードＮｃは、処理能力がサーバ４より劣るため、隣接ノードＮｐ，Ｎｃの通信状態から近傍の通信経路の切断リスクを判断することができても、アドホックネットワークＮＷの全体的な構成を解析することができない。
【０１１３】
次に子ノードＮｃの動作について述べる。
【０１１４】
図１０は、子ノードＮｃの動作の一例を示すシーケンス図である。本例において、子ノード（＃ｉ〜＃ｋ）Ｎｃ（ｉ，ｊ，ｋ：正の整数）は、互いに隣接関係にある。各子ノードＮｃの動作制御部１００は、符号Ｓａで示される処理Ｓ１〜Ｓ５の周期が、符号Ｓｂで示される処理Ｓ６，Ｓ７の周期より短くなるように、各処理Ｓ１〜Ｓ５の実行を指示する。なお、本シーケンスは、通信方法及び通信プログラムの動作例を示す。
【０１１５】
ノード状態検出部１０４は、自装置のノード状態（移動状態及び負荷状態）を検出して（処理Ｓ１）、状態データテーブル１３４に登録する。次に、通信状態検出部１０３は、自装置の通信状態（ＲＳＳＩ、送信エラー率、及び応答時間）を検出して（処理Ｓ２）、状態データテーブル１３４に登録する。
【０１１６】
次に、通信状態収集部１０６は、各隣接ノードＮｃから通信状態の情報（ＲＳＳＩ、送信エラー率、及び応答時間）を、ＨＥＬＬＯメッセージなどを用いて収集して（処理Ｓ３）、収集データテーブル１３３に登録する。このとき、隣接関係にある子ノード（＃ｉ〜＃ｋ）Ｎｃの間で通信状態の情報の交換が行われる。なお、収集データテーブル１３３には、最新の通信状態の情報だけが登録されているが、過去の複数回分の通信状態の情報が登録されてもよい。
【０１１７】
次に、ノード状態収集部１０７は、各隣接ノードＮｃからノード状態の情報（経路冗長度、移動状態、及び負荷状態）を収集する（処理Ｓ４）、収集データテーブル１３３に登録する。このとき、隣接関係にある子ノード（＃ｉ〜＃ｋ）Ｎｃの間でノード状態の情報の交換が行われる。なお、収集データテーブル１３３には、最新のノード状態の情報だけが登録されているが、過去の複数回分のノード状態の情報が登録されてもよい。
【０１１８】
次に、経路冗長度判定部１０８は、状態データテーブル１３４のノード状態と収集データテーブル１３３の通信状態とに基づいて経路冗長度を判定する（処理Ｓ５）。
【０１１９】
図１１は、経路冗長度の判定処理の一例を示すフローチャートである。経路冗長度判定部１０８は、経路冗長度を０に初期化する（ステップＳｔ１）。次に、経路冗長度判定部１０８は、無線通信モジュール１５において検出された隣接ノードＩＤの１つを選択する（ステップＳｔ２）。以下のステップＳｔ３〜Ｓｔ８では、選択中の隣接ノードＩＤに該当する隣接ノードＮｐ，Ｎｃの各種のデータについて判定が行われる。
【０１２０】
経路冗長度判定部１０８は、負荷状態が通常を示すか否かを判定する（ステップＳｔ３）。経路冗長度判定部１０８は、負荷状態が過負荷を示す場合（ステップＳｔ３のＮｏ）、他の隣接ノードＩＤを選択する（ステップＳｔ２）。その後、ステップＳｔ３以降の各処理が実行される。
【０１２１】
経路冗長度判定部１０８は、負荷状態が通常を示す場合（ステップＳｔ３のＹｅｓ）、移動状態が静止中を示すか否かを判定する（ステップＳｔ４）。経路冗長度判定部１０８は、移動状態が移動中を示す場合（ステップＳｔ４のＮｏ）、他の隣接ノードＩＤを選択する（ステップＳｔ２）。その後、ステップＳｔ３以降の各処理が実行される。
【０１２２】
経路冗長度判定部１０８は、移動状態が静止中を示す場合（ステップＳｔ４のＹｅｓ）、経路冗長度を所定値Ｊ（正の整数、例えば１）と比較する（ステップＳｔ５）。経路冗長度判定部１０８は、経路冗長度が所定値Ｊより小さい場合（ステップＳｔ５のＮｏ）、他の隣接ノードＩＤを選択する（ステップＳｔ２）。その後、ステップＳｔ３以降の各処理が実行される。
【０１２３】
経路冗長度判定部１０８は、経路冗長度が所定値Ｊ以上である場合（ステップＳｔ５のＹｅｓ）、ＲＳＳＩを所定値Ｋと比較する（ステップＳｔ６）。経路冗長度判定部１０８は、ＲＳＳＩが所定値Ｋより小さい場合（ステップＳｔ６のＮｏ）、他の隣接ノードＩＤを選択する（ステップＳｔ２）。その後、ステップＳｔ３以降の各処理が実行される。
【０１２４】
経路冗長度判定部１０８は、ＲＳＳＩが所定値Ｋ以上である場合（ステップＳｔ６のＹｅｓ）、送信エラー率を所定値Ｌと比較する（ステップＳｔ７）。経路冗長度判定部１０８は、送信エラー率が所定値Ｌより大きい場合（ステップＳｔ７のＮｏ）、他の隣接ノードＩＤを選択する（ステップＳｔ２）。その後、ステップＳｔ３以降の各処理が実行される。
【０１２５】
経路冗長度判定部１０８は、送信エラー率が所定値Ｌ以下である場合（ステップＳｔ７のＹｅｓ）、応答時間を所定値Ｍと比較する（ステップＳｔ８）。経路冗長度判定部１０８は、応答時間が所定値Ｍより大きい場合（ステップＳｔ８のＮｏ）、他の隣接ノードＩＤを選択する（ステップＳｔ２）。その後、ステップＳｔ３以降の各処理が実行される。
【０１２６】
経路冗長度判定部１０８は、応答時間が所定値Ｍ以下である場合（ステップＳｔ８のＹｅｓ）、経路冗長度に１を加算する（ステップＳｔ９）。
【０１２７】
次に、経路冗長度判定部１０８は、全ての隣接ノードＩＤを選択済みであるか否かを判定する（ステップＳｔ１０）。経路冗長度判定部１０８は、未選択の隣接ノードＩＤが存在する場合（ステップＳｔ１０のＮｏ）、他の隣接ノードＩＤを選択する（ステップＳｔ２）。その後、ステップＳｔ３以降の各処理が実行される。
【０１２８】
経路冗長度判定部１０８は、全ての隣接ノードＩＤを選択済みである場合（ステップＳｔ１０のＹｅｓ）、経路冗長度を状態データテーブル１３４に記録する（ステップＳｔ１１）。経路冗長度は、送信量制御部１０９により管理データの送信量の制御に用いられる。このようにして、経路冗長度の判定処理は実行される。なお、所定値Ｊ，Ｋ，Ｌ，Ｍは、例えば設定テーブル１３０に予め登録されている。
【０１２９】
このように、経路冗長度判定部１０８は、各隣接ノードＮｐ，Ｎｃの通信状態及びノード状態の情報に基づいて経路冗長度を判定する。より具体的には、経路冗長度判定部１０８は、隣接ノードＮｐ，Ｎｃごとに、通信状態及びノード状態の情報の全てのパラメータが通信品質の観点から良好である場合にのみ経路冗長度を上昇させる。このため、経路冗長度は、通信品質が所定の基準を満たす通信経路を提供可能な隣接ノードＮｐ，Ｎｃの数となる。
【０１３０】
再び図１０を参照すると、経路冗長度の判定処理の後、送信量制御部１０９は、管理データ送信部１０５の管理データの送信量を経路冗長度に応じて制御する（処理Ｓ６）。次に、管理データ送信部１０５は、送信量制御部１０９の制御に応じた送信量で管理データを親ノードＮｐに送信する（処理Ｓ７）。このようにして、子ノードＮｃは動作する。
【０１３１】
図１２は、管理データの送信量の制御処理の一例を示すフローチャートである。本処理は、上記の処理Ｓ６に該当する。
【０１３２】
送信量制御部１０９は、状態データテーブル１３４の経路冗長度を閾値ＴＨ（本例では１）と比較する（ステップＳｔ３１）。送信量制御部１０９は、経路冗長度が閾値ＴＨ以上である場合（ステップＳｔ３１のＹｅｓ）、管理データのうち、通信状態の情報が管理データ送信部１０５の送信対象となる隣接ノードＮｐ，Ｎｃの最大数を下限数Ｎｍｉｎ（本例では２）に決定する（ステップＳｔ３２）。これにより、２つの隣接ノードＮｐ，Ｎｃ分の通信状態の情報だけが送信対象となるため、管理データの送信量は減少する。
【０１３３】
また、送信量制御部１０９は、経路冗長度が閾値ＴＨより小さい場合（ステップＳｔ３１のＮｏ）、管理データのうち、通信状態の情報が管理データ送信部１０５の送信対象となる隣接ノードＮｐ，Ｎｃの最大数（送信対象ノード数）を上限数Ｍｍａｘ（本例では５）に決定する（ステップＳｔ３３）。これにより、５つの隣接ノードＮｐ，Ｎｃ分の通信状態の情報が送信対象となるため、管理データの送信量は増加する。
【０１３４】
このように、送信量制御部１０９は、管理データ送信部１０５の管理データの送信量を経路冗長度に応じて制御する。より具体的には、送信量制御部１０９は、経路冗長度が所定の閾値ＴＨ以上である場合、ステップＳｔ３２の処理において管理データの送信量を、経路冗長度が所定の閾値ＴＨより小さい場合より減らす。このため、子ノードＮｃは、管理データの送信量を隣接ノードＮｐ，Ｎｃごとの通信経路の安定性に応じて抑えることができるので、通信経路の切断のリスクが高いほど、多くの管理データを送信することができる。
【０１３５】
また、送信量制御部１０９は、送信対象ノード数を、経路冗長度判定部１０８が判定した経路冗長度に応じて下限数Ｎｍｉｎまたは上限数Ｎｍａｘに決定することにより、管理データの送信量を制御する。このため、送信量制御部１０９は、ノード単位で管理データの送信量を制御することができる。なお、送信量制御部１０９は、経路冗長度に応じて送信量自体を決定してもよい。この場合、管理データ送信部１０５は、決定された送信量の範囲内で送信対象の通信状態の情報をノード単位で選択する。
【０１３６】
図１３は、管理データの送信処理の一例を示すフローチャートである。管理データ送信部１０５は、収集データテーブル１３３の情報を、一例としてＲＳＳＩの順でソートする（ステップＳｔ２１）。次に、管理データ送信部１０５は、収集データテーブル１３３の情報に送信の優先度を割り当てる（ステップＳｔ２２）。
【０１３７】
次に、管理データ送信部１０５は、優先度に従い、送信対象ノード数分の通信状態の情報を選択して送信する（ステップＳｔ２３）。以下に、図８の収集データテーブル１３３を例に挙げて送信対象の通信状態の情報の選択について説明する。
【０１３８】
図１４は、送信対象の通信状態の情報の選択の一例を示す図である。管理データ送信部１０５は、収集データテーブル１３３の情報をＲＳＳＩの大きい順にソートする。なお、管理データ送信部１０５は、例えば応答時間の大きい順にソートしてもよく、さらに、ＲＳＳＩ、送信エラー率、及び応答時間のうち、２つ以上の情報に基づいてソートしてもよい。
【０１３９】
管理データ送信部１０５は、ソートされた情報に送信の優先度（１〜６）を順次に割り当てる。このため、ＲＳＳＩが大きい情報ほど、高い優先度が割り当てられる。本例の場合、隣接ノードＩＤ「ＸＸ：ＸＸ：ＸＸ：０５」の情報には最も高い優先度「１」が割り当てられ、隣接ノードＩＤ「ＸＸ：ＸＸ：ＸＸ：０Ａ」の情報には最も低い優先度「６」が割り当てられる。
【０１４０】
管理データ送信部１０５は、送信対象ノード数が上限数Ｎｍａｘ（＝５）である場合、一点鎖線で示されるように、優先度「１」〜「５」の通信状態の情報を選択して送信する。また、管理データ送信部１０５は、送信対象ノード数が下限数Ｎｍｉｎ（＝２）である場合、点線で示されるように、優先度「１」及び「２」の通信状態の情報を選択して送信する。このため、ＲＳＳＩに基づき良好な通信状態の情報が優先的に親ノードＮｐに送信される。
【０１４１】
このように、管理データ送信部１０５は、通信状態の情報に基づいて、通信状態が良好な隣接ノードＮｐ，Ｎｃに関する管理データを優先して送信する。このため、管理データ送信部１０５は、サーバ４が、より安定な通信経路を探索するために有用な管理データを送信することができる。
【０１４２】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体（ただし、搬送波は除く）に記録しておくことができる。
【０１４３】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ（Digital Versatile Disc）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）などの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１４４】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１４５】
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【０１４６】
なお、以上の説明に関して更に以下の付記を開示する。
（付記１）  アドホックネットワーク内の１以上の隣接ノードの各々との通信状態に関する第１データを収集する第１収集部と、
前記アドホックネットワークの管理に用いられる第２データを送信する送信部と、
前記第１データに基づき、前記１以上の隣接ノードのうち、通信品質が所定の基準を満たす通信経路を提供可能なノードの数を判定する判定部と、
前記送信部の前記第２データの送信量を前記ノードの数に応じて制御する制御部とを有することを特徴とする通信装置。
（付記２）  前記制御部は、前記ノードの数が所定の閾値以上である場合、前記送信部の前記第２データの送信量を、前記ノードの数が前記所定の閾値より少ない場合より減らすことを特徴とする付記１に記載の通信装置。
（付記３）  前記送信部は、前記第１データに基づいて、前記１以上の隣接ノードのうち、通信状態が良好なノードに関する前記第２データを優先して送信することを特徴とする付記１または２に記載の通信装置。
（付記４）  前記第２データには、前記第１データが含まれ、
前記制御部は、前記１以上の隣接ノードのうち、前記第１データが前記送信部の送信対象となるノードの最大数を、前記判定部が判定した前記ノードの数に応じて決定することにより、前記第１データの送信量を制御することを特徴とする付記１乃至３の何れかに記載の通信装置。
（付記５）  前記通信装置の負荷状態及び移動状態の少なくとも一方を検出する検出部を有し、
前記第２データには、前記第１データと、前記検出部が検出した負荷状態及び移動状態の少なくとも一方の情報とが含まれ、
前記制御部は、前記第２データのうち、前記第１データの送信量を前記ノードの数に応じて制御することを特徴とする付記１乃至３の何れかに記載の通信装置。
（付記６）  前記第２データには、前記ノードの数がさらに含まれることを特徴とする付記５に記載の通信装置。
（付記７）  前記１以上の隣接ノードの負荷状態、移動状態、及び通信経路の状態の少なくとも１つに関する第３データを収集する第２収集部を有し、
前記判定部は、前記第１データ及び前記第３データに基づき、前記ノードの数を判定することを特徴とする付記１乃至６の何れかに記載の通信装置。
（付記８）  第１通信装置と、複数の第２通信装置とを有し、
前記複数の第２通信装置は、それぞれ、
アドホックネットワーク内の１以上の隣接ノードの各々との通信状態に関する第１データを収集する第１収集部と、
前記第１通信装置に対し、前記アドホックネットワークの管理に用いられる第２データを送信する送信部と、
前記第１データに基づき、前記１以上の隣接ノードのうち、通信品質が所定の基準を満たす通信経路を提供可能なノードの数を判定する判定部と、
前記送信部の前記第２データの送信量を前記ノードの数に応じて制御する制御部とを有することを特徴とする通信システム。
（付記９）  前記制御部は、前記ノードの数が所定の閾値以上である場合、前記送信部の前記第２データの送信量を、前記ノードの数が前記所定の閾値より少ない場合より減らすことを特徴とする付記８に記載の通信システム。
（付記１０）  前記送信部は、前記第１データに基づいて、前記１以上の隣接ノードのうち、通信状態が良好なノードに関する前記第２データを優先して送信することを特徴とする付記８または９に記載の通信システム。
（付記１１）  前記第２データには、前記第１データが含まれ、
前記制御部は、前記１以上の隣接ノードのうち、前記第１データが前記送信部の送信対象となるノードの最大数を、前記判定部が判定した前記ノードの数に応じて決定することにより、前記第１データの送信量を制御することを特徴とする付記８乃至１０の何れかに記載の通信システム。
（付記１２）  前記複数の第２通信装置のうち、自装置の負荷状態及び移動状態の少なくとも一方を検出する検出部を有し、
前記第２データには、前記第１データと、前記検出部が検出した負荷状態及び移動状態の少なくとも一方の情報とが含まれ、
前記制御部は、前記第２データのうち、前記第１データの送信量を前記ノードの数に応じて制御することを特徴とする付記８乃至１１の何れかに記載の通信システム。
（付記１３）  前記第２データには、前記ノードの数がさらに含まれることを特徴とする付記１２に記載の通信システム。
（付記１４）  前記１以上の隣接ノードの負荷状態、移動状態、及び通信経路の状態の少なくとも１つに関する第３データを収集する第２収集部を有し、
前記判定部は、前記第１データ及び前記第３データに基づき、前記ノードの数を判定することを特徴とする付記８乃至１３の何れかに記載の通信システム。
（付記１５）  アドホックネットワーク内の１以上の隣接ノードの各々との通信状態に関する第１データを収集する工程と、
前記アドホックネットワークの管理に用いられる第２データを送信する工程と、
前記第１データに基づき、前記１以上の隣接ノードのうち、通信品質が所定の基準を満たす通信経路を提供可能なノードの数を判定する工程と、
前記第２データの送信量を前記ノードの数に応じて制御する工程とを、コンピュータが実行することを特徴とする通信方法。
（付記１６）  前記第２データの送信量を制御する工程において、前記ノードの数が所定の閾値以上である場合、前記第２データの送信量を、前記ノードの数が前記所定の閾値より少ない場合より減らすことを特徴とする付記１５に記載の通信方法。
（付記１７）  前記第２データを送信する工程において、前記第１データに基づいて、前記１以上の隣接ノードのうち、通信状態が良好なノードに関する前記第２データを優先して送信することを特徴とする付記１５または１６に記載の通信方法。
（付記１８）  前記第２データには、前記第１データが含まれ、
前記第２データの送信量を制御する工程において、前記１以上の隣接ノードのうち、前記第１データの送信対象となるノードの最大数を、前記判定した前記ノードの数に応じて決定することにより、前記第１データの送信量を制御することを特徴とする付記１５乃至１７の何れかに記載の通信方法。
（付記１９）  アドホックネットワーク内の１以上の隣接ノードの各々との通信状態に関する第１データを収集し、
前記アドホックネットワークの管理に用いられる第２データを送信し、
前記第１データに基づき、前記１以上の隣接ノードのうち、通信品質が所定の基準を満たす通信経路を提供可能なノードの数を判定し、
前記第２データの送信量を前記ノードの数に応じて制御する、処理をコンピュータに実行させることを特徴とする通信プログラム。
（付記２０）  アドホックネットワーク内の１以上の隣接ノードの各々との通信状態に関する第１データを収集し、
前記アドホックネットワークの管理に用いられる第２データを送信し、
前記第１データに基づき、前記１以上の隣接ノードのうち、通信品質が所定の基準を満たす通信経路を提供可能なノードの数を判定し、
前記第２データの送信量を前記ノードの数に応じて制御する、プロセッサを有することを特徴とする通信装置。
【符号の説明】
【０１４７】
１０      ＣＰＵ
１０３     通信状態検出部
１０４     ノード状態検出部
１０５     管理データ送信部
１０６     通信状態収集部
１０７     ノード状態収集部
１０８     経路冗長度判定部
１０９     送信量制御部
ＮＷ      アドホックネットワーク
Ｎｐ      親ノード
Ｎｃ      子ノード
Ｎｓ      センサ
【図１】
2019041194.tif 000003
【図２】
2019041194.tif 000004
【図３】
2019041194.tif 000005
【図４】
2019041194.tif 000006
【図５】
2019041194.tif 000007
【図６】
2019041194.tif 000008
【図７】
2019041194.tif 000009
【図８】
2019041194.tif 000010
【図９】
2019041194.tif 000011
【図１０】
2019041194.tif 000012
【図１１】
2019041194.tif 000013
【図１２】
2019041194.tif 000014
【図１３】
2019041194.tif 000015
【図１４】
2019041194.tif 000016