(57)【特許請求の範囲】
【請求項１】
複数の通信端末により構成され、第１の通信端末が一又は複数の中継通信端末を介して第２の通信端末と通信するようになされており、当該第１及び第２の通信端末間の通信に使用する経路が複数作成されている通信システムにおいて、
上記第１の通信端末は、
データ送信を希望したアプリケーションの要求又はデータの送信状態に応じて設定された、要求される経路の品質及び経路に設定するＩＤであるフローＩＤを格納した経路要求を送信する経路要求送信手段
を具え、
上記中継通信端末及び上記第２の通信端末は、
上記経路要求を受信すると、複数作成されている上記経路のうち当該受信した経路要求に格納された上記要求される経路の品質を満たす経路を、当該受信した経路要求に格納された上記フローＩＤが付されたデータを通信するときに使用する経路として設定する経路設定手段
を具え、
上記第１の通信端末の経路要求送信手段は、
定期的な上記経路の生存時間の更新の際には、上記経路要求に上記経路に新規に設定すべき生存時間を格納して送信し、
上記中継通信端末及び上記第２の通信端末の上記経路設定手段は、
上記生存時間が格納された上記経路要求を受信すると、当該受信した経路要求に格納された生存時間に応じて対応する上記経路の生存時間を更新する
通信システム。
【請求項２】
上記第１の通信端末の上記経路要求送信手段は、
所定時間内に上記中継通信端末及び上記第２の通信端末の上記経路設定手段により上記経路が設定されなかった場合は、上記経路要求に格納する上記要求される経路の品質を緩和して再送する
請求項１に記載の通信システム。
【請求項３】
上記中継通信端末及び上記第２の通信端末の上記経路設定手段は、
複数作成されている上記経路の中に上記受信した経路要求に格納された上記経路品質の条件を満たす経路がなかった場合は、上記第１の通信端末にエラーを送信し、
上記第１の通信端末の上記経路要求送信手段は、
上記エラーを受信すると、上記経路要求に格納する上記要求される経路の品質を緩和して再送する
請求項１に記載の通信システム。
【請求項４】
上記中継通信端末及び上記第２の通信端末の上記経路設定手段は、
上記第１の通信端末から上記第２の通信端末までの上記経路と、上記第２の通信端末から上記第１の通信端末までの上記経路とが異なるように別個に設定する
請求項１に記載の通信システム。
【請求項５】
複数の通信端末により構成され、第１の通信端末が一又は複数の中継通信端末を介して第２の通信端末と通信するようになされており、当該第１及び第２の通信端末間の通信に使用する経路が複数作成されている通信システムにおける通信方法において、
上記第１の通信端末が、データ送信を希望したアプリケーションの要求又はデータの送信状態に応じて設定された、要求される経路の品質及び経路に設定するＩＤであるフローＩＤを格納した経路要求を送信する第１のステップと、
上記中継通信端末及び上記第２の通信端末が、上記経路要求を受信すると、複数作成されている上記経路のうち当該受信した経路要求に格納された上記要求される経路の品質を満たす経路を、当該受信した経路要求に格納された上記フローＩＤが付されたデータを通信するときに使用する経路として設定する第２のステップと、
上記第１の通信端末が、定期的な上記経路の生存時間の更新の際には、上記経路要求に上記経路に新規に設定すべき生存時間を格納して送信する第３のステップと、
上記中継通信端末及び上記第２の通信端末が、上記生存時間が格納された上記経路要求を受信すると、当該受信した経路要求に格納された生存時間に応じて対応する上記経路の生存時間を更新する第４のステップと
を具える通信方法。
【請求項６】
一又は複数の中継通信端末を介して外部の通信端末と通信するようになされており、当該通信端末との通信に使用する経路が複数作成されている通信端末装置において、
データ送信を希望したアプリケーションの要求又はデータの送信状態に応じて設定された、要求される経路の品質及び経路に設定するＩＤであるフローＩＤを格納した経路要求を送信する経路要求送信手段
を具え、
上記経路要求送信手段は、
定期的な上記経路の生存時間の更新の際には、上記経路要求に上記経路に新規に設定すべき生存時間を格納して送信する
通信端末装置。
【請求項７】
一又は複数の中継通信端末を介して所望する通信端末と通信するようになされており、当該通信端末との通信に使用する経路が複数作成されている通信端末装置の制御方法において、
データ送信を希望したアプリケーションの要求又はデータの送信状態に応じて設定された、要求される経路の品質及び経路に設定するＩＤであるフローＩＤを格納した経路要求を送信する第１のステップと、
定期的な上記経路の生存時間の更新の際には、上記経路要求に上記経路に新規に設定すべき生存時間を格納して送信する第２のステップと
を具える通信端末装置の制御方法。
【請求項８】
一又は複数の中継通信端末を介して所望する通信端末と通信するようになされており、当該通信端末との通信に使用する経路が複数作成されている通信端末装置に実装されるプログラムにおいて、
データ送信を希望したアプリケーションの要求又はデータの送信状態に応じて設定された、要求される経路の品質及び経路に設定するＩＤであるフローＩＤを格納した経路要求を送信する第１のステップと、
定期的な上記経路の生存時間の更新の際には、上記経路要求に上記経路に新規に設定すべき生存時間を格納して送信する第２のステップと
を具える処理をコンピュータに実行させるためのプログラム。
【請求項９】
第１及び第２の通信端末間の通信を中継するようになされており、当該第１及び第２の通信端末間の通信に使用する経路が複数作成されている通信端末装置において、
上記第１の通信端末からデータ送信を希望したアプリケーションの要求又はデータの送信状態に応じて設定された、要求される経路の品質及び経路に設定するＩＤであるフローＩＤを格納した経路要求を受信すると、複数作成されている上記経路のうち当該受信した経路要求に格納された上記要求される経路の品質を満たす経路を、当該受信した経路要求に格納された上記フローＩＤが付されたデータを通信するときに使用する経路として設定する経路設定手段
を具え、
上記経路設定手段は、
上記第１の通信端末から上記経路に新規に設定すべき生存時間が格納された上記経路要求を受信すると、当該受信した経路要求に格納された生存時間に応じて対応する上記経路の生存時間を更新する
通信端末装置。
【請求項１０】
第１及び第２の通信端末間の通信を中継するようになされており、当該第１及び第２の通信端末間の通信に使用する経路が複数作成されている通信端末装置の制御方法において、
上記第１の通信端末からデータ送信を希望したアプリケーションの要求又はデータの送信状態に応じて設定された、要求される経路の品質及び経路に設定するＩＤであるフローＩＤを格納した経路要求を受信すると、複数作成されている上記経路のうち当該受信した経路要求に格納された上記要求される経路の品質を満たす経路を、当該受信した経路要求に格納された上記フローＩＤが付されたデータを通信するときに使用する経路として設定する第１のステップと、
上記第１の通信端末から上記経路に新規に設定すべき生存時間が格納された上記経路要求を受信すると、当該受信した経路要求に格納された生存時間に応じて対応する上記経路の生存時間を更新する第２のステップと
を具える通信端末装置の制御方法。
【請求項１１】
第１及び第２の通信端末間の通信を中継するようになされており、当該第１及び第２の通信端末間の通信に使用する経路が複数作成されている通信端末装置に実装されるプログラムにおいて、
上記第１の通信端末からデータ送信を希望したアプリケーションの要求又はデータの送信状態に応じて設定された、要求される経路の品質及び経路に設定するＩＤであるフローＩＤを格納した経路要求を受信すると、複数作成されている上記経路のうち当該受信した経路要求に格納された上記要求される経路の品質を満たす経路を、当該受信した経路要求に格納された上記フローＩＤが付されたデータを通信するときに使用する経路として設定する第１のステップと、
上記第１の通信端末から上記経路に新規に設定すべき生存時間が格納された上記経路要求を受信すると、当該受信した経路要求に格納された生存時間に応じて対応する上記経路の生存時間を更新する第２のステップと
を具える処理をコンピュータに実行させるためのプログラム。
【請求項１２】
一又は複数の中継通信端末を介して外部の通信端末と通信するようになされており、当該通信端末との通信に使用する経路が複数作成されている通信端末装置において、
上記外部の通信端末からデータ送信を希望したアプリケーションの要求又はデータの送信状態に応じて設定された、要求される経路の品質及び経路に設定するＩＤであるフローＩＤを格納した経路要求を受信すると、複数作成されている上記経路のうち当該受信した経路要求に格納された上記要求される経路の品質を満たす経路を、当該受信した経路要求に格納された上記フローＩＤが付されたデータを通信するときに使用する経路として設定する経路設定手段
を具え、
上記経路設定手段は、
上記外部の通信端末から上記経路に新規に設定すべき生存時間が格納された上記経路要求を受信すると、当該受信した経路要求に格納された生存時間に応じて対応する上記経路の生存時間を更新する
通信端末装置。
【請求項１３】
一又は複数の中継通信端末を介して外部の通信端末と通信するようになされており、当該通信端末との通信に使用する経路が複数作成されている通信端末装置の制御方法において、
上記外部の通信端末からデータ送信を希望したアプリケーションの要求又はデータの送信状態に応じて設定された、要求される経路の品質及び経路に設定するＩＤであるフローＩＤを格納した経路要求を受信すると、複数作成されている上記経路のうち当該受信した経路要求に格納された上記要求される経路の品質を満たす経路を、当該受信した経路要求に格納された上記フローＩＤが付されたデータを通信するときに使用する経路として設定する第１のステップと、
上記外部の通信端末から上記経路に新規に設定すべき生存時間が格納された上記経路要求を受信すると、当該受信した経路要求に格納された生存時間に応じて対応する上記経路の生存時間を更新する第２のステップと
を具える通信端末装置の制御方法。
【請求項１４】
一又は複数の中継通信端末を介して外部の通信端末と通信するようになされており、当該通信端末との通信に使用する経路が複数作成されている通信端末装置に実装されるプログラムにおいて、
上記外部の通信端末からデータ送信を希望したアプリケーションの要求又はデータの送信状態に応じて設定された、要求される経路の品質及び経路に設定するＩＤであるフローＩＤを格納した経路要求を受信すると、複数作成されている上記経路のうち当該受信した経路要求に格納された上記要求される経路の品質を満たす経路を、当該受信した経路要求に格納された上記フローＩＤが付されたデータを通信するときに使用する経路として設定する第１のステップと、
上記外部の通信端末から上記経路に新規に設定すべき生存時間が格納された上記経路要求を受信すると、当該受信した経路要求に格納された生存時間に応じて対応する上記経路の生存時間を更新する第２のステップと
を具える処理をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は通信システム、通信方法、通信端末装置及びその制御方法並びにプログラムに関し、例えばアドホックネットワークシステムに適用して好適なものである。
【背景技術】
【０００２】
近年、ノート型パーソナルコンピュータやＰＤＡといった移動コンピュータの普及に伴い、これら移動コンピュータを無線によって接続できるネットワークコンピューティング環境への要求が高まっている。このようなネットワークのひとつとしてアドホックネットワークがある。
【０００３】
アドホックネットワークは、データの中継を行うための専用のルータが存在せず、各通信端末（以下、これをノードと呼ぶ）がメッセージを無線通信によりルーティングすることによって、移動性、柔軟性及び経済性の高いネットワークを構築し得るようになされたものである。
【０００４】
このように全てのノードが無線ネットワークにより接続されたアドホックネットワークにおいては、従来の固定的なネットワークとは異なり、トポロジの変化が非常に頻繁に起こるため、信頼性を確保するための経路制御方式（ルーティングプロトコル）を確立する必要がある。
【０００５】
現在提案されているアドホックネットワークのルーティングプロトコルは、通信を開始する直前に通信先までの通信経路を発見するオンデマンド方式と、通信の有無にかかわらず各ノードがそれぞれ他の各ノードまでの通信経路を予め発見しておきこれをテーブルとして保持しておくテーブル駆動方式の大きく２つのカテゴリに分けることができる。また近年では、これらを統合したハイブリッド方式も提案されている。
【０００６】
このうち、オンデマンド方式の代表的なルーティングプロトコルとして、ＩＥＴＦ（Internet Engineering Task Force）のＭＡＮＥＴ  ＷＧ（Mobil Adhoc NETwork Working Group）で提案されているＡＯＤＶ（Adhoc On-demand Distance Vector）プロトコルがある（例えば特許文献１参照）。以下、このＡＯＤＶにおける経路発見プロセスについて説明する。
【０００７】
図１５（Ａ）は、複数のノードＡ´〜Ｅ´、Ｓ´により構築されるアドホックネットワークシステム１を示すものである。この図では、相互に通信可能な範囲内にあるノードＡ´〜Ｅ´、Ｓ´同士が線により結ばれている。従って、線で結ばれていないノードＡ´〜Ｅ´、Ｓ´間では他のノードＡ´〜Ｅ´、Ｓ´を介して通信を行う必要があり、この場合に以下に説明する経路発見プロセスにより通信すべきノードＡ´〜Ｅ´、Ｓ´との間の経路の発見が行われる。
【０００８】
例えばノードＳ´がノードＤ´との間で通信を開始する場合において、ノードＳ´がノードＤ´までの通信経路を知らない場合、ノードＳ´は、まず図１６に示すような経路要求メッセージ（RREQ：Route Request）２をブロードキャストする。
【０００９】
この経路要求メッセージ２は、「Type」、「Flag」、「Reserved」、「Hop Count」、「RREQ ID」、「Destination Address」、「Destination Sequence Number」、「Originator Address」及び「Originator Sequence Number」のフィールド３１〜３９から構成されており、「Type」のフィールド３１にメッセージの種類（経路要求メッセージの場合は「１」）、「Flag 」のフィールド３２に各種通信制御のためのフラグ、「Hop Count」のフィールド３４にホップ数（初期値は「０」）、「RREQ  ID」のフィールド３５に当該経路要求メッセージに付与された固有のＩＤ（以下、これを経路要求メッセージＩＤと呼ぶ）がそれぞれ格納される。
【００１０】
また経路要求メッセージ２の「Destination  Address」のフィールド３６にはその経路要求メッセージの送信先であるノードＤ´のアドレス、「Destination  Sequence  Number」のフィールド３７にはノードＳ´が最後に知ったノードＤ´のシーケンス番号、「Originator  Address」のフィールド３８にはノードＳ´のアドレス、「Originator  Sequence Number」のフィールド３９にはノードＳ´のシーケンス番号がそれぞれ格納される。
【００１１】
そしてこの経路要求メッセージ２を受け取ったノードＡ´〜Ｅ´は、その経路要求メッセージの「Destination Address」のフィールド３６に格納された当該経路要求メッセージ２のあて先に基づいて自分宛の経路要求メッセージ２であるか否かを判断し、自分宛でない場合には「Hop Count」のフィールド３４に格納されたホップ数を「１」増加させたうえでこの経路要求メッセージ２をブロードキャストする。
【００１２】
またこのときそのノードＡ´〜Ｅ´は、自己の経路テーブルにその経路要求メッセージ２の送信元であるノードＳ´のアドレスが存在するか否かを調査し、存在しない場合にはこのノードＳ´への逆向き経路（Reverse Path）に関する各種情報（エントリ）を経路テーブルに挿入する。
【００１３】
ここで、この経路テーブルは、この後そのノード（ここではノードＳ´）を送信先とするデータを受信した場合に参照するためのテーブルであり、図１７に示すように、「Destination Address」、「Destination Sequence Number」、「Hop Count」、「Next Hop」、「Precursor List」、「Life Time」のフィールド５１〜５６から構成される。
【００１４】
そしてノードＡ´〜Ｅ´は、かかる逆向き経路の経路テーブル４への挿入処理時、経路テーブル４の「Destination Address」、「Destination Sequence Number」又は「Hop Count」の各フィールド５１〜５３にその経路要求メッセージ２における「Destination Address」、「Destination Sequence Number」及び「Hop Count」の各フィールド３６、３７、３４のデータをそれぞれコピーする。
【００１５】
またノードＡ´〜Ｅ´は、経路テーブル４の「Next  Hop」のフィールド５４に、その経路要求メッセージ２が格納されたパケットのヘッダに含まれるその経路要求メッセージ２を転送してきた近隣ノードＡ´〜Ｃ´、Ｅ´、Ｓ´のアドレスを格納する。これによりノードＳ´までの逆向き経路が設定されたこととなり、この後ノードＳ´を送信先とするデータが送信されてきた場合には、この経路テーブル４に基づいて、対応する「Next  Hop」のフィールド５4に記述されたアドレスのノードＡ´〜Ｅ´にそのデータが転送される。
【００１６】
さらにノードＡ´〜Ｅ´は、経路テーブル４の「Precursor  List」のフィールド５５にその経路を通信に使用する他のノードＡ´〜Ｅ´のリストを格納し、「Life  Time」のフィールド５６にその経路の生存時間を格納する。かくして、この後このエントリは、この「Life  Time」のフィールド５６に格納された生存時間に基づいて生存の可否が管理され、使用されることなく生存時間が経過した場合には経路テーブル４から削除される。
【００１７】
そして、この後これと同様の処理がアドホックネットワークシステム１内の対応する各ノードＡ´〜Ｅ´において行われ、やがてその経路要求メッセージ２が経路要求メッセージ送信先ノードであるノードＤ´にまで伝達される（図１５（Ｂ））。
【００１８】
この際この経路要求メッセージ２を受信した各ノードＡ´〜Ｅ´は、二重受け取り防止のため、経路要求メッセージ２の経路要求メッセージＩＤ（図１６の「RREQ ID」）をチェックし、過去に同じ経路要求メッセージＩＤの経路要求メッセージ２を受信していた場合にはこの経路要求メッセージ２を破棄する。
【００１９】
なお、経路要求メッセージ２がそれぞれ異なる経路を通ってノードＤ´に複数到達することがあるが、このときノードＤ´は、最初に到達したものを優先し、２番目以降に到達したものは破棄するようになされている。これにより経路要求メッセージの送信元であるノードＳ´から送信先であるノードＤ´までの一意な経路を双方向で作成し得るようになされている。
【００２０】
一方、経路要求メッセージ２を受信したノードＤ´は、図１８に示すような経路応答メッセージ（RREP：Route Reply）６を作成し、これをこの経路要求メッセージ２を転送してきた近隣ノードＣ´、Ｅ´にユニキャストする。
【００２１】
この経路応答メッセージ６は、「Type」、「Flag」、「Reserved」、「Prefix Sz」、「Hop Count」、「Destination Address」、「Destination Sequence Number」、「Originator Address」及び「Lifetime」のフィールド７１〜７９から構成されており、「Type」のフィールド７１にメッセージの種類（経路応答メッセージの場合は「２」）、「Flag 」のフィールド７２に各種通信制御のためのフラグ、「Prefix Sz」のフィールド７４にサブネットアドレス、「Hop Count」のフィールド７５にホップ数（初期値は「０」）がそれぞれ格納される。
【００２２】
また経路応答メッセージ６の「Destination  Address」、「Destination  Sequence Number」及び「Originator  Address」の各フィールド７６〜７８に、それぞれかかる経路要求メッセージ２における「Originator  Address」、「Originator  Sequence  Number」又は「Destination  Address」の各フィールド３８、３９、３６のデータがコピーされる。
【００２３】
そしてこの経路応答メッセージ６を受け取ったノードＣ´、Ｅ´は、その経路応答メッセージ６の「Destination Address」のフィールド７６に記述された当該経路応答メッセージ６のあて先に基づいて自分宛の経路応答メッセージ６であるか否かを判断し、自分宛でない場合には「Hop Count」のフィールド７５に格納されたホップ数を「１」増加させたうえでこの経路応答メッセージ６を、経路要求メッセージ２の転送時に逆向き経路として設定したノード（ノードＳ´用の経路テーブル４（図１７）の「Next Hop」のフィールド５４に記述されたノード）Ａ´〜Ｃ´、Ｅ´にユニキャストする。
【００２４】
またこのときそのノードＡ´〜Ｃ´、Ｅ´、Ｓ´は、自己の経路テーブル４にその経路応答メッセージ６の送信元であるノードＤのアドレスが存在するか否かを調査し、存在しない場合には図１７について上述した場合と同様にしてノードＤまでの逆向き経路のエントリを経路テーブル４に挿入する。
【００２５】
かくして、この後これと同様の処理が対応する各ノードＡ´〜Ｃ´、Ｅ´、において順次行われ、これによりやがて経路応答メッセージ６が経路要求メッセージ２の送信元であるノードＳ´にまで伝達される（図１５（Ｃ））。そしてこの経路応答メッセージ６をノードＳ´が受信すると経路発見プロセスが終了する。
【００２６】
このようにしてＡＯＤＶでは、各ノードＡ´〜Ｅ´、Ｓ´が通信先のノードとの間の通信経路を発見し、設定する。
【特許文献１】米国特許公開第２００２／００４９５６１号明細書
【発明の開示】
【発明が解決しようとする課題】
【００２７】
ところで、複数の経路を作成する経路作成方式が提案されているが、それらの経路制御方式では、どの経路を使用するかについては経路を保持する中間ノードに任せることになり、送信者が全ての経路を選択することはできない。仮に複数経路のうち任意の経路を選択できたとしても、同じ送信元から発信されるデータパケットは全て同じ経路を通ることになり、データパケットの属性毎に異なる経路を利用したり、時間と共に変化するリンク品質を基準に自由に経路を変更したり、という複数経路の効率的な利用ができるわけではない。一般にアドホックネットワークにおける経路は使用されない時間が長いと自動的に削除されてしまうものが多く、ルーティングプロトコルにより複数の経路が設定できたとしても結局使用されないまま経路テーブルから消えてしまう経路が多く存在する。
【００２８】
例えば、複数径路を作成するオンデマンド型のルーティングプロトコルとして、論文「On-demannd Multipath Distance Vector Routing in Ad Hoc Networks（Mahesh K.Marina, Samir R.Das,Department of Electrical & Computer Engineering and Computer Science University of Cincinnati, USA）」で提案されているマルチパスルーティング方式があるが、経路の選択方法については特に規定していない。
【００２９】
以上のような問題が存在することから、比較的信頼の高いと言われている複数経路を設定するルーティングプロトコル、いわゆるマルチパスルーティングプロトコルにおいても、効率的に複数経路を使用することは困難であり、特にユーザの要求やリンクの品質に応じた効率的な経路の利用が非常に困難となる。
【００３０】
本願発明は以上の点を考慮してなされたもので、信頼性の高い通信システム、通信方法、通信端末装置及びその制御方法並びにプログラムを提案しようとするものである。
【課題を解決するための手段】
【００３１】
かかる課題を解決するため本発明においては、第１の通信端末が一又は複数の中継通信端末を介して第２の通信端末と通信するようになされており、当該第１及び第２の通信端末間の通信に使用する経路が複数作成されている通信システム、通信方法、当該通信システムに適用する通信端末装置及びその制御方法並びに当該通信端末装置に実装されるプログラムにおいて、第１の通信端末は、データ送信を希望したアプリケーションの要求又はデータの送信状態に応じて設定された、要求される経路の品質及び経路に設定するＩＤであるフローＩＤを格納した経路要求を送信し、中継通信端末及び第２の通信端末は、当該経路要求を受信すると、複数作成されている経路のうち当該受信した経路要求に格納された当該要求される経路の品質を満たす経路を、当該受信した経路要求に格納されたフローＩＤが付されたデータが送信されてきたときに使用する経路として設定し、第１の通信端末は、定期的な経路の生存時間の更新の際には、経路要求に経路に新規に設定すべき生存時間を格納して送信し、中継通信端末及び第２の通信端末は、当該生存時間が格納された経路要求を受信すると、当該受信した経路要求に格納された生存時間に応じて対応する経路の生存時間を更新するようにした。
【００３２】
この結果この通信システム、通信方法、当該通信システムに適用する通信端末装置及びその制御方法並びに当該通信端末装置に実装されるプログラムによれば、第１及び第２の通信端末間の通信に使用する経路として複数作成されている経路の中から、データ送信を希望したアプリケーションの要求又はデータの送信状態に応じた品質でなる経路を第１及び第２の通信端末間の通信経路として設定できるので、第１及び第２の通信端末間において最適な通信経路での通信を行うことができるとともに、複数作成されている経路が削除されてしまうのを防ぐことができるので、複数経路の効果的な使用が可能となる。
【発明の効果】
【００３３】
以上のように本発明によれば、第１の通信端末が一又は複数の中継通信端末を介して第２の通信端末と通信するようになされており、当該第１及び第２の通信端末間の通信に使用する経路が複数作成されている通信システム、通信方法、当該通信システムに適用する通信端末装置及びその制御方法並びに当該通信端末装置に実装されるプログラムにおいて、第１の通信端末は、データ送信を希望したアプリケーションの要求又はデータの送信状態に応じて設定された、要求される経路の品質及び経路に設定するＩＤであるフローＩＤを格納した経路要求を送信し、中継通信端末及び第２の通信端末は、当該経路要求を受信すると、複数作成されている経路のうち当該受信した経路要求に格納された当該要求される経路の品質を満たす経路を、当該受信した経路要求に格納された上記フローＩＤが付されたデータが送信されてきたときに使用する経路として設定し、第１の通信端末は、定期的な経路の生存時間の更新の際には、経路要求に経路に新規に設定すべき生存時間を格納して送信し、中継通信端末及び第２の通信端末は、当該生存時間が格納された経路要求を受信すると、当該受信した経路要求に格納された生存時間に応じて対応する経路の生存時間を更新するようにしたことにより、第１及び第２の通信端末間の通信に使用する経路として複数作成されている経路の中から、データ送信を希望したアプリケーションの要求又はデータの送信状態に応じた品質でなる経路を第１及び第２の通信端末間の通信経路として設定できるので、第１及び第２の通信端末間において最適な通信経路での通信を行うことができるとともに、複数作成されている経路が削除されてしまうのを防ぐことができるので、複数経路の効果的な使用が可能となり、かくして信頼性の高い通信システム、通信方法、当該通信システムに適用する通信端末装置及びその制御方法並びに当該通信端末装置に実装されるプログラムを実現できる。
【発明を実施するための最良の形態】
【００３４】
以下図面について、本発明の一実施の形態を詳述する。
【００３５】
（１）本実施の形態によるアドホックネットワークシステムの構成
（１−１）本実施の形態によるアドホックネットワークシステムの概略構成
図１において、１０は全体として本実施の形態によるアドホックネットワークシステムを示し、各ノードＡ〜Ｅ、Ｓがデータの通信開始時にそれぞれ複数の経路を作成し、これら経路をその後のデータ通信時において通信障害が発生したときに切り換えて使用するようになされた点を除いて図１５について上述したアドホックネットワークシステム１とほぼ同様の構成を有する。
【００３６】
すなわちこのアドホックネットワークシステム１０の場合、例えばノードＳからノードＤにデータを送信するときには、ノードＳがノードＤを送信先とする経路要求メッセージ２０（図３）をブロードキャストする。
【００３７】
このときノードＳ以外の各ノードＡ〜Ｅは、それぞれ異なる経路を経由して送信されてくる経路要求メッセージ２０を逆向き経路を設定しながら重複して受信し、これらを順次ブロードキャストする。この結果ノードＳからノードＤまでの経路が複数作成される。またこのとき各ノードＡ〜Ｅ、Ｓは、これら作成した各経路を、予め定められた所定の基準に従って優先順位を付けて経路テーブル３０（図７）において管理する。
【００３８】
一方、経路要求メッセージ２０を受信したノードＤは、作成した経路ごとにノードＳを送信先とする経路応答メッセージ２３（図６）をユニキャスト（すなわちマルチキャスト）する。そしてノードＤ以外の各ノードＡ〜Ｃ、Ｅ、Ｓは、経路要求メッセージ２０の転送時に設定した経路と逆向きに送信されてくる経路応答メッセージ２３をそれぞれノードＤまでの逆向き経路を設定しながら重複して受信し、これらを経路要求メッセージ２０の転送時に設定したノードＳまでの各経路にユニキャストする。この結果ノードＤからノードＳまでの経路が複数作成される。またこのとき各ノードＡ〜Ｅ、Ｓは、これら作成した各経路を、予め定められた所定の基準に従って優先順位を付けて経路テーブル３０において管理する。
【００３９】
そして各ノードＡ〜Ｅは、その後ノードＳからデータの送信が開始されて当該データが送信されてくると、自己の経路テーブル３０において管理している複数経路の中から優先順位の最も高い経路を１つ選択し、対応するノードＡ〜Ｅにデータを送信する。これによりノードＳから発信されたデータが予め定められた基準に最も適合した経路を伝ってノードＤに伝達される。
【００４０】
他方、このようなデータの送信時に通信障害が発生すると、その通信障害が発生したノードＡ〜Ｅ、Ｓは、自己の経路テーブル３０において管理している複数経路の中から、現在使用している経路の次に優先順位の高い経路を選択し、使用経路をその経路に切り換えて対応するノードＡ〜Ｅにデータを送信する。
【００４１】
そしてこの新たな経路に選択されたノードＡ〜Ｅは、データが送信されてくると、自己の経路テーブルにおいて管理している複数経路の中から優先順位の最も高い経路を１つ選択し、対応するノードＡ〜Ｅにデータを送信する一方、これ以降の各ノードＡ〜Ｅも同様にして前ノードＡ〜Ｅから順次送信されてくるデータを次ホップのノードＡ〜Ｅに順次転送する。
【００４２】
このようにしてこのアドホックネットワークシステム１０においては、通信障害等が発生したときに予め作成した複数の経路のうちの他の経路に直ちに切り換えて通信を継続することで、突然の通信障害の発生にも実用上十分に対処し得るようになされている。
【００４３】
なお図２に、各ノードＡ〜Ｅ、Ｓに搭載された通信機能ブロック１１のハードウェア構成を示す。
【００４４】
この図２からも明らかなように、各ノードＡ〜Ｅ、Ｓの通信機能ブロック１１は、ＣＰＵ（Central Processing Unit）１２、各種プログラムが格納されたＲＯＭ（Read Only Memory）１３、ＣＰＵ１２のワークメモリとしてのＲＡＭ（Random Access Memory）１４、他のノードＡ〜Ｅ、Ｓとの間で無線通信を行う通信処理部１５及びタイマ１６がバス１７を介して相互に接続されることにより構成される。
【００４５】
そしてＣＰＵ１２は、ＲＯＭ１３に格納されたプログラムに基づいて上述及び後述のような各種処理を実行し、必要時には経路要求メッセージ２０又は経路応答メッセージ２３等の各種メッセージや、ＡＶ（Audio Video）データの各種データを通信処理部１５を介して他のノードＡ〜Ｅ、Ｓに送信する。
【００４６】
またＣＰＵ１２は、通信処理部１５を介して受信した他のノードＡ〜Ｅ、Ｓからの経路要求メッセージ２０に基づいて後述のような経路テーブル３０を作成し、これをＲＡＭ１４に格納して保持する一方、この経路テーブル３０に登録された各ノードＡ〜Ｅ、Ｓまでの経路エントリの生存時間等をタイマ１６のカウント値に基づいて管理する。
【００４７】
（１−２）経路発見プロセスにおける各ノードの具体的な処理内容
次に、この経路発見プロセスにおける各ノードＡ〜Ｅ、Ｓの具体的な処理内容について説明する。
【００４８】
上述のようにこのアドホックネットワークシステム１０では、各ノードＡ〜Ｅが経路要求メッセージ２０を重複して受信することにより、その経路要求メッセージ２０の送信元であるノードＳまでの経路を複数作成する。
【００４９】
しかしながら、このようにノードＡ〜Ｅが異なる経路を介して伝達されてきた同じ経路要求メッセージを重複して受け取るようにした場合、経路要求メッセージ２０がループして、これを中継するノードＡ〜Ｅが同じ経路要求メッセージ２０を何度も受け取る事態が生じるおそれがある。
【００５０】
そこでこのアドホックネットワークシステム１０では、図１６との対応部分に同一符号を付した図３に示すように、従来の経路要求メッセージ２（図１６）を拡張して中継ノードリスト２１のフィールド（Relay Node Address ♯１〜♯ｎ）２２を設けるようにし、その経路要求メッセージ２０を中継したノードＡ〜Ｅがこのフィールド２２を順次拡張しながら当該拡張したフィールド２２内に自己のアドレスを順次記述するようにしている。
【００５１】
そしてノードＡ〜Ｅは、経路要求メッセージ２０を受信すると、その経路要求メッセージＩＤ（RREQ ID）を調べ、過去に同じ経路要求メッセージＩＤが付与された経路要求メッセージを受信したことがあり、かつその中継ノードリスト２１に自己のアドレスが存在する場合には、その経路要求メッセージ２０を破棄する。
【００５２】
これによりこのアドホックネットワークシステム１０においては、経路要求メッセージ２０がノードＡ〜Ｅ間でループするのを有効かつ確実に防止することができ、かくして各ノードＡ〜ＥがノードＳまでの複数の経路を適切に作成することができるようになされている。
【００５３】
ここで、このような処理は図４に示す経路要求メッセージ受信処理手順ＲＴ１に従ったＣＰＵ１２の制御のもとに行われる。実際上、各ノードＡ〜ＥのＣＰＵ１２は、経路要求メッセージ２０を受信すると、この経路要求メッセージ受信処理手順ＲＴ１をステップＳＰ０において開始し、続くステップＳＰ１において、その経路要求メッセージ２０の「RREQ ID」のフィールド３５に格納された経路要求メッセージＩＤを読み出し、これを経路要求メッセージ２０の受信履歴としてＲＡＭ１４に格納すると共に、当該受信履歴に基づいて、同じ経路要求メッセージＩＤが付与された経路要求メッセージ２０を過去に受信したことがあるか否かを判断する。
【００５４】
そしてＣＰＵ１２は、このステップＳＰ１において否定結果を得るとステップＳＰ５に進み、これに対して肯定結果を得ると、ステップＳＰ２に進んで、その経路要求メッセージ２０の中継ノードリスト２１に自己のアドレスが存在するか否かを判断する。
【００５５】
ここでこのステップＳＰ２において肯定結果を得ることは、そのノードＡ〜Ｅがその経路要求メッセージ２０自体を過去に中継したことがあることを意味し、かくしてこのときＣＰＵは、ステップＳＰ３に進んでこの経路要求メッセージ２０を破棄し、この後ステップＳＰ９に進んでこの経路要求メッセージ受信処理手順ＲＴ１を終了する。
【００５６】
これに対してステップＳＰ２において否定結果を得ることは、そのノードＡ〜Ｅが、他の経路を経由して送信されてきた同じ経路要求メッセージＩＤをもつ経路要求メッセージ２０を過去に中継したことがあるが、その経路要求メッセージ２０自体は中継したことがないことを意味し、かくしてこのときＣＰＵ１２は、ステップＳＰ４に進んでその経路要求メッセージ２０の中継ノードリスト２１に自己のアドレスを加える。
【００５７】
またＣＰＵ１２は、この後ステップＳＰ５に進んで、その経路要求メッセージ２０が経由してきた経路の逆向き経路のエントリをノードＳまでの経路として後述する経路エントリ挿入処理手順ＲＴ２（図８）に従って新たに自己の経路テーブル３０（図７）に挿入する。
【００５８】
さらにＣＰＵ１２は、この後ステップＳＰ６に進んで、その経路要求メッセージ２０の「Destination Address」のフィールド３６に記述された当該経路要求メッセージ２０のあて先に基づいて、当該経路要求メッセージ２０が自分宛のものであるか否かを判断する。
【００５９】
そしてＣＰＵ１２は、このステップＳＰ６において否定結果を得ると、ステップＳＰ８に進んで、当該経路要求メッセージ２０の「Hop Count」のフィールド３４に格納されたホップ数を「１」増加させたうえで、この経路要求メッセージ２０をブロードキャストし、この後ステップＳＰ９に進んでこの経路要求メッセージ受信処理手順ＲＴ１を終了する。
【００６０】
これに対してＣＰＵ１２は、ステップＳＰ６において肯定結果を得ると、ステップＳＰ７に進んでその経路要求メッセージ２０に対する経路応答メッセージ２３（図６）を生成し、これを自己の経路テーブル３０に基づいて対応するノードＣ、Ｅにユニキャストした後、ステップＳＰ９に進んでこの経路要求メッセージ受信処理手順ＲＴ１を終了する。
【００６１】
なおこの実施の形態の場合、かかる経路要求メッセージ受信処理手順ＲＴ１のステップＳＰ７において、ＣＰＵ１２は、同じ経路要求メッセージＩＤをもつ経路要求メッセージ２０に対する応答として、同じＩＤ（以下、これを経路応答メッセージＩＤ（RREP ID）と呼ぶ）を付与した経路応答メッセージ２３を生成するようになされている。
【００６２】
すなわち、経路応答メッセージは、通常、経路要求メッセージの伝達時に設定された逆向き経路を通るようにユニキャストで送信されるが、本実施の形態においては逆向き経路が複数存在するため、経路応答メッセージ２３を逆向き経路の数だけコピーしてマルチキャストで送信することとなる。
【００６３】
この場合において、例えば図５に示すように、ノードＳから発信された経路要求メッセージ２０がノードＤに３つの経路（第１〜第３の経路ＲＵ１〜ＲＵ３）を経て到達した場合、ノードＤは、第１の経路ＲＵ１を経て到達した経路要求メッセージ２０に対する応答としてノードＣに、第２の経路ＲＵ２を経て到達した経路要求メッセージ２０に対する応答としてノードＥに、第３の経路ＲＵ３を経て到達した経路要求メッセージ２０に対する応答としてノードＥにそれぞれ経路応答メッセージ２３をユニキャストで送信するが、このときノードＥはノードＤを送信先（Destination Address）とする逆向き経路を２回設定してしまうことなる。これと同様の事態がノードＡやノードＳにおいても発生する。
【００６４】
そこで、このアドホックネットワークシステム１０においては、図１８との対応部分に同一符号を付した図６に示すように、従来の経路応答メッセージ６（図１８）を拡張して、「RREP ID」のフィールド２４を設け、経路要求メッセージ２０を受け取ったノードＤが経路応答メッセージ２３を返信する際、経路要求メッセージにおける経路要求メッセージＩＤと同様の経路応答メッセージＩＤをこのフィールド２４に格納するようになされている。
【００６５】
そして、経路応答メッセージ２３を受け取ったノードＡ〜Ｃ、Ｅ、Ｓは、過去に同じ経路応答メッセージＩＤの経路応答メッセージ２３を受信しており、かつノードＳまでの逆向き経路が既に経路テーブル３０に登録されている場合にはその経路応答メッセージ２３を破棄し、これ以外の場合に図８について後述する経路エントリ挿入処理手順ＲＴ２に従ってその経路応答メッセージ２３を発信したノードＤまでの経路を自己の経路テーブル３０に挿入する。
【００６６】
このようにしてこのアドホックネットワークシステム１０においては、複数経路を作成する場合に生じ得る経路応答メッセージ２３を送信したノード（ノードＤ）までの逆向き経路の多重設定を有効に防止し、かかる冗長さを確実に防止し得るようになされている。
【００６７】
（１−３）各ノードＡ〜Ｅ、Ｓにおける複数経路の管理方法
上述のようにこのアドホックネットワークシステム１０においては、各ノードＡ〜Ｅ、Ｓは、データの通信開始時にデータの送信元であるノードＳ及び当該データの送信先であるノードＤ間の経路を複数作成する。そして各ノードＡ〜Ｅ、Ｓは、これら作成した経路を図１７との対応部分に同一符号を付した図７に示す経路テーブル３０を用いて管理している。
【００６８】
この経路テーブル３０は、「Destination  Address」、「Destination  Sequence  Number」、「Minimum  Hop  Count」、「Maximum  Hop  Count」、「Route  List」及び「Precursor  List」のフィールド５１、５２、３１１〜３１３、５５から構成されるものであり、「Route  List」のフィールド３１３に上述のような経路発見プロセスにより発見された送信先ノードＡ〜Ｅ、Ｓまでの各経路にそれぞれ対応させて作成された１又は複数の経路リスト３２が格納され、「Minimum  Hop  Count」及び「Maximum  Hop  Count」の各フィールド３１１、３１２には、それぞれ当該経路発見プロセスにより発見された経路のうち最もホップ数が少ない経路の当該ホップ数又は最もホップ数が多い経路の当該ホップ数が格納される。
【００６９】
一方、経路リスト３２は、「Hop  Count」、「Next  Hop」、「Life  Time」及び「Link  Quality」のフィールド３３１〜３３４を有し、「Hop  Count」のフィールド３３１にその経路における送信先ノードＡ〜Ｅ、Ｓまでのホップ数、「Next  Hop」のフィールド３３２にその経路における次ホップ、「Life  Time」のフィールド３３３にその経路（次ホップ）の生存時間、「Link  Quality」のフィールド３３４にその経路の品質が格納されている。そしてこの経路リスト３２は、新たな経路が発見されるごとに作成されて経路テーブル３０の対応する「Route  List」のフィールド３１３に格納される。
【００７０】
この場合、各経路リスト３２の「Link  Quality」のフィールド３３４には、経路の品質として、その経路の電波状況やパケットエラー率等の情報が記述される。そして、この経路の品質に関する情報はその経路が使用されるごとに順次更新される。
【００７１】
また各経路リスト３２は、「Life  Time」のフィールド３３３に記述された生存時間によって生存の可否が管理され、対応する経路が使用されることなく生存時間が経過した場合には、その経路リスト３２が経路テーブル３０から自動的に削除される。
【００７２】
さらに各経路リスト３２には、「Next  List」のフィールド３３５が設けられており、対応する経路の次の優先順位を有する経路と対応する経路リストへ３２のポインタがこのフィールド３３５に記述される。これにより必要時にはこのポインタに基づいて経路リスト３２を優先順位に従って検索できるようになされている。
【００７３】
なお、この実施の形態においては、一般的に最短ホップで送信先ノードＡ〜Ｅ、Ｄに到達できる経路が最も性能が良いと考えられることから、経路の優先順位をホップ数が少ない順に付与するようになされている。
【００７４】
ここで、各ノードＡ〜Ｅ、ＳのＣＰＵ１２は、上述のような経路テーブル３０への新たな経路エントリの挿入処理を図８に示す経路エントリ挿入処理手順ＲＴ２に従って実行する。
【００７５】
すなわちＣＰＵ１２は、経路要求メッセージ２０（図３）又は経路応答メッセージ２３（図６）を受信すると、この経路エントリ挿入処理手順ＲＴ２をステップＳＰ１０において開始し、続くステップＳＰ１１において、自己の経路テーブル３０にその経路要求メッセージ２０の「Originator Address」のフィールド３８（図３）又は経路応答メッセージ２３の「Originator Address」のフィールド７８（図６）に記述された当該経路要求メッセージ２０又は経路応答メッセージ２３の送信元ノードであるノードＳ又はノードＤのアドレス（Originator Address）が存在するか否かを判断する。
【００７６】
このステップＳＰ１１において否定結果を得ることは、そのノードＡ〜Ｅ、ＳにおいてノードＳ又はノードＤまでの経路が未だ自己の経路テーブル３０に登録されていないことを意味し、かくしてこのときＣＰＵ１２は、ステップＳＰ１２に進んで、通常の経路エントリ挿入処理を実行する。
【００７７】
具体的には、その経路要求メッセージ２０又は経路応答メッセージ２３の「Originator  Address」及び「Originator  Sequence  Number」をそれぞれ経路テーブルの対応する「Destination  Address」又は「Destination  Sequence  Number」のフィールド５１、５２にコピーし、その経路要求メッセージ２０又は経路応答メッセージ２３の「Hop  Count」を経路テーブル３０の「Minimum  Hop  Count」及び「Maximum  Hop  Count」の各フィールド３１１、３１２にそれぞれコピーする。
【００７８】
またＣＰＵ１２は、その経路要求メッセージ２０又は経路応答メッセージ２３の「Hop  Count」を経路リスト３２の「Hop  Count」のフィールド３３１にコピーし、当該経路要求メッセージ２０又は経路応答メッセージ２３が格納されたパケットのヘッダに含まれる当該経路要求メッセージ２０を送信してきた隣接ノードＡ〜Ｅ、Ｓのアドレスを経路リスト３２の「Next  Hop」のフィールド３３２にコピーし、さらに予め定められた生存時間を「Lifetime」のフィールド３３３に記述する一方、そのときの経路要求メッセージ２０又は経路応答メッセージ２３の受信状態に基づき検出されたその経路の電波状況やパケットエラー率等の品質を「Link  Quality」のフィールド３３４に記述するようにして経路リスト３２を作成し、これを経路テーブル３０の「Route  List」のフィールド３１３に格納する。
【００７９】
そしてＣＰＵ１２は、このようにしてステップＳＰ１２において通常の経路エントリ挿入処理によりノードＳ又はノードＤまでの経路を自己の経路テーブル３０に登録すると、この後ステップＳＰ２３に進んでこの経路エントリ挿入処理手順ＲＴ２を終了する。
【００８０】
これに対してステップＳＰ１１において肯定結果を得ることは、その経路要求メッセージ２０又は経路応答メッセージ２３の送信元であるノードＳ又はノードＤまでの１又はそれ以上の経路が既に自己の経路テーブル３０に登録されていることを意味し、かくしてこのときＣＰＵ２１は、ステップＳＰ１３に進んで、経路テーブル３０を検索することにより、その経路要求メッセージ２０又は経路応答メッセージ２３を送信してきた隣接ノードＡ〜Ｅ、Ｓを「Next Hop」とする対応する経路リスト３２が存在するか否かを判断する。
【００８１】
そしてＣＰＵ１２は、このステップＳＰ１３において肯定結果を得ると、ステップＳＰ２１に進み、これに対して否定結果を得るとステップＳＰ１４に進んで、経路リスト数が１つの「Destination Address」に対して登録できる最大数であるか否かを判断する。そしてＣＰＵ１２は、このステップＳＰ１４において否定結果を得るとステップＳＰ１６に進み、これに対して肯定結果を得るとステップＳＰ１５に進んで、その「Destination Address」に対応する経路リスト３２の中から時間的に最も古い（すなわち作成後、最も時間が経過した）経路リスト３２を削除した後ステップＳＰ１６に進む。
【００８２】
またＣＰＵ１２は、ステップＳＰ１６において、その経路要求メッセージ２０又は経路応答メッセージ２３の「Hop Count」のフィールド３４（図３）、７４（図６）に記述されているホップ数が経路テーブル３０の対応する「Maximum Hop Count」のフィールド３１２に記述されたホップ数（最大ホップ数）よりも大きいか否かを判断する。そしてＣＰＵ１２は、このステップＳＰ１６において否定結果を得るとステップＳＰ１８に進み、これに対して肯定結果を得るとステップＳＰ１７に進んで、経路テーブル３０の対応する「Maximum Hop Count」のフィールド３１２に記述されているホップ数を、その経路要求メッセージ２０又は経路応答メッセージ２３の「Hop Count」のフィールド３４（図３）、７４（図６）に記述されているホップ数に書き換えた後ステップＳＰ１８に進む。
【００８３】
さらにＣＰＵ１２は、ステップＳＰ１８において、その経路要求メッセージ２０又は経路応答メッセージ２３の「Hop Count」のフィールド３４（図３）、７４（図６）に記述されているホップ数が経路テーブル３０の対応する「Minimum Hop Count」のフィールド３１１に記述されたホップ数（最小ホップ数）よりも小さいか否かを判断する。そしてＣＰＵ１２は、このステップＳＰ１８において否定結果を得るとステップＳＰ２０に進み、これに対して肯定結果を得るとステップＳＰ１９に進んで、経路テーブル３０の対応する「Minimum Hop Count」のフィールド３１１に記述されているホップ数を、その経路要求メッセージ２０又は経路応答メッセージ２３の「Hop Count」のフィールド３４（図３）、７４（図６）に記述されているホップ数に書き換えた後ステップＳＰ２０に進む。
【００８４】
続いてＣＰＵ１２は、ステップＳＰ２０において、ステップＳＰ１２について上述したのと同様にしてその経路に対応する経路リスト３２を作成し、これを経路テーブル３０の対応する「Route List」のフィールド３１３に登録する。またこのときＣＰＵ１２は、同じ「Destination Address」の経路リスト３２の優先順位を各経路リスト３２の「Hop Count」に基づいて定め、これに応じてこれら対応する経路リスト３２の「Next List」のフィールド３３５を、次の優先順位をもつ経路と対応する経路リスト３２へのポインタに必要に応じて書き換える。
【００８５】
次いでＣＰＵ１２は、ステップＳＰ２１に進んで、ステップＳＰ２０において新たに挿入した経路リスト３２の「Lifetime」を更新すると共に、この後ステップＳＰ２２に進んで当該経路リスト３２の「Link Quality」をそのとき検出した対応する経路の品質に応じて更新し、さらにステップＳＰ２３に進んでこの経路エントリ挿入処理手順ＲＴ２を終了する。
【００８６】
このようにして各ノードＡ〜Ｅ、Ｓは、新たな経路を自己の経路テーブル３０において管理し得るようになされている。
【００８７】
（１−４）データ通信に関する各ノードＡ〜Ｅ、Ｓの具体的な処理内容
経路要求メッセージ２０の送信元であるノードＳが、当該経路要求メッセージ２０の送信先であるノードＤから、当該経路要求メッセージ２０に対する経路応答メッセージ２３を受け取ると、そのノードＳからノードＤまでの経路が設定されたことになる。
【００８８】
本実施の形態においては、このとき設定された経路数分の経路応答メッセージ２３をノードＳが受信することになるが、最初に受け取った経路応答メッセージ２３が経由した経路が必ずしもホップ数が少なく品質の高い経路とは限らない。
【００８９】
そこで、このアドホックネットワークシステム１０において、経路要求メッセージ２０の送信元であるノードＳは、最初の経路応答メッセージ２３を受信してから予め定められた所定時間が経過し又は予め定められた所定数の経路応答メッセージ２３を受信するのを待ち、受信した各経路応答メッセージ２３がそれぞれ経由した経路のうち、ホップ数が最も少ない経路を選択して、その経路を通じて経路要求メッセージ２３の送信先であるノードＤとの通信を開始するようになされている。
【００９０】
なおこのときノードＳは、経路応答メッセージ２３に含まれる経路応答メッセージＩＤに基づいて、そのとき到達した経路応答メッセージ２３が同じノードＤから同じ時間に送信されたものであるか否かを判断するようになされ、これにより誤った経路の選択が行われるのを未然に防止し得るようになされている。
【００９１】
ここでこのようなノードＳにおける処理は、図９に示す経路応答メッセージ受信処理手順ＲＴ３に従ったＣＰＵ１２（図２）の制御のもとに行われる。すなわちノードＳのＣＰＵ１２は、経路要求メッセージ２０を送信後、最初の経路応答メッセージ２３を受信するとこの経路応答メッセージ受信処理手順ＲＴ３をステップＳＰ３０において開始し、続くステップＳＰ３１において、最初の経路応答メッセージ２３を受信してから予め定められた所定時間が経過したか否かを判断する。
【００９２】
そしてＣＰＵ１２は、このステップＳＰ３１において否定結果を得るとステップＳＰ３２に進んで新たな経路応答メッセージ２３を受信したか否かを判断し、このステップＳＰ３２において否定結果を得るとステップＳＰ３１に戻る。
【００９３】
これに対してＣＰＵ１２は、ステップＳＰ３２において肯定結果を得るとステップＳＰ３３に進んで、最初に受信した経路応答メッセージ２３を含めて所定数の経路応答メッセージ２３を受信したか否かを判断する。
【００９４】
そしてＣＰＵ１２は、このステップＳＰ３３において否定結果を得るとステップＳＰ３１に戻り、この後ステップＳＰ３２又はステップＳＰ３３において肯定結果を得るまでステップＳＰ３１−ＳＰ３２−ＳＰ３３−ＳＰ３１のループを繰り返す。
【００９５】
そしてＣＰＵ１２は、やがて最初の経路応答メッセージ２３を受信してから所定時間が経過し、又は所定数の経路応答メッセージ２３を受信することにより、ステップＳＰ３２又はステップＳＰ３３において肯定結果を得ると、ステップＳＰ３４に進んでこの経路応答メッセージ受信処理手順ＲＴ３を終了し、この後経路テーブル３０の対応する「Route List」に登録されている最も優先順位の高い経路リスト３２の「Next Hop」のフィールド３３２（図７）にアドレスが登録されているノードＡ、Ｂにデータをユニキャストで送信し始める。
【００９６】
一方、このようにしてノードＳからのデータの送信が開始されると、このデータが送信されてきたノードＡ〜Ｅは、自己の経路テーブル３０を検索して当該データの送信先ノード（すなわちノードＤ）までの経路のエントリを検出すると共に、これにより検出された対応する経路リスト３２の中から最も優先順位の高い経路の経路リスト３２における「Next Hop」のフィールド３３２（図７）に登録されたノードＡ〜Ｅに対して当該データをユニキャストする。
【００９７】
例えば図１０のように各ノードＡ〜Ｅ、Ｓにおいて経路の設定が完了した状態において、例えばノードＳからノードＡにデータが送信された場合、ノードＡは、ノードＤを送信先（Destination Address）とする経路リスト３２として、ノードＣを「Next Hop」とする経路リストと、ノードＢを「Next Hop」とする経路リスト３２とを有しているが、ノードＣを「Next Hop」とする経路リスト３２の方がホップ数が少ないため優先順位が高く設定される。従って、ノードＡは、ノードＳから送信されてきたデータをユニキャストでノードＣに転送することとなる。
【００９８】
同様に、ノードＣは、ノードＤを送信先とする経路リスト３２として、ノードＤを「Next Hop」とする経路リストと、ノードＥを「Next Hop」とする経路リストとを有しているが、ノードＤを「Next Hop」とする経路リスト３２の方がホップ数が少ないため優先順位が高く設定される。従って、ノードＣは、ノードＡから送信されてきたデータをユニキャストでノードＤに転送する。
【００９９】
なおこの例の場合、ノードＳは、ノードＤを送信先とする経路リスト３２として、ノードＡを「Next Hop」とする経路リスト３２と、ノードＢを「Next Hop」とする経路リスト３２とを有しており、いずれの経路リスト３２も「Hop Count」が同じであるが、このような場合にはノードＳはその経路のホップ数以外の予め定められた要素（例えば経路の品質（Link Quality））を考慮して、最適な経路を選択するようになされている。
【０１００】
一方、ノードＳ及びノードＤ間の通信開始後、そのデータが経由する経路を構成するいずれかのノードＡ〜Ｅ、Ｓ間において通信障害が発生すると、送信側のノードＡ〜Ｃ、Ｅ、Ｓ間は、自己の保有する経路テーブル３０に基づいて、そのデータの送信先であるノードＤを「Destination Address」とするエントリに含まれるいくつかの経路リスト３２の中から、そのときまで使用していた経路の次の優先順位を有する経路の経路リスト３２を新たに選択し、その後はこの経路リスト３２の「Next Hop」として記述されたノードＡ〜Ｅにデータを送信する。
【０１０１】
例えば図１０の例において、ノードＡ及びノードＣ間において通信障害が発生した場合、ノードＡは、ノードＣを経由する経路の次の優先順位が付与されたノードＢを経由する経路を選択し、その経路リスト３２の「Next Hop」に記述されたノードＢに対してデータを転送することとなる。
【０１０２】
ここで、このような各ノードＡ〜Ｃ、Ｅ、Ｓにおける処理は、通信処理手順ＲＴ１４に従ったＣＰＵ１２の制御のもとに行われる。すなわち各ノードＡ〜Ｃ、Ｅ、ＳのＣＰＵ１２は、データの送信を開始し又はデータが送信されてくるとこの通信処理手順ＲＴ１４をステップＳＰ１４０において開始し、続くステップＳＰ１４１において、送信されてきたデータを優先順位が最も高い経路の経路リスト３２における「Next Hop」のフィールド３３２（図７）に記述されたノードＡ〜Ｅにユニキャストする。
【０１０３】
続いてＣＰＵ１２は、ステップＳＰ１４２に進んで、かかる通信相手のノードＡ〜Ｅとの間の電波状況等に基づいて当該ノードＡ〜Ｅとの間で通信障害が発生したか否かを判断する。
【０１０４】
そしてＣＰＵ１２は、このステップＳＰ１４２において否定結果を得るとステップＳＰ１４３に進み、前のノードＡ〜Ｃ、Ｅ、Ｓから送信されてくるデータの送信状況に応じてデータの送信元（ノードＳ）及び送信先（ノードＤ）間における通信が終了したか否かを判断する。
【０１０５】
ＣＰＵ１２は、このステップＳＰ１４３において否定結果を得るとステップＳＰ１４１に戻り、この後ステップＳＰ１４２又はステップＳＰ１４３において肯定結果を得るまでステップＳＰ１４１−ＳＰ１４２−ＳＰ１４３−ＳＰ１４１のループを繰り返す。
【０１０６】
そしてＣＰＵ１２は、やがてステップＳＰ１４２において肯定結果を得ると、ステップＳＰ１４４に進んで、そのときまで使用していた経路リスト３２の「Next List」のフィールド３３５（図７）に格納されたポインタを手がかりに次の優先順位を有する経路の経路リスト３２を検索し、使用する経路リスト３２をその経路リスト３２に切り換えた後ステップＳＰ１４１に戻る。かくしてＣＰＵ１２は、この後ステップＳＰ１４４において選択した経路リスト３２の「Next Hop」のフィールド３３２（図７）に記述されたノードＡ〜Ｅに対してデータをユニキャストすることとなる。
【０１０７】
そしてＣＰＵ１２は、この後ステップＳＰ１４３において肯定結果を得ると、ステップＳＰ１４５に進んで、この通信処理手順ＲＴ１４を終了する。
【０１０８】
（１−５）経路アクティベーションパケットを用いたアクティベート方法
次に、このアドホックネットワークシステム１０における経路アクティベーションパケットを用いたアクティベート（正規経路化）方法について説明する。
【０１０９】
上述のようにこのアドホックネットワークシステム１０では、従来の経路要求メッセージ２（図１６）を拡張して設けた中継ノードリスト２１に基づいて、経路要求メッセージ２０（図３）がこれを中継するノードＡ〜Ｃ、Ｅ間においてループするのを防止しながら各ノードＡ〜Ｅ、Ｓにおいて複数経路を作成する。
【０１１０】
このような複数経路を作成する経路制御方式では、どの経路を使用するかについては経路を保持する中継ノードＡ〜Ｃ、Ｅに任せることとなり、経路要求メッセージ２０の送信元のノードＳが経路を選択することができない。仮に複数経路のうち任意の経路を選択できたとしても、同じ送信元のノードＳから発信されるデータパケットは全て同じ経路を通ることとなるため、データの属性（テキストデータ、コマンドデータ、ＡＶデータ等）毎に異なる経路を利用したり、時間と共に変化するリンク品質を基準に自由に経路を変更したり、という複数経路の効率的な利用を図ることが困難となる。
【０１１１】
そこで、このアドホックネットワークシステム１０においては、上述のようにして各ノードＡ〜Ｅ、Ｓが複数経路を作成後、データの送信元であるノードＳがデータの送信先であるノードＤまでの通信経路として使用する経路に対する要求を格納したパケット（以下、これを経路アクティベーションパケットと呼ぶ）を発信する一方、これを受信した各ノードＡ〜Ｅが、作成した複数経路の中からこの経路アクティベーションパケットに格納された要求に応じて使用経路を設定したり、経路に対する各種設定を行ようになされ、これにより各ノードＡ〜Ｅ、Ｓがそれぞれ作成した複数経路の中からデータ送信元であるノードＳの要求に応じた最適な経路を選択的に使用させることができるようになされている。
【０１１２】
図１１は、このような経路アクティベーションパケット４０の構成を示すものである。この図１１からも明らかなように、経路アクティベーションパケット４０は、固定的な「Type」、「Flag」、「Reserved」、「Hop Count」、「Message ID」、「Destination Address」及び「Originator Address」のフィールド４１１〜４１７と、使用経路に対する要求に応じて付加又は削除される可変的な「Required Link Quality」、「Flow ID」、「Lifetime」及び「Requirements」のフィールド４１８〜４１１１とから構成される。
【０１１３】
そして、この経路アクティベーションパケット４０の「Type」のフィールド４１１には、このパケットが経路アクティベーションパケット（ＲＡＣＴ）又はそれに対する返答である後述の経路アクティベーション返答パケット（ＲＡＣＴ−ＡＣＫ）のいずれであるかを示すコードが格納される。
【０１１４】
また「Flag」のフィールド４１２には、デバッギング等に使用するためのフラグが格納される。経路アクティベーションパケット４０は、データの送信元から送信先に向けて発信され、原則として、これに対する返答である経路アクティベーション返答パケットが後述のようにこのデータの送信先から送信元に向けて発信されるが、予めフラグを設定しておくことで、いずれか一方向のみ経路を設定することもできる。
【０１１５】
「Hop Count」のフィールド４１４にはホップ数（初期値は「０」）が格納され、「Message ID」のフィールド４１５には、その経路アクティベーションパケット４０に付与されたＩＤ（以下、これをメッセージＩＤと呼ぶ）が格納される。なおこのメッセージＩＤは、１つの経路アクティベーションパケットに対して固有のものであり、再送しても同じものが使用される。
【０１１６】
さらに経路アクティベーションパケット４０の「Destination Address」のフィールド４１６には、この経路アクティベーションパケット４０のあて先ノードのアドレスが格納され、「Originator Address」には、この経路アクティベーションパケット４０を発信したノードのアドレスが格納される。
【０１１７】
一方、経路アクティベーションパケット４０の「Required Link Quality」のフィールド４１８には、通信経路として要求される経路の品質について閾値として設定された数値が格納され、「Flow ID」のフィールド４１９には、経路に設定するＩＤ（以下、これをフローＩＤと呼ぶ）が格納される。このフローＩＤは、同じ送信先でも異なるデータフローは異なる経路を使用して効率的に転送する等の用途に使用される。
【０１１８】
また経路アクティベーションパケット４０の「Lifetime」のフィールド４１１０には、その経路に設定すべき生存時間が格納され、不使用かつ消去間近にある経路の生存時間を延長させるために使用される。さらに「Requirements」フィールド４１１１には、経路に対する自由な要求を記述するために使用される。
【０１１９】
なお、これら「Required Link Quality」、「Flow ID」、「Lifetime」及び「Requirements」の各フィールド４１８〜４１１１は、通信経路として要求される条件に応じて任意に付加又は省略される。因みに、以下においては、「Required Link Quality」、「Flow ID」、「Lifetime」及び「Requirements」の各フィールド４１８〜４１１１にそれぞれ格納される使用経路に対する要求内容をまとめて経路要求パラメータと呼ぶものとする。
【０１２０】
この経路要求パラメータの値は、データ送信元ノードにおけるデータ送信を希望したアプリケーションの要求に応じて、又は経路アクティベーションパケット４０の再送の頻度が高い場合や伝送時のパケットロス率が高い場合などのデータの送信状態などに基づいて設定される。
【０１２１】
（１−６）経路アクティベーションパケット４０の適用例
次に、かかる経路アクティベーションパケット４０の適用例について、一定の経路品質を有する経路のみをアクティベートする場合を例に説明する。なお、以下においては、経路の品質を、無線の電波状況やエラーレートなどを抽象化した値であると定義する。つまり数値が高い場合は経路の品質が良く、エラーレートが低い経路であるものとする。
【０１２２】
データの送信元であるノードＳは、まず最初に、経路に対する要求を決定する。例えば経路の品質について言えば、統計的な情報から満足できる通信が行える環境を事前に調査し、フローＩＤなどその他の複雑な情報についてはアプリケーションからの要求を受け入れるような当該アプリケーションとのインターフェースを用意しておくことで要求を取得する。
【０１２３】
そしてノードＳは、例えばデータ送信を希望するアプリケーションから『経路品質が閾値「５０」以上の経路のみをアクティベーションしろ』という要求があった場合、経路アクティベーションパケット４０の「Required Link Quality」のフィールド４１５に「５０」という数値を格納し、さらに「Destination Address」のフィールド４１６にデータの送信先であるノードＤのアドレスを格納すると共に、「Originator Address」のフィールド４１7に自己のアドレスを格納するようにして経路アクティベーションパケット４０を生成し、これを発信する。
【０１２４】
一方、この経路アクティベーションパケット４０を受信した他のノードＡ〜Ｅは、そのあて先（「Destination Address」のフィールド４１６にアドレスが格納されたノードであって、ここではノードＤ）への経路エントリが自己の経路テーブル３０（図７）に存在するか否かを調べ、存在しない場合には経路アクティベーションエラーを当該経路アクティベーションパケット４０の送信元のノードＳに送信する。
【０１２５】
これに対してノードＡ〜Ｅは、かかる経路エントリが経路テーブル３０に存在する場合には、そのあて先への経路リスト３２（図７）を検索することにより、経路の品質（「Link Quality」）が経路アクティベーションパケット４０の「Required Link Quality」のフィールド４１５に格納された閾値（「５０」）を超えている経路が存在するか否かを調べる。
【０１２６】
そしてノードＡ〜Ｅは、存在しない場合にはノードＳに対して経路アクティベーションエラーを送信する。なお、この経路アクティベーションエラーは、例えばＩＰ層のＩＣＭＰメッセージなどで代用することが可能である。
【０１２７】
これに対してノードＡ〜Ｅは、かかる閾値を超える品質を有する経路が１つでも存在する場合、その経路の経路リスト３２の「Next Hop」のフィールド３２２に記述されたノードＡ〜ＥをノードＳからノードＤへのデータ送信時の正規の経路として設定する。
【０１２８】
因みに、何をもって正規の経路としてみなすかは、このアドホックネットワークシステム１０の経路制御方式に依存する。例えば、複数の経路をもっているが、通常は１つだけ「Valid」のフラグを設定してあるという方式では、該当する経路のみを「Valid」にして残りを「Invalid」にすることが経路をアクティベーションすることになる。このアドホックネットワークシステム１０においては、経路に優先順位が設定されているため、その経路の優先順位を最も高いものとすることで、正規の経路として設定する。
【０１２９】
そしてノードＡ〜Ｅは、このような経路のアクティベーションが完了すると、経路アクティベーションパケット４０のあて先が自己でない限り、この経路アクティベーションパケット４０「Hop Count」のフィールド４１４に格納されたホップ数を「１」増加させたうえでこれをアクティベーションされた経路の次ホップのノードＡ〜Ｅに向けて転送する。
【０１３０】
かくして、この後これと同様の処理が対応する各ノードＡ〜Ｃ、Ｅにおいて順次行われ、これによりやがてこの経路アクティベーションパケット４０がそのあて先であるノードＤにまで伝達される。
【０１３１】
そして、このようにして経路アクティベーションパケット４０を受け取ったノードＤは、上述のような経路のアクティベーションを行った後、その経路アクティベーションパケット４０の「Type」のフィールド４１１に格納されたコードを経路アクティベーション応答パケットのコードに変更し、「Destination Address」のフィールド４１６に格納されたアドレスを経路アクティベーションパケット４０の送信元であるノードＳのアドレスに変更し、かつ「Originator Address」のフィールド４１７に格納されたアドレスを自己のアドレスに変更するようにして経路アクティベーション応答パケット５０を生成し、これをアクティベーションされた経路の次ホップのノードＣ、Ｅに向けて転送する。
【０１３２】
かくして、この経路アクティベーション応答パケット５０が経路アクティベーションパケット４０のときと同様にして、各ノードＡ〜Ｃ、ＥにおいてノードＤまでの経路のアクティベート処理が行われながらノードＳに向けて順次伝達され、やがてノードＳがこの経路アクティベーション応答パケット５０を受け取ることで、経路アクティベーションが完了する。そして各ノードＡ〜Ｅは、この後ノードＳ及びノードＤ間での通信において、かかる経路アクティベーションパケット４０に格納されたフローＩＤが付されたデータが送信されてきたときには、このとき設定した経路を通信経路としてデータの送受を行う。このようにしてこのアドホックネットワークシステム１０においては、データ送信元ノードにおけるアプリケーションの要求等に応じた適切な経路を設定する。
【０１３３】
なおノードＳは、経路アクティベーションパケット４０を送信後、所定時間内にノードＤからの経路アクティベーション応答パケット５０を受け取ることができなかった場合や、途中で経路アクティベーションエラーを受け取った場合には、経路アクティベーションが行われるまで順次条件を緩和するように経路要求パラメータを再設定しながら経路アクティベーションパケット４０を順次再送する。
【０１３４】
従って、この例のように経路品質が「５０」以上であることが当初の経路アクティベーションの条件であった場合、ノードＳは、経路アクティベーションパケット４０の再送時、経路アクティベーションパケット４０の「Required Link Quality」のフィールド４１８に格納された閾値の値を「５０」から順次少しずつ下げた経路アクティベーションパケット４０を順次生成して、これを再送することとなる。
【０１３５】
以上、一定の経路品質を有する経路のみをアクティベートする場合を例に説明したが、他の要求、例えば経路に所望のフローＩＤを設定する場合や、経路に生存時間を設定する場合、ユーザ等が要求する他の何らかの条件を満たす経路をアクティベートする場合、さらには所望する条件の２以上を全て満たす経路をアクティベートし、又はその経路に所望する設定を行う場合も同様の処理が行われる。
【０１３６】
実際上、ノードＳは、経路に所望のフローＩＤを設定する場合には、経路アクティベーションパケット４０の「Flow ID」のフィールド４１９にそのフローＩＤを格納し、一定時間以上の生存時間を有する経路をアクテリベートさせる場合には、「Lifetime」のフィールド４１１０に最低限必要な経路の生存時間を格納し、ユーザ等が要求する他の何らかの条件を満たす経路をアクテリベートさせる場合には、「Requirements」のフィールド４１１１にその条件を格納するようにして経路アクティベーションパケット４０を生成し、これを発信する。
【０１３７】
そして、この経路アクティベーションパケット４０を受信したノードＡ〜Ｅは、当該経路アクテリベートパケット４０に格納された全ての要求を満たす経路をノードＳ及びノードＤ間における通信経路として設定したり、その経路の生存時間の更新やその経路に対するフローＩＤの対応付け等を行い、この後ノードＳからノードＤへのデータ送信時には、この経路を利用して当該データを順次転送する。
【０１３８】
このようにしてこのアドホックネットワークシステム１０においては、データ送信元が、アプリケーションの要求や所望する経路品質の経路を使用経路として設定したり、その経路に対して生存時間の更新やフローＩＤの対応付け等を行い得るようになされ、これによりデータの属性に応じた細やかな経路設定や経路のメンテナンス等を行い得るようになされている。
【０１３９】
（１−７）経路アクティベーションにおけるＣＰＵ１２の処理
ここで、経路アクティベーションにおける各ノードＡ〜Ｅの上述のような各種処理は図１２に示す経路アクティベーションパケット送信処理手順ＲＴ４に従ったＣＰＵ１２（図２）の制御のもとに行われる。
【０１４０】
実際上、経路アクティベーションパケット４０の送信元であるノードＳにおいて、ＣＰＵ１２は、ユーザの要求やデータパケットの送信状態に応じて指定された経路に対するアクティベートの要求を受けると、この経路アクティベーションパケット送信処理手順ＲＴ４をステップＳＰ４０から開始し、続くステップＳＰ４１において、そのアクティベートの要求に応じた経路アクティベーションパケット４０を送信した後、ステップＳＰ４２に進んで、当該送信時を基準にタイマ１６（図２）を起動する。
【０１４１】
続いてＣＰＵ１２は、ステップＳＰ４３に進んで、所定方式の経路アクティベーションエラーを受信したか否かを判断する。そしてＣＰＵ１２は、このステップＳＰ４３において否定結果を得るとステップＳＰ４４に進み、経路アクティベーション返答パケット５０を受信したか否かを判断する。
【０１４２】
ここでこのステップＳＰ４４において肯定結果を得ることは、ノードＳが経路アクティベーション返答パケット５０を受信したことよって双方向での経路アクティベートが成功したことを意味し、このときＣＰＵ１２は、ステップＳＰ４５に進んで、アクティベートした経路を介したデータの送信処理を開始した後、ステップＳＰ４６に進んでこの経路アクティベーションパケット送信処理手順ＲＴ４を終了する。
【０１４３】
これに対してステップＳＰ４４において否定結果を得ることは、経路アクティベーション返答パケット５０を未だ受信していないことを意味し、このときＣＰＵ１２は、ステップＳＰ４７に進んで、予め設定されたタイムアウト時間を超えたか否かをタイマ１６（図２）のカウント値に基づいて判断する。
【０１４４】
このステップＳＰ４７において肯定結果を得ると、このことはタイムアウトになったことを意味し、このときＣＰＵ１２は、ステップＳＰ４８に進んで、経路アクティベーションパケット４０の再送処理を行うと共に、ステップＳＰ４９に進んで、必要に応じて経路要求パラメータの再設定を行った後、再度ステップＳＰ４２に戻って、この後同様の処理を繰り返す。
【０１４５】
これに対してステップＳＰ４７において否定結果を得ることは未だタイムアウトになっていないことを意味し、このときＣＰＵ１２は、ステップＳＰ４３に戻って経路アクティベーションエラーの受信判断から順次同様の処理を繰り返す。
【０１４６】
また上述したステップＳＰ４３において、ＣＰＵ１２が、肯定結果、すなわち経路アクティベーションエラーを受信したと判断した場合には、ステップＳＰ４８に進んで、経路アクティベーションパケット４０の再送処理を行う。
【０１４７】
このようにして経路アクティベーションパケット４０の送信元であるノードＳのＣＰＵ１２は、ユーザの要求等に応じて他のノードＡ〜Ｅに対する経路のアクティベートを行う。
【０１４８】
一方、かかる経路アクティベーションパケット４０を受信したノードＡ〜ＥのＣＰＵ１２は、図１３に示す経路アクティベーションパケット受信処理手順ＲＴ５に従って経路のアクティベートを実行する。
【０１４９】
すなわちノードＡ〜ＥのＣＰＵ１２は、経路アクティベーションパケット４０を受信すると、この経路アクティベーションパケット受信処理手順ＲＴ５をステップＳＰ５０において開始し、続くステップＳＰ５１において、その経路アクティベーションパケット４０の「Destination Address」のフィールド４１６に格納されたアドレスに基づいて、自己の経路テーブル３０（図７）にこの経路アクティベーションパケット４０のあて先までの経路エントリが存在するか否かを判断する。
【０１５０】
そしてＣＰＵ１２は、このステップＳＰ５１において肯定結果を得るとステップＳＰ５２に進み、その経路エントリに含まれる各経路リスト３２の中に経路要求パラメータに合致した次ホップが存在するか否かを判断する。すなわちＣＰＵ１２は、経路アクティベーションパケット４０のあて先までの経路の中に経路要求パラメータとして規定された経路品質等の全ての条件を満たす経路が存在するか否かを判断する。
【０１５１】
このステップＳＰ５２において肯定結果を得ることは、経路要求パラメータとして規定された条件を満たす経路が存在することを意味し、このときＣＰＵ１２は、ステップＳＰ５３に進んで、この次ホップ（経路）を正規の経路として設定すると共に、その経路に対して生存時間等の必要な設定を行った後、続くステップＳＰ５４に進んで、経路アクティベーションパケット４０の「Hop Count」のフィールド４１４に格納されたホップ数を「１」増加させる。
【０１５２】
続いてＣＰＵ１２は、ステップＳＰ５５に進んで、その経路アクティベーションパケット４０の「Destination Address」のフィールド４１６に格納されたアドレスに基づいて、当該経路アクティベーションパケット４０のあて先がノードであるか否かを判断し、肯定結果を得ると、ステップＳＰ５６に進んで、この経路アクティベーションパケット４０に対する経路アクティベーション応答パケット５０を生成し、これをアクティベートした経路のノードＣ、Ｅに送信した後、ステップＳＰ５７に進んでこの経路アクティベーションパケット受信処理手順ＲＴ５を終了する。
【０１５３】
これに対してＣＰＵ１２は、ステップＳＰ５５において否定結果を得ると、ステップＳＰ５８に進んで、経路アクティベーションパケット５０をアクティベートした経路のノードＡ〜Ｅに対して送信（ユニキャスト）した後、ステップＳＰ５７に進んでこの経路アクティベーションパケット受信処理手順ＲＴ５を終了する。
【０１５４】
一方、上述したステップＳＰ５１において否定結果を得ることは、自己の経路テーブル３０（図７）にこの経路アクティベーションパケット４０のあて先ノード（ノードＤ）までの経路エントリが存在しないことを意味し、このときＣＰＵ１２は、ステップＳＰ５９に進んで、経路アクティベーションエラーをこの経路アクティベーションパケット４０の送信元であるノードＳに対して送信した後に、ステップＳＰ５７に進んでこの経路アクティベーションパケット受信処理手順ＲＴ５を終了する。
【０１５５】
さらに上述したステップＳＰ５２において否定結果を得ることは、自己の経路テーブル３０に登録されている当該経路アクティベーションパケット４０のあて先ノード（ノードＤ）までの経路エントリに含まれる経路リスト３０の中に経路要求パラメータとして規定された条件を満たす次ホップ（経路）が存在しないことを意味し、このときＣＰＵ１２は、ステップＳＰ５９に進んで、この経路アクティベーションパケット４０の送信元であるノードＳに対して経路アクティベーションエラーを送信した後に、ステップＳＰ５７に進んでこの経路アクティベーションパケット受信処理手順ＲＴ５を終了する。
【０１５６】
このようにして経路アクティベーションパケット４０を受信した各ノードＡ〜ＥのＣＰＵ１２は、経路アクティベーションパケット４０に含まれる経路要求パラメータに応じた経路をアクティベートする。
【０１５７】
（２）本実施の形態の動作及び効果
以上の構成において、このアドホックネットワークシステム１０では、データ通信開始時に各ノードＡ〜Ｅ、Ｓにおいて複数の経路をそれぞれ設定した後、データの送信元となるノードＳがアプリケーションの要求等に応じた経路要求パラメータを格納した経路アクティベーションパケット４０を発信する。そしてこの経路アクティベーションパケット４０を受信した各ノードＡ〜Ｅは、この経路アクティベーションパケット４０に含まれる経路要求パラメータに基づき、その条件を満たす経路を通信経路として設定したり、その経路に対して必要な設定を行う。
【０１５８】
従って、このアドホックネットワークシステム１０では、データ通信開始時に各ノードＡ〜Ｅ、Ｓにおいて作成された複数の経路の中から、データ送信元のアプリケーションの要求等や、データパケットの属性等に応じた経路の設定を自由に行うことができ、その分最適な使用経路をすることができる。
【０１５９】
以上の構成によれば、データ通信開始時に各ノードＡ〜Ｅ、Ｓにおいて複数の経路をそれぞれ設定した後、データの送信元となるノードＳがアプリケーションの要求等に応じた経路要求パラメータを格納した経路アクティベーションパケット４０を発信し、これを受信した各ノードＡ〜Ｅが当該経路アクティベーションパケット４０に含まれる経路要求パラメータに基づき、その条件を満たす経路を通信経路として設定したり、その経路に対して必要な設定を行うようにしたことにより、最適な使用経路を設定することができ、かくして信頼性の高いアドホックネットワークシステムを実現し得る。
【０１６０】
（３）他の実施の形態
なお上述の実施の形態においては、本発明を、ＡＯＤＶプロトコルのアドホックネットワークシステム１０及びこれを構成するノードＡ〜Ｅ、Ｓに適用するようにした場合について述べたが、本発明はこれに限らず、複数の通信端末により構成され、第１の通信端末から発信されて第２の通信端末を経由して第３の通信端末に送信される第１のメッセージ及び当該第１のメッセージに対して第３の通信端末から発信されて第２の通信端末を経由して第１の通信端末に送信される第２のメッセージに基づいて、第１乃至第３の通信端末が第１又は第３の通信端末までの経路をそれぞれ作成し、当該作成した経路を介して第１及び第３の通信端末間で通信する通信システム及び当該通信システムを構成する通信端末装置に広く適用することができる。
【０１６１】
また上述の実施の形態においては、データの送信元であるノードＳが当該データの送信先であるノードＤとの通信に使用する経路に対する要求でなる経路要求を格納する経路アクティベーションパケット４０及びこれに対するノードＤの応答である経路アクティベーション応答パケット５０を図１１のようなフォーマットとするようにした場合について述べたが、本発明はこれに限らず、この他種々のフォーマットを広く適用することができる。
【０１６２】
さらに上述の実施の形態においては、経路アクティベーションパケット４０に格納する経路要求パラメータとして、経路品質、その経路に設定すべきフローＩＤ、その経路に設定すべき生存時間及びアプリケーション等からの要求を適用するようにした場合について述べたが、本発明はこれに限らず、この他種々の条件やその経路に設定すべき事項を適用することができる。
【０１６３】
さらに上述の実施の形態においては、自ノードがデータの送信元である場合に、経路品質等の経路に対する要求である経路要求（経路要求パラメータ）を送信する経路要求送信手段として機能し、自ノードが中継ノードである場合に、第１のメッセージとしての経路要求メッセージ２０及び第２のメッセージとしての経路応答メッセージ２３をそれぞれ重複して受信することによりデータの送信元及び送信先までの経路をそれぞれ複数作成する経路作成手段と、これら複数の経路のうち、ノードＳから送信された経路要求を満たす経路をノードＳ及びノードＤ間の通信経路として設定する経路設定手段として機能し、自ノードがデータの送信先ノードである場合に、経路アクティベーションパケット４０を受信したときにその応答である経路アクティベーション応答パケット５０を発信する応答発信手段として機能する各ノードＡ〜Ｅ、Ｓの通信機能ブロック１１を図２のように構成するようにした場合について述べたが、本発明はこれに限らず、この他種々の構成を広く適用することができる。
【０１６４】
さらに上述の実施の形態においては、データの送信元であるノードＳと、当該データの送信先であるノードＤとの間の通信経路を１つのみ設定するようにした場合について述べたが、本発明はこれに限らず、例えば図１４に示すように、フローＩＤの異なる複数の通信経路を設定し、データの属性等に応じてこれら複数の通信経路を使い分けるようにしても良い。このようにすることによって、無線周波数の効率的な利用が可能となり、結果としてスループットを向上させることができる。
【０１６５】
さらに上述の実施の形態においては、本発明をノードＳ及びノードＤ間の通信経路を設定する場合に適用するようにした場合について述べたが、本発明はこれに限らず、例えば経路のメンテナンスに本発明を利用するようにしても良い。
【０１６６】
すなわち、一般にアドホックネットワークにおける経路は使用されない時間が長いと自動的に削除されてしまうことが多く、ルーティングプロトコルにより複数の経路が設定できたとしても結局使用されないまま経路テーブルから消えてしまう経路が多く存在する。そこで、定期的に経路アクティベーションを行い経路の生存時間を更新することでこの問題を解決することができる。
【０１６７】
実際上、この場合には、経路アクティベーションパケット４０の「Lifetime」のフィールド４１１０に所望する新規に設定すべき生存時間を格納し、図１２について上述した経路アクティベーションパケット送信処理手順ＲＴ４及び図１３について上述した経路アクティベーションパケット受信処理手順ＲＴ５に従い各ノードＡ〜Ｅ、Ｓが処理を行うようにすれば良い。ただし、この場合において、経路アクティベーションパケット４０は、ユニキャストであて先ノードまで送信するのではなく、経路リスト３２が登録された各経路のノードＡ〜Ｅ、Ｓに対してマルチキャストで送信するようにし、あて先ノードは最初に受け取った経路アクティベーションパケット４０に対してのみ返答を行うようにすれば良い。このように経路の生存時間を定期的に更新することで、複数経路の効果的な使用が可能となる。
【０１６８】
また、経路アクティベーションパケット４０を経路の統計的な情報を収集するために使用するようにしても良い。例えば、経路アクティベーションパケット４０や経路アクティベーション応答パケット５０の中に経路品質値の合計を保存するフィールドを用意しておき、ホップするごとに各ノードＡ〜Ｃ、Ｅにおいて経由した経路品質の値を加算するようにする。かくして経路アクティベーションパケット４０の送信元であるノードＳにおいて合計値をホップ数で割ることにより、そのときの各ノード間の経路品質の平均値を得ることができる。そしてノードＳがこの平均値を、複数経路がアクティベーションされたときに利用するようにしても良い。
【０１６９】
さらに上述の実施の形態においては、ノードＳからノードＤへの一方向通信が行われる場合を前提とした場合について述べたが、本発明はこれに限らず、ノードＳ及びノードＤ間において双方向通信が行われる場合にも適用することができる。この場合において、各ノードＡ〜Ｅ、ＳのＣＰＵ１２が経路アクティベーションパケット４０及び経路アクティベーション応答パケット５０に基づき、ノードＳからノードＤまでの通信経路と、ノードＤからノードＳまでの通信経路とが異なるように別個に設定するようにしても良く、このようにすることによって、ノードＳ及びノードＤ間において効率の良い通信を行うことができる。なお、このための具体的手法としては、経路アクティベーション応答パケット５０を受信したノードＡ〜Ｃ、Ｅ、Ｓが自己の経路テーブル３０において既にその送信先のノードＳまでの経路を正規化（設定）しているか否かを調べ、正規化している場合にはその送信元のノードＤまでの経路として他の経路を選択するようにすれば良い。
【産業上の利用可能性】
【０１７０】
本発明は、アドホックネットワークシステムの他、種々のネットワークシステムに適用することができる。
【図面の簡単な説明】
【０１７１】
【図１】本実施の形態によるアドホックネットワークシステムの構成を示す概念図である。
【図２】各ノードにおける通信機能ブロックの構成を示すブロック図である。
【図３】本実施の形態による経路要求メッセージの構成を示す概念図である。
【図４】経路要求メッセージ受信処理手順を示すフローチャートである。
【図５】ノードＳからノードＤまでに複数経路が作成された場合の説明に供する概念図である。
【図６】本実施の形態による経路応答メッセージの構成を示す概念図である。
【図７】本実施の形態による経路テーブルの構成を示す概念図である。
【図８】経路エントリ挿入処理手順を示すフローチャートである。
【図９】経路応答メッセージ受信処理手順を示すフローチャートである。
【図１０】各ノードにおける経路テーブルの状態を示す概念図である。
【図１１】経路アクティベーションパケットの説明に供する略線図である。
【図１２】経路アクティベーションパケット送信処理手順を示すフローチャートである。
【図１３】経路アクティベーションパケット受信処理手順を示すフローチャートである。
【図１４】フローＩＤ毎に異なる経路を設定した様子を示す略線図である。
【図１５】従来のアドホックネットワークシステムにおける経路作成の説明に供する概念図である。
【図１６】従来の経路要求メッセージの構成を示す概念図である。
【図１７】従来の経路テーブルの構成を示す概念図である。
【図１８】従来の経路応答メッセージの構成を示す概念図である。
【符号の説明】
【０１７２】
１０……アドホックネットワークシステム、１２……ＣＰＵ１２、２０……経路要求メッセージ、２１……中継ノードリスト、２３……経路応答メッセージ、３０……経路テーブル、３２……経路リスト。
【図１】
0004605427.tif 000002
【図２】
0004605427.tif 000003
【図３】
0004605427.tif 000004
【図４】
0004605427.tif 000005
【図５】
0004605427.tif 000006
【図６】
0004605427.tif 000007
【図７】
0004605427.tif 000008
【図８】
0004605427.tif 000009
【図９】
0004605427.tif 000010
【図１０】
0004605427.tif 000011
【図１１】
0004605427.tif 000012
【図１２】
0004605427.tif 000013
【図１３】
0004605427.tif 000014
【図１４】
0004605427.tif 000015
【図１５】
0004605427.tif 000016
【図１６】
0004605427.tif 000017
【図１７】
0004605427.tif 000018
【図１８】
0004605427.tif 000019