基于DPI技术的VoIP流量识别

时间:2022-07-04 12:38:26

基于DPI技术的VoIP流量识别

摘要:由于IP网络的开放性和自由性,VoIP接入技术的简单易行,在电信市场中存在着大量非法的VOIP业务,网络运营商对网络流量缺少有效的监管方案,结果是合法运营商的话务量流失,利润下降。该文重点研究了运用DPI技术检测VoIP流量的方法,深入分析了各种基于VoIP协议流行的应用软件,设计和实现了一个网络流量检测识别系统,能够满足对VoIP网络流量的识别和记录。

关键词:流量检测;DPI;VoIP

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2013)27-6094-05

随着互联网技术的快速发展,网络已经成为人们生活中不可分割的组成部分,通过网络人们的工作、生活都变得便捷,欣欣向荣的宽带业务,给运营商带来机遇的同时也带来了挑战。大量非法VOIP运营充斥着正规电信市场,导致合法运营商话务量流失,利润减少。造成这些结果的主要原因是运营商对网络流量缺少一个有效的技术监管方案,对网络上的流量没有进行有效的分析。技术的进步是由市场的需求推动的,在这种情况下,深度包检测技术(DPI)就随后产生了,DPI是一种基于应用层的流量检测和控制技术。

本文研究的目的就是提出一种基于深度包检测技术的网络流量识别方案,并在此基础上实现一个网络流量识别系统,该系统可以满足对网络中各种流量的识别和记录。

1 VoIP协议简介

自从1995年以色列的VocalTec公司开发出了世界上第一个可以实时通话的软件“Internet Phone”后,VoIP技术经过十几年的快速发展,这项技术已经得到了广泛的应用。在网络上出现了大量的VoIP软件,例如腾讯QQ、YY语音、Skype、MSN、KC网络电话、UUCall网络电话等。当前大部分VoIP软件的呼叫控制协议都遵循H.323协议和SIP协议。例如:SIP通话主要包括3个过程:终端注册过程、呼叫建立过程和呼叫释放过程。检测过程为,首先采集用户的流量,分析流量中的信令流,采集SIP发送方的呼叫建立信令信息和响应方的同意建立通话信令信息,就可以通过这些信令信息分析是否有用户在使用或者提供基于SIP协议的VoIP服务。采集呼叫释放的信令就可以知道用户是否已经结束通话。H.323协议的检测过程和SIP协议类似。主流的VoIP软件的通话的网络流量都可以通过这种方法被检测出来是否属于VoIP协议。但是,这种检测方法在现在的环境下已经不具有普遍性。为了逃避监管部门的监管,一些非法经营者经常会采取一些改变协议的方式来逃避管控,如改变标准通信端口、修改协议内容或制定私有协议等。这就使通过SIP协议和H.323协议的检测方法不能检测出非标准和私有协议的VoIP业务,这就需要通过系统抓包分析,分析出VoIP协议特征之后就可以实现对该标准协议的监测。现在DPI检测技术的出现可以实现对各种标准和非标准VoIP业务的检测。

2 VoIP流量检测技术

2.1 端口检测法

大多数早期的VoIP应用程序使用的都是固定端口号,比如:

1) RTSP服务器的缺省端口是554;

2) RTP/UDP/16384-32768;

3)H.323协议栈需使用的端口号:RAS/UDP/1719;H225.0/TCP/1720;H245/TCP/1800-1820;

这种检测方法需要在网络中收集数据流量并进行分组,然后检查报文的运输层首部信息,将端口信息和特定的协议的端口进行匹配。如果匹配上,就可以证明该分流量即为VoIP类流量,便可以按照识别的结果对VoIP流量进行管理控制。

这种检测方法的优点是简单和识别效率高,但是随着VoIP应用技术的快速发展,一些VoIP应用改变了端口信息,这种方法开始变得不再普遍适用,但是针对一些特殊的VoIP协议还存在一定的适用性。这就需要更具有普遍性的DPI检测技术。

2.2 基于深度报文的流量检测技术

随着计算机网络技术的发展,一种检测性能更加强大的检测技术DPI技术出现了。DPI全称为“Deep Packet Inspection”,称为“深度包检测”。所谓“深度”是和普通的报文分析层次相比较而言的,“普通报文检测"仅分析IP包的层4以下的内容,包括源地址、目的地址、源端口、目的端口以及协议类型,而DPI除了对前面的层次分析外,还增加了应用层分析,就是通过对应用流中的数据报文内容进行探测,从而确定数据报文的真正应用。DPI的识别技术可以分为以下几大类:

