游戏中的 Nagle 算法:要不要关闭?
关闭 Nagle 算法(TCPNoDelay 和 TcpAckFrequency)常被说成可以“降低延迟”。本文说明它实际做什么、对哪些游戏可能有帮助,以及为什么大多数射击游戏不受影响。
什么是 Nagle 算法
这是 TCP 的一个老机制:当程序发送大量很小的数据片段时,Windows 会短暂地把它们攒起来,合并成一个数据包发送。与它配合的是“延迟确认”(delayed ACK):接收方不会立即确认每个数据包,而是成批确认——Windows 默认每两个数据包确认一次,或者最多等待 200 毫秒的计时器。下载文件时这样可以节省网络资源;但对于通过 TCP 发送小消息的游戏,它可能增加延迟。
这项设置改了什么
对每个已连接的网络适配器,在 HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{适配器 GUID} 下写入两个值:TCPNoDelay = 1(不合并小数据包)和 TcpAckFrequency = 1(每个数据包立即确认)。需要管理员权限,并需重启。
对哪些游戏有帮助
只对通过 TCP 与服务器通信的游戏有帮助:部分 MMO 和 MOBA、较老的网络游戏、一些网页游戏和回合制游戏。《反恐精英 2》、Valorant、Fortnite、Apex Legends 以及大多数现代射击游戏使用 UDP——Nagle 算法与它无关,这项设置对它们没有任何影响。
能降低 ping 吗
游戏里显示的 ping 主要取决于到服务器的距离和您的线路质量。关闭 Nagle 算法不会让它变小。在合适的 TCP 游戏中,它可能消除个别消息偶尔多出的延迟——感觉像操作“卡了一下”——但即便如此,也应该实际测试,而不是想当然。
缺点
- 网络上的小数据包会稍微多一些。
- 在慢速或繁忙的连接上,大文件下载可能略慢。
- 这些值按适配器写入:更换网卡或 Wi-Fi 适配器后,需要重新应用这项设置。
结论
如果您玩的是 TCP 游戏并且感觉操作有延迟,可以试试——它是安全的,并且可以撤销。如果您玩的是 CS2、Valorant 或 Fortnite,就不必费心了:不会有效果。在 NyxBoost 中,这项设置会在应用前显示所有值,“撤销”会恢复原值。至于相关的多媒体网络限制设置,实话说:它通常也不会改变游戏中的 ping。