使用基于树的二进制模式匹配的数据分组分类的复合屏蔽和熵的制作方法

文档序号:7791753阅读:138来源:国知局
使用基于树的二进制模式匹配的数据分组分类的复合屏蔽和熵的制作方法
【专利摘要】在分组数据网络的网络元件中的方法为分组数据网络策略的应用分类数据分组。将根节点复合位屏蔽应用于接收的数据分组的位。数据分组具有多个字段中的数据。复合位屏蔽包括多个位屏蔽,每个位屏蔽具有不同的数据分组字段中的位。将复合位屏蔽的屏蔽的位应用于根节点位表,复合位屏蔽的每个位屏蔽一个根节点位表。基于根节点位表查找从根节点中选择分支节点。
【专利说明】使用基于树的二进制模式匹配的数据分组分类的复合屏蔽和熵
[0001]

【技术领域】
[0002]本发明的实施例涉及分组数据通信中的数据分组分类的领域;并且更具体地涉及模式匹配树中的复合屏蔽(mask)。

【背景技术】
[0003]许多网络服务使用分组分类,例如路由、接入控制、基于策略的路由、服务质量差异化、计费等。在一个应用中,分组分类器检查分组来确定是否转发或过滤分组并且将适当分类的服务应用于分组。分类通常是基于读取分组的报头中的数据(例如,地址、端口号或数据分组的报头和报尾位中的其它字段)。在最简单的实现中,将适当字段中的值应用于查找表并且当存在匹配时,将对应的规则或策略应用于分组。
[0004]一些分组分类系统使用接入控制列表(ACL)来执行二进制模式匹配。ACL由用于对位进行分类的位模式或规则组成。过滤器ACL用于确定是否承认给定的位字段。在基于分组的通信网络中(其中ACL规则可基于分组报头中的地址和端口信息)使用ACL。ACL还可基于深入到深度包检验的分组的字段。在基于分组的网络中使用策略ACL来将业务分类成每个接收单独的处理的类别(例如,在转发、排队、速率限制以及标记的方面)。为了完整的分组路由,所有这些列表必须被检查并且与输入的分组匹配。在一些应用中,可由不同的路由器来完成匹配并且可忽略一些ACL以便节省时间。
[0005]为了允许高速地路由许多不同类型的分组,分组分类已前进超越简单的查找表。一些系统使用分级的查找过程(其中检查封装的第一部分)。那个检查的结果用于在分支的决定过程中选择将检查的第二部分。此分类继续采取不同的分支直至达到最终分类。虽然使用了更多的步骤,但是过程中的每个步骤是简化的并且如果系统是良好设计的,则分类更快。这可以被称作基于树的分类,其中第一决定是根节点并且每个产生的决定是分支节点。最后的分支节点被称作叶节点。在叶节点过程之后,将分组分类。
[0006]为了更快地路由各种不同的分组,必须在查找时间、处理和存储器使用的方面提高模式匹配算法。与实现用于不同类型的ACL (例如,IPv4 (因特网协议版本4)、IPv6 (IP版本6)、以太网、ATM (异步传输模式)等)的算法关联的成本将使这变得更困难。已经开发TCAM (三元内容关联存储器)硬件加速算法来处理这些问题。TCAM使用并行硬件来并行检查所有规则。虽然硬件是快的,但是它很贵并且要求大量的存储器资源和高的功耗。在具有数千个会话的应用(其中要求个别ACL)中,TCAM系统的资源可耗尽。


【发明内容】

[0007]本发明的实施例允许分组分类树来使用复合屏蔽用于分组分类以便在更少步骤中并且使用更少的资源来遍历树。使用候选位屏蔽上的熵可更有效和更直接地定义分组分类树。产生的树在使用更少的处理资源来对分组进行分类时更有效。
[0008]在一个实施例中,本发明包含在分组数据网络的网络元件中为分组数据网络策略的应用分类数据分组的方法。将根节点复合位屏蔽应用到接收的数据分组的位。数据分组具有多个字段中的数据。复合位屏蔽具有多个位屏蔽,每个位屏蔽具有不同的数据分组字段中的位。将复合位屏蔽的屏蔽的位应用于根节点位表,复合位屏蔽的每个位屏蔽一个根节点位表。基于屏蔽位匹配的位表查找从根节点中选择分支节点。
[0009]在分支节点处,将与选择的分支节点关联的分支节点位屏蔽应用于接收的数据分组的位。将选择的分支节点位屏蔽的屏蔽的位应用于至少一个分支节点位表,并且基于选择的分支节点位屏蔽的分支节点位表查找来分类接收的数据分组。
[0010]在另一实施例中,在分组数据网络中使用网络元件来为分组数据网络策略的应用分类数据分组。网络元件包括从分组数据网络接收数据分组的入口模块、基于策略将数据分组转发到另一网络元件的出口模块、网络处理器。网络处理器有具有多个位表的分类树。网络处理器将根节点复合位屏蔽应用于接收的数据分组的位。复合位屏蔽包括多个位屏蔽,每个位屏蔽具有不同的数据分组字段中的位。网络处理器将复合位屏蔽的屏蔽的位应用于根节点位表,复合位屏蔽的每个位屏蔽一个根节点位表。它基于根节点位表查找从根节点中选择分支节点。它将与选择的分支节点关联的分支节点位屏蔽应用于接收的数据分组的位。它将选择的分支节点位屏蔽的屏蔽的位应用于至少一个分支节点位表,并且它基于分支节点位屏蔽的分支节点位表查找来分类接收的数据分组。
[0011]在另一实施例中,本发明包含为由分组数据网络的网络元件用于为分组数据网络策略的应用分类数据分组的分组分类树生成位屏蔽的序列的方法。方法包含选择多个位屏蔽作为候选根节点位屏蔽,基于屏蔽的位的不同的值的概率来为每个位屏蔽计算熵,从候选根节点位屏蔽选择位屏蔽作为分组分类树的根节点位屏蔽,并且为选择的位屏蔽定义根节点位表来指向分组分类树的分支。方法还包含选择分支节点位屏蔽以及定义分支节点位表来指向策略以分类数据分组。
[0012]在另一实施例中,非暂时性计算机可读介质具有存储于其上的指令,所述指令当由机器执行时使机器执行操作,以便为由分组数据网络的网络元件用于为分组数据网络策略的应用分类数据分组的分组分类树生成位屏蔽的序列。操作包含选择多个位屏蔽作为候选根节点位屏蔽,基于屏蔽的位的不同的值的概率来为每个位屏蔽计算熵,从候选根节点位屏蔽选择位屏蔽作为分组分类树的根节点位屏蔽,以及为选择的位屏蔽定义根节点位表来指向分组分类树的分支。操作还包含选择分支节点位屏蔽以及定义分支节点位表来指向策略以分类数据分组。

