CN102347949B - 基于dpi的应用协议分析方法 - Google Patents

基于dpi的应用协议分析方法 Download PDF

Info

Publication number
CN102347949B
CN102347949B CN201110289974.2A CN201110289974A CN102347949B CN 102347949 B CN102347949 B CN 102347949B CN 201110289974 A CN201110289974 A CN 201110289974A CN 102347949 B CN102347949 B CN 102347949B
Authority
CN
China
Prior art keywords
protocol
packet
application
application protocol
dpi
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201110289974.2A
Other languages
English (en)
Other versions
CN102347949A (zh
Inventor
张水华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Xime Wanwang Technology Co ltd
Original Assignee
Ximo Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ximo Inc filed Critical Ximo Inc
Priority to CN201110289974.2A priority Critical patent/CN102347949B/zh
Publication of CN102347949A publication Critical patent/CN102347949A/zh
Application granted granted Critical
Publication of CN102347949B publication Critical patent/CN102347949B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种网络应用协议分析方法,特别是涉及一种DPI七层应用协议深度分析方法。采用抓包工具获取各种应用软件数据包,然后通过下述步骤确定获取的应用软件属于哪一类或哪一种应用软件,1)在tcp/ip协议栈中加入应用协议分析层;2)通过深度包分析算法来建立应用协议匹配模型;3)获取网络数据包并分析数据包的特征应用,得到网络数据包的应用协议信息,然后以拥有多模式匹配算法的应用协议匹配模型进行协议匹配,确定所属的协议类型属于哪一类或哪一种应用软件。本发明以抓包工具进行各种应用软件数据包的获取,并以高效的拥有多模式匹配算法的DPI深度包检测技术进行协议匹配,能够达到对数据包进行快速应用协议分析,提高分析效率和准确性。

Description

