第5章运输层的拥塞控制
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
AIMI算法
• Additive Increase 加法增大 • Multiplicative Decrease 乘法减小
课件制作人:谢希仁
乘法减小
(multiplicative decrease)
• “乘法减小“是指不论在慢开始阶段还是拥塞避免阶段,只要出现 一次超时(即出现一次网络拥塞),就把慢开始门限值 ssthresh 设 置为当前的拥塞窗口值乘以 0.5。
慢开始和拥塞避免算法的实现举例
拥塞窗口 cwnd 24
线性规律增长
20 进入拥塞避免
16
ssthresh = 16
12
8
4
指数规律增长
0 0 2 4 6 8 10
发生超时 进入拥塞避免
12 14 16 18
更新后的 ssthresh = 12
20 22
传输次数
慢开始
拥塞避免
慢开始
拥塞避免
发送端每收到一个对新报文段的确认 ACK,就把发送端的拥塞窗口加 1,因此拥塞窗口 cwnd 随着传输次数按指 数规律增长。
计算机网络
第 7 章 运输层的拥塞控制
课件制作人:谢希仁
四种拥塞控制的方法
• 慢开始 • 拥塞避免 • 快重传 • 快恢复
课件制作人:谢希仁
两个参数
• 拥塞窗口cwnd:发送方维持的一个状态变量,拥塞窗口的大小取决于 网络的拥塞程度,并且动态地在变化。发送方让自己的发送窗口等于 拥塞窗口。
• 慢开始门限ssthresh:其用法如下
(2)而是把拥塞窗口cwnd设置为慢开始门限ssrhresh减半后的数值,然后开始 执行拥塞避免算法(“加法增大”),使拥塞窗口缓慢地线性增大。
课件制作人:谢希仁
注意
在采用快恢复算法时,慢开始算法只是在TCP连接建 立时和网络出现超时时才使用。见P212图5-27所示。
请做P222第5-39题
课件制作人:谢希仁
课件制作人:谢希仁
必须强调指出
• “拥塞避免”并非指完全能够避免了拥塞。利用以 上的措施要完全避免网络拥塞还是不可能的。 • “拥塞避免”是说在拥塞避免阶段把拥塞窗口控 制为按线性规律增长,使网络比较不容易出现拥 塞。
课件制作人:谢希仁
课
件
制
作
人
:
谢
希 仁
• 快重传算法首先要求接收方每接到一个失效的报文段后就立即发出重复确认(为的是
B 只能再次确认 M2(因为 M3 没有收到)
A 发送 M5
B 发送第二个重复确认 ACK3
A 发送 M6
B 发送第三个重复确认 ACK3 A 收到了三个重复的确认 ACK3,就立即重传 M3,而不必等待 超时重传。
快恢复算法
• 与快重传配合使用 • 过程:
(1)发送方连续收到三个重复确认时,就执行“乘法减小”算法,把慢开始门 限ssthresh减半,这是为了预防网络发生拥塞,请注意:接下去不执行慢开始 算法(即拥塞窗口cwnd不设置为1);
• 拥塞窗口cwnd重新设置为1,执行慢开始算法; • 目的:迅速减少主机发送到网络中的分组数,使得发生拥塞的路由器有足够
时间把队列中积压的分组处理完毕。
课件制作人:谢希仁
慢开始和拥塞避免算法的实现举例
拥塞窗口 cwnd 24
线性规律Baidu Nhomakorabea长
20 进入拥塞避免
16
ssthresh = 16
12
8
4
指数规律增长
使发送方及早知道报文段没有到达对方)而不要等待自己发送数据时才进行捎带确认。
• 快重传算法规定:发送端只要一连收到三个重复确认ACK 即可断定有分组丢失了,就 应立即重传对方尚未收到的即丢失的报文段,而不必继续等待为该报文段设置的重传 计时器的到期。
• 由于发送方尽早重传未被确认的报文段,因此采用快重传后可以使整个网络的吞吐率 提高约20%。
• 原理:没经过一个往返时间RRT(即传输轮次),就把拥塞窗口cwnd 加1,而不是加倍;
• 拥塞窗口cwnd按线性规律缓慢增长,比慢开始算法的拥塞窗口增长速 率缓慢得多。
课件制作人:谢希仁
要点
无论在慢开始阶段还是拥塞避免阶段,只要发送方判断网络出现拥塞(其依 据就是没有按时收到确认):
• 要将慢开始门限ssthresh设置为出现拥塞时的发送窗口值的一半(但不能小 于2)
• 当网络频繁出现拥塞时,ssthresh 值就下降得很快,以大大减少注 入到网络中的分组数。
课件制作人:谢希仁
加法增大
(additive increase)
• “加法增大”是指执行拥塞避免算法后,当收到对所有报文段的确 认就将拥塞窗口 cwnd增加一个 MSS 大小,使拥塞窗口缓慢增大, 以防止网络过早出现拥塞。
• 当cwnd < ssthresh时,使用慢开始算法; • 当cwnd > ssthresh时,停止使用慢开始算法而
改用拥塞避免算法 • 当cwnd = ssthresh时,既可使用慢开始算法,
也可使用拥塞避免算法。
课件制作人:谢希仁
慢开始算法的原理
• 由小到大逐渐增大发送窗口,也就是逐渐增大拥塞窗口; • 在主机刚刚开始发送报文段时可先将拥塞窗口 cwnd 设置为一个最大报
• 不难看出,快重传并非取消重传计时器,而是在某些情况下可更早地重传丢失的报文 段。
主机 A
M1, M2 ACK2, ACK3
M3 M4 ACK3 M5 ACK3 M6 ACK3 M3
快重传举例
主机 B A 发送 M1 和 M2
B 确认 M1 和 M2
丢失!
A 发送 M3 但丢失了 A 发送 M4
慢开始和拥塞避免算法的实现举例
拥塞窗口 cwnd 24
线性规律增长
20 进入拥塞避免
16
ssthresh = 16
12
8
4
指数规律增长
0 0 2 4 6 8 10
发生超时 进入拥塞避免
12 14 16 18
更新后的 ssthresh = 12
20 22
传输次数
慢开始
拥塞避免
慢开始
拥塞避免
接收端发回 ACK2 和 ACK3。发送端每收到一个对新报文段的确认 ACK,就把发送端的拥塞窗口加 1。现在发送端 的 cwnd 从 2 增大到 4,并可发送 M4 ~ M6共 4个报文段。
慢开始和拥塞避免算法的实现举例
拥塞窗口 cwnd 24
线性规律增长
20 进入拥塞避免
16
ssthresh = 16
12
8
4
指数规律增长
0 0 2 4 6 8 10
慢开始
拥塞避免
发生超时 进入拥塞避免
更新后的 ssthresh = 12
12 14 16 慢开始
18 20 22 拥塞避免
传输次数
更新后的 ssthresh 值变为 12(即发送窗口数值 24 的一半),拥塞窗口再重新设置为 1,并执行慢开始算法。
慢开始和拥塞避免算法的实现举例
拥塞窗口 cwnd 24
线性规律增长
20 进入拥塞避免
16
ssthresh = 16
12
8
4
指数规律增长
0 0 2 4 6 8 10
发生超时 进入拥塞避免
12 14 16 18
更新后的 ssthresh = 12
20 22
传输次数
慢开始
拥塞避免
慢开始
拥塞避免
当拥塞窗口 cwnd 增长到慢开始门限值 ssthresh 时(即当 cwnd = 16 时),就改为执行拥塞避免算法,拥塞窗口 按线性规律增长。
慢开始和拥塞避免算法的实现举例
拥塞窗口 cwnd 24
线性规律增长
20 进入拥塞避免
16
ssthresh = 16
12
8
4
指数规律增长
0 0 2 4 6 8 10
慢开始
拥塞避免
发生超时 进入拥塞避免
更新后的 ssthresh = 12
12 14 16 慢开始
18 20 22 拥塞避免
传输次数
当 cwnd = 12 时改为执行拥塞避免算法,拥塞窗口按按线性规律增长,每经过一个往返时延就增加一个 MSS 的大小。
慢开始和拥塞避免算法的实现举例
拥塞窗口 cwnd 24
线性规律增长
20 进入拥塞避免
16
ssthresh = 16
12
8
4
指数规律增长
0 0 2 4 6 8 10
慢开始
拥塞避免
发生超时 进入拥塞避免
更新后的 ssthresh = 12
12 14 16 慢开始
18 20 22 拥塞避免
传输次数
在执行慢开始算法时,拥塞窗口 cwnd 的初始值为 1,发送第一个报文段 M0。
文段 MSS 的数值; • 在每收到一个对新的报文段的确认后,将拥塞窗口增加至多一个 MSS
的数值; • 每经过一个传输轮次,拥塞窗口 cwnd 就加倍; • 用这样的方法逐步增大发送端的拥塞窗口 cwnd,可以使分组注入到网
络的速率更加合理。
课件制作人:谢希仁
拥塞避免算法
• 条件:拥塞窗口cwnd >慢开始门限 ssthresh时,停止使用慢开始算法 而改用拥塞避免算法;
慢开始和拥塞避免算法的实现举例
拥塞窗口 cwnd 24
线性规律增长
20 进入拥塞避免
16
ssthresh = 16
12
8
4
指数规律增长
0 0 2 4 6 8 10
发生超时 进入拥塞避免
12 14 16 18
更新后的 ssthresh = 12
20 22
传输次数
慢开始
拥塞避免
慢开始
拥塞避免
假定拥塞窗口的数值增长到 24 时,网络出现超时(表明网络拥塞了)。
0 0 2 4 6 8 10
发生超时 进入拥塞避免
12 14 16 18
更新后的 ssthresh = 12
20 22
传输次数
慢开始
拥塞避免
慢开始
拥塞避免
当 TCP 连接进行初始化时,将拥塞窗口=1。图中的窗口单位不使用字节而使用报文段。
慢开始门限的初始值设置为 16 个报文段, 即 ssthresh = 16。
书后作业
P220 5-13 5-21(1) 5-23 5-28 5-38 5-39 5-41 5-46
课件制作人:谢希仁
慢开始和拥塞避免算法的实现举例
拥塞窗口 cwnd 24
线性规律增长
20 进入拥塞避免
16
ssthresh = 16
12
8
4
指数规律增长
0 0 2 4 6 8 10
慢开始
拥塞避免
发生超时 进入拥塞避免
更新后的 ssthresh = 12
12 14 16 慢开始
18 20 22 拥塞避免
传输次数
发送端收到 ACK1 (确认 M0,期望收到 M1)后,将 cwnd 从 1 增大到 2,于是发送端可以接着发送 M1 和 M2 两 个报文段。