[发明专利]基于网络流量的多域网包分类方法有效

专利信息
申请号: 200510130708.X 申请日: 2005-12-23
公开(公告)号: CN1822567A 公开(公告)日: 2006-08-23
发明(设计)人: 亓亚烜;李军 申请(专利权)人: 清华大学
主分类号: H04L12/56 分类号: H04L12/56;H04L29/06
代理公司: 暂无信息 代理人: 暂无信息
地址: 100084北京*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明涉及网络过滤和监控技术领域,其特征在于它包括以下步骤:接收到达的网包;采集网包包头信息;统计及归一化网络流量特性;计算单元根据设定的规则集合及网络流量统计特性得出网包分类结构;网包分类单元获取网包包头信息并以计算单元得到的分类器数据结构对网包进行分类;发送单元按照分类结果发送输出队列中的网包。本发明是基于微处理器通用平台或网络处理器专用平台实现的,结合了网络流量动态统计特性和规则集合的静态结构特性,优化了网包分类方法,比当前国内外同类方法提高了80~400%的平均分类速率,同时内存需求降低了30~600%。
搜索关键词: 基于 网络流量 多域网包 分类 方法
【主权项】:
1、基于网络流量的多域网包分类方法,其特征在于:该方法是基于微处理通用平台或网络处理器专用平台实现的,依次具有以下步骤:步骤1.网包接受单元接受输入网包:该单元的网卡接受到达的网包并解析网包包头信息后,再向该单元的动态缓冲存储器的缓存队列内输出网包包头信息的内容;步骤2.采样单元依据是定的采样间隔对网包接包单元输出的网络包头信息做网络流量特性统计,并按照更新时刻对所统计的信息做归一化处理后得到流量的先验分布,步骤2所述的方法依次含有以下步骤:步骤2.1.采样:所述采样单元内的处理器按照设定的采样间隔Ns从输入的网络包头信息队列中的每N个连续到达的网包中抽取一个五元组包头信息作为一个采样样本,每个采样样被是一个由下述五个域组成的数据组:32位源IP地址,用int32 sIP表示,int表示整数类型,下同;32位目标IP地址,用int32 dIP表示;16位源端口,用int16 sPort表示;16位目标端口,用int16 dPort表示;8位协议,用int8 protocol表示;步骤2.2.记录统计量:所述统计量包括:每一个B类网段源IP地址在所述采样样本中出现的次数,用int32 sIP[65536]表示,所述B类网段是指32位IP地址的前16位,下同;每一个B类网段目标IP地址在所述采样样本中出现的次数,用int32 dIP[65536]表示;每一个源端口在所述采样样本中出现的次数,用int32 sPort[65536]表示;每一个目标端口在所述采样样本中出现的次数,用int32 dPort[65536]表示;每一个协议在所述采样样本中出现的次数,用int32 protocol[256]表示;步骤2.3.归一化:在分类器数据结构更新时,对统计量数据结构进行归一化得到先验分布,该先验分布的数据结构为下述二维数组:float Prior[i][j],所述Prior[i][j]为每个域归一化统计量,其中,i=0,1,2,3,4,一次分别对应源IP地址,目标IP地址,源端口,目标端口和协议域;j=0,...,65535;对于源IP地址: Prior [ 0 ] [ j ] = Stats . sIP [ j ] Σ k = 0 65535 Stats . sIP [ k ] , Stats表示统计量,下同;对于目标IP地址: Prior [ 1 ] [ j ] = Stats . dIP [ j ] Σ k = 0 65535 Stats . dIP [ k ] , 对于源端口: Prior [ 2 ] [ j ] = Stats . sPort [ j ] Σ k = 0 65535 Stats . sPort [ k ] , 对于目标端口: Prior [ 3 ] [ j ] = Stats . dPort [ j ] Σ k = 0 65535 Stats . dPort [ k ] , 对于协议域: Prior [ 4 ] [ j ] = Stats . protocol [ j ] Σ k = 0 65535 Stats . protocol [ k ] , 当256≤j≤65535时,Prior[4][j]=0;步骤3.在计算单元中设置分类规则,再通过统计单元输出更新后的分类器数据结构及规范化的规则集合,所述规范化是指把代友掩码或通配符的规则用所述五元组所在区间描述:所述计算单元内含一个处理器和一个高速存储设备,该处理器的有关网络流量统计的先验分布信息是输入端与所述采样单元的相应输出端相连,该处理器还设有一个规则集合输入端;所述分类器的数据结构为一个决策树结构并在该决策树的叶节点上由一个线性表来存储规则子集;所述计算单元在更新分类数据结构时对搜索空间进行逐级划分,不断缩小搜索范围和规则数目,把对整个规则集合的搜索编程对该规则集合子集的搜索,当被搜索子集中的规则个数小于设定阈值时,通过对所述线性表采用线性查找方法对当前子集进行搜索以得到最终分类结果,该阈值用Thresh表示,设为1~10;所述分类器数据结构更新方法依次含有一下步骤:步骤3.1.初始化:设定搜索空间为U,即多域网包包头信息的梭鱼可能的取值空间,所述五元组的初始搜索空间依次为:[0,232-1],[0,232-1],[0,216-1],[0,216-1],[0,28-1];设定空间的划分,即在制定的一个或者多个域上把取值范围划分为多个子范围的集合,则得到对当前搜索空间的一个划分;步骤3.2.通过计算机外围设备向所述计算单元输入规则集合和系统参数,所述系统参数包括更新周期,采样间隔以及所述分类器数据结构中的Thresh,spfacmin及spfacmax等可调参数;所述规则集合中的一条规则用R表示,含有:用两个32位整数描述的源IP地址,表示为int32 sIP[2];用两个32位整数描述的目标IP地址,表示为int32 dIP[2];用两个16位整数描述的源端口,表示为int16 sPort[2];用两个16位整数描述的目标端口,表示为int16 dPort[2];用两个8位整数描述的协议区间,表示为int8 protocol[2];用int32 priority表示的规则优先级;用int8 action表示的分类结果;步骤3.3.在所述计算单元中设定如下所述的决策树节点数据结构,即分类器的数据结构,每一个节点包括:划分维度,划分次数,节点信息,内部节点的节点信息值为0,叶节点的节点信息值为规则个数,用1~Thresh表示,Thresh为叶节点规则数的阈值;跳转指针:对于内部节点,该指针指向下层节点的头节点;对于叶节点,该指针指向存放对应规则子集的规则ID的线性表;步骤3.4.创建根节点,并把所有规则都分配到根节点,根节点用vroot表示;步骤3.5.把所述根节点送入当前队列Q1;步骤3.6.从当前队列中送出节点vc;步骤3.7.判断该节点vc中的规则数是否大于阈值T(即Thresh);步骤3.8.若:节点vc中的规则数大于(或等于)阈值T,则把该节点vc设置为叶节点;若:节点vc中的规则数小于阈值T,则执行下一步骤;步骤3.9.根据当前节点vc的先验概率和该节点所对应的规则子集中规则个数N采用下述两种空间分配函数中的任何一种给节点vc的子节点分配内存空间:第一种: SpaceAlloc ( v c ) = N * spfac ( v c ) = N * ( spfa c min + ( P v c l - min ( P l ) * K ) 其中, P v c l = 1 F Σ i = 0 F Σ j = a i b i Prior [ i ] [ j ] 为节点vc的流量的先验分布概率;当max(Pl)-min(Pl)>0时:K=(spfacmax-spfacmin)/(max(Pl)-min(Pl))当max(Pl)-min(Pl)=0时:K=0,其中,N是当前节点的规则个数;l表示决策树的节点的深度;[ai,bi]是节点vc对应的搜索空间在i域中所代表的区间;max(Pl)和min(Pl)是决策树第l层所有节点的最大和最小先验概率;spfacmin和spfacmax用来限制spfac(vc)的取值范围,一般设为spfacmin=1,spfacmax=4;F=5,表示5个域;第二种: SpaceAlloc ( v c ) = N * spfac ( v c ) = N * BOUND ( P v c l * D l * spfa c avg , spfac min , spfac max ) , BOUND ( a , b , c ) = a b a c b a < b c a > c spfac avg = 1 2 ( spfac min + spfac max ) 其中,Dl表示决策树在l层所有节点的个数;步骤3.10.切分维度和划分次数的确定:首先用下式计算节点v的内存使用, sm ( v , f ) = Σ i = 1 numCuts ( v , f ) numRules ( v i ) + numCuts ( v , f ) 其中f是被切分的维度;vi是v的一个子节点;numRules(v)是属于该节点的规则数。通过在sm(v,f)≤SpaceAlloc(v)的约束下最大化内存估算函数sm(v,f)即可选择在f域上的最优划分次数numCuts(v,f);确定了每个域上的最优划分次数后,便可将f域的搜索空间均匀划分为numCuts(v,f)份,f=1,...,F,假设每个子空间落入Ni个规则,i=1,...,numCuts(v,f),那么我们选择使: 1 numCuts ( v , f ) Σ i = 1 numCuts ( v , f ) N i 最小化的f作为节点v的划分维度;步骤4.网包分类及分类器数据结构更新:步骤4.1.作为网包分类用的处理器从所述DRAM中获取网包包头信息,即网包包头的五元组信息;步骤4.2.读取当前树节点vcurr,确定切分维度和切分次数;步骤4.3.根据步骤4.2中给出的划分域及划分次数对当前搜索空间进行划分,再根据网包包头中相应域的数值确定划分后各域的子空间;步骤4.4.根据步骤4.3中的子空间在搜索空间中的相对位置确定划分后各所属子空间序号,再顺序读取所述当前树节点的子节点,确定划分后各域所对应的子节点;步骤4.5.若步骤4.4最终得到的子节点为叶节点,则转入步骤4.6;否则,将当前搜索空间更新为所述子空间,且将当前树节点更新为所述子节点,重复步骤4.2~4.4;步骤4.6.顺序读取步骤4.4中所述子节点中存放的规则列表,并对每个域进行范围匹配,与网包包头所有域都匹配且具有最高优先级的规则即为线性查找结果,即网包包头最终匹配的规则;步骤4.7.根据线性查找所得到的规则的处理方式,执行对该网包的操作。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/200510130708.X/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top