CN115001994B - 流量数据包分类方法、装置、设备及介质 - Google Patents
流量数据包分类方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN115001994B CN115001994B CN202210893751.5A CN202210893751A CN115001994B CN 115001994 B CN115001994 B CN 115001994B CN 202210893751 A CN202210893751 A CN 202210893751A CN 115001994 B CN115001994 B CN 115001994B
- Authority
- CN
- China
- Prior art keywords
- field
- information
- data packet
- interval
- sample
- 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/04—Processing captured monitoring data, e.g. for logfile generation
Landscapes
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开实施例涉及一种流量数据包分类方法、装置、设备及介质,其中该方法包括:获取流量信息,流量信息包括至少一个流量数据包;获取各流量数据包包括的多个字段;针对每个流量数据包,根据各字段的字段类型,确定各字段对应的信息区间;其中,相同字段类型的字段对应的信息区间相同,信息区间为字段填充的区间范围;对每个流量数据包的各字段对应的信息区间进行填充,获得对应的提取信息;将提取信息输入数据包分类模型中,获取至少一个流量数据包的分类结果。本公开实施例,实现了对流量数据包的自动化、标准化处理,并且通过提取信息能够从多个维度对流量数据包进行表征,提高了流量数据包分类结果的准确性。
Description
技术领域
本公开涉及数据传输技术领域,尤其涉及一种流量数据包分类方法、装置、设备及介质。
背景技术
内容分类对于提高网络服务质量、优化网络带宽分配、加强网络安全管理等具有重要意义。对于网络管理员或互联网服务提供商而言,获取网络数据包中传输数据的内容类型(例如,图像类型、加密类型等),在识别异常流量和改善当前网络状况的过程中有重要的作用。
相关技术中,可以基于人为确定的特征对数据包的内容类型进行识别,但是在该种基于人的经验进行特征提取的方法中,构建特征的过程较为繁琐,并且人为构建的特征会根据人的经验不同而不同,因而基于该特征获得的分类结果不稳定。相关技术中,还可以通过从数据包中截取固定长度的字段,采用卷积神经网络对该固定长度的字段进行识别,从而获得对应的内容类型,但是,该字段能够表征的数据包的特征有限,因而造成了获得的内容类型的不准确。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种流量数据包分类方法、装置、设备及介质。
本公开实施例提供了一种流量数据包分类方法,所述方法包括:
获取流量信息,所述流量信息包括至少一个流量数据包;
获取各所述流量数据包包括的多个字段;
针对每个所述流量数据包,根据各所述字段的字段类型,确定各所述字段对应的信息区间;其中,相同字段类型的字段对应的信息区间相同,所述信息区间为所述字段填充的区间范围;
对每个所述流量数据包的各字段对应的信息区间进行填充,获得对应的提取信息;
将所述提取信息输入数据包分类模型中,获取所述至少一个流量数据包的分类结果。
本公开实施例还提供了一种流量数据包分类装置,所述装置包括:
第一获取模块,用于获取流量信息,所述流量信息包括至少一个流量数据包;
第二获取模块,用于获取各所述流量数据包包括的多个字段;
确定模块,用于针对每个所述流量数据包,根据各所述字段的字段类型,确定各所述字段对应的信息区间;其中,相同字段类型的字段对应的信息区间相同,所述信息区间为所述字段填充的区间范围;
第一填充模块,用于对每个所述流量数据包的各字段对应的信息区间进行填充,获得对应的提取信息;
分类模块,用于将所述提取信息输入数据包分类模型中,获取所述至少一个流量数据包的分类结果。
本公开实施例还提供了一种电子设备,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现如本公开实施例提供的流量数据包分类方法。
本公开实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行如本公开实施例提供的流量数据包分类方法。
本公开实施例提供的技术方案与现有技术相比具有如下优点:本公开实施例中提供的流量数据包分类方案,获取流量信息,流量信息包括至少一个流量数据包;获取各流量数据包包括的多个字段;针对每个流量数据包,根据各字段的字段类型,确定各字段对应的信息区间;其中,相同字段类型的字段对应的信息区间相同,信息区间为字段填充的区间范围;对每个流量数据包的各字段对应的信息区间进行填充,获得对应的提取信息;将提取信息输入数据包分类模型中,获取至少一个流量数据包的分类结果。采用上述技术方案,获取流量数据包中的字段,并且对各信息区间进行填充组合,获得提取信息,不仅实现了对流量数据包的自动化、标准化处理,并且基于多个字段获得提取信息,通过提取信息能够从多个维度对流量数据包进行表征,该提取信息能够表征的特征较为丰富,从而提高了流量数据包分类结果的准确性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例提供的一种流量数据包分类方法的流程示意图;
图2为本公开实施例提供的另一种流量数据包分类方法的流程示意图;
图3为本公开实施例提供的一种提取信息的示意图;
图4为本公开实施例提供的又一种流量数据包分类方法的流程示意图;
图5为本公开实施例提供的一种流量数据包分类方法的示意图;
图6为本公开实施例提供的一种异常流量检测方法的流程示意图;
图7为本公开实施例提供的一种流量数据包分类装置的结构示意图;
图8为本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
内容分类对于提高网络服务质量、优化网络带宽分配、加强网络安全管理等具有重要意义。对于网络管理员或互联网服务提供商而言,获取网络数据包中传输数据的内容类型(例如,图像类型、加密类型等),在识别异常流量和改善当前网络状况的过程中有重要的作用。
相关技术中,可以基于人为确定的特征对数据包的内容类型进行识别,但是在该种基于人的经验进行特征提取的方法中,构建特征的过程较为繁琐,并且人为构建的特征会根据人的经验不同而不同,因而基于该特征获得的分类结果不稳定。
相关技术中,还可以基于数据包生成固定长度的序列子串的熵值作为数据包的特征表示,但是该特征表示较为单一。
相关技术中,还可以将以从前向后的顺序从数据包中截取长度为1024字节的数据,若数据包的总字节长度小于1024个字节则填充0,并将截取的字节数据包填充到32×32维度的矩阵中作为卷积神经网络的输入,从而根据卷积神经网络的输出确定数据包的内容类型。该种相关技术中,由于数据包中的数据头和有效载荷的长度并不固定,因而从数据包中截取1024字节作为数据包的特征表示,会导致不同特征表示的相同位置对应于数据包的不同部分,这种不对齐的特征表示会导致数据包中语义信息的丢失。并且使用十进制表示协议头,破坏了协议头部分的语义信息。并且,该数据包的特征表示不具有空间结构,没有固定的协议头之间的关联性,因此该种特征表示不适用于作为卷积神经网络的输入数据。
为了解决上述问题,本公开实施例提供了一种流量数据包分类方法,下面结合具体的实施例对该方法进行介绍。
图1为本公开实施例提供的一种流量数据包分类方法的流程示意图,该方法可以由流量数据包分类装置执行,其中该装置可以采用软件和/或硬件实现,一般可集成在电子设备中。如图1所示,该方法包括:
步骤101,获取流量信息,流量信息包括至少一个流量数据包。
在通过网络进行数据传输的过程中,数据以流量数据包为单位进行传输,该流量数据包可以理解为数据块,一个流量信息可以由一个或多个流量数据包组成。
在本实施中,流量数据包分类装置可以调用流量采集接口,通过该流量采集接口能够采集网络中的流量信息,在获取流量信息之后,提取该流量信息中的流量数据包。并且可以将该流量数据包按照预设的文本格式进行记录。
步骤102,获取各流量数据包包括的多个字段。
其中,字段可以为流量数据包中具有确定功能的一个或多个字节,该字段可以根据应用场景和/或用户需求等进行设置,本实施例不做限制,例如该字段可以包括:协议头(header)字段、有效载荷字段。其中,协议头字段的类型包括但不限于:基于网际协议(Internet Protocol,IP)确定的字段、基于传输层协议确定的字段、基于网络层协议确定的字段中的一种或多种。一种可选的实施方式中,该字段可以包括:网际协议版本4(Internet Protocol version 4,IPv4)头字段、传输控制协议(Transmission ControlProtocol,TCP)头字段、用户数据报协议(User Datagram Protocol,UDP)头字段、网络控制报文协议(Internet Control Message Protocol,ICMP)头字段、有效载荷字段中的一个或多个。其中,IPv4头字段可以包括IPv4必选字段和IPv4可选字段。其中IPv4必选字段又称IPv4语义字段,该IPv4必选字段可以为每个IPv4协议头均具备的字段,例如:版本号、头部长度等。IPv4可选字段可以为IPv4协议头中非必要具备的字段。TCP头字段可以包括TCP必选字段和TCP可选字段。TCP必选字段又称TCP语义字段,其中TCP必选字段可以为每个TCP协议头均具备的字段,例如:源端口号、目的端口号等。TCP可选字段可以为TCP协议头中非必要具备的字段。
在一些实施例中,获取各流量数据包包括的多个字段,包括:调用字段接口提取流量数据包中的多个字段。其中,字段接口可以为能够根据字段类型提取相应字段的功能接口,该字段接口可以理解为实现字段提取功能的函数。
在本实施例中,可以将需要提取的字段类型作为字段接口的输入参数,调用该字段接口对流量数据包进行提取,从而提取获得与该字段类型对应的字段。可以理解地,一个流量数据包中可以包括多个字段类型的字段,因而对一个流量数据包进行字段提取能够获得多个字段。
步骤103,针对每个流量数据包,根据各字段的字段类型,确定各字段对应的信息区间;其中,相同字段类型的字段对应的信息区间相同,信息区间为字段填充的区间范围。
其中,信息区间可以与字段类型一一对应,字段类型与信息区间的对应关系可以根据用户需求等进行设置,本实施例不做限制。
在本实施例中,提取出数据流量包中的多个字段之后,可以基于该多个字段生成该流量数据包对应的提取信息。该提取信息可以为基于流量数据包中提取的字段,生成的能够对流量数据包进行表征的信息。具体地,在流量数据包分类装置中可以预先设置字段类型与信息区间的对应关系,针对流量数据包中的每个字段,确定各字段的字段类型,并根据该字段类型对字段类型与信息区间的对应关系进行查询操作,从而确定该字段对应的信息区间。
步骤104,对每个流量数据包的各字段对应的信息区间进行填充,获得对应的提取信息。
在本实施例中,确定流量数据包中的各字段对应的信息区间之后,可以基于该字段对信息区间进行填充,将填充获得的各信息区间进行拼接,从而获得提取信息。可以理解地,该提取信息包括了流量数据包中各字段的全部数据或部分数据,因而该提取信息能够较为全面的对相应的流量数据包进行表征。
在一些实施例中,字段包括头字段和数据字段,在对每个流量数据包的各字段对应的信息区间进行填充之前,还包括:若字段为头字段,将头字段由第一原始格式转化为二进制格式;若字段为数据字段,将数据字段由第二原始格式转化为归一化格式。其中,头字段可以为协议头字段,数据字段可以为有效载荷字段。第一原始格式可以为头字段的原始格式,二进制格式可以为使用0和1进行表示的格式;第二原始格式可以为有效载荷字段的原始格式,归一化格式可以为使用0、1、以及0和1之间的数字进行表示的格式。
在本实施例中,在基于各字段对信息区间进行填充之前,可以根据字段的类型对该字段进行格式转化。具体地,若该字段为头字段,则将该头字段由初始的第一原始格式转换为二进制格式,其中,若第一原始格式为十六进制,则将十六进制的头字段转化为二进制格式。若该字段为数据字段,则可以提取该数据字段中的每个字节(Byte),一个字节可以理解为一个0至255之间的整数,将该整数除以255,从而将该整数转换为0和1之间的数字。对每个字节进行上述处理,获得归一化格式的数据字段。从而采用了两种格式对头字段和数据字段进行表示,由于头字段中固定位数具备固定的语义含义,二进制格式具备较多的位数,因而二进制格式能更好的体现不同头字段之间的语义关系。由于数据字段所记载的内容较多,通过归一化格式能够使用相同位数记录较多的内容,从而更早更好的体现有效载荷所记录的内容
步骤105,将提取信息输入数据包分类模型中,获取至少一个流量数据包的分类结果。
其中,数据包分类模型为预先训练好的,能够根据提取信息确定流量数据包的分类结果的机器学习模型,该数据包分类模型可以是基于待训练模型训练获得的,该待训练模型的类型本实施例中不做限制,例如,该待训练模型可以为梯度提升树(GradientBoosting Decision Tree,GBDT)模型、随机森林模型、逻辑回归模型、支持向量机模型中的一种。分类结果可以为针对流量数据包中记载的内容进行分类的结果,该分类结果包括但不限于:明文文本数据、图像数据、加密数据、压缩数据、编码数据中的一种或多种。
在本实施例中,将提取信息作为数据包分类模型的输入数据,数据包分类模型可以对该提取信息进行分类,并输出相应的输出参数,基于该输出参数可以确定刘亮亮数据包的分类结果。例如输出参数可以为0至4的整数,其中,0表示明文文本数据、1表示图像数据、2表示加密数据、3表示压缩数据、4表示编码数据。
本公开实施例中提供的上述数据包分类方法,包括:获取流量信息,流量信息包括至少一个流量数据包;获取各流量数据包包括的多个字段;针对每个流量数据包,根据各字段的字段类型,确定各字段对应的信息区间;其中,相同字段类型的字段对应的信息区间相同,信息区间为字段填充的区间范围;对每个流量数据包的各字段对应的信息区间进行填充,获得对应的提取信息;将提取信息输入数据包分类模型中,获取至少一个流量数据包的分类结果。采用上述技术方案,获取流量数据包中的字段,并且对各信息区间进行填充组合,获得提取信息,不仅实现了对流量数据包的自动化、标准化处理,并且基于多个字段获得提取信息,通过提取信息能够从多个维度对流量数据包进行表征,该提取信息能够表征的特征较为丰富,从而提高了流量数据包分类结果的准确性。
图2为本公开实施例提供的另一种流量数据包分类方法的流程示意图,如图2所示,基于上述实施例,在一些实施例中,对每个流量数据包的各字段对应的信息区间进行填充,获得对应的提取信息,包括:
步骤201,针对每个流量数据包,基于各字段的字段长度和信息区间的区间长度的对比结果,确定目标字段。
其中,字段的字段长度能够表征该字段所占据的位数,若对字段格式进行转换,若字段为头字段,该字段长度可以为二进制格式的头字段所占据的位数;若字段为数据字段,该字段长度可以为归一化格式的数据字段所占据的位数。信息区间的区间长度可以表征该信息区间能够填入的最大位数。
在本实施例中,针对每个流量数据包中包括的字段,可以将该字段的字段长度和信息区间的区间长度进行位数对比获得对比结果,从而根据该对比结果对字段进行截取或添加字符等操作,获得目标字段。
在一些实施例中,基于各字段的字段长度和信息区间的区间长度的对比结果,确定目标字段,包括:
若字段的字段长度大于信息区间的区间长度,截取字段获得目标字段。在本实施例中,在字段长度大于区间长度的情况下,可以从字段中截取与区间长度一致的部分字段,将截取获得的部分字段作为目标字段。其中,对字段进行截取的方法可以为:从前往后截取、从后往前截取、从中间部分截取中的一种。
若字段的字段长度小于信息区间的区间长度,将预设字符添加在字段之后,获得目标字段。其中,预设字符可以为用于对字段长度进行扩充的占位字符,该预设字段可以根据用户需求等进行设置,一种可选的实施方式中,为了避免预设字符对字段中的数据造成影响,该预设字符可以设置为与字段中包括的字符不同的字符,若头字段转化为了二进制格式且数据字段转化为了归一化格式,则该预设字符可以为除了0、1、0和1之间的字符之外的其他字符,例如该预设字符可以为-1。在本实施例中,在字段长度小于区间长度的情况下,可以在字段的后面添加预设字符,使得添加了预设字符的字段与区间长度一致,将该添加了预设字符的字段作为目标字段。可以理解地,可以在字段之前添加预设字符,获得在字段的中间添加预设字符,从而获得目标字段。
若字段的字段长度等于信息区间的区间长度,将字段作为目标字段;其中,目标字段的字段长度等于信息区间的区间长度。在本实施例中,若字段长度等于区间长度,说明若直接将该字段填入信息区间内,恰好能够填充满信息区间,因而可以将该字段作为目标字段。
步骤202,基于目标字段对目标字段对应的信息区间进行填充,获得提取信息。
在本实施例中,在确定目标字段之后,该目标字段的字段长度与信息区间的区间长度一致,可以将该目标字段填充入其对应的信息区间中,将该流量数据包的各字段对应的目标字段填充入相应的信息区间中,从而获得提取信息。
上述方案中,基于字段长度和区间长度的对比结果确定了适合于填入信息区间的目标字段并组成提取信息,从而使得不同字段长度的字段均能在提取信息中有所表征,从而提高了提取信息对流量数据包表征的全面性。
在一些实施例中,不同种类的流量数据包中包括协议头的类型可能不同,即不同的流量数据包可能具有不同字段类型的字段。相应的若每个字段类型均存在一一对应的信息区间,因而基于一个流量数据包中的字段对信息区间进行填充之后,可能还存在未被填充的缺失的信息区间。基于上述实施例,确定各字段对应的信息区间之后,还包括:
如果目标流量数据包的各字段对应的信息区间相对于全部的信息区间存在至少一个缺失的信息区间,则将预设字符填充到至少一个缺失的信息区间,并对目标流量数据包的各字段对应的信息区间进行填充,获得目标流量数据包的提取信息。
其中,若全部的信息区间对应的字段类型为第一字段类型,流量数据包包括的字段类型为第二字段类型,若至少一个第一字段类型不包括在第二字段类型中,则该流量数据包为目标流量数据包。即至少一个需要填充的全部的信息区间对应的字段类型,不包括在该目标流量数据包包括的字段类型中。缺失的信息区间对应的字段类型不属于目标流量数据包包括的字段类型。预设字符可以为对字段长度进行扩充的占位字符,该预设字段可以根据用户需求等进行设置。
在本实施例中,获取目标流量数据包包括的多个字段,并确定该多个字段对应的字段类型以及各字段类型对应的信息区间。将该信息区间与全部的信息区间进行比对,确定全部的信息区间中与目标流量数据包中的字段类型不对应的缺失的信息区间,将预设字符填充至该缺失的信息区间中。并基于字段对该字段对应的信息区间进行填充,若该字段的字段长度大于信息区间的区间长度,则截取该字段获得目标字段,将目标字段填充入信息区间内;若该字段的字段长度小于信息区间的区间长度,则在该字段之后补充预设字段获得目标字段,将目标字段填充入信息区间内;若该字段的字段长度等于信息区间的区间长度,则将该字段作为目标字段填充入信息区间内。其中,目标字段的字段长度与信息区间的区间长度一致。
图3为本公开实施例提供的一种提取信息的示意图,如图3所示,在字段类型和信息区间的对应关系中,位数序号为1-480的信息区间对应网际协议版本4头字段,位数序号为481-960的信息区间对应传输控制协议头字段,位数序号为961-1024的信息区间对应用户数据报协议头字段,位数序号为1025-1088的信息区间对应网络控制报文协议头字段,位数序号为1089-2500的信息区间对应数据字段。其中,用户数据报协议头字段对应的信息区间和网络控制报文协议头字段对应的信息区间,为缺失的信息区间,该信息区间内使用预设字符进行填充。数据字段的位数小于1412位,该数据字段不足以对位数序号为1089-2500的信息区间进行填充,因而在该数据字段之后添加预设字符,添加预设字符之后的数据字段的位数为1412位。
上述方案中,解决了从包括不同字段类型的流量数据包中确定提取信息的问题,并且该提取信息中相同信息区间的字段类型相同,从而实现了流量数据包中相同类型的字段在提取信息中的对齐,保留了流量数据包中字段之间的关联性,使得提取信息具有固定的结构,从而进一步提高了基于该提取信息确定的分类结果的准确性。
图4为本公开实施例提供的又一种流量数据包分类方法的流程示意图,如图4所示,基于上述实施例,在一些实施例中,数据包分类模型的训练过程,包括:
步骤401,获取样本数据包中的多个样本字段。
其中,样本数据包可以为样本流量信息包括的数据包,基于该样本数据包能够获取对待训练模型进行训练的样本字段。样本字段可以为样本数据包中具有确定功能的一个或多个字节,该样本字段的类型包括但不限于:协议头字段和/或有效载荷字段。其中,协议头字段包括但不限于:基于网际协议确定的字段、基于传输层协议确定的字段、基于网络层协议确定的字段中的一种或多种。
在本实施例中,可以对样本流量信息进行提取操作,提取获得样本流量信息包括的样本数据包。并且可以调用字段接口从该样本数据包中提取相应的样本字段。
步骤402,针对每个样本数据包,根据各样本字段的样本字段类型,确定各样本字段对应的样本区间;其中,相同样本字段类型的样本字段对应的样本区间相同,样本区间为样本字段填充的区间范围。
其中,样本区间可以与样本字段类型一一对应,样本字段类型与样本区间的对应关系,与字段类型与信息区间的对应关系可以一致。
在本实施例中,提取出样本流量包中的多个样本字段之后,可以基于该多个样本字段生成该样本量数据包对应的样本信息。该样本信息可以为基于从样本数据包中提取的样本字段,生成的能够对样本数据包进行表征的信息。具体地,可以根据预先设置的样本字段类型与样本区间的对应关系,针对样本数据包中的每个样本字段,确定各样本字段的样本字段类型,并根据该样本字段类型对样本字段类型与样本区间的对应关系进行查询操作,从而确定该样本字段对应的样本区间。
步骤403,对每个样本数据包的各样本字段对应的样本区间进行填充,获得对应的样本信息。
在一些实施例中,对每个样本数据包的各样本字段对应的样本区间进行填充,获得对应的样本信息,包括:针对每个样本数据包,基于各样本字段的字段长度和样本区间的区间长度的对比结果,确定目标样本字段;基于目标样本字段对目标样本字段对应的样本区间进行填充,获得样本信息。
其中,基于各样本字段的字段长度和样本区间的区间长度的对比结果,确定目标样本字段,可以包括:若样本字段的字段长度大于样本区间的区间长度,截取样本字段获得目标样本字段。若样本字段的字段长度小于样本区间的区间长度,将预设字符添加在字段之后,获得目标样本字段。若样本字段的字段长度等于样本区间的区间长度,将样本字段作为目标样本字段;其中,目标样本字段的字段长度等于样本区间的区间长度。
上述基于样本字段对样本区间进行填充的具体方法与根据字段对信息区间进行填充的具体方法类似,此处不再赘述。
步骤404,根据样本信息和样本数据包对应的样本类型对待训练模型进行训练,获得数据包分类模型。
其中,样本类型为样本数据包的内容类型,该样本类型可以根据用户需求和/或应用场景等进行设置,本实施例上不做限制,例如该样本类型可以包括明文文本数据、图像数据、加密数据、压缩数据、编码数据中的一种或多种。待训练模型包括但不限于:梯度提升树(Gradient Boosting Decision Tree,GBDT)模型、随机森林模型、逻辑回归模型、支持向量机模型中的一种。
在本实施例中,可以基于样本信息和样本数据包对应的样本类型通过迭代计算的方法对待训练模型进行训练,获得相应的数据包分类模型。
一种可选的实施方式中,待训练模型可以为梯度提升树模型,在梯度提升树模型中,可以基于弱分类器通过迭代训练获得分类效果较好的数据包分类模型。其中,弱分类器又称分类回归(Classification And Regression Tree,CART)树。该梯度提升树模型具有训练效果好、不易过拟合等优点。若表示第t棵CART树,则第t步迭代的梯度提升树模型可以表示为:,其中,T表示总迭代步数。
可以采用前向分步算法对该梯度提升树模型进行训练,具体地,第t步迭代确定的梯度提升树模型由第t-1步迭代确定的梯度提升树模型确定,每棵CART树的拟合损失函数为当前步数的梯度提升树模型的负梯度,最终将多个CART数的线性相加获得梯度提升树模型。其中,第t步的梯度提升树模型可以表示为:。
上述方案中,基于样本数据包中的样本字段,生成了与样本数据包对应的样本信息,进而基于该样本信息和样本数据包对应的样本类型对待训练模型进行训练,从而获得数据包分类模型。该数据包分类模型具有根据输入的提取信息确定流量数据包的分类结果的能力。
接下来通过一个具体的示例对本公开实施例中的流量数据包分类方法,进行进一步说明。示例性的,图5为本公开实施例提供的一种流量数据包分类方法的示意图,如图5所示,该流量数据包分类方法包括:流量信息采集模块、提取信息模块、模型训练模块、模型推理模块各模块的功能如下所示:
流量信息采集模块:通过流量采集设备采集流量信息,提取每条流量信息中的所有流量数据包,将每个流量数据包输出到预设格式的原始数据文件中。该预设格式可以为文本格式。
提取信息模块:首先,构建总2500槽位数为的序列。其中,序列中的槽位序号为1-480的信息区间与IPv4协议头中的必选字段以及可选字段相对应,序列中的槽位序号为481-960的信息区间与TCP协议头字段的必选字段以及可选字段相对应,序列中槽位序号为961-1024的信息区间与UDP协议头字段的语义字段相对应,序列中槽位序号为1025-1088的信息区间与ICMP协议头字段的语义字段相对应,序列中槽位序号为1089-2500的信息区间与有效载荷字段相对应。并且,各必选字段按既定顺序排列。然后,通过提取信息模块读取流量数据包,并解析获得流量数据包中的IPv4头字段、TCP头字段、UDP头字段、ICMP头字段中的各必选字段和/或可选字段,并将该必选字段和/或可选字段转化为二进制,填入对应的信息区间中。若头字段的字段长度小于信息区间的区间长度,可以使用-1填充在头字段的尾部,使得填充之后头字段的字段长度与信息区间的区间长度一致。若有效载荷字段的字段长度大于信息区间的区间长度,可以从前往后截取有效载荷字段的1412个字节,并对各字节值进行归一化处理;若有效载荷字段的字段长度小于信息区间的区间长度,可以使用-1填充在有效载荷字段之后,使得填充之后有效载荷字段的字段长度与信息区间的区间长度一致。基于上述字段长度与信息区间的区间长度一致的字段,对信息区间进行填充,获得相应的提取信息,将该流量数据包对应的提取信息保存到预设格式的特征文件中。
模型训练模块:流量信息采集模块处理获得的流量数据包中,部分为类型已知的样本数据包,因而对该样本数据包进行提取获得的为样本信息,基于该样本数据包的样本类型以及样本信息能够对梯度提升树模型进行训练,从而获得数据包分类模型。对该数据包分类模型进行持久化处理,保存至磁盘空间。
模型推理模块:流量信息采集模块处理获得的流量数据包中,部分流量数据包的类型未知。该模型推理模块能够从磁盘空间加载数据包分类模型,并将该类型未知的流量数据包对应的提取信息输入数据包分类模型中进行推理预测,数据包分类模型输出该流量数据包传输内容的类型。
一种可选的实施方式中,基于该流量数据包分类方法能够实现异常流量检测,图6为本公开实施例提供的一种异常流量检测方法的流程示意图,如图6所示,该方法包括:
步骤601,通过流量采集模块采集流量信息,解析获取各流量信息包括的流量数据包。
步骤602,基于流量数据包包括的字段,确定该流量数据包对应的提取信息,将该提取信息作为该流量数据包的特征向量。
步骤603,将提取信息输入数据包分类模型中,数据包分类模型输出流量数据包的有效载荷对应的内容类型。
步骤604,若内容类型为加密数据或编码数据,将该流量数据包确定为异常流量。
上述方案中,能够自动化对流量信息进行处理,并且无需根据应用层协议对具体数据进行解析即可生成流量数据包对应的提取信息,无需进行特征的人为提取,简化了特征的构建过程,同时避免了人为提取特征对数据包分类模型的分类效果的影响。通过字段类型与信息区间的对应关系,相同字段类型的字段在提取信息中占据的位置相同,从而该提取信息保留了流量数据包中包括的语义信息,并且使用不存在于二进制格式和归一化格式的预设字符对长度不足的字段进行补足,从而在不引入噪声的同时,使提取信息的各语义信息对齐,有效地提高了模型的分类结果的准确性。
图7为本公开实施例提供的一种流量数据包分类装置的结构示意图,该装置可由软件和/或硬件实现,一般可集成在电子设备中。如图7所示,该装置包括:
第一获取模块701,用于获取流量信息,所述流量信息包括至少一个流量数据包;
第二获取模块702,用于获取各所述流量数据包包括的多个字段;
确定模块703,用于针对每个所述流量数据包,根据各所述字段的字段类型,确定各所述字段对应的信息区间;其中,相同字段类型的字段对应的信息区间相同,所述信息区间为所述字段填充的区间范围;
第一填充模块704,用于对每个所述流量数据包的各字段对应的信息区间进行填充,获得对应的提取信息;
分类模块705,用于将所述提取信息输入数据包分类模型中,获取所述至少一个流量数据包的分类结果。
可选的,所述第二获取模块702具体用于:
调用字段接口提取所述流量数据包中的多个所述字段。
可选的,所述第一填充模块704,包括:
确定子模块,用于针对每个所述流量数据包,基于各所述字段的字段长度和所述信息区间的区间长度的对比结果,确定目标字段;
填充子模块,用于基于所述目标字段对所述目标字段对应的信息区间进行填充,获得所述提取信息。
可选地,所述确定子模块具体用于:
若所述字段的字段长度大于所述信息区间的区间长度,截取所述字段获得目标字段;
若所述字段的字段长度小于所述信息区间的区间长度,将预设字符添加在所述字段之后,获得目标字段;
若所述字段的字段长度等于所述信息区间的区间长度,将所述字段作为目标字段;其中,所述目标字段的字段长度等于所述信息区间的区间长度。
可选地,所述装置还包括:
第二填充模块,用于在确定各所述字段对应的信息区间之后,如果目标流量数据包的各字段对应的信息区间相对于全部的信息区间存在至少一个缺失的信息区间,则将预设字符填充到所述至少一个缺失的信息区间,并对目标流量数据包的各字段对应的信息区间进行填充,获得目标流量数据包的提取信息。
可选地,所述字段包括头字段和数据字段,所述装置还包括:
第一转化模块,用于在所述对每个所述流量数据包的各字段对应的信息区间进行填充之前,若所述字段为所述头字段,将所述头字段由第一原始格式转化为二进制格式;
第二转化模块,用于若所述字段为所述数据字段,将所述数据字段由第二原始格式转化为归一化格式。
可选地,所述装置还包括:模型训练模块,所述模型训练模块用于:获取样本数据包中的多个样本字段;针对每个所述样本数据包,根据各所述样本字段的样本字段类型,确定各所述样本字段对应的样本区间;其中,相同样本字段类型的样本字段对应的样本区间相同,所述样本区间为所述样本字段填充的区间范围;对每个所述样本数据包的各样本字段对应的样本区间进行填充,获得对应的样本信息;根据所述样本信息和所述样本数据包对应的样本类型对待训练模型进行训练,获得所述数据包分类模型。
本公开实施例所提供的流量数据包分类装置可执行本公开任意实施例所提供的流量数据包分类方法,具备执行方法相应的功能模块和有益效果。
图8为本公开实施例提供的一种电子设备的结构示意图。如图8所示,电子设备800包括一个或多个处理器801和存储器802。
处理器801可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备800中的其他组件以执行期望的功能。
存储器802可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器801可以运行所述程序指令,以实现上文所述的本公开的实施例的流量数据包分类方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
在一个示例中,电子设备800还可以包括:输入装置803和输出装置804,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
此外,该输入装置803还可以包括例如键盘、鼠标等等。
该输出装置804可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出装置804可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图8中仅示出了该电子设备800中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备800还可以包括任何其他适当的组件。
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本公开实施例所提供的流量数据包分类方法。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本公开实施例所提供的流量数据包分类方法。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (9)
1.一种流量数据包分类方法,其特征在于,包括:
获取流量信息,所述流量信息包括至少一个流量数据包;
获取各所述流量数据包包括的多个字段;
针对每个所述流量数据包,根据各所述字段的字段类型,确定各所述字段对应的信息区间;其中,相同字段类型的字段对应的信息区间相同,所述信息区间为所述字段填充的区间范围;
对每个所述流量数据包的各字段对应的信息区间进行填充,如果各字段对应的信息区间相对于全部的信息区间存在至少一个缺失的信息区间,则将预设字符填充到所述至少一个缺失的信息区间,获得对应的提取信息;
将所述提取信息输入数据包分类模型中,获取所述至少一个流量数据包的分类结果。
2.根据权利要求1所述的方法,其特征在于,所述获取各所述流量数据包包括的多个字段,包括:
调用字段接口提取所述流量数据包中的多个所述字段。
3.根据权利要求1所述的方法,其特征在于,所述对每个所述流量数据包的各字段对应的信息区间进行填充,包括:
针对每个所述流量数据包,基于各所述字段的字段长度和所述信息区间的区间长度的对比结果,确定目标字段;
基于所述目标字段对所述目标字段对应的信息区间进行填充。
4.根据权利要求3所述的方法,其特征在于,所述基于各所述字段的字段长度和所述信息区间的区间长度的对比结果,确定目标字段,包括:
若所述字段的字段长度大于所述信息区间的区间长度,截取所述字段获得目标字段;
若所述字段的字段长度小于所述信息区间的区间长度,将预设字符添加在所述字段之后,获得目标字段;
若所述字段的字段长度等于所述信息区间的区间长度,将所述字段作为目标字段;其中,所述目标字段的字段长度等于所述信息区间的区间长度。
5.根据权利要求1所述的方法,其特征在于,所述字段包括头字段和数据字段,在所述对每个所述流量数据包的各字段对应的信息区间进行填充之前,还包括:
若所述字段为所述头字段,将所述头字段由第一原始格式转化为二进制格式;
若所述字段为所述数据字段,将所述数据字段由第二原始格式转化为归一化格式。
6.根据权利要求1所述的方法,其特征在于,所述数据包分类模型的训练过程,包括:
获取样本数据包中的多个样本字段;
针对每个所述样本数据包,根据各所述样本字段的样本字段类型,确定各所述样本字段对应的样本区间;其中,相同样本字段类型的样本字段对应的样本区间相同,所述样本区间为所述样本字段填充的区间范围;
对每个所述样本数据包的各样本字段对应的样本区间进行填充,获得对应的样本信息;
根据所述样本信息和所述样本数据包对应的样本类型对待训练模型进行训练,获得所述数据包分类模型。
7.一种流量数据包分类装置,其特征在于,包括:
第一获取模块,用于获取流量信息,所述流量信息包括至少一个流量数据包;
第二获取模块,用于获取各所述流量数据包包括的多个字段;
确定模块,用于针对每个所述流量数据包,根据各所述字段的字段类型,确定各所述字段对应的信息区间;其中,相同字段类型的字段对应的信息区间相同,所述信息区间为所述字段填充的区间范围;
第一填充模块,用于对每个所述流量数据包的各字段对应的信息区间进行填充,如果各字段对应的信息区间相对于全部的信息区间存在至少一个缺失的信息区间,则将预设字符填充到所述至少一个缺失的信息区间,获得对应的提取信息;
分类模块,用于将所述提取信息输入数据包分类模型中,获取所述至少一个流量数据包的分类结果。
8.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述权利要求1-6中任一所述的流量数据包分类方法。
9.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-6中任一所述的流量数据包分类方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210893751.5A CN115001994B (zh) | 2022-07-27 | 2022-07-27 | 流量数据包分类方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210893751.5A CN115001994B (zh) | 2022-07-27 | 2022-07-27 | 流量数据包分类方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115001994A CN115001994A (zh) | 2022-09-02 |
CN115001994B true CN115001994B (zh) | 2022-11-15 |
Family
ID=83021140
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210893751.5A Active CN115001994B (zh) | 2022-07-27 | 2022-07-27 | 流量数据包分类方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115001994B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101814977A (zh) * | 2010-04-22 | 2010-08-25 | 北京邮电大学 | 利用数据流头部特征的tcp流量在线识别方法及装置 |
CN110012035A (zh) * | 2019-05-17 | 2019-07-12 | 广东工业大学 | 网络流量识别方法、系统、装置及计算机可读存储介质 |
CN110858823A (zh) * | 2018-08-24 | 2020-03-03 | 中兴通讯股份有限公司 | 一种数据包的分类方法、装置及计算机可读存储介质 |
CN112104570A (zh) * | 2020-09-11 | 2020-12-18 | 南方电网科学研究院有限责任公司 | 流量分类方法、装置、计算机设备和存储介质 |
CN112702235A (zh) * | 2020-12-21 | 2021-04-23 | 中国人民解放军陆军炮兵防空兵学院 | 一种对未知协议自动化逆向分析的方法 |
CN113348645A (zh) * | 2018-11-27 | 2021-09-03 | 萨瑟尔公司 | 数据流分类的系统和方法 |
CN113890902A (zh) * | 2021-09-15 | 2022-01-04 | 奇安信科技集团股份有限公司 | 特征识别库的构建方法及装置、流量识别方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2580285B (en) * | 2018-08-13 | 2021-01-06 | Metaswitch Networks Ltd | Packet processing graphs |
CN112637292B (zh) * | 2020-12-14 | 2022-11-22 | 中国联合网络通信集团有限公司 | 数据处理方法、装置、电子设备及存储介质 |
-
2022
- 2022-07-27 CN CN202210893751.5A patent/CN115001994B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101814977A (zh) * | 2010-04-22 | 2010-08-25 | 北京邮电大学 | 利用数据流头部特征的tcp流量在线识别方法及装置 |
CN110858823A (zh) * | 2018-08-24 | 2020-03-03 | 中兴通讯股份有限公司 | 一种数据包的分类方法、装置及计算机可读存储介质 |
CN113348645A (zh) * | 2018-11-27 | 2021-09-03 | 萨瑟尔公司 | 数据流分类的系统和方法 |
CN110012035A (zh) * | 2019-05-17 | 2019-07-12 | 广东工业大学 | 网络流量识别方法、系统、装置及计算机可读存储介质 |
CN112104570A (zh) * | 2020-09-11 | 2020-12-18 | 南方电网科学研究院有限责任公司 | 流量分类方法、装置、计算机设备和存储介质 |
CN112702235A (zh) * | 2020-12-21 | 2021-04-23 | 中国人民解放军陆军炮兵防空兵学院 | 一种对未知协议自动化逆向分析的方法 |
CN113890902A (zh) * | 2021-09-15 | 2022-01-04 | 奇安信科技集团股份有限公司 | 特征识别库的构建方法及装置、流量识别方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115001994A (zh) | 2022-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240297889A1 (en) | Automatic inline detection based on static data | |
US9300764B2 (en) | High efficiency binary encoding | |
US8120515B2 (en) | Knowledge based encoding of data with multiplexing to facilitate compression | |
US8862759B2 (en) | Multiplexing binary encoding to facilitate compression | |
CN110287163B (zh) | 安全日志采集解析方法、装置、设备及介质 | |
CN112671726A (zh) | 工业控制协议解析方法、装置、电子设备和存储介质 | |
US11581903B2 (en) | Data compression method and apparatus, computer-readable storage medium, and electronic device | |
CN115242896B (zh) | 动态报文解析方法、装置、电子设备及计算机可读存储介质 | |
CN111241496B (zh) | 确定小程序特征向量的方法、装置和电子设备 | |
CN112035401A (zh) | 模型数据处理方法、装置、电子设备及可读介质 | |
CN111355671B (zh) | 基于自注意机制的网络流量分类方法、介质及终端设备 | |
CN114598597B (zh) | 多源日志解析方法、装置、计算机设备及介质 | |
US20070239393A1 (en) | Knowledge based encoding of data | |
CN115001994B (zh) | 流量数据包分类方法、装置、设备及介质 | |
CN116828087B (zh) | 基于区块链连接的信息安全系统 | |
CN115168857B (zh) | 恶意软件检测优化方法、系统、终端及存储介质 | |
CN115002243B (zh) | 一种数据处理方法及装置 | |
CN109992293B (zh) | Android系统组件版本信息的组装方法及装置 | |
CN114979307B (zh) | 通信协议的解析方法、智能终端及存储介质 | |
CN118200211A (zh) | 一种协议语义分析方法、计算机设备及存储介质 | |
CN115529159B (zh) | 加密流量检测模型的训练方法、装置、设备及存储介质 | |
CN112559458B (zh) | 一种缩减日志大小的方法及系统 | |
CN109032724B (zh) | 一种自定义弹幕消息的处理方法、装置、终端和存储介质 | |
CN114816421A (zh) | 代码转换方法及装置、电子设备、存储介质 | |
CN117768400A (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 |