控制TCP传输性能的方法及装置与流程

文档序号:12492560阅读:190来源:国知局
控制TCP传输性能的方法及装置与流程

本申请涉及计算机技术领域,尤其涉控制TCP传输性能的方法及装置。



背景技术:

TCP(Transmission Control Protocol,传输控制协议)利用序号的确认以及重传机制,提供数据流的可靠传输。而TCP本身的传输机制的设计年代比较久远,很大程度是基于当时设计时的网络设施以及环境来考虑设计的,需要对不同网络的状况具备良好自适应性。

但是,在当前网络高速发展的环境下,当网络偶尔抖动、有一定丢包、或延迟时,TCP的传输性能会急剧下降,很容易引起传输连接的延迟或阻塞,无法很好满足当前的业务需求。



技术实现要素:

本申请提供控制TCP传输性能的方法及装置,能够有效提高TCP传输性能,满足当前的业务需求。

根据本申请实施例的第一方面,提供一种控制TCP传输性能的方法,包括以下步骤:

在进入快速恢复阶段时,获取与当前的拥塞窗口成正比关系的减小比例,并以获取的减小比例缩小所述拥塞窗口;

控制TCP传输性能的任一阶段需要重传时,如果网络处于拥塞状态,或者当前的拥塞窗口低于窗口最小阈值,对关键丢失包进行重传,其中,所述关键丢失包为引起拥塞窗口变小的丢失数据包;如果所述网络处于非拥塞状态,且当前的拥塞窗口不低于窗口最小阈值,分别对可能丢失的数据包和所述关键丢失包进行重传。

在一个实施例中,所述方法还包括以下步骤:

在慢启动阶段,如果所述网络处于非拥塞状态,控制当前的拥塞窗口随着所述网络的往返时延按预设的第一指数函数指数增长,其中,所述第一指数函数的系数大于1,底数为2,指数为所述往返时延的个数;

如果所述网络处于拥塞状态,控制当前的拥塞窗口随着所述网络的往返时延按预设的第二指数函数指数增长,其中,所述第二指数函数的系数为1,底数为2,指数为所述往返时延的个数。

在一个实施例中,所述方法还包括以下步骤:

在进入快速恢复阶段时,如果所述网络预设时段前发生丢包,则保持慢启动阈值和当前的拥塞窗口不变;如果所述网络当前处于拥塞状态或发生丢包,获取当前的拥塞窗口的数值,将所述慢启动阈值和所述拥塞窗口分别减小为所获取的数值的一半。

在一个实施例中,在对所述关键丢失包进行重传时,RTO超时重传型的关键丢失包的重传优先级:高于快速重传型的关键丢失包的重传优先级,所述快速重传型的关键丢失包的重传优先级:高于其他类型的关键丢失包的重传优先级。

在一个实施例中,在分别对可能丢失的数据包和所述关键丢失包进行重传时,如果所述网络的当前可用流量处于低流量状态,则所述关键丢失包的重传优先级:高于所述可能丢失的数据包的重传优先级。

在一个实施例中,在对所述可能丢失的数据包或所述关键丢失包进行重传时,所述方法还包括以下步骤:

获取所述网络当前时段的往返时延以及之前各个历史时段的往返时延;

从各个历史时段的往返时延中,获取相邻历史时段的往返时延的差值的绝对值;

计算获取的各绝对值的平均值,生成抖动均值;

获取所述当前时段的往返时延与所述抖动均值的和,生成重传阈值;

获取所述可能丢失的数据包或所述关键丢失包的最新发送时间与当前时间的时间间隔;

如果所述时间间隔超过所述重传阈值,则对所述可能丢失的数据包或所述关键丢失包进行重传。

在一个实施例中,所述方法还包括以下步骤:

在拥塞避免阶段,如果网络处于非拥塞状态,获取与当前的拥塞窗口成反比关系的增大比例,并以获取的增大比例增大所述拥塞窗口;如果网络处于拥塞状态,使当前的拥塞窗口随着所述网络的往返时延线性增长。

在一个实施例中,所述方法还包括以下步骤:

在控制TCP传输性能的任一阶段,每隔预设的第一时段,获取所述网络重传的数据包的数量与正在传输的数据包的数量的比值,生成所述网络的TCP重传率;

如果连续生成的N+1个TCP重传率连续N次增长,且增长幅度超过第一阈值,则确定所述网络处于拥塞状态;

或者,

