复合TCP

复合TCP（，简称CTCP）是微软自Windows Vista及Window Server 2008开始在TCP栈中引入的一个算法。它旨在积极调整发送方的，以在不损害的基础上（HSTCP同样遵循）优化TCP对高带宽时延积连接的表现。该方案还可在Linux、Windows XP以及Windows Server 2003上使用。

 操作原理 
类似和，复合TCP采用估算排队延迟来度量拥塞；如果排队延迟小，则假设链路上没有拥塞，并迅速增加其速率。但不同于FAST和Vegas，它不追求维护恒定数量的数据包队列。

复合TCP维护两个拥塞窗口：一个常规的窗口，以及一个基于延迟的窗口。最终实际使用的滑动窗口大小是这两个窗口的和。AIMD窗口与的增加方式相同。如果延迟小，基于延迟的窗口将迅速增加以提高网络的利用率。一旦经历了排队，延迟窗口将逐渐减小以补偿增加的AIMD窗口。这样的目的是保持两者的总和大致恒定，使算法估计带宽时延积的路径。具体来说，当检测到排队时，基于时延的窗口因估计的队列大小而减少，以避免FAST和Vegas报告的“持续拥塞”。因此，不同于及其前身，复合TCP可以减少其窗口以避免响应延迟。这增加了它对于Reno的公平性。

 支持平台 

 Windows 2003和XP x64 
有一个热修复补丁可以为64位Windows XP和Windows Server 2003添加CTCP支持。

将下列注册表键设为1则为启用，设为0则为禁用：
 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\TCPCongestionControl

 Windows Vista/2008/7 
CTCP在Beta版的Windows Server 2008中被默认启用，在Windows Vista和7上被默认禁用。 

可以使用下列命令启用CTCP：
 netsh interface tcp set global congestionprovider=ctcp 
下列命令禁用CTCP：
 netsh interface tcp set global congestionprovider=none
显示当前的CTCP设置：
 netsh interface tcp show global
“附加拥塞控制提供程序”（Add-On Congestion Control Provider）参数为“none”表示CTCP已禁用，为“ctcp”表示它已启用。

 Windows 8 / 8.1 
Windows 8/8.1需使用PowerShell命令（见 https://web.archive.org/web/20131029184023/http://technet.microsoft.com/en-us/library/hh826132.aspx）修改拥塞控制算法。

 Linux 
除了Windows支持，CTCP还被Angelo P. Castellani移植到了Linux。Caltech开发的一个补丁包含了CTCP's TUning By Emulation (TUBE)。此补丁由于软件专利而仅供研究人员使用。该模块已不兼容内核2.6.17及以上版本，将由于内核API变更而编译失败。

 参见 

 显式拥塞通知
 传输控制协议（TCP） - 发展过程

 参考资料 

 外部链接 
 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
 Vista's TCP/IP Promises and Perils, Article at Network Performance Daily
 Caltech's Compound TCP patch for Linux
 Enabling CTCP on 2003/XP x64:  , 
 Report on experimental evaluation of Compound TCP  Hamilton Institute  and Caltech , March 2008.
 A simulation-based study of Compound TCP  July 14, 2008
 CTCP进驻Windows的故事 ，微软亚洲研究院的博客，2009年10月27日 

Category:TCP拥塞控制