Compound TCP
Encyclopedia
Compound TCP is a Microsoft
Microsoft
Microsoft Corporation is an American public multinational corporation headquartered in Redmond, Washington, USA that develops, manufactures, licenses, and supports a wide range of products and services predominantly related to computing through its various product divisions...

 algorithm that was introduced as part of the Windows Vista
Windows Vista
Windows Vista is an operating system released in several variations developed by Microsoft for use on personal computers, including home and business desktops, laptops, tablet PCs, and media center PCs...

 and Window Server 2008 TCP
Transmission Control Protocol
The Transmission Control Protocol is one of the core protocols of the Internet Protocol Suite. TCP is one of the two original components of the suite, complementing the Internet Protocol , and therefore the entire suite is commonly referred to as TCP/IP...

 stack. It is designed to aggressively adjust the sender's congestion window
Congestion window
In Transmission Control Protocol , the congestion window is one of the factors that determines the number of bytes that can be outstanding at any time. This is not to be confused with the TCP window size which is maintained by the receiver. This is a means of stopping the link between two places...

 to optimise TCP for connections with large bandwidth-delay product
Bandwidth-delay product
In data communications, bandwidth-delay product refers to the product of a data link's capacity and its end-to-end delay . The result, an amount of data measured in bits , is equivalent to the maximum amount of data on the network circuit at any given time, i.e. data that has been transmitted but...

s while trying not to harm fairness
Fairness measure
Fairness measures or metrics are used in network engineering to determine whether users or applications are receiving a fair share of system resources. There are several mathematical and conceptual definitions of fairness.-TCP fairness:...

 (as can occur with HSTCP
HSTCP
HighSpeed TCP is a new congestion control algorithm protocol defined in RFC 3649 for TCP. Standard TCP performs poorly in networks with a large bandwidth delay product. It is unable to fully utilize available bandwidth...

). It is also available for Linux, as well as for Windows XP and Windows Server 2003 via a hotfix.

Principles of operation

Like FAST TCP
FAST TCP
FAST TCP is a TCP congestion avoidance algorithm especially targeted at long-distance, high latency links, developed at the , California Institute of Technology and now being commercialized by...

 and TCP Vegas
TCP Vegas
TCP Vegas is a TCP congestion avoidance algorithm that emphasizes packet delay, rather than packet loss, as a signal to help determine the rate at which to send packets. It was developed at the University of Arizona by Lawrence Brakmo and Larry L...

, Compound TCP uses estimates of queueing delay as a measure of congestion; if the queueing delay is small, it assumes that no links on its path are congested, and rapidly increases its rate. However, unlike FAST and Vegas, it does not seek to maintain a constant number of packets queued.

Compound TCP maintains two congestion windows: a regular AIMD window and a delay-based window. The size of the actual sliding window used is the sum of these two windows. The AIMD window is increased the same way that TCP Reno increases it. If the delay is small, the delay-based window increases rapidly to improve the utilisation of the network. Once queueing is experienced, the delay window gradually decreases to compensate for the increase in the AIMD window. The aim is to keep their sum approximately constant, at what the algorithm estimates is the path's bandwidth-delay product
Bandwidth-delay product
In data communications, bandwidth-delay product refers to the product of a data link's capacity and its end-to-end delay . The result, an amount of data measured in bits , is equivalent to the maximum amount of data on the network circuit at any given time, i.e. data that has been transmitted but...

. In particular, when queueing is detected, the delay-based window is reduced by the estimated queue size to avoid the problem of "persistent congestion" reported for FAST and Vegas. Thus, unlike TCP-Illinois
TCP-Illinois
TCP-Illinois is a variant of TCP congestion control protocol, developed at the University of Illinois at Urbana-Champaign. It is especially targeted at high-speed, long-distance networks...

 and its precursor TCP Africa, Compound TCP can reduce its window in response to delay. This increases its fairness to Reno.

Windows Vista/2008/7

CTCP is enabled by default in computers running beta versions of Windows Server 2008 and disabled by default in computers running Windows Vista and 7.

CTCP can be enabled with the command:
netsh interface tcp set global congestionprovider=ctcp
or disabled with the command:
netsh interface tcp set global congestionprovider=none

To display the current setting for CTCP use:
netsh interface tcp show global
Parameter "Add-On Congestion Control Provider" will either have a value of "none" if CTCP is disabled or "ctcp" if it is enabled.

Windows 2003 & XP x64

A hotfix is available that adds CTCP support to 64 bit Windows XP and Windows Server 2003.

The following registry key can be set to 1 to enable, or 0 to disable:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\TCPCongestionControl

Linux

In addition to Windows, CTCP was also ported to Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

 by Angelo P. Castellani. A patch derived from this was developed at Caltech, which included CTCP's TUning By Emulation (TUBE). The patch was only available to researchers due to software patent
Software patent
Software patent does not have a universally accepted definition. One definition suggested by the Foundation for a Free Information Infrastructure is that a software patent is a "patent on any performance of a computer realised by means of a computer program".In 2005, the European Patent Office...

s. Since kernel version 2.6.17 the module has been incompatible and fails to compile due to kernel API changes.

See also

  • TCP congestion avoidance algorithm
    TCP congestion avoidance algorithm
    Transmission Control Protocol uses a network congestion avoidance algorithm that includes various aspects of an additive increase/multiplicative decrease scheme, with other schemes such as slow-start in order to achieve congestion avoidance....

  • Explicit Congestion Notification
    Explicit Congestion Notification
    Explicit Congestion Notification is an extension to the Internet Protocol and to the Transmission Control Protocol and is defined in RFC 3168 . ECN allows end-to-end notification of network congestion without dropping packets. ECN is an optional feature that is only used when both endpoints...

  • Transmission Control Protocol — Development

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK