网站首页  词典首页

请输入您要查询的论文:

 

标题 无线网络TCP拥塞控制算法研究综述
范文

    陈金超 谢东亮

    

    摘要:随着WiFi,3G网络和无线设备的普及,无线通信传输数据亮不断增加。对无线网络数据传输的性能要求也不断加大。TCP作为现今internet网络主要传输控制协议之一,在IP层基础上为应用层提供面向连接的、可靠的数据传输服务。TCP在有线网络中已经证明可以取得良好的传输性能,然而在无线网络中(蜂窝网络、Ad hoc网络和卫星网络等)由于无线信道具有高衰减、高比特误码率的特点等因素导致TCP传输性能衰弱。目前国内外学者已经提出了各种不同的方法来提高无线网络中TCP性能,本文着重讨论在蜂窝网络、wifi网络下提升无线TCP性能的解决方案,对比标准TCP协议,分析造成无线网络TCP性能下降的主要原因以及各无线网络TCP解决方案的性能。

    关键词:无线网络;WiFi;3G;TCP;性能优化

    中图分类号:TP393.0

    文献标识码:A

    0 引言

    随着无线网络和无线设备的普及,无线通信传输数据量愈来愈大。TCP作为面向连接的、可靠的、端到端的数据传输控制协议,其在无线网络中的性能要求也越来越高。TCP通过窗口、序列号、重传定时器、确认等技术实现TCP的流量控制、差错控制以及拥塞控制,以此保证数据的可靠传输。虽然标准TCP在有线网络中能很好地工作,但是在无线网络中的性能很差。为了能在无线网络中有效地使用TCP,就必须对标准TCP进行优化。虽然国内外学者已经提出了各种不同的方法来提高无线网络中TCP性能,但是几乎所有的方法都是针对某个特定问题,没有一个方法可以解决所有问题。本文在接下来章节的分别介绍了TCP协议的基本概念,影响无线网络TCP性能的主要因素,无线TCP协议改进的主要方案,以及各种方案间性能的分析对比。

    1 TCP传输控制协议

    TCP协议在Internet体系结构中的位置相当于OSI(open systems interconnection)模型中的第4层如图1所示,在不可靠的IP层基础上为应用层提供一个可靠的、按序传输、端到端的数据包传输服务。TCP假定网络中的丢包是由于网络拥塞引起的,并通过拥塞控制算法使网络不断进行自我调节,从而达到自我均衡的状态,TCP经过几十年的研究,不断自我完善,主要有以下版本,Tahoe,Reno,NewReno,Sack,Vegas下面我们将详细介绍TCP协议的发展以及TCP协议在无线网络中的问题。

    1.1TCP协议的发展

    TCP Tahoe通过检测丢失的报文段来探测网络拥塞并调整发送速率从而实现了拥塞控制。Tahoe的拥塞控制算法包括慢启动,拥塞避免和快速重传。快速重传阶段,发送端只要一连收到3个重复的ACK即可断定有分组丢失了,就应立即重传丢失的报文段,而不必等到重传计时器超时,而窗口调整同超时一样将窗口调为初始状态。然而,当分组报文丢失并不是网络拥塞引起是由于链路暂时断开或者随机误差导致时,Tahoe的快速重传时将拥塞窗口降为初始状态导致无法充分利用网络带宽。

    TCP RENO增加了“快速恢复”(Fast Recovery)算法,避免了网络拥塞不严重时采用“慢启动”算法而造成过大的减小发送窗口尺寸的现象。发送端收到三个重复ACK时,就重新按照“乘法减小”重新设置ssthresh拥塞窗口不设为1MSS,而设为ssthresh+3xMSS若收到重复ACK为n个(n>3),cwnd将设为ssthresh+nxMSS若发送窗口值还允许发送报文段,就按照拥塞避免算法继续发送报文段若收到了新的报文段的ACK,将cwnd缩到ssthresh。

    NewReno是对TCPReno版本的修改。NewReno跟Reno在只有一个数据包遗失的情况下,其机制是一样的。NewReno主要修改了Reno的Fast-recovery算法。考虑了一个发送窗口内多个报文丢失的情况。在Reno快速恢复算法中,当发送方收到一个不重复的应答后就退出快速恢复状态,而Newreno算法中,只有当所有报文都被应答后才退出快速恢复状态。

    NewReno在Fast-recovery算法中加入了Partial ACK机制,当同时有多个packet丢失时,在收到Partial ACK时,并不会立即结束Fast-recovery,相反,NewReno的发送端会持续地重送Partial ACK之后的数据包,直到将所有遗失的数据包重送后才结束Fast-recovery,减少大量数据包遗失对传输效果造成的影响。

    Sack是TCPReno版本的修改。加入了SACK选项,允许接收端在返回Duplicate ACK时,将已经收到的数据区段(连续收到的数据范围)返回给传送端,传送端可以知道哪些数据包是已经收到的,哪些是该重送的,因此SACK的传送端可以在一个RTT时间内重送一个以上的数据包。弥补了NewReno在每个RTT时间只能一个数据包遗失的错误。更有效地处理大量数据包遗失的问题。

    TCP Vegas利用RTT值的改变来判断网络是否拥塞,从而调整拥塞控制窗口。如果发现RTT大于阈值β,Vegas就认为网络正在发生拥塞,于是开始减小拥塞窗口,如果RTT小于阈值α,Vegas认为网络拥塞正在逐步解除,于是再次增加拥塞窗口。由于Vegas不是利用丢包来判断网络可用带宽,而是利用RTT变化来判断,因而可以更精确的探测网络的可用带宽,从而效率更好。然而由于网络中路由器只要缓冲了数据,就会造成RTT的变大,如果缓冲区没有溢出的话,并不会发生拥塞,但是由于缓存数据就会导致处理时延,从而RTT变大,在这种情况下,TCP Vegas降低自己的拥塞窗口,但是只要没有丢包的话,从上面看到标准的TCP是不会降低自己的窗口的,于是两者开始不公平,从而导致采用TCP Vegas的流的带宽竞争力不及未使用TCP Vegas的流。

    1.2TCP协议在无线网络中的问题

    所有上述TCP协议的不足之处是,他们都没有考虑无线网络环境的特性,即数据包丢失并不一定意味着拥塞。然而,大多数的无线数据应用(如FTP,网络,远程登录,组播等)使用TCP作为默认传输层的协议,因为它们需要实现可靠和保证交付的数据。但是TCP在无线环境下要达到正常的吞吐量已经面临了巨大的瓶颈。以下无线网络特征对TCP性能已经造成重要影响:

    (1)高比特误码率:由于无线网络的链路是有损介质,由于信道干扰,多径衰弱等原因无线网络链路相比于传统的有线网络具有很高的比特误码率。从而导致数据包损坏甚至丢包,使得发送端出现超时、重传数据包,并启动拥塞控制降低TCP的性能。

    (2)错误的丢包探测机制:标准TCP不能区分不同类型的错误(随机丢包、拥塞丢包等),它把任何丢包都看做拥塞丢包并启动拥塞控制,而不管网络是否处于拥塞状态,导致TCP性能下降。

    (3)无线链路带宽:因为无线链路的带宽有限,结点可能只能使用很少的带宽,甚至没有带宽可以使用,导致发送端超时和信息丢失的时间增多。

    (4)区域切换:蜂窝网络中,移动结点在蜂窝之间切换过程中有一个信号消失阶段。在这个阶段,移动节点与蜂窝基站失去联系不能接收到任何发送端的数据,造成发送端超时。TCP发送端会误认为这个阶段丢失的数据包是拥塞造成的,会重传这些数据并启动拥塞控制,导致TCP性能下降。

    (5)延迟的不可预测性:由于移动用户随意移动,与基站的距离各不相同,导致不同的时间延迟。这种不可预测的延迟同样影响TCP拥塞判定准确性。

    (6)能量受限:移动设备是电池供电,因此不能承受过多的重传,也就是说TCP不是一种能量高效的传输协议。

    2无线TCP协议改进

    2.1分段连接方案

    2.1.1I-TCP

    I-TCP中涉及到以下节点实体:移动主机(FH)、固定主机(MH)和移动支持路由器(MSR)。移动支持路由器和有线网络直接相连。I-TCP将发送者和接收者之间的TCP连接在基站处分为两个部分:发送者到基站的有线连接和基站到移动主机的无线连接。当MH向FH发起TCP连接,MSR建立并使用MH的IP地址与端口号的socket同FH建立TCP连接,同时建立并使用MSR自身IP地址和相同端口号的socket同MH通信。MSR缓存所有由FH发向MH的数据包和ACK。如下图,当MH由于移动发生切换时,新的MSR建立同原MSR相同的俩个socket,同时原MSR将缓存的数据包和ACK发给新的MSR继续通信。

    2.1.2M-TCP

    M-TCP是一种分段连接的方法,它的体系结构可以这被看作三层。在最低层移动主机(MH)和每个蜂窝的基站通信;多个基站由一个监视主机控制;最上层是SH和固定主机FH通信。与I-TCP中基站一旦收到FH的数据即发送确认不同,M-TCP中只有当收到来自MH的确认时才发送确认到FH,从而维持了TCP端到端的特性。另外M-TCP还采用了零窗口通告机制,通过检测发往无线节点的数据包和ACK包的变化来判断无线链路的状态,并通过发送窗口为0的ACK包使得固定节点的TCP协议进入保持状态,从而使TCP连接不会由于无线链路的误码而中断。因此可以有效处理无线链路上发生的丢包。然而M-TCP的缺点是基站的任务过于复杂。

    2.1.3METP

    METP在无线链路中使用较小的报头的数据报文取代TCP报文,METP使用标准TCP协议完成BS与FH间通信功能,BS缓存FH的数据包,同时在无线链路使用较小的头的分组来减少了带宽要求和误差概率。METP还利用的链路层的ACK和重传,使丢失的数据包快速地在无线链路中恢复。METP接收端定期发送反馈包通知METP发送端,接收端缓冲区空间大小,可以减少由于在接收端缓冲区溢出导致的丢包。然而METP不能有效的处理频繁断开的情况,因为它有非常高的切换延迟,当发生切换时旧的BS中的所有缓冲分组必须被移动到新的BS中。

    2.1.4总结

    这类方案有将移动主机(MH)和固定主机(FH)间的TCP连接在基站处分成两段(MH到基站的无线段和基站到FH的有线段),在有线和无线链路段分别采取不同的拥塞控制策略,有线链路段使用标准TCP;无线链路段则采用适于无线环境的改进协议,有线链路传输速度速度快且误码率低,而无线链路速度依然很慢(相对于有线链路而言),并且容易受到噪声干扰和信道衰落的影响。在同时包含有线和无线两种链路的网络中对这两种性能相差很多的链路使用同样的流量控制和拥塞控制,无线链路显然会成为系统性能的瓶颈,将其分开进行处理有利于提高链路的利用率,但这类方案破坏了TCP连接的端对端语义,且需要修改移动主机和中间结点的TCP协议。

    2.2端到端连方案

    2.2.1Freeze-TCP

    Freeze-TCP用于解决主机移动所引起的丢包,Freeze-TCP的思想是让移动主机监测无线信号的能量,并检测出即将发生的主机切换事件,当切换即将发生时,移动主机向发送者发送一个通告窗口为零的反馈,从而迫使发送者进入零窗口探测模式,在零窗口探测模式中,发送者不会改变它的拥塞窗口和超时计时器的时长,一旦切换操作结束,移动主机连接到新的子网,它向发送者发送连接中断前最后接收到数据的3个重复ACK,以便使发送者能够解除零窗口探测模式并迅速发送数据,使用Freeze-TCP后,发送者可以在切换结束后立即使用原来的窗口重新发送数据,Freeze-TCP提高了TCP在切换时的性能。

    2.2.2TCP WESTWOOD

    TCP Westwood采用了带宽估计思想,发送端通过观察返回ACK的时间间隔,估计端到端链路上的可利用带宽。TCPW在慢启动和拥塞避免阶段的窗口增长方式没有改变,仍然与标准TCP相同。当检测到网络拥塞时通过带宽估计值来设置拥塞窗口和慢启动阈值,从而避免了与传统拥塞控制机制一样采用保守的策略大幅度减小拥塞窗口和慢启动阈值。TCPW通过对带宽的准确估计,当发生拥塞时使用与当时有效网络带宽相一致的慢启动阈值和拥塞窗口值充分利用重传之后的网络资源。

    2.2.3TCP VENO

    TCP-veno是一种端至端的拥塞控制机制,它可以有效地处理随机分组丢失。它利用类似Vegas的机制来估计连接的状态,并应用TCP-reno的AIMD方案。它通过感知网络拥塞级别调节慢启动的阀值,而非固定的减半。VENO采用Vegas的方法计算中间路由节点队列积压值,并根据队列积压值判断网络是否拥塞。如果检测到分组丢失时,且网络处于拥塞状态时,veno将丢包视为拥塞丢包;否则,视为随机丢包。

    2.2.4总结

    Westwood,veno尝试计算可用带宽的估计值来计算拥塞窗口和慢开始阈值,试图选择与网络拥塞时网络有效带宽相一致的慢速启动阈值和拥塞窗口。Freeze-TCP通过冻结重传定时器和拥塞窗口防止切换引起的超时和窗口减半。然而实现Freeze-TCP,网络协议栈需要知道主机的移动性。MH必须在一个RTT内预测即将发生断线;否则,性能将退化为标准TCP。

    2.3显示通知方案

    2.3.1ECN

    ECN(Explicit Congestion Notification),采用RED算法通过对数据报设置ECN比特来标识网络发生拥塞。基本思想是:当路由器发生在早期拥塞时,不是丢弃分组,而是尽量对分组进行标记。ECN是由RFC2481推荐规范的。IPv4的IP头标中的TOS域的第6、7位被设置为ECN域,第6位为ECT(ECN-CapableTransport)位,第7位为CE(CongestionExperienced)位。ECT位由数据发送方设定,协商网络是否支持ECN功能(ECT=1,支持;ECT=0,不支持)。CE位由路由器设定,通告终端节点网络的缓存已经快溢出(CE=1,有拥塞;CE=0,缓存工作正常),接收方接收到带有ECT的分组后,马上返回带有ECN-echo的ACK通知发送方网络已经发生拥塞,从而控制发送速率。

    2.3.2ELN

    ELN(Explicit Loss Notification),为提高无线网络的TCP性能,一般将长的TCP连接分割成几段短的连接,即Split TCP或者TCP Spoofing,用ELN方法来通知发送方目前的分组丢失与网络拥塞无关,相应的,发送方的拥塞控制机制就削减为简单的重传机制,避免不必要的降低吞吐量。接收方知道分组的丢失不是因为拥塞,则在TCP头标中将相应的ELN位置位,并通过ACK将信息回传给发送方。设置ELN的主要依据是由MAC层的循环冗余校验CRC(CyclicRedundancy Check),当数据分组传输错误时,链路的本地重传策略将重传每个传送失败的分组,直到成功为止。在ELN中,链路层重传超过一定次数后,将链路故障消息发送给传输层,也就是设置ELN标志位。ELN不再仅仅把分组丢弃,而是将带有ELN标志位的数据发给接收方,通知高层当前网络的链路特性。

    总结

    显示通知是一种为发现网络中出现的早期拥塞并提前采取措施来避免和控制拥塞的机制,通过低层通知TCP发送方目前网络的拥塞状况,使得TCP发送方能够及早发现网络拥塞,避免了路由器的缓存溢出,减小了丢包率,缓和网络的拥塞,又保证网络有较高的吞吐量。以上方法需要中间节点和终端主机都支持显示通知机制。在所有的方法中,发送者通过网络中的显式反馈判断当前丢包是由于网络拥塞还是其它因素。从而防止错误地调用拥塞控制算法导致TCP性能的下降。

    2.4链路层重传方案

    2.4.1snoop

    Snoop协议应用于在链路层,Snoop引人针对TCP数据包的ARQ机制,以解决无线信道上的比特差错问题;当数据由SH向MH传输时,Snoop在基站的代理缓存数据包并转发MH。Snoop通过两种方法检测数据包在无线信道上的丢失情况,一种是通过在链路层设置类似TCP的超时重传计时器,另一种是在链路层检测反向路径是否出现DupACK。当第一次出现DupACK时,Snoop重发丢失的数据包,并且丢弃随后的DupAcKs,当数据由MH向SH传输时,基站Snoop检测收到的数据报文顺序号是否不连续,一旦发现不连续,则通过显式丢失通知ELN反馈移动主机需要重新发送的数据报文。

    2.4.2DDA

    DDA(Delayed Duplicate Acknowledgment),标准TCP中的快速重传法虽然可以减轻切换造成的性能衰退,但对高误码率的情况效果不大,延迟重复确认法采用对重复确认进行延迟发送的机制,使发送端重传丢包之前,无线链路层能进行局部重传。该方法对时延带宽值大的无线应用环境TCP性能有明显改善。DDA通过BS重传无线链路丢失的分组来屏蔽TCP层数据丢包,同时TCP接收端延迟发送第三个重复ACK,如果延迟足够大,允许链路层在TCP接收端发送第三个重复ACK前重传丢失的数据包,由于TCP发送方没有收到两个以上的重复ACK,它不会触发快速重传,从而保证TCP性能。

    2.4.3总结

    链路层重传的方法独立于TCP层协议,这些方案试图通过链路层重传减少无线链路的高误码率对TCP性能的影响,但不能处理移动切换及频繁连接断开导致的TCP协议调用拥塞控制算法。

    2.5性能分析对比

    由于不同无线TCP协议改进的目标各不相同,解决的问题也不相同,如无线链路高误码率,移动切换,频繁断开,能量受限等,因此对上述无线TCP协议做一个全面的比较并不容易。

    上述大多数无线TCP协议的保持了TCP端到端的语义同时高效解决无线链路高误码率的问题。部分协议针对无线环境下移动端点频繁断开与切换的问题。通过研究现有的协议,表明如果我们要设计一个高效的无线网络TCP协议,该协议必须满足可以检测频繁的断线和切换事件。同时为了满足兼容性问题,该协议必须满足对现有协议进行较小的修改。所以修改MH端点的协议要好过修改FH端点的协议。由于无线路径上误码率与数据包的大小成正比,所以也可以通过最小化数据包大小,降低无线网络丢包问题。

    如果下层可以通知传输层TCP连接断开或者MH进行蜂窝切换,MH可以通过探测beacon信号强度,来预测即将断开或者切换的TCP连接。MH通过ACK数据包通知FH。FH暂时禁用拥塞控制策略(如定时器,指数退避,和所述传输窗口的缓慢生长)。当MH重新连接,它重复发送最后ACK并通知FH已经重新连接。此时,FH可被允许重新传输,并重启拥塞控制算法,从而可以避免切换或连接断开引起不必要的窗口降低。

    为了在TCP层实现实时切换和漫游,切换时延必须最小化,所以需要智能路由和缓冲技术。当移动主机检测到即将发生断线,它会通知BS,然后开始转发传入数据包到附近的基站。当切换完成后,新的BS开始发送缓冲的数据包。在无线网络中采用基于RTT的拥塞控制算法可能并不准确,因为延迟在无线网络中是随机的,同时也可能由于节点的运动而产生波动。

    另一种检测拥塞的方法是显式通知,通过中间节点路由器控制网络拥塞,当路由器缓存队列趋于饱和,即拥塞即将发生,中间节点对队列中数据包进行标记。接收端接收到明确网络通知之后,采取适当的措施,以减少网络中的数据包的数量。

    3 结论

    标准TCP将丢包作为网络拥塞的标志,并调用拥塞控制和避免程序。而标准TCP不能将无线网络中,信道干扰,切换,断开等导致的丢包同拥塞丢包区分开。因此,标准TCP在无线环境下,性能明显衰退。在本文中,我们对现有不同的解决方案进行了比较和分类,并已表明,没有一个解决方案,满足高效率的解决增无线网络中TCP存在的所有问题。

    同时我们前面的讨论清楚地表明,这是很难建立一个满足所有要求的无线TCP拥塞控制算法。链路层重传方案通过使用TCPSACK和链路层本地重传,可以提供比其他方案显著性能改进。在显示通知方案中,ECN和ELN是最常用的方案。如果端到端之间的路由频繁变更的话,ELN的性能将优于ECN。在分段连接的方法中,虽然TCP性能的增加,但代价是破坏端到端的语义,同时占用BS的大量缓存,增加了BS的负载。端至端方案中,主要是通过估计带宽的可用值判断无线网络的丢包是否是拥塞导致,没用解决无线网络高BER和区域切换的问题。因此如何跟全面高效的解决无线网络TCP性能的问题依然值得研究。

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2024/12/23 4:12:28