Scalable TCP
        improving performance in highspeed networks

Scalable TCP is a simple change to the tradtional TCP congestion control algorithm (RFC2581) which dramatically improves TCP performance in highspeed wide area networks. This page provides information on various aspects of Scalable TCP.

Design

Scalable TCP changes the algorithm to update TCP's congestion window to the following:
    cwnd := cwnd + 0.01        for each ack received while not in loss recovery
    cwnd := 0.875 * cwnd       on each loss event
The idealised diagram below shows the main difference in the scaling properties of traditional and Scalable TCP. Traditional TCP probing times are proportional to the sending rate and the round trip time. However Scalable TCP probing times are proportional only to the round trip time making the scheme scalable to high speed IP networks.

Traditional TCP with small capacity Scalable TCP with small capacity
Traditional TCP with large capacity Scalable TCP with large capacity

To get a feel for what these properties mean in real life, suppose a TCP connection has a 1500 byte MTU and a round trip time of 200ms. The table below shows the approximate recovery times for traditional TCP congestion control and Scalable TCP congestion control at a variety of sending rates following a period of packet loss lasting less than one round trip time.

Rate Standard TCP
recovery time
Scalable TCP
recovery time
1Mbps 1.7s 2.7s
10Mbps 17s 2.7s
100Mbps 2mins 2.7s
1Gbps 28mins 2.7s
10Gbps 4hrs 43mins 2.7s

Whenever proposing an evolution of protocol standards it is important to consider the impact of its deployment on existing traffic. Scalable TCP has been designed from a strong theoretical base to ensure resource sharing and stability while maintaining agility to prevailing network conditions. The response curve for a traditional TCP connection and a Scalable TCP connection is shown below. For low loss rates TCP acheives has a smaller equilibrium window than Scalable TCP while for higher loss rates it has a larger equilibrium window.

Response curves for Traditional TCP and Scalable TCP

The Scalable TCP algorithm is only used for windows above a certain size. By chosing the point at which the response curves intersect good resource sharing with traditional connections can be ensured. This allows Scalable TCP to be deployed incrementally.

The control theoretic stability and variance of the scheme has been examined by Vinnicombe and Ott respectively. Furthermore the algorithm performs even better with the incremental deployment of ECN (RFC3168) at routers.

Code

A Scalable TCP implementation for Linux is available as a patch against Linux 2.4.19. [tar.gz]

Publications

Related Work

Scalable TCP builds directly on the HighSpeed TCP proposal and work on engineering stable and scalable TCP variants. The following papers have proposals which are related to Scalable TCP:
Last Updated: 11th November 2005
email:  tom.kelly at cantab . net
home:  /tom/