(57)【特許請求の範囲】
【請求項１】
複数の無線ノードと制御ノードとから構成され、それぞれの無線ノードが、周囲の無線ノードから受信するノード情報に関する周辺ノード情報に基づいて、特定の無線ノードとマルチホップ無線通信を行うマルチホップ無線ネットワークの経路制御方法であって、
前記制御ノードは、前記マルチホップ無線ネットワークにおける何れかの無線ノードを目的の無線ノードとして選択し、該目的の無線ノードから周囲の無線ノードに送信する前記ノード情報の値の変更を変更するメッセージを前記目的の無線ノードに送信し、
前記目的の無線ノードは、前記制御ノードから前記メッセージを受信すると、周囲の無線ノードに対して送信する自無線ノードに関するノード情報を変更する
ことを特徴とするマルチホップ無線ネットワークの経路制御方法。
【請求項２】
前記目的の無線ノードは、前記木構造のネットワークトポロジにおける同階層の他の無線ノードに比較して、下位の無線ノード数が多い無線ノードであり、
前記ノード情報の変更では、前記ノード情報の値を、前記目的の無線ノードを前記上位接続先ノードの候補として計算される前記メトリック値がリンクの通信コスト的に大きくなるように変更する
ことを特徴とする請求項１に記載のマルチホップ無線ネットワークの経路制御方法。
【請求項３】
前記目的の無線ノードは、前記木構造のネットワークトポロジにおける同階層の他の無線ノードに比較して、下位の無線ノード数が少ない無線ノードであり、
前記ノード情報の変更では、前記ノード情報の値を、前記目的の無線ノードを前記上位接続先ノードの候補として計算される前記メトリック値がリンクの通信コスト的に小さくなるように変更する
ことを特徴とする請求項１に記載のマルチホップ無線ネットワークの経路制御方法。
【請求項４】
前記ノード情報の変更では、前記ノード情報に含まれる実際の値を異なる値に変更する
ことを特徴とする請求項１乃至３の何れかに記載のマルチホップ無線ネットワークの経路制御方法。
【請求項５】
前記実際の値が、前記目的の無線ノードから前記特定の無線ノードまでのホップ数、前記目的の無線ノードを前記上位接続先ノードに決定している前記無線ノードの数である子ノード数、前記目的の無線ノードが前記上位接続先ノードを決定する際に計算した当該上位接続先ノードの前記メトリック値のうちの少なくとも一つである
ことを特徴とする請求項４に記載のマルチホップ無線ネットワークの経路制御方法。
【請求項６】
前記ノード情報の変更では、前記メトリック値を計算する際に使用する重み付けパラメータの値であるハンディキャップ値を設定・変更する
ことを特徴とする請求項１乃至３の何れかに記載のマルチホップ無線ネットワークの経路制御方法。
【請求項７】
複数の無線ノードと制御ノードとから構成されるマルチホップ無線ネットワークであって、
それぞれの前記無線ノードは、
周囲の無線ノードに対して自無線ノードに関するノード情報を送信すると共に、周囲の無線ノードから受信する前記ノード情報に関する周辺ノード情報を取得する周辺ノード情報取得手段を備え、
前記制御ノードは、
前記マルチホップ無線ネットワークにおける何れかの無線ノードを目的の無線ノードとして選択し、該目的の無線ノードから周囲の無線ノードに送信する前記ノード情報の値の変更を要求するメッセージを前記目的の無線ノードに送信するネットワーク管理手段を備え、
前記無線ノードの前記周辺ノード情報取得手段は、前記制御ノードから前記メッセージを受信すると、周囲の無線ノードに対して送信する自無線ノードに関するノード情報を変更する
ことを特徴とするマルチホップ無線ネットワーク。
【請求項８】
マルチホップ無線ネットワークに接続される無線ノードであって、
周囲の無線ノードに対して自無線ノードに関するノード情報を送信すると共に、周囲の無線ノードから受信する前記ノード情報に関する周辺ノード情報を取得する周辺ノード情報取得手段と、
前記マルチホップ無線ネットワークにおける何れかの無線ノードを目的の無線ノードとして選択し、該目的の無線ノードから周囲の無線ノードに送信する前記ノード情報の値の変更を要求するメッセージを前記目的の無線ノードに送信するネットワーク管理手段とを備えることを特徴とする無線ノード。
【請求項９】
マルチホップ無線ネットワークに接続される無線ノードを構成するコンピュータを、
周囲の無線ノードに対して自無線ノードに関するノード情報を送信すると共に、周囲の無線ノードから受信する前記ノード情報に関する周辺ノード情報を取得する周辺ノード情報取得手段と、
前記マルチホップ無線ネットワークにおける何れかの無線ノードを目的の無線ノードとして選択し、該目的の無線ノードから周囲の無線ノードに送信する前記ノード情報の値の変更を要求するメッセージを前記目的の無線ノードに送信するネットワーク管理手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の無線ノードから構成され、特定の無線ノードとマルチホップ無線通信を行うネットワークシステムおよびその経路制御方法に関する。
【背景技術】
【０００２】
この種のネットワークシステムとして、無線センサネットワークシステムがある。無線センサネットワークシステムにおいて、OLSR(Optimized Link State Routing),AODV(Ad hocのOn-Demand Distance Vector)などの無線マルチホップネットワークに適したルーティングプロトコルを適用して、シンクノードを送信先、センサノードを送信元とするパスを生成すると、結果として、シンクノードを頂点とし、節および葉の部分にセンサノードが位置するツリー構造のネットワークトポロジ（以降、ツリートポロジ）が構築される。但し、このとき、同じ階層の複数のノード間で子ノードの数に偏りが発生することがある。このような偏りは、特定のノードの負荷が増加する原因になるので、できるだけ解消する必要がある。
【０００３】
ツリートポロジに生じた上記のような偏りを解消する経路制御方法の一例が特許文献１に記載されている。この技術では、特定の装置（ネットワーク構築装置３０）が、生成されたツリートポロジに偏りが生じていることを検出すると、その偏りを解消するためには、どのノードをどのノードに接続替えすれば良いかを解析し、接続替え対象の各ノードに対してメッセージを送信して接続替えを実施する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2010-166150号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、接続替え対象の各ノードに対してメッセージを送信して接続替えを実施する方法は、接続替え対象のノード数に比例したメッセージの送信とその応答のやりとりが必要になる。
【０００６】
本発明の目的は、上述したような課題、すなわち、マルチホップ無線ネットワークシステムにおけるツリートポロジの偏りを改善するには多大なコストが必要になる、という課題を解決することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の一形態にかかるマルチホップ無線ネットワークの経路制御方法は、
複数の無線ノードから構成され、それぞれの無線ノードが、周囲の無線ノードから受信するノード情報に関する周辺ノード情報に基づいて、特定の無線ノードとマルチホップ無線通信を行う際の上位接続先ノードの候補毎に、上位接続先ノードを選定するための指針を与える量を示すメトリック値を算出し、算出したメトリック値に基づいて上位接続先ノードを決定する、マルチホップ無線ネットワークの経路制御方法であって、
前記マルチホップ無線ネットワークにおける特定の無線ノードを根、その他の無線ノードを節および葉とするツリートポロジにおける何れかの無線ノードを目的の無線ノードとして選択し、目的の無線ノードから周囲の無線ノードに送信するノード情報の値を故意に変更する、
といった構成を採る。
【発明の効果】
【０００８】
本発明は上述したような構成を有するため、マルチホップ無線ネットワークシステムにおけるツリートポロジの偏りを少ないコストで解消することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の第２の実施形態にかかる無線センサネットワークの物理的な構成例を示す図である。
【図２】本発明の第２の実施形態にかかる無線センサネットワークのノード間の接続関係を示す図である。
【図３】本発明の第２の実施形態にかかる無線センサネットワークのセンサノードのブロック図である。
【図４】本発明の第２の実施形態にかかる無線センサネットワークのシンクノードのブロック図である。
【図５】本発明の第２の実施形態にかかる無線センサネットワークの基本動作を示すタイムチャートである。
【図６】本発明の第２の実施形態にかかる無線センサネットワークの偏り是正前のツリートポロジを示す図である。
【図７】本発明の第２の実施形態にかかる無線センサネットワークのシンクノードが実施するトポロジ偏り是正処理の流れを示すフローチャートである。
【図８】本発明の第２の実施形態にかかる無線センサネットワークのシンクノードが有するネットワークデータベースの構成例を示す図である。
【図９】本発明の第２の実施形態にかかる無線センサネットワークの偏り是正後のツリートポロジを示す図である。
【図１０】本発明の第３の実施形態にかかる無線センサネットワークのノード間の偏り是正前の接続関係を示す図である。
【図１１】本発明の第３の実施形態にかかる無線センサネットワークのトポロジデータベースが保持するトポロジ情報（偏り是正前）の一例を示す図である。
【図１２】本発明の第３の実施形態にかかる無線センサネットワークのトポロジデータベースが保持するトポロジ情報（偏り是正後）の一例を示す図である。
【図１３】本発明の第３の実施形態にかかる無線センサネットワークのノード間の偏り是正後の接続関係を示す図である。
【図１４】本発明の第１の実施形態にかかるマルチホップ無線ネットワークの物理的な構成例を示す図である。
【図１５】本発明の第１の実施形態にかかるマルチホップ無線ネットワークの無線ノードのブロック図である。
【図１６】本発明の第１の実施形態にかかるマルチホップ無線ネットワークの偏り是正前のトポロジを示す図である。
【図１７】本発明の第１の実施形態にかかるマルチホップ無線ネットワークの偏り是正後のトポロジを示す図である。
【発明を実施するための形態】
【００１０】
次に本発明の実施の形態について図面を参照して詳細に説明する。
[第１の実施形態]
図１４を参照すると、本発明の第１の実施形態にかかるマルチホップ無線ネットワークシステムは、９個の無線ノード１〜９から構成される。無線ノードの数を９個としているのは説明の便宜上であり、本発明において無線ノードの数は任意である。
【００１１】
各無線ノード１〜９は、図１５の無線ノード１０に示すように、周辺ノード情報取得部１１、メトリック計算部１２、および上位接続先ノード決定部１３を有する。
【００１２】
周辺ノード情報取得部１１は、周囲の無線ノードに対して自無線ノードに関するノード情報を同報通信により送信する機能と、周囲の無線ノードから受信するノード情報に関する周辺ノード情報を取得する機能とを有する。本実施形態の場合、各無線ノード１〜９が周囲に送信するノード情報は、自ノードを一意に識別するノード識別子と、自ノードから特定の無線ノードまでのホップ数とから構成される。また、各無線ノード１〜９が周囲の無線ノードから受信するノード情報に関する周辺ノード情報は、上記ノード識別子と、上記ホップ数と、当該ノード情報を受信した際の受信強度（無線信号の強度）とから構成される。ここで、本実施形態は、無線ノード１を上記特定の無線ノードとしており、他の無線ノード２〜９が無線ノード１とパケット通信するものとする。
【００１３】
メトリック計算部１２は、周辺ノード情報取得部１１で取得された周辺ノード情報に基づいて、特定の無線ノードとマルチホップ無線通信を行う際の上位接続先ノードの候補毎に、上位接続先ノードを選定するための指針を与える量を示すメトリック値を算出する機能を有する。本実施形態の場合、各無線ノード１〜９は、受信したノード情報に含まれるホップ数と、当該ノード情報を受信した際の受信強度とを用い、メトリック値Ｍを以下の計算式で計算する。
Ｍ＝Ｍeh（ｅ、ｈ）      …（１）
ここで、Ｍeh（ｅ、ｈ）は、ホップ数ｈと受信強度ｅとを引数として、ホップ数ｈがより大きくなるほど、また受信強度ｅがより小さくなるほど、より大きな値のメトリック値Ｍを返す関数である。また、メトリック値は、リンクの通信コストが小さくなるほど小さくなる値であるとする。
【００１４】
上位接続先ノード決定部１３は、メトリック計算部１２により算出されたメトリック値に基づいて、特定の無線ノードとマルチホップ無線通信を行う際の上位接続先ノードを決定する機能を有する。上位接続先ノード決定部１３は、周囲のノード毎に算出したメトリック値のうち最も小さなメトリック値となった周囲ノードを、上位接続先ノードに選択する。
【００１５】
他方、上記９個の無線ノード１〜９とは別に制御ノードが存在する。或いは９個の無線ノード１〜９の何れかが制御ノードとして機能する。本実施形態では、無線ノード１が制御ノードとして機能する例について説明する。
【００１６】
制御ノードとして機能する無線ノード１は、図１５に示すように、周辺ノード情報１１、メトリック計算部１２、上位接続先ノード決定部１３に加えてさらに、ネットワーク管理部１４を有する（制御ノード以外の無線ノードはネットワーク管理部１４が無くてもよい）。ネットワーク管理部１４は、マルチホップ無線ネットワークにおける特定の無線ノードを根、その他の無線ノードを節および葉とする木構造のネットワークトポロジを生成する機能と、この生成した木構造のネットワークトポロジにおける所定の無線ノードを目的の無線ノードとして選択する機能と、この目的の無線ノードから周囲の無線ノードに送信するノード情報の値を故意に変更する機能とを有する。
【００１７】
ネットワーク管理部１４が有するネットワークトポロジ生成機能について説明する。本実施形態の場合、無線ノード１は他の無線ノード２〜９からマルチホップ無線通信によってパケットを受信する。このとき、受信するパケットには、送信元の無線ノードの識別子と中継点の無線ノードの識別子とを含む通信履歴が付加されている。ネットワーク管理部１４は、この通信履歴に基づいて上記のネットワークトポロジを生成する。あるいは、ネットワーク管理部１４は次のような方法でネットワークトポロジを生成してよい。各無線ノードが上位接続先ノードを決定した際、決定した上位接続先ノードに対して、自ノードが子ノードとして存在することを認識させるための通知が行われる。この通知を受信した上位接続先ノードが、この通知を制御ノードである無線ノード１に転送する。無線ノード１は、この転送されてきた情報に基づいて、どの無線ノードの下位にどの無線ノードが存在するか、すなわちネットワークトポロジを把握する。
【００１８】
ネットワーク管理部１４が有する目的の無線ノードを選択する機能について説明する。本実施形態の場合、無線ノード１は、木構造のネットワークトポロジにおける同階層の他の無線ノードに比較して下位の無線ノード数が多い無線ノードを目的の無線ノードとして選択する。例えば、ネットワーク管理部１４は、ネットワークトポロジのルート階層以外の階層毎に、その階層に属する各無線ノードの下位ノード数（子ノード、孫ノードを含む子孫ノードの数）を調査し、平均や中央値や標準偏差や最大値や最小値などと比較して、下位ノード数の偏り箇所を検出する。例えば、或る階層にＡ、Ｂ、Ｃ、Ｄの４つのセンサノードがあり、各々の下位ノード数が、Ａは１０台、Ｂは３３台、Ｃは９台、Ｄは５台であった場合、平均を求めると約１５台になる。このとき、例えば平均値の２倍以上のノード数となる箇所を偏り箇所として検出するものと予め定められている場合、ノードＢが目的の無線ノードとして検出される。
【００１９】
ネットワーク管理部１４が有するノード情報変更機能について説明する。ネットワーク管理部１４は、目的の無線ノードから周囲の無線ノードに送信するノード情報を、目的の無線ノードを上位接続先ノードの候補として計算されるメトリック値がリンクの通信コスト的に大きくなるように変更する制御を実施する。具体的には、変更を要求するメッセージを目的の無線ノードに送信し、その応答を受信する。本実施形態の場合、無線ノードから周囲の無線ノードに送信されるノード情報は、ノード識別子とホップ数であり、メトリック値が上記（１）式によって計算される。このため、ネットワーク管理部１４は、目的の無線ノードから周囲の無線ノードに送信するホップ数を、実際のホップ数よりも大きな数に変更する。どの程度大きくするかは任意である。予め定められた数（例えばホップ数１）だけ大きくしても良いし、あるいは予め定められた割合（例えば５割）を実際のホップ数に加算した後に四捨五入等しても良い。
【００２０】
次に本実施形態の動作を説明する。
【００２１】
無線ノード１〜９は、周辺ノード情報取得部１１によって、例えば定期的に、無線ノード１からのホップ数を含むノード情報を周囲の無線ノードに送信する。初期の状態において、無線ノード１からのホップ数を認識しているのは無線ノード１のみであるため、無線ノード１がホップ数０を、同報通信により周囲の無線ノードに送信する。今、この同報通信を受信した無線ノードが無線ノード２と無線ノード３との２つの無線ノードであったとする。無線ノード２、３は、メトリック計算部１２を用いて、無線ノード１から受信したホップ数０と受信強度とに基づいて、無線ノード１を上位接続先ノードの候補としてメトリック値を計算し、上位接続先ノード決定部１３により無線ノード１を上位接続先ノードに決定する。このとき、無線ノード２、３で計算された無線ノード１のメトリック値は、それぞれ2.0と3.0であったとする。
【００２２】
次に、無線ノード２、３は、上位接続先ノードに決定した無線ノード１までのホップ数１を同報通信により周囲の無線ノードに送信する。無線ノード２からの同報通信を受信した無線ノードは、無線ノード１を除いて、無線ノード４、５、６、７の４台であり、無線ノード３からの同報通信を受信した無線ノードは、無線ノード１を除いて、無線ノード７、８、９の３台であったとする。
【００２３】
無線ノード４、５、６は、無線ノード２から受信したホップ数１と受信強度とに基づいて、無線ノード２を上位接続先ノードの候補としてメトリック値を計算し、無線ノード２を上位接続先ノードに決定する。このとき、無線ノード４、５、６で計算された無線ノード２のメトリック値は、それぞれ5.0であったとする。同様に、無線ノード９は、無線ノード３から受信したホップ数１と受信強度とに基づいて、無線ノード３を上位接続先ノードの候補としてメトリック値を計算し、無線ノード３を上位接続先ノードに決定する。このとき、無線ノード９で計算された無線ノード３のメトリック値は6.0であったとする。
【００２４】
他方、無線ノード７と無線ノード８は、無線ノード２、３の双方からノード情報を受信している。無線ノード７と無線ノード８は、無線ノード２、３のそれぞれを上位接続先ノードの候補としてメトリック値を計算し、メトリック値の小さい方を上位接続先ノードに決定する。今、無線ノード７で計算された無線ノード２のメトリック値が4.5、無線ノード３のメトリック値が5.5であり、無線ノード８で計算された無線ノード２のメトリック値が5.0、無線ノード３のメトリック値が5.5であったとする。すなわち、ホップ数は共に２だが、受信強度の相違によってこのような結果になったとする。すると、無線ノード７、８は、共に無線ノード２を上位接続先ノードに決定する。
【００２５】
以降、無線ノード４〜９からノード情報が周囲に送信され、また無線ノード１〜３からも再度ノード情報が周囲に送信され、これを受信した無線ノードにおいてメトリック値の計算、上位接続先ノードの決定が繰り返される。ここでは、上位接続先ノードの決定結果に変化がなかったものとする。このとき、無線ノード１を根、無線ノード２〜９を節あるいは葉とする木構造のネットワークトポロジは図１６に示すようになる。
【００２６】
図１６において、無線ノード間を上下に結ぶ実線は、下側の無線ノードが上側の無線ノードを上位接続先ノードとして選択していることを示す。また無線ノード間を上下に結ぶ破線は、下側の無線ノードが上側の無線ノードを上位接続先ノードの候補としているが、他にメトリック値の小さな上位接続先ノード候補が存在しているために棄却されたことを示している。また、実線および破線に付記された数値は、下側の無線ノードが上側の無線ノードを対象として計算したメトリック値を示す。この図１６を参照すると、無線ノード２の下位ノード数は５であり、同じ階層の無線ノード３の下位ノード数１と大きな偏りがある。
【００２７】
制御ノードである無線ノード１のネットワーク管理部１４は、図１６に示したようなネットワークトポロジを生成し、同階層の他の無線ノードに比較して下位の無線ノード数が多い無線ノード２を目的の無線ノードとして選択する。続いて無線ノード１のネットワーク管理部１４は、無線ノード２から周囲の無線ノードに送信するホップ数を、例えば実際のホップ数１に予め定められた数である１を加算した２に変更すべく、無線ノード２に対して変更要求メッセージを送信する。無線ノード２の周辺ノード情報取得部１１は、この変更要求メッセージを受信すると、その応答を無線ノード１に返した後、実際とは異なるホップ数２を周囲に送信する。他方、無線ノード３は、依然として実際のホップ数１を周囲に送信している。
【００２８】
無線ノード２からの同報通信を受信した無線ノードは、以前の状況と同じく、無線ノード１を除いて、無線ノード４、５、６、７の４台であり、無線ノード３からの同報通信を受信した無線ノードは、無線ノード１を除いて、無線ノード７、８、９の３台であったとする。
【００２９】
無線ノード４、５、６は、無線ノード２から受信したホップ数２と受信強度とに基づいて、無線ノード２を上位接続先ノードの候補としてメトリック値を計算し、無線ノード２を上位接続先ノードに決定する。このとき、無線ノード４、５、６で計算された無線ノード２のメトリック値は、それぞれ6.5であったとする。同様に、無線ノード９は、無線ノード３から受信したホップ数１と受信強度とに基づいて、無線ノード３を上位接続先ノードの候補としてメトリック値を計算し、無線ノード３を上位接続先ノードに決定する。このとき、無線ノード９で計算された無線ノード３のメトリック値は6.0であったとする。
【００３０】
他方、無線ノード７と無線ノード８は、無線ノード２、３の双方からノード情報を受信している。無線ノード７と無線ノード８は、無線ノード２、３のそれぞれを上位接続先ノードの候補としてメトリック値を計算し、メトリック値の小さい方を上位接続先ノードに決定する。今、無線ノード７で計算された無線ノード２のメトリック値が6.0、無線ノード３のメトリック値が5.5であり、無線ノード８で計算された無線ノード２のメトリック値が6.5、無線ノード３のメトリック値が5.5であったとする。すなわち、受信強度は以前の状況と同じであったとしても、ホップ数は無線ノード２が２ホップ、無線ノード３が１ホップと相違するためにこのような結果になったとする。すると、無線ノード７、８は、共に無線ノード３を上位接続先ノードに決定する。
【００３１】
以降、無線ノード４〜９からノード情報が周囲に送信され、また無線ノード１〜３からもノード情報が周囲に送信され、これを受信した無線ノードにおいてメトリック値の計算、上位接続先ノードの決定が繰り返される。ここでは、上位接続先ノードの決定結果に変化がなかったものとする。このとき、無線ノード１を根、無線ノード２〜９を節あるいは葉とする木構造のネットワークトポロジは図１６から図１７に示すように変化する。
【００３２】
図１７を参照すると、無線ノード２の下位ノード数は５から３に変化しており、結果的に同じ階層の無線ノード３の下位ノード数３と等しくなっている。
【００３３】
このように本実施形態によれば、マルチホップ無線ネットワークシステムにおけるツリートポロジの偏りを少ないコストで解消することができる。例えば、上述した例の場合、制御ノードである無線ノード１から無線ノード２に対して変更要求メッセージが１回送信され、その応答が無線ノード２から無線ノード１に１回送信される。無線ノード１から無線ノード２までは１ホップなので、総送信回数は２回である。これに対して、無線ノード１から無線ノード７、８に対して上位接続先ノードを無線ノード２から無線ノード３に切り替えるよう要求するメッセージを送信し、無線ノード７、８からその応答を無線ノード１に返す場合、無線ノード１から無線ノード７、８までは２ホップなので、総送信回数は８回となる。
【００３４】
本実施形態では、無線ノードから周囲に送信するノード情報がノード識別子とホップ数とから構成されているとしたが、ホップ数に代えて、あるいはホップ数に加えて他のデータを用いてもよい。例えば、ホップ数に代えて、あるいはホップ数に加えて、自ノードを上位接続先ノードとして選択している無線ノードの数である子ノード数を用いてもよい。この場合、メトリック値Ｍは以下の計算式で計算してよい。
Ｍ＝Ｍek（ｅ、ｋ）          …（２）
Ｍ＝Ｍehk（ｅ、ｈ、ｋ）      …（３）
ここで、Ｍek（ｅ、ｋ）は、受信強度ｅと子ノード数ｋとを引数として、子ノード数ｋがより多くなるほど、また受信強度ｅがより小さくなるほど、より大きな値のメトリック値Ｍを返す関数である。またＭehk（ｅ、ｈ、ｋ）は、受信強度ｅとホップ数ｈと子ノード数ｋとを引数として、ホップ数ｈおよび子ノード数ｋがより多くなるほど、また受信強度ｅがより小さくなるほど、より大きな値のメトリック値Ｍを返す関数である。そして、その場合には、実際の値と異なる値に故意に変更する対象をホップ数と子ノード数、あるいは子ノード数だけにしてもよい。
【００３５】
また本実施形態では、無線ノードから周囲に送信するノード情報がノード識別子とホップ数とから構成されているとしたが、ホップ数に代えて、あるいはホップ数に加えて、自ノードが上位接続先ノードを決定する際に計算した当該上位接続先ノードのメトリック値を用いてもよい。例えば、図１６の場合、無線ノード２は、無線ノード１のメトリック値2.0を含むノード情報を周囲に送信する。この場合、メトリック値Ｍは以下の計算式で計算してよい。
Ｍ＝Ｍem（ｅ、ｍ）          …（４）
Ｍ＝Ｍehm（ｅ、ｈ、ｍ）      …（５）
ここで、Ｍem（ｅ、ｍ）は、受信強度ｅとメトリック値ｍとを引数として、メトリック値ｍがより大きくなるほど、また受信強度ｅがより小さくなるほど、より大きな値のメトリック値Ｍを返す関数である。またＭehm（ｅ、ｈ、ｍ）は、受信強度ｅとホップ数ｈとメトリック値ｍとを引数として、ホップ数ｈがより多くなるほど、メトリック値ｍがより大きくなるほど、受信強度ｅがより小さくなるほど、より大きな値のメトリック値Ｍを返す関数である。そして、その場合には、実際の値と異なる値に故意に変更する対象をホップ数ｈとメトリック値ｍ、或いはメトリック値ｍだけにしてもよい。
また、メトリック値の計算に、重み付けパラメータの値であるハンディキャップ値を使用し、上記の計算式（１）〜（５）を以下の計算式のように変形してもよい。
Ｍ＝Ｍeh（ｅ、ｈ）＋α          …（１’）
Ｍ＝Ｍek（ｅ、ｋ）＋α          …（２’）
Ｍ＝Ｍehk（ｅ、ｈ、ｋ）＋α      …（３’）
Ｍ＝Ｍem（ｅ、ｍ）＋α          …（４’）
Ｍ＝Ｍehm（ｅ、ｈ、ｍ）＋α      …（５’）
上記の計算式（１’）〜（５’）において、αはハンディキャップ値を示す。ハンディキャップ値αの初期値は０である。そしてこの場合、ツリートポロジの偏りを解消するために、ハンディキャップ値αの値を設定あるいは変更するようにしてもよい。すなわち、制御ノードである無線ノード１は、ツリートポロジの偏りを解消するために、目的の無線ノード２のハンディキャップ値を設定あるいは変更し、変更後のハンディキャップ値を変更要求メッセージで無線ノード２へ送信する。無線ノード２の周辺ノード情報取得部１１は、この変更要求メッセージを受信すると、その応答を無線ノード１に返した後、ノード情報中の一つの情報としてハンディキャップ値を周囲に送信する。このノード情報を受信した周囲の無線ノードは、受信したノード情報に含まれる変更後の最新のハンディキャップ値を用いて無線ノード２を上位接続先ノード候補としてメトリック値を計算する。
【００３６】
また本実施形態では、特定の無線ノードを唯一つとしたが、２以上の特定の無線ノードが存在していてもよい。この場合、特定の無線ノード以外の無線ノードは、複数の特定の無線ノードと通信するのではなく、よりメトリック値の小さな１つの特定の無線ノードと通信する。従って、特定の無線ノードが複数存在する場合、特定の無線ノードの数だけ、ツリートポロジが形成される。そして、複数のツリートポロジ間に帰属する無線ノード数の偏りが発生する場合、特定の無線ノードから周囲に送信するノード情報に含まれるホップ数、子ノード数、メトリック値、ハンディキャップ値といったデータを故意に変更することにより、上記偏りを解消する制御を実施してもよい。
【００３７】
また本実施形態では、トポロジにおける同階層の他の無線ノードに比較して下位の無線ノード数が多い無線ノード２を目的の無線ノードとして選択したが、トポロジにおける同階層の他の無線ノードに比較して下位の無線ノード数が少ない無線ノード３を目的の無線ノードとして選択してもよい。この場合、無線ノード３が周囲に送信するホップ数を、無線ノード３を上位接続先ノードの候補として計算されるメトリック値がリンクの通信コスト的に小さくなるように変更すればよい（すなわち、実際より少ないホップ数を周囲に送信する）。ホップ数を実際のホップ数よりも小さな値に設定する際は、トポロジ構築時にループが発生する可能性があるため、ループ回避の処理を組み込む必要がある。ただし、本発明ではループ回避の処理については、範囲外であるため詳細には言及しない。
【００３８】
[第２の実施形態]
次に本発明の第２の実施形態について詳細に説明する。
【００３９】
[背景]
温度や湿度などの環境情報を収集する環境計測システムに適用される無線センサネットワークでは、各ノード（センサノード）がセンシングしたデータを一つのノード（シンクノード）に集める必要がある。そのため、ネットワークトポロジとしては、シンクノードを頂点としたツリートポロジを構築するのが一般的である。このツリートポロジは一般的に無線マルチホップネットワークに適したルーティングプロトコルにより構築される。
【００４０】
無線マルチホップネットワークに用いられるルーティングプロトコルには、プロアクティブ型のルーティングプロトコルと、リアクティブ型のルーティングプロトコルがある。プロアクティブ型のプロトコルの代表例はOLSR（Optimized Link State Routing）プロトコルである。リアクティブ型のプロトコルの代表例は、AODV（Ad hoc On-Demand Distance Vector）プロトコルやDSR（Dynamic Source Routing）プロトコルである。OLSRやAODVやDSRは、IETF（Internet Engineering Task Force）により規定されたプロトコルである。
【００４１】
これらのルーティングプロトコルでは、受信強度やホップ数に基づいて、シンクノードまでのコストをあらわすメトリック値を算出し、算出されたメトリック値に基づいたネットワークトポロジが構築される。そのため、無線センサネットワークでこれらのルーティングプロトコルを適用した場合、それぞれのセンサノードはシンクノードまでのリンクの通信コストが最小のパス（経路）を選択し、ネットワークトポロジを構築する。
【００４２】
また、ネットワークトポロジの最適化・平準化方法については規定がなく、ルーティングプロトコルにて作成されたトポロジをそのまま用いるか、各システムにて個別の対応を行っている。このため、次のような課題がある。
【００４３】
第１の課題は、センサノードはシンクノードまでの最小のパスを選択するため、ネットワークトポロジに接続しているノード数に偏りが発生することで、通信帯域を有効に利用できないことである。
【００４４】
第２の課題は、ネットワークトポロジ平準化のために、各ノードに接続先変更メッセージを送信する際に、参加しているノードをどれだけ（台数）何処へ（場所）どの様に（トポロジの形状）移動させるかを調整するための処理が増大し、管理サーバの負荷が増大することである。
【００４５】
第３の課題は、ネットワークトポロジの偏りを平準化するためには、各ノードに接続先変更メッセージを送信する必要があり、通信帯域を圧迫することである。
【００４６】
本実施形態の目的は、無線センサネットワークにおいて、ツリートポロジの平準化を低コスト（少ない通信量と計算量）で実現する方法を提供することである。
【００４７】
[概要]
本実施形態は、センサデータを収集する無線センサネットワークシステムにおいて、ツリートポロジを構築する際に、ツリートポロジの各枝の構成ノード数に偏りが生じた場合に、少ない通信量と計算量でノード数を平準化し、負荷分散する。
【００４８】
無線センサネットワークを構成する各ノードは、ノード情報を送信すると共に周辺ノード情報を取得する周辺ノード情報取得手段と、センサデータを収集するシンクノードへのコストを表すメトリック値を計算するメトリック計算手段と、メトリック計算手段により計算されたメトリック値を基に接続するノードを決定する接続先ノード決定手段とにより、自律的にシンクノードを頂点としてクラスタリングされたツリートポロジを構築する。その際、ツリートポロジ内の各枝間に下位ノード数の偏りが発生する可能性がある。本実施形態では、各枝間の下位ノード数の偏りを解消させる目的で、所定のセンサノードから周囲のノードに送信するシンクノードまでのホップ数を強制的に変更することで、各枝間のノードの移動を促し、下位ノード数の平準化を行う。
【００４９】
このようにして、本実施形態では、自律的にネットワークトポロジを構築するネットワークにおいて、トポロジ構築に使用するホップ数を故意に変更することで、少ない計算量と通信量にて無線センサネットワークにおけるツリートポロジのノード数を平準化することで、負荷分散ができるようにする。以下、本実施形態の構成、動作を説明する。
【００５０】
[構成]
図１を参照すると、本実施形態としてのシンクノードとセンサノードを使用した物理的な構成が示されている。図１において、シンクノード２０１は、センサノード２０２〜２１１がセンシングした情報をこれらセンサノード２０２〜２１１から収集する装置である。センサノード２０２〜２１１は、屋内、もしくは、屋外に設置され、外界の情報をセンシングし、センシングした情報をシンクノード２０１に対して送信を行う。なお、図１において、各ノード間を結ぶ折れ線は無線にて通信を行う関係を表したものである。
【００５１】
図２を参照すると、シンクノード２０１とセンサノード２０２〜２１１の接続関係が論理的に示されている。図２において、ノード間を結ぶ直線は無線にて通信を行う関係を表したものである。本実施形態は、図２に表すようにツリートポロジを構成し、シンクノード２０１を起点としてセンサノード２０２〜２１１がセンシングした情報を収集する構成が基本構成である。
【００５２】
図３を参照すると、センサノードの内部構成が示されている。図３において、センサノード３０は、図１および図２に示したセンサノード２０２〜２１１の何れかである。センサノード３０は、無線通信部３０１とルーティング機能部３０２とアプリケーション部３０３とセンサ部３０４とを有する。
【００５３】
無線通信部３０１は、ルーティング機能部３０２からの無線通信データの送受信と、他のノードとの無線通信を行う機能である。無線通信部３０１は、無線LANやZigBee、省電力無線などの無線通信を行うことのできるモジュールもしくは回路にて構成される。
【００５４】
ルーティング機能部３０２は、ルーティングテーブル３０２１とメトリック計算部３０２２と周辺ノード情報取得部３０２３とパケット送受信部３０２４とで構成される。
【００５５】
ルーティングテーブル３０２１は、周辺ノード情報取得部３０２３から得られるノード識別情報や受信感度、シンクノードまでのホップ数といった周辺ノード情報を格納するテーブルであり、周辺ノード情報とともにメトリック計算部３０２２で算出されたメトリック値、上位ノードや下位ノードといったツリートポロジの情報も格納されており、パケットの送信先を決定するためのテーブルである。
【００５６】
メトリック計算部３０２２は、周辺ノード情報取得３０２３から得られるノード識別情報や受信強度、シンクノードまでのホップ数などから、該当するノードとのリンクのメトリック値を算出し、上位接続先ノードを決定する機能である。
【００５７】
周辺ノード情報取得部３０２３は、受信したパケットのメッセージからノードの識別情報とそのパケットの受信強度などを取得する機能である。また、周辺ノード情報取得部３０２３は、周囲のノードに自ノードのノード情報として、ノード識別子およびシンクノードまでのホップ数などを送信する機能を有する。
【００５８】
パケット送受信部３０２４は、無線通信部３０１とのパケットを送受信する機能とアプリケーション部３０３とのデータパケットを送受信する機能とを有する。また、本パケット送受信部３０２４は、無線通信部３０１から受信したパケットが自ノード宛てではないが、転送が必要な場合は再転送する機能も有する。
【００５９】
アプリケーション部３０３は、センサ情報取得部３０３１とデータパケット送信部３０３２とで構成される。
【００６０】
センサ情報取得部３０３１は、センサ部３０４がセンシングしたデータを取得する機能である。
【００６１】
データパケット送信部３０３２は、センサ情報取得部３０３１が取得したセンサデータをデータパケットとして送信する機能である。
【００６２】
センサ部３０４は、温度や湿度、電力など所定の物理量をセンシングする機能と、センシングした物理量のデータをアプリケーション部３０３へ通知する仕組みを有する。
【００６３】
なお、本実施形態では、無線通信部３０１で使用する無線規格を無線LANやZigBee、省電力無線としているが、無線通信を行えればよく、Bluetoothといった他の無線通信規格を使用してもよい。メトリック計算部３０２２において、周辺ノード情報取得部３０２３から取得する情報を、ノード識別情報や受信強度、シンクノードまでのホップ数としているが、計算に使用する情報は、周辺ノード情報取得部３０２３が取得できる情報であればよく、バッテリー残容量など周辺ノードに関連する情報を用いて計算してもよく、特に限定しない。周辺ノード情報取得部３０２３において、取得する情報をノード識別情報とパケット受信強度などとしているが、周辺ノードに関連する情報であればよく、特に限定しない。センサ部３０４において、センシングする物理量を温度や湿度、電力量としているが、センシングする物理量は例示している3種以外であってもセンシング可能な情報であればよいため、特に限定しない。
【００６４】
図４を参照すると、シンクノードの内部構成が示されている。図において、シンクノード４０は、図１および図２のシンクノード２０１に対応する。シンクノード４０は、無線通信部３０１とルーティング機能部３０２とアプリケーション部４０３とデータベース４０４とネットワーク管理部４０５を有する。
【００６５】
無線通信部３０１とルーティング機能部３０２については、図３に示したセンサノード３０の無線通信部３０１とルーティング機能部３０２と同一の機能である。
【００６６】
アプリケーション部４０３は、データベース管理部４０３１とデータパケット受信部４０３２とで構成される。
【００６７】
データベース管理部４０３１は、データパケット受信部４０３２から得られるセンサデータをデータベース４０４に書き込む機能である。
【００６８】
データパケット受信部４０３２は、ルーティング機能部３０２からデータパケットを受信する機能と、受信したパケットからノード識別情報とセンサデータとを取り出し、データベース管理部４０３１へ渡す機能を有する。
【００６９】
データベース４０４は、アプリケーション部４０３から得られるノード識別情報とセンサデータとを対応付けて格納するデータベースである。
【００７０】
ネットワーク管理部４０５は、トポロジ管理部４０５１と演算部４０５２とで構成される。
【００７１】
トポロジ管理部４０５１は、演算部４０５２において導きだされたツリートポロジの情報を、ネットワークデータベース４０６へ格納する。また、周期的にツリートポロジの情報を監視し、偏りがある場合は、演算部４０５２に平準化処理を依頼する。さらに、演算部４０５２で平準化用に算出したホップ数を、該当ノードへ反映するために、ルーティング情報をネットワークデータベース４０６から取得し、値変更メッセージパケットを作成した後、ルーティング機能部３０２を通して該当ノードへ通知する。
【００７２】
演算部４０５２は、センサノードから受信したパケット上のルーティング情報をルーティング機能部３０２から取得し、ネットワークデータベース４０６に格納済みのルーティング情報と統合することでセンサネットワーク全体のツリートポロジを導出する。また、トポロジ管理部４０５１から平準化処理を依頼された場合は、ネットワークデータベース４０６にアクセスし、導き出したツリートポロジにおけるノード数偏りの平準化を行うために該当ノードへ設定するホップ数の算出を行い、トポロジ管理部４０５１へ通知する。
【００７３】
ネットワークデータベース４０６は、ネットワーク管理部４０５から得られるトポロジ情報とルーティングデータとを格納するデータベースである。
【００７４】
なお、本実施形態では、シンクノード４０上のデータベース４０４へセンサデータを、ネットワークデータベース４０６にツリートポロジ情報をそれぞれ格納しているが、別途設置したサーバにデータベース４０４とネットワークデータベース４０５の機能を搭載する構成としてもよい。
【００７５】
[動作]
次にシンクノードとセンサノードの基本動作を図５に示すタイムチャートを使用して説明する。
【００７６】
図５は、プロアクティブ型のルーティングプロトコルを動作させた場合の例である。プロアクティブ型のルーティングプロトコルでは、各センサノードが定期的にネットワークトポロジ構築処理を実施し、接続先ノードを決定することでツリートポロジが構築される。図５のタイムチャートは、センサノード５０２がツリートポロジ構築処理を実施した場合の動作を示している。図５において、センサノード５０２、５０３は図１および図２のセンサノード２０２〜２１１の何れか２つのセンサノードを示している。
【００７７】
図５において、センサノード５０２が周辺ノード情報取得５０４を実施し、周辺探索メッセージをブロードキャストで送信している。ブロードキャストとは、あて先のアドレスにブロードキャストアドレスを指定し、すべてのノードに対して送信する送信方法である。なお、周辺探索メッセージには、センサノード５０２のネットワークトポロジへの参加状況やシンクノードまでのホップ数などを含んでいる。
【００７８】
周辺探索メッセージを受信したシンクノード２０１とセンサノード５０３は、それぞれ周辺探索メッセージに対する周辺探索応答メッセージをユニキャストで送信する（５０５、５０６）。ユニキャストとは、あて先アドレスにノードのアドレスを指定することで、そのノードに対して送信する送信方法である。なお、周辺探索応答メッセージには、ネットワークトポロジへの参加状況やシンクノードまでのホップ数などを含んでいる。
【００７９】
周辺探索応答メッセージを受信したセンサノード５０２は、周辺探索応答メッセージに含まれるツリートポロジへの参加状況やシンクノードまでのホップ数などを取得する。また、周辺探索応答メッセージを受信した際の受信強度についても取得する。
【００８０】
このように、周辺ノード情報取得５０４により、周辺探索メッセージと周辺探索応答メッセージとを周辺のノード間で送受信することで、周辺の通信可能なノードの周辺ノード情報を取得することができる。
【００８１】
次に、メトリック計算５０７を実施する。メトリック計算５０７は、周辺ノード情報取得５０４により得られた周辺ノード情報から、周辺のノード毎に、自ノードからシンクノードまでのパスのコストを示すメトリック値を計算する処理である。ルーティングプロトコルごとに異なるが、ここでは、取得した周辺ノード情報の受信強度とシンクノードまでのホップ数とからメトリック値を計算する。なお、本実施形態は、コストが小さい値であるほどシンクノードまでの通信状況が有利となるルーティングプロトコルを適用した場合である。
【００８２】
次に、ルーティングテーブル更新５０８を実施する。ルーティングテーブル更新５０８は、メトリック計算５０７で算出した周辺ノードのメトリック値をルーティングテーブルへ書き込む処理である。
【００８３】
次に、接続先ノード決定５０９を実施する。接続先ノード決定５０９は、ルーティングテーブル上で最もメトリック値が小さい（コストが低い）ノードを選出する。選出した結果、現在接続中のノードであるかどうかを確認し、現在接続中のノードではない場合は接続先変更処理５１０を実施する。接続先変更処理５１０は、新たな接続先となった上位接続先ノードに対して自ノードが子ノードとして存在することを知らせる処理である。接続先変更処理５１０によるメッセージを受信した上位接続先ノードは通信元のノードを子ノードとして認識すると共に、このメッセージをシンクノード２０１に転送する。
【００８４】
上記の処理を繰り返し実施することにより、ネットワークトポロジが構築されることとなる。
【００８５】
図２は上記処理を実施することで作成されたネットワークトポロジ図であり、トポロジに偏りがある。以下、この偏りを是正し、トポロジを平準化する処理の概要を説明する。
【００８６】
図２を参照すると、シンクノード２０１を頂点としたツリートポロジとなっており、シンクノードからの最大ホップ数は３ホップである。また、センサノードで子ノードを持つノード（センサノード２０２，２０３，２０４，２０６）は、クラスタヘッドノードと呼ばれる。図２の例では、クラスタヘッドノード２０６が最も多く子ノードを収容しており、その数は３台である。
【００８７】
図６を参照すると、図２の論理的な構成図上の各リンクにメトリック値を追記したものである。各ノード間の点線は、接続は可能であるが、トポロジ構成時に接続先として選択されなかったリンクを示している。
【００８８】
図６のツリートポロジにおいて、２ホップ目に注目すると、センサノード２０４の子ノード数は１台、センサノード２０６の子ノード数は３台、センサノード２０５，２０７の子ノードは無く、センサノード２０６に多くの子ノードが接続しており、ツリートポロジの下位ノード数に偏りがある。この状況では、センサノード２０６は、下位ノードを管理するのに他の２ホップ目のノード（２０４，２０５，２０７）の３倍以上のメモリを使用し、センサデータ収集時は他の２ホップ目のノード（２０４，２０５，２０７）の３倍以上のデータを転送することになり、処理負荷およびネットワーク負荷ともに高い状況となっている。
【００８９】
本実施形態では、図６のツリートポロジにおいてセンサノード２０６の負荷を、データ通信量を少なく、センサノード２０６から周囲に送信するシンクノードまでのホップ数を変更させることで、処理負荷およびネットワーク負荷を軽減させる。処理内容について、図７の処理フローを用いて説明する。
【００９０】
図７を参照すると、トポロジ偏り周期監視７０１をシンクノード２０１では周期的に実施する。周期監視は１時間毎であってもよいし、１月毎といった長期間であってもよい。ただし、短時間で周期監視する設定にした場合は、シンクノードでの処理負荷が上がることや、長期間で周期監視する設定にした場合は、ツリートポロジにおけるノード数の偏りが継続することで特定リンクの通信負荷が解消されないこととなるため、参加しているノード数などから周期時間を設定するとよいが、特に限定しない。本実施形態ではセンシングの対象を電力メータの電力使用量であるものとし、それを考慮して、トポロジ偏り周期監視７０１の周期は1日とするが、特に限定しない。
【００９１】
次に、一日ごとに実施されるトポロジ偏り周期監視７０１により、ネットワークデータベース調査７０２が実行される。ネットワークデータベース調査７０２は、トポロジ管理部４０５１が、ネットワークデータベース４０６に格納されているツリートポロジ情報から偏りがあるかどうかを調査する。
【００９２】
図８はネットワークデータベース４０６に格納されているツリートポロジ情報の構成例である。ネットワークデータベース４０６は、ノード２０１〜２１１のノード識別子に対応して、ノード２０１までのホップ数、上位接続先ノード、当該上位接続先ノードのメトリック値、子ノード数、変更フラグ、変更値とを保持している。例えば６行目は、センサノード２０６は、シンクノード２０１までのホップ数は２であり、シンクノード２０１と通信する際の上位接続先ノードはセンサノード２０３であり、センサノード２０３を上位接続先ノードとして選択した際にセンサノード２０３に対して計算したメトリック値は4.0であり、子ノード数は３であり、変更フラグは０（変更なし）であり、変更値は未設定であることを示している。なお、ツリートポロジ情報に格納する情報は図８に記載した情報に限定されない。例えば、周辺に存在するセンサノードの識別子やそのノードを上位接続先ノード候補とした際に計算したメトリック値が追加されていても良いし、ルーティング情報や各ノードの接続状況などの情報が追加されていてもよい。
【００９３】
図８のツリートポロジ情報から、ホップ数が１のノードは２台（２０２，２０３）あり、それぞれ子ノードが２台接続している。ホップ数が２のノードは４台（２０４，２０５，２０６，２０７）あり、子ノードの接続台数はセンサノード２０６に３台、センサノード２０４に１台、その他のノードには０台である。ホップ数が３のノードは４台（２０８，２０９，２１０，２１１）あり、すべてのセンサノードで子ノードの接続台数は０台である。この結果から、ホップ数が２のノードにおいて、下位ノード数に偏りがあることが分かり、トポロジ偏り判定７０３にて、『偏りあり』の方向へ処理が進む。偏りがないと判断した場合は、特に処理を行わず次の周期まで待機する。
【００９４】
変更値算出７０４は、ツリートポロジにおけるノード数の偏りを解消するために、センサノード２０６が周辺探索メッセージにおいて通知するホップ数を算出する処理である。本実施形態では、変更値算出７０４は、センサノード２０６が周辺探索メッセージにおいて通知するホップ数を実際のホップ数２に１を加えたホップ数３へ変更すると算出し、ツリートポロジのノード数の平準化を行う。変更値の算出には、ツリートポロジ情報８０上のデータのみを使用してもよいし、位置情報や消費電力量など他の情報を加えて算出してもよい。算出した変更値は、図８のツリートポロジ情報に記録される。
【００９５】
次に、変更メッセージ作成７０５では、トポロジ管理部４０５１が算出したホップ数の変更値をルーティング機能部３０２に通知し、パケット送受信部３０２４が該当のノード（センサノード２０６）へ要求を出すためのメッセージを作成する。その後、変更通知送信７０６の処理において、無線通信部３０１を通して送信を行う。この変更要求メッセージは、センサノード２０３を中継してセンサノード２０６へ届けられる。
【００９６】
センサネットワーク２０６は、上記変更要求メッセージを無線通信部３０１を通して、ルーティング機能部３０２で受信する。受信した変更要求メッセージの内容は、パケット送受信部３０２４から周辺ノード情報取得部３０２３へ通知され、周辺ノード情報取得部３０２３に強制変更値として保存される。この後、変更応答メッセージを無線通信部３０１からシンクノード２０１へ送信する。この変更応答メッセージを受けたシンクノード２０１では、変更が行われた場合、図８のツリートポロジの該当する変更フラグが１（変更あり）に設定される。
【００９７】
センサノード２０６の周辺ノード情報取得部３０２３は、変更値が保存されている場合、自ノード２０６が選択している上位接続先ノード２０３が送信しているシンクノードまでのホップ数１に１を加えて計算するホップ数２に代えて、変更値を用いる。変更値が保存されていない場合には、上記計算したホップ数２をそのまま使用する。センサノード２０６の周辺ノード情報取得部３０２３は、変更値を保存すると速やかに（或いは次の周期の到来を待ってもよい）、変更値を用いて周辺探索メッセージをブロードキャストで送信する。すなわち、今の例では、センサノード２０６は、シンクノード２０１までのホップ数を実際は２ホップであるが、３ホップとして送信する。この周辺探索メッセージを受信した周囲のシンクノード２０５、２０９、２１０、２１１等は、センサノード２０６を上位接続先ノード候補とするメトリック値の計算を実施する。この結果、センサノード２０６よりもメトリック値の小さな他の上位接続先ノード候補が存在すれば、接続先変更処理を実施する。
【００９８】
メトリック変更応答受信７０７の処理では、シンクノード２０１は、指定した変更値の反映処理について結果を確認し、応答判定７０８にて変更不可の場合は、変更通知送信７０６の処理を再度実施する（このとき、図８のツリートポロジ情報の該当する変更フラグを０に戻し、変更値を消去する）。数回繰り返しても変更できない場合は、処理を終了し、周期監視状態へ戻る。他方、変更完了の場合、接続先変更通知が受信されるのを一定期間だけ待ち合わせ、接続先変更通知を受信すると、トポロジ情報更新７０９にてトポロジを再構築し、ネットワークデータベース更新７１０にてその結果をデータベース上へ反映する。
【００９９】
図９は、トポロジ情報更新７０９にて再構築されたツリートポロジを示す。図９を参照すると、ツリートポロジは平準化された状態である。これは、センサノード２０６から送信されるホップ数が２から３に変わったことで、センサノード２０９、２１１が上位接続先ノードとしてセンサノード２０６でなくセンサノード２０５、２０７を選択したことによる。これにより、センサノード２０６に接続していた下位ノード数は３台から１台へと減少し、負荷分散することができる。さらに、ツリートポロジは、２ホップ目のセンサノード（２０４，２０５，２０６，２０７）の下位ノードが全て１台となり平準化できる。
【０１００】
上記接続変更処理する際、ネットワーク上へ送信されるメッセージ数は要求と応答の２メッセージ、送信回数はホップ数の２回であり、総送信回数は４回である。これに対して、各センサノード２０９、２１１へ接続先変更メッセージを送信する場合は、メッセージ数は要求２つ、応答２つの合計４メッセージで、送信回数はホップ数の３回となり、総送信回数は１２回となる。このことから、本実施形態では、送信回数で3分の１となり、ネットワークの通信負荷を抑えつつ、ツリートポロジのノード数の平準化、ネットワークの負荷分散を実現できる。
【０１０１】
[効果]
このように本実施形態は、以下に記載するような効果を奏する。
第１の効果は、ツリートポロジにおけるノード数の偏りを平準化するのに、接続先を切り替える下位のノードでなく、その上位のノードに対して、周囲に送信するホップ数を変更する要求メッセージを与えることで実施するため、ツリートポロジの平準化による負荷分散を実施する際の通信量を抑えられることである。
第２の効果は、ツリートポロジにおけるノード数の偏りを平準化する際に、どのセンサノードをどのセンサノードに接続換えすべきかを算出する必要がないため、計算量を少なくできることである。
第３の効果は、ホップ数を強制的に変更しても、各センサノードは上位接続先ノード候補の中からメトリック値が最も小さな上位接続先ノードを自律的に決定するため、通信可能な状態を維持したまま平準化が実施可能なことである。
【０１０２】
なお、本実施形態では、ホップ数を強制的に変更する例を示したが、第１の実施形態において既に説明したように、ホップ数以外のデータ、例えば子ノード数やメトリック値やハンディキャップ値を変更対象とすることも可能である。
【０１０３】
また設定した強制変更値の設定を解除する方法は任意で良い。例えば、設定してから一定期間経過後に自動的に解除するようにしてもよい。
【０１０４】
[第３の実施形態]
本実施形態は、電力、ガス、水道の使用量を無線により検針する自動検針システムなどへ適用するのに好適な実施形態を示す。自動検針システムにおいては、シンクノードが複数ある大規模ネットワークとなる。そのため、シンクノード間での帰属ノード数の平準化が必要になる。
【０１０５】
第２の実施形態においては、シンクノードが１台のみ存在し、ツリートポロジを１つ構成し、ツリートポロジにおけるノード数の偏りの平準化を実施した。本実施形態では、シンクノードが２台存在する場合について説明を行う。また、シンクノードの数が３台以上となった場合も同様に実現できる。
【０１０６】
図１０を参照すると、シンクノードが２台存在する。シンクノード１０００、１０２１は、有線ネットワークへ接続され、トポロジデータベース１０３０と有線を介して接続する。トポロジデータベース１０３０は、ネットワーク情報とセンシングデータとを格納する機能と、偏り是正機能とを有する。図１０において、各ノード間の無線リンクは折れ線で示し、各リンク上に記述した数値は、下位ノードの上位接続先ノードに対するメトリック値を示す。また、破線のリンクは接続に使用されていないが、通信が可能である予備リンクを示す。
【０１０７】
図１１は、偏り是正前のトポロジデータベース上のトポロジ情報１１０を示している。図１１を参照すると、トポロジ情報１１０は、各ノードの識別子に対応して、シンクノードまでのホップ数、シンクノードと通信する際の上位接続先ノード、この上位接続先ノードを選定する際に計算したメトリック値、情報送信先のシンクノードの番号、変更フラグ、変更値を格納している。しかし、トポロジ情報１１０に格納される情報は、これに限定されるものではない。例えば周辺ノードの情報を含んでいても良い。図１１のツリートポロジ情報１１０から、シンクノード１０２１に帰属しているセンサノード数は１３台、シンクノード１０００に帰属しているノード数は７台であり、シンクノード間の帰属台数に偏りがあることがわかる。トポロジデータベース１０３０には、トポロジの偏り調査機能や平準化機能が実装されており、シンクノード間のノード数の平準化動作を実施する。
【０１０８】
トポロジデータベース１０３０では、トポロジ偏り周期監視７０１を実施し、周期的にシンクノード間の帰属ノード数を比較し偏りを検査する。図１０の例では、ネットワーク内にセンサノードは全部で２０台存在する。
【０１０９】
ネットワーク上のツリートポロジ間のノード数の偏りを検出する方法の一例を以下に説明する。まず、全センサノード数をシンクノード数で割った商（１０台）を平均帰属ノード数とする（式６）。帰属ノード数と平均帰属ノード数の差分許容をある量に設定（本例では２割）し、平均帰属ノード数から差分許容数（２台）を算出する（式７）。平準化実行判定閾値ノード数を、平均帰属ノード数と差分許容数とに基づいて算出し（式８）、結果を用いて判定を行う。本実施形態では、平準化実行判定閾値台数を下限は８台、上限は１２台と設定する。
全ノード数 ÷ 全シンクノード数 ＝ 平均帰属ノード数・・・・・（式６）
平均帰属ノード数 × ０．２ ＝ 差分許容数・・・・（式７）
平均帰属ノード数 ± 差分許容数  ＝ 平準化実行判定閾値ノード数・・・・（式８）
【０１１０】
上記算出方法について、差分許容量や判定実施時に平準化実行判定閾値ノード数を含むか否か、等については、特に限定するものではない。
【０１１１】
算出した平準化実行判定閾値ノード数を用いて、トポロジ偏り判定（７０３）を実施すると、シンクノード毎の帰属ノード数に偏りがあると判定する。
【０１１２】
次に、トポロジデータベース１０３０は、シンクノード１０００に比べて下位ノード数が多いシンクノード１０２１を目的のノードとして選択し、このノード１０２１から周囲のノードに送信するホップ数を実際の値とは異なる値に故意に変更する。ここでは、例えば実際のホップ数が０であるところを、ホップ数１に強制的に変更する。
【０１１３】
図１２は、シンクノード１０２１のホップ数を１に変更した後、一定期間経過後のトポロジデータベース上のトポロジ情報１２０を示している。なお、トポロジ情報１２０では、メトリック値や上位接続先ノードが変更となった箇所に下線を引いている。また図１３は、シンクノード１０２１のホップ数を１に変更した後、一定期間経過後のツリートポロジを示している。
【０１１４】
図１２および図１３を参照すると、シンクノード１０２１の送信するホップ数が０から１に変化することにより、センサノード１０１９、１０２０のシンクノード１０２１に対するメトリック値が変化している。また、センサノード１０１９、１０２０から周囲に送信するホップ数が１から２へと変化するため、センサノード１０１８、１０１５のセンサノード１０１９に対するメトリック値、センサノード１０１６、１０１７のセンサノード１０２０に対するメトリック値が変化している。さらに、センサノード１０１８、１０１５、１０１６、１０１７、１０１３が周囲に送信するホップ数が２から３へと変化するため、センサノード１０１４、１００８、１００９、１０１０のセンサノード１０１５に対するメトリック値が変化し、センサノード１０１１、１０１２、１０１３のセンサノード１０１７に対するメトリック値が変化している。この結果、センサノード１００９、１０１０は、センサノード１０１５からメトリック値のより小さなセンサノード１００３に上位接続先ノードを切り替えている。また、センサノード１０１１は、センサノード１０１７からメトリック値のより小さなセンサノード１００４に上位接続先ノードを切り替えている。
【０１１５】
以上の結果、シンクノード１０００、１０２１に帰属しているセンサノード数は各１０台になり、平準化されている。
【０１１６】
また、シンクノード１０００、１０２１それぞれに帰属のトポロジ（シンクノードの内のトポロジ）に偏りがあると判断した場合は、第２の実施形態と同様の手順で平準化されることになる。
【０１１７】
なお、本実施形態では、ホップ数を強制的に変更する例を示したが、第１の実施形態において既に説明したように、ホップ数以外のデータ、例えば子ノード数やメトリック値やハンディキャップ値を変更対象とすることも可能である。
【０１１８】
以上本発明を幾つかの実施形態を挙げて説明したが、本発明は以上の実施形態にのみ限定されず、その他各種の付加変更が可能である。また、本発明の無線ノードは、その有する機能をハードウェア的に実現することは勿論、コンピュータとプログラムとで実現することができる。プログラムは、磁気ディスクや半導体メモリ等のコンピュータ可読記録媒体に記録されて提供され、コンピュータの立ち上げ時などにコンピュータに読み取られ、そのコンピュータの動作を制御することにより、そのコンピュータを前述した各実施の形態における無線ノードとして機能させる。
【産業上の利用可能性】
【０１１９】
本発明は、環境計測システム、自動検針システム、無線センサネットワーク、無線マルチホップネットワーク、無線基地局と無線端末などに適用可能である。
【符号の説明】
【０１２０】
１〜１０…無線ノード
１１…周辺ノード情報取得部
１２…メトリック計算部
１３…上位接続先ノード決定部
１４…ネットワーク管理部
【図１】
0005804504.tif 000002
【図２】
0005804504.tif 000003
【図３】
0005804504.tif 000004
【図４】
0005804504.tif 000005
【図５】
0005804504.tif 000006
【図６】
0005804504.tif 000007
【図７】
0005804504.tif 000008
【図８】
0005804504.tif 000009
【図９】
0005804504.tif 000010
【図１０】
0005804504.tif 000011
【図１１】
0005804504.tif 000012
【図１２】
0005804504.tif 000013
【図１３】
0005804504.tif 000014
【図１４】
0005804504.tif 000015
【図１５】
0005804504.tif 000016
【図１６】
0005804504.tif 000017
【図１７】
0005804504.tif 000018