How exponential backoff works
Why a failing app waits one second, then two, then four before trying again, and how randomness stops crowded networks from colliding forever.
Written by Amili, an AI writer, from the sources listed below · 19 October 2026 · 5 min read
Exponential backoff is a rule for slowing down after something goes wrong. Each failure multiplies the waiting time before the next attempt, so a struggling system gets breathing room quickly. Networks, web services and mobile apps use it to share scarce capacity without central coordination.
In short
- After every failure, the pause before the next try is multiplied by a fixed factor, often 2.
- On shared channels the wait is drawn at random from a range that doubles, so senders stop colliding in lockstep.
- A ceiling on the number of doublings keeps delays from growing without limit.
- The rate usually recovers more slowly than it fell, which helps avoid swinging back and forth.
- It works on local feedback alone: no sender needs to know how busy everyone else is.
What problem does exponential backoff solve?
Many systems share something limited: a server's attention, a radio frequency, a cable that only one message can cross at a time. When too many requests arrive at once, everyone suffers. Retrying immediately makes things worse, because the retries pile onto the traffic that caused the trouble in the first place.
Exponential backoff is a feedback loop that answers this. When an attempt fails, or a service signals that a client is going too fast, the client lowers its rate by a multiplicative factor. Engineers describe it as a closed-loop control system: the output of the process (errors, collisions, lost packets) feeds back into how fast the process is allowed to run.
How does it work step by step?
Keep a count of bad events, such as failed connections, collisions or error replies. The delay before the next action is a base number raised to the power of that count. With a base of 2, the waits run 1, 2, 4, 8 and so on. A version with base 2 is called binary exponential backoff.
The word 'exponential' describes the shape of the growth, not a precise law. In real implementations the computed figure may be an upper limit on the wait rather than the exact wait. Once things have been quiet for a while, often called a cooling-off or recovery period, the rate can climb back up. That recovery is normally slower than the cut, and tuning it carefully helps the rate settle instead of oscillating.
Why add randomness on a shared network?
Imagine two laptops on one old-style Ethernet cable transmit at the same instant. Their signals overlap and both messages are ruined. If each waited a fixed, identical delay and tried again, they would collide again, and again, forever.
So on shared channels the algorithm sets a range rather than a single delay, and each sender picks a random point inside it. Time is counted in slots, short fixed intervals on the network. After one collision a sender waits 0 or 1 slots. After two, anywhere from 0 to 3. After three, 0 to 7. The range doubles each time, which makes a repeat collision less likely but raises the average wait. Ethernet's collision handling (CSMA/CD) and wireless collision avoidance (CSMA/CA) both rely on this idea.
For classic 10 Mbit/s Ethernet the slot lasts 51.2 microseconds. After the first collision a frame is resent after either zero or one slot, picked at random; after the second, after zero to three slots; and so on.
Where is it used beyond Ethernet?
Web services use it for rate limiting. When a service tells a client it is sending too many requests, the client backs off until it reaches a pace the service accepts. Its appeal over a fixed limit is that nothing has to be agreed in advance: if a service suddenly runs short of capacity because of heavy load or an outage, its error replies alone push clients to slow down, which can keep it partly available instead of overwhelmed. Priorities can be built in too, for example by letting emergency calls on a phone network back off less during busy periods.
Some protocols use a simple, non-random schedule. SIP, a protocol for setting up calls, retransmits over unreliable links at an interval that starts around 500 ms and doubles up to a cap, usually 4 seconds, giving 500 ms, 1 s, 2 s, 4 s, then 4 s repeatedly.
Where does it go wrong?
Unlimited doubling can produce absurd waits. If a sender keeps hitting trouble, perhaps because the network has degraded, its delay can stretch far beyond anything useful. The common fix is truncation: after a set number of doublings the growth stops. The Ethernet standard IEEE 802.3 caps it at ten, which limits the wait to 1023 slots. Choosing the cap is a trade between collision risk and latency.
Doubling is also not always the best multiplier. Research on satellite radio channels in the 1970s, by Simon Lam working with Leonard Kleinrock, showed that a fixed factor of 2 can rise too slowly when there are many users and is unnecessary when there are only a few. Lam proposed a broader family of adaptive retransmission rules, of which Ethernet's binary backoff is one special case.
What does it teach about thinking?
Exponential backoff is a lesson in humility under uncertainty. A sender cannot see how crowded the channel is, yet by reading its own failures it can adjust as if it could. Repeated trouble is treated as information about the system, not bad luck to push through. Each additional failure is stronger evidence of congestion, so the response grows stronger too.
It also shows how a small dose of randomness can break a deadlock that careful, identical behaviour would make permanent. When everyone follows the same exact rule at the same moment, coordination fails. Letting each party roll its own dice is often what gets everyone through.
Questions people ask
What is binary exponential backoff?
It is exponential backoff with a base of 2. After each failure the maximum wait doubles. In Ethernet the wait after c collisions is a random number of slots between 0 and 2 to the power c, minus one. The randomness keeps two senders from retrying at the same moment, and the doubling quickly spreads retries out when a channel is busy.
Why not retry immediately after a failure?
If the failure came from overload or a collision, an instant retry adds to the very congestion that caused it. On a shared channel, two senders retrying instantly would collide again and keep colliding. Waiting, and waiting longer after each failure, gives the system time to clear and lets competing senders drift apart.
What is truncated exponential backoff?
It is the same algorithm with a limit on how many times the delay can grow. Without that limit, a sender that keeps failing could face extremely long waits. The IEEE 802.3 Ethernet standard stops after ten doublings, so the longest random wait is 1023 slot times. The limit trades a little more collision risk for predictable latency.
The thinking behind it
Its chapter on networking uses exponential backoff to show how computers, and people, can respond sensibly to repeated failure.
Read or listen to Algorithms to Live By
Hear the whole book free: start an Audible trial and your first audiobook — this one, if you like — is on the house.
As an Amazon Associate, ReadGlobe earns from qualifying purchases and Audible trials — at no extra cost to you.
Sources
- Exponential backoff — Wikipedia
- Network congestion — Wikipedia
How this was made: Amili, an AI writer, wrote this article in its own words from the sources above. Every link was checked before publishing. Spotted an error? Tell us and we will correct it.