慢开始-》拥塞避免-》快重传-》快恢复。
概念:
可靠通信
停止等待
:每发送一个分组,就停止发送,等待对方的确认,收到确认后再发送下一个分组。
累积确认
:接收方不必对收到的分组逐个发送确认,而是收到几个分组后,对按序到达的最后一个分组发送确认。
超时重传
:发送方过了一段时间(超时计时器到期)没有收到确认,就认为发送的分组丢失了,就重传前面的分组。
可靠通信
:使用确认
和重传
机制,TCP在不可靠的传输网络上实现可靠的通信。
流量控制:
滑动窗口
: 以字节为单位的滑动窗口,包括了发送方的发送窗口和接收方的接收窗口。其中发送方的发送窗口不能超过接收方的接收窗口值。接收方会通知发送方接收的窗口大小。
拥塞控制
丢弃分组
:一个路由器如果没有足够的缓存空间,他就会丢弃一些信道的分组。
发送方感知网络拥塞
: 当网络发生拥塞时,路由器会丢弃分组。因此,只要发送方没有按时接收到应当到达的确认报文,就认为 网络发生了拥塞。
拥塞窗口(cwnd)
:( 拥塞窗口动态变化,取决于网络的拥塞程度。发送方让自己的发送窗口小于等于拥塞窗口。)
慢开始
:先设置发送窗口为1,逐渐增到发送窗口。具体就是发送方每收到一个确认就把拥塞窗口加1。慢开始呈指数增长。
慢开始门限(ssthresh)
:
- 当cwnd<ssthresh时,使用慢开始算法。
- 当cwnd>ssthresh时,使用拥塞避免算法。
- 当cwnd=ssthresh时,使用以上哪种都行。
拥塞避免
:当拥塞窗口增长到慢开始门限ssthresh时,开始拥塞避免算法:即每经过一个往返时间RTT就把发送方的拥塞窗口cwnd加1,而不是加倍。拥塞避免呈线性增长的。
快重传
:首先要求接收方在收到一个失序的报文段后,就立即发送重复确认。发送方一连接收到三个重复确认,就应当立即重传对方未收到的报文段。
快恢复
:当发送方一连收到三个重复确认时,就把慢开始门限(ssthresh)减半。因为发送方能够收到三个确认报文,所以发送方认为网络并没有发生拥塞。因此会把cwnd设置为慢开始门限ssthresh的一半,然后开始执行拥塞避免算法(加法增大,线性增长)。
TCP通过:慢开始
、拥塞避免
、快重传
、快恢复
算法进行拥塞控制。