null
Deep Packet Inspection技术简介
Deep Packet Inspection技术简介
2011.10.20目 录目 录1、什么是DPI技术
2、与普通报文检测的区别
3、DPI识别技术
4、DPI技术的应用
5、DPI技术的局限性
6、我关心的问题1.什么是DPI技术1.什么是DPI技术DPI(deep packet inspection)
DPI技术,即DPI深度包检测技术是一种基于应用层的流量检测和控制技术
当IP数据包、TCP或UDP数据流通过基于DPI技术的带宽管理系统时,该系统通过深入读取IP包载荷的内容来对ISO七层
中的应用层信息进行重组,从而得到整个应用程序的内容,然后按照系统定义的管理策略对流量进行整形操作。2、与普通报文检测的区别2、与普通报文检测的区别普通报文检测仅分析IP包的层4以下的内容,包括源地址、目的地址、源端口、目的端口以及协议类型。
DPI 除了对前面的层次分析外,还增加了应用层分析,识别各种应用及其内容。3、DPI识别技术3、DPI识别技术基于特征字的识别技术,通过识别数据报文中的指纹信息来确定业务所承载的应用。根据具体检测方式的不同,基于特征字的识别技术又可细分为固定特征位置匹配、变动特征位置匹配和状态特征字匹配三种分支技术。
通过对指纹信息的升级,基于特征的识别技术可以很方便的进行功能扩展,实现对新协议的检测。3、DPI识别技术3、DPI识别技术正则
达式(Regular Expression)
A regular expression describes a set of strings without enumerating them explicitly.
正则表达式描述了一种字符串匹配的模式,可以用来检测一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。3、DPI识别技术3、DPI识别技术基于启发式的字符串匹配算法
BM算法、WM算法
基于过滤器的字符串匹配算法
Bloom filter
基于状态机的字符串匹配算法
AC、DFA、NFA
专用硬件优化匹配算法
3、DPI识别技术3、DPI识别技术Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。
在判断一个元素是否属于某个集合时,有可能会把不属于这个集合的元素误认为属于这个集合(false positive)。
Bloom Filter通过极少的错误换取了存储空间的极大节省,不适合“零错误”的应用场合。
3、DPI识别技术3、DPI识别技术初始状态时,Bloom Filter是一个包含m位的位数组,每一位都置为0。
为了表达S={x1, x2,…,xn}这样一个n个元素的集合,Bloom Filter使用k个相互独立的哈希函数(Hash Function),它们分别将集合中的每个元素映射到{1,…,m}的范围中。对任意一个元素x,第i个哈希函数映射的位置hi(x)就会被置为1(1≤i≤k)。3、DPI识别技术3、DPI识别技术在判断y是否属于这个集合时,我们对y应用k次哈希函数,如果所有hi(y)的位置都是1(1≤i≤k),那么我们就认为y是集合中的元素,否则就认为y不是集合中的元素。下图中y1就不是集合中的元素。y2或者属于这个集合,或者刚好是一个false positive。
3、DPI识别技术3、DPI识别技术错误率估计
假设kn