CN109525587A - 一种数据包的识别方法及装置 - Google Patents
一种数据包的识别方法及装置 Download PDFInfo
- Publication number
- CN109525587A CN109525587A CN201811457683.8A CN201811457683A CN109525587A CN 109525587 A CN109525587 A CN 109525587A CN 201811457683 A CN201811457683 A CN 201811457683A CN 109525587 A CN109525587 A CN 109525587A
- Authority
- CN
- China
- Prior art keywords
- recognition result
- packet
- target
- data stream
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2475—Traffic characterised by specific attributes, e.g. priority or QoS for supporting traffic characterised by the type of applications
Abstract
本申请实施例提供了一种数据包的识别方法及装置,涉及通信技术领域,所述方法包括:获取待识别的目标数据包;对所述目标数据包进行深度报文检测DPI识别,并根据所述目标数据包的数据信息,更新所述目标数据包所属的目标数据流的流量特征信息;根据更新后的流量特征信息对所述目标数据包进行深度动态流检测DFI识别;如果通过所述DPI识别确定出第一识别结果,且所述第一识别结果与通过所述DFI识别确定出的第二识别结果相同,则将所述第一识别结果作为所述目标数据包的识别结果。采用本申请可以降低DPI的误检率。
Description
技术领域
本申请涉及通信技术领域,特别是涉及一种数据包的识别方法及装置。
背景技术
DPI(Deep Packet Inspection,深度报文检测)是常用的应用识别方式之一,具有简单高效、以及检测的细粒度化等特点。采用DPI进行应用识别时,技术人员需要设置并维护特征库,特征库包含多个特征字符串。针对网络中任一待识别的数据包,网络设备可以获取该数据包的应用层以下的数据内容,然后,根据特征库中的特征字符串,对该数据内容进行匹配,根据匹配到的特征字符串,确定该数据包的应用类型,以实现对网络中的流量的应用类型进行识别,进而实现业务控制或业务统计等功能。
然而,特征库中的特征字符串是由技术人员设置并维护的,而网络中应用类型的更新频率较高,因此,特征库中的特征字符串的会存在更新滞后的问题,导致DPI的误检率较高。
发明内容
本申请实施例的目的在于提供一种数据包的识别方法及装置,以实现降低DPI的误检率。具体技术方案如下:
第一方面,提供了一种数据包的识别方法,所述方法包括:
获取待识别的目标数据包;
对所述目标数据包进行深度报文检测DPI识别,并根据所述目标数据包的数据信息,更新所述目标数据包所属的目标数据流的流量特征信息;
根据更新后的流量特征信息对所述目标数据包进行深度动态流检测DFI识别;
如果通过所述DPI识别确定出第一识别结果,且所述第一识别结果与通过所述DFI识别确定出的第二识别结果相同,则将所述第一识别结果作为所述目标数据包的识别结果。
可选的,所述方法还包括:
如果通过所述DPI识别未确定出第一识别结果,则将所述第二识别结果作为所述目标数据包的识别结果。
可选的,所述获取待识别的目标数据包和对所述目标数据包进行DPI识别之间,所述方法还包括:
确定所述目标数据包所属的目标数据流;
判断本地是否存储有所述目标数据流对应的识别结果;
如果已存储所述目标数据流对应的识别结果,则执行所述更新所述目标数据包对应的流量特征信息步骤;
如果未存储所述目标数据流对应的识别结果,则执行所述对所述目标数据包进行DPI识别步骤。
可选的,所述方法还包括:
如果未存储所述目标数据流对应的识别结果,则判断已获取到的所述目标数据流的数据包的个数是否超过预设数目阈值;
如果已获取到所述目标数据流的数据包的个数超过预设数目阈值,则输出检测报告,所述检测报告用于表示所述目标数据流识别失败;
如果已获取到所述目标数据流的数据包的个数未超过预设数目阈值,则执行所述对所述目标数据包进行DPI识别步骤。
可选的,所述方法还包括:
如果通过所述DPI识别确定出第一识别结果,则将所述第一识别结果作为所述目标数据包所属的目标数据流的识别结果进行存储;
如果所述第一识别结果与所述第二识别结果不相同,则删除所述第一识别结果。
第二方面,提供了一种数据包的识别装置,所述装置包括:
获取模块,用于获取待识别的目标数据包;
DPI识别模块,用于对所述目标数据包进行深度报文检测DPI识别,并根据所述目标数据包的数据信息,更新所述目标数据包所属的目标数据流的流量特征信息;
DFI识别模块,用于根据更新后的流量特征信息对所述目标数据包进行深度动态流检测DFI识别;
第一判断模块,用于如果通过所述DPI识别确定出第一识别结果,且所述第一识别结果与通过所述DFI识别确定出的第二识别结果相同,则将所述第一识别结果作为所述目标数据包的识别结果。
可选的,所述装置还包括:
第一确定模块,用于如果通过所述DPI识别未确定出第一识别结果,则将所述第二识别结果作为所述目标数据包的识别结果。
可选的,所述装置还包括:
第二确定模块,用于确定所述目标数据包所属的目标数据流;
第二判断模块,用于判断本地是否存储有所述目标数据流对应的识别结果;如果已存储所述目标数据流对应的识别结果,则触发所述DPI识别模块执行所述更新所述目标数据包对应的流量特征信息步骤;如果未存储所述目标数据流对应的识别结果,则触发所述DPI识别模块执行所述对所述目标数据包进行DPI识别步骤。
可选的,所述装置还包括第三判断模块,用于:
如果未存储所述目标数据流对应的识别结果,则判断已获取到的所述目标数据流的数据包的个数是否超过预设数目阈值;
如果已获取到所述目标数据流的数据包的个数超过预设数目阈值,则输出检测报告,所述检测报告用于表示所述目标数据流识别失败;
如果已获取到所述目标数据流的数据包的个数未超过预设数目阈值,则触发所述DPI识别模块执行所述对所述目标数据包进行DPI识别步骤。
可选的,所述装置还包括:
存储模块,用于如果通过所述DPI识别确定出第一识别结果,则将所述第一识别结果作为所述目标数据包所属的目标数据流的识别结果进行存储;
删除模块,用于如果所述第一识别结果与所述第二识别结果不相同,则删除所述第一识别结果。
第三方面,提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述第一方面任一所述的方法步骤。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一所述的方法步骤。
第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面任一所述的数据包的识别方法步骤。
本申请实施例中,当网络设备获取到待识别的目标数据包时,网络设备先对目标数据包进行深度报文检测DPI识别,并根据目标数据包的数据信息,更新目标数据包所属的目标数据流的流量特征信息,然后,根据更新后的流量特征信息对目标数据包进行深度动态流检测DFI识别,如果通过DPI识别确定出第一识别结果,且第一识别结果与通过DFI识别确定出的第二识别结果相同,则将第一识别结果作为目标数据包的识别结果。这样,只有在两个识别结果相同时,才将该识别结果作为目标数据包的最终识别结果,与现有技术仅通过DPI识别数据包的技术方案相比,能够有效的降低误检率,提高识别的准确度。
当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种数据包的识别方法的流程图;
图2为本申请实施例提供的一种数据包的识别方法示例的流程图;
图3为本申请实施例提供的一种数据包的识别装置的结构示意图;
图4为本申请实施例提供的一种数据包的识别装置的结构示意图;
图5为本申请实施例提供的一种数据包的识别装置的结构示意图;
图6为本申请实施例提供的一种数据包的识别装置的结构示意图;
图7为本申请实施例提供的一种数据包的识别装置的结构示意图;
图8为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种数据包的识别方法,该方法可以由网络设备执行。该网络设备可以是具有DPI和DFI(Deep/Dynamic Flow Inspection,深度/动态流检测)识别功能的设备,例如,网络设备可以是防火墙等安全设备,也可以路由器、交换机等设备。其中,DPI是一种基于应用层及应用层以下的数据内容的应用类型识别技术。网络设备中可以存储有特征库以及特征库中包含的特征字符串与应用类型的对应关系。网络设备可以通过特征字符串对数据包中的数据进行匹配,进而根据匹配到的特征字符串确定该数据包的应用类型。该特征库可以根据实际需求进行设置和维护。
DFI是一种基于流量行为的应用类型识别技术,即不同的应用类型体现在会话连接或数据流上的行为特征各不相同。例如,网上IP语音流量体现在流量上的行为特征为:RTP流的包长相对固定,一般在130~220byte,连接速率较低,为20~84kbit/s,同时会话持续时间也相对较长,一般大于10s;而基于P2P下载应用的数据流体现在流量上的行为特征为:平均包长都在450byte以上、下载时间长、连接速率高、传输层协议为TCP等。DFI技术正是基于这一系列流量的行为特征,建立流量特征模型,通过分析流量特征信息来与流量模型对比,从而实现识别应用类型。相应的,网络设备中可以预先存储有流量模型,以实现DFI识别。
本申请实施例中,当网络设备获取到待识别的目标数据包时,网络设备先对目标数据包进行DPI识别,并根据目标数据包的数据信息,更新目标数据包对应的流量特征信息。然后,网络设备根据流量特征信息对目标数据包进行DFI识别。如果通过DPI识别确定出第一识别结果,且第一识别结果与通过DFI识别确定出的第二识别结果相同,则将第一识别结果作为目标数据包的识别结果。这样,通过DPI和DFI对目标数据包进行两次识别,能够得到两个识别结果(即两个应用类型)。只有在识别出的应用类型相同时,才将该识别结果作为目标数据包的最终识别结果。与现有技术仅通过DPI识别数据包的技术方案相比,能够有效的降低误检率,提高识别的准确度。
如图1所示,本申请实施例提供的数据包的识别方法具体可以包括以下步骤。
步骤101,获取待识别的目标数据包。
在实施中,网络设备可以获取待识别的目标数据包。例如,网络设备可以接收用户设备发送的数据包,或者,网络设备也可以接收其他网络设备转发的用户设备的数据包。
步骤102,对目标数据包进行DPI识别,并根据目标数据包的数据信息,更新目标数据包所属的目标数据流的流量特征信息。
在实施中,网络设备中可以预先存储有用于进行DPI识别的特征库以及特征库中特征字符串与应用类型的对应关系。该特征库可以包含特征字符串,特征字符串通常用正则表达式表示,其中,特征字符串可以是五元组信息,或者,也可以是由技术人员设置根据需要设置的字符串,比如针对应用层的数据中的关键字。网络设备获取到待识别的目标数据包后,可以对目标数据包进行解析(即对目标数据包进行拆包),从而获取目标数据包的数据内容。其中,该数据内容可以是应用层及应用层以下的数据内容。网络设备可以将目标数据包的数据内容与特征库中的特征字符串进行匹配,从而确定是否有与目标数据包相匹配的特征字符串,进而根据确定出的特征字符串以及上述对应关系,确定目标数据包的识别结果(即第一识别结果)。其中,该识别结果可以表示目标数据包的应用类型,例如,该识别结果可以为应用类型的标识。
网络设备还可以统计目标数据包所属的目标数据流的流量特征信息。其中,流量特征信息为能够反映目标数据包所属的目标数据流的流量特征的信息。例如,流量特征信息可以包含总包数、总字节数、平均字节数、长包数目、连接速率和流量持续时长等。其中,流量特征信息的统计方式例如,总包数可以是网络设备已获取到的目标数据流的数据包的个数,通常,具有相同五元组信息的数据包即同一数据流的数据包;总字节数是可以是网络设备已接收到的目标数据流的总数据量,即已接收到的目标数据流的各数据包的数据量之和;平均字节数可以通过将预设时长内接收到的目标数据流的字节数除以该预设时长得到;长包数目可以是数据包的字节数超过预设字节数阈值的数据包的个数;连接速率可以是各采样时间点采集到的预设单位时长内的字节数;流量持续时长可以是从接收到目标数据流的第一个数据包的时间到当前时间的时长。
例如,目标数据包的源地址为192.168.1、源端口为10000、协议号为TCP、目的地址为121.14.88.76、目的端口为80,包含的字节数为200,目标数据包的接收时间为10:00:10。对目标数据包进行DPI识别,可以匹配出特征字符串为:源地址为192.168.1、源端口为10000、协议号为TCP、目的地址为121.14.88.76、目的端口为80。如果当前目标数据包所属的目标数据流的流量特征信息为:总包数为10、总字节数为1800、流量持续时长为9s、目标数据流的起始接收时间为10:00:00,则可以将总包数更新为11、总字节数更新为2000、流量持续时长更新为10s。
每当网络设备对一个目标数据包进行DPI识别后,网络设备可以更新该目标数据包所属的目标数据流的流量特征信息(即目标数据包对应的流量特征信息)。例如,网络设备可以将总包数的数值加1,得到更新后的总包数;网络设备可以将当前总字节数加上目标数据包的字节数,得到更新后的总字节数。另外,网络设备每次更新流量特征信息时,还可以记录流量特征信息的更新时间、并更新目标数据流的持续时间。
可选的,网络设备中可以设置有内存池,网络设备可以对该内存池进行写操作,以便在内存池中存储流量特征信息、以及该流量特征信息对应的数据流的标识,其中,数据流的标识可以是该数据流的五元组信息,或者,也可以是其他能够唯一标识数据流的信息,本申请实施例不做限定。
其中,如果当前未存储目标数据流的流量特征信息,则说明目标数据包为目标数据流的第一个数据包,网络设备可以从目标数据包中提取目标数据流的标识(比如提取目标数据包的五元组信息作为目标数据流的标识),然后根据目标数据包确定流量特征信息,并在内存池中存储该流量特征信息和目标数据流的标识的对应关系。
可选的,网络设备对目标数据包进行DPI识别后,可以判断是否确定出目标数据包的第一识别结果,如果通过所述DPI识别确定出第一识别结果,则将目标数据包的第一识别结果,作为目标数据包所属的目标数据流的识别结果进行存储。具体的处理过程可以为:网络设备对内存池进行写操作,存储第一识别结果。其中,第一识别结果可以表示目标数据包的应用类型,例如,第一识别结果可以包括应用类型的标识。另外,第一识别结果还可以包括通过DPI识别得到的识别信息,比如上述目标数据包的五元组信息。网络设备可以将第一识别结果与流量特征信息对应存储。
可选的,网络设备接收到目标数据包后,也可以先确定目标数据包所属的目标数据流,然后判断本地是否存储目标数据流对应的识别结果。如果已存储目标数据流对应的识别结果,则只更新目标数据包对应的流量特征信息,不进行其他处理;如果未存储目标数据流对应的识别结果,则执行步骤102。
在实施中,网络设备接收到目标数据包后,可以确定目标数据包所属的目标数据流的标识。以目标数据流的标识为五元组信息为例,网络设备可以提取目标数据包的五元组信息。然后,在内存池中查询是否存在该五元组信息对应的识别结果。如果存在,则说明已存在目标数据流对应的识别结果,也即,目标数据流为已识别的数据流。由于同一数据流中的数据包的识别结果(比如应用类型)相同,因此,无需对目标数据包进行识别,仅需执行更新目标数据包对应的流量特征信息的步骤即可。如果不存在,则说明不存在目标数据流对应的识别结果,也即,目标数据流为未识别的数据流,因此,需要对目标数据包进行识别,执行步骤102。
可选的,对于未存储目标数据流对应的识别结果的情况,网络设备在执行对目标数据包进行DPI识别步骤之前,还可以先判断已获取到的目标数据流的数据包的个数是否超过预设数目阈值。如果已获取到目标数据流的数据包的个数超过预设数目阈值,则输出检测报告,检测报告用于表示目标数据流识别失败;如果已获取到目标数据流的数据包的个数未超过预设数目阈值,则执行对目标数据包进行DPI识别步骤。
在实施中,如果网络设备判定未存储目标数据流对应的识别结果,则网络设备可以查询当前存储的目标数据流的流量特征信息,获取总包数的数值。总包数即网络设备已获取到的目标数据流的数据包的个数。网络设备中可以预先存储有总包数的数目阈值(即预设数目阈值)。网络设备可以判断该总包数的数值是否超过预设数目阈值。如果该总包数的数值超过预设数目阈值,则说明网络设备已经对目标数据流进行了多次识别(包括DPI识别和DFI识别),但仍未得到目标数据流的识别结果。网络设备可以放弃对目标数据流的识别,输出检测报告,该检测报告用于表示目标数据流识别失败。该检测报告可以包括目标数据流的识别失败的提示信息,还可以包括目标数据流的一些流量信息,比如目标数据流的五元组信息、流量特征信息和数据包的应用层信息等,本申请实施例不做限定。
可选的,如果已获取到目标数据流的数据包的个数未超过预设数目阈值,则可以执行步骤102。
可选的,网络设备虽然放弃对目标数据流的数据包的识别,但是网络设备仍可以更新目标数据流的流量特征信息,以便于后续可以参考流量特征信息,分析目标数据流的应用类型。
例如,预设数目阈值为100,网络设备接收到数据包A后,提取数据包A的五元组信息,进而根据该五元组信息在内存池中查询应用类型,如果内存储中未查询到该五元组信息对应的应用类型,则说明未识别出具有该五元组信息的数据流的应用类型。网络设备进一步查询该五元组信息对应的总包数,假设查询到的总包数为120,则判定无法识别该数据流的应用类型,网络设备输出检测报告,并更新该数据流的流量特征信息;假设查询到的总包数为90,则对数据包A进行DPI识别和DFI识别。
步骤103,根据更新后的流量特征信息对目标数据包进行DFI识别。
在实施中,网络设备可以从内存池中,获取目标数据包对应的流量特征信息,然后,根据该流量特征信息确定目标数据包所属的目标数据流的流量行为特征。其中,流量特征信息可以包括总包长、总包数、长包数目、总字节数和流量持续时长等,网络设备可以根据这些流量特征信息,确定目标数据流的平均包长、突发性参数、长包比例和上下行流量比等流量行为特征。例如,可以用总包长除以总包数,得到平均包长;可以用长包数目除以总包数,得到长包比例。
网络设备可以对计算出的流量行为特征进行分析,得到目标数据包的第二识别结果。其中,第二识别结果可以表示目标数据包的应用类型,例如,第二识别结果可以包括应用类型的标识。另外,第二识别结果还可以包括上述目标数据包的五元组信息。
例如,网络设备可以将计算出的流量行为特征与预设的各应用类型的流量行为模型进行匹配,从而确定与该流量行为特征相匹配的流量行为模型,将该流量行为模型对应的应用类型作为目标数据包的应用类型。
步骤104,如果通过DPI识别确定出第一识别结果,且第一识别结果与通过DFI识别确定出的第二识别结果相同,则将第一识别结果作为目标数据包的识别结果。
在实施中,网络设备确定出第二识别结果后,可以判断通过DPI识别是否确定出第一识别结果。如果通过DPI识别确定出第一识别结果,则将第一识别结果第二识别结果进行对比,以判断第一识别结果与第二识别结果相同。例如,第一识别结果和第二识别结果均为应用类型的标识,网络设备可以比较这两个应用类型的标识是否相同,若相同,则认为第一识别结果与第二识别结果相同。
如果网络设备判定第一识别结果与第二识别结果相同,则说明识别结果可信,网络设备可以将第一识别结果(或第二识别结果)作为目标数据包的识别结果。
可选的,对于上述在内存池中存储识别结果的情况,如果网络设备判定第一识别结果与第二识别结果相同,则网络设备保持内存池中的识别结果不变,也即,确认内存池中的识别结果为该目标数据包的最终识别结果。如果第一识别结果与第二识别结果不相同,则说明识别结果中存在误识别,网络设备从内存池中删除第一识别结果,后续,网络设备接收到目标数据流的下一个数据包时,可以重复上述步骤101~步骤104对该数据包进行识别,以便重新检测目标数据流的应用类型。
可选的,如果网络设备通过DPI识别未确定出第一识别结果,则将第二识别结果作为目标数据包的识别结果。
在实施中,网络设备对数据包进行DPI识别时,可能会出现识别失败的情况,即,网络设备通过DPI未确定出第一识别结果。例如,当目标数据包为加密传输的数据包,网络设备通过DPI技术将无法识别出目标数据包的应用类型。或者,当目标数据包为新的应用类型/协议的数据包时,如果特征库未及时更新,则网络设备也无法识别出目标数据包的应用类型。而DFI是一种基于流量行为的应用类型识别技术,无需对数据包的内容分析,因此,能够通过DFI识别出目标数据包的应用类型,得到识别结果。基于此,如果网络设备通过DPI识别未确定出第一识别结果,则可以将通过DFI识别确定出的识别结果(即第二识别结果)作为目标数据包的识别结果。
本申请实施例中,通过DPI和DFI对目标数据包进行两次识别,能够得到两个识别结果(即两个应用类型)。只有在识别出的应用类型相同时,才将该识别结果作为目标数据包的最终识别结果,与现有技术仅通过DPI识别数据包的应用类型相比,能够有效的降低误检率,提高识别的准确度。
假设DPI的识别准确率为PDPI,DFI的识别准确率为PDFI(0<PDPI,PDFI<1),二者相互独立。那么本方案的识别准确率P可以表示为:
P=1-(1-PDPI)(1-PDFI)
相比于单独的DPI技术,识别结果准确率提高了:
⊿P=P-PDPI=PDFI(1-PDPI)
而且,本申请实施例提供的数据包的识别方法,将DPI识别与DFI识别进行了结合,增加的DFI检测技术能够通过分析会话连接流的包长、连接速率、传输字节量、包与包之间的间隔等信息来与各应用类型的流量行为模型对比,从而实现鉴别应用类型。对于加密的数据包,数据流的流量行为特征不会因为加密而改变。因此,弥补了传统的DPI检测方法对加密数据包检测的缺失。
另外,由于同一应用类型的新应用和旧应用的流量特征通常不会出现大的变化,因此,在DPI的特征库更新不及时的情况下,依旧能够通过DFI识别出新型的应用,并且,不需要频繁升级DFI的流量行为模型。
如图2所示,为本申请实施例提供的一种数据包的识别方法的示例,具体可以包括以下步骤。
步骤201,获取待识别的目标数据包。
步骤202,确定与目标数据包五元组信息相同的数据流,得到目标数据包所属的目标数据流。
步骤203,判断当前是否存储目标数据流对应的识别结果。
如果已存储目标数据流对应的识别结果,则执行步骤207。
如果未存储目标数据流对应的识别结果,则执行步骤204。
步骤204,判断已获取到的目标数据流的数据包的个数是否超过预设数目阈值。
如果已获取到目标数据流的数据包的个数超过预设数目阈值,则执行步骤205。
如果已获取到目标数据流的数据包的个数未超过预设数目阈值,则执行步骤206。
步骤205,输出检测报告,检测报告用于表示目标数据流识别失败。
步骤206,对目标数据包进行DPI识别。
步骤207,更新目标数据包对应的流量特征信息。
步骤208,根据流量特征信息对目标数据包进行DFI识别。
步骤209,判断通过DPI识别是否确定出第一识别结果。
如果通过DPI识别确定出第一识别结果,则执行步骤210;如果通过DPI识别未确定出第一识别结果,则执行步骤213。
步骤210,判断第一识别结果与第二识别结果是否相同。
如果第一识别结果与第二识别结果相同,则执行步骤211。
如果第一识别结果与第二识别结果不相同,则执行步骤212。
步骤211,将第一识别结果作为目标数据包的识别结果,并保持缓存池中的第一识别结果不变。
步骤212,删除内存池中的第一识别结果。
步骤213,将第二识别结果作为目标数据包的识别结果。
基于相同的技术构思,如图3所示,本申请实施例还提供了一种数据包的识别装置,该装置包括:
获取模块310,用于获取待识别的目标数据包;
DPI识别模块320,用于对所述目标数据包进行深度报文检测DPI识别,并根据所述目标数据包的数据信息,更新所述目标数据包所属的目标数据流的流量特征信息;
DFI识别模块330,用于根据更新后的流量特征信息对所述目标数据包进行深度动态流检测DFI识别;
第一判断模块340,用于如果通过所述DPI识别确定出第一识别结果,且所述第一识别结果与通过所述DFI识别确定出的第二识别结果相同,则将所述第一识别结果作为所述目标数据包的识别结果。
可选的,如图4所示,该装置还包括:
第一确定模块350,用于如果通过所述DPI识别未确定出第一识别结果,则将所述第二识别结果作为所述目标数据包的识别结果。
可选的,如图5所示,该装置还包括:
第二确定模块360,用于确定目标数据包所属的目标数据流;
第二判断模块370,用于判断本地是否存储有所述目标数据流对应的识别结果;如果已存储目标数据流对应的识别结果,则触发DPI识别模块320执行更新目标数据包对应的流量特征信息步骤;如果未存储目标数据流对应的识别结果,则触发DPI识别模块320执行对目标数据包进行DPI识别步骤。
可选的,如图6所示,该装置还包括第三判断模块380,用于:
如果未存储目标数据流对应的识别结果,则判断已获取到的目标数据流的数据包的个数是否超过预设数目阈值;
如果已获取到目标数据流的数据包的个数超过预设数目阈值,则输出检测报告,检测报告用于表示目标数据流识别失败;
如果已获取到目标数据流的数据包的个数未超过预设数目阈值,则触发DPI识别模块320执行对目标数据包进行DPI识别步骤。
可选的,如图7所示,该装置还包括:
存储模块390,用于如果通过所述DPI识别确定出第一识别结果,则将所述第一识别结果作为所述目标数据包所属的目标数据流的识别结果进行存储;
删除模块3100,用于如果第一识别结果与第二识别结果不相同,则删除第一识别结果。
本申请实施例中,通过DPI和DFI对目标数据包进行两次识别,能够得到两个识别结果(即两个应用类型)。只有在识别出的应用类型相同时,才将该识别结果作为目标数据包的最终识别结果。这样,与现有技术仅通过DPI识别数据包的应用类型相比,能够有效的降低误检率,提高识别应用类型准确度。
本申请实施例还提供了一种电子设备,如图8所示,包括处理器801、通信接口802、存储器803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信,
存储器803,用于存放计算机程序;
处理器801,用于执行存储器803上所存放的程序时,实现上述数据包的识别方法。该方法具体包括以下步骤:
获取待识别的目标数据包;
对所述目标数据包进行深度报文检测DPI识别,并根据所述目标数据包的数据信息,更新所述目标数据包所属的目标数据流的流量特征信息;
根据更新后的流量特征信息对所述目标数据包进行深度动态流检测DFI识别;
如果通过所述DPI识别确定出第一识别结果,且所述第一识别结果与通过所述DFI识别确定出的第二识别结果相同,则将所述第一识别结果作为所述目标数据包的识别结果。
可选的,所述方法还包括:
如果通过所述DPI识别未确定出第一识别结果,则将所述第二识别结果作为所述目标数据包的识别结果。
可选的,所述获取待识别的目标数据包和对所述目标数据包进行DPI识别之间,所述方法还包括:
确定所述目标数据包所属的目标数据流;
判断本地是否存储有所述目标数据流对应的识别结果;
如果已存储所述目标数据流对应的识别结果,则执行所述更新所述目标数据包对应的流量特征信息步骤;
如果未存储所述目标数据流对应的识别结果,则执行所述对所述目标数据包进行DPI识别步骤。
可选的,所述方法还包括:
如果未存储所述目标数据流对应的识别结果,则判断已获取到的所述目标数据流的数据包的个数是否超过预设数目阈值;
如果已获取到所述目标数据流的数据包的个数超过预设数目阈值,则输出检测报告,所述检测报告用于表示所述目标数据流识别失败;
如果已获取到所述目标数据流的数据包的个数未超过预设数目阈值,则执行所述对所述目标数据包进行DPI识别步骤。
可选的,所述方法还包括:
如果通过所述DPI识别确定出第一识别结果,则将所述第一识别结果作为所述目标数据包所属的目标数据流的识别结果进行存储;
如果所述第一识别结果与所述第二识别结果不相同,则删除所述第一识别结果。
上述电子设备提到的通信总线可以是外设部件互连标准(英文:PeripheralComponent Interconnect,简称:PCI)总线或扩展工业标准结构(英文:Extended IndustryStandard Architecture,简称:EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(英文:Random Access Memory,简称:RAM),也可以包括非易失性存储器(英文:Non-Volatile Memory,简称:NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(英文:Central ProcessingUnit,简称:CPU)、网络处理器(英文:Network Processor,简称:NP)等;还可以是数字信号处理器(英文:Digital Signal Processing,简称:DSP)、专用集成电路(英文:ApplicationSpecific Integrated Circuit,简称:ASIC)、现场可编程门阵列(英文:Field-Programmable Gate Array,简称:FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一数据包的识别方法的步骤。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一数据包的识别方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (12)
1.一种数据包的识别方法,其特征在于,所述方法包括:
获取待识别的目标数据包;
对所述目标数据包进行深度报文检测DPI识别,并根据所述目标数据包的数据信息,更新所述目标数据包所属的目标数据流的流量特征信息;
根据更新后的流量特征信息对所述目标数据包进行深度动态流检测DFI识别;
如果通过所述DPI识别确定出第一识别结果,且所述第一识别结果与通过所述DFI识别确定出的第二识别结果相同,则将所述第一识别结果作为所述目标数据包的识别结果。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果通过所述DPI识别未确定出第一识别结果,则将所述第二识别结果作为所述目标数据包的识别结果。
3.根据权利要求1所述的方法,其特征在于,所述获取待识别的目标数据包和对所述目标数据包进行DPI识别之间,所述方法还包括:
确定所述目标数据包所属的目标数据流;
判断本地是否存储有所述目标数据流对应的识别结果;
如果已存储所述目标数据流对应的识别结果,则执行所述更新所述目标数据包对应的流量特征信息步骤;
如果未存储所述目标数据流对应的识别结果,则执行所述对所述目标数据包进行DPI识别步骤。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
如果未存储所述目标数据流对应的识别结果,则判断已获取到的所述目标数据流的数据包的个数是否超过预设数目阈值;
如果已获取到所述目标数据流的数据包的个数超过预设数目阈值,则输出检测报告,所述检测报告用于表示所述目标数据流识别失败;
如果已获取到所述目标数据流的数据包的个数未超过预设数目阈值,则执行所述对所述目标数据包进行DPI识别步骤。
5.根据权利要求1或3所述的方法,其特征在于,所述方法还包括:
如果通过所述DPI识别确定出第一识别结果,则将所述第一识别结果作为所述目标数据包所属的目标数据流的识别结果进行存储;
如果所述第一识别结果与所述第二识别结果不相同,则删除所述第一识别结果。
6.一种数据包的识别装置,其特征在于,所述装置包括:
获取模块,用于获取待识别的目标数据包;
DPI识别模块,用于对所述目标数据包进行深度报文检测DPI识别,并根据所述目标数据包的数据信息,更新所述目标数据包所属的目标数据流的流量特征信息;
DFI识别模块,用于根据更新后的流量特征信息对所述目标数据包进行深度动态流检测DFI识别;
第一判断模块,用于如果通过所述DPI识别确定出第一识别结果,且所述第一识别结果与通过所述DFI识别确定出的第二识别结果相同,则将所述第一识别结果作为所述目标数据包的识别结果。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第一确定模块,用于如果通过所述DPI识别未确定出第一识别结果,则将所述第二识别结果作为所述目标数据包的识别结果。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第二确定模块,用于确定所述目标数据包所属的目标数据流;
第二判断模块,用于判断本地是否存储有所述目标数据流对应的识别结果;如果已存储所述目标数据流对应的识别结果,则触发所述DPI识别模块执行所述更新所述目标数据包对应的流量特征信息步骤;如果未存储所述目标数据流对应的识别结果,则触发所述DPI识别模块执行所述对所述目标数据包进行DPI识别步骤。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括第三判断模块,用于:
如果未存储所述目标数据流对应的识别结果,则判断已获取到的所述目标数据流的数据包的个数是否超过预设数目阈值;
如果已获取到所述目标数据流的数据包的个数超过预设数目阈值,则输出检测报告,所述检测报告用于表示所述目标数据流识别失败;
如果已获取到所述目标数据流的数据包的个数未超过预设数目阈值,则触发所述DPI识别模块执行所述对所述目标数据包进行DPI识别步骤。
10.根据权利要求6或8所述的装置,其特征在于,所述装置还包括:
存储模块,用于如果通过所述DPI识别确定出第一识别结果,则将所述第一识别结果作为所述目标数据包所属的目标数据流的识别结果进行存储;
删除模块,用于如果所述第一识别结果与所述第二识别结果不相同,则删除所述第一识别结果。
11.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-5任一所述的方法步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811457683.8A CN109525587A (zh) | 2018-11-30 | 2018-11-30 | 一种数据包的识别方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811457683.8A CN109525587A (zh) | 2018-11-30 | 2018-11-30 | 一种数据包的识别方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109525587A true CN109525587A (zh) | 2019-03-26 |
Family
ID=65793755
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811457683.8A Pending CN109525587A (zh) | 2018-11-30 | 2018-11-30 | 一种数据包的识别方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109525587A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110138681A (zh) * | 2019-04-19 | 2019-08-16 | 上海交通大学 | 一种基于tcp报文特征的网络流量识别方法及装置 |
CN110166480A (zh) * | 2019-05-31 | 2019-08-23 | 新华三信息安全技术有限公司 | 一种数据包的分析方法及装置 |
CN111130946A (zh) * | 2019-12-30 | 2020-05-08 | 联想(北京)有限公司 | 一种深度报文识别的加速方法、装置和存储介质 |
CN111404833A (zh) * | 2020-02-28 | 2020-07-10 | 华为技术有限公司 | 一种数据流类型识别模型更新方法及相关设备 |
CN111865724A (zh) * | 2020-07-28 | 2020-10-30 | 公安部第三研究所 | 视频监控设备信息采集控制实现方法 |
CN112769790A (zh) * | 2020-12-30 | 2021-05-07 | 杭州迪普科技股份有限公司 | 流量处理方法、装置、设备及存储介质 |
CN115361334A (zh) * | 2022-10-19 | 2022-11-18 | 深圳市光联世纪信息科技有限公司 | 基于深度包检测技术的sd-wan流量识别方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103281158A (zh) * | 2013-05-13 | 2013-09-04 | 昊优明镝(天津)科技有限公司 | 深度网络通信粒度检测方法及其检测设备 |
CN103873320A (zh) * | 2013-12-27 | 2014-06-18 | 北京天融信科技有限公司 | 加密流量识别方法及装置 |
CN104579805A (zh) * | 2013-10-12 | 2015-04-29 | 郑州冰川网络技术有限公司 | 一种新的网络流量识别方法 |
CN108183834A (zh) * | 2017-12-04 | 2018-06-19 | 中国联合网络通信集团有限公司 | 一种基于dfi和dpi的网络流量管控方法及管控系统 |
-
2018
- 2018-11-30 CN CN201811457683.8A patent/CN109525587A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103281158A (zh) * | 2013-05-13 | 2013-09-04 | 昊优明镝(天津)科技有限公司 | 深度网络通信粒度检测方法及其检测设备 |
CN104579805A (zh) * | 2013-10-12 | 2015-04-29 | 郑州冰川网络技术有限公司 | 一种新的网络流量识别方法 |
CN103873320A (zh) * | 2013-12-27 | 2014-06-18 | 北京天融信科技有限公司 | 加密流量识别方法及装置 |
CN108183834A (zh) * | 2017-12-04 | 2018-06-19 | 中国联合网络通信集团有限公司 | 一种基于dfi和dpi的网络流量管控方法及管控系统 |
Non-Patent Citations (2)
Title |
---|
乐力: ""网络应用协议识别技术研究"", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
周婷: ""深度数据包和深度数据流检测技术研究"", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110138681A (zh) * | 2019-04-19 | 2019-08-16 | 上海交通大学 | 一种基于tcp报文特征的网络流量识别方法及装置 |
CN110166480A (zh) * | 2019-05-31 | 2019-08-23 | 新华三信息安全技术有限公司 | 一种数据包的分析方法及装置 |
CN111130946A (zh) * | 2019-12-30 | 2020-05-08 | 联想(北京)有限公司 | 一种深度报文识别的加速方法、装置和存储介质 |
CN111130946B (zh) * | 2019-12-30 | 2022-03-25 | 联想(北京)有限公司 | 一种深度报文识别的加速方法、装置和存储介质 |
CN111404833A (zh) * | 2020-02-28 | 2020-07-10 | 华为技术有限公司 | 一种数据流类型识别模型更新方法及相关设备 |
CN111865724A (zh) * | 2020-07-28 | 2020-10-30 | 公安部第三研究所 | 视频监控设备信息采集控制实现方法 |
CN111865724B (zh) * | 2020-07-28 | 2022-02-08 | 公安部第三研究所 | 视频监控设备信息采集控制实现方法 |
CN112769790A (zh) * | 2020-12-30 | 2021-05-07 | 杭州迪普科技股份有限公司 | 流量处理方法、装置、设备及存储介质 |
CN112769790B (zh) * | 2020-12-30 | 2022-06-28 | 杭州迪普科技股份有限公司 | 流量处理方法、装置、设备及存储介质 |
CN115361334A (zh) * | 2022-10-19 | 2022-11-18 | 深圳市光联世纪信息科技有限公司 | 基于深度包检测技术的sd-wan流量识别方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109525587A (zh) | 一种数据包的识别方法及装置 | |
CN108737333B (zh) | 一种数据检测方法以及装置 | |
CN105027510B (zh) | 网络监视装置和网络监视方法 | |
EP2868045B1 (en) | A method of and network server for detecting data patterns in an input data stream | |
CN103905261B (zh) | 协议特征库在线更新方法及系统 | |
CN103023906B (zh) | 针对远程过程调用协议进行状态跟踪的方法及系统 | |
CN103428183B (zh) | 恶意网址的识别方法和装置 | |
CN106534146A (zh) | 一种安全监测系统及方法 | |
CN107888605A (zh) | 一种物联网云平台流量安全分析方法和系统 | |
US10264004B2 (en) | System and method for connection fingerprint generation and stepping-stone traceback based on netflow | |
CN110213124A (zh) | 基于tcp多会话的被动操作系统识别方法及装置 | |
JP2019110513A (ja) | 異常検知方法、学習方法、異常検知装置、および、学習装置 | |
CN107547290A (zh) | 流量检测方法和装置 | |
CN109818970A (zh) | 一种数据处理方法及装置 | |
CN108390856A (zh) | 一种DDoS攻击检测方法、装置及电子设备 | |
CN110166480A (zh) | 一种数据包的分析方法及装置 | |
CN107948199A (zh) | 一种对终端共享接入进行快速检测的方法及装置 | |
CN110266726A (zh) | 一种识别ddos攻击数据流的方法及装置 | |
CN109428857A (zh) | 一种恶意探测行为的检测方法和装置 | |
CN106921671B (zh) | 一种网络攻击的检测方法及装置 | |
CN106528805B (zh) | 基于用户的移动互联网恶意程序url智能分析挖掘方法 | |
CN107209834A (zh) | 恶意通信模式提取装置、恶意通信模式提取系统、恶意通信模式提取方法及恶意通信模式提取程序 | |
CN110830416A (zh) | 网络入侵检测方法和装置 | |
CN110768865B (zh) | 一种深度报文检测引擎激活方法、装置及电子设备 | |
CN107612946A (zh) | Ip地址的检测方法、检测装置和电子设备 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190326 |
|
RJ01 | Rejection of invention patent application after publication |