一种报文分类方法和系统的制作方法

文档序号:7705619阅读:233来源:国知局
专利名称:一种报文分类方法和系统的制作方法
技术领域
本发明涉及通信技术领域,尤其涉及一种报文分类方法和系统。
背景技术
报文是网络中交换与传输的数据单元,其中包含了将要发送的完整的数据 信息,同时,报文也是网络传输的单位,传输过程中会不断的封装成分组、包 或帧来传输。互联网业务的多样化和差异化要求网络设备能够根据网络中报文 的相关信息对报文进行差异化处理。报文分类就是为了满足网络的这种应用趋 势产生的。
报文分类是根据报文头部信息的关键字的对报文进行分类,使网络设备针 对不同类别的^l艮文可以采用不同的梯:作。
报文分类技术在多种网络设备和网络业务中具有极其重要的应用。近年 来,国内外很多专家学者针对报文分类进行了大量研究,取得了许多研究成果。
华盛顿大学的Taylor D E和Turner J S共同提出一种对Cross-Producting 改进的算法DCFL(分布式域标签叉级)。DCFL算法通过分布式地而非一次性 地形成各个域不同值的Cross-producting,从而避免了 Cross-Producting算法的 空间爆炸问题。该算法的扩展性良好,在过滤规则维数增加或过滤规则库规模 增大时仍能保持较快的分类速度。
来自威斯康星大学的Qunfeng Dong和Suman Banerjee提出一种不使用 TCAM实现线速报文分类方法Smart Rule Cache(智能规则緩存)。该方法使用 附加的寄存器来緩存保持原规则语义的进化规则(evolving rules),使用附加的 逻辑门电路实现报文与规则的匹配。
发明人通过对现有技术的研究发现,核心路由器、边缘路由器、防火墙等 设备中的规则库均具有不同的特征,现有的各种技术各有特点,但是并没有对 各种场景进行综合考虑,扩展性差,不能很好地适应各类规则库结构的变化。

