专利名称:拥塞确定方法、装置和网络设备的利记博彩app
技术领域:
本发明涉及通信技术,尤其涉及一种拥塞确定方法、装置和网络设备。
背景技术:
拥塞是指路由器发生过载而导致报文被延迟。一旦发生拥塞,报文延时将显著增大,这时路由器就会将报文缓存起来,直至上述路由器有能力将报文发送出去。最坏情况下,如果发生拥塞的路由器接收到的报文持续增加以致超过上述发生拥塞的路由器的存储能力,则上述发生拥塞的路由器将丢弃报文。
现有的传输控制协议(Transmission Control Protocol ;以下简称:TCP)方案中,发送端通过丢包来判断网络是否发生了拥塞。这样的话只要发生丢包事件,发送端的TCP发送窗口就将不同程度的减小,以减缓网络压力来减轻拥塞,等拥塞解除之后发送端再增大发送窗口恢复到原来的发送速率。这时,问题就出现了,面对当今复杂的网络环境,广域网、第三代移动通信(3rd Generation;以下简称:3G)网络以及无线保真(WirelessFidelity ;以下简称:WIFI)网络的普及,网络中很大一部分的丢包事件不再是由拥塞引起的,而是由广域网链路错误、3G和WIFI网络空中接口无线部分竞争引起的,很明显,当由于这些原因导致丢包时,TCP发送端不必减小发送窗口,因为网络中并没有拥塞发生。
针对这个问题,现有技术也对上述TCP方案进行了补充,通过网络传输速度或网络传输时延结合丢包事件来判断网络是否发生了拥塞,而不再是单纯依靠丢包这一个条件来判断是否发生了拥塞。
然而,目前已有的技术中,通过对网络传输速度的监测结合丢包事件来判断网络是否发生拥塞的方案在广域网、3G和WIFI网络中的效果有限,因为广域网、3G和WIFI网络的传输存在大的抖动,而抖动会影响通过网络传输速度进行拥塞判断的方案的效果,使判断精度大大降低。
现有技术中也有通过网络延迟结合丢包事件进行拥塞判断的方案,然而,该方案需要保存TCP连接上实时的几十个甚至一百个传输时延的数据,并在每获得一个新的传输时延后更新这个数据库,然后进行计算来判断拥塞。这对于只有若干条TCP连接的设备来说可以负担起该方案带来的存储传输时延并计算的开销,然而对于网关类的设备,需要同时处理大量的TCP连接,上述方案的开销将是很大的一个负担。
综上所述,现有技术提供的拥塞判断方案存在判断精度低和/或资源开销大的问题。发明内容
本发明提供一种拥塞确定方法、装置和网络设备,以提高拥塞判断的精度,减少拥塞判断的资源开销。
本发明一方面提供一种拥塞确定方法,包括:
发送数据包;接收到所述数据包对应的确认响应后计算所述数据包对应的往返时延;计算第一权重值与所述数据包对应的往返时延的乘积,与第二权重值与保存的第一平均往返时延的乘积之和,作为第一平均值;以及计算第三权重值与所述数据包对应的往返时延的乘积,与第四权重值与保存的第二平均往返时延的乘积之和,作为第二平均值;所述第一权重值大于所述第三权重值;所述第一权重值、所述第二权重值、所述第三权重值和所述第四权重值均为小于I的正数;当所述第一平均值大于所述第二平均值时,确定网络中发生拥塞。本发明另一方面提供一种拥塞确定装置,包括:发送模块,用于发送数据包;接收模块,用于接收所述数据包对应的确认响应;计算模块,用于在所述接收模块接收到所述数据包对应的确认响应后计算所述数据包对应的往返时延;以及计算第一权重值与所述数据包对应的往返时延的乘积,与第二权重值与保存的第一平均往返时延的乘积之和,作为第一平均值;以及计算第三权重值与所述数据包对应的往返时延的乘积,与第四权重值与保存的第二平均往返时延的乘积之和,作为第二平均值;所述第一权重值大于所述第三权重值;所述第一权重值、所述第二权重值、所述第三权重值和所述第四权重值均为小于I的正数;确定模块,用于当所述计算模块计算的第一平均值大于所述计算模块计算的第二平均值时,确定网络中发生拥塞。本发明再一方面提供一种网络设备,包括:如上所述的拥塞确定装置。本发明的技术效果是:接收到自身发送的数据包所对应的确认响应后计算上述数据包对应的往返时延(Round-Trip Time ;以下简称:RTT);然后计算第一权重值与上述数据包对应的RTT的乘积,与第二权重值与保存的第一平均RTT的乘积之和,作为第一平均值;以及计算第三权重值与上述数据包对应的RTT的乘积,与第四权重值与保存的第二平均RTT的乘积之和,作为第二平均值;其中,上述第一权重值大于上述第三权重值;这样,当第一平均值大于第二平均值时,就可以确定网络中发生拥塞。本发明通过比较反映之前一段时间RTT变化情况的RTT的平均值,来确定网络中发生拥塞,避免了网络抖动对拥塞判断的影响,从而可以提高拥塞判断的精度,并且计算RTT的平均值时采用加权平均的方式,从而不需存储大量的RTT的信息,减少了存储和计算所需的资源开销。
图1为本发明拥塞确定方法一个实施例的流程图;图2为本发明第一平均值、第二平均值和实时RTT的变化情况一个实施例的示意图;图3为本发明拥塞确定方法另一个实施例的流程图;图4为本发明拥塞确定装置一个实施例的结构示意图;图5为本发明拥塞确定装置另一个实施例的结构示意图。
具体实施方式
图1为本发明拥塞确定方法一个实施例的流程图,如图1所示,该拥塞确定方法可以包括:
步骤101,发送数据包。
步骤102,接收到上述数据包对应的确认响应(Acknowledgement ;以下简称:ACK)后计算上述数据包对应的RTT。
步骤103,计算第一权重值与上述数据包对应的RTT的乘积,与第二权重值与保存的第一平均RTT的乘积之和,作为第一平均值;以及计算第三权重值与上述数据包对应的RTT的乘积,与第四权重值与保存的第二平均RTT的乘积之和,作为第二平均值。
其中,上述第一权重值大于第三权重值;上述第一权重值、上述第二权重值、上述第三权重值和上述第四权重值均为小于I的正数。本发明对第一权重值、第二权重值、第三权重值和第四权重值的大小不作限定,只要第一权重值大于第三权重值,且上述第一权重值、上述第二权重值、上述第三权重值和上述第四权重值均为小于I的正数即可。
优选地,第一权重值与第二权重值之和为I ;第三权重值与第四权重值之和为I。
步骤104,当第一平均值大于第二平均值时,确定网络中发生拥塞。
本实施例步骤103中,可以通过式(I)来计算第一平均值和第二平均值:
AvgRTT=AvgRIT XAlpha' +RTTXAlpha (I)
式(I)中,AvgRTT为第一平均值或第二平均值;AvgRTT'为保存的第一平均RTT或第二平均RTT,AvgRTT'的初始值为O ;RTT为本次计算的上述数据包对应的RTT ;Alpha为第一权重值或第三权重值;Alpha'为第二权重值或第四权重值。具体地,当Alpha为第一权重值,Alpha'为第二权重值,并且AvgRTT'为保存的第一平均RTT时,计算获得的AvgRTT为第一平均值;当Alpha为第三权重值,Alpha'为第四权重值,并且AvgRTT'为保存的第二平均RTT时,计算获得的AvgRTT为第二平均值。
优选地,步骤103中,也可以通过式(2)来计算第一平均值和第二平均值:
AvgRTT=AvgRIT X (1-Alpha)+RTTXAlpha (2)
式(2)中,AvgRTT, AvgRTT'、RTT和Alpha的含义与式(I)中相同参数的含义相同,在此不再赘述;式(2)中,(1-Alpha)为第二权重值或第四权重值。具体地,当Alpha为第一权重值,(1-Alpha)为第二权重值,并且AvgRTT'为保存的第一平均RTT时,计算获得的AvgRTT为第一平均值;当Alpha为第三权重值,(1-Alpha)为第四权重值,并且AvgRlT为保存的第二平均RTT时,计算获得的AvgRTT为第二平均值。
按照式(I)或式(2)进行第一平均值和第二平均值的计算,不需要保存大量的RTT的原始数据,只要每采集到一个RTT值进行计算即可。那么当采用第三权重值,即采用较小的权重值时,每次新采集到的RTT值对平均RTT的贡献较小,计算获得的第二平均值反映较长时间段内RTT的变化情况;反之,当采用第一权重值,即采用较大的权重值时,每次新采到的RTT值对平均RTT的贡献较大,计算获得的第一平均值反映较短时间段内RTT的变化情况。
进一步地,获得第一平均值之后,还可以保存获得的第一平均值,作为下次计算时的第一平均RTT ;获得第二平均值之后,还可以保存获得的第二平均值,作为下次计算时的第二平均RTT ;也就是说,每次获得第一平均值和第二平均值之后,将保存的第一平均RTT更新为获得的最新的第一平均值,以及将保存的第二平均RTT更新为获得的最新的第二平均值,以便下次计算第一平均值和第二平均值时使用。本实施例中,第二平均值反映了发送上述数据包的TCP连接上的RTT的一贯属性,第一平均值反映了之前一小段时间内发送上述数据包的TCP连接上的RTT的瞬时属性,上述第一平均值、第二平均值和实时RTT的变化情况可以如图2所示,图2为本发明第一平均值、第二平均值和实时RTT的变化情况一个实施例的示意图。由于在拥塞发生时,连续传输的数据包的RTT值将显著增加,那么这时计算获得的第一平均值也将显著增加,而第二平均值的变化将很小,于是当第一平均值大于第二平均值时,可以确定网络中发生了拥塞。另外,本实施例提供的拥塞确定方法还可以结合丢包事件来进行拥塞判断。具体地,步骤103之后,还可以先确定是否发生丢包事件,如果发生丢包事件,则比较第一平均值与第二平均值的大小。然后执行步骤104,当上述第一平均值大于上述第二平均值时,确定网络中发生拥塞。而如果确定未发生丢包事件,则可以返回执行步骤101。上述实施例中,接收到自身发送的数据包所对应的ACK后计算上述数据包对应的RTT ;然后计算第一权重值与上述数据包对应的RTT的乘积,与第二权重值与保存的第一平均RTT的乘积之和,作为第一平均值;以及计算第三权重值与上述数据包对应的RTT的乘积,与第四权重值与保存的第二平均RTT的乘积之和,作为第二平均值;其中,上述第一权重值大于上述第三权重值;这样,当第一平均值大于第二平均值时,就可以确定网络中发生拥塞。本实施例通过比较反映之前一段时间RTT变化情况的RTT的平均值,来确定网络中发生拥塞,避免了网络抖动对拥塞判断的影响,从而可以提高拥塞判断的精度,并且计算RTT的平均值时采用加权平均的方式,从而不需存储大量的RTT的信息,减少了存储和计算所需的资源开销。图3为本发明拥塞确定方法另一个实施例的流程图,如图3所示,该拥塞确定方法可以包括:步骤301 步骤303,同步骤101 步骤103。步骤304,判断第一平均值是否大于第二平均值。如果是,则执行步骤305 ;如果否,则执行步骤312。步骤305,判断第二平均值是否小于或等于第一阈值。如果是,则执行步骤306 ;如果否,即第二平均值大于第一阈值,则执行步骤309。步骤306,判断第一平均值与第二平均值之差是否大于或等于第二阈值。如果是,则执行步骤307 ;如果否,即第一平均值与第二平均值之差小于第二阈值,则执行步骤308。步骤307,确定网络中发生拥塞。步骤308,确定网络中未发生拥塞。步骤309,判断第一平均值与第二平均值的比值是否大于或等于第三阈值。如果是,则执行步骤310;如果否,即第一平均值与第二平均值的比值小于第三阈值,则执行步骤 311。步骤310,确定网络中发生拥塞。步骤311,确定网络中未发生拥塞。步骤312,确定网络中未发生拥塞。也就是说,本实施例中,在第一平均值大于第二平均值的情形下,当第二平均值较小(例如:小于或等于第一阈值)时,如果第一平均值减去第二平均值后获得差值大于或等于第二阈值,则确定网络中发生了拥塞,如果上述差值小于第二阈值,则确定网络中未发生拥塞;当第二平均值较大(例如:大于第一阈值)时,如果第一平均值与第二平均值的比值大于或等于第三阈值,则确定网络中发生了拥塞,如果上述比值小于第三阈值,则确定网络中未发生拥塞。其中,第一阈值和第二阈值均为正数,第三阈值为大于I的数。上述第一阈值、第二阈值和第三阈值的大小均可以在具体实现时根据网络状况自行设定,以满足不同网络需求,本发明实施例对上述第一阈值、第二阈值和第三阈值的大小不作限定,只要满足上述条件即可。另外,本实施例提供的拥塞确定方法还可以结合丢包事件来进行拥塞判断。具体地,步骤303之后,步骤304之前,可以先确定是否发生丢包事件,这样,在确定发生丢包事件之后,再执行步骤304及其后续步骤。而如果确定未发生丢包事件,则可以返回执行步骤301,不需执行步骤304及其后续步骤。上述实施例通过比较反映之前一段时间RTT变化情况的RTT的平均值,来确定网络中发生拥塞,避免了网络抖动对拥塞判断的影响,从而可以提高拥塞判断的精度,并且计算RTT的平均值时采用加权平均的方式,从而不需存储大量的RTT的信息,减少了存储和计算所需的资源开销。进一步地,本发明图1和图3所示实施例中,在确定网络中发生拥塞之后,按照原来的TCP处理原则进行减小发送窗口,减慢发送速度等操作;而当确定网络中未发生拥塞时,如果发生丢包事件,则仅重传丢失的数据包,但并不减小发送窗口,而是保持原有的发送速率继续发送数据包。本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。图4为本发明拥塞确定装置一个实施例的结构示意图,本实施例中的拥塞确定装置可以实现本发明图1所示实施例提供的方法,如图4所示,该拥塞确定装置可以包括:发送模块41、接收模块42、计算模块43和确定模块44 ;其中,发送模块41,用于发送数据包;接收模块42,用于接收上述数据包对应的ACK ;计算模块43,用于在接收模块42接收到上述数据包对应的ACK后计算上述数据包对应的RTT ;以及计算第一权重值与上述数据包对应的RTT的乘积,与第二权重值与保存的第一平均RTT的乘积之和,作为第一平均值;以及计算第三权重值与上述数据包对应的RTT的乘积,与第四权重值与保存的第二平均RTT的乘积之和,作为第二平均值;上述第一权重值大于第三权重值;确定模块44,用于当计算模块43计算的第一平均值大于计算模块43计算的第二平均值时,确定网络中发生拥塞。本实施例中,上述第一权重值、上述第二权重值、上述第三权重值和上述第四权重值均为小于I的正数;本发明对第一权重值、第二权重值、第三权重值和第四权重值的大小不作限定,只要第一权重值大于第三权重值,且第一权重值、第二权重值、第三权重值和第四权重值均为小于I的正数即可。优选地,上述第一权重值与第二权重值之和为I;上述第三权重值与第四权重值之和为I。具体地,计算模块43可以按照式(I)或式(2)计算第一平均值和第二平均值,在此不再赘述。
上述实施例中,接收模块42接收到发送模块41发送的数据包所对应的ACK后,计算模块43计算上述数据包对应的RTT ;然后计算模块43计算第一权重值与上述数据包对应的RTT的乘积,与第二权重值与保存的第一平均RTT的乘积之和,作为第一平均值;以及计算第三权重值与上述数据包对应的RTT的乘积,与第四权重值与保存的第二平均RTT的乘积之和,作为第二平均值;其中,上述第一权重值大于上述第三权重值;这样,当第一平均值大于第二平均值时,确定模块44就可以确定网络中发生拥塞。本实施例通过比较反映之前一段时间RTT变化情况的RTT的平均值,来确定网络中发生拥塞,避免了网络抖动对拥塞判断的影响,从而可以提高拥塞判断的精度,并且计算RTT的平均值时采用加权平均的方式,从而不需存储大量的RTT的信息,减少了存储和计算所需的资源开销。
图5为本发明拥塞确定装置另一个实施例的结构示意图,本实施例中的拥塞确定装置可以实现本发明图1和图3所示实施例提供的方法,与图4所示的拥塞确定装置相比,不同之处在于,图5所示的装置中,确定模块44,具体用于当第二平均值小于或等于第一阈值,并且上述第一平均值与上述第二平均值之差大于或等于第二阈值时,确定网络中发生拥塞,上述第一阈值和上述第二阈值为正数;或者,当第二平均值大于第一阈值,并且第一平均值与第二平均值的比值大于或等于第三阈值时,确定网络中发生拥塞,上述第三阈值为大于I的数。
进一步地,确定模块44,还用于当计算模块43计算的第一平均值小于计算模块43计算的第二平均值时,确定网络中未发生拥塞。
进一步地,确定模块44还可以结合丢包事件来进行拥塞判断,也就是说,确定模块44,还用于确定是否发生丢包事件;这时,上述拥塞确定装置还可以包括:比较模块45 ;比较模块45,用于当确定模块44确定发生丢包事件时,比较上述第一平均值与第二平均值的大小。然后,当第一平均值大于第二平均值时,确定模块44确定网络中发生拥塞。
进一步地,上述拥塞确定装置还可以包括:保存模块46,用于保存计算模块43计算的第一平均值,作为下次计算时的第一平均RTT ;以及保存计算模块43计算的第二平均值,作为下次计算时的第二平均RTT。
上述实施例通过比较反映之前一段时间RTT变化情况的RTT的平均值,来确定网络中发生拥塞,避免了网络抖动对拥塞判断的影响,从而可以提高拥塞判断的精度,并且计算RTT的平均值时采用加权平均的方式,从而不需存储大量的RTT的信息,减少了存储和计算所需的资源开销。
本发明实施例还提供一种网络设备,该网络设备可以包括本发明图4或图5所示实施例提供的拥塞确定装置。上述网络设备可以为路由器或网关等将网络拥塞作为下一步判断依据来进行其他操作的网络设备。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱罔本发明各实施例技术方案的范围。
权利要求
1.一种拥塞确定方法,其特征在于,包括: 发送数据包; 接收到所述数据包对应的确认响应后计算所述数据包对应的往返时延; 计算第一权重值与所述数据包对应的往返时延的乘积,与第二权重值与保存的第一平均往返时延的乘积之和,作为第一平均值;以及计算第三权重值与所述数据包对应的往返时延的乘积,与第四权重值与保存的第二平均往返时延的乘积之和,作为第二平均值;所述第一权重值大于所述第三权重值;所述第一权重值、所述第二权重值、所述第三权重值和所述第四权重值均为小于I的正数; 当所述第一平均值大于所述第二平均值时,确定网络中发生拥塞。
2.根据权利要求1所述的方法,其特征在于,所述当所述第一平均值大于所述第二平均值时,确定网络中发生拥塞包括: 如果所述第二平均值小于或等于第一阈值,并且所述第一平均值与所述第二平均值之差大于或等于第二阈值,则确定网络中发生拥塞,所述第一阈值和所述第二阈值为正数;或者, 如果所述第二平均值大于第一阈值,并且所述第一平均值与所述第二平均值的比值大于或等于第三阈值,则确定网络中发生拥塞,所述第三阈值为大于I的数。
3.根据权利要求1所述的方法,其特征在于,所述计算第一权重值与所述数据包对应的往返时延的乘积,与第二权重值与保存的第一平均往返时延的乘积之和,作为第一平均值;以及计算第三权重值与所述数据包对应的往返时延的乘积,与第四权重值与保存的第二平均往返时延的乘积之和,作为第二平均值之后,还包括: 当所述第一平均值小于所述第二平均值时,确定所述网络中未发生拥塞。
4.根据权利要求1-2任意一项所述的方法,其特征在于,所述计算第一权重值与所述数据包对应的往返时延的乘积,与第二权重值与保存的第一平均往返时延的乘积之和,作为第一平均值;以及计算第三权重值与所述数据包对应的往返时延的乘积,与第四权重值与保存的第二平均往返时延的乘积之和,作为第二平均值之后,还包括: 确定是否发生丢包事件; 如果发生丢包事件,则比较所述第一平均值与所述第二平均值的大小。
5.根据权利要求1-3任意一项所述的方法,其特征在于,所述计算第一权重值与所述数据包对应的往返时延的乘积,与第二权重值与保存的第一平均往返时延的乘积之和,作为第一平均值之后,还包括: 保存所述第一平均值,作为下次计算时的第一平均往返时延; 所述计算第三权重值与所述数据包对应的往返时延的乘积,与第四权重值与保存的第二平均往返时延的乘积之和,作为第二平均值之后,还包括:保存所述第二平均值,作为下次计算时的第二平均往返时延。
6.根据权利要求1-3任意一项所述的方法,其特征在于,所述第一权重值与所述第二权重值之和为I;所述第三权重值与所述第四权重值之和为I。
7.一种拥塞确定装置,其特征在于,包括: 发送模块,用于发送数据包; 接收模块,用于接收所述数据包对应的确认响应; 计算模块,用于在所述接收模块接收到所述数据包对应的确认响应后计算所述数据包对应的往返时延;以及计算第一权重值与所述数据包对应的往返时延的乘积,与第二权重值与保存的第一平均往返时延的乘积之和,作为第一平均值;以及计算第三权重值与所述数据包对应的往返时延的乘积,与第四权重值与保存的第二平均往返时延的乘积之和,作为第二平均值;所述第一权重值大于所述第三权重值;所述第一权重值、所述第二权重值、所述第三权重值和所述第四权重值均为小于I的正数; 确定模块,用于当所述计算模块计算的第一平均值大于所述计算模块计算的第二平均值时,确定网络中发生拥塞。
8.根据权利要求7所述的装置,其特征在于, 所述确定模块,具体用于当所述第二平均值小于或等于第一阈值,并且所述第一平均值与所述第二平均值之差大于或等于第二阈值时,确定网络中发生拥塞,所述第一阈值和所述第二阈值为正数;或者,当所述第二平均值大于第一阈值,并且所述第一平均值与所述第二平均值的比值大于或等于第三阈值时,确定网络中发生拥塞,所述第三阈值为大于I的数。
9.根据权利要求7所述的装置,其特征在于, 所述确定模块,还用于当所述计算模块计算的第一平均值小于所述计算模块计算的第二平均值时,确定所述网络中未发生拥塞。
10.根据权利要求7-8任意一项所述的装置,其特征在于, 所述确定模块,还用于确定是否发生丢包事件; 所述装置还包括:比较模块; 所述比较模块,用于当所述确定模块确定发生丢包事件时,比较所述第一平均值与所述第二平均值的大小。
11.根据权利要求7-9任意一项所述的装置,其特征在于,还包括: 保存模块,用于保存所述计算模块计算的第一平均值,作为下次计算时的第一平均往返时延;以及保存所述计算模块计算的第二平均值,作为下次计算时的第二平均往返时延。
12.—种网络设备,其特征在于,包括如权利要求7-11任意一项所述的拥塞确定装置。
全文摘要
本发明提供一种拥塞确定方法、装置和网络设备,该拥塞确定方法包括发送数据包;接收到该数据包对应的ACK后计算该数据包对应的RTT;计算第一权重值与该数据包对应的RTT的乘积,与第二权重值与保存的第一平均RTT的乘积之和,作为第一平均值;以及计算第三权重值与该数据包对应的RTT的乘积,与第四权重值与保存的第二平均RTT的乘积之和,作为第二平均值;当第一平均值大于第二平均值时,确定网络中发生拥塞。本发明通过比较RTT的平均值,来确定网络中发生拥塞,避免了网络抖动对拥塞判断的影响,从而可以提高拥塞判断的精度,并且不需存储大量的RTT的信息,减少了存储和计算所需的资源开销。
文档编号H04L1/16GK103152278SQ201310038650
公开日2013年6月12日 申请日期2013年1月31日 优先权日2013年1月31日
发明者彭凌 申请人:北京星网锐捷网络技术有限公司