流量控制方法及装置、存储介质及电子设备与流程

未命名 09-09 阅读:189 评论:0


1.本发明涉及流量控制技术领域,特别是涉及一种流量控制方法及装置、存储介质及电子设备。


背景技术:

2.在上游设备与下游设备的数据传输过程中,常因下游设备的接收能力有限,无法接收突发的网络流量,导致出现大量丢包、业务中断等故障,故通常需要在上游设备或是传输过程中进行流量控制。
3.目前,常用的流量控制方式主要是通过网络设备对端口数据或业务数据进行流量整形。网络设备按照预定的传输速率向下游设备传输数据,对流量超过预定上限的数据先进行缓存,然后再逐渐向下游设备传输,使得传输的流量平滑。
4.基于现有的流量控制方式,网络设备只能按照预定的传输速率传输数据,当遭遇流量突发时,网络设备则需缓存大量的数据,而网络设备存储空间有限,在此场景下极大可能会造成数据丢包,给业务带来不良影响。


技术实现要素:

5.有鉴于此,本发明实施例提供了一种流量控制方法,以解决现有流量控制方式,在需要缓存大量数据时,容易造成数据丢包,给业务带来不良影响的问题。
6.本发明实施例还提供了一种流量控制装置,用以保证上述方法实际中的实现及应用。
7.为实现上述目的,本发明实施例提供如下技术方案:一种流量控制方法,包括:在基于预设的令牌桶算法进行流量控制的情况下,当需要进行速率评估时,对已构建的缓存队列进行队列深度评估,得到所述缓存队列对应的评估队列深度;所述缓存队列为基于所述令牌桶算法构建的队列,所述缓存队列用于存储待发送的数据;依据所述评估队列深度,判断当前所述令牌桶算法是否符合预设的速率调整条件;若当前所述令牌桶算法符合所述速率调整条件,则确定第一速率;所述第一速率为所述令牌桶算法中当前配置的承诺信息速率;所述承诺信息速率表征流量控制过程中的数据发送速度;对所述缓存队列进行变化速率识别,得到所述缓存队列对应的队列变化速率;依据所述队列变化速率和预设的速率范围,确定速率调整幅度;基于所述速率调整幅度对所述第一速率进行微调,得到所述第一速率对应的第二速率;将所述令牌桶算法中配置的承诺信息速率更新为所述第二速率,应用更新后的承诺信息速率进行流量控制,以对流量控制过程中的数据发送速度进行调整。
8.上述的方法,可选的,所述令牌桶算法为单速率三色标记算法。
9.上述的方法,可选的,所述基于预设的令牌桶算法进行流量控制的过程,包括:当接收到数据报文时,确定所述数据报文对应的数据流量;将所述数据流量与预设的承诺突发尺寸进行大小比较;若所述数据流量小于或等于所述承诺突发尺寸,则将预设的绿色标记作为所述数据报文对应的颜色标记;若所述数据流量大于所述承诺突发尺寸,则将所述数据流量与预设的超额突发尺寸进行大小比较;若所述数据流量小于或等于所述超额突发尺寸,则将预设的黄色标记作为所述数据报文对应的颜色标记;若所述数据流量大于所述超额突发尺寸,则将预设的红色标记作为所述数据报文对应的颜色标记;基于所述数据报文对应的颜色标记对所述数据报文进行处理,以实现流量控制。
10.上述的方法,可选的,所述基于所述数据报文对应的颜色标记对所述数据报文进行处理,包括:若所述数据报文对应的颜色标记为所述绿色标记,则将所述数据报文发送给指定设备,并对预设的令牌桶中的令牌数量进行删减;若所述数据报文对应的颜色标记为所述黄色标记或所述红色标记,则将所述数据报文存储至所述缓存队列。
11.上述的方法,可选的,所述对已构建的缓存队列进行队列深度评估,得到所述缓存队列对应的评估队列深度,包括:确定当前时间点对应的监测时间段;确定所述监测时间段对应的队列深度集合;所述队列深度集合包括所述缓存队列在所述监测时间段内的各个监测时间点时的队列深度;对所述队列深度集合进行均值计算处理,得到所述队列深度集合对应的平均值,并将所述队列深度集合对应的平均值作为所述缓存队列对应的评估队列深度。
12.上述的方法,可选的,所述依据所述评估队列深度,判断当前所述令牌桶算法是否符合预设的速率调整条件,包括:将所述评估队列深度与预设的第一长度阈值进行大小比较;若所述评估队列深度小于或等于所述第一长度阈值,则判断所述令牌桶算法中当前配置的承诺信息速率是否等于所述速率范围中的最小值;若所述令牌桶算法中当前配置的承诺信息速率不等于所述速率范围中的最小值,则确定当前所述令牌桶算法符合所述速率调整条件;若所述令牌桶算法中当前配置的承诺信息速率等于所述速率范围中的最小值,则确定当前所述令牌桶算法不符合所述速率调整条件;若所述评估队列深度大于所述第一长度阈值,则将所述评估队列深度与预设的第二长度阈值进行大小比较;所述第二长度阈值大于所述第一长度阈值;若所述评估队列深度小于或等于所述第二长度阈值,则确定当前所述令牌桶算法符合所述速率调整条件。
13.上述的方法,可选的,还包括:若所述评估队列深度大于所述第二长度阈值,则确定当前所述令牌桶算法不符合所述速率调整条件。
14.一种流量控制装置,包括:队列评估单元,用于在基于预设的令牌桶算法进行流量控制的情况下,当需要进行速率评估时,对已构建的缓存队列进行队列深度评估,得到所述缓存队列对应的评估队列深度;所述缓存队列为基于所述令牌桶算法构建的队列,所述缓存队列用于存储待发送的数据;判断单元,用于依据所述评估队列深度,判断当前所述令牌桶算法是否符合预设的速率调整条件;第一确定单元,用于若当前所述令牌桶算法符合所述速率调整条件,则确定第一速率;所述第一速率为所述令牌桶算法中当前配置的承诺信息速率;所述承诺信息速率表征流量控制过程中的数据发送速度;识别单元,用于对所述缓存队列进行变化速率识别,得到所述缓存队列对应的队列变化速率;第二确定单元,用于依据所述队列变化速率和预设的速率范围,确定速率调整幅度;调整单元,用于基于所述速率调整幅度对所述第一速率进行微调,得到所述第一速率对应的第二速率;更新单元,用于将所述令牌桶算法中配置的承诺信息速率更新为所述第二速率,应用更新后的承诺信息速率进行流量控制,以对流量控制过程中的数据发送速度进行调整。
15.一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行如上述的流量控制方法。
16.一种电子设备,包括存储器,以及一个或者一个以上的指令,其中一个或者一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行如上述的流量控制方法。
17.基于上述本发明实施例提供的一种流量控制方法,包括:在基于预设的令牌桶算法进行流量控制的情况下,当需要进行速率评估时,对已构建的缓存队列进行队列深度评估,得到缓存队列对应的评估队列深度;该缓存队列为基于令牌桶算法构建的队列,缓存队列用于存储待发送的数据;依据评估队列深度,判断当前令牌桶算法是否符合预设的速率调整条件;若当前令牌桶算法符合速率调整条件,则确定第一速率;所述第一速率为令牌桶算法中当前配置的承诺信息速率;承诺信息速率表征流量控制过程中的数据发送速度;对缓存队列进行变化速率识别,得到缓存队列对应的队列变化速率;依据队列变化速率和预设的速率范围,确定速率调整幅度;基于速率调整幅度对第一速率进行微调,得到第一速率对应的第二速率;将令牌桶算法中配置的承诺信息速率更新为第二速率,应用更新后的承诺信息速率进行流量控制,以对流量控制过程中的数据发送速度进行调整。应用本发明实施例提供的方法,基于令牌桶算法进行流量控制,可使得数据传输的流量平滑,实现流量整形。在流量控制过程中,可定时基于缓存队列的队列深度评估是否需对承诺信息速率进行
调整,并在需进行调整时对承诺信息速率进行相应的调整,以使流量控制过程中的数据发送速度与缓存队列的队列深度相适应,在缓存队列中待发送的数据较多时,可使承诺信息速率相应提高,以提高缓存队列中的数据发送速度。在实现流量控制的前提下,使缓存队列能维持一定的空闲空间以存储数据,有利于避免存储空间有限导致的数据丢包,保障业务正常运转。
附图说明
18.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
19.图1为本发明实施例提供的一种流量控制方法的方法流程图;图2为本发明实施例提供的一种流量控制方法的又一方法流程图;图3为本发明实施例提供的一种流量控制系统的示例图;图4为本发明实施例提供的一种流量控制装置的结构示意图;图5为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
20.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
21.在本技术中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
22.本发明实施例提供了一种流量控制方法,所述方法可应用于流量控制系统,其执行主体可以为系统的处理器,所述方法的方法流程图如图1所示,包括:s101:在基于预设的令牌桶算法进行流量控制的情况下,当需要进行速率评估时,对已构建的缓存队列进行队列深度评估,得到所述缓存队列对应的评估队列深度;所述缓存队列为基于所述令牌桶算法构建的队列,所述缓存队列用于存储待发送的数据;本发明实施例提供的方法可以部署于流量控制系统中,使上游设备需要向下游设备发送的数据先发送至流量控制系统,流量控制系统基于预设的令牌桶算法实行流量转发,实现流量控制。
23.令牌桶算法的原理主要是基于令牌桶控制发送的数据流量,令牌桶可以视为能够存放一定数量令牌的容器,系统按照设定的速度生成令牌,并将生成的令牌投放至令牌桶中,令牌桶最多仅能容纳与其容量相对应的令牌,当令牌桶无法再容纳多余的令牌时,多余的令牌则会溢出。在流量控制过程中,转发一定流量的数据报文,需要消耗相应数量的令
牌,转发的数据流量越大,消耗的令牌亦越多。当接收到需要转发的数据报文时,若当前令牌桶中的令牌数量满足转发该数据报文的流量需求,则将数据报文发送给相应对象。而在应用令牌桶算法时,会构建一个缓存队列,若是接收到某个数据报文时,当前令牌桶中的令牌数量不满足转发该数据报文的流量需求,则可将该数据报文缓存至缓存队列中。对于缓存队列,可定时监测令牌桶中的令牌数量是否满足缓存队列中待发送的数据报文的流量需求,若满足,则将待发送的数据报文发送给相应对象。可以理解的是,生成令牌的速度,或者说是向令牌桶中放置令牌的速度,实际上控制着发送数据的流量或者说是速度。
24.本发明实施例提供的方法中预设的令牌桶算法可以采用现有的令牌桶算法,如单速双桶算法或双速双桶算法等。
25.本发明实施例提供的方法中,定时评估令牌桶算法中放置令牌的速率是否与当前待发送的数据流量相适应。可预先设置速率评估的周期,如按照预定的时间间隔进行评估,在到达预定的评估时间点时,即为需要进行速率评估。
26.在基于预设的令牌桶算法进行流量控制的过程中,当需要进行速率评估时,按照预设的评估策略对已构建的缓存队列进行队列深度评估,得到缓存队列对应的评估队列深度。缓存队列对应的评估队列深度表征当前缓存队列中队列空间的使用程度,评估队列深度具体可以通过缓存队列中存储的数据量进行表示,也可以通过缓存队列的空闲空间进行表示。在具体的实现过程中,可以实时监测缓存队列的相关数据,在进行速率评估时,可以基于上一个评估时间点至当前评估时间点之间的监测数据进行队列深度评估。
27.s102:依据所述评估队列深度,判断当前所述令牌桶算法是否符合预设的速率调整条件;本发明实施例提供的方法中,可根据实际需求预先设置速率调整条件,也就是对令牌桶算法中生成令牌的速度进行调整所需满足的条件。速率调整条件可以基于评估队列深度的大小进行配置,具体需要实现的是,在缓存队列中缓存的数据量超过预定阈值时,对令牌生成速度进行调整,以提高数据发送速率。
28.本发明实施例提供的方法中,判断评估队列深度是否符合预设的速率调整条件的条件要求,若符合条件要求,则认为当前令牌桶算法符合速率调整条件,反之则认为当前令牌桶算法不符合速率调整条件。
29.本发明实施例提供的方法中,若当前令牌桶算法不符合速率调整条件,则结束本次处理过程,基于令牌桶算法当前的配置参数继续实行流量控制,等待下一个评估时间点。
30.s103:若当前所述令牌桶算法符合所述速率调整条件,则确定第一速率;所述第一速率为所述令牌桶算法中当前配置的承诺信息速率;所述承诺信息速率表征流量控制过程中的数据发送速度;本发明实施例提供的方法中,若经判断令牌桶算法符合速率调整条件,则获取令牌桶算法中当前配置的承诺信息速率,将该速率作为第一速率。承诺信息速率(committed information rate,cir)是令牌桶算法中的一个参数,其表示向c桶(令牌桶算法中的一个令牌桶)中投放令牌的速度,可以理解的是其亦表征流量控制过程中的数据发送速度。
31.s104:对所述缓存队列进行变化速率识别,得到所述缓存队列对应的队列变化速率;本发明实施例提供的方法中,按照预设的变化速率识别方式,对缓存队列进行变
化速率识别,也就是计算缓存队列在预定时间段内存储的数据量的变化速率,由此得到缓存队列对应的队列变化速率。预定时间段可以是上一个评估时间点至当前评估时间点之间的时间段。
32.s105:依据所述队列变化速率和预设的速率范围,确定速率调整幅度;本发明实施例提供的方法中,可预先设置一个速率范围,即设定一个速率最小值和速率最大值,在流量正常的情况下,承诺信息速率可配置为预设的速率最小值,在对承诺信息速率进行调整时,最多可将其配置为预设的速率最大值。
33.本发明实施例提供的方法中,可基于队列变化速率和预设的速率范围,确定速率调整幅度。具体的,可结合队列变化速率的大小以及在预设的速率范围内的可调整空间,确定速率调整幅度。例如,可以预先设置多个队列变化速率范围和多个调整幅度,各个队列变化速率范围与各个调整幅度一一对应。可根据队列变化速率归属的队列变化速率范围,在预设的各个调整幅度中匹配到一个调整幅度,可计算基于该调整幅度对第一速率进行调整所得到的速率值,若该速率值在预设的速率范围内,可将该调整幅度确定为速率调整幅度,如果该速率值不在预设的速率范围内,则可根据第一速率和速率范围中相应的临界值计算变化幅度,将该变化幅度确定为速率调整幅度。
34.s106:基于所述速率调整幅度对所述第一速率进行微调,得到所述第一速率对应的第二速率;本发明实施例提供的方法中,基于速率调整幅度对第一速率进行微调,调整后得到的速率即为第二速率。具体的,若是当前需提高承诺信息速率,那么则是在第一速率的基础上,增加与速率调整幅度相对应的数值,若是当前需降低承诺信息速率,则在第一速率的基础上,减去与速率调整幅度相对应的数值。
35.s107:将所述令牌桶算法中配置的承诺信息速率更新为所述第二速率,应用更新后的承诺信息速率进行流量控制,以对流量控制过程中的数据发送速度进行调整。
36.本发明实施例提供的方法中,对令牌桶算法中的参数进行更新,将其中配置的承诺信息速率更新为第二速率,也就是更新后的承诺信息速率等于第二速率,实现对流量控制过程中数据发送速度的调整。
37.基于本发明实施例提供的方法,在基于令牌桶算法进行流量控制的情况下,对缓存队列进行队列深度评估,得到评估队列深度;依据评估队列深度,判断当前令牌桶算法是否符合预设的速率调整条件;若当前令牌桶算法符合速率调整条件,则确定第一速率;第一速率为令牌桶算法中当前配置的承诺信息速率;对缓存队列进行变化速率识别,得到队列变化速率;依据队列变化速率和预设的速率范围,确定速率调整幅度;基于速率调整幅度对第一速率进行微调,得到第一速率对应的第二速率;将令牌桶算法中配置的承诺信息速率更新为第二速率,应用更新后的承诺信息速率进行流量控制,以对流量控制过程中的数据发送速度进行调整。应用本发明实施例提供的方法,基于令牌桶算法进行流量控制,可使得数据传输的流量平滑,实现流量整形。在流量控制过程中,可定时基于缓存队列的队列深度评估是否需对承诺信息速率进行调整,并在需进行调整时对承诺信息速率进行相应的调整,以使流量控制过程中的数据发送速度与缓存队列的队列深度相适应,在缓存队列中待发送的数据较多时,可使承诺信息速率相应提高,以提高缓存队列中的数据发送速度。在实现流量控制的前提下,使缓存队列能维持一定的空闲空间以存储数据,有利于避免存储空
间有限导致的数据丢包,保障业务正常运转。
38.在图1所示方法的基础上,本发明实施例提供的方法中,所述令牌桶算法为单速率三色标记算法。
39.本发明实施例提供的方法中,预设的令牌桶算法采用单速率三色标记算法,单速率三色标记算法即为单速双桶算法。单速率三色标记(single rate three color marker,srtcm)算法,主要关注报文尺寸的突发。算法的评估结果为报文打上红、黄、绿三种颜色的标记,所以称为“三色标记”。接下来对单速率三色标记算法的算法原理作简要介绍。
40.单速率三色标记算法中会部署两个令牌桶,将这两个令牌桶称为c桶和e桶,c桶中的令牌数量以tc表示,e桶中的令牌数量以te表示。
41.单速率三色标记算法有3个关键参数,分别是:cir(committed information rate):承诺信息速率,表示向c桶中投放令牌的速率,即c桶允许传输或转发报文的平均速率;cbs(committed burst size):承诺突发尺寸,表示c桶的容量,即c桶瞬间能够通过的承诺突发流量;ebs(excess burst size):超额突发尺寸,表示e桶的容量,即e桶瞬间能够通过的超出突发流量。
42.系统按照cir速率向桶中投放令牌:若tc《cbs,tc增加;若tc=cbs,te《ebs,te增加;若tc=cbs,te=ebs,则都不增加。
43.对于到达的报文,用b表示报文的大小,其颜色标记方式基于以下原理处理:若b≤tc,报文被标记为绿色,且tc减少b;若tc《b≤te,报文被标记为黄色,且te减少b;若te《b,报文被标记为红色,且tc和te都不减少。
44.在上述实施例提供的方法的基础上,本发明实施例提供的方法中,步骤s101中提及的基于预设的令牌桶算法进行流量控制的过程,包括:当接收到数据报文时,确定所述数据报文对应的数据流量;本发明实施例提供的方法中,在流量控制系统接收到新的数据报文时,可识别该数据报文对应的数据流量,也就是数据报文的数据量大小。
45.将所述数据流量与预设的承诺突发尺寸进行大小比较;若所述数据流量小于或等于所述承诺突发尺寸,则将预设的绿色标记作为所述数据报文对应的颜色标记;本发明实施例提供的方法中,将数据流量与令牌桶算法中设定的承诺突发尺寸进行大小比较,若数据流量不超过承诺突发尺寸,则将该数据报文标记为绿色。
46.若所述数据流量大于所述承诺突发尺寸,则将所述数据流量与预设的超额突发尺寸进行大小比较;本发明实施例提供的方法中,若当前数据报文的数据流量超过承诺突发尺寸,则将数据流量与令牌桶算法中设定的超额突发尺寸进行大小比较。
47.若所述数据流量小于或等于所述超额突发尺寸,则将预设的黄色标记作为所述数
据报文对应的颜色标记;若所述数据流量大于所述超额突发尺寸,则将预设的红色标记作为所述数据报文对应的颜色标记;本发明实施例提供的方法中,若当前数据报文的数据流量未超过超额突发尺寸,将该数据报文标记为黄色,若该数据流量超过超额突发尺寸,则将该数据报文标记为红色。
48.基于所述数据报文对应的颜色标记对所述数据报文进行处理,以实现流量控制。
49.本发明实施例提供的方法中,根据数据报文对应的颜色标记决定对该数据报文进行数据传输操作还是进行数据缓存操作,对该数据报文进行相应的处理,以对数据传输的流量进行控制。
50.在上述实施例提供的方法的基础上,本发明实施例提供的方法中,所述基于所述数据报文对应的颜色标记对所述数据报文进行处理,包括:若所述数据报文对应的颜色标记为所述绿色标记,则将所述数据报文发送给指定设备,并对预设的令牌桶中的令牌数量进行删减;若所述数据报文对应的颜色标记为所述黄色标记或所述红色标记,则将所述数据报文存储至所述缓存队列。
51.本发明实施例提供的方法中,若数据报文被标记成绿色,则直接对该数据报文进行数据传输操作,将其发送给指定设备,相应的,将令牌桶中的令牌数量进行删减,删减的令牌数量与该数据报文的数据流量相对应。若数据报文被标记为黄色或红色,则对该数据报文进行数据缓存操作,将其存储至缓存队列中,等待进行数据传输。
52.在图1所示方法的基础上,本发明实施例提供的方法中,步骤s101中提及的对已构建的缓存队列进行队列深度评估,得到所述缓存队列对应的评估队列深度,包括:确定当前时间点对应的监测时间段;本发明实施例提供的方法中,将上一次进行速率评估的时间点与当前时间点之间的时间段确定为当前时间点对应的监测时间段。
53.确定所述监测时间段对应的队列深度集合;所述队列深度集合包括所述缓存队列在所述监测时间段内的各个监测时间点时的队列深度;本发明实施例提供的方法中,系统会实时监测缓存队列的队列深度,缓存队列的队列深度指的是缓存队列中存储的数据量。在预先记录的监测数据中,可获取监测时间段对应的监测数据,得到缓存队列在监测时间段内各个监测时间点上的队列深度,由此得到队列深度集合。
54.对所述队列深度集合进行均值计算处理,得到所述队列深度集合对应的平均值,并将所述队列深度集合对应的平均值作为所述缓存队列对应的评估队列深度。
55.本发明实施例提供的方法中,计算队列深度集合中所有队列深度的平均值,将计算结果作为缓存队列对应的评估队列深度。
56.在图1所示方法的基础上,参考图2所示流程图,本发明实施例提供的方法中,步骤s102中提及的依据所述评估队列深度,判断当前所述令牌桶算法是否符合预设的速率调整条件的过程,包括:s201:将所述评估队列深度与预设的第一长度阈值进行大小比较,以判断所述评估队列深度是否小于或等于所述第一长度阈值;
本发明实施例提供的方法中,评估队列深度表征缓存队列中存储的数据量,根据实际需求,系统中预先设置有第一长度阈值,第一长度阈值可以认为是队列深度的安全阈值,当队列深度在此阈值范围内时,流量控制过程可正常运转。
57.在判断令牌桶算法是否符合速率调整条件时,将评估队列深度与第一长度阈值进行比较。若评估队列深度未超过第一长度阈值,则进入步骤s202,若评估队列深度超过第一长度阈值,则进入步骤s205。
58.s202:判断所述令牌桶算法中当前配置的承诺信息速率是否等于所述速率范围中的最小值;本发明实施例提供的方法中,若评估队列深度小于或等于第一长度阈值,则说明当前不需要提高承诺信息速率,承诺信息速率应按照常规值进行配置,常规值即为预设的速率范围中的最小值。故此时需判断当前配置的承诺信息速率是否等于速率范围中的最小值。若承诺信息速率不等于速率范围中的最小值,则进入步骤s203,若其等于速率范围中的最小值,则进入步骤s204。
59.s203:确定当前所述令牌桶算法符合所述速率调整条件;本发明实施例提供的方法中,若令牌桶算法中当前配置的承诺信息速率不等于所述速率范围中的最小值,则说明需要将当前的承诺信息速率降低,直至承诺信息速率恢复到速率范围中的最小值,故确定当前令牌桶算法符合预设的速率调整条件。
60.s204:确定当前所述令牌桶算法不符合所述速率调整条件;本发明实施例提供的方法中,若令牌桶算法中当前配置的承诺信息速率等于所述速率范围中的最小值,则说明承诺信息速率已按照与当前的队列深度相适应的数值进行配置,无需进行调整,故确定令牌桶算法不符合预设的速率调整条件。
61.s205:将所述评估队列深度与预设的第二长度阈值进行大小比较;所述第二长度阈值大于所述第一长度阈值;本发明实施例提供的方法中,可根据实际需求,在系统中预先设置第二长度阈值,第二长度阈值可以认为是队列深度的警戒阈值,当队列深度超过该阈值时,说明可能已经出现数据异常。若所述评估队列深度大于所述第一长度阈值,则将该评估队列深度与第二长度阈值进行比较。
62.s206:若所述评估队列深度小于或等于所述第二长度阈值,则确定当前所述令牌桶算法符合所述速率调整条件。
63.本发明实施例提供的方法中,若评估队列深度未超过第二长度阈值,则需提高承诺信息速率,直至承诺信息速率达到预设的速率范围中的最大值,故确定当前令牌桶算法符合速率调整条件。
64.在上述实施例提供的方法的基础上,本发明实施例提供的方法中,还包括:若所述评估队列深度大于所述第二长度阈值,则确定当前所述令牌桶算法不符合所述速率调整条件。
65.本发明实施例提供的方法中,若经判断评估队列深度超过第二长度阈值,说明此时的数据量已超过系统的缓存能力,此时继续提高承诺信息速率亦难以避免数据异常,故此时可确定令牌桶算法不符合速率调整条件,并可以发出异常警报。
66.需要说明的是,本发明实施例中提供的具体的条件判断过程,仅是为了更好地说
明本发明实施例提供的方法所提供的具体实施例,在具体实现过程中可以根据实际需求进行条件配置。例如,在评估队列深度超过第二长度阈值时,也可以选择继续提高承诺信息速率,不影响本发明实施例提供的方法实现功能。
67.为了更好地说明本发明实施例提供的方法,在上述实施例提供的方法的基础上,结合实际的应用场景,本发明实施例提供了又一种流量控制方法。该方法可以通过流量控制系统实现,该系统具体可以基于现场可编程门阵列(field programmable gate array,fpga)完成设计。该系统是对于图1所示流量控制方法的一种实例化,该系统的结构组成的示例图可如图3所示,该系统具体包括:流量输入模块301、流量监测模块302、缓存队列模块303、流量输出模块304、队列监测模块305以及令牌生成模块306。
68.接下来从系统模块功能的角度,对本发明实施例提供的流量控制过程作简要说明。
69.流量输入模块,主要负责网络数据包的接收,其接收的数据可以是千兆以太网的mac帧,也可以是百兆、万兆以太网的网络帧,还可以是其他任何类型的数据。
70.流量监测模块,用于完成流量的监测和报文标记功能,其主要基于令牌桶算法对接收到的数据报文进行标记。可以使用单速双桶或双速双桶的令牌桶算法原理实现,关于令牌桶处理报文的方式,本发明实施例中采用基于rfc2697协议定义的单速率三色标记算法,其算法原理可参见前文实施例中的说明。本发明实施例提供的方法中,单速双桶模式允许流量突发,根据算法原理,当用户的流量速率未超过配置的承诺信息速率cir时,报文被标记为绿色,本发明实施例中基于用户突发流量的大小进行标记,当用户的突发流量未超过配置的承诺突发尺寸cbs时,报文标记为绿色。当用户的突发流量大于配置的承诺突发尺寸cbs,而未超过超额突发尺寸ebs时,报文被标记为黄色。当用户的突发流量大于配置的超额突发尺寸ebs时,报文被标记为红色。流量监测模块标记为黄色或红色的数据报文,进入缓存队列模块进行缓存,标记为绿色的数据报文进入流量输出模块进行数据发送。
71.缓存队列模块,用于数据缓存。使用fifo(first input first output)存储器作为缓存队列,标记为黄色或红色的报文,将暂存于缓存队列,待有足够令牌时,再将缓存的数据报文通过流量输出模块发送到下游。
72.流量输出模块,用于将数据报文发送给指定的下游设备。
73.令牌生成模块,用于通过计数器对令牌生成速率进行控制,将计数器单位时间产生的脉冲个数作为令牌产生的速率,即令牌生成速率,也就是承诺信息速率cir。单位时间内产生的脉冲个数越多,表明令牌产生的速率越快,被标记为绿色的报文也越来越多。令牌生成的速度可以根据队列监测模块的反馈进行微调,为令牌生成模块设定一个预期阈值和一个超预期阈值。队列监测模块可以将令牌生成模块中的令牌生成速率由预期阈值微调至超预期阈值。
74.队列监测模块,用于实时监测缓存队列的队列深度,单位时间内缓存队列的队列深度处于设定的安全阈值时,令牌生成速率不用微调,当单位时间内的队列深度超过安全阈值时,微调增加令牌生成的速率。当单位时间内的队列深度达到警戒阈值时,不再微调令牌生成速率。令牌生成速率微调的幅度根据单位时间内队列深度变化的快慢进行线性调整。当单位时间内队列深度逐步恢复到安全阈值时,令牌生成速率也线性逐步减小到预期设定的速率。也就是在队列深度处于预设的安全阈值内时,令牌生成模块中的令牌生成速
率应维持在预设的预期阈值,若其原本就处于预期阈值,则无需进行调整,若其未处于预期阈值,则逐渐微调降低令牌生成速率,直至其处于预期阈值。在队列深度处于预设的安全阈值和预设的警戒阈值之间时,需提高令牌生成速率,逐渐微调提高令牌生成速率,直至其到达预设的超预期阈值。
75.本发明实施例中所谓的单位时间内缓存队列的队列深度,指的是在单位时间段内缓存队列的队列深度的平均值。单位时间段可以是预先设定时间范围的一个时间段,如当前时间点之前预设时长内的时间段。
76.基于本发明实施例提供的方法,通过监测缓存队列深度的变化情况实时微调令牌生成速率,使得流量整形有小范围的自动调整,在不影响下游设备的业务处理能力的最大限度下,降低数据丢包的可能性。可以自适应调节流量整形的流量,尽可能减少缓存队列的溢出而导致的丢包问题。
77.与图1所示的一种流量控制方法相对应的,本发明实施例还提供了一种流量控制装置,用于对图1中所示方法的具体实现,其结构示意图如图4所示,包括:队列评估单元401,用于在基于预设的令牌桶算法进行流量控制的情况下,当需要进行速率评估时,对已构建的缓存队列进行队列深度评估,得到所述缓存队列对应的评估队列深度;所述缓存队列为基于所述令牌桶算法构建的队列,所述缓存队列用于存储待发送的数据;判断单元402,用于依据所述评估队列深度,判断当前所述令牌桶算法是否符合预设的速率调整条件;第一确定单元403,用于若当前所述令牌桶算法符合所述速率调整条件,则确定第一速率;所述第一速率为所述令牌桶算法中当前配置的承诺信息速率;所述承诺信息速率表征流量控制过程中的数据发送速度;识别单元404,用于对所述缓存队列进行变化速率识别,得到所述缓存队列对应的队列变化速率;第二确定单元405,用于依据所述队列变化速率和预设的速率范围,确定速率调整幅度;调整单元406,用于基于所述速率调整幅度对所述第一速率进行微调,得到所述第一速率对应的第二速率;更新单元407,用于将所述令牌桶算法中配置的承诺信息速率更新为所述第二速率,应用更新后的承诺信息速率进行流量控制,以对流量控制过程中的数据发送速度进行调整。
78.应用本发明实施例提供的装置,基于令牌桶算法进行流量控制,可使得数据传输的流量平滑,实现流量整形。在流量控制过程中,可定时基于缓存队列的队列深度评估是否需对承诺信息速率进行调整,并在需进行调整时对承诺信息速率进行相应的调整,以使流量控制过程中的数据发送速度与缓存队列的队列深度相适应,在缓存队列中待发送的数据较多时,可使承诺信息速率相应提高,以提高缓存队列中的数据发送速度。在实现流量控制的前提下,使缓存队列能维持一定的空闲空间以存储数据,有利于避免存储空间有限导致的数据丢包,保障业务正常运转。
79.在图4所示装置的基础上,本发明实施例提供的装置还可以进一步扩展出多个单
元,各个单元的功能可参见前文对于流量控制方法所提供的各个实施例中的说明,在此不再进一步举例说明。
80.本发明实施例还提供了一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行如上述的流量控制方法。
81.本发明实施例还提供了一种电子设备,其结构示意图如图5所示,具体包括存储器501,以及一个或者一个以上的指令502,其中一个或者一个以上指令502存储于存储器501中,且经配置以由一个或者一个以上处理器503执行所述一个或者一个以上指令502进行以下操作:在基于预设的令牌桶算法进行流量控制的情况下,当需要进行速率评估时,对已构建的缓存队列进行队列深度评估,得到所述缓存队列对应的评估队列深度;所述缓存队列为基于所述令牌桶算法构建的队列,所述缓存队列用于存储待发送的数据;依据所述评估队列深度,判断当前所述令牌桶算法是否符合预设的速率调整条件;若当前所述令牌桶算法符合所述速率调整条件,则确定第一速率;所述第一速率为所述令牌桶算法中当前配置的承诺信息速率;所述承诺信息速率表征流量控制过程中的数据发送速度;对所述缓存队列进行变化速率识别,得到所述缓存队列对应的队列变化速率;依据所述队列变化速率和预设的速率范围,确定速率调整幅度;基于所述速率调整幅度对所述第一速率进行微调,得到所述第一速率对应的第二速率;将所述令牌桶算法中配置的承诺信息速率更新为所述第二速率,应用更新后的承诺信息速率进行流量控制,以对流量控制过程中的数据发送速度进行调整。
82.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
83.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
84.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明
将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

