《TCP拥塞控制报告》ppt课件_第1页
《TCP拥塞控制报告》ppt课件_第2页
《TCP拥塞控制报告》ppt课件_第3页
《TCP拥塞控制报告》ppt课件_第4页
《TCP拥塞控制报告》ppt课件_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、TCP拥塞控制拥塞控制的定义 当网络中存在过多报文时,网络的性能就会下降,这种现象称为拥塞。 分组交换网络的性能功率、往返时间RTT、吞吐量与负荷的关系用以下图来说明 网络中的拥塞问题必须依靠TCP层端到端控制和lP层链路控制的共同作用才能有效的解决,其中TCP层的拥塞控制仍然会起主要的、根底的作用。端到端TCP拥塞控制的本质思想是通过调整发送端的发送速率来控制网络的负荷量。详细地说,TCP不断地通过加大发送的速率来对当前网络的实际承载才能进展探测,并随时准备对网络发回的拥塞信息作出响应,即迅速减小向网络中发送信息的速率,并在新的起点上继续对网络进展试探。根本概念拥塞窗口cwnd :拥塞控制的

2、关键参数,控制源端在拥塞情况下一次最多能发送多少数据包。 接收窗口rwnd:接收端对源端发送窗口大小所做的限制,在建立连接时山接收方通过ACK确认带给源端 慢启动阀值ssthresh :拥塞控制中用来限制发送窗口大小的门限值,它是慢启动阶段与拥塞防止阶段的分界点,初始值设为65535 bytes或awnd的大小。 回路响应时间RTT:一个数据包从源端发送到接收端直至源端收到接收端R寸该数据包确认信息所经历的时间间隔。 超时重传计数器RTO :描绘数据包从发送到失效的时间间隔,是源端用来判断数据报是否丧失和网络拥塞的重要参数,通常设为2RTT或SRTT发送端的发送窗口的上限值应当取为接收端窗口

3、rwnd 和拥塞窗口 cwnd 这两个变量中较小的一个,即应按以下公式确定:发送窗口的上限值 Min rwnd, cwnd 当 rwnd cwnd 时,是接收端的接收才能限制发送窗口的最大值。当 cwnd rwnd 时,那么是网络的拥塞限制发送窗口的最大值。 TCP 拥塞控制的四个阶段慢启动阶段拥塞防止阶段快速重传阶段快速恢复阶段1慢启动阶段 当连接刚建立或超时时,进入慢启动阶段。 当新建TCP 连接时,拥塞窗口cwnd被初始化为一个数据包大小缺省为512或536bytes 。实际发送窗口win取拥塞窗口与接收方提供的通告窗口的较小值,即win=mincwnd, awnd,每收到一个ACK 确

4、认,就增加一个数据包发送量,这样慢启动阶段cwnd 随RTT呈指数级增长1个、2个、4个、8个优点: 慢启动采用逐渐增大cwnd 的方法,可以防止TCP 在启动一个连接时向网络发送过多的数据包而造成不必要的数据丧失和网络拥塞,并且它还可以防止采用单纯的AIMD 算法造成的吞吐量增加过慢的问题为了防止cwnd 的无限制增长引起网络拥塞,引入一个状态变量:慢启动阈值ssthresh 当cwndssthresh 时,使用下面的拥塞防止算法,减缓cwnd 的增长速度。2拥塞防止阶段当TCP 源端发现超时或收到3 个一样的ACK 确认帧时,即认为网络将发生拥塞,此时进入拥塞防止阶段。在拥塞防止阶段,慢启

5、动域值ssthresh 将被设置为当前cwnd 的一半,当发生超时时,cwnd 被置为初始值1。此时,假如cwnd=ssthresh,那么执行拥塞防止算法,即cwnd 在每次收到一个ACK 确认时只增加1/cwnd 个数据包。拥塞防止阶段cwnd 随RTT 呈线性增长。 算法描绘如下:初始化:cwnd=1 ssthresh=65535bytes win=mincwnd, awnd 当新的ACK确认到达时,执行以下算法: for every arrived packets if cwndssthresh cwnd+=1;慢启动 else cwnd+=SMSS*SMSS/cwnd; 拥塞防止阶段