【专利附图】

【附图说明】
[0013]通过参考下文的描述和用于图示本发明的实施例的附图可最好地理解本发明。在图中:
图1是根据本发明的一个实施例的起到接入节点的作用的网络元件的一个实施例的图;
图2A是图示根据本发明的一个实施例的作为一组线路和数据处理卡的图1的网络元件的框图; 图2B是图示根据本发明的一个实施例的适合于用作网络处理器的示范性计算机系统的框图;
图3是图示根据本发明的一个实施例的数据分组分类树的构造及其在网络元件中的使用的通信流程图;
图4是根据本发明的一个实施例的遍历分组分类树的过程流程图;
图5是根据本发明的实施例的将位屏蔽和查找表应用于数据分组的图;
图6是根据本发明的一个实施例的操作分组分类树的过程流程图;以及图7是根据本发明的实施例的生成分组分类树的过程流程图。

【具体实施方式】
[0014]在下文的描述中,阐述大量的具体细节。然而,要理解,可在没有这些具体细节的情况下实践本发明的实施例。在其它实例中,为了不模糊此描述的理解,没有详细示出已知的电路、结构和技术。在其它实例中,为了不模糊本发明,没有详细示出控制结构、门级电路和完整的软件指令序列。
[0015]在说明书中对“一个实施例”、“实施例”、“示例实施例”等的参考指示描述的实施例可包含特定特征、结构或特性,但是每个实施例可不一定包含特定特征、结构或特性。此夕卜,这样的短语不一定指相同的实施例。另外,当结合实施例来描述特定特征、结构或特性时,认为结合其它实施例来实现这样的特征、结构或特性(无论是否明确描述)是在本领域的技术人员的知识内。
[0016]在下文的描述和权利要求中,可使用术语“耦合”和“连接”以及它们的派生词。应该理解这些术语不旨在作为彼此的同义词。“耦合”用于指示两个或者更多元件(它们可以或可以不彼此直接物理或电接触)彼此合作或交互。“连接”用于指示彼此耦合的两个或者更多元件之间的通信的建立。
[0017]可使用软件、固件和/或硬件的不同组合来实现本发明的不同实施例。因此,可以使用在一个或多个电子装置(例如,终端站、网络元件)上存储并且执行的代码和数据来实现在图中示出的技术。这样的电子装置使用计算机可读媒体(例如,非暂时性计算机可读存储媒体(例如,磁盘、光盘、随机存取存储器、只读存储器、闪速存储器装置、相变存储器)和暂时性计算机可读传送媒体(例如,电、光、声学或其它形式的传播信号(例如,载波、红外信号、数字信号)))来存储并且通信(内部地和/或与网络上的其它电子装置)代码和数据。此夕卜,这样的电子装置通常包含耦合于一个或多个其它部件的一个或多个处理器的集合,例如,一个或多个存储装置(非暂时性机器可读存储媒体)、用户输入/输出装置(例如,键盘、触摸屏和/或显示器)以及网络连接。处理器的集合和其它部件的耦合通常是通过一个或多个总线和桥(也称为总线控制器)。因此,给定的电子装置的存储装置通常存储代码和/或数据用于在那个电子装置的一个或多个处理器的集合上的执行。
[0018]如本文所使用的,网络元件(例如,路由器、交换机、桥)是一件连网设备(包含硬件和软件),它与网络上的其它设备(例如,其它网络元件、终端站)在通信上互连。一些网络元件是为多个连网功能(例如,路由、桥接、交换、层2聚集、会话边界控制、服务质量和/或订户管理)提供支持,和/或为多个应用服务(例如,数据、语音以及视频)提供支持的“多个服务网络元件”。订户终端站(例如,服务器、工作站、膝上型计算机、上网本、掌上电脑、移动电话、智能电话、多媒体电话、网络(VOIP)电话、用户设备、终端、便携式媒体播放机、GPS单元、游戏系统、机顶盒)接入因特网上提供的内容/服务和/或在因特网上覆盖(例如,隧到通过)的虚拟私有网(VPN)上提供的内容/服务。内容和/或服务通常是由属于服务或内容提供商的一个或多个终端站(例如,服务器终端站)或参与对等服务的终端站来提供,并且可包含(例如)公用网页(例如,免费内容、铺面、搜索服务)、私人网页(例如,提供电子邮件服务的用户名/密码接入网页)和/或在VPN上的企业网络。通常,订户终端站耦合于边缘网络元件(例如,通过(有线地或无线地)耦合于接入网络的消费者驻地设备),边缘网络元件I禹合于其它边缘网络元件(例如,通过一个或多个核心网络元件),其它边缘网络元件耦合于其它终端站(例如,服务器终端站)。
[0019]图1是起到接入节点的作用的网络元件的一个实施例的图,然而其它网络元件可具有类似配置。网络元件10包含入口模块11、出口模块15和网络处理器13。入口模块11处理由网络元件在物理链路和数据链路层处接收的数据分组的处理。出口模块15处理由网络元件在物理链路和数据链路层处传送的处理和数据分组。入口和出口模块通过IPv4、IPv6、ATM或任何各种其它格式和协议来与订户、边缘路由器以及其它网络元件通信。
[0020]网络处理器13处理数据业务的路由、转发和更高层处理。它包含具有当发现匹配时要应用的分类树19和查找表21的匹配模块17。表将分类树发现的匹配的位模式关联到允许对分组进行分类的规则或策略。分类的分组可被转发到具有或没有附加的分类信息的另一网络元件、废弃或返回。
[0021]网络元件通常分成控制平面和数据平面(有时被称作转发平面或媒体平面)。在网络元件是路由器(或实现路由功能)的情况下,控制平面通常确定数据(例如,分组)将如何路由(例如,数据的下一跳和那个数据的输出端口),并且数据平面负责转发那个数据。例如,控制平面通常包含一个或多个路由协议,例如,边界网关协议(BGP)、内部网关协议(IGP)(例如,开放最短路径优先(0SPF)、路由信息协议(RIP)、中间系统到中间系统(IS-1S)),标签分布协议(LDP)、资源保留协议(RSVP),路由协议与其它网络元件通信来交换路由并且基于一个或多个路由度量来选择那些路由。
[0022]路由和邻接存储在控制平面上的一个或多个路由结构中(例如,路由信息库(RIB)、标签信息库(LIB)、一个或多个邻接结构)。控制平面利用基于路由结构的信息(例如,邻接和路由信息)对数据平面进行编程。例如,控制平面将邻接和路由信息编程到数据平面上的一个或多个转发结构(例如,转发信息库(FIB)、标签转发信息库(LFIB)和一个或多个邻接结构)。当转发业务时,数据平面使用这些来转发和邻接结构。
[0023]每个路由协议基于某些路由度量将路由条目下载到主RIB(对于不同的路由协议,度量可以是不同的)。每个路由协议可以在本地RIB (例如,OSPF本地RIB)中存储路由条目(包含没有被下载到主RIB的路由条目)。管理主RIB的RIB模块从由路由协议(基于度量的集合)下载的路由中选择路由并且将那些选择的路由(有时被称作有效路由条目)下载到数据平面。RIB模块还可使路由在路由协议之间重新分布。
[0024]为了层2转发,网络元件可以存储用于基于数据中的层2信息来转发此数据的一个或多个桥接表。
[0025]图2A是将图1的网络元件10图示为一组线路和数据处理卡连同其它线路卡以及互连它们的网状的框图。在本发明的一个实施例中,底板23耦合于一组N个线路卡25A-N和处理卡27A、26B。附加的和其它类型的装置(未示出)可耦合于底板23。分组分类算法可以是线路卡25A-N和/或处理卡27A-B的一部分,备选实施例可具有备选的卡布置(具有一个或多个端口和转发引擎的组合的线路和处理卡、每个线路卡一个处理卡、每个线路卡多个处理卡等)。数据处理卡可构造由线路卡或处理卡使用的分类树。底板提供背板以及在网络元件10的所有卡之间的数据平面通信。
[0026]在其它实现中,具有其它建筑配置的网络元件可以合并本发明的实施例。可以合并本发明的实施例的其它网络元件的示例可以具有多个转发卡或具有合并转发和控制两者的功能的单个线路卡。此外,具有跨过业务卡分布的转发功能的网络元件可以合并本发明的实施例。
[0027]包含在不同的网络元件中的以线路卡25A-N和处理器卡27A-B的形式的分组分类和分类构造卡包含存储器、处理器和/或专用集成电路(ASIC)。这样的存储器包含机器可读介质,其上存储体现实施本文描述的任何一个或所有方法的指令集(即,软件)。软件可以完全地或至少部分地驻留在此存储器内和/或处理器和/或ASIC内。为了本说明书的目的,术语“机器可读介质”应该视为包含以机器(例如,计算机)可读的形式来提供(即,存储和/或传送)信息的任何机制。例如,非暂时性机器可读存储介质包含只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储媒体、光存储媒体、闪速存储器装置;而暂时性机器可读通信介质包含电、光、声学或其它形式的传播信号(例如,载波、红外信号、数字信号等)。
[0028]通常,网络元件包含一个或多个线路卡的集合、一个或多个控制卡的集合以及可选地一个或多个服务卡(有时被称作资源卡)的集合。这些卡是通过一个或多个机制(例如,耦合线路卡的第一全网状和耦合所有卡的第二全网状)耦合在一起。线路卡的集合构成数据平面,而控制卡的集合提供控制平面并且通过线路卡与外部网络元件交换分组。服务卡的集合可以提供专用的处理(例如,层4到层7服务(例如,防火墙、IPsec、IDS、P2P)、VoIP会话边界控制器、移动无线网关(GGSN、演进型分组系统(EPS)网关))。以示例的方式,服务卡可用于端接IPsec隧道并且执行伴随的认证和加密算法。
[0029]图2B示出图示根据本发明的一个实施例的适合于用作网络处理器13的示范性计算机系统100的框图。示范性计算机系统100包含由总线115耦合于存储装置110的处理器105。此外,多个用户输入/输出装置(例如,键盘120和显示器125)也可耦合于总线115,但这是可选的部分。网络130接口也可耦合于总线115,例如,通过底板23。处理器105 (单核或多核;并且如果多核,对称或非对称核)至少包含任何类型的架构的中央处理单元,例如,CISC、RISC、VLIW或混合架构。处理器105还可包含图形处理单元(例如,单核或多核)、图形总线接口、存储器管理单元以及主存储器总线接口。此外,处理器105可实现在相同芯片内的一个或多个裸芯片上。存储装置110和网络业务表示一个或多个机器可读媒体。因此,机器可读媒体包含以机器(例如,计算机)可读的形式来提供(即,存储和/或传送)信息的任何机制。例如,机器可读介质可以是机器可读存储媒体(例如,磁盘、光盘、随机存取存储器、只读存储器、闪速存储器装置)、机器可读通信媒体(例如,电、光、声学或其它形式的传播信号(例如,载波、红外信号、数字信号等)等)。总线115表示一个或多个总线和桥(也称为总线控制器)。虽然本实施例是关于单处理器计算机系统来描述,但是其它实施例可以包含多处理器计算机系统。此外,虽然本实施例是关于64位计算机系统来描述,但是本发明的其它实施例包含使用其它位宽度的计算机系统。
[0030]图2B也图示存储装置110中存储用于在处理器105上的执行的分组分类软件135来向输入的数据分组提供分类树的构造或分类树的应用。当然,存储装置110优选地包含附加的软件(例如,操作系统和各种应用(未示出))。
[0031]图2B额外地图示处理器105包含执行单元140、内部总线142以及指令指针寄存器144。当然,处理器110包含额外的电路,它对于理解此描述是不必要的。
[0032]如示出的,内部总线142将处理器105的若干元件耦合在一起。执行单元140用于执行指令。指令指针寄存器144用于存储目前由执行单元140正在执行的指令的地址。
[0033]本文使用术语存储来指用于存储数据的任何机制,包含大容量存储装置110中的位置、处理器105中的一个或多个寄存器等。处理器105能够执行新的指令和/或与在现有的通用处理器中发现的那些类似或相同的指令。此外,在一个实施例中,处理器105是多核处理器,至少一些核同时多线程(例如,超线程)、超标量、流水线、并且每个时钟周期能够完成一个或多个这些指令(忽略任何数据依赖和流水线冻结)。
[0034]本说明书描述使用超屏蔽和熵来构造用于模式查找的树的方法。如本文所描述的,超屏蔽是多于一个单个屏蔽的组合,每个屏蔽同时应用于分组的不同字段。此单个组合屏蔽是形成自多于一个屏蔽的复合屏蔽。
[0035]可利用复合屏蔽来使用基于树的模式匹配算法。随着通过对应的查找位字段遍历分类树,在算法中可在一个或多个不同的位置处使用复合屏蔽。
[0036]在给定次序的模式集的存储器使用和查找时间的方面,使用熵概念的分组分类树仍然是更有效的。如以下描述的,熵用于发现用来构造分类树的位屏蔽。比较多个可能的位屏蔽并且选择最大化或具有高熵的一个位屏蔽。不同的模型可以用于估计熵。
[0037]熵模型允许确定用于复合屏蔽的有效的位屏蔽或位屏蔽的集合。然后可将位屏蔽应用于发现分类树中的第一或根节点位表条目以及后面的位表条目。最后,叶条目用于指向用于最终分类的规则的有序列表。规则可与任何各种不同的应用(例如,IPv4、IPv6、以太网和深度包检验)相关。
[0038]图3示出本文描述的分类树的应用(使用构造器151来构造分类树以及匹配器153来将树应用于数据分组分类)。构造器和匹配器都可由网络元件的网络处理器来实现或构造器可以是与网络节点分开的独立装置。构造器接收应用于输入的分组的规则(作为输入155)。规则将在特定位模式的方面来构成,特定位模式调用随后应用于输入的分组的特定规则或策略。
[0039]在接收到位模式规则161后,构造器能够构造分组分类树162的镜像。如所示的,在161处将模式列表供应到构造器。在162处构造镜像并且然后将镜像下载163到匹配器。镜像是以位屏蔽和查找表的形式而存储在存储器中,由匹配器相对于输入的分组使用。因此,网络中的分组157的源提供输入的分组164。由匹配器屏蔽选择的位字段来使用镜像执行模式匹配165。在匹配输入的模式之后,将对应的规则应用于每个分组。如所示的,规则的应用可以被称作分类结果。
[0040]当分类树适合作为下载的镜像时,通过遍历树来执行给定位的模式的查找。在图4中,开始于树180的根181,每个步骤包括选择许多分支或子节点183A到183N中的一个,直至到达叶节点或最终节点187AU87B。在根节点181处的分组分类结果通向在183A到183N的第二级节点处的一个特定节点(在图示的示例中,第二级节点是所有分支节点)。然而,根节点还可直接指向用于一些分类匹配的叶节点。每个分支节点指向第三级节点,它们可以是分支节点185A到A85N或叶节点187A、187B。
[0041]如所示的,从图示的分支节点可存在更多分支,其可导致更多分支和更多叶节点。每个叶节点具有有限数量的规则。通过直接模式匹配来确定用于特定分组的规则。可以快速线性遍历在叶节点处的少量规则。通过改进树的设计,可在效率和速度中改进分组分类器。可确定在每个叶节点处的规则的数量以便平衡速度和效率以及树复杂性。当每个叶节点只有单个节点时,可更快速地遍历树。然而,这极大地增加了树的复杂性和查找表的大小。对于每个子节点,可考虑规则的数量。如果数量很大,则可将子节点分配为分支节点(在下一级分支到两个或者更多子节点)。
[0042]在树内的每个位置(表示为‘目前节点’),通过使用由位屏蔽制订的分组的位作出多个并行表查找来作出子节点的确定。取决于硬件的架构,可使用并行或串行的位屏蔽查找。当前节点包含关于使用什么屏蔽和查找什么表的信息。组合表查找并且作出另一查找来到达下一节点的选择,参见图1。
[0043]当到达叶节点时,需要遍历有序的规则集来确定是否任何以及在该情况下哪个规则是匹配的。集合可以是空的,在这种情况下没有匹配。集合可包括单个规则,其中可出现两个情况,单个规则是匹配(完全分类的情况)或需要相对于规则检查位模式来确定它是否匹配(不完全分类的情况)。叶节点包含关于哪个情况是适用的信息。
[0044]为了能够用分类树查找中的最小数量的查找来提取最大数量的信息,在分类树的任何一个或多个节点处可使用复合屏蔽。复合屏蔽可以是任何希望长度的非重叠屏蔽的任何希望数量的组合。这样的复合屏蔽还可被称作超屏蔽。屏蔽的数量和组成复合屏蔽的个别屏蔽的长度可适应于适合任何特定应用。
[0045]在图5中示出复合屏蔽的示例。提供输入的IP分组201作为示例,然而,取决于分组分类器所应用的分组数据网络的特性,可分类其它类型的数据分组。在其它字段中,IP分组报头具有目的地地址203、源地址205和有效载荷207。分组报头还包含指示有效载荷所使用的协议的协议位序列209。由特定协议和分组类型来确定每个字段的具体位置、大小和配置,并且可如希望的修改分类树和复合屏蔽。
[0046]在图示的示例中,第一复合位屏蔽M1组合源地址上的位屏蔽与协议上的位屏蔽。为每个位屏蔽取两个特定选择的位并且组合这些来形成利用两个字段的复合屏蔽。然后将屏蔽的位应用于查找表211。在查找表处的匹配产生索引&1。
[0047]第二复合位屏蔽M2从目的地地址位屏蔽取三个位并且从源地址位屏蔽取一个位并且组合这些位用于第二查找表的应用以产生另一索引a2。在图示的示例中,使用两个复合屏蔽并且并行执行两个表查找。这减小了每个表的大小和表查找的复杂性。对于4位,如所示的,有16个可能的二进制位组合,而对于8位有256个可能的二进制位组合。其结果是,与一个8位复合屏蔽相比,通过使用每个具有4位的两个复合位屏蔽,查找更简单。
[0048]将索引a1、a2组合来确定到第三查找表215的组合索引。取决于在网络中使用的分类树的结构和分组数据业务的类型,可使用任何各种不同的组合技术。在一个示例中,每个索引乘以因子并且对乘积求和来获得到结果表215的组合索引。总和用作到表的索引(其然后提供到下一节点或到特定规则的指针217)。
[0049]可在根、分支或叶节点处以及在任何一个或多个这样的节点处执行图5的图中的操作。构造器通过考虑规则并且在一些情况下通过考虑业务来确定由位屏蔽选择的特定位。考虑规则以使选择的位是不同的位(取决于将应用的规则)。考虑业务以使相对于可能变化的位,检查几乎总是相同的位意义不大。
[0050]如以上提到的,可使用熵来设计复合屏蔽。当创建查找树时,可基于熵在树的每个节点处选择屏蔽或复合屏蔽或超屏蔽。最大化那个节点的适用规则集的熵的屏蔽应该也是最显著地减小分组分类的可能选项的屏蔽。换句话说,使用最大熵选择来遍历查找树将在用少量步骤达到结果的方面优化查找。
[0051]A位字段X可被认为匹配相同长度的给定位模式(M,P),如果 X位已知并且M=P.等式I
假定位模式的有序集合,使用熵的信息理论内容来确定任何位字段的首次匹配位模式。熵允许产生的分类树降低处理时间、分类速度以及存储器效率。
[0052]可将用于特定分组数据网络的可能位模式建模为离散随机变量B,它由多个可能的位模式b组成。可基于业务模式来选择B的特定概率分布以便优化特定应用的选择。可凭经验在线或离线地搜集业务统计或理论地开发业务统计,例如,基于理解典型分组中的位的意义和网络的目的。作为备选,可选择概率分布以便简化复合屏蔽的选择。例如,跨位字段的平坦分布(每个位同样可能等于O或1,即0/1每个具有0.5的概率)简化概率的计笪
ο
[0053]假定任何位模式屏蔽M,位模式b上的屏蔽M的概率分布pM (b)继承于B。对于分组分类,分组的位匹配到规则或策略集。对于集合中总共η个规则,有序的规则集R由规则I到n Cr1, r2,…,rn)组成。假定位模式的屏蔽M是已知的,对于屏蔽M上的每个可能的位模式b以及对于规则集R的每个规则&(第i个规则),可以确定匹配规则&的事件的概率Pm Cri).可使用以下的等式2和3来计算位屏蔽M的熵H:
H (M ) = 2 Pm Oi ) 1gC P m Oi))等式 2

