Skip to main content Why CSMA/CA Makes Wireless Devices Listen Before Talking | IoT Worker

Why CSMA/CA Makes Wireless Devices Listen Before Talking

In the same meeting room, Wi-Fi signal may look full, but pages load slowly, video calls freeze, and ping latency jumps around. The first reaction is often “the signal is bad.”

But strong signal does not mean the air is free. Wireless devices do not have dedicated cables. Many clients, APs, Zigbee, Thread, or other 2.4 GHz devices may be competing for the same airtime.

At that point, experience is affected not only by RSSI and SNR, but also by a lower-level contention rule: who may transmit, when they may transmit, and what happens after a failed attempt.

The core model of CSMA/CA is: a wireless device listens before transmitting. Even when the channel appears idle, devices do not all transmit immediately; they use random backoff. After transmission, ACKs decide whether it succeeded, and failures lead to larger backoff and retry. CSMA/CA tries to avoid collisions, but it cannot guarantee that collisions never happen.

want to transmit
-> sense the channel
-> channel busy: wait
-> channel idle: random backoff
-> backoff countdown reaches zero
-> send data frame
-> wait for ACK
-> ACK received: success
-> no ACK: treat as failure, increase backoff, retry

CSMA/CA does not make wireless behave like a stable cable. It turns contention on a shared medium into a process that is recoverable, retryable, and less likely to overwhelm everyone at once.

CSMA/CA Solves Shared Airtime Contention

CSMA/CA stands for Carrier Sense Multiple Access with Collision Avoidance.

Broken down:

  • Carrier Sense: listen before transmitting
  • Multiple Access: multiple devices share the same medium
  • Collision Avoidance: try to avoid collisions instead of detecting them after they happen

It is common in Wi-Fi, and related mechanisms also exist in low-power wireless such as 802.15.4. Details differ by protocol, but the shared problem is the same: airtime is shared.

In wired switched networks, one device often connects to one switch port and appears to have its own path. Wireless is not like that. Devices on the same channel can affect each other when their energy reaches the same receiver area.

So the wireless MAC layer first has to answer: may I transmit now?

Why Wireless Uses CA Instead of CD

Classic Ethernet historically used CSMA/CD, or Collision Detection. A device transmitted and listened at the same time. If it detected a collision, it stopped.

Wireless cannot reliably copy that model.

Reasons include:

  • local transmit power is much stronger than received signals, making simultaneous listening difficult
  • the collision happens at the receiver, not necessarily where the transmitter can sense it
  • two transmitters may not hear each other but may still collide at the same receiver
  • distance, walls, reflection, and obstruction mean there is no global “everyone hears the same thing” view

So wireless usually cannot depend on detecting collisions while transmitting. It avoids conflict before transmission as much as possible, then uses ACKs and retries afterward to confirm the result.

That is the CA in CSMA/CA: Collision Avoidance.

Carrier Sensing Does Not Mean Safe Transmission

Listening before sending is the first step in CSMA/CA.

A device decides whether the channel is busy. There are usually two kinds of evidence:

  • physical carrier sensing: detect energy, preamble, or decodable frames
  • virtual carrier sensing: use duration information in frames to maintain NAV and know how long others expect to use the medium

But “I hear idle” does not mean “my transmission cannot collide.”

Every wireless device sees a different world:

  • A not hearing C does not mean B cannot hear C
  • A’s area being quiet does not mean B’s area is quiet
  • non-Wi-Fi or non-802.15.4 interference may not be recognized as protocol traffic
  • a weak remote signal may not trigger busy detection locally, but may still affect the receiver

Carrier sensing reduces collision probability. It does not eliminate collisions.

Random Backoff Prevents Everyone From Rushing Out

If multiple devices all find the channel idle, they would still collide if they all transmitted immediately.

Random backoff exists to avoid that.

A simplified flow:

channel idle
-> each device chooses a random backoff value
-> countdown while the channel stays idle
-> the device that reaches zero first transmits
-> others hear the channel become busy and pause countdown

Randomness prevents devices from rushing out at the same instant. A larger contention window lowers collision probability, but also increases average waiting time.

This is one reason Wi-Fi latency jitters when there are many same-channel devices. A packet may not be waiting for AP CPU. It may be waiting for its turn in the air.

ACKs and Retries Make Failure Recoverable

A wireless transmitter usually cannot decide success just because it sent a frame.

A steadier path is:

send data frame
-> receiver decodes it correctly
-> receiver sends ACK
-> transmitter receives ACK and treats it as success

If the transmitter does not receive ACK, it often treats the attempt as failed and retries.

