無線通信方法、無線通信装置、および無線通信プログラム
【課題】複数のチャネルを利用する無線通信システムにおいて効率的な通信を実現する。
【解決手段】Helloメッセージの交換により2ホップ先のノードまでを把握するとともに、データパケットの送信に先立って2倍の伝送距離でRTSメッセージを送信する。各ノードは、このRTSメッセージに基づいて自ノードおよび隣接ノードが利用可能なチャネルをチャネル状況テーブルとして管理する。データパケットを送信しようとするノードは、このチャネル状況テーブルを参照することで、自ノードおよび通信相手ノードが利用可能なチャネルを選択する。送信電波強度を大きくすることや、ノイズに対する耐性の強い変調方式を用いることで、RTSメッセージはHelloメッセージやデータパケットの2倍以上の距離伝搬される。
【解決手段】Helloメッセージの交換により2ホップ先のノードまでを把握するとともに、データパケットの送信に先立って2倍の伝送距離でRTSメッセージを送信する。各ノードは、このRTSメッセージに基づいて自ノードおよび隣接ノードが利用可能なチャネルをチャネル状況テーブルとして管理する。データパケットを送信しようとするノードは、このチャネル状況テーブルを参照することで、自ノードおよび通信相手ノードが利用可能なチャネルを選択する。送信電波強度を大きくすることや、ノイズに対する耐性の強い変調方式を用いることで、RTSメッセージはHelloメッセージやデータパケットの2倍以上の距離伝搬される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のチャネルを利用して行う無線通信に関する。
【背景技術】
【0002】
従来、無線LANなどではCSMA/CA(Carrier Sense Multiple Access with Collision Avoidance:搬送波感知多重アクセス/回避)方式を用いて無線パケット通信が行われている。CSMA/CA方式では、共通の無線チャネルを共用して通信するために、他の無線端末が無線チャネルを使用していないか確認してから、受信ノードに対して送信要求であるRTS(Request To Send)メッセージを送信する。RTSメッセージを受信
したノードは、送信ノードに対して応答確認であるCTS(Clear To Send)メッセージ
を返す。送信ノードは、CTSメッセージを受信してから実際のデータパケットの送信を開始する。なお、RTSメッセージおよびCTSメッセージには、チャネルを占有する時間、すなわちデータパケットの送信が終了するまでの時間が含まれる。
【0003】
RTSメッセージを受信した送信ノードの隣接ノード、および、CTSメッセージを受信した受信ノードの隣接ノードは、送受信ノードがチャネルを占有する期間は送受信を行わない。このようにして、1つのチャネルを共用して通信する際に、パケットの衝突を回避している。
【0004】
上記の説明は1つのチャネルを共用する無線通信方法であるが、非特許文献1には複数のチャネルを共用する無線通信方法が記載されている。非特許文献1に記載の無線通信方法では、複数のチャネルのうち1つを制御チャネルとして利用し、その他のチャネルをデータパケット用に利用する。各ノードは、制御チャネルを利用してデータパケットの送信の際に利用するチャネルを決定する。
【0005】
非特許文献1に記載の無線通信方法の具体的な手順を図12を参照して説明する。図12(b)のネットワークトポロジーの状況において、ノードmSからノードmDへデータパケットを送信する場合の通信方法を図12(a)に基づいて説明する。なお、ノードm1,m2はノードmSの通信範囲内に位置し、ノードm3,m4はノードmDの通信範囲内に位置している。まず、送信を開始しようとするノードmSは、自ノードが利用可能なチャネルを格納したRTSメッセージを送信する。このRTSメッセージを受信した隣接ノードm1,m2は所定期間、全てのチャネルにおいて送信禁止状態(NAV:Network Allocation Vector)になる。また、このRTSメッセージを受信したノードmDは、R
TSメッセージに格納されているノードmSの利用可能チャネルのうちから、自ノードが利用可能なチャネル(チャネルiとする)を格納したCTSメッセージを送信する。CTSメッセージを受信した隣接ノードm3,m4は、ノードmS,mD間の通信が終了するまでチャネルiでの通信を禁止する。CTSメッセージを受信したノードmSは、チャネルiを利用してデータパケットの送信を行うことを周囲に通知するためにRES(REServation)メッセージを送信する。RESメッセージを受信した隣接ノードm1,m2は、
ノードmS,mD間がチャネルiでの通信を終了するまで、チャネルiでの通信を禁止する。
【0006】
非特許文献1に記載の技術では、このような方法によって、複数のチャネルのうちから利用するチャネルを選択するとともに、パケットの衝突を回避している。このように複数のチャネルを利用可能とすることで、システム全体としてスループットの向上を図ることができる。
【非特許文献1】Shih-Lin Wu et al., "A New Multi-Channel MAC Protocol with On-Demand Channel Assignment for Multi-Hop Mobile Ad Hoc Networks", Proceedings of the Fifth International Symposium on Parallel Architectures, Algorithms, and Networks(ISPAN '00), IEEE, 2000
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、上記のような従来技術によって複数のチャネルを利用して通信する場合には、下記のような問題が生じていた。
【0008】
第一に、データパケットの送信に先立って、RTS,CTS,RESの3つの制御パケットを制御チャネル上で通信する必要がある。したがって、通信量が多くなるとこれらの制御パケットで制御チャネルが使い果たされてしまう可能性がある。このような状況になると、データチャネルが空いていても制御チャネルがボトルネックとなってスループットが低下してしまう可能性がある。また、ブロードキャストパケットも制御チャネル上で送信される場合には、さらに制御チャネルにおいて輻輳が発生する可能性が高まる。したがって、制御チャネル上で送信されるパケットの量を減らすことが望まれる。
【0009】
第二に、利用可能なチャネルがないノードに対して、RTSメッセージを送信してしまう可能性がある。例えば、図13のような状況では、ノードm1は、ノードmSの通信可能範囲内にいるのでチャネルの利用が制限される(図示していないが、全てのチャネルの利用が制限されているとする)。しかし、ノードm5はノードm1に空きチャネルがないことは分からないので、ノードm1と通信しようとする場合にはノードm1宛にRTSメッセージを送信する。このとき、ノードm5からのRTSメッセージはノードm6によっても受信され、ノードm6はRTSメッセージを受信したことによって所定期間NAV状態となってしまう。すなわち、ノードm5がノードm1と通信できないことが分かっていれば送信する必要のなかったRTSメッセージによって、ノードm6がNAV状態にされたしまったことになる。したがって、このような無駄な(通信が開始できない状況での)RTSメッセージの送信を抑制できれば通信効率の向上を見込める。
【0010】
本発明は上記実情に鑑みてなされたものであって、その目的とするところは、複数のチャネルを利用する無線通信システムにおいて、効率的な通信を実現することのできる技術を提供することにある。
【課題を解決するための手段】
【0011】
上記目的を達成するために本発明では、以下の手段または処理によって、複数のチャネルを利用する無線通信システムにおいて無線通信を行う。すなわち、この無線通信システム内の各ノードは、自ノードおよび自ノードに隣接するノード(自ノードが他のノードの中継を介することなく直接データパケットを通信することのできるノード)が利用可能なチャネルをチャネル状況テーブルとして管理し、このテーブルに基づいてデータパケットの送信に用いるチャネルを選択する。このようなチャネル状況テーブルを用いれば、送信ノードは制御パケットを交換することなく、受信ノードとの間で利用することのできるチャネルを判断することができる。したがって、データパケットの送信の前に送信する制御パケットの数を減らすことが可能となり、通信の効率化が実現される。
【0012】
なお、以下では、自ノードに隣接するノード(中継を介さず直接通信可能なノード)のことを1次隣接ノードという。そして、自ノードには隣接しないが自ノードの1次隣接ノードに隣接するノードのことを、2次隣接ノードという。自ノードは1次隣接ノードと直接通信可能であるため、1次隣接ノードは1ホップ先のノード(1ホップノード)ともいえる。また、自ノードは2次隣接ノードと1次隣接ノードによる中継を介して通信可能であるため、2次隣接ノードは2ホップ先のノード(2ホップノード)ともいえる。なお、
本発明においては、後述するようにデータパケットの通信可能範囲と、チャネル予約通知の通信可能範囲を異ならせているが、「隣接」あるいは「隣接ノード」の語は、データパケットの通信可能範囲を基準とする。したがって、「1次隣接ノード」「2次隣接ノード」の語も、データパケットの通信可能範囲を基準とする。すなわち、チャネル予約通知が直接届くノードであっても、データパケットが直接届かなければ1次隣接ノードではなく2次隣接ノードとなる。
【0013】
以下では、本発明に係る無線通信方法のより具体的な方法について説明する。本無線通信システムにおいて、データパケットを送信しようとするノードは、使用するチャネルと送信ノード(自ノード)と受信ノードとを通知するチャネル予約通知を周囲のノードに対して通信する。このチャネル予約通知は、自ノードから1次隣接ノードおよび2次隣接ノードまで到達するように送信される。
【0014】
チャネル予約通知を受信したノードは、このチャネル予約通知に基づいて、自ノードおよび1次隣接ノードが利用可能なチャネルを記憶しているチャネル状況テーブルを更新する。具体的には、受信したチャネル予約通知に含まれる送信ノードと受信ノードとのいずれかに隣接するノードは、このチャネル予約通知に指定されたチャネルを利用不可能であるとしてチャネル状況テーブルを更新する。送受信ノードの隣接ノードは、電波の干渉を受けるのでそのチャネルを利用することができないからである。なお、上記の「チャネル予約通知に含まれる送信ノードと受信ノードとのいずれかに隣接するノード」には、自ノードあるいは自ノードの1次隣接ノードのいずれも含まれる。
【0015】
なお、上記のチャネル状況テーブルの更新処理において、チャネル予約通知に含まれる送受信ノードに隣接するノードを決定する処理は、自ノードの1次隣接ノードと2次隣接ノードを記憶するトポロジー情報テーブルに基づいて判断することが好ましい。したがって、本無線通信システム内の各ノードは、自ノードの1次隣接ノードと2次隣接ノードをトポロジー情報テーブルとして記憶することが好ましい。このトポロジー情報テーブルは、本無線通信システム内の各ノードが、自ノードの1次隣接ノードを通知するトポロジー情報通知を交換することによって作成することができる。また、トポロジー情報通知は定期的に交換されて、トポロジー情報テーブルは定期的に更新されることがさらに好ましい。
【0016】
上記のように2次隣接ノードまで到達可能なチャネル予約通知を使用することで、本無線通信システムにおける各ノードは自ノードおよび1次隣接ノードが利用可能なチャネルを把握することが可能となる。従来技術では、2ホップ先のノード(2次隣接ノード)から1次隣接ノードに対して通信を開始する場合には、従来はCTSメッセージを受け取ることによって自ノードがチャネルを利用不可能であることを判断していた。これに対して、本発明では2ホップ先のノードが送信するチャネル予約通知を受信できるので、CTSメッセージを用いることなく、送信に使われるチャネルを自ノードは利用不可能であることが判断できる。また、2ホップ先のノード同士が通信を行う場合も、チャネル予約通知を受信することができるので、2ホップ先のノード同士の通信の干渉を受けて隣接ノードがチャネルを利用不可能であることを判断できる。
【0017】
自ノードと1次隣接ノードが利用可能なチャネルをチャネル状況テーブルとして管理することで、データパケットを送信しようとするノードは、容易にデータパケットの送信に用いるチャネルを選択することができる。すなわち、受信ノードとの間で制御パケットのやりとりをすることなく、チャネル状況テーブルを参照するだけでチャネルを選択することができる。
【0018】
なお、チャネル予約通知は、データパケットの伝送距離の少なくとも2倍の距離を伝搬
するように送信することが好ましい。このような構成によれば、全ての2次隣接ノード(2ホップ先のノード)までチャネル予約通知を送信することが可能となり、各ノードがチャネルの利用状況を適切に把握することができる。チャネル予約通知の伝送距離を長くするためには、例えば、チャネル予約通知の送信電波強度を大きくすることが考えられる。また、チャネル予約通知を送信する際に用いる変調方式を異ならせて、SN比が低くても受信可能な変調方式を用いることも考えられる。
【0019】
本無線通信システムにおいて使用する複数のチャネルには、ブロードキャストパケットを送信するためのブロードキャストチャネル、制御パケットを送信するための制御チャネル、およびデータパケットを送信するための複数のデータチャネルが含まれることが好ましい。そして、トポロジー情報通知はブロードキャストチャネルで、チャネル予約通知は制御チャネルで、データパケットはいずれかのデータチャネル上で送信されることが好ましい。また、各ノードは、第1と第2の無線機を有しており、第1の無線機はブロードキャストチャネルに専用に用い、第2の無線機は制御チャネルおよびデータチャネルを切り替えて用いることが好ましい。上記の方法によれば、第2の無線機のみで制御チャネルとデータチャネルを切り替えつつ、パケットの衝突を回避した適切な通信を行える。したがって、第1の無線機はブロードキャスト専用に用いることが可能となる。
【0020】
なお、本発明は、上記処理の少なくとも一部を実行する機能を有する無線通信装置として捉えることができる。また、本発明は、上記処理を実現するためのプログラムとして捉えることもできる。上記手段および処理の各々は可能な限り互いに組み合わせて本発明を構成することができる。
【0021】
例えば、本発明の一態様としての無線通信装置は、自ノードおよび自ノードに隣接するノードである1次隣接ノードが利用可能なチャネルを記憶するチャネル状況テーブルと、1次隣接ノードにデータパケットを送信する際に、前記チャネル状況テーブルに基づいて、自ノードおよび該1次隣接ノードが利用可能なチャネルを、データパケットの送信に利用するチャネルとして選択するチャネル選択手段と、を有することを特徴とする。この無線通信装置は、データパケットの送信の際に、使用するチャネルと送信ノードと受信ノードとを通知するチャネル予約通知を1次隣接ノードおよび自ノードには隣接しないが1次隣接ノードに隣接するノードである2次隣接ノードに送信するチャネル予約通知送信手段と、受信したチャネル予約通知に基づいて、前記チャネル状況テーブルを更新するチャネル状況テーブル更新手段と、をさらに有することが好ましい。
【0022】
また、本発明の一態様としての無線通信プログラムは、自ノードおよび自ノードに隣接するノードである1次隣接ノードが利用可能なチャネルを記憶するチャネル状況テーブルを有する無線通信装置に対して、1次隣接ノードにデータパケットを送信する際に、前記チャネル状況テーブルに基づいて、自ノードおよび該1次隣接ノードが利用可能なチャネルを、データパケットの送信に利用するチャネルとして選択するステップを実行させることを特徴とする。この無線通信プログラムは、前記無線通信装置に対して、データパケット送信の際に、使用するチャネルと送信ノードと受信ノードとを通知するチャネル予約通知を1次隣接ノードおよび自ノードに隣接するノードではないが1次隣接ノードに隣接するノードである2次隣接ノードに送信するステップと、受信したチャネル予約通知に基づいて、前記チャネル状況テーブルを更新するステップと、をさらに実行させることが好ましい。
【発明の効果】
【0023】
本発明によれば、複数のチャネルを利用する無線通信システムにおいて、効率的な通信を実現することが可能となる。
【発明を実施するための最良の形態】
【0024】
以下に図面を参照して、この発明の好適な実施の形態を例示的に詳しく説明する。
【0025】
本実施形態は、複数のチャネルを利用して無線通信をおこなう無線通信システムである。本実施形態では、無線通信ネットワーク内の各ノードが、自ノードおよび隣接ノードが使用可能なチャネル(データチャネル)をチャネル状況テーブルとして管理することで、データパケットの送信に用いるチャネルの選択が容易に行えるようにするとともに、データパケットの送信時にコントロールチャネル上に送信される制御パケットの数を減らす。
【0026】
なお本実施形態では、ブロードキャストチャネル、コントロールチャネル(制御チャネル)がそれぞれ1チャネルずつ、そしてデータチャネルを4チャネル使用するものとする。本実施形態では、FDMA(Frequency Division Multiple Access:周波数分割多元接続)方式によって、多チャネル接続を実現する。もっとも、CDMA(Code Division Multiple Access:符号分割多元接続)や、OFDMA(Orthogonal Frequency Division Multiple Access:直交周波数分割多元接続)などの無線通信方式によって、多チャネル接続を実現しても構わない。
【0027】
以下では、チャネル状況テーブルに基づいてチャネル選択を行う方法を詳しく説明する。また、このようなチャネル状況テーブルの作成方法についても詳しく説明する。
【0028】
<機能構成>
まず、本実施形態における無線通信装置1について説明する。無線通信装置1は、ハードウェア構成としては、バスを介して接続されたCPU(中央演算処理装置)、主記憶装置(RAM)、補助記憶装置(ROM)、通信インタフェースなどを備えるように構成されても良い。無線通信装置1には、通信インタフェース(無線機)が2つ備えられており、一方はブロードキャストチャネルのみを用い、他方はコントロールチャネルと4つのデータチャネルを切り替えて利用する。
【0029】
図1は、無線通信装置1の機能ブロック例を示す図である。本実施形態における無線通信装置1は、補助記憶装置に記憶された各種のプログラム(OS,アプリケーション等)が主記憶装置にロードされCPUによって実行されることによって、パケット受信部2、データパケット処理部3、チャネル状況テーブル更新部4、トポロジー情報テーブル更新部5、チャネル状況テーブル6、トポロジー情報テーブル7、チャネル選択部8、データパケット生成部9、RTSメッセージ生成部10、Helloメッセージ生成部11、パケット送信部12として機能する。また、本実施形態における無線通信装置1の全部または一部の機能は、専用のチップによって構成されても良い。
【0030】
トポロジー情報テーブル7は、自ノードの隣接ノードおよび2ホップ先のノードを記憶するテーブルである。図3は、トポロジー情報テーブルの例を示す図であり、図2に示すネットワークトポロジーのノードaが有するトポロジー情報テーブルである。トポロジー情報テーブルには、ノードID21、隣接ノード数22、隣接ノードID23、2ホップノード24が格納される。ノードID21には、このテーブルを持つノード(ノードa)の隣接ノードのIDが格納される。隣接ノード数22には、各ノードの隣接ノードの数が格納される。なお、ここでノードaは隣接ノードの数には含まれない。すなわち、例えば、ノードbの隣接ノードは、ノードa,c,d,g,mの5つであるが、ノードaを除いた「4」が隣接ノード数22に格納される。隣接ノードID23には、各ノードの隣接ノードのIDが格納される。ここでも、ノードaは省略される。2ホップノード24には、各ノードの隣接ノードのうちから、ノードaから2ホップ先のノードが格納される。具体的には、各ノードの隣接ノードであって、ノードaの隣接ノードでないノードが、2ホップ先のノードに該当する。
【0031】
チャネル状況テーブル6は、自ノードおよび隣接ノードが利用可能なチャネルを記憶するテーブルである。図4は、チャネル状況テーブルの例を示す図であり、図2に示すネットワークトポロジーおよび通信状態におけるノードaが有するチャネル状況テーブルである。なお、図2において、通信中のノード間は矢印付きの線で結ばれており、その横に通信に使用しているデータチャネルが示されている。チャネル状況テーブル6は、ノードID31、状態32、チャネル状況33が格納される。状態32は、各ノードの通信状態として「アイドル」「通信中」のいずれかが格納される。チャネル状況33には、各ノードのチャネルの利用状況を示すものである。図4において、白丸はそのチャネルが利用可能であることを、黒三角は周囲のノードが通信中であるため干渉を受けていることを、黒四角はそのノードが通信に利用中であることを示す。なお、干渉中や利用中の場合には、そのチャネルが利用可能になるまでの時間である送信期間(デュレーション)が同時に格納される。なお、本チャネル状況テーブル6において、状態32はチャネル状況33から求められる(チャネル状況として、通信中のチャネルを有するノードは通信中であり、それ以外はアイドル)ため、状態32は省略することが可能である。
【0032】
このチャネル状況テーブル6に基づいて、このテーブルを所有するノードは、隣接ノードが利用可能なチャネルを把握することができる。また、自ノードが利用可能なチャネルも、隣接ノードが通信に利用しているチャネル(図4では、ノードkが利用しているチャネル3)以外のチャネルを利用可能であると把握することができる。
【0033】
なお、本実施形態では、チャネル状況テーブル6とトポロジー情報テーブル7は、異なるテーブルとして構成しているが、ノードIDをキーとして1つのテーブルとして構成しても構わない。
【0034】
パケット受信部2は、他の無線通信装置からパケットを受信する。パケット受信部2は、受信したパケットの種類に応じて、そのパケットをデータパケット処理部3、チャネル状況テーブル更新部4、またはトポロジー情報テーブル更新部5のいずれかに渡す。データパケット処理部3に渡されたデータパケットは、さらに上位層へと渡される。
【0035】
受信部2によって受信されたRTSメッセージ(チャネル予約通知)は、チャネル状況テーブル更新部4に渡される。チャネル状況テーブル更新部4は、このRTSメッセージに基づいてチャネル状況テーブルを更新する。
【0036】
受信部2によって受信されたHelloメッセージ(トポロジー情報通知)は、トポロジー情報テーブル更新部5に渡される。トポロジー情報テーブル更新部5は、このHelloメッセージに基づいてトポロジー情報テーブル7を更新する。
【0037】
データパケット生成部9は、送信するデータパケットを生成する。チャネル選択部8は、データパケットの送信に先立って、チャネル状況テーブル6に基づいて利用するチャネルを選択する。RTSメッセージ生成部10は、データパケットの送信の際に、使用するチャネル、送信ノード(自ノード)および受信ノードを周囲のノードに知らせるチャネル予約通知であるRTSメッセージを生成する。
【0038】
Helloメッセージ生成部11は、トポロジー情報テーブル7に基づいて、自ノードの隣接ノードを通知するトポロジー情報通知であるHelloメッセージを生成する。Helloメッセージ生成部11は、定期的にHelloメッセージを生成する。
【0039】
パケット送信部12は、データパケット生成部9によって生成されたデータパケット、RTSメッセージ生成部10によって生成されたRTSメッセージ、Helloメッセー
ジ生成部によって生成されたHelloメッセージを送信する。なお、パケット送信部12は、データパケットは4つのデータチャネルのいずれかを用いて、RTSメッセージはコントロールチャネルを用いて、Helloメッセージはブロードキャストチャネルを用いて送信する。また、パケット送信部12は、RTSメッセージ送信の際に、送信電波強度を大きくしたり、低SN比でも受信可能な変調方式を用いることで、RTSメッセージの伝搬距離をデータパケットやHelloメッセージの少なくとも2倍とする。このように、RTSメッセージを2ホップ先のノードまで直接まで届くようにしたことで、2ホップ先のノードまでチャネルを利用することを通知することが可能となり、チャネル状況テーブルの更新が容易となる。
【0040】
<処理フロー>
[チャネル選択処理]
次に、チャネル状況テーブル6に基づいて、データパケットの送信の際に利用するチャネルを選択する処理について説明する。なお、ここではチャネル状況テーブル6が作成されていることを前提としてチャネル選択処理について説明し、チャネル状況テーブル6の作成方法については後述する。図5,6は、チャネル選択部8がおこなう、チャネル選択処理の流れを示すフローチャートである。
【0041】
図5は、チャネル選択処理の全体の流れを示すフローチャートである。チャネル選択部8は、チャネル状況テーブル6を参照して、受信ノードが通信中であるか否か判定する(S101)。受信ノードが通信中である場合(S101−YES)は、受信ノードが通信を終了するまで待機する(S106)。受信ノードが通信中でない場合(S101−NO)は、チャネル選択部8は、チャネル状況テーブル6に基づいて、自ノード(送信ノード)が干渉を受けているチャネルを取得する(S102)。
【0042】
自ノード周囲の干渉チャネル抽出処理の詳細を、図6のフローチャートを参照して説明する。チャネル選択部8は、まず、干渉チャネルを格納する干渉チャネルリストをクリアする(S201)。次に、チャネル状況テーブル6を参照して、隣接ノードに通信中のノードが存在するかを判定する(S202)。隣接ノードに通信中のノードが存在する場合(S202−YES)は、そのノードが通信に利用しているチャネルを干渉チャネルリストに追加する(S203)。そして、全ての通信中のノードについて干渉チャネルを取得したか判定し(S204)、処理していない通信中のノードがある場合(S204−NO)にはS203に戻って干渉チャネルを干渉チャネルリストに追加する。全ての通信中のノードについて干渉チャネルを取得した場合(S204−YES)は、処理を終了しS103に進む。また、隣接ノードに通信中のノードが存在しない場合(S202−NO)は、干渉チャネルリストを空のまま処理を終了しS103に進む。
【0043】
図5のフローチャートの説明に戻る。上記のように自ノードの干渉チャネルを取得した後に、チャネル選択部8は、チャネル状況テーブル6を参照して、受信ノードが干渉を受けているチャネルを取得する(S103)。チャネル選択部8は、チャネル状況テーブル6から受信ノードが干渉を受けているチャネルを取得し、前述の干渉チャネルリストに追加する。
【0044】
チャネル選択部8は、干渉チャネルリストに基づいて、空きチャネルがあるか判定する(S104)。空きチャネルがない場合(S104−NO)は、空きチャネルができるまで待機(S107)した後、再びS101以降の処理を繰り返す。空きチャネルがある場合(S104−YES)は、その中から任意のチャネルを送信チャネルとして選択する(S105)。
【0045】
図4のチャネル状況テーブルが示すチャネル状況(図2の場合)において、ノードaが
送信する場合のチャネル選択処理を説明する。ノードaが干渉を受けているチャネルは、通信中のノードkが利用しているチャネル3のみである。受信ノードがノードbの場合には、ノードbはチャネル4で干渉を受けているので、ノードaはチャネル1か2を用いてノードbと通信できることが分かる。また、受信ノードがノードeの場合には、ノードeはチャネル1と3で干渉を受けているので、ノードaはチャネル2か4を用いてノードeと通信できることが分かる。
【0046】
このように、チャネル状況テーブル6が構築されている場合には、送信ノード(自ノード)と受信ノードがともに利用可能なチャネルを容易に選択することができる。
【0047】
[データパケット送信処理]
次に、データパケットを送信する際の処理について図7を参照して説明する。まず、ノードnSは、DIFSとバックオフだけ待機してコントロールチャネルが利用されていないことを確認してから、RTSメッセージをコントロールチャネル上で送信する。なお、ノードnSは、RTSメッセージをコントロールチャネル上で送信した後に、無線機を選択したチャネルに合わせる。
【0048】
図8は、RTSメッセージのフォーマットを示す。フレーム制御41には、このメッセージがRTSメッセージであることを示す値が格納される。送信期間42には、ノードnS,nD間の通信が終了するまでの時間が格納される。受信ノードアドレス43には受信ノードのMACアドレスが、送信ノードアドレス44には送信ノードのMACアドレスが、それぞれ格納される。送信チャネル45には、ノードnS,nD間での通信の際に利用するチャネルが格納される。FCS46は、通信エラーを検知するための値が格納される。
【0049】
ノードnSから送信されたRTSメッセージは、ノードnDおよびノードn1〜n4によって受信される。自ノードが受信ノードとして指定されていないRTSメッセージを受信したノードn1〜n4は、RTSメッセージに格納されている送信チャネル45を、送信期間42の期間だけ利用不可能(NAV)と判断する。より詳細には、ノードn1,n3は自ノードが指定されたチャネルを利用不可と判断する。ノードn2はノードn1が指定されたチャネルを利用不可と判断し、ノードn4はノードn3が指定されたチャネルを利用不可と判断する。これにより、ノードnS,nD間の通信は他のノードからの干渉を受けることを防止できる。
【0050】
自ノードが受信ノードとして指定されているRTSメッセージを受信したノードnDは、受信を了解するCTSメッセージをノードnSに対して送信する。ノードnDは、RTSメッセージの受信後、SIFS時間だけ待機してから、RTSメッセージに格納されている送信チャネル45上で、CTSメッセージを送信する。ノードnSは、CTSメッセージを確認した後に、データパケットを送信する。
【0051】
このように、RTSメッセージをその他の通信よりも2倍の距離伝搬するように送信することで、RTSメッセージを1回送信するだけで、2ホップ先のノードまでチャネルの予約を行うことができる。したがって、データパケットの送信に先立って行うコントロールパケットは、1つのRTSメッセージのみとなる。コントロールチャネル上に送信されるパケットを減らすことができるので、通信量が多くなってもコントロールパケットの通信がボトルネックとなってスループットが低下することを抑制できる。
【0052】
なお、通信を終了したノードnS,nDは、その後データの送信を別のノードと行おうとする場合には、所定の期間待機することが好ましい。ノードnS,nDは、無線機が利用するチャネルを、コントロールチャネルからデータチャネルに切り替えているため、他
のノードが送信したRTSメッセージを取得できていない。したがって、チャネルの状況を正しく把握できていない可能性がある。したがって、ノードnS,nDは通信終了後、(CTS長+ACK長+SIFS長×3+最大フレーム長)/(通信速度)で表される時間だけ、コントロールチャネル上で受信してから新たな通信を開始することが好ましい。この期間待つことによって、ノードnS,nD間の通信開始後に始まった通信を妨害することを回避することができる。なお、ノードnS,nD間で同一のチャネルを利用して再度通信を行う場合には、この時間を待つことなく、再度RTSメッセージを送信して通信を開始することができる。これによってスループットの向上を図ることができる。
【0053】
[トポロジー情報テーブル作成処理]
次に、トポロジー情報テーブル7を作成する処理について説明する。トポロジー情報テーブル7は、各ノードが自ノードの隣接ノードをHelloメッセージによって通知しあうことで、作成される。なお、トポロジー情報テーブル7は、チャネル状況テーブル6を作成する際に参照されるものである。
【0054】
各ノードのHelloメッセージ生成部11は、定期的にHelloメッセージを生成し、パケット送信部12が生成されたHelloメッセージを送信する。図9はHelloメッセージのフォーマットを示す。フレーム制御51には、このメッセージがHelloメッセージであることを示す値が格納される。送信期間52には、このメッセージの送信期間が格納される。受信ノードアドレス53には受信ノードのMACアドレスが、送信ノードアドレスには送信ノード(自ノード)のMACアドレスが、それぞれ格納される。隣接ノード数55には、自ノードに隣接するノード(1ホップで通信できるノード)の数が格納される。隣接ノード56には、隣接ノードのIDが格納される。FCS57は、通信エラーを検知するための値が格納される。
【0055】
パケット送信部12は、生成されたHelloメッセージをブロードキャストチャネル上で送信する。図10は、Helloメッセージを受信したノードが行う処理の流れを示すフローチャートである。
【0056】
Helloメッセージを受信したノードは、このHelloメッセージをトポロジー情報テーブル更新部5に渡す(S301)。トポロジー情報テーブル更新部5は、このHelloメッセージの送信ノードが新規の隣接ノードであるか、すなわちトポロジー情報テーブル7に隣接ノードとして格納されていないノードであるか判定する(S302)。送信ノードが新規の隣接ノードである場合(S302−YES)には、トポロジー情報テーブル7に、このノードを隣接ノードとして登録する(S303)。トポロジー情報テーブル更新部5は、Helloメッセージに格納されている隣接ノード数55と隣接ノードID56を用いてトポロジー情報テーブル7を更新する(S304)。さらに、トポロジー情報テーブル更新部5は、2ホップノードの更新も行う(S305)。具体的には、この送信ノードの隣接ノードのうち、トポロジー情報テーブル7に隣接ノードとして登録されていないノードは、自ノードの2ホップ先のノードであるとしてトポロジー情報テーブル7を更新する。また、トポロジー情報テーブル7に、このHelloメッセージの送信ノードが2ホップ先ノードとして登録されている場合には、この送信ノードは隣接ノードに変更になったということであるから2ホップ先ノードからは削除する。
【0057】
このように、Helloメッセージを交換することで、ネットワーク内の各ノードは、自ノードの隣接ノードおよび2ホップ先のノードを把握することができる。
【0058】
[チャネル状況テーブル作成処理]
最後に、チャネル状況テーブル6を作成する処理について説明する。チャネル状況テーブル6は、データパケット送信に先だって送信されるRTSメッセージとトポロジー情報
テーブル7に基づいて作成される。
【0059】
図11は、RTSメッセージを受信したノードが行うチャネル状況テーブル作成(更新)処理の流れを示すフローチャートである。
【0060】
RTSメッセージを受信したノードは、このRTSメッセージをチャネル状況テーブル更新部4に渡す(S401)。チャネル状況テーブル更新部4は、RTSメッセージに格納されている送信ノードまたは受信ノードが、自ノードの隣接ノードであるか否か判断する。送信ノードはRTSメッセージの送信ノードアドレス44(図8)から、受信ノードはRTSメッセージの受信ノードアドレス43から取得できる。また、これら送受信ノードが隣接ノードであるか否かはトポロジー情報テーブル7を参照することで判定できる。
【0061】
RTSメッセージに格納されている送信ノードあるいは受信ノードが自ノードの隣接ノードである場合(S402−YES)には、そのノードの状態を「通信中」に更新するとともに、RTSメッセージに格納されている送信チャネルを「通信中」とし、そのチャネルの送信期間(リリースタイム)を設定する(S403)。
【0062】
次に、RTSメッセージに格納されている送信ノードまたは受信ノードに隣接するノードはRTSメッセージに指定された送信チャネルが干渉中であるとして、チャネル状況テーブル更新部4はチャネル状況テーブル6を更新する(S404)。RTSメッセージに格納されている送信ノードまたは受信ノードに隣接するノードは、トポロジー情報テーブル7を参照して、隣接ノードID23に送信ノードまたは受信ノードのいずれかが含まれるノードとして判断できる。
【0063】
図2のトポロジー状況、および図3のトポロジー情報テーブルを例に、チャネル状況テーブル6の更新方法を説明する。
【0064】
ノードjは、ノードhとチャネル1で通信することを通知するRTSメッセージを送信する。このRTSメッセージを受信したノードaは、RTSメッセージに指定された送受信ノード(ノードj,h)が、自ノードの隣接ノードであるか判断する。トポロジー情報テーブル7(図3)を参照すると、ノードj,hのいずれも自ノードの隣接ノードではないので、隣接ノードの状態32は更新しない。次に、送受信ノードの隣接ノードのチャネル状況33を更新する。ノードj,hの隣接ノードは、隣接ノードID23にノードjまたはhが含まれるノードeであることが分かる。したがって、チャネル状況テーブル更新部4は、ノードeはチャネル1で干渉を受けているとしてチャネル状況テーブル6を更新する(図4)。
【0065】
ノードmは、ノードgとチャネル4で通信することを通知するRTSメッセージを送信する。このRTSメッセージを受信したノードaは、上記と同様に、RTSメッセージに指定された送受信ノード(ノードg,m)が、自ノードの隣接ノードであるか判断する。これらのノードは隣接ノードではないので、隣接ノードの状態32は更新しない。次に、ノードg,mの隣接ノードがノードb,cであることをトポロジー情報テーブル7から取得する。そして、ノードb,cは、チャネル4で干渉を受けているとしてチャネル状況テーブル6を更新する。
【0066】
ノードiは、ノードkとチャネル3で通信することを通知するRTSメッセージを送信する。このRTSメッセージを受信したノードaは、ノードkが自ノードの隣接ノードであるため、ノードkの状態を「通信中」に更新するとともに、ノードkはチャネル3で通信中であるとしてチャネル状況テーブル6を更新する。また、ノードi,kの隣接ノードであるノードd,eはチャネル3で干渉を受けているとしてチャネル状況テーブル6を更
新する。
【0067】
なお、上記の説明では、RTSメッセージに格納されている送受信ノードが自ノードの隣接ノードであるか否かで処理を分けている。具体的には、送受信ノードのいずれかが自ノードの隣接ノードである場合には、その隣接ノードのチャネル状況と、自ノードのチャネル状況を同時に更新していることになる。しかしながら、この場合も、RTSメッセージに格納されている送受信ノードのいずれかに隣接するノードが指定されたチャネルを利用不可能であるとしてチャネル状況テーブルを更新していることに変わりはない。送信ノードが自ノードの2ホップ先ノードであり、受信ノードが自ノードの隣接ノードである場合を例にとって説明すると、受信ノードと自ノードはそれぞれ指定されたチャネルが利用不可能としてチャネル状況テーブルが更新されるが、受信ノードは送信ノードの隣接ノードであり、自ノードは受信ノードの隣接ノードである。すなわち、図11のフローチャートにおけるS403、S404のいずれの処理も、受信したRTSメッセージに含まれる送信ノードと受信ノードとのいずれかに隣接するノードは、そのRTSメッセージに指定されたチャネルと利用不可能であるとしてチャネル状況テーブルを更新する処理に該当する。
【0068】
<本実施形態の効果>
本実施形態における各ノードは、データパケット等の2倍の伝送距離でRTSメッセージを周囲のノードに通知しあうことで、チャネル状況テーブルとしてチャネルの利用状況を把握する。各ノードはデータパケットの送信の際には、このチャネル状況テーブルを参照することで、容易に自ノードおよび受信ノードが利用可能なチャネルを取得することができる。
【0069】
また、RTSメッセージを2ホップ先のノードまで直接通知することで、データパケットの送信に先立ってコントロールチャネル上で送信するパケットの、RTSメッセージ1つのみにすることができる。したがって、通信量が増えた場合であっても、コントロールチャネルがコントロールパケットで埋まってしまう可能性が減少する。
【0070】
なお、RTSメッセージの伝送距離をデータパケット等の2倍以上として2ホップ先のノード全てがRTSメッセージを受信できることが望ましいが、RTSメッセージの伝送距離がデータパケット等の2倍より小さい場合でも、パケットが衝突する可能性を減らす効果を得ることはできる。
【0071】
また、2つの無線機のうち一方でコントロールチャネルとデータチャネルを切り替えて上記の方法で通信を行うことができるため、他方の無線機をブロードキャストチャネルに専用に割り当てることが可能となる。したがって、ブロードキャスト通信は常時行うことが可能となる。
【0072】
さらに、本実施形態ではHelloメッセージを交換して2ホップ先のトポロジーを把握しているので、2ホップ先のノードに対して唯一の隣接ノードや、最も多くの2ホップ先に対して中継ノードとなっている隣接ノードを、フラッディングにおける中継ノードとして選択することで、効率的なフラッディングを実行することができる。
【0073】
<その他>
本実施形態において説明した無線通信方法は、アドホック無線通信ネットワークに適用するとより効果的である。アドホック無線通信ネットワークは、移動端末同士が一時的に構築する自律型無線ネットワークである。アドホック無線通信ネットワークでは、無線通信装置間で距離が離れていて直接通信(1ホップ通信)できない場合には、途中に存在する無線通信装置を中継してマルチホップ通信することによって情報を交換する。マルチホ
ップ通信においては、各ホップにおいてチャネル干渉が発生する可能性があるため、ホップ数が増加するにつれて著しくスループットが低下してしまうことが知られている。したがって、チャネル干渉を効果的に回避する上記の無線通信方法を、アドホック無線通信ネットワークに適用することで、大きな効果を得ることが可能である。なお、アドホック無線通信ネットワークの例としては、車両に搭載された無線通信装置によって構成される車車間アドホック無線通信システムがある。
【0074】
上記で説明したHelloメッセージの送信間隔は一定の間隔とする必要はない。また、Helloメッセージを受信するたびにトポロジー情報テーブル7の更新処理を行う必要もない。例えば、車車間アドホック無線通信システムにおいては、車速センサから取得した自車の車速に基づいて、Helloメッセージの送信間隔を決定しても良い。また、車速に基づいて、同じノードからHelloメッセージを何回受信するたびにトポロジー情報テーブル7の更新処理を行うか決定しても良い。自車の車速が遅い場合には、ネットワークトポロジーが急激には変化しないと考えられるので、Helloメッセージの送信間隔を長くしたり、より多くのHelloメッセージを受信してからトポロジー情報テーブル7を更新することで無線通信装置の処理負荷を減らすことが可能となる。また、自車の車速ではなく、他車の車速や、自車と他車との相対速度等に基づいて、Helloメッセージの送信間隔や受信時の処理間隔を決定することもできる。
【図面の簡単な説明】
【0075】
【図1】本実施形態に係る無線通信装置の機能ブロック例を示す図である。
【図2】本実施形態における無線通信ネットワークのトポロジーの例を示す図である。
【図3】トポロジー情報テーブルの例を示す図である。
【図4】チャネル状況テーブルの例を示す図である。
【図5】チャネル選択処理の流れを示すフローチャートである。
【図6】チャネル選択処理における送信ノードの干渉チャネルを取得する処理の流れを示すフローチャートである。
【図7】(a)はデータパケット送信時に送受信されるパケットのシーケンスを示す図である。(b)は、その時のネットワークトポロジーを示す図である。
【図8】RTSメッセージのフォーマットを示す図である。
【図9】Helloメッセージのフォーマットを示す図である。
【図10】Helloメッセージ受信時に行うトポロジー情報テーブル更新処理の流れを示すフローチャートである。
【図11】RTSメッセージ受信時に行うチャネル状況テーブル更新処理の流れを示すフローチャートである。
【図12】(a)は従来技術におけるデータパケット送信時に送受信されるパケットのシーケンスを示す図である。(b)は、その時のネットワークトポロジーを示す図である。
【図13】従来技術において、無駄なRTSメッセージによって周囲のノードをNAV状態にしてしまう状況を説明する図である。
【符号の説明】
【0076】
1 無線通信装置
2 パケット受信部
3 データパケット処理部
4 チャネル状況テーブル更新部
5 トポロジー情報テーブル更新部
6 チャネル状況テーブル
7 トポロジー情報テーブル
8 チャネル選択部
9 データパケット生成部
10 RTSメッセージ生成部
11 Helloメッセージ生成部
12 パケット送信部
【技術分野】
【0001】
本発明は、複数のチャネルを利用して行う無線通信に関する。
【背景技術】
【0002】
従来、無線LANなどではCSMA/CA(Carrier Sense Multiple Access with Collision Avoidance:搬送波感知多重アクセス/回避)方式を用いて無線パケット通信が行われている。CSMA/CA方式では、共通の無線チャネルを共用して通信するために、他の無線端末が無線チャネルを使用していないか確認してから、受信ノードに対して送信要求であるRTS(Request To Send)メッセージを送信する。RTSメッセージを受信
したノードは、送信ノードに対して応答確認であるCTS(Clear To Send)メッセージ
を返す。送信ノードは、CTSメッセージを受信してから実際のデータパケットの送信を開始する。なお、RTSメッセージおよびCTSメッセージには、チャネルを占有する時間、すなわちデータパケットの送信が終了するまでの時間が含まれる。
【0003】
RTSメッセージを受信した送信ノードの隣接ノード、および、CTSメッセージを受信した受信ノードの隣接ノードは、送受信ノードがチャネルを占有する期間は送受信を行わない。このようにして、1つのチャネルを共用して通信する際に、パケットの衝突を回避している。
【0004】
上記の説明は1つのチャネルを共用する無線通信方法であるが、非特許文献1には複数のチャネルを共用する無線通信方法が記載されている。非特許文献1に記載の無線通信方法では、複数のチャネルのうち1つを制御チャネルとして利用し、その他のチャネルをデータパケット用に利用する。各ノードは、制御チャネルを利用してデータパケットの送信の際に利用するチャネルを決定する。
【0005】
非特許文献1に記載の無線通信方法の具体的な手順を図12を参照して説明する。図12(b)のネットワークトポロジーの状況において、ノードmSからノードmDへデータパケットを送信する場合の通信方法を図12(a)に基づいて説明する。なお、ノードm1,m2はノードmSの通信範囲内に位置し、ノードm3,m4はノードmDの通信範囲内に位置している。まず、送信を開始しようとするノードmSは、自ノードが利用可能なチャネルを格納したRTSメッセージを送信する。このRTSメッセージを受信した隣接ノードm1,m2は所定期間、全てのチャネルにおいて送信禁止状態(NAV:Network Allocation Vector)になる。また、このRTSメッセージを受信したノードmDは、R
TSメッセージに格納されているノードmSの利用可能チャネルのうちから、自ノードが利用可能なチャネル(チャネルiとする)を格納したCTSメッセージを送信する。CTSメッセージを受信した隣接ノードm3,m4は、ノードmS,mD間の通信が終了するまでチャネルiでの通信を禁止する。CTSメッセージを受信したノードmSは、チャネルiを利用してデータパケットの送信を行うことを周囲に通知するためにRES(REServation)メッセージを送信する。RESメッセージを受信した隣接ノードm1,m2は、
ノードmS,mD間がチャネルiでの通信を終了するまで、チャネルiでの通信を禁止する。
【0006】
非特許文献1に記載の技術では、このような方法によって、複数のチャネルのうちから利用するチャネルを選択するとともに、パケットの衝突を回避している。このように複数のチャネルを利用可能とすることで、システム全体としてスループットの向上を図ることができる。
【非特許文献1】Shih-Lin Wu et al., "A New Multi-Channel MAC Protocol with On-Demand Channel Assignment for Multi-Hop Mobile Ad Hoc Networks", Proceedings of the Fifth International Symposium on Parallel Architectures, Algorithms, and Networks(ISPAN '00), IEEE, 2000
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、上記のような従来技術によって複数のチャネルを利用して通信する場合には、下記のような問題が生じていた。
【0008】
第一に、データパケットの送信に先立って、RTS,CTS,RESの3つの制御パケットを制御チャネル上で通信する必要がある。したがって、通信量が多くなるとこれらの制御パケットで制御チャネルが使い果たされてしまう可能性がある。このような状況になると、データチャネルが空いていても制御チャネルがボトルネックとなってスループットが低下してしまう可能性がある。また、ブロードキャストパケットも制御チャネル上で送信される場合には、さらに制御チャネルにおいて輻輳が発生する可能性が高まる。したがって、制御チャネル上で送信されるパケットの量を減らすことが望まれる。
【0009】
第二に、利用可能なチャネルがないノードに対して、RTSメッセージを送信してしまう可能性がある。例えば、図13のような状況では、ノードm1は、ノードmSの通信可能範囲内にいるのでチャネルの利用が制限される(図示していないが、全てのチャネルの利用が制限されているとする)。しかし、ノードm5はノードm1に空きチャネルがないことは分からないので、ノードm1と通信しようとする場合にはノードm1宛にRTSメッセージを送信する。このとき、ノードm5からのRTSメッセージはノードm6によっても受信され、ノードm6はRTSメッセージを受信したことによって所定期間NAV状態となってしまう。すなわち、ノードm5がノードm1と通信できないことが分かっていれば送信する必要のなかったRTSメッセージによって、ノードm6がNAV状態にされたしまったことになる。したがって、このような無駄な(通信が開始できない状況での)RTSメッセージの送信を抑制できれば通信効率の向上を見込める。
【0010】
本発明は上記実情に鑑みてなされたものであって、その目的とするところは、複数のチャネルを利用する無線通信システムにおいて、効率的な通信を実現することのできる技術を提供することにある。
【課題を解決するための手段】
【0011】
上記目的を達成するために本発明では、以下の手段または処理によって、複数のチャネルを利用する無線通信システムにおいて無線通信を行う。すなわち、この無線通信システム内の各ノードは、自ノードおよび自ノードに隣接するノード(自ノードが他のノードの中継を介することなく直接データパケットを通信することのできるノード)が利用可能なチャネルをチャネル状況テーブルとして管理し、このテーブルに基づいてデータパケットの送信に用いるチャネルを選択する。このようなチャネル状況テーブルを用いれば、送信ノードは制御パケットを交換することなく、受信ノードとの間で利用することのできるチャネルを判断することができる。したがって、データパケットの送信の前に送信する制御パケットの数を減らすことが可能となり、通信の効率化が実現される。
【0012】
なお、以下では、自ノードに隣接するノード(中継を介さず直接通信可能なノード)のことを1次隣接ノードという。そして、自ノードには隣接しないが自ノードの1次隣接ノードに隣接するノードのことを、2次隣接ノードという。自ノードは1次隣接ノードと直接通信可能であるため、1次隣接ノードは1ホップ先のノード(1ホップノード)ともいえる。また、自ノードは2次隣接ノードと1次隣接ノードによる中継を介して通信可能であるため、2次隣接ノードは2ホップ先のノード(2ホップノード)ともいえる。なお、
本発明においては、後述するようにデータパケットの通信可能範囲と、チャネル予約通知の通信可能範囲を異ならせているが、「隣接」あるいは「隣接ノード」の語は、データパケットの通信可能範囲を基準とする。したがって、「1次隣接ノード」「2次隣接ノード」の語も、データパケットの通信可能範囲を基準とする。すなわち、チャネル予約通知が直接届くノードであっても、データパケットが直接届かなければ1次隣接ノードではなく2次隣接ノードとなる。
【0013】
以下では、本発明に係る無線通信方法のより具体的な方法について説明する。本無線通信システムにおいて、データパケットを送信しようとするノードは、使用するチャネルと送信ノード(自ノード)と受信ノードとを通知するチャネル予約通知を周囲のノードに対して通信する。このチャネル予約通知は、自ノードから1次隣接ノードおよび2次隣接ノードまで到達するように送信される。
【0014】
チャネル予約通知を受信したノードは、このチャネル予約通知に基づいて、自ノードおよび1次隣接ノードが利用可能なチャネルを記憶しているチャネル状況テーブルを更新する。具体的には、受信したチャネル予約通知に含まれる送信ノードと受信ノードとのいずれかに隣接するノードは、このチャネル予約通知に指定されたチャネルを利用不可能であるとしてチャネル状況テーブルを更新する。送受信ノードの隣接ノードは、電波の干渉を受けるのでそのチャネルを利用することができないからである。なお、上記の「チャネル予約通知に含まれる送信ノードと受信ノードとのいずれかに隣接するノード」には、自ノードあるいは自ノードの1次隣接ノードのいずれも含まれる。
【0015】
なお、上記のチャネル状況テーブルの更新処理において、チャネル予約通知に含まれる送受信ノードに隣接するノードを決定する処理は、自ノードの1次隣接ノードと2次隣接ノードを記憶するトポロジー情報テーブルに基づいて判断することが好ましい。したがって、本無線通信システム内の各ノードは、自ノードの1次隣接ノードと2次隣接ノードをトポロジー情報テーブルとして記憶することが好ましい。このトポロジー情報テーブルは、本無線通信システム内の各ノードが、自ノードの1次隣接ノードを通知するトポロジー情報通知を交換することによって作成することができる。また、トポロジー情報通知は定期的に交換されて、トポロジー情報テーブルは定期的に更新されることがさらに好ましい。
【0016】
上記のように2次隣接ノードまで到達可能なチャネル予約通知を使用することで、本無線通信システムにおける各ノードは自ノードおよび1次隣接ノードが利用可能なチャネルを把握することが可能となる。従来技術では、2ホップ先のノード(2次隣接ノード)から1次隣接ノードに対して通信を開始する場合には、従来はCTSメッセージを受け取ることによって自ノードがチャネルを利用不可能であることを判断していた。これに対して、本発明では2ホップ先のノードが送信するチャネル予約通知を受信できるので、CTSメッセージを用いることなく、送信に使われるチャネルを自ノードは利用不可能であることが判断できる。また、2ホップ先のノード同士が通信を行う場合も、チャネル予約通知を受信することができるので、2ホップ先のノード同士の通信の干渉を受けて隣接ノードがチャネルを利用不可能であることを判断できる。
【0017】
自ノードと1次隣接ノードが利用可能なチャネルをチャネル状況テーブルとして管理することで、データパケットを送信しようとするノードは、容易にデータパケットの送信に用いるチャネルを選択することができる。すなわち、受信ノードとの間で制御パケットのやりとりをすることなく、チャネル状況テーブルを参照するだけでチャネルを選択することができる。
【0018】
なお、チャネル予約通知は、データパケットの伝送距離の少なくとも2倍の距離を伝搬
するように送信することが好ましい。このような構成によれば、全ての2次隣接ノード(2ホップ先のノード)までチャネル予約通知を送信することが可能となり、各ノードがチャネルの利用状況を適切に把握することができる。チャネル予約通知の伝送距離を長くするためには、例えば、チャネル予約通知の送信電波強度を大きくすることが考えられる。また、チャネル予約通知を送信する際に用いる変調方式を異ならせて、SN比が低くても受信可能な変調方式を用いることも考えられる。
【0019】
本無線通信システムにおいて使用する複数のチャネルには、ブロードキャストパケットを送信するためのブロードキャストチャネル、制御パケットを送信するための制御チャネル、およびデータパケットを送信するための複数のデータチャネルが含まれることが好ましい。そして、トポロジー情報通知はブロードキャストチャネルで、チャネル予約通知は制御チャネルで、データパケットはいずれかのデータチャネル上で送信されることが好ましい。また、各ノードは、第1と第2の無線機を有しており、第1の無線機はブロードキャストチャネルに専用に用い、第2の無線機は制御チャネルおよびデータチャネルを切り替えて用いることが好ましい。上記の方法によれば、第2の無線機のみで制御チャネルとデータチャネルを切り替えつつ、パケットの衝突を回避した適切な通信を行える。したがって、第1の無線機はブロードキャスト専用に用いることが可能となる。
【0020】
なお、本発明は、上記処理の少なくとも一部を実行する機能を有する無線通信装置として捉えることができる。また、本発明は、上記処理を実現するためのプログラムとして捉えることもできる。上記手段および処理の各々は可能な限り互いに組み合わせて本発明を構成することができる。
【0021】
例えば、本発明の一態様としての無線通信装置は、自ノードおよび自ノードに隣接するノードである1次隣接ノードが利用可能なチャネルを記憶するチャネル状況テーブルと、1次隣接ノードにデータパケットを送信する際に、前記チャネル状況テーブルに基づいて、自ノードおよび該1次隣接ノードが利用可能なチャネルを、データパケットの送信に利用するチャネルとして選択するチャネル選択手段と、を有することを特徴とする。この無線通信装置は、データパケットの送信の際に、使用するチャネルと送信ノードと受信ノードとを通知するチャネル予約通知を1次隣接ノードおよび自ノードには隣接しないが1次隣接ノードに隣接するノードである2次隣接ノードに送信するチャネル予約通知送信手段と、受信したチャネル予約通知に基づいて、前記チャネル状況テーブルを更新するチャネル状況テーブル更新手段と、をさらに有することが好ましい。
【0022】
また、本発明の一態様としての無線通信プログラムは、自ノードおよび自ノードに隣接するノードである1次隣接ノードが利用可能なチャネルを記憶するチャネル状況テーブルを有する無線通信装置に対して、1次隣接ノードにデータパケットを送信する際に、前記チャネル状況テーブルに基づいて、自ノードおよび該1次隣接ノードが利用可能なチャネルを、データパケットの送信に利用するチャネルとして選択するステップを実行させることを特徴とする。この無線通信プログラムは、前記無線通信装置に対して、データパケット送信の際に、使用するチャネルと送信ノードと受信ノードとを通知するチャネル予約通知を1次隣接ノードおよび自ノードに隣接するノードではないが1次隣接ノードに隣接するノードである2次隣接ノードに送信するステップと、受信したチャネル予約通知に基づいて、前記チャネル状況テーブルを更新するステップと、をさらに実行させることが好ましい。
【発明の効果】
【0023】
本発明によれば、複数のチャネルを利用する無線通信システムにおいて、効率的な通信を実現することが可能となる。
【発明を実施するための最良の形態】
【0024】
以下に図面を参照して、この発明の好適な実施の形態を例示的に詳しく説明する。
【0025】
本実施形態は、複数のチャネルを利用して無線通信をおこなう無線通信システムである。本実施形態では、無線通信ネットワーク内の各ノードが、自ノードおよび隣接ノードが使用可能なチャネル(データチャネル)をチャネル状況テーブルとして管理することで、データパケットの送信に用いるチャネルの選択が容易に行えるようにするとともに、データパケットの送信時にコントロールチャネル上に送信される制御パケットの数を減らす。
【0026】
なお本実施形態では、ブロードキャストチャネル、コントロールチャネル(制御チャネル)がそれぞれ1チャネルずつ、そしてデータチャネルを4チャネル使用するものとする。本実施形態では、FDMA(Frequency Division Multiple Access:周波数分割多元接続)方式によって、多チャネル接続を実現する。もっとも、CDMA(Code Division Multiple Access:符号分割多元接続)や、OFDMA(Orthogonal Frequency Division Multiple Access:直交周波数分割多元接続)などの無線通信方式によって、多チャネル接続を実現しても構わない。
【0027】
以下では、チャネル状況テーブルに基づいてチャネル選択を行う方法を詳しく説明する。また、このようなチャネル状況テーブルの作成方法についても詳しく説明する。
【0028】
<機能構成>
まず、本実施形態における無線通信装置1について説明する。無線通信装置1は、ハードウェア構成としては、バスを介して接続されたCPU(中央演算処理装置)、主記憶装置(RAM)、補助記憶装置(ROM)、通信インタフェースなどを備えるように構成されても良い。無線通信装置1には、通信インタフェース(無線機)が2つ備えられており、一方はブロードキャストチャネルのみを用い、他方はコントロールチャネルと4つのデータチャネルを切り替えて利用する。
【0029】
図1は、無線通信装置1の機能ブロック例を示す図である。本実施形態における無線通信装置1は、補助記憶装置に記憶された各種のプログラム(OS,アプリケーション等)が主記憶装置にロードされCPUによって実行されることによって、パケット受信部2、データパケット処理部3、チャネル状況テーブル更新部4、トポロジー情報テーブル更新部5、チャネル状況テーブル6、トポロジー情報テーブル7、チャネル選択部8、データパケット生成部9、RTSメッセージ生成部10、Helloメッセージ生成部11、パケット送信部12として機能する。また、本実施形態における無線通信装置1の全部または一部の機能は、専用のチップによって構成されても良い。
【0030】
トポロジー情報テーブル7は、自ノードの隣接ノードおよび2ホップ先のノードを記憶するテーブルである。図3は、トポロジー情報テーブルの例を示す図であり、図2に示すネットワークトポロジーのノードaが有するトポロジー情報テーブルである。トポロジー情報テーブルには、ノードID21、隣接ノード数22、隣接ノードID23、2ホップノード24が格納される。ノードID21には、このテーブルを持つノード(ノードa)の隣接ノードのIDが格納される。隣接ノード数22には、各ノードの隣接ノードの数が格納される。なお、ここでノードaは隣接ノードの数には含まれない。すなわち、例えば、ノードbの隣接ノードは、ノードa,c,d,g,mの5つであるが、ノードaを除いた「4」が隣接ノード数22に格納される。隣接ノードID23には、各ノードの隣接ノードのIDが格納される。ここでも、ノードaは省略される。2ホップノード24には、各ノードの隣接ノードのうちから、ノードaから2ホップ先のノードが格納される。具体的には、各ノードの隣接ノードであって、ノードaの隣接ノードでないノードが、2ホップ先のノードに該当する。
【0031】
チャネル状況テーブル6は、自ノードおよび隣接ノードが利用可能なチャネルを記憶するテーブルである。図4は、チャネル状況テーブルの例を示す図であり、図2に示すネットワークトポロジーおよび通信状態におけるノードaが有するチャネル状況テーブルである。なお、図2において、通信中のノード間は矢印付きの線で結ばれており、その横に通信に使用しているデータチャネルが示されている。チャネル状況テーブル6は、ノードID31、状態32、チャネル状況33が格納される。状態32は、各ノードの通信状態として「アイドル」「通信中」のいずれかが格納される。チャネル状況33には、各ノードのチャネルの利用状況を示すものである。図4において、白丸はそのチャネルが利用可能であることを、黒三角は周囲のノードが通信中であるため干渉を受けていることを、黒四角はそのノードが通信に利用中であることを示す。なお、干渉中や利用中の場合には、そのチャネルが利用可能になるまでの時間である送信期間(デュレーション)が同時に格納される。なお、本チャネル状況テーブル6において、状態32はチャネル状況33から求められる(チャネル状況として、通信中のチャネルを有するノードは通信中であり、それ以外はアイドル)ため、状態32は省略することが可能である。
【0032】
このチャネル状況テーブル6に基づいて、このテーブルを所有するノードは、隣接ノードが利用可能なチャネルを把握することができる。また、自ノードが利用可能なチャネルも、隣接ノードが通信に利用しているチャネル(図4では、ノードkが利用しているチャネル3)以外のチャネルを利用可能であると把握することができる。
【0033】
なお、本実施形態では、チャネル状況テーブル6とトポロジー情報テーブル7は、異なるテーブルとして構成しているが、ノードIDをキーとして1つのテーブルとして構成しても構わない。
【0034】
パケット受信部2は、他の無線通信装置からパケットを受信する。パケット受信部2は、受信したパケットの種類に応じて、そのパケットをデータパケット処理部3、チャネル状況テーブル更新部4、またはトポロジー情報テーブル更新部5のいずれかに渡す。データパケット処理部3に渡されたデータパケットは、さらに上位層へと渡される。
【0035】
受信部2によって受信されたRTSメッセージ(チャネル予約通知)は、チャネル状況テーブル更新部4に渡される。チャネル状況テーブル更新部4は、このRTSメッセージに基づいてチャネル状況テーブルを更新する。
【0036】
受信部2によって受信されたHelloメッセージ(トポロジー情報通知)は、トポロジー情報テーブル更新部5に渡される。トポロジー情報テーブル更新部5は、このHelloメッセージに基づいてトポロジー情報テーブル7を更新する。
【0037】
データパケット生成部9は、送信するデータパケットを生成する。チャネル選択部8は、データパケットの送信に先立って、チャネル状況テーブル6に基づいて利用するチャネルを選択する。RTSメッセージ生成部10は、データパケットの送信の際に、使用するチャネル、送信ノード(自ノード)および受信ノードを周囲のノードに知らせるチャネル予約通知であるRTSメッセージを生成する。
【0038】
Helloメッセージ生成部11は、トポロジー情報テーブル7に基づいて、自ノードの隣接ノードを通知するトポロジー情報通知であるHelloメッセージを生成する。Helloメッセージ生成部11は、定期的にHelloメッセージを生成する。
【0039】
パケット送信部12は、データパケット生成部9によって生成されたデータパケット、RTSメッセージ生成部10によって生成されたRTSメッセージ、Helloメッセー
ジ生成部によって生成されたHelloメッセージを送信する。なお、パケット送信部12は、データパケットは4つのデータチャネルのいずれかを用いて、RTSメッセージはコントロールチャネルを用いて、Helloメッセージはブロードキャストチャネルを用いて送信する。また、パケット送信部12は、RTSメッセージ送信の際に、送信電波強度を大きくしたり、低SN比でも受信可能な変調方式を用いることで、RTSメッセージの伝搬距離をデータパケットやHelloメッセージの少なくとも2倍とする。このように、RTSメッセージを2ホップ先のノードまで直接まで届くようにしたことで、2ホップ先のノードまでチャネルを利用することを通知することが可能となり、チャネル状況テーブルの更新が容易となる。
【0040】
<処理フロー>
[チャネル選択処理]
次に、チャネル状況テーブル6に基づいて、データパケットの送信の際に利用するチャネルを選択する処理について説明する。なお、ここではチャネル状況テーブル6が作成されていることを前提としてチャネル選択処理について説明し、チャネル状況テーブル6の作成方法については後述する。図5,6は、チャネル選択部8がおこなう、チャネル選択処理の流れを示すフローチャートである。
【0041】
図5は、チャネル選択処理の全体の流れを示すフローチャートである。チャネル選択部8は、チャネル状況テーブル6を参照して、受信ノードが通信中であるか否か判定する(S101)。受信ノードが通信中である場合(S101−YES)は、受信ノードが通信を終了するまで待機する(S106)。受信ノードが通信中でない場合(S101−NO)は、チャネル選択部8は、チャネル状況テーブル6に基づいて、自ノード(送信ノード)が干渉を受けているチャネルを取得する(S102)。
【0042】
自ノード周囲の干渉チャネル抽出処理の詳細を、図6のフローチャートを参照して説明する。チャネル選択部8は、まず、干渉チャネルを格納する干渉チャネルリストをクリアする(S201)。次に、チャネル状況テーブル6を参照して、隣接ノードに通信中のノードが存在するかを判定する(S202)。隣接ノードに通信中のノードが存在する場合(S202−YES)は、そのノードが通信に利用しているチャネルを干渉チャネルリストに追加する(S203)。そして、全ての通信中のノードについて干渉チャネルを取得したか判定し(S204)、処理していない通信中のノードがある場合(S204−NO)にはS203に戻って干渉チャネルを干渉チャネルリストに追加する。全ての通信中のノードについて干渉チャネルを取得した場合(S204−YES)は、処理を終了しS103に進む。また、隣接ノードに通信中のノードが存在しない場合(S202−NO)は、干渉チャネルリストを空のまま処理を終了しS103に進む。
【0043】
図5のフローチャートの説明に戻る。上記のように自ノードの干渉チャネルを取得した後に、チャネル選択部8は、チャネル状況テーブル6を参照して、受信ノードが干渉を受けているチャネルを取得する(S103)。チャネル選択部8は、チャネル状況テーブル6から受信ノードが干渉を受けているチャネルを取得し、前述の干渉チャネルリストに追加する。
【0044】
チャネル選択部8は、干渉チャネルリストに基づいて、空きチャネルがあるか判定する(S104)。空きチャネルがない場合(S104−NO)は、空きチャネルができるまで待機(S107)した後、再びS101以降の処理を繰り返す。空きチャネルがある場合(S104−YES)は、その中から任意のチャネルを送信チャネルとして選択する(S105)。
【0045】
図4のチャネル状況テーブルが示すチャネル状況(図2の場合)において、ノードaが
送信する場合のチャネル選択処理を説明する。ノードaが干渉を受けているチャネルは、通信中のノードkが利用しているチャネル3のみである。受信ノードがノードbの場合には、ノードbはチャネル4で干渉を受けているので、ノードaはチャネル1か2を用いてノードbと通信できることが分かる。また、受信ノードがノードeの場合には、ノードeはチャネル1と3で干渉を受けているので、ノードaはチャネル2か4を用いてノードeと通信できることが分かる。
【0046】
このように、チャネル状況テーブル6が構築されている場合には、送信ノード(自ノード)と受信ノードがともに利用可能なチャネルを容易に選択することができる。
【0047】
[データパケット送信処理]
次に、データパケットを送信する際の処理について図7を参照して説明する。まず、ノードnSは、DIFSとバックオフだけ待機してコントロールチャネルが利用されていないことを確認してから、RTSメッセージをコントロールチャネル上で送信する。なお、ノードnSは、RTSメッセージをコントロールチャネル上で送信した後に、無線機を選択したチャネルに合わせる。
【0048】
図8は、RTSメッセージのフォーマットを示す。フレーム制御41には、このメッセージがRTSメッセージであることを示す値が格納される。送信期間42には、ノードnS,nD間の通信が終了するまでの時間が格納される。受信ノードアドレス43には受信ノードのMACアドレスが、送信ノードアドレス44には送信ノードのMACアドレスが、それぞれ格納される。送信チャネル45には、ノードnS,nD間での通信の際に利用するチャネルが格納される。FCS46は、通信エラーを検知するための値が格納される。
【0049】
ノードnSから送信されたRTSメッセージは、ノードnDおよびノードn1〜n4によって受信される。自ノードが受信ノードとして指定されていないRTSメッセージを受信したノードn1〜n4は、RTSメッセージに格納されている送信チャネル45を、送信期間42の期間だけ利用不可能(NAV)と判断する。より詳細には、ノードn1,n3は自ノードが指定されたチャネルを利用不可と判断する。ノードn2はノードn1が指定されたチャネルを利用不可と判断し、ノードn4はノードn3が指定されたチャネルを利用不可と判断する。これにより、ノードnS,nD間の通信は他のノードからの干渉を受けることを防止できる。
【0050】
自ノードが受信ノードとして指定されているRTSメッセージを受信したノードnDは、受信を了解するCTSメッセージをノードnSに対して送信する。ノードnDは、RTSメッセージの受信後、SIFS時間だけ待機してから、RTSメッセージに格納されている送信チャネル45上で、CTSメッセージを送信する。ノードnSは、CTSメッセージを確認した後に、データパケットを送信する。
【0051】
このように、RTSメッセージをその他の通信よりも2倍の距離伝搬するように送信することで、RTSメッセージを1回送信するだけで、2ホップ先のノードまでチャネルの予約を行うことができる。したがって、データパケットの送信に先立って行うコントロールパケットは、1つのRTSメッセージのみとなる。コントロールチャネル上に送信されるパケットを減らすことができるので、通信量が多くなってもコントロールパケットの通信がボトルネックとなってスループットが低下することを抑制できる。
【0052】
なお、通信を終了したノードnS,nDは、その後データの送信を別のノードと行おうとする場合には、所定の期間待機することが好ましい。ノードnS,nDは、無線機が利用するチャネルを、コントロールチャネルからデータチャネルに切り替えているため、他
のノードが送信したRTSメッセージを取得できていない。したがって、チャネルの状況を正しく把握できていない可能性がある。したがって、ノードnS,nDは通信終了後、(CTS長+ACK長+SIFS長×3+最大フレーム長)/(通信速度)で表される時間だけ、コントロールチャネル上で受信してから新たな通信を開始することが好ましい。この期間待つことによって、ノードnS,nD間の通信開始後に始まった通信を妨害することを回避することができる。なお、ノードnS,nD間で同一のチャネルを利用して再度通信を行う場合には、この時間を待つことなく、再度RTSメッセージを送信して通信を開始することができる。これによってスループットの向上を図ることができる。
【0053】
[トポロジー情報テーブル作成処理]
次に、トポロジー情報テーブル7を作成する処理について説明する。トポロジー情報テーブル7は、各ノードが自ノードの隣接ノードをHelloメッセージによって通知しあうことで、作成される。なお、トポロジー情報テーブル7は、チャネル状況テーブル6を作成する際に参照されるものである。
【0054】
各ノードのHelloメッセージ生成部11は、定期的にHelloメッセージを生成し、パケット送信部12が生成されたHelloメッセージを送信する。図9はHelloメッセージのフォーマットを示す。フレーム制御51には、このメッセージがHelloメッセージであることを示す値が格納される。送信期間52には、このメッセージの送信期間が格納される。受信ノードアドレス53には受信ノードのMACアドレスが、送信ノードアドレスには送信ノード(自ノード)のMACアドレスが、それぞれ格納される。隣接ノード数55には、自ノードに隣接するノード(1ホップで通信できるノード)の数が格納される。隣接ノード56には、隣接ノードのIDが格納される。FCS57は、通信エラーを検知するための値が格納される。
【0055】
パケット送信部12は、生成されたHelloメッセージをブロードキャストチャネル上で送信する。図10は、Helloメッセージを受信したノードが行う処理の流れを示すフローチャートである。
【0056】
Helloメッセージを受信したノードは、このHelloメッセージをトポロジー情報テーブル更新部5に渡す(S301)。トポロジー情報テーブル更新部5は、このHelloメッセージの送信ノードが新規の隣接ノードであるか、すなわちトポロジー情報テーブル7に隣接ノードとして格納されていないノードであるか判定する(S302)。送信ノードが新規の隣接ノードである場合(S302−YES)には、トポロジー情報テーブル7に、このノードを隣接ノードとして登録する(S303)。トポロジー情報テーブル更新部5は、Helloメッセージに格納されている隣接ノード数55と隣接ノードID56を用いてトポロジー情報テーブル7を更新する(S304)。さらに、トポロジー情報テーブル更新部5は、2ホップノードの更新も行う(S305)。具体的には、この送信ノードの隣接ノードのうち、トポロジー情報テーブル7に隣接ノードとして登録されていないノードは、自ノードの2ホップ先のノードであるとしてトポロジー情報テーブル7を更新する。また、トポロジー情報テーブル7に、このHelloメッセージの送信ノードが2ホップ先ノードとして登録されている場合には、この送信ノードは隣接ノードに変更になったということであるから2ホップ先ノードからは削除する。
【0057】
このように、Helloメッセージを交換することで、ネットワーク内の各ノードは、自ノードの隣接ノードおよび2ホップ先のノードを把握することができる。
【0058】
[チャネル状況テーブル作成処理]
最後に、チャネル状況テーブル6を作成する処理について説明する。チャネル状況テーブル6は、データパケット送信に先だって送信されるRTSメッセージとトポロジー情報
テーブル7に基づいて作成される。
【0059】
図11は、RTSメッセージを受信したノードが行うチャネル状況テーブル作成(更新)処理の流れを示すフローチャートである。
【0060】
RTSメッセージを受信したノードは、このRTSメッセージをチャネル状況テーブル更新部4に渡す(S401)。チャネル状況テーブル更新部4は、RTSメッセージに格納されている送信ノードまたは受信ノードが、自ノードの隣接ノードであるか否か判断する。送信ノードはRTSメッセージの送信ノードアドレス44(図8)から、受信ノードはRTSメッセージの受信ノードアドレス43から取得できる。また、これら送受信ノードが隣接ノードであるか否かはトポロジー情報テーブル7を参照することで判定できる。
【0061】
RTSメッセージに格納されている送信ノードあるいは受信ノードが自ノードの隣接ノードである場合(S402−YES)には、そのノードの状態を「通信中」に更新するとともに、RTSメッセージに格納されている送信チャネルを「通信中」とし、そのチャネルの送信期間(リリースタイム)を設定する(S403)。
【0062】
次に、RTSメッセージに格納されている送信ノードまたは受信ノードに隣接するノードはRTSメッセージに指定された送信チャネルが干渉中であるとして、チャネル状況テーブル更新部4はチャネル状況テーブル6を更新する(S404)。RTSメッセージに格納されている送信ノードまたは受信ノードに隣接するノードは、トポロジー情報テーブル7を参照して、隣接ノードID23に送信ノードまたは受信ノードのいずれかが含まれるノードとして判断できる。
【0063】
図2のトポロジー状況、および図3のトポロジー情報テーブルを例に、チャネル状況テーブル6の更新方法を説明する。
【0064】
ノードjは、ノードhとチャネル1で通信することを通知するRTSメッセージを送信する。このRTSメッセージを受信したノードaは、RTSメッセージに指定された送受信ノード(ノードj,h)が、自ノードの隣接ノードであるか判断する。トポロジー情報テーブル7(図3)を参照すると、ノードj,hのいずれも自ノードの隣接ノードではないので、隣接ノードの状態32は更新しない。次に、送受信ノードの隣接ノードのチャネル状況33を更新する。ノードj,hの隣接ノードは、隣接ノードID23にノードjまたはhが含まれるノードeであることが分かる。したがって、チャネル状況テーブル更新部4は、ノードeはチャネル1で干渉を受けているとしてチャネル状況テーブル6を更新する(図4)。
【0065】
ノードmは、ノードgとチャネル4で通信することを通知するRTSメッセージを送信する。このRTSメッセージを受信したノードaは、上記と同様に、RTSメッセージに指定された送受信ノード(ノードg,m)が、自ノードの隣接ノードであるか判断する。これらのノードは隣接ノードではないので、隣接ノードの状態32は更新しない。次に、ノードg,mの隣接ノードがノードb,cであることをトポロジー情報テーブル7から取得する。そして、ノードb,cは、チャネル4で干渉を受けているとしてチャネル状況テーブル6を更新する。
【0066】
ノードiは、ノードkとチャネル3で通信することを通知するRTSメッセージを送信する。このRTSメッセージを受信したノードaは、ノードkが自ノードの隣接ノードであるため、ノードkの状態を「通信中」に更新するとともに、ノードkはチャネル3で通信中であるとしてチャネル状況テーブル6を更新する。また、ノードi,kの隣接ノードであるノードd,eはチャネル3で干渉を受けているとしてチャネル状況テーブル6を更
新する。
【0067】
なお、上記の説明では、RTSメッセージに格納されている送受信ノードが自ノードの隣接ノードであるか否かで処理を分けている。具体的には、送受信ノードのいずれかが自ノードの隣接ノードである場合には、その隣接ノードのチャネル状況と、自ノードのチャネル状況を同時に更新していることになる。しかしながら、この場合も、RTSメッセージに格納されている送受信ノードのいずれかに隣接するノードが指定されたチャネルを利用不可能であるとしてチャネル状況テーブルを更新していることに変わりはない。送信ノードが自ノードの2ホップ先ノードであり、受信ノードが自ノードの隣接ノードである場合を例にとって説明すると、受信ノードと自ノードはそれぞれ指定されたチャネルが利用不可能としてチャネル状況テーブルが更新されるが、受信ノードは送信ノードの隣接ノードであり、自ノードは受信ノードの隣接ノードである。すなわち、図11のフローチャートにおけるS403、S404のいずれの処理も、受信したRTSメッセージに含まれる送信ノードと受信ノードとのいずれかに隣接するノードは、そのRTSメッセージに指定されたチャネルと利用不可能であるとしてチャネル状況テーブルを更新する処理に該当する。
【0068】
<本実施形態の効果>
本実施形態における各ノードは、データパケット等の2倍の伝送距離でRTSメッセージを周囲のノードに通知しあうことで、チャネル状況テーブルとしてチャネルの利用状況を把握する。各ノードはデータパケットの送信の際には、このチャネル状況テーブルを参照することで、容易に自ノードおよび受信ノードが利用可能なチャネルを取得することができる。
【0069】
また、RTSメッセージを2ホップ先のノードまで直接通知することで、データパケットの送信に先立ってコントロールチャネル上で送信するパケットの、RTSメッセージ1つのみにすることができる。したがって、通信量が増えた場合であっても、コントロールチャネルがコントロールパケットで埋まってしまう可能性が減少する。
【0070】
なお、RTSメッセージの伝送距離をデータパケット等の2倍以上として2ホップ先のノード全てがRTSメッセージを受信できることが望ましいが、RTSメッセージの伝送距離がデータパケット等の2倍より小さい場合でも、パケットが衝突する可能性を減らす効果を得ることはできる。
【0071】
また、2つの無線機のうち一方でコントロールチャネルとデータチャネルを切り替えて上記の方法で通信を行うことができるため、他方の無線機をブロードキャストチャネルに専用に割り当てることが可能となる。したがって、ブロードキャスト通信は常時行うことが可能となる。
【0072】
さらに、本実施形態ではHelloメッセージを交換して2ホップ先のトポロジーを把握しているので、2ホップ先のノードに対して唯一の隣接ノードや、最も多くの2ホップ先に対して中継ノードとなっている隣接ノードを、フラッディングにおける中継ノードとして選択することで、効率的なフラッディングを実行することができる。
【0073】
<その他>
本実施形態において説明した無線通信方法は、アドホック無線通信ネットワークに適用するとより効果的である。アドホック無線通信ネットワークは、移動端末同士が一時的に構築する自律型無線ネットワークである。アドホック無線通信ネットワークでは、無線通信装置間で距離が離れていて直接通信(1ホップ通信)できない場合には、途中に存在する無線通信装置を中継してマルチホップ通信することによって情報を交換する。マルチホ
ップ通信においては、各ホップにおいてチャネル干渉が発生する可能性があるため、ホップ数が増加するにつれて著しくスループットが低下してしまうことが知られている。したがって、チャネル干渉を効果的に回避する上記の無線通信方法を、アドホック無線通信ネットワークに適用することで、大きな効果を得ることが可能である。なお、アドホック無線通信ネットワークの例としては、車両に搭載された無線通信装置によって構成される車車間アドホック無線通信システムがある。
【0074】
上記で説明したHelloメッセージの送信間隔は一定の間隔とする必要はない。また、Helloメッセージを受信するたびにトポロジー情報テーブル7の更新処理を行う必要もない。例えば、車車間アドホック無線通信システムにおいては、車速センサから取得した自車の車速に基づいて、Helloメッセージの送信間隔を決定しても良い。また、車速に基づいて、同じノードからHelloメッセージを何回受信するたびにトポロジー情報テーブル7の更新処理を行うか決定しても良い。自車の車速が遅い場合には、ネットワークトポロジーが急激には変化しないと考えられるので、Helloメッセージの送信間隔を長くしたり、より多くのHelloメッセージを受信してからトポロジー情報テーブル7を更新することで無線通信装置の処理負荷を減らすことが可能となる。また、自車の車速ではなく、他車の車速や、自車と他車との相対速度等に基づいて、Helloメッセージの送信間隔や受信時の処理間隔を決定することもできる。
【図面の簡単な説明】
【0075】
【図1】本実施形態に係る無線通信装置の機能ブロック例を示す図である。
【図2】本実施形態における無線通信ネットワークのトポロジーの例を示す図である。
【図3】トポロジー情報テーブルの例を示す図である。
【図4】チャネル状況テーブルの例を示す図である。
【図5】チャネル選択処理の流れを示すフローチャートである。
【図6】チャネル選択処理における送信ノードの干渉チャネルを取得する処理の流れを示すフローチャートである。
【図7】(a)はデータパケット送信時に送受信されるパケットのシーケンスを示す図である。(b)は、その時のネットワークトポロジーを示す図である。
【図8】RTSメッセージのフォーマットを示す図である。
【図9】Helloメッセージのフォーマットを示す図である。
【図10】Helloメッセージ受信時に行うトポロジー情報テーブル更新処理の流れを示すフローチャートである。
【図11】RTSメッセージ受信時に行うチャネル状況テーブル更新処理の流れを示すフローチャートである。
【図12】(a)は従来技術におけるデータパケット送信時に送受信されるパケットのシーケンスを示す図である。(b)は、その時のネットワークトポロジーを示す図である。
【図13】従来技術において、無駄なRTSメッセージによって周囲のノードをNAV状態にしてしまう状況を説明する図である。
【符号の説明】
【0076】
1 無線通信装置
2 パケット受信部
3 データパケット処理部
4 チャネル状況テーブル更新部
5 トポロジー情報テーブル更新部
6 チャネル状況テーブル
7 トポロジー情報テーブル
8 チャネル選択部
9 データパケット生成部
10 RTSメッセージ生成部
11 Helloメッセージ生成部
12 パケット送信部
【特許請求の範囲】
【請求項1】
複数のチャネルを利用する無線通信システムにおいて、該無線通信システム内の各ノードが、自ノードおよび自ノードに隣接するノードが利用可能なチャネルをチャネル状況テーブルとして管理し、該チャネル状況テーブルに基づいてデータパケットの送信に用いるチャネルを選択することを特徴とする無線通信方法。
【請求項2】
データパケットを送信するノードが、使用するチャネルと送信ノードと受信ノードとを通知するチャネル予約通知を、自ノードに隣接するノードである1次隣接ノードおよび自ノードには隣接しないが1次隣接ノードに隣接するノードである2次隣接ノードに送信するステップと、
チャネル予約通知を受信したノードが、受信したチャネル予約通知に基づいて、自ノードのチャネル状況テーブルを更新するステップと、
データパケットを送信するノードが、1次隣接ノードにデータパケットを送信する際に、前記チャネル状況テーブルに基づいて、自ノードおよび該1次隣接ノードが利用可能なチャネルを、データパケットの送信に利用するチャネルとして選択するステップと、
を含むことを特徴とする請求項1に記載の無線通信方法。
【請求項3】
1次隣接ノードと2次隣接ノードを記憶するトポロジー情報テーブルを作成するステップをさらに含み、
前記チャネル状況テーブルを更新するステップは、チャネル予約通知を受信したノードが、
前記トポロジー情報テーブルに基づいて、受信したチャネル予約通知に含まれる送信ノードと受信ノードとのいずれかに隣接する、自ノードの1次隣接ノードを取得するステップと、
該1次隣接ノードは受信したチャネル予約通知に指定されたチャネルを利用不可能であるとして前記チャネル状況テーブルを更新するステップと、
を含むことを特徴とする請求項2に記載の無線通信方法。
【請求項4】
前記チャネル予約通知を送信するステップにおいて、チャネル予約通知の伝搬距離をデータパケットの伝搬距離の少なくとも2倍とすることで、該チャネル予約通知を1次隣接ノードおよび2次隣接ノードに送信する
ことを特徴とする請求項2又は3に記載の無線通信方法。
【請求項5】
前記チャネル予約通知を送信するステップにおいて、チャネル予約通知の送信電波強度を、データパケットの送信電波強度よりも強くすることで、チャネル予約通知の伝搬距離を少なくともデータパケットの伝搬距離の2倍とする
ことを特徴とする請求項4に記載の無線通信方法。
【請求項6】
前記チャネル予約通知を送信するステップにおいて、チャネル予約通知の変調方式を、データパケットの変調方式と異ならせることで、チャネル予約通知の伝搬距離を少なくともデータパケットの伝搬距離の2倍とする
ことを特徴とする請求項4に記載の無線通信方法。
【請求項7】
前記トポロジー情報テーブルを作成するステップは、
前記無線通信システム内の各ノードが、自ノードの1次隣接ノードおよび2次隣接ノードの集合を通知するトポロジー情報通知を送信するステップと、
前記トポロジー情報通知を受信したノードが、受信したトポロジー情報通知に基づいて前記トポロジー情報テーブルを更新するステップと、
を含むことを特徴とする請求項3〜6のいずれかに記載の無線通信方法。
【請求項8】
前記複数のチャネルには、ブローキャストパケットを送信するためのブロードキャストチャネル、制御パケットを送信するための制御チャネル、およびデータパケットを送信するための複数のデータチャネルが含まれ、
前記トポロジー情報通知は、ブロードキャストチャネル上で送信され、
前記チャネル予約通知は、制御用チャネル上で送信され、
前記データパケットは、複数のデータチャネル上のいずれかで送信される
ことを特徴とする請求項7に記載の無線通信方法。
【請求項9】
前記無線通信システム内の各ノードは、第1および第2の無線通信機を有し、
前記トポロジー情報通知は、第1の無線通信機によって送信され、
前記チャネル予約通知は、第2の無線通信機によって送信され、
前記データパケットは、第2の無線通信機によって送信される
ことを特徴とする請求項8に記載の無線通信方法。
【請求項10】
複数のチャネルを利用して無線通信を行う無線通信装置であって、
自ノードおよび自ノードに隣接するノードである1次隣接ノードが利用可能なチャネルを記憶するチャネル状況テーブルと、
1次隣接ノードにデータパケットを送信する際に、前記チャネル状況テーブルに基づいて、自ノードおよび該1次隣接ノードが利用可能なチャネルを、データパケットの送信に利用するチャネルとして選択するチャネル選択手段と、
を有することを特徴とする無線通信装置。
【請求項11】
データパケットの送信の際に、使用するチャネルと送信ノードと受信ノードとを通知するチャネル予約通知を1次隣接ノードおよび自ノードには隣接しないが1次隣接ノードに隣接するノードである2次隣接ノードに送信するチャネル予約通知送信手段と、
受信したチャネル予約通知に基づいて、前記チャネル状況テーブルを更新するチャネル状況テーブル更新手段と、
を有することを特徴とする請求項10に記載の無線通信装置。
【請求項12】
複数のチャネルを利用する無線通信を行わせるための無線通信プログラムであって、
自ノードおよび自ノードに隣接するノードである1次隣接ノードが利用可能なチャネルを記憶するチャネル状況テーブルを有する無線通信装置に対して、
1次隣接ノードにデータパケットを送信する際に、前記チャネル状況テーブルに基づいて、自ノードおよび該1次隣接ノードが利用可能なチャネルを、データパケットの送信に利用するチャネルとして選択するステップ
を実行させることを特徴とする無線通信プログラム。
【請求項13】
データパケット送信の際に、使用するチャネルと送信ノードと受信ノードとを通知するチャネル予約通知を1次隣接ノードおよび自ノードに隣接するノードではないが1次隣接ノードに隣接するノードである2次隣接ノードに送信するステップと、
受信したチャネル予約通知に基づいて、前記チャネル状況テーブルを更新するステップと、
をさらに実行させることを特徴とする請求項12に記載の無線通信プログラム。
【請求項1】
複数のチャネルを利用する無線通信システムにおいて、該無線通信システム内の各ノードが、自ノードおよび自ノードに隣接するノードが利用可能なチャネルをチャネル状況テーブルとして管理し、該チャネル状況テーブルに基づいてデータパケットの送信に用いるチャネルを選択することを特徴とする無線通信方法。
【請求項2】
データパケットを送信するノードが、使用するチャネルと送信ノードと受信ノードとを通知するチャネル予約通知を、自ノードに隣接するノードである1次隣接ノードおよび自ノードには隣接しないが1次隣接ノードに隣接するノードである2次隣接ノードに送信するステップと、
チャネル予約通知を受信したノードが、受信したチャネル予約通知に基づいて、自ノードのチャネル状況テーブルを更新するステップと、
データパケットを送信するノードが、1次隣接ノードにデータパケットを送信する際に、前記チャネル状況テーブルに基づいて、自ノードおよび該1次隣接ノードが利用可能なチャネルを、データパケットの送信に利用するチャネルとして選択するステップと、
を含むことを特徴とする請求項1に記載の無線通信方法。
【請求項3】
1次隣接ノードと2次隣接ノードを記憶するトポロジー情報テーブルを作成するステップをさらに含み、
前記チャネル状況テーブルを更新するステップは、チャネル予約通知を受信したノードが、
前記トポロジー情報テーブルに基づいて、受信したチャネル予約通知に含まれる送信ノードと受信ノードとのいずれかに隣接する、自ノードの1次隣接ノードを取得するステップと、
該1次隣接ノードは受信したチャネル予約通知に指定されたチャネルを利用不可能であるとして前記チャネル状況テーブルを更新するステップと、
を含むことを特徴とする請求項2に記載の無線通信方法。
【請求項4】
前記チャネル予約通知を送信するステップにおいて、チャネル予約通知の伝搬距離をデータパケットの伝搬距離の少なくとも2倍とすることで、該チャネル予約通知を1次隣接ノードおよび2次隣接ノードに送信する
ことを特徴とする請求項2又は3に記載の無線通信方法。
【請求項5】
前記チャネル予約通知を送信するステップにおいて、チャネル予約通知の送信電波強度を、データパケットの送信電波強度よりも強くすることで、チャネル予約通知の伝搬距離を少なくともデータパケットの伝搬距離の2倍とする
ことを特徴とする請求項4に記載の無線通信方法。
【請求項6】
前記チャネル予約通知を送信するステップにおいて、チャネル予約通知の変調方式を、データパケットの変調方式と異ならせることで、チャネル予約通知の伝搬距離を少なくともデータパケットの伝搬距離の2倍とする
ことを特徴とする請求項4に記載の無線通信方法。
【請求項7】
前記トポロジー情報テーブルを作成するステップは、
前記無線通信システム内の各ノードが、自ノードの1次隣接ノードおよび2次隣接ノードの集合を通知するトポロジー情報通知を送信するステップと、
前記トポロジー情報通知を受信したノードが、受信したトポロジー情報通知に基づいて前記トポロジー情報テーブルを更新するステップと、
を含むことを特徴とする請求項3〜6のいずれかに記載の無線通信方法。
【請求項8】
前記複数のチャネルには、ブローキャストパケットを送信するためのブロードキャストチャネル、制御パケットを送信するための制御チャネル、およびデータパケットを送信するための複数のデータチャネルが含まれ、
前記トポロジー情報通知は、ブロードキャストチャネル上で送信され、
前記チャネル予約通知は、制御用チャネル上で送信され、
前記データパケットは、複数のデータチャネル上のいずれかで送信される
ことを特徴とする請求項7に記載の無線通信方法。
【請求項9】
前記無線通信システム内の各ノードは、第1および第2の無線通信機を有し、
前記トポロジー情報通知は、第1の無線通信機によって送信され、
前記チャネル予約通知は、第2の無線通信機によって送信され、
前記データパケットは、第2の無線通信機によって送信される
ことを特徴とする請求項8に記載の無線通信方法。
【請求項10】
複数のチャネルを利用して無線通信を行う無線通信装置であって、
自ノードおよび自ノードに隣接するノードである1次隣接ノードが利用可能なチャネルを記憶するチャネル状況テーブルと、
1次隣接ノードにデータパケットを送信する際に、前記チャネル状況テーブルに基づいて、自ノードおよび該1次隣接ノードが利用可能なチャネルを、データパケットの送信に利用するチャネルとして選択するチャネル選択手段と、
を有することを特徴とする無線通信装置。
【請求項11】
データパケットの送信の際に、使用するチャネルと送信ノードと受信ノードとを通知するチャネル予約通知を1次隣接ノードおよび自ノードには隣接しないが1次隣接ノードに隣接するノードである2次隣接ノードに送信するチャネル予約通知送信手段と、
受信したチャネル予約通知に基づいて、前記チャネル状況テーブルを更新するチャネル状況テーブル更新手段と、
を有することを特徴とする請求項10に記載の無線通信装置。
【請求項12】
複数のチャネルを利用する無線通信を行わせるための無線通信プログラムであって、
自ノードおよび自ノードに隣接するノードである1次隣接ノードが利用可能なチャネルを記憶するチャネル状況テーブルを有する無線通信装置に対して、
1次隣接ノードにデータパケットを送信する際に、前記チャネル状況テーブルに基づいて、自ノードおよび該1次隣接ノードが利用可能なチャネルを、データパケットの送信に利用するチャネルとして選択するステップ
を実行させることを特徴とする無線通信プログラム。
【請求項13】
データパケット送信の際に、使用するチャネルと送信ノードと受信ノードとを通知するチャネル予約通知を1次隣接ノードおよび自ノードに隣接するノードではないが1次隣接ノードに隣接するノードである2次隣接ノードに送信するステップと、
受信したチャネル予約通知に基づいて、前記チャネル状況テーブルを更新するステップと、
をさらに実行させることを特徴とする請求項12に記載の無線通信プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2007−266697(P2007−266697A)
【公開日】平成19年10月11日(2007.10.11)
【国際特許分類】
【出願番号】特願2006−85563(P2006−85563)
【出願日】平成18年3月27日(2006.3.27)
【出願人】(502087460)株式会社トヨタIT開発センター (232)
【出願人】(000003207)トヨタ自動車株式会社 (59,920)
【Fターム(参考)】
【公開日】平成19年10月11日(2007.10.11)
【国際特許分類】
【出願日】平成18年3月27日(2006.3.27)
【出願人】(502087460)株式会社トヨタIT開発センター (232)
【出願人】(000003207)トヨタ自動車株式会社 (59,920)
【Fターム(参考)】
[ Back to top ]