2-1
Pm Cr;) = Σ Pm ib)等式 3
h
其中等式3中的和是取自屏蔽M上的所有位模式b,匹配第i个规则
[0054]如果位屏蔽限制影响规则的所有位,则在任何熵计算之前可排除那个位屏蔽(因为它将不会有助于对分组进行分类)。
[0055]此外,如果屏蔽M跨所有位均匀分布,则可从匹配相应规则1^的11上的位模式的数量中发现屏蔽的概率分布Pm (ιγ)。还可通过避免用于任何熵为零(H (M)=O)的屏蔽M的计算来简化计算。这意味着m中的所有位模式匹配相同的规则。这在以下示例中示出。
[0056]当根据本发明的一个实施例创建查找树时,在每个节点处选择的复合屏蔽是最大化所适用的规则集的熵的复合屏蔽。换句话说,为每个节点选择规则集。在一些情况下,可容易地用从更一般到更具体的层次组织规则,然而,最好的规则集排序可能是引起最快速分类的那些,而不是最有逻辑的排序。对于每个规则r,为各种屏蔽M确定熵。然后组合具有最高熵的屏蔽来产生复合屏蔽。这样的效果是遍历查找树将在用少量步骤来达到结果的方面优化查找。
[0057]作为简单的示例,考虑由只匹配IP地址字段的规则组成的IP ACL(因特网协议接入控制列表)。在此情况下,具有只在其它字段(例如,协议或端口数量)中的位的屏蔽M将具有H (M)=O0 IP地址字段的屏蔽M将具有正熵H (M)>1使得将只使用IP地址字段的屏蔽。
[0058]在一些实现中,屏蔽的长度可以是固定的并且可将总的位字段划分为固定长度的多个屏蔽。在此情况下,与允许更通用的复合屏蔽的情况相比,发现最大熵的屏蔽是直接的并且将减少构造树所需的时间。实现还可选择固定组合到复合屏蔽中的屏蔽的数量,例如,基于可用的并行存储器信道,用于进一步简化。
[0059]对于构造器和匹配器两者,基于通用位模式算法的架构是与用于具体应用的简档组合使用。具体应用简档规定数据流的位字段(它们可应用于那个应用的模式匹配)。例如,具体应用简档可规定对提取IP5-元组ACL或DPI查找的可适用位字段所必要的偏移和字段长度。
[0060]构造器和匹配器两者可使用相同的具体应用简档。构造器应用简档来将专用规则转换为二进制模式。匹配器应用简档来从数据流提取正确的位字段。
[0061]使用熵的复合屏蔽和屏蔽的生成可用于优化二进制查找算法的效率(在查找时间、处理资源和存储器使用的方面)。这改进了在现有的二进制模式查找基础设施上开发新应用的速率,由此实现上市销售的更短时间和更低的开发成本。
[0062]将参考图6和图7的示范性实施例来描述以下的流程图的操作。然而,应该理解可以由不同于本文描述的那些的本发明的实施例以及不同于参考流程图讨论的那些的操作来执行这些流程图的操作。
[0063]参考图6,图6示出用于操作分组分类器的方法。操作开始于通过网络接口接收将分类的分组。然后分组在根节点处被处理并且(如有必要)通过各种分支节点直到它被分类。在602处,在根节点处,将位屏蔽应用于分组来选择分组的位。如果使用复合位屏蔽,则从数据分组的不同的字段中选择位。基于已经被下载到分组分类器的分类树镜像来选择特定字段。可以使用来自报头、报尾位或来自有效载荷的端口字段、地址字段和其它字段。
[0064]在604处,将屏蔽的位应用于适当的位表。对于根节点,使用根节点的位表。分类树可具有用于不同节点的多个单独表或可将多个节点的位表组合到一个或多个表中并且通过地址范围、指针、索引或以一些其它方式来区分。在图5的示例中,不同的位表或位表范围用于数据分组的每个字段。位表产生用于每个字段的索引作为输出。组合这些索引来产生第二表中的指针。指针将指向分支节点、叶节点或规则。规则提供最终分类结果。取决于分组分类树的结构,可以用不同的方式来使用子表(例如,在图5中示出的那些)。取决于可用于执行功能的资源,可将屏蔽的位并行或串行地应用于子表。
[0065]在606处,在将位应用于位表后,可基于来自位表的匹配来选择分支节点。备选地,如果分组分类树允许为特定分组选择规则,则可选择规则。为了本描述的目的,选择的分支节点可以是叶节点,因为它只指向规则并且不指向任何另外分支。
[0066]在608处,在选择分支后,将新的位屏蔽应用于数据分组,特定位屏蔽取决于特定分支。分支节点位屏蔽可以是复合屏蔽或简单屏蔽。在610处,将屏蔽的位应用于分支节点位表的位表并且获得结果。结果可以是规则或到另一分支的指针。不论在此阶段处的结果,最后在612处,分类所接收的数据分组。
[0067]在610处的分支节点是叶节点的情况下,则可使用屏蔽的位通过遍历有序的规则集来分类数据分组,以确定在那个节点处的一个或多个规则是否应用于分组。
[0068]图7示出产生用于图6或分组分类的任何其它过程的分组分类树的示例。分组分类是使用位屏蔽的集合来产生。在702处,选择将充当根节点的候选位屏蔽的位屏蔽。可随机选择候选位屏蔽。在此情况下,如果字段有16位并且位屏蔽限制为2位,则存在有限数量的可能的不同可能的屏蔽。
[0069]为了减少可能的位屏蔽的数量,可分析字段和规则来减少可能的候选数量。一些位可能不影响规则或策略的选择并且可从候选位屏蔽中排除这些位。可首先排序规则使得选择指向部分或所有特定规则的位屏蔽。如以下提到的,然后在位表中实现选择的规则。
[0070]还可通过考虑业务来减少位屏蔽的数量。虽然可能有影响规则的位,但是鉴于实际业务模式,可从不使用位。还可将这样的位从候选位屏蔽中排除。
[0071]在704处,将候选位屏蔽应用于熵计算(例如,上述的熵计算)。熵可基于有关位的可能值的概率(在理论的或实际业务中假定不同的值)。可通过将每个候选位屏蔽的位模式建模为随机变量并且然后将概率分布分配到所有可能的位屏蔽的位模式的发生来确定熵。概率分布可选择为随机分布,理论上确定的概率或由类似或不同的分组网络中的实际数据业务的经验观察而确定的概率。
[0072]在706处,基于这些熵计算,选择位屏蔽作为分组分类树的根节点位屏蔽。对于复合位屏蔽,可组合多个根节点位屏蔽。可将每个位屏蔽应用于数据分组的不同字段或相同字段或相同字段和不同字段的一些组合。原则上,要选择的最佳位屏蔽是具有最高熵的那些位屏蔽。然而,在特定的实现中,由于其它考虑(例如,在通过树分类分组中的规则结构、预期业务或逻辑数据流),选择的位屏蔽可具有小于最高熵的熵。
[0073]在708处,基于选择的根节点位屏蔽,可定义将屏蔽的位与规则或树的另外分支或两者关联的分类表。分类表可设计为确定如何应用规则。如果在确定熵之前定义规则,则可在位表中使用用于熵计算的规则。
[0074]在710处,选择分支节点位屏蔽。可以用与根节点位屏蔽相同的方式选择这些分支节点位屏蔽并且可以是简单或复杂的。可使用另外的熵计算或以任何其它方式来选择分支节点位屏蔽。在一个示例中,只使用不是在根节点处确定的规则子集并且只使用不是由根节点位屏蔽选择的位来确定每个分支节点候选位屏蔽的熵。然而,可选择用于每个分支节点的特定候选位屏蔽和规则来适合本文描述的技术的任何特定应用。
[0075]在712处,在确定分支节点位屏蔽之后,则可定义用于那个位屏蔽的位表。这些可以是并行的子表的集合或可使用单个表。取决于实现,位表可指向规则、另外的分支节点或两者。
[0076]已经用位屏蔽、位表、规则和树结构来完成分组分类树的定义,在714处,可将分类树加载到网络元件以便对分组进行分类。
[0077]虽然本发明的实施例是关于IP ACL的分组分类来描述,但是本发明的实施例并不这样限制。类似的技术和设备可用于在其它类型的网络中对分组进行分类。树结构可以是简单或复杂的,具有更多或更少分支和更多或更少节点层。规则可以是用于路由的规则或用于处理数据分组的规则并且技术可应用于许多不同类型的数据分组。
[0078]例如,虽然附图中的流程图示出本发明的某些实施例所执行的操作的特定次序,但是应该理解图示的次序是提供作为示例。备选实施例可以用不同的次序来执行操作,组合某些操作,重叠某些操作等。
[0079]虽然在若干实施例的方面描述本发明,但是本领域技术人员将意识到本发明不限于描述的实施例,可以用在所附的权利要求的精神和范围内的修改和变更来实践本发明。因此描述被视为说明性的而不是限制性的。
【权利要求】
1.一种在分组数据网络的网络元件中为分组数据网络策略的应用对数据分组进行分类的方法,包括: 将根节点复合位屏蔽应用于接收的数据分组的位,所述数据分组具有多个字段中的数据,所述复合位屏蔽包括多个位屏蔽,每个位屏蔽具有不同的数据分组字段中的位; 将所述复合位屏蔽的屏蔽的位应用于根节点位表,所述复合位屏蔽的每个位屏蔽一个根节点位表; 基于根节点位表查找从所述根节点中选择分支节点; 将与选择的分支节点关联的分支节点位屏蔽应用于所述接收的数据分组的位; 将所述选择的分支节点位屏蔽的所述屏蔽的位应用于至少一个分支节点位表;以及 基于分支节点位表查找来对所述接收的数据分组进行分类。
2.如权利要求1所述的方法,其中所述多个字段包含端口字段、地址字段和报头字段。
3.如权利要求1所述的方法,还包括基于所述分类来选择要应用于所述数据分组的规则并且其中所述根节点复合位屏蔽的所述位是影响所述选择的规则是否应用于所述数据分组的位。
4.如权利要求1所述的方法,其中所述分支节点位屏蔽是复合位屏蔽并且其中应用所述选择的分支节点位屏蔽的所述屏蔽的位包括将复合位屏蔽应用于多个分支节点位表,所述复合分支节点位屏蔽的每个位屏蔽有一个分支节点位表。
5.如权利要求1所述的方法,还包括在分类所述数据分组之前从所述根节点遍历多个分支节点。
6.如权利要求1所述的方法,其中将所述屏蔽的位应用于根节点位表包括通过将不同的所述屏蔽的位应用于不同的根节点位子表来并行执行子表查找,组合并行的查找用于组合的结果,并且其中选择分支节点包括将所述组合的结果应用于分支选择查找表。
7.如权利要求1所述的方法,其中如果所述选择的分支节点是叶节点,则应用所述选择的分支节点的所述屏蔽的位包括遍历有序的规则集来确定所述规则中的一个或多个是否匹配所述数据分组。
8.—种在分组数据网络中用于为分组数据网络策略的应用分类数据分组的网络元件,所述网络元件包括: 入口模块,用于从所述分组数据网络接收数据分组,所述数据分组具有多个字段; 出口模块,用于基于策略将所述数据分组转发到另一网络元件;以及 网络处理器,有具有多个位表的分类树,所述网络处理器操作以: 将根节点复合位屏蔽应用于接收的数据分组的位,所述复合位屏蔽包括多个位屏蔽,每个位屏蔽具有不同的数据分组字段中的位; 将所述复合位屏蔽的所述屏蔽的位应用于根节点位表,所述复合位屏蔽的每个位屏蔽一个根节点位表; 基于根节点位表查找从所述根节点中选择分支节点; 将与所述选择的分支节点关联的分支节点位屏蔽应用于所述接收的数据分组的位; 将所述选择的分支节点位屏蔽的所述屏蔽的位应用于至少一个分支节点位表;以及 基于分支节点位表查找来分类所述接收的数据分组。
9.如权利要求8所述的网络元件,其中所述分类树还包括从所述根节点到叶节点的多个分支节点并且其中在分类所述数据分组之前所述网络处理器遍历多个分支节点。
10.如权利要求8所述的网络元件,其中所述网络处理器包括用于所述分类树的每个分支的分支选择查找表并且其中所述网络处理器通过将不同的所述屏蔽的位应用于不同的根节点位子表来并行执行子表查找,组合并行的查找用于组合的结果,并且通过将所述组合的结果应用于相应的当前节点的分支选择查找表来选择分支节点。
11.一种为由分组数据网络的网络元件用于为分组数据网络策略的应用分类数据分组的分组分类树生成位屏蔽的序列的方法,所述方法包括: 选择多个位屏蔽作为候选根节点位屏蔽; 基于屏蔽的位的不同的值的概率来为每个所述位屏蔽计算熵; 从所述候选根节点位屏蔽选择位屏蔽作为所述分组分类树的根节点位屏蔽; 为所述选择的位屏蔽定义根节点位表来指向所述分组分类树的分支; 选择分支节点位屏蔽; 定义分支节点位表来指向策略以分类数据分组。
12.如权利要求11所述的方法,其中所述分组数据网络的所述数据分组具有多个字段并且所述位屏蔽适用于所述数据分组的不同字段。
13.如权利要求11所述的方法,其中计算熵包括: 将可能的位屏蔽的位模式建模为离散随机变量; 将概率分布分配到所述可能的位屏蔽的所述位模式的发生;以及 为所述可能的位屏蔽的每个位模式计算熵。
14.如权利要求13所述的方法,其中分配概率分布包括应用所述分组数据网络的数据分组的业务统计来确定位模式的所述发生的概率。
15.如权利要求13所述的方法,还包括为所述根节点分配规则集并且其中计算熵包括为分配的规则集计算熵。
16.如权利要求11所述的方法,其中选择位屏蔽包括选择具有高熵的位屏蔽。
17.如权利要求11所述的方法,其中选择多个位屏蔽还包括确定不影响策略的选择的位并且从所述选择的多个位屏蔽排除所述确定的位。
18.如权利要求11所述的方法,其中选择多个位屏蔽包括为数据分组的不同的字段的位选择位屏蔽并且其中选择位屏蔽作为根节点位屏蔽包括为不同的字段选择位屏蔽并且组合所述位屏蔽来形成作为所述根节点位屏蔽的复合位屏蔽。
19.如权利要求11所述的方法,还包括: 选择第二多个位屏蔽; 基于所述屏蔽的位的不同的值的概率来为所述第二多个位屏蔽的每个位屏蔽计算熵;以及选择所述第二多个位屏蔽的位屏蔽的子集作为所述分组分类树的分支节点。
20.一种具有存储于其上的指令的非暂时性计算机可读介质,所述指令当由机器执行时使所述机器执行操作,用于为由分组数据网络的网络元件用于为分组数据网络策略的应用分类数据分组的分组分类树生成位屏蔽的序列,所述操作包括: 选择多个位屏蔽作为候选根节点位屏蔽; 基于屏蔽的位的不同的值的概率来为每个所述位屏蔽计算熵; 从所述候选根节点位屏蔽选择位屏蔽作为所述分组分类树的根节点位屏蔽; 为所述选择的位屏蔽定义根节点位表来指向所述分组分类树的分支; 选择分支节点位屏蔽; 定义分支节点位表来指向策略以分类数据分组, 其中所述分组数据网络的所述数据分组具有多个字段并且所述位屏蔽适用于所述数据分组的不同字段。
21.如权利要求20所述的介质,其中计算熵包括: 将可能的位屏蔽的位模式建模为离散随机变量; 将概率分布分配到所述可能的位屏蔽的所述位模式的发生;以及 为所述可能的位屏蔽的每个位模式计算熵。
22.如权利要求20所述的介质,其中所述操作还包括将所述分类树加载到分组数据网络的网络元件。
【文档编号】H04L12/801GK104137494SQ201380011759
【公开日】2014年11月5日 申请日期:2013年2月22日 优先权日:2012年2月29日
【发明者】L.伊尔恩斯特伦 申请人:瑞典爱立信有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1