一种网络流量分类方法、系统及电子设备与流程

文档序号:16815349发布日期:2019-02-10 14:22阅读:177来源:国知局
一种网络流量分类方法、系统及电子设备与流程

本申请属于网络流量分类技术领域,特别涉及一种网络流量分类方法、系统及电子设备。



背景技术:

随着互联网的高速普及,由于大量新应用的出现,现代网络环境变得越来越复杂和多样化。流量分类和网络应用识别在网络管理服务和安全系统中发挥着重要作用,如服务质量、入侵检测系统和交通管理系统。如果能够准确的把网络系统中的流量进行分类和应用识别,不仅对网络安全和网络管理服务效率有很大提升,也可以降低系统时间和内存开销。

目前,现有的网络流量分类方法主要包括:

一、基于表征学习的网络流量分类:对获取到的网络流量数据进行预处理,使用表征学习算法对预处理后的网络流量数据进行特征提取,将网络流量数据生成网络流向量,根据所述网络流向量对所述网络流量数据进行分类,可实现高效地对网络流量进行分类。

二、基于半监督学习的网络流量分类:获取已标记类型和未标记类型的网络流,按照预设固定量来提取每条网络流中的流特征,得到网络流特征向量;根据已标记类型的网络流,计算出预设固定量中每个流特征的信息增益,并根据所述信息增益对每个流特征进行特征加权;将已标记类型和未标记类型的网络流进行混合,并利用k-means算法对混合后的网络流进行聚类,得到k个聚簇;获取所述k个聚簇中的每个聚簇中已标记网络流特征向量的数目,并确定每个聚簇中每个类型的占比值;其中所述占比值是等于每个类型的已标记网络流特征向量的数目占簇中总的已标记网络流特征向量的数目的比例;当每个聚簇中已标记网络流特征向量的总数目相加小于预设网络流阈值时,则将相应的聚簇判定为未知协议簇,否则将相应的聚簇判定为已标记网络流特征向量中比例最大的类型;重复以上两步,直到k个聚簇都判定出流量类型的流量簇;将所述判定出流量类型的流量簇作为训练数据,训练出线上的流量分类器。该方法利用了半监督学习的优势,与传统的只使用标注数据训练模型的监督学习算法相比,准确性和稳定性更好。

三、一种自适应的半监督网络流量分类:获取已标记类型和未标记类型的网络流,提取每条网络流中预设固定量的流特征,得到网络流特征向量;根据已标记的网络流特征向量,计算出每个类型中的网络流特征向量集合的质心,得到向量集m;以所述向量集m为k-means聚类的初始中心点,对混合的已标记类型和未标记类型的网络流特征向量集x进行自适应的半监督k-means聚类,并输出k-means的聚簇;根据输出的聚簇中每个簇的已标记网络流特征向量的最大后验概率,将得到的每类簇中的网络流映射到所属的流量类型中,得到已知类型的流量簇;将所述已知类型的流量簇作为训练数据,训练出线上的流量分类器。

综上所述,现有的网络流量分类方法主要注重算法层面的网络流量分类,都是对训练阶段的分类算法部分提出了各种各样的优化和改进算法,却没有解决如何能从网络数据包中提取到大量相关有效的特征集问题,无法对互联网中大量的新应用进行精准的识别和分类。



技术实现要素:

本申请提供了一种网络流量分类方法、系统及电子设备,旨在至少在一定程度上解决现有技术中的上述技术问题之一。

为了解决上述问题,本申请提供了如下技术方案:

一种网络流量分类方法,包括以下步骤:

步骤a:采集网络流量数据,并对所述网络流量数据进行打标签处理;

步骤b:根据所述打标签处理后的网络流量数据提取双向流特征集;

步骤c:基于所述双向流特征集构建分类模型,通过所述分类模型输出网络流量数据的分类结果。

本申请实施例采取的技术方案还包括:在所述步骤a中,所述采集网络流量数据,对网络流量数据进行打标签处理具体包括:

步骤a1:选择网络流量中的应用类别;

步骤a2:收集每个应用对应的网络流量数据包和对应时间段的系统网络日志;

步骤a3:分析所述网络流量数据包,找出每个应用的自然属性以及与其他应用之间交流的ip地址和传输协议;

