多核网络转发限速的方法和装置与流程

文档序号:12492608阅读:275来源:国知局
多核网络转发限速的方法和装置与流程

本公开涉及网络限速领域,具体地,涉及一种多核网络转发限速的方法和装置。



背景技术:

对于网络设备厂商而言,限速主要就是限制整体防火墙的网络转发速度。现有技术中,限速的方式主要有两种,一种是当局域网共用一个网络的时候,为了防止个别员工下载大型软件或者游戏而影响整体的网络速度;一种是限制某个接口的流量不能超过一定速度,上述两种方式是基于内部接口和ip方面的网络限速。

现有技术中的限速软件功能如下。License是软件使用范围授权,换言之,License在防火墙的限速中起的作用就是授权买家可以体验到网络真实转发性能速度最大值。对于网络设备厂商出售的防火墙设备而言,License的限速不同,其转发的吞吐性能不同。比如一个防火墙的转发性能最大为160G/s,购买了120G/s的防火墙的License的用户,其防火墙的转发最大性能仅能为120G/s,过一段时间用户觉得这种配置的防火墙性能不够用,可以升级License为160G/s的防火墙,即在硬件的性能可以达到一定的最大值的情况下,可以通过license将其真正运行时的速度限制为想要的速度。

但是限速软件的限速功能是十分耗费性能的,因为软件限速几乎都是将每个核收到报文的字节数每秒进行累加获得总流量值,这会涉及到计算每个cpu从各个接口收到的报文的总流量值。而且限速是以秒为单位,也就是说每秒转发流量值达到限速值后,要立刻停掉流量,不再进行转发。这需要在收到每个报文后都要判断每个核从各个接口的收到报文的字节总数和当前报文的字节数之和是否超过了License的限速值。

多核网络下统计不同cpu的转发报文的总流量值,会出现同一cpu访问其他cpu的转发报文的总流量值,同时还要包包计算所有核的总流量值,这是一个十分耗费性能的开销。由于该计算过程是每核操作,且多核均需要统计总流量值,这就会涉及到资源竞争的问题。如果一个高性能吞吐可以做到160G/s的多核防火墙,增加了限速功能后,很有可能转发的吞吐性能就变成了100G/s,甚至更少。

随着科技的不断发展,现在的防火墙已经是多核处理器的天下。既然是多核处理,必然涉及到资源的竞争和互斥。对于基于多核的网络转发设备,几乎所有厂商都是使用加锁的方式来避免竞争,使得限速必然会导致正常的网络转发性能大幅下降。如果这部分限速没实现好,基本上就会做到高性能处理器变为低性能处理器,其限速功能沦为只能靠硬件配置(比如cpu由4核变为2核,来实现限速由20G/s变为10G/s)来实现,无法用软件实现,极大的增加了成本。



技术实现要素:

本公开的目的是提供一种可以减少总流量值的计算量且优化性能的多核网络转发限速的方法和装置。

为了实现上述目的,根据本公开的第一方面,提供一种多核网络转发限速的方法,所述方法应用于所述多核网络中的任一核,所述方法包括:获取初始时间阈值,其中,所述初始时间阈值为初始的多核网络总流量值的检测时间点;在到达目标时间阈值时,获取所述多核网络在所述目标时间阈值内的总流量值,其中,所述目标时间阈值初始为所述初始时间阈值;在所述总流量值达到预设的所述多核网络单位时间内的最大允许流量值时,丢弃后续接收到的报文。

可选地,当所述目标时间阈值为所述初始时间阈值时,所述在到达目标时间阈值时,获取所述多核网络在所述目标时间阈值内的总流量值包括:在到达目标时间阈值时,通过硬件驱动获取所述多核网络中每个网卡在所述目标时间阈值内的流量值;对所述每个网卡在所述目标时间阈值内的流量值进行累加,获得所述多核网络在所述目标时间阈值内的总流量值。

可选地,所述方法还包括:在所述总流量值未达到所述最大允许流量值、并且所述总流量值与所述最大允许流量值之间的差值大于第一预设差值时,实时记录自所述初始时间阈值后的自身流量值;根据当前的总流量值、所述最大允许流量值、单位时间内防火墙的最大转发吞吐量、和当前的目标时间阈值,确定下一目标时间阈值;在所述下一目标时间阈值未到达时间收敛值时,重新执行所述在到达目标时间阈值时,获取所述多核网络在所述目标时间阈值内的总流量值的步骤,其中,所述时间收敛值为所述多核网络的总流量值最近N次达到所述最大允许流量值的时间点中的最小时间点,其中,N为大于或等于2的自然数。

