安沙沙,才 智,葛万成,汪亮友,林佳燕
随着通信技术和网络技术的迅速发展,现代通信网已发展成为一种多技术、多层次、多业务的混合网络。随着互联网的日益发展,网络数据信息量每年都以惊人的速度增长,网络负载不断增加,在网络拥塞控制方面,传统的UDP视频传输协议已经显现出一些不足。然而TCP协议,在大数据传输并发生网络拥塞的情况下,出现丢包重传和抖动失真的现象相对增多,因此TCP协议能否满足未来大数据时代的网络环境的需求,面临着不小的挑战[1]。针对这一未来的挑战,需要一种更好的网络拥塞控制机制,在网络拥塞的情况下,更好的满足视频流的传输,公平的分享宽带资源,这也是未来提高网络吞吐量和避免网络拥塞的研究方向之一[2]。该论文受到XCP(eXplicit Control Protocol)算法的启发,提出了一种基于IP包头的显式拥塞控制ECN(Explicit Congestion Notification)的快速跨层拥塞控制算法FCLCP(Fast Cross Layer Congestion Control Protocol),该算法能够更加准确的反映网络中各个节点处的链路状况,更加有效的拥塞控制,有效的缓解了网络拥塞现象。
拥塞是当通信子网中某一部分的数据分组高于一定的水平,使得该部分网络来不及处理这些分组时,使网络的性能下降的情况。
拥塞会导致分组传输时延的急剧增加和分组的丢失,分组因为丢失进行的重传又会加重拥塞,造成恶性循环,进而导致拥塞崩溃的发生。网络拥塞主要具有如下表现形式:一是上层应用系统所具有的性能降低;二是丢包的概率大大增加;三是数据包延时大幅度增加。通过图1能够得出,当负载过小时,其负载与吞吐量都表现出线性关系;当上升到knee,也就是膝点后,当负载不断提高时,其吞吐量缓慢增加;但是一旦负载达到cliff,也就是崖点后,吞吐量会随着负载的提高而不断快速降低。一般而言,将knee点旁边定义成拥塞避免区,而 cliff和knee间的区域我们称之为拥塞恢复区,关于拥塞崩溃区,即为cliff之外的区域。
图1 负载与吞吐量之间的关系
拥塞产生的直接原因有如下几点:①带宽容量不足;②存储空间不足;③如果系统处理器速度较慢、运算效率低,路由器在更新路由表以及缓冲排队时的处理速度满足不了高速链路要求,也会产生拥塞[3]。
XCP[4]的核心思想是在活动数据流中分配可用带宽S=C-Λ-q(t)/d0,其中C是链路容量,Λ指数据包到达总速率。如果将每个数据流的空闲带宽记为ΔR,那么所有数据流的数据包总和应该不超出可用带宽总和S,即:
进一步可以转化为:
根据式(2),当前发送数据率为Ri的数据流设置新的发送速率Rnewi为:
式(3)的第一、第二项为在当前时间周期内是常数,所以提取第三项作为本算法的速率分配公式,即
带有稳定性系数的FCLCP速率:
将式(4)的右式的分母部分左乘,得到:
可以发现式(5)的物理意义是发送到一个路由器的数据包总数不能超过带宽-时延乘积扣除路由器端的队列长度。其中,Rj=wj/RTTj是到达路由器的L数据包的第j个速率。对于控制周期d的预测,FCLCP不需要像RCP(Rapid Control Protocol)及XCP一样的实际数据流的 RTT[5](Round Trip Time),d值可以根据最大及最小RTT值设置为某些合理的值,通过用户定义或者从离线实验中获取,表1列出了计算 ()R t所用到的标记符号。
所有数据流和FCLCP算法在终端及路由器端进行实现,具体实现过程如下:
(1)发送端以速率^Rj发送对应数据包中的字节j;
(2)每个路由器计算 ()R t,时间间隔是一个路由器控制周期d内,0<d≤RTTmax,RTTmax是指已知或离线预测的最大流RTT,()R t的计算见表1;
表1 FCLCP算法中的参数标识
(3)与j字节所在数据包经过的每一路由器检查 ^Rj与 ()R t,当 ()R t <^Rj时,以 ()R t覆盖 ^Rj,反之则不做任何改变地转发;
(4)接收端将数据包中的 ^Rj复制到ACK包中;
(5)源端收到ACK包后,根据 ^Rj将当前的拥塞窗口更新为wj=^RjRTTj,RTTj是j字节所在数据流的RTT,同时根据ACK发现的路径发送数据包;
(6)每个控制周期d内,每一路由器刷新R(t)用以获得数据流的路径,R(t)作为一个链路的权值。
算法的跨层[6]还体现在使用了 IP包中的ECN[7]来实现FCLCP,即使用2位ECN位来编码数据包时间间隔lj,lj=1/Rj(t)=RTTj/wj(t)。接收端将已编码的ECN位复制到相应的ACK包中,并传回给源端,lj可以用剩余3个不同的数值来编码,3个数据包可以总共编码为9个数值。当数据流的竞争窗口wj以及发送速率Rj(t)增加时,数据包时间间隔减少。FCLCP运用ECN实现lj的过程如图2所示,数据流经过路径的源端路由器共享相同的IPID及ECN值,源端则使用IPID及ECN值表示最大速率,即最小lj。每个路由器则使用相反的映射方程可以解码出lj,然后将自身的lj和解码出的lj进行对比,如果自身的lj大于解码lj,则往数据包中重写 lj,lj=max(1/Rj(t),1/R(t+d))。
图2 FCLCP使用ECN的实现示意
采用NS2网络仿真工具对FCLCP算法进行仿真,来分析有线无线混合网络下FCLCP拥塞控制机制的性能。根据仿真结果对目前应用最广泛且较为成熟的TCP Reno算法[8]和FCLCP控制机制进行详细对比。
图3显示FCLCP算法和TCPReno算法的传输数据包总数与数据包损坏概率的关系。其中将数据包损坏概率设定在0到30%递增的情况,由图可知当数据包损坏概率递增时,数据包传输总数是在不断递减的。但可以明显地发现,在仿真期间,FCLCP所传输的数据包总数要远大于TCP Reno。同时损坏概率为0.2左右时,FCLCP传输数据包总数的情况要远优于TCP Reno。
图3 丢包总数仿真结果
然后对多个数据流竞争时会产生不公平性进行研究,验证本文提出的FCLCP能对该现象有一定改善。仿真场景是整个混合网络中存在3个数据流。图4显示了各数据流平均有效吞吐量,单位是kb/s。可以发现,使用TCP Reno时,第3个数据流吞吐量几乎为0,分析其原因可知当混合网络中存在多个数据流时,会彼此相互竞争信道,产生不公平性。而使用FCLCP之后,数据流之间的公平性有了一定的改善。
图4 3个数据流场景下各数据流吞吐量比较
论文提出的FCLCP算法是基于跨层设计的思想,在显式控制协议XCP的基础上针对高数据传输效率的快速拥塞控制算法,其核心思想是利用一个公平速率[9]来度量数据流的传输速率,并且选择数据流的传输路径。通过IP包中的ECN信息来跨层实现FCLCP,使之既适合于视频流式传输,又能与TCP公平分享带宽,也不会产生新的包头开销。采用NS2网络仿真工具对FCLCP跨层拥塞机制进行了仿真,同时与目前应用最广泛且较为成熟的TCP Reno算法在丢包数目和多个数据流的公平性方面进行详细比较,发现拥塞控制机制能够较好的改善网络的拥塞状况。因此把跨层设计应用在视频传输时的拥塞控制中是非常可行的。论文的研究工作得到了上海市科学技术委员会科研项目《基于个性化推荐技术的航空移动社区服务模式研究与应用》(项目号:14DZ1101400)和同济大学研究生国际交流基金资助项目(项目批准号:201502008)的经费支持。
[1] 陶静,许艺瀚.针对移动视频流介于UMTS和WiMAX网络间的切换方案[J].通信技术,2015,48(05):580-581.
TAOJing,XUYi-han.Switching Scheme for Mobile Video Streaming Between UMTS and WiMAX Networks[J].Communications Technology.2015,48(5):580 -581.
[2] JING C,ZHANG X,TANG F,et al.R^2NC:Redundant and Random Network Coding for H.264/SVCTransmission.[C]//Network - based Information Systems(NBiS),2011 14th International Conference on.IEEE,2011:634 -639.
[3] 张永敏,徐伟强,黄炯等.Adhoc网络节能型功率控制与拥塞控制的跨层优化[J].软件学报,2013,24(04):900-914.
ZHANGYong-min,XUWei-qiang,HUANGJiong,et al.Adhoc Network of Energy- Efficient Power Control and Optimization of Cross-Layer Congestion Control[J].Journal of Software,2013,24(4):900-914.
[4] SHI Z,Ionescu D,ZHANG D.ST- XCP:A Stable XCP Protocol[C]//IEEE Computer Communications and Networks(ICCCN),2013:1 -7.
[5] Shakkottai S,Rappaport T S,Karlsson PC.Cross-Layer Design for Wireless Networks.Communications Magazine,IEEE,2003,41(10):74-80.
[6] LIN X,Shroff N B,Srikant R.A Tutorial on Cross- Layer Optimization in Wireless Networks.Selected Areas in Communications,IEEE Journal on,2006,24(8):1452 -1463.
[7] Ramakrishnan K,Floyd S.A Proposal to Add Explicit Congestion Notification(ECN)to IP[S].RFC 2481,January,1999.
[8] Kuusela P,Lassila P,Virtamo J.Stability of TCP -REDCongestion Control[J].Teletraffic Science& Engineering,2001:655-666.
[9] YE J,WANG J X,HUANG J W.A Cross-Layer TCP for Providing Fairness in Wireless Mesh Networks.International Journal of Communication Systems[J].2011,24(12):1611-1626.