关于UDP协议我们已经非常熟悉了。这里我们再来介绍一下UDT协议。这两个协议在缩写上面容易混淆,大家首先要区分清楚。那么接下来我们就来对这部分内容进行一下比较和区分吧。
1.介绍
随着网络带宽时延产品(BDP)的增加,通常的TCP协议开始变的低效。这是因为它的AIMD(additive increase multiplicative decrease)算法彻底减少了TCP拥塞窗口,但不能快速的恢复可用带宽。理论上的流量分析表明TCP在BDP增加到很高的时候比较容易受包损失攻击。
另外,继承自TCP拥塞控制的不公平的RTT也成为在分布式数据密集程序中的严重问题。拥有不同RTT的并发TCP流将不公平地分享带宽。尽管在小的BDP网络中使用通常的TCP实现来相对平等的共享带宽,但在拥有大量BDP的网络中,通常的基于TCP的程序就必须承受严重的不公平的问题。这个RTT基于的算法严重的限制了其在广域网分布式计算的效率,例如:internet上的网格计算。
一直到今天,对标准的TCP的提高一直都不能在高BDP环境中效率和公平性方面达到满意的程度(特别是基于RTT的问题)。例如:TCP的修改,RFC1423(高性能扩展),RFC2018(SACK)、RFC2582(New Reno)、RFC2883(D-SACK)、和RFC2988(RTO计算)都或多或少的提高了点效率,但最根本的AIMD算法没有解决。HS TCP(RFC 3649)通过根本上改变TCP拥塞控制算法来在高BDP网络中获得高带宽利用率,但公平性问题仍然存在。
考虑到上面的背景,需要一种在高BDP网络支持高性能数据传输的传输协议。我们推荐一个应用程序级别的传输协议,叫UDT或基于UDP的数据传输协议并拥有用塞控制算法。
本文描述两个正交的部分,UDP协议和UDT拥塞控制算法。一个应用层级别的协议,位于UDP之上,使用其他的拥塞算法,然而这些本文中描述的算法也可以在其他协议中实现,例如:TCP。
一个协议的参考实现叫[UDT];详细的拥塞控制算法的性能分析在[GHG04]中可以找到。
2.设计目标
UDT主要用在小数量的bulk源共享富裕带宽的情况下,最典型的例子就是建立在光纤广域网上的网格计算,一些研究所在这样的网络上运行他们的分布式的数据密集程序,例如,远程访问仪器、分布式数据挖掘和高分辨率的多媒体流。
UDT的主要目标是效率、公平、稳定。单个的或少量的UDT协议流应该利用所有高速连接提供的可用带宽,即使带宽变化的很剧烈。同时,所有并发的流必须公平地共享带宽,不依赖于不同的带宽瓶劲、起始时间、RTT。稳定性要求包发送速率应该一直会聚可用带宽非常快,并且必须避免拥塞碰撞。
UDT并不是在瓶劲带宽相对较小的和大量多元短文件流的情况下用来取代TCP的。
UDT主要作为TCP的朋友,和TCP并存,UDT协议分配的带宽不应该超过根据MAX-MIN规则的最大最小公平共享原则。(备注,最大最小规则允许UDT在高BDP连接下分配TCP不能使用的可用带宽)。