The title pretty much explains what I'm trying to understand.

What is the difference between CSMA/CD, CSMA/CA and MACA.

I've read from different sources that MACA doesn't solve Hidden Terminals, or Exposed ones, and from other sources that MACA solves both.

What I've understand till now is:

  • CSMA/CD: Carrier Sense Multiple Access with Collision Detection

A node, before transmitting, checks whether there are other nodes in his range that are transmitting, if so it waits and retries later (random time). If, once send, it detects a collision every node is warned. And the node retries after some time.

So we can have collisions with Hidden Terminals.
Exposed Terminals are not solved neither.

  • CSMA/CA: Carrier Sense Multiple Access with Collision Avoidance

It's like the other one, but it implements RTS/CTS.

What does it solve? Hidden Terminals? Exposed Terminals?

  • MACA: Multiple Access with Collision Avoidance

Implements RTS/CTS.

What is the difference from CSMA/CA?

What does it solve? Hidden Terminals? Exposed Terminals?

Firstly I was pretty sure that using RTS/CTS you can solve both, but now I created some confusion reading from different sources.

I would really appreciate an answer.

  • Please do not cross-post a question to multiple SE sites. Pick one site, and delete the question on the other SE sites. – Ron Maupin Jul 3 '17 at 13:50
  • I thought I had already deleted it... double checked now :) – Ergo Jul 3 '17 at 14:02
  • CSMA/CA does not implement RTS/CTS. While they can be used in conjunction, they are two entirely separate mechanisms. – YLearn Aug 3 '17 at 6:42

MACA is broader term that covers any sort of wireless media access control. It encompasses CSMA/CA as well as a number of other protocols.

CSMA/CD and CSMA/CA are very similar. The primary difference between CSMA/CD and CSMA/CA is that CSMA/CD requires that a host be able to both transmit and receive on the medium at the same time.

CSMA/CD was originally used in 802.3 communication because all hosts could see traffic from all other hosts, however most modern 802.3 communication is full duplex and as such does not use CSMA/CD.

CSMA/CA is used in 802.11 communication because physics makes it very difficult or impossible for a device to both transmit and receive at the same time on the same frequency (even if you use a separate transmitter and receiver to attempt this, the proximity of the transmitter to the receiver will tend to "drown out" any other signal).

Neither CSMA/CD nor CSMA/CA make use of RTS/CTS as part of their protocol, they are three entirely separate protocols. However you can use RTS/CTS with either one, although it only really makes sense with CSMA/CA in certain circumstances.

