一种基于VPP的快速策略匹配方法组成比例

技术编号:37717180 阅读:16 留言:0更新日期:2023-06-02 00:13
本发明专利技术公开了一种基于VPP的快速策略匹配方法,将输入的多元组策略数据进行处理,将策略优先级和对应的策略唯一化,进行策略查找,首先通过HASH算法进行查找,若查找成功,则返回优先级,否则利用二分查找法进行查找,若查找成功,则统计N元组命中计数,产生HASH匹配表,且根据命中计数排序生成命中数量较高的M个HASH匹配表,以实现确定高速流的数据流,命中计数表根据设置的时间进行更新,最后返回优先级,当下次数据流来时,使用HASH算法进行查找。本发明专利技术将时间复杂度从O(log2N)降到O(1),从而达到多元范围的优先级策略快速匹配,有效提高了VPP的转发效率。提高了VPP的转发效率。提高了VPP的转发效率。

【技术实现步骤摘要】
一种基于VPP的快速策略匹配方法


[0001]本专利技术属于计算机网络
,具体涉及一种基于VPP的快速策略匹配方法。

技术介绍

[0002]现在防火墙在多个功能,比如ACL,QOS,NAT,用户认证,黑白名单等多个功能都会用到策略匹配。同时,策略匹配是用户配置,在各个功能模块之间优先级或策略不尽相同,这样,同一条数据则需要连续多次去匹配策略。如果策略匹配功能不够快,则会影响整个系统的转发效率。常规的有优先级的策略匹配功能,都是按照从上到下的高低优先级的顺序进行策略匹配,在数量较少时不明显,当策略数量超过一定阀值时,将会导致整个数据转发过程变慢。所以需要一种更高效的策略匹配方法来满足此需求。
[0003]VPP本身是一个高效的流转发框架,不希望增加的这些匹配策略明显降低它的转发性能。众所周知,可以根据时间复杂度来度量哪个算法查找最快,O(1)即HASH算法是最快的,但我们知道,HASH不能用于范围查找。二分查找在查找方法里是一种简单快速的方法,时间复杂度为O(log2N)。其次,32位处理器一次只能处理32位,也就是4个字节的数据;而64位处理器一次就能处理64位,即8个字节的数据。IPV4地址,协议,端口等多个字段除IPV6地址外,都是通过32位整数可以表示的,通过转换,在比较时,可以将2位32位整数转换为1位64位整数,通过减少比较数次,可以进一步降低查找时间。

技术实现思路

