摘要
- RFC 6298 只在 ACK 确认了新数据时重启重传计时器,而不是每收到一个 ACK 就重启。
- 发送数据时若计时器未运行则启动;所有未决数据都被确认后停止;计时器到期时重传最早的未确认段。
确认边界才是时钟的参照
计时器保护的是仍处于未确认状态的数据。发送带数据的报文时,如果计时器处于空闲状态,发送端便按当前 RTO 启动它。随后发送更多数据,并不会自动把原有期限向后推移。
规则 5.3 规定,只有 ACK 确认了新数据,计时器才重新开始一个当前 RTO 间隔。此时接收端已确认更多序列空间,发送端所面对的最早未确认段可能已经改变。
如果 ACK 只是重复原来的确认边界,它不满足这个条件。因此可以推断,重复 ACK 不能不断为尚未解决的数据购买新的期限。这一推断只针对该计时器规则,并不表示重复 ACK 在 TCP 中普遍没有作用。
当所有未决数据都已确认,计时器关闭。若计时器到期,则发送端重传最早的未确认段。
必须做什么,推荐如何做
RFC 6298 的硬性不变量是:某个段在上一次发送后,不得少于一个 RTO 就再次被重传。文中把启动、停止和重启的生命周期称为推荐算法;强制性不变量与推荐实现方式并不相同。
该 RFC 不能证明所有现有实现的行为,也不在此讨论延迟确认、RTT 采样、快速重传、SACK、拥塞控制或超时退避。
来源
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
