一种基于tcp协议的弱网加速方法和装置的制造方法

文档序号:9673103阅读:497来源:国知局
一种基于tcp协议的弱网加速方法和装置的制造方法
【技术领域】
[0001]本发明涉及网络技术领域,尤其涉及一种基于TCP协议的弱网加速方法和装置。
【背景技术】
[0002]TCP数据包在网络上传输时会发生丢包现象,当丢包时,TCP协议认为是发生了网络拥塞,便将发送窗口或者说发送速率减少1/2,以减少发送到网络上数据包的数量。在弱网的情况下,会经常发生丢包现象,此时丢包并不一定是因为网络拥塞,也可能是因为其他方面的问题,如信道出现问题。然而TCP协议在发生丢包时并没有进行判断,而都认为是发生了网络拥塞。若不是因为网络拥塞的问题出现丢包,即使发送包的速率降到了很小,仍然会出现丢包的现象,那么就会浪费大量的网络资源,降低数据包的传输速率。

【发明内容】

[0003]为了解决在弱网的情况下TCP数据包的传输速率慢、浪费网络资源的情况,本发明提供了一种基于TCP协议的弱网加速方法和装置。
[0004]—种基于TCP协议的弱网加速方法,所述方法包括如下步骤:
[0005]侦测是否出现丢包;
[0006]如果出现丢包,判断TCP数据包传输速率是否小于设定的阈值速率;
[0007]如果TCP数据包传输速率小于设定的阈值速率,计算当前TCP数据包的丢包率和传输速率;
[0008]将当前TCP数据包的传输速率降低;
[0009]侦测是否出现丢包;
[0010]当出现丢包时,计算当前TCP数据包的丢包率、传输速率;
[0011]判断当前丢包时间与前一次丢包时间间隔是否达到预设的时间值、以及当前丢包率是否大于前一次的丢包率;
[0012]如果当前丢包时间与前一次丢包时间间隔未达到预设的时间值且当前丢包率不大于前一次的丢包率,将当前TCP数据包的传输速率进一步降低。
[0013]优选地,降低传输速率时,将当前TCP数据包的传输速率降低为λX当前TCP数据包的传输速率,其中1/2<λ〈1。
[0014]优选地,如果当前丢包时间与前一次丢包时间间隔未达到预设的时间值且当前的丢包率大于前一次的丢包率,提升当前TCP数据包的传输速率。
[0015]优选地,如果当前丢包时间与前一次丢包时间间隔不小于预设的时间值,重新判断TCP数据包传输速率是否小于设定的阈值速率。
[0016]优选地,如果TCP数据包传输速率不小于设定的阈值速率,则按照TCP拥塞方法处理。
[0017]—种基于TCP协议的弱网加速装置,所述装置包括侦测模块、判断模块、计算模块、速度调整模块,所述侦测模块用于侦测是否出现丢包;所述判断模块用于当出现丢包时,判断TCP数据包传输速率是否小于设定的阈值速率;所述计算模块用于当出现丢包且TCP数据包传输速率小于设定的阈值速率时,计算当前TCP数据包的丢包率、传输速率;所述速度调整模块用于当出现丢包且TCP数据包传输速率小于设定的阈值速率时,将当前TCP数据包的传输速率降低;所述侦测模块还用于当TCP数据包的传输速率降低后,进一步侦测是否出现丢包;所述判断模块还用于判断当前丢包时间与前一次丢包时间间隔是否达到预设的时间值、以及当前丢包率是否大于前一次的丢包率;所述速度调整模块还用于当前丢包时间与前一次丢包时间间隔未达到预设的时间值且当前丢包率不大于前一次的丢包率时,将当前TCP数据包的传输速率进一步降低。
[0018]优选地,降低传输速率时,将当前TCP数据包的传输速率降低为λX当前TCP数据包的传输速率,其中1/2〈λ〈1。
[0019]优选地,所述速度调整模块还用于,如果当前丢包时间与前一次丢包时间间隔未达到预设的时间值且当前的丢包率大于前一次的丢包率,提升当前TCP数据包的传输速率。
[0020]优选地,如果当前丢包时间与前一次丢包时间间隔达到预设的时间值,则重新判断当前丢包时的传输速率。
[0021]优选地,所述装置还包括TCP拥塞处理模块,用于当TCP数据包传输速率不小于设定的阈值速率时,则按照TCP拥塞方法处理。
[0022]本发明提供一种基于TCP协议的弱网加速方法和装置。本发明通过当丢包时判断TCP数据包的传输速率是否小于设定的阈值速率;如果TCP数据包的传输速率小于设定的阈值速率,计算当前数据包的丢包率、传输速率;将当前TCP数据包的传输速率降低;当再次丢包时计算当前数据包的丢包率、传输速率;判断当前丢包时间与前一次丢包时间的时间间隔是否达到预设的时间值以及判断当前丢包率是否大于前一次丢包率;如果当前丢包时间与前一次丢包时间的时间间隔未达到预设的时间值且当前丢包率大于前一次丢包率,提升数据包的传输速率。通过本方法解决了在弱网的情况下出现丢包时TCP协议不进行任何判断就将数据包传输速率降为原来的一半而导致的传输速率慢、浪费网络资源的情况,提升了在弱网情况下数据的传输速率,充分利用了网络资源。
【附图说明】
[0023]为了更清楚的说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图得到其他的附图。
[0024]图1是基于TCP协议的弱网加速方法流程图。
[0025]图2是基于TCP协议的弱网加速装置的功能模块图。
【具体实施方式】
[0026]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的【具体实施方式】作进一步地详细描述。
[0027]图1是基于TCP协议的弱网加速方法流程图。该方法包括如下步骤。
[0028]步骤S01,侦测是否出现丢包。侦测网络看是否出现丢包。如果出现丢包,则执行步骤S02;如果没有出现丢包,继续侦测网络看是否出现丢包。
[0029]步骤S02,判断TCP数据包传输速率是否小于设定的阈值速率。如果是,则执行步骤S04;如果否,则执行步骤S03。该设定的阈值速率可以由统计数据得到,也可以为人工设定。该设定的阈值速率根据网络条件进行设置,可以为但不限于弱网情况下较高的传输速率、正常网络情况下的平均传输速率等。数据包的传输速率通过一个往返时间RTT内所发送的数据量计算出来。其中,往返时间RTT,是指发送方发送报文到收到所发送报文对应的确认报文所经历的时间。
[0030]步骤S03,按照TCP拥塞方法处理。如果传输速率不小于设定的阈值速率,说明网络条件相对良好。在此情况下,数据包传输过程中仍然出现丢包现象,很大可能是由于发生了网络拥塞导致的,因此,执行TCP拥塞方法进行处理。流程结束。在本实施方式中,TCP拥塞方法采用现有的TCP拥塞方法,在此不再赘述。
[0031 ]步骤S04,计算当前TCP数据包的丢包率和传输速率。如果出现丢包且TCP数据包传输速率小于设定的阈值速率,则计算TCP丢包时的丢包率和传输速率。
[0032 ]步骤S05,记录当前TCP数据包的丢包时间、丢包率、传输速率。
[0033]步骤S06,将TCP数据包传输速率降为λΧ当前记录的传输速率,其中1/2〈λ〈1。优选地,λ为3/4。降速后的传输速率大于降速前的传输速率的一半,小于降速前的传输速率。由于是在弱网,同时数据包的传输速率小于设定的阈值速率的情况下发生丢包,此时不一定是发生网络拥塞,若把数据包的传输速率降很多,则很有可能浪费了带宽。
[0034]步骤S07,记录降速后的传输速率。
[0035]步骤S08,侦测是否出现丢包。如果出现丢包,则执行步骤S09;如果否,则继续侦测网络看是否出现丢包。
[0036]步骤S09,当出现丢包时,计算当前TCP数据包的丢包率、传输速率。
[0037]步骤S10,记录当前TCP数据包的丢包时间、丢包率、传输速率。
[0038]步骤S11,判断是否到达预设的时间。判断当前丢包时间与前一次丢包时间间隔是否达到预设的时间值。
[0039]如果当前丢包时间与前一次丢包时间间隔未达到预设的时间值,则执行步骤S12;如果当前丢包时间与前一次丢包时间间隔达到预设的时间值,则执行步骤S02。如果当前丢包时间与前一次丢包时间间隔大于预设的时间值,前一次丢包时间的对应数据已经没有意义。接着以当前丢包时间为准记录降低传输速率后的传输速率,后面丢包时的丢包时间、丢包率、丢包时的传输速率。可以在前一次丢包时,设置一个计时器,当再次丢包时查看计时器是否达到预设的时间值;也可以用当前记录的丢包时间减去前一次记录的丢包时间,看时间间隔是否达到预设的时间值。预设的时间值可以由统计数据得到,也可以人工设定。预设的时间值大于往返时间RTT。往返时间RTT,是指发送方发送报文到收到所发送报文对应的确认报文所经历的时间。由于网络可能已经发生了很大的变化,那么在20个往返时间RTT之前的数据没有参考价值。因此,在本实施方式中,优选地,预设的时间值不能大于20个往返时间RTT。
[0040]步骤S12,判断当前丢包率是否大于前一次丢包率。如果当前丢包时间与前一次丢包时间间隔未达到预设的时间值且当前记录的丢包率大于前一次记录的丢包率,则执行步骤S13;如果当前丢包时间与前一次丢包时间间隔未达到预设的时间值且当前丢包率不大于前一次丢包率,则执行步骤S06。如果当前丢包时间与前一次丢包时间间隔未达到预设的时间值且当前记录的丢包率大于前一次记录的丢包率,即降低数据包的传输速率后丢包率增加,说明网络丢包不是由于网络拥塞的原因,则提升数据包的传输速率。如果当前丢包时间与前一次丢包时间间隔未达到预设的时间值且当前丢包率不大于前一次的丢包率,即降低数
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1