(57)【要約】【課題】通信経路の切り替え時間を短くする。【解決手段】第１の通信装置は、受信部、計算部、決定部、送信部を備える。受信部は、第１の通信装置に隣接する第２の通信装置から、第１のパケットを受信する。第１のパケットは、近傍の領域の現在の水位である第１の水位で第２の通信装置を介して通信可能な装置の情報と、領域での水位の予測値である第２の水位での収集装置への経路の決定要求を含む。計算部は、第１のパケットで通知された各通信装置について、領域が第２の水位であるときの第１の通信装置との間の通信状況の指標値を計算する。決定部は、指標値が表わす通信状況が相対的に良好な装置を、領域が第２の水位であるときの収集装置宛てのパケットの転送先に決定する。送信部は、領域が第２の水位であることと収集装置からの通信の要求を含む第２のパケットの受信に応じて、収集装置宛のパケットを転送先に送信する。【選択図】図１
2015115896.tif 000002
【特許請求の範囲】
【請求項１】
水位が変動しうる領域の近傍に設置された複数の通信装置と、前記複数の通信装置からデータを収集する収集装置を備えるネットワーク中で第１の通信装置として使用される通信装置であって、
前記第１の通信装置に隣接する第２の通信装置から、前記領域の現在の水位である第１の水位で前記第２の通信装置を介して通信可能な通信装置の情報と、前記領域での水位の予測値である第２の水位での前記収集装置への通信経路の決定の要求を含む第１のパケットを受信する受信部と、
前記第１のパケットで通知された各通信装置について、前記領域の水位が前記第２の水位であるときの前記第１の通信装置との間の通信状況の指標値を計算する計算部と、
前記指標値が表わす通信状況が相対的に良好な装置を、前記領域の水位が前記第２の水位であるときの前記収集装置宛てのパケットの転送先に決定する決定部と、
前記領域の水位が前記第２の水位であることと前記収集装置からの通信の要求を含む第２のパケットを前記受信部が受信すると、前記転送先に、前記収集装置宛のパケットを送信する送信部
を備えることを特徴とする通信装置。
【請求項２】
前記領域の水位が前記第２の水位となったときに、前記収集装置から前記第１の通信装置に宛てた第３のパケットが前記転送先を介して前記第１の通信装置に転送されることを示す転送情報を、前記第２の通信装置に通知する通知部
を備えることを特徴とする請求項１に記載の通信装置。
【請求項３】
前記通知部は、前記第２の通信装置が前記転送先とは異なる場合、前記転送先に決定された第３の通信装置に、前記転送情報の通知を依頼するための情報を、前記転送情報と共に前記第２の通信装置に通知する
ことを特徴とする請求項２に記載の通信装置。
【請求項４】
前記領域が前記第２の水位のときについて、前記複数の通信装置のうちの前記第１の通信装置以外の装置と前記収集装置の間の通信に使用される経路の決定を要求する第４のパケットを、前記受信部が受信すると、前記第１の通信装置の情報と、前記第１の通信装置が前記第１の水位で通信可能な通信装置の情報を、前記第４のパケットに追加して、隣接する通信装置に転送することにより、前記隣接する通信装置に経路の決定を要求する要求部
をさらに備えることを特徴とする請求項１〜３のいずれか１項に記載の通信装置。
【請求項５】
前記収集装置が前記データを収集するときに通知する水位の参考値として、前記第１の通信装置が設置されている地点での水位を測定するとともに、前記第２のパケットに応答して前記収集装置に送信されるパケットに、測定で得られた水位を含める測定部
をさらに備えることを特徴とする請求項１〜４のいずれか１項に記載の通信装置。
【請求項６】
水位が変動しうる領域の近傍に設置された複数の通信装置と、前記複数の通信装置からデータを収集する収集装置を備えるネットワーク中で第１の通信装置として使用される通信装置に、
前記第１の通信装置に隣接する第２の通信装置から、前記領域の現在の水位である第１の水位で前記第２の通信装置を介して通信可能な通信装置の情報と、前記領域での水位の予測値である第２の水位での前記収集装置への通信経路の決定の要求を含む第１のパケットを受信し、
前記第１のパケットで通知された各通信装置について、前記領域の水位が前記第２の水位であるときの前記第１の通信装置との間の通信状況の指標値を計算し、
前記指標値が表わす通信状況が相対的に良好な装置を、前記領域の水位が前記第２の水位であるときの前記収集装置宛てのパケットの転送先に決定し、
前記領域の水位が前記第２の水位であることと前記収集装置からの通信の要求を含む第２のパケットを受信すると、前記転送先に、前記収集装置宛のパケットを送信する
処理を行わせることを特徴とする通信プログラム。
【請求項７】
水位が変動しうる領域の近傍に設置された複数の通信装置と、
前記複数の通信装置からデータを収集する収集装置
を備え、
前記複数の通信装置のうちの第１の通信装置は、
前記第１の通信装置に隣接する第２の通信装置から、前記領域の現在の水位である第１の水位で前記第２の通信装置を介して通信可能な通信装置の情報と、前記領域での水位の予測値である第２の水位での前記収集装置への通信経路の決定の要求を含む第１のパケットを受信し、
前記第１のパケットで通知された各通信装置について、前記領域の水位が前記第２の水位であるときの前記第１の通信装置との間の通信状況の指標値を計算し、
前記指標値が表わす通信状況が相対的に良好な装置を、前記領域の水位が前記第２の水位であるときの前記収集装置宛てのパケットの転送先に決定し、
前記領域の水位が前記第２の水位であることと前記収集装置からの通信の要求を含む第２のパケットを受信すると、前記転送先に、前記収集装置宛のパケットを送信する
ことを特徴とする通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の通信装置を含むネットワークで行われる通信に関する。
【背景技術】
【０００２】
アドホックネットワークは、ネットワークに参加する通信装置が追加または削除された場合でも、動的にネットワークが形成されるため、利便性が高い。このため、アドホックネットワークは、センサネットワークなどに適用されることもある。例えば、河川、ダム、冠水の恐れのある道路などの水位の情報の収集にアドホックネットワークが使用されることもある。この場合、個々の通信装置は、センサで設置地点での水位を測定し、アドホックネットワークを用いて、予め決められた中継装置にデータを送信する。中継装置は、得られたデータを所定のサーバ等に送信する。
【０００３】
関連する技術として、パケット長に関する複数の基準ごとに、宛先アドレスとパケットの転送経路とを対応付けて格納する複数のルーティングテーブルを備える無線基地局が提案されている。この無線基地局は、受信したパケットの長さに応じて、複数のルーティングテーブルのいずれかを参照し、受信したパケットを転送先へ転送する（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１６６８０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
水位の変動が起こり得る領域の近傍にある装置を含むアドホックネットワークを用いてデータを集めるシステムでは、水位の変化によって装置間の通信の環境が変化する場合がある。このため、水位の変動により、変動前の水位で使用されている通信経路が使用できなくなることもある。水位の変動によって使用中の通信経路が使用できなくなると、新たに経路を決定することになるが、経路の決定には時間がかかるため、データの収集に支障が出る場合もある。
【０００６】
本発明は、１つの側面では、通信経路の切り替えにかかる時間を短くすることを目的とする。
【課題を解決するための手段】
【０００７】
１つの態様では、水位が変動しうる領域の近傍に設置された複数の通信装置と、前記複数の通信装置からデータを収集する収集装置を備えるネットワーク中で第１の通信装置として使用される通信装置は、受信部、計算部、決定部、送信部を備える。受信部は、前記第１の通信装置に隣接する第２の通信装置から、第１のパケットを受信する。第１のパケットは、前記領域の現在の水位である第１の水位で前記第２の通信装置を介して通信可能な通信装置の情報と、前記領域での水位の予測値である第２の水位での前記収集装置への通信経路の決定の要求を含む。計算部は、前記第１のパケットで通知された各通信装置について、前記領域の水位が前記第２の水位であるときの前記第１の通信装置との間の通信状況の指標値を計算する。決定部は、前記指標値が表わす通信状況が相対的に良好な装置を、前記領域の水位が前記第２の水位であるときの前記収集装置宛てのパケットの転送先に決定する。送信部は、前記領域の水位が前記第２の水位であることと前記収集装置からの通信の要求を含む第２のパケットを前記受信部が受信すると、前記転送先に、前記収集装置宛のパケットを送信する。
【発明の効果】
【０００８】
通信経路の切り替えにかかる時間が短くなる。
【図面の簡単な説明】
【０００９】
【図１】実施形態にかかるネットワークで行われる通信の例を説明する図である。
【図２】通信装置の構成の例を示す図である。
【図３】中継装置の構成の例を示す図である。
【図４】通信装置および中継装置のハードウェア構成の例を示す図である。
【図５】ネットワークの例を示す図である。
【図６】接続要求パケットのフォーマットの例を示す図である。
【図７】経路要求パケットのフォーマットの例を示す図である。
【図８】経路の探索方法の例を説明する図である。
【図９】中継装置および通信装置の設置方法の例を示す図である。
【図１０】受信レベルとコストの関係の例を示すテーブルである。
【図１１】経路の探索方法の例を説明する図である。
【図１２】通信装置１０Ｃが取得する情報の例を示す図である。
【図１３】経路の探索方法の例を説明する図である。
【図１４】経路の探索方法の例を説明する図である。
【図１５】経路要求パケットを受信した装置で行われる処理の例を説明するフローチャートである。
【図１６】ルーティングテーブルとディスカバリーテーブルの更新方法の例を説明するフローチャートである。
【図１７】応答パケットのフォーマットの例を示す図である。
【図１８】応答パケットを用いた処理の例を示す図である。
【図１９】応答パケットを用いた処理の例を示す図である。
【図２０】応答パケットを用いた処理の例を示す図である。
【図２１】応答パケットを受信した装置で行われる処理の例を説明するフローチャートである。
【図２２】複数の水位での経路を含むルーティングテーブルの例を示す図である。
【図２３】複数の水位での経路を含むルーティングテーブルの例を示す図である。
【図２４】データの送受信に使用されるパケットのフォーマットの例を示す図である。
【図２５】データの収集経路の変更の例を示す図である。
【発明を実施するための形態】
【００１０】
図１は、実施形態にかかるネットワークで行われる通信の例を説明する図である。図１に示すネットワークＮ１には、中継装置、通信装置Ａ〜Ｃが含まれている。通信装置Ａ〜Ｃは、センサを保持しており、設置されている位置での計測を行い、中継装置からの要求に応じて、計測値を中継装置に送信する。一方、中継装置は、通信装置Ａ〜Ｃに対してデータを要求し、通信装置Ａ〜Ｃから得られたデータをサーバ（図示せず）に中継している。従って、中継装置は、ネットワーク中の各通信装置で得られたデータの収集を行う収集装置としても動作している。
【００１１】
通信装置Ａ〜Ｃが設置されている位置の近傍の領域には河川があり、通信装置Ａと通信装置Ｃの間の通信、および、通信装置Ｂと通信装置Ｃの間の通信の状況は、水位の変動に応じて変化するものとする。なお、以下の説明で、通信装置の「近傍」とは、その通信装置が行う通信に影響を与える可能性がある因子が存在し得る範囲を指すものとする。例えば、ある通信装置の近傍に位置する河川は、その通信装置での通信に、河川の水位の変動による影響を及ぼすことができる。
【００１２】
（ａ１）中継装置、通信装置Ａ〜Ｃの各々は、通信装置Ａ〜Ｃの通信に影響する河川の現在の水位でのルーティングテーブルを生成する。例えば、現在の水位がＸｍであるとすると、中継装置、通信装置Ａ〜Ｃの各々は、水位がＸｍでの電波の受信状態を測定し、ルーティングテーブルを生成する。ここで、水位がＸｍでは、中継装置、通信装置Ａ、Ｂの間で互いに直接通信するように、ルーティングテーブルが生成されるものとする。また、水位がＸｍのとき、通信装置Ｃと中継装置は、通信装置Ａを介して互いに通信を行うように、経路が決定されたとする。従って、水位がＸｍの段階では、図１のＮ１に示すようにネットワークが形成されている。
【００１３】
（ａ２）水位がＹｍになる可能性があるとすると、中継装置は、予測値がＹｍである場合について、ネットワーク中の通信装置との間の経路を計算するために、水位の予測値をネットワーク中の通信装置に通知する。
【００１４】
（ａ３）予測値を受信した通信装置は、他の装置との間のリンクの状態を、通知された予測値を用いて計算し、中継装置宛てのパケットの転送先を決定する。さらに、各通信装置は、水位が予測値に達したときの中継装置宛てのパケットの転送先を、現在、通信可能な隣接装置に通知する。ここで、転送先を通知する対象となる装置は、転送先となる装置と同じであっても良く、また、異なっていても良い。例えば、水位がＹｍになると、通信装置Ｃは、通信装置Ａと通信ができなくなるが、通信装置Ｂとの通信が可能になると予測したとする。すると、通信装置Ｃは、現在通信可能な通信装置Ａに、水位がＹｍのときの中継装置宛てのデータの転送先を通信装置Ｂに決定したことを通知する。
【００１５】
（ａ４）通知を受けた装置は、その装置自身が転送先ではない場合、転送先として指定されている装置に対して、転送先に指定した装置の識別子と共に、水位がＹｍのときの転送先に決定されたことを通知する。例えば、通信装置Ｃにおいて水位がＹｍのときの転送先が通信装置Ｂに決定された場合、通信装置Ａは、通信装置Ｂに、水位がＹｍのときに通信装置Ｃから中継装置宛てのデータが転送されることを通知する。
【００１６】
（ａ５）転送先に決定された装置も、（ａ３）で述べた処理と同様に、水位が予測値に達したときの中継装置宛てのパケットの転送先の決定と、決定した結果の通知を行う。なお、中継装置と直接通信が可能な通信装置でも、同様の処理が行われる。例えば、通信装置Ｂは、通信装置Ｃにとって、水位がＹｍのときの中継装置宛てのパケットの転送先に設定されていることが通知されると、水位がＹｍのときに中継装置宛てのパケットの転送先を決定する。通信装置Ｂは、水位がＹｍであっても、中継装置と直接通信できると判定すると、中継装置に、水位がＹｍのときに通信装置Ｃからのデータを中継できることを通知する。これらの処理により、水位がＹｍのときに使用されるネットワークは、図１のＮ２に示すように形成される。
【００１７】
（ａ６）中継装置は、各通信装置にデータの送信を要求するときには、水位を通知する。以下、データの送信を要求するパケットを「データ要求パケット」と記載する。各通信装置は、データ要求パケットに指定されている水位に対応付けられた転送先を、中継装置宛てのデータの転送先に選択して、データの送信を行う。このため、水位がＸｍのとき、通信装置Ｃと中継装置の間の通信は、経路Ｒ１に示すように、通信装置Ａを介して行われる。
【００１８】
（ａ７）中継装置は、水位が変動したことを特定すると、新たな水位を指定して、データの送信を要求する。このとき、中継装置は予め予測してある経路のうち、新たな水位に対応付けられた経路を用いてデータ要求パケットを送信する。一方、各通信装置は、新たに送信されたデータ要求パケットに指定されている水位を用いて転送先を選択する。このため、水位がＹｍのとき、通信装置Ｃと中継装置の間の通信は、経路Ｒ２に示すように、通信装置Ｂを介して行われる。
【００１９】
このように、水位の変動の予測値の各々に対して、予め通信経路が形成されていると、水位が変動しても、経路の切り替えが即時的に行われる。従って、経路の再形成にかかる時間が長いことによるデータの収集の失敗を防止できる。なお、水位の変動による無線状況は、各通信装置や中継装置で予め予測され、予測結果に基づいて転送先が決定される。従って、ネットワーク中の各装置は、経路の計算を行おうとする水位が実際の水位と異なっていても問題なく経路を予測できる。例えば、図１の例では、水位の変動により、Ｙｍで通信装置Ｂと通信装置Ｃが通信できるようになることと、Ｙｍでは通信装置Ａと通信装置Ｃが通信できなくなることが特定される。通信装置Ｃはこの結果を、現在の水位（Ｘｍ）で通信が可能な通信装置Ａに通知することにより、他のネットワーク中の装置と水位Ｙｍでの計算結果を共有できる。すなわち、実施形態にかかるシステムは、予め水位が変動したときのネットワークを仮想的に形成しておくことにより、実際に水位の変動が起こったときに、予め計算してある経路を用いて、短時間で経路を切り替える。なお、図１の説明では、通信装置や中継装置が河川の近傍に設置されている場合を例として説明したが、通信装置や中継装置の設置位置は、水位が変動しうる領域の近傍であればよく、河川の近傍に限定されない。例えば、河川の他にも、ダム、冠水の恐れのある道路など、水位の変動しうる任意の領域の近傍で、通信装置や中継装置が使用されうる。
【００２０】
＜装置構成＞
以下、通信装置１０が設置地点での水位を計測し、中継装置４０の要求に応じて計測した水位を中継装置４０に通知する場合を例として説明する。なお、通信装置１０は、実装に応じて、水位以外の他の値の計測に用いられても良いものとする。
【００２１】
図２は、通信装置１０の構成の例を示す。通信装置１０は、送受信部１３、制御部２０、記憶部３０を備える。送受信部１３は、受信部１１、送信部１２を備える。制御部２０は、経路要求部２１、経路通知部２２、コスト計算部２３、経路決定部２４、水位測定部２５、転送先選択部２６、振り分け部２７を有する。記憶部３０は、ルーティングテーブル３１、ディスカバリーテーブル３２、拡張テーブル３３、測定データ３４を保持する。
【００２２】
受信部１１は、ネットワーク中の他の通信装置１０や中継装置４０からパケットを受信する。受信部１１は、受信したパケットを振り分け部２７に出力する。送信部１２は、ネットワーク中の他の通信装置１０や中継装置４０に向けてパケットを送信する。
【００２３】
振り分け部２７は、入力されたパケットの種類に応じて、出力先を決定する。例えば、振り分け部２７は、経路要求パケットや応答パケットを、経路決定部２４に出力する。一方、他の通信装置１０から受信したデータパケットが入力されると、振り分け部２７は、データパケットを転送先選択部２６に出力する。
【００２４】
経路要求部２１は、通信装置１０がパケットを送信しようとする通信装置１０または中継装置４０までの経路を求めるために、経路要求パケットを生成する。経路要求部２１は、送信部１２を介して、経路要求パケットを、隣接する全ての装置に送信する。経路要求パケットの例については後述する。隣接する装置は、通信装置１０であっても良く、また、中継装置４０であっても良い。ここで、ある通信装置１０に「隣接する」通信装置１０とは、ある通信装置１０から送信されたパケットを受信することができる範囲内に位置する通信装置のことを指すものとする。また、ある通信装置１０から送信されたパケットを受信できる範囲に位置する通信装置１０や中継装置４０のことを、その通信装置１０に「隣接する装置」と記載することがある。
【００２５】
経路通知部２２は、発見した経路を通知するために、応答パケットを生成する。応答パケットの例については後述する。経路通知部２２は、送信部１２を介して、応答パケットを、隣接する装置に送信する。
【００２６】
コスト計算部２３は、経路要求パケット中の情報を取得すると、隣接する通信装置１０や中継装置４０等との間の経路の状況を表わす指標値を計算する。以下の説明では、経路の状況を表わす指標値のことを「コスト」と記載することがある。コスト計算部２３は、得られたコストを経路決定部２４に出力する。コストの値は、通信状態が良好なほど小さくなるように計算されるものとする。そこで、経路決定部２４は、経路中のコストが小さくなるように、経路を決定する。さらに、経路決定部２４は、決定した経路を、適宜、経路通知部２２に通知する。また、経路決定部２４は、適宜、ルーティングテーブル３１、ディスカバリーテーブル３２、拡張テーブル３３の生成、更新、および、消去を行う。経路決定部２４の処理については後で詳しく説明する。
【００２７】
ルーティングテーブル３１は、通信装置１０が使用可能な経路の情報を保持している。ディスカバリーテーブル３２と拡張テーブル３３は、ルーティングテーブル３１の生成に使用される。ルーティングテーブル３１、ディスカバリーテーブル３２、拡張テーブル３３についても、具体例や使用方法については後述する。
【００２８】
水位測定部２５は、通信装置１０が設置されている地点での水位を測定する。水位測定部２５は、得られた値を測定データ３４として記憶部３０に格納する。水位測定部２５は、定期的に水位の計測を行っても良く、また、後述するように中継装置４０からの要求を受けてから水位を測定しても良い。
【００２９】
転送先選択部２６は、ユニキャスト通信のパケットについて、ルーティングテーブル３１を参照して、転送先を特定する。例えば、中継装置４０からの要求に応じて測定データを送信するときに、通信装置１０は、パケットを中継装置４０に送信するための転送先を決定する。
【００３０】
図３は、中継装置４０の構成の例を示す。中継装置４０は、送受信部１３、制御部５０、記憶部３０を備える。制御部５０は、データ要求部５１を備え、さらに、経路要求部２１、経路通知部２２、コスト計算部２３、経路決定部２４、転送先選択部２６、振り分け部２７を備える。送受信部１３の動作と記憶部３０に保持されている情報は、中継装置４０においても通信装置１０と同様である。また、経路要求部２１、経路通知部２２、コスト計算部２３、経路決定部２４、転送先選択部２６、振り分け部２７の処理は、中継装置４０においても通信装置１０と同様である。
【００３１】
データ要求部５１は、定期的に、通信装置１０にデータの送信を要求するためのデータ要求パケットを生成する。データ要求部５１は、データ要求パケットを転送先選択部２６に出力する。転送先選択部２６は、ルーティングテーブル３１を参照して、データ要求パケットの転送先を決定する。転送先選択部２６は、送信部１２を介して、データ要求パケットを転送先に送信する。
【００３２】
図４は、通信装置１０および中継装置４０のハードウェア構成の例を示す。通信装置１０は、プロセッサ１００ａ、バス１０１（１０１ａ〜１０１ｃ）、センサ１０２、タイマＩＣ１０４、ＤＲＡＭ１０６、フラッシュメモリ１０７、無線モジュール１０８を備える。バス１０１ａ〜１０１ｃは、プロセッサ１００ａ、タイマＩＣ１０４、ＤＲＡＭ１０６、フラッシュメモリ１０７、無線モジュール１０８の間を、相互にデータを入出力できるように接続する。
【００３３】
プロセッサ１００（１００ａ、１００ｂ）は、MicroProcessing Unit（ＭＰＵ）などの任意の処理回路である。プロセッサ１００ａ、１００ｂは、フラッシュメモリ１０７に格納されたファームウェアなどのプログラムを読み込んで処理を行う。このとき、プロセッサ１００は、ＤＲＡＭ１０６をワーキングメモリとして使用できる。プロセッサ１００ａは、経路要求部２１、経路通知部２２、コスト計算部２３、経路決定部２４、転送先選択部２６、振り分け部２７として動作する。ＤＲＡＭ１０６は、記憶部３０を実現する。通信装置１０において、無線モジュール１０８は、送受信部１３として動作する。タイマＩＣ１０４は、時刻情報の取得、経路要求パケットの送信から経過した時間の測定などに用いられる。このため、タイマＩＣ１０４は、経路決定部２４などの一部として動作する。センサ１０２は、水位測定部２５として動作する。
【００３４】
中継装置４０は、プロセッサ１００ｂ、バス１０１（１０１ｄ〜１０１ｆ）、ＰＨＹチップ１０３、タイマＩＣ１０４、ＤＲＡＭ１０６、フラッシュメモリ１０７、無線モジュール１０８を備える。中継装置４０に含まれているプロセッサ１００ｂは、制御部５０として動作する。中継装置４０中のタイマＩＣ１０４は、データを収集する周期の測定に用いられるため、データ要求部５１の一部として動作する。中継装置４０においても、ＤＲＡＭ１０６は、記憶部３０として動作し、無線モジュール１０８は、送受信部１３として動作する。さらに、中継装置４０は、ＰＨＹチップ１０３を介して他のネットワークとの間の通信を行うことができる。
【００３５】
通信装置１０と中継装置４０のいずれにおいても、無線モジュール１０８にはアンテナが含まれているものとする。さらに、予め、フラッシュメモリ１０７には、アンテナが設置されている位置の緯度と経度、設置地点の水底からのアンテナの高さなどが記録されているものとする。
【００３６】
なお、ファームウェアなどのプログラムは、コンピュータ読み取り可能な記憶媒体に格納されて提供され、通信装置１０や中継装置４０にインストールされてもよい。また、プログラムは、ネットワークからＰＨＹチップ１０３や無線モジュール１０８を介してダウンロードされることにより通信装置１０や中継装置４０にインストールされてもよい。さらに、実施形態に応じて、ＤＲＡＭ１０６やフラッシュメモリ１０７以外の他の種類の記憶装置が利用されることがある。また、通信装置１０および中継装置４０は、コンピュータによって実現されても良い。
【００３７】
＜水位の予測値ごとの経路の生成＞
図５は、ネットワークの例を示す。以下、図５のネットワークで水位の予測値の各々について経路が決定される場合の処理の例を、経路要求パケットの生成、経路要求パケットの受信処理、コストの計算、経路要求パケットを用いた情報の伝達、経路の決定に分けて説明する。以下の説明では、現在の水位とは異なる水位についての経路を求めるときの手順について説明するが、現在の水位での経路の探索も同様の手順で行われる。以下の説明では、現在の水位が１ｍであるのに対し、水位が０ｍのときの経路を探索する場合を例として説明する。
【００３８】
以下の説明では、処理を行っている装置をわかりやすくするために、中継装置４０の識別子としてＤを用いることがある。また、ネットワークやパケットが送信される範囲などを示す図では、見やすくするために、通信装置１０については、末尾のアルファベットのみを示す。例えば、通信装置１０Ａについては、図５では単にＡと示している。ルーティングテーブル３１、ディスカバリーテーブル３２、拡張テーブル３３でも、ネットワークの図との整合を取るために、通信装置１０に割り当てられた符号の末尾のアルファベットのみを示すものとする。さらに、通信装置１０や中継装置４０の内部の説明を行うときは、符号の末尾に、通信装置１０または中継装置４０に割り当てられた識別子と同じアルファベットの小文字を付すものとする。例えば、経路要求部２１ｄは、中継装置４０に含まれている経路要求部２１であり、経路要求部２１ａは、通信装置１０Ａに含まれている経路要求部２１を指す。さらに、中継装置４０や通信装置１０が備えるルーティングテーブル３１などの情報が更新されていく様子を分かりやすくするために、以下の説明では、テーブルの参照番号の後に、アンダースコアを挟んで、テーブルが更新された回数を記載する。例えば、最初に中継装置４０が生成するディスカバリーテーブル３２には、「３２ｄ＿１」という番号を付している。
【００３９】
〔経路要求パケットの生成〕
中継装置４０は、アドホックネットワークに参加しようとする各通信装置１０から、図６に示す接続要求パケットを受信する。接続要求パケットには、受信ＰＩＤ（Personal area network ID）、受信アドレス、送信ＰＩＤ、送信アドレス、コマンドＩＤ、要求元ＩＤ、チェックサムが含まれている。接続要求パケット中の受信ＰＩＤは、接続要求パケットの宛先となる中継装置４０が含まれているネットワークに割り当てられた識別子であり、受信アドレスは、中継装置４０に割り当てられたアドレスである。アドホックネットワークに参加しようとする通信装置１０は、データの送信先となる中継装置４０のアドレスとＰＩＤを予め記憶部３０に保持しているものとする。送信ＰＩＤは、接続要求パケットの送信元を含むネットワークに割り当てられた識別子であり、送信アドレスは、接続要求パケットの送信元の通信装置１０に割り当てられたアドレスである。コマンドＩＤは、接続要求パケットを識別できる値であり、要求元ＩＤは、接続要求パケットの送信元の通信装置１０を特定する識別子である。中継装置４０は、接続要求パケットを受信すると、送信元の通信装置１０が含まれているネットワークのＰＩＤと送信元の通信装置１０のアドレスを記憶部３０ｄに記憶する。
【００４０】
中継装置４０中の経路決定部２４ｄは、これまでに受信した接続要求パケットの送信元のうちで経路の探索が終わっていない通信装置１０から、探索する経路の終点とする通信装置１０を選択する。さらに、経路決定部２４ｄは、中継装置４０が含まれているネットワークに割り当てられたＰＩＤを記憶しているものとする。経路決定部２４ｄは、探索する経路を適用するときの水位も選択する。
【００４１】
経路決定部２４ｄは、探索する経路の終点の通信装置１０を選択すると、ルーティングテーブル３１ｄ＿１とディスカバリーテーブル３２ｄ＿１を生成する。ルーティングテーブル３１ｄ＿１とディスカバリーテーブル３２ｄ＿１の例を図５に示す。
【００４２】
ルーティングテーブル３１は、水位、開始ノード、次ホップ、目的ノード、経路状態を含む。水位はそのエントリに記録されている経路が使用されるときの水位である。開始ノードは、経路の探索を開始した装置である。目的ノードは、経路の終点として選択された通信装置１０である。次ホップは、目的ノードにパケットを送信する際の転送先となる装置である。経路状態は、処理対象の経路についての状態を示す。処理対象の経路に対する状態としては、発見中、発見失敗、有効などが使用される。「発見中」は、処理対象の経路の検索が開始されてから、検索の結果が未確定であることを示す。「発見失敗」は、検索しようとしている経路が発見できなかったことを示す。「有効」は、処理対象の経路が発見され、転送経路として使用可能な状態にあることを示す。
【００４３】
ディスカバリーテーブル３２は、ルーティングテーブル３１を生成するために使用されるテーブルであり、処理中の経路がある間、保持されている。処理対象の経路が発見されると、ディスカバリーテーブル３２は消去される。ディスカバリーテーブル３２は、水位、開始ノード、目的ノード、進路コスト、残留コストを含む。水位、開始ノード、目的ノードは、ルーティングテーブル３１と同様である。進路コストは、経路要求パケットの送信元（開始ノード）から、ディスカバリーテーブル３２を保持している装置自身までの経路のコストの合計である。例えば、中継装置４０ｄが経路要求パケットを生成する場合、経路決定部２４ｄは、進路コストを０に設定する。残留コストは、ディスカバリーテーブル３２を保持している装置から、経路の終点までの経路のコストの合計値である。経路が決定されるまでは、残留コストの値は分からないため、経路決定部２４ａは、ディスカバリーテーブル３２ｄ＿１の残留コストの値を未定に設定する。
【００４４】
経路要求部２１ｄは、ルーティングテーブル３１ｄ＿１とディスカバリーテーブル３２ｄ＿１を用いて、経路要求パケットを生成する。経路要求パケットのフォーマットの例を図７のＦ１に示す。経路要求パケットは、ヘッダ、ペイロード、チェックサムを含む。ヘッダには、受信ＰＩＤ、受信アドレス、送信ＰＩＤ、送信アドレスが含まれる。受信ＰＩＤは、探索中の経路の終点とする通信装置１０を含むネットワークに割り当てられた識別子である。受信アドレスは、探索中の経路の終点の通信装置１０に割り当てられたアドレスである。送信ＰＩＤは、経路要求パケットの送信元を含むネットワークに割り当てられた識別子である。送信アドレスは、経路要求パケットの送信元に割り当てられたアドレスである。
【００４５】
ペイロードは、コマンドＩＤ、開始ノード、目的ノード、シーケンス番号、水位情報、経路中に含まれる可能性のある通信装置１０や中継装置４０の情報（装置情報）を保持する。コマンドＩＤは、パケットの種類を特定するための情報である。例えば、経路要求パケットでは、コマンドＩＤ＝１に設定されているものとする。シーケンス番号は、１つの経路要求パケットを一意に特定するための番号である。
【００４６】
装置情報は、経路に含まれる可能性のある各装置について、識別子、アンテナ高、アンテナが設置されている地点の緯度と経度、進路コストが含まれる。経路要求部２１ｄは、予め、中継装置４０が設置されている地点の緯度、経路、アンテナ高を記憶しており、経路要求パケットを生成するときには、記憶している情報を使用する。さらに、経路決定部２４ｄは、進路コストをディスカバリーテーブル３２ｄ＿１から取得する。図５の例では、中継装置４０自身が経路要求パケットを生成するので、中継装置４０が生成する経路要求パケットでは、進路コスト＝０に設定される。
【００４７】
図７のＰ１に、経路要求部２１ｄが通信装置１０Ｃに至る経路を求めるために生成する経路要求パケットのペイロード中に含まれる情報の例を示す。以下、Ｐ１に示す内容をペイロードに含むパケットを経路要求パケットＰ１と記載する。経路要求パケットＰ１は、水位が０ｍである場合の例である。経路要求パケットＰ１では、開始ノードが中継装置４０、目的ノードが通信装置１０Ｃ、シーケンス番号＝１に設定されている。さらに、装置情報として、中継装置４０が保持しているアンテナの高さ、アンテナが設置されている地点の緯度と経度が含まれている。また、進路コストは０に設定されている。
【００４８】
経路要求部２１ｄは、経路要求パケットを送信部１２ｄに出力する。送信部１２ｄは、経路要求パケットＰ１を、隣接する全ての通信装置１０にブロードキャストする。図５では、中継装置４０からのパケットが届く範囲を、ＡＲｄの円で示している。つまり、シーケンス番号＝１の経路要求パケットは、通信装置１０Ａと通信装置１０Ｂに送信されるものとする。
【００４９】
〔経路要求パケットの受信処理〕
図８は、通信装置１０Ａと通信装置１０Ｂで行われる処理の例を示す。通信装置１０Ａは、受信部１１ａを用いて、中継装置４０から送信された経路要求パケットＰ１を受信する。受信部１１ａは、経路要求パケットＰ１を振り分け部２７ａに出力する。振り分け部２７ａは、経路要求パケットＰ１を、経路決定部２４ａに出力する。
【００５０】
経路決定部２４ａは、経路要求パケットＰ１の受信に伴って拡張テーブル３３ａ＿１を生成し、拡張テーブル３３ａ＿１と経路要求パケットＰ１を用いて、ディスカバリーテーブル３２ａ＿１とルーティングテーブル３１ａ＿１を更新する。そこで、まず、拡張テーブル３３ａ＿１の生成について説明する。
【００５１】
拡張テーブル３３は、水位、ノード、アンテナ高、緯度、経度、進路コスト、コスト、情報送信ノードを、各エントリに含んでいる。拡張テーブル３３に含まれている情報のうち、ノード、アンテナ高、緯度、経度、進路コストについては、経路要求パケットに含まれている装置情報に含まれている各情報要素である。情報送信ノードは、経路要求パケットの転送元である。ここで、経路要求パケット中の装置情報には隣接する装置以外の情報も含まれるため、経路決定部２４は、後述する応答パケットの送信のために、転送元を記録している。経路決定部２４ａは、経路要求パケットＰ１に含まれている装置情報を、水位、および、経路要求パケットＰ１を送信してきた装置の識別子と共に、拡張テーブル３３ａ_１に記録する。すると、この時点で、拡張テーブル３３ａ＿１の情報は、以下のようになる。
水位          ：０ｍ
ノード        ：中継装置４０
アンテナ高    ：Ｈｄ
緯度          ：ＬＡＴｄ
経度          ：ＬＯＮＧｄ
進路コスト    ：０
情報送信ノード：中継装置４０
【００５２】
経路決定部２４ａは、装置情報として通知された各装置との間のリンクについてのコストの計算を、コスト計算部２３ａに要求する。コストの計算方法の例については、後述する。コスト計算部２３ａは、コストの計算結果を経路決定部２４ａに通知する。コストが計算されると、経路決定部２４ａは、得られた値を拡張テーブル３３ａ＿１に記録する。ここでは、中継装置４０と通信装置１０Ａの間のリンクについて得られたコストは１であったとする。すると、拡張テーブル３３ａ＿１は、図８に示すようになる。なお、図８では、ネットワーク中の経路の近傍に、各経路のコストを四角で囲んで示している。
【００５３】
次に、経路決定部２４ａは、ディスカバリーテーブル３２ａ＿１を生成する。経路決定部２４ａは、経路要求パケットＰ１のペイロード中に記録されている開始ノード、目的ノード、水位の組み合わせを、ディスカバリーテーブル３２ａ＿１に記録し、残留コストを未定に設定する。さらに、経路決定部２４ａは、拡張テーブル３３ａ＿１の各エントリについて、進路コストとコストの合計を求め、得られた合計が最小のエントリの値を、ディスカバリーテーブル３２ａ＿１の進路コストの値とする。
【００５４】
さらに、経路決定部２４ａは、ルーティングテーブル３１ａ＿１を更新する。経路決定部２４ａは、経路要求パケットＰ１を受信したことから、経路要求パケットＰ１で指定された水位において、経路要求パケットの送信元に向かう経路も検索する。経路決定部２４ａは、経路要求パケットＰ１の開始ノードフィールドを用いて、経路要求パケットＰ１の送信元が中継装置４０であることを特定する。さらに、経路決定部２４ａは、通信装置１０Ａを開始ノード、中継装置４０を目的ノードとする経路を検索対象とするために、以下の情報をルーティングテーブル３１ａ＿１に格納する。
水位      ：０ｍ
開始ノード：通信装置１０Ａ
目的ノード：中継装置４０
ただし、この時点では、経路決定部２４ａは、通信装置１０Ａから中継装置４０に至る経路での次ホップがどの装置であるかを特定していない。また、経路が有効であるかについても未定である。
【００５５】
次に、経路決定部２４ａは、拡張テーブル３３ａ＿１のエントリ中で、進路コストとコストの合計値が有効値であるノードのうち、合計値が最小のノードを、次ホップに選択する。なお、進路コストとコストの合計値が有効値ではない（無効値、ＮＧ）であることは、そのエントリのノードを介した経路での通信ができないことを示している。
【００５６】
この処理により、経路決定部２４ａは、経路要求パケットＰ１により要求された経路と逆向きの方向で、経路要求パケットＰ１の送信元に至る経路を最適化することができる。図８の例では、拡張テーブル３３ａ＿１に基づいて、次ホップとして中継装置４０が選択される。このため、経路決定部２４ａは、図８のルーティングテーブル３１ａ＿１の１番目のエントリを記録する。なお、１番目のエントリでは、水位が０ｍにおいて、通信装置１０Ａから中継装置４０に至る経路は、通信装置１０Ａの次ホップのノードが中継装置４０であることが記録されている。
【００５７】
さらに、経路決定部２４ａは、経路要求パケットＰ１のペイロード中に記録されている開始ノード、目的ノード、水位の組み合わせを、次ホップが未定であることと、経路状態が発見中であること共に、ルーティングテーブル３１ａ＿１に記録する。経路要求パケットＰ１は、中継装置４０から通信装置１０Ｃに至る経路の検索に用いられているので、経路決定部２４ａは、経路要求パケットＰ１に基づいて、ルーティングテーブル３１ａ＿１（図８）の２番目のエントリを記録する。経路決定部２４ａは、ルーティングテーブル３１ａ＿１の更新が終わると、経路要求パケットＰ１を経路要求部２１ａに出力する。
【００５８】
通信装置１０Ｂにおいても、経路要求パケットＰ１の受信に応じて、通信装置１０Ａと同様の処理が行われる。このため、経路決定部２４ｂは、経路要求パケットＰ１を用いて、図８に示す拡張テーブル３３ｂ＿１を生成する。なお、図８の例では、中継装置４０と通信装置１０ｂとの間のリンクのコストも１である場合を示している。さらに、経路決定部２４ｂは、図８に示すディスカバリーテーブル３２ｂ＿１を生成する。また、通信装置１０Ｂと中継装置４０との間の経路について、ルーティングテーブル３１ｂ＿１の１番目のエントリを生成する。通信装置１０Ｂと中継装置４０との間の経路の記録に際して経路決定部２４ｂが行う処理も、経路決定部２４ａが通信装置１０Ａと中継装置４０との間の経路の記録に際して行う処理と同様である。さらに、経路決定部２４ｂは、探索中の経路の情報も、ルーティングテーブル３１ｂ＿１の２番目のエントリに示すように記録する。経路決定部２４ｂも、ルーティングテーブル３１ａ＿１の更新が終わると、経路要求パケットＰ１を経路要求部２１ｂに出力する。
【００５９】
〔コストの計算〕
図９は、中継装置４０および通信装置１０の設置方法の例を示す。図９は中継装置４０と通信装置１０Ａが河川の川岸に設置された場合の例を示している。図９の斜線部分は、川岸の断面を表わしており、Ｗは川の水位を表わすものとする。
【００６０】
コスト計算部２３ａは、通信装置１０Ａのアンテナが設置されている位置の緯度と経度、および、水位が０ｍのときの通信装置１０Ａのアンテナの高さを記憶しているものとする。コスト計算部２３ａは、拡張テーブル３３ａ＿１の中継装置４０についてのエントリから、中継装置４０のアンテナが設置されている位置の緯度と経度を取得する。コスト計算部２３ａは、通信装置１０Ａと中継装置４０の各々の緯度と経度を用いて、通信装置１０Ａと中継装置４０の間の距離を計算する。なお、通信装置１０Ａと中継装置４０の間の距離の計算方法は、緯度と経度を用いて２点間の距離を計算する任意の方法である。以下、通信装置１０Ａと中継装置４０の間の距離をＤｄａと表記する。
【００６１】
コスト計算部２３ａは、読み込んだエントリを用いて、水面から見たアンテナの高さを、中継装置４０のアンテナと通信装置１０Ａのアンテナの両方について計算する。コスト計算部２３ａは、水位と中継装置４０のアンテナの高さを、拡張テーブル３３ａ＿１から取得すると、次式を用いて、中継装置４０のアンテナの水面からの高さＨＥｄを求める。
ＨＥｄ＝Ｈｄ−Ｗ
なお、Ｈｄは、水位が０ｍのときの中継装置４０のアンテナの高さであり、Ｗは水位である。同様に、水位が０ｍの場合の通信装置１０Ａのアンテナの高さ（Ｈａ）を用いて、コスト計算部２３ａは、求めようとする経路での通信装置１０Ａのアンテナの水面からの高さＨＥａを求める。ここで、ＨＥａ＝Ｈａ−Ｗの関係が成り立っているものとする。なお、経路要求パケットＰ１が送信された場合、水位が０ｍのときの受信レベルが計算されるので、ＨＥａ＝Ｈａ、ＨＥｄ＝Ｈｄである。
【００６２】
そこで、コスト計算部２３ａは、ＨＥｄ、ＨＥａ、Ｄｄａなどの値を用いて、中継装置４０のアンテナから放射された電磁波が水面を介して通信装置１０Ａのアンテナに届くとき（反射波）の経路長を計算する。このとき、コスト計算部２３ａは、電磁波が水面に入射するときの入射角と、水面からの反射角が同じ角度になるように計算するものとする。さらに、コスト計算部２３ａは、中継装置４０のアンテナから通信装置１０Ａのアンテナに到達する直接波の経路も、ＨＥｄ、ＨＥａ、Ｄｄａを用いて計算する。さらに、コスト計算部２３ａは、直接波についての経路長と水面を介した反射波での経路長の差を算出し、その差を用いて、直接波と反射波の間で位相がどの程度ずれているかを計算する。コスト計算部２３ａは、位相のずれを用いて、直接波と反射波を合成することにより得られる合成波を計算し、合成波の強度から、通信装置１０Ａが中継装置４０から受信する信号の受信レベルＲを求める。
【００６３】
なお、以上の手順で計算される受信レベルは、経路要求パケットで探索が要求された水位での受信レベルの予測値である。このため、経路要求パケットを用いて探索中の水位での受信レベルが悪くても、現実の水位では、受信レベルが良好である場合がある。例えば、水面から反射する電磁波と直接波の位相の関係により、水位が１ｍでは良好に通信ができるが、水位が０ｍや５ｍとなると通信ができない場合もあり得る。
【００６４】
以上の説明では、通信装置１０Ａに含まれているコスト計算部２３ａを例として処理を説明したが、他の通信装置１０や中継装置４０でも、同様の処理により、受信レベルが計算される。
【００６５】
図１０は、受信レベルとコストの関係の例を示す。コスト計算部２３は、予め記憶している閾値Ｔｈ１、閾値Ｔｈ２と、計算によって得られた受信レベルＲを比較する。閾値Ｔｈ１は、通信状態が良好であると判定できる受信レベルの最小値である。一方、閾値Ｔｈ２は、通信が可能であると判定できる受信レベルの最小値である。従って、受信レベルが閾値Ｔｈ２を下回ると、コスト計算部２３は、計算の対象となっているリンクを用いた通信はできないと判定し、コストをＮＧ（無効値）に設定する。ＮＧのコストを含む経路のコストの合計値もＮＧとなるものとする。一方、受信レベルが閾値Ｔｈ１よりも大きいと、コスト計算部２３は、そのリンクのコストを１に設定する。また、受信レベルが閾値Ｔｈ１よりも小さく、閾値Ｔｈ２以上であれば、コスト計算部２３は、コストを６に設定する。
【００６６】
なお、図１０のテーブルは一例であって、コストの値の設定は、実装に応じて変更されうるものとする。さらに、図１０の例では、２つの閾値を用いて、コストを３段階に分けているが、実装に応じて、コストの値が４段階以上に分類されても良い。
【００６７】
〔経路要求パケットを用いた情報の伝達〕
経路要求パケットを受信した通信装置１０は、検索中の経路の終点に指定されていない場合、隣接する全ての装置に、現在の水位で通信可能な装置の情報と、検索の対象となっている水位の予測値を通知する。以下、図１１を参照しながら、具体的な処理を、通信装置１０Ａ、１０Ｂが経路要求パケットＰ１を受信した場合を例として説明する。
【００６８】
（ｂ１）通信装置１０Ａからの情報の伝達
通信装置１０Ａ中の経路要求部２１ａは、経路要求パケットＰ１が入力されると、経路要求パケットＰ２を生成する。経路要求パケットＰ２には、経路要求パケットＰ１に含まれる情報に加えて、通信装置１０Ａの装置情報が含まれる。経路要求部２１ａは、通信装置１０Ａの識別子、通信装置１０Ａのアンテナ高、通信装置１０Ａの設置地点の緯度、経度、進路コストを、通信装置１０Ａの装置情報とする。なお、経路要求部２１ａは、ルーティングテーブル３１ａ＿１（図８）において経路状態が「発見中」に設定されている経路について、ディスカバリーテーブル３２ａ＿１（図８）から進路コストを取得するものとする。図１１のＰ２に、経路要求パケットＰ２のペイロードの情報を示す。
【００６９】
経路要求部２１ａは、経路要求パケットＰ１のうち、開始ノード、目的ノード、シーケンス番号、水位情報、通信装置１０Ａ以外の装置情報については、情報を変更しないものとする。
【００７０】
経路要求部２１ａは、経路要求パケットＰ２を送信部１２ａに出力する。送信部１２ａは、経路要求パケットＰ２を隣接する全ての装置に送信する。図１１では、通信装置１０Ａから送信されたパケットが受信される範囲をＡＲａで示している。従って、経路要求パケットＰ２は、中継装置４０、通信装置１０Ｂ、および、通信装置１０Ｃに送信される。
【００７１】
中継装置４０の経路決定部２４ｄは、受信部１１ｄや振り分け部２７ｄを介して経路要求パケットＰ２を取得すると、シーケンス番号を抽出する。経路決定部２４ｄは、中継装置４０が送信した経路要求パケットＰ１に付したシーケンス番号を記憶しており、同じシーケンス番号を保持する経路要求パケットを廃棄する。
【００７２】
通信装置１０Ｂの経路決定部２４ｂは、受信部１１ｂと振り分け部２７ｂを介して経路要求パケットＰ２を取得する。経路決定部２４ｂは、経路要求パケットＰ２を受信すると、図８を参照しながら説明したのと同様の手順により、通信装置１０Ａの装置情報を、拡張テーブル３３に格納する。さらに、図９、図１０を参照しながら説明した処理により、通信装置１０Ａと通信装置１０Ｂとの間のコストを計算する。このため、経路決定部２４ｂは、拡張テーブル３３ｂ＿１（図８）を拡張テーブル３３ｂ＿２（図１１）に更新する。なお、図１１の例では、通信装置１０Ａと通信装置１０Ｂとの間のコストが１である場合を示している。さらに図１１中の四角で囲んだ数値も、その四角が配置されている位置に示されている経路のコストである。他の図においても、同様の手法で経路のコストを示す。
【００７３】
次に、経路決定部２４ｂは、拡張テーブル３３ｂ＿２に新たに追加したエントリ（通信装置１０Ａについてのエントリ）での進路コストとコストの合計値を、ディスカバリーテーブル３２ｂ＿１の進路コストの値と比較する。ここで、拡張テーブル３３ｂ＿２中の通信装置１０Ａについてのエントリでの進路コストとコストの合計値は、中継装置４０から通信装置１０Ａを介して通信装置１０Ｂに至る経路のコストである。一方、ディスカバリーテーブル３２ｂ＿１の進路コストは、中継装置４０から直接、通信装置１０Ｂに至る経路のコストである。経路決定部２４ｂは、両者のうちで通信経路の良いほうを選択するために、通信装置１０Ａについてのエントリでの進路コストとコストの合計値と、ディスカバリーテーブル３２ｂ＿１の進路コストを比較している。ここでは、合計値の方が、ディスカバリーテーブル３２ｂ＿１の進路コストよりも大きいので、経路決定部２４ｂは、中継装置４０と通信装置１０Ｂの間で直接通信するほうが、通信装置１０Ａを介して通信するよりも通信状況が良いと判定する。そこで、経路決定部２４ｂは、ディスカバリーテーブル３２ｂ＿１とルーティングテーブル３１ｂ＿１を更新しない。
【００７４】
図１２は、経路要求パケットＰ２を用いて通信装置１０Ｃが取得する情報の例を示す。通信装置１０Ｃの経路決定部２４ｃは、受信部１１ｃと振り分け部２７ｃを介して経路要求パケットＰ２を取得し、図８を参照しながら説明したのと同様の手順により、通信装置１０Ａの装置情報を、拡張テーブル３３ｃ＿１に格納する。さらに、図９、図１０を参照しながら説明した処理により、水位が０ｍである場合について、通信装置１０Ａと通信装置１０Ｃとの間のコストを計算する。また、経路要求パケットＰ２に中継装置４０の装置情報も含まれているので、コスト計算部２３ｃは、中継装置４０と通信装置１０Ｃとの間の受信レベルを求め、通信装置１０Ａとの間と同様にコストを求める。ここでは、中継装置４０と通信装置１０Ｃは、水位がいずれの値であっても直接通信できないものとする。すると、コスト計算部２３ｃは、中継装置４０と通信装置１０Ｃとの間のコストをＮＧに決定する。さらに、通信装置１０Ｃは経路要求パケットＰ２を通信装置１０Ａから受信しているので、経路要求パケットＰ２から取得したいずれの装置情報についても、情報送信ノードを通信装置１０Ａに設定する。この処理により、経路決定部２４ｃは、通信装置１０Ｃは中継装置４０と通信装置１０Ａのいずれの装置に対しても、通信装置１０Ａを介して通信できることを記録していることになる。
【００７５】
経路決定部２４ｃの処理により、図１２に示す拡張テーブル３３ｃ＿１が生成される。図１２の例では、水位が０ｍの場合の通信装置１０Ａと通信装置１０Ｃとの間のコストが６である。なお、図１２の例では、水位が０ｍの場合の通信装置１０Ａと通信装置１０Ｃとの間の通信状態は良好ではなくなるが、現在の水位は１ｍであるので通信装置１０Ａと通信装置１０Ｃとの間の通信は良好であるものとする。
【００７６】
次に、経路決定部２４ｃは、経路要求パケットＰ２のペイロード中に記録されている開始ノード、目的ノード、水位の組み合わせを、ディスカバリーテーブル３２ｃ＿１に記録する。経路決定部２４ｃは、経路要求パケットＰ２での目的ノードが通信装置１０Ｃであることから、通信装置１０Ｃ自身が経路要求パケットＰ２で探索される経路の終点であると判定する。そこで、経路決定部２４ｃは、ディスカバリーテーブル３２ｃ＿１において、残留コストを０に設定する。さらに、経路決定部２４ｃは、拡張テーブル３３ｃ＿１のエントリ中で進路コストとコストの合計を求め、得られた合計が最小のエントリの値を、ディスカバリーテーブル３２ｃ＿１の進路コストの値とする。ここでは、中継装置４０についてのエントリでの進路コストとコストの合計は、ＮＧとなる。一方、通信装置１０Ａについてのエントリでの進路コストとコストの合計は、１＋６＝７となる。そこで、経路決定部２４ｃは、ディスカバリーテーブル３２ｃ＿１での進路コストを７に設定する。
【００７７】
経路決定部２４ｃは、ルーティングテーブル３１ｃ＿１を更新する。経路決定部２４ｃは、経路要求パケットＰ２で指定された水位においての、通信装置１０Ｃから経路要求パケットＰ２中の開始ノードである中継装置４０までの経路を検索する。
【００７８】
次に、経路決定部２４ｃは、拡張テーブル３３ｃ＿１のエントリ中で、進路コストとコストの合計値が有効値であるノードのうち、合計値が最小のノードを、次ホップに選択する。ディスカバリーテーブル３２ｃ＿１の更新の際の計算結果から、経路決定部２４ｃは、通信装置１０Ａのエントリでの進路コストとコストの合計値は有効値で、最小値でもあることを認識している。このため、経路決定部２４ｃは、中継装置４０に至る経路での次ホップとして通信装置１０Ａを選択する。従って、ルーティングテーブル３１ｃ＿１は、図１２に示すようになる。
【００７９】
（ｂ２）通信装置１０Ｂからの情報の伝達
通信装置１０Ｂも通信装置１０Ａと同様に、経路要求パケットＰ１の受信後に経路要求パケットＰ３を生成し、隣接する装置に送信することができる。以下の説明では、通信装置１０Ｂが経路要求パケットＰ１を受信した後で、経路要求パケットＰ２を受信する前に、経路要求パケットＰ３を送信した場合に、行われる処理の例を説明する。
【００８０】
経路要求部２１ｂは、経路要求部２１ａと同様の処理を行うことにより、経路要求パケットＰ３を生成する。経路要求パケットＰ３に含まれているペイロードの情報の例を、図１３のＰ３に示す。経路要求パケットＰ３には、経路要求パケットＰ１に含まれる情報に加えて、通信装置１０Ｂの装置情報が含まれている。経路要求部２１ｂは、経路要求パケットＰ３を送信部１２ｂに出力する。送信部１２ｂは、隣接する全ての装置に、経路要求パケットＰ３を送信する。図１３では、現在の水位（１ｍ）において、通信装置１０Ｂから送信されたパケットが受信される範囲をＡＲｂで示している。従って、経路要求パケットＰ３は、中継装置４０と通信装置１０Ａに送信されるが、通信装置１０Ｃに送信されない。
【００８１】
経路要求パケットＰ３を受信した中継装置４０は、経路要求パケットＰ３に含まれているシーケンス番号が経路要求パケットＰ１のシーケンス番号と一致するため、経路要求パケットＰ３を廃棄する。
【００８２】
通信装置１０Ａが経路要求パケットＰ３を受信すると、経路決定部２４ａは、経路要求パケットＰ３に含まれている経路情報を抽出する。経路決定部２４ａは、拡張テーブル３３ａ＿１（図８）にエントリが生成されていない装置についての装置情報が経路要求パケットＰ３に含まれているかを判定する。図８に示すように、拡張テーブル３３ａ＿１には中継装置４０のエントリがあるが、通信装置１０Ｂについてのエントリはない。そこで、経路決定部２４ａは、通信装置１０Ｂについてのエントリを拡張テーブル３３に追加することにより、拡張テーブル３３ａ＿１を拡張テーブル３３ａ＿２（図１３）に更新する。通信装置１０Ｂについてのエントリを拡張テーブル３３に追加するときに行われる処理は、経路決定部２４ａが中継装置４０の情報を拡張テーブル３３に記録したときの処理と同様である。
【００８３】
次に、経路決定部２４ａは、拡張テーブル３３ａ＿２の通信装置１０Ｂのエントリでの進路コストとコストの合計値を、ディスカバリーテーブル３２ａ＿１の進路コストの値と比較する。ここでは、合計値の方が、ディスカバリーテーブル３２ａ＿１の進路コストよりも大きいので、経路決定部２４ａは、中継装置４０と直接通信装置１０Ａの間で直接通信するほうが、通信装置１０Ｂを介して通信するよりも通信状況が良いと判定する。そこで、経路決定部２４ａは、ディスカバリーテーブル３２ａ＿１とルーティングテーブル３１ａ＿１を更新しない。経路決定部２４ａは、経路要求パケットＰ３の処理が終わると、経路要求パケットＰ３を経路要求部２１ａに出力する。
【００８４】
（ｂ３）通信装置１０Ａからの通信装置１０Ｂの情報の伝達
通信装置１０Ａ中の経路要求部２１ａは、経路要求パケットＰ３が入力されると、経路要求パケットＰ４を生成する。経路要求パケットＰ４は、経路要求パケットＰ３に含まれる情報と、通信装置１０Ａの装置情報を含む。経路要求パケットＰ４に含まれているペイロードの情報の例を、図１４のＰ４に示す。経路要求部２１ａは、送信部１２ａを介して、隣接する全ての装置に経路要求パケットＰ４を送信する。現在の水位（１ｍ）において、通信装置１０Ａから送信されたパケットが受信される範囲はＡＲａで示すとおりである。従って、経路要求パケットＰ４は、中継装置４０、通信装置１０Ｂ、通信装置１０Ｃに送信される。
【００８５】
通信装置１０ｃが経路要求パケットＰ４を受信すると、経路決定部２４ｃは、拡張テーブル３３ｃ＿１（図１２）にエントリが生成されていない装置についての装置情報を、経路要求パケットＰ４から抽出する。ここでは、経路決定部２４ｃは、通信装置１０Ｂについての装置情報を抽出する。さらに、経路決定部２４ｃは、水位が０ｍの場合について、コスト計算部２３ｃに通信装置１０Ｂと通信装置１０Ｃの間の経路のコストの計算を要求する。ここでは、水位が０ｍの場合、通信装置１０Ｂと通信装置１０Ｃの間の経路のコストは１であるとする。経路決定部２４ｃは、得られたコストの値と経路要求パケットから抽出した情報を用いて、拡張テーブル３３ｃ＿１を、図１４に示す拡張テーブル３３ｃ＿２に更新する。
【００８６】
経路決定部２４ｃは、拡張テーブル３３ｃ＿２の通信装置１０Ｂのエントリでの進路コストとコストの合計値を、ディスカバリーテーブル３２ｃ＿１（図１２）の進路コストの値と比較する。ここでは、合計値の方が、ディスカバリーテーブル３２ｃ＿１の進路コストよりも小さい。このため、経路決定部２４ｃは、水位が０ｍになると、通信装置１０Ｂを介して中継装置４０と通信する方が、通信装置１０Ａを介して中継装置４０に通信するよりも通信状況が良いと判定する。そこで、経路決定部２４ｃは、ディスカバリーテーブル３２ｃ＿１の進路コストを、通信装置１０Ｂのエントリでの進路コストとコストの合計値に置き換える。この処理により、ディスカバリーテーブル３２ｃ＿１は、図１４に示すディスカバリーテーブル３２ｃ＿２のように更新される。さらに、経路決定部２４ｃは、ルーティングテーブル３１ｃでの通信装置１０Ｃから中継装置４０に至る経路での次ホップを、通信装置１０Ｂに変更することにより、ルーティングテーブル３１ｃ＿２を記録する。
【００８７】
図１５は、経路要求パケットを受信した装置で行われる処理の例を説明するフローチャートである。図１５では、変数ｎと定数Ｎを使用している。定数Ｎは、経路要求パケットに含まれており、かつ、拡張テーブル３３に含まれていない情報が記録されている装置の数である。例えば、拡張テーブル３３に中継装置４０の情報が記録されているときに、中継装置４０と通信装置１０Ａ〜１０Ｃの各装置についての装置情報を含む経路要求パケットを受信したとすると、Ｎは３となる。変数ｎは、新たに拡張テーブル３３に登録した装置のうち、登録中の経路よりも良好な経路に含まれているかの判定を行った装置の数を計数するために使用される。
【００８８】
受信部１１は、経路要求パケットを受信し、振り分け部２７に出力する（ステップＳ１）。経路決定部２４は、経路要求パケットを、振り分け部２７を介して取得する。経路決定部２４は、経路要求パケット中の装置情報のうち、拡張テーブル３３に含まれていない装置情報を、拡張テーブル３３に登録する（ステップＳ２）。さらに、コスト計算部２３は、新たに拡張テーブル３３に追加された装置との間のリンクの受信強度とコストを計算する。経路決定部２４は、得られたコストを拡張テーブル３３に登録し、さらに、経路要求パケットの送信元を、情報送信ノードとして拡張テーブル３３に登録する（ステップＳ３）。経路決定部２４は、経路要求パケットで検索対象とされている経路がディスカバリーテーブル３２に登録されているかを判定する（ステップＳ４）。
【００８９】
検索対象とされている経路がディスカバリーテーブル３２に登録されていない場合、経路決定部２４は、ディスカバリーテーブル３２とルーティングテーブル３１を更新する（ステップＳ４でＮｏ、ステップＳ５）。その後、経路決定部２４は、自ノードが検索中の経路の終点の装置（目的ノード）であるかを判定する（ステップＳ１１）。自ノードが目的ノードではない場合、経路決定部２４は、経路要求パケットを経路要求部２１に出力する。経路要求部２１は、保持している装置情報を経路要求パケットに追加し、送信部１２を介して、隣接する装置に送信する（ステップＳ１１でＮｏ、ステップＳ１２）。一方、自ノードが目的ノードである場合、経路決定部２４は、経路要求パケットを経路通知部２２に出力する。経路通知部２２は、応答パケットを経路要求パケットの送信元にユニキャストで送信する（ステップＳ１１でＹｅｓ、ステップＳ１３）。応答パケットを用いた処理については、後で詳しく説明する。
【００９０】
検索対象とされている経路がディスカバリーテーブル３２に登録されている場合、経路決定部２４は、変数ｎ＝１に設定する（ステップＳ４でＹｅｓ、ステップＳ６）。経路決定部２４は、ｎ番目に拡張テーブル３３に追加したエントリでの進路コストとコストの合計値の大きさを、ディスカバリーテーブル３２の進路コストの大きさと比較する（ステップＳ７）。合計値の方がディスカバリーテーブル３２中の進路コストよりも小さい場合、経路決定部２４は、経路要求パケットで検索している経路の逆向きの経路について、現在発見されている経路よりも良好な経路を発見したと判定する。すなわち、経路決定部２４は、検索中の経路の逆向きの経路としては、ｎ番目に拡張テーブル３３に追加したエントリで登録されている装置を経由するほうが、現在有効になっている経路よりも良好であると判定する（ステップＳ７でＹｅｓ）。このため、経路決定部２４は、ｎ番目に拡張テーブル３３に追加したエントリ中の装置を経由する経路を使用するように、ディスカバリーテーブル３２とルーティングテーブル３１を更新する（ステップＳ８）。
【００９１】
一方、合計値がディスカバリーテーブル３２中の進路コストよりも大きい場合、経路決定部２４は、ｎ番目に追加したエントリ中の装置を経由する経路は、現在有効になっている経路よりも良好な経路ではないと判定する（ステップＳ７でＮｏ）。次に、経路決定部２４は、変数ｎの値が定数Ｎ以上であるかを判定する（ステップＳ９）。変数ｎの値が定数Ｎ未満の場合、経路決定部２４は、ｎの値を１つインクリメントし、ステップＳ７の処理に戻る（ステップＳ１０）。変数ｎの値が定数Ｎ以上の場合、ステップＳ１１〜Ｓ１３の処理が行われる。
【００９２】
図１６は、ルーティングテーブルとディスカバリーテーブルの更新方法の例を説明するフローチャートである。図１６は、図１５のステップＳ５の処理を詳しく説明するフローチャートである。経路決定部２４は、ディスカバリーテーブル３２に、経路要求パケット中の開始ノードと目的ノードを登録する（ステップＳ２１）。さらに、経路決定部２４は、ディスカバリーテーブル３２中の進路コストを、拡張テーブル３３中の進路コストとコストの合計値のうちの最小値に設定する（ステップＳ２２）。次に、経路決定部２４は、自ノードから開始ノードまでの経路を、ルーティングテーブル３１に登録する（ステップＳ２３）。経路決定部２４は、目的ノードが自ノードであるかを判定する（ステップＳ２４）。目的ノードが自ノードである場合、経路の終点まで経路要求パケットが到達したことになるので、経路決定部２４は、開始ノードから目的ノードに向かう経路をルーティングテーブル３１に記録せずに処理を終了する（ステップＳ２４でＹｅｓ）。一方、目的ノードが自ノードではない場合、経路決定部２４は、開始ノードから目的ノードに向かう経路を、発見中の経路として、ルーティングテーブル３１に記録する（ステップＳ２４でＮｏ、ステップＳ２５）。
【００９３】
〔経路の決定〕
次に、経路の終点の通信装置１０（目的ノード）が応答パケットを用いて行う処理について説明する。経路の終点の通信装置１０が自ノードである場合、経路決定部２４は、経路要求パケットを経路通知部２２に出力する。例えば、図５〜図１４を用いて説明している例では、中継装置４０から通信装置１０Ｃに至る経路が検索されている。そこで、経路決定部２４ｃは、経路要求パケットＰ２を受信したとき、経路要求パケットＰ２を経路通知部２２ｃに出力する。経路通知部２２ｃは、経路要求パケットＰ２が入力されると、応答パケットを生成し、経路要求パケットＰ２の送信元に向けてユニキャスト送信する。このときの経路は、ルーティングテーブル３１ｃ＿１（図１２）を用いて選択される。
【００９４】
その後、通信装置１０Ｃは、経路要求パケットＰ４を受信すると、図１４を参照しながら説明したように、経路要求パケットＰ２によって得られた経路よりも良い経路を発見する。経路決定部２４ｃは、２回目以降に経路要求パケットを受信すると、受信した経路要求パケットにより、より良い経路が得られた場合に、その経路要求パケットを経路通知部２２ｃに出力する。すなわち、経路決定部２４ｃは、ルーティングテーブル３１ｃの更新に使用する情報を通信装置１０Ｃに通知してきた経路要求パケットを、経路通知部２２ｃに出力する。一方、ルーティングテーブル３１ｃの更新に使用されなかった経路パケットは、経路決定部２４ｃによって廃棄される。
【００９５】
図５〜図１４を用いて説明している例のように複数の経路要求パケットによって、経路の終点の通信装置１０でルーティングテーブル３１が変更される場合は、複数の応答パケットが送信される。この場合、ネットワーク中の通信装置１０や中継装置４０は、最新の応答パケットを用いて、ルーティングテーブル３１を更新する。また、経路通知部２２は、経路要求パケットが入力された後に新たな経路要求パケットが入力されるかを所定の時間だけ待ち、所定の時間内に得られた情報を用いて応答パケットを生成しても良い。
【００９６】
図１７は、応答パケットのフォーマットの例（Ｆ２）を示す。応答パケットは、ヘッダ、ペイロード、チェックサムを含む。応答パケットのヘッダには、受信ＰＩＤ、受信アドレス、送信ＰＩＤ、送信アドレスが含まれる。応答パケットにおいて、受信ＰＩＤは中継装置４０を含むネットワークのＰＩＤであり、受信アドレスは中継装置４０のアドレスである。一方、送信ＰＩＤは応答パケットの送信元が含まれるネットワークの識別子であり、送信アドレスは応答パケットの送信元の通信装置１０に割り当てられたアドレスである。応答パケットのペイロードには、コマンドＩＤ、開始ノード、目的ノード、シーケンス番号、残留コスト、通知先ノード、経路中の転送元ノード、送信ノード、経路中の転送元ノードまでのコストが含まれる。
【００９７】
コマンドＩＤは、応答パケットであることを特定するための情報である。以下の説明では、応答パケットでは、コマンドＩＤ＝２に設定されているものとする。開始ノード、目的ノード、シーケンス番号は、応答パケットを生成する原因となった経路要求パケット中に含まれていた値が使用される。残留コストは、経路の末端の通信装置１０から、応答パケットの処理を行っている通信装置１０までの経路のコスト値である。経路中の転送元ノードは、探索中の経路の逆向きの経路について、ルーティングテーブル３１で次ホップとして登録されている通信装置１０または中継装置４０である。一方、通知先ノードは、現在の水位において、応答パケットを送信する通信装置１０が中継装置４０との間のユニキャスト通信を行うときに、応答パケットを１ホップ転送するときの転送先である。送信ノードは、応答パケットを送信した通信装置１０であって、かつ、得られた経路に含まれている通信装置１０の識別子である。送信ノードの情報は、ルーティングテーブル３１の更新に使用されるので、検索された経路に含まれていないが、得られた経路の通知先となっているに過ぎない通信装置１０は、自ノードの情報を送信ノードには記録しない。
【００９８】
以下、応答パケットを用いて、経路が決定されていく様子の具体例を説明する。なお、以下の説明では、簡単にするため、経路要求パケットＰ２に基づく応答パケットが送信されず、経路要求パケットＰ４に基づいて応答パケットが送信される場合を例として説明する。
【００９９】
（ｃ１）通信装置１０Ｃからの通知
図１８は、応答パケットの例を示す。図１８のＰ５は、経路通知部２２ｃが経路要求パケットＰ４に基づいて生成する応答パケットのペイロード中のコマンドＩＤ以外の情報である。以下、Ｐ５に示すペイロードを含む応答パケットを、応答パケットＰ５と記載する。
【０１００】
応答パケットＰ５の開始ノード、目的ノード、シーケンス番号は、図１４に示す経路要求パケットＰ４と同じ値に設定されている。応答パケットＰ５が経路通知部２２ｃで生成されるとき、通信装置１０Ｃが経路の目的ノードであるので、残留コストは０に設定される。また、送信ノードは通信装置１０Ｃに設定される。経路中の転送元は、ルーティングテーブル３１ｃ＿２（図１４）中で通信装置１０Ｃから中継装置４０に至る経路での次ホップに指定されている通信装置１０Ｂである。転送元までのコストは、拡張テーブル３３ｃ＿２（図１４）から取得される。拡張テーブル３３ｃ＿２において、転送元の装置に関するエントリのコストの値が、転送元までのコストとなる。さらに、転送元の装置に現在の水位で通信できない場合があるので、経路通知部２２ｃは、転送元の装置に関するエントリ中の、情報送信ノードを、通知先ノードに指定する。ここでは、転送元の装置である通信装置１０Ｂのエントリについての情報送信ノードは通信装置１０Ａである。このため、経路通知部２２ｃは、通知先ノードを通信装置１０Ａとする。
【０１０１】
経路通知部２２ｃは、生成した応答パケットＰ５を送信部１２ｃに出力する。送信部１２ｃは、応答パケットが入力されると、ペイロード中の通知先ノードに応答パケットを送信する。このため、応答パケットＰ５は、図１８のＮ３中の太い矢印に示すように、応答パケット中で通知先に設定されている通信装置１０Ａに送信される。
【０１０２】
（ｃ２）通信装置１０Ａでの処理（経路中の転送元ではない通知先での処理）
通信装置１０Ａの受信部１１ａは、応答パケットＰ５を受信する。受信部１１ａは、受信した応答パケットＰ５を、振り分け部２７ａに出力する。振り分け部２７ａは、応答パケットのコマンドＩＤから、入力されたパケットが応答パケットであると判定すると、応答パケットＰ５を経路決定部２４ａに出力する。
【０１０３】
経路決定部２４ａは、応答パケットＰ５中の経路中の転送元の情報を抽出し、転送元が通信装置１０Ａであるかを判定する。図１８の例では、転送元は通信装置１０Ｂであるので、転送元の識別子は通信装置１０Ａの識別子と一致しない。すると、経路決定部２４ａは、ルーティングテーブル３１ａ＿１（図１３）とディスカバリーテーブル３２ａ＿１（図１３）を更新せずに、応答パケットＰ５を経路通知部２２ａに出力する。
【０１０４】
経路通知部２２ａは、応答パケットＰ５から、経路中の転送元を特定する。経路中の転送元が通信装置１０Ｂであるため、経路通知部２２ａは、転送元である通信装置１０Ｂに応答パケットＰ５の情報を通知しようとする。経路通知部２２ａは、拡張テーブル３３ａ＿２（図１３）より、通信装置１０Ａがパケットを通信装置１０Ｂに送信できることを特定する。すると、経路通知部２２ａは、応答パケットＰ５のペイロードのうち、通知先ノードの情報を、通信装置１０Ａの識別子から通信装置１０Ｂの識別子に変更する。経路通知部２２ａの処理により得られる応答パケットＰ６のペイロード部分に含まれる情報を図１９のＰ６に示す。
【０１０５】
経路通知部２２ａは、生成した応答パケットＰ６を送信部１２ａに出力する。送信部１２ａは、応答パケットが入力されると、ペイロード中の通知先ノードに応答パケットを送信する。このため、応答パケットＰ６は、図１９のＮ４の太い矢印で示すように、応答パケット中で通知先に設定されている通信装置１０Ｂに送信される。
【０１０６】
（ｃ３）通信装置１０Ｂでの処理（経路中の転送元での処理）
通信装置１０Ｂの経路決定部２４ｂは、受信部１１ｂと振り分け部２７ｂを介して、応答パケットＰ６を取得する。経路決定部２４ｂは、応答パケットＰ６中の経路中の転送元の情報を抽出し、転送元が通信装置１０Ｂであることを特定する。すると、経路決定部２４ｂは、ルーティングテーブル３１ｂにおいて、応答パケットＰ６中の送信ノードを、応答パケットＰ６中の開始ノードから目的ノードに至る経路の次ホップに設定する。すなわち、ルーティングテーブル３１ｂ＿１（図１１）中の２番目のエントリについて、次ホップを通信装置１０Ｃに指定する。さらに、経路決定部２４ｂは、次ホップを決定できたため、中継装置４０から通信装置１０Ｃに至る経路の経路状態を「有効」に設定する。このため、ルーティングテーブル３１ｂ＿１は、図１９に示すルーティングテーブル３１ｂ＿２に示すように更新される。
【０１０７】
さらに、経路決定部２４ｂは、応答パケットＰ６中に含まれている残留コストと転送元までのコストとの合計値を、探索中の経路についての通信装置１０Ｂでの残留コストとする。応答パケットＰ６では、残留コストが０であり、通信装置１０Ｃから検索対象の経路での転送元である通信装置１０Ｂまでのコストは１である。このため、経路決定部２４ｂは、中継装置４０から通信装置１０Ｃに至る経路において、通信装置１０Ｂでの残留コストを１とする。経路決定部２４ｂは、得られた値を用いてディスカバリーテーブル３２ｂを更新する。このため、ディスカバリーテーブル３２ｂ＿１（図１１）は、図１９に示すディスカバリーテーブル３２ｂ＿２に更新される。
【０１０８】
経路決定部２４ｂは、ルーティングテーブル３１ｂとディスカバリーテーブル３２ｂの更新が終わると、応答パケットＰ６での開始ノードが通信装置１０Ｂであるかを判定する。ここでは、開始ノードが通信装置１０Ｂではないので、開始ノードに経路を通知するために、経路決定部２４ｂは、応答パケットＰ６を、経路通知部２２ｂに出力する。
【０１０９】
経路通知部２２ｂは、応答パケットＰ６から、経路中の転送元が通信装置１０Ｂ自身であることと、開始ノードが中継装置４０であることを特定する。すると、経路通知部２２ｂは、ルーティングテーブル３１ｂ＿２から、通知しようとする経路の情報と逆向きの経路での次ホップを検索する。ここでは、通知しようとしている経路は、中継装置４０から通信装置１０Ｃに向かう経路であるので、経路通知部２２ｂは、通信装置１０Ｂから中継装置４０に向かう経路での次ホップを検索することになる。ルーティングテーブル３１ｂ＿２の１番目のエントリに示すように、通信装置１０Ｂから中継装置４０に向かう経路では、次ホップは中継装置４０である。そこで、経路通知部２２ｂは、経路中の転送元を中継装置４０に設定する。
【０１１０】
経路通知部２２ｂは、拡張テーブル３３ｂ＿２において、転送元の装置である中継装置４０に関するエントリのコストの値を、転送元までのコストとする。転送元の装置に現在の水位で通信できない場合があるので、経路通知部２２ｂは、中継装置４０に関するエントリ中の情報送信ノードを、通知先ノードに指定する。ここでは、中継装置４０のエントリについての情報送信ノードは中継装置４０である。このため、経路通知部２２ｂは、通知先ノードを中継装置４０とする。さらに、経路通知部２２ｂは、ディスカバリーテーブル３２ｂ＿２に従って残留コストを１に設定し、送信ノードを通信装置１０Ｂに設定する。なお、経路通知部２２は、開始ノード、目的ノード、シーケンス番号については変更しない。このため、経路通知部２２ｂは、図２０のＰ７に示す内容を含む応答パケットを生成する。以下、ペイロードにＰ７に示す情報を含む応答パケットを、応答パケットＰ７と記載する。
【０１１１】
経路通知部２２ｂは、応答パケットＰ７を送信部１２ｂに出力する。送信部１２ｂは、応答パケットＰ７中の通知先ノードが中継装置４０であるため、応答パケットＰ７を中継装置４０に送信する。応答パケットＰ７の送信経路を、図２０のＮ５中の太い矢印で示す。
【０１１２】
（ｃ４）中継装置４０での処理（経路の開始ノードでの処理）
中継装置４０の経路決定部２４ｄは、受信部１１ｄと振り分け部２７ｄを介して、応答パケットＰ７を取得する。経路決定部２４ｄは、応答パケットＰ７中の経路中の転送元が中継装置４０であることを特定する。その後、経路決定部２４ｄは、経路決定部２４ｂと同様の処理により、ルーティングテーブル３１ｄ＿１（図５）とディスカバリーテーブル３２ｄ＿１（図５）を更新する。すなわち、経路決定部２４ｄは、応答パケットＰ７中に送信ノードとして記録されている通信装置１０Ｂを、水位０ｍのときの中継装置４０から通信装置１０Ｃに至る経路の次ホップとする。さらに、経路決定部２４ｄは、次ホップが決定した経路の経路状態を「有効」に設定するので、ルーティングテーブル３１ｄ＿１は図２０のルーティングテーブル３１ｄ＿２に示すように更新される。さらに、経路決定部２４ｄは、応答パケットＰ７中に含まれている残留コストと転送元までのコストとの合計値を、探索中の経路についての中継装置４０での残留コストとする。応答パケットＰ７では、残留コストが１であり、通信装置１０Ｂから転送元である中継装置４０までのコストは１である。このため、ディスカバリーテーブル３２ｄ＿１（図５）は、図２０に示すルーティングテーブル３１ｄ＿２に更新される。
【０１１３】
図２１は、応答パケットを受信した装置で行われる処理の例を説明するフローチャートである。通信装置１０または中継装置４０は、受信部１１で応答パケットを受信する（ステップＳ３１）。経路決定部２４は、受信部１１と振り分け部２７を介して、応答パケットを取得する。経路決定部２４は、経路中の転送元が自ノードであるかを判定する（ステップＳ３２）。経路中の転送元が自ノードである場合、経路決定部２４は、通知された経路がディスカバリーテーブル３２に登録されているかを判定する（ステップＳ３２でＹｅｓ、ステップＳ３３）。通知された経路がディスカバリーテーブル３２に登録されている場合、経路決定部２４は、応答パケット中の残留コストと転送元へのコストの合計値は、ディスカバリーテーブル３２中の残留コストよりも小さいかを判定する。（ステップＳ３３でＹｅｓ、ステップＳ３４）。なお、ディスカバリーテーブル３２に残留コストが記録されていない場合、経路決定部２４は、無限大の値が残留コストとして登録されているとみなすものとする。合計値がディスカバリーテーブル３２中の残留コストよりも小さい場合、経路決定部２４は、ディスカバリーテーブル３２中の残留コストを合計値に変更する（ステップＳ３４でＹｅｓ、ステップＳ３５）。さらに、経路決定部２４は、ルーティングテーブル３１中の検索中の経路について、次ホップを応答パケット中の送信元ノードに設定し、経路状態を有効にする（ステップＳ３６）。経路決定部２４は、応答パケット中の目的ノードが自ノードであるかを判定する（ステップＳ３７）。目的ノードが自ノードである場合、経路決定部２４は、経路の検索処理を終了する（ステップＳ３７でＹｅｓ）。
【０１１４】
一方、応答パケット中の目的ノードではない場合、経路決定部２４は、応答パケットを経路通知部２２に出力する（ステップＳ３７でＮｏ）。経路通知部２２は、応答パケットにおける経路中の転送元を、検索中の経路の逆向きの経路での次ホップに設定する（ステップＳ３８）。さらに、経路通知部２２は、拡張テーブル３３を用いて、応答パケットにおける転送先までのコストを設定する（ステップＳ３９）。さらに、経路通知部２２は、経路中の転送元についての情報を送信してきた装置（情報送信ノード）を通知先に設定する（ステップＳ４０）。その後、送信部１２は、応答パケットを通知先に設定された装置に送信する（ステップＳ４１）。
【０１１５】
ステップＳ３２において、経路中の転送元が自ノードはないと判定された場合、ステップＳ４０、Ｓ４１の処理が行われる（ステップＳ３２でＮｏ）。さらに、ステップＳ３３で通知された経路がディスカバリーテーブル３２に登録されていないと判定した場合、経路決定部２４は、応答パケットを廃棄する（ステップＳ３３でＮｏ、ステップＳ４２）。また、ステップＳ３４において、応答パケット中の残留コストと転送元へのコストの合計値は、ディスカバリーテーブル３２中の残留コスト以上であると判定した場合も、経路決定部２４は、応答パケットを廃棄する（ステップＳ３４でＮｏ、ステップＳ４２）。
【０１１６】
（ｃ５）経路の確定
ネットワーク中の各通信装置１０では、経路要求パケットを受信してから経過した時間を計測しており、所定の時間内に検出できた経路のうちで最も良好な経路を、使用する経路として確定する。なお、目的ノードに指定されている通信装置１０では、他の通信装置１０よりも短い時間で、経路の探索を終了しても良い。
【０１１７】
例えば、上記の例では、経路決定部２４ｃは、通信装置１０Ｃが目的ノードに設定されていると認識すると、通信装置１０Ｃが経路要求パケットＰ２を受信した時刻から２秒間、さらなる経路要求パケットを受け付ける。経路決定部２４ｃは、経路要求パケットＰ２を受信した時刻から２秒間が経過すると、水位が０ｍの場合について作成したディスカバリーテーブル３２ｃと拡張テーブル３３ｃを削除する。
【０１１８】
同様に、経路決定部２４ａや経路決定部２４ｂでも、経路要求パケットＰ１を受信した時刻から所定の時間だけ、さらに、経路要求パケットや応答パケットの処理を受け付ける。このとき、経路決定部２４ａは、通信装置１０Ａが目的ノードに設定されていないため、目的ノード側から送信されてくる応答パケットが届く可能性がある期間は処理を継続する。例えば、経路決定部２４ｃが最初に受信した経路要求パケットＰ２の受信から２秒間、経路要求パケットの受信を受け付ける場合、経路決定部２４ａは、経路要求パケットＰ１の受信から１０秒間、経路要求パケットや応答パケットを受け付けることができる。経路決定部２４ａは、経路要求パケットや応答パケットを受け付ける期間が終了すると、ディスカバリーテーブル３２ａと拡張テーブル３３ａを削除する。さらに、経路決定部２４ａは、ルーティングテーブル３１ａに含まれている検索中の経路に対応付けられている経路状態が「発見中」であるかを判定する。経路決定部２４ａは、経路要求パケットや応答パケットを受け付ける期間が終了するときに、検索対象の経路がルーティングテーブル３１ａ中で「発見中」のままであれば、その経路を削除する。例えば、通信装置１０Ａで経路要求パケットや応答パケットを受け付ける期間が終了するときに、通信装置１０Ａがルーティングテーブル３１ａ＿１（図１３）を保持しているとする。すると、経路決定部２４ａは、開始ノードが中継装置４０であり、かつ、目的ノードが通信装置１０Ｃである経路の情報を、ルーティングテーブル３１ａ＿１から削除する。経路決定部２４ｂも経路決定部２４ａと同様に処理を行う。
【０１１９】
中継装置４０は、開始ノードであるので、経路決定部２４ｄは、中継装置４０が経路要求パケットを送信した時刻から所定の時間の間に受信した応答パケットを、処理対象とする。経路決定部２４ｄは、予め決められた期間が終了すると、ディスカバリーテーブル３２ｄを消去し、ルーティングテーブル３１ｄ中の経路を確定する。
【０１２０】
以上の処理により、経路が各通信装置１０や中継装置４０で確定される。すると、中継装置４０は、経路が確定した水位以外の他の水位についても、同様の処理を行うことにより、複数の水位についての通信経路を生成する。
【０１２１】
＜測定値の収集例＞
図２２と図２３は、複数の水位での経路を含むルーティングテーブル３１の例を示す。図２２のルーティングテーブル３１ｄ＿ｎは、水位が０ｍ、１ｍ、２ｍ、５ｍのときのそれぞれについて、中継装置４０が通信経路を取得した場合に中継装置４０が保持するルーティングテーブル３１の例である。この例では、中継装置４０は、ネットワーク中の各通信装置１０に個別にデータを要求することができるようにするために、経路の生成が行われる全ての水位において、各通信装置１０を目的ノードとした経路を検索する。このため、全ての経路の検索に成功すると、制御部２０は、ルーティングテーブル３１ｄ＿ｎに示すように、ネットワーク中の全ての通信装置１０に至る有効な経路を、検索を行った各水位について保持することができる。
【０１２２】
中継装置４０がルーティングテーブル３１ｄを保持している場合、通信装置１０Ａは通信装置１０Ａ自身が目的ノードとなるか、通信装置１０Ａが中継装置４０と通信装置１０Ｃの間の通信の中継を行う場合に、中継装置４０と通信する。そこで、中継装置４０がルーティングテーブル３１ｄ＿ｎを保持している場合、通信装置１０Ａは、図２２に示すルーティングテーブル３１ａ＿ｎを保持する。同様に、通信装置１０Ｂは、中継装置４０がルーティングテーブル３１ｄ＿ｎを保持している場合、図２３に示すルーティングテーブル３１ｂ＿ｎを保持する。
【０１２３】
中継装置４０がルーティングテーブル３１ｄを保持している場合、通信装置１０Ｃは通信装置１０Ｃ自身が目的ノードとなる場合に、中継装置４０と通信する。そこで、中継装置４０がルーティングテーブル３１ｄ＿ｎを保持している場合、通信装置１０Ｃは、図２３に示すルーティングテーブル３１ｃ＿ｎを保持する。
【０１２４】
以下、中継装置４０と通信装置１０Ａ〜１０Ｃが保持するルーティングテーブル３１が図２２と図２３に示すとおりである場合について、データの収集の実施例を説明する。
【０１２５】
（ｄ１）データ要求パケットの送信
中継装置４０のデータ要求部５１ｄは、通信装置１０にデータの送信を要求するために、データ要求パケットを生成する。
【０１２６】
図２４のＦ３に、データ要求パケットのフォーマットの例を示す。データ要求パケットは、ヘッダ、ペイロード、チェックサムを含む。ヘッダとチェックサムは、経路要求パケットと同様である。データ要求パケットのペイロードには、コマンドＩＤ、水位、データの要求元が含まれる。データ要求パケットのコマンドＩＤは、予め所定の値に決められており、データ要求部５１ｄと各通信装置１０の振り分け部２７は、データ要求パケットに対応付けられたコマンドＩＤを保持しているものとする。以下の例では、データ要求パケットでは、コマンドＩＤ＝３であるとする。水位フィールドには、データの要求をするときの水位の情報が格納される。要求元フィールドには、データを収集している装置の識別子が記録される。ここでは、要求元フィールドに、中継装置４０の識別子が設定される。
【０１２７】
データ要求部５１ｄは、生成したペイロードに、チェックサム、ヘッダを添付する。データ要求部５１ｄは、データ要求パケットを生成すると、生成したデータ要求パケットの宛先をキーとして、ルーティングテーブル３１ｄ＿ｎを検索する。このとき、検索の対象となるエントリは、ルーティングテーブル３１ｄ＿ｎ中のエントリのうちで、現在の水位に対応付けられたエントリである。データ要求部５１ｄは、得られたエントリ中の次ノードの情報と共に、データ要求パケットを送信部１２ｄに出力する。例えば、データ要求部５１ｄは、水位が１ｍのときに送信する通信装置１０Ａ宛てのデータ要求パケットについては、次ノードが通信装置１０Ａであることを示す情報と共に、データ要求パケットを送信部１２ｄに出力する。同様に、データ要求部５１ｄは、水位が１ｍのときに送信する通信装置１０Ｃ宛てのデータ要求パケットについては、次ノードが通信装置１０Ａであることを示す情報と共に、データ要求パケットを送信部１２ｄに出力する。送信部１２ｄは、データ要求パケットを通信装置１０Ａに送信する。
【０１２８】
（ｄ２）データ要求パケットの転送処理
データ要求パケットを中継する装置で行われる処理を、通信装置１０Ｃ宛のデータ要求パケットが中継装置４０から通信装置１０Ａに送信された場合を例として説明する。
【０１２９】
通信装置１０Ａの受信部１１ａは、受信したパケットを振り分け部２７ａに出力する。振り分け部２７ａは、入力されたパケット中のコマンドＩＤを用いて、入力されたパケットがデータ要求パケットであることを特定する。振り分け部２７ａは、データ要求パケットの宛先が通信装置１０Ａであるかを判定する。ここでは、データ要求パケットの宛先は通信装置１０Ｃである。そこで、振り分け部２７ａは、転送処理の対象のパケットが入力されたと判定し、データ要求パケットを転送先選択部２６ａに出力する。
【０１３０】
転送先選択部２６ａは、データ要求パケットの宛先と、データ要求パケット中に指定された水位を特定する。ここでは、転送先選択部２６ａは、通信装置１０Ｃ宛のデータ要求パケットであることと、データ要求パケットでは水位が１ｍに指定されていることを特定する。すると、転送先選択部２６ａは、ルーティングテーブル３１ａ＿ｎ中で指定された水位に対応付けられたエントリから、データ要求パケットの宛先が目的ノードとなっているエントリを検索する。転送先選択部２６ａは、得られたエントリ中の次ノードの情報と共に、データ要求パケットを送信部１２ａに出力する。この例では、転送先選択部２６ａは、水位が１ｍのときに送信する通信装置１０Ｃ宛てのデータ要求パケットを、次ノードが通信装置１０Ｃであることを示す情報と共に、送信部１２ａに出力する。送信部１２ａは、データ要求パケットを通信装置１０Ｃに送信する。このように、水位が１ｍの場合、データ要求パケットは、図２５のＮ６に示す経路を用いて、中継装置４０から通信装置１０Ｃに送信される。なお、転送先選択部２６ａは、データ要求パケットで指定された水位を、データ要求パケットへの応答として送信されるパケットを中継装置４０に転送するために記憶しておくものとする。
【０１３１】
（ｄ３）データ通知パケットの送信処理
データ要求パケットの宛先の装置で行われる処理を、通信装置１０Ｃでの処理を例として説明する。
【０１３２】
通信装置１０Ｃの振り分け部２７ｃは、受信部１１ｃを介してデータ要求パケットを取得する。振り分け部２７ｃは、入力されたパケット中のコマンドＩＤを用いて、入力されたパケットがデータ要求パケットであることを特定し、さらに、データ要求パケットの宛先が通信装置１０Ｃであることも特定する。すると、振り分け部２７ｃは、転送処理の対象のパケットが入力されたと判定し、データ要求パケットを水位測定部２５ｃに出力する。水位測定部２５ｃは、データ要求パケットが入力されると、センサを用いて水位を測定する。なお、水位測定部２５ｃは、予め定期的に水位を計測して、測定データ３４に水位と測定時刻を対応付けたデータを記憶していても良い。この場合、水位測定部２５ｃは、測定時刻からデータ要求パケットが入力されるまでの時間が最も短いデータを選択する。
【０１３３】
水位測定部２５ｃは、中継装置４０に通知するデータを取得すると、データ通知パケットを生成する。図２４のＦ４にデータ通知パケットのフォーマットの例を示す。データ通知パケットも、ヘッダ、ペイロード、チェックサムを含み、ヘッダとチェックサムは経路要求パケットやデータ要求パケットと同様である。データ通知パケットには、コマンドＩＤ、時刻、データ、送信元ノードが含まれている。以下の例では、データ通知パケットを一意に特定するコマンドＩＤの値は４であるとする。送信ノードは、データを通知する通信装置１０の識別子であり、この例では、通信装置１０Ｃである。データは通信装置１０Ｃが通知しようとするデータであり、時刻は通知するデータの測定時刻である。
【０１３４】
水位測定部２５ｃは、生成したペイロードに、中継装置４０を宛先に指定したヘッダを付加する。さらに、水位測定部２５ｃは、ルーティングテーブル３１ｃ＿ｎ（図２３）のうち、データ要求パケットで指定された水位に対応付けられたエントリを参照することにより、データ要求パケットの転送先を特定する。水位測定部２５ｃは、得られたエントリ中の次ノードの情報と共に、データ通知パケットを送信部１２ｃに出力する。例えば、水位が１ｍの場合、中継装置４０に対応付けられた次ホップは通信装置１０Ａである。そこで、水位測定部２５ｃは、水位が１ｍのときに送信する中継装置４０宛てのデータ通知パケットについては、次ノードが通信装置１０Ａであることを示す情報と共に、データ通知パケットを送信部１２ｃに出力する。送信部１２ｃは、データ通知パケットを通信装置１０Ａに送信する。
【０１３５】
（ｄ４）データ通知パケットの処理
通信装置１０ｃからデータ通知パケットを受信すると、通信装置１０Ａは、手順（ｄ２）で説明した処理と同様の処理を行うことにより、データ通知パケットを中継装置４０に転送する。このとき、通信装置１０Ａの転送先選択部２６ａは、手順（ｄ２）で記憶した水位を用いて、転送先を特定する。このため、水位が１ｍの場合、データ通知パケットもデータ要求パケットと同様に、図２５のＮ６に示す経路を用いて、通信装置１０Ｃから中継装置４０に送信される。
【０１３６】
中継装置４０の振り分け部２７ｄは、受信部１１ｄを介してデータ通知パケットを取得すると、データ要求部５１ｄに出力する。データ要求部５１ｄは、得られたパケットからデータと時刻の情報を取得し、適宜、測定データ３４ｄとして記憶部３０ｄに記憶する。さらに、データ要求部５１ｄは、他の通信装置１０から得られたデータ通知パケットについても同様の処理を行う。
【０１３７】
（ｄ５）水位が変動した後のデータ収集処理
中継装置４０のデータ要求部５１ｄは、各通信装置１０から通知されてくる水位の計測データを収集すると共に、計測データの値を閾値と比較する。計測データの値が現在使用している経路についての閾値で特定される範囲を超えると、データ要求部５１は、通信に使用する経路を変更する。例えば、最初に測定データの回収を始めたときの水位は１ｍであったが、その後、水位が低下し、０．２ｍにまで下がったとする。ここで、水位が１ｍであるときの経路から水位が０ｍのときの経路に切り替えるかを判定するための閾値が０．３ｍであるとすると、データ要求部５１ｄは、使用する経路を０ｍのときの経路に切り替えることを決定する。
【０１３８】
データ要求部５１ｄは、水位フィールドの値を０ｍに指定したデータ要求パケットを生成する。さらに、データ要求部５１ｄは、データ要求パケットの宛先に応じて、ルーティングテーブル３１ｄ＿ｎ中で水位０ｍに対応付けられたエントリを検索し、次ホップのノードを特定する。例えば、通信装置１０Ｃに対してデータを要求する場合、データ要求部５１ｄは、ルーティングテーブル３１ｄ＿ｎを用いて、次ホップを通信装置１０Ｂに指定する。送信部１２ｄはデータ要求部５１ｄからの通知に従って、通信装置１０Ｂにデータ要求パケットを送信する。通信装置１０Ｂは、手順（ｄ２）で説明した処理と同様の処理を行うことにより、データ要求パケットを通信装置１０Ｃに転送する。このため、水位が０ｍの場合、データ要求パケットは、図２５のＮ７に示す経路を用いて、中継装置４０から通信装置１０Ｃに送信される。
【０１３９】
通信装置１０Ｃにおいて行われる処理は、手順（ｄ３）で説明した処理と同様である。ただし、今回受信したデータ要求パケット中の水位の値は０ｍであるため、水位測定部２５ｃは、データ通知パケットの次ホップを決定する際に、ルーティングテーブル３１ｃ＿ｎ（図２３）のうち、０ｍに対応付けられたエントリを参照する。そこで、水位測定部２５ｃは、水位が０ｍのときに送信する中継装置４０宛てのデータ通知パケットを、次ノードが通信装置１０Ｂであることを示す情報と共に、送信部１２ｃに出力する。送信部１２ｃは、データ通知パケットを通信装置１０Ｂに送信する。
【０１４０】
通信装置１０Ｂは、通信装置１０Ｃから受信したデータ通知パケットについても、手順（ｄ２）で説明した処理と同様の処理を行うことにより、データ通知パケットを中継装置４０に転送する。このため、水位が０ｍの場合、データ通知パケットもデータ要求パケットと同様に、図２５のＮ７に示す経路を用いて、通信装置１０Ｃから中継装置４０に送信される。
【０１４１】
以上で説明したように、中継装置４０と通信装置１０を用いたネットワークでは、複数の水位についての経路情報が生成され、水位の変動によって発生した受信レベルの変化に応じて、自律的に通信経路が変更される。さらに、水位の変動を予測して予め経路を生成しているため、経路の切り替えにかかる時間が短く、データの収集に支障をきたさない。
【０１４２】
＜その他＞
本明細書中では、読みやすくするための便宜上、ネットワーク中で送受信される情報の単位を表現する際に使用する文言を「パケット」に統一しているにすぎない。このため、実装に応じて、適宜、「パケット」という文言を「フレーム」に読み替えることができるものとする。
【０１４３】
以上の説明では、一例として水位センサのネットワークの場合を説明したが、センサの種類は任意である。なお、水位以外の情報の計測に用いられるセンサが搭載されている通信装置１０であっても、水位の計測用のセンサを保持していて、水位センサ以外のセンサでの計測結果と共に、水位の情報も中継装置４０に通知するものとする。この場合、図２４を参照しながら説明したデータ通知パケットには、データの他に、水位を通知するフィールドが含まれる。中継装置４０は、各通信装置１０から得られた水位の情報に基づいて、経路の変更を決定する。
【０１４４】
以上の説明で用いたテーブルやパケットのフォーマットは、一例であり、実装に応じて情報要素が変更される場合があるものとする。
【０１４５】
図２２、図２３は、理解しやすくするために、中継装置４０が経路要求パケットを送信するが、他の通信装置１０からはその通信装置１０を開始ノードとした経路探索が行われていない場合に得られるルーティングテーブル３１の例を示している。通信装置１０Ａ〜１０Ｃも各々を開始ノードとする経路の探索を行うために経路要求パケットを送信した場合、各装置のルーティングテーブル３１には、図２２や図２３に示している経路以外の経路の情報も含まれることがある。
【０１４６】
なお、図９では、通信装置１０や中継装置４０が河川の近傍に設置されている場合を例として説明したが、これは一例に過ぎない。通信装置１０や中継装置４０は、河川の他にも、ダム、冠水の恐れのある道路など、水位の変動しうる任意の領域の近傍で使用され得る。
【符号の説明】
【０１４７】
１０  通信装置
１１  受信部
１２  送信部
１３  送受信部
２０、５０  制御部
２１  経路要求部
２２  経路通知部
２３  コスト計算部
２４  経路決定部
２５  水位測定部
２６  転送先選択部
２７  振り分け部
３０  記憶部
３１  ルーティングテーブル
３２  ディスカバリーテーブル
３３  拡張テーブル
３４  測定データ
４０  中継装置
５１  データ要求部
１００  プロセッサ
１０１  バス
１０２  センサ
１０３  ＰＨＹチップ
１０４  タイマＩＣ
１０６  ＤＲＡＭ
１０７  フラッシュメモリ
１０８  無線モジュール
【図１】
2015115896.tif 000003
【図２】
2015115896.tif 000004
【図３】
2015115896.tif 000005
【図４】
2015115896.tif 000006
【図５】
2015115896.tif 000007
【図６】
2015115896.tif 000008
【図７】
2015115896.tif 000009
【図８】
2015115896.tif 000010
【図１０】
2015115896.tif 000011
【図１１】
2015115896.tif 000012
【図１２】
2015115896.tif 000013
【図１３】
2015115896.tif 000014
【図１４】
2015115896.tif 000015
【図１５】
2015115896.tif 000016
【図１６】
2015115896.tif 000017
【図１７】
2015115896.tif 000018
【図２１】
2015115896.tif 000019
【図２２】
2015115896.tif 000020
【図２３】
2015115896.tif 000021
【図２４】
2015115896.tif 000022
【図２５】
2015115896.tif 000023
【図９】
2015115896.tif 000024
【図１８】
2015115896.tif 000025
【図１９】
2015115896.tif 000026
【図２０】
2015115896.tif 000027