原文 https://datatracker.ietf.org/doc/html/rfc6298 Computing TCP's Retransmission Timer 计算TCP重传计时器
概述
本文档定义了传输控制协议 (TCP) 发送方用于计算和管理其重传计时器的标准算法。 它扩展了 RFC 1122 第 4.2.3.1 节中的讨论,并将支持算法的要求从 SHOULD 升级为 MUST。 本文档废弃了 RFC 2988。
1. 简介
传输控制协议 (TCP) [Pos81] 使用重传计时器来确保在没有来自远程数据接收器的任何反馈的情况下传输数据。该计时器的持续时间称为 RTO(重传超时)。 RFC 1122 [Bra89] 规定 RTO 应该按照 [Jac88] 中的概述进行计算。
本文档编写了设置 RTO 的算法。此外,本文档扩展了 RFC 1122 第 4.2.3.1 节中的讨论,并将支持算法的要求从应该(SHOULD)升级为必须(MUST)。 RFC 5681 [APB09] 概述了 TCP 用于在 RTO 到期并发送重传后开始发送的算法。本文档不会改变 RFC 5681[APB09] 中概述的行为。
在某些情况下,TCP 发送方比本文档中详述的算法所允许的更保守可能是有益的。但是,TCP 不得比以下算法允许的更激进。本文档废弃了 RFC 2988 [PA00]。
2. 基本算法
为了计算当前 RTO,TCP 发送方维护两个状态变量,SRTT(平滑往返时间)和 RTTVAR(往返时间变化)。此外,我们假设时钟粒度为 G 秒。
SRTT、RTTVAR 和 RTO