本发明属于网络信息领域,涉及一种基于5g网络能力开放的自适应网络流量分类方法。
背景技术:
近年来,能力开放市场潜力大,客户需求旺盛,通信能力开放与集成已成为运营商未来增长的热点和5g网络发展的重点。5g阶段是网络使能到业务使能的转变,对于网络能力的调用程度更广更深,能力开放的种类和范围更多。但是5g能力开放目前标准层面和业务需求层面仍处于研究探索阶段,从调研反馈情况来看,5g能力开放的产品研发工作还未深入展开,因此,非常有必要对标准层面和演进策略方面开展相关的研究工作,需要通过对5g网络能力开放开展深入的发展策略研究,进而推动业务能力平台的平滑演进。
在当今复杂的网络环境下,为了实现对网络流量的有效监管和控制,对网络带宽资源进行合理分配并保证网络信息的安全可靠传输,网络流量分类技术的研究变得尤为重要。与此同时,与传统4g或3g的网络环境相比,在5g的网络中出现了大量的新型应用,这些应用所带来的未知协议流量使网络流量的构成变得更加复杂。据统计,在目前网络中属于新型应用的网络流量已占到未识别数据网络流的60%和未识别比特数的30%,因此,在进行网络流量分类时,若分类器不对这些新型未知协议网络流量进行处理,将严重影响到网络流量分类的整体准确率。大量出现的新型应用为传统的网络流量分类方法带来了一些技术难题,需要新的技术来改进原有的分类方案,适应如今复杂的网络环境。
近年来,目前网络流量分类方法主要有4种:基于端口的流量分类技术、基于深度包检测(deeppacketinspection,dpi)的流量分类技术、基于流统计特征的机器学习(machinelearning,ml)的流量分类方法和基于用户行为特征的流量分类技术。
基于端口的流量分类技术
在互联网发展的初期,网络中的流量种类和数目都相对较少,互联网数字分配机构iana组织为一些常见的网络协议分配了固定的端口号,因此在早期对网络流量进行分类时,可以通过识别数据包的源端口号和目的端口号来判断该流量的所属的应用协议类型。
基于深度包检测的流量分类技术
数据包的载荷部分含有大量信息,dpi就是利用这些信息进行分类。基于dpi流量分类技术是依据特定协议或应用的特征码来实现的,通过对网络流量中的载荷数据进行特征码匹配,来获取流量的分类。
基于dpi的分类技术虽然具有较高的准确率,但也存在一些缺点:消耗较多的计算资源,对数据加密分类能力较弱,各类应用特征码提取和更新比较困难,对载荷数据的分析会带来对用户隐私权的侵犯。
基于流统计特征的机器学习方法
近年来,随着人工智能技术的发展,越来越多的研究者开始利用机器学习算法来解决流量分类问题。利用机器学习解决流量分类问题,主要有两个部分:训练数据集和机器学习算法。训练数据集的生成首先需要利用dpi工具、系统进程监控或人工的方法标注训练样本,得到样本标签,然后从网络流量中提取数据流的特征,最后利用训练集和机器学习算法得到分类器,即可用训练好的分类器对网络流量进行分类。
基于用户行为特征的流量分类技术
随着流特征加密技术的涌现,给基于流统计特征进行流量分类带来了一定的局限性。近年来,研究人员开始利用主机不同的通信行为模式进行网络流量分类,并提出了利用用户连接模式、连接图、网络连接直径等主机行为特征,对网络流量进行分析,开辟了分析网络流量分类的新方法。基于行为特征的流量分类技术主要通过分析网络协议和应用的连接特性和行为模式上的固有特性,达到对不同流量进行分类的目的。这种方法通常建模时间较长,时空复杂度高,应用有一定的局限性。
技术实现要素:
本发明的目的在于克服上述现有技术的缺点,提供了一种基于5g网络能力开放的自适应网络流量分类方法,该方法建模时间短,时空复杂度低,且应用范围广。
为达到上述目的,本发明所述的基于5g网络能力开放的自适应网络流量分类方法包括以下步骤:
1)采用自适应的滑动窗动态对网络增量数据进行处理,通过原始滑动窗口数据与增量滑动窗口数据构建整体数据,再对整体数据的特征向量进行提取;
2)将步骤1)提取的各特征向量作为数据样本,其中,一分部数据样本已标记网络流,另一部分数据样本未标记网络流,通过已标记数据样本的已知类别信息计算初始聚类中心以优化k-means算法,得若干k-means中心点,利用各k-means中心点构建初始中心点集合m;
3)利用初始中心点集合m对网络流进行k-means聚类,得k个簇和k个簇中心点,然后利用k个簇及k个簇中心点根据评价函数得到聚簇结果;
4)统计聚簇已标记网络流的数目,当聚簇中已标记网络流的数目小于预设网络流阈值时,则该聚簇为未知协议簇;当聚簇中已知网络流的数目大于等于预设网络流阈值时,则根据最大后验概率公式计算各类别的已标记网络流的后验概率,将最大后验概率值对应的类别作为该网络流的类别,实现基于5g网络能力开放的自适应网络流量分类。
步骤1)的具体操作为:
采用自适应滑动窗口动态地对网络增量数据进行处理,将原始窗口数据与增量窗口数据分别用矩阵为x1=[x1,x2,…,xm]及x2=[xm+1,xm+2,…,xm+r],所有数据样本可表示为x=[x1,x2],设所有数据样本的互信息矩阵为s,原始窗口数据的互信息矩阵为s1,新增窗口数据的互信息矩阵为s2,则所有数据样本的互信息矩阵s为:
利用s1的特征分解将s1对角化为单位阵,即
然后将s2投影到由h1张成的空间,则有
将式(1)和式(2)相加,得:
求得
将式(5)带入式(4),得:
由式(1)和式(6),得所有数据样本的互信息矩阵s的特征分解,由式(2)可知:
其中,bi∈rn×k为原始数据的主成分决策矩阵,λ1∈rm×k为选取的前k个特征值组成的矩阵;
根据式(5)求出s2的特征值λ2=[μ1,μ2,…,μn]、特征向量p2=[β1,β2,…,βn]及其对应的特征向量,根据所述k个特征值和特征向量求得s的特征值为:
其中,m和r分别是历史数据和新增数据的样本数量;
s的特征向量:
p=h1βi(9)。
步骤2)的具体操作为:
将步骤1)得到的各特征向量作为数据样本,其中,一分部数据样本已标记网络流,另一部分数据样本未标记网络流;
通过己标记数据样本的已知类别信息计算初始聚类中心以优化k-means算法;并利用己标记网络流计算k-means中心点,其中,
其中,每个k-means中心点mi由属于类别ci的已标记网络流f确定,ni表示属于类别ci的己标记网络流f的数目,利用各k-means中心点mi构建初始中心点集合m。
步骤3)的具体操作为:
31)利用初始中心点集合m对混合的网络流确定k-means聚类,得k个簇和k个簇中心点;
32)根据所述k个簇和k个簇中心点计算评价函数,得评价函数的值,同时利用所述k个簇中心点重置集合m,得新的集合m;
33)计算网络流特征向量集x中离所述新的集合m中所有中心点的距离和最大的k个向量点;
34)根据密度计算公式,确定在所述距离和最大的k个向量点中密度最大的向量点,并将所述密度最大的向量点添加到所述新的集合m中;
35)更新k值为k+1,转至步骤31),直至k大于
36)统计每次迭代时步骤32)中评价函数的值,从所有评价函数的值中选取最小值,获取最小评价函数的值对应的k值,再将该k值对应的聚簇结果输出。
步骤4)的具体操作为:
对聚簇ci,统计簇中己标记网络流的总数目
聚簇中己标记网络流的最大后验概率为:
nij表示簇i中的已标记网络流中属于类型j的网络流数目,ni表示簇i中己标记流的总数量。
本发明具有以下有益效果:
本发明所述的基于5g网络能力开放的自适应网络流量分类方法在具体操作时,先采用自适应的滑动窗动态对网络增量数据进行处理,得到整体数据的特征向量,再计算得到若干k-means中心点,然后利用得到的k-means中心点对网络流进行k-means聚簇,并利用评价函数得到聚簇结果,最后根据聚簇已标记网络流的数目利用后验概率公式获取网络流的类别,操作方便、简单,准确性较高,建模时间短,时空复杂度低,且应用范围广。
附图说明
图1为本发明的流程图;
图2为本发明中特征提取的示意图。
具体实施方式
下面结合附图对本发明做进一步详细描述:
参考图1及图2,本发明所述的基于5g网络能力开放的自适应网络流量分类方法包括以下步骤:
1)采用自适应的滑动窗动态对网络增量数据进行处理,通过原始滑动窗口数据与增量滑动窗口数据构建整体数据,再对整体数据的特征向量进行提取;
2)将步骤1)提取的各特征向量作为数据样本,其中,一分部数据样本已标记网络流,另一部分数据样本未标记网络流,通过已标记数据样本的已知类别信息计算初始聚类中心以优化k-means算法,得若干k-means中心点,利用各k-means中心点构建初始中心点集合m;
3)利用初始中心点集合m对网络流进行k-means聚类,得k个簇和k个簇中心点,然后利用k个簇及k个簇中心点根据评价函数得到聚簇结果;
4)统计聚簇已标记网络流的数目,当聚簇中已标记网络流的数目小于预设网络流阈值时,则该聚簇为未知协议簇;当聚簇中已知网络流的数目大于等于预设网络流阈值时,则根据最大后验概率公式计算各类别的已标记网络流的后验概率,将最大后验概率值对应的类别作为该网络流的类别,实现基于5g网络能力开放的自适应网络流量分类。
步骤1)的具体操作为:
5g网络流中大部分数据并不是全局线性的,它们往往服从一定的形式的非线性分布规律,而传统的一些线性降维算法如主成分分析,fisher判别分析对于非线性数据的降维效果很差,本发明提出的算法在保持高效的同时,对数据进行降维,保留了原始数据的大部分信息。
此外,在未来实时的5g应用过程中,数据采集设备源源不断的从网络流中采集新的数据,传统的特征提取算法无法对增量数据进行快速处理,如果只是单纯地处理新增数据,不考虑历史数据对其影响,算法就无法从全局的角度进行特征提取,所提取的数据蕴含的信息也会大大降低。
针对此问题,本发明将历史数据和新增数据相结合,采用自适应滑动窗口动态地对网络增量数据进行处理,将原始窗口数据与增量窗口数据分别用矩阵为x1=[x1,x2,…,xm]及x2=[xm+1,xm+2,…,xm+r],所有数据样本可表示为x=[x1,x2],设所有数据样本的互信息矩阵为s,原始窗口数据的互信息矩阵为s1,新增窗口数据的互信息矩阵为s2,则所有数据样本的互信息矩阵s为:
利用s1的特征分解将s1对角化为单位阵,即
然后将s2投影到由h1张成的空间,则有
将式(1)和式(2)相加,得:
求得
将式(5)带入式(4),得:
由式(1)和式(6),得所有数据样本的互信息矩阵s的特征分解,由式(2)可知:
其中,bi∈rn×k为原始数据的主成分决策矩阵,λ1∈rm×k为选取的前k个特征值组成的矩阵;
根据式(5)求出s2的特征值λ2=[μ1,μ2,…,μn]、特征向量p2=[β1,β2,…,βn]及其对应的特征向量,根据所述k个特征值和特征向量求得s的特征值为:
其中,m和r分别是历史数据和新增数据的样本数量;
s的特征向量:
p=h1βi(9)。
组成主成分决策阵,将数据映射到主成分决策阵上,即实现了降维,后续的窗口重复此过程。
针对传统特征提取算法不适用于非线性数据,且无法满足工业大数据实时性等问题,本发明提出了一种基于互信息的实时特征提取算法,其算法伪代码如下:
输入:原始数据集
输出:降维后的数据集
1.将原始数据集按一定速率输入缓冲区buffer,当速率超过一定值时,动态增加缓冲区.
2.滑动窗口从编号最小的缓冲区中读取数据;
3.intid=1;/*缓冲区编号初始为1*/
4.while(buffer[id]!=null)do
5.readmatrixi;
6.if(matrixi.id==1)then
7.miandeigdesposition(matrixi);
8.unitedmatrix=unitedmatrix(matrixi);
9.outputmatrixi*eigvecmatrix
10.else
11.computemimatrix;
12.projectionmimatrixonunitedmatrix
13.promatrix=porjectmatrix(mimatrix);
14.miandeigdesposition(promatrix);
15.outputmimatrix*eigvecmatrix
16.endif
17.id=id+1;
18.endwhile
其中,matrix为窗口内的数据矩阵,用二维数组实现,unitedmatrix()函数用来求解单位化矩阵,而projectmatrix()函数用来求投影后的矩阵;
通过逐个扫描每个窗口,先判断当前窗口是否为第一个窗口,如果是,则求出当前窗口的互信息矩阵,然后进行特征分解,选出主成分决策矩阵,然后将原始矩阵映射到决策矩阵上,实现降维;否则,求出本窗口的互信息矩阵,然后将其投影在上个窗口的单位化矩阵上,然后根据式(3)和式(4)求出特征值及特征向量,并组成主成分决策阵,实现降维,整体流程图如图2所示。
步骤2)的具体操作为:
将步骤1)得到的各特征向量作为数据样本,其中,一分部数据样本已标记网络流,另一部分数据样本未标记网络流;
通过己标记数据样本的已知类别信息计算初始聚类中心以优化k-means算法,以降低k-means的收敛时间,并和下一阶段的迭代添加中心点的方法相结合,提高聚类的准确性。
由于聚类算法的目的是将属于同种类别的数据聚集在一起,不同种类别的数据划分到不同的聚簇中去,因此利用己标记网络流的类别,可以计算出一组初始中心点,先大致确定一些聚类范围。利用己标记网络流计算k-means中心点,其中,
其中,每个k-means中心点mi由属于类别ci的已标记网络流f确定,ni表示属于类别ci的己标记网络流f的数目,利用各k-means中心点mi构建初始中心点集合m。
步骤3)的具体操作为:
31)利用初始中心点集合m对混合的网络流确定k-means聚类,得k个簇和k个簇中心点;
32)根据所述k个簇和k个簇中心点计算评价函数,得评价函数的值,同时利用所述k个簇中心点重置集合m,得新的集合m;
33)计算网络流特征向量集x中离所述新的集合m中所有中心点的距离和最大的k个向量点;
34)根据密度计算公式,确定在所述距离和最大的k个向量点中密度最大的向量点,并将所述密度最大的向量点添加到所述新的集合m中;
35)更新k值为k+1,转至步骤31),直至k大于
36)统计每次迭代时步骤32)中评价函数的值,从所有评价函数的值中选取最小值,获取最小评价函数的值对应的k值,再将该k值对应的聚簇结果输出。
其中,改进的k-means算法中的距离度量为加权欧式距离,即
其中,改进的k-means算法迭代过程中k值是由kmin=p变化到
其中,评价函数的值越小,说明每个簇中各样本点的距离越近,即聚类的效果越好。
本发明考虑从距当前的中心点距离最远的k个中心点中选择密度最大的一个进行添加,因为距离最远的点可以有效地避免散发陷入局部最优,而密度最大则可以保证该点的代表性,密度的计算公式为:
其中,d(xi,xj)表示向量点xi和向量点xj之间的加权欧式距离,
在多次迭代,添加具有代表性的中心点后,可以利用评价函数自动确定迭代过程中得到的最佳聚类结果以及其所对应的k值,不仅实现了参数的自适应,同时保证了输出聚类结果的高准确性。
步骤4)的具体操作为:
对聚簇ci,统计簇中己标记网络流的总数目
其中,聚簇中己标记网络流的最大后验概率为:
nij表示簇i中的已标记网络流中属于类型j的网络流数目,ni表示簇i中己标记流的总数量。
网络流阈值γi为:
γi为混合输入的网络流中已标记网络流所占的比例,即若某个簇中所有类型的己标记网络流总数目相加,仍然小于该簇中所有网络流的数目乘以γi的1/2时,该簇将暂时判定为未知协议簇。考虑到已标记数据是随机选取的,对于属于非未知协议类别的网络流来说,他们所在的聚类簇中应该存在数目大于
通过改进的聚簇类别映射方法,可以使得在传统的半监督流量分类方法中会被错误划分到某己知协议类别中的未知协议类别簇也被识别和提取出来,利用这样的聚簇结果训练出的线上分类器,可以大大提高线上分类器的准确率,同时实现线上未知协议的提取。