APP下载

一种基于UDP协议混合反馈机制的可靠传输协议

2017-03-29刘婷王俊峰刘立祥

现代计算机 2017年5期
关键词:序列号误码率数据包

刘婷,王俊峰,刘立祥

(1.四川大学计算机学院,成都 610064;2.中国科学院软件研究所综合信息学院,北京 100080)

一种基于UDP协议混合反馈机制的可靠传输协议

刘婷1,王俊峰1,刘立祥2

(1.四川大学计算机学院,成都 610064;2.中国科学院软件研究所综合信息学院,北京 100080)

针对TCP协议存在的带宽利用不足以及UDP协议传输可靠性差的问题,提出一种基于UDP协议的QRUDP(Quick Reliable UDP)协议。该协议支持数据的可靠传输,同时采用丢包与时延混合的拥塞算法,并用局部最小RTT的算法以准确计算最小RTT的值。仿真实验表明,该协议在高带宽时延积,高误码率的网络环境下能获得更好的性能并具有较好的公平性。

QRUDP;可靠传输协议;混合反馈机制;拥塞控制

0 引言

当前网络中端到端的流量控制主要采用TCP协议,TCP是面向连接的可靠传输协议,可根据当前网络状况自适应地调整拥塞窗口的大小。但是在传统TCP中依然存在以下问题:第一,在TCP中,若发生丢包,发送端需发送三个重复ACK接收端才判断丢包,在丢包较高的网络环境下效率较低;第二,TCP协议在一个RTT内出现多个数据分组丢失的情况下,只能探测到一个数据分组的丢失,这将会大大增加发送方发现数据分组出现丢失的时间,从而影响TCP协议的效率[1];第三,传统TCP协议的拥塞算法是根据丢包事件或者往返时延RTT来进行拥塞的检测,如CUBIC[2]是基于丢包的拥塞算法,且其目标窗口在两次丢包期间保持不变[3],对网络状况反应延迟,Vegas[4],Westwood[5]是基于RTT的拥塞算法,采用单一的拥塞反馈因子很难对当前网络状况进行准确判断。若要修改以上TCP存在的带宽利用不足问题且要保证现有TCP版本的兼容性,难度较大。

而基于传统UDP协议的应用层协议可以不受已有协议规定的限制,被广泛地应用于各种网络场景中。文献[6]提出的RUDP(Reliable UDP)协议为了保证其可靠性,采用类似于TCP协议的超时机制,每发送一个数据包便进入超时等待状态,直到收到接收端的回复信息才会发送后续数据包,如果计时器超时还未收到回复信息,则认为该包丢失,进行重发处理。虽然RUDP协议简化了TCP的流程,但是其长时间的等待传输效率极低。文献[7]提出的UDT(UDP-based data transfer protocol)协议类似于TCP协议,除增加了可靠性之外,还增加了拥塞算法和流量控制,但是其拥塞窗口采用常见的AIMD算法,但是这种拥塞算法会导致发送速率产生较大的震荡性。文献[8][9]提出的QUIC (Quick UDP Internet Connections)协议,该协议是基于UDP的可靠传输协议,其序列号采用严格的递增机制,但是该协议目前主要用于网页传输,在大文件传输上效率仍然很低。

针对以上对TCP存在的带宽利用不足的问题以及对改进UDP协议的分析,本文提出了一种基于UDP的可靠传输的应用层协协议(QRUDP,Quick Reliable UDP),该协议采用了类似于QUIC协议的序列号机制,即序列号严格递增,SNACK(Selective Negative Acknowledgment)[10]差错控制机制以及丢包与时延相结合的拥塞算法,并且,最大拥塞窗口的值可以自适应地改变,同时采用了局部最小RTT的计算方法以解决传统TCP协议存在的带宽利用不足的问题。

1 QRUDP协议拥塞窗口的设计

(1)当前窗口小于慢启动阈值时,进入慢启动阶段,拥塞窗口加1;

(2)当前窗口大于慢启动阈值时,进入拥塞避免阶段,每收到一个ACK,首先计算网络中排队的数据包的个数,公式如下:

其中,Expected=cwnd/minRTT为期望吞吐量,Actual=cwnd/SRTT为实际的吞吐量,,cwnd为当前的拥塞窗口,minRTT为目前观测到的最小RTT,SRTT为平滑RTT。反映了当前拥塞窗口值与实际网络的差异,并以此来估计当前链路中排队的数据包的个数,定义参数α,若diff<α,说明当前网络中排队的数据包较少,网络带宽尚未利用完全,可适当增加目标窗口,提高发送速率。

