(57)【特許請求の範囲】
【請求項１】
無線アドホックネットワークを用いて、第１のノードから送信されたパケットを第２のノードが中継して第３のノードが受信する無線システムに適した無線通信方法であって、
前記第１のノードが、
前記第２のノードから受信したパケットのうち、受信電波強度が最も高いパケットの送信元である前記第２のノードを選択し、
選択した前記第２のノードに、自ノードを特定する識別子を含めた、前記第３のノードを宛先とする報告パケットを送信する処理を実行し、
前記第２のノードが、
前記第１のノードから所定値以上の受信電波強度で受信した前記報告パケットに、自ノードの識別子を付加して、前記第３のノードに中継する処理を実行し、
前記第３のノードが、
記憶部に記憶される、過去に受信された報告パケットから抽出されたノードに関する情報と、前記第２のノードから受信した報告パケットから抽出したノードに関する情報とを比較して、前記第２のノードから受信した報告パケットに含まれていないノードを検知する処理
を実行することを特徴とする無線通信方法。
【請求項２】
前記第１のノードの報告パケットを送信する処理は、
前記報告パケットを前記第３のノードに送信する場合に、前記パケットを受信したときの受信電波強度が所定値以上の各第２のノードの識別子と前記受信電波強度との組み合わせを、前記報告パケットに付加して送信し、
前記第３のノードの検知する処理は、
前記受信した報告パケットに含まれる各ノードの識別子と受信電波強度と、前記報告パケットを受信したときの受信電波強度とを用いて、各ノードの位置関係または各ノード間の距離を算出することを特徴とする請求項１に記載の無線通信方法。
【請求項３】
前記第１のノードの報告パケットを送信する処理は、
前記アドホックネットワーク内において、自ノードが前記報告パケットを他のノードに中継する中継ノードである場合には、前記報告パケットの生成を抑止することを特徴とする請求項１に記載の無線通信方法。
【請求項４】
隣接ノードから受信したパケットのうち、受信電波強度が最も高いパケットの送信元の隣接ノードを選択する選択部と、
監視ノードを宛先として、前記選択部によって選択された隣接ノードに、自ノードを特定する識別子を含む報告パケットを送信する送信部と、
前記隣接ノードから所定値未満の受信電波強度で受信した前記報告パケットを破棄し、前記隣接ノードから所定値以上の受信電波強度で受信した前記報告パケットに、自ノードの識別子を付加して、前記監視ノードに中継する中継部と、
を有することを特徴とするノード。
【請求項５】
各ノードから送信された報告パケットであって、当該報告パケットの送信元ノードを識別する識別子および当該報告パケットを中継したノードの識別子が中継した順番で付与された報告パケットを受信する受信部と、
記憶部に記憶される、過去に受信された報告パケットから抽出されたノードに関する情報と、前記受信部によって受信された各報告パケットから抽出したノードに関する情報とを比較して、前記受信部によって前記各ノードから受信された各報告パケットのいずれにも含まれていないノードを検知する検知部と
を有することを特徴とする監視ノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、無線通信方法、ノードおよび監視ノードに関する。
【背景技術】
【０００２】
近年、アクセスポイントなどのネットワークインフラを用いずに、端末同士が直接接続してネットワークを構築する無線アドホックネットワークが利用されている。無線アドホックネットワークを構成する各ノードは、ＨＥＬＬＯパケットなどと呼ばれるメッセージを隣接ノードとの間で交換することで、自律的に経路を構築する。したがって、各ノードは、障害が発生したノードを自律的に迂回して他のノードを経由しながら目的ノードまでデータを届けることができる。【０００３】
無線アドホックネットワークを構築する各ノードを管理する手法としては、当該ネットワークに参加する固定ノードからの相対距離を算出して、各ノードの位置を管理する手法が知られている。また、各ノードにＧＰＳ（Global  Positioning  System）を備えさせて、ＧＰＳによってノードの位置を管理する手法も知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２００５−５２６４４４号公報
【特許文献２】特開２０１１−０４８４９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、各ノードが移動して経路変更が頻繁に発生するシステムでは、従来技術を用いた場合でも、無線アドホックネットワークから離脱したノードの位置を特定することができないという問題がある。【０００６】
例えば、相対距離を算出する手法は、固定ノードからの相対距離にノードの位置を特定するので、固定ノードがないシステムでは、各ノードの位置を特定することが難しい。また、ノードが屋内や地下へ移動することも考えられるシステムでは、ＧＰＳを用いたとしても、正確に位置を測定することができない。したがって、ＧＰＳを用いた手法では、ノードの離脱位置を特定することは難しい。【０００７】
開示の技術は、上記に鑑みてなされたものであって、ノードの離脱位置を特定することができる無線通信方法、ノードおよび監視ノードを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本願の開示する無線通信方法、ノードおよび監視ノードは、無線アドホックネットワークを用いて、第１のノードから送信されたパケットを第２のノードが中継して第３のノードが受信する無線システムに適した無線通信方法である。前記第１のノードが、前記第２のノードから受信したパケットのうち、受信電波強度が最も高いパケットの送信元である前記第２のノードを選択する。前記第１のノードが、選択した前記第２のノードに、自ノードを特定する識別子を含めた、前記第３のノードを宛先とする報告パケットを送信する処理を実行する。前記第２のノードが、前記第１のノードから所定値以上の受信電波強度で受信した前記報告パケットに、自ノードの識別子を付加して、前記第３のノードに中継する処理を実行する。前記第３のノードが、前記第２のノードから受信した報告パケットに含まれていないノードを検知する処理を実行する。
【発明の効果】
【０００９】
本願の開示する無線通信方法、ノードおよび監視ノードの一つの態様によれば、ノードの離脱位置を特定することができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例１に係る無線アドホックネットワークの全体構成例を示す図である。
【図２】図２は、ノードの構成を示す機能ブロック図である。
【図３】図３は、ノードのリンクテーブルに記憶される情報の例を示す図である。
【図４】図４は、ノードの経路テーブルに記憶される情報の例を示す図である。
【図５】図５は、監視ノードの構成を示す機能ブロック図である。
【図６】図６は、監視ノードのリンクテーブルに記憶される情報の例を示す図である。
【図７】図７は、監視ノードの経路テーブルに記憶される情報の例を示す図である。
【図８】図８は、ＨＥＬＬＯパケット受信から報告パケット送信までの流れを示すフローチャートである。
【図９】図９は、報告パケット中継処理の流れを示すフローチャートである。
【図１０】図１０は、離脱ノード検知処理の流れを示すフローチャートである。
【図１１】図１１は、離脱ノードの発生を示す具体例を示す図である。
【図１２】図１２は、トポロジの例を示す図である。
【図１３】図１３は、リストの例を示す図である。
【図１４】図１４は、経路情報を付加して報告パケットを送信する場合のシーケンス図である。
【図１５】図１５は、報告パケットを流用してパケット数を削減する処理の流れを示すフローチャートである。
【図１６】図１６は、ノードのハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１１】
以下に、本発明にかかる無線通信方法、ノードおよび監視ノードの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１２】
［全体構成］
図１は、実施例１に係る無線アドホックネットワークの全体構成例を示す図である。図１に示すように、この無線アドホックネットワークは、複数のノード１０と、監視ノード５０とからシステムを構成する。なお、ノードの数は一例であり、図示したものに限定されない。【００１３】
ここでは、子供の集団行動を監視し、離脱しそうな子供を検出する子供見守りシステムを想定する。具体的には、親などの引率者が監視ノードに該当し、各子供が各ノードに該当する。すなわち、図１に示したシステムは、各ノードが移動して経路変更が頻繁に発生するシステムである。【００１４】
また、図１に示した各ノードは、ＨＥＬＬＯパケットなどと呼ばれる定期メッセージを隣接ノードとの間で送受信して経路情報を生成する。具体的には、監視ノード５０は、ノードＡとの間で、互いが記憶する経路情報を含んだＨＥＬＬＯパケットを交換する。ノードＡは、監視ノード５０、ノードＢ、ノードＣの各々との間で、互いが記憶する経路情報を含んだＨＥＬＬＯパケットを交換する。ノードＢは、ノードＡとの間で、互いが記憶する経路情報を含んだＨＥＬＬＯパケットを交換する。ノードＣは、ノードＡとの間で、互いが記憶する経路情報を含んだＨＥＬＬＯパケットを交換する。【００１５】
このシステムでは、ノードＡは、監視ノード５０が１ホップの位置に存在し、監視ノード５０に直接データを送信する。ノードＢは、監視ノード５０から２ホップの位置に存在し、ノードＡを経由して監視ノード５０にデータを送信する。同様に、ノードＣは、監視ノード５０から２ホップの位置に存在し、ノードＡを経由して監視ノード５０にデータを送信する。すなわち、ノードＡが中継ノードであり、ノードＢとノードＣが末端ノードとなる。【００１６】
このような状態において、ノードＢまたはノードＣは、隣接ノードから受信したパケットのうち、受信電波強度が最も高いパケットの送信元としてノードＡを選択する。そして、ノードＢまたはノードＣは、選択したノードＡに、自ノードを特定する識別子を含み、監視ノード５０を宛先とする報告パケットを送信する。ノードＡは、ノードＢまたはノードＣから所定値以上の受信電波強度で受信した報告パケットに、自ノードの識別子を付加して、監視ノード５０に中継する。監視ノードは、ノードＡから受信した報告パケットに含まれていないノードを検知する。【００１７】
つまり、各ノード１０は、報告パケットに自ノードの情報を付加しながら、ＲＳＳＩ（Received  Signal  Strength  Indicator）値が大きいノードを選択して報告パケットを監視ノード５０まで中継する。また、各ノード１０は、報告パケットを受信できているものの、所定値より小さいＲＳＳＩ値で受信した報告パケットについては破棄する。そして、監視ノード５０は、報告パケットから消えたノードを検知する。この結果、固定ノードやＧＰＳがない場合であっても、アドホックネットワーク機能を用いて、離脱しそうな電波の弱いノードや当該ノードの位置を検知することができる。【００１８】
［ノードの構成］
図２は、ノードの構成を示す機能ブロック図である。図１に示したノードＡ、ノードＢ、ノードＣは同じ構成を有するので、ここでは、ノード１０として説明する。【００１９】
図２に示すように、ノード１０は、無線インタフェース部１１、アドホックプロトコル処理部１２、リンクテーブル１３、経路テーブル１４、データ受信処理部１５、データ処理部１６、データ送信処理部１７を有する。【００２０】
無線インタフェース部１１は、他のノードとの間で無線通信を実施する無線通信インタフェースである。例えば、無線インタフェース部１１は、隣接する他ノードからＨＥＬＬＯパケットや報告パケット等を受信し、アドホックプロトコル処理部１２に出力する。また、無線インタフェース部１１は、アドホックプロトコル処理部１２から受け付けたＨＥＬＬＯパケットを隣接するノードにブロードキャスト送信したり、アドホックプロトコル処理部１２から受け付けた報告パケットを宛先ノードに送信したりする。【００２１】
アドホックプロトコル処理部１２は、データ送信処理部１７から送信された各パケットにアドホックヘッダを付加して宛先に送信し、無線インタフェース部１１によって受信されたパケットをデータ受信処理部１５に出力する。例えば、アドホックプロトコル処理部１２は、データ送信処理部１７からＨＥＬＬＯパケットが入力された場合には、当該ＨＥＬＬＯパケットにアドホックヘッダを付加して、隣接するノードにブロードキャスト送信する。また、アドホックプロトコル処理部１２は、データ送信処理部１７から報告パケットが入力された場合には、当該報告パケットにアドホックヘッダを付加して、宛先ノードに送信する。【００２２】
このアドホックプロトコル処理部１２は、パケットフィルタ部１２ａを有する。パケットフィルタ部１２ａは、受信電波強度でパケットをフィルタリングする処理部である。具体的には、パケットフィルタ部１２ａは、ＨＥＬＬＯパケットまたは報告パケットを受信した場合に、受信時のＲＳＳＩ値を測定する。そして、パケットフィルタ部１２ａは、受信時のＲＳＳＩ値が予め定められた閾値よりも大きいパケットを、データ受信処理部１５に出力する。なお、パケットフィルタ部１２ａは、受信時のＲＳＳＩ値が予め定められた閾値よりも小さいパケットについては、破棄してもよく、処理対象外である旨の通知とともにデータ受信処理部１５に出力してもよい。【００２３】
リンクテーブル１３は、隣接するノードの情報を記憶する記憶部である。ここで記憶される情報は、データ受信処理部１５がＨＥＬＬＯパケットから抽出された情報である。したがって、リンクテーブル１３は、ＨＥＬＬＯパケットが受信されるたびに更新される。なお、実施例１に係るリンクテーブル１３は、一定のＲＳＳＩ値以上で受信されたＨＥＬＬＯパケットに基づいて作成されるものとする。このため、一定のＲＳＳＩ値以上で受信されたＨＥＬＬＯパケットが存在しない場合、リンクテーブル１３は空になる場合がある。【００２４】
図３は、ノードのリンクテーブルに記憶される情報の例を示す図である。図３に示すように、リンクテーブル１３は、「ローカル送信元アドレス（ＬＳ：Local  Source）、ＲＳＳＩ値、ＨＥＬＬＯ受信回数、ＨＥＬＬＯ要求間隔、アクセスキー」などを記憶する。なお、ここで示した情報はあくまで一例であり、例えばリンク間の品質を示す品質情報などを追加するなど、任意に変更することができる。【００２５】
「ローカル送信元アドレス（ＬＳ）」は、受信されたＨＥＬＬＯパケットの送信元ノードのアドレス情報である。「ＲＳＳＩ値」は、ＨＥＬＬＯパケット受信時の受信電波強度である。「ＨＥＬＬＯ受信回数」は、ＬＳとの間で受信されたＨＥＬＬＯパケットの回数を示しており、「ＨＥＬＬＯ要求間隔」は、ＬＳとの間で送受信する間隔を示している。「アクセスキー」は、送信元ノードから送信されたフレームタイプがＨＥＬＬＯパケット以外のデータフレームの暗号化を復号する際に使用する暗号鍵を示している。【００２６】
図３の例は、ノード１０が図１のノードＣの場合を示している。図３では、ノードＡとの間でアクセスキーとしてＡＡＡが指定されている。また、ノードＡからＨＥＬＬＯパケットを受信する間隔が１秒間隔であり、今までに５回受信している。そして、最新のＨＥＬＬＯパケットをＲＳＳＩ値８０で受信したことを示す。【００２７】
経路テーブル１４は、宛先ノードまでのルーティング情報を記憶する。具体的には、経路テーブル１４は、宛先ノードまでの複数経路のうち、例えば品質が良い順に所定の数の経路を最適経路として記憶する。経路テーブル１４は、リンクテーブル１３に基づいて生成されるので、リンクテーブル１３は空の場合には、経路テーブル１４も空になる場合がある。図４は、ノードの経路テーブルに記憶される情報の例を示す図である。図４に示すように、経路テーブル１４は、「ＧＤ（Global  Destination）、ＬＤ（Local  Destination）、ホップ数、品質」を対応付けて記憶する。【００２８】
ここで記憶される「ＧＤ」は、グローバル宛先アドレスを示しており、最終的な宛先ノードのアドレス情報である。「ＬＤ」は、ＧＤにパケットを届けるために、次の宛先となる中継先ノードのアドレス情報である。「ホップ数」は、ＧＤまでのホップ数を示している。また、「品質」は、ＧＤまでの経路の品質を示しており、例えば遅延量、電波強度、パケットロス率等を数値化したものである。なお、ここでは、一例として、数値が大きい方が、品質がよいものとする。【００２９】
図４の例は、ノード１０が図１のノードＣである場合を示している。図４では、ノードＣは、監視ノード５０にパケットを送信する経路を２つ保持していることを示す。１つ目の経路が、ノードＡを経由する２ホップの経路であり、２つ目が、ノードＢを経由する３ホップの経路である。ノードＣは、２経路のうち、品質がよいノードＡを経由する経路を選択して監視ノードにパケットを送信する。【００３０】
図２に戻り、データ受信処理部１５は、ＨＥＬＬＯ処理部１５ａと電波選択部１５ｂとを有し、アドホックプロトコル処理部１２から入力されたデータに対して受信処理を実行する処理部である。【００３１】
ＨＥＬＬＯ処理部１５ａは、所定値以上のＲＳＳＩ値で受信されたＨＥＬＬＯパケットに基づいて、経路テーブル１４やリンクテーブル１３を更新する処理部である。例えば、ＨＥＬＬＯ処理部１５ａは、パケットフィルタ部１２ａからＨＥＬＬＯパケットと当該ＨＥＬＬＯパケット受信時のＲＳＳＩ値とを受信する。そして、ＨＥＬＬＯ処理部１５ａは、ＨＥＬＬＯパケットから、ＬＳ、品質、監視ノードまでのホップ数等を抽出する。続いて、ＨＥＬＬＯ処理部１５ａは、抽出したＬＳに対応付けられてリンクテーブル１３に記憶されている「ＲＳＳＩ値」を今回の受信時の値に更新し、「ＨＥＬＬＯ受信回数」をインクリメントする。なお、ＨＥＬＬＯ処理部１５ａは、抽出したＬＳがリンクテーブル１３に記憶されていない場合には、新たなレコードを生成する。【００３２】
また、ＨＥＬＬＯ処理部１５ａは、リンクテーブル１３に基づいて経路テーブル１４を更新する。例えば、ＨＥＬＬＯ処理部１５ａは、リンクテーブル１３に記憶されるＬＳをＬＤとし、ＧＤを監視ノード５０とするテーブルを経路テーブル１４に生成する。そして、ＨＥＬＬＯ処理部１５ａは、当該ＬＳを送信元とするＨＥＬＬＯパケットから抽出されたホップ数をインクリメントし、インクリメントした値をホップ数として経路テーブル１４の該当テーブルに格納する。このとき、ＨＥＬＬＯ処理部１５ａは、複数のホップ数がＨＥＬＬＯパケットに含まれている場合には、最小値をインクリメントする。また、ＨＥＬＬＯ処理部１５ａは、当該ＬＳを送信元とするＨＥＬＬＯパケットから品質を抽出して、経路テーブル１４の該当テーブルに格納する。【００３３】
電波選択部１５ｂは、ＲＳＳＩ値が最も高い経路を選択するように制御する処理部である。例えば、電波選択部１５ｂは、リンクテーブル１３を参照し、各レコードのうちＲＳＳＩ値が最も大きいレコードが先頭になるように、ＲＳＳＩ値の降順でレコードを並び替える。【００３４】
データ処理部１６は、ＨＥＬＬＯパケット生成部１６ａと報告パケット生成部１６ｂと報告パケット中継部１６ｃとを有し、これらによって、各種パケットの生成や中継を実行する処理部である。【００３５】
ＨＥＬＬＯパケット生成部１６ａは、所定の間隔で、ＨＥＬＬＯパケットを生成する処理部である。具体的には、ＨＥＬＬＯパケット生成部１６ａは、経路テーブル１４に記憶される経路情報や監視ノード５０までのホップ数等を付加したＨＥＬＬＯパケットを生成して、データ送信処理部１７に出力する。例えば、ＨＥＬＬＯパケット生成部１６ａは、経路テーブル１４に記憶される各経路情報をＨＥＬＬＯヘッダに挿入する。つまり、ＨＥＬＬＯパケット生成部１６ａは、経路テーブル１４に存在するレコード数と同じ数のＨＥＬＬＯヘッダを生成する。そして、ＨＥＬＬＯパケット生成部１６ａは、生成した各ＨＥＬＬＯヘッダを含んだＨＥＬＬＯパケットを生成する。【００３６】
報告パケット生成部１６ｂは、自ノードの存在を通知する報告パケットを生成する処理部である。具体的には、報告パケット生成部１６ｂは、通常のアドホックネットワークで送受信されたパケットに、報告パケットであることを示す識別子や自ノードを特定する識別子を付加して報告パケットを生成する。そして、報告パケット生成部１６ｂは、生成した報告パケットをデータ送信処理部１７に出力する。報告パケットを生成するタイミングは、任意のタイミングでもよく、各ノードと同期をとってもよく、監視ノード５０から指定されてもよい。【００３７】
報告パケット中継部１６ｃは、所定値以上のＲＳＳＩ値で受信された報告パケットを監視ノード５０に向けて中継する処理部である。具体的には、報告パケット中継部１６ｃは、他ノードから送信された報告パケットのうち、ＲＳＳＩ値が所定値以上の報告パケットをパケットフィルタ部１２ａから受け付ける。そして、報告パケット中継部１６ｃは、受け付けた報告パケットに、自ノードを識別する識別子を付加して、データ送信処理部１７に出力する。【００３８】
例えば、ノード１０がノードＡの場合、報告パケット中継部１６ｃは、ノードＢから受信した報告パケットに対して、既に付加されているノードＢの識別子の後にノードＡの識別子を付加して、監視ノード５０に中継する。同様に、報告パケット中継部１６ｃは、ノードＣから受信した報告パケットに対して、既に付加されているノードＣの識別子の後にノードＡの識別子を付加して、監視ノード５０に中継する。【００３９】
データ送信処理部１７は、ＨＥＬＬＯパケットや報告パケットの送信処理を実行する処理部である。例えば、データ送信処理部１７は、ＨＥＬＬＯパケット生成部１６ａからＨＥＬＬＯパケットが入力された場合、宛先がブロードキャストアドレスであることを特定する。そして、データ送信処理部１７は、ＨＥＬＬＯパケットと宛先とをアドホックプロトコル処理部１２に出力する。【００４０】
また、データ送信処理部１７は、報告パケット生成部１６ｂから報告パケットが入力された場合、宛先（ＧＤ）が監視ノード５０であることを特定する。続いて、データ送信処理部１７は、経路テーブル１４を参照し、監視ノードへの経路が２つあり、次の宛先（ＬＤ）がノードＡかノードＢであることを特定する。そして、データ送信処理部１７は、リンクテーブル１３を参照し、ノードＡとノードＢのうちＲＳＳＩ値が高いノードＡを選択する。その後、データ送信処理部１７は、ノードＡをＬＤとして送信する指示と報告パケットとをアドホックプロトコル処理部１２に出力する。なお、データ送信処理部１７は、報告パケット中継部１６ｃから報告パケットが入力された場合、上記処理と同様の処理を実行する。【００４１】
また、アドホックプロトコル処理部１２は、各パケットを送信する際に、各パケット内にあるＬＳ（Local  Source）を自ノードに書き換える。このように、データ送信処理部１７は、ＨＥＬＬＯパケットや報告パケットを送信する際に、リンクテーブル１３や経路テーブル１４を参照して宛先アドレス等を特定するので、いずれかのテーブルにエントリが存在しない場合には、送信できない。【００４２】
［監視ノードの構成］
図５は、監視ノードの構成を示す機能ブロック図である。図５に示すように、監視ノード５０は、無線インタフェース部５１、アドホックプロトコル処理部５２、リンクテーブル５３、経路テーブル５４、データ受信処理部５５、データ処理部５６、データ送信処理部５７を有する。【００４３】
無線インタフェース部５１は、他のノードとの間で無線通信を実施する無線通信インタフェースである。例えば、無線インタフェース部５１は、隣接する他ノードからＨＥＬＬＯパケットや報告パケット等を受信し、アドホックプロトコル処理部５２に出力する。また、無線インタフェース部５１は、アドホックプロトコル処理部５２から受け付けたＨＥＬＬＯパケットを隣接するノードにブロードキャスト送信したり、アドホックプロトコル処理部５２から受け付けた報告パケットを宛先ノードに送信したりする。【００４４】
アドホックプロトコル処理部５２は、データ送信処理部５７から送信された各パケットにアドホックヘッダを付加して宛先に送信し、無線インタフェース部５１によって受信されたパケットをデータ受信処理部５５に出力する。なお、アドホックプロトコル処理部５２が実行する処理は、アドホックプロトコル処理部１２と同様なので、詳細な説明は省略する。このアドホックプロトコル処理部５２は、パケットフィルタ部５２ａを有するが、パケットフィルタ部５２ａが実行する処理は、パケットフィルタ部１２ａと同様なので、詳細な説明は省略する。【００４５】
リンクテーブル５３は、隣接するノードの情報を記憶する記憶部である。ここで記憶される情報は、データ受信処理部５５がＨＥＬＬＯパケットから抽出された情報である。したがって、リンクテーブル５３は、ＨＥＬＬＯパケットが受信されるたびに更新される。なお、実施例１に係るリンクテーブル５３は、一定のＲＳＳＩ値以上で受信されたＨＥＬＬＯパケットに基づいて作成されるものとする。【００４６】
図６は、監視ノードのリンクテーブルに記憶される情報の例を示す図である。図６に示すように、リンクテーブル５３は、「ローカル送信元アドレス（ＬＳ）、ＲＳＳＩ値、ＨＥＬＬＯ受信回数、ＨＥＬＬＯ要求間隔、アクセスキー」などを記憶する。なお、ここで記憶される各情報は、図３と同様なので、詳細な説明は省略する。【００４７】
図６の例は、ノードＡとの間でアクセスキーとしてＡＡＡが指定されている。また、ノードＡからＨＥＬＬＯパケットを受信する間隔が１秒間隔であり、今までに５回受信している。そして、最新のＨＥＬＬＯパケットをＲＳＳＩ値８０で受信したことを示す。【００４８】
経路テーブル５４は、宛先ノードまでのルーティング情報を記憶する。具体的には、経路テーブル５４は、宛先ノードまでの複数経路のうち、例えば品質が良い順に所定の数の経路を最適経路として記憶する。図７は、監視ノードの経路テーブルに記憶される情報の例を示す図である。図７に示すように、経路テーブル５４は、「ＧＤ、ＬＤ、ホップ数、品質」を対応付けて記憶する。なお、ここで記憶される各情報は、図４と同様なので、詳細な説明は省略する。【００４９】
図７の例では、監視ノードは、ノードＡ、ノードＢ、ノードＣ各々を宛先とする経路を１つずつ保持していることを示す。ノードＡへの経路は、中継先と宛先とがともにノードＡである１ホップの経路であり、品質が７０である。また、ノードＢへの経路は、中継先をノードＡとする２ホップの経路であり、品質が５０である。また、ノードＣへの経路は、中継先をノードＡとする２ホップの経路であり、品質が３０である。【００５０】
図５に戻り、データ受信処理部５５は、ＨＥＬＬＯ処理部５５ａと電波選択部５５ｂとを有し、アドホックプロトコル処理部５２から入力されたデータに対して受信処理を実行する処理部である。データ受信処理部５５は、図２で説明したデータ受信処理部１５と同様の処理を実行し、ＨＥＬＬＯ処理部５５ａは、ＨＥＬＬＯ処理部１５ａと同様の処理を実行し、電波選択部５５ｂは、電波選択部１５ｂと同様の処理を実行するので、詳細な説明は省略する。【００５１】
データ処理部５６は、ＨＥＬＬＯパケット生成部５６ａと離脱検知部５６ｂとを有し、これらによって、各種パケットの生成や中継を実行する処理部である。このデータ処理部５６は、各ノードに電源が投入されてアドホックネットワークが構築されると、報告パケットの送信タイミングを全ノードに通知する。送信タイミングとしては、３秒間隔など任意に設定することができる。なお、ＨＥＬＬＯパケット生成部５６ａは、図２で説明したＨＥＬＬＯパケット生成部１６ａと同様の処理を実行するので、詳細な説明は省略する。【００５２】
離脱検知部５６ｂは、アドホックネットワークから離脱したノードまたは離脱する恐れがあるノードを検知する処理部である。具体的には、離脱検知部５６ｂは、過去に受信した報告パケットから抽出したノードの情報と、今回受信した報告パケットから抽出したノードの情報とを比較し、今回抽出できなかったノードを離脱予兆ノードとして特定する。【００５３】
例えば、離脱検知部５６ｂは、前回のタイミングで、ノードＡから報告パケットＡ、報告パケットＢ、報告パケットＣを受信したとする。そして、離脱検知部５６ｂは、報告パケットＡからノードＡの識別子Ａを抽出する。したがって、離脱検知部５６ｂは、報告パケットＡがノードＡから送信されたものと認識する。また、離脱検知部５６ｂは、報告パケットＢからノードＢの識別子Ｂ、ノードＡの識別子Ａを順に抽出する。したがって、離脱検知部５６ｂは、報告パケットＢがノードＢから送信されてノードＡを経由してきたものと認識する。また、離脱検知部５６ｂは、報告パケットＣからノードＣの識別子Ｃ、ノードＡの識別子Ａを順に抽出する。したがって、離脱検知部５６ｂは、報告パケットＣがノードＣから送信されてノードＡを経由してきたものと認識する。この結果、離脱検知部５６ｂは、監視ノード５０から１ホップの位置にノードＡが存在し、ノードＡから１ホップの位置にノードＢとノードＣとが存在することを認識できる。【００５４】
その後、離脱検知部５６ｂは、今回のタイミングで、ノードＡから報告パケットＡ、報告パケットＢを受信したとする。そして、離脱検知部５６ｂは、報告パケットＡからノードＡの識別子Ａを抽出する。したがって、離脱検知部５６ｂは、報告パケットＡがノードＡから送信されたものと認識する。また、離脱検知部５６ｂは、報告パケットＢからノードＢの識別子Ｂ、ノードＡの識別子Ａを順に抽出する。したがって、離脱検知部５６ｂは、報告パケットＢがノードＢから送信されてノードＡを経由してきたものと認識する。この結果、離脱検知部５６ｂは、監視ノード５０から１ホップの位置にノードＡが存在し、ノードＡから１ホップの位置にノードＢが存在することを認識できる。【００５５】
そして、離脱検知部５６ｂは、前回の抽出結果と今回の抽出結果とから、ノードＣが検出されていないことから、ノードＣを離脱予兆があるノードと特定する。ここで、離脱検知部５６ｂは、離脱予兆としてノードＣを検知するのは、ノードＣが報告パケットを送信していない原因が複数考えられるからである。原因の例としては、ノードＣの故障、いずれかのノードＣから報告パケットを受信できるがＲＳＳＩ値が小さいために破棄していることが考えられる。他にも、ノードＣが他ノードから離れた又は建物等に入った等の理由で、ノードＣが隣接ノードからＨＥＬＬＯパケットを受信できない又は受信できたとしてもＲＳＳＩ値が小さいことも考えられる。この場合、ノードＣでは、リンクテーブル５３や経路テーブル５４からエントリが削除されてしまうので、ＨＥＬＬＯパケットを送信できない。【００５６】
上述したように、離脱検知部５６ｂは、様々な理由が考えられることから、離脱する可能性があると判定する。また、離脱検知部５６ｂは、報告パケットから抽出したノードの識別子および報告パケットに格納されている順番から、トポロジを作成することができる。したがって、離脱検知部５６ｂは、トポロジ上で、ノードＣが前回接続した位置にアラームを表示して警告することもできる。また、離脱検知部５６ｂは、ノードＣが前回接続していたノードがノードＢであることも特定できるので、ノードＢ経由で、ノードＣへ警告メッセージを送信することもできる。なお、離脱検知部５６ｂは、生成したトポロジは表示部等に表示させてもよく、ネットワークで接続される管理サーバ等に送信してもよい。また、離脱検知部５６ｂが受信および抽出した情報を管理サーバに送信し、管理サーバが、離脱検知やトポロジ生成を実行してもよい。【００５７】
データ送信処理部５７は、ＨＥＬＬＯパケットや報告パケットの送信処理を実行する処理部である。このデータ送信処理部５７は、図２で説明したデータ送信処理部１７と同様の処理を実行するので、詳細な説明は省略する。なお、データ送信処理部５７は、上述した警告メッセージについても同様に処理することができる。【００５８】
［処理の流れ］
次に、各ノードまたは監視ノードが実行する処理の流れを説明する。ここでは、報告パケット送信処理、報告パケット中継処理、離脱ノード検知処理について説明する。【００５９】
（報告パケット送信処理）
図８は、ＨＥＬＬＯパケット受信から報告パケット送信までの流れを示すフローチャートである。ここでは、一例として、ＨＥＬＬＯパケット受信から報告パケット送信までの一連の流れについて説明するが、これに限定されるものではなく、別々のタイミングで実行されてもよい。【００６０】
図８に示すように、ノード１０のＨＥＬＬＯパケット生成部１６ａは、ＨＥＬＬＯパケット送信契機に到達すると（Ｓ１０１Ｙｅｓ）、ＨＥＬＬＯパケットを生成する（Ｓ１０２）。続いて、データ送信処理部１７は、ＨＥＬＬＯパケットを隣接ノードにブロードキャスト送信する（Ｓ１０３）。【００６１】
その後、パケットフィルタ部１２ａは、ＨＥＬＬＯパケットを受信すると（Ｓ１０４Ｙｅｓ）、受信したＨＥＬＬＯパケットのうちＲＳＳＩ値が所定値未満のＨＥＬＬＯパケットを破棄する（Ｓ１０５）。【００６２】
続いて、ＨＥＬＬＯ処理部１５ａがＨＥＬＬＯパケットに基づいてリンクテーブル１３や経路テーブル１４を更新し、電波選択部１５ｂが、ＲＳＳＩ値が高い順に、リンクテーブル１３のエントリを並び替える（Ｓ１０６）。【００６３】
その後、報告パケット生成部１６ｂは、報告パケットの送信契機に到達すると（Ｓ１０７Ｙｅｓ）、自ノードを識別するノードＩＤを含んだ報告パケットを生成する（Ｓ１０８）。そして、報告パケット生成部１６ｂは、監視ノード５０を宛先とする経路のＬＤのうち、リンクテーブル１３からＲＳＳＩ値が最も高いＬＤを次の宛先として、報告パケットを監視ノード５０に向けて送信する（Ｓ１０９）。具体的には、データ送信処理部１７が、報告パケット生成部１６ｂの指示にしたがって、アドホックプロトコル処理部１２や無線インタフェース部１１を介して送信する。【００６４】
（報告パケット中継処理）
図９は、報告パケット中継処理の流れを示すフローチャートである。図９に示すように、パケットフィルタ部１２ａは、他のノードから報告パケットを受信すると（Ｓ２０１Ｙｅｓ）、受信時のＲＳＳＩ値が所定値未満の報告パケットを破棄する（Ｓ２０２）。【００６５】
そして、報告パケット中継部１６ｃは、フィルタされた結果、報告パケットが残っているか否かを判定する（Ｓ２０３）。具体的には、報告パケット中継部１６ｃは、パケットフィルタ部１２ａから出力されて、データ受信処理部１５を介して入力された報告パケットが存在するか否かを判定する。【００６６】
その後、報告パケット中継部１６ｃは、報告パケットが残っていると判定した場合（Ｓ２０３Ｙｅｓ）、報告パケットに自ノードのノードＩＤを付加する（Ｓ２０４）。このとき、報告パケット中継部１６ｃは、報告パケットが経由したノードがわかるように、経由した順番でノードＩＤを付加する。【００６７】
そして、報告パケット中継部１６ｃは、監視ノード５０を宛先とする経路のＬＤのうち、リンクテーブル１３からＲＳＳＩ値が最も高いＬＤを次の宛先として、報告パケットを監視ノード５０に向けて送信する（Ｓ２０５）。具体的には、データ送信処理部１７が、報告パケット生成部１６ｂの指示にしたがって、アドホックプロトコル処理部１２や無線インタフェース部１１を介して送信する。なお、報告パケット中継部１６ｃは、報告パケットが残っていないと判定した場合（Ｓ２０３Ｎｏ）、処理を終了する。【００６８】
（離脱ノード検知処理）
図１０は、離脱ノード検知処理の流れを示すフローチャートである。図１０に示すように、監視ノード５０のパケットフィルタ部５２ａは、各ノード１０から報告パケットを受信すると（Ｓ３０１Ｙｅｓ）、受信時のＲＳＳＩ値が所定値未満の報告パケットを破棄する（Ｓ３０２）。【００６９】
続いて、離脱検知部５６ｂは、フィルタされて残った報告パケットの数と、前回受信した報告パケットの数との差分を算出する（Ｓ３０３）。なお、離脱検知部５６ｂは、前回受信した報告パケットや報告パケットの数をメモリ等に記憶させておくものとする。【００７０】
そして、離脱検知部５６ｂは、フィルタされて残った報告パケットの数と、前回受信した報告パケットの数とに差分がないと判定した場合（Ｓ３０４Ｎｏ）、処理を終了する。つまり、離脱検知部５６ｂは、前回と同じ数だけの報告パケットが受信できている場合には、離脱する可能性のあるノードが存在しないと判定する。【００７１】
一方、離脱検知部５６ｂは、フィルタされて残った報告パケットの数と、前回受信した報告パケットの数とに差分があると判定した場合（Ｓ３０４Ｙｅｓ）、Ｓ３０５を実行する。ここでは、前回の方が今回よりも多いとする。この場合、離脱検知部５６ｂは、前回にしか含まれない報告パケットを特定する（Ｓ３０５）。なお、今回の方が前回よりも多い場合、離脱検知部５６ｂは、新たなノードがアドホックネットワークに参加したことを検知する。【００７２】
そして、離脱検知部５６ｂは、特定した前回にしか含まれない報告パケットの送信元すなわち報告パケットの生成元ノードを特定し、この特定したノードを離脱予兆ノードと判定する（Ｓ３０６）。【００７３】
さらに、離脱検知部５６ｂは、特定した前回にしか含まれない報告パケットから、ノードＩＤを付加されている順番で抽出する（Ｓ３０７）。そして、離脱検知部５６ｂは、抽出したノードＩＤを組み合わせて、送信元ノード言い換えると離脱予兆があるノードが離脱直前までに接続されていたノードを特定する（Ｓ３０８）。【００７４】
その後、離脱検知部５６ｂは、今回受信した各報告パケットからノードＩＤを抽出して組み合わせることで、アドホックネットワークのトポロジを生成する（Ｓ３０９）。また、離脱検知部５６ｂは、前回受信した各報告パケットもさらに用いてもよい。なお、離脱検知部５６ｂは、離脱予兆があるノードがわかるように、トポロジ上にアラームを表示してもよい。【００７５】
［具体例］
次に、離脱ノードが発生する具体例を説明する。図１１は、離脱ノードの発生を示す具体例を示す図である。図１１に示すように、ここで想定するアドホックネットワークの構成は図１と同様とする。ここでは、ノードＣが、ノードＡの隣接ノードであるノードＣ１から、ノードＢの隣接ノードであるノードＣ２に移動し、最終的にノードＣ３の位置に移動して、ネットワークから離脱する例を説明する。【００７６】
ノードＣがノードＣ１の位置にいる場合、ノードＣは、ノードＡから受信するＨＥＬＬＯパケットのＲＳＳＩ値が一番大きいことから、ノードＡを経由する経路で報告パケットを監視ノード５０に送信する。【００７７】
その後、ノードＣがノードＣ２の位置に移動してノードＢに近づくと、ノードＣでは、ノードＡから受信するＨＥＬＬＯパケットのＲＳＳＩ値が小さくなっていく一方で、ノードＢから受信するＨＥＬＬＯパケットのＲＳＳＩ値が大きくなっていく。そして、ノードＣは、ノードＢから受信するＨＥＬＬＯパケットのＲＳＳＩ値が一番大きいことから、ノードＢを経由する経路に切替えて、報告パケットを監視ノード５０に送信する。なお、ここでバタツキを抑えるために、一定のヒステリシスを設けてもよい。【００７８】
さらに、ノードＣがノードＣ３の位置に移動すると、ノードＣでは、ノードＢから受信するＨＥＬＬＯパケットのＲＳＳＩ値が小さくなっていく。そして、ノードＣは、ノードＢから受信するＨＥＬＬＯパケットのＲＳＳＩ値が所定値未満となり、ノードＢをリンクテーブル１３等から削除する。この結果、ノードＣは、報告パケットを送信しなくなり、監視ノード５０は、ノードＣからの報告パケットを受信できなくなる。【００７９】
したがって、監視ノード５０は、前回までノードＣから送信された報告パケットをノードＢとノードＡとを経由して受信していたが、今回では受信できない。このため、監視ノード５０は、前回の報告パケットの数と今回の報告パケットの数とに差を算出し、ノードＣからの報告パケットが受信できていないことを検出し、ノードＣを離脱予兆ノードと特定する。このとき、監視ノード５０は、ノードＣが前回まで接続していたノードがノードＢであることも特定でき、ノードＢ付近でノードＣが離脱したことまで検知することができる。【００８０】
また、監視ノード５０は、トポロジやリストによって離脱予兆ノードを管理者に通知することもできる。図１２は、トポロジの例を示す図であり、図１３は、リストの例を示す図である。図１２に示すように、監視ノード５０は、受信した各報告パケットに含まれるノードＩＤとその順番から、トポロジを生成することができる。このとき、監視ノード５０は、離脱予兆があるノードがわかるように、アラームを表示させることもできる。また、図１３に示すように、監視ノード５０は、各ノードの電話番号やメールアドレス等を管理するリストを保持しておき、離脱予兆があるノードがわかるように、リスト上にアラームを表示させることもできる。このように、監視ノード５０は様々な手法で離脱予兆があるノードに対してアラームをあげることができるので、管理者は、離脱予兆があるノードをいち早く検知することができる。【００８１】
［効果］
子供見守りシステムのように、ノードが頻繁に移動する場合であっても、ＧＰＳなどの特別な手法を用いることなく、各ノードを監視することができる。例えば、幼稚園児の集団登下校や集団での散歩など、特に移動していく集団における集団行動から離脱した、又は離脱しようとする個体の特定と誰のそばから離れようとしているのかを引率の先生は容易に知る事ができる。この結果、引率者の負担軽減を図ることも可能になる。【００８２】
また、アドホックネットワークから離脱する可能性のあるノード、言い換えるとＲＳＳＩ値が小さいもののパケットを受信できているノードを検知することができるので、実際に離脱する前に、アラームを当該ノードに送信するなどの対処を行うことができる。このため、離脱の事前予防などを行うことができる。また、離脱予兆があるノードが直前まで接続していたノードを特定することができるので、そのノードに離脱予兆があるノードの探索指示を送ることができ、離脱予兆があるノードの早期発見を実現できる。
【実施例２】
【００８３】
次に、実施例１とは異なる手法で報告パケットを送信する例について説明する。ここでは、各ノードが、保持する経路情報を付加した報告パケットを送信する例と、各ノードが、他ノードから報告パケットを流用する例を説明する。【００８４】
［経路情報の送信］
ここでは、各ノードが、ＲＳＳＩ値が高い上位２つの経路情報を付加して報告パケットを送信する例について説明する。図１４は、経路情報を付加して報告パケットを送信する場合のシーケンス図である。【００８５】
図１４に示すように、ノードＣは、リンクテーブル１３から上位２つのリンク情報を付加した報告パケット（Ｃ）を生成し（Ｓ４０１）、ＨＥＬＬＯパケット受信時のＲＳＳＩ値が最も高いノードＡに報告パケット（Ｃ）を送信する（Ｓ４０２とＳ４０３）。なお、本実施例では、上位２つのリンク情報を付加する例を説明するが、付加する数は任意に設定することができる。【００８６】
ノードＡは、ノードＣから受信した報告パケット（Ｃ）に自ノードのノードＩＤを付加して（Ｓ４０４）、監視ノード５０に転送する（Ｓ４０５）。その後、監視ノード５０は、ノードＣから送信された報告パケット（Ｃ）をノードＡ経由で受信する（Ｓ４０６）。【００８７】
また、ノードＢは、リンクテーブル１３から上位２つのリンク情報を付加した報告パケット（Ｂ）を生成し（Ｓ４０７）、ＨＥＬＬＯパケット受信時のＲＳＳＩ値が最も高いノードＡに報告パケット（Ｂ）を送信する（Ｓ４０８とＳ４０９）。【００８８】
ノードＡは、ノードＢから受信した報告パケット（Ｂ）に自ノードのノードＩＤを付加して（Ｓ４１０）、監視ノード５０に転送する（Ｓ４１１）。その後、監視ノード５０は、ノードＢから送信された報告パケット（Ｂ）をノードＡ経由で受信する（Ｓ４１２）。【００８９】
また、ノードＡは、リンクテーブル１３から上位２つのリンク情報を付加した報告パケット（Ａ）を生成し（Ｓ４１３）、監視ノード５０に報告パケット（Ａ）を送信する（Ｓ４１４とＳ４１５）。その後、監視ノード５０は、ノードＡから送信された報告パケット（Ａ）を受信する（Ｓ４１６）。【００９０】
その後、監視ノード５０の離脱検知部５６ｂは、ノード間の距離を算出し（Ｓ４１７）、距離および方角を考慮したトポロジを生成して表示する（Ｓ４１８）。例えば、離脱検知部５６ｂは、ＲＳＳＩの値から距離を推定し、どのノードを経由してパケットかによってノード間の位置関係を特定することができる。また、複数のノードがそれぞれ他の複数ノードとの間のＲＳＳＩ値を取得し、そのデータを基に所定のノードの位置を推定することもできる。例えば、ノードＡがノードＢとノードＣとの距離を保持しており、ノードＢがノードＡとノードＣとの距離を保持していれば、ノードＣの位置は、ノードＡとノードＣ間の距離の円とノードＢとノードＣ間の距離の円との交点にあると推定できる。この場合、複数のノードで同様な位置関係を求め、それを基にノードの場所を求めるために最小二乗法を用いることもできる。【００９１】
例えば、ノードＣを送信元とする報告パケット受信時のＲＳＳＩ値が４０であったとする。また、当該報告パケットに含まれるノードＡからのＨＥＬＬＯパケット受信時のＲＳＳＩ値が８０、当該報告パケットに含まれるノードＢからのＨＥＬＬＯパケット受信時のＲＳＳＩ値が２０であったとする。この場合、離脱検知部５６ｂは、ＲＳＳＩ値４０とＲＳＳＩ値８０とを用いた最小二乗法によって、監視ノード５０からノードＣまでの相対的な位置を算出する。同様に、離脱検知部５６ｂは、ＲＳＳＩ値４０とＲＳＳＩ値２０とを用いた最小二乗法によって、監視ノード５０からノードＣまでの相対的な位置を算出する。そして、離脱検知部５６ｂは、算出した両方の相対的な位置からノードＣの方角を特定する。【００９２】
このようにすることで、離脱しようとする園児のその監視ノードからの相対位置を容易に知ることが可能となり、より精度の高い監視が手軽にできる。また、相対位置や方角を考慮したトポロジを生成できるので、監視者や引率者は、ノードの位置を簡単に把握することができ、離脱ノードを助けに行くことも容易になる。【００９３】
［報告パケットの中継］
図１５は、報告パケットを流用してパケット数を削減する処理の流れを示すフローチャートである。図１５に示すように、ノード１０の報告パケット生成部１６ｂは、自ノードが役割を判定する周期に達すると（Ｓ５０１）、自ノードが末端か否かを判定する（Ｓ５０２）。例えば、報告パケット生成部１６ｂは、今までに報告パケットを中継したか否かによって、自ノードがアドホックネットワークの末端ノードか否かを判定する。【００９４】
報告パケット生成部１６ｂは、自ノードが末端であると判定した場合（Ｓ５０２Ｙｅｓ）、報告パケットの送信契機に到達したか否かを判定する（Ｓ５０３）。そして、報告パケット生成部１６ｂは、報告パケットの送信契機に到達すると（Ｓ５０３Ｙｅｓ）、自ノードを識別するノードＩＤを含んだ報告パケットを生成する（Ｓ５０４）。そして、報告パケット生成部１６ｂは、監視ノード５０を宛先とする経路のＬＤのうち、リンクテーブル１３からＲＳＳＩ値が最も高いＬＤを次の宛先として、報告パケットを監視ノード５０に向けて送信する（Ｓ５０５）。なお、報告パケット生成部１６ｂは、報告パケットの送信契機に到達しない場合（Ｓ５０３Ｎｏ）、Ｓ５０２に戻って以降の処理を繰り返す。【００９５】
一方、報告パケット生成部１６ｂは、自ノードが末端ではなく中継ノードであると判定した場合（Ｓ５０２Ｎｏ）、報告パケットの生成を抑止する（Ｓ５０６）。【００９６】
その後、報告パケット中継部１６ｃは、ＲＳＳＩ値が高い報告パケットを他ノードから受信すると（Ｓ５０７Ｙｅｓ）、受信された報告パケットに自ノードのノードＩＤを付加する（Ｓ５０８）。このとき、報告パケット中継部１６ｃは、報告パケットが経由したノードがわかるように、経由した順番でノードＩＤを付加する。【００９７】
そして、報告パケット中継部１６ｃは、監視ノード５０を宛先とする経路のＬＤのうち、リンクテーブル１３からＲＳＳＩ値が最も高いＬＤを次の宛先として、報告パケットを監視ノード５０に向けて送信する（Ｓ５０９）。【００９８】
このように、他のノードから受信した報告パケットを自ノードの報告パケットとして流用することができる。このため、アドホックネットワーク上を監視ノードへ向けて報告される報告パケットの量を削減できる。また、パケット量の削減にともなって、輻輳の発生を抑制することもでき、監視する対象者が大人数になっても対応できる。
【実施例３】
【００９９】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。【０１００】
（経路情報の生成）
実施例２では、ＲＳＳＩ値が所定値以上のＨＥＬＬＯパケットから生成したリンクテーブル１３から所定数の情報を取得して報告パケットに付加する例を説明したが、これに限定されるものではない。例えば、このような場合には、ＲＳＳＩ値が所定値未満のＨＥＬＬＯパケットからもリンクテーブル１３のエントリを作成し、当該エントリも考慮して、報告パケットに付加する経路情報を特定してもよい。【０１０１】
（サービスへの適用）
上記実施例１では、子供の集団登下校などを例にして説明したが、これに限定されるものではない。例えば、登山者の団体が先頭と最後尾とで一定の距離を保てるように支援する事にも役立てることが可能である。又、家畜の放牧や遊牧民の家畜の群れの移動においては、特定の個体の相対的な位置をすばやく知ることができ、家畜の日々の健康管理情報の収集やそれを元にした予防的措置の迅速化を図る事ができる。【０１０２】
（システム）
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。【０１０３】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。【０１０４】
［ハードウェア構成］
図１６は、ノードのハードウェア構成例を示す図である。なお、各ノードも監視ノードも同様の構成を有するので、ここではノード１００として説明する。図１６に示すように、ノード１００は、通信制御部１００ａと、ＰＨＹ（physical  layer）１００ｂと、バスインタフェース部１００ｃと、メモリ１００ｄと、ＣＰＵ（Central  Processing  Unit）１００ｅとを有する。【０１０５】
通信制御部１００ａは、他のノードとの通信を実行する処理部であり、例えば、アンテナやネットワークインタフェースカードである。ＰＨＹ１００ｂは、物理層ハードウェア部であり、物理層におけるネットワーク接続やデータ伝送に関する動作が規定され、通信制御部１００ａを介して相手装置との通信を実現する。なお、ＰＨＹ１００ｂは、ソフトウェアで実装することも可能である。【０１０６】
バスインタフェース部１００ｃは、ＣＰＵ１０ｅ、メモリ１００ｄ、ＰＨＹ１００ｂ等の間で信号をやりとりするためのバスインタフェースである。メモリ１００ｄは、ＲＯＭ（Read  Only  Member）、ＲＡＭ（Random  Access  Memory）等を含み、本実施例の通信方法における各種処理を実現するためのプログラムや、後述する経路テーブルやリンクテーブル、処理の過程で得られたデータ等を記憶する記憶装置である。【０１０７】
ＣＰＵ１００ｅは、ノード１００の各種処理を司る処理部であり、本実施例の通信制御方法における各種処理等を実行する。例えば、ＣＰＵ１００ｅは、図２に示した各処理部や図５に示した各処理部を実行する。また、ＣＰＵ１００ｅは、図２や図５に示した各処理部と同様の機能を発揮するプログラムをメモリ１００ｄ等から読み出して実行することで、図２や図５に示した各処理部と同様の機能を実行することもできる。
【符号の説明】
【０１０８】
１０  ノード
１１、５１  無線インタフェース部
１２、５２  アドホックプロトコル処理部
１２ａ、５２ａ  パケットフィルタ部
１３、５３  リンクテーブル
１４、５４  経路テーブル
１５、５５  データ受信処理部
１５ａ、５５ａ  ＨＥＬＬＯ処理部
１５ｂ、５５ｂ  電波選択部
１６、５６  データ処理部
１６ａ、５６ａ  ＨＥＬＬＯパケット生成部
１６ｂ  報告パケット生成部
１６ｃ  報告パケット中継部
１７、５７  データ送信処理部
５０  監視ノード
５６ｂ  離脱検知部
【図１】
0005861769.tif 000002
【図２】
0005861769.tif 000003
【図３】
0005861769.tif 000004
【図４】
0005861769.tif 000005
【図５】
0005861769.tif 000006
【図６】
0005861769.tif 000007
【図７】
0005861769.tif 000008
【図８】
0005861769.tif 000009
【図９】
0005861769.tif 000010
【図１０】
0005861769.tif 000011
【図１１】
0005861769.tif 000012
【図１２】
0005861769.tif 000013
【図１３】
0005861769.tif 000014
【図１４】
0005861769.tif 000015
【図１５】
0005861769.tif 000016
【図１６】
0005861769.tif 000017