APP下载

面向噪声丢包感知的无线网络拥塞算法

2020-07-17王亚铭唐俊勇雷聚超

计算机工程与应用 2020年14期
关键词:吞吐量无线网络时延

王亚铭,唐俊勇,雷聚超

西安工业大学 计算机科学与工程学院,西安 710021

1 引言

高吞吐量高带宽链路日渐成为无线网络接入异构网络的主流趋势。在实际异构网络中,由于无线网络与其他高速有线网络的不同特征,采用合适的拥塞控制机制,保持异构网络间较高的吞吐量和运行效果是近年来研究的重点[1]。拥塞控制机制研究主要分为四类,其典型代表为:基于可用带宽预估计的TCP Westwood[2];基于延迟反馈的TCP Vegas[3];基于丢包反馈的TCP New Reno[4];基于学习探测的TCP Verus[5]。目前也均有将这些拥塞控制机制引入异构网络,这是由于异构网络的瓶颈链路较多,容易被高速连接流量迅速占链路带宽,引发具有慢速与高延迟连接特征的无线流量频繁丢包,造成无线链路增加数据流传输时间,极大影响整体异构网络的运行效率。

目前,在众多的拥塞控制协议中,TCP Westwood(TCPW)针对无线网络时间延迟过大、传输可靠性弱、收发端互操作性弱等特征,是专门为高速无线网络设计的,被广泛应用于无线网络环境如卫星网络[6]。TCPW通过在发送端持续不断地检测ACK的到达速率来进行有效带宽估计(Bandwidth Estimate)的计算,当拥塞发生时用带宽估计值来直接调整拥塞窗口和慢启动阈值,采用AIAD(Additive Increase and Adaptive Decrease)拥塞控制机制,有效提高无线网络TCP的传输质量,使其性能效果优于其他适用有线网络的拥塞控制算法[7]。同时,以TCPW为基础,一些新的研究结合其他拥塞因素对TCPW做出了改进。文献[8]考虑到接收端缓存区中等待确认的数据包对拥塞窗口的影响,提出了一种基于双端协作的数据承载预估方案RbTCPW。通过在拥塞避免阶段建立马尔科夫模型对未被确认的数据包个数提前预测,计算链路的最大数据承载量,以此作为无线信道带宽估计值的依据。此方案虽然能够延长拥塞避免的时间,推迟发生拥塞的时刻,使网络获得较高吞吐量,但此方案以包往返时延为代价,在传输速率较大的网络下性能明显下降。文献[9]提出了一种基于往返延迟抖动的拥塞分级改进方案,通过测量往返时延抖动对拥塞程度进行区分,其优势是在保证网络稳定性的基础上,针对不同的拥塞程度采用不同的策略有效提高整体吞吐量,但仅适用于低误码环境,而实际网络往往伴随高误码,此方案普适性较差。文献[10]从提高上升阶段窗口水平方面出发,提出一种非线性窗口增长方案。通过在慢启动及拥塞避免阶段使用趋势为先快后慢的非线性代替线性增长,能够更快到达阈值,以此在到达拥塞避免前尽量多地传送数据。虽然该方案尽可能使用理想增长方式,但并未分析不同丢包事件对拥塞控制性能影响,且没有给出进入上升阶段时拥塞窗口及阈值的调整方式。文献[11]将网络拥塞控制转化为具有fuzzy特征的问题,采用条件概率构造不同丢包模式下的隶属度函数,按照最大隶属原则划分丢包原因。此方案在带宽利用率较低的情况下区分效果良好,但随着带宽利用率的增高,噪声丢包和拥塞丢包对数据传输时延均会增加,高误判率将导致机制失效。

