DPI识别方法、装置、计算机设备及存储介质转让专利

申请号 : CN202011221461.3

文献号 : CN112039731B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 叶志钢薛秋宝黄华桥

申请人 : 武汉绿色网络信息服务有限责任公司

摘要 :

本申请公开了一种DPI识别方法、装置、计算机设备及存储介质,该DPI识别方法包括:网关模块接收目标数据报文;通过DPI识别引擎对目标数据报文进行轻量级识别,判断是否能确定目标应用名称,轻量级识别仅分析目标数据报文中的目的地址、目的端口以及协议类型;若是,查找得到目标应用名称,若否,则将目标数据报文发送至DPI深度识别模块;通过DPI深度识别引擎进行深度识别得到目标应用名称,将目标数据报文和目标应用名称发送至网关模块;网关模块将接收到的目标数据报文和目标应用名称的对应关系写入第一应用名称对应关系表。通过将DPI识别引擎集成在网关模块中,避免网关模块和DPI深度识别模块对数据报文处理两次,提高了网关模块的可靠性与识别率。

权利要求 :

1.一种DPI识别方法,其特征在于,应用于智能网关,所述智能网关中集成有可相互通信的网关模块及DPI深度识别模块,所述网关模块中包括只对数据报文进行轻量级识别的DPI识别引擎,所述DPI深度识别模块中集成有对数据报文进行深度识别的DPI深度识别引擎,所述DPI识别引擎中配置有第一应用名称对应关系表,所述方法包括:所述网关模块接收待识别的目标数据报文;

通过所述DPI识别引擎对所述目标数据报文进行轻量级识别,判断是否能确定所述目标数据报文对应的目标应用名称,所述轻量级识别仅分析所述目标数据报文中的目的地址、目的端口以及协议类型;

若是,则从所述第一应用名称对应关系表中查找得到所述目标数据报文对应的目标应用名称,若否,则将所述目标数据报文发送至所述DPI深度识别模块;

通过所述DPI深度识别引擎将所述目标数据报文进行深度识别得到所述目标应用名称,将所述目标数据报文和所述目标应用名称发送至所述网关模块;

所述网关模块将接收到的所述目标数据报文和所述目标应用名称的对应关系写入所述第一应用名称对应关系表。

2.根据权利要求1所述的DPI识别方法,其特征在于,所述第一应用名称对应关系表为数据报文的三元组信息与应用名称的对应关系表,所述通过所述DPI识别引擎对所述目标数据报文进行轻量级识别,判断是否能确定所述目标数据报文对应的目标应用名称,包括:通过所述DPI识别引擎对所述目标数据报文进行轻量级识别,获得所述目标数据报文对应的三元组信息;

通过所述DPI识别引擎查找所述第一应用名称对应关系表中是否包含与所述三元组信息对应的所述目标应用名称;

若是,则能确定所述目标数据报文对应的所述目标应用名称。

3.根据权利要求1所述的DPI识别方法,其特征在于,所述将所述目标数据报文发送至所述DPI深度识别模块,包括:所述DPI识别引擎将多条所述目标数据报文的前N条数据报文指定发送至所述DPI深度识别模块。

4.根据权利要求3所述的DPI识别方法,其特征在于,所述将所述目标数据报文发送至所述DPI深度识别模块,包括:在所述目标数据报文中的头部扩展字段写入识别状态码;

将所述识别状态码发送至所述DPI深度识别模块,以指示所述DPI深度识别引擎根据所述识别状态码对所述目标数据报文进行深度识别。

5.根据权利要求1所述的DPI识别方法,其特征在于,所述DPI深度识别引擎中配置有数据报文的三元组信息与应用名称的第二应用名称对应关系表,所述通过DPI深度识别引擎将所述目标数据报文进行深度识别得到所述目标应用名称,将所述目标数据报文和所述目标应用名称发送至所述网关模块,包括:所述DPI深度识别引擎通过解析所述目标数据报文获得所述目标数据报文对应的三元组信息以及所述目标数据报文的报文内容;

所述DPI深度识别引擎根据所述报文内容,确定所述目标数据报文对应的所述目标应用名称;

所述DPI深度识别引擎根据所述目标数据报文对应的三元组信息和所述目标应用名称更新所述第二应用名称对应关系表;

所述DPI深度识别引擎将所述目标数据报文对应的三元组信息和所述目标应用名称发送至所述网关模块。

6.根据权利要求2所述的DPI识别方法,其特征在于,所述三元组信息包括所述目标数据报文的IP地址、端口号以及协议类型。

7.一种DPI识别装置,其特征在于,应用于智能网关,所述智能网关中集成有可相互通信的网关模块及DPI深度识别模块,所述网关模块中包括只对数据报文进行轻量级识别的DPI识别引擎,所述DPI深度识别模块中集成有对数据报文进行深度识别的DPI深度识别引擎,所述DPI识别引擎中配置有第一应用名称对应关系表;所述DPI识别装置包括:所述网关模块,用于接收待识别的目标数据报文,将接收到的所述目标数据报文和目标应用名称的对应关系写入所述第一应用名称对应关系表;

