(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」のフィールド５４に記述されたアドレスのノードＡ´〜Ｅ´にそのデータが転送される。
【００１６】
さらにノードＡ´〜Ｅ´は、経路テーブル４の「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」のフィールド５４に記述されたノード）Ａ´〜Ｃ´、Ｅ´にユニキャストする。
【００２４】
またこのときそのノードＡ´〜Ｃ´、Ｅ´、Ｓ´は、自己の経路テーブル４にその経路応答メッセージ６の送信元であるノードＤのアドレスが存在するか否かを調査し、存在しない場合には図１４について上述した場合と同様にしてノードＤまでの逆向き経路のエントリを経路テーブル４に挿入する。
【００２５】
かくして、この後これと同様の処理が対応する各ノードＡ´〜Ｃ´、Ｅ´、において順次行われ、これによりやがて経路応答メッセージ６が経路要求メッセージ２の送信元であるノードＳ´にまで伝達される（図１２（Ｃ））。そしてこの経路応答メッセージ６をノードＳ´が受信すると経路発見プロセスが終了する。
【００２６】
このようにしてＡＯＤＶでは、各ノードＡ´〜Ｅ´、Ｓ´が通信先のノードとの間の通信経路を発見し、設定する。
【特許文献１】米国特許出願公開第２００２／００４９５６１号明細書
【発明の開示】
【発明が解決しようとする課題】
【００２７】
ところで、アドホックネットワークのルーティングプロトコルとして現在提案されている上述のオンデマンド方式や、テーブル駆動方式及びハイブリッド方式は、経路の作成の仕方に違いがあるものの、これらどの方式も経路テーブル上では１つのあて先に対して１つの経路（次ホップ）を有しているだけである点で共通しており、このためノード間の通信に障害が発生したときなどに違う経路を使用したいという要求があっても何らかの方法で新しく経路が作成されるのを待つ必要がある。
【００２８】
この場合、オンデマンド方式では、障害が発生したことを検知してから新しい経路の作成に取り掛かるため、復旧するまでのオーバーヘッドや時間が大きい。またテーブル駆動方式では、ルーティングプロトコルにより常時経路情報を交換していることから比較的障害に強いとされているものの、常に情報を送受信することによるオーバーヘッドの大きさが問題となっている。実際上、モバイル機器がアドホックネットワークで接続された環境を考えると、消費電力の面からも常に経路情報を交換するのは得策ではない。また一方で、経路テーブルを更新する周期が長いと、突然の障害に対処できない問題もある。
【００２９】
例えば上述のＡＯＤＶプロトコルでは、ノード間の通信に障害が起きて通信が切断されたときに、両端のノードから経路の再発見を要求するメッセージを送信するローカルリペア（Local Repair）という手法により新たに経路を作成することとしているが、ＡＯＤＶのプロトコルの仕組み上、同時に１つの経路しか作成できないため、原則としてリンクに障害が起きても切断してはじめて新しい経路作成に取り掛かることになる。ローカルリペアでも経路を作成できるようになれば、即時性を要求されるリアルタイム通信に対しても有効な手法となる。
【００３０】
このように一般的なアドホックルーティングは、経路テーブルのあて先１つに対して単一の経路しかもたないため、ノード間の通信に障害が起きた際の対処法は十分ではない。オンデマンド方式の代表的なルーティングプロトコルであるＡＯＤＶでも複数の経路を同時に保有することは困難であり、障害対策に対する要求を十分に満たしているわけではない。
【００３１】
本願発明は以上の点を考慮してなされたもので、信頼性の高い通信端末装置及びその制御方法、プログラムを提案しようとするものである。
【課題を解決するための手段】
【００３２】
かかる課題を解決するため本発明においては、通信端末装置及びその制御方法並びにプログラムにおいて、第１の通信端末から第２の通信端末を送信先として発信された経路要求メッセージ又は当該第２の通信端末からの応答を表し当該第１の通信端末を送信先とする経路応答メッセージでなりメッセージ識別情報を付されたメッセージを中継すると共に、当該メッセージに基づいて通信端末間の経路を作成する通信端末装置において、メッセージを重複して受信し、過去に受信したメッセージのメッセージ識別情報を履歴記憶手段に記憶し、受信したメッセージのメッセージ識別情報が上記履歴記憶手段に既に記憶されており、且つ当該メッセージに自己の通信端末を識別する端末識別情報が付されている場合には、当該メッセージを破棄し、それ以外の場合には、当該メッセージの送信元を送信先とし当該メッセージの転送元を転送先とする経路を所定の経路リストに記録することにより第１の通信端末又は第２の通信端末までの経路を複数作成すると共に、当該メッセージに付されたメッセージ識別情報を履歴記憶手段に記憶させ、さらにメッセージの送信先が自己の端末装置でない場合に当該メッセージに自己の端末識別情報を付して転送し、作成された複数の経路を記憶し、管理すると共に、第１の通信端末又は第２の通信端末までの通信経路として当該複数の経路の中から１つの経路を設定する一方、当該通信経路を必要に応じて複数の経路のうちの他の経路に切り換えるようにした。
【００３３】
この結果この通信端末装置及びその制御方法並びにプログラムによれば、同一のメッセージ識別情報が付されたメッセージを過去に受信したことがあったとしても、自己の端末識別情報が付されていなければ、過去に受信したメッセージと異なる経路を経たものと判断することができるので、ループを回避しながら複数の経路を生成することができ、通信障害が発生した場合においても迅速に別の経路に切り換えて安定した通信を行うことができる。
【００３４】
また本発明においては、通信端末装置及びその制御方法並びにプログラムにおいて、
所望する第１の通信端末を送信先とする経路要求メッセージにメッセージ識別情報を付して送信する送信手段と、第１の通信端末からの応答を表し経路要求メッセージの送信元を送信先とすると共にメッセージ識別情報が付された経路応答メッセージ又は経路要求メッセージでなるメッセージを転送する第２の通信端末において、受信したメッセージのメッセージ識別情報が、過去に受信したメッセージのメッセージ識別情報を記憶する履歴記憶手段に既に記憶されており、且つ当該メッセージに当該第２の通信端末を識別する端末識別情報が付されている場合には、当該メッセージが破棄され、それ以外の場合には、当該メッセージの送信元を送信先とし当該メッセージの転送元を転送先とする経路が所定の経路リストに記録されることにより第１の通信端末又は自己の通信端末までの経路が複数作成されると共に、当該メッセージに付されたメッセージ識別情報が履歴記憶手段に記憶され、さらに当該メッセージに第２の端末装置の端末識別情報が付されて転送された結果、第１の通信端末からの経路応答メッセージを重複して受信することにより、第１の通信端末までの経路を複数作成し、作成された複数の経路を記憶し、管理すると共に、当該複数の経路の中から１つの経路を通信経路として設定し、設定された通信経路を通じて第１の通信端末と通信すると共に、当該通信経路を必要に応じて複数の経路のうちの他の経路に切り換えるようにした。
【００３５】
この結果この通信端末装置及びその制御方法並びにプログラムによれば、同一のメッセージ識別情報が付されたメッセージを過去に受信したことがあったとしても、自己の端末識別情報が付されていなければ、過去に受信したメッセージと異なる経路を経たものと判断することができるので、ループを回避しながら複数の経路を生成することができ、通信障害が発生した場合においても迅速に別の経路に切り換えて安定した通信を行うことができる。
【００３６】
さらに本発明においては、通信端末装置及びその制御方法並びにプログラムにおいて、第１の通信端末から発信され、第２の通信端末を介して送信されてくると共にメッセージ識別情報が付された経路要求メッセージに基づいて、第１の通信端末までの経路を作成する通信端末装置において、第２の通信端末により経路要求メッセージが受信されたときに、当該経路要求メッセージのメッセージ識別情報が、当該第２の通信端末が過去に受信した上記経路要求メッセージの上記メッセージ識別情報を記憶する履歴記憶手段に既に記憶されており、且つ当該経路要求メッセージに当該第２の通信端末を識別する端末識別情報が付されている場合には、当該経路要求メッセージが破棄され、それ以外の場合には、当該経路要求メッセージの送信元を送信先とし当該メッセージの転送元を転送先とする経路が所定の経路リストに記録されると共に、当該経路要求メッセージに付されたメッセージ識別情報が履歴記憶手段に記憶され、さらに当該経路要求メッセージに当該第２の通信端末の端末識別情報を付して転送された結果、転送されてきた経路要求メッセージを重複して受信し、重複して受信した経路要求メッセージを基に第１の通信端末までの経路を複数作成し、作成された複数の経路を記憶し、管理すると共に、当該複数の経路の中から１つの経路を第１の通信端末までの通信経路として設定する一方、当該通信経路を必要に応じて複数の経路のうちの他の経路に切り換えるようにした。
【００３７】
この結果この通信端末装置及びその制御方法並びにプログラムによれば、同一のメッセージ識別情報が付されたメッセージを過去に受信したことがあったとしても、自己の端末識別情報が付されていなければ、過去に受信したメッセージと異なる経路を経たものと判断することができるので、ループを回避しながら複数の経路を生成することができ、通信障害が発生した場合においても迅速に別の経路に切り換えて安定した通信を行うことができる。
【発明の効果】
【００４０】
本発明によれば、同一のメッセージ識別情報が付されたメッセージを過去に受信したことがあったとしても、自己の端末識別情報が付されていなければ、過去に受信したメッセージと異なる経路を経たものと判断することができる。これにより、ループを回避しながら複数の経路を生成することができ、通信障害が発生した場合においても迅速に別の経路に切り換えて安定した通信を行うことができるので、信頼性の高い通信端末装置及びその制御方法、プログラムを実現できる。
【発明を実施するための最良の形態】
【００４４】
以下図面について、本発明の一実施の形態を詳述する。
【００４５】
（１）本実施の形態によるアドホックネットワークシステムの構成
（１−１）本実施の形態によるアドホックネットワークシステムの概略構成
図１において、１０は全体として本実施の形態によるアドホックネットワークシステムを示し、各ノードＡ〜Ｅ、Ｓがデータの通信開始時にそれぞれ複数の経路を作成し、これら経路をその後のデータ通信時において通信障害が発生したときに切り換えて使用するようになされた点を除いて図１２について上述したアドホックネットワークシステム１とほぼ同様の構成を有する。
【００４６】
すなわちこのアドホックネットワークシステム１０の場合、例えばノードＳからノードＤにデータを送信するときには、ノードＳがノードＤを送信先とする経路要求メッセージ２０（図３）をブロードキャストする。
【００４７】
このときノードＳ以外の各ノードＡ〜Ｅは、それぞれ異なる経路を経由して送信されてくる経路要求メッセージ２０を逆向き経路を設定しながら重複して受信し、これらを順次ブロードキャストする。この結果ノードＳからノードＤまでの経路が複数作成される。またこのとき各ノードＡ〜Ｅ、Ｓは、これら作成した各経路を、予め定められた所定の基準に従って優先順位を設定して経路テーブル３０（図７）において管理する。
【００４８】
一方、経路要求メッセージ２０を受信したノードＤは、作成した経路ごとにノードＳを送信先とする経路応答メッセージ２３（図６）をユニキャスト（すなわちマルチキャスト）する。そしてノードＤ以外の各ノードＡ〜Ｃ、Ｅ、Ｓは、経路要求メッセージ２０の転送時に設定した経路と逆向きに送信されてくる経路応答メッセージ２３をそれぞれノードＤまでの逆向き経路を設定しながら重複して受信し、これらを経路要求メッセージ２０の転送時に設定したノードＳまでの各経路にユニキャストする。この結果ノードＤからノードＳまでの経路が複数作成される。またこのとき各ノードＡ〜Ｅ、Ｓは、これら作成した各経路を、予め定められた所定の基準に従って優先順位を設定して経路テーブル３０において管理する。
【００４９】
そして各ノードＡ〜Ｅは、その後ノードＳからデータの送信が開始されて当該データが送信されてくると、自己の経路テーブル３０において管理している複数経路の中から優先順位の最も高い経路を１つ選択し、対応するノードＡ〜Ｅにデータを送信する。これによりノードＳから発信されたデータが予め定められた基準に最も適合した経路を伝ってノードＤに伝達される。
【００５０】
他方、このようなデータの送信時に通信障害が発生すると、その通信障害が発生したノードＡ〜Ｅ、Ｓは、自己の経路テーブル３０において管理している複数経路の中から、現在使用している経路の次に優先順位の高い経路を選択し、使用経路をその経路に切り換えて対応するノードＡ〜Ｅにデータを送信する。
【００５１】
そしてこの新たな経路に選択されたノードＡ〜Ｅは、データが送信されてくると、自己の経路テーブルにおいて管理している複数経路の中から優先順位の最も高い経路を１つ選択し、対応するノードＡ〜Ｅにデータを送信する一方、これ以降の各ノードＡ〜Ｅも同様にして前ノードＡ〜Ｅから順次送信されてくるデータを次ホップのノードＡ〜Ｅに順次転送する。
【００５２】
このようにしてこのアドホックネットワークシステム１０においては、通信障害等が発生したときに予め作成した複数の経路のうちの他の経路に直ちに切り換えて通信を継続することで、突然の通信障害の発生にも実用上十分に対処し得るようになされている。
【００５３】
なお図２に、各ノードＡ〜Ｅ、Ｓに搭載された通信機能ブロック１１のハードウェア構成を示す。
【００５４】
この図２からも明らかなように、各ノードＡ〜Ｅ、Ｓの通信機能ブロック１１は、ＣＰＵ（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」のフィールド３３２（図７）に記述されたノードＡ〜Ｅに対してデータをユニキャストすることとなる。
【０１１７】
そしてＣＰＵ１２は、この後ステップＳＰ４３において肯定結果を得ると、ステップＳＰ４５に進んで、この通信処理手順ＲＴ４を終了する。
【０１１８】
（３）本実施の形態の動作及び効果
以上の構成において、このアドホックネットワークシステム１０では、データ通信開始時に各ノードＡ〜Ｅ、Ｓにおいて複数の経路をそれぞれ設定すると共に、これら複数の経路に優先順位を付け、データの送信時にはそのうちの優先順位の最も高い経路を用いて通信を行う。
【０１１９】
従って、このアドホックネットワークシステム１０では、リアルタイムストリームデータ、例えばＶｏＩＰや動画像などを送受する場合において、ノードＡ〜Ｅ、Ｓ間に通信障害が発生した場合においても迅速に別の経路に切り換えて安定した通信を行うことができる。
【０１２０】
以上の構成によれば、データ通信開始時に各ノードＡ〜Ｅ、Ｓにおいて複数の経路をそれぞれ設定すると共に、これら複数の経路に優先順位を付け、データの送信時にはそのうちの優先順位の最も高い経路を用いて通信を行うようにしたことにより、ノードＡ〜Ｅ、Ｓ間に通信障害が発生した場合においても迅速に別の経路に切り換えて安定した通信を行うことができ、かくして信頼性の高いアドホックネットワークシステムを実現できる。
【０１２１】
（４）他の実施の形態
なお上述の実施の形態においては、本発明を、アドホックルーティングプロトコルとして普及しているＡＯＤＶプロトコルのアドホックネットワークシステム１０及びこれを構成するノードＡ〜Ｅ、Ｓに適用するようにした場合について述べたが、本発明はこれに限らず、複数の通信端末により構成され、第１の通信端末から発信されて第２の通信端末を経由して第３の通信端末に送信されるメッセージに基づいて、第２及び第３の通信端末が第１の通信端末までの経路を作成し、当該作成した経路を介して第１及び第３の通信端末間で通信するこの他種々の形態の通信システム及び当該通信システムを構成する通信端末装置に広く適用することができる。
【０１２２】
また上述の実施の形態においては、経路要求メッセージ２０（図３）や経路応答メッセージ２３（図６）というメッセージを重複して受信することによりその送信元までの経路を複数作成する経路作成手段と、作成された複数の経路を記憶し、管理する経路管理手段と、他のノードＡ〜Ｅ、Ｓとの間で通信を行う通信手段との機能を有する各ノードＡ〜Ｅ、Ｓの通信機能ブロック１１を、図２のように構成するようにした場合について述べたが、本発明はこれに限らず、この他種々の構成を広く適用することができる。
【０１２３】
さらに上述の実施の形態においては、優先順位を設定する基準としてホップ数を適用し、当該ホップ数が少ない経路に高い優先順位を設定するようにした場合について述べたが、本発明はこれに限らず、経路の品質を基準とするようにしても良く、かかる基準としては例えばホップ数と経路の品質とを複合的に判断するなど、この他使用目的に応じて種々の基準を広く適用することができる。
【０１２４】
なおこの場合において、ホップ数以外の事項を基準として経路に優先順位を設定する場合には、各ノードＡ〜Ｅ、Ｓにおいて、経路テーブル３０（図７）の「Minimum  Hop  Count」及び「Maximum  Hop  Count」の各フィールド３１１、３１２に、作成された各経路のうちのその基準の最小値及び最大値を格納するようにすれば良い。
【０１２５】
さらに上述の実施の形態においては、経路の優先順位をその経路のホップ数に応じて固定的に設定するようにした場合について述べたが、本発明はこれに限らず、この基準を通信状態やパケットエラー率等の経路の品質などに基づき動的に変更し、これに応じて各経路に対する優先順位を再設定するようにしても良い。
【０１２６】
さらに上述の実施の形態においては、各ノードＡ〜Ｅ、Ｓにおいて、複数作成した各経路のエントリをリスト化して管理するようにした場合について述べたが、本発明はこれに限らず、例えばこれら複数経路の各エントリをテーブル化して一体に管理するようにしても良い。ただし、実施の形態のように各経路ごとにリスト化することによって、優先順位に応じて経路の順番を並べ替える際の処理が容易となる利点がある。
【０１２７】
またこの場合において、上述の実施の形態においては、各経路リスト３２のエントリとして、その経路のホップ数、次ホップ、生存時間、その経路の品質及び次の経路リストへのポインタを経路ごとに保持するようにした場合について述べたが、本発明はこれに限らず、これらに加え又は代えてこれら以外の情報をその経路に関する情報として保持するようにしても良い。
【０１２８】
さらに上述の実施の形態においては、経路要求メッセージ２０として図３のようなフォーマットを適用し、当該経路要求メッセージ２０を中継した各ノードＡ〜Ｃ、Ｅが中継ノードリスト２１のフィールド２２を順次拡張しながら当該中継ノードリスト２１に自己のアドレスを記述するようにした場合について述べたが、本発明はこれに限らず、経路要求メッセージ２０のフォーマットとしてはこれ以外のフォーマットであっても良く、また経路要求メッセージ２０を中継した各Ａ〜Ｃ、Ｅが自己のアドレス以外のそのネットワークシステムにおいて自己を識別できる何らかの識別情報を記述するようにしても良い。
【０１２９】
さらに上述の実施の形態においては、経路応答メッセージ２３として図６のようなフォーマットを適用し、当該経路応答メッセージ２３の「RREP ID」のフィールド２４にその送信元ノードのアドレスを記述するようにした場合について述べたが、本発明はこれに限らず、経路応答メッセージ２３のフォーマットとしてはこれ以外のフォーマットであっても良く、またその送信元が「RREP ID」のフィールド２４に自己のアドレス以外のそのネットワークシステムにおいて自己を識別できる何らかの識別情報を記述するようにしても良い。
【産業上の利用可能性】
【０１３０】
本発明は、アドホックネットワークシステムの他、種々のネットワークシステムに適用することができる。
【図面の簡単な説明】
【０１３１】
【図１】本実施の形態によるアドホックネットワークシステムの構成を示す概念図である。
【図２】各ノードにおける通信機能ブロックの構成を示すブロック図である。
【図３】本実施の形態による経路要求メッセージの構成を示す概念図である。
【図４】経路要求メッセージ受信処理手順を示すフローチャートである。
【図５】ノードＳからノードＤまでに複数経路が作成された場合の説明に供する概念図である。
【図６】本実施の形態による経路応答メッセージの構成を示す概念図である。
【図７】本実施の形態による経路テーブルの構成を示す概念図である。
【図８】経路エントリ挿入処理手順を示すフローチャートである。
【図９】経路応答メッセージ受信処理手順を示すフローチャートである。
【図１０】各ノードにおける経路テーブルの状態を示す概念図である。
【図１１】通信処理手順を示すフローチャートである。
【図１２】従来のアドホックネットワークシステムにおける経路作成の説明に供する概念図である。
【図１３】従来の経路要求メッセージの構成を示す概念図である。
【図１４】従来の経路テーブルの構成を示す概念図である。
【図１５】従来の経路応答メッセージの構成を示す概念図である。
【符号の説明】
【０１３２】
１０……アドホックネットワークシステム、１２……ＣＰＵ、２０……経路要求メッセージ、２１……中継ノードリスト、２２、２４……フィールド、２３……経路応答メッセージ、３０……経路テーブル、３２……経路リスト。
【図１】
0004605426.tif 000002
【図２】
0004605426.tif 000003
【図３】
0004605426.tif 000004
【図４】
0004605426.tif 000005
【図５】
0004605426.tif 000006
【図６】
0004605426.tif 000007
【図７】
0004605426.tif 000008
【図８】
0004605426.tif 000009
【図９】
0004605426.tif 000010
【図１０】
0004605426.tif 000011
【図１１】
0004605426.tif 000012
【図１２】
0004605426.tif 000013
【図１３】
0004605426.tif 000014
【図１４】
0004605426.tif 000015
【図１５】
0004605426.tif 000016