网络流应用类型识别的方法、装置及计算机可读存储介质与流程

文档序号:15683384发布日期:2018-10-16 20:48阅读:144来源:国知局
本发明涉及计算机
技术领域
,尤其涉及一种网络流应用类型识别的方法、网络流应用类型识别的装置及计算机可读存储介质。
背景技术
:网络流识别技术是当前网络流管理、服务质量与安全防护的关键技术。它能够通过识别网络中数据流的应用类型,依据管理策略对流量进行过滤,也可以根据网络流的行为表现,探测网络流中具有攻击性的流量,对网络进行有效地防护。最早期的网络流识别方法是一种基于端口的识别方法,也就是说依据网络流的端口号,对其应用类型进行判断,譬如,http流量的端口为80,ssl端口流量的端口为443等。但是目前大多数网络应用已采用动态端口(譬如p2p网络流),此方法已很难准确地对网络流量进行识别。此后所出现的dpi(deeppacketsinspection,深度包检测)也一度在工业界被广泛地使用。它通过探测网络流中部分数据包的有效载荷内容,进而识别其应用类型。这种方式不仅对于人力和时间成本要求高,而且由于加密网络流所传输的有效载荷内容是非透明的,很难进行识别。上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。技术实现要素:本发明的主要目的在于提供一种网络流应用类型识别的方法、网络流应用类型识别的装置和计算机可读存储介质,旨在解决现有技术中无法有效识别加密网络流的应用类型的技术问题。为实现上述目的,本发明提供一种网络流应用类型识别的方法,所述网络流应用类型识别方法包括如下步骤:实时接收网络数据包,根据所述网络数据包的特征提取待识别的网络数据流,并提取所述待识别的网络数据流的特征;根据所述待识别的网络数据流的特征和预设的应用分类模型识别所述待识别的网络数据流的应用类型,所述应用分类模型根据接收到的网络数据流的特征训练得到;其中,所述网络数据流的特征包括数据包长度特征、数据包时间特征和数据包服务类型特征。优选地,所述网络数据流的特征包括:所述数据包长度特征包括所述网络数据流的最大数据包长度、最小数据包长度、平均数据包长度和数据包长度方差;所述数据包时间特征包括所述网络数据流的数据包到达最大间隔时间、数据包到达最小间隔时间、数据包到达平均间隔时间、数据包到达间隔时间方差和数据流平均持续时间、数据包传输中断时间和数据包传输空闲时间;所述数据包服务类型特征包括数据包服务类型标识比特数、携带服务类型标识的数据包数量和各个所述服务类型标识的数据包数量。优选地,所述实时接收网络数据包,根据所述网络数据包的特征从所述网络数据包中提取出待识别的网络数据流,并提取所述待识别的网络数据流的特征的步骤之前还包括:获取已识别的网络数据流,并提取所述已识别的网络数据流的特征;根据所述已识别的网络数据流的特征训练应用分类模型,并将训练完毕的所述应用分类模型作为预设应用分类模型。优选地,所述根据所述已识别的网络数据流的特征训练应用分类模型的步骤包括:当有预设数目个已识别的网络数据流时,对应训练的所述应用分类模型包含有所述预设数目个分类函数。优选地,所述根据所述已识别的网络数据流的特征训练应用分类模型的步骤包括:将所述已识别的网络数据流的特征转换成特征向量;根据所述特征向量训练应用分类模型。优选地,所述根据所述特征向量训练应用分类模型的步骤包括:用核函数升高所述特征向量的维度;根据维度升高后的所述特征向量训练应用分类模型。优选地,所述根据所述已识别的网络数据流的特征训练应用分类模型的步骤之后还包括:接收测试网络数据流;根据所述应用分类模型识别所述测试网络数据流的应用类型,并获取所述应用分类模型的识别正确率;根据所述识别正确率调整所述应用分类模型的参数。优选地,所述实时接收网络数据包步骤之后包括:获取实时接收的所述网络数据包的数目,并判断所述网络数据包数目是否大于预设数目;当所述网络数据包数目大于预设数目时,执行根据所述网络数据包的特征从所述网络数据包中提取出待识别的网络数据流,并提取所述待识别的网络数据流的特征的步骤。此外,为实现上述目的,本发明还提供所述网络流应用类型识别的装置,该装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的网络流应用类型识别处理程序,所述网络流应用类型识别处理程序被所述处理器执行时实现如上所述的网络流应用类型识别方法的步骤。此外,为实现上述目的,本发明还提出一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有网络流应用类型识别处理程序,所述网络流应用类型识别处理程序被处理器执行时实现如上所述的网络流应用类型识别方法的步骤。本发明实施例提出的一种网络流应用类型识别的方法、装置和可读计算机存储介质,实时接收网络数据包,根据所述网络数据包的特征提取待识别的网络数据流,并提取所述待识别的网络数据流的特征;根据所述待识别的网络数据流的特征和预设的应用分类模型识别所述待识别的网络数据流的应用类型,所述应用分类模型根据接收到的网络数据流的特征训练得到;其中,所述网络数据流的特征包括数据包长度特征、数据包时间特征和数据包服务类型特征。本发明通过对网络数据流的行为特征的统计和分析,实现了无需探测网络数据包的内容而识别出网络流应用类型,尤其适用于加密网络数据流的识别。附图说明图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图;图2为本发明网络流应用类型识别方法第一实施例的流程示意图;图3为本发明网络流应用类型识别方法第二实施例的流程示意图;图4为本发明网络流应用类型识别方法第三实施例的流程示意图;图5为本发明网络流应用类型识别方法第四实施例的流程示意图。本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。本发明实施例的主要解决方案是:实时接收网络数据包,根据所述网络数据包的特征提取待识别的网络数据流,并提取所述待识别的网络数据流的特征;根据所述待识别的网络数据流的特征和预设的应用分类模型识别所述待识别的网络数据流的应用类型,所述应用分类模型根据接收到的网络数据流的特征训练得到;其中,所述网络数据流的特征包括数据包长度特征、数据包时间特征和数据包服务类型特征。由于现有技术中是通过探测网络流中部分数据包的有效载荷内容来识别其应用类型,这种方式不仅对于人力和时间成本要求高,而且由于加密网络流所传输的有效载荷内容是非透明的,很难进行识别。本发明提供一种解决方案,通过对网络数据流的行为特征的统计和分析,实现了无需探测网络数据包的内容而识别出网络流应用类型,尤其适用于加密网络数据流的识别。如图1所示,图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图。本发明实施例终端为网络流应用类型识别装置。如图1所示,该装置可以包括:处理器1001,例如cpu,通信总线1002,存储器1003。其中,通信总线1002用于实现这些组件之间的连接通信。存储器1003可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1003可选的还可以是独立于前述处理器1001的存储装置。本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。如图1所示,作为一种计算机存储介质的存储器1003中可以包括操作系统和网络流应用类型识别处理程序。在图1所示的装置中,处理器1001可以用于调用存储器1003中存储的网络流应用类型识别处理程序,并执行以下操作:实时接收网络数据包,根据所述网络数据包的特征提取待识别的网络数据流,并提取所述待识别的网络数据流的特征;根据所述待识别的网络数据流的特征和预设的应用分类模型识别所述待识别的网络数据流的应用类型,所述应用分类模型根据接收到的网络数据流的特征训练得到;其中,所述网络数据流的特征包括数据包长度特征、数据包时间特征和数据包服务类型特征。进一步地,处理器1001可以调用存储器1003中存储的网络流应用类型识别处理程序,还执行以下操作:所述数据包长度特征包括所述网络数据流的最大数据包长度、最小数据包长度、平均数据包长度和数据包长度方差;所述数据包时间特征包括所述网络数据流的数据包到达最大间隔时间、数据包到达最小间隔时间、数据包到达平均间隔时间、数据包到达间隔时间方差和数据流平均持续时间、数据包传输中断时间和数据包传输空闲时间;所述数据包服务类型特征包括数据包服务类型标识比特数、携带服务类型标识的数据包数量和各个所述服务类型标识的数据包数量。进一步地,处理器1001可以调用存储器1003中存储的网络流应用类型识别处理程序,还执行以下操作:获取已识别的网络数据流,并提取所述已识别的网络数据流的特征;根据所述已识别的网络数据流的特征训练应用分类模型,并将训练完毕的所述应用分类模型作为预设应用分类模型。进一步地,处理器1001可以调用存储器1003中存储的网络流应用类型识别处理程序,还执行以下操作:当有预设数目个已识别的网络数据流时,对应训练的所述应用分类模型包含有所述预设数目个分类函数。进一步地,处理器1001可以调用存储器1003中存储的网络流应用类型识别处理程序,还执行以下操作:将所述已识别的网络数据流的特征转换成特征向量;根据所述特征向量训练应用分类模型。进一步地,处理器1001可以调用存储器1003中存储的网络流应用类型识别处理程序,还执行以下操作:用核函数升高所述特征向量的维度;根据维度升高后的所述特征向量训练应用分类模型。进一步地,处理器1001可以调用存储器1003中存储的网络流应用类型识别处理程序,还执行以下操作:接收测试网络数据流;根据所述应用分类模型识别所述测试网络数据流的应用类型,并获取所述应用分类模型的识别正确率;根据所述识别正确率调整所述应用分类模型的参数。进一步地,处理器1001可以调用存储器1003中存储的网络流应用类型识别处理程序,还执行以下操作:获取实时接收的所述网络数据包的数目,并判断所述网络数据包数目是否大于预设数目;当所述网络数据包数目大于预设数目时,执行根据所述网络数据包的特征从所述网络数据包中提取出待识别的网络数据流,并提取所述待识别的网络数据流的特征的步骤。参照图2,本发明第一实施例提供一种网络流应用类型识别的方法,所述方法包括:步骤s10,实时接收网络数据包,根据所述网络数据包的特征提取待识别的网络数据流,并提取所述待识别的网络数据流的特征。在接收到多个独立的网络数据包时,需要根据网络数据包的特征确定不同的网络会话,即将这些网络数据包区分并归属于不同的网络会话,这里的每一个网络会话等同于每一个待识别的网络数据流。具体地,从每个网络数据包的头部信息中识别出五元组信息,即源ip地址,目的ip地址,源端口号,目的端口号与协议类型。拥有同样的五元组信息的网络数据包属于同一种网络会话,即待识别的网络数据流。需要说明的是,同一个网络会话往往拥有双向传输的数据包,即包括发送端到接收端、接收端到发送端的双向数据包,此时属于发送端到接收端的数据包的源ip地址和源端口号分别为属于接收端到发送端的数据包的目的ip地址和目的端口号,将它们认为也认为是拥有同样的五元组信息的数据包,属于同一个网络数据流。步骤s20,根据所述待识别的网络数据流的特征和预设的应用分类模型识别所述待识别的网络数据流的应用类型,所述应用分类模型根据接收到的网络数据流的特征训练得到。将网络数据包区分并归属于不同的待识别的网络数据流之后,提取各个网络数据流的特征,将各个网络数据流的特征输入预设的应用分类模型中,模型运行的输出结果即为对应的各个网络数据流的应用类型。网络数据流的特征包括数据包长度特征、数据包时间特征和数据包服务类型特征。具体地,数据包长度特征包括网络数据流的最大数据包长度、最小数据包长度、平均数据包长度和数据包长度方差;数据包时间特征包括网络数据流的数据包到达最大间隔时间、数据包到达最小间隔时间、数据包到达平均间隔时间、数据包到达间隔时间方差和数据流平均持续时间、数据包传输中断时间和数据包传输空闲时间;数据包服务类型特征包括数据包服务类型标识比特数、携带服务类型标识的数据包数量和各个服务类型标识的数据包数量。其中传输中断时间是指在有连续超过预设数目个数据包从同一个传输方向传送,而未收到来自于另一个传输方向的数据包的时间,该预设数目可优选设置为3;空闲时间是指在任何一个传输方向均未有数据包传输且持续时间超过预设时间,该预设时间可优选设置为两秒。此外,网络数据流的特征还包括源端口号和目的端口号。以下通过举例具体说明网络流应用类型方法的实现方式。网络识别设备可以实时截获到在网络中传输的网络数据包,并解析网络数据包的头部信息。网络识别设备首先需要从接收的众多网络数据包中提取出多条相互独立的待识别的网络数据流,同时优选地,一条新的网络数据流的识别从获取一条网络数据流的第一个传输的数据包开始。由于属于同一条网络数据流的网络数据包是顺序传输的,可以从网络数据包的头部信息中携带的时间戳或者序号识别出所属的网络数据流的第一个网络数据包。网络识别设备建立网络数据流信息列表,每当从识别的网络数据流的第一个传输网络数据包的头部信息中获取到新的五元组信息时,在该列表中对应新增一条待识别网络数据流信息记录。在后续不断接收网络中传输的新的数据包的过程中,当根据网络数据包的五元组信息判断出该网络数据包属于列表中已有的待识别的网络数据流时,提取该网络数据包信息并将其记录到所属网络数据流的信息记录中,数据包信息包括传输方向、传输序号、数据包长度、数据包到达时间和数据包服务类型标识信息。当采集的待识别的网络数据流的数据包信息满足预设条件时,根据所采集的上述数据包信息计算该网络数据流的特征。例如从多个数据包长度中筛选出最大数据包长度和最小数据包长度,并计算出平均数据包长度和数据包长度方差;例如根据每个数据包到达时间计算出两两相邻的数据包的到达时间间隔,根据该时间间隔筛选出最大时间间隔和最小时间间隔,并计算出平均时间间隔和时间间隔方差;例如根据数据包的传输方向和数据包的到达时间判断是否有传输中断情况或传输空闲时间,若有则计算传输中断时间或传输空闲时间。其中预设条件可以设置为预设时间,以接收到第一个传输的网络数据包的时间为起始;或者设置为预设数目个网络数据包信息;或者设置为判断出该网络数据流结束。在本实施例中,通过对网络数据流的行为特征的统计和分析,实现了无需探测网络数据包的内容而识别出网络流应用类型,尤其适用于加密网络数据流的识别。进一步的,参照图3,本发明第二实施例基于第一实施例提供一种网络流应用类型识别的方法,本实施例在步骤s10之前还包括:步骤s30,获取已识别的网络数据流,并提取所述已识别的网络数据流的特征。有多种获取已识别的网络数据流的方法:一种是单独构建网络,并启动已知应用的发送端与接收端,获取传输中的网络数据包;或者在现有网络中放置已知应用的发送端与接收端,通过设定特定的标识从网络中传输的众多数据包中识别出该已知应用相关的网络数据包;或者直接获取已知应用公开的网络数据包信息。将已识别的网络数据流的特征转换成特征向量,以根据特征向量训练应用分类模型。具体地,例如假设每一个数据流对应一个特征集,并且特征集中包括12个特征,每一个特征值必须是数值,以“索引值:特征值”的格式,并按照索引值从小到大的顺序排列,如下面的表1所示。表10:01:02:03:04:05:1816:547:08:09:010:011:0步骤s40,根据所述已识别的网络数据流的特征训练应用分类模型,并将训练完毕的所述应用分类模型作为预设应用分类模型。在本实施例中采用svm(支持向量机方法)来训练网络流识别模型。训练网络流识别模型的过程中,先确定目标函数,该目标函数为包含待估计的参数的分类函数;接着将用于训练的已识别的网络流特征向量输入到该分类函数中得到对该网络流应用类型识别的预测值;再构建分类函数对应的损失函数,由于损失函数是用来评价分类函数的预测值与真实值的不一致程度,该损失函数的输入为预设值和已知网络流应用类型识别值;最后通过最小化该损失函数来得到最优的待估计的参数,从而得到对应的分类函数。由于svm为二值分类方法,训练时依次把属于某个类别的网络流特征向量归为一类,剩下的其它类别的网络流特征向量统一归为另一类,将这两类网络流特征向量输入到待训练的分类函数中,得到对应的输出结果为二值结果,即可以区分待识别的网络流是否属于这个类别。当有预设数目个已识别的网络数据流时,对应训练的应用分类模型包含有预设数目个分类函数,即对每一个已识别的网络流应用类型,一一训练出对应的分类函数,每个分类函数将一个类与其它类区分开来。在将训练好的应用分类模型用于识别网络流应用类型时,将每一个待识别的网络数据流特征作为一类特征输入,剩下的其他待识别的网络数据流特征统一作为另一类特征输入,分别输入到预设数目个分类函数得到预设数目个分类值,分类值最大对应的分类函数给出的应用类型为最终识别的应用类型。运用svm方法获取分类函数是基于待分类的对象为线性可分的假设,在待分类的对象为线性不可分时,在本实施例中所涉及的网络数据流应用类型识别中,往往需要先用核函数升高网络数据流特征向量的维度,再根据维度升高后的网络数据流特征向量训练应用分类模型。可用的核函数包括线性核函数、多项式核函数和高斯核函数等。在本实施例中,通过已识别的网络数据流的特征训练应用分类模型,为实际网络中的网络流应用类型的识别提供了分类模型,以达到高效准确的识别效果。进一步的,参照图4,本发明第三实施例基于第二实施例提供一种网络流应用类型识别的方法,本实施例在步骤s40之后还包括:步骤s50,接收测试网络数据流。测试网络数据流的应用类型为已知,但其所包含的数据包样本必须不同于用于训练网络应用分类模型的已识别的网络数据流所包含的数据包样本。步骤s60,根据所述应用分类模型识别所述测试网络数据流的应用类型,并获取所述应用分类模型的识别正确率。提取测试网络数据流的特征,包括数据包长度特征、数据包时间特征和数据包服务类型特征,将这些特征输入到训练好的应用分类模型中,得到对应输出的识别的网络应用类型。根据识别的网络应用类型和已知的网络应用类型计算该应用分类模型的识别正确率,即通过识别正确的次数和识别总次数的比值计算出识别正确率。步骤s70,根据所述识别正确率调整所述应用分类模型的参数。将得到的识别正确率与预设识别正确率阈值进行比较,当识别正确率低于预设识别正确率阈值时,调整应用分类模型的参数。可调整的参数包括每个分类函数中的待估计的参数、损失函数中的参数或核函数的种类和参数。在本实施例中,通过用测试数据对训练好的应用分类模型的分类准确率的测试,在测试出的分类准确率不通过时对应用分类模型进行修正,保证了应用分类模型的准确性。进一步的,参照图5,本发明第四实施例基于第一或第二或第三实施例提供一种网络流应用类型识别的方法,本实施例在步骤s10的实时接收网络数据包步骤之后还包括:步骤s80,获取实时接收的所述网络数据包的数目,并判断所述网络数据包数目是否大于预设数目。步骤s90,当所述网络数据包数目大于预设数目时,执行根据所述网络数据包的特征从所述网络数据包中提取出待识别的网络数据流,并提取所述待识别的网络数据流的特征的步骤。由于本发明的识别方法无需探测网络数据包的内容,而是从网络数据包传输行为进行特征的提取、统计和分析,并且所需要提取的网络数据流的特征在开始传输后的若干个数据包内就可以得到体现,所以统计的范围可以仅限于网络流开始传输后的若干个数据包,可以对应设置一个待识别数据包的预设数目。如果所获取的网络流开始传输后的数据包总数小于预设数目,则按照真实的数据包进行统计与特征提取,如果数据包总数大于预设数目,则可用在接收到的数据包的数目达到预设数目时就开始提取特征。统计的数据包传输方向包括发送端到接收端与接收端到发送端的双向数据包。待识别数据包的预设数目的设定可用根据训练应用分类模型所选取的数目而定。在训练模型的时候,可以为不同的数据流设定不同的预设数据包抓取数目,以提高所提取的每种数据流的特征的准确性。在应用训练模型识别网络数据流的应用类型时,待识别数据包的预设数目可用为预设数据包抓取数目中的最大值、平均值或中间值。在本实施例中,通过判断接收的网络数据包数目是否大于预设数目,当大于预设数目时提取网络数据包的特征以进行网络流应用类型识别,提高了实时识别网络数据流应用类型的识别效率。本发明还提供一种网络应用类型识别装置,该装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的网络应用类型识别处理程序,所述网络应用类型识别处理程序被所述处理器执行时实现所述的网络应用类型识别方法的步骤。此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有网络应用类型识别处理程序,所述网络应用类型识别处理程序被处理器执行时实现所述的网络应用类型识别方法的步骤。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的
技术领域
,均同理包括在本发明的专利保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1