RTS/CTS (or CTS-to-self) is an option in 802.11 for a few reasons. Primarily it is part of a protection mechanism to allow older 802.11 devices and newer 802.11 devices to communicate properly (specifically 802.11b or earlier devices with 802.11g or later devices - many DSSS devices wouldn't recognize OFDM traffic as another 802.11 device). It can also be used to resolve a number of different issues. However due to it's significant impact on 802.11 performance, it is not recommend to use if you can avoid it. CSMA/CA is always used for 802.11 traffic whether you use RTS/CTS or not.

Edit: As requested in the comment, however this will make the answer significantly longer, even keeping the explanation on the simplistic side.

RTS/CTS was originally implemented in old serial devices that used half-duplex communication to determine when data could be sent. When full-duplex serial communication was implemented, RTS/CTS was repurposed to allow serial communications to implement flow control. This RTS/CTS worked by sending a signal over separate conductors than those used to actually transmit the data.

Since 802.11 doesn't have different connectors, it's RTS/CTS is different in that one side sends a RTS frame and waits for a CTS response (which will include an amount of time being reserved). Other stations that hear the CTS are supposed to back off for that period of time to leave the air clear. The major drawback is that RTS/CTS frames, similar to other management frames, must be heard by all stations and are transmitted at the lowest common base data rate; this it typically significantly lower that the maximum data rate (i.e. often this is 1 Mbps when the max data rate today is often 300+ Mbps). This means that each RTS/CTS frame transmitted in the air can take as much time as 300+ data frames.

To reduce this performance impact, 802.11 devices can implement a CTS-to-self mechanism instead, reserving the air for themselves. However this should only be done when used for the purposes of providing legacy support (many 802.11b devices do not recognize 802.11g signalling as 802.11 traffic and this helps prevent them from creating collisions). If you are trying to alleviate hidden node problems (i.e. two or more stations that are able to associate to the same access point, but can't see each other and end up tranmitting at the same time), you need to use full RTS/CTS as you need the CTS to originate from the AP. In addition, both mechanisms (RTS/CTS and CTS-to-self) can introduce performance issues to any neighboring BSS that is exposed to the CTS frames as they will be required to back off as well.

CSMA/CD starts by a device listening to the medium to see if it is clear of other transmissions. If the medium is clear, it will start transmitting and if the medium isn't clear it will back off for a random amount of time and then listen again.

When the device is transmitting, if it receives a signal at the same time, it will trigger the CD part of the process. To resolve the collision, the device immediately stops sending it's data but continues to transmit a "jam signal" to allow all devices to detect the collision and back off for a random amount of time. The device that was transmitting when the collision occurred will also increment a retransmission counter and try the frame again unless it has reached it's maximum retries.

CSMA/CA starts the same as CSMA/CD; a device listens to the medium to see if it is clear. If it is then it will begin transmitting otherwise it will back off a random time and try again. However, as I mentioned earlier, it is not possible for a wireless device to transmit and receive at the same time, so it cannot detect a collision. Then how does a device know if it experienced a collision? It can't and doesn't, hence why it isn't CSMA/CD.

In CSMA/CA the receiving station will send an ACK for received data frames, if the sending station doesn't receive an ACK, it assumes the frame is lost (due to collision, interference, noise, or any other reason) and retransmit. In 802.11 there are often two retransmission counters, one that will cause the next retransmission to use a lower data rate (i.e. higher data rates require better signal quality, so perhaps a frame the fails to transmit at a higher data rate will succeed at a lower data rate) and one for the maximum number of retransmissions.

Well, that is a brief explanation of how they work. Hopefully this is enough to help you understand them a bit more.

  • Thanks for the answer, I understood now WHERE such protocols are used, such as CSMA/CD and CSMA/CA, but now I'm also wondering HOW they work since I thought that some implemented CTS/RTS and that was the collision avoidance part.. but as you say it isn't so. I would really appreciate an edito to your answer specifying how they work, then I would gladly mark it as right answer. – Ergo Aug 11 '17 at 18:02
  • @Ergo, updated as requested. – YLearn Aug 15 '17 at 5:51

I can't say that I know anything about MACA, but the main differences between CSMA/CD and CSMA/CA are

CSMA/CD for wired

  • networks are many-to-many - any host can see/directly talk to any other one; there's no "hidden station"
  • the (collision domain) endpoint has to resend in case of a collision
  • the collisions "happen" in the physical layer and are signaled to the MAC layer
  • collisions span from endpoint to endpoint (NIC or switch port)

CSMA/CA for wireless

  • networks are usually point-to-multipoint - all traffic flows over a central hub (e.g. WAP); there's a possible "hidden station"
  • while sending, the transmitter cannot listen into the channel, so detecting a collision is much harder than in a wired network
  • CSMA/CA hubs are responsible for forwarding a frame once they've received it, they very much work like an Ethernet switch with half-duplex ports
  • collisions happen between endpoint and hub/WAP
  • the CSMA/CA MAC layer is directly aware of a collision in order to back off and retry later

Note that I'm using "hub" in the figurative sense as a central traffic connector, not as in "repeater hub". A wireless access point works more like a bridge than a repeater.


CSMA was proposed in 1975 by Leonard Kleinrock and Fouad Tobagi [1] at UCLA, although it appears their work was known about since 1972 [2]. And simply defined persistent and not persistent CSMA. Non-persistent CSMA is used by both CSMA/CD and CSMA/CA.

CSMA/CD has a reference from 1974, and CSMA/CA is referenced in a publication from Munich University in 1979. CA added an ACK packet whereas CD added collision detection while the data packet was being sent, which can't be done on a wireless transmitter, so collision avoidance needs to be used rather than detection.

RTS/CTS was a concept since at least 1985 [3], and of course can be used to enhance CSMA/CA and CD.

MACA was proposed in 1990 by Phil Karn [4] at Bell labs to solve the hidden and exposed node problem of CSMA/CA + RTS/CTS. He got rid of the CS part (carrier sense) and instead added NAVs (waiting time in RTS packet) as a solution for collision avoidance. IEEE 802.11 decided to implement MACA-with-carrier-sense as optional in DCF in 802.11-1997. MACAW was proposed by Vaduvur Bharghavan in 1995 and added a DS and an optional RRTS sequence, and used a different backoff to the exponential algorithm of MACA.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.