【技术实现步骤摘要】
【国外来华专利技术】用于通过优化的决策树执行包分类的方法和装置相关申请本申请要求于2011年8月2日提交的美国临时申请No.61/514,344、于2011年8月2日提交的美国临时申请No.61/514,382、于2011年8月2日提交的美国临时申请No.61/514,379、于2011年8月2日提交的美国临时申请No.61/514,400、于2011年8月2日提交的美国临时申请No.61/514,406、于2011年8月2日提交的美国临时申请No.61/514,407、于2011年8月2日提交的美国临时申请No.61/514,438、于2011年8月2日提交的美国临时申请No.61/514,447、于2011年8月2日提交的美国临时申请No.61/514,450、于2011年8月2日提交的美国临时申请No.61/514,459、以及于2011年8月2日提交的美国临时申请No.61/514,463的权益。上述申请的整个教导通过引用被合并于此。
技术介绍
开放系统互连(OSI)参考模型定义了七个网络协议层(L1-L7)用于在传输介质上进行通信。上层(L4-L7)表示端到端通信,以及下层(L1-L3)表示本地通信。网络化应用感知系统需要处理、滤波和切换L3至L7网络协议层的范围,例如L7网络协议层,诸如超文本传输协议(HTTP)和简单邮件传输协议(SMTP),以及L4网络协议层,诸如传输控制协议(TCP)。除了处理网络协议层,网络化应用感知系统需要使用通过L4-L7网络协议层的基于接入和内容的安全性以同时保护这些协议,这包括防火墙、虚拟私人网络(VPN)、安全套接层(SSL)、入侵检测 ...
【技术保护点】
一种方法,包括:使用具有多个规则的分类器表,所述多个规则具有至少一个字段,建立包括多个节点的决策树结构,每个节点表示所述多个规则的子组;对于所述决策树的每个节点,(a)确定可以在至少一个字段的每个字段上进行的若干剪切,从而创建等于剪切的个数的子节点;(b)基于对所创建的每个子节点的规则的平均个数与在至少一个字段的每个字段所创建的每个子节点的规则的实际个数之间的平均差异的比较,选择在其上剪切所述节点的字段;(c)在所选择的字段上将所述节点剪切成若干子节点,以及存储所述决策树结构。
【技术特征摘要】
【国外来华专利技术】2011.08.02 US 61/514,379;2011.08.02 US 61/514,463;1.一种用于分类包的方法,包括:在处理器中,使用具有多个规则的分类器表,所述多个规则具有至少一个字段,建立包括多个节点的决策树结构,每个节点表示所述多个规则的子组;对于所述决策树的每个节点,(a)确定可以在至少一个字段的每个字段上进行的若干剪切,从而创建等于剪切的个数的子节点;(b)基于对所创建的每个子节点的规则的平均个数与在至少一个字段的每个字段所创建的每个子节点的规则的实际个数之间的平均差异的比较,选择在其上剪切所述节点的字段;(c)在所选择的字段上将所述节点剪切成若干子节点,以及在存储器中存储所述决策树结构。2.根据权利要求1所述的方法,其中确定所述剪切的个数是基于针对给定的存储容量的剪切的最大个数。3.根据权利要求1所述的方法,其中选择包括基于如下字段,即所述至少一个字段中的、具有在每个子节点的规则的平均个数和每个子节点的规则的实际个数之间的最小平均差异的字段,而选择在其上将所述节点剪切成若干子节点的字段。4.根据权利要求1所述的方法,其中剪切包括仅在所述节点具有比所述多个规则的所述子组的预定个数更多时,剪切所述节点。5.根据权利要求4所述的方法,其中所述预定个数是可调整的个数,所述方法进一步包括通过迭代地调整所述预定个数来控制所述决策树结构的深度。6.根据权利要求5所述的方法,其中调整所述预定个数包括随着所述树的层次的增加而递增所述预定个数。7.根据权利要求1所述的方法,其中如果剪切创建了多个子节点,并且只有一个子节点具有所述多个规则的子组,那么在所述节点处存储所述至少一个字段中的字段的标识符以及所述至少一个字段中的、在遍历所述节点以获得规则匹配时略过的所述字段中的若干比特。8.根据权利要求7所述的方法,其中所述至少一个字段中的、略过的所述字段的比特的个数与用于剪切所述节点的若干比特的个数相同。9.根据权利要求1所述的方法,进一步包括:在建立所述决策树结构时,对于所述决策树的每个层次,比较由具有相同母节点的子节点所表示的规则子组;识别复制子节点组,所述复制子节点组具有所述多个规则的复制的子组;选择被识别的所述复制子节点组的一个子节点作为唯一的子节点;将被识别的所述复制子节点组的其他子节点链接至与所述唯一的子节点相同的子树;使用所述唯一的子节点用于所述决策树结构的后续建立;以及抑制使用将被识别的所述复制子节点组的所述其他子节点用于所述决策树结构的后续建立。10.根据权利要求1所述的方法,进一步包括将所述分类器表中的所述多个规则分组成多个规则分类,并且针对所述多个规则分类中的每个规则分类建立包括多个节点的决策树结构。11.根据权利要求10所述的方法,其中所述多个规则分类是基于应用于所述多个规则的一个或多个字段功能,或者所述一个或多个字段功能的组合。12.根据权利要求11所述的方法,其中所述一个或多个字段功能包括应用非互联网协议(IP)地址通配符、源IP但不是目标IP通配符、目标IP但不是源IP通配符、目标和源地址通配符、字段范围比较以及与一个或多个所述至少一个字段相关联的一个或多个掩码。13.根据权利要求10所述的方法,进一步包括将所接收的包遍历所建立的每个决策树,并且比较从每个树得到的规则以选择最终的匹配。14.根据权利要求13所述的方法,其中所选择的所述最终的匹配是具有最高优先级的规则。15.根据权利要求1所述的方法,进一步包括:将具有以下若干规则的每个子节点转换成叶节点,所述若干规则小于或等于规则的给定个数;针对所转换的每个子节点创建相应的桶,所述相应的桶包括所转换的所述子节点的规则;将每个叶节点链接至所创建的所述相应的桶;识别复制桶组,每个复制桶包括相同的规则组;选择所述复制桶组中的一个桶,并且去除所述复制桶组的其他桶;以及将到所去除的桶的链接改变成到所选择的所述一个桶的链接。16.根据权利要求1所述的方法,进一步包括:将具有以下若干规则的每个子节点转换成叶节点,所述若干规则小于或等于规则的给定个数;针对所转换的每个子节点创建相应的桶,所述相应的桶包括所转换的所述子节点的规则;将每个叶节点链接至所创建的所述相应的桶;识别部分复制桶组,每个部分复制桶包括复制部分规则组;将在所述部分复制桶组中的每个桶中的规则分成针对每个桶的第一规则组和第二规则组,针对每个桶的所述第一规则组包括所述复制部分规则组,并且针对每个桶的所述第二规则组包括针对每个桶的任何剩余的规则;以及在每个部分复制的桶中创建到所述第一规则组的链接,并且在每个部分复制桶中创建到所述第二规则组的链接。17.根据权利要求16所述的方法,其中每个部分复制桶包括到所述第一规则组和所述第二规则组的指针的链接列表。18.根据权利要求1所述的方法,其中所述决策树结构是二进制数据结构。19.根据权利要求1所述的方法,其中所述决策树结构从所述分类器表被编译。20.根据权利要求1所述的方法,其中对应每个规则的优先级被存储于所述决策树结构中。21.根据权利要求1所述的方法,包括确定规则是否被一个或多个其他更高优先级的规则覆盖,并且如果所述规则被覆盖,则从所述决策树结构中忽略所述规则。22.根据权利要求21所述的方法,其中确定包括针对每个节点确定包括由更高级的节点所表示的所述多个规则的所述子组中的子组。23.根据权利要求21所述的方法,其中如果所述规则的相应字段与所述一个或多个其他更高优先级的规则的所有相应字段重叠,则所述规则由所述一个或多个更高优先级的规则覆盖。24.一种用于分类包的方法,包括:在处理器中,使用具有多个规则的分类器表,所述多个规则具有至少一个字段,建立包括多个节点的决策树结构,每个节点表示所述多个规则的子组;针对所述决策树的每个层次,基于母节点的子节点的结果总数不大于给定的阈值,确定是否合并所述母节点的孙子节点和所述母节点的子节点;在每个层次基于所述确定,合并所述母节点的所述孙子节点和所述母节点的子节点;以及在存储器中存储所述决策树结构。25.根据权利要求24所述的方法,其中在每个层次包括将每个子节点的剪切合并到所述母节点的剪切中,从而产生所述母节点的新的子节点。26.根据权利要求25所述的方法,其中所述子节点的所述剪切与所述母节点的剪切是在同一字段上,或者所述子节点的所述剪切与所述母节点的剪切是在不同的字段上。27.根据权利要求24所述的方法,其中所述给定的阈值是可调整的,所述方法进一步包括迭代地调整所述给定的阈值,并且合并母节点的孙子节点和所述母节点的子节点,直到所述母节点的子节点的结果总数达到了子节点的给定的阈值的个数。28.根据权利要求24所述的方法,进一步包括:基于所述至少一个字段中选择的一个或多个字段以及每个均对应于所述选择的一个或多个字段的位的数目,将所述母节点剪切成所述子节点。29.一种用于分类包的方法,所述方法包括:在处理器中,使用具有多个规则的分类器表,所述多个规则具有至少一个字段,建立包括多个节点的决策树结构,每个节点表示所述多个规则的子组;基于规则是否竞争由所述处理器来将规则分组到竞争规则的组中;由所述处理器向所述多个规则分配优先级值,包括在每组竞争规则内分配唯一的优先级值,并且使得非竞争规则具有相同的优先级值;以及由所述处理器在存储器中存储所述决策树结构,包括存储所述多个规则和所分配的所述优先级值。30.一种用于分类包的装置,所述装置包括:存储器;处理器,耦合至所述存储器,所述处理器被配置为使用具有存储在所述存储器中的多个规则的分类器表,所述多个规则具有至少一个字段,所述处理器进一步被配置为建立包括多个节点的决策树结构,所述多个节点表示所述多个规则的子组;所述处理器进一步被配置为针对所述决策树的每个节点,确定可以在至少一个字段的每个字段上进行的若干剪切,从而创建等于剪切的个数的子节点;在确定可以在至少一个字段的每个字段上所进行的所述剪切的个数之后,所述处理器进一步被配置为基于对所创建的每个子节点的规则的平均个数与至少一个字段的每个字段所创建的每个子节点的规则的实际个数之间的平均差异的比较,选择在其上剪切所述节点的字段;以及所述处理器进一步被配置为在所选择的字段上将所述节点剪切成若干子节点,并且在所述存储器中存储所述决策树结构。31.根据权利要求30所述的装置,其中所述处理器进一步被配置为基于针对给定的存储容量的剪切的最大个数来确定所述剪切的个数。32.根据权利要求30所述的装置,其中所述处理器进一步被配置为基于如下字段,即所述至少一个字段中的、具有在每个子节点的规则的平均个数和每个子节点的规则的实际个数之间的最小平均差异的字段,而选择在其上将所述节点剪切成若干子节点的字段。33.根据权利要求30所述的装置,其中所述处理器进一步被配置为只有在所述节点具有比所述多个规则的所述子组的预定个数更多时,剪切所述节点。34.根据权利要求33所述的装置,其中所述预定个数是可调整的个数,其中所述处理器进一步被配置为通过迭代地调整所述预定个数来控制所述决策树结构的深度。35.根据权利要求34所述的装置,其中调整所述预定个数包括随着所述树的层次的增加而增加所述预定个数。36.根据权利要求30所述的装置,其中如果剪切创建了多个子节点,并且只有一个子节点具有所述多个规则的子组,所述处理器进一步被配置为在所述节点处存储所述至少一个字段中的字段的标识符以及所述至少一个字段中的、在遍历所述节点以获得规则匹配时略过的所述字段的若干比特。37.根据权利要求36所述的装置,其中所述至少一个字段中的、略过的所述字段的比特的个数与用于剪切所述节点的若干比特的个数相同。38.根据权利要求30所述的装置,其中所述处理器进一步被配置为:在建立所述决策树结构时,对于所述决策树的每个层次,比较由具有相同母节点的子节点所表示的规则子组;识别复制子节点组,所述复制子节点组具有所述多个规则的复制的子组;选择被识别的所述复制子节点组的一个子节点作为唯一的子节点;将被识别的所述复制子节点组的其他子节点链接到与所述唯一的子节点相同的子树;使用所述唯一的子节点用于所述决策树结构的后续建立;以及抑制使用被识别的所述复制子节点组的所述其他子节点用于所述决策树结构的后续建立。39.根据权利要求30所述的装...
【专利技术属性】
技术研发人员:R·戈亚尔,K·A·布里斯,S·L·比拉,
申请(专利权)人:凯为公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。