2

根据我的研究,CWND = CWND + MSS * (MSS/CWND)每次收到新的确认时都会设置拥塞避免阶段。这是假设我们没有遇到重复的ACKSor timeouts。但是如果有延迟确认会发生什么?

以下是我对延迟确认的研究的看法(不知道这是否正确):

基本上延迟的 ACK 是在一段时间内保留 ACK 段的目的地,期望两件事之一。由于接收器收到了新的数据包,在计时器结束之前将需要发送更多的 ACK。或者接收者需要将一些数据发送回发送者,在这种情况下,它可以在该数据包上捎带消息。这如何影响拥塞避免阶段?这对于依赖于新的 Acks 来增加 CWND 的 TCP 的拥塞避免阶段是不利的。这将导致 CWND 窗口大小更改的延迟,从而导致数据包发送的延迟。这意味着当 TCP 可以向接收方发送数据包时,实际上并不是因为确认被延迟了。

4

2 回答 2

0

这是一个非常好的问题。由于它们使瓶颈缓冲区保持满,延迟 Ack 对于 Reno 和 CUBIC 等传统拥塞控制算法来说并不是一个大问题。对于试图保持队列较小的 TCP Vegas,这仍然不是问题,因为如果它面临延迟的 Ack,它会非常缓慢地减少 cwnd(每个 RTT 一个单位)。因此,除非延迟确认持续很长时间,否则 Vegas 连接不会受到未充分利用的影响。

于 2021-10-22T22:48:14.917 回答
0

这会影响拥塞避免阶段,就像它影响其他阶段(SS)一样:它会减慢流量。但是,请记住有两种不同的网络用途,一种是交互式的(例如 telnet),另一种是批量的。延迟 Acks 很可能与发送非常少量数据的交互式协议一起使用,但是如果对方使用 Nagle 算法,这可能会带来新的问题。如果不确定,只需禁用延迟的 Acks。

于 2019-01-28T10:17:15.390 回答