NetworkTraffic分类方法比较

更新时间:2024-01-08 作者:用户投稿原创标记本站原创 点赞:5259 浏览:18995

摘 要:准确的流量分类是网络管理的前提,比较分析了基于端口、基于数据包、基于主机行为、基于机器学习的四种流量分类方法的优缺点,展望了流量分类技术未来发展方向.

关 键 词:网络流量;分类方法;机器学习

中图分类号:TP393文献标识码:A文章编号:1009-3044(2013)33-7420-03

如何对各种纷繁复杂的网络应用进行识别对于网络管理和监控来说非常重要,从网络安全监控到网络计费,从QoS(QualityofService)到提供给用户长期有价值的预测信息等,从近期引起广泛争议的美国政府合法监听网络的“棱镜”项目,也说明流量分类可帮助ISP及时识别疑犯在网络任意给定位置使用了何种类型应用.

1基于端口号匹配方法

早期的网络流量分类方法基于传输层端口号,基于端口号的分类器检查每个数据包的端口号,然后根据国际互联网写作技巧成员管理局(IANA)公布的标准端口号和注册端口号列表来查找确定不同的应用类型.例如分类器要想知道怎么写作器端一个新的客户机/怎么写作器的TCP连接类型仅需查找TCP_SYN数据包(这是TCP协议在建立会话过程中三次握手的第一步),通过查找IANA注册端口号表中的TCP_SYN数据包的目的端口号从而推断出应用类型.UDP协议是无连接建立也没有连接状态保持的协议,它也使用类似的端口号匹配方法.

尽管端口号匹配法是最快和最简单的方法,但其存在缺陷.首先,有些应用并不在IANA注册其端口号.第二,有些应用并不使用它的默认端口号以规避操作系统对它的存取控制限制(例如在类似Unix系统中未被授权的用户运行HTTP怎么写作时将被强制禁用端口号80).第三,在一些情况下怎么写作器端口号将根据需要进行动态分配.例如RealVideo流允许采用动态协商怎么写作器端口号的方式来进行数据传送,在一开始使用默认的标准RealVideo控制端口号建立起来的连接中,怎么写作器的端口号可以通过动态协商而得到.另外,在一些环境下对IP层的信息加密也可能造成TCP_Header和UDP_Header模糊,因此分类器不可能知道其实际的端口号.

Moore等人[1]指出,若使用的IANA表,使用基于端口号的分类器准确率将低于70%.Karagiannis等人[2]指出大量的P2P应用使用随机端口传输数据,使得基于默认端口的流量识别方法难以准确标识P2P等新型网络应用.

2基于数据包检测方法

数据包检测方法[3]是通过解析应用层协议数据包载荷特征字符来区分不同的应用.这种方法曾被誉为最为准确的流量识别方法,目前仍为大多数商用系统所采用.但是这需要较高的计算复杂度和访问较多的数据包才能完成.例如,根据Moore等人研究,仅有少量特殊的应用可通过第一个数据包(有载荷数据)而被正确分类,而其他的应用则需更详细的检测,只能当检测到的载荷数据量达到1Kbyte时才能确定其应用类别.匹配特征值可通过公开出版的协议规范获得.


除了需要访问载荷数据,这种方法也不能处理载荷数据加密的应用.首先,面对应用协议的频繁更新、载荷加密技术的普及、新应用频出等状况,该方法的有效性已逐步降低.第二,维护特征库需耗费计算资源和计算时间,其适用范围有限.第三,采集和解析载荷记录受到侵犯用户隐私权等法律问题的约束.

3基于传输层行为模式方法

Karagiannis等人提出一种基于传输层行为的流量分类方法即BLINC[4](盲分类器),该方法利用不同网络应用在传输层连接模式的差异来划分网络流量,无需解析数据包载荷或知晓端口号,具有良好的可扩展性.其原理是通过描述网络主机在社会层、功能层和应用层三个层次的内在行为特性来识别主机的角色,进而对该主机的相关流量进行分类.(1)社会层面:获取一个主机与其他与之通讯的主机的数量.凭直觉,在这个层面将首先关注这台主机与其他主机交互的活跃性,其次识别与这台主机通信的节点.(2)功能层面:捕获主机的行为特征,分析其在网络中扮演角色是业务提供者还是业务接受者或两者兼有.例如若一台主机用一个端口与其他多台主机通信,那么这台主机在这个端口上应该是一个业务提供者角色.(3)应用层面:捕获特定主机的特定端口传输层之间的互动识别业务的发起方.

BLINC分类器主要优点之一在于它的可调性.分类条件的严格性可按测量目标的不同而上下浮动.条件标准可松可紧便于在分类完整性与准确性之间的不同平衡点上得到分类识别结果.然而行为模式方法利用了网络应用的行为属性,不仅极易受到网络环境的影响,而且随着网络应用的自身完善而逐步失效.例如,它依赖于每个主机产生的流是否包含了足够的行为信息,所以使用BLINC的最佳位置应是单宿主的边缘网络,只有在边缘网才能尽可能多地观察到主机行为信息.同样原因,它不适合骨干网络,骨干网仅能收集到很小一部分行为信息,另外路由的不对称性使得双向的流并不总是经过同一链路,往往会造成失去其中一个方向的流.因此这类方法的可用性仍然受到限制.

4基于机器学习方法

这种方法的基本思想是根据TCP/IP网络中应用层传输协议(WEB、P2P、DNS、TP、FTP等)对流进行分类.流的定义:按照五元组[6](源IP地址、源端口号、目标IP地址、目标端口号及IP协议)的定义,将网络流量的数据包(Packets)分成双向TCP或UDP流(Flow),抽取与协议和端口无关的流的特征(如报文长度,持续时间等),形成特征向量.用特征向量来表示流,以流的应用类型(WEB、FTP、STREAMING等)作为流的类别,通过上述处理获得基于机器学习方法训练所需的样本流.然后根据样本流的特征向量,用机器学习的方法构建分类器.最后用构建的分类器对未知的网络流量进行预测分类.

基于机器学习流量分类是近年的研究热点.其优点是不依赖匹配协议端口或解析协议内容来识别网络应用,因而不受动态端口、载荷特征加密甚至网络地址转换(NAT)的影响,其效率、灵活性以及可扩展性等,较之上述各种方法都有所突破,但也面临一些挑战,需要考虑以下问题:1)及时和持续地分类

一个分类器应尽可能使用能判断出类标识的最低限度的数据包数量,这样可减少缓存计算流特征数据包所需的内存空间.但是计算每条流最前的少量数据包是不够的,有些恶意攻击在流的整个生命周期内把流的前数据包伪装成正常的数据包,所以理想的分类器应能对每条流在其整个生命周期内持续进行分类判断.

2)流的单向与双向

一般事先检测定流是双向的,并且流统计特征的计算是在流的前向和反向被分开进行计算.由于很多应用(多媒体在线游戏或流媒体)在客户机-怎么写作器方向与怎么写作器-客户机方向展现了不同的流统计特性,因此分类器应该知道先前未知流的方向(哪一端是怎么写作器亦或哪一端是客户机),或者分类器识别目标应用不需要额外的流方向特征.

3)内存与处理器的有效利用.

分类器的效率还有赖于构建分类器系统所需的硬件(CPU时间与存储空间消耗),很难想像一个不考虑能在最短时间内训练建模并准确识别应用类别的分类器是有效率的.

4)可移植性与健壮性

可移植性是指分类器能适应不同的网络即它能部署到网络的各种不同位置而不失准确性,健壮性是指面对网络层的各种干扰,例如数据包丢失,流量整形,数据包碎片,抖动等,分类器应仍能提供稳定准确的的分类结果.另外健壮性也指一个分类器能否快速识别未知的新应用类别.

5基于流量分类方法的算法性能比较

将四种方法各选其现有的具有代表性的网络流量分类算法在若干重要评价指标等方面进行性能比较,结果如表1所示.该文基于端口号方法选择CoralReef,基于数据包负载检测方法选择L7-filter,基于传输层行为模式方法选择BLINC,基于机器学习算法选择.5[5].表1中适应性是指该算法能否适应不同的或正在变化的流特性.探测性是指该方法能否探测到新的或异常的网络应用.

6结束语

本文介绍了四种网络流量分类方法,并以典型算法为背景对四种分类方法的优缺点进行了比较分析.目前基于机器学习的网络流量分类方法比较灵活,是当前主流的研究手段,但是早期的基于端口的分类方法在特定的场合下也具有应用优势,不宜全盘否定,如何开发出能利用上述各类优点的组合分类方法是未来的方向.