6、当检测到丢包时,发送方执行以下操作: ssthresh=maxmincwnd/2,awin,2; 假如检测到定时器超时,cwnd=1;其中SMSS是发送方的最大报文段长度. 从以上算法看出:在拥塞防止阶段,当数据包超时时,cwnd 被置为1,重新进入慢启动阶段,这会导致过大地减小发送窗口尺寸,降低TCP 连接的吞吐量。因此,引入了快速重传和快速恢复机制。 3快速重传阶段当网络发生拥塞时,假如源端等待超时之后再进展拥塞控制,那么从出现拥塞到施行控制有一定的时延。除了超时之外,源端还可以使用重复ACK作为拥塞信号。源端在接收到重复ACK时并不能确定是由于分组丧失还是分组乱序产生的,通常假定假如是分

7、组乱序,在目的端处理之前源端只可能收到一个或两个重复的ACK;假如源端连续接收到三个或更多的重复ACK,说明网络中某处已经发生了拥塞,这时,源端不等到重传定时器超时就重发这个可能丧失的分组,这就是快速重传算法。在快速重传阶段,当源端收到3 个或3 个以上重复的ACK 时,就断定数据包丧失,同时ssthresh 设置为当前cwnd的一半,并重传丧失的包,进入快速恢复阶段。4快速恢复阶段当快速重传算法重传了可能丧失的分组之后,假如TCP重新进入慢启动阶段,将会使拥塞窗口减为1,重新开场探测网络带宽,从而严重影响网络吞吐量,因此快速恢复算法在快速重传之后转去执行拥塞防止算法,防止了过大地减小发送窗口

8、而导致的网络性能下降。在快速恢复阶段,每收到重复的ACK,那么cwnd 加1;收到非重复ACK 时,置cwndssthresh,转入拥塞防止阶段;假如发生超时重传,那么置ssthresh 为当前cwnd 的一半,cwnd1,重新进入慢启动阶段。算法描绘如下: step 1: if dupacks=3 ssthresh=max 2, cwnd/2; cwnd=ssthresh+3 * segsize; step 2:重传丧失的分组 step 3:此后每收到一个重复的ACK确认时cwnd=cwnd+1 step 4:当收到对新发送数据的ACK确认时,cwnd=ssthresh,这个ACK可以对那些

9、在丧失的分组之后,第一个重复ACK之前发送的所有包进展确认经典的TCP拥塞控制算法TCP TahoeTCP RenoTCP NewRenoTCP VegasTCP Tahoe 算法Tahoe 算法是TCP 的早期版本。它的核心思想是:让cwnd以指数增长方式迅速逼进可用信道容量,然后渐渐接近平衡。Tahoe 包括3 个根本的拥塞控制算法:“慢启动、“拥塞防止和“快速重传。Tahoe 算法存在着缺乏之处:在收到3 个重复ACK 或在超时的情况下,Tahoe 置cwnd 为1,然后进入慢启动阶段。这一方面会引起网络的剧烈振荡,另一方面大大降低了网络的利用率。TCP Reno算法针对Tahoe算法的

10、缺乏,提出了改进算法Reno。改进主要有两方面:一是对于收到连续3个重复的ACK确认,算法不经过慢启动,而直接进入拥塞防止阶段;二是增加了快速重传和快速恢复机制。Reno算法以其简单、有效和鲁棒性成为TCP源算法的主流,被广泛的采用。但它不能有效的处理多个分组从同 一数据窗口丧失的情况。TCP New RenoTCP New Reno修改了TCP Reno的快速恢复算法,处理一个窗口中的多个报文段同时丧失时出现的“部分确认Partial ACKs,它在快速恢复阶段到达并且确认新数据,但它只确认进入快速重传之前发送的一部分数据。在这种情况下,TCP Reno会退出快速恢复状态,等待重传定时器溢出

