Ad_hoc网络中TCP性能分析及改进研究
- 格式:pdf
- 大小:253.54 KB
- 文档页数:4
2007年第24卷第9期微电子学与计算机
1引言
传统TCP协议是一种针对有线网络设计的可
靠传输协议,把丢包当做网络拥塞的标志,通过启
动拥塞控制机制减小发送速率来缓解网络拥塞[1]。在Ad-hoc网络中,除拥塞外,无线信道的高误码
率、路由频繁中断、多跳连接竞争共享的无线信道
等都会引起丢包。传统TCP协议直接应用于Ad-hoc网络时,它会把由非拥塞情况引起的丢包当作
拥塞来处理,从而启动不必要的拥塞控制机制,使TCP性能受到严重影响。文中从Ad-hoc网络自身特点出发,并结合TCP协议,对造成Ad-hoc网络TCP性能下降的原
因进行深入分析。提出了一种针对MAC层协议的
参数优化法,NS2仿真实验证明,该方法能够有效
提高Ad-hoc网络多跳情况下的TCP性能。
2Ad-hoc网络中的TCP性能分析
鉴于TCP/IP已经成为事实上的Internet标准
协议栈,作为Internet扩展的Ad-hoc网络也将广泛
采用它,因此分析TCP的性能并研究如何使其适应于无线Ad-hoc网络环境变得尤为重要。2.1无线多跳性对TCP性能的影响
在网络协议栈中,MAC协议主要解决当信道使
用产生竞争时分配信道使用权的问题。目前,IEEE802.11DCF已被广泛地接受为Ad-hoc网络的
MAC层协议,但它本身是针对单跳无线网络设计
的,当应用于Ad-hoc网络时存在着很多不适应,其
原因在于Ad-hoc网络是多跳共享竞争的无线信
道,存在着隐藏节点和暴露节点现象[2],进而引发
TCP的不稳定性和不公平性问题。
(1)隐藏节点情况如图1所示,根据TCP传输
机制,当A发送给C的数据经过B时,由于C侦听
不到A的发送,认为信道空闲,便发送ACK,结果与A发送的数据在B处产生冲突,最终导致节点B正
在接收的数据丢失,使TCP性能受到影响,此时C就是一个隐藏节点。
为解决隐藏节点问题,802.11DCF协议采
用收稿日期:2007-06-17基金项目:四川省教育厅项目(2005004028)国防科工委项目(2006A3120060264)Ad-hoc网络中TCP性能分析及改进研究
杨欢,江虹,陈容
(西南科技大学信息工程学院,四川绵阳621010)
摘要:对引起Ad-hoc网络TCP性能降低的原因进行了分析,并针对Ad-hoc网络的多跳特性对TCP性能的影响,提出了一种通过增大MAC层最小竞争窗口来减小信道竞争压力的参数优化法。NS2仿真实验结果表明提出的方案能有效地改善Ad-hoc网络的TCP性能。关键词:Ad-hoc网络;TCP性能;拥塞控制;NS2中图分类号:TP393文献标识码:A文章编号:1000-7180(2007)09-0045-04
AnalysisandImprovementforTCPPerformance
inAd-hocNetworks
YANGHuan,JIANGHong,CHENRong
(SchoolofInformationEngineering,SouthwestUniversityofScienceandTechnology,Mianyang621010,China)
Abstract:ThispaperanalysesthereasonsthatcausepoorTCPperformanceinAd-hocnetworks,andproposesaparameteroptimizationschemeagainstthemulti-hopscharacteristicofAd-hocnetworks.TheproposedschemecanreducethepressureofchannelcontentionbyincreasingtheminimumContentionWindowinMAClayer.SimulationresultsshowthattheproposedschemecanimprovetheTCPperformanceefficiently.Keywords:Ad-hocnetworks;TCPperformance;congestioncontrol;NS245微电子学与计算机2007年第24卷第9期
RTS/CTS机制来减少多个节点同时发送数据可能造
成的冲突。根据其二进制退避算法(BEB),当某节点
想要与其他节点通信时,随机退避一段时间Backoff_time=rand[0,CW-1]×SlotTime后(CW为当
前竞争窗口),节点发送RTS来预留信道,若发送端
在规定时间内未收到接收端的CTS帧,就加倍其CW,选择新的退避时间重复以上操作。CW1=CWmin,CWmax=27×CWmin。若节点发送成功,CW被重置为CWmin。显然,成功发送后的节点退避时间短,处于竞
争优先地位;节点传输失败次数越多,接入信道的
机会就越小,从而导致接入信道不公平性,使TCP性能下降。在图1中,根据RTS/CTS机制,当节点A需要
发送数据给B时,它会先发送一个RTS给B,在收
到B返回的CTS后,A便开始发送数据。由于C能
侦听到B发送的CTS,知道B正在接收数据,在该CTS帧包含的数据传输持续时间内,C不会向B发
送ACK。可见,RTS/CTS机制能较好地解决隐藏节
点问题。(2)RTS/CTS机制不能解决扩展的隐藏节点问
题。如图1所示,如果A发送给D的数据正经过B,通过RTS/CTS机制,C之前会收到B的CTS,而D收不到B的CTS。若D要发送ACK给C,D便先会
发送RTS给C请求建立连接,而C之前收到了B的CTS,知道信道非空闲,在该次数据传输结束之
前,不会发送CTS给D,此时D就是一个扩展的隐
藏节点。D在一定时间内没有收到C的CTS,便采
用BEB算法,增大CW后重新选择一个退避时间等
待再次接入信道。如果A有大量的数据要发送给B,根据成功传输节点处于竞争有利地位的原则,D
很可能再次竞争不到信道。当D连续7次发送RTS给C都未收到C的CTS,则会向上层发送路由失败
消息(RouteFailureNotification,RFN),网络层收到RFN后,继而进行复杂的路由发现过程。在找到新
路由前,所有存储在中间节点的需要利用该失败路
由转发的数据包均会被丢弃,TCP协议会把这种丢
包现象误认为拥塞,并进行不必要的拥塞控制,使TCP的吞吐量降低、稳定性变差。
(3)RTS/CTS机制同样不能解决暴露节点问
题。图1中,在C转发数据给D之前,会先发送一个RTS给D,收到D返回的CTS后,C便向D发送数
据。如果B需要转发ACK给A,由于它侦听到了C的发送,知道信道繁忙,便会推迟向A发送ACK,实
际上B向A的发送不会影响C向D的数据传输,此时B就是暴露节点。同样,节点B的发送不成功,便会采用BEB算法退避一段时间后再次尝试接入
信道。若连续7次发送RTS都未收到相应的CTS,便会报告路由失败,随后会进行不必要的路由发现
以及拥塞控制,而致使TCP的吞吐量下降、稳定性
变差。通过以上分析可知,Ad-hoc网络中扩展的隐藏
节点、暴露节点问题会使TCP性能下降。随着跳数
增加,隐藏节点、暴露节点会增多,TCP吞吐量降
低,稳定性也会变差。为了验证上述理论分析结果,文中采用NS2网络仿真软件,对Ad-hoc网络多跳
情况下对TCP性能的影响进行仿真。仿真环境为1500m×1500m的正方形区域,拓扑结构为由7个节
点组成的静态链式拓扑,相邻节点间的距离为200m,节点通信半径为250m,MAC层协议为
802.11DCF,路由协议为AODV,TCP、ACK分组大小
分别为1040字节和40字节,只在选定的发送端和
接收端之间建立一条TCP连接,仿真时间为150s。此次仿真称为实验1。结合前面的分析知,1跳情况下,由于802.11DCF工作在单跳Ad-hoc网络时,不存在隐藏节点、暴露节点,分组无需竞争无线信道,所以1跳时的
丢包率为0(如图2所示),TCP瞬时吞吐量稳定性
较好(如图3所示)。当跳数为2时,由于RTS/CTS机制能够解决隐藏节点问题,仍然不存在丢包现
象,瞬时吞吐量较稳定。3跳时,同时存在的扩展隐
藏节点与暴露节点的情况,使分组必须在每一跳竞
争信道,并只能在一跳内成功传输,因此3跳时,会
出现因目的端ACK无法接入信道而发生假的路由
中断,开始出现丢包。4跳时,扩展的隐藏节点和暴
露节点增多,数据包和ACK竞争信道的情况更严
重,丢包率明显增大,瞬时吞吐量剧烈抖动,有5次
达到了0。当跳数>4时,TCP源端与接收端相距较
远,分组可以在多跳链路上同时传输,丢包与稳定
性的情况有所改善。462007年第24卷第9期微电子学与计算机
2.2节点的移动性对TCP性能的影响
在Ad-hoc网络中,由于节点的移动性,经常会
发生路由中断。此时,中间节点会丢弃缓存中的数
据包,而TCP会把当前网络状态误判为拥塞进而进
行拥塞控制。由于路由已经中断,在RTO超时之前,TCP源端无法收到目的端的ACK,便会采用退避策
略重传数据包,并把RTO加倍,直至源端收到ACK。同时源端会减小发送速率,将慢启动门限设
置为当前拥塞窗口(cwnd)的一半,然后将cwnd置1,开始慢启动过程。这些措施对网络拥塞引起的丢
包有效,对于由路由中断带来的丢包则不合理。如
果路由重建不成功,TCP源端尽管减小了cwnd,但
重传只会使更多数据包丢失,浪费了带宽和节点有
限的能量;如果路由重建成功,源端会从慢启动阶
段以较小的速率恢复数据传输,增加了通信时间,造成TCP性能下降。以上分析通过实验2验证,本次仿真环境设置
为:30个节点在600m×600m的区域内,分别以1m/s、5m/s、10m/s、20m/s、30m/s、40m/s、50m/s、60m/s
的平均速度随机运动。场景中采用FTP业务流,随
机建立5条TCP连接,TCP与ACK分组大小分别
为552字节和40字节,路由协议采用AODV,仿真时间为300s。每一种平均速度下的分析结果都是对10组随机场景进行仿真后取得的平均值。从图4中
可以看出,当节点移动速度增加时,路由中断的概
率相应增大,结果导致端到端的平均吞吐量降低。
3相关工作
目前,国内外对于Ad-hoc网络中TCP性能的
研究,主要集中在分析并解决多跳连接、节点移动
导致路由中断这两个特性及其对TCP性能的影响
上。针对多跳性对TCP的影响,很多工作集中在MAC层,如文献[3]中提出一种在不同链路误码率的
情况下,适当增加重传门限来提高TCP吞吐量的方
法。针对Ad-hoc网络路由中断的TCP改进方案有
两类:一是利用网络层的反馈信息来提高TCP性
能,如TCP-F、TCP-Bus等;二是基于端到端的拥塞
控制方案,如FixedRTO、TCPDOOR等。
4针对Ad-hoc网络中多跳特性的TCP性能改进
在Ad-hoc网络中,802.11DCF协议不能很好
地解决多跳情况下的信道竞争问题,因此使TCP性
能受到影响。由前面分析知,当节点连续7次未能
接入信道时,则会误认为是路由中断,进而报告路
由失败。为避免这种情况,文中提出了一种针对MAC层BEB算法的参数优化法,即通过增大
802.11DCF的最小竞争窗口CWmin来改善TCP性
能。CWmin增大,发送RTS的退避时间会增大,节点
竞争信道发生冲突的概率减小,同时也减小了发送