(计算机应用技术专业论文)无线tcp性能改进的研究.pdf_第1页
(计算机应用技术专业论文)无线tcp性能改进的研究.pdf_第2页
(计算机应用技术专业论文)无线tcp性能改进的研究.pdf_第3页
(计算机应用技术专业论文)无线tcp性能改进的研究.pdf_第4页
(计算机应用技术专业论文)无线tcp性能改进的研究.pdf_第5页
已阅读5页,还剩59页未读 继续免费阅读

(计算机应用技术专业论文)无线tcp性能改进的研究.pdf.pdf 免费下载

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

文档简介

南京邮电大学硕士研究生学位论文 摘要 摘要 随着人们对移动性的追求,以3 g 技术和无线局域网技术为代表的无线网络获得了 巨大的发展,无线网络的角色从有线网络的补充逐渐转变为有线网络的有力竞争者,给 有线网络带来了巨大的冲击。 传输控制协议( t c p ) 提供了端到端的可靠的数据流传输服务,现在已成为i n t e m e t 协 议簇中的重要部分。随着无线网络的发展,人们发现,这种为传统的有线网络设计的可 靠传输协议在无线网络环境下性能却严重恶化。其主要原因在于t c p 假设分组丢失是由 于网络拥塞造成的,一旦发生丢包现象发送方就认为网络发生了拥塞,就会启动拥塞控 制机制,减小发送速率以缓解拥塞。显然这种方法对于链路质量良好的有线环境是合适 的,然而在无线网络中拥塞已不再是分组丢失的唯一原因。无线链路的高误码率导致大 部分丢包都是由于无线链路出错造成的,t c p 并没有相应的机制来区分丢包是由拥塞造 成的还是无线链路出错造成的。如果t c p 仍然遵循丢包必然是由拥塞引起的原则,对无 线链路出错引起的丢包也采取减小发送速率来进行拥塞控制,就势必降低带宽利用率, 导致t c p 性能降低。 本文针对以上的问题,进行了深入的分析。结合无线网络的自身特点,深入分析了 无线t c p 性能低下的根本原因。同时对主流的无线t c p 的算法进行研究和分类,并且 对其中的具有代表性的算法进行了深入分析,对它们进行了一个横向比较,指出了它们 的优点和不足之处。另外本文还提出了一种基于链路层的改进t c p 性能的算法,其基本 思路是通过过滤来自与无线侧和有线侧的a c k 数据和d a t a 数据,来避免没有必要的重 传和超时,从而使得t c p 的发送窗口始终维持在一个较大的值,提高了t c p 的性能。 为了验证本算法的有效性,本文通过n s 网络仿真工具对该算法进行了仿真。仿真 结果表明了此算法在有线无线混合网络环境中能够保持较高的吞吐量,有效的提高了 t c p 的性能。 南京邮电大学硕士研究生学位论文 摘要 a b s t r a c t t h ew i r e l e s sn e t w o r kt e c h n o l o g yh a sd e v e l o p e dg r e a t l yf o rt h em o b i l i t y t h er o l eo ft h e w i r e l e s sn e t w o r kh a sc h a n g e df r o mt h es u p p l e m e n tt ot h ec o m p e t i t o ro ft h ew i r e dn e t w o r k t h ew i r e l e s sh a sm a n ya d v a n t a g e sc o m p a r et ot h ew i r e dn e t w o r k t h ew i r e l e s sn e t w o r kw i l l c a u s eag r e a ts h o c kt ot h ew i r e dn e t w o r k s t h et 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 ) p r o v i d e se n d - t o e n d ,r e l i a b l e , c o n g e s t i o n c o n t r o l l e dc o n n e c t i o n so v e rt h ei n t e m e t i th a sb e e nt h ed o m i n a n tt r a n s p o r tm e c h a n i s mf o r r e l i a b l ed a t at r a n s f e ro v e rt h ei n t e m e t t c ph a sb e e nt r a d i t i o n a l l yd e s i g n e da n du s e df o rw i r e d n e t w o r k s ,s oi t sp e r f o r m a n c eo nw i r e l e s sn e t w o r k si sn o tg o o d t c p a s s u m e st h a tp a c k e tl o s s a r em a i n l yc a u s e db yc o n g e s t i o n w h e nt c pf o u n dp a c k e tt i m e o u t s ,i ts l o w sd o w nt h es p e e d o fs e n d i n gd a t ai no r d e rt or e d u c et h ec o n g e s t i o no nt h en e t w o r k p a c k e tl o s s e sd u e t om a n y o t h e rf a c t o r si nw i r e l e s sn e t w o r k s ,b u tt c ph a sn om e c h a n i s mt od i f f e r e n t i a t et h e s ef r o m c o n g e s t i o n a n du n f o r t u n a t e l yt c p t r e a t sa l lp a c k e tl o s sa sc o n g e s t i o na n di n v o k e si t s c o n g e s t i o nc o n t r o lm e t h o db yr e d u c i n gi t st r a n s m i s s i o nw i n d o w t h i sw i l lr e s u l t si na n u n n e c e s s a r yr e d u c t i o ni ne n d t o e n dt h r o u g h p u t i nt h i sp a p e r , w ea n a l y z et h er e a s o no fp e r f o r m a n c er e d u c t i o ni nw i r e l e s st c ew e c l a s s i f yt h em a i n l yi m p r o v e m e n ta l g o r i t h mo fw i r e l e s st c pb yi t si m p l e m e n tc h a r a c t e r i s t i c ,g o d e e pi n t os o m er e p r e s e n t a t i v ea l g o r i t h m s ,t h e nm a k eac o m p a r i s o no ft h e m b e s i d e st h i s ,w e p r o p o s e da l li m p r o v e da l g o r i t h mo f t c p f o rw i r e d w i r e l e s sn e t w o r k s b yf i l t e r i n gt h ed a t aa n d a c kp a c k e t s ,a v o i dt h es p u r i o u sr e t r a n s m i s s i o na n dt i m e o u t s ,i m p r o v et h et h r o u g h p u to f t c e w eh a v es i m u l a t e dt h ea l g o r i t h mu n d e rn ss i m u l a t i o nt o o l s t h es i m u l a t i o nr e s u l ts h o w t h a tt h ea l g o r i t h mi sa b l et om a i n t a i nh i g ht h r o u g h p u to v e rt h ew i r e d w i r e l e s sl i n k ,i m p r o v e t h ep e r f o r m a n c eo f t c e - n - 南京邮电大学学位论文独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取 得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不 包含其他人已经发表或撰写过的研究成果,也不包含为获得南京邮电大学或 其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究 所做的任何贡献均己在论文中作了明确的说明并表示了谢意。 研究生签名:( 寸夏牲 日期: 明。1 南京邮电大学学位论文使用授权声明 南京邮电大学、中国科学技术信息研究所、国家图书馆有权保留本人所 送交学位论文的复印件和电子文档,可以采用影印、缩印或其他复制手段保存 论文。本人电子文档的内容和纸质论文的内容相一致。除在保密期内的保密 论文外,允许论文被查阅和借阅,可以公布( 包括刊登) 论文的全部或部分内容。 论文的公布( 包括刊登) 授权南京邮电大学研究生部办理。 研究生签名:么斌乙导屯 导师签名:,忍庇 日期:n 吁- i 南京由b 电大学 南京邮电大学 硕士学位论文摘要 学科、专业:工学计算机应用技术 研究方向:计算机通信与网间互连技术 作者:2 0 0 4 级研究生位云路 指导教师:曾鹏副教授 题目:无线t c p 性能改进的研究 英文题目:t h er e s e a r c ho ni m p r o v e m e n to ft c pp e r f o r m a n c ei nw i r e l e s s n e t w o r k s 主题词;无线网络,t c p ,性能改进 k e y w o r d s :w i r e l e s sn e t w o r k s ,t c p ,i m p r o v e m e n to fp e r f o r m a n c e 南京邮电大学硕士研究生学位论文第一章绪论 1 1 无线网络 第一章绪论 近年来随着无线网络标准的制定,无线技术的飞速发展以及无线产品的性能提高, 无线网络作为有线网络的延伸,为有线网络无法扩展到的区域提供了最佳解决的方案, 并开始获得广泛应用。未来随着开放办公的流行和手提式电脑普及,人们对移动性访问 和存储信息的需求愈来愈多,因而无线网络产品将会在办公、生产和家庭等领域获得更 广泛应用。 1 1 1 无线网络概述以及分类 随着通信网络技术的发展,无线通信和移动计算的需求在持续地增长,无线网络在 未来因特网中无疑将扮演极为重要的角色。无线局域网、蓝牙、无线本地环、移动通信、 a dh o c 网络等无线网络技术极大地推动着无线网络和移动因特网技术的发展。 根据无线网络连接的方式不同,可以把无线网络泛泛地分为3 类: 1 蜂窝无线网络 此网络模型中的移动用户是通过基站和固定网络连接的,这是目前使用最为广泛的 无线网络。在这种无线网络模型中,只需要解决无线终端与基站之间的t c p 传输问题, 也就是所谓的单跳问题,这也是目前无线t c p 研究和提出解决方法最多的无线网络模 型,我们经常使用的手机网络就是属于此种类型。 2 a d h o c 网络 这种网络不需要基站,移动主机通过无线链路相互连接自动地组成一个网络。主要 需要解决路由中断后t c p 传输的问题。目前,这种网络模型中的t c p 研究还不是很多。 3 卫星网络 发送端和接收端之间使用卫星链路连接。主要需要解决大时延带宽乘积和不对称链 路的问趔4 2 1 。 得益于蜂窝无线网络自身的优点,蜂窝网络在全世界得到了广泛的应用,本文也将 主要研究的蜂窝无线网络中的t c p 的应用,本文以下的叙述如不特殊说明,无线网络均 指蜂窝无线网络。 1 南京邮电大学硕士研究生学位论文第一章绪论 1 1 2 蜂窝无线网络 我们上面已经提n - 蜂窝网络中的移动用户是通过基站和固定网络连接的,其中应 用最广泛的就是移动通信网络以及无线局域网。 移动通信网络经过2 0 多年的发展,目前已经发展到了第三代。 第三代移动通信系统是一种能提供多种类型、高质量的多媒体业务,能实现全球无 缝覆盖,具有全球漫游能力,与固定网络相兼容,并以小型便携式终端在任何时候、任 何地点进行任何种类通信的通信系统。 虽然移动网络已经发展到了第三代,但是其无线侧接入还是没有太大的变化。 无线局域网是近年刚刚兴起的无线网络。其速度由刚开始的1 1 m b p s 提高到5 4 m b p s , 到目前的1 0 8 m b p s ,未来可能达到6 0 0 m b p s 。但是不管速度其如何提高,其网络模型还 是没有变化的。 图1 1 给出了蜂窝网络的基本网络模型: 图1 - 1 无线网络示意图 2 南京邮电大学硕士研究生学位论文 第一章绪论 其中连接基站和固定主机之间的是有线网络,可以是光纤,也可以是a t m 或者是 以太网等,我们用直线标识。 链接基站和移动主机之间的是无线网络,我们用曲线标识。根据网络类型不同,可 以是8 0 2 1 1 或者是w c d m a 、c d m a 2 0 0 0 的空中接口等,运行在不同的频段上。一个 基站根据其设计容量不同,可以同时跟多个移动主机交互,同时移动主机也可以在不同 的基站之间移动切换。 1 2 无线t c p 当前对无线多媒体数据网络中的关键理论与技术的研究已成了网络领域一个重要的 研究课题。基于t c p i p 协议体系结构的分组交换网实现简单,可扩展性好,允许多个 设备共享少数的通信频道,以及有线t c p i p 的成功应用,这一切无疑会促使以i p 为 核心的网络结构成为未来无线通信网络的主导形式。 t c p 是目前i n t e r n e t 中广泛采用的传输控制协议,为各主机之间提供可靠按序的 传输服务,在保障网络通信性能方面起着非常重要的作用【1 1 。t c p 的设计考虑了系统稳 定性、协议兼容性、业务公平性、资源利用率以及拥塞控制等问题。t c p 在无线网络中 的应用的研究工作已经进行了许多年,随着以c d m a 技术为基础的3 g 宽带无线网络迅速 的被推广到全世界。支持高速数据传输的3 g 将使无线数据应用大幅度增加,而广阔的数 据应用领域绝大部分将使用t c p i p 协议。因此,优化这些网络中的t c p i p 性能将会对 用户概念的数据应用功能产生巨大的影响。 1 2 1 无线t o p 存在的问题 标准的t c p 协议是基于有线网络设计的,由于有线网络的误码率,丢包率相当的低, 所以标准的t c p 假设绝大部分的丢包是由于网络拥塞引起的,其他导致丢包的原因可以 忽略不计。如果把标准t c p 直接应用到无线网络中,由于无线网络中的传输错误、链 路中断、路由中断等因素的影响,标准的t c p 会经常在网络没有发生拥塞的情况下启 动拥塞控制,减少发送的窗口,进行没有必要的重传,这些将直接导致t c p 的吞吐量下 降,性能降低。 南京邮电大学硕士研究生学位论文 第一章绪论 1 2 2 当前的研究现状 近年来,国际上许多知名的大学( 如m i t 、u cb e r k l e y 、s t a n f o r d 、t a x a s 、 c o l u m b i a ) 、标准化组织( i e t f 、i t u t 、a n s i ) 、电信和计算机网络公司( c i s c o 、i b m 、 n o k i a 和b e l lc o r e 等) 及其各国或跨国的研究机构( 美国n s f 、d a p a r 、欧洲的a c t s 计划的a c 3 1 0 ) 都积极投入了大量的人力和物力进行这一领域的研究,并取得了一些初步 的成果【3 4 ,5 1 。这些成果主要以改善无线网络下的t c p 性能为首要目标,解决方案涉及: 链路层。采用良好的链路层控制机制,对t c p 屏蔽无线链路特性。 传输层。考虑无线链路特性,修改t c p 。 链路层与传输层协同工作。一方面避免重复的差错控制;另一方面链路层也可 将其了解到的无线链路特性通告给传输层,以便使传输层采取相应的控制策略。 网络层。采用良好的路由协议,减少因为移动主机频繁移动而造成连接中断的 可能性。 1 3 本文研究方向 本文将对当前的t c p 应用于无线网络的不同改进算法进行分析,同时给出其性能比 较。在文章的最后,提出自己的一个基于链路层的算法,并且在n s 仿真工具中验证了 该算法,证明该算法能够有效的改进t c p 的性能。 本文按照以下方式进行组织: 第一章:绪论,指明了本文的研究背景以及目前的研究现状。 第二章:简要的介绍了传统的t c p 协议,深入分析了t c p 拥塞控制中的四个算法。 第三章:介绍了无线网络的特点以及当前改进t c p 性能的算法。 第四章:提出自己的一个基于链路层的解决方案,并在n s 仿真器中给出仿真。 第五章:结束语和以后工作展望。 南京邮电大学硕士研究生学位论文第二章t c p 协议介绍 第二章t c p 协议介绍 在这一章中,我们将致力于分析传统的t c p 协议,了解t c p 的工作原理、控制机 制,以便于下面进一步理解基于它的各种改进策略。 2 1t c 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 ) 是一种面向连接的、可靠的、 基于字节流的运输层通信协议,在简化的计算机网络o s i 模型中,它完成运输层所指定 的功能【1 1 。 传输层位于应用层及网络层之间,包括t c p 和u d p 两种协议栈。许多应用诸如简 单网络管理协议( s n m p ) 、远程通信协议( t e l n e t ) 等都选用t c p 提供端到端面向连 接的可靠服务。t c p 具有流量及拥塞控制、对用户数据进行分段和重装等功能。 t c p 从诞生之初,就不断被改进,从最初的呦o e 【2 1 ,r e n o ,到现在的n e w r e n o 7 1 。 其主要改进的地方就在拥塞控制算法方面。 2 1 1t c p 报文段格式 两台机器上t c p 实体之间传输的数据单元称为报文段( s e g m e n t ) 。t c p 通过报文 段之间的交互来建立连接、传输数据、发出确认、通告窗口大小以及关闭连接。图2 1 给 出了t c p 报文段结构: 南京邮电大学硕士研究生学位论文第二章t c p 协议介绍 1 6 位源端口号1 6 位目的端口号 3 2 位序号 3 2 位确认序号 4 位首部长 保留( 6 位 基拄长譬# | : 1 6 位窗口大小 度 1 6 位校验和1 6 位紧急指针 选项 数据 图2 - 1t c p 报文格式 下面对上图中的字段进行简要说明: 1 源端口( 1 6 位) 。定义了在主机中发送该报文段的应用程序的端口号,以识 别本地t c p 用户。如虚拟终端协议t e l n e t 的端口号为2 3 、文件传送协议f t p 的端口号为2 l 、电子邮件协议s m t p 的端口号为2 5 、域名系统服务d n s 的端口 号为5 3 等。 2 目的端口( 1 6 位) 。定义了在主机中接收该报文段的应用程序的端口号,以 识别目的t c p 用户。 3 序号( 3 2 位) 。指明当前数据段在发送端数据字节流中的位置。 4 确认序号( 3 2 位) 。指出了本机希望接收下一个数据字段的序号。 5 首部长度( 4 位) 。以3 2 比特为单位的首部长度值。 6 保留( 6 位) 。保留给将来使用。 7 标志( 6 位) 。各标志位置“1 时分别表示以下含义: u r g :紧急指针字段有意义。 a c k :确认字段有意义。 p s h - 本报文段请求急迫( p u s h ) 操作。 r s t :连接复位。 南京邮电大学硕士研究生学位论文 第二苹t c p 协议介绍 s y n :序号同步。 f i n :发送端不再发送数据。 8 窗口( 1 6 位) 。流量控制使用的信用量,表示接收主机能够接收的数据大小, 单位是字节。 9 校验和( 1 6 位) 。提供了对包括t c p 首部在内全部数据完整性的校验。 1 0 紧急指针( 1 6 位) 。指向紧急数据的最后一个字节。 1 1 选项以及填充( 3 2 位) 。为可选部分,用于t c p 具体选项。填充的作用是 确保首部大小是一个3 2 位的整倍数。 既然t c p 是可靠的传输协议,那么它是如何实现数据的可靠传输呢? t c p 是通过以 下几个方式来保证数据可靠的传输: 应用数据会被分割成t c p 认为最合适发送的数据块。 t c p 发出一个报文段以后,它会启动一个定时器,等待目的端确认这个报文段, 如果不能及时收到确认,将会重发这个数据段。 t c p 收到发自另外一端的数据,它将发送一个确认。但是这个确认有可能不是 立即被发送的。 t c i 将保持它首部和数据的校验和。如果有错误,t c p 将丢弃这个报文段并且 不确认收到。 如果收到的报文段失序,那么t c p 会对收到的数据重新排序,并且交给上层。 t c p 会自动丢弃重复的数据。 t c p 可以提供流量控制。 第二节我们将分析t c p 的主要几个功能,以便更好的了解t c p 的算法。 2 1 2t o p 发展历史 目前t c p 协议包含有多个版本:t c pt a h o e ,t c pr e n o ,t c pn e w r e n o 和t c ps a c k 等。 t c pt a h o e 是早期的t c p 版本,它包括了3 个最基本的拥塞控制算法,“慢启动 、“拥 塞避免 和“快速重传 。t c pr e n o 在t c p t a h o e 基础上增加了“快速恢复算法。t c p n e w r e n o 对t c pr e n o 中的“快速恢复 算法进行了修正,它考虑了一个发送窗口内多 个数据包丢失的情况。在r e n o 中,发送端收到一个新的a c k 后就退出“快速恢复”阶 段,而在n e w r e n o 版中,只有当所有的数据包都被确认后才退出“快速恢复 阶段。 t c ps a c k 关注的也是一个窗口内多个数据包丢失的情况,它避免了之前版本的t c p 重 南京邮电大学硕士研究生学位论文第二章t c p 协议介绍 传一个窗口内所有数据包的情况,包括那些己经被接收端正确接收的数据包,而只是重 传那些被丢弃的数据包。随着无线网络的快速发展,t c p 也出现了许多对无线网络进行 优化的版本,比如m t c p 、i - t c p 和t c p w e s t w o o d 等,我们将在第四章对这些算法进 行分析。 2 2t c p 连接 t c p 是一个面向连接的协议,无论哪一方向另外一方发送数据之前,都必须先在双 方之间建立一条连接。 2 2 1t c p 连接的建立和停止 建立一个t c p 连接 要在两个端建立一个连接,需要如下步骤: 请求端发送一个s y n 表明准备连接的端口以及初始序号( i s n ) ,另外一端发回包含初始 序号的s y n 报文段作为应答,同时将确认序号设置为客户的i s n + l 以表明对客户的s y n 报文段进行确认。客户必须将确认序号设置为服务器的i s n 加l 对服务器的报文段进行 确认。 中止一个连接 客户端发送一个f i n 到服务器。 服务器发送一个a c k ,确认序号为收到的序号加l 。 服务器还发送一个f i n 。 客户端必须回一个f i n 的a c k 才算结束。 2 2 2t c p 状态变化图 图2 2 给出t c p 的状态变迁图。我们可以看到t c p 建立连接以及停止的所有过程。 南京邮电大学硕士研究生学位论文第二章t c p 协议介绍 开始 图2 - 2 t c p 状态变化图 需要说明的是:本文所关心的状态都是处于e s t a b l i s h e d 状态下性能的改进。 2 2 2t c p 窗口 t c p 维护了两个窗1 2 1 来实施拥塞控制和避免。接收者的窗i ( r w i n d ) 以及拥塞窗口 ( c w n d ) 。其中r w n d 指明了当前接收方能够接收的最大数据包数目,而c w n d 则表明发送 方当前能够发送到网络中的最大数据包数目。在实际应用中,被发送到网络中的数据包 的数目是两者的最小值。很显然,当r w n d 和c w n d 足够大的时候,t c p 的吞吐量会增长。 当前对于t c p 窗口的研究也是比较多的,可以参考文献 3 8 】以及文献 4 0 1 。 c w n d 的增长是伴随着接收方收到的a c k 的数目而增长的,当接收者每收到一个数 据包的时候,会给发送者回一个a c k ,用来确认自己已经收到了数据。而发送方在收到 a c k 以后,就将c w n d 的值加大以发送更多的数据。 当拥塞产生时( 出现数据包丢失,也就是没有收到a c k ) ,t c p 会通过减小拥塞窗口 的尺寸来达到降低数据传输速率的目的。该算法分慢启动( s l o ws 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 s s i o n ) 和快速恢复( f a s tr e c o v e r y ) 等阶段。 9 南京邮电大学硕士研究生学位论文第二章t c p 协议介绍 t c p 流量控制定义了收到从目的端发来的确认之前,源端可发送的数据量。它使用 滑动窗口机制,由接收端根据它的缓存大小和处理能力,在a c k 报文段的窗口域向发 送端通告其信用量,发送端根据其通告量调整滑动窗口的大小。 我们知道,口层允许数据报重装,因此t c p 不能假定收到的序列出现不连续就等于 是丢失,而应该给出多个重复应答。当连接变得空闲或响应丢失时,t c p 通过定时器的 超时检测到丢失。重传定时器不断根据先前测量到的往返时间( r t t ) 加权平均而予以 更新。 下面我们重点分析拥塞控制的原理,在了解拥塞控制原理之前,我们有必要了解一 下t c p 是如何计算一个数据包超时时间的。 2 3r t t 和r t o 的平滑估计 t c p 的超时和重传中的最重要的办法是对一个给定链接的往返时间 ( r o u n d t r i p t i m e ) r t t 的测量。由于路由器以及网络流量均会发生变化,所以t c p 应该 跟踪这些变化并相应的改变其超时时间。 由于数据报文段和a c k 之间通常没有一一对应的关系,t c p 必须测量在发送一个 带有特别序号的字节和接收到包含该字节的确认之间的r 1 丌。我们称这个r 1 r r 为s a m p l e r 1 广r 。我们称s r t t 为m 经过平滑过的值,称r t t v a r 为i m 的被平滑的均值方差。则r t o 可以按照下面的公式来计算: s r t t = ( 1 - 曲s r t t + gxs a m p l er 1 r r r t t v a l h ) r t t v a r - h 木i s a m p l e r t f - s r t t i 其中的变量g = 0 1 2 5 ,h = 0 2 5 则r t o 可以计算如下: r ,r ( ) = s r t t + 4 * r t t v a r 当前这个r t o 估计已经被广泛应用于固定网络中。但是如果应用到无线网络中,也 可能出现问题,如果r t o 估计值过小,将导致所有的数据包就超时,那么重传次数就会 过多。如果r t o 估计值过大,将会导致t c p 发送速率下降。以上两种情况都会造成t c p 的性能下降,关于这个方面的研究,可以参考文献【3 5 】。 2 4 拥塞控制算法 数据包在传输过程中可能遭遇链路错误或者网络拥塞。在有线网络中,链路错误很 - l o 南京邮电大学硕上研究生学位论文 第二章t c p 协议介绍 罕见。因此,t c p 就认为数据包发生丢失就意味着网络发生了拥塞,此时需要进行拥塞 避免了。t c p 通过检测重复的a c k 和数据包的超时来检查网络拥塞。 在介绍拥塞控制之前,我们需要介绍几个以下我们可能会用到的术语: s e g m e n t 一个s e g m e n t 就是一个数据包,可以是发送的数据,也可能是发送数据的a c k 。 s e n d e rm 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 r a n s m i s s i o nu n i to f t h en e t w o r k ) ,或者由路径m t u 算法,r m s s , 或者其他因素决定,需要说明的是,s m s s 不包括t c p i p 的头以及可选项的长度。 r e c e e rm a x i m u ms e g m e n ts i z e ( r m s s ) : r m s s 是接收者希望能够接收的数据段的长度。这个值是由接收者发送的a c k 里边 的m s s 选项指明的,如果没有指明这个选项,将取默认值5 3 6 字节。同样,这个长度也 不包括t c p i p 的头以及可选项的长度。 f u l l s i z e ds e g m e n t : 就是一个包含全部s m s s 数据的数据段,也就是能够发送的最大的数据段。 r e c e i v e rw i n d o w ( r w n d ) : 接收者最近建议的一个发送窗口。由于发送者并不知道接收者的数据处理能力,如 果一开始就发送s m s s 个数据段,可能造成接收者缓冲区满,从而数据被丢弃,如果发 送的数据段过小,则吞吐量会减小,造成t c p 性能过低,因此接收者会通知发送者目前 自己还能够接收数据的能力,希望发送方发送的数据段大小。 c o n g e s t i o nw i n d o w ( c w n d ) : 拥塞窗口,虽然r w n d 指明了接收者希望接收的数据长度,但是由于网络限制,不 可能完全按照接收方的意愿发送数据,e w n d 指明了当前网络的容量限制,t c p 不能发送 超过e w n d 限制的数据。一般来讲,t c p 每次实际发送的窗口是r w n d 和c w n d 的最小值。 i n i t i a lw i n d o w ( m : 初始化窗口是当t c p 建立起三次握手以后,发送者的c w n d 。 l o s sw i n d o w ( l v d : 丢失窗口是当t c p 在一定时间内未收到发送数据包的a c k 回应,就会认为网络发 生了拥塞,这个时候发送窗口会被减小,l w 就是当发生超时后,t c p 发送窗口的 大小。 r e s t a r t w i n d o w ( r 、聊: 1 1 南京邮电大学硕士研究生学位论文第二章t c p 协议介绍 重传窗口是重新发送窗口是值当侦测到重传以后,发送方的发送窗口的大小。 f l i g h ts i z e : 已经发送,但是未经过确认的数据。 2 4 1 慢启动 在t c p 初始化连接的时候,会调用一个慢启动算法来探测网络的容量: 慢启动的算法过程如下: 慢启动算法需要对每个链接维持两个变量c w n d 和s s t h r e s h ( s l o ws t a r tt h r e s h o l d 慢启 动门限) 。当开始传送数据的时候,发送方的c w n d 被初始化为一个初始值,一般为l 。 然后每次发送c w n d 个窗口大小的数据,每收到一个数据包的a c k ,就将c w n d 加l ,显 然e w n d 是指数增长的。 s s t h r e s h 一般被初始化为一个很大的值( 默认为6 5 5 3 6 ) ,当发现一个丢包事件以后, 也就是说网络发生拥塞以后,c w n d 被设置为初始值,同时s s t h r e s h 被设置为s s t h r e s h 的 i 2 ,当发送数据被对方确认的时候,就增加c w n d ,但是增加的方法要依赖于我们现在 进行的是慢启动还是拥塞避免,当c w n d s s t h r e s h 的时候,则进行拥塞避免。 实际上,慢启动机制探测网络以确保它不会把太多报文段发送进一个已经拥塞的环 境。随着确认的到达,t c p 就可以扩大其拥塞窗口,直到流量最终由到来的确认a c k 而 非e w n d 所控制。 需要说明的是,当i 淝超时的时候,也会调用慢启动机制。 2 4 2 拥塞避免 慢启动算法在初始化连接时很有效。它使得发送t c p 实体可以快速地为连接确定 合理的窗口大小。具体地,我们设想一个t c p 实体发起一个连接并经过慢启动过程。 某个时刻,在e w n d 达到另一端分配的信用量大小之前或之后,一个报文段被丢失( 超 时) 了。这是发生拥塞的信号,拥塞的严重程度并不清楚。因此,一种明智的方法是复 位e w n d = l 并重头开始慢启动过程。这似乎是一种合理的保守的方法,但实际上它还不 够保守。 j a c o b s o n 指出“网络进入饱和状态很能容易,但让网络从饱和状态中恢复却很难 。 换一种说法就是一旦拥塞发生了,要将拥塞清除掉可能需花很长时间。因此,慢启动中 1 2 南京邮电大学硕士研究生学位论文 第二章t c p 协议介绍 c w n d 的指数增加就可能太激进,它可能使拥塞更严重。j a c o b s o n 提出开始使用慢启动 然后采用拥塞避免,即让e w n d 线性增长,这一过程为拥塞避免阶段。具体规则如下: 慢启动门限设置为目前拥塞窗口的一半大小;即s s t h r e s h = c w n d 2 ; 设置c w n d = 1 并执行慢启动过程直到c w n d 等于s s t h r e s h 。在这个阶段,c w n d 在每 收到一个a c k 时都加l 。 c w n d s s t h r e s h 时,则每一个往返时间对c w n d 加l 。 如图2 3 说明了慢启动与拥塞避免。 拥塞窗口 2 4 3 ,陕速重传和快速恢复 图2 - 3 慢启动和拥塞避免 发送t c p 实体用来确定什么时候对一个报文段进行重传的重传定时器( r t o ) 通 常比该报文段a c k 到达发送端所花的实际往返时延( i m ) 要长许多。因为,我们要 考虑下列一些因素: r t o 的计算基于对下一个i m 的预测,这个预测是以过去的r 1 r r 为基础的。 如果网络时延发生波动,则估计的r t t 可能比实际的r t t 小。 类似地,如果目的端弓l 入的时延发生波动,估计的r t t 也会变得不可靠。 目的端可能并不对每个报文段都发送一个a c k ,而是对多个报文段积累发送一 个a c k ;同时在它有数据要发送时发送a c k 。这种行为可以引起i 册波动。 这些因素的一个结果是:如果一个报文段丢失了,t c p 可能不能及时重传。快速重 传利用t c p 中的下列规n - 如果一个t c p 实体收到一个失序报文段,它必须立即发 出一个对于最后一个收到的按序报文段的a c k 。对于每一个到来的报文段t c p 将继续 重复发送这个a c k ,直到丢失的报文段到达填补了缓存中的空隙。当空隙填充之后, t c p 就对所有迄今为止按序收到的报文段发送一个积累a c k 。当源端t c p 收到一个 重复的a c k 时,这就意味着发生下列两种情况之一: 1 3 叫 2 可 = = 一, 材 卟 南京邮电大学硕士研究生学位论文 第二章1 p 协议介绍 被确认报文段后面的报文段被延迟了以致于它最终失序到达; 这个报文段丢失了。 在情形l ,这个报文段最后确实到达了,因此t c p 不应该重传它。但在情形2 ,一 个重复的a c k 可以看作是一个预警系统,它告诉源端t c p 一个报文段已经丢失了而必 须重传。为了确信碰到的是情形2 ,而不是情形1 ,j a c o b s o n 建议t c p 发送端要等待 收到同一报文段的3 个重复a c k ( 即一共收到同一报文段的4 个a c k ) 。在这种情况下, 随后的报文段已被丢失的可能性就很大。因此,应该被立即重传,而不是等着超时才重 传。 紧随着快速重传后的算法就是快速恢复算法。 当t c p 实体使用快速重传算法重传一个报文段时,它知道( 或确切地讲是假定) 一个报文段丢失了,即使它还没有在这个报文段上发生超时。因此,t c p 实体应该采取 拥塞避免措施。一种容易想到的策略是当发生超时时所用的慢启动拥塞避免方法。这就 是说,t c p 实体可以将s s t h r e s h 设置为c w n d 2 ,设置c w n d = l 并开始指数规律的慢起 动过程直到c w n d = s s t h r e s h 为止,然后线性增加c w n d 。 j a c o b s o n 论证说这种方法过分保守,因为多个a c k 已经返回这个事实本身就说明 数据报文段正相当正常地到达对方。所以j a c o b s o n 提出了一种快速恢复技术:重传丢 失的报文段,把c w n d 减半,然后继续以线性规律增加c w n d 。这个技术避免了最初的 指数慢启动过程。快速恢复技术可以精确地表述如下: 当第三个重复a c k 到达时,设置s s t h r e s h = c w n d 2 ;重传丢失的报文段;设 置c w n d = s s t h r e s h + 3 。给s s t h r e s h 加3 的理由是考虑进了已经离开网络并且对端 已经缓存起来的报文段个数。 每次有一个更多的重复a c k ( 对同一报文段所发的) 到达时,把c w n d 加l 并 在可能情况下传输一个报文段。这考虑到已经离开网络并触发了重复a c k 的 又一个报文段。 当确认新报文段的下一个a c k ( 即丢失报文段及其后各报文段的积累确认) 到 达时,设置e w n d = s s t h r e s h 。 图2 4 给出t c p 拥塞控制的变化图,通过这个图我们可以很直观的看到t c p 的拥塞 控制算法的执行过程。 南京邮电大学硕士研究生学位论文第二章t c p 协议介绍 连接韧始化 燃一姜爵书国嬲m 、么l 、 茹蒋高磊谯篙熹i 磊。篡摭嬲m 图2 _ 4t c p r e n o 拥塞控制变化图 2 5 坚持定时器和保活定时器 2 5 1 坚持定时器 通过上面的分析,我们已经知道tcp 通过让接收方指明希望从发送方接收的数据 字节数( 即窗口大小) 来进行流量控制。那么如果窗口大小为0 会发生什么情况呢? 这 将有效地阻止发送方传送数据,直到窗口变为非0 为止。 如果一个确认丢失了,则双方就有可能因为等待对方而使连接终止:接收方等待接 收数据( 因为它已经向发送方通告了一个非0 的窗口) ,而发送方在等待允许它继续发送 数据的窗e l 更新。为防止这种死锁情况的发生,发送方使用一个坚持定时器( p e r s i s t t i m e r ) 来周期性地向接收方查询,以便发现窗口是否已增大。这些从发送方发出的报文段称为 窗口探查( win d0wpr0b e ) 。 计算坚持定时器时使用了普通的tcp 指数退避。对一个典型的局域网连接,首次 超时时间算出来是1 5 秒,第2 次的超时值增加一倍,为3 秒,再下次乘以4 为6 秒, 之后再乘以8 为l2 秒等。但是坚持定时器总是在5 60 秒之间。 窗口探查包含一个字节的数据。tcp 总是允许在关闭连接前发送一个字节的数据。 坚持状态与的重传超时之间一个不同的特点就是tcp 从不放弃发送窗口探查。这些探 查每隔60 秒发送一次,这个过程将持续到或者窗口被打开,或者应用进程使用的连接 被终止。 2 5 2 保活定时器 我们知道,t c p 是面向连接的,但是如果我们建立一个t c p 连接以后,并不发送任 南京邮电大学硕士研究生学位论文第二章t c p 协议介绍 何数据,那么会发生什么事情? 事实上,如果tcp 连接的双方都没有向对方发送数据, 则在两个tcp 模块之间不交换任何信息。 例如,没有可以在其他网络协议中发现的轮询。这意味着我们可以启动一个客户与 服务器建立一个连接,然后离去数小时、数天、数个星期或者数月,而连接依然保持。 中间路由器可以崩溃和重启,电话线可以被挂断再连通,但是只要两端的主机没有被重 启,则连接依然保持建立。 这意味着两个应用进程一客户进程或服务器进程一都没有使用应用级的定时器来检 测非活动状态,而这种非活动状态可以导致应用进程中的任何一个终止其活动。 然而,许多时候一个服务器希望知道客户主机是否崩溃并关机或者崩溃又重新启动。 许多实现提供的保活定时器可以提供这种能力。 在这个描述中,我们称使用保活选项的一端为服务器,而另一端则为客户。并没有 什么使客户不能使用这个选项,但通常都是服务器设置这个功能。如果双方都特别需要 了解对方是否已经消失,则双方都可以使用这个选项。 如果一个给定的连接在两个小时之内没有任何动作,则服务器就向客户发送一个探 查报文段。 客户主机必然处于以下4 个状态之一。 客户

温馨提示

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

评论

0/150

提交评论