可选地,当所述目标时间阈值不为所述初始时间阈值时,所述在到达目标时间阈值时,获取所述多核网络在所述目标时间阈值内的总流量值包括:在到达目标时间阈值时,获取所述多核网络中其他各核记录的自所述初始时间阈值后的流量值;将所记录的自身流量值、获取到的其他各核记录的流量值、以及所述多核网络在所述初始时间阈值内的总流量值进行累加,获得所述多核网络在所述目标时间阈值内的总流量值。

可选地,所述根据当前的总流量值、所述最大允许流量值、单位时间内防火墙的最大转发吞吐量、和当前的目标时间阈值,确定下一目标时间阈值,包括:

通过以下公式确定下一目标时间阈值:

Time=Time_last+1/(Real/(Max-Cur)+1)

其中,Time是所述下一目标时间阈值;

Time_last是所述当前的目标时间阈值;

Real是所述最大转发吞吐量;

Max是所述最大允许流量值;

Cur是所述当前的总流量值。

可选地,所述方法还包括:在所述总流量值未达到所述最大允许流量值且所述总流量值与所述最大允许流量值之间的差值小于或等于所述第一预设差值,或者所述下一目标时间阈值到达所述时间收敛值时,实时记录自所述初始时间阈值后的自身流量值,并实时获取所述多核网络中其他各核记录的自所述初始时间阈值后的流量值;将实时记录的自身流量值、实时获取到的其他各核记录的流量值、以及所述多核网络在所述初始时间阈值内的总流量值进行累加,获得所述多核网络的实时总流量值;在所述实时总流量值达到所述最大允许流量值时,丢弃后续接收到的报文。

可选地,所述多核网络包括配置核和同步核;

在所述方法应用于配置核时,所述获取初始时间阈值包括:

获取所述多核网络单位时间内的最大允许流量值以及单位时间内防火墙的最大转发吞吐量;

根据以下公式计算所述初始时间阈值:

Time0=1/(Real/Max+1)

其中,Real是所述最大转发吞吐量;

Max是所述最大允许流量值;

Time0是所述初始时间阈值;

在所述方法应用于同步核时,所述获取初始时间阈值包括:

从所述配置核获取所述初始时间阈值。

根据本公开的第二方面,提供一种多核网络转发限速的装置,所述装置应用于所述多核网络中的任一核,所述装置包括:第一获取模块,用于获取初始时间阈值,其中,所述初始时间阈值为初始的多核网络总流量值的检测时间点;第二获取模块,用于在到达目标时间阈值时,获取所述多核网络在所述目标时间阈值内的总流量值,其中,所述目标时间阈值初始为所述初始时间阈值;第一处理模块,用于在所述第二获取模块获取到的所述总流量值达到预设的所述多核网络单位时间内的最大允许流量值时,丢弃后续接收到的报文。

可选地,所述第二获取模块包括:第一获取子模块,用于当所述目标时间阈值为所述初始时间阈值时,在到达目标时间阈值时,通过硬件驱动获取所述多核网络中每个网卡在所述目标时间阈值内的流量值;第一累加子模块,用于对所述第一获取子模块获取到的所述每个网卡在所述目标时间阈值内的流量值进行累加,获得所述多核网络在所述目标时间阈值内的总流量值。

可选地,所述装置还包括:记录模块,用于在所述第二获取模块获取到的所述总流量值未达到所述最大允许流量值、并且所述总流量值与所述最大允许流量值之间的差值大于第一预设差值时,实时记录自所述初始时间阈值后的自身流量值;时间阈值确定模块,用于根据当前的总流量值、所述最大允许流量值、单位时间内防火墙的最大转发吞吐量、和当前的目标时间阈值,确定下一目标时间阈值;在所述下一目标时间阈值未到达时间收敛值时,重新触发所述第二获取模块在到达目标时间阈值时,获取所述多核网络在所述目标时间阈值内的总流量值,其中,所述时间收敛值为所述多核网络的总流量值最近N次达到所述最大允许流量值的时间点中的最小时间点,其中,N为大于或等于2的自然数。

