CSMA/CAは Carrier Sense Multiple Access/Collision Avoidance(搬送波感知多重アクセス/衝突回避方式) の略称で、無線LANの通信規格であるIEEE 802.11において、データリンク層の通信プロトコルとして使われている。
実際の手順
- 搬送波感知(Carrier Sense)
- 通信を開始する前に、一度受信を試みることで現在通信をしているホストが他にあるかどうか確認する。
- 多重アクセス(Multiple Access)
- 複数のクライアントは同じ回線を共用し、他者が通信をしていなければ自分の通信を開始する。
- 衝突回避(Collision Avoidance)
- 搬送波感知の段階で通信中のホストが存在した場合、通信終了と同時に送信を試みると衝突する可能性が高い。そのため、他のホストの送信終了を検知した場合は自分が送信を開始する前にランダムな長さの待ち時間をとる。なお、永久に送信できない事態を防ぐため、この待ち時間は徐々に短くされてゆく。
CSMA/CDとの最大の違いは、CSMA/CDにおいては送信中に衝突を検出し、もし検出したら即座に通信を中止し待ち時間を挿入するのに対し、CSMA/CAは送信の前に待ち時間を毎回挿入する点である。
無線通信など信頼できる衝突検出の手段がない伝送路では、CSMA/CAが使用される。
問題点
A、B、C、の3台の端末において、A⇔BとA⇔Cが通信でき(A⇔B間とA⇔C間では搬送波検知できる距離にあり)、B⇔Cが通信できない(B⇔C間では搬送波検知できない距離)場合はBとCが同時にAに対して送信を試みてどちらも失敗する可能性がある。これを「隠れ端末」と呼ぶ。
IEEE 802.11においては、RTS/CTSを用いることで隠れ端末問題を解決している。
送信前に必ず待ち時間が入るため、オーバーヘッドが生じる。
関連項目