四种拥塞控制算法PPT

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
拥塞避免算法。 • 拥塞避免算法的思路是让拥塞窗口 cwnd 缓慢地增大,
即每经过一个往返时间 RTT 就把发送方的拥塞窗口 cwnd 加 1,而不是加倍,使拥塞窗口 cwnd 按线性规律 缓慢增长。
当网络出现拥塞时
• 无论在慢开始阶段还是在拥塞避免阶段,只要发送方判 断网络出现拥塞(其根据就是没有按时收到确认),就 要把慢开始门限 ssthresh 设置为出现拥塞时的发送方窗口 值的一半(但不能小于2)。
• TCP的拥塞控制算法就是要在这两者之间权衡,选取最好的cwnd值, 从而使得网络吞吐量最大化且不产生拥塞。
几种常见TCP的拥塞控制算法
• 1.慢开始算法 • 2.拥塞避免算法 • 3.快重传算法 • 4.快恢复算法 • 我们假设: • 1.数据是单方向传送,而另一个方向只传送确认。 • 2.接收方总是有足够大的缓存空间,因而发送窗
慢开始和拥塞避免算法的实现举例
拥塞窗口 cwnd
24 20
ssthresh 的初始值16 新的 ssthresh 值12
拥塞避免 “加法增大”
网络拥塞 拥塞避免
“乘法减小” “加法增大”
慢开始
8 4 0
02 4
慢开始
指数规律增长
8
慢开始
4
0 02 4
慢开始
拥塞避免 “加法增大”
指数规律增长
6 8 10
网络拥塞 拥塞避免
“乘法减小” “加法增大”
传输轮次
12 14 16 18 20 22
慢开始
当 TCP 连接进行初始化时,将拥塞窗口置为 1。图中的窗口单位不使用字节而使用报 文段。
慢开始门限的初始值设置为 16 个报文段, 即 ssthresh = 16。
口的大小由网络的拥塞程度来决定。
1.慢开始算法
• 最初的TCP在连接建立成功后会向网络中发送大量的数据包, 这样很容易导致网络中路由器缓存空间耗尽,从而发生拥塞。 因此新建立的连接不能够一开始就大量发送数据包,而只能根 据网络情况逐步增加每次发送的数据量,以避免上述现象的发 生。
• 发送方维持一个叫做拥塞窗口 cwnd (congestion window)的状 态变量。拥塞窗口的大小取决于网络的拥塞程度,并且动态地 在变化。发送方让自己的发送窗口等于拥塞窗口。如再考虑到 接收方的接收能力,则发送窗口还可能小于拥塞窗口。(取决 于接收方缓存空间的大小)
• 然后把拥塞窗口 cwnd 重新设置为 1,执行慢开始算法。 • 这样做的目的就是要迅速减少主机发送到网络中的分组
数,使得发生拥塞的路由器有足够时间把队列中积压的 分组处理完毕。
慢开始和拥塞避免算法的实现举例
拥塞窗口 cwnd
24
20Leabharlann Baidu
ssthresh 的初始值16 新的 ssthresh 值12
• 发送方控制拥塞窗口的原则是:只要网络没有出现拥塞,拥 塞窗口就再增大一些,以便把更多的分组发送出去。但只要网 络出现拥塞,拥塞窗口就减小一些,以减少注入到网络中的分 组数。
慢开始算法原理
• 在主机刚刚开始发送报文段时可先设置拥塞窗口 cwnd = 1。 • 在每收到一个对新的报文段的确认后,将拥塞窗口加 1。 • 用这样的方法逐步增大发送端的拥塞窗口 cwnd,可以使分组注入
拥塞控制算法的引入
TCP有一个端对端通告的接收窗口(rwnd)。窗口值的大小就代表能 够发送出去的但还没有收到ACK(确认)的最大数据报文段,显然窗 口越大那么数据发送的速度也就越快,但是也越有可能使得网络出现 拥塞, • 如果窗口值为1,那么就简化为一个停等协议,每发送一个数据, 都要等到对方的确认才能发送第二个数据包,显然数据传输效率低下。
拥塞控制方法
计算机科学与技术 卢连女
拥塞
• 拥塞:在某段时间,若对网络中某资源的需求超过了该资 源所能提供的可用部分,网络的性能就要变坏
• 出现资源拥塞的条件:
对资源需求的总和 > 可用资源
• 为什么要控制拥塞: 若网络中有许多资源同时产生拥塞,网络的性能就要
明显变坏,整个网络的吞吐量将随输入负荷的增大而下降
cwnd = 1
发送方 发送 M1
cwnd = 2 发送 M2~M3
cwnd = 4 发送 M4~M7
接收方
确认 M1
轮次 1
确认 M2~M3 轮次 2
确认 M4~M7 轮次 3
cwnd = 8 发送 M8~M15

t
t
传输轮次
• 使用慢开始算法后,每经过一个传输轮次,拥塞窗口 cwnd 就加倍。
到网络的速率更加合理 这里 是说每收到1个对新的报文段的确认后,将拥塞窗口加1,而第二次
会收到2个确认,第三次会收到4个确认,以此类推,可以知道每经过 一个传输轮次,拥塞窗口就加倍。
即cwnd的大小呈指数形式增长(与拥塞避免算法相区别)
具体如后图所示
发送方每收到一个对新报文段的确认(重传的不算在内)就使 cwnd 加 1。
• 一个传输轮次所经历的时间其实就是往返时间 RTT。
• “传输轮次”更加强调:把拥塞窗口 cwnd 所允许发送的 报文段都连续发送出去,并收到了对已发送的最后一个字 节的确认。
• 例如,拥塞窗口 cwnd = 4,这时的往返时间 RTT 就是发 送方连续发送 4 个报文段,并收到这 4 个报文段的确认, 总共经历的时间。
2.拥塞避免算法
从慢启动可以看到,cwnd可以很快的增长上来,从而最大 程度利用网络带宽资源,但是cwnd不能一直这样无限增长下去, 一定需要某个限制。TCP使 用了一个叫慢启动门限(ssthresh)的 变量,当cwnd超过该值后,慢启动过程结束,进入拥塞避免阶 段。 拥塞避免算法原理:
拥塞避免的主要思想是加法增大,也就是cwnd的值不再指 数级往上升,开始加法增加。此时当窗口中所有的报文段都被 确认时,cwnd的大小加1,cwnd的值就随着RTT开始线性增加, 这样就可以避免增长过快导致网络拥塞,慢慢的增加调整到网 络的最佳值。
慢启动门限(ssthresh)的设置
• 慢开始门限 ssthresh 的用法如下: • 当 cwnd < ssthresh 时,使用慢开始算法。 • 当 cwnd > ssthresh 时,停止使用慢开始算法而改用拥塞
避免算法。 • 当 cwnd = ssthresh 时,既可使用慢开始算法,也可使用
相关文档
最新文档