可选地,当所述目标时间阈值不为所述初始时间阈值时,所述第二获取模块包括:第二获取子模块,用于当所述目标时间阈值不为所述初始时间阈值时,在到达目标时间阈值时,获取所述多核网络中其他各核记录的自所述初始时间阈值后的流量值;第二累加子模块,用于将所述记录模块所记录的自身流量值、所述第二获取子模块获取到的其他各核记录的流量值、以及所述多核网络在所述初始时间阈值内的总流量值进行累加,获得所述多核网络在所述目标时间阈值内的总流量值。

可选地,所述时间阈值确定模块用于通过以下公式确定所述下一目标时间阈值:

Time=Time_last+1/(Real/(Max-Cur)+1)

其中,Time是所述下一目标时间阈值;Time_last是所述当前的目标时间阈值;Real是所述最大转发吞吐量;Max是所述最大允许流量值;Cur是所述当前的总流量值。

可选地,所述装置还包括:第三获取模块,用于在所述第二获取模块获取到的所述总流量值未达到所述最大允许流量值且所述总流量值与所述最大允许流量值之间的差值小于或等于所述第一预设差值,或者所述时间阈值确定模块所确定的所述下一目标时间阈值到达所述时间收敛值时,实时记录自所述初始时间阈值后的自身流量值,并实时获取所述多核网络中其他各核记录的自所述初始时间阈值后的流量值;多核累加模块,用于将所述第三获取模块实时记录的自身流量值、所述第三获取模块实时获取到的其他各核记录的流量值、以及所述多核网络在所述初始时间阈值内的总流量值进行累加,获得所述多核网络的实时总流量值;第二处理模块,用于在所述多核累加模块获得的所述实时总流量值达到所述最大允许流量值时,丢弃后续接收到的报文。

可选地,所述多核网络包括配置核和同步核;

在所述装置应用于配置核时,所述第一获取模块用于获取所述多核网络单位时间内的最大允许流量值以及单位时间内防火墙的最大转发吞吐量,并根据以下公式计算所述初始时间阈值:

Time0=1/(Real/Max+1)

其中,Real是所述最大转发吞吐量;

Max是所述最大允许流量值;

Time0是所述初始时间阈值;

在所述装置应用于同步核时,所述第一获取模块用于从所述配置核获取所述初始时间阈值。

通过上述技术方案,在到达目标时间阈值时,获取多核网络在该目标时间阈值内的总流量值,对于网络转发流量值的计算非包包进行统计总流量值,而是基于时间点进行统计,由此,可以降低多核下统计功能对性能的影响。由此,上述方案可以最大化减少软件计算量,降低计算的开销,从而降低网络转发限速的性能开销。

本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:

图1是多核网络的示意图;

图2是根据本公开的一种实施方式提供的多核网络转发限速的方法的流程图;

图3是根据本公开的另一种实施方式提供的多核网络转发限速的方法的流程图;

图4是根据本公开的一种实施方式提供的多核网络转发限速的装置的框图;

图5是根据本公开的另一种实施方式提供的多核网络转发限速的装置的框图。

具体实施方式

以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。

根据本公开的第一方面,提供一种多核网络转发限速的方法。该多核网络包括配置核和同步核。图1所示,为多核网络的示意图。如图1所示,在该多核网络中,配置核只有一个,为所有同步核中的第一个同步核,主要负责初始时间阈值的初始化配置和多核网络的总流量值最近N次达到多核网络单位时间内的最大允许流量值Max的时间点中的最小时间点的统计更新。在本公开中,当提及总流量值达到最大允许流量值时,是指总流量值大于或等于该最大允许流量值。反之,当提及总流量值未达到最大允许流量值时,是指总流量值小于该最大允许流量值。

同步核为参与转发的所有核,主要功能是在单位时间内(通常为1s)的实时总流量值达到该最大允许流量值Max时,停止每个同步核的流量转发。其中,多核网络单位时间内的最大允许流量值Max为License软件授权用户可以体验到的多核网络实际在单位时间内的最大转发吞吐量。例如,以背景技术所举示例为例,假设License软件授权用户可以体验到的网络实际转发性能速度最大值为120G/s,并且以1s为单位时间,则有:Max=120G。

在多核网络转发系统中,每个网卡都有多个发送队列和接收队列,网卡与各个核建立的是全连接的队列关系,每个核既可以从所有网卡接收数据包,也可以向所有网卡发送数据包。

