一种广域网TCP单边加速的方法及系统技术方案

技术编号:10663254 阅读:234 留言:0更新日期:2014-11-20 09:55
本发明专利技术公开了一种广域网TCP单边加速的方法及系统,其中,该方法包括:采集传输控制协议TCP数据包的往返延迟,并从TCP协议栈获取丢包信号;根据所述往返延迟以及丢包信号,计算出预期的拥塞控制窗口大小,并且根据预期的拥塞窗口大小,在下一个RTT周期内进行拥塞控制窗口大小的调整,从而实现广域网TCP单边加速。通过采用本发明专利技术公开的方法及系统,使得TCP连接能够更加充分的利用广域网链路的带宽资源,进而提升用户体验。

【技术实现步骤摘要】
一种广域网TCP单边加速的方法及系统
本专利技术涉及互联网信息传输
,尤其涉及一种广域网TCP单边加速的方法及系统。
技术介绍
近十年来,互联网飞速发展,互联网信息内容在急剧的膨胀,人们对互联网的依赖也日益强烈,但是与之不成比例的是数据传输的速率仍然非常有限,用户对于快速数据传输的需求与实际有限的数据传输速率之间的矛盾正在制约着互联网的发展速度。关于如何提升广域网的链路带宽使用率,加速用户访问互联网资源的速率,方法有多种,TCP单边加速方案则是一种简单易行容易部署的途径,而TCP单边加速的主要实现方式是改良旧的拥塞控制算法,或者设计新的拥塞控制算法,传统的针对高带宽和大延迟广域网的TCP拥塞控制算法包括newreno,vega,cubic等。下面将分别介绍Tahoe,NewReno,Vegas以及Cubic四种现有的TCP(传输控制协议)拥塞控制算法。1、Tahoe算法是TCP的早期版本。它的核心思想是:在初始阶段,让cwnd(拥塞窗口)以指数增长方式迅速逼进可用信道容量,当cwnd大于阈值之后,再减小cwnd的增长速度,进行乘性增,缓慢的逼近可用信道容量。Tahoe包括3个基本的拥塞控制算法:“慢启动”、“拥塞避免”和“快速重传”。(1)慢启动:避免了连接建立时突发数据流对网络的冲击。初始设置cwnd为1,并按指数型方式增长,也就是每收到一个确认(ACK),cwnd增大1,直至cwnd超过阈值ssthresh。当cwnd>=ssthresh时,Tahoe进入拥塞避免阶段。(2)拥塞避免:限制传输过程中无限制的速率增长,避免由此可能导致的拥塞。cwnd以线性方式增长,这里所谓的线性方式增长,是指,收到上一个RTT内的所有确认之后,才把cwnd加大1,如果发生超时或者连续收到3个重复ACK,Tahoe认为发生了拥塞。对于超时,置ssthresh为当前拥塞窗口的一半,cwnd=1,转入慢启动,开始指数的增大cwnd的值,如果收到3个连续ACK,则Tahoe进入快速重传阶段。(3)快速重传:根据3个重复的应答报文来判断丢包,减少了超时重传的发生,加快了源端对拥塞的响应,使得拥塞能快速消除。立即重传丢失的分组,同时置ssthresh为当前拥塞窗口的一半,cwnd=1,转入慢启动。可以看出,tahoe算法对于超时以及重复确认的处理是基本相似的。Tahoe算法存在着不足之处:在收到3个重复ACK或在超时的情况下,Tahoe置cwnd为1,然后进入慢启动阶段。这一方面会引起网络的激烈振荡,另一方面大大降低了网络的利用率。2、NewReno算法。该算法对Reno中“快速恢复”算法进行了补充,它考虑了一个发送窗口内多个报文同时丢失的情况。在Reno算法中,发送方收到一个不重复的应答后就退出“快速恢复”状态。而在NewReno中,只有当进入快速重传/快速恢复阶段的那一刻的发送窗口内的所有报文都被应答后才退出“快速恢复”状态。具体执行过程是:在快速恢复期间,TCP发送端收到一个ACK后,发送端通过此ACK应答推断出下一个丢失的数据包序列号,并且立即重传那个数据包。这样,NewReno在每个RTT内重传一个丢失的数据包,直到发生多个数据包丢失的窗口中所有丢失数据包被重传,而不是等到超时在这个期间如果还有其它重复的ACK到来,则继续快速恢复算法,直到在快速恢复初始时所有未确认数据包都被确认。尽管对Reno算法进行了完善,但是由于缺乏足够的信息来对链路拥塞状态进行预判,NewReno仍然会在TCP连接过程中导致周期性的丢包,以及随着而来的拥塞窗口的锐减,最后导致链路带宽的浪费。3、Vegas算法。该算法是一个得到普遍认可,但是未能获得广泛应用的算法。Vegas与上述介绍的算法不同,它以rtt样本值的变化作为拥塞信号,调节源端的发送速率。在算法的执行过程中,vegas会不断地采集得到rtt样本值,在每一个RTT结束的关头,会进行rtt样本值的分析,如果发现rtt样本值变大,Vegas就认为网络发生拥塞,开始减小cwnd;如果rtt样本值变小,Vegas则解除拥塞,再次增加cwnd,最关键的是,在链接的初始阶段,vegas会根据得到的rtt样本值,判断拥塞的提前到来,进而提前的转入拥塞避免阶段,这样,在理想情况下,cwnd值会稳定在一个合适的范围内。这里需要注明的是,rtt样本值是针对单个tcp数据包而言的,对于每个发送的tcp数据包,都会计算它的往返延时,这个往返延时就是要采样的rtt样本值,而RTT是针对tcp发送队列而言的,该RTT在某个特定的时刻指代的是该发送队列中的一块数据,只有这块数据都被接收方确认了,那么当前RTT才算结束,进而转入下一个RTT,这时候针对的又是后面的一部分数据了。Vegas的重传策略与上述算法也不同,它是在收到一个重复ACK后,比较数据包发出的时间和当前时间,然后决定是否重发。这样能更及时地重传丢失的数据包,提高响应速度。但是,由于Vegas与其它算法在竞争带宽方面存在不公平现象,因此未能在Internet上普遍采用,还需不断改进。4、cubic算法是基于丢包的拥塞控制算法,核心是一个立方体公式:W=C(t–K)3+Wmax其中K=Wmax*p/C的开三次方。该公式在实现中的逻辑就是,当发生丢包的时候,记录下此时的拥塞控制窗口大小,记为Wmax,然后将该窗口大小减小p倍,也就是减小Wmax*p,然后进入丢包恢复阶段,随着有新的ack到来,根据上面的公式,不断地增加拥塞窗口的大小,该公式的特点就是,在上升至Wmax的过程中,增长逐渐减慢,当超过Wmax后,增长逐渐的加快,直到发生下一次丢包,然后重复上面的过程。但是cubic毕竟仅仅基于丢包,能获得关于实际网络状况的信息较少,这就导致它绝大多数的时间都处在寻找临界窗口的状态,最终导致对于带宽的实际使用率受到了限制,不能够充分的利用链路的带宽。
技术实现思路
本专利技术的目的是提供一种广域网TCP单边加速的方法及系统,使得TCP连接能够更加充分的利用广域网链路的带宽资源,进而提升用户体验。本专利技术的目的是通过以下技术方案实现的:一种广域网TCP单边加速的方法,该方法包括:采集传输控制协议TCP数据包的往返延迟,并从TCP协议栈获取丢包信号;根据所述往返延迟以及丢包信号,计算出预期的拥塞控制窗口大小,并且根据预期的拥塞窗口大小,在下一个RTT周期内进行拥塞控制窗口大小的调整,从而实现广域网TCP单边加速。一种广域网TCP单边加速的系统,该系统包括:传输控制协议TCP拥塞控制模块,用于采集TCP数据包的往返延迟,并从TCP协议栈获取丢包信号;根据所述往返延迟以及丢包信号,计算出预期的拥塞控制窗口大小,并且根据预期的拥塞窗口大小,在下一个RTT周期内进行拥塞控制窗口大小的调整,从而实现广域网TCP单边加速。由上述本专利技术提供的技术方案可以看出,通过综合使用了往返延时以及丢包等信息作为拥塞控制的基础,通过合理的建模和设计,有效地解决了现有拥塞控制算法无法有效利用广域网带宽资源这一问题,进而提升用户体验。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实本文档来自技高网
...

