(57)【要約】メッシュネットワークにおける適応性無線ルーティングプロトコルのための方法およびシステムが開示される。一実施形態では、本方法は、メッシュネットワーク中の複数のノード間でデータグラムをルーティングするステップを含む。アップデートメッセージが、複数のノードのうちの１つ以上へルーティングされ、該アップデートメッセージはハローパケットとアップデートパケットとを含む。  前記ハローパケットは、ネイバー関係を確立し維持し、前記アップデートパケットは、前記複数のノードに格納されたルーティングテーブルを維持する。
2009518891.tif 000002
【特許請求の範囲】
【請求項１】
メッシュネットワーク中の複数のノード間でデータグラムをルーティングするステップと、
前記複数のノードのうちの１つ以上にメッセージをルーティングするステップと
を含み、前記ルーティングメッセージはハローパケットとアップデートパケットとを含む、方法。
【請求項２】
前記ハローパケットは、ネイバー関係を確立し維持する、請求項１に記載の方法。
【請求項３】
前記アップデートパケットは、前記複数のノードに格納されたルーティングテーブルを維持する、請求項１に記載の方法。
【請求項４】
前記ルーティングテーブルは、宛先ＩＰアドレス、宛先マーク、ルータＩＤ、最大シーケンス番号ルート、最小メトリックルート、即時アップデートフラグ、およびメッセンジャー情報を含む、請求項３に記載の方法。
【請求項５】
前記アップデートパケットは、定期アップデートパケット、即時トリガアップデートパケット、および通常のトリガされたアップデートパケットを含む、請求項２に記載の方法。
【請求項６】
データグラムをルーティングするステップは、最大宛先シーケンス番号を有するルートを選択するステップを含む、請求項１に記載の方法。
【請求項７】
前記アップデートパケットは、メッセンジャーを含む、請求項１に記載の方法。
【請求項８】
１つ以上のネイバーノードとのリンクが壊れているかどうかを監視するステップをさらに含む、請求項１に記載の方法。
【請求項９】
宛先ノードへのリンクが壊れているときにローカル修復手順を実行するステップをさらに含む、請求項８に記載の方法。
【請求項１０】
複数の命令を格納したコンピュータ読み取り可能な媒体であって、前記複数の命令は、コンピュータにより実行されると、前記コンピュータに、
メッシュネットワーク中の複数のノード間でのデータグラムのルーティングと、
前記複数のノードのうちの１つ以上へのメッセージのルーティングと
を実行させ、ルーティングメッセージはハローパケットとアップデートパケットとを含む、コンピュータ読み取り可能な媒体。
【請求項１１】
前記ハローパケットは、ネイバー関係を確立し維持する、請求項１０に記載のコンピュータ読み取り可能な媒体。
【請求項１２】
前記アップデートパケットは、前記複数のノードに格納されたルーティングテーブルを維持する、請求項１０に記載のコンピュータ読み取り可能な媒体。
【請求項１３】
前記ルーティングテーブルは、宛先ＩＰアドレス、宛先マーク、ルータＩＤ、最大シーケンス番号ルート、最小メトリックルート、即時アップデートフラグ、およびメッセンジャー情報を含む、請求項１２に記載のコンピュータ読み取り可能な媒体。
【請求項１４】
前記アップデートパケットは、定期アップデートパケット、即時トリガアップデートパケット、および通常のトリガされたアップデートパケットを含む、請求項１１に記載のコンピュータ読み取り可能な媒体。
【請求項１５】
追加命令を格納し、前記追加命令は、データグラムのルーティングのためにコンピュータにより実行されると、前記コンピュータに、最大宛先シーケンス番号を有するルートの選択をさらに実行させる、請求項１０に記載のコンピュータ読み取り可能な媒体。
【請求項１６】
前記アップデートパケットは、メッセンジャーを含む、請求項１０に記載のコンピュータ読み取り可能な媒体。
【請求項１７】
追加命令を格納し、前記追加命令は、コンピュータにより実行されると、前記コンピュータに、１つ以上のネイバーノードとのリンクが壊れているかどうかの監視をさらに実行させる、請求項１０に記載のコンピュータ読み取り可能な媒体。
【請求項１８】
追加命令を格納し、前記追加命令は、コンピュータにより実行されると、前記コンピュータに、宛先ノードへのリンクが壊れているときのローカル修復手順の実行をさらに実行させる、請求項１１に記載のコンピュータ読み取り可能な媒体。
【請求項１９】
メッシュルータであって、
プロセッサと、
前記プロセッサに結合されたメモリと、
前記プロセッサおよびメモリを結合するバスと
を備え、前記メモリは、メッシュネットワーク中の複数のノード間でデータグラムをルーティングするため、および前記複数のノードのうちの１つ以上にメッセージをルーティングするための、前記プロセッサにより実行される命令を格納し、ルーティングメッセージはハローパケットとアップデートパケットとを含む、メッシュルータ。
【請求項２０】
前記ハローパケットは、ネイバー関係を確立し維持する、請求項１９に記載のルータ。
【請求項２１】
前記アップデートパケットは前記メモリに格納されたルーティングテーブルを維持する、請求項１９に記載のルータ。
【請求項２２】
前記ルーティングテーブルは、宛先ＩＰアドレス、宛先マーク、ルータＩＤ、最大シーケンス番号ルート、最小メトリックルート、即時アップデートフラグ、およびメッセンジャー情報を含む、請求項２１に記載のルータ。
【請求項２３】
前記アップデートパケットは、定期アップデートパケット、即時トリガアップデートパケット、および通常のトリガされたアップデートパケットを含む、請求項２０に記載の方法。
【請求項２４】
データグラムをルーティングするステップは、最大宛先シーケンス番号を有するルートを選択するステップを含む、請求項１９に記載の方法。
【請求項２５】
前記アップデートパケットは、メッセンジャーを含む、請求項１９に記載の方法。
【請求項２６】
１つ以上のネイバーノードとのリンクが壊れているかどうかを監視するステップをさらに含む、請求項１９に記載の方法。
【請求項２７】
宛先ノードへのリンクが壊れているときにローカル修復手順を実行するステップをさらに含む、請求項２６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の分野は、概して無線ネットワークに関し、より具体的には、無線メッシュネットワーク用に設計された適応性ルーティングプロトコルのための方法およびシステムに関する。
【背景技術】
【０００２】
コンピュータおよび無線通信における最近の技術的発達に伴い、モバイル無線コンピューティングが次第に広範に使用され応用されるようになってきた。モバイルコンピュータデバイスを持つユーザは、ワイヤによる制限を受けずに、自分の都合に合わせて自由に動き回ることができ、また、固定されたインフラストラクチャがない状況でも、互いに通信しなければならない場合が度々ある。そのような場合では、モバイルアドホックネットワーク（ＭＡＮＥＴ）またはモバイル無線メッシュネットワークを形成することができる。モバイル無線メッシュネットワークは、基盤となるバックボーンやインフラストラクチャが一切なくても、無作為に移動して自らを任意のネットワークに再構築することができる、無線モバイルルータ（および関連したホスト）の自律システムである。
【０００３】
モバイル無線メッシュネットワークの他に、最近、固定無線メッシュネットワークの興味深い商用用途もまた出現した。そのような用途の１つの例は、今までブロードバンドインターネットアクセスを持っていなかったコミュニティにそのようなアクセスを提供するために使用される、「コミュニティ無線ネットワーク」である。これらの固定された「コミュニティ無線ネットワーク」では、そのネットワーク中のそれぞれの無線ルータは、つながったユーザにインターネットアクセスを提供するだけでなく、ネットワークインフラストラクチャの一部となり、無線メッシュネットワークを通して宛先にデータをルーティングすることができる。ルーティングされた無線メッシュネットワークは、極めて柔軟で、本質的に耐障害性を有する。これは、ラインオブサイト（ｌｉｎｅ−ｏｆ−ｓｉｇｈｔ）の問題を単純化し、ネットワークインフラストラクチャの量や相互接続のコストを最小限にしながら、ネットワークの範囲や領域を拡張する。
【０００４】
あるメッシュルータは移動型であり、その他は移動型でない場合には、ハイブリッド無線メッシュネットワークもある。いずれの場合でも（移動型、固定、またはハイブリッド）、無線メッシュネットワークは、例えば、極めて動的、自律的、ピアツーピア、マルチホップ、帯域幅が限られていることが多い、計算能力等、いくつかの顕著な特質を有する。無線メッシュネットワークは、以下の２つの理由により、極めて動的である。第一に、ルータ自身は（例えば移動型またはハイブリッド無線メッシュネットワーク等において）移動し、急速なトポロジ変化が生じ得る。第二に、ルータ自身が（例えば固定無線メッシュネットワーク等において）移動しなかったとしても、干渉、地理的および環境的要因等により、ラジオリンクの品質は非常に速く変化する場合がある。有線インフラストラクチャ用に設計された従来のルーティングプロトコル（ＯＳＰＦ、ＲＩＰ等）は、そのような急速な変化に対応できない。一方、アドホックルーティングプロトコル（ＡＯＤＶ等）の多くは、ラジオリンクの品質の変化に柔軟に適応する能力に欠ける。
【発明の開示】
【課題を解決するための手段】
【０００５】
メッシュネットワークにおける適応性無線ルーティングプロトコルのための方法およびシステムが開示される。一実施形態では、本方法は、メッシュネットワーク中の複数のノード間でデータグラムをルーティングするステップを含む。ルーティングメッセージが、複数のノードのうちの１つ以上へ送信され、該ルーティングメッセージはハローパケットとアップデートパケットとを含む。
【０００６】
実装および要素の組み合わせに関する種々の新規の詳細を含め、上述の、および他の好ましい特徴を、添付の図面を参照してより具体的に説明し、請求項において指摘する。本願で説明する特定の方法およびシステムは、例示目的のみで示され、限定を目的としていないことが理解されるだろう。当業者には理解されるように、本願で説明する原理および特徴は、本発明の範囲から逸脱しない範囲で、種々の、そして数々の実施形態に採用することができる。
【０００７】
本明細書の一部として含まれる添付の図面は、本発明の現在の好ましい実施形態を図示しており、上述の概要および後述の好ましい実施形態の詳細な説明と併せて、本発明の原理を説明し教示する役割を果たす。
【発明を実施するための最良の形態】
【０００８】
メッシュネットワークにおける適応性無線ルーティングプロトコルのための方法およびシステムが開示される。一実施形態では、本方法は、メッシュネットワーク中の複数のノード間でデータグラムをルーティングするステップを含む。ルーティングメッセージが、複数のノードのうちの１つ以上へ送信され、該ルーティングメッセージはハローパケットとアップデートパケットとを含む。
【０００９】
以下の記述において、説明を目的として、本願で開示される種々の発明の概念を完全に理解できるようにするために特定の用語が記されている。しかし、本願に開示される種々の発明の概念を実践するために、これらの特定の詳細が必要であるわけではないことが、当業者には理解されるだろう。
【００１０】
以下の詳細な説明の一部は、無線ネットワークおよびコンピュータシステムに関して示される。これらの無線ネットワークの説明および描写は、無線ネットワーキングの技術分野の当業者により使用され、彼らの仕事の実質部分を当技術分野の他の当業者に最も効果的に伝達するための手段である。本願において、および一般的に、無線ネットワークとは、キャリアとして電波を使用した、２つ以上のコンピュータ間の通信のためのシステムと考えられる。必ずというわけではないが、通常、コンピュータシステム間で通信される情報は、パケットという形態をとる。さらに、一般的な使用のために、パケットの構成要素は、ビット、値、成分、符号、文字、項、数字等と呼ばれる。
【００１１】
しかし、これらの類似した用語は、該当する物理量と関連付けられるべきものであり、これらの物理量に与えられた便宜的な標示に過ぎないことに留意が必要である。以下の考察から明らかなように、別段に明記されていない限り、説明を通して、「ルータ」、「ラジオ」、「周波数」、「チャネル」、「バックボーン」、「パケット」、または「通信」等の用語を使用した考察は、コンピュータシステムのレジスタおよびメモリまたは他のそのような情報記憶、伝送または表示デバイス内の物理（電子的）量を、１つのコンピュータから別のコンピュータへ移動する、ネットワークまたは類似の通信システムの構成要素、およびアクションおよびプロセスについて言及する。
【００１２】
本発明はまた、本願における操作を実行するための装置にも関する。この装置は、必要な目的に特定して構築してもよく、またはコンピュータに格納されたコンピュータプログラムにより選択的に起動されるまたは再構成される汎用コンピュータを備えてもよい。そのようなコンピュータプログラムは、これらに限定されないが、それぞれコンピュータシステムバスに結合された、フロッピー（登録商標）ディスク、光ディスク、ＣＤ−ＲＯＭ、光磁気ディスク等のあらゆるタイプのディスク、読取専用メモリ、ランダムアクセスメモリ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気または光カード、または電子命令を格納するのに適したあらゆるタイプの媒体等、コンピュータ読み取り可能なの記憶媒体に格納される。
【００１３】
本願で提示される方法は、本質的には特定のコンピュータまたは他の装置に関連していない。本願の教示に従い、プログラムとともに種々の汎用システムを使用してもよく、または、必要とされる方法のステップを実行するための、より特化した装置を構築するのが便利な場合もある。これらの種々のシステムに必要な構造は、以下の説明から明らかになる。さらに、本発明は、特定のプログラミング言語を参照して説明されることはない。本願で説明されるような本発明の教示を実行するために、種々のプログラミング言語を使用することができることが理解されるだろう。
【００１４】
以下の一覧は、本願で使用される用語の頭文字および定義を説明するものである。
ノード：本願で説明される方法およびシステムに従い適応性無線ルーティングを実行するルータ。
適応性無線ルーティングインタフェース：適応性無線ルーティングを実行している無線メッシュに関与しているネットワークデバイス。１つのノードは、いくつかの適応性無線ルーティングインタフェースを有する場合がある。
非適応性無線ルーティングインタフェース：適応性無線ルーティングを実行している無線メッシュに関与していないネットワークデバイス。１つのノードは、いくつかの適応性無線ルーティングインタフェースを有する場合がある。これらのインタフェースからのルーティング情報は、適応性無線ルーティングドメインに注入することができる。
ルータＩＤ：無線メッシュネットワーク中のノードを一意に識別する３２ビットの数字。１つの可能な実装法としては、ノードに属する適応性無線ルーティングインタフェースの最小ＩＰアドレスを使用することが考えられる。他の実装法としては、この目的のために構成されるループバックインタフェースのＩＰアドレスを使用することが考えられる。
宛先シーケンス番号：それぞれの宛先ノードを起源とし該ノードにより維持される、単調増加する数字。これは、古いルートを新しいものから識別する助けとなり、ループを避けることができる。
リンク：リンクは、互いに聞こえやすい（つまり一方が片方からのトラフィックを受信可能な場合がある）、（２つの異なるノードからの）適応性無線ルーティングインタフェースの組である。あるノードのインタフェースのうちの１つが他のノードのインタフェースのうちの１つへのリンクを有する場合、そのノードは他のノードへのリンクを有すると言う。
【００１５】
適応性無線ルーティングのための本方法およびシステムは、無線メッシュネットワーク用に設計された、適応型、分散型、プロアクティブ型のルーティングプロトコルを含む。図１は、本発明の一実施形態による、例示的な無線メッシュネットワークのブロック図を示す。メッシュネットワーク１００は、近隣１１２等、無線ネットワークの一部であってもよい。一実施形態によれば、近隣１１２は、複数のセル１１０に分割され、個々のセル１１１はそれぞれ、無線メッシュネットワーク１００への１つ以上の加入者１２０を含む。近隣１１２の分割は、論理的分割であり、ネットワーク１００中のセル間の物理的境界は論理ネットワーク操作の境界を描写しているに過ぎない。特定のセルが、その領域内に偶然に位置する加入者がないように位置する場合があるため、セル１１１は、加入者１２０を含んでも含まなくてもよい。
【００１６】
一実施形態によれば、加入者１２０は、近隣１１２の無線ネットワーク１００にアクセスする権限のあるコンピュータシステムである。加入者１２０は、近隣の家、車、またはネットワークの受信範囲内のいかなる場所に位置してもよい。メッシュネットワークに加え、本願の種々の教示を採用する他のシステムもまた、本発明の種々の側面を実践するために使用することができ、したがって本発明の完全な範囲内であると考えられることが理解されるべきである。
【００１７】
六角形セル１９９の各セル１１１は、固定されていても移動型であってもよいメッシュルータ（ルータ／ノード１０１〜１０４等）を含む。メッシュルータ１０１は、例示的な加入者１２０と通信する。加入者１２０は、メッシュルータ１０１を介して、メッシュネットワーク１００等のメッシュネットワークへのアクセスを得るために、加入者アカウントをセットアップする必要がある。これらの加入者１２０は、無線携帯端末（ＰＤＡ）、無線ローカルエリアネットワーク（ＬＡＮ）ルータ、または無線ラップトップを含んでもよい。無線ＰＤＡは、無線機能を持つパームパイロット（Ｐａｌｍ  Ｐｉｌｏｔ）、ブラックベリー（Ｂｌａｃｋｂｅｒｒｙ）、または無線機能を持つ他のハンドヘルドデバイスを含んでもよい。無線ルータ１０１は、メッシュルータ１０１と通信することができるあらゆるネットワークルータを含んでもよい。無線ラップトップは、無線機能を持つあらゆるコンピュータシステムを含んでもよい。無線ＰＤＡ、無線ＬＡＮルータ、無線ラップトップが説明されているが、無線機能を持ついかなるデバイスも、加入者として考えることができる。
【００１８】
メッシュルータ１０１はまた、インターネットへのゲートウェイとしても機能する。一実施形態によれば、メッシュルータ／ゲートウェイ１０１は、イーサネット（登録商標）等の通信リンクを介してインターネットに接続するイーサネット（登録商標）コントローラ等の少なくとも１つのネットワークインタフェースを有する。メッシュネットワークでは、複数のゲートウェイ１０１が存在してもよい。ゲートウェイ１０１により、メッシュルータ１０１はインターネットにアクセスすることができる。
【００１９】
図１のメッシュネットワークトポロジはまた、ネットワーク管理サーバ１６０を含んでもよい。ネットワーク管理サーバ１６０は、インターネットを通してゲートウェイに接続されてもよい。一実施形態によれば、ネットワーク管理サーバ１６０は、メッシュネットワーク中のすべてのメッシュルータ１０１のチャネルの割り当てを指定する。
【００２０】
図２は、本発明の一実施形態による、例示的な無線ルータ２００のブロック図を示す。図２において、無線ルータ２００により、加入者は自らのローカルエリアネットワークをセットアップすることができる。無線ルータ２００は、ルータ１０１等のＷｉ−Ｆｉルータであってもよい。無線ローカルエリアネットワークルータ２００は、電源２２０、ランダムアクセスメモリ（ＲＡＭ）モジュール２３０、イーサネット（登録商標）コントローラ２４０、および８０２．１１コントローラ２５０と接続されたプロセッサ２１０を有する。イーサネット（登録商標）コントローラ２４０によって、プロセッサ２１０はイーサネット（登録商標）アダプタ２６０と通信することができる。８０２．１１コントローラ２５０によって、プロセッサ２１０は８０２．１１アンテナ２７０と通信することができる。ＲＡＭモジュール２３０は、ルータ２００へ、およびそこからパケットをルーティングするために使用されるルーティングテーブル２３１を格納する。
【００２１】
適応性無線ルーティングのための本方法およびシステムは、ユーザデータグラムプロトコル（ＵＤＰ）に基づく。適応性無線ルーティングを使用するそれぞれのルータ（ルータ１０１〜１０４、および２００等）は、（ＩＥＴＦから取得された）ＵＤＰポート番号でデータグラムを送受信するルーティングプロセスを有する。他のルータの適応性無線ルーティングプロセスのために意図されるすべての通信は、適応性無線ルーティングポートに送信される。すべてのルーティングアップデートメッセージは、適応性無線ルーティングポートから送信される。適応性無線ルーティングパケットには、ハローパケットおよびアップデートパケットという２つの異なるタイプがある。いずれの適応性無線ルーティングパケットのタイプでも、標準的な４バイトのヘッダで始まる。
【００２２】
図３は、本発明の一実施形態による、４バイトのヘッダ３００で始まる、例示的な適応性無線ルーティングパケットのブロック図を示す。ヘッダ３００は、適応性無線ルーティングのバージョン番号を含むバージョンセクション３１０を含んでいる。タイプセクション３２０は、ハローパケットまたはアップデートパケットのいずれかの適応性無線ルーティングパケットのタイプを示す。しかし、代替の実施形態では、さらなるパケットタイプを実装することができる。また、ヘッダ３００は、フラグ、または他の情報に使用することができる未使用セクションを含む。４バイトのヘッダ３００について説明しているが、代替の実施形態において他のサイズのヘッダもまた使用することができる。
【００２３】
図４は、本発明の一実施形態による、適応性無線ルーティングハローパケット４００の図を示す。ハローパケット４００は、適応性無線ルーティングパケットタイプの１つのタイプである。ハローパケット４００は、隣接するノードとの関係を確立し維持するために、すべての適応性無線ルーティングインタフェースに定期的に送信される。ハローパケット４００は、ヘッダ３００だけでなく、発信元ルータＩＤ４１０、および発信元宛先シーケンス番号４２０を含む。発信元ルータＩＤ４１０は、ハローパケットを発信するノードのルータＩＤである。宛先シーケンス番号４２０は、ハローパケットを発信するノードの最大宛先シーケンス番号である。ハローパケット４００は、ネイバー（ｎｅｉｇｈｂｏｒ）関係を確立し維持するためのパケットの一実施形態に過ぎないため、代替の実施形態もまた考慮される。
【００２４】
図５は、本発明の一実施形態による、適応性無線ルーティングアップデートパケット５００の図を示す。アップデートパケット５００は、適応性無線ルーティングパケットの別のタイプである。アップデートパケット４００は、動的に変化するネットワーク（ネットワーク１００等）におけるルーティングテーブルの一貫性を維持するために使用され、それぞれのノード（ルータ１０１等）は定期的にアップデートを伝送し、重要な新しい情報が利用可能となった際にトリガされたアップデートを伝送する。一実施形態によれば、アップデートパケット５００は、ヘッダ３００だけでなく、距離セクション５１０およびメッセンジャーセクション５２０を含む。距離セクション長５１１は、メッセンジャーセクション長５１２を備える。
【００２５】
距離セクション５１０に含まれる情報は、ネットワーク１００内の他のノードとの相互接続トポロジの送信者による視点を反映する。距離セクション５１０には、複数の距離セクションエントリがあってもよい。距離セクションエントリの数は、（距離セクション長（バイト）／距離セクションエントリの長さ（バイト））に等しい。  
【００２６】
図６は、本発明の一実施形態による、距離セクションエントリ６００の形式の図を示す。距離セクションエントリ６００は、宛先ＩＰアドレス６１０、宛先ネットワークマスク６２０、宛先ルータＩＤ６３０、宛先シーケンス番号６４０、およびメトリック６５０を含む。宛先ＩＰアドレス６１０は、宛先ノードのルータＩＤ、または宛先ノードに結合したＩＰネットワーク／サブネットでもよい。宛先ネットワークマスク６２０は、宛先ＩＰアドレスのネットワークマスクを提供する。一実施形態によれば、これは、単一のＩＰネットワーク／サブネットに存在するＩＰアドレスの範囲を示す３２ビットの数字である。宛先ルータＩＤ６３０は、宛先ノードのルータＩＤを提供する。宛先シーケンス番号６４０は、宛先シーケンス番号である。メトリック６５０は、ノードからその宛先へデータグラムを到達させるための総コストを表す。このメトリックは、宛先に到達するために横断するネットワークと関連したコストの合計である。
【００２７】
図５に戻ると、メッセンジャーセクション５２０は、宛先ルータＩＤによりインデックス化された１つ以上の固定長メッセンジャーを含む。メッセンジャーセクション５２０には、複数のメッセンジャーセクションがあってもよい。メッセンジャーセクションエントリの数は、（メッセンジャーセクション長（バイト）／メッセンジャーセクションエントリの長さ（バイト））に等しい。図７は、本発明の一実施形態による、メッセンジャーセクションエントリ７００の形式の図を示す。メッセンジャーセクションエントリ７００は、宛先ルータＩＤ７１０、宛先シーケンス番号７２０、ネクストホップ値７３０、およびメトリック７５０を含む。
【００２８】
宛先ルータＩＤフィールド７１０は、宛先ノードのルータＩＤを提供する。宛先シーケンス番号フィールド７２０は、宛先シーケンス番号を提供する。ネクストホップフィールド７３０は、このメッセンジャーに関心のある者が誰かを示すために使用される。ネクストホップフィールド７３０が「０ｘｆｆｆｆｆｆｆｆ」（つまり「２５５．２５５．２５５．２５５」）を含む場合、メッセンジャーは「ローカルブロードキャスト」メッセンジャーと呼ばれ、このメッセンジャーを受信するすべてのノードがこのメッセンジャーを検査し、それに応じて対応しなければならない。それ以外では、メッセンジャーは「ユニキャスト」メッセンジャーと呼ばれ、ネクストホップフィールド７３０に含まれるＩＰアドレスと一致するＩＰアドレスを有するノードのみがこのメッセンジャーを検査し、それに応じて対応しなければならない。メトリックフィールド７４０は、ノードにより知られている宛先に以前のコスト（または距離）を提供する。これは、ネクストホップフィールド７３０が「０ｘｆｆｆｆｆｆｆｆ」（つまり「２５５．２５５．２５５．２５５」）であるときにのみチェックされる。
【００２９】
図８は、本発明の一実施形態による、例示的なルーティングテーブル８００の図を示す。適応性無線ルーティングを実装するそれぞれのルータ（ルータ１０１および２００等）が、ルーティングテーブル８００を有すると仮定する。ルーティングテーブル８００は、適応性無線ルーティングで動作しているシステム全体から到達可能な宛先ごとに１つのエントリ８９０を有する。各エントリ８９０は、少なくとも以下の情報を含んでいる。
・宛先ＩＰアドレス８１０。「ｄｓｔ」と称する。
・宛先ＩＰアドレス８２０のネットワークマスク。「ｄｓｔ＿ｍａｓｋ」と称する。
・宛先ノード８３０のルータＩＤ。「ｄｓｔ＿ｒｏｕｔｅｒ＿ｉｄ」と称する。
・現在の最大シーケンス番号ルート８４０。「ｈｓｑ＿ｒｏｕｔｅ」と称する。
・現在の最小メトリックルート８５０。「ｌｍ＿ｒｏｕｔｅ」と称する。
・より高いシーケンス番号ルート（メトリックは無限大よりも小さい）が受信された際に、即時にトリガされたアップデート８６０をこの宛先に発行する必要があるかどうかを示すフラグ。「ｉｍｍｅｄｉａｔｅ＿ｕｐｄａｔｅ＿ｆｌａｇ」と称する。
・次の定期アップデートの前にこのルートをアドバタイズする８７０必要があるかどうかを示すフラグ。「ｎｅｅｄ＿ａｄｖｅｒｔ＿ｆｌａｇ」と称する。
・メッセンジャー関連情報８８０。
【００３０】
適応性無線ルーティングのための本方法およびシステムは、同じでも同じでなくてもよい各宛先ごとにルーティングエントリ８９０内に２つのルートを維持する。１つは現在の最大シーケンス番号ルート８４０、もう１つは現在の最小メトリックルート８５０と呼ばれる。両方とも以下の３つの項目を含むデータ構造である。
・このルートに関連付けられた宛先シーケンス番号。「ｓｅｑｎｕｍ」と称する。
・ルータからその宛先へデータグラムを到達させるための総コストを表すメトリック。「ｍｅｔｒｉｃ」と称する。
・宛先へのパスに沿った、次のルータのＩＰアドレスであるネクストホップ。宛先が直接接続されたネットワークのうちの１つにある場合、この項目は必要ない。「ｎｅｘｔ＿ｈｏｐ」と称する。
【００３１】
本発明の一実施形態によれば、メッセンジャー関連情報８８０は、以下の情報を含む。
・この宛先に向けてメッセンジャーを送信する必要があるかどうかを示すフラグ。
「ｍｅｓｓｅｎｇｅｒ＿ｓｔａｔｕｓ＿ｆｌａｇ」と称する。
・メッセンジャーに関連付けられた宛先シーケンス番号。「ｍｅｓｓｅｎｇｅｒ＿ｄｓｔ＿ｓｅｑｎｕｍ」と称する。
・このノードにより最後のメッセンジャーがこの宛先に転送された時間。「ｌａｓｔ＿ｍｅｓｓｓｅｎｇｅｒ＿ｔｉｍｅ」と称する。
・この宛先へのすべてのルートが失われた場合に、ローカル修復を試みるべきかどうかを示すフラグ。「ｌｏｃａｌ＿ｒｅｐａｉｒａｂｌｅ＿ｆｌａｇ」と称する。
・現在の最小メトリックルートのメトリックより小さい、またはそれと等しいメトリックが聞かれてからの時間。「ｌｏｃａｌ＿ｒｅｐａｉｒａｂｌｅ＿ｔｉｍｅ」と称する。
・ローカル修復プロセスが継続中かどうかを示すフラグ。「ｌｏｃａｌ＿ｒｅｐａｉｒ＿ｐｒｏｃｅｓｓ＿ｆｌａｇ」と称する。
・最後のローカル修復が開始された時間。
「ｌｏｃａｌ＿ｒｅｐａｉｒ＿ｓｔａｒｔ＿ｔｉｍｅ」と称する。この項目は、
「ｌｏｃａｌ＿ｒｅｐａｉｒ＿ｐｒｏｃｅｓｓ＿ｆｌａｇ」が「ＴＲＵＥ」に等しいときのみにチェックされる。
・ローカル修復プロセスの状態を示すフラグ。「ｌｏｃａｌ＿ｒｅｐａｉｒ＿ｓｔａｔｅ」と称する。
【００３２】
ネットワーク１００内のノードは、ネイバー関係を確立し維持する。適応性無線ルーティングでは、各ノードは、そのネイバーへの連続的な接続を把握する。例えば図１において、ノード１０１は、ネイバーノード１０３への接続を把握する。ＩＥＥＥ  ８０２．１１が定めているような、いずれかの適したＭＡＣレイヤの通知を使用して壊れたリンクを検出することができる場合は、適応性無線ルーティングのための本方法およびシステムは、ＭＡＣレイヤのフィードバックとレイヤ３のアップデートパケットを組み合わせて使用してローカルの接続性を決定する。一実施形態では、レイヤ３のハローパケットは必要ではない。一実施形態では、各ノード１０１〜１０４は、アップデートパケットを定期的に伝送し、すべての適応性無線ルーティングインタフェース上で重要な新しい情報が利用可能となった際にトリガされたアップデートパケットを伝送する。これにより、ネイバーを動的に発見することができる。
【００３３】
適したＭＡＣレイヤの通知が利用できない場合は、適応性無線ルーティングのための本方法およびシステムは、レイヤ３のハローパケットとレイヤ３のアップデートパケットを組み合わせて使用してローカルの接続性を決定する。この場合、定期的に（例えば、５００〜１０００ミリ秒毎の間隔で）、ノードは最後の間隔内にアップデートパケットまたはハローパケットを送信したかどうかをチェックする。送信していない場合、ネイバーにその存在を知らせるすべての適応性無線ルーティングインタフェースに、ローカルハローパケットをブロードキャストする。いかなる既知のネイバーへのリンクでも、設定間隔より長い時間（例えば３，０００ミリ秒）、ノードがそのネイバーからいずれのパケット（ハローパケットまたはアップデートパケット）も受信していない場合は、失われたとみなされる。ネイバーへの壊れたリンクが検出されたときは、ノードは後述するような工程に従う。
【００３４】
一実施形態において、アップデートパケット５００は、ルーティングアップデートをネイバーに伝送するために使用される。図５で説明されるように、アップデートパケット５００には、距離セクション５１０およびメッセンジャーセクション５２０の２つのセクションがある場合がある。距離セクション５１０に含まれる情報は、ネットワーク１００内の他のノードとの相互接続トポロジの送信者による視点を反映する。メッセンジャーセクション５２０は、ルートをローカルに修復し収束を加速させるために、リンクの不具合の後に影響を受けた宛先ノードに向け送られる「メッセンジャー」を含む。
【００３５】
一実施形態によれば、各ノードは定期的にアップデートパケット５００を伝送し、重要な新しい情報が利用可能となった際にトリガされたアップデートパケットを伝送する。図９は、アップデートパケット、即時にトリガされたアップデートパケット、および通常のトリガされたアップデートパケットの例示的な送信プロセスのフローチャートを示す。例えば、１５〜３０秒ごとに、各ノード１０１〜１０４は、宛先シーケンス番号をインクリメントする（９５０）。定期アップデートパケットは、アドバタイズすることができる、すべての利用可能なルーティング情報を持っている。一実施形態では、ルーティングテーブル８００中の各ルーティングエントリ８９０に対して、メッセンジャー情報（利用可能な場合）が常にアドバタイズ可能である。一方、距離情報は、２つの条件が満たされた場合のみアドバタイズ可能である。プロセス９００は、宛先について、最大シーケンス番号ルートが最小メトリックルートと同じであるかどうかチェックする（９６０）。同じでない場合は、定期アップデートパケットが、距離情報をアドバタイズすることなくブロードキャストされる。ルートが同じである場合は、プロセス９００は、継続中のローカル修復プロセスがあるかどうかチェックする（ｌｏｃａｌ＿ｒｅｐａｉｒ＿ｐｒｏｃｅｓｓ＿ｆｌａｇの値がＦＡＬＳＥに等しい）（９７０）。継続中のローカル修復プロセスがある場合は、定期アップデートパケットが、距離情報をアドバタイズすることなくブロードキャストされる。継続中のローカル修復プロセスがない場合は、定期アップデートパケットが、距離情報をアドバタイズしながらブロードキャストされる（９９０）。ノード１０１〜１０３は、ネイバーに対し、そのすべての適応性無線ルーティングインタフェース上に定期アップデートパケットをブロードキャスト（またはマルチキャスト）する。
【００３６】
定期アップデートの合間に、重要な新しい情報が利用可能となった際に、トリガされたアップデートパケットが伝送される。定期アップデートとは異なり、トリガされたアップデートは、変更された情報のみを含む。トリガされたアップデートパケットを削減し、ルーティングの負担を最小限にするために、即時にトリガされたアップデートパケット、および通常のトリガされたアップデートパケットの２つのタイプのトリガされたアップデートが定義される。
【００３７】
即時にトリガされたアップデートパケット（９２０）は、重要かつ緊急の新たな情報が利用可能となったとき（９１０）に使用される。一実施形態では、「重要かつ緊急のルーティング情報」は、通常、即時に対応されなければならないトポロジ変化の後の再収束に関連する。ノードは、以下の条件のうち少なくとも１つが満たされたときに、即時にトリガされたアップデート９２０を使用する。
・リンクの破壊が検出され、かつ、そのリンクの破壊によって、ノードが少なくとも１つの既知の宛先へのルートを失う結果となる。
・ネイバーからのアップデートパケットまたはハローパケットを受信した際、ノードが全く新しいノードまたは宛先へのルート（メトリックは無限大よりも小さい）を知った。
・ネイバーからのアップデートパケットを受信した際、ノードが宛先への最大シーケンス番号ルート（メトリックは無限大よりも小さい）を知り、かつ、当該宛先に関連付けられたルーティングエントリの即時アップデートフラグがＴＲＵＥに等しい。
・ネイバーからのアップデートパケットを受信した際、ノードに当該宛先へのすべてのルートを失わせ、および／またはメッセンジャー発信操作をトリガする最大シーケンス番号ルート（メトリックは無限大に等しい）をノードが受信する。
・ネイバーからのアップデートパケットを受信した際、ノードが直接返信することができる、またはメッセンジャーの宛先の方向のネクストホップに転送することができる、メッセンジャーを受信する。
・ローカル修復タイマが、影響を受けた宛先への新たなルートが見つかる前に時間切れとなる。
【００３８】
さらにルーティングの負担を削減するには、２つのアップデート間のミリ秒での最小時間間隔が定義される。即時にトリガされたアップデートが使用される時は、現時間と最終アップデートとの間の時間間隔が最小時間間隔よりも短い場合、トリガされるアップデートパケットの作成および伝送は遅延する。遅延は、最小時間間隔から、現時間と最終アップデートの時間との間の差を差し引いた時間（ミリ秒）に等しいことがある。それ以外の場合は、トリガされたアップデートパケットは即時に作成され伝送される（９２０）。
【００３９】
重要ではあるが緊急ではない新たな情報が利用可能となった場合（９３０）、通常のトリガされたアップデートパケット９４０が使用される。一実施形態では、「重要ではあるが緊急ではないルーティング情報」は、通常、非トポロジ変化（宛先シーケンス番号およびルートメトリックの変化等）の後の再収束に関連する。即時に対応されなければならないトポロジ変化の後の再収束とは異なり、ネットワーク１００中のノードはすでにルートを有しており、よりよいルートのために徐々に非トポロジ変化への適応が可能であると同時に、さらにルーティングの負担を削減することができる。作成後、通常のトリガされたアップデートイベント（通常のトリガアップデートをトリガする）は、イベントがタイムアウトする前にいずれかの定期アップデートまたは即時にトリガされたアップデートが生じる場合にはキャンセルされることができる。それ以外の場合は、通常のトリガされたアップデートの時間間隔の後にこのイベントがタイムアウトすると、トリガされたアップデートパケットが作成され送信される。
【００４０】
一実施形態では、各ノードは、発信する定期アップデート毎にインクリメントし自身のエントリ内に含む、自身のための宛先シーケンス番号を維持する。ノードは、ルーティングテーブルから、定期およびトリガされたアップデートにおける他のエントリに関し、宛先シーケンス番号をコピーする。その結果、ルーティングテーブルエントリまたはアドバタイズエントリ中のシーケンス番号フィールドは、そのエントリのルーティング情報の古さ（または鮮度）を反映する。これは、古いルートを新しいものから識別する助けとなり、ループバックの状況を避けることができる。
【００４１】
宛先シーケンス番号の使用により、以下のルートアップデート規則に従えば、いかなる場合においてもループがないことを保証することができる。
・ノードは常に、より高い宛先シーケンス番号のあるルートを好む。
・ルータは、シーケンス番号は同じであるがメトリックがより良い場合には好ましい。
【００４２】
これらの規則はループがない状態を提供するが、ある状況においてはルートの変動ももたらす。ノードによるルーティング情報の伝送は非同期イベントであるため、ノードは常に、より新しいシーケンス番号を持つ同じ宛先への２つのルートを（異なるネイバーを介して）次々と受信するが、常により悪いメトリックを有するルートを最初に受け取ると考えられる。注意しないと、これはルートの変動や、その宛先からの、新しいシーケンス番号ごとに対する新しいルート伝送の連続的なバーストへとつながるだろう。いかなる場合でもループがないことを保証すると同時に不要なルーティング変動を避けるために、本方法およびシステムは、各宛先に対するルーティングエントリにおいて２つのルートを維持する。１つのルートは現在の最大シーケンス番号ルート（「ｈｓｑ＿ｒｏｕｔｅ」と称する）、もう１つのルートは現在の最小メトリックルート（「ｌｍ＿ｒｏｕｔｅ」と称する）と呼ばれる。両方とも以下の３つの項目を含むデータ構造である。
・宛先シーケンス番号（「ｓｅｑｎｕｍ」と称する）
・メトリック（「ｍｅｔｒｉｃ」と称する）
・ネクストホップ（「ｎｅｘｔ＿ｈｏｐ」と称する）
図１０は、本発明の一実施形態による、新たに発見された宛先に対する新たなルーティングエントリを追加するための例示的なプロセスのフローチャートを示す。ノード１０１は、それまで未知だった宛先ノード１０４へのルート（メトリックは無限大より小さい）を、ネイバーノード１０３から受信する（１０１０）。ノード１０１は、宛先ノード１０４に対する新たなルーティングエントリを、そのルーティングテーブルに作成する（１０２０）。この新たなルーティングエントリにおいて、ｈｓｑ＿ｒｏｕｔｅは、ｌｍ＿ｒｏｕｔｅと同じであるように設定されるが、これは、両者が同じｓｅｑｎｕｍ、ｍｅｔｒｉｃおよびｎｅｘｔ＿ｈｏｐ（ネイバーノード１０３に設定される）を有することを意味する。また、即時アップデートもトリガされる（１０３０）。
【００４３】
ネイバーノード１０３から既知の宛先ノード１０４へのルートを受信すると、ノード１０１は、宛先ノード１０４に対するルーティングエントリ中の種々のルーティングフラグ（ｉｍｍｅｄｉａｔｅ＿ｕｐｄａｔｅ＿ｆｌａｇ等）と、ｈｓｑ＿ｒｏｕｔｅ、ｌｍ＿ｒｏｕｔｅ、およびネイバーノード１０３から知ったルート（ａｄ＿ｒｏｕｔｅと称する）の間の比較とに従ってそれを処理する。アップデート規則に従い、同じルーティングエントリ内のｈｓｑ＿ｒｏｕｔｅおよびｌｍ＿ｒｏｕｔｅは、必ずしも同じであるとは限らないが、以下が成り立つ。
ｉ）ｈｓｑ＿ｒｏｕｔｅ．ｓｅｑｎｕｍ＞＝ｌｍ＿ｒｏｕｔｅ．ｓｅｑｎｕｍ
ｉｉ）ｈｓｑ＿ｒｏｕｔｅ．ｍｅｔｒｉｃ＞＝ｌｍ＿ｒｏｕｔｅ．ｍｅｔｒｉｃ
一実施形態では、デフォルトとして、ある宛先に対してｈｓｑ＿ｒｏｕｔｅがｌｍ＿ｒｏｕｔｅと同じでない時は、データ転送にｌｍ＿ｒｏｕｔｅのみを使用するよう設定されてもよい。同じ宛先への２つのループのないルートを維持する１つの目的は、不要なルート変動を避け、ノードが不良なメトリックルートを使用しないようにすることである。それどころか、同じ宛先への２つのループのないルートを維持することにより、ルート変動を避ける以外に、以下の利点が得られる。ｌｍ＿ｒｏｕｔｅが壊れていることが分かった時、ｈｓｑ＿ｒｏｕｔｅがまだ有限のメトリックをもって存在する場合、ノードはｌｍ＿ｒｏｕｔｅをｈｓｑ＿ｒｏｕｔｅに内部的に設定するだけで、多くのノードが関わっている可能性のある再収束を開始させる即時アップデートをトリガするのを避けることができる。
【００４４】
複数のルートに関連する他のアップデート手順は、ある宛先についての距離情報が、その宛先のｈｓｑ＿ｒｏｕｔｅがｌｍ＿ｒｏｕｔｅと同じにならない限りアドバタイズされないことである。この最後の手順は、ループがないことを保証するために使用されるが、注意していない場合に、特にトポロジ変化の間にノードがその既知のルートのいくつかをアドバタイズしてしまうことを適宜に防ぐこともできる。ｈｓｑ＿ｒｏｕｔｅがｌｍ＿ｒｏｕｔｅと同ではない場合は、同じに設定され、以下の条件のうち少なくとも１つが満たされたときにアドバタイズ可能となる。
１）ｌｍ＿ｒｏｕｔｅが壊れていることが判明。
２）ｉｍｍｅｄｉａｔｅ＿ｕｐｄａｔｅ＿ｆｌａｇの値がＴＲＵＥに等しい時に、ノードが、そのネイバーから、メトリックが有限で、既存のｈｓｑ＿ｒｏｕｔｅの番号よりも高い宛先シーケンス番号を有するルートを受信する。
３）ｈｓｑ＿ｒｏｕｔｅのメトリックが無限でない時に、ノードが、そのネイバーから、メトリックが無限で、既存のｈｓｑ＿ｒｏｕｔｅの番号よりも低い宛先シーケンス番号を有するルートを受信する。
４）ｈｓｑ＿ｒｏｕｔｅのメトリックが無限でない時に、ノードが、そのネイバーから、既存のｈｓｑ＿ｒｏｕｔｅの番号よりも低い宛先シーケンス番号を有するメッセンジャーを受信する。
５）ｌｍ＿ｒｏｕｔｅで識別されるネクストホップであるネイバーからアップデートパケットを受信した際、ｌｍ＿ｒｏｕｔｅのネクストホップが変更されない場合、ノードが、ｌｍ＿ｒｏｕｔｅの宛先シーケンス番号がｈｓｑ＿ｒｏｕｔｅの番号以上であるか、またはｌｍ＿ｒｏｕｔｅのメトリックが、ｈｓｑ＿ｒｏｕｔｅのメトリックよりも悪くなることを発見する。
６）ノードが、そのネイバーから、宛先シーケンス番号が既存のｈｓｑ＿ｒｏｕｔｅの番号よりも高いか等しい、およびメトリックがｌｍ＿ｒｏｕｔｅのメトリックよりも小さいルートを受信する。
【００４５】
上記の最初の４つの条件は、トポロジ変化に関連する。ルート変動に関する問題よりも、トポロジ変化による停止からの迅速な復旧が非常に重要であるとみなされるため、トポロジ変化によりもたらされる再収束に重要なアップデートは遅延しない。最後の２つの条件は、ｈｓｑ＿ｒｏｕｔｅがｌｍ＿ｒｏｕｔｅと同じでない期間は、トポロジ変化の有無に関わらず短く一時的であることを確実にするものである。各ノードは、アドバタイズするより新しい宛先シーケンス番号を有する時、定期アップデートおよび通常のトリガされたアップデートを送信するため、各ノードは多くの場合、以下の２つの条件が満たされる限りは、同じ宛先シーケンス番号を有するルートアドバタイズメントをそのすべてのネイバーから聞き、定期アップデート間隔の間正しいアドバタイズ可能なルートに収束する。
ｉ）伝送中はアップデートパケットが失われない（定期アップデートの使用により、時折生じるアップデートパケットの損失の問題は低減される）。
ｉｉ）通常のトリガされたアップデートの間隔（デフォルトでは２秒に等しい）は、定期アップデート間隔（デフォルトでは３０秒に等しい）よりも非常に短い。
【００４６】
一実施形態では、リンクの不具合の後の収束を加速するためにメッセンジャーの概念が導入される。リンクの不具合の後のメッセンジャーを使用した最初の収束プロセスの間、２つの指向性の「波」がある。第１の波は、リンクの不具合の後影響を受けた１つのノード（あるいは複数のノード）により発信された、影響を受けた宛先に向かうメッセンジャーの前進波である。メッセンジャーを受信後、中間ノードはそれを、ある条件が満たされればｌｍ＿ｒｏｕｔｅで識別されるネクストホップに転送し、同時に、対応するルートエントリの即時アップデートフラグをＴＲＵＥに設定する。メッセンジャーが、宛先シーケンス番号がより高い宛先またはノードに達したら、即時アップデートがトリガされる。これにより、第２の波、すなわちトリガされたアップデートの後進波が開始されるが、この波は新鮮なルーティング情報を持ち、リンクの不具合の後直接的に影響を受けたか、またはメッセンジャーが転送されたあらゆるノードに流れる。
【００４７】
一実施形態では、メッセンジャーは独立したパケットではなく、アップデートパケットのメッセンジャーセクションの中に組み込まれる。異なる宛先に向け移動するメッセンジャーをグループ化し、ネイバーへルーティング情報を伝送するために使用される共通の「フェリー船」（アップデートパケット）にそれを搭載することにより、適合無線ルーティングは、無線ネットワークのブロードキャストの本質を最大限に利用しルーティングの負担を最小限にする。
【００４８】
アップデートパケット５００のメッセンジャーセクション５２０における各メッセンジャーは、宛先ルータＩＤ７１０、宛先シーケンス番号７２０、ネクストホップＩＰアドレス７３０、および推定メトリック７４０という情報を含む。宛先ルータＩＤ７１０および宛先シーケンス番号７２０は、メッセンジャーがどこに向かうのか、そしてその情報がどれほど新鮮かということを示すために使用される。「ネクストホップ」フィールドは、このメッセンジャーに関心のある者が誰かを示すために使用される。ネクストホップフィールドが「０ｘｆｆｆｆｆｆｆｆ」（つまり「２５５．２５５．２５５．２５５」）を含む場合、メッセンジャーは「ローカルブロードキャスト」メッセンジャーと呼ばれ、このメッセンジャーを受信するすべてのノードがこのメッセンジャーの内容を検査し、それに応じて対応しなければならない。それ以外では、メッセンジャーは「ユニキャスト」メッセンジャーと呼ばれ、ネクストホップフィールドに含まれるＩＰアドレスと一致するＩＰアドレスを有するノードのみがこのメッセンジャーの内容を検査し、それに応じて対応しなければならない。推定メトリックは、ノードにより知られている宛先に以前のメトリック（すなわちコストまたは距離）を提供する。このフィールドは、ネクストホップフィールドが「０ｘｆｆｆｆｆｆｆｆ」（つまり「２５５．２５５．２５５．２５５」）であるときにのみチェックされる。
【００４９】
図１１は、本発明の一実施形態による、壊れたリンクに対応するための例示的なプロセス１１００のフローチャートを示す。一実施形態において、壊れたリンクは、無限大（すなわち、最大限許容されるメトリックよりも大きいあらゆる値）のメトリックで記述される。ノード１０１が、ネイバーノード１０３へのリンクが（レイヤ２またはレイヤ３のプロトコルにより）壊れていることを検出した時（１１１０）、ノード１０１は、そのルーティングテーブル内の各ルーティングエントリをチェックし、ネクストホップとしてネイバーノード１０３を使用するいかなるルートにも、無限大のメトリックを割り当てる（１１２０）。リンクの不具合により、ノード１０１が、特定の宛先ノード１０４に対するｌｍ＿ｒｏｕｔｅまたはｈｓｑ＿ｒｏｕｔｅのみを失うが両方は失わないことになった場合（１１３０）、内部的に処理されることができる（例えば、ｌｍ＿ｒｏｕｔｅが壊れているがｈｓｑ＿ｒｏｕｔｅが壊れていない場合、ｌｍ＿ｒｏｕｔｅをｈｓｑ＿ｒｏｕｔｅに設定する等）（１１４０）が、ノード１０１はまだ宛先ノード１０４へのルートを有しているため、外部に対する即時のアップデートは必要ない。リンクの不具合により、ノード１０１が、特定の宛先ノード１０４へのすべてのルートを失うことになった場合（１１３０）、ノード１０１は、アップデートされた宛先シーケンス番号（現在のシーケンス番号＋１）を、宛先ノード１０４へのルートに割り当てる（１１５０）（壊れたリンクを説明するための情報を構築するのは、宛先シーケンス番号が宛先ノード以外のいずれかのノードにより生成されるときのみの状況である）。ノード１０１は、ローカル修復を行うかどうかを決定する（１１６０）。答えが「はい」の場合、ノード１０１はローカル修復プロセスを開始する（１１７０）。それ以外では、ノード１０１は、宛先ノード１０４へのすべてのルートを失ったことをアドバタイズする（１１８０）。
【００５０】
一実施形態では、ノードが特定の宛先へのすべてのルートを失った時、当該宛先へのすべてのルートを失ったことをアドバタイズするかわりに、またおそらくはそのすべてのアップストリームノードに配信する代わりに、ローカル修復プロセスが生じ、ノードは、対応するルーティングエントリのローカル修復可能フラグがＴＲＵＥに等しい場合は、迅速なローカルの復旧のために、当該宛先に向けローカルブロードキャストメッセンジャーを送信することができる。ローカル修復可能なフラグの維持のロジックは、以下のように要約される。ルーティングエントリのローカル修復可能フラグは、ルーティングエントリが初期化された時にＦＡＬＳＥに初期化される。ノードが、ｌｍ＿ｒｏｕｔｅの現在のネクストホップ以外に、ｌｍ＿ｒｏｕｔｅの番号より高いまたは等しいシーケンス番号と、ｌｍ＿ｒｏｕｔｅのメトリックよりも小さいまたは等しいメトリックとを有するルートを、そのネイバーから聞くごとに、ローカル修復可能なフラグはＴＲＵＥに設定され、ローカル修復可能時間は０に設定される。ローカル修復可能時間は、定期的に増加される（例えば各定期アップデートの間）。ローカル修復時間＞＝ＭＡＸ  ＬＯＣＡＬ  ＲＥＰＡＩＲＡＢＬＥ（デフォルトでは２に設定される）＊ＰＥＲＩＯＤＩＣ  ＵＰＤＡＴＥ  ＩＮＴＥＲＶＡＬである場合、ローカル修復可能フラグはＦＡＬＳＥに設定される。
【００５１】
図１２は、本発明の一実施形態による、ローカル修復プロセス１２００のための例示的なフローチャートを示す。ノード１０１が特定の宛先ノード１０４へのすべてのルートを失い、ローカル修復可能フラグがＴＲＵＥに等しい時、ノード１０１は、即時にトリガされたアップデートパケットのメッセンジャーセクションに、ローカルブロードキャストメッセンジャーを書き込むことによって、ローカル修復プロセスを開始する（１２１０）。メッセンジャーの宛先ＩＰアドレスは、当該宛先ノード１０４の宛先ＩＰアドレスに設定される（１２２０）。メッセンジャーの宛先シーケンス番号は、アップデートされた宛先シーケンス番号に設定される（１２３０）。推定距離メトリックは、無限大に設定され、メッセンジャーのネクストホップは「０ｘＦＦＦＦＦＦＦＦ」に設定される（１２４０）。ノード１０１は、即時アップデートフラグをＴＲＵＥに設定（１２５０）し、ローカル修復プロセスフラグをＴＲＵＥに設定し、ローカル修復開始時間を現時間に設定し、ローカル修復状態を、応答なしと示すように設定する（１２６０）。ノード１０１は、ローカル修復の進捗をチェックするために、設定された時間に呼び出されるタイマを開始する（１２７０）。
【００５２】
ノードがローカル修復プロセスを開始した後、ネイバーをリッスンする。タイマがタイムアウトする前に、推定メトリックが以前のｌｍ＿ｒｏｕｔｅ．ｍｅｔｒｉｃより小さいかまたは等しい当該宛先に向けたメッセンジャーを、ネイバーから受信する場合、ノードは、ローカル修復状態フラグを、応答が認められたことを示すように設定する。タイマがタイムアウトした時、応答が認められたことをローカル修復状態フラグが示すと、ノード１０１は、ローカル修復プロセスが進むことを許可する。それ以外では、ノード１０１は、ローカル修復プロセスフラグを偽に設定することによりローカル修復を止め、宛先ノード１０４へのすべてのルートを失ったことをアドバタイズするために即時アップデートをトリガする。
【００５３】
ルートにおけるリンク破壊のローカル修復は、それらの宛先へのパス長が増加する結果となる場合がある。しかしこれは一時的なものに過ぎない。より大きな定期アップデートの効果が生じると、ネットワークは正しい最短パスに収束する。
【００５４】
ノード１０１が特定の宛先ノード１０４へのすべてのルートを失い、ローカル修復可能フラグがＦＡＬＳＥに等しい時、ノード１０１は、即時にトリガされたアップデートパケット５００をブロードキャストし、「宛先ノード１０４へのルートを失った」ことを伝える。一実施形態では、アップデートパケット５００は、宛先ノード１０４に関する重要な新しいルーティング情報のいくつかが最後のアップデート以来利用可能となった場合、その距離セクションにおいて２つ以上の記録を含み、またメッセンジャーセクション５２０も含むことができる。ノード１０１は、宛先ノード１０４に関するそのルーティングテーブルエントリ５９０の即時アップデートフラグをＴＲＵＥに設定する。ノード１０１が宛先ノード１０４への新たなルート（宛先シーケンス番号がより高いルート）を知ると、即時アップデートフラグがＴＲＵＥに設定されていれば、ノード１０１はそのネイバーに即時に通知する。
【００５５】
ノード１０１から（無限のメトリックを報告する）アップデートパケットを受信した際、ノード１０１のネイバーは、宛先ノード１０４に関する自らの宛先シーケンス番号を、ノード１０１からのアップデートパケットに含まれる宛先シーケンス番号と比較する。ノード１０１のネイバーが、有限のメトリックと、アップデートパケットが持っている番号よりも高い宛先シーケンス番号を持っている場合、このノード１０１のネイバーは、ｌｍ＿ｒｏｕｔｅをｈｓｑ＿ｒｏｕｔｅに設定し（まだ同じでない場合）、そのルートに関する即時にトリガされたアップデートを、宛先ノード１０４に送信し、「私を使うことができる」ことをノード１０１に伝える。ノードにはより高い宛先シーケンス番号が好ましいため、ノード１０１はこのルートを受け入れ、即時アップデートフラグがＴＲＵＥに等しい時、この新たなルートを即時に使用する。メッセンジャーが持っている番号と等しい宛先シーケンス番号をノード１０１のネイバーが持っている場合、ネイバーは、ノード１０１がそのｌｍ＿ｒｏｕｔｅにおけるネクストホップでありかつそのｈｓｑ＿ｒｏｕｔｅがｌｍ＿ｒｏｕｔｅと同じでない場合を除き、このルートを無視する。アップデートパケットが持っている番号よりも低い宛先シーケンス番号をノード１０１のネイバーが持っている場合、以下の２つの場合が生じる。
１）このネイバーがそのｌｍ＿ｒｏｕｔｅにおける現在のネクストホップとしてノード１０１を使用し、そのｈｓｑ＿ｒｏｕｔｅがｌｍ＿ｒｏｕｔｅと同じであるかまたは無限のメトリックを持っている場合、このネイバーは、ローカル修復可能フラグに従い、ローカル修復プロセスを開始するか、または「私も宛先ノード１０４へのルートを失った」ことをアドバタイズするかを決定し、それに応じて対応する。
２）それ以外では、このネイバーは、宛先ノード１０４への少なくとも１つのルートをまだ有していると考えるため、宛先ノード１０４に関するそのｌｍ＿ｒｏｕｔｅの方向に沿ってユニキャストメッセンジャーを送信する。
【００５６】
どちらの場合においても、このノード１０１のネイバーは、即時アップデートフラグをＴＲＵＥに設定することにより「宛先ノード１０４へのルートを失った」アップデートパケットをノード１０１から受信した時に認識する。それは、宛先ノード１０４への新たなルート（より高い宛先シーケンス番号と有限のメトリックを持ったルート）を知った時に、即時にノード１０１に知らせる。
【００５７】
メッセンジャーを受信した際、ノードはすぐに、まず自分がそのメッセンジャーの宛先であるかどうかをチェックする。そうである場合、その既存のシーケンス番号がメッセンジャーが持っている番号以下であるなら、ノードはそのシーケンス番号を２だけ増加させ、自分に関する即時ルーティングアップデートをブロードキャストする。そのノードが宛先ではない場合、ノードは、そのｈｓｑ＿ｒｏｕｔｅが、有限のメトリックと、メッセンジャーの番号よりも高い宛先シーケンス番号とを持っているかどうかをチェックする。持っている場合は、ノードはｌｍ＿ｒｏｕｔｅをｈｓｑ＿ｒｏｕｔｅに設定し、宛先ノード１０４に対するより新鮮なルートについて即時アップデートをブロードキャストする。持っていない場合は、ノードはその即時アップデートフラグをＴＲＵＥに設定し、以下の２つの条件が満たされる場合、メッセンジャーを宛先ノード１０４に向かうｌｍ＿ｒｏｕｔｅのネクストホップに「転送」する。
ｉ）ノードがまだ宛先ノード１０４へのルート（メトリックは有限）を持っていると考える。
ｉｉ）メッセンジャーがローカルブロードキャストメッセンジャーであるか、もしメッセンジャーがユニキャストメッセンジャーである場合は、ノードはメッセンジャーの「ネクストホップ」フィールドで特定されるノードである。
【００５８】
２つの条件のうち少なくとも一つが満たされない場合は、メッセンジャーは「ドロップ」される。
【００５９】
３つの要因がこの手法の効率および拡張性に大きく寄与する。
１）リンクの不具合の後のルート復旧に関して、指向性波方式は従来技術のフラッディング方式よりも非常に効率的である。メッセンジャーは、基盤となるプロアクティブなルーティングプロトコルにより発見され維持されるルートを活用し、宛先に向かってのみ進むため、すべての方向に向かいネットワーク全体に影響を与える恐れのある「洪水（フラッド）」よりも、もたらされるルーティングの負担が極めて少ない。
２）収束が比較的ローカルである。ルートは、より低いペースでより大きなアップデートにより、ローカルに修正される。一実施形態では、リンク破壊の後、直接的に影響を受けたノードと、宛先へのメッセンジャーのパス上にあるノードのみが、即時アップデートを実行し、他のすべてのノードはそれを無視するか、またはよりずっと遅いペースでネイバーをアップデートする。ローカル修復方法は、さらに、収束を局限し、ルーティング負荷を削減する。
３）異なる方向に向かって移動するメッセンジャーを、アップデートパケット、つまりルーティング情報を伝送するための共通の媒体にグループ化することにより、ルーティングの負荷がさらに削減され、拡張性が著しく改善される。
【００６０】
モバイルノード１０１から宛先モバイルノード１０４までの２つのパスが存在すると仮定する。一方のパスはホップカウントが３であり、そのとき９９％が使用可能である。もう一方のパスはホップカウントが２であり、そのとき２０％のみが使用可能である。ホップカウントがメトリックとして使用される場合、より小さいホップカウントを有するために、すべてのトラフィックが第２のパスにルーティングされる。しかし現実的には、信頼性および性能の点では第１のパスのほうが非常に優れており、適用にはよりずっと穏やかである。この単純な例から、ルートを選択する際には、パスの品質およびパスの容量も考慮する必要があることが明らかである。ある実施形態では、これを行う１つの方法は、以下のメトリックの組み合わせを使用することである。
【００６１】
ｍｅｔｒｉｃ（ｕ，ｖ）＝Ｃｌ／ｌｉｎｋ−ｑｕａｌｉｔｙ（ｕ，ｖ）＋Ｃ２／ｌｉｎｋ−ｃａｐａｃｉｔｙ（ｕ，ｖ）＋Ｃ３＊ｌ（１）
ここで、ｍｅｔｒｉｃ（ｕ，ｖ）はノードｕおよびｖの間の無線リンクのリンクメトリックであり、ｌｉｎｋ−ｑｕａｌｉｔｙ（ｕ，ｖ）はリンクの品質（または堅牢性）を示し、ｌｉｎｋ−ｃａｐａｃｉｔｙ（ｕ，ｖ）はリンクの利用可能なバンド幅を示す。また、（１）において、Ｃ１、Ｃ２、Ｃ３は、各要素の重みを調節するために使用することができる定数である。
【００６２】
ネットワークトポロジの機密性が重要である状況においては、許可された者だけが制御トラフィックの読み取りおよび解釈を行うことができるようにするため、ＰＧＰにより暗号化される、またはある共有秘密鍵により暗号化される適応性無線ルーティング制御トラフィックメッセージの交換など、通常の暗号化技術を適用することができる。悪質なノードまたは不良ノードが不正の制御トラフィックを注入し、ネットワークの整合性を損なうことを防ぐために、メッセージ認証もまた使用される。
【００６３】
メッシュネットワークにおける適応性無線ルーティングプロトコルのための方法およびシステムを開示した。本方法およびシステムを、特定の例およびサブシステムに関して説明してきたが、これらの特定の例またはサブシステムに限定されず、他の実施形態にも同様に拡張されることが当業者には明らかである。
【図面の簡単な説明】
【００６４】
【図１】図１は、本発明の一実施形態による、例示的な無線メッシュネットワークのブロック図を示す。
【図２】図２は、本発明の一実施形態による、例示的な無線ルータのブロック図を示す。
【図３】図３は、本発明の一実施形態による、４バイトのヘッダで始まる、例示的な適応性無線ルーティングパケットのブロック図を示す。
【図４】図４は、本発明の一実施形態による、適応性無線ルーティングハローパケット４００の図を示す。
【図５】図５は、本発明の一実施形態による、適応性無線ルーティングアップデートパケットの図を示す。
【図６】図６は、本発明の一実施形態による、距離セクションエントリの形式の図を示す。
【図７】図７は、本発明の一実施形態による、メッセンジャーセクションエントリの形式の図を示す。
【図８】図８は、本発明の一実施形態による、例示的なルーティングテーブルの図を示す。
【図９】図９は、アップデートパケット、即時にトリガされたアップデートパケット、および通常のトリガされたアップデートパケットの例示的な送信プロセスのフローチャートを示す。
【図１０】図１０は、本発明の一実施形態による、新たに発見された宛先に対する新たなルーティングエントリを追加するための例示的なプロセスのフローチャートを示す。
【図１１】図１１は、本発明の一実施形態による、壊れたリンクに対応するための例示的なプロセスのフローチャートを示す。
【図１２】図１２は、本発明の一実施形態による、ローカル修復プロセスのための例示的なフローチャートを示す。
【図１３】図１３は、本発明の一実施形態による、アップデートパケット処理のための例示的なプロセスのフローチャートを示す。
【図１４】図１４は、本発明の一実施形態による、メッセンジャーを扱うための例示的なプロセスのフローチャートを示す。
【図１】
2009518891.tif 000003
【図２】
2009518891.tif 000004
【図３】
2009518891.tif 000005
【図４】
2009518891.tif 000006
【図５】
2009518891.tif 000007
【図６】
2009518891.tif 000008
【図７】
2009518891.tif 000009
【図８】
2009518891.tif 000010
【図９】
2009518891.tif 000011
【図１０】
2009518891.tif 000012
【図１１】
2009518891.tif 000013
【図１２】
2009518891.tif 000014
【図１３】
2009518891.tif 000015
【図１４】
2009518891.tif 000016
【国際調査報告】
2009518891.tif 000017