1) 基于“特征字"的识别技术

基于“特征字"的识别技术这是一种简单而又高效的网络流量检测技术。不同网络应用的协议都有独特的特征,这些特征一般被称为“特征字”。该检测技术就是通过模式匹配算法(Pattern-Matching)对数据流中数据负载部分的“特征字”进行匹配,然后识别出某种网络流量。只要通过对这些“特征字"信息的不断更新升级,该检测技术就会很方便有效地实现对各种协议(包括新出现协议的检测识别)的检测识别。

基于VoIP协议的应用软件有很多,而且也很优秀。每种应用层协议和软件都在应用层数据中有它标志性的特征,其中,有些特征是比较容易发现的,把各种应用层协议和软件已经发现并且验证的“特征字”用一定的格式集中统一放在一个文件当中,就形成了DPI特征库。表1是常见部分应用层协议的“特征字”信息。

2) 应用层网关识别技术

一些业务的控制流和业务流是分离的,业务流不包含任何有效的特征。在这种情况下,我们就应该采用应用层网关识别技术。应用层网关需要首先识别出控制流,并根据控制流的协议通过某种特定的应用层网关对其进行分析,从它的协议内容中识别出相对应的业务流。对于每一种协议,都需要有不一样的应用层网关对其进行解析。例如SIP、H.323协议都属于该种类型。SIP/H.323协议通过信令交互过程,协商从而得到其数据通道进行通信,通常是RTP格式封装的语音流。换句话说,仅仅检测RTP流并不能得出这条RTP流是属于哪种协议。只有通过检测SIP/H.323的协议交互,然后对其中的信令信息的通信特征进行分析,才能得出它完整的结果。

3) 行为模式识别技术

行为模式识别技术基于对终端已经执行的行为的分析,从而判断出用户正在执行的动作或者将要实施的动作。行为模式识别技术一般用于无法通过协议判断分析的业务的识别。例如:垃圾邮件(SPAM)业务流和普通的电子邮件(Email)业务流从电子邮件(Email)的内容上看是完全一致的,只有通过对用户行为的分析,才能较为准确的判断出是否为垃圾邮件,从而识别出SPAM业务。

(1)优点:检测准确率比基于端口和流量模式的方法高,端口的变化不会影响检测率。能够检测使用最广泛的应用,适合流量的精确检测。

(2) 缺点:无法识别新出现的和经过加密的应用,对无法识别的应用会出现漏判。协议分析和特征搜寻需要投入大量的人力及时间,难以获取加密协议的特征,特征的选择对检测性能有很大影响。系统检测模块需要不定期地进行更新和升级,查看应用层的内容会涉及到隐私的问题,对检测设备的处理能力要求较高。

3 DPI系统工作原理概述

3.1 基于VOIP的DPI系统设计

系统对经过网络分光/镜像的数据报文,拆包并标记头指针,然后将经过预处理的报文送到协议识别引擎进行匹配识别,最后返回识别结果。整个DPI系统的工作流程如图2所示。

第一步:对抓取的数据包进行分流,首先检查入口条件:入口条件通常包括关联表中的条件,数据包的长度,特征字,IP地址,端口号。如果符合条件则进入第二步,不符合条件则进入第三步进行识别处理。

第二步:如果满足上面的入口条件,就会进入与它相对应的协议识别方法中去,这些方法通常为代码识别,需要对报文当中一段特殊的代码进行一系列的特殊处理以及判定。例如应用层网关识别技术,在通过特征库的识别成信令流之后,就会需要交给与之对应的代码字段,通过使用正则表达式等匹配算法找出信令流的负载内容当中的交互的信息,然后将这个信息存入关联表当中,如果后续的流量符合这个关联表当中的内容,

就可以判定为所对应信令流命中的协议。

第三步:若没有命中入口条件,就需要通过与特征库当中的规则进行模式匹配处理,如果与之匹配成功,就需要检查此协议是否打开了怀疑功能,如果打开了怀疑功能,则就需要继续进行检查,否则返回识别的结果。如果没有命征库当中的规则,则需要继续检查这条流的下一个数据包,直到达到了系统能够检查的数据包个数的限度。若到最后都没有命中任何规则,则返回的结果为unknown。

从上面整个DPI系统对于如VoIP类数据报文的处理工作原理可以看出,整个系统中最为核心的一个组成部分就是其中的流量识别模块的设计。该部分的好坏直接影响整个DPI系统工作的效率。

3.2 流量识别模块

VOIP应用软件的流量识别是由DPI识别模块来实现的。该模块包含协议识别引擎程序和DPI特征库两部分。图1是基于DPI的流量识别系统工作原理图。

从上图中可以看出,网络流量经过处理后送入DPI识别模块,DPI模块将识别出的流量交给后续处理,DPI识别模块通过特征库升级系统并与远程升级服务器连接进行升级DPI特征库,并保持定期升级特征库。

具体的处理方式如下描述:

网络上的数据包进入预处理模块,每当一个网络报文通过流量识别模块,就会先将每一个报文放入内存当中进行排序,每次从缓存队列中取出报文进行分析。在流节点链表中查找是否有这个报文对应的流节点,若没有的话就为该报文创建一个流节点,如果有的话,就需要根据这个流节点的状态来决定该流是否需要继续进行识别。流节点的状态有OK,Continue和Unknown。若流节点的状态为OK或者Unknown,就需要释放这个报文所占用的资源,如果是Continue就把该报文放入等待处理的队列,然后送给协议识别引擎进行下一步的识别。需要被继续进行识别的数据报文传给协议识别引擎,协议引擎识别完后返回识别结果,如果能够匹配成功,则返回协议类型,释放这个报文所占用的空间并把该报文所在的流节点的状态改写为OK。若所属的数据流还需要继续进行识别,释放该报文所占的空间并且把该报文所属的流节点状态修改为Continue。如果判断报文所属的数据流已经确定为无法识别,则把对应的流节点状态写为Unknown,并且释放报文所占用的内存空间。

4 系统测试及结果分析

为了验证DPI系统对于VOIP类应用软件的监控和识别,该文通过设计一个基于DPI系统的拓扑网络结构如图3所示的实验,实验设备包括有模拟公司或者集体的内部网络用户网络,加载有DPI系统配置的设备处于内部网络与外部互联网之间。经过内部网络用户连接该DPI识别系统然后获取网上资源。

在通过网络流量监测网关上网的PC上分别用QQ、YY、MSN、Skype等VoIP软件进行通话,并且同时使用wireshark软件抓取网络流量包。然后把使用这些语音通话的网络流量包跑识别率。大部分常用VoIP应用软件的识别率都在85%以上,漏报率在5%以下,误报率很少。在某实验室里对几种常用的VoIP软件进行抓包跑识别率,经过测试统计,得出表2中的几种常用的VoIP网络应用软件的检测结果。

5 结束语

本文对运用DPI技术进行VoIP流量监测进行了深入的研究,在此基础上设计出一个流量监控系统,并对VoIP流量监测的准确性进行了验证。这个系统对VoIP流量的识别率达到85%以上,误报率很低。测试结果表明,该实现对VoIP流量的识别很有效果。这个系统可以对检测出正规和非法的VoIP流量,可以对非法的VoIP流量进行识别记录和管理,这对监管VoIP运营市场有很大的帮助,也有利于该市场的健康发展。

参考文献:

[1] Sen. S, Wang Jia. Analyzing Peer-to-Peer Traffic across Large Networks[C].IEEE/ACM Transactions on Net2 working. NJ: IEEE Press, 2004: 219-23.

[2] Elisa Bertino, Elena Ferran and Allna Squieeiarini, Trust Negotiations: Concepts, Systems, and Language[C].P27-34, July/August, 2004, IEEE.

[3] 韩耀明.基于DPI技术的VoIP流量检测系统的设计与实现[D].北京:北京邮电大学,2010.

[4] 米淑云.IP网络流量监控系统的研究与实现[D].北京:北京邮电大学,2009.

[5] 聂瑞华,黄伟强,吴仕毅,罗辉琼.基于DPI技术的校园网络带宽管理[J].计算机技术与发展,2009.

[6] 匡琳.P2P网络流量监控技术探讨[J].科技广场,2008.

[7] HalldorM. Sigurdsson, UlfurR. Halldorsson and Gerhard Hasslinger. Potentials and Challenges of Peer-to-Peer based Content Distribution[C]. Telematics and hlformatics, 24(2), November, 2007.

[8] P.Resniek, R.Zeekhauser, Etal. Reputations systems[J]. Communications of the ACM,2000, 43(12).

上一篇:一种基于组件的无线传感器网络网关设计 下一篇:基于C/S和B/S构架的冷库温度监测系统