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