《Chapter_1(new) (1).ppt》由会员分享,可在线阅读,更多相关《Chapter_1(new) (1).ppt(69页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 Chapter 1 Congestion Control and Flow Control in Data Networks and InternetsSchool of Computer School of Computer 张沪寅张沪寅1 Introduction 拥塞发生在通过网络传输的分组数量拥塞发生在通过网络传输的分组数量开始接近开始接近网络的网络的分组处理能力时。分组处理能力时。Objective of congestion control:目标是将网络中的目标是将网络中的分组数量分组数量维持在一定的水平之下,维持在一定的水平之下,以免发生拥塞。以免发生拥塞。2 队列理论队列理论
2、(Queuing Theory)数据网络是由一个队列组成的网络。数据网络是由一个队列组成的网络。如果分组到达的速率如果分组到达的速率大于等于大于等于分组传输的速率,队列分组传输的速率,队列大小就不停地增长且分组经历的时延大小就不停地增长且分组经历的时延(Delay)变得越来越变得越来越长。长。If arrival rate transmission rate3 队列理论队列理论(Queuing Theory)4 1.1 1.1 拥塞的结果拥塞的结果 达到达到饱饱和点和点时时采用的两种策略:采用的两种策略:如果没有缓存空间则如果没有缓存空间则丢弃丢弃进入的进入的分组分组 分组到达太快来不及作路由
3、处理分组到达太快来不及作路由处理 分组到达缓存速度快于从缓存输出速率分组到达缓存速度快于从缓存输出速率 达到达到饱合节点饱合节点对对其其相邻节点实施流量控制相邻节点实施流量控制措施措施 可能会导致拥塞扩散到整个网络可能会导致拥塞扩散到整个网络 参见下页图参见下页图5 10.1 10.1 拥塞的结果拥塞的结果56 1.1 1.1 拥塞的结果拥塞的结果 1.理想的性能理想的性能(Ideal Performance)每个每个节节点有点有无限大的无限大的缓缓存存,又不存在与分,又不存在与分组传输组传输或或拥拥塞控制相关的塞控制相关的额额外开外开销销。网络吞吐量随着负载的增加而增加,直到供给负载网络吞吐
4、量随着负载的增加而增加,直到供给负载等于网络全部容量,归一化的吞吐量对于更高的输入负等于网络全部容量,归一化的吞吐量对于更高的输入负载仍保持在载仍保持在1.0。当供给负载等于网络的全部容量时,分组时延增加当供给负载等于网络的全部容量时,分组时延增加 网络能力为吞吐量与时延之比网络能力为吞吐量与时延之比 Power=throughput/delay 吞吐量越大时延越大吞吐量越大时延越大 7 10.1 10.1 拥塞的结果拥塞的结果8 1.1 1.1 拥塞的结果拥塞的结果 2.实际实际的性能的性能(Practical Performance)有限有限的的缓缓存,每个分存,每个分组组的的处处理都有理
5、都有额额外外的的开开销销 若不进行拥塞控制,负载的增长会导致网络进入若不进行拥塞控制,负载的增长会导致网络进入中中等等的拥塞状态;网络吞吐量的增长速率的拥塞状态;网络吞吐量的增长速率慢于慢于负载的增长负载的增长速度(速度(A点)点)负载负载不可能均匀不可能均匀地分布在整个网络上地分布在整个网络上 网络试图选择网络试图选择低拥塞低拥塞区平衡负载,路由选择产生额外开销降区平衡负载,路由选择产生额外开销降低数据分组的容量低数据分组的容量 网上的网上的负荷进一步增加导致时延增长,最终使吞吐量负荷进一步增加导致时延增长,最终使吞吐量降到降到0(B点)点)9 10.1 10.1 拥塞的结果拥塞的结果10
6、1.2 1.2 拥塞控制拥塞控制(Congestion Control)1.反压反压(Backpressure)请请求求源端源端减小向减小向目的目的站的数据站的数据发发送速率送速率 流量限制方向流量限制方向传传到各信源,限制新分到各信源,限制新分组进组进入网入网络络 选择选择流量大的流量大的链链路采用反路采用反压压 用于用于逐跳流控逐跳流控的的面向面向连连接接的网的网络络 2.阻流分阻流分组组(Choke packet)网网络络中的中的拥拥塞塞节节点点产产生的生的控制分控制分组组,它被,它被传传回源回源节节点以便限制通信量点以便限制通信量进进入网入网络络,要求源端系,要求源端系统统减小向目的减
7、小向目的端系端系统统的数据的数据发发送速率送速率 阻流分阻流分组组的例子:的例子:ICMP的源站抑制的源站抑制 因因缓缓存溢出存溢出而而丢丢弃数据包弃数据包时时,可用,可用源站抑制方法源站抑制方法 11 1.2 1.2 拥塞控制拥塞控制(Congestion Control)3.隐隐式式拥拥塞信令塞信令(Implicit congestion signaling)源端通源端通过过传输时传输时延增加延增加和和分分组丢组丢失失检测检测到到拥拥塞后减少流量。由塞后减少流量。由端系端系统统完成,无需其他完成,无需其他节节点参点参与与 适合无适合无连连接或数据接或数据报报方式的网方式的网络络(IP)适合
8、面向适合面向连连接的网接的网络络(帧帧中中继继网网络络,LAPF控制控制协议协议)12 1.2 1.2 拥塞控制拥塞控制(Congestion Control)4.显示拥塞信令显示拥塞信令(Explicit congestion signaling)网络会对网络中正形成的拥塞向端系统网络会对网络中正形成的拥塞向端系统发出警告发出警告,而端系统则,而端系统则应应采取措施采取措施降低对网络的供给负担。降低对网络的供给负担。方向方向(Direction):显显示示拥拥塞塞信令信令信号可向信号可向2个方向个方向传传送送 反向反向(Backward):通知:通知源站源站对对与收到分与收到分组组方向方向相
9、反相反的流量采取的流量采取拥拥塞避免措施。塞避免措施。反向信息:改变数据分组头部某些位,或者是单独发控制分组 前向前向(Forward):通知:通知用用户户对对与收到分与收到分组组方向方向相同相同的流量采取措施,的流量采取措施,前向信息如上述。端系前向信息如上述。端系统统可返回源端或上可返回源端或上层进层进行流量控制。行流量控制。分类分类(Categories)二二进进制制(Binary):拥拥塞塞节节点点对转发对转发的数据分的数据分组组某位置某位置1,源站收到,源站收到降低流量降低流量 基于信用量基于信用量(Credit-based):表示表示允允许许源站源站发发送的送的字字节节数数或或分分
10、组组数数 基于速率基于速率(rate-based):在一在一逻辑连逻辑连接上接上源站源站发发送的控制分送的控制分组组有明有明确的确的数据率上限数据率上限13 1.2 1.2 拥塞控制拥塞控制(Congestion Control)14 1.3 1.3 通信量管理通信量管理(Traffic Management)1.公平性公平性(Fairness)最后到达首先最后到达首先丢丢弃的策略是弃的策略是不公平的不公平的,可以采用一些技,可以采用一些技术实术实现现公平性公平性(如如,每个每个队队列的列的缓缓存大小相同存大小相同)2.服服务质务质量量(Quality of Service)网网络拥络拥塞塞时
11、时,不同需求的流量,不同需求的流量应应得到的得到的QoS的不同的不同 声音,声音,视频视频:对时对时延敏感,延敏感,对丢对丢失不敏感失不敏感 文件文件传传送,送,邮邮件:件:对时对时延不敏感,延不敏感,对丢对丢失敏感失敏感 交互交互计计算:算:对时对时延和延和丢丢失都敏感失都敏感 不同的流量不同的流量应应有不同的有不同的优优先先级级 3.预预留留(Reservations)策略:制策略:制订订一个一个通信量合通信量合约约,过过量的通信量要么量的通信量要么丢丢弃要么以弃要么以尽力而尽力而为传输为传输的方式的方式处处理理 15 1.4 1.4 分组交换网中拥塞控制分组交换网中拥塞控制 (Conge
12、stion Control in Packet-Switching Networks)1.从拥塞节点向一些或所有源点发送一个控制分组。从拥塞节点向一些或所有源点发送一个控制分组。2.依据路由选择信息。依据路由选择信息。3.利用端到端的探测分组。利用端到端的探测分组。4.允许分组交换节点在分组经过时添加拥塞信息。允许分组交换节点在分组经过时添加拥塞信息。16 1.5 1.5 帧中继拥塞控制(Frame Relay Congestion Control)1.流量速率管理流量速率管理(Traffic Rate Management)约定的信息速率约定的信息速率(Committed Informati
13、on Rate,CIR)网络认同的用于支持某个特定网络认同的用于支持某个特定帧模式帧模式连接的速率,当网络出连接的速率,当网络出现拥塞时,首先丢弃超过现拥塞时,首先丢弃超过CIR的连接所传输的帧的连接所传输的帧 整体整体CIR节点的容量节点的容量 整体整体CIR也不应超过用户也不应超过用户-网络接口上的物理数据率网络接口上的物理数据率(接入速接入速率率)利用利用两个参数两个参数进行流量速率管理进行流量速率管理 约定突发长度约定突发长度(Bc)在测量间隔在测量间隔T内网络内网络同意同意传输的最大数据量传输的最大数据量 超量突发长度超量突发长度(Be)在测量间隔在测量间隔T内网络内网络试图试图传输
14、的传输的超过超过Bc的最大数据量的最大数据量17 1.5 1.5 帧中继拥塞控制(Frame Relay Congestion Control)例:假设某节点接入速度为例:假设某节点接入速度为64kb/s,该节点被指派的,该节点被指派的CIR 32kb/s,CIR的测量时间间隔的测量时间间隔T 500ms,帧长,帧长L 4000bit。在时间在时间T内,虚电路只能发送内,虚电路只能发送CIRT/L 4个高优先级的帧,个高优先级的帧,其其DE 0。由于由于CIR的数值只是接入速率的一半,因此用户在的数值只是接入速率的一半,因此用户在500ms内再内再发送发送4个低优先级的帧,其个低优先级的帧,其
15、DE=1。1810.5 10.5 帧中继拥塞控制帧中继拥塞控制(Frame Relay Congestion Control)18 1910.5 10.5 帧中继拥塞控制帧中继拥塞控制(Frame Relay Congestion Control)201.5 1.5 帧中继拥塞控制帧中继拥塞控制(Frame Relay Congestion Control)2.使用显示信令的拥塞避免使用显示信令的拥塞避免(Congestion Avoidance with Explicit Signaling)对于解决拥塞问题应对于解决拥塞问题应可控制可控制和和公平的公平的方式方式 显示拥塞避免技术的两种策略
16、:显示拥塞避免技术的两种策略:拥塞情况的出现是拥塞情况的出现是缓慢的缓慢的,且绝大多数拥塞发生在,且绝大多数拥塞发生在网络的网络的出口节点出口节点上上 前向显示拥塞避免前向显示拥塞避免(forward explicit congestion avoidance)拥塞在拥塞在内部内部节点迅速增长,要求采取节点迅速增长,要求采取果断果断的措施来的措施来防止拥塞防止拥塞 反向显示拥塞避免反向显示拥塞避免(backward explicit congestion avoidance)211.5 1.5 帧中继拥塞控制帧中继拥塞控制(Frame Relay Congestion Control)显示信令
17、中的显示信令中的两个位两个位(BECN,FECN)反向显示拥塞指示反向显示拥塞指示(Backward Explicit Congestion Notification)对与对与接收帧相反方向上的流量接收帧相反方向上的流量起作用起作用 指出在这条逻辑连接上传输的指出在这条逻辑连接上传输的可能可能会遇到拥塞会遇到拥塞 前向显示拥塞指示前向显示拥塞指示(Forward Explicit Congestion Notification)对与对与接收帧方向相同的流量接收帧方向相同的流量起作用起作用 指出在这条逻辑连接上传输的帧指出在这条逻辑连接上传输的帧已经已经遇到了拥塞遇到了拥塞 22 1.6 Flo
18、w Control and Error Control 1.6.1 Flow Control 1.Flow Control 限制数据发送的数量或发送速率限制数据发送的数量或发送速率 Reasons:源站源站发送发送PDUs的速率的速率超过超过了了目的站目的站对分组头部的对分组头部的处理能力处理能力 目的端的高层协议用户接收数据缓慢目的端的高层协议用户接收数据缓慢 目的站需要目的站需要转发数据流转发数据流,故源站不可发送太快,故源站不可发送太快,目目的端要限制的端要限制入流量入流量以便与以便与出流量出流量匹配匹配 23 2.在多个在多个协议层协议层次上次上实实施的流量控制施的流量控制 多条多条X
19、.25虚电路虚电路(第三级第三级)复用到一条复用到一条LAPB的数据的数据链路上链路上(属于属于X.25第二级第二级)多条多条TCP连接复用到一条连接复用到一条HDLC链路链路 在高级别逻辑连接上,一个逻辑连接上流量控制的在高级别逻辑连接上,一个逻辑连接上流量控制的实施与其它级上逻辑连接上的流量控制无关实施与其它级上逻辑连接上的流量控制无关 高级连接上的通信量高级连接上的通信量总和总和在低级别上受到进一步的在低级别上受到进一步的流量控制流量控制 1.6 Flow Control and Error Control24 1.6 Flow Control and Error Control25 3
20、.流量控制的范流量控制的范围围(Flow Control Scope)一跳的范围一跳的范围 在两个直接连接的中间系统之间,流量控制可在链路级实施在两个直接连接的中间系统之间,流量控制可在链路级实施 网络接口网络接口 端系统与一个网络之间的接口链路上,可在网络协议层实施端系统与一个网络之间的接口链路上,可在网络协议层实施 进网到出网进网到出网 在进网到出网节点在进网到出网节点间间 端到端端到端 端系统之间,可在端系统之间,可在TCP连接和数据链路层上进行实施连接和数据链路层上进行实施 1.6 Flow Control and Error Control26 1.6 Flow Control an
21、d Error Control27 1.6 Flow Control and Error Control 1.6.2 Error Control 1.差错控制技术的用途:恢复丢失和损坏的数据。差错控制技术的用途:恢复丢失和损坏的数据。2.差错控制技术原理:包括差错检测以及差错控制技术原理:包括差错检测以及PDU重传。重传。3.差错控制和流量控制在一个单一的机制中差错控制和流量控制在一个单一的机制中一同实现一同实现。4.可在多种协议级别上实现,差控与流控一样可在多种协议级别上实现,差控与流控一样。28 3 techniques at link level:Stop-and-wait Go-bac
22、k-N Selective-reject 后二种是滑动窗口的特例!后二种是滑动窗口的特例!1.6 Flow Control and Error Control29 Sequence of Frames reasons:理由如下:理由如下:接受端的缓存大小可能有限。接受端的缓存大小可能有限。传输数据越长,出错的可能性越大,较小的帧可能传输数据越长,出错的可能性越大,较小的帧可能更快的检测出差错,需重传的数据量也较小。更快的检测出差错,需重传的数据量也较小。在共享媒体上,要避免一个站占据媒体时间过长,在共享媒体上,要避免一个站占据媒体时间过长,以免造成其他发送站很长的时延。以免造成其他发送站很长的
23、时延。1.6 Flow Control and Error Control30 1.7 Performance of ARQ 1.7.1 停止等待停止等待ARQ(Stop and Wait ARQ)1.无差错停止等待流控无差错停止等待流控(Error-Free Stop and Wait)T=Tframe+Tprop+Tproc+Tack+Tprop+Tproc 发送数据的总时间可以表达为发送数据的总时间可以表达为nT,其中,其中T是发送一个是发送一个帧和收到一个确认并准备发送下一帧的时间帧和收到一个确认并准备发送下一帧的时间 Tframe传送一帧的时间,即发送端将所有位都发出的时间传送一帧的
24、时间,即发送端将所有位都发出的时间 Tprop 发送端和接收端之间的传播时延发送端和接收端之间的传播时延 Tproc 每个站的处理时间每个站的处理时间 Tack 传送一个确认的时间传送一个确认的时间 假定假定Tproc和和Tack都相对较小都相对较小 T=Tframe+2Tprop 31 假定帧是定长大小,则停止等待流量控制允许数据假定帧是定长大小,则停止等待流量控制允许数据以每以每T秒一帧的速率传送,秒一帧的速率传送,T近似为:近似为:T Tframe+2Tprop 表示每表示每T T秒一帧的速率传送秒一帧的速率传送 吞吞吐量吐量(Throughput)=1/T=1/(Tframe+2Tpr
25、op)frames/sec 如果一个帧可以在如果一个帧可以在Tframe秒内传送完,该链路的秒内传送完,该链路的实际实际数据率数据率为:为:1/Tframe frames/sec 归一化吞吐量归一化吞吐量S可以表示为:可以表示为:S吞吐量吞吐量/实际数据实际数据率率 1/(Tframe+2Tprop)Tframe 1 1/Tframe Tframe+2Tprop 1+2a 其中:其中:a=Tprop/TframeS=1.7 Performance of ARQ 32 2.Stop-and-Wait ARQ with Errors P=单个帧出现差错的概率单个帧出现差错的概率 1 1 P(Nx是
26、由于出现差错,每个帧需要传输的平均次数是由于出现差错,每个帧需要传输的平均次数)发送成功一帧所需的平均时间发送成功一帧所需的平均时间 T=Nx(Tframe+2Tprop)归一化吞吐量归一化吞吐量 S=Tframe/Nx(Tframe+2Tprop)1 1-P Nx(1+2a)(1+2a)S=Nx=1.7 Performance of ARQ 333.Error-Free Sliding Window ARQ 1.7 Performance of ARQ 34 1.7 Performance of ARQ 35线路的吞吐量取决于窗口大小线路的吞吐量取决于窗口大小W和和a的值的值Case 1:W
27、 2a+1 对帧对帧1的确认在的确认在A消耗完其窗口消耗完其窗口前前就到达了就到达了A。A可以可以不停地连续传输。不停地连续传输。Case 2:W 2a+1 A在在t=W时刻就耗尽了它的窗口,直到时刻就耗尽了它的窗口,直到t=2a+1时刻前时刻前都不能再发送帧。都不能再发送帧。1.7 Performance of ARQ 36Normalized Throughput 1 W 2a+1 S=W W 2a+1 2a+1 1.7 Performance of ARQ 374.Selective Reject ARQ 1-P W 2a+1 S=W(1-P)W 2a+1 2a+1P:单个帧出错的概率。
28、:单个帧出错的概率。1.7 Performance of ARQ 385.Go-Back-N ARQ 1-P W 2a+1 1+2aPS=W(1-P)W RD/4 此连接上可得到最大可能的吞吐量 S =4W W RD/4 W与RD/4的比率 RD 1.8 TCP Flow Control 44 1.8 TCP Flow Control 45 1.8.1 窗口大小对性能的影响窗口大小对性能的影响(3)TCP连接要考虑的因素:连接要考虑的因素:许多许多TCP连接连接复用复用到同一个网络接口上,每条连接只分到可到同一个网络接口上,每条连接只分到可得容量的一部分,得容量的一部分,降低了降低了R因子因子
29、的大小并因此降低了传输效率的大小并因此降低了传输效率 许多许多TCP连接连接跨越跨越多个网络,多个网络,D是穿过每个是穿过每个网络的时延网络的时延加上加上在每个在每个路由器路由器上经受的上经受的时延时延,路由器时延经常是主要成分,尤其,路由器时延经常是主要成分,尤其在拥塞时在拥塞时 如果源端如果源端TCP实体处连接的数据率实体处连接的数据率R超过超过从源端到目的端某从源端到目的端某一跳的数据率,一跳的数据率,这一跳这一跳将会是数据传输的瓶颈,从而使将会是数据传输的瓶颈,从而使D增加增加 若报文段丢失进行若报文段丢失进行重传重传,也会降低吞吐量,影响程度的大小,也会降低吞吐量,影响程度的大小取决
30、于重传策略取决于重传策略 1.8 TCP Flow Control 46 1.8.2 重传策略重传策略(Retransmission Strategy)1.TCP的差错控制方案的差错控制方案 TCP 完全依靠确认应答,当确认在给定的一个完全依靠确认应答,当确认在给定的一个超时超时时段时段中没有到达时就进行重传中没有到达时就进行重传 在两种情况下,报文段应该重传在两种情况下,报文段应该重传 1.报文段中携带的报文段中携带的效验和效验和让接受端检测到报文有让接受端检测到报文有差错差错,随即,随即丢弃这个报文,不会发丢弃这个报文,不会发ACK 2.报文段报文段没有达到目的地没有达到目的地,不会发,不
31、会发ACK 1.8 TCP Flow Control 47 1.8.2 重传策略重传策略(Retransmission Strategy)2.定时器定时器(Timers)对发送出去的每个报文段都要设置一个对发送出去的每个报文段都要设置一个定时器定时器 如果在收到一个报文段的确认之前定时器就超时了,如果在收到一个报文段的确认之前定时器就超时了,发送方必须重传发送方必须重传 (1)关键设计问题为关键设计问题为(Key Design Issue):如何确定重传定时器的取值如何确定重传定时器的取值 时间时间太小太小:会造成许多不必要的重传而浪费了网络容量会造成许多不必要的重传而浪费了网络容量 时间时间
32、太大太大:协议对于报文段丢失的反应就会很迟缓协议对于报文段丢失的反应就会很迟缓 1.8 TCP Flow Control 48 (2)确定重传定时器取值的确定重传定时器取值的两种策略两种策略(Two Strategies):定时器应该设定为一个比定时器应该设定为一个比往返时延往返时延(发送报文段,接收发送报文段,接收ACK)稍大稍大的值的值 但是往返时延会发生变化,并且时延的统计特性会随互联网但是往返时延会发生变化,并且时延的统计特性会随互联网状况的变化而变化状况的变化而变化 可采用的两种策略是:可采用的两种策略是:1.固定的定时器固定的定时器(Fixed timer)2.自适应自适应(Ada
33、ptive)1.8 TCP Flow Control 49 (3)自适应方案存在的问题自适应方案存在的问题(Problems with Adaptive Scheme)对等的对等的TCP实体进行实体进行累积确认累积确认,并不立即确认一个报文段,并不立即确认一个报文段 如果一个报文段被重传如果一个报文段被重传过过,发送方无法了解收到的,发送方无法了解收到的ACK是是对对最初最初传输的还是对重新传输的确认传输的还是对重新传输的确认 互联网的状态可能互联网的状态可能突然突然发生变化发生变化 1.8 TCP Flow Control 50 1.8.3 自适应重传定时器自适应重传定时器(Adaptive
34、 Retransmission Timer)关注关注最近最近的报文段时延模式估计目前的往返时延。将的报文段时延模式估计目前的往返时延。将定时器设置为一个比估计的往返时延定时器设置为一个比估计的往返时延大一些大一些的值的值 平均往返时间平均往返时间(Average Round-Trip Time)K+1 1 RTT(i)K+1 i=1 K 1 K+1 K+1ARTT(K+1)=ARTT(K)+RTT(K+1)1.8 TCP Flow Control 51 1.8.3 自适应重传定时器自适应重传定时器(Adaptive Retransmission Timer)基于一个时间序列的基于一个时间序列的
35、过去值预测过去值预测其其下一个值下一个值有一种常有一种常用的技术即用的技术即指数平均指数平均。平滑往返时间估值平滑往返时间估值(Smoothed Round-Trip Time)SRTT(K+1)=SRTT(K)+(1 )RTT(K+1)=2SRTT(K-1)+(1-)RTT(K)+(1-)RTT(K+1)=(1-)RTT(k+1)+(1-)RTT(K)+2(1-)RTT(k-1)+k(1-)RTT(1)常数常数0 1 观察值越陈旧,在平均值中计入的就越少观察值越陈旧,在平均值中计入的就越少 1.8 TCP Flow Control 52 1.8 TCP Flow Control =0.5=0
36、.87553 1.8 TCP Flow Control 54 3.RFC 793 重传定时器时间重传定时器时间 RTO(K+1)=SRTT(K+1)+公式的公式的问题问题:RTO(K+1)=Min(UB,Max(LB,SRTT(K+1)UB,LB:预先选定的定时器值的固定上限值和下限值 Example values for,:0.8 0.9 1.3 2.0 1.8 TCP Flow Control 55 动态选路可通过将动态选路可通过将负载均匀分布负载均匀分布到交换机和链路上到交换机和链路上来帮助缓解拥塞的目的来帮助缓解拥塞的目的 但这种措施但这种措施只在处理不平衡负载的只在处理不平衡负载的短
37、期短期通信量集聚通信量集聚的情况时有效的情况时有效 最终最终拥塞拥塞只能通过只能通过将将进入进入互联网的互联网的数据总量限制数据总量限制为为互联网可以承载的量的互联网可以承载的量的方法控制方法控制 ICMP源站抑制报文手段原始,但不是有效的手段源站抑制报文手段原始,但不是有效的手段能控制拥塞能控制拥塞 RSVP可能在控制拥塞上会起作用,但离可能在控制拥塞上会起作用,但离广泛广泛实施实施还有一段距离还有一段距离 1.8 TCP Congestion Control 56 基于基于TCP/IP的互联网中拥塞控制是复杂而困难的的互联网中拥塞控制是复杂而困难的 IP是一个是一个无连接无连接、无状态无状
38、态的协议,它没有提供检测的协议,它没有提供检测更不用说控制拥塞的机制更不用说控制拥塞的机制 TCP只提供只提供端到端端到端流量控制,流量控制,间接推测间接推测拥塞,而且拥塞,而且网络或互联网中网络或互联网中时延时延可变且可变且很长很长,对网络状况了解并不,对网络状况了解并不可靠可靠 各各TCP实体之间实体之间并没有相互合作并没有相互合作的分布式算法将它的分布式算法将它们联结在一起,不可能将总流量维持在一定水平上,更们联结在一起,不可能将总流量维持在一定水平上,更可能可能相互竞争资源相互竞争资源 1.8 TCP Congestion Control 57 1.8.4 TCP Flow and C
39、ongestion Control TCP实体可以发送数据的速率,取决于对以前报文实体可以发送数据的速率,取决于对以前报文段确认的段确认的ACK的速率所确定,并可携带新的的速率所确定,并可携带新的信用量信用量 ACK到达速率是由到达速率是由源端源端与与目的端目的端之间之间往返路径往返路径上的上的瓶颈瓶颈所确定的;所确定的;TCP能自动感知网络瓶颈并对其流量作能自动感知网络瓶颈并对其流量作出调整,它称为出调整,它称为TCP自同步行为自同步行为 瓶颈可能是瓶颈可能是目的端目的端也可能是也可能是互联网互联网 源端无法知道瓶颈是源端无法知道瓶颈是目的端目的端(流量控制流量控制)还是还是互联网互联网(拥
40、塞控制拥塞控制)互联网上的瓶颈是由拥塞造成,源端应比互联网上的瓶颈是由拥塞造成,源端应比ACK速率速率更慢更慢的速率传输报文段,以缓解拥塞的速率传输报文段,以缓解拥塞(拥塞控制拥塞控制)由目的端流控造成的由目的端流控造成的低低速率,则发方速率,则发方TCP实体应以实体应以该速率传播该速率传播(流量控制流量控制)1.8 TCP Congestion Control 58 1.8 TCP Congestion Control 59 1.8 TCP Congestion Control 60 1.8.5 重传定时器管理重传定时器管理(Retransmission Timer Management)三
41、种技术用于解决重传定时器三种技术用于解决重传定时器(RTO)的计算问题:的计算问题:(1)RTT 方差估计方差估计 (2)指数指数RTO 退避退避 (3)Karn算法算法 1.8 TCP Congestion Control 61 1.RTT方差估算(方差估算(Jacobson算法)算法)3种高方差的来源种高方差的来源 如果如果TCP连接上的数据率连接上的数据率较低较低,传输时延传输时延与与传播时传播时间间的比值相对的比值相对较大较大。而且。而且IP数据报大小的变化引起的数据报大小的变化引起的时时延的方差延的方差也很大,也很大,SRTT估算值会受到数据特性而不是网估算值会受到数据特性而不是网络
42、特性的很大影响络特性的很大影响 负载可能由于其它信源而突然变化,造成负载可能由于其它信源而突然变化,造成RTT的的突突然变化然变化 对等对等TCP实体可能不对每个报文段实体可能不对每个报文段立即确认立即确认 1.8 TCP Congestion Control 62 RTT方差估计(方差估计(Jacobson算法)算法)(1)Jacobson算法算法 SRTT(K+1)=(1 g)SRTT(K)+g RTT(K+1)SERR(K+1)=RTT(K+1)SRTT(K)SDEV(K+1)=(1 h)SDEV(K)+h|SERR(K+1)|RTO(K+1)=SRTT(K+1)+f SDEV(K+1)
43、g=0.125 h=0.25 f=2 or f=4 1.8 TCP Congestion Control 63 1.8 TCP Congestion Control 64 (2)两个要考虑的因素两个要考虑的因素 Jacobson算法可以显著提高算法可以显著提高TCP的性能,但本身不完的性能,但本身不完整。整。对于重传的报文段应使用什么样的对于重传的报文段应使用什么样的RTO值?值?指数退避算法用于这一目的指数退避算法用于这一目的 哪些往返时间采样值应用做哪些往返时间采样值应用做Jacobson算法的输入?算法的输入?karn算法决定使用哪些采样算法决定使用哪些采样 1.8 TCP Conges
44、tion Control 65 2.指数指数RTO退避退避 TCP源端在同一报文段重传时源端在同一报文段重传时增加其增加其RTO退避过退避过程程 方法是对一个报文段的每次重传都将方法是对一个报文段的每次重传都将RTO乘以一个乘以一个参数值参数值q RTOqRTO q2时为二进制指数退避时为二进制指数退避 1.8 TCP Congestion Control 66 3.往返采样值如何选取?往返采样值如何选取?对于重传过的报文对于重传过的报文 没有有效的方法计算没有有效的方法计算RTT:是第一次传输到收到是第一次传输到收到ACK这段时间呢?这段时间呢?还是第二次传输到收到还是第二次传输到收到ACK
45、这段时间呢?这段时间呢?1.8 TCP Congestion Control 67 karn算法解决了上述问题算法解决了上述问题 不要使用对重传报文段测得的不要使用对重传报文段测得的RTT更新更新SRTT和和SDEV 当发生重传时计算退避当发生重传时计算退避RTOqRTO 对后续各报文段使用退避对后续各报文段使用退避RTO值,直到收到一个未值,直到收到一个未被重传过的报文段的确认为止被重传过的报文段的确认为止 然后使用然后使用Jacobson算法计算以后的算法计算以后的RTO 1.8 TCP Congestion Control 68 1.8.5 窗口管理窗口管理(Window Management)窗口管理的五种技术:窗口管理的五种技术:慢启动(慢启动(Slow start)出现拥塞时动态调整窗口大小出现拥塞时动态调整窗口大小 快速重传(快速重传(Fast retransmit)快速恢复(快速恢复(Fast recovery)受限传输(受限传输(Limited transmit)1.8 TCP Congestion Control 69