Skip to content
Computing Rich #tcp#congestion#cwnd

TCP Congestion Control

Slow start, congestion avoidance, fast retransmit, fast recovery. The cwnd dance.

A free, animated tcp congestion control you can read here or embed on any website, from Scrollchart.

TCP Congestion Control

TCP Congestion Controlcwnd (segments) vs RTTs: slow-start, additive-increase, multiplicative-decrease, BBR probing0102030405060Round-trip time (RTT)08162432cwnd (segments)ssthresh = 16 segSlow StartlosslossCA: +1/RTTMD: cwnd/2BBR: steady BW probeAlgorithmTCP Renodrop to 1 on lossCUBICcubic recovery curveBBRBW+RTT probe, no loss dep.BBR (Google 2016) achieves 2-25x higher throughput on lossy links vs CUBIC by probing BW and RTT, not waiting for drops

cwnd over time: exponential ramp during slow-start, linear additive-increase, multiplicative-decrease on loss. Reno, CUBIC, and BBR overlaid. RTT and bottleneck-bandwidth probes annotated for BBR.

Good for

  • Networking courses on transport-layer performance and AIMD
  • SRE content on throughput tuning and BBR vs CUBIC migration
  • Academic explainers on congestion signals and bufferbloat

Source & accuracy

This tcp congestion control is an editorial illustration built to represent the concept accurately. Where it shows figures, they are typical or representative values chosen to make the relationship clear, not a single underlying dataset. The diagram and its explainer are reviewed and maintained centrally, and updated over time as understanding improves.

Slow start and exponential growth

TCP does not immediately transmit at the network's full capacity. It starts with a small congestion window (cwnd): the number of bytes it can send without waiting for an acknowledgment. Typically cwnd begins at 1 or 2 segments. For each segment acknowledged, cwnd grows by 1, so cwnd doubles every round-trip: 1, 2, 4, 8, 16. This exponential growth is slow start: it rapidly probes the network's capacity without overwhelming it. Slow start continues until a loss is detected or a threshold is reached.

Congestion avoidance and backoff

Once a threshold (ssthresh) is reached, TCP enters congestion avoidance: cwnd grows by 1 per round-trip, linear rather than exponential. This is slower but steadier. If a packet is lost (indicated by a retransmit timeout or duplicate acknowledgments), TCP assumes congestion: it cuts cwnd to 1 or ssthresh/2, depending on the loss detection method, and restarts slow start or congestion avoidance. This repeated probing, backup, and growth lets TCP find the bottleneck bandwidth and stay near it without overflowing the network.

Modern refinements

Classic TCP can underutilize high-bandwidth networks (satellite links, intercontinental links) because backoff is aggressive and growth is slow. Modern algorithms (Cubic, BBR) measure latency or loss rate more intelligently. BBR (Bottleneck Bandwidth and Round-trip time) measures actual delivery rate and adjusts cwnd based on bandwidth and RTT, rather than waiting for loss. These algorithms are fairer and faster, though not yet universally adopted.

Embed this diagram

Add this animated tcp congestion control to your own site. Copy one line of HTML, or use the embed builder for theme and sizing options.

Reference

What this is
A free, embeddable, animated tcp congestion control for any website.
Who uses it
Developer blogs, DevOps / SRE sites, CS educators.
How to embed
Copy one line of HTML. No signup. No watermark. Works in WordPress, Webflow, Ghost, Substack, plain HTML.
File size
iframe embed, ~80 KB gzipped (loads on demand, does not block your page paint).
License
Free forever. Editorial explainer text included; updated centrally over time.

Embed format options

Copy the universal HTML snippet, the WordPress shortcode, or an iframe fallback - see the WordPress plugin page for details. Any format keeps the same Core Web Vitals profile and the same explainer text.

Embed snippet
<div data-scrollchart="tcp-congestion-control" data-scrollchart-v="1"></div>
<script src="https://scrollchart.com/embed.js" async></script>

Frequently asked questions

Where can I get a free animated "TCP Congestion Control" for my website?
Scrollchart provides "TCP Congestion Control" as a free, embeddable animated diagram you can add to any website with one line of HTML. No signup is required and there is no watermark. The diagram and its explainer text are served from scrollchart.com, so the embed stays current without any maintenance on your end.
How do I embed a tcp congestion control in a developer or tech blog?
Copy the one-line snippet from the Scrollchart diagram page and paste it into your post HTML. It works in any static site generator, CMS, or hand-coded HTML page. The embed is a thin loader, not an iframe, so the content is fully in your DOM.