Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1471858
  • 博文数量: 150
  • 博客积分: 65
  • 博客等级: 民兵
  • 技术积分: 3415
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-25 10:30
个人简介

游戏后台开发

文章分类

全部博文(150)

文章存档

2020年(1)

2019年(4)

2017年(3)

2016年(6)

2015年(4)

2014年(45)

2013年(86)

2012年(1)

分类: 网络与安全

2014-02-19 22:53:42

关健字:

UDP

UDX

UDT

TCP

吞吐量

流量

代宽

拥塞控制

 

大都知道,UDP是不可靠传输协议与TCP刚好相反.

不过因为UDP的特性适合传输不需要确认的数据,在应用层如果设计好的传输协议一样可以进行很好的可靠传输.比如RUDP协议.

但是光可靠传输还不够,流量控制是很重要的.

 

我们从简单的情况说起来说明流量控制的重要性.

 

可靠性:

故名思意,就是客户1发送一个包给客户2,客户2能收到这个包.这才叫可靠传输.

 

最简单的可靠传输协议就是停止等待协议,一问一答方式.

打个比方就是,我发了一封邮件,对方打开邮件后,发送一封回信,也叫回致,那么发送方知道了对方已经收到了我的邮件.

很显然,在等待回信的时候,有很大一段时间是用来等待的,这样对于流量来说是很大的浪费.

 

 

滑动窗口协议,是TCP使用的一种流量控制方法。该协议允许发送方在停止并等待确认前可以连续发送多个分组。由于发送方不必每发一个分组就停下来等待确认,因此该协议可以加速数据的传输.

 

我们可以仿照TCP来完成UDP的可靠传输,而这篇BLOG不是用来说明滑动窗口协议.我们来分析一下本质.

 

 

在流量控制上现在主要有几种技术方案,通过往返时间的增量来控制.丢包时间差控制,流量控制,ACK返回控制.等 主流控制方法.

 

他们控制的核心就是控制发送窗口的大小,窗口越大意味着发送流量越大.

 

我们分别对这些控制方法进行一个解说.当了解这些方法后,我们可以对实现这个可靠传输有了更准确的一个指导思想.

 

RTT方法,这个方法代表的tcp实现是TCP vegas.他是通过测RTT,通过公式  Expected =WindowSiz/BaseRTT及Actual = WindowSize/RTT,及Diff = Expected-Actual,来动态更改发送窗口

 

当流量超过负荷时就会发生丢包,这里会发生丢包现象.当丢包发生时,一般采用折半发送窗口解除拥塞.

 

需要再次提到的,就是拥塞预测,这个是很重要的手段,传统的RENO算法,是通过丢包检测,这个方法理论上说是检测的本质,但是对于超大延时网络,如果当真的丢包了再去拥塞避免,其实已经晚已,因为,网关上已经有太多的包放在那里被无情丢弃掉了.

这样的话,会马上引发慢启动.这样效率大大损失,这在其他UDP传输算法上,比如UDT,VTCP上表现比较明显,我想他们应该是没有拥塞预测方法的.

拥塞预测方式,主要方法,可以通过RTT测量,和ACK频率测量,另外就是流量增量测量.

阅读(4943) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~