(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0015】
図1は、アドホックネットワークNWの一例を示す構成図である。アドホックネットワークNWには、無線通信端末がそれぞれ設けられた親ノードNp及び複数の子ノード(#1〜#5)Ncが含まれる。親ノードNpの無線通信端末は所定の位置に設置されており、子ノードNcの無線通信端末は、所定の位置に設置されるか、または移動体(人間や機械など)に設けられている。
【0016】
親ノードNpの無線通信端末は第1通信装置の一例であり、子ノードNcの無線通信端末は第2通信装置及び通信装置の一例である。また、親ノードNp及び子ノードNcの各通信装置は、通信システムの一例を構成する。なお、以降の説明では、親ノードNpの無線通信端末を単に「親ノードNp」と表記し、子ノードNcの無線通信端末を単に「子ノードNc」と表記する。
【0017】
親ノードNpは、サーバ4に対する通信を中継するゲートウェイ3に直接的に接続されている。ゲートウェイ3は、例えば有線のLAN(Local Area Network)90を介し、インターネットなどの広域ネットワーク91上のサーバ4に接続されている。子ノードNcは、親ノードNpを介してゲートウェイ3にアクセスすることによりサーバ4と通信する。
【0018】
親ノードNpは、点線で示されるように、その近傍に存在する子ノードNcとリンクすることにより通信する。また、近傍に存在する子ノードNc同士も、点線で示されるように、互いにリンクすることにより通信する。例えば、親ノードNpは、子ノード(#1)Ncと子ノード(#2)Ncとリンクし、子ノード(#2)Ncは親ノードNp、子ノード(#3)Nc、及び子ノード(#4)Ncとリンクしている。
【0019】
親ノードNpと子ノードNcの間の通信、及び子ノードNc同士の通信は、例えばWi−SUNやZigBeeなどのプロトコルに従って行われる。
【0020】
また、親ノードNpと子ノードNcは、その近傍のセンサNsとリンクすることにより通信する。例えば、子ノード(#1)Ncはセンサ(#1)Nsとリンクし、子ノード(#3)Ncはセンサ(#2)Nsとリンクしている。親ノードNpと子ノードNcは、例えばBLE(Bluetooth Low Energy)(登録商標)などのプロトコルに従ってセンサNsと通信する。
【0021】
センサNsは、例えば、屋外に設置され、河川や下水道の水位や温度などを検出する。センサNsは、その検出値のデータ(以下、「検出データ」と表記)を、例えば周期的に親ノードNpまたは子ノードNcに送信する。なお、本例において、センサNsは親ノードNp及び子ノードNcから独立しているが、親ノードNp及び子ノードNcの少なくとも一方に、センサNsと同様のセンサ機能を備えてもよい。
【0022】
子ノードNcは、センサNsから受信した検出データを親ノードNpに送信する。子ノードNcは、ルータ機能により、親ノードNpまでのマルチホップの通信経路を探索する。例えば、子ノード(#3)Ncは、子ノード(#1)Ncを経由する通信経路Raにより検出データを親ノードNpに送信する。
【0023】
さらに、子ノードNcは、通信経路に障害が生じた場合、障害箇所を迂回するように通信経路を切り替える。子ノード(#3)Ncは、例えば親ノードNpと子ノード(#1)Ncの間のリンクが切断されることにより通信経路Raに障害(×印参照)が生じた場合、親ノードNpまでの通信経路を、通信経路Raから、子ノード(#2)Ncを経由する通信経路Rbに切り替える。
【0024】
親ノードNpは、各センサNsの検出データを直接的に、または1以上の子ノードNcを介して受信しゲートウェイ3に送信する。ゲートウェイ3は、検出データをサーバ4に中継する。
【0025】
サーバ4は、ゲートウェイ3を介して親ノードNp及び子ノードNcと通信することにより、各センサNsの検出データを収集する。サーバ4は、例えば、検出データを用いて、広域ネットワーク91を介したクラウドサービスを提供する。
【0026】
また、サーバ4は、アドホックネットワークNWの管理装置として機能する。サーバ4は、ネットワーク構成を検出するため、例えば、親ノードNpと子ノードNcの間の隣接関係、子ノードNc間の隣接関係、エラー率、及び受信強度などの管理データを各無線通信端末から収集する。なお、管理データは、アドホックネットワークNWの管理に用いられる第2データの一例である。
【0027】
しかし、無線通信端末には、小型化、低消費電力化、及び低コスト化が要求されるため、その通信帯域は、大量の管理データを伝送できるほど十分に広いわけではない。例えば親ノードNpとリンクしている子ノード(#1)Nc及び子ノード(#2)Ncには、センサNsの検出データだけではなく、他の子ノード(#3〜5)Ncからリレー方式で転送された大量の管理データが集中するため、通信帯域が不足するおそれがある。
【0028】
これに対して、親ノードNp及び子ノードNcが管理データの送信量を抑えれば通信帯域の不足は解消され得るが、管理データの収集量の不足によりその有用性が損なわれることによって、ネットワーク管理に支障が出るおそれがある。
【0029】
そこで、子ノードNcは、隣接ノードNp,Ncとの通信状態に関するデータに基づき経路冗長度を判定し、経路冗長度に応じて管理データの送信量を制御する。経路冗長度とは、通信品質が所定の基準を満たす通信経路(以下、「高品質経路」と表記)を提供可能な隣接ノードNp,Ncの数を指す。
【0030】
このため、子ノードNcは、管理データの送信量を隣接ノードNp,Ncごとの通信経路の安定性に応じて抑えることができるので、例えば通信経路の切断のリスクが高いほど、多くの管理データを送信することができる。したがって、サーバ4は、管理データからアドホックネットワークNWの構成を解析し、例えば通信経路の障害の復旧及び回避の予測を行うことができる。
【0031】
よって、子ノードNcは、管理データの送信量を、データの有用性が損なわれることなく低減することができる。以下に管理データを収容したパケットのフォーマットについて述べ、送信量の制御について例を挙げて説明する。
【0032】
図2は、管理データを収容したパケットの一例を示すフォーマット図である。パケットには、宛先及び送信元などの情報を含むヘッダと、ノード状態及び通信状態#1〜#n(n:1以上の整数)の情報を含む管理データとを収容する。
【0033】
ノード状態は、送信元の親ノードNpまたは子ノードNcの状態である。ノード状態には、一例として、送信元ノードIDと、経路冗長度と、移動状態、及び負荷状態とが含まれる。送信元ノードIDは、例えば、送信元の親ノードNpまたは子ノードNcのMAC(Media Access Control)アドレスを示す。経路冗長度は、上述したとおりである。
【0034】
移動状態は、送信元の親ノードNpまたは子ノードNcが移動中であるのか、または静止中であるのかを示す。なお、親ノードNpの場合、移動状態は静止中となる。
【0035】
負荷状態は、送信元の親ノードNpまたは子ノードNcの処理の負荷が正常であるのか、または異常であるのかを示す。負荷状態は、例えば、負荷が所定の基準値以下である場合、正常と判定され、負荷が所定の基準値を上回る場合、異常と判定される。
【0036】
また、通信状態#1〜#nは、隣接ノードNp,Ncとの間のリンクごとの通信の状態を示す。通信状態#1〜#nには、一例として、それぞれ、隣接ノードIDと、RSSIと、送信エラー率と、応答時間とが含まれる。隣接ノードIDは、例えば、隣接ノードNp,NcのMACアドレスを示す。
【0037】
RSSIは、隣接ノードNp,Ncが送信元のノードNp,Ncから受信した電波の信号強度である。送信エラー率は、隣接ノードNp,Ncから送信元のノードNp,Ncに送信したデータのエラー率である。応答時間は、隣接ノードNp,Ncから送信元のノードNp,Ncにデータを送信してから、送信元のノードNp,Ncの応答を受信するまでの経過時間である。
【0038】
なお、通信状態#1〜#nの情報は、アドホックネットワークNW内の各隣接ノードNp,Ncとの通信状態に関する第1データの一例である。通信状態#1〜#nの情報には、上記に限定されず、例えば通信チャネルの使用率、及び所定時間内に通信した隣接ノードNp,Ncの数などが含まれてもよい。
【0039】
また、一例として、ヘッダのサイズは10(Byte)であり、ノード状態の情報のサイズは25(Byte)であり、各通信状態(#1〜#n)の情報のサイズは20(Byte)である。また、パケットの最大サイズは、使用するプロトコルに応じて異なり、例えばZigBeeの場合、127(Byte)である。
【0040】
通信状態#1〜#nの情報の合計サイズは、リンク数nに応じて増加するため、ヘッダやノード状態の情報よりデータ量が多くなり得る。このため、リンク数nによっては、全ての通信状態#1〜#nの情報を1つのパケットに収容することができず、フラグメンテーション処理により複数のパケットに分割して収容する場合がある。この場合、通信帯域に占める管理データの比率が、フラグメンテーション処理が用いられない場合より増加する。
【0041】
このため、親ノードNp及び子ノードNcは、管理データのうち、通信状態#1〜#nの情報の送信量を経路冗長度に応じて制御することにより、管理データの送信量を効果的に低減する。また、親ノードNp及び子ノードNcは、管理データのうち、ノード状態の情報を、経路冗長度によらず、サーバ4に送信することができる。
【0042】
図3は、管理データの送信量の制御の一例を示す図である。本例のアドホックネットワークNWには、親ノードNpと、子ノード(#1〜#8)Ncとが含まれる。
【0043】
親ノードNpは、子ノード(#5〜#8)Ncとリンクし、子ノード(#1)Ncは、子ノード(#2)Nc、子ノード(#4)Nc、及び子ノード(#6)Ncとリンクしている。子ノード(#2)Ncは、子ノード(#1)Nc及び子ノード(#3〜#5)Ncとリンクし、子ノード(#3)Ncは、子ノード(#2)Nc、子ノード(#4)Nc、及び子ノード(#5)Ncとリンクしている。
【0044】
子ノード(#4)Ncは、子ノード(#1〜#3)Nc、子ノード(#5)Nc、及び子ノード(#6)Ncとリンクし、子ノード(#5)Ncは、子ノード(#2〜#4)Nc、子ノード(#6)Nc、及び親ノードNpとリンクしている。子ノード(#7)Ncは、子ノード(#6)Ncと親ノードNpにリンクし、子ノード(#8)Ncは親ノードNpにリンクしている。
【0045】
子ノード(#1〜#8)Ncは、親ノードNpまでの通信経路を探索して、その通信経路を介し、管理データを収容したパケットを送信する。親ノードNpは、子ノード(#1〜#8)Ncから受信した管理データを、自ノードの管理データとともにゲートウェイ3に送信する。
【0046】
各子ノードNcは、隣接ノードNp,Ncごとの通信状態及びノード状態に基づいて経路冗長度を判定する。
図3には、子ノードNcごとの経路冗長度が表示されている。
【0047】
例えば子ノード(#1)Ncは、隣接ノードである子ノード(#2)Nc、子ノード(#4)Nc、及び子ノード(#6)Ncの通信状態及びノード状態に基づいて経路冗長度を判定する。
【0048】
より具体的には、子ノード(#1)Ncは、子ノード(#2)Ncの経路冗長度が0であるため、子ノード(#2)Ncを、高品質経路の提供が不可能な隣接ノードであると判定する。また、子ノード(#1)Ncは、子ノード(#4)Ncが移動中であるため、子ノード(#4)Ncを、高品質経路の提供が不可能な隣接ノードであると判定する。また、子ノード(#1)Ncは、子ノード(#6)NcのRSSIが所定値より低いため、子ノード(#4)Ncを、高品質経路の提供が不可能な隣接ノードであると判定する。
【0049】
したがって、子ノード(#1)Ncは、高品質経路を提供可能な隣接ノード数が0であることから、経路冗長度を0と判定する。ここで経路冗長度の閾値を1とすると、子ノード(#1)Ncは、経路冗長度が閾値より小さいため、管理データの送信量を、経路冗長度が閾値以上である場合より増やす(「送信量増加」参照)。
【0050】
また、子ノード(#2)Ncは、隣接ノードである子ノード(#1)Nc及び子ノード(#3〜#5)Ncの通信状態及びノード状態に基づいて経路冗長度を判定する。
【0051】
より具体的には、子ノード(#2)Ncは、子ノード(#1)Ncの経路冗長度が0であるため、子ノード(#1)Ncを、高品質経路の提供が不可能な隣接ノードであると判定する。また、子ノード(#2)Ncは、子ノード(#3)Nc及び子ノード(#4)Ncが移動中であるため、子ノード(#3)Nc及び子ノード(#4)Ncを、高品質経路の提供が不可能な隣接ノードであると判定する。また、子ノード(#2)Ncは、子ノード(#5)Ncが過負荷であるため、子ノード(#5)Ncを、高品質経路の提供が不可能な隣接ノードであると判定する。
【0052】
したがって、子ノード(#2)Ncは、高品質経路を提供可能な隣接ノード数が0であることから、経路冗長度を0と判定する。子ノード(#2)Ncは、経路冗長度が閾値(=1)より小さいため、管理データの送信量を、経路冗長度が閾値以上である場合より増やす(「送信量増加」参照)。
【0053】
また、子ノード(#8)Ncは、隣接ノードである親ノードNpの通信状態及びノード状態に基づいて経路冗長度を判定する。子ノード(#8)Ncは、親ノードNpが高品質経路の提供に関する全ての条件を満たすため、経路冗長度を1と判定する。子ノード(#8)Ncは、経路冗長度が閾値(=1)以上であるため、管理データの送信量を、経路冗長度が閾値より小さい場合より減らす(「送信量減少」参照)。
【0054】
このように、子ノードNcは、隣接ノードNp,Ncの通信状態及びノード状態に基づいて経路冗長度を判定し、経路冗長度に応じて管理データの送信量を増減する。このため、子ノードNcは、管理データの送信量を隣接ノードNp,Ncごとの通信経路の安定性に応じて抑えることができるので、通信経路の切断のリスクが高いほど、多くの管理データを送信することができる。
【0055】
次に、ゲートウェイ3、サーバ4、子ノードNc、及び親ノードNpの構成について述べる。
【0056】
図4は、ゲートウェイ3の一例を示す構成図である。ゲートウェイ3は、広域ネットワーク91上のサーバ4と、アドホックネットワークNWの親ノードNp及び子ノードNcとの間の通信を中継する。例えば、ゲートウェイ3は、親ノードNp及び子ノードNcから管理データと検出データを受信してサーバ4に中継する。
【0057】
ゲートウェイ3は、CPU(Central Processing Unit)30、ROM(Read Only Memory)31、RAM(Random Access Memory)32、フラッシュメモリ33、及び通信ポート34,35を有する。CPU30は、互いに信号の入出力ができるように、ROM31、RAM32、フラッシュメモリ33、及び通信ポート34,35と、バス39を介して接続されている。
【0058】
ROM31は、CPU30を駆動するプログラムが格納されている。RAM32は、CPU30のワーキングメモリとして機能する。フラッシュメモリ33には、管理データを収容したパケット、及び検出データを収容したパケットなどを格納するパケットバッファ331が保持されている。
【0059】
通信ポート34は、例えばUSB(Universal Serial Bus)コントローラであり、親ノードNpとの通信を処理する。通信ポート35は、例えばLANコントローラであり、LAN90を介した広域ネットワーク91との通信、つまりサーバ4との通信を処理する。なお、通信ポート34,35は、例えばFPGA(Field Programmable Gate Array)やASIC(Application Specified Integrated Circuit)などのハードウェアから構成される回路である。
【0060】
CPU30は、ROM31からプログラムを読み込むと、機能として、中継処理部300が形成される。中継処理部300は、サーバ4と、親ノードNp及び子ノードNcとの間でパケットを中継する。より具体的には、中継処理部300は、通信ポート34,35を介して送受信するパケットをパケットバッファ331に一時的に格納し中継する。このとき、中継処理部300は、パケットのフォーマット変換やプロトコル変換なども行う。
【0061】
図5は、サーバ4の一例を示す構成図である。サーバ4は、広域ネットワーク91に接続されており、例えば、検出データを用いたクラウドサービスを提供する。
【0062】
サーバ4は、CPU40、ROM41、RAM42、フラッシュメモリ43、及び通信ポート44を有する。CPU40は、互いに信号の入出力ができるように、ROM41、RAM42、フラッシュメモリ43、及び通信ポート44と、バス49を介して接続されている。
【0063】
ROM41は、CPU40を駆動するプログラムが格納されている。RAM42は、CPU40のワーキングメモリとして機能する。フラッシュメモリ43には、検出データが登録された検出値データベース(DB)431と、管理データが登録された管理データベース(DB)432とが保持されている。
【0064】
通信ポート44は、例えばLANコントローラであり、広域ネットワーク91を介したゲートウェイ3との通信を処理する。なお、通信ポート44は、例えばFPGAやASICなどのハードウェアから構成される回路である。
【0065】
CPU40は、ROM41からプログラムを読み込むと、機能として、動作制御部400、登録処理部401と、ネットワーク解析部402、及びクラウドサービス提供部403が形成される。動作制御部400はサーバ4の全体の動作を制御する。動作制御部400は、所定のシーケンスに従い、登録処理部401、ネットワーク解析部402、及びクラウドサービス提供部403に各種の処理の実行を指示する。
【0066】
登録処理部401は、通信ポート44を介して受信したパケットから検出データまたは管理データを取り出す。登録処理部401は、検出データを検出値データベース431に登録し、管理データを管理データベース432に登録する。
【0067】
ネットワーク解析部402は、管理データベース432に基づいて、ネットワークの解析処理を実行する。ネットワーク解析部402は、管理データベース432からアドホックネットワークNWの構成を解析し、例えば通信経路の障害の復旧及び回避の予測を行う。
【0068】
クラウドサービス提供部403は、通信ポート44から受信したユーザの要求に応じ、検出値データベース431に基づく所定のクラウドサービスを提供する。
【0069】
図6は、子ノードNcの一例を示す構成図である。子ノードNcは、CPU10、ROM11、RAM12、フラッシュメモリ13、及び無線通信モジュール14,15を有する。CPU10は、互いに信号の入出力ができるように、ROM11、RAM12、フラッシュメモリ13、及び無線通信モジュール14,15と、バス19を介して接続されている。なお、CPU10はコンピュータの一例であり、CPU10に代えて、他のプロセッサが用いられてもよい。
【0070】
ROM11は、CPU10を駆動するプログラムが格納されている。プログラムには、通信方法を実行する通信プログラムが含まれている。RAM12は、CPU10のワーキングメモリとして機能する。フラッシュメモリ13には、設定テーブル130と、通信経路テーブル131と、パケットバッファ132と、収集データテーブル133と、状態データテーブル134とが保持されている。
【0071】
無線通信モジュール14は、例えばBLEに従ってセンサNsと無線通信する。また、無線通信モジュール15は、例えばWi−SUNやZigBeeに従って隣接ノードNp,Ncと無線通信する。なお、無線通信モジュール14,15は、例えばアンテナや通信処理回路などのハードウェアから構成される。
【0072】
CPU10は、ROM11からプログラムを読み込むと、機能として、動作制御部100、通信経路探索部101、パケット転送処理部102、通信状態検出部103、ノード状態検出部104、管理データ送信部105、通信状態収集部106、ノード状態収集部107、経路冗長度判定部108、及び送信量制御部109とが形成される。なお、動作制御部100、通信経路探索部101、パケット転送処理部102、通信状態検出部103、ノード状態検出部104、管理データ送信部105、通信状態収集部106、ノード状態収集部107、経路冗長度判定部108、及び送信量制御部109はFPGAやASICなどの回路により構成されてもよい。
【0073】
動作制御部100は、子ノードNcの全体の動作を制御する。動作制御部100は、所定のシーケンスに従い、通信経路探索部101、パケット転送処理部102、通信状態検出部103、ノード状態検出部104、管理データ送信部105、通信状態収集部106、ノード状態収集部107、経路冗長度判定部108、及び送信量制御部109に各種の処理の実行を指示する。
【0074】
また、動作制御部100は、設定テーブル130に基づいて通信経路探索部101、パケット転送処理部102、通信状態検出部103、ノード状態検出部104、管理データ送信部105、通信状態収集部106、ノード状態収集部107、経路冗長度判定部108、及び送信量制御部109に各種のパラメータを設定する。
【0075】
設定テーブル130には、例えば、管理データの送信量の制御に用いられる経路冗長度の閾値THや管理データの送信量の制御に関する上限数Nmax(正の整数)及び下限数Nmin(正の整数、Nmin<Nmax)などが登録されている。動作制御部100は、例えば起動時に設定テーブル130から閾値TH、上限数Nmax、及び下限数Nminを読み出して送信量制御部109に設定する。
【0076】
通信経路探索部101は、隣接ノードNp,Ncと制御情報を交換することにより、親ノードNpまでの通信経路を探索する。通信経路探索部101は、制御情報から障害の発生を検出すると、障害箇所のリンクを迂回する通信経路を探索する。通信経路探索部101は、探索した通信経路を通信経路テーブル131に登録する。
【0077】
パケット転送処理部102は、通信経路テーブル131を参照することにより、パケットを最適な通信経路に沿って隣接ノードNp,Ncに転送する。より具体的には、パケット転送処理部102は、無線通信モジュール14,15から転送対象のパケットを取得してパケットバッファ132に一時的に格納し、転送経路に従った次ホップの隣接ノードNp,Ncを検出する。パケット転送処理部102は、隣接ノードNp,Ncへのパケットの転送を無線通信モジュール15に指示する。
【0078】
通信状態検出部103は、例えば周期的に隣接ノードNp,Ncごとの通信状態を検出する。より具体的には、通信状態検出部103は、無線通信モジュール15から隣接ノードNp,Ncごとの通信状態に関するデータを取得する。通信状態に関するデータとしては、RSSI、送信エラー率、及び応答時間が挙げられるが、これに限定されない。なお、無線通信モジュール15は、通信状態検出部103からの指示に応じて、RSSI、送信エラー率、及び応答時間などを測定する。
【0079】
ノード状態検出部104は、例えば周期的に子ノードNc(自装置)の状態を検出する。より具体的には、ノード状態検出部104は、子ノードNcの移動状態及び負荷状態を検出する。なお、子ノードNcの状態としては、移動状態及び負荷状態に限られず、例えばバッテリ残量などが含まれてもよく、また、移動状態及び負荷状態の一方だけが含まれてもよい。
【0080】
ノード状態検出部104は、移動状態として、子ノードNcが移動中または静止中の何れであるのかを検出する。移動状態の検出手段としては、例えば、加速度センサの検出値やRSSIの変化値に基づく検出手段が挙げられるが、これに限定されない。
【0081】
また、ノード状態検出部104は、負荷状態として、子ノードNcが過負荷または通常の何れであるのかを検出する。負荷状態の検出手段としては、例えば、CPU10のロードアベレージや利用率などに基づく検出手段が挙げられるが、これに限定されない。
【0082】
このように、ノード状態検出部104は、検出部の一例として、子ノードNcの負荷状態及び移動状態の少なくとも一方を検出する。
【0083】
ノード状態検出部104は、移動状態及び負荷状態を状態データテーブル134に登録する。また、通信状態検出部103は、通信状態を状態データテーブル134に登録する。
【0084】
図7は、状態データテーブル134の一例を示す図である。状態データテーブル134には、通信状態及びノード状態が登録されている。通信状態には、RSSI、送信エラー率、及び応答時間が含まれており、ノード状態には、経路冗長度、移動状態、及び負荷状態が含まれている。ノード状態のうち、経路冗長度は、経路冗長度判定部108により登録される。
【0085】
再び
図6を参照すると、管理データ送信部105は、送信部の一例であり、親ノードNpを宛先として管理データを送信する。
【0086】
より具体的には、管理データ送信部105は、例えば周期的に、収集データテーブル133から隣接ノードNp,Ncの通信状態の情報を取得し、状態データテーブル134から自装置のノード状態の情報を取得する。管理データ送信部105は、自装置のノード状態の情報と隣接ノードNp,Ncの通信状態の情報とから、
図2に示される管理データを収容したパケットを生成する。すなわち、管理データには、自装置のノード状態の情報と隣接ノードNp,Ncの通信状態の情報とが含まれる。
【0087】
管理データ送信部105は、管理データを収容したパケットを、無線通信モジュール15を介して送信する。このとき、管理データ送信部105は、通信経路テーブル131を参照することにより、パケットを最適な通信経路に沿って隣接ノードNp,Ncに送信する。
【0088】
また、管理データ送信部105は、送信量制御部109により管理データの送信量が制御される。管理データ送信部105は、隣接ノードNp,Ncの通信状態の情報に基づいて、通信状態が良好な隣接ノードNp,Ncに関する管理データを優先して送信する。このため、管理データ送信部105は、サーバ4が、より安定な通信経路を探索するために有用な管理データを送信することができる。
【0089】
通信状態収集部106は、第1収集部の一例であり、各隣接ノードNp,Ncの通信状態の情報を収集する。より具体的には、通信状態収集部106は、各隣接ノードNp,Ncから、一例としてRSSI、送信エラー率、及び応答時間を通知するパケットを、無線通信モジュール15を介して受信する。RSSI、送信エラー率、及び応答時間は、各隣接ノードNp,Ncの通信状態に関する第1データの一例である。なお、通信状態収集部106が収集する通信状態の情報は、RSSI、送信エラー率、及び応答時間に限定されない。
【0090】
また、通信状態収集部106は、例えば周期的に状態データテーブル134から自装置の通信状態の情報を読み出してパケットに収容し、無線通信モジュール15を介して各隣接ノードNp,Ncに送信する。
【0091】
このように、通信状態収集部106は、各隣接ノードNp,Ncと通信状態の情報を交換する。なお、通信状態の情報の交換には、例えば経路探索に用いられるHELLOメッセージの送受信処理が利用されてもよい。
【0092】
ノード状態収集部107は、第2収集部の一例であり、隣接ノードNp,Ncのノード状態の情報を収集する。より具体的には、ノード状態収集部107は、一例として、負荷状態、移動状態、及び経路冗長度を通知するパケットを、無線通信モジュール15を介して受信する。なお、隣接ノードNp,Ncの負荷状態、移動状態、及び経路冗長度は、第3データの一例であり、隣接ノードNp,Ncの経路冗長度は通信経路の状態の一例である。また、ノード状態収集部107が収集するノード状態の情報は、負荷状態、移動状態、及び経路冗長度に限定されず、また、負荷状態、移動状態、及び経路冗長度の少なくとも1つであってもよい。
【0093】
また、ノード状態収集部107は、例えば周期的に状態データテーブル134から自装置のノード状態の情報を読み出してパケットに収容し、無線通信モジュール15を介して各隣接ノードNp,Ncに送信する。
【0094】
このように、ノード状態収集部107は、各隣接ノードNp,Ncとノード状態の情報を交換する。
【0095】
通信状態収集部106及びノード状態収集部107は、収集した情報を収集データテーブル133に登録する。通信状態収集部106及びノード状態収集部107は、周期的に隣接ノードNp,Ncから情報を収集して収集データテーブル133を更新する。
【0096】
図8は、収集データテーブル133の一例を示す図である。収集データテーブル133には、隣接ノードID、通信状態、及びノード状態が登録されている。
【0097】
隣接ノードIDは、隣接ノードNp,Ncの識別子であり、例えばMACアドレスが挙げられる。例えば無線通信モジュール15は、隣接ノードNp,Ncを検出したとき、その隣接ノードIDを検出し、通信状態収集部106及びノード状態収集部107に通知する。通信状態収集部106及びノード状態収集部107は、通知された隣接ノードIDごとに情報を収集する。
【0098】
通信状態には、RSSI、送信エラー率、及び応答時間が含まれており、ノード状態には、経路冗長度、移動状態、及び負荷状態が含まれている。通信状態の情報は、管理データ送信部105により管理データの一部として親ノードNpに送信されるが、その送信量は送信量制御部109により制御される。
【0099】
再び
図6を参照すると、経路冗長度判定部108は、判定部の一例であり、各隣接ノードNp,Ncの通信状態及びノード状態の情報に基づき、通信品質が所定の基準を満たす通信経路を提供可能な隣接ノードNp,Ncの数、つまり経路冗長度を判定する。ここで、経路冗長度判定部108は、各隣接ノードNp,Ncの通信状態の情報のみに基づいて経路冗長度を判定してもよいが、上記のように各隣接ノードNp,Ncの通信状態及びノード状態の情報に基づき判定を行うことにより、経路冗長度を高精度に判定することができる。なお、経路冗長度の判定処理の詳細は後述する。
【0100】
送信量制御部109は、制御部の一例であり、管理データ送信部105の管理データの送信量を経路冗長度に応じて制御する。このため、子ノードNcは、管理データの送信量を隣接ノードNp,Ncごとの通信経路の安定性に応じて抑えることができるので、例えば通信経路の切断のリスクが高いほど、多くの管理データを送信することができる。
【0101】
したがって、サーバ4は、管理データからアドホックネットワークNWの構成を解析し、例えば通信経路の障害の復旧及び回避の予測を行うことができる。よって、子ノードNcは、管理データの送信量を、データの有用性が損なわれることなく低減することができる。
【0102】
より具体的には、送信量制御部109は、経路冗長度が所定の閾値TH以上である場合、管理データ送信部105の管理データの送信量を、経路冗長度が所定の閾値THより小さい場合より減らす。このため、子ノードNcは、管理データの送信量を隣接ノードNp,Ncごとの通信経路の安定性に応じて抑えることができるので、通信経路の切断のリスクが高いほど、多くの管理データを送信することができる。
【0103】
また、送信量制御部109は、
図2を参照して述べたように、管理データのうち、各隣接ノードNp,Ncの通信状態の情報の送信量を経路冗長度に応じて制御するため、管理データの送信量を効果的に低減することができる。ここで、管理データには、各隣接ノードNp,Ncの経路冗長度が含まれているため、管理データの有用性が高められる。
【0104】
また、送信量制御部109は、通信状態の情報が管理データ送信部105の送信対象となる隣接ノードNp,Ncの最大数を、経路冗長度判定部108が判定した経路冗長度に応じて決定することにより、管理データの送信量を制御する。このため、送信量制御部109は、ノード単位で管理データの送信量を制御することができる。
【0105】
図9は、親ノードNpの一例を示す構成図である。
図9において、
図6と共通する構成には同一の符号を付し、その説明は省略する。
【0106】
親ノードNpは、CPU10、ROM11、RAM12、フラッシュメモリ13、通信ポート16、及び無線通信モジュール14,15を有する。CPU10は、互いに信号の入出力ができるように、ROM11、RAM12、フラッシュメモリ13、通信ポート16、及び無線通信モジュール14,15と、バス19を介して接続されている。
【0107】
通信ポート16は、例えばUSBコントローラであり、ゲートウェイ3との通信を処理する。なお、通信ポート16は、例えばFPGAやASICなどのハードウェアから構成される回路である。
【0108】
CPU10は、ROM11からプログラムを読み込むと、機能として、動作制御部100、通信経路探索部101、パケット転送処理部102a、通信状態検出部103、ノード状態検出部104、管理データ送信部105a、通信状態収集部106、ノード状態収集部107、経路冗長度判定部108、及び送信量制御部109とが形成される。
【0109】
動作制御部100は、親ノードNpの全体の動作を制御する。動作制御部100は、所定のシーケンスに従い、通信経路探索部101、パケット転送処理部102a、通信状態検出部103、ノード状態検出部104、管理データ送信部105a、通信状態収集部106、ノード状態収集部107、経路冗長度判定部108、及び送信量制御部109に各種の処理の実行を指示する。
【0110】
管理データ送信部105aは、状態データテーブル134のノード状態の情報と収集データテーブル133の通信状態の情報から管理データを収容するパケットを生成し、通信ポート16を介しゲートウェイ3に送信する。また、管理データ送信部105aは、子ノードNcの管理データ送信部105と同様に、送信量制御部109により親ノードNpの管理データの送信量が制御される。
【0111】
パケット転送処理部102aは、子ノードNcのパケット転送処理部102とは異なり、検出データまたは管理データを収容したパケットを隣接ノードNp,Ncから受信した場合、そのパケットをパケットバッファ132に一時的に格納した後、通信ポート16に出力する。これにより、検出データ及び管理データがゲートウェイ3経由でサーバ4に中継される。
【0112】
このように、親ノードNpは、各子ノードNcから管理データを収集し、自装置の管理データとともにゲートウェイ3経由でサーバ4に送信する。このため、サーバ4は、アドホックネットワークNWの全体的な構成を解析することができる。これに対し、各子ノードNcは、処理能力がサーバ4より劣るため、隣接ノードNp,Ncの通信状態から近傍の通信経路の切断リスクを判断することができても、アドホックネットワークNWの全体的な構成を解析することができない。
【0113】
次に子ノードNcの動作について述べる。
【0114】
図10は、子ノードNcの動作の一例を示すシーケンス図である。本例において、子ノード(#i〜#k)Nc(i,j,k:正の整数)は、互いに隣接関係にある。各子ノードNcの動作制御部100は、符号Saで示される処理S1〜S5の周期が、符号Sbで示される処理S6,S7の周期より短くなるように、各処理S1〜S5の実行を指示する。なお、本シーケンスは、通信方法及び通信プログラムの動作例を示す。
【0115】
ノード状態検出部104は、自装置のノード状態(移動状態及び負荷状態)を検出して(処理S1)、状態データテーブル134に登録する。次に、通信状態検出部103は、自装置の通信状態(RSSI、送信エラー率、及び応答時間)を検出して(処理S2)、状態データテーブル134に登録する。
【0116】
次に、通信状態収集部106は、各隣接ノードNcから通信状態の情報(RSSI、送信エラー率、及び応答時間)を、HELLOメッセージなどを用いて収集して(処理S3)、収集データテーブル133に登録する。このとき、隣接関係にある子ノード(#i〜#k)Ncの間で通信状態の情報の交換が行われる。なお、収集データテーブル133には、最新の通信状態の情報だけが登録されているが、過去の複数回分の通信状態の情報が登録されてもよい。
【0117】
次に、ノード状態収集部107は、各隣接ノードNcからノード状態の情報(経路冗長度、移動状態、及び負荷状態)を収集
し(処理S4)、収集データテーブル133に登録する。このとき、隣接関係にある子ノード(#i〜#k)Ncの間でノード状態の情報の交換が行われる。なお、収集データテーブル133には、最新のノード状態の情報だけが登録されているが、過去の複数回分のノード状態の情報が登録されてもよい。
【0118】
次に、経路冗長度判定部108は、状態データテーブル134のノード状態と収集データテーブル133の通信状態とに基づいて経路冗長度を判定する(処理S5)。
【0119】
図11は、経路冗長度の判定処理の一例を示すフローチャートである。経路冗長度判定部108は、経路冗長度を0に初期化する(ステップSt1)。次に、経路冗長度判定部108は、無線通信モジュール15において検出された隣接ノードIDの1つを選択する(ステップSt2)。以下のステップSt3〜St8では、選択中の隣接ノードIDに該当する隣接ノードNp,Ncの各種のデータについて判定が行われる。
【0120】
経路冗長度判定部108は、負荷状態が通常を示すか否かを判定する(ステップSt3)。経路冗長度判定部108は、負荷状態が過負荷を示す場合(ステップSt3のNo)、他の隣接ノードIDを選択する(ステップSt2)。その後、ステップSt3以降の各処理が実行される。
【0121】
経路冗長度判定部108は、負荷状態が通常を示す場合(ステップSt3のYes)、移動状態が静止中を示すか否かを判定する(ステップSt4)。経路冗長度判定部108は、移動状態が移動中を示す場合(ステップSt4のNo)、他の隣接ノードIDを選択する(ステップSt2)。その後、ステップSt3以降の各処理が実行される。
【0122】
経路冗長度判定部108は、移動状態が静止中を示す場合(ステップSt4のYes)、経路冗長度を所定値J(正の整数、例えば1)と比較する(ステップSt5)。経路冗長度判定部108は、経路冗長度が所定値Jより小さい場合(ステップSt5のNo)、他の隣接ノードIDを選択する(ステップSt2)。その後、ステップSt3以降の各処理が実行される。
【0123】
経路冗長度判定部108は、経路冗長度が所定値J以上である場合(ステップSt5のYes)、RSSIを所定値Kと比較する(ステップSt6)。経路冗長度判定部108は、RSSIが所定値Kより小さい場合(ステップSt6のNo)、他の隣接ノードIDを選択する(ステップSt2)。その後、ステップSt3以降の各処理が実行される。
【0124】
経路冗長度判定部108は、RSSIが所定値K以上である場合(ステップSt6のYes)、送信エラー率を所定値Lと比較する(ステップSt7)。経路冗長度判定部108は、送信エラー率が所定値Lより大きい場合(ステップSt7のNo)、他の隣接ノードIDを選択する(ステップSt2)。その後、ステップSt3以降の各処理が実行される。
【0125】
経路冗長度判定部108は、送信エラー率が所定値L以下である場合(ステップSt7のYes)、応答時間を所定値Mと比較する(ステップSt8)。経路冗長度判定部108は、応答時間が所定値Mより大きい場合(ステップSt8のNo)、他の隣接ノードIDを選択する(ステップSt2)。その後、ステップSt3以降の各処理が実行される。
【0126】
経路冗長度判定部108は、応答時間が所定値M以下である場合(ステップSt8のYes)、経路冗長度に1を加算する(ステップSt9)。
【0127】
次に、経路冗長度判定部108は、全ての隣接ノードIDを選択済みであるか否かを判定する(ステップSt10)。経路冗長度判定部108は、未選択の隣接ノードIDが存在する場合(ステップSt10のNo)、他の隣接ノードIDを選択する(ステップSt2)。その後、ステップSt3以降の各処理が実行される。
【0128】
経路冗長度判定部108は、全ての隣接ノードIDを選択済みである場合(ステップSt10のYes)、経路冗長度を状態データテーブル134に記録する(ステップSt11)。経路冗長度は、送信量制御部109により管理データの送信量の制御に用いられる。このようにして、経路冗長度の判定処理は実行される。なお、所定値J,K,L,Mは、例えば設定テーブル130に予め登録されている。
【0129】
このように、経路冗長度判定部108は、各隣接ノードNp,Ncの通信状態及びノード状態の情報に基づいて経路冗長度を判定する。より具体的には、経路冗長度判定部108は、隣接ノードNp,Ncごとに、通信状態及びノード状態の情報の全てのパラメータが通信品質の観点から良好である場合にのみ経路冗長度を上昇させる。このため、経路冗長度は、通信品質が所定の基準を満たす通信経路を提供可能な隣接ノードNp,Ncの数となる。
【0130】
再び
図10を参照すると、経路冗長度の判定処理の後、送信量制御部109は、管理データ送信部105の管理データの送信量を経路冗長度に応じて制御する(処理S6)。次に、管理データ送信部105は、送信量制御部109の制御に応じた送信量で管理データを親ノードNpに送信する(処理S7)。このようにして、子ノードNcは動作する。
【0131】
図12は、管理データの送信量の制御処理の一例を示すフローチャートである。本処理は、上記の処理S6に該当する。
【0132】
送信量制御部109は、状態データテーブル134の経路冗長度を閾値TH(本例では1)と比較する(ステップSt31)。送信量制御部109は、経路冗長度が閾値TH以上である場合(ステップSt31のYes)、管理データのうち、通信状態の情報が管理データ送信部105の送信対象となる隣接ノードNp,Ncの最大数を下限数Nmin(本例では2)に決定する(ステップSt32)。これにより、2つの隣接ノードNp,Nc分の通信状態の情報だけが送信対象となるため、管理データの送信量は減少する。
【0133】
また、送信量制御部109は、経路冗長度が閾値THより小さい場合(ステップSt31のNo)、管理データのうち、通信状態の情報が管理データ送信部105の送信対象となる隣接ノードNp,Ncの最大数(送信対象ノード数)を上限数Mmax(本例では5)に決定する(ステップSt33)。これにより、5つの隣接ノードNp,Nc分の通信状態の情報が送信対象となるため、管理データの送信量は増加する。
【0134】
このように、送信量制御部109は、管理データ送信部105の管理データの送信量を経路冗長度に応じて制御する。より具体的には、送信量制御部109は、経路冗長度が所定の閾値TH以上である場合、ステップSt32の処理において管理データの送信量を、経路冗長度が所定の閾値THより小さい場合より減らす。このため、子ノードNcは、管理データの送信量を隣接ノードNp,Ncごとの通信経路の安定性に応じて抑えることができるので、通信経路の切断のリスクが高いほど、多くの管理データを送信することができる。
【0135】
また、送信量制御部109は、送信対象ノード数を、経路冗長度判定部108が判定した経路冗長度に応じて下限数Nminまたは上限数Nmaxに決定することにより、管理データの送信量を制御する。このため、送信量制御部109は、ノード単位で管理データの送信量を制御することができる。なお、送信量制御部109は、経路冗長度に応じて送信量自体を決定してもよい。この場合、管理データ送信部105は、決定された送信量の範囲内で送信対象の通信状態の情報をノード単位で選択する。
【0136】
図13は、管理データの送信処理の一例を示すフローチャートである。管理データ送信部105は、収集データテーブル133の情報を、一例としてRSSIの順でソートする(ステップSt21)。次に、管理データ送信部105は、収集データテーブル133の情報に送信の優先度を割り当てる(ステップSt22)。
【0137】
次に、管理データ送信部105は、優先度に従い、送信対象ノード数分の通信状態の情報を選択して送信する(ステップSt23)。以下に、
図8の収集データテーブル133を例に挙げて送信対象の通信状態の情報の選択について説明する。
【0138】
図14は、送信対象の通信状態の情報の選択の一例を示す図である。管理データ送信部105は、収集データテーブル133の情報をRSSIの大きい順にソートする。なお、管理データ送信部105は、例えば応答時間の大きい順にソートしてもよく、さらに、RSSI、送信エラー率、及び応答時間のうち、2つ以上の情報に基づいてソートしてもよい。
【0139】
管理データ送信部105は、ソートされた情報に送信の優先度(1〜6)を順次に割り当てる。このため、RSSIが大きい情報ほど、高い優先度が割り当てられる。本例の場合、隣接ノードID「XX:XX:XX:05」の情報には最も高い優先度「1」が割り当てられ、隣接ノードID「XX:XX:XX:0A」の情報には最も低い優先度「6」が割り当てられる。
【0140】
管理データ送信部105は、送信対象ノード数が上限数Nmax(=5)である場合、一点鎖線で示されるように、優先度「1」〜「5」の通信状態の情報を選択して送信する。また、管理データ送信部105は、送信対象ノード数が下限数Nmin(=2)である場合、点線で示されるように、優先度「1」及び「2」の通信状態の情報を選択して送信する。このため、RSSIに基づき良好な通信状態の情報が優先的に親ノードNpに送信される。
【0141】
このように、管理データ送信部105は、通信状態の情報に基づいて、通信状態が良好な隣接ノードNp,Ncに関する管理データを優先して送信する。このため、管理データ送信部105は、サーバ4が、より安定な通信経路を探索するために有用な管理データを送信することができる。
【0142】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体(ただし、搬送波は除く)に記録しておくことができる。
【0143】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD(Digital Versatile Disc)、CD−ROM(Compact Disc Read Only Memory)などの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0144】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【0145】
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【0146】
なお、以上の説明に関して更に以下の付記を開示する。
(付記1) アドホックネットワーク内の1以上の隣接ノードの各々との通信状態に関する第1データを収集する第1収集部と、
前記アドホックネットワークの管理に用いられる第2データを送信する送信部と、
前記第1データに基づき、前記1以上の隣接ノードのうち、通信品質が所定の基準を満たす通信経路を提供可能なノードの数を判定する判定部と、
前記送信部の前記第2データの送信量を前記ノードの数に応じて制御する制御部とを有することを特徴とする通信装置。
(付記2) 前記制御部は、前記ノードの数が所定の閾値以上である場合、前記送信部の前記第2データの送信量を、前記ノードの数が前記所定の閾値より少ない場合より減らすことを特徴とする付記1に記載の通信装置。
(付記3) 前記送信部は、前記第1データに基づいて、前記1以上の隣接ノードのうち、通信状態が良好なノードに関する前記第2データを優先して送信することを特徴とする付記1または2に記載の通信装置。
(付記4) 前記第2データには、前記第1データが含まれ、
前記制御部は、前記1以上の隣接ノードのうち、前記第1データが前記送信部の送信対象となるノードの最大数を、前記判定部が判定した前記ノードの数に応じて決定することにより、前記第1データの送信量を制御することを特徴とする付記1乃至3の何れかに記載の通信装置。
(付記5) 前記通信装置の負荷状態及び移動状態の少なくとも一方を検出する検出部を有し、
前記第2データには、前記第1データと、前記検出部が検出した負荷状態及び移動状態の少なくとも一方の情報とが含まれ、
前記制御部は、前記第2データのうち、前記第1データの送信量を前記ノードの数に応じて制御することを特徴とする付記1乃至3の何れかに記載の通信装置。
(付記6) 前記第2データには、前記ノードの数がさらに含まれることを特徴とする付記5に記載の通信装置。
(付記7) 前記1以上の隣接ノードの負荷状態、移動状態、及び通信経路の状態の少なくとも1つに関する第3データを収集する第2収集部を有し、
前記判定部は、前記第1データ及び前記第3データに基づき、前記ノードの数を判定することを特徴とする付記1乃至6の何れかに記載の通信装置。
(付記8) 第1通信装置と、複数の第2通信装置とを有し、
前記複数の第2通信装置は、それぞれ、
アドホックネットワーク内の1以上の隣接ノードの各々との通信状態に関する第1データを収集する第1収集部と、
前記第1通信装置に対し、前記アドホックネットワークの管理に用いられる第2データを送信する送信部と、
前記第1データに基づき、前記1以上の隣接ノードのうち、通信品質が所定の基準を満たす通信経路を提供可能なノードの数を判定する判定部と、
前記送信部の前記第2データの送信量を前記ノードの数に応じて制御する制御部とを有することを特徴とする通信システム。
(付記9) 前記制御部は、前記ノードの数が所定の閾値以上である場合、前記送信部の前記第2データの送信量を、前記ノードの数が前記所定の閾値より少ない場合より減らすことを特徴とする付記8に記載の通信システム。
(付記10) 前記送信部は、前記第1データに基づいて、前記1以上の隣接ノードのうち、通信状態が良好なノードに関する前記第2データを優先して送信することを特徴とする付記8または9に記載の通信システム。
(付記11) 前記第2データには、前記第1データが含まれ、
前記制御部は、前記1以上の隣接ノードのうち、前記第1データが前記送信部の送信対象となるノードの最大数を、前記判定部が判定した前記ノードの数に応じて決定することにより、前記第1データの送信量を制御することを特徴とする付記8乃至10の何れかに記載の通信システム。
(付記12) 前記複数の第2通信装置のうち、自装置の負荷状態及び移動状態の少なくとも一方を検出する検出部を有し、
前記第2データには、前記第1データと、前記検出部が検出した負荷状態及び移動状態の少なくとも一方の情報とが含まれ、
前記制御部は、前記第2データのうち、前記第1データの送信量を前記ノードの数に応じて制御することを特徴とする付記8乃至11の何れかに記載の通信システム。
(付記13) 前記第2データには、前記ノードの数がさらに含まれることを特徴とする付記12に記載の通信システム。
(付記14) 前記1以上の隣接ノードの負荷状態、移動状態、及び通信経路の状態の少なくとも1つに関する第3データを収集する第2収集部を有し、
前記判定部は、前記第1データ及び前記第3データに基づき、前記ノードの数を判定することを特徴とする付記8乃至13の何れかに記載の通信システム。
(付記15) アドホックネットワーク内の1以上の隣接ノードの各々との通信状態に関する第1データを収集する工程と、
前記アドホックネットワークの管理に用いられる第2データを送信する工程と、
前記第1データに基づき、前記1以上の隣接ノードのうち、通信品質が所定の基準を満たす通信経路を提供可能なノードの数を判定する工程と、
前記第2データの送信量を前記ノードの数に応じて制御する工程とを、コンピュータが実行することを特徴とする通信方法。
(付記16) 前記第2データの送信量を制御する工程において、前記ノードの数が所定の閾値以上である場合、前記第2データの送信量を、前記ノードの数が前記所定の閾値より少ない場合より減らすことを特徴とする付記15に記載の通信方法。
(付記17) 前記第2データを送信する工程において、前記第1データに基づいて、前記1以上の隣接ノードのうち、通信状態が良好なノードに関する前記第2データを優先して送信することを特徴とする付記15または16に記載の通信方法。
(付記18) 前記第2データには、前記第1データが含まれ、
前記第2データの送信量を制御する工程において、前記1以上の隣接ノードのうち、前記第1データの送信対象となるノードの最大数を、前記判定した前記ノードの数に応じて決定することにより、前記第1データの送信量を制御することを特徴とする付記15乃至17の何れかに記載の通信方法。
(付記19) アドホックネットワーク内の1以上の隣接ノードの各々との通信状態に関する第1データを収集し、
前記アドホックネットワークの管理に用いられる第2データを送信し、
前記第1データに基づき、前記1以上の隣接ノードのうち、通信品質が所定の基準を満たす通信経路を提供可能なノードの数を判定し、
前記第2データの送信量を前記ノードの数に応じて制御する、処理をコンピュータに実行させることを特徴とする通信プログラム。
(付記20) アドホックネットワーク内の1以上の隣接ノードの各々との通信状態に関する第1データを収集し、
前記アドホックネットワークの管理に用いられる第2データを送信し、
前記第1データに基づき、前記1以上の隣接ノードのうち、通信品質が所定の基準を満たす通信経路を提供可能なノードの数を判定し、
前記第2データの送信量を前記ノードの数に応じて制御する、プロセッサを有することを特徴とする通信装置。