前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Windows网络配置方面的优化经验

Windows网络配置方面的优化经验

原创
作者头像
Windows技术交流
修改2025-02-13 09:42:46
修改2025-02-13 09:42:46
9400
代码可运行
举报
文章被收录于专栏:Windows技术交流Windows技术交流
运行总次数:0
代码可运行

1、一般尝试这几处修改对比效果

Init.MaxTxBuffers  默认1024,保持

Init.MaxRxBuffers 默认256,调1024(tcp内网drop入包,必改项)

Maxium Number of RSS Queue 默认8,调16

Init.MTUSize 默认1500,调9000 或1200对比,有的场景调大有效果,有的场景调小有效果

代码语言:txt
复制
之前遇到个QUIC协议的case,就是要调小MTU后业务才正常
另外一个case调整为巨型帧后(mtu=8500),重传现象有好转

另外,单独提一下上图中的Checksum Offload,有些情况可能需要关闭checksum offload,web访问才会正常,异常的时候,多个不同web站点都rst客户端。命令行关闭、开启的命令参考https://cloud.tencent.com/developer/article/1921599

2、如果有tcpip来源事件ID 4227/4231/4266 调大动态端口范围

代码语言:txt
复制
netsh int ipv4 set dynamicport tcp start=5001 num=60535
netsh int ipv4 set dynamicport udp start=5001 num=60535

调大动态端口范围,不用重启机器

3、降低TcpTimedWaitDelay

<2012R2和Win8.1的系统,执行:

代码语言:txt
复制
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v "TcpTimedWaitDelay" /t REG_DWORD /d 30 /f

≥2012R2和Win8.1的系统,执行:

代码语言:txt
复制
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v "TcpTimedWaitDelay" /t REG_DWORD /d 2 /f

改TcpTimedWaitDelay,需要重启机器

4、一些场景需要关闭ECN

https://cloud.tencent.com/developer/article/2135929

5、一些特殊场景得换CurrentBuildNumber≥26100的win11内核的操作系统(win11 24H2、2025)

如何判读Windows系统版本参考https://cloud.tencent.com/developer/article/2494888

咋个特殊场景:Windows咋优化都没效果,同一个机器、同一个网络换linux就正常

之前遇到一个特殊场景,公网传输速度上不去,抓包发现乱序重传非常多,同样的机器、网络,啥都不变,换成部分linux系统正常了,部分linux系统不行,所有windows系统除过win11内核的都试了一遍都不行,换成win11内核的系统可以了,就此咨询了微软,答复如下:

代码语言:javascript
代码运行次数:0
复制
咨询了我们PG,是以下文章的作者
https://techcommunity.microsoft.com/t5/networking-blog/algorithmic-improvements-boost-tcp-performance-on-the-internet/ba-p/2347061

Win11上实现了RACK的dynamic reordering window,Server 2022及之前版本这个window是一个固定的值。也就是说不管网络乱序多么严重,我们都只用一个固定的window。Win11上会根据乱序程度动态调节。这个window决定了TCP能够容忍乱序的程度。
这是代码层面的,我们之前尝试的OS层设置,是没有用的。
另外我搜到这篇文章
https://www.cnblogs.com/lshs/p/6038592.html
文中也提到
RACK使用的需要三个条件:
1、TCP连接必须使用SACK选项
2、对于每个发送的数据包,发送端必须存储这个数据包的发送时间,时间精度至少要达到毫秒精度。如果连接的RTT小于1ms,那么微秒精度将会更有利于RACK探测丢包。
3、对于每个发送出去的数据包,发送端必须存储这个数据包是否已经重传过。
并且Linux默认打开RACK,这也解释了为什么Linux关闭了SACK和Timestamps速度也会变慢,因为这会导致关闭RACK。

Linux实现了RACK,因此Linux上的传输速度有优化;但Windows Server没有,Win11上开始实现RACK优化,甚至在Win11上,这个算法也还不完善,等到Win11的22H2版本,才真正实现。

经过自己实践,结合微软的答复,win11内核的系统是网络性能最好的windows系统。

从xp/2003~win11/2025,win11内核的Windows系统网络性能最好

Reeive side scaling (RSS) is a network driver technology that enables the efficient distribution of network receive processing across multiple CPUs in multiprocessor systems.

https://learn.microsoft.com/en-us/windows-hardware/drivers/network/introduction-to-receive-side-scaling

NDIS 6.0 包含在 Windows Vista 操作系统中。

NDIS 6.1 包含在 Windows Server 2008 和 Windows Vista service Pack 1 (SP1) 操作系统中。

NDIS 6.20 包含在 Windows 7 和 Windows Server 2008 R2。

NDIS 6.30 包含在 Windows 8 和 Windows Server 2012。

NDIS 6.40 包含在 Windows 8.1 和 Windows Server 2012 R2。

NDIS 6.50 包含在Windows 10版本 1507。

NDIS 6.60 包含在 Windows 10 版本 1607 和 Windows Server 2016中。

NDIS 6.70 包含在 Windows 10 版本 1703 。

NDIS 6.80 包含在 Windows 10 版本 1709 。

NDIS 6.81 包含在 Windows 10 版本 1803 。

NDIS 6.82 包含在 Windows 10 版本 1809 和 Windows Server 2019中。

NDIS 6.83 包含在 Windows 10 版本 1903。

NDIS 6.84 包含在 Windows 10 版本 2004 。

NDIS 6.85 包含在 Windows 10 版本 21H2 和 Windows Server 2022中。

NDIS 6.86 包含在 Windows 11 版本 21H2。

NDIS 6.87 包含在 Windows 11 版本 22H2 。

NDIS 6.88 包含在 Windows 11 版本 23H2 。

NDIS 6.89 包含在 Windows 11 版本 24H2 和 Windows Server 2025。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档