随着网络带宽时延产品(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]中能够找到。
UDT主要用在小数量的bulk源共享富裕带宽的情况下,最典型的例子就是建立在光纤广域网上的网格计算,一些研究所在这样的网络上运行他们的分布式的数据密集程式,例如,远程访问仪器、分布式数据挖掘和高分辨率的多媒体流。
UDT的主要目标是效率、公平、稳定。单个的或少量的UDT流应该利用任何高速连接提供的可用带宽,即使带宽变化的很剧烈。同时,任何并发的流必须公平地共享带宽,不依赖于不同的带宽瓶劲、起始时间、RTT。稳定性需要包发送速率应该一直会聚可用带宽很快,并且必须避免拥塞碰撞。
UDT并不是在瓶劲带宽相对较小的和大量多元短文档流的情况下用来取代TCP的。
UDT主要作为TCP的朋友,和TCP并存,UDT分配的带宽不应该超过根据MAX-MIN规则的最大最小公平共享原则。(备注,最大最小规则允许UDT在高BDP连接下分配TCP不能使用的可用带宽)。
UDT能够充分利用当前有线网络的单独于连接容量的可用带宽 、RTT、后台共存流、给定的连接比特错误率。UDT在没有数据包丢失的情况下从0bits/s到90%带宽需要一个常量时间,这个时间是7.5秒。UDT并不适合无线网络。
UDT的确满足单瓶劲网络拓扑的最大-最小公平性。在多个瓶劲情况下,根据最大最小原则他能确保较小瓶劲连接或至少一半的平等共享(it guarantees that flows over smaller bottleneck links obtain at least half of their fair share according to max-min rule)。RTT对公平性都一点影响。
当和大块的TCP流共存的时候,TCP能占用比UDT更多的带宽,除了三种情况:
1. 网络BDP很大,TCP不能利用他们的公平共享带宽。这种情况下,UDT将占用TCP不能利用的带宽。
2. 连接容量是如此的小,从而导致UDT的带宽估计技术不能最有的工作;模拟显示这个极限连接容量大约是100kb/s。
3. 在使用FIFO队列作为网络路径的网络中,假如队列大小大于BDP,TCP的共享带宽随着队列大小的增加而降低。然而,抵达UDT的共享带宽是,队列大小通常超过实际路由器/交换机提供的数量。
当短(timewise)类似web的TCP流和小的并发UDT流共存的时候,UDT在TCP流上的效果很小。
更多的分析在[GHG03]。
5. 安全考虑UDT并没有使用特定的安全机制,相反,他依赖于应用程式提供的授权和底层提供的安全机制。
然而,由于UDP是无连接的,UDT实现应该检查任何达到的包是否是预期的来源。这是从socket的API连接概念中继承而来,其连接只是接收指定来源的数据。
6.UDT SOURCE CODE LINK
UDT协议介绍
最新推荐文章于 2022-10-12 10:18:02 发布