通过上述文献分析可知,目前的拥塞研究都关注在如何提高无线网络的拥塞窗口数、判断拥塞的准确性以及快速进行拥塞响应方面。然而TCPW存在估算带宽时过度依赖包的反馈,缺乏区分传输过程中丢包类型的缺点,并未考虑噪声干扰影响拥塞算法的性能。根据文献[7]表明,有线链路上的误码率水平较低,其对应的报文差错率仅为0.012%~1.2%,而无线链路的比特错率一般为10-3,其对应的报文差错率为12%,因此比特误码所造成的噪声是无线环境丢包的主要原因。实际运行过程中,异构网络也确实存在各种无线信号,彼此存在不可避免的干扰,具有误码率高等特征。TCPW未考虑在高误码率、码间串扰大所产生的噪声丢包,其结果就是随机的短时噪声丢包,引发TCPW机制进行了错误的拥塞判断和进行不必要的拥塞避免,使得发送窗口被频繁降低、拥塞避免的阈值不断减小,其直接表现就是吞吐量不高和抖动增大。

通过上述分析,本文发现在异构网络的无线环境下,发送方不必要的拥塞避免是由于错误的噪声干扰造成的。如何能够感知出丢包类型为噪声丢包,并重新设置合理的新窗口参数,最终达到窗口下降次数减少,以此降低时延抖动,提高实时吞吐量是本文研究的目的。

本文提出一种基于拥塞因子F的TCPW-F拥塞控制改进算法。针对无线网络中干扰大及高概率产生噪声丢包的现象,TCPW-F算法(TCP Westwood-Factor)定义并收集发送实际速率Cactual和发送理想速率Coptimal等相关数据,在探测到数据包丢失时,计算拥塞因子F,并利用拥塞门限值细化丢包类型,为被判定为噪声丢包情况下的新窗口参数设置提供依据,使参数变化更加符合网络实际情况,减少重新进入上升阶段时对带宽的浪费,进一步提高无线网络的传输性能。仿真实验表明,通过发送速率构建拥塞因子F,并设置合理的拥塞窗口值和阈值,克服了原机制的不足,具有良好的噪声丢包感知能力。

2 基本概念

TCPW拥塞控制算法分为“慢启动”和“拥塞避免”两个上升阶段及“快速重传”和“快速恢复”两个下降阶段。其中上升阶段延用TCP New Reno方式,保持较好的传输质量。当出现以下两种情况则表明网络出现丢包:一是发送方接收到三个重复ACK包,二是发送方的超时重传计时器的时限已到。TCPW认定丢包后的拥塞窗口值(CWND)和慢启动门限阈值(ssthresh)参数设置具体如表1所示。

表1 TCPW算法参数设置

TCPW的主要特征是利用实时带宽估算值Bk优化下降阶段的阈值设置。在TCP发送端,通过不间断获取ACK到达时间及与上个ACK到达间隔作为采样周期cwnd=ssthresh所确认的字节数计算当前可用带宽,即:

TCPW算法将一个TCP连接周期分成多个采样周期,获取每个采样周期中ACK所确认过的字节数dk,除以采样周期得到带宽估算值Bk,以应对网络波动。

估算带宽并定位窗口应下降到多少的机制,使TCPW算法具备持续性精准控制的优势。相较于其他采用“移动指数平均”方式的控制机制,其表现最佳的应用场景是网络发生了拥塞并因此频繁出现拥塞丢包现象。

然而由于无线链路极易受外界环境因素影响,码间串扰引起的解调错误丢包概率明显高于有线链路,使实际无线网络中存在高比特误码率特征。TCPW算法更新带宽估计值时缺失丢包类型判决机制,导致机制误将噪声丢包当作拥塞丢包统一处理,从而引起窗口值频繁下降到最低值,使TCP传输质量严重下降。

3 TCPW-F优化算法

为了弥补TCPW算法在加性减阶段[12]的不足,使其对噪声丢包具有抵抗性,在TCPW-F算法中构建拥塞因子对丢包类型进行区分,记为F。构建拥塞因子F的步骤如下:

(1)计算发送理想速率Coptimal

在一个时间段内,发送端每接收到一个ACK,均实时记录当前的拥塞窗口大小cwnd和往返通信时延RTT,引入变量RTTmin来保存当前记录到的最小往返时延,则发送理想速率Coptimal如式(2):

