记录阅读的文献,摘出供之后参考的重要内容。
《网络流量分类研究进展与展望》 2012 熊刚,孟姣,曹自刚,王勇,郭莉,方滨兴.
- 重要的流量分类基本概念与评价指标
(1) Packet-level的流量分类:主要关注数据包 (packet) 的特征及其到达过程, 如数据包大小分布、数据包到达时间间隔的分布等;
(2) Flow-level的流量分类:主要关注流 (flow) 的特征及其到达过程, 可以为一个TCP连接或者一个UDP流。其中, 流通常指一个由源IP地址、源端口、目的IP地址、目的端口、应用协议组成的五元组;
(3) Stream-level的流量分类:主要关注主机对及它们之间的应用流量, 通常指一个由源IP地址、目的IP地址、应用协议组成的三元组,适用于在一个更粗粒度上研究骨干网的长期流量统计特性。
(4)召回率 (recall) :recall=TP/ (TP+FN) , 表示类别A中被正确预测的样本所占比例。
(5)精度 (precision) :precision=TP/ (TP+FP) , 表示在所有被预测为类别A的样本中, 真正属于类别A的样本所占比例。
(6)准确率 (accuracy) :accuracy= (TP+TN) / (TP+TN+FP+FN) , 表示被分类模型正确预测的样本数在总样本中所占比例。 - 流量分类的方法
(1)基于端口号的方法
将熟知的端口号(IANA指定)进行映
射来识别不同的应用类型。然而,它具有一定限制。例如一些
应用可能没有在IANA注册端口号,或者使用熟知端口号以外的端口。尤其是随着P2P应用的出现,它采用动态分配端口的技术,使通过端口号映射的方法检测应用类型受到了阻碍。此外,对于IP层载荷的加密也使得无法获取端口号,致使该方法无法实施。
(2)基于有效载荷的方法
该方法通过分析包的有效负载是否包含已知应用的特殊签名进行流分类,具有较高的准确性。基于有效负载的分类方法虽然避免了过分依赖端口号所带来的问题,但其自身也存在一定的限制:它只能识别那些已知的非加密流量,而无法分类其他未知流量;它的流量识别过程更加复杂,并需要对应用协议语义的大规模信息保持更新,需要较高的处理和存储能力;此外,这种方法无法应用于私有协议或加密流量,而且直接分析应用层的内容会带来隐私侵犯和安全性等问题。
(3)基于主机行为的方法
该方法通过分析主机在传输层的行为模式来进行流量分类,主要具有以下三个特点:
- 无需解读数据包的负载,因而不会涉及隐私侵犯的问题;
- 不需要知道与端口号相关的信息,因而不会被其误导;
- 只需要在路由器上就能够获取到的NetFlow信息,因而不需要额外的设备开销。
虽然这种基于主机行为的流分类方法在一定程度
上改善了基于端口和负载方法存在的问题,但其自身
也存在一定的限制: - 它无法识别一些特定应用的子类型,例如,它可以识别出P2P类型的流量,但却无法进一步识别是哪种P2P应用产生的流量;
- 该方法依赖于数据包首部中各个域之间的关系,因此当传输层首部被加密时,该方法无法使用;
- 当使用网络地址转换(NAT)时,只能通过服务器使用的不同端口号来区分,对分类准确率具有一定的影响。
(4)基于机器学习的方法
目前,用于流量分类的机器学习方法主要包括无监督方法和有监督方法,此外还有将这两种方法相结合而产生的半监督方法。
无监督机器学习方法
无监督机器学习方法即聚类方法,它使用内在的启发式来发现数据中存在的簇。同一个簇中的对象彼此相似,不同簇中的对象彼此相异。该方法通过发现和标记数据集中的簇来构造分类器,分类过程主要包括两部分,即评估一个对象与哪个簇具有更大的相似性,以及标记对象所属簇的类别。
有监督机器学期方法
有监督机器学习方法即分类方法,主要根据已标记样本的特点构造分类规则或分类器,将未知类别的样本映射到给定类别中的一个。机器学习过程的输入为一些已经分好类的样本实体的集合,输出为通过这些样本产生的一个分类模型。
有监督机器学习的工作过程如图所示,它主要包括两个过程:
(1)训练过程:根据提供的训练数据集构造一个分类模型。
(2)分类过程:利用训练过程中产生的分类模型对未知类别的样本进行分类。
半监督机器学习方法
该方法是有监督和无监督两种方法的结合。半监督机器学习方法的训练集由已标记样本和未标记样本两部分组成。首先,通过聚类算法将训练集分成不同的簇,然后通过被标记的流实现簇与类别之间的映射,那些不包含任何标记流的簇就被视为未知的新应用类型。半监督学习方法只需利用少量标注样本和大量未标注样本即可实现分类,可以有效减少标注代价,提高机器学习的性能,但它对于有噪声干扰样本数据的分类效果并不理想。
流量分类方法的比较
- 流量分类面临的挑战与技术手段
(1)高速网络环境中的实时分类
高速网络环境的流量特征与接入网环境存在较大差异,且其吞吐量较高(单光纤可接近10Gbps),这就对流量分类技术提出了更高的要求,即不仅要保证较高的识别准确率,而且要减少分类需要的代价,及早进行分类判定(如数据流只流经几个包就能得出分类结果),尽可能提高分类速度和性能。基于主机行为的分类方法虽然在分类效果方面存在一定局限,但它消耗资源较少,并且识别的准确率也要优于基于端口号的方法,因此很适合应用于高速网络环境下。
(2)加密流量分类
传统的基于熟知端口号的流分类方法在大多应用端口随机可变和端口共用情况下已经失效,而基于有效负载的流分类方法对加密流量也束手无策,并且存在隐私侵犯的问题,耗费资源较大。加密流量分类大多数研究都采用了**基于流特征的统计识别方法。**目前研究的加密流量主要包括四类典型流量:SSH隧道、IPSEC隧道、SSL,以及P2P的加密流量。其中,对于SSH的研究较多,主要侧重于对SSH隧道中的应用进行有效的分类识别,使用的方法基本都是基于流特征的识别,主要使用机器学习的方法。目前的主要研究思路主要集中在各种行为特征提取及统计分析的方法上。
(3)精细化流量分类
精细化流分类是一种新的分类思想,指在细粒度的层次上对网络流量进行分类,比如对某个特定协议上承载的应用类型进行分类,或者对某个特定应用中的不同功能模块进行分类。这种精细化的流分类思想可以帮助研究者更好地分析网络流量的组成,了解用户行为,以便提供更好的网络服务质量。
(4)协议动态变化时的流量分类
从流量分类在信息安全及网络管理的总体技术架构中所处的位置看,流量分类的结果必然伴随着相关网络管理手段的实施。如某些电信运营商可能会为防止网络流量被识别而频繁发布新版本,且不断调整其网络流量的外显特征,在此情况下,原来的流量分类方法可能失效。而针对网络协议动态变化时的流量分类技术的研究还未有效展开。