原文:http://www.youhua.net.cn/html/tc_tech/dpi.htm
|
DPI技术
版权声明
本文截取自internet,不代表本公司见解。
什么是DPI技术
DPI是目前通过IP来识别和鉴定协议及应用(IP流)的最重要的技术。所谓“深度数据包检测”,“深度”是和标准数据包分析层次相比较而言的,
“标准数据包检测”仅分析IP包的4层以下的基础信息,包括源IP地址、目的IP地址、源端口、目的端口以及连接状态,这些信息保存在数据包的4层以下的
包头内。见图一。
仅使用标准的数据包检测来分析鉴定协议及应用是不够的,比如新型的P2P协议所使用的端口是变化的,同样一个应用可能分到多个数据包,重要的数据信息并没有在包头内体现。
DPI除了对4层以下的基础信息进行分析外,还增加了应用层分析,识别各种应用及其内容。这是通过对一系列数据包的包头以及负载中的签名特征(Signature)进行分析,同时DPI提供了对网络的利用率的分析,为网络性能优化提供了手段。见图二。
为了处理大量的互联网和网络应用及协议,一种系统化的鉴别手段必须被使
用。这个有点类似于法律中通过识别指纹来辨别每个人的情况,签名被用来鉴别应用和协议。在广义上,签名是被用来分析鉴别应用及协议的特征唯一性的手段,当
一个新的应用及协议被发明,同样会有相应的签名,这个签名会被识别和添加到签名数据库中。同样签名也是会不断变化的,比如
BitTorrent/eMule/Skype每升级一个新的版本,可能就会有新的签名,所以对签名的研究是需要持续不断的。如果应用在升级,而签名特征
库不被更新的话,应用及协议的识别会大打折扣。
由于大多数P2P文件共享应用都使用端口跳动技术或者盗用一些常用的协议端口进行传输,所以通过端口对它们进行识别显然是远远不够的。因此,所有
的数据包都必须在应用层面(Application
Layer)上进行检查,即对传输协议如TCP协议的负载(payload)部分进行检查,以判断它们是否符合代表某些应用代码的样本签名特征。在很多情
况下,对于某一种应用的识别需要检测它是否匹配多个代码样本的签名特征。
例如,在图三中,显示了一个数据包的结构,如果只是通过常见的HTTP应
用签名特征进行判断, 就很容易将它误判为一个Web
访问的应用。因为如果我们只观察第一个签名特征样本(例如HTTP/1.1),那么它看上去很像是一个标准的HTTP协议。然而通过对数据包的负载部分的
进一步深入考察,我们发现了该数据包具有的第二个代码样本签名特征,即KaZaA,这样我们就能够了解这个数据包的真实身份和目的。有时候,不同的代码样
本签名特征是分散在一次协议会话的多个数据包之中的。为了能够准确的对应用进行识别,就必须使用精密的第7层协议侦测系统对往来的数据包进行分析,从而实
现与应用代码样本匹配。
|