(57)【特許請求の範囲】
【請求項１】
所定の目的地のノードを示す宛先ノードと、自装置から前記宛先ノードに至るまでの信号強度の合計値とを対応付けた経路情報テーブルを記憶する記憶部と、
マルチホップネットワークに含まれるノードおよび該ノードから前記宛先ノードに至るまでの信号強度の合計値の情報をノード毎に順次格納されたパケットを受信する受信部と、
ノード毎に順次格納された前記ノードおよび該ノードから前記宛先ノードに至るまでの信号強度の合計値の情報に、自装置および該自装置から前記宛先ノードまでの信号強度の合計値の情報を追記したパケットを送信する送信部と
を有することを特徴とする無線通信装置。
【請求項２】
前記受信部はパケットを受信した場合に、前記パケットに含まれる隣接ノードおよび該隣接ノードから前記宛先ノードに至るまでの信号強度の合計値と、自装置から前記宛先ノードに至る信号強度の合計値および自装置から前記隣接ノードの信号強度の加算値とが同じ場合に、受信したパケットに含まれるノード毎に順次格納された前記ノードおよび該ノードから前記宛先ノードに至るまでの信号強度の合計値の情報を記憶部に記憶し、
前記送信部は、前記記憶部のノード毎に順次格納された前記ノードおよび該ノードから前記宛先ノードに至るまでの信号強度の合計値の情報に、自装置および該自装置から前記宛先ノードまでの信号強度の合計値の情報を追記したパケットを送信することを特徴とする請求項１に記載の無線通信装置。
【請求項３】
コンピュータに、
マルチホップネットワークに含まれるノードおよび該ノードから、所定の目的地のノードを示す宛先ノードに至るまでの信号強度の合計値の情報をノード毎に順次格納されたパケットを受信し、
前記宛先ノードと、自装置から前記宛先ノードに至るまでの信号強度の合計値とを対応付けた経路情報テーブルを基にして、ノード毎に順次格納された前記ノードおよび該ノードから前記宛先ノードに至るまでの信号強度の合計値の情報に、自装置および該自装置から前記宛先ノードまでの信号強度の合計値の情報を追記したパケットを送信する
各処理を実行させることを特徴とする無線通信プログラム。
【請求項４】
コンピュータが実行する無線通信方法であって、
マルチホップネットワークに含まれるノードおよび該ノードから、所定の目的地のノードを示す宛先ノードに至るまでの信号強度の合計値の情報をノード毎に順次格納されたパケットを受信し、
前記宛先ノードと、自装置から前記宛先ノードに至るまでの信号強度の合計値とを対応付けた経路情報テーブルを基にして、ノード毎に順次格納された前記ノードおよび該ノードから前記宛先ノードに至るまでの信号強度の合計値の情報に、自装置および該自装置から前記宛先ノードまでの信号強度の合計値の情報を追記したパケットを送信する
各処理を実行することを特徴とする無線通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、無線通信装置等に関する。
【背景技術】
【０００２】
近年、複数の無線通信端末が自律分散的に相互接続するアドホックネットワークの研究が進められている。以下では、無線通信装置を単にノードと表記する。アドホックネットワークでは、アクセスポイントは設置されず、各ノードが、隣接ノードから受信したパケットを通信経路情報に基づいて他のノードに中継することで、パケットを宛先に伝送する。
【０００３】
また、各ノードは、ハローパケットを送受信することで、ＲＳＳＩ（Received  Signal  Strength  Indication）の情報を伝送し、自ノードから宛先までのＲＳＳＩの合計値を経路毎に保持する。ＲＳＳＩは、信号強度を示すものであり、例えば、無線リンク品質の評価値に変換されて用いられる。自ノードから宛先までの無線品質の評価値を合計したものを適宜、ΣＰａｖと表記する。宛先に至る経路が複数存在する場合には、ノードは、経路に対応するΣＰａｖを参照し、伝送品質のより良い経路を選択してパケットを送信する。
【０００４】
図１６は、従来技術の一例を説明するための図である。図１６に示すように、アドホックネットワークは、ＧＷ（Gate  Way）５、ノード１０ａ、１０ｂ、１０ｃを有する。ノード１０ｃからＧＷ５に至る経路が、経路Ａおよび経路Ｂの２種類存在するものとする。ノード１０ｃが宛先ＧＷにパケットを送信する場合には、経路ＡのΣＰａｖと経路ＢのΣＰａｖとを比較して、通信品質の良い方の経路を選択し、パケットを伝送する。例えば、経路Ａの方が、通信品質が良い場合には、ノード１０ｃは、ノード１０ａにパケットを伝送する。ノード１０ａは、パケットをＧＷ５に伝送する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−２３５７１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来技術では、ホップ数、リンクＲＳＳＩ、トポロジーなどの経路を構築するための情報を効率よく収集することができないという問題があった。
【０００７】
アドホックネットワークで経路を構築する際に帯域を節約するには、ホップ数、リンクＲＳＳＩ、トポロジーなどの情報を利用する。ここで、従来技術では、各情報を収集する場合には、各ノードが個別に運用データを送信することになり、アドホックネットワークのトラフィックが増加してしまう。また、トポロジーの情報を得るためには、運用データを伝送する場合に、ノードがローカル情報を運用データに追記することになる。このため、運用データのデータ量が増加し、トラフィック量が更に増大してしまう。
【０００８】
開示の技術は、上記に鑑みてなされたものであって、経路を構築するための情報を効率よく収集することができる無線通信装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
開示の無線通信装置は、記憶部、受信部、送信部を有する。記憶部は、宛先と、自装置から宛先に至るまでの信号強度の合計値とを対応付けた経路情報テーブルを記憶する。受信部は、ノードおよび該ノードから前記宛先に至るまでの信号強度の合計値の情報をノード毎に順次格納されたパケットを受信する。送信部は、ノード毎に順次格納されたノードおよび該ノードから宛先に至るまでの信号強度の合計値の情報に、自装置および該自装置から宛先までの信号強度の合計値の情報を追記したパケットを送信する。
【発明の効果】
【００１０】
本願の開示する無線通信装置の一つの態様によれば、経路を構築するための情報を効率よく収集することができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、本実施例に係るアドホックネットワークの構成を示す図である。
【図２】図２は、ハローパケットのデータ構造の一例を示す図である。
【図３】図３は、制御ヘッダのデータ構造の一例を示す図である。
【図４】図４は、ノードの構成を示す機能ブロック図である。
【図５】図５は、ノードのワークテーブルのデータ構造の一例を示す図である。
【図６】図６は、通信経路テーブルのデータ構造の一例を示す図である。
【図７】図７は、変更部の処理を説明するための図である。
【図８】図８は、ＧＷの構成を示す機能ブロック図である。
【図９】図９は、ＧＷのワークテーブルの一例を示す図である。
【図１０】図１０は、ネットワーク情報のデータ構造の一例を示す図である。
【図１１】図１１は、ノードが通信経路テーブルを更新する処理の処理手順を示すフローチャート（１）である。
【図１２】図１２は、ノードが通信経路テーブルを更新する処理の処理手順を示すフローチャート（２）である。
【図１３】図１３は、ノードがハローパケットを作成する処理の処理手順を示すフローチャートである。
【図１４】図１４は、ＧＷの処理手順の一例を示す図である。
【図１５】図１５は、実施例にかかるノードを構成するコンピュータのハードウェア構成を示す図である。
【図１６】図１６は、従来技術の一例を説明するための図である。
【発明を実施するための形態】
【００１２】
以下に、本願の開示する無線通信装置、無線通信プログラムおよび無線通信方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００１３】
本実施例に係るアドホックネットワークの構成について説明する。本実施例では一例として、ＧＷが一つの場合を例にして説明する。図１は、本実施例にかかるアドホックネットワークの構成を示す図である。図１に示すように、このアドホックネットワークは、ＧＷ１、ノード１００ａ、１００ｂ、１００ｃ、１００ｄを有する。このノード１００ａ〜１００ｄは、無線通信端末の一例である。ここでは図示を省略するが、アドホックネットワークは、この他にもノードを有していても良い。
【００１４】
ＧＷ１、ノード１００ａ〜１００ｄは、隣接のノードと無線により接続される。例えば、ＧＷ１は、ノード１００ａ、１００ｂに接続される。ノード１００ａは、ＧＷ１、ノード１００ｃに接続される。ノード１００ｂは、ＧＷ１、ノード１００ｃに接続される。ノード１００ｃは、ノード１００ａ、１００ｂ、１００ｄに接続される。ノード１００ｄは、ノード１００ｃに接続される。以下の説明において、ノード１００ａ〜１００ｄをまとめて、ノード１００と表記する。
【００１５】
ノード１００は、ハローパケット（Hello  Packet）を送受信することで、通信経路を構築する。ノード１００は、通信経路を構築する場合に、複数種類の評価パラメータのうち、一種類の評価パラメータを用いて評価値を算出し、通信経路の優先順位を判定する。
その一方で、ノード１００は、他の評価パラメータを参照し、状況に応じて、問題のある通信経路を除外する。ノード１００は、優先順位の高い通信経路を選択し、データ転送を行う。
【００１６】
例えば、ノード１００は、無線リンク品質の評価値を算出して、通信経路の優先順位を判定する。また、ノード１００は、ネットワーク負荷が所定の負荷を超えた通信経路を除外して、残りの通信経路の優先順位を変更する。本実施例１では一例として、無線リンク品質が良いほど、評価値の値は小さくなるものとする。また、ネットワーク負荷が低いほど、ネットワーク負荷の値が小さくなるものとする。
【００１７】
更に、ノード１００は、自ノードのアドレスと、目的地と、ΣＰａｖとを対応付けてハローパケットに追加格納し、係る情報を上流のノードに伝送する。例えば、送信元をノード１００ｄとし、目的地をＧＷ１とすると、ノード１００ｄ、１００ｃ、１００ａ、１００ｃ、ＧＷ１の順にハローパケットの情報が伝送される。ＧＷ１は、下流のノードから伝送されてきたハローパケットの情報を参照することで、アドホックネットワークのホップ数、リンクＲＳＳＩ、トポロジーなどの経路を得ることができる。
【００１８】
次に、ハローパケットのデータ構造について説明する。図２は、ハローパケットのデータ構造の一例を示す図である。図２に示すように、このハローパケットは、制御ヘッダ、目的地、転送先、ΣＰａｖを有する。このうち、「制御ヘッダ」は、各種の制御情報が含まれる。「目的地」は、通信経路の目的地のノードのアドレスが格納される。「転送先」は、ハローパケットの送信元となるノードのアドレスが格納される。ΣＰａｖは、ハローパケットの目的地のノードから「転送先」のノードまでの無線リンク品質の評価値の合計値を格納する。
【００１９】
上記制御ヘッダには、ノードのアドレスと、目的地と、ΣＰａｖとの組みが格納される。図３は、制御ヘッダのデータ構造の一例を示す図である。図３に示すように、この制御ヘッダには「ノード１００ａのアドレス、目的地、ΣＰａｖ」、「ノード１００ｃのアドレス、目的地、ΣＰａｖ」が格納される。また、制御ヘッダには「ノード１００ｄのアドレス、目的地、ΣＰａｖ」、・・・「ノード１００ｎのアドレス、目的地、ΣＰａｖ」が格納される。
【００２０】
「ノード１００ａのアドレス、目的地、ΣＰａｖ」におけるΣＰａｖには、目的地のＧＷ１からノード１００ａまでの無線リンク品質の評価値の合計値が格納される。「ノード１００ｃのアドレス、目的地、ΣＰａｖ」におけるΣＰａｖには、目的地のＧＷ１からノード１００ｃまでの無線リンク品質の評価値の合計値が格納される。「ノード１００ｄのアドレス、目的地、ΣＰａｖ」におけるΣＰａｖには、目的地のＧＷ１からノード１００ｄまでの無線リンク品質の評価値の合計値が格納される。「ノード１００ｎのアドレス、目的地、ΣＰａｖ」におけるΣＰａｖには、目的地のＧＷ１からノード１００ｎまでの無線リンク品質の評価値の合計値が格納される。
【００２１】
なお、図３に示す制御ヘッダに含まれる「ノードのアドレス、目的地、ΣＰａｖ」の組みは、ノード１００ｎ・・・ノード１００ｄ、ノード１００ｃ、ノード１００ａの順に追記されたものとする。
【００２２】
次に、図１に示したノード１００の構成について説明する。図４は、ノードの構成を示す機能ブロック図である。図４に示すように、このノード１００は、無線通信部１１０、入力部１２０、表示部１３０、記憶部１４０、制御部１５０を有する。
【００２３】
無線通信部１１０は、隣接するノードとの間で無線によりデータ通信する装置である。例えば、無線通信部１１０は、無線リンクモジュールなどに対応する。後述の制御部１５０は、この無線通信部１１０を介して、隣接するノードとの間でハローパケット等を送受信する。
【００２４】
入力部１２０は、各種の情報をノード１００に入力するための入力装置である。例えば、入力部１２０は、キーボード、マウス、タッチパネル等に対応する。表示部１３０は、ディスプレイ、タッチパネル等に対応する。
【００２５】
記憶部１４０は、ワークテーブル１４０ａおよび通信経路テーブル１４０ｂを有する。この記憶部１４０は、例えば、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子、またはハードディスク、光ディスクなどの記憶装置に対応する。
【００２６】
ワークテーブル１４０ａは、ハローパケットの情報を一時的に格納するテーブルである。図５は、ノードのワークテーブルのデータ構造の一例を示す図である。図５に示すように、ワークテーブル１４０ａは、目的地、転送先、ΣＰａｖ、Ｐａｖ、Ｐｔｒ、制御ヘッダ情報を有する。このうち、目的地、転送先は、図２に示したハローパケットの目的地、転送先を格納する。Ｐａｖは、転送先のノードと自ノード１００との間の無線リンク品質の平均値を格納する。Ｐｔｒは、転送先のノードのトラフィック負荷を格納する。ΣＰａｖは、ハローパケットのΣＰａｖの値とワークテーブル１４０ａのＰａｖの値とを加算した値が格納される。制御ヘッダ情報には、ハローパケットの制御ヘッダの情報が格納される。
【００２７】
通信経路テーブル１４０ｂは、通信経路の情報を記憶するテーブルである。図６は、通信経路テーブルのデータ構造の一例を示す図である。図６に示すように、この通信経路テーブル１４０ｂは、目的地、転送先、Ｐａｖ、ΣＰａｖ、Ｐｔｒ、優先順位を有する。
【００２８】
図６において、目的地は、パケットの目的地を示す。転送先は、目的地にパケット送信する場合の転送先を示す。Ｐａｖは、転送先のノードと自ノード１００との間の無線リンク品質の平均値に対応する。ΣＰａｖは、自ノードから目的地のノードまでの無線リンク品質の評価値を合計した値となる。Ｐｔｒは、転送先のノードのトラフィック負荷に対応する。
【００２９】
優先順位は、目的地を同一とする通信経路が複数存在する場合に、各通信経路の優劣を示すものである。例えば、図６では、目的地「ＧＷ１」に対する通信経路が２つ存在する。具体的には、転送先を「ノード１００ｂ」とする通信経路と、転送先を「ノード１００ａ」とする通信経路が存在する。ここで、転送先を「１００ｂ」とする優先順位が「２」、転送先を「１００ａ」とする優先順位が「１」であるため、転送先を「１００ａ」とする通信経路のほうが、優先順位が高い。
【００３０】
なお、図６では説明の便宜上、目的地、転送先にノードの名称を示したが、ノードのアドレスを登録しても良い。
【００３１】
制御部１５０は、受信部１５０ａ、経路判定部１５０ｂ、変更部１５０ｃ、送信部１５０ｄを有する。例えば、制御部１５０は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）や、ＦＰＧＡ（Field  Programmable  Gate  Array）などの集積装置に対応する。また、制御部１５０は、例えば、ＣＰＵやＭＰＵ（Micro  Processing  Unit）等の電子回路に対応する。
【００３２】
受信部１５０ａは、隣接のノードからハローパケットを受信し、受信したハローパケットに基づいて、各種の処理を実行する。受信部１５０ａは、隣接のノードとの間におけるハローパケットの送受信において、隣接のノードと自ノードとの間における無線リンク品質の平均値を算出する。また、受信部１５０ａは、ネットワーク負荷を検出する。また、受信部１５０ａは、ハローパケットに含まれる情報に基づいて、通信経路テーブル１４０ｂを更新する。また、受信部１５０ａは、所定の条件に応じて、ハローパケットの制御ヘッダの情報を抽出し、ワークテーブル１４０ａに格納する。以下において、受信部１５０ａが実行する処理について順に説明する。
【００３３】
受信部１５０ａが、隣接のノードと自ノードとの間における無線リンク品質の平均値を算出する処理の一例について説明する。受信部１５０ａは、ＲＳＳＩの機能を有し、ハローパケットを受信した場合に、ハローパケットの受信信号強度を検出する。受信部１５０ａは、受信信号強度と、評価値とを対応付けたテーブルを保持し、このテーブルと、検出した受信信号強度とを比較して、評価値を判定する。評価値は、受信強度が大きいほど、小さな値となる。受信部１５０ａは、複数回評価値を判定し、各評価値の平均値を算出することで、Ｐａｖを算出し、算出したＰａｖをワークテーブル１４０ａに格納する。
【００３４】
受信部１５０ａが、ネットワーク負荷を算出する処理の一例について説明する。受信部１５０ａは、隣接のノードに対する最大の通信帯域の情報を保持しており、現在の通信帯域の占有率を基にして、ネットワーク負荷を検出する。受信部１５０ａは、占有率と、ネットワーク負荷の値とを対応付けたテーブルを保持し、このテーブルと、占有率とを比較して、ネットワーク負荷を判定する。ネットワーク負荷の値Ｐｔｒは、占有率が大きいほど、大きな値となる。受信部１５０ａは、検出したＰｔｒを、ワークテーブル１４０ａに格納する。
【００３５】
受信部１５０ａが、通信経路テーブル１４０ｂを更新する処理の一例について説明する。受信部１５０ａは、まず、ハローパケットに基づいて、ワークテーブル１４０ａを更新する。具体的に、受信部１５０ａは、ハローパケットを受信し、ハローパケットに含まれる目的地を、ワークテーブル１４０ａの目的地に設定する。また、受信部１５０ａは、ハローパケットのΣＰａｖの値に、ワークテーブル１４０ａのＰａｖの値を加算したものを、ワークテーブル１４０ａのΣＰａｖに格納する。受信部１５０ａは、ワークテーブル１４０ａの転送先に、ハローパケットの送信元のノードを設定する。なお、上記処理により、受信部１５０ａは、ワークテーブル１４０ａのＰａｖ、Ｐｔｒを設定済みとする。
【００３６】
続いて、受信部１５０ａは、ワークテーブル１４０ａに基づいて、通信経路テーブル１４０ｂを更新する。具体的に、受信部１５０ａは、ワークテーブル１４０ａに含まれる目的地、転送先、Ｐａｖ、ΣＰａｖ、Ｐｔｒを、通信経路テーブル１４０ｂに設定する。
【００３７】
受信部１５０ａが、所定の条件に応じて、ハローパケットの制御ヘッダの情報を抽出し、ワークテーブル１４０ａに格納する処理の一例について説明する。受信部１５０ａは、所定の条件（１）を満たす場合に、ハローパケットの制御ヘッダの情報を、ワークテーブル１４０ａに格納する。
【００３８】
ΣＰａｖ（Ａ）＝ΣＰａｖ（Ｂ）＋Ｐａｖ（Ｃ）・・・条件（１）
【００３９】
条件（１）のΣＰａｖ（Ａ）は、ハローパケットの制御ヘッダに最後に追記されたノードのアドレスと、目的地と、ΣＰａｖの組みに含まれるΣＰａｖに対応する。ΣＰａｖ（Ｂ）は、自ノードからＧＷ１までの経路の内、優先順位が高い方の経路のΣＰａｖに対応する。Ｐａｖ（Ｃ）は、ハローパケットの送信元のノードと、自ノードとの間のＰａｖに対応する。
【００４０】
経路判定部１５０ｂは、通信経路テーブル１４０ｂを基にして、目的地毎に優先順位を設定し、パケットの経路を判定する処理部である。
【００４１】
経路判定部１５０ｂが、優先順位を設定する処理について説明する。経路判定部１５０ｂは、通信経路テーブル１４０ｂを参照し、同一の目的地毎に、ΣＰａｖを比較する。そして、経路判定部１５０ｂは、ΣＰａｖの値が小さいレコードの優先順位から順に、昇順で、値を割り当てる。図６に示す例では、１段目、２段目の目的地が同一であり、１段目のΣＰａｖの値よりも、２段目のΣＰａｖの値の方が小さい。この場合には、経路判定部１５０ｂは、２段目の優先順位を１、１段目の優先順位を２に設定する。
【００４２】
経路判定部１５０ｂは、転送対象となるパケットを受信した場合には、通信経路テーブル１４０ｂの優先順位に基づいて転送先を判定し、パケットを転送先のノードに転送する。例えば、パケットの目的地を「ＧＷ１」とすると、図６に示す例では、２段目のレコードの優先順位の方が高い。このため、経路判定部１５０ｂは、パケットをノード１００ａに転送する。
【００４３】
更新部１５０ｃは、通信経路テーブル１４０ｂのＰｔｒを参照し、Ｐｔｒが所定の閾値を超えた場合に、Ｐｔｒが閾値を超えたレコードを除外し、優先順位を設定し直す処理部である。例えば、Ｐｔｒの閾値を９５とする。図７は、変更部の処理を説明するための図である。図７に示すように、通信経路テーブル１４０ｂの２段目のＰｔｒが１００となり、閾値を超えている。変更部１５０ｃは、通信経路テーブル１４０ｂの２段目のレコードを除外して、優先順位を、ΣＰａｖの小さなものから昇順に振り直す。図７の下段に示すように、更新部１５０ｃは、１段目のレコードの優先順位を１に設定する。
【００４４】
送信部１５０ｄは、通信経路テーブル１４０ｂに基づいて、ハローパケットを作成し、ハローパケットをブロードキャストする処理部である。例えば、送信部１５０ｄは、クロックイベントが発生する度に、ハローパケットを作成し、ハローパケットをブロードキャストする。クロックイベントは、ノード１００に実装されたタイマから定期的に出力される信号である。
【００４５】
送信部１５０ｄがハローパケットを生成する処理の一例について説明する。送信部１５０ｄは、通信経路テーブル１４０ｂを参照し、目的地毎にレコードをグループ分けする。送信部１５０ｄは、ハローパケットの目的地に、グループに共通の目的地を設定し、ハローパケットの転送先に自ノード１００を設定する。そして、送信部１５０ｄは、ハローパケットのΣＰａｖに、グループに含まれるΣＰａｖのうち最小のΣＰａｖを設定することで、ハローパケットを作成する。送信部１５０ｄは、グループ毎にハローパケットを作成する。
【００４６】
また、送信部１５０ｄは、自ノードのアドレスと、目的地と、自ノードから目的地までの最小のΣＰａｖとの組みを、ワークテーブル１４０ａの制御ヘッダ情報の先頭側に追記したものを、ハローパケットの制御ヘッダに格納する。
【００４７】
なお、送信部１５０ｄは、通信経路テーブル１４０ｂに情報が格納されていない場合には、目的地、転送先を自ノード１００に設定し、ΣＰａｖの値を０に設定したハローパケットをブロードキャストする。送信部１５０ｄは、例えば、図示しないタイマからのクロックイベントが発生する度に、ハローパケットを送信する。
【００４８】
次に、図１に示したＧＷ１の構成について説明する。図８は、ＧＷの構成を示す機能ブロック図である。図８に示すように、このＧＷ１は、無線通信部５１、入力部５２、表示部５３、記憶部５４、制御部５５を有する。
【００４９】
無線通信部５１は、隣接するノードとの間で無線によりデータ通信する装置である。例えば、無線通信部５１は、無線リンクモジュールなどに対応する。後述の制御部５５は、この無線通信部５１を介して、隣接するノードとの間でハローパケット等を受信する。
【００５０】
入力部５２は、各種の情報をＧＷ１に入力するための入力装置である。例えば、入力部５２は、キーボード、マウス、タッチパネル等に対応する。表示部５３は、ディスプレイ、タッチパネル等に対応する。
【００５１】
記憶部５４は、ワークテーブル５４ａ、ネットワーク情報５４ｂを有する。この記憶部５４は、例えば、ＲＡＭ、ＲＯＭ、フラッシュメモリなどの半導体メモリ素子、またはハードディスク、光ディスクなどの記憶装置に対応する。
【００５２】
ワークテーブル５４ａは、ハローパケットの制御ヘッダに含まれる情報を記憶する。図９は、ＧＷのワークテーブルの一例を示す図である。図９に示すように、ワークテーブル５４ａは、制御ヘッダに含まれる、ノードのアドレス、目的地、ΣＰａｖの組みを複数記憶する。図９では、左端の組みが最後に追記された情報であり、右端の組みが最初に追記された情報である。従って、左端の組みのアドレスが、ＧＷ１の隣接ノードのアドレスを示す。
【００５３】
図９の１段目では、ノード１００ｎ、・・・、ノード１００ｄ、１００ｃ、１００ａの順に「ノードのアドレス、目的地、ΣＰａｖ」の組みがハローパケットの制御ヘッダに追記されたことを示している。図９の２段目では、ノード１００ｌ、・・・、ノード１００ｉ、ノード１００ｈ、ノード１００ｂの順に「ノードのアドレス、目的地、ΣＰａｖ」の組みがハローパケットの制御ヘッダに追記されたことを示している。
【００５４】
ネットワーク情報５４ｂは、ホップ数、リンクＲＳＳＩ、トポロジーの情報を有する。図１０は、ネットワーク情報のデータ構造の一例を示す図である。図１０に示すように、ネットワーク情報５４ｂは、ホップ数情報と、リンクＲＳＳＩ情報と、トポロジー情報を有する。ホップ数情報は、ノードのアドレスと、ＧＷ１から該ノードまでのホップ数を保持する。リンクＲＳＳＩ情報は、ノード間のＲＳＳＩの評価値の値を保持する。なお、ＲＳＳＩの値そのものを保持してもよい。トポロジー情報は、送信元のノードから送信されたパケットがＧＷまでに至るまでに経由するノードの情報を保持する。
【００５５】
制御部５５は、受信部５５ａ、ネットワーク情報抽出部５５ｂを有する。例えば、制御部５５は、ＡＳＩＣや、ＦＰＧＡなどの集積装置に対応する。また、制御部５５は、例えば、ＣＰＵやＭＰＵ等の電子回路に対応する。
【００５６】
受信部５５ａは、隣接のノード１００からハローパケットを受信した場合に、ハローパケットの制御ヘッダの情報を抽出し、抽出した制御ヘッダの情報を、ワークテーブル５４ａに格納する。図３に示したように、制御ヘッダの情報には「ノードのアドレス、目的地、ΣＰａｖ」の組みが複数含まれている。受信部５５ａは、ノードアドレスの組み合わせが異なる制御ヘッダの情報を別々に格納する。
【００５７】
ネットワーク情報抽出部５５ｂは、ワークテーブル５４ａに格納された制御ヘッダの情報を基にして、ネットワーク情報５４ｂを生成する処理部である。ネットワーク情報抽出部５５ｂは、ホップ数情報、リンクＲＳＳＩ情報、トポロジー情報を生成する。
【００５８】
ネットワーク情報抽出部５５ｂが、ホップ数情報を生成する処理について説明する。ネットワーク情報抽出部５５ｂは、ワークテーブル５４ａの制御ヘッダの情報において、左端からの数に基づいて、各ノードに対応するホップ数を計算する。例えば、ノード１００ａは、左端から１個目の組みに含まれている。このため、ネットワーク情報抽出部５５ｂは、ノード１００ａのアドレスに対応するホップ数を「１」とする。ノード１００ｃは、左端から２個目の組みに含まれている。このため、ネットワーク情報抽出部５５ｂは、ノード１００ｃのアドレスに対応するホップ数を「２」とする。このような処理をネットワーク情報抽出部５５ｂが実行することで、ホップ数情報が生成される。
【００５９】
ネットワーク情報抽出部５５ｂが、リンクＲＳＳＩ情報を生成する処理について説明する。ネットワーク情報抽出部５５ｂは、ワークテーブル５４ａの制御ヘッダの情報において、隣接する組みの左右のΣＰａｖの差分を算出することで、リンクＲＳＳＩ情報を生成する。ここでは一例として、ノード１００ａとノード１００ｃとの間のリンクＲＳＳＩを算出する場合について説明する。図９において「ノード１００ａのアドレス、目的地、ΣＰａｖ」の組みに含まれるΣＰａｖをΣＰａｖ（１００ａ）とする。「ノード１００ｃのアドレス、目的地、ΣＰａｖ」に含まれるΣＰａｖをΣＰａｖ（１００ｃ）とする。
【００６０】
ネットワーク情報抽出部５５ｂは、ΣＰａｖ（１００ｃ）からΣＰａｖ（１００ａ）を減算することで、ノード１００ａとノード１００ｃとの間のリンクＲＳＳＩを算出する。ネットワーク情報抽出部５５ｂは、他のノード間のリンクＲＳＳＩも同様に算出する。このような処理をネットワーク情報抽出部５５ｂが実行することで、リンクＲＳＳＩ情報が生成される。
【００６１】
ネットワーク情報抽出部５５ｂが、トポロジー情報を生成する処理について説明する。ネットワーク情報抽出部５５ｂは、ワークテーブル５４ａの制御ヘッダの情報において、左端の組みのノードのアドレスから順に、ノードのアドレスを抽出して順に並べることで、トポロジー情報を生成する。例えば、図９の１段目では、ノード１００ａ、１００ｃ、１００ｄ、・・・、１００ｎのノードのアドレスが順に抽出される。このため、ネットワーク情報抽出部５５ｂはトポロジー情報「ノード１００ａ→ノード１００ｃ→ノード１００ｄ→・・・→１００ｎ」を生成する。ネットワーク情報抽出部５５ｂは、他のトポロジー情報も同様に生成する。このような処理をネットワーク情報抽出部５５ｂが実行することで、トポロジー情報が生成される。
【００６２】
次に、本実施例にかかるノードの各種の処理手順について説明する。図１１及び図１２は、ノードが通信経路テーブルを更新する処理の処理手順を示すフローチャートである。例えば、図１１および図１２に示す処理は、ハローパケットを受信したことを契機として処理が開始される。
【００６３】
図１１について説明する。ノード１００は、ハローパケットを受信したか否かを判定する（ステップＳ１０１）。ノード１００は、ハローパケットを受信していない場合には（ステップＳ１０１，Ｎｏ）、処理を終了する。
【００６４】
一方、ノード１００は、ハローパケットを受信した場合には（ステップＳ１０１，Ｙｅｓ）、ハローパケットに情報が含まれるか否かを判定する（ステップＳ１０２）。ノード１００は、ハローパケットに情報が含まれない場合には（ステップＳ１０２，Ｎｏ）、図１２のステップＳ１１７に移行する。
【００６５】
一方、ノード１００は、ハローパケットに情報が含まれる場合には（ステップＳ１０２，Ｙｅｓ）、ステップＳ１０３に移行する。ノード１００は、ハローパケットに含まれるΣＰａｖからＰａｖを引いたものが、自ノード１００の優先順位１位のΣＰａｖに対応しない場合には（ステップＳ１０３，Ｎｏ）、ステップＳ１０５に移行する。
【００６６】
ノード１００は、ハローパケットに含まれるΣＰａｖからＰａｖを引いたものが、自ノード１００の優先順位１位のΣＰａｖに対応する場合には（ステップＳ１０３，Ｙｅｓ）、ステップＳ１０４に移行する。
【００６７】
ノード１００は、ハローパケットに含まれるノードのアドレスと、目的地と、ΣＰａｖをセットで抽出し、ワークテーブル１４０ａに格納する（ステップＳ１０４）。ノード１００は、「目的地」または「転送先」が自アドレスであるか否かを判定する（ステップＳ１０５）。ノード１００は、「目的地」または「転送先」が自アドレスである場合には（ステップＳ１０５，Ｙｅｓ）、図１２のステップＳ１１５に移行する。
【００６８】
一方、ノード１００は、「目的地」または「転送先」が自アドレスではない場合には（ステップＳ１０５，Ｎｏ）、ワークテーブル１４０ａにレコードを新規作成する（ステップＳ１０６）。ノード１００は、ワークテーブル１４０ａの「目的地」にハローパケットに含まれる「目的地」を設定する（ステップＳ１０７）。
【００６９】
ノード１００は、ワークテーブル１４０ａの「転送先」に送信元ノードのアドレスを設定する（ステップＳ１０８）。ノード１００は、ワークテーブル１４０ａの「Ｐａｖ」にハローパケットのやり取り計算した「Ｐａｖ」を格納する（ステップＳ１０９）。
【００７０】
ノード１００は、ワークテーブルの「Ｐｔｒ」にハローパケットのやり取りで計算した「Ｐｔｒ」を格納する（ステップＳ１１０）。ノード１００は、ハローパケットに含まれるΣＰａｖと、「Ｐａｖ」とを加算したものを「Ｐａｖ」として格納する（ステップＳ１１１）。
【００７１】
図１２の説明に移行する。ノード１００は、通信経路テーブル１４０ｂに、同一の「目的地」および「転送先」のノードが存在するか否かを判定する（ステップＳ１１２）。ノード１００は、同一の「目的地」および「転送先」のノードが存在しない場合には（ステップＳ１１２，Ｎｏ）、ステップＳ１１３に移行する。ノード１００は、ワークテーブル１４０ａに作成したレコードを、通信経路テーブル１４０ｂに新規追加し（ステップＳ１１３）、ステップＳ１１５に移行する。
【００７２】
一方、ノード１００は、同一の「目的地」および「転送先」のノードが存在する場合には（ステップＳ１１２，Ｙｅｓ）、上書きし（ステップＳ１１４）、ステップＳ１１５に移行する。
【００７３】
ノード１００は、受信したパケットに未処理のものがあるか否かを判定する（ステップＳ１１５）。ノード１００は、未処理のものがある場合には（ステップＳ１１５，Ｙｅｓ）、未処理の情報を取得し（ステップＳ１１６）、図１１のステップＳ１０３に移行する。
【００７４】
ノード１００は、受信したパケットに未処理のものがない場合には（ステップＳ１１５，Ｎｏ）、ΣＰａｖに基づいて優先順位を判定する（ステップＳ１１７）。ノード１００は、Ｐｔｒに基づいて優先順位を変更する（ステップＳ１１８）。
【００７５】
次に、ノード１００がハローパケットを作成する処理手順について説明する。図１３は、ノードがハローパケットを作成する処理の処理手順を示すフローチャートである。例えば、図１３に示す処理は、クロックイベントが発生したことを契機にして開始される。
【００７６】
図１３において、ノード１００は、クロックイベントがない場合には（ステップＳ２０１，Ｎｏ）、再度ステップＳ２０１に移行する。ノード１００は、クロックイベントがある場合には（ステップＳ２０１，Ｙｅｓ）、ワークテーブル１４０ａの制御ヘッダ情報を参照する（ステップＳ２０２）。
【００７７】
ノード１００は、ノードのアドレスと、「目的地」アドレスと、「ΣＰａｖ」とをセットで、ハローパケットの制御ヘッダに追加する（ステップＳ２０３）。ノード１００は、通信経路テーブル１４０ｂに情報が存在するか否かを判定する（ステップＳ２０４）。ノード１００は、通信経路テーブル１４０ｂに情報が存在しない場合には（ステップＳ２０４，Ｎｏ）、処理を終了する。
【００７８】
ノード１００は、通信経路テーブル１４０ｂに情報が存在する場合には（ステップＳ２０４，Ｙｅｓ）、通信経路テーブル１４０ｂを探索し、同一の「目的地」毎にグループ分けする（ステップＳ２０５）。
【００７９】
ノード１００は、グループ内の優先順位を比較して優先順位が１となるレコードを抽出し、ハローパケットヘッダに追加し（ステップＳ２０６）、ハローパケットを送信する（ステップＳ２０７）。
【００８０】
次に、ＧＷ１の処理の処理手順について説明する。図１４は、ＧＷの処理手順の一例を示す図である。図１４に示す処理は、例えば、所定の時間毎に実行される。図１４に示すように、ＧＷ１は、ワークテーブル５４ａに保存されているハローパケット受信時にコピーしていたデータを、送信ノードのアドレス毎に参照する（ステップＳ３０１）。
【００８１】
ＧＷ１は、制御ヘッダ情報のホップ数を算出し（ステップＳ３０２）、ΣＰａｖの差分に基づいてリンクＲＳＳＩを算出する（ステップＳ３０３）。ＧＷ１は、制御ヘッダ情報に含まれるノードのアドレスの並び順を基にして、トポロジーを判定する（ステップＳ３０４）。
【００８２】
ＧＷ１は、ワークテーブル５４ａに未処理の情報が存在するか否かを判定する（ステップＳ３０５）。ＧＷ１は、未処理の情報が存在する場合には（ステップＳ３０５，Ｙｅｓ）、未処理の情報を取得し（ステップＳ３０６）、ステップＳ３０１に移行する。一方、ＧＷ１は、未処理の情報が存在しない場合には（ステップＳ３０５，Ｎｏ）、処理を終了する。
【００８３】
次に、本実施例にかかるノード１００の効果について説明する。ノード１００は、ハローパケットを受信した場合に、ハローパケットの制御ヘッダの情報を、ワークテーブル１４０ａに登録する。ハローパケットの制御ヘッダの情報には、ノードのアドレス、目的地、ΣＰａｖの組みを複数含んでいる。ノード１００は、自ノードのアドレスと、目的地と、自ノードから目的地までのΣＰａｖとの組みを、制御ヘッダの情報に追記した情報を、ハローパケットの制御ヘッダに格納し、ハローパケットを送信する。このような処理をアドホックネットワークに含まれる各ノードが実行することで、目的地となるＧＷ１は、ホップ数、リンクＲＳＳＩ、トポロジーの情報を効率的に収集することができる。また、各ノード１００は、個別に運用データを送信しないので、帯域を節約することもできる。
【００８４】
また、ノード１００は、ハローパケットを受信した場合に、ハローパケットの制御ヘッダの情報と、通信経路テーブル１４０ｂとを基にして、所定の条件（１）を満たすか否かを判定する。ノード１００は、所定の条件（１）を満たす場合に、制御ヘッダの情報を、ワークテーブル１４０ａに格納する。このため、送信元のノードから目的地に至る経路に、自ノードが含まれている場合にのみ、ハローパケットの制御ヘッダにノードのアドレス、目的地、ΣＰａｖの組みを追記することができる。この結果、ＧＷ１は、トポロジーの情報等を正確に得ることができる。
【００８５】
上記実施例に示したノード１００の機能は、既知のＰＣ（Personal  Computer）またはＰＤＡ（Personal  Digital  Assistants）などの情報処理装置に、ノードに対応する各機能を搭載することによって実現することもできる。図１５は、実施例にかかるノードを構成するコンピュータのハードウェア構成を示す図である。
【００８６】
図１５に示すように、このコンピュータ３００は、各種演算処理を実行するＣＰＵ３０１と、ユーザからのデータの入力を受け付ける入力装置３０２と、ディスプレイ３０３とを有する。また、コンピュータ３００は、記憶媒体からプログラム等を読み取る読み取り装置３０４と、他の装置と接続するためのインターフェース装置３０５とを有する。また、コンピュータ３００は、他の装置と無線により接続する無線通信装置３０６と、各種情報を一時記憶するＲＡＭ３０７と、ハードディスク装置３０８とを有する。各装置３０１〜３０８は、バス３０９に接続される。
【００８７】
ハードディスク装置３０８には、受信プログラム、送信プログラムなどの各種のプログラムが記憶される。
【００８８】
ＣＰＵ３０１は、ハードディスク装置３０８に記憶された各プログラムを読み出して、ＲＡＭ３０７に展開し、各種の処理を行う。また、これらのプログラムは、コンピュータを図４の受信部１５０ａ、経路判定部１５０ｂ、変更部１５０ｃ、送信部１５０ｄとして機能させることができる。
【００８９】
なお、上記のプログラムは、必ずしもハードディスク装置３０８に格納されている必要はない。例えば、ＣＤ−ＲＯＭ等の記憶媒体に記憶されたプログラムを、コンピュータ３００が読み出して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等に接続された記憶装置に、各プログラムを記憶させておいてもよい。この場合、コンピュータ３００がこれらから各プログラムを読み出して実行するようにしてもよい。
【００９０】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００９１】
（付記１）宛先と、自装置から前記宛先に至るまでの信号強度の合計値とを対応付けた経路情報テーブルを記憶する記憶部と、
マルチホップネットワークに含まれるノードおよび該ノードから前記宛先に至るまでの信号強度の合計値の情報をノード毎に順次格納されたパケットを受信する受信部と、
ノード毎に順次格納された前記ノードおよび該ノードから前記宛先に至るまでの信号強度の合計値の情報に、自装置および該自装置から前記宛先までの信号強度の合計値の情報を追記したパケットを送信する送信部と
を有することを特徴とする無線通信装置。
【００９２】
（付記２）前記受信部はパケットを受信した場合に、前記パケットに含まれる隣接ノードおよび該隣接ノードから前記宛先に至るまでの信号強度の合計値と、自装置から前記宛先に至る信号強度の合計値および自装置から前記隣接のノードの信号強度の加算値とが同じ場合に、受信したパケットに含まれるノード毎に順次格納された前記ノードおよび該ノードから前記宛先に至るまでの信号強度の合計値の情報を記憶部に記憶し、
前記送信部は、前記記憶部のノード毎に順次格納された前記ノードおよび該ノードから前記宛先に至るまでの信号強度の合計値の情報に、自装置および該自装置から前記宛先までの信号強度の合計値の情報を追記したパケットを送信することを特徴とする付記１に記載の無線通信装置。
【００９３】
（付記３）コンピュータに、
マルチホップネットワークに含まれるノードおよび該ノードから宛先に至るまでの信号強度の合計値の情報をノード毎に順次格納されたパケットを受信し、
宛先と、自装置から前記宛先に至るまでの信号強度の合計値とを対応付けた経路情報テーブルを基にして、ノード毎に順次格納された前記ノードおよび該ノードから前記宛先に至るまでの信号強度の合計値の情報に、自装置および該自装置から前記宛先までの信号強度の合計値の情報を追記したパケットを送信する
各処理を実行させることを特徴とする無線通信プログラム。
【００９４】
（付記４）前記受信する処理は、パケットを受信した場合に、前記パケットに含まれる隣接ノードおよび該隣接ノードから前記宛先に至るまでの信号強度の合計値と、自装置から前記宛先に至る信号強度の合計値および自装置から前記隣接のノードの信号強度の加算値とが同じ場合に、受信したパケットに含まれるノード毎に順次格納された前記ノードおよび該ノードから前記宛先に至るまでの信号強度の合計値の情報を記憶装置に記憶し、
前記送信する処理は、前記記憶装置のノード毎に順次格納された前記ノードおよび該ノードから前記宛先に至るまでの信号強度の合計値の情報に、自装置および該自装置から前記宛先までの信号強度の合計値の情報を追記したパケットを送信することを特徴とする付記３に記載の無線通信プログラム。
【００９５】
（付記５）コンピュータが実行する無線通信方法であって、
マルチホップネットワークに含まれるノードおよび該ノードから宛先に至るまでの信号強度の合計値の情報をノード毎に順次格納されたパケットを受信し、
宛先と、自装置から前記宛先に至るまでの信号強度の合計値とを対応付けた経路情報テーブルを基にして、ノード毎に順次格納された前記ノードおよび該ノードから前記宛先に至るまでの信号強度の合計値の情報に、自装置および該自装置から前記宛先までの信号強度の合計値の情報を追記したパケットを送信する
各処理を実行させることを特徴とする無線通信方法。
【００９６】
（付記６）前記受信する処理は、パケットを受信した場合に、前記パケットに含まれる隣接ノードおよび該隣接ノードから前記宛先に至るまでの信号強度の合計値と、自装置から前記宛先に至る信号強度の合計値および自装置から前記隣接のノードの信号強度の加算値とが同じ場合に、受信したパケットに含まれるノード毎に順次格納された前記ノードおよび該ノードから前記宛先に至るまでの信号強度の合計値の情報を記憶装置に記憶し、
前記送信する処理は、前記記憶装置のノード毎に順次格納された前記ノードおよび該ノードから前記宛先に至るまでの信号強度の合計値の情報に、自装置および該自装置から前記宛先までの信号強度の合計値の情報を追記したパケットを送信することを特徴とする付記５に記載の無線通信方法。
【符号の説明】
【００９７】
１  ＧＷ
１００ａ，１００ｂ，１００ｃ，１００ｄ  ノード
１１０  無線通信部
１２０  入力部
１３０  表示部
１４０  記憶部
１５０  制御部
【図１】
0005810899.tif 000002
【図２】
0005810899.tif 000003
【図３】
0005810899.tif 000004
【図４】
0005810899.tif 000005
【図５】
0005810899.tif 000006
【図６】
0005810899.tif 000007
【図７】
0005810899.tif 000008
【図８】
0005810899.tif 000009
【図９】
0005810899.tif 000010
【図１０】
0005810899.tif 000011
【図１１】
0005810899.tif 000012
【図１２】
0005810899.tif 000013
【図１３】
0005810899.tif 000014
【図１４】
0005810899.tif 000015
【図１５】
0005810899.tif 000016
【図１６】
0005810899.tif 000017