基于DPI的应用协议分析方法
技术领域
本发明涉及一种网络应用协议分析方法,特别是涉及一种DPI七层应用协议深度分析方法。
背景技术
随着计算机网络的发展,网络应用也在不断的增多,所有的应用协议也在不断发展,通过网络进行娱乐,工作,休闲等已经占据着生活的大部分时间,而在工作中为避免其下载娱乐数据流的应用对网络造成不稳定,从而影响到工作效率。那么在这种情况下,如果有一种快速分析应用协议的分析方法,能够对数据包进行应用协议分析,进而能够根据这些分析出的结果来进行网络的检测和控制,这对稳定网络和改善网络是非常有帮助的。但是,如何在应用协议分析的过程中能够达到快速分析,对提高分析效率和准确性是很重要的。
发明内容
本发明针对现有技术不足,提出一种基于DPI的应用协议分析方法,能够达到对数据包进行快速应用协议分析,提高分析效率和准确性。
本发明所采用的技术方案:
一种基于DPI的应用协议分析方法,采用抓包工具获取各种应用软件数据包,然后通过下述步骤确定获取的应用软件属于哪一类或哪一种应用软件,
1)在tcp/ip协议栈中加入应用协议分析层;
2)通过基于DPI的应用协议深度分析算法来建立拥有多模匹配算法的应用协议匹配模型;
3)获取网络数据包并分析数据包的特征应用,得到网络数据包的应用协议信息,然后以拥有多模式匹配算法的应用协议匹配模型进行协议匹配,确定所属的协议类型属于哪一类或哪一种应用软件。
所述的基于DPI的应用协议分析方法,在步骤1)中,应用协议分析层以虚拟函数的方式加入tcp/ip协议栈中,在完整的ip数据报文到达tcp/ip协议栈先校验数据包是否正常,如果数据包正常,那么下一步数据包将进入应用协议分析层,进行数据包的分析处理,输出相应的应用协议信息,最后再将报文发送出去。应用协议分析层由虚拟函数的方式加入协议栈中,并单独实现此函数功能模块,增加其独立性。
所述的基于DPI的应用协议分析方法,在步骤2)中,采用基于数据包特征匹配的应用协议深度分析算法,对各种应用软件所使用的协议特征进行分析,并将其记录为特定格式特征字符串文本存储起来,建立应用协议匹配模型;特定格式的特征字符串由ip,端口,以及包括数据特征字符串信息组成。
所述的基于DPI的应用协议分析方法,在步骤3)中,初始化应用协议匹配模型,读取特征字符串,对特征字符串建立为树的结构进行存储;编写多模式匹配算法,根据偏移量进行断点特征字符串的预处理;在多模式匹配算法中进行树的遍历达到匹配数据包是否含有应用特征串确定数据包协议类型。
将特征串以树的模式建立,主要是利用多模匹配进行数据包的一次性匹配而作准备,不会对一个数据包进行一条一条特征串匹配浪费时间。多模匹配算法主要就是先建立模式树进行预处理,并实现匹配,但是不能对通配符进行处理,在本步骤中主要是编写优化预处理功能,根据偏移量字段进行处理,从而实现对特种串的通配符进行预处理。数据包到达应用协议层时主要的就是此步,对数据包的匹配,进行树的遍历查找,并对数据包进行标记。
所述的基于DPI的应用协议分析方法,在应用协议匹配模型中加入连接跟踪记录的存储,为匹配到的协议数据包信息记录,为相同的连接进行标记,以减少每个数据包都需进行匹配的时间;最后对ip及所用协议类型进行输出,并将数据包交付协议栈进行最终的发送处理。
所述的基于DPI的应用协议分析方法,连接跟踪记录的存储采用记录表方式,所述记录表包括字段:源端口、目的端口、源ip、目的ip、协议类型,在特征模式树和连接跟踪记录表初始化后,应用协议层自动生效,数据包从而进入该分析层进行数据包的处理:首先判断此数据包的信息是否在该连接记录表中,如果有那么就直接返回协议栈发送出去,如果没有,那么建立连接记录进行数据包协议检测,对ip及所用协议类型进行输出,并将数据包交付协议栈进行最终的发送处理。
连接跟踪记录主要是为了记录一条连接信息,每个到来的数据包都会先进行连接的查找,如果有记录并已经记录到此连接已经被标记为某种应用类型,那么就将数据包直接返回到协议栈发送,即步骤7)中,减少对相同连接的数据包再次匹配,达到快速处理的目的。
本发明的有益积极效果:
1、应用协议一般以固定的数据填充在数据包中,或者以固定的端口,固定的ip等作为特征,本发明DPI七层应用协议深度分析方法,以抓包工具进行各种应用软件数据包的获取,并进行分析得到特征字符串来进行特征收集,并以高效的拥有多模式匹配算法的DPI深度包检测技术进行协议匹配,能够达到对数据包进行快速应用协议分析,提高分析效率和准确性。
2、本发明通过在Tcp/ip协议栈中加入应用协议分析层,来达到数据包的截获,分析;在tcp/ip协议栈中默认处理数据包完毕后得到完整的ip数据报文,判断应用协议层模块是否存在,如果存在则进入其分析层进行数据包的分析处理,如果不存在则直接发送,不影响网络数据。
附图说明
图1:应用协议层在软件中所处层次;
图2:DPI协议深度包检测的流程图。
具体实施方式
实施例一:应用协议一般以固定的数据填充在数据包中,或者以固定的端口,固定的ip等作为特征,本发明基于DPI的七层应用协议深度分析方法,以抓包工具进行各种应用软件数据包的获取,并进行分析得到特征字符串来进行特征收集,并以高效的拥有多模式匹配算法的DPI深度包检测技术进行协议匹配。参见图1,在Tcp/ip协议栈中加入应用协议分析层,来达到数据包的截获,分析;在tcp/ip协议栈中默认处理数据包完毕后得到完整的ip数据报文,判断应用协议层模块是否存在,如果存在则进入其分析层进行数据包的分析处理,如果不存在则直接发送,不影响网络数据。参见图2,设计应用协议分析层独立模块,具体的实现应用协议层的功能;其中连接跟踪记录表包括字段(源端口,目的端口,源ip,目的ip,协议类型),在特征模式树和连接跟踪记录表初始化后,那么应用协议层就会自动生效,数据包从而进入该分析层进行数据包的处理:首先判断此数据包的信息是否在该连接记录表中,如果有那么就直接返回协议栈发送出去,如果没有,那么建立连接记录进行数据包协议检测,完毕后返回协议栈发送出去。
实施例二:参见图1、图2,本实施例基于DPI的七层应用协议深度分析方法,具体方案由以下步骤实现:
1)在tcp/ip协议栈中加入应用协议分析层,在完整的ip数据报文到达协议栈中后由***本身进行默认处理,进而转入应用协议分析层进行应用协议的分析,输出相应的应用协议信息,最后再将报文发送出去;应用协议分析层由虚拟函数的方式加入协议栈中,并单独实现此函数功能模块,增加其独立性。
2)深度包协议分析是基于数据包特征匹配的,对各种应用软件所使用的协议特征进行分析,并将其记录为特定格式特征字符串文本存储起来;特征串以ip,端口,数据特征串(包括以通配符的多字段特征)信息组成。
3)应用协议匹配模型初始化,读取特征字符串,对特征串建立为树的结构进行存储;将特征串以树的模式建立,主要是利用多模匹配进行数据包的一次性匹配而作准备,不会对一个数据包进行一条一条特征串匹配浪费时间。
4)编写优化多模匹配算法,根据偏移量进行断点特征串的预处理;多模匹配算法主要就是先建立模式树进行预处理,并实现匹配,但是不能对通配符进行处理,在这部中主要是编写优化预处理功能,根据偏移量字段进行处理,从而实现对特种串的通配符进行预处理。
5)在多模匹配中进行树的遍历达到匹配数据包是否含有应用特征串确定数据包协议类型;数据包到达应用协议层时主要的就是此步,对数据包的匹配,进行树的遍历查找,并对数据包进行标记。
6)在模型中加入连接跟踪记录的存储,为匹配到的协议数据包信息记录,为相同的连接进行标记,减少每个数据包都需进行匹配的时间;连接跟踪记录主要是为了记录一条连接信息,每个到来的数据包都会先进行连接的查找,如果有记录并已经记录到此连接已经被标记为某种应用类型,那么就将数据包直接返回到协议栈发送,即步骤7)中,减少对相同连接的数据包再次匹配,达到快速处理的目的。
7)对ip及所用协议类型进行输出,并将数据包交付协议栈进行最终的发送处理。
实施例三:参见图1、图2,本实施例的基于DPI七层应用协议深度分析方法,采用抓包工具获取各种应用软件数据包,然后通过下述步骤确定获取的应用软件属于哪一类或哪一种应用软件,
1)在tcp/ip协议栈中加入应用协议分析层;
2)通过深度包分析算法来建立拥有多模式匹配算法的应用协议匹配模型;
3)获取网络数据包并分析数据包的特征应用,得到网络数据包的应用协议信息,然后以拥有多模式匹配算法的应用协议匹配模型进行协议匹配,确定所属的协议类型属于哪一类或哪一种应用软件。
实施例四:参见图1、图2,本实施例基于DPI的应用协议分析方法,与实施例三不同的是:在步骤1)中,应用协议分析层以虚拟函数的方式加入tcp/ip协议栈中,在完整的ip数据报文到达tcp/ip协议栈先校验数据包是否正常,如果数据包正常,那么下一步数据包将进入应用协议分析层,进行数据包的分析处理,输出相应的应用协议信息,最后再将报文发送出去;在步骤2)中,采用基于数据包特征匹配的应用协议深度分析算法,对各种应用软件所使用的协议特征进行分析,并将其记录为特定格式特征字符串文本存储起来,建立应用协议匹配模型;特定格式的特征字符串由ip,端口,以及包括数据特征字符串信息组成。
实施例五:参见图1、图2,本实施例基于DPI的应用协议分析方法,与实施例四不同的是:在步骤3)中,初始化应用协议匹配模型,读取特征字符串,对特征串建立为树的结构进行存储;编写多模式匹配算法,根据偏移量进行断点特征串的预处理;进行树的遍历达到匹配数据包是否含有应用特征串确定数据包协议类型。
本发明基于DPI的应用协议分析方法,在应用协议匹配模型中加入连接跟踪记录的存储,为匹配到的协议数据包信息记录,为相同的连接进行标记,以减少每个数据包都需进行匹配的时间;最后对ip及所用协议类型进行输出,并将数据包交付协议栈进行最终的发送处理。
连接跟踪记录的存储采用记录表方式,所述记录表包括字段:源端口、目的端口、源ip、目的ip、协议类型,在特征模式树和连接跟踪记录表初始化后,应用协议层自动生效,数据包从而进入该分析层进行数据包的处理:首先判断此数据包的信息是否在该连接记录表中,如果有那么就直接返回协议栈发送出去,如果没有,那么建立连接记录进行数据包协议检测,对ip及所用协议类型进行输出,并将数据包交付协议栈进行最终的发送处理。
本发明基于DPI的应用协议分析方法,实现的***包括下述模块:
数据包捕获模块,用于获取数据包并进行数据包的解析,捕获数据包通常以驱动模式进行网络钩子的注册来获取数据包,本发明采用在tcp/ip协议栈中加入数据捕获代码来达到获取数据包;
协议预处理模块,用于处理已经定义好的协议特征,此模块将定义好的协议特征读入并进行分类建立模式树,为匹配做准备;
协议处理模块,进行应用协议的分析,此模块将数据包捕获模块所分析到的信息与协议预处理模块所建立的模式树进行信息匹配,得出所属应用协议类型;协议处理模块,采用多模式匹配算法,首先由协议预处理模块进行协议特征的模式树建立,其次在获取的数据包中查找模式树中存在的特征,以达到一次性匹配多种协议特征,从而提高匹配效率;
应用协议信息输出模块,用于将所得到的应用协议信息输出,包括ip,此ip所使用协议等信息。