对于α的取值,动态修改α的值会使拥塞窗口的增长更符合需求。因为α的值限制了路由器缓存的数据包的个数,增大α,则允许路由器缓存更多的数据包,也可以获取更大的吞吐量;减小α,则不允许路由器缓存更多的数据包,吞吐量也因此下降。在QRUDP协议中,α的计算主要分为两个部分。1)diff<α时,此时若SRTT>last_SRTT并且α>1,说明网络已趋近拥塞,所以应该减小?的值。若SRTT1或者? ==1,说明网络还有富余,所以应适当增加目标窗口的值。2)diff≥α时,此时若SRTT>last_SRTT并且α>1,说明网络趋近拥塞,应减小α的值。若SRTT

其中,α为自定义的参数,初值为1,SRTT为最近一次收到ACK时计算的平滑RTT,last_SRTT为上一次收到ACK时计算的平滑RTT,origin_cwnd为目标窗口值。

若QRUDP协议检测到丢包,则首先判断diff与α的大小,若diff<α,则判断当前网络状况良好,不需要减少当前拥塞窗口值;若diff≥α,则判断当前丢包是由拥塞引起的,按照公式cwnd=cwnd×β减小当前拥塞窗口的值,其中,β取值为0.85。

2 QRUDP协议最小RTT的设计

从前面的讨论可知,由于diff的计算与最小RTT相关,因此,能否准确地计算最小RTT的值就显得相当重要.但是在实际网络中由于时延抖动,路由改变等一系列因素会对最小RTT的准确估计造成影响。

本协议采用每收到γ个ACK就对最小RTT进行重新计算,具体算法伪代码如下:

以上算法采用固定时间周期就对最小RTT重新计算一次的算法,其中,ack_count表示的是累计收到的ACK的个数。对于γ的取值,若取得太小,会使最小RTT变化太快,对最小RTT的计算不够准确;若取得太大,会使最小RTT无法准确地反映当前网络状况.在本文中,对γ取10,50,100,200,1000进行实际测试,经实验表明,γ取50能较好地利用当前带宽并能保证最小RTT计算的准确性以及时效性。

3 实验及结果分析

为了分析以及验证QRUDP协议的性能,本文使用WANem广域网模拟器来模拟真实网络的带宽、时延、丢包以及时延抖动等情况。网络拓扑如图1所示,客户端和服务器采用的操作系统均为Ubuntu12.04.1,所有协议都通过客户端向服务器端下载700MB大小的文件来判断协议的吞吐量,传输的吞吐率通过在客户端每秒接收的文件大小来确定,传输的模拟时间为200s。具体的实验参数设置将在下文中介绍。

图1 网络拓扑图

由于QRUDP协议的序列号机制采用的是类似于QUIC协议的序列号机制,故本实验分别对QRUDP协议,TCP协议以及QUIC协议在不同带宽,不同时延以及不同误码率的场景下进行实验测试,带宽的范围为1Mbps-100Mbps,RTT的范围为50ms-200ms,误码率的范围为10-9-10-5。其中,TCP协议采用了CUBIC,Illinois[11],Scalable[12]三种不同的高速拥塞控制算法。

(1)不同误码率下QRUDP、TCP与QUIC的比较

图2 不同误码率下的平均吞吐量比较

图2表示的是在带宽=10Mbps,RTT=50ms时随着误码率的增大,QRUDP,TCP与QUIC的平均吞吐量的比较。从图中可以看出,在误码率大于10-8之后,QRUDP的性能比QUIC提升了3.6%-374%,比TCP提升了94.1%-1196.3%,由于QRUDP协议采用了SNACK机制,同时采用了丢包和时延相结合的拥塞反馈机制,使之对当前的网络状况的判断更加准确,故随着误码率的增加,QRUDP的性能要好于TCP以及QUIC协议。

(2)存在时延抖动时QRUDP、TCP与QUIC的比较

图3和表1表示的是在带宽=100Mbps,RTT= 114ms,时延抖动=56ms,误码率=9.7×10-6时,QRUDP,TCP,QUIC的吞吐量的瞬时变化情况,仿真时间为200s。从图3以及表1可以看出,由于存在时延抖动,若采用传统方式对最小RTT进行计算,会导致对最小RTT计算不准确从而影响协议性能,在本算法中采用一段周期就对最小RTT做一次重新计算的算法,实验结果表明,QRUDP协议在时延抖动较大的场景下比QUIC协议性能提升了57.3%,比TCP提升了28.3%-231.9%,保证了最小RTT计算的准确性以及时效性。

图3 存在时延抖动时的吞吐量比较

表1 存在时延抖动时的平均吞吐量比较

(3)公平性

图4表示的是QRUDP协议在带宽=100Mbps,RTT=52ms,时延抖动=20ms,误码率=5×10-6的场景下的公平性测试结果。通过图4可以看出,每条QRUDP流之间有着很小的偏差,表现出了良好的公平性。

图4 5条QRUDP流共存时吞吐量对比

4 结语

