UDX

协议产生背景 略

UDX优势
UDX追求的是最大带宽利用率,吞吐量及实时性,适合中国窄带环境。
其算法始终贯穿其中。

高效率是其优点,友好性是其缺点。
算法实现语言:C++
平台:win/linux
接口:C++

1,带宽
对带宽的评估,预测。
l         在检测最大发送窗口的时候,是参照RENO算法,丢包检测.但是在之个过程中,UDX还检测了ACK的回复率,当出现ACK回复频率发生变化(变化率K > 0.35)时表明现在网络出现了波动,可以预测已经达到拥塞临界,这有点象VEGAS一样,可以提前预测出现拥塞,这时UDX调整慢启动阀值,提前进入拥塞避免阶段.

l         结合了SACK算法,每个ACK协带了多个应答包,从而精确实现了选择性重传.减少了不必要的重传.与传统ACK不同点是,协带了更多的ACK,而且设计了新的ACK结构,增加压缩ACK方法,从而应答数据量也比较少.

l         在拥塞避免阶段,通过计算DIFF = minrtt*(wnd/minrtt - wnd/rtt) < avgbew*0.35f,提前预测拥塞.这个不同点在avgbew,这个值是通过ACK应答计算而来,接近真实值,从而避免了传统VEGAS的计算值不准确(一般不准确发生在,由于网关的硬件限速).

l         丢包检测算法,每个发送包上记录了,上次发送的时间和最大发送序号,当收到ACK时和当前对应量进行比较,可以精确知道哪个包需要重传,而不必等到超时到来.从而可以快速响应重传节省了时间.

l         快速恢复,当UDX联续收到二个新的ACK时立即恢复到先前的发送窗口,减少了恢复开消.

l         结合WEST WOOD的,通过统计方式计算流量,通过RTT/WND =BEW的公式,计算理论 发送窗口和实际窗口进行比较,从而提高稳定性,使发送稳定在实际的代宽.


2,快速重传
UDX的ACK设计,其实就是SACK协议,但是实现手法是不同于SACK,sack是首尾序号对,而UDX是一个起始序号,及后面的相对序号组成,这样可以容纳更多的ACK.当发送方收到任何一个ACK时就可以准确的确定哪个包已经丢掉了,这时可以马上重传,而不需要等到超时后再重传,从而提高了实时性及间接的提高了吞吐量。

3,AIDM上有何改进
l         慢启动阶段和TCP类是W += 1,拥塞避免阶段是W += 1/W;
l         UDX在窗口管理上,也采用了不同的设计方法。其中引入了一个饱和状态,也就是最佳状态。而实际发送速度是这个最佳状态时的1.25倍发送速度。这样可以保证较高的竟争性。
l         UDX中,度量的单位是当前流量,控制窗口的核心思想是,控制流量的增量。当增量趋近于实际流量的<= 5%波动时,认为,流量已经最大,这时进入饱和状态,当UDX进入饱和状态时,转入拥塞避免加速模式,窗口不增大反而会减小,达到一个动态平横,使发送速度,始终稳定在一个水平上。

l         另外不同点是,窗口控制是,传统TCP是每周期增长幅度最大为1,而UDX是ACK驱动窗口增长的,并没有限制在RTT内变化值,所以,他的加速可能会在一个RTT内超过1.

l         UDX针对不同的网络进行了RTT的自动适应算法,引入了一个我自己取名叫理论流量的概念,他与实际收到的数据计算的流理进行比较,当理论流量小于实际流量时会对窗口进行校正,使其保持在当前流量的窗口大小,这样流量更加平稳,不会出现偏差。只有流量的平稳性才能让其他参数有意义,否则流量控制成为空谈,这也是其他算法的缺点。

l         丢包控制:UDX每收到一个丢包信号时,会对拥塞窗口进行调整,采用sstresh = wnd*a,wnd +=b;其中a,b(可负)是UDX经验值,具体参数可以调整。

