本発明は、無線通信を行う際の品質の良い通信経路を構築する技術に関する。
無線ネットワークにおいて、ノード間で動的に無線マルチホップネットワークを構成するアドホックネットワークという技術がある。アドホックネットワークでは、各ノードがパケットの中継機能を持ち、各ノードの経路表にしたがいパケットを送信/転送することでマルチホップ通信を行う。無線マルチホップネットワークにおいて、隣接ノード間の無線リンクの検知はルーティングパケットの交換により行われるが、リンクの無線状態は周囲の状況やノードの移動によって変化しており、ルーティングパケットの交換では通信品質の良くないリンクを使用するという課題があった。これに対し、隣接ノード間のリンクの品質をビット誤り率より判別し、隣接ノードとのリンク検知を行う技術がある。(特許文献1参照)
また、IETF(Internet Engineering Task Force)にから公表されている技術文書RFC3626(非特許文献1)に示されるリンクの安定性判別方法にリンクヒステリシス方式がある。これはリンクの無線状態が取得できない場合に、ルーティングパケットが間欠的に到着するリンクの安定性を判別する方式である。
また、無線LANでは受信電波強度に閾値を設定することが可能であり、受信電波強度が閾値以下であるパケットは破棄する仕組みが存在する。
一方で、無線の通信方式が複数の通信レートに対応している場合があり、特定のレートに固定して通信を行うと、潜在的な帯域を利用できなかったり(低レートで通信した場合)、電波状態の悪い無線リンクでは通信が不安定になったり(高レートで通信した場合)するという課題があった。これに対し、データを送信する無線端末が、通信のエラー率により通信レートを動的に変更するARF(Auto Rate Feedback)という方式があり(非特許文献2)、無線LANでは標準で組み込まれている。また、RTSパケットを受信した無線端末が受信電波の信号対雑音比をもとに通信レートを決定し、CTSパケットにより送信端末に通信レートを指示する方式も存在する。(非特許文献3)
特開2005-523619号公報
T. Clausen, P. Jacquet, "Optimized Link State Routing Protocol (OLSR)" 2003/10
A. Kamerman and L. Monteban, "WaveLAN-II: A high-performance wireless LAN for the unlicensed band," Bell Labs Technical Journal,pp. 118-133, Summer 1997
G. Holland, N. Vaidya and P. Bahl, "A Rate-Adaptive MAC Protocol for Multi-Hop Wireless Networks," Proc. of ACM MOBICOM, Rome, July 2001.
特許文献1では、アドホックネットワークの構築にIETFにおいて標準化されているプロトコルを使用することが考慮されていないため、ルーティングプロトコルを設計する必要があり、標準プロトコルとの相互接続性がないという課題があった。
非特許文献1のリンクヒステリシス方式は、定期的にルーティングパケットが到着している場合、安定したリンクと判定しており、電波状態の変化が考慮されていない。
無線LANにおいて受信電波強度に閾値を設定した場合、ユーザーデータのパケットが受信ノードにおいて受信できていても、電波強度が閾値を下回ると破棄されてしまいパケットの損失につながっていた。
非特許文献2のARFは、通信エラー率により通信レートを制御するため、実際にエラーが発生してからでないと適応できないという遅延の問題があった。また、通信が連続して成功すると通信レートを上げるため、頻繁に通信レートが変更され通信が安定しなかった。
非特許文献3のRBARは、送信直前の電波状態をもとに通信レートを設定することができるため、安定した高レート通信を提供することができると考えられるが、無線LANの規格である802.11と異なるプロトコルになるため、標準プロトコルとの相互接続性がないという課題があった。
本発明の目的は、標準プロトコルとの相互接続性を保ったまま、電波の状態を鑑みたノード間の安定なリンク検知を行い、ユーザーデータのパケット損失減少かつスループット向上を実現させるアドホックネットワーク構築方法、プログラム、無線端末を提供することにある。
上記目的を達成するため、本発明においては、複数の無線端末が送受信するデータを中継する無線端末において、アドホックネットワークを構築するためのルーティングパケットをルーティングプロトコルのソフトウェアが処理する前に、送信元である無線端末との間の隣接ノード間リンクの安定判断を行い、安定と判断された場合にのみ、ルーティングプロトコルのソフトウェアがルーティングパケットを処理するよう構成することで、安定な隣接ノード間リンクのみを使用して経路を構築するアドホックネットワーク構築方法を提供する。また、無線の通信方式が複数の通信レートに対応していた場合は、上記無線リンクの安定判断で安定と判断された際に、その安定度によって通信レートを動的に変更することにより、安定かつスループットの高いアドホックネットワーク構築方法を提供する。
また、本発明においては、無線通信インターフェース部と記憶部とこれらと電気的に接続された処理部とから構成され、他の無線端末からのデータを中継する無線端末の処理部において実行されるプログラムとして、無線リンクの安定状況を判断するステップと、無線リンクが安定と判断した場合に、ルーティングパケットを用いてルーティングプロトコルを実行させるステップと、通信レートを設定するステップからなるアドホックネットワーク構築プログラムを提供する。
更に、本発明においては、他の無線端末からのデータを中継する無線端末であって、無線通信インターフェース部と、隣接ノード間の無線リンクの安定状況を測定する安定化プログラムとルーティングパケットを用いて経路を構築するルーティングプロトコルとを記憶する記憶部と、記憶部に記憶された安定化プログラムとルーティングプロトコルとを実行する処理部とからなり、この処理部は、安定化プログラムを実行し、その結果、隣接ノード間の無線リンクが安定と判断した場合に、ルーティングパケットを用いてルーティングプロトコルを実行する無線端末を提供する。
なお、無線リンクの安定状況を判断するにあたっては通信品質を測定するが、好適には電波強度をこの通信品質の評価値と用いるが、これに限定することなく、信号対雑音比、ビット誤り率等を評価値として用いても良い。また、無線リンクの安定性を判断するために、好適にはルーティングパケットを用いると良いが、ルーティングパケット以外のパケットで行っても構わない。ルーティングパケット以外のパケットには例えば無線LANのコントロールパケットであるビーコンパケットやユーザーデータの通信パケット等があり、これらパケットの一部もしくは全てを使用することも可能である。
更に、このようにして求められた通信品質の評価値に従い、リンク品質値を決め、このリンク品質値が設定された閾値を上回った場合にリンク有効設定を行い、リンク品質値が他の閾値を下回った場合にリンク無効設定を行うよう構成し、リンク有効設定の場合にのみ、ルーティングパケットを受信してルーティングプロトコルへ渡し、リンク無効設定の場合にルーティングパケットを破棄するよう構成することもできる。
本発明によれば、アドホックネットワークにおいて標準プロトコルとの相互接続性を保ち、高品質かつ高スループットの得られる通信経路を構築することができる。
以下、本発明の具体的な実施例を図面を用いて説明する。
図1は本発明のアドホックネットワークにおけるネットワーク安定化方式の第一の実施例を説明するための図である。
図1において、無線端末1−3は、互いに通信可能であるが、端末1と端末3との間は電波強度が弱い、もしくは、パケット損失率が高い不安定な無線リンク4で結ばれており、端末1と端末2の間は電波強度が高い、もしくはパケット損失率が低い安定した無線リンク5で、端末2と端末3との間は電波強度が高い、もしくはパケット損失率が低い安定した無線リンク6で結ばれている。
無線端末1−3のハードウェア構成の一実施例を図7に示す。同図で700は各無線端末1−3を示す。無線端末700は、処理部(CPU) 701、記憶部(メモリ)702と無線通信インターフェース部(無線LANI/F)703 を具備しており、無線LANI/F703はアンテナ704と接続している。無線端末700は無線LANI/F703とアンテナ704を用いてパケットの送受信を行うことができる。本実施例では、無線端末700において、無線通信インターフェース部は1つしか装備していないが複数装備することも可能である。
以下の説明における各無線端末700の処理は、上記CPU 701がメモリ702に格納されているプログラムを実行することにより、実現されるものである。プログラムは、あらかじめ、メモリ702に格納されていても良いし、当該端末700が利用可能な、着脱可能な記憶媒体、または通信媒体(有線、無線、光などのネットワーク、または当該ネットワーク上の搬送波やデジタル信号)を介して、必要に応じてメモリ702に導入されてもよい。
一般に、アドホックネットワークにおいて、上述した無線リンクの検知はルーティングパケットの中のHELLOメッセージと言われるパケットの交換により行われる。HELLOメッセージの交換が、図1に示す不安定な無線リンク4を介して行われると、ルーティングプロトコルにおいて無線端末1と無線端末3間で直接通信することが可能と判断され、無線端末1から無線端末3へ送られるパケットは不安定な無線リンク4を使用して行われる。
このためパケットの損失が起こる可能性が高く通信品質が劣化することになる。本実施例では、まず不安定な無線リンク4をルーティングパケットを用いて検知し、不安定な無線リンクを通信経路として使用可能な無線リンクから排除する。つまり、無線端末1から無線端末3へ送られるパケットは、安定な無線リンク5を介し無線端末2に送られ、無線端末2は安定な無線リンク6を介しパケットを無線端末3へ転送することで、パケット損失率の高い無線リンク4を通らず、高い通信品質を保つことが可能となる。
図2は本実施例のレイヤー構造を示す。なお、本実施例では無線端末間通信で使う通信を無線LANとして説明するが、通信方式は無線端末間で通信することができればよく、無線LANによる無線通信に限定するものではなく、赤外線通信などの無線通信であっても良い。
さて、無線端末21、22の中にルーティングプロトコル23、26が実装され、ルーティングプロトコルは無線LAN25、28を介しルーティングパケットを交換する。本実施例において、交換されるルーティングパケットはルーティングプロトコル23、26に渡される前に、安定化ソフトウェア24、27に渡され、無線端末21と無線端末22の間の無線リンクの安定状況を安定化ソフトウェア24、27で判断し、安定と判断されたパケットがルーティングプロトコル23、26に渡される。例えば、無線端末21から送信されたルーティングパケットは、無線端末21の無線LAN25より送信され、無線端末22の無線LAN28により受信される。受信されたパケットは安定化ソフトウェア27に渡され、安定化ソフトウェアは受信したルーティングパケットの送信元である無線端末21との無線リンクの通信品質により、安定もしくは不安定の判断を行い、安定と判断されたパケットはルーティングプロトコル26へと渡される。
ルーティングプロトコル23からのパケットの流れを番号29に示す。ルーティングプロトコル26からのルーティングパケットも同様に無線端末21の安定化ソフトウェア24により安定もしくは不安定の判断を行い、安定と判断されたルーティングパケットのみルーティングプロトコル23に渡される。ルーティングプロトコル23、26の前に、安定化ソフトウェア24,27をはさむことで、不安定な無線リンクを経由するルーティングパケットをルーティングプロトコル23、26が受信することがなくなり、ルーティングプロトコル23、26により構築される通信経路に不安定なリンクが含まれない。また、安定化ソフトウェア24、27に送られるパケットは、本実施例においては、ルーティングパケットのみであり、その他の通信パケットは安定化ソフトウェア24、27に送られない様に構成する。
なお、先にも述べたように、無線LANにおいて、設定された電波強度が閾値以下のパケットを破棄することも可能であるが、これは全ての通信パケットに適用されてしまい、ルーティングプロトコル以外のユーザーデータの通信パケットの損失につながる。なお、ルーティングプロトコルより送信されるルーティングパケットは無線LANより送信される前に、安定化ソフトウェアで処理される必要はないことは言うまでも無い。
さて、本実施例におけるルーティングパケットの特定方法は例えば次のよう構成する。すなわち、ルーティングパケットは、図11に示すUDPヘッダB01内の宛先ポート番号B02を用いて識別可能になる。例えばOLSRであれば698がIANA(Internet Assigned Number Authority)により割当られており、他のプロトコルやユーザーデータのパケットと識別可能である。
このルーティングパケットをルーティングプロトコルに渡す前に安定化ソフトウェアに渡す方法の一例として、無線端末21、22などの各ノードのオペレーティングシステムがLinuxであった場合には、netfilter project、[online]、 [2006年6月27日検索]、インターネット<URL; http://www.netfilter.org/>より提供されているソフトウェアiptablesを使用することにより可能となる。iptablesにおいて、指定したルールにマッチする受信パケットをユーザー空間に受け渡すことが可能である。ルーティングパケットをマッチするために、プロトコルにUDPを指定し、宛先ポートに698を指定することでOLSRのルーティングパケットのみをユーザー空間に受け渡す。本実施例における安定化ソフトウェア24、27では、受け渡されたパケットを受信するためのソケットを用意することでiptablesがマッチさせたパケットを受信することが可能となる。なお、ソケットもnetfilter projectより提供されているライブラリlibipqを使用することで可能である。更に、安定化ソフトウェア24、27にて、iptablesより渡されたパケットをルーティングプロトコルに渡す、もしくは、破棄するといった操作もlibipqを使用することで可能である。
次に、図3に本実施例の安定化ソフトウェア24、27における電波強度を用いた安定判定アルゴリズム1を示す。安定を判断する閾値はあらかじめ設定されているとする。ルーティングパケットを受信したとき(301でyes)、前記ルーティングパケットの送信元との電波強度が安定閾値以上であるか調べ、安定閾値以上(302でyes)の場合、パケットを通過(303)させルーティングプロトコルにパケットを渡す。前記電波強度が安定閾値以下(302でno)の場合、パケットは破棄(304)されルーティングプロトコルにパケットを渡さない。
電波強度の取得方法の一例はオペレーティングシステムがLinuxである場合、Wireless Tools for Linux、[online]、 [2006年6月27日検索]、インターネット<URL; http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html>というソフトウェアに含まれるiwspyというソフトウェアで送信元MACアドレスを指定することで取得可能である。またiwspyが使用しているライブラリlibiwを使用して安定化ソフトウェアに電波強度を取得する関数を実装することも可能である。
図3に示す安定判定アルゴリズム1で不安定なリンクを排除することが可能となるが、設定した無線端末間の無線リンクの電波強度が設定した閾値に近い場合、前記無線リンクの電波強度が時間により揺らぐために、受信したルーティングパケットの安定、不安定判定が揺らぎ、ルーティングパケットを通過させたり、破棄したりしパケットの間欠的な到着が起こる。これにより通信経路の頻繁な変更が発生しパケット損失の可能性がある。
なお、上述したOLSRのリンクヒステリシス方式では無線リンクの使用可否をリンク品質とリンク有効フラグで判断する。リンク品質には上位閾値と下位閾値が設定されており、ルーティングパケットが到着するとリンク品質が上昇する。リンク品質が上位閾値を上回るとリンク有効フラグが設定される。一方、ルーティングパケットの到着時刻になってもルーティングパケットが到着しない場合は、リンク品質が下がる。リンク品質が下位閾値を下回るとリンク有効フラグが取り消される。リンクが有効な期間はリンク有効フラグが設定されている間のみとなる。このリンクヒステリシス方式では、無線端末が移動するなどして無線リンクの状態が良くなった場合にもリンクが有効になるまでリンク品質が上位閾値を上回るまでルーティングパケットが連続して到着する必要があり、リンクが有効になるまで時間がかかる。また、移動などにより無線リンクの状態が悪くなった場合にも、リンク品質が徐々に下がるためリンクが無効になるまで時間がかかり、通信経路として不安定なリンクを使用することになる。
これに対し、ルーティングパケットの受信の際の受信電波強度によりリンクの品質の上昇率を変化させることで、無線リンクの状態が移動などにより良くなった場合にリンクが有効になるまでの時間を短縮することが可能となる。移動等により、無線リンクの状態が悪くなった場合、ルーティングパケットを受信しても電波強度によりリンク品質を下げることを行い、さらに電波強度によりリンク品質の下降率を変化させることで、リンクを無効にする時間を短縮することが可能となり、不安定なリンクを通信経路として使用する時間が短縮出来る。これを安定化アルゴリズム2とする。また、各無線端末では無線リンクの状態をリンクテーブルとして保持する。無線端末1のリンクテーブルの例を図8に示す。
列801に対向する無線端末のMACアドレスもしくはIPアドレスなど対向する無線端末の送信インターフェースを特定する情報を格納する。列802には対向する無線端末からのルーティングパケットを受信する無線LANインターフェースを格納する。列803に現在のリンク品質を格納し、列804にリンク有効フラグを格納する。リンクが有効であれば1をセットし、リンクが無効であれば0をセットする。列805にタイムアウトまでの残り時間を格納する。行806に無線端末2との間のリンク情報を格納し、行807に無線端末3との間のリンク情報を格納する。
次に、上述した安定化アルゴリズム2を、図4、図5を用いて説明する。
図4の縦軸410は電波強度を示し、横軸411は時刻を示す。曲線404は時間による無線リンクの電波強度を示している。ルーティングパケットの受信した時点の電波強度を点405−409で示し、時刻をt1-t5で示す。リンク品質の上昇率の変化を2段階に設定する。受信電波強度が通常閾値402以上の場合リンク品質が上昇する。さらに上位閾値401以上の場合、リンク品質が最高値になるとする。受信ルーティングパケットの電波強度が通常閾値を下回る電波強度の場合、リンク品質が下降する。さらに下位閾値403を下回る場合、リンク品質は最低値に設定する。
図5の縦軸501はリンク品質を示し、横軸502は時刻を示す。リンクの品質は0−1の範囲の値で示し、1が最高値508であり、0が最低値502であるとする。リンク品質が上位閾値509を上回ると、リンク有効フラグが設定される。リンク品質が下位閾値510を下回るとリンク有効フラグが解除される。リンク品質の初期値503は0.5であるとする。ルーティングパケットの到着によるリンク品質の変化を説明する。時刻t1では電波強度405が上位閾値以上であるために、リンク品質を最高値まであげ、リンク有効フラグが設定されルーティングパケットを通過させる。時刻t2にでは電波強度406は通常閾値以上であるので、リンク品質を上昇させるがリンク品質はすでに最高値であるためにリンク品質は最高値505であるとする。時刻t3では電波強度407は通常閾値以下であるので、リンク品質をさげる。下降率は任意に設定できるが、ここではリンク品質の30%下がるとする。このときにリンク品質は1であるので、下降後のリンク品質は0.7とする。
リンク品質は上位閾値を下回るがリンク有効フラグが設定されているため、ルーティングパケットは通過させる。時刻t4では電波強度408は下位閾値以下であるので、リンク品質を最低値までさげ0とする。このとき、リンク品質は下位閾値を下回るのでリンク有効フラグを解除し、ルーティングパケットを破棄する。時刻t5では電波強度409は通常閾値以上、上位閾値以下であるため、設定した上昇率に従いリンク品質を上昇させる。上昇率も任意に設定できるが、ここでは一定で0.4あがるとする。他には新しいリンク品質=リンク品質×上昇率+定数とすることも可能である。時刻t5ではリンク品質は上位閾値を上回っておらずリンク有効フラグも設定されていないため、ルーティングパケットは破棄する。このアルゴリズムに従うと、時刻t1-t3のルーティングパケットは通過させ、時刻t4,t5のルーティングパケットは破棄される。
次に、図6に安定化アルゴリズム2のアルゴリズムのフローチャートを示す。601〜621はフローチャートの各ステップを示している。
リンクの品質を低下させる要因に電波強度が通常閾値より低いルーティングパケットが到着することに加え、ルーティングパケットの損失を考慮しルーティングパケットが設定時間内に到着しない場合はリンクの品質をさげるタイムアウトを考慮する。リンクテーブルの列805の残り時間がなくなりルーティングパケットのタイムアウトが発生(601でyes)すると、当該リンクのリンク品質803を低下させ(603)、リンク品質の下位閾値を下回る(604でyes)と、リンク有効フラグ804を解除しリンクを無効にする(605)。リンク品質803がリンク品質の下位閾値を下回らない場合(604でno)、リンク有効フラグ804は変化させず、ステップ601に戻る。ルーティングパケットのタイムアウト前に(601でno)ルーティングパケットを受信した場合(602でyes)、リンクテーブルに送信元と受信インターフェースが一致する当該リンク情報があるかチェックし(620)、リンク情報がなかった場合(620でno)はリンクテーブルにリンク情報を追加する(621)。リンクテーブルにリンク情報があった場合(620でyes)、当該無線リンクの電波強度を調べ電波強度が上位閾値以上(606でyes)であれば、リンク品質803を最高値の1に設定し(608)、リンク有効フラグ804を設定する(619)。
電波強度が上位閾値を下回っており(606でno)、さらに下位閾値も下回っていれば(607でyes)リンク品質803を最低値の0に設定し、リンクの有効フラグ804を解除しリンクを無効に設定(616)し、受信したルーティングパケットは破棄する(617)。電波強度が下位閾値を下回っておらず(607でno)、通常閾値以上の(609でyes)場合、リンク品質803を上昇させる(610)。リンク品質が上位閾値以上(611でyes)であれば、リンク有効フラグ804を設定する(619)。リンク品質が上位閾値を下回っていれば(611でno)、設定されているリンク有効フラグ804をチェックし(614)、リンク有効であれば(614でyes)パケット通過(618)、リンク無効であれば(614でno)パケットを破棄する(617)。電波強度が通常閾値を下回っていれば(609でno)、リンク品質を低下させ(612)、リンク品質803が下位閾値を下回っていないかチェックする(613)、リンク品質803が下位閾値以下であれば(613でyes)、リンクを無効に設定し(616)、パケットを破棄する(617)。リンク品質803が下位閾値以上(613でno)であれば、リンク有効フラグ804をチェックし(614)、リンク有効であれば(614でyes)パケット通過(618)、リンク無効であれば(614でno)パケットを破棄する(617)。
以上によりアドホックネットワーク内から不安定な無線リンクを排除し、パケット損失の少ない安定した通信経路の構築が可能となり、頻繁な経路の変更によるパケットの損失を減らすことが可能となる。また、無線端末が移動した場合、通信が断絶するまえに通信の劣化を検知し、新しい通信経路に切り替えることが可能となるため通信切り替え時のパケットの損失を減らすことが可能となる。
アドホックネットワークを構成するすべての無線端末に前記安定化方式を採用することができない場合がある。例えば、無線端末が無線電波強度を取得することが出来ない場合や、無線端末のオペレーティングシステムにルーティングパケットをルーティングプロトコルに渡す前に安定化ソフトウェアに渡す機能が実装されていない場合などである。また、OLSRでは無線端末毎にWillingnessという値を設定することが可能であり、Willingnessの値により、通信経路における中継端末へのなりやすさを変更することが可能である。
そのため、安定化方式が使用できる端末とできない端末でWillingnessの値を変更し、Willingnessにより中継端末へのなりやすさを変更することにより、パケット損失の少ない安定した経路を選ぶことが可能となる。
図9を用いて安定化方式が使用できる無線端末と使用できない無線端末が混在してアドホックネットワークを構築する場合の経路選択方法を第二の実施例として説明する。無線端末901−905がアドホックネットワークを構成している。無線端末903は上述してきた安定化方式を使用することが可能な端末で、他の無線端末は安定化方式が使用していないとする。無線端末901と無線端末902は無線リンク906で通信可能であり、無線端末902と無線端末904は無線リンク908で通信可能である。無線端末904と無線端末905は無線リンク910で通信可能であるとする。通信経路として使用される無線リンクは通信可能な無線端末双方で有効な無線リンク、いわゆる両方向リンクである場合、安定化方式を使用している無線端末903と安定化方式を使用していない無線端末902、905との間の無線リンク907、909は無線端末903の安定化方式により安定と判断している無線リンクであれば安定した両方向無線リンクである。無線リンク907、909が無線端末903の安定化方式により安定と判断していない無線リンクであれば、無線端末903で受信された無線端末902、905からのルーティングパケットは破棄されるため、両方向リンクは確立されず、無線リンク907、909は通信経路として使われることはない。このため、一つの無線リンクの安定性を判断するためには無線リンクの両端の無線端末のどちらかにおいて、安定化方式が使用できれば無線リンクの安定性を判断することが可能である。
図9において無線リンク907、909は信頼できる安定した無線リンクであり、無線リンク906、908、910は安定性が不明な無線リンクである。無線端末903のWillingness値を上げ、中継装置のなりやすさを安定化方式を使用していない無線端末より上げておくことにより、安定した無線リンクと安定性が不明な無線リンクが通信経路の候補にあった場合、安定した無線リンクを選択するようになり、パケットの損失を減らすことが可能である。
安定化方式を使用するとリンク品質の良くない不安定なリンクの受信ルーティングパケットを破棄するため無線端末の通信範囲が狭くなるという課題がある。アドホックネットワークにおいて、安定なリンクのみを使用して全ての無線端末との間に通信経路が構築できればよいが、必ずしもそうでない場合もある。例えば図9において、無線端末901−905で安定化方式を使用しているとし、無線リンク906が不安定リンクであったとする。このとき無線端末901はどの無線端末とも無線リンクを確立することができず、他の無線端末と通信することができない。このとき、無線端末901と無線端末902において、無線リンク906に関する電波強度の閾値を下げることにより、無線リンク906を通信経路として使用し無線端末901との通信が可能となる。無線端末902において、すべての無線リンクに関する電波強度の閾値を下げてしまうと、他の無線リンク907、908の前記閾値も下がってしまい不安定なリンクを通信経路で使用する可能せいがある。これを防ぐために、前記閾値を下げるのは、他に通信経路が存在しない無線リンクのみとすることで通信経路の安定性を保つ。
無線端末901との通信を可能とする方式を図9と図10を用いて説明する。図10は図8のリンクテーブルを拡張したものである。列A06に電波強度の上位閾値を格納し、列A07に電波強度の通常閾値を格納する。さらに列A08に電波強度の下位閾値を格納する。
図10は無線端末902のリンクテーブルの例である。行A09に無線リンク907の情報が格納されており、行A10に無線リンク908の情報が格納されている。行A11に無線リンク906の情報が格納されている。
ルーティングプロトコルによって構築された通信経路は各無線端末のルーティングテーブルに記載されている。無線端末902において、無線端末901からのルーティングパケットを受信したとき、無線端末902のルーティングテーブルをチェックし、ルーティングパケットの送信元である無線端末901のアドレスがルーティングテーブルに記載されていない場合、無線端末901は代替経路が存在しない無線端末と考えられるので行A11の通常閾値と下位閾値を下げる。これにより、無線端末901からのルーティングパケットはルーティングプロトコルに渡される。同様に無線端末901においても、無線端末902からの受信ルーティングパケットに対する通常閾値と下位閾値をさげることによって、ルーティングプロトコルにルーティングパケットが渡され、双方向リンクが確立することが可能となり通信経路が構築され、通信が可能となる。通常閾値と下位閾値をさげたままにしておくと、無線端末901と無線端末902の間に別の無線端末を介する安定な代替経路が使用可能になっても、不安定な直接リンクを通信経路として選択する可能性があるため一度引き下げられた通常閾値と、下位閾値は設定した時間を経過すると元の設定された閾値に戻る。
このとき直接リンクが安定リンクではない場合、ルーティングテーブルより無線端末901宛の経路は一旦削除されるが、安定した代替経路が存在する場合は、通信経路が安定な通信経路に切り替えることが可能となり、ルーティングテーブルに再度登録される。この後、無線端末901とのリンクが不安定なまま無線端末901からのルーティングパケットを受信した場合には、無線端末901はすでにルーティングテーブルに記載されているので、通常閾値と下位閾値をさげることなく、ルーティングパケットを破棄する。
なお、第二の実施例のリンクの安定性判定において、第一の実施例で説明した図6に示すアルゴリズムを使用することも可能であるし、図3に示すアルゴリズムを使用することも可能であることは言うまでもない。
また、第一、第二の実施例では、無線リンクの安定性の判断を、ルーティングパケットを使用して行ったが、無線リンクの安定性の判断をルーティングパケット以外のパケットで行っても構わない。ルーティングパケット以外のパケットには例えば無線LANのコントロールパケットであるビーコンパケットやユーザーデータの通信パケット等があり、無線リンクの安定性の判断にはこれらパケットの一部もしくは全てを使用することが可能である。受信もしくは破棄の対象となるパケットは、無線リンクの安定性の判断をルーティングパケット以外のパケットで行う場合でも、ルーティングパケットのみであり、処理は第一の実施例で説明した方法と同様にiptablesを使用し、安定化ソフトウェアに送りlibipqを使用し受信もしくは破棄の処理を行う。
例えば、図3における処理302の際に参照する電波強度をルーティングパケットの電波強度ではなく、参照する直前に受信した無線LANのビーコンパケットもしくはユーザーデータのパケットなどの電波強度とすることが可能である。また、図6で示される安定化判断アルゴリズムにおいても、ルーティングパケット以外のパケットを用いることが可能である。処理601と処理602において、無線LANのビーコンパケットとユーザーデータパケットのどちらか一方もしくは両方を使用しても構わない。
第三の実施例では、無線の通信方式が複数の通信レートに対応していた場合のネットワーク安定化方式を、図12を用いて説明する。
図12において、無線端末C01-C06でアドホックルーティングプロトコルが動作している。無線リンクC07-C13で通信が可能であるが、無線リンクC07とC13は受信電波強度が低い。
アドホックネットワーク上でより高いスループットを得るためには、より高いレートで通信を行うようにすればよい。ところが、一般的に、同一の通信チャネルを使用した場合、通信レートの高い方が雑音に対して弱くなるため、低レート通信で安定して通信できる範囲に比べ、高レート通信で安定して通信できる範囲は狭くなる。上述した安定化アルゴリズムの閾値調整により、高レート通信においても安定した通信経路を確保することは可能であるが、通信範囲が狭まるため、実施例2でも述べたようにアドホックネットワークが分断されてしまう可能性がある。例えば、図12で受信電波強度が十分にない無線リンクC07やC13が削除されると、無線端末C01-C03と無線端末C04-C06が相互に通信できなくなる。また、他に通信経路が存在しない不安定な無線リンクの閾値を選択的に下げることで接続性を保ち、ネットワークの分断を防ぐこともできるが、不安定な無線リンク上で高レート通信を行うと、エラー率が高くなり通信を正常に行えない可能性がある。
そこで、安定化ソフトウェアは、受信したルーティングパケットの送信元である無線端末との無線リンクの通信品質により、当該無線リンクを安定した通信が可能な最大の通信レートに設定する。安定化ソフトウェアは、図13に示すような無線の通信レートと電波強度の閾値の対応表を内部的に持つ。ルーティングパケットを受信した際は、当該無線リンクの電波強度が対応表の閾値を超える最大の通信レートに設定する。例えば、図12の各無線リンクの電波強度が図14のようになっていた場合、無線リンクC08-C12では11Mbpsの通信レートに設定され、無線リンクC07とC13はそれぞれ5.5Mbps、2Mbpsに設定される。ここでは各通信レートにつき一つの固定的な閾値を持つものとして扱っているが、先に述べたように上位閾値・下位閾値の複数閾値による判断や、閾値の動的な設定も可能である。また、既存の無線LANドライバでは、無線リンクごとに通信レートを設定することはできず、一つの無線インターフェースで共通の通信レートを設定するしかないことが多い。無線リンクごとに通信レートを設定できない場合は、各無線インターフェースの通信レートを、構成している無線リンクの通信レートの最小値に設定する。先の例では、無線端末C02では、11Mbpsの無線リンクC09、5.5Mbpsの無線リンクC07、2Mbpsの無線リンクC13を有しているので、無線端末C02の無線インターフェースの通信レートは2Mbpsに設定されることになる。これを安定化アルゴリズム3とする。
図15に安定化アルゴリズム3のフローチャートを示す。F01-F14はフローチャートの各ステップを示している。
ルーティングパケットのタイムアウトの監視(F01)からリンクテーブルの作成までの処理(F01-F04)は、上述した安定化アルゴリズム2の処理(図6)とほぼ同じであり、異なるのは電波強度の閾値判定以降の処理である。無線インターフェースの通信レートを決定する際に、各無線リンクの最適な通信レートが必要となるので、無線リンクの状態を管理するリンクテーブルに最適通信レートの算出結果を管理する領域を追加する。本アルゴリズムにおいて、閾値判定のフェーズに入ると、まず電波強度が最低レート通信の閾値を超えているかどうかを調べ(F05)、もしも閾値以下だったら(F05でno)算出レートを無効値にセットし(F07)、パケットを破棄する(F14)。ルーティングパケットのタイムアウトが発生した場合(F01でyes)も、同じ処理が施される。最低レートの閾値を超えていた場合は(F05でyes)、通信レートと電波強度閾値の対応表から最適な通信レートを算出し、当該リンクテーブルに記録する(F06)。次に、記録した算出レートと現在の無線インターフェースの通信レートを比較し(F08, F10)、算出レートの方が下だった場合は(F08でnoかつF10でyes)、通信レートを下げる(F12)。一方、算出レートの方が上だった場合は(F08でyes)、全リンクテーブルの算出レートをチェックしてすべてが無効値であるか設定値よりも上だったら、通信レートを上げる。そして、閾値判定及び通信レート設定のステップが終了したら、このパケットを通過させる(F13)。
図12において具体例を示す。図19は、各無線リンクの電波強度が図14のようになっていた場合に図13の閾値表に従って構築された、無線端末C02のリンクテーブルを表している。図8で示した安定化アルゴリズム2におけるリンクテーブルに対して、この安定化アルゴリズム3のリンクテーブルでは、最適通信レートの算出結果を記録する領域が追加されている。例えば、現在の通信レートが11Mbpsに設定されており、無線端末C01からルーティングパケットを受信したものとする。まず図13の閾値表に従って最適な通信レート2Mbpsを算出し、リンクテーブルに記録する(F06)。これは現在の通信レートの設定値11Mbpsよりも低いので(F08でnoかつF10でyes)、通信レートを2Mbpsに設定し(F12)、パケットを通過させる。次に無線端末C04からルーティングパケットを受信した場合、通信レートを算出すると5.5Mbpsとなり、現在の通信レートの設定値2Mbpsよりも高くなるが(F08でyes)、リンクテーブルを参照すると無線端末C02の算出レートが2Mbpsとなっているので(F09でno)通信レートを変更しない。このように他の無線端末の履歴も参照して通信レートを設定するため、通信レートが必要以上頻繁に変更されることはない。
この安定化アルゴリズム3は、受信電波強度に従って通信レートを適応させることにより、安定かつ連結したアドホックネットワークを構築することができる。だが一方で、一つでも不安定なリンクがあると通信レートが低下してしまうため、スループットの観点から効率的な経路を構築できないことがある。例えば、図12において図13の閾値表に基づき各無線端末の通信レートを設定すると、図16で示すようになる。だが、無線リンクG07は、安定した代替経路(G08,G09)が確保されているので、通信レートを下げてまで構築する必要はない。実際、無線リンクG07を構築しなかった場合は、各無線端末の通信レートは図17で示されるようになり、無線端末H01と無線端末H02の通信レートが向上する。そこで、送信元に対して適切な代替経路が存在する場合に限り、ルーティングパケットを破棄するようにする。代替経路の存在の判断は、実施例2で述べたように、ローカルのルーティングテーブルをチェックすることにより実現される。無線リンクが削除されるのは、代替経路が存在する場合に限定されるので、この処理によりアドホックネットワークの分離が新たに発生することはない。これを安定化アルゴリズム4とする。
図18は、安定化アルゴリズム4において、図15の安定化アルゴリズム3に加える修正部分を示したものである。図15のF10とF12のステップの間に、代替経路の存在をチェックするI15とI16のステップを加えてある。まず、算出レートが現在の設定値よりも下である(F10でyes)ということは、このルーティングパケットの送信元との無線リンクが他の無線リンクに比べて不安定であるということを示している。そこで、ルーティングパケットの送信元に対する有効な経路がルーティングテーブルに含まれているかをチェックする(I15)。含まれていない場合(I15でno)は、代替経路がないことを意味するので、通信レートを適切に下げ(F12)、ルーティングパケットを通過させる。有効経路が含まれていた場合は(I15でyes)、そのホップ数が2以上であれば(I16でyes)、代替経路が存在し使用中であることを意味しているので、ルーティングパケットを破棄する。それ以外の場合は(I16でno)、この無線リンクを現在使用していると考えられるので、通信レートを適切に下げ(F12)、ルーティングパケットを通過させる。
例えば、図12において電波状態が悪い無線リンクC07と無線リンクC13がまだ接続されていない状態を考える。このときの無線端末C02のルーティングテーブルは図20に表されるようになり、各端末の通信レートは11Mbpsとなる。ここで無線端末C04からルーティングパケットを無線端末C02が受信すると、通信レートの算出結果が5.5Mbpsとなり、現在の設定値よりも下になる。そこで、当該パケットの送信元である無線端末C04に対する有効経路がルーティングテーブルに含まれているか否かを調べ、含まれていないため通信レートを5.5Mbpsに下げ、無線リンクC13を確立する。一方、無線端末C02が無線端末C01からルーティングパケットを受信した場合は、通信レートの算出結果が2Mbpsとなり現在の設定値よりも下になるが、無線端末C02のルーティングテーブルに無線端末C01に対する有効経路K05が含まれているため、ルーティングパケットを破棄する。したがって、無線リンクC07は確立されず、図21に表されるようなルーティングテーブルが構築される。そして結果として、図17に表されるような無線リンク及び通信レートが設定され、通信レートの必要以上な低下を抑制することができる。
無線リンクを確立した後に安定した代替経路が確立された場合に、通信経路を切り替えられない可能性があるが、実施例2のアドホックネットワークの分離を防ぐ部分で述べたような方式により、使用されている不安定な無線リンクを定期的に削除することで、経路が定期的に更新されるようになる。経路が再構築されると、上記アルゴリズムに従って安定な無線リンクを優先的に使用するため、安定な代替経路が新たに構築された場合は、通信経路が代替経路に切り替えられる。
第一の実施例のネットワーク安定化システムを説明するための図。
第一の実施例の安定化方式のレイヤー構造を示す図。
第一の実施例の安定化アルゴリズム1の処理フロー図。
第一の実施例の無線リンクの電波強度の変化の例を示す図。
第一の実施例のリンク品質の変化の例を示す図。
第一の実施例の安定化アルゴリズム2の処理のフロー図。
第一、第二の実施例の無線端末のハードウェアの構成例を示す図。
第一の実施例の無線端末のリンクテーブルの例を示す図。
第二の実施例のアドホックネットワーク構成の例を示す図。
第二の実施例の無線端末のリンクテーブルの例を示す図。
第一、第二の実施例における安定化ソフトウェアによるルーティングパケットの特定方法を説明するための図。
第三の実施例のアドホックネットワーク構成の例を示す図。
第三の実施例の通信レートと電波強度閾値の対応表の例を示す図。
第三の実施例の図12における無線リンクの受信電波強度の例を示す図。
第三の実施例の安定化アルゴリズム3の処理のフロー図。
第三の実施例の図12における通信レート設定例を示す図。
第三の実施例の図12における高いスループットが確保可能な通信レート設定例を示す図。
第三の実施例の安定化アルゴリズム4の処理において安定化アルゴリズム3からの追加処理分を示す図。
第三の実施例の安定化アルゴリズム3における無線端末のリンクテーブルの例を示す図。
第三の実施例の安定化アルゴリズム4における無線端末のルーティングテーブルの例を示す図。
第三の実施例の安定化アルゴリズム4における無線端末のルーティングテーブルの例を示す図。
符号の説明
1、2、3、21、22、700、901、902、903、904、905…無線端末、701…CPU、3…AP、702…メモリ、703…無線LANインターフェース、704…アンテナ、23、26…ルーティングプロトコル、24、27…安定化ソフトウェア、25、28…無線LAN、29…パケットの流れ。