掌桥专利:专业的专利平台
掌桥专利
首页

数据报文识别方法、装置及系统

文献发布时间:2023-06-19 12:19:35


数据报文识别方法、装置及系统

技术领域

本公开涉及计算机技术领域,特别涉及数据报文识别方法、装置及系统、计算机可存储介质。

背景技术

DPI(Deep Packet Inspection,深度报文检测)是一种基于应用层的流量检测和控制技术,在传统IP数据包检测技术之上增加了对应用层数据的应用协议识别,数据包内容检测与深度解码。DPI通过对应用流中的数据报文内容进行探测,从而确定数据报文所属的应用。

相关技术中,利用DPI设备确定待识别数据报文所属的应用。

发明内容

发明人认为:相关技术中,DPI设备的识别准确率低、识别精细度较差、识别效率低。

针对上述技术问题,本公开提出了一种解决方案,提高了DPI设备的识别准确率、识别精细度和识别效率。

根据本公开的第一方面,提供了一种数据报文识别方法,包括:利用卷积神经网络CNN模型对待识别数据报文进行分类,得到所述待识别数据报文所属的父类应用;将所述父类应用和所述待识别数据报文发送到深度报文检测DPI设备,以便所述DPI设备根据所述父类应用对所述待识别数据报文进行分类,得到所述待识别数据报文所属的子类应用,所述子类应用属于所述父类应用。

在一些实施例中,父类应用包括多种,利用卷积神经网络CNN模型对待识别数据报文进行分类,得到所述待识别数据报文所属的父类应用包括:将所述待识别数据报文输入到与每种父类应用对应的CNN模型中,得到所述待识别数据报文属于每种父类应用的概率;根据各个概率,确定所述待识别数据报文所属的父类应用。

在一些实施例中,根据各个概率,确定所述待识别数据报文所属的父类应用包括:将概率最大的父类应用,确定为所述待识别数据报文所属的父类应用。

在一些实施例中,将概率最大的父类应用,确定为所述待识别数据报文所属的父类应用包括:在存在多个父类应用的概率最大的情况下,随机选取一个概率最大的父类应用作为所述待识别数据报文所属的父类应用。

在一些实施例中,数据报文识别方法还包括:对于每种父类应用,利用训练数据对与所述每种父类应用对应的CNN模型进行训练,所述训练数据为属于所述每种父类应用的数据报文。

在一些实施例中,数据报文识别方法还包括:在利用卷积神经网络CNN模型对待识别数据报文进行分类之前,根据所述待识别数据报文的报文头信息,确定所述待识别数据报文是否属于文字类应用;在所述待识别数据报文属于文字类应用的情况下,将所述待识别数据报文发送至所述DPI设备;在所述待识别数据报文属于非文字类应用的情况下,利用卷积神经网络CNN模型对待识别数据报文进行分类。

在一些实施例中,根据所述待识别数据报文的报文头信息,确定所述待识别数据报文是否属于文字类应用包括:在所述待识别数据报文的报文头信息包括特定特征信息的情况下,确定所述待识别数据报文属于文字类应用。

在一些实施例中,所述父类应用包括即时通信类、阅读类和微博类,所述即时通信类的子类应用包括即时通信语音类、即时通信视频类、即时通信游戏类和即时通信文字类,所述阅读类的子类应用包括阅读文字类、阅读语音类和阅读视频类,所述微博类的子类应用包括微博文字类、微博语音类和微博视频类。

根据本公开第二方面,提供了一种数据报文识别装置,包括:分类模块,被配置利用卷积神经网络CNN模型对待识别数据报文进行分类,得到所述待识别数据报文所属的父类应用;发送模块,被配置为将所述父类应用和所述待识别数据报文发送到深度报文检测DPI设备,以便所述DPI设备根据所述父类应用对所述待识别数据报文进行分类,得到所述待识别数据报文所属的子类应用,所述子类应用属于所述父类应用。

根据本公开第三方面,提供了一种数据报文识别装置,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令,执行上述任一实施例所述的数据报文识别方法。