如果最终获取的TCP重传率超过第二阈值,则确定所述网络处于拥塞状态。

在一个实施例中,所述方法还包括以下步骤:

每隔预设的第二时段,获取所述网络当前时刻的往返时延和上一周期的往返时延;

根据预设的转换规则,将获取的往返时延转换为所述网络当前周期的往返时延;

如果连续转换所得的N+1个往返时延连续N次增长,且增长幅度超过第三阈值,则确定所述网络处于拥塞状态。

根据本申请实施例的第二方面,提供一种控制TCP传输性能的装置,包括:

拥塞窗口调节模块,用于在进入快速恢复阶段时,获取与当前的拥塞窗口成正比关系的减小比例,并以获取的减小比例缩小所述拥塞窗口;

第一重传模块,用于在控制TCP传输性能的任一阶段需要重传,且所述网络处于拥塞状态,或者当前的拥塞窗口低于窗口最小阈值时,对关键丢失包进行重传,其中,所述关键丢失包为引起拥塞窗口变小的丢失数据包;

第二重传模块,用于在控制TCP传输性能的任一阶段需要重传,所述网络处于非拥塞状态,且当前的拥塞窗口不低于窗口最小阈值时,分别对可能丢失的数据包和所述关键丢失包进行重传。

在一个实施例中,所述装置还包括:

第一增长模块,用于在慢启动阶段,所述网络处于非拥塞状态时,控制当前的拥塞窗口随着所述网络的往返时延按预设的第一指数函数指数增长,其中,所述第一指数函数的系数大于1,底数为2,指数为所述往返时延的个数;

第二增长模块,用于在慢启动阶段,所述网络处于拥塞状态时,控制当前的拥塞窗口随着所述网络的往返时延按预设的第二指数函数指数增长,其中,所述第二指数函数的系数为1,底数为2,指数为所述往返时延的个数。

在一个实施例中,所述装置还包括:

保持模块,用于在进入快速恢复阶段的期间,所述网络预设时段前发生丢包时,保持慢启动阈值和当前的拥塞窗口不变;

减半模块,用于在进入快速恢复阶段的期间,所述网络当前处于拥塞状态或发生丢包时,获取当前的拥塞窗口的数值,将所述慢启动阈值和所述拥塞窗口分别减小为所获取的数值的一半。

在一个实施例中,在对所述关键丢失包进行重传时,RTO超时重传型的关键丢失包的重传优先级:高于快速重传型的关键丢失包的重传优先级,所述快速重传型的关键丢失包的重传优先级:高于其他类型的关键丢失包的重传优先级。

在一个实施例中,在分别对可能丢失的数据包和所述关键丢失包进行重传时,如果所述网络的当前可用流量处于低流量状态,则所述关键丢失包的重传优先级:高于所述可能丢失的数据包的重传优先级。

在一个实施例中,所述装置还包括:

第一时延获取模块,用于获取所述网络当前时段的往返时延以及之前各个历史时段的往返时延;

相邻差值获取模块,用于从各个历史时段的往返时延中,获取相邻历史时段的往返时延的差值的绝对值;

抖动均值生成模块,用于计算获取的各绝对值的平均值,生成抖动均值;

重传阈值生成模块,用于获取所述当前时段的往返时延与所述抖动均值的和,生成重传阈值;

时间间隔获取模块,用于获取所述可能丢失的数据包或所述关键丢失包的最新发送时间与当前时间的时间间隔;

超时重传模块,用于在所述时间间隔超过所述重传阈值,对所述可能丢失的数据包或所述关键丢失包进行重传。

在一个实施例中,所述装置还包括:

反比增大模块,用于在拥塞避免阶段,所述网络处于非拥塞状态时,获取与当前的拥塞窗口成反比关系的增大比例,并以获取的增大比例增大所述拥塞窗口;

线性增长模块,用于在拥塞避免阶段,所述网络处于拥塞状态时,控制当前的拥塞窗口随着所述网络的往返时延线性增长。

在一个实施例中,所述装置还包括:

重传率获取模块,用于在控制TCP传输性能的任一阶段,每隔预设的第一时段,获取所述网络重传的数据包的数量与正在传输的数据包的数量的比值,生成所述网络的TCP重传率;

第一拥塞确定模块,用于在连续生成的N+1个TCP重传率连续N次增长,且增长幅度超过第一阈值时,确定所述网络处于拥塞状态;

或者,