(2)计算平滑时延RTTsmt

为了消除噪声干扰,采用均值滤波方式对往返通信时延RTT进行平滑处理。首先对目标RTT给一个模板,模板包含当前全体时延数值和RTTall,再用模板中全体时延的平均值来代替原来的时延,记为RTTsmt,计算公式如式(3):

根据得出的平滑时延RTTsmt,计算发送实际速率Cactual,计算公式如式(4):

(3)构建拥塞因子F

当Cactual>Coptimal时,说明在瓶颈链路发送端的缓存中积压了一些待发送的报文,使发送速率未能达到理想的最大速率。正是缓存积压报文导致出现额外时延,通过拥塞因子F刻画积压报文量表示:

每当对比发现发送速率未达到最佳,便计算一次拥塞因子F的值。Le T等学者通过研究实际传输丢包时,对缓存区会积压具有噪声丢包特征的未被确认报文量的数据特征进行整理分析,得到不同的带宽条件下的拥塞门限特征值 f[13]。在获得拥塞因子F后对比 f达到划分丢包类型的效果,当F

慢启动和加性增长阶段的处理方式与TCPW算法一致,主要在拥塞加性减小阶段作出改进。当收到三个重复ACKs或重传计时器超时时,TCPW-F算法具体参数调整伪代码如下:

当拥塞的下降机制被触发时,即认为网络中发生拥塞,不管是噪声丢包还是拥塞丢包。那么在慢启动和加性增长阶段不改变标准的参数设置,转而对拥塞发生后,按丢包类型进行划分,使进入慢启动的阈值和拥塞窗口参数设置精细化。

在被判别为网络发生拥塞而产生丢包时,将继续使用原算法的参数设置;在被判别为噪声丢包后,链路质量没有下降,不应将参数当作发生网络拥塞时大幅下降再增长,参数设置也并不依赖于带宽估计值的计算,因此分别将新拥塞窗口值设置为cwnd和F的差值,新慢启动阈值设置为cwnd,以此使网络能够进入合理的增长阶段,其效果如图1所示。

图1 进入窗口增长阶段方式对比

当因子判定小于门限值并且进入快速恢复或超时重传阶段时,如果不对参数调整,可能会导致窗口增长过快,真正拥塞到来的时间提前,所以考虑缓存中仍存在部分因噪声丢包积压的报文未被确认,将窗口值限制预留出门限值大小的足够空间,使其能够应对噪声丢包,保证传输质量的高效性。

4 TCPW-F算法的仿真实验结果分析

为了验证新改进算法的可行性,本文使用Network Simulator Version 3(NS3)仿真软件[14]进行仿真实验,版本为3.29,运行环境为Ubuntu 16.04。仿真网络的拓扑结构如图2所示。

图2 网络拓扑结构图

图2 中,将客户机n4、n5节点作为发送端,固定主机n0节点作为接收端,n1和n2节点为中间路由器。拓扑中路由器n1与固定主机间设置点对点有线网络,路由器间采用无线桥接方式连接,路由器与所有客户机间均为双向无线链路。此网络拓扑更加符合实际情况,使新改进算法在此环境中的仿真结果具有普适性。设置有线网络为高速路段,其余链路的时延均为5 ms,带宽为10 Mb,此时拥塞门限特征值 f取2 000。根据实际无线网络环境构建传输错误模型,设置随机错误模型为0.000 1,发送端从第1 s开始发送采用TCP协议的数据业务流,包生成速率设置为1Mb/s,数据包大小为1024Byte,传输时间为20 s。本文所做实验以上述条件为基础,记录并对比在实际混合网络环境情况下新TCPW-F算法与前人基于往返延迟抖动改进的拥塞分级方案RbTCPW算法及原算法的时延抖动等关键性能指标。

