一种基于增量聚类算法的在线流量识别方法与流程

文档序号:16381236发布日期:2018-12-22 09:29阅读:602来源:国知局
一种基于增量聚类算法的在线流量识别方法与流程

本发明属于网络技术领域,具体涉及一种基于增量聚类算法的在线流量识别方法。

背景技术

随着互联网的快速发展,网络环境变得越来复杂,新型应用类型和业务日益多样化,实时且准确的识别网络流量对网络管理和流量具有相当重要的意义。目前流量识别方法有四种:基于端口号的流量识别方法、基于行为特征的流量识别方法、基于深度报文检测的流量识别方法和基于机器学习的流量识别方法。基于端口号的识别方法只对使用常用端口和注册端口的网络协议流量识别具有准确性;基于行为特征匹配的识别方法则时空开销比较大,识别的性能不足;基于深度报文检测的流量识别方法需要耗费大量人力物力来建立规则库,而且在加密流量识别方面也存在欠缺;部分常见的基于机器学习的方法需要在离线环境下提取完整流的统计特征,然而由于真实网络环境互联网应用行为具有实时、多变、易逝和不可逆等特性,该类流量识别方法不能满足在线实时流量识别的需求。



技术实现要素:

本发明的目的在于提供一种实时性好的基于增量聚类算法的在线流量识别方法。

一种基于增量聚类算法的在线流量识别方法,包括以下步骤:

步骤1、离线识别阶段对预先准备的训练数据集提取所需流量特征属性完成数据集的预处理。

步骤2、使用基于改进k均值算法的半监督学习流量方法对预处理后的数据集进行初步的聚类和映射工作,得到初步分类完成的数据集。

步骤3、对在线新加入的数据流进行实时的特征提取以得到增量聚类的数据对象。

步骤4、在已形成的完成聚类和映射的数据集的基础上,使用增量聚类来判断流量的网络应用类型,从而达到流量识别的目的。

步骤5、定期删减不属于所要识别的网络应用类型所对应的类簇的点或者距每个类簇中心较远的数据对象,得到新的数据集,转到步骤3,达到持续识别在线流量的目的。

所述一种基于增量聚类算法的在线流量识别方法,步骤1具体包括:对采集的网络流量进行预处理,包括针对ip层数据包进行分片重组、过滤tcp协议的乱序重传报文、判断数据流开始和结束、记录数据包到达时间;对预处理之后的流量使用已知dpi方法进行流量识别作为参考,然后将不同应用数据流进行采样,对采样后形成的数据集按需要提取的属性进行特征提取,并按一定比例对数据进行标记。

所述一种基于增量聚类算法的在线流量识别方法,步骤2具体包括:运行改进的k均值聚类算法将特征提取后的数据集进行聚类,将聚类结果中每个簇中已经标记的各类型数据比例作为参照,对聚类结果根据最大似然估计,得到训练数据集中类与具体网络应用之间的映射。

所述一种基于增量聚类算法的在线流量识别方法,步骤5具体包括:

步骤5.1、将经过训练阶段得到的具有收敛聚类中心的数据集合作为初始数据集,该数据集合已有k个类簇,设集合当前初始大小size为n,将此时作为初始时刻,时间t为0。

步骤5.2、对在线新加入的数据进行实时特征提取后,新流的数据对象加入数据集,使用欧式距离计算该数据对象和各个类簇之间的距离,找出最小距离和该距离所对应的类簇,若最小距离超过阈值r则将数据对象本身看做一个新类加入到样本集合中,并且将该数据对象加入到未知类型集合n,否则将它加入此最小距离对应的类簇中,重复进行步骤5.2,直到时间超过预先设定的时间t。

步骤5.3、经过时间t的新数据加入,数据集大小为size+v(x),重新计算每个簇的簇中心并将计算后的值更新,在未知类型流量集合n中随机删除数据对象,直到保持的未知流量集合大小为n,更新保持的数据大小size为size+n;当存储的数据大小size大于预先设定的存储空间阈值max时,进行步骤5.4,否则重置时间t为0,继续进行步骤5.2。

步骤5.4、控制已知类型数据对象的数量,按比例删除属于每个簇中离簇中心较远的数据对象,直到样本大小为当前大小的一半,转到步骤3,继续进行在线流量识别。

一种基于增量聚类算法的在线流量识别方法,所述改进k均值算法包括以下步骤:

