一种基于硬件计数器的流量控制方法技术

技术编号:28948114 阅读:21 留言:0更新日期:2021-06-18 22:05
本申请公开了一种基于硬件计数器的流量控制方法,提取报文的流ID;获取与流ID关联的计数器ID;获取与流ID对应的报文帧长;在硬件计数器的缓存中查询计数器ID;若查询未命中,从计数器ID对应的内存空间中加载报文至缓存;若查询命中,进入下一步;根据配置信息及报文帧长,计算缓存中的报文的流状态;根据流状态,处理报文。本申请提供的流量控制方法,无需片上流量管理模块来管控流量,而采用内存作为数据的存储空间,硬件计数器缓存作为数据处理空间,克服片上资源相对紧缺,能保存的数据有限,导致能同时管理的流的数量有限的缺陷,解决了大规模流量下控制数据的存储和处理问题,实现了大规模流量下对每条流的精准控制。

【技术实现步骤摘要】
一种基于硬件计数器的流量控制方法
本专利技术涉及网络流量管控领域,特别是涉及一种基于硬件计数器的流量控制方法。
技术介绍
随着现代网络技术的不断发展,网络的应用已经深入到方方面面,网络流量的增长不只是速率的提升,还有终端和应用数量的提升,尤其是后者,导致网络流量控制的服务场景中识别到的流的数量大增,从而对流量控制的规模提出了新的要求。在网络流量控制的服务场景中,目前一般采用片上流量管理模块来实现对流量的管控。但是由于片上资源相对紧缺,能保存的数据有限,导致能同时管理的流的数量有限,无法实现在大规模流量场景或条件下,对每条流的精准控制,也就无法完全适应现代网络流的数量与日俱增的情况。因此,提供一种能够实现在大规模流量场景或条件下对每条流的精准控制的流量控制方法,是本领域技术人员函待解决的问题。
技术实现思路
本专利技术的目的是提供了一种基于硬件计数器的流量控制方法,能够实现在大规模流量场景或条件下对每条流的精准控制,克服片上资源相对紧缺,能保存的数据有限,导致能同时管理的流的数量有限的缺陷,解决了大规模流量下控制数据的存储和处理问题。本专利技术提供一种基于硬件计数器的流量控制方法,包括如下步骤:提取报文的所述流ID;获取与所述流ID关联的计数器ID;获取与所述流ID对应的报文帧长;在硬件计数器的缓存中查询所述计数器ID;若查询未命中,从所述计数器ID对应的内存空间中加载所述报文至所述缓存;若查询命中,进入下一步;根据配置信息及所述报文帧长,计算所述缓存中的所述报文的流状态;根据所述流状态,处理所述报文。优选的,在所述提取报文的所述流ID之前,还包括:将所述计数器ID与所述内存空间相关联;将所述流ID与所述计数器ID相关联。优选的,在所述将所述计数器ID与所述内存空间相关联之前,还包括:根据流量规模和所述硬件计数器的数据长度,申请并清零相应内存容量的所述内存空间;将所述内存空间的起始地址和所述内存容量发送给所述硬件计数器。优选的,在将所述计数器ID与所述内存空间相关联之后,还包括:发送配置信息至所述硬件计数器,所述配置信息包括配置ID和流控算法。优选的,所述根据所述流状态,处理所述报文,具体为:根据所述流状态和所述流控算法,获取检查结果;若所述检查结果为通过,则将所述报文输出;若所述检查结果为未通过,则将所述报文丢弃。优选的,在所述将所述流ID与所述计数器ID相关联之后,还包括:初始化所述计数器ID对应的所述内存空间。具体为:设置所述内存空间的初始信息,所述初始信息包括所述配置ID、生效时间戳、计数器有效标志位及令牌数。优选的,在所述从所述计数器ID对应的内存空间中加载所述报文至所述缓存之后,还包括:根据所述报文对应的所述生效时间戳和所述缓存中的所述生效时间戳,获取时间戳差值;若所述时间戳差值超过令牌更新时间,根据所述配置ID和所述时间戳差值,获取当前的所述令牌数;根据当前的所述令牌数,更新所述报文中的所述令牌数和所述生效时间戳。优选的,在所述根据配置信息及所述报文帧长,计算所述缓存中的所述报文的流状态之后,还包括:根据所述配置ID和所述时间戳差值,更新所述缓存中的所述令牌数和所述生效时间戳。优选的,所述硬件计数器中设置有更新周期,所述缓存中的所述令牌数和所述生效时间戳依据所述更新周期定时更新。本专利技术提供的流量控制方法基于硬件计数器,通过将数据保存在内存中,查询报文的流ID在硬件计数器缓存中的命中与否,若未命中则从计数器ID对应的内存空间中加载报文至缓存,计算缓存中报文的流状态,再根据流状态对报文进行相应的处理。由于无需片上流量管理模块来管控流量,而采用内存作为数据的存储空间,硬件计数器缓存作为数据处理空间,克服片上资源相对紧缺,能保存的数据有限,导致能同时管理的流的数量有限的缺陷,解决了大规模流量下控制数据的存储和处理问题,实现了大规模流量下对每条流的精准控制。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术提供的流量控制方法的一个实施例的流程示意图;图2为本专利技术提供的流量控制方法的另一个实施例的流程示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。另外,本专利技术各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本专利技术要求的保护范围之内。请参考图1,本专利技术实施例提供本专利技术提供一种基于硬件计数器的流量控制方法,包括如下步骤:S101.提取报文的流ID;S102.获取与流ID关联的计数器ID;S103.获取与流ID对应的报文帧长;S104.在硬件计数器的缓存中查询计数器ID;S105.若查询未命中,从计数器ID对应的内存空间中加载报文至缓存;若查询命中,进入下一步;S106.根据配置信息及报文帧长,计算缓存中的报文的流状态;S107.根据流状态,处理报文。硬件计数器由专门硬件电路作成的,一般设置在SOC芯片里,而其相对的软件计数器是PLC内部的普通计数器,是利用计数脉冲的上升沿或者下降沿变化时发生中断,由CPU进行判断加减,计数频率不能太高,来完成一般的计数任务,由于脱离了CPU,因此硬件计数器的计数频率高,且无需依赖CPU即可完成计数任务。在实际运行中,接收到报文后,执行步骤S101即提取报文中的流ID,而步骤S102和步骤S103可以是同时进行,也可以是无序的先后进行,即获取与流ID关联的计数器ID及与流ID对应的报文帧长,并将与之关联的计数器ID传递给硬件计数器后,执行步骤S104即在硬件计数器缓冲中查询是否有此计数器ID,如果未命中,则执行步骤S105即加载计数器ID关联的内存空间的报文数据到缓存中后,进入步骤S106,如果命中则直接进入步骤S106,而步骤S106即根据配置信息和报文帧长,计算此时在缓存中报文的流状态后,则执行步骤S107即在接收到流状态结果后,依据流状态决策报文丢弃与否,以此来实现流量的控制。而相对的,运行上述方法的控制装置,包括报文处理模块、硬件计数器模块,其中报文处理模块执行报文收发以及流控查询的任务,其中包本文档来自技高网...

【技术保护点】
1.一种基于硬件计数器的流量控制方法,其特征在于,包括如下步骤:/n提取报文的流ID;/n获取与所述流ID关联的计数器ID;/n获取与所述流ID对应的报文帧长;/n在硬件计数器的缓存中查询所述计数器ID;/n若查询未命中,从所述计数器ID对应的内存空间中加载所述报文至所述缓存;/n若查询命中,进入下一步;/n根据配置信息及所述报文帧长,计算所述缓存中的所述报文的流状态;/n根据所述流状态,处理所述报文。/n

【技术特征摘要】
1.一种基于硬件计数器的流量控制方法,其特征在于,包括如下步骤:
提取报文的流ID;
获取与所述流ID关联的计数器ID;
获取与所述流ID对应的报文帧长;
在硬件计数器的缓存中查询所述计数器ID;
若查询未命中,从所述计数器ID对应的内存空间中加载所述报文至所述缓存;
若查询命中,进入下一步;
根据配置信息及所述报文帧长,计算所述缓存中的所述报文的流状态;
根据所述流状态,处理所述报文。


2.根据权利要求1所述的流量控制方法,其特征在于,在所述提取报文的所述流ID之前,还包括:
将所述计数器ID与所述内存空间相关联;
将所述流ID与所述计数器ID相关联。


3.根据权利要求2所述的流量控制方法,其特征在于,在所述将所述计数器ID与所述内存空间相关联之前,还包括:
根据流量规模和所述硬件计数器的数据长度,申请并清零相应内存容量的所述内存空间;
将所述内存空间的起始地址和所述内存容量发送给所述硬件计数器。


4.根据权利要求2所述的流量控制方法,其特征在于,在将所述计数器ID与所述内存空间相关联之后,还包括:
发送配置信息至所述硬件计数器,所述配置信息包括配置ID和流控算法。


5.根据权利要求4所述的流量控制方法,其特征在于,所述根据所述流状态,处理所述报文,具体...

【专利技术属性】
技术研发人员:胡都欢陈一骄唐靖飚李权李先平刘湘曾彪陈信龙童云龙王文果张晓哲屈晓阳黄高平
申请(专利权)人:湖南戎腾网络科技有限公司
类型:发明
国别省市:湖南;43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1