码迷,mamicode.com
首页 > 其他好文 > 详细

计算机网络概述 传输层 TCP拥塞控制

时间:2018-10-28 16:52:13      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:维护   超时重传   tps   net   分组   注入   detail   网络负载   速度   

TCP拥塞控制

计算机网络中的带宽、交换结点中的缓存和处理机等,都是网络的资源。在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就会变坏。这种情况就叫做拥塞。

       拥塞控制就是防止过多的数据注入网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制是一个全局性的过程,和流量控制不同,流量控制指点对点通信量的控制。

拥塞控制 和 流量控制 的区别?
1. 拥塞控制:拥塞控制是作用于网络的,它是防止过多的数据注入到网络中,避免出现网络负载过大的情况;
2. 流量控制:流量控制是作用于接收者的,它是控制发送者的发送速度从而使接收者来得及接收。
PS:拥塞控制是针对于网络而言的,它是防止往网络中写入太多分组,从而导致网络拥塞的情况;而流量控制是针对接收者的,它是通过控制发送者的发送速度保证接收者能够来得及接收。

拥塞控制的目的?
1. 缓解网络压力
2. 保证分组按时到达

慢开始算法 和 拥塞避免算法

发送方维护一个发送窗口,发送窗口的大小取决于网络的拥塞情况和接收窗口的大小,发送窗口是动态变化的。
发送方还维护一个慢开始门限
发送窗口 < 慢开始门限:使用慢开始算法
发送窗口 > 慢开始门限:使用拥塞避免算法
发送窗口 = 慢开始门限:使用慢开始算法或拥塞避免算法
算法的具体过程:
通信开始时,发送方的发送窗口设为1,并发送第一个分组M1;
接收方收到M1后,返回确认应答,此时发送方发送窗口扩大两倍,并发送M2、M3;(即,发送方每次收到确认应答后,都将发送窗口设为当前值的两倍)
若发送窗口>慢开始门限,则使用拥塞避免算法,每次收到确认应答后都将发送窗口+1;
若发送方出现了超时重传,则表明网络出现拥塞,此时:
a)慢开始门限设为当前发送窗口的一半;
b)发送窗口设为1;
c)启用拥塞避免算法;
PS:发送超时重传时,发送窗口有可能已经超过了慢开始门限,也有可能还没超过;此时不管何种情况,都一律启用拥塞避免算法,并执行上述三步操作!
慢开始算法的作用:慢开始算法将发送窗口从小扩大,而且按指数级扩大,从而避免一开始就往网络中注入过多的分组从而导致拥塞;它将窗口慢慢扩大的过程其实也在探测网络拥塞情况的过程,当发现出现拥塞时,及时降低发送速度,从而减缓网络拥塞。
拥塞避免算法的作用:拥塞避免算法使发送窗口以线性方式增长,而非指数级增长,从而使网络更加不容易发生拥塞。
AIMD算法(加法增大乘法减小算法)
慢开始算法 和 拥塞避免算法 还有个名称叫做『加法增大乘法减小算法』。
加法增加:指的是拥塞避免算法,使得发送窗口以线性的方式增长;
乘法减小:指的是不管当前正使用慢开始算法还是拥塞避免算法,只要发生拥塞时,慢开始门限将会变成当前窗口的一半。
快重传算法 和 快恢复算法

上述慢开始算法和拥塞避免算法能保证网络出现拥塞时进行相应的处理,而快重传和快恢复是一种拥塞预防的方式,此时网络可能尚未出现拥塞,但已经有拥塞的征兆,因此得作出一些预防措施。
快重传原理:因为TCP具有累计确认的能力,因此接收者收到一个分组的时候不会立即发出应答,可能需要等待收到多个分组之后再同一发出累计确认。但快重传算法就要求,接收者如果接收到一个乱序的分组的话,就必须立即发出前一个正确分组的确认应答,这样能让发送者尽早地知道有一个分组可能丢失。
快恢复原理:当发送者收到同一个分组的三个确认应答后,就基本可以判断这个分组已经丢失了;这时候无需等待超时,直接执行『乘法减小加法增大』:
将慢开始门限减半;
将发送窗口减半(不设为1);
使用拥塞避免算法;
---------------------
作者:凌澜星空
来源:CSDN
原文:https://blog.csdn.net/u010425776/article/details/55006347
版权声明:本文为博主原创文章,转载请附上博文链接!

计算机网络概述 传输层 TCP拥塞控制

标签:维护   超时重传   tps   net   分组   注入   detail   网络负载   速度   

原文地址:https://www.cnblogs.com/lizhouwei/p/9865988.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!