無線LAN 無線LANの仕組み その4

CSMA/CA

先にも述べましたが、複数の無線LANクライアントが電波を共有して通信を行
うための媒体アクセス制御方式がCSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)
です。CSMA/CAの仕組みは、CSMA/CDとよく似ています。そのプロセスは次の通りです。

1.キャリアセンス
データを送信しようとするとき、電波の周波数帯(チャネル)が利用されてい
るかどうかを確認します

  • 電波が未使用:アイドル状態
  • 電波が使用中:ビジー状態
  • 他の機器が電波を利用している(ビジー状態)場合は待機します
  • ビジー状態からアイドル状態に移行したあと、さらにIFS(Inter Frame Space)
    時間待機します

2.ランダム時間待機(衝突の回避)

  • キャリアセンスによって電波が未使用だと判断しても、すぐにはデータを
    送信しません。
  • 衝突を回避するために、さらにランダム時間(バックオフ時間)待機してキ
    ャリアセンスを続けます。

3.データの送信開始

  • バックオフ時間待機して、アイドル状態であることを確認してからデータ
    を送信します。
  • IPなどのレイヤ3のデータにIEEE802.11のヘッダを付加し、さらにその前
    に物理層ヘッダを付加して転送します。
  • 物理層ヘッダ:PLCP(Physical Layer Convergence Protocol)プリアンプル+PLCPヘッダ

有線LANのCSMA/CDであれば、メディアがアイドル状態であればデータの送信を
開始します。そのため、複数のホストがほぼ同じタイミングでデータを送信し
ようとすると、複数のホストがデータの送信を開始し衝突が発生します。もし、
衝突が発生した場合、共有メディア上のすべてのホストがその衝突を検出でき
ます。しかし、無線LANでは衝突の検出ができません。そこで、キャリアセン
スを行ってアイドル状態と認識しても、さらにランダムなバックオフ時間待機
することで、複数のホストの送信タイミングをずらして衝突が発生しないよう
に制御しています。

ただし、無線LANクライアントの位置関係や電波の遮蔽物などがあれば、キャ
リアセンスによりビジー状態を検出できないことがあります。すると、このよ
うな衝突回避が機能せず、衝突が発生してデータが壊れてしまうことがあります。

※上記のようなCSMA/CAの衝突回避の制御を行いながらも衝突が発生してしま
う問題を「隠れ端末問題」といいます。

さらに、無線LANの通信ではデータを受信したことを示す確認応答(ACK)を返し
ます。ACKによって、無線LAN区間のデータ通信の信頼性を高めています。デー
タを受信したら、次にそのデータに対するACKを返すために、ACKを送信すると
きのIFSは短いSIFS(Short IFS)になり、バックオフ時間はありません。

次の図は、CSMA/CAによるアクセス制御を示したものです。

上の図のようなCSMA/CAによるアクセス制御を見ると、実際にデータを送信し
ている時間が少ないことに気がつくでしょう。CSMA/CAのアクセス制御は、衝
突回避のためのバックオフ時間やACKによる確認応答などのオーバーヘッドが
非常に大きくなっています。また、無線LANの制御を行うための物理層ヘッダ
もオーバーヘッドです。

無線LANのスループット

上記のようなオーバーヘッドの影響で、無線LANでのスループットは規格上の
伝送速度の約50%です。具体的にIEEE802.11bのスループットの計算をしてみま
しょう。伝送速度は最大の11Mbpsとして、レイヤ3以上のデータ部分も最大の
1500バイトとして考えます。1500バイトのデータを送信するために必要な時間
を計算すれば、データ転送のスループットを計算できます。
IEEE802.11bでは、1つのフレームを送信するために必要な時間は次の図のよう
になります。

前のフレームとの間には、IFSとバックオフ時間空ける必要があります。IFSは
IEEE802.11bでは50μsです。またバックオフ時間はランダムですが、平均値は
310μsです。
フレームの前には、PLCPプリアンブルとPLCPヘッダという物理層の制御情報が
付加されます。この部分は1Mbpsで送信します。192ビットなのでこの部分で
192μs必要です。
そのあとにIEEE802.11ヘッダとレイヤ3以上のデータおよびFCSが続きます。デ
ータが1500バイトとすれば、全部で1536バイトです。この部分は11Mbpsで送信
するので、約1117μsです。
データを送信したらそのACKも必要です。ACKのフレーム間ギャップは小さく10μs
です。ACKにもPCLPプリアンブルやPLCPヘッダがありますが、IEEE802.11bでは
ACKの送信に203μs必要です。
1500バイトのデータを運ぶ1つのフレームを送信してそのACKを受信するまでに
全部で、約1882μsかかります。1882μsで1500バイトのデータを転送できるの
で、スループットは、次の計算式から求められます。

1500*8/(1882*10-6)≒6.4Mbps

IEEE802.11aでは、1フレーム送信に必要な時間は次の通りです。

IFSとバックオフ時間の平均:101.5μs
PLCPプリアンブルとPLCPヘッダ:20μs
データ部分:228μs
SIFS:16μs
ACK:24μs

合計:389.5μs

よって、スループットは約30.8Mbpsです。

上記のように無線LANにおいて、データ転送のスループットは規格上の最大伝
送速度の約50%となってしまうことがわかります。また、無線LANアクセスポイ
ントに複数の無線LANクライアントがアソシエーションしている場合は、複数
のクライアント全体で共有します。そして、平均のデータサイズが小さいアプ
リケーションを多用すれば、スループットはさらに低下します。
さらに、複数のクライアントの伝送速度が異なれば、低い伝送速度のクライア
ントがデータを送信している間はビジー状態になり、その時間が長くなります。
すると、その影響で全体のスループットが低下することもあります。アクセス
ポイントの設定で無線LANクライアントの伝送速度の最低値を設定することで、
低速なクライアントによるスループット低下の影響を小さくすることができま
す。

無線LANのネットワークを構築するときには、無線LANのクライアントの台数や
伝送速度の制限、利用するアプリケーションのデータサイズなども考慮するこ
とが重要です。