CN116708315B - 流量限速方法、装置、电子设备及存储介质 - Google Patents
流量限速方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116708315B CN116708315B CN202310873843.1A CN202310873843A CN116708315B CN 116708315 B CN116708315 B CN 116708315B CN 202310873843 A CN202310873843 A CN 202310873843A CN 116708315 B CN116708315 B CN 116708315B
- Authority
- CN
- China
- Prior art keywords
- tokens
- speed
- processed
- configuration
- tables
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000000670 limiting effect Effects 0.000 title claims abstract description 171
- 238000000034 method Methods 0.000 title claims abstract description 62
- 230000001105 regulatory effect Effects 0.000 claims abstract description 22
- 230000001276 controlling effect Effects 0.000 claims abstract description 16
- 238000004364 calculation method Methods 0.000 claims description 14
- 238000010586 diagram Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000004804 winding Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/25—Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/215—Flow control; Congestion control using token-bucket
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/29—Flow control; Congestion control using a combination of thresholds
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供一种流量限速方法、装置、电子设备及存储介质,该方法包括:获取待处理的流量数据;基于待处理的流量数据确定限速配置参数,限速配置参数用于限定待处理的流量数据的限速规则;基于限速配置参数生成多个配置表和多个状态表,配置表包括限速规则信息,状态表包括多个令牌桶的状态;根据限速配置参数、多个配置表和多个状态表对多个令牌桶中的令牌的增长速率进行调节,以对待处理的流量数据进行限速。本公开实施例通过待处理的流量数据确定限速配置参数,并根据限速配置参数生成多个配置表和多个状态表,用于对多个令牌桶中的令牌的增长速率进行调节,从而对待处理的流量数据进行限速,提高了流量限速的精度。
Description
技术领域
本公开实施例涉及通信技术领域,尤其涉及一种流量限速方法、装置、电子设备及存储介质。
背景技术
随着互联网技术的发展,用户与各种服务器之间的信息交互越来越频繁。服务器的数据处理和承载能力往往有限,如果不对信息交互的速度加以限制,可能会影响服务器系统的正常运行,因此需要对并发控制和请求进行限速来保护系统。目前,现有技术中一般仅通过令牌桶算法来实现限速,但是该方式只根据当前的限速结果,判断是否限速成功,从而导致流量限速的精度较低。
发明内容
本公开实施例提供一种流量限速方法、装置、电子设备及存储介质,以解决流量限速的精度较低的问题。
为解决上述问题,本公开是这样实现的:
第一方面,本公开实施例提供了一种流量限速方法,所述方法包括:
获取待处理的流量数据;
基于所述待处理的流量数据确定限速配置参数,所述限速配置参数用于限定所述待处理的流量数据的限速规则;
基于所述限速配置参数生成多个配置表和多个状态表,所述配置表包括限速规则信息,所述状态表包括多个令牌桶的状态,所述令牌桶用于控制所述待处理的流量数据的流量上限;
根据所述限速配置参数、所述多个配置表和所述多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速。
可选的,所述根据所述限速配置参数、所述多个配置表和所述多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速,包括:
根据所述限速配置参数、所述多个配置表、第一时间周期和所述多个所述状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速,其中,所述第一时间周期为所述待处理的流量数据的时间戳更新周期。
可选的,所述根据所述限速配置参数、所述多个配置表、第一时间周期和所述多个所述状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速,包括:
基于所述待处理的流量数据的计算精度、所述待处理的流量数据的限速单位、目标令牌桶的单位对所述第一时间周期进行更新,得到第二时间周期,其中,所述目标令牌桶为所述多个令牌桶中的任意一个;
根据所述限速配置参数、所述多个配置表、所述第二时间周期和所述多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速。
可选的,所述根据所述限速配置参数、所述多个配置表、所述第二时间周期和所述多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速之后,所述方法还包括:
根据所述目标令牌桶生成守护请求,所述守护请求用于指示所述目标令牌桶中令牌数的增加速度;
所述根据所述限速配置参数、所述多个配置表和所述多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速,包括:
基于所述守护请求对所述多个状态表进行更新,得到更新后的多个状态表;
基于所述限速配置参数、所述多个配置表和所述更新后的多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速。
可选的,所述根据所述令牌桶生成守护请求,包括:
在预设的计数器的计数为N的情况下,将目标请求对应的标志位进行更新,所述计数器用于记录所生成的目标请求的数量,所述计数器的计数范围为1至N,所述N为生成周期,所述目标请求为在所述目标令牌桶中令牌计数已满的情况下生成的请求;
在所述目标请求对应的标志位进行更新的情况下,生成守护请求。
可选的,所述根据所述限速配置参数、所述多个配置表、第一时间周期和所述多个所述状态表对所述待处理的流量数据进行限速,包括:
根据所述多个令牌桶确定突发流量参数,所述突发流量参数用于确定所述令牌桶的阈值;
基于所述突发流量参数对所述多个配置表进行更新,得到更新后的多个配置表;
基于所述限速配置参数、所述更新后的多个配置表和所述更新后的多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速。
可选的,所述基于所述限速配置参数、所述更新后的多个配置表和所述更新后的多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速之后,所述方法还包括:
在所述目标令牌桶中剩余令牌与新增令牌之和大于所述守护请求对应的请求包长的情况下,确定基于所述限速配置参数、所述多个更新后的配置表和所述更新后的多个状态表对所述待处理的流量数据进行限速成功;
在所述待处理的流量数据限速成功且所述目标令牌桶中剩余令牌与新增令牌之和大于所述突发流量参数的情况下,将所述目标令牌桶中剩余令牌确定为第一数值,所述第一数值为所述突发流量参数与所述守护请求对应的请求包长之差;
在所述待处理的流量数据限速成功且所述目标令牌桶中剩余令牌与新增令牌之和小于所述突发流量参数的情况下,将所述目标令牌桶中剩余令牌确定为第二数值,所述第二数值为第三参数与所述守护请求对应的请求包长的差值,其中,所述第三参数为所述目标令牌桶中剩余令牌和所述新增令牌之和。
可选的,所述基于所述限速配置参数、所述更新后的多个配置表和所述更新后的多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速之后,所述方法还包括:
在所述目标令牌桶中剩余令牌与新增令牌之和小于所述守护请求对应的请求包长的情况下,确定基于所述限速配置参数、所述多个更新后的配置表和所述更新后的多个状态表对所述待处理的流量数据进行限速失败;
在所述待处理的流量数据限速失败且所述目标令牌桶中剩余令牌与新增令牌之和大于所述突发流量参数的情况下,将所述目标令牌桶中剩余令牌确定为第三数值,所述第三数值为所述突发流量参数;
在所述待处理的流量数据限速失败且所述目标令牌桶中剩余令牌与新增令牌之和小于所述突发流量参数的情况下,将所述目标令牌桶中剩余令牌确定为第四数值,所述第四数值为所述目标令牌桶中剩余令牌与新增令牌之和。
可选的,所述限速配置参数包括第一参数和第二参数中的至少一项,所述第一参数为位限速参数,所述第二参数为包限速参数。
第二方面,本公开实施例还提供一种流量限速装置,包括:
获取模块,用于获取待处理的流量数据;
确定模块,用于基于所述待处理的流量数据确定限速配置参数,所述限速配置参数用于限定所述待处理的流量数据的限速规则;
生成模块,用于基于所述限速配置参数生成多个配置表和多个状态表,所述配置表包括限速规则信息,所述状态表包括多个令牌桶的状态,所述令牌桶用于控制所述待处理的流量数据的流量上限;
调节模块,用于根据所述限速配置参数、所述多个配置表和所述多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速。
第三方面,本公开实施例还提供了一种电子设备,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面中任一项所述的流量限速方法的步骤。
第四方面,本公开实施例还提供了一种计算机可读存储介质,所述可读存储介质上存储有程序或指令,所述程序或指令被处理器执行时实现如第一方面中任一项所述的流量限速方法的步骤。
本公开提供一种流量限速方法、装置、电子设备及存储介质,该方法包括:获取待处理的流量数据;基于所述待处理的流量数据确定限速配置参数,所述限速配置参数用于限定所述待处理的流量数据的限速规则;基于所述限速配置参数生成多个配置表和多个状态表,所述配置表包括限速规则信息,所述状态表包括多个令牌桶的状态,所述令牌桶用于控制所述待处理的流量数据的流量上限;根据所述限速配置参数、所述多个配置表和所述多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速。本公开实施例通过待处理的流量数据确定限速配置参数,并根据限速配置参数生成多个配置表和多个状态表,用于对多个令牌桶中的令牌的增长速率进行调节,从而对待处理的流量数据进行限速,提高了流量限速的精度。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对本公开实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例提供的一种流量限速方法的流程示意图;
图2为本公开实施例提供中的流程示意图之一;
图3为本公开实施例提供中的流程示意图之二;
图4为本公开实施例提供的结构示意图;
图5为本公开实施例提供的一种流量限速装置的结构示意图;
图6为本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
本公开实施例中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。此外,本申请中使用“和/或”表示所连接对象的至少其中之一,例如A和/或B和/或C,表示包含单独A,单独B,单独C,以及A和B都存在,B和C都存在,A和C都存在,以及A、B和C都存在的7种情况。
本申请实施例提供了一种数据传输方法,如图1所示,该方法的步骤包括:
步骤101、获取待处理的流量数据。
在本实施例中,待处理的流量数据为需要进行限速的流量数据,目前,如果不对流量进行限速的话,可能会导致服务器负载过高,因此对于流量的限速相当重要。
步骤102、基于所述待处理的流量数据确定限速配置参数,所述限速配置参数用于限定所述待处理的流量数据的限速规则。
在本实施例中,限速配置参数根据待处理的流量数据的不同,参数限定的限速模式也不同,可选的,所述限速配置参数包括第一参数和第二参数中的至少一项,所述第一参数为位限速参数,所述第二参数为包限速参数。
其中,位限速是指限速流量中的每一个bit都需要一个令牌,限速精准度高。包限速是针对包整体进行限速,不在乎数据包的包长,在限速的时候包长是个固定值,只要令牌桶中的令牌数大于该固定值,则限速通过,该模式可以满足对包转发率有限速要求的场景。
本公开实施例为每个限速模式都生成了配置表,用于缓存用户限速配置。位限速对应限速bank0,配置表为config_0,包限速对应限速bank1,配置表为config_1。用户进行限速配置的时候,会添加一个限速配置参数mode,用于区分限速模式并存储到对应的限速表中,mode=0,表示位限速,则将该条限速配置存储到位限速的config_0表;mode=1,表示包限速,则将该条限速配置存储到config_1表。
如表1所示,表1为配置表,每种限速模式,都可以设置上百种限速速率rate,即每张config表内可以缓存上百条限速配置,每个限速配置都有一个index,用于表示该限速配置的id号,也可以用于标记限速配置在配置表中的存储地址,用于后期读取。结合以上发明点,用户进行限速配置内容如下表所示,需要配置mode、rate、thresh和index。
表1
配置编号 | 限速模式 | 限速速率 | 令牌桶阈值 |
index | mode | rate | thresh |
本公开的限速配置流程如图2所示,先进行mode判断,区分该条限速配置属于哪张表,然后根据index,将rate和thresh存储到该表的对应地址。
由于本公开可以同时进行位限速和包限速,用户在发送需要限速的流量时,流量的随路数据中预设了两个限速index,index_0表示该流量在位限速配置表config_0中的限速配置地址,index_1表示该流量在包限速配置表config_1中的限速配置地址。本公开支持单模式:位限速、包限速,也支持双模式:位限速和包限速。单模式下用户可以根据需求的限速速率指定限速index值,对于不需要的限速模式,只需要将对应的index值设置为0,index=0表示不使能该模式限速,index大于0的,就从对应的限速配置表中获取限速设置。双模式下,用户只需要同时设置index_0和index_1。然后根据如图3所示的流程图,结合位限速和包限速的限速结果,决定最终的限速结果。
步骤103、基于所述限速配置参数生成多个配置表和多个状态表,所述配置表包括限速规则信息,所述状态表包括多个令牌桶的状态,所述令牌桶用于控制所述待处理的流量数据的流量上限。
在本实施例中,配置表如步骤102中所示,状态表为表2所示,本公开将更新的时间戳tstamp和令牌数bkt_level,缓存到对应状态表state table的index地址中,用于记录该令牌桶的状态,便于下次限速时调用时间戳和令牌数。
表2
存储地址 | 时间戳 | 令牌数 |
index | tstamp | bkt_level |
另外需要进行说明的是,令牌桶对流量进行限速主要是通过以限速速率向桶中增加令牌,通过获取令牌进而获取处理流量的许可;输出一包流量可以取通过令牌数量个令牌,从而可以处理对应大小的流量。有了令牌的流量才可以通过,令牌桶可以较快速率发送大量突发流量,通过对令牌数量的控制来操作最终的流量。
步骤104、根据所述限速配置参数、所述多个配置表和所述多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速。
在本实施例中,通过在限速配置中增加mode参数,并生成多张配置表和状态表,分块依次进行限速,并设立了多模块限速流程,实现了位限速、包限速,单模式和双模式的灵活应用。相比较现有技术只支持单一模式的限速,本公开应用场景更多,可扩展性更强。
本公开提供一种流量限速方法,该方法包括:获取待处理的流量数据;基于所述待处理的流量数据确定限速配置参数,所述限速配置参数用于限定所述待处理的流量数据的限速规则;基于所述限速配置参数生成多个配置表和多个状态表,所述配置表包括限速规则信息,所述状态表包括多个令牌桶的状态,所述令牌桶用于控制所述待处理的流量数据的流量上限;根据所述限速配置参数、所述多个配置表和所述多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速。本公开实施例通过待处理的流量数据确定限速配置参数,并根据限速配置参数生成多个配置表和多个状态表,用于对多个令牌桶中的令牌的增长速率进行调节,从而对待处理的流量数据进行限速,提高了流量限速的精度。
在一些可行的实施方式中,可选的,所述根据所述限速配置参数、所述多个配置表和所述多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速,包括:
根据所述限速配置参数、所述多个配置表、第一时间周期和所述多个所述状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速,其中,所述第一时间周期为所述待处理的流量数据的时间戳更新周期。
在本实施例中,系统时间戳的更新周期为第一时间周期,第一时间周期过长,如果第一时间周期内有多个限速请求,会导致时间戳的差值为0,使得无法计算新增令牌数,导致流量被盲目丢弃,也会导致下一秒令牌数激增,使得限速精度降低。但是如果第一时间周期过短,更新速率又会过快,流量包的发送间隔不会这么短,脱离实际应用,并且将会导致系统时间戳的数值变的过大,在进行新增令牌数乘法运算时,使得乘法计算的运算量变大,计算延迟变大,造成限速效率变低。因此,通过选择合理的第一时间周期能够提高延迟计算精度。
可选的,所述根据所述限速配置参数、所述多个配置表、第一时间周期和所述多个所述状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速,包括:
基于所述待处理的流量数据的计算精度、所述待处理的流量数据的限速单位、目标令牌桶的单位对所述第一时间周期进行更新,得到第二时间周期,其中,所述目标令牌桶为所述多个令牌桶中的任意一个;
根据所述限速配置参数、所述多个配置表、所述第二时间周期和所述多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速。
在本实施例中,将系统时间戳的更新周期定为1us,每个时钟周期内,系统时间戳的小数位都增加SCALED_TSTAMP,SCALED_TSTAMP计算公式如下SCALED_TSTAMP=(计算精度* 限速单位 * (2^桶令牌的单位))/(系统时钟 * 8),具体地,是根据系统时钟、限速单位、桶令牌的单位、计算精度。当SCALED_TSTAMP累加到最大位时,即1us,系统时间戳的整数位tstamp更新,在原来的整数位上加1。为了保证系统时间戳的位宽尽量可能的小,减小新增令牌的计算延迟,本公开中为系统时间戳设置了最大值MAX_TSTAMP,使系统时间戳在一定数值内循环累加。
可选的,所述根据所述限速配置参数、所述多个配置表、所述第二时间周期和所述多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速之后,所述方法还包括:
根据所述目标令牌桶生成守护请求,所述守护请求用于指示所述目标令牌桶中令牌数的增加速度;
所述根据所述限速配置参数、所述多个配置表和所述多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速,包括:
基于所述守护请求对所述多个状态表进行更新,得到更新后的多个状态表;
基于所述限速配置参数、所述多个配置表和所述更新后的多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速。
在本实施例中,当流量发送间隔过长时,令牌桶的时间戳差值会过大,会导致令牌桶中的令牌突然激增。并且本公开为了防止时间戳之间的出现缠绕,例如令牌桶的上个限速的时间戳为3,由于长时间没有限速请求,系统时间戳累加到最大值后,重新从0累加,如果在系统时间戳为3时,又有了新的限速请求,在计算时间戳差值时,则数值为0,这样就会造成新增令牌数计算错误的现象。因此本公开生成了守护进程,固定每n个时钟周期生成一个守护请求,使得令牌桶中的令牌数缓慢增加,从而达到完全准确平滑的限速效果。
可选的,所述根据所述令牌桶生成守护请求,包括:
在预设的计数器的计数为N的情况下,将目标请求对应的标志位进行更新,所述计数器用于记录所生成的目标请求的数量,所述计数器的计数范围为1至N,所述N为生成周期,所述目标请求为在所述目标令牌桶中令牌计数已满的情况下生成的请求;
在所述目标请求对应的标志位进行更新的情况下,生成守护请求。
在本实施例中,首先创建一个计数器,从1开始随着系统时钟周期不断累加,当经过n个系统时钟周期后,拉高守护请求的标志位,同时将计数器赋值为1,使得计数器从下个时钟周期重新开始计数。守护请求的标志位拉高,表示需要生成一个守护请求。本公开通过将限速请求的有效位valid拉高,请求类型req_type标记为守护请求,请求包长plength赋值为0,并对守护请求的地址index进行累加,在上个守护请求的index基础上加1,从而生成一个守护请求。本公开能够支持上百个限速速率,每个限速速率都有一个地址index,用于从配置表中读取请求限速配置。本公开每n个时钟周期生成一个守护请求,守护请求的index会不断累加,直到最大index_max就会从0开始累计,这样可以保证每n*index_max个时钟周期就肯定会通过守护请求对同个令牌桶进行时间戳和令牌数的更新,确保定时刷新每个令牌桶,也保证令牌桶中的令牌是缓慢增加的,提高限速的准确性。
为了更好的防止时间戳缠绕,系统时间戳的最大值所占的时钟周期,需要覆盖每个令牌桶进行两次时间戳的更新,即:
MAX_TSTAMP>=2*n*index_max*SCALED_TSTAMP/计算精度
守护请求通过进行流量限速,以实现更新令牌数和时间戳,守护请求的包长为0,并不会占用令牌桶中的令牌,但是可以更新令牌桶的时间戳和令牌数。
在本实施例中,由于守护请求是每固定周期就会生成一次,然后进行流量限速,以刷新对应令牌桶的时间戳和令牌数,会存在与用户输入的限速流量发生时间戳和令牌数更新的冲突。但是守护请求的刷新过程不能被中断,否则会造成部分令牌桶无法被及时刷新。因此,本公开运用先进先出队列存储输入的限速流量。
限速请求生成模块每个时钟周期都会判断当前时刻,守护请求的标志位是否拉高:
守护请求的标志位为0,表示当前没有守护请求,则判断fifo中是否有流量限速请求:
没有流量限速请求,则将限速请求的有效标志位valid拉低,表示当前不需要进行限速操作。如果有流量限速请求,则将限速请求的有效标志位valid拉高,并将限速请求类型标记为流量限速请求,由于请求类型为流量限速请求,则限速包长为限速流量的实际包长。守护请求的标志位为1,表示当前有守护请求,则将请求的有效标志位valid拉高,并将请求类型标记为守护请求,表示生成一个守护请求。由于请求类型为守护请求,则限速包长为0。
可选的,所述根据所述限速配置参数、所述多个配置表、第一时间周期和所述多个所述状态表对所述待处理的流量数据进行限速,包括:
根据所述多个令牌桶确定突发流量参数,所述突发流量参数用于确定所述令牌桶的阈值;
基于所述突发流量参数对所述多个配置表进行更新,得到更新后的多个配置表;
基于所述限速配置参数、所述更新后的多个配置表和所述更新后的多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速。
在本实施例中,突发流量参数为突发流量thresh,用户可以根据流量的实际使用需求,设置thresh,该参数控制各个令牌桶的阈值。即该令牌桶里的令牌数只能小于等于thresh,单位为bit。当突发流量的包长等于thresh,并且令牌桶中的令牌数为最大值thresh时,则该突发流量可以被限速成功,不会由于缺少令牌而被丢弃;也不会由于令牌桶的thresh设置过大,超过限速速率,导致限速失效,提高了限速效率和限速精度。
可选的,所述基于所述限速配置参数、所述更新后的多个配置表和所述更新后的多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速之后,所述方法还包括:
在所述目标令牌桶中剩余令牌与新增令牌之和大于所述守护请求对应的请求包长的情况下,确定基于所述限速配置参数、所述多个更新后的配置表和所述更新后的多个状态表对所述待处理的流量数据进行限速成功;
在所述待处理的流量数据限速成功且所述目标令牌桶中剩余令牌与新增令牌之和大于所述突发流量参数的情况下,将所述目标令牌桶中剩余令牌确定为第一数值,所述第一数值为所述突发流量参数与所述守护请求对应的请求包长之差;
在所述待处理的流量数据限速成功且所述目标令牌桶中剩余令牌与新增令牌之和小于所述突发流量参数的情况下,将所述目标令牌桶中剩余令牌确定为第二数值,所述第二数值为第三参数与所述守护请求对应的请求包长的差值,其中,所述第三参数为所述目标令牌桶中剩余令牌和所述新增令牌之和。
在本实施例中,如果大于表示令牌数满足限速要求,限速成功,则进一步判断剩余令牌+新增令牌是否大于thresh:如果大于,则表示令牌桶的令牌数已经溢出,超过阈值thresh,则该令牌桶中剩余令牌数为thresh-plength。
如果小于,则表示令牌桶的令牌数并未溢出,小于阈值thresh,则该令牌桶中剩余令牌数为剩余令牌数+新增令牌数-包长。
可选的,所述基于所述限速配置参数、所述更新后的多个配置表和所述更新后的多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速之后,所述方法还包括:
在所述目标令牌桶中剩余令牌与新增令牌之和小于所述守护请求对应的请求包长的情况下,确定基于所述限速配置参数、所述多个更新后的配置表和所述更新后的多个状态表对所述待处理的流量数据进行限速失败;
在所述待处理的流量数据限速失败且所述目标令牌桶中剩余令牌与新增令牌之和大于所述突发流量参数的情况下,将所述目标令牌桶中剩余令牌确定为第三数值,所述第三数值为所述突发流量参数;
在所述待处理的流量数据限速失败且所述目标令牌桶中剩余令牌与新增令牌之和小于所述突发流量参数的情况下,将所述目标令牌桶中剩余令牌确定为第四数值,所述第四数值为所述目标令牌桶中剩余令牌与新增令牌之和。
在本实施例中,如果小于表示令牌数不够,限速失败,表示当前限速不领取令牌,直接丢弃该流量,则进一步判断剩余令牌+新增令牌是否大于thresh:如果大于,则表示令牌桶的令牌数已经溢出,超过阈值thresh,则该令牌桶中剩余令牌数为thresh。
如果小于,则表示令牌桶的令牌数并未溢出,小于阈值thresh,则该令牌桶中剩余令牌数为剩余令牌数+新增令牌数。
如图4所示,图4为本公开提供的一种流量限速的装置,其中包括了限速配置模块、限速配置表、状态表、守护进程生成模块、流量缓存模块、限速请求生成模块、限速模块和时间戳配置模块。该装置用于执行上述方法,并用于以提高该流量限速方法的通用性,提高流量限速的便捷度。
首先用户通过限速配置模块分别配置位限速配置表config_0和包限速配置表config_1,通过index指定存储的地址。然后用户开始发送需要限速的流量,流量需要配置参数 index_a、index_b和plength。流量首先会缓存在流量缓存模块中,需要等待限速请求生成模块发出读请求,才可以传入限速请求生成模块。
限速请求生成模块用于生成限速请求,会先判断当前时刻是否有守护请求:
有守护请求,则拉高限速请求的有效标志位valid,将请求类型req_type标记为守护请求,并将包长plength设置为0,将index_a、index_b赋值为当前守护进程生成模块中的轮询到的index。
没有守护请求,则从流量缓存模块中读出缓存的流量,并将限速请求的有效标志位valid拉高,并将包长plength设置为流量本身的包长plength,将index_a、index_b赋值为流量本身配置的index_a、index_b。
获得index_a和index_b后,如果有index为0 ,则表示不使能该模式限速,则将后面对应的限速请求的valid拉低,表示不进行限速。如果index_a和index_b都大于0,则限速请求生成模块以index_a为读地址,从config_0获取指定的位限速的配置信息:rate_0和thresh_0,从state_table_0状态表中获取指定的位限速令牌桶的配置信息:tstamp_0和bkt_level_0。从config_1获取指定的位限速的配置信息:rate_1和thresh_1,从state_table_1状态表中获取指定的位限速令牌桶的配置信息:tstamp_1和bkt_level_1。并将包限速的plength设置为预设的固定包长plength0。最终获得限速请求,位限速bank和包限速bank各有一条限速请求。
然后位限速请求和包限速请求被依次输入到限速模块中,并将当前的时间戳一起输入到限速模块。计算当前时间戳与状态表所缓存的时间戳的差值tstamp_diff,根据以下公式,结合限速速率rate做乘法,获得新增令牌数topup,令牌数的单位为bit。
topup=tstamp_diff*rate
并结合状态表中的所缓存的剩余令牌数bkt_level,计算当前令牌桶现有令牌数token:token=bkt_level+topup。比较当前令牌数是否大于包长,包长的单位也为bit,如果当前令牌数足以给流量的每个bit一个令牌,则表示当前流量的速率,小于等于限速速率,可以通过限速。如果当前令牌数不够给流量的每个bit一个令牌,则表示当前流量的速率大于限速速率,不能通过限速。接下来根据根据图3的流程,计算限速之后剩余令牌数。然后将剩余令牌数和当前时刻的时间戳,更新到状态表对应的index中。以上流程完成了对流量的限速。
本公开提供一种流量限速方法,该方法包括:获取待处理的流量数据;基于所述待处理的流量数据确定限速配置参数,所述限速配置参数用于限定所述待处理的流量数据的限速规则;基于所述限速配置参数生成多个配置表和多个状态表,所述配置表包括限速规则信息,所述状态表包括多个令牌桶的状态,所述令牌桶用于控制所述待处理的流量数据的流量上限;根据所述限速配置参数、所述多个配置表和所述多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速。本公开实施例通过待处理的流量数据确定限速配置参数,并根据限速配置参数生成多个配置表和多个状态表,用于对多个令牌桶中的令牌的增长速率进行调节,从而对待处理的流量数据进行限速,提高了流量限速的精度。
参见图5,图5是本公开实施例提供的流量限速装置的结构图。如图5所示,流量限速装置500包括:
获取模块510,用于获取待处理的流量数据;
确定模块520,用于基于所述待处理的流量数据确定限速配置参数,所述限速配置参数用于限定所述待处理的流量数据的限速规则;
生成模块530,用于基于所述限速配置参数生成多个配置表和多个状态表,所述配置表包括限速规则信息,所述状态表包括多个令牌桶的状态,所述令牌桶用于控制所述待处理的流量数据的流量上限;
调节模块540,用于根据所述限速配置参数、所述多个配置表和所述多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速。
可选的,调节模块540,包括:
第一调节子模块,用于根据所述限速配置参数、所述多个配置表、第一时间周期和所述多个所述状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速,其中,所述第一时间周期为所述待处理的流量数据的时间戳更新周期。
可选的,第一调节子模块,包括:
第一更新单元,用于基于所述待处理的流量数据的计算精度、所述待处理的流量数据的限速单位、目标令牌桶的单位对所述第一时间周期进行更新,得到第二时间周期,其中,所述目标令牌桶为所述多个令牌桶中的任意一个;
第一调节单元,用于根据所述限速配置参数、所述多个配置表、所述第二时间周期和所述多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速。
可选的,还包括:
第一生成单元,用于根据所述目标令牌桶生成守护请求,所述守护请求用于指示所述目标令牌桶中令牌数的增加速度;
第一调节单元包括:
第一更新子单元,用于基于所述守护请求对所述多个状态表进行更新,得到更新后的多个状态表;
第一调节子单元,用于基于所述限速配置参数、所述多个配置表和所述更新后的多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速。
可选的,第一生成单元包括:
第二更新子单元,用于在预设的计数器的计数为N的情况下,将目标请求对应的标志位进行更新,所述计数器用于记录所生成的目标请求的数量,所述计数器的计数范围为1至N,所述N为生成周期,所述目标请求为在所述目标令牌桶中令牌计数已满的情况下生成的请求;
第一生成子单元,用于在所述目标请求对应的标志位进行更新的情况下,生成守护请求。
可选的,第一调节子模块,包括:
第一确定单元,用于根据所述多个令牌桶确定突发流量参数,所述突发流量参数用于确定所述令牌桶的阈值;
第二更新单元,用于基于所述突发流量参数对所述多个配置表进行更新,得到更新后的多个配置表;
第二调节单元,用于基于所述限速配置参数、所述更新后的多个配置表和所述更新后的多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速。
可选的,还包括:
第一判断单元,用于在所述目标令牌桶中剩余令牌与新增令牌之和大于所述守护请求对应的请求包长的情况下,确定基于所述限速配置参数、所述多个更新后的配置表和所述更新后的多个状态表对所述待处理的流量数据进行限速成功;
第二判断单元,用于在所述待处理的流量数据限速成功且所述目标令牌桶中剩余令牌与新增令牌之和大于所述突发流量参数的情况下,将所述目标令牌桶中剩余令牌确定为第一数值,所述第一数值为所述突发流量参数与所述守护请求对应的请求包长之差;
第三判断单元,用于在所述待处理的流量数据限速成功且所述目标令牌桶中剩余令牌与新增令牌之和小于所述突发流量参数的情况下,将所述目标令牌桶中剩余令牌确定为第二数值,所述第二数值为第三参数与所述守护请求对应的请求包长的差值,其中,所述第三参数为所述目标令牌桶中剩余令牌和所述新增令牌之和。
可选的,还包括:
第四判断单元,用于在所述目标令牌桶中剩余令牌与新增令牌之和小于所述守护请求对应的请求包长的情况下,确定基于所述限速配置参数、所述多个更新后的配置表和所述更新后的多个状态表对所述待处理的流量数据进行限速失败;
第五判断单元,用于在所述待处理的流量数据限速失败且所述目标令牌桶中剩余令牌与新增令牌之和大于所述突发流量参数的情况下,将所述目标令牌桶中剩余令牌确定为第三数值,所述第三数值为所述突发流量参数;
第六判断单元,用于在所述待处理的流量数据限速失败且所述目标令牌桶中剩余令牌与新增令牌之和小于所述突发流量参数的情况下,将所述目标令牌桶中剩余令牌确定为第四数值,所述第四数值为所述目标令牌桶中剩余令牌与新增令牌之和。
可选的,所述限速配置参数包括第一参数和第二参数中的至少一项,所述第一参数为位限速参数,所述第二参数为包限速参数。
本公开实施例通过待处理的流量数据确定限速配置参数,并根据限速配置参数生成多个配置表和多个状态表,用于对多个令牌桶中的令牌的增长速率进行调节,从而对待处理的流量数据进行限速,提高了流量限速的精度。
本公开实施例还提供一种电子设备。请参见图6,通信设备可以包括处理器601、存储器602及存储在存储器602上并可在处理器601上运行的程序6021。
程序6021被处理器601执行时可实现图1对应的方法实施例中的任意步骤:
获取待处理的流量数据;
基于所述待处理的流量数据确定限速配置参数,所述限速配置参数用于限定所述待处理的流量数据的限速规则;
基于所述限速配置参数生成多个配置表和多个状态表,所述配置表包括限速规则信息,所述状态表包括多个令牌桶的状态,所述令牌桶用于控制所述待处理的流量数据的流量上限;
根据所述限速配置参数、所述多个配置表和所述多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速。
可选的,所述根据所述限速配置参数、所述多个配置表和所述多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速,包括:
根据所述限速配置参数、所述多个配置表、第一时间周期和所述多个所述状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速,其中,所述第一时间周期为所述待处理的流量数据的时间戳更新周期。
可选的,所述根据所述限速配置参数、所述多个配置表、第一时间周期和所述多个所述状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速,包括:
基于所述待处理的流量数据的计算精度、所述待处理的流量数据的限速单位、目标令牌桶的单位对所述第一时间周期进行更新,得到第二时间周期,其中,所述目标令牌桶为所述多个令牌桶中的任意一个;
根据所述限速配置参数、所述多个配置表、所述第二时间周期和所述多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速。
可选的,所述根据所述限速配置参数、所述多个配置表、所述第二时间周期和所述多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速之后,所述方法还包括:
根据所述目标令牌桶生成守护请求,所述守护请求用于指示所述目标令牌桶中令牌数的增加速度;
所述根据所述限速配置参数、所述多个配置表和所述多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速,包括:
基于所述守护请求对所述多个状态表进行更新,得到更新后的多个状态表;
基于所述限速配置参数、所述多个配置表和所述更新后的多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速。
可选的,所述根据所述令牌桶生成守护请求,包括:
在预设的计数器的计数为N的情况下,将目标请求对应的标志位进行更新,所述计数器用于记录所生成的目标请求的数量,所述计数器的计数范围为1至N,所述N为生成周期,所述目标请求为在所述目标令牌桶中令牌计数已满的情况下生成的请求;
在所述目标请求对应的标志位进行更新的情况下,生成守护请求。
可选的,所述根据所述限速配置参数、所述多个配置表、第一时间周期和所述多个所述状态表对所述待处理的流量数据进行限速,包括:
根据所述多个令牌桶确定突发流量参数,所述突发流量参数用于确定所述令牌桶的阈值;
基于所述突发流量参数对所述多个配置表进行更新,得到更新后的多个配置表;
基于所述限速配置参数、所述更新后的多个配置表和所述更新后的多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速。
可选的,所述基于所述限速配置参数、所述更新后的多个配置表和所述更新后的多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速之后,所述方法还包括:
在所述目标令牌桶中剩余令牌与新增令牌之和大于所述守护请求对应的请求包长的情况下,确定基于所述限速配置参数、所述多个更新后的配置表和所述更新后的多个状态表对所述待处理的流量数据进行限速成功;
在所述待处理的流量数据限速成功且所述目标令牌桶中剩余令牌与新增令牌之和大于所述突发流量参数的情况下,将所述目标令牌桶中剩余令牌确定为第一数值,所述第一数值为所述突发流量参数与所述守护请求对应的请求包长之差;
在所述待处理的流量数据限速成功且所述目标令牌桶中剩余令牌与新增令牌之和小于所述突发流量参数的情况下,将所述目标令牌桶中剩余令牌确定为第二数值,所述第二数值为第三参数与所述守护请求对应的请求包长的差值,其中,所述第三参数为所述目标令牌桶中剩余令牌和所述新增令牌之和。
可选的,所述基于所述限速配置参数、所述更新后的多个配置表和所述更新后的多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速之后,所述方法还包括:
在所述目标令牌桶中剩余令牌与新增令牌之和小于所述守护请求对应的请求包长的情况下,确定基于所述限速配置参数、所述多个更新后的配置表和所述更新后的多个状态表对所述待处理的流量数据进行限速失败;
在所述待处理的流量数据限速失败且所述目标令牌桶中剩余令牌与新增令牌之和大于所述突发流量参数的情况下,将所述目标令牌桶中剩余令牌确定为第三数值,所述第三数值为所述突发流量参数;
在所述待处理的流量数据限速失败且所述目标令牌桶中剩余令牌与新增令牌之和小于所述突发流量参数的情况下,将所述目标令牌桶中剩余令牌确定为第四数值,所述第四数值为所述目标令牌桶中剩余令牌与新增令牌之和。
可选的,所述限速配置参数包括第一参数和第二参数中的至少一项,所述第一参数为位限速参数,所述第二参数为包限速参数。
本公开实施例通过待处理的流量数据确定限速配置参数,并根据限速配置参数生成多个配置表和多个状态表,用于对多个令牌桶中的令牌的增长速率进行调节,从而对待处理的流量数据进行限速,提高了流量限速的精度。
本领域普通技术人员可以理解实现上述实施例方法的全部或者部分步骤是可以通过程序指令相关的硬件来完成,所述的程序可以存储于一可读取介质中。本公开实施例还提供一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时可实现上述图1对应的方法实施例中的任意步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
所述的存储介质,如只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等。
以上所述是本公开实施例的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本公开所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本公开的保护范围。
Claims (10)
1.一种流量限速方法,其特征在于,所述方法包括:
获取待处理的流量数据;
基于所述待处理的流量数据确定限速配置参数,所述限速配置参数用于限定所述待处理的流量数据的限速规则;
基于所述限速配置参数生成多个配置表和多个状态表,所述配置表包括限速规则信息,所述状态表包括多个令牌桶的状态,所述令牌桶用于控制所述待处理的流量数据的流量上限;
根据所述限速配置参数、所述多个配置表和所述多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速,所述根据所述限速配置参数、所述多个配置表和所述多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速,包括:根据目标令牌桶生成守护请求,所述守护请求用于指示所述目标令牌桶中令牌数的增加速度;所述根据所述令牌桶生成守护请求,包括:在预设的计数器的计数为N的情况下,将目标请求对应的标志位进行更新,所述计数器用于记录所生成的目标请求的数量,所述计数器的计数范围为1至N,所述N为生成周期,所述目标请求为在所述目标令牌桶中令牌计数已满的情况下生成的请求;在所述目标请求对应的标志位进行更新的情况下,生成守护请求;
基于所述守护请求对所述多个状态表进行更新,得到更新后的多个状态表;
基于所述限速配置参数、所述多个配置表和所述更新后的多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速。
2.根据权利要求1中所述的方法,其特征在于,所述根据所述限速配置参数、所述多个配置表和所述多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速,包括:
根据所述限速配置参数、所述多个配置表、第一时间周期和所述多个所述状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速,其中,所述第一时间周期为所述待处理的流量数据的时间戳更新周期。
3.根据权利要求2中所述的方法,其特征在于,所述根据所述限速配置参数、所述多个配置表、第一时间周期和所述多个所述状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速,包括:
基于所述待处理的流量数据的计算精度、所述待处理的流量数据的限速单位、目标令牌桶的单位对所述第一时间周期进行更新,得到第二时间周期,其中,所述目标令牌桶为所述多个令牌桶中的任意一个;
根据所述限速配置参数、所述多个配置表、所述第二时间周期和所述多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速。
4.根据权利要求1中所述的方法,其特征在于,所述根据所述限速配置参数、所述多个配置表、第一时间周期和所述多个所述状态表对所述待处理的流量数据进行限速,包括:
根据所述多个令牌桶确定突发流量参数,所述突发流量参数用于确定所述令牌桶的阈值;
基于所述突发流量参数对所述多个配置表进行更新,得到更新后的多个配置表;
基于所述限速配置参数、所述更新后的多个配置表和所述更新后的多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速。
5.根据权利要求4中所述的方法,其特征在于,所述基于所述限速配置参数、所述更新后的多个配置表和所述更新后的多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速之后,所述方法还包括:
在所述目标令牌桶中剩余令牌与新增令牌之和大于所述守护请求对应的请求包长的情况下,确定基于所述限速配置参数、所述多个更新后的配置表和所述更新后的多个状态表对所述待处理的流量数据进行限速成功;
在所述待处理的流量数据限速成功且所述目标令牌桶中剩余令牌与新增令牌之和大于所述突发流量参数的情况下,将所述目标令牌桶中剩余令牌确定为第一数值,所述第一数值为所述突发流量参数与所述守护请求对应的请求包长之差;
在所述待处理的流量数据限速成功且所述目标令牌桶中剩余令牌与新增令牌之和小于所述突发流量参数的情况下,将所述目标令牌桶中剩余令牌确定为第二数值,所述第二数值为第三参数与所述守护请求对应的请求包长的差值,其中,所述第三参数为所述目标令牌桶中剩余令牌和所述新增令牌之和。
6.根据权利要求4中所述的方法,其特征在于,所述基于所述限速配置参数、所述更新后的多个配置表和所述更新后的多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速之后,所述方法还包括:
在所述目标令牌桶中剩余令牌与新增令牌之和小于所述守护请求对应的请求包长的情况下,确定基于所述限速配置参数、所述多个更新后的配置表和所述更新后的多个状态表对所述待处理的流量数据进行限速失败;
在所述待处理的流量数据限速失败且所述目标令牌桶中剩余令牌与新增令牌之和大于所述突发流量参数的情况下,将所述目标令牌桶中剩余令牌确定为第三数值,所述第三数值为所述突发流量参数;
在所述待处理的流量数据限速失败且所述目标令牌桶中剩余令牌与新增令牌之和小于所述突发流量参数的情况下,将所述目标令牌桶中剩余令牌确定为第四数值,所述第四数值为所述目标令牌桶中剩余令牌与新增令牌之和。
7.根据权利要求1中所述的方法,其特征在于,所述限速配置参数包括第一参数和第二参数中的至少一项,所述第一参数为位限速参数,所述第二参数为包限速参数。
8.一种流量限速装置,其特征在于,包括:
获取模块,用于获取待处理的流量数据;
确定模块,用于基于所述待处理的流量数据确定限速配置参数,所述限速配置参数用于限定所述待处理的流量数据的限速规则;
生成模块,用于基于所述限速配置参数生成多个配置表和多个状态表,所述配置表包括限速规则信息,所述状态表包括多个令牌桶的状态,所述令牌桶用于控制所述待处理的流量数据的流量上限;
调节模块,用于根据所述限速配置参数、所述多个配置表和所述多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速,所述调节模块包括:第一生成单元,用于根据目标令牌桶生成守护请求,所述守护请求用于指示所述目标令牌桶中令牌数的增加速度;所述第一生成单元包括:第二更新子单元,用于在预设的计数器的计数为N的情况下,将目标请求对应的标志位进行更新,所述计数器用于记录所生成的目标请求的数量,所述计数器的计数范围为1至N,所述N为生成周期,所述目标请求为在所述目标令牌桶中令牌计数已满的情况下生成的请求;第一生成子单元,用于在所述目标请求对应的标志位进行更新的情况下,生成守护请求;
第一更新子单元,用于基于所述守护请求对所述多个状态表进行更新,得到更新后的多个状态表;
第一调节子单元,用于基于所述限速配置参数、所述多个配置表和所述更新后的多个状态表对所述多个令牌桶中的令牌的增长速率进行调节,以对所述待处理的流量数据进行限速。
9.一种电子设备,其特征在于,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1至7中任一项所述的流量限速方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述可读存储介质上存储有程序或指令,所述程序或指令被处理器执行时实现如权利要求1至7中任一项所述的流量限速方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310873843.1A CN116708315B (zh) | 2023-07-17 | 2023-07-17 | 流量限速方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310873843.1A CN116708315B (zh) | 2023-07-17 | 2023-07-17 | 流量限速方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116708315A CN116708315A (zh) | 2023-09-05 |
CN116708315B true CN116708315B (zh) | 2023-11-03 |
Family
ID=87832370
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310873843.1A Active CN116708315B (zh) | 2023-07-17 | 2023-07-17 | 流量限速方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116708315B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102082693A (zh) * | 2011-02-15 | 2011-06-01 | 中兴通讯股份有限公司 | 网络流量监管方法及装置 |
CN107347198A (zh) * | 2016-05-05 | 2017-11-14 | 北京金山云网络技术有限公司 | 一种限速方法、限速控制节点和限速设备 |
CN109999289A (zh) * | 2007-05-11 | 2019-07-12 | 瑞思迈有限公司 | 针对流量限制检测的自动控制 |
CN111381988A (zh) * | 2020-03-24 | 2020-07-07 | 北京奇艺世纪科技有限公司 | 一种请求限速方法、装置、电子设备及存储介质 |
CN113014504A (zh) * | 2021-03-16 | 2021-06-22 | 杭州迪普信息技术有限公司 | 流量控制方法、装置与电子设备 |
CN113347111A (zh) * | 2021-05-12 | 2021-09-03 | 金茂数字科技有限公司 | 基于用户体验的流量调整方法及管理系统 |
CN114070791A (zh) * | 2020-07-29 | 2022-02-18 | 中国移动通信集团安徽有限公司 | 数据流量的限速处理方法及装置 |
CN114372648A (zh) * | 2020-10-14 | 2022-04-19 | 中国移动通信集团安徽有限公司 | 一种流量动态控制方法、装置、设备及计算机介质 |
WO2022257425A1 (zh) * | 2021-06-11 | 2022-12-15 | 天翼云科技有限公司 | 传输速率控制方法、装置、电子设备和可读存储介质 |
CN116366565A (zh) * | 2022-12-16 | 2023-06-30 | 苏州盛科通信股份有限公司 | 一种限速模式切换方法、装置、电子设备及存储介质 |
-
2023
- 2023-07-17 CN CN202310873843.1A patent/CN116708315B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109999289A (zh) * | 2007-05-11 | 2019-07-12 | 瑞思迈有限公司 | 针对流量限制检测的自动控制 |
CN102082693A (zh) * | 2011-02-15 | 2011-06-01 | 中兴通讯股份有限公司 | 网络流量监管方法及装置 |
CN107347198A (zh) * | 2016-05-05 | 2017-11-14 | 北京金山云网络技术有限公司 | 一种限速方法、限速控制节点和限速设备 |
CN111381988A (zh) * | 2020-03-24 | 2020-07-07 | 北京奇艺世纪科技有限公司 | 一种请求限速方法、装置、电子设备及存储介质 |
CN114070791A (zh) * | 2020-07-29 | 2022-02-18 | 中国移动通信集团安徽有限公司 | 数据流量的限速处理方法及装置 |
CN114372648A (zh) * | 2020-10-14 | 2022-04-19 | 中国移动通信集团安徽有限公司 | 一种流量动态控制方法、装置、设备及计算机介质 |
CN113014504A (zh) * | 2021-03-16 | 2021-06-22 | 杭州迪普信息技术有限公司 | 流量控制方法、装置与电子设备 |
CN113347111A (zh) * | 2021-05-12 | 2021-09-03 | 金茂数字科技有限公司 | 基于用户体验的流量调整方法及管理系统 |
WO2022257425A1 (zh) * | 2021-06-11 | 2022-12-15 | 天翼云科技有限公司 | 传输速率控制方法、装置、电子设备和可读存储介质 |
CN116366565A (zh) * | 2022-12-16 | 2023-06-30 | 苏州盛科通信股份有限公司 | 一种限速模式切换方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116708315A (zh) | 2023-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108763110B (zh) | 一种数据缓存方法及装置 | |
US10831677B2 (en) | Cache management method, cache controller, and computer system | |
US10248350B2 (en) | Queue management method and apparatus | |
CN111049756B (zh) | 请求响应方法、装置、电子设备及计算机可读存储介质 | |
CN112131005B (zh) | 一种资源调整策略确定方法和装置 | |
CN108509157A (zh) | 一种应用于分布式文件系统的数据均衡方法及装置 | |
CN113630329B (zh) | 基于用户访问量的负载均衡方法、系统及可读存储介质 | |
CN103888377A (zh) | 报文缓存方法及装置 | |
US11677769B2 (en) | Counting SYN packets | |
CN107346265B (zh) | 实现QoS的方法与装置 | |
CN111506604A (zh) | 访问数据的方法、装置和计算机程序产品 | |
CN113783793A (zh) | 对时间敏感的数据帧的流量调度方法及相关设备 | |
CN113094392A (zh) | 数据缓存的方法和装置 | |
CN116708315B (zh) | 流量限速方法、装置、电子设备及存储介质 | |
CN112565829B (zh) | 网络调度方法、装置、系统及可读存储介质 | |
CN104850431A (zh) | 基于fota升级的稳定处理方法和装置 | |
CN109446111A (zh) | 存储器集成电路及其预取地址决定方法 | |
CN113744013A (zh) | 订单号的生成方法、装置、服务器及存储介质 | |
US9678881B2 (en) | Data distribution device and data distribution method | |
CN110377533B (zh) | 一种用于云计算及边缘计算的缓存置换方法及装置 | |
CN114930306A (zh) | 带宽均衡方法和装置 | |
JP5359692B2 (ja) | フレーム出力方法及びフレーム出力装置 | |
CN109246033A (zh) | 一种请求处理方法、装置、设备及可读存储介质 | |
EP3342102B1 (en) | Counter with reduced memory access | |
CN109739660A (zh) | 异常消息处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |