Congestion Control·Lesson 1 of 11

Congestion Control

01

The Short Answer

Every network has a limit to how much data it can carry at once — think of it as the width of a road. When too many devices try to push too much data through that road at the same time, everything slows to a crawl and messages start getting lost. Congestion control is the set of techniques that keep the amount of data entering the network below what the network can actually handle, so traffic keeps flowing instead of jamming up.

The one idea to hold on to

Congestion control protects the shared middle of the network — the links and routers everyone's traffic passes through. It is about being a good citizen so the whole network stays healthy, not about protecting any single device.

🚗

A highway at rush hour

A road can only carry so many cars per minute. If everyone floors it onto the on-ramps at once, the highway doesn't move faster — it grinds to a standstill, and nobody gets anywhere. Congestion control is like ramp meters and speed limits: it deliberately slows how fast cars join, so the road keeps moving and more people actually get through in the end.

02

First, What Is Congestion?

happens when the demand for a network's capacity is greater than what it can supply. Data on a network travels in small chunks called , and those packets pass through devices called that forward them toward their destination. Each router has a small waiting area (a queue) for packets it hasn't sent yet. When packets arrive faster than the router can forward them, the queue fills up — and once it's full, new packets are simply dropped. That overload is congestion.

03

Two Ways to Fight Congestion

There are two broad strategies, and every technique falls into one of them. Open-loop congestion control tries to prevent congestion before it ever starts, using good policies and design. Closed-loop congestion control assumes congestion will happen anyway, so it watches for the warning signs and reacts to relieve it. Here's how they compare:

Open-loopClosed-loop
When it actsBefore congestion startsAfter congestion is detected
Main goalPrevent it from happeningReact to it and recover
How it worksFixed policies and rulesFeedback and continuous adjustment
Everyday exampleLimiting how many senders can joinA sender slowing down after losing packets

Neither approach is enough on its own. Real networks lean on both: sensible policies to keep everyday load in check, plus reactive control for when traffic spikes anyway. We'll dedicate a full lesson to each family, so don't worry about the details yet.

04

How TCP Controls Congestion

The most important congestion control on the internet lives inside , the protocol that reliably delivers most web traffic, email, and file transfers. A TCP sender never knows the exact capacity of the path ahead, so it does something clever: it starts slow, speeds up gradually while things look healthy, and backs off the moment it senses trouble. It does this using four cooperating algorithms.

TCP's four congestion-control algorithms

  • Slow start — begin by sending only a little, then roughly double the amount each round until you approach the limit
  • Congestion avoidance — once near the limit, grow the sending rate slowly and carefully to avoid overshooting
  • Fast retransmit — when a packet looks lost, resend it right away instead of waiting for a timer to expire
  • Fast recovery — after a loss, dip the sending rate rather than dropping all the way back to the beginning

These four work together as a single feedback loop, and each one has its own lesson later in this topic. Together they let millions of independent senders share the internet without any central traffic controller telling them what to do.

05

Why It Matters

Without congestion control, a busy network can suffer a : senders lose packets, so they resend them, which adds even more traffic, which causes even more loss — a downward spiral where the network stays saturated but almost no useful data gets through. This actually happened to the early internet in 1986, when throughput on one link famously dropped by a factor of a thousand. The congestion-control algorithms we use today were invented precisely to stop that from ever happening again.

🚫

"Congestion control and flow control are the same thing."

They solve different problems. Flow control stops a fast sender from overwhelming one slow receiver — it's a private agreement between two endpoints. Congestion control stops all the senders together from overwhelming the shared network in the middle. A connection needs both at once.

Q:In one sentence, what is congestion control and why does the internet need it?

A: It's how senders regulate their sending rate to match what the network can carry, so that shared links and routers don't get overloaded — without it, the internet would collapse into a storm of dropped packets and retransmissions under heavy load.

Quick Revision Cheat Sheet

Congestion control: Keeping data entering the network below what it can carry

Protects: The shared network (links + routers), not one device

Open-loop: Prevent congestion before it starts

Closed-loop: Detect congestion and react to it

TCP's toolkit: Slow start, congestion avoidance, fast retransmit, fast recovery

Worst case: Congestion collapse — network full, almost nothing delivered