Claims (5)

1.一种基于DPI的应用协议分析方法,采用抓包工具获取各种应用软件数据包,然后通过下述步骤确定获取的应用软件属于哪一类或哪一种应用软件,其特征是:
1)在tcp/ip协议栈中加入应用协议分析层;
2)通过DPI七层应用协议深度分析算法来建立树型结构的应用协议匹配模型;
3)获取网络数据包并分析数据包的特征应用,得到网络数据包的应用协议信息,然后以拥有多模式匹配算法的应用协议匹配模型进行协议匹配,确定所属的协议类型属于哪一类或哪一种应用软件;
在步骤1)中,应用协议分析层以虚拟函数的方式加入tcp/ip协议栈中,在完整的ip数据报文到达tcp/ip协议栈先校验数据包是否正常,如果数据包正常,那么下一步数据包将进入应用协议分析层,进行数据包的分析处理,输出相应的应用协议信息,最后再将报文发送出去。
2.根据权利要求1所述的基于DPI的应用协议分析方法,其特征是:在步骤2)中,采用基于数据包特征匹配的应用协议深度分析算法,对各种应用软件所使用的协议特征进行分析,并将其记录为特定格式特征字符串文本存储起来,建立应用协议匹配模型;特定格式的特征字符串由ip,端口,以及包括数据特征字符串信息组成。
3.根据权利要求2所述的基于DPI的应用协议分析方法,其特征是:在步骤3)中,初始化应用协议匹配模型,读取特征字符串,对特征串建立为树的结构进行存储;编写多模式匹配算法,根据偏移量进行断点特征串的预处理;进行树的遍历达到匹配数据包是否含有应用特征串确定数据包协议类型。
4.根据权利要求3所述的基于DPI的应用协议分析方法,其特征是:在应用协议匹配模型中加入连接跟踪记录的存储,为匹配到的协议数据包信息记录,为相同的连接进行标记,以减少每个数据包都需进行匹配的时间;最后对ip及所用协议类型进行输出,并将数据包交付协议栈进行最终的发送处理。
5.根据权利要求4所述的基于DPI的应用协议分析方法,其特征是:所述连接跟踪记录的存储采用记录表方式,所述记录表包括字段:源端口、目的端口、源ip、目的ip、协议类型,在特征模式树和连接跟踪记录表初始化后,应用协议层自动生效,数据包从而进入该分析层进行数据包的处理:首先判断此数据包的信息是否在该连接记录表中,如果有那么就直接返回协议栈发送出去,如果没有,那么建立连接记录进行数据包协议检测,对ip及所用协议类型进行输出,并将数据包交付协议栈进行最终的发送处理。
CN201110289974.2A 2011-09-28 2011-09-28 基于dpi的应用协议分析方法 Expired - Fee Related CN102347949B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110289974.2A CN102347949B (zh) 2011-09-28 2011-09-28 基于dpi的应用协议分析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110289974.2A CN102347949B (zh) 2011-09-28 2011-09-28 基于dpi的应用协议分析方法