步骤a4:提取所述系统网络日志中与每个应用相关联的ip端点和传输包数,并结合ip地址和传输协议进行关联融合,完成所述网络流量数据的打标签处理。

本申请实施例采取的技术方案还包括:在所述步骤b中,所述根据打标签处理后的网络流量数据提取双向流特征集具体包括:

步骤b1:根据已打标签的网络流量数据进行分析,分别统计出所述网络流量数据中每对{源ip地址,目的ip地址}基于不同端口号的{源ip地址->目的ip地址}和{目的ip地址->源ip地址}间的双向网络流信息;

步骤b2:找出每对{源ip地址->目的ip地址}间的正向网络流,并从所述正向网络流中提取出所有正向网络流特征集;

步骤b3:找出每对{目的ip地址->源ip地址}间的反向网络流,并从所述反向网络流中提取出所有反向网络流特征集;

步骤b4:组合每对{源ip地址,目的ip地址}间的正向和反向网络流特征集,形成m维特征的双向流特征集。

本申请实施例采取的技术方案还包括:所述步骤b还包括:利用最大方差解释机制对所述双向流特征集进行优化。

本申请实施例采取的技术方案还包括:所述利用最大方差解释机制对双向流特征集进行优化具体包括:

步骤b5:对所述网络流量数据进行标准归一化;

步骤b6:在所述网络流量数据上,求出双向流特征集上的每个特征的平均值;

步骤b7:用归一化后的网络流量数据减去每个特征对应的平均值,得到每个特征的新结果,并对所述每个特征的新结果做方差归一化;

步骤b8:计算所述双向流特征集的协方差矩阵,并根据所述协方差矩阵中主对角线上的每个特征的方差值进行由小到大排序,得到双向流特征集中关联度最高最紧密的n维特征;

步骤b9:计算所述协方差矩阵的特征值和特征向量,并将特征值按大小进行排序,选出前n个优化后的双向流特征对应的特征向量;

步骤b10:将所述网络流量数据投影到所述n个特征向量上;

步骤b11:将所述网络流量数据的m维双向流特征集优化成n维双向流特征集。

本申请实施例采取的另一技术方案为:一种网络流量分类系统,包括:

数据采集模块:用于采集网络流量数据;

数据预处理模块:用于对所述网络流量数据进行打标签处理;

特征提取模块:用于根据所述打标签处理后的网络流量数据提取双向流特征集;

模型构建模块:用于基于所述双向流特征集构建分类模型,通过所述分类模型输出网络流量数据的分类结果。

本申请实施例采取的技术方案还包括:

所述数据采集模块采集网络流量数据具体包括:选择网络流量中的应用类别,收集每个应用对应的网络流量数据包和对应时间段的系统网络日志;

所述数据预处理模块对网络流量数据进行打标签处理具体包括:分析所述网络流量数据包,找出每个应用的自然属性以及与其他应用之间交流的ip地址和传输协议;提取所述系统网络日志中与每个应用相关联的ip端点和传输包数,并结合ip地址和传输协议进行关联融合,完成所述网络流量数据的打标签处理。

本申请实施例采取的技术方案还包括:所述特征提取模块根据打标签处理后的网络流量数据提取双向流特征集具体包括:

根据已打标签的网络流量数据进行分析,分别统计出所述网络流量数据中每对{源ip地址,目的ip地址}基于不同端口号的{源ip地址->目的ip地址}和{目的ip地址->源ip地址}间的双向网络流信息;

找出每对{源ip地址->目的ip地址}间的正向网络流,并从所述正向网络流中提取出所有正向网络流特征集;

找出每对{目的ip地址->源ip地址}间的反向网络流,并从所述反向网络流中提取出所有反向网络流特征集;

组合每对{源ip地址,目的ip地址}间的正向和反向网络流特征集,形成m维特征的双向流特征集。

本申请实施例采取的技术方案还包括特征优化模块,所述特征优化模块用于利用最大方差解释机制对所述双向流特征集进行优化。

本申请实施例采取的技术方案还包括:所述特征优化模块利用最大方差解释机制对双向流特征集进行优化具体包括:

对所述网络流量数据进行标准归一化;

在所述网络流量数据上,求出双向流特征集上的每个特征的平均值;

用归一化后的网络流量数据减去每个特征对应的平均值,得到每个特征的新结果,并对所述每个特征的新结果做方差归一化;

