文献标识码: A
章编号: 0258-7998(2013)09-0109-03
互联网采用TCP和UDP两种协议,在网络拥塞的情况下,UDP数据流几乎占用了所有网络带宽,而TCP数据流则几乎停止工作,影响相关应用正常运行。因此,如何实现UDP数据流和TCP数据流的公平性是一个迫切需要解决的问题。
IP电话视频会议等多媒体网络应用采用实时性较强的UDP传输数据。UDP是一种无连接协议,在传输速度上占有一定优势,但它缺乏拥塞控制机制,传输可靠性差。因此如何在UDP中解决拥塞控制从而提高传输可靠性是另一个迫切需要解决的问题。
因此,本文提出解决上述两个问题的方案,即UDP根据丢包率来判断网络的拥塞情况,若出现网络拥塞,接收方则通知控制方调整发送速率从而有效解决公平性问题和UDP的拥塞控制问题。
1 FFUDP实现方案
FFUDP的创新之处在于接收方收到发送方发送的数据消息后,不像TCP那样频繁返回确认消息即可控制发送速率,从而提高带宽利用率和数据包传输效率。
FFUDP包括两个部分:局部调整算法和全局调整算法。前者根据接收方本次接收数据消息的序列号和前一次接收的差值得到丢包数(局部丢包数)来调整发送方的数据发送率。后者根据接收方开始接收数据消息到本次接收消息结束这段时间内产生的丢包数(全局丢包数)来调整数据发送率。
前期工作发现:独立使用局部调整算法导致丢包率抖动,而独立使用全局调整算法则解决公平性的效果不理想。在FFUDP中,局部调整算法控制接收方发送通知消息的周期,全局调整算法控制发送方发送速率。
1.1 FFUDP协议的协议头
FFUDP通过实时监测网络,定时给发送端发送通知消息来解决公平性和拥塞控制问题。本文新增的FFUDP协议头字段,如图1所示。
1.3 FFUDP协议实现机制
FFUDP的实现机制分为以下两种情况。
1.3.1 提高发送级别的通知消息
如果发送方发送的数据全部被接收方接收,则接收方向发送方发送提高发送速率的通知消息。双方通信过程如图4所示。
(1)发送方A依次发送数据包M1和M2,M2到达接收方B后,接收方B开始发送通知消息Notify1,其负载为降低之后的发送级别。
(2)接收方B发送通知消息Notify1后,降低发送速率,并根据降低后的发送速率发送后期的数据包M3。
如果接收方发送的通知消息丢失,那么发送方不改变发送速率。
2 仿真实验与性能分析
仿真工具采用NS-2,网络带宽为4 Mb/s,链路延迟为5 ms,队列长度为20。网络中的发送节点分别发送TCP、UDP、FFUDP三种数据流。为了保持公平性,三种数据流所处的网络环境完全一致。
2.1 公平性分析
为了测试FFUDP和TCP的友好性,数据流只包含TCP/ FFUDP。
如图6所示,两种数据流都不断调整自己的发送速率。8 s后,两者渐渐趋于平衡,保持一个相对平衡的趋势。但FFUDP数据流的吞吐量高于TCP,这是因为TCP对任一数据消息都返回确认消息,从而实现可靠传输。FFUDP则是定期发送通知消息,所以,FFUDP数据流的吞吐量略高于TCP数据流,但两者保持一个相对平稳的趋势,因此保证了相对公平性。
如图6、图7所示,丢包率与吞吐量成反比。初始阶段,TCP/FFUDP数据流的吞吐量很高,但丢包率很低。同样,经过8 s左右的调整,两种数据流的丢包率出现稳定的趋势,但是FFUDP的丢包率比TCP的丢包率低。这是由于TCP的重传确认机制占用的网络资源增加了丢弃数据的概率。相比,FFUDP不采用重传确认机制,降低了丢弃数据的概率。从图7可以看出, FFUDP协议达到了FFUDP/TCP数据流友好公平的目的。
2.2 拥塞控制分析
为了测试FFUDP的拥塞控制功能,在原来的配置下,分别设置两条FFUDP/UDP数据流,以测试FFUDP比UDP更具有可靠性。如图8所示,FFUDP的吞吐量比UDP高很多。UDP的低吞吐量可能导致服务瘫痪。而FFUDP通过调整发送速率有效控制了网络拥塞,达到了提高吞吐量的目的。
如图9所示,UDP丢包率远高于FFUDP,致使接收数据存在不完整性。FFUDP大幅度降低了丢包率,实现了可靠传输。
本文提出了FFUDP以解决UDP与TCP数据流公平性问题,以及UDP传输可靠性问题。仿真数据表明,FFUDP协议实现了不同数据流之间的公平性,在网络资源紧张的情况下,能够有效控制网络拥塞从而实现传输可靠性。
参考文献
[1] 朱利, 周俊辉, 郑守淇,等. 基于RTT的自适应拥塞控制研究[J]. 计算机学报,2000,23(7):705-710.
[2] 李如玮, 鲍长春. VoIP丢包处理技术的研究进展[J].通信学报, 2007,28(6):103-110.
[3] 李强, 张新荣. 基于延迟抖动分析的TCP友好拥塞控制算法[J]. 计算机工程与科学, 2007,29(6):18-20.
[4] 王国栋, 任勇毛, 李俊. 多重慢启动TCP协议研究[J].微电子学与计算机, 2011,28(3):178-181.
[5] 张艺濒, 张志斌, 赵咏,等. TCP与UDP网络流量对比分析研究[J].计算机应用研究, 2010,27(6):2192-2197.
[6] 靳海力, 李俊. 具有补发机制的增强型可靠UDP的实现[J]. 小型微型计算机系统, 2010,31(5):904-907.
[7] POSTEL J. User datagram protocol[S]. RFC 768. 1980.
[8] VELTEN D. Reliable data protocol[S]. RFC908. 1984.
[9] 方路平,刘世华,陈盼,等.NS-2网络模拟基础与应用[M].北京:国防工业出版社,2008.
[10] TANENBAUM A S. Computer network(fourth edition)[M].Prentice Hall PTR,2004.11.
[11] STEVENS W R. TCP/IP详解卷1:协议[M]. 北京:机械工业出版社, 2000.
[13] STEVENS W R. TCP/IP详解卷2:实现[M]. 北京:机械工业出版社, 2004.