所述DPI识别引擎,用于对所述目标数据报文进行轻量级识别,判断是否能确定所述目标数据报文对应的所述目标应用名称,所述轻量级识别仅分析所述目标数据报文中的目的地址、目的端口以及协议类型;若是,则从所述第一应用名称对应关系表中查找得到所述目标数据报文对应的所述目标应用名称,若否,则将所述目标数据报文发送至所述DPI深度识别模块;

所述DPI深度识别引擎,用于将所述目标数据报文进行深度识别得到所述目标应用名称,将所述目标数据报文和所述目标应用名称发送至所述网关模块。

8.根据权利要求7所述的DPI识别装置,其特征在于,所述网关模块还包括应用控制引擎和镜像功能引擎,所述DPI识别装置还包括MEC模块;

所述应用控制引擎用于将所述DPI识别引擎对所述目标数据报文的识别结果生成控制策略;

所述镜像功能引擎用于将所述目标数据报文镜像至所述MEC模块中;

所述MEC模块用于对特性流量进行深度分析。

9.一种计算机设备,其特征在于,所述计算机设备包括:

一个或多个处理器;

存储器;以及

一个或多个应用程序,其中所述一个或多个应用程序被存储于所述存储器中,并配置为由所述处理器执行以实现权利要求1至6中任一项所述的DPI识别方法。

10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行权利要求1至6任一项所述的DPI识别方法中的步骤。

说明书 :

DPI识别方法、装置、计算机设备及存储介质

技术领域

[0001] 本申请涉及通信技术领域,具体涉及一种DPI识别方法、装置、计算机设备及存储介质。

背景技术

[0002] 深度报文检测(DPI,Deep Packet Inspection)技术是实现流量管理最基本也是最重要的手段,已大量部署在运营商网络中。DPI技术在分析包头的基础上,增加了对应用
层的分析,是一种基于应用层的流量检测技术。
[0003] 现有的对应用名称进行DPI识别的方法具体为,将会话信息包含的多条数据报文经过网关模块处理之后全量发送至DPI深度识别模块,DPI深度识别模块对数据报文进行深
度识别得到应用名称,然而,采用该方法存在如下缺陷:网关模块需要与DPI深度识别模块
同步账号信息,以维护一致性;数据报文需要全量分别经过网关模块和DPI深度识别模块处
理两次,因此需要较多的CPU进行处理,从而影响网关模块的处理性能;此外,控制功能的实
现方案较为复杂,由于DPI深度识别模块为旁路模式,导致其对数据报文的控制能力有限,
需要网关模块来实现串接控制,交互较为复杂,从控制业务的角度分析,网关模块与DPI深
度识别模块之间存在业务耦合。

发明内容

