您的位置:首页 > 理论基础 > 计算机网络

TCP流量控制与拥塞控制

2016-04-05 13:20 417 查看
拥塞控制与流量控制的区别:
拥塞控制是让网络能够承受现有的网络负荷,他是一个全局性的过程,涉及所有的主机,路由器,以及降低网络性能有关的所有因素,相反,流量控制往往是指点对点的通信量的控制,即接收端控制发送端,他所要做的就是抑制发送端发送数据的速率,以便接收端来得及接收。
比如说:某个链路传输速率为10GB/s,一台巨型机向一台PC以1GB速率发送文件,显然网络的带宽是足够的,即不存在拥塞的问题。但是如此高的发送速率将导致PC段来不及接收,因此流量控制是必须要有的。但是,倘若有100万个PC在此链路上以1Mb的速率传送文件,那么现在的问题就变成了网络的负荷是否超过了现有网络所能承受的范围。这时候就需要拥塞控制了

慢启动和拥塞避免:
(1)开始先令拥塞窗口cwnd=1,每收到一个ACK报文的确认(也即是一个RTT,一个传输轮次),就加倍cwnd,指数形式增长。这样慢启动一直把拥塞窗口cwnd增大到一个规定的门限阈值,就改用拥塞避免算法
(2)拥塞避免每经过一个RTT传输轮次就增加一个MSS(最大报文长度),而不是加倍,使得cwnd呈线性增长,而当出现一次超时(网络拥塞)时,就令慢启动的门限阈值为当前cwnd的一半(即乘法减小,但不能小于2),然后把拥塞窗口重新设置为1,执行慢启动算法,这样做目的就是要迅速减少主机发送到网络中的分组数目,使得发生用赛的路由器有足够时间把队列中积压的分组处理完毕。

当cwnd < ssthresh时,采用慢启动算法
当cwnd > ssthresh时,采用拥塞避免算法

快速重传:


收到相同的ACK证明对方没收到你后续发过去的包,所以对方重复发送ack,只有收到相同的ACK你才可以肯定对方没有成功收到你发到包,所以才要重传

快速重传使用冗余ACK来检测丢包的发生。同样,冗余ACK也用于网络拥塞的检测(丢了包当然意味着网络可能拥塞)。快重传并非取消重传计时器,而是在某些情况下更早的重传丢失的包。
当发送端连续收到三个重复的ACK报文时,即认为有数据包丢失,直接重传对方尚未接收到的报文段,而不必要等到那个报文段设置的重传计时器超时再重传。

快速回复:
快速恢复算法原理是当发送端接收到三个冗余ACK(即重复确认)时,就执行乘法减小,把慢开始门限阈值设置为当前cwnd的一半,然后把cwnd值设置为慢开始门限阈值减半后的值(这一点和慢开始不同)。

发送方发送窗口的实际大小由流量控制和拥塞控制共同决定。因此当题目中出现接收端窗口(rwnd)和拥塞窗口(cwnd)时,发送方实际发送窗口大小是rwnd和cwnd中较小的那个。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  通信 网络