CN107864068B - 一种基于dpi技术的应用识别系统及方法 - Google Patents
一种基于dpi技术的应用识别系统及方法 Download PDFInfo
- Publication number
- CN107864068B CN107864068B CN201710992200.3A CN201710992200A CN107864068B CN 107864068 B CN107864068 B CN 107864068B CN 201710992200 A CN201710992200 A CN 201710992200A CN 107864068 B CN107864068 B CN 107864068B
- Authority
- CN
- China
- Prior art keywords
- protocol
- identification
- application
- unit
- application identification
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/028—Capturing of monitoring data by filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/026—Capturing of monitoring data using flow identification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/06—Generation of reports
- H04L43/062—Generation of reports related to network traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/18—Protocol analysers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提出了一种基于DPI技术的应用识别系统及方法,所述系统包括:管理面模块和数据面模块,在应用识别系统启动加载时,所述管理面模块用于加载管理面应用特征库以及协议列表文件,构建协议原子对象树;当所述管理面模块加载结束后,所述管理面模块将加载结束信息通知给所述数据面模块;所述数据面模块用于根据所述管理面模块构建好的原子对象树,收取报文进行业务识别。在本发明中,开发者只需要按照模板实现新增协议,而不需要关心协议的执行时机以及执行顺序,同时可在系统中设置识别优先级,来控制识别的精细度,从而提高系统效率。
Description
技术领域
本发明属于通信网络协议检测技术,具体是为DPI业务识别技术领域,尤其涉及一种基于DPI技术的应用识别系统及方法。
背景技术
DPI(Deep Packet Inspection)是一种基于数据包的深度检测技术,随着互联网技术的深入发展,网络应用也在不断的增多,传统的数据包检测技术只针对五元组(源地址、目的地址、源端口、目的端口以及协议类型)进行识别,已无法精确识别出数据包所承载的具体的业务类型,要想深度了解数据包所承载的业务应用类型及流量大小等信息,必须要跟踪业务应用的协议交互过程,并对数据包的应用层进行深度的识别,进而根据识别得出的精确结果来进行网络的检测和控制。
现有的DPI设备对于能识别的协议必须是固化的,能识别的应用必须是已知的,它维护一个后台应用特征库,将能识别的协议解包后的得到的特征字段与特征库进行比较来确定应用类型。当有新型应用出现的时候,可以根据更新后台应用特征库具备识别能力。但是对于需要新增的识别的协议,却没有办法进行动态增加。
还有,现有的技术方案对于每种协议的应用识别都需单独开发,并且需控制数据包的识别顺序和优先级,因为它所支持的协议是固化在程序中的,无法灵活的支持新增协议的识别或对不关心的协议的去除识别,以及在不同应用场合动态调整应用识别优先级。
发明内容
为了解决现有技术方案中存在的技术问题,本发明提供了一种基于DPI技术的应用识别系统及方法;
第一方面提供了一种基于DPI技术的应用识别系统,所述系统包括:管理面模块和数据面模块,
在应用识别系统启动加载时,所述管理面模块用于加载管理面应用特征库以及协议列表文件,构建协议原子对象树;
当所述管理面模块加载结束后,用于将加载结束信息通知给所述数据面模块;所述数据面模块根据所述管理面模块构建好的原子对象树,收取报文进行业务识别。
进一步地,所述管理面模块包括建立协议单元、注册结果回填单元和执行协议识别单元;
所述建立协议单元,用于建立需要支持的默认协议列表的配置文件,还用于在增加待识别的新协议时,在所述协议列表中增加所述新协议的协议定义;
所述注册结果回填单元,用于根据所述建立协议单元的建立结果,控制数据报文在所述应用识别系统中的流动;
所述执行协议识别单元,用于将数据报文通过底层分流上送到所述数据面模块。
进一步地,所述协议定义为按照协议之间的关联进行组织数据结构;
所述协议之间的关联是指协议之间的父子关系、兄弟关系、优先级关系和协议所需要挂载的动态库。
进一步地,所述动态库的通用模板包括协议初始化、协议反注册、协议解析、协议预处理入口和协议应用识别入口。
进一步地,所述注册结果回填单元包括原子对象树生成子单元和控制数据包流动子单元;
所述原子对象树生成子单元,用于在管理面模块初始化时,读取所述协议列表的配置文件,根据定义的父子关系、兄弟关系以及优先级关系,生成数据面模块所需要的原子对象树;
所述控制数据包流动子单元,用于根据所述原子对象树的子孙协议列表控制数据包在引擎中的流入流出。
进一步地,每一个协议为原子对象数的一个节点;所述增加待识别的新协议为增加所述原子对象树的一个节点。
进一步地,所述数据面模块包括IP报文识别单元、TCP报文识别单元、UDP报文识别单元和ICMP报文识别单元;
所述IP报文识别单元用于根据所述数据面模块处理的结果,对IP进行分片,在协议预处理进行IP分片重组;并根据预先设置的子孙索引表控制数据包流入ICMP、TCP和UDP处理入口;
所述TCP报文识别单元,用于建立会话,对于已经识别的应用协议的会话,直接退出,返回识别结果,对于新建会话,继续根据子孙索引表控制数据包流入上层应用;
所述UDP报文识别单元,用于建立关联会话,对在关联回话中已识别出的应用,直接返回识别结果,退出引擎,否则,继续根据子孙索引表控制数据包流入上层应用;
所述ICMP报文识别单元,用于查询是否有优选子孙索引表,若有,则流入到对应优选的协议中进行处理,若无,则按照之前建立的优先级执行应用识别匹配。
进一步地,所述数据面模块还包括上层应用识别匹配单元,用于根据建立的优先级执行应用识别匹配,若应用识别匹配成功,则直接退出引擎,返回本次匹配结果;若匹配失败,则返回父子关系中的父节点继续按照所述优先级执行匹配,直至返回到IP层;所述上层应用识别匹配单元包括TCP上层应用识别匹配子单元、UDP上层应用识别匹配子单元和ICMP上层应用识别匹配子单元。
第二方面提供了一种基于DPI技术的应用识别方法,包括:
构建协议原子对象树;
根据构建好的原子对象树,收取报文进行业务识别。
进一步地,所述构建协议原子对象树,包括:
读取协议配置文件,遍历预定义协议的原子对象;
根据所述预定义协议的名称进行协议查找,若未找到目标对象,则进一步判断其是否有父协议,若有父协议,则设置父节点的ID,树深度值加1,若没有父协议,则设置树深度值为1;若找到目标对象,则跳至判断遍历是否结束的步骤中;
创建原子对象,包括:设置兄弟节点信息、最大节点信息、本协议优先级和本协议的操作函数库;
创建原子对象插入协议树,包括:设置该对象的父节点的子孙节点索引表指向自身,并将自身记录到全局原子对象中;
判断遍历是否结束,若是,则结束,若否,则返回读取协议配置文件。
进一步地,所述根据构建好的原子对象树,收取报文进行业务识别,包括:
对当前协议进行解析和预处理;
判断是否存在子协议表,若存在,则判断所述子协议表中是否有注册节点,若不存在,则获取本协议DPI应用识别入口;在判断所述子协议中的子协议是否有注册节点中,若有注册节点,则进入子协议,并返回对当前协议进行解析和预处理的步骤,若没有注册节点,则同样获取本协议DPI应用识别入口;
判断识别应用是否成功,若是,则本次引擎识别结束,若否,则返回父协议,判断所述父协议是否存在;
在判断所述父协议是否存在中,若存在所述父协议,则获取本协议DPI识别入口,若不存在所述父协议,则应用识别结束。
本发明提供的基于DPI技术的应用识别系统,即实现一个DPI引擎识别框架。通过本发明的所述系统,所有需要识别的协议可以通过动态灵活的方式注册到系统中,通过注册时生成的协议原子树来控制数据包在系统中的走向,同样对于我们不关心的协议可以从原子树中反注册,从而可以动态实现对我们关心的协议的应用识别。开发者只需要按照模板实现新增协议,而不需要关心协议的执行时机以及执行顺序,同时可在系统中设置识别优先级,来控制识别的精细度,从而提高系统效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的一种基于DPI技术的应用识别系统的主要结构图;
图2是本发明提供的一种基于DPI技术的应用识别系统的具体结构框图;
图3是本发明提供的原子对象树的内部示意图;
图4是本发明提供的一种基于DPI技术的应用识别方法;
图5是本发明提供的数据面引擎数据流情况;
图6是本发明提供的构建协议原子对象树的数据流情况。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一:
本实施例提供了一种基于DPI技术的应用识别系统,如图1所示,所述系统包括:管理面模块100和数据面模块200,(若该应用识别系统看作是DPI引擎,则所述DPI引擎划分为管理面引擎和数据面引擎)。
在应用识别系统启动加载时,所述管理面模块用于加载管理面应用特征库以及协议列表文件,构建协议原子对象树;
当所述管理面模块加载结束后,用于将加载结束信息通知给所述数据面模块;所述数据面模块根据所述管理面模块构建好的原子对象树,收取报文进行业务识别。
进一步地,所述管理面模块100包括建立协议单元110、注册结果回填单元120和执行协议识别单元130;
所述建立协议单元110,用于建立需要支持的默认协议列表的配置文件,还用于在增加待识别的新协议时,在所述协议列表中增加所述新协议的协议定义;
所述注册结果回填单元120,用于根据所述建立协议单元的建立结果,控制数据报文在所述应用识别系统中的流动;
所述执行协议识别单元130,用于将数据报文通过底层分流上送到所述数据面模块。
进一步地,所述协议定义为按照协议之间的关联进行组织数据结构;
所述协议之间的关联是指协议之间的父子关系、兄弟关系、优先级关系和协议所需要挂载的动态库。
进一步地,所述动态库的通用模板包括协议初始化、协议反注册、协议解析、协议预处理入口和协议应用识别入口。
进一步地,所述注册结果回填单元120包括原子对象树生成子单元121和控制数据包流动子单元122;
所述原子对象树生成子单元121,用于在管理面模块初始化时,读取所述协议列表的配置文件,根据定义的父子关系、兄弟关系以及优先级关系,生成数据面模块所需要的原子对象树;
所述控制数据包流动子单元122,用于根据所述原子对象树的子孙协议列表控制数据包在引擎中的流入流出。
进一步地,每一个协议为原子对象数的一个节点;所述增加待识别的新协议为增加所述原子对象树的一个节点。
进一步地,所述数据面模块200包括IP报文识别单元210、TCP报文识别单元220、UDP报文识别单元230和ICMP报文识别单元240;
所述IP报文识别单元210用于根据所述数据面模块处理的结果,对IP进行分片,在协议预处理进行IP分片重组;并根据预先设置的子孙索引表控制数据包流入ICMP、TCP和UDP处理入口;
所述TCP报文识别单元220,用于建立会话,对于已经识别的应用协议的会话,直接退出,返回识别结果,对于新建会话,继续根据子孙索引表控制数据包流入上层应用;
所述UDP报文识别单元230,用于建立关联会话,对在关联回话中已识别出的应用,直接返回识别结果,退出引擎,否则,继续根据子孙索引表控制数据包流入上层应用;
所述ICMP报文识别单元240,用于查询是否有优选子孙索引表,若有,则流入到对应优选的协议中进行处理,若无,则按照之前建立的优先级执行应用识别匹配。
进一步地,所述数据面模块200还包括用户注册的上层应用识别匹配单元250,用于根据建立的优先级执行应用识别匹配,若应用识别匹配成功,则直接退出引擎,返回本次匹配结果;若匹配失败,则返回父子关系中的父节点继续按照所述优先级执行匹配,直至返回到IP层;所述上层应用识别匹配单元包括TCP上层应用识别匹配子单元251、UDP上层应用识别匹配子单元252和ICMP上层应用识别匹配子单元253。
进一步地,所述ICMP报文识别单元240包括识别匹配子单元241,所述识别匹配子单元,用于在建立的优先级执行应用识别匹配过程中,若应用识别匹配成功,则直接退出引擎,返回本次匹配结果;若匹配失败,则返回父子关系中的父节点继续按照所述优先级执行匹配,直至返回到IP层。
需要说明的是,每个数据面引擎都是单独的一个副本,相互之间无交互。其中,根据上述内容,所述原子对象树如图3所示。可以看出,所述数据面模块只处理IP承载的报文(即图3中原子对象树的总入口1)对于IP分片,在协议预处理进行IP分片重组。并根据预先设置的子孙索引表控制数据包流入icmp、tcp或udp处理入口,之后和前述中描述的一种,对TCP报文、UDP报文和ICMP报文进行处理。
基于前述的记载,可以看出,本发明的协议解码是按照由粗粒度到细粒度,由低层协议解码和低层协议的子孙索引表控制流入何种高层协议。应用协议识别是按照由细粒度到粗粒度,直至子孙索引表为空(即本协议无上层注册协议,是我们注册的最精细化协议)才执行应用识别,如识别失败再返回其父协议继续识别。
本实施例给出了协议配置的数据结构描述(C语言描述),
typedef struct tagDPI_OBJREG_INFO
{
__u8 * dpi_AtomName; /* 本对象名称 */
__u8 * dpi_FatherName; /* 父对象名称 */
__u32 dpi_SortInBros; /* 在兄弟姐妹中的排行 */
__u32 dpi_MaxChildNum; /* 支持的最大子孙数目 */
__u16 dpi_MyPriority; /* 在兄弟中的优先级 */
DPI_OBJPROC_ATOM * dpi_ObjProc; /* 挂载对象的操作函数库 */
} DPI_OBJREG_INFO;
本实施例给出了动态库的通用模板数据结构描述(C语言描述);
typedef struct tagDPI_OBJPROC_ATOM
{
__u64 (* pfInit)(); /*本协议初始化*/
__u64 (* pfDestroy)(); /*本协议反注册*/
__u64 (* pfDecodeProc)(void * pvGblData);/*本协议解析*/
__u64 (* pfPreProc) (void * pvGblData);/*本协议预处理入口*/
__u64 (* pfDpiProc) (void * pvGblData);/*本协议应用识别入口*/
} DPI_OBJPROC_ATOM;
本实施例给出了数据面模块的数据结构描述(C语言描述)。
typedef struct tagDPI_ENGINE
{
__u8 dpi_AtomName[DPI_MAX_NAMELEN];
__u16 dpi_MyPriority; /* 优先级 */
__u32 dpi_FatherId; /* 该原子所属的父协议ID */
__u32 dpi_AtomId; /* 用于唯一标识该原子协议的ID */
__u32 dpi_SortInBros; /* 在兄弟姐妹中的排行 */
__u32 dpi_depth; /*记录原子对象在树中的深度 */
__u32 ulMaxChildNum; /* 最大子孙数目 */
__u32 ulCurChildNum; /* 已有子孙数目 */
void ** ppvChildTbl; /* 子孙索引表 */
DPI_OBJPROC_ATOM pfObjProc;/*此原子的动态库挂载*/
} DPI_ENGINE;
实施例二:
本实施例提供了一种基于DPI技术的应用识别方法,如图4所示,包括:
S101.通过管理面引擎构建协议原子对象树;
S102.根据构建好的原子对象树,利用数据面引擎收取报文进行业务识别,如图5所示(数据面引擎数据流情况),包括:
对当前协议进行解析和预处理;
判断是否存在子协议表,若存在,则判断所述子协议表中是否有注册节点,若不存在,则获取本协议DPI应用识别入口;
在判断所述子协议中的子协议是否有注册节点中,若有注册节点,则进入子协议,并返回对对当前协议进行解析的步骤,若没有注册节点,则同样获取本协议DPI应用识别入口;
判断识别应用是否成功,若是,则本次引擎识别结束,若否,则返回父协议,判断所述父协议是否存在;
在判断所述父协议是否存在中,若存在所述父协议,则获取本协议DPI识别入口,若不存在所述父协议,则本次引擎识别结束。
其中,本协议预处理入口,详细地,是按照协议由粗到细的顺序调用,主要是各个协议解码后的处理,包括:IP层处理IP分片,TCP/UDP处理会话和乱序等,应用层处理TCP分段重组、端口学习、关联识别等;为后续DPI识别准备好数据。其中,本协议应用识别入口,详细地,是按照协议由细到粗的顺序调用,主要是各个注册协议的DPI匹配。
进一步地,所述构建协议原子对象树,如图6所示,包括:
读取协议配置文件,遍历预定义协议的原子对象;
根据所述预定义协议的名称进行协议查找,若未找到目标对象,则进一步判断其是否有父协议,若有父协议,则设置父节点的ID,树深度值加1,若没有父协议,则设置树深度值为1;若找到目标对象,则跳至判断遍历是否结束的步骤;
创建原子对象,包括:设置兄弟节点信息、最大节点信息、本协议优先级和本协议的操作函数库;
创建原子对象插入协议树,包括:设置该对象的父节点的子孙节点索引表指向自身,并将自身记录到全局原子对象中;
判断遍历是否结束,若是,则结束,若否,则返回读取协议配置文件的步骤。
本发明提供的基于DPI技术的应用识别系统,即实现一个DPI引擎识别框架。通过本发明的所述系统,所有需要识别的协议可以通过动态灵活的方式注册到系统中,通过注册时生成的协议原子树来控制数据包在系统中的走向,同样对于我们不关心的协议可以从原子树中反注册,从而可以动态实现对我们关心的协议的应用识别。开发者只需要按照模板实现新增协议,而不需要关心协议的执行时机以及执行顺序,同时可在系统中设置识别优先级,来控制识别的精细度,从而提高系统效率。
也就是说,本发明可支持动态增加和裁剪待识别的协议;本发明根据协议注册生成原子对象树;本发明根据原子对象树回填的子孙索引表,自动生成数据包的二叉树前跟遍历式的报文解析应用识别。
总之,本发明通过构建引擎框架,实现了动态配置所需协议的应用识别和识别的优先级。从而对于一种新增需要识别的协议,只需要动态的将其注册到引擎框架,即刻获得应用识别结果,并可通过优先级设置实现应用识别的精细度。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
本发明中的技术方案中的各个模块均可通过计算机终端或其它设备实现。所述计算机终端包括处理器和存储器。所述存储器用于存储本发明中的程序指令/模块,所述处理器通过运行存储在存储器内的程序指令/模块,实现本发明相应功能。
本发明中的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
本发明中所述模块/单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。可以根据实际的需要选择其中的部分或者全部模块/单元来达到实现本发明方案的目的。
另外,在本发明各个实施例中的各模块/单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (7)
1.一种基于DPI技术的应用识别系统,其特征在于,包括:管理面模块和数据面模块,在应用识别系统启动加载时,所述管理面模块用于加载管理面应用特征库以及协议列表文件,构建协议原子对象树;当所述管理面模块加载结束后,所述管理面模块将加载结束信息通知给所述数据面模块;所述数据面模块用于根据所述管理面模块构建好的原子对象树,收取报文进行业务识别
所述管理面模块包括建立协议单元、注册结果回填单元和执行协议识别单元;所述建立协议单元,用于建立需要支持的默认协议列表的配置文件,还用于在增加待识别的新协议时,在所述协议列表中增加所述新协议的协议定义;所述注册结果回填单元,用于根据所述建立协议单元的结果,控制数据报文在所述应用识别系统中的流动;所述执行协议识别单元,用于将数据报文通过底层分流上送到所述数据面模块;
所述数据面模块包括基本的IP报文识别单元、TCP报文识别单元、UDP报文识别单元和ICMP报文识别单元;所述IP报文识别单元用于根据所述数据面模块处理的结果,对IP进行分片,在协议预处理进行IP分片重组;并根据预先设置的子孙索引表控制数据包流入ICMP、TCP和UDP处理入口;所述TCP报文识别单元,用于建立会话,对于已经识别的应用协议的会话,直接退出,返回识别结果,对于新建会话,继续根据子孙索引表控制数据包流入上层应用;所述UDP报文识别单元,用于建立关联会话,对在关联会 话中已识别出的应用,直接返回识别结果,退出引擎,否则,继续根据子孙索引表控制数据包流入上层应用;所述ICMP报文识别单元,用于查询是否有优选子孙索引表,若有,则流入到对应优选的协议中进行处理,若无,则按照之前建立的优先级执行应用识别匹配。
2.根据权利要求1所述的系统,其特征在于,所述协议定义为按照协议之间的关联进行组织数据结构;所述协议之间的关联是指协议之间的父子关系、兄弟关系、优先级关系和协议所需要挂载的动态库。
3.根据权利要求2所述的系统,其特征在于,所述动态库的通用模板包括协议初始化、协议反注册、协议解析、协议预处理入口和协议应用识别入口。
4.根据权利要求2所述的系统,其特征在于,所述注册结果回填单元包括原子对象树生成子单元和控制数据包流动子单元;所述原子对象树生成子单元,用于在管理面模块初始化时,读取所述协议列表的配置文件,根据定义的父子关系、兄弟关系以及优先级关系,生成数据面模块所需要的原子对象树;所述控制数据包流动子单元,用于根据所述原子对象树的子孙协议列表控制数据包在引擎中的流入流出。
5.根据权利要求1所述的系统,其特征在于,所述数据面模块还包括上层应用识别匹配单元,用于根据建立的优先级执行应用识别匹配,若应用识别匹配成功,则直接退出引擎,返回本次匹配结果;若匹配失败,则返回父子关系中的父节点继续按照所述优先级执行匹配,直至返回到IP层;所述上层应用识别匹配单元包括TCP上层应用识别匹配子单元、UDP上层应用识别匹配子单元和ICMP上层应用识别匹配子单元。
6.一种基于DPI技术的应用识别方法,其特征在于,包括:构建协议原子对象树;根据构建好的原子对象树,收取报文进行业务识别;
所述构建协议原子对象树,包括:读取协议配置文件,遍历预定义协议的原子对象;根据所述预定义协议的名称进行协议查找,若未找到目标对象,则进一步判断其是否有父协议,若有父协议,则设置父节点的ID,树深度值加1,若没有父协议,则设置树深度值为1;若找到目标对象,则跳至判断遍历是否结束的步骤中;创建原子对象,包括:设置兄弟节点信息、最大节点信息、本协议优先级和本协议的操作函数库;创建原子对象插入协议树,包括:设置该对象的父节点的子孙节点索引表指向自身,并将自身记录到全局原子对象中;判断遍历是否结束,若是,则结束,若否,则返回读取协议配置文件。
7.根据权利要求6所述的方法,其特征在于,所述根据构建好的原子对象树,收取报文进行业务识别,包括:对当前协议进行解析和预处理;判断是否存在子协议表,若存在,则判断所述子协议表中是否有注册节点,若不存在,则获取本协议DPI应用识别入口;在判断所述子协议中的子协议是否有注册节点中,若有注册节点,则进入子协议,并返回对当前协议进行解析和预处理的步骤,若没有注册节点,则同样获取本协议DPI应用识别入口;判断识别应用是否成功,若是,则本次引擎识别结束,若否,则返回父协议,判断所述父协议是否存在;在判断所述父协议是否存在中,若存在所述父协议,则获取本协议DPI识别入口,若不存在所述父协议,则应用识别结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710992200.3A CN107864068B (zh) | 2017-10-23 | 2017-10-23 | 一种基于dpi技术的应用识别系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710992200.3A CN107864068B (zh) | 2017-10-23 | 2017-10-23 | 一种基于dpi技术的应用识别系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107864068A CN107864068A (zh) | 2018-03-30 |
CN107864068B true CN107864068B (zh) | 2020-11-24 |
Family
ID=61697669
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710992200.3A Active CN107864068B (zh) | 2017-10-23 | 2017-10-23 | 一种基于dpi技术的应用识别系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107864068B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101035131A (zh) * | 2007-02-16 | 2007-09-12 | 杭州华为三康技术有限公司 | 协议识别方法及装置 |
CN102301764A (zh) * | 2011-07-01 | 2011-12-28 | 华为技术有限公司 | 终端分布信息获取方法、数据获取装置以及通信系统 |
CN102347949A (zh) * | 2011-09-28 | 2012-02-08 | 上海西默通信技术有限公司 | 基于dpi的应用协议分析方法 |
EP1303086B1 (en) * | 2001-10-09 | 2012-12-19 | Alcatel Lucent | A hierarchical protocol classification engine |
CN102883347A (zh) * | 2012-09-24 | 2013-01-16 | 北京智信数通科技有限公司 | 一种对ps域大流量网络数据的监测分析方法及装置 |
-
2017
- 2017-10-23 CN CN201710992200.3A patent/CN107864068B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1303086B1 (en) * | 2001-10-09 | 2012-12-19 | Alcatel Lucent | A hierarchical protocol classification engine |
CN101035131A (zh) * | 2007-02-16 | 2007-09-12 | 杭州华为三康技术有限公司 | 协议识别方法及装置 |
CN102301764A (zh) * | 2011-07-01 | 2011-12-28 | 华为技术有限公司 | 终端分布信息获取方法、数据获取装置以及通信系统 |
CN102347949A (zh) * | 2011-09-28 | 2012-02-08 | 上海西默通信技术有限公司 | 基于dpi的应用协议分析方法 |
CN102883347A (zh) * | 2012-09-24 | 2013-01-16 | 北京智信数通科技有限公司 | 一种对ps域大流量网络数据的监测分析方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107864068A (zh) | 2018-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107277153B (zh) | 用于提供语音服务的方法、装置和服务器 | |
CN114025021B (zh) | 一种跨Kubernetes集群的通信方法、系统、介质和电子设备 | |
US11150896B2 (en) | Automated generation of service definitions for message queue application clients | |
CN108023808A (zh) | 应用程序中的消息分发方法及装置 | |
WO2022078104A1 (zh) | 网络流量分析方法、装置、电子设备和存储介质 | |
CN111224831B (zh) | 用于生成话单的方法和系统 | |
EP3693894A1 (en) | Service process starting method and apparatus | |
CN110224859A (zh) | 用于识别团伙的方法和系统 | |
WO2021047197A1 (zh) | 一种语音处理方法、装置、设备和计算机存储介质 | |
US11521610B1 (en) | System and method for controlling a remote computer using an intelligent personal assistant | |
CN107948682B (zh) | 业务域名的配置方法、业务服务器及终端设备 | |
CN114385382A (zh) | 轻应用的访问方法、装置、计算机设备和存储介质 | |
CN112073512B (zh) | 数据处理方法及设备 | |
CN113630418A (zh) | 一种网络服务识别方法、装置、设备及介质 | |
CN107864068B (zh) | 一种基于dpi技术的应用识别系统及方法 | |
CN113055420B (zh) | Https业务识别方法、装置及计算设备 | |
CN107018140B (zh) | 一种权限控制方法和系统 | |
US7805733B2 (en) | Software implementation of hardware platform interface | |
CN105991373B (zh) | 一种应用协议识别方法及装置 | |
WO2021082945A1 (zh) | 一种远程管理方法、系统、终端设备及服务器 | |
CN108491283A (zh) | 一种数据传输方法、装置、计算机及存储介质 | |
CN108768987B (zh) | 数据交互方法、装置及系统 | |
CN113608778A (zh) | 应用管理方法及装置、存储介质、电子设备 | |
CN107864127B (zh) | 一种应用程序的识别方法及装置 | |
CN114610343A (zh) | 一种应用功能实现方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |