(57)【特許請求の範囲】
【請求項１】
相互接続されたネットワーク・ノードのネットワークにおいて、コンピュータで実現される方法であって、
ネットワーク・プロトコルのビーコン時間と関連付けられた定期的周期を二つの段階に分割するステップであって、該二つの段階が、接続性段階とデータ・スループット改善段階とを備えるステップと、
前記接続性段階の期間に、複数の利用可能なチャンネル周波数のうちの１つであり、単一のチャンネル周波数であるホーム・チャンネル上での接続性を保持するよう、前記複数の相互接続されたネットワーク・ノードのうちの各ノードを構成するステップであって、前記利用可能なチャンネル周波数が前記ネットワーク・プロトコルによって確立されるステップと、
前記接続性段階の期間に、複数のゲスト・チャンネルのうちの特定のゲスト・チャンネルで通信するよう前記複数の相互接続されたネットワーク・ノードの少なくとも一つのサブセットを構成するステップであって、各ゲスト・チャンネルが前記ホーム・チャンネルと直交するステップと、
を備え、前記相互接続されたネットワーク・ノードの少なくとも一つのサブセットを構成するステップが、
前記ネットワークのノードのデータ・トラフィック・パターンを表すノード・トラフィック図を決定するステップと、
前記ノード・トラフィック図を、前記ノード・トラフィック図に示されるアクティブなノード間の通信リンクを表すリンク図に変換するステップであって、各アクティブなノードが、データ・トラフィックの閾値と関連付けられているステップと、
前記リンク図から１つ以上のノードの最大独立集合（ＭＩＳ）を特定するステップであって、前記ＭＩＳに含まれる１つ以上のノードのそれぞれは、他のノードと初期衝突していないノードであり、該初期衝突とは、或るノードともう一つのノードがデータ通信のために同一のノードを必要とする場合である、ステップと、
前記リンク図を、前記ゲスト・チャンネルを表すチャンネル図に変換するステップと、
前記ノードのＭＩＳに少なくとも二つのノードが表されている場合に、前記ノードのＭＩＳの各ノードについて、前記ノードを、前記チャンネル図に表された前記複数のゲスト・チャンネルの各ゲスト・チャンネルに割り当てるステップと、
を含み、更に  前記接続性段階の期間に、各ノードにより、前記ホーム・チャンネルを用いて前記ネットワークにおける接続性を保持するステップと、
前記データ・スループット改善段階の期間に、前記ノードの少なくとも一つのサブセットによって、前記複数のゲスト・チャンネルのうちの一つ又はそれ以上のゲスト・チャンネルを用いて、前記ネットワークにおけるデータ・スループットを最適化するステップと、
を備える方法。
【請求項２】
請求項１記載の方法であって、前記ネットワーク・プロトコルがＩＥＥＥ８０２．１１に基づく方法。
【請求項３】
請求項１記載の方法であって、前記ホーム・チャンネルが、前記利用可能なチャンネル周波数のうちで、他のチャンネルのノイズと比べて最も少ないノイズを有する一つのチャンネル周波数である方法。
【請求項４】
請求項１記載の方法であって、各ノードが前記ホーム・チャンネル上で接続性を保持するように構成するステップが、更に、
前記定期的周期において、各ノードが前記ホーム・チャンネル上で動作する各時間量を決定するステップと、
前記各時間量の最小値を計算するステップであって、該最小値が、前記複数の相互接続されたネットワーク・ノード全てが前記ホーム・チャンネル上で動作している時間量を表し、前記最小の時間量がブロードキャスト時間期間Ｔｂであるステップと、
前記ネットワークの各ノードにより、Ｔｂ期間における接続性を保持するように、各ブロードキャスト・メッセージをブロードキャストするステップと、
を備える方法。
【請求項５】
請求項１記載の方法であって、少なくとも前記サブセットが前記特定のゲスト・チャンネル上で通信するよう構成するステップに関連する処理が分散されており、各ノードが、前記複数の相互接続されたネットワーク・ノードの１つ以上の１ホップ隣接ノードのデータ・スループット及び接続性に基づいて、前記複数のゲスト・チャンネルのうちの各チャンネルで通信するよう構成される方法。
【請求項６】
請求項１記載の方法であって、前記複数の相互接続されたネットワーク・ノードのＭＩＳが前記複数の相互接続されたネットワーク・ノードのうちの単一のノードのみを表し、前記方法が、更に、前記単一のノードと関連付けられた任意のチャンネル切り替計画を削除するステップを備える方法。
【請求項７】
請求項１記載の方法であって、前記１つ以上のノードのＭＩＳがグリーディ・アルゴリズムを用いて決定される方法。
【請求項８】
請求項１記載の方法であって、前記接続性を保持するステップ及び前記データ・スループットを最適化するステップに関連付けられた処理が、更に、
前記定期的周期の期間に、各ノードについて、
前記ノードともう一つのノードとの間のデータ・スループットが改善可能である場合に、
（ａ）前記定期的周期内のポーリング・ポイントにおいて前記ノードが前記ホーム・チャンネルから特定のゲスト・チャンネルに切り替えるチャンネル切り替計画を計算するステップと、
（ｂ）前記ノードと前記他のノードとが、同期された時刻に前記複数のゲスト・チャンネルのうちの特定のゲスト・チャンネルに切り替えることができるように、前記他のノードに対し前記チャンネル切り替計画を通信するステップと、
（ｃ）前記ノードを前記接続性段階から前記データ・スループット改善段階へと遷移させるように、前記同期された時刻に前記ノードを前記ホーム・チャンネルから前記特定のゲスト・チャンネルに切り替えるステップであって、前記ノードが前記定期的周期の終わりに前記ホーム・チャンネルに戻るよう切り替えるように構成されるステップと、
を備え、
前記ノードともう一つのノードとの間のデータ・スループットが改善不可能である場合に、
前記ノードが前記ホーム・チャンネルに留まるように、前記ノードと関連付けられた任意のチャンネル切り替計画を削除するステップ
を備える方法。
【請求項９】
請求項８記載の方法であって、前記同期された時刻が、前記ノードの第一のローカル・マシン時間に従って前記ノードにより計画され、前記他のノードが前記他のノードと関連付けられた第二のローカル・マシン時間に従って前記同期された時刻を表し、第一及び第二のローカル・マシン時間が互いに独立している方法。
【請求項１０】
請求項９記載の方法であって、前記チャンネル切り替計画を計算するステップが、更に、
前記ノードにより、前記ホーム・チャンネル上で、前記ネットワーク・プロトコルと関連付けられたメディア・アクセス制御（ＭＡＣ）時間を示すビーコン・メッセージを受信するステップと、
前記ノードにより、前記第一のローカル・マシン時間と前記ＭＡＣ時間との差を決定するステップと、
前記ノードにより、前記差を用いて、前記同期された時刻を表す第一のポーリング・ポイントを、前記ノードのローカル・マシン時間からＭＡＣベースのポーリング・ポイント時刻へと変換するステップと、
前記チャンネル切り替計画における前記ＭＡＣベースのポーリング・ポイント時刻を、前記他のノードに通信するステップであって、前記他のノードによる前記チャンネル切り替計画の受信が、前記他のノードに、
前記ＭＡＣベースのポーリング・ポイント時刻を、前記他のノードのローカル・マシン時間に基づく、前記同期された時刻を表す第二のポーリング・ポイント時刻に変換し、
前記第二のポーリング・ポイント時刻において、前記ホーム・チャンネルから前記特定のゲスト・チャンネルへと切替る、
ようにさせるステップと、
を備える方法。
【請求項１１】
請求項１記載の方法であって、前記複数の相互接続されたネットワーク・ノードのうちの一つのノードについて、データ・スループットを最適化するステップが、更に、前記ノードが或る時間量に渡りゲスト・チャンネルに留まるよう構成するステップを備え、該時間量が、
（ａ）対応する通信リンクのトラフィック量に応じて調整され、
（ｂ）前記通信リンクのトラフィックが増加した場合に増加され、
（ｃ）前記ノードの任意の他のトラフィックが影響を受けないことを保証するように、前記定期的周期と比例する、
方法。
【請求項１２】
請求項１１記載の方法であって、前記ノード（Ｎｉ）について、全体チャンネル占有時間（ＴＮｉ）が、前記ノードと関連付けられた全チャンネルにおける伝送時間及び受信時間を表し、Ｎｉともう一つのノード（Ｎｊ）との間の通信リンク（ｌ（ｉ，ｊ））について、全体占有時間（Ｔ（ｉ，ｊ））が全チャンネルにおけるチャンネル占有時間を表し、前記方法が、更に、
前記ノードが前記ホーム・チャンネルから前記ゲスト・チャンネルに切り替わる各ポーリング・ポイントを、
【数５】
0004723035.tif 000006
に従って決定するステップであって、ただし、
【数６】
0004723035.tif 000007
であり、
リンクｌ（ｉ，ｊ）の時間重み付けが、
【数７】
0004723035.tif 000008
で表されるように、ノードＮｉにおけるリンクｌ（ｉ，ｊ）の時間重み付けが、
【数８】
0004723035.tif 000009
で表され、Ｔｇが前記ノードが前記ゲスト・チャンネルで動作する時間量であって、前記定期的周期（Ｔｃ）に比例する時間量を表すステップ
を備える方法。
【請求項１３】
プロセッサにより実行可能なコンピュータ・プログラム命令を備える、有形のコンピュータ読み取り可能媒体であって、該コンピュータ・プログラム命令が、動作のために実行される際に、複数のネットワーク・ノード（「ノード」）のためのチャンネル周波数切り替動作を計画するステップであって、
アドホック・ネットワークにおける通信リンクの最大独立集合（ＭＩＳ）を決定するステップと、
前記複数のノードのうちの一つのノードによって、前記ＭＩＳリンクのうちの一つのリンクを介して、前記複数のノードのうちの他のノードに、提案されたポーリング・ポイントにおける複数のゲスト・チャンネルのうちの特定のゲスト・チャンネルへのチャンネル切り替を計画するよう要求するステップであって、
前記提案されたポーリング・ポイントが、定期的周期中の同期された瞬間として定義され、前記定期的周期が無線ネットワーク・プロトコルのネットワーク・ビーコンに基づくものであり、更に前記ノードに対して提案されたポーリング・ポイントが、該ノードと関連付けられたローカル・マシン時間に基づき、なお更に、前記他のノードに対して提案されたポーリング・ポイントが、該他のノードと関連付けられた別のローカル・マシン時間に基づき、
各ゲスト・チャンネルが、前記複数のノード全てによりネットワーク接続性を保持するために利用されるホーム・チャンネルに直交であるステップと、
前記他のノードから承認応答を受信するステップと、
前記アドホック・ネットワークにおけるデータ・スループットをローカルで最適化するために、前記承認応答の受信に応じて、前記提案されたポーリング・ポイントにおいて前記特定のゲスト・チャンネルへ切り替えるステップと、
によりチャンネル周波数切り替動作を計画するステップ、
を備えるコンピュータ読み取り可能媒体。
【請求項１４】
プロセッサにより実行可能なコンピュータ・プログラム命令を備える、有形のコンピュータ読み取り可能媒体であって、該コンピュータ・プログラム命令が、動作のために実行される際に、複数のネットワーク・ノード（「ノード」）のためのチャンネル周波数切り替動作を計画するステップであって、
アドホック・ネットワークにおける通信リンク（「リンク」）の最大独立集合（ＭＩＳ）を決定するステップを含み、
前記ＭＩＳがローカルＭＩＳであって、各ノードが個々のローカルＭＩＳを決定し、前記コンピュータ・プログラム命令が、更に、
前記複数のノードの各ノードによって、前記複数のノードのうち該ノードから１ホップ範囲内にある一つ又はそれ以上の隣接ノードと関連付けられたトラフィック情報に基づいて、個々のローカルＭＩＳを確立するための命令であって、前記決定が前記ノードから１ホップ範囲より遠い任意の他のノードと関連付けられたトラフィック情報から独立している命令を備え、更に、
前記複数のノードのうちの一つのノードによって、前記ＭＩＳリンクのうちの一つのリンクを介して、前記複数のノードのうちの他のノードに、提案されたポーリング・ポイントにおける複数のゲスト・チャンネルのうちの特定のゲスト・チャンネルへのチャンネル切り替を計画するよう要求するステップであって、前記提案されたポーリング・ポイントが、定期的周期中の同期された瞬間として定義され、前記定期的周期が無線ネットワーク・プロトコルのネットワーク・ビーコンに基づくものであり、各ゲスト・チャンネルが、前記複数のノード全てによりネットワーク接続性を保持するために利用されるホーム・チャンネルに直交であるステップと、
前記他のノードから承認応答を受信するステップと、
前記アドホック・ネットワークにおけるデータ・スループットをローカルで最適化するために、前記承認応答の受信に応じて、前記提案されたポーリング・ポイントにおいて前記特定のゲスト・チャンネルへ切り替えるステップと、
によりチャンネル周波数切り替動作を計画するステップ、
を備えるコンピュータ読み取り可能媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
ＩＥＥＥ８０２．１１は、インフラ・ネットワーク及びアドホック・ネットワークのいずれにおいても幅広く用いられているＷＬＡＮ（無線ＬＡＮ）の技術標準である。アドホック・ネットワークにおけるノードは、一般に、単一（同一）チャンネル周波数でアドホック・ネットワークの他のノードと通信するよう構成される。伝送ネットワークのノードの増加に伴い、最終的には、チャンネル容量がデータ・スループットのボトルネックになる。
【０００２】
図１は、例えばノード１〜６である、幾つかのコンピュータ装置ネットワーク・ノード（「ノード」）を含むアドホック・ネットワーク１００を示す。この例において、ノード１〜６のそれぞれは、８０２．１１標準通信を用いて、同一の単一チャンネル周波数（例えば、チャンネル１）で他のノードのうちの特定のものと通信するように構成される。しかしながら、任意の特定時刻においては、一つのノードのみが伝送可能であるため、各ノード対は、チャンネルのデータ・スループット容量の最大１／３しか利用しない。同時に同一チャンネルで通信を試みるノードが多すぎる場合、データ・スループット性能は急激に低下する。
【０００３】
同一周波数帯における相互のデータ伝送干渉を緩和するため、ＩＥＥＥ８０２．１１標準は、ネットワークのデータ・スループット容量を本質的に増加させる、複数の直交周波数チャンネルを備える。例えば、ＩＥＥＥ８０２．１１ｂは、１１チャンネルを定義しており、そのうち３つは直交しており（重なっておらず）、８０２．１１ａは１３の直交チャンネルを定義する。図２は、相互の伝送干渉を減らすように異なる直交チャンネルで通信するノード対を有するアドホック・ネットワーク２００を示す。この例において、ノード対（１、２）はチャンネル６で動作し、ノード対（３、４）はチャンネル１で動作し、ノード対（５、６）はチャンネル１１で動作する。トラフィック・パターン２０２〜２０６を示す各矢印は、図示されたノード間の各リンクに渡る異なるトラフィック量を表すように、別々の塗り方（例えば、網掛け）を有している。このシナリオにおいて、各ノード対は同時にデータを伝送することが可能ではあるが、特定のチャンネルで通信するノードは、異なるチャンネルで通信するよう構成された任意のノードと通信することができない。
【０００４】
上記の制限の幾つかを解決するために、ソフトウェア制御されたチャンネル割当て及び切替技術が開発されてきた。これらの従来技術は、許可により、ノードが各チャンネル周波数で通信すると同時に、異なるトラフィック・パターンを受け入れる異なるチャンネルで伝送するよう構成されたノードとの接続性を保持することを可能とする。そのようなシナリオの例が図３に示され、図３では、チャンネル１のノード３がチャンネル６のノード２及びチャンネル１１のノード６の両方とリンク接続性を保持している。しかしながら、既存のチャンネル切替技術は、一般に、アドホック・ネットワークにおける全ての可能性のある任意のトラフィック及び接続性パターンをエミュレートするために、固定パターンを用いる。そのようなエミュレーションは、全ノードが類似した同一の行動に従うと想定するが、実際にはそうとも限らないため、実質的に問題がある。
【０００５】
例えば、一つの従来のチャンネル切替技術は、各パケット伝送の後にチャンネルを切り替える伝送ノードを提供する。そのようなパケットごとの切替動作は、しばしば、対応する時間のかかるチャンネル切替待ち時間のために、かなりの量の処理オーバーヘッドをもたらす。例えば、８０２．１１におけるパケット伝送時間は、約３００マイクロ秒（ｕｓ）である。たとえＮＩＣが１００ｕｓもの速さで切替え可能であり、２つのノードがｍｓの精度で同期可能であったとしても、そのようなパケットごとレベルのチャンネル切替機構におけるパケット切替のオーバーヘッドは、依然として過大な３３％である。もう一つの例において、コンポネント・ベースの従来のチャンネル切替技術は、特定の通信セッションにおける全ノードを、同一チャンネルで伝送するよう構成する。この技術では、通信セッションの期間を通じて、チャンネルが変わらない。これは、パケットごとの切替機構と比べて、チャンネル切替待ち時間を本質的に減少させるが、この技術は、チャンネル多様性の利用において、最も柔軟性に欠ける。
【０００６】
例えば、既存のコンポネント・ベースのチャンネル割当て技術は、図２及び３の組み合わせパターンを表す図４に示されるようなアドホック・ネットワーク構成について、スループット・ゲインを達成することができなかっただろう。図４を参照して、チャンネル１、６及び１１のそれぞれに渡るトラフィック・パターン４０２〜４１０が示される。図示されている通り、一部のノードは常に同一チャンネルで通信する。例えば、この例におけるノード３及び４は、チャンネル１のみで通信する。他のノードは、複数のチャンネルで動作する。例えば、この例におけるノード１は、時としてチャンネル１で、例えばノード３と通信する。この例におけるノード１は、また、チャンネル６で動作してノード２等と通信するように構成される。既存のＭＡＣレベルのチャンネル切替機構は、スループット・ゲインを達成し、図４の例としてのアドホック・ネットワーク４のためのノード接続性を保持することができるが、既存のＭＡＣレベルのチャンネル切替機構は、そのようなシナリオにおいて、若干制限されている。
【０００７】
例えば、従来のＭＡＣレベルのチャンネル切替機構は、所定の及び固定のタイム・スロットのエッジのみでチャンネルを切り替え、特定のタイム・スロット内の全パケットは同一チャンネルで伝送される。そのような従来のスーパーフレーム・レベルの機構には制限がある。例えば、既存のＭＡＣレベルのチャンネル切替機構は、一般に、スーパーフレームごとに、又はタイム・スロット・ベースで、ノードが常にチャンネルを変更することを要するため、そのような機構は柔軟性がなく、大きなチャンネル切替待ち時間を受け入れることができない。更に、既存のＭＡＣレベルのチャンネル切替機構は、スーパーフレームを制御時間及びデータ時間に分割するが、これも実質的に問題があり得る。例えば、この方法でのスーパーフレームの分割は、（ａ）データ時間が十分に活用できない、（ｂ）スーパーフレームごとに一つのサービス機会があるため、ホップごとの応答時間を減少させる実質的なデータ・スループット遅延がある、（ｃ）各ノードがアクセスを主張するために、一般にスーパーフレームごとに信号メッセージを送信する必要があるため、制御チャンネルの時間ボトルネックが起こる、といったことを引き起こし得る。更に、そのようなＭＡＣレベル機構は、既存の８０２．１１ベースのシステムと互換性がなく、８０２．１１  ＭＡＣの修正（例えば、省力モードの拡張）、又は独自ＭＡＣの使用を必要とする。
【発明の概要】
【課題を解決するための手段】
【０００８】
無線アドホック・ネットワーク用分散オーバレイ多チャンネルＭＡＣのためのシステム及び方法が説明される。一つの態様において、該システム及び方法は、無線ネットワーク・プロトコルによって定義されたチャンネル周波数を、単一のホーム・チャンネルと、該ホーム・チャンネルに直交する複数のゲスト・チャンネルとに分ける。アドホック・ネットワークの各ネットワーク・ノードは、ホーム・チャンネル上で、個々の可変且つ相互に重なり合う時間量に渡り、他の各ネットワーク・ノードとのネットワーク接続性を保持するよう動作する。更に、各ネットワーク・ノードは、アドホック・ネットワークにおける他のネットワーク・ノードとの一つ又はそれ以上の対応する通信リンクにおけるデータ・スループットを増加させるために、可変時間量に渡り、ホーム・チャンネルからゲスト・チャンネルのうちの特定のゲスト・チャンネルに切替えるか否か、及び、いつ切替えるかを決定する。
本概要は、以下の詳細な説明において更に説明される概念のうちの選択されたものを、簡潔な形で紹介するために提供される。本概要は、特許請求の範囲に記載された発明の主要な特徴又は不可欠な特徴を特定することを意図しておらず、特許請求の範囲に記載された発明の範囲を確定する際の助けとして利用されることも意図していない。
添付の図面において、構成要素の参照番号の最も左の桁は、該構成要素が最初に現れる特定の図を示す。
【図面の簡単な説明】
【０００９】
【図１】図１は、コンピュータ装置ネットワーク・ノードを含むアドホック・ネットワークを示す。
【図２】図２は、相互伝送干渉を低減するために異なる直交チャンネル上で通信するノード対を備えるアドホック・ネットワークを示す。
【図３】図３は、ノードが、異なるチャンネルで伝送するよう構成されたノードとの接続性を保持しつつ、個々のチャンネル周波数で通信するアドホック・ネットワークを示す。
【図４】図４は、一部のノードは常に同一チャンネルで通信し、他のノードは複数のチャンネルで通信し、異なるチャンネルで動作するノード間の接続性が保持されているアドホック・ネットワークを示す（本質的には、図２及び３で図示された特徴の組み合わせである）。
【図５】図５は、一つの実施の形態による、アドホック・ネットワーク用分散オーバレイ多チャンネルＭＡＣのための例としてのシステムを示す。
【図６】図６は、一つの実施の形態による、チャンネル切替計画ロジックにより利用される定期的周期Ｔｃの例を示す。
【図７】図７は、一つの実施の形態による、アドホック・ネットワーク用分散オーバレイ多チャンネルＭＡＣのための例としてのノード図（ノードグラフ）、リンク図（リンクグラフ）及びチャンネル図（チャンネルグラフ）のセットを示す。
【図８】図８は、一つの実施の形態による、特定のネットワーク・ノードにおけるデータ・スループット・ボトルネックを示すリンク図に変換される例としてのノード図を示す。
【図９】図９は、一つの実施の形態による、例としてのチャンネル切替計画ネゴシエーション・プロトコルの実現態様を示す。
【図１０】図１０は、一つの実施の形態による、アドホック・ネットワーク用分散オーバレイ多チャンネルＭＡＣのための例としてのパケット・バッファリング及び計画ノード構造を示す。
【図１１】図１１は、一つの実施の形態による、アドホック・ネットワーク用分散ＯＭＭＡＣを実現するネットワーク・ノードの例としての実現態様を示す。
【図１２】図１２は、一つの実施の形態による、アドホック・ネットワーク用分散オーバレイ多チャンネルＭＡＣのための例としての手順を示す。
【図１３】図１３は、一つの実施の形態による、アドホック・ネットワーク用分散オーバレイ多チャンネルＭＡＣのための、もう一つの例としての手順を示す。
【発明を実施するための形態】
【００１０】
概要
アドホック・ネットワーク用分散オーバレイ多チャンネルＭＡＣ（ＯＭＭＡＣ）のためのシステム及び方法が説明される。分散ＯＭＭＡＣは、アドホック・ネットワークにおいてノード対ノードの接続性を保持し、データ・スループット（即ち、性能）を最適化するためのフレームワークを提供する。このため、本システム及び方法は、ノード対ノードの接続性を保持するために、ネットワーク・ノード（「ノード」）が定期的に同期することができるチャンネル周波数を特定する。この同期チャンネルが「ホーム・チャンネル」であり、これは、アドホック・ネットワークの全ノードに対して同一である。この実現態様において、ホーム・チャンネルは、アドホック・ネットワークが初期設定（即ち、構築）された際にノードが最初に同期されるチャンネル周波数を表す。本システム及び方法は、次いで、ホーム・チャンネルと直交する複数のチャンネル周波数を特定する。これらの直交チャンネルが「ゲスト・チャンネル」である。これらのノードは、集合として、ホーム・チャンネル及びゲスト・チャンネルに基づく、分散され時刻同期されたチャンネル計画及び切替アルゴリズムを実現する。具体的に、全てのノードは、可変且つ相互に重なり合う時間量に渡りホーム・チャンネル上で動作して、他のノードに対しトラフィック及びチャンネル情報を定期的にブロードキャストし、それにより、ネットワーク接続性を保持する。更に、アドホック・ネットワークの各ノードは、アドホック・ネットワークのデータ・スループットをローカルで最適化するために、可変時間量に渡り、ホーム・チャンネルから特定のゲスト・チャンネルに切替えるか否か、及び、いつ切替えるかを、独立して決定する。
アドホック・ネットワーク用分散ＯＭＭＡＣのためのシステム及び方法のこれらの及び他の特徴を、以下に更に詳細に説明する。
システム例
図５は、一つの実施の形態による、アドホック・ネットワーク用分散オーバレイ多チャンネルＭＡＣ（ＯＭＭＡＣ）の例としてのシステム５００を示す。この実現態様において、システム５００は、アドホック・ネットワーク５０４上で互いに無線で繋がれた、複数のネットワーク接続されたコンピュータ装置５０２−１〜５０２−Ｎ（「ノード」））を含む。各ノード５０２は、汎用コンピュータ装置（例えば、パーソナル・コンピュータ）、サーバ、ラップトップ・コンピュータのような携帯可能コンピュータ装置、個人情報端末（ＰＤＡ）のような小型要素コンピュータ装置等である、個々のコンピュータ装置である。ノード５０２は、アクセス・ポイントを利用せず、ネットワーク５０４上で互いに直接通信する。ＯＭＭＡＣは、各ノード５０２−１〜５０２−Ｎ（即ち、「ノード５０２」）が、ノード対ノードのネットワーク接続性を保持し、基礎となるプロトコルの無線変調技術により特定される厳密な同期要求の観点からチャンネル切替ポリシを強制するローカル版のＯＭＭＡＣを実装しているため、分散されている。本システム及び方法に関連して記載される概念は、複数の無線ネットワーク・プロトコルに適用可能であるが、この実現態様におけるプロトコルは８０２．１１である。
【００１１】
各ノード５０２は、アドホック・ネットワーク用の分散ＯＭＭＡＣを実現するために各プロセッサにより実行可能なコンピュータ・プログラム・モジュールを備えるシステム・メモリに結合された、一つ又はそれ以上のプロセッサを含む。そのようなシステム・メモリは、また、プログラム・モジュールの実行中に個々のコンピュータ・プログラム命令によって生成及び／又は使用されるプログラム・データを含む。例えば、ノード５０２−１は、揮発性ランダム・アクセス・メモリ（ＲＡＭ）及び不揮発性読み取り専用メモリ（ＲＯＭ）を示すシステム・メモリ５０８に結合された、一つ又はそれ以上のプロセッサ５０６を含む。システム・メモリ５０８は、プロセッサ５０６により実行可能なコンピュータ・プログラム命令を備えるプログラム・モジュール５１０を含む。システム・メモリ５０８は、また、プログラム・モジュールの実行中に個々のコンピュータ・プログラム命令によって生成及び／又は利用されるプログラム・データ５１２を含む。この実現態様において、例えば、プログラム・モジュール５０８は、オーバレイ多チャンネルＭＡＣ（ＯＭＭＡＣ）モジュール５１６、ネットワーク・インターフェース制御（ＮＩＣ）ドライバ５１８、及び、実行環境を提供するオペレーティングシステムや、ＯＭＭＡＣモジュール５１６への及びＯＭＭＡＣモジュール５１６からの情報をそれぞれルーティング及び受信するパケット・ルーティング・モジュール等の他のプログラム・モジュール５２０を含む。
フレームワーク例
ＯＭＭＡＣ５１６は、ネットワーク５０４においてノード対ノード５０２の接続性を保持し、基礎となるプロトコルの無線変調技術により特定される厳密な同期要求の観点から分散チャンネル切替ポリシを強制する。一つの例としての実施の形態を説明するために、ＯＭＭＡＣ５１６の動作が、例としてのプロトコルであるＩＥＥＥ８０２．１１と関連して説明される。ノード対ノード５０２の接続性を保持し、基礎となる同期要求の観点から分散チャンネル切替ポリシを強制するために、ＯＭＭＡＣ５１６は、利用可能な通信チャンネル周波数を、単一のホーム・チャンネル及び複数のゲスト・チャンネルに分ける。単一のホーム・チャンネル及び複数のゲスト・チャンネルは、図５において「チャンネル・セット」５２１として集合的に示される。各ノード５０２は、ホーム・チャンネルを利用して、他のノード５０２とのネットワーク接続性を保持する。ゲスト・チャンネルは、ネットワーク５０４のデータ・スループット（性能）を向上させるために、個々のノード５０２により、（以下に説明されるチャンネル切替及び計画アルゴリズムに従って）選択的に利用される。
１．ホーム・チャンネル
この実現態様において、ホーム・チャンネルは、以下のように決定される。開始ノード５０２は、全ての利用可能なチャンネル周波数を走査し、最もノイズの少ないものをホーム・チャンネルとして選択する。全てのノード５０２は、ホーム・チャンネル上でブロードキャスト・メッセージを通じて、ノード５０２から到達可能である。この実現態様において、各ノード５０２は、ホーム・チャンネルのノイズのローカルでの観察に基づき、ブロードキャスト・メッセージ（ＡＣＫ／ＮＡＣＫメッセージ）を介して、ホーム・チャンネルに対する賛否を投票することができる。例えば、一つの実現態様において、受信されたブロードキャストＡＣＫメッセージの数が、（何らかの設定可能な時間周期について）タイムアウト・モードにある局の一定割合（例えば、５０％など）より大きい場合、新しいホーム・チャンネルが決定され、ノード５０２によって投票される。この実現態様において、ホーム・チャンネルは、固定チャンネル周波数に制約されず、通信リンク状況に応じて、ノード５０２によって動的に調整（移動）されることができる。異なる実現態様では、チャンネルのノイズ以外の条件が、ホーム・チャンネルの選択に利用される。
２．ゲスト・チャンネル
ホーム・チャンネルと直交するチャンネル周波数が、ゲスト・チャンネルである。ノード５０２は、ネットワーク５０４のデータ・スループット（即ち、性能）を向上させるように、ゲスト・チャンネル上で別のノード５０２と通信する。この実現態様において、ＯＭＭＡＣ５１６は、該チャンネル上で監視される干渉に従ってゲスト・チャンネルを分類する。特定のノード５０２に対するそのような干渉は、該特定のノード５０２のブロードキャスト範囲における全ての他のノード５０２による、平均の監視結果である（多くのＯＭＭＡＣ５１６動作は、他ノードからのＯＭＭＡＣ５１６情報に基づいてノード・レベルで実行され、そのため「分散ＯＭＭＡＣ」との用語が使われる）。この実現態様において、各ノード５０２は、該ノードがそれぞれ動作するホーム・チャンネル及びゲスト・チャンネル上における各干渉レベルを検知する。このシナリオにおいて、ノード５０２は、該ノードのブロードキャスト範囲内にある他のノード５０２に対し、周期的ブロードキャスト・メッセージで、そのような情報を通信する。この実現態様において、ノードのノーカルＯＭＭＡＣ５１６は、干渉の最も少ないゲスト・チャンネルがノード対ノードの通信に最初に利用されるよう、チャンネル切替及び計画動作を実装する。
３．ノードのポーリング・ポイント
ノード５０２がホーム・チャンネルにとどまる時間量は、（ａ）可変、（ｂ）特定のネットワーク・ビーコンをカバーする隣接ノード５０２がホーム・チャンネル上にある時間と部分的に重なり合う、及び、（ｃ）ノード５０２と、該ノード５０２のブロードキャスト範囲内にある他のノード５０２との間の通信リンク上の双方向トラフィックの関数、である。ノード５０２がホーム・チャンネル上にない場合、該ノード５０２はゲスト・チャンネル上にある。上記を考慮して、各ノード５０２は、該ノードが、データ・スループットを改善するために、ホーム・チャンネルから計画されたゲスト・チャンネルに切替えるべきか否か、及び、いつ切替えるべきかを決定するように、該ノードのローカルＯＭＭＡＣ５１６により、それぞれ構成される。各ノードのノーカルＯＭＭＡＣ５１６は、特定のノード５０２について、チャンネル切替ポイント（即ち、「ポーリング・ポイント」）を決定する。ノードのポーリング・ポイントは、使用される無線プロトコル（例えば、８０２．１１など）の特定のビーコン間隔に基づく定期的周期（「Ｔｃ」）に関連して定義される。例示のために、ノードのポーリング・ポイントは、「ポーリング・ポイント」５２３として示される。
【００１２】
図６は、一つの実施の形態による、各ノードのチャンネル切替計画ロジック（このロジックはＯＭＭＡＣ５１６によって実現される）によって利用される定期的周期Ｔｃの例を示す。例示及び説明のために、図６の態様は、図５の構成要素について示される。図において、参照番号の最も左の数字は、参照されている構成要素が最初に導入された特定の図を示す。図６を参照して、Ｔｃは、各ノード５０２がホーム・チャンネル及びゲスト・チャンネルの組み合わせ上で動作するよう構成された時間の総量を表すことが示される。具体的に、各ノード５０２は、特定且つ可変の時間量（「Ｔｈ」）に渡り単一のホーム・チャンネル上で動作するように、ローカルで（即ち、ＯＭＭＡＣ５１６によって）構成される。各ノード５０２は、更に、特定且つ可変の時間量（「Ｔｇ」）に渡り、複数のゲスト・チャンネルのうちの特定のチャンネル上で動作するよう、ローカルで構成される。従って、
Ｔｃ＝Ｔｈ＋Ｔｇ        （１）
である。
【００１３】
この実現態様において、周期の長さは、基礎となる無線プロトコルと関連するビーコン間隔を乗算することにより決定される整数ｎである。例えば、ＩＥＥＥ８０２．１１標準を実装するよう構成されたノードのデフォルトのビーコン間隔は、１００時間単位（ＴＵ）、即ち１０２４ｍｓである。
【００１４】
図６に示されるように、時間周期Ｔｃは、複数のｍ個のスロットに分割される。スロットは、ノードがチャンネル上に計画されている時間の処理単位（粒度）を表す。例えば、定期的周期が１０２．４ｍｓ（ｎ＝１）であり、ｍ＝８である場合、各サイクルは８スロットに分割され、ＯＭＭＡＣ５１６はホーム・チャンネル及びゲスト・チャンネルの時間を１２．８ｍｓの処理単位で調整する。ポーリング・ポイントは、ノード５００が一つのチャンネルから他のチャンネルへとジャンプ／切替する特定の時間を示す。別のノード５０２は、それら自身のポーリング・ポイントを定義し得るが、特定の無線リンクの送受信ノード対は、各ポーリング・ポイントを同期し、同時に同一チャンネルにジャンプする（以下、「時刻同期例」の章で更に詳細に述べる）。この実現態様において、ポーリング・ポイントは、スロットの境界部に制限される。そのため、整数値がポーリング・ポイントを表す。例えば、ｍ＝８である場合、ポーリング・ポイントを表示するために１バイト（８ビット）を使用することができる。この実現態様において、例えば、一周期に複数のポーリング・ポイントがあってもよい。更に、二つのノード間のリンクのポーリング・ポイントは、以下に詳細に述べるように、該リンクのトラフィック量に応じて調整される。
【００１５】
周期の始まりにおいて、全てのノード５０２はホーム・チャンネルに戻り、少なくともブロードキャスト時間と呼ばれるＴｂに渡って、ホーム・チャンネルに留まる。ＯＭＭＡＣ５１６は、ブロードキャスト・パケットが、各周期のこの時間期間内に伝送されるよう計画する。この実現態様において、例えば、ノード５０２は、Ｔｂより長い時間に渡り、ホーム・チャンネルに留まり得る。即ち、Ｔｈ＞Ｔｂである。ここで、ＴΔ＝Ｔｈ−Ｔｂとしよう。そのような時間期間に、該ノードはホーム・チャンネルに留まるが、ユニキャスト・メッセージを通信する。スロット単位でのポーリング・ポイント、即ちＴｈは、[ｂ，ｍ]の範囲において有効である。Ｔｈがｍと等しい場合、対応するノード５０２は、周期全体に渡りホーム・チャンネルに留まることになり、この特定のノードについては、ゲスト・チャンネルが計画されない。この実現態様において、ビーコン及びブロードキャスト・パケットの伝送機会が確保されるように、ｂの値が選択される（例えば、ｂ＝１）。
チャンネル切替計画の例
次に、切替えられるべきゲスト・チャンネルを計画する、各ノード５０２の分散アルゴリズムについて説明する。通信リンクにおけるゲスト・チャンネル計画の態様は、まず、ゲスト・チャンネルの最大独立集合（ＭＩＳ）と、カラーリングの問題との組み合わせを考慮して生成される。次に、該アルゴリズムの例としての分散実現態様が、グリーディ・アルゴリズムを利用するＭＩＳによる信号伝達オーバーヘッドと利点との間のトレードオフに基づいて、上記の例としてのフレームワークを考慮して提示される。
４．スループットを最大化するためのゲスト・チャンネル計画
上記の通り、ノード５０２がホーム・チャンネルに留まる時間量は可変であり、該時間量は、ビーコン期間をカバーする隣接ノードの時間量と、部分的に重なり合う。ノード／局は、周期Ｔｃにおける残りの時間を、各周期のゲスト・チャンネル上で費やす。リンクの送信元及び宛先ノード５０２が同時に同一のゲスト・チャンネルに切替わる場合、このリンクのトラフィックは、ホーム・チャンネル及び他のゲスト・チャンネル上のトラフィックと直交する。８０２．１１は、リンク層における競合を解決するためのＣＳＭＡ／ＣＡ（搬送波感知多重アクセス/衝突検出方式）を提供するため、リンク上の二方向トラフィックが最小単位として扱われ、周期Ｔｃの同一スロットに計画される。そのため、チャンネル切替はリンクのトラフィックに応じたものであり、リンクは双方向である。
【００１６】
ＯＭＭＡＣ５１６のゲスト・チャンネル計画動作は、どの通信リンクが選択されるかを決定し、また、全体としてのデータ・スループットを（劣化なく）実質的に最大化するために、個々のゲスト・チャンネルにおいてどれだけ長い時間通信するかを決定する。
【００１７】
チャンネルの数に制限がなく、各リンク上のトラフィックがグリーディである場合、各８０２．１１局は同時に一つのリンクのみを含むため、ＯＭＭＡＣ５１６は、最大数の「非初期衝突」アクティブ・リンクを選択する。二つのリンクがいずれも同一ノード５０２に通信要求する場合、それらのリンクは「初期衝突」状態にある。時間周期Ｔｃごとに当該リンク上に一定量のトラフィックがある場合、通信リンクは「アクティブ」である。
【００１８】
Ｖ及びＥは、それぞれ、ネットワーク５０４における全ノード５０２及びリンク・セット（リンクは、各通信リンク５３２−１〜５３２−Ｎとして示される）を表し、Ｇはネットワークに対する最初のトラフィック図を表すものとする。Ｇにおけるノードの総数が、Ｉ＝１，２．．Ｎによって示されるＮ個であると仮定し、Ｖｉを用いてＧにおけるノードｉを表記する。ｌ（ｉ，ｊ）はノードｉとノードｊとの間の双方向リンク５３２を表すものとし、ｌ（ｉ，ｊ）＝ｌ（ｊ，ｉ）である。ＯＭＭＡＣ５１６は、ネットワーク５０４の最初のトラフィック図である図Ｇ（ノード図）をリンク図Ｇ‘に変換し、リンク図に示される各ノード５０２は、最初のノード図におけるアクティブ・リンクである。Ｇにおける対応するリンクが初期衝突している場合、Ｇ’において２つのノード間のリンクが存在する。そのため、図Ｇ’における最大独立集合がＧにおける非初期衝突リンクに対応し、最大数のリンクが選択される（スループットの最大化）。
【００１９】
最大独立集合問題は周知のＮＰ完全問題であり、そのため、更なるノードを追加することができないＭＩＳ（最大独立集合）を解決するために、多くの発見的アルゴリズムが提案されてきた。この実現態様において、Ｇ’におけるＭＩＳは、最大であって更なるリンクを計画することができないＧにおけるリンク集合に対応する。ＭＩＳ選択のための一つの周知の発見的アルゴリズムは、グリーディ・アルゴリズムであり、これは、図Ｇ’における全てのノードを、その次数によって分類し、最も次数の低いノードを最初に選択して、選択されたノードと、それと隣接する全てのノードとを取り除く。この最低次数ノード選択は、全てのノードが取り除かれるまで継続される。全ての選択されたノード５０２はＭＩＳを表し、複数のノード５０２が同じ次数を有する場合、ＭＩＳの数は一つ以上であり得る。
５．チャンネル数に対する制限
ＭＩＳが生成された後に、ＯＭＭＡＣ５１６は、カラーリングにより、チャンネル数の制限に取り組む。具体的に、ＯＭＭＡＣ５１６は、リンク図Ｇ’のＭＩＳを図Ｇ’’に変換するが、Ｇ’’における各ノードは、Ｇ’のＭＩＳにおけるノードであり、Ｇにおける二つの対応するリンクが「二次的衝突」している場合に、Ｇ’’の２つのノードの間にリンクが存在する。ここで、最初のチャンネル図Ｇにおいて、二つのリンクが同一チャンネル上で同時に並列動作できない場合に、二つのリンクは二次的衝突状態にある。そのため、二つのリンクが初期衝突である場合、必ず二次的衝突でもあるが、その反対は成立しない。図Ｇ’’はチャンネル図と呼ばれ、Ｇ’’に示されるノード５０２のチャンネルを計画するためにカラーリング・アルゴリズムが用いられる。ＯＭＭＡＣ５１６は、Ｇ’’のＭＩＳを選択し、これらのＭＩＳのノードに、最初の表示されるゲスト・チャンネルを割り当てる。ＯＭＭＡＣ５１６は、次いで、Ｇ’’から該ノードを取り除き、ゲスト・チャンネル・セットから使用されたゲスト・チャンネルを取り除く。
【００２０】
ＯＭＭＡＣ５１６は、全てのノード５０２が割り当てられるまで、又は、ゲスト・チャンネル・セットが空になるまで、ＭＩＳ選択及びチャンネル割当てを続ける。この実現態様において、ホーム・チャンネルは、全てのゲスト・チャンネルに対して直交であるため、最後のＭＩＳは、ホーム・チャンネルに割り当てられる。上記の通り、性能を改善するために、リンクは異なるゲスト・チャンネルに割り当てられる。チャンネル切替は、いくらかの切替待ち時間をもたらすため、そのような待ち時間を減少させるために、一組のリンクがホーム・チャンネルに留まるよう構成される。ホーム・チャンネルは、全てのゲスト・チャンネルに対して直交だからである。これを考慮し、集中アルゴリズムにおいて、ホーム・チャンネル上で動作するよう選択されるＭＩＳは、例えば第一のＭＩＳ等の、任意のＭＩＳであってよい。しかしながら、分散シナリオにおけるデッドロックを解消するために、最後のＭＩＳが選択される。そのようなデッドロックは、例えば、複数のノード／リンクが同時に自らをホーム・チャンネルで動作するものであると認識し、ゲスト・チャンネルが使用されない場合に発生し得る。
【００２１】
図７は、一つの実施の形態による、アドホック・ネットワーク用分散オーバレイ多チャンネルＭＡＣの例としての一組のノード、リンク及びチャンネル図を示す。この例において、図７（ａ）は、例示のために図４と同じネットワーク・トポロジ及びトラフィック・パターンを示す。このノード図における５つのアクティブ・リンクは、図７（ｂ）のリンク図に変換される。ＯＭＭＡＣ５１６は、上記のグリーディ・アルゴリズムに従ってＭＩＳを選択する。即ち、最低次数のノードを最初に選択する。図７（ｂ）の例において、ＭＩＳは唯一であり、ＯＭＭＡＣ５１６はＭＩＳ（リンク（１，２）、（３，４）、及び（５，６））内のノードを選択する。ＯＭＭＡＣ５１６は、リンク図を、図７（ｃ）の例としてのチャンネル図に変換する。ノード図の６つのノード全てが互いに通信範囲内にあるため、全てのリンクが衝突する。そのため、任意の時刻において一つのリンクだけしか動作できない。従って、図７（ｃ）のチャンネル図において、３つのノード全てが接続されており、ホーム・チャンネル１とともに、２つのゲスト・チャンネル（６及び１１）が利用される。チャンネル１、６及び１１は、それぞれ３つのリンクのために利用され得る（例えば、図４を参照のこと）。
６．チャンネル切替のオーバーヘッド
各ノード５０２について、ＯＭＭＡＣ５１６は、チャンネル切替によりもたらされるオーバーヘッドにローカルで取り組み、ノード５０２がネットワーク５０４におけるデータ・スループットのボトルネックであるか否かを決定する。具体的に、Ｔｓｃ及びＴＮｉは、チャンネル切替の時間オーバーヘッド、及び周期ごとのノードＮｉのチャンネル占有時間を表すものとすると、Ｔｓｃ＋ＴＮｉ＞Ｔｃの場合に、チャンネル切替がノードＮｉのスループットに影響する。図８は、一つの実施の形態による、特定のネットワーク・ノード５０２におけるデータ・スループットのボトルネックを示すリンク図（ｂ）に変換される、例としてのノード図（ａ）を示す。具体的に、図８は、データ・スループットが増加できず、むしろチャンネル切替のオーバーヘッドのためにいくらか低下する状況を示す（図３は、同様のシナリオを示している）。例えば、図３を参照して、全てのノードが同一チャンネル上にあり、チャンネル切替のコストがないことに注意されたい。図８（ｂ）を参照して、リンク図は、対応するＭＩＳには、リンク（３，２）又はリンク（３，６）のいずれかである一つのノードしかないことを示す。ＭＩＳ＝リンク（３，２）がゲスト・チャンネル上で動作するよう選択される場合、ノード３において一定のオーバーヘッドが存在する。しかし、リンク（３，２）及び（３，６）は、いずれも、ノード３の関与を必要とする。従って、ノード３がチャンネル切替動作を実現する場合、全体のスループットが低下する。１つのリンクのみが計画されている場合、データ・スループットは増加されようがないことに注意されたい。そのようなシナリオにおいて、ＯＭＭＡＣ５１６は、当該ノード５０２に対するチャンネル切替計画を削除する。
７．ポーリング・ポイントの決定
上記の段落は、ＯＭＭＡＣ５１６が、特定チャンネルに通信リンクが計画される時間を確定する方法を説明した。次に、ＯＭＭＡＣ５１６が、ノードのチャンネル切替処理のためにポーリング・ポイントを決定する方法を説明する。ノードＮｉについて、全体としてのチャンネル占有時間ＴＮｉは、全チャンネルにおける送信時間と受信時間との両方からなる。リンクｌ（ｉ，ｊ）について、Ｔ（ｉ，ｊ）は、全チャンネルにおけるチャンネル占有時間を表す。即ち、
【００２２】
【数１】
0004723035.tif 000002
【００２３】
である。ノードＮｉにおけるリンクｌ（ｉ，ｊ）の時間重みは、
【００２４】
【数２】
0004723035.tif 000003
【００２５】
である。従って、リンクｌ（ｉ，ｊ）の時間重みを、
【００２６】
【数３】
0004723035.tif 000004
【００２７】
と定義する。リンクｌ（ｉ，ｊ）について、
【００２８】
【数４】
0004723035.tif 000005
【００２９】
となるようにポーリング・ポイントが計画される。
数式（５）に従うゲスト・チャンネルを選択する時間は、（ａ）ゲスト・チャンネルの時間は、当該リンクのトラフィック量に従って調整され、トラフィックが増加する場合に、より多くの時間が割り当てられる、及び、（ｂ）周期時間の比例することにより、対応するノード５０２における他のトラフィック要求に影響を与えないという目標が保証される。
【００３０】
例えば、一つの実現態様において、ＯＭＭＡＣ５１６は、各ノード５０２に対して、チャンネル切替を計画する集中アルゴリズムを実装する。集中アルゴリズムは、アドホック・ネットワークのトラフィック及びノードについて、常に完全且つ更新された情報を提供し、分散アルゴリズムは、ローカル化されたそのような情報を提供する。集中アルゴリズムによるＭＩＳ選択は、複数の解決策を持ち得るが、一つだけのＭＩＳ解決策のみが選択される。逆に、分散アルゴリズムを使用すると、結果は、隣接ノードにおいて実行される複数のステップにより決定される。これは、分散アルゴリズムを使用すると、各ノードの決定が全体の結果としての影響するが、全体としての結果を制御はしないことを意味する。例えば、集中アルゴリズムと比較した場合、そのような分散アルゴリズムで取られるステップは非同期であり、並列であることも、衝突することも、又は、デッドロックのシナリオになることもあり得る。（この後者のシナリオは、上記の通り、最後のＭＩＳにホーム・チャンネルを使用すること、及びチャンネル・ネゴシエーション・プロトコルを使用することにより対策される）。
【００３１】
例えば、この実現態様において、各ノード５０２に対するチャンネル切替を計画する集中アルゴリズムは、以下の通りである。
（ａ）ノード５０２についてチャンネル占有時間を評価し、Ｔｃｓ＋ＴＮｉ＞Ｔｃである場合に、該ノードＮｉを取り除く。結果としてのノード図はＧになる。
（ｂ）ノード図Ｇをリンク図Ｇ’に変換し、上記の通り、グリーディ・アルゴリズムを用いてＧ’からＭＩＳを選択する。
（ｃ）リンク図Ｇ’をチャンネル図Ｇ’’に変換し、Ｇ’’からＭＩＳを選択して、Ｇ’’又はゲスト・チャンネルが空になるまで、ゲスト・チャンネルを割り当てる。
（ｄ）リンクの時間重みに従ってチャンネル切替のポーリング・ポイントを計画する。
チャンネル切替のための分散アルゴリズムの例
ＯＭＭＡＣ５１６は、以下を考慮して設計される。即ち、１）各ノード５０２は、ネットワーク５０４の更新情報の一部のみを有するため、ＯＭＭＡＣ５１６は、１ホップ隣のノード５０２から得られる情報を考慮して、チャンネル切替決定をローカルで最適化する（この決定は、１ホップより遠い範囲のノードからの情報からは独立である）。２）各リンクは、ゲスト・チャンネル上に非同期で計画されるため、集中モードＯＭＭＡＣ５１６のリンク計画は、他の計画されたリンクを考慮して調整される。３）ＯＭＭＡＣ５１６は、分散チャンネル切替のためのゲスト・チャンネル・ネゴシエーション・プロトコルを実装し、トラフィックに適応する。これらの態様は、以下に更に詳細に説明される。
８．ローカルＭＩＳ
無線ネットワーク５０４の各ノード５０２は、一般に、通信範囲内におけるトラフィック及びチャンネルの情報を有する。そのため、各ノードによって生成／取得されるネットワーク・トラフィック図Ｇは部分的である。従って、各ノード５０２におけるＭＩＳ選択は、異なり得る。ここでは、ノードの情報を隣接ノード５０２からの情報により更新することについて記載する。具体的には、ＯＭＭＡＣフレームワーク５１６は、ホーム・チャンネルにおけるリンク層のブロードキャストを提供する。そのため、各ノード５０２は、他のノード５０２とトラフィック及びチャンネル情報を交換するために、周期的なブロードキャスト・メッセージを通信するよう構成される。この実現態様において、例えば、各ノード５０２は、そのようなブロードキャスト・メッセージを毎秒一回ずつ通信するが、他の周期的な期間が用いられてもよい。時宜に遅れた情報につながり得るメッセージ遅延の機会を減らすために、各ノード５０２は、そのトラフィック及びチャンネル情報を、他のノードに中継する代わりに、ブロードキャストする。他の実現態様において、この情報交換は、ブロードキャスト・メッセージとは独立して実現される。例えば、一つの実現態様において、ノードのトラフィック及びチャンネル情報は、進行中のトラフィック・ヘッダに乗せられる。
９．非同期チャンネル切替計画
集中モードにおいて、ＯＭＭＡＣ５１６は、ネットワーク５０４のリンク図全体に対するＭＩＳを計算する。ＯＭＭＡＣ５１６は、その後、グリーディ（最低次数優先）・アルゴリズムを用いて全てのリンクを割り当てる。グリーディ（最低次数優先）・アルゴリズムは、既知のカラーリング・アルゴリズムの一例である。実践的な分散モードにおいて、各ノード５０２は、チャンネル切替計画を非同期にネゴシエートするが、これは、ノード５０２が、隣接ノード５０２から受信した、観察されたチャンネル切替計画に基づいて、計画決定を行うことを意味する。そのような非同期の計画は、ネゴシエーション・メッセージによるネットワーク５０４上の任意のメッセージ・サージを平滑化し、ホーム・チャンネル時間におけるデータ・スループット負荷を平衡させる。一つの実現態様において、ネゴシエーション・メッセージによるオーバーヘッドを更に低減するために、ＯＭＭＡＣ５１６は、複数の時間周期におけるチャンネル切替活動をカバーするチャンネル切替計画を生成する（例えば、図６参照）。
【００３２】
一つの実現態様において、ＯＭＭＡＣ５１６は、ノードＮｉに対するチャンネル切替パターンを計画するために、以下のように分散アルゴリズムを実装する。
・ノード５０２は、ノード５０２のにおける関連する占有時間ＴＮｉ、時間重み付け、及び任意のアクティブ・リンクのチャンネルを周期的にブロードキャストする。
・該ノード５０２は、隣接ノード５０２から受信したブロードキャスト・メッセージを集めて、全ての２ホップの隣接ノード及びアクティブ・リンクを表す図Ｇを構築する。例えば、２ホップのノード情報は、１ホップのノードからのブロードキャスト・メッセージを評価することにより得られる。この例を示すために、Ａ−Ｂ−Ｃ−Ｄ−ＥといったようなノードＡからＥまでの５つのノードを有するチェーン・トポロジを想定されたい。この例において、ノードＡは、Ｂのみから情報を受け、ＢはＡ及びＣのみから情報を受け、・・・ＥはＤのみから情報を受ける。ノードＣは、ノードＤからのブロードキャストを受け取るが、これは、Ｄ−＞Ｃ及びＤ―＞Ｅと関連するトラフィック情報を含む。そのため、ノードＣはノードＥが存在することを知っているが、ＣはＥから直接に情報を受けることができないため、ノードＥはＣの隣接ではない。同様に、ＣはＡの存在も知っている。この方式では、各ノードは、２ホップ以内にある全てのノードからの情報を集めることができる。
・該ノード５０２は、各隣接ノード５０２についてチャンネル占有時間を評価し、Ｔｃｓ＋ＴＮｊ＞Ｔｃの場合に、Ｇから隣接ノードＮｊを取り除く。
・該ノード５０２は、ノード図Ｇをリンク図Ｇ’に変換する。次いで、ノード５０２は、全てのアクティブ・リンクの計画を確認するためにリンク図を評価し、対応するリンクが計画されている場合に、ノードをＭＩＳに移動する。ノード５０２は、グリーディ・アルゴリズムを用いて、Ｇ’からのＭＩＳのノードの識別を続ける。
・該ノード５０２は、リンク図Ｇ’をチャンネル図Ｇ’’に変換し、上記のようにＧ’’からＭＩＳを選択して、Ｇ’’又はゲスト・チャンネル・セットが空になるまで、計画されたリンク・チャンネル設定に基づいて、ゲスト・チャンネルを割り当てる。
・リンクｌ（ｉ，ｊ）がＧ’’にあり、計画されていない場合、ノード５０２は、該リンクの時間重み付けに従って、チャンネル切替のポーリング・ポイントを計画する（式（３）参照）。
１０．計画ネゴシエーションのためのプロトコル例
図９は、本発明の一つの実施の形態による、例としてのチャンネル切替計画ネゴシエーション・プロトコルの実現態様を示す。この例において、各ノードＮｉ及びＮｊは、図５の各ノード５０２を表す。図９を参照し、上記の分散アルゴリズムに基づいて、ノードＮｉ９０２が隣接のＮｊ９０４とのチャンネル切替を計画することを決定した場合、Ｎｉは、ノードＮｊに切替チャンネル（ＳＣ）要求メッセージを送信し、Ｎｊとのチャンネル切替の計画を望んでいることを示す。（例示のために、そのようなＳＣ要求メッセージは、図５の「他のプログラムデータ」５３８の個別の部分として示される。）この実現態様において、ＳＣ要求メッセージは、ポーリング・ポイント及びゲスト・チャンネルの提案を含む。
【００３３】
ブロック９０６、９０８及び９１０を参照して、この実現態様において、個々のメッセージ送受信ノードは、ノード５０２の近隣のノードに対する同時のチャンネル切替計画ネゴシエーションを避けるために、送受信メッセージごとの各タイマを開始する。（例としてのタイマ・ロジック５２８は、第００６２段落の「タイマ・ロジック」と題された章において、更に詳細に説明される。）要求メッセージの受信に応じて、ノードＮｊは、Ｔｓｃ＋ＴＮｊ＜Ｔｃであるか否かを確認する。Ｔｓｃ及びＴＮｉは、それぞれ、チャンネル切替の時間オーバーヘッド、及び周期ごとのノードＮｉのチャンネル占有時間を示すことを想起されたい。Ｔｓｃ＋ＴＮｊ＞Ｔｃである場合、チャンネル切替がノードＮｉにおけるスループットに影響する。通過した場合（即ち、Ｔｓｃ＋ＴＮｊ＜Ｔｃである場合）、Ｎｊは、提案されたゲスト・チャンネルが既に任意の１ホップの隣接ノード５０２によって予約されているか否かを確認する。提案されたゲスト・チャンネルが既に予約されていない場合、Ｎｊは、肯定応答（ＡＣＫ）メッセージ（ユニキャスト）により、ノードＮｉに対し要求を承認する。このシナリオにおいて、提案されたポーリング・タイムに計画されたチャンネル切替行動は、周期ごとにＮｉ及びＮｊの両方によって実行される。代わりに、Ｎｊは、チャンネル切替要求を否定し、取り消すために、要求ノードに否定応答（ＮＡＣＫ）メッセージを送信する。この実現態様において、ノードＮｊは、Ｎｉに、その要求を拒否する理由を知らせる。チャンネル切替要求を拒否する理由が、チャンネルが占有されているためである場合、Ｎｊは、可能であれば、Ｎｉに対し、ゲスト・チャンネルの別候補の提案を乗せこむ。
【００３４】
一つの実現態様において、ノード５０２は、他のノード５０２に対して、例えば切替要求を承認／拒否するＡＣＫ／ＮＡＣＫメッセージにより、フィードバックを提供し得る。結果がＮＡＣＫである場合、又は、設定可能な時間量が経過した（タイムアウト）後もノードＮｉでフィードバックが受信されない場合、ノードＮｉは、チャンネル切替要求を要求失敗とみなす。そうではない場合、この実現態様において、ノードＮｉ及びＮｊは、いずれも、ＳＣ通知メッセージを二度ブロードキャストする。そのうち、第一のメッセージは、ＳＣ応答メッセージの直後に、ノードＮｉ又はＮｊによってそれぞれ送信又は受信される。この実現態様において、そのような二重の通知は、通知ブロードキャストが消失することによる、あらゆる影響を実質的に回避する。ノードが現在の時間周期におけるブロードキャスト・チャンネル時間でのチャンネル切替ネゴシエーションを実装している場合、第二のＳＣ通知メッセージは、次の時間周期におけるブロードキャスト時間に通信される。この後者のシナリオが図９に示される。この実現態様においては、例えば、ポーリング・ポイントの変更や、先に計画されたゲスト・チャンネルへの計画延長のために、２つのノード５０２が新しい切替計画をネゴシエーションすることが可能であることに注意されたい。そのようなシナリオにおいて、また、この特定の実現態様において、ローカルＯＭＭＡＣ５１６は、それぞれ、次の及び第三の周期におけるブロードキャスト時間に、２つのブロードキャストを計画する。
ネットワーク・ノード設計例
図１を参照して、上記の通り、各ノード５０２は、システム５００のチャンネル切替ポリシの各部分を実現する。一つの実現態様において、このチャンネル切替ポリシは集中化される。他の実現態様において、このチャンネル切替ポリシは分散される。具体的に、ＯＭＭＡＣ５１６は、ＮＩＣドライバ５１８を制御するロジックを含み、オペレーティング・システムの非リアルタイムのソフトウェア割り込みを管理し、任意の既存のＮＩＣドライバの計画／バッファ要求に応じる。例えば、この実現態様において、ＯＭＭＡＣ５１６は、トラフィック測定ロジック５２２、情報交換ロジック５２４、チャンネル切替計画ロジック５２６（「切替ロジックにおける計画」５２６）、タイマ・ロジック５２８及びパケット・バッファリング・ロジック５３０を含む。この例としての順列は、このロジックの様々な部分間における構造的な順位又はデータの流れを示唆又は限定するものではない。むしろ、ロジック５２２〜５３０の上記の順位は、説明のために用いられるものである。これらのモジュールの例としての態様が、ここで説明される。。
トラフィック測定及び情報交換の例
トラフィック測定ロジック５２２は、例えば、送受信パケットのログを作成する。トラフィック測定ロジック５２２は、また、入ってくる又は出て行くパケットについて、関連するトラフィック量を計算する。この実現態様において、ロジック５２２で測定されるトラフィックは、予め構成可能な時間期間における平均トラフィック量を提供する既知の時間移動窓平均アルゴリズムを用いて計算を実現する。情報交換ロジック５２４は、対応するノード５０２にチャンネル切替計画を伝達する。例示のために、そのようなログ及びチャンネル切替計画は、「他のプログラムデータ」５３８の各部分として示される。情報交換ロジック５２４は、また、隣接するノード５０２から受信したトラフィック情報及びチャンネル切替計画を整理する。計画及び切替ロジック５２６は、そのような受信された任意のチャンネル切替計画を用いて、例としてのチャンネル切替計画動作を実現する。
計画及び切替ロジックの例
計画及び切替ロジック５２６は、例えば、トラフィック測定ロジック５２２によって集められたノード固有情報（自己情報）、及び、情報交換ロジック５２４によって集められた隣接ノード５０２情報に基づいて、上記のグリーディ・アルゴリズムを実行する。計画及び切替ロジック５２６は、また、ＮＩＣドライバ５１８によって公開されるアプリケーション・プログラム・インターフェース（ＡＰＩ）にアクセス／利用する。ＡＰＩ５３４は、ノード５０２のそれぞれが同時に同一チャンネルに切り替わるよう、チャンネルを切替え、また、チャンネル切替計画を同期させるために、ＮＩＣドライバ５１８へのインターフェースを提供する。ここで、ノード・チャンネル切替同期の例としての実現態様を説明する。
【００３５】
複数のチャンネルに渡るノード間のチャンネル切替動作の同期は、異なるチャンネルで動作するノードが同期を失いやすいために、困難である。従来のチャンネル切替技術を使用すると、ネットワーク・ノード間のチャンネル切替時間の相違が、しばしば、パケット再送につながり、さらにはパケット損失につながり得る。チャンネル切替同期には複数の要素が影響する。そのような要素の中には、例えば、使用される特定の同期プロトコル、クロック・ドリフト（ｃｌｏｃｋ  ｄｒｉｆｔ）、温度などが含まれる。計画及び切替ロジック５２６は、ノード５０２が特定のチャンネル周波数に同時に切り替えることを可能とする実用的なノードのチャンネル切替同期機構により、これらの困難を解決する。
【００３６】
この実現態様において、計画及び切替ロジック５２６は、８０２．１１スーパーフレームに基づく定期的周期で動作する。（そのような定期的周期を説明する図６に関連する上記の説明も参照されたい）。８０２．１１プロトコルは、ブロードキャスト・メッセージ期間の始まりにビーコンを送る。受信されたビーコンは、８０２．１１のＭＡＣ時間を示す。ビーコンの受信に応じて、各ノード５０２は、それぞれの８０２．１１時間スタンプ（即ち、各周期に対するブロードキャスト時間）を更新する。各ノード５０２は、次いで、ローカル・マシン時間及びＭＡＣ時間の周期ごとの任意の差を決定する。計画及び切替モジュール５２６がノード５０２に対するチャンネル切替計画を計算するとき、計画及び切替モジュール５２６は、計画に関連する時間を、８０２．１１ＭＡＣ時間に変換する。そのような変換は、情報交換ロジック５２４による隣接ノード５０２への計画の任意の通信の前に実行される。他のノード５０２からのそのようなチャンネル切替計画の受信に応じて、計画及び切替ロジック５２６は、チャンネル切替イベントを計画するために、指示された８０２．１１ＭＡＣ時間を、関連するローカル・マシン時間に変換する。
【００３７】
この実現態様において、ＮＩＣドライバ５１８はＡＰＩ５３４を公開し、切替ロジック５２６が、ＮＩＣドライバ５１８に対し、要求ノード５０２にＭＡＣ時間（例えば、８０２．１１ＭＡＣ時間）を送信することを要求できるようにする。ＡＰＩ５３４のこの部分は、要求ノード５０２がマシン時間とＭＡＣ時間との差を計算することを可能とする。この実現態様において、ＭＡＣ時間の処理単位は１マイクロ秒であり、ＭＡＣ時間の同期誤差は約１マイクロ秒の伝達遅延誤差である。マシン時間の処理単位は、例えば、一般に１００ナノ秒である。従って、この特定の実現態様において、切替ロジック５２６は、マイクロ秒レベルでのノード・チャンネル切替同期を提供する。
【００３８】
更に、各ノード５０２は同一のホーム・チャンネル上で動作し、８０２．１１ＭＡＣブロードキャストはホーム・チャンネルのみでビーコン送信するため、新しいノードがネットワーク５０４に追加された際、当該新しいノードは、８０２．１１走査フェーズを用いてネットワーク発見処理を実現する。
タイマ・ロジック
例示のために、ウィンドウズ（登録商標）・オペレーティング・システムのタイマの態様を説明する。これらの説明される態様は、他のオペレーティング・システムの実装と類似する。ウィンドウズにおけるデフォルトのタイマ処理単位は１０ｍｓであり、アプリケーションは、一般に、１００ｎｓにおいて正確な時間測定を得ることができる。カーネルにおける厳格なタイマ要求のために、ウィンドウズは、タイマ処理単位を約１ｍｓまで調節するＡＰＩを提供する。しかし、タイマ処理単位を調整した後に、平均タイマ誤差が１ｍｓ以下であったとしても、オペレーティング・システム（ＯＳ）の負荷が非常に高い際のタイマ誤差は依然として１０ｍｓ以上になり得る。この理由の一つは、ソフトウェア及びハードウェアのイベントが、一般に、優先度ベースの処理キューに置かれるからである。ハードウェア・イベントは、一般に、処理のためのイベント・キューから取り除かれるための最高の優先度を有し、ソフトウェア・イベントは、多くの優先度をとり得る。従って、オペレーティング・システムのタイマ割り込みに基づくソフトウェア・タイマを用いてチャンネル切替計画を実現するには、現実的な制限が存在する。
【００３９】
従来のチャンネル切替タイマと比較して、ＯＭＭＡＣ５１６は、オペレーティング・システムと関連付けられた多重処理時間スライスに基づく、ソフトウェア・タイマ・ロジック５２８のタイマを実装する。システム５００のタイマ・ロジック５２８は、パケット及びチャンネル切替計画にタイマを提供するために、従来のソフトウェア・タイマの制限を解決しようとするものである。具体的に、タイマ・ロジック５２８は、タイマ・スレッドの優先度を最高のソフトウェア優先度レベルに設定し、それらがイベント・キューからすぐに取り出されて処理されるようにする。そのような優先度レベル調整は、実質的に、従来のチャンネル切替実現態様において顕著であったチャンネル切替待ち時間を減少させる。パケット及びチャンネル切替計画のために、タイマ・ロジック５２８は、パケット計画のためのタイマ・スレッドの満了／開始に応じて、パケット・バッファリング・ロジック５３０に特定の隣接ノード５０２にパケットを送信するよう通知する。（そのようなバッファリング・ロジックは、以下の「パケット・バッファリング・ロジックの例」と題された章で説明される）。もう一つの例において、チャンネル切替タイマが開始した際に、タイマ・ロジック５２８は、切替ロジック５２６に通知して、チャンネル切替命令／要求をＮＩＣドライバ５１８に（例えばＡＰＩ５３４を介して）送信させる。
データフロー例
図１０は、一つの実施の形態による、アドホック・ネットワーク用分散ＯＭＭＡＣのもう一つの例としてのノード構造を示す。具体的に、図１０は、パケット・ルーティング・ロジック、ＯＭＭＡＣ５１６のデータ面部及び制御面部、及びＮＩＣドライバ５１８の間の例としてのデータフローを示す。データ面は、パケット・バッファリング・ロジックを表す。そのようなパケット・バッファリング・ロジックは、図５において、パケット・バッファリング・ロジック５３０として示される。制御面は、図５に関して上述されたように、トラフィック測定ロジック５２２、情報交換ロジック５２４、分散一般計画及び切替ロジック５２６、及びタイマ・ロジック５２８を含む。従って、例示のために、図１０の態様は、図５の構成要素に関連して記載される。この説明において、要素参照番号の一番左の数字は「５」で始まるが、当該要素は図５において最初に導入されている。
【００４０】
図１０を参照して、ＯＭＭＡＣ５１６は、データ面及び制御面を備える。データ面は、データ・トラフィック矢印１００４に示すように、従来のパケット・ルーティング・ロジック１００２からパケットを受信する。データ面は、また、ＯＭＭＡＣ５１６の制御面部からメッセージ（例えば、ネゴシエーション・メッセージ、信号伝達メッセージ等）を受信する。（制御面からのメッセージは、制御面からデータ面へと左から右に向かった黒い（塗りつぶされた）矢印で表される。）図示されている通り、データ面分類ロジック１００６は、受信したパケット／メッセージ（まとめてパケットと呼ぶ）を、パケットの宛先と、パケットがホーム・チャンネルで通信されるべきか特定のゲスト・チャンネルで通信されるべきかとに基づいて、ノード宛先キュー１００８に入れる。そのような宛先キューは、例えば、「Ｄｅｓｔ−１〜Ｄｅｓｔ−ｎ」として、図１０に示される。ノード宛先及びチャンネル識別は、個々のパケット・ヘッダによって提供される。矢印１０１０は、ＮＩＣドライバ５１８（ＮＩＣハードウェア１０１２へのインターフェース）から入ってくる（アップリンク）メッセージを表す。図示されたように、ＯＭＭＡＣ５１６は、データを表す入ってくるメッセージを、ルーティング・ロジック１００２に転送する。ＯＭＭＡＣ５１６は、データではない入ってくるメッセージを、制御面に転送する。
【００４１】
上記部分に示された通り、ネットワーク・ノードのローカルＯＭＭＡＣ５１６は、対応するノードが定期的周期の期間に（当該期間の終わりに該ノードはホーム・チャンネルに戻る）ホーム・チャンネルから対応するゲスト・チャンネルに切り替えるようにポーリング・ポイントをトリガする、タイマ・ロジック５２８を含む。ノードのポーリング・ポイントは、他のノードによって提供されるトラフィック測定だけではなく、トラフィック測定ロジック５２２のトラフィック測定によって提供されるノードのトラフィックに基づく。このために、このノードは、自らの特定のトラフィック測定を他のノードと交換して、他のノードが自身のポーリング・ポイントを決定できるようにする。図１０の例において、制御面からデータ面への左から右への矢印はデータ・トラフィックを表し、少なくともその一部は、キューイング及びアドホック・ネットワーク内の他の各ノードへの通信のための、この特定のノードのトラフィック測定である。そのような通信は、矢印１０１４で示される。更に、上記部分に記載された通り、分散チャンネル計画ロジック５２６は、（例えば、グリーディ・アルゴリズムに基づいて）このノードのチャンネル切替時刻を計画し、チャンネル切替同期動作のために、これらの計画を他のノードに通信する。
パケット・バッファリング・ロジックの例
ここで、図１０のデータ面の動作（図５のパケット・バッファリング・ロジック５３０としても表される）を、更に詳細に説明する。パケット・バッファリング・ロジックは、アドホック・ネットワークにおける他のネットワーク・ノードへのパケット伝送のために、分類ロジック１００６及び制御面からのパケットをバッファする。この実現態様において、バッファリング・ロジック５３０は、優先度により分類された宛先キュー１００４にパケットをバッファする（そのような優先度による分類は、先入れ先出し分類ではなく、ＯＭＭＡＣ５１６及び／又は他のプログラム・モジュールの一つ又はそれ以上の各部分（例えば、タイマ・ロジック５２８）から提供される特定の優先度に基づくものである）。例えば、優先度キューにおいて、ＯＭＭＡＣ５１６は、上記のチャンネル切替要求のような信号伝達メッセージを、他のアプリケーション・トラフィックと関連するメッセージよりも高いそれぞれの優先度をもって提供する。
【００４２】
この実現態様において、例えば、各ノード５０２は、異なる時刻に計画された異なる宛先へのパケット伝送を制御するために、ノード及び隣接ごとの宛先キュー１００６を実現する。複数の隣接ノード・キュー１００６が、（例えばホーム・チャンネル上で）同時にアクティブ（例えば、アクティブなキューがトラフィック閾値を提示する）且つ有効である場合、パケットはラウンド・ロビン順位に従って扱われる。図示された通り、パケット・バッファリング及び計画ロジックは優先度キューを保持するが、ＮＩＣドライバ１１８又は対応するハードウェア１０１２はそうではない。これは、切替及び計画ロジック５２６が、対応するチャンネルが計画された通りに、全てのパケット転送時刻を制御することを可能とする。
【００４３】
ラウンド・ロビン順位に従ったパケット処理は、先出し先入れ（ＦＩＦＯ）計画に従ったパケット処理と異なる。これは、ノード５０２が異なるキューにおいて、個々の優先度に従ってパケットをバッファするためである。高優先度を有するキューは、低優先度を有するキューよりも、常に先に処理される。同じ優先度を有するキューは、ラウンドロビン計画よって処理される。ＦＩＦＯでは、パケットは到着時刻に従って処理される。逆に、この実現態様では、高優先度のパケットは、低優先度でキューされたパケットより後に到着したとしても、キューから処理される。ラウンド・ロビン動作は、また、ＦＩＦＯキュー処理動作とも異なる。例えば、キュー１及びキュー２が何らかの優先度を持っており、キュー１のパケット到着率がキュー２の２倍であると想定されたい。ＦＩＦＯでは、キュー１はキュー２のニ倍の機会を与えられるが、ラウンドロビンでは、キュー２と同じだけの機会を与えられる。
【００４４】
従来のチャンネル切替機構がチャンネルを切り替える際、ＭＡＣによってバッファされたパケット又はハードウェアにバッファされたパケットは、一般に、チャンネル切替の際に発生するハードウェア・リセットのために欠損する。更に、データ・スループット性能に割り当てられるＭＡＣ又はハードウェアのバッファ空間は、一般にサイズが限られており、しばしばバッファ・オーバーフロー状態を引き起こす。そのような従来システムの限界に取り組むために、パケット・バッファリング及び計画ロジックは、先に通信されたパケットがＮＩＣドライバ５１８によって処理された場合にのみ、ＮＩＣ５１８にパケットを送信する。この決定を提供するために、ＮＩＣドライバ５１８は、情報交換モジュール５２４に成功のステータスを通信する（アップリンク矢印１０１０参照）。情報交換モジュール５２４は、次に、当該ステータスをパケット・バッファリング及び計画ロジックに通信する。そのようなシナリオにおいて、先のパケットがＮＩＣドライバ５１８において保留されている場合、パケット・バッファリング及び計画ロジックは、そのような成功ステータスを受信するまで、任意の次のパケットを保持する。更に、この実現態様において、切替及び計画ロジック５２６は、タイマ・ロジック５２８を用いて、任意の計画されたチャンネル切替イベントの前にパケット排出時間を設定する。このパケット排出時間は、無線ＮＩＣハードウェア１００８に、任意のバッファされたパケットをチャンネル切替作業前に通信する時間を提供する。この実現態様において、パケット排出時間は１ｍｓである。
実現態様例
図１１は、一つの実施の形態により、アドホック・ネットワーク用分散ＯＭＭＡＣを実現するネットワーク・ノードに対する例としての実現態様１１００を示す。この特定の例は、ウィンドウズ・プロットフォームに実装されたローカルＯＭＭＡＣ５１６を備えるノード５０２（図５も参照されたい）を示す。この表現は例示のみを目的とするものであり、ローカルＯＭＭＭＡＣ５１６を実現する多くの可能なプラットフォームの中の、サンプルとしてのプラットフォームの一つに過ぎない。例えば、ノードのローカルＯＭＭＭＡＣ５１６は、Ｌｉｎｕｘプラットフォーム、ＵＮＩＸプラットフォーム等に実現されてもよい。図１１を参照して、この実現態様の積み重ねモジュールが、図１１において明るい影突きで示される。例えば、ＯＭＭＡＣ５１６は、ウィンドウズＸＰ（登録商標）プラットフォームにおけるＩＭ（インターメディア）ＮＤＩＳ（ネットワーク・ドライバ・インターフェース仕様）ドライバとして実現される。ＮＩＣミニポート・ドライバ５１８（図５も参照されたい）は、（ａ）（８０２．１１アドホック・ネットワークにおける全ノード５０２についてビーコンによって同期された）８０２．１１ＭＡＣ時刻を提供するインターフェース５３４（図５も参照されたい）、（ｂ）ＮＩＣドライバにおいてチャンネル切替要求を受信し返信するためのインターフェース５３４、及び（ｃ）等を提供する。コマンド・ライン・ツール１１０２は、ＯＭＭＡＣ５１６の行動を制御するためのユーザ・インターフェースを提供する。そのような行動には、例えば、チャンネル切替の周期時間、スロット・サイズ、監視時間のようなパラメータの変更及び／又はその他が含まれる。この例は、また、ユーザ空間で動作し、カーネル空間の「Ｗｉｎ  Ｓｏｃｋｅｔ」、「ＴＣＰ／ＩＰ」及び「ＮＤＩＳ」と通信して無線ＮＩＣと通信する「アプリケーション」を図示する。繰り返すが、これは、アドホック・ネットワーク用分散オーバレイ多チャンネルＭＡＣのためのシステム及び方法を実現する、ネットワーク・ノードの一つの例としての実現態様に過ぎない。
手順例
図１２は、一つの実現態様による、無線ネットワーク用分散オーバレイ多チャンネルＭＡＣの例としての手順１２００を示す。一つの実現態様において、手順１２００の動作は、図５のネットワーク・ノード５０２の各プログラム・モジュール５１０により実現される。例示及び説明のために、手順１２００の動作は、図５〜１１の構成要素及び様々な態様に関して説明される。この説明において、構成要素／動作（ステップ）の参照番号の最も左の１００から９９９の数字は、当該構成要素／動作が最初に導入された図を示す。同様に、構成要素／動作（ステップ）の参照番号の最も左の１０００及びそれ以上の２つの数字は、当該構成要素／動作が最初に導入された図を示す。
【００４５】
図１２を参照して、ブロック１２０２の動作は、アドホックな無線ネットワークにおけるネットワーク・ノードのためのホーム・チャンネル周波数（「ホーム・チャンネル」）を決定する。ブロック１２０４の動作は、ホーム・チャンネルと直交する一組のゲスト・チャンネル周波数（「ゲスト・チャンネル」）を特定する。ホーム及びゲスト・チャンネルは、無線ネットワーク・プロトコルによって提供される複数のチャンネル周波数から選択される（即ち、決定及び特定される）。そのような無線ネットワーク・プロトコルには、例えばＩＥＥＥ８０２．１１が含まれる。ブロック１２０６の動作は、アドホックな無線ネットワークの各ノードにより、ホーム・チャンネル上で、個々の可変且つ互いに重なり合う時間量において、他のネットワーク・ノードとのネットワーク接続性を保持するように動作する。ブロック１２０８の動作は、各ノードにより、アドホック・ネットワークのデータ・スループットをローカルで最適化するために、可変時間に渡り、ホーム・チャンネルから個々の割り当てられたゲストチャンネルに切り替えるか否か、及び、いつ切り替えるかを決定する。
【００４６】
図１３は、一つの実施の形態による、アドホック・ネットワーク用分散オーバレイ多チャンネルＭＡＣのもう一つの例としての手順を示す。ブロック１３０２の動作は、無線ネットワーク・プロトコルの定期的周期を２つの段階に分割する。２つの段階は、ノード接続性段階と、データ・スループット改善段階とを含む。定期的周期は、無線ネットワーク・プロトコルに従って各ネットワーク・ノードによって通信される周期的なビーコン・メッセージと関連する。一つの実現態様において、無線ネットワーク・プロトコルは、ＩＥＥＥ８０２．１１無線ネットワーク・プロトコルに基づく。
【００４７】
ブロック１３０４の動作は、接続性段階の期間に、複数の利用可能なチャンネル周波数のうちの単一のホーム・チャンネル周波数上で接続性を保持するように、アドホック・ネットワークの各ネットワーク・ノードを構成する。複数の利用可能なチャンネル周波数は、無線ネットワーク・プロトコルによって提供され、無線ネットワーク・プロトコルに従う。ブロック１３０６の動作は、接続性段階の期間に、少なくとも二つのノードを、ホーム・チャンネルと直交する複数のゲスト・チャンネルのうちの一つのゲスト・チャンネル上で通信するよう構成する。ブロック１３０８の動作は、各ネットワーク・ノードにより、接続性段階の期間にホーム・チャンネルを用いて、アドホック・ネットワークにおける各ノード間の接続性を保持する。ブロック１３１０の動作は、データ・スループット改善段階の期間に、ネットワーク・ノードの少なくとも一つのサブセットにより、一つ又はそれ以上の割り当てられた各ゲスト・チャンネルを用いて、アドホック・ネットワークにおけるデータ・スループットを最適化する。この方法では、アドホック・ネットワークにおけるネットワーク・ノードは、ノード対ノードのネットワーク接続性を保持し、アドホック・ネットワークの性能を改善する。
結論
上記では、構造的特長及び／又は方法上の手順又は動作に特化した言葉で、無線アドホック・ネットワーク用分散オーバレイ多チャンネルＭＡＣを説明したが、添付の特許請求の範囲によって画定される実現態様は、必ずしも説明された特定の特徴又は動作に限られない。例えば、ＯＭＭＡＣ５１６（図５参照）のチャンネル切替待ち時間は、非リアルタイムＯＳによって提供されるソフトウェア・タイマを、ハードウェア・タイマに交換することにより低減され得る。代わりに、代替の実現態様において、タイマの正確性は、ＯＳにリアルタイムのサポートを追加することにより向上する。従って、上記の無線アドホック・ネットワーク用分散オーバレイ多チャンネルＭＡＣの特定の特徴及び動作は、請求項に記載の発明を実現する例である。
【符号の説明】
【００４８】
１〜６  ノード
２０２、２０４、２０６  トラフィック・パターン
４０２、４０４、４０６、４０８、４１０  トラフィック・パターン
５００  システム
【図１】
0004723035.tif 000010
【図２】
0004723035.tif 000011
【図３】
0004723035.tif 000012
【図４】
0004723035.tif 000013
【図５】
0004723035.tif 000014
【図６】
0004723035.tif 000015
【図７】
0004723035.tif 000016
【図８】
0004723035.tif 000017
【図９】
0004723035.tif 000018
【図１０】
0004723035.tif 000019
【図１１】
0004723035.tif 000020
【図１２】
0004723035.tif 000021
【図１３】
0004723035.tif 000022