计算所述双向流特征集的协方差矩阵,并根据所述协方差矩阵中主对角线上的每个特征的方差值进行由小到大排序,得到双向流特征集中关联度最高最紧密的n维特征;

计算所述协方差矩阵的特征值和特征向量,并将特征值按大小进行排序,选出前n个优化后的双向流特征对应的特征向量;

将所述网络流量数据投影到所述n个特征向量上;

将所述网络流量数据的m维双向流特征集优化成n维双向流特征集。

本申请实施例采取的又一技术方案为:一种电子设备,包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的网络流量分类方法的以下操作:

步骤a:采集网络流量数据,并对所述网络流量数据进行打标签处理;

步骤b:根据所述打标签处理后的网络流量数据提取双向流特征集;

步骤c:基于所述双向流特征集构建分类模型,通过所述分类模型输出网络流量数据的分类结果。

相对于现有技术,本申请实施例产生的有益效果在于:本申请实施例的网络流量分类方法、系统及电子设备利用网络流量数据中的双向流特征对网络流量进行分类,能够对互联网中大量的新应用进行精准识别和分类;同时利用最大方差解释机制的方法对双向流特征进行优化关联,保障了双向流特征的高内聚,提高了分类准确率,能够有效的保障网络流量分类的高精度和高性能。

附图说明

图1是本申请实施例的网络流量分类方法的流程图;

图2为网络流量数据的采集和打标签过程示意图;

图3为双向流特征集的提取与优化过程示意图;

图4是本申请实施例的网络流量分类系统的结构示意图;

图5是本申请实施例提供的网络流量分类方法的硬件设备结构示意图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。

请参阅图1,是本申请实施例的网络流量分类方法的流程图。本申请实施例的网络流量分类方法包括以下步骤:

步骤100:采集网络流量数据,并对网络流量数据进行打标签处理;

步骤100中,网络流量数据的采集和打标签过程如图2所示,具体步骤如下:

步骤101:选择网络流量中的应用类别;

步骤102:通过高性能网络监控软件连续性捕捉固定应用类流量;

步骤103:收集到每个应用类别对应的网络流量数据包和对应时间段的系统网络日志;

步骤104:分析网络流量数据包,找出每个应用的自然属性以及与其他应用之间交流的关键信息,例如ip地址、传输协议等;

步骤105:提取出系统网络日志中与每个应用相关联的ip端点和传输包数,并结合ip地址和传输协议进行关联融合,完成网络流量数据的打标签处理。

步骤200:从打标签处理后的网络流量数据中提取双向流特征集,并利用最大方差解释机制对双向流特征集进行优化;

步骤200中,双向流特征集的提取与优化过程如图3所示,其具体包括以下步骤:

步骤201:根据已打标签的网络流量数据进行分析,分别统计出网络流量数据中每对{源ip地址,目的ip地址}基于不同端口号的{源ip地址->目的ip地址}和{目的ip地址->源ip地址}间的双向(正向和反向)网络流信息,此时每对{源ip地址,目的ip地址}都有两条相反方向的网络流信息存在;

步骤202:找出每对{源ip地址->目的ip地址}间的正向网络流,从中提取出关于每条正向网络流中的所有正向网络流特征集f1;

步骤203:找出每对{目的ip地址->源ip地址}间的反向网络流,从中提取出关于每条反向网络流中的所有反向网络流特征集f2;

步骤204:组合每对{源ip地址,目的ip地址}间的正向和反向网络流特征集{f1,f2},形成m维特征的双向流特征集f,记作f={f1,f2};

步骤204中,通过组合所有正向和反向网络流特征集,起到均匀优化的作用。

步骤205:对网络流量数据进行标准归一化,将网络流量数据集归一化为均值为0、方差为1的数据集;归一化公式为:x*=(x-u)/δ,其中u为所有网络流量数据的均值,δ为所有网络流量数据的标准差;

步骤206:在网络流量数据上,求出双向流特征集f上的每个特征的平均值;

步骤207:用归一化的网络流量数据减去每个特征对应的平均值,得到每个特征的新结果,并对每个特征的新结果做方差归一化;

