TCP 窗口大小为零

网络工程 tcp 协议论 传输协议 第 4 层 射频
2022-02-25 05:49:45

如果我将接收窗口设置为零(接收方),这是否会自动暂停发送方未确认段的计时器?

是否有任何关于此的 RFC 或规范?

示例:
S 发送 Seg1、Seg2。
C 接收 Seg1、2 并确认 Seg1。并将接收窗口设置为 0。
并等待几秒钟,直到它 ACK Seg2。
在这段时间之后,它会发送 Seg2 的 ACK 和一个新的窗口大小。
Seg2 的计时器是否已超时?

1个回答

一个简单的互联网搜索会出现很多关于这个主题的信息。如果您添加rfc到搜索中,您将获得 RFC 的链接。例如,RFC 793,传输控制协议

请注意,当接收窗口为零时,除了 ACK 段之外,不应接受任何段。因此,TCP 可以在传输数据和接收 ACK 时保持零接收窗口。然而,即使接收窗口为零,TCP 也必须处理所有传入段的 RST 和 URG 字段。

编辑:

根据评论和讨论,计时器没有暂停,它继续运行并可能到期。如果在重置窗口大小之前收到过期计时器的 ACK,则计时器没有实际意义,因为段已被确认。如果在收到 ACK 之前重新设置了窗口大小,则定时器在继续运行后已经超时,发送方将立即重新发送未确认的段。它不会恢复暂停的计时器并等待它到期。