锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 开源技术 / 基于UDP的数据传输协议UDT / UDT背景和术语
服务方向
人工智能数据处理
人工智能培训
kaldi数据准备
小语种语音识别
语音识别标注
语音识别系统
语音识别转文字
kaldi开发技术服务
软件开发
运动控制卡上位机
机械加工软件
软件开发培训
Java 安卓移动开发
VC++
C#软件
汇编和破解
驱动开发
联系方式
固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft

一、背景


在过去的几年里,网络带宽一直高速地增长。愈发普及的高速网络使许多新生的分布式 数据密集型应用成为可能。这些密集型应用涉及卫星气象数据、天文检测数据和网络监控等 领域。


多种网络的带宽时延乘积

随着高速网络的带宽时延乘积的增长,TCP的通信效率愈发地显露出了弊端。TCP的 AIMD拥塞控制算法过激地降低拥塞窗口的大小,但是不能快速地恢复到高位去利用网络 的有效带宽。

UDT协议出现的最初动机,正是为了解决在高带宽时延乘积的网络里TCP通信效率低 下的问题。另外,基于UDT的协议框架,开发人员可以实现自定义的拥塞控制算法。而且, 基于UDP的UDT协议,可以很容易地穿越NAT防火墙。

正是以上的背景环境,催生了一个定义良好的、改进的、基于UDP的应用层协议--- UDT。UDT自发布到现在,已经更新至第4版。本文对第4版UDT协议进行调研。

二、术语


2.1 往返时延(RTT:Round-Trip Time)

表示从发送端发送数据开始,到发送端接收到来自接收端的确认(接收端接收到数 据后便立即发送确认),总共经历的时延。

2.2 带宽时延乘积(BDP:Bandwidth Delay Product)

表示一个连接的通道容量。表示为BDP = Capacity(b) = Bandwidth(b/s) x RTT(s)

2.3 拥塞控制(CC:Congestion Control)

为了更有效率地利用网络带宽,通过限制拥塞扩散和持续时间来减轻拥塞的一组操作。 拥塞现象是指到达通信子网中某一部分的分组数量过多,使得该部分网络来不及处理, 以致引起这部分乃至整个网络性能下降的现象,严重时甚至会导致网络通信业务陷入停顿 即出现死锁现象。

造成拥塞的原因:

1) 多条流入线路有分组到达,并需要同一输出线路。此时,如果路由器没有足够 的内存来存放所有这些分组,那么有的分组就会丢失。

2) 路由器处理器的处理能力低,以至于难以完成必要的处理工作,如缓冲区排 队、更新路由表等。

2.4 流量控制(Flow Control)

UDT接收端为了避免接收缓冲区溢出,使用的流量控制策略。

流量控制的计算,放在接收端。

2.5 基于窗口(Window-based)和基于速率(Rate-based)

窗口控制发送突发的数据,而且当发送端认识到通信的链路出现拥塞时,窗口控制可 能已经发送了大量的信息包。此外,突发的流量需要路由器能提供足够大的缓存来暂存这些 信息包,即便是在BDP网络上。但是,在高BDP的网络上,可能因为缓存的问题变得不切 实际。

在TCP里,采用基于窗口(Window-based)的窗口控制机制来缓解上述问题。 在高BDP网络里,更好的解决方案,使用一个高效的基于速率的速率控制机制,直接 去调整包的发送周期。但是,速率控制也会产生另一种持续的丢包:当拥塞产生时,数据源 未接收到丢失报告或者超时事件时,仍持续发出数据。

UDT结合两种控制机制。速率控制作为主要机制,用来调整包发送周期;窗口控制机 制作为辅助机制(通过指定一个动态的阈值,限制未应答的包数)。

UDT的窗口控制也被成为流量控制。因为它采用了一个简单的流量控制机制(在拥塞窗 口大小和当前可用的接收缓冲大小之间选取最小值)。

2.6 AIMD(Additive Increase Multiplicative Decrease)

当发送方感受到端到端路径无拥塞时,就线性的增加其发送速度;当察觉到路径拥 塞时,就乘性减小其发送速度。

x = x + α(x);每一个间隔时间期满时。x的单位:包数/秒。

x = (1 - β) x;当丢失事件产生时。

TCP:α(x) = 1。每一个间隔时间是:RTT。

β = 0.5。

UDT:α(x) = F(B – x) c。B表示网络带宽(Bandwidth),c是一个固定的常量值。

a(x) =10[log(B-x)] ×c

每一个间隔时间是:速率控制的常量值(或者称为同步时间间隔) SYN。

SYN = 0.01秒。

β= 1–(8/9)n。n是一个随机数,作为β的影响因子。

2.7 轻量的应答(Light ACK)

UDT协议的实现里,可生成更多的轻量应答。这些轻量的应答协助信息包发送时的同步

处理。

但是,为了减少处理时间,轻量的应答不会改变协议缓冲区的状态。

2.8 拥塞周期(Congestion Period)

UDT协议里,“一个拥塞周期”解释为:是介于 2个NAK应答包的周期值,并且在2 个NAK包之间,第一个最大丢包的序列号应当大于LastDecSeq(当最后一次发包速率降 低时,该值是最大的序列号)。

在一个拥塞周期里,可能出现多个丢失事件。

友情链接
版权所有 Copyright(c)2004-2021 锐英源软件
公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768
地址:郑州大学北校区院(文化路97号院)内