無線通信端末および経路構築方法
【課題】通信経路を構築する場合に、経路探索パケットの伝送範囲を最適に絞り込むこと。
【解決手段】ノード100は、通信経路探索パケットを受信した場合に、通信経路探索パケットのGDに対応するノードのアドレスが、通信経路テーブル140bのGDに登録されているか否かを判定する。ノード100は、通信経路探索パケットのGDに対応するノードのアドレスが、通信経路テーブル140bのGDに登録されている場合には、通信経路探索パケットをブロードキャストする。これに対して、ノード100は、通信経路探索パケットのGDに対応するノードのアドレスが、通信経路テーブル140bのGDに登録されていない場合には、通信経路端末パケットの探索範囲の値を減算する。そして、ノード100は、減算した探索範囲の値が0以上の場合に、通信経路探索パケットをブロードキャストする。
【解決手段】ノード100は、通信経路探索パケットを受信した場合に、通信経路探索パケットのGDに対応するノードのアドレスが、通信経路テーブル140bのGDに登録されているか否かを判定する。ノード100は、通信経路探索パケットのGDに対応するノードのアドレスが、通信経路テーブル140bのGDに登録されている場合には、通信経路探索パケットをブロードキャストする。これに対して、ノード100は、通信経路探索パケットのGDに対応するノードのアドレスが、通信経路テーブル140bのGDに登録されていない場合には、通信経路端末パケットの探索範囲の値を減算する。そして、ノード100は、減算した探索範囲の値が0以上の場合に、通信経路探索パケットをブロードキャストする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、無線通信端末等に関する。
【背景技術】
【0002】
近年、複数の無線通信端末が自律分散的に相互接続するアドホックネットワークの研究が進められている。アドホックネットワークには、例えば、スマートネットなどの固定形マルチホップネットワークが含まれる。以下では、無線通信端末をノードと表記する。アドホックネットワークでは、アクセスポイントは設定されず、各ノードが、隣接ノードから受信したパケットを通信経路に基づき他のノードに転送することで、パケットを目的地に送信する。
【0003】
アドホックネットワークの各ノードは、ハローパケット(Hello Packet)を送受信することで、通信経路を構築することができる(例えば特許文献1参照)。ここで、ゲートウェイ(Gateway:以下適宜「GW」と表す)から各ノードへの通信経路(下り方向)を構築するに際して、以下の前提条件1、2のもと経路構築を行うことを考えてみる。
【0004】
前提条件1は、上り方向の通信経路が作成済みという条件である。上り方向は、ノードからGWに至る方向である。上り方向の通信経路が作成済みの場合には、目的地「GW」にパケットを送信するための転送先のノードが1つ以上通信経路に登録されている。なお、通信経路の作成は先の特許文献1に記載された技術を用いることができる。
【0005】
前提条件2は、各ノードがGWに複数回パケットを送信していて、その上り方向の通信経路を利用して下り方向の通信を行うために、GWの通信経路上の中継ノードには、下り方向の通信経路用のテーブルに目的地となるノード毎に転送先のノードが登録されているという条件である。ただし、GWの通信経路の目的地のノードは、GWにパケットを送信した送信元のノードとする。
【0006】
上記前提条件1、2においては、経路候補数が限られ、また、ネットワークの変化に対する追随性が問題となる。そこで、送信要求が発生して後でルーティングテーブルを動的に作成するReactive方式を利用することが解決策として考えられる。Reactive方式では、送信要求が発生すると、宛て先を探すためのリクエストパケットを自己の近隣ノードに対して一斉送信(フラッディング)する。例えば、GWは、通信経路に含まれるノードを目的地に設定した経路探索パケットを全方位にブロードキャストする。GWは、該経路探索パケットを受信した目的地のノードからの応答を受信し、目的地のノードに至る複数の通信経路を作成する。このように、目的地のノードに至る複数の通信経路を有していると、ネットワークの変化により、ある通信経路が利用できなくなっても、他の通信経路を利用することで、目的地のノードにパケットを送信することができる。
【0007】
なお、経路探索パケットを全方位にブロードキャストすると、ネットワーク全体にかかる負荷が大きくなるため、経路探索パケットのホップ数に制限をかけるという技術が存在する(例えば特許文献2参照)。探索要求パケットのホップ数に制限をかけることで、経路探索パケットの伝搬範囲が絞り込まれ、ネットワーク全体にかかる負荷を抑えることができる。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2009−267532号公報
【特許文献2】特開2007−184827号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、上述した従来技術では、通信経路を構築する場合に、経路探索パケットの伝送範囲を最適に絞り込むことができないという問題があった。
【0010】
たとえば、従来のReactive方式では、経路探索パケットがGWを中心に円状に広がっていくため、目的地のノードとは違う方向にも経路探索パケットが伝送されてしまう。また、目的地のノードに至る通信経路が迂回経路しか存在しない場合には、経路探索パケットの伝送範囲を超えてしまい、経路探索パケットが目的地のノードに届かず、目的地のノードに至る通信経路を構築することができない場合があった。
【0011】
開示の技術は、上記に鑑みてなされたものであって、通信経路を構築する場合に、経路探索パケットの伝送範囲を最適に絞り込むことができる無線通信端末および経路構築方法を提供することを目的とする。
【課題を解決するための手段】
【0012】
開示の無線通信端末は、判定部と送信制御部とを有する。判定部は、探索対象となる無線通信端末の情報と探索範囲を示す値とを有するパケットを受信した場合に、目的地の経路を含む通信経路テーブルを参照し、該通信経路テーブルの目的地に、探索対象となる無線通信端末が含まれているか否かを判定する。送信制御部は、判定部の判定結果に基づいて、通信経路テーブルの目的地に、探索対象となる無線通信端末が含まれている場合には、パケットを隣接する無線通信端末に送信する。一方、送信制御部は、通信経路テーブルの目的地に、探索対象となる無線通信端末が含まれていない場合には、探索範囲を示す値から所定値を減算し、該探索範囲を示す値が所定の閾値以上の場合には、パケットを隣接する無線通信端末に送信する。
【発明の効果】
【0013】
開示の無線通信端末によれば、通信経路を構築する場合に、経路探索パケットの伝送範囲を最適に絞り込むことができるという効果を奏する。
【図面の簡単な説明】
【0014】
【図1】図1は、アドホックネットワークの構成を示す図である。
【図2】図2は、ノードの構成を示す図である。
【図3】図3は、ハローパケットのデータ構造の一例を示す図である。
【図4】図4は、ワークテーブルのデータ構造の一例を示す図である。
【図5】図5は、通信経路テーブルのデータ構造の一例を示す図である。
【図6】図6は、経路構築パケットのデータ構造の一例を示す図である。
【図7】図7は、経路探索パケットのデータ構造の一例を示す図である。
【図8】図8は、ハローパケットによる経路構築の処理手順を示す図である。
【図9】図9は、ハローパケットのデータ構造と各ノードの通信経路テーブルのデータ構造の一例を示す図(1)である。
【図10】図10は、ハローパケットのデータ構造と各ノードの通信経路テーブルのデータ構造の一例を示す図(2)である。
【図11】図11は、ハローパケットのデータ構造と各ノードの通信経路テーブルのデータ構造の一例を示す図(3)である。
【図12】図12は、ハローパケットのデータ構造と各ノードの通信経路テーブルのデータ構造の一例を示す図(4)である。
【図13】図13は、ハローパケットのデータ構造と各ノードの通信経路テーブルのデータ構造の一例を示す図(5)である。
【図14】図14は、ハローパケットのデータ構造と各ノードの通信経路テーブルのデータ構造の一例を示す図(6)である。
【図15】図15は、ハローパケットのデータ構造と各ノードの通信経路テーブルのデータ構造の一例を示す図(7)である。
【図16】図16は、ハローパケットのデータ構造と各ノードの通信経路テーブルのデータ構造の一例を示す図(8)である。
【図17】図17は、ハローパケットのデータ構造と各ノードの通信経路テーブルのデータ構造の一例を示す図(9)である。
【図18】図18は、経路構築パケットによる経路構築の処理を説明する図(1)である。
【図19】図19は、経路構築パケットによる経路構築の処理を説明する図(2)である。
【図20】図20は、経路構築パケットによる経路構築の処理を説明する図(3)である。
【図21】図21は、経路構築パケットによる経路構築の処理を説明する図(4)である。
【図22】図22は、経路探索パケットの転送処理を説明するための図(1)である。
【図23】図23は、経路探索パケットの転送処理を説明するための図(2)である。
【図24】図24は、経路探索パケットの転送処理を説明するための図(3)である。
【図25】図25は、経路探索パケットの転送処理を説明するための図(4)である。
【図26】図26は、経路探索パケットの転送処理を説明するための図(5)である。
【図27】図27は、経路探索パケットの転送処理を説明するための図(6)である。
【図28】図28は、経路探索パケットの転送処理を説明するための図(7)である。
【図29】図29は、経路探索パケットの転送処理を説明するための図(8)である。
【図30】図30は、ハローパケット受信処理の処理手順を示すフローチャートである。
【図31】図31は、ハローパケット送信処理の処理手順を示すフローチャートである。
【図32】図32は、経路構築パケットの送信処理の処理手順を示すフローチャートである。
【図33】図33は、経路構築パケットの受信処理の処理手順を示すフローチャートである。
【図34】図34は、経路探索パケットの処理手順を示すフローチャートである。
【図35】図35は、ノードを構成するコンピュータのハードウェア構成を示す図である。
【発明を実施するための形態】
【0015】
以下に、本願の開示する無線通信端末および経路構築方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【0016】
本実施例にかかるアドホックネットワークの構成について説明する。図1は、アドホックネットワークの構成を示す図である。図1に示すように、このアドホックネットワークは、ノード100a〜100g、100x〜100zを有する。ノード100a〜100g、100x〜100zは、無線通信端末の一例である。また、ノード100gは、GW(Gate Way)に対応する。
【0017】
ノード100a〜100g、100x〜100zは、隣接のノードと無線により接続する。例えば、ノード100gは、ノード100a、100b、100xに接続される。ノード100aは、ノード100g、100c、100dに接続される。ノード100bは、ノード100g、100d、100e、100yに接続される。ノード100cは、ノード100a、100d、100fに接続される。ノード100dは、ノード100a、100b、100c、100e、100fに接続される。100eは、ノード100b、100d、100fに接続される。ノード100fは、ノード100c、100d、100eに接続される。ノード100xは、ノード100g、100b、100yに接続される。ノード100yは、ノード100b、100x、100zに接続される。ノード100zは、ノード100yに接続される。本実施例では、ノード100a〜100g、100x〜100yを総称する場合、ノード100と表記する。
【0018】
次に、本実施例にかかるノード100の構成について説明する。図2は、ノードの構成を示す図である。図2に示すように、このノード100は、無線通信部110、入力部120、表示部130、記憶部140、制御部150を有する。
【0019】
無線通信部110は、隣接するノードとの間で無線によりデータ通信する装置である。例えば、無線通信部110は、無線リンクモジュールなどに対応する。制御部150は、この無線通信部110を介して、隣接するノードとの間でハローパケット等を送受信する。
【0020】
入力部120は、各種の情報をノード100に入力するための入力装置である。例えば、入力部120は、キーボード、マウス、タッチパネル等に対応する。表示部120は、各種の情報を表示する表示装置である。例えば、表示部130は、ディスプレイ、タッチパネル等に対応する。
【0021】
記憶部140は、例えば、ワークテーブル140a、通信経路テーブル140b、データ管理テーブル140cを記憶する。この記憶部140は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、またはハードディスク、光ディスクなどの記憶装置に対応する。
【0022】
ワークテーブル140aは、ハローパケットの情報を一時的に保持するテーブルである。ここで、ハローパケットのデータ構造の一例と、ワークテーブル140aのデータ構造の一例について説明する。
【0023】
図3は、ハローパケットのデータ構造の一例を示す図である。図3に示すように、ハローパケットは、GS、LS、Eを有する。このうち、GSには、目的地のノードのアドレスが格納される。例えば、GSには、GWとなるノード100gのアドレスが格納される。LSには、ハローパケットを転送したノードのアドレスが格納される。Eには、例えば、ハローパケットのホップ数が格納される。
【0024】
図4は、ワークテーブルのデータ構造の一例を示す図である。図4に示すように、このワークテーブル140aは、GD、LD、Eを有する。GDには、目的地のノードのアドレスが格納される。LDには、転送先のアドレスが格納される。Eには、例えば、ハローパケットのホップ数が格納される。図3に示したハローパケットのGS、LS、Eが、それぞれ、図4のワークテーブル140aのGD、LD、Eに格納される。
【0025】
通信経路テーブル140bは、目的地となるノードにパケットを送信する場合に、どの隣接ノードにパケットを転送すればよいかを示すものである。図5は、通信経路テーブルのデータ構造の一例を示す図である。図5のGD、LD、Eに関する説明は、上記図4のGD、LD、Eに関する説明と同様である。図5に示すように、例えば、通信経路テーブル140bには、目的地のノード「GD」に対する複数の通信経路が記憶されている。この通信経路テーブル140bでは、ノード100gにパケットを送信する場合には、ノード100a〜100eの何れかのノードにパケットを転送すればよいことを示している。図5では、説明の便宜上、ノードの名称を示しているが、ノードのアドレスが登録されてもよい。
【0026】
データ管理テーブル140cは、パケットの送信履歴を記憶するテーブルである。このデータ管理テーブル140cは、後述の下り経路構築部150bにより利用される。
【0027】
制御部150は、ハローパケット制御部150a、下り経路構築部150b、経路探索パケット送信部150c、経路探索パケット受信部150dを有する。制御部150は、ASIC(Application Specific Integrated Circuit)や、FPGA(Field Programmable Gate Array)などの集積装置に対応する。また、制御部150は、例えば、CPUやMPU(Micro Processing Unit)等の電子回路に対応する。
【0028】
ハローパケット制御部150aは、隣接のノードとハローパケットを送受信することで、通信経路テーブル140bに目的地「GD」、転送先「LD」、ホップ数「E」の関係を登録する処理部である。
【0029】
ハローパケット制御部150aが、ハローパケットを受信した場合の処理について説明する。ハローパケット制御部150aは、ハローパケットのGS、LSの情報をワークテーブル140aのGD、LDに格納する。また、ハローパケット制御部150aは、ハローパケットのEの値に1を加算したものを、ワークテーブル140aのEに格納する。そして、ハローパケット制御部150aは、ワークテーブル140aのレコードを通信経路テーブル140bに登録する。
【0030】
ハローパケット制御部150aが、ハローパケットを送信する場合の処理について説明する。例えば、ハローパケット制御部150aは、クロックイベントが発生したことを契機にして、ハローパケットを生成する。
【0031】
ハローパケット制御部150aは、ハローパケットのGSに、通信経路テーブル140bのGSの情報を格納する。例えば、ハローパケット制御部150aは、ゲートウェイに対応するノード100gのアドレスをハローパケットのGSに格納してもよい。ハローパケット制御部150aは、ハローパケットのLSに自ノード100のアドレスを格納する。ハローパケット制御部150aは、ハローパケットのEに、通信経路テーブル140bのEを格納する。
【0032】
下り経路構築部150bは、上り方向の目的地のノードに対して、パケットを送信し、目的地に至る他のノードの下り経路構築部150bと協働して、下り方向の経路を構築する処理部である。下り方向の経路を構築することを目的として上り方向の目的地のノードに送信するパケットを、便宜上、経路構築パケットと表記する。
【0033】
図6は、経路構築パケットのデータ構造の一例を示す図である。図6に示すように、この経路構築パケットは、GD、GS、LS、LD、E、FIDを有する。このうち、GDは目的地を示すものであり、通信経路テーブル140bのGDの情報が格納される。GSには、経路構築パケットの送信元のアドレスが格納される。LSには、経路構築パケットの転送元のノードのアドレスが格納される。LDには、経路構築パケットの転送先となる隣接ノードのアドレスが格納される。Eには、ホップ数が格納される。FIDには、経路構築パケットを一意に識別する値が格納される。下り経路構築部150bは、送信した経路構築パケットの情報を、送信履歴としてデータ管理テーブル140cに格納する。
【0034】
経路探索パケット送信部150cは、ある目的地のノードに至る経路情報を増やすことを目的として、目的地のノードに経路探索パケットを送信する処理部である。図7は、経路探索パケットのデータ構造の一例を示す図である。図7に示すように、経路探索パケットは、GS、GD、探索範囲を有する。GSには、経路検索パケットの送信元のノードのアドレスが格納される。GDには、目的地のノードのアドレスが格納される。探索範囲には、経路探索パケットを転送するか否かを示す値が格納される。経路探索パケット送信部150cは、探索範囲に所定の数値を代入し、経路検索パケットをブロードキャストする。
【0035】
経路探索パケット送信部150cは、経路探索パケットの目的地のノードから応答を受信しない場合には、探索範囲に代入する値を増やして、経路探索パケットを再送する。例えば、経路探索パケット送信部150cは、経路探索パケットをブロードキャストしてから、所定の時間が経過する間に応答を受信しない場合に、経路探索パケットを再送する。
【0036】
経路探索パケット受信部150dは、経路探索パケットを受信した場合に、経路探索パケットの探索範囲に基づいて、経路探索パケットを送信する処理部である。経路探索パケット受信部150dは、判定部151と、送信制御部152を有する。
【0037】
判定部151は、経路探索パケットのGDに格納されたノードが、通信経路テーブル140bのGDに含まれているか否かを判定し、判定結果を送信制御部152に出力する。
【0038】
送信制御部152は、判定部151の判定結果に基づいて、経路探索パケットの送信制御を行う処理部である。
【0039】
判定部151の判定結果に、経路探索パケットのGDに格納されたノードが、通信経路テーブル140bのGDに含まれている旨の情報が含まれている場合の送信制御部152の処理について説明する。この場合には、送信制御部152は、経路探索パケットの探索範囲の値をもとの初期値に戻し、経路探索パケットをブロードキャストする。
【0040】
これに対して、判定部151の判定結果に、経路探索パケットのGDに格納されたノードが、通信経路テーブル140bのGDに含まれていない旨の情報が含まれている場合の送信制御部152の処理について説明する。この場合には、送信制御部152は、経路探索パケットの探索範囲の値から1を減算する。そして、送信制御部152は、減算した探索範囲の値が所定の閾値より大きい場合に、経路検索パケットをブロードキャストする。一方、送信制御部152は、減算した探索範囲の値が所定の閾値以下の場合には、経路検索パケットをブロードキャストする。例えば、探索範囲の値と比較される所定の閾値を0とする。
【0041】
ところで、送信制御部152は、経路探索パケットのGDが、自ノードの場合には、経路探索パケットの送信元のノードに応答データを送信してもよい。
【0042】
次に、アドホックネットワークのノード100a〜100g、100x〜100zがハローパケットを送受信して、通信経路テーブルを更新する処理について説明する。図8は、ハローパケットによる経路構築の処理手順を示す図である。また、図9〜図17は、ハローパケットのデータ構造と各ノードの通信経路テーブルのデータ構造の一例を示す図である。
【0043】
図8において、ノード100gはハローパケットを、ノード100a、100b、100xに送信する(ステップS10)。ノード100aは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS11)。ノード100bは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS12)。ノード100cは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS13)。
【0044】
図9において、ハローパケット10は、ステップS10において送信されるハローパケットである。通信経路テーブル10a、10b、10xは、それぞれ、ノード100a、100b、100xの通信経路テーブルである。ハローパケット10のGDには「100g」、LSには「100g」、Eには「0」が登録されている。
【0045】
ノード100aは、ノード100gからハローパケット10を受信した場合に、通信経路テーブル10aのGDに「100g」、LDに「100g」を登録する。また、ノード100aは、ハローパケット10のEの値に1を加算した値「1」を通信経路テーブル10aに格納する。ノード100bは、通信経路テーブル10bのGDに「100g」、LDに「100g」を登録する。また、ノード100bは、ハローパケット10のEの値に1を加算した値「1」を通信経路テーブル10bに格納する。ノード100xは、通信経路テーブル10xのGDに「100g」、LDに「100g」を登録する。また、ノード100xは、ハローパケット10のEの値に1を加算した値「1」を通信経路テーブル10xに格納する。
【0046】
図8において、ノード100aは、ハローパケットをノード100c、100dに送信する(ステップS20)。ノード100cは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS21)。ノード100dは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS22)。
【0047】
図10において、ハローパケット20は、ステップS20において送信されるハローパケットである。通信経路テーブル10c、10dは、それぞれ、ノード100c、100dの通信経路テーブルである。ハローパケット20のGDには「100g」、LSには「100a」、Eには「1」が登録されている。
【0048】
ノード100cは、ノード100aからハローパケット20を受信した場合に、通信経路テーブル10cのGDに「100g」、LDに「100a」を登録する。また、ノード100cは、ハローパケット20のEの値に1を加算した値「2」を通信経路テーブル10cに格納する。また、ノード100dは、ノード100aからハローパケット20を受信した場合に、通信経路テーブル10dのGDに「100g」、LDに「100a」を登録する。また、ノード100dは、ハローパケット20のEの値に1を加算した値「2」を通信経路テーブル10dに格納する。
【0049】
図8において、ノード100bは、ハローパケットをノード100d、100e、100yに送信する(ステップS30)。ノード100dは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS31)。ノード100eは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS32)。ノード100yは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS33)。
【0050】
図11において、ハローパケット30は、ステップS30において送信されるハローパケットである。通信経路テーブル10d、10e、10yは、それぞれ、ノード100d、100e、100yの通信経路テーブルである。ハローパケット30のGSには「100g」、LSには「100b」、Eには「1」が登録されている。
【0051】
ノード100dは、ノード100bからハローパケット30を受信した場合に、通信経路テーブル10dのGDに「100g」、LDに「100b」を追加登録する。また、ノード100dは、ハローパケット30のEの値に1を加算した値「2」を通信経路テーブル10dに格納する。ノード100eは、ノード100bからハローパケット30を受信した場合に、通信経路テーブル10eのGDに「100g」、LDに「100b」を格納する。また、ノード100eは、ハローパケット30のEの値に1を加算した値「2」を通信経路テーブル10eに格納する。ノード100yは、ノード100bからハローパケット30を受信した場合に、通信経路テーブル10yのGDに「100g」、LDに「100b」を格納する。また、ノード100yは、ハローパケット30のEの値に1を加算した値「2」を通信経路テーブル10yに格納する。
【0052】
図8において、ノード100xは、ハローパケットをノード100yに送信する(ステップS35)。ノード100yは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS36)。
【0053】
図12において、ハローパケット35は、ステップS35において送信されるハローパケットである。通信経路テーブル10yは、ノード100yの通信経路テーブルである。ハローパケット35のGSには「100g」、LSには「100x」、Eには「1」が登録されている。
【0054】
ノード100yは、ノード100xからハローパケット35を受信した場合に、通信経路テーブル10yのGDに「100g」、LDに「100x」を追加登録する。また、ノード100yは、ハローパケット35のEの値に1を加算した値「2」を通信経路テーブル10yに格納する。
【0055】
図8において、ノード100cは、ハローパケットをノード100a、100d、100fに送信する(ステップS40)。ノード100aは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS41)。ノード100dは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS42)。ノード100fは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS43)。
【0056】
図13において、ハローパケット40は、ステップS40において送信されるハローパケットである。通信経路テーブル10a、10d、10fは、ノード100a、100d、100fの通信経路テーブルである。ハローパケット40のGSには「100g」、LSには「100c」、Eには「2」が登録されている。
【0057】
ノード100aは、ノード100cからハローパケット40を受信した場合に、通信経路テーブル10aのGDに「100g」、LDに「100c」を追加登録する。また、ノード100aは、ハローパケット40のEの値に1を加算した値「3」を通信経路テーブル10yに格納する。ノード100dは、ノード100cからハローパケット40を受信した場合に、通信経路テーブル10dのGDに「100g」、LDに「100c」を追加登録する。また、ノード100dは、ハローパケット40のEの値に1を加算した値「3」を通信経路テーブル10dに格納する。
【0058】
ノード100fは、ノード100cからハローパケット40を受信した場合に、通信経路テーブル10fのGDに「100g」、LDに「100c」を追加登録する。また、ノード100fは、ハローパケット40のEの値に1を加算した値「3」を通信経路テーブル10fに格納する。
【0059】
図8において、ノード100dは、ハローパケットをノード100a、100b、100c、100e、100fに送信する(ステップS50)。ノード100aは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS51)。ノード100bは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS52)。ノード100cは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS53)。ノード100eは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS54)。ノード100fは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS55)。
【0060】
図14において、ハローパケット50は、ステップS50において送信されるハローパケットである。通信経路テーブル10a、10b、10c、10e、10fは、ノード100a、100b、100c、100e、100fの通信経路テーブルである。ハローパケット50のGSには「100g」、LSには「100d」、Eには「2」が登録されている。
【0061】
ノード100aは、ノード100dからハローパケット50を受信した場合に、通信経路テーブル10aのGDに「100g」、LDに「100d」を追加登録する。また、ノード100aは、ハローパケット50のEの値に1を加算した値「3」を通信経路テーブル10aに格納する。ノード100bは、ノード100dからハローパケット50を受信した場合に、通信経路テーブル10bのGDに「100g」、LDに「100d」を追加登録する。また、ノード100bは、ハローパケット50のEの値に1を加算した値「3」を通信経路テーブル10bに格納する。
【0062】
ノード100cは、ノード100dからハローパケット50を受信した場合に、通信経路テーブル10cのGDに「100g」、LDに「100d」を追加登録する。また、ノード100cは、ハローパケット50のEの値に1を加算した値「3」を通信経路テーブル10cに格納する。ノード100eは、ノード100dからハローパケット50を受信した場合に、通信経路テーブル10eのGDに「100g」、LDに「100d」を追加登録する。また、ノード100eは、ハローパケット50のEの値に1を加算した値「3」を通信経路テーブル10eに格納する。ノード100fは、ノード100dからハローパケット50を受信した場合に、通信経路テーブル10fのGDに「100g」、LDに「100d」を追加登録する。また、ノード100fは、ハローパケット50のEの値に1を加算した値「3」を通信経路テーブル10fに格納する。
【0063】
図8において、ノード100eは、ハローパケットをノード100b、100d、100fに送信する(ステップS60)。ノード100bは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS61)。ノード100dは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS62)。ノード100fは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS63)。
【0064】
図15において、ハローパケット60は、ステップS60において送信されるハローパケットである。通信経路テーブル10b、10c、10fは、ノード100b、100c、100fの通信経路テーブルである。ハローパケット60のGSには「100g」、LSには「100e」、Eには「3」が登録されている。
【0065】
ノード100bは、ハローパケット60を受信した場合に、通信経路テーブル10bのGDに「100g」、LDに「100e」を追加登録する。また、ノード100bは、ハローパケット60のEの値に1を加算した値「4」を通信経路テーブル10bに格納する。ノード100cは、ハローパケット60を受信した場合に、通信経路テーブル10cのGDに「100g」、LDに「100e」を追加登録する。また、ノード100cは、ハローパケット60のEの値に1を加算した値「4」を通信経路テーブル10cに格納する。ノード100fは、ハローパケット60を受信した場合に、通信経路テーブル10fのGDに「100g」、LDに「100e」を追加登録する。また、ノード100fは、ハローパケット60のEの値に1を加算した値「4」を通信経路テーブル10fに格納する。
【0066】
図8において、ノード100yは、ハローパケットをノード100b、100x、100zに送信する(ステップS70)。ノード100bは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS71)。ノード100xは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS72)。ノード100zは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS73)。
【0067】
図16において、ハローパケット70は、ステップS70において送信されるハローパケットである。通信経路テーブル10b、10x、10zは、ノード100b、100x、100zの通信経路テーブルである。ハローパケット70のGSには「100g」、LSには「100y」、Eには「2」が登録されている。
【0068】
ノード100bは、ハローパケット70を受信した場合に、通信経路テーブル10bのGDに「100g」、LDに「100y」を追加登録する。また、ノード100bは、ハローパケット70のEの値に1を加算した値「3」を通信経路テーブル10bに格納する。ノード100xは、ハローパケット70を受信した場合に、通信経路テーブル10xのGDに「100g」、LDに「100y」を追加登録する。また、ノード100xは、ハローパケット70のEの値に1を加算した値「3」を通信経路テーブル10xに格納する。ノード100zは、ハローパケット70を受信した場合に、通信経路テーブル10zのGDに「100g」、LDに「100y」を追加登録する。また、ノード100zは、ハローパケット70のEの値に1を加算した値「3」を通信経路テーブル10zに格納する。
【0069】
図8において、ノード100fは、ハローパケットをノード100c、100d、100eに送信する(ステップS80)。ノード100cは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS81)。ノード100dは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS82)。ノード100eは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS83)。
【0070】
図17において、ハローパケット80は、ステップS80において送信されるハローパケットである。通信経路テーブル10c、10d、10eは、ノード100c、100d、100eの通信経路テーブルである。ハローパケット80のGSには「100g」、LSには「100f」、Eには「3」が登録されている。
【0071】
ノード100cは、ハローパケット80を受信した場合に、通信経路テーブル10cのGDに「100g」、LDに「100f」を追加登録する。また、ノード100bは、ハローパケット80のEの値に1を加算した値「4」を通信経路テーブル10cに格納する。ノード100dは、ハローパケット80を受信した場合に、通信経路テーブル10dのGDに「100g」、LDに「100f」を追加登録する。また、ノード100dは、ハローパケット80のEの値に1を加算した値「4」を通信経路テーブル10dに格納する。ノード100eは、ハローパケット80を受信した場合に、通信経路テーブル10eのGDに「100g」、LDに「100f」を追加登録する。また、ノード100eは、ハローパケット80のEの値に1を加算した値「4」を通信経路テーブル10eに格納する。
【0072】
上記のように、各ノード100a〜100g、100x〜100zが図8に示すような処理を実行することで、図9〜図17に示したように、各通信経路テーブルを更新する。なお、図9〜図17に示した通信経路テーブルは、図2に示した通信経路テーブル140bに対応する。
【0073】
次に、アドホックネットワークのノード100a〜100g、100x〜100zが経路構築パケットを送受信して、通信経路テーブルを更新する処理について説明する。図18〜図21は、経路構築パケットによる経路構築の処理を説明する図である。
【0074】
まず、図18に示すように、経路構築パケットがノード100fから送信され、ノード100d、100a、100gの順に転送される場合について説明する。また、そのときの、経路構築パケットと各ノードの経路構築パケットの内容を図19に示す。図19において、10f、10d、10a、10gは、ノード100f、100d、100a、100gの通信経路テーブルである。
【0075】
ノード100fは、例えば、通信経路テーブル10fの2段目を選択する。ノード100fは、経路構築パケット85aのGD、LDに通信経路テーブル10fのGD「100g」、LD「100d」を格納する。また、ノード100fは、経路構築パケット85aのGS、LSに、自ノードのアドレスを格納する。また、ノード100fは、Eに「0」を格納し、FIDに経路構築パケット85aを識別する値「1」を登録する。
【0076】
ノード100fは、経路構築パケット85aをノード100dに送信する。ノード100dは、経路構築パケット85aのGS、LSを、通信経路テーブル10dのGD、LDに登録する。また、ノード100dは、経路構築パケット85aのEに1を加算した値「1」を、通信経路テーブル10dのEに登録する(ステップS85a)。
【0077】
ノード100dは、経路構築パケット85bのGD、GSに経路構築パケット85aのGD「100g」、GS「100f」を格納する。また、ノード100dは、経路構築パケット85bのLSに自ノードを格納する。ノード100dは、経路構築パケット85bのLDに転送先となる「l00a」を格納する。また、ノード100dは、先の経路構築パケット85aのEに1を加算した値「1」を、経路構築パケット85bのEに格納する。また、ノード100dは、FIDに値「1」を登録する。
【0078】
ノード100dは、経路構築パケット85bをノード100aに送信する。ノード100aは、経路構築パケット85bのGS、LSを、通信経路テーブル10aのGD、LDに登録する。また、ノード100aは、経路構築パケット85bのEに1を加算した値「2」を、通信経路テーブル10aのEに登録する(ステップS85b)。
【0079】
ノード100aは、経路構築パケット85cのGD、GSに経路探索パケット85bのGD「100g」、GS「100f」を格納する。また、ノード100aは、経路構築パケット85cのLSに自ノードを格納する。ノード100aは、経路構築パケット85cのLDに転送先となる「l00g」を格納する。また、ノード100aは、先の経路構築パケット85aのEに1を加算した値「2」を、経路構築パケット85cのEに格納する。
【0080】
ノード100aは、経路構築パケット85cをノード100gに送信する。ノード100gは、経路構築パケット85cのGS、LSを、通信経路テーブル10gのGD、LDに登録する。また、ノード100gは、経路構築パケット85cのEに1を加算した値「3」を、通信経路テーブル10gのEに登録する(ステップS85c)。
【0081】
このように、ステップS85a〜85cの処理を実行することにより、ノード100gは、目的地「100f」に対する通信経路を得ることができる。
【0082】
続いて、図20に示すように、経路構築パケットがノード100fから送信され、ノード100e、100d、100b、100gの順に転送される場合について説明する。ただし、ノード100eからノード100bへの経路構築パケットの転送が失敗したために、経路構築パケットは、ノード100dを経由して、ノード100eからノード100bに転送されるものとする。
【0083】
図21において、10f、10e、10d、10b、10gは、ノード100f、100e、100d、100b、100gの通信経路テーブルである。ノード100fは、例えば、通信経路テーブル10fの3段目を選択する。ノード100fは、経路構築パケット86aのGD、LDに通信経路テーブル10fのGD「100g」、LD「100e」を格納する。また、ノード100fは、経路構築パケット86aのGS、LSに、自ノードのアドレスを格納する。また、ノード100fは、Eに0を格納し、FIDに経路構築パケット85aを識別する値「2」を登録する。
【0084】
ノード100fは、経路構築パケット86aをノード100eに送信する。ノード100eは、経路構築パケット86aのGS、LSを、通信経路テーブル10eのGD、LDに登録する。また、ノード100fは、経路構築パケット86aのEに1を加算した値「1」を、通信経路テーブル10eのEに登録する(ステップS86a)。
【0085】
ノード100eは、経路構築パケット86bのGD、GSに経路構築パケット86aのGD「100g」、GS「100f」を格納する。また、ノード100eは、経路構築パケット86bのLSに自ノードを格納する。ノード100eは、経路構築パケット86bのLDに転送先となる「l00b」を格納する。また、ノード100eは、先の経路構築パケット86aのEに1を加算した値「1」を、経路構築パケット86bのEに格納する。
【0086】
ノード100eは、経路構築パケット86bをノード100bに転送するが、転送に失敗する。このように、転送を失敗した場合には、通信経路を切り換える。例えば、ノード100eは、経路構築パケット86bのLDを「100d」に変更した経路構築パケット86cを作成し、経路構築パケット86cを、ノード100dに送信する。
【0087】
ノード100dは、経路構築パケット86cを受信し、経路構築パケット86cのGS、LSを、通信経路テーブル10dのGD、LDに登録する。また、ノード100dは、経路構築パケット86cのEに1を加算した値「2」を、通信経路テーブル10dのEに登録する(ステップS86b)。
【0088】
ノード100dは、経路構築パケット86dのGD、GSに経路探索パケット86cのGD「100g」、GS「100f」を格納する。また、ノード100dは、経路構築パケット86dのLSに自ノードを格納する。ノード100dは、経路構築パケット86cのLDに転送先となる「l00b」を格納する。また、ノード100dは、先の経路構築パケット86cのEに1を加算した値「2」を、経路構築パケット86dのEに格納する。ノード100dは、経路構築パケット86dを、ノード100bに送信する。
【0089】
ノード100bは、経路構築パケット86dを受信し、経路構築パケット86dのGS、LSを、通信経路テーブル10bのGD、LDに登録する。また、ノード100bは、経路構築パケット86bのEに1を加算した値「3」を、通信経路テーブル10bのEに登録する(ステップS86c)。
【0090】
ノード100bは、経路構築パケット86eのGD、GSに経路探索パケット86dのGD「100g」、GS「100f」を格納する。また、ノード100bは、経路構築パケット86eのLSに自ノードを格納する。ノード100bは、経路構築パケット86eのLDに転送先となる「l00g」を格納する。また、ノード100bは、先の経路構築パケット86dのEに1を加算した値「3」を、経路構築パケット86eのEに格納する。ノード100bは、経路構築パケット86eを、ノード100gに送信する。
【0091】
ノード100gは、経路構築パケット86eを受信し、経路構築パケット86eのGS、LSを、通信経路テーブル10gのGD、LDに登録する。また、ノード100gは、経路構築パケット86eのEに1を加算した値「4」を、通信経路テーブル10gのEに登録する(ステップS86d)。
【0092】
このように、ステップS86a〜86dの処理を実行することにより、ノード100gは、目的地「100f」に対する新たな通信経理を得ることができる。
【0093】
次に、アドホックネットワークのノード100a〜100g、100x〜100zが経路探索パケットを送信する処理について説明する。ただし、この経路探索パケットを送信する処理は、図8に示したハローパケットの送受信、図20に示した経路構築パケットの送受信が行われた後に実行される。
【0094】
次に、経路探索パケットの転送処理について説明する。図22〜図29は、経路探索パケットの転送処理を説明するための図である。ここでは一例として、ノード100gが、経路探索パケットのGDにノード100fのアドレスを格納して、経路探索パケットをブロードキャストする場合について説明する。図22において、ノード100gは、経路探索パケットをブロードキャストし、ノード100a、100b、100xは、経路探索パケットを受信する(ステップS90)。
【0095】
ステップS91にて送信される経路探索パケットについて説明する。図23に示すように、ノード100gは、経路探索パケット90のGSにノード100gのアドレスを格納し、GDにノード100fのアドレスを格納する。また、ノード100gは、経路探索パケット90の探索範囲に初期値の1を設定し、経路探索パケット90をブロードキャストする。
【0096】
図22において、ノード100aは、経路探索パケットをブロードキャストし、ノード100c、100dは、経路探索パケットを受信する(ステップS91)。
【0097】
ステップS91にて送信される経路探索パケットについて説明する。図24に示すように、通信経路テーブル10aのGDにノード100fのアドレスが含まれている。このため、ノード100aは、経路探索パケット90の探索範囲を初期値の1に設定し、経路探索パケット90をブロードキャストする。
【0098】
図22において、ノード100bは、経路探索パケットをブロードキャストし、ノード100d、100e、100yは、経路探索パケットを受信する(ステップS92)。
【0099】
ステップS92にて送信される経路探索パケットについて説明する。図25に示すように、通信経路テーブル10bのGDにノード100fのアドレスが含まれている。このため、ノード100bは、経路探索パケット90の探索範囲を初期値の1に設定し、経路探索パケット90をブロードキャストする。
【0100】
図22において、ノード100xは、経路探索パケットをブロードキャストし、ノード100yは、経路探索パケットを受信する(ステップS93)。
【0101】
ステップS93にて送信される経路探索パケットについて説明する。図26に示すように、通信経路テーブル10xのGDにノード100fのアドレスが含まれていない。このため、ノード100xは、経路探索パケットの探索範囲を1減算する。探索範囲の値が0以上であるため、ノード100xは、経路探索パケット90をブロードキャストする。
【0102】
また、図26に示すように、通信経路テーブル10yのGDにノード100fのアドレスが含まれていない。このため、ノード100yは、経路検索パケットの探索範囲を1減算する。探索範囲の値が0未満となるため、ノード100fは、経路検索パケット90の転送を停止する。
【0103】
図22において、ノード100yは、ノード100bから受信した経路探索パケットをブロードキャストし、ノード100zは、経路探索パケットを受信する(ステップS94)。
【0104】
ステップS94にて送信される経路探索パケットについて説明する。図27に示すように、通信経路テーブル10yのGDにノード100fのアドレスが含まれていない。このため、ノード100yは、経路探索パケットの探索範囲を1減算する。探索範囲の値が0以上であるため、ノード100yは、経路探索パケット90をブロードキャストする。
【0105】
また、図27に示すように、通信経路テーブル10zのGDにノード100fのアドレスが含まれていない。このため、ノード100zは、経路探索パケットの探索範囲を1減算する。探索範囲の値が0未満となるため、ノード100zは、経路探索パケットの転送を停止する。
【0106】
図22において、ノード100dは、ノード100aから受信した経路探索パケットをブロードキャストし、ノード100c、100e、100fは、経路探索パケットを受信する(ステップS95)。
【0107】
ステップS95にて送信される経路探索パケットについて説明する。図28に示すように、通信経路テーブル10dのGDにノード100fのアドレスが含まれている。このため、ノード100dは、経路検索パケット90の探索範囲を初期値の1に設定し、経路探索パケット90をブロードキャストする。
【0108】
図22において、ノード100cは、ノード100dから受信した経路探索パケットをブロードキャストし、ノード100fは、経路探索パケットを受信する。また、ノード100eは、ノード100dから受信した経路探索パケットをブロードキャストし、ノード100fは、経路探索パケットを受信する(ステップS96)。
【0109】
ステップS96にて送信される経路探索パケットについて説明する。図29に示すように、通信経路テーブル10eのGDにノード100fのアドレスが含まれている。このため、ノード100eは、経路検索パケット90の探索範囲を初期値の1に設定し、経路探索パケット90をブロードキャストする。
【0110】
また、図29に示すように、通信経路テーブル10cのGDにノード100fのアドレスが含まれていない。このため、ノード100cは、経路探索パケットの探索範囲を1減算する。探索範囲の値が0以上であるため、ノード100cは、経路探索パケット90をブロードキャストする。
【0111】
ステップS96において、ノード100fは、自ノード宛の経路検索パケットを受信する。この場合には、ノード100fは、ノード100g宛の応答パケットを送信する。
【0112】
次に、ノード100がハローパケットを受信した場合の処理手順について説明する。図30は、ハローパケット受信処理の処理手順を示すフローチャートである。図30に示す処理は、例えば、ハローパケットを受信したことを契機に実行される。図30に示す処理は、ハローパケット制御部150aの処理に対応する。
【0113】
図30に示すように、ノード100は、ハローパケットを受信していない場合には(ステップS101,No)、処理を終了する。一方、ノード100は、ハローパケットを受信した場合には(ステップS101,Yes)、ハローパケットに情報が含まれるか否かを判定する(ステップS102)。
【0114】
ノード100は、ハローパケットに情報が含まれない場合には(ステップS102,No)、処理を終了する。一方、ノード100は、ハローパケットに情報が含まれている場合には(ステップS102,Yes)、GSまたはLSが自アドレスであるか否かを判定する(ステップS103)。
【0115】
ノード100は、GSまたはLSが自アドレスの場合には(ステップS103,Yes)、処理を終了する。一方、ノード100は、GSまたはLSが自アドレスではない場合には(ステップS103,No)、ワークテーブル140aにレコードを新規作成する(ステップS104)。
【0116】
ノード100は、ワークテーブル140aのGDにハローパケットのGSを設定し(ステップS105)、ワークテーブル140aのLDにハローパケットのLSを設定する(ステップS106)。ノード100は、ワークテーブル140aのEにハローパケットのEに1を加算した値を設定する(ステップS107)。
【0117】
ノード100は、通信経路テーブル140bに同一のGSおよびLDのレコードが存在しない場合には(ステップS108,No)、ワークテーブルに作成したレコードを通信経路テーブルに新規追加し(ステップS110)、処理を終了する。一方、ノード100は、通信経路テーブル140bに同一のGSおよびLDのレコードが存在しない場合には(ステップS108,No)、ワークテーブル140aに作成したレコードを通信経路テーブル140bに新規追加する(ステップS110)。一方、ノード100は、通信経路テーブル140bに同一のGSおよびLDのレコードが存在する場合には(ステップS108,Yes)、上書きする(ステップS109)。
【0118】
次に、ノード100がハローパケットを送信する場合の処理手順について説明する。図31は、ハローパケット送信処理の処理手順を示すフローチャートである。図31に示す処理は、例えば、クロックイベントが発生したことを契機として実行される。図31に示す処理は、ハローパケット制御部150aの処理に対応する。
【0119】
図31に示すように、ノード100は、クロックイベントが発生していない場合には(ステップS150,No)、処理を終了する。一方、ノード100は、クロックイベントが発生した場合には(ステップS150,Yes)、通信経路テーブル140bに情報が存在するか否かを判定する(ステップS151)。
【0120】
ノード100は、通信経路テーブルに情報が存在しない場合には(ステップS151,No)、処理を終了する。一方、ノード100は、通信経路テーブルに情報が存在する場合には(ステップS151,Yes)、通信経路テーブル140bからGSがGWのアドレスとなるレコードを抽出する(ステップS152)。GWをノード100gとすると、ノード100は、GSがノード100gのアドレスとなるレコードを抽出する。
【0121】
ノード100は、ハローパケットのGSに通信経路テーブル140bのGDを設定し(ステップS153)、ハローパケットのLSに通信経路テーブル140bのLDを設定する(ステップS154)。
【0122】
ノード100は、ハローパケットのEに通信経路テーブルのEを設定し(ステップS155)、ハローパケットを送信する(ステップS156)。
【0123】
次に、ノード100が、下り経路を構築する場合の経路構築パケットの送信処理について説明する。図32は、経路構築パケットの送信処理の処理手順を示すフローチャートである。図32に示す処理は、例えば、クロックイベントが発生したことを契機にして実行される。図32に示す処理は、下り経路構築部150bの処理に対応する。
【0124】
図32に示すように、ノード100は、通信経路テーブル140bに、所望のGDが存在しない場合には(ステップS201,No)、処理を終了する。一方、ノード100は、所望のGDが存在する場合には(ステップS201,Yes)、データ管理テーブル140cに基づいて、通信経路テーブル140bに送信可能な転送先が存在するか否かを判定する(ステップS202)。
【0125】
ノード100は、データ管理テーブル140cに基づいて、通信経路テーブル140bに送信可能な転送先が存在しない場合には(ステップS202,No)、処理を終了する。一方、ノード100は、通信経路テーブル140bに送信可能な転送先が存在する場合には(ステップS202,Yes)、通信経路テーブル内の未送信の上位レコードを抽出する(ステップS203)。
【0126】
ノード100は、自ノードがGSではない場合には(ステップS204,No)、レコードのGDを、経路構築パケットのGDに設定する(ステップS205)。ノード100は、レコードのGSを、経路構築パケットのGSに設定し(ステップS206)、レコードのEを経路構築パケットのEに設定し(ステップS207)、ステップS211に移行する。
【0127】
一方、ノード100は、自ノードがGSの場合には(ステップS204,Yes)、経路構築パケットのGDに目的地のノードのアドレスを設定する(ステップS208)。ノード100は、経路構築パケットのGSに自ノードのアドレスを設定し(ステップS209)、経路構築パケットのEに通信経路テーブル140bの上位Eを設定する(ステップS210)。
【0128】
ノード100は、経路構築パケットのLDに通信経路テーブル140bの上位LDを設定し(ステップS211)、経路構築パケットのFIDにユニークな数値を設定する(ステップS212)。ノード100は、経路構築パケットのLSに自ノードのアドレスを設定し(ステップS213)、経路構築パケットの内容をデータ管理テーブル140cに記録し(ステップS214)、経路構築パケットを送信する(ステップS215)。
【0129】
次に、ノード100が、下り経路を構築する場合の経路構築パケットの受信処理について説明する。図33は、経路構築パケットの受信処理の処理手順を示すフローチャートである。図33に示す処理は、例えば、経路構築パケットを受信したことを契機にして実行される。図33に示す処理は、下り経路構築部150bの処理に対応する。
【0130】
図33に示すように、ノード100は、経路構築パケットを受信していない場合には(ステップS250,No)、処理を終了する。一方、ノード100は、経路構築パケットを受信した場合には(ステップS250,Yes)、ワークテーブル140aにレコードを新規作成する(ステップS251)。
【0131】
ノード100は、ワークテーブル140aのGDに経路構築パケットのGSを設定し(ステップS252)、ワークテーブル140aのLDに経路構築パケットのLSを設定する(ステップS253)。
【0132】
ノード100は、ワークテーブル140aのEに、経路構築パケットのEに1を加算した値を設定する(ステップ254)。ノード100は、通信経路テーブル140bに同一のGSおよびLDのレコードが存在する場合には(ステップS255,Yes)、上書きする(ステップS256)。一方、ノード100は、通信経路テーブル140bに同一のGSおよびLDのレコードが存在しない場合には(ステップS255,No)、ワークテーブル140aに作成したレコードを通信経路テーブルに新規追加する(ステップS257)。
【0133】
次に、ノード100が、経路探索パケットに対する処理について説明する。図34は、経路探索パケットの処理手順を示すフローチャートである。図34に示す処理は、例えば、経路探索要求を受け付けたことまたは、経路探索パケットを受信したことを契機に実行される。図34に示す処理は、経路探索パケット送信部150c、経路探索パケット受信部150dの処理に対応する。
【0134】
図34に示すように、経路探索要求があった場合には(ステップS301,Yes)、経路探索パケットのGSに自ノードのアドレスを設定する(ステップS302)。ノード100は、経路探索パケットのGDに目的ノードを設定する(ステップS303)。
【0135】
ノード100は、経路探索パケットの探索範囲に、探索範囲の初期値を設定する(ステップS304)。例えば、ノード100は、探索範囲の初期値として、1を設定する。ノード100は、探索範囲が0以上の場合には(ステップS305,Yes)、経路探索パケットを送信する(ステップS306)。一方、ノード100は、探索範囲が0未満の場合には(ステップS305,No)、処理を終了する。
【0136】
ところで、ノード100は、経路探索要求がない場合には(ステップS301,No)、経路探索パケットの転送を行うと判定する(ステップS307)。ノード100は、経路探索パケットのGDとGSをそのまま流用し(ステップS308)、通信経路テーブル140b内にGDが存在する場合には(ステップS309,Yes)、ステップS304に移行する。
【0137】
一方、ノード100は、通信経路テーブル140b内にGDが存在しない場合には(ステップS309,No)、経路探索パケットの探索範囲に、既存の探索範囲値から1を減算した値を設定し(ステップS310)、ステップS305に移行する。
【0138】
次に、本実施例にかかるノード100の効果について説明する。ノード100は、通信経路探索パケットを受信した場合に、通信経路探索パケットのGDに対応するノードのアドレスが、通信経路テーブル140bのGDに登録されているか否かを判定する。ノード100は、通信経路探索パケットのGDに対応するノードのアドレスが、通信経路テーブル140bのGDに登録されている場合には、通信経路探索パケットをブロードキャストする。これに対して、ノード100は、通信経路探索パケットのGDに対応するノードのアドレスが、通信経路テーブル140bのGDに登録されていない場合には、通信経路端末パケットの探索範囲の値を減算する。そして、ノード100は、減算した探索範囲の値が0以上の場合に、通信経路探索パケットをブロードキャストする。このため、通信経路探索パケットは、目的地以外の方向には転送されず、目的地の方向に転送される。したがって、ノード100は、通信経路を構築する場合に、経路探索パケットの伝送範囲を最適に絞り込むことができる。
【0139】
また、ノード100は、通信経路探索パケットのGDに対応するノードのアドレスが、通信経路テーブル140bのGDに登録されている場合には、通信経路探索パケットの探索範囲を初期値に設定し直す。このため、目的地のノードに至る通信経路が迂回経路しか存在しない場合でも、通信経路探索パケットを到達させることができる。
【0140】
また、ノード100は、通信経路探索パケットを送信した後に、通信経路探索パケットの目的地のノードから応答を受信しない場合には、通信経路探索パケットの探索範囲を所定の値増やして、再送する。このため、通信経路探索パケットをより確実に目的地のノードに到達させることができる。
【0141】
ところで、ノード100の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、ノード100の具体的形態は図示のものに限られず、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図2の各処理部150a〜150dの機能をまとめてもよい。
【0142】
上記実施例に示したノード100の機能は、既知のPC(Personal Computer)またはPDA(Personal Digital Assistants)などの情報処理装置に、ノードに対応する各機能を搭載することによって実現することもできる。図35は、ノードを構成するコンピュータのハードウェア構成を示す図である。
【0143】
図35に示すように、このコンピュータ300は、各種演算処理を実行するCPU301と、ユーザからのデータの入力を受け付ける入力装置302と、ディスプレイ303とを有する。また、コンピュータ300は、記憶媒体からプログラム等を読み取る読み取り装置304と、他の装置と接続するためのインターフェース装置305とを有する。また、コンピュータ300は、他の装置と無線により接続する無線通信装置306と、各種情報を一時記憶するRAM307と、ハードディスク装置308とを有する。各装置301〜308は、バス309に接続される。
【0144】
ハードディスク装置308には、判定プログラム、送信制御プログラムなどの各種のプログラムが記憶される。
【0145】
CPU301は、ハードディスク装置308に記憶された各プログラムを読み出して、RAM307に展開し、各種の処理を行う。また、これらのプログラムは、コンピュータを図3の判定部151、送信制御部152として機能させることができる。
【0146】
なお、上記のプログラムは、必ずしもハードディスク装置308に格納されている必要はない。例えば、CD−ROM等の記憶媒体に記憶されたプログラムを、コンピュータ300が読み出して実行するようにしてもよい。また、公衆回線、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)等に接続された記憶装置に、各プログラムを記憶させておいてもよい。この場合、コンピュータ300がこれらから各プログラムを読み出して実行するようにしてもよい。
【符号の説明】
【0147】
100a、100b、100c、100d、100e、100f、100g、100x、100y、100z ノード
110 無線通信部
120 入力部
130 表示部
140 記憶部
150 制御部
【技術分野】
【0001】
本発明は、無線通信端末等に関する。
【背景技術】
【0002】
近年、複数の無線通信端末が自律分散的に相互接続するアドホックネットワークの研究が進められている。アドホックネットワークには、例えば、スマートネットなどの固定形マルチホップネットワークが含まれる。以下では、無線通信端末をノードと表記する。アドホックネットワークでは、アクセスポイントは設定されず、各ノードが、隣接ノードから受信したパケットを通信経路に基づき他のノードに転送することで、パケットを目的地に送信する。
【0003】
アドホックネットワークの各ノードは、ハローパケット(Hello Packet)を送受信することで、通信経路を構築することができる(例えば特許文献1参照)。ここで、ゲートウェイ(Gateway:以下適宜「GW」と表す)から各ノードへの通信経路(下り方向)を構築するに際して、以下の前提条件1、2のもと経路構築を行うことを考えてみる。
【0004】
前提条件1は、上り方向の通信経路が作成済みという条件である。上り方向は、ノードからGWに至る方向である。上り方向の通信経路が作成済みの場合には、目的地「GW」にパケットを送信するための転送先のノードが1つ以上通信経路に登録されている。なお、通信経路の作成は先の特許文献1に記載された技術を用いることができる。
【0005】
前提条件2は、各ノードがGWに複数回パケットを送信していて、その上り方向の通信経路を利用して下り方向の通信を行うために、GWの通信経路上の中継ノードには、下り方向の通信経路用のテーブルに目的地となるノード毎に転送先のノードが登録されているという条件である。ただし、GWの通信経路の目的地のノードは、GWにパケットを送信した送信元のノードとする。
【0006】
上記前提条件1、2においては、経路候補数が限られ、また、ネットワークの変化に対する追随性が問題となる。そこで、送信要求が発生して後でルーティングテーブルを動的に作成するReactive方式を利用することが解決策として考えられる。Reactive方式では、送信要求が発生すると、宛て先を探すためのリクエストパケットを自己の近隣ノードに対して一斉送信(フラッディング)する。例えば、GWは、通信経路に含まれるノードを目的地に設定した経路探索パケットを全方位にブロードキャストする。GWは、該経路探索パケットを受信した目的地のノードからの応答を受信し、目的地のノードに至る複数の通信経路を作成する。このように、目的地のノードに至る複数の通信経路を有していると、ネットワークの変化により、ある通信経路が利用できなくなっても、他の通信経路を利用することで、目的地のノードにパケットを送信することができる。
【0007】
なお、経路探索パケットを全方位にブロードキャストすると、ネットワーク全体にかかる負荷が大きくなるため、経路探索パケットのホップ数に制限をかけるという技術が存在する(例えば特許文献2参照)。探索要求パケットのホップ数に制限をかけることで、経路探索パケットの伝搬範囲が絞り込まれ、ネットワーク全体にかかる負荷を抑えることができる。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2009−267532号公報
【特許文献2】特開2007−184827号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、上述した従来技術では、通信経路を構築する場合に、経路探索パケットの伝送範囲を最適に絞り込むことができないという問題があった。
【0010】
たとえば、従来のReactive方式では、経路探索パケットがGWを中心に円状に広がっていくため、目的地のノードとは違う方向にも経路探索パケットが伝送されてしまう。また、目的地のノードに至る通信経路が迂回経路しか存在しない場合には、経路探索パケットの伝送範囲を超えてしまい、経路探索パケットが目的地のノードに届かず、目的地のノードに至る通信経路を構築することができない場合があった。
【0011】
開示の技術は、上記に鑑みてなされたものであって、通信経路を構築する場合に、経路探索パケットの伝送範囲を最適に絞り込むことができる無線通信端末および経路構築方法を提供することを目的とする。
【課題を解決するための手段】
【0012】
開示の無線通信端末は、判定部と送信制御部とを有する。判定部は、探索対象となる無線通信端末の情報と探索範囲を示す値とを有するパケットを受信した場合に、目的地の経路を含む通信経路テーブルを参照し、該通信経路テーブルの目的地に、探索対象となる無線通信端末が含まれているか否かを判定する。送信制御部は、判定部の判定結果に基づいて、通信経路テーブルの目的地に、探索対象となる無線通信端末が含まれている場合には、パケットを隣接する無線通信端末に送信する。一方、送信制御部は、通信経路テーブルの目的地に、探索対象となる無線通信端末が含まれていない場合には、探索範囲を示す値から所定値を減算し、該探索範囲を示す値が所定の閾値以上の場合には、パケットを隣接する無線通信端末に送信する。
【発明の効果】
【0013】
開示の無線通信端末によれば、通信経路を構築する場合に、経路探索パケットの伝送範囲を最適に絞り込むことができるという効果を奏する。
【図面の簡単な説明】
【0014】
【図1】図1は、アドホックネットワークの構成を示す図である。
【図2】図2は、ノードの構成を示す図である。
【図3】図3は、ハローパケットのデータ構造の一例を示す図である。
【図4】図4は、ワークテーブルのデータ構造の一例を示す図である。
【図5】図5は、通信経路テーブルのデータ構造の一例を示す図である。
【図6】図6は、経路構築パケットのデータ構造の一例を示す図である。
【図7】図7は、経路探索パケットのデータ構造の一例を示す図である。
【図8】図8は、ハローパケットによる経路構築の処理手順を示す図である。
【図9】図9は、ハローパケットのデータ構造と各ノードの通信経路テーブルのデータ構造の一例を示す図(1)である。
【図10】図10は、ハローパケットのデータ構造と各ノードの通信経路テーブルのデータ構造の一例を示す図(2)である。
【図11】図11は、ハローパケットのデータ構造と各ノードの通信経路テーブルのデータ構造の一例を示す図(3)である。
【図12】図12は、ハローパケットのデータ構造と各ノードの通信経路テーブルのデータ構造の一例を示す図(4)である。
【図13】図13は、ハローパケットのデータ構造と各ノードの通信経路テーブルのデータ構造の一例を示す図(5)である。
【図14】図14は、ハローパケットのデータ構造と各ノードの通信経路テーブルのデータ構造の一例を示す図(6)である。
【図15】図15は、ハローパケットのデータ構造と各ノードの通信経路テーブルのデータ構造の一例を示す図(7)である。
【図16】図16は、ハローパケットのデータ構造と各ノードの通信経路テーブルのデータ構造の一例を示す図(8)である。
【図17】図17は、ハローパケットのデータ構造と各ノードの通信経路テーブルのデータ構造の一例を示す図(9)である。
【図18】図18は、経路構築パケットによる経路構築の処理を説明する図(1)である。
【図19】図19は、経路構築パケットによる経路構築の処理を説明する図(2)である。
【図20】図20は、経路構築パケットによる経路構築の処理を説明する図(3)である。
【図21】図21は、経路構築パケットによる経路構築の処理を説明する図(4)である。
【図22】図22は、経路探索パケットの転送処理を説明するための図(1)である。
【図23】図23は、経路探索パケットの転送処理を説明するための図(2)である。
【図24】図24は、経路探索パケットの転送処理を説明するための図(3)である。
【図25】図25は、経路探索パケットの転送処理を説明するための図(4)である。
【図26】図26は、経路探索パケットの転送処理を説明するための図(5)である。
【図27】図27は、経路探索パケットの転送処理を説明するための図(6)である。
【図28】図28は、経路探索パケットの転送処理を説明するための図(7)である。
【図29】図29は、経路探索パケットの転送処理を説明するための図(8)である。
【図30】図30は、ハローパケット受信処理の処理手順を示すフローチャートである。
【図31】図31は、ハローパケット送信処理の処理手順を示すフローチャートである。
【図32】図32は、経路構築パケットの送信処理の処理手順を示すフローチャートである。
【図33】図33は、経路構築パケットの受信処理の処理手順を示すフローチャートである。
【図34】図34は、経路探索パケットの処理手順を示すフローチャートである。
【図35】図35は、ノードを構成するコンピュータのハードウェア構成を示す図である。
【発明を実施するための形態】
【0015】
以下に、本願の開示する無線通信端末および経路構築方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【0016】
本実施例にかかるアドホックネットワークの構成について説明する。図1は、アドホックネットワークの構成を示す図である。図1に示すように、このアドホックネットワークは、ノード100a〜100g、100x〜100zを有する。ノード100a〜100g、100x〜100zは、無線通信端末の一例である。また、ノード100gは、GW(Gate Way)に対応する。
【0017】
ノード100a〜100g、100x〜100zは、隣接のノードと無線により接続する。例えば、ノード100gは、ノード100a、100b、100xに接続される。ノード100aは、ノード100g、100c、100dに接続される。ノード100bは、ノード100g、100d、100e、100yに接続される。ノード100cは、ノード100a、100d、100fに接続される。ノード100dは、ノード100a、100b、100c、100e、100fに接続される。100eは、ノード100b、100d、100fに接続される。ノード100fは、ノード100c、100d、100eに接続される。ノード100xは、ノード100g、100b、100yに接続される。ノード100yは、ノード100b、100x、100zに接続される。ノード100zは、ノード100yに接続される。本実施例では、ノード100a〜100g、100x〜100yを総称する場合、ノード100と表記する。
【0018】
次に、本実施例にかかるノード100の構成について説明する。図2は、ノードの構成を示す図である。図2に示すように、このノード100は、無線通信部110、入力部120、表示部130、記憶部140、制御部150を有する。
【0019】
無線通信部110は、隣接するノードとの間で無線によりデータ通信する装置である。例えば、無線通信部110は、無線リンクモジュールなどに対応する。制御部150は、この無線通信部110を介して、隣接するノードとの間でハローパケット等を送受信する。
【0020】
入力部120は、各種の情報をノード100に入力するための入力装置である。例えば、入力部120は、キーボード、マウス、タッチパネル等に対応する。表示部120は、各種の情報を表示する表示装置である。例えば、表示部130は、ディスプレイ、タッチパネル等に対応する。
【0021】
記憶部140は、例えば、ワークテーブル140a、通信経路テーブル140b、データ管理テーブル140cを記憶する。この記憶部140は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、またはハードディスク、光ディスクなどの記憶装置に対応する。
【0022】
ワークテーブル140aは、ハローパケットの情報を一時的に保持するテーブルである。ここで、ハローパケットのデータ構造の一例と、ワークテーブル140aのデータ構造の一例について説明する。
【0023】
図3は、ハローパケットのデータ構造の一例を示す図である。図3に示すように、ハローパケットは、GS、LS、Eを有する。このうち、GSには、目的地のノードのアドレスが格納される。例えば、GSには、GWとなるノード100gのアドレスが格納される。LSには、ハローパケットを転送したノードのアドレスが格納される。Eには、例えば、ハローパケットのホップ数が格納される。
【0024】
図4は、ワークテーブルのデータ構造の一例を示す図である。図4に示すように、このワークテーブル140aは、GD、LD、Eを有する。GDには、目的地のノードのアドレスが格納される。LDには、転送先のアドレスが格納される。Eには、例えば、ハローパケットのホップ数が格納される。図3に示したハローパケットのGS、LS、Eが、それぞれ、図4のワークテーブル140aのGD、LD、Eに格納される。
【0025】
通信経路テーブル140bは、目的地となるノードにパケットを送信する場合に、どの隣接ノードにパケットを転送すればよいかを示すものである。図5は、通信経路テーブルのデータ構造の一例を示す図である。図5のGD、LD、Eに関する説明は、上記図4のGD、LD、Eに関する説明と同様である。図5に示すように、例えば、通信経路テーブル140bには、目的地のノード「GD」に対する複数の通信経路が記憶されている。この通信経路テーブル140bでは、ノード100gにパケットを送信する場合には、ノード100a〜100eの何れかのノードにパケットを転送すればよいことを示している。図5では、説明の便宜上、ノードの名称を示しているが、ノードのアドレスが登録されてもよい。
【0026】
データ管理テーブル140cは、パケットの送信履歴を記憶するテーブルである。このデータ管理テーブル140cは、後述の下り経路構築部150bにより利用される。
【0027】
制御部150は、ハローパケット制御部150a、下り経路構築部150b、経路探索パケット送信部150c、経路探索パケット受信部150dを有する。制御部150は、ASIC(Application Specific Integrated Circuit)や、FPGA(Field Programmable Gate Array)などの集積装置に対応する。また、制御部150は、例えば、CPUやMPU(Micro Processing Unit)等の電子回路に対応する。
【0028】
ハローパケット制御部150aは、隣接のノードとハローパケットを送受信することで、通信経路テーブル140bに目的地「GD」、転送先「LD」、ホップ数「E」の関係を登録する処理部である。
【0029】
ハローパケット制御部150aが、ハローパケットを受信した場合の処理について説明する。ハローパケット制御部150aは、ハローパケットのGS、LSの情報をワークテーブル140aのGD、LDに格納する。また、ハローパケット制御部150aは、ハローパケットのEの値に1を加算したものを、ワークテーブル140aのEに格納する。そして、ハローパケット制御部150aは、ワークテーブル140aのレコードを通信経路テーブル140bに登録する。
【0030】
ハローパケット制御部150aが、ハローパケットを送信する場合の処理について説明する。例えば、ハローパケット制御部150aは、クロックイベントが発生したことを契機にして、ハローパケットを生成する。
【0031】
ハローパケット制御部150aは、ハローパケットのGSに、通信経路テーブル140bのGSの情報を格納する。例えば、ハローパケット制御部150aは、ゲートウェイに対応するノード100gのアドレスをハローパケットのGSに格納してもよい。ハローパケット制御部150aは、ハローパケットのLSに自ノード100のアドレスを格納する。ハローパケット制御部150aは、ハローパケットのEに、通信経路テーブル140bのEを格納する。
【0032】
下り経路構築部150bは、上り方向の目的地のノードに対して、パケットを送信し、目的地に至る他のノードの下り経路構築部150bと協働して、下り方向の経路を構築する処理部である。下り方向の経路を構築することを目的として上り方向の目的地のノードに送信するパケットを、便宜上、経路構築パケットと表記する。
【0033】
図6は、経路構築パケットのデータ構造の一例を示す図である。図6に示すように、この経路構築パケットは、GD、GS、LS、LD、E、FIDを有する。このうち、GDは目的地を示すものであり、通信経路テーブル140bのGDの情報が格納される。GSには、経路構築パケットの送信元のアドレスが格納される。LSには、経路構築パケットの転送元のノードのアドレスが格納される。LDには、経路構築パケットの転送先となる隣接ノードのアドレスが格納される。Eには、ホップ数が格納される。FIDには、経路構築パケットを一意に識別する値が格納される。下り経路構築部150bは、送信した経路構築パケットの情報を、送信履歴としてデータ管理テーブル140cに格納する。
【0034】
経路探索パケット送信部150cは、ある目的地のノードに至る経路情報を増やすことを目的として、目的地のノードに経路探索パケットを送信する処理部である。図7は、経路探索パケットのデータ構造の一例を示す図である。図7に示すように、経路探索パケットは、GS、GD、探索範囲を有する。GSには、経路検索パケットの送信元のノードのアドレスが格納される。GDには、目的地のノードのアドレスが格納される。探索範囲には、経路探索パケットを転送するか否かを示す値が格納される。経路探索パケット送信部150cは、探索範囲に所定の数値を代入し、経路検索パケットをブロードキャストする。
【0035】
経路探索パケット送信部150cは、経路探索パケットの目的地のノードから応答を受信しない場合には、探索範囲に代入する値を増やして、経路探索パケットを再送する。例えば、経路探索パケット送信部150cは、経路探索パケットをブロードキャストしてから、所定の時間が経過する間に応答を受信しない場合に、経路探索パケットを再送する。
【0036】
経路探索パケット受信部150dは、経路探索パケットを受信した場合に、経路探索パケットの探索範囲に基づいて、経路探索パケットを送信する処理部である。経路探索パケット受信部150dは、判定部151と、送信制御部152を有する。
【0037】
判定部151は、経路探索パケットのGDに格納されたノードが、通信経路テーブル140bのGDに含まれているか否かを判定し、判定結果を送信制御部152に出力する。
【0038】
送信制御部152は、判定部151の判定結果に基づいて、経路探索パケットの送信制御を行う処理部である。
【0039】
判定部151の判定結果に、経路探索パケットのGDに格納されたノードが、通信経路テーブル140bのGDに含まれている旨の情報が含まれている場合の送信制御部152の処理について説明する。この場合には、送信制御部152は、経路探索パケットの探索範囲の値をもとの初期値に戻し、経路探索パケットをブロードキャストする。
【0040】
これに対して、判定部151の判定結果に、経路探索パケットのGDに格納されたノードが、通信経路テーブル140bのGDに含まれていない旨の情報が含まれている場合の送信制御部152の処理について説明する。この場合には、送信制御部152は、経路探索パケットの探索範囲の値から1を減算する。そして、送信制御部152は、減算した探索範囲の値が所定の閾値より大きい場合に、経路検索パケットをブロードキャストする。一方、送信制御部152は、減算した探索範囲の値が所定の閾値以下の場合には、経路検索パケットをブロードキャストする。例えば、探索範囲の値と比較される所定の閾値を0とする。
【0041】
ところで、送信制御部152は、経路探索パケットのGDが、自ノードの場合には、経路探索パケットの送信元のノードに応答データを送信してもよい。
【0042】
次に、アドホックネットワークのノード100a〜100g、100x〜100zがハローパケットを送受信して、通信経路テーブルを更新する処理について説明する。図8は、ハローパケットによる経路構築の処理手順を示す図である。また、図9〜図17は、ハローパケットのデータ構造と各ノードの通信経路テーブルのデータ構造の一例を示す図である。
【0043】
図8において、ノード100gはハローパケットを、ノード100a、100b、100xに送信する(ステップS10)。ノード100aは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS11)。ノード100bは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS12)。ノード100cは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS13)。
【0044】
図9において、ハローパケット10は、ステップS10において送信されるハローパケットである。通信経路テーブル10a、10b、10xは、それぞれ、ノード100a、100b、100xの通信経路テーブルである。ハローパケット10のGDには「100g」、LSには「100g」、Eには「0」が登録されている。
【0045】
ノード100aは、ノード100gからハローパケット10を受信した場合に、通信経路テーブル10aのGDに「100g」、LDに「100g」を登録する。また、ノード100aは、ハローパケット10のEの値に1を加算した値「1」を通信経路テーブル10aに格納する。ノード100bは、通信経路テーブル10bのGDに「100g」、LDに「100g」を登録する。また、ノード100bは、ハローパケット10のEの値に1を加算した値「1」を通信経路テーブル10bに格納する。ノード100xは、通信経路テーブル10xのGDに「100g」、LDに「100g」を登録する。また、ノード100xは、ハローパケット10のEの値に1を加算した値「1」を通信経路テーブル10xに格納する。
【0046】
図8において、ノード100aは、ハローパケットをノード100c、100dに送信する(ステップS20)。ノード100cは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS21)。ノード100dは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS22)。
【0047】
図10において、ハローパケット20は、ステップS20において送信されるハローパケットである。通信経路テーブル10c、10dは、それぞれ、ノード100c、100dの通信経路テーブルである。ハローパケット20のGDには「100g」、LSには「100a」、Eには「1」が登録されている。
【0048】
ノード100cは、ノード100aからハローパケット20を受信した場合に、通信経路テーブル10cのGDに「100g」、LDに「100a」を登録する。また、ノード100cは、ハローパケット20のEの値に1を加算した値「2」を通信経路テーブル10cに格納する。また、ノード100dは、ノード100aからハローパケット20を受信した場合に、通信経路テーブル10dのGDに「100g」、LDに「100a」を登録する。また、ノード100dは、ハローパケット20のEの値に1を加算した値「2」を通信経路テーブル10dに格納する。
【0049】
図8において、ノード100bは、ハローパケットをノード100d、100e、100yに送信する(ステップS30)。ノード100dは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS31)。ノード100eは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS32)。ノード100yは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS33)。
【0050】
図11において、ハローパケット30は、ステップS30において送信されるハローパケットである。通信経路テーブル10d、10e、10yは、それぞれ、ノード100d、100e、100yの通信経路テーブルである。ハローパケット30のGSには「100g」、LSには「100b」、Eには「1」が登録されている。
【0051】
ノード100dは、ノード100bからハローパケット30を受信した場合に、通信経路テーブル10dのGDに「100g」、LDに「100b」を追加登録する。また、ノード100dは、ハローパケット30のEの値に1を加算した値「2」を通信経路テーブル10dに格納する。ノード100eは、ノード100bからハローパケット30を受信した場合に、通信経路テーブル10eのGDに「100g」、LDに「100b」を格納する。また、ノード100eは、ハローパケット30のEの値に1を加算した値「2」を通信経路テーブル10eに格納する。ノード100yは、ノード100bからハローパケット30を受信した場合に、通信経路テーブル10yのGDに「100g」、LDに「100b」を格納する。また、ノード100yは、ハローパケット30のEの値に1を加算した値「2」を通信経路テーブル10yに格納する。
【0052】
図8において、ノード100xは、ハローパケットをノード100yに送信する(ステップS35)。ノード100yは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS36)。
【0053】
図12において、ハローパケット35は、ステップS35において送信されるハローパケットである。通信経路テーブル10yは、ノード100yの通信経路テーブルである。ハローパケット35のGSには「100g」、LSには「100x」、Eには「1」が登録されている。
【0054】
ノード100yは、ノード100xからハローパケット35を受信した場合に、通信経路テーブル10yのGDに「100g」、LDに「100x」を追加登録する。また、ノード100yは、ハローパケット35のEの値に1を加算した値「2」を通信経路テーブル10yに格納する。
【0055】
図8において、ノード100cは、ハローパケットをノード100a、100d、100fに送信する(ステップS40)。ノード100aは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS41)。ノード100dは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS42)。ノード100fは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS43)。
【0056】
図13において、ハローパケット40は、ステップS40において送信されるハローパケットである。通信経路テーブル10a、10d、10fは、ノード100a、100d、100fの通信経路テーブルである。ハローパケット40のGSには「100g」、LSには「100c」、Eには「2」が登録されている。
【0057】
ノード100aは、ノード100cからハローパケット40を受信した場合に、通信経路テーブル10aのGDに「100g」、LDに「100c」を追加登録する。また、ノード100aは、ハローパケット40のEの値に1を加算した値「3」を通信経路テーブル10yに格納する。ノード100dは、ノード100cからハローパケット40を受信した場合に、通信経路テーブル10dのGDに「100g」、LDに「100c」を追加登録する。また、ノード100dは、ハローパケット40のEの値に1を加算した値「3」を通信経路テーブル10dに格納する。
【0058】
ノード100fは、ノード100cからハローパケット40を受信した場合に、通信経路テーブル10fのGDに「100g」、LDに「100c」を追加登録する。また、ノード100fは、ハローパケット40のEの値に1を加算した値「3」を通信経路テーブル10fに格納する。
【0059】
図8において、ノード100dは、ハローパケットをノード100a、100b、100c、100e、100fに送信する(ステップS50)。ノード100aは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS51)。ノード100bは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS52)。ノード100cは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS53)。ノード100eは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS54)。ノード100fは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS55)。
【0060】
図14において、ハローパケット50は、ステップS50において送信されるハローパケットである。通信経路テーブル10a、10b、10c、10e、10fは、ノード100a、100b、100c、100e、100fの通信経路テーブルである。ハローパケット50のGSには「100g」、LSには「100d」、Eには「2」が登録されている。
【0061】
ノード100aは、ノード100dからハローパケット50を受信した場合に、通信経路テーブル10aのGDに「100g」、LDに「100d」を追加登録する。また、ノード100aは、ハローパケット50のEの値に1を加算した値「3」を通信経路テーブル10aに格納する。ノード100bは、ノード100dからハローパケット50を受信した場合に、通信経路テーブル10bのGDに「100g」、LDに「100d」を追加登録する。また、ノード100bは、ハローパケット50のEの値に1を加算した値「3」を通信経路テーブル10bに格納する。
【0062】
ノード100cは、ノード100dからハローパケット50を受信した場合に、通信経路テーブル10cのGDに「100g」、LDに「100d」を追加登録する。また、ノード100cは、ハローパケット50のEの値に1を加算した値「3」を通信経路テーブル10cに格納する。ノード100eは、ノード100dからハローパケット50を受信した場合に、通信経路テーブル10eのGDに「100g」、LDに「100d」を追加登録する。また、ノード100eは、ハローパケット50のEの値に1を加算した値「3」を通信経路テーブル10eに格納する。ノード100fは、ノード100dからハローパケット50を受信した場合に、通信経路テーブル10fのGDに「100g」、LDに「100d」を追加登録する。また、ノード100fは、ハローパケット50のEの値に1を加算した値「3」を通信経路テーブル10fに格納する。
【0063】
図8において、ノード100eは、ハローパケットをノード100b、100d、100fに送信する(ステップS60)。ノード100bは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS61)。ノード100dは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS62)。ノード100fは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS63)。
【0064】
図15において、ハローパケット60は、ステップS60において送信されるハローパケットである。通信経路テーブル10b、10c、10fは、ノード100b、100c、100fの通信経路テーブルである。ハローパケット60のGSには「100g」、LSには「100e」、Eには「3」が登録されている。
【0065】
ノード100bは、ハローパケット60を受信した場合に、通信経路テーブル10bのGDに「100g」、LDに「100e」を追加登録する。また、ノード100bは、ハローパケット60のEの値に1を加算した値「4」を通信経路テーブル10bに格納する。ノード100cは、ハローパケット60を受信した場合に、通信経路テーブル10cのGDに「100g」、LDに「100e」を追加登録する。また、ノード100cは、ハローパケット60のEの値に1を加算した値「4」を通信経路テーブル10cに格納する。ノード100fは、ハローパケット60を受信した場合に、通信経路テーブル10fのGDに「100g」、LDに「100e」を追加登録する。また、ノード100fは、ハローパケット60のEの値に1を加算した値「4」を通信経路テーブル10fに格納する。
【0066】
図8において、ノード100yは、ハローパケットをノード100b、100x、100zに送信する(ステップS70)。ノード100bは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS71)。ノード100xは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS72)。ノード100zは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS73)。
【0067】
図16において、ハローパケット70は、ステップS70において送信されるハローパケットである。通信経路テーブル10b、10x、10zは、ノード100b、100x、100zの通信経路テーブルである。ハローパケット70のGSには「100g」、LSには「100y」、Eには「2」が登録されている。
【0068】
ノード100bは、ハローパケット70を受信した場合に、通信経路テーブル10bのGDに「100g」、LDに「100y」を追加登録する。また、ノード100bは、ハローパケット70のEの値に1を加算した値「3」を通信経路テーブル10bに格納する。ノード100xは、ハローパケット70を受信した場合に、通信経路テーブル10xのGDに「100g」、LDに「100y」を追加登録する。また、ノード100xは、ハローパケット70のEの値に1を加算した値「3」を通信経路テーブル10xに格納する。ノード100zは、ハローパケット70を受信した場合に、通信経路テーブル10zのGDに「100g」、LDに「100y」を追加登録する。また、ノード100zは、ハローパケット70のEの値に1を加算した値「3」を通信経路テーブル10zに格納する。
【0069】
図8において、ノード100fは、ハローパケットをノード100c、100d、100eに送信する(ステップS80)。ノード100cは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS81)。ノード100dは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS82)。ノード100eは、ハローパケットを受信し、通信経路テーブルを更新する(ステップS83)。
【0070】
図17において、ハローパケット80は、ステップS80において送信されるハローパケットである。通信経路テーブル10c、10d、10eは、ノード100c、100d、100eの通信経路テーブルである。ハローパケット80のGSには「100g」、LSには「100f」、Eには「3」が登録されている。
【0071】
ノード100cは、ハローパケット80を受信した場合に、通信経路テーブル10cのGDに「100g」、LDに「100f」を追加登録する。また、ノード100bは、ハローパケット80のEの値に1を加算した値「4」を通信経路テーブル10cに格納する。ノード100dは、ハローパケット80を受信した場合に、通信経路テーブル10dのGDに「100g」、LDに「100f」を追加登録する。また、ノード100dは、ハローパケット80のEの値に1を加算した値「4」を通信経路テーブル10dに格納する。ノード100eは、ハローパケット80を受信した場合に、通信経路テーブル10eのGDに「100g」、LDに「100f」を追加登録する。また、ノード100eは、ハローパケット80のEの値に1を加算した値「4」を通信経路テーブル10eに格納する。
【0072】
上記のように、各ノード100a〜100g、100x〜100zが図8に示すような処理を実行することで、図9〜図17に示したように、各通信経路テーブルを更新する。なお、図9〜図17に示した通信経路テーブルは、図2に示した通信経路テーブル140bに対応する。
【0073】
次に、アドホックネットワークのノード100a〜100g、100x〜100zが経路構築パケットを送受信して、通信経路テーブルを更新する処理について説明する。図18〜図21は、経路構築パケットによる経路構築の処理を説明する図である。
【0074】
まず、図18に示すように、経路構築パケットがノード100fから送信され、ノード100d、100a、100gの順に転送される場合について説明する。また、そのときの、経路構築パケットと各ノードの経路構築パケットの内容を図19に示す。図19において、10f、10d、10a、10gは、ノード100f、100d、100a、100gの通信経路テーブルである。
【0075】
ノード100fは、例えば、通信経路テーブル10fの2段目を選択する。ノード100fは、経路構築パケット85aのGD、LDに通信経路テーブル10fのGD「100g」、LD「100d」を格納する。また、ノード100fは、経路構築パケット85aのGS、LSに、自ノードのアドレスを格納する。また、ノード100fは、Eに「0」を格納し、FIDに経路構築パケット85aを識別する値「1」を登録する。
【0076】
ノード100fは、経路構築パケット85aをノード100dに送信する。ノード100dは、経路構築パケット85aのGS、LSを、通信経路テーブル10dのGD、LDに登録する。また、ノード100dは、経路構築パケット85aのEに1を加算した値「1」を、通信経路テーブル10dのEに登録する(ステップS85a)。
【0077】
ノード100dは、経路構築パケット85bのGD、GSに経路構築パケット85aのGD「100g」、GS「100f」を格納する。また、ノード100dは、経路構築パケット85bのLSに自ノードを格納する。ノード100dは、経路構築パケット85bのLDに転送先となる「l00a」を格納する。また、ノード100dは、先の経路構築パケット85aのEに1を加算した値「1」を、経路構築パケット85bのEに格納する。また、ノード100dは、FIDに値「1」を登録する。
【0078】
ノード100dは、経路構築パケット85bをノード100aに送信する。ノード100aは、経路構築パケット85bのGS、LSを、通信経路テーブル10aのGD、LDに登録する。また、ノード100aは、経路構築パケット85bのEに1を加算した値「2」を、通信経路テーブル10aのEに登録する(ステップS85b)。
【0079】
ノード100aは、経路構築パケット85cのGD、GSに経路探索パケット85bのGD「100g」、GS「100f」を格納する。また、ノード100aは、経路構築パケット85cのLSに自ノードを格納する。ノード100aは、経路構築パケット85cのLDに転送先となる「l00g」を格納する。また、ノード100aは、先の経路構築パケット85aのEに1を加算した値「2」を、経路構築パケット85cのEに格納する。
【0080】
ノード100aは、経路構築パケット85cをノード100gに送信する。ノード100gは、経路構築パケット85cのGS、LSを、通信経路テーブル10gのGD、LDに登録する。また、ノード100gは、経路構築パケット85cのEに1を加算した値「3」を、通信経路テーブル10gのEに登録する(ステップS85c)。
【0081】
このように、ステップS85a〜85cの処理を実行することにより、ノード100gは、目的地「100f」に対する通信経路を得ることができる。
【0082】
続いて、図20に示すように、経路構築パケットがノード100fから送信され、ノード100e、100d、100b、100gの順に転送される場合について説明する。ただし、ノード100eからノード100bへの経路構築パケットの転送が失敗したために、経路構築パケットは、ノード100dを経由して、ノード100eからノード100bに転送されるものとする。
【0083】
図21において、10f、10e、10d、10b、10gは、ノード100f、100e、100d、100b、100gの通信経路テーブルである。ノード100fは、例えば、通信経路テーブル10fの3段目を選択する。ノード100fは、経路構築パケット86aのGD、LDに通信経路テーブル10fのGD「100g」、LD「100e」を格納する。また、ノード100fは、経路構築パケット86aのGS、LSに、自ノードのアドレスを格納する。また、ノード100fは、Eに0を格納し、FIDに経路構築パケット85aを識別する値「2」を登録する。
【0084】
ノード100fは、経路構築パケット86aをノード100eに送信する。ノード100eは、経路構築パケット86aのGS、LSを、通信経路テーブル10eのGD、LDに登録する。また、ノード100fは、経路構築パケット86aのEに1を加算した値「1」を、通信経路テーブル10eのEに登録する(ステップS86a)。
【0085】
ノード100eは、経路構築パケット86bのGD、GSに経路構築パケット86aのGD「100g」、GS「100f」を格納する。また、ノード100eは、経路構築パケット86bのLSに自ノードを格納する。ノード100eは、経路構築パケット86bのLDに転送先となる「l00b」を格納する。また、ノード100eは、先の経路構築パケット86aのEに1を加算した値「1」を、経路構築パケット86bのEに格納する。
【0086】
ノード100eは、経路構築パケット86bをノード100bに転送するが、転送に失敗する。このように、転送を失敗した場合には、通信経路を切り換える。例えば、ノード100eは、経路構築パケット86bのLDを「100d」に変更した経路構築パケット86cを作成し、経路構築パケット86cを、ノード100dに送信する。
【0087】
ノード100dは、経路構築パケット86cを受信し、経路構築パケット86cのGS、LSを、通信経路テーブル10dのGD、LDに登録する。また、ノード100dは、経路構築パケット86cのEに1を加算した値「2」を、通信経路テーブル10dのEに登録する(ステップS86b)。
【0088】
ノード100dは、経路構築パケット86dのGD、GSに経路探索パケット86cのGD「100g」、GS「100f」を格納する。また、ノード100dは、経路構築パケット86dのLSに自ノードを格納する。ノード100dは、経路構築パケット86cのLDに転送先となる「l00b」を格納する。また、ノード100dは、先の経路構築パケット86cのEに1を加算した値「2」を、経路構築パケット86dのEに格納する。ノード100dは、経路構築パケット86dを、ノード100bに送信する。
【0089】
ノード100bは、経路構築パケット86dを受信し、経路構築パケット86dのGS、LSを、通信経路テーブル10bのGD、LDに登録する。また、ノード100bは、経路構築パケット86bのEに1を加算した値「3」を、通信経路テーブル10bのEに登録する(ステップS86c)。
【0090】
ノード100bは、経路構築パケット86eのGD、GSに経路探索パケット86dのGD「100g」、GS「100f」を格納する。また、ノード100bは、経路構築パケット86eのLSに自ノードを格納する。ノード100bは、経路構築パケット86eのLDに転送先となる「l00g」を格納する。また、ノード100bは、先の経路構築パケット86dのEに1を加算した値「3」を、経路構築パケット86eのEに格納する。ノード100bは、経路構築パケット86eを、ノード100gに送信する。
【0091】
ノード100gは、経路構築パケット86eを受信し、経路構築パケット86eのGS、LSを、通信経路テーブル10gのGD、LDに登録する。また、ノード100gは、経路構築パケット86eのEに1を加算した値「4」を、通信経路テーブル10gのEに登録する(ステップS86d)。
【0092】
このように、ステップS86a〜86dの処理を実行することにより、ノード100gは、目的地「100f」に対する新たな通信経理を得ることができる。
【0093】
次に、アドホックネットワークのノード100a〜100g、100x〜100zが経路探索パケットを送信する処理について説明する。ただし、この経路探索パケットを送信する処理は、図8に示したハローパケットの送受信、図20に示した経路構築パケットの送受信が行われた後に実行される。
【0094】
次に、経路探索パケットの転送処理について説明する。図22〜図29は、経路探索パケットの転送処理を説明するための図である。ここでは一例として、ノード100gが、経路探索パケットのGDにノード100fのアドレスを格納して、経路探索パケットをブロードキャストする場合について説明する。図22において、ノード100gは、経路探索パケットをブロードキャストし、ノード100a、100b、100xは、経路探索パケットを受信する(ステップS90)。
【0095】
ステップS91にて送信される経路探索パケットについて説明する。図23に示すように、ノード100gは、経路探索パケット90のGSにノード100gのアドレスを格納し、GDにノード100fのアドレスを格納する。また、ノード100gは、経路探索パケット90の探索範囲に初期値の1を設定し、経路探索パケット90をブロードキャストする。
【0096】
図22において、ノード100aは、経路探索パケットをブロードキャストし、ノード100c、100dは、経路探索パケットを受信する(ステップS91)。
【0097】
ステップS91にて送信される経路探索パケットについて説明する。図24に示すように、通信経路テーブル10aのGDにノード100fのアドレスが含まれている。このため、ノード100aは、経路探索パケット90の探索範囲を初期値の1に設定し、経路探索パケット90をブロードキャストする。
【0098】
図22において、ノード100bは、経路探索パケットをブロードキャストし、ノード100d、100e、100yは、経路探索パケットを受信する(ステップS92)。
【0099】
ステップS92にて送信される経路探索パケットについて説明する。図25に示すように、通信経路テーブル10bのGDにノード100fのアドレスが含まれている。このため、ノード100bは、経路探索パケット90の探索範囲を初期値の1に設定し、経路探索パケット90をブロードキャストする。
【0100】
図22において、ノード100xは、経路探索パケットをブロードキャストし、ノード100yは、経路探索パケットを受信する(ステップS93)。
【0101】
ステップS93にて送信される経路探索パケットについて説明する。図26に示すように、通信経路テーブル10xのGDにノード100fのアドレスが含まれていない。このため、ノード100xは、経路探索パケットの探索範囲を1減算する。探索範囲の値が0以上であるため、ノード100xは、経路探索パケット90をブロードキャストする。
【0102】
また、図26に示すように、通信経路テーブル10yのGDにノード100fのアドレスが含まれていない。このため、ノード100yは、経路検索パケットの探索範囲を1減算する。探索範囲の値が0未満となるため、ノード100fは、経路検索パケット90の転送を停止する。
【0103】
図22において、ノード100yは、ノード100bから受信した経路探索パケットをブロードキャストし、ノード100zは、経路探索パケットを受信する(ステップS94)。
【0104】
ステップS94にて送信される経路探索パケットについて説明する。図27に示すように、通信経路テーブル10yのGDにノード100fのアドレスが含まれていない。このため、ノード100yは、経路探索パケットの探索範囲を1減算する。探索範囲の値が0以上であるため、ノード100yは、経路探索パケット90をブロードキャストする。
【0105】
また、図27に示すように、通信経路テーブル10zのGDにノード100fのアドレスが含まれていない。このため、ノード100zは、経路探索パケットの探索範囲を1減算する。探索範囲の値が0未満となるため、ノード100zは、経路探索パケットの転送を停止する。
【0106】
図22において、ノード100dは、ノード100aから受信した経路探索パケットをブロードキャストし、ノード100c、100e、100fは、経路探索パケットを受信する(ステップS95)。
【0107】
ステップS95にて送信される経路探索パケットについて説明する。図28に示すように、通信経路テーブル10dのGDにノード100fのアドレスが含まれている。このため、ノード100dは、経路検索パケット90の探索範囲を初期値の1に設定し、経路探索パケット90をブロードキャストする。
【0108】
図22において、ノード100cは、ノード100dから受信した経路探索パケットをブロードキャストし、ノード100fは、経路探索パケットを受信する。また、ノード100eは、ノード100dから受信した経路探索パケットをブロードキャストし、ノード100fは、経路探索パケットを受信する(ステップS96)。
【0109】
ステップS96にて送信される経路探索パケットについて説明する。図29に示すように、通信経路テーブル10eのGDにノード100fのアドレスが含まれている。このため、ノード100eは、経路検索パケット90の探索範囲を初期値の1に設定し、経路探索パケット90をブロードキャストする。
【0110】
また、図29に示すように、通信経路テーブル10cのGDにノード100fのアドレスが含まれていない。このため、ノード100cは、経路探索パケットの探索範囲を1減算する。探索範囲の値が0以上であるため、ノード100cは、経路探索パケット90をブロードキャストする。
【0111】
ステップS96において、ノード100fは、自ノード宛の経路検索パケットを受信する。この場合には、ノード100fは、ノード100g宛の応答パケットを送信する。
【0112】
次に、ノード100がハローパケットを受信した場合の処理手順について説明する。図30は、ハローパケット受信処理の処理手順を示すフローチャートである。図30に示す処理は、例えば、ハローパケットを受信したことを契機に実行される。図30に示す処理は、ハローパケット制御部150aの処理に対応する。
【0113】
図30に示すように、ノード100は、ハローパケットを受信していない場合には(ステップS101,No)、処理を終了する。一方、ノード100は、ハローパケットを受信した場合には(ステップS101,Yes)、ハローパケットに情報が含まれるか否かを判定する(ステップS102)。
【0114】
ノード100は、ハローパケットに情報が含まれない場合には(ステップS102,No)、処理を終了する。一方、ノード100は、ハローパケットに情報が含まれている場合には(ステップS102,Yes)、GSまたはLSが自アドレスであるか否かを判定する(ステップS103)。
【0115】
ノード100は、GSまたはLSが自アドレスの場合には(ステップS103,Yes)、処理を終了する。一方、ノード100は、GSまたはLSが自アドレスではない場合には(ステップS103,No)、ワークテーブル140aにレコードを新規作成する(ステップS104)。
【0116】
ノード100は、ワークテーブル140aのGDにハローパケットのGSを設定し(ステップS105)、ワークテーブル140aのLDにハローパケットのLSを設定する(ステップS106)。ノード100は、ワークテーブル140aのEにハローパケットのEに1を加算した値を設定する(ステップS107)。
【0117】
ノード100は、通信経路テーブル140bに同一のGSおよびLDのレコードが存在しない場合には(ステップS108,No)、ワークテーブルに作成したレコードを通信経路テーブルに新規追加し(ステップS110)、処理を終了する。一方、ノード100は、通信経路テーブル140bに同一のGSおよびLDのレコードが存在しない場合には(ステップS108,No)、ワークテーブル140aに作成したレコードを通信経路テーブル140bに新規追加する(ステップS110)。一方、ノード100は、通信経路テーブル140bに同一のGSおよびLDのレコードが存在する場合には(ステップS108,Yes)、上書きする(ステップS109)。
【0118】
次に、ノード100がハローパケットを送信する場合の処理手順について説明する。図31は、ハローパケット送信処理の処理手順を示すフローチャートである。図31に示す処理は、例えば、クロックイベントが発生したことを契機として実行される。図31に示す処理は、ハローパケット制御部150aの処理に対応する。
【0119】
図31に示すように、ノード100は、クロックイベントが発生していない場合には(ステップS150,No)、処理を終了する。一方、ノード100は、クロックイベントが発生した場合には(ステップS150,Yes)、通信経路テーブル140bに情報が存在するか否かを判定する(ステップS151)。
【0120】
ノード100は、通信経路テーブルに情報が存在しない場合には(ステップS151,No)、処理を終了する。一方、ノード100は、通信経路テーブルに情報が存在する場合には(ステップS151,Yes)、通信経路テーブル140bからGSがGWのアドレスとなるレコードを抽出する(ステップS152)。GWをノード100gとすると、ノード100は、GSがノード100gのアドレスとなるレコードを抽出する。
【0121】
ノード100は、ハローパケットのGSに通信経路テーブル140bのGDを設定し(ステップS153)、ハローパケットのLSに通信経路テーブル140bのLDを設定する(ステップS154)。
【0122】
ノード100は、ハローパケットのEに通信経路テーブルのEを設定し(ステップS155)、ハローパケットを送信する(ステップS156)。
【0123】
次に、ノード100が、下り経路を構築する場合の経路構築パケットの送信処理について説明する。図32は、経路構築パケットの送信処理の処理手順を示すフローチャートである。図32に示す処理は、例えば、クロックイベントが発生したことを契機にして実行される。図32に示す処理は、下り経路構築部150bの処理に対応する。
【0124】
図32に示すように、ノード100は、通信経路テーブル140bに、所望のGDが存在しない場合には(ステップS201,No)、処理を終了する。一方、ノード100は、所望のGDが存在する場合には(ステップS201,Yes)、データ管理テーブル140cに基づいて、通信経路テーブル140bに送信可能な転送先が存在するか否かを判定する(ステップS202)。
【0125】
ノード100は、データ管理テーブル140cに基づいて、通信経路テーブル140bに送信可能な転送先が存在しない場合には(ステップS202,No)、処理を終了する。一方、ノード100は、通信経路テーブル140bに送信可能な転送先が存在する場合には(ステップS202,Yes)、通信経路テーブル内の未送信の上位レコードを抽出する(ステップS203)。
【0126】
ノード100は、自ノードがGSではない場合には(ステップS204,No)、レコードのGDを、経路構築パケットのGDに設定する(ステップS205)。ノード100は、レコードのGSを、経路構築パケットのGSに設定し(ステップS206)、レコードのEを経路構築パケットのEに設定し(ステップS207)、ステップS211に移行する。
【0127】
一方、ノード100は、自ノードがGSの場合には(ステップS204,Yes)、経路構築パケットのGDに目的地のノードのアドレスを設定する(ステップS208)。ノード100は、経路構築パケットのGSに自ノードのアドレスを設定し(ステップS209)、経路構築パケットのEに通信経路テーブル140bの上位Eを設定する(ステップS210)。
【0128】
ノード100は、経路構築パケットのLDに通信経路テーブル140bの上位LDを設定し(ステップS211)、経路構築パケットのFIDにユニークな数値を設定する(ステップS212)。ノード100は、経路構築パケットのLSに自ノードのアドレスを設定し(ステップS213)、経路構築パケットの内容をデータ管理テーブル140cに記録し(ステップS214)、経路構築パケットを送信する(ステップS215)。
【0129】
次に、ノード100が、下り経路を構築する場合の経路構築パケットの受信処理について説明する。図33は、経路構築パケットの受信処理の処理手順を示すフローチャートである。図33に示す処理は、例えば、経路構築パケットを受信したことを契機にして実行される。図33に示す処理は、下り経路構築部150bの処理に対応する。
【0130】
図33に示すように、ノード100は、経路構築パケットを受信していない場合には(ステップS250,No)、処理を終了する。一方、ノード100は、経路構築パケットを受信した場合には(ステップS250,Yes)、ワークテーブル140aにレコードを新規作成する(ステップS251)。
【0131】
ノード100は、ワークテーブル140aのGDに経路構築パケットのGSを設定し(ステップS252)、ワークテーブル140aのLDに経路構築パケットのLSを設定する(ステップS253)。
【0132】
ノード100は、ワークテーブル140aのEに、経路構築パケットのEに1を加算した値を設定する(ステップ254)。ノード100は、通信経路テーブル140bに同一のGSおよびLDのレコードが存在する場合には(ステップS255,Yes)、上書きする(ステップS256)。一方、ノード100は、通信経路テーブル140bに同一のGSおよびLDのレコードが存在しない場合には(ステップS255,No)、ワークテーブル140aに作成したレコードを通信経路テーブルに新規追加する(ステップS257)。
【0133】
次に、ノード100が、経路探索パケットに対する処理について説明する。図34は、経路探索パケットの処理手順を示すフローチャートである。図34に示す処理は、例えば、経路探索要求を受け付けたことまたは、経路探索パケットを受信したことを契機に実行される。図34に示す処理は、経路探索パケット送信部150c、経路探索パケット受信部150dの処理に対応する。
【0134】
図34に示すように、経路探索要求があった場合には(ステップS301,Yes)、経路探索パケットのGSに自ノードのアドレスを設定する(ステップS302)。ノード100は、経路探索パケットのGDに目的ノードを設定する(ステップS303)。
【0135】
ノード100は、経路探索パケットの探索範囲に、探索範囲の初期値を設定する(ステップS304)。例えば、ノード100は、探索範囲の初期値として、1を設定する。ノード100は、探索範囲が0以上の場合には(ステップS305,Yes)、経路探索パケットを送信する(ステップS306)。一方、ノード100は、探索範囲が0未満の場合には(ステップS305,No)、処理を終了する。
【0136】
ところで、ノード100は、経路探索要求がない場合には(ステップS301,No)、経路探索パケットの転送を行うと判定する(ステップS307)。ノード100は、経路探索パケットのGDとGSをそのまま流用し(ステップS308)、通信経路テーブル140b内にGDが存在する場合には(ステップS309,Yes)、ステップS304に移行する。
【0137】
一方、ノード100は、通信経路テーブル140b内にGDが存在しない場合には(ステップS309,No)、経路探索パケットの探索範囲に、既存の探索範囲値から1を減算した値を設定し(ステップS310)、ステップS305に移行する。
【0138】
次に、本実施例にかかるノード100の効果について説明する。ノード100は、通信経路探索パケットを受信した場合に、通信経路探索パケットのGDに対応するノードのアドレスが、通信経路テーブル140bのGDに登録されているか否かを判定する。ノード100は、通信経路探索パケットのGDに対応するノードのアドレスが、通信経路テーブル140bのGDに登録されている場合には、通信経路探索パケットをブロードキャストする。これに対して、ノード100は、通信経路探索パケットのGDに対応するノードのアドレスが、通信経路テーブル140bのGDに登録されていない場合には、通信経路端末パケットの探索範囲の値を減算する。そして、ノード100は、減算した探索範囲の値が0以上の場合に、通信経路探索パケットをブロードキャストする。このため、通信経路探索パケットは、目的地以外の方向には転送されず、目的地の方向に転送される。したがって、ノード100は、通信経路を構築する場合に、経路探索パケットの伝送範囲を最適に絞り込むことができる。
【0139】
また、ノード100は、通信経路探索パケットのGDに対応するノードのアドレスが、通信経路テーブル140bのGDに登録されている場合には、通信経路探索パケットの探索範囲を初期値に設定し直す。このため、目的地のノードに至る通信経路が迂回経路しか存在しない場合でも、通信経路探索パケットを到達させることができる。
【0140】
また、ノード100は、通信経路探索パケットを送信した後に、通信経路探索パケットの目的地のノードから応答を受信しない場合には、通信経路探索パケットの探索範囲を所定の値増やして、再送する。このため、通信経路探索パケットをより確実に目的地のノードに到達させることができる。
【0141】
ところで、ノード100の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、ノード100の具体的形態は図示のものに限られず、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図2の各処理部150a〜150dの機能をまとめてもよい。
【0142】
上記実施例に示したノード100の機能は、既知のPC(Personal Computer)またはPDA(Personal Digital Assistants)などの情報処理装置に、ノードに対応する各機能を搭載することによって実現することもできる。図35は、ノードを構成するコンピュータのハードウェア構成を示す図である。
【0143】
図35に示すように、このコンピュータ300は、各種演算処理を実行するCPU301と、ユーザからのデータの入力を受け付ける入力装置302と、ディスプレイ303とを有する。また、コンピュータ300は、記憶媒体からプログラム等を読み取る読み取り装置304と、他の装置と接続するためのインターフェース装置305とを有する。また、コンピュータ300は、他の装置と無線により接続する無線通信装置306と、各種情報を一時記憶するRAM307と、ハードディスク装置308とを有する。各装置301〜308は、バス309に接続される。
【0144】
ハードディスク装置308には、判定プログラム、送信制御プログラムなどの各種のプログラムが記憶される。
【0145】
CPU301は、ハードディスク装置308に記憶された各プログラムを読み出して、RAM307に展開し、各種の処理を行う。また、これらのプログラムは、コンピュータを図3の判定部151、送信制御部152として機能させることができる。
【0146】
なお、上記のプログラムは、必ずしもハードディスク装置308に格納されている必要はない。例えば、CD−ROM等の記憶媒体に記憶されたプログラムを、コンピュータ300が読み出して実行するようにしてもよい。また、公衆回線、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)等に接続された記憶装置に、各プログラムを記憶させておいてもよい。この場合、コンピュータ300がこれらから各プログラムを読み出して実行するようにしてもよい。
【符号の説明】
【0147】
100a、100b、100c、100d、100e、100f、100g、100x、100y、100z ノード
110 無線通信部
120 入力部
130 表示部
140 記憶部
150 制御部
【特許請求の範囲】
【請求項1】
探索対象となる無線通信端末の情報と探索範囲を示す値とを有するパケットを受信した場合に、目的地の経路を含む通信経路テーブルを参照し、該通信経路テーブルの目的地に、前記探索対象となる無線通信端末が含まれているか否かを判定する判定部と、
前記判定部の判定結果に基づいて、前記通信経路テーブルの目的地に、前記探索対象となる無線通信端末が含まれている場合には、前記パケットを隣接する無線通信端末に送信し、
前記通信経路テーブルの目的地に、前記探索対象となる無線通信端末が含まれていない場合には、前記探索範囲を示す値から所定値を減算し、該探索範囲を示す値が所定の閾値以上の場合には、前記パケットを隣接する無線通信端末に送信する送信制御部と
を有することを特徴とする無線通信端末。
【請求項2】
前記送信制御部は、前記通信経路テーブルの目的地に、前記探索対象となる無線通信端末が含まれている場合には、前記パケットに含まれる探索範囲の値を初期値に設定し直し、該パケットを隣接する無線通信端末に送信することを特徴とする請求項1に記載の無線通信端末。
【請求項3】
コンピュータが実行する経路構築方法であって、
探索対象となる無線通信端末の情報と探索範囲を示す値とを有するパケットを受信した場合に、目的地の経路を含む通信経路テーブルを参照し、該通信経路テーブルの目的地に、前記探索対象となる無線通信端末が含まれている場合には、前記パケットを隣接する無線通信端末に送信し、
前記通信経路テーブルの目的地に、前記探索対象となる無線通信端末が含まれていない場合には、前記探索範囲を示す値から所定値を減算し、該探索範囲を示す値が所定の閾値以上の場合には、前記パケットを隣接する無線通信端末に送信することを特徴とする経路構築方法。
【請求項4】
前記通信経路テーブルの目的地に、前記探索対象となる無線通信端末が含まれている場合には、前記パケットに含まれる探索範囲の値を初期値に設定し直し、該パケットを隣接する無線通信端末に送信することを特徴とする請求項3に記載の経路構築方法。
【請求項5】
第1の無線通信端末が、探索対象となる無線通信端末の情報と探索範囲を示す値とを有するパケットを送信し、
第2の無線通信端末が、前記パケットを受信した場合に、目的地の経路を含む通信経路テーブルを参照し、該通信経路テーブルの目的地に、前記探索対象となる無線通信端末が含まれている場合には、前記パケットを隣接する無線通信端末に送信し、
前記通信経路テーブルの目的地に、前記探索対象となる無線通信端末が含まれていない場合には、前記探索範囲を示す値から所定値を減算し、該探索範囲を示す値が所定の閾値以上の場合には、前記パケットを隣接する無線通信端末に送信することを特徴とする経路構築方法。
【請求項6】
前記第1の無線通信端末は、前記探索対象となる無線通信端末から前記パケットの応答を受信しない場合には、前記パケットの探索範囲の値に所定値を加算し、パケットを再送することを特徴とする請求項5に記載の経路構築方法。
【請求項1】
探索対象となる無線通信端末の情報と探索範囲を示す値とを有するパケットを受信した場合に、目的地の経路を含む通信経路テーブルを参照し、該通信経路テーブルの目的地に、前記探索対象となる無線通信端末が含まれているか否かを判定する判定部と、
前記判定部の判定結果に基づいて、前記通信経路テーブルの目的地に、前記探索対象となる無線通信端末が含まれている場合には、前記パケットを隣接する無線通信端末に送信し、
前記通信経路テーブルの目的地に、前記探索対象となる無線通信端末が含まれていない場合には、前記探索範囲を示す値から所定値を減算し、該探索範囲を示す値が所定の閾値以上の場合には、前記パケットを隣接する無線通信端末に送信する送信制御部と
を有することを特徴とする無線通信端末。
【請求項2】
前記送信制御部は、前記通信経路テーブルの目的地に、前記探索対象となる無線通信端末が含まれている場合には、前記パケットに含まれる探索範囲の値を初期値に設定し直し、該パケットを隣接する無線通信端末に送信することを特徴とする請求項1に記載の無線通信端末。
【請求項3】
コンピュータが実行する経路構築方法であって、
探索対象となる無線通信端末の情報と探索範囲を示す値とを有するパケットを受信した場合に、目的地の経路を含む通信経路テーブルを参照し、該通信経路テーブルの目的地に、前記探索対象となる無線通信端末が含まれている場合には、前記パケットを隣接する無線通信端末に送信し、
前記通信経路テーブルの目的地に、前記探索対象となる無線通信端末が含まれていない場合には、前記探索範囲を示す値から所定値を減算し、該探索範囲を示す値が所定の閾値以上の場合には、前記パケットを隣接する無線通信端末に送信することを特徴とする経路構築方法。
【請求項4】
前記通信経路テーブルの目的地に、前記探索対象となる無線通信端末が含まれている場合には、前記パケットに含まれる探索範囲の値を初期値に設定し直し、該パケットを隣接する無線通信端末に送信することを特徴とする請求項3に記載の経路構築方法。
【請求項5】
第1の無線通信端末が、探索対象となる無線通信端末の情報と探索範囲を示す値とを有するパケットを送信し、
第2の無線通信端末が、前記パケットを受信した場合に、目的地の経路を含む通信経路テーブルを参照し、該通信経路テーブルの目的地に、前記探索対象となる無線通信端末が含まれている場合には、前記パケットを隣接する無線通信端末に送信し、
前記通信経路テーブルの目的地に、前記探索対象となる無線通信端末が含まれていない場合には、前記探索範囲を示す値から所定値を減算し、該探索範囲を示す値が所定の閾値以上の場合には、前記パケットを隣接する無線通信端末に送信することを特徴とする経路構築方法。
【請求項6】
前記第1の無線通信端末は、前記探索対象となる無線通信端末から前記パケットの応答を受信しない場合には、前記パケットの探索範囲の値に所定値を加算し、パケットを再送することを特徴とする請求項5に記載の経路構築方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【公開番号】特開2012−205295(P2012−205295A)
【公開日】平成24年10月22日(2012.10.22)
【国際特許分類】
【出願番号】特願2011−71162(P2011−71162)
【出願日】平成23年3月28日(2011.3.28)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成24年10月22日(2012.10.22)
【国際特許分類】
【出願日】平成23年3月28日(2011.3.28)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]