根据本公开第四方面,提供了一种数据报文识别系统,包括:上述任一实施例所述的数据报文识别装置;和深度报文检测DPI设备,被配置为接收来自数据报文识别装置的待识别数据报文和待识别数据报文的父类应用,并根据所述父类应用对所述待识别数据报文进行分类,得到所述待识别数据报文所属的子类应用,所述子类应用属于所述父类应用。

在一些实施例中,所述DPI设备还被配置为对所述待识别数据报文进行解析,得到所述待识别数据报文的用户信息和时间信息。

在一些实施例中,数据报文识别系统,还包括:存储装置,被配置为存储用户信息、时间信息、父类应用和子类应用的对应关系;分析平台,被配置为从所述存储装置获取指定用户在指定时间内使用的父类应用和子类应用,并根据所述指定用户在指定时间内使用的父类应用和子类应用对所述指定用户进行业务分析。

根据本公开的第五方面,提供了一种计算机可存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现上述任一实施例所述的数据报文识别方法。

在上述实施例中,提高了DPI设备的识别准确率、识别精细度和识别效率。

附图说明

构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。

参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:

图1示出根据本公开一些实施例的数据报文识别方法的流程图;

图2示出根据本公开一些实施例的卷积神经网络CNN模型的结构示意图;

图3示出根据本公开一些实施例的数据报文识别装置的框图;

图4示出根据本公开另一些实施例的数据报文识别装置的框图;

图5示出根据本公开一些实施例的数据报文识别系统的框图;

图6示出用于实现本公开一些实施例的计算机系统的框图。

具体实施方式

现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。

同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。

在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

图1示出根据本公开一些实施例的数据报文识别方法的流程图。

如图1所示,数据报文识别方法包括步骤S110-步骤S120。

在步骤S110中,利用CNN(Convolutional Neural Networks,卷积神经网络)模型对待识别数据报文进行分类,得到待识别数据报文所属的父类应用。例如,父类应用包括即时通信类、阅读类和微博类。具体地,即时通信类可以是微信类。在一些实施例中,父类应用还可以根据电信专业进行分类。例如为骨干网应用和数据网应用。

下面将结合图2详细描述卷积神经网络CNN模型的结构。

图2示出根据本公开一些实施例的卷积神经网络CNN模型的结构示意图。

如图2所示,卷积神经网络CNN模型2包括卷积层21、池化层22和全连接层23。

卷积层21被配置为接收训练数据,并对训练数据进行词嵌入得到信息矩阵,信息矩阵输入到卷积层21的卷积核中进行卷积操作,得到特征映射矩阵。每一个卷积核都可以提取到特定的特征,不同卷积核提取不同的特征。这里的特征为父类应用的应用特征。例如,父类应用还包括视频类应用。具体地,视频类应用为优酷、爱奇艺等视频类应用。视频类应用的IP地址的特征可能是最后一个字段升高,意味着IP地址在同一网段里面,该网段对应着视频应用。

池化层22被配置为对特征映射矩阵进行池化操作。例如,池化操作包括最大池化和平均池化。具体地,采用最大池化方法对特征映射矩阵进行池化操作。最大池化具有更多地保留特征映射矩阵的特征信息,提高CNN的识别准确率。最大池化方法为将特征映射矩阵分割成若干个同样大小的小块,每个小块内只取最大的数字,再舍弃其他节点后,保持原有的平面结构得出输出。

例如,图2的卷积层21输出的特征映射矩阵为4×4矩阵,表示为

全连接层23被配置为对池化层22输出的特征映射矩阵进行拟合,减少特征信息的损失。也就是将经过多次卷积后高度抽象化的特征进行整合,然后进行归一化,对各种分类情况都输出一个概率,从而分类器可以根据全连接得到的概率进行分类,得到父类应用的类别以及对应的概率。

例如,图2所示的卷积神经网络CNN模型的各个超参数如表1所示。超参数为CNN模型中通过人为经验设定的参数。

表1 CNN模型的超参数信息表

如表1所示,超参数(Hyperparameter)包括词汇大小(vocabulary size)、嵌入大小(Embedding size)、队列长度(Sequence length)、类别数量(Number classes)、批次数(Batch size)、滤波器数量(Number filters)、滤波器大小(Filter size)、丢弃率(Dropout)、剪裁值(Clip)、学习率(Learning rate)和训练次数(Epoch)。

