Ad Hoc网络中的TCP性能优化研究_第1页
Ad Hoc网络中的TCP性能优化研究_第2页
Ad Hoc网络中的TCP性能优化研究_第3页
Ad Hoc网络中的TCP性能优化研究_第4页
Ad Hoc网络中的TCP性能优化研究_第5页
已阅读5页,还剩16页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

PAGE20AdHoc网络中的TCP性能优化研究【摘要】传输层是整个计算机网络体系结构中的关键部分之一,对于利用网络进行通信的两个主机来说,端到端的可靠通信,最终还是要由传输层协议来解决。随着人们对摆脱有线网络的束缚、随时随地进行自由通信的渴望,近几年来无线网络通信得到了迅速的发展,AdHoc(无线自组织)网络就是其中的典型代表。AdHoc是一种无需固定基础设施支持,能够快速、简单组网的无线网络,是下一代无线网络的主要技术。AdHoc所涉及的学术与应用问题也成为了国内外研究的热点。由于AdHoc无线网络特殊的链路特性,有线网络中广泛采用的传统的TCP(TransmissionControlProtocol,传输控制协议)直接应用到AdHoc网络将会产生非常大的性能衰减。区分丢包原因就是其中的典型问题之一:现有的TCP协议会把由于信道误码率高导致的数据包丢失、节点移动引起的丢包等都归因于网络拥塞,从而使得协议启动拥塞控制策略,导致TCP性能下降。针对这个问题,本文结合国内外的学术研究,对现有的TCP协议应用到AdHoc无线网络中出现的丢包问题,提出了相应的TCP性能优化的方法。【关键词】AdHoc网络;传输层协议;TCP;丢包;性能优化一、引言随着现代无线通信技术和因特网的发展与进步,任何人在任何时间、地点都能够获取信息并与他人通信,已经成为人们对现代信息网络的切实要求。人们可以通过配有无线接口的便携计算机或个人数字助理来实现移动中的通信。目前的移动通信大多需要有线基础设施(如基站)的支持才能实现。为了能够在没有固定基站的地方进行通信,一种新的网络技术——AdHoc[1](无线自组织)网络技术应运而生。AdHoc网络不需要有线基础设备的支持,通过移动主机自由的组网实现通信,因此它被广泛应用在各种场合。同时,随着一个网络的使用,对它的研究也接踵而至。目前,国内外对AdHoc网络的研究方向有很多,对其TCP(TransmissionControlProtocol,传输控制协议)性能的研究也较多,主要有对TCP协议变体的研究,如TCPVegas协议[2],TCPVegasE协议[2]和TCPVeno协议[3];算法的研究,如DWDB(DoubleWindowsDynamicBackoff)[4]来解决由MAC层的隐藏节点导致的TCP不稳定;还有对AdHoc网络网络层的路由协议的探讨等等。综合国内外的研究,不管是哪种策略,都不能全方面的改善AdHoc网络TCP的性能,本文主要针对丢包方面来优化TCP性能,即针对报文传输时丢包的原因,提供相应的解决办法。二、AdHoc网络概述(一)AdHoc网络的定义AdHoc在拉丁文中的本意是“为这个目的”,通常它都预示一个专门的、不可归纳的问题或任务的解决方案,并不适用于其他用途[5]。所以AdHoc网络通常也被称为“无固定设施网”或“自组织网”,它是一组带有无线收发装置的移动终端组成的一个多跳的临时性自治系统[6]。移动终端具有路由功能,可以通过无线连接构成任意的网络拓扑,这种网络可以独立工作,也可以和Internet或蜂窝无线网络连接。在AdHoc网络中,每个移动终端兼备路由器和主机两种功能:作为主机,终端需要运行面向用户的应用程序;作为路由器,终端需要运行相应的路由协议,根据路由策略和路由表参与分组转发和路由维护工作。(二)AdHoc网络的特点AdHoc网络具有以下特点:1.自组织性Ad

