(通信与信息系统专业论文)ip网络端对端传输拥塞控制策略的研究.pdf_第1页
(通信与信息系统专业论文)ip网络端对端传输拥塞控制策略的研究.pdf_第2页
(通信与信息系统专业论文)ip网络端对端传输拥塞控制策略的研究.pdf_第3页
(通信与信息系统专业论文)ip网络端对端传输拥塞控制策略的研究.pdf_第4页
(通信与信息系统专业论文)ip网络端对端传输拥塞控制策略的研究.pdf_第5页
已阅读5页,还剩60页未读 继续免费阅读

(通信与信息系统专业论文)ip网络端对端传输拥塞控制策略的研究.pdf.pdf 免费下载

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

文档简介

i p 网络端对端传输拥塞控制策略的研究 摘要 近年来,随着信息技术的迅猛发展,基于i p 的网络应用也随之大 量增加。新的网络应用对网络拥塞控制策略提出更高的要求。虽然网 络拥塞控制策略实现方式多种多样,但由于目前几乎所有的网络应用 还是利用端对端的传输协议为它们提供数据传输服务( 例如t c p 为 f t p 和s m t p 提供有序可靠的数据传输服务) ,所以本文研究的重点 是i p 网络端对端传输中的拥塞控制策略。 一r 、y 因j , j 当前在因特网上实际使用的拥塞控制基本上是建立在t c p 的 窗口控制基础之上的,所以本文首先在第一章介绍了采用拥塞控制策 略的必要性和在拥塞控制策略的设计中应考虑的问题。接着我们在第 , 二章详细介绍了t c p 端对端的拥塞控制机制,主要包括慢启动,拥 塞避免,快速重传和快速恢复四个算法,并分析了目前这种拥塞控制 机制的优缺点。在本文的第二章,我们还提到了t c p 拥塞控制策略 的两种改进措施:一种是基于s a c k 选择性确认的改进,另一种是 基于t c pn e w r e n o 算法的改进。通过大量的仿真和实验,我们得出 这两种改进措施都大大提高了t c p 的传输性能,尤其是在一个t c p 发送窗口内有多个数据包在传输过程- 辛丢失的情况下。 虽然t c p 为上层网络应用提供面向连接的、可靠、有序的信息传 输服务,但t c p 的重发机制,特别是超时重发,也为网络应用带来 较大的传输时延,并且t c p 的基于窗口的a i m d 速率调节算法导致 t c p 的发送速率产生剧烈的波动。t c p 的这些特性都使得t c p 不适 于网络多媒体的实时传输。因此在本文接下米的三章里,我们首先在 第四章提出了另一利s 基于r t p u d p i p 协议栈端对端的传输体系结 构,并讨论了在此传输体系结构中使用的基本拥塞控制算法以及它的 优缺点。然后针对上述算法在对t c p 友好性方面上的不足,我们介 绍了两种改进措施。在第四章我们给出一种典型的基于速率的改进算 法,r a p1 力、议,并用网络仿真器模拟并分析了它的传输性能。然后 另一种基于公式的改进t f r c 协议,在第五章给出。最后我们在第六 r 、 章介绍了i p 组播中的拥塞控制问题_ 关键词:拥塞控制,端对端传输,t c p 协议,t c p 友好性,i p 组播 t h es t u d yo ne n d t o e n dc o n g e s t l 0 n c o n t r o lo v e ri p b a s e dn e t w o r k s a b s t r a c t i nt h er e c e n t y e a r s ,w i t h t h e r a p i dd e v e l o p m e n t o fi n f o r m a t i o n t e c h n o l o g y , t h ei n t e m e th a sa l s ob e e ne x p e r i e n c i n ga ne x p l o s i v eg r o w t h i nt h ei p b a s e d a p p l i c a t i o n s s u c h a sf t p , w w wa n dv i d e o a u d i o s t r e a m i n g ,w h i c hr e q u i r e s m o r e c a r e f u l d e s i g n e d n e t w o r k c o n g e s t i o n c o n t r o l a l g o r i t h m a l t h o u g h t h e r ea r ev a r i o u s c o n g e s t i o n c o n t r o l i m p l e m e n t s ,t h i s t h e s i ss t i l lf o c u s e so ne n d t o e n d c o n g e s t i o n c o n t r o l a l g o r i t h m s o v e ri p b a s e dn e t w o r k ss i n c ea l m o s ta l lt h en e t w o r k a p p l i c a t i o n st o d a ye n j o y t h ed a t at r a n s f e rs e r v i c e sp r o v i d e d b y e n d - - t o - e n d t r a n s p o r tp r o t o c o l s ,s u c ha st c p b e c a u s ec u r r e n ti n t e r n e tc o n g e s t i o nc o n t r o lm e c h a n i s m sa r ei nf a c t b a s e do nt c pw i n d o w b a s e d c o n g e s t i o n c o n t r o l a l g o r i t h m s ,t h i s d o c u m e n t ,i nt h ef i r s tc h a p t e r ,i n t r o d u c e st h en e c e s s i t ya n di m p o r t a n c eo f t h en e t w o r k c o n g e s t i o nc o n t r 0 1 r i g h ta f t e rt h a t ,i nt h es e c o n dc h a p t e r , w e d i s c u s st h ee n d - t o - e n d c o n g e s t i o n c o n t r o ls c h e m e s a d o p t e db yt c p p r o t o c o l ,i n c l u d i n gs l o w s t a r t ,c o n g e s t i o na v o i d a n c e ,f a s tr e t r a n s m i ta n d f a s tr e c o v e r y i t sp e r f o m a a n c ea n a l y s i si sa l s op r e s e n ti n c h a p t e r2 i n o r d e rt o i m p r o v et h ep e r f o r m a n c eo ft h ec u r r e n tt c p , i nt h es e c o n d c h a p t e r ,w ep r o v i d et w ot c p m o d i f i c a t i o n s :o n ei st c ps a c ka n dt h e o t h e ri st c p n e w r e n o t h r o u g h n u m e r o u ss i m u l a t i o n sa n de x p e r i m e n t s w ed r a wt h ec o n c l u s i o nt h a tt h e yb o t hg r e a t l yi m p r o v et h ed a t ad e l i v e r y p e r f o r m a n c eo ft c p , e s p e c i a l l yi n t h ec a s et h a tm u l t i p l ep a c k e t si na s i n g l es e n d i n g w i n d o wa r el o s td u r i n gt h et r a n s p o r t a t i o n t c pi sac o n n e c t i o n o r i e n t e d t r a n s p o r tp r o t o c o l ,w h i c hp r o v i d e s r e l i a b l ea n d o r d e r l y e n d - t o - e n dd a t a d e l i v e r y s e r v i c e sf o r u p p e r a p p l i c a t i o n s h o w e v e r ,i t sr e t r a n s m i s s i o na n dw i n d o w - b a s e da i m d r a t e a d j u s t m e n tm e c h a n i s m si n t r o d u c el o n gl a t e n c ya n dg r e a tr a t e v i b r a t i o n i n t o u p p e ra p p l i c a t i o n s ,w h i c h m a k e st c pu n s u i t a b l ef o rr e a l t i m e m u l t i m e d i ac o m m u n i c a t i o n i n s u b s e q u e n tt h r e ec h a p t e r s ,w e a tf i r s t p r e s e n t ar e a l - t i m ee n d - t o e n d t r a n s p o r t a r c h i t e c t u r eb a s e do n r t p u d p i p p r o t o c o ls t a c k s ,a s w e l la si t s p e r f o r m a n c ea n a l y s i s ,a t c h a p t e r3 t h e n ,at y p i c a lr a t e b a s e dp r o t o c o l ,r a p , a n di t s f r i e n d l i n e s s t ot c pa r es h o w ni nt h ef o r t hc h a p t e r n e x t ,t h i st h e s i si l l u s t r a t e sa n o t h e r t c p f r i e n d l yc o n g e s t i o nc o n t r o la l g o r i t h m ,t f r c ,i nc h a p t e r5 a tl a s t , t h et h e s i si sc o n c l u d e dw i t ht h ei n t r o d u c t i o no f c o n g e s t i o nc o n t r o li ni p m u l t i c a s t k e y w o r d s :c o n g e s t i o nc o n t r o l , e n d t o - e n d t r a n s p o r t ,t c p t c p f r i e n d l y , a n di p m u l t i c a s t 1 1 引言 笫章绪论 近年来,随着信息技术的迅猛发展,基于i p 的网络应用也随之大量增加。新 的网络应用对网络拥塞控制策略提出更高的要求。虽然网络拥塞控制策略实现方 式多种多样,如i p 层的拥塞控制策略就有:随机早期检测算法( r a n d o m e a r l y d e t e c t i o n ,r e d ) 、显式搁塞指示算法( e x p l i c i t c o n g e s t i o n n o t i f i c a t i o n ,e c n ) 、公 平排队算法( f a i rq u e u i n g ,f q ) 、加权公平排队算法( w e i g h t e df a i r q u e u i n g w f q ) 等。但由于目前几乎所有的网络应用还是利用端对端的传输协议为它们 提供数据传输服务( 例如t c p 为f t p 和s m t p 提供有序可靠的数掘传输服务) , 所以本文研究的重点是i p 网络端对端传输中的拥塞控制策略。 i n t e m e t 协议体系是使用基于i p 协议来实现无连接的端到端的包交换服务。 i n t e m e t 的发展和壮大充分证实了1 p 协议这种无连接设计的优势:灵活而且健壮。 但在高负载情况下提供优质基于i p 的数据传输服务需要非常仔细的设计,i p 网 络要充分发挥这些优势要求i p 层之上的传输协议本身具用良好的传输控制策 略。实际上,不在i p 动态包交换传输中采取有效的控制手段会导致严重的服务 质量的下降。这个现象首先是在1 9 8 0 年中叶i p 网络的早期发展阶段被观察到, 我们称之为“拥塞崩溃( c o n g e s t i o nc o l l a p s ef 1 1 ) ”。 1 2 网络拥塞产生的原因 网络产生拥塞的根本原因在于用户( 端系统) 给网络提供的负载大于网络资 源容量和处理能力。网络拥塞发生后的具体表现为数据包时延增加、丢弃概率增 大、上层应用系统性能下降等。拥塞产生的直接原因有以下3 点: ( 1 ) 储空间不足。如果几个输入数据流共同需要同一个输出端1 2 ,那么在 这个端口就会建立起数据包的排队队列。如果中间节点( 例如路由器、 交换机等等) 没有足够的存储空间,在队列满后到达的数据包则会被 丢弃。对于突发的数据流,由于队列溢出导致的数据包丢失的可能性 会更大。增加中间节点的存储空间在某种程度上可以缓解这一矛盾, 但如果路由器等中间节点有无限存储空间,网络拥塞状况只可能会变 得更坏,而不是更好。因为在网络里传输的数据包经过长时间排队完 成转发时,数据发送端出于它们早已超时,会认为这些数据包已经被 丢弃,造成不必要的重发。而这些数据包还会继续向下一网络中间节 点转发,从而浪费网络资源,加重网络拥塞。 ( 2 ) 宽容量不足。低速链路对高速数据流的输入也会产生拥塞。所有信源 发送的速率之和r 必须小于或等于信道容量c 。如果r c ,在理论上 无差错传输则是不可能的。所以在网络低速链路处就会形成带宽瓶 颈,当其满足不了所有的带宽要求时,网络就会发生拥塞。 ( 3 ) 处理器处理能力弱、速度慢。如果路山器的c p u 在执行排队缓存、 更新路由表等功能时,处理速度跟不上高速链路,也会产生拥塞。 这三点都可以通过加强网络基础设施的建设得以暂时的解决,比如提高网络 带:c :f ,增强处理器的处理能力和中问节点的存储空问。但要从根本上解决网络崩 溃问题,我们还必须详细考虑端节点传输仂、议的拥塞控制机制。 i 3 端对端拥塞控制需考虑的问题 出于t c p 协议是目前在i n t e m e t ( i pv 4 ) 上使用最多的传输协议,9 0 以上的 基于i p 的网络应用是利用t c p 忉、议为它们提供数据传输服务,例如f t p ,h t t p 等等,所以i p 网络实际使用的捌塞控制基本上是建立在t c p 的基于窗口的拥塞 控制之上的。i p 层( 网络层) 的路由器所起的作用比较小。不过目前在i p 层控 制捌塞的研究逐渐增多,已经形成了一个新的研究热点。但在本文中我们主要考 虑端节点传输协议的捌塞控制机制。它的设计除了要考虑怎样有效地避免网络拥 塞,还要考虑: 1 ) 公平性 除了要考虑怎样避免网络拥塞,良好的端对端( e n d t o e n d ) 传输协议的 设计还要考虑i p 网络最大努力( b e s te f f o n ) 通信的公平性。因为在网络j 封 塞发 生后t c p 通过减小其发送窗口的大小来降低发送速率,在网络资源充足时各个 t c p 发送端都能通过增加其发送窗口的大小来增加发送速率,因此大量的t c p 连接能够共享一个单独的拥塞连接。t c p 数据流之间公f 的共享网络带宽依靠所 有的t c p 流都运行兼容的捌塞控制算法。对于标准t c p 协议中的拥塞控制算法, t c p 发送端在发生网络拥塞时将拥塞窗口减半,在没有发生网络拥塞时拥塞窗口 每个往返时间增大一个数据段长度。t c p 这种基于窗口的a i m d ( a d d i t i v ei n c r e a s e m u l t i p l i c a t i v ed e c r e a s e 【2 ,渐进增长成倍递减) 拥塞控制策略在有效地避免网络 搠塞的同时也保证了各个t c p 流竞争网络带宽的公平性。 共同竞争带宽数掘流之间的公平问题变得越来越重要主要是由于下面几个 原因:第一,由于使用基于窗口拥塞控制策略的t c p 在大多数网络情况下都能 有效地避免网络拥塞,充分地利用网络带宽和提供端对端有序、可靠地传输服务, 所以t c p 协议被越来越多的网络应用采用。第二,随着网络的发展,网络用户 希望高带宽和低延迟的数据通信业务,例如多媒体的实时通信。这些业务并不要 求端对端的可靠传输,但对通信的实时性要求很高。t c p 的重发机制会给这些网 络应用带来较大的时延,因此这些业务不宜采用t c p 协议为它们提供数据传输 服务,因而需要重新设计合适的传输协议。这些传输协议的设计更加强调竞争带 宽资源的公平性,尤其是和t c p 协议流竞争带宽的公平性,即是否对t c p 友好 ( t c p f r i e n d l y 3 ) 。 2 ) 吞吐量,延迟,丢失的性能优化 除了要防止网络拥塞和关注竞争带宽时公平性,良好端到端捌塞控制的设计 要考虑的第三个理由是它自身的吞吐量,延迟和丢失的性i i i i 化。在某些情况下, 一个数据流的延迟和数据丢失大部分都与自身的发送速率无关,而是与网络基础 设施有关。然而,在很多情况下,一个数据流的延迟和丢失在很大程度上是与数 据流自身的发送速率有关。因此,一个数据流能使用端到端拥塞控制通过合理调 2 节发送速率来限制自身的数据包的延迟和丢失。然而在当前的i p 网络环境下, 端节点在进行吞吐量,延迟和丢失的性能优化的同时,必须能防止网络拥塞和保 证竞争带宽时公平性,尤其是与t c p 数据流竞争带宽的公平性。 1 4 本文的组织结构 接下来,本文将通过以下六章柬详细论述1 p 网络端对端传输中的捌塞控制 策略: 第二章首先简要介绍了t c p 协议,接着详细阐述t c p 协议拥塞控制中 的慢启动,捌塞避免,快速重传和快速恢复算法以及网络捌塞的检测,超时重发 定时器的计算和a c k 应答包的分类。这些算法构成了t c p 最基本的拥塞控制策 略。然后在第二章我们还介绍了当前t c p 拥塞控制策略的不足并详细阐述t c p 基于s a c k 和n e w r e n o 算法的改进,并利用网络仿真器模拟分析这两种改进的 传输性能。 第三章提出基于r t p u d p i p 协议栈的实时传输体系结构,并以视频的 实时传输为例介绍实时传输中基本的拥塞控制策略。然后我们分析这种拥塞控制 策略的优缺点。 第四章本文首先分析比较了基于窗口和基于速率的拥塞控制策略,然后 主要介绍了一种典型的基于速率面向实时业务的传输协议,r a p 协议。接着我 们利用网络仿真器模拟并分析它的传输性能。 第五章紧接上一章,我们介绍了另一种实时传输控制策略,基于公式的 网络实时传输控制策略,并用网络仿真器模拟并分析它的传输性能。 第六章研究了i p 组播中的捌塞控制问题。 参考文献 【1 】j o h nn a g l e ,“c o n g e s t i o nc o n t r o l i ni p t c pi n t e r n e t w o r k s ”,r f c8 9 6 ,j a n 61 9 8 4 ( 2 】yr i c h a r dy a n g a n ds i m o ns l a i n ,“g e n e r a la i m d c o n g e s t i o nc o n t r o l ”,1 c n p 2 0 0 0 ,o s a k a ,j a p a n ,n o v e m b e r 2 0 0 0 3 】h t t p :w w w p s c e d u n e t w o r k i n g t c p _ f r i e n d l y h t m l 2 1 概述 第二章t c p 的拥塞控制及改进 i n t e r n e t 的成功在很大程度上应归功于t c p i p 协议开放性。t c p i p 协议族允 许不同型号,运行不同操作系统的计算机之间互相进行通信。它实际上是一组不 同层次上的多个协议的组合,通常被认为是一个四层协议系统。传输控制协议 ( t r a n s m i s s i o nc o n t r o lp r o t o c o l ,简称t c p ) 和网际协议( i n t e r n e tp r o t o c o l ,简 称i p ) 作为t c p i p 协议族的核心仂议,分别位于t c p i p 四层协议系统的传输 层和网络层 1 ,如图2 1 所示。 应用层( f t p ,t e l n e t 等等) 传输层( t c p ,u d p ) 网络层( i p ,i c m p 等等) 链路层( 网络接口卡等) 图2 一lt c p i p 协议的分层 f i 蛇一lp r o t o c o ll a y e r si nt c p i p 除了t c p 协议,传输层的协议的协议还包括用户数据报协议( u s e rd a t a g r a m p r o t o c o l ,简称u d p ) 。u d p 协议为应用层提供一种非常简单的服务。它只是把 称作数据报的分组从一台主机发送到另一台主机,但u d p 并不保证该数据报能 到达另一端,也不提供任何的拥塞控制机制。因此任何必需的可靠性和拥塞控制 必须由应用层来提供。而另一方面,t c p 协议的主要功能是为主机之间提供可靠 并且有序的数据传输服务。它所做的工作包括把应用程序交给它的数据分成合适 的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时计 时器等。由于运输层提供了高可靠性的端到端的通信,因此应用层可以忽略所有 这些细节。还和u d p 协议不同的是,t c p 协议不但保证数据报可靠有序的传输, 而且它本身也具有避免网络拥塞的手段。t c p 和u d p 这两种传输层协议分别在 不同的应用中有不同的用途,这一点我们将在后面看到。 t c p 协议经历了从早期简单停止等待协议到t c pt a h o e 和t c pr e n o 的发展 历程。到目前为止研究人员又提出许多t c p 版本,但其中只有t c p r e n o 的两种 改进版本t c p n e w - - r e n o 和t c ps a c k 最具有发展前景。在接下来的三章里, 我们将主要研究这几种t c p 的拥塞控制机制及其相应的改进措施。 2 2t c p 的拥塞控制 早期t c p 使用简单停止等待协议,每发送一个报文,都要等待确认后,才再 顺序发送下一报文。因此效率很低,且在等待确认时,网络资源也得不到充分利 用。另外,还必需等重发计时器超时,才能重发丢失的报文,对网络拥塞未采取 什么有效措施。j a c o b s o n 分别于1 9 8 8 年和1 9 9 0 年提出t c p 捌塞控制机制和一 些相应的改进措施【2 3 。它们主要包括慢启动( s l o ws t a r t ) 、捌塞避免( c o n g e s t i o n a v o i d a n c e ) 、快速重传( f a s tr e t r a n s m i t ) 和快速恢复( f a s tr e c o v e r y ) 四个算法。 为了便于说明t c p 的j ) “塞控制,在这单我们提供了本章和下一章要使用的一 些术语的定义。 数据段:一个数据段就是任意的t c p i p 数据包或确认包( 或两者兼牾) 。 发送端最大数据段大小( s e n d e r sm a x i m u ms e g m e n ts i z e ,简称s m s s ) : s m s s 是发送端能发送的最大数据段的尺寸。这个值取决于网络最大传 送单元( m a x i m u mt 1 a n s f e ru n i t ,简称m t u ) ,m t u 路径发现算法, r m s s ( 见下- - j , j i ) j f h 其它的网络传输参数。该参数不包括t c p i p 头部雨1 选项所占的字节数。 接收端最大数据段大小( r e c e i v e r sm a x i m u ms e g m e n ts i z e ,简称 r m s s ) :r m s s 是接收端可以接收的最大数据段的尺寸。这个值在两t c p 实体连接开始时接收端发送的m s s 选项中说明。但如果没有使用m s s 选项,r m s s 的缺省值就是5 3 6 字节。同样该参数不包括t c p i p 头部和 选项所占的字节数。 接收方窗口( r e c e i v e rw i n d o w ,简称r w n d ) :最近通知的接收方窗口 大小。它代表着一个t c p 当前允许接收的最大数据量。 ) 1 j 塞窗口( c o n g e s t i o n w i n d o w ,简称c w n d ) :一个代表当前t c p 允许 发送的最大数据量的状态参量。在任意一个给定的时刻,t c p 发送的数 据包序号号不会大于最大确认序号与c w n d 、r w n d 中较小者的和。 初始窗口( i w ) :初始窗1 3 是t c p 三次握手完成后发送端的捌塞窗口的 大小。 丢失窗口( l w ) :丢失窗口是在t c p 发送方利用它的超时重发计时器检 测到了数据丢失之后拥塞窗口的大小。 重启窗口( r w ) :重启窗1 5 1 是t c p 在一段空闲连接之后重新丌始发送数 据包时拥塞窗口的大小。 传送尺寸:已经被发送但还没有确认的数据的总量。 2 2 1 拥塞控制算法 这节首先介绍t c p 的确认机制和重发超时计时器的计算方法,然后再描述了 t c p 中所包括的四个拥塞控制算法:慢启动,捌塞避免,快速重传和快速恢复。 在某些情况下,我们可以采用比以上四个算法更加保守的捌塞控制算法,这或许 对一个t c p 连接更有益。但无论如何,t c p 发送方不能超出以上四个算法的限 定。也就是说,如果上述算法计算出来的c w n d 值不允许发送数据时,t c p 发 送方就不能发送数据。 2 2 1 1t c p 的确认机制 t c p 接收端应该每接收到一个满尺寸数据段生成一个a c k 应答包。a c k 应 答包中包含了下一个t c p 接收端希望收到的数据包序列号。如果发生了网络搠 塞或者在其它一些网络环境下,失序( o u t - - o f - - o r d e r ) 的数据段将到达t c p 接 收方。失序的数据段应该立即被接收方确认,这样可以加速数据丢失恢复过程。 为了向发送端及时反馈丢失恢复的信息,在接收到能填补部分或全部序号间隔的 数据段时,t c p 接收端也应该迅速发送一个a c k 应答包。 t c p 目前有两利i 确认方式:一种是累积确认( c u m u l a t i v ea c k n o w l e d g m e n t s 【4 】) ,另一种是选择性确认( s e l e c t i v ea c k a l o w l e d g m e n t 【5 ,简称s a c k ) 。累积 确认t c p 应答包仅仅能够提供一个t c p 接收端希望收到的数据包序列号信息。 因此t c p 发送端在接收到一个累积确认应答包后,它最多只能知道有一个数据 包丢失。在有些情况下,t c p 发送端在收到累积确认后可能会过早地重发数据包。 但是重发的数掘包中有些也许已经被接收端正确接收,因而导致不必要的重 传。 t c p 的选择性确认方式可以通过在t c p 应答包中增加信息量来很好地解决 上述问题。t c ps a c k 中包含了最近几组已经被接收端正确接收的数据包信息。 因此,t c p 接收端可以利用s a c k 应答包告诉发送端哪些数据段被成功接收, 哪些数据仍未收到。t c p 发送端在收到s a c k 应答之后只需重传那些在传输过 程中丢失的数掘段。 在本章中我们只考虑t c p 的累积确认方式。t c ps a c k 的工作原理和采用 s a c k 的t c p 的传输性能将在下一章详细分析。 2 2 1 2 超时重传定时器的计算 如果缺少数据接收方的反馈数据( a c k 应答) ,t c p 协议使用一个重发定时 器来保障数据的可靠传输。该定时器持续的时间问隔被称为r t o ( 重传的超时 值) 。要计算当前的r t o ,t c p 发送方需要维护两个状态变量,s r t t ( 平滑的 往返时间) 和r t t v a r ( 往返时间偏差) 。另外,我们假设一个时钟的时间精度 为g 秒。r t o 的计算算法【6 如下所示。 i 。在对t c p 连接传送的第一个数据段完成照灏量2 前发送方应该将 r t o 的,扔始值设置为3 秒, 2 。在得出第一个r t t 的 鲤 | 量值r 之后t c p 发送方必须设置 s r t t ;= r r 力1 蹦r = r 您 r m = s r t t + m a x ( g ,k x r t t v a 剧 其中k = 4 , 37 在得勖- k - 一个r t t 昀灏量值r 之螽t c p 发送方必须按如下蹶寄设羲 r t t v a r = ( 1 一b e t a ) xr t t v a r + b e t ax s r t t r t s r t t = f 】一a l p h a ) xs r i t + a l p h a r t 上述计算应该使甬a l p h a = l 8 和b e t a = l 4 进行计算, 4i 然后宿i 机必绩将髓。更额为: r t o = s r t t + m a x f g ,k x r t t v a r 。 一壁r t o 计算好如果宅小于1 秒镑,黜r t o 瘦该补充韵1 秒。 5j 可以给r t o 设定最大值,如果r t o 的计算值超过76 0 秒的话, t c p 必须使用k a r n 的算法【7 来对r t t 的值进行抽样。也就是说,不可以利 用重传的数据段进行r t t 采样( 因为如果利用重传的数据段进行r t t 采样, 那么我们不能决定究竟a c k 响应是第一次发送的数据包的响应还是后来重发数 据段的响应) 。但是如果当t c p 使用了时问戳选项 8 ,那么t c p 就可以利用重 传的数据段进行r t t 采样,因为时问戳选项消除了上述a c k 响应的不明确性。 在利用r t t 抽样值计算出r t o 之后,文献 6 推荐使用如下的超时重发定时器的 维护算法。 1 。每发送出一个数据包( 包捂重发) 她梁趣时重发定钧”器没套运行瓤寤动 浚定时器并把它的值设置为当街的r t o , 2 所袁的发出数掘都被确认之后关搦该趣嘲重发定皤器, 3 。如果t c p 发送端接收弛一个瓤的a c k 确认计算r t o 的值并重薪启动 该趣瞬重发定鼹器使褥它在当前的r t o 秒之禹超越, 在趣嘲重发定时器超勰聒t c p 发送端必须: 4 重发最早尚未被t c p 接收方响应的段。 s 设置r t o = r t o 2 , 67 启动趣时重发定髓器。使褥在当前的r ,3 的秒之鑫趣髓, 注意在超时重发之后,如果有新的数据包发出并且发送端得到了新的a c k 口向应,那么t c p 发送方可以得到新的r t t 采样值。在此之后,t c p 发送方将重 新执行r t o 计算算法和超时重发定时器的维护算法。 2 2 1 3 慢启动和捐j 塞避免 慢启动( s l o w - - s t a r t ) 和拥塞避免( c o n g e s t i o n a v o i d a n c e ) 算法必须被t c p 发送端用柬控制正在向网络发送的数据量。为了实现这些算法,t c p 必须引入 两个参量:拥塞窗口( c w n d ) 和接收端通知窗口( r w n d ) 。拥塞窗口限制了 发送端在收到确认( a c k ) 之前能向网络传送的最大数据量,接收端通知窗口 是对接收端所能接收数据量的限制。c w n d 和r w n d 的最小值决定了当前t c p 发送方最大能传送的数据量,即: 当前发送窗1 2 p 4 , = m i n ( c w n d r w n d ) ( 1 ) 由于计算机计算能力和存储能力的提高,r w n d 一般都比较大。所以当前发 送窗口的大小在大多数情况下都等于拥塞窗口的大小。在本文中我们认为t c p 拥塞窗口和发送窗口的值始终相等。另外,慢启动阀值( s s t h r e s h ) 是决定当前 t c p 发送方是用慢启动,还是用拥塞避免算法来控制数据发送的状态参量。 在不清楚当前可用网络带宽资源的情况下向网络传送数据,t c p 发送方应该 缓慢地探测网络以确定可用带宽。这样做的目的是避免突然传送大量数据而导致 网络拥塞。t c p 不仅在数据传送开始阶段,而且还在超时重发计时器探测到的数 据丢失之后使用慢启动算法来达到此目的。在数据传送的开始阶段初始窗口r w 必须小于或等于2 * s m s s 字节而且不能大于两个数据段“”。 s s t h r e s h 的初始值可以任意大( 比如一些t c p 实现使用接收方通知窗口的大 小作为s s t h r e s h 的初始值) 。但是在t c p 发送端通过丢包和超时等机制检测到发 生网络拥塞之后,s s t h r e s h 的值会被减小。如果c w n d 小于s s t h r e s h ,t c p 发送 方将使用慢启动算法;如果c w n d 大于s s t h r e s h ,t c p 发送方则采用拥塞避免 算法发送数据。但是如果c w n d 和s s t h r e s h 相等,那么发送端既可以使用慢启 动也可以使用拥塞避免算法。 在慢启动阶段,一个t c p 的c w n d 对每一个接收到的用于确认新数据的 a c k 至多增加s m s s 字节,即:c w n d = s m s s + c w n d 。当c w n d 大于或 等于s s t h r e s h ,或者是t c p 发送方检测到网络拥塞时慢启动结束。 在捌塞避免期问,c w n d 的大小在每个往返时削( r 1 t ) 将增加一个满尺寸 数据段长度( 即包含了s m s s 大小数掘量的t c p 数据包) 。捌塞避免过程直至 t c p 发送方检测到网络拥塞之后才停止。等式2 给出了一个在拥塞避免期间普通 使用的c w n d 修正公式。t c p 每收到一个新的a c k 则将它的拥塞窗口调整为: c w n d = c w n d - - s m s s s m s s ? c w n d( 2 ) 当一个t c p 用重传定时器检澳, j j n 数据段丢失时,s s t h r e s h 的值必须设定大于 等式( 3 ) 中给出的值: s s t h r e s h = m a x ( 2 当i p 发送窗口的一半2 x s m s s ) ( 3 ) 此外,一旦发生了超时计时器超时,c w n d 值必须设定为一个不大于丢失 窗口l w 的值。l w 应和一个满尺寸数据段的大小相等,而与i w 的值无关。因 此,在重发丢失数掘段之后,t c p 发送端使用慢启动算法将窗口尺寸从一个满尺 寸数据段增加到s s t h r e s h 的新值,然后在进入捌塞避免阶段。 2 2 1 4 快速重传快速恢复 当一个失序( o u t o f - - o r d e r ) 的数据段到达时t c p 接收端时,接收端应该 迅速发送一个重复的a c k ( d u p l i c a t ea c k ) 数据包。这个a c k 除了通知t c p 发送端接收方收到了一个失序的数据段,还包含了目前t c p 接收端期望收到的 序列号。从发送端的观点来看,重复a c k 可以由许多网络问题引起。首先,它 可能是由在网络传输过程中丢失的数据段引起的。在这种情况下,所有在丢失的 数据段之后发送的数据段都将触发重复a c k ,并且重复a c k 的序列号都包含了 目前t c p 接收端期望收到的数据段,即丢失的数据段序列号信息。其次,重复 a c k 还可能是由网络对数据包的重新排序引起( 比如不同的传输路径和网络链 路层的重传机制都会导致数据包的重新排序) 。最后,重复a c k 还可能由网络 对a c k 应答数据包或数据段的复制引起。另外,当随后到达的数据段填补了全 部或部分因为数据包的丢失或失序产生的序列号间隔时,t c p 接收端也应该立即 发送一个新的a c k 。这将为t c p 发送端提供最及时的信息,使之从数据丢失中 立即恢复,然后进入拥塞避免或者其它的数据丢失恢复阶段,比如t c p 的 n e w r e l l o 改进( 在下一章介绍) 。 t c p 发送端应该使用“快速重传”算法并且根据收到的重复a c k 来检测数 据包的丢失或者从数据丢失中恢复。快速重传算法以三个重复到达的a c k ( 收 到四个一样的a c k ,并在其间发送方没有接收到任何其它的a c k 应答包) 为一 个数据段已经丢失的标志。在收到三个重复a c k 之后,t c p 不等超时重传计时 器超时就重传看来已经丢失的数据段。 快速重传算法第一次出现在t c p 的4 3 b s dt a h o e 版本中。t c pt a h o e 在利 用快速重传算法检测到有数掘包丢失之后,立即根据公式3 调节s s t h r e s h 的大小。 然后t c pt a h o e 将搠塞窗口c w n d 设置为初始化窗口i w 的大小,重发丢失的 数据包并且进入慢启动阶段。图2 2 ,图2 3 和图2 4 描绘了t c pt a h o e 的 发送窗口的变化和数据包的发送过程。在1 7 秒左右,t c p 发送端接收到三个重 复的a c k 应答包,t c p 重发丢失的数据段并进入慢启动阶段。在慢启动阶段由 于每收到一个a c k 应答包t c p 拥塞窗口的大小就增加一个s m s s 大小,所以拥 塞窗口的大小成指数型增加。当拥塞窗口的大小增至s s t h r e s h 后,t c p 发送端退 出慢启动并进入拥塞避免阶段。在拥塞避免阶段由于每个往返时间内t c p 拥塞 窗口的大小才增加一个s m s s 大小,所以捌塞窗口的大小成线性增加。 时问( 单位:秒) 图2 2t a h o e 发送窗1 3 变化图 f i 9 2 2e v o l u t i o no f t a h o es e n d i n gw i n d o w 1o121416 182 m2224 时间( 单位:秒) 图2 3t a h o e 数据包发送过程 ( 一个数据包丢失) f i 9 2 3t a h o ed a t ap a c k e ta n da c k t r a n s m i s s i o n ( s i n g l ep a c k e tl o s s ) 5 0 5 0 5 0 5 0 3 3 2 2 1 1 一一浮蝈磐 非 柏 嚣 器 侣 们 o o 妒承坎 101z1416182 0z22 4 时问( 坼化:秒) 图2 4t a h o e 数据包发送过程 ( 多个数据包丢失) f i 9 2 4t a b o ep a c k e ta n da c k t r a n s m i s s i o n ( m u l t i p l ep a c k e tl o s s e s ) 从上面三幅图可以看出,当发生网络捌塞时t c p t a h o e 能够通过减小其发送 窗口的大小来对网络捌塞作出及时的反应。但是t c pt a h o e 在利用快速重传算法 检测到数据包丢失之后采用的是慢启动算法。而慢启动算法将拥塞窗口设置为初 始窗口大小的做法会导致很低的网络资源利用率和较长的时延。因为t c p 发送 方在多个往返时间r t t 之后,发送窗口才能增大到和当前网络带宽相匹配的大 小。并且由于采用累积确认方式反馈的信息有限,t c p t a h o e 为了快速重发丢失 的报文段,它还可能重发那些已经被成功接收的数据包( 例如图2 4 中序列号 为1 4 的数据包) 。为了弥补t c p t a h o e 的不足,在t c p t a h o e 的基础上研究人员 又提出了快速恢复( f a s t r e c o v e r y ) 算法。快速恢复算法和t c p t a h o e 拥塞控制 算法中的慢启动、拥塞避免和快速重发构成了t c p 的r e n o 版本。 在t c pr e n o 中,t c p 发送方在利用快速重传算法发送了它认为丢失的数据 段之后,将进入“陕速恢复”阶段。快速恢复算法支配了新数据的传送,直到一 个非

温馨提示

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

评论

0/150

提交评论