Publications (2)

Publication Number Publication Date
CN102347949A CN102347949A (zh) 2012-02-08
CN102347949B true CN102347949B (zh) 2014-07-02

Family

ID=45546238

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110289974.2A Expired - Fee Related CN102347949B (zh) 2011-09-28 2011-09-28 基于dpi的应用协议分析方法

Country Status (1)

Country Link
CN (1) CN102347949B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102780588B (zh) * 2012-05-22 2014-12-03 华为技术有限公司 深度报文检测方法、装置、网络设备及***
CN102968346A (zh) * 2012-10-26 2013-03-13 曙光信息产业(北京)有限公司 虚拟化环境下实现虚拟机外部通信的方法
CN102932203B (zh) * 2012-10-31 2015-06-10 东软集团股份有限公司 异构平台间的深度报文检测方法及装置
CN103152340B (zh) * 2013-02-28 2015-12-02 汉柏科技有限公司 一种跨资源访问的协议识别方法
CN103746869B (zh) * 2013-12-24 2017-11-10 武汉烽火网络有限责任公司 结合数据/掩码和正则表达式的多级深度包检测方法
CN105119764B (zh) * 2015-09-29 2019-06-28 百度在线网络技术(北京)有限公司 用于流量监控的方法和装置
CN105656730A (zh) * 2016-04-12 2016-06-08 北京北信源软件股份有限公司 一种基于tcp数据包的网络应用快速发现方法和***
CN107864068B (zh) * 2017-10-23 2020-11-24 北京中创信测科技股份有限公司 一种基于dpi技术的应用识别***及方法
CN110224995A (zh) * 2019-05-17 2019-09-10 南京聚铭网络科技有限公司 一种高效多功能包深度识别方法
CN110336798B (zh) * 2019-06-19 2022-05-13 南京中新赛克科技有限责任公司 一种基于dpi的报文匹配过滤方法及其装置
CN111177595B (zh) * 2019-12-20 2024-04-05 杭州九略智能科技有限公司 一种针对http协议模板化提取资产信息的方法
CN111884776A (zh) * 2020-07-02 2020-11-03 深圳市赛特新能科技有限公司 一种充电桩协议一致性测试方法
CN116015700A (zh) * 2021-11-04 2023-04-25 贵州电网有限责任公司 一种基于软件定义网络的内网ddos流量检测及防护方法
CN115379029A (zh) * 2022-10-27 2022-11-22 北京六方云信息技术有限公司 报文识别方法、装置、终端设备以及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101035131A (zh) * 2007-02-16 2007-09-12 杭州华为三康技术有限公司 协议识别方法及装置
CN101605067A (zh) * 2009-04-22 2009-12-16 网经科技(苏州)有限公司 网络行为主动分析诊断方法
CN102082762A (zh) * 2009-11-30 2011-06-01 华为技术有限公司 一种协议识别方法、设备及***

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101621587B (zh) * 2008-06-30 2012-08-08 成都市华为赛门铁克科技有限公司 网络监听方法、装置及***

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101035131A (zh) * 2007-02-16 2007-09-12 杭州华为三康技术有限公司 协议识别方法及装置
CN101605067A (zh) * 2009-04-22 2009-12-16 网经科技(苏州)有限公司 网络行为主动分析诊断方法
CN102082762A (zh) * 2009-11-30 2011-06-01 华为技术有限公司 一种协议识别方法、设备及***

