哪些 TCP 标志将使用计时器,以及将使用什么计时器?

网络工程 tcp 联网
2022-02-14 11:23:06

在研究TCP协议生命周期的时候,

有3个阶段:

  • 建立连接
  • 数据传输
  • 连接移除

TCP 有 6 种标志类型:SYN、ACK、PSH、FIN、RST、URG。

TCP有4个定时器

  • 重传定时器
  • 持续定时器
  • 保活定时器
  • Time_Wait 定时器

  1. 常规的 TCP 生命周期只有 SYN、ACK、FIN 3 个标志参与,对吧?

  2. 在 6 个 flogs 中,它们中的哪些使用了计时器,以及什么计时器?我知道 SYN,FIN 会使用,ACK 不会。PSH、RST、URG 怎么样?

2个回答

我认为不可能将计时器与标志相关联。计时器与其中使用的发送/接收段操作相关联,而不是标志。

这是一个总结。此处提供了更完整的计时器摘要

重传定时器

重传计时器与对等方的发送缓冲区中的一个段相关联(每个段都有自己的计时器)。一旦发送了该段,就会启动计时器。如果在收到 ACK 之前定时器超时,则重传段。没有使用特殊标志。

持续定时器

持久计时器用于所谓的“零窗口探测”。如果接收方有完整的接收缓冲区,它会发回一个将其窗口设置为零的数据包。这意味着发送方不能发送任何未来的数据包。

在这种情况下,发送方会定期向接收方发送空段(实际上数据包中有一个字节,但预计会被忽略)。目标是接收者发回它的窗口,发送者知道窗口是否仍然为零。请注意,通常发送方会从其他数据包的 ACK 中获知窗口大小。这是必要的,因为 ACK 可能会丢失。

零窗口探测不使用特殊标志。更多关于零窗口的信息可以在这里找到

保活定时器

用于在一段时间内未收到任何数据的连接上发送保持活动状态。更多关于保命的信息可以在这里找到。

Time_Wait 定时器

当对端在连接终止期间为第二个 FIN 发送 ACK 时,启动此计时器。对等方应该为该计时器的值(~2 分钟)保留连接数据,以防 ACK 丢失并应重新传输。

当这个定时器到期时,可以删除连接状态。不发送任何数据包。

PSH、RST、URG 不使用计时器——那没有意义。

请参阅此问答,了解 PSH 和 URG 的作用。RST 终止连接而不完成它。