本文针对现有TCP存在的问题以及UDP传输可靠性差,没有拥塞控制,设计了一种具有拥塞控制机制的可靠传输协议——QRUDP。该协议采用了混合反馈机制以解决TCP协议存在的带宽利用不足问题。仿真实验表明,QRUDP在高带宽时延积,高误码率以及时延抖动较大的网络场景下性能比传统的TCP以及QUIC协议有了较大的提升,同时还保证了较好的协议内公平性。本文给出了QRUDP协议的详细的描述,该协议只需要在服务器端的应用层修改,不需要修改Linux的内核以及中间路由器,易于网络的实施。目前论文中对QRUDP协议性能的判断还局限在仿真软件中,未来的研究可以将QRUDP协议部署到更复杂的实际网络场景中进行测试。

[1]张民,罗光春,王俊峰,等.空间信息网络可靠传输协议研究[J].通信学报,2008,29(6):63-68.

[2]Ha S,Rhee I,Xu L.CUBIC:a New TCP-Friendly High-Speed TCP Variant[J].ACM SIGOPS Operating Systems Review,2008,42(5): 64-74.

[3]许建利.高速长时延网络拥塞控制算法研究及Linux实现[D].成都:四川大学硕士学位论文,2012.

[4]Luo Y,Yin M,Jiang H,et al.An Improved Congestion Avoidance Control Model for TCP Vegas Based on Ad Hoc Networks[C].Chinese Control and Decision Conference,2014:2310-2314.

[5]Mascolo,Saverio,Casetti,et al.TCP Westwood:Bandwidth Estimation for Enhanced Transport Over Wireless Links[J].Proceedings of Mobicom,2011.

[6]He E,Leigh J,Yu O,et al.Reliable Blast UDP:Predictable High Performance Bulk Data Transfer[C].Cluster Computing,2002.Proceedings.2002 IEEE International Conference on.IEEE,2002:317-324.

[7]Gu Y,Grossman R L.UDT:UDP-Based Data Transfer for High-Speed Wide Area Networks[J].Computer Networks the International Journal of Computer&Telecommunications Networking,2007,51(7):1777-1799.

[8]Carlucci G,De Cicco L,Mascolo S.HTTP over UDP:an Experimental Investigation of QUIC[C].ACM Symposium on Applied Computing.ACM,2015:609-614.

[9]Das S R.Evaluation of QUIC on Web Page Performance[J].Massachusetts Institute of Technology,2014.

[10]Durst R C,Miller G J,Travis E J.TCP Extensions for Space Communications[J].Wireless Networks,1997,3(5):389-403.

[11]Liu S,Basar T,Srikant R.TCP-Illinois:A Loss-and Delay-Based Congestion Control Algorithm for High-Speed Networks[J].Performance Evaluation,2008,65(6):417-440.

[12]Kelly T.Scalable TCP:Improving Performance in Highspeed Wide Area Networks[J].Acm Sigcomm Computer Communication Review,2003,33(2):83-91.

A Reliable Transport Protocol Based on UDP Protocol with Hybrid Feedback Mechanism

LIU Ting1,WANG Jun-Feng1,LIU Li-Xiang2
(1.College of Computer Science,Sichuan University,Chengdu 610064;2.College of Integrated Information,Institute of Software,Chinese Academy of Sciences,Beijing 100080)

Aiming at the problem of insufficient bandwidth utilization existing in the traditional TCP and UDP protocol transmission in poor reliability,proposes a QRUDP protocol based on UDP.The protocol supports the reliability of packet transmission,and,it uses packet loss and delay mixed congestion control,and uses local minimum RTT algorithm to calculate the value of minimum accurately.Simulation results show that the protocol can obtain better performance and has better fairness under the high bandwidth,long time delay and large delay jitter network environment.

QRUDP;Reliable Transmission Protocol;Hybrid Feedback Mechanism;Congestion Control

1007-1423(2017)05-0003-05

10.3969/j.issn.1007-1423.2017.05.001

刘婷(1992-),女,四川广安人,硕士,研究方向为网络与信息安全技术

2016-12-06

2017-02-13

国家自然科学基金项目(No.91338107、No.91438120、No.91438119)、教育部博士点基金(No.20130181110095)

王俊峰(1976-),男,安徽芜湖人,博导,教授,研究方向,空间信息网、航空电信网

刘立祥(1973-),男,博士,副研究员,研究方向,网络及其通信技术、网络计算技术

猜你喜欢

序列号误码率数据包
二维隐蔽时间信道构建的研究*
面向通信系统的误码率计算方法
一种离线电子钱包交易的双向容错控制方法
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
一种控制器硬件序列号的更新方法
关于《国家税务总局 工业和信息化部关于加强车辆配置序列号管理有关事项的公告》的解读
一种快速同步统计高阶调制下PN 码误码率的方法∗
C#串口高效可靠的接收方案设计
失效网络中节点可通信性能评估方法研究
D—BLAST基带系统的FPGA实现研究