Also Published As

Publication number Publication date
CN102347949A (zh) 2012-02-08

Similar Documents

Publication Publication Date Title
CN102347949B (zh) 基于dpi的应用协议分析方法
CN105491017B (zh) Rs485总线多设备多协议解析方法及***
CN106411907A (zh) 一种数据传输方法和***
CN111970353A (zh) 云计算平台物联网中异构设备的数据处理方法及装置
CN104753931A (zh) 一种基于正则表达式的深度报文检测方法
CN103593613A (zh) 用于计算机病毒检测的方法、终端、服务器和***
US8495593B2 (en) Method and system for state machine translation
CN107070589A (zh) 一种基于面向对象协议与传统协议的电能表自适应方法、装置及电能表
CN103384274B (zh) 基于http协议的公网连接内网计算机的通信方法
Gligorić et al. Performance evaluation of compact binary XML representation for constrained devices
CN109861998B (zh) 一种基于北斗短报文协议的插件式动态解析***及方法
CN108667732A (zh) 一种报文转发方法及装置
CN101997700A (zh) 基于深度包检测和深度流检测技术的IPv6监测设备
CN105871658B (zh) 一种基于OpenWRT***的网络嗅探方法
CN105812346B (zh) 一种串口设备和以太网设备的数据交互方法
CN102760114B (zh) 多处理器***的通信仿真方法、引擎及***
CN104333461A (zh) 互联网应用流量识别方法、***及识别装置
CN111817915B (zh) 一种基于dpdk的协议解析***
CN105337797A (zh) 一种复杂电子信息***网络协议数据捕获方法
CN103415085A (zh) 一种通用mac协议处理器的自动生成方法
CN104104675A (zh) Internet控制报文协议伪装捕获与分析技术
CN101110019B (zh) 基于VxWorks操作***实现远程Shell的方法
CN110311814B (zh) 可编程NoC万兆以太网资源网络接口***
CN102185758A (zh) 一种基于阿瑞斯报文特征字的协议识别方法
CN113746850B (zh) 一种物联网多通道数据采集方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200603

Address after: 518000 102-29, building a, phase II, science and technology building, 1057 Nanhai Avenue, Shekou, Yanshan community, Nanshan District, Shenzhen City, Guangdong Province

Patentee after: Shenzhen XIME wanwang Technology Co.,Ltd.

Address before: 201100 Shanghai city Jiading District Liu Xiang Road No. 3135 Building 1 room 319

Patentee before: Shanghai Simer Communication Technology Co.,Ltd.

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140702

Termination date: 20210928

CF01 Termination of patent right due to non-payment of annual fee