# TCP CUBIC
Last edited: 2026-02-05
TCP CUBIC
In networks with large bandwidth or a long delay TCP Reno yields low network utilisation. TCP CUBIC is the more efficient implementation used within the Linux kernel. CUBIC still uses a reset for a timeout and halves when it gets three duplicate acknowledgements. Though this implementation uses two different features to TCP Reno :
- A cubic polynomial increase function.
- Increase is based off the time since the last packet loss instead of increasing when it gets an ACK packet.
Let $W$ be the window size, and let’s say we are given two constants $C$ and $\beta$. Suppose we get a packet loss when $W$ is at $W_{max}$ and let $t$ be the time since that event. First set $k = \sqrt[3]{\frac{W_{max} \beta}{C}}$ then we set our window size to be
$$W(t) = C(t - k)^3 + W_{max}.$$