论文摘要
网络流量分类有助于网络服务提供商优化网络带宽、提高网络服务质量、对特定的应用进行计费,以及监测恶意流量,确保网络安全等。目前流量分类技术主要面临两个挑战:一是,越来越多的网络应用使用随机端口和负载加密技术躲避流量监测,这给流量分类算法的准确率提出了新的挑战。二是,网络出口吞吐量的飞速增长给流量分类算法的实时性提出了更高的要求。本文采用机器学习技术以解决流量分类领域面临的主要问题,从优化特征选择和改进分类算法两个角度来提高流量分类的准确性、稳定性和实时性。全文首先系统地介绍了网络流量分类的主要技术及其特点,总结了流量分类面临的主要困难和研究现状。然后本文以解决类别不平衡问题、流量统计特征的偏置问题以及负载特征自动提取问题为行文脉络,以提高流量分类的准确性、稳定性及实时性为研究目标,针对性地提出了若干改进网络流量分类的算法,具体分为以下几个方面。(1)协议分布的不平衡性使机器学习流量分类算法识别小类别(small class)的检全率低;大类别(large class)产生的数据流的动态变化又会使分类算法的总体准确率不稳定且随着时间的推移逐渐下降。为此,本文提出了改进的Bagging算法。首先,通过单因子实验设计,本文确定了TCP双向数据流的观察窗口大小,从观察窗口中提取流量统计特征,为机器学习算法在线分类流量提供了理论依据。接着,比较分析三种分类算法:C4.5决策树、支持向量机(SVM,Support Vector Machine)和朴素贝叶斯核估计(NBK,Na?ve Bayes Kernel)。最后,本文将改进的Bagging算法应用于流量分类。实验结果表明,与C4.5决策树、SVM和NBK三种分类算法相比,改进的Bagging算法能够稳定且准确地分类流量,识别小类别的检全率较高,而且测试时间与训练时间较短,因此更适合于在线分类流量。(2)在协议分布不平衡时,机器学习流量分类算法易于将数据流误分类成大类别,这使得大类别的误报率较高且小类别的检全率较低。在高维的特征空间中,这种类别不平衡问题更为严重。为选择准确且健壮的流量统计特征,本文提出了加权对称不确定性度量(WSU,Weighted Symmetrical Uncertainty),并基于WSU度量设计了WSU_AUC特征选择算法。WSU特征度量利用了训练数据集中类别分布信息,通过加权方式来衡量每个特征对分类的贡献。WSU_AUC算法分两步选择特征。首先该算法用WSU度量过滤掉大多数特征,再使用ROC曲线下面积度量(AUC,Area Under the ROC Curve)为特定的分类器选择特征。为进一步选择稳定的特征,本文又提出了SRSF(Select the Robust and Stable Features)算法。在WSU_AUC算法从不同的训练数据集中选择特征后,SRSF算法再从特征度量的均值和方差来衡量被选特征的健壮性。最后,本文在三个时空环境完全不同的公开数据集上进行实验,验证了算法的有效性,且详细地分析了健壮且准确的TCP流统计特征。(3)机器学习流量分类算法在分类多种应用流量时,一些流量统计特征可以提高部分应用识别的检全率但却降低了其他应用识别的检全率,本文将这种分类现象称为流量统计特征的偏置问题。为此,本文提出了基于集成聚类的流量分类架构(TCFEC,Traffic Classification Framework based on Ensemble Clustering)。TCFEC由多个基分类器和一个决策器构成。每个基分类器由K均值聚类算法在不同的特征子空间聚类而成。K均值聚类算法在选择不同的簇数目时,分类结果会有所不同。本文提出了基于归一化互信息量的算法以确定最优的簇数目。在各个基分类器的分类结果不一致时,决策器应用两种决策方法:基于支持向量机的方法和基于Hash的方法,以最小的错误率从基分类器的分类结果中进一步做出判定。在公开的实验数据集上,本文验证了TCFEC能够准确且稳定地分类流量。(4)目前,轻量级深度数据包检测技术(LWDPI,Light Weight Deep Packet Inspection)由于分类的时间开销和空间开销较小而被广泛应用于实际工程中。然而,已存在的负载特征自动提取算法不适用于LWDPI,因为分类系统需要搜索整个应用层数据才能够匹配那些算法生成的特征。为此,本文提出了两个层次聚类算法:HC_TCP(Hierarchical Clustering algorithm for TCP packets)和HC_UDP(Hierarchical Clustering algorithm for UDP packets)。这两个算法分别从TCP和UDP数据包负载中将应用的字节特征及特征在负载中的位置信息一并提取出来。含有位置信息的应用特征可以加快LWDPI系统的分类速度。此外,若字节特征不能被提取出来,本文又提出BSG(Bit Signature Generation)算法以提取位特征,并首次结合字节特征与位特征进行流量分类。实验结果表明,相比于LASER算法和ST算法,本文提出的算法获得了较高的分类准确率且较快的分类速度。进一步而言,只要应用协议头存在,将准确的应用负载特征及特征在负载中的位置信息一并提取出来是可能的。