TCP拥塞控制算法

目录

慢开始

拥塞避免

快重传算法

快恢复算法 

总结

TCP拥塞控制和网络层策略的联系


四种拥塞控制算法: 慢开始、拥塞避免、快重传、快恢复

慢开始

目的:用来确定网络的负载能力或拥塞程度

算法思路:由小到大逐渐增大拥塞窗口数值

两个变量:

1)拥塞窗口:

初始拥塞窗口值:2种设置方法

1至2个最大报文段(旧标准)

2至4个最大报文段(RFC 5681)

窗口值逐渐增大

2)慢开始门限

防止拥塞窗口增长过大引起网络拥塞

TCP拥塞控制算法_第1张图片

拥塞避免

算法思路:让拥塞窗口cwnd缓慢地增大,避免出现拥塞

每经过一个传输轮次,拥塞窗口cwnd = cwnd + 1

使拥塞窗口cwnd按线性规律缓慢增大

在拥塞避免阶段,具有“加法增大”的特点

TCP拥塞控制算法_第2张图片

无论在慢开始阶段还是在拥塞避免阶段,只要发送方判断网络出现拥塞(重传定时器超时)

TCP拥塞控制算法_第3张图片 

 目的:迅速减少主机发送到网络中的分组数,使得发送拥塞的路由器有足够时间把队列中积压的分组处理完毕

TCP拥塞控制算法_第4张图片

 注意:“拥塞避免”并非指完全能够避免了拥塞。利用以上的措施要完全避免网络拥塞还是不可能的。“拥塞避免”是说在拥塞避免阶段把拥塞窗口控制为按线性规律增长,使网络比较不容易出现拥塞。


快重传算法

TCP拥塞控制算法_第5张图片

发送方只要一连收到三个重复确认,就知道接收方确实没有收到报文段,因而应当立即进行重传(即“快重传”)这样就不会出现超时,发送方也不就会误以为出现了网络拥塞。

使用快重传可以使整个网络的吞吐量提高约20%

TCP拥塞控制算法_第6张图片TCP拥塞控制算法_第7张图片 

快恢复算法 

当发送方收到连续三个重复的确认时,由于发送方现在认为网络很可能没有发送拥塞,因此现在不执行慢开始算法,而是执行快恢复算法FR(Fast Recovery)算法:

TCP拥塞控制算法_第8张图片 TCP拥塞控制算法_第9张图片

 

总结

下图涵盖了以上四个算法

TCP拥塞控制算法_第10张图片

TCP拥塞控制和网络层策略的联系

TCP拥塞控制算法_第11张图片

路由器的队列通常都是按照“先进先出”FIFO(First InFirst Out)的规则处理到来的分组。
当队列已满时,以后再到达的所有分组(如果能够继续排队,这些分组都将排在队列的尾部)将都被丢弃。这就叫做尾部丢弃策略(tail-drop policy)。
路由器的尾部丢弃往往会导致一连串分组的丢失,这就使发送方出现超时重传,使TCP进入拥塞控制的慢开始状态,结果使TCP连接的发送方突然把数据的发送速率降低到很小的数值。
TCP拥塞控制算法_第12张图片 

 

 

你可能感兴趣的:(计算机网络,tcp,网络协议,网络)