(57)【要約】無線ネットワークにおいてパケットを送る方法では、無線ネットワークの起点ノードから送信先に送信される一のパケットのインスタンスを一連の受信ノード群の各々が受信する。一連の受信ノード群の内の一つ以上の受信ノードの各々では、受信パケットは、パケットの受信に続いて、パケットの再送信を遅延期間だけ遅延させることにより処理される。他のノード群に関するパケット送信は遅延期間中に監視される。次にノードは、パケットを再送信すべきかをパケットの送信の監視に基づいて判定する。ノードは遅延期間を確率分布から求めることができ、この確率分布は、例えばパケットの送信先までのパケットの進捗度、または受信パケットの信号特性、或いはリンク特性によって変わる。
2005529538.tif 000002
【特許請求の範囲】
【請求項１】
無線ネットワークにおいてパケットを送る方法であって、
無線ネットワークの起点ノードから送信先に送信されるパケットのインスタンスを一連の受信ノード群の各々で受信し、前記送信の各々は対応する送信元ノードによって行なわれ、
前記一連の受信ノード群の内の一つ以上の受信ノードの各々において、受信したパケットを処理し、その処理は、
パケットの受信に続いて、パケットの再送信を遅延期間だけ遅延させ、
パケットの送信を遅延期間中に監視し、
そのパケットの送信の監視に基づいて、パケットを再送信すべきかを判定することを含む、方法。
【請求項２】
前記一連の受信ノード群の各々における受信したパケットの処理は、さらに、パケットの遅延期間を求めることを含む、請求項１記載の方法。
【請求項３】
遅延期間を求めることが、遅延期間を確率分布に従って選択することを含む、請求項２記載の方法。
【請求項４】
遅延期間を求めることが、さらに、確率分布のパラメータを求めることを含む、請求項３記載の方法。
【請求項５】
遅延期間を求めることが、前記送信元ノードから前記送信先までのパケットの通過に関する量を求めることを含む、請求項２記載の方法。
【請求項６】
パケットの通過に関する量を求めることが、パケットの受信に関する量を求めることを含む、請求項５記載の方法。
【請求項７】
パケットの受信に関する量を求めることが、前記受信パケットのリンクコストを求めることを含む、請求項６記載の方法。
【請求項８】
パケットの受信に関する量を求めることが、前記受信パケットの信号特性に関する量を求めることを含む、請求項６記載の方法。
【請求項９】
前記信号特性に関する量を求めることが、前記受信パケットの信号対雑音比に関する量を求めることを含む、請求項８記載の方法。
【請求項１０】
前記信号特性に関する量を求めることが、前記受信パケットの送信の信頼性に関する量を求めることを含む、請求項８記載の方法。
【請求項１１】
パケットの通過に関する量を求めることが、前記送信先に向かうパケットの進捗度に関する量を求めることを含む、請求項５記載の方法。
【請求項１２】
前記送信先ノードに向かう進捗度に関する量を求めることが、前記受信ノードに至る経路の最終リンクにおけるパケットの進捗度に関する量を求めることを含む、請求項１１記載の方法。
【請求項１３】
前記一連の受信ノード群の各々は記憶装置を含み、この記憶装置は、パケットの複数の送信先の各々を、パケットをネットワークを通して前記受信ノードから前記送信先に渡すためのコストに関する対応する量に関連付ける、請求項２記載の方法。
【請求項１４】
パケットを前記送信先に渡すためのコストに関する対応する量は、前記送信先までの経路のリンクの信頼性に関するものである、請求項１３記載の方法。
【請求項１５】
前記遅延期間を求めることが、パケットを前記受信ノードから前記送信先に渡すためのコストに関する量を前記記憶装置から取り出すことを含む、請求項１３記載の方法。
【請求項１６】
前記遅延期間を求めることが、さらに、パケットを前記受信パケットの送信元から送信先に渡すためのコストに関する量にアクセスすることを含む、請求項１５記載の方法。
【請求項１７】
パケットを前記受信パケットの送信元から送信先に渡すためのコストに関する量にアクセスすることが、前記受信パケットからの前記量にアクセスすることを含む、請求項１６記載の方法。
【請求項１８】
前記遅延期間を求めることが、さらに、パケットを前記受信ノードから前記送信先に渡すためのコストに関する量と、パケットを前記受信パケットの送信元から送信先に渡すためのコストに関する量との差を算出することを含む、請求項１６記載の方法。
【請求項１９】
パケットを再送信すべきかを判定することが、送信の監視に基づいて、前記送信先がパケットを受信したかを判定することを含む、請求項１記載の方法。
【請求項２０】
前記送信先がパケットを受信したかを判定することが、前記送信先が肯定応答を送信したことを判定することを含む、請求項１９記載の方法。
【請求項２１】
パケットを再送信すべきかを判定することが、送信の監視に基づいて、別のノードがパケットを既に再送信したかを判定することを含む、請求項１記載の方法。
【請求項２２】
前記受信ノードはパケットを送信先に渡すための記憶されたコストを含み、パケットを再送信すべきかを判定することが、パケットを送信先に渡すための記憶されたコストがより低い別のノードがパケットを既に再送信しているかを判定することを含む、請求項２１記載の方法。
【請求項２３】
受信ノード群の内の一つ以上において、パケットの送信元ノードが、受信ノードよりも、より低い送信先までのコストを有する場合に、そのパケットを廃棄することをさらに含む、請求項２１記載の方法。
【請求項２４】
送信先はネットワークのノードである請求項１記載の方法。
【請求項２５】
送信先はネットワークのノードで提供されるサービスである請求項１記載の方法。
【請求項２６】
送信先はネットワークのノード群からなるゾーンである請求項１記載の方法。
【請求項２７】
パケット無線ネットワークにおいてパケットをルーティングする方法であって、
ネットワークの複数対のノード間のリンクコストを前記ノード間の無線送信特性に従って算出し、
ノード群において、算出したリンクコストに従って、パケットを前記パケットネットワークの起点ノードと送信先ノードとの間の複数の経路に沿って転送する、方法。
【請求項２８】
パケット転送はグラディエント・ルーティング・アルゴリズムに従う請求項２７記載の方法。
【請求項２９】
リンクコストを算出することが、各リンクに関して、リンクを通して受信するパケットの信号対雑音比に関する量を求めることを含む、請求項２７記載の方法。
【請求項３０】
信号対雑音比に関する量を求めることが、ＣＤＭＡ受信機の相関係数に関する量を算出することを含む、請求項２９記載の方法。
【請求項３１】
リンクコストを算出することが、各リンクに関して、リンク信頼性に関する量を求めることを含む、請求項２７記載の方法。
【請求項３２】
信頼性に関する量を求めることが、エラーレートを求めることを含む、請求項３１記載の方法。
【請求項３３】
ノード群においてパケットを転送することが、より高いコストのリンクを通して受信されるパケットを優先的に転送することを含む、請求項２７記載の方法。
【請求項３４】
有線ネットワークにパケット無線によるバックアップを提供する方法であって、
無線トランシーバを有線ネットワークの複数のノードの各々に接続し、
パケットを有線ネットワークのノード群の内の第１ノードに接続される無線トランシーバを通して受信し、
パケットをノード群の内の第１ノードから有線ネットワークを通して転送するよう試みて、
パケットをノード群の内の第１ノードに接続される無線トランシーバを通して転送する、方法。
【請求項３５】
有線ネットワークはイーサネットネットワークを含む請求項３４記載の方法。
【請求項３６】
パケットを無線トランシーバを通して転送することが、パケットをアドホック無線ネットワークを通して転送することを含む、請求項３４記載の方法。
【請求項３７】
無線ネットワークのノードであって、
無線トランシーバと、
パケットを保持する記憶装置と、
制御装置とを備え、該制御装置は、トランシーバを通して受信するパケットを記憶装置に記憶し、パケットを受信した後に受信パケットの再送信を遅延期間だけ遅延させ、遅延期間中に他の無線ノードからのパケット送信を監視し、パケット送信の監視に基づいてパケットを再送信すべきかを判定するように構成されている、ノード。
【請求項３８】
無線ネットワークのノードであって、
パケットを受信した後に受信パケットの再送信を遅延期間だけ遅延させる手段と、
遅延期間中に他の無線ノードに関するパケット送信を監視する手段と、
パケット送信の監視に基づいて、パケットを再送信すべきかを判定する手段とを備えるノード。
【請求項３９】
コンピュータ読み取り可能媒体に保存されるソフトウェアであって、プロセッサに、
パケットを受信した後に受信パケットの再送信を遅延期間だけ遅延させ、
遅延期間中に他の無線ノードに関するパケット送信を監視することを制御させ、
パケット送信の監視に基づいて、パケットを再送信すべきかを判定させる、命令を含むソフトウェア。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は無線ネットワークのルーティングに関する。
【背景技術】
【０００２】
通常、自己組織化し、かつパケットをネットワークのマルチホップ経路を通して渡す無線アドホックネットワークは、多種多様なアプリケーションに適用されてきた。種々のルーティングアルゴリズムが、アドホックオンデマンド距離ベクトルルーティング（Ａｄ  Ｈｏｃ  Ｏｎ−Ｄｅｍａｎｄ  Ｄｉｓｔａｎｃｅ  Ｖｅｃｔｏｒ  Ｒｏｕｔｉｎｇ：ＡＯＤＶ）及びダイナミックソースルーティング（Ｄｙｎａｍｉｃ  Ｓｏｕｒｃｅ  Ｒｏｕｔｉｎｇ：ＤＳＲ）を含むこのようなネットワークに関して提案されてきており、これらのルーティングアルゴリズムでは、パケットが起点ノードから送信先ノードに特定の経路を通してノードツーノードの形で転送される。グラディエント・ルーティング（Ｇｒａｄｉｅｎｔ  Ｒｏｕｔｉｎｇ）と呼ばれる別のタイプのルーティングでは、一のパケットがネットワークの中継ノードで再送信されるので、連続する各ノードを識別することなくパケットが転送される。
【発明を実施するための最良の形態】
【０００３】
本発明は、概括すると、一の態様では、無線ネットワークにおいてパケットを送る方法及び関連する装置及びソフトウェアを特徴とする。無線ネットワークの起点ノードから送信先に送信される一のパケットのインスタンスを一連の受信ノード群の各々で受信し、これらの送信の各々は対応する送信元ノードによって行なわれる。一連の受信ノード群の内の一つ以上の受信ノードの各々で行われる受信パケットの処理において、パケットの受信に続いて、パケットの再送信を遅延期間だけ遅延させ、パケットの送信を遅延期間中に監視し、パケットを再送信すべきかをパケットの送信の監視に基づいて判定する。
【０００４】
この方法は次の特徴の内の一つ以上を含むことができる。
受信パケットを一連の受信ノード群の各々で処理することはさらに、パケットの遅延期間を求めることを含む。
【０００５】
遅延期間を求めることは、遅延期間を確率分布から選択することを含む。
遅延期間を求めることはさらに、確率分布のパラメータを求めることを含む。
遅延期間を求めることは、送信元ノードから送信先までのパケットの通過に関する量を求めることを含む。
【０００６】
パケットの通過に関する量を求めることは、パケットの受信に関する量を求めることを含む。
パケットの受信に関する量を求めることは、受信パケットのリンクコストを求めることを含む。
【０００７】
パケットの受信に関する量を求めることは、受信パケットの信号特性に関する量を求めることを含む。
信号特性に関する量を求めることは、受信パケットの信号対雑音比に関する量を求めることを含む。
【０００８】
信号特性に関する量を求めることは、受信パケットの送信の信頼性に関する量を求めることを含む。
パケットの通過に関する量を求めることは、送信先に向かうパケットの進捗度に関する
量を求めることを含む。
【０００９】
送信先ノードに向かう進捗度に関する量を求めることは、受信ノードに至る経路の最終リンクまでのパケットの進捗度に関する量を求めることを含む。
一連の受信ノード群の各々は記憶装置を含み、この記憶装置は、パケットの複数の送信先の各々を、パケットをネットワークを通して受信ノードから送信先に渡すためのコストに関する対応する量に関連付ける。
【００１０】
パケットを前記送信先に渡すためのコストに関する対応する量は、送信先までの経路のリンクの信頼性に関するものである。
遅延期間を求めることは、パケットを受信ノードから送信先に渡すためのコストに関する量を記憶装置から取り出すことを含む。
【００１１】
遅延期間を求めることはさらに、パケットを受信パケットの送信元から送信先に渡すためのコストに関する量にアクセスすることを含む。
パケットを受信パケットの送信元から送信先に渡すためのコストに関する量にアクセスすることは、受信パケットに含まれる量にアクセスすることを含む。
【００１２】
遅延期間を求めることはさらに、パケットを受信ノードから送信先に渡すためのコストに関する量と、パケットを受信パケットの送信元から送信先に渡すためのコストに関する量との差を算出することを含む。
【００１３】
パケットを再送信すべきかを判定することは、送信の監視に基づいて送信先がパケットを受信したかを判定することを含む。
送信先がパケットを受信したかを判定することは、送信先が肯定応答を送信したことを判定することを含む。
【００１４】
パケットを再送信すべきかを判定することは、送信の監視に基づいて別のノードがパケットを既に再送信したかを判定することを含む。
受信ノードはパケットを送信先に渡すための記憶されたコストを含み、パケットを再送信すべきかを判定することは、パケットを送信先に渡すための記憶されたコストがより低い別のノードがパケットを既に再送信しているかを判定することを含む。
【００１５】
この方法は、受信ノード群の内の一つ以上において、パケットの送信元ノードが、受信ノードよりも、より低い送信先までのコストを有する場合に、そのパケットを廃棄することをさらに含む。
【００１６】
送信先はネットワークの一のノードである。
送信先はネットワークの一のノードで提供されるサービスである。
送信先はネットワークのノード群からなるゾーンである。
【００１７】
別の態様においては、概括すると本発明は、パケット無線ネットワークにおいてパケットをルーティングする方法を特徴とする。ネットワークの複数対のノード間のリンクコストをノード間の送信特性に従って算出する。ノード群において、パケットを算出リンクコストに従ってパケットネットワークの起点ノードと送信先ノードとの間の複数の経路に沿って転送する。
【００１８】
この方法は次に示す特徴の内の一つ以上を含むことができる。
パケット転送はグラディエント・ルーティング・アルゴリズム（ｇｒａｄｉｅｎｔ  ｒｏｕｔｉｎｇ  ａｌｇｏｒｉｔｈｍ）に従う。
【００１９】
リンクコストを算出することは、各リンクに関して、リンクを通して受信するパケットの信号対雑音比に関する量を求めることを含む。
信号対雑音比に関する量を求めることは、ＣＤＭＡ受信機の相関係数に関する量を算出することを含む。
【００２０】
リンクコストを算出することは、各リンクに関して、リンク信頼性に関する量を求めることを含む。
信頼性に関する量を求めることは、リンクのエラーレートを求めることを含む。
【００２１】
ノード群においてパケットを転送することは、相対的に高いコストのリンクを通して受信するパケットを優先的に転送することを含む。
別の態様では、概括すると本発明は、有線ネットワークをパケット無線でバックアップする方法を特徴とする。無線トランシーバを有線ネットワークの多くのノードの各々に接続する。パケットを有線ネットワークのノード群の内の第１ノードに接続される無線トランシーバを通して受信する。パケットをノード群の内の第１ノードから有線ネットワークを通して転送するように試みる。次に、このパケットをノード群の内の第１ノードに接続される無線トランシーバを通して転送する。
【００２２】
本発明に関する複数の態様は、次に示す利点の内の一つ以上を含むことができる。
リンクを決定するためにリンク特性を使用することによって、少ないホップ数のルートを選択することができるので、データをノード間で授受するために必要な再送信の合計回数を減らすことができる。
【００２３】
パケット転送をリンク特性に従って遅延させることにより、異なるノードが同じパケットを転送する際に生じる衝突を防止することができる。
他のノード群が行なうパケット転送を監視することによって、明示的な肯定応答を必ずしも必要とすることなく、同じパケットに関する余計な転送を減らすメカニズムを提供することができる。
【００２４】
本発明の他の特徴及び利点は以下の記載及び特許請求の範囲から明らかになる。
１．グラディエント・ルーティング手法
図１を参照すると、無線ネットワーク１００が多数の無線ノード１１０を含む様子が示される。図示の例では、ノード１１０はノードＡ〜Ｅとして識別される。ノードの全ての対が必ずしも直接通信できるわけではないので、無線ネットワーク１００を通過するデータパケットは通常、マルチホップルーティング手法に従って多数の中継ノードを通過する経路を辿る。無線ネットワーク１００におけるパケットのルーティングはグラディエント（ｇｒａｄｉｅｎｔ）方式を使用する。また、起点ノードまたは中継ノードは必ずしも各発信パケットを、パケットの最終送信先に至るルートに在る特定の次のノードに送信するわけではない。むしろ、ノード群は、通常はパケットを受信する多くのノードのいずれかがパケットをその送信先に転送し得るように、パケットを送信する。以下に更に記載するように、このルーティング手法は、パケットを起点ノードから送信先ノードに渡すのに必要な送信の数を減らすという特徴を有する。
【００２５】
図１に示す無線ネットワーク１００では、互いに直接通信する機能を備えるノード群はこれらのノードをつなぐ破線１１２で示される。例えば、ノードＢ及びＣはノードＡの送信距離内に位置するので、データをノードＡから受信することができる。以下の議論において、ノード間の接続性は通常、対称である（すなわち、どの対のノードをとってみても、双方のノードは他方のノードからの送信を受信することができる、またはどちらのノードも他方からの送信を受信できない）と仮定する。しかしながら、以下に記載するバージ
ョンのルーティングプロトコルは、いずれの２つのノードも対称リンクから成る経路によって接続される限り、非対称リンクが存在しても正常に機能し続け、別バージョンのルーティングプロトコルはこのような接続性を必要としない。
【００２６】
ルーティングプロトコルの一部として、各ノード１１０はコストテーブル１２０を保持する。各コストテーブルは多数のレコード（行）１２２を含み、各行は異なる特定の送信先ノードに関連する。コストテーブル１２０は２列を含む。一方の列１２４は送信先を特定できるようになっており、他方の列１２６はパケットを、テーブルを保持するノードから該当する送信先に送信するコストを示す。これらのコストは、ネットワークを通って送信先に至る最小コスト経路に関する当該ノードの推定値を表わす正の量である。経路のコストは、その経路に沿ったリンク群の各々に対応する追加項目を含む。リンクのコストは、リンク信頼性に反比例する。リンクの信頼性は、このリンクを通して隣接ノードからあるノードに到達するパケットの信号対雑音比（ＳＮＲ）を追跡することにより推定される。一般的に、リンクが短くなる程、通常はコストが小さくなる。これは、短いリンクは、長いリンクよりも信号強度が相対的に大きいためである。このバージョンのルーティングプロトコルは、リンクのノード群において等しいと推定されるリンク信頼性に依存せず、別バージョンのプロトコルはリンク信頼性が非対称な場合に明示的に対処する。
【００２７】
物理（Ｐｈｙｓｉｃａｌ：ＰＨＹ）層及びメディアアクセス制御（ＭｅｄｉａＡｃｃｅｓｓ  Ｃｏｎｔｒｏｌ：ＭＡＣ）層において、ノード群１１０は提案されているＩＥＥＥ
８０２．１５．４標準に従って通信する。直接シーケンス拡散スペクトラム（Ｄｉｒｅｃｔ  Ｓｅｑｕｅｎｃｅ  Ｓｐｒｅａｄ  Ｓｐｅｃｔｒｕｍ：ＤＳＳＳ）通信技術は未認可の２．４ＧＨｚ  ＩＳＭ（Ｉｎｄｕｓｔｒｉａｌ，  Ｓｃｉｅｎｔｉｆｉｃ，  ａｎｄ
Ｍｅｄｉｃａｌ）帯域で使用される。拡散スペクトラム通信を使用することにより、Ｂｌｕｅｔｏｏｔｈ（ＩＥＥＥ  ８０２．１５．１）、及びＩＥＥＥ  ８０２．１１ｂ標準を使用するＷｉｒｅｌｅｓｓ  ＬＡＮＳを含む、同じ帯域の他の通信システムとの干渉を回避することができる。パケットのあるノードから複数の隣接ノードへの同時送信をサポートする別のＰＨＹ層及びＭＡＣ層を、等価な方法で使用することがでる。
【００２８】
図２を参照すると、データがノード間で送信され、これらのノードはパケットフォーマットを使用し、このフォーマットでは各パケット２００は物理層ヘッダ２１０を含み、このパケットの残りの部分はネットワークサービスデータユニット（Ｎｅｔｗｏｒｋ  Ｓｅｒｖｉｃｅ  Ｄａｔａ  Ｕｎｉｔ：ＮＳＤＵ）２１８を構成する。ヘッダ２１０は、拡散スペクトラム通信を同期させるために使用するプリアンブル２１２、パケットデリミタ２１４、及びパケット長２１６を含む。ＮＳＤＵ２１８は、アドレス指定部２２０及びパケットデータユニット（Ｐａｃｋｅｔ  Ｄａｔａ  Ｕｎｉｔ：ＰＤＵ）２４０だけでなく、任意選択のＣＲＣ２４２を含む。
【００２９】
アドレス指定部２２０は、パケットをネットワークを通してルーティングするために使用する情報を含む。アドレス指定部２２０はモード２２２を含み、このモードはパケットがユニキャストパケット、ブロードキャストパケット、または肯定応答パケットのいずれであるかを示す指示子、及びこのパケットに基づいて中継ノード群がそのコストテーブルを更新すべきかを示す指示子を含む。図２の下部に示すように、アドレス指定部２２０Ａ〜２２０Ｃでは、アドレス指定部のフォーマットはパケットモードに依存する。
【００３０】
ユニキャストパケットの場合、アドレス指定部２２０Ａは、パケットに関する起点ノード２２４及び送信先ノード２２６の識別情報、起点ノードから送信されるパケットのシーケンス番号２３２、及びパケットを最終リンクを通して送信した送信元ノード２２３の識別情報を含む。このバージョンのプロトコルでは、ノード群はヘッダの１〜２５５の範囲の固有ノード番号によって識別される。アドレス指定部２２０はまた、パケットに関する
起点から送信元までの発生コスト２２８及び送信元から送信先までの残存コスト２３０を含む。これらのコストは０〜２５５の範囲の整数として表わされる。発生コスト及び残存コストを設定する手順について更に以下に記載する。
【００３１】
ブロードキャストパケットの場合、アドレス指定部２２０Ｂは送信先を含むのではなく、パケットがその起点から経由するホップの数をカウントするために使用されるラディウス（ｒａｄｉｕｓ）２２７を含む。ブロードキャストパケットは特定の送信先を宛先として送信されないので、アドレス指定部は残存コストフィールドを含まない。
【００３２】
肯定応答パケットのアドレス指定部２２０Ｃは送信元２２３、起点２２４、残存コスト２３０及びシーケンス番号２３２を含む。
２．実施例
グラディエント・ルーティング手法によるパケット転送の幾つかの実施例について図３〜図７Ａ，Ｂを参照しながら以下に議論する。これらの実施例は、パケットを送受信する際に従うべき手順を示している。簡単のために以下の議論では、単一の「パケット」が特定の起点ノード及びそのノードのシーケンス番号に関連付けられる。あるノードがあるパケットまたはそのパケットの複数のコピーを受信すると言うとき、これは、ノードが特定の起点ノード及びシーケンス番号を有するパケットのインスタンスを受信したことを意味する。重要である場合には、パケットの種々のインスタンス（すなわち、送信または再送信）は議論において区別される。ここでまた、図３〜図７Ａ，Ｂに示す手順の各々は、単一パケットの処理に関するものであることに注目されたい。しかしながら、各ノードはこれらの手順に従って同時に複数のパケットを処理することができる。
【００３３】
２．１  実施例１
第１の実施例では、ノードＡ１１０はノードＥ１１０宛てのユニキャストパケットを送信する。パケットがネットワークを通過するときにコストテーブルを更新するためにパケットにフラグを付加することはしない。この例では、ネットワークの各ノードは、送信先Ｅのためのそのコストテーブル１２０にレコード１２２を含む。例示として、リンク群に関するリンクコストを図１に括弧付で示し、各ノードのコストテーブル１２０の最小コストは送信先Ｅに至る最短経路に沿った最小合計コストである。
【００３４】
送信元ノードＡ１１０は、ノードＥ宛てのパケット２００Ａのアドレス指定部２２０を、送信元ノード２２３及び起点ノード２２４に含まれるその固有の識別情報及び送信先ノード２２６に含まれるノードＥの識別情報を用いて初期化する。ノードＡは発生コスト２２８をゼロに、残存コスト２３０を、そのコストテーブル１２０から取り出される送信先Ｅに至るまでのコスト、この例ではコスト１０に初期化する。このパケットは、コストテーブルを更新するために使用される予定の無いユニキャストパケットとしてフラグが付加される。ノードＡはそのパケットシーケンス番号をインクリメントし、そのシーケンス番号をシーケンス番号フィールド２３２に入れて、そのパケットを発信パケットキューで待機させる。
【００３５】
図３に示す手順を参照すると、パケットはユニキャストパケット（ライン０１１０）であるので、起点ノードＡ１１０は手順のライン０１２０〜０１７０の一連の初期ステップを実行する。まず、ノードＡはパケットをＭＡＣ層に渡してパケットを送信する（ライン０１４０）。ここで、特定のＭＡＣ層及びＰＨＹ層によっては、このステップを実行することによって実際には、例えば個々の送信を試行するときに衝突が検出される場合に、何回かの送信を試行することになることに注目されたい。
【００３６】
ＭＡＣ層は、パケットをどの隣接ノードも受信したことを保証する訳ではない。従って、ノードＡは再送信時間（ライン０１５０）だけ待機する。再送信時間が過ぎる前にノー
ドＡが、送信先に近い別のノードが既にパケットを転送したか、またはパケットが送信先に近い或るノードによって転送されたという明示的な肯定応答を受信したことを検出した場合（ライン０１７０）、ノードＡはパケットの待機状態を解除する（ライン０２５０）。以下に議論するように、あるノードがパケットを転送するとき、このノードは残存コストフィールド２３０を書き換える。このフィールドを分析することにより、ノードＡは、そのノードが実際には、このノードよりも送信先に近いノードによって転送されたのかを判定することができる。同様に、明示的な肯定応答パケットは、同じ目的に使用される残存コストフィールドを含む。ノードＡは、パケットを送信し、ノードが適切な転送または肯定応答を検出するまで、または再試行限界に達するまで待機する（ライン１４０〜１５０）ステップを繰り返す。
【００３７】
この実施例では、ノードＢ及びＣはノードＡからの送信距離内に在り、これらのノードは共にパケットを受信する。図４に示す手順を参照すると、各ノードはパケットを受信し、受信したＳＮＲを測定し、このＳＮＲを前にノードＡから検出したＳＮＲ値と合わせて平均する。このＳＮＲを使用してリンクコストＬＣを求める。このバージョンのシステムでは、リンクコストは１〜７の範囲の整数に設定される。
【００３８】
パケットに、受信ノードのコストテーブルを更新するためにフラグを付加する場合（ライン３２０）、受信ノードはそのコストテーブルを受信コストに基づいて更新することができる。この更新手順、及びノードがそのコストテーブルを更新する環境について更に以下に議論する。この実施例では、ノードＡからのパケットにコストテーブルを更新するためのフラグを付加せず、ノードＢ及びＣがパケットの最終送信先ではなく、従ってノードＢ及びＣの各々での受信パケットの処理はライン０３５０で継続し、ユニキャストパケットを中継ノードで処理するための手順を実行する（ライン０３９０）。
【００３９】
図６に示す手順を参照すると、一のパケットを受信する各中継ノード（すなわち、この例のノードＢ及びＣ）はまず、このノードがパケットを転送（再送信）すべきかを判定し、転送すべきであると判定した場合には、パケットの再送信を或る期間だけ遅延させる。この期間は、パケットがその最終送信が行なわれるまでに、どの位、最終送信先に向かって「進んでいる」かに依る。特に、受信ユニキャストパケットの処理はチェックから始まり、このチェックにより受信ノードが、受信パケットの送信先までの残存コストを含むそのコストテーブルに入力項目を有するかを確認する（ライン０６１０）。ノードが入力項目を有していない場合、ノードはパケットを転送することなくパケットを廃棄する。ノードが入力項目を有するが、その入力項目が送信先にとって、このノードがパケットを前に送信したノードよりも送信先から遠いことを示すことになる場合、そのノードもパケットを廃棄する。この実施例では、ノードＢ及びＣは共に、受信パケットに示される残存コストよりも低い送信先Ｅまでの残存コストを有するので、どちらのノードもパケットを廃棄しない。
【００４０】
実施例のこの時点で、第１に送信されたパケットを受信すると、ノードＢまたはノードＣが既にパケットを転送した、またはパケットを受け入れた別のノードを検出した、のいずれでもない（ライン０６２０）ので、受信パケットの処理はライン０６８０で継続する。
【００４１】
次の各ノードはパケットの最終ホップまでのパケットの進捗度を計算する（ライン０６８０）。この進捗度は受信パケットに示される残存コストと進捗度を計算するノードのコストテーブルの残存コストとの差として定義される。高コストのリンクを伝送するパケットは通常、計算上大きな進捗度を有する。パケットの進捗度は通常、最終リンクまでの受信コストに関連する（すなわち、低いＳＮＲに対応する大きい進捗度は普通、長い距離に対応する）が、信号特性の変化またはコストテーブルの動的変化に起因して、進捗度は必
ずしも最終リンクコストに等しくはならない。
【００４２】
進捗度を計算すると、ノードＢ及びＣは共にパケットを待機させる（ライン０６９０）。待機状態のパケットの発生コストは最終リンクコストに従って増やされ、残存コストはノードがパケットの最終送信先に関してそのコストテーブルに入力した入力項目に等しくなるように設定される。ここで、発生コストを実際にはルーティングの決定に使用しないので、発生コストの更新は更新コストフラグを設定しない場合には任意選択となる。
【００４３】
上記で紹介したように、パケットは通常、即時に送信される訳ではない。むしろ、各ノードは次に独自に、最終送信までにパケットに観察される進捗度に従って最大遅延を計算する（ライン０７２０）。この実施例では、ノードＢはノードＥに達するまでに７の残存コストを有するので、残存コストが１０に設定されたパケットの進捗度は３となる。同様に、ノードＣでのパケットの進捗度は５となる。この最大遅延は、一般的に進捗度が大きくなると最大遅延が小さくなるように、進捗度に依存する。この手法は通常、ホップ数の小さい経路を選択し、エンドツーエンドの待ち時間を短くする。ここで、ノードＢ及びＣはこれらのノードにおけるパケットの再送信を調整する必要がなく、いずれのノードも必ずしも、他方のノードもパケットを受信していてパケットを転送できることを認識している訳ではないことに注目されたい。
【００４４】
中継ノードＢ及びＣの各々は次に、起点ノードが実行するステップ（図３のライン０１３０〜０１７０を参照）と同様なループを実行する（ライン０７１０〜０８００）。しかしながら、最初にパケットを送信する前に、ノードはランダム遅延の期間だけ待機し、この遅延は、パケットの進捗度に従って算出されたゼロから最大遅延に渡る範囲の均一な確率分布から選択される。このバージョンのシステムでは、最大遅延は、１／２に算出進捗度（通常、１〜７の範囲の値）を累乗した値に固定時定数、ここでは２４ｍｓを乗じた値に等しくなるように設定する。従って、進捗度５のノードＣでの最大遅延は０．７５ｍｓであり、進捗度３のノードＢでの最大遅延は３．０ｍｓである。
【００４５】
この実施例では、我々はランダムに選択されるノードＣでの実遅延はノードＢに関して選択される遅延よりもずっと短いと仮定する。従って、ノードＣは、ノードＢよりも先にライン０７３０のテストを実施して、他のいずれかのノードがパケットを転送している、またはパケットを受け入れていることを検出したかどうかをチェックする。ノードＣはそのような転送または受け入れを検出しなかったので、このノードはパケットを送信し（ライン０７４０）、処理を進めて更に再送信すべきかを判定する前に、ある送信時間の間の待機を開始する（ライン０７５０）。
【００４６】
ノードＣが、ノードＢの選択する遅延がノードＣの遅延よりも長いという仮定の下にパケットを転送するとき、ノードＢは転送を行なうための待機を継続する（ライン０７２０）。我々は、ノードＢがノードＣのパケット転送動作を検出できる距離内に位置すると仮定する。従って、ノードＢが転送パケットを送信したと考えられる遅延期間の最後には、ノードＢはノードＣによる転送を検出してしまっている。ノードＣに関して検出されたこの転送に要する残存コストは５であり、この数値は送信先Ｅに関するノードＣのコストテーブルにおけるコスト入力項目である。送信先Ｅに関するノードＢでの入力項目が５よりも大きい７であるので（ライン０７５０）、ノードＢは最終送信先により近いノードが既に起点ノードからのパケットを転送したことを認識し、ノードＢは転送を行なう必要が無いことを認識する。
【００４７】
起点ノードＡに戻って図３を再度参照すると、我々は、ノードＡがノードＣによるパケット転送を検出すると仮定し、かつ転送パケットが、ノードＡがその再送信遅延の期間にある（ライン０１５０）状態で、ノードＣによって送信されると仮定する。転送パケット
の残存コストが、ノードＡでの送信先までのコスト１０よりも小さい５であるので（ライン０１７０）、ノードＡは次に、パケット待機状態を解除する（ライン０２５０）。
【００４８】
パケットがその最終送信先であるノードＥに向かった後、我々は、送信先ノードＥだけでなく他の中継ノードＡ，Ｂ及びＤもノードＣによるパケット転送距離の範囲内に在ると仮定する。図４を参照すると、送信先ノードＥはノードＣから送信されるパケットを、例示の手順に従って処理する。この実施例では、パケットはコストを更新するためにフラグが付加されることはないので、ノードＥは、図５に示す「送信先ノードでパケットを処理する（Ｐｒｏｃｅｓｓ  Ｐａｃｋｅｔ  ａｔ  Ｄｅｓｔｉｎａｔｉｏｎ  Ｎｏｄｅ）」と記述された手順（ライン０３６０）を実行する。
【００４９】
図５によれば、これがノードＥがこのパケットを受信した最初の時（ライン０５１０）であり、従ってノードＥが即時に、残存コストがゼロに設定された肯定応答パケットを送信する。
【００５０】
ノードＡ及びＢはそれぞれノードＣの転送パケットを受信する。しかしながら、これらのノードは共に、ノードＣからノードＥまでのコストよりも高いノードＥに達するまでのコストを有するので、双方のノードは検出した転送パケットを廃棄する（図６のライン０６１０）。
【００５１】
ノードＤはノードＣによる転送パケットを受信する。ノードＤはパケットがノードＤよりも近いノードが転送されていることを検出しなかったので（ライン０６２０）、パケットを転送する必要がある。ノードＥに達するまでのノードＤのコストは４であり、ノードＣからのコストよりも１だけ小さいので、ノードＣからの進捗度は１となる（ライン０６８０）。進捗度がかなり小さいので、遅延はかなり長くなる（ライン０７００）。従って、遅延の期間が終わる（ライン０７２０）までに、ノードＤはノードＥが送信した、残存コストがゼロの肯定応答パケットを検出してしまい、そのような残存コストは、当然、ノードＤのノードＥに達するまでのコストよりも低い（ライン０７３０）。ノードＤがノードＣから受信したパケットは、肯定応答が必要であることを通知しない（ライン０７７０）ので、ノードＤは次にパケット待機状態を解除する（ライン０８１０）。
この時点で、この実施例では、パケットはノードＡからノードＣを経由してノードＥに達し、不要な送信は全く行なわれない。
【００５２】
２．２  実施例２
実施例１の第１の別例では、例えば瞬時の好適な伝送環境が生じるためにノードＥが実際に何とかノードＡの最初の送信を受信したと仮定する。ノードＥが肯定応答を送信する（図５のライン０５２０）と仮定するだけでなく、ノードＡ及びＢではなく、ノードＣ及びＤも肯定応答を検出すると仮定する。ノードＢがノードＥから肯定応答を受信しなかった、またはパケットの再送信を全く受信しなかったので、ノードＢはそのランダム遅延の期間の最後にパケットを送信する（ライン０７４０）。ノードＢによる送信をノードＡ，Ｃ及びＤが受信すると仮定する。
【００５３】
ノードＣ及びＤは既に残存コストがゼロのパケットに関する肯定応答を受信してしまっているので、ノードＢによる転送パケットを廃棄する。しかしながら、ノードＣ及びＤは既にパケットに関する肯定応答を受信してしまっているので、各ノードはノードＢによる転送パケットの受信に応答して、肯定応答パケットを送信する（ライン０６３０）。ノードＢはこれらの肯定応答を受信するので、パケット待機状態を解除する（ライン０８１０）。ノードＡはノードＢによる転送パケットを受信するので、パケットが転送されたときにパケット待機状態を解除する（ライン０２５０）。
【００５４】
２．３  実施例３
実施例１の第２の別例では、ノードＤはノードＢ及びＣとともにノードＡによる最初の送信を受信する。次にノードＤは、他のノードよりも先にパケットを転送し、この転送パケットをノードＢ，Ｃ及びＥが受信する。従って、ノードＢ及びＣはパケットを転送しない。我々は、ノードＥによる肯定応答をノードＢ，Ｃ及びＤが受信するが、起点ノードＡは受信しないと仮定する。従って、再送信時間の遅延の期間の最後では（ライン０１５０）、ノードＡは、パケットがその送信先に達したこと、またはパケットが一ホップだけ送信されたことを認識しない。従って、ノードＡは元のパケットを再送信する（ライン０１４０）。
【００５５】
ノードＢ及びＣが再送信パケットを受信すると、これらのノードは既に転送パケットを低い残存コストのノードＤから受信してしまっている（図６のライン０６２０）。従って、ノードＢ及びＣは肯定応答を送信し、各肯定応答によって、肯定応答の残存コストフィールド２３０における送信先ノードＥまでのそのノードのコストを通知する。ノードＡはこれらの肯定応答の内の少なくとも一つを受信するので、パケット待機状態を解除する。
【００５６】
２．４  実施例４
次に、更新コストフラグが設定されていないノードＡを起点とするブロードキャストパケットの一例について考察する。図２を参照すると、ブロードキャストパケットのアドレス指定部２２０は送信先フィールド２２６ではなく、ラディウス（ｒａｄｉｕｓ）フィールド２２７を含む。ｒａｄｉｕｓフィールドの値は起点ノードによって正の番号に設定され、各転送ノードによってデクリメントされる。ノードは、ｒａｄｉｕｓの受信値が１よりも大きい場合にブロードキャストパケットを転送する。中継ノードでのブロードキャストパケットの処理は、更新コストフラグがアドレス指定部２２０のモードフィールド２２２に設定されているかどうかによって異なる。
【００５７】
図３を参照すると、ブロードキャストパケットはまず、ノードによってブロードキャストの所望ｒａｄｉｕｓを示す送信の待機状態となる（ライン０１９０）。次にノードはパケット待機状態を解除する前に、このパケットを所定回数だけ送信するが、この際、各送信を固定の再ブロードキャスト時間だけ遅延させる（ライン０２００〜０２３０）。ノードは転送されているパケットを検出するために待機する必要はない。このバージョンのシステムでは、ノードはパケットを３回再ブロードキャストする（ｎ＿ｂｒｏａｄｃａｓｔ＝３）。
【００５８】
各受信ノードはパケットを図７Ａの手順に従って処理する。一般的に、ノード群は、パケットの発生コストを受信パケットが経由したリンクのリンクコストだけ増やし、ｒａｄｉｕｓを１だけ減らした後に、１よりも大きい受信ｒａｄｉｕｓを有するブロードキャストパケットを転送する。パケットの処理方法は更新コストフラグが設定されているかどうかに依って変わる。
【００５９】
この実施例では、ノードＢ及びＣがそれぞれまずパケットを受信すると、受信ｒａｄｉｕｓが１よりも大きく、更新コストフラグが設定されていないので、処理はライン１０４０から始まる。ノードＢ及びＣは事前にこのパケットのコピーを受信してはいないので、これらのノードは共に、発生コストを増やし、ｒａｄｉｕｓを減らした（ライン１０７０）後にパケットを待機させ、パケット再送信のループ（ライン１０８０〜１１１０）を開始する。パケットを固定回数だけ転送した後、各ノードはパケット待機状態を解除する。
【００６０】
ノードＤはまずノードＢ及びＣの内の一方のノードから最初に転送パケットを受信し、同じ転送手順を開始する。ノードＤがノードＢ及びＣの内の他方のノードから転送パケットを受信すると、ノードＤはパケットを廃棄する（ライン１０５０）。
【００６１】
２．５  実施例５
次に、ブロードキャストパケットが、更新コストフラグが設定されている起点ノードＡから送信される例について考察する。起点ノードＡが実行する手順は、更新コストフラグが実施例４で設定される場合と同じである。
【００６２】
この実施例では、ノードＢ及びＣがそれぞれまずパケットを受信すると、受信ｒａｄｉｕｓが１よりも大きく、更新コストフラグが設定されているので、処理はライン０９１０から始まる。ノードＢ及びＣは事前にこのパケットのコピーを受信してはいないので、処理はライン０９３５で継続する。
【００６３】
各ノードは、一のパケットをそのノードから起点に送信するコストに関してそのコストテーブルを更新するが、この操作は、受信リンクコストに起点ノードからの発生コストを加算した（ライン０９３５）コストに基づいて行なわれる。この実施例では、受信に際して、ノードＢ及びＣにおけるノードＡからの受信パケットの発生コストはゼロであるので、ノードＢ及びＣは共に、ノードＡまでのコストを、ノードＡから丁度受信したパケットの受信リンクコストに設定する。
【００６４】
各受信ノードは遅延を受信リンクコストに従って設定する。リンクコストは送信の信号特性に基づいて算出され、このバージョンでは、１〜７の整数値に量子化され、信頼性の高いリンクほどコストが低くなることを思い出されたい。このバージョンのシステムでは、最大遅延はコストから１を差し引いた値に４ｍｓの時定数を乗じた値に設定される（ライン０９４０）。従って、コスト１に対応する遅延は０ｍｓに等しく、コスト７に対応する遅延は２４ｍｓに等しい。各ノードはパケットを待機させて（ライン０９５０）ランダム期間だけ待機するが、この期間はゼロ〜算出遅延の範囲に渡る均一分布から選択される（ライン０９６０）。
【００６５】
ブロードキャストパケットの転送プロセスの間、ノードはパケットの別のコピーを受信することができる。この第２のコピーは異なる発生コストを示し、リンクコストは第１のコピーのものとは異なる。このバージョンのルーティング手法においては、ノードが前のパケット転送よりも低い発生コストを示す第２のコピーを転送する場合には、前に受信したパケットのコピーの転送は、既に完了していない場合には中断される。第２のコピーが発生コスト以上のコストが付されて転送されてくる場合には、パケットは転送されない。例えば、ノードがまずリンクコストがｃ１で発生コストがａ１のパケットを受信すると、パケットの転送によって発生コストがａ１＋ｃ１であることが通知される。後で、ノードがリンクコストがｃ２で発生コストがａ２を示すブロードキャストパケットの別のコピーを受信すると、このパケットは転送されて発生コストがａ２＋ｃ２であることが通知される。しかし、ａ２＋ｃ２≧ａ１＋ｃ１が成り立つ場合、隣接ノードが既にパケットを受信してしまっているだけでなく、起点ノードからの第２の発生コストが低くないので、パケットの第２のコピーは転送されない。
【００６６】
図７Ａに示す特定の手順に戻ると、遅延期間の最後で、中継ノードが、低い発生コスト（受信発生コスト＋リンクコスト）が付されて転送されると考えられるパケットのコピーを受信しなかった場合（ライン０９７０）、このノードはパケットを送信する（ライン０９８０）。この遅延及び送信は所定回数、このバージョンのシステムでは３回に渡って繰り返される。
【００６７】
本実施例では、ノードＢはコストが３のパケットを受信し、ノードＣはコストが５のパケットを受信すると仮定する。ノードＢでの最大遅延は従って８ｍｓとなり、ノードＣでの最大遅延は１６ｍｓとなる。ランダムに選択した期間に基づいて、ノードＢがパケット
をまず転送し（ライン０９８０）、ノードＣが転送パケットを受信する、と仮定する。
【００６８】
本実施例では、ノードＣはパケットの第２のコピーをノードＢから受信し、この場合、パケットには３のコスト及び３の発生コストが示される。従って、パケットの新規発生コストは、ノードＣがこのパケットを転送すると仮定した場合には６となる。しかし、ノードＣは発生コストが５のパケットを待っているので、ノードＣはノードＢからのパケットを廃棄する（ライン０９２０）。
【００６９】
ここで原理的に、ユニキャストパケットは更新フラグが設定された状態で送信することもできることに注目されたい。この結果、送信先に至る最短ルートに「近い」一連のノードにおける起点ノードに関するコスト入力項目は更新されることになる。
【００７０】
３  階層化プロトコル
上述したルーティング手法は、パケット群がこれらのパケットの送信先に配信されることを保証するものではない。ネットワーク層の最上位に構築される高位プロトコルは、エンドツーエンド肯定応答（ノード間で行なわれる肯定応答）のような機能を、これらの機能がアプリケーションに必要とされる場合に提供する役割を担う。例えば、エンドツーエンド肯定応答を求めるリクエストはＮＰＤＵ２４０に含ませることができる（図２）。ユニキャストパケットの最終送信先がパケットを受信すると、高位プロトコル層は肯定応答パケットを生成して起点ノードに返送する。
【００７１】
ルーティングの役割を担うネットワーク層よりも高位の層では、セッションというコンセプトがサポートされる。図１に示す実施例のネットワークにおいて、ノードＡがノードＥとの通信を求めるが、ノードＡがパケットをノードＥに送信するコストを認識していない、またはノードＡが保有するノードＥまでの送信コストが古い場合、ノードＡは、ノード群がこれらのノードが保有する（ノードＡに至るまでの）コストをパケットを受信するときに更新すべきであることを通知するブロードキャストパケットを送信する。パケットのペイロードはまた、セッションをノードＥが構築することを要求するリクエストを含む。リクエストに応答する形でノードＥはユニキャストパケットをノードＡに送り返す。このパケットも更新フラグが設定されている。ノードＡがノードＥからの返答を受信すると、ルートに沿ったコストテーブルはノードＡとノードＥとの間の双方向通信をサポートする。別の方法として、ノードＡに対するノードＥの返答もブロードキャストパケットとすると、ノードＥに至るまでのコストをネットワークのより多くの数のノードにおいて更新することができる。
【００７２】
４  別の実施例
４．１  ルーティング層とＭＡＣ層との相互作用
ＭＡＣ層は送信時に一のパケットを受け入れ、送信完了時（無事に送信を終える、または、例えばＣＳＭＡ方式において最長バックオフ時間が経過して送信に失敗した時）にステータスコードを返信する。起点ノードからのパケットを送信すると、ＭＡＣ層は即時に送信を行なうように許可される。パケットを中継ノードにおいて送信すると、ＭＡＣ層はランダムに初期バックオフ時間を選択するように指示を受けて、送信が隣接ノードによる送信と同時にならないようにする。初期バックオフは進捗度ベースの転送遅延に関係なく処理される。必要ではないがＭＡＣの有用な性能は、前にリクエストされた送信をキャンセルする機能である。この性能をルーティング層が使用して、例えば肯定応答がＭＡＣが処理しているパケットに対して行なわれる場合の不要な送信を減らす（例えば、肯定応答がライン０７３０で検出される場合にライン０７４０の送信を行なわない）。
【００７３】
４．２  コストの平均化
上述のコスト更新手法では、一のノードが受信リンクコストを、コスト更新用のフラグ
が付加された単一パケットに関して受信した信号対雑音比に基づいて算出する。別の構成として、各ノードが、その隣接ノードから受信するパケットのコストの長期平均値を保持し、フラグの付加されたパケットを受信するとこの平均値を使用してコストテーブルを更新し、転送パケットの発生コストフィールドをインクリメントする。
【００７４】
４．３  事前のコストテーブル更新
ノード群は任意にコストテーブル情報をこれらのノードの隣接ノードと交換することができ、受信したコストテーブル及び受信したリンクコストを使用してこれらのノード固有のテーブルを更新する。例えば、更新フラグが設定されているパケットを待ってそのパケットの起点ノードに至るまでの、そのノードにおけるコストテーブルの入力項目を更新するのではなく、ノードは隣接ノードのコストテーブルの一つ以上の入力項目を受信する。受信ノードは入力項目を送信したノードからのパケットに関するリンクコストを入力項目のコストの各々に加算する。次にこのノードは、受信してコストをインクリメントしたコストが低い場合に該当するテーブルのコストがあればそれを全て置き換える。
【００７５】
４．４  単方向コスト
上述のコスト更新手法では、一のパケットをノードＡに送信する中継ノードＢでのコストは、パケット群をノードＡからノードＢに送信するときの発生コストに基づいて設定される。パケット群の送信コストが対称ではないシステムでは、別の手法が望ましい。非対称コストは多くの理由により生じるが、これらの理由には、異なるノードでの送信電力の差、または局所的に生じ、異なる受信機に異なる程度に影響を及ぼす干渉が挙げられる。
【００７６】
この手法では、各ノードは、その隣接ノードが受信する１に設定されたｒａｄｉｕｓフィールド付のメッセージを定期的にブロードキャストする。ｒａｄｉｕｓが１に設定されているので、このメッセージはこれらのノードによっては転送されない。メッセージ本体は、隣接ノードの各々からパケット群を受信するコストを含み、このコストはこれらの隣接ノードから前に送信されたメッセージに基づく。
【００７７】
各ノードは、そのノードが送信するパケットをそのノードの隣接ノードの各々において受信するリンクコストのテーブルを維持する。ノードＢが更新コストフラグの付されている一のパケットをノードＡから受信すると、そのパケットの受信コストをパケットに示される発生コストに加算するのではなく、ノードＢはそのテーブルにおいて、パケット群をノードＢからノードＡにおいて受信するコストを加算する。
発生コストの更新をこのように変えると、コストテーブルは真にパケットを送信先ノードに送信する単方向コストを反映する。
【００７８】
４．５  通信バックボーン
別の手法では、ノード群は非無線リンクで接続される。例えば図８を参照すると、ノードＡ８１０及びノードＥ８１０は共に無線インターフェイス及び有線インターフェイスを含み、イーサネット、ＭＯＤＢＵＳ（登録商標）、または専用有線リンクのような有線ネットワーク８２０で接続される。このシステムでは、上述のルーティング及びコスト更新アルゴリズムはこれまでのように機能し、この場合、有線リンクを通しての通信コストはゼロである（または無線リンクのコストよりも低い）。すなわちノードＡでは、ノードＥとの通信を行なうためのコストテーブルのコストはゼロである。図８に示す実施例では、ノードＥからノードＦに達するためのコストは４（Ｂ→Ａ＝２，Ａ→Ｅ＝０，Ｅ→Ｆ＝２）である。ノードＢがパケットを送信先ノードＦに送信し、このパケットをノードＡ，Ｃ及びＤが受信すると、ノードＡ及びＣはパケット再送信の待機状態になる。ノードＡはノードＦからのコストが２であるので、ノードＡが最初に再送信を行なう可能性が大きく、この場合、ノードＡはパケットを有線ネットワーク８２０を通して渡すことにより再送信を行なう。
【００７９】
ここで、万が一有線ネットワークが故障したとすると、ノードＢとノードＦとの間の接続はノードＣとノードＦとの間のリンクで維持されることに注目されたい。このように、無線ネットワークは有線ネットワークによって接続される他のノードのバックアップとして機能することができる。
【００８０】
４．６  アドレス指定サービス及びノード検出サービス
上述の手法では、アドレス指定はネットワークのノード群の識別情報に従う。各ノードがサービス群の内の一つ以上を提供する機能を備える別の手法では、パケット群はノード群ではなくサービス群に向けられる。また、同じサービスを多くの異なるノードで享受できる。この別の実施例では、コストテーブルは、パケット群を特定のサービス群に送信するためのコストを特定する入力項目を含む。ルーティングアルゴリズムは上述のように機能する。一のノードが一の特定サービスを必要とする場合、このノードはブロードキャストパケットをそのサービスに送信し、そのサービスを列挙しているノードが返答するので、そのサービスを提供する最も近いノードの位置を特定することができる。
【００８１】
４．７  ゾーン毎のアドレス指定
別の手法では、ノード群は複数のゾーンに配置する。例えば、ノード識別情報の一部（例えば、番号アドレスのプレフィックス）によってノードがメンバーとなっているゾーンを識別することができる。このような手法では、一のノードは全ての考えられる送信先ノードまでのコストを明示的に維持しなくても良い。図９を参照すると、ノードＡ，Ｂ，Ｃ及びＤはゾーンＸ９１０に位置し、ノードＥ，Ｆ及びＧはゾーンＹに位置する。各ノードはコストテーブル９２０を維持し、このコストテーブルはそのノードのゾーンの個々のノードに関連するレコード１２２を含むと共にレコード群９２２も含み、これらのレコード９２２の各々は全ゾーンに関連する。一のゾーンに関連するコストはそのゾーンのどのノードに対しても最小コストになっている。
【００８２】
上述のルーティングアルゴリズム及び更新アルゴリズムは同じように機能し、一のゾーンに関するコストテーブルの一の入力項目はそのゾーンの一のノードまでの最小コストを表わす。すなわち、一のノードがパケットを別のゾーンの一のノードに送信しようとする場合、このノードは送信先ノードの識別情報を使用して送信先ノードのゾーンの識別情報を求め、ゾーンの識別情報によるコストテーブルのレコードをルックアップする。
この手法の別の別例では、複数レベルの階層のゾーンが設けられ、一のノードにおけるコストテーブルは異なるレベルの階層のゾーンを含む。
【００８３】
４．８  リンクコスト及び遅延計算
受信信号の他の測定値をリンクコスト計算の基礎として使用することができる。ＣＤＭＡシステムでは、信号相関値を信号対雑音比の直接測定値の代わりに使用することができる。同様に、絶対信号レベルを代わりに使用することができる。ビットエラーレートまたはパケットエラーレートのようなデジタルエラーレートをリンクコストを求めるための基礎として使用することもできる。
【００８４】
別の手法では、信号品質以外の他の要素に基づくコストを使用する。例えば、低電力ノードからの送信は電力が制限されていないノードからの同様の送信よりもコストが高くなる。このようにして、パケットは低電力ノードを避けて選択的にルーティングされる。リンク信頼性の他の指標を使用することもできる。例えば、一のリンクが定期的に利用不能となることが分かっている、または信頼性が低いことが分かっている場合、そのリンクコストを継続利用可能なリンクよりも高く設定することができる。
【００８５】
上述の手法では、パケット再送信を通常、遅延させて不要な再送信を部分的に回避する
、または衝突を部分的に回避する。別の手法を使用してパケット遅延量を算出することができる。例えば、ランダム遅延ではなく確定遅延を使用することができる。また、遅延分布または遅延の確率分布を複数の要素に基づくものとすることができ、これらの要素としては、例えば送信先に達するための絶対コスト、送信先までの次のリンクコスト、最終リンクの地理的距離または送信先までの距離、ノードでの利用可能電力、転送パケットの好適性に関するパラメータのような事前設定パラメータ、または優先度のようなパケット特性が挙げられる。
【００８６】
４．９  他のルーティング手法との組合せ
別の構成として、上述のグラディエント・ルーティング手法を明示的ルーティングと組み合わせることができる。例えば、ユニキャストパケットを送信先までの最短経路に沿った次のノードに明示的に向けることができ、このようにして宛先として明示的に示される受信ノードがパケットを遅延なしに転送する。このように一のノードのみが宛先として明示的に示されるので、複数ノードがノードを即座に中継することがなく、従って直接的な衝突が回避される。
【００８７】
この手法では、パケットを受信するが宛先として明示的には示されないノード群が最短経路に沿ったノードのバックアップとして機能する。最短経路に位置するノードで、宛先として明示的に指定されたノードが万が一パケット転送に失敗すると、バックアップとして機能するこれらのノードはパケットを転送して宛先として指定されたノードによる転送の失敗を埋め合わせてパケットを転送する。
【００８８】
今までに記載した記述は例示であって、添付の請求項の技術範囲により定義される本発明の技術範囲を制限するものではないことを理解されたい。他の実施形態は次に示す請求項の技術範囲に含まれる。
【図面の簡単な説明】
【００８９】
【図１】無線ネットワークを示す図。
【図２】データパケットを示す図。
【図３】パケットを起点ノードから送信する手順を示す擬似コードを示す図。
【図４】受信パケットを処理する手順を示す擬似コードを示す図。
【図５】受信パケットを送信先ノードで処理する手順を示す擬似コードを示す図。
【図６】受信ユニキャストパケットを中継ノードで処理する手順を示す擬似コードを示す図。
【図７Ａ】受信ブロードキャストパケットを処理する手順を示す擬似コードを示す図。
【図７Ｂ】受信ブロードキャストパケットを処理する手順を示す擬似コードを示す図。
【図８】有線ネットワークによって接続される幾つかのノードを有する無線ネットワークを示す図。
【図９】ゾーンに区分された無線ネットワークを示す図。
【図１】
2005529538.tif 000003
【図２】
2005529538.tif 000004
【図３】
2005529538.tif 000005
【図４】
2005529538.tif 000006
【図５】
2005529538.tif 000007
【図６】
2005529538.tif 000008
【図７Ａ】
2005529538.tif 000009
2005529538.tif 000010
【図８】
2005529538.tif 000011
【図９】
2005529538.tif 000012
【国際調査報告】
2005529538.tif 000013