结合中间节点的TFRC改进协议
2012-07-25胡忠胜陈元琰黄精籼
胡忠胜,陈元琰,黄精籼,王 娟
(广西师范大学 计算机科学与信息工程学院,广西 桂林541004)
0 引 言
当前流媒体应用迅猛增长,特别是随着无线网络的迅速普及,无线网络中的多媒体流更是以几何速度增长。但面对多媒体应用的蓬勃发展,同时由于多媒体流对服务质量(QOS)有着较高的要求,TCP作为目前Internet中使用最为广泛的端到端传输协议,但因为其自身使用的拥塞控制策略而导致的速率波动剧烈,不能满足流媒体应用对速率平稳性的要求[1]。如今,基于UDP协议的多媒体流占据了主导地位,但UDP缺乏拥塞控制机制,其占用带宽的方式被认为是非TCP友好的,UDP在多媒体流中的应用会使有限的网络带宽资源更加匮乏并将会加重网络拥塞,甚至可能导致网络崩溃。由此UDP也不适合流媒体应用。根据流媒体应用面临问题,对既能满足流媒体的传输要求又是TCP友好的协议研究成为当前研究热点。鉴于此,已有许多TCP友好协议被提出,例如Binomial、TEAR,TFRC等[2]。根据其调整网络负载的拥塞控制机制分为基于窗口和基于速率两大类。其中研究最为深入的是Floyd等人提出的基于速率的TFRC协议。它根据反馈的网络状况由公式得出发送速率[3]。基于速率公式的TFRC协议,发送速率较为平稳,具有较好的TCP友好性,因而适合流媒体的传输使用[4]。
然而,TFRC算法是基于误码率极低的有线网络,在高误码率的无线网络中,算法会错误地将丢包事件作为拥塞信号而引起不必要的拥塞控制[5],导致多媒体应用的服务质量严重下降,影响多媒体应用在无线网络中的发展。为此,文献 [6]提出一种结合延迟抖动大小和丢失事件率区分丢包原因。文献 [7]提出一种利用传输延时抖动判断丢包类型。上述文献均是在端结点通过对网络状态参数的分析来推断丢包原因,吞吐量的提高普遍只在10%以内,改善效果有限。本文借鉴其思想,提出了一种新的改进算法TFRC BMN。该算法结合中间结点实时测量中间结点的队列长度将网络状态进行拥塞等级分区,进而准确快速的判断当前的网络状况。该算法根据发生丢包时网络所处的状态进行丢包原因区分,取得较好的效果。此外由于该算还采用MIMD的快速响应机制,因而提高了链路利用率与实时响应速度。
1 TFRC的基本结构和缺陷
1.1 TFRC的基本结构
TFRC (TCP-friendly rate control protocol) 算 法 是 一种端到端的基于TCP稳态速率模型,发送端根据接收到的反馈信息,采用Padhye等人提出的流量模型公式来决定其数据发送速率。TFRC拥塞控制公式如下
式中:T——发送速率;S——数据包的字节数;RTT——往返时间;p——丢包事件率,它是在一个发送窗口内发生的丢包事件数与发包总数的比值;tRTO——重传超时时间,一般取tRTO=4·RTT;b——单个ACK回复所确定的包的数量,通常的TCP实现设定为1或2;TFRC的基本实现过程是在接收端检测网络拥塞信号,这里是将丢包率作为拥塞信号反馈给发送端。而发送端则通过式 (1)调整发送速率,以适应网络状态的变化。TFRC并不会像TCP那样发现丢包就直接减半发送速率,因而有较好的稳定性,适合多媒体的应用。
1.2 TFRC的局限性
TFRC协议作为主流的TCP友好控制协议,其自身也具有各种各样的局限性,主要体现在以下两个方面:
(1)传统的TFRC协议是基于有线网络环境,由于有线网络下层子网误码率很低,一旦丢失就认为是网络拥塞造成的,而非链路造成的数据丢失。在无线网络中,无线信道由于多径传播、时延扩展,衰落特性以及多普勒效应等造成了很高的误码率,而链路的高误码率导致的无线丢包是不能忽略。如果默认为是拥塞丢包就会启动拥塞退避机制造成吞吐量的下降,这是我们所不愿意看到的。
(2)由于TFRC协议的发送速率公式是基于速率模型的,其友好性与平稳性是以牺牲对网络状态变化的敏感性为代价的。在网络进入与退出拥塞状态时,TFRC协议的响应都显得非常不及时。这些缺陷都不利于网络拥塞的缓解与带宽的充分利用。
2 TFRC算法的改进
针对上述存在的问题,提出一种结合中间路由节点的改进算法 (TFRC BMN),该算法能有效的区分丢包原因,提高链路利用率与实时响应速度。
2.1 拥塞等级的划分
首先在中间节点计算出平均队列长度。平均队列长度虽然滤掉队列长度突发的变化,但是不能很好实时反映当前网络状态。为此我们通过动态加权指数移动得出期望队列长度。通过期望队列长度我们可以过滤掉路由节点反馈的队列长度的偶发性的波动同时保证了测得的队列长度与网络状态一致性。原协议中平均队列长度Qavg采用类似低通滤波器 (low-pass filter)加权[8]的方法计算。如式 (2)所示,其中K为加权值,Qlen为实时队列长度
定义1 期望队列长度Elen由动态加权指数移动计算得出。权值W的初始值为0.5,当队列长度连续同向变化时,权值增大,期望队列长度值偏向实时队列长度。
定义2W为式 (3)中的动态权值,权值的计算方法如式 (4)所示,其中Qlen为实时队列长度。
本文根据定义1与定义2求出的期望队列长度使用模糊拥塞标识FCI(fuzzy congestion indicator)对网络状况进行简单模糊判断。同时使用NSI标记当前的网络状态。FCI具体含义是期望队列长度Elen与中间路由节点最大队列长度Qmax的比值,即FCI=Elen/Qmax。NSI为当前网路拥塞等级,根据FCI的值将NSI具体划分为4个等级。为过滤掉偶发性,根据网络状态的连续性的特征,认为当连续两个FCI值范围相同时才确定NSI的值。具体划分见表1,其中nn、ns、nc是划分等级的3个阈值。
表1 拥塞程度等级划分
2.2 判定丢包判断机制
TFRC原算法中的丢包事件率是由前n次丢包事件的丢包率通过指数加权移动求得的平均值,n的取值及权值的设定是根据网络规模和拥塞程度来决定的。由此求出的丢包率并不能及时反映网络中实时的丢包率变化。根据无线链路造成的丢包率与网络拥塞程度的无关性可做以下推断。当发生丢包事件时,而网络拥塞程度却正常甚至欠载,此时丢包为无线链路引起无线丢包。当负载过重时,通过随机数无线丢包的概率标记为(1-FCI)而拥塞丢包的概率则标记FCI。当网络拥塞时,此时丢包为拥塞丢包。根据丢包原因的不同采取不同速率调节机制。为方便讨论,先确定该判断机制所需的参数,losses丢包数,rate_mode表示速率修正模式。描述伪代码如下:
if(losses>0)//当发生丢包事件;
{if(NSI<=2)rate_mode=increase_rate;//无线丢包则增加发送速率;
if(NSI==3)
{ p=rand ()%101)/100;//产生一个0到101的随机概率;
if((1-FCI)>=p)rate_mode=increase_rate;//无线丢包则增加发送速率;
else rate_mode=decrease_rate;//拥塞丢包则降低发送速率;
}
if(NSI==4) rate_mode=decrease_rate;//拥塞丢包则降低发送速率;
2.3 快速响应机制
由于TFRC协议是基于速率模型的,发送速率的变化十分保守,导致协议对网络状态的变化的敏感度较低,这不利于拥塞控制与链路的高效利用。本文在网络由拥塞状态与非拥塞状态切换时采取积式增加积式减少 (MIMD)的响应策略,为避免速率调节过猛,我们引入一个动态修正因子m,m随网络拥塞状态持续时间增加而增大,根据实验结果m初值为0.55较为合适。图1描述网络状态的切换时所采取的策略,其中由中间点得到的NSI为网络状态切换的信号,status_c代表状态变化情况。算法伪代码如下所示:
if(status_c==1)//非拥塞进入拥塞状态
{
rnow=last_rate*m;//积式减少发送速率;
m=m*Sqrt(1-p);//结合当前误码率减小调节因子数值,加大调节幅度;
}
if(status_c==2)//拥塞进入非拥塞状态;
{
rnow=last_rate*m;//积式增加发送速率;
m=m*Sqrt(1+p);//结合当前误码率减小调节因子数值,加大调节幅度;
}
if((status_c==1&&NSI<4)|| (status_c==2&&NSI>2))//根据NSI值退出快速响应机制;
{
status_c=0;
m=0.55;
}
图1 网络状态切换
3 仿真实验及其分析
实验采取了NS2(NS2.34)仿真平台对原协议TFRC及改进协议TFRC BMN在多种链路条件下进行了模拟仿真,并记录了各自的变化情况。实验网络采用传统的哑铃型拓扑结构,如图2所示。网络相关参数:有线链路带宽均为100Mbps,10ms传播时延,分组大小为1000Bytes。实验采用802.11b标准,无线链路带宽为11Mbps,20ms的时延,无线丢失率为0.01~0.05不等。路由中间节点使用droptail队列机制,缓存大小为60。模拟时间为100s到160s不等。
图2 哑铃拓扑结构
实验1:考察不同误码率下吞吐量,友好性。本实验分别对TFRC与TFRC BMN进行测试,数据流有S1节点与S2节点间的测试协议流和TCP Newreno流,在S2、S3与S5、S6节点间发送CBR1流和CBR2流。CBR流速度都为5Mbps,模拟时间均为100s。由实验1得出表1、图3和图4。从表2可以看出,在高误码率无线网络中TFRC BMN平均吞吐量都显著高于TFRC原算法的平均吞吐量,基本保持在没有误码率的水平。随着误码率的不断增加原协议的吞吐量明显下降,而改进算法的吞吐量得到了很好的保持。显然,这是因为TFRC BMN能够很好的区分无线丢包和拥塞丢包的结果。图3显示了改进协议TFRC BMN与TFRC原协议在误码率为1%时的平均吞吐量的比较。此外由于为了减少启动时间,在初始阶段速率增长方式为积式增加,图3初始阶段速率增加迅速,并伴有波动。
表2 不同误码率下平均吞吐量的比较/(kb/s)
图4显示了TCP流分别与TFRC流、TFRC BMN流共存下平均吞吐量的变化情况。结合表1,容易看出在无线链路中TFRC BMN平均吞吐量比原协议增加至少594.9%,同时TCP Newreno的平均吞吐量至多减少了3.1%。由此可知,TFRC BMN保持了对TCP的友好性。
实验2:公平性。本实验路由节点R1到S5、S5节点均设置为无线链路。为考察TFRC流与TFRC BMN的公平性,分别发送3个数据流,统计每个流的吞吐量,根据Jain公 式[9]计 算 其 公 平 性 指 数,公 式 为F(x)=(∑xi)2/n(∑x2i),其中n表示流的个数,xi为其中某个流的平均吞吐量,F(x)的值越接近1公平性就越好。图5显示了不同误码率 (0.01~0.05)下 TFRC和 TFRC BMN的公平性的比较。由图5可知,在不同误码率下,TFRC BFJ依然具有良好的公平性。
图5 不同误码率下TFRC BMN、TFRC公平性的对比
实验3:平滑性测试。本实验加入一个TCP竞争流分别对TFRC与TFRC BFJ进行模拟仿真。这里引入SMV概念,SMV为吞吐量标准差与平均吞吐量的比值,SMV越小表示代表速率的抖动幅度就越小,其平滑性也越好。式(5)如下,其中Xi分别为第i秒的吞吐量与平均吞吐量珡X。由图6可知,TFRC改进协议在增加吞吐量的前提下保持了较好的平滑性
实验4:响应速度测试。为对比TFRC BMN与原协议在网络拥塞状态变化的敏感程度,本实验加入两个CBR流,在40s时启动一个40Mbps的CBR1流,在60s时启动一个90Mbps的CBR2流。网络在60s时出现严重拥塞。由图7可知,与原协议相比TFRC改进协议在网络出现拥塞时能更早的进入拥塞退避状态,并在网络拥塞结束时迅速的退出拥塞避免状态,这有利于网络拥塞的缓解与链路带宽的充分利用[10]。
图6 不同误码率下TFRC BMN、TFRC平滑性的对比
图7 TFRC BMN、TFRC对网络变化响应速度对比
4 结束语
TFRC由于无法区分丢包原因而导致其在无线网络中性能下降,以及基于速率模型而造成其响应迟钝。针对以上缺陷,提出了新的TFRC改进算法。新算法结合中间节点反馈的队列长度对网络状态进行划分,进而区分丢包原因,并根据丢包原因的不同采取相应的速率调节机制。此外,在退出拥塞状态与启动时采取了积式增加积式减少的快速响应机制。从仿真实验结果来看,TFRC BMN能更好的适应高误码率的无线网络同时能对网络状态变化进行及时的响应,达到了预期的目标。
[1]LIU Yuheng,CHEN Guangwen,HU Yan,et al.A kind of TCP-friendly congestion control mechanism through achieving at the receiving end [J].Acta Electronica Sinica,2005,33 (5):835-841(in Chinese).[刘郁恒,陈广文,胡严,等.一种在接收端实现的TCP-Friendly拥塞控制机制 [J].电子学报,2005,33 (5):835-841.]
[2]WU Dong,CHEN Yuanyan,LUO Xiaoshu,et al.TCP Friendly rate control algorithm with minimum rate [J].Application Research of Computers,2007,24 (5):77-79 (in Chinese). [吴东,陈元琰,罗晓曙,等.具有最小速率的TCP友好速率控制机制 [J].计算机应用研究,2007,24 (5):77-79.]
[3]LIU Guozhu,DU Chunhui.Improvement of TFRC and its simulation under dynamic environment [J]Computer Engineering and Design,2009,30 (5):1101-1103 (in Chinese).[刘国柱,杜春辉.动态环境下TFRC协议改进及其仿真 [J].计算机工程与设计,2009,30 (5):1101-1103.]
[4]Handley M,Padhye J,Floyd S.An extension of the TCP steady-state throughput equation for parallel flows and its application in MulTFRC [J].IEEE/ACM Transactions on Networking,2011,19 (6):1676-1689.
[5]HUANG Jiawei,WANG Jianxin,YE Jin.Improved TFRC protocol based on ECN step marking [J].Computer Engineering,2010,36 (15):23-28 (in Chinese). [黄家玮,王建新,叶进.基于ECN阶跃标记的TFRC改进协议 [J].计算机工程,2010,36 (15):23-28.]
[6]LIN Yuanhua,LONG Zhaohua.Wireless real-time transmission control of Improving the TFRC algorithm [J].Computer Engi-neering and Design,2010,31 (9):1898-1904 (in Chinese).[林远华,龙昭华.控制无线实时传输的改进TFRC算法 [J].计算机工程与设计,2010,31 (9):1898-1904.]
[7]XIAO Fu,WANG Ruchuan,SUN Lijuan.Wireless network based TCP-friendly congestion control mechanism [J].Computer Science,2010,37 (7):50-53 (in Chinese).[肖甫,王汝传,孙力娟,等.基于TCP友好的无线网络拥塞控制机制研究 [J].计算机科学,2010,37 (7):50-53.]
[8]LI Qi,CHEN Di,GAO Zhenming.TFRC congestion control strategy analysis and improvement [J].Computer Engineering,2005,31 (8):108-110 (in Chinese). [李骐,陈涤,高振明,等.TFRC拥塞控制策略的分析和改进 [J].计算机工程,2005,31 (8):108-110.]
[9]FENG Wei,CHEN Yuanyan,WANG Bin.TCPW improvement based on round-trip delay jitter loss differentiation [J].Computer Engineering and Design,2011,32 (4):1203-1206(in Chinese).[冯伟,陈元琰,王斌,等.基于往返延迟抖动区分丢包的TCPW改进 [J].计算机工程与设计,2011,32(4):1203-1206.]
[10]LI Fangfang,SHEN Mingyu.Research on windows-based GAIMD congestion control[J].Journal of Hefei University of Technology (Natural Science),2010,33 (4):538-542(in Chinese). [李芳芳,沈明玉.基于窗口调节的GAIMD拥塞控制算法研究 [J].合肥工业大学学报 (自然科学版),2010,33 (4):538-542.]