发明内容
有鉴于此,本发明实施例的目的在于提供一种报文分类方法和系统,提高 了规则库规模和维度的可扩展性。
为实现上述目的,本发明实施例提供了如下技术方案
一种报文分类方法,将原始分类规则库中的各条规则按域划分成分域规则
元组库存储到域搜索引擎;在聚合网络的每一个聚合节点中,计算并存储原始 规则库中真实存在的元组组合形成各个聚合节点的匹配向量;在对待查询的报 文进行才艮文分类时该方法包括
利用所述域搜索引擎对待查询报文进行分域处理;
利用所述聚合网络对分域处理结果进行逐级聚合,直至终结点,其中逐级 聚合时,每个聚合节点通过两级匹配逻辑进行聚合;
根据所述终结点命中的元组确定所述待查询报文匹配的分类规则。
利用所述域搜索31擎对待查询的报文进行分域处理包括
将待查询的净艮文按匹配域分解成报文元组;
获取与所述报文元组匹配的规则子集所对应的规则元组;
才艮据所述MJ'J元组形成与所述^R文元组匹配的分域处理结果。
所述每个聚合节点通过两级匹配逻辑进行聚合包括
聚合节点将输入项中的元素进行交叉组合,获得当前聚合节点的查询元组 集合,其中,所述输入项包括某一分域处理结果或者当前聚合节点的上一级聚 合节点的聚合结果;
根据所述查询元组集合获取当前节点的查询元组向量集合;
将所述查询元组向量集合中的查询元组向量分别与当前聚合节点的第一 级匹配向量进行第 一级逻辑判断;
根据通过第一级逻辑判断的查询元组向量查找当前聚合节点的第二级匹 配向量的地址,获取第二级匹配向量;
将所述通过第 一级逻辑判断的查询元组向量与所述第二级匹配向量进行
7第二级逻辑判断;
将通过第二级逻辑判断的查询元组向量对应的查询元组加入当前聚合节 点的输出结果中。
根据所述查询元组向量查找当前聚合节点的第二级匹配向量的地址包括
对所述查询元组向量做hash寻址,查找到的地址即为当前聚合节点第二 级匹配向量的地址。
所述聚合节点的输入项为两项。
当某一域处理结果当前没有聚合对象时,则对其进行緩存;当聚合对象到 来时,将緩存的分域处理结果输与聚合对象进行聚合。 上述方法还包括对所述原始规则库进行更新操作。 所述更新操作包括
当更新请求队列中的更新请求数量超过预设的更新阈值时,复制当前使用 的数据结构作为备份緩存,当前的数据结构为当前緩存,所述更新请求的内容 包括更新的规则信息和更新操作的类型,所述更新操作的类型包括添加规则 的操作和删除规则的操作;
从所述更新请求队列中提取更新请求,按照更新操作的类型对所述备份緩 存中的数据结构进行更新;
更新完成后,将所述备份緩存切换成当前緩存,同时将完成更新的更新请 求从所述更新请求队列中删除。
所述将各个分域规则库中的规则用元组表示包括
按照各字段的前缀长度或者潜嵌套深度将各个分域规则库中的规则用元 组表示。
一种净艮文分类系统,包括
构造单元,用于将原始分类规则库按匹配域划分为分域规则库,将各个分 域规则库中的规则用元组表示,形成分域元组库,将所述分域元组库存储到域 搜索引擎;在聚合网络的每一个聚合节点中,计算并存储原始规则库中真实存 在的元组组合形成各个聚合节点的匹配向量;分域处理单元,用于利用所述域搜索引擎对待查询净艮文进行分域处理;
聚合单元,用于利用所述聚合网络对分域处理结果进行逐级聚合,直至终 结点,其中逐级聚合时,每个聚合节点通过两级匹配逻辑进行聚合;
分类单元,用于根据所述终结点命中的元组确定所述待查询报文匹配的分 类规则。
上述系统还包括
緩存单元,用于在某一分域处理单元输出的分域处理结果当前没有聚合对 象时,则对其进行緩存;当聚合对象到来时,将緩存的分域处理结果输送给对 应的聚合单元。
所述分域处理单元包括
分解模块,用于将待查询的报文按匹配域分解成报文元组;
获耳又模块,用于获取与所述报文元组匹配的规则子集所对应的规则元组;
处理模块,用于根据所述规则元组形成与所述报文元组匹配的分域处理结果。
所述聚合单元包括
存储单元,用于存储匹配向量,所述匹配向量包括第一级匹配向量和第二 级匹配向量;
组合模块,用于将输入项中的元素进行交叉组合,获得当前聚合节点的查 询元组集合,其中,所述输入项包括某一分域处理结果或者当前聚合单元的上 一级聚合单元的聚合结果;
获取模块,用于根据所述组合模块得到的查询元组集合获取当前节点的查 询元组向量集合;
第 一 匹配模块,用于将获^^莫块获取的所述查询元组向量集合中的查询元 组向量分别与存储单元中保存的第 一级匹配向量进行第 一级逻辑判断;
查找模块,用于根据所述第一匹配模块输出的通过第一级逻辑判断的查询 元组向量查找存储单元中第二级匹配向量的地址,获取第二级匹配向量;
第二匹配模块,用于将所述第 一 匹配4莫块输出的通过第 一级逻辑判断的查询元组向量与所述查找模块查找到的第二级匹配向量进行第二级逻辑判断;
输出模块,用于将所述第二匹配^^莫块输出的通过第二级逻辑判断的查询元 组向量对应的查询元组加入当前聚合节点的输出结果中。
该系统还包括
更新单元,用于对原始规则库进行更新。 所述更新单元包括
记录模块,用于记录更新请求,形成更新请求队列;
复制模块,用于当所述更新请求队列中的更新请求数量超过预设的更新阈 值时,复制当前使用的数据结构作为备份緩存,当前的数据结构为当前緩存, 所述更新请求的内容包括更新的规则信息和更新操作的类型,所述更新操作 的类型包括添加规则的操作和删除规则的操作;
更新模块,用于从所述更新请求队列中提取更新请求,按照更新操作的类 型对所述复制模块复制得到的备份緩存中的数据结构进行更新;
更换模块,用于在更新模块更新完成后,将所述备份緩存更换成当前緩存;
删除模块,用于将完成更新的更新请求从记录模块中删除。
可见,在本发明实施例中,将原始分类规则库中的各条规则按域划分成分
述分域元组库存储到域搜索引擎;在聚合网络的每一个聚合节点中,计算并存 储原始规则库中真实存在的元组组合形成各个聚合节点的匹配向量;在对待查 询的报文进行报文分类时该方法包括利用所述域搜索引擎对待查询报文进行 分域处理;利用所述聚合网络对分域处理结果进行逐级聚合,直至终结点,其 中逐级聚合时,每个聚合节点通过两级匹配逻辑进行聚合;根据所述终结点命 中的元组确定所述待查询报文匹配的分类规则,通过将规则库转换为分域元组 库,大大降低了聚合网络的内存消耗,使得本发明实施例所提供的方法能够广 泛地适应大型分类失见则库。


