每个发送的TCP数据包是否有一个重传定时器?

问题描述 投票:1回答:2

我有一个关于TCP的重传定时器的问题。我已经阅读了很多关于TCP拥塞控制的文章,博客条目和其他内容,当然我遇到了重传定时器。 也许这是一个愚蠢的问题,但有时会提到,对于每个发送的段,启动定时器,而在其他地方,则表示为每个发送的段重置定时器。 那么每个发送的段是否有一个重传定时器,因此有多个定时器和发送的段,或者只有一个重传定时器?

networking tcp tcp-ip
2个回答
0
投票

下面的行来自“TCPIP Illustrated,第1卷”,因此似乎只有一个计时器存在,新的计时器取代旧计时器。

一旦发送TCP基于有效RTT的时变值的测量建立其RTO,每当它发送段时,它确保适当地设置重传定时器。当设置重传定时器时,记录所谓的定时段的序列号,如果及时接收到ACK,则取消重传定时器。下一次发送方发出包含数据的数据包时,会设置新的重新传输计时器,取消旧计时器,并记录新的序列号。因此,发送TCP连续地设置和取消每个连接的一个重传定时器;如果没有数据丢失,则重传计时器不会过期


-1
投票

通常(个别实现当然可以做非典型的事情)单个重传定时器,并且当另一方确认新数据时它被重置。从发送数据到确认数据的时间用于更新RTT(往返时间)。

请记住,TCP基于序列号而不是数据包运行,这是累积确认的工作方式。实现甚至不需要记录流的分段方式。

© www.soinside.com 2019 - 2024. All rights reserved.