(57)【特許請求の範囲】
【請求項１】
自律型マルチホップ方式で通信する複数の通信装置を有する通信システムであって、
前記複数の通信装置の内、第１の通信装置は、
宛先毎に、データの中継先を記憶した記憶部と、
前記記憶部を参照して宛先に対応した中継先にデータを送信する通信部と、
前記通信システムに新たに加わった第２の通信装置から該第２の通信装置を優先的に中継先とすることを示す中継フラグ及び伝播ホップ数が付加されたフレームを受信した場合に、当該フレームを発信した前記第２の通信装置が、受信した当該フレームの宛先の最優先の中継先となるように、前記記憶部を更新する更新部と、
前記更新部による更新後に、前記第２の通信装置から前記フレームを受信した場合に、受信した該フレーム内の伝播ホップ数に基づき、受信した該フレームの送信を制御する制御部と
を有することを特徴とする通信システム。
【請求項２】
前記第２の通信装置は、
前記フレームを発信した後、前記第１の通信装置から前記フレームに対する応答を受信した場合に、当該応答した前記第１の通信装置毎に、当該第１の通信装置とのリンク状態を記憶するリンク記憶部と、
前記リンク記憶部に記憶された前記第１の通信装置の台数が上限数に到達した場合に、前記応答した前記第１の通信装置の前記リンク記憶部への追加記憶を停止すると共に、前記フレームの発信を停止させる制御部と
を有することを特徴とする請求項１に記載の通信システム。
【請求項３】
前記更新部は、
前記フレームを複数受信した場合に、最初に受信したフレームに基づき、当該フレームを発信した第２の通信装置が、受信した当該フレームの宛先の最優先の中継先となるように、前記記憶部を更新すると共に、２回目以降に受信したフレームを無効にすることを特徴とする請求項１又は２に記載の通信システム。
【請求項４】
前記第１の通信装置は、
前記第２の通信装置から前記フレームを受信した場合に、当該第２の通信装置が当該宛先の最優先の中継先となるように、前記記憶部を更新する第３の通信装置と、
前記第２の通信装置から前記フレームを受信した場合に、当該第２の通信装置の当該宛先の中継先の評価値を算出して、前記記憶部を更新する第４の通信装置と
を有することを特徴とする請求項１〜３の何れか一つに記載の通信システム。
【請求項５】
前記第２の通信装置は、
前記宛先の通信装置との経路が確立されるまで前記フレームの送信を停止することを特徴とする請求項１〜４の何れか一つに記載の通信システム。
【請求項６】
前記記憶部は、
前記宛先毎に、前記中継先及び、前記中継先を選定する評価値を記憶しておき、
前記更新部は、
前記第２の通信装置から前記フレームを受信した場合に、当該第２の通信装置が当該宛先の最優先の中継先となるように当該中継先としての当該第２の通信装置に対応する評価値を調整して前記記憶部を更新することを特徴とする請求項１〜５の何れか一つに記載の通信システム。
【請求項７】
自律型マルチホップ方式で通信する通信部と、
宛先毎に、データの中継先を記憶した記憶部と、
前記記憶部を参照して宛先に対応した中継先にデータを送信するように前記通信部を制御する制御部と、
通信システムに新たに加わった他の通信装置から該他の通信装置を優先的に中継先とすることを示す中継フラグ及び伝播ホップ数が付加されたフレームを受信した場合に、当該フレームを発信した前記他の通信装置が、受信した当該フレームの宛先の最優先の中継先となるように前記記憶部を更新する更新部と、
前記更新部による更新後に、前記他の通信装置から前記フレームを受信した場合に、受信した該フレーム内の伝播ホップ数に基づき、受信した該フレームの送信を制御する制御部と
を有することを特徴とする通信装置。
【請求項８】
自律型マルチホップ方式で通信する通信部と、
フレーム内に、通信システムに新たに加わった自装置を優先的に中継先とすることを示す中継フラグ及び伝播ホップ数を付加する付加部と、
前記通信部によって前記中継フラグ及び前記伝播ホップ数が付加された前記フレームを発信した後、他の通信装置から前記フレームに対する応答を受信した場合に、当該応答した前記通信装置毎に、当該通信装置とのリンク状態を記憶するリンク記憶部と、
前記リンク記憶部に記憶された前記通信装置の台数が上限数に到達した場合に、前記応答した前記通信装置の前記リンク記憶部への追加記憶を停止すると共に、前記フレームの発信を前記通信部に停止させる制御部と
を有することを特徴とする通信装置。
【請求項９】
自律型マルチホップ方式で通信する複数の通信装置を有する通信システムの経路切替方法であって、
前記複数の通信装置の内、第１の通信装置は、
前記通信システムに新たに加わった第２の通信装置から該第２の通信装置を優先的に中継先とすることを示す中継フラグ及び伝播ホップ数が付加されたフレームを受信した場合に、当該フレームを発信した前記第２の通信装置が、受信した当該フレームの宛先の最優先の中継先となるように、宛先毎のデータの中継先を記憶した記憶部を更新し、
前記記憶部の更新後に、前記第２の通信装置から前記フレームを受信した場合に、受信した該フレーム内の伝播ホップ数に基づき、受信した該フレームの送信を制御する
処理を実行することを特徴とする経路切替方法。
【請求項１０】
自律型マルチホップ方式で通信する通信部と、宛先毎に、データの中継先を記憶した記憶部と、プロセッサとを備えた通信機器によって実行される経路切替プログラムであって、
前記プロセッサに、
通信システムに新たに加わった他の通信装置から該他の通信装置を優先的に中継先とすることを示す中継フラグ及び伝播ホップ数が付加されたフレームを受信したか否かを判定し、
前記フレームを受信した場合に、当該フレームを発信した通信装置が、受信した当該フレームの宛先の最優先の中継先となるように前記記憶部を更新し、
前記記憶部の更新後に、前記他の通信装置から前記フレームを受信した場合に、受信した該フレーム内の伝播ホップ数に基づき、受信した該フレームの送信を制御する
処理を実行させることを特徴とする経路切替プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システム、通信装置、経路切替方法及び経路切替プログラムに関する。
【背景技術】
【０００２】
近年、各通信ユニットが自律的にルーティングを行ってマルチホップ方式でデータを無線送信する自律型マルチホップ方式のシステムが広く知られている。自律型マルチホップ方式のシステムでは、各通信ユニットが１ホップで接続される隣接ユニットと経路情報を定期的に交換して経路情報を更新する。そして、各通信ユニットは、更新された経路情報に基づき送信元の通信ユニットから最終宛先の通信ユニットまで１又は複数の通信ユニットを中継してデータを送信する。
【０００３】
また、自律型マルチホップ方式のシステムは、通信ユニットと、中継ユニットと、ゲートウェイ（以下、単にＧＷと称する）とを有する。ＧＷは、有線ネットワークと接続すると共に、自律型マルチホップ方式のシステム内の任意の通信ユニットや中継ユニットを収容する。また、自律型マルチホップ方式のシステムは、有線ネットワークに対して冗長構成で接続すべく、複数のＧＷを備える。
【０００４】
各通信ユニットは、複数のＧＷ宛の経路情報を備える。経路情報には、各ＧＷの経路の優先度を示す評価値が含まれる。そして、各通信ユニットには、経路情報内の評価値に基づき、通常の運用に使用する主ＧＷと、主ＧＷ障害時や主ＧＷ切替時に使用する副ＧＷとがある。
【０００５】
ＧＷ、通信ユニット及び中継ユニットは、Ｈｅｌｌｏフレームの無線電波品質やデータ送信の成功実績に応じて経路情報を更新する。ＧＷ、通信ユニット及び中継ユニットは、例えば、Ｈｅｌｌｏフレームを隣接ユニットとの間で定期的に交換する。そして、ＧＷ、通信ユニット及び中継ユニットは、交換されたフレーム内の経路情報に基づきリンクテーブル及びルーティングテーブルを生成する。リンクテーブルは、隣接ユニットのアドレス及び通信品質を管理している。また、ルーティングテーブルは、最終宛先のユニット毎に中継先の隣接ユニット及び隣接ユニットの経路に関する評価値を管理している。ＧＷ、通信ユニット及び中継ユニットは、ルーティングテーブル内の評価値に基づき、評価値が良好な経路で宛先ユニットに対してデータを送信する。
【０００６】
ＧＷ、通信ユニット及び中継ユニットは、Ｈｅｌｌｏフレーム受信時の無線電波品質やデータ送信の成功実績に応じてルーティングテーブル内の評価値を更新する。そして、データ送信の成功回数に応じて評価値が高くなる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００７−２３５９４５号公報
【特許文献２】特開２００９−８１８５４号公報
【特許文献３】特開２００８−１３１５７４号公報
【特許文献４】特開２００９−２６７５３２号公報
【特許文献５】特開２０１１−９９６７号公報
【特許文献６】特開２０１１−９９６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
従来の通信システムでは、各ユニットが最終宛先毎に、データを中継する中継先、すなわち隣接ユニット及び評価値をルーティングテーブルで管理し、評価値に基づき最終宛先の中継先を選定してデータを送信する。しかしながら、中継先の選定に使用する評価値はデータ送信の成功回数等の実績に依存する。例えば、ユーザの意図した経路を切替えるべく、システム内に新たな通信ユニットや中継ユニットを設置したとしても、これら新規に配置されたユニットには通信実績がないため、意図した経路切替が実現できない。図２３は、従来課題の一例を示す説明図である。通信ユニット２０１Ａが、送信元ＧＳから最終宛先ＧＤにデータを送信する際、ルーティングテーブル内の最終宛先ＧＤに対応した隣接宛先毎の評価値を参照し、通信ユニット２０１Ｂの評価値が高く、中継先として通信ユニット２０１Ｂを選定することになる。
【０００９】
この際、ユーザが通信ユニット２０１Ａの中継先を切替えるべく、通信システム内に新規の通信ユニット２０１Ｃを配置したとする。しかしながら、新規の通信ユニット２０１Ｃには通信実績がない。従って、通信ユニット２０１Ａが新規の通信ユニットを中継先として切替えるためには評価値を高めるべく通信実績を重ねる必要があり、多大な時間を要する。すなわち、ユーザが意図した経路切替を迅速に実現できていないのが実情である。
【００１０】
一つの側面では、ユーザが意図した経路切替を迅速に実現できる通信システム等を提供することを目的とする。
【課題を解決するための手段】
【００１１】
開示の態様は、自律型マルチホップ方式の通信で接続する複数の通信装置を有する通信システムである。前記複数の通信装置の内、第１の通信装置は、中継フラグ及び伝播ホップ数が付加されたフレームを送信する通信部を有する。前記複数の通信装置の内、第２の通信装置は、宛先毎に、当該宛先へのデータの中継先を記憶した記憶部と、前記記憶部を参照して当該宛先に対応した中継先にデータを送信する通信部とを有する。更に、第２の通信装置は、前記第１の通信装置から前記フレームを受信した場合に、当該フレームを発信した前記第１の通信装置が当該宛先の最優先の中継先となるように、前記記憶部を更新する更新部を有する。前記第２の通信装置は、前記第１の通信装置から前記フレームを受信した場合に、当該フレーム内の前記伝播ホップ数に基づき、当該フレームの送信を制御する制御部を有する。
【発明の効果】
【００１２】
開示の態様では、ユーザが意図した経路切替を迅速に実現できる。
【図面の簡単な説明】
【００１３】
【図１】図１は、本実施例の通信システムの一例を示す説明図である。
【図２】図２は、ＧＷのハードウェア構成の一例を示すブロック図である。
【図３】図３は、ＧＷの機能構成の一例を示すブロック図である。
【図４】図４は、リンクテーブルのテーブル構成の一例を示す説明図である。
【図５】図５は、ルーティングテーブルのテーブル構成（ＬＤ１〜ＬＤ３）の一例を示す説明図である。
【図６】図６は、フレーム転送テーブルのテーブル構成の一例を示す説明図である。
【図７】図７は、通信ユニットのハードウェア構成の一例を示すブロック図である。
【図８】図８は、通信ユニットの機能構成の一例を示すブロック図である。
【図９】図９は、中継ユニットのハードウェア構成の一例を示すブロック図である。
【図１０】図１０は、中継ユニットの機能構成の一例を示すブロック図である。
【図１１】図１１は、中継Ｈｅｌｌｏフレームの一例を示す説明図である。
【図１２】図１２は、リンクテーブル及びルーティングテーブルの更新の一例を示す説明図である。
【図１３】図１３は、リンクテーブル及びルーティングテーブルの更新の一例を示す説明図である。
【図１４】図１４は、ルーティングテーブルの使用の一例を示す説明図である。
【図１５】図１５は、ルーティングテーブルの更新の一例を示す説明図である。
【図１６Ａ】図１６Ａは、通信システム内に中継ユニットを配置する前の経路の一例を示す説明図である。
【図１６Ｂ】図１６Ｂは、通信システム内に中継ユニットを配置した際の経路の一例を示す説明図である。
【図１７Ａ】図１７Ａは、中継ユニット配置前の通信ユニットのルーティングテーブルの一例を示す説明図である。
【図１７Ｂ】図１７Ｂは、中継ユニット配置後の通信ユニットのルーティングテーブルの一例を示す説明図である。
【図１８】図１８は、経路切替要求処理に関わる中継ユニット側のプロセッサの処理動作の一例を示すフローチャートである。
【図１９】図１９は、経路切替処理に関わる通信ユニット側のプロセッサの処理動作の一例を示すフローチャートである。
【図２０】図２０は、中継制限処理に関わる通信ユニット側のプロセッサの処理動作の一例を示すフローチャートである。
【図２１】図２１は、Ｈｅｌｌｏ要求受信処理に関わる中継ユニット側のプロセッサの処理動作の一例を示すフローチャートである。
【図２２】図２２は、経路切替プログラムを実行する通信機器の一例を示す説明図である。
【図２３】図２３は、従来の課題の一例を示す説明図である。
【発明を実施するための形態】
【００１４】
以下、図面に基づいて、本願の開示する通信システム、通信装置、経路切替方法及び経路切替プログラムの実施例を詳細に説明する。尚、本実施例により、開示技術が限定されるものではない。
【実施例】
【００１５】
図１は、本実施例の通信システムの一例を示す説明図である。図１に示す通信システム１は、有線ネットワークシステム（以下、単に有線システムと称する）２と、マルチホップネットワークシステム（以下、単にマルチホップシステムと称する）３とを有する。有線システム２は、例えば、ＷＡＮ（Wide  Area  Network）で構築し、通信システム１全体を監視するサーバ４を有する。また、マルチホップシステム３は、自律型マルチホップ形式のアドホック通信ネットワークで構築し、通信ユニット５と、中継ユニット６と、ゲートウェイ（以下、単にＧＷと称する）７とを有する。尚、通信ユニット５及び中継ユニット６は、通信装置である。
【００１６】
通信ユニット５、中継ユニット６及びＧＷ７は、自律型マルチホップ形式の無線通信を使用してデータを送信する。ＧＷ７は、マルチホップシステム３内の通信ユニット５及び中継ユニット６等と自律型マルチホップ形式の無線で通信すると共に、有線システム２内のサーバ４と有線で通信する。
【００１７】
図１に示す通信システム１は、例えば、家庭内の電力量をサーバ４側で収集して管理するシステムである。通信ユニット５は、例えば、家庭内に配置された、図示せぬ電力計に接続するユニットである。そして、サーバ４は、通信ユニット５を通じて各家庭内に配置された電力計から電力量を収集し、これら収集された家庭内の電力量を管理することになる。各通信ユニット５は、電力計から収集された電力量を定期的にＧＷ７経由でサーバ４に送信する。更に、サーバ４は、例えば、通信ユニット５を制御する制御データをＧＷ７経由で各通信ユニット５に送信する。尚、本システム内の電力計は、家庭内に固定配置されるため、例えば、通信ユニット５も固定配置されたものとなる。
【００１８】
図２は、ＧＷ７のハードウェア構成の一例を示すブロック図である。図２に示すＧＷ７は、ネットワークインタフェース１１と、無線インタフェース１２と、補助記憶装置１３と、メモリ１４と、プロセッサ１５とを有する。ネットワークインタフェース１１は、有線システム２と接続する通信インタフェースである。無線インタフェース１２は、マルチホップシステム３と接続するインタフェースである。補助記憶装置１３は、後述するルーティングテーブルやリンクテーブル等の経路情報に関わる各種情報を記憶する、例えば、フラッシュメモリである。メモリ１４は、各種プログラムの各種情報を記憶するものである。プロセッサ１５は、ＧＷ７全体を制御するものである。
【００１９】
図３は、ＧＷ７の機能構成の一例を示すブロック図である。プロセッサ１５は、メモリ１４に格納されたプログラムに基づき各種プロセスとなる機能を構成する。図３に示すプロセッサ１５は、ネットワーク通信部２１と、無線通信部２２と、フレーム解析部２３と、データ生成部２４と、データ取得部２５と、設定情報取得部２６と、ＧＷ情報生成部２７と、経路制御部２８と、記憶部２９と、制御部３０とを機能する。ネットワーク通信部２１は、ネットワークインタフェース１１を通じて有線システム２との有線通信を制御する。無線通信部２２は、無線インタフェース１２を通じてマルチホップシステム３との無線通信を制御する。
【００２０】
フレーム解析部２３は、無線インタフェース１２を通じてマルチホップシステム３内の通信ユニット５、中継ユニット６及びＧＷ７のフレームを解析する。データ生成部２４は、データを生成する。データ取得部２５は、データを取得する。設定情報取得部２６は、設定情報を取得する。経路制御部２８は、自律型マルチホップ形式の通信経路を制御する。ＧＷ情報生成部２７は、自ＧＷ７の負荷、例えば、収容ユニット台数及び転送トラフィック量等を含むＧＷ情報を生成する。記憶部２９は、後述するリンクテーブル３１、ルーティングテーブル３２及びフレーム転送テーブル３３等の各種テーブルを管理するものである。
【００２１】
図４は、リンクテーブル３１のテーブル構成の一例を示す説明図である。図４に示すリンクテーブル３１は、隣接送信元（ＬＳ：Local  Source）３１Ａ毎の復路の重み値３１Ｂ、往路の重み値３１Ｃ及び双方向の重み値３１Ｄを管理するものである。隣接送信元（ＬＳ）は、Ｈｅｌｌｏフレームを送信した隣接ユニットのＩＰ／ＭＡＣアドレスである。復路の重み値３１Ｂは、隣接送信元（ＬＳ）との復路の信号品質に関わる値である。往路の重み値３１Ｃは、隣接送信元（ＬＳ）との往路の信号品質に関わる値である。双方向の重み値３１Ｄは、隣接送信元（ＬＳ）との間の双方向の信号品質に関わる値である。
【００２２】
図５は、ルーティングテーブル３２のテーブル構成の一例を示す説明図である。図５に示すルーティングテーブル３２は、最終宛先（ＧＤ：Global  Destination）３２Ａ毎に隣接宛先（ＬＤ：Local  Destination）３２Ｂ及び評価値３２Ｃを管理するものである。最終宛先３２Ａは、データの最終宛先のＩＰ／ＭＡＣアドレスである。隣接宛先３２Ｂは、データを最終宛先に送信する際の中継する隣接ユニットのＩＰ／ＭＡＣアドレスである。評価値３２Ｃは、データを中継する経路の優先順位を決定するのに使用するものである。尚、評価値３２Ｃは、数値が小さくなるに連れて評価が高く、優先順位も高くなるものとする。ルーティングテーブル３２は、最終宛先３２Ａ毎に、優先順位、例えば、第１位〜第３位の隣接宛先（ＬＤ１〜ＬＤ３）３２Ｂ及び、隣接宛先３２Ｂ毎の評価値３２Ｃを管理するものである。
【００２３】
図６は、フレーム転送テーブル３３のテーブル構成の一例を示す説明図である。図６に示すフレーム転送テーブル３３は、転送フレームの識別情報（ＦＩＤ：Frame  Identification）３３Ａ毎に、送信元（ＧＳ:Global  Source）３３Ｂ、フラグ３３Ｃ及び隣接送信元（ＬＳ）３３Ｄを管理するものである。更に、フレーム転送テーブル３３は、ＦＩＤ３３Ａ毎に、隣接宛先１（ＬＤ１）３３Ｅ、隣接宛先２（ＬＤ２）３３Ｆ、隣接宛先３（ＬＤ３）３３Ｇ及び最新隣接宛先（ＬＡＳＴ）３３Ｈを管理するものである。ＦＩＤ３３Ａは、転送フレームを識別するＩＤである。送信元（ＧＳ）３３Ｂは、転送フレームの送信元を識別するＩＰ／ＭＡＣアドレスである。フラグ３３Ｃは、転送フレームの転送を試したカウント値である。
【００２４】
隣接送信元（ＬＳ）３３Ｄは、転送フレームを中継した送信元の隣接ユニットのＩＰ／ＭＡＣアドレスである。隣接宛先１（ＬＤ１）３３Ｅは、転送フレームを最終宛先に転送する際に使用する優先順位が第１位の隣接宛先ユニットのＩＰ／ＭＡＣアドレスである。隣接宛先２（ＬＤ２）３３Ｆは、転送フレームを最終宛先に転送する際に使用する優先順位が第２位の隣接宛先ユニットのＩＰ／ＭＡＣアドレスである。隣接宛先３（ＬＤ３）３３Ｇは、転送フレームを最終宛先に転送する際に使用する優先順位が第３位の隣接宛先ユニットのＩＰ／ＭＡＣアドレスである。最新隣接宛先３３Ｈは、転送フレームを最終宛先に転送する際に最後に使用した隣接宛先ユニットのＩＰ／ＭＡＣアドレスである。尚、最新隣接宛先３３Ｈは、例えば、隣接宛先（ＬＤ１〜ＬＤ３）の何れか一つである。
【００２５】
図７は、通信ユニット５のハードウェア構成の一例を示すブロック図である。図７に示す通信ユニット５は、外部装置入力部５１と、無線インタフェース５２と、補助記憶装置５３と、メモリ５４と、プロセッサ５５とを有する。外部装置入力部５１は、例えば、電力量を計測する電力計等の外部装置と接続するインタフェースである。無線インタフェース５２は、マルチホップシステム３と無線接続するインタフェースである。補助記憶装置５３は、各種情報を記憶するフラッシュメモリである。メモリ５４は、例えば、経路切替プログラム等の各種プログラムの情報を記憶するメモリである。プロセッサ５５は、通信ユニット５全体を制御する。
【００２６】
図８は、通信ユニット５の機能構成の一例を示すブロック図である。図８に示すプロセッサ５５は、メモリ５４に格納されたプログラムに基づき各種プロセスとなる機能を構成する。図８に示すプロセッサ５５は、無線通信部６１と、フレーム解析部６２と、データ生成部６３と、データ取得部６４と、設定情報取得部６５と、経路制御部６６と、記憶部６７と、制御部６８とを機能する。無線通信部６１は、無線インタフェース５２を通じてマルチホップシステム３との無線通信を制御する。
【００２７】
フレーム解析部６２は、無線インタフェース５２を通じてマルチホップシステム３内のＧＷ７、通信ユニット５や中継ユニット６のフレームを解析する。データ生成部６３は、データを生成する。データ取得部６４は、データを取得する。設定情報取得部６５は、設定情報を取得する。経路制御部６６は、自律型マルチホップ形式の通信経路を制御する。経路制御部６６は、ルーティングテーブル３２を参照し、最終宛先３２Ａの第１位の隣接宛先（ＬＤ１）のユニットで最終宛先のデータを中継する。記憶部６７は、図４に示すリンクテーブル３１、図５に示すルーティングテーブル３２及び図６に示すフレーム転送テーブル３３を管理するものである。
【００２８】
制御部６８は、更新部６８Ａと、制御部６８Ｂとを有する。更新部６８Ａは、後述する中継フラグを含むＨｅｌｌｏフレーム（以下、単に中継Ｈｅｌｌｏフレームと称する）を受信した場合にルーティングテーブル３２を更新する。具体的には、更新部６８Ａは、中継Ｈｅｌｌｏフレームを発信したユニット５（６）が最終宛先３２Ａの第１位の隣接宛先（ＬＤ１）３２Ｂとなるように、ルーティングテーブル３２を更新する。尚、中継フラグは、自ユニットが第１位の隣接宛先（ＬＤ１）として優先的な登録を求める中継Ｈｅｌｌｏフレームを識別するものである。制御部６８Ｂは、中継Ｈｅｌｌｏフレームを受信した場合に、中継Ｈｅｌｌｏフレーム内の後述する最大伝播ホップ数に基づき当該中継Ｈｅｌｌｏフレームの中継を制御する。尚、最大伝播ホップ数は、中継Ｈｅｌｌｏフレームを受信したユニット側で当該中継Ｈｅｌｌｏフレームを無線送信、すなわち中継できる最大ホップ数を示すものである。
【００２９】
図９は、中継ユニット６のハードウェア構成の一例を示すブロック図である。図９に示す中継ユニット６は、無線インタフェース７１と、補助記憶装置７２と、メモリ７３と、プロセッサ７４とを有する。無線インタフェース７１は、マルチホップシステム３と無線接続するインタフェースである。補助記憶装置７２は、各種情報を記憶するフラッシュメモリである。メモリ７３は、経路切替プログラム等の各種プログラムの情報を記憶するメモリである。プロセッサ７４は、中継ユニット６全体を制御する。
【００３０】
図１０は、中継ユニット６の機能構成の一例を示すブロック図である。図１０に示すプロセッサ７４は、メモリ７３に格納されたプログラムに基づき各種プロセスとなる機能を構成する。尚、説明の便宜上、中継ユニット６は、中継Ｈｅｌｌｏフレームを無線送信するものとする。図１０に示すプロセッサ７４は、無線通信部８１と、フレーム解析部８２と、データ生成部８３と、データ取得部８４と、設定情報取得部８５と、経路制御部８６と、記憶部８７と、制御部８８とを機能する。無線通信部８１は、無線インタフェース７１を通じてマルチホップシステム３との無線通信を制御する。
【００３１】
フレーム解析部８２は、無線インタフェース７１を通じてマルチホップシステム３内のＧＷ７、通信ユニット５や中継ユニット６のフレームを解析する。データ生成部８３は、データを生成する。データ取得部８４は、データを取得する。設定情報取得部８５は、設定情報を取得する。経路制御部８６は、自律型マルチホップ形式の通信経路を制御する。経路制御部８６は、ルーティングテーブル３２を参照し、最終宛先３２Ａの第１位の隣接宛先（ＬＤ１）のユニットで最終宛先のデータを中継する。記憶部８７は、図４に示すリンクテーブル３１、図５に示すルーティングテーブル３２及び図６に示すフレーム転送テーブル３３を管理するものである。
【００３２】
制御部８８は、付加部８８Ａと、制御部８８Ｂとを有する。付加部８８Ａは、Ｈｅｌｌｏフレーム内に中継フラグ及び最大伝播ホップ数を付加して中継Ｈｅｌｌｏフレームを制御するものである。図１１は、中継Ｈｅｌｌｏフレームの構成の一例を示す説明図である。図１１に示す中継Ｈｅｌｌｏフレーム９０は、ＰＨＹヘッダ９１と、ＭＡＣ（Media  Access  Control  Access）ヘッダ９２と、ＩＰ（Internet  Protocol）ヘッダ９３と、ＵＤＰ（User  Data  Program）ヘッダ９４とを有する。Ｈｅｌｌｏフレーム９０は、アドホックヘッダ９５と、ペイロード９６と、ＦＣＳ（Frame  Check  Sequence）９７とを有する。ＰＨＹヘッダ９１は、物理層のアドレスである。ＭＡＣヘッダ９２は、データリンク層のアドレスである。ＩＰヘッダ９３は、ネットワーク層のアドレスである。ＵＤＰヘッダ９４は、トランスポート層のアドレスである。アドホックヘッダ９５は、アドホック通信のヘッダである。
【００３３】
アドホックヘッダ９５は、パケット長９５Ａと、シーケンス番号９５Ｂと、タイプ９５Ｃと、ＴＴＬ（Time  to  Live）９５Ｄと、ホップ数９５Ｅとを有する。パケット長９５Ａは、パケットの長さを示すものである。シーケンス番号９５Ｂは、コネクションを識別する情報である。ＴＴＬ９５Ｄは、パケットの有効期間を示すものである。タイプ９５Ｃは、データフレーム、Ｈｅｌｌｏフレーム又は、中継Ｈｅｌｌｏフレームを識別するものである。尚、中継Ｈｅｌｌｏフレーム及びＨｅｌｌｏフレームは、他のユニットに転送しないため、アドホックヘッダ９５内のＴＴＬ９５Ｄ及びホップ数９５Ｅは「１」となる。
【００３４】
また、ペイロード９６内の最大伝播ホップ数９６Ａは、中継Ｈｅｌｌｏフレームを受信したユニット側で当該中継Ｈｅｌｌｏフレームを無線送信（中継）できる最大ホップ数を示すものである。ＦＣＳ９７は、誤り検出に使用するものである。
【００３５】
つまり、付加部８８Ａは、図１１に示す中継Ｈｅｌｌｏフレーム９０内のタイプ９５Ｃに、中継フラグ、すなわち、中継Ｈｅｌｌｏフレームを識別するタイプを付加するものである。更に付加部８８Ａは、ペイロード９６内の最大伝播ホップ数９６Ａ内に最大伝播ホップ数を付加するものである。制御部８８Ｂは、データフレーム、Ｈｅｌｌｏフレームや中継Ｈｅｌｌｏフレームを無線送信すべく、無線通信部８１を制御する。更に、制御部８８Ｂは、リンクテーブル３１及びルーティングテーブル３２等を制御するものである。制御部８８Ｂは、中継Ｈｅｌｌｏフレームに対して応答を受信した場合、応答した通信ユニット５、中継ユニット６やＧＷ７の隣接送信元（ＬＳ）３１Ａのリンク状態を更新すべく、リンクテーブル３１を更新する。制御部８８Ｂは、リンクテーブル３１内の隣接送信元（ＬＳ）３１Ａの台数が上限数に到達したか否かを判定する。制御部８８Ｂは、送信元（ＬＳ）の台数が上限数に到達した場合、中継Ｈｅｌｌｏフレームの無線送信を停止すると共に、リンクテーブル３１の更新を停止する。
【００３６】
図１２は、リンクテーブル３１及びルーティングテーブル３２の更新の一例を示す説明図である。尚、説明の便宜上、通信ユニット５Ｂは、定期的にＨｅｌｌｏフレームを自分の無線エリア内で無線送信する。無線エリア内のユニット、例えば、ＧＷ７Ａ、通信ユニット５Ｃ及び５Ｆは、通信ユニット５ＢからＨｅｌｌｏフレームを受信する。その結果、通信ユニット５は、Ｈｅｌｌｏフレームを受信した際のＲＳＳＩに基づき、Ｈｅｌｌｏフレームを送信したユニットとの間の復路の重み値３１Ｂを算出する。尚、ＲＳＳＩは、無線環境に大きく左右されるものである。
【００３７】
例えば、Ｈｅｌｌｏフレームを受信した通信ユニット５Ｃは、ＬＳ３１Ａが“５Ｂ”及び復路の重み値３１Ｂが“２０”のリンクテーブル３１を生成する。更に、通信ユニット５Ｃは、ＧＤ３２Ａが“５Ｂ”、ＬＤ３２Ｂが“５Ｂ”、評価値３２Ｃが“Ｅ”のルーティングテーブル３２を生成する。また、Ｈｅｌｌｏフレームを受信した通信ユニット５Ｆは、ＬＳ３１Ａが“５Ｂ”及び、復路の重み値３１Ｂが“１５”のリンクテーブル３１を生成する。更に、通信ユニット５Ｆは、ＧＤ３２Ａが“５Ｂ”、ＬＤ３２Ｂが“５Ｂ”、評価値３２Ｃが“Ｅ”のルーティングテーブル３２を生成する。尚、評価値“Ｅ”は未評価を示す。
【００３８】
また、Ｈｅｌｌｏフレームを受信したＧＷ７Ａは、ＬＳ３１Ａが“５Ｂ”及び、復路の重み値３１Ｂが“１０”のリンクテーブル３１を生成する。更に、ＧＷ７Ａは、ＧＤ３２Ａが“５Ｂ”、ＬＤ３２Ｂが“５Ｂ”、評価値３２Ｃが“Ｅ”のルーティングテーブル３２を生成する。
【００３９】
図１３は、リンクテーブル３１及びルーティングテーブル３２の更新の一例を示す説明図である。図１３に示す通信ユニット５Ｃは、Ｈｅｌｌｏフレームを自分の無線エリア内に無線送信する。この際、通信ユニット５Ｃは、隣接する通信ユニット５Ｂの経路情報を管理しているため、通信ユニット５Ｂに関わる経路情報を含むＨｅｌｌｏフレームを送信する。その結果、無線エリア内の隣接するユニット、例えば、通信ユニット５Ｂ、５Ｄ及び５Ｅは、通信ユニット５ＣからのＨｅｌｌｏフレームを受信する。
【００４０】
Ｈｅｌｌｏフレームを受信した通信ユニット５Ｂは、ＬＳ３１Ａが“５Ｃ”、復路、往路及び双方向の重み値３１Ｂ〜３１Ｄが“２０”のリンクテーブル３１を生成する。尚、通信ユニット５は、往路のＲＳＳＩに基づき往路の重み値３１Ｃを算出すると共に、先に取得した復路の重み値３１Ｂと往路の重み値３１Ｃに基づき双方向の重み値３１Ｄを算出する。更に、通信ユニット５Ｂは、ＧＤ３２Ａが“５Ｃ”、ＬＤ３２Ｂが“５Ｃ”、評価値３２Ｃが“２５”のルーティングテーブル３２を生成する。
【００４１】
また、Ｈｅｌｌｏフレームを受信した通信ユニット５Ｄは、ＬＳ３１Ａが“５Ｃ”、復路の重み値３１Ａが“３０”のリンクテーブル３１を生成する。更に、通信ユニット５Ｄは、ＧＤ３２Ａが“５Ｃ”、ＬＤ３２Ｂが“５Ｃ”、評価値３２Ｃが“Ｅ”の他に、ＧＤ３２Ａが“５Ｂ”、ＬＤ３２Ｂが“５Ｃ”、評価値３２Ｃが“Ｅ”のルーティングテーブル３２を生成する。また、Ｈｅｌｌｏフレームを受信した通信ユニット５Ｅは、ＬＳ３１Ａが“５Ｃ”、復路の重み値３１Ｂが“２０”のリンクテーブル３１を生成する。通信ユニット５Ｅは、ＧＤ３２Ａが“５Ｃ”、ＬＤ３２Ｂが“５Ｃ”及び評価値３２Ｃが“Ｅ”の他に、ＧＤ３２Ａが“５Ｂ”、ＬＤ３２Ｂが“５Ｃ”及び評価値３２Ｃが“Ｅ”のルーティングテーブル３２を生成する。
【００４２】
つまり、ＧＷ７、通信ユニット５及び中継ユニット６は、隣接ユニットからのＨｅｌｌｏフレームを受信し、受信されたＨｅｌｌｏフレームに基づき、ルーティングテーブル３２及びリンクテーブル３１の内容を更新する。ＧＷ７、通信ユニット５及び中継ユニット６は、ルーティングテーブル３２及びリンクテーブル３１の内容に基づきマルチホップシステム３内の通信経路をルーティングする。
【００４３】
図１４は、ルーティングテーブル３２の使用の一例を示す説明図である。尚、説明の便宜上、通信ユニット５Ｃは、最終宛先（ＧＤ）３２Ａ毎に最大３個までの第１位〜第３位の隣接宛先（ＬＤ）３２Ｂ及び評価値３２Ｃを管理するものである。図１４に示す例では、例えば、最終宛先（ＧＤ）３２Ａが“５Ｂ”の場合、隣接宛先（ＬＤ）３２Ｂが“５Ｂ”、“５Ｄ”及び“５Ｅ”である。その評価値３２Ｃは“５”、“５０”及び“６０”である。通信ユニット５Ｃが最終宛先（ＧＤ）３２Ａの“５Ｂ”に対してデータを送信する場合、ルーティングテーブル３２を参照し、評価値３２Ｃが最良、すなわち小さい“５”の隣接宛先“５Ｂ”のルートを選択する。その結果、通信ユニット５Ｃは、“５Ｂ”の通信ユニット５にデータを送信する。
【００４４】
図１５は、ルーティングテーブル３２の更新の一例を示す説明図である。尚、説明の便宜上、通信ユニット５Ｂは、通信ユニット５Ｃに対してＧＷ７Ａからのデータを通信ユニット５Ｃに中継する。更に、通信ユニット５Ｃは、データに対する応答の“ＡＣＫ”を通信ユニット５Ｂに送信する。尚、通信ユニット５Ｂは、最終宛先（ＧＤ）３２Ａの通信ユニット５Ｇに対して隣接宛先３２Ｂの“５Ｃ”、”５Ｆ”及び“７Ａ”のルーティングテーブル３２を管理している。
【００４５】
通信ユニット５Ｂは、ＧＷ７Ａから通信ユニット５Ｇ宛のデータを受信し、ルーティングテーブル３２の評価値３２Ｃを参照し、隣接宛先３２Ｂの通信ユニット５Ｃを中継先に決定し、隣接宛先３２Ｂである通信ユニット５Ｃにデータを送信する。その結果、通信ユニット５Ｂは、当該転送フレームの最新隣接宛先３３Ｈを“５Ｃ”としてフレーム転送テーブル３３に更新登録する。
【００４６】
更に、通信ユニット５Ｂは、転送フレームに対する応答（ＡＣＫ）を通信ユニット５Ｃから受信した場合、隣接宛先３２Ｂの“５Ｃ”に該当する評価値３２Ｃを“１０”に高めて、ルーティングテーブル３２の内容を更新する。つまり、ルーティングテーブル３２は、Ｈｅｌｌｏフレームを受信した際のＲＳＳＩだけでなく、データ転送の実績に応じて評価値３２Ｃを動的に更新する。
【００４７】
図１６Ａは、通信システム１内に中継ユニット６を配置する前の経路の一例を示す説明図である。図１６Ａに示す通信システム１は、ＧＷ７を最終宛先（ＧＤ）とし、通信ユニット５Ａ〜５Ｕが評価値に基づき経路構築を行っているものとする。この際、通信ユニット５Ｔに負荷が集中している。
【００４８】
そこで、通信システム１の保守者が、例えば、通信ユニット５Ｔの負荷を分散すべく、中継ユニット６を新規に配置したとする。図１６Ｂは、通信システム１内に中継ユニット６を配置した際の経路の一例を示す説明図である。この場合、中継ユニット６は、最終宛先のＧＷ７との経路が構築されると、中継Ｈｅｌｌｏフレームを無線送信する。中継Ｈｅｌｌｏフレームを受信した各通信ユニット５は、最終宛先（ＧＤ）の第１の隣接宛先（ＬＤ１）に中継ユニット６となるようにルーティングテーブル３２を更新する。
【００４９】
また、中継Ｈｅｌｌｏフレーム内には、最大伝播ホップ数９６Ａが含まれている。例えば、通信ユニット５Ｎは、中継ユニット６から最大伝播ホップ数９６Ａが「２」の中継Ｈｅｌｌｏフレームを受信したとする。通信ユニット５Ｎは、最終宛先（ＧＤ）の第１位の隣接宛先（ＬＤ１）を中継ユニット６に更新する。そして、通信ユニット５Ｎは、中継Ｈｅｌｌｏフレーム内の最大伝播ホップ数９６Ａが「２」であり、最大伝播ホップ数９６Ａを−１デクリメントし、「１」となるため、中継Ｈｅｌｌｏフレームを１ホップ伝播できる。従って、通信ユニット５Ｎは、最大伝播ホップ数９６Ａが「１」の中継Ｈｅｌｌｏフレームを無線送信する。また、通信ユニット５Ｕは、通信ユニット５Ｎからの中継Ｈｅｌｌｏフレームを受信した場合、最終宛先の第１位の隣接宛先（ＬＤ１）に更新する。この際、通信ユニット５Ｕは、中継Ｈｅｌｌｏフレーム内の最大伝播ホップ数９６Ａが「１」であり、最大伝播ホップ数９６Ａを−１デクリメントし、「０」となるため、中継Ｈｅｌｌｏフレームのこれ以上の伝播を禁止する。従って、中継ユニット６は、最大伝播ホップ数９６Ａに基づき中継Ｈｅｌｌｏフレームの伝播を制御する。
【００５０】
図１７Ａは、中継ユニット６配置前の通信ユニット５Ｍのルーティングテーブル３２の一例を示す説明図である。中継ユニット６を配置する前、通信ユニット５Ｍは、図１７Ａのルーティングテーブル３２を参照し、最終宛先のＧＷ７の第１位の隣接宛先（ＬＤ１）として通信ユニット５Ｔを選定する。その結果、通信ユニット５Ｍは、第１位の隣接宛先（ＬＤ１）として、通信ユニット５Ｔを経由して最終宛先のＧＷ７にデータを送信する。
【００５１】
図１７Ｂは、中継ユニット６配置後の通信ユニット５Ｍのルーティングテーブル３２の一例を示す説明図である。中継ユニット６を配置した場合、中継Ｈｅｌｌｏフレームを受信した通信ユニット５Ｍは、図１７Ｂに示す通り、ルーティングテーブル３２内の最終宛先のＧＷ７の第１の隣接宛先（ＬＤ１）を優先的に中継ユニット６に設定する。その結果、通信ユニット５Ｍは、第１位の隣接宛先（ＬＤ１）として中継ユニット６を経由して最終宛先のＧＷ７にデータを送信する。従って、例えば、通信ユニット５Ｔの負荷が分散できる。
【００５２】
次に本実施例の通信システム１の動作について説明する。図１８は、経路切替要求処理に関わる中継ユニット６側のプロセッサ７４の処理動作の一例を示すフローチャートである。図１８に示す経路切替要求処理は、例えば、新規に配置された中継ユニット６が周辺の通信ユニット５等に対して、自分を最終宛先の第１位の隣接宛先（ＬＤ１）とするように経路切替を要求する処理である。
【００５３】
図１８において中継ユニット６のプロセッサ７４の付加部８８Ａは、中継Ｈｅｌｌｏフレームを生成する（ステップＳ１１）。尚、付加部８８Ａは、中継Ｈｅｌｌｏフレーム９０のアドホックヘッダ９５内のタイプ９５Ｃを、中継フラグが付加されたことを示すタイプに変更する。更に、付加部８８Ａは、中継Ｈｅｌｌｏフレーム９０内のペイロード９６の先頭に最大伝播ホップ数９６Ａを付加する。
【００５４】
プロセッサ７４内の無線通信部８１は、生成された中継Ｈｅｌｌｏフレームをブロードキャストで無線送信する（ステップＳ１２）。尚、中継ユニット６は、最終宛先までの経路が確立した後、中継Ｈｅｌｌｏフレームをブロードキャスト送信する。無線通信部８１は、例えば、中継ユニット６周辺の通信ユニット５から中継Ｈｅｌｌｏフレームに対する応答を受信したか否かを判定する（ステップＳ１３）。
【００５５】
プロセッサ７４内の制御部８８Ｂは、中継Ｈｅｌｌｏフレームに対する応答を受信した場合（ステップＳ１３肯定）、応答した通信ユニット５に関してリンクテーブル３１を更新する（ステップＳ１４）。尚、制御部８８Ｂは、応答した通信ユニット５を隣接送信元（ＬＳ）３１Ａに登録し、更に、そのリンク状態（復路３１Ｂ、往路３１Ｃ及び双方向３１Ｄ等の重み値）を登録して、リンクテーブル３１を更新する。制御部８８Ｂは、リンクテーブル３１内の隣接送信元（ＬＳ）を参照し、中継Ｈｅｌｌｏフレームに応答した通信ユニット５の台数が上限値に到達したか否かを判定する（ステップＳ１５）。尚、上限値は、適宜設定変更可能である。
【００５６】
制御部８８Ｂは、中継Ｈｅｌｌｏフレームに応答した通信ユニット５の台数が上限値に到達した場合（ステップＳ１５肯定）、中継Ｈｅｌｌｏフレームのブロードキャスト送信を停止し（ステップＳ１６）、図１８に示す処理動作を終了する。その結果、ユーザは、上限値を調整することで中継ユニット６を中継先とする通信ユニット５の台数を調整できる。
【００５７】
また、制御部８８Ｂは、中継Ｈｅｌｌｏフレームに応答した通信ユニット５の台数が上限値に到達しなかった場合（ステップＳ１５否定）、中継Ｈｅｌｌｏフレームの送信タイミングであるか否かを判定する（ステップＳ１７）。付加部８８Ａは、中継Ｈｅｌｌｏフレームの送信タイミングの場合（ステップＳ１７肯定）、中継Ｈｅｌｌｏフレームを生成すべく、ステップＳ１１に移行する。
【００５８】
また、制御部８８Ｂは、中継Ｈｅｌｌｏフレームの送信タイミングでない場合（ステップＳ１７否定）、中継Ｈｅｌｌｏフレームの応答を受信したか否かを判定すべく、ステップＳ１３に移行する。また、制御部８８Ｂは、中継Ｈｅｌｌｏフレームの応答を受信していない場合（ステップＳ１３否定）、応答した通信ユニット５の台数が上限値に到達したか否かを判定すべく、ステップＳ１５に移行する。
【００５９】
図１８の経路切替要求処理では、例えば、新規に配置された中継ユニット６が中継Ｈｅｌｌｏフレームをブロードキャストで無線送信したので、新規に配置された中継ユニット６への経路切替を中継ユニット６周辺の通信ユニット５に要求できる。
【００６０】
また、中継ユニット６は、中継Ｈｅｌｌｏフレーム内に最大伝播ホップ数９６Ａを付加したので、利用者は、最大伝播ホップ数９６Ａの数値を設定変更することで、中継Ｈｅｌｌｏフレームの伝播範囲を調整できる。
【００６１】
また、中継ユニット６は、リンクテーブル３１内に中継Ｈｅｌｌｏフレームに応答した通信ユニット５の台数を管理し、通信ユニット５の台数が上限値に到達した場合、中継Ｈｅｌｌｏフレームのブロードキャストを停止する。その結果、利用者は、上限値を変更して、経路切替の通信ユニット５の台数を調整して負荷を調整できる。
【００６２】
また、中継ユニット６は、中継Ｈｅｌｌｏフレームに応答した通信ユニット５の台数が上限値に到達していない場合、中継Ｈｅｌｌｏフレームのブロードキャストを定期的に継続する。その結果、中継ユニット６は、経路切替の通信ユニット５の台数が上限値に到達するまで中継Ｈｅｌｌｏフレームのブロードキャスト送信を継続できる。
【００６３】
また、中継ユニット６は、最終宛先までの経路が確立されるまで中継Ｈｅｌｌｏフレームの無線送信を停止する。その結果、中継ユニット６は、経路が切替えられた通信ユニット５の最終宛先までのデータを確実に中継できる。
【００６４】
尚、上限値を無限にした場合、中継Ｈｅｌｌｏフレームのブロードキャスト送信は停止することなく、継続するものである。
【００６５】
図１９は、経路切替処理に関わる通信ユニット５側のプロセッサ５５の処理動作の一例を示すフローチャートである。図１９に示す経路切替処理は、中継Ｈｅｌｌｏフレームに応じてルーティングテーブル３２内の最終宛先の第１位の隣接宛先（ＬＤ１）を、中継Ｈｅｌｌｏフレームを発信した中継ユニット６に切替設定する処理である。
【００６６】
図１９において通信ユニット５側のプロセッサ５５内の無線通信部６１は、中継Ｈｅｌｌｏフレームを受信したか否かを判定する（ステップＳ２１）。更新部６８Ａは、中継Ｈｅｌｌｏフレームを受信した場合（ステップＳ２１肯定）、中継Ｈｅｌｌｏフレームを発信した中継ユニット６を最終宛先（ＧＤ）の第１位の隣接宛先（ＬＤ１）としてルーティングテーブル３２を更新する（ステップＳ２２）。その結果、通信ユニット５は、最終宛先（ＧＤ）の第１位の隣接宛先（ＬＤ１）を中継ユニット６に経路切替したことになる。
【００６７】
無線通信部６１は、中継Ｈｅｌｌｏフレームを発信した中継ユニット６に対して中継Ｈｅｌｌｏフレームに対する応答をユニキャストで無線送信し（ステップＳ２３）、図１９に示す処理動作を終了する。
【００６８】
無線通信部６１は、中継Ｈｅｌｌｏフレームを受信していない場合（ステップＳ２１否定）、通常のＨｅｌｌｏフレームを受信したか否かを判定する（ステップＳ２４）。更新部６８Ａは、通常のＨｅｌｌｏフレームを受信した場合（ステップＳ２４肯定）、ルーティングテーブル３２を更新する（ステップＳ２５）。尚、更新部６８Ａは、通常のＨｅｌｌｏフレームを受信した場合、Ｈｅｌｌｏフレームの隣接宛先の評価値３２Ｃを更新する。無線通信部６１は、Ｈｅｌｌｏフレームを発信したユニットに対してＨｅｌｌｏフレームに対する応答をユニキャストで無線送信し（ステップＳ２６）、図１９に示す処理動作を終了する。
【００６９】
無線通信部６１は、Ｈｅｌｌｏフレームを受信していない場合（ステップＳ２４否定）、Ｈｅｌｌｏ要求に対する応答を受信したか否かを判定する（ステップＳ２７）。尚、Ｈｅｌｌｏ要求とは、隣接する対向側のユニットから定期的なＨｅｌｌｏフレームが受信できない場合に、当該対向側のユニットに対して死活を確認するためのフレームである。
【００７０】
更新部６８Ａは、Ｈｅｌｌｏ要求に対する応答を受信した場合（ステップＳ２７肯定）、ルーティングテーブル３２を更新する（ステップＳ２８）。尚、更新部６８Ａは、Ｈｅｌｌｏ要求応答で中継Ｈｅｌｌｏフレームを発信した中継ユニット６との経路情報を維持する。無線通信部６１は、Ｈｅｌｌｏ要求に対する応答を受信していない場合（ステップＳ２７否定）、図１９に示す処理動作を終了する。
【００７１】
図１９に示す経路切替処理では、通信ユニット５が中継Ｈｅｌｌｏフレームを受信した場合に、最終宛先の第１位の隣接宛先（ＬＤ１）を、中継Ｈｅｌｌｏフレームを発信した中継ユニット６に切替えた。その結果、通信ユニット５は、中継Ｈｅｌｌｏフレームを発信した中継ユニット６側への経路切替が簡単に行える。
【００７２】
図２０は、中継制限処理に関わる通信ユニット５側のプロセッサ５５の処理動作の一例を示すフローチャートである。図２０に示す中継制限処理は、中継Ｈｅｌｌｏフレームを受信した場合、中継Ｈｅｌｌｏフレーム内の最大伝播ホップ数９６Ａに基づき、当該中継Ｈｅｌｌｏフレームの中継を制限する処理である。
【００７３】
図２０において通信ユニット５側のプロセッサ５５内の無線通信部６１は、中継Ｈｅｌｌｏフレームを受信したか否かを判定する（ステップＳ４１）。プロセッサ５５内の制御部６８Ｂは、中継Ｈｅｌｌｏフレームを受信した場合（ステップＳ４１肯定）、中継Ｈｅｌｌｏフレーム内の最大伝播ホップ数９６Ａを抽出する（ステップＳ４２）。更に、制御部６８Ｂは、最大伝播ホップ数９６Ａを−１デクリメントし（ステップＳ４３）、最大伝播ホップ数９６Ａが「１」以上であるか否かを判定する（ステップＳ４４）。
【００７４】
制御部６８Ｂは、最大伝播ホップ数９６Ａが「１」以上の場合（ステップＳ４４肯定）、中継Ｈｅｌｌｏフレーム内の最大伝播ホップ数９６Ａをデクリメント後のホップ数に書換える（ステップＳ４５）。更に、制御部６８Ｂは、最大伝播ホップ数９６Ａを書換えた中継Ｈｅｌｌｏフレームを１ホップ分無線送信（中継）し（ステップＳ４６）、図２０に示す処理動作を終了する。尚、中継Ｈｅｌｌｏフレームを受信した通信ユニット５は、中継Ｈｅｌｌｏフレームを他の通信ユニット５に伝達する。
【００７５】
また、制御部６８Ｂは、最大伝播ホップ数９６Ａが「１」以上でない場合（ステップＳ４４否定）、中継Ｈｅｌｌｏフレームの中継を禁止し（ステップＳ４７）、図２０に示す処理動作を終了する。その結果、中継Ｈｅｌｌｏフレームを受信した通信ユニット５は、中継Ｈｅｌｌｏフレームの他の通信ユニット５への中継（伝播）を禁止する。また、無線通信部６１は、中継Ｈｅｌｌｏフレームを受信しなかった場合（ステップＳ４１否定）、図２０に示す処理動作を終了する。
【００７６】
図２０に示す中継制限処理では、通信ユニット５が中継Ｈｅｌｌｏフレームを受信した場合、中継Ｈｅｌｌｏフレーム内の最大伝播ホップ数９６Ａを抽出する。更に、通信ユニット５が最大伝播ホップ数９６Ａを−１デクリメントして「１」以上の場合、中継Ｈｅｌｌｏフレームを中継する。その結果、中継Ｈｅｌｌｏフレームを受信した通信ユニット５は、隣接する通信ユニット５に中継Ｈｅｌｌｏフレームを中継できる。
【００７７】
また、通信ユニット５は、最大伝播ホップ数９６Ａを−１デクリメントして「０」の場合、中継Ｈｅｌｌｏフレームの中継を禁止する。その結果、中継Ｈｅｌｌｏフレームを受信した通信ユニット５は、最大伝播ホップ数９６Ａに基づき、隣接する通信ユニット５への中継Ｈｅｌｌｏフレームの中継、すなわち伝播範囲を制限できる。
【００７８】
図２１は、Ｈｅｌｌｏ要求受信処理に関わる中継ユニット６側のプロセッサ７４の処理動作の一例を示すフローチャートである。図２１に示すＨｅｌｌｏ要求受信処理では、中継Ｈｅｌｌｏフレームに応答した通信ユニット５からのＨｅｌｌｏ要求に応じて当該通信ユニット５に関わるリンク状態を更新する処理である。
【００７９】
図２１において中継ユニット６側のプロセッサ７４の無線通信部８１は、周辺の通信ユニット５からＨｅｌｌｏ要求を受信したか否かを判定する（ステップＳ３１）。制御部８８Ｂは、Ｈｅｌｌｏ要求を受信した場合（ステップＳ３１肯定）、Ｈｅｌｌｏ要求を発信した通信ユニット５がリンクテーブル３１内の隣接送信元（ＬＳ）にあるか否かを判定する（ステップＳ３２）。制御部８８Ｂは、リンクテーブル３１内の隣接送信元（ＬＳ）にある場合（ステップＳ３２肯定）、Ｈｅｌｌｏ要求の通信ユニット５が中継Ｈｅｌｌｏフレームに応答した通信ユニット５と判定する。そして、無線通信部８１は、Ｈｅｌｌｏ要求の通信ユニット５に対してＨｅｌｌｏ要求応答をユニキャストで無線送信する（ステップＳ３３）。
【００８０】
制御部８８Ｂは、リンクテーブル３１を更新し（ステップＳ３４）、図２１に示す処理動作を終了する。尚、制御部８８Ｂは、通信ユニット５との経路情報を維持する。無線通信部８１は、周辺の通信ユニット５からＨｅｌｌｏ要求を受信したのでない場合（ステップＳ３１否定）、図２１に示す処理動作を終了する。また、制御部８８Ｂは、Ｈｅｌｌｏ要求を発信した通信ユニット５がリンクテーブル３１内の隣接送信元（ＬＳ）にない場合（ステップＳ３２否定）、Ｈｅｌｌｏ要求の通信ユニット５が中継Ｈｅｌｌｏフレームに応答した通信ユニット５ではないと判定する。そして、制御部８８Ｂは、Ｈｅｌｌｏ要求を無視し、図２１に示す処理動作を終了する。
【００８１】
図２１に示すＨｅｌｌｏ要求受信処理では、中継ユニット６が通信ユニット５からＨｅｌｌｏ要求を受信し、Ｈｅｌｌｏ要求を発信した通信ユニット５がリンクテーブル３１内の隣接送信元３１Ａ内にあるか否かを判定する。中継ユニット６がＨｅｌｌｏ要求を発信した通信ユニット５がリンクテーブル３１内にある場合、Ｈｅｌｌｏ要求を発信した通信ユニット５に対してＨｅｌｌｏ要求応答を送信する。その結果、中継ユニット６は、中継Ｈｅｌｌｏフレームに応答した通信ユニット５に対して死活確認して経路情報を維持できる。
【００８２】
実施例では、新たに配置された中継ユニット６が中継Ｈｅｌｌｏフレームを無線送信し、中継ユニット６周辺の通信ユニット５が中継Ｈｅｌｌｏフレームを受信する。そして、中継Ｈｅｌｌｏフレームを受信した通信ユニット５は、最終宛先の第１位の隣接宛先（ＬＤ１）を、中継Ｈｅｌｌｏフレームを発信した中継ユニット６に切替更新する。その結果、新たな中継ユニット６が配置された場合、中継ユニット６を中継経路とする経路切替が迅速に行える。すなわち、ユーザが意図した経路切替を迅速に実現できる。
【００８３】
実施例では、新規に配置された中継ユニット６が中継Ｈｅｌｌｏフレームをブロードキャストで無線送信する。その結果、新規に配置された中継ユニット６への経路切替を中継ユニット６周辺の通信ユニット５に要求できる。
【００８４】
また、中継ユニット６は、中継Ｈｅｌｌｏフレーム内に最大伝播ホップ数９６Ａを付加したので、利用者は、最大伝播ホップ数９６Ａの数値を設定変更することで、中継Ｈｅｌｌｏフレームの伝播範囲を調整できる。すなわち、経路切替の範囲を調整しながら、ユーザが意図した経路切替を迅速に実現できる。
【００８５】
また、中継ユニット６は、リンクテーブル３１内に中継Ｈｅｌｌｏフレームに応答した通信ユニット５を管理し、応答した通信ユニット５の台数が上限値に到達した場合、中継Ｈｅｌｌｏフレームのブロードキャストを停止する。その結果、利用者は、上限値の数値を設定変更することで、経路切替の通信ユニット５の台数を調整して負荷を調整できる。すなわち、利用者は、上限値の数値を設定変更することで、負荷の分散率を調整できる。
【００８６】
また、中継ユニット６は、中継Ｈｅｌｌｏフレームに応答した通信ユニット５の台数が上限値に到達していない場合、中継Ｈｅｌｌｏフレームのブロードキャストを継続する。その結果、中継ユニット６は、経路切替の通信ユニット５の台数が上限値に到達するまで中継Ｈｅｌｌｏフレームのブロードキャスト送信を継続できる。
【００８７】
また、中継ユニット６は、最終宛先までの経路が確立されるまで中継Ｈｅｌｌｏフレームの無線送信を停止する。その結果、中継ユニット６は、経路が切替えられた通信ユニット５の最終宛先までのデータを確実に中継できる。
【００８８】
また、実施例では、中継ユニット６を通信システム１内に新規配置した場合を例に挙げて説明したが、中継ユニット６を使用して、例えば、通信システム１内の通信負荷の分散や、通信ユニットの保守時の経路の片寄せに有用である。
【００８９】
尚、上記実施例では、中継Ｈｅｌｌｏフレームを発信するユニットとして中継ユニット６を例示したが、中継ユニット６に限定されるものではなく、通信ユニット５等でも良い。
【００９０】
また、上記実施例では、中継Ｈｅｌｌｏフレームを受信するユニットとして通信ユニット５を例示したが、通信ユニット５に限定されるものではなく、中継ユニット６等でも良い。
【００９１】
また、通信ユニット５は、中継Ｈｅｌｌｏフレームを複数受信した場合、最初に受信したフレームに基づき、当該フレームを発信したユニットを最終宛先の第１位の隣接宛先に更新し、２回目以降に受信した中継Ｈｅｌｌｏフレームを無効にしても良い。この場合、通信システム１内の経路切替時の乱れを最小限にできる。
【００９２】
また、上記実施例では、中継Ｈｅｌｌｏフレームを受信した通信ユニット５内のルーティングテーブルの最終宛先の第１の隣接宛先（ＬＤ１）に、中継Ｈｅｌｌｏフレームを発信したユニットを切替設定して経路切替を実現した。しかし、第１位の隣接宛先（ＬＤ１）を直接切替えるのではなく、中継Ｈｅｌｌｏフレームを発信した通信ユニット５の評価値を調整して最終宛先の隣接宛先の評価値を最高位にし、経路切替を実現するようにしても良い。
【００９３】
また、上記実施例では、通信システム１内の全通信ユニット５が中継Ｈｅｌｌｏフレームを受信した場合に最終宛先の第１位の隣接宛先を切替変更した。しかし、中継Ｈｅｌｌｏフレームを理解しない通信ユニットが混在した通信システムの場合には、中継Ｈｅｌｌｏフレームを理解する通信ユニット５単位での切替変更が可能になる。
【００９４】
また、上記実施例では、アドホック通信として、自律型マルチホップ方式の無線通信を採用した通信システム１を例示して説明したが、無線通信に限定されるものではなく、赤外線通信や有線通信等にも適用可能である。
【００９５】
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
【００９６】
更に、各装置で行われる各種処理機能は、ＣＰＵ（Central  Processing  Unit）（又はＭＰＵ（Micro  Processing  Unit）、ＭＣＵ（Micro  Controller  Unit）等のマイクロ・コンピュータ）上で、その全部又は任意の一部を実行するようにしても良い。また、各種処理機能は、ＣＰＵ（又はＭＰＵ、ＭＣＵ等のマイクロ・コンピュータ）で解析実行するプログラム上、又はワイヤードロジックによるハードウェア上で、その全部又は任意の一部を実行するようにしても良いことは言うまでもない。
【００９７】
ところで、本実施例で説明した各種の処理は、予め用意されたプログラムを通信機器で実行することで実現できる。そこで、以下では、上記実施例と同様の機能を有するプログラムを実行する通信機器の一例を説明する。図２２は、経路切替プログラムを実行する通信機器の一例を示す説明図である。
【００９８】
図２２に示す経路切替プログラムを実行する通信機器１００は、通信インタフェース１１１と、ＲＡＭ(Random  Access  Memory)１１２と、ＲＯＭ（Read  Only  Memory）１１３と、プロセッサ１１４とを有する。通信インタフェース１１１は、自律型マルチホップ形式で無線通信する。プロセッサ１１４は、通信機器１００全体を制御する。
【００９９】
そして、ＲＯＭ１１３には、上記実施例と同様の機能を発揮する経路切替プログラムが予め記憶されている。尚、ＲＯＭ１１３ではなく、図示せぬドライブで読取可能な記録媒体に経路切替プログラムが記録されていても良い。また、記録媒体としては、例えば、ＣＤ−ＲＯＭ、ＤＶＤディスク、ＵＳＢメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ等でも良い。経路切替プログラムとしては、図２２に示すように、判定プログラム１１３Ａ、更新プログラム１１３Ｂ及び制御プログラム１１３Ｃである。尚、プログラム１１３Ａ〜１１３Ｃについては、適宜統合又は分散してもよい。
【０１００】
そして、プロセッサ１１４が、これらのプログラム１１３Ａ〜１１３ＣをＲＯＭ１１３から読み出し、これら読み出された各プログラムを実行する。そして、プロセッサ１１４は、図２２に示すように、各プログラム１１３Ａ〜１１３Ｃを、判定プロセス１１４Ａ、更新プロセス１１４Ｂ及び制御プロセス１１４Ｃとして機能することになる。ＲＡＭ１１２には、宛先毎に、当該宛先へのデータの中継先が記憶されている。
【０１０１】
プロセッサ１１４は、他の通信装置から中継フラグ及び最大伝播ホップ数が付加されたフレームを受信したか否かを判定する。プロセッサ１１４は、フレームを受信した場合に、当該フレームを発信した通信装置が当該宛先の最優先の中継先となるようにＲＡＭ１１２を更新する。更に、プロセッサ１１４は、フレームを受信した場合に、当該フレーム内の最大伝播ホップ数に基づき、当該フレームの無線送信を制御する。その結果、各通信機器１００は、経路切替の範囲を調整しながら、ユーザが意図した経路切替を迅速に実現できる。
【０１０２】
以上、本実施例を含む実施の形態に関し、更に以下の付記を開示する。
【０１０３】
（付記１）自律型マルチホップ方式の通信で接続する複数の通信装置を有する通信システムであって、
前記複数の通信装置の内、第１の通信装置は、
中継フラグ及び伝播ホップ数が付加されたフレームを送信する通信部
を有し、
前記複数の通信装置の内、第２の通信装置は、
宛先毎に、当該宛先へのデータの中継先を記憶した記憶部と、
前記記憶部を参照して当該宛先に対応した中継先にデータを送信する通信部と、
前記第１の通信装置から前記フレームを受信した場合に、当該フレームを発信した前記第１の通信装置が当該宛先の最優先の中継先となるように、前記記憶部を更新する更新部と、
前記第１の通信装置から前記フレームを受信した場合に、当該フレーム内の前記伝播ホップ数に基づき、当該フレームの送信を制御する制御部と
を有することを特徴とする通信システム。
【０１０４】
（付記２）前記第１の通信装置は、
前記通信部によって前記フレームを送信した後、前記第２の通信装置から前記フレームに対する応答を受信した場合に、当該応答した前記第２の通信装置毎に、当該第２の通信装置とのリンク状態を記憶するリンク記憶部と、
前記リンク記憶部に記憶された前記第２の通信装置の台数が上限数に到達した場合に、前記応答した前記第２の通信装置の前記リンク記憶部への追加記憶を停止すると共に、前記フレームの送信を前記通信部に停止させる制御部と
を有することを特徴とする付記１に記載の通信システム。
【０１０５】
（付記３）前記更新部は、
前記フレームを複数受信した場合に、最初に受信したフレームに基づき、当該フレームを発信した第１の通信装置が当該宛先の最優先の中継先となるように、前記記憶部を更新すると共に、２回目以降に受信したフレームを無効にすることを特徴とする付記１又は２に記載の通信システム。
【０１０６】
（付記４）前記第２の通信装置は、
前記第１の通信装置から前記フレームを受信した場合に、当該第１の通信装置が当該宛先の最優先の中継先となるように、前記記憶部を更新する第３の通信装置と、
前記第１の通信装置から前記フレームを受信した場合に、当該第１の通信装置の当該宛先の中継先の評価値を算出して、前記記憶部を更新する第４の通信装置と
を有することを特徴とする付記１〜３の何れか一つに記載の通信システム。
【０１０７】
（付記５）前記第１の通信装置内の前記通信部は、
前記宛先の通信装置との経路が確立されるまで前記フレームの送信を停止することを特徴とする付記１〜４の何れか一つに記載の通信システム。
【０１０８】
（付記６）前記記憶部は、
前記宛先毎に、前記中継先及び、前記中継先を選定する評価値を記憶しておき、
前記更新部は、
前記第１の通信装置から前記フレームを受信した場合に、当該第１の通信装置が当該宛先の最優先の中継先となるように当該中継先としての当該第１の通信装置に対応する評価値を調整して前記記憶部を更新することを特徴とする付記１〜５の何れか一つに記載の通信システム。
【０１０９】
（付記７）自律型マルチホップ方式で通信する通信部と、
宛先毎に、当該宛先へのデータの中継先を記憶した記憶部と、
前記記憶部を参照して当該宛先に対応した中継先にデータを送信するように前記通信部を制御する制御部と、
他の通信装置から中継フラグ及び伝播ホップ数が付加されたフレームを受信した場合に、当該フレームを発信した通信装置が当該宛先の最優先の中継先となるように前記記憶部を更新する更新部と、
前記他の通信装置から前記フレームを受信した場合に、当該フレーム内の前記伝播ホップ数に基づき、当該フレームの送信を制御する制御部と
を有することを特徴とする通信装置。
【０１１０】
（付記８）前記更新部は、
前記フレームを複数受信した場合に、最初に受信したフレームに基づき、当該フレームを発信した通信装置が当該宛先の最優先の中継先となるように、前記記憶部を更新すると共に、２回目以降に受信したフレームを無効にすることを特徴とする付記７に記載の通信装置。
【０１１１】
（付記９）前記記憶部は、
前記宛先毎に、前記中継先及び、前記中継先を選定する評価値を記憶しておき、
前記更新部は、
前記フレームを受信した場合に、当該フレームを発信した通信装置が当該宛先の最優先の中継先と選定されるように当該中継先としての通信装置の評価値を調整して前記記憶部を更新することを特徴とする付記７又は８に記載の通信装置。
【０１１２】
（付記１０）自律型マルチホップ方式で通信する通信部と、
フレーム内に中継フラグ及び伝播ホップ数を付加する付加部と、
前記通信部によって前記中継フラグ及び前記伝播ホップ数が付加された前記フレームを送信した後、他の通信装置から前記フレームに対する応答を受信した場合に、当該応答した前記通信装置毎に、当該通信装置とのリンク状態を記憶するリンク記憶部と、
前記リンク記憶部に記憶された前記通信装置の台数が上限数に到達した場合に、前記応答した前記通信装置の前記リンク記憶部への追加記憶を停止すると共に、前記フレームの送信を前記通信部に停止させる制御部と
を有することを特徴とする通信装置。
【０１１３】
（付記１１）前記通信部は、
最終宛先の通信装置との経路が確立されるまで前記中継フラグが付加された前記フレームの送信を停止することを特徴とする付記１０に記載の通信装置。
【０１１４】
（付記１２）自律型マルチホップ方式の通信で接続する複数の通信装置を有する通信システムの経路切替方法であって、
前記複数の通信装置の内、第１の通信装置は、
中継フラグ及び伝播ホップ数が付加されたフレームを送信し、
前記複数の通信装置の内、第２の通信装置は、
前記第１の通信装置から前記フレームを受信した場合に、当該フレームを発信した前記第１の通信装置が宛先の最優先の中継先となるように、宛先毎のデータの中継先を記憶した記憶部を更新し、
前記第１の通信装置から前記フレームを受信した場合に、当該フレーム内の前記伝播ホップ数に基づき、当該フレームの送信を制御する
各処理を実行することを特徴とする経路切替方法。
【０１１５】
（付記１３）自律型マルチホップ方式で通信する通信部と、宛先毎に、当該宛先へのデータの中継先を記憶した記憶部と、プロセッサとを備えた通信機器によって実行される経路切替プログラムであって、
前記プロセッサに、
他の通信装置から中継フラグ及び伝播ホップ数が付加されたフレームを受信したか否かを判定し、
前記フレームを受信した場合に、当該フレームを発信した通信装置が当該宛先の最優先の中継先となるように前記記憶部を更新し
前記フレームを受信した場合に、当該フレーム内の前記伝播ホップ数に基づき、当該フレームの送信を制御する
各処理を実行させることを特徴とする経路切替プログラム。
【符号の説明】
【０１１６】
１  通信システム
５  通信ユニット
６  中継ユニット
３１  リンクテーブル
３２  ルーティングテーブル
３２Ａ  最終宛先
３２Ｂ  隣接宛先
３２Ｃ  評価値
６１  無線通信部
６８Ａ  更新部
６８Ｂ  制御部
８１  無線通信部
８８Ａ  付加部
８８Ｂ  制御部
１００  通信機器
１１１  通信インタフェース
１１２  ＲＡＭ
１１３  ＲＯＭ
１１４  プロセッサ
１１４Ａ  判定プロセス
１１４Ｂ  更新プロセス
１１４Ｃ  制御プロセス
【図１】
0006015072.tif 000002
【図２】
0006015072.tif 000003
【図３】
0006015072.tif 000004
【図４】
0006015072.tif 000005
【図５】
0006015072.tif 000006
【図６】
0006015072.tif 000007
【図７】
0006015072.tif 000008
【図８】
0006015072.tif 000009
【図９】
0006015072.tif 000010
【図１０】
0006015072.tif 000011
【図１１】
0006015072.tif 000012
【図１２】
0006015072.tif 000013
【図１３】
0006015072.tif 000014
【図１４】
0006015072.tif 000015
【図１５】
0006015072.tif 000016
【図１６Ａ】
0006015072.tif 000017
【図１６Ｂ】
0006015072.tif 000018
【図１７Ａ】
0006015072.tif 000019
【図１７Ｂ】
0006015072.tif 000020
【図１８】
0006015072.tif 000021
【図１９】
0006015072.tif 000022
【図２０】
0006015072.tif 000023
【図２１】
0006015072.tif 000024
【図２２】
0006015072.tif 000025
【図２３】
0006015072.tif 000026