概述
TCP 拥塞控制能够提高网络利用率,降低丢包率,并保证网络资源对每条数据流的公平性。拥塞控制主要有几种:慢启动、拥塞避免、快速重传 以及快速恢复。
拥塞控制的最终受控变量是发送端向网络一次连续写入的数据量(即收到其中第一个数据的确认应答之前的所有数据),称为发送窗口(send window,SWND)。但是发送端往往最终以 TCP 报文段来发送数据,所以 SWND 限定了发送端能够连续发送 TCP 报文段的数量。发送端应该合理的选择 SWND 的大小,若该值太小,会引起网络延迟,若太大,则容易导致网络拥塞。前面中我们知道,接收端可通过其接收通告窗口(RWND)来控制发送端的 SWND 大小,但是发送端应该引入一个拥塞窗口(Congestion Window,CWND)的状态量。实际的 SWND 值就是 RWND 和 CWND 中的较小者。
慢启动
为了防止网络拥塞,T