(57)【特許請求の範囲】
【請求項１】
ツリー構造に形成された無線ネットワークを構成するデバイスがＲＲＥＱ（Ｒｏｕｔｅ  ＲＥＱｕｅｓｔ）メッセージを受信するステップと、
前記ＲＲＥＱメッセージを受信した前記デバイスがルーティングテーブルを保持していない場合、前記デバイスは前記ＲＲＥＱメッセージが前記デバイスの子孫デバイスから受信されたか否かを判断するステップと、
前記ＲＲＥＱメッセージが前記デバイスの子孫デバイスから受信されたものではない場合、前記デバイスは前記ＲＲＥＱメッセージを廃棄するステップと、
を含むことを特徴とするメッセージ処理方法。
【請求項２】
前記判断ステップは、前記ＲＲＥＱメッセージを受信した前記デバイスがルーティングテーブルを保持していない場合、前記デバイスは前記ＲＲＥＱメッセージが前記デバイスの子孫デバイスからユニキャストされたか否かを判断することを特徴とする請求項１に記載のメッセージ処理方法。
【請求項３】
前記ＲＲＥＱメッセージの宛先が前記デバイスである場合に、前記デバイスはＲＲＥＰ（Ｒｏｕｔｅ  ＲＥＰｌｙ）メッセージで応答するステップを更に含むことを特徴とする請求項１に記載のメッセージ処理方法。
【請求項４】
前記ＲＲＥＱメッセージを受信した前記デバイスがルーティングテーブルを保持していない場合、前記ＲＲＥＱメッセージを前記デバイスの子孫デバイスから受信し、前記ＲＲＥＱメッセージの宛先が前記デバイス又は前記デバイスの子孫デバイスでなければ、前記デバイスは前記ＲＲＥＱメッセージを他のデバイスへ伝達するステップを含むことを特徴とする請求項１に記載のメッセージ処理方法。
【請求項５】
前記伝達ステップは、前記ＲＲＥＱメッセージを受信した前記デバイスがルーティングテーブルを保持していない場合、前記ＲＲＥＱメッセージが前記デバイスの子孫デバイスからユニキャストされ、前記ＲＲＥＱメッセージの宛先が前記デバイスでなければ、前記デバイスは前記ＲＲＥＱメッセージを他のデバイスへユニキャストすることを特徴とする請求項４に記載のメッセージ処理方法。
【請求項６】
受信されたデータの宛先が前記デバイスの子孫デバイスである場合に、前記デバイスはツリー経路を用いて前記データを前記宛先に伝送するステップを更に含むことを特徴とする請求項１に記載のメッセージ処理方法。
【請求項７】
ツリー構造に形成された無線ネットワークを構成するデバイスがＲＲＥＱ（Ｒｏｕｔｅ  ＲＥＱｕｅｓｔ）メッセージを受信するステップと、
前記ＲＲＥＱメッセージを受信した前記デバイスがルーティングテーブルを保持しておらずメッセージを上位デバイス又は下位デバイスのみに伝達することができ、前記ＲＲＥＱメッセージの宛先が前記デバイスである場合に、前記デバイスは前記ＲＲＥＰ（Ｒｏｕｔｅ  ＲＥＰｌｙ）メッセージで応答するステップと、
を含むことを特徴とするメッセージ処理方法。
【請求項８】
ツリー構造に形成された無線ネットワークを構成するデバイスがＲＲＥＱ（Ｒｏｕｔｅ  ＲＥＱｕｅｓｔ）メッセージを受信するステップと、
前記ＲＲＥＱメッセージを受信した前記デバイスがルーティングテーブルを保持しておらずメッセージを上位デバイス又は下位デバイスのみに伝達することができ、前記ＲＲＥＱメッセージが前記デバイスの子孫デバイスから受信され、前記ＲＲＥＱメッセージの宛先が前記デバイスでなければ、前記デバイスは前記ＲＲＥＱメッセージを他のデバイスへ伝達するステップと、を含むことを特徴とするメッセージ処理方法。
【請求項９】
ツリー構造に形成された無線ネットワークを構成するデバイスがＲＲＥＰ（Ｒｏｕｔｅ
ＲＥＰｌｙ）メッセージを受信するステップと、  
前記ＲＲＥＰメッセージを受信した前記デバイスがルーティングテーブルを保持しておらずメッセージを上位デバイス又は下位デバイスのみに伝達することができ、前記ＲＲＥＰメッセージの宛先が前記デバイスであると、前記デバイスは前記ＲＲＥＰメッセージを廃棄するステップと、
前記ＲＲＥＰメッセージを受信した前記デバイスがルーティングテーブルを保持しておらず、前記ＲＲＥＰメッセージの宛先が前記デバイスでなければ、前記デバイスは前記ＲＲＥＰメッセージを他のデバイスへ伝達するステップと、
を含むことを特徴とするメッセージ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、個人通信無線ネットワークに関し、特に、ツリー構造基盤の個人無線通信ネットワーク（ｗｉｒｅｌｅｓｓ  ｐｅｒｓｏｎａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ：ＷＰＡＮ）を構成しているソースノードから宛先ノードへのルーティング経路を設定する方法に関する。
【背景技術】
【０００２】
一般に、移動通信システムでは、移動端末（ｍｏｂｉｌｅ  ｅｌｅｍｅｎｔ）と基地局（ｂａｓｅ  ｓｔａｔｉｏｎ）の間でデータが送受信される。すなわち、前記移動端末と基地局は、他のノード（ｎｏｄｅ）を経由せずに直接、データを送受信する。これに対して、ＷＰＡＮは、比較的短い距離内で比較的少ないユーザ間で情報を伝達するために開発された。すなわち、前記ＷＰＡＮは、多数のノードの相互通信を可能にするアドホックデータ通信システムである。前記アドホックネットワークを構成しているノードは、他のノードを経由して受信ノードへデータを転送する。勿論、前記ノードと受信ノードが隣接していれば、データを直接伝達することができる。
以下、図１を参照して、ツリー基盤に基づくアドホックネットワークを構成しているノードにおいて、既存のアルゴリズムが行う動作について説明する。
【０００３】
前記図１のツリー基盤のアドホックネットワークは、少なくとも２つのノードから構成される。前記ノードは、ルーティングテーブルを保存しているノードとルーティングテーブルを保存していないノードに区分される。以下、前記ルーティングテーブルを保存しているノードを“Ｎ＋”といい、前記ルーティングテーブルを保存していないノードを“Ｎ−”という。
【０００４】
以下、“Ｎ＋”と“Ｎ−”から構成されたアドホックネットワークにおいて、ルーティング経路を設定する従来の方法について説明する。ノードＡをソースノードといい、ノードＩを宛先ノードという。前記ソースノードは、ルーティング経路設定を要請するノードであり、前記宛先ノードは、前記ソースノードがルーティング経路を設定しようとするノードである。従って、“Ｎ＋”である前記ノードＡは、ルーティングテーブルに宛先ノードであるＩに対する経路情報があるか否かを確認する。前記ノードＩについて保存されている経路情報がなければ、前記ノードＩにルーティング経路を設定するために隣接しているノードを対象としてルーティング経路設定要請（Ｒｏｕｔｅ  Ｒｅｑｕｅｓｔ：ＲＲＥＱ）メッセージをブロードキャストする（Ｓ１００）。“Ｎ＋”であるノードＢは、受信したＲＲＥＱメッセージの宛先ノードであるノードＩに対する経路情報を自分のルーティングテーブル内で検索する。もし、経路情報があれば、ノードＢは、ノードＡにルーティング経路設定応答（Ｒｏｕｔｅ  Ｒｅｐｌｙ：ＲＲＥＰ）メッセージを応答し、経路情報がなければ、ノードＢは、自分のルーティングテーブルにノードＩに対する経路情報フィールド（ｆｉｅｌｄ）を生成し、隣接しているノードを対象としてＲＲＥＱメッセージをブロードキャストする（Ｓ１０２、Ｓ１０８）。ノードＣもまた“Ｎ＋”であるため、ノードＢと同一の作業を行う（Ｓ１０４、Ｓ１０６）。
【０００５】
前記ノードＢからブロードキャストされたＲＲＥＱメッセージを受信したノードＧは、“Ｎ−”であるため、ＲＲＥＱメッセージに対する応答であるＲＲＥＰメッセージを前記ノードＢへ転送する（Ｓ１２８）。従来のアルゴリズムによると、アドホックネットワークを構成している“Ｎ−”は、受信したＲＲＥＱメッセージに対してＲＲＥＰメッセージを転送する。すなわち、前記“Ｎ−”は、受信されたＲＲＥＱで要請されている宛先ノードでないにも拘わらず、ツリー構造とノード特性によってＲＲＥＰメッセージを転送する。すなわち、“Ｎ−”は、ルーティングテーブルを有しないため、ＲＲＥＱメッセージを受信しても経路情報を保存および検索することができず、単にツリー構造により上位ノードあるいは下位ノードへのみメッセージを伝達するしかないため、これ以上の経路探索を行うことができないためである。前記ノードＧからのＲＲＥＰメッセージは、前記ノードＢを経由してノードＡへ伝達される（Ｓ１２０）。一般的に、ツリー構造を生成する段階において、各ノードは、一定の距離（例えば、１ホップ）以内にあるノードに対する情報を、周辺ノードリスト（Ｎｅｉｇｈｂｏｒ  Ｌｉｓｔ）として保存している。
【０００６】
ノードＤもまた、“Ｎ−”ノードであるため、前記ノードＧと同様な動作を行う。従って、前記ノードＤが生成したＲＲＥＰメッセージは、ノードＣとノードＢを経由してノードＡへ伝達される（Ｓ１２４、Ｓ１２２、Ｓ１２０）。前記ノードＣからＲＲＥＱメッセージを受信したノードＦは、“Ｎ＋”ノードであるため、ＲＲＥＱメッセージをブロードキャストできる（Ｓ１１０、Ｓ１１２、Ｓ１１４）。前記ノードＥもまた前記ノードＧと同一の動作を行う。前記ノードＨは、受信したＲＲＥＱメッセージをノードＩへ伝達する（Ｓ１１６）。前記ＲＲＥＱメッセージを受信したノードＩは、前記ノードＡがルーティング経路を設定しようとするノードが自分であることを認知することになる。従って、前記ノードＩは、前記ＲＲＥＱメッセージに対する応答であるＲＲＥＰメッセージを生成する。前記生成されたＲＲＥＰメッセージは、前記ＲＲＥＱメッセージが転送された経路を通じて前記ノードＡへ伝達される。前記のような過程を行うことにより、前記ノードＡとノードＩとの間のルーティング経路が設定される。前記説明において省略したが、前記ルーティングテーブルを保存する“Ｎ＋”は、受信したＲＲＥＱメッセージ情報を利用して宛先ノードに対するｆｉｅｌｄをルーティングテーブルに生成した後、受信したＲＲＥＱメッセージを隣接ノードへ伝達する。一般的に、前記“Ｎ＋”は、ホップ数を更新した後、隣接ノードへ転送する。前記ノードの間に設定されるルーティング経路として、ホップ数が最も小さい経路が選択される。その後、“Ｎ＋”ノードは、ＲＲＥＱメッセージに対する応答であるＲＲＥＰメッセージを受信して、該当ノードに対して生成しておいたルーティングテーブルのｆｉｅｌｄ値を満たしてルーティングテーブルを管理する。ここで、前述のとおり、前記ノードＡは、１つのＲＲＥＱメッセージに対して多数のＲＲＥＰメッセージを受信することになる。ところが、前記“Ｎ−”ノードが転送したＲＲＥＰメッセージは、不要なメッセージである。
【０００７】
図２は、アドホックネットワークを構成しているノードにおいて、従来のアルゴリズムを用いて、ルーティング経路を設定する他の例を示している。この例においては、ソースノードから宛先ノードへのフォーワード経路は、宛先ノードからソースノードへのバックワード経路とは異なる経路に設定される。
【０００８】
この図２に示す例においては、ノードＡは、ノードＥへのルーティング経路の設定を要請する。前記ノードＡは、保存しているルーティングテーブルを検索して、ノードＥとルーティング経路が設定されているか否かを判断する。前記判断の結果、ノードＥへのルーティング経路が設定されていないときは、ノードＡは、ＲＲＥＱメッセージをブロードキャストする（Ｓ２００）。前記ＲＲＥＱメッセージを受信した前記ノードＢも、保存しているルーティングテーブルを検索して、ノードＥへのルーティング経路が設定されているか否かを判断する。前記判断の結果、ノードＥへのルーティング経路が設定されていないときは、ノードＢは、ＲＲＥＱメッセージをブロードキャストする（Ｓ２０２）。
【０００９】
ノードＣは、前記ノードＡがルーティング経路を設定しようとするノードが自分であるか否かを判断する。前記ノードＣは、前記ノードＡがルーティング経路を設定しようとするノードでないため、“Ｎ−”である前記ノードＣは、ツリー経路に沿ってノードＤへＲＲＥＱメッセージを転送する（Ｓ２０４）。ノードＤも、ノードＡがルーティング経路を設定しようとするノードが自分であるか否かを判断する。前記ノードＤは、前記ノードＡがルーティング経路を設定しようとするノードでないため、ノードＤは、ノードＥへＲＲＥＱメッセージを転送する（Ｓ２０６）。前記ノードＥは、前記ノードＡがルーティング経路を設定しようとするノードが自分であることを認知することになる。
【００１０】
前記ノードＥは、前記ＲＲＥＱメッセージに対する応答であるＲＲＥＰメッセージを生成する。前記生成されたＲＲＥＰメッセージは、ノードＤへ伝達される（Ｓ２１０）。前記ノードＤは、伝達されたＲＲＥＰメッセージをノードＦへ伝達する（Ｓ２１２）。前記ノードＦは、ＲＲＥＰメッセージをツリーに沿ってソースノードＡへ転送する。このように、フォワード（Ｆｏｒｗｏｒｄ）ルーティング経路とバックワード（Ｂａｃｋｗａｒｄ）ルーティング経路が相異なるという問題点を有することになる。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
前述した問題点を解決するために、本発明は、ツリー構造と制限的な機能を有するノード（例えば、ルーティングテーブルがないためオン−デマンド（Ｏｎ−ｄｅｍａｎｄ）方式のルーティング設定機能を持たないＮ−ノード）が混在した状態で構成された無線ネットワークにおいて、１つのＲＲＥＱメッセージに対して複数個のＲＲＥＰメッセージが受信されることを防止する方法を提案することにある。
【課題を解決するための手段】
【００１５】
前述の本発明の目的を達成するために、本発明は、ツリー構造に形成された無線ネットワークを構成するデバイスがＲＲＥＱ（Ｒｏｕｔｅ  ＲＥＱｕｅｓｔ）メッセージを受信するステップと、前記ＲＲＥＱメッセージを受信した前記デバイスがルーティングテーブルを保持していない場合、前記デバイスは前記ＲＲＥＱメッセージが前記デバイスの子孫デバイスから受信されたか否かを判断するステップと、前記ＲＲＥＱメッセージが前記デバイスの子孫デバイスから受信されなかった場合、前記デバイスは前記ＲＲＥＱメッセージを廃棄するステップと、を含むことを特徴とする。
【発明の効果】
【００１６】
前記のように、本発明は、１つのＲＲＥＱメッセージに対して複数個のＲＲＥＰメッセージが受信されることを防止することができる。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照して本発明について詳述する。
まず、本発明において用いる用語について説明する。ツリー経路は、ＲＲＥＱメッセージとＲＲＥＰメッセージによるオンデマンド方式で経路を設定する前に各ノードの間に既に設定されている経路を意味する。ルーティング経路は、ソースノードと宛先ノードとの間の通信のために中間ノードを利用して設定された経路を意味する。子孫（ｄｅｓｃｅｎｄａｎｔ）ノードは、自分を基準としてツリー構造上において深さ（ｄｅｐｔｈ）の大きい、すなわち、下方に位置しているノードを意味する。先祖（ａｎｃｅｓｔｏｒ）ノードは、自分を基準としてツリー構造上において深さの小さい、すなわち、上方に位置しているノードを意味する。親ノードは、自分を基準としてツリー構造上において上方に位置して直接連結されている先祖ノードを意味し、子ノードは、自分を基準としてツリー構造上において下方に位置して直接連結されている子孫ノードを意味する。
【００１８】
本発明の実施形態においては、ソースノードが、自分のタイプ（“Ｎ＋”または“Ｎ−”）と宛先ノードの位置とに基づいてルーティング経路を設定する方法を決定する。宛先ノードの位置によってルーティング経路設定方法を決定する方法は二つある。宛先ノードがソースノードと同じクラスタ内の先祖ノードである場合、子孫ノードである場合、または宛先ノードが属するクラスタがソースノードが属するクラスタより深さ（ｄｅｐｔｈ）が大きい場合は、経路設定のための探索を行なうことなく、既に設定されているツリー経路を利用してデータパケットを転送することが最適な方法である。それ以外の場合は、ツリー経路を利用するよりも、ＲＲＥＱメッセージのブロードキャストを通じてオンデマンド方式で経路を探す方が、最適の経路を探すことができる。以下、ソースノードの応用プログラムにおいて、宛先ノードへ転送するデータが発生した場合にルーティング経路を設定する方法について説明する。前記図１を参照して、ノードＦをソースノードであると仮定し、宛先ノードをノードＡであると仮定すれば、ノードＦの子孫ノードは、ノードＥ、ノードＨおよびノードＩである。ノードＦの先祖ノードは、ノードＣ、ノードＢおよびノードＡである。前記ソースノードＦは、宛先ノードＡのアドレスを分析することにより、ツリー構造上における宛先ノードとソースノード自身との相対的な位置、すなわち、この場合は、宛先ノードＡは、ソースノードＦの先祖ノードであることを把握できるようになる。
【００１９】
アドレス体系を利用して、ノードＡがツリー経路上において先祖ノードであることを認知すると、前記ノードＦは、前記ノードＡへデータパケットを転送する。前記ノードＦは、ノードＡがツリー経路上において先祖ノードであることを認知した情報をルーティングテーブルに保存することができる。前記情報をルーティングテーブルに保存する場合、前記ノードＦは、ノードＡへ転送するデータが新たに発生すれば、アドレス体系を分析することなく、ルーティングテーブルに保存されている情報を利用して前記ノードＡへデータパケットを転送する。このようにすることで、前記ノードＦがアドレスを分析することによってノードＡの位置を把握するのに要する時間を減少させることができるようになる。
【００２０】
また、前記ノードＦは、前記伝達するデータに所定の情報を付加することができる。前記所定の情報は、データに付加されている宛先ノードのアドレスと、データを伝達されたノード自身のアドレスとが一致していない場合、前記データをツリー経路に沿って親ノードへ中継することを指示する。このようにすることで、前記ノードＣは、前記ノードＡのアドレスを利用して位置を把握することなく、伝達されたデータをノードＢへ中継する。前記ノードＢもまた伝達されたデータをノードＡへ中継する。
【００２１】
前述のとおり、前記ソースノードが、ツリー構造上において先祖ノーである宛先ノードへ、経路設定を行なわずに宛先ノードのアドレスを分析して相対的位置を把握することのみによって、直ちにデータを転送することにより、経路設定の手続きに要する時間が減少する。その結果、データ転送に要する全体時間を減少させることができるようになる。すなわち、ソースノードにおいてただ一度だけアドレス体系を分析することにより、複数個のデータを宛先ノードへ伝達できるようになる。
【００２２】
（実施形態）
＜第１実施形態＞
以下、ソースノードが宛先ノードへのルーティング経路を設定する、本発明の第１実施形態について説明する。先ず、ツリー経路上に位置しているノードが“Ｎ−”である場合について説明し、次に、ツリー経路上に位置しているノードが“Ｎ＋”である場合について説明する。
【００２３】
１．ツリー上に位置しているノードが“Ｎ−”である場合
“Ｎ−”がソースノードであれば、前記“Ｎ−”ソースノードは、宛先ノードが、ツリー経路上において、子孫ノードであるか、先祖ノードであるかを判断する。前記“Ｎ−”は、ルーティングテーブルを保存していないが、宛先ノードのアドレスを分析することによって、宛先ノードが、ツリー経路上において子孫ノードであるか、先祖ノードであるかを判断することができ、その結果によって、自分と連結されたツリー経路を利用してデータパケットを転送する。このようにデータパケットを転送することにより、前記“Ｎ−”ソースノードは、宛先ノードまでの経路中に存在する“Ｎ＋”ノードを前記“Ｎ−”ソースノードのエージェントノードとして利用して経路を検索することができる。
【００２４】
以下、“Ｎ−”が中間ノード（Ｉｎｔｅｒｍｅｄｉａｔｅ  Ｎｏｄｅ）である場合について説明する。前記“Ｎ−”中間ノードは、受信したデータを、宛先ノードのアドレスを分析することによって、ツリー経路上における親ノードまたは子ノードへ中継する。前記“Ｎ−”は、ＲＲＥＱメッセージを受信した場合、受信したＲＲＥＱメッセージの伝達形態（ブロードキャストあるいはユニキャスト）によって動作する。すなわち、ブロードキャストＲＲＥＱメッセージを受信したら、前記“Ｎ−”は、伝達されたＲＲＥＱメッセージを送信したノードと自分との相対的位置を確認し、ＲＲＥＱメッセージが自分の子ノードから受信され、且つＲＲＥＱメッセージの最終宛先ノードが自分の子孫ノードである場合にのみ、自分のツリー経路を利用して受信したＲＲＥＱメッセージを転送（ユニキャスト）する。他のブロードキャストＲＲＥＱメッセージは廃棄される。このようにすることで、不要なＲＲＥＱメッセージが送受信されることを防止できるようになる。前記“Ｎ−”中間ノードは、ユニキャストＲＲＥＱメッセージを受信した場合、宛先ノードの相対的な位置によって、適当なツリー経路に沿って、受信したＲＲＥＱメッセージを転送（ユニキャスト）する。以下、前記“Ｎ−”が、受信したＲＲＥＱメッセージがブロードキャストされたメッセージであるか、ユニキャストされたメッセージであるかを判断する方法について説明する。一般的に、ＲＲＥＱメッセージを転送する中間ノードは、前記ＲＲＥＱメッセージをブロードキャストするか、ユニキャストするかを判断する。ユニキャストすると判断した場合、前記中間ノードは、前記ＲＲＥＱメッセージを受信するノードのアドレスを、前記ＲＲＥＱメッセージの宛先ノードアドレスフィールド（Ｄｅｓｔｉｎａｔｉｏｎ  Ａｄｄｒｅｓｓ  Ｆｉｅｌｄ）に付加して転送する。ブロードキャストすると判断すれば、前記中間ノードは、システム設計初期に設定したブロードキャストのアドレス情報をＲＲＥＱメッセージの受信ノードアドレスフィールドに付加して転送する。ＲＲＥＱメッセージを受信したノードは、前記受信ノードアドレスフィールド値と自分のアドレス情報を比較することにより、前記ＲＲＥＱメッセージがブロードキャストされたものか、自分に伝達されるユニキャストメッセージであるかが分かる。
【００２５】
前記“Ｎ−”が宛先ノードである場合について説明する。
ツリー構造上のＲＲＥＡメッセージのソースノードと宛先ノードとの間に位置した子孫ノードによってブロードキャストされたＲＲＥＱメッセージを受信した場合、前記“Ｎ−”は、ＲＲＥＰメッセージを生成し、前記生成したＲＲＥＰメッセージを、受信したＲＲＥＱメッセージに含まれる経路情報を利用して転送する。また、ユニキャストされたＲＲＥＱメッセージを受信した場合、前記“Ｎ−”は、ＲＲＥＰメッセージを生成し、生成したＲＲＥＰメッセージを転送する。
【００２６】
２．ツリー上に位置しているノードが“Ｎ＋”である場合
前記“Ｎ＋”である任意のノードの応用プログラムから任意の宛先ノードへ転送するデータが発生するか、周辺ノードからデータパケットを伝達されて前記“Ｎ＋”ノードがソースノードとなった場合、ルーティングテーブルを持っている“Ｎ＋”ノードは、前記宛先ノードに関する情報が既にルーティングテーブルに保存されているか否かを検索する。検索の結果、前記宛先ノードに関する情報が既にルーティングテーブルに保存されていれば、ルーティングテーブルに保存された次のホップアドレスへデータパケットを転送する。もし、前記宛先ノードに関する情報がルーティングテーブルに保存されていなければ、ソースノードは、宛先ノードのアドレス情報を分析することによって、宛先ノードの相対的な位置を把握する。もし、宛先ノードが、ソースノードの周辺ノードであるか、子孫ノードであれば、ソースノードは、該当ツリー経路を通じてデータパケットを転送する。その他の場合、ソースノードは、新たなルーティング経路設定のためにＲＲＥＱメッセージをブロードキャストすることにより経路探索過程を行う。この経路探索過程の間、既に受信したデータパケットは、探索過程が完了するまで転送を保留することもできる。経路探索の結果として、ソースノードは、受信するＲＲＥＰメッセージのうち最も小さいリンクコスト（一般的にホップ数）を有するＲＲＥＰメッセージを選択して、該当情報をルーティングテーブルに保存し、該当経路へデータパケットを転送する。
【００２７】
前記“Ｎ＋”が、中間ノードであって、データパケットを受信した場合には、“Ｎ＋”がソースノードである場合と同様に動作する。また、ＲＲＥＱメッセージを受信した場合、“Ｎ＋”は、ルーティングテーブルを検索して該当情報が存在すれば、ＲＲＥＰメッセージとして応答し、該当情報が存在していなければ、アドレス分析を行う。もし、宛先ノードが子孫ノードであれば、“Ｎ＋”は、該当ツリー経路を利用して宛先ノードへ受信したデータを転送する。もし、宛先ノードが子孫ノードでなければ、“Ｎ＋”は、受信したＲＲＥＱメッセージを周辺ノードへブロードキャストする。
【００２８】
前記“Ｎ＋”が宛先ノードであれば、自分のルーティングテーブルを検索して、該当ソースノードからＲＲＥＱメッセージを受信したことがあるか否かを確認する。もし、初めて受信したＲＲＥＱメッセージであれば、“Ｎ＋”は、ルーティングテーブルに該当ソースノードに対する情報を新たに書込み、ＲＲＥＰメッセージで応答する。もし、重複受信したＲＲＥＱメッセージであれば、既に保存されているリンクコスト値と受信したＲＲＥＱメッセージリンクコスト値とを比較する。新たに受信したＲＲＥＱメッセージがより小さい値を有する場合、“Ｎ＋”は、ルーティングテーブル情報をアップデートし、ＲＲＥＰメッセージで応答する。
【００２９】
以下、図３を参照して、前記第１実施形態について説明する。
前記図３において、ソースノードはノードＥであり、宛先ノードは、ノードＩである。前記ソースノードＥは、ルーティングテーブルを有しない“Ｎ−”型のノードであるため、Ｓ３００段階において、ツリー経路上において親ノードであるノードＢへデータを伝達する。この場合、ソースノードＥは、ツリー構造上の最終端に位置したノードであり、親ノードとのツリー連結を１つ有するため、宛先ノードのアドレスを分析することなく、単にデータパケットを伝達することにより、親ノードＢをエージェントとして用いる。前記ノードＢは、伝達されたデータに含まれている宛先ノードのアドレス情報を抽出し、“Ｎ＋”型ノードであるため、自身のルーティングテーブルに宛先ノードに関する経路情報があるかを検索する。経路情報が存在していなければ、ノードＢは、抽出されたアドレス情報を利用して宛先ノードの位置を分析する。図３において、宛先ノードＩは、ノードＢの子孫ノードでないため、前記ノードＢは、伝達されたデータを保存して、ＲＲＥＱメッセージを生成して、生成したＲＲＥＱメッセージをブロードキャストする（Ｓ３０２、Ｓ３０４、Ｓ３０６）。前記ノードＦは、受信したＲＲＥＱメッセージを廃棄する。すなわち、ツリー経路上において先祖ノードから受信したＲＲＥＱメッセージがブロードキャストされたメッセージであれば、受信したＲＲＥＱメッセージを廃棄する。
【００３０】
前記“Ｎ＋”であるノードＣは、受信したＲＲＥＱメッセージの情報を利用して自分のルーティングテーブルの宛先ノードに関する情報を更新した後に受信したＲＲＥＱメッセージをブロードキャストする（Ｓ３０８、Ｓ３１０、Ｓ３１２、Ｓ３１４）。前記ノードＧとノードＨは、受信したＲＲＥＱメッセージを廃棄する。前記ノードＢとノードＣからＲＲＥＱメッセージを受信したノードＡが、もしノードＩに対するルーティングテーブルを保存していれば、前記ノードＩの位置が分かるようになる。従って、前記ノードＡは、受信したＲＲＥＱメッセージに対する応答であるＲＲＥＰメッセージを転送する。この場合、ノードＡは、受信したＲＲＥＱメッセージのホップ数を比較し、ホップ数の最も少ないＲＲＥＱメッセージに対してのみＲＲＥＰを転送する。すなわち、図３の場合、前記ノードＡは、ノードＢへのみＲＲＥＰメッセージを転送する。前記ノードＡが前記ノードＩに対するルーティングテーブルを保存していなければ、ノードＡは、宛先ノードが自分の子孫ノードでないことが分かるため、前記ノードＤへＲＲＥＱメッセージをユニキャスティングする。以下、前記ノードＡから転送されるＲＲＥＱメッセージに対する説明は省略する。
【００３１】
前記ノードＤは、ノードＩへ更新したＲＲＥＱメッセージをユニキャストする（Ｓ３１６）。前記宛先ノードＩは、ＲＲＥＱメッセージに対する応答であるＲＲＥＰメッセージを生成し、前記生成したＲＲＥＰメッセージをノードＤへユニキャストする（Ｓ３１８）。前記ノードＤは、ＲＲＥＱメッセージを受信する時、ルーティングテーブルに保存していた情報を利用して前記ノードＣに更新されたＲＲＥＰメッセージを転送し（Ｓ３２０）、前記ノードＣも同様の方式で前記ノードＢへ更新されたＲＲＥＰメッセージを転送する（Ｓ３２２）。このような過程を行うことになり、前記ノードＢからノードＩへのデータ転送のためのルーティング経路が設定される。前記ノードＢは、保存されているデータを、設定されたルーティング経路を利用して、ノードＩまで伝達する。
【００３２】
図４は、本発明の実施形態において、ＲＲＥＱメッセージを受信したノードにおいて行われる動作を示す。Ｓ４００段階においては、ノードはＲＲＥＱメッセージを受信する。Ｓ４０２段階において、前記ノードは、受信されたメッセージを利用して自分が宛先ノードであるか否かを判断する。前記判断の結果、前記ノードが宛先ノードであれば、Ｓ４１６段階に移動し、前記判断の結果、宛先ノードでなければＳ４０４段階に移動する。Ｓ４０４段階において、前記ノードは“Ｎ＋”であるか否かを判断する。前記判断の結果、“Ｎ＋”であればＳ４０６段階に移動し、前記判断の結果“Ｎ−”であれば、Ｓ４１２段階に移動する。
【００３３】
前記Ｓ４０６段階において、前記ノードはＲＲＥＱメッセージに含まれている宛先ノードが子孫ノードであるか否かを判断する。前記判断の結果、前記宛先ノードが子孫ノードでなければ、Ｓ４１０段階に移動して受信したＲＲＥＱメッセージを更新した後、再−ブロードキャストする。前記判断の結果、前記宛先ノードが子孫ノードであれば、Ｓ４０８段階に移動した後、受信したＲＲＥＱメッセージを更新した後にユニキャストする。前記ノードがＮ＋であれば、前記Ｓ４１２段階において、前記ノードは、受信したＲＲＥＱメッセージがユニキャストされたメッセージまたは子孫ノードからブロードキャストされたメッセージであるか否かを判断する。前記判断の結果、受信したＲＲＥＱメッセージがユニキャストされたメッセージまたは子孫ノードからブロードキャストされたメッセージであれば、Ｓ４０８段階に移動する。前記判断の結果、受信したＲＲＥＱメッセージがユニキャストされたメッセージまたは子孫ノードからブロードキャストされたメッセージでなければ、Ｓ４１４段階に移動した後、受信したＲＲＥＱメッセージを廃棄する。
【００３４】
Ｓ４１６段階において、前記ノードは“Ｎ＋”であるか否かを判断する。前記判断の結果、“Ｎ＋”であればＳ４１８段階に移動し、前記判断の結果、“Ｎ−”であればＳ４２２段階に移動する。Ｓ４１８段階において、受信したＲＲＥＱメッセージのリンクコストとルーティングテーブルに保存されていたリンクコストとを比較する。前記比較の結果、受信したＲＲＥＱメッセージのリンクコストが小さければ、Ｓ４２０段階に移動して受信したＲＲＥＱメッセージの情報をルーティングテーブルにアップデートする。前記比較の結果、受信したＲＲＥＱメッセージのリンクコストが小さくない場合は、Ｓ４１４段階に移動した後、受信したＲＲＥＱメッセージを廃棄する。Ｓ４２２段階において、前記ノードは受信したＲＲＥＱメッセージに対する応答であるＲＲＥＰメッセージを生成する。
【００３５】
図５は、本発明の実施形態において、ＲＲＥＰメッセージを受信したノードにおいて行われる動作を示すフローチャートである。Ｓ５００段階において、ノードは、ＲＲＥＰメッセージを受信する。Ｓ５０２段階において、前記ノードは、自分がソースノードであるか否かを判断する。前記判断の結果、自分がソースノードであれば、Ｓ５０４段階に移動し、前記判断の結果、ソースノードでなければ、Ｓ５１８段階に移動する。前記Ｓ５０４段階において、ノードは“Ｎ＋”であるか否かを判断する。前記判断の結果、“Ｎ＋”であればＳ５０８段階に移動し、前記判断の結果、“Ｎ−”であればＳ５０６段階に移動してＲＲＥＰメッセージを廃棄する。前記Ｓ５０８段階において、前記ノードは、受信したＲＲＥＰメッセージが新たなものであるか否かを判断する。新たに受信したＲＲＥＰメッセージであれば、Ｓ５１４段階に移動して、該当ソースノードに関するルーティングテーブル情報を新たに生成することにより、ルーティングテーブルを更新する。新たに受信したものではなく、すなわち、そのＲＲＥＰメッセージを以前に受信したことがあれば、Ｓ５１２段階に移動して、そのＲＲＥＰメッセージのリンクコストとルーティングテーブルに保存されたリンクコストとを比較する。比較の結果、受信したＲＲＥＰメッセージのリンクコスト値が保存された値より小さければ、Ｓ５１４段階において、該当情報でルーティングテーブル値を更新した後、Ｓ５０６段階において該当ＲＲＥＰメッセージを廃棄する。
【００３６】
前記Ｓ５１８段階において、“Ｎ＋”であればＳ５２２段階に移動し、“Ｎ−”であればＳ５２０段階に移動して該当ＲＲＥＰメッセージをユニキャストする。前記Ｓ５２２段階においては、新たに受信したＲＲＥＰメッセージであるか否かを確認し、新たに受信したＲＲＥＰメッセージであればＳ５２４段階に移動して、該当ノードに関するルーティングテーブル情報を生成することによりルーティングテーブルを更新した後、Ｓ５２６段階に移動してＲＲＥＰメッセージを転送する。もし、新たに受信したＲＲＥＰメッセージでなければ（ルーティングテーブルに該当情報が存在すれば）、Ｓ５２８段階に移動して、ＲＲＥＰメッセージのリンクコストと保存されている該当情報のリンクコストとを比較する。前記比較の結果、ＲＲＥＰメッセージが小さいリンクコストを有する場合には、Ｓ５２４段階において該当ソースノードに関するルーティングテーブル情報を更新してＳ５２６段階に移動する。もし、小さい値を有していなければ、Ｓ５０６段階に移動して該当ＲＲＥＰメッセージを廃棄する。
【００３７】
図６は、本発明の実施形態において、データを受信したノードにおいて行われる動作を示すフローチャートである。Ｓ６００段階は、前記ノードが応用プログラム（上位階層）からデータを受信した場合であり、Ｓ６０２段階は、周辺ノード（下位階層）からデータを受信した場合である。前記Ｓ６０２段階において、前記ノードがデータを受信すれば、Ｓ６１４段階に移動して前記ノードが宛先ノードであるか否かを確認する。前記ノードが宛先ノードであれば、Ｓ６１６段階に移動して、受信したデータを上位階層に伝達し、宛先ノードでなければＳ６０４段階に移動する。前記Ｓ６０４段階において、前記ノードは、“Ｎ＋"であるか否かを判断する。前記判断の結果、“Ｎ＋"であれば、前記ノードはＳ６０６段階に移動し、前記判断の結果、“Ｎ−"であればＳ６１２段階に移動する。前記
Ｓ６０６段階において、ルーティングテーブルに宛先ノードに対する情報があるか否かを確認し、前記確認の結果、ルーティングテーブルに宛先ノードに対する情報があれば、Ｓ６０８に移動する。前記Ｓ６０８段階において、次のホップに位置しているノードへデータを転送し、Ｓ６１０段階において、タイマーを設定する。前記確認の結果、ルーティングテーブルに宛先ノードに対する情報がなければ、Ｓ６１８段階に移動して宛先ノードとの相対的な位置を把握する。もし、宛先ノードが子孫ノードまたは位置確認が可能な隣接ノードであれば、Ｓ６１２段階において、該当ツリー経路を利用して転送する。もし、そうでなければ、Ｓ６２０段階に移動して、ＲＲＥＱメッセージをブロードキャストして経路探索を行う。前記Ｓ６０４段階において、前記ノードが“Ｎ−"ノードであれば、Ｓ６
１２段階に移動してツリー経路を利用してデータを転送する。
【００３８】
以下、図７乃至図８を参照して前記第１実施形態の限界を説明し、その限界を解決できる第２実施形態について説明する。
【００３９】
図７は、第１実施形態によりルーティング経路を設定する場合、最適のルーティング経路を設定できないことを示している。前記図７において、ノードＡがソースノードであり、ノードＩが宛先ノードである場合を仮定する。前記ノードＡはデータをノードＢへ伝達し（Ｓ７００）、ノードＢは伝達されたデータをノードＣへ中継する（Ｓ７０２）。前記ノードＣは、伝達されたデータをバッファに保存し、ＲＲＥＱメッセージを生成する。前記ノードＣは、生成したＲＲＥＱメッセージをブロードキャストする（Ｓ７０４、Ｓ７０６）。以下、前記Ｓ７０４についての説明は省略する。前記ノードＦは、伝達されたＲＲＥＱメッセージを更新した後、ブロードキャストする（Ｓ７０８）。前記ノードＧは、伝達されたＲＲＥＱメッセージに含まれている宛先ノードに関する情報を分析することにより、前記受信したＲＲＥＱメッセージを更新して前記ノードＩへユニキャストする（Ｓ７１０）。前記ノードＩは、ＲＲＥＰメッセージを、前記ＲＲＥＱメッセージが転送された経路の逆の経路に沿って転送することになる。前述のような過程を行うことにより、前記ノードＡ、ノードＢ、ノードＣ、ノードＦ、ノードＧ、ノードＩへのルーティング経路が設定される。
【００４０】
ところが、前記経路は、最適のルーティング経路ではない。すなわち、前記ノードＡ→ノードＨ→ノードＩの経路が最適のルーティング経路である。
【００４１】
図８は、第１実施形態によりルーティング経路を設定する場合、フォワードルーティング経路とバックワードルーティング経路が異なる経路に設定される場合を示している。前記フォワードルーティング経路は、ソースノードから宛先ノードまでのルーティング経路であり、前記バックワードルーティング経路は、宛先ノードからソースノードまでのルーティング経路である。
【００４２】
前記図８において、ソースノードはノードＡであり、宛先ノードはノードＭである。前記ノードＡは、ノードＭへのルーティング経路を設定するためにＲＲＥＱメッセージをブロードキャストする（Ｓ８００）。前記ノードＩは、受信したＲＲＥＱメッセージを更新し、前記更新したＲＲＥＱメッセージをブロードキャストする（Ｓ８０２、Ｓ８０４）。前記ノードＫは、ノードＩがブロードキャストしたＲＲＥＱメッセージを受信して更新する。前記ノードＫは、更新したＲＲＥＱメッセージをブロードキャストし（Ｓ８１０、Ｓ８１６）、前記ノードＭは、前記ＲＲＥＱメッセージを受信する。Ｓ８０６、Ｓ８０８、Ｓ８１２、Ｓ８１４についての詳しい説明は省略する。前述のような過程を行うことにより、ノードＡ→ノードＩ→ノードＫ→ノードＭのフォワードルーティング経路が設定される。
【００４３】
前記ＲＲＥＱメッセージを受信したノードＭは“Ｎ−”であるため、ＲＲＥＰメッセージをノードＬへユニキャストする（Ｓ８１８）。“Ｎ−”である前記ノードＬは、受信したＲＲＥＰメッセージを更新した後、ノードＧへユニキャストする（Ｓ８２０）。“Ｎ−”である前記ノードＧは、受信したＲＲＥＰメッセージを更新した後、ノードＦへユニキャストする（Ｓ８２２）。前述のとおり、前記ＲＲＥＰメッセージは、Ｓ８２４、Ｓ８２６、Ｓ８２８、Ｓ８３０、Ｓ８３２の過程によって、前記ノードＡへ伝達される。従って、前記図８において、バックワードルーティング経路は、ノードＭ→ノードＬ→ノードＧ→ノードＦ→ノードＥ→ノードＤ→ノードＣ→ノードＢ→ノードＡとなる。
【００４４】
このように、本発明の第１実施形態は、フォワードルーティング経路とバックワードルーティング経路が異なる経路に設定される、という短所を有している。従って、以下に詳細に説明する本発明の第２実施形態は、第１実施形態の短所を解決するための方案を提案する。
【００４５】
＜第２実施形態＞
前記第１の実施形態の短所を解決するため、本発明は、“Ｎ−”であるノードに所定の大きさのルーティンテーブルを与える方案を提案する。また、本発明は、ボーダーノード（ＢｏｒｄｅｒＮｏｄｅ）の概念を提案する。
１．ツリー上に位置しているノードが“Ｎ−”である場合
ソースノードが“Ｎ−”ノードであれば、前記“Ｎ−”ノードは、転送するデータをバッファに保存する。また、前記“Ｎ−”は、アドレス体系を分析して宛先ノードの位置を判断する。宛先ノードがツリー経路上の子孫ノードであれば、前記“Ｎ−”ノードは、ルーティング経路探索を行わずにツリー経路を利用してデータを転送する。もし、宛先が子孫ノードでなければ、“Ｎ−”ノードであっても該当する宛先ノードに対する１つのルーティングテーブルを生成し、ＲＲＥＱメッセージをブロードキャストする。
【００４６】
“Ｎ−”ノードが中間ノードであれば、前記“Ｎ−”ノードは、ユニキャストされたＲＲＥＱメッセージを受信した場合は、前記受信したＲＲＥＱメッセージを更新した後、ツリー経路に沿って転送する。前記“Ｎ−”は、ＲＲＥＱメッセージのソースノードが自分の子孫ノードであり、自分の子ノードがブロードキャストしたＲＲＥＱメッセージを受信した場合は、前記受信したＲＲＥＱメッセージを更新した後、ツリー経路に沿って転送する。
【００４７】
“Ｎ−”ノードが宛先ノードであれば、前記“Ｎ−”ノードは、受信したＲＲＥＱメッセージに応答するＲＲＥＰメッセージを生成し、ＲＲＥＱメッセージに含まれた次のボーダーノードの情報を保存し、前記生成したＲＲＥＰメッセージを転送する。この時、“Ｎ−”ノードであっても該当するソースノードに対する１つのルーティングテーブルを生成して管理する。
【００４８】
２．ツリー上に位置しているノードが“Ｎ＋”である場合
前述の第１実施形態と同様な動作を行う。
【００４９】
図９は、本発明の第２実施形態によってフォワードルーティング経路とバックワードルーティング経路を同一に設定する例を示している。以下、図９を参照して本発明によるフォワードルーティング経路とバックワードルーティング経路を同一に設定することができる方案について説明する。
【００５０】
図９においては、ソースノードはノードＡであり、宛先ノードはノードＬである。前記ノードＡは、宛先ノードのアドレス体系を分析することによって、自分の子孫ノードでないことを認識する。前記ノードＡは、第１実施形態と異なって、データをノードＢへ伝達せずにルーティング経路を設定するための経路探索を行う。特に、前記ノードＡは、ＲＲＥＧメッセージを生成し、前記生成したＲＲＥＱメッセージをブロードキャストする（Ｓ９００、Ｓ９０２）。前記ノードＡからノードＢへ転送されるＲＲＥＱメッセージについての説明は省略する。ノードＫは、受信したＲＲＥＱメッセージを更新した後にブロードキャストする（Ｓ９０４）。前記ノードＫは、ＲＲＥＱメッセージをツリー経路を通じて受信していないため、自分がボーダーノードの候補となり得るとの情報を前記ＲＲＥＱメッセージに付加する。前記ボーダーノードは、ＲＲＥＱメッセージをツリー経路に沿って受信せずに、更新したＲＲＥＱメッセージをツリー経路に沿って転送するノードを意味する。
【００５１】
ノードＪは、前記ノードＫがブロードキャストしたＲＲＥＱメッセージを受信する。前記ＲＲＥＱメッセージを受信したノードＪは、前記ノードＫがボーダーノードであることを認知することになる。すなわち、前記ＲＲＥＱメッセージをツリー経路を通じて受信したため、前記ノードＪは、受信したＲＲＥＱメッセージを利用して、前記ノードＫがボーダーノードであることを認知することになる。
【００５２】
前記ノードＪは、前記ＲＲＥＱメッセージに、前記ノードＫがボーダーノードであることを示す情報を付加する。また、前記ノードＪは、前記ノードＫがボーダーノードであることを保存する。前記ノードＪは、更新したＲＲＥＱメッセージをノードＩへユニキャストする（Ｓ９０６）。第１実施形態において説明したとおり、ＲＲＥＱメッセージを子ノードから受信した場合には、中間ノードである“Ｎ−”は、前記受信したＲＲＥＱメッセージを更新してユニキャストする。前記ノードＩは、受信したＲＲＥＱメッセージを更新した後にブロードキャストする（Ｓ９０８、Ｓ９１０）。前記ノードＮは、受信したＲＲＥＱメッセージをブロードキャストする（Ｓ９１４）。勿論、前記ノードＮは、自分がボーダーノードの候補となり得ることを前記ＲＲＥＱメッセージに含ませてブロードキャスティングする。ノードＯは、前記ノードＮがブロードキャストしたＲＲＥＱメッセージを受信したときは、前記ノードＮがボーダーノードであることを認知することになる。従って、前記ノードＯは、受信したＲＲＥＱメッセージに保存されているボーダーノードに関する情報を更新する。前記ノードＯは、前記ノードＮがボーダーノードであることをルーティングテーブルに保存する。前記ノードＯは、受信したＲＲＥＱメッセージを更新した後、ノードＭへユニキャストし（Ｓ９１８）、前記ノードＭは、受信したＲＲＥＱメッセージを更新した後、ノードＬへユニキャストする（Ｓ９２０）。
【００５３】
前記ノードＨは、受信したＲＲＥＱメッセージを更新した後、ブロードキャストする（Ｓ９１２）。ノードＰは、前記ノードＨがブロードキャストしたＲＲＥＱメッセージを受信した後、ノードＯにユニキャストする（Ｓ９１６）。前記ノードＯは、受信したＲＲＥＱメッセージを更新した後、ノードＭへユニキャストし（Ｓ９１８）、前記ノードＭは、受信したＲＲＥＱメッセージを更新した後、ノードＬへユニキャストする（Ｓ９２０）。
【００５４】
前述のような過程を行うことにより、前記ノードＬは、二つ以上のＲＲＥＱメッセージを受信することができる。前記ノードＬは、受信したＲＲＥＱメッセージのうち、リンクコストの小さいＲＲＥＱメッセージを選択する。従って、ノードＡ→ノードＫ→ノードＪ→ノードＩ→ノードＮ→ノードＯ→ノードＭ→ノードＬのフォワードルーティング経路が設定される。前記において説明していないものの、前記各“Ｎ＋”は、ルーティングテーブルに、ＲＲＥＱメッセージに含まれている情報を保存する。以下、バックワードルーティング経路を設定する方法について説明する。
【００５５】
前記ノードＬは、受信したＲＲＥＱメッセージに含まれている“次のボーダーノード”についての情報を保存し、生成したＲＲＥＰメッセージに該当情報を含ませてノードＭへ伝達し（Ｓ９２２）、前記ノードＭは、伝達されたＲＲＥＰメッセージを更新した後、ノードＯへ伝達する（Ｓ９１４）。前記ノードＯは、前記ＲＲＥＰメッセージに含まれているボーダーノードに関する情報を利用して、前記ＲＲＥＰメッセージをノードＮへ伝達する（Ｓ９２６）。前記ノードＮは、受信したＲＲＥＰメッセージの“次のボーダーノード”情報を自分が保存しているボーダーノード情報（ノードＫ）で更新した後、ノードＩへ伝達する（Ｓ９２８）。前述のとおり、Ｓ９３０、Ｓ９３２、Ｓ９３４段階を行うことにより、前記ＲＲＥＰメッセージはノードＡへ伝達される。従って、前記フォワードルーティング経路と同一のバックワードルーティング経路を設定することができるようになる。
【００５６】
図１０は、本発明の他の実施形態によるＲＲＥＱメッセージを受信したノードにおいて行われる動作を示すフローチャートである。
【００５７】
Ｓ１０００段階において、前記ノードは、ＲＲＥＱメッセージを受信する。Ｓ１００２段階において、前記ノードは、受信したＲＲＥＱメッセージにボーダーノード候補に関する情報が含まれているか、および子ノードからＲＲＥＱメッセージを受信したか否かを判断する。
【００５８】
前記判断の結果、受信したＲＲＥＱメッセージにボーダーノード候補に関する情報が含まれており、前記ＲＲＥＱメッセージを子ノードから受信していればＳ１００４段階に移動する。前記の場合でなければＳ１００８段階に移動する。
【００５９】
Ｓ１００４段階において、前記ノードは、ボーダーノード候補であるノードをボーダーノードとしてルーティングテーブルに保存する。Ｓ１００６段階において、前記ノードは、受信したＲＲＥＱメッセージのボーダーノードに関する情報を更新する。Ｓ１００８段階において、前記ノードは、ＲＲＥＱに含まれているボーダーノードに関する情報をルーティングテーブルに保存する。
【００６０】
Ｓ１０１０段階において、前記ノードは、自分が“Ｎ＋”であるか否かを判断する。前記判断の結果、“Ｎ＋”であればＳ１０１２段階に移動し、前記判断の結果、“Ｎ−”であればＳ１０１４段階に移動する。前記Ｓ１０１２段階において、前記ノードは、受信したＲＲＥＱメッセージがブロードキャストされたＲＲＥＱメッセージであるか否かを判断する。前記判断の結果、受信したＲＲＥＱがブロードキャストしたＲＲＥＱであれば、Ｓ１０１６段階に移動し、前記判断の結果、受信したＲＲＥＱがブロードキャストＲＲＥＱでなければ、Ｓ１０２０段階に移動する。前記Ｓ１０１６段階において、前記ノードは、ＲＲＥＱメッセージに含まれるボーダーノード候補情報を自分の情報を利用して更新する。
【００６１】
Ｓ１０２０段階において、前記ノードは、宛先ノードが子孫であるか否かを判断する。前記判断の結果、子孫であればＳ１０２４段階に移動し、ツリー経路を利用して更新したＲＲＥＲＱメッセージをユニキャストする。前記判断の結果、子孫でなければ、Ｓ１０２６段階において保存していたＲＲＥＱボーダーノードの候補情報を削除し、Ｓ１０２８段階において更新したＲＲＥＱメッセージを、Ｓ１０２６段階においてブロードキャストする。
【００６２】
Ｓ１０１４段階において、前記ノードは、受信したＲＲＥＱメッセージがブロードキャストしたＲＲＥＱであるか否かを判断する。前記判断の結果、受信したＲＲＥＱがブロードキャストしたＲＲＥＱであれば、Ｓ１０１８段階に移動し、前記判断の結果、受信したＲＲＥＱがブロードキャストＲＲＥＱでなければ、Ｓ１０２４段階に移動する。前記Ｓ１０１８段階において、前記ノードは、宛先ノードが子孫であるか否かを判断する。前記判断の結果、前記宛先ノードが子孫であれば、更新したＲＲＥＱメッセージを、ツリー経路に沿ってユニキャストする。前記判断の結果、前記宛先ノードが子ノードでなければ、受信したＲＲＥＱメッセージを廃棄する。
【００６３】
図１１は、本発明の他の実施形態において、ＲＲＥＰメッセージを受信したノードにおいて行われる動作を示している。以下、前記図１１を参照して本発明によるＲＲＥＰメッセージを受信したノードにおいて行われる動作について詳しく説明する。
【００６４】
Ｓ１１１０段階において、前記ノードは、ＲＲＥＰメッセージを受信する。Ｓ１１０２段階において、前記ノードは、自分が“Ｎ＋”であるか否かを判断する。前記判断の結果、“Ｎ＋”であればＳ１１０４段階に移動し、前記判断の結果“Ｎ−”であればＳ１１０６段階に移動する。前記Ｓ１１０６段階において、前記ノードは、ツリー経路とルーティングテーブルを利用して、受信したＲＲＥＰメッセージをボーダーノードへ伝達する。前記Ｓ１１０４段階において、前記ノードは、ソースノードについての情報をルーティングテーブルに保存しているか否かを判断する。前記判断の結果、ソースノードについての情報をルーティングテーブルに保存していた場合は、Ｓ１１０８段階に移動し、前記判断の結果、ソースノードに対する情報をルーティングテーブルに保存していなければ、Ｓ１１１４段階に移動する。前記Ｓ１１１４段階において、前記ノードはツリー経路に沿ってＲＲＥＰを転送する。
【００６５】
Ｓ１１０８段階において、前記ノードは、自分がボーダーノードであるか否かを判断する。前記判断の結果、ボーダーノードでなければ、Ｓ１１１０段階に移動し、前記判断の結果、ボーダーノードであれば、Ｓ１１１２段階に移動する。前記Ｓ１１１０段階において、前記ボードは、ＲＲＥＰメッセージに含まれているボーダーボードに関する情報を更新する。すなわち、自分が保存しているボーダーノードに関する情報を利用して前記ＲＲＥＰメッセージを更新する。Ｓ１１１２段階において、前記ノードは、ルーティングテーブルを利用して受信したＲＲＥＰメッセージを更新し、前記更新したＲＲＥＰメッセージを転送する。
【００６６】
以上では、本発明の好ましい実施形態について説明したが、本発明は、前述した特定の実施形態に限定されず、請求の範囲に記載する本発明の要旨を逸脱しない限りにおいて、当該発明の属する技術分野において通常の知識を持つ者ならば誰でも多様な変形実施が可能なことは勿論であり、そのような変更は請求の範囲の記載の範囲内にあることになる。
【産業上の利用可能性】
【００６７】
本発明は、“Ｎ−”が最小限の情報を保存し、前記保存された情報を利用してルーティング経路を設定することにより、フォワードルーティング経路と同一のバックワードルーティング経路を設定することができるようになる。また、“Ｎ−”が最小限の情報を保存し、前記保存された情報を利用してルーティング経路を設定することにより、最適のルーティング経路を設定することができる。
【図面の簡単な説明】
【００６８】
【図１】ツリー構造を基盤としたアドホックネットワークにおいて、ルーティング経路を設定する従来の過程を示す図である。
【図２】ツリー構造を基盤としたアドホックネットワークにおいて、ルーティング経路を設定する従来の過程を示す他の図である。
【図３】本発明の第１実施形態におけるルーティング経路の設定を示す図である。
【図４】第１実施形態において、ルーティング経路設定要請メッセージを受信したノードにおいて行われる動作を示すフローチャートである。
【図５】第１実施形態において、ルーティング経路設定応答メッセージを受信したノードにおいて行われる動作を示すフローチャートである。
【図６】第１実施形態において、データを受信したノードにおいて行われる動作を示すフローチャートである。
【図７】第１実施形態の短所を示す図である。
【図８】第１実施形態の短所を示す他の図である。
【図９】本発明の第２実施形態におけるルーティング経路の設定を示す図である。
【図１０】第２実施形態において、ルーティング経路設定要請メッセージを受信したノードにおいて行われる動作を示すフローチャートである。
【図１１】第２実施形態において、ルーティング経路設定応答メッセージを受信したノードにおいて行われる動作を示すフローチャートである。
【図１】
0004519829.tif 000002
【図２】
0004519829.tif 000003
【図３】
0004519829.tif 000004
【図４】
0004519829.tif 000005
【図５】
0004519829.tif 000006
【図６】
0004519829.tif 000007
【図７】
0004519829.tif 000008
【図８】
0004519829.tif 000009
【図９】
0004519829.tif 000010
【図１０】
0004519829.tif 000011
【図１１】
0004519829.tif 000012