TCP Congestion Control Algorithms (Slow Start, Congestion Avoidance)
- Networking Fundamentals & OSI Model
- TCP/IP Model
- Network Topologies
- IP Addressing & Subnetting
- Routing Algorithms & Protocols
- Switching Concepts
- Transport Layer Protocols (TCP & UDP)
- Application Layer Protocols
- Network Security & Firewalls
- Wireless Networking & Wi-Fi
- Network Address Translation (NAT)
- DNS Deep Dive
- Congestion Control & Flow Control
- Error Detection & Correction
- Network Devices
- VPN & Tunneling
- Load Balancing & CDN Networking
- Socket Programming
- Network Troubleshooting Tools
- Physical Layer & Transmission Media
- Data Link Layer & MAC Addressing
- Ethernet Protocol
- ARP (Address Resolution Protocol)
- ICMP Protocol
- Unicast, Multicast, Broadcast and Anycast
- Proxy Servers
- Port Numbers Reference
- Network Performance Metrics
- Quality of Service (QoS)
- Software-Defined Networking (SDN)
- HTTP/2 and HTTP/3 Overview
- 5G and Mobile Networks
- IoT Networking Basics
- VoIP Networking Basics
Why TCP Has to "Guess" the Network's Capacity
A TCP sender has no direct way to ask a router "how much traffic can you currently handle?" Instead, it starts cautiously and gradually increases its sending rate, using packet loss as an indirect signal that it's pushed too far.
Slow Start: A Cautious Beginning
Round 1: send 1 segment
Round 2: send 2 segments (doubled)
Round 3: send 4 segments (doubled again)
Round 4: send 8 segments (doubled again)Despite the name, "slow start" actually grows exponentially - doubling the amount sent each round - until either a loss is detected, or a threshold is reached, at which point TCP switches to a more cautious growth strategy.
Congestion Avoidance: A More Cautious Climb
Once past the initial threshold, TCP switches from doubling to a much gentler, linear increase - adding roughly one additional segment per round trip, rather than doubling. This trades speed of growth for greater stability, avoiding another sudden burst of loss.
What Happens When Loss Is Detected
When a lost segment is detected, TCP interprets that as a sign of network congestion and dramatically reduces its sending rate - often cutting it in half - before cautiously beginning to climb again through slow start and congestion avoidance.
The Bigger Picture: Fairness Among Many Connections
This "grow cautiously, back off sharply on loss" pattern is deliberately designed so that many independent TCP connections sharing the same network path naturally settle into roughly fair shares of the available bandwidth over time, without any of them needing to coordinate directly with each other.