如果发现你的网速很快,稳定性高,但是打开网页仍然很慢,可以尝试优化 Windows 接收窗口调节功能(不适合所有人)
1 、什么是 TCP 窗口自动调节
Windows 接收窗口调节功能是 Vista 系统上添加的功能,为了优化 TCP 的"慢启动"与"拥塞避免"而通过系统确定 TCP 连接最合适的接收窗口大小。
但实际上,如果你的网络带宽足够大,网络稳定性足够好,那么实际上完全可以不使用。
当然程序最终使用的 TCP 窗口大小还是跟其自身的设置有关,手动关闭仅仅只是为了将应用读取的系统窗口值限制在一个较高的值上,平时效果可能不明显。
更多的效果体现在短时间的单进程 TCP 链接上,比如打开网页,上传一个文件。(因为浏览器大多跟随系统窗口值)
如果修改后,经常网络卡住,则需要向下调节,直到正好平衡为止。
最后这个窗口也要考虑到系统网络栈的缓存大小。(比如你不能直接开到万兆你网卡依然会拥塞)
2 、关闭 TCP 窗口自动调节
以管理员权限打开命令提示符(或 Powershell),输入命令查看当前 TCP 全局参数。
netsh interface tcp show global
然后我们关闭 Windows 套接字 TCP 窗口自动调节功能
netsh int tcp set global autotuninglevel=disabled
关闭后重新进行上一步查看 TCP 窗口自动调节状态
netsh interface tcp show global
如果你想恢复默认值 normal ,输入命令重新开启即可
netsh int tcp set global autotuninglevel=normal
关于 TCP 窗口自动调节的五个参数含义分别如下
disabled: uses a fixed value for the tcp receive window. Limits it to 64KB. 禁用窗口调节,使用默认值 64KB(注册表可改默认值) highlyrestricted: allows the receive window to grow beyond its default value, very conservatively. 允许窗口调节超过默认值 64KB,严格限制增长速度 restricted: somewhat restricted growth of the tcp receive window beyond its default value. 允许窗口调节超过默认值 64KB,简单限制增长速度 normal: default value, allows the receive window to grow to accommodate most conditions. 允许窗口调节超过默认值 64KB,并使用适合会话的值 experimental: allows the receive window to grow to accommodate extreme scenarios (It enables RWIN values of over 16 MB). 允许窗口调节超过默认值 64KB,并可能超过 16MB 达到非常高的水平
额外的你还可以查看当前系统采用了哪种 TCP 拥塞管理协议
netsh interface tcp show supplemental
例图:关闭 Windows 接收窗口调节功能
3 、设置 TCP 窗口大小
以管理员的方式打开 Windows 注册表(Win+R 调出运行,在栏中输入 regedit 即可)然后进入指定注册表路径
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\AFD\Parameters
默认注册表不存在此键值,我们可以新创建好。在右侧区域创建两个 "DWORD 32 位" 键值,名字分别为 "DefaultReceiveWindow" 和 "DefaultSendWindow"
然后赋予新值(本例所用值为 16Mbps 计算得出),注意这两个参数默认值为 8Kb ,微软社区推荐值 64Kb ,国内论坛推荐值 10Mb
"DefaultReceiveWindow"=dword:00200000 "DefaultSendWindow"=dword:00200000
两个速度的计算公式如下(注意是小 bps 不是大 Bps,以及一般只是修改上传保证上传速度)
下载速度 Kbps / 8)* 1024 = DefaultReceiveWindow
上传速度 Kbps / 8)* 1024 = DefaultSendWindow
4 、修改入站 TCP 流量设置
以管理员权限打开组策略。按顺序进入下方位置
计算机配置 - Windows 设置 - 基于策略的 QoS 右键点击 “ 基于策略的 QoS ” ,点击 “ 高级 QoS 设置 ”,查看 ” 入站 TCP 流量 “ 页 勾选 “ 入站 TCP 吞吐量级别 ” ,选择 “ 级别 3 最大吞吐量 ”
此时等价于修改上方的配置,同时四个选项的含义为
级别 0 = 64KB , 级别 1 = 256KB , 级别 2 = 1024KB , 级别 3 = 16384KB
5 、相关链接
详情链接:微软官方 TechNet 链接
关于 TCP 窗口控制的简单介绍:CSDN 链接
CVE-2012-0148: A Deep Dive Into AFD AFD 介绍链接
DefaultSendWindow 提高上传速度 链接