赞
踩
拥塞控制,是指防止过多的数据注入网络,保证网络中的路由器或链路不致过载
。出现拥塞时,端点并不了解到拥塞发生的细节,对通信连接的端点来说,拥塞往往表现为通信时延的增加。当然,拥塞控制和流量控制也有相似的地方,即它们都通过控制发送方发送数据的速率来达到控制效果。拥塞控制
是让网络能够承受现有的网络负荷,是一个全局性的过程,涉及所有的主机、所有的路由器,以及与降低网络传输性能有关的所有因素。流量控制
往往是指点对点的通信量的控制,即接收端控制发送端,它所要做的是抑制发送端发送数据的速率,以便使接收端来得及接收。流量控制
。为了更好地对传输层进行拥塞控制,因特网建议标准定义了以下4种算法:慢开始、拥塞避免、快重传、快恢复。
(1)慢开始算法
例如,A向B发送数据,发送时A的拥塞窗口为2,那么A一次可以发送两个TCP报文段,经过一个RTT后(也称一个
传输轮次
),A收到B对刚才两个报文的确认,于是把拥塞窗口调整为4,下一次发送时就可一次发送4个报文段。
慢开始门限ssthresh(阈值)
,然后改用拥塞避免算法
。(2)拥塞避免算法
(3)网络拥塞的处理
拥塞避免是指在拥塞避免阶段把拥塞窗口控制为按线性规律增长,使网络比较不容易出现拥塞。
在慢开始和拥塞避免算法中使用了
“乘法减小”和“加法增大”方法
。
“乘法减小”
是指不论是在慢开始阶段还是在拥塞避免阶段,只要出现一次超时(即很可能出现了网络拥塞),就把慢开始门限值ssthresh设置为当前拥塞窗口值的一半。网络频繁出现拥塞时,ssthresh 值就下降得很快,以大大减少注入网络的分组数。“加法增大”
是指执行拥塞避免算法后,在收到对所有报文段的确认后(即经过一个 RTT),就把拥塞窗口cwnd增加一个MSS大小,使拥塞窗口缓慢
增大,以防止网络过早出现拥塞。
快重传和快恢复算法是对慢开始和拥塞避免算法的改进。
(1)快重传
快重传技术
使用了冗余ACK来检测丢包的发生
。同样,冗余ACK也用于网络拥塞的检测
(丢了包当然意味着网络可能出现了拥塞)。快重传并非取消重传计时器,而是在某些情况下可更早地重传丢失的报文段。直接重传对方尚未收到的报文段,而不必等待那个报文段设置的重传计时器超时
。(2)快恢复
快恢复算法
的原理如下:“乘法减小”算法
,把慢开始门限ssthresh 设置为出现拥塞时发送方cwnd的一半。不同之处
是,它把cwnd的值设置为慢开始门限ssthresh改变后的数值,然后开始执行拥塞避免算法(“ 加法增大”)
,使拥塞窗口缓慢地线性增大。由于跳过了cwnd从1起始的慢开始过程,所以被称为快恢复
。快恢复算法的实现过程如图所示,作为对比,虚线为慢开始的处理过程。
流量控制
中,发送方发送数据的量由接收方决定,而在拥塞控制
中,则由发送方自己通过检测网络状况来决定。慢开始、拥塞避免、快重传和快恢复几种算法
应是同时应用在拥塞控制机制之中的
注意:
发送方发送窗口的实际大小
由流量控制
和拥塞控制
共同决定。
因此,当题目中同时出现接收端窗口(rwnd) 和拥塞窗口(cwnd) 时,发送方实际的发送窗口大小是由rwnd和cwnd中较小的那一个确定的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。