Failure does not always mean the receiver missed the data frame. It could be:

  • the data frame collided
  • the ACK collided
  • the receiver got the frame but checksum failed
  • the peer was asleep or outside the receive window
  • the transmit rate was too high for the link condition

Retries improve reliability, but their cost is direct: the same business data consumes more airtime, later packets queue up, and latency plus jitter increase.

Hidden Nodes Make “I Cannot Hear It” Dangerous

The hidden-node problem is one of the classic CSMA/CA field issues.

A  ---->  AP  <----  C

A cannot hear C
C cannot hear A
but the AP can hear both A and C

A senses the channel and thinks it is idle. C also thinks it is idle. They may transmit to the AP at the same time, colliding at the AP.

This can create the familiar symptom: signal looks fine, but throughput and latency are poor. A client’s RSSI to the AP does not show whether clients can hear each other.

When hidden nodes are common, retries, backoff, and rate fallback tend to appear together.

RTS/CTS Can Reduce Hidden-Node Cost

RTS/CTS reserves airtime with short control frames before a larger data frame.

Simplified flow:

STA -> RTS -> AP
AP  -> CTS -> devices that can hear the AP
STA -> DATA
AP  -> ACK

If a hidden node cannot hear the transmitting STA but can hear the AP’s CTS, it knows to stay quiet for that duration.

RTS/CTS can reduce the cost of large-frame collisions, especially when hidden nodes are obvious, frames are large, or retries are expensive.

But it has overhead. Every protected transmission adds RTS and CTS control frames, reducing airtime efficiency. Many systems therefore do not enable it for every frame, and instead use thresholds or field-specific policy.

Exposed Nodes Make Devices Too Conservative

Hidden nodes are “should have heard it, but did not.” Exposed nodes are “heard it, but it might not actually interfere.”

For example:

A -> B
C -> D

C hears A transmitting
but C transmitting to D might not affect B receiving A

If C is too conservative and always stays silent when it hears A, airtime utilization drops.

Wireless devices lack a global view, so they cannot perfectly decide whether every concurrent transmission would interfere. CSMA/CA often waits conservatively instead of assuming each link is isolated like a wired switch port.

This is another reason shared-airtime efficiency rarely approaches the advertised PHY rate.

802.15.4 Has Similar Problems

CSMA/CA is not only a Wi-Fi topic.

Zigbee and Thread use IEEE 802.15.4 underneath, and they also face shared channels, backoff, ACKs, and retries. The differences are smaller frames, lower rates, tighter power budgets, and devices that may sleep for long periods.

That creates different tradeoffs:

  • backoff and retry increase end-to-end delay
  • retry increases power use
  • parent, router, and sleepy end-device receive windows must align
  • 2.4 GHz devices still have to coexist with Wi-Fi, Bluetooth, and other systems

So “occasional control delay,” “slow joining in some locations,” or “packet loss when many devices report at once” in Thread or Zigbee can also involve MAC-layer contention and backoff.

Why Full Bars Can Still Be Slow

RSSI and CSMA/CA answer different questions.

RSSI asks: how strong is the target signal I hear?

CSMA/CA asks: when am I allowed to transmit, and did it succeed after I transmitted?

A client can have strong signal to the AP and still be slow:

  • too many same-channel devices are backing off
  • hidden nodes collide at the AP
  • retries consume large amounts of airtime
  • low-rate clients occupy the channel for longer
  • non-protocol interference drops data or ACK frames
  • power-save policy causes receive-window misses

So “full bars but slow” is not a contradiction. Strong signal means the energy condition is good; it does not mean shared-airtime contention is light.

Debug the Airtime Contention Path First

When Wi-Fi or 802.15.4 networks have low throughput, latency jitter, or occasional packet loss, split the path this way.

First, check whether too many devices share the same channel. AP count, client count, neighboring networks, and channel planning all affect backoff time.

Second, look at retry rate and rate fallback. Heavy retry means transmission success is already affecting the business path.

Third, consider hidden nodes. A strong client-to-AP signal does not mean clients can hear each other.

Fourth, check whether low-rate devices occupy airtime for too long. Slow frames last longer and affect other devices on the same channel.

Fifth, evaluate whether RTS/CTS, aggregation, transmit power, channel width, and 802.15.4 channel choice match the site.

Sixth, check whether the problem follows people density, time of day, device count, location, or simultaneous reporting.

CSMA/CA solves transmit-right contention on a shared wireless medium. It can reduce collision probability and recover through ACKs and retries, but it cannot let every device communicate as if it owns a cable.

Once this layer is visible, many “full signal but poor experience” problems stop looking like signal-strength problems alone.

Continue Reading