拥塞控制技术

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
拥塞控制技术
拥塞控制技术:内容提纲
1 基本概念 2 拥塞控制分类 3 几种TCP拥塞控制的方法
拥塞的概念
在某段时间,若对网络中某资源的需求超过了 该资源所能提供的可用部分,网络的性能就要 变坏——产生拥塞(congestion)。 也就是说“过多信源以过快速率发送了过多数 据、导致网络难以应付”,它不同于流量控制。 出现拥塞的条件:资源需求的总和 > 可用资源
拥塞避免机制
TCP协议的策略
出现拥塞再进行控制,TCP通过增加网络负载查知 拥塞出现时刻,然后再实施退避来控制拥塞。
改进的策略:
预测何时拥塞将发生,然后在分组开始被丢弃之前 降低主机的发送速率,称这种拥塞控制策略为拥塞 避免。
两种机制
以路由器为中心的机制: RED 以主机为中心的策略: TCP Vegas
拥塞的概念
拥塞产生的原因
多个输入对应一个输出; 慢速处理器; 低带宽线路 有限缓存
网络产生拥塞的后果:
吞吐量将随输入负荷的增大而下降 长时间的延迟 (在路由器的缓存中排队) 丢失数据分组 (路由器缓存溢出) 资源严重浪费
拥塞控制:作用和代价
作用
防止网络因过载而引起吞吐量下降和时延增加; 避免死锁; 在相互竞争的用户/节点之间公平地分配资源。
主机基于网络情况动态调整(比如:TCP拥塞控制 机制)
拥塞控制:分类(续)
基于预留机制 - 主机尝试在建立流时保留网络 容量.
路由器分配资源以满足预留要求 预留可以是基于接收方的(例如,RSVP)或基于发 送方的.
基于反馈机制 -根据来自网络的反馈调整传输 速率(通过窗口大小).
显式反馈 隐式反馈.
加法增大
慢开始和拥塞避免算法的实现举例
拥塞窗口 cwnd
24 20
拥塞避免 “加法增大”
网络拥塞
拥塞避免 “加法增大” “乘法减小”
ssthresh 的初始值16 新的 ssthresh 值12
8 4 0 0 2 4 6 8 10
慢开始
指数规律增长 传输轮次
12 14 16 18 20 22
慢开始
慢开始
发送端的发送窗口不能超过拥塞窗口 cwnd 和接收端 窗口 rwnd 中的最小值。我们假定接收端窗口足够大, 因此现在发送窗口的数值等于拥塞窗口的数值。
拥塞控制技术:内容提纲
1 基本概念 2 拥塞控制分类 3 几种TCP拥塞控制的方法
几种拥塞控制方法
1. 慢开始和拥塞避免
发送方维持一个叫做拥塞窗口 cwnd (congestion window)的状态变量。拥塞窗口的大小取决于网 络的拥塞程度,并且动态地在变化。发送方让自 己的发送窗口等于拥塞窗口。如再考虑到接收方 的接收能力,则发送窗口还可能小于拥塞窗口。 发送方控制拥塞窗口的原则是:只要网络没有出 现拥塞,拥塞窗口就再增大一些,以便把更多的 分组发送出去。但只要网络出现拥塞,拥塞窗口 就减小一些,以减少注入到网络中的分组数。
减少用户对资源的需求
拒绝一些分组接入和转接; 降低服务质量。
拥塞控制技术:内容提纲
1 基本概念 2 拥塞控制分类 3几种TCP拥塞控制的方法
拥塞控制:分类
以路由为核心的拥塞控制
内网路由控制: 选择转发包 选择丢弃包 向主机发送拥塞通知. 包括在路由器上管理缓冲区的排队算法.
以主机为核心的拥塞控制
当拥塞窗口 cwnd 增长到慢开始门限值 ssthresh 时 (即当 cwnd = 16 时),就改为执行拥塞避免算法, 拥塞窗口按线性规律增长。
慢开始和拥塞避免算法的实现举例
拥塞窗口 cwnd
24 20
拥塞避免 “加法增大”
网络拥塞 拥塞避免 “加法增大” “乘法减小”
ssthresh 的初始值16 新的 ssthresh 值12
慢开始和拥塞避免算法的实现举例
拥塞窗口 cwnd
24 20
拥塞避免 “加法增大”
网络拥塞 拥塞避免 “加法增大” “乘法减小”
ssthresh 的初始值16 新的 ssthresh 值12
8 4 0 0 2 4 6 8 10
指数规律增长 传输轮次
12 14 16 18 20 22
慢开始
慢开始
在执行慢开始算法时,拥塞窗口 cwnd 的初始值为 1, 发送第一个报文段 M0。
闭环控制是基于反馈环路的概念,有以下几种 措施:
监测网络系统以便检测到拥塞在何时、何处发生; 将拥塞发生的信息传送到可采取行动的地方; 调整网络系统的运行以解决出现的问题; 分为显示反馈和隐式反馈。
TCP拥塞控制(端到端机制)
加法增加/乘法减少 :TCP总是用包丢失来估计拥塞。 在不发生拥塞时,拥塞窗口加法增加(线形增长) 。 当包丢失而引起超时重发时,TCP开始启动拥塞控制: 将拥塞窗口减半,同时将报文段的超时重发时间加倍, 直到拥塞窗口减为1为止。
传输轮次 (transmission round)
使用慢开始算法后,每经过一个传输轮次,拥塞窗口 cwnd 就加倍。 一个传输轮次所经历的时间其实就是往返时间 RTT。 “传输轮次”更加强调:把拥塞窗口 cwnd 所允许发 送的报文段都连续发送出去,并收到了对已发送的最 后一个字节的确认。
慢启动和拥塞避免:当拥塞消除时,TCP不会发送大 量的数据而导致拥塞。相反,拥塞窗口指数增长一直 持续到拥塞窗口达到乘法减少之前拥塞窗口的一半。 随后,TCP进入拥塞避免阶段,拥塞窗口加法增加。
快速重传和快速恢复:利用三个重复的ACK实现丢失 分组的快速重传;拥塞窗口减半,然后加法增加,避 免了慢启动阶段。
慢开始和拥塞避免算法的实现举例
拥塞窗口 cwnd
24 20
拥塞避免 “加法增大”
网络拥塞 拥塞避免 “加法增大” “乘法减小”
ssthresh 的初始值16 新的 ssthresh 值12
8 4 0 0 2 4 6 8 10
慢开始
指数规律增长 传输轮次
12 14 16 18 20 22
慢开始
慢开始
指数规律增长 传输轮次
6 8 10 12 14 16 18 20 22
慢开始
慢开始
接收端共发回两个确认。发送端每收到一个对新报文 段的确认,就把发送端的 cwnd 加 1。现在 cwnd 从 2 增大到 4,并可接着发送后面的 4 个报文段。
慢开始和拥塞避免算法的实现举例
拥塞窗口 cwnd
24 20
当 cwnd = ssthresh 时,既可使用慢开始算法,也可使 用拥塞避免算法。 拥塞避免算法的思路是让拥塞窗口 cwnd 缓慢地增大, 即每经过一个往返时间 RTT 就把发送方的拥塞窗口 cwnd 加 1,而不是加倍,使拥塞窗口 cwnd 按线性规 律缓慢增长。
当网络出现拥塞时
无论在慢开始阶段还是在拥塞避免阶段,只要 发送方判断网络出现拥塞(其根据就是没有按 时收到确认),就要把慢开始门限 ssthresh 设 置为出现拥塞时的发送方窗口值的一半(但不 能小于2)。
代价
需要获得网络状况和业务量分布情况; 需要交换额外的控制信息和采用附加的机制; 需要调整资源分配甚至增加/删除设备;
拥塞控制:比较
吞Байду номын сангаас量
理想的拥塞控制 实际的拥塞控制
无拥塞控制 死锁(吞吐量 = 0) 网络负载 0
轻度 拥塞
拥塞
拥塞控制:措施
增加网络的资源提供能力
增加链路 增大链路带宽和节点缓存; 分流业务。
然后把拥塞窗口 cwnd 重新设置为 1,执行慢 开始算法。
这样做的目的就是要迅速减少主机发送到网络 中的分组数,使得发生拥塞的路由器有足够时 间把队列中积压的分组处理完毕。
慢开始和拥塞避免算法的实现举例
拥塞窗口 cwnd
24 20
拥塞避免 “加法增大”
网络拥塞
拥塞避免 “加法增大” “乘法减小”
拥塞避免 “加法增大”
网络拥塞 拥塞避免 “加法增大” “乘法减小”
ssthresh 的初始值16 新的 ssthresh 值12
8 4 0 0 2 4 6 8 10
慢开始
指数规律增长 传输轮次
12 14 16 18 20 22
慢开始
慢开始
发送端每收到一个对新报文段的确认,就把发送端的 拥塞窗口加 1,因此拥塞窗口 cwnd 随着传输轮次按指 数规律增长。
例如,拥塞窗口 cwnd = 4,这时的往返时间 RTT 就是 发送方连续发送 4 个报文段,并收到这 4 个报文段的 确认,总共经历的时间。
设置慢开始门限状态变量ssthresh
慢开始门限 ssthresh 的用法如下: 当 cwnd < ssthresh 时,使用慢开始算法。
当 cwnd > ssthresh 时,停止使用慢开始算法而改用拥 塞避免算法。
慢开始算法的原理
在主机刚刚开始发送报文段时可先设置拥塞窗 口 cwnd = 1,即设置为一个最大报文段 MSS 的数值。 在每收到一个对新的报文段的确认后,将拥塞 窗口加 1,即增加一个 MSS 的数值。
用 这 样 的 方 法 逐 步 增 大 发 送 端 的 拥 塞 窗 口 cwnd,可以使分组注入到网络的速率更加合理。
拥塞窗口 cwnd
24 20
拥塞避免 “加法增大”
网络拥塞 拥塞避免 “加法增大” “乘法减小”
ssthresh 的初始值16 新的 ssthresh 值12
8 4 0 0 2 4 6 8 10
慢开始
指数规律增长 传输轮次
12 14 16 18 20 22
慢开始
慢开始
当 cwnd = 12 时改为执行拥塞避免算法,拥塞窗口 按按线性规律增长,每经过一个往返时延就增加一 个 MSS 的大小。
拥塞控制:分类(续)
基于窗口机制 - 接收方向发送方发送通告窗口, 或者窗口通告可用于在路由器中保留缓冲区空 间. 基于速率 - 发送方速率由接收方控制,指示它 可以接受的每秒位数.
拥塞控制:分类(续)
开环控制方法就是在设计网络时事先将有关发 生拥塞的因素考虑周到,力求不产生拥塞:
通过好的设计来解决问题,尽量避免拥塞发生; 主要研究如何接收业务、何时丢弃哪些分组等; 拥塞控制时,不考虑网络当前状态。
发送端每收到一个确认 ,就把 cwnd 加 1。于是发送 端可以接着发送 M1 和 M2 两个报文段。
慢开始和拥塞避免算法的实现举例
拥塞窗口 cwnd
24 20
拥塞避免 “加法增大”
网络拥塞
拥塞避免 “加法增大”
“乘法减小”
ssthresh 的初始值16 新的 ssthresh 值12
8
慢开始
4
0 0 2 4
乘法减小
(multiplicative decrease)
“ 乘法减小“是指不论在慢开始阶段还是拥塞避 免阶段,只要出现一次超时(即出现一次网络拥 塞),就把慢开始门限值 ssthresh 设置为当前的 拥塞窗口值乘以 0.5。 当网络频繁出现拥塞时,ssthresh 值就下降得很 快,以大大减少注入到网络中的分组数。
8 4 0 0 2 4 6 8 10
慢开始
指数规律增长 传输轮次
12 14 16 18 20 22
慢开始
慢开始
假定拥塞窗口的数值增长到 24 时,网络出现超时,表 明网络拥塞了。
慢开始和拥塞避免算法的实现举例
拥塞窗口 cwnd
24 20
拥塞避免 “加法增大”
网络拥塞 拥塞避免 “加法增大” “乘法减小”
ssthresh 的初始值16 新的 ssthresh 值12
8 4 0 0 2 4 6 8 10
慢开始
指数规律增长 传输轮次
12 14 16 18 20 22
慢开始
慢开始
当 TCP 连接进行初始化时,将拥塞窗口置为 1。图中 的窗口单位不使用字节而使用报文段。 慢开始门限的初始值设置为 16 个报文段, 即 ssthresh = 16。
慢开始和拥塞避免算法的实现举例
拥塞窗口 cwnd
24 20
拥塞避免 “加法增大”
网络拥塞 拥塞避免 “加法增大” “乘法减小”
ssthresh 的初始值16 新的 ssthresh 值12
8 4 0 0 2 4 6 8 10
慢开始
指数规律增长 传输轮次
12 14 16 18 20 22
慢开始
慢开始
ssthresh 的初始值16 新的 ssthresh 值12
8 4 0 0 2 4 6 8 10
慢开始
指数规律增长 传输轮次
12 14 16 18 20 22
慢开始
慢开始
更新后的 ssthresh 值变为 12(即发送窗口数值 24 的 一半),拥塞窗口再重新设置为 1,并执行慢开始算 法。
慢开始和拥塞避免算法的实现举例
相关文档
最新文档