1、利用改进后的的方法在高密度区域选择k个初始聚类中心;

2、初始化k个聚类中心;

3、将数据分配到k个聚类中;

4、判断聚类中心是否变化,如果变化,则返回初始化k个聚类中心,如果不变化,则得到新的聚类结果。

本发明的有益效果在于:

本发明一种基于增量聚类的网络流量识别方法基于机器学习技术,通过构建合适的识别模型对预先准备的数据进行学习,可以实时对在线流量进行增量聚类,结合预先准备的训练集进行初步的半监督分类,可以实现网络流量的在线识别,不受动态端口技术、加密技术等新型网络技术约束,具有良好的实时性和较高的识别率。

附图说明

图1是本发明的整体运行流程图;

图2是改进k均值算法运行流程图;

图3是离线训练阶段运行流程图;

图4是在线识别阶段增量聚类算法原理流程图。

具体实施方式

下面结合附图对本发明做进一步描述:

本流量识别方法分为离线训练阶段和在线识别阶段,用5元组(源/目的端口,源/目的ip地址,协议类型)定义数据流,将数据流的前5个数据包作为子流进行在线数据流的早期流量识别以满足在线流量识别的实时性和高速要求。同时,采用数据包大小、数据包平均间隔时间、数据包平均长度和服务器端口号4个属性来进行两阶段的特征提取工作。

结合附图2和附图3可对离线训练阶段进行详细描述:

1、首先对采集的网络流量进行预处理,包括针对ip层数据包进行分片重组、过滤tcp协议的乱序重传报文、判断数据流开始和结束和记录数据包到达时间这几个工作;

2、对预处理之后的流量使用已知dpi方法进行流量识别作为参考,然后将不同应用数据流进行采样;

3、对采样后的形成的数据集按需要提取的属性进行特征提取,并按一定比例对数据进行标记(即将数据标记为某具体网络应用类型);

4、将步骤3处理后的数据集运行改进的k均值聚类算法进行聚类,改进的k均值聚类算法流程如附图2所示;

5、将聚类结果中每个簇中已经标记的各类型数据比例作为参照,对聚类结果根据最大似然估计,得到训练数据集中类与具体网络应用之间的映射;

在在线识别阶段,根据附图4所描述的增量聚类原理,考虑到在线流量识别存储空间的限制,将算法改进为定期删减一些不属于所要识别的网络应用类型所对应的类簇的点或者距每个类簇中心较远的数据对象,尽量不影响聚类效果,该阶段可描述为:

1、将经过训练阶段得到的具有收敛聚类中心的数据集合作为初始数据集,该数据集合已有k个类簇,设集合当前初始大小size为n,将此时作为初始时刻,时间t为0;

2、经过实时特征提取后,将表示新流的数据对象加入数据集,使用欧式距离计算该数据对象和各个类簇之间的距离,找出最小距离和该距离所对应的类簇;

3、如果步骤2中的最小距离超过阈值r则将数据对象本身看做一个新类加入到样本集合中,并且将该数据对象加入到未知类型集合n,否则将它加入此最小距离对应的类簇中;

4、重复步骤2、3,如超过预先设定的单位时间t则转到步骤5;

5、此时经过时间t的新数据加入,数据集大小为size+v(x),此时重新计算每个簇的簇中心并将计算后的值更新,在未知类型流量集合n中随机删除数据对象,直到保持的未知流量集合大小为n,更新保持的数据大小size为size+n;当存储的数据大小size大于预先设定的存储空间阈值max时,转到步骤6,否则重置时间t为0,转到步骤2;

6、控制已知类型数据对象的数量,按比例删除属于每个簇中且离簇中心较远的数据对象,直到样本大小为当前大小的一半,将时刻重置为0,转到步骤2继续进行在线流量识别。

附图1是本发明的整体运行流程图,综合离线训练阶段和在线识别阶段,该发明的整体流程可以描述为:

1、首先预先准备的训练数据集提取所需流量特征属性完成数据集的预处理;

2、使用基于改进k均值算法的半监督学习流量方法对预处理后的数据集进行初步的聚类和映射工作,得到初步分类完成的数据集;

3、对在线新加入的数据流进行实时的特征提取以得到增量聚类的数据对象;

4、最后在离线识别阶段所形成的已完成聚类和映射的数据集的基础上,使用增量聚类来判断流量的网络应用类型,从而达到流量识别的目的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1