解决Windows网络传输异常或速度低于预期

在访问部分网站或内网传输(如SMB文件传输、iperf3测速等)时,速度低于协商速度的一些解决方案。

网络重置

网络重置

以管理员身份运行以下命令,进行网络重置。

netsh winsock reset

驱动更新或重装

驱动重装分为两种,一种是固件(firmware)更新,另一种是驱动(driver)更新。

固件更新

需要固件更新的情况比较少,目前遇到需要更新固件的只有Intel的i225-V网卡。

一般情况下固件可能会由设备制造商、OEM主板厂商等提供。就Intel而言,固件并不会由intel直接提供(直接获取需要申请intel开发者)。固件更新,多数时间需要自行查找相关资源,这里仅推荐www.station-drivers.com这个网站。

驱动重装
  1. 提前准备好相关驱动程序,一般会由设备制造商、OEM主板厂商等提供。
  2. 在设备管理器卸载相关设备(右键(开始)->设备管理器->网络适配器->找到对应网卡->右键(属性)->驱动程序->卸载设备->勾选(尝试删除此设备的驱动程序)->卸载)。
  1. 重新安装相关网络驱动即可。

解除QoS限制

QoS(Quality of Service,服务质量)同样可以影响网络传输速率。

路由器中解除QoS限制

这个一般在路由器中叫带宽限制网络公平QoS等。主要表现为网络限速,网络公平传输。当发现网络传输速率低于预期时,可以尝试调整或禁用相关配置。

Windows中禁用QoS

运行ncpa.cpl,找到对应网络适配器,取消勾选QoS数据包计划程序即可。

修改Windows的TCP全局参数

以管理员身份启动powershell或者cmd。执行netsh int tcp show global,检查相关TCP全局参数。例如:

PS C:\> netsh int tcp show global
查询活动状态...

TCP 全局参数
----------------------------------------------
接收方缩放状态          : enabled
接收窗口自动调节级别    : normal
加载项拥塞控制提供程序  : default
ECN 功能                      : disabled
RFC 1323 时间戳                 : enabled
初始 RTO                         : 1000
接收段合并状态    : enabled
非 Sack Rtt 复原             : disabled
最大 SYN 重新传输次数             : 4
快速打开                           : enabled
快速打开回退                  : enabled
HyStart                             : enabled
比例费率降低         : enabled
节奏配置文件                      : off

如果网络低于预期可以尝试逐条运行以下命令(部分命令针对特定Windows版本,出错忽略即可)。

netsh int tcp set global dca=enabled
netsh int tcp set global autotuninglevel=normal
netsh interface tcp set global congestionprovider=ctcp
netsh int tcp set global timestamps=enabled
netsh int tcp set supplemental template=internet congestionprovider=ctcp
netsh int tcp set global rss=enabled
netsh int tcp set global ecn=disable