In October 1986 the internet's throughput collapsed to about one-thousandth of capacity as load grew, even though no single link was broken. Van Jacobson diagnosed the cause: senders transmitted as fast as they could and, on loss, retransmitted at full speed, so the network spent its capacity on retransmitting packets that would just be dropped again.
His 1988 paper proposed slow start and congestion avoidance. A sender starts with one segment and doubles its window on each acknowledgment until it detects loss, then halves the window and increases slowly. Instead of assuming the path's capacity, each sender measures it through feedback and adapts.
The design is deliberately conservative at the start because the only way to learn the available bandwidth is to probe for it, and the only safe way to probe is gently. The resulting behavior—additive increase, multiplicative decrease—lets thousands of connections share one path without a central scheduler.
Probe capacity gently; halve on loss
Loss is treated as a signal, not an error, so senders react before the network is flooded.
Exponential growth finds capacity quickly, while halving on loss keeps the recovery safe.
The algorithm is local: each sender adapts from its own feedback, so the system scales to millions of connections.
It fixed a systemic failure with a change to one protocol's behavior, not new hardware.
When the system's capacity is unknown and shared, make every participant probe conservatively and back off on feedback—the aggregate then self-regulates.
Slow start and congestion avoidance became the core of TCP's congestion control and were codified in RFC 2001 in 1997. Later variants (NewReno, CUBIC, BBR) refined the probing rules, but the probing-and-backing-off principle still governs how most of the internet shares bandwidth.
FOLLOW THE EVIDENCE
The sources
- Congestion Avoidance and Control ACM SIGCOMM 1988 (via Lawrence Berkeley National Laboratory) · ee.lbl.gov ·
- RFC 2001 — TCP Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery Algorithms IETF / RFC Editor · rfc-editor.org