【無線LANの基礎知識(CSMA/CA方式)について】

  このHPは、無線LANの基礎知識(CSMA/CA方式)についてまとめたものです



1-1 CSMA/CA方式

無線LANでは、データを「電波」や「赤外線」等で伝送するため、有線LANの様にコリジョンの発生状況をリアルタイムに監視することができない。
そのため、「CSMA/CA」と呼ばれる方式によって通信制御を行う。「CSMA/CA」は有線イーサネットのアクセス制御方式である「CSMA/CD」方式を参考に開発された。

「CSMA/CA」には、次の3つのステップがある。



【ステップ1:CS】キャリア(搬送波)感知(Carrier Sense)

通信を開始する前に、全ての無線LAN機器は、データの送信前に、他に通信中の機器がないかチェックする。通信中(ビジー状態)であれば待機し、通信中でなければ(アイドル状態)、一定の待ち時間(DIFS)と、ランダムな「バックオフ時間」をもうけて待機し、待機後に通信中の機器がなければ、データを送信する。


【ステップ2:MA】多重アクセス(Multiple Access)

同じ電波を複数の無線LAN端末が共有し、送信中のSTAがなければ、自分のSTAが送信を開始する。


【ステップ3:CA】衝突回避(Collision Avoidance)

他のSTAが送信を終了すると、自分のSTAが送信を開始する。
この時、他の無STAが送信終了後、すぐに送信を開始すると、フレームが衝突するので、「フレーム間隔」と「ランダムな時間」を待って送信する。





有線イーサネットは、複数の機器が同時に送信した時に「衝突」を検出できるが、無線では、送信中のSTAが自身で「衝突」を検出することは不可能
同じ周波数を使用する場合、無線通信は「半二重」であり、送信中は受信できず、受信中は送信できない。


CSMA/CAは、通信が正常に確認できたかは、相手からの「ACK」を受け取れるかどうかで判断する。また、データを送信する前には毎回「バックオフ時間」を置き、衝突を回避している。
データ送信後に相手から「ACK」を受け取れなかった場合、データの再送信を実施する。
この方式を「CSMA/CA with ACK」という。




【CSMA/CA with ACK】の動作手順





@データ送信しようとするSTA_1は、まず、他のSTAが電波を送信していないかどうか確認する。
その結果、他のSTAが電波を発信していない(アイドル状態)ことが分かれば、ランダムな時間(バックオフ)だけ待機して、この待ち時間の後、どのSTAもフレームを送信していなければ、そこから通信を開始する。

この時、もう1つのデータを送信したいSTA_3は、電波状態を確認し、他のSTAが通信中(ビジー状態)なので、ランダムな待ち時間待機後、まだ送信しているSTAがなければ、送信を始める。


Aデータを受信した機器は「SIFS」という、一定の時間を待機後に、応答のACKフレームを送信する。

BAPは、STA_1からのデータ受信を完了すると、ESS内の全STAに完了通知のACKを送信する。※ACKフレームはすぐに送信する必要があるため、[SIFS」は「DIFS」よりも短い時間になる。

CACKを受信したSTA_3は、ランダムな時間(バックオフ)待機後、まだ送信しているSTAがなければ、通信を開始する。









1-2 CSMA/CA with RTS/CTS

CSMA/CA with ACK 方式では、STAが互いの送信信号を受信できない位置にあるとき、一方の無線LAN端末がデータを送信中に、他の無線LAN端末がこれを検出できずにフレームを送信して衝突が起こる。

STAが、お互いの距離や途中の障害物等によって、お互いの電波の状態をうまく確認できない位置にあることがある。一方のSTAがデータを送信中に、他のSTAがこれを検出できずにフレームを送信して衝突が起こる。こうした問題は「隠れ端末問題」と呼ばれている。









隠れ端末問題を回避する方法として、「RTS」及び「CTS」と呼ばれる制御信号を使用した仕組みが規定されている。これが「CSMA/CA with RTS/CTS方式」。
RTSは「送信要求」という意味。また、CTSは「送信可」という意味で、RTSに対して許可を与える。
送信局は、データ送信に先立って「RTS」を送信し、受信局は「CTS」を返す。 「RTS」や「CTS」には、データフレームと「ACK」の送信に要する時間が格納されており、これらの信号を受信した周辺の無線局は、チャネルがビジー状態にあるとみなし、データの送信を控える。






CSMA/CA with RTS/CTSは以下の様に動作する。


【CSMA/CA with RTS/CTS】の動作手順






@STA_1は、データ送信の要求を、APにRTSを送信して通知。

AAPはSTA_1からのRTSに対し、STA_1に送信権を与えるために、ESS内の全てのSTAにCTSを送信。

BSTA_1は、CTSを受け、フレーム送信を開始する。

Cデータ送信を要求していないSTA_2と、データ送信を要求しているSTA_3は、現在、別のSTAに送信権があり、ACKを受信するまで、自分が送信できないと解釈し、ACKを受け取るまで待機する。

DAPは、STA_1からのデータ受信を完了すると、ESS内のすべてのSTAにACKを送信する。STA_3はACKを受信したので、データ送信を開始することが可能になる。