480 likes | 708 Views
流量控制和拥塞控制. 拥塞控制 分组交换网的拥塞控制 帧中继的拥塞控制 ATM 网的拥塞控制 流量控制. 拥塞控制. 在某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏 —— 产生 拥塞 (congestion) 。 出现资源拥塞的条件 对资源需求的总和 > 可用资源 若网络中有许多资源同时产生拥塞,网络的性能就要明显变坏,整个网络的吞吐量将随输入负荷的增大而下降。. 拥塞控制与流量控制的关系. 拥塞控制 所要做的都有一个前提,就是网络能够承受现有的网络负荷。
E N D
流量控制和拥塞控制 拥塞控制 分组交换网的拥塞控制 帧中继的拥塞控制 ATM网的拥塞控制 流量控制
拥塞控制 • 在某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分,网络的性能就要变坏——产生拥塞(congestion)。 • 出现资源拥塞的条件 对资源需求的总和 > 可用资源 • 若网络中有许多资源同时产生拥塞,网络的性能就要明显变坏,整个网络的吞吐量将随输入负荷的增大而下降。
拥塞控制与流量控制的关系 • 拥塞控制所要做的都有一个前提,就是网络能够承受现有的网络负荷。 • 拥塞控制是一个全局性的过程,涉及到所有的主机、所有的路由器,以及与降低网络传输性能有关的所有因素。 • 流量控制往往指在给定的发送端和接收端之间的点对点通信量的控制。 • 流量控制所要做的就是抑制发送端发送数据的速率,以便使接收端来得及接收。
吞吐量 理想的拥塞控制 实际的拥塞控制 无拥塞控制 死锁(吞吐量 = 0) 提供的负载 0 轻度 拥塞 拥塞 拥塞控制所起的作用
直接死锁 • 直接死锁即由互相占用了对方需要的资源而造成的死锁。 • 例如两个结点都有大量的分组要发往对方,但两个结点中的缓存在发送之前就已经全部被待发分组占满了。 • 当每个分组到达对方时,由于没有地方存放,只好被丢弃。发送分组的一方因收不到对方发来的确认信息,只能将发送过的分组依然保存在自己结点的缓存中。 • 这两个结点就这样一直互相僵持着,谁也无法成功地发送出一个分组。
路由器 P 路由器 Q 路由器 R 主机 H C3 C2 B4 B3 B2 C1 A4 A2 A3 B1 A1 重装死锁(reassembly deadlock) • 报文A、B和C经过路由器P、Q和R发往主机H。 • 每一报文由4个分组构成。每个路由器的缓存只能容纳4个分组。 • 路由器R已为报文A预留了4个分组的缓存。 • 由于分组A3还未到达,所以目前还不能交付给主机H。 • 分组A3暂存于路由器P的缓存中,它无法转发到路由器Q, • 因为路由器Q的缓存已全占满了。
拥塞控制的一般原理 • 拥塞控制是很难设计的,因为它是一个动态的(而不是静态的)问题。 • 当前网络正朝着高速化的方向发展,这很容易出现缓存不够大而造成分组的丢失。但分组的丢失是网络发生拥塞的征兆而不是原因。 • 在许多情况下,甚至正是拥塞控制本身成为引起网络性能恶化甚至发生死锁的原因。这点应特别引起重视。
开环控制和闭环控制 • 开环控制方法就是在设计网络时事先将有关发生拥塞的因素考虑周到,力求网络在工作时不产生拥塞。 • 闭环控制是基于反馈环路的概念。属于闭环控制的有以下几种措施: • 监测网络系统以便检测到拥塞在何时、何处发生。 • 将拥塞发生的信息传送到可采取行动的地方。 • 调整网络系统的运行以解决出现的问题。
拥塞产生的原因 • 缓冲区容量有限 • 传输线路的频带有限 • 结点处理能力有限 • 由于网络中某部分刚发生故障
拥塞控制的策略 • 缓冲区预分配 • 信息包丢弃法 • 定数拥塞控制法 • 流量控制 • 抑制信息包法 • 限制输出队的长度
分组交换网的拥塞控制 • 从拥塞的结点向一些或所有的源结点发送一个控制分组。 • 依据路由选择信息。 • 利用端对端的检测分组。 • 允许分组交换结点在分组经过时在分组上添加拥塞信息。
帧中继拥塞控制技术 • 丢弃策略。当拥塞足够严重时,网络就要被迫将帧丢弃。 • 拥塞避免。在刚一出现轻微的拥塞迹象时用一些信令机制及时使拥塞避免过程开始工作。 • 拥塞恢复。在已出现拥塞时,拥塞恢复过程可阻止网络彻底崩溃。
利用显式信令避免拥塞 • 前向显式拥塞通知 FECN (Forward Explicit Congestion Notification) 若某结点将 FECN 置为1,表明与该帧在同方向传输的帧可能受网络拥塞的影响而产生时延。 • 反向显式拥塞通知 BECN (Backward Explicit Congestion Notification) 若某结点将BECN置为1即指示接受者,与该帧反方向传输的帧可能受网络拥塞的影响产生时延。
利用隐式信令进行拥塞恢复 • 当网络丢弃帧时就产生了隐式信令(implicit signaling)。这种情况由端用户用更高层的端到端协议(如LAPF协议)进行检测。一旦检测出,端用户的软件就可以判断在网络中拥塞发生了。 • 当检测到网络发生拥塞时,就逐步减小窗口,这样就可以逐渐减少网络中所传送的帧。
接入速率 R 承诺的信息速率 CIR 用户在 Tc内 的平均数据率 承诺的信息速率 CIR(Committed Information Rate) • CIR 是对特定的帧中继连接中,用户和网络共同协商确定的用户信息传送速率的门限数值。CIR 数值越高,帧中继用户向帧中继服务提供者交纳的费用也就越多。 速率 t 测量时间间隔 Tc
接入速率 R 承诺的信息速率 CIR 用户在 Tc内 的平均数据率 承诺的信息速率 CIR(Committed Information Rate) • 只要端用户在一段时间内的数据传输速率超过 CIR,在网络出现拥塞时,帧中继网络就可能会丢弃用户所发送的某些帧。 速率 t 测量时间间隔 Tc
接入速率 R 承诺的信息速率 CIR 用户在 Tc内 的平均数据率 承诺的信息速率 CIR(Committed Information Rate) • 每个帧中继结点都应使通过该结点的所有连接的 CIR的总和不超过该结点的容量,即不能超过该结点的接入速率(access rate)。 速率 t 测量时间间隔 Tc
接入速率 R 承诺的信息速率 CIR 用户在 Tc内 的平均数据率 承诺的信息速率 CIR(Committed Information Rate) • 虽然使用了“承诺的”这一名词,但当数据传输速率不超过 CIR 时,网络并不保证一定不发生帧丢弃。 速率 t 测量时间间隔 Tc
接入速率 R 承诺的信息速率 CIR 用户在 Tc内 的平均数据率 承诺的信息速率 CIR(Committed Information Rate) • CIR 是用来限制用户在某一段测量时间间隔 Tc内所发送的数据的平均数据率。 • 当网络必须把一些帧丢弃时,网络将首先选择超其 CIR 值的那些连接上的帧予以丢弃。 速率 t 测量时间间隔 Tc
接入速率 R 承诺的信息速率 CIR 用户在 Tc内 的平均数据率 承诺的信息速率 CIR(Committed Information Rate) • 如果帧的速率总是小于 CIR,那么所有的帧都被打上高优先级的标志(DE 比特置 0)。 • 这在一般情况下传输是有保证的。 速率 t 测量时间间隔 Tc
接入速率 R 承诺的信息速率 CIR 用户在 Tc内 的平均数据率 承诺的信息速率 CIR(Committed Information Rate) • 若数据率仅在不太长的时间间隔大于 CIR,则网络可以将这样的帧置为 DE = 1,并在可能的情况下进行传送(即不一定丢弃,视网络的拥塞程度而定)。 速率 t 测量时间间隔 Tc
接入速率 R 承诺的信息速率 CIR 用户在 Tc内 的平均数据率 承诺的信息速率 CIR(Committed Information Rate) • 若数据率超过 CIR 的时间较长,以致注入到网络的数据量超过了网络所设定的最高门限值,则应立即丢弃该连接上传送的帧。 速率 t 测量时间间隔 Tc
ATM通信量与拥塞控制的要求 • 网络中的主要通信量并不服从通信量控制。 • 与网络中传播的时延相比,信元的传输时间大幅度下降,由于这个原因而导致了反馈迟缓。 • 通常ATM网络可以支持范围很广的各种应用,其容量需求从几个kbps到几百个Mbps不等。因此相对单纯的拥塞控制机制通常在频谱上首尾难以兼顾。 • ATM网络上的应用可能会生成差异很大的通信量模式(例如,恒定比特速率的数据源与可变的比特速率数据源之间)。同样,传统的拥塞控制技术很难做到公平地对待这种差异。 • ATM网络上不同的应用需要不同的网络服务(例如,话音和视像传输需要时延敏感的服务,而数据传输需要数据丢失敏感的服务)。 • 极高的交换和传输速率使得ATM网络在拥塞和通信量方面更加难以控制。
信元时延偏差 • 由网络引起的信元时延偏差可能是最小 • ATM协议的设计就是为了使中间交换结点上的处理开销最小。 • 为了适应ATM网络的高速度,ATM交换机必须设计来提供极高的吞吐量。 • 使信元时延偏差变得惹人注目的因素是拥塞。
通信量控制 • 网络资源管理 • 连接许可控制 • 使用参数控制 • 优先级控制 • 快速资源管理
ATM的拥塞控制 • 许可证控制 • 资源预订 • 基于速率的拥塞控制 • 选择性信元丢弃 • 显式前向拥塞指示
流控协议的层次关系 • 链路层:即在相邻两结点之间的一条链路上实行流控,称为“结点-结点流控”。 • 网络层:即在一条虚拟线路两端的源结点与宿结点之间实行流控,称为“源点-宿点流控”。 • 访网层:即在用户主机访问通信子网的进网线路对进入通信子网的业务量实行流控,称为对通信子网的“全局性流控”。 • 传送层:即在用户对的源主机与宿主机之间实行流控,称为“主机-主机流控”。
结点-结点流量控制 • 停止等待流量控制 • 滑动窗口流量控制
源点-宿点流量控制 • 预约发送法 • 窗口控制法
结点与主机之间的流量控制 • 局部拥塞测量:在源结点上测量该结点缓冲池的占据率。 • 全局拥塞测量:估计整个子网内所占用的全部缓冲器数目。 • 选择性拥塞测量:对选定的通路上的缓冲池占据率进行测量。
源主机-宿主机流量控制 • 可变大小的缓冲区
源主机-宿主机流量控制 • 4比特序号的数据报中动态窗口管理 A 消息(TPDU) B 注释 1→<请求8个缓冲区> →A想要8个缓冲区 2←<ack=15,buf=4> ←B只准许消息0~3 3→<seq=0,data=m0> →A现在剩下3个缓冲区 4→<seq=1,data=m1> →A现在剩下2个缓冲器 5→<seq=2,data=m2> …报文丢失而A以为它有1个剩下 6←<ack=1,buf=3> ←B应答0与1允许2—4 7→<seq=3,data=m3> →A有一个缓冲器剩下 8→<seq=4,data=m4> →A有0个缓冲器剩下而必须停止 9→<seq=2,data=m2> →A时间已过并重新传送 10←<ack=4,buf=0> ←应答的每件事,但A仍被阻塞 11←<ack=4,buf=1> ←A现在可以发送5 12←<ack=4,buf=2> ←B在某处找到新的缓冲器 13→<seq=5,data m5> →A有一个缓冲器剩下 14→<seq=6,data m6> →A现在再一次被阻塞 15←<ack=6,buf=0> ←A仍被阻塞 16…<ack=6:buf=4> ←可能死锁
主机 A 主机 B SEQ = 1 A 还能发送 300 字节 SEQ = 101 A 还能发送 200 字节 SEQ = 201 丢失! ACK = 201, WIN = 300 允许 A 再发送 300 字节(序号 201 至 500) SEQ = 301 A 还能发送 200 字节(序号 301 至 500) SEQ = 401 A 还能发送 100 字节(序号 401 至 500) SEQ = 201 A 超时重发,但不能发送序号 500 以后的数据 ACK = 501, WIN = 200 允许 A 再发送 200 字节(序号 501 至 700) SEQ = 501 A 还能发送 100 字节(序号 501 至 700) ACK = 601, WIN = 0 不允许 A 再发送(到序号 600 的数据都已收到) TCP 的流量控制
拥塞窗口 cwnd 发生超时 线性规律增长 24 进入拥塞避免 20 进入拥塞避免 ssthresh = 16 16 更新后的 ssthresh = 12 12 8 指数规律增长 4 传输次数 0 0 2 4 6 8 10 12 14 16 18 20 22 慢开始 拥塞避免 慢开始 拥塞避免 TCP 的拥塞控制