发明内容
本申请通过提供一种基于链路自适应的异构网络TCP拥塞控制方法,以解决由于不同链路带宽和时延的差异性以及高丢包造成TCP传输性能退化的技术问题。
为解决上述技术问题,本申请采用以下技术方案予以实现:
一种基于链路自适应的异构网络TCP拥塞控制方法(简称INVS算法),其关键在于,当拥塞窗口cwnd超过慢启动门限值ssthresh时,进入拥塞避免阶段,在该阶段中,每收到一个确认字符ACK时,拥塞窗口按如下方式进行调整:
其中,cwnd为拥塞窗口大小,cwndsp为饱和点的拥塞窗口大小,k为自适应增长因子,且其中c为常数比例因子, BWref是参考带宽,BWest为估计带宽,表示rbw取与1之间的最大值,RTTref是RTT参考值,RTTmin为RTT最小值,且RTTmin在路由变化时实时跟踪,表示rrtt取与1之间的最大值,γ为指数因子,用于减小RTT增大的不利影响。
式(1)中第一个表达式为凸窗口的增长过程,第二个表达式实现到达饱和状态后的带宽探测过程,第三个表达式实现凸函数增长阶段到网络探测阶段的过度。根据式(1),INVS在拥塞避免阶段开始时,cwnd快速增加,当cwnd接近饱和点cwndsp时减慢;当cwnd超过饱和点时,逐渐加速探测带宽,饱和点cwndsp表示带宽已被充分利用,换言之,如果发送端继续增大传输速率,将可能发生拥塞,否则说明仍有可用带宽。
k是网络和链路状态的反应,直接影响INVS的效率和公平性。为反应链路状态,k为链路带宽和最小RTT的函数,带宽和RTT的差异性通过k反应在窗口增长函数中。BWest用于体现链路环境,因此,平均带宽足以体现带宽大小且比较稳定。INVS每一个RTT估计一次BWest,并在估计中通过最小估计周期和低通滤波器消除估计带宽的抖动以获得稳态带宽,减小了因ACK时延抖动的影响,也可避免频繁计算k。
从k的表达式可以看出,k随着带宽或RTT的增大而减小。带宽或者RTT的增大会导致网络BDP的增加,即允许更多的报文同时在网络中传输。为了更有效充分利用网络资源,每收到一个ACK,cwnd增加量随着网络BDP的增大而增大,因此,当BDP增大时,k减小。当BWest>BWref且RTTmin>RTTref,k恒为c。这时由于窗口增长速率已经很快,即使带宽和RTT增大,k也不再减小。
此外,带宽增加和时延增加都会导致BDP增加,但RTT增大也会导致接收到网络拥塞信息反馈的时延增加,拥塞信息延迟会造成加剧每一次拥塞的程度,导致更多的丢包。因此,INVS引入了因子γ来降低RTT增大的不利影响。γ越小,RTT增大的不利影响越小。
进一步的,当收到三个重复确认字符ACK时,执行拥塞退避策略,并按照下式对拥塞窗口cwnd、慢启动门限值ssthresh以及饱和点的拥塞窗口cwndsp进行调整:
式中,β为乘性减因子,BDPest为链路时延带宽积估计值,bufferest为当前链路在网络中排队报文数的估计值,δ是预设的大容量链路的队列溢出门限,maxbuffer是当前链路所有bufferest的最大值,超时后重新估计,min(δ,maxbuffer)表示取δ和maxbuffer之间的最小值作为最终判决门限来区分拥塞丢包和非拥塞丢包,当收到三个重复的确认字符ACK,且当前网络中排队报文数的估计值大于或等于min(δ,maxbuffer),则判定当前丢包由拥塞引起,并采用传统的退避机制,否则,判定当前丢包属于非拥塞丢包,拥塞窗口cwnd和慢启动门限值ssthresh设为BDPest和cwnd之间的最小值;
当丢包发生时,cwnd<cwndsp表示拥塞避免阶段中本次拥塞发生较上一次拥塞发生的时间早,当前跟踪到的网络饱和点拥塞窗口cwndsp向下调整,设为否则cwndsp设为当前窗口大小cwnd以跟踪当前的网络饱和点。
作为优选的技术方案,所述常数比例因子c=2,所述指数因子γ=0.75,乘性减因子β=0.75。
进一步地,在确定自适应增长因子k时,每收到一个ACK估计一次BWest,每一个RTT更新一次k。
与现有技术相比,本申请提供的技术方案,具有的技术效果或优点是:INVS提高了TCP拥塞控制算法的公平性、链路利用率以及端对端往返时延的公平性。
实施例
为实现拥塞控制策略与链路状态相匹配以取得较好的利用率和公平性,本发明采用了基于指数函数的自适应窗口增长函数,并引入了自适应队列门限的丢包区分策略。
为了保证在大BDP网络中的传输效率,与BICTCP,CUBIC和CTCP等类似,INVS在拥塞避免阶段(congestion avoidance phase,CAP)初期采用凸窗口增长函数。凸窗口增长函数允许TCP发送端在CAP初期快速增长拥塞窗口以尽快充分利用带宽,当接近拥塞时缓慢增长窗口,INVS采用基于指数函数的凸窗口增长函数,t时刻拥塞窗口增长函数如式(3)所示:
cwnd(t)=cwndsp(1-(1-β)αt),0<α<1 (3)
式(3)中,t为从拥塞避免阶段开始所经历的时间,cwndsp为饱和点的拥塞窗口大小,即链路资源已充分利用,为了自适应匹配链路状态,参数α随链路状态动态变化。
为了满足上述函数约束,在具体实施过程中,当拥塞窗口cwnd超过慢启动门限值ssthresh时,进入拥塞避免阶段,在该阶段,每次收到确认字符ACK时,拥塞窗口按如下方式进行调整:
式(4)中,cwnd为拥塞窗口大小,cwndsp为饱和点的拥塞窗口大小,k为自适应增长因子,且其中c为常数比例因子, BWref是参考带宽,BWest为估计带宽,表示rbw取与1之间的最大值,RTTref是RTT参考值,RTTmin为RTT最小值,且RTTmin在路由变化时实时跟踪,表示rrtt取与1之间的最大值,γ为指数因子,用于减小RTT增大的不利影响。
式(4)第一个表达式实现式(3)中的凸函数增长过程,第二个表达式实现到达饱和状态后的带宽探测过程,最后一个表达式实现凸函数增长阶段到网络探测阶段的过度。根据式(4),INVS在拥塞避免阶段开始时,cwnd快速增加,当cwnd接近饱和点cwndsp时减慢,当cwnd超过饱和点时,逐渐加速探测带宽。饱和点cwndsp表示带宽已被充分利用,换言之,如果发送端继续增大传输速率,将可能发生拥塞,否则说明仍有可用带宽。
k是网络和链路状态的反应,直接影响INVS的效率和公平性。为反应链路状态,k为链路带宽和最小RTT的函数,带宽和RTT的差异性通过k反应在窗口增长函数中。BWest用于体现链路环境,因此,平均带宽足以体现带宽大小且比较稳定。INVS每一个RTT估计一次BWest,并在估计中通过最小估计周期和低通滤波器消除估计带宽的抖动以获得稳态带宽,减小了因ACK时延抖动的影响,也可避免频繁计算k。
从k的表达式可以看出,k随着带宽或RTT的增大而减小。带宽或者RTT的增大会导致网络BDP的增加,即允许更多的报文同时在网络中传输。为了更有效充分利用网络资源,每收到一个ACK,cwnd增加量随着网络BDP的增大而增大,因此,当BDP增大时,k减小。当BWest>BWref且RTTmin>RTTref,k恒为c。这时由于窗口增长速率已经很快,即使带宽和RTT增大,k也不再减小。
此外,带宽增加和时延增加都会导致BDP增加,但RTT增大也会导致接收到网络拥塞信息反馈的时延增加,拥塞信息延迟会造成加剧每一次拥塞的程度,导致更多的丢包。因此,INVS引入了因子γ来降低RTT增大的不利影响。γ越小,RTT增大的不利影响越小。
除此之外,本方法还对丢包策略做了改进,当收到三个重复确认字符ACK时,执行拥塞退避策略,并按照下式对拥塞窗口cwnd、慢启动门限值ssthresh以及饱和点的拥塞窗口cwndsp进行调整:
式中,β为乘性减因子,BDPest为链路时延带宽积估计值,bufferest为当前链路在网络中排队报文数的估计值,δ是预设的大容量链路的队列溢出门限,maxbuffer是当前链路所有bufferest的最大值,超时后重新估计,min(δ,maxbuffer)表示取δ和maxbuffer之间的最小值作为最终判决门限来区分拥塞丢包和非拥塞丢包,当收到三个重复的确认字符ACK,且当前网络中排队报文数的估计值大于或等于min(δ,maxbuffer),则判定当前丢包由拥塞引起,并采用传统的退避机制,否则,判定当前丢包属于非拥塞丢包,拥塞窗口cwnd和慢启动门限值ssthresh设为BDPest和cwnd之间的最小值;
当丢包发生时,cwnd<cwndsp表示拥塞避免阶段中本次拥塞发生较上一次拥塞发生的时间早,当前跟踪到的网络饱和点拥塞窗口cwndsp向下调整,设为否则cwndsp设为当前窗口大小cwnd以跟踪当前的网络饱和点。
为了进一步理解本发明的显著效果,接下来对算法的性能进行分析:
INVS的稳态吞吐量:
TCP稳态吞吐量建模分析基于TCP的长时间传输、不考虑慢启动阶段和超时的情况,通过分析拥塞避免阶段和发现丢包后的快重传快恢复阶段发送报文的总数及其持续时间,得出TCP的稳态吞吐量。
在给定链路时,网络带宽和最小RTT不变,因此k可被看作常数。稳态时,cwnd周期性地从β·cwndsp增长到cwndsp。其中,cwndsp为拥塞避免阶段cwnd的最大值。从公式(4)可以得出,在第i轮RTT开始时,cwnd可以表示为:
式(6)中,i表示从CAP开始经过的RTT轮数。
记n为cwnd增长到cwndsp所经过的RTT轮数。根据式(4)可以得出,当cwnd(i)≥cwndsp-1时,在第i轮结束时cwnd就会等于cwndsp。因此,轮数n可以表示为:
因此,一个CAP阶段发送的总报文数为:
稳态时,一个CAP阶段可以发送的报文总数也可用丢包率p表示为:
由(8)和(9)可以得出:
因此
将式(7)代入式(11),利用Lambert W函数是f(W)=WeW的反函数可以求得cwndsp的表达式为:
式(12)中,
因此,可以推得平均吞吐量的表达式为:
图1所示为不同丢包率下INVS与其它TCP拥塞控制算法的响应函数。由于目前尚无CUBIC,Illinois,Hybla和Westwood的响应函数,因此通过仿真对比分析。AIMD(32,0.125)表示使用增量因子32和退避因子为0.125。INVS(500)和INVS(50)分别表示在瓶颈带宽为500Mbps和50Mbps INVS流的结果。从图1中可以看出,给定丢包率下,INVS流在高带宽网络中取得很好的吞吐量性能。
TCP的友好性和公平性:
TCP的公平性指在经历相同拥塞的情况下,多个TCP竞争流之间带宽分享的平等性。为分析INVS的公平性,图2给出了相同链路上两个INVS流的拥塞窗口变化矢量图。假设1号流先启动,已取得较大cwnd,2号流启动晚,瓶颈链路拥塞后退避至图中A点。根据式(5),1号流的cwndsp设为0.5(1+β)cwnd1,2号流的设为cwnd2。cwnd1和cwnd2分别为上一CAP中的最大拥塞窗口。根据式(7),2号流比1号流先将cwnd增加到cwndsp。直到再次拥塞时(图中B点),2号流就获得了1号流释放的带宽。退避到C点后,在下一CAP拥塞时(D点),根据(4)式,2号流获得更多的带宽。通过数次拥塞和退避,1号流逐步释放带宽给2号流,直到它们近似平等地共享带宽。
图3给出了同一网络下的两个INVS流的拥塞窗口。仿真场景是瓶颈容量为100Mbps、RTT为80ms的哑铃网络。从图3中可以看出,两个INVS流的拥塞窗口从300s开始趋于相同。仿真结果也验证了当丢包发生时,采用(5)式加快了竞争流间的窗口收敛速度。
TCP友好性:在小BDP网络中,INVS对TCP Reno/NewReno/CTCP是友好的。因为在小BDP网络中,k会很大,使得拥塞窗口的增长速率与TCP Reno接近,甚至会小于TCP Reno。因此,当INVS的增长速率小于TCP Reno时,INVS使用TCP Reno的窗口值。TCP Reno的拥塞窗口:
式(14)中,t是CAP开始的时间。
进一步地,为评估INVS在异构性网络中的性能,本实施例使用了哑铃拓扑和混合拓扑两种网络拓扑。哑铃拓扑网络采用100Mbps的瓶颈带宽和1000Mbps的支路带宽。混合网络拓扑和配置如图4所示。仿真中节点缓冲大小默认为链路BDP。
单个流传输性能:
首先,针对高速链路、大时延链路和无线链路丢包下TCP的性能退化问题,本实施例分别采用高速网络和卫星网络两种场景评估单个INVS流的性能。哑铃网络拓扑用于模拟高速网络,其瓶颈带宽为500Mbps,RTT为20ms,瓶颈链路缓存为4Mbit。混合网络拓扑用于模拟卫星大时延网络,其中卫星前向链路(satellite forward link,SFL)的瓶颈带宽为4Mbps。为进一步分析有丢包时的算法性能,仿真了丢包率增加时单个流的吞吐量。当网络丢包率为0时,只有拥塞丢包。
图5和图6分别为高速网络和卫星网络下随着丢包率增加时单个流的平均吞吐量。从图5和6中可以得出:
1)丢包率越高,所有协议的性能都越来越差;
2)在无链路丢包时(仅拥塞丢包),Reno不能够充分利用网络;
3)对比图5和图6发现,Hybla和CUBIC在有链路丢包的高速网络中不能充分利用网络带宽。这是因为Hybla和CUBIC:⑴窗口增长独立于RTT;⑵均不区分拥塞丢包和链路丢包。
4)随着丢包率的增加,INVS在高速网络和卫星网络中均取得较好的性能。
卫星与有线混合网络下性能评估:
为评估异构网络下INVS的性能,本实施例采用混合网络拓扑(如图4所示)模拟卫星链路和有线链路的混合网络。为模拟实际网络流量,基于对互联网上服务器使用TCP协议的估计结果,结合Windows7以上系统(默认CTCP)和智能手机(默认CUBIC)的广泛使用,背景流由Reno流(20%),Cubic流(50%)和CTCP流(30%)组成。仿真中在客户端C1和服务器S1之间建立5个测试协议流,在C3和S2之间建立20个背景流,所有的TCP流都在0s到5s内随机启动。当SFL带宽分别为10Mbps,40Mbps和80Mbps时,卫星TCP流的平均带宽为2Mbps,8Mbps和16Mbps,有线瓶颈链路上TCP流的平均带宽为4Mbps。
图7为公平性指标,结果显示,当SFL带宽为10Mbps和80Mbps时,INVS的公平性最好;当SFL带宽为40Mbps时CUBIC的公平性最好。图8为异构网络下总的链路利用率,为了衡量卫星链路和有线链路的总利用率,结果为卫星链路利用率和有线链路利用率的平均值。从图8中可以看出,INVS的总链路利用率最高。总的来说,在异构网络下INVS提高了公平性和总的链路利用率。
RTT公平性:
时延差异是异构网络中的一个重要方面,主要影响TCP拥塞控制算法的公平性,本实施例采用哑铃网络拓扑评估算法的RTT公平性,瓶颈带宽为100Mbps,支路带宽为1000Mbps,瓶颈链路缓存大小为3Mbit,仿真时间持续600s。两个TCP流共享瓶颈带宽,1号流的RTT为80ms,2号流的RTT从20ms到320ms变化。2号流在1号流启动20s后启动。
图9为两个流中吞吐量中较高的与较低的比值。图9中比值越接近1,则该协议的RTT公平性越好。从图9中可以看出,当两个流的RTT相等时,Reno和CTCP的公平性最好;由于采用完全RTT独立的增长速率,Hybla的RTT公平性最好;当两个流的RTT差增大时,INVS的公平性比除Hybla外的其他协议公平性好。这是因为INVS在窗口增长阶段引入了自适应增长因子等。
本申请的上述实施例中,通过提供一种基于链路自适应的异构网络TCP拥塞控制方法INVS,在指数型窗口增长函数中引入一个自适应增长因子以实现窗口增长速率与链路状态相匹配,在丢包区分策略中采用自适应队列门限以提高无线环境下TCP的性能,该基于链路自适应的异构网络TCP拥塞控制方法INVS能够根据链路自适应调整窗口增长速率和退避策略,避免TCP由于不同链路带宽和时延的差异性以及高丢包造成TCP传输性能退化,此外,该基于链路自适应的异构网络TCP拥塞控制方法INVS只需修改发端协议,易于在互联网上逐步部署应用,根据性能分析和评估表明,INVS提高了TCP拥塞控制算法的公平性、链路利用率以及端对端往返时延的公平性。
应当指出的是,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的普通技术人员在本发明的实质范围内所做出的变化、改性、添加或替换,也应属于本发明的保护范围。