一种网络流量分类方法与流程

文档序号:17605351发布日期:2019-05-07 20:40阅读:825来源:国知局
一种网络流量分类方法与流程

本申请属于网络流量管理技术领域,特别是涉及一种网络流量分类方法。



背景技术:

随着互联网技术的高速发展,网络环境随之也变得非常复杂和多样化,因此对网络的正常运行、网络服务、资源实时分配和流量管理有更高的要求,此时有效的监管网络活动的方法非常重要。诸如,对于企业管理者来说,做到对流量精确的分类和识别,可以对网络资源进行精准管理、资源有效再利用和提供个性化服务起到很好的作用。同时对于企业,能节省网络资源不必要的开支也是非常的重要。流量分类也是网络安全和流量工程的重要一环。如果能准确的把流量进行分类和识别,不仅对网络安全和网络管理服务效率有很大提升,也可以降低系统时间和内存开销。由于大量的网络应用涌现,使得网络环境变得复杂和多样。流量分类和应用识别在网络管理、资源分配、按需服务和安全系统等中发挥着重要作用,如服务质量和入侵检测系统等。如何能准确的对未知流量进行精准的分类,来提高系统资源利用率、网络资源再分配和给客户提供个性化服务是一大挑战。

现有的网络流量分类方法大都是基于传统的机器学习技术,分类性能大部分依赖于基于包特征或者基于流统计的设计。由于大量未知应用流量的产生,对网络资源和系统环境产生一定的影响,目前,随着未知流量的多变化和复杂化,已存在的分类方法在特征提取模块和分类算法模块却不能达到很好的分类效果;不能精确检测和识别出未知流量。



技术实现要素:

1.要解决的技术问题

基于现有的网络流量分类方法大都是基于传统的机器学习技术,分类性能大部分依赖于基于包特征或者基于流统计的设计。由于大量未知应用流量的产生,对网络资源和系统环境产生一定的影响,目前,随着未知流量的多变化和复杂化,已存在的分类方法在特征提取模块和分类算法模块却不能达到很好的分类效果;不能精确检测和识别出未知流量的问题,本申请提供了一种网络流量分类方法。

2.技术方案

为了达到上述的目的,本申请提供了一种网络流量分类方法,所述方法包括如下步骤:

步骤1、采集网络流量样本数据;

步骤2、对样本数据进行预处理,得到样本数据集;

步骤3、对所述样本数据集中的样本数据打标签,得到标签数据集;

步骤4、将所述标签数据集和未知标签数据集整合,得到混合训练数据集;

步骤5、对所述标签数据集的网络流进行分层协议特征提取,得到特征流数据集;

步骤6、采用聚类算法对所述混合训练数据集和所述特征流数据集进行训练建模和测试验证;

步骤7、输出分类结果。

可选地,所述步骤1包括如下步骤:

101、选择数据库;

102、监控所述数据库中的已知网络应用流量和未知网络应用流量;

103、捕捉所有应用流量信息,采集样本数据。

可选地,所述步骤1中样本数据包括已知网络数据包和网络日志,所述样本数据包括未知网络数据包和网络日志。

可选地,所述步骤2对样本数据进行预处理包括清洗样本数据流量,去除不规则的数据包。

可选地,所述步骤3对样本数据打标签包括找出已知网络应用流量的ip地址、端口号和传输协议;通过查找网络日志中与已知网络应用关联的ip地址和端口号,完成标签匹配,得到扩充流标签数据集。

可选地,所述步骤4将有标签的数据集和未知标签的数据集整合包括采用标签传播算法从未知网络包里抽取实例,通过提取已打标签数据集和未打标签数据集的目的ip、目的端口号和传输协议,进行同源匹配;得到混合训练数据集。

可选地,所述步骤5对标签数据集的网络流进行分层协议特征提取包括输入标签数据集,对每个标签数据进行分层协议特征提取,得到特征流数据集。