根据多个数据报文构成的DPI数据集的大小,设置CNN模型的超参数。例如,根据经验对CNN模型的超参数进行设定。通过调参的方式得到的最佳参数值如表1所示。

词汇大小为输入的样本数据总量。具体地,图2所示的CNN模型的词汇大小为3400,即输入了3400个词语。

嵌入大小为每个类别的向量维度。具体地,图2所示的CNN模型的嵌入大小为100个。在嵌入过程中还需要确定相关专业数据需要嵌入的百分比,例如:一般提供80%的专业词汇,剩下的20%可以为非专业词汇,结果还是可以识别出相应的专业。一般来说,专业词汇越少,识别准确速度越快,但是识别准确率越低,有一个比较合适的比例,每个专业不太一样,需要具体问题具体分析。嵌入量的大小与相关专业数据需要嵌入的百分比有关。

队列长度为CNN模型可接收的输入数据报文序列的最大长度。具体地,图2所示的CNN模型的队列长度设置为100。

类别数量为父类应用的类别数量。具体地,图2所示的CNN模型的类别数量为22。

批次数为每次输入的样本数量。具体地,图2所示的CNN模型的批次数为6。

滤波器数量为卷积层中滤波器的数量。具体地,图2所示的CNN模型的滤波器数量为128。

滤波器大小为卷积层中每个滤波器的大小。具体地,图2所示的CNN模型的滤波器大小为[2,3,4]。

丢弃率为一个正则参数,防止CNN模型过拟合。具体地,图2所示的CNN模型的丢弃率为0.1。

剪裁值用于与梯度值进行比较。在梯度值小于或等于剪裁值的情况下,梯度值不变,。在梯度值大于剪裁值的情况下,更新梯度值为剪裁值。具体地,图2所示的CNN模型的剪裁值为6。

学习率为每次参数更新的幅度大小。学习率多大容易错过最小损失值。学习率过小容易导致过拟合。具体地,图2所示的CNN模型的学习率为0.001。

训练次数为训练CNN模型的次数。具体地,图2所示的CNN模型的训练次数为20。

返回图1,进一步地,父类应用包括多种。通过如下方式实现利用CNN模型对待识别数据报文进行分类,得到待识别数据报文所属的父类应用。

首先,将待识别数据报文输入到与每种父类应用对应的CNN模型中,得到待识别数据报文属于每种父类应用的概率。通过采用一种父类应用对应一个CNN模型的方式,可以进一步提高CNN对数据报文的识别效率。

然后,根据各个概率,确定待识别数据报文所属的父类应用。例如,通过如下方式实现根据各个概率,确定待识别数据报文所属的父类应用。将概率最大的父类应用,确定为待识别数据报文所属的父类应用。例如,在存在多个概率最大的父类应用的情况下,随机选取一个概率最大的父类应用作为待识别数据报文所属的父类应用。

具体地,数据报文识别方法还包括如下步骤。对于每种父类应用,利用训练数据对与每种父类应用对应的CNN模型进行训练。训练数据为属于每种父类应用的数据报文。利用属于其中一种父类应用的数据报文对该种父类应用的CNN模型进行训练,可以进一步提高CNN模型的对该种父类应用的数据报文的识别准确度。

例如,在利用卷积神经网络CNN模型对待识别数据报文进行分类之前,根据待识别数据报文的报文头信息,确定待识别数据报文是否属于文字类应用。具体地,通过如下方式实现根据待识别数据报文的报文头信息,确定待识别数据报文是否属于文字类应用。在待识别数据报文的报文头信息包括特定特征信息的情况下,确定待识别数据报文属于文字类应用。例如,特定特征信息为标识该数据报文属于文字类应用的特定字段。

在待识别数据报文属于文字类应用的情况下,将待识别数据报文发送至DPI设备。在待识别数据报文属于非文字类应用的情况下,利用卷积神经网络CNN模型对待识别数据报文进行分类。由于DPI设备对属于文字类应用的数据报文的识别效果较好,且识别效率较高,由DPI设备直接对文字类应用的数据报文进行分类,可以充分利用DPI设备本身的性能,提高识别效率。

