CN102420831A - 一种多域网包分类方法 - Google Patents

一种多域网包分类方法 Download PDF

Info

Publication number
CN102420831A
CN102420831A CN2011104253852A CN201110425385A CN102420831A CN 102420831 A CN102420831 A CN 102420831A CN 2011104253852 A CN2011104253852 A CN 2011104253852A CN 201110425385 A CN201110425385 A CN 201110425385A CN 102420831 A CN102420831 A CN 102420831A
Authority
CN
China
Prior art keywords
node
array
current
data structure
classifying rules
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2011104253852A
Other languages
English (en)
Other versions
CN102420831B (zh
Inventor
王翔
亓亚烜
李军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CERTUSNET CORP.
Original Assignee
Tsinghua University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN201110425385.2A priority Critical patent/CN102420831B/zh
Publication of CN102420831A publication Critical patent/CN102420831A/zh
Application granted granted Critical
Publication of CN102420831B publication Critical patent/CN102420831B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种多域网包分类方法,涉及网络监控领域。所述方法包括步骤:根据分类规则生成网包分类的查找数据结构的中间结果;在所述查找数据结构的中间结果中,内部节点采用位图压缩存储其所对应的子节点的索引信息;对所述查找数据结构的中间结果进行归一化压缩,生成网包分类的查找数据结构的最终结果;根据所述查找数据结构的最终结果,进行多域网包分类处理。所述方法,每次对待切分空间按照固定的份数均匀切分,采用位图数组和偏移信息数组的方式压缩存储查找数据结构的节点信息,并对位图数组和偏移信息数组进一步进行归一化压缩,有效减小了查找数据结构中的数据冗余,使得相应的查找数据结构适合软件方式和硬件方式的双重实现。

Description

一种多域网包分类方法
技术领域
本发明涉及网络监控技术领域,特别涉及一种多域网包分类方法。
背景技术
多域网包分类是网络设备中的基本功能。其应用方式是用户根据具体分类需求,选择网包包头中的相关域(或维度)建立分类规则的集合;网络设备通过检查流经自身网包中分类规则定义的相关域,判定网包匹配分类规则集合中的哪条规则,完成分类过程。多域网包分类问题本质上是多维空间中的点定位问题:分类规则中的每个域的取值范围张成了整个多维空间,每条分类规则对应到整个多维空间中的一个子空间,每个待分类的网包包头中的相关域的取值相当于一个待定位的点,分类的过程等价于判定上述待定位的点属于哪个子空间。
多域网包分类的实现方法直接影响了网络设备的性能,因此,该问题在学术界和工业界一直备受关注。目前,高端策略路由器及防火墙等安全设备大多采用专用硬件方案来实现。基于硬件的实现方式能够达到高分类速率,但是开发周期长、更新难度高。基于软件的实现方式具有高灵活性,但是很难达到较高的处理性能。这些软件的实现方式一般通过对算法的处理复杂度和占用空间进行折中,来平衡算法的处理性能和灵活性。因此,很难保证算法具有确定性的分类速率和较小的空间占用。同时,大部分基于软件的多域网包分类的实现方式,由于其数据结构和处理过程的复杂性和不一致性,很难移植到硬件上进行实现。
现有多域网包分类方法的软件实现方式大多如下:根据分类规则的集合,预先建立决策树类型的查找数据结构;对网包的分类过程通过在决策树中进行查找来完成。决策树中的根节点相当于整个多维空间,决策树中的每一级相当于对多维空间在某一维度上进行了一次切分,决策树中的每一级上的多个节点相当于对多维空间在某一维度上进行了一次切分后产生的多个子空间。通过对多维空间进行不断地切分,每个子空间不断缩小,直到决策树上的所有叶子节点都只涵盖分类规则中某一条特定规则时,决策树构建完成。网络设备对网包进行分类时,根据网包中分类规则定义的相关域上的取值,在决策树中逐级进行查找,直到叶子节点为止。
下表1描述了一个用户定义的分类规则集合,该集合中的所有规则都基于两个域(X和Y)进行描述。图1是对应表1所述分类规则集合的几何图形表示。
表1分类规则集合表
Figure BDA0000121350550000021
图2是对应表1所述分类规则集合的决策树类型的数据结构表示。最下一行的节点为叶子节点;除叶子节点以外的节点为内部节点(包括根节点和中间一行节点)。每个节点内部存储如下信息:(1)该节点所代表的空间需要在哪一维度上进行进一步的切分;该切分把当前空间分成多少个子空间(例如,node-0节点代表整个二维空间,cuts:Y-4表示对整个二维空间在Y维度上进行进一步切分,分成4份)。(2)切分后所产生的子空间所对应节点的索引信息(例如,node-0节点中以数组的形式存储其子节点的索引信息,数组中的每个元素是子节点的指针/地址)。从该数据结构中我们可以看出两个问题:(1)每个节点存储的信息不具有统一的格式,这样会导致在后续的查找过程中需要针对每个节点进行特殊的处理(例如,node-2和node-3,它们进行进一步切分的份数不相同,所需要存储的子节点的索引信息也不相同:node-2需要存储4个子节点的索引信息,node-3需要存储2个子节点的索引信息)。(2)每个节点存储的信息量太大,具有较多的冗余,这样会导致查找数据结构占用的空间较大,很难适应分类规则集合中规则的数量过多的情况(例如,每个节点中为了存储子节点的索引信息,使用了指针数组;每个指针在32位系统下占用4个字节,整个决策树中所有节点占用的空间加起来相当可观)。
图3是Bitmap压缩原理示意图。如图3所示,Bitmap(位图)压缩是一种常用的数组压缩存储技术,其将原始数组Ao中连续且具有相同内容的数据元素进行合并,仅使用一个数组元素对连续相同的内容进行存储,生成压缩之后的数组Ac;同时,使用一张位图表,利用表中的位标识具备相同内容的数据元素的个数及区间范围。通常情况下,原始数组中数据元素的连续重复性越好,即具备相同内容的数据元素的个数较多且分布连续,采用Bitmap压缩后的效果越好。图3中,Ao是一个具有8个元素且每个元素为一个字节的原始数组;Ac是经过Bitmap压缩之后生成的数组。Ao数组中前4个元素相同,因此在Ac中可用一个元素存储;Ao数组中最后两个元素同理。Bitmap可用一个字节中的8个位来存储,因此,原始数组需要占用8个字节,而经过Bitmap压缩之后只需要占用4+1个字节。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何提供一种多域网包分类方法,以减小查找数据结构中的数据冗余,使得相应的查找数据结构适合软件方式和硬件方式的双重实现。
(二)技术方案
为解决上述技术问题,本发明提供一种多域网包分类方法,其包括步骤:
A:根据分类规则生成网包分类的查找数据结构的中间结果;在所述查找数据结构的中间结果中,内部节点采用位图压缩存储其所对应的子节点的索引信息;
B:对所述查找数据结构的中间结果进行归一化压缩,生成网包分类的查找数据结构的最终结果;
C:根据所述查找数据结构的最终结果,进行多域网包分类处理。
优选地,所述步骤A具体包括步骤:
A1:定义分类规则全集R0,对应所述分类规则全集R0的全空间S0和根节点N0,并且将所述分类规则全集R0、全空间S0和根节点N0作为三元组放入待处理队列;
A2:从所述待处理队列中取出当前第一个三元组,所述当前第一个三元组包括:当前分类规则集合R、当前待切分空间S和当前节点N;
A3:判断当前分类规则集合R中的每个分类规则对应的空间是否均包含当前待切分空间S,如果是,执行步骤A8;否则,执行步骤A4;
A4:判定当前节点N为内部节点,在当前切分维度上将当前待切分空间S均匀切分为预定值个子空间,将当前分类规则集合R对应切分为所述预定值个规则子集合;
A5:判断所述预定值个子空间中是否存在满足以下条件的两个或者多个子空间:所述两个或者多个子空间对应的规则子集合中的分类规则相同,并且每个子空间对应的规则子集合中的各个分类规则在当前切分维度上的投影相同;如果是,合并所述两个或者多个子空间为一个子空间,合并所述两个或者多个子空间对应的规则子集合为一个规则子集合,执行步骤A6;否则,直接执行步骤A6;
A6:依次生成对应最终得到的各子空间的子节点作为所述当前节点N的子节点,将最终得到各规则子集合、对应所述规则子集合的子空间和子节点组成的新的三元组依次放入所述待处理队列中;
A7:记录当前节点N的切分维度为当前切分维度,记录当前节点N的第一个子节点的地址,采用位图数组和偏移信息数组压缩存储当前节点N的其他子节点相对所述第一子节点的地址偏移信息,执行步骤A2;
A8:判定当前节点N为叶节点,记录当前节点N的切分维度为保留值,记录对应当前节点N的分类规则为当前分类规则集合R中的分类规则,根据当前节点N的分类规则记录对应当前节点N的操作信息,执行步骤A9;
A9:判断所述待处理队列是否为空,如果是,将最终得到的树形结构作为查找数据结构的中间结果,执行步骤B,否则执行步骤A2。
优选地,所述当前切分维度满足:按照当前切分维度对当前待切分空间S切分后,得到的所有子空间对应的规则子集合中的所有分类规则重复出现的次数最少。
优选地,所述预定值为256。
优选地,所述步骤B具体包括步骤:
B1:将所有所述内部节点的位图数组作为位图集合中的元素,将所有所述内部节点的偏移信息数组作为偏移信息集合中的元素,将所述偏移信息数组中非最长元素补齐至最长;
B2:删除所述位图集合中的重复元素,对所述位图集合中的剩余元素进行排序;删除所述偏移信息集合中的重复元素,对所述偏移信息集合中的剩余元素进行排序;
B3:按照广度优先方式遍历查找数据结构的中间结果对应的树形结构,按照遍历顺序在最终结果数组中记录每个内部节点的切分维度、每个内部节点对应的位图数组在所述位图集合中的序号、每个内部节点对应的偏移信息数组在所述偏移信息集合中的序号、每个内部节点的第一子节点在所述最终结果数组中的序号,记录每个叶节点对应的切分维度、分类规则和操作信息,将所述最终结果数组、位图集合和偏移信息集合作为生成网包分类的查找数据结构的最终结果。
优选地,所述步骤C具体包括步骤:
C1:令所述最终结果数组中的第一个节点为当前参考节点;
C2:判断当前参考节点对应的切分维度是否为保留值,如果是,返回当前参考节点对应的分类规则和操作信息,分类结束;否则,执行步骤C3;
C3:选择待分类网包在与当前参考节点对应的切分维度相同的维度上的取值,确定所述取值对应的当前参考节点的子节点序号i;
C4:计算当前参考节点对应的位图数组中前i个位之和s,查找当前参考节点对应的偏移信息数组中序号s对应的值Os,将当前参考节点的第一子节点在所述最终结果数组中的序号b与Os做和,得到下一跳节点的地址;
C5:根据下一跳节点的地址找到下一跳节点,将下一跳节点作为当前参考节点,执行步骤C2。
(三)有益效果
本发明所述多域网包分类方法,每次对待切分空间按照固定的份数均匀切分,采用位图数组和偏移信息数组的方式压缩存储查找数据结构的节点信息,并对位图数组和偏移信息数组进一步进行归一化压缩,有效减小了查找数据结构中的数据冗余,使得相应的查找数据结构适合软件方式和硬件方式的双重实现。并且,所述方法可保证在固定操作次数内完成空间搜索,使得所述方法在最坏情况下的性能能够得到保障。
附图说明
图1是对应表1所述分类规则集合的几何图形表示;
图2是对应表1所述分类规则集合的决策树类型的数据结构表示;
图3是Bitmap压缩原理示意图;
图4是本发明实施例所述多域网包分类方法流程图;
图5是查找数据结构的中间结果示意图;
图6是查找数据结构的最终结果示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
图4是本发明实施例所述多域网包分类方法流程图。如图4所示,所述方法包括步骤:
A:根据分类规则生成网包分类的查找数据结构的中间结果;在所述查找数据结构的中间结果中,内部节点采用位图压缩存储其所对应的子节点的索引信息。
所述步骤A具体包括步骤:
A1:定义分类规则全集R0,对应所述分类规则全集R0的全空间S0和根节点N0,并且将所述分类规则全集R0、全空间S0和根节点N0作为三元组放入待处理队列。仍以图1所示分类规则为例,则分类规则全集R0={r1,r2,r3,r4},全空间S0={x∈[0000,1111],y∈[0000,1111]}。
A2:从所述待处理队列中取出当前第一个三元组,所述当前第一个三元组包括:当前分类规则集合R、当前待切分空间S和当前节点N。所述待处理队列按照先进先出的原则管理其中的三元组。第一次被取出的三元组即(R0,S0,N0)。
A3:判断当前分类规则集合R中的每个分类规则对应的空间是否均包含当前待切分空间S,如果是,执行步骤A8;否则,执行步骤A4。仍以图1所示分类规则为例,第一次执行该步骤时,当前分类规则集合R=R0={r1,r2,r3,r4},其中的分类规则,只有r4对应的空间包含当前待切分空间S=S0={x∈[0000,1111],y∈[0000,1111]},其他分类规则r1,r2,r3均不满足。
A4:判定当前节点N为内部节点,在当前切分维度上将当前待切分空间S均匀切分为预定值个子空间,将当前分类规则集合R对应切分为所述预定值个规则子集合。所述当前切分维度满足:按照当前切分维度对当前待切分空间S切分后,得到的所有子空间对应的规则子集合中的所有分类规则重复出现的次数最少。本实施例中所述预定值为4,实际应用当中,所述预定值可以为256。仍以图1所示分类规则为例,第一次切分,选择在Y维度进行切分,将整个空间切平均切分为4份,从下至上得到4个子空间S1={x∈[0000,1111],y∈[0000,0011]}、S2={x∈[0000,1111],y∈[0100,0111]}、S3={x∈[0000,1111],y∈[1000,1011]}和S4={x∈[0000,1111],y∈[1100,1111]}。
A5:判断所述预定值个子空间中是否存在满足以下条件的两个或者多个子空间:所述两个或者多个子空间对应的规则子集合中的分类规则相同,并且每个子空间对应的规则子集合中的各个分类规则在当前切分维度上的投影相同;如果是,合并所述两个或者多个子空间为一个子空间,合并所述两个或者多个子空间对应的规则子集合为一个规则子集合,执行步骤A6;否则,直接执行步骤A6。仍以图1所示分类规则为例,第一次切分后,子空间S3和S4满足上述合并规则,因此,两者合并为一个子空间S3’。
A6:依次生成对应最终得到的各子空间的子节点作为所述当前节点N的子节点,将最终得到各规则子集合、对应所述规则子集合的子空间和子节点组成的新的三元组依次放入所述待处理队列中。
A7:记录当前节点N的切分维度为当前切分维度,记录当前节点N的第一个子节点的地址,采用位图数组和偏移信息数组压缩存储当前节点N的其他子节点相对所述第一子节点的地址偏移信息,执行步骤A2。
A8:判定当前节点N为叶节点,记录当前节点N的切分维度为保留值,记录对应当前节点N的分类规则为当前分类规则集合R中的分类规则,根据当前节点N的分类规则记录对应当前节点N的操作信息,执行步骤A9。
A9:判定所述待处理队列是否为空,如果是,将最终得到的树形结构作为查找数据结构的中间结果,执行步骤B,否则执行步骤A2。图5是查找数据结构的中间结果示意图。对应图1所示分类规则,经过所述步骤A的处理后,得到图5所示查找数据结构的中间结果。以图5中根节点node-0为例说明如下:Y表示根节点node-0的切分维度为Y,即需要在Y维度上对根节点node-0对应的空间进行进一步切分;P1是根节点node-0的第一个子节点的指针或者地址;<0,1,1,0>是根节点node-0的位图数组;<0,1,2>是根节点node-0的偏移信息数组。假设需要查找根节点node-0的第二子节点,则计算位图数组<0,1,1,0>的前两位之和为1;进而到偏移信息数组<0,1,2>中查找对应序号1的偏移量,查找结果为1(偏移信息数组中元素序号从0开始);进而由P1的地址加上1单位的地址偏移量,得到根节点node-0的第二子节点的地址。经计算根节点node-0的第三和第四子节点对应第一种子节点的地址偏移量均为2个单位,因此,可以推知第三和第四子节点对应的子空间合并为了一个空间,对应合并得到一个空间生成了子节点node-3。由图5可以看到,各内部节点中存储的位图数组和偏移信息数组存在很多相同的冗余信息,可以进行进一步的压缩。
B:对所述查找数据结构的中间结果进行归一化压缩,生成网包分类的查找数据结构的最终结果。
所述步骤B具体包括步骤:
B1:将所有所述内部节点的位图数组作为位图集合中的元素,将所有所述内部节点的偏移信息数组作为偏移信息集合中的元素,将所述偏移信息数组中非最长元素补齐至最长。以图5所示查找数据结构的中间结果为例,节点node-3的偏移信息数组为<0,1>,而其他节点的偏移信息数组中均为3个元素。因此,在进行进一步压缩之前,需要统一各偏移信息数组的格式。为了统一格式,可以对节点node-3的偏移信息数组任意补齐至于其他偏移信息数组元素个数相同,比如补齐为<0,1,2>。由于本实施例通过偏移信息数组和位图数组的配合实现对子节点的查找,因此,被补充的2在查找过程中并不会被使用,因此,不过造成查找错误。
B2:删除所述位图集合中的重复元素,对所述位图集合中的剩余元素进行排序;删除所述偏移信息集合中的重复元素,对所述偏移信息集合中的剩余元素进行排序。
B3:按照广度优先方式遍历查找数据结构的中间结果对应的树形结构,按照遍历顺序在最终结果数组中记录每个内部节点的切分维度、每个内部节点对应的位图数组在所述位图集合中的序号、每个内部节点对应的偏移信息数组在所述偏移信息集合中的序号、每个内部节点的第一子节点在所述最终结果数组中的序号,记录每个叶节点对应的切分维度、分类规则和操作信息,将所述最终结果数组、位图集合和偏移信息集合作为生成网包分类的查找数据结构的最终结果。图6是查找数据结构的最终结果示意图。如图6所示,最终结果包括左侧实线框中的最终结果数组和右侧虚线框中的位图表和偏移信息表。其中,最终结果数组存储在内存中,存储了内部节点和叶节点的主要信息;位图表和偏移信息表均存储在缓存中,便于调用,并且位图表存储了去除了冗余信息后的位图集合,偏移信息表存储了去除冗余信息后的偏移信息集合。
C:根据所述查找数据结构的最终结果,进行多域网包分类处理。
所述步骤C具体包括步骤:
C1:令所述最终结果数组中的第一个节点为当前参考节点;
C2:判断当前参考节点对应的切分维度是否为保留值,如果是,返回当前参考节点对应的分类规则和操作信息,分类结束;否则,执行步骤C3。
C3:选择待分类网包在与当前参考节点对应的切分维度相同的维度上的取值,确定所述取值对应的当前参考节点的子节点序号i。
C4:计算当前参考节点对应的位图数组中前i个位之和s,查找当前参考节点对应的偏移信息数组中序号s对应的值Os,将当前参考节点的第一子节点在所述最终结果数组中的序号b与Os做和,得到下一跳节点的地址。以图6所示示意图为例,假设经步骤C3,确定需要查找节点node-0的第二子节点,即子节点序号为i=2;由节点node-0中记载可知其对应的位图数组为位图表中bmp0一行,其对应偏移信息数组为偏移信息表中off0一行;计算bmp0一行前2个位之和,得到s=1;查找偏移信息表中off0一行中序号1对应的值Os=1;节点node-0的第二子节点的地址为:节点node-0的第一子节点node-1在最终结果数组中的序号b=1与Os=1之和,即节点node-0的第二子节点为最终结果数组中序号为2的节点,即节点node-2。
C5:根据下一跳节点的地址找到下一跳节点,将下一跳节点作为当前参考节点,执行步骤C2。
本发明实施例所述多域网包分类方法,每次对待切分空间按照固定的份数均匀切分,采用位图数组和偏移信息数组的方式压缩存储查找数据结构的节点信息,并对位图数组和偏移信息数组进一步进行归一化压缩,有效减小了查找数据结构中的数据冗余,使得相应的查找数据结构适合软件方式和硬件方式的双重实现。并且,所述方法可保证在固定操作次数内完成空间搜索,使得所述方法在最坏情况下的性能能够得到保障。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。

Claims (6)

1.一种多域网包分类方法,其特征在于,包括步骤:
A:根据分类规则生成网包分类的查找数据结构的中间结果;在所述查找数据结构的中间结果中,内部节点采用位图压缩存储其所对应的子节点的索引信息;
B:对所述查找数据结构的中间结果进行归一化压缩,生成网包分类的查找数据结构的最终结果;
C:根据所述查找数据结构的最终结果,进行多域网包分类处理。
2.如权利要求1所述的方法,其特征在于,所述步骤A具体包括步骤:
A1:定义分类规则全集R0,对应所述分类规则全集R0的全空间S0和根节点N0,并且将所述分类规则全集R0、全空间S0和根节点N0作为三元组放入待处理队列;
A2:从所述待处理队列中取出当前第一个三元组,所述当前第一个三元组包括:当前分类规则集合R、当前待切分空间S和当前节点N;
A3:判断当前分类规则集合R中的每个分类规则对应的空间是否均包含当前待切分空间S,如果是,执行步骤A8;否则,执行步骤A4;
A4:判定当前节点N为内部节点,在当前切分维度上将当前待切分空间S均匀切分为预定值个子空间,将当前分类规则集合R对应切分为所述预定值个规则子集合;
A5:判断所述预定值个子空间中是否存在满足以下条件的两个或者多个子空间:所述两个或者多个子空间对应的规则子集合中的分类规则相同,并且每个子空间对应的规则子集合中的各个分类规则在当前切分维度上的投影相同;如果是,合并所述两个或者多个子空间为一个子空间,合并所述两个或者多个子空间对应的规则子集合为一个规则子集合,执行步骤A6;否则,直接执行步骤A6;
A6:依次生成对应最终得到的各子空间的子节点作为所述当前节点N的子节点,将最终得到各规则子集合、对应所述规则子集合的子空间和子节点组成的新的三元组依次放入所述待处理队列中;
A7:记录当前节点N的切分维度为当前切分维度,记录当前节点N的第一个子节点的地址,采用位图数组和偏移信息数组压缩存储当前节点N的其他子节点相对所述第一子节点的地址偏移信息,执行步骤A2;
A8:判定当前节点N为叶节点,记录当前节点N的切分维度为保留值,记录对应当前节点N的分类规则为当前分类规则集合R中的分类规则,根据当前节点N的分类规则记录对应当前节点N的操作信息,执行步骤A9;
A9:判断所述待处理队列是否为空,如果是,将最终得到的树形结构作为查找数据结构的中间结果,执行步骤B,否则执行步骤A2。
3.如权利要求2所述的方法,其特征在于,所述当前切分维度满足:按照当前切分维度对当前待切分空间S切分后,得到的所有子空间对应的规则子集合中的所有分类规则重复出现的次数最少。
4.如权利要求2所述的方法,其特征在于,所述预定值为256。
5.如权利要求2所述的方法,其特征在于,所述步骤B具体包括步骤:
B1:将所有所述内部节点的位图数组作为位图集合中的元素,将所有所述内部节点的偏移信息数组作为偏移信息集合中的元素,将所述偏移信息数组中非最长元素补齐至最长;
B2:删除所述位图集合中的重复元素,对所述位图集合中的剩余元素进行排序;删除所述偏移信息集合中的重复元素,对所述偏移信息集合中的剩余元素进行排序;
B3:按照广度优先方式遍历查找数据结构的中间结果对应的树形结构,按照遍历顺序在最终结果数组中记录每个内部节点的切分维度、每个内部节点对应的位图数组在所述位图集合中的序号、每个内部节点对应的偏移信息数组在所述偏移信息集合中的序号、每个内部节点的第一子节点在所述最终结果数组中的序号,记录每个叶节点对应的切分维度、分类规则和操作信息,将所述最终结果数组、位图集合和偏移信息集合作为生成网包分类的查找数据结构的最终结果。
6.如权利要求5所述的方法,其特征在于,所述步骤C具体包括步骤:
C1:令所述最终结果数组中的第一个节点为当前参考节点;
C2:判断当前参考节点对应的切分维度是否为保留值,如果是,返回当前参考节点对应的分类规则和操作信息,分类结束;否则,执行步骤C3;
C3:选择待分类网包在与当前参考节点对应的切分维度相同的维度上的取值,确定所述取值对应的当前参考节点的子节点序号i;
C4:计算当前参考节点对应的位图数组中前i个位之和s,查找当前参考节点对应的偏移信息数组中序号s对应的值Os,将当前参考节点的第一子节点在所述最终结果数组中的序号b与Os做和,得到下一跳节点的地址;
C5:根据下一跳节点的地址找到下一跳节点,将下一跳节点作为当前参考节点,执行步骤C2。
CN201110425385.2A 2011-12-16 2011-12-16 一种多域网包分类方法 Active CN102420831B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110425385.2A CN102420831B (zh) 2011-12-16 2011-12-16 一种多域网包分类方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110425385.2A CN102420831B (zh) 2011-12-16 2011-12-16 一种多域网包分类方法

Publications (2)

Publication Number Publication Date
CN102420831A true CN102420831A (zh) 2012-04-18
CN102420831B CN102420831B (zh) 2014-07-02

Family

ID=45945066

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110425385.2A Active CN102420831B (zh) 2011-12-16 2011-12-16 一种多域网包分类方法

Country Status (1)

Country Link
CN (1) CN102420831B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103888350A (zh) * 2014-03-31 2014-06-25 清华大学 一种多域网包分类规则集的分组方法
CN103986667A (zh) * 2014-05-07 2014-08-13 华为技术有限公司 选择数据包分类算法的方法和装置
CN103995887A (zh) * 2014-05-30 2014-08-20 上海达梦数据库有限公司 位图索引压缩方法和位图索引解压方法
CN104462144A (zh) * 2013-09-24 2015-03-25 中兴通讯股份有限公司 一种包分类规则的查找方法及装置
WO2016173541A1 (en) * 2015-04-30 2016-11-03 Hangzhou H3C Technologies Co., Ltd. Packet classification
CN106096022A (zh) * 2016-06-22 2016-11-09 杭州迪普科技有限公司 多域网包分类规则的划分方法及装置
WO2018149278A1 (zh) * 2017-02-14 2018-08-23 中兴通讯股份有限公司 存储系统页内脏数据索引方法和装置
CN111628935A (zh) * 2020-05-26 2020-09-04 清华大学 适用于软件定义网络的数据包分类方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102148746A (zh) * 2010-02-05 2011-08-10 中兴通讯股份有限公司 一种报文分类方法和系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102148746A (zh) * 2010-02-05 2011-08-10 中兴通讯股份有限公司 一种报文分类方法和系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
QI YAXUAN,ETC: "High-Performance Packet Classification on Multi-Core Network Processing Platforms", 《TSINGHUA SCIENCE AND TECHNOLOGY》, vol. 16, no. 4, 31 August 2011 (2011-08-31) *
YAXUAN QI,ETC: "Packet Classification Algorithms: From Theory to Practice", 《IEEE INFOCOM 2009》, 25 April 2009 (2009-04-25) *

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104462144A (zh) * 2013-09-24 2015-03-25 中兴通讯股份有限公司 一种包分类规则的查找方法及装置
CN104462144B (zh) * 2013-09-24 2019-06-14 中兴通讯股份有限公司 一种包分类规则的查找方法及装置
WO2015043254A1 (zh) * 2013-09-24 2015-04-02 中兴通讯股份有限公司 一种包分类规则的查找方法及装置
CN103888350B (zh) * 2014-03-31 2017-04-19 清华大学 一种多域网包分类规则集的分组方法
CN103888350A (zh) * 2014-03-31 2014-06-25 清华大学 一种多域网包分类规则集的分组方法
CN103986667A (zh) * 2014-05-07 2014-08-13 华为技术有限公司 选择数据包分类算法的方法和装置
CN103986667B (zh) * 2014-05-07 2017-10-10 华为技术有限公司 选择数据包分类算法的方法和装置
CN103995887A (zh) * 2014-05-30 2014-08-20 上海达梦数据库有限公司 位图索引压缩方法和位图索引解压方法
CN103995887B (zh) * 2014-05-30 2017-04-05 上海达梦数据库有限公司 位图索引压缩方法和位图索引解压方法
WO2016173541A1 (en) * 2015-04-30 2016-11-03 Hangzhou H3C Technologies Co., Ltd. Packet classification
US10425343B2 (en) 2015-04-30 2019-09-24 Hewlett Packard Enterprise Development Lp Packet classification
CN106096022B (zh) * 2016-06-22 2020-02-11 杭州迪普科技股份有限公司 多域网包分类规则的划分方法及装置
CN106096022A (zh) * 2016-06-22 2016-11-09 杭州迪普科技有限公司 多域网包分类规则的划分方法及装置
US10949761B2 (en) 2016-06-22 2021-03-16 Hangzhou Dptech Technologies Co., Ltd. Partitioning of packet classification rules
WO2018149278A1 (zh) * 2017-02-14 2018-08-23 中兴通讯股份有限公司 存储系统页内脏数据索引方法和装置
CN111628935A (zh) * 2020-05-26 2020-09-04 清华大学 适用于软件定义网络的数据包分类方法及装置
CN111628935B (zh) * 2020-05-26 2021-02-12 清华大学 适用于软件定义网络的数据包分类方法及装置

Also Published As

Publication number Publication date
CN102420831B (zh) 2014-07-02

Similar Documents

Publication Publication Date Title
CN102420831B (zh) 一种多域网包分类方法
CN106484877B (zh) 一种基于hdfs的文件检索系统
Angel et al. Dense subgraph maintenance under streaming edge weight updates for real-time story identification
CN104408163B (zh) 一种数据分级存储方法和装置
CN109903049A (zh) 一种区块链交易数据存储方法、装置、设备及存储介质
US20090150603A1 (en) Low power ternary content-addressable memory (tcams) for very large forwarding tables
CN107045422A (zh) 分布式存储方法和设备
CN107944705B (zh) 一种基于模块度划分通信社团的全端可靠性计算方法
CN107045531A (zh) 一种优化hdfs小文件存取的系统及方法
CN103399902A (zh) 一种并行环境下的有向图可达性链表生成及查询方法
CN105843933B (zh) 分布式内存列式数据库的索引建立方法
Jaiyeoba et al. Graphtinker: A high performance data structure for dynamic graph processing
CN104933143B (zh) 获取推荐对象的方法及装置
WO2013138441A1 (en) Systems, methods, and software for computing reachability in large graphs
CN106416151A (zh) 用于分组处理的基于多表哈希查找
CN108093024B (zh) 一种基于数据频度的分类路由方法及装置
Zhang et al. SUMMA: subgraph matching in massive graphs
CN113535732A (zh) 面向信誉-行为关联双区块链的可验证查询优化方法
CN109407985A (zh) 一种数据管理的方法以及相关装置
Hsieh et al. Multiprefix trie: A new data structure for designing dynamic router-tables
CN101741708A (zh) 一种存储数据的方法、装置及系统
Kanizo et al. Access-efficient balanced bloom filters
CN104932982B (zh) 一种消息访存的编译方法及相关装置
Zhang et al. OBMA: Minimizing bitmap data structure with fast and uninterrupted update processing
Firth et al. Loom: Query-aware partitioning of online graphs

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20171227

Address after: 210042 Xuanwu District, Xuanwu District, Jiangsu, Nanjing, No. 699-22, building 18

Patentee after: CERTUSNET CORP.

Address before: 100084 Beijing Haidian District Tsinghua Yuan 100084-82 mailbox

Patentee before: Tsinghua University

TR01 Transfer of patent right