将Windows拥塞算法更改为CTCP

Compound TCP ,简称CTCP,是微软自Windows Vista及Window Server 2008开始在TCP栈中引入的一个算法。它旨在积极调整发送方的拥塞窗口,以在不损害公平原则的基础上优化TCP对高带宽时延积连接的表现。

类似近段时间在 Linux 中常用的 TCP BBR( Bottleneck Bandwidth and Round-trip propagation time) , CTCP 能提升在高延时环境下的网络通讯质量。经过测试,开启CTCP后, 能显著改善与网络互通性较差的海外服务器上传文件、远程连接等操作的速度。

对于 Windows 10 系统

查看当前TCP全局参数

 netsh int tcp show global 

查看TCP默认模板及补充参数

 netsh int tcp show supplemental 

在这里能看到当前默认拥塞控制程序

执行下面的更改命令,重启系统。再次查看参数,确认已完成更改。

netsh int tcp set supplemental template=internet congestionprovider=ctcp 

Windows Server 2019/2016

在Windows 2019中,Cubic被选为默认的拥塞控制算法,如果要修改为CTCP,参考下面链接。

Server 2019 network performance

Set-NetTCPSetting

Disabling LEDBaT on Your Windows 2016/2019 Server

Windows Vista/2008/7

在Beta版Windows Server 2008中,CTCP默认是开启的,而在Vista和Win7中默认是关闭的,需要手动开启。

显示当前设置: netsh interface tcp show global 。 Add-On Congestion Control Provider 项nonectcp 代表关闭或开启。

开启 CTCP: netsh interface tcp set global congestionprovider=ctcp

关闭 CTCP: netsh interface tcp set global congestionprovider=none

Windows 2003 & XP 64bit

修改注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\TCPCongestionControl 中的值,1为开启,0为关闭。

参考资料

CTCP进驻Windows的故事

Compound TCP – Wikipedia

发表评论

电子邮件地址不会被公开。 必填项已用*标注