【技术保护点】
一种广域网TCP单边加速的方法,其特征在于,该方法包括:采集传输控制协议TCP数据包的往返延迟,并从TCP协议栈获取丢包信号;根据所述往返延迟以及丢包信号,计算出预期的拥塞控制窗口大小,并且根据预期的拥塞窗口大小,在下一个RTT周期内进行拥塞控制窗口大小的调整,从而实现广域网TCP单边加速。

【技术特征摘要】
1.一种广域网TCP单边加速的方法,其特征在于,该方法包括:采集传输控制协议TCP数据包的往返延迟,并从TCP协议栈获取丢包信号;根据所述往返延迟以及丢包信号,计算出预期的拥塞控制窗口大小,并且根据预期的拥塞窗口大小,在下一个RTT周期内进行拥塞控制窗口大小的调整,从而实现广域网TCP单边加速;其中,所述计算出预期的拥塞控制窗口大小包括:采用负反馈控制方法进行计算,具体的:将获取到的丢包信号与往返延迟作为拥塞的信号;其中,将采集到的TCP数据包的往返延迟中的最大值作为反馈控制的预期输入,将上一个RTT周期内采集到的最大往返延迟作为实际的反馈控制系统输出。2.根据权利要求1所述的方法,其特征在于,所述在下一个RTT周期内进行拥塞控制窗口大小的调整包括:使用平滑方法进行拥塞控制窗口大小的调整,具体的:利用计算得到的实际拥塞控制窗口大小和所述预期的拥塞控制窗口大小的差值,作为下一个RTT周期的调整大小;利用该差值,在下一个RTT周期内进行平摊,减缓拥塞控制窗口的调整速度。3.一种广域...

【专利技术属性】
技术研发人员:陆世亮朱明
申请(专利权)人:中国科学技术大学
类型:发明
国别省市:安徽;34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1