第二拥塞确定模块,用于在最终获取的TCP重传率超过第二阈值时,确定所述网络处于拥塞状态。

在一个实施例中,所述装置还包括:

第二延时获取模块,用于每隔预设的第二时段,获取所述网络当前时刻的往返时延和上一周期的往返时延;

当前时延生成模块,用于根据预设的转换规则,将获取的往返时延转换为所述网络当前周期的往返时延;

第三拥塞确定模块,用于在连续转换所得的N+1个往返时延连续N次增长,且增长幅度超过第三阈值时,确定所述网络处于拥塞状态。

应用本申请实施例,在进入快速恢复阶段时,以与当前的拥塞窗口成正比关系的减小比例缩小所述拥塞窗口,在拥塞窗口数值较大时可以快速降低拥塞窗口的数值;控制TCP传输性能的任一阶段需要重传时,如果所述网络处于拥塞状态,或者当前的拥塞窗口低于窗口最小阈值,对引起拥塞窗口变小的丢失数据包进行重传,如果所述网络处于非拥塞状态,且当前的拥塞窗口不低于窗口最小阈值,分别对可能丢失的数据包和引起拥塞窗口变小的丢失数据包进行重传,可以通过网络所处状态以及拥塞窗口,快速确定是否重传可能丢失的数据包和引起拥塞窗口变小的丢失数据包,能及有效控制网络中传输的数据量,避免网络拥塞。拥塞避免阶段的拥塞窗口调控和快速恢复阶段的重传控制相结合,可以保证网络高吞吐量、低延迟的情况下,控制网络中传输的数据量和避免网络拥塞,能有效提高TCP的传输性能。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

图1是本申请控制TCP传输性能的方法的一个实施例流程图;

图2是本申请控制TCP传输性能的方法的另一个实施例流程图;

图3是本申请控制TCP传输性能的方法的另一个实施例流程图;

图4是本申请控制TCP传输性能的装置所在终端的一种硬件结构图;

图5是本申请控制TCP传输性能的装置的一个实施例框图;

图6是本申请控制TCP传输性能的装置的另一个实施例框图;

图7是本申请控制TCP传输性能的装置的另一个实施例框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

本申请实施例的控制TCP传输性能的方法,为了防止网络的拥塞,涉及一系列的TCP拥塞控制机制,这里提到的拥塞是指网络中存在过多的报文数据包时,网络的性能就会相应下降的现象。

一般情况下,为了防止网络的拥塞,需要进行主要依赖于一个拥塞窗口(cwnd)进行控制的TCP拥塞控制,分为四个阶段,包括:慢启动阶段、拥塞避免阶段、快速重传阶段和快速恢复阶段。

慢启动阶段:拥塞窗口初始化为1个最大数据包(MSS)大小,发送端开始按照拥塞窗口大小发送数据包,每当有一个数据包被确认,拥塞窗口就增加1个MSS大小。这样拥塞窗口的值就随着网络往返时间(Round Trip Time,RTT)呈指数级增,为了防止拥塞窗口无限制增大,设置一个叫慢启动门限(ssthresh)的变量,ssthresh的值可以是65536(以字节计算),当拥塞窗口超过该变量值后,慢启动过程结束,进入拥塞避免阶段。

拥塞避免阶段:主要是加法增大拥塞窗口,也就是拥塞窗口的值不再指数级往上升,开始加法增加。此时当窗口中所有的数据包都被确认时,拥塞窗口的数值加1,拥塞窗口的值就随着RTT开始线性增加,这样就可以避免增长过快导致网络拥塞,慢慢的增加拥塞窗口,调整到网络的最佳值。

如果一报文段的重传定时器(RTO,Retransmission Timeout)超时,且还没有得到数据确认,那么TCP就会对该报文段进行重传,当发生超时,那么出现拥塞的可能性就很大,某个报文段可能在网络中某处丢失,并且后续的报文段也没有了消息,在这种情况下,可以把ssthresh降低为cwnd值的一半,把cwnd重新设置为1,重新进入慢启动过程。

如果收到3个相同的ACK(Acknowledgement,确认应答,TCP在收到乱序到达包时就会立即发送ACK),可以判定数据包丢失,进入快速重传阶段。

快速重传阶段:将ssthresh设置为拥塞窗口的一半,将拥塞窗口再设置为ssthresh的值(也可以把拥塞窗口设置为ssthresh的值加3),进入快速恢复阶段,很多TCP传输性能控制方案中将快速重传和快速恢复统一为快速恢复阶段,对拥塞窗口进行控制。

