[发明专利]一种多域网包分类方法有效
申请号: | 201110425385.2 | 申请日: | 2011-12-16 |
公开(公告)号: | CN102420831A | 公开(公告)日: | 2012-04-18 |
发明(设计)人: | 王翔;亓亚烜;李军 | 申请(专利权)人: | 清华大学 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L12/56 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 王莹 |
地址: | 100084 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 多域网包 分类 方法 | ||
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。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110425385.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:减少SR-VCC移动中的流中断
- 下一篇:包括丙烯酸系泡沫层的粘合剂制品