步骤208:计算出双向流特征集f的协方差矩阵,并根据协方差矩阵中主对角线上的每个特征的方差值进行由小到大排序,得到双向流特征集f中关联度最高最紧密的n维特征;

步骤208中,主对角线上是两两特征之间的协方差,协方差大于0,表示两个特征之间呈正相关趋势;协方差小于0,表示两个特征之间呈负相关趋势;协方差等于0,表示两个特征之间独立;协方差绝对值越大,两个特征之间联系越紧密,反之越小。根据此5个条件,可以计算得到双向流特征集f中关联度最高最紧密的n维特征。本申请利用最大方差解释机制对网络流量数据中的双向网络流特征集进行关联度最紧密的特征进行优先组合,筛选出最能体现网络流量类别的特征集。

步骤209:计算协方差矩阵的特征值和特征向量,并将特征值按大小进行排序,选出前n个优化后的双向流特征对应的特征向量;

步骤210:将网络流量数据投影到选取的n个特征向量上:假设网络流量数据样例数为p,特征数为q,网络流量数据减去特征均值后的样本矩阵为datatransform(p*q),双向流特征集的协方差矩阵是p*q,选取的n个特征向量组成的矩阵为eigenvectors(q*n),那么投影后的网络流量数据为:optimizedata(p*n)=datatransform(p*q)xeigenvectors(q*n);

步骤210中,通过将网络流量数据投影到优化后的双向流特征对应的特征向量上,可提高数据的聚合度,降低噪声数据的影响,提高分类精度。

步骤211:将网络流量数据的m维双向流特征集优化成n维双向流特征集。

步骤300:基于优化的双向流特征集,采用监督学习的随机森林算法构建分类模型,通过分类模型输出网络流量数据的分类结果;

步骤300中,采用监督学习的随机森林算法建模,将已经优化的双向流特征集输入到分类模型进行分类训练,并通过分类模型性能评估,优化分类模型性能。用验证阶段的测试数据集来测试已经训练好的分类模型,测试结果显示,基于优化的双向流特征集构建的分类模型明显有很高的分类精度,可以在保证较高分类准确率的前提下,提高分类效率,从而提高整体性能。

请参阅图4,是本申请实施例的网络流量分类系统的结构图。本申请实施例的网络流量分类系统包括数据采集模块、数据预处理模块、特征提取模块、特征优化模块和模型构建模块。

数据采集模块:用于采集网络流量数据;其中,网络流量数据采集方式包括:选择网络流量中的应用类别,通过高性能网络监控软件连续性捕捉固定应用类流量,收集到每个应用类别对应的网络流量数据包和对应时间段的系统网络日志。

数据预处理模块:用于对网络流量数据进行打标签处理;其中,网络流量数据的打标签过程具体包括:分析网络流量数据包,找出每个应用的自然属性以及与其他应用之间交流的关键信息,例如ip地址、传输协议等;提取出系统网络日志中与每个应用相关联的ip端点和传输包数,并结合ip地址和传输协议进行关联融合,完成网络流量数据的打标签处理。

特征提取模块:用于从打标签处理后的网络流量数据中提取双向流特征集;具体地,双向流特征集提取方式包括:

a、根据已打标签的网络流量数据进行分析,分别统计出网络流量数据中每对{源ip地址,目的ip地址}基于不同端口号的{源ip地址->目的ip地址}和{目的ip地址->源ip地址}间的双向(正向和反向)网络流信息,此时每对{源ip地址,目的ip地址}都有两条相反方向的网络流信息存在;

b、找出每对{源ip地址->目的ip地址}间的正向网络流,从中提取出关于每条正向网络流中的所有正向网络流特征集f1;

c、找出每对{目的ip地址->源ip地址}间的反向网络流,从中提取出关于每条反向网络流中的所有反向网络流特征集f2;

d、组合每对{源ip地址,目的ip地址}间的正向和反向网络流特征集{f1,f2},形成m维特征的双向流特征集f,记作f={f1,f2}。

特征优化模块:用于利用最大方差解释机制对提取的双向流特征集进行优化;具体地,双向流特征集优化方式包括:

a、对网络流量数据进行标准归一化,将网络流量数据集归一化为均值为0、方差为1的数据集;归一化公式为:x*=(x-u)/δ,其中u为所有网络流量数据的均值,δ为所有网络流量数据的标准差;