快速恢复阶段:基于“数据包守恒”原则,即同一个时刻在网络中的数据包数量是恒定的,只有当“老”数据包离开了网络后,才能向网络中发送一个“新”的数据包,如果发送方再次接收到一个重复的ACK,那么根据TCP的ACK机制就表明有一个数据包离开了网络,于是拥塞窗口加1,当收到新的数据包的ACK时,把拥塞窗口设置为ssthresh的值,再次进入拥塞避免状态。原因是因为该ACK确认了新的数据,说明从重复ACK时的数据都已收到,该恢复过程已经结束。

本申请的实施例的控制TCP传输性能的方法,分别对拥塞避免阶段和快速恢复阶段的控制机制进行了改进优化,改进优化后,拥塞避免阶段的拥塞窗口调控和快速恢复阶段的重传控制相结合,可以保证网络高吞吐量、低延迟的情况下,控制网络中传输的数据量和避免网络拥塞,能有效提高TCP的传输性能。

参见图1,图1是本申请控制TCP传输性能的方法的一个实施例流程图,该方法可以包括以下步骤101-103:

步骤101:在进入快速恢复阶段时,获取与当前的拥塞窗口成正比关系的减小比例,并以获取的减小比例缩小所述拥塞窗口。

本申请实施例中,所述进入快速恢复阶段时,即进入快速恢复阶段的期间,指由拥塞避免阶段向快速恢复阶段进行转换的时间段。所述缩小比例与拥塞窗口成正比关系,即拥塞窗口的值越大,缩小比例越大,以该缩小比例缩小所述拥塞窗口,可以加快拥塞窗口的减小速度。

而缩小比例与拥塞窗口之间的正比关系,可以根据网络状况、传输状况等传输性能指标设定,例如:成线性正比关系。在一个例子中,缩小比例的最大值为百分之四十,最小值为百分之五。

实际应用中,进入快速恢复阶段时,还可以根据网络是否处于拥塞状态、以及是否有丢包来对拥塞窗口进行调控,具体的调控可以参照如下操作:

在进入快速恢复阶段时,如果所述网络预设时段前发生丢包,则保持慢启动阈值和当前的拥塞窗口不变;如果所述网络当前处于拥塞状态或发生丢包,获取当前的拥塞窗口的数值,将所述慢启动阈值和所述拥塞窗口分别减小为所获取的数值的一半。这样可以在网络状况较好的情况下,减缓拥塞窗口的减小幅度。

如果网络未处于拥塞状态,即表示网络处于非拥塞状态,拥塞窗口以字节作单位,假设TCP每次传输都是按照MSS大小来发送数据包,那么拥塞窗口按照数据包个数来做单位,拥塞窗口的值即数据包的个数,拥塞窗口增加1也就是相当于字节数增加1个MSS大小。

对于拥塞控制,拥塞状态的判断至关重要,为了快速确定网络是否处于拥塞状态,在一个可选实现方式中,本申请实施例的控制TCP传输性能的方法,可以通过以下操作确定网络是否处于拥塞状态:

在控制TCP传输性能的任一阶段,每隔预设的第一时段,获取所述网络重传的数据包的数量与正在传输的数据包的数量的比值,生成所述网络的TCP重传率。

如果连续生成的N+1个TCP重传率连续N次增长,且增长幅度超过第一阈值,则确定所述网络处于拥塞状态。

或者,

如果最终获取的TCP重传率超过第二阈值,则确定所述网络处于拥塞状态。

其中,可以根据网络性能设置N、第一时段、第一阈值以及第二阈值的具体数值,例如:N为4,第一时段可以为RTT周期,第一阈值为20%,第二阈值为15%。

而TCP重传率指重新发送信息与全部的调用信息之间的比值,在一个例子中,可通过以下公式计算TCP重传率:

in_flight=packets_out-(sacked_out+lost_out)+retrans_out;

retrains_rate=retrans_out*100/in_flight;

其中,In_flight表示正在传输的数据包数量;Packets_out表示总共发送的数据包数量;Sacked_out表示到达接收端的数据包数量;Lost_out表示丢失的数据包数量;Retrains_out表示重传的数据包数量。

为了快速确定网络是否处于拥塞状态,在另一个可选实现方式中,本申请实施例的控制TCP传输性能的方法,还可以通过以下操作确定网络是否处于拥塞状态:

每隔预设的第二时段,获取所述网络当前时刻的往返时延和上一周期的往返时延。

根据预设的转换规则,将获取的往返时延转换为所述网络当前周期的往返时延。

如果连续转换所得的N+1个往返时延连续N次增长,且增长幅度超过第三阈值,则确定所述网络处于拥塞状态。

其中,所述周期指RTT周期,可以根据网络性能设置第二时段、第三阈值的具体数值,例如:第二时段可以为RTT周期,第三阈值为10%。

在一个例子中,所述预设的转换规则包括:获取的往返时延与所述当前周期的往返时延进行权重求和。例如:获取的往返时延的权重为八分之七,当前周期的往返时延的权重为八分之一。

在其他实施例中,进入快速恢复阶段后,可以采用本领域中一般情况下的TCP控制手段对拥塞窗口进行调控。

步骤102:控制TCP传输性能的任一阶段需要重传时,如果所述网络处于拥塞状态,或者当前的拥塞窗口低于窗口最小阈值,对关键丢失包进行重传,其中,所述关键丢失包为引起拥塞窗口变小的丢失数据包。

本申请实施例中,所述窗口最小阈值可以根据网络状况设定,例如:8个MSS的大小。重传定时器超时或者满足预设的其他重传条件,即可判定需要重传,用户可以根据实际传输情况和传输需求设置重传条件。

对所述关键丢失包进行重传时,RTO超时重传型的关键丢失包的重传优先级:高于快速重传型的关键丢失包的重传优先级,所述快速重传型的关键丢失包的重传优先级:高于其他类型的关键丢失包的重传优先级。这样设置优先级可以及时缓解网络压力。

步骤103:控制TCP传输性能的任一阶段需要重传时,如果所述网络处于非拥塞状态,且当前的拥塞窗口不低于窗口最小阈值,分别对可能丢失的数据包和所述关键丢失包进行重传。

本申请实施例中,在分别对可能丢失的数据包和所述关键丢失包进行重传时,如果所述网络的当前可用流量处于低流量状态,则所述关键丢失包的重传优先级:高于所述可能丢失的数据包的重传优先级。可以通过获取TCP协议栈发送的数据的流量,确定当前可用流量,TCP发送的数据的流量越大,当前可用的流量越小。

在TCP重传机制中,如果收到3个相同的ACK(Acknowledgement,确认应答,TCP在收到乱序到达包时就会立即发送ACK),可以判定数据包丢失,本申请实施例,在考虑一定乱序的前提下,如果收到该数据包的两个相同的ACK时,可以判定该数据包可能丢失,为可能丢失的数据包。

在需要对所述可能丢失的数据包或所述关键丢失包进行重传时,在一个可选实现方式中,本申请实施例的控制TCP传输性能的方法,还可以包括以下操作:

获取所述网络当前时段的往返时延以及之前各个历史时段的往返时延。

从各个历史时段的往返时延中,获取相邻历史时段的往返时延的差值的绝对值。

计算获取的各绝对值的平均值,生成抖动均值。

获取所述当前时段的往返时延与所述抖动均值的和,生成重传阈值。

获取所述可能丢失的数据包或所述关键丢失包的最新发送时间与当前时间的时间间隔。

如果所述时间间隔超过所述重传阈值,则对所述可能丢失的数据包或所述关键丢失包进行重传。

本方式中,所述历史时段可以根据网络拥塞状况设置,例如设置为RTT周期。

在某些情景,还可以同时对慢启动阶段和快速恢复阶段的控制机制进行优化改进,实现过程可参见图2,图2是本申请控制TCP传输性能的方法的另一个实施例流程图,该实施例可以包括以下步骤201-205:

步骤201:在慢启动阶段,如果所述网络处于非拥塞状态,控制当前的拥塞窗口随着所述网络的往返时延按预设的第一指数函数指数增长,其中,所述第一指数函数的系数大于1,底数为2,指数为所述往返时延的个数。

本申请实施例中,所述第一指数函数的系数可以为10,系数越大,拥塞窗口增长速度越大,可以越快将拥塞窗口增加调整到网络的最佳值。

步骤202:在慢启动阶段,如果所述网络处于拥塞状态,控制当前的拥塞窗口随着所述网络的往返时延按预设的第二指数函数指数增长,其中,所述第二指数函数的系数为1,底数为2,指数为所述往返时延的个数。

本申请实施例中,相对于非拥塞状态,降低指数函数的系数,可及时减缓拥塞窗口增加速度,有效避免网络拥塞。

步骤203:在进入快速恢复阶段时,获取与当前的拥塞窗口成正比关系的减小比例,并以获取的减小比例缩小所述拥塞窗口。

步骤204:控制TCP传输性能的任一阶段需要重传时,如果网络处于拥塞状态,或者当前的拥塞窗口低于窗口最小阈值,对关键丢失包进行重传,其中,所述关键丢失包为引起拥塞窗口变小的丢失数据包。

步骤205:控制TCP传输性能的任一阶段需要重传时,如果所述网络处于非拥塞状态,且当前的拥塞窗口不低于窗口最小阈值,分别对可能丢失的数据包和所述关键丢失包进行重传。

在某些情景,还可以同时对拥塞避免阶段和快速恢复阶段的控制机制进行优化改进,实现过程可参见图3,图3是本申请控制TCP传输性能的方法的另一个实施例流程图,该实施例可以包括以下步骤301-305:

步骤301:在拥塞避免阶段,如果网络处于非拥塞状态,获取与当前的拥塞窗口成反比关系的增大比例,并以获取的增大比例增大所述拥塞窗口。

本申请实施例中,所述增大比例与拥塞窗口成反比关系,即拥塞窗口的值越大,增大比例越小,以该增大比例增大所述拥塞窗口,可以减慢拥塞窗口的增长速度,有效避免拥塞窗口增长过快导致网络拥塞,慢慢的增加调整到网络的最佳值,尽量使得网络保持在高吞吐量和低延迟的状况。

而增大比例与拥塞窗口之间的反比关系,可以根据网络状况、传输状况等传输性能指标设定,例如:成线性反比关系。在一个例子中,增大比例的最大值为百分之四十,最小值为百分之十。

步骤302:在拥塞避免阶段,如果网络处于拥塞状态,使当前的拥塞窗口随着所述网络的往返时延线性增长。

本申请实施例中提到的线性增长,主要是加法增大拥塞窗口,也就是拥塞窗口的值不再指数级往上升,开始加法增加。此时当窗口中所有的数据包都被确认时,拥塞窗口的数值加1,拥塞窗口的值就随着RTT开始线性增加,这样就可以避免增长过快导致网络拥塞,慢慢的增加拥塞窗口,调整到网络的最佳值。

步骤303:在进入快速恢复阶段时,获取与当前的拥塞窗口成正比关系的减小比例,并以获取的减小比例缩小所述拥塞窗口。

步骤304:控制TCP传输性能的任一阶段需要重传时,如果网络处于拥塞状态,或者当前的拥塞窗口低于窗口最小阈值,对关键丢失包进行重传,其中,所述关键丢失包为引起拥塞窗口变小的丢失数据包。

步骤305:控制TCP传输性能的任一阶段需要重传时,如果所述网络处于非拥塞状态,且当前的拥塞窗口不低于窗口最小阈值,分别对可能丢失的数据包和所述关键丢失包进行重传。

在其他实施例中,结合图2和图3所示的方法流程,可以同时对慢启动阶段、拥塞避免阶段、和快速恢复阶段进行优化改进,慢启动阶段的改进如步骤201和步骤202,拥塞避免阶段的改进如步骤301和步骤302,快速恢复阶段的改进如步骤303。

本申请控制TCP传输性能的方法,可以直接在linux OS服务器上实现快速恢复阶段的控制改进,对于非linuxos服务器,可以把业务服务器的下一跳设置为运行快速恢复阶段的控制改进的设备,从而达到提高TCP传输性能的效果。

由上述实施例可知:在进入快速恢复阶段时,以与当前的拥塞窗口成正比关系的减小比例缩小所述拥塞窗口,在拥塞窗口数值较大时可以快速降低拥塞窗口的数值;此外,在快速恢复阶段,如果所述网络处于拥塞状态,或者当前的拥塞窗口低于窗口最小阈值,对引起拥塞窗口变小的丢失数据包进行重传,如果所述网络处于非拥塞状态,且当前的拥塞窗口不低于窗口最小阈值,分别对可能丢失的数据包和引起拥塞窗口变小的丢失数据包进行重传,可以通过网络所处状态以及拥塞窗口快速确定是否重传可能丢失的数据包和引起拥塞窗口变小的丢失数据包,能及有效控制网络中传输的数据量,避免网络拥塞。拥塞避免阶段的拥塞窗口调控和快速恢复阶段的重传控制相结合,可以保证网络高吞吐量、低延迟的情况下,控制网络中传输的数据量和避免网络拥塞,能有效提高TCP的传输性能。

此外,还可以在慢启动阶段、拥塞避免阶段和/或快速恢复阶段,对拥塞窗口和数据包重传条件进行优化,进一步保证网络高吞吐量、低延迟的情况下,控制网络中传输的数据量和避免网络拥塞,提高TCP的传输性能。

与前述控制TCP传输性能的方法的实施例相对应,本申请还提供了控制TCP传输性能的装置的实施例。

本申请控制TCP传输性能的装置的实施例,可以应用在终端上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在终端的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本申请控制TCP传输性能的装置所在终端的一种硬件结构图,除了图4所示的处理器410、网络接口420、内存430、以及非易失性存储器440之外,实施例中装置所在的终端通常根据该终端的实际功能,还可以包括其他硬件,对此不再赘述。

上述处理器可以被配置为:在进入快速恢复阶段时,获取与当前的拥塞窗口成正比关系的减小比例,并以获取的减小比例缩小所述拥塞窗口;控制TCP传输性能的任一阶段需要重传时,如果网络处于拥塞状态,或者当前的拥塞窗口低于窗口最小阈值,对关键丢失包进行重传,其中,所述关键丢失包为引起拥塞窗口变小的丢失数据包;如果所述网络处于非拥塞状态,且当前的拥塞窗口不低于窗口最小阈值,分别对可能丢失的数据包和所述关键丢失包进行重传。

参见图5,图5是本申请控制TCP传输性能的装置的一个实施例框图,该装置可包括:拥塞窗口调节模块510、第一重传模块520和第二重传模块530。

其中,拥塞窗口调节模块510,用于在进入快速恢复阶段时,获取与当前的拥塞窗口成正比关系的减小比例,并以获取的减小比例缩小所述拥塞窗口。

第一重传模块520,用于在控制TCP传输性能的任一阶段需要重传,且所述网络处于拥塞状态,或者当前的拥塞窗口低于窗口最小阈值时,对关键丢失包进行重传,其中,所述关键丢失包为引起拥塞窗口变小的丢失数据包。

第二重传模块530,用于在控制TCP传输性能的任一阶段需要重传,所述网络处于非拥塞状态,且当前的拥塞窗口不低于窗口最小阈值时,分别对可能丢失的数据包和所述关键丢失包进行重传。

在一个可选的实现方式中,第一重传模块520或第二重传模块530在对所述关键丢失包进行重传时,RTO超时重传型的关键丢失包的重传优先级:高于快速重传型的关键丢失包的重传优先级,所述快速重传型的关键丢失包的重传优先级:高于其他类型的关键丢失包的重传优先级。

在另一个可选的实现方式中,在第二重传模块530分别对可能丢失的数据包和所述关键丢失包进行重传时,如果所述网络的当前可用流量处于低流量状态,则所述关键丢失包的重传优先级:高于所述可能丢失的数据包的重传优先级。

在另一个可选实现方式中,本申请实施例的控制TCP传输性能的装置还可以包括(图5中未示出):

第一时延获取模块,用于获取所述网络当前时段的往返时延以及之前各个历史时段的往返时延。

相邻差值获取模块,用于从各个历史时段的往返时延中,获取相邻历史时段的往返时延的差值的绝对值。

抖动均值生成模块,用于计算获取的各绝对值的平均值,生成抖动均值。

重传阈值生成模块,用于获取所述当前时段的往返时延与所述抖动均值的和,生成重传阈值。

时间间隔获取模块,用于获取所述可能丢失的数据包或所述关键丢失包的最新发送时间与当前时间的时间间隔。

超时重传模块,用于在所述时间间隔超过所述重传阈值,对所述可能丢失的数据包或所述关键丢失包进行重传。

在另一个可选实现方式中,本申请实施例的控制TCP传输性能的装置还可以包括(图5中未示出):

重传率获取模块,用于在控制TCP传输性能的任一阶段,每隔预设的第一时段,获取所述网络重传的数据包的数量与正在传输的数据包的数量的比值,生成所述网络的TCP重传率。

第一拥塞确定模块,用于在连续生成的N+1个TCP重传率连续N次增长,且增长幅度超过第一阈值时,确定所述网络处于拥塞状态。

在另一个可选实现方式中,本申请实施例的控制TCP传输性能的装置还可以包括(图5中未示出):

重传率获取模块,用于在控制TCP传输性能的任一阶段,每隔预设的第一时段,获取所述网络重传的数据包的数量与正在传输的数据包的数量的比值,生成所述网络的TCP重传率。

第二拥塞确定模块,用于在最终获取的TCP重传率超过第二阈值时,确定所述网络处于拥塞状态。

在另一个可选实现方式中,本申请实施例的控制TCP传输性能的装置还可以包括(图5中未示出):

第二延时获取模块,用于每隔预设的第二时段,获取所述网络当前时刻的往返时延和上一周期的往返时延。

当前时延生成模块,用于根据预设的转换规则,将获取的往返时延转换为所述网络当前周期的往返时延。

第三拥塞确定模块,用于在连续转换所得的N+1个往返时延连续N次增长,且增长幅度超过第三阈值时,确定所述网络处于拥塞状态。

在另一个可选实现方式中,本申请实施例的控制TCP传输性能的装置还可以包括(图5中未示出):

保持模块,用于在进入快速恢复阶段的期间,所述网络预设时段前发生丢包时,保持慢启动阈值和当前的拥塞窗口不变。

减半模块,用于在进入快速恢复阶段的期间,所述网络当前处于拥塞状态或发生丢包时,获取当前的拥塞窗口的数值,将所述慢启动阈值和所述拥塞窗口分别减小为所获取的数值的一半。

参见图6,图6是本申请控制TCP传输性能的装置的另一个实施例框图,该装置可包括:第一增长模块610、第二增长模块620、拥塞窗口调节模块630、第一重传模块640和第二重传模块650。

其中,第一增长模块610,用于在慢启动阶段,所述网络处于非拥塞状态时,控制当前的拥塞窗口随着所述网络的往返时延按预设的第一指数函数指数增长,其中,所述第一指数函数的系数大于1,底数为2,指数为所述往返时延的个数。

第二增长模块620,用于在慢启动阶段,所述网络处于拥塞状态时,控制当前的拥塞窗口随着所述网络的往返时延按预设的第二指数函数指数增长,其中,所述第二指数函数的系数为1,底数为2,指数为所述往返时延的个数。

拥塞窗口调节模块630,用于在进入快速恢复阶段时,获取与当前的拥塞窗口成正比关系的减小比例,并以获取的减小比例缩小所述拥塞窗口。

第一重传模块640,用于在控制TCP传输性能的任一阶段需要重传,且所述网络处于拥塞状态,或者当前的拥塞窗口低于窗口最小阈值时,对关键丢失包进行重传,其中,所述关键丢失包为引起拥塞窗口变小的丢失数据包。

第二重传模块650,用于在控制TCP传输性能的任一阶段需要重传,所述网络处于非拥塞状态,且当前的拥塞窗口不低于窗口最小阈值时,分别对可能丢失的数据包和所述关键丢失包进行重传。

参见图7,图7是本申请控制TCP传输性能的装置的另一个实施例框图,该装置可包括:反比增大模块710、线性增长模块720、拥塞窗口调节模块730、第一重传模块740和第二重传模块750。

其中,反比增大模块710,用于在拥塞避免阶段,所述网络处于非拥塞状态时,获取与当前的拥塞窗口成反比关系的增大比例,并以获取的增大比例增大所述拥塞窗口。

线性增长模块720,用于在拥塞避免阶段,所述网络处于拥塞状态时,控制当前的拥塞窗口随着所述网络的往返时延线性增长。

拥塞窗口调节模块730,用于在进入快速恢复阶段时,获取与当前的拥塞窗口成正比关系的减小比例,并以获取的减小比例缩小所述拥塞窗口。

第一重传模块740,用于在控制TCP传输性能的任一阶段需要重传,且所述网络处于拥塞状态,或者当前的拥塞窗口低于窗口最小阈值时,对关键丢失包进行重传,其中,所述关键丢失包为引起拥塞窗口变小的丢失数据包。

第二重传模块750,用于在控制TCP传输性能的任一阶段需要重传,所述网络处于非拥塞状态,且当前的拥塞窗口不低于窗口最小阈值时,分别对可能丢失的数据包和所述关键丢失包进行重传。

上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。

本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1