在步骤S120中,将父类应用和待识别数据报文发送到DPI设备,以便DPI设备根据父类应用对待识别数据报文进行分类,得到待识别数据报文所属的子类应用。子类应用属于父类应用。即时通信类的子类应用包括即时通信语音类、即时通信视频类、即时通信游戏类和即时通信文字类,阅读类的子类应用包括阅读文字类、阅读语音类和阅读视频类,微博类的子类应用包括微博文字类、微博语音类和微博视频类。具体地,微信类的子类应用包括微信文字类、微信语音类、微信视频类、微信游戏类等。

例如,可以将父类应用的字段信息添加到待识别报文后,将添加了父类应用的字段信息的待识别数据报文发送到DPI设备。具体地,待识别报文为“20200121,destip1.1.1.2,type:video”,待识别报文表示2020年1月21日,发送至目的IP地址为1.1.1.2的视频。经过CNN识别后,将父类应用的字段信息添加到待识别报文后,得到“20200121,des tip1.1.1.2,type:video,type:weixin chat”,表示2020年1月21日,发送至目的IP地址为1.1.1.2的微信视频。

本公开的数据报文识别方法,通过采用卷积神经网络CNN模型对待识别数据报文进行预分类,得到该待识别数据报文所属的父类应用,进而由DPI设备根据父类应用对待识别数据报文进行再分类,得到待识别数据报文在父类应用下的子类应用。提高了DPI设备的识别准确率、识别精细度和识别效率,且避免了卷积神经网络CNN模型由于识别任务过多导致DPI设备识别效率差的问题。

另外,相对于SVM(Support Vector Machine,支持向量机)等其他神经网络模型来说,CNN模型能够共享卷积核,更方便处理高维数据,适用于多种多样的数据类型。并且,CNN模型可以人工选取特征,训练权重,提高分类效果,具有更好地扩展性和准确性。

利用本公开的数据报文识别方法对数据报文进行识别,准确率为0.83。而直接采用DPI设备进行识别,准确率为0.6。准确率的计算方式为识别成功的数据报文的数量占数据报文的总数量的比重。

图3示出根据本公开一些实施例的数据报文识别装置的框图。

如图3所示,数据报文识别装置31包括分类模块311和发送模块312。

分类模块311被配置为利用卷积神经网络CNN模型对待识别数据报文进行分类,得到待识别数据报文所属的父类应用,例如执行如图1所示的步骤S110。

发送模块312被配置为将父类应用和待识别数据报文发送到深度报文检测DPI设备,以便DPI设备根据父类应用对待识别数据报文进行分类,得到待识别数据报文所属的子类应用,例如执行如图1所示的步骤S120。其中,子类应用属于父类应用。

图4示出根据本公开另一些实施例的数据报文识别装置的框图。

如图4所示,数据报文识别装置41包括存储器411;以及耦接至该存储器411的处理器412。存储器411被配置为存储执行数据报文识别方法对应实施例的指令。处理器412被配置为基于存储在存储器411中的指令,执行本公开中任意一些实施例中的数据报文识别方法。

图5示出根据本公开一些实施例的数据报文识别系统的框图。

如图5所示,数据报文识别系统5包括本公开任意一些实施例中的数据报文识别装置51和DPI设备52。

数据报文识别装置51被配置为执行本公开任意一些实施例中的数据报文识别方法。

DPI设备52被配置为接收来自数据报文识别装置51的待识别数据报文和待识别数据报文的父类应用,并根据父类应用对待识别数据报文进行分类,得到待识别数据报文所属的子类应用。其中,子类应用属于父类应用。具体地,DPI设备一般由专用设备、通用服务器和专用软件构成。DPI为了提高处理能力,通常会部署多台通用服务器。例如,DPI设备还可以对待识别数据报文进行识别解析,还可以进行策略控制、统一复用和还原镜像等操作。

例如,数据报文识别系统5还包括存储装置53和分析平台54。

