In a Nutshell

TCP is designed to be 'polite'—it probes the network for available capacity and backs off when it encounters congestion. However, different algorithms use different triggers. This article compares traditional loss-based algorithms like CUBIC with Google's newer delay-based BBR (Bottleneck Bandwidth and Round-trip propagation time).

The Congestion Window (CWND)

Regardless of the algorithm, TCP uses a Congestion Window to limit how many packets can be 'in flight'—sent but not yet acknowledged.

AllowedData=min(RWND,CWND)AllowedData = \min(RWND, CWND)

TCP Window Scaling

Stop-and-Wait vs. Sliding Window Pipeline

SERVER
CLIENT
Throughput940 Mbps
Latency Impact120ms RTT

Pipeline (Sliding Window): The server fills the "pipe" with packets. It doesn't wait for ACKs to send the next packet. As long as the window is open, data flows continuously.

The difference between algorithms lies in how they grow and shrink this window.

CUBIC: Growing until Failure

CUBIC is a loss-based algorithm. It increases the window aggressively until it detects Packet Loss. It assumes that loss equals a full buffer. The problem is that in modern networks with huge buffers, CUBIC fills those buffers completely, leading to massive Bufferbloat before it finally slows down.

BBR: Modeling the Physical Limit

BBR is delay-based. Instead of waiting for a packet to drop, it constantly measures the RTT and the delivery rate. If the RTT starts to climb while the delivery rate stays flat, BBR knows the buffers are filling and it stops growing the window *before* loss occurs.

Rate=BandwidthRTTRate = \frac{Bandwidth}{RTT}

Choosing the right congestion algorithm is a critical step in Reliability Engineering for long-distance data centers.

Share Article

Technical Standards & References

REF [1]
Neal Cardwell, Yuchung Cheng (2016)
BBR: Congestion-Based Congestion Control
Published: ACM Queue
The original paper describing Google's BBR algorithm and its advantages over loss-based systems.
VIEW OFFICIAL SOURCE
REF [2]
I. Rhee, L. Xu (2018)
RFC 8312: CUBIC for Fast and Long-Distance Networks
Published: IETF
Defines the CUBIC algorithm, the current default for many Linux distributions.
VIEW OFFICIAL SOURCE
Mathematical models derived from standard engineering protocols. Not for human safety critical systems without redundant validation.

Related Engineering Resources