[0004] 本申请实施例提供一种DPI识别方法,装置、计算机设备及存储介质,避免网关模块和DPI深度识别模块对数据报文处理两次,降低对DPI深度识别引擎的依赖性,使得DPI深
度识别引擎出现异常不影响网关模块的可靠性与识别率。
[0005] 一方面,本申请提供一种DPI识别方法,应用于智能网关,所述智能网关中集成有可相互通信的网关模块及DPI深度识别模块,所述网关模块中包括只对数据报文进行轻量
级识别的DPI识别引擎,所述DPI深度识别模块中集成有对数据报文进行深度识别的DPI深
度识别引擎,所述DPI识别引擎中配置有第一应用名称对应关系表,所述方法包括:
[0006] 所述网关模块接收待识别的目标数据报文;
[0007] 通过所述DPI识别引擎对所述目标数据报文进行轻量级识别,判断是否能确定所述目标数据报文对应的目标应用名称,所述轻量级识别仅分析所述目标数据报文中的目的
地址、目的端口以及协议类型;
[0008] 若是,则从所述第一应用名称对应关系表中查找得到所述目标数据报文对应的目标应用名称,若否,则将所述目标数据报文发送至所述DPI深度识别模块;
[0009] 通过所述DPI深度识别引擎将所述目标数据报文进行深度识别得到所述目标应用名称,将所述目标数据报文和所述目标应用名称发送至所述网关模块;
[0010] 所述网关模块将接收到的所述目标数据报文和所述目标应用名称的对应关系写入所述第一应用名称对应关系表。
[0011] 在本申请一些实施方案中,所述第一应用名称对应关系表为数据报文的三元组信息与应用名称的对应关系表,所述通过所述DPI识别引擎对所述目标数据报文进行轻量级
识别,判断是否能确定所述目标数据报文对应的目标应用名称,包括:
[0012] 通过所述DPI识别引擎对所述目标数据报文进行轻量级识别,获得所述目标数据报文对应的三元组信息;
[0013] 通过所述DPI识别引擎查找所述第一应用名称对应关系表中是否包含与所述三元组信息对应的所述目标应用名称;
[0014] 若是,则能确定所述目标数据报文对应的所述目标应用名称。
[0015] 在本申请一些实施方案中,所述将所述目标数据报文发送至所述DPI深度识别模块,包括:
[0016] 所述DPI识别引擎将多条所述目标数据报文的前N条数据报文指定发送至所述DPI深度识别模块。
[0017] 在本申请一些实施方案中,所述将所述目标数据报文发送至所述DPI深度识别模块,包括:
[0018] 在所述目标数据报文中的头部扩展字段写入识别状态码;
[0019] 将所述识别状态码发送至所述DPI深度识别模块,以指示所述DPI深度识别引擎根据所述识别状态码对所述目标数据报文进行深度识别。
[0020] 在本申请一些实施方案中,所述DPI深度识别引擎中配置有数据报文的三元组信息与应用名称的第二应用名称对应关系表,所述通过DPI深度识别引擎将所述目标数据报
文进行深度识别得到所述目标应用名称,将所述目标数据报文和所述目标应用名称发送至
所述网关模块,包括:
[0021] 所述DPI深度识别引擎通过解析所述目标数据报文获得所述目标数据报文对应的三元组信息以及所述目标数据报文的报文内容;
[0022] 所述DPI深度识别引擎根据所述报文内容,确定所述目标数据报文对应的所述目标应用名称;
[0023] 所述DPI深度识别引擎根据所述目标数据报文对应的三元组信息和所述目标应用名称更新所述第二应用名称对应关系表;
[0024] 所述DPI深度识别引擎将所述目标数据报文对应的三元组信息和所述目标应用名称发送至所述网关模块。
[0025] 在本申请一些实施方案中,所述三元组信息包括所述目标数据报文的IP地址、端口号以及协议类型。
[0026] 另一方面,本申请提供一种DPI识别装置,应用于智能网关,所述智能网关中集成有可相互通信的网关模块及DPI深度识别模块,所述网关模块中包括只对数据报文进行轻
量级识别的DPI识别引擎,所述DPI深度识别模块中集成有对数据报文进行深度识别的DPI
深度识别引擎,所述DPI识别引擎中配置有第一应用名称对应关系表;所述DPI识别装置包
括:
[0027] 所述网关模块,用于接收待识别的目标数据报文,将接收到的所述目标数据报文和目标应用名称的对应关系写入所述第一应用名称对应关系表;
[0028] 所述DPI识别引擎,用于对所述目标数据报文进行轻量级识别,判断是否能确定所述目标数据报文对应的所述目标应用名称,所述轻量级识别仅分析所述目标数据报文中的
目的地址、目的端口以及协议类型;若是,则从所述第一应用名称对应关系表中查找得到所
述目标数据报文对应的所述目标应用名称,若否,则将所述目标数据报文发送至所述DPI深
度识别模块;
[0029] 所述DPI深度识别引擎,用于将所述目标数据报文进行深度识别得到所述目标应用名称,将所述目标数据报文和所述目标应用名称发送至所述网关模块。
[0030] 在本申请一些实施方案中,所述网关模块还包括应用控制引擎和镜像功能引擎,所述DPI识别装置还包括MEC模块;
[0031] 所述应用控制引擎用于将所述DPI识别引擎对所述目标数据报文的识别结果生成控制策略;
[0032] 所述镜像功能引擎用于将所述目标数据报文镜像至所述MEC模块中;
[0033] 所述MEC模块用于对特性流量进行深度分析。
[0034] 另一方面,本申请还提供一种计算机设备,所述计算机设备包括:
[0035] 一个或多个处理器;
[0036] 存储器;以及
[0037] 一个或多个应用程序,其中所述一个或多个应用程序被存储于所述存储器中,并配置为由所述处理器执行以实现第一方面中任一项所述的DPI识别方法。
[0038] 第四方面,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行第一方面任一项所述的DPI识别方法中的步骤。
[0039] 本申请通过在网关模块中集成有只对数据报文进行轻量级识别的DPI识别引擎,DPI识别引擎中配置有第一应用名称对应关系表,在DPI深度识别模块中集成有对数据报文
进行深度识别的DPI深度识别引擎,DPI识别引擎与DPI深度识别引擎独立存在,当DPI识别
引擎根据待识别的目标数据报文无法从第一应用名称对应关系表中查找得到目标应用名
称时,将目标数据报文发送至DPI深度识别引擎进行深度识别得到该目标应用名称,并将该
目标数据报文和目标应用名称插入至第一应用名称对应关系表中,使得在识别过程中,该
第一应用名称对应关系表得到不断更新,降低对DPI深度识别引擎的依赖性,有利于提高识
别效率;此外,由于DPI深度识别引擎在独立进程中实现,DPI深度识别引擎出现异常不影响
网关模块的可靠性与识别率;控制功能明确,没有复杂的业务耦合。

附图说明

