论文部分内容阅读
传输层的TCP协议和UDP协议各有特点和优势。传输控制协议TCP是面向连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的通信连接,TCP协议中的AIMD(Additive Increase Multiplicative Decrease)算法虽然减少了TCP拥塞窗口,但不能快速地恢复可用带宽。特别是在高带宽时延乘积网络中,由于TCP的自身局限性严重限制了TCP在广域网分布式计算中的效率,并且基于RTT的算法会导致不同TCP流占用不同的带宽,出现不公平现象。用户数据报协议UDP是基于消息的传输协议,它不与对方建立连接,而直接地就把数据包发送过去。在高速数据传输网络中,UDP协议具有效率高、占用资源少等优点,在基于消息通信和实时系统中可以显著提高系统传输数据的效率。但UDP也有自身的不足,UDP的数据传输是不可靠的,对于传输中丢失的数据不采取任何措施。
随着网络传输业务的快速发展,在某些对可靠性和高效性要求都较高的应用环境中,TCP和UDP都不能很好地满足应用需求,这就需要能够兼顾可靠性和高效性的传输层协议。为实现支持高性能数据传输,考虑结合TCP和UDP的优点,在UDP之上增加一些保证数据可靠传递的控制机制,满足应用的需要。RUDP(Reliable User Datagram Protocol)协议框架正是在这种背景下产生的。
本文主要工作是对RUDP的代码进行分析,作了两方面的改进:一方面分析了一种简单且健壮的穿越NAT(Network Address Translation)技术,也就是STUN(Simple Traversal of UDP Through Network.Address Translators)技术,并采用STUN技术使RUDP穿越NAT,另一方面分析了分组失序问题对传输性能的影响,提出使用Eifel算法增强RUDP对分组失序的健壮性。