在广域网,TCP报文可能要经过多个路由器和速率较慢的链路。如果发送方一开始就向网络
发送多个报文段,则中间路由器的缓冲负担会立刻加重,很可能致使路由器缓存空间耗尽,
引发丢包。
为了解决这一问题,TCP需要支持“慢启动”算法,该算法通过观察到新分组进入网络的速
率应该与另一端返回确认的速率相同而进行工作。
慢启动算法在发送方TCP增加了一个拥塞窗口,记为cwnd,它与通告窗口相互配合来完成
慢启动过程。
当TCP连接建立成功以后,开始阶段,cwnd为1个报文段。发送方每收到一个ack,cwnd都
会增加。收到第一个ack时,cwnd = 2;收到第2个ack时,cwnd = 4,如此这般以指数关系
增加,直到cwnd = 通告窗口或者发送报文的速率达到了网路的容量,中间路由器开始丢弃
分组,这就通知发送方拥塞窗口开得过大。
需要注意的是:
1.发送方发送上限是cwnd和通告窗口的最小值(单位是字节)。
2.cwnd以字节为单位,但是慢启动以报文段大小为单位进行增加