发明内容
本申请主要解决的技术问题是提供报文传输速率调度方法、设备以及系统,能解决在一些情况下由于目标总承诺速率导致目标总峰值速率控制不下来,真正实现在保证达到目标总承诺速率的情况下,有效地把目标总峰值速率控制下来。
为解决上述技术问题,本申请第一方面提供一种报文传输速率调度方法,包括如下步骤:
在当前周期结束前,接收各个流量处理单元所反馈的该周期控制前的单个实际速率以及该周期控制后的单个实际速率,其中,每个流量处理单元该周期控制后的单个实际速率等于该流量处理单元的单个承诺速率和该流量处理单元在该周期计算得到的单个峰值速率中较大的一个;累加所述各个流量处理单元所反馈的该周期控制前的单个实际速率以获得该周期控制前的总速率,并累加所述各个流量处理单元所反馈的该周期控制后的单个实际速率以获得该周期控制后的总速率;判断该周期控制后的总速率是否大于目标总峰值速率;如果大于目标总峰值速率,则调整下一周期的控制总峰值速率使得下一个周期的控制总峰值速率小于所述该周期控制前的总速率,并在下一个周期到达时将所述下一个周期的控制总峰值速率向所述各个流量处理单元发送,使得每个流量处理单元根据所述下一个周期的控制总峰值速率重新计算得到每个流量处理单元的单个峰值速率;重复上述步骤,直到所述控制后的总速率小于或等于目标总峰值速率,从而完成速率调度。
结合本申请的第一方面,在本申请的第一方面的第一种可能的实施方式中,每个流量处理单元的单个承诺速率等于该流量处理单元在系统启动后的第一个周期控制前的重点对象的单个实际速率除以在系统启动后的第一个周期控制前的重点对象的总速率乘以目标总承诺速率。
结合本申请的第一方面的第一种可能的实施方式,在本申请的第一方面的第二种可能的实施方式中,所述目标总承诺速率的误差在±1Mbits/s之内。
结合本申请的第一方面,在本申请的第一方面的第三种可能的实施方式中,所述下一个周期的控制总峰值速率等于该周期的控制总峰值速率乘以目标总峰值速率除以所述该周期控制后的总速率。
结合本申请的第一方面,在本申请的第一方面的第四种可能的实施方式中,每个流量处理单元的单个峰值速率等于该流量处理单元在系统启动后的第一个周期控制前的单个实际速率除以在系统启动后的第一个周期控制前的总速率乘以所述下一个周期的控制总峰值速率。
为解决上述技术问题,本申请第二方面提供一种报文传输速率调度方法,包括如下步骤:
分布式流量控制系统中的流量处理单元在当前周期结束前,向分布式流量控制系统中的速率调度单元发送该周期控制前的单个实际速率以及该周期控制后的单个实际速率,其中,所述该周期控制后的单个实际速率等于单个承诺速率和在该周期计算得到的单个峰值速率中较大的一个;在下一个周期到达时,接收所述速率调度单元发送的下一个周期的控制总峰值速率,所述下一个周期的控制总峰值速率是所述速率调度单元根据所述该周期控制前的单个实际速率以及所述该周期控制后的单个实际速率计算得到的;根据所述下一个周期的控制总峰值速率重新计算得到单个峰值速率,并根据所述单个峰值速率对通过该流量处理单元的流量进行控制。
结合本申请的第二方面,在本申请的第二方面的第一种可能的实施方式中,所述单个峰值速率等于在系统启动后的第一个周期控制前的单个实际速率除以在系统启动后的第一个周期控制前的总速率乘以所述下一个周期的控制总峰值速率。
为解决上述技术问题,本申请第三方面提供一种速率调度单元,所述速率调度单元属于分布式流量控制系统,其特征在于,包括:接收模块、累加模块、判断模块以及发送模块,所述接收模块用于在当前周期结束前,接收分布式流量控制系统中的各个流量处理单元所反馈的该周期控制前的单个实际速率以及该周期控制后的单个实际速率,其中,每个流量处理单元该周期控制后的单个实际速率等于该流量处理单元的单个承诺速率和该流量处理单元在该周期计算得到的单个峰值速率中较大的一个,所述接收模块将所述各个流量处理单元所反馈的该周期控制前的单个实际速率以及该周期控制后的单个实际速率向所述累加模块发送;所述累加模块用于接收所述接收模块所反馈的所述各个流量处理单元该周期控制前的单个实际速率以及该周期控制后的单个实际速率,累加所述各个流量处理单元所反馈的该周期控制前的单个实际速率以获得该周期控制前的总速率,并累加所述各个流量处理单元所反馈的该周期控制后的单个实际速率以获得该周期控制后的总速率,所述累加模块将所述该周期控制前的总速率向所述发送模块发送,以及将所述该周期控制后的总速率向所述判断模块发送;所述判断模块用于接收所述该周期控制后的总速率,判断该周期控制后的总速率是否大于目标总峰值速率;所述发送模块用于接收所述该周期控制前的总速率,在所述判断模块判断出该周期控制后的总速率大于目标总峰值速率时,调整下一周期的控制总峰值速率使得下一个周期的控制总峰值速率小于所述该周期控制前的总速率,并在下一个周期到达时将所述下一个周期的控制总峰值速率向所述各个流量处理单元发送,使得每个流量处理单元根据所述下一个周期的控制总峰值速率重新计算得到每个流量处理单元的单个峰值速率。
结合本申请的第三方面,在本申请的第三方面的第一种可能的实施方式中,每个流量处理单元的单个承诺速率等于该流量处理单元在系统启动后的第一个周期控制前的重点对象的单个实际速率除以在系统启动后的第一个周期控制前的重点对象的总速率乘以目标总承诺速率。
结合本申请的第三方面的第一种可能的实施方式,在本申请的第三方面的第二种可能的实施方式中,所述目标总承诺速率的误差在±1Mbits/s之内。
结合本申请的第三方面,在本申请的第三方面的第三种可能的实施方式中,所述下一个周期的控制总峰值速率等于该周期的控制总峰值速率乘以目标总峰值速率除以所述该周期控制后的总速率。
结合本申请的第三方面,在本申请的第三方面的第四种可能的实施方式中,每个流量处理单元的单个峰值速率等于该流量处理单元在系统启动后的第一个周期控制前的单个实际速率除以在系统启动后的第一个周期控制前的总速率乘以所述下一个周期的控制总峰值速率。
为解决上述技术问题,本申请第四方面提供一种流量处理单元,所述流量处理单元属于分布式流量控制系统,其特征在于,包括:发送模块、接收模块以及计算模块,所述发送模块用于在当前周期结束前,向分布式流量控制系统中的速率调度单元发送该周期控制前的单个实际速率以及该周期控制后的单个实际速率,其中,所述该周期控制后的单个实际速率等于单个承诺速率和在该周期计算得到的单个峰值速率中较大的一个;所述接收模块用于在下一个周期到达时,接收所述速率调度单元发送的下一个周期的控制总峰值速率,所述下一个周期的控制总峰值速率是所述速率调度单元根据所述发送模块发送的所述该周期控制前的单个实际速率以及所述该周期控制后的单个实际速率计算得到的,所述接收模块将所述下一个周期的控制总峰值速率向计算模块发送;所述计算模块用于接收所述下一个周期的控制总峰值速率,根据所述下一个周期的控制总峰值速率重新计算得到单个峰值速率,并根据所述单个峰值速率对通过该流量处理单元的流量进行控制。
结合本申请的第四方面,在本申请的第四方面的第一种可能的实施方式中,所述单个峰值速率等于在系统启动后的第一个周期控制前的单个实际速率除以在系统启动后的第一个周期控制前的总速率乘以所述下一个周期的控制总峰值速率。
为解决上述技术问题,本申请第五方面提供一种报文传输速率调度系统,包括至少一个速率调度单元以及多个流量处理单元,所述速率调度单元与多个流量处理单元通信,其中,所述速率调度单元为如上述第三方面或第三方面的任意一种可能的实现方式所述的速率调度单元。
结合本申请的第五方面,在本申请的第五方面的第一种可能的实施方式中,所述流量处理单元为如上述第四方面或第四方面的任意一种可能的实现方式所述的流量处理单元。
上述方案,通过在流量处理单元的单个承诺速率大于流量处理单元在该周期计算得到的单个峰值速率从而导致该周期控制后的总速率大于目标总峰值速率时,降低下一个周期的控制总峰值速率,从而降低单个承诺速率没有大于该周期计算得到的单个峰值速率的流量处理单元的速率,进而降低控制后的总速率,使其达到目标总峰值速率。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本申请。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施方式中也可以实现本申请。在其它情况中,省略对众所周知的装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
参阅图1,图1是本申请报文传输速率调度系统一实施方式的结构示意图。本实施方式的速率调度系统包括:至少一个速率调度单元110以及至少两个流量处理单元121、122。其中,速率调度单元110根据调度策略控制流量处理单元121、122对通过自身的数据流进行流量控制。为了简明起见,下面以两个流量处理单元121、122为例进行说明,该传输速率调度流程同样也适用于有更多流量处理单元的情况。
在控制前,通过第一个流量处理单元121的单个实际速率为50Mbits/s,其中,重点对象HTTP数据流的单个实际速率占第一个流量处理单元121的单个实际速率中的45Mbits/s;通过第二个流量处理单元122的单个实际速率为100Mbits/s,其中,重点对象HTTP数据流的单个实际速率占第二个流量处理单元122的单个实际速率中的5Mbits/s。所以,控制前的总速率为150Mbits/s,其中,HTTP流量占50Mbits/s。现在控制目标是要求通过这两个流量处理单元121、122的总速率从150Mbits/s下降到60Mbits/s,即目标总峰值速率为60Mbits/s。为了控制流量,使得通过两个流量处理单元121、122的总速率从150Mbits/s下降到60Mbits/s,必须丢弃部分数据包。丢弃的数据包可能是HTTP数据流的数据包,也可能不是HTTP数据流的数据包。但是,由于必须保证重点对象的传输速率,在丢弃数据包时,必须保证HTTP数据流的目标总承诺速率不低于40Mbits/s。
系统启动开始运行,在第一个周期结束前,速率调度单元110向各个流量处理单元121、122发送查询统计命令。
在接收到查询统计命令后,各个流量处理单元121、122向速率调度单元110反馈第一个周期控制前的单个实际速率以及第一个周期控制后的单个实际速率。第一个周期前没有控制,所以没有第一个周期控制后的单个实际速率。所以,第一个流量处理单元121仅向速率调度单元110反馈第一个周期控制前的单个实际速率50Mbits/s;第二个流量处理单元122仅向速率调度单元110反馈第一个周期控制前的单个实际速率100Mbits/s。
速率调度单元110在接收到第一个流量处理单元121反馈的第一个周期控制前的单个实际速率50Mbits/s以及第二个流量处理单元122反馈的第一个周期控制前的单个实际速率100Mbits/s后,将两者累加得到第一周期控制前的总速率150Mbits/s。第一个周期没有控制,故也没有第一周期控制后的总速率,更没法判断第一周期控制后的总速率是否小于或等于目标总峰值速率。所以速率调度单元110将目标总峰值速率60Mbits/s作为下一个周期的控制总峰值速率。
在第二个周期开始时,速率调度单元110将目标总峰值速率60Mbits/s作为下一个周期的控制总峰值速率向各个流量处理单元121、122发送。
第一个流量处理单元121在接收到下一个周期的控制总峰值速率后,根据第一个流量处理单元121的单个峰值速率等于第一个流量处理单元121在第一个周期控制前的单个实际速率除以在第一个周期控制前的总速率乘以下一个周期的控制总峰值速率,从而计算得到第一个流量处理单元121的单个峰值速率,所以,第一个流量处理单元121的单个峰值速率=50Mbits/s÷150Mbits/s×60Mbits/s=20Mbits/s。第一个流量处理单元121的单个承诺速率等于第一个流量处理单元121在第一个周期控制前的重点对象(HTTP数据流)的单个实际速率除以在第一个周期控制前的重点对象的总速率乘以目标总承诺速率,即,第一个流量处理单元121的单个承诺速率=45Mbits/s÷50Mbits/s×40Mbits/s=36Mbits/s。第一个流量处理单元121根据计算得到的单个峰值速率20Mbits/s进行流量控制,将流量超出20Mbits/s的数据包进行丢弃,但是,第一个流量处理单元121的单个承诺速率为36Mbits/s。基于承诺速率优先保护的原则下,第一个流量处理单元121只能把不是HTTP数据流的数据包和HTTP数据流中的4Mbits/s的数据包丢弃,而不能将其它的HTTP数据流中的数据包进行丢弃。故,最后,第一个流量处理单元121控制后的单个实际速率为36Mbits/s。
同样地,第二个流量处理单元122在接收到下一个周期的控制总峰值速率后,根据第二个流量处理单元122的单个峰值速率等于第二个流量处理单元122在第一个周期控制前的单个实际速率除以在第一个周期控制前的总速率乘以下一个周期的控制总峰值速率,从而计算得到第二个流量处理单元122的单个峰值速率,所以,第二个流量处理单元122的单个峰值速率=100Mbits/s÷150Mbits/s×60Mbits/s=40Mbits/s。第二个流量处理单元122的单个承诺速率等于第二个流量处理单元122在第一个周期控制前的重点对象(HTTP数据流)的单个实际速率除以在第一个周期控制前的重点对象的总速率乘以目标总承诺速率,即,第二个流量处理单元122的单个承诺速率=5Mbits/s÷50Mbits/s×40Mbits/s=4Mbits/s。第二个流量处理单元122根据计算得到的单个峰值速率40Mbits/s进行流量控制,将流量超出40Mbits/s的数据包进行丢弃,由于第二个流量处理单元122的单个承诺速率为4Mbits/s,小于40Mbits/s,所以,可将4Mbits/s的HTTP数据流的数据包保留,并将第二个流量处理单元122的单个实际速率控制到40Mbits/s。所以,每个流量处理单元该周期控制后的单个实际速率等于该流量处理单元的单个承诺速率和该流量处理单元在上一周期计算得到的单个峰值速率中较大的一个。
在第二个周期结束前,速率调度单元110向各个流量处理单元121、122发送查询统计命令。在接收到查询统计命令后,各个流量处理单元121、122向速率调度单元110反馈第二个周期控制前的单个实际速率以及第二个周期控制后的单个实际速率。所以,第一个流量处理单元121向速率调度单元110反馈第二个周期控制前的单个实际速率50Mbits/s以及第二个周期控制后的单个实际速率36Mbits/s。第二个流量处理单元122向速率调度单元110反馈第二个周期控制前的单个实际速率100Mbits/s以及第二个周期控制后的单个实际速率40Mbits/s。
速率调度单元110累加各个流量处理单元121、122所反馈的该周期控制前的单个实际速率以获得该周期控制前的总速率,并累加各个流量处理单元121、122所反馈的该周期控制后的单个实际速率以获得该周期控制后的总速率。将第一个流量处理单元121控制前的单个实际速率以及第二个流量处理单元122控制前的单个实际速率累加得到该周期控制前的总速率50Mbits/s+100Mbits/s=150Mbits/s;将第一个流量处理单元121控制后的单个实际速率以及第二个流量处理单元122控制后的单个实际速率累加得到该周期控制后的总速率36Mbits/s+40Mbits/s=76Mbits/s。该周期控制后的HTTP数据流的总速率为36Mbits/s+4Mbits/s=41Mbits/s。由于系统允许有±1Mbits/s的误差,所以,41Mbits/s也可以认为达到了目标。
速率调度单元110根据该周期控制后的总速率判断是否小于或等于目标总峰值速率。该周期控制后的总速率为76Mbits/s,大于目标总峰值速率60Mbits/s。
在当前周期(第二个周期)控制后的总速率大于目标总峰值速率时,速率调度单元110调整下一周期的控制总峰值速率使得下一个周期的控制总峰值速率小于该周期控制前的总速率。例如,使得下一个周期的控制总峰值速率等于该周期的控制总峰值速率乘以目标总峰值速率除以周期控制后的总速率,即,下一个周期的控制总峰值速率=60Mbits/s×60Mbits/s÷76Mbits/s=47Mbits/s,小于目标总峰值速率60Mbits/s。可以理解地,也可以采用其它的方式使得下一个周期的控制总峰值速率小于该周期控制前的总速率,例如,将该周期控制前的总速率减去指定的数值,从而得到下一个周期的控制总峰值等等。
在第三个周期开始时,速率调度单元110将下一个周期的控制总峰值速率向各个流量处理单元121、122发送。
第一个流量处理单元121在接收到下一个周期的控制总峰值速率后,根据第一个流量处理单元121的单个峰值速率等于第一个流量处理单元121在第一个周期控制前的单个实际速率除以在第一个周期控制前的总速率乘以下一个周期的控制总峰值速率,从而计算得到第一个流量处理单元121的单个峰值速率,所以,第一个流量处理单元121的单个峰值速率=50Mbits/s÷150Mbits/s×47Mbits/s=16Mbits/s。第一个流量处理单元121的单个承诺速率不变。第一个流量处理单元121根据计算得到的单个峰值速率16Mbits/s进行流量控制,将流量超出16Mbits/s的数据包进行丢弃,但是,第一个流量处理单元121的单个承诺速率为36Mbits/s。经过第二个周期后,通过第一流量处理单元121的数据包全部是HTTP数据流的数据包,基于承诺速率优先保护的原则下,第一个流量处理单元121不能再将任何数据包丢弃。故,最后,第一个流量处理单元121控制后的单个实际速率依然为36Mbits/s。
同样地,第二个流量处理单元122在接收到下一个周期的控制总峰值速率后,根据第二个流量处理单元122的单个峰值速率等于第二个流量处理单元122在第一个周期控制前的单个实际速率除以在第一个周期控制前的总速率乘以下一个周期的控制总峰值速率,从而计算得到第二个流量处理单元122的单个峰值速率,所以,第二个流量处理单元122的单个峰值速率=100Mbits/s÷150Mbits/s×47Mbits/s=32Mbits/s。第二个流量处理单元122的单个承诺速率不变。第二个流量处理单元122根据计算得到的单个峰值速率32Mbits/s进行流量控制,将流量超出32Mbits/s的数据包进行丢弃,由于第二个流量处理单元122的单个承诺速率为4Mbits/s,小于32Mbits/s,所以,可将4Mbits/s的HTTP数据流的数据包保留,并将第二个流量处理单元122的单个实际速率控制到32Mbits/s。
在当前周期(第三个周期)结束前,速率调度单元110向各个流量处理单元121、122发送查询统计命令。在接收到查询统计命令后,各个流量处理单元121、122向速率调度单元110反馈第三个周期控制前的单个实际速率以及第三个周期控制后的单个实际速率。所以,第一个流量处理单元121向速率调度单元110反馈第三个周期控制前的单个实际速率36Mbits/s以及第三个周期控制后的单个实际速率36Mbits/s。第二个流量处理单元122向速率调度单元110反馈第三个周期控制前的单个实际速率40Mbits/s以及第二个周期控制后的单个实际速率32Mbits/s。
速率调度单元110累加各个流量处理单元121、122所反馈的该周期控制前的单个实际速率以获得该周期控制前的总速率,并累加各个流量处理单元121、122所反馈的该周期控制后的单个实际速率以获得该周期控制后的总速率。将第一个流量处理单元121控制前的单个实际速率以及第二个流量处理单元122控制前的单个实际速率累加得到该周期控制前的总速率36Mbits/s+40Mbits/s=76Mbits/s;将第一个流量处理单元121控制后的单个实际速率以及第二个流量处理单元122控制后的单个实际速率累加得到该周期控制后的总速率36Mbits/s+32Mbits/s=68Mbits/s。该周期控制后的HTTP数据流的总速率为36Mbits/s+4Mbits/s=41Mbits/s。
该周期控制后的总速率68Mbits/s依然大于目标总峰值速率60Mbits/s,但是已经逼近目标总峰值速率,所以,每个周期重复执行上述方法,直到控制后的总速率小于或等于目标总峰值速率,从而完成速率调度。此处为了方便起见,不再重复赘述。
此外,为了能够使流量处理单元上报的控制前的单个实际速率和控制后的单个实际速率尽量精准,应尽量使得速率调度单元110向各个流量处理单元121、122发送下一个周期的控制总峰值速率到各个流量处理单元121、122向速率调度单元110反馈该周期控制前的单个实际速率以及该周期控制后的单个实际速率之间的时间占每个周期的比例尽量大。而且,为了能够及时进行调度,每个周期需达到秒级,甚至比秒级更小的时间单位。
参阅图2,图2是本申请报文传输速率调度方法一实施方式的流程图,该流程图从速率调度单元的角度对报文传输速率调度方法进行描述。本实施方式的报文传输速率调度方法包括:
S201:速率调度单元在当前周期结束前,接收各个流量处理单元所反馈的该周期控制前的单个实际速率以及该周期控制后的单个实际速率。
速率调度单元可以在一个周期结束前,向各个流量处理单元发送查询统计命令,接收各个流量处理单元根据所述查询统计命令反馈的该周期控制前的单个实际速率以及该周期控制后的单个实际速率。也可以是各个流量处理单元根据预先设定的上报时间,例如每个周期结束前的1s,反馈的该周期控制前的单个实际速率以及该周期控制后的单个实际速率,当然在这种情况下,速率调度单元和各个流量处理单元之间需要进行时钟同步。也可以采用其他的反馈方式,本发明实施例在这里不进行限定。
每个流量处理单元根据该周期计算得到的单个峰值速率进行控制,由于流量处理单元必须保证重点对象流量不低于单个承诺速率,所以,每个流量处理单元该周期控制后的单个实际速率等于该流量处理单元的单个承诺速率和该流量处理单元在该周期计算得到的单个峰值速率中较大的一个。其中,每个流量处理单元的单个承诺速率等于该流量处理单元在第一个周期控制前的重点对象的单个实际速率除以在第一个周期控制前的重点对象的总速率乘以目标总承诺速率。每个流量处理单元的单个峰值速率等于该流量处理单元在第一个周期控制前的单个实际速率除以在第一个周期控制前的总速率乘以下一个周期的控制总峰值速率。
在该周期结束前,各个流量处理单元向速率调度单元发送该周期控制前的单个实际速率以及该周期控制后的单个实际速率。速率调度单元接收各个流量处理单元所反馈的该周期控制前的单个实际速率以及该周期控制后的单个实际速率。
S202:速率调度单元累加各个流量处理单元所反馈的该周期控制前的单个实际速率以获得该周期控制前的总速率,并累加各个流量处理单元所反馈的该周期控制后的单个实际速率以获得该周期控制后的总速率。
S203:速率调度单元判断该周期控制后的总速率是否大于目标总峰值速率。
在计算得到该周期控制后的总速率后,速率调度单元根据该周期控制后的总速率判断是否大于目标总峰值速率。如果该周期控制后的总速率大于目标总峰值速率,则进入步骤S204;如果该周期控制后的总速率小于或等于目标总峰值速率,则结束流程。
S204:速率调度单元调整下一周期的控制总峰值速率使得下一个周期的控制总峰值速率小于该周期控制前的总速率。
速率调度单元调整下一周期的控制总峰值速率,使得下一个周期的控制总峰值速率等于该周期的控制总峰值速率乘以目标总峰值速率除以该周期控制后的总速率。由于目标总峰值速率总是小于该周期控制后的总速率(如果目标总峰值速率大于或等于该周期控制后的总速率,则已经达到控制的目标,没必要再进行控制,故在步骤S203时已经跳转到结束流程),所以,目标总峰值速率除以该周期控制后的总速率是一个小于1的分数,而该周期的控制总峰值速率小于或等于该周期控制前的总速率,所以,该周期的控制总峰值速率乘以一个小于1的分数,必然比该周期控制前的总速率小,从而达到使得下一个周期的控制总峰值速率小于该周期控制前的总速率的效果。
S205:速率调度单元将下一个周期的控制总峰值速率向各个流量处理单元发送。
在下一个周期到达时,速率调度单元将计算得到的下一个周期的控制总峰值速率向各个流量处理单元发送。每个流量处理单元根据接收到的下一个周期的控制总峰值速率重新计算得到每个流量处理单元的单个峰值速率,以使每个流量处理单元根据计算得到的单个峰值速率进行控制。最后,返回步骤S201,直到控制后的总速率小于或等于目标总峰值速率。
参阅图3,图3是本申请报文传输速率调度方法另一实施方式的流程图,该流程图从流量处理单元的角度对报文传输速率调度方法进行描述。本实施方式的报文传输速率调度方法包括:
S301:在当前周期结束前,流量处理单元向分布式流量控制系统中的速率调度单元发送该周期控制前的单个实际速率以及该周期控制后的单个实际速率。
流量处理单元根据该周期计算得到的单个峰值速率进行控制,由于流量处理单元必须保证重点对象流量不低于单个承诺速率,所以,流量处理单元该周期控制后的单个实际速率等于该流量处理单元的单个承诺速率和该流量处理单元计算得到的单个峰值速率中较大的一个。其中,该流量处理单元的单个承诺速率等于该流量处理单元在第一个周期控制前的重点对象的单个实际速率除以在第一个周期控制前的重点对象的总速率乘以目标总承诺速率。
在当前周期结束前,流量处理单元向速率调度单元发送该周期控制前的单个实际速率以及该周期控制后的单个实际速率。
S302:在下一个周期到达时,流量处理单元接收速率调度单元根据该周期控制前的单个实际速率以及该周期控制后的单个实际速率计算得到的下一个周期的控制总峰值速率。
在下一个周期到达时,速率调度单元接收各个流量处理单元所反馈的该周期控制前的单个实际速率以及该周期控制后的单个实际速率后,令下一个周期的控制总峰值速率等于该周期的控制总峰值速率乘以目标总峰值速率除以该周期控制后的总速率。由于目标总峰值速率总是小于该周期控制后的总速率。所以,目标总峰值速率除以该周期控制后的总速率是一个小于1的分数,而该周期的控制总峰值速率小于或等于该周期控制前的总速率,所以,该周期的控制总峰值速率乘以一个小于1的分数,必然比该周期控制前的总速率小,从而达到使得下一个周期的控制总峰值速率小于该周期控制前的总速率的效果。速率调度单元将计算得到的下一个周期的控制总峰值速率向流量处理单元发送。流量处理单元接收速率调度单元所发送的下一个周期的控制总峰值速率。
S303:流量处理单元根据下一个周期的控制总峰值速率重新计算得到单个峰值速率,并根据所述单个峰值速率对通过该流量处理单元的流量进行控制。
流量处理单元在接收到下一个周期的控制总峰值速率后,令流量处理单元的单个峰值速率等于该流量处理单元在第一个周期控制前的单个实际速率除以在系统启动后的第一个周期控制前的总速率乘以下一个周期的控制总峰值速率。在计算得到流量处理单元的单个峰值速率后,流量处理单元根据单个峰值速率进行控制,以逐步达到目标峰值总速率。
参阅图4,图4是本申请速率调度单元一实施方式的结构示意图。本实施方式的速率调度单元属于分布式流量控制系统,包括:接收模块410、累加模块420、判断模块430以及发送模块440。
接收模块410用于在当前周期结束前,接收所述分布式流量控制系统中的各个流量处理单元所反馈的该周期控制前的单个实际速率以及该周期控制后的单个实际速率,其中,每个流量处理单元该周期控制后的单个实际速率等于该流量处理单元的单个承诺速率和该流量处理单元在该周期计算得到的单个峰值速率中较大的一个。比如,每个流量处理单元根据该周期计算得到的单个峰值速率进行控制,由于流量处理单元必须保证重点对象流量不低于单个承诺速率,所以,每个流量处理单元该周期控制后的单个实际速率等于该流量处理单元的单个承诺速率和该流量处理单元在该周期计算得到的单个峰值速率中较大的一个。其中,每个流量处理单元的单个承诺速率等于该流量处理单元在第一个周期控制前的重点对象的单个实际速率除以在第一个周期控制前的重点对象的总速率乘以目标总承诺速率。每个流量处理单元的单个峰值速率等于该流量处理单元在第一个周期控制前的单个实际速率除以在第一个周期控制前的总速率乘以下一个周期的控制总峰值速率。在该周期结束前,各个流量处理单元向速率调度单元发送该周期控制前的单个实际速率以及该周期控制后的单个实际速率。接收模块410接收各个流量处理单元所反馈的该周期控制前的单个实际速率以及该周期控制后的单个实际速率。接收模块410将各个流量处理单元所反馈的该周期控制前的单个实际速率以及该周期控制后的单个实际速率向累加模块420发送。
累加模块420用于接收各个流量处理单元所反馈的该周期控制前的单个实际速率以及该周期控制后的单个实际速率,累加各个流量处理单元所反馈的该周期控制前的单个实际速率以获得该周期控制前的总速率,并累加各个流量处理单元所反馈的该周期控制后的单个实际速率以获得该周期控制后的总速率。累加模块420将该周期控制前的总速率向发送模块440发送,以及将该周期控制后的总速率向判断模块430发送。
判断模块430用于接收该周期控制后的总速率,判断该周期控制后的总速率是否大于目标总峰值速率。
发送模块440用于接收所述该周期控制前的总速率,在所述判断模块430判断出该周期控制后的总速率大于目标总峰值速率时,调整下一周期的控制总峰值速率使得下一个周期的控制总峰值速率小于所述该周期控制前的总速率,并在下一个周期到达时将所述下一个周期的控制总峰值速率向所述各个流量处理单元发送,使得每个流量处理单元根据所述下一个周期的控制总峰值速率重新计算得到每个流量处理单元的单个峰值速率。比如,发送模块440调整下一周期的控制总峰值速率,使得下一个周期的控制总峰值速率等于该周期的控制总峰值速率乘以目标总峰值速率除以该周期控制后的总速率。由于目标总峰值速率总是小于该周期控制后的总速率,所以,目标总峰值速率除以该周期控制后的总速率是一个小于1的分数,而该周期的控制总峰值速率小于或等于该周期控制前的总速率,所以,该周期的控制总峰值速率乘以一个小于1的分数,必然比该周期控制前的总速率小,从而达到使得下一个周期的控制总峰值速率小于该周期控制前的总速率的效果。在下一个周期到达时,发送模块440将计算得到的下一个周期的控制总峰值速率向各个流量处理单元发送。每个流量处理单元根据接收到的下一个周期的控制总峰值速率重新计算得到每个流量处理单元的单个峰值速率,以使每个流量处理单元根据计算得到的单个峰值速率进行控制。
参阅图5,图5是本申请流量处理单元一实施方式的结构示意图。本实施方式的流量处理单元包括:发送模块510、接收模块520以及计算模块530。
发送模块510用于在当前周期结束前,向分布式流量控制系统中的速率调度单元发送该周期控制前的单个实际速率以及该周期控制后的单个实际速率,其中,所述该周期控制后的单个实际速率等于单个承诺速率和在该周期计算得到的单个峰值速率中较大的一个。比如,流量处理单元根据计算得到的单个峰值速率进行控制,由于流量处理单元必须保证重点对象流量不低于单个承诺速率,所以,流量处理单元该周期控制后的单个实际速率等于该流量处理单元的单个承诺速率和该流量处理单元计算得到的单个峰值速率中较大的一个。其中,流量处理单元的单个承诺速率等于流量处理单元在系统开始启动后的第一个周期控制前的重点对象的单个实际速率除以在系统开始启动后的第一个周期控制前的重点对象的总速率乘以目标总承诺速率。
在该周期结束前,发送模块510向速率调度单元发送该周期控制前的单个实际速率以及该周期控制后的单个实际速率。
接收模块520用于在下一个周期到达时,接收速率调度单元发送的下一个周期的控制总峰值速率,下一个周期的控制总峰值速率是速率调度单元根据所述发送模块510发送的该周期控制前的单个实际速率以及该周期控制后的单个实际速率计算得到的。比如,速率调度单元接收各个流量处理单元所反馈的该周期控制前的单个实际速率以及该周期控制后的单个实际速率后,令下一个周期的控制总峰值速率等于该周期的控制总峰值速率乘以目标总峰值速率除以该周期控制后的总速率。由于目标总峰值速率总是小于该周期控制后的总速率。所以,目标总峰值速率除以该周期控制后的总速率是一个小于1的分数,而该周期的控制总峰值速率小于或等于该周期控制前的总速率,所以,该周期的控制总峰值速率乘以一个小于1的分数,必然比该周期控制前的总速率小,从而达到使得下一个周期的控制总峰值速率小于该周期控制前的总速率的效果。速率调度单元将计算得到的下一个周期的控制总峰值速率向流量处理单元发送。接收模块520接收速率调度单元所发送的下一个周期的控制总峰值速率。接收模块520将下一个周期的控制总峰值速率向计算模块530发送。
计算模块530用于接收下一个周期的控制总峰值速率,根据下一个周期的控制总峰值速率重新计算得到单个峰值速率,并根据所述单个峰值速率对通过该流量处理单元的流量进行控制。比如,流量处理单元在接收到下一个周期的控制总峰值速率后,令流量处理单元的单个峰值速率等于该流量处理单元在第一个周期控制前的单个实际速率除以在系统启动后的第一个周期控制前的总速率乘以下一个周期的控制总峰值速率。在计算模块530计算得到流量处理单元的单个峰值速率后,流量处理单元根据单个峰值速率进行控制,以逐步达到目标峰值总速率。
参阅图6,图6是本申请速率调度单元一实施方式的结构示意图。本实施方式的速率调度单元包括:接收器610、处理器620、发送器630、随机存取存储器640、只读存储器650以及总线660。其中,处理器620通过总线660分别耦接接收器610、发送器630、随机存取存储器640以及只读存储器650。其中,当需要运行速率调度单元时,通过固化在只读存储器650中的基本输入输出系统或者嵌入式系统中的bootloader引导系统进行启动,引导速率调度单元进入正常运行状态。在速率调度单元进入正常运行状态后,在随机存取存储器640中运行应用程序和操作系统,使得:
接收器610用于在当前周期结束前,接收分布式流量控制系统中的各个流量处理单元所反馈的该周期控制前的单个实际速率以及该周期控制后的单个实际速率,其中,每个流量处理单元该周期控制后的单个实际速率等于该流量处理单元的单个承诺速率和该流量处理单元在该周期计算得到的单个峰值速率中较大的一个。比如,每个流量处理单元根据该周期计算得到的单个峰值速率进行控制,由于流量处理单元必须保证重点对象流量不低于单个承诺速率,所以,每个流量处理单元该周期控制后的单个实际速率等于该流量处理单元的单个承诺速率和该流量处理单元在该周期计算得到的单个峰值速率中较大的一个。其中,每个流量处理单元的单个承诺速率等于该流量处理单元在第一个周期控制前的重点对象的单个实际速率除以在第一个周期控制前的重点对象的总速率乘以目标总承诺速率。每个流量处理单元的单个峰值速率等于该流量处理单元在第一个周期控制前的单个实际速率除以在第一个周期控制前的总速率乘以下一个周期的控制总峰值速率。在该周期结束前,各个流量处理单元向速率调度单元发送该周期控制前的单个实际速率以及该周期控制后的单个实际速率。接收器610接收各个流量处理单元所反馈的该周期控制前的单个实际速率以及该周期控制后的单个实际速率。接收器610接收各个流量处理单元所反馈的该周期控制前的单个实际速率以及该周期控制后的单个实际速率。接收器610将各个流量处理单元所反馈的该周期控制前的单个实际速率以及该周期控制后的单个实际速率向处理器620发送。
处理器620用于接收各个流量处理单元所反馈的该周期控制前的单个实际速率以及该周期控制后的单个实际速率,累加各个流量处理单元所反馈的该周期控制前的单个实际速率以获得该周期控制前的总速率,并累加各个流量处理单元所反馈的该周期控制后的单个实际速率以获得该周期控制后的总速率,判断该周期控制后的总速率是否小于或等于目标总峰值速率,在该周期控制后的总速率大于目标总峰值速率时,调整下一周期的控制总峰值速率使得下一个周期的控制总峰值速率小于所述该周期控制前的总速率。比如,处理器620调整下一周期的控制总峰值速率,使得下一个周期的控制总峰值速率等于该周期的控制总峰值速率乘以目标总峰值速率除以该周期控制后的总速率。由于目标总峰值速率总是小于该周期控制后的总速率,所以,目标总峰值速率除以该周期控制后的总速率是一个小于1的分数,而该周期的控制总峰值速率小于或等于该周期控制前的总速率,所以,该周期的控制总峰值速率乘以一个小于1的分数,必然比该周期控制前的总速率小,从而达到使得下一个周期的控制总峰值速率小于该周期控制前的总速率的效果。
发送器630用于在下一个周期到达时将所述下一个周期的控制总峰值速率向所述各个流量处理单元发送,使得每个流量处理单元根据所述下一个周期的控制总峰值速率重新计算得到每个流量处理单元的单个峰值速率。比如,在下一个周期到达时,发送器630将计算得到的下一个周期的控制总峰值速率向各个流量处理单元发送。每个流量处理单元根据接收到的下一个周期的控制总峰值速率重新计算得到每个流量处理单元的单个峰值速率,以使每个流量处理单元根据计算得到的单个峰值速率进行控制。
参阅图7,图7是本申请流量处理单元另一实施方式的结构示意图。本实施方式的流量处理单元包括:发送器710、接收器720、处理器730、随机存取存储器740、只读存储器750、网络接口单元760以及总线770。其中,处理器730通过总线770分别耦接发送器710、接收器720、随机存取存储器740、只读存储器750以及网络接口单元760。其中,当需要运行流量处理单元时,通过固化在只读存储器750中的基本输入输出系统或者嵌入式系统中的bootloader引导系统进行启动,引导流量处理单元进入正常运行状态。在流量处理单元进入正常运行状态后,在随机存取存储器740中运行应用程序和操作系统,从网络接收数据或者向网络发送数据,并使得:
发送器710用于在当前周期结束前,向分布式流量控制系统中的速率调度单元发送该周期控制前的单个实际速率以及该周期控制后的单个实际速率,其中,所述该周期控制后的单个实际速率等于单个承诺速率和在该周期计算得到的单个峰值速率中较大的一个。比如,流量处理单元根据计算得到的单个峰值速率进行控制,由于流量处理单元必须保证重点对象流量不低于单个承诺速率,所以,流量处理单元该周期控制后的单个实际速率等于该流量处理单元的单个承诺速率和该流量处理单元计算得到的单个峰值速率中较大的一个。其中,流量处理单元的单个承诺速率等于流量处理单元在系统开始启动后的第一个周期控制前的重点对象的单个实际速率除以在系统开始启动后的第一个周期控制前的重点对象的总速率乘以目标总承诺速率。
在该周期结束前,发送器710向速率调度单元发送该周期控制前的单个实际速率以及该周期控制后的单个实际速率。
接收器720用于在下一个周期到达时,接收速率调度单元发送的下一个周期的控制总峰值速率,所述下一个周期的控制总峰值速率是速率调度单元根据所述该周期控制前的单个实际速率以及该周期控制后的单个实际速率计算得到的。比如,速率调度单元接收各个流量处理单元所反馈的该周期控制前的单个实际速率以及该周期控制后的单个实际速率后,令下一个周期的控制总峰值速率等于该周期的控制总峰值速率乘以目标总峰值速率除以该周期控制后的总速率。由于目标总峰值速率总是小于该周期控制后的总速率。所以,目标总峰值速率除以该周期控制后的总速率是一个小于1的分数,而该周期的控制总峰值速率小于或等于该周期控制前的总速率,所以,该周期的控制总峰值速率乘以一个小于1的分数,必然比该周期控制前的总速率小,从而达到使得下一个周期的控制总峰值速率小于该周期控制前的总速率的效果。速率调度单元将计算得到的下一个周期的控制总峰值速率向流量处理单元发送。接收器720接收速率调度单元所发送的下一个周期的控制总峰值速率。接收器720将下一个周期的控制总峰值速率向处理器730发送。
处理器730用于接收下一个周期的控制总峰值速率,根据下一个周期的控制总峰值速率重新计算得到单个峰值速率,并根据所述单个峰值速率对通过该流量处理单元的流量进行控制。比如,流量处理单元在接收到下一个周期的控制总峰值速率后,令流量处理单元的单个峰值速率等于该流量处理单元在第一个周期控制前的单个实际速率除以在系统启动后的第一个周期控制前的总速率乘以下一个周期的控制总峰值速率。在处理器730计算得到流量处理单元的单个峰值速率后,流量处理单元根据单个峰值速率进行控制,以逐步达到目标峰值总速率。
根据上述的速率调度单元以及流量处理单元,本申请还提供了一种报文传输速率调度系统,包括至少一个速率调度单元以及多个流量处理单元,所述速率调度单元与多个流量处理单元通信,具体请参见图1及相关描述,此处不重复赘述。
上述方案,通过在流量处理单元的单个承诺速率大于流量处理单元在该周期计算得到的单个峰值速率从而导致该周期控制后的总速率大于目标总峰值速率时,降低下一个周期的控制总峰值速率,从而降低单个承诺速率没有大于该周期计算得到的单个峰值速率的流量处理单元的速率,进而降低控制后的总速率,使其达到目标总峰值速率。
在本申请所提供的几个实施方式中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。