hoc网络没有严格的控制中心,所有结点的地位平等,即是一个对等式网络。网络的布设或展开无需依赖于任何预设的网络设施。结点通过分层协议和分布式算法协调各自的行为,结点开机后就可以快速、自动地组成一个独立的网络,任何结点的故障不会影响整个网络的运行,具有很强的抗毁性。AdHoc网络相对常规通信网络而言,最大的区别就是可以在任何时刻、任何地点不需要硬件基础网络设施的支持,快速构建起一个移动通信网络。2.动态变化的网络拓扑结构在AdHoc网络中,移动主机可以在网中随意移动。主机的移动会导致主机之间的链路增加或消失,主机之间的关系不断发生变化。在自组网中,主机可能同时还是路由器,因此,移动会使网络拓扑结构不断发生变化,而且变化的方式和速度都是不可预测的。对于常规网络而言,网络拓扑结构则相对较为稳定。3.有限的无线通信带宽在AdHoc网络中没有有线基础设施的支持,因此,主机之间的通信均通过无线传输来完成。由于无线信道本身的物理特性,它提供的网络带宽相对有线信道要低得多。除此以外,考虑到竞争共享无线信道产生的碰撞、信号衰减、噪音干扰等多种因素,移动终端可得到的实际带宽远远小于理论中的最大带宽值。4.有限的主机能源在AdHoc网络中,主机均是一些移动设备,如PDA、便携计算机或掌上电脑。由于主机可能处在不停的移动状态下,主机的能源主要由电池提供,因此AdHoc网络有能源有限的特点。5.网络的分布式特性在AdHoc网络中没有中心控制节点,主机通过分布式协议互联。一旦网络的某个或某些节点发生故障,其余的节点仍然能够正常工作。6.生存周期短AdHoc网络主要用于临时的通信需求,相对与有线网络,它的生存时间一般比较短。7.有限的物理安全移动网络通常比固定网络更容易受到物理安全攻击,易于遭受窃听、欺骗和拒绝服务等攻击。现有的链路安全技术有些已应用于无线网络中来减小安全攻击。不过AdHoc网络的分布式特性相对于集中式的网络具有一定的抗毁性。(三)AdHoc网络的应用源于AdHoc网络的优点,它应用于多个领域,并且它的应用领域越来越多。总体来说,可以应用于下列场合:1.没有有线通信设施的地方,如没有建立硬件通信设施或有线通信设施遭受破坏。2.需要分布式特性的网络通信环境。3.现有有线通信设施不足,需要临时快速建立一个通信网络的环境。4.作为生存性较强的后备网络。三、AdHoc网络使用TCP的问题TCP协议最初是针对固定有线网络设计的,为发送方和接收方之间提供可靠、有序的传输服务。TCP协议依靠其错误控制机制来保证连接的可靠性,它假设所有的网络丢包是由拥塞造成。但AdHoc网络有着明显不同于固定有线网络的特点,如链路误码率高、网络分割和路由变化频繁等,这些都会导致网络丢包。而TCP却把一切丢包原因归结为网络拥塞,引发了不必要的拥塞控制,如减小窗口大小、加倍重传计时器RTO时间等,这使得AdHoc网络中TCP的性能急剧下降[7]。(一)TCP协议众所周知,TCP是TCP/IP协议族中的传输层协议,是应用最为广泛的面向连接的可靠的传输层协议。TCP协议有三个控制机制:流量控制,拥塞控制和差错控制,核心是拥塞机制。由于网络能够提供的资源(包括缓存空间、链路带宽容量和中间节点的处理能力)不足以满足用户的需求而产生拥塞,网络拥塞会使得网络可用性及吞吐量下降而响应时间拉长。目前对互联网进行的拥塞控制主要是依靠在源端执行的基于窗口的TCP拥塞控制机制。1986年初,Jacobson开发了现在在TCP应用中的拥塞控制机制。运行在端节点主机中的这些机制使得TCP连接在网络发生拥塞时回退(backoff),也就是说TCP源端会对网络发出的拥塞指示(例如丢包、重复的ACK(AcknowledgeCharacter)等)作出响应。1988年Jacobson针对TCP在控制网络拥塞方面的不足,提出了“慢启动”(SlowStart)和“拥塞避免”(CongestionAvoidance)算法[8]。1990年出现的TCPReno版本增加了“快速重传”FastRetransmit)、“快速恢复”(FastRecovery)算法[8],避免了网络拥塞不严重时采用“慢启动”算法而造成过大地减小发送窗口尺寸的现象,这样TCP的拥塞控制就由这4个核心部分组成,具体如下:慢启动阶段:当建立新的TCP连接时,拥塞窗口(congestionwindow,cwnd)初始化为一个数据包大小。源端按cwnd大小发送数据,每收到一个ACK确认,cwnd就增加一个数据包发送量,这样cwnd就将随着回路响应时间(RoundTripTime,RTT)呈指数增长,源端向网络发送的数据量将急剧增加。由于在发生拥塞时,拥塞窗口会减半或降到1,因此慢启动确保了源端的发送速率最多是链路带宽的两倍。拥塞避免阶段:如果TCP源端发现超时或收到3个相同ACK副本时,即认为网络发生了拥塞(主要因为由传输引起的数据包损坏和丢失的概率很小(<<1%))。此时就进入拥塞避免阶段。当超时发生时,首先设置为慢启动阈值(ssthresh)当前拥塞窗口大小的一半,即ssthresh=cwnd/2;然后设置拥塞窗口(cwnd)为1,并执行慢启动过程,直到cwnd=ssthresh,在这个阶段,每收到一个ACK,cwnd增加1;当cwnd≧ssthresh,TCP就执行拥塞避免算法,在每一个RTT内使cwnd增加1。此时,cwnd在每次收到一个ACK时只增加1/cwnd个数据包,所以在拥塞避免阶段,cwnd不是呈指数增长,而是线性增长。快速重传和快速恢复阶段:快速重传是当TCP源端收到三个相同的ACK副本时,即认为有数据包丢失,则源端重传丢失的数据包,而不必等待重传计时器RTO(RetransmissionTimeout)超时。同时将ssthresh设置为当前cwnd值的一半,并且将cwnd减为原先的一半。快速恢复是基于“管道”模型的“数据包守恒”的原则,即同一时刻在网络中传输的数据包数量是恒定的,只有当“旧”数据包离开网络后,才能发送“新”数据包进入网络。如果发送方收到一个重复的ACK,则认为已经有一个数据包离开了网络,于是将拥塞窗口加1。如果“数据包守恒”原则能够得到严格遵守,那么网络中将很少会发生拥塞,本质上,拥塞控制的目的就是找到违反该原则的地方并进行修正。经过十多年的发展,目前TCP协议主要包含有四个版本:TCPTahoe、TCPReno、TCPNewReno和TCPSACK。TCPTahoe是早期的TCP版本,它包括了3个最基本的拥塞控制算法:“慢启动”、“拥塞避免”和“快速重传”。TCPReno在TCPTahoe基础上增加了“快速恢复”算法。TCPNewReno对TCPReno中的“快速恢复”算法进行了修正,它考虑了一个发送窗口内多个数据包丢失的情况。在Reno版中,发送端收到一个新的ACK后就退出“快速恢复”阶段,而在NewReno版中,只有当所有的数据包都被确认后才退出“快速恢复”阶段。TCPSACK关注的也是一个窗口内多个数据包丢失的情况,它避免了之前版本的TCP重传一个窗口内所有数据包的情况,包括那些已经被接收端正确接收的数据包,而只是重传那些被丢弃的数据包。(二)无线信道传输的问题我们都知道,无线通信信道的传输条件差,存在着严重的信号衰落特性和多普勒频移(Dopplerfrequencyshift)[9]。无线移动信道的主要特征是多径传播,也就是说接收端所收到的信号是通过不同的直射、反射和折射等路径到达的,而这种特性在信道传输过程中引入了时延扩展,时延扩展使得接收信号中的一个符号的波形扩展到其它符号中,造成其它符号的干扰,从而导致频率选择性衰落,也就是信号中不同的频率分量衰落不一致,导致信号波形的畸变。所谓多普勒效应就是当发射源与接收体之间存在相对运动时,接收体接收的发射源发射信息的频率与发射源发射信息频率不相同,这种现象称为多普勒效应,而多普勒频移指接收频率与发射频率之差[10]。多普勒频移会使得信道产生快衰落和慢衰落。衰落改变了信号的电压,使得传输过程中的信号遭到破坏,也就是产生误码,还有无线信道传输中的噪音,传输设备故障,闪电或交流电产生的脉冲都会导致信道误码。误码使得数据在传输过程中出现差错,数据包损坏甚至丢失。而TCP会把数据包丢失判定为网络出现拥塞,进而启动TCP拥塞控制机制。如果TCP发送方在RTO超时前没有收到ACK报文,就会引发TCP的慢启动,从而发送方的RTO时间加倍,并减小当前拥塞窗口为1个分组。频繁的错误会使拥塞窗口一直保持在很小的范围,从而导致了吞吐量的降低。(三)移动性的问题如前所述,AdHoc网络具有动态变化的网络网络结构,网络中的各个节点能够以任意可能的速度和移动模式移动,甚至可以随时随地的加入或者退出网络,这样频繁的移动使得原有的路由无效,需要为发送方和接收方之间重新设计一条路由,如图1所示。但是这个寻找新的有效路由可能花的时间很长,如果重新计算路由的时间超过了重传定时器RTO的设定,那么发送方的TCP将会启动不必要的拥塞控制机制,这样TCP性能将大大降低。图1移动性引起的路由重构图1移动性引起的路由重构移动性带来的另一个问题是临时的网络分割,如图2所示,结点s在时刻T建立到d的运输层连接,网络在T+5s时出现分割,导致s和d处于不同的分区,s到d的路由将不可达。网络在T+20s,s和d的路由又可达。(四)多径路由的问题在AdHoc网络中,为了提高节点之间通信的吞吐量,大都采用多径路由技术。多径路由的基本思想是在一次路由发现过程中,探测到多条从源节点到目的节点的可能路径,利用这些路径发送数据,减少路由发现延迟,提高网络性能。根据研究表明[11],单径路由的吞吐量会随着节点跳数的增加而较快下降,而多径路由的吞吐量不会随着节点跳数增加下降,而会保持在一个相对稳定的水平。但是发送方发送的数据包可能会沿不同的路由传输,不同路由之间的时延不同,导致到达接收方的数据包发生乱序,从而引发TCP的快速重发机制(源端接收到3个重复的ACK后),也就是说多径路由传输会使得接收的数据包发生乱序。另外,在Adhoc网络中,当新的路由计算好之后,中间节点有可能把缓存中存放的分组大量发送给接收方,这样也会使得接收方接收到的数据包乱序,同样的也降低了。(五)有限带宽的问题带宽又叫频宽,是指在固定的的时间可传输的资料数量,亦即在传输管道中可以传递数据的能力[12]。计算机网络的带宽是指网络可通过的最高数据率,即每秒多少比特。无线网络相对于有线网络来说,存在的弱势之一是带宽。如前面AdHoc网络的特点中描述的无线网络的带宽有限,结点可能只能使用到很少的带宽,甚至没有带宽可以使用,导致发送端超时和信息丢失的时间增多,等待带宽的时间远远超过于重传计时器的值,TCP会认为网络出现拥塞,启动拥塞控制机制,进而降低了TCP性能。四、AdHoc网络中TCP的性能优化根据国内外对AdHoc网络中TCP协议的研究,可以知道TCP协议之所以在移动AdHoc网络中性能显著下降,根本原因在于缺乏有效的错误检测和错误恢复机制。因此,提高TCP协议的性能,其核心就是要使TCP具有区分网络丢包原因的能力,并针对不同情况(拥塞、信道误码或网络分割等)采用合理的策略。根据区分丢包原因所采取的手段,可分为两大类:基于网络反馈的改进方案和“端到端”的改进方案。(一)基于网络反馈的方案这种类型的改进方案通过网络反馈来获取网络状态信息,它要求对AdHoc网络中的各个节点配置检测机制,以使中间节点能及时反馈网络状态。典型代表有K.Chandran等提出的TCP-F(TCP-Feedback)协议[1],TCP-Bus[13],GavinHolland和NitinVaidya提出的TCP-ELFN(TCP-ExplicitLinkFailureNotification)协议[1],J.Liu提出的ATCP(TCPformobileAdHocnetworks)协议[1]和TCP-FSR协议[14]。1.TCP-F协议基于不能把路由失败引起的报文段作为拥塞的标志,提出了TCP-F协议,具体描述如下:(1)考虑单个的TCP连接,在发端和收端正在进行报文段传输时,设路由中的一中间结点在网络层M处检测到其报文段无法传送到下一个结点(例如,由于移动性,M的下一个结点走出了M的通信距离),M就立即发送路由失败通告RFN(routefailurenotification)报文段到源端,同时,M记录下该事件。(2)每一个收到该RFN报文段的中间结点将这条路径标志为无效,以抑制输入报文段选择这条路径;同时,该中间结点如果知道支往信宿的替代路由,这条替代路由立即用于报文段传输,抛弃RFN报文段,否则,该中间结点只是向信源简单地传播该RFN。(3)当TCP发端接收到RFN报文段时,TCP发端进入到休眠状态SNOOZE,并执行如下的操作:①完全停止发送报文段(包括新的数据报文段和重传的报文段);②标志所有的现存定时器为无效;③冻结发送窗口;④冻结其它状态变量的值,如重传定时器和窗口大小;⑤启动一个路由失败定时器,并设置初始值为最坏情况下的路由重构时间(依赖于具体的路由协议);⑥发端将一真处于SNOOZE状态,直至收到“路由已重建通告”报文段RRN(routereestablishmentnotification)。(4)当曾经转发过RFN报文段的中间结点学习到一条到信宿的路由(通过路同更新),该中间结点就发送一个RRN消息到信源(其标识前面已保存)。该结点收到的其它结点关于该连接的RRN报文段将被抛弃;所有收到RRN报文段的结点只是简单地转发处理。(5)当信源收到RRN,TCP从SNOOZE状态转入到活动状态,直接传送当前窗口中所有未确认的数据报文段。因为大部分的报文段在路由失败的时间内受到了影响,报文段的传送不用等待收端的ACK确认。也就是说TCP-F协议中的TCP在SNOOZE状态和ACTIVE状态之间转变,当遇到路由中断时,由ACTIVE状态转变为SNOOZE状态,保存变量,使得路由恢复时继续中断前的状态工作,保证了AdHoc网络的TCP性能。这是Adhoc网络中TCP最早的改进方法,但它把网络看做是一个“黑箱”[15],不能真实地模拟Adhoc网络中TCP的性能情况。2.TCP-Bus协议TCP-Bus是一个改进型的TCP-F,它也有与TCP-F协议中RFN和RRN相对应的控制报文:ERDN(explicitroutedisconnectionnotification)和ERSN(explicitroutesuccessfulnotification)。中间结点探测到路由中断,就给源端发送ERDN消息;源端收到ERDN就停止TCP传输。类似地在路由重建后,中间结点给源端发送ERSN消息;源端收到ERSN后,恢复TCP传输。和TCP-F不同的是:TCP-Bus是在实际的一个路由协议ABR(associability-basedrouting)[15]实现的,而不是把通信子网看成一个黑箱;而且TCP-Bus考虑了ERDN和ERSN消息丢包的问题,尽量减少了源端发生超时的可能性。3.TCP-ELFN协议TCP-ELFN改进方案使用ELFN来协助其实行错误检测,以此来区别对待网络拥塞和链路错误引起的丢包。TCP-ELFN是专为DSR路由协议设计,ELFN报文的实现是通过修改DSR协议中的路由错误报文,使之携带一个类似于“主机不可达”ICMP报文的载荷。当某个中间节点侦测到链路或路由错误时,反馈一个ELFN报文给发送方,使发送方的TCP进入“stand-by”(就绪)模式。在这种模式下,TCP停止发送数据包,并锁定一切变量,如RTO重传计时器和拥塞窗口(CWND)。在stand-by模式时,TCP周期性地向接收方发送探测分组,若收到确认报文,则表明已经找到新的路由,此时发送方脱离就绪模式,恢复正常发送功能,并重新启用在进入就绪模式时冻结的各项变量。4.ATCP协议ATCP的设计目的是与标准TCP兼容,设计思想采用网络层反馈技术(如ECN、ICMP等),使TCP发端正确地进入保持(persist)、拥塞控制(congestion)和重发(retransmit)状态。当网络分割时,TCP发端进入保持状态,不必发送、重发报文段;当报文段由于传输差错丢失时,通过复制ACK的计数和RTO判定,TCP发端进入重发状态,避免拥塞控制的发生;当网络发生拥塞时,通过ECN机制通告,TCP发端进入正常的拥塞控制状态。ATCP的设计方法不是修改标准的TCP,而在TCP和网络层之间插入一个ATCP子层,ATCP监听网络状态,过滤和预处理ECN消息、ICMP的“信宿不可达”、“源抑制”消息、正常的TCP报文段头等,使TCP发端进入正确的状态,其设计思想采用网络层反馈技术(如ECN、ICMP等),使TCP发端正确地进入保持、拥塞控制和重发状态。我们可以从ATCP的状态机中(如图3所示)看到ATCP有四个状态,即“NORMAL”、“CONGESTED”、“LOSS”、“DISCONNECTED”,其初始化状态是NORMAL状态。图3ATCP的状态转移图3ATCP的状态转移(1)传输差错的报文段丢失。当TCP连接由于传输差错引起的报文段丢失,收端将收不到报文段或报文段失序到达,TCP收端将产生复制的ACK;ATCP在NORMAL状态时,对收到的复制ACK进行计数,第三个ACK不送给TCP实体,而是发一个消息,使TCP发端进入PERSIST(保持)状态;ATCP进入LOSS状态。在LOSS状态,ATCP从TCP的发送缓冲区取报文段发,并维护各报文段的独立定时器以控制重发;当一个新ACK(非复制)到达时,ATCP转发该ACK到TCP,使TCP脱离PERSIST状态,ATCP自己进入NORMAL状态。(2)拥塞情况。当网络层检测到拥塞时,在ACK报文段或数据报文段中设置ECN标志字段。当ATCP收到ECN消息时,处于NORMAL的ATCP实体转入CONGESTED状态,不进行任何操作,忽略所有的复制ACK,忽略RTO溢出事件;换句话,ATCP不干涉TCP的正常拥塞控制操作。当TCP发送一个新的报文段时,ATCP退回到NORMAL状态。(3)断链情况。AdHoc网络的结点移动性导致路由重构或网络分割时,假设网络层可产生一个ICMP“信宿不可达”消息,当ATCP收到这人消息时,使TCP进入PERSIST状态,ATCP进入DISCONNETED状态。在这种情况下,TCP周期地发送PROBE报文段直到收到TCP收端的PROBEACK,使TCP脱离PERSIST状态,ATCP退回NORMAL状态。为保证TCP不继续使用老的CWND值,ATCP在使TCP进入PERSIST状态时,也使用TCP的CWND为1,目的是使TCP的CWND即时反映适应新的路由。(4)其它的转换情况。设ATCP处于LOSS状态,收到ECN或ICMP“源抑制”消息时,使ATCP进入CONGESTED状态,TCP脱离PERSIST状态;收到ICMP“信宿不可达”消息时,使ATCP脱离“LOSS”状态或“CONGESTED”状态,进入“DISCONNETED”状态,TCP进入PERSIST状态。(5)控制消息丢失的影响。由于报文段丢失,发端收不到ECN、ICMP“信宿不可达”等控制消息,ATCP协议仍然能正常工作。因此,即使ATCP不过滤报文段,TCP可以正常地进行。ATCP协议不仅仅可以处理路由中断的问题,也可以处理AdHoc网络信道误码率导致的问题,能够正确区分丢包的原因。5.TCP-FSR协议如前所述的TCP-F协议,TCP-ELFN协议,TCP-Bus协议和ATCP协议都能够解决发送端和接收端之间路由发生一处链路中断的问题,若两个节点之间的路由有超过两处链路中断,这些协议就不太有效了。虽然这些协议可以避免启动拥塞控制,但由于在路由刚刚重建就会引起连续多个的重复确认,导致协议启动“快速重传/快速恢复”,使得TCP性能改善的效果差强人意。在TCP-FSR中,TCP发送方可以处于“frozen”和“normal”两种状态。在“normal”状态中,TCP发送方是由标准TCP控制的,它和标准TCP一样传输数据;“frozen”状态中,TCP-FSR不再发送数据包并且冷冻重传定时器和拥塞窗口。具体工作过程如下:(1)没有路由中断时,TCP发送方处于“normal”状态,和标准TCP一样地传输数据;(2)当一个节点探测到了由于下游节点的相对移动造成了路由中断后,TCP-FSR立即向TCP发送方发送携带着路由中断前正在发送的数据包的序列号信息的RFN;(3)TCP发送方收到RFN,如果TCP发送方处于“normal”状态,则立即进入“frozen”状态并执行以下操作:①停止发送任何数据包(包括新的和重传的数据包);②冷冻所有的定时器和拥塞窗口大小;③保存一些TCP状态变量的当前值;④启动路由失败定时器,它用来处理路由重建延时最坏的情况,其定时间隔和下层的路由协议相关;如果TCP发送方已经在“frozen”状态,则更新TCP状态变量的值;(4)路由重建后,TCP-FSR给TCP接收方发送RRN;(5)TCP接收方收到RRN后,立即给TCP发送方发送最新的确认;(6)TCP发送方处于“frozen”状态期间收到一个确认,表明路由已经重建,则TCP解冻,从“frozen”进入“normal”状态,返回1),从3)记录的TCP状态继续正常的TCP传输,并取消路由失败定时器;(7)TCP发送方处于“frozen”期间,路由失败定时器超时,则TCP强制解冻,从“frozen”状态进入“normal”状态,由标准TCP的拥塞控制机制来处理此次路由中断,并返回1)。TCP-FSR技术在路由中断时向TCP发送方发送RFN,在路由重建时向TCP接收方发送RRN,使得TCP不仅可以在路由重建后可以从路由中断前的状态,而不用从“慢启动”阶段恢复TCP传输,而且避免了像其它基于反馈技术一样在路由刚重建就启动“快速重传/快速恢复”。(二)基于“端”到“端”的改进方案“端到端”的改进方案维护了TCP协议本身的重要特性。它不需要中间节点的支持,通过在发送方和接收方两端检验参数来获得网络状态信息。以下介绍两种典型的“端到端”TCP改进方案:TCPDOOR(TCPDetectionofOut-of-OrderandResponse)[15]和MMJI(Multi-MetricJointIdentification)[16]。1.TCPDOORTCPDOOR改进方案的核心在于对乱序OOO(Out-of-Order)包的检测和处理。所谓乱序是指发送方发送的数据包没有按顺序到达接收方,这使接收方产生重复的ACK(收到3个重复的ACK后)报文给发送方,导致发送方进行不必要的快速重发。移动AdHoc网络中,由于节点的移动性,路由变化频繁发生,出现OOO事件的原因大都因路由变化引起。如图4所示,节点S和D之间有一条经过A和B的路由,TCP原先通过这条路由进行传输(如分组1),节点C逐渐移动到S和D的通讯范围内,此时S和D之间重新计算了一条经过节点C的路由,路由发生改变,接下来的分组2沿新路由传输。由于新路由很可能比旧的路由传输时延小,后发的分组2反而先于分组1到达节点D,即发生了OOO事件。AdHoc网络频繁的路由变化会使TCP陷入不断快速重发的困境。TCPDOOR就是通过在TCP两端对OOO包的检测来判断网络中是否发生了路由变化,并采取相应策略来提高TCP的性能。(1)如何检测OOO包对于一个TCP连接,接收方收到的数据包和发送方收到的ACK报文都可能发生乱序,因此对OOO包的检测在两端都可以进行。TCP的发送方可能会重发数据包,接收方虽然不会重发ACK,但却可能产生重复的ACK。重发的数据包之间具有相同的序列号,重复的ACK报文之间也是。因此,依靠序列号不能判断是否发生了OOO事件。TCPDOOR在数据包的TCP头标中增加一个2字节的选项,即TPSN(TCPPacketSequenceNumber),在ACK报文的TCP头标中增加一个1字节的选项,即ADSN(ACKDuplocationSequenceNumber)。每发送一个数据包或ACK报文,TPSN或ADSN的值加1,TCPDOOR通过在TCP两端检测TPSN和ADSN来判断是否发生了OOO事件。(2)对OOO事件的处理由发送方处理(若是接收方检测到OOO时,也会通过在ACK报文中设置OOO-bit通知发送方),此时有两种处理方式:①暂时禁止TCP拥塞控制:因为OOO很大可能是由路由变化而并非拥塞引起,当发送方检测到OOO时,TCPDOOR在时间T1内禁止TCP的拥塞控制机制,T1时间后TCP恢复为正常。图4路由变化导致的Out图4路由变化导致的Out-of-Order现象②拥塞避免时立即恢复:当发送方检测到OOO时,并不禁止TCP的拥塞控制,但是在时间T2内,一旦TCP进入拥塞避免,则TCP立即恢复到拥塞避免前的状态。2.MMJI多参数联合检验(MMJI)[15]方案也保持了端到端的特性,MMJI方案依靠对4个参数的联合检验,提高了判别网络状况的准确性,并且能够更详细的区分网络状况。MMJI方案把Adhoc网络的状态分为5种:Normal(正常)、Congestion(拥塞)、Channel_Err(信道误码)、Route_Change(路由变化)和Disconnection(分离)。在这些状态下MMJI采取的策略行为和ATCP方案大同小异,不同之处在于MMJI方法还多了对Route_Change状态的检测和处理,以专门解决路由变化造成的数据包乱序问题,而ATCP是在Loss状态下统一解决信道误码和数据包乱序问题。下面重点介绍MMJI方案是如何通过端到端的检测机制来区分上述网络状态的。此方案所提议的4个检验参数分别为IDD、STT、POR和PLR,如表1所示。其中IDD和STT联合判断是否发生网络拥塞,POR和PLR则可以进一步区分非拥塞情况中的各种状态。 Ai是第i个包到达的时间,Si是 第i个包发送的时间,IDD即接IDD (Ai+1 -Ai)-(Si+1 -Si) 收方的包间延迟减去发送方的 包间延迟 Np(T)是在时间T内收到的数据STT Np(T)/T 包数目 Npo(T)是在时间T内收到的乱序POR Npo(T)/Np(T) 数据包数目 N1(T)是在时间T内丢失的数据PLR N1(T)/Np(T) 包数目参数定义 解释表1MMJI方案的4个提议参数(1)包间延迟差异(Inter-packetDelayDifference,IDD):网络拥塞程度越高,IDD的值越大;但如果网络中发生路由变化,数据包出现乱序时,也会使IDD的值增大。(2)短时吞吐量(ShortTermThroughput,STT):网络拥塞程度越高,STT的值越小;但如果网络中发生了网络分割或突发性信道误码,也会使STT的值减小,特别是当发生了网络分割时,STT的值接近于0。(3)数据包乱序比率(PacketOut-of-orderdeliveryRatio,POR):网络中路由发生变化时,POR的值会增大。(4)数据包丢失率(PacketLossRati,PLR):网络中发生突发性信道误码时,PLR的值会增大。MMJI方案通过检验上述4个参数获取网络状态信息。如表2所示,检验判别过程可分为CongestionCongestion (高,低) 任意 任意Route_Change非(高,低) 任意 高Channel_Err 非(高,低)高 任意Disconnection STT0 任意 任意正常 不属于以上的其他情况IDD和STT POR PLR表2通过MMJI判断网络状态的规则以下两个步骤:①判断是否拥塞:由于IDD的值对路由变化很敏感,而STT的值对网络分割和信道误码敏感。因此,为提高判别准确性,仅当IDD值比较高,同时STT值比较低时,才判定网络处于Congestion状态,其他情况都属于非拥塞状态。②判别非拥塞时的各种状态:通过(1)判定网络非拥塞后,若发现POR值比较高,则判定网络处于Route_change状态;若发现PLR值比较高,则判定网络处于Channel_Err状态;若发现STT值接近于0,即收不到数据包,则表明网络处于Disconnection状态。(三)各个方案的性能分析和比较通过以上的描述,引起网络传输过程中丢包的原因主要分为三类:拥塞、信道误码、路由中断。基本上从两个方面来解决AdHoc网络中TCP性能下降的问题,分别是基于网络反馈和基于端到端的改进方案。基于网络反馈的改进方案优点在于能准确地获取网络状态信息,因为信息直接来自于中间节点的反馈。就如军事应用领域或者其他特殊领域,AdHoc网络是作为边缘网络存在,网络中的主机要面临能源和带宽受限等诸多问题,此时更准确的获取网络状况,提高TCP协议的传输性能更为关键,这就需要对AdHoc网络的TCP改进采用基于网络反馈的方案。但它需要对移动AdHoc网络中的每个节点配置检测功能,从而增加了网络开销,也加大了网络的安全隐患。同时,由于需要中间节点的支持,网络反馈的方案也不利于Adhoc网络和其他固定有线网络之间的协作。“端到端”的改进方案不需要中间节点的支持,是通过在TCP连接的两端进行参数检验来判断网络状态。这类方案维持了TCP协议“端到端”的特性,能更好的和传统TCP兼容。这种方案更能应用于我们现实生活中,AdHoc网络未来将广泛应用于个人通信领域,需要使一台普通电脑(笔记本)能够随心所欲地加入到AdHoc网络中,采用这种方案很适合这种场所。但由于它是通过参数检验间接获取网络状态信息,因此判断准确性不如网络反馈的方案。基于网络反馈的方案如上所陈列有TCP-F,TCP-Bus,TCP-ELFN,ATCP和TCP-FSR,具体区别如下:TCP-F,TCP-Bus,TCP-ELFN和TCP-FSR都是通过报文消息来区分网络拥塞和路由中断而引起的丢包。TCP-F是AdHoc网络中最早的TCP改进方案,它把网络看成一个“黑箱”,不能够真实的模拟AdHoc网络中的TCP性能。TCP-Bus是改进型的TCP-F,它没有把网络看成一个“黑箱”,是基于一个实际的路由协议ABR实现的。TCP-ELFN和TCP-F,TCP-Bus的不同之处在于它们的路由恢复机制,TCP-F和TCP-Bus恢复路由的方法都是通过报文发送给发送方通知路由重建,而TCP-ELFN是通过发送分组来试探路由是否重建,而且TCP-ELFN是仅适用于DSR路由协议的,但是TCP-ELFN中“无效路由”的问题还是会影响TCP性能,而且对发送探测包的间隔和选用何种数据包作为探测包都要进一步研究。TCP-F,TCP-Bus和TCP-ELFN都是假设一条路由出现一处路由中断,那如果一条路由出现多处路由中断,这个时候就考虑用TCP-FSR协议了,这样可以更有效地提高TCP性能。ATCP能够区分网络传输丢包的各种原因,包括网络真正的出现拥塞,还是信道误码,还是路由中断。相对于TCP-F,TCP-Bus,TCP-ELFN和TCP-FSR更全面,更能提高TCP性能。但是在该方案中假设源端总是可达的,这种假设在Adhoc网络中很难满足,如果该假设不能很好地满足,那么发送端就收不到网络控制报文协议的“目的地不可达”消息,这样发送端会不断地重传分组而不是进入预期的“persist”模式,而且ECN机制会引起安全问题,这些不利因素都会影响到ATCP方案。基于端到端的方案分为TCPDOOR和MMJI两种。TCPDOOR通过对OOO包的检测来判断网络是处于拥塞还是发生了路由变化,但它不能处理信道误码和网络分割等情况,而且其检验准确性不是很高。MMJI方案通过4个参数的联合检验在一定程度上提高了判别

温馨提示

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

评论

0/150

提交评论