(57)【特許請求の範囲】
【請求項１】
通信装置が、
宛先に応じてデータの転送先の候補として複数の他の通信装置を示す情報が記憶されている場合、前記複数の他の通信装置のそれぞれが記憶する、データの転送制御に用いられるルーティングテーブルにおける、所定時間以上参照されていないグローバル宛先を除外したグローバル宛先の宛先数が最も少ない他の通信装置を、前記転送先として、前記候補の中から選択し、
前記宛先数が最も少ない他の通信装置が複数ある場合、前記宛先数と乱数とに基づいて、前記転送先とする他の通信装置を選択する、
ことを特徴とする転送先選択方法。
【請求項２】
通信装置が、
宛先に応じてデータの転送先の候補として複数の他の通信装置を示す情報が記憶されている場合、前記複数の他の通信装置のそれぞれが記憶する、データの転送制御に用いられるルーティングテーブルにおける、所定時間以上参照されていないグローバル宛先を除外したグローバル宛先の宛先数に基づくと共に、前記複数の他の通信装置に対応する装置種別情報に基づいて、前記候補の中から前記転送先とする何れかの他の通信装置を選択する、
ことを特徴とする転送先選択方法。
【請求項３】
前記通信装置が、
前記複数の他の通信装置から前記ルーティングテーブルの前記宛先数を示す情報を、確認信号データまたはゲートウェイから送信されるデータを用いて受信する、
ことを特徴とする請求項１または２記載の転送先選択方法。
【請求項４】
前記通信装置が、
前記宛先までに前記データが転送される回数に基づいて、前記候補の中からデータの転送先とする他の通信装置を選択する、
ことを特徴とする請求項２記載の転送先選択方法。
【請求項５】
通信装置に、
宛先に応じてデータの転送先の候補として複数の他の通信装置を示す情報が記憶されている場合、前記複数の他の通信装置のそれぞれが記憶する、データの転送制御に用いられるルーティングテーブルにおける、所定時間以上参照されていないグローバル宛先を除外したグローバル宛先の宛先数が最も少ない他の通信装置を、前記転送先として、前記候補の中から選択し、
前記宛先数が最も少ない他の通信装置が複数ある場合、前記宛先数と乱数とに基づいて、前記転送先とする他の通信装置を選択する、
処理を実行させることを特徴とする転送先選択プログラム。
【請求項６】
通信装置に、
宛先に応じてデータの転送先の候補として複数の他の通信装置を示す情報が記憶されている場合、前記複数の他の通信装置のそれぞれが記憶する、データの転送制御に用いられるルーティングテーブルにおける、所定時間以上参照されていないグローバル宛先を除外したグローバル宛先の宛先数に基づくと共に、前記複数の他の通信装置に対応する装置種別情報に基づいて、前記候補の中から前記転送先とする何れかの他の通信装置を選択する、
処理を実行させることを特徴とする転送先選択プログラム。
【請求項７】
通信装置であって、
宛先に応じてデータの転送先の候補として複数の他の通信装置を示す情報を記憶する記憶部と、
前記記憶部に前記他の通信装置を示す情報が記憶されている場合、前記複数の通信装置のそれぞれが記憶する、データの転送制御に用いられるルーティングテーブルにおける、所定時間以上参照されていないグローバル宛先を除外したグローバル宛先の宛先数が最も少ない他の通信装置を、前記転送先として、前記候補の中から選択し、前記宛先数が最も少ない他の通信装置が複数ある場合、前記宛先数と乱数とに基づいて、前記転送先とする他の通信装置を選択する選択部と、
を備えることを特徴とする通信装置。
【請求項８】
通信装置であって、
宛先に応じてデータの転送先の候補として複数の他の通信装置を示す情報を記憶する記憶部と、
前記記憶部に前記他の通信装置を示す情報が記憶されている場合、前記複数の通信装置のそれぞれが記憶する、データの転送制御に用いられるルーティングテーブルにおける、所定時間以上参照されていないグローバル宛先を除外したグローバル宛先の宛先数に基づくと共に、前記複数の他の通信装置に対応する装置種別情報に基づいて、前記候補の中から前記転送先とする何れかの他の通信装置を選択する選択部と、
を備えることを特徴とする通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、転送先選択方法、転送先選択プログラムおよび通信装置に関する。
【背景技術】
【０００２】
アドホックネットワークは、ネットワークに参加するノードが自律的に通信経路を形成し、隣接するノード間でデータの転送が行われる。これにより、データを送信した送信元のノードから宛先のノードまでデータが転送される。
【０００３】
関連する技術として、経路情報テーブルに登録のない装置からフレームを受信したときに、そのフレームの転送元と送信元を登録テーブルに登録して、経路情報として使用する技術が提案されている（例えば、特許文献１を参照）。
【０００４】
また、ゲートウェイを頂点とするツリー構造の上流側に位置する集約部分に対するトラフィック負荷を分散する技術が提案されている（例えば、特許文献２を参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２０１２／１３３５２１号
【特許文献２】国際公開第２０１３／１２９６７１号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したように、アドホックネットワークでは、自律的に通信経路が形成される。アドホックネットワークのネットワーク構成や通信状況によっては、特定のノードに通信負荷が集中する可能性がある。
【０００７】
１つの側面として、本発明は、ネットワークにおける通信負荷の分散を図ることを目的とする。
【課題を解決するための手段】
【０００８】
１つの態様では、転送先選択方法は、通信装置が、宛先に応じてデータの転送先の候補として複数の他の通信装置を示す情報が記憶されている場合、前記複数の他の通信装置のそれぞれが記憶する、データの転送制御に用いられるルーティングテーブルにおける、所定時間以上参照されていないグローバル宛先を除外したグローバル宛先の宛先数が最も少ない他の通信装置を、前記転送先として、前記候補の中から選択し、前記宛先数が最も少ない他の通信装置が複数ある場合、前記宛先数と乱数とに基づいて、前記転送先とする他の通信装置を選択する。
【発明の効果】
【０００９】
１つの側面によれば、ネットワークにおける通信負荷の分散を図ることができる。
【図面の簡単な説明】
【００１０】
【図１】実施形態のアドホックネットワークの一例を示す図である。
【図２】ノードの一例を示す図である。
【図３】実施形態のアドホックネットワークおよびルーティングテーブルの一例を示す図（その１）である。
【図４】実施形態のアドホックネットワークおよびルーティングテーブルの一例を示す図（その２）である。
【図５】実施形態のアドホックネットワークおよびルーティングテーブルの一例を示す図（その３）である。
【図６】利用数の通知の一例を示す図（その１）である。
【図７】利用数の通知の一例を示す図（その２）である。
【図８】実施形態のアドホックネットワークおよびルーティングテーブルの一例を示す図（その４）である。
【図９】データフレームの一例を示す図である。
【図１０】実施形態のアドホックネットワークおよびルーティングテーブルの一例を示す図（その５）である。
【図１１】実施形態の処理の流れの一例を示すフローチャート（その１）である。
【図１２】実施形態の処理の流れの一例を示すフローチャート（その２）である。
【図１３】実施形態の処理の流れの一例を示すフローチャート（その３）である。
【図１４】変形例のアドホックネットワークおよびルーティングテーブルの一例を示す図（その１）である。
【図１５】変形例のアドホックネットワークおよびルーティングテーブルの一例を示す図（その２）である。
【図１６】変形例のアドホックネットワークおよびルーティングテーブルの一例を示す図（その３）である。
【図１７】変形例の処理の流れの一例を示すフローチャートである。
【図１８】ノードのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１１】
＜実施形態のアドホックネットワークの一例＞
図１は、実施形態のアドホックネットワーク１の一例を示す。アドホックネットワーク１は、図１の例には限定されない。図１のアドホックネットワーク１には、ゲートウェイＧＷおよびセンサノードＮ０〜Ｎ８が参加している。センサノードＮ０〜Ｎ８を総称して、センサノードＮと称することもある。
【００１２】
センサノードＮは、例えば電力や気温等を測定し、測定値を送信するノードである。実施形態では、各センサノードＮは、測定値をゲートウェイＧＷに送信するものとする。アドホックネットワーク１には、センサノードＮ以外のノードが参加することがある。
【００１３】
例えば、データ転送の中継用のノード（以下、中継ノードＲと称する）がアドホックネットワーク１に参加してもよい。また、センサノードＮおよび中継ノードＲ以外の任意のノードがアドホックネットワーク１に参加してもよい。アドホックネットワーク１に中継ノードＲが参加する例を後述する。
【００１４】
以下、センサノードＮおよび中継ノードＲを総称してノードと称することもある。ノードは、通信装置の一例である。また、あるノードに隣接するノードは、他の通信装置の一例である。
【００１５】
センサノードＮは、該センサノードＮと隣接するセンサノードＮ（以下、隣接センサノードＮと称する）と通信を行う。相互に隣接する２つのセンサノードＮの間で行われる通信は、無線通信であってもよいし、有線通信であってもよい。
【００１６】
図１の例では、センサノードＮの数は９個の例を示しているが、センサノードＮの数は任意の数であってよい。例えば、アドホックネットワーク１は、１０００個以上のノードを含んでいてもよい。
【００１７】
図１の例において、各センサノードＮの近傍には「距離」が表記されている。各センサノードＮの距離は、ゲートウェイＧＷを起点としてセンサノードＮに至るまでのノード数を表す。例えば、センサノードＮ１はゲートウェイＧＷに隣接しているため、距離は「１」になる。
【００１８】
また、センサノードＮ３とゲートウェイＧＷとの通信経路には、センサノードＮ０またはセンサノードＮ１があるため、距離は「２」になる。
【００１９】
例えば、センサノードＮ０とセンサノードＮ３との間に別のセンサノードＮがある場合には、センサノードＮ０を経由する通信経路におけるセンサノードＮ３の距離は「３」になる。また、センサノードＮ１を経由する通信経路におけるセンサノードＮ３の距離は「２」になる。
【００２０】
各センサノードＮの距離から「１」を減じた数は、データが転送される回数（転送回数）を示す。例えば、センサノードＮ５からゲートウェイＧＷまでデータが転送される場合、センサノードＮ３およびセンサノードＮ１（またはセンサノードＮ０）がデータ転送を行うため、転送回数は２回になる。
【００２１】
ゲートウェイＧＷは、例えば、ゲートウェイ広告を各センサノードＮにブロードキャストする。ゲートウェイ広告は、ゲートウェイＧＷが、自身の存在をアドホックネットワーク１に参加する各ノードに通知するためのデータである。なお、ゲートウェイＧＷは、ゲートウェイ広告の通知範囲を限定したゲートウェイ広告を送信してもよい。
【００２２】
各センサノードＮは、ゲートウェイ広告を受信したときに、距離の情報をルーティングテーブルに記憶する。ルーティングテーブルは、データの転送制御に用いられるテーブルである。ルーティングテーブルは、経路情報テーブルとも称される。
【００２３】
＜各ノードの一例＞
図２は、ノードの一例を示している。ノードは、通信部１１と処理部１２と記憶部１３と乱数発生部１４と選択部１５と時計部１６とを含む。ノードは、センサノードＮであってもよいし、中継ノードＲであってもよい。
【００２４】
センサノードＮおよび中継ノードＲは、図２の各部以外の機能を含んでもよい。例えば、センサノードＮは、電力や気温等を測定するセンサを内蔵してもよい。
【００２５】
通信部１１は、隣接センサノードＮと通信を行う。例えば、センサノードＮが無線通信を行う場合、センサノードＮの通信部１１は隣接センサノードＮの通信部１１と直接的に通信を行う。このため、センサノードＮと隣接センサノードＮとは、相互に電波が届く範囲内に設置される。
【００２６】
処理部１２は、通信部１１が受信したデータに基づいて所定の処理を行う。記憶部１３は、ルーティングテーブルと時間閾値とを記憶する。時間閾値は、時計部１６が示す時間を比較するときに基準となる閾値である。記憶部１３は、ルーティングテーブル以外の情報を記憶してもよい。乱数発生部１４は、乱数を発生させる。
【００２７】
選択部１５は、通信部１１が受信したデータの宛先に応じて、データの転送先のセンサノードＮを選択する。選択部１５は、記憶部１３に記憶されているルーティングテーブルを参照して、データの転送先を選択する。
【００２８】
アドホックネットワーク１において、データの宛先は、データの最終的な目的地のノードを示す。データの転送先は、あるノードが次にデータを転送する先のノードを示す。従って、データの転送先は、あるノードを主体としたときに、該ノードに隣接するノードになる。
【００２９】
以下、データの宛先はゲートウェイＧＷであるものとする。ただし、データの宛先は任意のセンサノードＮであってもよい。あるセンサノードＮからゲートウェイＧＷまでの通信経路は１つの場合もあり、複数の場合もある。
【００３０】
宛先であるゲートウェイＧＷまでの通信経路が複数の場合、センサノードＮがデータを転送する転送先のセンサノードＮ（隣接センサノードＮ）の候補は複数ある。選択部１５は、データの転送先の候補が複数ある場合、複数の候補の中から１つのセンサノードＮを選択する。時計部１６は、現在の時刻（現時刻）を示す。
【００３１】
＜ノードの利用数の一例＞
次に、ノードの利用数について、図３を参照して説明する。図３は、図１で示したアドホックネットワーク１およびアドホックネットワーク１に参加しているセンサノードＮ２のルーティングテーブルの一例を示している。
【００３２】
各センサノードＮは、隣接センサノードＮとデータ通信を行う。各センサノードＮは、隣接センサノードＮから受信したデータに含まれる情報に基づいて、ルーティングテーブルの更新を行うことがある。例えば、センサノードＮ２がセンサノードＮ１からデータを受信した場合、センサノードＮ２は、受信したデータに含まれる情報に基づいて、ルーティングテーブルを更新する場合がある。
【００３３】
図３以降の各センサノードＮのルーティングテーブルは、次の６つのデータ通信が行われたことにより更新されたルーティングテーブルであるものとする。
１）センサノードＮ６からゲートウェイＧＷに対するデータ通信
２）センサノードＮ７からゲートウェイＧＷに対するデータ通信
３）センサノードＮ８からゲートウェイＧＷに対するデータ通信
４）ゲートウェイＧＷからセンサノードＮ６に対するデータ通信
５）ゲートウェイＧＷからセンサノードＮ７に対するデータ通信
６）ゲートウェイＧＷからセンサノードＮ８に対するデータ通信
図３の例に示されるように、ルーティングテーブルは、ＧＤ（グローバル宛先）とＬＤ（ローカル宛先）と距離と利用時刻と装置種別と利用数との項目を含む。ルーティングテーブルは、他の情報の項目を含んでもよい。
【００３４】
グローバル宛先（Global Destination(GD)）は、データの宛先のセンサノードＮのアドレスを示す。ルーティングテーブルに登録されているＧＤをエントリと称することもある。ルーティングテーブルに登録されているＧＤの数（エントリ数）は、宛先数の一例である。
【００３５】
上述したように、センサノードＮ７とゲートウェイＧＷとの間、およびセンサノードＮ８とゲートウェイＧＷとの間でデータ通信が行われている。図３の例では、センサノードＮ２のルーティングテーブルのＧＤは、ゲートウェイＧＷとセンサノードＮ７とセンサノードＮ８とを示している。
【００３６】
ローカル宛先（Local Destination(LD)）は、ＧＤにデータを転送する通信経路のうち、転送先のセンサノードＮのアドレスを示す。図３の例のルーティングテーブルでは、ＧＤがゲートウェイＧＷのエントリのＬＤはセンサノードＮ１であることを示している。
【００３７】
ルーティングテーブルの距離は、上述した距離である。センサノードＮ２の場合、ＧＤであるゲートウェイＧＷまでの距離は「２」である。この場合、センサノードＮ２からゲートウェイＧＷまでのデータの転送回数は「１」になる。
【００３８】
利用時刻は、エントリごとに、最後に参照された時刻を表す。センサノードＮの選択部１５は、ルーティングテーブルを参照して、データの転送制御を行う。例えば、センサノードＮ２がゲートウェイＧＷにデータの転送を行う場合、センサノードＮ２の選択部１５は、ルーティングテーブルのうち、ＧＤがゲートウェイＧＷのエントリを参照する。
【００３９】
選択部１５がエントリを参照したとき、選択部１５は、時計部１６が示す現時刻を、ルーティングテーブルのうち参照されたエントリに対応する利用時刻に登録する。これにより、ルーティングテーブルのエントリに参照された時刻が登録される。
【００４０】
図３の例では、センサノードＮ２のルーティングテーブルのうち、ＧＤがゲートウェイＧＷであるエントリの利用時刻は「１４：３０」であることを示している。従って、選択部１５が、該エントリを最後に参照した時刻は「１４：３０」である。
【００４１】
装置種別は、ＬＤが示すノードの種類を表す情報（装置種別情報）である。装置種別情報は、デバイスアドレスとも称される。
【００４２】
例えば、ノードは、センサノードＮである場合と、中継ノードＲである場合とがある。この場合、センサノードＮと中継ノードＲとでは、装置種別が異なる。センサノードＮは、電力や気温等を測定した値を送信する通信装置であり、通信を行うための中継ノードＲよりも、通信の処理能力が低いことが多い。
【００４３】
実施形態では、センサノードＮの装置種別を「１」とし、中継ノードＲの装置種別を「２」とする。装置種別は３種類以上であってもよい。例えば、中継ノードが複数種類ある場合、通信の処理能力に応じて、複数種類の中継ノードのそれぞれの装置種別情報を異ならせてもよい。
【００４４】
例えば、各センサノードＮは、隣接センサノードＮと相互に通信することで、隣接センサノードＮの装置種別を認識して、ルーティングテーブルに隣接センサノードＮの装置種別を登録してもよい。また、隣接センサノードＮの装置種別が既知の場合、各センサノードＮのルーティングテーブルに予め隣接センサノードＮの装置種別が登録されていてもよい。
【００４５】
次に、利用数について説明する。利用数は、センサノードＮのルーティングテーブルのうち、所定時間以上参照されていないエントリを除外したエントリ数（宛先数）である。所定時間は、記憶部１３が記憶する時間閾値である。以下、所定時間（時間閾値）は３時間であるものとする。
【００４６】
実施形態では、利用数は、センサノードＮの選択部１５がデータの転送先を選択するために用いられる。図３の例において、例えば、時計部１６が示す時刻（現時刻）が「１５：００」であるとする。この場合、ルーティングテーブルのうち、利用時刻が「１２：００」より前のエントリ（ＧＤ）は、所定時間以上参照されていない。
【００４７】
所定時間以上参照されていないエントリは除外対象になる。一方、ルーティングテーブルのうち、利用時刻が「１２：００」以降のエントリ（ＧＤ）は、現時刻から所定時間前までの間に参照されている。現時刻から所定時間前までの間に参照されたエントリは除外対象にならない。
【００４８】
図３の例の場合、ルーティングテーブルに登録されている３つのエントリの全ての利用時刻が「１２：００」以降である。従って、図３の例のルーティングテーブルに登録されている３つのエントリは除外対象にならない。
【００４９】
よって、センサノードＮ２のルーティングテーブルのうち、所定時間以上参照されていないエントリはない。このため、除外されるエントリがないため、センサノードＮ２の利用数は「３」になる。このときの利用数は、ルーティングテーブルのうち、ＧＤがゲートウェイＧＷのエントリ数と同じになる。
【００５０】
ルーティングテーブルに登録されている利用数はＬＤと対応している。ルーティングテーブルの利用数は、対応するＬＤの利用数を表す。例えば、図３の例の場合、センサノードＮ２のルーティングテーブルには、センサノードＮ１の利用数およびセンサノードＮ５の利用数が登録されている。
【００５１】
次に、図４を参照して、センサノードＮ３の利用数について説明する。図４は、図１で示したアドホックネットワーク１およびアドホックネットワーク１に参加しているセンサノードＮ３のルーティングテーブルの一例を示している。
【００５２】
図４の例のアドホックネットワーク１において、センサノードＮ３からゲートウェイＧＷまでの通信経路としては、センサノードＮ０を経由する通信経路とセンサノードＮ１を経由する通信経路とがある。
【００５３】
このため、センサノードＮ３のルーティングテーブルにおいて、ＧＤがゲートウェイＧＷのエントリには、センサノードＮ０およびセンサノードＮ１の２つのＬＤが登録されている。この場合、１つのエントリに、複数のＬＤが登録される。
【００５４】
図４の例において、センサノードＮ３のルーティングテーブルのうち、ＧＤがゲートウェイＧＷおよびセンサノードＮ８のエントリの利用時刻は「１２：００」以降である。このため、これらのエントリは除外対象にはならない。
【００５５】
一方、センサノードＮ３のルーティングテーブルのうち、ＧＤがセンサノードＮ７のエントリの利用時刻は「１１：３０」であり、「１２：００」より前である。このため、このエントリは除外対象になる。図４以降の各図において、除外対象のエントリには網掛けが施されている。
【００５６】
センサノードＮ３のルーティングテーブルのエントリ数は「３」である。そして、１つのエントリが除外対象になっている。従って、センサノードＮ３の利用数は、ルーティングテーブルのエントリ数から除外対象のエントリの数を減じた「２」になる。
【００５７】
各センサノードＮは、ルーティングテーブルを参照して、データの転送制御を行う。従って、ルーティングテーブルのうち、参照されていない時間が長いエントリのＧＤを宛先としたデータの転送は、長い時間行われていないことになる。
【００５８】
例えば、図４の例の場合、センサノードＮ３のルーティングテーブルのうち、ＧＤがセンサノードＮ７のエントリは、所定時間以上参照されていない。このため、センサノードＮ３は、センサノードＮ７を宛先としたデータの転送を長い時間行っていないことになる。
【００５９】
従って、現時刻を基準とすると、センサノードＮ３がセンサノードＮ７を宛先としたデータ転送を行う可能性が低いことが推定される。このため、図４の例の場合、センサノードＮ３がデータ転送を行う可能性が高い宛先は、ゲートウェイＧＷおよびセンサノードＮ８の２つであると推定される。
【００６０】
実施形態の利用数は、センサノードＮがデータ転送を行う可能性が高い宛先の数を示す。センサノードＮ２の利用数は「３」である。また、センサノードＮ３の利用数は「２」である。このため、センサノードＮ３はセンサノードＮ２よりも、データ転送を行う可能性が高い宛先の数が少ない。この場合、センサノードＮ３はセンサノードＮ２よりも通信負荷が低いことが推定される。
【００６１】
次に、図５を参照して、センサノードＮ４の利用数について説明する。図５は、図１で示したアドホックネットワーク１およびアドホックネットワーク１に参加しているセンサノードＮ４のルーティングテーブルの一例を示している。
【００６２】
図５の例において、センサノードＮ４のルーティングテーブルには、ＧＤがゲートウェイＧＷ、センサノードＮ６、センサノードＮ７およびセンサノードＮ８の４つのエントリが登録されている。このうち、ＧＤがセンサノードＮ６のエントリの利用時刻は「１２：３０」であり、「１２：００」以降である。
【００６３】
よって、ルーティングテーブルのうちセンサノードＮ６のエントリは除外対象にはならない。一方、ＧＤがゲートウェイＧＷ、センサノードＮ７およびセンサノードＮ８のエントリの利用時刻は、現時刻より時間閾値より前の時刻である「１２：００」より前である。従って、これらのエントリは、所定時間以上参照されていないため、除外対象になる。
【００６４】
このため、センサノードＮ４の利用数は、４つのエントリから３つのエントリが除外されるため、「１」になる。上述したように、センサノードＮ２の利用数は「３」であり、センサノードＮ３の利用数は「２」である。
【００６５】
よって、センサノードＮ２とセンサノードＮ３とセンサノードＮ４とのうち、センサノードＮ４の利用数が最も少ない。つまり、センサノードＮ２とセンサノードＮ３とセンサノードＮ４とのうち、通信負荷が最も低いセンサノードＮは、センサノードＮ４であることが推定される。
【００６６】
＜利用数の通知の一例＞
次に、利用数の通知について説明する。図６は、ゲートウェイ広告により、各センサノードＮが、隣接センサノードＮに対して利用数を通知する例を示している。ゲートウェイ広告は、ゲートウェイから送信されるデータの一例である。図６の矢印は、転送されるゲートウェイ広告を表す。
【００６７】
図６の例のゲートウェイ広告は、ＬＤとＬＳとＧＤとＧＳと距離と利用数と送信データとの情報を含むデータである。ＬＤは、上述したローカル宛先である。ローカル送信元（Local Source(LS)）は、データフレームが転送された場合の転送元のセンサノードＮのアドレスを示す。
【００６８】
ＧＤは、上述したグローバル宛先である。グローバル送信元（Global Source(GS)）は、データを生成したセンサノードＮのアドレスを示す。距離は、ゲートウェイＧＷからセンサノードＮまでの距離を示す。利用数は、センサノードＮの利用数を示す。送信データは、ゲートウェイ広告に含まれる所定の情報である。
【００６９】
例えば、ゲートウェイＧＷは、ゲートウェイ広告をブロードキャストする。センサノードＮ１の通信部１１は、ゲートウェイ広告を受信する。センサノードＮ１がセンサノードＮ２にゲートウェイ広告を転送する場合、処理部１２は、ゲートウェイ広告のＬＳをセンサノードＮ１に書き換える。
【００７０】
また、処理部１２は、ゲートウェイ広告の利用数をセンサノードＮ１の利用数（＝４）に書き換え、ゲートウェイ広告の距離をインクリメントする。センサノードＮ１はゲートウェイＧＷに隣接するため、センサノードＮ１がゲートウェイＧＷから受信したゲートウェイ広告の距離はゼロである。よって、処理部１２は、ゲートウェイ広告の距離をインクリメントすることで、ゲートウェイ広告の距離は「１」になる。
【００７１】
センサノードＮ１の通信部１１は、処理部１２により情報が書き換えられたゲートウェイ広告をセンサノードＮ２に転送する。センサノードＮ２の通信部１１は、転送されたゲートウェイ広告を受信する。
【００７２】
センサノードＮ２の処理部１２は、ゲートウェイ広告に含まれるセンサノードＮ１の利用数（＝４）をルーティングテーブルに登録する。また、処理部１２は、ゲートウェイ広告の内容を書き換える。
【００７３】
センサノードＮ２の通信部１１は、情報が書き換えられたゲートウェイ広告をセンサノードＮ５に転送する。センサノードＮ５の通信部１１は、センサノードＮ２から送信されたゲートウェイ広告を受信する。センサノードＮ５の処理部１２は、ゲートウェイ広告に含まれるセンサノードＮ２の利用数（＝３）をルーティングテーブルに登録する。
【００７４】
なお、図６の例に示されるように、ゲートウェイ広告は、ブロードキャストされるデータであるため、ＬＤは指定されていない。
【００７５】
次に、図７の例を参照して、応答確認信号（ＡＣＫ）により、利用数が通知される例について説明する。センサノードＮ０がセンサノードＮ４にデータ（以下、データフレームと称する）を送信したとする。センサノードＮ４は、データフレームを受信すると、データフレームを受信したことを示すＡＣＫをセンサノードＮ０に送信する。
【００７６】
図７の例において、破線の矢印はセンサノードＮ０からセンサノードＮ４に送信されるデータフレームを示し、実線の矢印はＡＣＫを示す。
【００７７】
センサノードＮ４の処理部１２は、センサノードＮ０に送信するＡＣＫに利用数（＝１）を含める。センサノードＮ４の通信部１１は、ＡＣＫをセンサノードＮ０に送信する。センサノードＮ０の通信部１１は、ＡＣＫを受信する。センサノードＮ０の処理部１２は、ＡＣＫに含まれるセンサノードＮ４の利用数（＝１）をルーティングテーブルに登録する。
【００７８】
＜利用数に基づく経路選択の一例＞
次に、図８の例を参照して、利用数に基づく経路選択の一例について説明する。図８の例は、センサノードＮ７がゲートウェイＧＷを宛先としたデータフレームを送信する例を示している。センサノードＮ７の処理部１２は、送信するデータフレームを生成する。なお、図８のアドホックネットワーク１の矢印は、データフレームが転送される通信経路を示している。
【００７９】
図９は、データフレームの一例を示す。図９の例のデータフレームは、ＬＤとＬＳとＧＤとＧＳと送信データとの項目を含む。データフレームは他の情報を含んでいてもよい。例えば、データフレームは、データフレームの正当性を保証する情報やデータフレームの長さに関する情報等を含んでもよい。
【００８０】
センサノードＮ７にはセンサノードＮ５だけが隣接している。よって、センサノードＮ７の処理部１２は、ＬＤがセンサノードＮ５、ＬＳがセンサノードＮ７、ＧＤがゲートウェイＧＷ、ＧＳがセンサノードＮ７を示すデータフレームを生成する。
【００８１】
図８に示されるように、センサノードＮ７は、データフレームをセンサノードＮ５に転送する。センサノードＮ５の通信部１１は、センサノードＮ７により転送されたデータフレームを受信する。センサノードＮ５の選択部１５は、受信したデータフレームのＧＤを参照して、データフレームのＧＤがゲートウェイＧＷであることを認識する。
【００８２】
選択部１５は、記憶部１３に記憶されたルーティングテーブルのうち、ＧＤがゲートウェイＧＷのエントリを参照する。図８の例に示すように、ＧＤのエントリには、３つのＬＤが含まれている。
【００８３】
センサノードＮ５がゲートウェイＧＷを宛先としたデータフレームを転送する場合、次の転送先の候補としては、ルーティングテーブルに登録されているＧＤのエントリに含まれる３つのＬＤが示すセンサノードＮ２とセンサノードＮ３とセンサノードＮ４とがある。
【００８４】
選択部１５は、データフレームの転送先の候補のうち、利用数が最も少ないセンサノードＮを選択する。図８の例の場合、センサノードＮ４の利用数が最も少ない。よって、選択部１５は、転送先の候補の中からセンサノードＮ４を選択する。
【００８５】
センサノードＮ５の通信部１１は、選択部１５が選択したセンサノードＮ４に、データフレームを転送する。データフレームは、センサノードＮ４に転送され、その後センサノードＮ０に転送される。そして、データフレームはセンサノードＮ０からゲートウェイＧＷに転送される。
【００８６】
センサノードＮ５の選択部１５は、データフレームの転送先の候補が複数ある場合、各候補の利用数に基づいて、データフレームの転送先を選択する。上述したように、利用数が少ないセンサノードＮ４は、通信負荷が低いと推定され、利用数が多いセンサノードＮ２は、通信負荷が高いと推定される。
【００８７】
通信負荷が高いセンサノードＮ２にデータフレームが転送されると、センサノードＮ２に対する通信負荷がさらに高くなる可能性がある。この場合、例えば、センサノードＮ２の電力消費量の増加や帯域圧迫等が発生するおそれがある。従って、特定のセンサノードＮに通信負荷が集中することは好ましくない。
【００８８】
そこで、センサノードＮ５の選択部１５は、通信負荷が低いと推定されるセンサノードＮ４をデータフレームの転送先に選択する。アドホックネットワーク１に参加する各センサノードＮの選択部１５が、利用数の少ないセンサノードＮをデータフレームの転送先に選択することで、通信負荷の分散が図られる。
【００８９】
図８の例において、センサノードＮ５の通信部１１は、選択部１５が選択したセンサノードＮ４にデータフレームを転送する。センサノードＮ４の選択部１５は、ルーティングテーブルのうち、ＧＤがゲートウェイＧＷのエントリを参照する。
【００９０】
センサノードＮ４の選択部１５は、時計部１６が示す時刻を、ルーティングテーブルのうち、ＧＤがゲートウェイＧＷのエントリの利用時刻に登録する。図１０の例に示されるように、登録された利用時刻が「１５：０５」であったとする。
【００９１】
新たに利用時刻が登録される前は、センサノードＮ４のルーティングテーブルのうち、ＧＤがゲートウェイＧＷのエントリは所定時間以上参照されていなかったため、該エントリは除外対象であった。
【００９２】
新たに利用時刻が登録されると、センサノードＮ４のルーティングテーブルのうち、ＧＤがゲートウェイＧＷのエントリは、現時刻から所定時間前までの間に参照されたことになる。よって、このエントリは、除外対象ではなくなる。従って、センサノードＮ４の利用数は「２」になる。
【００９３】
このため、センサノードＮ５の選択部１５が、転送先の候補の中から利用数が少ないセンサノードＮ４を転送先に選択した場合、転送先に選択されたセンサノードＮ４の利用数が１つ増える。このため、センサノードＮ５がデータフレームを転送するごとに、転送先の候補の利用数は変化する。
【００９４】
従って、センサノードＮ５の選択部１５が選択するセンサノードＮは変化する。つまり、センサノードＮ５は、実際の通信状況に応じて、通信負荷が低いと推定されるセンサノードＮにデータフレームを転送するため、特定のセンサノードＮに通信負荷が集中することがなくなる。これにより、通信負荷の分散が図られる。
【００９５】
上述した例では、センサノードＮの選択部１５は、転送先の候補の利用数に基づいて、転送先を選択している。利用数は、転送先の候補のルーティングテーブルのエントリ数（宛先数）から、所定時間以上参照されていないエントリを除外した数である。
【００９６】
センサノードＮの選択部１５は、転送先の候補のエントリ数（宛先数）に基づいて、転送先を選択してもよい。この場合、センサノードＮの選択部１５は、エントリが除外されていないエントリ数に基づいて、転送先を選択する。そして、センサノードＮの選択部１５は、転送先の候補のうち、エントリ数が少ないセンサノードＮにデータフレームを転送する。
【００９７】
センサノードＮがデータフレームを転送する転送先の候補のエントリ数は、種々の要因により変化することがある。例えば、通信の失敗により、センサノードＮは、ルーティングテーブルからエントリを削除することがある。
【００９８】
また、アドホックネットワーク１に新たなセンサノードＮが参加した場合、センサノードＮのルーティングテーブルに新たなエントリが追加されることがある。従って、センサノードＮがデータフレームを転送する転送先の候補のエントリ数（宛先数）は変化するため、特定のセンサノードＮに通信負荷が集中することがなくなる。これにより、通信負荷の分散が図られる。
【００９９】
＜実施形態のフローチャート＞
次に、実施形態の処理の流れの一例を示すフローチャートについて説明する。最初に、センサノードＮが、隣接センサノードＮの利用数をルーティングテーブルに登録する処理の流れについて、図１１を参照して、説明する。図１１の処理は、各センサノードＮが行う。
【０１００】
センサノードＮがゲートウェイ広告もＡＣＫも受信しない場合（ステップＳ１でＮＯ）、処理は次のステップには進まない。センサノードＮがゲートウェイ広告またはＡＣＫを受信した場合（ステップＳ１でＹＥＳ）、処理部１２は、受信したゲートウェイ広告またはＡＣＫに含まれるＬＤに示されるセンサノードＮを特定する（ステップＳ２）。
【０１０１】
処理部１２は、受信したゲートウェイ広告またはＡＣＫから利用数を抽出する（ステップＳ３）。抽出された利用数は、ゲートウェイ広告またはＡＣＫを送信したセンサノードＮのルーティングテーブルのうち、所定時間参照されていないエントリが除外されたエントリ数である。
【０１０２】
処理部１２は、特定されたセンサノードＮに対応して、抽出された利用数をルーティングテーブルに登録する（ステップＳ４）。これにより、センサノードＮのルーティングテーブルには、ゲートウェイ広告またはＡＣＫを送信した隣接センサノードＮの利用数が登録される。
【０１０３】
次に、データフレームを転送する処理について、図１２のフローチャートを参照して説明する。図１２の処理は、各センサノードＮが行う。
【０１０４】
センサノードＮの通信部１１がデータフレームを受信しない場合（ステップＳ１１でＮＯ）、センサノードＮはデータフレームの転送を行わない。この場合、処理は、次のステップに進まない。
【０１０５】
センサノードＮの通信部１１がデータフレームを受信した場合（ステップＳ１１でＹＥＳ）、選択部１５は、受信したデータフレームのＧＤが示すセンサノードＮを抽出する（ステップＳ１２）。
【０１０６】
選択部１５は、ルーティングテーブルのうち、抽出されたＧＤに対応するエントリの利用時刻を更新する（ステップＳ１３）。選択部１５は、ルーティングテーブルのうち、データフレームのＧＤに対応するエントリのＬＤから転送先のセンサノードＮの候補を抽出する（ステップＳ１４）。
【０１０７】
ルーティングテーブルには、データフレームのＧＤに対応するエントリのＬＤが１つの場合もあり、複数の場合もある。ＧＤに対応するエントリのＬＤが１つの場合、転送先のセンサノードＮの候補は１つになる。ＧＤに対応するエントリのＬＤが複数の場合、転送先の候補は複数になる。
【０１０８】
転送先の候補が１つの場合（ステップＳ１５でＮＯ）、選択部１５は、抽出された転送先のセンサノードＮを選択する。処理部１２は、選択部１５が選択した転送先のセンサノードＮを転送するデータフレームのＬＤに設定する（ステップＳ１６）。
【０１０９】
一方、転送先のセンサノードＮの候補が複数の場合（ステップＳ１５でＹＥＳ）、選択部１５は、複数の候補の中から転送先のセンサノードＮを選択する処理を行う（ステップＳ１７）。処理部１２は、選択部１５が選択した転送先のセンサノードＮを転送するデータフレームのＬＤに設定する（ステップＳ１８）。
【０１１０】
通信部１１は、設定されたＬＤが示すセンサノードＮにデータフレームを転送する（ステップＳ１９）。そして、処理は、終了する。以上の処理は、通信部１１がデータフレームを受信するごとに行われる。
【０１１１】
次に、ステップＳ１７の転送先のノード選択処理について、図１３のフローチャートを参照して説明する。センサノードＮの選択部１５は、ルーティングテーブルのうち、通信部１１が受信したデータフレームの宛先（ＧＤ）に対応するエントリの各ＬＤの利用数を抽出する（ステップＳ２１）。抽出された各ＬＤが、データフレームの転送先の候補になる。
【０１１２】
データフレームの宛先（ＧＤ）に対応するエントリの各ＬＤのうち、利用数が最も低いセンサノードＮが１つの場合（ステップＳ２２でＮＯ）、データフレームを転送する先の候補は１つに絞られる。選択部１５は、利用数が最も低いセンサノードＮを転送先に選択する（ステップＳ２３）。
【０１１３】
データフレームの宛先（ＧＤ）に対応するエントリの各ＬＤのうち、利用数が最も低いセンサノードＮが複数ある場合（ステップＳ２２でＹＥＳ）、データフレームの転送先の候補は１つには絞られない。
【０１１４】
この場合、選択部１５は、乱数発生部１４により発生された乱数を選択対象のセンサノードＮの利用数に加算する（ステップＳ２４）。これにより、選択対象のセンサノードＮの利用数に差が生じ、データフレームの転送先のセンサノードＮは１つに絞られる。
【０１１５】
なお、ステップＳ２４において、選択部１５は、各候補の利用数に対して、乱数発生部１４が発生させた乱数を減算してもよいし、積算してもよいし、除算してもよい。選択部１５は、各候補の利用数に対して、乱数を用いた任意の演算を行ってもよい。
【０１１６】
選択部１５は、乱数が利用数に加算された結果に基づいて、利用数が最も少ないセンサノードＮを転送先に選択する（ステップＳ２５）。ステップＳ２３またはステップＳ２５の処理が行われると、転送先ノード選択処理は終了する。
【０１１７】
＜変形例＞
次に、変形例について説明する。図１４の例のアドホックネットワーク１において、センサノードＮ５は中継ノードＲ４と隣接している。また、中継ノードＲ４は、中継ノードＲ０と隣接している。
【０１１８】
中継ノードＲ０および中継ノードＲ４は、上述したように、通信に対する処理能力がセンサノードＮよりも高い。図１４の例において、センサノードＮ７がセンサノードＮ５にゲートウェイＧＷを宛先としたデータフレームを転送したとする。
【０１１９】
センサノードＮ５の選択部１５は、ルーティングテーブルを参照して、ＧＤがゲートウェイＧＷのエントリの各ＬＤを抽出する。センサノードＮ５の選択部１５は、ルーティングテーブルのうち、抽出された各ＬＤに対応する装置種別に基づいて、データフレームの転送先を選択する。
【０１２０】
転送先の候補として、センサノードＮ２とセンサノードＮ３と中継ノードＲ４との３つのノードがある。選択部１５は、装置種別のうち、優先度が最も高い装置種別のノードを選択する。通信に対する処理能力が高い装置種別のノードの優先度は高く、通信に対する処理能力が低い装置種別のノードの優先度は低いものとする。
【０１２１】
装置種別の優先度は数値で表されるものとする。また、装置種別の数値が高いほど優先度が高く、装置種別の数値が低いほど優先度が低いものとする。図１４の例の場合、中継ノードＲ４の優先度が最も高いため、選択部１５は、中継ノードＲ４を選択する。
【０１２２】
選択部１５が中継ノードＲ４をデータフレームの転送先として選択した場合、通信部１１はデータフレームを中継ノードＲ４に転送する。中継ノードＲ４は、中継ノードＲ０にデータフレームを転送し、中継ノードＲ０はデータフレームをゲートウェイＧＷに転送する。
【０１２３】
図１４の例において、センサノードＮ５のルーティングテーブルのうち、ＧＤがゲートウェイＧＷのエントリの各ＬＤのうち、利用数が最も低いノードは、センサノードＮ３である。ただし、優先度が最も高いノードは、中継ノードＲ４である。
【０１２４】
中継ノードＲ４は、センサノードＮ３よりも通信に対する処理能力が高いため、センサノードＮ５の選択部１５は、センサノードＮ３ではなく、中継ノードＲ４を選択する。これにより、通信に対する処理能力が高い中継ノードＲ４によりデータフレームが転送される。
【０１２５】
次に、図１５のアドホックネットワーク１について説明する。図１５のアドホックネットワーク１は、図１４のアドホックネットワーク１に対して、中継ノードＲ９および中継ノードＲ１０が追加されている。
【０１２６】
センサノードＮ５は、ゲートウェイＧＷを宛先としたデータフレームをセンサノードＮ７から受信する。センサノードＮ５は、ルーティングテーブルを参照して、ＧＤがゲートウェイＧＷのエントリの各ＬＤをデータフレームの転送先の候補として抽出する。
【０１２７】
転送先の候補として、センサノードＮ２とセンサノードＮ３と中継ノードＲ４と中継ノードＲ９との４つのノードがある。選択部１５は、ルーティングテーブルを参照して、各候補のうち、優先度が最も高い候補を抽出する。
【０１２８】
図１５の例の場合、中継ノードＲ４および中継ノードＲ９の装置種別は「２」であり、センサノードＮ２およびセンサノードＮ３の装置種別は「１」である。従って、センサノードＮ５の選択部１５は、データフレームの転送先の候補として、優先度が最も高い中継ノードＲ４および中継ノードＲ９を選択する。
【０１２９】
この場合、データフレームの転送先は１つに絞り込まれていない。そこで、センサノードＮ５の選択部１５は、ルーティングテーブルを参照して、中継ノードＲ４に対応する利用数と中継ノードＲ９に対応する利用数とを抽出する。
【０１３０】
図１５の例では、中継ノードＲ４に対応する利用数は「１」であり、中継ノードＲ９に対応する利用数は「２」である。選択部１５は、利用数が最も少ない中継ノードＲ４を選択する。これにより、通信部１１は、選択部１５により選択された中継ノードＲ４にデータフレームを転送する。
【０１３１】
アドホックネットワーク１に参加する各ノードは、装置種別に応じた１または複数の階層の何れかに属する。例えば、アドホックネットワーク１に参加する各ノードが全てセンサノードＮである場合、各センサノードＮは装置種別が「１」の階層に属する。
【０１３２】
図１５の例の場合、合計７つのセンサノードＮは、装置種別が「１」の階層に属し、合計４つの中継ノードＲは、装置種別が「２」の階層に属する。装置種別が「２」の階層は、装置種別が「１」の階層よりも優先度が高い。
【０１３３】
各ノードの選択部１５は、データフレームの転送先の候補のノードが全て同じ階層に属している場合、各候補のノードの利用数に基づいて、データフレームの転送先を選択する。
【０１３４】
一方、データフレームの転送先の候補の中に優先度の高い装置種別の階層に属するノードが含まれている場合、各ノードの選択部１５は、優先度の高い装置種別の階層に属するノードの中から利用数の最も少ないノードを選択する。
【０１３５】
次に、距離を考慮した転送先の選択の一例について説明する。図１６の例のアドホックネットワーク１は、図１５の例のアドホックネットワーク１のうち中継ノードＲ０を含んでいない。このため、中継ノードＲ４はゲートウェイＧＷにデータフレームを転送する。
【０１３６】
センサノードＮ５の選択部１５は、宛先がゲートウェイＧＷであるデータフレームを通信部１１が受信した場合、データフレームの転送先を選択する。図１６の例の場合、センサノードＮ５がデータフレームを転送する先のノードの候補は、センサノードＮ２とセンサノードＮ３と中継ノードＲ４と中継ノードＲ９との４つのノードである。
【０１３７】
センサノードＮ５の選択部１５は、ルーティングテーブルを参照して、候補の中から装置種別の優先度が最も高いノードを選択する。この場合、中継ノードＲ４および中継ノードＲ９が選択されるため、データフレームの転送先は１つに絞り込まれていない。
【０１３８】
選択部１５は、ルーティングテーブルのうち、中継ノードＲ４に対応する距離と中継ノードＲ９に対応する距離とを抽出する。選択部１５は、２つのノードの距離のうち最も少ない距離のノードを選択する。
【０１３９】
上述したように、距離は、データフレームの転送回数に対応している。従って、選択部１５は、データフレームの転送回数に基づいて、複数の候補の中から転送先のノードを選択する。
【０１４０】
図１６の例に示されるように、中継ノードＲ４に対応する距離は「１」であり、中継ノードＲ９に対応する距離は「２」である。よって、センサノードＮ５の選択部１５は、データフレームの転送先に中継ノードＲ４を選択する。センサノードＮ５の通信部１１は、選択された中継ノードＲ４にデータフレームを転送する。
【０１４１】
従って、宛先がゲートウェイＧＷのデータフレームは、センサノードＮ７からゲートウェイＧＷまで、少ない転送回数で転送される。
【０１４２】
ノードＮの転送先の候補として、装置種別の優先度が最も高い候補が複数あり、そのうち距離が最も少ない候補が複数ある場合、選択部１５は、利用数に基づいて、転送先のノードを選択する。
【０１４３】
次に、変形例の処理の流れを示すフローチャートについて説明する。変形例の処理の処理は、図１１および図１２で示したフローチャートのうち、図１２のステップＳ１７の転送先のノード選択処理が異なる。ステップＳ１７以外の処理は、図１１および図１２と同じであるため、説明を省略する。
【０１４４】
センサノードＮの選択部１５は、受信したデータフレームの宛先に基づいて、ルーティングテーブルのうち、データフレームの宛先に応じたＧＤのエントリの各ＬＤをデータフレームの転送先の候補として抽出する。
【０１４５】
センサノードＮの選択部１５は、ルーティングテーブルの各候補の装置種別を抽出する（ステップＳ２０−１）。選択部１５は、各候補の装置種別のうち、装置種別の優先度が最も高い候補を転送先の候補として抽出する。装置種別の優先度が最も高い候補が複数でない場合（ステップＳ２０−１でＮＯ）、データフレームの転送先の候補は１つに絞られる。
【０１４６】
この場合、選択部１５は、装置種別の優先度が最も高いノードを転送先に選択する（ステップＳ２０−３）。装置種別の優先度が最も高い候補が複数ある場合（ステップＳ２０−１でＹＥＳ）、データフレームの転送先の候補は１つに絞られていない。
【０１４７】
この場合、選択部１５は、ルーティングテーブルの各候補の距離を参照する（ステップＳ２０−４）。この場合の候補は、優先度が最も高い候補である。選択部１５は、各候補の距離のうち、最も距離が少ない候補を抽出する。
【０１４８】
距離が最も少ない候補が複数でない場合（ステップＳ２０−５でＮＯ）、データフレームの転送先の候補は１つに絞られる。この場合、選択部１５は、距離が最も少ないノードをデータフレームの転送先に選択する（ステップＳ２０−６）。選択されたデータフレームの転送先は、優先度が最も高く、且つ距離が最も短いセンサノードＮである。
【０１４９】
距離が最も少ない候補が複数である場合（ステップＳ２０−５でＹＥＳ）、データフレームの転送先の候補は１つに絞られていない。この場合、選択部１５は、ルーティングテーブルの各候補の利用数を参照する（ステップＳ２１）。
【０１５０】
利用数が最も低い候補が複数でない場合（ステップＳ２２でＮＯ）、選択部１５は、利用数が最も低いセンサノードＮを転送先に選択する（ステップＳ２３）。
【０１５１】
利用数が最も低い候補が複数である場合（ステップＳ２２でＹＥＳ）、選択部１５は、複数の候補のそれぞれの利用数に乱数を加算する（ステップＳ２４）。そして、選択部１５は、加算結果に基づいて、転送先のセンサノードＮを選択する（ステップＳ２５）。
【０１５２】
以上において、選択部１５は、受信したデータフレームの宛先に応じた複数の転送先の候補のうち、利用数が最も少ないノードを転送先として選択しているが、利用数が所定の値より少ないノードを転送先として選択してもよい。
【０１５３】
例えば、選択部１５は、転送先の候補のうち、利用数が２番目に少ないノードを転送先に選択してもよい。利用数が２番目に少ないノードも通信負荷が低いと推定される。よって、この場合も、通信負荷の分散が図られる。
【０１５４】
また、選択部１５は、受信したデータフレームの宛先に応じた複数の転送先の候補のうち、優先度が所定の値より高いノードを転送先の候補として選択してもよい。また、選択部１５は、受信したデータフレームの宛先に応じた複数の転送先の候補のうち、距離が所定の値より少ないノードを転送先の候補として選択してもよい。
【０１５５】
＜ノードのハードウェア構成の一例＞
次に、図１８の例を参照して、ノードのハードウェア構成の一例を説明する。図１８の例に示すように、バス１００に対して、プロセッサ１１１とＲＡＭ１１２とＲＯＭ１１３と補助記憶装置１１４と媒体接続部１１５と通信インタフェース１１６とタイマ１１７とが接続されている。
【０１５６】
プロセッサ１１１は任意の処理回路である。プロセッサ１１１はＲＡＭ１１２に展開されたプログラムを実行する。実行されるプログラムとしては、実施形態の処理を行うプログラムを適用してもよい。ＲＯＭ１１３はＲＡＭ１１２に展開されるプログラムを記憶する不揮発性の記憶装置である。
【０１５７】
補助記憶装置１１４は、種々の情報を記憶する記憶装置であり、例えばハードディスクドライブや半導体メモリ等を補助記憶装置１１４に適用してもよい。媒体接続部１１５は、可搬型記録媒体１１８と接続可能に設けられている。
【０１５８】
可搬型記録媒体１１８としては、可搬型のメモリや光学式ディスク（例えば、Compact Disc(CD)やDigital Versatile Disc(DVD)、半導体メモリ等）を適用してもよい。この可搬型記録媒体１１８に実施形態の処理を行うプログラムが記録されていてもよい。
【０１５９】
通信インタフェース１１６は、外部との通信を行うインタフェースである。タイマ１１７は、例えばハードウェアタイマである。
【０１６０】
センサノードＮの処理部１２、乱数発生部１４および選択部１５は、プロセッサ１１１が所定のプログラムを実行することにより実現されてもよい。通信部１１は、通信インタフェース１１６により実現されてもよい。記憶部１３は、ＲＡＭ１１２や補助記憶装置１１４により実現されてもよい。時計部１６は、タイマ１１７により実現されてもよい。
【０１６１】
ＲＡＭ１１２、ＲＯＭ１１３、補助記憶装置１１４および可搬型記録媒体１１８は、何れもコンピュータ読み取り可能な有形の記憶媒体の一例である。これらの有形な記憶媒体は、信号搬送波のような一時的な媒体ではない。
＜その他＞
本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
【符号の説明】
【０１６２】
１    アドホックネットワーク
１１    通信部
１２    処理部
１３    記憶部
１４    乱数発生部
１５    選択部
１６    時計部
１１１    プロセッサ
１１２    ＲＡＭ
１１３    ＲＯＭ
Ｎ    センサノード
Ｒ    中継ノード
【図１】
0006705291.tif 000002
【図２】
0006705291.tif 000003
【図３】
0006705291.tif 000004
【図４】
0006705291.tif 000005
【図５】
0006705291.tif 000006
【図６】
0006705291.tif 000007
【図７】
0006705291.tif 000008
【図８】
0006705291.tif 000009
【図９】
0006705291.tif 000010
【図１０】
0006705291.tif 000011
【図１１】
0006705291.tif 000012
【図１２】
0006705291.tif 000013
【図１３】
0006705291.tif 000014
【図１４】
0006705291.tif 000015
【図１５】
0006705291.tif 000016
【図１６】
0006705291.tif 000017
【図１７】
0006705291.tif 000018
【図１８】
0006705291.tif 000019