1、课件制作人:谢希仁计算机网络第 7 章 运输层的拥塞控制课件制作人:谢希仁四种拥塞控制的方法n慢开始n拥塞避免n快重传n快恢复课件制作人:谢希仁两个参数n拥塞窗口cwnd:发送方维持的一个状态变量,拥塞窗口的大小取决于网络的拥塞程度,并且动态地在变化。发送方让自己的发送窗口等于拥塞窗口。n慢开始门限ssthresh:其用法如下n当cwnd ssthresh时,停止使用慢开始算法而 改用拥塞避免算法n当cwnd=ssthresh时,既可使用慢开始算法,也可使用拥塞避免算法。课件制作人:谢希仁慢开始算法的原理 n由小到大逐渐增大发送窗口,也就是逐渐增大拥塞窗口;n在主机刚刚开始发送报文段时可先将拥
2、塞窗口 cwnd 设置为一个最大报文段 MSS 的数值;n在每收到一个对新的报文段的确认后,将拥塞窗口增加至多一个 MSS 的数值;n每经过一个传输轮次,拥塞窗口 cwnd 就加倍;n用这样的方法逐步增大发送端的拥塞窗口 cwnd,可以使分组注入到网络的速率更加合理。课件制作人:谢希仁拥塞避免算法n条件:拥塞窗口cwnd 慢开始门限 ssthresh时,停止使用慢开始算法而改用拥塞避免算法;n原理:没经过一个往返时间RRT(即传输轮次),就把拥塞窗口cwnd 加1,而不是加倍;n拥塞窗口cwnd按线性规律缓慢增长,比慢开始算法的拥塞窗口增长速率缓慢得多。课件制作人:谢希仁要点无论在慢开始阶段还
3、是拥塞避免阶段,只要发送方判断网络出现拥塞(其依据就是没有按时收到确认):n要将慢开始门限ssthresh设置为出现拥塞时的发送窗口值的一半(但不能小于2)n拥塞窗口cwnd重新设置为1,执行慢开始算法;n目的:迅速减少主机发送到网络中的分组数,使得发生拥塞的路由器有足够时间把队列中积压的分组处理完毕。慢开始和拥塞避免算法的实现举例 当 TCP 连接进行初始化时,将拥塞窗口=1。图中的窗口单位不使用字节而使用报文段。慢开始门限的初始值设置为 16 个报文段,即 ssthresh=16。246810121416182022004812162024传输次数拥塞窗口 cwnd进入拥塞避免发生超时指数
4、规律增长线性规律增长ssthresh=16慢开始慢开始拥塞避免拥塞避免更新后的 ssthresh=12进入拥塞避免慢开始和拥塞避免算法的实现举例 在执行慢开始算法时,拥塞窗口 cwnd 的初始值为 1,发送第一个报文段 M0。246810121416182022004812162024传输次数拥塞窗口 cwnd进入拥塞避免发生超时指数规律增长线性规律增长ssthresh=16慢开始慢开始拥塞避免拥塞避免更新后的 ssthresh=12进入拥塞避免慢开始和拥塞避免算法的实现举例 246810121416182022004812162024传输次数拥塞窗口 cwnd进入拥塞避免发生超时指数规律增长
5、线性规律增长ssthresh=16慢开始慢开始拥塞避免拥塞避免更新后的 ssthresh=12进入拥塞避免发送端收到 ACK1(确认 M0,期望收到 M1)后,将 cwnd 从 1 增大到 2,于是发送端可以接着发送 M1 和 M2 两个报文段。慢开始和拥塞避免算法的实现举例 接收端发回 ACK2 和 ACK3。发送端每收到一个对新报文段的确认 ACK,就把发送端的拥塞窗口加 1。现在发送端的 cwnd 从 2 增大到 4,并可发送 M4 M6共 4个报文段。246810121416182022004812162024传输次数拥塞窗口 cwnd进入拥塞避免发生超时指数规律增长线性规律增长sst
6、hresh=16慢开始慢开始拥塞避免拥塞避免更新后的 ssthresh=12进入拥塞避免慢开始和拥塞避免算法的实现举例 发送端每收到一个对新报文段的确认 ACK,就把发送端的拥塞窗口加 1,因此拥塞窗口 cwnd 随着传输次数按指数规律增长。246810121416182022004812162024传输次数拥塞窗口 cwnd进入拥塞避免发生超时指数规律增长线性规律增长ssthresh=16慢开始慢开始拥塞避免拥塞避免更新后的 ssthresh=12进入拥塞避免慢开始和拥塞避免算法的实现举例 当拥塞窗口 cwnd 增长到慢开始门限值 ssthresh 时(即当 cwnd=16 时),就改为执行
7、拥塞避免算法,拥塞窗口按线性规律增长。246810121416182022004812162024传输次数拥塞窗口 cwnd进入拥塞避免发生超时指数规律增长ssthresh=16慢开始慢开始线性规律增长拥塞避免拥塞避免更新后的 ssthresh=12进入拥塞避免慢开始和拥塞避免算法的实现举例 假定拥塞窗口的数值增长到 24 时,网络出现超时(表明网络拥塞了)。246810121416182022004812162024传输次数拥塞窗口 cwnd进入拥塞避免发生超时指数规律增长线性规律增长ssthresh=16慢开始慢开始拥塞避免拥塞避免更新后的 ssthresh=12进入拥塞避免慢开始和拥塞避
8、免算法的实现举例 更新后的 ssthresh 值变为 12(即发送窗口数值 24 的一半),拥塞窗口再重新设置为 1,并执行慢开始算法。246810121416182022004812162024传输次数拥塞窗口 cwnd进入拥塞避免发生超时指数规律增长线性规律增长ssthresh=16慢开始慢开始拥塞避免拥塞避免更新后的 ssthresh=12进入拥塞避免慢开始和拥塞避免算法的实现举例 当 cwnd=12 时改为执行拥塞避免算法,拥塞窗口按按线性规律增长,每经过一个往返时延就增加一个 MSS 的大小。246810121416182022004812162024传输次数拥塞窗口 cwnd进入拥
9、塞避免发生超时指数规律增长线性规律增长ssthresh=16慢开始慢开始拥塞避免拥塞避免更新后的 ssthresh=12进入拥塞避免课件制作人:谢希仁 AIMI算法n Additive Increase 加法增大nMultiplicative Decrease 乘法减小课件制作人:谢希仁乘法减小(multiplicative decrease)n“乘法减小“是指不论在慢开始阶段还是拥塞避免阶段,只要出现一次超时(即出现一次网络拥塞),就把慢开始门限值 ssthresh 设置为当前的拥塞窗口值乘以 0.5。n当网络频繁出现拥塞时,ssthresh 值就下降得很快,以大大减少注入到网络中的分组数。
10、课件制作人:谢希仁加法增大(additive increase)n“加法增大”是指执行拥塞避免算法后,当收到对所有报文段的确认就将拥塞窗口 cwnd增加一个 MSS 大小,使拥塞窗口缓慢增大,以防止网络过早出现拥塞。课件制作人:谢希仁必须强调指出 n“拥塞避免”并非指完全能够避免了拥塞。利用以上的措施要完全避免网络拥塞还是不可能的。n“拥塞避免”是说在拥塞避免阶段把拥塞窗口控制为按线性规律增长,使网络比较不容易出现拥塞。课件制作人:谢希仁快重传和快恢复n快重传算法首先要求接收方每接到一个失效的报文段后就立即发出重复确认(为的是使发送方及早知道报文段没有到达对方)而不要等待自己发送数据时才进行捎
11、带确认。n快重传算法规定:发送端只要一连收到三个重复确认ACK 即可断定有分组丢失了,就应立即重传对方尚未收到的即丢失的报文段,而不必继续等待为该报文段设置的重传计时器的到期。n由于发送方尽早重传未被确认的报文段,因此采用快重传后可以使整个网络的吞吐率提高约20%。n不难看出,快重传并非取消重传计时器,而是在某些情况下可更早地重传丢失的报文段。快重传举例M1,M2ACK2,ACK3M4主机 A主机 BB 确认 M1 和 M2A 发送 M1 和 M2A 收到了三个重复的确认 ACK3,就立即重传 M3,而不必等待超时重传。M3丢失!A 发送 M3 但丢失了A 发送 M4ACK3M5A 发送 M5
12、ACK3B 发送第二个重复确认 ACK3M6A 发送 M6ACK3M3B 发送第三个重复确认 ACK3B 只能再次确认 M2(因为 M3 没有收到)课件制作人:谢希仁快恢复算法n与快重传配合使用n过程:(1)发送方连续收到三个重复确认时,就执行“乘法减小”算法,把慢开始门限ssthresh减半,这是为了预防网络发生拥塞,请注意:接下去不执行慢开始算法(即拥塞窗口cwnd不设置为1);(2)而是把拥塞窗口cwnd设置为慢开始门限ssrhresh减半后的数值,然后开始执行拥塞避免算法(“加法增大”),使拥塞窗口缓慢地线性增大。课件制作人:谢希仁注意 在采用快恢复算法时,慢开始算法只是在TCP连接建立时和网络出现超时时才使用。见P212图5-27所示。请做P222第5-39题课件制作人:谢希仁书后作业P2205-135-21(1)5-235-285-385-395-415-46
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。