Compound TCP (CTCP) is a
Microsoft
Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washing ...
algorithm that was introduced as part of the
Windows Vista
Windows Vista is a major release of the Windows NT operating system developed by Microsoft. It was the direct successor to Windows XP, which was released five years before, at the time being the longest time span between successive releases of ...
and Window Server 2008
TCP stack. It is designed to aggressively adjust the sender's
congestion window
Transmission Control Protocol (TCP) uses a network congestion-avoidance algorithm that includes various aspects of an additive increase/multiplicative decrease (AIMD) scheme, along with other schemes including slow start and congestion windo ...
to optimise TCP for connections with large
bandwidth-delay product
In data communications, the bandwidth-delay product is the product of a data link's capacity (in bits per second) and its round-trip delay time (in seconds). The result, an amount of data measured in bits (or bytes), is equivalent to the maxim ...
s while trying not to harm
fairness
Fairness or being fair can refer to:
* Justice
* The character in the award-nominated musical comedy '' A Theory of Justice: The Musical.''
* Equity (law), a legal principle allowing for the use of discretion and fairness when applying justice ...
(as can occur with
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 b ...
). 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 (also written FastTCP) is a TCP congestion avoidance algorithm especially targeted at long-distance, high latency links, developed at the Netlab, California Institute of Technology and now being commercialized by FastSoft. FastSoft was a ...
and
TCP Vegas, Compound TCP uses estimates of queuing delay as a measure of congestion; if the queuing 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
Transmission Control Protocol (TCP) uses a network congestion-avoidance algorithm that includes various aspects of an additive increase/multiplicative decrease (AIMD) scheme, along with other schemes including slow start and congestion window ...
increases it. If the delay is small, the delay-based window increases rapidly to improve the utilisation of the network. Once queuing 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
In data communications, the bandwidth-delay product is the product of a data link's capacity (in bits per second) and its round-trip delay time (in seconds). The result, an amount of data measured in bits (or bytes), is equivalent to the maxim ...
. In particular, when queuing 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 and its precursor
TCP Africa
TCP may refer to:
Science and technology
* Transformer coupled plasma
* Tool Center Point, see Robot end effector
Computing
* Transmission Control Protocol, a fundamental Internet standard
* Telephony control protocol, a Bluetooth communication ...
, Compound TCP can reduce its window in response to delay. This increases its fairness to Reno.
Descriptions of Compound TCP can be found in a conference paper, an Internet-Draft, and a US patent.
Supported platforms
Windows 2003 & XP x64
A hotfix is available that adds CTCP support to 64 bit Windows XP and Windows Server 2003.
[A hotfix that adds Compound TCP (CTCP) support to computers that are running Windows Server 2003 or Windows XP is available](_blank)
/ref>
The following registry key can be set to 1 to enable, or 0 to disable:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\TCPCongestionControl
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 8 and up
Since Windows 8, Windows uses PowerShell
PowerShell is a task automation and configuration management program from Microsoft, consisting of a command-line shell (computing), shell and the associated scripting language. Initially a Windows component only, known as Windows PowerShell, it ...
comman
Set-NetTCPSetting
to modify the congestion control algorithm. Around 2018, Microsoft moved from CTCP to using CUBIC in Windows 10 and the Xbox, because it was seen as very delay sensitive and also worked poorly in data centre, where delay variation was an issue.
Linux
In addition to Windows, CTCP was also ported to Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
. 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
A software patent is a patent on a piece of software, such as a computer program, libraries, user interface, or algorithm.
Background
A patent is a set of exclusionary rights granted by a state to a patent holder for a limited period of time, u ...
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
Transmission Control Protocol (TCP) uses a network congestion-avoidance algorithm that includes various aspects of an additive increase/multiplicative decrease (AIMD) scheme, along with other schemes including #Slow start, slow start and #Conge ...
* Explicit Congestion Notification
Explicit Congestion Notification (ECN) is an extension to the Internet Protocol and to the Transmission Control Protocol and is defined in RFC 3168 (2001). ECN allows end-to-end notification of network congestion without dropping packets. ECN is ...
* Transmission Control Protocol — Development
References
External links
Compound TCP Internet-Draft
"A Compound TCP Approach for High-speed and Long Distance Networks"
July 2005
Performance Enhancements in the Next Generation TCP/IP Stack
The Cable Guy
The Compound TCP for High-speed and Long Distance Networks
Microsoft Research publication
Article at Network Performance Daily
Caltech's Compound TCP patch for Linux
* Enabling CTCP on 2003/XP x64
Report on experimental evaluation of Compound TCPHamilton Institute
an
Caltech
March 2008.
A simulation-based study of Compound TCP
July 14, 2008
{{DEFAULTSORT:Compound Tcp
TCP congestion control