UDT协议UDP可靠数据传输协议.pdf
《UDT协议UDP可靠数据传输协议.pdf》由会员分享,可在线阅读,更多相关《UDT协议UDP可靠数据传输协议.pdf(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1.介绍随着网络带宽时延产品(BDP)的增加,通常的 TCP 协议开始变的低效。这是因 为它的 AIMD(additive in crease multiplicative decrease算法彻底减少了 TCP 拥 塞窗口,但不能快速的恢复可用带宽。理论上的流量分析表明 TCP 在 BDP 增加 到很高的时候比较容易受包损失攻击。另外,继承自 TCP 拥塞控制的不公平的 RTT 也成为在分布式数据密集程序中 的严重问题。拥有不同 RTT 的并发 TCP 流将不公平地分享带宽。尽管在小的 BDP 网络中使用通常的 TCP 实现来相对平等的共享带宽,但在拥有大量 BDP 的 网络中,通常的基于
2、TCP 的程序就必须承受严重的不公平的问题。这个 RTT 基 于的算法严重的限制了其在广域网分布式计算的效率,例如:计算。一直到今天,对标准的 TCP 的提高一直都不能在高 BDP 环境中效率和公平性方面达到满意的程度(特别是基于 RTT 的问题)。例如:TCP 的修改,RFC1423(高性能扩展),RFC2018(SACK)、RFC2582(New Re no)、RFC2883(D-SACK)、和 RFC2988(RTO 计算)都或多或少的提高了点效率,但最根本的 AIMD 算法 没有解决。HS TCP(RFC 3649)通过根本上改变 TCP 拥塞控制算法来在高 BDP 网络中获得高带宽利
3、用率,但公平性问题仍然存在。考虑到上面的背景,需要一种在高 BDP 网络支持高性能数据传输的传输协议。我们推荐一个应用程序级别的传输协议,叫 UDT 或基于 UDP 的数据传输协议并 拥有用塞控制算法。本文描述两个正交的部分,UDP 协议和 UDT 拥塞控制算法。一个应用层级别的 协议,位于 UDP 之上,使用其他的拥塞算法,然而这些本文中描述的算法也可 以在其他协议中实现,例如:TCP。一个协议的参考实现叫UDT;详细的拥塞控制算法的性能分析在GHG04中可以找到。in ternet 上的网格2.2.设计目标UDT 主要用在小数量的 bulk 源共享富裕带宽的情况下,最典型的例子就是建 立在
4、光纤广域网上的网格计算,一些研究所在这样的网络上运行他们的分布式的 数据密集程序,例如,远程访问仪器、分布式数据挖掘和高分辨率的多媒体流。UDT 的主要目标是效率、公平、稳定。单个的或少量的 UDT 流应该利用所有 高速连接提供的可用带宽,即使带宽变化的很剧烈。同时,所有并发的流必须公 平地共享带宽,不依赖于不同的带宽瓶劲、起始时间、RTT。稳定性要求包发送 速率应该一直会聚可用带宽非常快,并且必须避免拥塞碰撞。UDT 并不是在瓶劲带宽相对较小的和大量多元短文件流的情况下用来取代TCP 的。UDT 主要作为 TCP 的朋友,和 TCP 并存,UDT 分配的带宽不应该超过根据 MAX-MIN规则
5、的最大最小公平共享原则。(备注,最大最小规则允许 UDT 在 高 BDP 连接下分配 TCP 不能使用的可用带宽)。我们3.3.协议说明3.1.概述UDT 是双工的,每个 UDT 实体有两个部分:发送和接收。发送者根据流量控 制和速率控制来发送(和重传)应用程序数据。接收者接收数据包和控制包,并 根据接收到的包发送控制包。发送和接收程序共享同一个 UDP 端口来发送和接 收。接收者也负责触发和处理所有的控制事件,包括拥塞控制和可靠性控制和他们 的相对机制,例如 RTT 估计、带宽估计、应答和重传。UDT 总是试着将应用层数据打包成固定的大小,除非数据不够这么大。和 TCP 相似的是,这个固定的
6、包大小叫做 MSS(最大包大小)。由于期望 UDT 用来传 输大块数据流,我们假定只有很小的一部分不规则的大小的包在 UDT session 中。MSS 可以通过应用程序来安装,MTU 是其最优值(包括所有包头)UDT 拥塞控制算法将速率控制和窗口(流量控制)合并起来,前者调整包的 发送周期,后者限制最大的位被应答的包。在速率控制中使用的参数通过带宽估 计技术来更新,它继承来自基于接收的包方法。同时,速率控制周期是估计 RTT 的常量,流控制参数依赖于对方的数据到达速度,另外接收端释放的缓冲区的大 小。32包结构UDT 有两种包:数据包和控制包。他们通过包头的第一位来区分(标志位)如果是0,表
7、示是数据包,1 表示是控制包。数据包数据包结构如下显示:0012 3 4 5 6 7 8 9 0 18 9 0 10包序号应用数据包序号是 UDT 数据包头中唯一的内容。它是一个无符号整数,使用标志位后 的 31位,UDT 使用包基础的需要,例如,每个非重传的包都增加序号1。序号132 3 4 5 6 7 8 9 0 12 3 4 5 6 74在到达最大值 2八31-1 的时候覆盖。紧跟在这些数据后面的是应用程序数据。控制包控制包结构如下:0012 3 4 5 6 7 8 9 0 18 9 0 1132 3 4 5 6 7 8 9 0 12 3 4 5 6 741类型保留ACK 序号控制信息字
8、段有 6 种类型的控制包在 UDT 中,bit1-3 表示这些信息。前 32 位在包头中必须 存在。控制信息字段包括 0(例如,它不存在)或者多个 32 位无符号整数,这 由包类型决定。UDT 使用应答子序号的方法。每个 ACK/ACK2 包有一个无符号的 16 位序号,它独立于数据包需要。它使用位 16-31。应答需要从 0 到(2X6-1)。位 16-31 在其他控制包中没有定义。类型000说明协议连接握手控制信息1.32 位 UDT 版本2.32 位内部顺序号3.32 位 MSS(字节)4.32 位 最大流量窗口大小(字节)001010保活应答,位 16-31 是应答序号没有1.32 位
9、包序号,先前接收到的包序号2.32 位,RTT(微秒)3.32 位,RTT 变量或者 RTTVar(微秒)4.32 位,流量窗口大小(包的数量)5.32 位,连接容量估计(每秒包的数量)011100Negative 应答(NAK)丢失信息的 32 位整数数组,见 3.9 节保留这种类型的控制信息保留作为拥塞警告使 用,从接收到发送端。一个拥塞警告能被 ECN 或包延迟增加趋势的度量方法触发。101110关闭应答一个应答(ACK2)4-15 的解释保留将来使用16-31 位,应答序号。111注意,对于数据和控制包来说,可以从 UDP 协议头中得到实际的包大小。包大小信息能被用来得到有效的数据负载
10、和 NAK 包中的控制信息字段大小3.3.定时器UDT 在接收端使用 4 个定时器来触发不同的周期事件,包括速率控制、应答、丢失报告(negative 应答)和重传/连接维护。UDT 中的定时器使用系统时间作为源。UDT 接收端主动查询系统时间来检查 一个定时器是否过期。对于某个定时器 T 来说,其拥有周期 TP,将定变量 t 用 来记录最近 T被设置或复位的时间。如果 T 在系统时间 tO(t=tO)被复位,那 么任何 t1(t1-t=TP)是 T 过期的条件。四个定时器是:RC 定时器、ACK 定时器、NAK 定时器、EXP 定时器。他们 的周期分别是:RCTP、ATP、NTP、ETP。R
11、C 定时器用来触发周期性的速率控制。ACK 定时器用来触发周期性的有选择 的应答(应答包)。RCTP 和 ATP 是常量值,值为:RCTP=ATP=O.O1 秒。NAK 被用来触发 negative 应答(NAK 包)。重传定时器被用来触发一个数据 包的重传和维护连接状态。他们周期依赖于对于 RTT 的估计。ETP 值也依赖于 连续 EXP时间溢出的次数。推荐的 RTT初始值是0.1秒,而NTP和ETP的初 始值是:NTP=3*RTT,ETP=3*RTT+ATP。在每次 bounded UDP 接收操作(如果收到一个 UDP 包,一些额外的必须的数 据处理时间)时查询系统时间来检查四个定时器是
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- UDT 协议 UDP 可靠 数据传输
限制150内