慢开始和拥塞避免:
慢开始原理:
(1)当主机开始发送数据时,如果立即将较大的发送窗口的全部数据字节都注入网络,由于不清楚网络的状况,可能会引发网络拥塞
(2)比较好的方式就是从小到大逐渐增大发送端的拥塞控制窗口数值
(3)一开始发送报文段的时候就将拥塞窗口cwnd的打星设置为最大报文段的MSS。如果收到了对新报文段的确认,那就就在大家一个MSS的数值
当rwind朱勾搭的时候,为防止拥塞端口cwind引起网络拥塞,就开始使用慢开始门限ssthresh进行控制,ssthresh的使用方法如下
拥塞避免算法如下:
(1)TCP连接初始化,将拥塞窗口设置为1
(2)执行慢开始算法,cwnd按指数规律增长,知道cwind=ssthress时,开始执行拥塞避免算法,cwnd按线性规律增长
(3)当网络发送拥塞,把ssthresh值更新为拥塞前ssthresh的一半,cwnd重新设置为1,然后再执行(2)
快重传和快恢复
快重传要求接收方在收到一个失序的报文段后就立即发出重复确认(为的是使发送方及早知道有报文段没有到达对方)
而不要等到自己发送数据时捎带确认。快重传算法规定发送方只要已收到3个重复确认就应当立即崇川对方尚未收到的报文段,而不必继续等待
设置的重传计时器时间到期
快恢复算法:
(1)当发送方连续收到三个重复确认时,就执行“乘法减小”算法,把sstresh门限减半。但是并执行慢开始
(2)考虑到如果网络出现拥塞的话就不会收到好几个重复的确认,所以发送方现在认为网络可能没有出现拥塞。所以此时不执行慢开始算法
,而是将cwnd设置为sstresh的打星,然后开始执行拥塞避免算法