当前位置: 首页 > 专利查询>凯为公司专利>正文

用于通过优化的决策树执行包分类的方法和装置制造方法及图纸

技术编号:10125959 阅读:176 留言:0更新日期:2014-06-12 17:35
提供了一种包分类系统、方法和相应的装置,以用于实现包分类。被耦合至网络的安全设备的处理器使用具有多个规则的分类器表,该多个规则具有至少一个字段,以建立包括多个节点的决策树结构,该多个节点包括多个规则的子组。该方法可以生成更宽、更浅的树,这导致更短的搜索时间和用于存储树的减少的存储器需求。

【技术实现步骤摘要】
【国外来华专利技术】用于通过优化的决策树执行包分类的方法和装置相关申请本申请要求于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)、入侵检测系统(IDS)、互联网协议安全(IPsec)、以线速的反病毒(AV)和反垃圾邮件功能。在现今的互联网世界中改善网络操作的有效性和安全性依然是互联网用户的终极目标。接入控制、流量工程、入侵检测和许多其他网络服务要求基于包头的多个字段(被称作包分类)进行包的识别。互联网路由器对包进行分类以实施多个高级的互联网服务,诸如路由、速率限制、在防火墙中的接入控制、虚拟带宽分配、基于策略的路由、服务区分、负载平衡、流量整形和流量付费。这些服务要求路由器将到来的包分类成不同的流,并且然后依据这种分类执行适当的操作。分类器,使用一组滤波器或规则,指定流或类别。例如,在防火墙中的每个规则可以指定一组源和目标地址,并且将它和相应的拒绝或许可动作相关联。备选地,规则可以基于包头的多个字段,包括OSI模型的层2、3、4和5,其包含了寻址和协议信息。对于一些类型的专用硬件,接入控制列表(ACL)指代被应用于存在于主机或层3设备上的端口号或网络守护进程名称的规则,每个ACL具有被许可使用服务的主机和/或网络的列表。单独的服务器以及路由器都能够有网络ACL。ACL能够被配置为控制入界(inbound)和出界(outbound)的流量。
技术实现思路
一种系统、方法和相应的装置涉及对包进行分类。一种方法可以使用具有多个规则的分类器表,该多个规则具有至少一个字段,并且建立包括多个节点的决策树结构。每个节点可以表示多个规则的子组。对于决策树的每个节点,方法可以(a)确定可以在至少一个字段的每个字段上进行的若干剪切,从而创建等于剪切的个数的子节点;(b)基于对所创建的每个子节点的规则的平均个数与至少一个字段的每个字段所创建的每个子节点的规则的实际个数之间的平均差异的比较,选择在其上剪切所述节点的字段;(c)在所选择的字段上将节点剪切成若干子节点,以及存储决策树结构。该方法可以进一步基于针对给定的存储容量的剪切的最大个数来确定可以在至少字段的每个字段上进行的剪切的个数。该方法可以基于如下字段,即所述至少一个字段中的、具有在每个子节点的规则的平均个数和每个子节点的规则的实际个数之间的最小平均差异的字段,而选择在其上将所述节点剪切成若干子节点的字段。只有在节点具有比的多个规则的子组的预定个数更多时,该方法可以剪切节点。预定个数可以是可调整的个数。该方法可以进一步通过迭代地调整预定个数来控制决策树结构的深度。调整预定个数可以包括随着树的层次的增加而增加预定个数。如果剪切创建了多个子节点,并且只有一个子节点具有多个规则的子组,那么方法可以在节点处存储至少一个字段中的字段的标识符以及所述至少一个字段中的、在遍历所述节点以获得规则匹配时略过的所述字段中的若干比特。至少一个字段中的、略过的字段的比特的个数可以与用于剪切所述节点的若干比特的个数相同。在建立决策树结构时,该方法可以进一步包括,对于决策树的每个层次,比较由具有相同母节点的子节点所表示的规则子组。方法可以识别复制子节点组,复制子节点组可以是多个规则的复制子组。方法可以选择被识别的复制子节点组的一个子节点作为唯一的子节点。方法可以将被识别的所述复制子节点组的其他子节点链接至与所述唯一的子节点相同的子树。方法可以使用唯一的子节点用于决策树结构的后续建立,以及抑制使用将被识别的复制子节点组的其他子节点用于决策树结构的后续建立。在建立决策树结构时,方法可以进一步包括,对于决策树的每个层次,在决策树的层次上识别部分的复制节点。部分的复制节点可以是部分复制的多个规则的子组。方法可以基于被识别的一个或多个部分的复制节点,在决策树的层次上创建新的节点。多个规则的子组的部分复制可以被包括在创建的新节点中,并且被从所识别的部分节点中去除。方法可以将分类器表中的多个规则分组成多个规则分类。方法可以针对多个规则分类中的每个规则分类,建立包括多个节点的决策树。多个规则分类可以基于应用于多个规则的一个或多个字段功能,或者一个或多个字段功能的组合。一个或多个字段功能可以包括应用非互联网协议(IP)地址通配符、源IP但不是目标IP通配符、目标IP但不是源IP通配符、目标和源地址通配符、字段范围比较、与一个或多个至少一个字段相关联的一个或多个掩码。方法可以进一步包括使得所接收的包遍历所建立的每个决策树,并且比较从每个树得到的规则以选择最终的匹配。所选择的最终的匹配可以是具有最高优先级的规则。方法可以进一步将具有小于或等于规则的给定个数的若干规则的每个子节点转换成叶节点。方法可以针对所转换的每个子节点创建相应的桶。相应的桶可以包括所转换的子节点的规则。方法可以将每个叶节点链接至所创建的相应的桶。复制桶组可以被识别,每个复制桶包括相同的规则组。方法可以选择复制桶组中的一个桶,并且去除复制桶组中的其他桶。方法可以将到所去除的桶的链接改变成到所选择的一个桶的链接。方法可以进一步识别部分复制桶组。每个部分复制桶可以包括复制部分规则组。方法可以将部分复制桶组中的每个桶分成针对每个桶的第一规则组和第二规则组。针对每个桶的第一规则组可以包括复制部分规则组,并且针对每个桶的第二规则组可以包括针对每个桶的任何剩余的规则。方法可以在每个部分复制的桶中创建到第一规则组的链接,并且在每个部分复制的桶中创建到第二组规则的链接。每个部分复制桶可以包括指向第一规则组和第二规则组的指针的链接列表。决策树结构可以是二进制数据结构。决策树结构可以从分类器表被编译。对应每个规则的优先级可以被存储于决策树结构中。方法可以进一步确定规则是否被一个或多个其他规则覆盖,并且如果规则被覆盖,从决策树结构中忽略规则。方法本文档来自技高网
...
用于通过优化的决策树执行包分类的方法和装置

【技术保护点】
一种方法,包括:使用具有多个规则的分类器表,所述多个规则具有至少一个字段,建立包括多个节点的决策树结构,每个节点表示所述多个规则的子组;对于所述决策树的每个节点,(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

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

1