Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
zhendewokusi committed Jan 6, 2024
1 parent 69979f6 commit dd6bea6
Showing 1 changed file with 2 additions and 0 deletions.
2 changes: 2 additions & 0 deletions source/_posts/TCP-超时计时器的管理.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,4 +60,6 @@ TCP**必须**使用[Karn-Partridge 算法](https://www.geeksforgeeks.org/karns-a

其第二部分就是考虑到了这种不太理想的网络情况。为每次重传的RTO设置“退避因子”,也就是常说的指数退避。在不需要重传的成功数据传输发生之前,不会重置退避因子。该部分会放置网络的拥塞,使其能从任何拥塞问题中恢复,还保证了RTT信息不会丢失,当数据成功传输而无需重传时,可以将伴随的RTT测量添加到SRTT中。

目前很多TCP实现了时间戳,这样就方便多了,发送端再也不需要保存发送分段的时间了,只需要将其放入协议头的时间戳字段,然后接收端将其回显在ACK即可,然后发送端收到ACK后,取出时间戳,和当前时间做算术差,即可完成一次RTT的测量。

需要注意的是:TCP 实现可以在多次回退计时器后清除 SRTT 和 RTTVAR,因为在这种情况下当前 SRTT 和 RTTVAR 很可能是假的。一旦 SRTT 和 RTTVAR 被清除,它们应该采集的下一个 RTT 样本进行初始化(RTO的第二步)。

0 comments on commit dd6bea6

Please sign in to comment.