基于Spark的大规模网络流量分类研究
2016-04-22刘泽燊潘志松
刘泽燊+潘志松
摘 要: 机器学习算法处理流量分类问题已经成为网络安全领域一个研究热点。为了提高大规模网络流的分类效率,引入并行SVM算法来识别网络流量,提出了一种基于Spark平台的大规模网络流在线分类方案。该方案利用置信域牛顿法(TRON)并行优化线性SVM算法构建流量分类模型,然后融合最新的实时计算框架,实现对大规模网络流的在线识别。实验结果表明,利用并行SVM算法在损失较小精度的前提下可以加快网络流的模型训练和分类速度,符合大规模网络流在线分类的需要。
关键词: 流量分类; 网络安全; Spark; 并行SVM; 大规模数据
中图分类号:TP391 文献标志码:A 文章编号:1006-8228(2016)04-01-05
Study on large scale network traffic classification on Spark platform
Liu Zeshen, Pan Zhisong
(College of Command Information System, PLA University of Science and Technology, Nanjing, Jiangsu 210007, China)
Abstract: Internet traffic classification using machine learning has become a hot research topic in the field of network security. In order to improve the classification efficiency of large scale network flow, this paper introduces a parallel SVM algorithm to identify the network traffic, and proposes a real-time classification scheme for large scale network flow based on Spark. This method builds a classification model using parallel SVM algorithm, and then it is integrated with the latest flow processing framework for real-time classification of large-scale networks. Experimental results show that parallel SVM algorithm can greatly improve the training and classification speed of the network flow model, on the premise of little loss of precision.
Key words: traffic classification; network security; Spark; parallel SVM; large scale data
0 引言
随着互联网的快速发展,网络安全和网络拥塞等问题也日益严重。为了更好的识别异常流量及优化配置网络资源,必须准确分类网络流中各种应用类型。因此对大规模网络流量进行快速、准确的分类具有十分重要的意义。
近年来网络应用多元化的发展趋势给网络流分类带来一系列的挑战,动态端口以及随机端口技术的出现,使得最初分析端口号的分类手段已经不能准确的对P2P等新型应用进行分类[1],同时基于有效负载的方法很难处理加密流量[2]。针对上述网络流分类技术日益凸显的缺点,将流量分类问题转化为机器学习问题成为当前研究趋势。在聚类算法中,Erman等人[3]分析了K-Means、DBSCAN和AutoClass三种聚类算法的网络流分类性能,因为此类无监督算法无需使用训练样本的类标,所以能够识别新型网络应用,但是聚类完成后必须进行人工标记,同时整体分类精度偏低。对于分类算法,Moore等人[4]将朴素贝叶斯和改进的贝叶斯方法应用到网络流分类,能将准确率提高到95%,但是贝叶斯算法要求样本特征遵循高斯分布,然而实际的网络流数据很难满足,所以具有不稳定等缺点。徐鹏等人[5-6]针对贝叶斯分类过分依赖样本空间分布的问题,提出了利用训练数据信息熵的决策树分类方法和基于结构风险最小化的SVM分类方法,这两种方法都取得了较高的准确率和稳定性,但是决策树学习高维样本时具有很高的复杂度,而SVM算法训练大规模样本时存在时间长和内存占用大等问题。Yang等人[7]则将lasso特征选择算法应用到网络流异常检测,通过降低训练样本维度加快了模型训练以及流量识别速度。Groleat等人[8]则基于FPGA设计了一个用于在线检测的实时SVM分类器,通过硬件加速,极大的提高了检测的效率。通过上述研究,基于机器学习的网络流分类取得了一定的进展,然而对大规模流量分类缺乏实时响应,同时很少有人关注网络流在线识别。Spark[9]作为一种新的计算框架,通过扩展集群能够对大规模数据进行快速处理,同时具有自动处理失效节点和负载均衡的功能。
本文深入分析了单机SVM算法分类网络流的不足之处,以分布式计算为基础,给出了一种基于Spark平台的大规模网络流在线分类方案 。主要工作有:①应用置信域牛顿法快速优化分布式的SVM分类算法;②对比分析了大规模网络流在线分类方案跟单机SVM算法的性能。实验结果表明,该方案不但能够快速训练分类模型和识别流量数据,而且具有较高的准确率和稳定性。
1 Apache Spark技术