图2所示,为根据本公开的一种实施方式提供的多核网络转发限速的方法的流程图。如图2所示,所述方法应用于所述多核网络中的任一核,该方法包括:

在步骤S21中,获取初始时间阈值,其中,所述初始时间阈值为初始的多核网络总流量值的检测时间点。

如上所述,所述多核网络可以包括配置核和同步核。在所述方法应用于配置核时,所述获取初始时间阈值包括:

获取多核网络单位时间内的最大允许流量值Max以及单位时间内防火墙的最大转发吞吐量Real。以背景技术所举示例为例,假设防火墙的最大转发速度为160G/s,并且以1s为单位时间,则有:单位时间内防火墙的最大转发吞吐量Real=160G。

在获得最大允许流量值Max和最大转发吞吐量Real之后,根据以下公式计算初始时间阈值:

Time0=1/(Real/Max+1)

其中,Real是所述最大转发吞吐量;Max是所述最大允许流量值;Time0是所述初始时间阈值。

在所述方法应用于同步核时,所述获取初始时间阈值包括:从所述配置核获取所述初始时间阈值。

假设Real=160G,Max=120G,则根据以上公式,可以计算出Time0=0.43s,该时间点即为初始的多核网络总流量值的检测时间点。

在步骤S22中,在到达目标时间阈值时,获取多核网络在目标时间阈值内的总流量值,其中,所述目标时间阈值初始为所述初始时间阈值Time0。

当目标时间阈值为初始时间阈值Time0时,所述在到达目标时间阈值时,获取所述多核网络在所述目标时间阈值内的总流量值包括:在到达目标时间阈值时,通过硬件驱动获取所述多核网络中每个网卡在所述目标时间阈值内的流量值;对所述每个网卡在所述目标时间阈值内的流量值进行累加,获得所述多核网络在所述目标时间阈值内的总流量值。

示例地,所述每个网卡在所述目标时间阈值内的流量值的累加值Sum(即,多核网络在初始时间阈值内的总流量值)的计算方式为:

其中,Sumi表示第i个网卡在所述目标时间阈值内的流量值;L表示网卡总数。

使用驱动接口获取硬件网卡的收发吞吐来统计多核网络转发的总流量值,同每个核与每个网卡交互的所有报文都要做累加操作的软件计算相比,极大的减少了计算量。

需要说明的是,在本公开中,通过硬件驱动获得各网卡在目标时间阈值内的流量值,并对各网卡在该目标时间阈值内的流量值进行累加这样的方式,得到多核网络在目标时间阈值内的总流量值,仅限于在目标时间阈值为初始时间阈值Time0的情况。例如,假设Time0=0.43s,则在到达0.43s时,通过硬件驱动获取各网卡在从0s~0.43s期间的流量值,并进行累加操作,以获得多核网络在0s~0.43s期间的总流量值。

在步骤S23中,在所述总流量值达到预设的所述多核网络单位时间内的最大允许流量值(即,上述的Max)时,丢弃后续接收到的报文。示例地,在该总流量值达到最大允许流量值Max时,记录当前时间,并将当前时间之后到1s结束时的报文直接丢弃。

通过上述技术方案,在到达目标时间阈值时,获取多核网络在该目标时间阈值内的总流量值,对于网络转发流量值的计算非包包进行统计总流量值,而是基于时间点进行统计,由此,可以降低多核下统计功能对性能的影响。由此,上述方案可以最大化减少软件计算量,降低计算的开销,从而降低网络转发限速的性能开销。

图3所示,为根据本公开的另一种实施方式提供的多核网络转发限速的方法的流程图。如图3所示,在图2的基础上,该方法还可以包括:

在步骤S31中,判断所述总流量值是否小于最大允许流量值,在总流量值小于最大允许流量值时,转入步骤S32,否则,在总流量值不小于最大允许流量值时,转入步骤S23。

在步骤S32中,在总流量值与最大允许流量值之间的差值大于第一预设差值时,实时记录自所述初始时间阈值后的自身流量值。其中,该第一预设差值可以为用户按需设定的差值,或者为默认的经验值。当总流量值与最大允许流量值之间的差值大于第一预设差值时,表示多核网络当前时间段内的已转发的总流量值与最大允许流量值之间还存在一定的差距,此时还可以计算下一个目标时间阈值以获取在到达下一目标时间阈值时的总流量值。假设Real=160G,Max=120G,第一预设差值为40G,且通过硬件驱动获取到的各网卡在0s~0.43s期间的流量值的累加值为40G,此时,多核网络的总流量值与最大允许流量值Max之间的差值为80G,大于第一预设差值40G,因此,从0.43s开始,各同步核开始实时记录自初始时间阈值Time0后的自身流量值。

在步骤S33中,根据当前的总流量值、所述最大允许流量值、单位时间内防火墙的最大转发吞吐量、和当前的目标时间阈值,确定下一目标时间阈值。

其中,根据当前的总流量值、所述最大允许流量值、单位时间内防火墙的最大转发吞吐量、和当前的目标时间阈值,确定下一目标时间阈值,包括:通过以下公式确定下一目标时间阈值:

Time=Time_last+1/(Real/(Max-Cur)+1)

其中,Time是所述下一目标时间阈值;Time_last是所述当前的目标时间阈值;Real是所述最大转发吞吐量;Max是所述最大允许流量值;Cur是所述当前的总流量值。

示例地,假设Real=160G,Max=120G,在到达初始时间阈值0.43s时,通过硬件驱动获取到的各网卡在0s~0.43s期间的流量值的累加值为40G,即Cur=40G,Time_last=Time0=0.43s,则根据以上公式,可以计算出Time=0.76s,该时间点即为下一目标时间阈值,也就是,下一个多核网络总流量值的检测时间点。

在步骤S34中,判断下一目标时间阈值是否到达时间收敛值。在本公开中,当提及下一目标时间阈值到达时间收敛值时,是指该下一目标时间阈值大于或等于该时间收敛值。反之,当提及下一目标时间阈值未到达时间收敛值时,是指该下一目标时间阈值小于该时间收敛值。在下一目标时间阈值未到达时间收敛值时,转入步骤S22,继续执行在到达目标时间阈值时,获取所述多核网络在所述目标时间阈值内的总流量值的步骤以及后续的步骤,其中,所述时间收敛值为所述多核网络的总流量值最近N次达到所述最大允许流量值的时间点中的最小时间点,其中,N为大于或等于2的自然数。

示例地,N被设置为60,则时间收敛值为多核网络的总流量值最近60次达到所述最大允许流量值的时间点中的最小时间点。例如,假设该时间收敛值为0.8s,由于计算得出的下一目标时间阈值为0.76s,尚未到达该时间收敛值0.8s,因此,在0.43s~0.76s内,各同步核要实时记录自身的流量值。

通过上述技术方案,根据第一预设差值判断是否要计算下一目标时间阈值,并以本秒内实际总流量值为基准计算下一目标时间阈值,可以提高目标时间阈值的计算的实时性和准确性。同时通过比较下一目标时间阈值与最近N次达到最大允许流量值的最小时间点的大小,可以将相近数秒的时间内达到最大允许流量值的时间点作为参考点,使得时间阈值的选取不仅仅是靠理论计算,还与实际网络状况相结合,增加了计算限速转发网络总流量值的准确性。

可选地,当所述目标时间阈值不为所述初始时间阈值时,所述在到达目标时间阈值时,获取所述多核网络在所述目标时间阈值内的总流量值包括:在到达目标时间阈值时,获取所述多核网络中其他各核记录的自所述初始时间阈值后的流量值;将所记录的自身流量值、获取到的其他各核记录的流量值、以及所述多核网络在所述初始时间阈值内的总流量值进行累加,获得所述多核网络在所述目标时间阈值内的总流量值。

示例地,在到达初始时间阈值Time0之后,每核开始记录自身流量值。在当前时间为初始时间阈值Time0之后且尚未到达下一目标时间阈值时,每核实时记录自身流量值,其中,每核所记录的是从初始时间阈值Time0起自身的流量值。假设多核网络包括同步核cpu1、cpu2和cpu3,同步核cpu1计算自身的流量值Sumcpu1,同步核cpu2、cpu3只能读取Sumcpu1,不能更改;同步核cpu2计算自身的流量值Sumcpu2,同步核cpu1、cpu3只能读取Sumcpu2,不能更改;同步核cpu3计算自身的流量值Sumcpu3,同步核cpu1、cpu2只能读取Sumcpu3,不能更改。在同步核cpu1接收到数据包时,同步核cpu1更新自身的流量值Sumcpu1,即用当前自身的流量值与转发的数据包的流量值之和作为新的自身流量值赋值。例如,假设同步核cpu1接收到数据包p1,该数据包p1的字节数为pkt,则有:

Sumcpu1=Sumcpu1+pkt

以上述示例为例,在0.43s~0.76s内,各同步核要实时记录自身的流量值,直到到达0.76s时,以同步核cpu1为例,其获取其他各核记录的流量值,即,Sumcpu2和Sumcpu3,并与自身记录的流量值Sumcpu1进行累加,可以得到多核网络在自初始时间阈值Time0到本次目标时间阈值期间的总流量值。之后,再与多核网络在初始时间阈值Time0内的总流量值Sum进行求和操作,获得多核网络在本次目标时间阈值内的总流量值。示例地,可以通过以下公式来计算多核网络在本次目标时间阈值内的总流量值,即,当前的总流量值Cur:

其中,Sumcpui表示第i个同步核记录的、在自初始时间阈值Time0至本次目标时间阈值期间的流量值;M表示多核网络中的同步核总数。

可选地,该方法还可以包括:

在所述总流量值未达到所述最大允许流量值且所述总流量值与所述最大允许流量值之间的差值小于或等于所述第一预设差值,或者所述下一目标时间阈值到达所述时间收敛值时,实时记录自所述初始时间阈值后的自身流量值,并实时获取所述多核网络中其他各核记录的自所述初始时间阈值后的流量值;

将实时记录的自身流量值、实时获取到的其他各核记录的流量值、以及所述多核网络在所述初始时间阈值内的总流量值进行累加,获得所述多核网络的实时总流量值;

在所述实时总流量值达到最大允许流量值时,丢弃后续接收到的报文。

在该实施例中,当总流量值与最大允许流量值之间的差值小于或等于第一预设差值,表示当前网络已转发的流量已经比较接近最大允许流量值,需要实时监测网络的转发流量;或者,在下一目标时间阈值到达时间收敛值时,表示在下一目标时间阈值内,该网络转发的总流量值可能会达到该最大允许流量值,需要实时监测网络的转发流量。

示例的,假设在0s~0.76s内,多核网络的总流量值Cur=75G,此时总流量值Cur与最大允许流量值Max之间的差值为45G,大于第一预设差值40G,根据上述计算下一目标时间阈值的公式,计算得出下一目标时间阈值为0.97s、大于时间收敛值0.8s。此时,从0.76s时刻开始,每个同步核在接收到数据包时,都要实时更新自身流量值,且在接收到数据包实时获取其他同步核的流量值。将实时记录的自身流量值、实时获取到的其他各核记录的流量值、以及多核网络在初始时间阈值Time0内的总流量值Sum进行累加,可以获得多核网络的实时总流量值。在该实时总流量值达到最大允许流量值时,丢弃后续接收到的报文。

通过上述技术方案,在网络当前已转发的总流量值已经比较接近最大允许流量值或者是下一目标时间阈值大于时间收敛值时,对网络转发的流量进行包包统计。由于在该统计过程中,每核只累加自身的总流量值,不涉及到更改其他同步核的总流量值,几乎无竞争资源,可以降低性能的消耗。同时通过分段执行不同的流量统计方法,更加准确地在达到最大允许流量值时停止流量,实现高精度的限速设置,使得多核网络转发限速的总流量值的统计更加准确,优化限速的性能。

本公开中,在最大允许流量值Max小于单位时间内防火墙的最大转发吞吐量Real时,执行本公开提供的上述多核网络转发限速的方法。否则,在最大允许流量值Max大于或等于单位时间内防火墙的最大转发吞吐量Real时,同步核和配置核每秒无需计算统计点,在配置核初始化的过程中就将同步核中的软件调用限速函数的布尔变量设为false,从而设置同步核不进行限速计算,整体限速性能开销为零。

对于大多数情况,如果多核网络的单位时间内的最大允许流量值Max大于或等于单位时间内防火墙的最大转发吞吐量Real时,在进行网络转发时,限速功能对防火墙的吞吐等性能无任何影响。在此种情况下,可以大大减少统计每核总流量的计算量,同时可以简化限速的流程。

根据本公开的第二方面,提供一种多核网络转发限速的装置。图4所示,为根据本公开的一种实施方式提供的多核网络转发限速的装置的框图。如图4所示,该装置应用于所述多核网络中的任一核,该装置10包括:

第一获取模块101,用于获取初始时间阈值,其中,所述初始时间阈值为初始的多核网络总流量值的检测时间点;

第二获取模块102,用于在到达目标时间阈值时,获取所述多核网络在所述目标时间阈值内的总流量值,其中,所述目标时间阈值初始为所述初始时间阈值;

第一处理模块103,用于在所述第二获取模块102获取到的所述总流量值达到预设的所述多核网络单位时间内的最大允许流量值时,丢弃后续接收到的报文。

可选地,所述第二获取模块102包括:

第一获取子模块,用于当所述目标时间阈值为所述初始时间阈值时,在到达目标时间阈值时,通过硬件驱动获取所述多核网络中每个网卡在所述目标时间阈值内的流量值;

第一累加子模块,用于对所述第一获取子模块获取到的所述每个网卡在所述目标时间阈值内的流量值进行累加,获得所述多核网络在所述目标时间阈值内的总流量值。

图5所示,为根据本公开的另一种实施方式提供的多核网络转发限速的装置的框图。如图5所示,在图4的基础上,该装置10还可以包括:

记录模块201,用于在所述第二获取模块102获取到的所述总流量值未达到所述最大允许流量值、并且所述总流量值与所述最大允许流量值之间的差值大于第一预设差值时,实时记录自所述初始时间阈值后的自身流量值;

时间阈值确定模块202,用于根据当前的总流量值、所述最大允许流量值、单位时间内防火墙的最大转发吞吐量、和当前的目标时间阈值,确定下一目标时间阈值;在所述下一目标时间阈值未到达时间收敛值时,重新触发所述第二获取模块102在到达目标时间阈值时,获取所述多核网络在所述目标时间阈值内的总流量值,其中,所述时间收敛值为所述多核网络的总流量值最近N次达到所述最大允许流量值的时间点中的最小时间点,其中,N为大于或等于2的自然数。

可选地,所述第二获取模块102包括:

第二获取子模块,用于当所述目标时间阈值不为所述初始时间阈值时,在到达目标时间阈值时,获取所述多核网络中其他各核记录的自所述初始时间阈值后的流量值;

第二累加子模块,用于将所述记录模块201所记录的自身流量值、所述第二获取子模块获取到的其他各核记录的流量值、以及所述多核网络在所述初始时间阈值内的总流量值进行累加,获得所述多核网络在所述目标时间阈值内的总流量值。

可选地,所述时间阈值确定模块202用于通过以下公式确定所述下一目标时间阈值:

Time=Time_last+1/(Real/(Max-Cur)+1)

其中,Time是所述下一目标时间阈值;

Time_last是所述当前的目标时间阈值;

Real是所述最大转发吞吐量;

Max是所述最大允许流量值;

Cur是所述当前的总流量值。

可选地,该装置10还可以包括:

第三获取模块,用于在所述第二获取模块102获取到的所述总流量值未达到所述最大允许流量值且所述总流量值与所述最大允许流量值之间的差值小于或等于所述第一预设差值,或者所述时间阈值确定模块202所确定的所述下一目标时间阈值到达所述时间收敛值时,实时记录自所述初始时间阈值后的自身流量值,并实时获取所述多核网络中其他各核记录的自所述初始时间阈值后的流量值;

多核累加模块,用于将所述第三获取模块实时记录的自身流量值、所述第三获取模块实时获取到的其他各核记录的流量值、以及所述多核网络在所述初始时间阈值内的总流量值进行累加,获得所述多核网络的实时总流量值;

第二处理模块,用于在所述多核累加模块获得的所述实时总流量值达到所述最大允许流量值时,丢弃后续接收到的报文。

可选地,该多核网络包括配置核和同步核;

在所述装置10应用于配置核时,所述第一获取模块101用于获取所述多核网络单位时间内的最大允许流量值以及单位时间内防火墙的最大转发吞吐量,并根据以下公式计算所述初始时间阈值:

Time0=1/(Real/Max+1)

其中,Real是所述最大转发吞吐量;

Max是所述最大允许流量值;

Time0是所述初始时间阈值;

在所述装置10应用于同步核时,所述第一获取模块101用于从所述配置核获取所述初始时间阈值。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。

此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1