Ping-pong roaming between two access points
A client that sits between two access points of similar signal can roam back and forth between them, and every roam it did not need is a gap your application has to absorb.
On this page5 sections
Is this your problem? It presents like this
- The device roams back and forth between the same two access points, minutes or even seconds apart.
- It happens while the device sits still or creeps along, not only while it travels.
- At the device's position, both access points are heard at nearly the same signal, and the readings swing more than the gap between them.
- Short gaps or latency spikes line up with each roam, and they grow longer where every roam runs a full 802.1X authentication.
- One client model or driver version does it far more than others parked at the same spot.
- Bands
- 2.4 GHz5 GHz5 GHz DFS6 GHz
Why it happens
Nothing in the standard tells a client when to roam. A study of association instability in dense Wi-Fi networks points out that handoff criteria are not defined by the IEEE 802.11 standard1 and are left to each vendor. The client decides, with its own trigger and its own margin.
Signal strength is a noisy input. The same study traced the ping-pong effect to clients acting on RSSI samples that are highly variable, and found that indoor RSSI follows a multimodal distribution. Its authors note that even static clients may migrate to another access point. A device parked between two access points sees their readings cross and cross back, and each crossing can look like a reason to move.
The margin is what holds a client in place, and it varies widely. Apple requires a candidate to be 8 dB stronger on an iPhone sending data, and 12 dB when it is idle2. The open-source wpa_supplicant uses a base margin of 1 to 5 dB3, smallest at the weakest signals, and can drop it entirely when it expects more throughput elsewhere. Intel’s driver at its highest roaming aggressiveness starts looking while the current signal is still good. Android leaves the choice of access point within an SSID to firmware roaming when the chip supports it. A busy channel adds false triggers: on one large conference network, handoffs were initiated incorrectly under high utilization and packet loss.
Every needless roam pays the full price of a roam. Without fast roaming, each one repeats the EAP authentication and key exchange. In a study of AGV disconnections at an automotive plant, 57.53%4 came after a roam that had succeeded. Damping has a cost too: the usual fixes for ping-pong add delay to the handoff a moving device does need. Aim for one roam per boundary crossed, and none for a device that stays put.
How to confirm it
- Pull the device's association history for an hour or a shift. Count the roams and look for the same pair of access points alternating.
- At the device's position, log the signal from both access points over time. Compare the gap between them with how far each reading swings from sample to sample.
- Line up gaps in the cyclic traffic with the roam timestamps, and measure how long each roam takes. Check whether each one repeats a full 802.1X exchange.
- Check the client's roaming settings, such as roaming aggressiveness, roam margin, and background scanning, and record the driver and firmware version. Put a different client model at the same spot and compare its roam count.
- Check channel utilization and retries at the times of the roams.
- Check whether a network steering feature, such as an 802.11v transition request or load balancing, came before each move.
The fix
- Lower the client's roaming aggressiveness, or widen its roam margin, where the driver exposes the setting.
- Change the RF at that spot so one access point clearly wins, by adjusting transmit power or moving the access point, its antenna, or the place where the device parks.
- For a device that never moves, disable roaming or pin it to one access point if the client supports it. That trades away failover, so decide it deliberately.
- Enable fast roaming on the SSID so each roam that still happens skips the full authentication.
- Bring channel utilization down if it is high, since a busy channel produces false roam triggers.
Prevent it at design time
- Survey every spot where devices park, charge, or work, and design so one access point is stronger than the next by more than the client's roam margin.
- Ask each client vendor for its roam trigger and margin, and whether it smooths signal readings before acting on them.
- Test stationary devices at their real positions for a full shift and count their roams before go-live.
About this page
Built from 8 sources: 3 research papers and theses and 5 vendor documents. Researched and drafted with AI assistance, then reviewed and approved by Ben Rutter on . How pages are made
- First published
- Last updated
Change history (1)
- First published
Cite this page
Plain
Ben Rutter. "Ping-pong roaming between two access points." OT Wireless, published October 5, 2026. https://otwireless.com/causes/ping-pong-roaming/
APA 7
Rutter, B. (2026, October 5). Ping-pong roaming between two access points. OT Wireless. https://otwireless.com/causes/ping-pong-roaming/
BibTeX
@misc{rutter2026pingpongroaming,
author = {Rutter, Ben},
title = {{Ping-pong roaming between two access points}},
year = {2026},
howpublished = {\url{https://otwireless.com/causes/ping-pong-roaming/}},
organization = {OT Wireless},
}