(57)【要約】  ノード（１００）は、データを受信した場合に、経路情報テーブル（１４０ｂ）を基にしてデータを送信する。ノード（１００）は、第１候補の隣接ノードに対するデータ送信に失敗した場合には、フラグ情報が「ｔｒｕｅ」となり、かつ、データを未送信の第２候補の隣接ノードが存在するか否かを判定する。ノード（１００）は、フラグ情報が「ｔｒｕｅ」となり、かつ、データを未送信の第２候補の隣接ノードが存在しない場合には、データの再送を中止する。
2013065131.tif 000002
【特許請求の範囲】
【請求項１】
アドホックネットワークを構成するノードによる送信制御方法であって、
記憶部に記憶している、データの宛先と、隣接ノードと、該隣接ノードから前記宛先に至る経路が有効であるか否かを示すフラグ情報とを対応付けた経路情報テーブルを参照して選択した、前記データの宛先に対する第１候補の隣接ノードにデータを送信し、
データ送信に失敗した場合には、前記経路情報テーブルを参照して、前記データの宛先に対する前記第１候補の隣接ノード以外の第２候補の隣接ノードのフラグ情報に基づいて、該第２候補の隣接ノードから前記宛先に至る経路が有効であるか否かを判定し、
前記判定の結果、前記第２候補の隣接ノードから前記宛先に至る経路が有効となる第２候補の隣接ノードが存在する場合には、該第２候補の隣接ノードにデータを再送し、
前記第２候補の隣接ノードから前記宛先に至る経路が有効となる第２候補の隣接ノードが存在しない場合には、データの再送を中止する
各処理を実行することを特徴とする送信制御方法。
【請求項２】
前記データを再送する処理は、前記第２候補の隣接ノードから前記宛先に至る経路が有効となる第２候補の隣接ノードにデータを送信しても、データ送信に失敗した場合には、データの送信元が自装置であるか否かを判定し、
データの送信元が自装置でない場合には、送信元のノードにデータを送信し、データの送信元が自装置の場合には、データを破棄することを特徴とする請求項１に記載の送信制御方法。
【請求項３】
データの宛先と、隣接ノードと、該隣接ノードから前記宛先に至る経路が有効であるか否かを示すフラグ情報とを対応付けた経路情報テーブルを記憶する記憶部と、
前記経路情報テーブルを参照して、前記データの宛先に対する第１候補の隣接ノードにデータを送信し、データ送信に失敗した場合には、前記経路情報テーブルを参照して、前記データの宛先に対する前記第１候補の隣接ノード以外の第２候補の隣接ノードのフラグ情報に基づいて、該第２候補の隣接ノードから前記宛先に至る経路が有効であるか否かを判定し、
判定の結果、前記第２候補の隣接ノードから前記宛先に至る経路が有効となる第２候補の隣接ノードが存在する場合には、該第２候補の隣接ノードにデータを再送し、
前記第２候補の隣接ノードから前記宛先に至る経路が有効となる第２候補の隣接ノードが存在しない場合には、データの再送を中止する送信制御部と、
を有することを特徴とする送信制御装置。
【請求項４】
前記送信制御部は、前記第２候補の隣接ノードから前記宛先に至る経路が有効となる第２候補の隣接ノードにデータを送信しても、データ送信に失敗した場合には、データの送信元が自装置であるか否かを判定し、
データの送信元が自装置でない場合には、送信元のノードにデータを送信し、データの送信元が自装置の場合には、データを破棄することを特徴とする請求項３に記載の送信制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、送信制御方法等に関する。
【背景技術】
【０００２】
従来のアドホックネットワークの構成例について説明する。図１３は、従来のアドホックネットワークの構成例を示す図である。図１３に示すように、このアドホックネットワークは、ネットワークサーバ１、ＧＷ（Gateway）５、ノード１０ａ〜１０ｅ、１０Ｙを有する。ネットワークサーバ１およびＧＷ５は、ネットワーク５０を介して相互に接続される。また、ノード１０ａ〜１０ｅ、１０Ｙは、隣接ノードとの間で無線通信を実行する。以下の説明において、ノード１０ａ〜１０ｅ、１０Ｙをまとめてノード１０と適宜表記する。【０００３】
ノード１０は、隣接ノードとの間でハローメッセージの送受信を定期的に行うことで、各経路の通信品質を計算する。このハローメッセージには、経路情報やノード間リンクの通信品質情報等が含まれる。ノード１０は、通信品質の計算結果に基づいて、最終宛先までの複数の経路の構築および最適な経路の確定を行う。【０００４】
また、ノード１０は、構築した経路に関して、実際のデータ通信の実績と隣接ノードとの定期的なハローメッセージの送受信により、各経路の通信品質を再計算する。ノード１０は、再計算した結果を基にして、最適な経路を学習し、通信経路を適宜変更する。【０００５】
図１４〜図１６は、従来のノードが経路を構築する例を説明する図である。ここでは、ノード１０ＹからＧＷ５までの経路を構築する例について説明する。ノード１０は、経路情報テーブルと、リンクテーブルを保持しているものとする。経路情報は、最終宛先に至る経路のうち、通信品質のよい経路を記憶するものである。リンクテーブルは、ノード１０と無線通信可能なノードの情報を記憶するものである。【０００６】
図１４について説明する。ＧＷ５は、自装置のハローメッセージの送信タイミングになると、自装置が保持する経路情報テーブルを基に、ハローメッセージを生成し、ブロードキャストする。ノード１０ａ〜１０ｃは、ＧＷ５からのハローメッセージを受信する。【０００７】
ノード１０ａ〜１０ｃは、ハローメッセージを受信すると、自装置が保持する経路情報テーブルの宛先にＧＷ５を登録する。また、ノード１０ａ〜１０ｃは、ハローメッセージに含まれる経路情報、通信品質情報等によって通信品質を計算し、計算結果を経路情報テーブルやリンクテーブルに登録する。なお、ノード１０ａ〜１０ｃは、ＧＷ５から受信したハローメッセージを再度ブロードキャストしないものとする。【０００８】
図１５について説明する。ノード１０ｂは、自装置のハローメッセージの送信タイミングになると、自装置の保持する経路情報テーブルを基に、ハローメッセージを生成し、ブロードキャストする。ノード１０ａ、１０ｃ、１０ｄ、１０ｅ、１０Ｙは、ノード１０ｂからのハローメッセージを受信する。また、ＧＷ５も、ノード１０ｂからのハローメッセージを受信する。例えば、ノード１０Ｙは、ハローメッセージを受信すると、自装置が保持する経路情報テーブルに、ＧＷ５宛の経路は、ノード１０ｂ経由であることを登録する。また、ノード１０Ｙは、ハローメッセージに含まれる経路情報、通信品質情報等によって通信品質を計算し、計算結果を経路情報テーブルやリンクテーブルに登録する。【０００９】
図１６について説明する。ノード１０ｂと同様にして、ノード１０ｄ、１０ｅは、自装置のハローメッセージの送信タイミングになると、ハローメッセージをブロードキャストし、ノード１０Ｙは、ハローパケットを受信する。このため、ノード１０Ｙは、ＧＷ５宛の通信経路の候補６ａ〜６ｃを構築することができる。ノード１０Ｙは、各通信経路の候補６ａ〜６ｃの経路品質等により、ＧＷ５までの最適経路を確定する。【００１０】
上述したアドホックネットワークでは、通常、複数の経路が構築されるため、ある経路がノード異常により不通になった場合にでも、別の経路に切り替えることで、最終宛先までデータを届けることが可能である。【００１１】
例えば、図１６において、ノード１０Ｙが、ＧＷ５に至る最適な経路として通信経路６ｂを利用している場合に、ノード１０ｂに異常が発生したものとする。この場合には、ノード１０Ｙは、通信経路６ａまたは６ｃに切り替えることで、ＧＷ５までデータを届けることができる。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００７−１８１０５６号公報
【特許文献２】特開２００６−１７４１１８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
しかしながら、上述した従来技術では、輻輳が発生するという問題があった。【００１４】
輻輳が発生する理由について説明する。従来のアドホックネットワークでは、ノード異常等により、最終宛先までの経路が不通になった場合には、経路を切り替えてデータを再送する。ここで、各ノード１０は、最終宛先に至る隣接ノードの情報のみを保持している。このため、ネットワーク全体で見ると経路を切り替えても最終宛先に到達しないことがわかっても、ノード単独では判断ができず、各ノードが経路を切り替えてデータの再送を繰り返してしまう。【００１５】
図１７〜図１９は、輻輳が発生する一例を説明するための図である。図１７〜図１９に示す例では、ハローメッセージの送受信により、経路情報テーブルに複数の経路が登録されているものとする。また、一時的な環境の変化により、ＧＷ５とノード１０ｂとのリンクが切断されているものとする。【００１６】
図１７について説明する。ここでは、ノード１０Ｙが、ＧＷ５を最終宛先とするデータを送信する場合について説明する。ノード１０Ｙは、経路情報テーブルを参照して最適な経路を選択し、例えば、隣接ノード１０ｂにデータを送信する。ノード１０ｂは、ノード１０Ｙからデータを受信する。ノード１０ｂは、経路情報テーブルを参照して最適な経路を選択し、ＧＷ５にデータを送信する。しかし、ＧＷ５とノード１０ｂとのリンクが切断されており、ノード１０ｂはデータ送信に失敗する。【００１７】
図１８について説明する。ノード１０ｂは、経路情報テーブルを参照して、経路を切り替え、ノード１０ｄにデータを送信する。ノード１０ｄは、ノード１０ｂからデータを受信する。ノード１０ｄは、経路情報テーブルを参照して最適な経路を選択し、ノード１０ａにデータを送信する。ノード１０ａは、ノード１０ｄからデータを受信する。ノード１０ａは、経路情報テーブルを参照して最適な経路を選択し、ノード１０ｂにデータを送信する。ノード１０ｂは、ノード１０ａからデータを受信する。【００１８】
図１９について説明する。ノード１０ｂは、経路情報テーブルを参照し、ＧＷ５に至る最適な経路のうち、未選択の経路を選択する。例えば、ノード１０ｂは、ノード１０ｅにデータを送信する。ノード１０ｅは、ノード１０ｂからデータを受信する。ノード１０ｅは、経路情報テーブルを参照して最適な経路を選択し、ノード１０ｄにデータを送信する。ノード１０ｄはノード１０ｅからデータを受信する。ノード１０ｄは、経路情報テーブルを参照し、ＧＷ５に至る最適な経路のうち、未選択の経路を選択する。ノード１０ｄは、例えば、ノード１０ｂにデータを送信する。【００１９】
図１７〜図１９に示したように、最終宛先のリンクが切断されている場合には、経路を切り替えてデータを送信しても、最終宛先にデータが届くことはなく、経路切り替えが頻繁に発生することにより、輻輳が発生する。この問題は、ネットワーク全体のノードの数にかかわらず、小規模ネットワークでも大規模ネットワークでも発生する問題である。【００２０】
また、図１７〜図１９では、データの送信元がノード１０Ｙとなる場合について説明した。このため、ノード１０Ｙ以外のノードが、ＧＷ５宛のデータを送信した場合には、更に多くのデータが、ネットワーク上で送受信されることになる。【００２１】
なお、ノード１０が、自装置から最終宛先までの経路情報を保持し、データの送信を行うか否かを判定することも考えられる。しかし、この場合には、経路情報テーブルのデータ量が膨大となり、大規模ネットワークで運用することは難しい。【００２２】
本発明は、上記に鑑みてなされたものであって、輻輳の発生を防止することができる送信制御方法および送信制御装置を提供することを目的とする。
【課題を解決するための手段】
【００２３】
開示の送信制御方法では、コンピュータが下記の処理を実行する。コンピュータは、記憶装置の経路情報テーブルを基にして、宛先に対する第１候補の隣接ノードにデータを送信する。コンピュータは、データ送信に失敗した場合には、第１候補の隣接ノード以外の宛先に対する第２候補の隣接ノードのフラグ情報に基づいて、該第２候補の隣接ノードから宛先に至る経路が有効であるか否かを判定する。コンピュータは、第２候補の隣接ノードから宛先に至る経路が有効となる第２候補の隣接ノードが存在する場合には、該第２候補の隣接ノードにデータを再送する。コンピュータは、第２候補の隣接ノードから宛先に至る経路が有効となる第２候補の隣接ノードが存在しない場合には、データの再送を中止する。
【発明の効果】
【００２４】
開示の送信制御方法によれば、輻輳の発生を防止することができるという効果を奏する。
【図面の簡単な説明】
【００２５】
【図１】図１は、本実施例にかかるアドホックネットワークの構成を示す図である。
【図２】図２は、本実施例にかかるノードの構成を示す機能ブロック図である。
【図３】図３は、経路情報テーブルのデータ構造の一例を示す図である。
【図４】図４は、経路探索データのデータ構造の一例を示す図である。
【図５】図５は、データのデータ構造の一例を示す図である。
【図６】図６は、本実施例にかかるデータ送信の様子を説明するための図（１）である。
【図７】図７は、ノード１００ａの経路情報テーブルのデータ構造の一例を示す図である。
【図８】図８は、本実施例にかかるデータ送信の様子を説明するための図（２）である。
【図９】図９は、ノード１００ｂの経路情報テーブルのデータ構造の一例を示す図である。
【図１０】図１０は、ノード１００ｆの経路情報テーブルのデータ構造の一例を示す図である。
【図１１】図１１は、本実施例にかかるノードの処理手順の一例を示す図である。
【図１２】図１２は、実施例にかかるノードを構成するコンピュータのハードウェア構成を示す図である。
【図１３】図１３は、従来のアドホックネットワークの構成例を示す図である。
【図１４】図１４は、従来のノードが経路を構築する例を説明する図（１）である。
【図１５】図１５は、従来のノードが経路を構築する例を説明する図（２）である。
【図１６】図１６は、従来のノードが経路を構築する例を説明する図（３）である。
【図１７】図１７は、輻輳が発生する一例を説明するための図（１）である。
【図１８】図１８は、輻輳が発生する一例を説明するための図（２）である。
【図１９】図１９は、輻輳が発生する一例を説明するための図（３）である。
【発明を実施するための形態】
【００２６】
以下に、本発明にかかる送信制御方法および送信制御装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００２７】
本実施例にかかるアドホックネットワークの構成について説明する。本実施例では一例として、プロアクティブ型のルーティングプロトコルを用いたアドホックネットワークとする。このアドホックネットワークでは、各ノードが、所定の宛先にデータを到達させるために送信すべき隣接ノードの情報を、経路情報テーブルを予め保持している。所定の宛先は、例えばＧＷ等に対応する。【００２８】
図１は、本実施例にかかるアドホックネットワークの構成を示す図である。図１に示すように、このアドホックネットワークは、ネットワークサーバ１、ＧＷ５、ノード１００ａ〜１００ｆを有する。ネットワークサーバ１およびＧＷ５は、ネットワーク５０を介して相互に接続される。また、ノード１００ａ〜１００ｆは、隣接ノードとの間で無線通信を実行する。以下の説明において、ノード１００ａ〜１００ｆをまとめてノード１００と適宜表記する。ノード１００は、送信制御装置の一例である。【００２９】
アドホックネットワークでは、各種のデータをノード間でやり取りする。本実施例では、以下のようにデータを区別して表記する。経路情報テーブルを更新するためにやり取りするデータを、ハローメッセージと表記する。冗長経路を探索するためのデータを、経路探索データと表記する。経路探索データの応答を、応答データと表記する。各ノードがネットワークサーバ１等に送信するデータを、単にデータと表記する。【００３０】
ネットワークサーバ１は、ＧＷ５を介して、ノード１００からデータを受信し、各種のサービスを実行する装置である。ＧＷ５は、ノード１００とネットワークサーバ１との間のデータ中継などを行う装置である。【００３１】
各ノード１００はそれぞれ、経路情報テーブルに基づいて、データを最適な隣接ノードに送信することで、データを宛先に転送する。図２は、本実施例にかかるノードの構成を示す機能ブロック図である。図２に示すように、ノード１００は、無線インターフェース部１１０、記憶部１４０、制御部１５０を有する。【００３２】
無線インターフェース部１１０は、アンテナを有し、他のノードとの間でデータを送受信する装置である。後述する制御部１５０は、無線インターフェース部１１０を介して、他のノードとデータをやり取りする。【００３３】
記憶部１４０は、リンクテーブル１４０ａ、経路情報テーブル１４０ｂを記憶する記憶装置である。記憶部１４０は、例えば、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子、またはハードディスク、光ディスクなどの記憶装置に対応する。【００３４】
リンクテーブル１４０ａは、ノード１００と無線通信可能なノードの情報を記憶する。例えば、リンクテーブル１４０ａは、隣接ノードを識別する情報とアドレス情報とを対応付ける。【００３５】
経路情報テーブル１４０ｂは、データの宛先と、隣接ノードと、該隣接ノードから宛先に至る経路が有効であるか否かを示すフラグ情報とを対応付けて記憶する。図３は、経路情報テーブルのデータ構造の一例を示す図である。図３に示すように、この経路情報テーブル１４０ｂは、ＧＤ（Global  Destination）、ＬＤ（Local  Destination）、フラグ情報を有する。このうち、ＧＤはデータの宛先に対応する。ＬＤは隣接ノードに対応する。フラグ情報には、経路が有効か否かにより値が設定される。具体的には、該当する経路が有効である場合には、フラグ情報に「ｔｒｕｅ」が設定される。該当する経路が有効ではない場合には、フラグ情報に「ｆａｌｓｅ」が設定される。【００３６】
経路情報テーブル１４０ｂは、あるＧＤに対して複数の経路が設定されている。複数の経路のうち、最も優先度が高い経路を、第１候補の経路と表記する。第１候補の経路に対応するＬＤを、第１候補の隣接ノードと表記する。なお、第１候補の経路に対応するフラグ情報には値が設定されない。【００３７】
第１候補の隣接ノードは、１段目に登録される。図３に示す例では、ＧＤ「ＧＷ５」に対応する第１候補の隣接ノードは「ＧＷ５」となる。【００３８】
第１候補の経路以外の経路を第２候補の経路と表記する。第２候補の経路は複数になる場合もある。第２候補の経路に対するＬＤを、第２候補の隣接ノードと表記する。【００３９】
図３に示す例では、ＧＤ「ＧＷ５」に対応する第２候補の隣接ノードは「ノード１００ｅ」となる。また、この第２候補の経路に対応するフラグ情報が「ｔｕｒｅ」であるため、この第２候補の経路が有効であることを示す。【００４０】
制御部１５０は、ハローメッセージ処理部１５０ａ、冗長経路探索部１５０ｂ、送信制御部１５０ｃを有する。制御部１５０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）や、ＦＰＧＡ（Field  Programmable  Gate  Array）などの集積装置に対応する。また、制御部１５０は、例えば、ＣＰＵやＭＰＵ（Micro  Processing  Unit）等の電子回路に対応する。【００４１】
ハローメッセージ処理部１５０ａは、自装置の送信タイミングになると、リンクテーブル１４０ａ、経路情報テーブル１４０ｂを基にして、ハローメッセージを生成し、ハローメッセージをブロードキャストする。例えば、ハローメッセージには、経路情報テーブルのＧＤの情報、ハローメッセージの送信元の情報、自装置の隣接ノードの情報、リンクの通信品質の情報等が含まれる。【００４２】
また、ハローメッセージ処理部１５０ａは、隣接ノードからハローメッセージを受信すると、受信したハローメッセージを基にして、経路情報テーブル１４０ｂを更新する。ハローメッセージ処理部１５０ａが、ハローメッセージを送受信して経路情報テーブルを更新する処理は、如何なる従来技術を用いてもよい。【００４３】
冗長経路探索部１５０ｂは、経路探索データを第２候補の隣接ノードに送信し、送信結果に基づいて、経路情報テーブル１４０ｂのフラグ情報を「ｔｕｒｅ」または「ｆａｌｓｅ」に設定する。【００４４】
図４は、経路探索データのデータ構造の一例を示す図である。図４に示すように、経路探索データは、ＧＳ（Global  Source）、ＧＤ（Global  Destination）、ＬＳ（Local  Source）、ＬＤ（Local  Destination）、フレームＩＤ（Identification）等を有する。ＧＳには、経路探索データの送信元のノードが設定される。ＧＤには、経路探索データの最終宛先となるＧＷなどが設定される。ＬＳには、経路探索データの転送元となる隣接ノードが設定される。ＬＤには、経路探索データの転送先となる隣接ノードが設定される。【００４５】
冗長経路探索部１５０ｂが、経路探索データを送信する場合の処理について説明する。冗長経路探索部１５０ｂは、ＧＳに自装置の情報、ＧＤに「ＧＷ５」、ＬＳに自装置の情報、ＬＤに第１候補の隣接ノードを設定し、フレームＩＤにユニークな番号を割り振ることで、経路検索データを生成する。冗長経路探索部１５０ｂは、生成した経路探索データを、ＬＤに設定した第１候補の隣接ノードに送信する。その後、冗長経路探索部１５０ｂは、ＬＤに第１候補以外の隣接ノードを順次設定し、第１候補で使用した経路を使わない経路があるか否かを判断する。なお、ここで示す冗長経路探索の方法は、一例であり、他の従来技術を用いても構わない。【００４６】
冗長経路探索部１５０ｂが、自装置の送信した経路探索データの応答データを受信した場合の処理について説明する。応答データには、経路探索データを送信した第２候補の隣接ノードを経由する経路が有効であるか否かの情報が含まれる。冗長経路探索部１５０ｂは、有効である旨の情報が応答データに含まれている場合には、該当する第２候補の隣接ノードの有効フラグを「ｔｒｕｅ」に設定する。これに対して、冗長経路探索部１５０ｂは、有効でない旨の情報が応答データに含まれている場合には、該当する第２候補の隣接ノードの有効フラグを「ｆａｌｓｅ」に設定する。【００４７】
冗長経路探索部１５０ｂが、他のノードの送信した経路探索データを受信した場合の処理について説明する。冗長経路探索部１５０ｂは、経路探索データを受信した場合には、リンクテーブル１４０ａまたは経路情報テーブル１４０ｂを参照して、隣接ノードに経路探索データを転送する。冗長経路探索部１５０ｂは、経路探索データを転送する場合には、経路探索データのＬＳを自装置の情報に設定し、ＬＤを転送先の隣接ノードに設定する。【００４８】
冗長経路探索部１５０ｂは、経路探索データのＧＳと、該ＧＳを有する経路探索データを送信済みの隣接ノードとを対応付けて記憶しておく。冗長経路探索部１５０ｂは、同一のＧＳを有する経路探索データについて、送信済みの隣接ノードに送信しないように経路探索データを送信制御する。冗長経路探索部１５０ｂは、経路探索データの送信先となる隣接ノードが存在しない場合には、経路検索データのＧＳを宛先として、経路が有効でない旨の応答データを送信する。【００４９】
なお、ＧＷ５は、経路探索データを受信した場合には、経路検索データのＧＳを宛先として、経路が有効である旨の応答データを送信する。【００５０】
送信制御部１５０ｃは、データを受信した場合に、データの宛先と経路情報テーブル１４０ｂとを基にして、隣接ノードにデータを送信する。図５は、データのデータ構造の一例を示す図である。図５に示すように、このデータは、ＧＳ、ＧＤ、ＬＳ、ＬＤ、フレームＩＤ、ユーザデータ等を含む。【００５１】
送信制御部１５０ｃが、他のノードからデータを受信した場合の処理について説明する。送信制御部１５０ｃは、データを受信した場合に、データのＧＤと、経路情報テーブル１４０ｂとを比較して、ＧＤに対する第１候補の隣接ノードにデータを送信する。送信制御部１５０ｃは、データを送信する際に、データのＬＳを自装置の情報に設定し、ＬＤを転送先の隣接ノードに設定する。【００５２】
送信制御部１５０ｃが、第１候補の隣接データに対するデータ送信に失敗した場合の処理について説明する。送信制御部１５０ｃは、経路情報テーブル１４０ｂを参照し、フラグ情報が「ｔｒｕｅ」となり、かつ、データを未送信の第２候補の隣接ノードを選択する。送信制御部１５０ｃは、選択した第２候補の隣接ノードにデータを送信する。送信制御部１５０ｃは、データを送信する際に、データのＬＳを自装置の情報に設定し、ＬＤを転送先の隣接ノードに設定する。【００５３】
送信制御部１５０ｃは、第２候補の隣接ノードに対するデータ送信に失敗する度に、上記処理を繰り返し実行する。【００５４】
送信制御部１５０ｃが、送信対象となる第２候補の隣接ノードが存在しなくなった場合の処理について説明する。送信制御部１５０ｃは、データのＧＳが自装置である場合には、データを破棄する。これに対して、送信制御部１５０ｃは、データのＧＳが自装置ではない場合には、データのＧＳを宛先として、データを送信する。または、送信制御部１５０ｃは、かかるデータを受信したときのＬＳに対して、データを戻してもよい。【００５５】
次に、上述した送信制御部１５０ｃによるデータの送信の様子を、図６を用いて説明する。図６は、本実施例にかかるデータ送信の様子を説明するための図（１）である。図６に示すアドホックネットワークでは、ノード１００ｂとＧＷ５との通信か切断されているものとする。また、ノード１００ｅとノード１００ｆとの通信が切断されているものとする。【００５６】
まず、ノード１００ｂに着目する。ノード１００ｂの経路情報テーブル１４０ｂは、図３に示す情報が登録されているものとする。【００５７】
ノード１００ｂは、ＧＤに「ＧＷ５」が設定されたデータを受信すると、経路情報テーブル１４０ｂを基にして、第１候補の隣接ノード「ＧＷ５」にデータを送信する。ノード１００ｂとＧＷ５との通信が切断されている場合には、ノード１００ｂは、データ送信に失敗する。【００５８】
ノード１００ｂは、データ送信に失敗すると、フラグ情報が「ｔｒｕｅ」となり、かつ、データを未送信の第２候補の隣接ノードを選択する。図３に示す経路情報テーブル１４０ｂの例では、ノード１００ｂは、隣接ノード１００ｅを選択する。【００５９】
ノード１００ｂは、データをノード１００ｅに送信する。その後、データは、ノード１００ｃを介して、ＧＷ５に到達する。【００６０】
続いて、ノード１００ａに着目する。ノード１００ａの経路情報テーブル１４０ｂには、図７に示す情報が登録されているものとする。図７は、ノード１００ａの経路情報テーブルのデータ構造の一例を示す図である。図７に示す例では、第１候補の隣接ノードがノード１００ｆであり、第２候補の隣接ノードがノード１００ｄである。ここでは、データの送信元を、ノード１００ａとする。【００６１】
ノード１００ａは、ＧＤに「ＧＷ５」、ＧＳに「１００ａ」を設定し、経路情報テーブルを基にして、第１候補の隣接ノード「１００ｆ」にデータを送信する。ノード１００ｅとノード１００ｆとの通信が切断されている場合には、データ送信に失敗し、ノード１００ａは、ノード１００ｆからデータを受信する。【００６２】
ノード１００ａは、データ送信に失敗すると、フラグ情報が「ｔｒｕｅ」となり、かつ、データを未送信の第２候補の隣接ノードを選択する。しかし、図７の経路情報テーブル１４０ｂには、フラグ情報が「ｔｒｕｅ」となり、かつ、データを未送信の第２候補の隣接ノードとなる第２候補の隣接ノードが存在しない。また、データの送信元がノード１００ａであるため、ノード１００ａは、データを破棄する。【００６３】
次に、図８に示すアドホックネットワークを用いて、データの送信の様子について説明する。図８は、本実施例にかかるデータ送信の様子を説明するための図（２）である。図８に示すアドホックネットワークでは、ノード１００ｂとＧＷ５との通信が切断されているものとする。ここでは、ノード１００ｂとノード１００ｆに着目する。【００６４】
ノード１００ｂの経路情報テーブル１４０ｂには、図９に示す情報が登録されているものとする。ノード１００ｆの経路情報テーブル１４０ｂには、図１０に示す情報が登録されているものとする。【００６５】
図９は、ノード１００ｂの経路情報テーブルのデータ構造の一例を示す図である。図９に示す例では、第１候補の隣接ノードが「ＧＷ５」である。また、第２候補の隣接ノードがノード１００ａ、１００ｄ、１００ｆ、１００ｅ、１００ｃである。【００６６】
図１０は、ノード１００ｆの経路情報テーブルのデータ構造の一例を示す図である。図１０に示す例では、第１候補の隣接ノードが「１００ｂ」である。また、第２候補の隣接ノードがノード１００ａ、１００ｄ、１００ｃ、１００ｅである。【００６７】
図８の説明では、データの送信元をノード１００ｆとする。ノード１００ｆは、ＧＤに「ＧＷ５」、ＧＳに「１００ｆ」を設定し、経路情報テーブル１４０ｂを基にして、第１候補の隣接ノード「１００ｂ」にデータを送信する。【００６８】
ノード１００ｂは、ノード１００ｆからデータを受信する。ノード１００ｂは、ＧＤに「ＧＷ５」が設定されたデータを受信すると、経路情報テーブル１４０ｂを基にして、第１候補の隣接ノード「ＧＷ５」にデータを送信する。ノード１００ｂとＧＷ５との通信が切断されている場合には、ノード１００ｂは、データ送信に失敗する。【００６９】
ノード１００ｂは、データ送信に失敗すると、フラグ情報が「ｔｒｕｅ」となり、かつ、データを未送信の第２候補の隣接ノードを選択する。しかし、図９の経路情報テーブル１４０ｂには、フラグ情報が「ｔｒｕｅ」となり、かつ、データを未送信の第２候補の隣接ノードとなる第２候補の隣接ノードが存在しない。また、データの送信元がノード１００ｆであるため、ノード１００ｂは、データをノード１００ｆに送信する。【００７０】
ノード１００ｆは、ノード１００ｂからデータを受信する。ノード１００ｆは、データを第１候補の隣接ノードに送信済みである。このため、ノード１００ｆは、フラグ情報が「ｔｒｕｅ」となり、かつ、データを未送信の第２候補の隣接ノードを選択する。しかし、図１０の経路情報テーブル１４０ｂには、フラグ情報が「ｔｒｕｅ」となり、かつ、データを未送信の第２候補の隣接ノードとなる第２候補の隣接ノードが存在しない。また、データの送信元がノード１００ｆであるため、ノード１００ｆは、データを破棄する。【００７１】
次に、本実施例にかかるノードの処理手順について説明する。図１１は、本実施例にかかるノードの処理手順の一例を示す図である。図１１に示す処理は、例えば、データを受信したことを契機にして実行される。【００７２】
図１１に示すように、ノード１００は、データを受信し（ステップＳ１０１）、第１候補の隣接ノードにデータを送信済みであるか否かを判定する（ステップＳ１０２）。ノード１００は、第１候補の隣接ノードにデータを送信済みではない場合に（ステップＳ１０２，Ｎｏ）、第１候補の隣接ノードにデータを送信する（ステップＳ１０３）。【００７３】
ノード１００は、データ送信に成功した場合には（ステップＳ１０４，Ｙｅｓ）、処理を終了する。一方、ノード１００は、データ送信に失敗した場合には（ステップＳ１０４，Ｎｏ）、ステップＳ１０１に移行する。【００７４】
ステップＳ１０２において、第１候補の隣接ノードにデータを送信済みの場合には（ステップＳ１０２，Ｙｅｓ）、フラグ情報が「ｔｕｒｅ」となる未送信の第２候補の隣接ノードが存在するか否かを判定する（ステップＳ１０５）。【００７５】
ノード１００は、フラグ情報が「ｔｕｒｅ」となる未送信の第２候補の隣接ノードが存在する場合には（ステップＳ１０５，Ｙｅｓ）、第２候補の隣接ノードにデータを送信し（ステップＳ１０６）、ステップＳ１０４に移行する。【００７６】
一方、フラグ情報が「ｔｕｒｅ」となる未送信の第２候補の隣接ノードが存在しない場合には（ステップＳ１０５，Ｎｏ）、データの送信元が自装置であるか否かを判定する（ステップＳ１０７）。【００７７】
ノード１００は、データの送信元が自装置の場合には（ステップＳ１０７，Ｙｅｓ）、データを破棄する（ステップＳ１０８）。ノード１００は、データの送信元が自装置ではない場合には（ステップＳ１０７，Ｎｏ）、データの送信元にデータを送信する（ステップＳ１０９）。【００７８】
次に、本実施例にかかるノード１００の効果について説明する。本実施例にかかるノード１００は、第１候補の隣接ノードに対するデータ送信に失敗した場合には、フラグ情報が「ｔｒｕｅ」となり、かつ、データを未送信の第２候補の隣接ノードを選択してデータを再送する。このため、冗長経路が有効ではない経路にデータを送信することを防止することができ、アドホックネットワークの輻輳を防止することができる。【００７９】
また、ノード１００は、フラグ情報が「ｔｒｕｅ」となり、かつ、データを未送信の第２候補の隣接ノードとなる第２候補の隣接ノードが存在しない場合には、データの送信元を参照する。ノード１００は、データの送信元が自装置の場合には、データを破棄する。ノード１００は、データの送信元が他のノードである場合には、データの送信元にデータを送信する。このため、データを繰り返し再送することを防止でき、アドホックネットワークの輻輳を防止することができる。【００８０】
ところで、本実施例では一例として、ノード１００が無線通信により相互にデータ通信を実行する場合について説明したがこれに限定されるものではない。例えば、ノード１００を相互に有線接続し、相互にデータ通信を行っても良い。【００８１】
また、ノード１００に環境情報を取得するセンサを搭載してもよい。環境情報は、例えば、温度、湿度、降水量等の情報に対応する。各ノード１００は、自装置が測定した環境情報を、ネットワークサーバ１に送信しても良い。【００８２】
上記実施例に示したノード１００の機能は、既知のＰＣ（Personal  Computer）またはＰＤＡ（Personal  Digital  Assistants）などの情報処理装置に、ノードに対応する各機能を搭載することによって実現することもできる。図１２は、実施例にかかるノードを構成するコンピュータのハードウェア構成を示す図である。【００８３】
図１２に示すように、このコンピュータ２００は、各種演算処理を実行するＣＰＵ２０１を有する。また、コンピュータ２００は、記憶媒体からプログラム等を読み取る読み取り装置２０４を有する。また、コンピュータ２００は、他の装置と無線により接続する無線通信装置２０６と、各種情報を一時記憶するＲＡＭ２０７と、ハードディスク装置２０８とを有する。各装置２０１〜２０８は、バス２０９に接続される。【００８４】
ハードディスク装置２０８には、送信制御プログラムなどの各腫のプログラムが記憶される。【００８５】
ＣＰＵ２０１は、ハードディスク装置２０８に記憶された各プログラムを読み出して、ＲＡＭ２０７に展開し、各種の処理を行う。また、これらのプログラムは、コンピュータを、例えば、図２の送信制御部１５０ｃとして機能させることができる。【００８６】
なお、上記のプログラムは、必ずしもハードディスク装置２０８に格納されている必要はない。例えば、ＣＤ−ＲＯＭ等の記憶媒体に記憶されたプログラムを、コンピュータ２００が読み出して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等に接続された記憶装置に、各プログラムを記憶させておいてもよい。この場合、コンピュータ２００がこれらから各プログラムを読み出して実行するようにしてもよい。
【符号の説明】
【００８７】
１      ネットワークサーバ
５      ＧＷ
５０    ネットワーク
１００ａ、１００ｂ、１００ｃ、１００ｄ、１００ｅ、１００ｆ  ノード
１１０    無線インターフェース部
１２０    入力部
１３０    表示部
１４０    記憶部
１５０    制御部
【図１】
2013065131.tif 000003
【図２】
2013065131.tif 000004
【図３】
2013065131.tif 000005
【図４】
2013065131.tif 000006
【図５】
2013065131.tif 000007
【図６】
2013065131.tif 000008
【図７】
2013065131.tif 000009
【図８】
2013065131.tif 000010
【図９】
2013065131.tif 000011
【図１０】
2013065131.tif 000012
【図１１】
2013065131.tif 000013
【図１２】
2013065131.tif 000014
【図１３】
2013065131.tif 000015
【図１４】
2013065131.tif 000016
【図１５】
2013065131.tif 000017
【図１６】
2013065131.tif 000018
【図１７】
2013065131.tif 000019
【図１８】
2013065131.tif 000020
【図１９】
2013065131.tif 000021
【国際調査報告】
2013065131.tif 000022
2013065131.tif 000023