A form of
Carrier Sense Media Access often used in network media where
full-duplex is not possible.
There are many difficulties in transmitting at
half-duplex :
Collision detection is not possible, as the receiver cannot be used while transmitting. Even worse, the destination node may be in
transmit mode, and therefore unable to
receive data. CSMA/CA tries to work around these problems.
Like
CSMA/CD, each node listens to the network before transmitting, to make sure no other node is transmitting and it is safe to transmit (
Carrier Sense). If it is, instead of transmitting the data, the node broadcasts a
Request To Send packet. This packet is as short as possible, to minimise the chances it will collide with anything. If the destination node receives the RTS packet, it sends back a
Clear To Send packet. The source node responds with the data packet, and if it is successfully received, the destination node replies with an
ACKnowledgement packet. Other nodes receiving CTS packets will
back off until the transmission is finished, either by
timeout or by receiving the corresponding ACK packet.
Why all these hoops to jump through? Because collisions cannot be detected directly, the nodes have to infer that a
collision occured somehow. If the next packet in the sequence didn't turn up, it's a fair bet that it collided, and the node can take appropriate action. Collided packets cause
exponential backoff, in the same way as a collided packet would in CSMA/CD. Waiting for a CTS greatly reduces the risk of collision of the data packet, but don't completely eliminate it - if a node is in transmit mode, it can't receive the control packets, and won't back off.
CSMA/CA is used in
appletalk, and more recently in
802.11b wireless networking.