图3反映出受到拥塞因子F的影响,TCPW-F算法的优势在仿真不久后显现出来。在某些时刻出现丢包时,原算法使CWND频繁性降低,而TCPW-F算法则使窗口值继续保持增长趋势。当乘性减少的机制启动时,TCPW算法直接将窗口降到最小值,现在转而降低到合适值再进入加性增长。相比原算法的激进趋势,新算法更加缓和,并获得更多的传输资源。之所以出现此现象,是因为优化时根据拥塞因子F区分丢包类型,分析到无关噪声丢包时,保持增长趋势,并设置合适的新窗口参数,不盲目像拥塞丢包一样将降低窗口值,最终能够使CWND能够维持着较高水平。

图3 TCPW-F算法与TCPW算法CWND变化对比

从图4、图5可以看出,TCPW-F算法的时延更低,震荡幅度更小,其中抖动是用来描述延迟变化的程度,由此可见改进算法的时延相对平滑,且包的响应时间基本快于RbTCPW算法及TCPW算法。RbTCPW算法为了获得较高吞吐量,通过在拥塞避免阶段建立马尔科夫模型对未被确认的数据包个数提前预测,计算链路的最大数据承载量,以此作为无线信道带宽估计值的依据,然而无线网络为延迟抖动敏感网络,其并未考虑噪声丢包及造成的网络不良动荡,可以观察到RbTCPW平均延迟抖动水平略高于TCPW-F及原算法,尤其在网络中发生丢包时。仿真中忽略其物理干扰和信号强弱等原因,关键在于网络处于高峰期时判定噪声丢包后的参数设置能有效缓解瓶颈电路来增加报文发送量,从而服务器端能更快做出反应,提高TCP的传输速率,这一特点也在上述的实验性能对比中得到验证。

图4 时间延迟Delay的变化对比

图5 抖动Jitter的变化对比

从图6、图7可以看出,当发送端的数据传输速率(DataRate)设置为1 Mb/s时,由于该值远小于信道带宽10 Mb/s,仿真一段时间后几种算法的实际传输速率几乎同时到达1.1 Mb/s,曲线特征基本一致。当发送端的数据传输速率(DataRate)设置为10 Mb/s时,由于该值等于信道带宽,受到多种干扰因素影响,实际吞吐量将不会达到最大值,这种情况更加接近实际网络场景。图中表明从3 s开始,TCPW-F算法的实时吞吐量增长趋势明显高于原算法,而RbTCPW则效果欠佳。RbTCPW在吞吐量趋于平稳后以预测未到数据包的个数发挥算法优势,但仍未处理噪声丢包造成的性能流失。由于在拥塞因子F判断下,避免了窗口频繁急速的下降,较传统的激进性减小策略,保持了更加平稳的状态,从而使整个过程的实时吞吐量性能显著增强。

图6 包生成速率为1 Mb/s时实时吞吐量变化对比

图7 包生成速率为10 Mb/s时实时吞吐量变化对比

5 结束语

本文针对TCPW算法在无线网络环境中无法区分丢包类型而频繁降窗降阈值的不足,提出了一种改进的TCP-F拥塞控制算法。通过实时计算网络中的可用带宽,利用积压报文量计算的拥塞因子F来区分丢包类型并在判定为噪声丢包情况下对新窗口值重新设置。通过NS3仿真实验表明,TCPW-F算法在时延抖动和吞吐量等方面性能都得到提升,有效地提高了TCP的网络传输性能。

猜你喜欢

吞吐量无线网络时延
5G承载网部署满足uRLLC业务时延要求的研究
滤波器对无线网络中干扰问题的作用探讨
基于GCC-nearest时延估计的室内声源定位
2017年3月长三角地区主要港口吞吐量
2016年10月长三角地区主要港口吞吐量
2016年11月长三角地区主要港口吞吐量
无线网络的中间人攻击研究
FRFT在水声信道时延频移联合估计中的应用
简化的基于时延线性拟合的宽带测向算法
TD-LTE无线网络高层建筑覆盖技术研究与应用