图1为本发明一实施例所提供的方法的流程10图2为本发明一实施例所提供的方法的示意图3为本发明一实施例所提供的方法的一步骤的流程图4为本发明一实施例所提供的方法中一步骤的示意图5为本发明一实施例所提供的方法中另一步骤的示意图6为本发明一实施例所提供的系统的结构示意图7为本发明一实施例所提供的系统中 一单元的结构示意图8为本发明另 一实施例所提供的系中一单元的结构示意图9为本发明 一实施例所提供的系统中另 一单元的结构示意图。
具体实施例方式
本发明实施例公开了一种报文分类方法和系统,为使本发明的目的、技术 方案及优点更加清楚明白,以下参照附图并举实施例,对本发明作进一步详细 说明。
参见图1,在本发明一实施例中,实现本发明实施例所提供的方法包括以 下步骤
步骤101:采用元组表示分类规则,获得分域元组库。
每条过滤分类规则都含有多个匹配域;每个域都对应报文的一个头字段, 在用元组表示处理规则时,首先将原始分类规则库中的规则按匹配域划分为分 域规则库。然后按照各字段的前缀长度或者潜嵌套深度将各个分域规则库中的 规则用元组表示,每一个元组都包含若干规则。这些元组形成元组空间,原始 分类规则库转化为分域元组库。
例如,某条分类身见则为{11*, 0110*, *, 1111*, 011*},每部分的元组取 其有效特征长度表示,如字,殳的前缀长度,具体为[2], [4],
, [4], [3],头三个 字域的元组表示为[2,4,0],整条失见则的元组表示为[2,4,0,4,3]。
步骤102:将所述分域元组库存储到域搜索引擎;在聚合网络的每一个聚 合节点中,计算并存储根据原始规则库中真实存在的元组组合形成的聚合节点 的匹配向量。
步骤101和步骤102是本发明实施例所提供的方法的准备工作,实际上实现了原始分类规则库向分域元组库的转换。当准备工作完成后,对待查询的报
文进行报文分类时,本发明实施例所提供的方法包括
步骤103:利用所述域搜索引擎对待查询报文进行分域处理。 所述分域处理具体包括
51、 将待查询的报文按匹配域分解成报文元组。
52、 获取与所述才艮文元组匹配的规则子集所对应的身见则元组。 所述规则元组与某规则的某个域相对应。
S3 、 根据所述规则元组形成与所述报文元组匹配的分域处理结果。
图2是本发明实施例所提供的方法的一个示意图,图中,第一部分为分域 处理,待查询的报文被分解成五个报文元组xG x4,域搜索引擎根据报文元组 Xi (i=0~4 )获取与Xi匹配的规则子集Ri所对应的规则元组Ti,根据所述规则 元组To T4形成与所述报文元组xQ~X4匹配的分域处理结果TQ ( xG ) T4 ( x4 )。
步骤104:利用所述聚合网络对分域处理结果进行逐级聚合,直至终结点, 其中逐级聚合时,每个聚合节点通过两级匹配逻辑进行聚合。
图2中的第二部分为逐级聚合过程。聚合节点将Ti(Xi)与Ti+"xw)进行交
叉组合,得到查询元组集合Tq呵(Xi,Xw),然后将Tq呵(Xi,Xw)与Ti,w的交集
提取出来作为当前聚合节点的聚合结果Ti,i+1(Xi, xw)输出到下一级聚合节点, 其中Ti,w表示原规则库第i域与第i+l域中真实存在的元组集合。经过逐级聚 合到达终节点。
为实现流水线操作,报文元组X4分域处理后的结果T4(X4)需要经过一个二
级緩存。緩存允许域搜索引擎在每个流水线周期执行一次新的查找,得到的分 域匹配元组集合被延迟到合适的流水线周期,以使其与从其它聚合节点的匹配 元组集合同步到达下一级聚合节点。图2所示结构的总延迟仅为2个流水线周 期,考虑到流水线周期是10ns级别,所以这一延时是完全可以容忍的。
由于一次性聚合多个项会增加计算复杂度、降低效率,所以在本发明实施 例所提供的方法中,在一个节点只聚合两项。除此之外,聚合网络的构成方式 还必须遵循一个原则,即尽可能减少存储空间,所以将相关性大的两项进行聚
12合,例如将源IP与目的IP聚合在一起。
步骤105:根据所述终结点命中的元组确定所述待查询I艮文匹配的分类^L则。
将终节点命中元组与其对应的规则表相连,每当查询到匹配元组时,只需 要提取出报文对应该元组的关键字,经哈希索引后只需要一次访存就可以查询 到该元组包含的匹配失见则。
本发明实施例所提供的方法,将规则库转化元组库,由于一个元组包含多 个规则为,所以这一转化能够大大降低聚合网络的内存消耗,使得该技术能够 适应大型分类规则库。
图2所示的方法中,为聚合分域处理结果,需要在每一级聚合节点采用一
种快速高效的匹配方法得到我们需要的聚合结果。在本发明实施例中,选用哈 希技术作为聚合节点的匹配工具,具体地,选择Bloom filter作为哈希工具。
Bloom filter的原理是利用m比特向量v表示w元素集合<5= (x!,X2,…,x丄 并用A:个独立的哈希函数/^,/z2,…,&将向量v的下列比特置1: 20),…, &(力,其中xe5; /2,(jc)e{l,2,…,M), /e{l,2,…,W。当4企查某元素y是否包含 于S时,只需要检查/7,(y), /e{l,2, ...,W是否全被置1即可,但是由于使用了 A个哈希函数,使得每个元素会出现在A个哈希桶中,这就需要对每个元素存 储A:次,造成空间浪费。
为降低内存消耗,本发明采用了向量阵列的方法,具体做法是在聚合节 点存储一个A:比特位宽的向量阵列,每个向量只存储1个真实元组的Bloom hash值。
参见图3,所述聚合过程具体包括
步骤301:聚合节点将输入项中的元素进行交叉组合,获得当前聚合节点 的查询元组集合,其中,所述输入项包括某一分域处理结果或者当前聚合节点 的上一级聚合节点的聚合结果;
步骤302:根据所述查询元组集合获取当前节点的查询元组向量集合; 步骤303:将所述查询元组向量集合中的查询元组向量分别与当前聚合节点的第 一级匹配向量进行第 一级逻辑判断;
步骤304:根据通过第一级逻辑判断的查询元组向量查找当前聚合节点的 第二级匹配向量的地址,获:f又第二级匹配向量;
步骤305:将所述通过第一级逻辑判断的查询元组向量与所述第二级匹配 向量进行第二级逻辑判断;
步骤306:将通过第二级逻辑判断的查询元组向量对应的查询元组加入当 前聚合节点的输出结果中。
为了使上述过程更加清楚明了,下面,参见图4,通过一个聚合节点的聚 合实例对上述聚合过程进行描述。
图4以聚合节点2为例,将来自聚合节点1的元组集合T(u(xo,x,)与丁2的
分域处理结果T2(X2)交叉组合成该节点的查询元组集合Tquery。从图中可以看 到,T(u(Xo,xO为([2,l],[3,5],[6,4]j, T2(x2^ {5,8,9},两者交叉组合即两个集合中 的元素交叉结合得到节点2的查询元组集合Tquery,所以Tquei7为 {[2,1,5],[3,5,5],[6,4,5],[2,1,8],[3,5,8],[6,4,8][2,1,9],[3,5,9],[6,4,9]},纟求后由Tquery中^J元纟且 利用k个独立hash函数生成m比特的查询元组向量vquery。 Vi表示节点2对应 的真实元组集合生成的m比特的第一级匹配向量。接下来,第一级匹配逻辑
将Vq,与V!作逻辑判断若Vq,的所有置1位在V2中也全被置1,那么将对
应元组送往向量阵列继续比较;否则,直接丢弃。
接下来将通过第一匹配逻辑的查询元组向量vquery作hash寻址,将索引到
的第二级匹配向量V2送往第二级匹配逻辑再次与Vquery作匹配判断,如果匹配 成功就将Vquery对应的元组加入到集合To丄2(X(), Xl, X2)中。在处理完所有Vquery 后,将T(u,2(Xo,XhX2)送往下一级聚合节点。从图中可知,经过两级匹配逻辑
判断后,最后第二节点的输出结果To丄2(Xo,Xi,X2)为{[3,5,5], [6,4,8], [6,4,9]}。
每个聚合节点中都有一个匹配元组集合V且均不相同,通过上述对聚合 节点聚合过程的描述可知,匹配元组集合所包含的元组个数IVI直接决定了查 询时的访存次数。另一方面,改变聚合网络的结构可以起到优化匹配元组个数 IVI的作用。由此可见,如何选择分域处理结果的聚合顺序是减少算法开销的 一个关键。
14对于某结构的聚合网络A"它包含多个匹配元组,令在最差情况下包含 元组数目最多的匹配元组集合所包含的元组数为Ai的开销,用cost(Ai)表示。 则最小开销聚合网络定义如下
Amin = cost(A) = min(cost(Ai), i 2 0} (1)
cost(Ai) = max{ |V|,对所有V。, . .,VQ,...,d—! eA山 (2)
整个网络计算过程如下
1 、 i=l, j《get(numA);
2、 get(A。);
3 、 Amin《Ao ,cost(Amin) — cost(A0);
4、 while i<j-l;
5、 get(Ai);
6、 Amin《A:cost(A)=min{cost(Ai),cost( Amin)};
7、 i++;
8、 Amin+ output()。 上述定义的具体含义为
首先,计算得到聚合网络的数量;
然后,选取第一种聚合网络Ao,并令最小开销聚合网络Amin等于Ao,那 么COSt(Amin)就等于cost(A。);
接着,循环比较所有聚合网络结构的开销,得到最优网络,具体循环比较
如下①选取第二种聚合网络A"②比较cost(A她)与cost(A!),如果 cost(Amin)〉cost(AO,那么令Amin= Ai且令cost(Amin)= cost(A^;反之,cost(Amin)
和Amin保持不变;③继续选取下一个聚合网络A2,直至比较完所有的网络。
最后,输出该网络结构。
在本发明的另 一实施例中,本发明实施例所提供的方法还包括
对原始规则库进行更新。下面对更新过程进行详细描述。 所述更新包括从原始规则库中插入规则或者删除原有规则。 对于向规则库插入一条规则的情况,首先将规则用元组形式表示并按域化分,然后将该规则每个域的元组插入到相应的域搜索引擎的输入緩存中,由域搜索引擎并行地执行更新操作,其过程与执行搜索操作类似。域搜索引擎将完成分域元组在各域元组数据结构中的搜索,如果数据结构中没有包含该分域元组,那么我们将其添加到数据结构中,同时将该元组的计数值加1。接下来,每个域搜索引擎返回一个规则对应该域的分域元组。在下一个流水线周期,域搜索引擎将更新操作以及分域元组传递给聚合网络。
从逻辑上看,域搜索引擎和聚合节点使用相同的插入操作,没有本质区别。需要注意的是,对于每一次更新,域搜索引擎和聚合节点只传递一个分域元组或者合成元组,所以每个聚合节点只对一个合成元组操作。聚合节点接收"插入"命令以及上级节点的合成元组,如果该合成元组不在聚合节点的元组集合中,那么将其添加到该节点的元组集合中,同时将该元组的计数值加1并将其传递给下一聚合节点。最后一个聚合节点将合成元组传递给优先级判决模块,由后者负责将元组按照其优先级添加到数据结构中,同时将被添加的规则索引到该元组。经过添加操作后,如果新的规则隶属于已经存在的某元组,那么最后一个节点会输出该元组,只需要将规则添加到该元组的哈希表中即可。
从规则库移除一条规则的过程与添加操作类似。域搜索引擎和聚合节点执行相同的逻辑删除操:作。首先找到分域元组,然后将其计凄t值减l。当某分域元组的计数值为0时就将其删除。该元组被传递到聚合网络执行相同的才喿作。终节点将元组传递给优先级判决模块,由后者完成将规则或者元组从数据结构删除的任务。
注意域搜索引擎的添加、删除操作指发生在计数值从0变为1或者从1变为0时。真实规则库中,每个域中不同元组的数量是有限的。我们期望一次更新只会改变一个域搜索引擎的数据结构和一个聚合节点的数据结构。在最差情况下, 一次插入或者删除操作会产生d个域搜索引擎数据结构和d-1个聚合节点数据结构的更新,其中d是规则的维数。
进行更新时,本方案的分类处理技术不但要修改各个节点的查询元组表,
而且还要根据修改后的表项修改Bloom哈希桶。尽管可以采用规则重排序等
16优化措施,但是仍有可能对几乎所有节点的数据结构进行修改,这将花费较长
的时间。因此对于更新频率较快的应用,可能出现这样一种情况需要不断的对数据结构进行更新,导致后续报文不能及时进行分类。如图5所示,以一个聚合节点的规则库更新为例,说明本发明实施例所提供的更新方法。具体包括
1) 配置更新请求队列区p,并设置更新阈值为《
2) 当进行更新时将更新请求放入仏p中。"p除了记录规则信息外,还需要记录更新操作的类型,即添加规则还是删除规则。
3) 当"p中的更新请求个数大于^值时,开始更新操作。首先复制当前使用的数据结构。将正在用于分类的凄t据结构称为当前纟爰存,复制的凄t据结构称为备份緩存。然后从a^中读出3个更新请求,按照更新操作的类型对备份緩存中的数据结构进行更新。处理完毕后,将备份緩存切换成当前緩存,并删除这5个更新请求。其中,切换过程和删除更新请求都是原子操作。
与方法实施例相对应,本发明实施例还提供用于报文分类系统,参见图6,该系统包括
构造单元601,用于将原始分类规则库按匹配域划分为分域规则库,将各个分域规则库中的规则用元组表示,形成分域元组库,将所述分域元组库存储到域搜索引擎;在聚合网络的每一个聚合节点中,计算并存储原始规则库中真实存在的元组组合形成各个聚合节点的匹配向量。
分域处理单元602,用于利用所述域搜索引擎对待查询报文进行分域处理。
聚合单元603,用于利用所述聚合网络对分域处理结果进行逐级聚合,直至终结点,其中逐级聚合时,每个聚合节点通过两级匹配逻辑进行聚合。
在本发明实施例所提供的系统中,包含多个聚合单元,这些聚合单元级联在一起组成聚合网络,实现逐级聚合。
分类单元604,用于根据所述终结点命中的元组确定所述待查询报文匹配的分类规则。
緩存单元605,用于在某一分域处理单元输出的分域处理结果当前没有聚合对象时,则对其进行緩存;当聚合对象到来时,将緩存的分域处理结果输送给对应的聚合单元。
图6中是一个三元组的报文分类系统的结构示意图,其中,两个聚合单元603a和603b的结构相同,构成聚合网络。603a为第一级聚合节点,603b为第二级聚合节点。从图中可以看出,构造单元与分域处理单元和所有的聚合单
实现流水线操作,分域处理单元输出的一个结果需要经过緩存单元进行緩存,将緩存的分域处理结果延迟到合适的流水线周期再送入第二级聚合节点中。参见图7,所述分域处理单元602包括
.分解模块6021,用于将待查询的报文按匹配域分解成报文元组;获取模块6022,用于获取与所述报文元组匹配的规则子集所对应的规则元组;
处理模块6023,用于根据所述规则元组形成与所述报文元组匹配的分域处理结果。
参见图8,所述聚合单元603包括
存储模块6031,用于存储匹配向量,所述匹配向量包括第一级匹配向量和第二级匹配向量;
组合模块6032,用于将输入项中的元素进行交叉组合,获得当前聚合节点的查询元组集合,其中,所述输入项包括某一分域处理结果或者当前聚合单元的上一级聚合单元的聚合结果;
获取模块6033,用于根据所述组合模块得到的查询元组集合从所述存储模块中获取当前节点的查询元组向量集合;
第一匹配模块6034,用于将获取模块获取的所述查询元组向量集合中的查询元组向量分别与存储单元中保存的第 一级匹配向量进行第 一级逻辑判断;
查找模块6035,用于根据所述第一匹配模块输出的通过第一级逻辑判断的查询元组向量查找存储单元中第二级匹配向量的地址,获取第二级匹配向量;
第二匹配模块6036,用于将所述第一匹配模块输出的通过第一级逻辑判断的查询元组向量与所述查找模块查找到的第二级匹配向量进行第二级逻辑
判断;
输出模块6037,用于将所述第二匹配模块输出的通过第二级逻辑判断的查询元组向量对应的查询元组加入当前聚合节点的输出结果中。
优选地,在其他实施例中,图6所示的系统还包括
更新单元606,用于对原始规则库进行更新。
参见图9,所述更新单元606包括
记录模块6061,用于记录更新请求,形成更新请求队列;
复制模块6062,用于当所述更新请求队列中的更新请求数量超过预设的更新阈值时,复制当前使用的数据结构作为备份緩存,当前的数据结构为当前緩存,所述更新请求的内容包括更新的规则信息和更新操作的类型,所述更新操作的类型包括添加规则的操作和删除规则的操作;
更新模块6063,用于从所述更新请求队列中提取更新请求,按照更新操作的类型对所述复制^^莫块复制得到的备份緩存中的数据结构进行更新;
更换模块6064,用于在更新模块更新完成后,将所述备份緩存更换成当前緩存;
删除模块6065,用于将完成更新的更新请求从记录模块中删除。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。 一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1、一种报文分类方法,其特征在于,将原始分类规则库中的各条规则按域划分成分域规则库,然后将所述分域规则库中的规则用元组表示形成分域元组库,将所述分域元组库存储到域搜索引擎;在聚合网络的每一个聚合节点中,计算并存储原始规则库中真实存在的元组组合形成各个聚合节点的匹配向量;在对待查询的报文进行报文分类时该方法包括利用所述域搜索引擎对待查询报文进行分域处理;利用所述聚合网络对分域处理结果进行逐级聚合,直至终结点,其中逐级聚合时,每个聚合节点通过两级匹配逻辑进行聚合;根据所述终结点命中的元组确定所述待查询报文匹配的分类规则。
2、 根据权利要求1所述的方法,其特征在于,利用所述域搜索引擎对待 查询的报文进行分域处理包括将待查询的报文按匹配域分解成报文元组;获取与所述报文元组匹配的规则子集所对应的规则元组;根据所述规则元组形成与所述报文元组匹配的分域处理结果。
3、 根据权利要求1所述的方法,其特征在于,所述每个聚合节点通过两 级匹配逻辑进行聚合包括聚合节点将输入项中的元素进行交叉组合,获得当前聚合节点的查询元组 集合,其中,所述输入项包括某一分域处理结果和/或当前聚合节点的上一级聚合节点的聚合结果;根据所述查询元组集合获取当前节点的查询元组向量集合; 将所述查询元组向量集合中的查询元组向量分别与当前聚合节点的第一级匹配向量进行第 一级逻辑判断;根据通过第一级逻辑判断的查询元组向量查找当前聚合节点的第二级匹 配向量的地址,获取第二级匹配向量;将所述通过第一级逻辑判断的查询元组向量与所述第二级匹配向量进行 第二级逻辑判断;将通过第二级逻辑判断的查询元组向量对应的查询元组加入当前聚合节 点的输出结果中。
4、 根据权利要求3所述的方法,其特征在于,根据所述查询元组向量查 找当前聚合节点的第二级匹配向量的地址包括对所述查询元组向量做hash寻址,查找到的地址即为当前聚合节点第二 级匹配向量的;也址。
5、 根据权利要求3所述的方法,其特征在于,所述聚合节点的输入项为 两项。
6、 根据权利要求3所述的方法,其特征在于,当某一域处理结果当前没 有聚合对象时,则对其进行緩存;当聚合对象到来时,将緩存的分域处理结果 输与聚合对象进行聚合。
7、 根据权利要求1所述的方法,其特征在于,还包括对所述原始规则 库进行更新操作。
8、 根据权利要求7所述的方法,其特征在于,所述更新操作包括当更新请求队列中的更新请求数量超过预设的更新阈值时,复制当前使用 的数据结构作为备份緩存,当前的数据结构为当前緩存,所述更新请求的内容 包括更新的规则信息和更新操作的类型,所述更新操作的类型包括添加规则 的操作和删除规则的操作;从所述更新请求队列中提取更新请求,按照更新操作的类型对所述备份緩 存中的数据结构进行更新;更新完成后,将所述备份緩存切换为当前緩存,同时将完成更新的更新请 求从所述更新请求队列中删除。
9、 根据权利要求1 8任意一项所述的方法,其特征在于,所述将各个分 域规则库中的规则用元组表示包括按照各字段的前缀长度或者潜嵌套深度将各个分域规则库中的规则用元 组表示。
10、 一种净艮文分类系统。其特征在于,包括构造单元,用于将原始分类规则库按匹配域划分为分域规则库,将各个分域规则库中的规则用元组表示,形成分域元组库,将所述分域元组库存储到域搜索引擎;在聚合网络的每一个聚合节点中,计算并存储原始规则库中真实存 在的元组组合形成各个聚合节点的匹配向量;分域处理单元,用于利用所述域搜索引擎对待查询报文进行分域处理;聚合单元,用于利用所述聚合网络对分域处理结果进行逐级聚合,直至终 结点,其中逐级聚合时,每个聚合节点通过两级匹配逻辑进行聚合;分类单元,用于根据所述终结点命中的元组确定所述待查询报文匹配的分 类规则。
11、 根据权利要求IO所述的系统,其特征在于,还包括緩存单元,用于在某一分域处理单元输出的分域处理结果当前没有聚合对 象时,则对其进行緩存;当聚合对象到来时,将緩存的分域处理结果输送给对 应的聚合单元。
12、 根据权利要求10或11所述的系统,其特征在于,所述分域处理单元 包括分解模块,用于将待查询的报文按匹配域分解成报文元组;获取模块,用于获取与所述报文元组匹配的规则子集所对应的规则元组;果。、 、、一'、5'、
13、 根据权利要求10或11所述的系统,其特征在于,所述聚合单元包括存储单元,用于存储匹配向量,所述匹配向量包括第一级匹配向量和第二 级匹配向量;组合模块,用于将输入项中的元素进行交叉组合,获得当前聚合节点的查 询元组集合,其中,所述输入项包括某一分域处理结果或者当前聚合单元的上 一级聚合单元的聚合结果;获取模块,用于根据所述组合模块得到的查询元组集合获取当前节点的查 询元组向量集合;第 一 匹配模块,用于将获取模块获取的所述查询元组向量集合中的查询元组向量分别与存储单元中保存的第 一级匹配向量进行第 一级逻辑判断;查找模块,用于根据所述第一匹配模块输出的通过第一级逻辑判断的查询 元组向量查找存储单元中第二级匹配向量的地址,获取第二级匹配向量;第二匹配模块,用于将所述第 一 匹配模块输出的通过第 一级逻辑判断的查 询元组向量与所述查找才莫块查找到的第二级匹配向量进行第二级逻辑判断;输出模块,用于将所述第二匹配模块输出的通过第二级逻辑判断的查询元 组向量对应的查询元组加入当前聚合节点的输出结果中。
14、 根据权利要求IO所述的系统,其特征在于,还包括 更新单元,用于对原始规则库进行更新。
15、 根据权利要求14所述的系统,其特征在于,所述更新单元包括记录模块,用于记录更新请求,形成更新请求队列;复制模块,用于当所述更新请求队列中的更新请求数量超过预设的更新阈 值时,复制当前使用的数据结构作为备份緩存,当前的数据结构为当前緩存, 所述更新请求的内容包括更新的规则信息和更新操作的类型,所述更新操作 的类型包括添加规则的操作和删除规则的操作;更新模块,用于从所述更新请求队列中提取更新请求,按照更新操作的类 型对所述复制模块复制得到的备份緩存中的数据结构进行更新;更换模块,用于在更新模块更新完成后,将所述备份緩存更换成当前緩存; 删除模块,用于将完成更新的更新请求从记录模块中删除。
全文摘要
本发明实施例公开了一种报文分类方法和系统,其中,所述方法为利用所述域搜索引擎对待查询报文进行分域处理;利用所述聚合网络对分域处理结果进行逐级聚合,直至终结点,其中逐级聚合时,每个聚合节点通过两级匹配逻辑进行聚合;根据所述终结点命中的元组确定所述待查询报文匹配的分类规则,本发明实施例通过将规则库转换为分域元组库,大大降低了聚合网络的内存消耗,使得本发明实施例所提供的方法能够广泛地适应大型分类规则库。
文档编号H04L29/06GK101500012SQ200910118640
公开日2009年8月5日 申请日期2009年2月27日 优先权日2009年2月27日
发明者周粳迪, 张校辉, 珂 朱, 雨 王 申请人:中国人民解放军信息工程大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1