存储装置53被配置为存储用户信息、时间信息、父类应用和子类应用的对应关系。具体地,对应关系还包括相应的数据报文。例如,存储装置为数据平台,即一个共用的数据存储库,用于后续其他应用调用,可以根据各个应用的需求从数据平台中调用相关信息,相关信息例如可以是不同的父类应用或子类应用的组合。具体地,对于即时通信视频类应用,存储装置中存储DPI设备识别出的即时通信视频的内容、持续时间等。对于即时通信语音类应用,存储装置中存储DPI设备识别出的语音的源位置、目的位置和持续时间等。对于文本类应用存储装置还用于存储DPI设备识别出的文本内容、用户IP、目的IP、地理位置和持续时间等信息。

分析平台54被配置为从存储装置53获取指定用户在指定时间内使用的父类应用和子类应用,并根据指定用户在指定时间内使用的父类应用和子类应用对指定用户进行业务分析。例如,分析平台54还可以获取指定父类应用或指定子类应用对应的用户信息和时间信息,并对指定父类应用和指定子类应用的使用情况进行分析。例如,分析平台为应用系统。应用系统具体可以分析出某一父类应用或子类应用是哪个用户在什么时间段使用的。另外,还可以根据DPI设备识别出来的某一父类应用或子类应用的使用时间,分析应用出现波峰和波谷的情况。这些分析结果可用于进行业务感知、骨干网流量分析控制和日志留存等。

例如,根据DPI的识别结果,可以分析得到来自北京海淀区的张三,在周一上午10:00-10:30,用了微信语音,在10:30-11:00用了京东应用,这些信息都为用户画像、用户行为分析提供依据。对于运营商来说,可以提供非敏感数据给淘宝、京东等第三方,让其在最有效的时间段和人群中,投放广告,进行营销策划等。

图6示出用于实现本公开一些实施例的计算机系统的框图。

如图6所示,计算机系统60可以通用计算设备的形式表现。计算机系统60包括存储器610、处理器620和连接不同系统组件的总线600。

存储器610例如可以包括系统存储器、非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)以及其他程序等。系统存储器可以包括易失性存储介质,例如随机存取存储器(RAM)和/或高速缓存存储器。非易失性存储介质例如存储有执行数据报文识别方法中的至少一种的对应实施例的指令。非易失性存储介质包括但不限于磁盘存储器、光学存储器、闪存等。

处理器620可以用通用处理器、数字信号处理器(DSP)、应用专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑设备、分立门或晶体管等分立硬件组件方式来实现。相应地,诸如判断模块和确定模块的每个模块,可以通过中央处理器(CPU)运行存储器中执行相应步骤的指令来实现,也可以通过执行相应步骤的专用电路来实现。

总线600可以使用多种总线结构中的任意总线结构。例如,总线结构包括但不限于工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、外围组件互连(PCI)总线。

计算机系统60还可以包括输入输出接口630、网络接口640、存储接口650等。这些接口630、640、650以及存储器610和处理器620之间可以通过总线600连接。输入输出接口630可以为显示器、鼠标、键盘等输入输出设备提供连接接口。网络接口640为各种联网设备提供连接接口。存储接口650为软盘、U盘、SD卡等外部存储设备提供连接接口。

这里,参照根据本公开实施例的方法、装置和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个框以及各框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可提供到通用计算机、专用计算机或其他可编程装置的处理器,以产生一个机器,使得通过处理器执行指令产生实现在流程图和/或框图中一个或多个框中指定的功能的装置。

这些计算机可读程序指令也可存储在计算机可读存储器中,这些指令使得计算机以特定方式工作,从而产生一个制造品,包括实现在流程图和/或框图中一个或多个框中指定的功能的指令。

本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。

通过上述实施例中的数据报文识别方法、装置及系统、计算机可存储介质,提高了DPI设备的识别准确率、识别精细度和识别效率。

至此,已经详细描述了根据本公开的数据报文识别方法、装置及系统、计算机可存储介质。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。

相关技术
  • 数据报文识别方法、装置及系统
  • 报文类型识别方法及装置、报文首部压缩方法及系统
技术分类

06120113254898