本発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。
図1は、この発明の実施の形態による無線ネットワークの概略図である。この発明の実施の形態による無線ネットワーク100は、無線装置1〜11を備える。
無線装置1〜11は、無線通信空間に配置されている。そして、無線装置2〜5は、無線装置1の通信範囲に配置されており、無線装置6〜9は、無線装置2〜5の通信範囲に配置されており、無線装置10は、無線装置6〜9の通信範囲に配置されており、無線装置11は、無線装置6〜9,10の通信範囲に配置されている。
このようなトポロジーにおいて、無線装置1は、マルチホップ無線通信によってパケットを無線装置11へ送信する。この場合、無線装置2〜5のうちのいずれかが無線装置1からのパケットを無線装置6〜9のいずれかへ中継し、無線装置6〜9のいずれかが無線装置2〜5のうちのいずれかからのパケットを無線装置10または無線装置11へ中継する。
そして、送信元である無線装置1から送信先である無線装置11までのパケットの総送信所要時間が最小になるようにパケットを無線装置1から無線装置11へ送信する場合、無線装置2〜5のうちのいずれの無線装置が無線装置1からのパケットを中継すべきかは、無線装置1と無線装置2〜5の各々との間の無線リンクの通信品質によって決定され、無線装置6〜9のうちのいずれの無線装置が無線装置2〜5のいずれかからのパケットを中継すべきかは、無線装置2〜5の各々と無線装置6〜9の各々との間の無線リンクの通信品質によって決定される。
従って、無線装置2〜5は、無線装置1からのパケットを中継する中継無線装置の候補であり、無線装置6〜9は、無線装置2〜5のいずれかからのパケットを中継する中継無線装置の候補である。
そこで、この発明の実施の形態においては、無線装置2〜5を同じグループに属する無線装置とし、無線装置6〜9を同じグループに属する無線装置とする。
そして、以下においては、1ホップでパケットを送受信可能な無線通信区間において、パケットを送信する無線装置が属するグループを送信グループTAとし、送信グループに属する無線装置からのパケットを中継する無線装置が属するグループを転送グループRAとして、送信元である無線装置1から送信先である無線装置11までのパケットの総送信所要時間が最小になるように、パケットを中継する中継無線装置を無線装置2〜5または無線装置6〜9から選択する方法について説明する。
図2は、図1に示す無線装置1の構成を示す概略ブロック図である。無線装置1は、無線インターフェース12と、MAC(Media Access Control)モジュール13と、パケットキャッシュ14と、TCP(Transmission Control Protocol)/IP(Internet Protocol)モジュール15と、ルーティングモジュール16と、ルーティングテーブル17と、ネイバーテーブル18と、協力者テーブル19と、グループテーブル20とを含む。
無線インターフェース12は、無線通信空間を介して他の無線装置からRTSパケットまたはCTSパケットを受信するとともに、そのRTSパケットまたはCTSパケットを受信したときの瞬時の信号対雑音比SNR(Signal to Noise Ratio)を検出する。そして、無線インターフェース12は、RTSパケットまたはCTSパケットと、瞬時の信号対雑音比SNR(「瞬時の受信SNR」と言う)とをMACモジュール13へ出力する。
また、無線インターフェース12は、無線通信空間を介して他の無線装置からHelloメッセージを受信するとともに、Helloメッセージを受信したときの瞬時の受信SNR_Helloを検出する。そして、無線インターフェース12は、Helloメッセージおよび瞬時の受信SNR_HelloをMACモジュール13へ出力する。
更に、無線インターフェース12は、無線通信空間を介して他の無線装置からデータパケット、ACK(Acknowledge)パケット、およびTC(Topology Control)メッセージを受信し、その受信したデータパケット、ACKパケット、およびTCメッセージをMACモジュール13へ出力する。
更に、無線インターフェース12は、パケット(RTSパケット、CTSパケット、データパケットおよびACKパケットのいずれか)、HelloメッセージおよびTCメッセージをMACモジュール13から受け、その受けたパケット、HelloメッセージおよびTCメッセージを無線通信空間を介して他の無線装置へ送信する。
MACモジュール13は、Helloメッセージおよび瞬時の受信SNR_Helloを無線インターフェース12から受けると、その受けたHelloメッセージおよび瞬時の受信SNR_Helloをルーティングモジュール16へ出力する。
また、MACモジュール13は、TCメッセージを無線インターフェース12から受けると、その受けたTCメッセージをルーティングモジュール16へ出力する。
更に、MACモジュール13は、無線装置1が属しているグループへのデータパケットを無線インターフェース12から受けると、その受けたデータパケットをパケットキャッシュ14に保存する。
更に、MACモジュール13は、RTSパケットと、RTSパケットを受信したときの瞬時の受信SNR_RTSとを無線インターフェース12から受ける。そして、MACモジュール13は、RTSパケットに基づいて、後述する方法によって、無線装置1が送信グループTAおよび転送グループRAのいずれのグループに属するかを判定する。
そして、MACモジュール13は、無線装置1が送信グループTAに属すると判定した場合、パケットキャッシュ14を参照して、RTSパケットに含まれるデータパケットの識別記号によって指定されたデータパケットの有無を更に判定する。
MACモジュール13は、パケットキャッシュ14がRTSパケットに含まれるデータパケットの識別記号によって指定されたデータパケットを持っていると判定した場合、CTSパケットの受信を待って、RTSパケットに含まれるデータパケットの識別記号によって指定されたデータパケットをパケットキャッシュ14から取り出し、その取り出したデータパケットを無線インターフェース12を介して送信する。
一方、MACモジュール13は、無線装置1が転送グループRAに属すると判定した場合、瞬時の受信SNR_RTSに基づいて、後述する方法によって、送信グループTAに含まれるRTSパケットの送信元と無線装置1との間の無線リンクにおける利用可能な送信レートrRA−TAを決定する。そして、MACモジュール13は、その決定した送信レートrRA−TAに基づいて、後述する方法によって、送信グループTAに含まれるRTSパケットの送信元と無線装置1との間の無線リンクにおける新しいメトリックを演算する。その後、MACモジュール13は、その演算した新しいメトリックに基づいて、同時送信タイマーを設定し、同時送信タイマーが満了すると、CTSパケットを生成し、その生成したCTSパケットを無線インターフェース12を介してマルチキャストする。なお、MACモジュール13は、転送グループRAに属する他の無線装置からCTSパケットを受信した場合、自己が生成したCTSパケットの送信を停止する。
更に、MACモジュール13は、無線装置1が転送グループRAに属すると判定した場合、送信グループTAに含まれる無線装置からデータパケットを無線インターフェース12から受けると、その受けたデータパケットをパケットキャッシュ14に保存する。
更に、MACモジュール13は、CTSパケットと、CTSパケットを受信したときの瞬時の受信SNR_CTSとを無線インターフェース12から受ける。そして、MACモジュール13は、CTSパケットに基づいて、後述する方法によって、無線装置1が送信グループTAおよび転送グループRAのいずれのグループに属するかを判定する。
そして、MACモジュール13は、無線装置1が送信グループTAに属すると判定した場合、パケットキャッシュ14を参照して、RTSパケットに含まれるデータパケットの識別記号によって指定されたデータパケットの有無を更に判定する。
MACモジュール13は、RTSパケットに含まれるデータパケットの識別記号によって指定されたデータパケットを持っていると判定した場合、瞬時の受信SNR_CTSに基づいて、後述する方法によって、無線装置1と、転送グループRAに含まれるCTSパケットの送信元との間の無線リンクにおける利用可能な送信レートrTA−RAを決定する。そして、MACモジュール13は、その決定した送信レートrTA−RAがCTSパケットに含まれる送信レート以上である場合、後述する方法によって、無線装置1と、転送グループRAに含まれるCTSパケットの送信元との間の無線リンクにおける新しいメトリックを演算する。その後、MACモジュール13は、その演算した新しいメトリックに基づいて、同時送信タイマーを設定し、同時送信タイマーが満了すると、RTSパケットに含まれるデータパケットの識別記号によって指定されたデータパケットをパケットキャッシュ14から取り出し、その取り出したデータパケットを無線インターフェース12を介して送信レートrTA−RAでCTSパケットの送信元へ送信する。なお、MACモジュール13は、送信グループTAに属する他の無線装置からデータパケットを受信した場合、パケットキャッシュ14から取り出したデータパケットの送信を停止する。
一方、MACモジュール13は、無線装置1が転送グループRAに属すると判定した場合、転送グループRAに属する他の無線装置からCTSパケットを無線インターフェース12から受けると、自己が生成したCTSパケットの送信を停止する。
更に、MACモジュール13は、無線装置1宛てのデータパケットを無線インターフェース12から受けると、その受けたデータパケットをアプリケーション(図示せず)へ出力する。
更に、MACモジュール13は、TCP/IPモジュール15からデータパケットを受けると、ルーティングテーブル17を参照して、データパケットを送信先へ送信するときの最適経路を選択する。そして、MACモジュール13は、MACヘッダをデータパケットに付加し、そのMACヘッダを付加したデータパケットを最適経路に沿って送信する。
更に、MACモジュール13は、HelloメッセージまたはTCメッセージをルーティングモジュール16から受けると、その受けたHelloメッセージまたはTCメッセージを無線インターフェース12を介して送信する。
パケットキャッシュ14は、MACモジュール13から受けたデータパケットを保存する。
TCP/IPモジュール15は、アプリケーション(図示せず)から受けたデータをデータ部に格納し、データを格納したデータ部にTCPヘッダを付加し、TCPヘッダ/データ部(=データ)をIPデータ部に格納し、そのIPデータ部にIPヘッダを付加してデータパケットを生成する。そして、TCP/IPモジュール15は、その生成したデータパケットをMACモジュール13へ出力する。
ルーティングモジュール16は、リンクステートルーティングプロトコル(例えば、FSR:Fish eye routing protocol)を基に必要な機能を追加したルーティングプロトコルに従って動作する。そして、ルーティングモジュール16は、HelloメッセージまたはTCメッセージを定期的に生成し、その生成したHelloメッセージまたはTCメッセージをMACモジュール13へ出力する。
また、ルーティングモジュール16は、Helloメッセージおよび瞬時の受信SNR_HelloをMACモジュール13から受けると、その受けたHelloメッセージの送信元の識別記号(=ID)と受信SNR_Helloとをネイバーテーブル18に記録する。
そして、ルーティングモジュール16は、ネイバーテーブル18に記録された複数の受信SNR_Helloの平均値SNR_Hello_Aveを演算する。その後、ルーティングモジュール16は、その演算した平均値SNR_Hello_Ave以上の受信SNR_Helloを有するN−1(Nは2以上の整数)個の無線装置のIDをネイバーテーブル18から取り出し、その取り出したN−1個の無線装置のIDと、無線装置1のIDとを協力者テーブル19に記録する。
この協力者テーブル19には、N個の無線装置のIDが記録され、N個の無線装置のIDは、1つのグループを構成する。そして、この1つのグループには、Helloメッセージを受信した無線装置のIDがグループアドレスとして付与される。
なお、ルーティングモジュール16は、協力者テーブル19を作成した後にHelloメッセージを送信する場合、協力者テーブル19を参照して、協力者の有無を示す協力者フラグを含むHelloメッセージを生成する。
更に、ルーティングモジュール16は、MACモジュール13から受けたHelloメッセージが無線装置1のIDと、無線装置1のIDに対応する協力者フラグとを含む場合、そのHelloメッセージの送信元のIDをグループテーブル20に記録する。
更に、ルーティングモジュール16は、他の無線装置から受信したHelloメッセージおよびTCメッセージに基づいて、ルーティングテーブル17を作成する。
ルーティングテーブル17は、各送信先への経路情報を格納する。ネイバーテーブル18は、Helloメッセージの送信元と、瞬時の受信SNR_Helloとを対応付けて格納する。協力者テーブル19は、平均値SNR_Hello_Ave以上の受信SNR_Helloを有するN−1個の無線装置のIDと、無線装置1のIDとを格納する。グループテーブル20は、無線装置1と同じグループに属する無線装置のIDを格納する。
なお、図1に示す無線装置2〜11の各々も、図2に示す無線装置1の構成と同じ構成からなる。
図3は、Helloメッセージの構成図である。HelloメッセージHELLOは、FSRと、Helloと、送信元のIDと、個数と、周辺の無線装置のIDと、協力者フラグとを含む。
FSRは、無線ネットワーク100において用いられているルーティングプロトコルを表す。Helloは、Helloメッセージであることを表す。送信元のIDは、Helloメッセージの送信元である無線装置のIDからなる。個数は、送信元のIDに対応付けられ、周辺の無線装置の個数からなる。周辺の無線装置のIDは、送信元のIDによって表される無線装置の周辺の無線装置のIDからなる。協力者フラグは、周辺の無線装置のIDに対応付けられ、周辺の無線装置が送信元の無線装置の協力者であるか否かを表す。そして、協力者フラグは、周辺の無線装置が送信元の無線装置の協力者であるとき、“YES”からなり、周辺の無線装置が送信元の無線装置の協力者でないとき、“NO”からなる。
図4は、TCメッセージの構成図である。TCメッセージTCは、送信元のIDと、FSRと、TOPOと、SEQと、基準となる無線装置のID1と、個数1と、基準となる他の無線装置のID2と、個数2と、ID1の周辺の無線装置のIDと、リンクコスト1と、ID2の周辺の無線装置のIDと、リンクコスト2とを含む。
送信元のIDは、TCメッセージの送信元の無線装置のIDからなる。FSRは、無線ネットワーク100において用いられているルーティングプロトコルを表す。TOPOは、TCメッセージがトポロジーを示すことを表す。SEQは、TCメッセージのシーケンス番号からなる。
基準となる無線装置のID1は、TCメッセージTCを作成した無線装置のIDからなる。個数1は、基準となる無線装置のID1に対応付けられ、ID1の周辺の無線装置の個数からなる。基準となる他の無線装置のID2は、送信元のIDによって表される無線装置に隣接する無線装置のIDからなる。個数2は、基準となる他の無線装置のID2に対応付けられ、ID2の周辺の無線装置の個数からなる。
ID1の周辺の無線装置のIDは、ID1によって表される無線装置の周辺の無線装置のIDからなる。リンクコスト1は、ID1の周辺の無線装置のIDに対応付けられ、基準となる無線装置のID1によって表される無線装置と、ID1の周辺の無線装置のIDによって表される無線装置との間の無線リンクのリンクコストからなる。
ID2の周辺の無線装置のIDは、ID2によって表される無線装置の周辺の無線装置のIDからなる。リンクコスト2は、ID2の周辺の無線装置のIDに対応付けられ、基準となる他の無線装置のID2によって表される無線装置と、ID2の周辺の無線装置のIDによって表される無線装置との間の無線リンクのリンクコストからなる。
図5は、図2に示すルーティングテーブル17の構成図である。ルーティングテーブル17は、送信先と、次の無線装置と、2ホップ目の無線装置と、メトリックとを含む。
送信先、次の無線装置、2ホップ目の無線装置、およびメトリックは、相互に対応付けられる。送信先は、パケットの最終的な宛先の無線装置のIDからなる。次の無線装置は、パケットを送信先へ送信するときの次に送信すべき無線装置のIDからなる。2ホップ目の無線装置は、パケットを送信先へ送信するときの経路上において、送信先側で“次の無線装置”に隣接する無線装置のIDからなる。メトリックは、パケットを送信または中継する無線装置から送信先までのリンクコストの総和からなる。
図6は、図2に示すネイバーテーブル18の構成図である。ネイバーテーブル18は、送信元と、受信SNR_Helloとを含む。送信元および受信SNR_Helloは、相互に対応付けられる。送信元は、Helloメッセージの送信元のIDからなる。受信SNR_Helloは、Helloメッセージを受信したときの受信SNRからなる。
図7は、図2に示す協力者テーブル19の構成図である。協力者テーブル19は、協力者IDと、タイムスタンプとを含む。協力者IDおよびタイムスタンプは、相互に対応付けられる。協力者IDは、ネイバーテーブル18に記録された無線装置のうち、受信SNR_Helloが平均値SNR_Hello_Ave以上となるHelloメッセージの送信元のIDからなる。タイムスタンプは、協力者IDが協力者テーブル19に記録された時刻からなり、年月日時分秒(YYYY/MMMM/DDDD/HHHH/MMMM/SSSS)によって表される。
図8は、図2に示すグループテーブル20の構成図である。グループテーブル20は、同じグループに属する無線装置のIDと、タイムスタンプとを含む。同じグループに属する無線装置のID、およびタイムスタンプは、相互に対応付けられる。同じグループに属する無線装置のIDは、協力者テーブル19に記録された無線装置のうち、Helloメッセージを受信した無線装置を協力者とするHelloメッセージの送信元のIDからなる。タイムスタンプは、同じグループに属する無線装置のIDをグループテーブル20に記録した時刻からなり、年月日時分秒(YYYY/MMMM/DDDD/HHHH/MMMM/SSSS)によって表される。
図9は、RTSパケットの構成図である。RTSパケットRTSは、FCと、DURと、RAと、TAと、AIDと、PIDと、Lと、FCSとを含む。
FCは、パケットがRTSパケットであることを表すとともに、RTSパケットのアクセスモードを表す。DURは、RTSパケットの有効期間を表す。RAは、転送グループに属する無線装置のIDからなる。TAは、送信グループに属する無線装置のIDからなる。
AIDは、RTSパケットの送信元から2ホップ目の無線装置のIDからなる。PIDは、データパケットを指定する識別記号を表し、例えば、<SRC,DST,Seq>からなる。SRCは、データパケットの送信元を表し、DSTは、データパケットの送信先を表し、Seqは、データパケットのシーケンス番号を表す。従って、この発明においては、送信元、送信先およびシーケンス番号によってデータパケットを特定できるものとする。
Lは、RTSパケットのパケット長からなる。FCSは、RTSパケットを正しく受信できか否かを判定するための符号である。
図10は、CTSパケットの構成図である。CTSパケットCTSは、FCと、DURと、RAと、TAと、RATEと、FCSとを含む。FC、DURおよびFCSについては、上述したとおりである。
RAは、送信グループに属する無線装置のIDからなる。TAは、CTSパケットを生成する無線装置のIDからなる。RATEは、RTSパケットを受信したときの受信SNR_RTSに基づいて決定された送信レートからなる。
図11は、データパケットの構成図である。データパケットDATAは、FCと、DURと、RAと、TAと、<SRC,DST,Seq>と、DATAと、FCSとを含む。FC、DURおよびFCSについては、上述したとおりである。
RAは、CTSパケットCTSのTAに格納された無線装置のIDからなる。TAは、送信グループに属する無線装置のIDからなる。<SRC,DST,Seq>は、上述したように、データパケットDATAを指定する識別記号である。DATAは、データからなる。
図12は、ACKパケットの構成図である。ACKパケットACKは、FCと、DURと、RAと、FCSとを含む。FC、DURおよびFCSについては、上述したとおりである。RAは、データパケットDATAのTAに格納された無線装置のIDからなる。
図13は、受信SNRと送信レートとの関係を示す図である。受信SNR=γが閾値γ0と閾値γ1との間に存在する場合、1Mbpsの送信レートが割り当てられる。また、受信SNR=γが閾値γ1と閾値γ2との間に存在する場合、2Mbpsの送信レートが割り当てられる。更に、受信SNR=γが閾値γ2と閾値γ3との間に存在する場合、5.5Mbpsの送信レートが割り当てられる。更に、受信SNR=γが閾値γ3よりも大きい場合、11Mbpsの送信レートが割り当てられる。
従って、RTSパケットまたはCTSパケットを受信したMACモジュール13は、RTSパケットを受信したときの受信SNR_RTS(=γ)またはCTSパケットを受信したときの受信SNR_CTS(=γ)に基づいて、図13に示す関係を用いて送信レートrRA−TA,rTA−RAを決定する。
また、Helloメッセージを受信したルーティングモジュール16も、Helloパケットを受信したときの受信SNR_Hello(=γ)に基づいて、図13に示す関係を用いて送信レートを決定する。
ルーティングモジュール16におけるリンクコストの求め方について説明する。ルーティングモジュール16は、Helloメッセージを受信したときの受信SNR_Hello(=γ)に基づいて、図13に示す関係を用いて送信レートrを求める。そして、ルーティングモジュール16は、データパケットの長さLをアプリケーション(図示せず)から受け、MAC層のRTS/CTS/ACKとデータDATAのプリアンブルを考慮してオーバヘッドToverheadを算出し、送信レートr、長さLおよびオーバーヘッドToverheadを次式に代入して転送所要コストd(r)を演算する。
ここで、全ての無線リンクのチャネルゲインがレイリーフェージングモデルに従って変動すると仮定すると、ある無線リンクの受信SNR(=γ)の平均値(=/γ)を用いて、各送信レートを使用して送信する確率πkは、次式によって求めることができる。
なお、/γは、式(2)において、バー(−)が記されたγを表す。また、式(2)におけるkは、図13のSNRの範囲に対応する。
従って、ルーティングモジュール16は、複数の受信SNR(=γ)に基づいて、平均値(=/γ)を演算し、その演算した平均値(=/γ)を式(2)に代入して確率πkを求める。
そうすると、ルーティングモジュール16は、式(1)によって求めた転送所要コストd(r)と、式(2)によって求めた確率πkとを次式に代入してリンクコストdを求める。
なお、式(3)におけるπ0は、受信SNR(=γ)が図13に示す閾値γ0よりも小さいときに割り当てられるパケットの送信確率である。
図14は、ネイバーテーブル18の具体例を示す図である。図15は、協力者テーブル19の具体例を示す図である。図16は、Helloメッセージの第1の例を示す図である。図17は、Helloメッセージの第2の例を示す図である。図18は、グループテーブル20の第1の例を示す図である。図19は、Helloメッセージの第3の例を示す図である。図20は、グループテーブル20の第2の例を示す図である。図21は、TCメッセージの具体例を示す図である。
無線ネットワーク100の初期においては、各無線装置1〜11のルーティングモジュール16は、各無線装置1〜11の周辺に存在する無線装置を知らないため、各無線装置1〜11のIDのみを含むHelloメッセージを生成して送信する。
そうすると、例えば、無線装置3は、無線装置1,2,4〜9からHelloメッセージを受信し、無線装置3の無線インターフェース12は、無線装置1,2,4〜9からHelloメッセージHELLO_1,HELLO2,HELLO_4〜HELLO_9を受信したときの受信SNR_Hello_1,SNR_Hello_2,SNR_Hello_4〜SNR_Hello_9を検出し、HelloメッセージHELLO_1,HELLO2,HELLO_4〜HELLO_9および受信SNR_Hello_1,SNR_Hello_2,SNR_Hello_4〜SNR_Hello_9をMACモジュール13へ出力する。
そして、無線装置3のMACモジュール13は、HelloメッセージHELLO_1,HELLO2,HELLO_4〜HELLO_9および受信SNR_Hello_1,SNR_Hello_2,SNR_Hello_4〜SNR_Hello_9を無線インターフェース12から受け、その受けたHelloメッセージHELLO_1,HELLO2,HELLO_4〜HELLO_9および受信SNR_Hello_1,SNR_Hello_2,SNR_Hello_4〜SNR_Hello_9をルーティングモジュール16へ出力する。
そうすると、無線装置3のルーティングモジュール16は、HelloメッセージHELLO_1,HELLO2,HELLO_4〜HELLO_9および受信SNR_Hello_1,SNR_Hello_2,SNR_Hello_4〜SNR_Hello_9をMACモジュール13から受け、その受けたHelloメッセージHELLO_1,HELLO2,HELLO_4〜HELLO_9から送信元のIDとしてID1,ID2,ID4〜ID9を検出する。
そして、無線装置3のルーティングモジュール16は、その検出したID1,ID2,ID4〜ID9と、受信SNR_Hello_1,SNR_Hello_2,SNR_Hello_4〜SNR_Hello_9とをそれぞれ対応付けてネイバーテーブル18に記録し、図14に示すネイバーテーブル18−1を作成する。
その後、無線装置3のルーティングモジュール16は、ネイバーテーブル18−1に記録された8個の受信SNR_Hello_1,SNR_Hello_2,SNR_Hello_4〜SNR_Hello_9の平均値SNR_Hello_Aveを演算し、その演算した平均値SNR_Hello_Ave以上の受信SNR_Hello_2,SNR_Hello_4,SNR_Hello_5と、受信SNR_Hello_2,SNR_Hello_4,SNR_Hello_5にそれぞれ対応付けられたID2,ID4,ID5とをネイバーテーブル18−1から取り出し、その取り出した受信SNR_Hello_2,SNR_Hello_4,SNR_Hello_5と、ID2,ID4,ID5とをそれぞれ対応付けて協力者テーブル19に記録し、図15に示す協力者テーブル19−1を作成する。
そうすると、無線装置3のルーティングモジュール16は、ネイバーテーブル18−1および協力者テーブル19−1を参照して、図16に示すHelloメッセージHELLO1を生成し、その生成したHelloメッセージHELLO1を送信する。この場合、無線装置3のルーティングモジュール16は、協力者テーブル19−1に無線装置2,4,5が記録されているので、ID2,ID4,ID5に対応する協力者フラグに“YES”を格納し、ID1,ID6〜ID9に対応する協力者フラグに“NO”を格納してHelloメッセージHELLO1を作成する。
無線装置2のルーティングモジュール16も、同様にして、図17に示すHelloメッセージHELLO2を生成して送信する。
そうすると、無線装置3のルーティングモジュール16は、無線装置2からのHelloメッセージHELLO2を受信し、その受信したHelloメッセージHELLO2が無線装置3のID3を含み、ID3に対応する協力者フラグが“YES”からなることを検知する(図17参照)。
そして、無線装置3のルーティングモジュール16は、HelloメッセージHELLO2の送信元である無線装置2のID2と、タイムスタンプTS_ID2とをグループテーブル20に記録する。また、無線装置3のルーティングモジュール16は、無線装置4,5からHelloメッセージを受信すると、同様にして、無線装置4,5のID4,ID5と、タイムスタンプTS_ID4,TS_ID5とをそれぞれ対応付けてグループテーブル20に記録する。その結果、図18に示すグループテーブル20−1が完成する。
また、無線装置7のルーティングモジュール16は、無線装置3と同様にして、図19に示すHelloメッセージHELLO3を生成して送信するとともに、図20に示すグループテーブル20−2を作成する。
そうすると、無線装置3のルーティングモジュール16は、無線装置7からのHelloメッセージHELLO3を受信し、その受信したHelloメッセージHELLO3に基づいて、無線装置6,8,9が無線装置7の協力者であることを検知する。
また、無線装置3のルーティングモジュール16は、各無線装置1,2,4〜9からHelloメッセージを受信したときの受信SNR_Helloに基づいて、上述した方法によって、各無線装置1,2,4〜9と無線装置3との間の無線リンクにおける送信レートを決定し、その決定した送信レートを用いて式(1)〜式(3)に基づいて、各無線装置1,2,4〜9と無線装置3との間の無線リンクにおけるリンクコストdを求める。
そして、無線装置7のルーティングモジュール16は、無線装置7におけるネイバーテーブル18、HelloメッセージHELLOおよび各無線装置2〜5,6,8〜10と無線装置7との間の無線リンクにおけるリンクコストdに基づいて、図21の右側の2列からなるTCメッセージを生成して送信する。
その後、無線装置3のルーティングモジュール16は、無線装置7からのTCメッセージを受信し、その受信したTCメッセージに基づいて、無線装置7周辺のトポロジーおよびリンクコストdを検知する。
そして、無線装置3のルーティングモジュール16は、無線装置7周辺のトポロジーおよびリンクコストdと、ネイバーテーブル18−1(図14参照)、HelloメッセージHELLO3(図19参照)および各無線装置1,2,4〜9と無線装置3との間の無線リンクにおけるリンクコストdに基づいて、図21に示すTCメッセージTC1を生成し、その生成したTCメッセージTC1を送信する。
TCメッセージTC1の左側の2列には、無線装置3を基準とした周辺の無線装置と、無線装置3と周辺の無線装置との間の無線リンクにおけるリンクコストとが格納されている。具体的には、無線装置1,2,4〜9が無線装置3の周辺の無線装置であり、無線装置3と無線装置2,4,5との間の無線リンクにおけるリンクコストが“1”であり、無線装置3と無線装置1,6〜9との間の無線リンクにおけるリンクコストが“6”であることが格納されている。
また、TCメッセージTC1の右側の2列には、無線装置7を基準とした周辺の無線装置と、無線装置7と周辺の無線装置との間の無線リンクにおけるリンクコストとが格納されている。具体的には、無線装置2〜6,8〜10が無線装置7の周辺の無線装置であり、無線装置7と無線装置6,8,9との間の無線リンクにおけるリンクコストが“1”であり、無線装置7と無線装置2〜5,10との間の無線リンクにおけるリンクコストが“6”であることが格納されている。
そして、無線装置2のルーティングモジュール16は、TCメッセージTC1を受信し、その受信したTCメッセージTC1に基づいて、無線装置1,2,4〜9が無線装置3に隣接し、無線装置2〜6,8〜10が無線装置7に隣接することを検知するとともに、無線装置2,4,5と無線装置3との間の無線リンクにおけるリンクコストおよび無線装置6,8,9と無線装置7との間の無線リンクにおけるリンクコストが“1”であり、無線装置1,6〜9と無線装置3との間の無線リンクにおけるリンクコストおよび無線装置2〜5,10と無線装置7との間の無線リンクにおけるリンクコストが“6”であることを検知する。
また、無線装置2のルーティングモジュール16は、TCメッセージTC1に基づいて、無線装置10が無線装置2〜5から2ホップ目の位置に配置されていることを検知するとともに、無線装置2〜5−無線装置7間の無線リンクにおけるリンクコストが“6”であり、無線装置7−無線装置10間の無線リンクにおけるリンクコストが“6”であることを検知する。
そして、無線装置2のルーティングモジュール16は、ネイバーテーブル18を参照すれば、無線装置6〜9が無線装置2に隣接することを検知できるとともに、ネイバーテーブル18に記録された受信SNRに基づいて、上述した方法によって無線装置2と無線装置6〜9の各々との間の無線リンクにおけるリンクコストを求めることができる。
無線装置1〜11の各々が上述したHelloメッセージおよびTCメッセージを送受信することによって、無線ネットワーク100における無線装置1〜11のトポロジーが次第に明らかになり、無線装置1〜11の各々は、最終的に、図1に示すトポロジーを把握するとともに、その把握したトポロジーにおける各無線リンクのリンクコストを取得する。
図22は、ルーティングテーブル17の具体例を示す図である。各無線装置1〜11は、無線ネットワーク100におけるトポロジーおよび各無線リンクのリンクコストを取得すると、自己および自己の周辺の無線装置におけるルーティングテーブル17を作成する。
例えば、無線装置3のルーティングモジュール16は、無線装置3および無線装置3の周辺の無線装置1〜2,4〜9におけるルーティングテーブルを作成して保持する。図22においては、無線装置3のルーティングモジュール16が作成して保持するルーティングテーブルのうち、無線装置3,7,8におけるルーティングテーブルを示す。
ルーティングテーブル17−1は、無線装置3のルーティングテーブルであり(図22の(a)参照)、ルーティングテーブル17−2は、無線装置7のルーティングテーブルであり(図22の(b)参照)、ルーティングテーブル17−3は、無線装置8のルーティングテーブルである(図22の(c)参照)。
無線装置1,2,4〜11のルーティングモジュール16も、同様にして、無線装置1,2,4〜11におけるルーティングテーブルと、無線装置1,2,4〜11の周辺の無線装置におけるルーティングテーブルとを作成して保持する。
次に、送信元である無線装置1から送信先である無線装置11までデータパケットを送信するときの最適経路の選択方法について説明する。この場合、無線装置2〜5が送信グループTAに属し、無線装置6〜9が転送グループRAに属するものとする。また、図1に示すように、送信グループTAに属する無線装置3,4が送信元である無線装置1から送信先である無線装置11へのデータパケットを受信しており、送信グループTAに属する無線装置2,5は、無線装置1から無線装置11へのデータパケットを受信していないものとする。更に、無線装置3がキャリアセンスを行ない、RTSパケットをマルチキャストするものとする。
図23は、RTSパケットの具体例を示す図である。図24は、CTSパケットの具体例を示す図である。図25は、データパケットの具体例を示す図である。図26は、ACKパケットの具体例を示す図である。図27は、グループテーブル20の第3の例を示す図である。図28は、グループテーブル20の第4の例を示す図である。
無線装置3のMACモジュール13は、無線装置1から無線装置11宛てのデータパケットを受信し、その受信したデータパケットをパケットキャッシュ14に保存する。そして、無線装置3のMACモジュール13は、ルーティングテーブル17−1(図22の(a)参照)を参照して、データパケットを無線装置11へ中継するための最適経路として無線装置7を“次の無線装置”とする経路を選択する。
そうすると、無線装置3のMACモジュール13は、無線装置7のID7を“RA”に格納し、無線装置3のID3を“TA”に格納し、無線装置10のID10を“AID”に格納し、<ID1,ID11,1>を“PID”に格納し、512Bを“L”に格納して図23に示すRTSパケットRTS1を生成する。そして、無線装置3のMACモジュール13は、その生成したRTSパケットRTS1を無線インターフェース12を介してマルチキャストする。
無線装置2,4〜9は、無線装置3からのRTSパケットRTS1を受信する。そして、無線装置2,4,5のMACモジュール13は、それぞれ、グループテーブル20−3,20−4,20−5(図27の(a)〜(c)参照)を参照して、RTSパケットRTS1の“TA”に格納されたID3がグループテーブル20−3,20−4,20−5に記録されていることを検知し、無線装置2,4,5が無線装置3と同じ送信グループTAに属することを検知する。
その後、無線装置2,4,5のMACモジュール13は、RTSパケットRTS1の“PID”に格納された<ID1,ID11,1>によって指定されたデータパケットがパケットキャッシュ14に保存されているか否かを判定する。そして、無線装置2,5のMACモジュール13は、<ID1,ID11,1>によって指定されたデータパケットがパケットキャッシュ14に保存されていないと判定し、無線装置4のMACモジュール13は、<ID1,ID11,1>によって指定されたデータパケットがパケットキャッシュ14に保存されていると判定する。
一方、無線装置6〜9の無線インターフェース12は、RTSパケットRTS1を無線装置3から受信するとともに、それぞれ、RTSパケットRTS1を受信したときの瞬時の受信SNR_RTS_6〜SNR_RTS_9を検出する。そして、無線装置6〜9の無線インターフェース12は、RTSパケットRTS1および受信SNR_RTS_6〜SNR_RTS_9をMACモジュール13へ出力する。
そして、無線装置7のMACモジュール13は、RTSパケットRTS1の“RA”に格納されたID7を検出し、RTSパケットRTS1の送信先が無線装置7であることを検知する。また、無線装置6,8,9のMACモジュール13は、それぞれ、グループテーブル20−6,20−7,20−8(図28の(a)〜(c)参照)を参照して、RTSパケットRTS1の“RA”に格納されたID7がグループテーブル20−6,20−7,20−8に記録されていることを検知し、無線装置6,8,9が無線装置7と同じ転送グループRAに属することを検知する。
また、無線装置6〜9のMACモジュール13は、それぞれ、受信SNR_RTS_6〜SNR_RTS_9に基づいて、上述した方法によって、無線装置3と無線装置6〜9との間の無線リンクにおける送信レートr3−6,r3−7,r3−8,r3−9を決定する。そして、無線装置6〜9のMACモジュール13は、その決定した送信レートr3−6,r3−7,r3−8,r3−9を式(1)のrに代入し、RTSパケットRTS1の512Bを式(1)のLに代入して転送所要コストd6〜d9を求める。この場合、無線装置6〜9のMACモジュール13は、RTSパケットRTS1のオーバーヘッドを知っているので、式(1)を用いて転送所要コストd6〜d9を求めることができる。
更に、無線装置6〜9のMACモジュール13は、無線装置6〜9および無線装置6〜9の周辺の無線装置におけるルーティングテーブル17を保持しているので、ルーティングテーブル17−1,17−2(図22の(a),(b)参照)を参照して、無線装置3から無線装置11までの経路におけるメトリックd3−11と、無線装置7から無線装置11までの経路におけるメトリックd7−11とを検出する。
そうすると、無線装置6〜9のMACモジュール13は、転送所要コストd6〜d9、メトリックd3−11、およびメトリックd7−11を次式に代入して新しいメトリックdnew_6〜dnew_9を求める。
この場合、無線装置6〜9のMACモジュール13は、それぞれ、転送所要コストd6〜d9を式(4)のd(γTA−RA)に代入し、メトリックd3−11を式(4)のdTA−Dに代入し、メトリックd7−11を式(4)のdRA−Dに代入する。
その後、無線装置6〜9のMACモジュール13は、その求めた新しいメトリックdnew_6〜dnew_9に基づいて、同時送信タイマーを設定する。この場合、無線装置6〜9のMACモジュール13は、新しいメトリックdnew_6〜dnew_9が小さいほど、短い時間を演算して短い同時送信タイマーを設定し、新しいメトリックdnew_6〜dnew_9が大きいほど、長い時間を演算して長い同時送信タイマーを設定する。
そして、無線装置6〜9のうち、同時送信タイマーが最も早く満了した無線装置のMACモジュール13は、CTSパケットを生成してマルチキャストする。この場合、新しいメトリックdnew_6〜dnew_9は、相互に異なるので、無線装置6〜9において設定された同時送信タイマーは、相互に異なり、無線装置6〜9のいずれかにおいて同時送信タイマーが最も早く満了する。従って、例えば、無線装置8における同時送信タイマーが最も早く満了するものとする。
そうすると、無線装置8のMACモジュール13は、“RA”に無線装置3のID3を格納し、“TA”に無線装置8のID8を格納し、受信SNR_RTS_8に基づいて求めた11Mbpsの送信レートを“RATE”に格納して図24に示すCTSパケットCTS1を生成する。そして、無線装置8のMACモジュール13は、その生成したCTSパケットCTS1をマルチキャストする。
無線装置6,7,9のMACモジュール13は、CTSパケットCTS1を無線装置8から受信して無線装置8がCTSパケットを送信したことを検知し、CTSパケットの送信を停止する。
このように、この発明においては、RTSパケットRTS1の送信先である無線装置7ではなく、RTSパケットRTS1の送信元である無線装置3と転送グループRAに属する無線装置6〜9との間の無線リンクにおけるリンクコストに応じて決定された同時送信タイマーが最も早く満了した無線装置8(=無線装置7と同じ転送グループRAに属する無線装置)がCTSパケットをマルチキャストする。これによって、データパケットを中継する経路として通信品質の良い経路を選択できる。
また、CTSパケットをマルチキャストした無線装置8以外の無線装置6,7,9は、CTSパケットを送信しないので、CTSパケットの衝突を回避できる。
送信グループTAに属する無線装置2〜5の無線インターフェース12は、CTSパケットCTS1を無線装置8から受信するとともに、CTSパケットCTS1を受信したときの瞬時の受信SNR_CTS_2〜SNR_CTS_5を検出する。そして、無線装置2〜5の無線インターフェース12は、CTSパケットCTS1および受信SNR_CTS_2〜SNR_CTS_5をMACモジュール13へ出力する。
上述したように、無線装置2,5は、無線装置1から送信されたデータパケットを保持していないので、CTSパケットCTS1を受信してもデータパケットを送信することはない。
一方、無線装置1から送信されたデータパケットを保持している無線装置3,4のMACモジュール13は、それぞれ、受信SNR_CTS_3,SNR_CTS_4に基づいて、上述した方法によって無線装置3,4と無線装置8との間の無線リンクにおける送信レートr3−8,r4−8を決定する。
そして、無線装置3,4のMACモジュール13は、それぞれ、送信レートr3−8,r4−8がCTSパケットCTS1の“RATE”に格納された11Mbps以上であるか否かを判定する。この場合、送信レートr3−8,r4−8が11Mbps以上であるものとする。
そうすると、無線装置3,4のMACモジュール13は、それぞれ、送信レートr3−8,r4−8を式(1)のrに代入し、512Bを式(1)のLに代入し、オーバーヘッドを式(1)のtoverheadに代入して転送所要コストd3,d4を求める。
また、無線装置3,4のMACモジュール13は、受信SNR_CTS_3,SNR_CTS_4、送信レートr3−8,r4−8、およびパケット長Lに基づいて、次式によりパケットの送信成功率P3,P6を求める。
なお、式(5)の右辺の括弧内の第2項は、送信レートrおよび受信SNR(=γ)によって決定されるビットごとの誤り率である。この場合、受信SNR(=γ)が大きい程、送信成功率P3,P6は、高くなり、受信SNR(=γ)が小さい程、送信成功率P3,P6は、低くなる。
無線装置3,4のMACモジュール13は、それぞれ、送信レートr3−8,r4−8、および受信SNR_CTS_3,SNR_CTS_4を式(5)の右辺の括弧内の第2項に代入し、512Bを式(5)のLに代入して送信成功率P3,P6を求める。
そうすると、無線装置3,4のMACモジュール13は、転送所要コストd3,d4および送信成功率P3,P6に基づいて、次式によって無線装置3,4と無線装置8との間の無線リンクにおける新しいメトリックdnew_3,dnew_4を求める。
この場合、無線装置3,4のMACモジュール13は、それぞれ、転送所要コストd3,d4を式(6)のd(γTA−RA)に代入し、それぞれ、送信成功率P3,P6を式(6)のP(rTA−RA,γTA−RA,L)に代入する。
そして、無線装置3,4のMACモジュール13は、その求めた新しいメトリックdnew_3,dnew_4に基づいて、同時送信タイマーを設定する。この場合、無線装置3,4のMACモジュール13は、新しいメトリックdnew_3,dnew_4が小さいほど、短い時間を演算して短い同時送信タイマーを設定し、新しいメトリックdnew_3,dnew_4が大きいほど、長い時間を演算して長い同時送信タイマーを設定する。
そして、無線装置3,4のうち、同時送信タイマーが最も早く満了した無線装置のMACモジュール13は、データパケットをパケットキャッシュ14から取り出して送信する。この場合、新しいメトリックdnew_3,dnew_4は、相互に異なるので、無線装置3,4において設定された同時送信タイマーは、相互に異なり、無線装置3,4のいずれかにおいて同時送信タイマーが最も早く満了する。従って、例えば、無線装置4における同時送信タイマーが最も早く満了するものとする。
そうすると、無線装置4のMACモジュール13は、パケットキャッシュ14からデータパケットを取り出し、その取り出したデータパケットの“RA”に無線装置8のID8を格納し、“TA”に無線装置3のID3を格納して図25に示すデータパケットDATA1を生成する。そして、無線装置4のMACモジュール13は、その生成したデータパケットDATA1を送信する。
この場合、無線装置3は、無線装置4から送信されたデータパケットDATA1を受信するので、自己が保持するデータパケットを送信することはない。
このように、この発明においては、RTSパケットRTS1を送信した無線装置3ではなく、CTSパケットRTS1の送信元である無線装置8と、送信グループTAに属し、かつ、データパケットを保持する無線装置3,4との間の無線リンクにおけるリンクコストに応じて決定された同時送信タイマーが最も早く満了した無線装置4(=無線装置3と同じ送信グループTAに属する無線装置)がデータパケットを送信する。そして、データパケットDATA1の送信先は、RTSパケットRTS1の送信先である無線装置7ではなく、無線装置7に協力してCTSパケットCTS1を送信した無線装置8である。従って、通信品質の良い経路を選択してデータパケットを中継できる。
また、データパケットを送信した無線装置4以外の無線装置3は、データパケットを送信しないので、データパケットの衝突を回避できる。
転送グループRAに属する無線装置8のMACモジュール13は、無線装置4から送信されたデータパケットDATA1を正しく受信する。そして、無線装置8のMACモジュール13は、“RA”に無線装置3のID3を格納して図26に示すACKパケットACK1を生成し、その生成したACKパケットACK1を無線装置3へ送信する。
また、無線装置8以外の無線装置6,7,9のMACモジュール13も、データパケットDATA1を正しく受信したのであれば、その受信したデータパケットDATA1をパケットキャッシュ14に保存する。
このように、この発明においては、ACKパケットの送信先は、データパケットを実際に送信した無線装置4ではなく、RTSパケットRTS1の送信元である無線装置3である。無線装置4は、同じ送信グループTAに属する無線装置3に協力してデータパケットを送信した無線装置であり、ACKパケットは、本来、RTSパケットの送信元へ返信すべきであるからである。
そして、データパケットDATA1を受信した無線装置8がデータパケットを無線装置11へ向けて中継する場合、無線装置6〜9が送信グループTAを構成し、無線装置10が転送グループRAを構成して、上述した方法によってデータパケットを最終的な送信先である無線装置11へ向けて順次中継する。
その結果、各無線通信区間において送信所要時間が最小となる無線リンクを順次選択しながらデータパケットが送信先まで中継される。そして、送信元から送信先までの総送信所要時間が最も短くなる。
従って、この発明によれば、通信効率を向上できる。
図29は、この発明の実施の形態によるデータパケットの中継方法を説明するためのフローチャートである。
一連の動作が開始されると、送信グループTAに属するいずれかの無線装置がRTSパケットを生成してマルチキャストする(ステップS1)。そして、RTSパケットをマルチキャストした無線装置以外の無線装置は、RTSパケットを受信し、自己が送信グループTAに属することを検知する(ステップS2)。
その後、転送グループRAに属する無線装置は、RTSパケットを受信し(ステップS3)、上述した方法によって、RTSパケットの送信元との間の無線リンクの品質に基づいて、無線リンクの品質が良いほど、短くなるように同時送信タイマーを設定する(ステップS4)。
そして、同時送信タイマーが最も早く満了した無線装置がCTSパケットを生成してマルチキャストする(ステップS5)。その後、CTSパケットをマルチキャストした無線装置以外の無線装置は、CTSパケットの送信を停止する(ステップS6)。
一方、送信グループTAに属する無線装置は、CTSパケットを受信する(ステップS7)。そして、CTSパケットを受信し、かつ、送信元からのデータパケットを保持している無線装置は、CTSパケットの送信元との間の無線リンクの品質に基づいて、無線リンクの品質が良いほど、短くなるように同時送信タイマーを設定する(ステップS8)。
その後、同時送信タイマーが最も早く満了し、かつ、送信元からのデータパケットを保持している無線装置がデータパケットを送信する(ステップS9)。
そして、データパケットを送信した無線装置以外の無線装置は、データパケットの送信を停止する(ステップS10)。
一方、転送グループRAに属し、CTSパケットを送信した無線装置は、データパケットを受信し(ステップS11)、ACKパケットをRTSパケットの送信元へ送信する(ステップS12)。
そして、RTSパケットの送信元は、ACKパケットを受信する(ステップS13)。これによって、一連の動作が終了する。
このように、同じグループに属し、最も良い通信品質でパケットを送信可能な無線装置が、本来、CTSパケットまたはデータパケットを送信すべき無線装置に協力してCTSパケットまたはデータパケットを送信する。
その結果、データパケットは、最短時間で次々と中継され、送信元から送信先までの総送信所要時間が最小になる。
従って、この発明によれば、通信効率を向上できる。
[無線LANへの応用]
図30は、無線LANの概略図である。無線LAN200は、アクセスポイントAP1,AP2と、移動端末M1〜M17とを備える。
アクセスポイントAP1,AP2は、無線通信空間に配置され、それぞれ、通信領域REG1,REG2を有する。移動端末M1〜M9は、アクセスポイントAP1の通信領域REG1内に配置され、移動端末M10〜M17は、アクセスポイントAP2の通信領域REG2内に配置される。その結果、移動端末M3,M11〜M13は、アクセスポイントAP1の通信領域REG1とアクセスポイントAP2の通信領域REG2との重複部分に配置される。
アクセスポイントAP1,AP2は、ビーコンフレームを周期的にブロードキャストし、無線LANの存在を移動端末M1〜M9および移動端末M10〜M17へ通知する。
移動端末M1〜M9および移動端末M10〜M17は、ビーコンフレームの受信によってそれぞれアクセスポイントAP1,AP2との通信パラメータを取得する。そして、移動端末M1〜M9および移動端末M10〜M17は、それぞれ、アクセスポイントAP1,AP2との間で認証(Authentication)および経路確立(Association)が終了してから、アクセスポイントAP1,AP2との間で直接通信を行なうことができる。
多数のアクセスポイントが同じホットスポットに配置されている場合、アクセスポイントの通信範囲は、大きく重なることが想定される。しかし、同時に利用可能なチャネル数は、限られているため、チャネル数よりも多くのアクセスポイントが同じ場所で同時に動作する場合には、アクセスポイント間の相互干渉が問題になる。
この相互干渉を減少させるには、アクセスポイントは、ビーコンフレームのような制御フレームの送信電力をそのままにし、データフレームの送信電力を減少させることが想定される。その結果、図30に示すように、アクセスポイントAP1からのデータフレームの通信領域REGD1は、アクセスポイントAP1の本来の通信領域REG1よりも縮小され、アクセスポイントAP2からのデータフレームの通信領域REGD2は、アクセスポイントAP2の本来の通信領域REG2よりも縮小される。
そうすると、データフレームの送信電力の減少によって、例えば、移動端末M9,M16が送信したデータフレームがそれぞれアクセスポイントAP1,AP2へ届かない可能性がある。
このような場合、移動端末M9,M16が他の移動端末を経由してアクセスポイントAP1,AP2と通信する方法が想定される。
一方、移動端末M9,M16がそれぞれアクセスポイントAP1,AP2と直接通信を行なうことができても、送信レートが低いので、データフレームの送受信に必要な時間が長くなる。これによって、無線LAN200全体の通信効率が低下する可能性がある。
そこで、以下においては、移動端末がアクセスポイントとの間で無線通信を行なう場合に、上述した通信方法の無線LAN200への適用について説明する。
図31は、移動端末およびアクセスポイントのトポロジーを示す図である。図32は、通知の構成図である。図33は、中継テーブルの構成図である。
移動端末M、アクセスポイントAPおよび中継端末Rは、無指向性のアンテナを用いて無線通信を行なう。そして、中継端末Rは、移動端末MとアクセスポイントAPとの間に配置されている(図31参照)。
図31に示すように、移動端末Mは、最初、データフレームをアクセスポイントAPへ直接送信し、アクセスポイントAPは、データフレームを受信し、ACKフレームを移動端末Mへ返信する。移動端末M、中継端末RおよびアクセスポイントAPは、無指向性のアンテナを用いているので、移動端末MとアクセスポイントAPとの間に配置された中継端末Rは、移動端末MからアクセスポイントAPへのデータフレームと、アクセスポイントAPから移動端末MへのACKフレームとの両方を受信できる。
そこで、中継端末Rは、自己が移動端末MとアクセスポイントAPとの間で無線通信を中継した場合、チャネルの利用効率を向上できるか否かを以下の方法によって推測する。
まず、中継端末Rは、移動端末MからアクセスポイントAPへ送信されたデータフレームを受信し、その受信したデータフレームのプリアンブルから移動端末M−アクセスポイントAP間の送信レートrM−APとデータフレームの長さLとを検出する。
また、中継端末Rは、データフレームを受信したときの受信SNRに基づいて、上述した方法によって、移動端末M−中継端末R間の無線リンクにおける利用可能な送信レートrM−Rを求める。
更に、中継端末Rは、アクセスポイントAPから移動端末Mへ送信されたACKフレームを受信し、ACKフレームを受信したときの受信SNRを検出する。そして、中継端末Rは、その検出した受信SNRに基づいて、上述した方法によって、アクセスポイントAP−中継端末R間の無線リンクにおける利用可能な送信レートrR−APを求める。
そうすると、中継端末Rは、送信レートrM−APおよび長さLを式(1)に代入して移動端末M−アクセスポイントAP間の送信所要コストdM−APを求める。
また、中継端末Rは、送信レートrM−Rおよび長さLを式(1)に代入して移動端末M−中継端末R間の送信所要コストdM−Rを求め、送信レートrR−APおよび長さLを式(1)に代入して中継端末R−アクセスポイントAP間の送信所要コストdR−APを求める。そして、中継端末Rは、送信所要コストdM−Rと送信所要コストdR−APとを加算して、移動端末M−中継端末R−アクセスポイントAPからなる経路の送信所要コストdM−R−AP=dM−R+dR−APを求める。
その後、中継端末Rは、送信所要コストdM−R−APが送信所要コストdM−APよりも小さいか否かを判定する。そして、送信所要コストdM−R−APが送信所要コストdM−APよりも小さいとき、中継端末Rは、送信レートrM−Rおよび送信レートrR−APを含む通知NTF1(図32参照)を生成し、その生成した通知NTF1を移動端末MおよびアクセスポイントAPへ送信する。この場合、通知NTF1のFCは、通知であることを示すNOTIFYを含む。FFは、ブロードキャストアドレスを表す。Rは、中継端末Rの識別記号である。Mは、移動端末Mの識別記号である。rM−Rは、移動端末M−中継端末R間の送信レートである。APは、アクセスポイントAPの識別記号である。rR−APは、中継端末R−アクセスポイントAP間の送信レートである。DURについては、上述したとおりである。
移動端末Mは、通知NTF1を受信し、移動端末M−中継端末R間の送信レートrM−Rおよび中継端末R−アクセスポイントAP間の送信レートrR−APを検出する。また、移動端末Mは、アクセスポイントAPからACKフレームを受信し、ACKフレームを受信したときの受信SNRに基づいて、上述した方法によって、移動端末M−アクセスポイントAP間の送信レートrM−APを決定する。
そうすると、移動端末Mは、送信レートrM−R、送信レートrR−APおよび送信レートrM−APに基づいて、図33に示す中継テーブルRLT1を作成する。図33において、1Mbpsは、移動端末M−アクセスポイントAP間の送信レートrM−APであり、5.5Mbpsは、移動端末M−中継端末R間の送信レートrM−Rであり、11Mbpsは、中継端末R−アクセスポイントAP間の送信レートrR−APである。APに対応するR−APの欄に送信レートが格納されていないのは、移動端末MがアクセスポイントAPと直接無線通信を行なう場合には、中継端末が存在しないからである。dM−APは、移動端末M−アクセスポイントAP間のメトリックであり、dM−R−APは、移動端末M−中継端末R−アクセスポイントAPからなる経路のメトリックである。タイムスタンプtsAPは、送信レートrM−AP(=1Mbps)を中継テーブルRLT1に記録した時刻であり、タイムスタンプtsRは、送信レートrM−R(=5.5Mbps)および送信レートrR−AP(=11Mbps)を中継テーブルRLT1に記録した時刻である。
図34は、移動端末およびアクセスポイントの他のトポロジーを示す図である。図35は、他の通知の構成図である。図36は、他の中継テーブルの構成図である。
図34に示すトポロジーにおいては、2台の中継端末R1,R2が移動端末MとアクセスポイントAPとの間に存在する。
そして、移動端末Mは、中継端末R1を経由してアクセスポイントAPと無線通信を行なっているものとする。
この場合、移動端末Mは、データフレームを中継端末R1へ送信し、中継端末R1は、移動端末Mからのデータフレームの受信に応じてACKフレームを移動端末Mへ返信する。
中継端末R2も、移動端末Mから送信されたデータフレームを受信し、その受信したデータフレームのプリアンブルから移動端末M−中継端末R1間の送信レートrM−R1とデータフレームの長さLとを検出する。また、中継端末R2は、移動端末Mからデータフレームを受信したときの受信SNRを検出し、その検出した受信SNRに基づいて、上述した方法によって、移動端末M−中継端末R2間の無線リンクにおける利用可能な送信レートrM−R2を求める。
その後、中継端末R1は、データフレームをアクセスポイントAPへ転送し、アクセスポイントAPは、中継端末R1からのデータフレームの受信に応じてACKフレームを中継端末R1へ返信する。
そうすると、中継端末R2は、中継端末R1からアクセスポイントAPへ転送されたデータフレームを受信し、その受信したデータフレームのプリアンブルから中継端末R1−アクセスポイントAP間の送信レートrR1−APを検出する。
また、中継端末R2は、アクセスポイントAPから中継端末R1へ返信されるACKフレームを受信し、ACKフレームを受信したときの受信SNRを検出する。そして、中継端末R2は、その検出した受信SNRに基づいて、上述した方法によって、中継端末R2−アクセスポイントAP間の無線リンクにおける利用可能な送信レートrR2−APを求める。
そして、中継端末R2は、送信レートrM−R1とデータフレームの長さLとを式(1)に代入して移動端末M−中継端末R1間の送信所要コストdM−R1を求める。また、中継端末R2は、送信レートrM−R2と長さLとを式(1)に代入して移動端末M−中継端末R2間の送信所要コストdM−R2を求める。更に、中継端末R2は、送信レートrR1−APと長さLとを式(1)に代入して中継端末R1−アクセスポイントAP間の送信所要コストdR1−APを求める。更に、中継端末R2は、送信レートrR2−APと長さLとを式(1)に代入して中継端末R2−アクセスポイントAP間の送信所要コストdR2−APを求める。
そうすると、中継端末R2は、送信所要コストdM−R1と送信所要コストdR1−APとを加算して移動端末M−中継端末R1−アクセスポイントAPからなる経路における送信所要コストdM−R1−AP=dM−R1+dR1−APを求める。また、中継端末R2は、送信所要コストdM−R2と送信所要コストdR2−APとを加算して移動端末M−中継端末R2−アクセスポイントAPからなる経路における送信所要コストdM−R2−AP=dM−R2+dR2−APを求める。
その後、中継端末R2は、送信所要コストdM−R2−APが送信所要コストdM−R1−APよりも小さいか否かを判定する。そして、送信所要コストdM−R2−APが送信所要コストdM−R1−APよりも小さいとき、中継端末R2は、送信レートrM−R2および送信レートrR2−APを含む通知NTF2(図35参照)を生成し、その生成した通知NTF2を移動端末MおよびアクセスポイントAPへ送信する。この場合、通知NTF2の各構成要素は、上述した通知NTF1(図32参照)と同じである。
移動端末Mは、通知NTF2を受信し、移動端末M−中継端末R2間の送信レートrM−R2および中継端末R2−アクセスポイントAP間の送信レートrR2−APを検出する。
そして、移動端末Mは、送信レートrM−R2および送信レートrR2−APを追加して図36に示す中継テーブルRLT2を作成する。中継テーブルRLT2の各構成要素は、上述した中継テーブルRLT1の各構成要素と同じである。
図31に示すトポロジーにおいては、移動端末Mは、データフレームをアクセスポイントAPへ直接送信するか、中継端末Rを経由してデータフレームをアクセスポイントAPへ送信する。即ち、移動端末Mは、データフレームをアクセスポイントAPおよび中継端末Rのいずれかへ送信すればよい。
また、図34に示すトポロジーにおいては、移動端末Mは、データフレームをアクセスポイントAPへ直接送信するか、中継端末R1を経由してデータフレームをアクセスポイントAPへ送信するか、中継端末R2を経由してデータフレームをアクセスポイントAPへ送信する。即ち、移動端末Mは、データフレームをアクセスポイントAPおよび中継端末R1,R2のいずれかへ送信すればよい。
そこで、中継端末R,R1,R2を中継端末Riと表記し、中継端末RiおよびアクセスポイントAPが上述した転送グループRAを構成するものとする。そうすると、移動端末Mは、RTSパケットをマルチキャストし、中継端末RiおよびアクセスポイントAPのうち、最も早くCTSパケットを送信した端末へデータフレームを送信すればよい。
図37は、RTSパケットの他の具体例を示す図である。図38は、CTSパケットの他の具体例を示す図である。
移動端末Mは、図37に示すRTSパケットRTS2を生成し、その生成したRTSパケットRTS2をマルチキャストする。なお、RTSパケットRTS2においては、アクセスポイントAPの識別記号APが“AID”に格納される。
中継端末RiおよびアクセスポイントAPは、RTSパケットRTS2を受信する。そして、中継端末Riは、RTSパケットRTS2を受信したときの瞬時の受信SNRM−Riを測定し、その測定した瞬時の受信SNRM−Riに基づいて、上述した方法によって、移動端末M−中継端末Ri間の無線リンクにおける利用可能な送信レートrM−Riを求める。
その後、中継端末Riは、送信レートrM−Riと、RTSパケットRTS2に含まれる長さL(=512B)とを式(1)に代入して移動端末M−中継端末Ri間の瞬時の送信所要コストdM−Riを求める。
更に、中継端末Riは、送信レートrM−Ri、瞬時の受信SNRM−Ri、および長さL(=512B)を式(5)に代入して送信成功率PM−Riを求める。
更に、中継端末Riは、アクセスポイントAPへの無線リンクにおける平均SNRRi−APを用いて、式(2),(3)によって平均リンクコストdRi−APを求める。
一方、アクセスポイントAPは、RTSパケットRTS2を受信したときの瞬時の受信SNRM−APを測定し、その測定した瞬時の受信SNRM−APに基づいて、上述した方法によって、移動端末M−アクセスポイントAP間の無線リンクにおける利用可能な送信レートrM−APを求める。
その後、アクセスポイントAPは、送信レートrM−APと、RTSパケットRTS2に含まれる長さL(=512B)とを式(1)に代入して移動端末M−アクセスポイントAP間の瞬時の送信所要コストdM−APを求める。
更に、アクセスポイントAPは、送信レートrM−APと、瞬時の受信SNRM−AP、および長さL(=512B)を式(5)に代入して送信成功率PM−APを求める。
そうすると、アクセスポイントAPは、送信所要コストdM−APと、送信成功率PM−APとを次式に代入して新しいメトリックdnew_APを求める。
この場合、アクセスポイントAPは、送信所要コストdM−APを式(7)のd(rM−AP)に代入し、送信成功率PM−APを式(7)のP(rM−AP,L,γM−AP)に代入する。
また、中継端末Riは、送信所要コストdM−Riと、送信成功率PM−Riと、平均リンクコストdRi−APとを次式に代入して新しいメトリックdnew_Riを求める。
この場合、中継端末Riは、送信所要コストdM−Riを式(8)のd(rM−Ri)に代入し、送信成功率PM−Riを式(8)のP(rM−Ri,L,γM−Ri)に代入する。
そうすると、アクセスポイントAPは、新しいメトリックdnew_APに基づいて、同時送信タイマーを設定し、中継端末Riは、新しいメトリックdnew_Riに基づいて、同時送信タイマーを設定する。
そして、アクセスポイントAPおよび中継端末Riのうち、同時送信タイマーが最も早く満了した端末(アクセスポイントAPまたは中継端末Ri)は、CTSパケットを生成して移動端末Mへ送信する。
この場合、アクセスポイントAPの同時送信タイマーが中継端末Riの同時送信タイマーよりも早く満了すると、アクセスポイントAPは、図38の(a)に示すCTSパケット2を生成して移動端末Mへ送信する。なお、CTSパケット2は、移動端末M−アクセスポイントAP間の送信レートrM−APを含む。
一方、中継端末Riの同時送信タイマーがアクセスポイントAPの同時送信タイマーよりも早く満了すると、中継端末Riは、図38の(b)に示すCTSパケット3を生成して移動端末Mへ送信する。なお、CTSパケット3は、移動端末M−中継端末Ri間の送信レートrM−Riを含む。
移動端末Mは、アクセスポイントAPからCTSパケットCTS2を受信すると、その受信したCTSパケットCTS2に含まれる送信レートrM−APでデータフレームをアクセスポイントAP(=CTSパケットCTS2の送信元)へ送信する。
一方、移動端末Mは、中継端末RiからCTSパケットCTS3を受信すると、その受信したCTSパケットCTS3に含まれる送信レートrM−Riでデータフレームを中継端末Ri(=CTSパケットCTS3の送信元)へ送信する。そして、中継端末Riは、データフレームをアクセスポイントAPへ直接送信する。
この場合、送信端末は、移動端末Mのみであるので、データフレームの送信における競争は、発生しない。
これによって、アクセスポイントAPがデータフレームの送信電力を減少させる場合も、移動端末MからアクセスポイントAPへの送信所要時間を最小にできる。従って、チャネル利用効率(=通信効率)を向上できる。
なお、上記においては、RTSパケットおよびCTSパケットを用いてデータフレームを移動端末MからアクセスポイントAPへ送信する場合について説明したが、この発明においては、これに限らず、RTSパケットおよびCTSパケットを用いずにデータフレームを移動端末MからアクセスポイントAPへ送信してもよい。
この場合、移動端末Mは、上述した中継テーブルRLT1(図33参照)または中継テーブルRLT2(図36参照)を参照して、中継端末Riを経由する場合のアクセスポイントAPまでの送信所要コストdM−Ri−APと、中継端末Riを経由しない場合のアクセスポイントAPまでの送信所要コストdM−APとを検出する。
そして、移動端末Mは、その検出した送信所要コストdM−Ri−APと送信所要コストdM−APとを比較し、小さい方の送信所要コストを有する端末(アクセスポイントAPまたは中継端末Ri)を選択し、その選択した端末(アクセスポイントAPまたは中継端末Ri)へデータフレームを送信する。
より具体的には、移動端末Mは、中継端末Riを選択した場合、中継テーブルRLT1(図33参照)または中継テーブルRLT2(図36参照)を参照して、移動端末M−中継端末Ri間の送信レートrM−Riを検出し、その検出した送信レートrM−Riでデータフレームを中継端末Riへ送信する。
中継端末Riは、データフレームを移動端末Mから受信すると、ACKフレームを移動端末Mへ返信し、自己が持っている中継端末Ri−アクセスポイントAP間の送信レートrRi−APでデータフレームをアクセスポイントAPへ送信する。そして、アクセスポイントAPは、中継端末Riからデータフレームを受信すると、ACKフレームを中継端末Riへ返信する。
一方、移動端末Mは、アクセスポイントAPを選択した場合、中継テーブルRLT1(図33参照)または中継テーブルRLT2(図36参照)を参照して、移動端末M−アクセスポイントAP間の送信レートrM−APを検出し、その検出した送信レートrM−APでデータフレームをアクセスポイントAPへ送信する。そして、アクセスポイントAPは、移動端末Mからデータフレームを受信すると、ACKフレームを移動端末Mへ返信する。
なお、複数の最適経路が存在する場合、経路ごとにカウンタを付加し、移動端末Mは、データフレームを送信する前に、これらの複数の最適経路からカウンタ値が最も小さい経路を選択し、その選択した経路を介してデータフレームを送信する。そして、移動端末Mは、使用した経路のカウンタを“1”だけ増やす。
このように、複数の最適経路が存在する場合、移動端末Mは、ラウンドロビン方式によって全てのデータフレームを複数の最適経路に分配して送信する。
なお、上記においては、移動端末MからアクセスポイントAPへデータフレームを送信する場合について説明したが、アクセスポイントAPから移動端末Mへデータフレームを送信する場合も、上述した方法によって、アクセスポイントAPから移動端末Mへの送信所要時間が最小になる経路を選択してデータフレームの送信が行なわれる。
なお、この発明においては、送信グループTAに属する無線装置2〜5において式(6)を用いて新しいリンクメトリックdnewを演算し、その演算した新しいリンクメトリックdnewに基づいて同時送信タイマーに設定する時間を演算するMACモジュール13、または転送グループRAに属する無線装置6〜9において式(4)を用いて新しいリンクメトリックdnewを演算し、その演算した新しいリンクメトリックdnewに基づいて同時送信タイマーに設定する時間を演算するMACモジュール13は、「演算手段」を構成する。
また、この発明においては、送信グループTAに属する無線装置2〜5において同時送信タイマーに設定するMACモジュール13、または転送グループRAに属する無線装置6〜9において同時送信タイマーに設定するMACモジュール13は、「タイマー設定手段」を構成する。
更に、この発明においては、CTSパケットを送信する無線装置8のMACモジュール13、またはデータパケットを送信する無線装置4のMACモジュール13は、「送信手段」を構成する。
更に、この発明においては、CTSパケットを無線装置6〜9のいずれかから受信する無線装置2〜5のいずれかのMACモジュール13は、「受信手段」を構成する。
更に、この発明においては、CTSパケットを受信したときの瞬時の受信SNRを検出する無線インターフェース12は、「検出手段」を構成する。
更に、この発明においては、RTSパケットを無線装置2〜5のいずれかから受信する無線装置6〜9のいずれかのMACモジュール13は、「受信手段」を構成する。
更に、この発明においては、RTSパケットを受信したときの瞬時の受信SNRを検出する無線インターフェース12は、「検出手段」を構成する。
更に、この発明においては、無線装置2〜5は、「m(mは正の整数)個の第1の無線装置」を構成し、無線装置6〜9は、「n(nは正の整数)個の第2の無線装置」を構成する。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1〜11 無線装置、100 無線ネットワーク、12 無線インターフェース、13 MACモジュール、14 パケットキャッシュ、15 TCP/IPモジュール、16 ルーティングモジュール、17 ルーティングテーブル、18 ネイバーテーブル、19 協力者テーブル、20 グループテーブル、200 無線LAN、M,M1〜M17 移動端末、AP,AP1,AP2 アクセスポイント、R,R1,R2 中継端末。