11、或者重复确实认ACK到达,但是TCP New Reno并不退出快速恢复状态,而是1重传紧接着那个部分ACK之后的报文段,拥塞窗口等于其减去部分的ACK;2对于得到确认的新数据,设置cwnd等于其加上SMSS:3对于第一个或每一个Partial ACK,重传定时器复位。Vegas 算法1994年,Brakmo提出了TCP Vegas算法,TCP Vegas是一种截然不同的拥塞控制算法,它采用一种更巧妙的带宽估计策略,根据期望的流量速率与实际速率的差估计网络瓶颈处的可用带宽。TCP Vegas对TCP Reno主要做了三个方面的改进,分别是快速重传机制、拥塞防止阶段和慢启动阶段,这三个方面改进的详

12、细情况如下:对快速重传机制的改进TCP Vegas主要在两个方面对快速重传进展了改进,使得探测丢包现象变得更及时,且能进一步减少超时情况的发生。第一个改进措施是,当TCP Vegas收到重复确实认包时,计算从发送该数据包时刻到当前时刻的时问间隔,比较是否大于RTO,假如是,Vegas就重传该数掘包而不用等到第2、3个重复确认包的到达,如以下图所示。而且在TCP Vegas中使用了比TCP Reno更为准确的计时器,可以测得更加准确的RTT以及其他的一些时间数据,对RTT的估计将更加准确,同样也能得到更加准确的超时时间。第二个改进措施是当检测到超时并重传数据包后,收到第1个或第2个非重复确认包时

13、,检查从重传该数据包到收到非重复确认包的时间间隔,时间间隔假设大于超时时间,就认为发生了丢包,并重传该数据包。这样可以不用等到重复确实认包到达,就准确的传送在重传前发生丢包的那些数据,这在发生多个丢包的时候尤为重要,否那么发送端会一直等待直到超时,其过程如以下图所示:拥塞防止机制的改进Reno是把丢包情况作为拥塞发生的信号,而Vegas那么是通过计算期望值的吞吐量与实际吞吐量之间的差来估计网络瓶颈处的可用带宽。由于Vegas不需要等到丢包才认为发生了拥塞,所以能更有效的利用带宽。其根本思想是期望的吞吐量与实际的吞吐量相差超过一定值时,就认为网络拥塞程度严重,应该减小发送窗口;另一方面,当两者之

14、间的差距小于一定值时,那么认为连接没有完全有效的利用带宽,应该要增大发送窗口。TCP Vegas在拥塞防止阶段的详细算法为:1、计算期望的吞吐量与实际吞吐量之间的差值 其中 代表传输延时,也是当缓存中数据包为空时的RTT值BaseRTT, cwnd代表源端在每个往返时间RTT中允许发送窗口的大小,期望的吞吐量为cwnd/T,设r代表实际网络中的RTT,实际的吞吐量为cwnd /rcwndcwndr2、由1式得到路由器缓存中的数据包个数为 13、塞窗口的调整策略: ()cwndcwnddr( ) 1,(1)( ),( ) 1,cwnd kcwnd kcwnd kcwnd kTCP Vegas线性增大或减小窗口是基于dk的大小,dk代表数据包在路由器中的数量,当dk小于 时,说明网络资源还没有充分利用,需要进一步的增大发送窗口,当d k大于 时,那么减小发送窗口,防止发生拥塞。假如在 , 之间,那么窗口不变。可用下面的公式来说明:( ) 1,(1)( ),( ) 1,cwnd kcwnd kcwnd kcwnd k()dk( )d k( )d k慢启动阶段的改进TCP Reno在慢启动阶段的每个RTT内窗口都会增大一倍

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论