Windows用于控制 TCP 确认 (ACK)行为的注册表项 -TcpAckFrequency
笔者说:
此修改,在测试TCP吞吐量时,可能会提高,需要根据实际的环境进行对弈验证。我测试时修改为20验证有效果。
项目
本文介绍 TcpAckFrequency,这是一个新的注册表项,用于确定 TCP 确认 (AKS) 。
适用于: Windows 10 – 所有版本,Windows Server 2012 R2
摘要
TcpAckFrequency 是一个注册表项,用于确定在忽略延迟 ACK 计时器之前将未完成的 TCP (AKS) 的 TCP 确认数。
更多信息
如 RFC 1122 中指定,TCP 使用延迟确认减少在媒体上发送的数据包数。 与针对收到的每个 TCP 段发送确认不同,Windows TCP 采用一种实现延迟确认的常见方法。 由于特定连接上的 TCP 接收数据,因此仅在满足下列条件之一时,才发送确认:
未发送上一段收到的确认。
接收到一个段,但在 200 毫秒内没有其他段到达该连接。
通常,除非延迟的 ACK 计时器在 200 毫秒后过期,否则将针对连接上接收的所有其他 TCP (发送) 确认。 可以通过编辑以下注册表项来调整延迟的 ACK 计时器。
重要
此部分(或称方法或任务)介绍了修改注册表的步骤。 但是,注册表修改不当可能会出现严重问题。 因此,请务必严格按照这些步骤操作。 为了加强保护,应先备份注册表,再进行修改。 如果出现问题,可以还原注册表。 若要详细了解如何备份和还原注册表,请单击以下文章编号以查看 Microsoft 知识库中的文章:
322756 如何在 Windows 中备份和还原注册表
子项 :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\ <Interface GUID>
条目 :TcpAckFrequency
值类型:REG_DWORD、数字
有效范围:0-255
默认:2
说明:指定在忽略延迟 ACK 计时器之前将未完成的 AKS 的数量。 如果不仔细研究环境,Microsoft 不建议更改默认值。
如果将值设置为 1,则立即确认每个数据包,因为只收到一个未完成的 TCP ACK 作为一个段。 值 0 (0) 无效,将被视为默认值 2。 当未收到段且主机不会确认数据时,ACK 号码的唯一时间为 0。