TCP拥塞控制研究硕士论文.docx
- 文档编号:6976903
- 上传时间:2023-01-14
- 格式:DOCX
- 页数:14
- 大小:225.41KB
TCP拥塞控制研究硕士论文.docx
《TCP拥塞控制研究硕士论文.docx》由会员分享,可在线阅读,更多相关《TCP拥塞控制研究硕士论文.docx(14页珍藏版)》请在冰豆网上搜索。
TCP拥塞控制研究硕士论文
TCP拥塞控制研究
摘要:
拥塞控制已成为确保Internet稳定性、鲁棒性的关键因素。
由于TCP协议总是认为丢包是网络拥塞所造成的,使得其在高误码率的无线信道中性能下降较大。
提出一种无线网络中TCP的拥塞控制算法。
应用该算法,源节点能够在发生拥塞时迅速降低发送速率,以缓解拥塞;也能在无线信道丢包时,迅速重传,避免网络资源浪费。
仿真结果表明,该算法能够较好地适应无线环境,使TCP的性能提高大约5%一18%。
针对目前TCP拥塞控制机制中存在的实际问题,提出了一种新的拥塞控制机制,包括COS-Slow-Start和A-AIMD两种改进策略。
NS2仿真实验结果表明,该机制能有效地减少分组的丢失、平缓突发流量的冲击,并可增加带宽的有效利用率。
关键词:
TCP拥塞控制慢启动拥塞窗口门限阈值往返延迟时间超时重传NS2仿真无线TCP拥塞控制算法吞吐量丢包率
TCPcongestioncontrolresearch
Abstract:
ThecongestioncontrolisamostimportantprotocolwhichimprovestheinternetSstabilityandrobustness.AnewcongestioncontrolalgorithmforTCPinwirelessnetworkisproposed.Inthisalgorithm,thesourcecanreduceitssendingratewhencongestionoccurs,andquicklyretransmitwhenpacketsdropduetowirelesschanne1.Simulationresultsshowthatthealgorithmworkswellinwirelessenvironment.andtheperformanceofTCPisimprovedbyfrom5%to18%.ThecurrentstandardTCPcongestioncontrolmechanismanditsactualproblemareinvestigatedAnewvariantcongestioncontrolschemecomprehendsCOSSlow—StartandA-AIMDarepresented。
Finally,NS2simulationresultsshowthatitcansignificantlyreducebothpacketlossesandtrafficburstiness,andincreasethebandwidthutilizationratio.TCPperformspoorlyinhighbiterrorratewirelesschannelbecauseoftheassumptionthatpacketslossisalwaysasignofcongestion.
Keywords:
TCPcongestioncontrol;slow-start;cwnd;ssthresh;round-triptime(RTT);retransmissiontimeout(RTO);NS2simulation;WTCP;algorithm;Throughput;Packets;drop;rat
0引言
随着Internet迅速发展,网络在过去几十年里经历了爆炸式的增长。
由于资源容量和处理能力有限,使得拥塞问题日益严重,拥塞现象已成为制约网络发展的瓶颈。
1986年lO月,由于拥塞崩溃的发生,美国LBL到UCBerkeley的数据吞吐量从32Kbps跌落到4Obps⋯。
为了保证Internet稳定发展,人们对拥塞控制展开了大量的研究,先后提出了多种算法。
最初由V.Jacobson提出的TCPahoe采用了“慢启动”和“拥塞避免”机制。
TCPReno在此基础上增加了“快速重传”和“快速恢复”。
TCPNewReno则是对Reno中“快速恢复”算法的有效补充。
TCPSAcK使用了“选择性重复”策略,通过动态应答反馈给发送端一份完整的信息来确定分组丢失,这也仅在一定程度上解决了多个分组的丢失问题。
TCPVegas虽然在分组丢失前对路由进行检测,测到即将发生的丢包就线性降低速率,从而限制窗口的指数增长,但仍无法避免一个窗口中多个分组的丢失,并在一定程度上降低了网络性能。
随着通信网络技术的发展,无线通信和移动计算的需求在持续地增长,无线网络在未来因特网中无疑将扮演极为重要的角色。
无线局域网、蓝牙、移动通信、Ad—hoc网络等无线网络技术极大地推动着无线和移动因特网技术的发展。
但是无线网络呈现的特性使得传统传输控制协议TCP由于设计本身的局限,无法良好地服务无线网络,改进传统的TCP以适应无线网络环境便成为国际上的一个研究热点。
目前的TCP拥塞控制大多采用和式增加积式减少AdditiveIncreaseMultiplicativeDecrease(AIMD)算法,其主要优点是能快速地获得网络中的可用资源。
而当网络拥塞程度加剧时,又能急剧降低数据发送速率,迅速减轻网络拥塞。
但也正因为如此,致使其窗口速率波动较大,资源利用率不高(通常只有75%左右)。
针对上述现象,本文首先分析了现有的拥塞控制机制及出现的问题,然后提出了一种新的拥塞控制机制(包括COS.Slow.Start和A.AIMD两种改进策略)。
最后通过网络仿真软件NS2对新策略进行了仿真。
实验结果表明它能有效地改善网络性能。
传统TCP把所有的分组丢失简单归因于网络拥塞策略的盲目性,严重恶化了无线环境中TCP的性能。
无线链路的特性主要表现在很高的链路误码率、有限的带宽、较大的时延和时延抖动、终端的移动性、能源消耗约束等方面。
要实现理想的控制策略,一方面在可能的前提下要尽量减少误码丢包、避免重传;另一方面要能区分无线误码造成的数据丢失和网络拥塞造成的数据丢失,采取不同的控制策略。
目前,关于无线TCP拥塞控制算法的成果有很多,如文献[1—3]。
它们虽然提高TCP的性能,但大多引入了接收方、基站或者数据链路层的反馈,增加了实现的复杂度。
本文提出的TCP拥塞控制算法较为简单,由于是在TCPReno上作的改进,故称之为ModifiedReno(简称M—Reno)。
NS一2仿真表明:
M—Reno能够较好地适应无线环境,提高TCP的性能。
1现有的拥塞控制机制
据统计,由于本地缓存溢出Internet网关会丢弃约10%的数据包,而互联网中95%以上的数据流量是通过TCP传送的0。
为了保证Internet的稳定性,TCP拥塞控制采用了较保守的AIMD算法,它可分以下4个步骤(如图1所示,其中MSS为最大分组长度):
①当拥塞窗口(cwnd)小于门限阈值(ssthresh)时,采用慢启动机制来获得网络可用带宽。
收到每个应答包后,cwnd=cwnd+1;②当cwnd大于ssthresh时,进入拥塞避免状态,并尽可能地重新探测网络可用带宽。
收到每个应答包后,cwnd=cwnd+l/cwnd;③当收到三组重复应答返回报文ACK时,采用快速重传机制重发ACK指示的数据包,并利用快速恢复机制对cwnd和ssthmsh重新赋值,避免进入慢启动阶段,ssthresh=cwnd2;④当重传定时器retransmissiontimeout(RTO)超时时,不得不再次进入慢启动阶段。
这种基于窗口的端到端拥塞控制机制对~temet上大批量文件传输等尽量做好型服务具有较好的适应性,但在现代网络高带宽低延迟的环境下,它已被证明是极其低效的。
一个典型的例子脚:
有一条7.2Gbps的链路,设I是100ms,TCP数据包大小是1500byte,TCP流的发送窗口峰值可达80000。
当一次分组丢失后,发送窗口减半,那么发送端需要40000个I时间来恢复到它丢失前的发送速率,约需要近70分钟时间。
这意味着链路将在相当长的一段时间得不到充分利用。
速率增长过慢减少过快是AIMD的主要问题。
针对以上问题,研究人员尝试性地提出了一些新的TCP改进算法,典型的有Scalable-TCP,HighSpeed-TCPFAST-TCPt6]
等,但各具优势。
2新的拥塞控制机制
有统计表明,“慢启动”对短生命期连接较重要,而“拥塞避免”对长生命期连接更重要。
为了有效地提高短生命期连接的传送效率并改善长生命期连接的启动和丢包重发过程,本文分别从慢启动和AIMD两个方面对原有的拥塞控制机制
进行改进。
2.1COS-Slow-Start
首先,我们提出一种基于余弦函数的新的慢启动策略:
COS-Slow-Start。
定义拥塞窗口cwnd从1个分组开始,以余弦函数的增长方式来逐步执行慢启动过程(如图2所示)。
为了便于分析,我们以ssthresh/2为界,把慢启动分成前后两个半程,并假设慢启动阶段所有分组在往返延迟时间I内都正确返回应答报(ACK),所有RTT均相等。
由图2可以看出,由于原TCP慢启动拥塞窗口cwnd从1开始以2的指数幂增长方式来探测网络可用带宽。
cwnd~J达门限阏值ssthresh将耗费多个往返延迟时间RTT,使得发送窗口远小于路径带宽延迟乘积,这样短生命期连接的可用带宽利用率较低。
同时,由于拥塞窗口按指数增长,后半程(cwnd>ssthresh/2)递增太快,这在一定程度上增加了丢包风险。
而瞬间发送过多的分组,往往导致瓶颈链路阻塞严重,引发多个分组丢弃。
接着超时重传的拥塞退避机制可能导致网络的全局同步,引起整个网络的流量负载和排队延迟的抖动,使得TCP性能大幅下降。
而采用了新的慢启动算法COS-Slow-Start后,前半程(cwnd<=ssthresh/2)增大发送分组量,以较快地获得网络可用带宽,提高了网络的利用率。
后半程逐步减小窗口增长速度,平滑从慢启动阶段过渡到拥塞避免阶段,从而达到既减少了慢启动阶段前期所经历的时间,又降低了后期突发流量对网络的冲击,有效地改善了网络的稳定性,提高了带宽的利用率。
用数学表达式描述如下:
式中:
cwnd——拥塞窗口,ssthresb——门限阈值,r往返延迟时间I的数目。
因为cwnd是基于分组发送的,只是按字节计数而已,而每个点的余弦函数值并非整数,所以我们引入取整符号来修饰cwnd值。
为了避免慢启动阶段初期cwnd开的过大,引起不必要的分组丢失重传,前半程cwnd向下取整。
同时,为了平滑稳定地进入拥塞避免阶段,不致于引起过多的流量颠簸,后半程cwnd向上取整。
而由于cos(re/2)=0即cwnd上升曲线最高点斜率为0,此时拥塞窗口将不再增长。
为了更好地与原标准TCP拥塞避免阶段衔接,特规定:
①当ssthresh—cwnd>tr时,采用上述所提出的改进后的慢启动算法,见上文表达式);②当ssthresh-cwnd~a时(如图2所示),则采用标准的TCP拥塞避免算法,cwnd=cwnd+1/cwnd.a为调节因子。
理论上d取值越小,cwnd上升曲线由慢启动过渡到拥塞避免阶段越平稳。
但仃过小会使得cwnd上升曲线在慢启动阶段末端过于平缓(因cwnd曲线斜率为0),反而影响到向拥塞避免阶段的平稳过渡。
经实验我们取a=2。
2.2A-AMID
根据文献】引入一种可调参数的AIMD(a,b)算法——A-AIMD,当a、b取不同值时可得到不同的拥塞控制机制。
显然若取较小的加性因子am乘性因子b时,可大幅度降低窗口发送速率的波动,充分利用网络资源(如a=1/5,b=1/8时,资
源利用率可达93.75%)。
然而较小的a、b却难以快速获得网络可用资源,且当拥塞程度加剧时,与原TCP相比,窗口的发送速率下降较慢,不能迅速缓解拥塞。
基于上述原因,我们把整个AIMD分成暂时态S1和稳定态S2,设:
条件1当窗口速率的波动△w>δ时,系统转至暂时态S1;
条件2当窗口速率的波动△w≤δ时,系统转至稳定态S2。
Aw为窗口发送速率的波动量,6为状态迁移门限因子。
由图3可知,整个拥塞控制机制有3种工作状态:
基于COS.Slow.Start的慢启动态S0,基于AIMD(al,b1)的暂时态S1和基于AIMD(a2,b2)的稳定态S2。
a1b1以及a2,b2的选取满足条件:
口=3b/(2—6)且(al>a2,bl>b2),以确保资源的公平竞争。
也就是当系统处于暂时态S1时,调用基于A1MD(al,b1)的拥塞控制机制;而当系统处于稳定态S2时.则调用基于AIMD(a2,b2)的拥塞控制机制。
系统状态迁移可用上述条件1和2来判断。
A-AIMD的具体实现过程如下:
(1)建立连接或重传定时器RTO超时,系统处于慢启动态S0,采用新的慢起动策略:
COS-Slow-Start。
直到拥塞窗口cwnd达到门限阈值ssthresh,之后转至
(2)。
(2)调用AIMD(a1。
b1)算法,系统处于暂时态S1,同时检测此状态下窗口的平均发送速率W。
直到窗口平均速率的波动量Awd,于等于门限因子,之后转至(3)。
(3)调用AIMD(a2,b2)算法,系统处于稳定态S2,同时检测此状态下窗口的平均发送速率W。
直到窗口平均速率的波动量Aw大于门限因子,若为重传定时器RTO超时则转至
(1),否则转至
(2)。
3仿真与验证
为了验证新策略的有效性,我们采用了U.C.Berkely大学LNBL研究小组开发的网络模拟器NS2.28作为仿真工具,在Linux9.03操作系统下,对图4的拓扑结构进行场景模拟。
其中S1至Sn为发送端,D1至Dn为接收端,它们分别到路由器
R1、R2的链路带宽均设为10M,延迟为2ms。
瓶颈链路出现在R1与R2之间,带宽设为1.5M,传送延迟为50ms,ssthresh取接近于网络实际带宽的近似值。
为简化分析,我们设路由器缓存为20个分组大小,发送端以每个分组1K大小,连续发送1MFTP单向数据流。
我们采用增加COS-Slow-Start后的A-AIMD算法与原算法进行比较,路由队列管理采用FIFO和
Drop—Tail策略,进行了多组实验。
随着发送端联入链路的连接数逐渐上升,新算法的分组丢失数较少,并增长缓慢(如图5所示),优于原算法。
由于在新算法中,慢启动阶段的后半程(cwnd>ssthresh/2)曲线上升较为缓慢,同时稳定态选取了较小的加性因子a和乘性因子b,大幅度降低了窗口发送速率的波动,使突发流量平缓地进入网络,从而避免了不必要的超时重传,使得有效传
送时间(发送时间与传输时间之和)和分组丢失数都优于原算法,而且又充分利用网络资源。
为了进一步比较改进前后的两种拥塞控制机制对队列瞬间长度的影响,我们采用了RED队列管理算法进行对比实验,发现新算法的路由瞬间队列长
度小于原算法(如图6所示),可见新的拥塞控制机制还有利于改善路由器的队列管理性能。
给出的公式:
对于TCP数据流,有:
W——平均发送窗口,P——平均丢包率。
由于新策略增大了慢启动发送窗口,调节了AIMD(a,b)的参数值,使得分组丢失率明显降低。
同时,当N个同等TCP连接共享一条瓶颈链路时(如图4中路由器R1、R2之间),设该路由缓存允许的最大排队数为K,瓶颈带宽延迟积为L。
如果连接符合公平性原则,那么所有窗口之和应满足N·w=K+L代入上式可得
4一种关于解决无线TCP拥塞控制算法描述
与Reno相同,M—Reno主要包括慢启动、拥塞避免、快速重传和快速恢复等阶段。
不同之处在于超时后的处理。
超时可能是由信道特性所致,此时网络并没有发生拥塞。
若采用Reno的策略将发送窗口,即cwnd置1并进行慢启动,势必会大幅降低TCP的性能。
但若以原窗口继续发送,又无法解决网络一旦发生拥塞的情况。
两者必然存在一个最优的折中点M—Reno的核心思想是:
超时后,M—Reno将cwnd和慢启动门限值(ssthresh)减半,进行拥塞避免,即cwnd=cwnd+l/cwnd。
若再次发生超时,再将cwnd减半。
该算法兼顾了两种超时的情况,符合TCP的加法增加、乘法减小(即AIMD)原理。
M—Reno算法描述如下:
·收到ACK时
如果cwnd 否则cwnd=cwnd+1/cwnd; ·定时器超时后 ssthresh=ssthresh/2; cwnd=cwnd/2; 进入拥塞避免; ·收到3个重复的ACK时 ssthresh=cwnd/2; 发送丢失的分组; cwnd=ssthresh+3: 进入拥塞避免; ·收到新的ACK cwnd=ssthresh: 5假设与算法模型 5.1模型假设 首先,假定发送一个窗口数目的数据包所需的时间远小于往返时间RTT。 其次,cwnd不受接收端通告窗口的限制。 令W表示当前发送窗口的值。 称发送W个数据包并经过一个RTT为一轮。 假设各轮发送所丢失的数据相互独立。 5.2M-Reno吞吐量计算 Reno收到3个重复ACK分组(即事件TD)后的行为作了分析,这里我们只需计算新的超时处理机制带来的吞吐量变化即可。 记T0为定时器超时后发送端的等待时间。 经过一次超时后,发送端等待,然后重传未确认的分组。 当连续第二次发生超时后,发送端的等待时间变为2*T0。 在丢失的分组重传成功之前,该参数将一直加倍,直至其上限64*T0。 令事件TO表示超时,事件TD表示收到3个重复的ACK。 记 为两个相邻超时事件的时间间隔, 为一个超时事件所经历的时间。 定义 , 表示在Si期间所发送的数据包。 那么,{[Si,Mi]}即为一组独立同分布的随即变量序列。 我们有 。 B表示长期稳态条件下TCP的发送速率,即吞吐量,单位为包/秒。 用 表示在一个 中的第j个快速恢复阶段。 定义 为该阶段发送数据包的数目, 为该阶段的时间长度, 为该阶段内发送的轮次数, 为该阶段截止时拥塞窗1: 3的大小。 另外,定义Ri为 中发送的数据包个数。 于是有: 对上面二式取均值,得 假定 是独立同分布的随机变量序列,与{Yi}和{Ai}均独立。 那么, 下面我们来推导E[n]的表达式。 注意到在 中,两个连续的超时过程中有n个TDP。 在这些TDP中,前n一1个都是以TD结尾,最后一个则是以TO结尾。 于是我们定义Q为一个TDP以TO结尾的概率。 显然有,Q=1/E[n]。 于是 由图1,P表示发生超时的概率,则: 对于较小的P,可以对式 (2)(3)作如下近似: 其中,b为一个ACK所确认的数据报的个数。 最后,我们令1—P=1从而, 6.仿真与性能比较 6.1仿真的基本设定 ns-2仿真采用网络拓扑如图2所示。 其中,链路1和链路2均为带宽为1M,延迟为10ms的DropTail型的双向链路。 链路3为带宽为1.5M,延迟为10ms的SFQ型双向链路。 为了模拟无线信道的特性,在链路3还加入了丢包模型,并在仿真中根据不同的丢包率进行了性能分析。 6.2拥塞窗口的分析与比较 图3是丢包率为0.01时,Reno和M-Reno的cwnd的变化图,其中实线表示Reno的拥塞窗口变化曲线,虚线表示M-Reno的拥塞窗13变化曲线。 在第2秒到第4秒之间,Reno由于超时经历了两个慢启动过程,而M-Reno则根据新的超时处理机制,将cwnd减半进行拥塞避免。 图3表明,上述两次超时并非网络拥塞所致,因为M-Reno的cwnd并未继续减半,而是线形增加。 6.3吞吐量的分析比较 如图4一图6所示,随着丢包率的增大,与Reno相比,M-Reno对吞吐量的提升也愈加明显。 其中实线表示Reno的吞吐量变化曲线,虚线表示M—Reno的吞吐量变化曲线。 显然.丢包率越大,拥塞造成超时的概率就越小,Reno的超时处理策略造成TCP性能下降就越大另外,通过与相应参数下cwnd变化图的比较可知M-Reno在Reno超时进行慢启动处的吞吐量性能提升最大。 吞吐量统计结果如表1所示,单位为包/秒。 7结语 统计显示,Interact中95%的数据流使用了TCP/IP协议。 本文分析了目前基于窗口的TCP拥塞控制机制对网络性能的影响,提出了一种新的慢启动策略COS.Slow-Start,并引入了可调节参数值的AIMD(a,b)策略,以期进一步改法性能,提高资源利用率。 最后,仿真结果表明该策略能有效地降低拥塞发生的可能性,减少分组的丢失,实现高效稳定的拥塞控制过程。 由于超时重传的减少,间接地提高了链路带宽的有效利用率,并一定程度上提高了路由器的队列管理性能。 但该策略依赖于ssthresh和a、b参数值的准确选取。 针对目前的不足,下一步我们将基于延迟时间RTT的有效测量以及门限本文提出了一种基于TCPReno的拥塞控制算法M-Reno。 该算法通过引入新的超时处理机制,在一定程度上解决了由于无线信道的特性造成的TCP性能下降的问题。 ns-2仿真结果表明,在无线环境下,M-Reno能够提升TCP性能4.8%一17.8%。 M-Reno主要针对无线链路的高丢包率来设计的,而对于无线终端的移动性和较大的时延和时延抖动则没有考虑。 这也是下一步我们的努力方向。 8参考文献 [1]邓晓衡,陈志刚,张连明,等.P.Start: 一种分阶段TCP慢启动机制[J].,J、型微型计算机系统,2005,26(10): 1728.1731. [2]罗万明,林闯,阎保平.TCP/IP拥塞控制研究[J].计算机学报,2001,24 (1): l·l8. [3]冯彦君,孙利民,钱华林,等.MANET中TCP改进研究综述[J]软件学报,2005,16(3): 434AA.A. [4]ChandranK,RaghunathanS.VenkatesanS.PrakashR.Afeedbackbased,~.g3,hemeforimprovingTCPperformanceinad—hot,wirelessnet—works.IEEEPersonalCommunicationsMagazine,2001.8 (1): 34—39. [5]WangF,ZhangYG.ImprovingTCPperformanceoverMobileAd—HoeNetworkswithDetectionofOut.of.OrderandResponse(DOOR).ProceedingsofMobihoc’02.June.2002. [6]KimD,TohCK,ChoiY.TCP-BUS: ImprovingTCPperformanceinwirelessadhocnetworks,lEEElnternationalConfonCominunicationsVol3.NewOrleans,LA,USA,2000.3: 1707一I7I3.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- TCP 拥塞 控制 研究 硕士论文