[0040] 为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于
本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附
图。
[0041] 图1是本申请实施例提供的DPI识别系统的场景示意图;
[0042] 图2是本申请实施例中提供的DPI识别方法的一个实施例流程示意图;
[0043] 图3是本申请实施例中提供的数据报文的结构示意图;
[0044] 图4是本申请实施例中步骤202的一个实施例流程示意图;
[0045] 图5是本申请实施例中步骤203的一个实施例流程示意图;
[0046] 图6是本申请实施例中步骤204的一个实施例流程示意图;
[0047] 图7是本申请实施例中提供的DPI识别装置的一个实施例结构示意图;
[0048] 图8是本申请实施例中提供的计算机设备的一个实施例结构示意图。

具体实施方式

[0049] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于
本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施
例,都属于本申请保护的范围。
[0050] 在本申请的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,
因此不能理解为对本申请的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解
为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、
“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本申请的描述中,“多
个”的含义是两个或两个以上,除非另有明确具体的限定。
[0051] 在本申请中,“示例性”一词用来表示“用作例子、例证或说明”。本申请中被描述为“示例性”的任何实施例不一定被解释为比其它实施例更优选或更具优势。为了使本领域任
何技术人员能够实现和使用本申请,给出了以下描述。在以下描述中,为了解释的目的而列
出了细节。应当明白的是,本领域普通技术人员可以认识到,在不使用这些特定细节的情况
下也可以实现本申请。在其它实例中,不会对公知的结构和过程进行详细阐述,以避免不必
要的细节使本申请的描述变得晦涩。因此,本申请并非旨在限于所示的实施例,而是与符合
本申请所公开的原理和特征的最广范围相一致。
[0052] 需要说明的是,本申请实施例方法由于是在计算设备中执行,各计算设备的处理对象均以数据或信息的形式存在,例如时间,实质为时间信息,可以理解的是,后续实施例
中若提及尺寸、数量、位置等,均为对应的数据存在,以便电子设备进行处理,具体此处不作
赘述。
[0053] 在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(例如,中央处理器(Central Processing Unit,CPU))、输入/输出接口、网络接口和
内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(Random 
Access Memory,RAM)和/或非易失性内存等形式,如只读存储器(Read Only Memory,ROM)
或闪存(Flash Memory)。内存是计算机可读介质的示例。
[0054] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。
计算机的存储介质的例子包括,但不限于相变内存(Phase-Change Memory,PCM)、可编程随
机存取存储器(Programmable Random Access Memory,PRAM)、静态随机存取存储器
(Static Random-Access Memory,SRAM)、动态随机存取存储器 (Dynamic Random Access 
Memory,DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读
存储器 (Electrically-Erasable Programmable Read-Only Memory,EEPROM)、快闪记忆
体或其他内存技术、只读光盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、数
字多功能光盘(Digital Versatile Disc  ,DVD)或其他光学存储、磁盒式磁带,磁带磁盘存
储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
[0055] 当然,本领域技术人员应能理解上述设备仅为举例,其他现有的或今后可能出现的设备如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
[0056] 本申请实施例提供一种DPI识别方法、装置、计算机设备及存储介质,以下分别进行详细说明。
[0057] 请参阅图1,图1为本申请实施例所提供的DPI识别系统的场景示意图,该DPI识别系统可以包括计算机设备100,计算机设备100中集成有DPI识别装置,如图1中的计算机设
备。本申请实施例中计算机设备100主要用于进行DPI识别。
[0058] 本发明实施例中,智能网关是指集成有DPI识别能力的网关,在终端设备进行播放视频、游戏、网页等业务的时候,终端设备通过智能网关连入到了互联网中执行各业务,从
而在终端通过智能网关接入到互联网中执行各种业务之后,智能网关集成DPI插件技术可
以获取到终端入网时的流经智能网关的各数据流中的各数据包。然后智能网关DPI插件提
取各数据包中的各业务的业务特征值,之后智能网关将各业务的业务特征值发送给DPI数
据平台。从而,DPI数据平台接收智能网关发送的各业务的业务特征值。
[0059] DPI是一种基于应用层及应用层以下的数据内容的应用类型识别技术。网络设备中可以存储有特征库以及特征库中包含的特征字符串与应用类型的对应关系。网络设备可
以通过特征字符串对数据包中的数据进行匹配,进而根据匹配到的特征字符串确定该数据
包的应用类型。该特征库可以根据实际需求进行设置和维护。
[0060] 本申请实施例中,该计算机设备100可以是独立的服务器,也可以是服务器组成的服务器网络或服务器集群,例如,本申请实施例中所描述的计算机设备100,其包括但不限
于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云服务器。
其中,云服务器由基于云计算(Cloud Computing)的大量计算机或网络服务器构成。
[0061] 另外,如图1所示,该DPI识别系统还可以包括存储器200,用于存储数据,如存储第一应用名称对应关系表和第二应用名称对应关系表。
[0062] 需要说明的是,图1所示的DPI识别系统的场景示意图仅仅是一个示例,本申请实施例描述的DPI识别系统以及场景是为了更加清楚的说明本申请实施例的技术方案,并不
构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着DPI识别系
统的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样
适用。
[0063] 首先,本申请实施例中提供一种DPI识别方法,该DPI识别方法的执行主体为DPI识别装置,该DPI识别装置应用于智能网关,所述智能网关中集成有可相互通信的网关模块及
DPI深度识别模块,所述网关模块中包括只对数据报文进行轻量级识别的DPI识别引擎,所
述DPI深度识别模块中集成有对数据报文进行深度识别的DPI深度识别引擎,所述DPI识别
引擎中配置有第一应用名称对应关系表;该DPI识别方法包括:所述网关模块接收待识别的
目标数据报文;通过所述DPI识别引擎对所述目标数据报文进行轻量级识别,判断是否能确
定所述目标数据报文对应的目标应用名称,所述轻量级识别仅分析所述目标数据报文中的
目的地址、目的端口以及协议类型;若是,则从所述第一应用名称对应关系表中查找得到所
述目标数据报文对应的目标应用名称,若否,则将所述目标数据报文发送至所述DPI深度识
别模块;通过所述DPI深度识别引擎将所述目标数据报文进行深度识别得到所述目标应用
名称,将所述目标数据报文和所述目标应用名称发送至所述网关模块;所述网关模块将接
收到的所述目标数据报文和所述目标应用名称的对应关系写入所述第一应用名称对应关
系表。
[0064] 如图2所示,为本申请实施例中DPI识别方法的一个实施例流程示意图,该DPI识别方法包括:
[0065] 步骤201:所述网关模块接收待识别的目标数据报文。
[0066] 在本实施例中,网关模块可以接收终端发送的目标数据报文,或者,网关模块也可以接收由其它网关模块转发的终端的目标数据报文。一般来说,每一会话信息包含多条目
标数据报文。
[0067] 步骤202:通过所述DPI识别引擎对所述目标数据报文进行轻量级识别,判断是否能确定所述目标数据报文对应的目标应用名称,所述轻量级识别仅分析所述目标数据报文
中的目的地址、目的端口以及协议类型。
[0068] 步骤203:若是,则从所述第一应用名称对应关系表中查找得到所述目标数据报文对应的目标应用名称,若否,则将所述目标数据报文发送至所述DPI深度识别模块。
[0069] 本申请实施例中,网关模块和DPI深度识别模块独立存在,即分别位于网关模块和DPI深度识别模块中的DPI识别引擎和DPI深度识别引擎独立存在,对于目标数据报文的识
别过程相互独立进行。
[0070] 需要说明的是,轻量级识别是相对于DPI深度识别在分析层次方面来说的,具体是指对目标数据报文中小于预设数据量的识别,例如,轻量级识别仅分析目标数据报文中4层
以下的内容,包括目的地址、目的端口以及协议类型,而DPI深度识别除了对前面的层次分
析外,还增加了应用层分析,识别各种应用及其内容,因此,轻量级识别对目标数据报文中
的识别数据量小于DPI深度识别对目标数据报文中的识别数据量。
[0071] 如图3所示,数据报文采用流表项管理应用识别信息,每条流表项Flow-item由一系列字段组成,包括基础字段、应用识别字段、转发字段以及其他字段,其中,应用识别字段
主要包括Proto.state、Proto.id以及App.id,其中Proto.state是指识别状态,识别状态包
括{init:初始化,probe:正在识别,end:识别完成};Proto.id是指协议ID,通用的协议标志
为{http,ftp,…};App.id是指应用ID,为具体应用的名称。DPI深度识别引擎除了识别数据
报文的目的地址、目的端口以及协议类型之外,还对数据报文的报文内容(如图3中的应用
识别字段)进行识别,也就是说,DPI深度识别相较于轻量级识别,通过增加对目标数据报文
中的应用识别字段中的内容的识别,从而实现对目标数据报文的深度识别。
[0072] DPI识别引擎中可以预先存储有第一应用名称关系表,第一应用名称关系表是指用于根据所述数据报文中的特征信息来确定应用名称的匹配表,特征信息可以为特征字符
串,当DPI识别引擎获取到待识别的目标数据报文后,具体地,可以对目标数据报文进行解
析,从而获取目标数据报文的数据内容。其中,该数据内容可以是应用层及应用层以下的数
据内容。DPI识别引擎可以将目标数据报文中的数据内容与特征库中的特征字符串进行匹
配,从而确定是否有与目标数据报文的数据内容相匹配的特征字符串,进而根据确定出的
特征字符串以及上述对应关系,确定目标数据报文对应的目标应用名称。
[0073] 如果能够确定目标数据报文对应的目标应用名称,则说明第一应用名称关系表中已储存有目标数据报文的特征信息和目标应用名称的对应关系,DPI识别引擎可以从第一
应用名称对应关系表中查找得到目标数据报文对应的目标应用名称。如果不能确定目标数
据报文对应的目标应用名称,则说明第一应用名称关系表中未储存有目标数据报文的特征
信息和目标应用名称的对应关系,通过DPI识别引擎的轻量级识别无法识别得到,因此,需
将该目标数据报文发送至DPI深度识别模块进行深度识别。
[0074] 步骤204:通过所述DPI深度识别引擎将所述目标数据报文进行深度识别得到所述目标应用名称,将所述目标数据报文和所述目标应用名称发送至所述网关模块。
[0075] 同样地,DPI深度识别引擎接收到网关模块未识别成功的目标数据报文,对目标数据报文的数据内容进行解析得到对应的特征字符串,根据特征字符串进行匹配得到目标数
据报文的目标应用名称,并将目标数据报文的特征字符串和目标应用名称的对应关系发送
至网关模块。
[0076] 步骤205:所述网关模块将接收到的所述目标数据报文和所述目标应用名称的对应关系写入所述第一应用名称对应关系表。
[0077] 网关模块将该对应关系发送至DPI识别引擎并写入第一应用名称关系表中进行储存,需要说明的是,本申请实施例中,在智能网关首次进行目标数据报文识别之前,第一应
用名称关系表可以设置为空表,也可以事先存储有预设数量的目标数据报文和目标应用名
称的对应关系,随着智能网关不断进行多次目标数据报文的识别,DPI深度识别引擎将识别
得到的目标数据报文和目标应用名称的对应关系发送并存储到DPI识别引擎,从而使得第
一应用名称关系表得到不断更新和扩容,因此,当存在相同应用名称的目标数据报文发送
至网关模块时,由于第一应用名称关系表中已储存有该目标数据报文和目标应用名称的对
应关系,DPI识别引擎可以快速识别查找得到对应的目标应用名称,无需发送至DPI深度识
别引擎进行深度识别,提高了识别效率,且随着智能网关识别进程推进,对于DPI深度识别
引擎的依赖则将不断降低。
[0078] 可以理解的是,仅对于网关模块中的DPI识别引擎无法识别得到目标应用名称的部分目标数据报文,才发送至DPI深度识别模块中的DPI深度识别引擎进行深度识别,而对
于已经存储在第一应用名称关系表的目标数据报文,或者已经有记录被识别过的目标数据
报文,则可以仅通过网关模块中的DPI识别引擎识别得到目标应用名称,无需发送至DPI深
度识别模块中的DPI深度识别引擎进行深度识别,从而DPI深度识别引擎只对少量数据报文
进行识别,极少数量的数据报文同时需要经过网关模块和DPI深度识别模块的两次处理,可
以减少处理所需的CPU,提升网关模块的处理性能;此外,当DPI深度识别模块中出现异常情
况时,并不会影响网关模块的可靠性和当前的识别率,两者独立性更高。
[0079] 如图4所示,在本申请一些实施例中,所述第一应用名称对应关系表为数据报文的三元组信息与应用名称的对应关系表,所述步骤202中所述通过所述DPI识别引擎对所述目
标数据报文进行轻量级识别,判断是否能确定所述目标数据报文对应的目标应用名称,包
括:
[0080] 步骤301:通过所述DPI识别引擎对所述目标数据报文进行轻量级识别,获得所述目标数据报文对应的三元组信息。
[0081] DPI识别引擎进行解析所述目标数据报文的数据内容,获得所述目标数据报文对应的三元组信息,其中,三元组信息包括所述目标数据报文的IP地址、端口号以及协议类
型。
[0082] 步骤302:通过所述DPI识别引擎查找所述第一应用名称对应关系表中是否包含与所述三元组信息对应的所述目标应用名称。
[0083] 将解析得到的三元组信息与第一应用名称对应关系表存储的对应关系进行匹配得到相对应的目标应用名称。
[0084] 步骤303:若是,则能确定所述目标数据报文对应的所述目标应用名称。
[0085] 在本申请一些实施例中,所述步骤203中所述将所述目标数据报文发送至所述DPI深度识别模块,包括:所述DPI识别引擎将多条所述目标数据报文的前N条数据报文指定发
送至所述DPI深度识别模块。
[0086] 具体地,由于网关模块接收到的单条会话信息往往包含多条目标数据报文,为了加快识别速度,当多条目标数据报文中的部分数据报文已经符合某些应用名称的情况,不
需要更加详细的后续数据报文才能确定出真正的应用名称,此种情况下,仅可将多条目标
数据报文中的前N条数据报文指定发送至DPI深度识别模块仅可识别得到目标应用名称,无
需将全量数据报文发送至DPI深度识别模块,可以提高识别效率。例如,单条会话信息包含
100条目标数据报文,可以将前10条数据报文发送至DPI深度识别模块进行深度识别。
[0087] 但数据报文的一部分信息已经符合某些应用类型的情况,需要更加详细的后续数据报文才能确定出真正的应用类型,即需要多个data字段不为空的数据报文才能准确识别
出应用类型。
[0088] 如图5所示,在本申请一些实施例中,所述步骤203中所述将所述目标数据报文发送至所述DPI深度识别模块,包括:
[0089] 步骤401:在所述目标数据报文中的头部扩展字段写入识别状态码。
[0090] 每一次将识别状态码插入所述目标数据报文的头部扩展字段后,调整目标数据报文头长度、目标数据报文长度以及校验和做适应性调整。
[0091] 步骤402:将所述识别状态码发送至所述DPI深度识别模块,以指示所述DPI深度识别引擎根据所述识别状态码对所述目标数据报文进行深度识别。
[0092] DPI深度识别引擎对携带有识别状态码的目标数据报文进行深度识别,防止其它已经过DPI识别引擎识别得到目标应用名称的数据报文被误发送至DPI深度识别引擎。
[0093] 如图6所示,在本申请一些实施例中,所述步骤204中所述DPI深度识别引擎中配置有数据报文的三元组信息与应用名称的第二应用名称对应关系表,所述通过DPI深度识别
引擎将所述目标数据报文进行深度识别得到所述目标应用名称,将所述目标数据报文和所
述目标应用名称发送至所述网关模块,包括:
[0094] 步骤501:所述DPI深度识别引擎通过解析所述目标数据报文获得所述目标数据报文对应的三元组信息以及所述目标数据报文的报文内容。
[0095] DPI深度识别引擎进行解析所述目标数据报文的数据内容,获得所述目标数据报文对应的三元组信息和报文内容,其中,三元组信息包括所述目标数据报文的IP地址、端口
号以及协议类型,报文内容包括目标数据报文的应用识别字段中的内容。
[0096] 步骤502:所述DPI深度识别引擎根据所述报文内容,确定所述目标数据报文对应的所述目标应用名称。
[0097] 将解析得到的三元组信息、报文内容与第二应用名称对应关系表存储的对应关系进行匹配得到相对应的目标应用名称。
[0098] 步骤503:所述DPI深度识别引擎根据所述目标数据报文对应的三元组信息和所述目标应用名称更新所述第二应用名称对应关系表。
[0099] 步骤504:所述DPI深度识别引擎将所述目标数据报文对应的三元组信息和所述目标应用名称发送至所述网关模块。
[0100] 所述目标数据报文对应的三元组信息和所述目标应用名称储存至所述第一应用名称对应关系表中,随着智能网关不断进行多次目标数据报文的识别,第一应用名称对应
关系表中的数据数量不断向第二应用名称对应关系表的数据数量趋近,当第一应用名称对
应关系表和第二应用名称对应关系表保持一致时,目标数据报文仅仅需通过网关模块中的
DPI识别引擎进行轻量级识别即可成功识别得到对应的目标应用名称,而完全不需要发送
至DPI深度识别引擎进行深度识别,从而识别效率提高。
[0101] 如图7所示,为了更好实施本发明实施例中DPI识别方法,在DPI识别方法基础之上,本发明实施例中还提供一种DPI识别装置600,所述DPI识别装置600应用于智能网关,所
述智能网关中集成有可相互通信的网关模块601及DPI深度识别模块602,所述网关模块601
中包括只对数据报文进行轻量级识别的DPI识别引擎6011,所述DPI深度识别模块602中集
成有对数据报文进行深度识别的DPI深度识别引擎6021,所述DPI识别引擎6021中配置有第
一应用名称对应关系表;
[0102] 所述DPI识别装置600包括:
[0103] 所述网关模块601,用于接收待识别的目标数据报文,将接收到的所述目标数据报文和目标应用名称的对应关系写入所述第一应用名称对应关系表;
[0104] 所述DPI识别引擎6011,用于对所述目标数据报文进行轻量级识别,判断是否能确定所述目标数据报文对应的所述目标应用名称,所述轻量级识别仅分析所述目标数据报文
中的目的地址、目的端口以及协议类型;若是,则从所述第一应用名称对应关系表中查找得
到所述目标数据报文对应的所述目标应用名称,若否,则将所述目标数据报文发送至所述
DPI深度识别模块602;
[0105] 所述DPI深度识别引擎6021,用于将所述目标数据报文进行深度识别得到所述目标应用名称,将所述目标数据报文和所述目标应用名称发送至所述网关模块601。
[0106] 所述网关模块601还包括应用控制引擎6012和镜像功能引擎6013,所述DPI识别装置600还包括MEC模块603;其中,所述应用控制引擎6012用于将所述DPI识别引擎6011对所
述目标数据报文的识别结果生成控制策略;所述镜像功能引擎6013用于将所述目标数据报
文镜像至所述MEC模块603中;所述MEC模块603用于对特性流量进行深度分析。
[0107] 需要说明的是,本申请实施例中,将现有DPI深度识别模块602中的能力拆解为三部分,包括应用识别能力、应用控制能力以及深度分析能力,其中,将具有应用识别能力的
DPI深度识别引擎6021保留在DPI深度识别模块602中,使得DPI深度识别引擎6021独立存
在,只对数据报文进行深度识别;将具有应用控制能力的应用控制引擎6012从DPI深度识别
模块602中剥离,并集成于网关模块601中,由网关模块601支持该功能;对于具有深度分析
能力的各个引擎独立到MEC模块603中,以对特性流量进行深度分析,网关模块601通过所述
镜像功能引擎6013将该类型的数据报文镜像到MEC模块603中;此外,对于需要话单分析的
功能将Flowinfo数据发送给MEC模块603。由于DPI深度识别模块602和网关模块601独立设
置,控制功能明确,没有复杂的业务耦合,DPI深度识别模块602中的DPI深度识别引擎6021
可以独立包装产品,独立演进,便于提供为第三方使用。
[0108] 本申请实施例还提供一种计算机设备,其集成了本申请实施例所提供的任一种DPI识别装置,所述计算机设备包括:
[0109] 一个或多个处理器;
[0110] 存储器;以及
[0111] 一个或多个应用程序,其中所述一个或多个应用程序被存储于所述存储器中,并配置为由所述处理器执行上述DPI识别方法实施例中任一实施例中所述的DPI识别方法中
的步骤。
[0112] 本申请实施例还提供一种计算机设备,其集成了本申请实施例所提供的任一种DPI识别装置。如图8所示,其示出了本申请实施例所涉及的计算机设备的结构示意图,具体
来讲:
[0113] 该计算机设备可以包括一个或者一个以上处理核心的处理器701、一个或一个以上计算机可读存储介质的存储器702、电源703和输入单元704等部件。本领域技术人员可以
理解,图8中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或
更少的部件,或者组合某些部件,或者不同的部件布置。其中:
[0114] 处理器701是该计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器702内的软件程序和/或模块,以及调用存储
在存储器702内的数据,执行计算机设备的各种功能和处理数据,从而对计算机设备进行整
体监控。可选的,处理器701可包括一个或多个处理核心;优选的,处理器701可集成应用处
理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调
制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处
理器701中。
[0115] 存储器702可用于存储软件程序以及模块,处理器701通过运行存储在存储器702的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器702可主要包括存储程
序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比
如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的
数据等。此外,存储器702可以包括高速随机存取存储器,还可以包括非易失性存储器,例如
至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器702还可以
包括存储器控制器,以提供处理器701对存储器702的访问。
[0116] 计算机设备还包括给各个部件供电的电源703,优选的,电源703可以通过电源管理系统与处理器701逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理
等功能。电源703还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检
测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
[0117] 该计算机设备还可包括输入单元704,该输入单元704可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信
号输入。
[0118] 尽管未示出,计算机设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,计算机设备中的处理器701会按照如下的指令,将一个或一个以上的应用程序的进程对
应的可执行文件加载到存储器702中,并由处理器701来运行存储在存储器702中的应用程
序,从而实现各种功能,如下:
[0119] 所述网关模块接收待识别的目标数据报文;
[0120] 通过所述DPI识别引擎对所述目标数据报文进行轻量级识别,判断是否能确定所述目标数据报文对应的目标应用名称,所述轻量级识别仅分析所述目标数据报文中的目的
地址、目的端口以及协议类型;
[0121] 若是,则从所述第一应用名称对应关系表中查找得到所述目标数据报文对应的目标应用名称,若否,则将所述目标数据报文发送至所述DPI深度识别模块;
[0122] 通过所述DPI深度识别引擎将所述目标数据报文进行深度识别得到所述目标应用名称,将所述目标数据报文和所述目标应用名称发送至所述网关模块;
[0123] 所述网关模块将接收到的所述目标数据报文和所述目标应用名称的对应关系写入所述第一应用名称对应关系表。
[0124] 本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存
储介质中,并由处理器进行加载和执行。
[0125] 为此,本申请实施例提供一种计算机可读存储介质,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光
盘等。其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行本申请实施例所
提供的任一种DPI识别方法中的步骤。例如,所述计算机程序被处理器进行加载可以执行如
下步骤:
[0126] 所述网关模块接收待识别的目标数据报文;
[0127] 通过所述DPI识别引擎对所述目标数据报文进行轻量级识别,判断是否能确定所述目标数据报文对应的目标应用名称,所述轻量级识别仅分析所述目标数据报文中的目的
地址、目的端口以及协议类型;
[0128] 若是,则从所述第一应用名称对应关系表中查找得到所述目标数据报文对应的目标应用名称,若否,则将所述目标数据报文发送至所述DPI深度识别模块;
[0129] 通过所述DPI深度识别引擎将所述目标数据报文进行深度识别得到所述目标应用名称,将所述目标数据报文和所述目标应用名称发送至所述网关模块;
[0130] 所述网关模块将接收到的所述目标数据报文和所述目标应用名称的对应关系写入所述第一应用名称对应关系表。
[0131] 在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文针对其他实施例的详细描述,此处不再赘述。
[0132] 具体实施时,以上各个单元或结构可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元或结构的具体实施可参见前面的方法
实施例,在此不再赘述。
[0133] 以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
[0134] 以上对本申请实施例所提供的一种DPI识别方法、装置、计算机设备及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施
例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依
据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容
不应理解为对本申请的限制。