基于DPI的流媒体流量监控系统的分析与设计
2014-09-18曾传璜陈景忠
曾传璜,陈景忠
(江西理工大学信息工程学院,江西赣州 341000)
随着互联网技术突飞猛进的发展,网络结构从传统的非对称C/S,B/S模式,逐渐转向 P2P结构的应用模型,相对于传统的C/S模式,P2P对等网络突破了它的局限性,其充分利用了网络中的闲置资源,分布式化地来进行任务与计算,极大提高了网络的应用效率,同时也方便了广大网络用户获取和分享各种网络资源。例如,以PPTV、PPStream、QQLIVE等为代表的P2P流媒体应用程序就为众多网络用户带来了丰富多彩的网络电视体验,提供了许多精彩的影视、直播节目,极大方便了人们的生活。然而,正是因为流媒体应用被人们广泛使用,其在给用户带来速度体验的同时,也引发了各种版权、网络安全和带宽消耗等问题,怎样通过有效的技术手段,迅速、准确地识别出流媒体应用流,管理和控制各种流媒体业务流量,区分不同服务,做出相应的网络策略调整,提供不同质量保障,满足用户的业务需求成为当前网络运营商面临的挑战之一。本文便是针对这些问题所提出的一套基于DPI的流媒体流量监控系统。
1 系统总体架构设计
本系统主要包含3个模块,分别为特征库识别模块、策略配置模块、业务流量控制模块。该系统架构图如图1所示。
图1 流量监控系统架构图
从图1系统架构图可以看出,网络用户所请求的数据流需先通过预先提取的特征库模块进行匹配识别,以检测特征库内是否有与用户请求数据特征相匹配的协议。随后该模块再将识别结果传递至策略配置模块,然后策略配置模块根据识别结果查询自身策略库是否有相应的协议策略,若存在相应的策略则将查询结果传递至业务流量控制模块,控制模块则根据用户控制需求下发相应的控制策略,从而达到用户所预期的放行、限流或阻断效果[1]。若控制模块未下发任何策略,则数据流相当于沿着图1虚线箭头直接传输至流出口。
2 三大模块的分析与设计
2.1 特征库识别模块
本模块所需解决问题是如何准确识别出网络中各种协议的流量,并且根据用户进行网络行为时所产生的网络流量大小统计出实时占有百分比,从而实现对用户网络行为的监控。目前业内最为流行的流量检测技术[2]主要有两种:一是以DPI(Deep Packet Inspection)深度包检测技术为代表的特征字检测方法;另一种是以DFI(Deep Flow Inspection)深度流检测技术为代表的基于数据流特征的检测方法。表1为它们优缺点对比,根据本系统对于精确到具体应用的严格要求,通过对比可知DPI技术更加符合本系统的需求。
表1 DPI与DFI优缺点对比
2.1.1 DPI深度包检测技术
DPI从大方向上是属于基于报文内容的一种流量识别方法。所谓报文内容主要包含了报文长度、固定端口号、固定IP、应用层载荷数据特征,之所以称之为“深度”是相对于传统流量检测技术而言。传统流量检测技术仅从数据网络层和传输层报文头获得基本信息,包括源/目的IP地址、端口号、TCP/UDP连接状态、协议号等,但随着动态端口、HTTP隧道等伪装技术的不断发展,此类检测技术已经很难适应当今网络流量管理需求。DPI技术通过提取对等网络数据流应用层的数据,分析其所负载的协议特征来判断其是否属于P2P流媒体流量,进而确定其具体属于哪一种应用,如图2所示。该技术需要首先收集各种应用运行时所产生的数据流量在应用层负载特征(本文利用Wireshark抓包获取相关应用数据流量),再将这些特征按照哈希表结构组成协议特征库,当进行报文检测时将深度扫描数据包应用层信息,提取其协议特征并与特征库中的特征串进行模式匹配,若匹配成功,则识别为对应的程序应用。
图2 DPI深度检测
2.1.2 模块实现
当用户网络数据流量到达图1所示特征库识别模块时,该模块立即对数据报文进行遍历解析报文,通过Push-Queue操作压入数据包队列,再通过PopQueue操作将数据包送至引擎进行识别。数据到达引擎后,首先根据一些知名服务端口初步对流量进行协议判定,并将结果记录,在后继引擎识别中优先对所判定协议进行匹配。若端口信息库未匹配到相应端口,特征库识别模块则直接进行引擎识别[3-4]。报文在传送至引擎识别之前,会先进行包头解析处理,实际到达引擎的是如下所示的结构体:
特征库识别模块经过初步的端口识别之后,随即进行该模块最核心的部分:DPI识别。DPI识别中的协议特征库是采用哈希表的结构来存储所有协议特征,同时预设两个接口,其中一个接口用于识别时与解析引擎进行交互匹配,另外一个接口则提供一个存储所有应用名的全局数组给策略配置模块使用。DPI识别流程如图3所示。
图3 DPI识别流程图
2.2 策略配置模块
本节主要阐述策略配置模块的实现过程。本模块较为简单,主要包含特征库识别模块所提供的存储应用名全局数组以及策略信息库。其中全局数组为用户提供了查询应用名的友好界面,策略信息库则根据用户查询结果提供相应的一个或多个配置策略,用户根据需求选择下发相应策略。同时,下发策略信息将传递至流量控制模块,使得控制模块发出相应的干扰控制报文。
2.3 业务流量控制模块
所谓流量控制[5],顾名思义,是一种对特定网络流量进行速率限制或完全阻断的技术,控制的前提是先完成对具体协议应用的识别,其精确度也取决于识别的精确度,可知本模块高度依赖于前面的特征库识别模块。本文系统选用旁路干扰流量控制来作为本模块实现的核心技术。
2.3.1 旁路干扰流量控制
旁路干扰流量控制主要利用数据包伪装技术将伪装的干扰数据包发送至正在通信的TCP,UDP连接中,降低通信的数据传输速率或直接阻断通信连接从而达到控制流量的目的。根据P2P数据传输所采取的方式,旁路干扰流量控制分为以下几种方法:
1)TCP降速:通过伪造并发送特殊sequence报文来减小TCP的滑动窗口值。
2)TCP阻断:通过伪造并发送TCP RST报文来阻断TCP连接。
3)UDP降速:通过伪造并发送P2P应用层特殊控制命令方式来降低UDP连接传输速率
4)UDP阻断:通过伪造并发送P2P应用层特殊控制命令方式来阻断UDP连接。
其工作方式如图4所示。
图4 旁路干扰流量控制工作方式
2.3.2 模块实现
由于本系统采用的是旁路干扰流量控制方式,故控制模块主要功能是根据用户下发策略产生相应的控制报文,从而达到实现对用户网络流量的控制[6]。该模块主要包含3部分:
1)策略接收器部分,用于接收策略配置模块所传递的策略信息,并发出执行命令至后两部分;
2)报文缓存器部分,用于缓存发送控制报文所需要的报文内容,从而为后一部分提供支持;
3)控制报文发送器部分,用于根据策略接收器所接收策略发送控制报文,同时向网络推送相关信息。
业务流量控制模块的流程如图5所示。
图5 业务流量控制流程图
3 本系统实现与性能测试分析
3.1 实验环境及拓扑图
为实现本系统功能并验证其性能,实验环境中配备了24口华为交换机1台,搭载Linux系统并导入系统各模块(特征库识别、流量控制等模块)服务器1台,PC客户端主机若干台,本系统的测试拓扑图如图6所示。
如图6所示,串联好各设备之后先在Switch交换机上配置一个10网段的Vlan、PC客户端、Linux服务器都连接在此Vlan中,同时将PC客户端的IP分别配置为10.4.0.X,网关配置为Linux服务器的网关:10.4.0.81,使得PC客户端访问网络时流量必须通过Linux服务器。
图6 本系统的测试拓扑图
3.2 本系统功能实现及性能分析
3.2.1 流媒体流量识别准确度分析
本系统主要功能是为实现对流媒体流量的监控,其识别准确率分为识别率和误报率,根据需求本系统识别率越高系统性能越强,且不允许存在误报率。为验证本系统识别准确度,分别测试几种常用流媒体客户端或视频网站,其识别结果如表2所示。从表中可以看出,这些常用流媒体客户端或网站识别率均在90%以上,且无误报,可知系统识别性能能达到用户需求。
表2 流媒体应用识别结果
3.2.2 流媒体流量控制效果分析
为验证本系统的控制效果,以PPStream客户端为例,验证其控制性能。由表2可知PPStream客户端流量识别为PPStream协议,因此,为达到对其限流或阻断效果,测试时应下发PPStream策略。本系统验证阻断效果时采用了下发PPStream策略,如图7所示。
图7 策略配置图(截图)
下发策略客户端阻断效果如图8所示。可知下行速度已降至0,点播视频无法继续缓冲播放。
综上可知,本系统对于流媒体应用的识别与控制均能达到较好的效果,完全能满足用户的需求。
图8 阻断效果图(截图)
4 结束语
本文提出了一种基于DPI的流媒体流量监控系统。该系统结合DPI应用背景,主要利用Wireshark截取PPTV、PPStream、QQLIVE等流媒体应用实时在线时的数据报文,通过对数据流的分析,提取相关应用的协议特征,整合成特征库导入识别引擎,从而有效地实现了对于流媒体应用的识别控制。目前,该系统已成熟运用在市场上,充分体现了其应用领域的广泛性。
:
[1]米淑云.IP网络流量监控系统的设计与实现[D].北京:北京邮电大学,2009.
[2]鲁刚,张宏莉,叶麟.P2P流量识别[J].软件学报,2011,22(6):1281-1298.
[3]王卫东.基于DFI和DPI技术的异常流量监控[J].网络安全技术与应用,2009(1):4-11.
[4]SEN S,WANG J.Analyzing peer-to-peer traffic across large net-works[J].IEEE/ACM Trans.Networks,2004,12(2):219-232.
[5]任丰原,林闯,刘卫东.IP网络中的拥塞控制[J].计算机学报,2003(9):1024-1034.
[6]THOMAS K,ANDRE B,MICHALIS F,et al.Transport layer identification of P2P traffic[C]//Proc.2004 ACM SIGCOMM Internet Measurement Conference.[S.l.]:ACM Press,2004:121-134.