(57)【特許請求の範囲】
【請求項１】
（ａ）現在のノードの位置を決定するための位置決定モジュールと、
（ｂ）他のノードとメッセージを通信するための通信機構と、
（ｃ）前記位置決定モジュールおよび前記通信機構に結合され、前記メッセージおよび前記現在のノードの位置を受信し、それらに基づいて該メッセージの送信および該メッセージの廃棄のうちの一つを行う、地理的な位置に依存する経路指定機構と、
を備え、
前記地理的な位置に依存する経路指定機構が、さらに、
前記メッセージを受信し、該受信されたメッセージが最近出会ったものであるか否かを決定するための最近のメッセージ決定ファシリティと、
前記最近のメッセージ決定ファシリティに結合され、前記受信されたメッセージにおける唯一のアドレスと現在のノードのアドレスとを比較して、前記現在のノードが、前記受信されたメッセージの宛先であるか否かを決定するための宛先チェッカと、
前記宛先チェッカに結合され、前記現在のノードが、宛先ノードからの最後のノードよりも前記宛先ノードに近接して近いか否かを決定するための最後のノード距離比較器と、
を備え、
前記現在のノードが、前記最後のノードよりも前記宛先ノードに近接して近い場合には、前記最後のノード距離比較器が、前記現在のノードの位置によって前記メッセージを更新し、該更新されたメッセージをネットワーク内の次のノードに送ることを特徴とする、経路指定システム。
【請求項２】
（ｄ）前記地理的な位置に依存する経路指定機構に結合され、セルラ電話通信アプリケーションを含むことのある特定のアプリケーションのためのメッセージを受信し、処理するためのメッセージ処理アプリケーションをさらに備えている、請求項１に記載の経路指定システム。
【請求項３】
前記各メッセージが、宛先フィールド、発信元フィールド、およびメッセージ識別子フィールドを有し、
前記最近のメッセージ決定ファシリティが、前記受信されたメッセージの宛先フィールドが前に受信されたメッセージの宛先フィールドに整合しているか否か、前記受信されたメッセージの発信元フィールドが前に受信されたメッセージの発信元フィールドに整合しているか否か、および、前記受信されたメッセージのメッセージ識別子フィールドが前に受信されたメッセージのメッセージ識別子フィールドに整合しているか否かをさらに決定することを特徴とする、請求項１に記載の経路指定システム。
【請求項４】
前記最近のメッセージ決定ファシリティが、将来の処理に利用するために、前記受信されたメッセージの宛先フィールド、発信元フィールド、およびメッセージ識別子フィールドを記憶するための最近のメッセージバッファをさらに備えていることを特徴とする、請求項１に記載の経路指定システム。
【請求項５】
前記最後のノード比較器に結合されて深さ計数が最大深さ計数と所定の関係にあるか否かを決定するための深さ計数ファシリティを前記地理的な位置に依存する経路指定機構がさらに備え、前記深さ計数が前記最大深さ計数と所定の関係にある場合には、前記深さ計数ファシリティが、前記メッセージを次のノードに送り、前記深さ計数が、前記最大深さ計数と所定の関係にない場合には、前記深さ計数ファシリティが前記メッセージを廃棄することを特徴とする、請求項１に記載の経路指定システム。
【請求項６】
前記地理的な位置に依存する経路指定機構が、
前記現在のノードが、前記宛先ノードからの発信元ノードより前記宛先ノードに近いか否かを決定するための発信元距離評価ファシリティをさらに備え、前記現在のノードが、前記宛先ノードからの前記発信元ノードより前記宛先ノードに近い場合には、前記発信元距離評価ファシリティが、次のノードに前記メッセージを送り、前記現在のノードが、前記宛先ノードからの前記発信元ノードより前記宛先ノードから遠い場合には、前記発信元距離評価ファシリティが前記メッセージを廃棄することを特徴とする、請求項１に記載の経路指定システム。
【請求項７】
各ノードが位置を有し、少なくとも１つのノードがその位置を変えることのできる、複数のノードを有するアドホックネットワークにおけるメッセージの経路指定方法であって、
（ａ）前記メッセージを受信するステップと、
（ｂ）前記受信されたメッセージが最近出会ったものであるか否かを決定するステップと、
（ｃ）前記受信されたメッセージが最近出会ったものである場合には、前記メッセージを廃棄するステップと、
（ｄ）前記受信されたメッセージが最近出会ったものでない場合には、前記現在のノードが前記メッセージの宛先であるか否かを決定するステップと、
（ｅ）前記現在のノードが前記メッセージの宛先である場合には、前記メッセージを処理するステップと、
（ｆ）前記現在のノードが前記メッセージの宛先ではない場合には、前記現在のノードが、宛先ノードからの最後のノードよりも前記宛先ノードに近接して近いか否かを決定するステップと、
（ｇ）前記現在のノードが、前記最後のノードよりも前記宛先ノードに近接して近い場合には、前記現在のノードの位置によって前記メッセージを更新し、該更新されたメッセージを次のノードに送るステップと、
を含む方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般にネットワークに関し、より詳細には、地理的な位置データを利用することによってネットワークを通してパケットを経路指定する方法及びシステムに関する。
【０００２】
【従来の技術】
ネットワークは、例えばルータ又はスイッチのようなネットワーク装置であることのできる複数のノードを有する。パケットは、発信元ノードから宛先へ、発信元ノードと宛先ノードとの間のノードによって形成される１つ又は複数の経路を介して伝送される。それぞれのノードは、ネットワークのマップを作り出すために近隣探索（neighborhood discovery）を行なう（ネットワークディスカバリとも称する）。ネットワークマップは、例えば現在のノードが接続されたこれらのノードを識別することができる。現在のノードは、次にネットワークマップを利用して、受信されたメッセージをどのノードに送るべきかまたは経路指定すべきかの決定に利用するためのデータベース（例えば経路指定（routing）テーブル）を構築することができる。これらの経路指定テーブルは、一般に静的な特性を有し、かつ典型的には毎日更新されるだけである。
【０００３】
この従来の技術のアプローチにはいくつかの不都合が存在する。第１に近隣探索プロセスは、時間を浪費するプロセスである。第２に近隣探索プロセスは、実行のためにネットワワーク帯域幅を浪費する。第３に近隣探索プロセスは、後にさらに詳細に説明するように、１つ又は複数のノードが可動的であるネットワークには向いておらず又は不適当であることがある。
【０００４】
移動装置（例えばセルラ電話、ラップトップコンピュータ、携帯情報端末（ＰＤＡ））の急増によって、あるものは、これらの移動装置を、アドホックネットワーク（すなわち移動ユニットが興味ある特定の領域に入り又は出るように定常的に変化しているネットワーク）のノードとして利用することを提案している。認識できるように、静的なネットワークマップ及び経路指定テーブルは、ノードが定常的ではないアドホックネットワークに対して不適切な解を提供する。
【０００５】
【発明が解決しようとする課題】
したがって複数のノードを有するネットワークにおいて知的にパケットを経路指定する機構であることが、そこでは望ましく、そこではノードは、経路指定テーブル及びネットワークディスカバリを利用することなく、それらの位置を動かしかつ変更することができる。
【０００６】
前記のことに基づいて、前記の欠点に打ち勝つ、地理的な位置データを利用することによってパケットを経路指定する方法及びシステムに対する要求が存続する。
【０００７】
【課題を解決するための手段】
本発明の１つの実施例によれば、アドホックネットワークの少なくとも１つのノードがその位置を変更することができる、アドホックネットワークに対する地理的な位置に依存する経路指定システムが提供される。位置決定モジュールは、現在のノードの位置を決定するために設けられている。通信機構は、アドホックネットワーク内における別のノードとメッセージを通信するために設けられている。地理的な位置に依存する経路指定機構は、メッセージ、現在のノードの位置を受信するため及びそれに基づいてメッセージの送信及びメッセージの廃棄の一方のために位置決定モジュール及び通信機構に結合されている。
【０００８】
本発明の別の実施例によれば、アドホックネットワークの少なくとも１つのノードがその位置を変更することができる、アドホックネットワークに対する地理的な位置に依存する経路指定方法が提供される。現在のノードは、メッセージを受信する。受信されたメッセージが最近出会ったものであるかどうかの決定が行なわれる。受信されたメッセージが最近出会ったものである場合、メッセージは廃棄される。受信されたメッセージが最近出会ったものでない場合、現在のノードがメッセージの宛先であるかどうかの決定が行なわれる。現在のノードがメッセージの宛先である場合、現在のノードはメッセージを処理する。現在のノードがメッセージの宛先ではない場合、メッセージは、現在のノードの地理的な位置データを利用する知的な仕方でネットワーク内の別のノードに選択的に送られる。
【０００９】
添付図面の図において、本発明を例のために、かつ制限のためではなく示し、かつここにおいて同じ参照番号は、同様の要素を示す。
【００１０】
【発明の実施の形態】
地理的な位置に依存する経路指定方法及びシステムが記述される。以下の説明において、説明目的で、多数の特定の詳細が本発明を通した理解を提供するために述べられる。しかしながらこれらの特定の詳細を用いなくとも、本発明が実施可能であることは、当該技術分野の専門家にとって明らかであろう。別の場合において、本発明を不必要に不明確にすることを避けるために、よく知られた構造及び装置は、ブロック図の形で示されている。
【００１１】
本発明は、地理的な位置データを利用することによってアドホックネットワークを通して経路指定する方法及びシステム（以後、地理的位置依存経路指定（ＧＰＤＲ）方法及びシステムとも称する）を提供する。アドホックネットワークは、そこにおける１つ又は複数のノードがその地理的な位置を移動し又は変更することができるネットワークである。アドホックネットワークは、経路指定テーブルがこのようなネットワークの変化を反映するために適宜変更されることができるよりも急速にネットワーク構成が変化するために近隣探索プロセスが不適切であるどのようなネットワークをも含むことができる。
【００１２】
ネットワーク１００
図１は、本発明の地理的位置依存経路指定（ＧＰＤＲ）方法及びシステムを実行することができるアドホックネットワーク１００を示している。アドホックネットワーク１００は、そこにおける１つ又は複数のノードがその地理的位置を移動し又は変更することができるネットワークである。アドホックネットワーク１００は、経路指定テーブルがこのようなネットワークの変化を反映するために変更されることができるよりも急速にネットワーク構成が変化するために近隣探索プロセスが不適切であるどのようなネットワークをも含むことができる。
【００１３】
ネットワーク１００は、複数のノード１１０（例えばノードＡ、ノードＢ、ノードＣ、ノードＤ、ノードＥ、ノードＦ、発信元ノード（ＳＲＣノード）、及び宛先ノード（ＤＥＳＴノード））を含んでいる。それぞれのノードは、例えばセルラ電話、携帯情報端末（ＰＤＡ）又はラップトップコンピュータのような移動装置であることができる。
【００１４】
ＳＲＣノードは、ノードＡ及びノードＢにメッセージ（例えば情報のパケット）を放送する。ノードＢは、ＳＲＣノードにメッセージを再放送することができる。しかしこの例において、ノードＣは、ノードＢからの送信範囲の外側にあるので、ノードＣは、再放送メッセージを受信しない。それぞれのノードにおいて、図６を参照してさらに詳細に説明するパケット処理が行なわれる。
【００１５】
初めに宛先ノードの地理的な位置を見つけるために利用することができる多数の異なった機構が存在することに注意する。このような機構の１つは、全ネットワークを通して位置問合せを放送することにある。例えば（０，０，０）の宛先フィールドを有するメッセージは、このような位置問合せを示すことができる。宛先ノードが利用可能かつ到達可能である場合、宛先ノードは、その位置情報によって応答する。その点において発信元ノード及び宛先ノードの両方は、他方のものの地理的な位置を有し、かつ本発明の教えにしたがって説明するように、通信を開始することができる。
【００１６】
その他のネットワークディスカバリ方式は、次の刊行物に説明されている：
１）Ｎｅｉｇｈｂｏｒ  ｄｉｓｃｏｖｅｒｙ  ａｎｄ  ｓｔａｔｅｌｅｓｓ  ａｕｔｏｃｏｎｆｉｇｕｒａｔｉｏｎ  ｉｎ  ＩＰｖ６、Ｎａｒｔｅｎ，Ｔ．、ＩＥＥＥ  Ｉｎｔｅｒｎｅｔ  Ｃｏｍｐｕｔｉｎｇ、第３巻、第４版、１９９９年７−８月刊行、第５４−６２頁；
２）ＩＰ−ｃｅｎｔｒｉｃ  ｃｏｎｔｒｏｌ  ａｎｄ  ｍａｎａｇｅｍｅｎｔｏｆ  ｏｐｔｉｃａｌ  ｔｒａｎｓｐｏｒｔ  ｎｅｔｗｏｒｋｓ、Ｂｅｒｎｓｔｅｉｎ，Ｇ．Ｍ．；Ｙａｔｅｓ，Ｊ．；Ｓａｈａ，Ｄ．、ＩＥＥＥ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｍａｇａｚｉｎｅ、第３８巻、第１０版、２０００年１０月、第１６１−１６７頁；
３）Ｓｉｍｕｌａｔｉｏｎ  ｏｆ  ａｄａｐｔｉｖｅ  ｓｔａｔｉｓｔｉｃａｌｌｙ  ｍｕｌｔｉｐｌｅｘｅｄ  ｒｏｕｔｉｎｇ  ｉｎ  ａｄ  ｈｏｃ  ｎｅｔｗｏｒｋｓ、Ｄａｔｔａｔｒｅｙａ，Ｇ．Ｒ．；Ｋｕｌｋａｒｎｉ，Ｓ．Ｓ．；Ｗｉｒｅｌｅｓｓ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ａｎｄ  Ｎｅｔｗｏｒｋｉｎｇ  Ｃｏｎｆｅｒｅｎｃｅ  １９９９、ＷＣＮＣ１９９９、ＩＥＥＥ１９９９、第９３３−９３７頁、第２巻；
４）Ａ  ｒｅｓｏｕｒｃｅ  ｒｅｓｅｒｖａｔｉｏｎ  ｍｅｃｈａｎｉｓｍ  ｆｏｒ  ｍｏｂｉｌｅ  ｎｏｄｅｓ  ｉｎ  ｔｈｅ  Ｉｎｔｅｒｎｅｔ、Ｄａｓ，Ｓ．Ｋ．；Ｊａｙａｒａｍ，Ｒ．；Ｋａｋａｎｉ，Ｎ．Ｋ．；Ｓｅｎ，Ｓ．Ｋ．、Ｖｅｈｉｃｕｌａｒ  Ｔｅｃｈｎｏｌｏｇｙ  Ｃｏｎｆｅｒｅｎｃｅ、１９９９  ＩＥＥＥ  第４９回、第３巻、１９９９年、第１９４０−１９４４頁；
５）Ｃｏｍｐａｒａｔｉｖｅ  ａｎａｌｙｓｉｓ  ｏｆ  ｎｅｉｇｈｂｏｒ  ｇｒｅｅｔｉｎｇ  ｐｒｏｔｏｃｏｌｓ：ＡＲＰ  ｖｅｒｓｕｓ  ＥＳ−ＩＳ、ＭｃＤｏｎａｌｄ，Ｂ．；Ｚｎａｔｉ，Ｔ．、Ｓｉｍｕｌａｔｉｏｎ  Ｓｙｍｐｏｓｉｕｍ  １９９６、Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２９ｔｈ  Ａｎｎｕａｌ、１９９６、第７１−８０頁；及び
６）Ｐｒｏｘｙ  ＰＮＮＩ  ａｕｇｍｅｎｔｅｄ  ｒｏｕｔｉｎｇ  （ｐｒｏｘｙ  ＰＡＲ）、Ｐｒｚｙｇｉｅｎｄａ，Ｔ．；Ｄｒｏｚ，Ｐ．；Ｗｅｓｔ，Ｃ．、ＡＴＭ、１９９８、ＩＣＡＴＭ−９８、１ｓｔ  ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ、１９９８、第３７１−３７７頁。
【００１７】
ノード
図２は、図１のアドホックネットワークにおけるノード１１０をさらに詳細に示している。それぞれのノード１１０は、ネットワーク１００内における１つ又は複数のノード１１０の地理的な位置データ（ＧＰＤ）を決定しかつ本発明の地理的位置依存経路指定（ＧＰＤＲ）機構２４０にＧＰＤを供給するための位置決定モジュール（ＰＤＭ）２２０を含む。例えばＰＤＭ２２０は、位置（例えば現在のノードの緯度、経度及び高度）を決定するために利用することができる。
【００１８】
位置決定モジュール２２０は、全地球測位衛星（ＧＰＳ）システム及びネットワーク支援位置決定技術のようなどのような位置決定機構でもよい。
【００１９】
全地球測位衛星（ＧＰＳ）システムは、本発明のＧＰＤＲ機構２４０に地理的な位置データ（ＧＰＤ）を供給するために衛星（例えば衛星２２４）を利用することができる。
【００２０】
ネットワーク支援位置決定技術の例は、ノードの位置を決定するために３つ又はそれ以上の基地局からの到着時間三角測量を利用する方法である。その他の技術は、ノードの位置を決定するために信号の強さ及びその他の要因を利用する。位置決定技術は、一般に当該技術分野の通常の専門家にとってよく知られている。ＧＰＳに関するそれ以上の情報については、Ｉｎｔｅｒｆａｃｅ  Ｃｏｎｔｒｏｌ  Ｄｏｃｕｍｅｎｔ（ＩＣＤ−ＧＰＳ−２００）を参照されたい。
【００２１】
それぞれのノード１１０は、別のノードと通信するために通信機構（ＣＭ）２３０も含む。例えば通信機構（ＣＭ）２３０は、ネットワーク内の別のノードにメッセージ（例えば情報のパケット）を送信しかつ受信することができる。通信機構２３０は、隣接するノードからメッセージを受信する受信機、及び隣接するノード（すなわち利用される通信プロトコルの距離内にあるノード）にメッセージを送信する送信機を含むことができる。
【００２２】
例えばＣＭ２３０は、短距離ＲＦ通信プロトコル（ブルートゥース）を実行する送受信機及び関連するソフトウエア、無線ローカルエリアネットワーク（ＬＡＮ）通信プロトコル（例えばＩＥＥＥ  ８０２．１１）を実行する送受信機及び関連するソフトウエア、又はセルラ通信プロトコルを実行する送受信機及び関連するソフトウエアであることができる。
【００２３】
それぞれのノードは、本発明の地理的位置依存経路指定（ＧＰＤＲ）機構２４０も有する。ＧＰＤＲ機構２４０は、ＧＰＤ及びＣＭ２３０からのメッセージを受信し、かつこれに基づいて受信されたメッセージが現在のノードに向けられたものであるかどうかを決定する。受信されたメッセージが現在のノードに向けられたものであると決定された場合、ＧＰＤＲ機構２４０は、メッセージをメッセージ処理アプリケーション２５０に送る。メッセージ処理アプリケーション２５０は、例えば音声通信アプリケーション（例えばセルラ電話のための）、又はＴＰＣ／ＩＰ通信アプリケーション（例えばインターネット、電子メールアプリケーション、ウエブアクセスアプリケーション等へのアクセスのための）であることができる。メッセージ処理アプリケーション２５０は、別のノードにメッセージを送信するためにＣＭ２３０を利用することができる。
【００２４】
今度は図３ないし図５を参照してＧＰＤＲ機構２４０をさらに詳細に説明する。ＧＰＤＲ機構２４０は、ハードウエア、ファームウエア、ソフトウエア又はその組合せにおいて実行することができる。例えばＧＰＤＲ機構２４０は、個別回路部品にハード的に配線することができ、又は特定用途向け集積回路（ＡＳＩＣ）内の機能ブロックとして集積化する。代替として、ＧＰＲＤ機構２４０は、プロセッサ上において実行するソフトウエアとして実施することができる。ソフトウエア実行において、ＧＰＤＲ機構２４０は、ＣＭ２３０内の通信プロトコルソフトウエアと統合され、メッセージ処理アプリケーション２５０と統合されることができ、又はこれらのアプリケーションから分離して実行することができる。
【００２５】
地理的位置依存経路指定機構２４０
図３は、図２の地理的位置依存経路指定（ＧＰＤＲ）機構２４０をさらに詳細に図示するブロック図である。ＧＰＤＲ機構２４０は、現在受信されたメッセージが過去において最近受信されたかどうかを決定するための最近のメッセージ決定ファシリティ（facility）（ＲＭＤＦ）３１０を含む。最近のメッセージ決定ファシリティ３１０は、複数の前のメッセージコンテナ３１６を記憶するための最近のメッセージバッファ（ＲＭＢ）３１４を含む。それぞれの前のメッセージコンテナ３１６は、現在のメッセージが最近受信されたかどうかを決定するために、現在受信されたメッセージにおけるそれぞれのフィールドと比較することができる前のメッセージの選択されたフィールドを含む。最近のメッセージ決定ファシリティ３１０の動作は、後に図４及び図６を参照してさらに詳細に説明する。
【００２６】
ＧＰＤＲ機構２４０は、ＧＰＤＲ機構２４０が、１）現在のノードに向けられておらず、及び２）再送信又は放送する必要がないと決定したメッセージを廃棄するために、ＲＭＤＦ３１０に結合された廃棄ファシリティ３２０も含む。例えばＲＭＤＦ３１０が最近受信されたと決定したメッセージは、処分するために廃棄ファシリティ３２０に送信される。
【００２７】
ＧＰＤＲ機構２４０は、受信されたメッセージが現在のノードのためのものであるかどうかを決定するために、ＲＭＤＦ３１０に結合された宛先チェッカ３３０も含む。受信されたメッセージが現在のノードのためのものである場合、宛先チェッカ３３０は、メッセージをメッセージ処理アプリケーション（ＭＰＡ）２５０に送信する。
【００２８】
ＧＰＤＲ機構２４０は、最後のノード（すなわち、そこから現在のメッセージが受信されたノード）に関する処理を実行するために、宛先チェッカ３３０に結合された最後のノード距離比較器３４０も含む。最後のノードの処理は、最後のノードから宛先ノードまでの距離（ここでは最後のノード距離と称する）、及び現在のノードから宛先ノードまでの距離（ここでは現在のノード距離と称する）の決定を含む。さらに最後のノードの処理は、現在のノードが宛先からの最後のノードよりも宛先ノードから近いか又は遠いかを決定するために、現在のノード距離と最後のノード距離の比較を含む。現在のノード距離が最後のノード距離よりも大きい場合、最後のノード距離比較器３４０は、現在のメッセージを処分のために廃棄ファシリティ３２０に送信する。
【００２９】
ＧＰＤＲ機構２４０は、ネットワーク内の別のノードにメッセージを再送信（例えば放送）するために、最後のノード距離比較器３４０に結合された再送信ユニット３５０、及び深さ計数ファシリティ３６０も含んでいる。現在のノード距離が最後のノード距離より小さいことを、最後のノード距離比較器３４０が決定した場合、最後のノード距離比較器３４０は、更新及び再送信のために、再送信ユニット３５０に現在のメッセージを送信する。再送信ユニット３５０は、再送信の前に最後の位置フィールドに現在のノードの位置を加えるようにメッセージを変更するために、最後の位置フィールド更新モジュールを含んでいる。
【００３０】
ＧＰＤＲ機構２４０は、深さ計数に関するメッセージにおける処理を実行するために、最後のノード距離比較器３４０に結合された深さ計数ファシリティ３６０も含む。深さ計数処理は、所定の最大深さ計数値と現在のメッセージにおける深さ計数の比較を含む。後にさらに詳細に説明するように、最大深さ計数値は、ユーザによってプログラミングしかつ更新することができ、又は所定のネットワーク状態に基づいて自動的にセットされかつ変更することができる。現在の深さ計数が、最大深さ計数と所定の関係にあるとき、メッセージは、再送信のために再送信ユニット３５０に送信される。現在の深さ計数が、最大深さ計数と所定の関係にないとき、メッセージは、処分のために廃棄ファシリティ３２０に送信される。
【００３１】
深さ計数ファシリティ３６０は、ユーザが最大深さ計数のようなパラメータをセットすることができるようにするために、ユーザプログラミング可能深さ計数調節ユニット３６４を含む。深さ計数ファシリティ３６０は、１つ又は複数のネットワーク動作パラメータ（例えば前に送信したメッセージに対するタイムアウトエラー、局所範囲内のノードの密度等）に基づいて最大深さ計数を動的に調節するために、自動深さ計数調節ファシリティ３６８も含む。
【００３２】
深さ計数ファシリティ３６０、ユーザプログラミング可能深さ計数調節ユニット３６４及び自動深さ計数調節ファシリティ３６８の動作は、図５及び図６を参照して後にさらに詳細に説明する。
【００３３】
発信元距離評価ファシリティ
ＧＰＤＲ機構２４０は、発信元ノードに関する処理を実行するために、深さ計数ファシリティ又は最後のノード距離比較器３４０に結合された発信元距離評価ファシリティ３８０を選択的に含むことができる。発信元ノード処理は、１）発信元ノードから宛先ノードまでの距離（ここにおいて発信元宛先距離と称する）及び現在のノードから宛先ノードまでの距離（ここにおいて現在のノード距離と称する）の決定を含む。さらに発信元ノード処理は、現在のノードが宛先ノードからの発信元ノードよりも宛先ノードから近いか又は遠いかどうかを決定するために、現在のノード距離と発信元宛先距離の比較を含む。
【００３４】
現在のノードが、宛先ノードからの発信元ノードよりも宛先ノードに近い場合、メッセージは再送信される。そうではなく現在のノードが、宛先ノードからの発信元ノードよりも宛先ノードから遠い場合、メッセージは、処分のために廃棄ファシリティ３２０に送信される。
【００３５】
ＧＰＤＲ機構２４０は、近隣探索プロセスを必要とせず、それにより時間及びネットワーク帯域幅を節約することに注意する。
【００３６】
最近のメッセージ決定ファシリティ
図４は、本発明の１つの実施例による図３の最近のメッセージ決定ファシリティ３１０をさらに詳細に示すブロック図である。最近のメッセージ決定ファシリティ（ＲＭＤＦ）３１０は、前のメッセージ（例えばメッセージ４２０、４３０、４４０）における関連するフィールドと受信されたメッセージ４１０における選択されたフィールドを比較する。受信されたメッセージ４１０における選択されたフィールドは、ＳＣＲフィールド４１４、ＤＥＳＴフィールド４１６及びＭＳＧ  ＩＤ４１８であることができる。
【００３７】
これらのフィールド４１４、４１６及び４１８のそれぞれは、前のメッセージの各々（例えばメッセージ４２０、４３０、４４０）に関する対応するフィールドと比較される。前に説明したように、ＲＭＢ３１４は、複数の前のメッセージコンテナを記憶している。現在のノードがＮ番目のノードであると考えられるとき、最後のノードは、Ｎ−１ノード（ＭＳＧ＿Ｎ−１）と示される。同様に最後から２番目又は最後のノードの次は、Ｎ−２ノード（ＭＳＧ＿Ｎ−２）と示される。
【００３８】
最後に処理されたメッセージ４２０（ＭＳＧ＿Ｎ−１）と受信されたメッセージ４１０を比較するための処理は：１）ＳＲＣ４２４とＳＲＣ４１４の比較、２）ＤＥＳＴ４２６とＤＥＳＴ４１６の比較、及び３）ＭＳＧ  ＩＤ４２８とＭＳＧＩＤ４１８の比較を含んでいる。同様に最後から二番目に処理されたメッセージ４３０（ＭＳＧ＿Ｎ−２）と受信されたメッセージ４１０を比較するための処理は：１）ＳＲＣ４３４とＳＲＣ４１４の比較、２）ＤＥＳＴ４３６とＤＥＳＴ４１６の比較、及び３）ＭＳＧ  ＩＤ４３８とＭＳＧ  ＩＤ４１８の比較を含んでいる。さらに最後からＭ番目に処理されたメッセージ４４０（ＭＳＧ＿Ｎ−Ｍ）と受信されたメッセージ４１０を比較するための処理は、１）ＳＲＣ４４４とＳＲＣ４１４の比較、２）ＤＥＳＴ４４６とＤＥＳＴ４１６の比較、及び３）ＭＳＧ  ＩＤ４４８とＭＳＧ  ＩＤ４１８の比較を含んでいる。いずれかのフィールドが整合しなかった場合、メッセージは、次の処理モジュールに送られる。しかし特定の前のメッセージに対してすべてのフィールドが整合した場合、メッセージは廃棄される。
【００３９】
バッファサイズ決定ファシリティ４６０は、ＲＭＢ３１４に記憶された前のメッセージの数を制御する所定の時間間隔４６４を発生するために設けられている。例えば一層長い時間間隔４６４が指定されると、多数のメッセージ（すなわちその時間間隔内に処理される前のメッセージ）が、ＲＭＢ３１４内に記憶される。
【００４０】
深さ計数ファシリティ
図５は、本発明の１つの実施例による図３の深さ計数ファシリティ３６０をさらに詳細に示すブロック図である。深さ計数ファシリティ３６０は、現在のメッセージの深さフィールドから抽出された現在の深さ計数５１４と最大深さ計数５１８とを受信するための比較器５１０を含んでいる。これらの入力に基づいて、比較器５１０は、現在の深さ計数５１４が、最大深さ計数５１８と所定の関係にあるかどうかを決定するために、最大深さ計数５１８と現在の深さ計数５１４を比較する。
【００４１】
現在の深さ計数５１４が、最大深さ計数５１８と所定の関係にあると（例えば最大深さ計数より小さな深さ計数）、メッセージは、深さ計数更新ユニット５２０に送信される。深さ計数更新ユニット５２０は、深さフィールド５２４を変更する（例えば深さ計数を１だけ減少して）。
【００４２】
現在の深さ計数５１４が、最大深さ計数５１８と所定の関係にないと（例えば深さ計数が最大深さ計数より大きい）、メッセージは、廃棄ファシリティ３２０に送信される。
【００４３】
深さ計数ファシリティ３６０は、ユーザ入力５４０を受信しかつそれに基づいて適宜最大深さ計数を調節するためのユーザ制御される最大深さ計数調節ファシリティ３６４を含む。ユーザに制御される最大深さ計数調節ファシリティ３６４は、ユーザが融通性をもって最大深さ計数を決めることを可能にする。
【００４４】
深さ計数ファシリティ３６０は、パラメータ（例えばエラータイムアウト５５０及び密度測定５５４）に基づいて最大深さ計数を自動的に調節するために、自動最大深さ計数調節ファシリティ３６８を含む。
【００４５】
パケット処理
この実施例においてそれぞれのノードは、パケットを送信しかつ受信するためのアンテナを装備している。しかしながら当該技術分野の通常の専門家は、それぞれのノードが線材又はケーブルの利用によって別のノードに接続することができることを容易に認識するであろう。これに関して、ネットワーク１００におけるノード１１０は、無線リンクを介して又は物理的な接続媒体（例えばケーブル）を通して結合することができる。
【００４６】
メッセージ処理
図６は、図２のＧＰＤＲ機構によって実行される処理ステップを示すフローチャートである（例えば、ノードにおいてパケットが受信されてからパケットが送られるか送られない時までに何が起こるか）。ステップ６１０において、メッセージが受信されたかどうかの決定が行なわれる。メッセージが受信されていない場合、メッセージの到着を待つために、ステップ６１０において処理が継続する。
【００４７】
ステップ６２０において、現在のメッセージが最近出会ったものであるかどうかの決定が行なわれる。例えば現在のメッセージが最近出会ったものであるかどうかの決定は、宛先フィールド、発信元フィールド及びメッセージ識別子フィールドを利用することができる。とくに前のメッセージの宛先フィールド、発信元フィールド及びメッセージ識別子フィールドは、最近のメッセージバッファ３１４に記憶することができる。メッセージが受信されたとき、受信されたメッセージの宛先フィールド、発信元フィールド及びメッセージ識別子フィールドは、最近のメッセージバッファ３１４に記憶されたメッセージに対応する宛先フィールド、発信元フィールド及びメッセージ識別子フィールドと比較される。整合が存在した場合、現在のメッセージは廃棄される（ステップ６３４）。ステップ６２０は、メッセージがエンドレスループに捕われることも防止する。最近のメッセージバッファ３１４は、過去において所定の時間間隔内に受信された最近のメッセージを記憶することができる。所定の時間間隔は、アプリケーション、ネットワークにおけるトラフィックの量、それぞれのノードにおいて利用できるメモリの量等に依存して、数秒又は数日であることができる。現在のメッセージが最近出会ったものでない場合、処理はステップ６２４に進む。
【００４８】
ステップ６２４において、現在のメッセージの選択されたフィールドは、将来のステップ６２０の決定のために、メモリ（例えば最近のメッセージバッファ３１４）内に記憶される。これらのフィールドは、例えば受信されたメッセージの宛先フィールド、発信元フィールド及びメッセージ識別子フィールドであることができる。
【００４９】
ステップ６３０において、現在のノードがメッセージの宛先であるかどうかの決定が行なわれる。換言すれば、メッセージが現在のノードに向けられているかどうかの決定が行なわれる。
【００５０】
現在のノードがメッセージの宛先である場合、ステップ６４０において、メッセージは処理され（例えばメッセージ処理アプリケーションに送信され）、かつ処理はステップ６１０に戻る。
【００５１】
現在のノードがメッセージの宛先ではない場合、処理は、ステップ６５０に進む。ステップ６５０において、現在のノードが、宛先ノードからの最後のノードより宛先ノードに近接して近いかどうかの決定が行なわれる。現在のノードが、宛先ノードに近い最後のノードよりも宛先ノードに近接してより近い場合、ステップ６６０において、現在のノードの位置によりメッセージを更新する（すなわち最後の位置フィールドに現在のノードの位置を書き込む）。ステップ６７０において、更新されたメッセージは、所定の範囲内にあるノードに送信される（例えば放送される）。
【００５２】
現在のノードが、宛先ノードに近い最後のノードよりも宛先ノードに近くない場合、ステップ６８０において、深さ計数が最大深さ計数と所定の関係にあるかどうかの決定が行なわれる。深さ計数が最大深さ計数と所定の関係にある場合、処理はステップ６６０において継続する。深さ計数が最大深さ計数と所定の関係にない場合（例えば深さ計数が消耗されている場合）、メッセージは廃棄される（処理ステップ６３４）。
【００５３】
随意選択で、追加の判定ブロックを、判定ブロック６８０の前又は判定ブロック６８０の後のいずれかに挿入することができる。この判定ブロックは、現在のノードが宛先からの発信元ノードよりも宛先ノードに近いかどうかを決定する。現在のノードが、宛先からの発信元ノードよりも宛先ノードに近い場合、ステップ６６０に進む。現在のノードが、宛先からの発信元ノードよりも宛先ノードから遠い場合、メッセージを廃棄する（ステップ６３４）。
【００５４】
メッセージの例
図７は、発信元位置情報及び宛先位置情報を含む例としてのメッセージである。１つの実施例においてメッセージは、次の複数のフィールドを含む：１）宛先位置フィールド、２）発信元位置フィールド、深さフィールド、３）１つ又は複数の最後の位置フィールド、４）メッセージ識別子（ＭＳＧ  ＩＤ）フィールド、及び５）ペイロード（ｐａｙｌｏａｄ）。
【００５５】
宛先位置フィールドは、宛先ノードの座標（例えばＧＰＳ緯度、経度及び高度）を指定する。宛先ノードは移動しかつその位置を変えることがあるので、宛先位置は、現在のノードが宛先ノードであることを決定する際に利用するための絶対アドレスではないことに注意する。代わりに、ＩＥＥＥ８０２．１１にしたがうネットワークにおける媒体アクセス制御（ＭＡＣ）アドレスのようなペイロードにおけるフィールドは、現在のノードが宛先ノードであるかどうかを決定するための絶対アドレスとして利用される。
【００５６】
発信元位置フィールドは、発信元ノードの座標（例えばＧＰＳ）を指定する。深さフィールドは、パケットがもっとも近いノードを通って移動することができるホップ又はノードの数を指定する。ゼロの値は、例えば次のホップ又はノードが現在のノードの位置よりも宛先のノードに近いことを指定する。次のノードが現在のノードよりも宛先ノードに近い場合、メッセージは再送信され又は送られる。そうでない場合、現在のノードよりも宛先ノードに近い次のノードが存在しない場合、パケットは、送信されない。
【００５７】
１の値は、例えば次のホップ（１つのホップ）が現在のノードの位置よりも宛先ノードに近いことを必要としないことを指定する。しかし次のホップは、前のノードよりも宛先ノードに近いことを必要とする。２の値は、例えば次の２つのホップが現在のノードの位置よりも宛先ノードに近いことを必要としないことを指定する。しかし第３のホップは、前のノードよりも宛先ノードに近いことを必要とする。
【００５８】
深さ計数は、パケットが廃棄される前の、前のノードからの宛先からさらに上であり得るホップ又はノードの量とみなすことができる。後にさらに詳細に説明するように、深さ計数は、ノードの密度又は数が低い範囲に順応するために重要である。
【００５９】
深さ計数
深さ計数は、所与の宛先に到達するために利用することができる経路のタイプ（例えば形）及び数を制限するパラメータである。一般に深さ計数が増加する場合、可能な経路の数は増加し、それにより発信元ノードから宛先ノードへメッセージを送信するための選択の数が増加する。深さ計数は、ネットワークプロトコルに規定されたシステムレベルパラメータであることができる。その代わりに深さ計数は、ユーザによって変更することができるユーザプログラミング可能な値であることができる。例えば深さ計数は、１のデフォルト値にセットすることができる。しかしながら応答を受信することなく、所定の時間が経過した後に、深さ計数は、自動的に増加することができ（例えば１だけ増加）、かつパケットは、変更された深さ計数によって再送信することができる。ユーザは、変更された値をネットワークの特性、範囲内における別のノードの密度等に依存した深さ計数に手動で増加することができ、又はさもなければ割り当てることができる。
【００６０】
代替実施例において、現在の深さ計数は維持され、かつ最大深さ計数が設けられている。現在の深さ計数が、最大深さ計数値より小さいか又はこれに等しい場合、メッセージは再送信される。さもなければメッセージは廃棄される。
【００６１】
１つ又は複数の最後の位置フィールドは、パケットの最後の再送信が起こったノードの座標を指定するために設けられている。最後の位置フィールドは、パケットが通過した前のノードの位置を追跡するために利用することができる。最後の位置フィールドは、発信元ノードの位置を含むことができる。最後の位置フィールドの数は、特定のアプリケーションに合わせるためにネットワークの設計者によって選択することができる。望ましい実施例において、最後の位置フィールドの数は、予想される深さ計数（例えば深さ計数は２に等しい）にセットされている。
【００６２】
メッセージ識別子（ＭＳＧ  ＩＤ）フィールドは、メッセージに関連する唯一の識別子を指定する。メッセージ識別子は、メッセージの重複を除去するために利用することができる。さらにメッセージ識別子は、類似の特徴を有することがある２つのメッセージの間において区別するために利用することができ、したがって異なったメッセージが、現在受信しているノードによって誤って廃棄されないようにする。
【００６３】
ペイロードは、送信されているデータ及び送信プロトコルに関連するフィールドを含んでいる。
【００６４】
本発明の経路指定方法及びシステムの１つの利点は、システムが近隣探索プロセスを必要としない点にあり、それによりシステムの資源を節約する。本発明の経路指定方法及びシステムの別の利点は、一層効率的な経路指定のためにネットワーク内におけるノードの地理的な位置データを利用する知的な経路指定機構を提供することにある。本発明の経路指定方法及びシステムは、ネットワークの１つ又は複数のノード（例えば移動ユニット）がその位置を変更することがあるアドホックネットワークに、とくに適している。
【００６５】
前記の詳述において、本発明は、その特定の実施例を引用して説明した。しかしながら本発明のさらに広い権利範囲から外れることなく、これに種々の変形及び変更を行なうことができることは、明白であろう。したがって詳述及び図面は、限定の意味ではなく、例示の意味において考慮すべきものである。
【図面の簡単な説明】
【図１】本発明の地理的な位置に依存する経路指定方法及びシステムを実行することができる例としてのネットワークを示すブロック図である。
【図２】本発明の１つの実施例による図１のアドホックネットワークにおけるノードをさらに詳細に示す図である。
【図３】本発明の１つの実施例による図２の地理的な位置に依存する経路指定機構をさらに詳細に示すブロック図である。
【図４】本発明の１つの実施例による図３の最近のメッセージ決定ファシリティをさらに詳細に示すブロック図である。
【図５】本発明の１つの実施例による図３の深さ計数ファシリティをさらに詳細に示すブロック図である。
【図６】図２の地理的な位置に依存する経路指定機構によって実行される処理ステップを示すフローチャートである。
【図７】本発明の１つの実施例による地理的な位置に依存する経路指定機構によって利用するための例としてのメッセージを示す図である。
【符号の説明】
１１０：経路指定システム
２２０：位置決定モジュール
２３０：通信機構
２４０：地理的な位置に依存する経路指定機構
２５０：メッセージ処理アプリケーション
３１０：最近のメッセージ決定ファシリティ
３１４：最近のメッセージバッファ
３３０：宛先チェッカ
３４０：最後のノード距離比較器
３６０：深さ計数ファシリティ
３８０：発信元距離評価ファシリティ
【図１】
0003908977.tif 000002
【図２】
0003908977.tif 000003
【図３】
0003908977.tif 000004
【図４】
0003908977.tif 000005
【図５】
0003908977.tif 000006
【図６】
0003908977.tif 000007
【図７】
0003908977.tif 000008