论文部分内容阅读
在现代网络中存在着大量不同的应用程序,这些应用程序产生不同类型的流量,它们对于QoS的要求是不一样的。和传统的流量分类方法相比,使用机器学习技术来进行流量分类由于不依赖于端口和负载检测而被广泛应用。在机器学习经典方法中,kNN算法是一个效率高、分类效果好的一种方法。尽管kNN算法不需要花费建模时间,但是其计算复杂度依赖于大量d维向量中寻找k个最近邻居,所以kNN算法需要花费大量的分类时间。在实施实时网络流量分类时,分类速度无法满足实际要求。 目前CPU的分类速度无法满足实时分类的要求。CUDA是由NVIDIA创立的并行计算平台和程序模型。CUDA通过图像处理单位在计算性能上有了突破性的提升。 本论文首先介绍了常见的流量分类算法、机器学习算法在流量分类中的使用方法、CUDA技术的应用要点,并详细阐述了实验数据集的获取和来源。在这个基础上,本文设计了基于CUDA的机器学习流分类算法,在GPU和CPU中都予以实现并比较。该算法在GPU实现时,对于kNN相似度计算和排序上均使用了GPU来加速以达到性能的大幅度提升。 实验结果证明GPU峰值计算速度相对于CPU有了187倍提升;同时,本论文在分类准确率上基本能达到80%以上,对某些有应用如FTP,WEB等达到了95%以上的准确率。在论文的最后,再对流分类的召回率和准确率进行分析,详细比较CPU和GPU的性能,并进一步讨论出现性能差异以及不同应用精确率不同的具体原因。实验结果证明了GPU在流量分类领域有潜在的应用价值。