法律状态公告日
法律状态信息
法律状态
2019-06-14
授权
授权
2016-12-28
专利申请权的转移 IPC(主分类):H04L12/26 登记生效日:20161208 变更前: 变更后: 申请日:20150721
专利申请权、专利权的转移
2016-12-28
著录事项变更 IPC(主分类):H04L12/26 变更前: 变更后: 申请日:20150721
著录事项变更
2016-11-30
实质审查的生效 IPC(主分类):H04L12/26 申请日:20150721
实质审查的生效
2015-11-18
公开
公开
技术领域
本发明涉及网络流量分类技术,特别涉及一种基于比特粒度的网络流量分类技术以及自动化挖掘指定应用流量中比特粒度特征的方法。
背景技术
随着互联网技术的不断发展和网络用户的不断增长,基于特征匹配的网络流量识别与分类方法由于其准确性和稳定性在网络管理和安全审计等方面发挥了极其重要的作用,例如包括网络服务质量优化和网络入侵检测等。然而,随着网络应用在互联网流量中复杂性和隐蔽性的逐渐增强,传统的基于字节粒度特征匹配的网络流量分类方法逐渐失去其效力。与此同时,随着网络应用数目的不断增长和版本更新的日益频繁,传统的依靠人工发现特征的方法由于耗时耗力而无法及时更新和应用,导致网络流量的精确分类和应用识别面临极大的挑战。因此,研究和实现更加细粒度的基于特征匹配的网络流量分类与应用识别方法并实现其特征的自动化挖掘,已成为相关学术界和工业界关注的热点问题。
关联规则,属于数据挖掘的一个重要课题,用于从大量数据中挖掘出有价值的数据项之间的关系。其中涉及的定义如下:设I={I1,I2,I3,…,Im}是项(Item)的集合,给定一个事项数据库D={T1,T2,T3,…,Tn},其中每个事务项(Transaction)T是I的非空子集,即T?I,每一个事项都有一个唯一的标识符TID(TransactionID)对应。关联规则是形如X?Y的蕴涵式,其中X,Y?I且X∩Y=Φ。关联规则X?Y在D中的支持度(support)是D中事务包含X∩Y的百分比,即概率P(X∩Y);置信度(confidence)是包含X的事务中同时包含Y的百分比,即条件概率P(Y|X)。如果同时满足最小支持度阈值和最小置信度阈值,则认为关联规则是有趣的,这些阈值可提前设定。
发明内容
本发明提供了一种基于比特粒度的网络流量分类和应用识别方法,并实现了此类特征的自动化挖掘,提高了网络流量识别与分类的准确性和可靠性。
为实现上述目的,本发明提供了自动化挖掘比特粒度特征的网络流量分类方法,包括:
步骤1,创建指定网络应用流量的事项数据库Dold;
步骤2,建立指定哈希表Bit-Table,产生新事项数据库Dnew;
步骤3,构建基于Dnew的前缀树Miner-Tree;
步骤4,基于最小支持度和最小置信度的剪枝,形成比特粒度特征;
步骤5,基于比特粒度特征的网络应用流量识别。
优选地,步骤1具体包括如下处理:
步骤11,捕获指定网络应用的一定数量的网络流量;
步骤12,底层处理上述步骤11获取的网络流量,提取全部网络流;
步骤13,将上述步骤12得到的每条网络流格式化为事务项,得到事项数据库Dold。
优选地,步骤12具体包括如下处理:
步骤121,网络流量数据包IP分片重组,得到重组后的IP数据包;
步骤122,将上述步骤121得到的重组后的IP数据包进行TCP流重组或者UDP流重组。
优选地,步骤13进一步包括:
将每条网络流转换成一项事务项(Transaction),其中每条网络流的每一个比特转换成一个项(Item)。每一个项由N+M+1个16进制字符组成,首先前N个16进制字符表示此比特所在的网络数据包在网络流中序号;其次中间M个16进制字符表示此比特所在的网络数据包中的比特位置;最后1个16进制字符表示当前比特的比特值,即0或者1。通过这种方式,每条网络流对应的事务项共同组成事项数据库Dold。
优选地,步骤2具体包括如下处理:
步骤21,根据可用内存建立合适大小的哈希表Bit-Table;
步骤22,计算事项数据库Dold中每个项的支持度;
步骤23,根据支持度重新排序每个事务项中的所有项的排序,形成新事项数据库Dnew。
优选地,步骤22具体包括如下处理:
步骤221,依次读取步骤1产生的事项数据库Dold中的每个事务项中的每个项,并通过哈希运算将每个项映射到不同的哈希单元;
步骤222,遍历Dold完成后,得到事项数据库中每个不同项的支持度,这里支持度即Dold的每个不同项在全部事务项中出现的百分比。
优选地,步骤23具体包含如下处理:
步骤231,再次读取步骤1产生的事项数据库Dold中的每个事务项中的每个项,并检查每个不同项的支持度;
步骤232,从每个事务项中删除项的支持度小于已设置的支持度阈值的项;
步骤233,在每个事务项中根据每个项的支持度大小重新排序所有项的位置,由大到小排列;
步骤234,所有新的事务项组成新的事项数据库Dnew。
优选地,步骤3进一步包括:
构建基于Dnew的前缀树Miner-Tree,每个事务项的所有项按照已排列的顺序依次导入根节点为空的前缀树,其中每个项占据Miner-Tree的一个节点,不同事务项的完全相同的前X项可共用相同的X个节点,并记录每个节点在所有事务项中出现的重叠次数,如果节点不存在则建立新的节点分支。通过这种方式,将新事项数据库Dnew中的所有事务项转换成Miner-Tree存储。
优选地,步骤4具体包括如下处理:
步骤41,检查步骤3中生成的Miner-Tree的每个节点的支持度,并将支持度小于已设置的支持度阈值的节点及其分支删除;
步骤42,检查上述步骤41处理后的Miner-Tree的每个节点的置信度,并将置信度小于已设置的置信度阈值的节点及其分支删除;
步骤43,根据上述步骤42剪枝后的Miner-Tree的所有保留分支组合形成网络应用的比特粒度的特征。
优选地,步骤41进一步包括:
这里每个节点的支持度指的是每个节点代表的项重叠次数比上Dnew中的全部事务项的数目,删除计算结果小于已设置的支持度阈值的节点及其分支。
优选地,步骤42进一步包括:
这里每个节点的置信度指的是每个节点的所有子节点所代表的所有项的重叠次数比上此节点的重叠次数,删除计算结果小于已设置的置信度阈值的当前节点的全部子节点及其分支。
优选地,步骤43进一步包括:
剪枝后的Miner-Tree可能包含多个分支,它们之间的关系用“或”来表示,属于并列关系,可用正则表达式表示,这些节点所代表的项共同组成了基于比特粒度的网络流量特征。
优选地,步骤5进一步包括:
根据步骤4得到的网络流量特征,匹配网络流量中每条网络流在特定位置的比特值,即组成特征的每个项的比特位置(指定的网络数据包序号及内部比特序号)及其相应确定的比特值(0或者1)。如果满足特征所包含的全部项,则认定此网络流为特征所属网络应用的流量。
本发明有益效果如下:
借助于本发明实施例的技术方案,可以从比特粒度自动化挖掘网络应用流量中存在的强特征,且挖掘得到的比特粒度特征能够有效提高网络流量分类与应用识别的准确性和可靠性,更好的服务于网络管理与审计以及网络安全。
附图说明
图1是本发明实施例的自动化挖掘网络流量比特粒度特征示意流程图;
图2是本发明实施例的网络应用流量转换事项数据库示意图;
图3是本发明实施例的网络应用流量事项数据库整理排序示意图;
图4是本发明实施例的网络应用流量事项数据库构建前缀树示意图;
图5是本发明实施例的自动化挖掘的网络应用流量比特粒度特征效果图。
具体实施方式
为了解决网络流量分类和应用识别的难题,本发明提出了一种基于比特粒度的网络流量应用分类和识别方法,并提供了其自动化特征挖掘方法,主要包括以下五个步骤:S1.创建指定网络应用流量的事项数据库Dold;S2.建立指定哈希表Bit-Table,产生新事项数据库Dnew;S3.构建基于Dnew的前缀树Miner-Tree;S4.基于最小支持度和最小置信度的剪枝,形成比特粒度特征;S5.基于比特粒度特征的网络应用流量识别。以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。
方法实施例
根据本发明的实施例,提供了一种基于比特粒度的网络流量分类和应用识别方法,并实现了此类特征的自动化挖掘,图1是本发明实施例的自动化挖掘网络流量比特粒度特征示意流程图,如图1所示,根据本发明实施例的自动化挖掘网络应用流量比特粒度特征的方法包括如下处理:
步骤101,根据指定网络应用的流量,创建其事项数据库Dold;
步骤101具体包括如下处理:
步骤1011,捕获指定网络应用多次运行所产生的网络流量;
步骤1012,通过Libnids或DPDK等网络流量处理框架提取步骤1011中所捕获的网络流量中的全部网络流;
步骤1012具体包括如下处理:
步骤10121,网络流量数据包的IP分片重组,得到重组后的IP数据包;
步骤10122,将上述步骤10121重组后的IP数据包进行TCP流重组或UDP流重组。
步骤1013,将上述步骤1012中获得的每条网络流格式化为事务项,得到事项数据库Dold。
步骤1013具体包括如下处理:
将每条网络流转换成一项事务项(Transaction),其中每条网络流的每一个比特转换成一个项(Item)。每一个项由7个16进制字符组成,首先前2个16进制字符表示此比特所在的网络数据包在网络流中序号,即可表示前每条网络流的前256个数据包(0x00~0xFF);其次中间4个16进制字符表示此比特所在的网络数据包中的比特位置,即可表示每个网络数据包的前65536个比特(0x0000~0xFFFF),也即每个网络数据包的前8192个字节(1字节相当于8比特)的所有比特;最后1个16进制字符表示当前比特的比特值,即0或者1。通过这种方式,每条网络流对应的事务项共同组成事项数据库Dold,如图2所示。
步骤102,建立指定哈希表Bit-Table,产生新事项数据库Dnew;
步骤102具体包括如下处理:
步骤1021,根据可用内存建立合适大小的哈希表Bit-Table,并确定哈希函数;
步骤1022,计算事项数据库Dold中每个项的支持度大小;
步骤1022具体包括如下处理:
步骤10221,依次读取步骤1产生的事项数据库Dold中的每个事务项中的每个项,并通过哈希运算将每个项映射到不同的哈希单元;
步骤10222,遍历Dold完成后,得到事项数据库中每个不同项的支持度,这里支持度即Dold的每个不同项在全部事务项中出现的百分比;
步骤1023,根据支持度重新排序每个事务项中的所有项的排序,形成新事项数据库Dnew。
步骤1023具体包括如下处理:
步骤10231,再次读取步骤1产生的事项数据库Dold中的每个事务项中的每个项,并检查每个不同项的支持度;
步骤10232,从每个事务项中删除项的支持度小于已设置的支持度阈值的项;
步骤10233,在每个事务项中根据每个项的支持度大小重新排序所有项的位置,由大到小排列;
步骤10234,所有新的事务项组成新的事项数据库Dnew,如图3所示。
步骤103,构建基于Dnew的前缀树Miner-Tree;
步骤103具体包括如下处理:
构建基于Dnew的前缀树Miner-Tree,每个事务项的所有项按照已排列的顺序依次导入根节点为空的前缀树,其中每个项占据Miner-Tree的一个节点,不同事务项的完全相同的前X项可共用相同的X个节点,并记录每个节点在所有事务项中出现的重叠次数,如果节点不存在则建立新的节点分支。通过这种方式,将新事项数据库Dnew中的所有事务项转换成Miner-Tree存储。
步骤104,基于最小支持度和最小置信度的剪枝,形成比特粒度特征,如图4所示;
步骤104具体包括如下处理:
步骤1041,检查步骤103中生成的Miner-Tree的每个节点的支持度,并将支持度小于已设置的支持度阈值的节点及其分支删除;
步骤1041具体包括如下处理:
这里每个节点的支持度指的是每个节点代表的项重叠次数比上Dnew中的全部事务项的数目,删除计算结果小于已设置的支持度阈值的节点及其分支,默认支持度最小阈值为0.2;
步骤1042,检查上述步骤1041处理后的Miner-Tree的每个节点的置信度,并将置信度小于已设置的置信度阈值的节点及其分支删除;
步骤1042具体包括如下处理:
这里每个节点的置信度指的是每个节点的所有子节点所代表的所有项的重叠次数比上此节点的重叠次数,删除计算结果小于已设置的置信度阈值的当前节点的全部子节点及其分支,默认置信度最小阈值为0.8。
步骤1043,根据上述步骤1042剪枝后的Miner-Tree的所有保留分支组合形成网络应用的比特粒度的特征。
步骤1043具体包括如下处理:
剪枝后的Miner-Tree可能包含多个分支,它们之间的关系用“或”来表示,属于并列关系,可用正则表达式表示,这些节点所代表的项共同组成了基于比特粒度的网络流量特征,即(I4I7((I5I8)|(I6I9)))|(I1I2I3)。
步骤105,基于比特粒度特征的网络应用流量识别。
步骤105具体包括如下处理:
根据步骤104得到的网络流量特征,匹配网络流量中每条网络流在特定位置的比特值,即组成特征的每个项的比特位置(指定的网络数据包序号及内部比特序号)及其相应确定的比特值(0或者1)。如果满足特征所包含的全部项,则认定此网络流为特征所属网络应用的流量。
综上所述,借助于本发明实施例的技术方案,可以实现自动化挖掘不同网络应用流量中所存在的比特粒度特征,并实现基于比特粒度特征的网络流量分类与应用识别,达到极高的识别与分类准确性,具体效果如图5所示。
尽管为示例目的,已经公开了本发明的优选实施例,本领域的技术人员将意识到各种改进、增加和取代也是可能的,因此,本发明的范围应当不限于上述实施例。
机译: 用于将恒定比特率网络流量映射到非恒定比特率网络的自动化方法
机译: 用于将恒定比特率网络流量映射到非恒定比特率网络的自动化方法
机译: 一种家庭自动化网络中的通信方法,该方法使角色之间的通信能够通过帧与与建筑物中的设备项相关联的命令发送器和/或命令接收器组成;用于对家庭自动化安装进行编程的翻译设备,一种类型的家庭自动化设备是命令发送器和/或命令接收器和/或家庭自动化安装编程工具;和家庭自动化安装