(57)【特許請求の範囲】
【請求項１】
宛先となる無線端末にパケットを送信する際の経路を示す経路情報に基づいて無線端末各々がパケットを中継する場合に、当該無線端末各々が当該経路情報を中継する経路情報中継方法であって、
無線端末各々が、
自端末と相互に接続する無線端末から前記経路情報を含むパケットを受信し、受信したパケットに含まれる経路情報を経路情報テーブルに格納する経路情報受信工程と、
前記経路情報受信工程によって受信された経路情報について、当該経路情報で示される経路の品質を示す品質情報を取得する品質情報取得工程と、
前記経路情報テーブルを検索し、パケットの宛先となる無線端末が同一である経路情報が複数受信されているか否かを、所定の周期ごとに判定する判定工程と、
前記判定工程によって判定された結果、宛先となる無線端末が同一である経路情報が複数受信されている場合には、複数受信された当該経路情報各々について前記品質情報取得工程によって取得された品質情報各々を比較し、比較の結果最も高い品質であることを示す品質情報に対応する経路情報を選択する選択工程と、
前記選択工程によって選択された経路情報を前記経路情報テーブルから抽出して、当該経路情報を含むパケットを生成し、生成したパケットを、自端末と相互に接続する他の無線端末に対して中継する中継工程と、
を含んだことを特徴とする経路情報中継方法。
【請求項２】
前記選択工程は、前記判定工程によって判定された結果、宛先となる無線端末が同一である経路情報が複数の無線端末各々について複数受信されている場合には、当該複数の無線端末各々について経路情報各々を選択し、
前記中継工程は、前記選択工程によって選択された経路情報各々をまとめて中継することを特徴とする請求項１に記載の経路情報中継方法。
【請求項３】
前記経路情報テーブルは、前記経路情報受信工程によって受信された経路情報と、当該経路情報が前記中継工程によって中継された際の品質情報との対応関係を記憶するものであって、
前記中継工程は、前記選択工程によって選択された経路情報を用いて前記経路情報テーブルを検索し、当該経路情報テーブルにて当該経路情報と対応関係にある品質情報と、前記選択工程によって経路情報が選択された際の品質情報とを比較し、当該品質情報各々によって示される品質各々の差が所定の閾値以上になったことを条件として、前記選択工程によって選択された経路情報を中継することを特徴とする請求項１または２に記載の経路情報中継方法。
【請求項４】
前記経路情報テーブルは、前記経路情報受信工程によって受信された経路情報と、前記品質情報取得工程によって取得された品質情報との対応関係を記憶するものであって、
自端末と相互に接続する無線端末に対してパケットを送信した場合に、もしくは、自端末と相互に接続する無線端末から受信したパケットを、自端末と相互に接続する無線端末に対して中継した場合に、当該パケットに対する応答パケットの受信状況に基づいて、パケットの送信もしくは中継に選択した経路の品質情報を算出し、算出した当該品質情報を前記経路情報テーブルに記憶されている品質情報と置換する品質情報置換工程をさらに含み、
前記選択工程は、前記複数受信された経路情報各々について前記経路情報テーブルにて記憶されている品質情報各々を比較することで、経路情報を選択することを特徴とする請求項１〜３のいずれか一つに記載の経路情報中継方法。
【請求項５】
宛先となる無線端末にパケットを送信する際の経路を示す経路情報に基づいて無線端末各々がパケットを中継する場合に、当該経路情報を中継する無線端末であって、
自端末と相互に接続する無線端末から前記経路情報を含むパケットを受信し、受信したパケットに含まれる経路情報を経路情報テーブルに格納する経路情報受信手段と、
前記経路情報受信手段によって受信された経路情報について、当該経路情報で示される経路の品質を示す品質情報を取得する品質情報取得手段と、
前記経路情報テーブルを検索し、パケットの宛先となる無線端末が同一である経路情報が複数受信されているか否かを、所定の周期ごとに判定する判定手段と、
前記判定手段によって判定された結果、宛先となる無線端末が同一である経路情報が複数受信されている場合には、複数受信された当該経路情報各々について前記品質情報取得手段によって取得された品質情報各々を比較し、比較の結果最も高い品質であることを示す品質情報に対応する経路情報を選択する選択手段と、
前記選択手段によって選択された経路情報を前記経路情報テーブルから抽出して、当該経路情報を含むパケットを生成し、生成したパケットを、自端末と相互に接続する他の無線端末に対して中継する中継手段と、
を備えたことを特徴とする無線端末。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、経路情報中継方法および無線端末に関する。
【背景技術】
【０００２】
近年、無線端末各々が自律分散的に相互接続するアドホックネットワークの研究が進められている。アドホックネットワークにおいては、アクセスポイントは設置されず、無線端末各々が、自端末と相互に接続する無線端末（隣接端末）から受信したパケットを、経路情報に基づいて隣接端末に対して中継することで、経路を形成する。
【０００３】
ところで、アドホックネットワークにおいては、電波強度の変化や無線端末の移動などに伴い、ネットワーク環境が頻繁に変化する。このため、アドホックネットワークに接続する無線端末各々は、他の無線端末との間で通信を行う前に経路制御を行う。
【０００４】
例えば、経路制御がルーティングテーブル方式で行われる場合について説明する。アドホックネットワークに新たに接続した無線端末は、自端末がネットワーク上に存在することを示す存在情報を隣接端末に対してブロードキャストする。すると、隣接端末は、存在情報に基づく経路情報を生成し、生成した経路情報を次の隣接端末に対してブロードキャストする。
【０００５】
また、例えば、無線端末各々は、自端末と隣接端末との間の経路について品質を測定し、経路情報を中継する際に、高品質の経路で接続する隣接端末に対してのみ中継する（例えば、特許文献１など）。また、例えば、無線端末各々は、品質基準を指定した経路情報を隣接端末に対してブロードキャストし、隣接端末は、経路の品質が品質基準を満たさない場合には、経路情報を中継しない（例えば、特許文献２など）。
【０００６】
【特許文献１】特開２００３−１５２７８６号公報
【特許文献２】特開２００７−１２９５４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、上記した従来の技術では、アドホックネットワークに接続する無線端末の数が多くなればなるほど経路制御のための通信量が増大し、ネットワークに負荷をかけるという課題があった。すなわち、上記したように、アドホックネットワークに接続する無線端末各々は、経路情報を隣接端末にブロードキャストし、また、応答情報を受信する。このため、アドホックネットワークに接続する無線端末の数が多くなればなるほど、送信される経路情報や応答情報の数は指数的に拡大し、経路制御のための通信量が増大してしまう。
【０００８】
そこで、本発明は、上記した従来の技術の課題を解決するためになされたものであり、経路制御のための通信量を削減することが可能な経路情報中継方法および無線端末を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するため、無線端末各々は、自端末と相互に接続する無線端末から経路情報を受信する。また、無線端末各々は、受信した経路情報について、経路情報で示される経路の品質を示す品質情報を取得する。そして、無線端末各々は、受信した経路情報について、パケットの宛先となる無線端末が同一である経路情報が複数受信されているか否かを、所定の周期ごとに判定する。続いて、無線端末各々は、判定した結果、宛先となる無線端末が同一である経路情報が複数受信されている場合には、複数受信された経路情報各々について品質情報各々を比較し、比較の結果最も高い品質であることを示す品質情報に対応する経路情報を選択する。その後、無線端末各々は、選択した経路情報を、自端末と相互に接続する他の無線端末に対して中継する。
【発明の効果】
【００１０】
経路制御のための通信量を削減することが可能になる。
【発明を実施するための最良の形態】
【００１１】
以下に添付図面を参照して、本発明に係る経路情報中継方法および無線端末の実施例を詳細に説明する。なお、以下では、まず、実施例１における経路情報中継方法の基本原理を説明し、続いて、実施例１におけるアドホックネットワークの全体構成、無線端末（以下「ノード」と呼ぶ）の構成、処理手順、実施例１の効果を説明する。その後、実施例２および実施例３を説明する。
【実施例１】
【００１２】
［経路情報中継方法の基本原理］
まず、図１を用いて、実施例１における経路情報中継方法の基本原理を説明する。図１は、実施例１における経路情報中継方法の基本原理を説明するための図である。なお、図１においては、説明の便宜上から、実施例１におけるアドホックネットワークの一部のみを示す。
【００１３】
また、図１に示すノード各々は、マルチホップ方式により、自ノードと相互に接続する隣接ノード以外のノードとの間でパケットを送受信する。また、ノード各々は、経路探索プロトコルに従って経路情報を交換する。この時、ノード各々は、ＨＥＬＬＯパケットと呼ばれる制御パケットを用いる。また、図１に示すように、実施例１においては、ノード『ｘ』がゲートウェイノードであり、ノード『ｖ』は、外部ネットワークに接続するノードである。
【００１４】
まず、図１の（Ａ）に示すように、ノード『ａ』が、アドホックネットワークに新たに接続し、自ノードがネットワーク上に存在することを示す存在情報を、隣接ノード『ｄ』および隣接ノード『ｅ』各々に送信したとする。ここで、ノード『ａ』とノード『ｘ』との間には、図１の（Ａ）に示すように、「ノード『ｘ』→ノード『ｄ』→ノード『ａ』」の経路と、「ノード『ｘ』→ノード『ｆ』→ノード『ｅ』→ノード『ａ』」の経路とがある。
【００１５】
さて、ノード『ａ』から送信された存在情報は、隣接ノード『ｄ』によって受信される。続いて、隣接ノード『ｄ』は、受信した存在情報に基づく経路情報を生成し、生成した経路情報を隣接ノード『ｘ』に対して中継する。すると、図１の（Ｂ）に示すように、ノード『ｘ』は、経路情報を受信する。経路情報は、パケットの宛先となるノードと、パケットを中継するノードとの対応関係を示すものである。例えば、経路情報は、「ノード『ｘ』→ノード『ｄ』→ノード『ａ』」（パケットの宛先となるノード『ａ』と、パケットを中継するノード『ｄ』との対応関係）といった内容の情報である。
【００１６】
また、実施例１におけるノード各々は、受信した経路情報について、経路の品質を示す品質情報を取得する。例えば、図１の（Ｂ）に示すように、ノード『ｘ』は、経路「ノード『ｘ』→ノード『ｄ』→ノード『ａ』」の品質を示す品質情報「高」を取得する。
【００１７】
ここで、従来の技術におけるノードであれば、受信した経路情報を、その都度隣接ノードに送信していた。すなわち、従来の技術におけるノード『ｘ』であれば、受信した経路情報「ノード『ｘ』→ノード『ｄ』→ノード『ａ』」を、その都度ノード『ｖ』に送信していた。しかしながら、実施例１におけるノード各々は、受信した経路情報をその都度隣接ノードに送信するものではない。
【００１８】
実施例１におけるノード各々は、受信した経路情報について、パケットの宛先となるノードが同一である経路情報が複数受信されているか否かを、所定の周期ごとに判定する。
【００１９】
すなわち、ノード『ａ』から送信された存在情報は、隣接ノード『ｄ』によって受信される一方で、隣接ノード『ｅ』によっても受信されている。また、ノード『ｅ』は、存在情報に基づく経路情報を生成し、生成した経路情報を次の隣接ノード『ｆ』に対して中継する。すると、ノード『ｆ』は、さらに、経路情報を次の隣接ノード『ｘ』に対して中継する。すると、図１の（Ｃ）に示すように、ノード『ｘ』は、経路情報を受信する。例えば、ノード『Ｘ』は、「ノード『ｘ』→ノード『ｆ』→ノード『ｅ』→ノード『ａ』」（パケットの宛先となるノード『ａ』と、パケットを中継するノード『ｆ』との対応関係）といった内容の経路情報を受信する。また、例えば、ノード『ｘ』は、経路「ノード『ｘ』→ノード『ｆ』→ノード『ｅ』→ノード『ａ』」の品質を示す品質情報「低」を取得する。このため、ノード『ｘ』は、所定の周期ごとに判定した結果、宛先となるノードが同一である経路情報を複数受信している場合であると判定する。
【００２０】
そして、実施例１におけるノード各々は、複数受信した経路情報各々について品質情報各々を比較し、比較の結果最も高い品質であることを示す品質情報に対応する経路情報を選択する。
【００２１】
例えば、ノード『ｘ』は、経路情報「ノード『ｘ』→ノード『ｄ』→ノード『ａ』」および経路情報「ノード『ｘ』→ノード『ｆ』→ノード『ｅ』→ノード『ａ』」各々について品質情報各々を比較する。そして、ノード『ｘ』は、比較の結果、品質情報「高」に対応する経路情報「ノード『ｘ』→ノード『ｄ』→ノード『ａ』」を選択する（図１の（Ｃ）の点線を参照）。
【００２２】
そして、実施例１におけるノード各々は、選択した経路情報を、自ノードと相互に接続するノードのうち、経路情報の送信元であるノード以外のノードに対して中継する。例えば、図１の（Ｃ）に示すように、ノード『ｘ』は、選択した経路情報「ノード『ｘ』→ノード『ｄ』→ノード『ａ』」を、ノード『ｖ』に対して中継する。
【００２３】
このようなことから、実施例１におけるノード各々は、経路制御のための通信量を削減することが可能になる。
【００２４】
すなわち、従来の技術におけるノード各々は、経路情報を受信すると、受信した経路情報を、その都度隣接ノードに送信していた。結果として、ノード各々は、経路情報の送信を多数回行わなければならず、また、ＨＥＬＬＯパケットごとに制御ヘッダ部分が付加され、ＨＥＬＬＯパケットごとに送信待ち時間を要することから、オーバヘッドが大きくなってしまっていた。さらに、送信される経路情報の数が増大すると、コリジョンの発生頻度も増加し、ひいては、経路情報を再送する回数も増大してしまっていた。このため、仮に、大規模なアドホックネットワークに従来の技術を適用すると、パケット超過によるフラッディングが発生し、経路探索のためのルーティングテーブルを作成することも困難であった。
【００２５】
これに対し、実施例１におけるノード各々は、経路情報を受信しても、受信した経路情報を、その都度隣接ノードに送信するものではない。ノード各々は、パケットの宛先となるノードが同一である経路情報が複数受信されているか否かを所定の周期ごとに判定し、品質情報各々を比較して最高品質の品質情報に対応する経路情報を選択する。そして、ノード各々は、選択した経路情報のみを隣接ノードに中継する。結果として、ノード各々は、経路情報の送信回数を削減することができ、同時にオーバヘッドも削減されることになる。さらに、送信される経路情報の数が減少すると、コリジョンの発生頻度も減少し、ひいては、経路情報を再送する回数も減少する。このため、仮に、大規模なアドホックネットワークに実施例１の技術を適用したとしても、パケット超過によるフラッディングが発生することもなく、経路探索のためのルーティングテーブルを作成することが困難ではなくなる。
【００２６】
［実施例１におけるアドホックネットワークの全体構成、ノードの構成］
次に、図２〜図１５を用いて、実施例１におけるアドホックネットワークの全体構成、ノードの構成を説明する。
【００２７】
図２は、実施例１におけるアドホックネットワークの全体構成を示す図である。図２に示すように、実施例１においては、ノード『ｘ』がゲートウェイノードであり、ノード『ｖ』およびノード『ｚ』は、外部ネットワークに接続するノードである。なお、実施例１においては、ノード『ａ』が、アドホックネットワークに新たに接続し、自ノードがネットワーク上に存在することを示す存在情報を、隣接ノード『ｄ』および隣接ノード『ｅ』各々に送信したと想定し、想定に関する部分のみを抽出して説明する。
【００２８】
図３は、実施例１におけるノードの構成を示すブロック図である。図３に示すように、実施例１におけるノード１０は、特に、通信部１１と、記憶部２０と、制御部３０とを備える。通信部１１は、無線通信可能な無線モジュールおよびアンテナなどである。
【００２９】
記憶部２０は、制御部３０による各種処理に用いるデータを記憶し、特に、ルーティングテーブル部２１と、リンクテーブル部２２と、周期テーブル部２３と、ワークテーブル部２４とを備える。
【００３０】
ルーティングテーブル部２１は、経路情報を記憶する。経路情報とは、宛先となる無線端末にパケットを送信する際の経路を示す情報である。言い換えると、経路情報とは、パケットの宛先となるノードと、パケットを中継するノードとの対応関係を示すものである。また、ルーティングテーブル部２１は、経路情報と、経路情報で示される経路の品質を示す品質情報との対応関係を記憶する。
【００３１】
具体的には、ルーティングテーブル部２１は、後述する経路情報受信部３１によってＨＥＬＬＯパケットが受信された場合に、後述するルーティングテーブル更新部３３によって更新などされることで、経路情報を記憶する。また、ルーティングテーブル部２１が記憶する経路情報は、後述する経路情報送信部３４による処理や、後述するパケット送受信部３５による処理に利用される。
【００３２】
例えば、ルーティングテーブル部２１は、図４に示すように、経路情報を記憶する。図４は、実施例１におけるルーティングテーブルを説明するための図である。なお、図４は、ノード『ｘ』のルーティングテーブル部２１を例示する。
【００３３】
図４に例示するルーティングテーブル部２１は、パケットの宛先となるノードを示す宛先ノード（『宛先』）と、パケットを中継するノードの内、自ノードと相互に接続するノードを示す隣接ノード（『隣接』）とを対応づけて記憶する。また、図４に例示するルーティングテーブル部２１は、宛先ノードとの間でパケットを送受信する経路の品質を示す評価値（『評価値』）を対応づけて記憶する。ここで、評価値は、図４に示すように、宛先ノードと隣接ノードとの間の経路の品質を示す経路重み（『経路重み』）や、隣接ノードと自ノードとの間のリンクの品質を示すリンク重み（『リンク重み』）などから算出される値である。評価値の算出については、ルーティングテーブル更新処理の手順を説明する際に詳述する。
【００３４】
具体的に例を挙げて説明すると、ルーティングテーブル部２１は、宛先ノード『ｄ』、隣接ノード『ｄ』、評価値『５０』の経路情報を記憶する。すなわち、ルーティングテーブル部２１は、ノード『ｄ』を宛先としてパケットを送信する場合には、隣接ノード『ｄ』にパケットを送信する経路があり、経路の品質が評価値『５０』であることを記憶する。また、ルーティングテーブル部２１は、宛先ノード『ｅ』、隣接ノード『ｆ』、評価値『５５』の経路情報を記憶する。すなわち、ルーティングテーブル部２１は、ノード『ｅ』を宛先としてパケットを送信する場合には、隣接ノード『ｆ』にパケットを送信する経路があり、経路の品質が評価値『５５』であることを記憶する。
【００３５】
その他、図４に例示するルーティングテーブル部２１は、経路情報の順位（『順位』）や、経路情報を送信したか否かを示す送信フラグ（『送信フラグ』）をも対応づけて記憶する。経路情報の順位や送信フラグについては、送信処理を説明する際に詳述する。
【００３６】
リンクテーブル部２２は、リンク情報を記憶する。リンク情報とは、自ノードと隣接ノードとの間のリンクについて、品質を評価した値を示すものである。
【００３７】
具体的には、リンクテーブル部２２は、後述する経路情報受信部３１によってＨＥＬＬＯパケットが受信された場合に、後述するリンクテーブル更新部３２によって更新などされることで、リンク情報を記憶する。また、リンクテーブル部２２が記憶するリンク情報は、後述するルーティングテーブル更新部３３による処理に利用される。
【００３８】
例えば、リンクテーブル部２２は、図５に示すように、リンク情報を記憶する。図５は、実施例１におけるリンクテーブルを説明するための図である。なお、図５は、ノード『ｘ』のリンクテーブル部２２を例示する。
【００３９】
図５に例示するリンクテーブル部２２は、隣接ノード（『隣接』）と、往路の品質を評価した往路評価値（『往路評価値』）と、復路の品質を評価した復路評価値（『復路評価値』）と、リンク重み（『リンク重み』）とを対応づけて記憶する。なお、往路評価値は、隣接ノードにとっての往路の品質を評価した値であり、復路評価値は、隣接ノードにとっての復路の品質を評価した値である。
【００４０】
具体的に例を挙げて説明すると、リンクテーブル部２２は、隣接ノード『ｄ』、往路評価値『３０』、復路評価値『２０』、リンク重み『５０』のリンク情報を記憶する。すなわち、リンクテーブル部２２は、隣接ノード『ｄ』との間のリンクは、隣接ノード『ｄ』にとっての往路の品質が往路評価値『３０』であり、隣接ノード『ｄ』にとっての復路の品質が復路評価値『２０』であることを記憶する。また、リンクテーブル部２２は、隣接ノード『ｄ』との間のリンクは、リンク重み『５０』であることを記憶する。
【００４１】
ここで、往路評価値、復路評価値、リンク重みの概念について、図６を用いて説明する。図６は、リンク重みの概念を説明するための図である。実施例１におけるノード１０各々は、隣接ノードとの間でＨＥＬＬＯパケットを送受信するごとに、隣接ノードとの間のリンクの品質を評価し、最新の情報として、リンクテーブル部２２に格納する。
【００４２】
ノード『ａ』とノード『ｄ』との間のリンクを例に挙げて説明する。まず、図６に示すように、ノード『ａ』は、ノード『ｄ』から受信したＨＥＬＬＯパケットを評価することで、ノード『ｄ』にとっての往路の品質を評価し、往路評価値『ｗｄ』を算出する。これに対し、ノード『ａ』は、ノード『ｄ』にとっての復路の品質を評価することはできない。このため、図６に示すように、ノード『ａ』のリンクテーブルには、往路評価値『ｗｄ』のみが記憶され、復路評価値は『ｎｕｌｌ』（記憶されている情報無し）となる。
【００４３】
同様に、ノード『ｄ』は、ノード『ａ』から受信したＨＥＬＬＯパケットを評価することで、ノード『ａ』にとっての往路の品質を評価し、往路評価値『ｗａ』を算出する。これに対し、ノード『ｄ』は、ノード『ａ』にとっての復路の品質を評価することはできない。このため、図６に示すように、ノード『ｄ』のリンクテーブルには、往路評価値『ｗａ』のみが記憶され、復路評価値は『ｎｕｌｌ』となる。
【００４４】
ここで、図６に示すように、ノード『ｄ』にとっての往路は、すなわちノード『ａ』にとっての復路であり、ノード『ａ』にとって往路は、すなわちノード『ｄ』にとって復路である。したがって、ノード『ａ』において算出した往路評価値『ｗｄ』は、ノード『ｄ』のリンクテーブルにおいて復路評価値として記憶されるべき値であり、ノード『ｄ』において算出した往路評価値『ｗａ』は、ノード『ａ』のリンクテーブルにおいて復路評価値として記憶されるべき値である。このため、ノード『ａ』は、ＨＥＬＬＯパケットを送信する際に、往路評価値『ｗｄ』をノード『ｄ』に通知し、ノード『ｄ』は、往路評価値『ｗａ』をノード『ａ』に通知する。
【００４５】
すると、図６に示すように、ノード『ａ』のリンクテーブルには、往路評価値『ｗｄ』に加え、復路評価値は『ｗａ』が記憶され、ノード『ｄ』のリンクテーブルには、往路評価値『ｗａ』に加え、復路評価値は『ｗｄ』が記憶される。なお、実施例１において、リンクの品質を示すリンク重みは、往路評価値と復路評価値とを加算した値である。したがって、図６に示すように、ノード『ａ』のリンク重み『Ｗ』は、『ｗｄ＋ｗａ』となり、ノード『ｄ』のリンク重み『Ｗ』は、『ｗａ＋ｗｄ』となる。
【００４６】
なお、図６においては、ノード『ａ』とノード『ｄ』との間における往路評価値および復路評価値の交換が、相互に同時に行われるように説明した。しかしながら、上記したように、実施例１におけるノード１０各々は、隣接ノードとの間でＨＥＬＬＯパケットを送受信するごとに、隣接ノードとの間のリンクの品質を評価し、最新の情報として、リンクテーブル部２２に格納する。したがって、往路評価値および復路評価値の交換も、相互に同時に行われる場合に限られない。往路評価値のみが最新の情報としてリンクテーブル部２２に格納され、最新の往路評価値に基づいてリンク重みが更新されるが、復路評価値は最新の情報ではない場合もある。
【００４７】
周期テーブル部２３は、周期情報を記憶する。周期情報とは、隣接ノードから受信したパケットの周期を示すものである。具体的には、周期テーブル部２３は、後述する経路情報受信部３１によってＨＥＬＬＯパケットが受信された場合に、後述するリンクテーブル更新部３２によって更新などされることで、周期情報を記憶する。また、周期テーブル部２３が記憶する周期情報は、リンクテーブル更新部３２による処理に利用される。
【００４８】
例えば、周期テーブル部２３は、図７に示すように、周期情報を記憶する。図７は、実施例１における周期テーブルを説明するための図である。なお、図７は、ノード『ｘ』の周期テーブル部２３を例示する。
【００４９】
図７に例示する周期テーブル部２３は、受信したパケットの送信元である隣接ノードごとに、パケットを識別するＩＤ（『ＩＤ』）と、パケットを受信した周期（『周期』）と、パケットを受信した時刻（『受信時刻』）とを対応づけて記憶する。
【００５０】
具体的に例を挙げて説明すると、周期テーブル部２３は、隣接ノード『ｄ』から受信したパケットについて、ＩＤ『４』、周期『０：０２』、受信時刻『０：０５』の周期情報を記憶する。すなわち、周期テーブル部２３は、ＩＤ『４』のパケットは、時刻『０：０５』に受信したパケットであり、ＩＤ『３』のパケットの受信時刻との差分（『０：０５』−『０：０３』）から、周期『０：０２』であることを記憶する。
【００５１】
ワークテーブル部２４は、ルーティングテーブル部２１と同じ構造を持ち、ルーティングテーブル部２１に格納する前の不確定な経路情報を、一時的に記憶する。ワークテーブル部２４については、リンクテーブル更新処理を説明する際に詳述する。
【００５２】
制御部３０は、ノード１０を制御して各種処理を実行し、特に、経路情報受信部３１と、リンクテーブル更新部３２と、ルーティングテーブル更新部３３と、経路情報送信部３４と、パケット送受信部３５とを備える。なお、制御部３０は、ノード１０が備えるメモリ上で実行される。
【００５３】
経路情報受信部３１は、隣接ノードから経路情報を受信する。具体的には、経路情報受信部３１は、隣接ノードからＨＥＬＬＯパケットを受信する。また、経路情報受信部３１は、受信したＨＥＬＬＯパケットを、リンクテーブル更新部３２やルーティングテーブル更新部３３に伝達する。
【００５４】
リンクテーブル更新部３２は、リンクテーブル部２２が記憶するリンク情報を更新する。具体的には、リンクテーブル更新部３２は、経路情報受信部３１からＨＥＬＬＯパケットを伝達されると、伝達されたＨＥＬＬＯパケットに基づいて、リンクテーブル部２２が記憶するリンク情報を更新する。また、リンクテーブル更新部３２は、リンク情報の更新にあたり、周期テーブル部２３が記憶する周期情報を更新し、更新した周期情報に基づいて、リンク情報を更新する。なお、リンクテーブル更新部３２による処理については、リンクテーブル更新処理を説明する際に詳述する。
【００５５】
ルーティングテーブル更新部３３は、ルーティングテーブル部２１が記憶する経路情報を更新する。具体的には、ルーティングテーブル更新部３３は、経路情報受信部３１からＨＥＬＬＯパケットを伝達されると、伝達されたＨＥＬＬＯパケットに基づいて、ルーティングテーブル部２１が記憶する経路情報を更新する。なお、ルーティングテーブル更新部３３による処理については、ルーティングテーブル更新処理を説明する際に詳述する。
【００５６】
経路情報送信部３４は、隣接ノードの内、経路情報を送信したノード以外のノードに対して経路情報を送信する。具体的には、経路情報送信部３４は、ルーティングテーブル更新部３３によって更新されたルーティングテーブル部２１が記憶する経路情報からＨＥＬＬＯパケットを生成し、生成したＨＥＬＬＯパケットを隣接ノードに対して送信する。なお、経路情報送信部３４による処理については、経路情報送信処理を説明する際に詳述する。
【００５７】
パケット送受信部３５は、隣接ノードからパケットを受信する。具体的には、パケット送受信部３５は、隣接ノードからパケットを受信すると、受信したパケットの宛先を判定する。また、パケット送受信部３５は、隣接ノードに対してパケットを送信する。具体的には、パケット送受信部３５は、ルーティングテーブル部２１が記憶する経路情報に基づいて、伝達されたパケットを送信する。
【００５８】
［実施例１におけるノードの処理手順］
続いて、図８〜図１９を用いて、実施例１におけるノードの処理手順を説明する。まず、図８を用いて、実施例１におけるノードの処理手順（全体）を説明する。図８は、実施例１におけるノードの処理手順（全体）を説明するための図である。なお、図８は、実施例１におけるノード１０に含まれる各部の内、経路情報受信部３１と、リンクテーブル更新部３２と、ルーティングテーブル更新部３３と、経路情報送信部３４と、クロックとを抽出して示すものである。
【００５９】
実施例１におけるノード１０は、図８に示すように、経路情報受信部３１において、ＨＥＬＬＯパケットを受信する。経路情報受信部３１においてＨＥＬＬＯパケットが受信されると、図８に示すように、続いて、リンクテーブル更新部３２がリンクテーブルを更新し、ルーティングテーブル更新部３３がルーティングテーブルを更新する。すなわち、ＨＥＬＬＯパケットの受信に伴い、リンクテーブルの更新とルーティングテーブルの更新とが引き続き行われる。
【００６０】
また、ノード１０は、隣接ノードからＨＥＬＬＯパケットを受信するものであり、受信のタイミングはノード１０において制御するものではない。したがって、図８に示すように、実施例１におけるノード１０は、再び、経路情報受信部３１においてＨＥＬＬＯパケットを受信すると、リンクテーブル更新部３２においてリンクテーブルを更新し、ルーティングテーブル更新部３３においてルーティングテーブルを更新する。
【００６１】
また、実施例１におけるノード１０は、所定の周期を計測するクロックを備えており、経路情報送信部３４は、クロックによって計測された所定の周期ごとに（クロックイベントごとに）、ルーティングテーブル部２１に記憶されている経路情報からＨＥＬＬＯパケットを生成し、ＨＥＬＬＯパケットを送信する。
【００６２】
次に、図９および図１０を用いて、実施例１におけるテーブルの更新例について、全体像を説明する。図９および図１０は、実施例１におけるテーブルの更新例を説明するための図である。なお、以下では、図２に示したアドホックネットワークの全体構成の内、ノード『ａ』、ノード『ｄ』、ノード『ｅ』、ノード『ｆ』、およびノード『ｘ』で構成される一部のネットワークに関して送受信される経路情報やリンク情報のみを例示する。すなわち、実際には、図２に示したアドホックネットワークの全体構成に含まれる全てのノードに関する経路情報やリンク情報をノード各々が保持し、送受信するはずであるが、以下では、説明の便宜上、一部の経路情報やリンク情報のみを例示する。
【００６３】
図９に示すように、実施例１においては、ノード『ｘ』がゲートウェイノードである。また、ノード『ｄ』とノード『ｘ』との間のリンク、ノード『ｅ』とノード『ｆ』との間のリンク、およびノード『ｆ』とノード『ｘ』との間のリンクの品質は、図９に例示する値となっていると想定する。また、図９に例示するリンクテーブルおよびルーティングテーブルは、リンクの品質が図９に例示する値となっていると想定した場合の値を示す。なお、図９において、『隣接』は隣接ノードを示し、『往路』は往路評価値を示し、『復路』は復路評価値を示し、『リ重』はリンク重みを示す。また、図９において、『宛先』は宛先ノードを示し、『隣接』は隣接ノードを示し、『経重』は経路重みを示し、『リ重』はリンク重みを示し、『評価』は評価値を示す。
【００６４】
まず、ノード『ｄ』について説明する。ノード『ｄ』は、リンクテーブルに、隣接ノードとしてノード『ｘ』を記憶する。また、ノード『ｄ』は、リンクテーブルに、往路評価値として『２０』を記憶し、復路評価値として『３０』を記憶する。この時、往路評価値は、ノード『ｘ』にとっての往路の品質を評価した値であり、復路評価値は、ノード『ｘ』にとっての復路の品質を評価した値である。また、実施例１において、リンク重みは、往路評価値と復路評価値とを加算した値を例示する。したがって、図９に示すように、ノード『ｄ』は、リンクテーブルに、リンク重みとして『５０』を記憶する。
【００６５】
次に、ノード『ｄ』は、ルーティングテーブルに、宛先ノードとしてノード『ｘ』を記憶し、隣接ノードとしてノード『ｘ』を記憶する。すなわち、ノード『ｄ』は、ノード『ｘ』を宛先としてパケットを送信する場合には、隣接ノード『ｘ』にパケットを送信する経路があることを示す経路情報を記憶する。この時、宛先ノード『ｘ』は、ノード『ｄ』にとって隣接ノードである。したがって、ノード『ｄ』は、ルーティングテーブルに経路重みを記憶せず、リンクテーブルから取得したリンク重み『５０』を記憶する。また、ノード『ｄ』は、リンク重みそのものが、ノード『ｄ』とノード『ｘ』との間の経路の評価値であるとして、評価値『５０』を記憶する。
【００６６】
次に、ノード『ｅ』について説明する。ノード『ｅ』は、リンクテーブルに、隣接ノードとしてノード『ｆ』を記憶する。また、ノード『ｅ』は、リンクテーブルに、往路評価値として『１０』を記憶し、復路評価値として『１０』を記憶する。また、ノード『ｅ』は、リンクテーブルに、リンク重みとして『２０』を記憶する。
【００６７】
次に、ノード『ｅ』は、ルーティングテーブルに、宛先ノードとしてノード『ｆ』を記憶し、隣接ノードとしてノード『ｆ』を記憶する。また、ノード『ｅ』は、宛先ノードとしてノード『ｘ』を記憶し、隣接ノードとしてノード『ｆ』を記憶する。すなわち、ノード『ｅ』は、ノード『ｆ』を宛先としてパケットを送信する場合には、隣接ノード『ｆ』にパケットを送信する経路があることを示す経路情報を記憶する。また、ノード『ｅ』は、ノード『ｘ』を宛先としてパケットを送信する場合には、隣接ノード『ｆ』にパケットを送信する経路があることを示す経路情報を記憶する。
【００６８】
ここで、ノード『ｘ』を宛先としてパケットを送信する場合の経路情報について説明する。経路重みは、宛先ノードと隣接ノードとの間の経路の品質を示す値である。すなわち、図９に示すように、宛先ノード『ｘ』と隣接ノード『ｆ』との間の経路の品質を示す値に相当する。このようなことから、経路重みは、『３５』となる。また、評価値は、宛先ノードとの間でパケットを送受信する経路の品質を示す値である。すなわち、図９に示すように、宛先ノード『ｘ』と隣接ノード『ｆ』との間の経路の品質を示す値に、隣接ノード『ｆ』と自ノード『ｅ』との間のリンクの品質を示す値を加算した値である。このようなことから、評価値は、『５５』となる。
【００６９】
ノード『ｆ』およびノード『ｘ』についても同様に、リンクテーブルおよびルーティングテーブルを記憶する。
【００７０】
さて、実施例１においては、図９に例示するアドホックネットワークに対して、図１０に示すように、ノード『ａ』が新たに接続した場合を想定する。また、ノード『ａ』とノード『ｄ』との間のリンクの品質や、ノード『ａ』とノード『ｅ』との間のリンクの品質は、図１０に例示する値となると想定する。ノード『ａ』が新たにアドホックネットワークに接続すると、実施例１におけるノード『ｄ』、ノード『ｅ』、ノード『ｆ』、およびノード『ｘ』各々は、経路情報の送受信を行い、また、リンクテーブルの更新やルーティングテーブルの更新を行う。以下では、図９および図１０に例示した値を前提として、図１１〜１５を用いて、ノード『ｄ』、ノード『ｅ』、ノード『ｆ』、およびノード『ｘ』各々において行われる処理の具体例を説明する。なお、図１１〜１５は、実施例１におけるテーブルの更新例を説明するための図である。
【００７１】
上記したように、実施例１におけるアドホックネットワークに、ノード『ａ』が新たに接続したと想定する。この時、ノード『ａ』は、自ノードがネットワーク上に存在することを示す存在情報を、隣接ノード『ｄ』および隣接ノード『ｅ』各々に送信する。
【００７２】
まず、図１１および図１２に示すように、ノード『ａ』は、ノード『ｄ』およびノード『ｅ』各々に対して、空のＨＥＬＬＯパケットをブロードキャスト送信する。ノード『ｄ』は、ＨＥＬＬＯパケットを受信すると、まず、リンクテーブル更新処理を行う。具体的には、ノード『ｄ』は、ＨＥＬＬＯパケットの送信元ノードを特定する。送信元ノードは、ノード『ａ』である。続いて、ノード『ｄ』は、送信元ノード『ａ』の周期テーブルを新規作成し、周期の標準偏差を算出することで、往路評価値『２０』を算出する。そして、ノード『ｄ』は、図１１に示すように、リンクテーブルにノード『ａ』のレコードを新規作成し、往路評価値『２０』をノード『ａ』に対応づけて格納する。さらに、ノード『ｄ』は、ＨＥＬＬＯパケットに往路評価値が含まれていたか否かを判定するが、空のＨＥＬＬＯパケットであるので、含まれていないと判定する。そして、ノード『ｄ』は、図１１に示すように、空のＨＥＬＬＯパケットを評価した往路評価値『２０』を、そのままリンク重み『２０』としてリンクテーブルに設定する。
【００７３】
続いて、ノード『ｄ』は、ルーティングテーブル更新処理を行う。具体的には、ノード『ｄ』は、ＨＥＬＬＯパケットの送信元ノードを特定する。送信元ノードは、ノード『ａ』である。続いて、ノード『ｄ』は、ルーティングテーブルと同じ構造を持つワークテーブルにノード『ａ』のレコードを新規作成する。そして、ワークテーブルの宛先ノードに送信元ノード『ａ』を設定し、隣接ノードに送信元ノード『ａ』を設定する。そして、ノード『ｄ』は、送信元ノード『ａ』を用いてリンクテーブルを検索し、ノード『ａ』に対応づけて記憶されているリンク重み『２０』を取得する。次に、ノード『ｄ』は、取得したリンク重み『２０』を、ワークテーブルの宛先ノード『ａ』および隣接ノード『ａ』のレコードに、リンク重み『２０』として格納する。続いて、ノード『ｄ』は、ルーティングテーブルに同一のレコードがあるか否かを判定し、無い場合であるとして、ワークテーブルに作成したレコードを、図１０に示すように、ルーティングテーブルに新規追加する。
【００７４】
そして、ノード『ｄ』は、次に、ＨＥＬＬＯパケットに情報が含まれるか否かを判定する。空のＨＥＬＬＯパケットであるので、情報は含まれないと判定し、ノード『ｄ』は、評価値を算出し、ルーティングテーブルに格納する。具体的には、ノード『ｄ』は、宛先ノード『ａ』は隣接ノードであるので、リンク重み『２０』そのものを評価値『２０』として格納する。
【００７５】
さて、ノード『ｄ』において、クロックが所定の周期を計測し、クロックイベントが発生した。すると、ノード『ｄ』は、ＨＥＬＬＯパケットの送信を行う（なお、ノード『ｄ』は、ノード『ａ』から空のＨＥＬＬＯパケットを受信した際に、リアルタイムにＨＥＬＬＯパケットを送信してもよい）。ノード『ｄ』は、ルーティングテーブルからＨＥＬＬＯパケットを作成し、隣接ノード『ａ』および隣接ノード『ｘ』各々に送信する。もっとも、図１１では、説明の便宜上から、ノード『ｄ』が、ノード『ａ』に対してのみ、ノード『ａ』に関する経路情報のみのＨＥＬＬＯパケットを送信するものとして説明する。
【００７６】
ノード『ｄ』は、ルーティングテーブルを検索し、宛先ノード『ａ』のレコードをグループ分けする。宛先ノード『ａ』のレコードは一つであるので、ノード『ｄ』は、宛先ノード『ａ』のレコードをＨＥＬＬＯパケットに追加して、ＨＥＬＬＯパケットを隣接ノード『ａ』に対して送信する。すなわち、図１１に示すように、ノード『ｄ』は、宛先ノードが『ａ』であり、隣接ノードが『ａ』であり、評価値が『２０』であるとの経路情報をルーティングテーブルから取得して、ＨＥＬＬＯパケットを作成する。また、ノード『ｄ』は、図１１に示すように、往路評価値が『２０』であるとのリンク情報をリンクテーブルから取得して、ＨＥＬＬＯパケットを作成する。これらの評価値および往路評価値は、ノード『ａ』から受信したＨＥＬＬＯパケットを評価した最新の値である。
【００７７】
一方、ノード『ａ』は、ＨＥＬＬＯパケットを受信すると、まず、リンクテーブル更新処理を行う。具体的には、ノード『ａ』は、ＨＥＬＬＯパケットの送信元ノードを特定する。送信元ノードは、ノード『ｄ』である。続いて、ノード『ａ』は、送信元ノード『ｄ』の周期テーブルを新規作成し、周期の標準偏差を算出することで、往路評価値『１０』を算出する。そして、ノード『ａ』は、図１１に示すように、リンクテーブルにノード『ｄ』のレコードを新規作成し、往路評価値『１０』をノード『ｄ』に対応づけて格納する。さらに、ノード『ａ』は、ＨＥＬＬＯパケットに往路評価値が含まれていたか否かを判定すると、往路評価値『２０』が含まれているので、含まれていると判定する。そして、ノード『ａ』は、図１１に示すように、受信したＨＥＬＬＯパケットに含まれる往路評価値『２０』をリンクテーブルの送信元ノード『ｄ』に対応づけて、復路評価値『２０』として格納する。さらに、ノード『ａ』は、往路評価値『１０』と復路評価値『２０』とを加算してリンク重み『３０』を算出し、リンクテーブルに設定する。
【００７８】
続いて、ノード『ａ』は、ルーティングテーブル更新処理を行う。具体的には、ノード『ａ』は、ＨＥＬＬＯパケットの送信元ノードを特定する。送信元ノードは、ノード『ｄ』である。続いて、ノード『ａ』は、ルーティングテーブルと同じ構造を持つワークテーブルにノード『ｄ』のレコードを新規作成する。そして、ワークテーブルの宛先ノードに送信元ノード『ｄ』を設定し、隣接ノードに送信元ノード『ｄ』を設定する。そして、ノード『ａ』は、送信元ノード『ｄ』を用いてリンクテーブルを検索し、ノード『ｄ』に対応づけて記憶されているリンク重み『３０』を取得する。次に、ノード『ａ』は、取得したリンク重み『３０』を、ワークテーブルの宛先ノード『ｄ』および隣接ノード『ｄ』のレコードに、リンク重み『３０』として格納する。続いて、ノード『ａ』は、ルーティングテーブルに同一のレコードがあるか否かを判定し、無い場合であるとして、ワークテーブルに作成したレコードを、図１１に示すように、ルーティングテーブルに新規追加する。
【００７９】
そして、ノード『ａ』は、次に、ＨＥＬＬＯパケットに情報が含まれるか否かを判定し、情報は含まれると判定する。ノード『ａ』は、宛先ノードまたは隣接ノードが自ノード『ａ』宛であるか判定し、自ノード『ａ』宛であると判定する。続いて、ノード『ａ』は、受信したパケットに未処理の情報があるか否かを判定し、無いと判定する。その後、ノード『ａ』は、評価値を算出し、ルーティングテーブルに格納する。具体的には、ノード『ａ』は、宛先ノード『ｄ』は隣接ノードであるので、リンク重み『３０』そのものを評価値『３０』として格納する。
【００８０】
さて、ノード『ａ』において、クロックが所定の周期を計測し、クロックイベントが発生した。すると、ノード『ａ』は、ＨＥＬＬＯパケットの送信を行う。ノード『ａ』は、ルーティングテーブルからＨＥＬＬＯパケットを作成し、隣接ノード『ｄ』に送信する。ノード『ａ』は、ルーティングテーブルを検索し、宛先ノード『ｄ』のレコードをグループ分けする。宛先ノード『ｄ』のレコードは一つであるので、ノード『ａ』は、宛先ノード『ｄ』のレコードをＨＥＬＬＯパケットに追加して、ＨＥＬＬＯパケットを隣接ノード『ｄ』に対して送信する。すなわち、図１１に示すように、ノード『ａ』は、宛先ノードが『ｄ』であり、隣接ノードが『ｄ』であり、評価値が『３０』であるとの経路情報をルーティングテーブルから取得して、ＨＥＬＬＯパケットを作成する。また、ノード『ａ』は、図１１に示すように、往路評価値が『１０』であるとのリンク情報をリンクテーブルから取得して、ＨＥＬＬＯパケットを作成する。これらの評価値および往路評価値は、ノード『ｄ』から受信したＨＥＬＬＯパケットを評価した最新の値である。
【００８１】
ノード『ａ』は、ノード『ｄ』の他に、ノード『ｅ』に対しても、空のＨＥＬＬＯパケットをブロードキャスト送信する。図１２は、ノード『ａ』とノード『ｅ』との間で行われるＨＥＬＬＯパケットの送受信や、リンクテーブルおよびルーティングテーブルの更新を示すものである。
【００８２】
次に、図１３〜図１５を用いて、図１１および図１２に続いて行われるＨＥＬＬＯパケットの送受信や、リンクテーブルおよびルーティングテーブルの更新を説明する。まず、図１３に示すように、ノード『ａ』は、ノード『ｄ』およびノード『ｅ』各々に対してＨＥＬＬＯパケットを送信する。これらのＨＥＬＬＯパケットは、図１１および図１２に示したＨＥＬＬＯパケット（３番目）と同じＨＥＬＬＯパケットを示すものである。
【００８３】
ノード『ｄ』は、ＨＥＬＬＯパケットを受信すると、まず、リンクテーブル更新処理を行う。具体的には、ノード『ｄ』は、ＨＥＬＬＯパケットの送信元ノードを特定する。送信元ノードは、ノード『ａ』である。続いて、ノード『ｄ』は、送信元ノード『ａ』の周期テーブルの最上位にレコードを新規作成し、周期の標準偏差を算出することで、往路評価値『２０』を算出する。ここでは、値に変化がないが、最新の値となっている。そして、ノード『ｄ』は、図１３に示すように、リンクテーブルからノード『ａ』の既存レコードを識別し、往路評価値『２０』をノード『ａ』に対応づけて上書きする。さらに、ノード『ｄ』は、ＨＥＬＬＯパケットに往路評価値が含まれていたか否かを判定すると、往路評価値『１０』が含まれているので、含まれていると判定する。そして、ノード『ｄ』は、図１３に示すように、受信したＨＥＬＬＯパケットに含まれる往路評価値『１０』をリンクテーブルの送信元ノード『ａ』に対応づけて、復路評価値『１０』として格納する。さらに、ノード『ｄ』は、往路評価値『２０』と復路評価値『１０』とを加算してリンク重み『３０』を算出し、リンクテーブルに設定する。
【００８４】
続いて、ノード『ｄ』は、ルーティングテーブル更新処理を行う。具体的には、ノード『ｄ』は、ＨＥＬＬＯパケットの送信元ノードを特定する。送信元ノードは、ノード『ａ』である。続いて、ノード『ｄ』は、ルーティングテーブルと同じ構造を持つワークテーブルにノード『ａ』のレコードを新規作成する。そして、ワークテーブルの宛先ノードに送信元ノード『ａ』を設定し、隣接ノードに送信元ノード『ａ』を設定する。そして、ノード『ｄ』は、送信元ノード『ａ』を用いてリンクテーブルを検索し、ノード『ａ』に対応づけて記憶されているリンク重み『３０』を取得する。次に、ノード『ｄ』は、取得したリンク重み『３０』を、ワークテーブルの宛先ノード『ａ』および隣接ノード『ａ』のレコードに、リンク重み『３０』として格納する。続いて、ノード『ｄ』は、ルーティングテーブルに同一のレコードがあるか否かを判定し、ある場合であるとして、ワークテーブルに作成したレコードを、図１３に示すように、ルーティングテーブルに上書きする。
【００８５】
そして、ノード『ｄ』は、次に、ＨＥＬＬＯパケットに情報が含まれるか否かを判定し、情報は含まれると判定する。ノード『ｄ』は、宛先ノードまたは隣接ノードが自ノード『ｄ』宛であるか判定し、自ノード『ｄ』宛であると判定する。続いて、ノード『ｄ』は、受信したパケットに未処理の情報があるか否かを判定し、無いと判定する。その後、ノード『ｄ』は、評価値を算出し、ルーティングテーブルに格納する。具体的には、ノード『ｄ』は、宛先ノード『ａ』は隣接ノードであるので、リンク重み『３０』そのものを評価値『３０』として格納する。
【００８６】
さて、ノード『ｄ』において、クロックが所定の周期を計測し、クロックイベントが発生した。すると、ノード『ｄ』は、ＨＥＬＬＯパケットの送信を行う。ノード『ｄ』は、ルーティングテーブルからＨＥＬＬＯパケットを作成し、隣接ノード『ａ』および隣接ノード『ｘ』各々に送信する。もっとも、図１３では、説明の便宜上から、ノード『ｄ』が、ノード『ｘ』に対してのみＨＥＬＬＯパケットを送信するものとして説明する。
【００８７】
ノード『ｄ』は、ルーティングテーブルを検索し、宛先ノード『ｘ』や宛先ノード『ａ』のレコードをグループ分けする。宛先ノード『ｘ』および宛先ノード『ａ』のレコードは各々一つであるので、ノード『ｄ』は、宛先ノード『ｘ』および宛先ノード『ａ』のレコード各々をＨＥＬＬＯパケットに追加して、ＨＥＬＬＯパケットを隣接ノード『ｘ』に対して送信する。すなわち、図１３に示すように、ノード『ｄ』は、宛先ノードが『ｘ』であり、隣接ノードが『ｘ』であり、評価値が『５０』であるとの経路情報をルーティングテーブルから取得して、ＨＥＬＬＯパケットを作成する。また、ノード『ｄ』は、図１３に示すように、往路評価値が『２０』であるとのリンク情報をリンクテーブルから取得して、ＨＥＬＬＯパケットを作成する。また、ノード『ｄ』は、宛先ノードが『ａ』であり、隣接ノードが『ａ』であり、評価値が『３０』であるとの経路情報をルーティングテーブルから取得して、ＨＥＬＬＯパケットを作成する。また、ノード『ｄ』は、図１３に示すように、往路評価値が『２０』であるとのリンク情報をリンクテーブルから取得して、ＨＥＬＬＯパケットを作成する。
【００８８】
ノード『ａ』は、ノード『ｄ』の他に、ノード『ｅ』に対しても、ＨＥＬＬＯパケットを送信している。図１３の下図は、ノード『ａ』とノード『ｅ』との間で行われるＨＥＬＬＯパケットの送受信や、リンクテーブルおよびルーティングテーブルの更新を示すものである。
【００８９】
次に、図１４に示すように、ノード『ｅ』は、ノード『ｆ』に対してＨＥＬＬＯパケットを送信する。ノード『ｆ』は、ＨＥＬＬＯパケットを受信すると、まず、リンクテーブル更新処理を行う。具体的には、ノード『ｆ』は、ＨＥＬＬＯパケットの送信元ノードを特定する。送信元ノードは、ノード『ｅ』である。続いて、ノード『ｆ』は、送信元ノード『ｅ』の周期テーブルの最上位にレコードを新規作成し、周期の標準偏差を算出することで、往路評価値『１０』を算出する。ここでは、値に変化がないが、最新の値となっている。そして、ノード『ｆ』は、図１４に示すように、リンクテーブルからノード『ｅ』の既存レコードを識別し、往路評価値『１０』をノード『ｅ』に対応づけて上書きする。さらに、ノード『ｆ』は、ＨＥＬＬＯパケットに往路評価値が含まれていたか否かを判定すると、往路評価値『１０』が含まれているので、含まれていると判定する。そして、ノード『ｆ』は、図１４に示すように、受信したＨＥＬＬＯパケットに含まれる往路評価値『１０』をリンクテーブルの送信元ノード『ｅ』に対応づけて、復路評価値『１０』として格納する。さらに、ノード『ｆ』は、往路評価値『１０』と復路評価値『１０』とを加算してリンク重み『２０』を算出し、リンクテーブルに設定する。
【００９０】
続いて、ノード『ｆ』は、ルーティングテーブル更新処理を行う。具体的には、ノード『ｆ』は、ＨＥＬＬＯパケットの送信元ノードを特定する。送信元ノードは、ノード『ｅ』である。続いて、ノード『ｆ』は、ルーティングテーブルと同じ構造を持つワークテーブルにノード『ｅ』のレコードを新規作成する。そして、ワークテーブルの宛先ノードに送信元ノード『ｅ』を設定し、隣接ノードに送信元ノード『ｅ』を設定する。そして、ノード『ｆ』は、送信元ノード『ｅ』を用いてリンクテーブルを検索し、ノード『ｅ』に対応づけて記憶されているリンク重み『２０』を取得する。次に、ノード『ｆ』は、取得したリンク重み『２０』を、ワークテーブルの宛先ノード『ｅ』および隣接ノード『ｅ』のレコードに、リンク重み『２０』として格納する。続いて、ノード『ｆ』は、ルーティングテーブルに同一のレコードがあるか否かを判定し、ある場合であるとして、ワークテーブルに作成したレコードを、図１４に示すように、ルーティングテーブルに上書きする。
【００９１】
そして、ノード『ｆ』は、次に、ＨＥＬＬＯパケットに情報が含まれるか否かを判定し、情報は含まれると判定する。ノード『ｆ』は、宛先ノードまたは隣接ノードが自ノード『ｆ』宛であるか判定し、自ノード『ｆ』宛であると判定する。続いて、ノード『ｆ』は、受信したパケットに未処理の情報があるか否かを判定し、あると判定する。
【００９２】
次に、ノード『ｆ』は、宛先ノードまたは隣接ノードが自ノード『ｆ』宛であるか判定し、隣接ノードが自ノード『ｆ』であると判定する。続いて、ノード『ｆ』は、受信したパケットに未処理の情報があるか否かを判定し、あると判定する。
【００９３】
続いて、ノード『ｆ』は、宛先ノードまたは隣接ノードが自ノード『ｆ』宛であるか判定し、自ノード『ｆ』宛でないと判定する。続いて、ノード『ｆ』は、ルーティングテーブルと同じ構造を持つワークテーブルにノード『ａ』のレコードを新規作成する。そして、ワークテーブルの宛先ノードに宛先ノード『ａ』を設定し、隣接ノードに送信元ノード『ｅ』を設定する。そして、ノード『ｆ』は、ＨＥＬＬＯパケットに含まれる評価値『４０』を、ワークテーブルの経路重み『４０』として格納する。次に、ノード『ｆ』は、ルーティングテーブルに、宛先ノード『ａ』かつ隣接ノード『ｅ』のレコードがあるか否かを判定し、無いと判定する。そして、ノード『ｆ』は、図１４に示すように、ワークテーブルに作成したレコードを、ルーティングテーブルに新規追加する。
【００９４】
その後、ノード『ｆ』は、評価値を算出し、ルーティングテーブルに格納する。具体的には、ノード『ｆ』は、宛先ノード『ｅ』は隣接ノードであるので、リンク重み『２０』そのものを評価値『２０』として格納する。また、ノード『ｆ』は、宛先ノード『ｘ』は隣接ノードであるので、リンク重み『３５』そのものを評価値『３５』として格納する。また、ノード『ｆ』は、隣接ノード『ｅ』を宛先ノードおよび隣接ノードとするレコードを検索する。そして、ノード『ｆ』は、検索したレコードのリンク重み『２０』を取得し、宛先ノード『ａ』および隣接ノード『ｅ』のレコードの経路重み『４０』と、取得したリンク重み『２０』とを加算し、評価値『６０』として格納する。
【００９５】
さて、ノード『ｆ』において、クロックが所定の周期を計測し、クロックイベントが発生した。すると、ノード『ｆ』は、ＨＥＬＬＯパケットの送信を行う。ノード『ｆ』は、ルーティングテーブルからＨＥＬＬＯパケットを作成し、隣接ノード『ｅ』および隣接ノード『ｘ』各々に送信する。もっとも、図１４では、説明の便宜上から、ノード『ｆ』が、ノード『ｘ』に対してのみＨＥＬＬＯパケットを送信するものとして説明する。
【００９６】
ノード『ｆ』は、ルーティングテーブルを検索し、宛先ノード『ｅ』、宛先ノード『ｘ』や宛先ノード『ａ』のレコードをグループ分けする。宛先ノード『ｅ』、宛先ノード『ｘ』および宛先ノード『ａ』のレコードは各々一つであるので、ノード『ｆ』は、宛先ノード『ｅ』、宛先ノード『ｘ』および宛先ノード『ａ』のレコード各々をＨＥＬＬＯパケットに追加して、ＨＥＬＬＯパケットを隣接ノード『ｘ』に対して送信する。
【００９７】
同様に、図１５に示すように、ノード『ｄ』は、ノード『ｘ』に対してＨＥＬＬＯパケットを送信し、ノード『ｆ』は、ノード『ｘ』に対してＨＥＬＬＯパケットを送信する。すなわち、実施例１においては、ノード『ｘ』が、所定の周期の間に、ノード『ｄ』およびノード『ｆ』各々からＨＥＬＬＯパケットを受信するものと想定して説明する。
【００９８】
まず、図１５に示すように、ノード『ｘ』は、先に、ノード『ｄ』からＨＥＬＬＯパケットを受信したとする。この時、ノード『ｘ』は、これまで説明してきた他のノードと同様に、リンクテーブルの更新およびルーティングテーブルの更新を行う。続いて、ノード『ｘ』は、ノード『ｆ』からＨＥＬＬＯパケットを受信したとする。この時、ノード『ｘ』は、同様に、リンクテーブルの更新およびルーティングテーブルの更新を行う。
【００９９】
さて、ノード『ｘ』において、クロックが所定の周期を計測し、クロックイベントが発生した。すると、ノード『ｘ』は、ＨＥＬＬＯパケットの送信を行う。ノード『ｘ』は、ルーティングテーブルからＨＥＬＬＯパケットを作成し、隣接ノード『ｄ』、隣接ノード『ｆ』、隣接ノード『ｖ』および隣接ノード『ｚ』各々に送信する。もっとも、図１５では、説明の便宜上から、ノード『ｘ』が、ノード『ｖ』およびノード『ｚ』に対してのみＨＥＬＬＯパケットを送信するものとして説明する。
【０１００】
ノード『ｘ』は、ルーティングテーブルを検索し、宛先ノード『ｄ』、宛先ノード『ｆ』、宛先ノード『ｅ』や宛先ノード『ａ』のレコードをグループ分けする。宛先ノード『ｄ』、宛先ノード『ｆ』、および宛先ノード『ｅ』のレコードは各々一つであるので、ノード『ｘ』は、宛先ノード『ｄ』、宛先ノード『ｆ』、および宛先ノード『ｅ』のレコード各々をＨＥＬＬＯパケットに追加する。
【０１０１】
これに対し、宛先ノード『ａ』のレコードは、複数存在する。そこで、ノード『ｘ』は、宛先ノード『ａ』のレコードをグループ分けし、グループ内で評価値を比較し、上位１〜３位のフラグを設定する。具体的には、ノード『ｘ』は、宛先ノード『ａ』にグループ分けされるレコードは２つであり、評価値『８０』と評価値『９５』であるので、評価値が『８０』であるレコードに１位のフラグを設定し、評価値が『９５』であるレコードに２位のフラグを設定する。そして、ノード『ｘ』は、１位のフラグが設定されているレコードを抽出し、ＨＥＬＬＯパケットに追加する。具体的には、宛先ノード『ａ』および隣接ノード『ｄ』であるレコードのみを抽出し、ＨＥＬＬＯパケットに追加する。その後、ノード『ｘ』は、ＨＥＬＬＯパケットを送信する。
【０１０２】
［リンクテーブル更新処理］
さて、これまで実施例１におけるテーブルの更新例を説明してきたが、続いて、図１６を用いて、リンクテーブル更新処理を説明する。図１６は、実施例１におけるリンクテーブル更新処理を示すフローチャートである。
【０１０３】
実施例１におけるノード１０のリンクテーブル更新部３２は、まず、隣接ノードからＨＥＬＬＯパケットを受信したか否かを判定する（ステップＳ１０１）。受信していないと判定した場合には（ステップＳ１０１否定）、リンクテーブル更新部３２は、ＨＥＬＬＯパケットの受信を待機する。
【０１０４】
一方、受信したと判定した場合には（ステップＳ１０１肯定）、続いて、リンクテーブル更新部３２は、ＨＥＬＬＯパケットの『Ｆｒｏｍ  Ｗｈｏ』を特定する（ステップＳ１０２）。すなわち、リンクテーブル更新部３２は、ＨＥＬＬＯパケットを送信してきた送信元ノードを特定する。
【０１０５】
続いて、リンクテーブル更新部３２は、周期テーブル部２３に、ステップＳ１０２において特定した送信元ノードの周期テーブルが既存であるか否かを判定する（ステップＳ１０３）。
【０１０６】
既存でないと判定した場合（ステップＳ１０３否定）、リンクテーブル更新部３２は、送信元ノードの周期テーブルを新規作成し、ＩＤ『１』のレコードを新規作成する（ステップＳ１０４）。続いて、リンクテーブル更新部３２は、ＩＤ『１』のレコードに、ＨＥＬＬＯパケットを受信した受信時刻を設定する（ステップＳ１０５）。例えば、リンクテーブル更新部３２は、受信時刻『０：００』を設定する。また、リンクテーブル更新部３２は、ＩＤ『１』のレコードに、周期の初期値を設定する（ステップＳ１０６）。例えば、リンクテーブル更新部３２は、周期『０：００』を設定する。
【０１０７】
一方、既存であると判定した場合（ステップＳ１０３肯定）、リンクテーブル更新部３２は、周期テーブルの最上位にレコードを新規作成する（ステップＳ１０７）。続いて、リンクテーブル更新部３２は、新規作成したレコードに、ＨＥＬＬＯパケットを受信した受信時刻を設定する（ステップＳ１０８）。そして、リンクテーブル更新部３２は、ステップＳ１０８において設定した受信時刻と、隣接する下位のレコードに設定されている受信時刻との差分を算出し、周期に設定する（ステップＳ１０９）。続いて、リンクテーブル更新部３２は、周期の標準偏差を算出する（ステップＳ１１０）。
【０１０８】
次に、リンクテーブル更新部３２は、リンクテーブルに送信元ノードのレコードを新規作成する（ステップＳ１１１）。もしくは、リンクテーブル更新部３２は、リンクテーブルから送信元ノードの既存レコードを識別する（ステップＳ１１１）。
【０１０９】
そして、リンクテーブル更新部３２は、受信したＨＥＬＬＯパケットを評価した往路評価値（すなわち、ステップＳ１１０において算出した標準偏差から導出した往路評価値）を、リンクテーブルの送信元ノードに対応づけて格納する（ステップＳ１１２）。もしくは、リンクテーブル更新部３２は、既存レコードに上書きする（ステップＳ１１２）。
【０１１０】
続いて、リンクテーブル更新部３２は、受信したＨＥＬＬＯパケットに往路評価値が含まれていたか否かを判定する（ステップＳ１１３）。含まれていないと判定した場合には（ステップＳ１１３否定）、リンクテーブル更新部３２は、受信パケットを評価した往路評価値を、ノード間のリンク重みとしてリンクテーブルに設定する（ステップＳ１１４）。もしくは、リンクテーブル更新部３２は、既存レコードに上書きする（ステップＳ１１４）。
【０１１１】
一方、含まれていると判定した場合には（ステップＳ１１３肯定）、リンクテーブル更新部３２は、受信したＨＥＬＬＯパケットに含まれる往路評価値を、リンクテーブルの送信元ノードに対応づけて、復路評価値として格納する（ステップＳ１１５）。もしくは、リンクテーブル更新部３２は、既存レコードに上書きする（ステップＳ１１５）。
【０１１２】
そして、リンクテーブル更新部３２は、往路評価値と復路評価値とを加算することでノード間のリンク重みを算出し、リンクテーブルに設定する（ステップＳ１１６）。もしくは、リンクテーブル更新部３２は、既存レコードに上書きする（ステップＳ１１６）。
【０１１３】
［ルーティングテーブル更新処理］
次に、図１７−１および図１７−２を用いて、ルーティングテーブル更新処理を説明する。図１７−１および図１７−２は、実施例１におけるルーティングテーブル更新処理を示すフローチャートである。
【０１１４】
実施例１におけるノード１０のルーティングテーブル更新部３３は、まず、隣接ノードからＨＥＬＬＯパケットを受信したか否かを判定する（ステップＳ２０１）。受信していないと判定した場合には（ステップＳ２０１否定）、ルーティングテーブル更新部３３は、ＨＥＬＬＯパケットの受信を待機する。
【０１１５】
一方、受信したと判定した場合には（ステップＳ２０１肯定）、続いて、ルーティングテーブル更新部３３は、ＨＥＬＬＯパケットの『Ｆｒｏｍ  Ｗｈｏ』を特定する（ステップＳ２０２）。すなわち、ルーティングテーブル更新部３３は、ＨＥＬＬＯパケットを送信してきた送信元ノードを特定する。
【０１１６】
続いて、ルーティングテーブル更新部３３は、ワークテーブル部２４に、レコードを新規作成する（ステップＳ２０３）。そして、ルーティングテーブル更新部３３は、新規作成したレコードの宛先ノードに、ステップＳ２０２において特定した送信元ノードを設定し（ステップＳ２０４）、隣接ノードに、ステップＳ２０２において特定した送信元ノードを設定する（ステップＳ２０５）。
【０１１７】
次に、ルーティングテーブル更新部３３は、送信元ノードを用いてリンクテーブル部２２を検索し、送信元ノードに対応づけて記憶されているリンク重みを取得する（ステップＳ２０６）。
【０１１８】
そして、ルーティングテーブル更新部３３は、取得したリンク重みを、ワークテーブル部２４において、宛先ノードおよび隣接ノードが送信元ノードのレコードに、リンク重みとして格納する（ステップＳ２０７）。
【０１１９】
続いて、ルーティングテーブル更新部３３は、ルーティングテーブル部２１に、同一の宛先ノードおよび隣接ノードのレコードがあるか否かを判定する（ステップＳ２０８）。ないと判定した場合には（ステップＳ２０８否定）、ルーティングテーブル更新部３３は、ワークテーブル部２４に作成したレコードを、ルーティングテーブル部２１に新規追加する（ステップＳ２０９）。一方、あると判定した場合には（ステップＳ２０８肯定）、ルーティングテーブル更新部３３は、ルーティングテーブル部２１に上書きする（ステップＳ２１０）。
【０１２０】
次に、ルーティングテーブル更新部３３は、ＨＥＬＬＯパケットの情報が含まれていたか否かを判定する（ステップＳ２１１）。含まれていないと判定した場合（ステップＳ２１１否定）、ルーティングテーブル更新部３３は、評価値を算出する処理（ステップＳ２２２）に移行する。
【０１２１】
一方、含まれていると判定した場合（ステップＳ２１１肯定）、ルーティングテーブル更新部３３は、続いて、宛先ノードまたは隣接ノードが自ノードであるか否かを判定する（ステップＳ２１２）。ここで、いずれかが自ノードであると判定した場合には（ステップＳ２１２肯定）、ルーティングテーブル更新部３３は、この情報を無視し、受信したＨＥＬＬＯパケットに未処理の情報があるか否かを判定する処理（ステップＳ２２０）に移行する。
【０１２２】
一方、宛先ノードおよび隣接ノードのいずれも自ノードではないと判定した場合には（ステップＳ２１２否定）、ルーティングテーブル更新部３３は、ワークテーブル部２４にレコードを新規作成する（ステップＳ２１３）。そして、ルーティングテーブル更新部３３は、新規作成したレコードの宛先ノードに、ＨＥＬＬＯパケットの情報に含まれる宛先ノードを設定し（ステップＳ２１４）、隣接ノードに、送信元ノードを設定する（ステップＳ２１５）。
【０１２３】
続いて、ルーティングテーブル更新部３３は、ＨＥＬＬＯパケットの情報に含まれる評価値を、ワークテーブル部２４に新規作成したレコードに、経路重みとして格納する（ステップＳ２１６）。
【０１２４】
次に、ルーティングテーブル更新部３３は、ルーティングテーブル部２１に、同一の宛先ノードおよび隣接ノードのレコードがあるか否かを判定する（ステップＳ２１７）。ないと判定した場合には（ステップＳ２１７否定）、ルーティングテーブル更新部３３は、ワークテーブル部２４に作成したレコードを、ルーティングテーブル部２１に新規追加する（ステップＳ２１８）。一方、あると判定した場合には（ステップＳ２１７肯定）、ルーティングテーブル更新部３３は、ルーティングテーブル部２１に上書きする（ステップＳ２１９）。
【０１２５】
その後、ルーティングテーブル更新部３３は、受信したＨＥＬＬＯパケットに、未処理の情報があるか否かを判定し（ステップＳ２２０）、ある場合には（ステップＳ２２０肯定）、未処理の情報を取得して（ステップＳ２２１）、ステップＳ２１２の処理に戻る。一方、ない場合には（ステップＳ２２０否定）、ルーティングテーブル更新部３３は、評価値を算出し、ルーティングテーブル部２１に格納する（ステップＳ２２２）。
【０１２６】
［評価値算出処理］
次に、図１８を用いて、評価値算出処理を説明する。図１８は、評価値算出処理を示すフローチャートである。
【０１２７】
ルーティングテーブル更新部３３は、まず、ルーティングテーブル部２１の該当レコードに、リンク重みが格納されているか否かを判定する（ステップＳ２２２−１）。格納されていると判定した場合には（ステップＳ２２２−１肯定）、ルーティングテーブル更新部３３は、格納されているリンク重みを、該当レコードの評価値として格納する（ステップＳ２２２−２）。
【０１２８】
一方、リンク重みが格納されていないと判定した場合には（ステップＳ２２２−１否定）、ルーティングテーブル更新部３３は、該当レコードの隣接ノードを、宛先ノードおよび隣接ノードとするレコードを検索する（ステップＳ２２２−３）。
【０１２９】
そして、ルーティングテーブル更新部３３は、検索したレコードのリンク重みを取得し（ステップＳ２２２−４）、該当レコードの経路重みと、検索したレコードのリンク重みとを加算し、該当レコードの評価値として格納する（ステップＳ２２２−５）。
【０１３０】
その後、ルーティングテーブル更新部３３は、未処理のレコードがあるか否かを判定し（ステップＳ２２２−６）、ある場合には（ステップＳ２２２−６肯定）、未処理のレコードを取得して（ステップＳ２２２−７）、ステップＳ２２２−１の処理に戻る。一方、ない場合には（ステップＳ２２２−６否定）、ルーティングテーブル更新部３３は、処理を終了する。
【０１３１】
［送信処理］
次に、図１９を用いて、送信処理を説明する。図１９は、実施例１における送信処理を示すフローチャートである。
【０１３２】
実施例１におけるノード１０の経路情報送信部３４は、まず、クロックイベントがあるか否かを判定する（ステップＳ３０１）。クロックイベントがないと判定した場合には（ステップＳ３０１否定）、経路情報送信部３４は、クロックイベントを待機する。
【０１３３】
一方、クロックイベントがあると判定した場合には（ステップＳ３０１肯定）、経路情報送信部３４は、ルーティングテーブルがあるか否かを判定する（ステップＳ３０２）。ルーティングテーブルがないと判定した場合には（ステップＳ３０２否定）、経路情報送信部３４は、空のＨＥＬＬＯパケットを送信して（ステップＳ３０７）、処理を終了する。
【０１３４】
ルーティングテーブルがあると判定した場合には（ステップＳ３０２肯定）、経路情報送信部３４は、ルーティングテーブル部２１を検索し、同一の宛先ノードごとに、グループ分けを行う（ステップＳ３０３）。
【０１３５】
続いて、経路情報送信部３４は、グループ内で評価値を比較し、評価値が小さい順（品質が高い順）に上位１〜３位のレコードに関して順位づけを行う（ステップＳ３０４）。
【０１３６】
そして、経路情報送信部３４は、順位づけを行ったレコードに、１〜３位のフラグを設定し（ステップＳ３０５）、１位のフラグが設定されているレコードを抽出し、ＨＥＬＬＯパケットヘッダに追加する（ステップＳ３０６）。なお、実施例１における経路情報送信部３４は、ＨＥＬＬＯパケットヘッダに追加したレコードについて、『送信フラグ』を『Ｙｅｓ』と設定する。
【０１３７】
その後、経路情報送信部３４は、ＨＥＬＬＯパケットを送信して（ステップＳ３０７）、処理を終了する。
【０１３８】
［実施例１の効果］
上記してきたように、実施例１は、経路情報（宛先となるノードにパケットを送信する経路を示す情報）に基づいてノード各々がパケットを中継するアドホックネットワークにおいて、ノード各々が経路情報を中継する経路情報中継方法である。実施例１において、ノード各々は、自端末と相互に接続するノード（隣接ノード）から経路情報を受信する。また、ノード各々は、受信した経路情報について、経路情報で示される経路の品質を示す品質情報（評価値）を取得する。そして、ノード各々は、受信した経路情報について、パケットの宛先となるノードが同一である経路情報が複数受信されているか否かを、所定の周期ごとに（クロックイベントごとに）判定する。ノード各々は、判定した結果、宛先となるノードが同一である経路情報を複数受信している場合には、複数受信した経路情報各々について品質情報（評価値）各々を比較し、比較の結果最も高い品質であることを示す品質情報（評価値）に対応する経路情報を選択する。ノード各々は、選択した経路情報を、自端末と相互に接続するノード（隣接ノード）の内、経路情報を送信したノード以外のノードに対して中継する。
【０１３９】
このようなことから、実施例１におけるノード各々は、経路制御のための通信量を削減することが可能になる。
【０１４０】
すなわち、従来の技術におけるノード各々は、経路情報を受信すると、受信した経路情報を、その都度隣接ノードに送信していた。結果として、ノード各々は、経路情報の送信を多数回行わなければならず、また、ＨＥＬＬＯパケットごとに制御ヘッダ部分が付加され、ＨＥＬＬＯパケットごとに送信待ち時間を要することから、オーバヘッドが大きくなってしまっていた。さらに、送信される経路情報の数が増大すると、コリジョンの発生頻度も増加し、ひいては、経路情報を再送する回数も増大してしまっていた。このため、仮に、大規模なアドホックネットワークに従来の技術を適用すると、パケット超過によるフラッディングが発生し、経路探索のためのルーティングテーブルを作成することも困難であった。
【０１４１】
これに対し、実施例１におけるノード各々は、経路情報を受信しても、受信した経路情報を、その都度隣接ノードに送信するものではない。ノード各々は、パケットの宛先となるノードが同一である経路情報が複数受信されているか否かを所定の周期ごとに判定し、品質情報各々を比較して最高品質の品質情報に対応する経路情報を選択する。そして、ノード各々は、選択した経路情報のみを隣接ノードに中継する。結果として、ノード各々は、経路情報の送信回数を削減することができ、同時にオーバヘッドも削減されることになる。さらに、送信される経路情報の数が減少すると、コリジョンの発生頻度も減少し、ひいては、経路情報を再送する回数も減少する。このため、仮に、大規模なアドホックネットワークに実施例１の技術を適用したとしても、パケット超過によるフラッディングが発生することもなく、経路探索のためのルーティングテーブルを作成することが困難ではなくなる。
【０１４２】
例えば、図２０に示すように、実施例１の方式は、ＯＬＳＲ（Optimized  Link  State  Routing  protocol）や、ＡＯＤＶ（Ad  hoc  On  demand  Distance  Vector）の方式と比較して、経路制御のための通信量を削減していることがわかる。すなわち、ノード数が１００ノードを超えると、ＯＬＳＲの制御パケット数の方が、実施例１の方式の制御パケット数を上回る。また、ＡＯＤＶは、制御パケットが加速度的に増大していることがわかる。
【実施例２】
【０１４３】
上記してきた実施例１においては、ノード１０が、最も高い評価値に対応する経路情報（１位フラグが設定されたレコード）であれば、全て、隣接ノードに送信する手法を説明してきた。実施例２においては、最も高い評価値に対応する経路情報であれば全て送信するという手法ではなく、ノード１０が、今回の評価値と前回の評価値とを比較し、両者の値の差が所定の閾値以上になったことを条件として送信する手法を説明する。
【０１４４】
まず、図２１を用いて、実施例２におけるルーティングテーブル部２１を説明する。図２１は、実施例２におけるルーティングテーブルを説明するための図である。
【０１４５】
図２１に示すように、実施例２におけるルーティングテーブル部２１は、経路情報送信部３４が前回経路情報を送信した際の評価値（『前回送信値』）をさらに記憶する。具体的には、ルーティングテーブル部２１は、経路情報送信部３４が経路情報を送信した際に、経路情報送信部３４によって格納されることで、『評価値』に格納されている評価値を、『前回送信値』に格納する。また、ルーティングテーブル部２１が記憶する『前回送信値』は、経路情報送信部３４による処理に利用される。
【０１４６】
次に、図２２を用いて、実施例２における送信処理を説明する。図２２は、実施例２における送信処理を示すフローチャートである。
【０１４７】
図２２に示すように、実施例２における経路情報送信部３４は、実施例１と同様、クロックイベントがあるか否かを判定し（ステップＳ４０１）、ルーティングテーブルがあるか否かを判定する（ステップＳ４０２）。また、ルーティングテーブルがあると判定した場合には（ステップＳ４０２肯定）、経路情報送信部３４は、実施例１と同様、ルーティングテーブル部２１を検索し、同一の宛先ノードごとに、グループ分けを行う（ステップＳ４０３）。また、経路情報送信部３４は、実施例１と同様、グループ内で評価値を比較し、評価値が小さい順（品質が高い順）に上位１〜３位のレコードに関して順位づけを行う（ステップＳ４０４）。続いて、経路情報送信部３４は、実施例１と同様、順位づけを行ったレコードに、１〜３位のフラグを設定する（ステップＳ４０５）。
【０１４８】
次に、実施例２における経路情報送信部３４は、ルーティングテーブル部２１において、『評価値』と『前回送信値』とを比較し、更新幅の大きなレコードに送信フラグを設定する（ステップＳ４０６）。例えば、経路情報送信部３４は、更新幅が『１０』以上のレコードに、送信フラグ『ＹＥＳ』を設定する。
【０１４９】
そして、経路情報送信部３４は、送信フラグが設定されているレコードを抽出し、ＨＥＬＬＯパケットヘッダに追加する（ステップＳ４０７）。また、経路情報送信部３４は、送信フラグが設定されているレコードについて、『評価値』を『前回送信値』に格納する（ステップＳ４０８）。
【０１５０】
その後、経路情報送信部３４は、実施例１と同様、ＨＥＬＬＯパケットを送信し（ステップＳ４０９）、処理を終了する。
【０１５１】
［実施例２の効果］
上記してきたように、実施例２において、ノード各々は、受信した経路情報と、経路情報が前回中継された際の品質情報（前回送信値）との対応関係を、ルーティングテーブル部に記憶している。また、ノード各々は、今回選択した経路情報を用いてルーティングテーブル部を検索し、ルーティングテーブル部にて経路情報と対応関係にある品質情報（前回送信値）と、経路情報が選択された際の今回の品質情報（評価値）とを比較する。そして、ノード各々は、品質情報各々によって示される品質各々の差が所定の閾値以上（例えば、『１０』以上）になったことを条件として、選択した経路情報を中継する。
【０１５２】
このようなことから、実施例２によれば、ノード各々は、隣接ノードに対して既に送信したことのある経路情報であって、前回と品質の評価があまり変動していない経路情報については、今回の中継対象からはずすので、経路制御のための通信量をより削減することが可能になる。
【実施例３】
【０１５３】
ところで、実施例１や実施例２において、ノード１０がパケットを送信する際に経路を選択する手法は、データパケット（実データを送受信するパケット）に関する情報を反映するものではなかった。そこで、実施例３においては、ノード１０が、データパケットに関する情報に基づいて経路の評価値を補正することで、データパケットに関する情報を経路の選択に反映する手法を説明する。
【０１５４】
［実施例３におけるノードの構成］
まず、図２３〜図２５を用いて、実施例３におけるノードの構成を説明する。図２３は、実施例３におけるノードの構成を示すブロック図である。また、図２４は、実施例３におけるデータ管理テーブルを説明するための図である。また、図２５は、実施例３におけるルーティングテーブルを説明するための図である。
【０１５５】
実施例３におけるノード１０は、図２３に示すように、記憶部２０に、データ管理テーブル部２５をさらに備える。データ管理テーブル部２５は、パケット送受信部３５によって送信されたデータパケットに関する情報を記憶する。具体的には、データ管理テーブル部２５は、パケット送受信部３５によってデータパケットが送信される際に、応答パケット（以下、データＡＣＫと呼ぶ）の受信時刻として成功と考えられる時刻などを、パケット送受信部３５によって格納される。また、データ管理テーブル部２５が記憶する情報はパケット送受信部３５による処理に利用される。
【０１５６】
例えば、データ管理テーブル部２５は、図２４に示すように、データパケットを識別するＩＤ（『ＩＤ』）と、宛先ノード（『宛先』）と、隣接ノード（『隣接』）と、データＡＣＫの受信時刻として成功と考えられる時刻（『待ち時刻』）とを記憶する。なお、例えば、ノード『ｘ』がノード『ａ』を宛先ノードとしてデータパケットを送信する際には、隣接ノード『ｄ』にデータパケットを送信する経路と、隣接ノード『ｆ』にデータパケットを送信する経路とがある。実施例３におけるデータ管理テーブル部２５は、いずれの経路についても情報を記憶するが、図２４では、隣接ノード『ｄ』にデータパケットを送信する経路についてのみ例示している。
【０１５７】
ここで、『待ち時刻』について説明する。ノード１０がデータパケットを送信すると、ノード１０は、送信したデータパケットに対するデータＡＣＫを受信することになる。このため、ノード１０は、データＡＣＫを受信した時刻によって、データパケットを送信した経路の品質を評価することができる。すなわち、データＡＣＫを受信した時刻が、通常受信すべきと考えられる時刻よりも遅い場合には、経路の品質は一般的に悪いといえる。一方、データＡＣＫを受信した時刻が、通常受信すべきと考えられる時刻よりも早い場合には、経路の品質は一般的に良いといえる。このようなことから、実施例３において、ノード１０は、データ管理テーブル部２５に『待ち時刻』を設定する。
【０１５８】
また、実施例３において、ノード１０は、図２５に示すように、ルーティングテーブル部２１に『成功係数』を記憶する。具体的には、ルーティングテーブル部２１は、パケット送受信部３５によってデータＡＣＫが受信された際に、パケット送受信部３５によって、『成功係数』を格納されたり、『評価値』を更新されたりする。ここで、『成功係数』は、データ管理テーブル部２５の『待ち時刻』に設定された時刻までにデータＡＣＫを受信したか否かを示す係数である。実施例３において、『成功係数』は、例えば、『０』〜『１０』の値を示す。
【０１５９】
実施例３において、パケット送受信部３５は、『待ち時刻』に設定された時刻までにデータＡＣＫを受信すれば、ルーティングテーブル部２１の『成功係数』の値を小さく更新し（例えば、『１』減算する）、更新後の『成功係数』を『評価値』に反映するように更新する。一方、パケット送受信部３５は、『待ち時刻』に設定された時刻までにデータＡＣＫを受信しなければ、ルーティングテーブル部２１の『成功係数』の値を大きく更新し（例えば、『１』加算する）、更新後の『成功係数』を『評価値』に反映するように更新する。
【０１６０】
［実施例３におけるノードの処理手順］
次に、図２６および図２７を用いて、実施例３におけるノードの処理手順を説明する。図２６は、実施例３におけるノードの処理手順（全体）を説明するための図である。図２７は、実施例３におけるデータ管理テーブル更新処理を示すフローチャートである。
【０１６１】
実施例３におけるノード１０は、図２６に示すように、パケット送受信部３５において、データパケットを送信する際に、ルーティングテーブル部２１を参照し、経路を選択する。次に、パケット送受信部３５は、データ管理テーブル部２５に、送信するデータパケットの送信履歴を管理するレコードを追加し、データパケットを送信する。この時、パケット送受信部３５は、データＡＣＫの『待ち時刻』をデータ管理テーブル部２５に設定している。
【０１６２】
そして、パケット送受信部３５は、データパケットの送信とは非同期に動作するクロックから特定間隔でクロックイベントを受信し、そのタイミングから計算される現在時刻と、データ管理テーブル部２５に設定した『待ち時刻』とを比較する。パケット送受信部３５は、『待ち時刻』までにデータＡＣＫを受信しない場合に、データパケットを再送信する。すなわち、パケット送受信部３５は、図２６に示すように、ルーティングテーブル部２１を更新し、更新後のルーティングテーブル部２１に基づいて新たに経路を選択し、データパケットを再送信する。
【０１６３】
続いて、パケット送受信部３５は、データＡＣＫを『待ち時刻』までに受信すると、データ管理テーブル部２５を更新し（レコードを削除）、ルーティングテーブル部２１を更新する。
【０１６４】
次に、図２７を用いて、パケット送受信部３５によるデータ管理テーブル更新処理を説明する。まず、パケット送受信部３５は、実データ（データパケット）を送信する要求を自ノード１０から受け付けているか、あるいは、隣接するノード１０から中継するデータパケットを受信しているか否かを判定する（ステップＳ５０１）。送信要求を受け付けていない、あるいは、中継するデータパケットを受信していない場合には（ステップＳ５０１否定）、パケット送受信部３５は、送信要求等を待機する。
【０１６５】
一方、送信要求を受け付けた、あるいは、中継するデータパケットを受信した場合には（ステップＳ５０１肯定）、パケット送受信部３５は、ルーティングテーブル部２１を参照し、データパケットの宛先となるノード１０を宛先とするレコードの内、１〜３位のフラグを設定した３つのレコードを抽出する（ステップＳ５０２）。ここでは、全てのレコードを抽出するのではなく、上位３つのレコードに限定する手法を例示する。
【０１６６】
続いて、パケット送受信部３５は、抽出した３つのレコードについて、データ管理テーブル部２５に、送信履歴レコードを追加する（ステップＳ５０３）。そして、パケット送受信部３５は、データ管理用の『ＩＤ』を設定し、データパケットの宛先を『宛先』に設定し（ステップＳ５０４）、データＡＣＫの『待ち時刻』を設定する（ステップＳ５０５）。そして、パケット送受信部３５は、データパケットを送信する（ステップＳ５０６）。
【０１６７】
その後、パケット送受信部３５は、宛先ノードからのデータＡＣＫを、データ管理テーブル部２５に設定した『待ち時刻』までに受信したか否かを判定する（ステップＳ５０７）。受信していない場合には（ステップＳ５０７否定）、パケット送受信部３５は、ルーティングテーブル部２５の『成功係数』を更新し（ステップＳ５１１）、ルーティングテーブル部２５の『評価値』を更新し、さらに、『順位』を更新する（ステップＳ５１２）。例えば、パケット送受信部３５は、ルーティングテーブル部２５の『成功係数』を、『７』から『８』に更新し、『評価値』を、『５７』から『５８』に更新する。
【０１６８】
そして、パケット送受信部３５は、ステップＳ５０２の処理に戻る。すなわち、パケット送受信部３５は、更新されたルーティングテーブル部２１を再び参照し、１〜３位のフラグを設定した３つのレコードを抽出する（ステップＳ５０２）。更新前のルーティングテーブル部２１と比較して、１〜３位のフラグを設定したレコードに変化があれば、パケット送受信部３５は、実際にデータパケットを送信した際に取得した経路の品質情報に基づいて、改めて経路を選択し直すことができる。
【０１６９】
一方、『待ち時刻』までに受信した場合には（ステップＳ５０７肯定）、パケット送受信部３５は、データ管理テーブル部２５から対象レコードを削除する（ステップＳ５０８）。そして、パケット送受信部３５は、ルーティングテーブル部２５の『成功係数』を更新し（ステップＳ５０９）、ルーティングテーブル部２５の『評価値』を更新し、さらに、『順位』を更新する（ステップＳ５１０）。
【０１７０】
［実施例３の効果］
上記してきたように、実施例３において、ノード各々は、受信した経路情報と、取得した品質情報（評価値）との対応関係をルーティングテーブル部に記憶している。また、ノード各々は、隣接ノードに対してパケットを送信した場合に、もしくは、隣接ノードから受信したパケットを中継した場合に、応答パケットの受信状況に基づいて、選択した経路の品質情報を算出する。そして、ノード各々は、算出した品質情報をルーティングテーブル部に記憶されている品質情報と置換する。そして、ノード各々は、複数受信された経路情報各々についてルーティングテーブル部にて記憶されている品質情報各々（置換後の品質情報）を比較することで、経路情報を選択する。
【０１７１】
このようなことから、実施例３によれば、ノード各々は、実際にデータパケットを送信した際に取得した経路の品質情報に基づいて、経路の品質を評価し直したり、改めて経路を選択し直すことが可能になる。
【実施例４】
【０１７２】
［他の実施例］
さて、これまで本発明の実施例１〜実施例３について説明してきたが、本発明は、上記した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【０１７３】
［オンデマンド方式］
上記した実施例１〜実施例３は、本発明に係る経路情報中継方法を、経路制御がルーティングテーブル方式で行われる場合に適用することを想定したものである。しかしながら、本発明はこれに限られるものではない。本発明に係る経路情報中継方法を、経路制御がオンデマンド方式で行われる場合や、ハイブリッド方式（ルーティングテーブル方式とオンデマンド方式との混合方式）で行われる場合にも、同様に適用することができる。言い換えると、本発明は、ノード各々が経路情報を中継する方式であれば、経路制御がいずれの方式で行われる場合であったとしても、適用することができる。
【０１７４】
［複数ノードの経路情報］
上記した実施例１〜実施例３は、ノード『ａ』を宛先とする経路情報のみが複数受信されている事例を説明してきたが、本発明はこれに限られるものではない。ノード各々は、宛先となるノードが同一である経路情報が複数のノード各々について複数受信されている場合には、複数のノード各々について経路情報各々を選択し、選択した経路情報各々をまとめて中継してもよい。例えば、ノード『ｘ』が、所定の周期ごとに判定した際、ノード『ａ』を宛先とする複数の経路情報の他に、ノード『ｂ』を宛先とする複数の経路情報、ノード『ｃ』を宛先とする複数の経路情報を受信していたとする（図２を参照）。この時、ノード『ｘ』は、ノード『ａ』について選択した最高品質の経路情報と、ノード『ｂ』について選択した最高品質の経路情報と、ノード『ｃ』について選択した最高品質の経路情報とを、まとめて中継してもよい。このように、複数のノードに関する経路情報をまとめて中継する手法は、ノードに関する経路情報を個別に中継する手法に比較して、経路制御のための通信量をさらに削減することが可能になる。
【０１７５】
［システム構成等］
上記文書中や図面中で示した処理手順（図１６〜１９、図２２、図２７など）、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示（例えば、図３、図２３など）の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１７６】
なお、本実施例で説明した経路制御方法は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
【０１７７】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１７８】
（付記１）宛先となる無線端末にパケットを送信する際の経路を示す経路情報に基づいて無線端末各々がパケットを中継する場合に、当該無線端末各々が当該経路情報を中継する経路情報中継方法であって、
無線端末各々が、
自端末と相互に接続する無線端末から前記経路情報を受信する経路情報受信工程と、
前記経路情報受信工程によって受信された経路情報について、当該経路情報で示される経路の品質を示す品質情報を取得する品質情報取得工程と、
前記経路情報受信工程によって受信された経路情報について、パケットの宛先となる無線端末が同一である経路情報が複数受信されているか否かを、所定の周期ごとに判定する判定工程と、
前記判定工程によって判定された結果、宛先となる無線端末が同一である経路情報が複数受信されている場合には、複数受信された当該経路情報各々について前記品質情報取得工程によって取得された品質情報各々を比較し、比較の結果最も高い品質であることを示す品質情報に対応する経路情報を選択する選択工程と、
前記選択工程によって選択された経路情報を、自端末と相互に接続する無線端末の内、前記経路情報受信工程によって受信された経路情報を送信した無線端末以外の無線端末に対して中継する中継工程と、
を含んだことを特徴とする経路情報中継方法。
【０１７９】
（付記２）前記選択工程は、前記判定工程によって判定された結果、宛先となる無線端末が同一である経路情報が複数の無線端末各々について複数受信されている場合には、当該複数の無線端末各々について経路情報各々を選択し、
前記中継工程は、前記選択工程によって選択された経路情報各々をまとめて中継することを特徴とする付記１に記載の経路情報中継方法。
【０１８０】
（付記３）前記無線端末各々は、前記経路情報受信工程によって受信された経路情報と、当該経路情報が前記中継工程によって中継された際の品質情報との対応関係を記憶する品質情報記憶部を備えるものであって、
前記中継工程は、前記選択工程によって選択された経路情報を用いて前記品質情報記憶部を検索し、当該品質情報記憶部にて当該経路情報と対応関係にある品質情報と、前記選択工程によって経路情報が選択された際の品質情報とを比較し、当該品質情報各々によって示される品質各々の差が所定の閾値以上になったことを条件として、前記選択工程によって選択された経路情報を中継することを特徴とする付記１または２に記載の経路情報中継方法。
【０１８１】
（付記４）前記無線端末各々は、前記経路情報受信工程によって受信された経路情報と、前記品質情報取得工程によって取得された品質情報との対応関係を記憶する経路情報記憶部を備えるものであって、
自端末と相互に接続する無線端末に対してパケットを送信した場合に、もしくは、自端末と相互に接続する無線端末から受信したパケットを、自端末と相互に接続する無線端末に対して中継した場合に、当該パケットに対する応答パケットの受信状況に基づいて、パケットの送信もしくは中継に選択した経路の品質情報を算出し、算出した当該品質情報を前記経路情報記憶部に記憶されている品質情報と置換する品質情報置換工程をさらに含み、
前記選択工程は、前記複数受信された経路情報各々について前記経路情報記憶部にて記憶されている品質情報各々を比較することで、経路情報を選択することを特徴とする付記１〜３のいずれか一つに記載の経路情報中継方法。
【０１８２】
（付記５）宛先となる無線端末にパケットを送信する際の経路を示す経路情報に基づいて無線端末各々がパケットを中継する場合に、当該経路情報を中継する無線端末であって、
自端末と相互に接続する無線端末から前記経路情報を受信する経路情報受信手段と、
前記経路情報受信手段によって受信された経路情報について、当該経路情報で示される経路の品質を示す品質情報を取得する品質情報取得手段と、
前記経路情報受信手段によって受信された経路情報について、パケットの宛先となる無線端末が同一である経路情報が複数受信されているか否かを、所定の周期ごとに判定する判定手段と、
前記判定手段によって判定された結果、宛先となる無線端末が同一である経路情報が複数受信されている場合には、複数受信された当該経路情報各々について前記品質情報取得手段によって取得された品質情報各々を比較し、比較の結果最も高い品質であることを示す品質情報に対応する経路情報を選択する選択手段と、
前記選択手段によって選択された経路情報を、自端末と相互に接続する無線端末の内、前記経路情報受信手段によって受信された経路情報を送信した無線端末以外の無線端末に対して中継する中継手段と、
を備えたことを特徴とする無線端末。
【図面の簡単な説明】
【０１８３】
【図１】実施例１における経路情報中継方法の基本原理を説明するための図である。
【図２】実施例１におけるアドホックネットワークの全体構成を示す図である。
【図３】実施例１におけるノードの構成を示すブロック図である。
【図４】実施例１におけるルーティングテーブルを説明するための図である。
【図５】実施例１におけるリンクテーブルを説明するための図である。
【図６】リンク重みの概念を説明するための図である。
【図７】実施例１における周期テーブルを説明するための図である。
【図８】実施例１におけるノードの処理手順（全体）を説明するための図である。
【図９】実施例１におけるテーブルの更新例を説明するための図である。
【図１０】実施例１におけるテーブルの更新例を説明するための図である。
【図１１】実施例１におけるテーブルの更新例を説明するための図である。
【図１２】実施例１におけるテーブルの更新例を説明するための図である。
【図１３】実施例１におけるテーブルの更新例を説明するための図である。
【図１４】実施例１におけるテーブルの更新例を説明するための図である。
【図１５】実施例１におけるテーブルの更新例を説明するための図である。
【図１６】実施例１におけるリンクテーブル更新処理を示すフローチャートである。
【図１７−１】実施例１におけるルーティングテーブル更新処理を示すフローチャートである。
【図１７−２】実施例１におけるルーティングテーブル更新処理を示すフローチャートである。
【図１８】実施例１における評価値算出処理を示すフローチャートである。
【図１９】実施例１における送信処理を示すフローチャートである。
【図２０】実施例１の効果を説明するための図である。
【図２１】実施例２におけるルーティングテーブルを説明するための図である。
【図２２】実施例２における送信処理を示すフローチャートである。
【図２３】実施例３におけるノードの構成を示すブロック図である。
【図２４】実施例３におけるデータ管理テーブルを説明するための図である。
【図２５】実施例３におけるルーティングテーブルを説明するための図である。
【図２６】実施例３におけるノードの処理手順（全体）を説明するための図である。
【図２７】実施例３におけるデータ管理テーブル更新処理を示すフローチャートである。
【符号の説明】
【０１８４】
１０  ノード
１１  通信部
２０  記憶部
２１  ルーティングテーブル部
２２  リンクテーブル部
２３  周期テーブル部
２４  ワークテーブル部
２５  データ管理テーブル部
３０  制御部
３１  経路情報受信部
３２  リンクテーブル更新部
３３  ルーティングテーブル更新部
３４  経路情報送信部
３５  パケット送受信部
【図１】
0004941397.tif 000002
【図２】
0004941397.tif 000003
【図３】
0004941397.tif 000004
【図４】
0004941397.tif 000005
【図５】
0004941397.tif 000006
【図６】
0004941397.tif 000007
【図７】
0004941397.tif 000008
【図８】
0004941397.tif 000009
【図９】
0004941397.tif 000010
【図１０】
0004941397.tif 000011
【図１１】
0004941397.tif 000012
【図１２】
0004941397.tif 000013
【図１３】
0004941397.tif 000014
【図１４】
0004941397.tif 000015
【図１５】
0004941397.tif 000016
【図１６】
0004941397.tif 000017
【図１７−１】
0004941397.tif 000018
【図１７−２】
0004941397.tif 000019
【図１８】
0004941397.tif 000020
【図１９】
0004941397.tif 000021
【図２０】
0004941397.tif 000022
【図２１】
0004941397.tif 000023
【図２２】
0004941397.tif 000024
【図２３】
0004941397.tif 000025
【図２４】
0004941397.tif 000026
【図２５】
0004941397.tif 000027
【図２６】
0004941397.tif 000028
【図２７】
0004941397.tif 000029