(57)【特許請求の範囲】
【請求項１】
無線アドホックネットワークを形成するノード装置であって、
前記ノード装置から他のノード装置までの経路情報、または、前記無線アドホックネットワークに含まれる複数のノード装置それぞれについて、隣接ノード装置のアドレス情報を記憶する記憶部と、
前記記憶部に記憶される情報に基づいて、データ送信を実行させる他のノード装置を特定する特定部と、
前記特定部によって特定された他のノード装置に、データ送信を実行する装置であることを通知する通知部と、
自装置がデータ送信を実行する装置である旨の通知を受信すると、前記記憶部に記憶されるアドレス情報または経路情報に基づいて、自装置の隣接ノード装置にデータを送信する送信部と、を有し、
前記送信部は、
前記データ送信の後に、前記記憶部に記憶されるアドレス情報または経路情報に基づいて、自装置の隣接ノード装置にデータロスの問合せを行う問合せ情報を送信し、前記複数のノード装置のいずれかのノード装置からデータロスが発生した旨の情報を受信した場合、前記いずれかのノード装置へのデータ送信を行なわせる指示情報を、前記いずれかのノード装置の隣接ノード装置に対して送信する
ことを特徴とするノード装置。
【請求項２】
前記特定部は、前記記憶部が前記経路情報を記憶している場合、前記ノード装置の隣接ノード装置のうち複数の経路情報に該当する隣接ノード装置と、当該隣接ノード装置が該当する経路情報における最大ホップ数以外の他のノード装置とを、前記データ送信を実行する装置として特定することを特徴とする請求項１に記載のノード装置。
【請求項３】
前記特定部は、同じ経路情報に該当する前記ノード装置の隣接ノード装置が複数特定された場合、特定した隣接ノード装置のうち少なくとも１つの隣接ノード装置を、前記データ送信を実行する装置として特定することを特徴とする請求項２に記載のノード装置。
【請求項４】
前記特定部は、前記記憶部が前記隣接ノード装置のアドレス情報を記憶している場合、前記ノード装置の隣接ノード装置から他のノード装置に至る経路において、前記データ送信を実行する装置であると既に特定された他のノード装置とは隣接しない装置を隣接ノード装置としてより多く含む他のノード装置を、前記データ送信を実行する装置として特定することを特徴とする請求項１に記載のノード装置。
【請求項５】
前記通知部は、前記データを送信する経路が複数存在する場合には、前記経路における前記ノード装置の隣接ノード装置に対して、所定の遅延量経過後に、前記データを送信することを通知することを特徴とする請求項１から４のいずれか一つに記載のノード装置。
【請求項６】
無線アドホックネットワークを形成するノード装置が、
前記ノード装置から他のノード装置までの経路情報、または、前記無線アドホックネットワークに含まれる複数のノード装置それぞれについて、隣接ノード装置のアドレス情報を記憶する記憶部に記憶される情報に基づいて、データ送信を実行させる他のノード装置を特定し
前記特定した他のノード装置に、データ送信を実行する装置であることを通知し、
自装置がデータ送信を実行する装置である旨の通知を受信すると、前記記憶部に記憶されるアドレス情報または経路情報に基づいて、自装置の隣接ノード装置にデータを送信する、処理を実行し、
前記送信する処理は、
前記データ送信の後に、前記記憶部に記憶されるアドレス情報または経路情報に基づいて、自装置の隣接ノード装置にデータロスの問合せを行う問合せ情報を送信し、前記複数のノード装置のいずれかのノード装置からデータロスが発生した旨の情報を受信した場合、前記いずれかのノード装置へのデータ送信を行なわせる指示情報を、前記いずれかのノード装置の隣接ノード装置に対して送信する
ことを特徴とするノード装置の制御方法。
【請求項７】
無線アドホックネットワークを形成するノード装置に、
前記ノード装置から他のノード装置までの経路情報、または、前記無線アドホックネットワークに含まれる複数のノード装置それぞれについて、隣接ノード装置のアドレス情報を記憶する記憶部に記憶される情報に基づいて、データ送信を実行させる他のノード装置を特定し
前記特定した他のノード装置に、データ送信を実行する装置であることを通知し、
自装置がデータ送信を実行する装置である旨の通知を受信すると、前記記憶部に記憶されるアドレス情報または経路情報に基づいて、自装置の隣接ノード装置にデータを送信する、処理を実行させ、
前記送信する処理は、
前記データ送信の後に、前記記憶部に記憶されるアドレス情報または経路情報に基づいて、自装置の隣接ノード装置にデータロスの問合せを行う問合せ情報を送信し、前記複数のノード装置のいずれかのノード装置からデータロスが発生した旨の情報を受信した場合、前記いずれかのノード装置へのデータ送信を行なわせる指示情報を、前記いずれかのノード装置の隣接ノード装置に対して送信する
ことを特徴とするノード装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ノード装置、ノード装置の制御方法およびノード装置の制御プログラムに関する。
【背景技術】
【０００２】
近年、基地局やアクセスポイントなどのネットワークインフラを用いずに、端末同士が直接接続してネットワークを構築するアドホックネットワークが利用されている。
【０００３】
アドホックネットワークは、例えばコンピュータ、ＰＤＡ（Personal  Digital  Assistant）、携帯電話端末等の無線接続に用いられている技術を用いて多数の端末をアクセスポイントの介在なしに相互に接続する。また、アドホックネットワークは、通信ノードの追加や削除に伴うネットワークの構築を自立して実行するので、ネットワーク設定の労力を軽減でき、通信ノードが多い場合やネットワークの構成がある程度の頻度で変化する場合に有効である。
【０００４】
このようなアドホックネットワークを構築する各通信ノードのファームウェアの更新を行う場合、他のアドホックネットワークと接続するゲートウェイ装置は、各通信ノードに対してファームウェアを更新するパケットを送信する。このパケットを受信した各通信ユニットは、ファームウェアを更新するとともに、受信したパケットを隣接する通信ノードにブロードキャストで転送する。
【０００５】
このように、各通信ノードがブロードキャストでパケットを転送する場合、アドホックネットワークのトラフィックが増大して、パケットの衝突が多発し、正常にファームウェアを更新できない通信ノードが発生する。このため、通信ノードの位置情報に基づいてブロードキャストを実行することで、通信ノードの密集地域におけるパケット衝突を抑止する技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−７４７９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来の技術では、通信ノードの密集地域を特定することができるものの、ネットワークの輻輳状況を検出することができないので、多量のパケット送信によってネットワークが輻輳し、パケットの衝突を誘発する場合があるという問題があった。
【０００８】
開示の技術は、上記に鑑みてなされたものであって、パケットの衝突を抑止することができるノード装置、ノード装置の制御方法およびノード装置の制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本願の開示するノード装置、ノード装置の制御方法およびノード装置の制御プログラムムは、無線アドホックネットワークを形成するノード装置は、記憶部と、特定部と、通知部と、送信部とを有する。記憶部は、前記ノード装置から他のノード装置までの経路情報、または、前記無線アドホックネットワークを形成する各ノード装置ごとに隣接ノード装置のアドレス情報を記憶する。特定部は、前記記憶部に記憶される情報から、ブロードキャストでデータ送信を実行する他のノード装置を特定する。通知部は、前記特定部によって特定された他のノード装置に、前記ブロードキャストでデータ送信を実行する装置であることを通知する。送信部は、前記通知部によって通知された後に、前記記憶部に記憶されるアドレス情報または経路情報に基づいて、前記ノード装置の隣接ノード装置に前記ブロードキャストでデータを送信する。
を有する
【発明の効果】
【００１０】
本願の開示するノード装置、ノード装置の制御方法およびノード装置の制御プログラムの一つの態様によれば、パケットの衝突を抑止することができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１に係るシステムの全体構成を示す図である。
【図２】図２は、実施例１に係るＧＷ装置の構成を示す機能ブロック図である。
【図３】図３は、経路情報テーブルに記憶される情報の例を示す図である。
【図４】図４は、実施例１に係るＧＷ装置が実行する処理の流れを示すフローチャートである。
【図５】図５は、実施例１に係るシステムが実行するデータ送信を示すシーケンス図である。
【図６】図６は、実施例１に係るＧＷ装置を用いた場合のデータ送信結果を示す図である。
【図７】図７は、実施例２に係るＧＷ装置が隣接ノード情報を用いてデータ送信を実行する場合の処理の流れを示すフローチャートである。
【図８】図８は、実施例２に係るＧＷ装置が保持する隣接ノード情報の例を示す図である。
【図９】図９は、ＧＷ装置と他のノード装置との位置関係を示す図である。
【図１０】図１０は、特定部が実行するブロードキャスト対象装置の選択遷移を示す図である。
【図１１】図１１は、選択されたデータ送信ルートを示す図である。
【図１２】図１２は、特定部が実行するブロードキャスト対象装置の選択遷移を示す図である。
【図１３】図１３は、選択されたデータ送信ルートを示す図である。
【図１４】図１４は、特定部が実行するブロードキャスト対象装置の選択遷移を示す図である。
【図１５】図１５は、選択されたデータ送信ルートを示す図である。
【図１６】図１６は、特定部が実行するブロードキャスト対象装置の選択遷移を示す図である。
【図１７】図１７は、選択されたデータ送信ルートを示す図である。
【図１８】図１８は、特定部が実行するブロードキャスト対象装置の選択遷移を示す図である。
【図１９】図１９は、選択されたデータ送信ルートを示す図である。
【図２０】図２０は、特定部が実行するブロードキャスト対象装置の選択遷移を示す図である。
【図２１】図２１は、選択されたデータ送信ルートを示す図である。
【図２２】図２２は、特定部が実行するブロードキャスト対象装置の選択遷移を示す図である。
【図２３】図２３は、選択されたデータ送信ルートを示す図である。
【図２４】図２４は、特定部が実行するブロードキャスト対象装置の選択遷移を示す図である。
【図２５】図２５は、選択されたデータ送信ルートを示す図である。
【図２６】図２６は、特定部が実行するブロードキャスト対象装置の選択遷移を示す図である。
【図２７】図２７は、最終的に決定したデータ送信ルートを示す図である。
【図２８】図２８は、データ送信制御プログラムを実行するコンピュータのハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１２】
以下に、本願の開示するノード装置、ノード装置の制御方法およびノード装置の制御プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、実施例では、各処理をＧＷ（Gateway）装置が実行する例で説明するが、ＧＷ装置として特別な装置に限定されるものではなく、アドホックネットワークを形成するノード装置であれば、いずれの装置もＧＷ装置として機能するように構成することも可能である。
【実施例１】
【００１３】
実施例１では、実施例１に係るＧＷ装置を含むシステムの全体構成、ＧＷ装置の機能ブロック図、処理の流れ、効果を説明する。なお、ノード装置は、例えばサーバなどの情報処理装置、ルータなどの中継装置、センサ等を有する無線装置などである。
【００１４】
［全体構成］
図１は、実施例１に係るシステムの全体構成を示す図である。図１に示すように、このシステムは、ＧＷ装置１０、ノード装置Ａ、ノード装置Ｂ、ノード装置Ｃ、ノード装置Ｄ、ノード装置Ｅ、ノード装置Ｆ、ノード装置Ｇ、ノード装置Ｈを有する。また、図１に示した円は、各ノード装置が直接通信することができる範囲を示す。なお、ノード装置の数や位置関係は、あくまで例示であり、図１に限定するものではない。
【００１５】
つまり、ＧＷ装置１０は、ノード装置Ａ、ノード装置Ｂ、ノード装置Ｃ、ノード装置Ｄ各々と直接通信することができる。すなわち、ＧＷ装置１０の隣接ノードがノード装置Ａ、ノード装置Ｂ、ノード装置Ｃ、ノード装置Ｄとなる。
【００１６】
同様に、ノード装置Ａの隣接ノードが、ＧＷ装置１０とノード装置Ｃとノード装置Ｅである。ノード装置Ｂの隣接ノードが、ＧＷ装置１０とノード装置Ｄである。ノード装置Ｃの隣接ノードが、ＧＷ装置１０とノード装置Ａである。ノード装置Ｄの隣接ノードが、ＧＷ装置１０とノード装置Ｂとノード装置Ｆである。ノード装置Ｅの隣接ノードが、ノード装置Ａとノード装置Ｇである。ノード装置Ｆの隣接ノードが、ノード装置Ｄとノード装置Ｈである。ノード装置Ｇの隣接ノードが、ノード装置Ｅである。ノード装置Ｈの隣接ノードが、ノード装置Ｆである。
【００１７】
また、図１に示したシステムは、アドホックネットワークなどの自律分散型ネットワークであり、各ノード装置が無線接続に用いられている技術を用いてアクセスポイントの介在なしに相互に接続する。各ノード装置は、他のノード装置またはＧＷ装置１０との間で、Ｈｅｌｌｏメッセージ等が定期的にやり取りして、ＧＷ装置１０までの経路情報を生成したり、隣接ノードの生死確認を実行したりする。
【００１８】
このようなシステムにおけるＧＷ装置１０は、各ノード装置からＧＷ装置１０までの経路情報、または、アドホックネットワークの各ノード装置ごとの隣接ノードのアドレス情報を記憶する。そして、ＧＷ装置１０は、記憶される情報から、ブロードキャストでデータ送信を実行するノード装置を特定する。続いて、ＧＷ装置１０は、特定されたノード装置に、ブロードキャストでデータ送信を実行する装置であることを通知する。そして、ＧＷ装置１０は、通知された後に、記憶されるアドレス情報または経路情報に基づいて、隣接ノードにブロードキャストでデータを送信する。
【００１９】
この結果、システム内のノード装置のうち、ブロードキャスト指示を受信したノード装置だけブロードキャストでＧＷ装置１０から受信したデータを送信することになる。したがって、従来に比べて総送信データ数を削減できるので、ネットワーク内の輻輳を誘発する可能性を小さくすることができ、パケットの衝突を抑止することができる。
【００２０】
［ＧＷ装置］
次に、ＧＷ装置１０の構成について説明する。なお、ノード装置は、アドホックネットワークで使用される情報処理装置や無線装置などの一般的な装置であるので、詳細な説明は省略する。
【００２１】
図２は、実施例１に係るＧＷ装置の構成を示す機能ブロック図である。図２に示すように、ＧＷ装置１０は、無線インタフェース部１１、経路情報テーブル１２、更新データテーブル１３、制御部１４を有する。
【００２２】
また、経路情報テーブル１２や更新データテーブル１３は、例えば半導体メモリ素子やハードディスクなどの記憶装置に設けられる。制御部１４は、例えばＣＰＵ（Central  Processing  Unit）などの電子回路やＦＰＧＡ（Field-Programmable  Gate  Array）などの集積回路である。
【００２３】
無線インタフェース部１１は、少なくとも１つのアンテナを有し、アンテナを介して電波を送受信し、各ノード装置と無線通信を確立する。例えば、この無線インタフェース部１１は、各ノード装置との間でＨｅｌｌｏメッセージを送受信したり、隣接ノード装置にブロードキャストでデータを送信したりする。また、無線インタフェース部１１は、後述する特定部１４ｂ等によって特定されたノード装置に、ブロードキャストでデータ送信を実行する装置であること示すメッセージを送信する。
【００２４】
経路情報テーブル１２は、各ノード装置からＧＷ装置１０までの経路情報であるルーティング情報を記憶する。図３は、経路情報テーブルに記憶される情報の例を示す図である。ここで記憶される情報や形式は、あくまで例示であり、これに限定されるものではない。
【００２５】
図３に示すように、経路情報テーブル１２は、経路情報として「ノード装置ＡからＧＷ装置１０へ至る経路」、「ノード装置ＣからＧＷ装置１０へ至る経路」、「ノード装置Ｅからノード装置Ａを経由してＧＷ装置１０に至る経路」を記憶する。同様に、経路情報テーブル１２は、経路情報として「ノード装置Ｇからノード装置Ｅとノード装置Ｃとを経由してＧＷ装置１０に至る経路」、「ノード装置ＢからＧＷ装置１０へ至る経路」、「ノード装置ＤからＧＷ装置１０へ至る経路」を記憶する。同様に、経路情報テーブル１２は、経路情報として「ノード装置Ｆからノード装置Ｄを経由してＧＷ装置１０に至る経路」、「ノード装置Ｈからノード装置Ｆとノード装置Ｄとを経由してＧＷ装置１０に至る経路」を記憶する。
【００２６】
更新データテーブル１３は、各ノード装置に送信するデータを記憶する。例えば、更新データテーブル１３は、ノード装置のファームウェアを更新する更新データ等を記憶する。また、ここで記憶される情報は、所定サイズに分割されていてもよい。また、ここで記憶される情報は、ユーザによって格納された情報であってもよく、制御部１４等がインターネットなどのネットワークを介して外部のサーバから取得された情報であってもよい。
【００２７】
制御部１４は、内部メモリ等を有して、ＧＷ装置１０全体の処理を司る処理部であり、情報収集部１４ａと、特定部１４ｂと、通知部１４ｃと、データ送信部１４ｄと、データ再送信部１４ｅとを有する。
【００２８】
情報収集部１４ａは、各ノード装置とＨｅｌｌｏメッセージをやり取りして、経路情報を収集して、経路情報テーブル１２に格納する処理部である。例えば、情報収集部１４ａは、３０分ごとにＨｅｌｌｏメッセージを各ノード装置に送信し、その応答を受信して経路情報を特定する。
【００２９】
特定部１４ｂは、経路情報テーブル１２に記憶される情報から、ブロードキャストでデータ送信を実行するノード装置を特定する処理部である。例えば、特定部１４ｂは、経路情報テーブル１２を参照し、ＧＷ装置１０の隣接ノードのうち複数の経路情報に該当するノード装置と、当該ノード装置が該当する経路情報における最大ホップ数以外のノード装置とを特定する。そして、特定部１４ｂは、特定したノード装置をブロードキャストでデータ送信を実行するノード装置として特定する。また、特定部１４ｂは、経路情報テーブル１２を参照し、「ブロードキャスト対象装置」と選択されていない他のノード装置については「ブロードキャスト対象外装置」と特定する。そして、特定部１４ｂは、特定したこれらの情報を通知部１４ｃに通知する。
【００３０】
通知部１４ｃは、特定部１４ｂによって特定されたノード装置に、ブロードキャストでデータ送信を実行する装置であることを通知する処理部である。例えば、通知部１４ｃは、特定部１４ｂから通知された「ブロードキャスト対象装置」各々に対して、ブロードキャストでデータ送信を実行する装置であることを通知する。このとき、通知部１４ｃは、特定された順番にしたがって送信開始の遅延量を算出し、算出した遅延量を通知してもよい。
【００３１】
データ送信部１４ｄは、通知部１４ｃによって通知された後に、経路情報テーブル１２に記憶される経路情報に基づいて、隣接ノードにブロードキャストでデータを送信する処理部である。例えば、データ送信部１４ｄは、更新データテーブル１３から取得したデータをブロードキャストで送信する。すなわち、データ送信部１４ｄは、隣接ノードであるノード装置Ａ、ノード装置Ｂ、ノード装置Ｃ、ノード装置Ｄ各々に、データを送信する。
【００３２】
データ再送信部１４ｅは、データが受信できなかったノード装置に隣接するノード装置に対して、データの再送信を指示する処理部である。例えば、データ再送信部１４ｅは、データ送信部１４ｄのデータ送信が終了した後、経路情報テーブル１２に記憶される経路情報に基づいて各ノード装置にデータが受信できたかを問い合わせる。そして、データ再送信部１４ｅは、データが受信できなかったことを通知したノード装置と隣接するノード装置を、経路情報テーブル１２に記憶される経路情報から特定する。その後、データ再送信部１４ｅは、特定したノード装置に、データを受信できなかったノード装置にデータを送信する指示をユニキャストで送信する。
【００３３】
［処理の流れ］
次に、実施例１に係るＧＷ装置が実行する処理のフローチャートと、実施例１に係るシステムが実行する処理シーケンスとについて説明する。
【００３４】
（ＧＷ装置が実行する処理）
図４は、実施例１に係るＧＷ装置が実行する処理の流れを示すフローチャートである。図４に示すように、ＧＷ装置１０の特定部１４ｂは、処理の開始指示を受信すると（Ｓ１０１肯定）、経路情報テーブル１２を参照して、１ＨＯＰに位置するノード装置を抽出する（Ｓ１０２）。続いて、特定部１４ｂは、抽出したノード装置のうち出現頻度の最も高いノード装置を選択する（Ｓ１０３）。
【００３５】
その後、特定部１４ｂは、選択したノード装置が既に選択済みのノード装置であるか否かを判定する（Ｓ１０４）。そして、特定部１４ｂは、選択したノード装置が既に選択済みのノード装置である場合（Ｓ１０４肯定）、選択したノード装置が１ＨＯＰでカバーできるノード装置を経路情報テーブル１２から抽出する（Ｓ１０５）。特定部１４ｂは、Ｓ１０５で抽出したノード装置のうち出現頻度の最も高いノード装置を選択する（Ｓ１０６）。その後、特定部１４ｂは、Ｓ１０６で選択したノード装置が最大ＨＯＰ数のノード装置でない場合に（Ｓ１０７否定）、Ｓ１０５からＳ１０７を繰り返す。
【００３６】
一方、特定部１４ｂは、Ｓ１０６で選択したノード装置が最大ＨＯＰ数のノード装置である場合に（Ｓ１０７肯定）、まだ抽出されていないノード装置が存在するか否かを判定する（Ｓ１０８）。そして、特定部１４ｂは、まだ抽出されていないノード装置が存在すると判定した場合（Ｓ１０８肯定）、Ｓ１０４以降の処理を実行する。一方、特定部１４ｂは、経路情報テーブル１２の全てのノード装置が選択または抽出されたと判定した場合（Ｓ１０８否定）、Ｓ１１４を実行する。
【００３７】
一方、Ｓ１０４に戻って、特定部１４ｂは、選択したノード装置が既に選択済みのノード装置でない場合（Ｓ１０４否定）、未抽出のノード装置をカバーできるノード装置を選択する（Ｓ１０９）。つまり、特定部１４ｂは、既に抽出済みのノード装置かつ未選択のノード装置から、未抽出のノード装置をカバーできるノード装置を選択する。
【００３８】
そして、特定部１４ｂは、Ｓ１０９で選択したノード装置が１ＨＯＰでカバーできるノード装置を抽出する（Ｓ１１０）。続いて、特定部１４ｂは、Ｓ１１０で抽出したノード装置が既に他のステップで選択済みのノード装置である場合（Ｓ１１１肯定）、干渉フラグを有効にして遅延量（Ｎ）を算出して（Ｓ１１２）、Ｓ１０８を実行する。一方、特定部１４ｂは、Ｓ１１０で抽出したノード装置が既に他のステップで選択済みのノード装置でない場合（Ｓ１１１否定）、干渉フラグを無効にして遅延量（Ｎ）を０にする（Ｓ１１３）、Ｓ１０８を実行する。なお、遅延量の測定は、実行しなくてもよい。
【００３９】
そして、通知部１４ｃは、経路情報テーブル１２の全ノード装置が選択または抽出された場合（Ｓ１０８否定）、Ｓ１０１からＳ１０８までで選択されたノード装置に、「ブロードキャスト対象装置」である通知と「遅延量（Ｎ）」とを送信する（Ｓ１１４）。
【００４０】
続いて、データ送信部１４ｄは、経路情報テーブル１２の経路情報に基づいて、更新データテーブル１３に記憶されるデータを、ＧＷ装置１０の隣接ノード各々に送信する（Ｓ１１５）。このとき、データ送信部１４ｄは、データが分割されている場合には、Ｓ１１５を分割分繰り返す。
【００４１】
その後、データ再送信部１４ｅは、データ送信部１４ｄのデータ送信が終了した後、経路情報テーブル１２に記憶される経路情報に基づいて各ノード装置にデータが受信できたかを問い合わせる（Ｓ１１６）。そして、データ再送信部１４ｅは、データが受信できなかったことの応答を受信した場合（Ｓ１１７肯定）、当該応答を送信したノード装置に隣接するノード装置に、データの再送信を指示して処理を終了する（Ｓ１１８）。
【００４２】
（フローチャートの具体例）
次に、図４で説明した処理の流れを図３に示した経路情報テーブル１２を用いて具体的に説明する。まず、特定部１４ｂは、経路情報テーブル１２を参照し、ＧＷ装置１０から１ＨＯＰに位置するノード装置として、「ノード装置Ａ、ノード装置Ｂ、ノード装置Ｃ、ノード装置Ｄ」を特定する。さらに、特定部１４ｂは、「ノード装置Ａの出現頻度が２」、「ノード装置Ｂの出現頻度が１」、「ノード装置Ｃの出現頻度が２」、「ノード装置Ｄの出現頻度が３」と特定する。この結果、特定部１４ｂは、出現頻度の最も高いノード装置として「ノード装置Ｄ」と選択する。
【００４３】
続いて、特定部１４ｂは、経路情報テーブル１２を参照し、選択した「ノード装置Ｄ」が１ＨＯＰでカバーできるノード装置を抽出し、抽出したノード装置のうち出現頻度が最も高いノード装置を選択する。ここでは、特定部１４ｂは、「ノード装置Ｆ」を選択する。そして、特定部１４ｂは、経路情報テーブル１２を参照し、「ノード装置Ｆ」が１ＨＯＰでカバーできるノード装置を抽出する。ここでは、特定部１４ｂは、「ノード装置Ｈ」を抽出する。また、特定部１４ｂは、経路情報テーブル１２を参照し、「ノード装置Ｈ」がＧＷ装置１０から最大ＨＯＰ数の位置に位置することを特定する。
【００４４】
ここまでで、特定部１４ｂは、「ノード装置Ｄ」と「ノード装置Ｆ」とを選択し、「ノード装置Ｈ」を抽出したことになる。つまり、特定部１４ｂは、「ノード装置Ｄ」および「ノード装置Ｆ」を「ブロードキャスト対象装置」と特定し、「ノード装置Ｈ」を「ブロードキャスト対象外装置」と特定する。
【００４５】
続いて、特定部１４ｂは、「ブロードキャスト対象装置」または「ブロードキャスト対象外装置」と特定していないノード装置が存在するので、上述したＧＷ装置１０から１ＨＯＰでカバーできるノード装置のうち、次に出現頻度が多いノード装置を選択する。ここでは、特定部１４ｂは、出現頻度が２の「ノード装置Ａ」を選択する。なお、特定部１４ｂは、出現頻度が同じ数であるノード装置が複数存在する場合、どちらか一方を任意に選択してもよく、両方を選択してもよい。
【００４６】
そして、特定部１４ｂは、経路情報テーブル１２を参照し、選択した「ノード装置Ａ」が１ＨＯＰでカバーできるノード装置を抽出する。ここでは、特定部１４ｂは、「ノード装置Ｅ」を抽出する。そして、特定部１４ｂは、抽出した「ノード装置Ｅ」を経路とする「ノード装置Ｇ」が存在することから、「ノード装置Ｅ」が最大ＨＯＰ数のノード装置でないと判定して、「ノード装置Ｅ」を選択する。その後、特定部１４ｂは、最大ＨＯＰ数のノード装置である「ノード装置Ｇ」を抽出する。
【００４７】
ここまでで、上述した内容に加え、特定部１４ｂは、「ノード装置Ａ」と「ノード装置Ｅ」とを選択し、「ノード装置Ｇ」を抽出したことになる。つまり、特定部１４ｂは、「ノード装置Ａ」および「ノード装置Ｅ」を「ブロードキャスト対象装置」と特定し、「ノード装置Ｇ」を「ブロードキャスト対象外装置」と特定する。
【００４８】
この結果、通知部１４ｃは、「ノード装置Ｄ」、「ノード装置Ｆ」、「ノード装置Ａ」、「ノード装置Ｅ」に、「ブロードキャスト対象装置」であることを送信する。このとき、通知部１４ｃは、遅延量を送信してもよい。その後、データ送信部１４ｄは、１ＨＯＰ内に存在する「ノード装置Ａ、ノード装置Ｃ、ノード装置Ｂ、ノード装置Ｄ」にデータ送信する。
【００４９】
（システムが実行するシーケンス）
図５は、実施例１に係るシステムが実行するデータ送信を示すシーケンス図である。図５では、ノード装置Ｄ、ノード装置Ｆ、ノード装置Ａ、ノード装置Ｅ各々に対して、「ブロードキャスト対象装置」であることを通知済みとする。また、遅延量（Ｎ）は０とする。
【００５０】
図５に示すように、ＧＷ装置１０は、ブロードキャストでＨＯＰ数１のノード装置にブロック１のデータを送信する（Ｓ２０１〜Ｓ２０５）。「ブロードキャスト対象外装置」であるノード装置Ｂとノード装置Ｃは、受信したブロック１のデータを蓄積する。
【００５１】
「ブロードキャスト対象装置」であるノード装置Ｄは、受信したブロック１のデータを蓄積するとともに、ブロードキャスト送信を実行して、ブロック１のデータをノード装置Ｆに送信する（Ｓ２０６）。
【００５２】
ノード装置Ｆは、「ブロードキャスト対象装置」であるので、ノード装置Ｄから受信したブロック１のデータを蓄積するとともに（Ｓ２０７）、ブロードキャスト送信を実行して、ブロック１のデータをノード装置Ｈに送信する（Ｓ２０８）。ノード装置Ｈは、「ブロードキャスト対象外装置」であるので、ノード装置Ｆから受信したブロック１のデータを蓄積する（Ｓ２０９）。
【００５３】
また、「ブロードキャスト対象装置」であるノード装置Ａは、受信したブロック１のデータを蓄積するとともに、ブロードキャスト送信を実行して、ブロック１のデータをノード装置Ｅに送信する（Ｓ２１０）。
【００５４】
ノード装置Ｅは、「ブロードキャスト対象装置」であるので、ノード装置Ａから受信したブロック１のデータを蓄積するとともに（Ｓ２１１）、ブロードキャスト送信を実行して、ブロック１のデータをノード装置Ｇに送信する（Ｓ２１２）。ノード装置Ｇは、「ブロードキャスト対象外装置」であるので、ノード装置Ｅから受信したブロック１のデータを蓄積する（Ｓ２１３）。
【００５５】
上述したＳ２０１からＳ２１３までの処理をブロック２のデータについても実行し（Ｓ２１４）、ノード装置Ｇにて受信エラー、すなわちパケットロスが発生したとする（Ｓ２１５）。また、上述したＳ２０１からＳ２１３までの処理を、最終ブロックＮのデータの送信が終了するまで繰り返す（Ｓ２１６とＳ２１７）。
【００５６】
最終ブロックのデータまでの送信が完了すると、ＧＷ装置１０は、不足問合せを開始し、不足問合せメッセージを上述したデータと同様の経路で送信する（Ｓ２１８からＳ２２２）。すなわち、ＧＷ装置１０は、ＨＯＰ数が１であるノード装置Ｂ、ノード装置Ｄ、ノード装置Ａ、ノード装置Ｃに不足問合せメッセージを送信する。
【００５７】
「ブロードキャスト対象外装置」であるノード装置Ｂとノード装置Ｃは、受信したメッセージを蓄積し、不足がないのでＧＷ装置１０に応答を送信しない。
【００５８】
「ブロードキャスト対象装置」であるノード装置Ｄは、受信した不足問合せメッセージを蓄積するとともに、ブロードキャスト送信を実行して（Ｓ２２３）、不足問合せメッセージをノード装置Ｆに送信する（Ｓ２２４）。このとき、ノード装置Ｄは、不足がないのでＧＷ装置１０に応答を送信しない。
【００５９】
ノード装置Ｆは、「ブロードキャスト対象装置」であるので、ＧＷ装置１０から受信した不足問合せメッセージを蓄積するとともに、ブロードキャスト送信を実行して（Ｓ２２５）、不足問合せメッセージをノード装置Ｈに送信する（Ｓ２２６）。このとき、ノード装置Ｆは、不足がないのでＧＷ装置１０に応答を送信しない。ノード装置Ｈは、「ブロードキャスト対象外装置」であるので、ノード装置Ｆから受信した不足問合せメッセージを蓄積する。このとき、ノード装置Ｈは、不足がないのでＧＷ装置１０に応答を送信しない。
【００６０】
ノード装置Ａは、「ブロードキャスト対象装置」であるので、ＧＷ装置１０から受信した不足問合せメッセージを蓄積するとともに、ブロードキャスト送信を実行して、不足問合せメッセージをノード装置Ｅに送信する（Ｓ２２７）。このとき、ノード装置Ａは、不足がないのでＧＷ装置１０に応答を送信しない。
【００６１】
ノード装置Ｅは、ノード装置Ａから受信した不足問合せメッセージを蓄積するとともに、ブロードキャスト送信を実行して（Ｓ２２８）、不足問合せメッセージをノード装置Ｇに送信する（Ｓ２２９）。このとき、ノード装置Ｅは、不足がないのでＧＷ装置１０に応答を送信しない。
【００６２】
ノード装置Ｇは、「ブロードキャスト対象外装置」であるので、ノード装置Ｅから受信した不足問合せメッセージを蓄積する（Ｓ２３０）。そして、ノード装置Ｇは、ブロック２のデータが未受信であることをＧＷ装置に応答する（Ｓ２３１とＳ２３２）。
【００６３】
この応答を受信したＧＷ装置１０は、ノード装置Ｇの隣接ノード装置であるノード装置Ｅに、ブロック２のデータをノード装置Ｇに再送する指示を送信する（Ｓ２３３とＳ２３４）。すると、ノード装置Ｅは、ノード装置Ｇに対して、ブロック２のデータを送信する（Ｓ２３５とＳ２３６）。
【００６４】
［実施例１による効果］
このように、実施例１に係るＧＷ装置１０は、ブロードキャストパケットを受信したノード装置がブロードキャストを行わない仕組みにすることで無線干渉を回避する。図６は、実施例１に係るＧＷ装置を用いた場合のデータ送信結果を示す図である。図６に示すように、全ノード装置がブロードキャストでデータを送信することなく、ノード装置Ａ、ノード装置Ｄ、ノード装置Ｅ、ノード装置Ｆがブロードキャストでデータを送信する。つまり、最低限のノード装置だけブロードキャストすることで、全ノード装置にデータを送信することができるので、パケットの衝突を防止することができる。
【実施例２】
【００６５】
ところで、実施例１では、ＧＷ装置１０が経路情報を用いてブロードキャストでデータを送信するノード装置を特定する例について説明したが、これに限定されるものではない。例えば、ＧＷ装置１０は、隣接ノード装置のアドレス情報を記憶する隣接ノードテーブルを用いた場合でも同様に処理することができる。
【００６６】
そこで、実施例２では、図７から図２７を用いて、ＧＷ装置１０が隣接ノードテーブルを用いて、ブロードキャストでデータを送信するノード装置を特定する例について説明する。なお、実施例２に係るＧＷ装置１０の構成は、図２に示した構成のうち、経路情報テーブル１２の代わりに隣接ノードテーブルを有している点以外は、同様の構成を有するので、詳細な説明は省略する。
【００６７】
一例を挙げると、ＧＷ装置１０は、ＧＷ装置１０の隣接ノード装置から他のノード装置に至る経路において、以下の条件で、ブロードキャストでデータ送信を実行するノード装置を特定する。ＧＷ装置１０は、ブロードキャストでデータ送信を実行する装置であると既に特定されたノード装置が、直接通信することができないノード装置を隣接ノード装置としてより多く含むノード装置を、ブロードキャストでデータ送信を実行する装置として特定する。
【００６８】
［処理の流れ］
図７は、実施例２に係るＧＷ装置が隣接ノード情報を用いてデータ送信を実行する場合の処理の流れを示すフローチャートである。まず、図７に示す処理の考え方を説明する。（１）ＧＷ装置１０は、ブロードキャストするノード装置の隣接ノード装置の中で、カバーできない隣接ノード装置が最も多いノード装置を選択する。つまり、ここで選択されたノード装置がブロードキャスト送信を実行するノード装置となる。
【００６９】
続いて、（２）ＧＷ装置１０は、（１）において選択したノード装置の中で、カバーできない隣接ノード装置が最も多いノード装置を選択する。つまり、ここで選択されたノード装置がブロードキャスト送信を実行するノード装置となる。
【００７０】
そして、（３）ＧＷ装置１０は、カバーできていない隣接ノード装置が０になるまで繰り返し、ここで１回目のデータ転送ルート（ブロードキャスト転送ルート）を決定する。その後、（４）ＧＷ装置１０は、これまで選択されたブロードキャストするノード装置の中で、カバーできていない隣接ノード装置が最もノード装置を選択する。そして、（５）ＧＷ装置１０は、（１）から（４）までの手順により、ブロードキャスト転送ルートを確定する。また、（６）ＧＷ装置１０は、カバーできていないノード数が０になるまで、（１）から（５）を繰り返す。
【００７１】
次に、上述した（１）から（６）を実行するフローチャートを説明する。図７に示すように、特定部１４ｂは、隣接ノードテーブルを参照し（Ｓ３０１）、初期値として、仮の選択されたノード装置を示す変数「Ｕｎ１」にＧＷを代入する（Ｓ３０２）。
【００７２】
続いて、特定部１４ｂは、変数「Ｕｎ＋１」にＧＷを代入し、Ｕｎを選択ノード装置とし、データ送信経路に含まれるノード装置の配列を示す「Ｒｎ」に順に保持する（Ｓ３０３）。特定部１４ｂは、選択された各ノード装置において「Ｕｎ」の隣接ノード装置を抽出する（Ｓ３０４）。
【００７３】
そして、特定部１４ｂは、変数「Ｕｎ」の隣接ノード装置において、抽出されていない隣接ノード装置を抽出する（Ｓ３０５）。ここで、特定部１４ｂは、隣接ノード装置を最も多く抽出したノード装置を「Ｕｎ１」として、その個数を「Ｍ」とする。
【００７４】
続いて、特定部１４ｂは、「Ｍ」が０よりも大きい場合には（Ｓ３０６肯定）、Ｓ３０３に戻って処理を繰り返し、「Ｍ」が０以下の場合には（Ｓ３０６否定）、全ノード装置の中で未抽出のノード装置が存在するか否かを判定する（Ｓ３０７）。
【００７５】
そして、特定部１４ｂは、全ノード装置の中で未抽出のノード装置が存在しない場合（Ｓ３０７否定）、処理を終了する。
【００７６】
そして、特定部１４ｂは、全ノード装置の中で未抽出のノード装置が存在する場合（Ｓ３０７肯定）、１つでも抽出されているノード装置の中に、最も未抽出のノード装置が多いノード装置を抽出する（Ｓ３０８）。なお、特定部１４ｂは、ここで抽出したノード装置を「Ｕｎ２」として、その個数を「Ｍ」とする。そして、特定部１４ｂは、「Ｒｎ」を「Ｒｎ＋１」とする（Ｓ３０９）。
【００７７】
続いて、特定部１４ｂは、「Ｍ」が０よりも小さい場合には（Ｓ３１０否定）、Ｓ３０７に戻って処理を繰り返し、「Ｍ」が０よりも大きい場合には（Ｓ３１０肯定）、Ｓ３１１を実行する。すなわち、特定部１４ｂは、変数「Ｕｎ２」を「Ｕｎ」に代入して、Ｕｎを選択ノード装置とし、データ送信経路に含まれるノード装置の配列を示す「Ｒｎ」に順に保持する（Ｓ３１１）。特定部１４ｂは、選択された各ノード装置において、「Ｕｎ」の隣接ノード装置を抽出する（Ｓ３１２）。
【００７８】
そして、特定部１４ｂは、変数「Ｕｎ」の隣接ノード装置において、抽出されていない隣接ノード装置を抽出する（Ｓ３１３）。ここで、特定部１４ｂは、隣接ノード装置を最も多く抽出したノード装置を「Ｕｎ２」として、その個数を「Ｍ」とする。その後、特定部１４ｂは、Ｓ３１０に戻って処理を繰り返す。
【００７９】
［具体例］
次に、図７のフローチャートを実施した場合の具体例を説明する。図８は、実施例２に係るＧＷ装置が保持する隣接ノード情報の例を示す図である。図９は、ＧＷ装置と他のノード装置との位置関係を示す図である。
【００８０】
図８に示す情報において、縦軸は、システムを形成する各ノード装置を示し、横軸は、隣接するノード装置を示し、数字は、ノード装置を示す。図８の場合、システムは、ＧＷ装置と、ノード装置１からノード装置４０から構成される。そして、ＧＷ装置１の隣接ノードが、ノード装置１、ノード装置３、ノード装置８、ノード装置９、ノード装置１２、ノード装置１７、ノード装置２１、ノード装置２３、ノード装置２４、ノード装置２６、ノード装置２８、ノード装置３３、ノード装置３４である。
【００８１】
したがって、図９に示すように、ＧＷ装置１０が直接通信できる範囲を示す円の内部または周辺に、上述した隣接ノード装置が位置することになる。なお、図９に示す数字は、ノード装置を示し、図８に示した数字に対応する。
【００８２】
続いて、図１０から図２８を用いて、特定部１４ｂが「ブロードキャスト対象装置」および「ブロードキャスト対象外装置」を特定する具体例を説明する。図１０、図１２、図１４、図１６、図１８、図２０、図２２、図２４、図２６は、特定部が実行するブロードキャスト対象装置の選択遷移を示す図である。図１１、図１３、図１５、図１７、図１９、図２１、図２３、図２５は、選択されたデータ送信ルートを示す図である。図２７は、最終的に決定したデータ送信ルートを示す図である。なお、以下では、説明を簡略化するため、必要に応じて、ノード装置１１を１１と省略して記載する。
【００８３】
具体的に説明すると、まず、特定部１４ｂは、図１０に示すように、隣接ノード情報の縦軸に記載されるノード装置のうち、横軸に記載されるノード装置すなわちＧＷ装置１０に隣接するノード装置を特定する。具体的には、特定部１４ｂは、ノード装置「１、３、８、９、１２、１７、２１、２３、２４、２６、２８、３３、３４」と特定する。
【００８４】
続いて、特定部１４ｂは、特定した隣接するノード装置の中で、ＧＷ装置１０がカバーできない隣接ノード装置の数を抽出する。具体的には、特定部１４ｂは、ノード装置「１、３、８、９、１２、１７、２１、２３、２４、２６、２８、３３、３４」各々について、隣接ノード装置のうちＧＷ装置１０の隣接ノード装置以外のノード装置を計数し、未カバーノード装置として格納する。そして、特定部１４ｂは、ＧＷ装置１０がカバーできない隣接ノード装置の数が最も多いノード装置として、未カバーノード数が「７」であるノード装置３とノード装置２８を特定し、若番のノード装置３を選択する。
【００８５】
この結果、特定部１４ｂは、図１１に示すように、ＧＷ装置１０からノード装置３まで経路をデータ送信経路として特定する。すなわち、特定部１４ｂは、ノード装置３を「ブロードキャスト対象装置」と特定する。
【００８６】
そして、図１２に示すように、特定部１４ｂは、ノード装置３の隣接ノード装置のうち、まだカバーできていないノード装置「４、１６、１９、３２、３６、３７、４０」を抽出する。つまり、特定部１４ｂは、ノード装置３の隣接ノード装置のうち、既に選択されたノード装置の隣接ノード装置に該当しないノード装置を抽出する。続いて、特定部１４ｂは、ノード装置「４、１６、１９、３２、３６、３７、４０」各々について、隣接ノード装置のうち、まだカバーできないノード装置を計数し、未カバーノード数として格納する。つまり、特定部１４ｂは、特定したノード装置各々について、選択済みのノード装置の隣接ノード装置またはＧＷ装置１０の隣接ノード装置と一致しないノード装置を計数する。そして、特定部１４ｂは、ＧＷ装置１０がカバーできてない隣接ノード装置の数が最も多いノード装置として、未カバーノード数が「３」であるノード装置４０を特定する。
【００８７】
この結果、特定部１４ｂは、図１３に示すように、ＧＷ装置１０からノード装置３を経由してノード装置４０まで到達する経路をデータ送信経路として特定する。すなわち、特定部１４ｂは、ノード装置４０を新たな「ブロードキャスト対象装置」と特定する。
【００８８】
その後、図１４に示すように、特定部１４ｂは、ノード装置４０の隣接ノード装置のうち、まだカバーできれいないノード装置「２２、２９、３８」を抽出する。続いて、特定部１４ｂは、ノード装置「２２、２９、３８」各々について、隣接ノード装置のうちまだカバーできないノード装置を計数し、未カバーノード装置として格納する。ここで、特定部１４ｂは、図１４に示すように、ノード装置「２２、２９、３８」各々の未カバーノード装置が「０」であるので、一旦処理を終了する。
【００８９】
続いて、特定部１４ｂは、図１４に示すように、ＧＷ装置と隣接するノード装置のうち未だ選択または抽出されていないノード装置の隣接ノード装置で、カバーできないノード装置を計数し、未カバーノード装置として格納する。そして、特定部１４ｂは、ＧＷ装置１０がカバーできてない隣接ノード装置の数が最も多いノード装置として、未カバーノード数が「６」であるノード装置１を特定する。
【００９０】
この結果、特定部１４ｂは、図１５に示すように、ＧＷ装置１０からノード装置１までの経路をデータ送信経路として特定する。すなわち、特定部１４ｂは、ノード装置１を新たな「ブロードキャスト対象装置」と特定する。
【００９１】
その後、図１６に示すように、特定部１４ｂは、ノード装置１の隣接ノード装置のうち、まだカバーできていなノード装置「２、１４、２５、２７、３０、３５」を抽出する。続いて、特定部１４ｂは、ノード装置「２、１４、２５、２７、３０、３５」各々について、隣接ノード装置のうちまだカバーできないノード装置を計数し、未カバーノード装置として格納する。そして、特定部１４ｂは、ＧＷ装置１０がカバーできてない隣接ノード装置の数が最も多いノード装置として、未カバーノード数が「２」であるノード装置１４とノード装置２５を特定し、若番のノード装置１４を選択する。
【００９２】
この結果、特定部１４ｂは、図１７に示すように、ＧＷ装置１０からノード装置１を経由してノード装置１４に至るまで経路をデータ送信経路として特定する。すなわち、特定部１４ｂは、ノード装置１４を新たな「ブロードキャスト対象装置」と特定する。
【００９３】
続いて、図１８に示すように、特定部１４ｂは、ノード装置１４の隣接ノード装置のうち、まだカバーできていなノード装置「６、７」を抽出する。続いて、特定部１４ｂは、ノード装置「６、７」各々について、隣接ノード装置のうち、まだカバーできないノード装置を計数し、未カバーノード装置として格納する。ここで、特定部１４ｂは、図１８に示すように、ノード装置「６、７」各々の未カバーノード装置が「０」であるので、一旦処理を終了する。
【００９４】
その後、特定部１４ｂは、図１８に示すように、ＧＷ装置と隣接するノード装置のうち未だ選択または抽出されていないノード装置の隣接ノード装置で、カバーできないノード装置を計数し、未カバーノード装置として格納する。そして、特定部１４ｂは、ＧＷ装置１０がカバーできてない隣接ノード装置の数が最も多いノード装置として、未カバーノード数が「４」であるノード装置９を特定する。
【００９５】
この結果、特定部１４ｂは、図１９に示すように、ＧＷ装置１０からノード装置９までの経路をデータ送信経路として特定する。すなわち、特定部１４ｂは、ノード装置９を新たな「ブロードキャスト対象装置」と特定する。
【００９６】
続いて、図２０に示すように、特定部１４ｂは、ノード装置９の隣接ノード装置のうち、まだカバーできていなノード装置「５、１８、３１、３９」を抽出する。続いて、特定部１４ｂは、ノード装置「５、１８、３１、３９」各々について、隣接ノード装置のうち、まだカバーできないノード装置を計数し、未カバーノード装置として格納する。そして、特定部１４ｂは、ＧＷ装置１０がカバーできてない隣接ノード装置の数が最も多いノード装置として、未カバーノード数が「２」であるノード装置５とノード装置１８を特定し、若番のノード装置５を選択する。
【００９７】
この結果、特定部１４ｂは、図２１に示すように、ＧＷ装置１０からノード装置９を経由してノード装置５に至る経路をデータ送信経路として特定する。すなわち、特定部１４ｂは、ノード装置５を新たな「ブロードキャスト対象装置」と特定する。
【００９８】
続いて、図２２に示すように、特定部１４ｂは、ノード装置５の隣接ノード装置のうち、まだカバーできていなノード装置「１０、２０」を抽出する。続いて、特定部１４ｂは、ノード装置「１０、２０」各々について、まだカバーできない隣接のノード装置を計数し、未カバーノード装置として格納する。ここで、特定部１４ｂは、図２２に示すように、ノード装置「１０、２２」各々の未カバーノード装置が「０」であるので、一旦処理を終了する。
【００９９】
その後、特定部１４ｂは、図２２に示すように、ＧＷ装置と隣接するノード装置のうち未だ選択または抽出されていないノード装置の隣接ノード装置で、カバーできないノード装置を計数し、未カバーノード装置として格納する。そして、特定部１４ｂは、ＧＷ装置１０がカバーできてない隣接ノード装置の数が最も多いノード装置として、未カバーノード数が「１」であるノード装置２６を特定する。
【０１００】
この結果、特定部１４ｂは、図２３に示すように、ＧＷ装置１０からノード装置２６までの経路をデータ送信経路として特定する。すなわち、特定部１４ｂは、ノード装置２６を新たな「ブロードキャスト対象装置」と特定する。
【０１０１】
続いて、図２４に示すように、特定部１４ｂは、ノード装置２６の隣接ノード装置のうち、まだカバーできていなノード装置「１５」を抽出する。続いて、特定部１４ｂは、ノード装置「１５」各々について、隣接ノード装置のうち、まだカバーできないノード装置を計数し、未カバーノード装置として格納する。そして、特定部１４ｂは、ＧＷ装置１０がカバーできてない隣接ノード装置の数が最も多いノード装置として、未カバーノード数が「２」であるノード装置１５を選択する。
【０１０２】
この結果、特定部１４ｂは、図２５に示すように、ＧＷ装置１０からノード装置２６を経由してノード装置１５に至る経路をデータ送信経路として特定する。すなわち、特定部１４ｂは、ノード装置１５を新たな「ブロードキャスト対象装置」と特定する。
【０１０３】
続いて、図２６に示すように、特定部１４ｂは、ノード装置１５の隣接ノード装置のうち、まだカバーできていなノード装置「１１、１３」を抽出する。続いて、特定部１４ｂは、ノード装置「１１、１３」各々について、隣接ノード装置のうち、まだカバーできないノード装置を計数し、未カバーノード装置として格納する。ここで、特定部１４ｂは、図２６に示すように、ノード装置「１１、１３」各々の未カバーノード装置が「０」であるので、一旦処理を終了する。
【０１０４】
上述した処理によって、特定部１４ｂは、ＧＷ装置１０が記憶する全隣接ノード装置がカバーできたため、処理を終了する。具体的には、特定部１４ｂは、ノード装置「１、３、５、９、１４、１５、２６、４０」を「ブロードキャスト対象装置」と特定し、その他のノード装置を「ブロードキャスト対象外装置」と特定する。
【０１０５】
さらに、特定部１４ｂは、図２７に示すように、上述した処理で特定した順番にしたがって、ルートを区分する。具体的には、特定部１４ｂは、はじめに特定した「ＧＷ装置→ノード装置３→ノード装置４０」をルート１とする。また、特定部１４ｂは、次に特定した「ＧＷ装置→ノード装置１→ノード装置１４」をルート２とする。また、特定部１４ｂは、次に特定した「ＧＷ装置→ノード装置９→ノード装置５」をルート３とする。また、特定部１４ｂは、最後に特定した「ＧＷ装置→ノード装置２６→ノード装置１５」をルート４とする。
【０１０６】
その後、通知部１４ｃは、ノード装置「１、３、５、９、１４、１５、２６、４０」に「ブロードキャスト対象装置」であることを通知する。このとき、通知部１４ｃは、各ルートごとに算出した遅延量をあわせて通知することもできる。
【０１０７】
一例を挙げると、通知部１４ｃは、ルート１の該当する「ノード装置３とノード装置４０」に対しては遅延量として「０」を通知する。また、通知部１４ｃは、ルート２の該当する「ノード装置１」に対しては、遅延量として「Ｎ＝ルート１の最大ＨＯＰ数×指定遅延量（ＤＴ１）」を通知する。また、通知部１４ｃは、ルート３の該当する「ノード装置９」に対しては、遅延量として「Ｎ＝ルート１の最大ＨＯＰ数×ルート２の最大ＨＯＰ数×指定遅延量（ＤＴ２）」を通知する。また、通知部１４ｃは、ルート４の該当する「ノード装置２６」に対しては、遅延量として「Ｎ＝ルート１の最大ＨＯＰ数×ルート２の最大ＨＯＰ数×ルート３の最大ＨＯＰ数×指定遅延量（ＤＴ３）」を通知する。なお、遅延量としては、例えばＤＴ１＝１００ｍｓｅｃなどが挙げられる。
【０１０８】
このように、ＧＷ装置１０は、経路情報の代わりに隣接ノード情報を用いた場合でも、実施例１と同様、全装置がブロードキャストすることなく、全装置にデータを送信するｋとができるので、パケットの衝突を防止することができる。
【０１０９】
また、干渉する場合には、遅延量を設けることで、１タイミングに１ノード装置だけがブロードキャスト送信させることで、他のノード装置との無線干渉も防止できる。さらに、カバーできないパケットロスや天候状況によるパケット未達に対して、隣接にいる受信が完了しているノード装置が、不足があるノード装置に対して補完の処理を行う仕組みを設けることで、パケット量の増加も抑止できる。
【実施例３】
【０１１０】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
【０１１１】
（システム）
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１１２】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【０１１３】
（プログラム）
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することができる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。
【０１１４】
図２８は、データ送信制御プログラムを実行するコンピュータのハードウェア構成例を示す図である。図２８に示すように、コンピュータ１００は、バス１０１に、ＣＰＵ１０２、入力装置１０３、出力装置１０４、通信インタフェース１０５、ＨＤＤ（Hard  Disk  Drive）１０６、ＲＡＭ（Random  Access  Memory）１０７が接続される。
【０１１５】
入力装置１０３は、マウスやキーボードであり、出力装置１０４は、ディスプレイなどであり、通信インタフェース１０５は、ＮＩＣ（Network  Interface  Card）などのインタフェースである。ＨＤＤ１０６は、データ送信制御プログラム１０６ａとともに、図２等に示した各テーブル等に記憶される情報を記憶する。記録媒体の例としてＨＤＤ１０６を例に挙げたが、ＲＯＭ（Read  Only  Memory）、ＲＡＭ（Random  Access  Memory）、ＣＤ−ＲＯＭ等の他のコンピュータ読み取り可能な記録媒体に各種プログラムを格納しておき、コンピュータに読み取らせることとしてもよい。なお、記憶媒体を遠隔地に配置し、コンピュータが、その記憶媒体にアクセスすることでプログラムを取得して利用してもよい。また、その際、取得したプログラムをそのコンピュータ自身の記録媒体に格納して用いてもよい。
【０１１６】
ＣＰＵ１０２は、データ送信制御プログラム１０６ａを読み出してＲＡＭ１０７に展開することで、図２等で説明した各機能を実行するデータ送信制御プロセス１０７ａを動作させる。すなわち、データ送信制御プロセス１０７ａは、図２に記載した情報収集部１４ａ、特定部１４ｂ、通知部１４ｃ、データ送信部１４ｄ、データ再送信部１４ｅと同様の機能を実行する。このようにコンピュータシステム１００は、プログラムを読み出して実行することでデータ送信制御方法を実行するノード装置として動作する。
【符号の説明】
【０１１７】
１０  ＧＷ装置
１１  無線インタフェース
１２  経路情報テーブル
１３  更新データテーブル
１４  制御部
１４ａ  情報収集部
１４ｂ  特定部
１４ｃ  通知部
１４ｄ  データ送信部
１４ｅ  データ再送信部
【図１】
0005712731.tif 000002
【図２】
0005712731.tif 000003
【図３】
0005712731.tif 000004
【図４】
0005712731.tif 000005
【図５】
0005712731.tif 000006
【図６】
0005712731.tif 000007
【図７】
0005712731.tif 000008
【図８】
0005712731.tif 000009
【図９】
0005712731.tif 000010
【図１０】
0005712731.tif 000011
【図１１】
0005712731.tif 000012
【図１２】
0005712731.tif 000013
【図１３】
0005712731.tif 000014
【図１４】
0005712731.tif 000015
【図１５】
0005712731.tif 000016
【図１６】
0005712731.tif 000017
【図１７】
0005712731.tif 000018
【図１８】
0005712731.tif 000019
【図１９】
0005712731.tif 000020
【図２０】
0005712731.tif 000021
【図２１】
0005712731.tif 000022
【図２２】
0005712731.tif 000023
【図２３】
0005712731.tif 000024
【図２４】
0005712731.tif 000025
【図２５】
0005712731.tif 000026
【図２６】
0005712731.tif 000027
【図２７】
0005712731.tif 000028
【図２８】
0005712731.tif 000029