EMZETT.
Login

TCP slow start and congestion control

In short: TCP feels its way slowly toward the available bandwidth when sending and throttles immediately when packets are lost. This avoids overloading the network.

In more detail: At the start TCP sends only a few packets (small congestion window). With each acknowledgment the window grows, initially exponentially (“slow start”). On packet loss it shrinks and then grows only carefully.

In Depth

  • Slow start: The window doubles per round trip until a threshold is reached.
  • Congestion avoidance: After that only linear growth.
  • Loss as signal: Classic algorithms (Reno, CUBIC) read loss as congestion. BBR estimates bandwidth and delay instead.
  • Consequence for the web: Small files end before TCP gets fast. That is why few, small requests and reused connections matter.
  • Window: The actual send window is the minimum of the congestion and receive windows.

See also: HTTP keep-alive