一、DPI技术说明
(一)DPI简介
DPI 全称为“Deep Packet Inspection”,称为“深度包检测”。所谓“深度”是和普通的报文分析层次相比较而言的,传统的流量和带宽管理是基于OSI L2-L4层,通过IP包头的五元组(包括源地址、目的地址、源端口、目的端口以及协议类型)信息进行分析,通常我们称此为“普通报文检测”。
“普通报文检测”仅分析IP包的层4 以下的内容,包括源地址、目的地址、源端口、目的端口以及协议类型;而DPI 除了对前面的层次分析外,还增加了应用层分析,识别各种应用及其内容,基本概念如下图所示:
(二)DPI技术原理
DPI 的技术关键是高效的识别出网络上的各种应用。普通报文检测是通过端口号来识别应用类型的。如检测到端口号为80时,则认为该应用代表着普通上网应用。而当前网络上的一些非法应用会采用隐藏或假冒端口号的方式躲避检测和监管,造成仿冒合法报文的数据流侵蚀着网络(例如P2P下载软件大多采用动态协商端口机制),此时采用L2-L4层的传统检测方法就无能为力了。
为了识别诸如基于开放端口、随机端口甚至采用加密方式等进行传输的应用类型,DPI、DFI技术应运而生。DPI技术在分析包头的基础上,增加了对应用层的分析,是一种基于应用层的流量检测和控制技术。DPI 技术就是通过对应用流中的数据报文内容进行探测,从而确定数据报文的真正应用。虽然非法应用可以隐藏端口号,但目前较难以隐藏应用层的协议特征。当IP数据包、TCP或UDP数据流经过基于DPI技术的流量管理系统时,该系统通过深入读取IP包载荷的内容来对OSI 7层协议中的应用层信息进行重组,从而得到整个应用程序的内容,然后按照系统定义的管理策略对流量进行整形操作。
(三)DPI识别技术分类
(1)基于“特征字”的识别技术
不同的应用通常依赖于不同的协议,而不同的协议都有其特殊的指纹,这些指纹可能是特定的端口、特定的字符串或者特定的Bit 序列。基于“特征字”的识别技术通过对业务流中特定数据报文中的“指纹”信息的检测以确定业务流承载的应用。
根据具体检测方式的不同,基于“特征字”的识别技术又可以被分为固定位置特征字匹配、变动位置的特征匹配、状态特征匹配三种技术。
通过对“指纹”信息的升级,基于特征的识别技术可以很方便的进行功能扩展,实现对新协议的检测。如:Bittorrent 协议的识别,通过反向工程的方法对其对等协议进行分析,所谓对等协议指的是peer与peer之间交换信息的协议。对等协议由一个握手开始,后面是循环的消息流,每个消息的前面,都有一个数字来表示消息的长度。在其握手过程中,首先是先发送19,跟着是字符串“BitTorrent protocol”。那么“19BitTorrent Protocol”就是Bittorrent的“特征字”。
(2)应用层网关识别技术
某些业务的控制流和业务流是分离的,业务流没有任何特征。这种情况下,我们就需要采用应用层网关识别技术。
应用层网关需要先识别出控制流,并根据控制流的协议通过特定的应用层网关对其进行解析,从协议内容中识别出相应的业务流。对于每一个协议,需要有不同的应用层网关对其进行分析。如SIP、H323协议都属于这种类型。SIP/H323通过信令交互过程,协商得到其数据通道,一般是RTP格式封装的语音流。也就是说,纯粹检测RTP流并不能得出这条RTP流是那通过那种协议建立的。只有通过检测SIP/H323的协议交互,才能得到其完整的分析。
(3)行为模式识别技术
行为模式识别技术基于对终端已经实施的行为的分析,判断出用户正在进行的动作或者即将实施的动作。行为模式识别技术通常用于无法根据协议判断的业务的识别。例如:SPAM(垃圾邮件)业务流和普通的Email业务流从Email的内容上看是完全一致的,只有通过对用户行为的分析,才能够准确的识别出SPAM业务。
以上三种识别技术分别用于不同类型协议的识别,无法相互替代。
(四)DPI 技术应用
利用DPI技术在IP网络中部署DPI系统,可实现网络运营中的业务识别、业务控制、业务统计三大功能。
(1)业务识别
一般而言,对于业务识别有两种方法:一种是对运营商开通的合法业务,另外一种是运营商需要进行监管的业务。
前者可以通过业务流的五元组来标识,如VOD业务,其业务流的地址是属于VOD服务器网段的地址,其端口是一个固定的端口。系统一般采用ACL的方式,识别出该类业务。
后者需要使用DPI技术,通过前述的业务识别方法,通过对IP数据包的内容进行分析,通过特征字的查找或者业务的行为统计,得到业务流的类型。
(2)业务控制
通过DPI 技术识别出各类业务流之后,根据网络配置的组合条件,如用户、时间、带宽、历史流量等,对业务流进行控制。控制方法包括:正常转发、阻塞、限制带宽、整形、重标记优先级等。
为了便于业务的运营,业务控制策略一般集中配置在策略服务器中,用户上线后动态下发。
(3)业务统计
DPI 的业务统计功能是为了直观的统计网络的业务流量分布和用户的各种业务使用情况,从而更好的发现促进业务发展和影响网络正常运营的因素,为网络和业务优化提供依据。如:发掘对用户有吸引力的业务、验证业务提供水平是否达到了用户的服务等级协议SLA、统计分析出网络中的攻击流量占多少比例、多少用户正在使用某种游戏业务、哪几种业务最消耗网络的带宽和哪些用户使用了非法VOIP等等。
(五)DPI 技术发展
可以看出,DPI的检测技术和网络上非正常应用的反检测是矛和盾的关系。前面谈到的DPI技术不是静止不变的,随着检测技术的发展,非正常应用的隐藏技术也在演进,如对数据部分加密、隐藏特征字和通过隧道技术躲避检测等等。DPI 技术在发展中将不断调整上述的检测方法,从而达到比较高的检测精度。
总之,DPI 技术将逐渐在安全、业务控制等方面广泛应用,为运营商精细控制和运营网络提供一种利器。
二、DFI技术说明
与DPI进行应用层的载荷匹配不同,DFI(Deep/Dynamic Flow Inspection,深度/动态流检测)采用的是一种基于流量行为的应用识别技术,即不同的应用类型体现在会话连接或数据流上的状态各有不同。
例如,网上IP语音流量体现在流状态上的特征就非常明显:RTP流的包长相对固定,一般在130~220byte,连接速率较低,为20~84kbit/s,同时会话持续时间也相对较长;而基于P2P下载应用的流量模型的特点为平均包长都在450byte以上、下载时间长、连接速率高、首选传输层协议为TCP等。DFI技术正是基于这一系列流量的行为特征,建立流量特征模型,通过分析会话连接流的包长、连接速率、传输字节量、包与包之间的间隔等信息来与流量模型对比,从而实现鉴别应用类型。
三、DFI技术与DPI技术比较
DFI与DPI两种技术的设计基本目标都是为了实现业务识别,但是两者在实现的着眼点和技术细节方面还是存在着较大区别的。从两种技术的对比情况看,两者互有优势,也都有短处:DPI技术适用于需要精细和准确识别、精细管理的环境;而DFI技术适用于需要高效识别、粗放管理的环境。
从处理速度来看: DFI处理速度相对快,而采用DPI技术由于要逐包进行拆包操作,并与后台数据库进行匹配对比,处理速度会慢些。由于采用DFI技术进行流量分析仅需将流量特征与后台流量模型比较即可,因此,与目前多数基于DPI的带宽管理系统的处理能力仅为线速1Gbit/s相比,基于DFI的系统可以达到线速10Gbit/s,完全可以满足企业网络流量管理的需求。
从维护成本来看: DFI维护成本相对较低,而基于DPI技术的带宽管理系统总是滞后新应用,需要紧跟新协议和新型应用的产生而不断升级后台应用数据库,否则就不能有效识别、管理新技术下的带宽,影响模式匹配效率;而基于DFI技术的系统在管理维护上的工作量要少于DPI系统,因为同一类型的新应用与旧应用的流量特征不会出现大的变化,因此不需要频繁升级流量行为模型。
从识别准确率来看: 两种技术各有所长。由于DPI采用逐包分析、模式匹配技术,因此,可以对流量中的具体应用类型和协议做到比较准确的识别;而DFI仅对流量行为分析,因此只能对应用类型进行笼统分类,如对满足P2P流量模型的应用统一识别为P2P流量,对符合网络语音流量模型的类型统一归类为VoIP流量,但是无法判断该流量是否采用H.323或其他协议。如果数据包是经过加密传输的,采用DPI方式的流控技术则不能识别其具体应用,而DFI方式的流控技术不受影响,因为应用流的状态行为特征不会因加密而根本改变。