本申请涉及通信技术领域,尤其涉及一种流量控制的方法及节点。
背景技术:
目前,为了解决端对端之间的流量传输的拥塞现象,端到端的流量控制方法主要基于当前时延和丢包率来判断拥塞情况,然后通过进行流量控制来解除拥塞。这种流量控制方式对时延敏感业务的性能影响较大,如:ca业务对时延要求很高,如果连续几十毫秒以上时间段的时延都比较大,控制拥塞时延极易超过时延敏感业务的容忍值,会导致ca业务存在负增益。
由于流量控制需要考虑时效性,流量控制方式只能基于当前时延来判断拥塞状态,所以,采用目前的流量控制方式由于无法提前预知拥塞状态,所以也无法提前进行流量控制,进而无法保证流量控制的及时性,采用目前的流量控制方式并不能及时的解除拥塞现象,容易出现流量控制滞后,导致拥塞时延比较大或丢包比较严重。
技术实现要素:
本申请提供了一种流量控制的方法及节点,能够解决现有技术中端对端的流量控制滞后导致拥塞严重的问题。
本申请第一方面提供一种流量控制的方法,该方法可用于通信设备或者通信系统,用于通信设备时,本申请中的各节点可以是通信设备中的功能模块,本申请则是用于控制同一通信设备内部不同功能模块之间的流量控制;用于通信设备时,本申请中的各节点可以是独立的通信设备,本申请则是用于控制同一通信系统中的不同通信设备之间的流量控制。基于上述两种应用场景,所述方法可包括:
首先,控制节点获取当前时刻之后源节点向目的节点发送的业务包的时延预测值,然后,所述控制节点根据包时延的变化趋势和所述时延预测值确定当前的流量传输的拥塞检测结果,将所述拥塞检测结果发送给所述源节点,所述拥塞检测结果用于所述源节点在确定拥塞检测结果为拥塞时降低所述源节点发送业务包的发送速率,其中,所述包时延的变化趋势对应拥塞时长的变化。
现有机制中,由于只能根据当前的流量传输来判断当前的流量传输是否处于拥塞状态,但无法预测到未来时刻的拥塞状态,且针对时延敏感业务易出现丢包现象,与现有机制相比,本申请中,本申请基于业务包的时延预测值,并根据包时延的变化趋势进行拥塞检测,能够提前预测到拥塞状态,使得源节点能够提前在源头对业务包的发送速率进行动态控制,这样通过提前控制流量的方式能够及时的控制流量,也能有效的降低丢包的概率。
在一些可能的设计中,所述包时延的变化趋势用时延变化曲线表示,所述业务包的时延预测值根据当前预测周期内的时延变化曲线得到,当前预测周期内的时延变化曲线根据n个探测包的发送时刻和所述n个探测包的接收时刻得到,所述n个探测包由所述源节点在当前预测周期内发送给所述目的节点,n为正整数。
在一些可能的设计中,获取时延预测值有多种途径,具体如下:
1、在所述控制节点获取当前时刻之后发送的业务包的时延预测值之前控制节点根据获取到的n个探测包计算出包时延,然后根据包时延得到一个时延变化曲线,具体可以所述n个探测包的包时延,根据所述n个探测包的包时延和拟合算法得到用于表示所述包时延的变化趋势的时延变化曲线。再根据当前的时延和时延变化曲线得到至少一个时延预测值。
2、控制节点从目的节点处获取目的节点根据时延变化曲线和包时延计算出的时延预测值。
3、控制节点从目的节点处获取目的节点计算出的时延变化曲线后,根据当前的时延和获取的时延变化曲线得到上述时延预测值。
可选的,该时延变化曲线可用于当前的拥塞检测周期,也可用于至少一个拥塞检测周期,也可仅用于当前的拥塞检测周期,这样可以保证整个拥塞检测周期内,所使用的时延变化曲线最接近真实的流量传输状态,那么通过时延变化曲线预测出的时延预测值也就相应更为准确,拥塞检测周期也可以动态的调整,具体本申请均不作限定。
在一些可能的设计中,当前时刻为t,所述方法还包括:
所述控制节点根据所述时延变化曲线预测所述源节点在(t+δt)发送包的时延预测值,δt为t之后发送探测包的时刻,δt小于或等于预设阈值。
在一些可能的设计中,所述拥塞检测结果还用于指示所述源节点在确定当前的流量传输不拥塞时,根据当前所述源节点发送业务包的速率和所述时延预测值增加所述源节点发送业务包的速率。
在一些可能的设计中,控制节点还可以基于流量控制模式的切换进行拥塞检测,所述流量控制模式唯一对应探测包的发送频率、控制节点进行拥塞检测、以及业务包的发送速率的调整频率,在系统中可以分别设置三种功能模块,然后根据当前的拥塞程度或者流量传输状态设置几个梯度的流量控制模式,使得控制节点能够在各级流量控制模式之间动态切换。
当所述拥塞检测结果为非拥塞时,所述控制节点采用第一流量控制模式来对当前的流量传输的拥塞进行检测。
当所述拥塞检测结果为拥塞时,所述控制节点采用第二流量控制模式对当前的流量传输的拥塞进行检测。通过基于分析业务流量、拥塞情况、处理器占用率等特征的变频方式,能够实现在不需要进行拥塞控制的时间段内(如非拥塞时或无业务时)降低拥塞控制执行频率,从而降低拥塞检测和流量控制对设备转发性能和处理器性能的影响,并且通过这种变频方式能够适应长期、持续的拥塞检测。
本申请第二方面提供一种流量控制的方法,所述方法包括:
源节点在预测周期内向目的节点发送n个探测包,n为正整数,所述n个探测包用于所述目的节点或控制节点预测包时延的变化趋势,所述包时延的变化趋势对应拥塞时长的变化;
所述源节点接收所述控制节点发送的拥塞检测结果,在所述拥塞检测结果为拥塞时,降低所述源节点发送业务包的速率,所述拥塞检测结果由所述控制节点根据包时延的变化趋势和获取到的当前时刻之后源节点向目的节点发送的业务包的时延预测值确定。
相较于现有技术,本申请提供的方案中,收发模块1101在预测周期内向目的节点发送n个探测包,该n个探测包用于目的节点或控制节点预测包时延的变化趋势,使得在接收到控制节点100发送的拥塞检测结果后,可以根据该拥塞检测结果提前对当前的流量传输进行预先控制,从而能够提前在源头对业务包的发送速率进行动态控制,这样通过提前控制流量的方式能够及时的控制流量,也能有效的降低丢包的概率。
在一些可能的设计中,所述包时延的变化趋势用时延变化曲线表示,所述业务包的时延预测值根据当前预测周期内的时延变化曲线得到,当前预测周期内的时延变化曲线根据所述n个探测包的发送时刻和所述n个探测包的接收时刻得到。源节点可以将n个探测包的发送时刻信息发送给控制节点,以供控制节点去计算包时延,还可以将n个探测包的发送时刻信息通过目的节点转发给控制节点,以供控制节点去计算包时延,或者由目的节点去计算包时延后,将包时延发给控制节点,或者目的节点还可以在计算出包时延后,进一步的计算出时延变化曲线、甚至计算出时延预测值后,一同发送给控制节点,使得控制节点能够根据获取的时延预测值和时延变化曲线去预测当前时刻之后的,讴歌时刻的拥塞状态,从而达到提前控制流量的目的。
在一些可能的设计中,所述n个探测包的发送频率为定频或变频。
可选的,所述n个探测包根据业务流量、流量传输的拥塞程度和系统负荷中的至少一项变频发送。
源节点还可以基于流量控制模式的切换进行拥塞检测和流量控制,所述流量控制模式唯一对应探测包的发送频率、控制节点进行拥塞检测、以及业务包的发送速率的调整频率,在系统中可以分别设置三种功能模块,然后根据当前的拥塞程度或者流量传输状态设置几个梯度的流量控制模式,使得源节点能够在各级流量控制模式之间动态切换。
其中,所述流量控制模式唯一对应探测包的发送频率和业务包的发送速率的调整频率;
当所述拥塞检测结果为非拥塞时,所述源节点采用第一流量控制模式发送探测包和调整业务包的发送速率;
当所述拥塞检测结果为拥塞时,所述源节点采用第二流量控制模式发送探测包和调整业务包的发送速率。
可见,通过基于分析业务流量、拥塞情况、处理器占用率等特征的变频方式,能够实现在不需要进行拥塞控制的时间段内(如非拥塞时或无业务时)降低拥塞控制执行频率,从而降低拥塞检测和流量控制对设备转发性能和处理器性能的影响,并且通过这种变频方式能够适应长期、持续的拥塞检测。
在一些可能的设计中,设在所述预测周期内探测包的发送频率为f1,基于所述n个探测包预测业务包的时延预测值的频率为f2,其中f1>f2,f1和f2均为正数。
本申请第三方面提供一种用于流量控制的控制节点,具有实现对应于上述第一方面提供的流量控制的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。
一种可能的设计中,所述控制节点包括:
收发模块,用于获取当前时刻之后源节点向目的节点发送的业务包的时延预测值;
处理模块,用于根据包时延的变化趋势和所述收发模块获取的所述时延预测值确定当前的流量传输的拥塞检测结果,将所述拥塞检测结果发送给所述源节点,所述拥塞检测结果用于所述源节点在确定拥塞检测结果为拥塞时降低所述源节点发送业务包的发送速率,其中,所述包时延的变化趋势对应拥塞时长的变化。
可选的,所述包时延的变化趋势用时延变化曲线表示,所述业务包的时延预测值根据当前预测周期内的时延变化曲线得到,当前预测周期内的时延变化曲线根据n个探测包的发送时刻和所述n个探测包的接收时刻得到,所述n个探测包由所述源节点在当前预测周期内发送给所述目的节点,n为正整数。
可选的,所述处理模块在所述控制节点获取当前时刻之后发送的业务包的时延预测值之前,还用于:
通过所述收发模块获取所述n个探测包的包时延,根据所述n个探测包的包时延和拟合算法得到用于表示所述包时延的变化趋势的时延变化曲线。
可选的,当前时刻为t,所述处理模块还用于:
根据所述时延变化曲线预测所述源节点在(t+δt)发送包的时延预测值,δt为t之后发送探测包的时刻,δt小于或等于预设阈值。
可选的,所述控制节点基于流量控制模式对流量进行控制,所述流量控制模式唯一对应探测包的发送频率和业务包的发送速率的调整频率;所述控制控制节点还包括检测模块,所述检测模块用于:
当所述拥塞检测结果为非拥塞时,采用第一流量控制模式对当前的流量传输的拥塞进行检测。
当所述拥塞检测结果为拥塞时,采用第二流量控制模式对当前的流量传输的拥塞进行检测。
一种可能的设计中,所述控制节点包括:
至少一个处理器、存储器和收发器;
其中,所述存储器用于存储程序代码,所述处理器用于调用所述存储器中的程序代码来执行以下操作:
通过所述收发器获取当前时刻之后源节点向目的节点发送的业务包的时延预测值;
根据包时延的变化趋势和所述收发模块获取的所述时延预测值确定当前的流量传输的拥塞检测结果,将所述拥塞检测结果发送给所述源节点,所述拥塞检测结果用于所述源节点在确定拥塞检测结果为拥塞时降低所述源节点发送业务包的发送速率,其中,所述包时延的变化趋势对应拥塞时长的变化。
本申请第四方面提供一种用于流量控制的源节点,具有实现对应于上述第二方面提供的流量控制的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。
一种可能的设计中,所述源节点包括:
收发模块,用于在预测周期内向目的节点发送n个探测包,n为正整数,所述n个探测包用于所述目的节点或控制节点预测包时延的变化趋势,所述包时延的变化趋势对应拥塞时长的变化;
接收所述控制节点发送的拥塞检测结果;
处理模块用于在所述拥塞检测结果为拥塞时,降低所述源节点发送业务包的速率,所述拥塞检测结果由所述控制节点根据包时延的变化趋势和获取到的当前时刻之后源节点向目的节点发送的业务包的时延预测值确定。
可选的,所述包时延的变化趋势用时延变化曲线表示,所述业务包的时延预测值根据当前预测周期内的时延变化曲线得到,当前预测周期内的时延变化曲线根据所述n个探测包的发送时刻和所述n个探测包的接收时刻得到。
可选的,所述n个探测包的发送频率为定频或变频。
可选的,所述n个探测包根据业务流量、流量传输的拥塞程度和系统负荷中的至少一项变频发送。
可选的,所述源节点基于流量控制模式对流量进行控制,所述流量控制模式唯一对应探测包的发送频率和业务包的发送速率的调整频率;所述收发模块具体用于:
当所述拥塞检测结果为非拥塞时,采用第一流量控制模式发送探测包和调整业务包的发送速率;
当所述拥塞检测结果为拥塞时,采用第二流量控制模式发送探测包和调整业务包的发送速率。
可选的,设在所述预测周期内探测包的发送频率为f1,基于所述n个探测包预测业务包的时延预测值的频率为f2,其中f1>f2,f1和f2均为正数。
一种可能的设计中,所述源节点包括:
至少一个处理器、存储器和收发器;
其中,所述存储器用于存储程序代码,所述处理器用于调用所述存储器中的程序代码来执行以下操作:
通过所述收发器在预测周期内向目的节点发送n个探测包,n为正整数,所述n个探测包用于所述目的节点或控制节点预测包时延的变化趋势,所述包时延的变化趋势对应拥塞时长的变化;接收所述控制节点发送的拥塞检测结果;
在所述收发器接收到的所述拥塞检测结果为拥塞时,降低所述源节点发送业务包的速率,所述拥塞检测结果由所述控制节点根据包时延的变化趋势和获取到的当前时刻之后源节点向目的节点发送的业务包的时延预测值确定。
本申请第五方面提供一种通信系统,具有实现上述第一方面和第二方面中所述的流量控制的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。所述通信系统包括:
目的节点、第三方面所述控制节点以及第四方面所述的源节点。
本申请的又一方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
相较于现有技术,本申请提供的方案中,本申请基于业务包的时延预测值,并根据包时延的变化趋势进行拥塞检测,能够提前预测到拥塞状态,使得源节点能够提前在源头对业务包的发送速率进行动态控制,这样通过提前控制流量的方式能够及时的控制流量,也能有效的降低丢包的概率。
附图说明
图1为本发明实施例中通信系统的一种网络拓扑示意图;
图2为本发明实施例中流量控制的一种流程示意图;
图3为本发明实施例中时延变化曲线的一种示意图;
图4为本发明实施例中流量控制的另一种流程示意图;
图5为本发明实施例中流量控制的另一种流程示意图;
图6为本发明实施例中流量控制的另一种流程示意图;
图7为本发明实施例中流量控制的另一种流程示意图;
图8为本发明实施例中流量控制的另一种流程示意图;
图9为本发明实施例中流量控制模式变频切换的一种功能模块示意图;
图10为本发明实施例中用于流量控制的控制节点的一种结构示意图;
图11为本发明实施例中用于流量控制的源节点的一种示意图;
图12为本发明实施例中执行流量控制的实体设备的一种结构示意图。
具体实施方式
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本文中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个模块可以结合成或集成在另一个系统中,或一些特征可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块之间的间接耦合或通信连接可以是电性或其他类似的形式,本文中均不作限定。并且,作为分离部件说明的模块或子模块可以是也可以不是物理上的分离,可以是也可以不是物理模块,或者可以分布到多个电路模块中,可以根据实际的需要选择其中的部分或全部模块来实现本申请方案的目的。
本申请供了一种流量控制的方法及节点。图1为一种网络拓扑结构示意图,其中,源节点是指发送数据包(包括探测包和业务包)的传输节点,也是进行流量控制的传输节点。目的节点是指接收来自源节点的数据包的传输节点。控制节点则是指基于时延预测的拥塞检测节点,其可以检测从源节点到目的节点之间的传输链路是否处于拥塞状态,其部署位置不受限制,具体可以部署在以下情形之一:独立部署、部署于源节点、部署于目的节点、部署于源节点与目的节点之间的传输网络以及部署于控制节点等能够对本网络拓扑进行维护的控制节点上。
图1中,源节点通过网络发送探测包至目的节点,这些探测包可用于控制节点或者目的节点预测出当前时刻之后的某些时刻的业务包的时延预测值,然后控制节点根据获取到时延预测值去对当前的传输链路的拥塞状态进行拥塞检测,并将拥塞检测结果发送给源节点,使得源节点可以根据拥塞检测结果来动态的控制业务包的发送速率,从而动态的控制流量传输。
为解决流量控制不及时导致的流量传输拥塞的问题,本申请主要提供以下技术方案:
基于时延探测帧获得的时延样本信息进行时延预测,估算未来短时间内时延值,基于预测的时延预测值检测拥塞状态,提前进行拥塞控制,从而有效避免拥塞,解决传输拥塞场景下拥塞检测和流量控制滞后影响时延敏感业务性能问题。
此外,还可进一步基于分析业务流量、拥塞情况、处理器占有率等特征变频发送探测包,在不需要进行拥塞控制的时间段内(如非拥塞时或无业务时)降低拥塞控制执行频率,从而降低拥塞控制对设备转发性能和处理器性能的影响。
请参照图1,以下对本申请提供一种流量控制的方法进行举例说明,该方法可用于通信设备或者通信系统,用于通信设备时,本申请中的各节点可以是通信设备中的功能模块,本申请则是用于控制同一通信设备内部不同功能模块之间的流量控制;用于通信设备时,本申请中的各节点可以是独立的通信设备,本申请则是用于控制同一通信系统中的不同通信设备之间的流量控制。基于上述两类应用场景,所述方法可包括:
101、源节点在预测周期内向目的节点发送n个探测包。
其中,n为正整数,所述n个探测包用于所述目的节点或控制节点预测包时延的变化趋势,所述包时延的变化趋势对应拥塞时长的变化。
可选的,在一种实施方式中,所述包时延的变化趋势可用时延变化曲线表示,时延变化曲线可参考图3所示的曲线图。在制作图3所示的时延变化曲线时,首先分别获取源节点发送每个探测包的发送时刻,以及每个探测包在目的节点端的接收时刻,再根据探测包的接收时刻与探测包的发送时刻做差即可得到该探测包的包时延,共得到n个包时延。然后以这n个包时延作为时延样本,可以采用拟合算法对这n个包时延进行曲线拟合,即可得到一个如图3所示的时延变化曲线,图3所示的线性变化曲线为:y(t)=a0*1+a1*t。其中,y(t)表示时延预测值,a0和a1为曲线系数,t为拥塞时间,在其他实施方式中,还可以基于该公式进行形变,具体本申请不作限定。
102、目的节点接收源节点发送的n个探测包,根据n个探测包计算n个包时延。
103、控制节点获取当前时刻之后源节点向目的节点发送的业务包的时延预测值。
那么所述业务包的时延预测值根据当前预测周期内的时延变化曲线得到,当前预测周期内的时延变化曲线根据n个探测包的发送时刻和所述n个探测包的接收时刻得到,所述n个探测包由所述源节点在当前预测周期内发送给所述目的节点,n为正整数。
104、控制节点根据包时延的变化趋势和所述时延预测值确定当前的流量传输的拥塞检测结果。
在一些实施方式中,可设置一个拥塞门限值,该拥塞门限值的取值本申请不作限定。在控制节点在进行拥塞检测时,所时延预测值不小于该拥塞门限值,则可确定当前源节点到目的节点之间的流量传输状态为拥塞,反之,则为非拥塞。
105、控制节点将所述拥塞检测结果发送给所述源节点。
其中,所述拥塞检测结果用于所述源节点在确定拥塞检测结果为拥塞时降低所述源节点发送业务包的发送速率。
106、源节点接收所述控制节点发送的拥塞检测结果,在所述拥塞检测结果为拥塞时,降低所述源节点发送业务包的速率。
现有机制中,由于只能根据当前的流量传输来判断当前的流量传输是否处于拥塞状态,但无法预测到未来时刻的拥塞状态,且针对时延敏感业务易出现丢包现象,与现有机制相比,本申请中,本申请基于业务包的时延预测值,并根据包时延的变化趋势进行拥塞检测,能够提前预测到拥塞状态,使得源节点能够提前在源头对业务包的发送速率进行动态控制,这样通过提前控制流量的方式能够及时的控制流量,也能有效的降低丢包的概率。
可选的,所述拥塞检测结果还用于指示所述源节点在确定当前的流量传输不拥塞时,根据当前所述源节点发送业务包的速率和所述时延预测值增加所述源节点发送业务包的速率。
可选的,在一些发明实施例中,控制节点获取时延预测值的方式主要分以下几种:
1、由控制节点计算出n个探测包的n个包时延、根据n个包时延得到时延变化曲线。
(a)控制节点从源节点获取n个探测包的发送时刻信息,从目的节点获取n个探测包的接收时刻信息,具体可参考图4。
(b)控制节点从目的节点获取n个探测包的发送时刻信息以及n个探测包的接收时刻信息,具体可参考图5。
控制节点在通过(a)或(b)获取n个探测包的发送时刻和接收时刻后,计算出n个包时延,然后将这n个包时延通过拟合算法进行曲线拟合,得到一条用于表示所述包时延的变化趋势的时延变化曲线,然后控制节点可根据所述时延变化曲线预测所述源节点在(t+δt)发送包的时延预测值,δt为t之后发送探测包的时刻,δt小于或等于预设阈值。
举例来说,在图3所示的时延变化曲线的基础之上,可以用上述公式y(t)=a0*1+a1*t计算出(t+δt)发送包的时延预测值,在本申请中,δt的取值可以为毫秒级。只要保证选取的δt所计算出的时延预测值接近原时延变化曲线即可,只要不偏离原时延变化曲线即可。此外,还可以进一步限定时延预测值,保证最终选择用于拥塞预测的时延预测值不超过根据时延变化曲线得到的时延预测值,例如,所选择用于拥塞预测的时延预测值delay1pred=max(delay2pred,0),delay2pred为根据时延变化曲线得到的时延预测值。
可选的,该时延变化曲线可用于当前的拥塞检测周期,也可用于至少一个拥塞检测周期,也可仅用于当前的拥塞检测周期,这样可以保证整个拥塞检测周期内,所使用的时延变化曲线最接近真实的流量传输状态,那么通过时延变化曲线预测出的时延预测值也就相应更为准确,拥塞检测周期也可以动态的调整,具体本申请均不作限定。
2、由目的节点计算出n个探测包的n个包时延、再由控制节点根据n个包时延得到时延变化曲线,具体可参考图6。
首先,目的节点从源节点获取n个探测包的发送时刻信息,然后根据自身接收这n个探测包的接收时刻信息和n个探测包的发送时刻信息计算出n个包时延,再将计算出的n个包时延发送给控制节点。
随后,控制节点将这n个包时延进行曲线拟合,得到一条时延变化曲线,在后续控制节点即可根据得到的时延变化曲线去计算(t+δt)发送包的时延预测值,并基于该(t+δt)发送包的时延预测值进行拥塞预测。
3、由目的节点计算出n个探测包的n个包时延以及获取时延变化曲线,再由控制节点计算时延预测值,具体可参考图7。
首先,目的节点从源节点获取n个探测包的发送时刻信息,然后根据自身接收这n个探测包的接收时刻信息和n个探测包的发送时刻信息计算出n个包时延,再将这n个包时延进行曲线拟合,得到一条时延变化曲线。然后目的节点将得到的时延变化曲线发送给控制节点,使得控制节点即可根据得到的时延变化曲线去计算(t+δt)发送包的时延预测值,并基于该(t+δt)发送包的时延预测值进行拥塞预测。
4、由目的节点计算出n个探测包的n个包时延、获取时延变化曲线、根据时延变化曲线计算时延预测值,再将得到的时延预测值发给控制节点,具体可参考图8。
可选的,在一些发明实施例中,所述n个探测包的发送频率可为定频或变频,相应的,控制节点进行拥塞检测的频率也为定频或变频。
在一些实施方式中,考虑到频繁的发送探测包以及进行拥塞检测可能会在短时间内增加系统符负荷,会降低系统系统性能,例如降低硬件的转发功能进而处理器的性能。还可以对发送探测包和拥塞检测的频率进行自适应的动态调整,具体来说,可根据影响系统性能的任意因素(包括业务流量、流量传输的拥塞程度和系统负荷等)中的至少一项变频发送,变频的梯度可以根据系统的性能或者业务流量来设定。
例如可以设定基于流量控制模式对流量进行控制,并且动态的切换不同的流量控制模式。所述流量控制模式唯一对应探测包的发送频率、控制节点进行拥塞检测、以及业务包的发送速率的调整频率,在系统中可以分别设置三种功能模块,然后根据当前的拥塞程度或者流量传输状态设置几个梯度的流量控制模式,使得源节点、目的节点和控制节点三者能够在各级流量控制模式之间动态切换。
当所述拥塞检测结果为非拥塞时,所述源节点采用第一流量控制模式发送探测包和调整业务包的发送速率。
当所述拥塞检测结果为拥塞时,所述源节点采用第二流量控制模式发送探测包和调整业务包的发送速率。
可选的,流量控制模式的切换条件可以是周期性切换,也可以是根据当前的拥塞检测结果来切换,还可以根据拥塞持续时长是否高于第一门限、非拥塞持续时长是否高于第二门限、业务包的发送频率是否高于第三门限,处理器的占用率是否高于第四门限,或者时延触发切换门限是否高于第五门限等切换条件,具体本申请不限定。
举例来说,对于从第二流量控制模式切换到第一流量控制模式的场景:
例如,当非拥塞持续时长高于第二门限,或者业务包的发送速率小于第三门限,或者处理器占用率高于第四门限时,可以从第二流量控制模式切换到第一流量控制模式。
对于从第一流量控制模式切换到第二流量控制模式的场景:
例如,当在某个拥塞检测周期内拥塞检测结果为拥塞,或者探测包的平均时延大于第五门限且业务包的发送速率高于第三门限时,可以从第一流量控制模式切换到第二流量控制模式。
由此可见,本申请中,基于分析业务流量、拥塞情况、处理器占用率等特征的变频方式,能够实现在不需要进行拥塞控制的时间段内(如非拥塞时或无业务时)降低拥塞控制执行频率,从而降低拥塞检测和流量控制对设备转发性能和处理器性能的影响,并且通过这种变频方式能够适应长期、持续的拥塞检测。
如图9所示,第一流量控制模式中,探测包的发送频率f11、进行时延预测的频率f21以及基于时延预测值进行拥塞检测的频率f31;第二流量控制模式中,探测包的发送频率f12、进行时延预测的频率f22以及基于时延预测值进行拥塞检测的频率f32,其中,f11>f12,f21>f22,f31>f32。
可选的,在一些发明实施例中,设在所述预测周期内探测包的发送频率为f1,基于所述n个探测包预测业务包的时延预测值的频率为f2,其中f1>f2,f1和f2均为正数。
可选的,在一些发明实施例中,本申请还可应用于载波聚合(英文全称:carrieraggregation,英文简称:ca),双连接(英文全称:dualconnectivity,英文全称:dc)等协同业务包从主站向辅站分流时,也可以基于时延预测值进行拥塞检测。例如,当检测到主站到辅站的传输路径拥塞时,主站降低或停止向辅站分流的业务流量;当检测到主站到辅站的传输路径非拥塞时,主站增大向辅站分流的业务流量。
基于上述各实施例,本申请能够基于预测的时延预测值提前预知拥塞状态,并提前进行流量控制,从而能够有效的避免拥塞的出现,尤其是提升时延敏感业务(如:ca)的转发性能。
上述图1-图9中任意所述的实施例中出现的额各技术特征也同样适用于本申请中的图10和图11所对应的实施例,后续类似之处不再赘述。
以上对本申请中一种流量控制的方法进行说明,以下对执行上述流量控制的方法的控制节点和源节点分别进行描述。
一、参照图10,对用于流量控制的控制节点100进行说明,控制节点100包括:
收发模块1001,用于获取当前时刻之后源节点向目的节点发送的业务包的时延预测值;
处理模块1002,用于根据包时延的变化趋势和所述收发模块1001获取的所述时延预测值确定当前的流量传输的拥塞检测结果,将所述拥塞检测结果发送给所述源节点,所述拥塞检测结果用于所述源节点在确定拥塞检测结果为拥塞时降低所述源节点发送业务包的发送速率,其中,所述包时延的变化趋势对应拥塞时长的变化。
相较于现有技术,本申请提供的方案中,处理模块1002基于业务包的时延预测值,并根据包时延的变化趋势进行拥塞检测,能够提前预测到拥塞状态,使得源节点能够提前在源头对业务包的发送速率进行动态控制,这样通过提前控制流量的方式能够及时的控制流量,也能有效的降低丢包的概率。
可选的,所述包时延的变化趋势用时延变化曲线表示,所述业务包的时延预测值根据当前预测周期内的时延变化曲线得到,当前预测周期内的时延变化曲线根据n个探测包的发送时刻和所述n个探测包的接收时刻得到,所述n个探测包由所述源节点在当前预测周期内发送给所述目的节点,n为正整数。
可选的,所述处理模块1002在所述控制节点获取当前时刻之后发送的业务包的时延预测值之前,还用于:
通过所述收发模块1001获取所述n个探测包的包时延,根据所述n个探测包的包时延和拟合算法得到用于表示所述包时延的变化趋势的时延变化曲线。
可选的,当前时刻为t,所述处理模块1002还用于:
根据所述时延变化曲线预测所述源节点在(t+δt)发送包的时延预测值,δt为t之后发送探测包的时刻,δt小于或等于预设阈值。
可选的,所述控制节点100基于流量控制模式对流量进行控制,所述流量控制模式唯一对应探测包的发送频率和业务包的发送速率的调整频率;所述控制控制节点100还包括检测模块1003,所述检测模块1003用于:
当所述拥塞检测结果为非拥塞时,采用第一流量控制模式对当前的流量传输的拥塞进行检测。
当所述拥塞检测结果为拥塞时,采用第二流量控制模式对当前的流量传输的拥塞进行检测。
二、参照图11,对用于流量控制的源节点110,所述源节点110包括:
收发模块1101,用于在预测周期内向目的节点发送n个探测包,n为正整数,所述n个探测包用于所述目的节点或控制节点预测包时延的变化趋势,所述包时延的变化趋势对应拥塞时长的变化;
接收所述控制节点发送的拥塞检测结果;
处理模块1102用于在所述拥塞检测结果为拥塞时,降低所述源节点发送业务包的速率,所述拥塞检测结果由所述控制节点根据包时延的变化趋势和获取到的当前时刻之后源节点向目的节点发送的业务包的时延预测值确定。
相较于现有技术,本申请提供的方案中,收发模块1101在预测周期内向目的节点发送n个探测包,该n个探测包用于目的节点或控制节点预测包时延的变化趋势,使得在接收到控制节点100发送的拥塞检测结果后,可以根据该拥塞检测结果提前对当前的流量传输进行预先控制,从而能够提前在源头对业务包的发送速率进行动态控制,这样通过提前控制流量的方式能够及时的控制流量,也能有效的降低丢包的概率。
可选的,所述包时延的变化趋势用时延变化曲线表示,所述业务包的时延预测值根据当前预测周期内的时延变化曲线得到,当前预测周期内的时延变化曲线根据所述n个探测包的发送时刻和所述n个探测包的接收时刻得到。
可选的,所述n个探测包的发送频率为定频或变频。
可选的,所述n个探测包根据业务流量、流量传输的拥塞程度和系统负荷中的至少一项变频发送。
可选的,所述源节点基于流量控制模式对流量进行控制,所述流量控制模式唯一对应探测包的发送频率和业务包的发送速率的调整频率;所述收发模块具体用于:
当所述拥塞检测结果为非拥塞时,采用第一流量控制模式发送探测包和调整业务包的发送速率;
当所述拥塞检测结果为拥塞时,采用第二流量控制模式发送探测包和调整业务包的发送速率。
需要说明的是,在本申请各实施例(包括图10以及图11所示的各实施例)中所有的收发模块对应的实体设备可以为收发器,所有的处理模块对应的实体设备可以为处理器。图10以及图11所示的各装置均可以具有如图12所示的结构,当其中一种装置具有如图12所示的结构时,图12中的处理器和收发器实现前述对应该装置的装置实施例提供的处理模块、发送模块和接收模块相同或相似的功能,图12中的存储器存储处理器执行上述流量控制的方法时需要调用的程序代码。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。
以上对本申请所提供的技术方案进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。