概要
将每个出站段移交给 IP 时,TCP 将启动重新传输计时器。 如果在计时器过期之前未收到给定段中的数据的确认,该段将被重新传输,次数最多不超过 TcpMaxDataRetransmissions 次。 此参数的默认值为 5。
建立 TCP 连接时,重新传输计时器初始化为三秒。 但是,它根据 RFC793 中所述的平滑往返时间(SRTT)计算进行实时调整,以适应连接的特性。 给定段的计时器在每次重新传输该段后翻倍。 使用此算法,TCP 自行调整为连接的正常延迟。 在高延迟链接上传输的 TCP 连接比在低延迟链接上传输的连接超时所需的时间更长。
默认情况下,在重新传输计时器达到 240 秒后,它将使用该值重新传输必须重新传输的任何段。 这可能会导致客户端在慢速链接上超时长时间延迟。
详细信息
重要
本部分、方法或任务包含说明如何修改注册表的步骤。 如果您错误地修改注册表,可能会出现严重问题。 因此,请确保仔细执行这些步骤。 出于防范目的,请在修改之前备份注册表,以便在出现问题时还原注册表。 有关如何备份和恢复注册表的更多信息,请参见如何在 Windows 中备份和恢复注册表。
TcpMaxDataRetransmissions注册表值控制 TCP 在中止连接之前重新传输单个数据段的次数。 此值默认未配置,但可以输入该值以更改默认重试次数。
在 Windows 中更改以下子键:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters
值名称:TcpMaxDataRetransmissions 数据类型:REG_DWORD - Number 有效范围: 0 - 0xFFFFFFFF 默认值:5
说明:此参数控制在中止连接之前 TCP 重新传输单个数据段(非连接段)的次数。 重传超时时间在同一连接的每次连续重传时加倍。 响应恢复时会重置。 基本超时值是根据测量出的连接往返时间动态确定的。
Windows 提供一种机制来控制初始重新传输时间,然后动态自行调整重新传输时间。 若要更改初始重新传输时间,请修改以下注册表值。
在 Windows 中更改以下子键:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\ID for Adapter
值名称:TCPInitialRtt 数据类型:REG_DWORD 有效范围: 300-65535 (以十进制为单位的毫秒) 默认值: 0xBB8 (以十六进制表示的 3,000 毫秒)
说明:此参数控制 TCP 在每个新连接上使用的初始重新传输超时。 它适用于连接请求(SYN)和在每个连接上发送的第一个数据段。 例如,“5000 decimal”的值数据将初始重新传输时间设置为 5 秒。
注释
只能增加初始超时时间的值。不支持减小该值。
在 Windows 中更改以下密钥:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters
值名称:InitialRttData 类型:REG_DWORD 有效范围: 0-65535 (十进制) 默认值: 0xBB8 (3000 十进制)
说明:此参数控制 TCP 在每个新连接上使用的初始重新传输超时。 它适用于连接请求(SYN)和在每个连接上发送的第一个数据段。
例如,“5000 decimal”的值数据将初始重新传输时间设置为 5 秒。
在 Windows 中,可以使用 initialRTO 通过 netsh 命令来控制初始 RTO。
有关先决条件和详细信息,请参阅 无法在 Windows Server 2008 R2 中使用 netsh 命令自定义某些 TCP 配置。
有关详细信息,请在 Web 上搜索“RFC 793(第 3.7 节)TCP 协议规范”。