基于带宽估计的TCPW改进算法
2013-08-13金林珠库流亨
金林珠,库流亨
(1.武汉科技大学 信息科学与工程学院,湖北 武汉 430081;2.华北计算机系统工程研究所,北京 100083)
TCP Westwood(TCPW)协议[1]是专门针对无线网络应用环境而提出的传输控制协议,它是在TCP Reno协议的基础上修改而来的。TCPW通过估算网络的可用带宽,对拥塞窗口(cwnd)和慢启动阈值(ssthresh)进行优化控制,在一定程度上改善了传统TCP协议在发生数据丢包时所导致的网络带宽利用率下降的问题[2]。然而,TCPW算法无法区分网络丢包的原因,在高误码率、频繁移动的无线网络环境下,往往会由于较多的无线丢包而频繁调用网络拥塞控制算法,降低了网络带宽利用率[3]。
本文提出一种基于TCPW协议的改进拥塞控制算法TCPW-J,该算法根据当前网络的带宽估计值的变化情况来推断网络丢包发生的最可能原因,使网络控制协议能够对拥塞情况作出更加准确的判断,减少在不必要情况下调用网络拥塞控制算法的次数。经过分析和仿真实验的验证,表明TCPW-J能够较为有效地判断丢包的原因,提高了TCPW算法对网络带宽的利用率。
1 TCPW-J算法
1.1 设计思想
网络拥塞是一种持续过载的网络状态,网络拥塞会导致数据包丢失、时延增加、吞吐量下降等现象[4]。基于这些因素,在网络拥塞状态下得到的带宽估计值(BWE)比正常情况下的要小很多。另一方面,由于无线网络误码率较高等原因而导致的数据丢包具有偶然性,并不影响往返时延(RTT),因此发生无线丢包时,所计算出来的BWE值相对于正常情况下并不会产生较大变化。
基于以上事实和分析,提出的TCPW-J算法对BWE进行持续观测,得到TCP连接在一段时间内的BWE变化范围,并划分网络拥塞情况等级。根据计算的网络拥塞等级,推断当前网络的拥塞情况,并做出恰当的调整。
1.2 算法实现
TCPW-J算法持续计算BWE并记录其最大和最小值,得到BWE的变化范围,即:
再根据最新的BWE估算值,得到当前网络带宽估计值与最大值之间的差值在变化范围中所占的比率:
结合式(1)、式(2),可以看出 A∈[0,1]表示了当前带宽估计值与历史变化情况相比的大小程度,间接地反映了网络的拥塞情况。式(2)中的A越小,表明当前网络带宽已经处于较好的情况,网络拥塞的可能性较小或趋于稳定;反之,A越大则表明网络拥塞的可能性越大或程度越高。这里将A划分成三个等级,其等级L越高则表明拥塞可能性越大。
根据上述划分的拥塞等级范围,对TCPW的拥塞控制算法进行改进。
新的拥塞控制算法用伪代码描述如下:
(1)收到新的ACK之后
(2)收到重复的ACK之后
2 仿真结果与分析
采用 OPNET Modeler 14.5仿真平台对 New Reno、TCPW以及TCP-J算法在混合链路上进行仿真,如图1所示。
图1 模拟网络拓扑结构
在图1中模拟了一个作为数据源的服务器子网(Server Subnet)、一个数据访问子网(Client Subnet)以及 IP云(IP Cloud)作为两者之间传输数据的混合链路。配置FTP服务用于模拟连续的TCP数据传输,FTP文件大小为50 MB,数据包延迟为0.1 s,两个子网之间是瓶颈链路,最大传输速率为10 Mb/s,模拟时间为12 min。
2.1 不同误码率下的吞吐量分析
表1中给出了三种算法分别在不同误码率环境下的吞吐量统计结果。可以很清晰地看到,在误码率较高的环境下,TCPW-J的吞吐量明显高于New Reno和TCPW算法。而且随着误码率的提高,TCPW-J相对于TCPW的吞吐量的提升更加明显,其原因在于TCPW-J算法能够有效地区分拥塞丢包和无线丢包,减少了不必要的拥塞窗口调整次数,提高了带宽的利用率。
表1 不同误码率环境下的平均吞吐量对比 (kb/s)
图2中给出了TCPW和TCPW-J算法在误码率为3%的环境下吞吐量的对比结果。容易看出,TCPW-J的吞吐量比TCPW提高了不少,传输效率更高。
2.2 公平性和友好性分析
在图1的模拟网络拓扑结构中,同时建立5对TCP传输流,用于对比三种算法的公平性。公平性系数采用Jain公式[5]来计算,其定义为:
图2 链路误码率3%时吞吐量对比结果
其中,xi表示第 i个连接的吞吐量,n为连接数,F(x)越接近1则表明公平性越好。图3中显示了三种算法在相同误码率条件下的公平性系数对比,可以看出,TCPW-J的公平性与New Reno、TPCW算法相近,都具有良好的公平性。
图3 不同链路延迟条件下的公平系数对比
在测试友好性的过程中,建立两个不同的TCP流,分别运行New Reno和TCPW-J协议。表2给出了这两种算法在不同误码率环境下的平均吞吐量对比结果。从结果中可以看出,TCPW-J对New Reno是友好的。
表2 不同误码率环境下的平均吞吐量比较 kb/s
本文在TCPW的基础之上提出了改进算法TCPWJ,根据带宽估计值BWE的变化情况划分拥塞等级,以推测最可能导致丢包的原因,区分无线丢包和拥塞丢包。仿真实验结果表明,TCPW-J算法在误码率较高的无线网络环境下,不仅表现出了更高的网络带宽利用率吞吐量,而且保持了良好的公平性和友好性。
[1]CLAUDIO C,MARIO G,SAVERIO M,et al.TCP westwood:end-to-end congestion control for wired/wireless networks[J].Wireless Networks Journal,2002(8):467-469.
[2]LOW SH,PAGANINI F,DOYLE J C.Internet congestion control[J].IEEE Control Systems Magazine,2002,22(1):28-43.
[3]CHEN J,PAGANINI F,WANG R.Fluid-flow analysis of TCP westwood with RED[A].Proceedings of the IEEE GLOBECOM 2003,2003:4064-4068.
[4](美)STEVENS W R著.TCP/IP详解,卷 1:协议[M].范建华,等译.北京:机械工业出版社,2000:226-243.
[5]JAIN R,CHIU D,HAWE W.A quantitative measure of fairness and discrimination for resource allocation in shared systems[Z].DEC Research Report TR-301.1984.