可选地,所述步骤6包括对所述混合训练数据集和所述特征流数据集进行聚类,然后不断迭代训练,测试训练好的分类模型。

可选地,所述步骤2中样本数据包括未知流量和已知流量。

可选地,所述步骤3对样本数据打标签包括对已知应用流量样本数据打标签。

3.有益效果

与现有技术相比,本申请提供的一种网络流量分类方法的有益效果在于:

本申请提供的网络流量分类方法,采用少量的标签数据集却能达到更好的分类效果,采用协议特征集和混合数据集训练建模,进行聚类训练,有很好的聚类效果;本申请涉及的方法可以准确地利用已知流和未知流之间的相似性和拥有有效的特征集,确保在网络流量分类过程中,能充分利用网络流间关联信息,经过训练,对未知流量进行精准的分类和识别。分类模型明显有很高的分类精度。用这种方法可以在大数据集下,可保证较高分类准确率,且有较好的伸缩性。

附图说明

图1是本申请的一种网络流量分类方法流程图。

具体实施方式

在下文中,将参考附图对本申请的具体实施例进行详细地描述,依照这些详细的描述,所属领域技术人员能够清楚地理解本申请,并能够实施本申请。在不违背本申请原理的情况下,各个不同的实施例中的特征可以进行组合以获得新的实施方式,或者替代某些实施例中的某些特征,获得其它优选的实施方式。

聚类分析算法很多,比较经典的有k-means和层次聚类法。

k-means的k就是最终聚集的簇数,这个需要事先自己指定。k-means在常见的机器学习算法中算是相当简单的,基本过程如下:

首先任取(你没看错,就是任取)k个样本点作为k个簇的初始中心;

对每一个样本点,计算它们与k个中心的距离,把它归入距离最小的中心所在的簇;

等到所有的样本点归类完毕,重新计算k个簇的中心;

重复以上过程直至样本点归入的簇不再变动。

参见图1,本申请提供一种网络流量分类方法,所述方法包括如下步骤:

步骤1、采集网络流量样本数据;

步骤2、对所述样本数据进行预处理,得到样本数据集;

步骤3、对所述样本数据集中的样本数据打标签,得到标签数据集;为聚类算法模型训练做输入准备;这里少量样本打标签却能达到更好的分类效果;与未标签的样本结合规则得到扩充流标签数据集;

步骤4、将有标签的数据集和未知标签的数据集整合,得到混合训练数据集;

步骤5、对标签数据集的网络流进行分层协议特征提取,得到特征流数据集;

步骤6、采用聚类算法对混合训练数据集和特征流数据集进行训练建模和测试验证;此阶段是用来测试分类模型鲁棒性;用聚类算法不断迭代训练,来达到更好的聚类精度;此验证阶段的测试数据集来测试已经训练好的分类模型。模型分类效率和鲁棒性明显提高;

步骤7、输出分类结果。

进一步地,101、选择一个大型网络数据中心,准备采集样本数据;利用相似的流样本数据来自同一个网络应用机制,可得到很好的数据标记效果,会提高标记精度。

102、采用高性能网络监控软件监控已知和未知网络应用流量;

103、采用wireshark软件采集网络数据,捕捉所有流量包信息,获得样本数据。

进一步地,所述样本数据包括已知网络数据包和网络日志,该样本数据也包括未知网络数据包和网络日志。

进一步地,步骤2包括清洗样本数据流量,去除不规则的数据包。

进一步地,步骤3包括找出已知网络应用流量的ip地址、端口号和传输协议;通过查找网络日志中与已知网络应用关联的ip地址和端口字段,完成标签匹配,得到标签数据集。