b、在网络流量数据上,求出双向流特征集f上的每个特征的平均值;

c、用归一化的网络流量数据减去每个特征对应的平均值,得到每个特征的新结果,并对每个特征的新结果做方差归一化;

d、计算出双向流特征集f的协方差矩阵,并根据协方差矩阵中主对角线上的每个特征的方差值进行由小到大排序,得到双向流特征集f中关联度最高最紧密的n维特征;其中,主对角线上是两两特征之间的协方差,协方差大于0,表示两个特征之间呈正相关趋势;协方差小于0,表示两个特征之间呈负相关趋势;协方差等于0,表示两个特征之间独立;协方差绝对值越大,两个特征之间联系越紧密,反之越小。根据此5个条件,可以计算得到双向流特征集f中关联度最高最紧密的n维特征。本申请利用最大方差解释机制对网络流量数据中的双向网络流特征集进行关联度最紧密的特征进行优先组合,筛选出最能体现网络流量类别的特征集。

e、计算协方差矩阵的特征值和特征向量,并将特征值按大小进行排序,选出前n个优化后的双向流特征对应的特征向量;

f、将网络流量数据投影到选取的n个特征向量上:假设网络流量数据样例数为p,特征数为q,网络流量数据减去特征均值后的样本矩阵为datatransform(p*q),双向流特征集的协方差矩阵是p*q,选取的n个特征向量组成的矩阵为eigenvectors(q*n),那么投影后的网络流量数据为:optimizedata(p*n)=datatransform(p*q)xeigenvectors(q*n);

g、将网络流量数据的m维双向流特征集优化成n维双向流特征集。

模型构建模块:用于基于优化的双向流特征集,采用监督学习的随机森林算法构建分类模型,通过分类模型输出网络流量数据的分类结果;其中,采用监督学习的随机森林算法建模,将已经优化的双向流特征集输入到分类模型进行分类训练,并通过分类模型性能评估,优化分类模型性能。用验证阶段的测试数据集来测试已经训练好的分类模型,测试结果显示,基于优化的双向流特征集构建的分类模型明显有很高的分类精度,可以在保证较高分类准确率的前提下,提高分类效率,从而提高整体性能。

图5是本申请实施例提供的网络流量分类方法的硬件设备结构示意图。如图5所示,该设备包括一个或多个处理器以及存储器。以一个处理器为例,该设备还可以包括:输入系统和输出系统。

处理器、存储器、输入系统和输出系统可以通过总线或者其他方式连接,图5中以通过总线连接为例。

存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述方法实施例的处理方法。

存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理系统。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

输入系统可接收输入的数字或字符信息,以及产生信号输入。输出系统可包括显示屏等显示设备。

所述一个或者多个模块存储在所述存储器中,当被所述一个或者多个处理器执行时,执行上述任一方法实施例的以下操作:

步骤a:采集网络流量数据,并对所述网络流量数据进行打标签处理;

步骤b:根据所述打标签处理后的网络流量数据提取双向流特征集;

步骤c:基于所述双向流特征集构建分类模型,通过所述分类模型输出网络流量数据的分类结果。

上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例提供的方法。

本申请实施例提供了一种非暂态(非易失性)计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行以下操作:

步骤a:采集网络流量数据,并对所述网络流量数据进行打标签处理;

步骤b:根据所述打标签处理后的网络流量数据提取双向流特征集;

步骤c:基于所述双向流特征集构建分类模型,通过所述分类模型输出网络流量数据的分类结果。

本申请实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行以下操作:

步骤a:采集网络流量数据,并对所述网络流量数据进行打标签处理;

步骤b:根据所述打标签处理后的网络流量数据提取双向流特征集;

步骤c:基于所述双向流特征集构建分类模型,通过所述分类模型输出网络流量数据的分类结果。

本申请实施例的网络流量分类方法、系统及电子设备利用网络流量数据中的双向流特征对网络流量进行分类,能够对互联网中大量的新应用进行精准识别和分类;同时利用最大方差解释机制的方法对双向流特征进行优化关联,保障了双向流特征的高内聚,提高了分类准确率,能够有效的保障网络流量分类的高精度和高性能。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本申请中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本申请所示的这些实施例,而是要符合与本申请所公开的原理和新颖特点相一致的最宽的范围。

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