1 / 15
文档名称:

UDT协议-基于UDP可靠数据传输协议.doc

格式:doc   页数:15页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

UDT协议-基于UDP可靠数据传输协议.doc

上传人:2028423509 2016/3/10 文件大小:0 KB

下载得到文件列表

UDT协议-基于UDP可靠数据传输协议.doc

文档介绍

文档介绍:.页眉. .页脚. 1. 介绍随着网络带宽时延产品(BDP) 的增加,通常的 TCP 协议开始变的低效。这是因为它的 AIMD ( additive increase multiplicative decrease )算法彻底减少了 TCP 拥塞窗口,但不能快速的恢复可用带宽。理论上的流量分析表明 TCP 在 BDP 增加到很高的时候比较容易受包损失攻击。另外,继承自 TCP 拥塞控制的不公平的 RTT 也成为在分布式数据密集程序中的严重问题。拥有不同 RTT 的并发 TCP 流将不公平地分享带宽。尽管在小的 BDP 网络中使用通常的 TCP 实现来相对平等的共享带宽,但在拥有大量 BDP 的网络中,通常的基于 TCP 的程序就必须承受严重的不公平的问题。这个 RTT 基于的算法严重的限制了其在广域网分布式计算的效率,例如: 上的网格计算。一直到今天,对标准的 TCP 的提高一直都不能在高 BDP 环境中效率和公平性方面达到满意的程度(特别是基于 RTT 的问题)。例如: TCP 的修改, RFC1423 (高性能扩展), RFC2018 ( SACK )、 RFC2582 ( New Reno )、 RFC2883 ( D-SACK )、和 RFC2988 ( RTO 计算)都或多或少的提高了点效率,但最根本的 AIMD 算法没有解决。 HS TCP ( RFC 3649 )通过根本上改变 TCP 拥塞控制算法来在高 BD P 网络中获得高带宽利用率,但公平性问题仍然存在。考虑到上面的背景,需要一种在高 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 不能使用的可用带宽)。我们 3. 协议说明 . 概述 UDT 是双工的,每个 UDT 实体有两个部分:发送和接收。发送者根据流量控制和速率控制来发送(和重传)应用程序数据。接收者接收数据包和控制包,并根据接收到的包发送控制包。发送和接收程序共享同一个 UDP 端口来发送和接收。接收者也负责触发和处理所有的控制事件,包括拥塞控制和可靠性控制和他们的相对机制,例如 RTT 估计、带宽估计、应答和重传。 UDT 总是试着将应用层数据打包成固定的大小,除非数据不够这么大。和 TC P 相似的是,这个固定的包大小叫做 MSS (最大包大小)。由于期望 UDT 用来传输大块数据流,我们假定只有很小的一部分不规则的大小的包在 UDT sessio n中。 MSS 可以通过应用程序来安装, MTU 是其最优值(包括所有包头)。.页眉. .页脚. UDT 拥塞控制算法将速率控制和窗口(流量控制)合并起来,前者调整包的发送周期,后者限制最大的位被应答的包。在速率控制中使用的参数通过带宽估计技术来更新,它继承来自基于接收的包方法。同时,速率控制周期是估计 RT T 的常量,流控制参数依赖于对方的数据到达速度,另外接收端释放的缓冲区的大小。 . 包结构 UDT 有两种包:数据包和控制包。他们通过包头的第一位来区分(标志位)。如果是 0,表示是数据包, 1表示是控制包。 . 数据包数据包结构如下显示: 0134 0123456789012345678901234567 . .页脚. 包序号是 UDT 数据包头中唯一的内容。它是一个无符号整数,使用标志位后的31位, UDT 使用包