发明名称 基于层次化特征分析的TCP、UDP流量在线识别方法和装置
摘要 本发明涉及一种基于层次化特征分析的TCP、UDP流量在线识别方法和装置,其中方法包括:离线阶段通过协议分析确定第一层待识别业务类型常用的端口号,以及第二层待识别业务数据流的特征字段,构建端口号及特征字段库,同时采用机器学的方法训练得到第三层贝叶斯决策树模型。在线分类阶段利用特征库和学模型完成对流量的业务类型识别。发明装置包括:数据流分离模块,特征提取模块,特征存储模块,特征匹配模块,属性提取模块,模型构建与分类模块,分类结果显示模块。本发明实例能准确的识别各种基于TCP、UDP的应用层业务,并且识别过程简单高效,适于硬件装置实现,可用于高速骨干网以及接入网中需要在线流量识别的设备和系统。
申请公布号 CN102315974B 申请公布日期 2014.08.27
申请号 CN201110312763.6 申请日期 2011.10.17
申请人 北京邮电大学 发明人 顾仁涛;秦军;纪越峰
分类号 H04L12/24(2006.01)I;H04L12/26(2006.01)I 主分类号 H04L12/24(2006.01)I
代理机构 代理人
主权项 一种基于层次化特征分析的TCP、UDP流量在线识别方法,其特征在于包括以下步骤: 步骤1,前期真实流量数据的获取及梳理:采集多个网络真实流量数据集,这些数据集在不同时间采自于待部署网络;通过查找数据流的起始数据包,以及由源地址、目的地址、源端口、目的端口、传输层协议类型构成的五元组将所得流量数据集分离为不同的TCP、UDP流,使得流量数据集就转换为TCP流与UDP流的集合; 步骤2,将步骤1中获得的TCP流与UDP流分别按照事先划分的业务类型的常用端口号进行划分,对于端口号不易确定的业务类型以及P2P型业务统一划分到未知端口区;这样步骤1中的TCP流与UDP流依照端口号被划分成了数据流块; 步骤3,规划层次识别模型下各个层次阶段需识别的业务类型:本着识别准确率高以及处理高效的原则,对于第一层采用常用端口号识别的业务类型应具有端口号较为固定且不易被其他业务类型占用,对于此类型的业务划分到第一层进行识别;第二层采用数据包有效载荷识别的业务类型应具有协议字段较为固定、易于提取特点;第三层利用基于数据流头部特征采用机器学习的方法进行业务识别,其识别的业务类型应具有的特点是第一、二层处理难度较大,不易识别的业务,依照上述原则在对网络中所有流量业务类型划分的基础上对各层待识别的业务类型进行规划; 步骤4,端口号、协议特征字段的提取:对步骤3中第一二层采用基于端口号和有效载荷的方法所要识别的业务类型的端口号及协议特征字段进行提取,采用协议分析法同时结合前人的工作经验,必要情况下通过人为在终端上产生流量并在传输路径上加以采集然后做分析; 步骤5,数据流头部特征提取:在不同时间采集待部署网络真实流量数据集,按照{源地址、目的地址、源端口、目的端口、传输层协议类型}五元组将采集到的数据集进行处理,分成不同的TCP、UDP流,提取数据流中关于数据包的统计特征,并按照数据包在该流的先后顺序构建一个特征序列; 步骤6,端口号、协议特征字段及数据流头部特征存储:将步骤3步骤4中得到的端口号和协议特征字段按照与业务相对应的模式进行存储,同时存储步骤5中得到的数据流头部特征以用于后一阶段机器学习分类器模型的训练;此步骤中可以设置不同的存储模块也可以同一存储模块划分成不同的存储区域; 步骤7,训练机器学习分类模型:利用步骤6中存储的数据流头部特征的数据对贝叶斯决策树分类器进行训练得到贝叶斯决策树分类模型,此时针对TCP流和UDP流分别构建分类器; 步骤8,提取待分析数据流的端口号完成端口匹配和业务标记:按照数据包在该数据流中到达的先后顺序,提取端口号并予以存储,同时与存储模块进行匹配,如果发现存在匹配项则标记为存储模块中相对应的业务类型;此属第一层处理范畴; 步骤9,协议字段提取匹配与业务标记:按照数据包在该数据流中到达的先后顺序,提取协议特征字段并予以存储,同时将特征字段与存储模块进行匹配,如果发现存在匹配状态则标记为存储模块中相对应的业务类型,此属第二层处理范畴: 步骤10,提取待分析数据流统计特征值:此阶段处理的数据流为经过步骤8、9后尚未做出业务类型标记的数据流块;同样按照数据流数据包在该数据流中到达的先后顺序,依次提取这些数据包的统计特征包长、到达时间间隔组成一个特征序列,并予以存储,此属第三层前期处理范畴; 步骤11,利用学习模型分类:利用步骤7中训练得到的机器学习分类模型以及步骤10中的数据流的统计特征值作为输入对尚未识别的数据流进行业务分类,此属第三层处理范畴; 步骤12,分类结果汇总输出,将步骤9与这步骤11中的结果汇总输出。 
地址 100876 北京市海淀区西土城路10号