一种改进的一种改进的TCP Westwood算法算法
无线网络存在高误码率、带宽变化大等特点,针对丢包类型多样化、拥塞控制中参数设置既盲目又单一化等问
题,提出了一种TCP Westwood(简称TCPW)的改进算法TCP-NW,该算法根据网络中带宽的利用率来区分丢
包类型并细化拥塞情况,并据此对CWND(拥塞窗口)和SSTHRESH(慢启动门限值)值进行调整。仿真实验
表明,TCP-NW算法在网络时延、抖动、吞吐量等方面表现稳定,对于无线网络TCP的传输性能有较大的改
善。
摘 摘 要要:
关键词 关键词: 无线网络;
0 引言引言
随着网络技术飞速发展,网络中信息量急剧增长,拥塞的问题也日趋严重,网络出现拥塞时,如果处理不当,网络通信就
会严重受阻,使网络处于一种接近瘫痪的状态。作为网络广泛使用的传输协议TCP为网络中的用户提供了可信和健壮的端到端
网络数据通信服务,同时该协议一直备受大多数学者的关注,并取得了很多研究成果。如参考文献[1]中提出了一种无线传感
器网络中基于跨层优化的拥塞控制算法;参考文献[2]提出了基于背景流量变换的组播拥塞控制算法;参考文献[3]中提出了一
种高性能的TCP友好拥塞控制算法;参考文献[4]中提出了一种基于自同步原则的拥塞控制方法;参考文献[5]中提出一种基于
双包探测技术的TCP Westwood算法;参考文献[6]提出一种基于非线性窗口增长的TCPW改进算法;参考文献[7]中提出了一
种Mesh网络中基于区分服务的拥塞控制机制。这些算法都对TCP的拥塞控制机制从不同的方面作出了改进,但如何使得TCP
协议更好地适应无线网络环境特性,依然是一个重要的研究课题。
TCPW协议是针对无线特点而设计的,相对于TCP Reno表现出了更好的性能。但是在无线网络环境中TCPW协议无法区
分丢包类型,即拥塞丢包和无线丢包(在网络没有出现拥塞时,也会出现丢包的现象,这时丢包原因往往由外界环境因素引
起,使得网络本身传输信道的信号衰弱或干扰,把这种数据包丢失称为无线丢包),而且在拥塞处理中,参数的调整没有区分
拥塞程度而作统一的处理,这些问题导致网络性能受到影响。本文根据TCPW协议存在的不足,提出了一种基于TCP的改进算
法TCP-NW,算法通过测算网络中带宽及带宽利用率,根据带宽利用率来区分丢包类型并细化拥塞的不同场景,并据此对
CWND和SSTHRESH值进行调整。仿真实验表明该算法在一定程度上可以区分丢包类型及拥塞程度,较大程度上提高了TCP
性能。
1 TCPW拥塞控制算法分析拥塞控制算法分析
TCPW算法是专门针对无线网络提出的一种拥塞控制算法,是在TCP Reno版本上改进而得,在一定程度上提高了网络出
现丢包时TCP的传输性能[8]。TCPW也是由“慢启动”、“拥塞避免”、“快速重传”和“快速恢复”四个部分组成。
TCPW算法主要通过实时测量来估算网络中的带宽值,并利用带宽估计值来调整CWND和SSTHRESH值以达到拥塞控制
的目的。基本流程是,通过持续不断地监测TCP目的端返回的ACK速率,从而计算出单位时间内TCP发送端发送的分组数目
和数据包大小,计算出网络中的带宽估计值[9-10]。当出现拥塞收到3个重复ACK或RTO超时时,SSTHRESH和CWND的赋值
如下:
其中cuurent_bwe是带宽估计值,size 是数据包的大小,min_rtt_estimate是测量中的最小RTT。
在收到3个重复ACK时,CWND值设置为SSTHRESH的当前值,而超时的情况下,CWND值设置为1。
TCPW算法的不足之处主要有以下几个方面:
(1)TCPW算法无法区分丢包类型。当网络中出现丢包时,TCPW算法都会按照拥塞丢包来处理,而不区分是无线丢包
还是拥塞丢包。
(2)TCPW算法在处理丢包时具有盲目性且单一。主要体现在CWND和SSTHRESH值的调整上,在出现丢包时,不管
丢包原因也不分拥塞程度,单纯减小窗口值,降低数据的发送速率,这种处理会使得网络带宽利用率大幅度下降。
2 TCP-NW算法原理算法原理
针对TCPW算法的不足,提出了一种改进算法TCP-NW,TCP-NW算法的步骤如下:
(1)计算网络带宽估计值
通过TCPW协议中的带宽估计算法实时计算网络中的带宽估计值current_bwe,引入一个变量bwe_max,用于保存此过程
中的current_bwe的最大值。
(2)计算网络带宽利用率
根据(1)中计算出的current_bwe和bwe_max的值,计算出网络中的带宽利用率。计算公式如式(2)所示: