多核网络转发限速的方法和装置制造方法及图纸

技术编号:15519183 阅读:251 留言:0更新日期:2017-06-04 09:07
本公开涉及一种多核网络转发限速的方法和装置,所述方法应用于所述多核网络中的任一核,所述方法包括:获取初始时间阈值;在到达目标时间阈值时,获取多核网络在所述目标时间阈值内的总流量值,其中,所述目标时间阈值初始为所述初始时间阈值;在总流量值达到预设的所述多核网络单位时间内的最大允许流量值时,丢弃后续接收到的报文。通过上述技术方案,在到达目标时间阈值时,获取多核网络在该目标时间阈值内的总流量值,对于网络转发流量值的计算非包包进行统计总流量值,而是基于时间点进行统计,由此,可以降低多核下统计功能对性能的影响。由此,上述方案可以最大化减少软件计算量,降低计算的开销,从而降低网络转发限速的性能开销。

【技术实现步骤摘要】
多核网络转发限速的方法和装置
本公开涉及网络限速领域,具体地,涉及一种多核网络转发限速的方法和装置。
技术介绍
对于网络设备厂商而言,限速主要就是限制整体防火墙的网络转发速度。现有技术中,限速的方式主要有两种,一种是当局域网共用一个网络的时候,为了防止个别员工下载大型软件或者游戏而影响整体的网络速度;一种是限制某个接口的流量不能超过一定速度,上述两种方式是基于内部接口和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是所述初始时间阈值;在所述方法应用于同步核时,所述获取初始时间阈值包括:从所述配置核获取所述初始时间阈值。根据本公开的第二方面,提供一种多核网络转发限速的装置,所述装置应用于所述多核网络中的任一核,所述装置包括:第一获取模块,用于获取初始时间阈值,其中,所述初始时间阈值为初始的多核网络总流量值的检测时间点;第二获取模块,用于在到达目标时间阈值时,获取所述多核网络在所述目标时间阈值内的总流量值,其中,所述目标时间阈值初始为所述初始时间阈值;第一处理模块,用于在所述第二获取模块获取到的所述总流量值达到预设的所述多核网络单位时间内的最大允许流量值时,丢弃后续接收到的报文。可选地,所述第二获取模块包括:第一获取子模块,用于当所述目标时间阈值为所述初始时间阈值时,在到达目标时间阈值时,通过硬件驱动获取所述多核网络中每个网卡在所述目标时间阈值内的流量值;第一累加子模块,用于对所述第一获取子模块获取到的所述每个网卡在所述目标时间阈值内的流量值进行累加,获得所述多核网络在所述目标时间阈值内的总流量值。可本文档来自技高网
...
多核网络转发限速的方法和装置

【技术保护点】
一种多核网络转发限速的方法,其特征在于,所述方法应用于所述多核网络中的任一核,所述方法包括:获取初始时间阈值,其中,所述初始时间阈值为初始的多核网络总流量值的检测时间点;在到达目标时间阈值时,获取所述多核网络在所述目标时间阈值内的总流量值,其中,所述目标时间阈值初始为所述初始时间阈值;在所述总流量值达到预设的所述多核网络单位时间内的最大允许流量值时,丢弃后续接收到的报文。

【技术特征摘要】
1.一种多核网络转发限速的方法,其特征在于,所述方法应用于所述多核网络中的任一核,所述方法包括:获取初始时间阈值,其中,所述初始时间阈值为初始的多核网络总流量值的检测时间点;在到达目标时间阈值时,获取所述多核网络在所述目标时间阈值内的总流量值,其中,所述目标时间阈值初始为所述初始时间阈值;在所述总流量值达到预设的所述多核网络单位时间内的最大允许流量值时,丢弃后续接收到的报文。2.根据权利要求1所述的方法,其特征在于,当所述目标时间阈值为所述初始时间阈值时,所述在到达目标时间阈值时,获取所述多核网络在所述目标时间阈值内的总流量值包括:在到达目标时间阈值时,通过硬件驱动获取所述多核网络中每个网卡在所述目标时间阈值内的流量值;对所述每个网卡在所述目标时间阈值内的流量值进行累加,获得所述多核网络在所述目标时间阈值内的总流量值。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:在所述总流量值未达到所述最大允许流量值、并且所述总流量值与所述最大允许流量值之间的差值大于第一预设差值时,实时记录自所述初始时间阈值后的自身流量值;根据当前的总流量值、所述最大允许流量值、单位时间内防火墙的最大转发吞吐量、和当前的目标时间阈值,确定下一目标时间阈值;在所述下一目标时间阈值未到达时间收敛值时,重新执行所述在到达目标时间阈值时,获取所述多核网络在所述目标时间阈值内的总流量值的步骤,其中,所述时间收敛值为所述多核网络的总流量值最近N次达到所述最大允许流量值的时间点中的最小时间点,其中,N为大于或等于2的自然数。4.根据权利要求3所述的方法,其特征在于,当所述目标时间阈值不为所述初始时间阈值时,所述在到达目标时间阈值时,获取所述多核网络在所述目标时间阈值内的总流量值包括:在到达目标时间阈值时,获取所述多核网络中其他各核记录的自所述初始时间阈值后的流量值;将所记录的自身流量值、获取到的其他各核记录的流量值、以及所述多核网络在所述初始时间阈值内的总流量值进行累加,获得所述多核网络在所述目标时间阈值内的总流量值。5.根据权利要求3所述的方法,其特征在于,所述根据当前的总流量值、所述最大允许流量值、单位时间内防火墙的最大转发吞吐量、和当前的目标时间阈值,确定下一目标时间阈值,包括:通过以下公式确定下一目标时间阈值:Time=Time_last+1/(Real/(Max-Cur)+1)其中,Time是所述下一目标时间阈值;Time_last是所述当前的目标时间阈值;Real是所述最大转发吞吐量;Max是所述最大允许流量值;Cur是所述当前的总流量值。6.根据权利要求3所述的方法,其特征在于,所述方法还包括:在所述总流量值未达到所述最大允许流量值且所述总流量值与所述最大允许流量值之间的差值小于或等于所述第一预...

【专利技术属性】
技术研发人员:刘健男党丽娜
申请(专利权)人:东软集团股份有限公司
类型:发明
国别省市:辽宁,21

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

1