[0004]本专利技术的目的在于提供一种基于VPP的快速策略匹配方法,旨在解决上述问题。
[0005]本专利技术主要通过以下技术方案实现:
[0006]一种基于VPP的快速策略匹配方法,将输入的多元组策略数据进行处理,将策略优先级和对应的策略唯一化,进行策略查找,首先通过HASH算法进行查找,若查找成功,则返回优先级,否则利用二分查找法进行查找,若查找成功,则统计N元组命中计数,产生HASH匹配表,且根据命中计数排序生成命中数量较高的M个HASH匹配表,以实现确定高速流的数据流,命中计数表根据设置的时间进行更新,最后返回优先级,当下次数据流来时,使用HASH算法进行查找。
[0007]为了更好地实现本专利技术,进一步地,首次查找,HASH值或统计值都没有,那么进入二分查找并进行统计,在T时间到达后,生成HASH表,之后的数据流,可进行HASH匹配,若HASH匹配失败,则是新数据流,进行二分策略匹配。
[0008]为了更好地实现本专利技术,进一步地,在VPP中实际生成HASH表的过程,不在转发线程中,而在主线程中,这是为了不因生成HASH表的过程影响转发,生成的HASH表有主表和备表,转发线程使用主表,当重新生成HASH表后,主线程切换标志位,转发线程切换主表、备表。
[0009]为了更好地实现本专利技术,进一步地,在二分查找法查找的基础上,利用64位CPU优化比较次数,通过统计数据流匹配次数,从高到低按统计次数进行排序,下次数据流来时使
用HASH算法。
[0010]为了更好地实现本专利技术,进一步地,在配置策略增加时,判断是否已经存在相同优先级的配置策略,若否,则进一步通过二分查找法查找,判断是否已经存在相同的配置策略,若否,则保存配置策略优先级表,保存配置策略表,并对配置策略优先级表、配置策略表排序,同一个优先级或同一个配置数据的策略只增加1次;在配置策略删除时,通过二分查找法查找匹配策略,判断是否有对应策略,若有,则删除配置策略优先级,删除配置策略,并重新对配置策略优先级表、配置策略表排序;在配置策略修改时,判断删除配置策略是否成功,若成功,则执行增加配置策略。
[0011]为了更好地实现本专利技术,进一步地,在查找策略生成时,先将配置策略根据优先级排序,判断是否是第一条配置策略,若是,则将其直接插入并产生查找配置策略;否则其余的配置策略需要和所有的查找策略进行比较,若查找策略完全包含配置策略,则表示优先级高的策略包含了优先级低的策略,此条策略在高优先级时就应该匹配,所以此条策略不加入到查找策略;若查找策略完全不包含配置策略,则此策略可直接加入到查找策略;若查找策略和配置策略部分包含时,则需要去掉重复数据段,然后再插入查找策略。
[0012]为了更好地实现本专利技术,进一步地,在策略唯一化中,始终以高优先级策略为基础,如果低优先级策略和高优先级策略重复,则策略表中要删除此低优先级策略;如果高优先级策略包含低优先级策略,则策略表删除低优先级策略;如果高优先级策略包含部分低优先级策略,则被包含的低优先级策略部分在策略表中被删除,如果低优先级策略包含高优先级策略,则低优先级策略被高优先级策略截断为2部分;如果低优先级策略包含部分高优先级策略,则低优先级策略被部分截断。
[0013]本专利技术将时间复杂度从O(log2N)降到O(1),从而达到多元范围的优先级策略快速匹配,有效提高了VPP的转发效率。相对于顺序策略匹配的时间复杂度O(n),通过有序化和唯一化多维度优先级策略,将时间复杂度降为O(log2n),同时利用64位CPU一次处理64位数,进一步降低了查找时间,通过大量的高速流进行HASH匹配,将时间复杂度降为O(1),从而加快策略匹配的速度,明显提高系统在多策略应用时的高速率数据流转发。
附图说明
[0014]图1为配置策略增加的流程图;
[0015]图2为配置策略删除的流程图;
[0016]图3为配置策略修改的流程图;
[0017]图4为查找策略生成的流程图;
[0018]图5为策略查找的流程图;
[0019]图6为命中计数表更新的流程图。
具体实施方式
[0020]实施例1:
[0021]一种基于VPP的快速策略匹配方法,将输入的多元组策略数据进行处理,将策略优先级和对应的策略唯一化,进行策略查找,首先通过HASH算法进行查找,若查找成功,则返回优先级,否则利用二分查找法进行查找,若查找成功,则统计N元组命中计数,产生HASH匹
配表,且根据命中计数排序生成命中数量较高的M个HASH匹配表,以实现确定高速流的数据流,命中计数表根据设置的时间进行更新,最后返回优先级,当下次数据流来时,使用HASH算法进行查找。
[0022]优选地,首次查找,HASH值或统计值都没有,那么进入二分查找并进行统计,在T时间到达后,生成HASH表,之后的数据流,可进行HASH匹配,若HASH匹配失败,则是新数据流,进行二分策略匹配。
[0023]优选地,在VPP中实际生成HASH表的过程,不在转发线程中,而在主线程中,这是为了不因生成HASH表的过程影响转发,生成的HASH表有主表和备表,转发线程使用主表,当重新生成HASH表后,主线程切换标志位,转发线程切换主表、备表。
[0024]优选地,在二分查找法查找的基础上,利用64位CPU优化比较次数,通过统计数据流匹配次数,从高到低按统计次数进行排序,下次数据流来时使用HASH算法。
[0025]优选地,在配置策略增加时,判断是否已经存在相同优先级的配置本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于VPP的快速策略匹配方法,其特征在于,将输入的多元组策略数据进行处理,将策略优先级和对应的策略唯一化,进行策略查找,首先通过HASH算法进行查找,若查找成功,则返回优先级,否则利用二分查找法进行查找,若查找成功,则统计N元组命中计数,产生HASH匹配表,且根据命中计数排序生成命中数量较高的M个HASH匹配表,以实现确定高速流的数据流,命中计数表根据设置的时间进行更新,最后返回优先级,当下次数据流来时,使用HASH算法进行查找。2.根据权利要求1所述的一种基于VPP的快速策略匹配方法,其特征在于,首次查找,HASH值或统计值都没有,那么进入二分查找并进行统计,在T时间到达后,生成HASH表,之后的数据流,可进行HASH匹配,若HASH匹配失败,则是新数据流,进行二分策略匹配。3.根据权利要求2所述的一种基于VPP的快速策略匹配方法,其特征在于,在VPP中实际生成HASH表的过程,不在转发线程中,而在主线程中,这是为了不因生成HASH表的过程影响转发,生成的HASH表有主表和备表,转发线程使用主表,当重新生成HASH表后,主线程切换标志位,转发线程切换主表、备表。4.根据权利要求2所述的一种基于VPP的快速策略匹配方法,其特征在于,在二分查找法查找的基础上,利用64位CPU优化比较次数,通过统计数据流匹配次数,从高到低按统计次数进行排序,下次数据流来时使用HASH算法。5.根据权利要求1

4任一项所述的一种基于VPP的快速策略匹配方法,其特征在于,在配置策略增加时,判断是否已经存在相同优先级的配置策略,若否,则进一步通过二分查找法查找,...

【专利技术属性】
技术研发人员:李猛陈曦兰星吴飞
申请(专利权)人:成都安恒信息技术有限公司
类型:发明
国别省市:

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

1