Compound TCP

Last updated

Compound TCP (CTCP) is a Microsoft algorithm that was introduced as part of the Windows Vista and Window Server 2008 TCP stack. It is designed to aggressively adjust the sender's congestion window to optimise TCP for connections with large bandwidth-delay products while trying not to harm fairness (as can occur with HSTCP). It is also available for Linux, as well as for Windows XP and Windows Server 2003 via a hotfix. [1]

Contents

Principles of operation

Like FAST TCP 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 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 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, Compound TCP can reduce its window in response to delay. This increases its fairness to Reno.[ citation needed ]

Descriptions of Compound TCP can be found in a conference paper, [2] an Internet-Draft, [3] and a US patent. [4]

Supported platforms

Windows 2003 & XP x64

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

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 command 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 by Angelo P. Castellani[ citation needed ]. 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 patents. [5] [ better source needed ] Since kernel version 2.6.17 the module has been incompatible and fails to compile due to kernel API changes.

See also

Related Research Articles

The Transmission Control Protocol (TCP) is one of the main protocols of the Internet protocol suite. It originated in the initial network implementation in which it complemented the Internet Protocol (IP). Therefore, the entire suite is commonly referred to as TCP/IP. TCP provides reliable, ordered, and error-checked delivery of a stream of octets (bytes) between applications running on hosts communicating via an IP network. Major internet applications such as the World Wide Web, email, remote administration, and file transfer rely on TCP, which is part of the Transport Layer of the TCP/IP suite. SSL/TLS often runs on top of TCP.

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 an optional feature that may be used between two ECN-enabled endpoints when the underlying network infrastructure also supports it.

IEEE 802.1X is an IEEE Standard for port-based Network Access Control (PNAC). It is part of the IEEE 802.1 group of networking protocols. It provides an authentication mechanism to devices wishing to attach to a LAN or WLAN.

Network congestion in data networking and queueing theory is the reduced quality of service that occurs when a network node or link is carrying more data than it can handle. Typical effects include queueing delay, packet loss or the blocking of new connections. A consequence of congestion is that an incremental increase in offered load leads either only to a small increase or even a decrease in network throughput.

Internet Connection Sharing (ICS) is a Windows service that enables one Internet-connected computer to share its Internet connection with other computers on a local area network (LAN). The computer that shares its Internet connection serves as a gateway device, meaning that all traffic between other computers and the Internet go through this computer. ICS provides Dynamic Host Configuration Protocol (DHCP) and network address translation (NAT) services for the LAN computers.

FAST TCP 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 acquired by Akamai Technologies in 2012.

netstat Command line network statistics tool

In computing, netstat is a command-line network utility that displays network connections for Transmission Control Protocol, routing tables, and a number of network interface and network protocol statistics. It is available on Unix, Plan 9, Inferno, and Unix-like operating systems including macOS, Linux, Solaris and BSD. It is also available on IBM OS/2 and on Microsoft Windows NT-based operating systems including Windows XP, Windows Vista, Windows 7, Windows 8 and Windows 10.

<span class="mw-page-title-main">Windows Messenger service</span> Local network notification service for Microsoft Windows

Messenger service is a network-based system notification Windows service by Microsoft that was included in some earlier versions of Microsoft Windows.

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 (CWND), to achieve congestion avoidance. The TCP congestion-avoidance algorithm is the primary basis for congestion control in the Internet. Per the end-to-end principle, congestion control is largely a function of internet hosts, not the network itself. There are several variations and versions of the algorithm implemented in protocol stacks of operating systems of computers that connect to the Internet.

Nagle's algorithm is a means of improving the efficiency of TCP/IP networks by reducing the number of packets that need to be sent over the network. It was defined by John Nagle while working for Ford Aerospace. It was published in 1984 as a Request for Comments (RFC) with title Congestion Control in IP/TCP Internetworks in RFC 896.

TCP tuning techniques adjust the network congestion avoidance parameters of Transmission Control Protocol (TCP) connections over high-bandwidth, high-latency networks. Well-tuned networks can perform up to 10 times faster in some cases. However, blindly following instructions without understanding their real consequences can hurt performance as well.

Network Access Protection (NAP) is a Microsoft technology for controlling network access of a computer, based on its health. With NAP, system administrators of an organization can define policies for system health requirements. Examples of system health requirements are whether the computer has the most recent operating system updates installed, whether the computer has the latest version of the anti-virus software signature, or whether the computer has a host-based firewall installed and enabled. Computers with a NAP client will have their health status evaluated upon establishing a network connection. NAP can restrict or deny network access to the computers that are not in compliance with the defined health requirements.

H-TCP is another implementation of TCP with an optimized congestion control algorithm for high speed networks with high latency. It was created by researchers at the Hamilton Institute in Ireland.

The TCP window scale option is an option to increase the receive window size allowed in Transmission Control Protocol above its former maximum value of 65,535 bytes. This TCP option, along with several others, is defined in RFC 7323 which deals with long fat networks (LFNs).

Link Layer Topology Discovery (LLTD) is a proprietary link layer protocol for network topology discovery and quality of service diagnostics. Microsoft developed it as part of the Windows Rally set of technologies. The LLTD protocol operates over both wired as well as wireless networks.

In computing, Microsoft's Windows Vista and Windows Server 2008 introduced in 2007/2008 a new networking stack named Next Generation TCP/IP stack, to improve on the previous stack in several ways. The stack includes native implementation of IPv6, as well as a complete overhaul of IPv4. The new TCP/IP stack uses a new method to store configuration settings that enables more dynamic control and does not require a computer restart after a change in settings. The new stack, implemented as a dual-stack model, depends on a strong host-model and features an infrastructure to enable more modular components that one can dynamically insert and remove.

CUBIC is a network congestion avoidance algorithm for TCP which can achieve high bandwidth connections over networks more quickly and reliably in the face of high latency than earlier algorithms. It helps optimize long fat networks.

Remote Desktop Services (RDS), known as Terminal Services in Windows Server 2008 and earlier, is one of the components of Microsoft Windows that allow a user to initiate and control an interactive session on a remote computer or virtual machine over a network connection. RDS was first released in 1998 as Terminal Server in Windows NT 4.0 Terminal Server Edition, a stand-alone edition of Windows NT 4.0 Server that allowed users to log in remotely. Starting with Windows 2000, it was integrated under the name of Terminal Services as an optional component in the server editions of the Windows NT family of operating systems, receiving updates and improvements with each version of Windows. Terminal Services were then renamed to Remote Desktop Services with Windows Server 2008 R2 in 2009.

The Stream Control Transmission Protocol (SCTP) is a computer networking communications protocol in the transport layer of the Internet protocol suite. Originally intended for Signaling System 7 (SS7) message transport in telecommunication, the protocol provides the message-oriented feature of the User Datagram Protocol (UDP), while ensuring reliable, in-sequence transport of messages with congestion control like the Transmission Control Protocol (TCP). Unlike UDP and TCP, the protocol supports multihoming and redundant paths to increase resilience and reliability.

Low Extra Delay Background Transport (LEDBAT) is a way to transfer data on the Internet quickly without clogging the network. LEDBAT was invented by Stanislav Shalunov and is used by Apple for software updates, by BitTorrent for most of its transfers and by Microsoft SCCM software distribution points. At one point in time, LEDBAT was estimated to carry 13–20% of Internet traffic. LEDBAT is a delay-based congestion control algorithm that uses all the available bandwidth while limiting the increase in delay; it does so by measuring one-way delay and using changes in the measurements to limit congestion that the LEDBAT flow itself induces in the network. LEDBAT is described in RFC 6817.

References

  1. 1 2 A hotfix that adds Compound TCP (CTCP) support to computers that are running Windows Server 2003 or Windows XP is available
  2. Tan, K.; Song, J.; Zhang, Q.; Sridharan, M. (2006). "A Compound TCP Approach for High-Speed and Long Distance Networks". Proceedings IEEE INFOCOM 2006. 25TH IEEE International Conference on Computer Communications. pp. 1–12. doi:10.1109/INFOCOM.2006.188. ISBN   1-4244-0221-2. S2CID   1741788.
  3. Tan, Kun; Sridharan, Murari; Bansal, Deepak; Thaler, Dave. "Compound TCP: A New TCP Congestion Control for High-Speed and Long Distance Networks". tools.ietf.org.
  4. "Compound transmission control protocol [US7577097B2]". Google Patents. March 22, 2005.
  5. "Compound TCP in Linux". Archived from the original on August 2, 2008. Retrieved January 4, 2011.