(57)【要約】  アドホックネットワークシステムは、特定のノードとの間で通信が行われる複数のノードにより構成される。各ノードは、算出部と、選択部とを備える。算出部は、自ノードよりも特定ノードに近い側である上流側より、自ノードを経由する通信ノード数を累積した値を算出する。選択部は、算出部によって算出された通信ノード数の累積値に基づき、上流側に位置するノードから接続先となるノードを選択する。
2013129671.tif 000002
【特許請求の範囲】
【請求項１】
特定のノードとの間で通信が行われる複数のノードにより構成されるアドホックネットワークシステムにおいて、
各ノードは、
自ノードよりも前記特定のノードに近い側である上流側より、自ノードを経由する通信ノード数を累積した値を算出する算出部と、
前記算出部によって算出された前記通信ノード数の累積値に基づき、前記上流側に位置するノードから接続先となるノードを選択する選択部と
を備えたことを特徴とするアドホックネットワークシステム。
【請求項２】
前記各ノードは、ノード位置とは関連の無い値によりグループ化されており、
前記選択部は、前記特定のノードから指定されたホップ数と前記特定のノードから自ノードに至るホップ数とが同一であり、かつ、前記特定のノードから指定された特定の前記グループに自ノードが属する場合に、前記接続先のノードの選択を行うことを特徴とする請求項１に記載のアドホックネットワークシステム。
【請求項３】
特定のノードとの間で通信が行われる複数のノードにより構成されるアドホックネットワークシステムにおいて実行される経路選択方法であって、
各ノードが、
自ノードよりも前記特定ノードに近い側である上流側より、自ノードを経由する通信ノード数を累積した値を算出し、
算出された前記通信ノード数の累積値に基づき、前記上流側に位置するノードから接続先となるノードを選択する
ことを含むことを特徴とする経路選択方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アドホックネットワークシステム及び経路選択方法に関する。
【背景技術】
【０００２】
従来、外部のサーバに対する窓口となる特定のノードであるゲートウェイ（ＧＷ：Gateway）との間で通信が行われる複数のノードにより構成されるアドホックネットワークシステムがある。アドホックネットワークシステムでは、各ノードは、隣接のノードから受信したパケットを他のノードに中継することで、通信経路を形成する。【０００３】
パケットの通信経路を構築する従来の手法について説明する。従来の手法では、各ノードは、パケットのホップ数や受信レベル等の評価パラメータを用いて、ＧＷ等の特定のノードに至る複数の通信経路の評価値を算出する。そして、各ノードは、算出した各評価値に基づき、特定のノードに対する通信経路を選択する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−２２３３９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来技術では、ＧＷを頂点とするツリー構造にアドホックネットワークシステムを適用した場合に、ツリー構造の上流側に位置する集約部分でトラフィック負荷が集中する恐れがあるという問題があった。【０００６】
開示の技術は、上記に鑑みてなされたものであって、ＧＷを頂点とするツリー構造の上流側に位置する集約部分に対するトラフィック負荷を分散することができるアドホックネットワークシステム及び経路選択方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本願の開示するアドホックネットワークシステムは、一つの態様において、特定のノードとの間で通信が行われる複数のノードにより構成される。各ノードは、算出部と、選択部とを備える。算出部は、自ノードよりも前記特定ノードに近い側である上流側より、自ノードを経由する通信ノード数を累積した値を算出する。選択部は、前記算出部によって算出された前記通信ノード数の累積値に基づき、前記上流側に位置するノードから接続先となるノードを選択する。
【発明の効果】
【０００８】
本願の開示するアドホックネットワークシステムの一つの態様によれば、ＧＷを頂点とするツリー構造の上流側に位置する集約部分に対するトラフィック負荷を分散することができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、本実施例に係るアドホックネットワークシステムの構成を示す図である。
【図２】図２は、本実施例におけるノードが経路を選択する処理の一例を説明するための図（その１）である。
【図３】図３は、本実施例におけるノードが経路を選択する処理の一例を説明するための図（その２）である。
【図４】図４は、本実施例のハローパケットのデータ構造の一例を示す図である。
【図５】図５は、本実施例に係るノードの構成を示す機能ブロック図である。
【図６】図６は、本実施例に係るルーティングテーブルのデータ構造の一例を示す図である。
【図７】図７は、本実施例における算出部が通信ノード数の累積値を算出する処理の一例を説明するための図である。
【図８】図８は、本実施例におけるＧＷが通知するＧＷ広告フレームのデータ構造の一例を示す図である。
【図９】図９は、本実施例におけるＧＷがＧＷ広告フレームを通知する処理について説明するための図である。
【図１０】図１０は、本実施例に係るノードを含むアドホックネットワークシステムが転送先の経路を選択する処理の流れの一例を説明するための図（その１）である。
【図１１】図１１は、本実施例に係るノードを含むアドホックネットワークシステムが転送先の経路を選択する処理の流れの一例を説明するための図（その２）である。
【図１２】図１２は、本実施例に係るノードを含むアドホックネットワークシステムが転送先の経路を選択する処理の流れの一例を説明するための図（その３）である。
【発明を実施するための形態】
【００１０】
以下に、本願の開示するアドホックネットワークシステム及び経路選択方法の実施例を図面に基づいて詳細に説明する。なお、この実施例により開示技術が限定されるものではない。
【実施例】
【００１１】
まず、本実施例に係るアドホックネットワークシステムの構成について説明する。図１は、本実施例に係るアドホックネットワークシステムの構成を示す図である。図１に示すように、本実施例に係るアドホックネットワークシステムは、ＧＷ１と、ノード１００ａ〜１００ｈを有する。ＧＷ１は、特定のノードの一例である。ＧＷ１、各ノード１００ａ〜１００ｈは、隣接のノードと無線により接続する。例えば、ＧＷ１は、ノード１００ａ、１００ｂに接続される。これにより、ＧＷ１及びノード１００ａ〜１００ｈは、ＧＷ１を頂点とするツリー構造を形成する。本実施例では、ノード１００ａ〜１００ｈを特に区別しない場合には、ノード１００ａ〜１００ｈをノード１００と表記することがあるものとする。また、ノード１００よりもＧＷ１に近い側を、ノード１００の上流側と表記し、ノード１００よりもＧＷ１から遠い側を、ノード１００の下流側と表記することがあるものとする。【００１２】
ノード１００は、ハローパケット（Hello  Packet）を送受信することで、通信経路を構築する。ノード１００は、通信経路を構築する場合に、ノード１００の上流側より、ノード１００を経由するノードの数を累積した値を算出する。ノード１００を経由するノードとは、言い換えると、ノード１００の下流側に位置するノードを意味する。以下では、ノード１００の下流側に位置するノードの数を、通信ノード数と表記し、ノード１００の通信ノード数を累積した値を、通信ノード数の累積値と表記する。【００１３】
ノード１００は、算出した通信ノード数の累積値に基づいて、ノード１００の上流側に位置するノードから接続先となるノードを選択し、データ転送を行う。【００１４】
次に、図１に示したノード１００が経路を選択する処理の一例について説明する。図２及び図３は、本実施例におけるノードが経路を選択する処理の一例を説明するための図である。図２及び図３において、ＧＷ１、各ノード１００近傍に記載されたＢは、通信ノード数を示し、ノード１００内に記載された数値は、上流側からノード１００に至る通信ノード数の累積値を示す。【００１５】
ノード１００は、隣接のノードとのハローパケットの送受信時に、ハローパケットに含まれる情報を基にして、上流側から自ノード１００に至る通信ノード数の累積値を算出する。図２に示す例では、ノード１００ａは、自ノード１００ａの通信ノード数「２」と、ハローパケットに含まれるＧＷ１の通信ノード数「８」とを加算することで、上流側から自ノード１００ａに至る通信ノード数の累積値「１０」を算出する。ノード１００ｂは、自ノード１００ｂの通信ノード数「４」と、ハローパケットに含まれるＧＷ１の通信ノード数「８」とを加算することで、上流側から自ノード１００ｂに至る通信ノード数の累積値「１２」を算出する。ノード１００ｃは、自ノード１００ｃの通信ノード数「１」と、ハローパケットに含まれる上流側からノード１００ａに至る通信ノード数の累積値「１０」とを加算することで、上流側からノード１００ｃに至る通信ノード数の累積値「１１」を算出する。同様に、ノード１００ｄは、上流側からノード１００ｄに至る通信ノード数の累積値「１２」を算出する。ノード１００ｅは、上流側からノード１００ｅに至る通信ノード数の累積値「１２」を算出する。ノード１００ｆは、上流側からノード１００ｆに至る通信ノード数の累積値「１１」を算出する。ノード１００ｇは、上流側からノード１００ｇに至る通信ノード数の累積値「１３」を算出する。【００１６】
続いて、ノード１００は、算出した通信ノード数の累積値に基づいて、ノード１００の上流側に位置するノードから接続先となるノードを選択する。例えば、図２に示す例では、ノード１００ｇに対応する通信ノード数の累積値「１３」がノード１００ｆに対応する通信ノード数の累積値「１１」よりも大きい。これは、ノード１００ｇの上流側に位置する集約部分のノード（例えば、ノード１００ｂ）に集中するトラフィック負荷が、ノード１００ｆの上流側に位置する集約部分のノード（例えば、ノード１００ａ）に集中するトラフィック負荷よりも大きいことを意味する。このため、ノード１００ｆ、１００ｇの下流側に位置するノード１００ｈは、図３に示すように、上流側に位置するノード１００ｇ、１００ｆのうち、上流側のトラフィック負荷がより低いノード１００ｆを接続先として選択し、データ転送を行う。【００１７】
ここで、ホップ数に基づいて通信経路を選択する従来技術では、以下の処理を行う。すなわち、自ノードからノード１００ｇを経てＧＷ１に至る経路のホップ数が「３」であり、自ノードからノード１００ｆを経てＧＷ１に至る経路のホップ数が「４」であるため、ノード１００ｈは、よりホップ数が少ないノード１００ｇを選択する。しかしながら、ノード１００ｇの上流側に位置する集約部分（例えば、ノード１００ｂ）では、トラフィック負荷が集中している。このため、従来技術のようにノード１００ｇが選択されると、ＧＷ１を頂点とするツリー構造の上流側に対するトラフィック負荷が増大し、通信障害などが発生する懸念がある。【００１８】
そこで、本実施例では、ノード１００ｈは、ホップ数に代えて、通信ノード数の累積値を基にして、接続先となるノードを選択する。すなわち、ノード１００ｈは、上流側のトラフィック負荷がより低いノード１００ｆを接続先として選択し、ノード１００ｈにデータ転送を行う。【００１９】
このように、本実施例のアドホックネットワークシステムでは、各ノードが、上流側から自ノードに至る通信ノード数の累積値を算出し、通信ノード数の累積値を基にして上流側のノードから接続先を選択する。このため、本実施例のアドホックネットワークシステムによれば、ＧＷを頂点とするツリー構造の上流側に位置する集約部分に対するトラフィック負荷を分散することができる。【００２０】
次に、ノード１００が送受信するハローパケットのデータ構造について説明する。図４は、本実施例のハローパケットのデータ構造の一例を示す図である。図４に示すように、本実施例のハローパケットは、目的地、転送先、ホップ数、ΣＢを有する。このうち、「目的地」は、通信経路の目的地のノード（例えばＧＷ）のアドレスを格納する。「転送先」は、ハローパケットの送信元となる隣接のノードのアドレスを格納する。「ホップ数」は、ハローパケットの「目的地」のノードから「転送先」のノードまでのホップ数を格納する。「ΣＢ」は、ハローパケットの「目的地」のノードから「転送先」のノードまでの通信ノード数Ｂの累積値を格納する。【００２１】
次に、図１に示したノード１００の構成について説明する。図５は、本実施例に係るノードの構成を示す機能ブロック図である。図５に示すように、ノード１００は、無線通信部１１０、入力部１２０、表示部１３０、記憶部１４０及び制御部１５０を有する。【００２２】
無線通信部１１０は、隣接するノードとの間で無線によりデータ通信する装置である。例えば、無線通信部１１０は、無線リンクモジュールなどに対応する。制御部１５０は、無線通信部１１０を介して、隣接するノードとの間でハローパケット等を送受信する。【００２３】
入力部１２０は、各種の情報をノード１００に入力するための入力装置である。例えば、入力部１２０は、キーボード、マウス、タッチパネル等に対応する。表示部１３０は、各種の情報を表示する表示装置である。例えば、表示部１３０は、ディスプレイ、タッチパネル等に対応する。【００２４】
記憶部１４０は、例えば、ルーティングテーブル１４１を記憶する。この記憶部１４０は、例えば、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子、またはハードディスク、光ディスクなどの記憶装置に対応する。【００２５】
ルーティングテーブル１４１は、通信経路の情報を記憶するテーブルである。図６は、ルーティングテーブルのデータ構造の一例を示す図である。図６に示すように、ルーティングテーブル１４１は、目的地、転送先、ホップ数、ΣＢ及び優先順位を対応づけて記憶する。【００２６】
図６において、目的地は、パケットの目的地を示す。転送先は、目的地にパケットを送信する場合の接続先、言い換えると、目的地にパケットを送信する場合の転送先を示す。ホップ数は、自ノードから転送先のノードを経由して目的地のノードに至るまでのホップ数を示す。ΣＢは、自ノードから転送先のノードを経由して目的地のノードに至るまでの通信ノード数の累積値を示す。【００２７】
ΣＢは、目的地を同一とする通信経路が複数存在する場合に、各通信経路において自ノードの上流側に位置する集約部分の他のノードに対して集中するトラフィック負荷の程度を示す評価値である。例えば、図６では、目的地「ＧＷ１」に対する通信経路が２つ存在する。具体的には、転送先を「ノード１００ｆ」とする通信経路と、転送先を「ノード１００ｇ」とする通信経路が存在する。ここでは、転送先を「ノード１００ｇ」とする通信経路のΣＢが「１１」であり、転送先を「ノード１００ｆ」とする通信経路のΣＢが「１３」である。このため、転送先を「ノード１００ｇ」とする通信経路のほうが、自ノードの上流側に位置する集約部分の他のノードに対して集中するトラフィック負荷が大きい。【００２８】
優先順位は、目的地を同一とする通信経路が複数存在する場合に、各通信経路の優劣を示す順位である。例えば、図６では、転送先を「ノード１００ｆ」とする通信経路と、転送先を「ノード１００ｇ」とする通信経路が存在する。この場合には、転送先を「１００ｆ」とする通信経路の優先順位が「１」であり、転送先を「ノード１００ｇ」とする通信経路の優先順位が「２」であるため、転送先を「ノード１００ｆ」とする通信経路のほうが、優先順位が高い。【００２９】
制御部１５０は、算出部１５１及び選択部１５２を有する。例えば、制御部１５０は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）や、ＦＰＧＡ（Field  Programmable  Gate  Array）などの集積装置に対応する。また、制御部１５０は、例えば、ＣＰＵやＭＰＵ（Micro  Processing  Unit）等の電子回路に対応する。【００３０】
算出部１５１は、隣接のノードとの間のハローパケットの送受信時に、目的地のノードから隣接のノードを経由して自ノード１００に至る通信ノード数の累積値を算出し、ルーティングテーブル１４１を更新する。【００３１】
算出部１５１が通信ノード数の累積値を算出する処理の一例について説明する。図７は、本実施例における算出部が通信ノード数の累積値を算出する処理の一例を説明するための図である。図７において、横軸は、時刻ｔを示す。図７に示すように、算出部１５１は、検針時間の上りデータ送信ごとに更新される下りルーティングテーブルのエントリ数を計数することで、自ノード１００の下流側に位置するノードの数を自ノード１００の通信ノード数として検出する。算出部１５１は、隣接のノードから定期的に送出されるハローパケットを受信し、ハローパケットに含まれる情報と検出した自ノード１００の通信ノード数とを基に、目的地のノードから隣接のノードを経由して自ノード１００に至る通信ノード数の累積値を算出する。具体的には、算出部１５１は、ハローパケットを受信し、ハローパケットのΣＢの値に、検出した自ノード１００の通信ノード数の値を加算することで、自ノード１００に至る通信ノード数の累積値を算出する。【００３２】
また、算出部１５１は、ハローパケットを受信した場合に、ハローパケットに含まれる情報と、算出した通信ノード数の累積値とに基づいて、ルーティングテーブル１４１を更新する。【００３３】
算出部１５１がルーティングテーブル１４１を更新する処理の一例について説明する。算出部１５１は、ハローパケットを受信し、ハローパケットに含まれる目的地をルーティングテーブル１４１の目的地に設定する。また、算出部１５１は、ルーティングテーブル１４１の転送先に、ハローパケットの送信元のノードを設定する。また、算出部１５１は、ハローパケットのホップ数の値に、１を加算した値を、ルーティングテーブル１４１のホップ数に設定する。また、算出部１５１は、上記処理により算出した通信ノード数の累積値を、ルーティングテーブル１４１のΣＢに設定する。【００３４】
選択部１５２は、ルーティングテーブル１４１を基にして、目的地毎に優先順位を設定し、パケットを転送する経路を選択する処理部である。【００３５】
選択部１５２が、優先順位を設定する処理について説明する。選択部１５２は、ルーティングテーブル１４１を参照し、同一の目的地毎に、ΣＢの値を比較する。そして、選択部１５２は、ΣＢの値が小さいレコードの優先順位から順に、昇順で、値を割り当てる。図６に示す例では、１行目、２行目の目的地が「ＧＷ１」で同一であり、１行目のΣＢの値よりも、２行目のΣＢの値の方が大きい。この状況では、選択部１５２は、転送先を「１００ｇ」とする通信経路のほうが上流側に位置する集約部分の他のノードに対してより大きいトラフィック負荷が発生すると判断し、１行目の優先順位を「１」、２行目の優先順位を「２」に設定する。【００３６】
また、選択部１５２は、転送対象となるパケットを受信した場合には、ルーティングテーブル１４１の優先順位に基づいて転送先を選択し、パケットを転送先のノードに転送する。例えば、パケットの目的地を「ＧＷ１」とすると、図６に示す例では、１行目のレコードの優先順位の方が高い。このため、選択部１５２は、ノード１００ｆを転送先として選択し、ノード１００ｆにパケットを転送する。これにより、選択部１５２は、ＧＷ１を頂点とするツリー構造において、ノード１００ｇの上流側に位置する集約部分のノードに対するトラフィック負荷を、ノード１００ｆの上流側に位置する集約部分のノードへ分散することができる。【００３７】
また、選択部１５２は、ＧＷ１から指定されたホップ数とＧＷ１から自ノード１００に至るホップ数とが同一であり、かつ、ＧＷ１から指定された特定のグループに自ノード１００が属する場合に、上述の転送先の選択を行うようにしても良い。これにより、各ノード１００が一斉に転送先の選択を行うことで、ＧＷ１を頂点とするツリー構造において、転送先のノードの上流側に位置する集約部分のノードに対するトラフィック負荷が過剰に増加する事態を回避することができる。【００３８】
なお、ＧＷ１は、ホップ数及びグループを指定する場合には、指定すべきホップ数及びグループの情報を含むフレームであるＧＷ広告フレームを各ノード１００に通知する。各ノード１００の選択部１５２は、ＧＷ広告フレームを基にして、ＧＷ１から指定されるホップ数及びグループの情報を確認する。【００３９】
図８は、本実施例におけるＧＷが通知するＧＷ広告フレームのデータ構造の一例を示す図である。図８に示すように、ＧＷ広告フレームは、経路集中回避実行ホップ数、経路集中回避実行グループ番号及び経路集中回避実行グループ数を有する。このうち、経路集中回避実行ホップ数は、ＧＷ１から転送先の選択を行うノード１００に至るホップ数を示す。経路集中回避実行グループ番号は、経路集中回避実行ホップ数に対応するノード１００が属する特定のグループの番号を示す。各ノード１００は、例えば、ＭＡＣアドレスや、ＧＷ接続時にサーバが設定するシリアル番号などの、ノード位置とは関連のない値によりグループ化されており、経路集中回避実行グループ番号は、かかる値を特定のグループの番号として格納する。経路集中回避実行グループ数は、経路集中回避実行グループ番号に対応するグループの個数を示す。【００４０】
ＧＷ１がＧＷ広告フレームを通知する処理について説明する。図９は、本実施例におけるＧＷがＧＷ広告フレームを通知する処理について説明するための図である。図９に示すように、ＧＷ１は、Ｎ、経路集中回避実行ホップ数、経路集中回避実行グループ番号及び経路集中回避実行グループ数を対応付けるテーブルを保持しており、このテーブルを基にＧＷ広告フレームを生成して各ノード１００に一斉に通知する。図９に示したテーブルのＮは、ＧＷ１がＧＷ広告フレームを通知する順番を示す。経路集中回避実行ホップ数は、ＧＷ１から転送先の選択を行うノード１００に至るホップ数を示す。経路集中回避実行グループ番号は、経路集中回避実行ホップ数に対応するノード１００が属する特定のグループの番号を示す。経路集中回避実行グループ数は、経路収集回避実行グループ番号に対応するグループの個数を示す。ＧＷ１は、ラウンドロビン方式を用いて、Ｎ＝１〜１００の順番で各エントリに含まれる経路集中回避実行ホップ数、経路集中回避実行グループ番号及び経路集中回避実行グループ数を、ＧＷ広告フレームに設定する。そして、ＧＷ１は、各情報を設定したＧＷ広告フレームを各ノード１００に一斉に通知する。【００４１】
次に、本実施例に係るノード１００を含むアドホックネットワークシステムがハローパケットを送受信して、ルーティングテーブルを更新し、転送先の経路を選択する一連の処理の一例について説明する。図１０〜図１１は、本実施例に係るノードを含むアドホックネットワークシステムが転送先の経路を選択する処理の流れの一例を説明するための図である。なお、図１０〜図１１に示すノードＮ１〜Ｎ６が、図１に示したノード１００に対応し、ノードＧＷが、図１に示したＧＷ１に対応する。また、図１０〜図１１に示すノードＮ１〜Ｎ６各々のＢ値は、ノードＮ１〜Ｎ６各々の通信ノード数の値を示す。【００４２】
図１０に示すように、ノードＮ２は、ハローパケットを送信する。ノードＮ４は、ノードＮ２からハローパケットを受信し、目的地のノードＧＷから隣接のノードＮ２を経由して自ノードＮ４に至る通信ノード数Ｂの累積値「５０」を算出し、ルーティングテーブル１４１のΣＢに設定する。【００４３】
同様に、ノードＮ４は、ノードＮ２からハローパケットを受信し、目的地のノードＧＷから隣接のノードＮ３を経由して自ノードＮ４に至る通信ノード数Ｂの累積値「６０」を算出し、ルーティングテーブル１４１のΣＢに設定する。同様に、ノードＮ４は、ノードＮ１からハローパケットを受信し、目的地のノードＧＷから隣接のノードＮ１を経由して自ノードＮ４に至る通信ノード数Ｂの累積値「７０」を算出し、ルーティングテーブル１４１のΣＢに設定する。【００４４】
ノードＮ４は、ノードＧＷからラウンドロビン方式で通知されるＧＷ広告フレームを受信する。ＧＷ広告フレームは、例えば、図８に示したものである。ノードＧＷがＧＷ広告フレームを通知する処理は、例えば、図９を用いて説明したものとなる。ノードＮ４は、ノードＧＷから受信したＧＷ広告フレームを基にして、ノードＧＷから指定されたホップ数及びグループの情報を確認する。ノードＮ４は、ノードＧＷから指定されたホップ数とノードＧＷから自ノードＮ４に至るホップ数とが同一であり、かつ、ＧＷ１から指定されたグループ番号と自ノードＮ４に予め設定されたグループ番号とが一致する場合に、転送先の選択を行う。すなわち、ノードＮ４は、ルーティングテーブル１４１を参照し、同一の目的地であるノードＧＷに関して、ΣＢの値を比較する。そして、ノードＮ４は、ΣＢの値が小さいレコードの順位から順に、昇順で、優先順位となる値を割り当て、割り当てた優先順位を基にして転送先を選択する。図１０に示す例では、１行目のΣＢの値「５０」よりも、２行目のΣＢの値「６０」の方が大きく、２行目のΣＢの値「６０」よりも、３行目のΣＢの値「７０」の方が大きい。このため、ノードＮ４は、転送先をノードＮ２とする通信経路において上流側に位置する集約部分に対するトラフィック負荷が最も小さいと判断し、１〜３行目の優先順位を、それぞれ「１」〜「３」に設定し、優先順位が最も高い転送先のノードＮ２を選択する。【００４５】
ノードＮ４は、ハローパケットを送信する。ノードＮ５は、ノードＮ４からハローパケットを受信し、目的地のノードＧＷから隣接のノードＮ４を経由して自ノードＮ５に至る通信ノード数Ｂの累積値「６０」を算出し、ルーティングテーブル１４１のΣＢに設定する。【００４６】
同様に、ノードＮ５は、ノードＮ６からハローパケットを受信し、目的地のノードＧＷから隣接のノードＮ６を経由して自ノードＮ５に至る通信ノード数Ｂの累積値「７５」を算出し、ルーティングテーブル１４１のΣＢに設定する。【００４７】
ノードＮ５は、ノードＧＷからラウンドロビン方式で通知されるＧＷ広告フレームを受信する。ノードＮ５は、ノードＧＷから受信したＧＷ広告フレームを基にして、ノードＧＷから指定されたホップ数及びグループの情報を確認する。ノードＮ５は、ノードＧＷから指定されたホップ数とノードＧＷから自ノードＮ５に至るホップ数とが同一であり、かつ、ＧＷ１から指定されたグループ番号と自ノードＮ５に予め設定されたグループ番号とが一致する場合に、転送先の選択を行う。すなわち、ノードＮ５は、ルーティングテーブル１４１を参照し、同一の目的地であるノードＧＷに関して、ΣＢの値を比較する。そして、ノードＮ５は、ΣＢの値が小さいレコードの順位から順に、昇順で、優先順位となる値を割り当て、割り当てた優先順位を基にして転送先を選択する。図１０に示す例では、１行目のΣＢの値「６０」よりも、２行目のΣＢの値「７５」の方が大きい。このため、ノードＮ５は、転送先をノードＮ４とする通信経路において上流側に位置する集約部分に対するトラフィック負荷が最も小さいと判断し、１〜２行目の優先順位を、それぞれ「１」、「２」に設定し、優先順位が最も高い転送先のノードＮ４を選択する。【００４８】
次いで、検針時間が到来し、上り方向のデータ通信が実行されたものとする。上り方向のデータ通信が完了すると、ノードＮ１〜Ｎ６各々は、自身の下りルーティングテーブルのエントリ数を計数することで、新規に通信ノード数Ｂを検出する。この結果、ノードＮ２は、図１１に示すように、通信ノード数Ｂとして新たに「４０」を検出する。【００４９】
ノードＮ２は、ハローパケットを送信する。ノードＮ４は、ノードＮ２からハローパケットを受信し、目的地のノードＧＷから隣接のノードＮ２を経由して自ノードＮ４に至る通信ノード数の累積値「８０」を算出し、ルーティングテーブル１４１のΣＢに設定する。【００５０】
ノードＮ４は、ハローパケットを送信する。ノードＮ５は、ノードＮ４からハローパケットを受信し、目的地のノードＧＷから隣接のノードＮ６を経由して自ノードＮ５に至る通信ノード数の累積値「９０」を算出し、ルーティングテーブル１４１のΣＢに設定する。【００５１】
ノードＮ４は、ノードＧＷからラウンドロビン方式で通知されるＧＷ広告フレームを受信する。ノードＮ４は、ノードＧＷから受信したＧＷ広告フレームを基にして、ノードＧＷから指定されたホップ数及びグループの情報を確認する。ノードＮ４は、ノードＧＷから指定されたホップ数とノードＧＷから自ノードＮ４に至るホップ数とが同一であり、かつ、ＧＷ１から指定されたグループ番号と自ノードＮ４に予め設定されたグループ番号とが一致する場合に、転送先の選択を行う。すなわち、ノードＮ４は、ルーティングテーブル１４１を参照し、同一の目的地であるノードＧＷに関して、ΣＢの値を比較する。そして、ノードＮ４は、図１２に示すように、ΣＢの値が小さいレコードの順位から順に、昇順で優先順位となるとなる値を振り直し、振り直した優先順位を基にして転送先を選択する。図１２に示す例では、２行目のΣＢの値「６０」よりも、３行目のΣＢの値「７０」の方が大きく、３行目のΣＢの値「７０」よりも、１行目のΣＢの値「８０」の方が大きい。このため、ノードＮ４は、転送先をノードＮ３とする通信経路において上流側に位置する集約部分に対するトラフィック負荷が最も小さいと判断し、１〜３行目の優先順位を、それぞれ「３」、「１」及び「２」に振り直す。そして、ノードＮ４は、優先順位が最も高い転送先のノードＮ３を新たに選択する。【００５２】
ノードＮ４は、ハローパケットを送信する。ノードＮ５は、ノードＮ４からハローパケットを受信し、目的地のノードＧＷから隣接のノードＮ４を経由して自ノードＮ５に至る通信ノード数Ｂの累積値「７０」を算出し、ルーティングテーブル１４１のΣＢに設定する。【００５３】
ノードＮ５は、ノードＧＷからラウンドロビン方式で通知されるＧＷ広告フレームを受信する。ノードＮ５は、ノードＧＷから受信したＧＷ広告フレームを基にして、ノードＧＷから指定されたホップ数及びグループの情報を確認する。ノードＮ５は、ノードＧＷから指定されたホップ数とノードＧＷから自ノードＮ５に至るホップ数とが同一であり、かつ、ＧＷ１から指定されたグループ番号と自ノードＮ５に予め設定されたグループ番号とが一致する場合に、転送先の選択を行う。すなわち、ノードＮ５は、ルーティングテーブル１４１を参照し、同一の目的地であるノードＧＷに関して、ΣＢの値を比較する。比較の結果、ΣＢの値に変動がないため、ノードＮ５は、現状の優先順位を維持し、現状の優先順位を基にして転送先を選択する。図１２に示す例では、図１０に示す例と同様に、１行目のΣＢの値「７０」よりも、２行目のΣＢの値「７５」の方が大きい。このため、ノードＮ５は、現状の優先順位を維持し、現状の優先順位が最も高い転送先のノードＮ４を選択する。【００５４】
次に、本実施例に係るアドホックネットワークの効果について説明する。アドホックネットワークに含まれるノード１００は、自ノード１００の上流側から自ノード１００に至る通信ノード数の累積値を算出して、通信経路の優先順位を設定し、上流側のノードからパケットを転送する場合の接続先となるノードを選択する。このため、ノード１００は、ＧＷ１を頂点とするツリー構造の上流側に位置する集約部分に対するトラフィック負荷を分散することができる。例えば、転送先をノード１００ｇとする通信経路の上流側に位置するノード１００ｂの通信ノード数が、転送先をノード１００ｆとする通信経路の上流側に位置するノード１００ａの通信ノード数よりも大きい場合を想定する。この場合、ノード１００は、ノード１００ｆを転送先として選択し、ノード１００ｆにパケットを転送することができ、ノード１００ｂに対するトラフィック負荷を、ノード１００ａへ分散することができる。【００５５】
また、ノード１００は、ＧＷ１から指定されたホップ数とＧＷ１から自ノード１００に至るホップ数とが同一であり、かつ、ＧＷ１から指定された特定のグループに自ノード１００が属する場合に、転送先の選択を行う。これにより、各ノード１００が一斉に転送先の選択を行うことで、ＧＷ１を頂点とするツリー構造において、転送先のノードの上流側に位置する集約部分のノードに対するトラフィック負荷が過剰に増加する事態を回避することができる。
【符号の説明】
【００５６】
１  ＧＷ（Gate  Way）
１００  ノード
１１０  無線通信部
１２０  入力部
１３０  表示部
１４０  記憶部
１４１  ルーティングテーブル
１５０  制御部
１５１  算出部
１５２  選択部
【図１】
2013129671.tif 000003
【図２】
2013129671.tif 000004
【図３】
2013129671.tif 000005
【図４】
2013129671.tif 000006
【図５】
2013129671.tif 000007
【図６】
2013129671.tif 000008
【図７】
2013129671.tif 000009
【図８】
2013129671.tif 000010
【図９】
2013129671.tif 000011
【図１０】
2013129671.tif 000012
【図１１】
2013129671.tif 000013
【図１２】
2013129671.tif 000014
【国際調査報告】
2013129671.tif 000015
2013129671.tif 000016
2013129671.tif 000017
2013129671.tif 000018