l         结合丢包控制:UDX在每100个ACK到来会计算一次丢包率,根据丢包率对A,B进行调整,这样更能结合实际网络状况对窗口进行调整。为了追求最大速度,UDX是适当的允许丢包,以保证数据的最大吞吐量。

4,算法上有何优化
主要优化在于重传策略,及超时时间计算
重传策略上不同与其他算法,主要是
l         超时重传是由ACK驱动,而不是仅依靠定时器,这样可以更快的重传数据,增加实时性。
l         由于UDP的特性,目前 UDX是采用1.5倍计算的超时时间。超时时间为RTT + 4*|dRTT|

l         如果按传统的TCP的指数退避算法计算超时时间,在丢包和大延迟的网络,性能会急剧下降。

l         UDX主要重传发生在ACK到来时,由于收到ACK,说明网络正常,这时重发数据,比盲目依靠定时器重传可靠的多。UDX定时器只会每次发一个重发包,当网络恢复时,就会重新依靠ACK把重发包快速发出去。

l         启动加速时,UDX是通过理论流量作为参考的,当计算的理论流量,在<1/MINRTT时,UDX是忽略丢包的,这样可以较快的加速到实际最大带宽

5,针对wifi调整了什么参数
在无线3G领域,UDX没有做过多的优化,无线网络主要特性和有线网络还是比较明显。其特点是,波动大,流量不稳定,丢包率不固定,完全受环境的信号影响。
从这个特性上来看,UDX的若干改进还是比较适合这种环境,较其他算法,更有抗丢包和干扰。比如,ACK设计及快速重传等。

6.友好性
UDX相对TCP来说,是完全不友好的,一般UDX和TCP同时运行,TCP所占流量基本一半不到。较其他算法更具有抢占性。这个主要原因还是由于UDX算法决定的。UDX在超时重传上比较精确,造成别人的算法还没有来得及恢复窗口时,UDX已经恢复到了最佳窗口从而更多的利用代宽。


6,在多媒体传输上的优势
l         Udx主要体现在其实时性,特别适合传送视频,网络越复杂,环境 越是恶劣,越是适合UDX。对于音频,UDX适合在低延迟,低丢包率的网络(RTT小于150MS,丢包小于5%)。因为是可靠数据传播 ,相对于RTP这类实时协议音质要好很多。但实时性略差,或人感觉不出来,在丢包环境,只要延迟小于100ms,语音较RTP有较大提高,实时性也感觉不出来。

l         对于丢包大,特别是延迟大的网络,由于个别包的丢失,可能会造成较大的语音延迟。但UDX在算法层支持不可靠和半可靠传输,相当于一个变相的折中。这时和RTP没有明显区别。

l         另外一个特点可以说是另外的,UDX支持单条连接上内置了四条子通道。每条通道相当于一个小的UDX连接,都是可靠传输,也可以设置成不可靠,各条子通道不影响。
l         特点是各个子通道可以设置优先级别,这样,可以支持优先发送某些数据。
l         比如语音。或远程控制,这类需要实时画面的应用,不会影响总共的吞吐量,这相当于UDX在应用层上一个优化设计,和算法本身并无关系。

7.UDX接口。
l         提供了流式接口,包接口。
l         处理粘包问题,使用户只处理业务包,可以发送较大的业务包。接收方,收到的也只是业务包。
l         提拱P2P,接口及中转接口

8.参数设置
1.UDX全局设置
l         包括最小传输单元MSS
l         内部时钟
l         最小ACK回复间隔
l         最小超时
l         最大超时
l         多少个包应答一次
l         及最小初使窗口
2.UDX单个连接设置
l         联接超时
l         心跳间隔
l         是否是固定流量发送
l         
9.其他参考资料


10.作者及联系方式
作者:李良刚 2000本科毕业于海军工程大学,一直从事计算机相关领域软件开发工作。
联系方式:qq 24508609 邮箱:wwwllg@126.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值