技术特征:
1.一种流量控制方法,其特征在于,包括:在基于预设的令牌桶算法进行流量控制的情况下,当需要进行速率评估时,对已构建的缓存队列进行队列深度评估,得到所述缓存队列对应的评估队列深度;所述缓存队列为基于所述令牌桶算法构建的队列,所述缓存队列用于存储待发送的数据;依据所述评估队列深度,判断当前所述令牌桶算法是否符合预设的速率调整条件;若当前所述令牌桶算法符合所述速率调整条件,则确定第一速率;所述第一速率为所述令牌桶算法中当前配置的承诺信息速率;所述承诺信息速率表征流量控制过程中的数据发送速度;对所述缓存队列进行变化速率识别,得到所述缓存队列对应的队列变化速率;依据所述队列变化速率和预设的速率范围,确定速率调整幅度;基于所述速率调整幅度对所述第一速率进行微调,得到所述第一速率对应的第二速率;将所述令牌桶算法中配置的承诺信息速率更新为所述第二速率,应用更新后的承诺信息速率进行流量控制,以对流量控制过程中的数据发送速度进行调整。2.根据权利要求1所述的方法,其特征在于,所述令牌桶算法为单速率三色标记算法。3.根据权利要求2所述的方法,其特征在于,所述基于预设的令牌桶算法进行流量控制的过程,包括:当接收到数据报文时,确定所述数据报文对应的数据流量;将所述数据流量与预设的承诺突发尺寸进行大小比较;若所述数据流量小于或等于所述承诺突发尺寸,则将预设的绿色标记作为所述数据报文对应的颜色标记;若所述数据流量大于所述承诺突发尺寸,则将所述数据流量与预设的超额突发尺寸进行大小比较;若所述数据流量小于或等于所述超额突发尺寸,则将预设的黄色标记作为所述数据报文对应的颜色标记;若所述数据流量大于所述超额突发尺寸,则将预设的红色标记作为所述数据报文对应的颜色标记;基于所述数据报文对应的颜色标记对所述数据报文进行处理,以实现流量控制。4.根据权利要求3所述的方法,其特征在于,所述基于所述数据报文对应的颜色标记对所述数据报文进行处理,包括:若所述数据报文对应的颜色标记为所述绿色标记,则将所述数据报文发送给指定设备,并对预设的令牌桶中的令牌数量进行删减;若所述数据报文对应的颜色标记为所述黄色标记或所述红色标记,则将所述数据报文存储至所述缓存队列。5.根据权利要求1所述的方法,其特征在于,所述对已构建的缓存队列进行队列深度评估,得到所述缓存队列对应的评估队列深度,包括:确定当前时间点对应的监测时间段;确定所述监测时间段对应的队列深度集合;所述队列深度集合包括所述缓存队列在所述监测时间段内的各个监测时间点时的队列深度;
对所述队列深度集合进行均值计算处理,得到所述队列深度集合对应的平均值,并将所述队列深度集合对应的平均值作为所述缓存队列对应的评估队列深度。6.根据权利要求1所述的方法,其特征在于,所述依据所述评估队列深度,判断当前所述令牌桶算法是否符合预设的速率调整条件,包括:将所述评估队列深度与预设的第一长度阈值进行大小比较;若所述评估队列深度小于或等于所述第一长度阈值,则判断所述令牌桶算法中当前配置的承诺信息速率是否等于所述速率范围中的最小值;若所述令牌桶算法中当前配置的承诺信息速率不等于所述速率范围中的最小值,则确定当前所述令牌桶算法符合所述速率调整条件;若所述令牌桶算法中当前配置的承诺信息速率等于所述速率范围中的最小值,则确定当前所述令牌桶算法不符合所述速率调整条件;若所述评估队列深度大于所述第一长度阈值,则将所述评估队列深度与预设的第二长度阈值进行大小比较;所述第二长度阈值大于所述第一长度阈值;若所述评估队列深度小于或等于所述第二长度阈值,则确定当前所述令牌桶算法符合所述速率调整条件。7.根据权利要求6所述的方法,其特征在于,还包括:若所述评估队列深度大于所述第二长度阈值,则确定当前所述令牌桶算法不符合所述速率调整条件。8.一种流量控制装置,其特征在于,包括:队列评估单元,用于在基于预设的令牌桶算法进行流量控制的情况下,当需要进行速率评估时,对已构建的缓存队列进行队列深度评估,得到所述缓存队列对应的评估队列深度;所述缓存队列为基于所述令牌桶算法构建的队列,所述缓存队列用于存储待发送的数据;判断单元,用于依据所述评估队列深度,判断当前所述令牌桶算法是否符合预设的速率调整条件;第一确定单元,用于若当前所述令牌桶算法符合所述速率调整条件,则确定第一速率;所述第一速率为所述令牌桶算法中当前配置的承诺信息速率;所述承诺信息速率表征流量控制过程中的数据发送速度;识别单元,用于对所述缓存队列进行变化速率识别,得到所述缓存队列对应的队列变化速率;第二确定单元,用于依据所述队列变化速率和预设的速率范围,确定速率调整幅度;调整单元,用于基于所述速率调整幅度对所述第一速率进行微调,得到所述第一速率对应的第二速率;更新单元,用于将所述令牌桶算法中配置的承诺信息速率更新为所述第二速率,应用更新后的承诺信息速率进行流量控制,以对流量控制过程中的数据发送速度进行调整。9.一种存储介质,其特征在于,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行如权利要求1~7任意一项所述的流量控制方法。10.一种电子设备,其特征在于,包括存储器,以及一个或者一个以上的指令,其中一个或者一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行如权利要
求1~7任意一项所述的流量控制方法。

技术总结
本发明提供了一种流量控制方法及装置、存储介质及电子设备,该方法包括:在基于令牌桶算法进行流量控制时,对缓存队列进行队列深度评估,得到评估队列深度;依据评估队列深度,判断令牌桶算法是否符合预设的速率调整条件;若符合条件,则确定第一速率;第一速率为令牌桶算法中当前配置的承诺信息速率;对缓存队列进行变化速率识别,得到队列变化速率;依据队列变化速率和预设速率范围,确定速率调整幅度;基于速率调整幅度对第一速率进行微调,得到第二速率;以第二速率对承诺信息速率进行更新,以调整流量控制过程中的数据发送速度。应用本发明的方法,可基于缓存队列深度对承诺信息速率做适应性调整,有利于避免缓存容量有限导致数据丢包。数据丢包。数据丢包。


技术研发人员:刘博 袁海滨
受保护的技术使用者:北京傲星科技有限公司
技术研发日:2023.08.08
技术公布日:2023/9/7
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