进一步地,所述步骤4包括采用标签传播算法(labelpropagationalgorithm,lpa)从未知网络包里抽取定量的实例,通过提取已打标签数据集和未打标签数据集的目的ip、目的端口号和传输协议,进行同源匹配;得到混合训练数据集。如果在一段时间内,客户端用一样的传输协议和固定的端口号给同样目的ip发送请求,那么此段流量可以认为是同一个应用产生的流量,这样就可以进行相似流量标签传播。在标签数据集缺少的情况下,可以通过标签传播算法进行标签数据集扩充,保证了标签数据集的对等性。可以把已标记的数据集和未知应用的流量数据进行融合成新的训练集,用其去训练模型,它可以让未知应用流量数据更好的与已知应用标记的数据相关匹配和内在关联。

进一步地,所述步骤5包括输入标签数据集,基于tcp/ip协议,对每个标签数据实例进行分层协议特征提取;基于客户端和服务端往返信息,应用层基于http/ftp/smtp/dns各协议,分协议各提取特征;传输层基于tcp/udp协议,分协议各提取特征;网络层基于ip协议提取特征,得到特征流数据集。提取标签数据集的各应用层、传输层、网络层中各协议特征,可以更加细粒度的与未知流量数据进行匹配,可达到很好的分类精度。

进一步地,所述步骤6包括如下步骤:

601、对混合训练数据集和特征流数据集采用优化的k-means聚类算法进行聚类;

602、采用交叉验证来迭代获取初设k值,初始k个簇,每个簇中心由每个属性加权获取的值组成;初设k值,不宜太小也不能过大,为了较好的得到分类效果,采用交叉验证来迭代获取最优k值;

603、根据特征流向量集中各类协议的每个属性,计算各实例间的加权距离;

604、按照每个实例到每个簇中心的最小距离依次递增排序,使得每个簇内实例间距离最小化,簇间距离最大化,最小误差平方和,并重新定义每个簇的中心;

605、重复603和604至使得簇的个数不再变化且满足所设的距离目标函数精度;

606、若簇中没有打标签的数据流,则此簇中的所有数据流都是未知的数据流;若簇中含有各类已知的标签数据流,可根据事件概率原理机制,分类计算概率估计;根据最大的类概率估计值,确定此类就是该簇的标签,此簇中未知的数据流就划分为该类。用协议特征集和混合数据集在k-means聚类算法上训练建模,进行聚类训练,有很好的聚类效果。将混合的训练数据集和从扩充的标签数据集中提取的协议特征流数据集,输入到k-means聚类算法中,可加强挖掘训练数据集中的未知应用和已知应用之间的关联关系,经过不断的训练聚类,可提高数据的聚合度,降低各簇间数据的影响,提高分类精度。

进一步地,所述步骤2中样本数据包括未知流量和已知流量。

进一步地,所述步骤3对样本数据打标签包括对已知应用流量样本数据打标签。

用这样的特征流数据集和混合训练集去训练聚类算法模型,结果表现出稳定的分类性能,它能够处理大量的数据,伸缩性较好;在训练模型过程中,可以不断迭代达到更高的聚类精度。相比现有技术,本申请涉及的方法能够有效的保障未知流量分类的高精度和高性能。

本申请提供的网络流量分类方法,采用少量的标签数据集却能达到更好的分类效果,采用协议特征集和混合数据集在k-means聚类算法上训练建模,进行聚类训练,有很好的聚类效果;本申请涉及的方法可以准确地利用已知流和未知流之间的相似性和拥有有效的特征集,确保在网络流量分类过程中,能充分利用网络流间关联信息,经过训练,对未知流量进行精准的分类和识别。分类模型明显有很高的分类精度。用这种方法可以在大数据集下,可保证较高分类准确率,且有较好的伸缩性。具有很好的未知流量分类效果。

尽管在上文中参考特定的实施例对本申请进行了描述,但是所属领域技术人员应当理解,在本申请公开的原理和范围内,可以针对本申请公开的配置和细节做出许多修改。本申请的保护范围由所附的权利要求来确定,并且权利要求意在涵盖权利要求中技术特征的等同物文字意义或范围所包含的全部修改。

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