我觉得有点尴尬承认我无法理解TCP的慢启动,这应该是一个非常简单的算法。请考虑以下情况:
因为ack在发送者的缓冲区中排队,所以发送者能够发送26个段,而只收到4个段的ack。这似乎与缓慢开始在发送的流量上设置上限的意图相反。
我的推理在哪里错了?
RFC 2581定义CWND如下:
在任何给定时间,TCP都不得发送序列号高于最高确认序列号和最小cwnd和rwnd之和的数据。
这证实了@ jman的解释。
答案 0 :(得分:2)
cwnd
代表未确认的细分受众群。因此,当收到第一个ACK时,cwnd
变为5
,并且堆栈会发送2
个更多的段,因为已经有3
个未确认的段已经存在。
您的示例应为: