拥塞控制方法及装置的制造方法

文档序号:10626760阅读:391来源:国知局
拥塞控制方法及装置的制造方法
【专利摘要】实施例公开了一种拥塞控制方法以及装置。该方法包括:发送方根据快速重传算法将拥塞窗口的值设置为第一值,并根据拥塞窗口向接收方发送第一段;发送方向接收方发送第一段后,接收来自接收方的确认,所述确认中携带重复选择性确认块;发送方根据比值将拥塞窗口的值设置为第二值,所述比值等于被接收方接收的重复段的字节的个数除以第一段的字节的个数,第二值大于第一值,重复段的字节的个数等于重复选择性确认块中的右边界和左边界的差值,重复段是第一段的子集。上述方案有助于提高网络带宽的利用率。
【专利说明】
拥塞控制方法及装置
技术领域
[0001]本发明涉及通信领域,尤其涉及拥塞控制方法及装置。
【背景技术】
[0002]传输控制协议(Transmiss1n Control Protocol,TCP)是传输层协议。TCP拥塞控制的算法包括:慢启动(slow start)、拥塞避免(congest1n avoidance)、快速重传(fastretransmit)和快速恢复(fast recovery)四种算法。
[0003]其中,快速重传算法包括:当发送方(sender)接收到三个重复确认(3duplicateACKs)时,即认为段(segment)丢失,则发送方重传丢失的段,而不等待重传定时器超时。快速恢复算法包括:当发送方接收到三个重复确认时,发送方通过“乘法减小”方式减小拥塞窗口,并且把慢启动门限(Slow Start Thresh,ssthresh)减半。现有的快速恢复算法中,通过“加法增加”方式增大拥塞窗口。在此之后,进入拥塞避免阶段,通过拥塞避免算法缓慢地增加拥塞窗口。上述技术方案中,容易造成网络带宽的浪费。

【发明内容】

[0004]本发明实施例提供了拥塞控制的方法以及装置,有助于提高网络带宽的利用率。
[0005]第一方面,提供了一种拥塞控制方法,包括:
[0006]发送方根据快速重传算法将拥塞窗口的值设置为第一值,并根据所述拥塞窗口向接收方发送第一段;
[0007]所述发送方向所述接收方发送所述第一段后,接收来自所述接收方的确认,所述确认中携带重复选择性确认块;
[0008]所述发送方根据比值将所述拥塞窗口的值设置为第二值,所述比值等于被所述接收方接收的重复段的字节的个数除以所述第一段的字节的个数,所述第二值大于所述第一值,所述重复段的字节的个数等于所述重复选择性确认块中的右边界和左边界的差值,所述重复段是所述第一段的子集。
[0009]结合第一方面,在第一种可能的实现方式中,所述第二值等于所述第一值加上第三值,所述第三值等于将所述拥塞窗口设置为所述第一值之前的所述拥塞窗口的值和所述第一值的差值与函数f的乘积,函数f是以所述比值为变量的有界增函数,且函数f的值小于等于I。
[0010]结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,根据下述公式确定所述第二值:
[0011 ] Cwndnew= cwnd old* β +cwndold* (1- β ) (rat1)
[0012]其中,cwnd-为将所述拥塞窗口的值设置为所述第一值前所述拥塞窗口的值,cwndold* β为所述第一值,Cwndnew为所述第二值,rat1为所述比值,函数f (rat1)为rat1的N次方,N为自然数,β为大于O且小于I的有理数。
[0013]结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,在第i个往返中,根据下述公式确定所述第i个往返中的所述第二值:
[0014]Cwndnew= cwnd old* β +cwndold* (I— β ) *f (rat1)
[0015]其中,cwnd-为将所述拥塞窗口的值设置为所述第一值前所述拥塞窗口的值,cwndold* β为所述第一值,Cwndnew为所述第i个往返中的所述第二值,rat1为所述第i个往返中的所述比值,rat1等于第I个往返至所述第i个往返中被所述接收方接收的重复段的字节的个数除以所述第一段的字节的个数,f (rat1)为rat1的N次方,N为自然数,β为大于O且小于I的有理数,所述i为大于I的整数。
[0016]结合第一方面,在第四种可能的实现方式中,所述发送方根据所述比值将所述拥塞窗口的值设置为第二值,包括:基于所述第一值,经由迭代过程得到所述第二值;
[0017]所述迭代过程包括:按照时间从先到后的顺序依次执行迭代I至迭代m,其中,迭代X中的所述拥塞窗口的值等于迭代y中的所述拥塞窗口的值加上第四值,所述第四值等于将所述拥塞窗口设置为所述第一值之前的所述拥塞窗口的值和所述迭代y中的所述拥塞窗口的值的差值与函数f的乘积,函数f是以所述比值为变量的有界增函数,且函数f的值小于等于I ;
[0018]其中,所述第二值等于迭代m中的所述拥塞窗口的值,迭代I中的所述拥塞窗口的值等于所述第一值,X大于y,X和y都是正整数,X小于等于m,m是大于等于2的正整数。
[0019]结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述发送方根据所述比值将所述拥塞窗口的值设置为第二值,包括:
[0020]通过下述迭代算法
[0021]cwnd (n+1) = cwnd (η) + (cwndold-cwnd (η)) *f (rat1)
[0022]确定所述第二值,其中,cwnd-为将所述拥塞窗口的值设置为所述第一值前所述拥塞窗口的值,cwnd (η)为迭代η中的所述第二值,cwnd (η+1)为迭代η+1中的所述第二值,cwnd (I)为所述第一值,rat1为迭代n+1中的所述比值,函数f (rat1)为rat1的i次方,n,i为正整数。
[0023]第二方面,提供了一种拥塞控制装置,包括:
[0024]发送单元,用于根据快速重传算法将拥塞窗口的值设置为第一值,并根据所述拥塞窗口向接收方发送第一段;
[0025]接收单元,用于向所述接收方发送所述第一段后,接收来自所述接收方的确认,所述确认中携带重复选择性确认块D-SACK block ;
[0026]设置单元,用于根据比值将所述拥塞窗口的值设置为第二值,所述比值等于被所述接收方接收的重复段的字节的个数除以所述第一段的字节的个数,所述第二值大于所述第一值,所述重复段的字节的个数等于所述D-SACK block中的右边界和左边界的差值,所述重复段是所述第一段的子集。
[0027]结合第二方面,在第一种可能的实现方式中,所述第二值等于所述第一值加上第三值,所述第三值等于将所述拥塞窗口设置为所述第一值之前的所述拥塞窗口的值和所述第一值的差值与函数f的乘积,所述函数f是以所述比值为变量的有界增函数,且函数f的函数值小于等于I。
[0028]结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述第二值由下述公式确定:
[0029]Cwndnew= cwnd old* β +cwndold* (I— β ) *f (rat1)
[0030]其中,cwnd-为将所述拥塞窗口的值设置为所述第一值前所述拥塞窗口的值,cwndold* β为所述第一值,Cwndnew为所述第二值,rat1为所述比值,函数f (rat1)为rat1的N次方,N为自然数,β为大于O且小于I的有理数。
[0031]结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,在第i个往返中,所述第二值由下述公式确定:
[0032]Cwndnew= cwnd old* β +cwndold* (I— β ) *f (rat1)
[0033]其中,cwnd-为将所述拥塞窗口的值设置为所述第一值前所述拥塞窗口的值,cwndold* β为所述第一值,Cwndnew为所述第i个往返中的所述第二值,rat1为所述第i个往返中的所述比值,rat1等于第I个往返至所述第i个往返中被所述接收方接收的重复段的字节的个数除以所述第一段的字节的个数,f (rat1)为rat1的N次方,N为自然数,β为大于O且小于I的有理数,所述i为大于I的整数。
[0034]结合第二方面,在第四种可能的实现方式中,所述设置单元具体用于:基于所述第一值,经由迭代过程得到所述第二值;
[0035]所述迭代过程包括:按照时间从先到后的顺序依次执行迭代I至迭代m,其中,迭代X中的所述拥塞窗口的值等于迭代y中的所述拥塞窗口的值加上第四值,所述第四值等于将所述拥塞窗口设置为所述第一值之前的所述拥塞窗口的值和所述迭代y中的所述拥塞窗口的值的差值与函数f的乘积,函数f是以所述比值为变量的有界增函数,且函数f的值小于等于I ;
[0036]其中,所述第二值等于迭代m中的所述拥塞窗口的值,迭代I中的所述拥塞窗口的值等于所述第一值,X大于y,X和y都是正整数,X小于等于m,m是大于等于2的正整数。
[0037]结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述设置单元还具体用于:通过下述迭代算法
[0038]cwnd (n+1) = cwnd (η) + (cwndold-cwnd (η)) *f (rat1)
[0039]确定所述第二值,其中,cwnd-为将所述拥塞窗口的值设置为所述第一值前所述拥塞窗口的值,cwnd (η)为迭代η中的所述第二值,cwnd (η+1)为迭代η+1中的所述第二值,cwnd (I)为所述第一值,rat1为迭代n+1中的所述比值,函数f (rat1)为rat1的i次方,n,i为正整数。
[0040]本发明实施例中,在根据快速重传算法重传第一段后,可以通过重复选择性确认块中的右边界和左边界的差值得到被接收方接收的重复段的字节的个数,并根据所述被接收方接收的重复段的字节的个数与所述第一段的字节的个数的比值增大拥塞窗口,有助于提高网络带宽的利用率。
【附图说明】
[0041]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0042]图1是本发明实施例提供的拥塞控制方法的第一实施例的流程图;
[0043]图2是本发明实施例提供的发送缓冲区的示意图;
[0044]图3是本发明实施例提供的拥塞控制方法的第二实施例的流程图;
[0045]图4A是本发明实施例提供的拥塞窗口线性恢复的示意图;
[0046]图4B是本发明实施例提供的拥塞窗口非线性恢复的示意图;
[0047]图5是本发明实施例提供的拥塞控制方法的第三实施例的流程图;
[0048]图6是本发明实施例提供的拥塞窗口迭代式恢复的示意图;
[0049]图7是本发明实施例提供的拥塞控制装置的第一实施例的结构示意图;
[0050]图8是本发明实施例提供的拥塞控制装置的第二实施例的结构示意图。
【具体实施方式】
[0051 ] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。实施例中涉及到多个术语。关于实施例涉及的术语的含义,请参考请求评论(request for comments, RFC) 2581, RFC2018 以及 RFC2883。
[0052]根据RFC2581,发送方接收到三个重复确认后,认为段丢失。进而,发送方认为网络发生拥塞,将拥塞窗口减小,并根据减小后的拥塞窗口向接收方发送被认为丢失的段。发明人发现,发送方接收到三个重复确认时,段可能没有丢失。发送方接收到三个重复确认可能是由于发送方发送的多个段乱序到达接收方造成的。也就是说,发送方接收到三个重复确认时,网络没有发生拥塞。根据减小后的拥塞窗口向接收方发送段将导致网络带宽的浪费。实施例提供的技术方案中,根据比值增大减小后的拥塞窗口。所述比值与所述接收方接收到的重复段的字节的个数成正比。由于重复段的字节的个数可以比较好的反映出发送方发送的多个段在传送的过程中发生乱序的程度。在发送方接收到相同数量的重复确认(例如三个重复确认)的情况下,多个段发生乱序的程度越高,则网络发生拥塞的程度越小。也就是说,所述比值可以比较好的反映出发送方到接收方的信道的带宽的真实值。根据所述比值增大减小后的拥塞窗口,并根据增大后的拥塞窗口与接收方通信,可以充分利用网络带宽。
[0053]本发明实施例公开了一种拥塞控制方法及装置,能够在网络数据乱序的场景下,快速恢复拥塞窗口,提升网络速率。以下分别进行详细说明。
[0054]图1是本发明实施例提供的拥塞控制方法的第一实施例的流程图。参见图1,该方法包括:
[0055]S101,发送方根据快速重传算法将拥塞窗口的值设置为第一值,并根据所述拥塞窗口向接收方发送第一段。
[0056]所述发送方具体为传输控制协议发送方(TCP sender)。所述接收方具体为传输控制协议接收方(TCP receiver)。图1所示的方法的执行主体可以是所述TCP sender。所述TCP sender可以通过网络装置实现。所述网络装置可以是路由器、网络交换机、防火墙或者负载均衡器。
[0057]举例来说,所述第一段为所述发送方根据快速重传算法确定的丢失段(lostsegment)。具体来说,所述第一段为所述发送方已向所述接收方发送的未得到所述接收方确认的段。所述第一段可以是一个段或者多个段。本领域的技术人员可以理解,一个段可以包括一个字节或者多个字节。如果一个段包括多个字节,所述多个字节分别对应的多个序列号是连续的。所述第一值可以等于将所述拥塞窗口的值设置为所述第一值之前的所述拥塞窗口的值的一半。
[0058]实施例中,所述接收方向所述发送方发送确认,用以对接收到的段进行确认。所述接收方发送的确认可以是ACK、携带SACK选项的ACK或者携带D-SACK块的ACK。
[0059]具体的,在接收到3个重复确认之后,所述发送方可将拥塞窗口的值设置为所述第一值。所述发送方向所述接收方发送所述第一段。所述发送方向所述接收方发送所述第一段具体可以是,所述发送方向所述接收方发送所述第一段的全部字节。所述发送方向所述接收方发送所述第一段具体也可以是,所述发送方向所述接收方发送所述第一段的部分字节。实际应用中,发送方既可以通过一个往返将所述第一段中的全部字节发送给接收方。发送方也可以通过多个往返将所述第一段中的全部字节按序发送给接收方。例如,所述第一段是由序列号3000至3999的字节构成的段。所述发送方可先通过一个报文向所述接收方发送序列号3000至3499的字节。然后所述发送发可以通过另一个报文向所述接收方发送序列号3500至3999的字节。需要说明的是,实施例中涉及的段是所述发送方向所述接收方发送的报文的载荷(payload)中包含的一个字节或者连续字节。所述连续字节中的多个字节分别对应的多个序列号是连续的。例如,字节A、字节B以及字节C分别对应的序列号是3、4和5。由字节A、字节B以及字节C组成的多个字节是连续字节。再比如,字节D和字节E分别对应的序列号是6和8。由字节D以及字节E组成的多个字节是不连续字节。另外,需要说明的是,如果没有相反的说明,实施例中涉及到的数量是十进制的。
[0060]本领域的技术人员可以理解,所述发送方接收到来自所述接收方的3个重复确认意味着,所述发送方接收到来自所述接收方的4个相同的确认而没有任何其他干扰报文到来(4identical ACKs without the arrival of any other intervening packets)。关于3个重复确认以及丢失段,请参考RFC2581中的第3.2节快速重传/快速恢复(FastRetransmi t/Fast Recovery)。
[0061]S103,所述发送方向所述接收方发送所述第一段后,接收来自所述接收方的确认,所述确认中携带重复选择性确认块。
[0062]具体的,所述重复选择性确认块(Duplicate Selective AcknowledgmentBlock, D-SACK Block)中的右边界(Right Edge)对应的序列号(Sequence Number)和左边界(Left Edge)对应的序列号的差值等于被所述接收方接收的重复段(dupl icatesegment)包含的字节的个数。例如,所述重复选择性确认块的左边界和右边界分别对应的序列号为3000和3500,则被所述接收方接收的重复段为由序列号3000至3499的字节构成的段,其字节的个数为500 (3499-3000+1)。
[0063]关于重复段以及重复选择性确认块的定义,请参考RFC2883,此处不再赘述。
[0064]S105,所述发送方根据比值(rat1)将所述拥塞窗口的值设置为第二值,所述比值等于被所述接收方接收的重复段的字节的个数除以所述第一段的字节的个数,所述第二值大于所述第一值,所述重复段的字节的个数等于所述重复选择性确认块中的右边界和左边界的差值,所述重复段是所述第一段的子集。
[0065]举例来说,在将所述拥塞窗口的值设置为第二值之后,如果所述第一段中还有剩余字节未被重传,发送方可以在下一个往返中根据所述第二值发送所述剩余字节至接收方,即可重复执行上述SlOl至S105来恢复拥塞窗口。可选的,当所述比值接近或等于I时,所述第二值接近或等于将所述拥塞窗口设置成所述第一值前的所述拥塞窗口的值。也就是说,拥塞窗口接近或者被恢复到快速重传前的值。举例来说,所述重复段可以等于所述第一段。所述重复段也可以是所述第一段的一部分。
[0066]本发明实施例中,在根据所述拥塞窗口向接收方发送第一段之前,发送方可以维护一个图2所示的发送缓冲区。图2所示的发送缓冲区中存储有已发送数据段201,已发送数据段202和已发送数据段203。其中,已发送数据段201是被接收方确认的数据段,已发送数据段202是未被接收方确认的数据段,已发送数据段203是被接收方确认的乱序数据段。需要说明的是,实施例中涉及的数据段是段。
[0067]具体实现中,在根据所述拥塞窗口向接收方发送第一段之前,发送方可以根据接收方返回的确认更新上述发送缓冲区。具体的,发送方可以将已发送数据段202中被接收方确认的数据段添加到已发送数据段201,可以将已发送数据段202中被接收方确认的乱序数据段添加到已发送数据段203。
[0068]本发明实施例中,在根据所述拥塞窗口向接收方发送第一段之后,发送方接收来自接收方的确认,并可以根据所述确认中携带D-SACK块确定出被接收方接收的重复段的字节的个数。所述被接收方接收的重复段的字节的个数等于所述D-SACK块中的右边界和左边界的差值。
[0069]本发明实施例中,发送方可以通过函数法来得到所述第二值。
[0070]例如,发送方通过函数:cwnd = a0+f (rat1)来得到所述第二值,其中,cwnd为所述第二值,a。为所述第一值,rat1为所述比值,f (rat1)是以所述比值为变量的增函数。示例仅是一种实现方式,实际使用中可以采用其他实现方式。
[0071]需要说明的,在通过函数法来恢复拥塞窗口的过程中,发送方可以每一个往返都执行一次S105,也可以每两个往返执行一次S105,还可以按照动态步长来执行S105。例如,发送方在第一个往返中执行一次S105,在第三个往返中执行一次S105,在第六个往返中执行一次S105,即发送方每次执行S105的步长都变大。实施例中涉及的恢复拥塞窗口,是指增大该拥塞窗口的值。
[0072]本发明实施例中,发送方还可以通过迭代法来得到所述第二值。
[0073]例如,发送方可以通过迭代算法:cwnd(n) = cwnd(n_l)+g(rat1)来得到所述第二值。其中,η为自然数,cwnd(n)是迭代η中的拥塞窗口的值,cwnd(n_l)是第是迭代n_l中的拥塞窗口的值,cwnd (I)为所述第一值,g (rat1) >0,rat1为所述比值,该迭代算法结束时的拥塞窗口的值为所述第二值。
[0074]需要说明的,在通过迭代法恢复拥塞窗口的过程中,迭代步长可以是整数个往返。迭代步长也可以是动态的。例如,在第一个往返中进行第一次迭代,在第三个往返中进行第二次迭代,在第六个往返中进行第三次迭代。
[0075]除了上述函数法和迭代法,实际应用中,发送方还可以采用其他方式来恢复拥塞窗口,以使拥塞窗口的值随着所述比值的增大而增大,可实现连接速率的恢复。
[0076]通过实施本发明实施例,发送方可以根据快速重传算法重新发送未被接收方确认的数据段至接收方,并根据接收方返回的确认中携带的D-SACK块确定被接收方接收的重复段的字节的个数,从而得到所述比值。所述发送方可以根据所述比值设置所述拥塞窗口的值(即恢复拥塞窗口),可实现在数据乱序的场景下,快速恢复拥塞窗口,提升网络速率。
[0077]图3是本发明实施例提供的拥塞控制方法的第二实施例的流程图。根据图3对应的实施例,在传输层数据乱序的场景下,发送方通过函数关系式和所述比值直接得出所述第二值,可实现快速提高网络连接速率,缓解网络拥塞。所述传输层位于开放系统互连(open systems interconnect1n)参考模型的第4层。图3所示的方法是对图1所示的方法的改进。图3对应的实施例没有提及内容,可以参考图1对应的实施例的描述。参见图3,该方法包括:
[0078]S301,发送方根据快速重传算法将拥塞窗口的值设置为第一值,并根据所述拥塞窗口向接收方发送第一段。
[0079]所述发送方具体为传输控制协议发送方。所述接收方具体为传输控制协议接收方。图3所示的方法的执行主体可以是所述TCP sender。所述TCP sender可以通过网络装置实现。所述网络装置可以是路由器、网络交换机、防火墙或者负载均衡器。
[0080]举例来说,所述第一段为所述发送方根据快速重传算法确定的丢失段。具体来说,所述第一段为所述发送方已向所述接收方发送的未得到所述接收方确认的段。所述第一段可以是一个段或者多个段。本领域的技术人员可以理解,一个段可以包括一个字节或者多个字节。如果一个段包括多个字节,所述多个
[0081]字节分别对应的多个序列号是连续的。所述第一值可以等于将拥塞窗口的值设置为所述第一值之前的拥塞窗口的值的一半。
[0082]举例来说,所述接收方对段进行确认具体可以是,所述接收方向所述发送方发送ACK, SACK或者DSACK。所述发送方收到上述ACK、SACK或者DSACK后,确定所述接收方收到所述段。
[0083]具体的,在接收到3个重复确认之后,所述发送方可将拥塞窗口的值设置为所述第一值。所述发送方向所述接收方发送所述第一段。所述发送方向所述接收方发送所述第一段具体可以是,所述发送方向所述接收方发送所述第一段的全部字节。所述发送方向所述接收方发送所述第一段具体也可以是,所述发送方向所述接收方发送所述第一段的部分字节。例如,所述第一段是由序列号3000至3999的字节构成的段。所述发送方可先通过一个报文向所述接收方发送序列号3000至3499的字节。然后所述发送方可以通过另一个报文向所述接收方发送序列号3500至3999的字节。
[0084]本领域的技术人员可以理解,所述发送方接收到来自所述接收方的3个重复确认意味着,所述发送方接收到来自所述接收方的4个相同的确认而没有任何其他干扰报文到来。关于3个重复确认以及丢失段,请参考RFC2581中的第3.2节快速重传/快速恢复。
[0085]S303,所述发送方向所述接收方发送所述第一段后,接收来自所述接收方的确认,所述确认中携带重复选择性确认块。
[0086]具体的,所述重复选择性确认块中的右边界对应的序列号和左边界对应的序列号的差值等于被所述接收方接收的重复段包含的字节的个数。例如,所述重复选择性确认块的左边界和右边界分别对应的序列号为3000和3500,则被所述接收方接收的重复段为由序列号3000至3499的字节构成的段,其字节的个数为500。
[0087]S305,所述发送方根据比值将所述拥塞窗口的值设置为第二值,所述第二值等于所述第一值加上第三值,所述第三值等于将所述拥塞窗口设置为所述第一值之前的所述拥塞窗口的值和所述第一值的差值与函数f的乘积,函数f是以所述比值为变量的有界增函数,且函数f的值小于等于I。
[0088]本发明实施例中,所述函数f既可以是所述比值的线性函数,也可以是所述比值的非线性函数。理想的,假设每一个往返中被所述接收方接收的重复段的字节的个数相同,那么,当所述函数f是所述比值的线性函数时,所述拥塞窗口的值与往返的关系可以如图4A中的直线401所示。另外,当所述函数f是所述比值的非线性函数时,所述拥塞窗口的值与往返的关系可以如图4B中的曲线403所示。
[0089]优选的,在实施上述图3实施例中的S305时,所述发送方可以通过下述公式
[0090]Cwndnew= cwnd old* β +cwndold* (I— β ) *f (rat1)
[0091]来得到所述第二值,其中,Cwndcild为将所述拥塞窗口的值设置为所述第一值前所述拥塞窗口的值,Cwndcild* β为所述第一值,Cwndnew为所述第二值,rat1为所述比值,函数f (rat1)为rat1的N次方,N为自然数,β为大于O且小于I的有理数。
[0092]利用上述公式,所述发送方可以快速的恢复拥塞窗口,并且,当rat1的值接近或等于I时,Cwndnew接近或等于cwnd old)。也就是说,拥塞窗口接近或者被恢复到快速重传前的值。
[0093]具体实现中,在第i个往返中,所述发送方可以根据下述公式确定所述第i个往返中的所述第二值:
[0094]Cwndnew= cwnd old* β +cwndold* (I— β ) *f (rat1)
[0095]其中,cwnd-为将所述拥塞窗口的值设置为所述第一值前所述拥塞窗口的值,cwndold* β为所述第一值,Cwndnew为所述第i个往返中的所述第二值,rat1为所述第i个往返中的所述比值,rat1等于第I个往返至所述第i个往返中被所述接收方接收的重复段的字节的个数除以所述第一段的字节的个数,f (rat1)为rat1的N次方,N为自然数,β为大于O且小于I的有理数,所述i为大于I的正整数。
[0096]需要说明的,f (rat1)除了可以是rat1的N次方外(N为自然数),还可以是以rat1为变量的其他形式的函数表达式,函数f (rat1)可以是rat1在区间[0,1]上的有界递增函数,当rat1等于I时,函数f (rat1)的函数值为I。
[0097]通过实施本发明实施例,发送方可以根据快速重传算法重新发送未被接收方确认的数据段至接收方,并根据接收方返回的确认中携带的D-SACK块确定被接收方接收的重复段的字节的个数,从而得到所述比值,并确立拥塞窗口与所述比值的函数关系。所述发送方可以通过函数关系式和所述比值直接得出所述第二值,可实现在报数据乱序的场景下,通过函数法恢复拥塞窗口,提升网络速率。
[0098]图5是本发明实施例提供的拥塞控制方法的第三实施例的流程图。根据图5对应的实施例,在传输层数据乱序的场景下,发送方通过迭代法来恢复拥塞窗口,即不断地用旧的拥塞窗口的值迭代出新的拥塞窗口的值,提高网络连接速率,缓解网络拥塞。所述传输层位于开放系统互连参考模型的第4层。图5所示的方法是对图1所示的方法的改进。图5对应的实施例没有提及内容,可以参考图1对应的实施例的描述。参见图5,该方法包括:
[0099]S501,发送方根据快速重传算法将拥塞窗口的值设置为第一值,并根据所述拥塞窗口向接收方发送第一段。
[0100]所述发送方具体为传输控制协议发送方。所述接收方具体为传输控制协议接收方。图5所示的方法的执行主体可以是所述TCP sender。所述TCP sender可以通过网络装置实现。所述网络装置可以是路由器、网络交换机、防火墙或者负载均衡器。
[0101]举例来说,所述第一段为所述发送方根据快速重传算法确定的丢失段。具体来说,所述第一段为所述发送方已向所述接收方发送的未得到所述接收方确认的段。所述第一段可以是一个段或者多个段。本领域的技术人员可以理解,一个段可以包括一个字节或者多个字节。如果一个段包括多个字节,所述多个字节分别对应的多个序列号是连续的。所述第一值可以等于将所述拥塞窗口的值设置为所述第一值之前的所述拥塞窗口的值的一半。
[0102]举例来说,所述接收方对段进行确认具体可以是,所述接收方向所述发送方发送ACK, SACK或者DSACK。所述发送方收到上述ACK、SACK或者DSACK后,确定所述接收方收到所述段。
[0103]具体的,在接收到3个重复确认之后,所述发送方可将拥塞窗口的值设置为所述第一值。所述发送方向所述接收方发送所述第一段。所述发送方向所述接收方发送所述第一段具体可以是,所述发送方向所述接收方发送所述第一段的全部字节。所述发送方向所述接收方发送所述第一段具体也可以是,所述发送方向所述接收方发送所述第一段的部分字节。例如,所述第一段是由序列号3000至3999的字节构成的数据段。所述发送方可先通过一个报文向所述接收方发送序列号3000至3499的字节。然后所述发送发可以通过另一个报文向所述接收方发送序列号3500至3999的字节。
[0104]本领域的技术人员可以理解,所述发送方接收到来自所述接收方的3个重复确认意味着,所述发送方接收到来自所述接收方的4个相同的确认而没有任何其他干扰报文到来。关于3个重复确认以及丢失段,请参考RFC2581中的第3.2节快速重传/快速恢复。
[0105]S503,所述发送方向所述接收方发送所述第一段后,接收来自所述接收方的确认,所述确认中携带重复选择性确认块。
[0106]具体的,所述重复选择性确认块中的右边界对应的序列号和左边界对应的序列号的差值等于被所述接收方接收的重复段包含的字节的个数。例如,所述重复选择性确认块的左边界和右边界分别对应的序列号为3000和3500,则被所述接收方接收的重复段为由序列号3000至3499的字节构成的段,其字节的个数为500。
[0107]关于重复段以及重复选择性确认块的定义,请参考RFC2883,此处不再赘述。
[0108]S505,所述发送方基于所述第一值,经由迭代过程得到所述第二值。这里,所述发送方可以根据所述比值不断的由旧的所述拥塞窗口的值迭代出新的所述拥塞窗口的值,用以恢复所述拥塞窗口。
[0109]具体的,所述迭代过程可包括:所述发送方按照时间从先到后的顺序依次执行迭代I至迭代m,其中,迭代X中的所述拥塞窗口的值等于迭代y中的所述拥塞窗口的值加上第四值,所述第四值等于将所述拥塞窗口设置为所述第一值之前的所述拥塞窗口的值和所述迭代I中的所述拥塞窗口的值的差值与函数f的乘积,函数f是以所述比值为变量的有界增函数,且函数f的值小于等于I。其中,所述第二值等于迭代m中的所述拥塞窗口的值,迭代I中的所述拥塞窗口的值等于所述第一值,X大于y,X和y都是正整数,X小于等于m,m是大于等于2的正整数。可理解的,由于X大于y,所以在所述迭代过程中,迭代y发生在迭代X之前。
[0110]可选的,当所述比值等于I时,上述函数f的值等于1,所述第二值等于将所述拥塞窗口设置为所述第一值之前的所述拥塞窗口的值。也就是说,拥塞窗口接近或者被恢复到快速重传前的值。
[0111]本发明实施例中,所述迭代过程中的所述拥塞窗口的初始值可为所述第一值。所述迭代过程的迭代步长可为整数个往返,例如,所述迭代步长为一个往返,即所述发送方可在每一个往返中增大一次所述拥塞窗口,又例如,所述迭代步长为两个往返,即所述发送方可在每两个往返中增大一次所述拥塞窗口。
[0112]优选的,在实施上述图5实施例中的S505时,发送方可以通过下述迭代算法
[0113]cwnd (n+1) = cwnd (η) + (cwndold-cwnd (η)) *f (rat1)
[0114]来确定所述第二值,其中,Cwndcild为将所述拥塞窗口的值设置为所述第一值前所述拥塞窗口的值,cwnd (η)为迭代η中的所述第二值,cwnd (η+1)为迭代η+1中的所述第二值,cwnd (I)为所述第一值,rat1为迭代n+1中的所述比值,函数f (rat1)为rat1的i次方,n,i为正整数。
[0115]可理解的,rat1为迭代n+1中的所述比值,其值等于从迭代I至迭代n+1中被所述接收方接收的全部重复段的字节的个数除以所述第一段的字节的个数。如果所述迭代过程中的迭代步长为两个往返,则rat1是第2* (n+1)个往返中的所述比值,其值等于第I个往返至所述第2*(n+1)个往返中被所述接收方接收的重复段的字节的个数除以所述第一段的字节的个数。
[0116]可选的,在实施上述图5实施例中的S505时,所述发送方还可以通过下述迭代算法
[0117]cwnd (n+1) = (cwnd (n) +cwnd (η-1) )/2+
[0118][ cwndold- (cwnd (η) +cwnd (η-1)) /2] *f (rat1)
[0119]来确定所述第二值。
[0120]从上述两个迭代算法可以看出,在所述迭代过程中,对于迭代n+1中的拥塞窗口 cwnd(n+l)来说,发生在迭代n+1之前的迭代中的拥塞窗口可以是cwnd (η),也可以是(cwnd(n)+cwnd(η-1)) /2。
[0121]可选的,对于迭代η+1中的拥塞窗口 cwnd(n+l)来说,发生在迭代n+1之前的迭代中的拥塞窗口还可以是(cwnd(n)+cwnd(n-1)+cwnd(n-2))/3。实际应用中还可以是其他形式,这里不作限制。
[0122]需要说明的,函数f (rat1)除了可以是rat1的N次方外(N为自然数),还可以是以rat1为变量的其他形式的函数表达式。函数f (rat1)可以是rat1在区间[0,1]上的有界增函数。当:rat1等于I时,函数f (rat1)的函数值为I。
[0123]本发明实施例中,通过上述迭代法恢复所述拥塞窗口,所述拥塞窗口的恢复过程可如图6中的曲线601所示。当所述比值较小时,所述拥塞窗口的恢复速率较大,当所述比值较大时,所述拥塞窗口的恢复速率放缓,可实现平缓的恢复所述拥塞窗口。实施例中涉及的恢复拥塞窗口,是指增大该拥塞窗口的值。
[0124]可理解的,在上述优选的迭代算法中,由于因式(Cwndcild-Cwnd(n))*f (rat1)中的(cwndold-cwnd(η))与f (rat1)的递增趋势相反,因而,在所述迭代过程中,能实现所述拥塞窗口的平缓增加,可避免由于所述比值激增,而导致所述拥塞窗口突然增大。
[0125]通过实施本发明实施例,所述发送方可以根据快速重传算法重新发送未被接收方确认的数据段至接收方,并根据接收方返回的确认中携带的D-SACK块确定被接收方接收的重复段的字节的个数,从而得到所述比值。所述发送方可以根据所述比值不断的由旧的所述拥塞窗口的值迭代出新的所述拥塞窗口的值,提高网络连接速率,缓解网络拥塞。
[0126]图7是本发明实施例提供的拥塞控制装置的第一实施例的结构示意图。如图7所示的拥塞控制装置70可包括:发送单元701,接收单元703,设置单元705。拥塞控制装置70可以用于执行图1、图3或者图5所示的方法。图7所示的实施例中没有提及的内容,可以参考图1、图3或者图5分别对应的实施例中的描述。
[0127]发送单元701,用于根据快速重传算法将拥塞窗口的值设置为第一值,并根据所述拥塞窗口向接收方发送第一段。
[0128]接收单元703,用于在发送单元701向所述接收方发送所述第一段后,接收来自所述接收方的确认,所述确认中携带D-SACK block。
[0129]设置单元705,用于根据比值将所述拥塞窗口的值设置为第二值,所述比值等于被所述接收方接收的重复段的字节的个数除以所述第一段的字节的个数,所述第二值大于所述第一值,所述重复段的字节的个数等于所述D-SACK block中的右边界和左边界的差值,所述重复段是所述第一段的子集。
[0130]本发明实施例中,所述第一段为所述发送方已向所述接收方发送的未得到所述接收方确认的段。所述第一值可以等于将所述拥塞窗口的值设置为所述第一值之前的所述拥塞窗口的值的一半。实际应用中,发送单元701既可以向所述接收方发送所述第一段的全部字节。发送单元701也可以向所述接收方发送所述第一段的部分字节。例如,所述第一段是由序列号3000至3999的字节构成的段。发送单元701可先通过一个报文向所述接收方发送序列号3000至3499的字节。然后发送单元701可以通过另一个报文向所述接收方发送序列号3500至3999的字节。
[0131]本发明实施例中,接收单元703接收的所述重复选择性确认块中的右边界对应的序列号和左边界对应的序列号的差值等于被所述接收方接收的重复段包含的字节的个数。例如,所述重复选择性确认块的左边界和右边界分别对应的序列号为3000和3500,则被所述接收方接收的重复段为由序列号3000至3499的字节构成的段,其字节的个数为500。
[0132]进一步的,设置单元705可通过确定所述第二值与所述比值的函数关系式来恢复所述拥塞窗口。其中,所述第二值等于所述第一值加上第三值,所述第三值等于将所述拥塞窗口设置为所述第一值之前的所述拥塞窗口的值和所述第一值的差值与函数f的乘积,所述函数f是以所述比值为变量的有界增函数,且函数f的函数值小于等于I。
[0133]具体实现中,优选的,所述第二值可由下述公式确定:
[0134]Cwndnew= cwnd old* β +cwndold* (1- β ) (rat1)
[0135]其中,cwnd-为将所述拥塞窗口的值设置为所述第一值前所述拥塞窗口的值,cwndold* β为所述第一值,Cwndnew为所述第二值,rat1为所述比值,函数f (rat1)为rat1的N次方,N为自然数,β为大于O且小于I的有理数。
[0136]更进一步的,在第i个往返中,所述第二值可由下述公式确定:
[0137]Cwndnew= cwnd old* β +cwndold* (1- β ) (rat1)
[0138]其中,cwnd-为将所述拥塞窗口的值设置为所述第一值前所述拥塞窗口的值,cwndold* β为所述第一值,Cwndnew为所述第i个往返中的所述第二值,rat1为所述第i个往返中的所述比值,rat1等于第I个往返至所述第i个往返中被所述接收方接收的重复段的字节的个数除以所述第一段的字节的个数,f (rat1)为rat1的N次方,N为自然数,β为大于O且小于I的有理数,所述i为大于I的正整数。
[0139]更进一步的,设置单元705还可以:基于所述第一值,经由迭代过程得到所述第二值。所述迭代过程包括:按照时间从先到后的顺序依次执行迭代I至迭代m。其中,迭代X中的所述拥塞窗口的值等于迭代y中的所述拥塞窗口的值加上第四值,所述第四值等于将所述拥塞窗口设置为所述第一值之前的所述拥塞窗口的值和所述迭代y中的所述拥塞窗口的值的差值与函数f的乘积,函数f是以所述比值为变量的有界增函数,且函数f的值小于等于I。
[0140]其中,所述第二值等于迭代m中的所述拥塞窗口的值,迭代I中的所述拥塞窗口的值等于所述第一值,X大于y,X和y都是正整数,X小于等于m,m是大于等于2的正整数。
[0141]具体实现中,优选的,设置单元705可以通过下述迭代算法
[0142]cwnd (n+1) = cwnd (η) + (cwndold-cwnd (η)) *f (rat1)
[0143]来确定所述第二值,其中,Cwndcild为将所述拥塞窗口的值设置为所述第一值前所述拥塞窗口的值,cwnd (η)为迭代η中的所述第二值,cwnd (η+1)为迭代η+1中的所述第二值,cwnd (I)为所述第一值,rat1为迭代n+1中的所述比值,函数f (rat1)为rat1的i次方,n,i为正整数。
[0144]图8是本发明实施例提供的拥塞控制装置的第二实施例的结构示意图。如图8所示,拥塞控制装置80可包括:发送器801,接收器802,存储器803以及处理器804。拥塞控制装置80可以用于执行图1、图3或者图5所示的方法。图8所示的实施例中没有提及的内容,可以参考图1、图3或者图5分别对应的实施例中的描述。拥塞控制装置80可以用于实现图7所示的拥塞控制装置70。
[0145]发送器801,用于向其他设备发送数据,该数据可包括:请求、确认应答或者分组数据。
[0146]举例来说,发送器801可以用于实现发送单元701。
[0147]接收器802,用于接收其他设备发送的数据,该数据可包括:请求、确认应答或者分组数据。
[0148]举例来说,接收器802可以用于实现接收单元703。
[0149]存储器803,用于存储带有各种功能的程序数据。本发明实施例中存储器803存储的数据包括拥塞控制程序,以及其他可调用并运行的程序数据。具体实现中,本发明实施例的存储器803可以是系统存储器,比如,挥发性的(诸如RAM),非易失性的(诸如R0M,闪存等),或者两者的结合。具体实现中,本发明实施例的存储器803还可以是系统之外的外部存储器,比如,磁盘、光盘、磁带等。
[0150]处理器804,用于调用存储器803中存储的程序数据,并执行如下操作:根据快速重传算法将拥塞窗口的值设置为第一值,并根据所述拥塞窗口,通过发送器801向接收方发送第一段。在通过发送器801向所述接收方发送所述第一段后,通过接收器802接收来自所述接收方的确认。所述确认中携带重复选择性确认块。根据比值将所述拥塞窗口的值设置为第二值。所述比值等于被所述接收方接收的重复段的字节的个数除以所述第一段的字节的个数。所述第二值大于所述第一值,所述重复段的字节的个数等于所述重复选择性确认块中的右边界和左边界的差值,所述重复段是所述第一段的子集。
[0151]举例来说,处理器804可以用于实现设置单元705。
[0152]本发明实施例中,处理器804可以执行函数法来得到所述第二值,所述第二值等于所述第一值加上第三值,所述第三值等于将所述拥塞窗口设置为所述第一值之前的所述拥塞窗口的值和所述第一值的差值与函数f的乘积,函数f是以所述比值为变量的有界增函数,且函数f的值小于等于I。
[0153]具体实现中,处理器804可以根据下述公式确定所述第二值:
[0154]Cwndnew= cwnd old* β +cwndold* (I— β ) *f (rat1)
[0155]其中,Cwndcild为将所述拥塞窗口的值设置为所述第一值前所述拥塞窗口的值,cwndold* β为所述第一值,Cwndnew为所述第二值,rat1为所述比值,函数f (rat1)为rat1的N次方,N为自然数,β为大于O且小于I的有理数。
[0156]具体实现中,在第i个往返中,处理器804可以根据下述公式确定所述第i个往返中的所述第二值:
[0157]Cwndnew= cwnd old* β+Cwndold* (I—β ) *f (rat1)
[0158]其中,Cwndcild为将所述拥塞窗口的值设置为所述第一值前所述拥塞窗口的值,cwndold* β为所述第一值,Cwndnew为所述第i个往返中的所述第二值,rat1为所述第i个往返中的所述比值,rat1等于第I个往返至所述第i个往返中被所述接收方接收的重复段的字节的个数除以所述第一段的字节的个数,f (rat1)为rat1的N次方,N为自然数,β为大于O且小于I的有理数,所述i为大于I的正整数。
[0159]本发明实施例中,处理器804可以执行迭代法来得到所述第二值:基于所述第一值,经由迭代过程得到所述第二值。所述迭代过程包括:按照时间从先到后的顺序依次执行迭代I至迭代m,其中,迭代X中的所述拥塞窗口的值等于迭代y中的所述拥塞窗口的值加上第四值,所述第四值等于将所述拥塞窗口设置为所述第一值之前的所述拥塞窗口的值和所述迭代I中的所述拥塞窗口的值的差值与函数f的乘积,函数f是以所述比值为变量的有界增函数,且函数f的值小于等于I。
[0160]其中,所述第二值等于迭代m中的所述拥塞窗口的值,迭代I中的所述拥塞窗口的值等于所述第一值,X大于y,X和y都是正整数,X小于等于m,m是大于等于2的正整数。[0161 ] 具体实现中,处理器804可以通过下述迭代算法
[0162]cwnd (n+1) = cwnd (η) + (cwndold-cwnd (η)) *f (rat1)
[0163]来确定所述第二值,其中,Cwndcild为将所述拥塞窗口的值设置为所述第一值前所述拥塞窗口的值,cwnd (η)为迭代η中的所述第二值,cwnd (η+1)为迭代η+1中的所述第二值,cwnd (I)为所述第一值,rat1为迭代n+1中的所述比值,函数f (rat1)为rat1的i次方,n,i为正整数。
[0164]综上所述,通过实施本发明实施例,在根据快速重传算法重传第一段后,可以通过重复选择性确认块中的右边界和左边界的差值得到被接收方接收的重复段的字节的个数,并根据所述被接收方接收的重复段的字节的个数与所述第一段的字节的个数的比值恢复拥塞窗口,可实现将拥塞窗口快速地调整到快速重传前的水平,提升数据乱序场景下的网络速率表现。
[0165]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random AccessMemory, RAM)等。
[0166]以上所揭露的仅为本发明部分实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
【主权项】
1.一种拥塞控制方法,其特征在于,包括: 发送方根据快速重传算法将拥塞窗口的值设置为第一值,并根据所述拥塞窗口向接收方发送第一段; 所述发送方向所述接收方发送所述第一段后,接收来自所述接收方的确认,所述确认中携带重复选择性确认块; 所述发送方根据比值将所述拥塞窗口的值设置为第二值,所述比值等于被所述接收方接收的重复段的字节的个数除以所述第一段的字节的个数,所述第二值大于所述第一值,所述重复段的字节的个数等于所述重复选择性确认块中的右边界和左边界的差值,所述重复段是所述第一段的子集。2.根据权利要求1所述的方法,其特征在于,所述第二值等于所述第一值加上第三值,所述第三值等于将所述拥塞窗口设置为所述第一值之前的所述拥塞窗口的值和所述第一值的差值与函数f的乘积,函数f是以所述比值为变量的有界增函数,且函数f的值小于等于13.根据权利要求2所述的方法,其特征在于,根据下述公式确定所述第二值:Cwndnew= cwnd old* β +cwndold* (1- β ) (rat1) 其中,cwnd-为将所述拥塞窗口的值设置为所述第一值前所述拥塞窗口的值,cwndold* β为所述第一值,Cwndnew为所述第二值,rat1为所述比值,函数f (rat1)为rat1的N次方,N为自然数,β为大于O且小于I的有理数。4.根据权利要求3所述的方法,其特征在于,在第i个往返中,根据下述公式确定所述第i个往返中的所述第二值:Cwndnew= cwnd old* β +cwndold* (1- β ) (rat1) 其中,cwnd-为将所述拥塞窗口的值设置为所述第一值前所述拥塞窗口的值,cwndold* β为所述第一值,Cwndnew为所述第i个往返中的所述第二值,rat1为所述第i个往返中的所述比值,rat1等于第I个往返至所述第i个往返中被所述接收方接收的重复段的字节的个数除以所述第一段的字节的个数,f (rat1)为rat1的N次方,N为自然数,β为大于O且小于I的有理数,所述i为大于I的正整数。5.根据权利要求1所述的方法,其特征在于,所述发送方根据所述比值将所述拥塞窗口的值设置为第二值,包括:基于所述第一值,经由迭代过程得到所述第二值; 所述迭代过程包括:按照时间从先到后的顺序依次执行迭代I至迭代m,其中,迭代X中的所述拥塞窗口的值等于迭代y中的所述拥塞窗口的值加上第四值,所述第四值等于将所述拥塞窗口设置为所述第一值之前的所述拥塞窗口的值和所述迭代y中的所述拥塞窗口的值的差值与函数f的乘积,函数f是以所述比值为变量的有界增函数,且函数f的值小于等于I ; 其中,所述第二值等于迭代m中的所述拥塞窗口的值,迭代I中的所述拥塞窗口的值等于所述第一值,X大于y,X和y都是正整数,X小于等于m,m是大于等于2的正整数。6.根据权利要求5所述的方法,其特征在于,所述发送方根据所述比值将所述拥塞窗口的值设置为第二值,包括: 通过下述迭代算法 cwnd (η+1) = cwnd (η) + (cwndold-cwnd (η)) *f (rat1) 确定所述第二值,其中,cwnd-为将所述拥塞窗口的值设置为所述第一值前所述拥塞窗口的值,cwnd (η)为迭代η中的所述第二值,cwnd (η+1)为迭代η+1中的所述第二值,cwnd (I)为所述第一值,rat1为迭代η+1中的所述比值,函数f (rat1)为rat1的i次方,n,i为正整数。7.一种拥塞控制装置,其特征在于,包括: 发送单元,用于根据快速重传算法将拥塞窗口的值设置为第一值,并根据所述拥塞窗口向接收方发送第一段; 接收单元,用于向所述接收方发送所述第一段后,接收来自所述接收方的确认,所述确认中携带重复选择性确认块D-SACK block ; 设置单元,用于根据比值将所述拥塞窗口的值设置为第二值,所述比值等于被所述接收方接收的重复段的字节的个数除以所述第一段的字节的个数,所述第二值大于所述第一值,所述重复段的字节的个数等于所述D-SACK block中的右边界和左边界的差值,所述重复段是所述第一段的子集。8.如权利要求7所述的装置,其特征在于,所述第二值等于所述第一值加上第三值,所述第三值等于将所述拥塞窗口设置为所述第一值之前的所述拥塞窗口的值和所述第一值的差值与函数f的乘积,所述函数f是以所述比值为变量的有界增函数,且函数f的函数值小于等于I。9.如权利要求8所述的装置,其特征在于,所述第二值由下述公式确定:Cwndnew= cwnd old* β +cwndold* (1- β ) (rat1) 其中,cwnd-为将所述拥塞窗口的值设置为所述第一值前所述拥塞窗口的值,cwndold* β为所述第一值,Cwndnew为所述第二值,rat1为所述比值,函数f (rat1)为rat1的N次方,N为自然数,β为大于O且小于I的有理数。10.如权利要求9所述的装置,其特征在于,在第i个往返中,所述第二值由下述公式确定:Cwndnew= cwnd old* β +cwndold* (1- β ) (rat1) 其中,cwnd-为将所述拥塞窗口的值设置为所述第一值前所述拥塞窗口的值,cwndold* β为所述第一值,Cwndnew为所述第i个往返中的所述第二值,rat1为所述第i个往返中的所述比值,rat1等于第I个往返至所述第i个往返中被所述接收方接收的重复段的字节的个数除以所述第一段的字节的个数,f (rat1)为rat1的N次方,N为自然数,β为大于O且小于I的有理数,所述i为大于I的正整数。11.如权利要求7所述的装置,其特征在于,所述设置单元具体用于:基于所述第一值,经由迭代过程得到所述第二值; 所述迭代过程包括:按照时间从先到后的顺序依次执行迭代I至迭代m,其中,迭代X中的所述拥塞窗口的值等于迭代y中的所述拥塞窗口的值加上第四值,所述第四值等于将所述拥塞窗口设置为所述第一值之前的所述拥塞窗口的值和所述迭代y中的所述拥塞窗口的值的差值与函数f的乘积,函数f是以所述比值为变量的有界增函数,且函数f的值小于等于I ; 其中,所述第二值等于迭代m中的所述拥塞窗口的值,迭代I中的所述拥塞窗口的值等于所述第一值,X大于y,X和y都是正整数,X小于等于m,m是大于等于2的正整数。12.如权利要求11所述的装置,其特征在于,所述设置单元还具体用于:通过下述迭代算法cwnd (n+1) = cwnd (η) + (cwndold-cwnd (η)) *f (rat1) 确定所述第二值,其中,cwnd-为将所述拥塞窗口的值设置为所述第一值前所述拥塞窗口的值,cwnd (η)为迭代η中的所述第二值,cwnd (η+1)为迭代η+1中的所述第二值,cwnd (I)为所述第一值,rat1为迭代η+1中的所述比值,函数f (rat1)为rat1的i次方,n,i为正整数。
【文档编号】H04L12/825GK105991461SQ201510047095
【公开日】2016年10月5日
【申请日】2015年1月30日
【发明人】朱坤, 吴钊源
【申请人】华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1