(57)【特許請求の範囲】
【請求項１】
マルチホップ無線通信により接続される複数の通信装置を有する無線ネットワークシステムの前記通信装置であって、
宛先と、当該宛先への中継先と、当該宛先との接続のしやすさの度合いを示す評価値とを対応付けて記憶するルート記憶手段と、
受信したデータから新たな通信装置の存在を検出する検出手段と、
前記検出手段で検出された通信装置の新たな宛先と、前記ルート記憶手段に記憶されている宛先とを入れ替える入替手段であって、前記評価値に基づいて前記ルート記憶手段に記憶されている宛先から入替候補を選択し、選択した入替候補と前記新たな宛先とを入れ替える入替手段とを備え、
前記入替手段は、特定のデータを送信又は受信する頻度が閾値を上回った宛先を、前記頻度が前記閾値を上回っている間は、前記評価値に関わらず前記入替候補とせず、前記ルート記憶手段に記憶されている宛先について、当該宛先の通信装置の存在を示すデータを連続して所定回数受信したときから、特定期間の間は、前記頻度が前記閾値を上回っているとみなし、前記特定期間経過前に、当該宛先宛の特定のデータを送信又は受信した場合は、当該特定のデータを送信又は受信したときから前記特定期間の計時を開始する
ことを特徴とする通信装置。
【請求項２】
前記特定のデータとは、データの宛先として、前記無線ネットワークシステムを構成するいずれかの通信装置を特定する宛先が設定されているデータである
ことを特徴とする請求項１に記載の通信装置。
【請求項３】
前記入替手段は、特定のデータを送信又は受信したときから特定期間の間は、前記頻度が前記閾値を上回っているとみなし、前記特定期間の経過前に、他の特定のデータを送信又は受信した場合は、当該他の特定のデータを送信又は受信したときから前記特定期間の計時を開始する
ことを特徴とする請求項１または２に記載の通信装置。
【請求項４】
前記特定のデータを送信又は受信した場合に、当該特定のデータの送信元の通信装置の宛先又は当該特定のデータの送信先の宛先であって、前記ルート記憶手段に記憶されていない宛先を記憶する予約記憶手段を、更に備え、
前記入替手段は、新たな通信装置の存在を示すデータを受信する前の所定期間の間に、当該新たな通信装置の宛先が前記予約記憶手段に記憶されていた場合には、当該新たな通信装置の宛先を前記入替候補と入れ替え、入替後、前記特定期間の間は、前記頻度が前記閾値を上回っているとみなす
ことを特徴とする請求項１ないし３のいずれか一項に記載の通信装置。
【請求項５】
マルチホップ無線通信により接続される複数の通信装置を有する無線ネットワークシステムの、前記通信装置で用いられる通信方法であって、
前記通信装置は、宛先と、当該宛先への中継先と、当該宛先との接続のしやすさの度合いを示す評価値とを対応付けて記憶するルート記憶手段を有し、
受信したデータから新たな通信装置の存在を検出する検出ステップと、
前記検出ステップで検出された通信装置の新たな宛先と、前記ルート記憶手段に記憶されている宛先とを入れ替える入替手段であって、前記評価値に基づいて前記ルート記憶手段に記憶されている宛先から入替候補を選択し、選択した入替候補と前記新たな宛先とを入れ替える入替ステップとを備え、
前記入替ステップは、特定のデータを送信又は受信する頻度が閾値を上回った宛先を、前記頻度が前記閾値を上回っている間は、前記評価値に関わらず前記入替候補とせず、前記ルート記憶手段に記憶されている宛先について、当該宛先の通信装置の存在を示すデータを連続して所定回数受信したときから、特定期間の間は、前記頻度が前記閾値を上回っているとみなし、前記特定期間経過前に、当該宛先宛の特定のデータを送信又は受信した場合は、当該特定のデータを送信又は受信したときから前記特定期間の計時を開始する
ことを特徴とする通信方法。
【請求項６】
マルチホップ無線通信により接続される複数の通信装置を有する無線ネットワークシステムの前記通信装置で用いられる通信プログラムであって、
宛先と、当該宛先への中継先と、当該宛先との接続のしやすさの度合いを示す評価値とを対応付けて記憶するルート記憶手段と、
受信したデータから新たな通信装置の存在を検出する検出手段と、
前記検出手段で検出された通信装置の新たな宛先と、前記ルート記憶手段に記憶されている宛先とを入れ替える入替手段であって、前記評価値に基づいて前記ルート記憶手段に記憶されている宛先から入替候補を選択し、選択した入替候補と前記新たな宛先とを入れ替える入替手段として、コンピュータを機能させ、
前記入替手段は、特定のデータを送信又は受信する頻度が閾値を上回った宛先を、前記頻度が前記閾値を上回っている間は、前記評価値に関わらず前記入替候補とせず、前記ルート記憶手段に記憶されている宛先について、当該宛先の通信装置の存在を示すデータを連続して所定回数受信したときから、特定期間の間は、前記頻度が前記閾値を上回っているとみなし、前記特定期間経過前に、当該宛先宛の特定のデータを送信又は受信した場合は、当該特定のデータを送信又は受信したときから前記特定期間の計時を開始する
ことを特徴とする通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の通信装置が無線ネットワークで接続されて成る通信システムに関するものである。
【背景技術】
【０００２】
近年、専用の基地局（アクセスポイント）を介さずに、端末装置自体が有する中継機能を用いることにより、互いに接続する複数の端末装置で構成されるアドホックネットワークが注目されている。
【０００３】
アドホックネットワークでは、複数の端末装置を中継するマルチホップ無線通信を行うことで、直接電波が届かないような場所にある端末装置と通信することが可能となる。
【０００４】
アドホックネットワークのルーティングプロトコルは、全ての端末装置（ノード）が自立分散的に動作することを想定しており、例えば、リアクティブ型のＡＯＤＶ（Adhoc  On  Demand  Distance  Algorithm）やプロアクティブ型のＯＬＳＲ（Optimized  Link  State  Routing）がある。プロアクティブ型のルーティングプロトコルでは、予めネットワーク上の各ノードから他のノードへの経路（ルート）を構築し、更に、最適な経路を学習し、適時、経路を変更する。
【０００５】
経路を変更するにあたり、動的に変化する環境下において通信品質を担保するためには、通信経路をどのように決定するのかが問題となる。
【０００６】
そこで、通信品質のより良い経路へと、通信経路を変更する様々な技術が提案されている。例えば、過去のデータ送信量、変更された通信経路の実績、ネットワークの再構築時間などに基づいて経路を変更するか否かを判断し、通信経路における通信品質の測定結果に基づいて通信経路を変更する技術等である（特許文献１等参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１５−１０９４９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ここで、アドホックネットワークの各端末装置は、ルーティング情報を格納するためのルーティングテーブルを記憶しており、このルーティングテーブルを参照してパケット（ネットワークが伝送するデータ）の中継を行う。つまり、通信経路を変更するとは、このルーティングテーブルを書き換えることを意味する。
【０００９】
このルーティングテーブルは、当然ながら有限であることから、不要となったルートを削除し、新規なルートを登録すること（ルートの入れ替え）が行われる。
【００１０】
しかし、ルーティングテーブルからルートを削除することは、そのルートが絶たれることになるので、他の端末装置のルートにも影響が及ぶことになる。また、ルーティングテーブルが溢れている場合には、ルーティングテーブルに登録されない、つまり、ネットワークに参加できない端末装置が発生する可能性もある。
【００１１】
従って、ルーティングテーブルから、いずれのルートを削除し、いずれのルートを登録するかによって、適切なネットワーク網、例えば、通信品質のより良いネットワーク網を構築できるか否かが左右されることになる。
【００１２】
そこで、本発明は、アドホックネットワーク（マルチホップ方式の無線ネットワークシステム）において、ルーティングテーブルに登録するルートを適切に選択することにより、パケットのルーティング（経路形成）を最適に制御することを目的とする。
【課題を解決するための手段】
【００１３】
本発明の一態様に係る通信装置は、マルチホップ無線通信により接続される複数の通信装置を有する無線ネットワークシステムの前記通信装置であって、宛先と、当該宛先への中継先と、当該宛先との接続のしやすさの度合いを示す評価値とを対応付けて記憶するルート記憶手段と、受信したデータから新たな通信装置の存在を検出する検出手段と、前記検出手段で検出された通信装置の新たな宛先と、前記ルート記憶手段に記憶されている宛先とを入れ替える入替手段であって、前記評価値に基づいて前記ルート記憶手段に記憶されている宛先から入替候補を選択し、選択した入替候補と前記新たな宛先とを入れ替える入替手段とを備え、前記入替手段は、特定のデータを送信又は受信する頻度が閾値を上回った宛先を、前記頻度が前記閾値を上回っている間は、前記評価値に関わらず前記入替候補とせず、前記ルート記憶手段に記憶されている宛先について、当該宛先の通信装置の存在を示すデータを連続して所定回数受信したときから、特定期間の間は、前記頻度が前記閾値を上回っているとみなし、前記特定期間経過前に、当該宛先宛の特定のデータを送信又は受信した場合は、当該特定のデータを送信又は受信したときから前記特定期間の計時を開始することを特徴とする。
【００１４】
そして、本発明の他の一態様に係る通信方法は、マルチホップ無線通信により接続される複数の通信装置を有する無線ネットワークシステムの、前記通信装置で用いられる通信方法であって、前記通信装置は、宛先と、当該宛先への中継先と、当該宛先との接続のしやすさの度合いを示す評価値とを対応付けて記憶するルート記憶手段を有し、受信したデータから新たな通信装置の存在を検出する検出ステップと、前記検出ステップで検出された通信装置の新たな宛先と、前記ルート記憶手段に記憶されている宛先とを入れ替える入替手段であって、前記評価値に基づいて前記ルート記憶手段に記憶されている宛先から入替候補を選択し、選択した入替候補と前記新たな宛先とを入れ替える入替ステップとを備え、前記入替ステップは、特定のデータを送信又は受信する頻度が閾値を上回った宛先を、前記頻度が前記閾値を上回っている間は、前記評価値に関わらず前記入替候補とせず、前記ルート記憶手段に記憶されている宛先について、当該宛先の通信装置の存在を示すデータを連続して所定回数受信したときから、特定期間の間は、前記頻度が前記閾値を上回っているとみなし、前記特定期間経過前に、当該宛先宛の特定のデータを送信又は受信した場合は、当該特定のデータを送信又は受信したときから前記特定期間の計時を開始することを特徴とする。
【００１５】
本発明の他の一態様に係る通信プログラムは、マルチホップ無線通信により接続される複数の通信装置を有する無線ネットワークシステムの前記通信装置で用いられる通信プログラムであって、宛先と、当該宛先への中継先と、当該宛先との接続のしやすさの度合いを示す評価値とを対応付けて記憶するルート記憶手段と、受信したデータから新たな通信装置の存在を検出する検出手段と、前記検出手段で検出された通信装置の新たな宛先と、前記ルート記憶手段に記憶されている宛先とを入れ替える入替手段であって、前記評価値に基づいて前記ルート記憶手段に記憶されている宛先から入替候補を選択し、選択した入替候補と前記新たな宛先とを入れ替える入替手段として、コンピュータを機能させ、前記入替手段は、特定のデータを送信又は受信する頻度が閾値を上回った宛先を、前記頻度が前記閾値を上回っている間は、前記評価値に関わらず前記入替候補とせず、前記ルート記憶手段に記憶されている宛先について、当該宛先の通信装置の存在を示すデータを連続して所定回数受信したときから、特定期間の間は、前記頻度が前記閾値を上回っているとみなし、前記特定期間経過前に、当該宛先宛の特定のデータを送信又は受信した場合は、当該特定のデータを送信又は受信したときから前記特定期間の計時を開始することを特徴とする。
【００１６】
このような構成の通信装置、通信方法、及び、通信プログラムによれば、特定のデータを送信又は受信する頻度が閾値を上回った宛先は、前記頻度が前記閾値を上回っている間は、ルート記憶手段から入れ替えられる入替候補となることがない。つまり、特定のデータがある頻度で通過している経路は、いわゆるルーティングテーブル（ルート記憶手段）から削除されることは無く、この経路をデータが通過することで評価を上げることが可能となる。一方、特定のデータが通過する頻度がある頻度に満たない経路は、この経路をデータがあまり通過しないので評価が下がることになり、ルーティングテーブルから削除される可能性が高くなる。従って、使用されている、言い換えれば、通信品質の良い経路は、ルーティングテーブルから削除され難くなり、使用されていない経路、言い換えれば、通信品質の悪い経路は、ルーティングテーブルから削除され易くなる。つまり、ルーティングテーブルの最適化が図られる。無線ネットワークシステムを構成する通信装置それぞれが、このようなルーティングテーブルの最適化を行うことで、結果的に、より通信品質が良く、且つ、安定したネットワーク網を構築することが可能となる。
また、この構成によれば、ルーティングテーブルに記憶されている宛先が示す通信装置の存在が、所定回数確認された場合には、その通信装置への経路は、特定期間の間維持されることになる。そして、その特定期間の間に特定のデータが通過すれば、更に、その経路は維持されることになる。従って、存在する可能性の高いと推定される通信装置への経路が、維持したい経路であれば維持される可能性が高くなる。
【００１７】
また、上述の通信装置において、前記特定のデータとは、データの宛先として、前記無線ネットワークシステムを構成するいずれかの通信装置を特定する宛先が設定されているデータであることが好ましい。
【００１８】
この構成によれば、宛先（送信先）が特定されたデータの通過する経路が、ルーティングテーブルから削除され難くなる。つまり、維持したい経路がルーティングテーブルから削除され難くなるので、維持したい経路が維持される可能性が高くなり、より適切な、且つ、安定したネットワーク網を構築することが可能となる。
【００１９】
また、上述の通信装置において、前記入替手段は、特定のデータを送信又は受信したときから特定期間の間は、前記頻度が前記閾値を上回っているとみなし、前記特定期間の経過前に、他の特定のデータを送信又は受信した場合は、当該他の特定のデータを送信又は受信したときから前記特定期間の計時を開始することが好ましい。
【００２０】
この構成によれば、特定のデータが通過している限り、その経路はルーティングテーブルから削除されることが無いので、維持したい経路が維持されることになる。従って、より適切な、且つ、安定したネットワーク網を構築することが可能となる。
【００２３】
また、上述の通信装置において、前記特定のデータを送信又は受信した場合に、当該特定のデータの送信元の通信装置の宛先又は当該特定のデータの送信先の宛先であって、前記ルート記憶手段に記憶されていない宛先を記憶する予約記憶手段を、更に備え、前記入替手段は、新たな通信装置の存在を示すデータを受信する前の所定期間の間に、当該新たな通信装置の宛先が前記予約記憶手段に記憶されていた場合には、当該新たな通信装置の宛先を前記入替候補と入れ替え、入替後、前記特定期間の間は、前記頻度が前記閾値を上回っているとみなすことが好ましい。
【００２４】
この構成によれば、その通信装置の存在を示すデータを受信する前に、その通信装置から特定のデータを受信していた場合は、ルーティングテーブルに登録され、その通信装置への経路は、特定期間の間維持されることになる。特定期間の間に特定のデータが通過すれば、更に、その経路は維持されることになる。従って、存在を示すデータと特定のデータとが受信される順番に関わらず、維持したい経路が維持される可能性が高くなる。結果的に、より適切な、且つ、安定したネットワーク網を構築することが可能となる。
【発明の効果】
【００２５】
本発明にかかるマルチホップ方式の無線ネットワークシステムでは、ルーティングテーブルに登録されるルートが適切に選択され、パケットのルーティングが最適に制御される。
【図面の簡単な説明】
【００２６】
【図１】電力需要家の端局から検針データ収集するための無線ネットワークシステムの使用例を示す図である。
【図２】端局Ｔの正面図の例である。
【図３】無線ネットワークシステムの概略を示す図である。
【図４】端局の機能ブロックの構成例を示す図である。
【図５】ゲートウェイＧＷの機能ブロックの構成例を示す図である。
【図６】ルーティングテーブルの構成及び内容の例を示す図である。
【図７】ルーティングテーブルの入れ替えを説明するための図である。
【図８】入れ替え後のルーティングテーブル（その１）を説明するための図である。
【図９】入れ替え後のルーティングテーブル（その２）を説明するための図である。
【図１０】ルーティングテーブル更新処理のフローチャートである。
【図１１】ルーティングテーブル登録処理のフローチャートである。
【図１２】宛先入替処理のフローチャートである。
【図１３】経路予約テーブルの構成及び内容の例を示す図である。
【図１４】経路予約テーブルを用いた場合の、ルーティングテーブルの入れ替えを説明するための図である。
【図１５】ルーティングテーブル更新処理２（変形例）のフローチャートである。
【図１６】予約宛先登録処理のフローチャートである。
【図１７】無線ネットワークで送受信されるデータを説明するための図である。
【図１８】無線ネットワークで送受信されるデータを説明するための図である。
【図１９】ルーティングテーブルが溢れた場合を説明するための図である。
【図２０】最適に形成された経路を説明するための図である。
【発明を実施するための形態】
【００２７】
＜実施形態＞
以下、マルチホップ方式の無線ネットワークシステム（アドホックネットワーク）を適用した例として、自動検針システムを説明する。自動検針システムは、各電力需要家に無線通信端末を設置し、これらを電力事業者が保有する収集サーバと通信可能に接続し、各電力需要家における電力量計の検針データを定期的に収集するシステムである。
【００２８】
図１は、実施形態の無線ネットワークシステムの使用例を示す図である。この無線ネットワークシステムは、電力需要家Ｈ１、Ｈ２、・・・、Ｈ２０（総称するときは、電力需要家Ｈという。）、各電力需要家Ｈに設置されている電力計量器である端局Ｔ１、Ｔ２、・・・、Ｔ２０（総称するときは、端局Ｔという。）、ゲートウェイＧＷａ、ＧＷｂ、ＧＷｃ（総称するときは、ゲートウェイＧＷという。）、ネットワーク２、サーバ装置１を備える。尚、電力需要家Ｈ、端局Ｔ、ゲートウェイＧＷ、及び、サーバ装置１の個数は、これらの数に限られない。
【００２９】
ネットワーク２は、電力会社等のネットワーク運営会社によって管理されているネットワークであり、有線、無線を問わない。また、ゲートウェイＧＷは、例えば、主な電柱に設けられ、ネットワーク２を介して、電力会社等によって管理されているサーバ装置１と接続される。
【００３０】
端局Ｔ、及び、ゲートウェイＧＷは、マルチホップを用いたネットワークのノードを構成する。端局Ｔは、何れかのゲートウェイＧＷに属している。端局Ｔは、積算電力量計としての機能を有し、それぞれの検針データは、順次、隣の端局Ｔに転送され、自装置が属するゲートウェイＧＷに集められる。各ゲートウェイＧＷに集められた検針データは、ネットワーク２を介して、サーバ装置１に送信される。端局Ｔは、無線ＬＡＮ（Local  Area  Network）規格での通信を行い、信号Ａ１〜５等で示すように、アドホックモードによって１対１の通信を行う。また、ゲートウェイＧＷはそれぞれ、数百程度の端局Ｔの検針データを収集し、収集した検針データをサーバ装置１に送信する。
【００３１】
図２は、端局Ｔの正面図の例である。この端局Ｔは、電力需要家の宅内の各配電線が接続される端子台６、負荷開閉器３０００、電力量計２０００、及び、通信ユニット１０００が配列されて構成される。電力量計２０００は、積算電力量を、予め定める周期、例えば、５分毎に検針する。その検針データは３０分毎に、通信ユニット１０００によって、自装置の属するゲートウェイＧＷに向けて送信される。負荷開閉器３０００は、サーバ装置１から送信されてくる制御データに応じて、開閉動作を行う。
【００３２】
ここで、図３に、実施形態のマルチホップを用いたネットワークの概略を示す。円がノードを表し、円を結ぶ破線は、その両端の円で示すノードが、互いの存在を検出（認識、学習）していることを示す（双方向リンク）。ゲートウェイＧＷを表す円には、円内部にゲートウェイＧＷの識別子「ＧＷａ」等が記載されている。また、端局Ｔを表す円には、円内部に端局Ｔの識別子「Ｔ１」等が記載されている。
【００３３】
サーバ装置１とゲートウェイＧＷとはネットワーク２によって接続され、ゲートウェイＧＷと各端局Ｔとは、マルチホップにより接続される。例えば、実施形態のネットワークでは、ホップ数は、最大で数十、好ましくは十ホップ以下である。
【００３４】
実施形態のネットワークは、例えば、マルチホップ無線ネットワークにおけるいわゆるプロアクティブ型のルーティングのプロトコルの１つであるＯＬＳＲ（Optimized  Link  State  Routing）によって生成される。ゲートウェイＧＷと各端局Ｔとの間の経路は、各ノード（ゲートウェイＧＷ、端局Ｔ）が、周期的に、自装置の存在を伝えるとともに、経路情報を交換するためのＨｅｌｌｏメッセージを送受信することで、各ノードが自律的に構築する。各ゲートウェイＧＷ、及び、各端局Ｔは、ネットワーク全体のトポロジー情報である経路表（ルーティングテーブル）として、例えば、学習したネットワーク内の端局Ｔの宛先と、その端局Ｔへデータを送信するための隣接送信先である端局Ｔの宛先とを対応付けて記憶する。
【００３５】
各ノードが自律的に、周囲の電波状況等の変化に応じて、最適な経路を構築するため、端局ＴからゲートウェイＧＷへの上りルートと、ゲートウェイＧＷから端局Ｔへの下りルートとでは、経路が異なる場合がある。また、各ノードは、使用中の経路の通信状態の悪化に備えて、複数の予備の経路を確保している。
【００３６】
検針データは、その端局Ｔが属するゲートウェイＧＷに向けて上りルートで送信される。例えば、図３において、ハッチングがかかった識別子「Ｔ８」の端局Ｔ（以下、「端局Ｔ８」という。）の、識別子「ＧＷａ」のゲートウェイＧＷ（以下、「ゲートウェイＧＷａ」という。）への上りルートを、ゲートウェイＧＷ向きの実線矢印で示す。具体的には、端局Ｔ８が送信した検針データは、端局Ｔ６を経由してゲートウェイＧＷａに到達する。端局Ｔ８が、検針データをゲートウェイＧＷａに向けて送信する為に、上位の隣接送信先である端局Ｔ６に送信するパケット（ネットワークが伝送するデータ）の例を図１７（ａ）に示す。このパケットには、隣接宛先として端局Ｔ６の宛先「Ｔ６」、最終宛先としてゲートウェイＧＷａの宛先「ＧＷａ」、データ種別として「検針データ」、自装置の検針データが含まれる。端局Ｔ８から検針データのパケットを受信した端局Ｔ６は、最終宛先「ＧＷａ」への経路上の宛先に、受信したパケットを転送する。図３の場合は、端局Ｔ６は、受信したパケットを「ＧＷａ」に転送することとなるが、他の端局Ｔを経由する場合は、その端局Ｔ宛にパケットを転送する。
【００３７】
尚、実施形態では、端局Ｔの宛先は、ＭＡＣ（Media  Access  Control）アドレスとし、ゲートウェイＧＷの宛先は、ＩＰ（Internet  Protocol）アドレスとする。また、図１７、図１８に示すパケットの例では、説明に必要な項目データのみを記載するものとする。
【００３８】
また、サーバ装置１は、各ゲートウェイＧＷに属している端局Ｔを記憶しており、端局Ｔ８に制御データを送信する際には、その端局Ｔが属するゲートウェイＧＷａに制御データ（命令）を渡して、端局Ｔ８への送信を依頼する。制御データは、図３の端局Ｔ８に向かう実線矢印のルートで示す下りルートで、送信されることになる。具体的には、ゲートウェイＧＷａが送信した制御データは、端局Ｔ１、端局Ｔ３、端局Ｔ５を経由して端局Ｔ８に到達する。
【００３９】
ゲートウェイＧＷａは、端局Ｔ８に送信する為に、制御データのパケットを、隣接送信先である端局Ｔ１宛に送信する。ゲートウェイＧＷａが、端局Ｔ１に送信するパケットの例を図１７（ｂ）に示す。このパケットには、隣接宛先として端局Ｔ１の宛先「Ｔ１」、データ種別として「制御データ」、最終宛先として端局Ｔ８の宛先「Ｔ８」、制御データが含まれる。ゲートウェイＧＷａから制御データのパケットを受信した端局Ｔ１は、最終宛先「Ｔ８」への隣接送信先である端局Ｔ３宛に、パケットを転送する。
【００４０】
ここで、端局Ｔ間は、無線によって通信が行われるため、電波環境が変化して通信ができなくなることが考えられる。例えば、天候が悪化したり、大型車の通行が増えたり、大きな建物が建築されたり等、様々な要因で電波環境に変化が生じる。また、新たなゲートウェイＧＷや通信ユニット１０００が設置されたり、撤去されることもある。従って、一旦経路が決定されたとしても、電波環境の変化に迅速に対応するために、実施形態の端局Ｔの通信ユニット１０００は、検針データをサーバ装置１に送信するために現在使用している経路以外の経路を、予備の経路（副経路）として確保している。つまり、現在属しているゲートウェイＧＷ（以下、「主ゲートウェイＧＷ」という。）への経路として、現在使用している経路（Ｒ１）以外に、予備の経路を確保している。例えば、図３の端局Ｔ８は、主ゲートウェイＧＷａへの予備の経路（白抜き矢印のルートＲ２、Ｒ３参照）を構築している。更に、主ゲートウェイＧＷ以外のゲートウェイＧＷを、予備のゲートウェイＧＷ（以下、「副ゲートウェイＧＷ」という。）として確保している。例えば、図３の端局Ｔ８は、副ゲートウェイＧＷとして「ＧＷｂ」を確保し、ＧＷｂへの経路（破線矢印のルート参照）を構築している。
【００４１】
＜ルーティングテーブルの溢れ状態について＞
本実施形態のような無線ネットワークでは、例えば、図１に示すように、市街地と郊外とでは、電力需要家Ｈの密集度に差があることから、電力需要家Ｈに設置された端局Ｔの分布密度にばらつきが発生する。このような端局Ｔの密度に差がある環境においては、ゲートウェイＧＷの適切な配置を設計することが難しく、意図しないゲートウェイＧＷに属してしまう端局Ｔが発生し、また、ネットワークに参加できないで孤立した端局Ｔが発生し得る。この原因の一つとして、各ノードが備えているルーティングテーブルの空きがなくなり、新たなノードを登録することができない状態、つまり、溢れ状態がある。
【００４２】
ノードのメモリリソースには当然に上限があり、各ノードが備えているルーティングテーブルに登録できる宛先（端局Ｔの宛先、ゲートウェイＧＷの宛先）に限りがある。従って、新設された端局Ｔを登録しようとしても登録できない場合や、ネットワークに参加している端局Ｔであっても、最適な経路上の端局Ｔのルーティングテーブルが溢れている場合には、迂回ルートを通らざる負えない場合や、予期せぬゲートウェイＧＷに属することとなっている場合等がある。また、最短ルートを構築できない場合には、ホップ数が増加することにより経路が切れる可能性が高まり、経路の通信品質も低くなる状態が生じ得る。
【００４３】
また、各ノードは、自律分散的に経路を構築するため、ノードの密集地では、各ノードのルーティングテーブルに重複して登録されている宛先が多くなる傾向にあることも、ルーティングテーブル溢れの一因である。
【００４４】
ルーティングテーブルが溢れた場合、通信品質のより良いネットワーク構築のために、評価の悪い宛先を削除して、新しく検出された宛先を登録することが行われる場合がある。評価とは、宛先までの繋がりやすさを示す指標であり、通信実績、宛先までのホップ数などを元に算出される。評価に基づいてルーティングテーブルの宛先の入れ替えを行う場合、頻繁に新しいノードが検出されるような環境下、例えば、ノード密集地では、評価の低い宛先同士が、頻繁に入れ替えられるという状態が発生する。
【００４５】
つまり、新しく検出されたノードの宛先がルーティングテーブルに登録されたとしても、その宛先への通信実績が上がる前に（評価が上がる前に）、他の新しいノードが検出されて、先に登録された宛先が削除されて、直近に検出されたノードの宛先が登録される、ということの繰り返しが発生し得る。
【００４６】
このような入れ替えが頻発する状態では、評価が低い宛先同士が、繰り返し入れ替えられる一方で、評価が高い宛先は入れ替えの対象とはならないので、着実に実績を積むことができて固定化することになる。しかし、評価が低い宛先であっても、実績を積めないが為に評価が低いだけであって、実際には、最適なルートを形成する宛先である場合もある。
【００４７】
そこで、実施形態の無線ネットワークの各ノードでは、ルーティングテーブルが溢れた場合に、評価に基づいてルーティングテーブルの入れ替えを行うだけでなく、宛先が適切なルートを形成するのであれば着実に通信実績が詰めるような方法（評価を高める方法）を併用することで、より最適なルーティングを行う。各ノードが、実施形態のようなルーティングを行うことで、結果的に、通信品質の良い、安定した、最適なネットワークを構築することが可能となる。
【００４８】
以下、本発明にかかる実施の一形態を図面に基づいて説明する。
【００４９】
＜経路形成について＞
まず、実施形態のルーティングテーブルの宛先の入れ替え方法について説明する。
【００５０】
＜ルーティングテーブルの構成例＞
図６は、実施形態のノード（端局Ｔ、ゲートウェイＧＷ）が、後述のリンク情報記憶部１６００に記憶しているルーティングテーブル１６１０の構成及び内容の例を示す図である。
【００５１】
図６には、上下に２つのテーブルが記載されており、上段のテーブルがルーティングテーブル１６１０を示し、下段のテーブルは、ルーティングテーブル１６１０に登録されている宛先ごとの経路の詳細テーブルを示す。図６では、順位１６１１が「３」の宛先の詳細テーブルを示しているが（太線矢印参照）、宛先それぞれが、同じ構成の詳細テーブルを有している。つまり、図６のルーティングテーブル１６１０では、説明の便宜上、宛先ごとに１レコードが登録されているように記載しているが、実際には、１つの宛先ごとに３つのレコードを有している。この３つのレコードそれぞれは、宛先への経路を示す。
【００５２】
上述したように、実施形態の端局Ｔは、検針データ等をゲートウェイＧＷに送信するために現在使用している経路以外の経路を、予備の経路（副経路）として確保している。詳細テーブルの３つのレコードが示す経路は、評価が高い順に１段目から並んでおり、１段目のレコードが示す経路が、現在使用している経路を示し、２段目、及び、３段目が、予備の経路を示す。同様に、ゲートウェイＧＷは、端局Ｔに制御データ等を送信するために、各端局への経路を複数確保している。図６では、ルーティングテーブル１６１０の宛先ごとに、現在使用している経路を記載しており、以下の説明において明記しない場合は、現在使用している経路を示す。また、ルーティングテーブル１６１０の宛先という場合は、最終宛先１６１２として設定されている宛先を示し、宛先を登録、宛先を削除という場合は、その宛先の予備の経路を含む３つの経路を登録、削除することを示す。
【００５３】
尚、実施形態では、２つの予備の経路を確保しているが、他の数の予備の経路を確保することとしても良い。
【００５４】
ルーティングテーブル１６１０には、複数の宛先（ノード）が登録されるが、登録可能なノードの数（レコード数）は、構築するネットワークに依存する。実施形態の自動検針システムでは、例えば、１５００個のノードが登録される。図６では、「ｎ」個と記載している。
【００５５】
ルーティングテーブル１６１０は、順位１６１１、最終宛先１６１２、種別１６１３、隣接宛先１６１４、実績１６１５、ホップ１６１６、電界１６１７、評価値１６１８、ＡＭフラグ１６１９、及び、経過時間１６２０を有する。
【００５６】
順位１６１１は、最終宛先１６１２が示す宛先までの経路の順位を示す。順位は、経路の評価を基準に、評価が高い順に１からふられる。評価は、評価値１６１８に示される値である。
【００５７】
最終宛先１６１２は、最終的な送信先であるノードを特定するための識別子を示す。詳細には、送信先であるノードのアドレスを示す。尚、本実施形態では、送信先のノードに限らず各ノードの識別子（アドレス）のことを「宛先」と称する。
【００５８】
種別１６１３は、最終宛先１６１２が示す宛先のノードの種類を示す。実施形態では、ノードの種類として、端局Ｔ、及び、ゲートウェイＧＷの２種類がある。「端局」が端局Ｔを示し、「ＧＷ」は、ゲートウェイＧＷを示す。実施形態では、端局Ｔからの検針データはゲートウェイＧＷに集められ、端局Ｔに対する制御データはゲートウェイＧＷから送信されることから、端局Ｔが記憶するルーティングテーブル１６１０の種別１６１３としては、「端局」と「ＧＷ」が設定されており、ゲートウェイＧＷが記憶するルーティングテーブル１６１０の種別１６１３としては、「端局」のみが設定されている。尚、「ＧＷ」が設定されているレコードのうち、最も順位１６１１が良い（評価が高い）レコードのゲートウェイＧＷが、主ゲートウェイＧＷであり、現在、属しているゲートウェイＧＷとなる。また、２番目に順位１６１１が良いゲートウェイＧＷが、副ゲートウェイＧＷとなる。従って、もっとも良い順位１６１１のゲートウェイＧＷが変わった時に、属するゲートウェイＧＷが変わることになる。
【００５９】
隣接宛先１６１４は、最終宛先１６１２が示す宛先にパケットを送信する場合に、パケットを渡すべき、隣接するノードの識別子（中継先）を示す。
【００６０】
実績１６１５は、隣接宛先１６１４が示す宛先のノード（隣接ノード）を経た、最終宛先１６１２が示す宛先へのデータ送達実績（通信実績）を示す。通信が成功する都度に所定値が加算され、失敗する都度に所定値が減算される。つまり、値が大きい程、通信実績が良い。
【００６１】
ホップ１６１６は、最終宛先１６１２が示す宛先までのホップ数を示す。ホップ数が少ないほど、評価が高い。
【００６２】
電界１６１７は、隣接宛先１６１４が示すノードからのＨｅｌｌｏメッセージの電波強度（電界強度）を示す。
【００６３】
評価値１６１８は、最終宛先１６１２が示す宛先までの経路の評価値を示す。評価値は、実績１６１５〜電界１６１７が示す値を元に、予め定められた計算式を用いて算出される。実施形態では、評価値が大きい程、評価が高い、つまり、接続しやすいことを示す。実績１６１５〜電界１６１７、及び、評価値１６１８は、後述する無線通信制御部１１００によって、適時、更新される。評価値１６１８の値は、後述する評価値算出部１１４０によって算出される。例えば、メッセージが受信されたとき、データ通信の到達応答が受信されたとき、データ通信の失敗が検出されたとき、ループ経路等が検出されたとき等に更新される。尚、実績１６１５〜電界１６１７は、一例であり、他の情報を用いて評価値を算出することとしても良く、その評価値は、通信の実績を加味した評価を示すものであればよい。
【００６４】
ＡＭフラグ１６１９は、以下の２つの場合に、「ＯＮ」が設定される。１つ目は、最終宛先１６１２が示す宛先へのアドホックメッセージを送信、又は、受信した場合に、「ＯＮ」が設定される。アドホックメッセージについては、＜ＡＭフラグについて＞の項で説明する。このＡＭフラグ１６１９は、現在使用している経路に対するフラグである。具体的には、アドホックメッセージの送信元（メッセージを送出したノード）では、最終宛先１６１２としてアドホックメッセージの送信先（メッセージの届け先のノード）の宛先が設定されているレコードのＡＭフラグ１６１９が「ＯＮ」とされ、アドホックメッセージを転送するノードでは、最終宛先１６１２としてアドホックメッセージの送信先の宛先が設定されているレコードと、送信元の宛先が設定されているレコードの２つのレコードのＡＭフラグ１６１９が「ＯＮ」とされ、送信先のノードでは、最終宛先１６１２として送信元の宛先が設定されているレコードのＡＭフラグ１６１９が「ＯＮ」とされる。
【００６５】
２つ目の「ＯＮ」が設定される場合は、連続して所定回数、例えば、３回、最終宛先１６１２が示す宛先のノードの存在を示すＨｅｌｌｏメッセージを受信した場合である。言い換えれば、連続して受信されたＨｅｌｌｏメッセージそれぞれが、その宛先のノードの存在を示すノード集合等の情報を記憶していた場合である。以下、宛先のノードの存在を示すノード集合等の情報を記憶しているＨｅｌｌｏメッセージを、「宛先のノードの存在を示すＨｅｌｌｏメッセージ」等という。
【００６６】
このＡＭフラグ１６１９の使用方法の詳細は、＜ＡＭフラグについて＞の項で説明する。尚、図６において、「１」が「ＯＮ」を表し、「０」が「ＯＦＦ」を表す。
【００６７】
経過時間１６２０は、ＡＭフラグ１６１９に「ＯＮ」が設定されてからの経過時間を示す。単位は、「分」である。図６では、説明の便宜上、経過した時間を表示しているが、ＡＭフラグ１６１９が「ＯＮ」となった時刻が設定されており、経過時間の判断時に、タイマー１３００から現在の時刻を取得して、経過時間を算出することとしても良い。
【００６８】
＜ＡＭフラグについて＞
上述のように、ＡＭフラグ１６１９は、最終宛先１６１２が示す宛先へのアドホックメッセージを送信、又は、受信した場合、また、最終宛先１６１２が示す宛先の存在を示すＨｅｌｌｏメッセージを所定回数受信した場合に、「ＯＮ」が設定される。
【００６９】
実施形態の自動検針システムでは、様々なメッセージ（パケット）が伝送されており、これらメッセージには、以下の２つの機能を持つメッセージが含まれる。１つ目は、アドホック網を維持形成させるためのＨｅｌｌｏメッセージである。２つ目は、特定のノード（端局Ｔ、ゲートウェイＧＷ）に届けるために送信されるメッセージであり、例えば、検針データをゲートウェイＧＷに届けるためのメッセージ、自装置が属するゲートウェイＧＷの情報などの自情報をゲートウェイＧＷに届けるためのメッセージ、制御データを端局Ｔに届けるためのメッセージ等である。この２つ目のメッセージを、「アドホックメッセージ」というものとする。
【００７０】
尚、Ｈｅｌｌｏメッセージとは、各ノードが記憶する情報を周囲に向けて配信することを目的として、周期的に、例えば、６０秒周期で送信されるメッセージである。このＨｅｌｌｏメッセージは、自装置に隣接するノードの宛先や、更にその先に存在するノードなど、自装置が把握している全ての宛先情報（ノード集合）や、各宛先への経路の評価を行うために必要な情報を含む。各ノードは、他のノードからのＨｅｌｌｏメッセージを受信し、その内容を解析することで、アドホック網を維持形成する。尚、Ｈｅｌｌｏメッセージは、隣接ノードにのみ送信される。
【００７１】
ルーティングテーブル１６１０のＡＭフラグ１６１９は、宛先（最終宛先１６１２の宛先）をルーティングテーブル１６１０から削除する候補（入替候補）とすることができるか否かを示すフラグである。最終宛先１６１２として登録されている宛先のうち、ＡＭフラグ１６１９が「ＯＮ」となっている宛先は、入替候補とはされないことを示し、「ＯＦＦ」となっている宛先は、入替候補となることを示す。
【００７２】
実施形態では、ルーティングテーブル１６１０が溢れて、いずれかの宛先が削除される場合、つまり、新たに検出された宛先と入れ替えられる場合は、ＡＭフラグ１６１９が「ＯＦＦ」となっている宛先のうち、評価値１６１８が示す評価値が最も小さい（評価が最も低い）宛先が入替候補となり削除される。従って、評価が最も低い宛先であっても、その宛先のＡＭフラグ１６１９が「ＯＮ」となっている場合は、削除されることは無い。
【００７３】
また、ＡＭフラグ１６１９は、「ＯＮ」になってから特定期間、例えば、６時間（３６０分）が経過すると「ＯＦＦ」になるものとし、特定期間が経過する前にアドホックメッセージを送信、又は、受信すると、経過時間１６２０が示す経過時間がリセットされて、特定期間のカウントが最初から開始されるものとする。
【００７４】
つまり、特定期間よりも短い間隔でアドホックメッセージを受信、又は、送信している間は、ＡＭフラグ１６１９は常に「ＯＮ」であることになる。一方、特定期間の間にアドホックメッセージが受信、又は、送信されなかった場合には、「ＯＦＦ」となる。
【００７５】
従って、アドホックメッセージがたまたま届いたような場合には、ＡＭフラグ１６１９は、一旦は「ＯＮ」になるものの、特定期間経過後には「ＯＦＦ」となって入替候補となる。一方、アドホックメッセージがある程度の間隔で送受信されている宛先への経路は、確保され続けることになる。言い換えれば、一定の頻度でアドホックメッセージを受信、又は、送信している間は、ＡＭフラグ１６１９は常に「ＯＮ」であり、その経路は確保されていることになる。ＡＭフラグ１６１９は、アドホックメッセージを受信、又は、送信している頻度が閾値を上回っているか否かを表している情報（頻度情報）ともいえる。
【００７６】
この特定期間は、アドホック網が適用されているアプリケーションの内容や、ルーティングテーブルのサイズ等に応じて、適切な期間とされる。
【００７７】
アドホックメッセージとは、上述のように、送信先の宛先として他のノード（端局Ｔ、ゲートウェイＧＷ）の宛先が設定されているメッセージであり、目的の宛先へ情報を伝達する通信であるので、アドホックメッセージが通った経路は、維持したい経路である可能性が高い。ルーティングテーブル１６１０から宛先が削除されるということは、その宛先までの経路が切れることを意味するので、経路を切らないようにできるＡＭフラグ１６１９は、アドホックメッセージの通過する経路を維持するためのフラグということができる。
【００７８】
尚、存在を示すＨｅｌｌｏメッセージを３回受信したらＡＭフラグ１６１９を「ＯＮ」にする場合は、Ｈｅｌｌｏメッセージが６０秒周期で送信されていることから、その宛先が、少なくとも１２０秒はルーティングテーブル１６１０から削除されないことが条件となる。従って、Ｈｅｌｌｏメッセージの受信によりＡＭフラグ１６１９が「ＯＮ」になるのは、ノード密集地ではなく、ルーティングテーブルに余裕がある場合が多い。このような場合は、Ｈｅｌｌｏメッセージにより存在が確認できたときに経路を維持することが可能となる。
【００７９】
＜ＡＭフラグの使用例＞
以下、図７〜図９を用いて、ＡＭフラグの使用例を具体的に説明する。
【００８０】
図７は、ノードＤを送信先（宛先）としたアドホックメッセージを、ノードＡが最初に送信した場合のルーティングテーブル１６１０を説明するための図である。図８は、その後、ノードＤを送信先としたアドホックメッセージを、ノードＡが同一経路で、一定頻度で送信し、ノードＤに到達した場合を説明するための図であり、図９は、同一経路では、アドホックメッセージが到達しなかった場合を説明するための図である。円で示されたノードＡ〜Ｇの７つのノードが記載され、破線で結ばれたノード同士は相手の存在を認識していることを示す。
【００８１】
図７において、太線矢印で示すように、ノードＡからノードＤまでは、ノードＢ、ノードＣを経由する経路が確保されている。また、ノードＡ〜Ｄに記憶されているルーティングテーブル１６１０が、各ノードからの細線矢印のよって示されている。
【００８２】
まず、ノードＡは、ノードＤを送信先としたアドホックメッセージをノードＢに送信する。ノードＡのルーティングテーブル１６１０の最終宛先１６１２が「Ｄ」のＡＭフラグ１６１９が「ＯＮ」とされて経過時間のカウントが開始され、経過時間１６２０に示される。
【００８３】
ノードＡから、ノードＤを送信先としたアドホックメッセージを受信したノードＢは、受信したアドホックメッセージをノードＣに送信（転送）する。ノードＢのルーティングテーブル１６１０の最終宛先１６１２が「Ｄ」のＡＭフラグ１６１９が「ＯＮ」とされて経過時間のカウントが開始され、経過時間１６２０に示される。尚、最終宛先１６１２が「Ｄ」の評価値１６１８は「２２」であり、最も低い評価である（ハッチングがかけられている欄参照）。また、送信元がノードＡであるので、最終宛先１６１２が「Ａ」のＡＭフラグ１６１９が「ＯＮ」とされて経過時間のカウントが開始され、経過時間１６２０に示される。
【００８４】
ノードＢから、ノードＤを送信先としたアドホックメッセージを受信したノードＣは、受信したアドホックメッセージをノードＤに送信（転送）する。ノードＣのルーティングテーブル１６１０の最終宛先１６１２が「Ｄ」のＡＭフラグ１６１９が「ＯＮ」とされて経過時間のカウントが開始され、経過時間１６２０に示される。また、送信元がノードＡであるので、最終宛先１６１２が「Ａ」のＡＭフラグ１６１９が「ＯＮ」とされて経過時間のカウントが開始され、経過時間１６２０に示される。
【００８５】
ノードＣから、ノードＤを送信先としたアドホックメッセージを受信したノードＤは、受信したアドホックメッセージを処理する。送信元がノードＡであるので、ノードＤのルーティングテーブル１６１０の最終宛先１６１２が「Ａ」のＡＭフラグ１６１９が「ＯＮ」とされて経過時間のカウントが開始され、経過時間１６２０に示される。
【００８６】
この状態から、ノードＡがノードＤを送信先としたアドホックメッセージを、一定頻度で送信した場合の例を図８に示す。例えば、ノードＤがゲートウェイＧＷであり、ノードＡが端局Ｔであって、検針データを３０分周期で送信した場合である。
【００８７】
特定期間が６時間であるとすると、ノードＡが３０分周期でアドホックメッセージを送信した場合には、最初のアドホックメッセージが送信されたときに、ノードＡ、Ｂ、Ｃ、Ｄのルーティングテーブル１６１０において「ＯＮ」となったＡＭフラグ１６１９は、「ＯＮ」のままであることになる。つまり、経路が維持され続けていることになる。
【００８８】
更に、経路が維持されていることで、経路上のノードは通信の実績を積むことができるので、ルーティングテーブル１６１０においてＡＭフラグ１６１９が「ＯＮ」となっている最終宛先１６１２の評価値１６１８の値が大きく（評価が高く）なる。評価が高くなれば、一時的に障害物が現れたなどの理由で通信が途絶えてＡＭフラグ１６１９が「ＯＦＦ」となったとしても、直ちに入れ替えられる（削除される）ことは無い。従って、障害物が消えた時には、経路が切れていないので、再びＡＭフラグ１６１９が「ＯＮ」とされて、経路を維持することが可能となる。
【００８９】
ノードＢについて、図７ではルーティングテーブル１６１０の最終宛先１６１２が「Ｄ」の評価値１６１８は「２２」であり、順位１６１１が最下位であった。つまり、新たなノードが検出された場合には、入替候補となり削除される宛先であった。しかし、ＡＭフラグ１６１９を「ＯＮ」として入替候補としないこととしたため、通信実績を積むことができ、評価値１６１８の値が大きくなり（評価が高くなり）、順位１６１１を「７５」としている。ＡＭフラグ１６１９を「ＯＮ」として入替候補としていない間に、評価値が上がるということは、ノードＢからノードＤへの経路が適切な（通信品質の良い）経路であることを示していることになる。
【００９０】
次に、図７の状態から、ノードＡが送信したアドホックメッセージが、ノードＤに届かなかった場合の例を図９に示す。例えば、ノードＡとノードＢとの間の通信環境が悪化して、アドホックメッセージがノードＤに到達しなかった場合である。
【００９１】
この場合、ノードＢについて、図７ではルーティングテーブル１６１０の最終宛先１６１２が「Ｄ」のＡＭフラグ１６１９は「ＯＮ」にされるが、ノードＡからのノードＤを送信先としたアドホックメッセージが届かないため（図９の１）参照）、特定期間経過後に「ＯＦＦ」となる。従って、順位１６１１が最下位である最終宛先１６１２「Ｄ」は、新たに検出されたノード、例えば、ノードＧの宛先と入れ替えられる（図９の（２）参照）。この時点で、ノードＢからノードＤへの経路が切れたことになる。
【００９２】
ノードＡでは、ノードＤを送信先としたアドホックメッセージが、隣接宛先１６１４が「Ｂ」の経路では届かないので、評価値１６１８の値が小さくなる（評価が下がる）。そして、ノードＡは、評価が上となった隣接宛先１６１４が「Ｅ」の経路を用いて、ノードＤを送信先としたアドホックメッセージを送信する（図９の（３）参照）。つまり、経路を変更する（白抜き矢印参照）。このアドホックメッセージがノードＤに到達すれば、ノードＡ、Ｅ、Ｆ、Ｄのルーティングテーブル１６１０（不図示）において、最終宛先１６１２が「Ｄ」、「Ａ」のＡＭフラグ１６１９が「ＯＮ」にされ、経路の維持が開始されることになる。
【００９３】
このように、ＡＭフラグ１６１９を用いて、アドホックメッセージが一定頻度で通過している経路を維持し、特定期間の間にアドホックメッセージが通過しない経路は入替候補とすることで、通信品質の良い経路は残り、通信品質の悪い経路は淘汰されて行く。同時に、各ノードは確保している予備の経路に切り替えながら、より通信品質のよい経路を探すので、結果的に、アドホックネットワーク全体の経路が最適化され、安定したアドホック網を形成することができることになる。ルーティングテーブルにおいては、通信品質の悪い経路の代わりに、新しく検出されたノードを登録することができるので、ネットワークに参加できなかったノードを登録することができ、孤立したノードを大幅に減らすことが可能となる。
【００９４】
最適なアドホック網が形成されるということは、当該ネットワークを適用したアプリケーションの動作を保証することにつながる。例えば、実施形態の自動検針システムにおいては、最適なアドホック網が形成されることで、各電力需要家Ｈの端局Ｔから、検針データを定期的に収集することができ、また、ネットワークに参加できない端局Ｔを大幅に減らすことが可能となる。
【００９５】
＜構成＞
図４は、端局Ｔの機能ブロックの構成例を示す図である。端局Ｔは、通信ユニット１０００、電力量計２０００、及び、負荷開閉器３０００を備える。破線の矢印は、一部の端局ＴがゲートウェイＧＷと通信を行うことを示す。
【００９６】
通信ユニット１０００は、無線通信制御部１１００、無線通信部１２００、タイマー１３００、機内通信制御部１４００、インタフェース１４１０、インタフェース１４２０、外部インタフェース１５００、リンク情報記憶部１６００、及び、電力量情報記憶部１７００を備える。
【００９７】
無線通信制御部１１００は、メッセージ送受信部１１１０、ルーティングテーブル更新部１１２０、宛先入替処理部１１３０、及び、評価値算出部１１４０を有し、各機能部を制御して、無線通信の制御を行う機能を有する。また、無線通信制御部１１００は、実施形態の自動検針システムに特有の処理、例えば、電力量計２０００に積算電力量の検針を開始させる処理、負荷開閉器３０００に対して開閉器をＯＮ又はＯＦＦにする指示を出す処理等の処理を行う。更に、無線通信制御部１１００は、アドホックメッセージの送信タイミングをタイマー１３００から通知されると、そのアドホックメッセージを作成し、メッセージ送受信部１１１０に対して送信を依頼する処理等の処理を行う。例えば、３０分周期の検針データの送信タイミングをタイマー１３００から通知されると、電力量情報記憶部１７００に記憶されている電力量を読み出して、自装置が属するゲートウェイＧＷ宛のパケット（図１７（ａ）参照）を作成し、メッセージ送受信部１１１０に送信を依頼する。
【００９８】
メッセージ送受信部１１１０は、実施形態の自動検針システムを実現するための様々なメッセージ（パケット）を送受信する機能を有する。これらメッセージには、Ｈｅｌｌｏメッセージ、及び、アドホックメッセージが含まれる。
【００９９】
メッセージ送受信部１１１０は、Ｈｅｌｌｏメッセージの送信タイミングをタイマー１３００から通知されると、リンク情報記憶部１６００から必要な情報を読み出して、Ｈｅｌｌｏメッセージを作成し、無線通信部１２００を介して送信（ブロードキャスト）する。図１８（ｂ）に、図３の端局Ｔ８が周囲に送信するメッセージの例を示す。このメッセージ（パケット）には、宛先として全宛先（ブロードキャストアドレス）、送信元として自装置の宛先「Ｔ８」、リンク情報として、隣接するノードの宛先や、更に先に存在するノードの宛先などの情報等が含まれる。
【０１００】
メッセージ送受信部１１１０は、他のノードからＨｅｌｌｏメッセージを受信すると、受信したＨｅｌｌｏメッセージに基づいたルーティングテーブルの更新を、ルーティングテーブル更新部１１２０に依頼する。
【０１０１】
また、メッセージ送受信部１１１０は、無線通信制御部１１００からの依頼を受けて、アドホックメッセージを送信する。アドホックメッセージとしては、検針データの他、自装置の状態通知データや、他の端局Ｔへのネットワーク疎通を確認するためのＰｉｎｇ等のデータがある。
【０１０２】
メッセージ送受信部１１１０は、アドホックメッセージを受信すると、リンク情報記憶部１６００に記憶されているルーティングテーブル１６１０を参照し、メッセージの宛先に転送する。受信したメッセージが自装置に処理を指示するものである場合には、その内容に応じた処理を無線通信制御部１１００に依頼する。例えば、電力を止めることを指示する制御データ（図１７（ｂ）参照）を受信した場合には、無線通信制御部１１００は、負荷開閉器３０００に対して開閉器をＯＦＦにする指示を出すなどである。
【０１０３】
更に、メッセージ送受信部１１１０は、アドホックメッセージを送信又は受信すると、そのアドホックメッセージに基づいたルーティングテーブル１６１０の更新を、ルーティングテーブル更新部１１２０に依頼する。
【０１０４】
ルーティングテーブル更新部１１２０は、メッセージ送受信部１１１０からの依頼により、リンク情報記憶部１６００に記憶されているルーティングテーブル１６１０を更新する。
【０１０５】
宛先入替処理部１１３０は、ルーティングテーブル更新部１１２０からの依頼により、ルーティングテーブルの宛先を、新たな宛先と入れ替える処理を行う。
【０１０６】
評価値算出部１１４０は、ルーティングテーブルに登録されている宛先ごとに、その宛先の評価値を算出する。評価値は、宛先までの繋がりやすさを示す値をいい、大きいほど繋がりやすいものとする。評価値は、通信実績や、現在の通信環境などに基づいて算出される。
【０１０７】
無線通信部１２００は、他の端局Ｔ（図４の「端局Ｔ’」）、又は、ゲートウェイＧＷと、無線ＬＡＮ規格によりアドホックモードでの通信を行う機能を有する。
【０１０８】
タイマー１３００は、無線通信制御部１１００、及び、機内通信制御部１４００に時刻を通知し、また、予め定められた所定周期での各種割り込みを掛ける機能を有する。例えば、無線通信制御部１１００に、検針データの送信タイミングとして３０分毎に割り込みを掛ける。機内通信制御部１４００に、電力積算値の検出タイミングとして５分毎に割り込みを掛ける等である。無線通信制御部１１００は、割り込みのタイミングで電力量情報記憶部１７００から３０分間の検針データを読み出して送信し、機内通信制御部１４００は、割り込みのタイミングで電力量計２０００から５分間の受電電力量を取得して電力量情報記憶部１７００に記憶させる。
【０１０９】
インタフェース１４１０は、電力量計２０００から検針データを受信するインタフェースであり、インタフェース１４２０は、負荷開閉器３０００に制御データを送信するインタフェースである。
【０１１０】
機内通信制御部１４００は、インタフェース１４１０、及び、インタフェース１４２０を介して、電力量計２０００、及び、負荷開閉器３０００との通信を制御する機能を有する。また、機内通信制御部１４００は、電力量計２０００から受電電力量を定期的に取得して電力量情報記憶部１７００に記憶させておく機能を有する。
【０１１１】
外部インタフェース１５００は、外部の設定ツール等と接続するインタフェースであり、設定ツール等を介してユーザの操作を受け付け、ユーザ操作に応じて、端局Ｔの初期設定時には初期値を設定したり、各記憶部にデータを記憶させたり、記憶されているデータを書き換えたりする機能を有する。
【０１１２】
リンク情報記憶部１６００は、図３で示すようなネットワーク全体のトポロジー情報、ルーティングテーブル１６１０など、データの送受信に必要な情報を、適時更新しながら記憶しておく機能を有する。更に、リンク情報記憶部１６００は、宛先までの経路の評価値を算出する為に必要な情報を記憶している。
【０１１３】
電力量情報記憶部１７００は、機内通信制御部１４００が電力量計２０００から取得した電力量を記憶しておく機能を有する。
【０１１４】
図５は、ゲートウェイＧＷの機能ブロックの構成例を示す図である。ゲートウェイＧＷは、無線通信制御部４１００、無線通信部１２００、タイマー１３００、外部インタフェース１５００、外部通信制御部４０００、リンク情報記憶部１６００、及び、検針データ記憶部１７５０を備える。
【０１１５】
無線通信制御部４１００は、各機能部を制御して、無線通信の制御を行う機能を有する。また、無線通信制御部４１００は、実施形態の自動検針システムに特有の処理、例えば、端局Ｔから受信した検針データを検針データ記憶部１７５０に記憶させる処理、所定のタイミングで、検針データ記憶部１７５０に記憶されている検針データを読み出して、外部通信制御部４０００を介してサーバ装置１に送信する処理等を行う。更に、無線通信制御部４１００は、外部通信制御部４０００を介してサーバ装置１から端局Ｔに対するアドホックメッセージの送信依頼があると、例えば、制御データの送信依頼があると、制御データのパケット（図１７（ｂ）参照）を作成し、メッセージ送受信部１１１０に送信を依頼する。
【０１１６】
無線通信部１２００、タイマー１３００、外部インタフェース１５００、リンク情報記憶部１６００は、通信ユニット１０００の無線通信制御部１１００、無線通信部１２００、タイマー１３００、外部インタフェース１５００、リンク情報記憶部１６００と同様の機能を有する。
【０１１７】
外部通信制御部４０００は、サーバ装置１と通信する機能を有する。
【０１１８】
検針データ記憶部１７５０は、自装置であるゲートウェイＧＷに属する端局Ｔから送信されてきた検針データを記憶しておく機能を有する。
【０１１９】
実施形態の通信ユニット１０００、及び、ゲートウェイＧＷはそれぞれ、例えば、コンピュータを用いて構成可能であり、ハードディスク等の記憶部（不図示）に格納されているルーティングテーブルの宛先入替方法等をプログラムしたソフトウェアを、ＣＰＵにより実行することによって上述の無線通信制御部１１００等がコンピュータ上に実現される。尚、機能部の一部は、ハードウェアで実現されていてもよい。
【０１２０】
＜動作＞
以下、端局Ｔの通信ユニット１０００、及び、ゲートウェイＧＷの動作について、図１０〜図１２を用いて説明する。
【０１２１】
図１０は、ルーティングテーブルの更新処理のフローチャートである。この処理は、ルーティングテーブル更新部１１２０が、宛先入替処理部１１３０及び評価値算出部１１４０を用いて行う処理である。
【０１２２】
メッセージ送受信部１１１０は、Ｈｅｌｌｏメッセージを受信したとき、アドホックメッセージを送信したとき、アドホックメッセージを受信したときに、ルーティングテーブル更新部１１２０に、ルーティングテーブルの更新を依頼する。
【０１２３】
依頼を受けたルーティングテーブル更新部１１２０は、Ｈｅｌｌｏメッセージが受信された場合には（ステップＳ１０：Ｙｅｓ）、ルーティングテーブル（ＲＴ）登録処理を行う（ステップＳ１１）。ルーティングテーブル登録処理とは、Ｈｅｌｌｏメッセージを解析し、登録すべきノードを検出した場合はリンク情報記憶部１６００に記憶されているルーティングテーブル１６１０に登録する等の処理であり、図１１を用いて説明する。
【０１２４】
図１１は、ルーティングテーブル登録処理のフローチャートである。
【０１２５】
ルーティングテーブル更新部１１２０は、受信されたＨｅｌｌｏメッセージを解析し、喪失した宛先、例えば、撤去された端局Ｔ等を検出すると（ステップＳ２０：Ｙｅｓ）、喪失した宛先を、ルーティングテーブル１６１０から削除する（ステップＳ２１）。具体的には、ルーティングテーブル更新部１１２０は、喪失した宛先が最終宛先１６１２として設定されているレコードを、ルーティングテーブル１６１０から削除する。喪失した宛先が複数ある場合には、複数の宛先を削除する。喪失した宛先を検出しない場合は（ステップＳ２０：Ｎｏ）、削除は行わない。尚、喪失した宛先とは、その宛先までの予備の経路を含めたすべての経路が切れたものをいう。
【０１２６】
次に、ルーティングテーブル更新部１１２０は、ルーティングテーブル１６１０に登録されていないノードを検出すると、つまり、最終宛先１６１２として設定されていない宛先のノードを検出すると（ステップＳ２２：Ｙｅｓ）、ルーティングテーブル１６１０に空きがある場合は（ステップＳ２３：Ｙｅｓ）、検出されたノードの宛先（以下、「新たな宛先」という。）をルーティングテーブル１６１０に登録する（ステップＳ２４）。具体的には、ルーティングテーブル更新部１１２０は、新たな宛先を最終宛先１６１２として設定し、Ｈｅｌｌｏメッセージ等から得られた情報を元に種別１６１３〜電界１６１７を設定し、評価値算出部１１４０に算出を依頼して得られた評価値を、評価値１６１８として設定したレコードを作成し、ルーティングテーブル１６１０に追加登録する。そして、ＡＭフラグ１６１９として「ＯＦＦ」を設定する（ステップＳ２６）。
【０１２７】
ルーティングテーブル１６１０に空きが無い場合（ステップＳ２３：Ｎｏ）、ルーティングテーブル更新部１１２０は、宛先入替処理部１１３０に入替処理を依頼する。依頼を受けた宛先入替処理部１１３０は、新たな宛先を、ルーティングテーブル１６１０に登録されているいずれかの宛先と入れ替える宛先入替処理を行う（ステップＳ２５）。この宛先入替処理を、図１２を用いて説明する。
【０１２８】
図１２は、宛先入替処理のフローチャートである。
【０１２９】
宛先入替処理部１１３０は、ルーティングテーブル１６１０のＡＭフラグ１６１９として「ＯＦＦ」が設定されている宛先を検索する。具体的には、宛先入替処理部１１３０は、まず、ＡＭフラグ１６１９として「ＯＮ」が設定されており、経過時間１６２０が特定期間を経過しているレコードのＡＭフラグ１６１９に「ＯＦＦ」を設定する。そして、ＡＭフラグ１６１９として「ＯＦＦ」が設定されているレコードの検索を開始する。「ＯＦＦ」が設定されているレコードが無い場合は（ステップＳ３０：Ｎｏ）、宛先入替処理部１１３０は、宛先入替処理を終了する。ＡＭフラグ１６１９として「ＯＦＦ」が設定されているレコードが検索された場合（ステップＳ３０：Ｙｅｓ）、宛先入替処理部１１３０は、「ＯＦＦ」が設定されているレコードのうち、評価値１６１８として設定されている評価値が最も小さい（評価が最も低い）レコードの宛先を、入替候補として選択する（ステップＳ３１）。宛先入替処理部１１３０は、選択した宛先のレコードを削除し、新たな宛先を登録する（ステップＳ３２）。
【０１３０】
これで、図１１のステップＳ２５の宛先入替処理が終了する。宛先入替処理部１１３０による宛先入替処理が終了したら、ルーティングテーブル更新部１１２０は、新たに登録された宛先のＡＭフラグ１６１９として「ＯＦＦ」を設定する（ステップＳ２６）。
【０１３１】
ステップ２２の処理において検出されたノードの宛先について、ステップＳ２３〜Ｓ２６の処理を行い（ステップＳ２７：Ｎｏ）、全てのノードについての処理が終了すると（ステップＳ２７：Ｙｅｓ）、ルーティングテーブル登録処理を終了する。
【０１３２】
これで、図１０のステップＳ１１のルーティングテーブル登録処理が終了する。ルーティングテーブル登録処理が終了すると、ルーティングテーブル更新部１１２０は、ルーティングテーブル１６１０の最終宛先１６１２として設定されている宛先のうち、受信したＨｅｌｌｏメッセージが、その存在を示す連続して３回目のＨｅｌｌｏメッセージである場合には（ステップＳ１２：Ｙｅｓ）、その宛先が最終宛先１６１２として設定されているレコードのＡＭフラグ１６１９に「ＯＮ」を設定し、経過時間１６２０として設定されている経過時間をリセットし、最初からカウントを開始する（ステップＳ１３）。
【０１３３】
次に、ルーティングテーブル更新部１１２０は、アドホックメッセージが送信、又は、受信された場合には（ステップＳ１４：Ｙｅｓ）、そのアドホックメッセージの送信先の宛先、又は、送信元の宛先が、ルーティングテーブル１６１０の最終宛先１６１２として設定されているレコードを検索する。レコードが見つかった場合には（ステップＳ１５：Ｎｏ）、そのレコードのＡＭフラグ１６１９に「ＯＮ」を設定し、経過時間１６２０として設定されている経過時間をリセットし、最初からカウントを開始する（ステップＳ１６）。
【０１３４】
ルーティングテーブル更新処理を終了したルーティングテーブル更新部１１２０は、その旨をメッセージ送受信部１１１０に通知する。
【０１３５】
＜変形例＞
実施形態では、送受信したアドホックメッセージの送信先、又は、送信元の宛先が、ルーティングテーブル１６１２に登録されている場合に、その宛先のＡＭフラグ１６１９を「ＯＮ」にして、送信先までの経路を維持している。変形例では、アドホックメッセージの送信先、又は、送信元の宛先が、ルーティングテーブル１６１２に登録されていない場合には、その送信先、又は、送信元の宛先を、一時的に記憶しておくための経路予約テーブル１６３０を設ける。そして、その宛先のノードの存在を示すＨｅｌｌｏメッセージを受信すると、ルーティングテーブル１６１０に移動させ、ＡＭフラグ１６１９を「ＯＮ」にする。ＡＭフラグ１６１９を「ＯＮ」にするのは、宛先がルーティングテーブル１６１０に新しく登録された場合であっても、直ぐには入替候補となって削除されることが無いようにするためである。経路予約テーブル１６３０に登録されている宛先は、アドホックメッセージを送信、又は、受信したノードの宛先であるので、その宛先のノードは存在して動作している可能性が高いからである。
【０１３６】
例えば、自動検針システムにおいて端局Ｔが新たに設置された場合、その端局の電源が入れられると、Ｈｅｌｌｏメッセージの送信及び受信を開始する。新設された端局Ｔは、隣接端局とＨｅｌｌｏメッセージのやり取りが可能となると、隣接端局からのＨｅｌｌｏメッセージに含まれた全ての宛先（隣接端局が属するゲートウェイＧＷの宛先も含む）を、自装置のルーティングテーブルに登録する。そして、新設された端局Ｔは、ルーティングテーブルに登録されているゲートウェイＧＷを送信先とした端末登録要求パケットを作成し、隣接端末に送信する。端末登録要求パケットが、隣接端局、及び、ゲートウェイＧＷを経由してサーバ装置１に到達し、サーバ装置１からの応答パケットを受信した場合、その新設された端局Ｔは、自動検針システムのネットワークに参加できたことになり、検針データの送信を開始する。
【０１３７】
この場合、端末登録要求パケットが、アドホックメッセージとなる。アドホックメッセージが送信された時には、隣接端局は、新設された端局Ｔの存在を認識しているが、この隣接端局より後に経由する端局、及び、ゲートウェイＧＷは、未だ、新設された端局Ｔの存在を認識していない場合があり得る。端局の存在は、Ｈｅｌｌｏメッセージに含まれて、ネットワーク内に伝搬していくが、Ｈｅｌｌｏメッセージの送信周期や伝搬経路によっては、アドホックメッセージを受信する方が端局を認識するよりも早い場合が発生し得る。特に、ルーティングテーブルの溢れが発生する場合には、そもそもルーティングテーブルに登録され難いので、Ｈｅｌｌｏメッセージに含まれて伝搬され難くなり、存在の認識が遅くなる傾向となる可能性が高い。
【０１３８】
従って、未だその存在を認識していないノード（ルーティングテーブルに登録されていないノード）を送信元、または、送信先としたアドホックメッセージを受信した場合には、一旦、経路予約テーブル１６３０に記憶しておいて、その後の一定期間内にＨｅｌｌｏメッセージにより存在を確認できたときに、ＡＭフラグ１６１９を「ＯＮ」としてルーティングテーブルに移動する。尚、上記の例では、アドホックメッセージとして端末登録要求パケットを用いて説明しているが、端末登録要求パケットに限らず、他のメッセージでも良い。また、新設された端局Ｔを例に説明しているが、新設された端局Ｔに限らず、例えば、障害物が撤去されて通信範囲が広がった端局Ｔなどであっても良い。
【０１３９】
経路予約テーブル１６３０を用いない場合は、ノードの存在を示すＨｅｌｌｏメッセージが受信されると、そのノードの宛先をルーティングテーブル１６１０に登録するが、ＡＭフラグ１６１９は「ＯＦＦ」である。その後、そのノードの存在を示すＨｅｌｌｏメッセーが連続３回受信されるか、そのノード宛又はそのノードが送信したアドホックメッセージが受信された場合に、ＡＭフラグ１６１９が「ＯＮ」とされる。従って、そのノードの宛先がルーティングテーブル１６１０に登録されてから、ＡＭフラグ１６１９が「ＯＮ」とされるまでの間に、入替候補となってルーティングテーブル１６１０から削除されてしまう可能性がある。しかし、経路予約テーブル１６３０を用いた場合には、ＡＭフラグ１６１９を「ＯＮ」としてルーティングテーブル１６１０に登録されるので、入替候補となって削除されてしまうことなく、少なくとも特定期間の間は実績を積んで評価を上げることが可能となる。この特定期間内に、アドホックメッセージが一度も送受信されない場合、つまり、通信品質が悪く、確保しておく必要がない経路である場合は、ＡＭフラグ１６１９は「ＯＦＦ」とされて、入れ替えられることになる。
【０１４０】
従って、経路予約テーブル１６３０を用いることで、新たに検出されたノードを迅速にルーティングテーブルに登録でき、通信品質の良い経路は残され、通信品質の悪い経路は削除されるので、早期に、最適なネットワークを構築することが可能となる。
【０１４１】
＜経路予約テーブルの構成例＞
図１３は、経路予約テーブル１６３０の構成及び内容の例を示す図である。経路予約テーブル１６３０は、リンク情報記憶部１６００に記憶されている。
【０１４２】
経路予約テーブル１６３０には、複数の宛先（ノード）が登録されるが、登録可能なノードの数（レコード数）は、ルーティングテーブル１６１０に登録可能なノードの数よりも少なく、構築するネットワークに依存する。実施形態の自動検針システムでは、例えば、ルーティングテーブル１６１０に登録可能なノード数が１５００個である場合には、その１０分の１の１５０個のノードが、経路予約テーブル１６３０には登録可能である。尚、図１３では、「ｍ」個と記載している。
【０１４３】
経路予約テーブル１６３０は、ルーティングテーブル１６１０とほぼ同様の構成をしているが、ＡＭフラグ１６１９を有しない点、各宛先が予備の経路を有しない点が異なる。
【０１４４】
経路予約テーブル１６３０は、番号１６３１、最終宛先１６３２、種別１６３３、隣接宛先１６３４、実績１６３５、ホップ１６３６、電界１６３７、評価値１６３８、及び、経過時間１６３９を有する。
【０１４５】
番号１６３１は、最終宛先１６３２が示す宛先の登録番号を示す。
【０１４６】
最終宛先１６３２、種別１６３３、隣接宛先１６３４、実績１６３５、ホップ１６３６、電界１６３７、及び、評価値１６３８のそれぞれは、ルーティングテーブル１６１０の最終宛先１６１２、種別１６１３、隣接宛先１６１４、実績１６１５、ホップ１６１６、電界１６１７、評価値１６１８とそれぞれ同様である。つまり、最終宛先１６３２は、最終的な送信先であるノードを特定するための識別子を示し、隣接宛先１６３４は、最終宛先１６３２が示す宛先にパケットを送信する場合に、パケットを渡すべき、隣接するノードの識別子を示す。また、実績１６３５は、隣接宛先１６３４が示す宛先のノード（隣接ノード）を経た、最終宛先１６３２が示す宛先へのデータ送達実績（通信実績）を示し、ホップ１６３６は、最終宛先１６３２が示す宛先までのホップ数を示し、電界１６３７は、隣接宛先１６３４が示すノードからのＨｅｌｌｏメッセージの電波強度（電界強度）を示し、評価値１６３８は、最終宛先１６３２が示す宛先までの経路の評価値を示す。
【０１４７】
経過時間１６３９は、最終宛先１６３２に示す宛先が登録されてからの経過時間を示す。単位は、「分」である。
【０１４８】
経路予約テーブル１６３０では、宛先が登録されてから所定期間、例えば、１０分が経過したら、削除されるものとする。この所定期間は、アドホックメッセージの送信間隔、Ｈｅｌｌｏメッセージの送信周期、ネットワークを構成するノードの数、通信環境等を元に決定される。
【０１４９】
＜経路予約テーブルの使用例＞
以下、図１４を用いて、経路予約テーブルの使用例を具体的に説明する。
【０１５０】
図１４は、ノードＨを送信先（宛先）としたアドホックメッセージ、及び、Ｈｅｌｌｏメッセージを、新たに設置されたノードＥが送信した場合の経路予約テーブル１６３０、及び、ルーティングテーブル１６１０を説明するための図である。円で示されたノードＥ〜Ｈの４つのノードが記載され、破線で結ばれたノード同士は相手の存在を認識していることを示す。図１４では、ハッチングかかけられているノードＧの経路予約テーブル１６３０を例に、その使用例を説明する。
【０１５１】
図１４において、太線矢印で示すように、ノードＥからノードＨまでは、ノードＦ、ノードＧを経由する経路が確保されているものとする。つまり、ノードＦからノードＨまでの経路は確立されており、ノードＥとノードＦとは、互いに認識している状態とする。この場合、ノードＦのルーティングテーブル１６１０には、最終宛先１６１２が「Ｈ」で、隣接宛先１６１４が「Ｇ」のレコードが登録されており、また、ノードＧのルーティングテーブル１６１０には、最終宛先１６１２が「Ｈ」で、隣接宛先１６１４が「Ｈ」のレコードが登録されている。
【０１５２】
ノードＥは、隣接するノードとＨｅｌｌｏメッセージをやり取りすることで、ノードＨの存在を認識して、ノードＨを送信先としたアドホックメッセージをノードＦに送信する。ノードＦは、受信したアドホックメッセージを、ノードＧに転送する。
【０１５３】
アドホックメッセージを受信したノードＧは、受信したアドホックメッセージをノードＨに送信し、ルーティングテーブル１６１０の最終宛先１６１２が「Ｈ」のＡＭフラグ１６１９を「ＯＮ」にする。そして、アドホックメッセージの送信元のノードＥの宛先は、ルーティングテーブル１６１０に登録されていないので、経路予約テーブル１６３０に登録する（図１４の（１）参照）。
【０１５４】
そして、ノードＧは、ノードＥを経路予約テーブル１６３０に登録してから所定期間経過する前に、ノードＥの存在を示すＨｅｌｌｏメッセージをいずれかのノードから受信した場合は、ノードＥをルーティングテーブル１６１０に移動する。詳細には、ルーティングテーブル１６１０に空きがある場合は、最終宛先１６１２として「Ｅ」を設定したレコードを追加し、ＡＭフラグ１６１９を「ＯＮ」にする。ルーティングテーブル１６１０に空きがない場合は、ＡＭフラグ１６１９が「ＯＦＦ」で評価値１６１８の値が最も小さい宛先と、ノードＥとを入れ替え、ＡＭフラグ１６１９を「ＯＮ」にする（図１４の（２）参照）。そして、経路予約テーブル１６３０から最終宛先１６３２が「Ｅ」のレコードを削除する。
【０１５５】
このように、経路予約テーブル１６３０を用いることで、動作しているノードを、迅速にルーティングテーブル１６１０に登録することができ、ＡＭフラグ１６１９を「ＯＮ」にすることで、適切な経路は早期に固定化、つまり、入替対象となり難くすることが可能となる。
【０１５６】
＜動作＞
以下、経路予約テーブル１６３０を用いた場合の、端局Ｔの通信ユニット１０００、及び、ゲートウェイＧＷの動作について、図１５、図１６を用いて説明する。
【０１５７】
図１５は、経路予約テーブル１６３０を用いた場合のルーティングテーブルの更新処理のフローチャートであり、図１０で示した実施形態のルーティングテーブルの更新処理のフローチャートに、ステップＳ４０〜Ｓ４３を追加したものである。図１５のフローチャートのステップＳ１０〜Ｓ１６の処理は、図１０のフローチャートのステップＳ１０〜Ｓ１６の処理と同様である。従って、ここでは、ルーティングテーブル更新部１１２０が経路予約テーブル１６３０を用いた処理を行うものとして説明し、ステップＳ４０〜Ｓ４３の処理を中心に説明する。
【０１５８】
メッセージ送受信部１１１０は、Ｈｅｌｌｏメッセージを受信したとき、アドホックメッセージを送信したとき、アドホックメッセージを受信したときに、ルーティングテーブル更新部１１２０に、ルーティングテーブルの更新を依頼する。
【０１５９】
依頼を受けたルーティングテーブル更新部１１２０は、Ｈｅｌｌｏメッセージが受信された場合には（ステップＳ１０：Ｙｅｓ）、ルーティングテーブル（ＲＴ）登録処理を行う（ステップＳ１１）。
【０１６０】
ルーティングテーブル登録処理が終了すると、ルーティングテーブル更新部１１２０は、ルーティングテーブル１６１０の最終宛先１６１２として設定されている宛先のうち、受信したＨｅｌｌｏメッセージが、その存在を示す連続して３回目のＨｅｌｌｏメッセージである場合には（ステップＳ１２：Ｙｅｓ）、その宛先が最終宛先１６１２として設定されているレコードのＡＭフラグ１６１９に「ＯＮ」を設定し、経過時間１６２０に設定されている経過時間をリセットし、最初からカウントを開始する（ステップＳ１３）。
【０１６１】
次に、ルーティングテーブル更新部１１２０は、経路予約テーブル（予約Ｔ）１６３０に登録されている宛先のうち、受信したＨｅｌｌｏメッセージがその存在を示している宛先があるか否かを判断する（ステップＳ４０）。具体的には、ルーティングテーブル更新部１１２０は、まず、経過時間１６３９が所定期間、例えば、１０分間を経過しているレコードを削除する。そして、ルーティングテーブル更新部１１２０は、最終宛先１６３２として設定されている宛先の存在の有無を、Ｈｅｌｌｏメッセージに含まれているノード集合等の情報から判断する。
【０１６２】
経路予約テーブル１６３０にＨｅｌｌｏメッセージが存在を示している宛先が登録されている場合（ステップＳ４０：Ｙｅｓ）、ルーティングテーブル更新部１１２０は、予約宛先登録処理、つまり、Ｈｅｌｌｏメッセージが存在を示している宛先を、経路予約テーブル１６３０からルーティングテーブル１６１０に移動する処理を行う（ステップＳ４１）。この予約宛先登録処理を、図１６を用いて説明する。
【０１６３】
図１６は、予約宛先登録処理のフローチャートである。
【０１６４】
ルーティングテーブル１６１０（ＲＴ）に空きがある場合（ステップＳ５０：Ｎｏ）、ルーティングテーブル更新部１１２０は、受信したＨｅｌｌｏメッセージが存在を示している経路予約テーブル１６３０の宛先（以下、「移動予約宛先」という。）をルーティングテーブル１６１０に登録する（ステップＳ５１）。そして、ルーティングテーブル更新部１１２０は、移動予約宛先を経路予約テーブル１６３０から削除する（ステップＳ５５）。
【０１６５】
ルーティングテーブル１６１０（ＲＴ）に空きが無い場合（ステップＳ５０：Ｎｏ）、ルーティングテーブル更新部１１２０は、ルーティングテーブル１６１０のＡＭフラグ１６１９として「ＯＦＦ」が設定されている宛先を検索する。具体的には、ルーティングテーブル更新部１１２０は、まず、ＡＭフラグ１６１９として「ＯＮ」が設定されており、経過時間１６２０が特定期間を経過しているレコードのＡＭフラグ１６１９に「ＯＦＦ」を設定する。そして、ＡＭフラグ１６１９として「ＯＦＦ」が設定されているレコードの検索を開始する。「ＯＦＦ」が設定されているレコードが無い場合は（ステップＳ５２：Ｎｏ）、ルーティングテーブル更新部１１２０は、予約宛先登録処理を終了する。
【０１６６】
ＡＭフラグ１６１９として「ＯＦＦ」が設定されているレコードが検索された場合（ステップＳ５２：Ｙｅｓ）、ルーティングテーブル更新部１１２０は、「ＯＦＦ」が設定されているレコードのうち、評価値１６１８として設定されている評価値が最も低いレコードの宛先を、入替候補として選択する（ステップ５３）。ルーティングテーブル更新部１１２０は、選択した宛先のレコードを削除し、移動予約宛先を登録する（ステップＳ５４）。そして、ルーティングテーブル更新部１１２０は、移動予約宛先を経路予約テーブル１６３０から削除する（ステップＳ５５）。
【０１６７】
これで、図１５のステップＳ４１の予約宛先移動処理が終了する。
【０１６８】
そして、ルーティングテーブル更新部１１２０は、ルーティングテーブル１６１０に登録した移動予約宛先が最終宛先１６１２として設定されているレコードのＡＭフラグ１６１９に「ＯＮ」を設定し、経過時間１６２０として設定されている経過時間をリセットし、最初からカウントを開始する（ステップＳ４２）。
【０１６９】
次に、ルーティングテーブル更新部１１２０は、アドホックメッセージが送信、又は、受信された場合には（ステップＳ１４：Ｙｅｓ）、そのアドホックメッセージの送信先の宛先、又は、送信元の宛先が、ルーティングテーブル１６１０の最終宛先１６１２として設定されているレコードを検索する。レコードが見つかった場合には（ステップＳ１５：Ｎｏ）、そのレコードのＡＭフラグ１６１９に「ＯＮ」を設定し、経過時間１６２０として設定されている経過時間をリセットし、最初からカウントを開始する（ステップＳ１６）。
【０１７０】
レコードが見つからなかった場合には（ステップＳ１５：Ｙｅｓ）、そのアドホックメッセージの送信元の宛先を経路予約テーブル１６３０に登録する（ステップＳ４３）。具体的には、ルーティングテーブル更新部１１２０は、その送信元の宛先を最終宛先１６３２として設定し、Ｈｅｌｌｏメッセージ等から得られた情報を元に種別１６３３〜電界１６３７を設定し、評価値算出部１１４０に算出を依頼して得られた評価値を、評価値１６３８として設定し、経過時間１６３９として「０」を設定したレコードを作成する。そして、経過時間のカウントを開始する。
【０１７１】
ルーティングテーブル更新処理を終了したルーティングテーブル更新部１１２０は、その旨をメッセージ送受信部１１１０に通知する。
【０１７２】
このように、経路予約テーブル１６３０を用いることで、実施形態では、動作しているノードを、迅速にルーティングテーブル１６１０に登録することができ、ＡＭフラグ１６１９を「ＯＮ」にすることで、適切な経路は早期に固定化、つまり、入替対象となり難くすることが可能となるので、結果的に、早期にネットワーク全体の経路の最適化を行うことが可能となる。
【０１７３】
＜ルーティングテーブルが溢れた場合の例＞
以下、図１９を用いて、ルーティングテーブルが溢れた場合の例を説明し、図２０を用いて、ルーティングテーブルの溢れが解消され最適に形成された経路の例を説明する。
【０１７４】
図１９、図２０において、ゲートウェイＧＷを示す円が円周上に配置された破線の楕円は、円周上のゲートウェイＧＷが制御下に置くことを想定したエリアを示す。ここでのエリアとは、電波環境の障害となる建物や、ホップ数などを考慮に入れた地域を示す。円で示されるノードを結ぶ破線は、図３と同様に、破線の両端のノードは互いにその存在を認識していることを示す。
【０１７５】
まず、図１９において、ハッチングが掛かっている端局Ｔ２７、及び、ゲートウェイＧＷｂのルーティングテーブルが溢れているものとする。破線の太線矢印は、矢印の先のゲートウェイＧＷへの経路として使用している経路を示し、破線の白抜き矢印は、矢印の先のゲートウェイＧＷへの経路として使用している経路であるが、不安定な経路であることを示す。つまり、ゲートウェイＧＷｂのルーティングテーブルが溢れているので、ルーティングテーブルに登録されたり削除されたりを繰り返している経路を示す。
【０１７６】
端局Ｔ２７のルーティングテーブルが溢れていることにより、例えば、端局Ｔ２７しか認識できない端局Ｔ２６は、ネットワークに参加できずに孤立してしまう。また、端局Ｔ２７を経由してゲートウェイＧＷｂまでの経路が最適である端局Ｔ２５は、端局Ｔ２７を経由することができず、ゲートウェイＧＷａに属することとなり、ホップ数が多くなり、経路が切れるリスクが高くなっている。
【０１７７】
また、ゲートウェイＧＷｂのルーティングテーブルが溢れていることにより、例えば、新設された端局Ｔ３０は、接続が予定されているゲートウェイＧＷｂまで端末登録要求パケットを送信するが、ゲートウェイＧＷｂに登録されないので、孤立し、検針データの送信業務を開始できない。タイミング良くゲートウェイＧＷｂのルーティングテーブルに登録されたとしても、実績が詰めないため評価が上がらずに、新設された端局Ｔ３７と入れ替えられてしまい、経路が安定しないことになる。入れ替えられた端局Ｔ３７は、ゲートウェイＧＷｂに登録されたとしても、実績が詰めないため評価が上がらずに、再度、端局Ｔ３０と入れ替えられてしまい、経路が安定しないことになる。ゲートウェイＧＷｂへの経路が安定しないので、端局Ｔ３７は、ゲートウェイＧＷｃへの経路を確立するが、最適な経路ではないので安定せず、ゲートウェイＧＷｂとゲートウェイＧＷｃとに交互に属することを繰り返すことになる。ゲートウェイＧＷを変更する際には、ゲートウェイＧＷ切替通知等の自情報をサーバ装置１に送信する必要があるので、ネットワーク上を流れるパケットの量が増えることになる（灰色の太線破線矢印を参照）。また、端局Ｔ３７の経路が安定しないので、端局Ｔ３７を経由する端局Ｔ３８も、ゲートウェイＧＷまでの経路が安定しないことになる。
【０１７８】
本実施形態のルーティングテーブルの入れ替え方法を使用することで、適切なルーティングが行われて、端局Ｔ２７、及び、ゲートウェイＧＷｂのルーティングテーブルが最適化され、不要な経路が削除されて安定した経路が残された結果を図２０に示す。
【０１７９】
端局Ｔ２７のルーティングテーブルが最適化されることにより、例えば、端局Ｔ２７しか認識できない端局Ｔ２６は、端局Ｔ２７に登録され、ネットワークに参加でき、検針データの送付業務を開始できる。また、端局Ｔ２５は、端局Ｔ２７を経由して、最適なゲートウェイＧＷａに属することとなり、ホップ数も減り、経路が切れるリスクが低くなる。
【０１８０】
また、ゲートウェイＧＷｂのルーティングテーブルが最適化されることにより、例えば、新設された端局Ｔ３０はゲートウェイＧＷｂに登録され、孤立が解消して検針データの送信業務を開始できるようになる。新設された端局Ｔ３７は、本来予定されているゲートウェイＧＷｂに登録され、経路が安定し、ゲートウェイＧＷを変更することがないので、ゲートウェイＧＷ切替通知等の自情報をサーバ装置１に送信する必要がなくなり、ネットワーク上を流れるパケットの量が増えないことになる。また、端局Ｔ３７を経由する端局Ｔ３８も、ゲートウェイＧＷまでの経路が安定することになる。更に、端局Ｔ３９は、ゲートウェイＧＷａに登録されていたが、近くにゲートウェイＧＷｄが新設され、より安定した経路のゲートウェイＧＷｄに属することになる。
【０１８１】
このように、ルーティングテーブルが最適化されて、最適なルーティングが行われることで、ネットワークが安定し、更に、無駄なトラフィックも削減できることになる。
＜補足＞
実施形態では、ルーティングテーブル１６１０のＡＭフラグ１６１９は、「ＯＮ」にされてから特定期間（例えば、６時間）内に、アドホックメッセージが送信、又は、受信されると、経過時間がリセットされて特定期間を最初からカウントすることとしている。つまり、特定期間に１回以上の頻度で、アドホックメッセージを送信、又は、受信した場合に、入替候補としないこととしている。この他の方法でアドホックメッセージの送受信の頻度を特定することとしても良い。例えば、特定期間内にアドホックメッセージの送信、又は、受信が所定回数以上、例えば、２回あった場合にＡＭフラグ１６１９を「ＯＮ」にし、特定期間を最初からカウントする。特定期間内にアドホックメッセージの送信、又は、受信が所定回数以上、例えば、２回以上あった場合には、特定期間経過後、更に、特定期間のカウントを開始するなどである。この頻度は、ネットワークが適用されるアプリケーションの内容、ネットワークの規模などにより、決定される。
【０１８２】
また、実施形態では、ＡＭフラグ１６１９を「ＯＮ」にするためのアドホックメッセージは、特定のノード（端局Ｔ、ゲートウェイＧＷ）に届けるために送信されるメッセージであり、例えば、検針データをゲートウェイＧＷに届けるためのメッセージ、自装置が属するゲートウェイＧＷの情報などの自情報をゲートウェイＧＷに届けるためのメッセージ、制御データを端局Ｔに届けるためのメッセージ等であることとしているが、これらの一部のメッセージを送信、又は、受信した場合にのみ、ＡＭフラグ１６１９を「ＯＮ」にすることとしても良い。例えば、実施形態の自動検針システムでは、本来の業務目的である検針データを送信、又は、受信した場合にのみ、ＡＭフラグ１６１９を「ＯＮ」にするなどである。いずれのメッセージでＡＭフラグ１６１９を「ＯＮ」にするかは、ネットワークが適用されるアプリケーションの内容、ネットワークの規模などにより、決定される。
【０１８３】
また、実施形態では、アドホックメッセージを転送するノードは、ルーティングテーブル１６１０の最終宛先１６１２としてアドホックメッセージの送信先及び送信元の双方の宛先が設定されているＡＭフラグ１６１９それぞれを「ＯＮ」にすることとしている。例えば、図７のノードＢは、ノードＡ（送信元）がノードＤ（送信先）宛に送信したアドホックメッセージを転送する際に、最終宛先１６１２が「Ｄ」及び「Ａ」のＡＭフラグ１６１９を「ＯＮ」としている。しかし、各ノードは、アドホックメッセージの送信先及び送信元のうち、予め決められたいずれか一方の宛先のＡＭフラグ１６１９のみを「ＯＮ」とすることとしても良い。例えば、図７のノードＢが、ノードＡ（送信元）がノードＤ（送信先）宛に送信したアドホックメッセージを転送する際に、最終宛先１６１２が「Ｄ」のみのＡＭフラグ１６１９を「ＯＮ」とするなどである。ただし、送信先及び送信元のうち一方の宛先のＡＭフラグ１６１９のみを「ＯＮ」とする場合も、経路の確保に効果を奏するが、送信先及び送信元の双方の宛先のＡＭフラグ１６１９それぞれを「ＯＮ」にする方が、経路の確保が確実になるため、高信頼性が要求されるアドホックネットワークにおいてはより有効である。
【０１８４】
また、実施形態のルーティングテーブル１６１０は、以下のように記述できる。
【０１８５】
マルチホップ無線通信により接続される複数の通信装置を有する無線ネットワークシステムの前記通信装置が備えるルーティングテーブルのデータ構造であって、宛先と、当該宛先への中継先と、当該宛先を送信先とした特定のデータを送信又は受信する頻度が閾値を上回っているか否かを示す頻度情報とを含むことを特徴とする。
【０１８６】
また、上述のデータ構造において、前記頻度情報は、前記通信装置が前記ルーティングテーブルから宛先を削除する処理において、前記頻度が前記閾値を上回っていることを前記頻度情報が示している宛先を前記ルーティングテーブルから削除しないために用いられる。
【０１８７】
このような構成のデータ構造によれば、頻度情報が特定のデータを送信又は受信する頻度が閾値を上回っていることを示している宛先は、ルーティングテーブルから削除され難くなりルーティングテーブルの最適化が図られるので、パケットのルーティングが最適に制御される無線ネットワークシステムを構築することが可能となる。
【０１８８】
本発明を表現するために、上述において図面を参照しながら実施形態を通して本発明を適切且つ十分に説明したが、当業者であれば上述の実施形態を変更および／または改良することは容易に為し得ることであると認識すべきである。したがって、当業者が実施する変更形態または改良形態が、請求の範囲に記載された請求項の権利範囲を離脱するレベルのものでない限り、当該変更形態または当該改良形態は、当該請求項の権利範囲に包括されると解釈される。
【符号の説明】
【０１８９】
ＧＷ  ゲートウェイ
Ｔ  端局
Ｈ  電力需要家
１  サーバ装置
２  ネットワーク
１０００  通信ユニット
１１００  無線通信制御部
１１１０  メッセージ送受信部
１１２０  ルーティングテーブル更新部
１１３０  宛先入替処理部
１１４０  評価値算出部
１２００  無線通信部
１３００  タイマー
１４００  機内通信制御部
１５００  外部インタフェース
１６００  リンク情報記憶部
１７００  電力量情報記憶部
２０００  電力量計
３０００  負荷開閉器
４０００  外部通信制御部
【図１】
0006626606.tif 000002
【図２】
0006626606.tif 000003
【図３】
0006626606.tif 000004
【図４】
0006626606.tif 000005
【図５】
0006626606.tif 000006
【図６】
0006626606.tif 000007
【図７】
0006626606.tif 000008
【図８】
0006626606.tif 000009
【図９】
0006626606.tif 000010
【図１０】
0006626606.tif 000011
【図１１】
0006626606.tif 000012
【図１２】
0006626606.tif 000013
【図１３】
0006626606.tif 000014
【図１４】
0006626606.tif 000015
【図１５】
0006626606.tif 000016
【図１６】
0006626606.tif 000017
【図１７】
0006626606.tif 000018
【図１８】
0006626606.tif 000019
【図１９】
0006626606.tif 000020
【図２０】
0006626606.tif 000021