# HSTCP

HighSpeed TCP (HSTCP) is a congestion control algorithm protocol defined in RFC 3649 for Transport Control Protocol (TCP). Standard TCP performs poorly in networks with a large bandwidth-delay product. It is unable to fully utilize available bandwidth. HSTCP makes minor modifications to standard TCP's congestion control mechanism to overcome this limitation.

## Algorithm

When an ACK is received (in congestion avoidance), the window is increased by ${\displaystyle a(w)/w}$ and when a loss is detected through triple duplicate acknowledgments, the window is decreased by ${\displaystyle (1-b(w))w}$, where w is the current window size. When the congestion window is small, HSTCP behaves exactly like standard TCP so a(w) is 1 and b(w) is 0.5. When TCP's congestion window is beyond a certain threshold, a(w) and b(w) become functions of the current window size. In this region, as the congestion window increases, the value of a(w) increases and the value of b(w) decreases. This means that HSTCP's window will grow faster than standard TCP and also recover from losses more quickly. This behavior allows HSTCP to be friendly to standard TCP flows in normal networks and also to quickly utilize available bandwidth in networks with large bandwidth delay products.

HSTCP has the same slow start/timeout behavior as standard TCP.

Since only the congestion control mechanism is modified, HSTCP can be used with other TCP options like SACK. In real implementations, determining the increase and decrease parameters given a current window size is implemented as a lookup table.