精华内容
下载资源
问答
  • 机器学习在网络流量分类中的应用

    千次阅读 2020-06-20 11:24:06
    流量分类 1. IP流定义 2. 有效载荷检测 3. 基于统计的技术 4. 行为技术 5. 机器学习技术 III. 方法 IV.数据收集 A. 网络环境 B. 数据测量 C. 标注任务 D. 讨论 V. 特征提取 A. 基于统计的特征 B. 基于图形...

    写在前面:
    本文翻译供个人研究学习之用,不保证严谨与准确
    github链接:https://github.com/WithHades/network_traffic_classification_paper
    本文原文:Pacheco, F., Exposito, E., Gineste, M., Baudoin, C., & Aguilar, J. (2019). Towards the Deployment of Machine Learning Solutions in Network Traffic Classification: A Systematic Survey. IEEE Communications Surveys and Tutorials, 21(2), 1988–2014. https://doi.org/10.1109/COMST.2018.2883147

    机器学习在网络流量分类中的应用

    摘要
      流量检测是一种发现网络流量中的关系、模式、异常和错误配置等的综合技术。尤其需要注意,流量分类是该领域中旨在识别应用程序名称或Internet流量类型的一个子领域。近年来,流量加密和封装等新技术的兴起降低了传统流量分类策略的性能,使得流量分类成为一项具有挑战性的任务。机器学习作为这一领域的一个新的研究方向,有成功的迹象,例如从加密流量中提取知识,以及更精确的服务质量管理。ML正迅速成为在真实的网络流量场景中构建流量分类解决方案的关键工具;从这个意义上说,本研究的目的是探索该技术在流量分类领域的要素。因此,本文在介绍利用ML技术实现流量分类的步骤的基础上,对其进行了系统的综述。主要目的是了解和确定现有工作为实现其目标所遵循的程序。因此,本文从对该领域进行的分析中发现了一些趋势;通过这种方式,作者希望概述基于ML的流量分类的未来方向。

      关键词: 互联网流量流量分类机器学习流量监控

    I. 介绍

      流量分析是一个从截取流量数据开始,到发现网络中的关系、模式、异常和错误配置等的完整过程。其中,流量分类是该领域中的一个子领域,其目的在于将互联网流量分类为预定义的类别,例如正常或异常流量、应用程序类型(流媒体、网络浏览、VoIP等)或应用程序名称(YouTube、Netflix、Facebook等)。流量检测之所以重要,主要有以下几方面的原因:

    • 故障排除任务:主要目标是定位故障网络设备、设备/软件配置错误、定位数据包丢失点、网络错误等。
    • 安全性:避免恶意软件或防止对私人信息的入侵。
    • 服务质量(QoS)管理,保证最终用户对应用程序或服务的总体可接受性。在这个领域,识别或分类网络中的应用程序的名称或类型有助于处理一些预先定义的情况。例如,从流量中识别不同的应用程序对于管理带宽资源和确保QoS要求至关重要。

      在过去,流量分类依赖于基于端口的方法,其中每个应用程序由其注册的已知端口进行标识,该端口由互联网分配号码管理局(IANA)[1]定义。由于未注册或随机生成端口的新应用程序激增等因素,这种方法变得不可靠和不准确。另一种在这一领域得到广泛应用的方法是深度包检测(Deep Packet Inspection,DPI)。DPI通过在包负载和一组存储的签名之间执行匹配对网络流量进行分类。然而,当隐私政策和法律阻止访问包内容以及协议混淆或封装的情况下,DPI会失败。为了克服上述问题,机器学习(ML)作为一种合适的解决方案应运而生,它不仅适用于流量分类任务,而且适用于预测和新知识发现等。在这种情况下,IP流的统计特征通常是从网络轨迹中提取出来的,并存储起来生成历史数据。这样,就可以用这些历史数据训练不同的ML模型,并用这些模型分析新的传入流。

    A. 相关工作

      在本节中,我们将研究一些综述性论文,以找出进行流量分析(尤其是流量分类)的趋势、挑战和一般步骤。虽然2005年已经开始使用ML进行流量分析,但是由于流量的更新和扩展等原因,一些问题仍然存在。文献[2]回顾了近年来利用ML进行流量分类的研究进展。尽管大多数呈现的工作都是以离线方式部署的,但是作者也提到了在线部署,为ML模型建立了一些关键的操作要求。在最近的一篇综述[3]中,指出了其中的几个问题,并提出了该领域的未来的一些方向。一方面,本文研究了一些主要的流量分类问题,可以总结如下:

    • 可用的数据及其真实性是有限的;
    • 流量分类解决方案的可扩展性是一个挑战;
    • 由于网络的动态性和进化性,需要自适应的解决方案;
    • 解决方案需要正确的验证。

      另一方面,未来的方向鼓励对ML方法进行更严格的评估和比较,鼓励开发用于定义流量真实值的工具,鼓励使用多分类系统等。此外,ML方法需要满足不同的挑战[4]、[5],例如提供的性能、对不断增加的业务量和传输速率的管理,以及重新配置能力。
      文献[6]介绍了这一领域的最新进展,重点介绍了用于流量分类的有监督无监督技术。作者研究了几种基于贝叶斯的分类器神经网络NNs决策树DT的方法。此外,还研究了DBSCAN算法基于期望最大化EMK-均值的聚类技术等。为了概述每种方法的必要改进,给出了一些优缺点。
      加密通信已成为防止网络中传输信息被入侵的一种新方法。ML非常适合分析这些类型的通信,因为它不会侵入数据包内容;例如,在某些情况下,连接的统计行为可能就足够了。在这一背景下,[7]报告了几项关于加密流量的研究的全面回顾。调查研究了一些加密协议、它们的包结构和在网络中的标准行为,以及可以提取用于流量分析的可观察特征。此外,[8]还调查了最常见的流量分类方法。
      目前,网络中的异常流量检测已成为流量分析的重要课题之一。其目的是发现或描述可能影响网络基础设施、业务或个人隐私、数字经济等的恶意或无意的异常情况。流量分析对于这个特定的域是必要的。参考文献[9]提出了一项综合研究,其中ML技术代表了本综述中发现的30%以上的解决方案。这一领域的更多工作见[10]-[12]。
      一般来说,流量分类可以通过多种ML技术,在不同的领域,以不同的目标来实现。然而,在所有的调查报告中,一个主要的问题是缺乏公共数据,这可以被视为应用ML方法的核心资源。此外,定义所收集数据的真实值的困难,以及ML解决方案的实现,是目前ML技术的挑战和限制。另外,另一个重要方面是网络的发展,它需要自适应或自配置的解决方案来保证可靠的通信量。相反,为了能够解决前面讨论过的缺点,研究界需要付出更多的努力。

    B. 本文贡献

      本文试图收集如何以及何时使用ML技术进行流量分类的不同方法、策略和过程。它将研究从监控阶段到实施ML解决方案的过程。主要目的是为打算使用ML技术进行流量分类的领域从业人员提供全面的指导。从这个意义上讲,本文主要研究基于科学界的经验实现流量分类的步骤。值得一提的是,本文的研究集中在IP层的流量分类上。例如,本研究将概述可用于改善运营商网络级别的QoS的方法。简而言之,主要贡献如下:

    • 提供了一个全面的工作流程,以了解如何通过IP流上的ML技术实现流量分类。
    • 研究与文献中相关的工作流程的每个步骤。
    • 提供了一组当前方法根据工作流遵循的路径。
    • 作为最终结果,提供了流量分类问题的一般概述,以及根据先前结果得出的未来方向。

      总结这一部分,值得指出的是,本综述与其他相关工作的主要区别在于提出论文的方法。参考的论文按照将ML技术应用于Internet流量分类领域的一般步骤进行组织。

    C. 本文结构

      本文的其余部分安排如下。第II节简要介绍了流量分类的问题。该节首先介绍ML技术和网络流量的一些基础,最后总结一些最常用的方法。第III节介绍了作者评审论文所采用的方法,该方法基于知识抽取的ML过程。按照前一节的指导方针,第IV节报告了网络中进行数据收集的常用方法。第V节报告了从观察到的流量中提取特征的策略。第VI节介绍了一些减少或选择提取特征的方法。第VII节研究了如何选择ML算法进行流量分类。第VIII节旨在了解文献中为实现ML解决方案所做的努力。第IX节分析了文献的结果,第X节概述了调查报告的结论。

    II. 背景

      在第II-A节中,介绍了ML基础、一般步骤和经典算法的综合。接下来,在第II-B节中,对流量分类方法进行了概述。

    A. 机器学习介绍

      机器学习(ML)技术是识别和分类不同类别的一种非常流行的方法。它的主要目标是赋予计算机自动学习能力,即机器能够在一定条件下从过程中提取知识。ML试图从一组特征或属性中提取知识,这些特征或属性表示过程或者观察到现象的可测量属性。这样,学习过程通过训练不同的模型来执行,即分类、预测或聚类模型;它们的使用取决于问题的特征。知识抽取由一个根据案例研究的历史经验建立的ML模型处理。
      在文献中可以找到不同的ML方法。例如,[13]提出了一组迭代步骤来发现大型数据库中的知识。这项工作报告了将数据转换为知识的传统方法,称为数据库中的知识发现(KDD)。KDD的主要步骤包括数据选择处理转换挖掘和解释/评价。数据挖掘组件指的是数据挖掘方法的应用,这些方法从数据中确定模式。大多数数据挖掘方法都是基于ML技术的。本文介绍了用ML技术实现知识发现的一般步骤。

    1. 数据收集

      此步骤旨在收集有关案例研究的信息。通过建立测量程序,从物理或数字传感器获取数据。这些数据描述了当前或历史状态,用于定义实验环境。一个测试环境由所有的软件、硬件和网络组件,以及其他感兴趣的过程所持有的组件组成。这个测试环境对于使用ML技术构建模型(学习和测试)是必要的。从测试环境中设置的多个场景中捕获和收集样本。

    2. 特征提取FE

      特征提取是最重要的步骤之一,因为它测量或计算可能提供进程状态信息的特征。简言之,FE过程计算反映所收集数据中特定属性不同的度量值。主要目的是获得更好地描述问题的描述符。FE过程的结果是由属性列构成的结构化表,其中每一行是一个样本,还有一个附加的可选列,列的当前状态为每个样本(通常称为标签或类)。如果状态未知,则样本未标记。
      特征提取可以执行数据处理过程以删除不需要的缺失值和清除数据等。最后一个与异常值检测相关,它可能会破坏ML解决方案的性能。此外,可以通过对属性值进行规范化聚合操作来转换数据。在聚合过程中,这些特征被组合成一个对问题更有意义的单一特征。
      在这个阶段,我们可以从一个初步的研究开始来理解数据。例如,使用带标签的数据,可以处理表来查找类不平衡,这是一个或多个类的样本量比另一个类的样本量要高的情况。类不平衡数据可能会使一些ML模型从一个类中学习更多的内容从而产生偏差。处理类不平衡数据的一种方法是尽可能减少类中不相关样本的数量[14]。
      最后,必须指出的是,FE过程可以嵌入到ML算法中;此外,历史数据集可能不可用,ML模型应该从头学习。这些特殊性将在第II-A4节中扩展。

    3.特征降维FR和特征选择FS

      这是一个可选步骤,允许选择或减少提取的特征数。FR是使用原始的属性创建新的属性,而FS是寻找一组较少的属性来更好地描述特征。这些步骤旨在减少诸如时间消耗和维度诅咒等问题。文献[15]和[16]对FR和FS过程的性能和理解进行了调查。FR和FS通常分为过滤器包装器嵌入式方法,这些方法又可以通过有监督无监督策略进行开发。在有监督策略中,目标是找出最有助于定义分类决策的特征。在无监督策略中,主要目的是确定数据分组的特征。
      在过滤器中,每个特征使用一个度量其相关性的度量来给出分数。对这些特征进行排名,最相关的是那些满足可接受的阈值的特性。相关分析是一种简单的滤波方法,通过计算相关系数找到特征对之间的关系。其他滤波器技术包括基尼指数[17]、信息增益[18]、拉普拉斯分数和稀疏度分数[19]、[20]等。滤波器算法可以使用无监督学习来寻找最佳的基本特征[21]–[24],或者通过结构化稀疏正则化模型来选择特征,从而保持了数据集中实例的聚类结构[25]–[27]。另一方面,有监督学习常用于包装器方法,其中定义了一个目标函数,以确定不同特征集对分类器精度的影响。需要选择提供最佳分类性能的特征。遗传算法序列搜索策略被广泛用作包装器[28]、[29]。
      此外,一些ML算法包括嵌入到模型设计中的FS过程,例如正则化回归模型基于决策树的模型[30]、[31]。最后,其他技术集中于在原始特征的基础上生成更具代表性的特征[32]、[33]。这些技术可以在特征生成中找到,明显地与FR和FS过程分离。

    4. 算法选择和模型结构

      前几个阶段的结果生成了一个包含案例研究的历史信息的数据集。历史数据集是构建ML模型的关键资源。不同的ML算法已经被开发出来并尝试用于解决分类、聚类和回归等的任务。ML算法的作者希望发现的问题或知识类型有关。
      在ML中,有两种典型的学习类型:有监督学习无监督学习。大多数有监督学习算法调整模型参数,使模型输出与输入的实际期望输出之间的误差最小。这意味着必须对历史数据进行标记。另一方面,无监督算法试图在事先不知道输出的情况下找到输入之间的关系。这些关系可以是相似性、近似性和统计关系等。作为学习过程的衍生结果,有监督的算法通常用于执行分类任务,而无监督的算法则更倾向于对输入进行聚类,以便发现它们之间的异常或相似行为。一般来说,ML模型和学习类型与要解决的问题类型相关。
      [34]-[36]可以找到ML算法的不同分类。例如,一般情况下经典的有监督算法有基于统计模型规则神经网络NNs等。此外,有几种方法不一定属于上述分组,可以分为参数方法非参数方法。例如,在参数模型中,目标是确定使成本函数最小化的参数,例如支持向量机(SVM)。一种非参数算法是K近邻(KNN),它通过测量样本的距离来收集相似的样本。在无监督方法中,一种分类方法将技术分为基于原型的聚类层次化方法基于密度的方法等。
      目前,ML算法除了基于有监督和无监督学习外种类繁多。例如,半监督算法利用未标记的数据训练分类器,或者用标记样本训练分类器,然后评估分类器中的未标记样本,或者对未标记样本使用无监督方法。由于数据集中存在标记样本和未标记样本,因此也可以通过有监督和无监督学习之间的组合找到混合方法[37]。此外,集成技术使用各种ML模型(通常是分类器)并通过组合策略组合它们的结果。BaggingBoosting等策略被广泛用于构建集成模型[38]。还有一些更先进的技术,例如,增量学习,旨在用新的输入在线更新ML模型[39]。最后,强化学习的重点是在线表现(通常是累积奖励),在任何时候采取行动时都是最大化的[40]。

    5. 分类模型验证

      本节概述了分类解决方案最常用的验证方法。监督学习需要样本标签的预先知识,样本标签是验证ML模型的关键信息。通常的方法是将数据集分为训练集测试集。用训练集建立ML模型,用测试集评价模型的预测能力。给定模型预测和测试集的真实标签,可以通过几个性能度量来量化ML解决方案的分类能力。例如,[41]提出了分类性能度量的研究,将分类性能度量分为要实现的分类类型:二进制多类多标记分层。当一个输入样本只能被分为两个不同的类中的一个时,就会发生二元分类。相反,多类分类意味着输入在一个类池中只能被分类为一个类。多标签分类允许将输入样本分类到类池中的多个类中。最后,层次分类类似于多类分类,但粒度更大,因为主类被划分为较低级别的子类。
      为了验证ML模型,最常用的方法之一是根据分类能力来衡量其性能。在模型预测和真实标签之间可以找到一些关系,例如正确和错误分配给类的样本数等。通过计算例如准确性精度召回率F-scoreROC等来衡量ML模型性能。例如,对于具有正类和负类的二进制分类,真阳性TP假阴性FN真阴性TN假阳性FP可以通过敏感度和特异度来衡量分类器的性能。这些度量的组合,如F-score和ROC,提供了关于分类器性能的更精确的信息。特别地,ROC曲线是通过计算改变分类器的判别阈值的灵敏度和特异性得出的[42]。在ROC曲线中,理想值代表了许多敏感性和特异性(一种非常好的诊断方法),其结果是一个可解释的图,说明了分类器在不同操作点的性能;此外,可以计算曲线下面积(AUC)以从ROC获得紧凑的度量。通过计算二进制分类性能的微观或宏观平均值的总体性能度量,上述分析可以映射到多类问题。这些度量中的每一个评估了模型性能的不同方面[43]、[44]。
      传统的模型评估方法是分别使用训练集和测试集来训练模型和计算性能度量。此外,交叉验证是将数据划分为k个子集的模型验证的另一种方法。其中一个子集用作测试集,其余用于训练模型。对k个子集执行相同的过程,并通过每个子集的评估分数的组合(平均)给出全局性能表现。交叉验证方法有不同的变体,如leave-p-outleave-one-out
      最后,有一些更先进的方法可以在不同的测试场景下测量分类器性能,例如Friedman测试Wilcoxon测试等。这些场景包括数据集的不同分区、分类器设置的不同初始条件,或者在训练过程中嵌入随机初始化等。这些方法主要用于比较一组分类器,并选择在不同条件下性能最高的分类器[45]。

    B. 流量分类

      在流量分类中,可以发现几个趋势来分类、理解、诊断或观察网络的状态。流量分类的完整分类见[46]。尽管如此,在图1中提出了对该分类法的修改,该修改又集中在感兴趣的分支机器学习上。图1主要分为五个部分:数据技术特征工程算法选择输出。每个部分的简要说明如下:

    • 数据:用于创建流量分类解决方案的输入数据类型。值得注意的是,流量数据可以加密或未加密。可以通过DPI工具实时捕获标记流量。第IV节将提供有关该部分的更多细节。
    • 技术:主要有四个主要分支,如机器学习基于统计基于行为的和有效载荷检查。在本节中,将简要介绍这四种方法,以便大致了解它们的工作原理。但是,ML分支将在整篇文章中扩展。
    • 特征工程:根据第II-A2节和第II-A3节中提出的策略,本部分仅涉及ML分支,并展示了在IP流上应用的特征分析技术的潜在和现有趋势。本节将在第V节中扩展,而IP流的正式定义在第II-B1节中给出。
    • 算法选择:该部分根据所使用的学习过程(有监督、无监督、混合等)和要完成的任务(分类、聚类等),描述构建ML解决方案的可用方法。
    • 输出:最后,输出主要取决于要实现的目标,例如将流分类为类别或应用程序名、系统状态等。

      本节将介绍如下内容。第II-B1节正式定义了IP流,它是Internet网络中最常见的通信会话表示。接着,介绍了经典的流量分类技术:第II-B2中的有效载荷检测、第II-B3中的基于统计的技术、第II-B4中的行为技术和第II-B5中的ML技术。

    图1 以ML分支为中心的流量分类方法概述

    1. IP流定义

      在业务分类中,通常使用术语“流”来描述从源发送到目的地的一组分组。根据[47],IP流是网络中的一组分组或帧,在一个时间间隔内可以在网络中的某个点截获。属于同一流的数据包共享若干公共属性,例如:a)一个或多个数据包,具有传输或应用报头字段(例如,源和目标IP地址、端口号和类型等);b)数据包的特征作为MPLS标签的数量;c)附加字段,例如下一跳IP地址,因此,可以概述单播流FiF_{i}的经典定义

    • 定义1:一个IP流FiF_{i}可以被定义为:
      Fi={Hi,Pi}(1)F_{i} = \{H_{i}, P_{i}\}\tag{1}
        其中HiH_{i}是流i的头,Pi={pi,...,pin}P_{i} = \{p_{i}, ..., p_{in}\}是属于流i的一组数据包。

    • 定义2:流量头HiH_{i}可以被如下一个元组定义:
      Hi=(IPsrc,IPdest,portsrc,portdest,proto)(2)H_{i} = (IP_{src}, IP_{dest}, port_{src}, port_{dest}, proto)\tag{2}
        其中IPsrcIP_{src}IPdestIP_{dest}是IP源和目标地址;portsrcport_{src}portdestport_{dest}分别是源和目标传输端口;proto是传输协议。
        此外,在表达式(3)中定义了PiP_{i}。P是通过监视点的完整数据包集。hkh_{k}是包pkp_{k}的头,HiH_{i}是流的头。
      Pi={pkPhk==Hi}(3)P_{i} = \{p_{k} \in P \mid h_{k} == H_{i} \}\tag{3}
        对于单播双向流(假设a是客户端,b是服务器),上述定义的扩展是指:

    • 定义3:一个双向流FabF_{ab}的定义为:
      Fab=FaFb(4)F_{ab} = F_{a} \cup F_{b}\tag{4}
        单向流的并集是通过元组中某些元素的匹配来实现的。
        在定义2中,一些端口号可以保留给由IANA建立的应用程序类型,但是,在大多数应用程序在应用中随机生成端口。此外,通信会话(表示为多播会话)可以打开多个端口,这反过来可能影响上述定义。在过去,Internet流量允许使用开放端口和注册端口(使用IANA)之间的匹配来获取应用程序的名称。然而,具有随机端口的新应用程序的激增,以及Internet网络的增长,使得基于端口的方法变得不准确。它们过时了,出现了新的流量分类方法。

    2. 有效载荷检测

      这种技术也称为深度包检测(Deep Packet Inspection,DPI),它分析网络数据包的内容,即IP报头和有效载荷。
      DPI将从包中提取的信息与一组(预先定义的已知的)签名进行比较来区分应用协议。一些DPI工具包括nDPILibprotoidentPACEL7 filterNBAR等。
      最近,由于新的应用程序和协议的不断增多,DPI工具遇到了一些缺点。特别是,当创建新协议时,DPI工具必须更新;否则,它们会获取未知或错误的签名从而导致预测失败。因此,必须不断更新工具签名列表。另一方面,当a)使用包加密来保护通信会话中的内容时;b)部署HTTP2来复用包内容时;c)因为NAT网络无法区分通信会话,采用NAT网络时;和d)部署虚拟专用网(vpn)以实现数据隐私和完整性等,DPI是不够的。
      尽管DPI工具有其特殊的缺陷,但它们仍然被广泛用于流量分类。一些研究报告了它们在流量分类中的准确性和受欢迎程度[48],[49]。一些工作试图解决当DPI工具检测到新协议时手工设置签名的问题[50],[51]。[52]提出了基于固定比特偏移机制的业务签名的自动生成。该工作提出从流中随机选择包,并在同一位偏移量下对包的每一位进行比较。签名从固定长度中提取、记录并计数,以生成最终签名。在[53]中,同样的作者提出了另一种使用聚类技术来收集相似的流行为的方法。从产生的簇中,取一组流以应用基于令牌的算法HamsaMSA,即t-coffee算法;这两种算法都已被用于提取生物学中的正则表达式,并被用于提取二进制序列中的签名。这些新策略有助于DPI的流量分类。

    3. 基于统计的技术

      基于统计的技术主要目的是找出流、通信终端系统和网络配置之间的统计差异。这种差异可能是两个或多个不同的应用程序或行为的结果,其特征是统计特性。在某些情况下,可以使用统计分布来建模网络流量模式。概率模型的构造已经被一些研究人员应用于了解网络的不同状态。[54]中的工作引入了一个具有公共和私有IP地址的监视场景,并测量每个配置文件的统计信息,例如TCP和UDP数据包的数量,以及失败流的数量。其目的是构造不同的统计分布,如负指数分布高斯分布,以检测P2P通信中的可达性。以类似的方式,[55]中的工作提出了使用统计分布对流进行分类。另一方面,[51]在包头上引入了文本分类,结果由一个统计二元模型进行评估,该模型将确定它是否是一个新的签名。这种方法的主要缺点是静态地构建不整合学习过程的统计模型。与之前的方法一样,在互联网流量模式动态增长和演变的情况下,这种缺点会影响其性能。此外,ML技术对一些基于统计的方法进行了调整和改进。

    4. 行为技术

      此方法通常尝试在网络中的端到端通信中查找模式。它还研究了社区模式,其中社区由不同点的宿主整合而成。
      网络中最常见的行为模式表示是通过图建模,其中图论用于查找高度连接的节点(主机)、连接数和打开的端口等[56]。例如,[57]分析流量行为以识别P2P流量。第一步是通过k-means模型将相似的流聚集在一起。接下来,集群由流量分散图TDG表示,其中节点由IP地址表示,节点之间的链路是注册流。最后,在图上应用一组规则来检测应用程序的名称。这些规则考虑了一些特性,比如节点的百分比和图的平均节点度。[58]中的工作提出了一种识别P2P社区的方法,其中网络中的交互用图形表示。节点由元组(IP、端口)构成,连接由节点之间交换的数据包的数量给出。利用已知远程节点的端口分布对P2P网络进行识别,建立多项式分类器来判断图是否代表已知网络之一。
      这些技术通常研究的另一个目标是识别流量活动模式,如[59]和[60]中的工程。例如,[59]展示了流量分析图(标记),以便直观地揭示不同类型应用程序的行为。在标记中,节点是IP地址,边缘是感兴趣的流;感兴趣的流是根据研究的目的定义的,以便构建标记来捕获主机之间的相关流量活动。参考文献[60]建立了二部图并计算其相似矩阵。该矩阵将作为聚集相似节点的聚类算法(k-means)的输入。
      这种方法也被报道用于检测异常。文献[61]对这一领域的研究现状进行了综述。

    5. 机器学习技术

      对于这个特定的领域,一个主要的目标是根据互联网网络的状态对流量进行分类。在这种情况下,因特网通信的最常见表示为IP流,可以提取代表性特征并用于流量分类。如图1所示,所使用的一些特征提取方法可分为统计流特征时间序列基于图等。FR或FS过程是可选的。它们通常与ML一起应用,并且已经在性能方面证明了添加到ML模型的好处[16]。
      ML算法可以是有监督的、无监督的、半监督的或混合的,它将依赖于ML任务的执行和可用的数据。ML任务与研究目标直接相关。其中一个最流行的目标是异常检测,以防止可能在服务提供商和最终用户之间造成严重损害的网络攻击。此外,异常检测还可用于识别网络中的故障或错误配置[9]。另一方面,应用程序协议检测也吸引了这一领域的兴趣,特别是那些希望改进为客户提供的服务的服务提供商。例如,提高服务质量是网络资源管理的主要目标之一。
      值得一提的是,由于添加了FE过程,ML方法能够处理加密通信。通常,从IP流中提取的特征不会侵入包内容,这允许为加密通信创建分类模型。然而,这种方法在使用HTTP2、VPNs和NAT网络时可能会遇到问题,因为通信会话的分离并不明确。
      总之,在图1中值得注意的是,大多数业务分类工作集中于并应用到不同的需求,例如检测应用协议、类别或异常。为了实现流量分类,可以使用前面讨论过的技术;但是,本文只扩展了ML分支。在这一分支中,我们将研究一些尝试实现不同流量分类目标的工作。

    III. 方法

      本调查报告与所参考的调查报告在介绍工作的方式上有所不同。主要按照第II-A节中定义的顺序组织,这些程序主要解决流量分类问题。在本节中,将按照图2中提出的工作流程,详细介绍调查论文的方法。在此图中,对可以离线(绿色箭头)和在线(黄色箭头)方式执行的块进行了区分。

    图2 机器学习流量分类工作流程综述

      一般来说,离线过程处理数据采集块存储在网络中的一个或多个监测点的历史数据集。数据收集步骤允许测试Internet中的不同场景。此部分主要在一个时间窗口内收集IP流。此外,该部分还包含若干步骤,例如包管理流重建存储。在第IV节中,将回顾与此步骤相关的工作。在离线运行中,必须收集历史数据集;相反,在在线运行中,数据包流被连续地处理。一旦记录了表征问题的数据,就按照第V节中的方法提取相关特征。同样,在在线和离线阶段,分别从历史数据集和分组流计算特征。此时,可以通过FS或FR方法来处理生成的特征,以获得缩减的空间或一组新特征。最常见的过程和工作在第VI节中进行了报告。FR或FS过程还与算法选择和模型部署块有关,因为有些方法根据ML模型给出的性能来选择最相关的特性。
      现在,从原始数据集中,基于所选特征获取新的数据集。在离线运行中,新的数据集用于构建模型,以便执行分类和回归任务等。算法选择部分是指选择最合适的ML算法的过程和方法。正如第VII节所指出的,一些研究采用了不同的比较方法来证明或验证它们的选择。最后,模型构建部分集中于参考文献中为实现这些模型所做的努力。最后两个部分也可以在线评估,主要是为了提供不断发展或升级的ML解决方案。还必须指出的是,此工作流表示一个指南,其中包含使用ML进行流量分类的一般步骤。但是,这些步骤的顺序可能会有所不同,也可以找到组合的步骤。
      更简明地说,从图2中的每个块中提取特定特征。这些特性在图3中详细说明,图3为参考的论文通常遵循的用于流量分类的一些路径。在该图中,可以注意到,对于数据收集块,将研究互联网流量是否为:真实或模拟、公开可用、加密和标记(基本真实)。这些方面对于描述这个问题将变得非常重要。特征工程模块包括参考论文使用的FE和FS方法。从这个意义上讲,四种特征提取方法被认为是最常见的方法,如基于统计的方法STA-TsB基于图的方法graph基于时间序列的方法混合方法。在FS块中,它将表示参考论文是否进行了该过程。接下来,对于算法选择块,定义了使用的ML方法和要实现的目标。研究的趋势有经典分类CClass多分类集成方法MClass&E分类与异常检测聚类Clust混合与先进技术H&A。研究的分类目标包括应用名称(AppN)应用类别AppC异常检测AD。此外,还考虑了其他目标,如用户行为检测社区搜索等。最后,在模型部署块中,区分了实现ML解决方案(YES)的论文和没有实现ML解决方案或没有指定ML解决方案(NNS)的论文。解决方案的重新配置将是研究的一个关键方面,从这个意义上说,如果参考论文提供了再训练(RTraining)、自学或进化(SLE)或其他/非指定(ONS)过程,则将得到验证。
      论文检索是在最重要的学术数据库上进行的。所选文档在标题、摘要或关键字上都有,例如“流量监视”、“流量分析”、“Internet分类”和“加密流量分类”等术语。这些论文发表于2010年至2017年之间,它们位于学术数据库中,如ScienceDirect、ACM、IEEE Xplore和Scopus。必须注意的是,同样考虑了会议记录和期刊的工作。

    图3 将在每个部分中论述的最重要的工作流

    IV.数据收集

      传统上,历史数据是构建ML解决方案的重要知识来源。一组对于问题丰富而完整的观察结果可以提高ML模型的性能和泛化能力。然而,在流量分类领域,这一方面是至关重要的,因为:互联网网络的复杂性和可扩展性,流量的不断演变,以及不允许数据收集的隐私策略等等。因此,真实的网络流量数据很难用于分析和知识提取。已经开发了一些工具和策略来解决这一差距,本节将对其中一些工具和策略进行研究。
      数据收集过程的总体结构如图4所示。在这个图中,按照以下顺序给出了三个层次的抽象:

    • 由触发流量的条件定义的网络环境,例如真实的、生成的或模拟的。
    • 因特网网络本身。
    • 数据测量过程,指如何收集网络包。

      本节讨论的主要问题有助于找到良好流量分类结果的组件。首先,在第IV-A节中,对用于监视通信量的网络环境进行了区分。随后,在第IV-B节中,将讨论数据测量程序。此过程与所采用的环境无关,并考虑了包提取流重建存储等步骤。最后,第IV-C节将概述用流量的真实值标记网络流的重要性。

    图4 流量分类的主要数据收集组件

    A. 网络环境

      需要注意的是,在综述的论文中发现了三个主要的趋势:真实流量采集流量生成和仿真。实际流量通常从网络收集,混淆通信实体(如客户机服务器)之间的私有信息。流量生成试图通过脚本复制或建模真实交互来模拟类似的真实流量条件。最后,流量仿真的目标是将场景设置为与真实场景尽可能接近,其中一个或多个参与者可以有意地模拟网络中的常见交互。
      最佳解决方案是从网络中捕获真实的流量,以便获得可靠的真实数据源;但是,此解决方案很难执行,主要是由于隐私问题。尽管一些工作设法获得了监测网络流的实际条件,但这些数据几乎从未向研究界公开。附录A列出了一些公开的数据。
      流量生成解决方案主要用于评估网络设备性能、通信安全性、资源管理等。在文献中可以找到几种流量生成方法,其策略主要分为:基于流量的生成基于模型的生成。基于流的生成是为了重现在真实场景中捕获的流的内容和到达时间,包的内容由虚拟的或随机的有效载荷给出,用于技术测试。一些基于流的生成工具包括BRUTE[62]、iPerf[63]和Ostinato[64]等。例如,BRUTE被设计为生成以太网通信量IPv4或IPv6。Ipref通过调整时间、协议和缓冲区等参数来测量IP网络上可达到的最大带宽。以同样的方式,Ostinato工具可以以不同的速率生成具有不同协议的通信量。相比之下,基于模型的流量生成方法试图再现真实流量的统计特性,并将其表示为一个模型,该模型随后将生成用于实验测试的流量。例如,[65]通过训练隐马尔可夫模型(HMM)生成客户机工作负载。该模型是在网络试验环境中用真实的人与人之间的交互建立起来的,其主要目的是通过操作系统向每个应用程序发送一系列事件,以创建合成数据。训练数据由事件ID、进程IP和事件之间的到达时间组成。最后,该模型可以注入真实的客户机-服务器交互来创建合成的流量数据。此外,基于模型的生成可以在包级别而不是应用级别执行;例如,[66]提出了一种用于包时间和包大小的合成序列生成的HMM。[67]中的工作回顾了一些最流行的流量生成工具,并提出了一个综合工作负载生成器,它可以用作放置流和基于模型的生成方法的平台。这些工具的一个限制是,它们通常不能生成加密的通信量。加密流量覆盖了当前互联网流量的很大一部分,因此对其进行分析时必须考虑其集合。
      另一种建模通信行为的方法是基于网络仿真系统。仿真网络环境涉及在两个或多个端点之间构建通信配置。一般的架构是在不同的虚拟机或物理机上设置多个客户机,为每个客户机配置监视点,并设置数据存储组件。为了记录向后和向上的IP流,可以引发产生通信量。[68]-[71]中的工作介绍了流量仿真框架,这些工具是公开的,需要根据感兴趣的流量分类进行调整。[68]提出了一种基于用户行为自动仿真的网络流量仿真框架。模拟了几个场景,这些场景代表了用户与应用程序交互的一系列操作;这是通过一个为Microsoft Windows程序创建自动化脚本或宏的工具实现的。类似地,[69]和[70]中的工作模拟记录图形用户界面的用户行为,以生成因特网流量。与流量生成方法相比,流量仿真可以覆盖使用加密或流量封装的应用程序;此功能对于使用ML的流量分类是可取的。

    B. 数据测量

      在本节中,将介绍在Internet网络上执行数据测量的常用方法。此外,如何在监测点进行流量观测。考虑这两个方面是为了更容易地理解如何执行标注任务,以及如何在实际网络环境中实现ML解决方案。通常,网络流量监控最常用的策略之一是在一个时间窗口内提取一组数据包;这种方法是参考文献中使用最多的,本节将对此进行研究。
      设置好网络流量环境之后,接下来要解决的问题是如何导出数据包、构造IP流和标记这些流的应用程序名称(如果需要),以便最终存储或使用这些数据。[72]提出了使用NetFlowIPFIX进行流量提取的综合程序。这项工作将数据测量的步骤定义为:i)数据包捕获,ii)流量测量和输出,以及iii)数据收集。包捕获步骤是指从监测点提取二进制数据的过程,在该步骤中,每个包被视为单个独立实体。在此阶段要考虑的关键方面是样本的大小采样时间[73]。接下来,流量统计过程旨在将分组聚合为第II-B1节中定义的流。当认为流达到顶点时,即通信完成时,就会发生导出过程。统计和导出过程相互关联,可以统一。最后,数据收集是存储导出的流。引用[72]中相同的工作,对于使用ML的流量分类,可能只需要一个额外的组件,这就是标注任务。此附加组件通常放在流量分类步骤中,其目的是定义每个流的应用程序名称,或丰富知识库所需的任何其他标识符,特别是对于受监督的ML技术。标注任务的重要性将在第IV-C节中讨论。
      关于数据测量步骤,有几项工作试图分别改进它们各自的不足之处。例如,[73]提出了一种分组抽样技术的分类方法,旨在根据要实现的目标给出选择最合适方法的指导原则。文献[74]中的工作介绍了运行在商用硬件上的包捕获引擎,这些引擎有助于减少流量分类中的时间响应。使用商用硬件,[75]和[76]实现了包捕获。
      监控点的流量观测从数据包捕获开始。在这个组件中,涉及采样过滤过程。这些包通过统计过程聚合成流,稍后导出以供使用。收集到的流可以存储以供进一步分析或直接由系统分析器使用。流量监控的一些实现见文献。[77]中的工作显示了在工业网络上的实现,而[78],[79]将其应用于家庭网络。[80]中的工作展示了包捕获(Tcpdumb、Wireshark等)流量测量(nProbe、YAF、QoF等)数据收集(nProbe、flowd、nfdumb等)的流行网络监视方法的最常见实现。
      流量观测的主要挑战之一是实时捕获数据包。涉及大量高速数据。为了处理流式数据,采用了经典的基于批处理的方法;但是,这些方法在关键环境(如多媒体监控[81]或网络威胁)中不能提供快速响应。传统上,基于批处理的方法是在流量统计和输出块之后部署的。它的主要目的是管理和存储导出的流,通常以时间间隔批处理到二进制文件(例如,pcap文件)中。基于批处理的方法必须满足一定的数据处理速度和容错性等要求。在基于流的方法中,前者的要求必须满足更为迫切的要求,特别是数据处理速度。例如,在[82]中的工作以流的方式分析流量观测过程,以减少用于流量分类的延迟。作者提出了一种使用消息传递系统分发导出流的工作流。IP流被转换为数据序列化格式。选定的数据序列化格式是二进制JavaScript对象表示法(BSON)。最终的目标是提供一个比基于批处理的方法更高效的分布式数据系统。[83]中的工作评估了一个最常用的用于流量监视的分布式流处理系统的性能。作者提出了一个体系结构基准,可公开用于诸如task之类的任务。同一作者将这项工作扩展到比较三个流处理系统,以找到每个系统对于实时网络流处理的适用性[83]。

    C. 标注任务

      标注任务过程是指为每个流设置一个标识符;该标识符与通信会话中的特定模式相关,例如应用程序的名称或类型。由于跟踪属于特定应用的流的复杂性,将真实信息与流量轨迹相关联可能是一项繁琐的任务;此外,此过程也是验证流量分类器的关键任务。就我们所知,很少有工作实现可靠的真实值标注,因为最常见的方法是使用DPI工具来完成此类任务。例如,[84]中的工作提出了一个工具,该工具能够通过使用套接过程为每个流建立标签。然而,这个解决方案也使用了DPI工具。
      在给定网络环境和数据测量过程的情况下,标注任务可以通过仿真或生成系统来建立。仿真和生成系统是受控制的环境;从这个意义上说,它知道触发的通信量的类型,并且可以将它与收集的流相匹配记录。因此,标注过程可以在监视过程运行时执行,也可以在流量分类系统中自行执行。对于真正的流量监视,DPI或基于端口的工具仍然用于此任务。然而,已经证明,这些技术在未来的分析中增加分析的不确定性和误差,特别是相对于ML技术来说。参考文献[85]量化了使用端口分析和DPI工具将协议标签与流关联时获得的误差。研究表明,端口分析仅对一组协议是准确的;而DPI工具提供了更好的结果。作者通过实验证明,对于P2P流量,DPI工具的失败率超过14%,对于TCP和流媒体应用上的Skype,DPI工具几乎失灵100%。尽管如此,在这个问题上可以找到不同的观点。例如,由[86]所做的研究显示了几个DPI工具之间的性能比较,在大多数情况下,真实标签和DPI标签结果之间的误差很低。重要的是要考虑到,在所有这些比较中,所使用的数据对结果有重大影响;以及DPI工具的版本和进行研究的年份同样有很大的影响。一般来说,流量跟踪显示出通信模式的飞速增加,促使流量分类器(如DPI)不断升级其引擎。此外,DPI工具在存在加密流量时是不准确的,这种情况使得它们非常不适合标注任务。
      一些工作试图提出正确定义真实标签的策略或架构。[87]中的工作评估了以恶意检测为重点的最常用的流量数据测量方法,并提出了一种半人工实践来定义真实标签。此外,出现了支持流量监控和标记的不同工具,如Tsat[88]基于志愿者的系统[89]等。此外,[90]提出了一种大规模网络监控和分析的框架,称为DBStream,它是网络监控数据的数据仓库,能够处理来自各种来源的数据流。最后,为了保留基于用户行为的语义关系,本文提出了一种新的事件流标记策略[91]。

    D. 讨论

      作为本节要完成的最重要的方面,我们可以提出一些建议,并强调未来的以下工作。

    • 由于第IV-A节之前讨论的原因,很难在网络上实现真实世界的测量和测试。因此,建议设置一个模拟网络,这可能有助于再现当前的应用程序和用户行为。此外,它还可以作为设置流量分类解决方案的测试平台。
    • 流量生成解决方案可能有助于创建合成数据,并减少数据收集的实验测试数量。因此,从模拟网络捕获的跟踪和来自流量生成器工具的跟踪之间的组合可能会提供大量的网络流量数据。
    • 模拟网络或流量生成解决方案也必须以与网络演进相同的速度移动。为了完成这项任务,需要制定升级战略。例如,半监督或增量学习技术可以向数据收集步骤提供关于新模式或异常的信息。
    • 为了制定流量监控策略,有必要研究网络所需的信息。为了从观测点获得快速可靠的数据测量,资源和时间消耗最小化是关键的因素。根据要实现的目标或所选择的FE过程,要测量的数据可以是一组数据包、只有数据包的报头,或者只有与它们相关的事件等等(参见第V节)。
    • 为收集的数据建立标记机制很重要。具体来说,不管对于有监督还是无监督,这都是一个非常重要的过程。考虑到其优缺点,必须依赖一项可靠的策略。

    V. 特征提取

      这一部分定义一些ML中的FE方法,研究了四组主要的FE程序。这项研究将使我们对每种方法进行概述性的讨论,并指导读者选择最方便的方法。在参考论文中发现了三个主要的组:基于统计的特征基于图形的特征基于时间序列的特征,这将在下一节中介绍;此外,第V-D节涵盖了一些杂项和混合方法。有关更详细的研究,请参阅[92]中的工作,其中从协议、包和流级别详细说明了数据构造、FE和FR的过程。此外,在[93]中的工作提出了特征提取的自动过程。尽管在[93]中提出的工作主要集中在检测隧道连接,但它提供了一个逻辑工作流程,用于提取和处理流程以获得特征,这可以被ML技术使用。

    A. 基于统计的特征

      从分组流中提取的特征主要是基于统计的特征,这些特征是在假设网络层的业务具有对于特定类型的应用来说是唯一的统计特性(例如流持续时间流空闲时间分组到达间隔时间分组长度的分布)的情况下定义的,可以使不同的源应用程序相互区别。在这种假设下,[94]提出了249个统计特征,这些特征可以从流量网络流量中提取出来。
      诸如到达间隔时间(IAT)分组长度等属性似乎是考虑的最重要的特征,它们的度量标准包括最大、最小、平均和标准偏差等。此外,从a到b(反之亦然)发送的包的数量、控制包以及作为传输协议的包头中的一些其他属性可用于对通信网络建模。
      如第IX节所述,大多数参考论文都倾向于基于统计的特征。在实践中,由于其简单性,很大程度上使用IP流的统计特征。基于统计特征的流量特性已经得到了大量的报道和论证。例如,对于异常检测,[92]列出了单向流和双向流的所有经典统计特征以及内容类型。[10]提出了一个类似的工作,从流和包级别来标记FE方法。
      文献[95]对统计特征进行了全面的研究。作者对10个分类器进行了测试,结果表明这些特征使分类器获得了良好的性能。另一方面,[96]表明,仅通过会话中的数据包计数和字节交换就足以识别某些应用程序,特别是P2P应用程序。
      文[97]研究了TCP连接中数据包重传引起的异常。包重传可以改变包序列,因此,无法基于统计的方法来执行准确的分类。作者提出了一种丢弃重传数据包、检测和使用原始数据包的系统。
      一般来说,基于统计的特征在这一领域通常是首选的,因为它们的计算简单,这在处理高速通信时非常重要。此外,这种方法不会侵入数据包内容,允许在尊重隐私的同时对非加密和加密的通信均可用。

    B. 基于图形的特征

      Internet网络的内在组成允许将其交互建模或表示为大型互连图。因此,该方法利用图论从网络中寻找有价值的信息。假设节点是主机,网络可以看作是一组相互连接的节点,网络的边缘表示主机之间的交互作用。这些交互可以看作是交换数据包的通信会话。通常的步骤是设置一个监视点,例如路由器。通过监视点的分组可以聚合为流。[98]给出了流量分散图(TDG)的构造方法,以及如何找到量化指标来提取信息。在TDG中,所使用的度量通常是图的基数,包括仅具有传入和传出边的节点图的对称性连通性以及节点的平均度等。这些度量用于训练分类器,该分类器将应用程序分组为协作或不协作。另一方面,为了比较两个或两个以上的TDG,作者提出计算图的相对包含度边相似度边波动率。这些度量用于检测应用程序,如游戏和DNS。
      从另一个角度来看,这些图可以用来表示网络中的流量活动。例如,[59]中的工作展示了流量活动图(标记)来揭示主机之间的行为。与前面的情况一样,节点可以被视为主机,而边缘是打开会话中的流。可以找到不同的变体来创建边之间的链接;例如,在[58]中的工作提出了将边作为一对IP和端口,这是由可以为P2P通信打开多个端口的应用程序行为驱动的。
      统计图分解技术被广泛应用于这些方法中以提取最主要的子图。例如,非负矩阵因式分解(NMF)正交非负矩阵三因式分解(tNMF)旨在提取支配子结构并表征其结构性质,以分析网络应用。利用这些结构特性,应用K-均值来发现不同的应用行为[60]。
      总之,这种方法的主要目的是通过图表示来建模应用程序行为,并试图发现Internet网络图之间的相似性。这些相似性将允许将图形分组到应用程序池中。这种相似性可以基于不同的特征;提取的最常见特征是图的结构属性图的连通性度量和基于社区的特征,例如连通良好的图之间的密度或相似性[99]、[100]。

    C. 基于时间序列的特征

      一般来说,时间序列数据可以看作是按时间顺序索引的事件序列。从这个意义上说,FE通常是在离散时间数据上执行的。
      网络流量问题具有适合作为事件驱动问题处理的特点。一对(例如,客户机-服务器)之间的交互强烈依赖于按时间顺序排列的事件,例如打开或关闭通信会话、启动或完成数据传输等。这样的场景促使我们使用时间序列特性或数据驱动的方法来发现网络中的模式。
      在这个领域中,大多数基于时间的方法都试图找出到达时间(IATs)和属于流的包大小之间的关系,以便通过时间序列表示来描述应用程序模式。例如,[101]中的工作提出了单向流的时间活动向量,该向量考虑了流的活动时间、流是否显示活动等特征。此外,可以发现其他不同的方法意图使用网络的时间行为,例如[102]。
      特别地,信号处理方法可用于将时域输入转换为频域输入。其主要目的是获得信号数据的等效幅度相位,以揭示可用于流量分类的新特征。例如,在[103]中的工作提出了一种用基于傅里叶的方法检测异常的方法,对于这种情况,在一段时间内发送和接收的包被分析为时间序列输入。类似地,[104]基于小波导频(WL)技术处理FE过程。在时间窗中将双向流转换成传输字节数的时间序列,然后利用WL获得多重分形特征。多重分形表示是指一种空间或时间域的统计尺度,其主要目的是描述特征的不规则或碎片形状,以及传统欧氏几何无法分析的其他复杂对象。
      通常,传统上这种FE并不是应用于流量分类;然而,这些特征被广泛用于识别异常,如[10]所述。

    D. 其他方法及混合方法

      下面的分类提到了发现的一些方法,但是,还有其他有趣的方法来进行特征提取。这些方法试图结合或提出更适合分类问题的新特征。例如,Bag-of-Flows(bof)源于基于统计的方法,它只在构建双向流的方式上有所不同。BoFs包括由同一应用程序注入的一组流量。BoF可以定义为一组共享同一目的地和源IP的流,这些流表示连接的已打开端口的变化。这种行为常见于通信会话中。BoFs计算了所有流量的统计特征。用所有的流训练ML模型,每个包都有一个通过一些标准定义的标签;例如,标签在包中的出现率很高。对于新的传入流,使用ML模型获取类标签;跟踪流可以与bof关联。一些工作已经测试了使用bof来提高使用ML分类和聚类方法的性能的优势[105]–[107]。
      另一方面,基于统计的特征可以与基于图形的特征相结合,以获得更好的分类性能,如[57]中在流量分类框架中提出的,以及[54]中在异常检测中提出的。
      研究包从源发送到目的地的顺序、序列和时间,可能有助于用基于时间和事件的方法描述具有相关行为的应用程序。例如,[108]中的工作仅使用序列包间时间和有效载荷大小来构建流的序列作为分类模型的输入特征。另一方面,[109]为他们的工作提供了时间序列和基于统计的特征。时间序列特征是通过应用程序的句法结构获得的。句法结构用有限状态机表示。其主要目的是根据机器状态来模拟流的分组序列,包括分组长度和分组方向(向前和向后)。

    E. 讨论

      本节实质上介绍了所参考的FE方法的综合,并对其进行了定性描述和比较,并简要讨论了未来的发展方向。

    1. 比较:表1总结了本节研究的FE趋势。此外,还对它们的优缺点进行了评述,并介绍了应用这些方法进行流量分类的一些工作。从表中可以看出,基于统计的特征是流量分类中使用最多的特征。此外,它们适合处理加密和未加密的通信量。
    2. 指导方针和未来趋势:总结一下,有可能为FE找到不同的分类,这主要取决于要实现的目标。在这个意义上,我们概述了一些关于FE过程的研究。
      • 必须根据要实现的目标和选择的ML方法来定义FE过程,还必须考虑计算和响应时间。
      • 可以考虑计算更好的特征,以防止错误分类和类不平衡行为。例如,在基于统计的方法中,可以考虑其他指标,例如均值和方差计算的变化(例如移动平均值[150])。
      • 可以提出混合FE方法,以更好地描述该过程。例如,统计特征包括基于时间的行为和IATs统计。此外,研究基于时间和事件的行为似乎是该领域开发的一种逻辑方法。
    表1 特征提取过程总结表及相关论文

    VI. 特征降维与选择

      当给出大量特征时,ML模型可能会有一些问题。由于增加计算负担、降低精度、增加过拟合等,这些模型会被修剪。这些问题通常与维度诅咒有关。在这一领域中,FS被广泛应用于选择最相关的特征,提高ML模型的精度。ML进程可能会也可能不会与FR或FS进程一起运算。一些研究表明,要完全获得区分应用程序与其他应用程序的模式,只需要少量的特征。文献[151]-[153]研究了流量分类中最相关的统计特征。在[152]中,使用了几种FS技术来获得最重要的特征,采用一种新的方法选择最小的特征集。将结果与三个数据集中每个特征的优化度、相似性和稳定性交叉验证;结果给出一个小的数据集,在6到14个统计特征之间,通过精度提供最佳的测量性能。
      文献[152]研究了FS和FR在利用ML进行流量分类中的重要性。使用了10个网络流量数据集来说明不同的FS技术的优缺点,如信息增益增益比主成分分析PCA基于相关的特征选择等。作者提出了三种新的度量方法来度量结果特征的性能。这些度量基于分类器的准确性、每次测试结果在不同条件下的稳定性以及FS和FR技术给出的特征集之间的相似性。结果表明,这些新的度量方法都不能提供良好的性能,因此,提出了一种将FS和FR解决方案相结合的新方法。在文献[153]中,前一项研究通过一个称为全局优化方法GOA的优化过程来估计最优和稳定的特征。GOA结合了多个著名的FS技术,在不同的流量数据集中产生一个可能的最优特征子集;然后最优熵阈值将选择稳定的特征。
      数据中的多类不平衡行为通常出现在流量分类中。从这个意义上说,[143]中的工作再使用ML进行流量分类时研究到了这个问题。作者提出用基于熵测度的度量为每一类选择一组特征。类最相关的特征是那些高于预定义阈值的特征的值,特征子集被发送到集成分类器。类似地,[154]提出了一种新的FS方法,其目的是获得最相关的特征,同时减少多类不平衡。文献[155]提出了一种能够区分最相关和不相关特征的模型。该模型是基于具有代表性的深结构深度信任网络DBNs的。DBN设计的一个主要特点是可以从第一层获得高层特征表示,而到最新的底层特征表示。这一特性使得它们适合于本研究所报道的特征生成。

    A. 讨论

      由于网络的动态性,流量数据会从一个数据集影响到另一个数据集,影响有多个方面,其中性能是最重要的一个方面。因此,我们可以得出以下研究:

    • 在ML中使用最重要的特性会影响运行时响应,提高分类器性能和训练和重新训练过程的复杂性,并丢弃数据中的冗余。从这个意义上讲,建议总是使用FS或FR方法对提取的特征进行先前的研究。这个过程还可以帮助处理类不平衡和丢弃不重要的特性。
    • 一种有趣的开发方法是动态选择功能。在这种情况下,FS流程应该适应当前流程的情况。因此,可以根据一组准则选择最合适的特征;例如,为类提供更高熵或信息增益的特征。
    • 此外,以无监督的方式确定为ML问题提供更多信息的特性是一项具有挑战性的任务。该方法将有助于找到一种更适合于根据当前状态动态选择特征的算法。

    VII. 算法选择

      在这个领域,使用各种ML算法实现不同的解决方案是很常见的。由于ML算法数量众多,在流量分类中寻找最合适的ML算法是非常重要的。特别是,大多数的工作都是基于建立和测试几个模型,直到找到性能最高的模型。在本节中,我们将详细介绍所选的工作,以概述在选择ML算法时所面临的挑战。
      在回顾的过程中,我们会注意到,这些研究的重点是要实现的特定目标:识别应用程序的类型、协议应用程序、异常或隧道连接。读者会注意到,大多数论文的目的是执行分类任务(见第VII-A节)。此外,第VII-B节介绍了使用多分类和集成方法的具体工作。此外,一些论文在第VII-C节中以无监督的方式处理分类问题。最后,第VII-D节将研究混合和高级方法。
      值得注意的是,处理未加密和加密跟踪通常单独描述。这种区别通常是由于未加密通信量的行为可能与加密通信量的行为不同,这是出于使用不同通信协议的动机。然而,在本节中,主要是从ML的角度研究流量分类问题。因此,本文重点介绍了所选择的ML算法,并在第VII-E节中对加密和未加密业务进行了明确的分离。

    A. 经典分类法

      有监督算法常常采用标记的数据进行训练以选择最佳的模型,进而得到衡量分类性能的模型。例如,对于未加密的流量,[95]和[117]中的工作给出了使用统计特征的几个分类器之间的比较。使用分类准确度和计算成本进行了比较。在给定各种数据集的情况下,不同的分类器给出了最佳性能;一般来说,考虑到数据集的某些特性,可以找到比其他分类器表现更好的分类器。ML算法的模型结构和学习过程更适合于某一类问题。
      [123]中的工作面向应用程序类别(视频流、VoIP等)以提高QoS。在不同的数据采集条件下(如丢包和高或低延迟)进行了一些实验。计算了几个性能指标,评估出了性能最好的分类器。这项工作中指出的一个主要原因是类不平衡的存在;此外,互联网通信的中断对分类器产生了噪音。与网络流量中常见的类失衡行为有关。[126]提出比较有偏和无偏数据训练的支持向量机分类器的结果。与其他类相比,有偏数据包含大量只属于一个类的样本;相反,在无偏数据中,所有类都具有相似数量的样本。结果表明,样本量较低的类别提供了10%以上的假阴性,而在有偏情况下,总体准确度没有显著差异。另一方面,[156]提出用代价敏感学习来解决多类不平衡问题。其思想是计算一个类中错误分类流的代价。这个结果产生一个类似混淆矩阵的结构,它包含了每个类的先验加权概率。根据流量的几何平均值,将权重定义为启发式函数。代价函数有助于在训练具有不平衡数据的树型分类器时获得更好的性能。
      文献[109]将统计特征与时间序列特征相结合,建立了流量分类的隐马尔可夫模型。它们说明了所选应用程序的语法结构,如BitTorrent、Skype和Emule等。结果表明,该方法比一些基于统计的方法具有更高的分类精度;然而,模型的构建需要标记数据,此外在网络中出现新应用时需要再训练。
      对于异常或恶意流量检测,广泛应用的有监督学习基于统计的特征,例如[116]识别Web中常见的公开的威胁,以及[157]比较多个ML模型进行入侵检测。Lalitha和Josna[158]实现了无线传感器网络场景,以捕获特定环境条件下的流量。然后,训练高斯混合模型来检测网络中的正常和异常行为。另一方面,一些工作试图在移动/蜂窝网络中部署分类解决方案。例如,[130]在固定时间窗口中收集从移动网络提取的IP流量。通过计算正常和异常流量的统计特征,训练贝叶斯分类器对海量网络用户的流量行为进行分析。在[136]中的工作收集了一个大型大学校园Wi-Fi控制器的网络轨迹。这些控制器将接入点连接到校园骨干网,允许无线设备访问Internet。跟踪来自恶意和良性域之间的网络流量,并在这些跟踪上计算基于统计的特征。训练一个二进制ML分类器进行检测恶意域名。
      网络上加密流量的激增显然呈指数级增长。公开加密的通信量会引起网络中不同参与者的注意,其方式与未加密的情况相同。此外,监督学习是加密流量最流行的方法。从这个意义上讲,[7]中的工作在理论上比较了创建用于加密流量分类的ML模型的几个工作。在比较中,我们注意到比较这些方法的困难,因为每种方法都使用不同的和私有的数据集,其中大多数数据集的标记过程不清楚。
      可以想象,为未加密的通信量部署的所有方法对于加密的情况都应该有效,特别是在FE过程中不侵入包内容的工作(例如基于统计的)。然而,有可能发现新的加密方法或协议在不同应用程序之间的行为也不同。例如,在[159]中的工作表明,两个加密的应用程序可以使用监督学习进行分类。由于加密通信的性质,在不考虑有效负载信息、IP地址和端口号的情况下,选择了SSH和Skype使用统计特性(如IAT和数据包大小)评估多个分类器。在相同的背景下,Alshamari和Zincir Heywood[111]测试了不同的ML方法来对VoIP加密流量进行分类。他们提出了一种只使用统计特征的特征提取方法。其他方法遵循相同的过程,保持统计特征为公共点,并改变分类器或数据集,例如在[115]中使用朴素贝叶斯,在[114]中使用决策树。
      在参考的论文中发现的一个特殊点是,它们通常集中在一定程度上检测一种加密类型。例如,在[129]中的工作提出了一种两阶段的方法:1)使用签名匹配方法识别安全套接字层协议(SSL)或传输层安全协议(TLS)下的数据流,2)计算统计特征来对这些流中的应用程序进行分类。其中一个不足是签名匹配方法是基于标准的协议规范和文档,或者基于人工观察和分析。
      VoIP通信越来越受欢迎,其识别是电信领域中的一个关键因素,无论是对其进行优先级排序还是对其进行失效处理。因此,提出了几种方法,如[114]、[118]、[128]、[160]和[161]中的工作。其中一些作品试图描述和识别Skype,由于其复杂的通信协议,Skype是网络中最复杂的VoIP应用之一。
      对HTTP2或IPsec连接中的应用程序进行分类非常复杂。例如,[162]-[164]中的工作是用加密的流量数据训练ML分类器。启动了几个应用程序,没有采用VPN,捕获基于统计的特性。随后,对多个ML模型进行训练和测试,得到了满意的结果。另一方面,对于隧道连接,回顾定义2中数据流的特征,并不能应用特征提取过程。当实际中嵌入了更多数据流时,隧道连接被识别为仅一个流。这种情况还没有得到大量的研究,然而,一些工作的目的是首先确定一个隧道连接,如在[93]和[110]。基于ML技术的一种有趣的方法旨在检测HTTP2连接中的拒绝服务(DoS)攻击[112]。作者准备了一个正常流量和攻击流量的网络环境。通过一个特征过程获得数据集,在该过程中计算统计特征,然后通过一个特征降维过程来减小特征空间。最后,对多个分类器进行了二值分类检测。

    B. 多分类和集成方法

      多个分类器的组合可以解决经典分类器在流量分类领域中遇到的泛化问题。这些类型的解决方案旨在创建更专业的分类器。例如,[149]提供了几个ML模型的组合,以获得更好的性能。使用相同的数据对多个分类器(两个基于树的、一个基于规则的、两个基于统计的和支持向量机)进行训练;此外,还包括一个DPI工具作为分类器。所有的分类器都对新输入进行评价,并采用最大似然法DempsterShafer法Enhanced DempsterShafer法perfect combination法等组合方法对结果进行整理分析。例如,在最大似然组合中,所有分类器对一个类进行投票,投票最多的类是输出。文献[165]中的工作比较了七种基于决策树的集成算法的性能。研究表明,大多数集成算法在性能上克服了经典的单分类器方法。实验中发现的主要缺陷是模型训练和在线分类的时间开销。[121]中的工作建议计算特征提取过程并将其划分为子集;该过程应用于三个不同的案例研究。这些情况与原始数据集不同,例如有或没有零负载数据包。对每种情况计算统计特征,并训练专用分类器。另一方面,在[143]中的工作通过FS过程定义了多个特征子集;每个特征子集是关于特定的应用协议类定义的。对每个子集训练一个分类器,并通过投票过程给出输出。在这项工作中,我们认为相关的特性可能会因类别而异,以及在类别不平衡资料的存在下,它会如何影响分类器的效能。

    C. 聚类分类与异常检测

      无监督方法通常与异常检测相关,因为它能够检测与正常或标准条件不相似的模式;而且还可以执行分类任务。从这个意义上说,聚类技术在网络流量分类中得到了广泛的应用。本节致力于将无监督学习应用于互联网流量分类的工作。
      利用无监督学习对网络流量进行分类的最常用方法之一是K均值法,它根据样本与聚类中心的相似性建立K个聚类。在[106]中的工作使用K均值和流的几个属性进行网络分类。在[140]中,改进了使用K均值时簇的经典随机初始化。初始簇由流属性之间的方差定义。在构建集群之后,使用概率分配来执行映射集群应用程序。最大似然估计标记样本对K个聚类的隶属度。这种方法的一个主要缺陷是必须预先定义集群K的数量,将解决方案绑定到固定数量的标签上。此外,不考虑噪声样本和新标签。
      对于加密流量,[145]中的工作使用K均值模型来识别HTTPS连接中的加密视频流,获得了良好的平均精度。在不同的比特率下提取数据集,以证明在不同的场景下(IATs的变化)分类器的性能。类似地,[166]中的工作使用K均值来识别P2P流量。在[167]和[168]中给出了无监督技术之间的一些比较,这反过来可以提供在面对未标记的加密流量时使用的方法的见解。最后,由于类的真实标签是未知的,必须为使用聚类技术部署足够的指导。例如,[169]提出了一个框架,该框架允许无监督方法考虑类的真实标签来进行流量分类。

    D. 混合和先进的技术

      在本节中,将介绍一些使用混合半监督新方法进行流量分类的工作。
      首先,有一些方法将有监督无监督学习相结合,采用两阶段过程对网络流量进行分类。第一阶段负责对同一类型的流量类(如视频流、P2P torrent等)进行聚类,第二阶段使用监督模型对应用(Youtube、Neflix等)进行分类。在[137]中的工作提出了一种两阶段的聚类,一个使用统计流特征,另一个使用包有效载荷特征。第三个阶段将两个聚类结果集成起来,创建一个分类器。构建了一个词包(BoWs)模型来表示具有流量统计特征的簇的内容,然后应用潜在语义分析(LSA)来根据其负载内容聚合相似的流量簇。[122]中的工作使用K均值对业务类进行分组,并且通过决策树对应用进行分类,以便为结果提供更大的粒度。类似地,文献[113]提出了一种结合K均值和KNN的混合算法,用于对加密流量进行在线分类。该组合是一个两阶段的过程,其中K-means在实时嵌入式环境中对流量进行集群。通过一种基于缓存的机制来评估性能,该机制结合了基于端口和基于统计的分类元素。
      此外,还使用了更专门的算法来获得更细粒度的性能。作为一个例子,[120]提出了一种**基于在线序列极值学习机(OS-ELM)**的入侵检测分类系统。使用FS技术的集合丢弃不相关的特征。文献[144]提出了一种Wavelet Kernel Extreme Machine Learnin(WK-EML)和遗传算法(GA)的流量分类方法,并结合统计特征对网络流进行分类。遗传算法允许最优地找到使用WK-EML所需的参数,从而训练模型,而不是使用经典的随机设置方法。
      文献[170]提出了一种识别加密应用的新方法,该方法提出了一种无需显式特征提取过程的流量分类问题。作者没有使用经典的统计特性,而是构建了一个可以从数据包内容中学习的深度学习架构。该方法不像DPI技术那样侵入数据包检查关键字,而是通过深度学习架构来学习每个应用程序的新特性。特征提取过程是嵌入的,这些新特征没有实际意义,而是由深层神经网络发现的二元关系数据。最后一个特征使得它适合于加密的流量,并提出了一种替代基于统计特征的方法。但是,尚未对它与经典FE分析和分类方法的界限进行量化。

    E. 讨论

      这一节的摘要是对论文结果的简要描述。此外,还对未来的发展方向作了简要的讨论。

    1. 比较:表2和表3分别总结了未加密和加密流量的分类方法趋势。对它们的优缺点进行了评述,并介绍了应用这些方法进行流量分类的一些工作。
    2. 指导方针和未来趋势:一些方法是基于以下两种选择算法的:i)以往工作的经验,ii)不同数据集的性能比较,或iii)算法之间的定性优缺点。一些具体结论是:
      • 选择最合适的算法与适合数据高度相关。因此,有必要对ML模型最佳工作的条件以及能够接收的数据类型进行初步研究。人们注意到,一个或多个分类器可能无法概括所有类,这可能是由于历史数据中存在类不平衡造成的。
      • 选择ML方法最常用的方法之一是比较它们的分类性能。选择ML方法最常见的方法之一是通过比较它们的分类性能。此比较通常基于精度度量。然而,更准确的方法是与测量分类器性能的统计显著性的参数和非参数检验进行多重或成对比较[45]。
      • 集成分类器给出的更灵活的解决方案可以在类不平衡数据下提供更精确的结果。此外,集成分类器特征的可变性可以加强解决方案。
      • 非监督方法主要用于异常检测。然而,一个明显的挑战是发现可能由新的簇结构表示的新类。
      • 最后,一个有趣的方法可能支持所有的不足(有关不平衡的类数据,新的应用程序发现和推广)是提出元学习过程进行选择和构建的ML解决方案。
    表2 未加密流量的算法选择趋势汇总表和相关论文
    表3 加密流量的算法选择趋势汇总表和相关论文

    VIII. 模型部署

      本节的主要目的是检查ML解决方案在实际网络场景中的实现和重构尝试。本研究仅以文献为参考。
      在论文中,研究了几种FE、FS和ML方法,这些方法依次构成了对流量进行分类的必要步骤。出现的主要问题是如何将ML解决方案部署到实际场景中。在本文回顾的大部分文章中,没有实现ML解决方案,它们通常展示了概念的证明。然而,上面的一些工作给出了一些关于如何部署ML方法的提示。此外,分析了ML解决方案重构的重要性,它在流量分类任务中起着重要的作用。

    A. 在线实现

      互联网最重要的特点之一,就是传输速率通常很高,网络规模很大。这些主要特性使得分类器的实现工作具有挑战性。最常见的方法是在流量监视工具上部署ML解决方案(参见第IV-B节);因此,每次观察到分组流时,都有可能执行分类。例如,[180]使用支持NetFlow的路由器来监视跟踪,跟踪以在线方式转发到ML分类器。NetFlow是一个Cisco协议,旨在从路由器和交换机导出IP流信息。类似地,dbstream[90]将流量分类解决方案集成到其监控平台中。另一种方法是在独立的分类模块中实现ML解决方案;例如,[133]中的工作将ML解决方案实现到基于现场可编程门阵列(FPGA)的嵌入式系统中。FPGA设备使用网络层的信息,如数据包大小和IATs。
      然而,监控模块可以直接包含分类模型,也可以不直接包含分类模型;捕获的信息可以发送到服务器或业务控制器,在服务器或业务控制器中执行对业务进行分类所需的操作[139]、[158]。[110]中的工作提出了一种使用简单代理服务器的实现。有几个主机连接到此服务器,VoIP和其他流量被注入其中。特别地,VoIP检测算法被放置在代理服务器上以便优先处理该流量。[113]中的工作将其ML解决方案实现到服务控制引擎(SCE)中,SCE是一个Cisco平台,用于基于会话的分类和控制所有网络流量。参考文献[127]提出了一种在网络控制器中实现的QoS感知流量分类框架。该控制器采用软件定义网络(SDN)技术,允许执行监控和流量分类。

    B. 重构

      到目前为止研究的大多数ML解决方案中发现的一个主要问题是,当网络中出现新的模式时,必须更新ML模型。由于网络的动态性,基于ML的分类快速过时。因此,必须考虑到自我学习进化再训练策略。一般来说,对于大多数ML技术,更新意味着使用新的历史数据集(通常被标记)重新训练模型。这意味着在网络上出现新的应用程序或行为时,必须不断地对模型进行重新训练。执行此步骤的成本可能很高;尽管如此,如果不考虑这一点,模型的性能将面临风险。
      在这个问题上,[181]提出了一种用于P2P识别的自学习流量分类器(SLTC)。作者提出了一种被动监测组件在特定链路上观察网络的体系结构。分布式监控组件嵌入了分类器(基于有效载荷检测)。如果这个组件能够正确地对流进行分类,那么它将被标记为已知,否则,流将被发送到逻辑服务器。逻辑服务器负责更精细的操作,以便在监视组件出现故障时识别通信量。此外,逻辑服务器转发策略规则,以向监视组件提供新的行为。需要指出的是,在逻辑服务器中执行的操作基于基于统计的方法、有效负载检查和应用程序分析;但是,可以修改此策略,将其解决方案替换为ML解决方案,为基于ML的联机分类器定义重新训练或更新策略。相比之下,文献[107]提出了一种自学习智能分类器(SLIC)用于流量分类。SLIC的学习过程只需要少量的有标签的流,系统就可以进化成一个新的有无标签数据的配置。SLIC使用BoFs结构,使用KNN将一组流分类到同一组中。首先,用标记样本训练KNN模型。训练完成后,系统可以将未标记的样本标记为新的训练样本,并批量保存。当批处理达到定义的阈值时,激活再训练过程,将新的训练样本引入KNN模型。是否引入新的训练样本取决于预测步骤,在预测步骤中,基于样本与其最近的两个类之间的距离的两个条件将允许做出最终决定。尽管该系统在两个数据集的流量分类方面表现出了良好的性能,但在基于距离的方法容易失败的情况下,可能会出现不平衡或高维数据的问题。此外,应该量化这种方法的计算成本。
      在ML领域,半监督学习可能有助于处理网络特征进化标记数据缺乏的问题。半监督工作流程可以在线方式处理ML模型的更新。例如,[141]提出了一种半监督的流量聚类方法。首先,采用基于集的等价约束高斯混合模型(GMM),并遵循基于期望最大化(EM)的聚类算法。半监督过程是利用边缘信息进行处理的,目的是利用高斯模型建立一组给定约束条件的流。边缘信息原则是基于BoFs定义的。最后,利用集合中的流的经典统计特征将应用协议与EM进行聚类。参考文献[135]也使用半监督方法解决了流量分类问题。支持向量机(SVM)采用协同训练方法,在不同的特征集上训练多个分类器。当历史数据集同时使用标记数据和未标记数据时,使用此方法;其中,考虑未标记数据也可以为模型提供更多的知识。[131]中的工作提出了类似的方法。文献[146]分析了基于时间和基于主机的网络入侵检测特征。该方案基于一种半监督方法,该方法通过带有标记的样本训练分类器。利用该分类器得到未标记数据的隶属度向量。利用隶属度向量得到模糊群,并将模糊群进一步合并到训练集中进行分类器的再训练。

    C. 蜂窝、WiFi和卫星网络中的流量分类

      在本节中,我们将概述流量分类在三个重要网络基础设施中的应用/实现。从这个意义上讲,我们对这些领域中使用ML的IP流量分类进行了简要的分析。
      在蜂窝网络中,可以使用端口分组有效载荷[182]、[183]流统计分布在不同级别执行移动IP业务分类。在这个问题上,当从蜂窝网络跟踪中获得统计属性时,应用ML学习。比如,在一个固定的时间窗口从移动网络中提取收集到IP流量。通过计算正常和异常流量的统计特征,训练贝叶斯分类器对海量网络用户的流量行为进行分析。[184]中的工作提出了一种正确收集和标记移动IP网络轨迹的方法,而[24]中提出了在同一领域中定义标签的分类法。[185]中的工作针对ML解决方案的实现提出了一个从移动网络中正确提取IP流的细粒度过程。在[186]和[187]中可以找到关于这一问题的更多信息。例如,在[186]中的工作公开了蜂窝网络的一般架构,以及可以部署被动监视的可能位置,例如在分组交换(PS)核心中。为此,被动监测点的基于IP的数据可以通过ML分类器按照本调查论文揭示的完整过程进行分析。
      以类似的方式,在WiFi网络中,可以提取IP数据,以便应用ML方法进行流量分类。例如,[136]中的工作从一个大型大学校园的Wi-Fi控制器收集了网络轨迹。这些控制器将接入点连接到校园骨干网,允许无线设备访问Internet。跟踪来自恶意和良性域之间的网络流量,并在这些轨迹上计算基于统计的特征。为检测恶意域,训练了一个二进制ML分类器。类似的方法可以在[158]、[187]和[188]中找到。与蜂窝/移动网络和WiFi网络的区别在于用于数据交换的技术可能会影响速度、成本和安全性。
      最后,在卫星网络中,流量管理是一项关键任务,因为它可以提高服务质量。通常,流量数据是从卫星互联网服务提供商(ISP)获取的。这方面的工作旨在对大型网络中的互联网流量进行分类和分析[189]–[192]。其原理与以往的情况相同,采用被动监测的方式进行流量分类。这些监视点可以位于大型ISP网络的路由器[189]、[190]或存在点(PoP)[191]。另一种新兴的方法是在卫星地面网络中使用软件定义网络(SDNs)。在SDNs中,由于在[193]和[194]中公开了流量分类,因此可以很容易地将其部署在SDN的主控制器中。
      总之,本节介绍了基于ML的流量分类在三个相关的Internet网络基础设施中的可以使用本文提出的方法步骤的可能应用。

    D. 讨论

      最后,就本节内容提出了一些重要的问题和意见。

    • 流量分类解决方案需要ML模型的快速响应和监控过程。在这一领域,衡量整个分类过程所需的有效时间至关重要。通常,Internet通信以毫秒为单位来打开和关闭会话以及传输数据。流量识别过程必须迅速,以便采取相应的行为和验证结果。
    • 通常,在执行模型训练时验证ML解决方案,并且基于第II-A5节中提到的验证技术。为了在联机环境中测量ML解决方案的性能,有必要建立一个提供基本真实应用程序的框架。从这个意义上说,可以计算诸如准确性和F-score之类的度量来确保流量分类的可靠性。
    • 在网络领域使用和实现ML时,一个重要的挑战是解决方案的可扩展性,这是由于Internet网络的规模。
    • 最后,必须部署允许考虑网络动态性的ML解决方案。允许上下文适应(行为或结构适应)的自主体系结构[195]-[197]的开发可以通过使用ML模型来应用。

    IX. 分析

      这项研究主要指出了用ML技术实现知识抽取的一些重要步骤和挑战。所提出的过程包括数据收集、特征工程(FE、FR和FS)、算法选择和模型部署。问题是:哪条路是最好的,或者如何开始寻找相关的参考资料?选择了49篇论文,因为它们在附录A中展示了使用各种流量分类策略的完整过程,展示了前面章节中提到的挑战。图2总结了本次参考的结果。绘制路径是为了了解通常采取的程序趋势。关于图5最重要的注释如下。

    图5 采用ML进行流量分类的论文的趋势

    A. 数据收集部分

      图5中的这一块与第IV节中观察到的特征相关。首先,论文分为两部分:使用真实场景和仿真场景进行流量观测的论文。不考虑流量生成,因为这不是用ML进行流量分类的常用方法。值得注意的是,这两种情况下的论文数量是相似的。接下来,研究数据是否公开。模式与前一个案例相同;但是,大多数有实际流量的论文都使用了公开的数据集,有些在附录A中列出。
      关于加密,我们发现大多数方法在提出到加密案例的映射之前都是从非加密研究开始的。本文的综述主要是对60%的论文进行了非加密数据的整理,其余为加密研究。接着,真实标签通常由DPI工具定义,在DPI工具中很少有论文定义了一个严格的流程来标记流。该模块的一般结论是,趋势是对已知的公共数据使用真实的流量测量,但也要设置网络架构来模拟流量。大多数流量是未加密的,并且通常没有流的真实标签。

    B. 特征工程部分

      本区块由第V和第VI部分构成。考虑的第一个方面是执行的FE的类型,而第二个方面报告是否执行了FS过程。从图5可以注意到,最常见的趋势是使用基于统计的(STATsB)特征的FE过程,之所以预期这种情况,是由于这些特性可以在加密和非加密流量分析之间互换,而且它们不会侵入数据包内容,而且它们的计算量很少。

    C. 算法选择

      在算法选择上,经典分类(CClass)占主导地位,这是意料之中的,因为本研究的重点是流量分类。然而,一些方法在多分类集成方法(MClass&E)方向做了一些努力。最后一个原因是类不平衡泛化问题。此外,还可以发现使用聚类(Clust)和混合改进(H&A)技术进行流量分类的一些努力。在目标实现方面,应用分类(ApPC)和协议(AppN)是常用的搜索方法,而异常检测(AD)也是一个研究热点。其他目标包括检测用户的行为、查找社区和创建用户配置文件等。

    D. 模型部署

      最后,在模型部署块中,关注的是实现该解决方案的论文数量。此外,了解所选论文提出的重构策略也很重要。最后一个很重要,因为网络的持续动态性会导致一些ML方法出现问题。
      从图5可以注意到,超过65%没有指定(NNS)解决方案的实现。以同样的方式,大多数解决方案都不提供重构方法(ONS);尽管有些工作提出了计划的重新训练过程来升级其解决方案。自学习或进化(SLE)在参考的论文中没有发现;然而,这对于一般的ML技术来说是一个具有挑战性的课题。

    E. 特征趋势

      最后,在总结分析的基础上,用红色标出了参考论文中较少采用的方法。从图5中可以注意到,所研究的大多数工作没有使用加密数据,并且标记流量的真实值的过程。在特征工程的过程中,很少有人应用FS来求解。就所使用的ML方法而言,研究得较少的是无监督技术、多分类和集成方法。最后,在模型部署阶段,很少有工作在实际场景中实现该解决方案。此外,重构过程不处理进化或自主重构。鉴于这些情况和前一节的讨论,总结出以下未来趋势。

    • 面向创建ML解决方案的模拟流量体系结构的提出,可以生成加密和未加密的流量,以及可靠的流标记过程
    • 考虑到基于统计的方法的效率,可以探索改进其计算以提供稳健的分类解决方案。在FS的情况下,有效的特征动态选择可以提供更高的分类性能。
    • 在算法选择模块中,未来的发展趋势是采用多分类集成的方法,考虑到Internet数据的特点,这些方法是非常有前途的。
    • 对于ML解决方案,需要更多的实验测试来衡量响应时间和复杂性方面的性能。在这种情况下,有必要提出分布式的、可扩展的ML解决方案,以处理Internet网络的规模。
    • 在模型重构方面,另一种解决方案是采用增量学习的概念,以应对互联网网络的动态性。

    X. 总结

      本文介绍了利用ML技术实现流量分类的一般过程。程序的每个步骤都有一些相关的工作,遵循不同的路径来实现结果。这样,参考的论文被组织起来,每个步骤都定义了每一篇论文所属的类别。这些类别以图形的形式显示,说明了该领域最常见的趋势。每一节都进行了讨论,以确定其最常见的趋势和挑战。
      这项研究试图揭示流量分类领域的几个挑战。例如,使用加密通信量是一项挑战,在没有数据包内容的情况下,特征类型应该导致正确的分类。当前公开标记的数据很少,这使得比较ML解决方案变得很困难。接着,对于ML中的知识提取,分类任务是最流行的。然而,多分类集成方法的优点使得它们在处理流量分类中的类不平衡泛化等问题时具有很强的吸引力。聚类方法有助于发现网络流量中新的或异常的行为,因此,该领域的研究值得推广。最后,这类解决方案的实现仍然是一项需要完成的重要任务,由于影响因素不同,大多与解决方案的性能和适应性有关。
      对于文献中的大多数调查,本综述的不同之处在于,它展示了网络流量分类所需步骤的全貌。此外,还分析了该进程各个阶段的挑战,并概述了未来的方向。总而言之,本书要强调的一些最重要的方向是:

    • 可靠的标签标记,此过程将对ML模型的构建和验证起关键作用。
    • 动态特征选择,这将尝试创建使用给定上下文和目标的最合适特征的自适应模型。
    • 整合元学习过程处理网络数据的不平衡与动态性。
    • ML解决方案的在线重构策略。

    附录A

    本节在表IV中列出了流量分析中最常见的公共可用数据集。

    表4 论文中最常见的公共数据集

    附录B

    表V描述了表征过程的趋势。表VI描述了特征工程过程的趋势。表VII描述了算法选择过程的趋势。表VIII描述了模型建造过程的趋势。

    表5 数据收集阶段选定论文的趋势
    表6 特征工程过程趋势
    表7 算法选择过程趋势
    表8 模型构建趋势

    写在最后,安利一下github地址,收集了一些流量分类领域的论文,欢迎一起交流
    https://github.com/WithHades/network_traffic_classification_paper

    展开全文
  • 以抽取独立于端口、协议和有效载荷的P2P流的信息作为特征,用提出的基于ReliefF-CFS的方法选择流的特征子集,研究使用机器学习算法对P2P流量进行分类的方法,也研究了利用流的前向N个报文的统计信息作为特征分类...
  • 应用分类服务器上对sflow采样报文进行分析,结合arp... 网段内流量信息通过sflow采样发送到服务器3. 服务器根据预先确定的算法对流进行应用分类体验度量服务器对各接入层节点通过RPING采集达到各类应用的目标地址...

    应用分类


    服务器上对sflow采样报文进行分析,结合arp表,识别出网络中存在的终端设备,以及终端设备在进行哪些网络应用。

    具体步骤:

    1.      服务器通过SNMP获取网关下终端列表,即mac地址和ip地址映射关系表

    2.      网段内流量信息通过sflow采样发送到服务器

    3.      服务器根据预先确定的算法对流进行应用分类

    体验度量

    服务器对各接入层节点通过RPING采集达到各类应用的目标地址的QOS数据。

    目标地址从应用层面分为7类:web  office        video         game        voip  download sns,从用户角度分为2类:通用目标地址(预先指定的,比如上网就是sina,sohu,视频就是优酷),基于用户目标地址(从sflow采样中分析出来某个用户针对某个应用访问的目标地址,比如用户A正在web浏览IP地址为6.6.6.6的网页)。

    如果用户有采样到在使用某类应用,则体验度量优先采纳基于用户目标地址的度量值,如果没有采样到使用某类应用,则使用通用目标地址的度量值。

    具体步骤:

    1.             从应用分类中,可以识别出终端用户在使用某类应用的具体ip地址,通过RPING获取访问该ip地址的qos参数,根据该应用度量公式计算出该用户这类应用的度量值

    2.             如果没有捕捉到终端用户对某类应用的使用,则使用通用目标地址作为qos参数获取的对象,根据度量公式计算出该用户这类应用的度量值

    3.             根据不同类型对应公式计算出各应用的体验分数

    4.             对于体验不好的应用,针对其qos参数和目标地址,分析出线路瓶颈,包括延时(参考traceroute机制)和抖动。


    总结

    1 采样点1交换机发送sflow报文到服务器,服务器使用tshark监听udp的6343端口,保存sflow报文

      不同采样点采样比例不同,有线网络报文量大,采样比例为128,无线流量小,比例为8~16   

    2 服务器每分钟汇总一次sflow报文,保存为txt形式文件1

      服务器上采样命令为

      Wireshark\tshark.exe -i 2 -aduration:50 -f"udp dst port 6343 and src host %2" -V > \probe%1\sflow_org%3.log

    3 服务器脚本1处理文件1,得到单位时间内<用户ip,目标ip,应用类型>的列表结果

      脚本根据模型1中的应用分类算法实现

    4 服务器脚本2获取这一分钟目标ip的ping结果列表,存为文件2

      并行ping各目标ip,视为网关到目标ip的qos参数

    5 服务器脚本3获取这一分钟到各用户ip的ping结果,存为文件3

      并行ping终端ip,视为网关到终端的qos参数

    6 前端页面根据文件1,2,3综合判断用户执行什么应用,体验如何,体验不佳原因

      体验计算公式从相关论文上获取并拟合校正,视频和下载则直接使用下载速率来判断



    展开全文
  • dbtype=CJFD《浅析基于DNS协议的隐蔽通道及监测技术》DNS隐蔽通道监测主要采用特征匹配和流量异常检测这两种技术。3.1 特征匹配技术特 征 匹 配 技 术 通 过 网 络 通 信 报 文 特 征 来 识别 D N S 隐 蔽 通 道 。....

    http://xuewen.cnki.net/DownloadArticle.aspx?filename=BMKJ201104017&dbtype=CJFD
    《浅析基于DNS协议的隐蔽通道及监测技术》
    DNS隐蔽通道监测主要采用特征匹配和流量异常检测这两种技术。
    3.1 特征匹配技术
    特 征 匹 配 技 术 通 过 网 络 通 信 报 文 特 征 来 识别 D N S 隐 蔽 通 道 。 S n o r t 通 过 以 下 规 则 来 识 别NSTX和Iodine隐蔽通道:
    alert udp $EXTERNAL_NET any - $HOME_NET 53 (msg:"Potential NSTX DNS Tunneling";
    content:"|01 00|"; offset:2; within:4; content:"c T"; offset:12; depth:3; content:"|00 10 00 01|";
    within:255; 特 征 匹 配 技 术 的 优 点 是 准 确 性 高 , 能 够 具体地识别出DNS隐蔽通道名称,缺点是不能识别出 未 知 或 变 种 的 隐 蔽 通 道 。 对 于 开 源 的 隐 蔽 通道 来 说 , 改 变 网 络 通 信 特 征 是 轻 而 易 举 的 事 ,
    特征匹配技术显然应对不了层出不穷的变种。
    3.2 流量异常检测技术
    流 量 异 常 检 测 技 术 根 据 异 常 流 量 特 征 来 识别DNS隐蔽通道。DNS隐蔽通道运行时,DNS报文 流 量 有 着 明 显 的 异 常 : 域 名 超 长 、 域 名 中 主机名部分有许多随机字符、DNS报文数量剧增、DNS报文长度加大、出现TXT、NULL 、EDNS0等类型的DNS报文等。这些都是流量异常监测需要重点关注的要素。内网网管可以通过Snort工具来监测这些流量异常情况。思科IDS在监测到大量TXT类型的DNS报文时产生告警。目 前 , 流 量 异 常 检 测 技 术 能 够 较 好 地 识 别DNS隐蔽通道。即便是新型的Heyoka,不再引发单个主机的DNS报文数量剧增,但也难以消除其 他 的 流 量 异 常 特 征 , 难 于 规 避 流 量 异 常 监 测设备的检测。


    http://d.g.wanfangdata.com.cn/Periodical_wlaqjsyyy201501024.aspx
    《探析基于DNS协议隐蔽通道的基本架构及监测技术》

    使用规则库,规则集主要描述不同协议的流量特征、数据报文的时问特征以及报头特征,并且还包括通讯两端的地址、流量等信息。 
    在当前隐蔽通道监测技术中,最常用的是特征匹配与基于数据流异常分析的监测技术。基于特征匹配的方法,通过建立记录网络隐蔽信道特征的数据库,将网络中的数据流与其对比,匹配结果为真的话则表示存在隐蔽通道。但是该种方法很难检测出经过变种的隐蔽通道。基于数据流异常的方法,主要通过监测网络中数据流的异常情况来产生报警信息。

     

    http://d.g.wanfangdata.com.cn/Thesis_Y2247883.aspx
    《DNS异常行为检测的研究》
    使用C4.5决策树分类器实现对隐藏信道的检测。对于基于服务的DNS隐藏信道提出通道流量的统计算法;对于基于域名的DNS隐藏信道,提出了基于机器学习的检测算法,该算法选择多个报文连接特征为检测测度,使用C4.5决策树分类器实现对隐藏信道的检测。

    http://d.g.wanfangdata.com.cn/Periodical_txxb201305019.aspx
    《基于DNS的隐蔽通道流量检测》

    也是使用决策树模型来进行检测。研究了 DNS 隐蔽通信流量特性,提取可区分合法查询与隐蔽通信的 12 个数据分组特征,利用机器学习的分类器对其会话统计特性进行判别。

     

    http://cdmd.cnki.com.cn/Article/CDMD-10013-1011121845.htm
    《DNS攻击检测与防御技术研究》
    北邮2011年的一篇硕士论文,通过对流量检测的异常检测角度进行分析,改进了信息熵异常检测方法,同时研究利用粗糙集理论知识进行DNS攻击检测,给出检测模型和实验结果。为了弥补异常检测对小流量攻击检测方面不准确性,结合误用检测思想,给出一个双通道检测模型,为DNS服务提供一个较全面、低误报率的攻击检测平台。


    http://www.cas.stc.sh.cn/jsjyup/pdf/2011/6/%E4%B8%80%E7%A7%8D%E5%9F%BA%E4%BA%8ENDIS%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F%E5%AE%9E%E7%8E%B0%E9%9A%90%E8%94%BD%E9%80%9A%E9%81%93%E7%9A%84%E6%96%B9%E6%B3%95.pdf
    《基于DNS 协议隐蔽通道的性能分析》
    原理介绍居多,关键信息:根据前面对DNS 隐蔽通道原理的分析,可知DNS 隐蔽通道的上传通道可以使用BASE-32 和二进制2 种编码方式,下传通道可以使用BASE-64 和二进制2 种编码方式。BASE-32 和BASE64 编码方式的通用性强,可以应用于所有标准DNS 系统,但通信效率较低。二进制方式的通信效率较高,但是其通用性较差,部分DNS 系统不支持二进制数据。DNS 隐蔽通道的上行通道每个请求数据包可携带的编码后有效数据长度大约240 Byte,下行通道每个应答数据包可携带的编码后有效数据长度大约250 Byte。相应上行通道的BASE-32 编码前有效数据长度约150 Byte,下行通道的BASE-64 编码前有效数据长度约158 Byte。

     

    转载于:https://www.cnblogs.com/bonelee/p/7090438.html

    展开全文
  • 支持向量机(support vector machine,SVM)是一类具有良好泛化能力的机器学习算法,适合应用于互联网动态环境下的流量分类问题。目前将SVM扩展到流量分类这样的多分类问题的方法主要有One-Against-All和One-Against-...
  •   用于流量分类机器学习模型假设训练数据和测试数据具有独立的相同分布。然而,在实际的流量分类中,由于流量特征的变化,这一假设可能并不成立。由现有数据训练的模型在对新的网络流进行分类时将是无效的。本文...

    写在前面:
    本文翻译供个人研究学习之用,不保证严谨与准确
    github链接:https://github.com/WithHades/network_traffic_classification_paper
    本文原文:G. Sun, L. Liang, T. Chen, F. Xiao and F. Lang, “Network traffic classification based on transfer learning”, Comput. Elect. Eng., vol. 69, pp. 920-927, Jul. 2018

    基于迁移学习的网络流量分类

    摘要
      用于流量分类的机器学习模型假设训练数据和测试数据具有独立的相同分布。然而,在实际的流量分类中,由于流量特征的变化,这一假设可能并不成立。由现有数据训练的模型在对新的网络流进行分类时将是无效的。本文提出了一个不作上述假设的迁移学习模型。在迁移学习模型中,采用最大熵模型作为基本分类器。为了检验该方法的有效性,在训练和测试数据不完全相同的情况下,使用剑桥大学收集的流量数据集。实验结果表明,基于迁移学习模型的分类性能良好。

      关键词: 卷积神经网络深度学习网络流量分类循环神经网络

    1. 介绍

      随着网络面临的威胁越来越多,网络管理者必须对网络中运行的应用程序有更深入的了解。流量分类是网络管理的一个重要方面,它能够对所有的网络流量进行分类。
      近年来,许多新的网络协议试图通过动态端口、封装和加密等伪装方法逃避监控。这使得基于端口和基于负载的方法变得不可靠。研究人员的动机是使用应用程序类型作为类别,使用网络通信生成的流量统计属性作为特征。机器学习模型广泛应用于基于机器学习的流量分类方法中,包括监督学习模型、无监督学习模型和半监督学习模型[2]。然而,流量分类仍然面临两大挑战。首先是新应用的快速增长。二是随着网络拓扑结构和时间的变化,需要不同的训练模型。在非监督学习模型中,很难建立一个既有聚类结果又不考虑实际流量类别指导的实用流量分类器[3]。对于半监督学习模型,它在训练过程中利用了一小组标记的流量流和一大组未标记的流量流。对于有监督学习模型,采用了更大的标记流量集。当训练数据集和测试数据集相同时,两者都取得了令人满意的结果。然而,时间、地点和流量类型的变化使得传统的机器学习模型的效率比预期的要低,因为过去收集的训练数据和新生成的测试数据是不一样的[4]。虽然由过时数据训练的模型不能很好地适应新的网络流量,但过时的数据不应该被放弃,因为很难获得具有描述整个网络流量能力的标准标记流量。因此,具有宝贵知识的过时数据应重新用于新的流量分类任务。迁移学习不需要具有独立的同一分布(iid)。即使对于不同的任务,迁移学习仍然有克服上述障碍的优势[5]。假设一个学习任务和相应的数据在源域中,而一个学习任务和相应的数据在目标域中,迁移学习的目标是通过从源域学习知识来提高目标预测函数的速度。与传统的机器学习模型相比,迁移学习不需要对两个领域之间的数据进行iid假设[6]。
      考虑到数据分布会随着时间、地点和流量类型的变化而变化的情况,针对流量分类任务引入了TrAdaBoost模型[6],这是一种基于实例的有区别的归纳迁移学习模型。同时利用Maxent作为基本分类器。TrAdaBoost以将源域中有价值的知识传递给目标任务为目标,使用目标域中的少量标记数据来评估源域中数据的可用性。然后,从源数据中提取有价值的辅助数据,并与目标域中的上述标记数据相结合,训练分类器。TrAdaBoost通过将有用的知识从源域转移到目标域,帮助目标域中的学习任务。本研究的主要贡献如下:

    • 在新的流量分类任务中,TrAdaBoost提出利用从不同网络流量源中提取的标记流量数据。
    • 在TrAdaBoost中,Maxent模型被用作基本分类器。该方法实现了流量知识从源域到目标域的迁移。
    • 实验对TrAdaBoost的性能进行了评价。与传统的机器学习方法相比,该方法在目标域内没有足够的标记数据来有效地训练学习模型。
        本研究的结构如下。第2节简要介绍了流量分类和迁移学习的相关工作。第3节总结了符号和任务定义。第4节详细介绍了算法。第5节给出了数据集和实验结果。第6部分是对本研究的总结和对未来工作的探讨。

    2. 相关工作

      近十年来,国内外学者对基于端口的流量分类方法、基于有效载荷的流量分类方法、基于行为的流量分类方法和基于机器学习的流量分类方法进行了大量的研究。大多数方法在几次调查中按时间顺序进行了总结[1,7]。在这些方法中,机器学习方法以其在流量分类任务中的良好性能受到越来越多的关注。Nguyen和Armitage详细回顾了2008年以前基于机器学习模型的相关研究[2]。因此,我们主要回顾了2008年以后基于机器学习方法的研究工作。
      用于流量分类任务的机器学习方法分为有监督学习方法、半监督学习方法和无监督学习方法。在有监督的学习方法中,根据生成的应用程序类别人工标记流量,作为标准基准数据集。建立了基于标记流的有监督机器学习模型,其特征是从流中提取统计模式。在训练过程中,通过调整模型参数对新的流量流进行分类。这样,在流量分类中实现了许多模型。Moore和Zeuv[8]提出了贝叶斯方法来识别应用协议。他们进一步提高了精确性,细化了变量。比较了5种有监督模型的分类精度和计算性能,包括带离散化的朴素贝叶斯、带核密度估计的朴素贝叶斯、C4.5决策树、贝叶斯网络和朴素贝叶斯树[9]。Este等人[10]将支持向量机模型(SVMs)应用于三类已知数据集,在相同数据集上获得了平均95%以上的精度,比贝叶斯方法和其他方法的最佳性能高出2.3%。Finamore等人[11]进一步提出了有效载荷的统计特征作为特征,并利用支持向量机进行流量分类。Nguyen等人[12]用一组子流训练ML模型,研究子流选择的各种策略。当流量流与双向流量流混合时,模型的精度将得到保持。Li等人[13]提出了一种启发式规则与REPTree模型相结合的P2P流量分类方法。[14]利logistic回归模型对流进行非凸多任务特征选择分类。他们试过Capped学习作为正则化子的流的特征。Peng等人[15]基于11个著名的有监督学习模型,验证5-7个包是早期流量分类的最佳包数。
      对于无监督方法,主要应用于基于聚类的方法。基于聚类的模型自动地将未标记的流量分组成一组簇。利用映射到不同应用程序的集群来训练新的流量模型。使用期望最大化模型对流量进行聚类,并手动将每个集群标记到应用程序中[16]。对k-means、DBSCAN和AutoClass模型进行了验证和总结,结果表明当聚类数量达到一定规模时,聚类方法得到了效果较好的聚类[17]。该方法自动从未识别的流量流中提取标志。但是,集群数量和应用程序数量之间的差异导致了硬映射。为了解决这个问题,Keralapura等人[18]介绍了一种用于P2P流量分类的两阶段自学习结构,该结构利用了流量的时间相关性,识别了P2P流量。Zhang等人[19]利用一个词包模型来表示具有统计特征的聚类内容。然后实现潜在语义分析,以有效负载内容为基础合并相似的集群。Wang等人[20]提出了一种考虑等价集约束和背景知识的约束聚类框架,并利用高斯混合密度对数据进行建模。
      在半监督学习方法中,学习模型利用未标记流来增强初始监督学习模型。在半监督学习模型中,选择有标记流和无标记流以获得更好的学习精度。应用一组标记流将集群映射到实际应用程序[21]。基于子空间聚类、证据积累和层次聚类的结合,提出了集成聚类方法来改进半监督聚类方法[22]。为了使未知流检测性能更好,Zhang等人扩展了以往的半监督工作,分别利用了复合分类模型、基于最近邻(NN)的模型和流袋模型中的相关信息[23]。
      不同类型的学习模式用不同的假设处理不同的问题。但上述方法都是基于iid假设的,在实际应用中往往不能满足。为了解决上述问题,提出了在训练数据和测试数据不完全相同的情况下进行迁移学习的方法。Dai和Yang[6]提出了迁移学习模型,并在UCI机器学习库的三个文本数据集和一个非文本数据集上验证了该模型的有效性。Pan和Yang[4]根据迁移学习的不同定义、源域与目标域、源任务与目标任务的不同条件,将迁移学习分为归纳迁移学习、导入迁移学习和无监督迁移学习三种类型。Lu等人[24]在调查报告中总结了几种迁移学习方法及其应用。近年来,迁移学习已成功地应用于计算机视觉、图像处理、生物学、自然语言处理和文本数据挖掘等领域。

    3. 问题表述

      流量分类的目的是将每个流映射到网络中的应用程序协议。传统的用于流量分类任务的机器学习方法实现了由从原始流量流中提取出来的训练集(Xtrain,Ytrain)={(x1,y1)(x2,y2)...(xn,yn)}(X_train, Y_train) = \{(x_1, y_1)(x_2, y_2)...(x_n, y_n)\}训练流量分类器。然后分类器识别测试数据集XtestX_{test}的实例。有一个共同的假设,XtrainX_{train}和X_{test}是从相同的特征空间和相同的分布下提取的。为了识别来自不同领域的新的流量数据,必须使用来自同一领域的数据对原始流量分类器进行重新训练。

    图1 迁移学习与传统学习方法的比较

      迁移学习不需要上述假设。迁移学习和传统的机器学习方法的比较如图1所示。

      给定一个或多个源域DsD_s和任务TsT_s,对应于一个或多个流量和流量分类任务的原始标记数据集,一个目标域DtD_t和任务TtT_t,对应于来自不同网络环境的新流量分类任务,迁移学习的目的是利用DsD_sTsT_s(DsDtorTsTtD_s \neq D_t \quad or \quad T_s \neq T_t )的知识,提高DtD_t中的目标预测函数hth_t的学习能力。如果标记训练数据TbT_b的个数不足以训练出满意的DtD_t学习模型,则引入标记DsD_s的训练数据TaT_a作为辅助数据训练DtD_t学习模型。虽然TaT_a已经过时,但它不应该被舍弃,因为标记流量数据很昂贵。在本研究中,我们以一个来源的DsD_s中的TaT_a和少量的DtD_t中的TbT_b作为训练数据T来训练一个学习模型,其中DsD_s中的知识被迁移。然后训练模型将新的流分类为测试数据。

    4. 方法

      TrAdaBoost是2007年由Dai等人[6]提出的,它是基于迁移学习思想的AdaBoost方法的一个改进版本。他们的实验使用了TaT_aTbT_b的一部分(TbTaT_b \leq T_a)作为训练数据,用TbT_b的另一部分作为测试数据。TradaPost通过更新样本权重来减少来自TaT_a的“坏”数据的权重,这对于DtD_t中的测试数据的识别是无用的。
      在AdaBoost训练的迭代过程中,如果样本分类不正确,模型在下一次迭代中通过增加样本的权重来更加关注样本。如果样品分类正确,它的权重就会减少。相比之下,在传统的训练中,如果DsD_s样本分类错误,它将与DtD_t中的数据不同,其权重将降低。在下一次迭代中,将减少样本的影响。如果DtD_t中的样本分类错误,其权重将增加。模型在下一次迭代中将更加关注样本。TradaPost的训练过程如图2所示。

    图2 TrAdaBoost训练过程

      在本研究中,TrAdaBoost作为一个学习框架解决多类网络流量分类问题。许多机器学习模型适合作为基本分类器。本研究以Maxent为基础分类器。基于TradaBoost的流量分类描述如下(算法1)。

    算法1 基于TrAdaBoost的流量分类算法

      在步骤1中,TaT_aTbT_b合并为训练数据集T。初始化样本W1W^1的权重(n是TaT_a的样本数,m是TbT_b的样本数)。在第二步中,βt\beta_t是每次迭代的模型因子,根据n和N初始化。在步骤3中,PtP^t是T的权重分布,由WtW^t决定。在每一次迭代中,首先以PtP^t的概率选取训练样本,因此PtP^t决定了当前迭代中样本权重对模型训练的影响。然后利用所选训练样本建立Maxent模型作为基本分类器。在分类假设hth_t:X->Y中,误差率εt\varepsilon_t是基于TbT_b及其权重WitW_i^t计算的。βt\beta_tWitW_i^t将根据新的错误率进行更新。之后,如果TaT_a中的样本分类错误,其权重将乘以βht(xi)c(xi)[0,1]\beta^{\mid h_t(x_i)-c(x_i)\mid}\in [0, 1],以根据Hedge(β)(\beta)理论减少样本权重[26,27]。如果TbT_b中的样本分类不正确,其权重将乘以βht(xi)c(xi)\beta^{-\mid h_t(x_i)-c(x_i)\mid},以增加样本权重。在下一次迭代中,新的基本分类器将更加关注这个样本。每次迭代后,TrAdaBoost的超平面变得更接近目标域DtD_t。目标域中的样本将得到更好的识别。模型权重ln(1/βt)ln(1/\beta_t)与每个基本分类器一起存储。最终的结果是基于每个分类器的权重之和。采用测试数据S评估TrAdaBoost的性能。

    5. 实验和分析

    5.1 数据集

      本文利用剑桥大学Nprobe项目的流量数据对该方法进行了性能评价。该数据集在流量分类中得到了广泛的应用,如Moore和Zuev的基于贝叶斯方法的实验[8]。他们提出了业务流的各种特征,包括包长度、包间隔和从业务流中获得的信息。整个数据集包含11个子集,例如条目1-10和条目12,如表1所示。条目1–10是在一天中的不同时间收集到的。条目12和其他10个数据集不相同,因为条目12是在12个月后收集的,并且网络环境发生了变化。数据集包括12个应用类,包括WWW, MAIL, FTP-CONTROL, FTP-PASV, FTP-DATA, P2P, DATABASE, SERVICES, ATTACK, MULTIMEDIA, INTERACTIVE
    and GAMES。由于不是所有类别都有足够的流量样本,所以在实验中选择了六个类别,包括WWW、MAIL、DATABASE、FTP-DATA、P2P、SERVICES。

    表1 剑桥大学数据集描述

      数据集中的每个样本包含248个特征和一个类标签。一些特征在提高分类精度方面起着最小甚至是负面的作用[8]。为了降低特征维数,采用一致性算法结合贪婪搜索策略进行特征选择。选择了9个特征,如表2所示。然后,将条目1-4的数据集合并为TaT_a,减少了WWW和EMAIL的数量,避免了不平衡数据的影响。条目12分为TbT_b和S。TaT_aTbT_b之比大于35。数据集应用于实验,如表3所示。

    表2 选择特征的描述
    表3 实验数据集描述

    5.2 实验设置

      利用两种基于Maxent的传统机器学习方法作为流量分类的比较方法。一个叫NoTL(TaT_a)。Maxent被实现用来训练DsD_sTaT_a的分类器。另一种叫做NoTL(Ta+TbT_a + T_b)。Maxent也被用来训练带有TaT_aTbT_b的分类器。
      用于评估流量分类有效性的主要指标是准确性,即正确分类的流量流占总流量流的百分比[28]。需要得到整个测试数据集和每个类的准确度。

    5.3 实验结果

      在传统的分类算法中,基本分类器的数目对分类性能至关重要。尝试不同数量的基本分类器,如图3所示。

    图3 随着基分类器数目的增加,性能的变化趋势

      当Maxent数为5时,TrAdaBoost的性能最好。之后,模型有时侯会降低性能,因为正如一些研究所指出的那样,它并不总是降低泛化误差。
      三种方法的结果如表4所示。TrAdaBoost在精度上优于比较方法。基于迁移学习模型,系统的整体性能大大提高。在表5中,分别显示了每个类的精度。在每一个类别中,迁移学习法也比比较学习法表现得更好。由于WWW和MAIL类有足够的数据训练分类器,NoTL(TaT_a)方法在训练数据集和测试数据集不完全相同的情况下,分别达到了86.8%和86.2%的准确率。在训练数据集中加入TbT_b,NoTL(Ta+TbT_a + T_b)方法的准确率分别为93.7%和94.6%。原因是TbT_b和测试数据集是相同的。这更好地描述了测试数据集的特性。不过,TradaBoost的表现要好得多。其他4个类的准确性提高更为明显,因为样本较少的类容易受到训练样本分布的影响。TradaBoost保留的训练样本在很大程度上有助于新的分类任务,无论样本是属于TaT_a还是TbT_b。此外,当TbT_b太少而无法训练出满意的分类器时,它将有用的知识从源域DsD_s转移到目标域DtD_t

    表4 测试集三种方法的准确度

    6. 结论和未来工作

      网络环境的变化导致基于传统机器学习模型的流量分类性能下降。在流量分类中,利用多类任务代价将源域的知识转移到目标域。采用Maxent模型作为基本分类器。在应用该方法的基础上,新的数据集达到了较高的分类精度。新数据集和大多数训练数据集不相同。
      在未来的研究中,我们将更多地致力于将迁移学习模型应用到分类问题中,例如,当源域和目标域具有不同的类标签时,如何进行分类。

    展开全文
  • 首先,基于数据挖掘工具WEKA中集成的机器学习算法,在扩大训练集的基础上对流统计特征进行筛选并搭建分类器模型。然后,利用JPcap库提出并设计边抓包边检测机制,实现VoIP流量快速识别。实验结果表明,该在线识别...
  • 目的:网络流量分类一直是学术界、产业界和网络监管部门共同关注的热点之一,是...随着网络流量的数据量和种类的大量增加,传统分类方法难以满足要求,基于机器学习的算法成为网络流量分类的研宄热点。针对机器学习...
  • 该项目利用软件定义网络和机器学习来自动捕获网络流量,从流量中提取相关特征,通过经过训练的模型进行分类,传达结果,并提供采取进一步行动的机制。 尽管该项目最有效地利用了现代SDN,但它的部分内容仍可以与...
  • 丁杰u 黄亮3庹宇鹏〃 桑亚飞u 张永铮1 1(中国科学院信息工程研究所北京100093) 2(中国科学院大学北京100049) 3 (国家计算机网络应急技术处理协调中心北京100029) ...关键词 流量分类载荷类型统计特征机器学习
  • 如何使用机器学习的算法对做好特征的网络流量进行异常识别? 用什么语言? 用什么工具或者软件? Weka简介  WEKA作为一个公开的数据挖掘工作平台,集合了大量能承担数据挖掘任务的机器学习算法,包括对数据进行...
  • 针对传统基于机器学习流量分类方法中特征选取环节的好坏会直接影响结果精度的问题,提出一种基于卷积神经网络的流量分类算法。首先,通过对数据进行归一化处理后映射成灰度图片作为卷积神经网络的输入数据,然后,...
  • 首先介绍了网络流量分析的不同层次及机器学习领域的...然后从网络流量的统计特征出发,重点介绍了机器学习中聚类和分类的方法在流量分类的应用和问题;最后基于聚类和分类在流量分类中的效用,指出了未来的研究趋势。
  • 近年来,利用机器学习方法处理P2P流量分类问题已成为流量识别领域的一个新兴研究方向。利用决策树中的C4.5算法和P2P流量的特征属性来构建决策树模型,进而完成P2P流量分类问题。实验结果表明,基于决策树模型的方法...
  • 3.统计特征/时序特征 + 机器学习 4.时空特征 + 深度学习 5.其他特征 +深度学习(待拓展) 第一种端口号解析的方法,是最早应用于流量解析的方法,但由于部分应用会使用不常见的端口号以及端口伪装等问题,准确...
  • 定义了网络通信中的用户行为并分析其特征,通过矢量量化技术结合主题模型方法从流量序列中提取行为状态特征,利用机器学习算法对状态特征建模,并按照用户行为的分类流量进行识别。实验结果显示按照行为分类能更加...
  • 目的:针对传统机器学习算法对于流量分类的瓶颈问题,提出基于一维卷积神经网络模型的应用程序流量分类算法。 数据集:ICSX VPN-nonVPN 特征:数据预处理工具“USTC-TK2016, 本文选择同文献[12]相同的前784 Byte,...
  • Python数据科学手册-第5章机器学习

    千次阅读 2018-11-27 17:26:24
    文章目录机器学习的分类Scikit-LearnScikit-Learn的数据表示Scikit-Learn的评估器API应用:手写数字探索超参数与模型验证模型验证选择最优模型学习曲线验证实践:网格搜索特征工程分类特征文本特征图像特征衍生特征...
  • 在目前的网络环境下,传统的方法存在一些实际问题,如动态端口和加密应用,因此采用基于流量统计特征机器学习( ML) 技术来进行流量分类识别。机器学习可以利用提供的流量数据进行集中自动搜索,并描述有用的结构...
  • 基于机器学习的智能终端用户行为分析研究,周勇帆,唐碧华,移动智能终端的网络数据流量特性在某种程度上可以反映用户的网络访问行为,进而能够体现用户自身的特征。在研究传统网络流量分类
  • 监督学习算法适用于有大量的正向样本,也有大量的负向样本,有足够的样本让算法去学习特征,且未来新出现的样本与训练样本分布一致。 以下是异常检测和监督学习相关算法的适用范围: 异常检测 信用卡诈骗 制造业...
  • 本文采用梯度方向直方图作为人头特征描述子,线性支撑向量机作为学习算法建立关于人头的线性目标分类模型。线性目标分类模型再结合多尺度检测窗口滑动搜索的机制将输入图像从原始空间映射到新的空间中,转换为分值...
  • 最后,采用更合理的正负样本和包括深度学习在内的多种机器学习方法确定最佳分类器和最优特征组合,以尽量确保对真实DNS流量的普适性。基于真实DNS流量的实验表明,Fast-flucos的召回率、精确率和ROC_AUC分别达到了0....
  • Feature analysis of encrypted malicious traffic 18年发表于ESWA的一篇论文 ...基于模型自适应和机器学习方法的加密恶意流量检测相关的论文。...这篇论文主要重点在于通过机器学习分类器来选择对应的特征属...
  • 在数据驱动的研究背景下,通过研究社交流量和网络流量的大量文献,本文采用相似相关性以及可提取特征等常用概念和共享网络安全目标的方法来分类网络主机与应用程序的网络流量和用户与Tweet的社交流量。因为网络和...
  • 统计特征是从应用程序网络流量中得出的,这些特征量进一步馈送到基于机器学习分类器中,以为移动应用程序的每个典型类别构建一个通用模型。 实验表明,具有相同功能的每个类别中的应用程序都表现出相似的网络行为...
  • 机器学习技术在僵尸网络检测领域具有广泛应用,但随着僵尸网络形态和命令控制机制逐渐变化,人工特征选取变得越来越困难。为此,提出基于深度学习的僵尸网络检测系统——BotCatcher,从时间和空间这 2 个维度自动化...

空空如也

空空如也

1 2 3
收藏数 43
精华内容 17
关键字:

机器学习流量分类特征