CN111355671A - 基于自注意机制的网络流量分类方法、介质及终端设备 - Google Patents
基于自注意机制的网络流量分类方法、介质及终端设备 Download PDFInfo
- Publication number
- CN111355671A CN111355671A CN201911412366.9A CN201911412366A CN111355671A CN 111355671 A CN111355671 A CN 111355671A CN 201911412366 A CN201911412366 A CN 201911412366A CN 111355671 A CN111355671 A CN 111355671A
- Authority
- CN
- China
- Prior art keywords
- matrix
- network traffic
- self
- attention mechanism
- input sequence
- 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.)
- Granted
Links
Images
Classifications
-
- 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/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2415—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
-
- 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
-
- 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/2483—Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于自注意机制的网络流量分类方法、介质及终端设备,所述方法获取待分类网络流量包数据,并确定所述待分类网络流量包数据对应的输入序列;将所述输入序列输入至预先训练的网络流量分类模型,通过所述网络流量分类模型预测所述待分类网络流量包数据对应的流量类别。本发明使用的网络流量分类模型包括编码模块,所述编码模块包括自注意机制单元,这样通过自注意机制提取有效流量特征,提高了流量分类精度。
Description
技术领域
本发明涉及计算机网络技术领域,特别涉及一种基于自注意机制的网络流量分类方法、介质及终端设备。
背景技术
网络流量分类用于识别不同的协议和应用程序,它对包括服务质量 (QoS)和异常检测等在内的网络管理任务至关重要。过去几十年来,应用协议的类型和多样性大幅增加,这给网络管理带来了巨大挑战。迄今为止,人们已经提出了各种类型的方法来提高流量分类结果的准确度。
目前,普遍使用的流量分类方法大致可以分为三类:基于有效负载检查的方法,基于传统机器学习(ML)的方法和基于深度学习(DL)的方法。
有效负载检查(也称为深度包检测,DPI)需要查看数据包的有效载荷 (用户数据)并与已知的应用签名进行对比。例如,流量中出现“\GET”签名则可被分类为是HTTP流量。著名的DPI库有libprotoident,OpenDPI 和nDPI。虽然DPI在许多实验中都很成功,但是查看有效负载涉及用户隐私并会引发一些法律问题,而且生成应用签名要花费领域专家的大量时间和精力。
基于传统ML的方法使用流量的统计特征(例如,每流持续时间或平均分组大小)来进行分类。在过去的十年中,人们已经提出了各种ML的方法来对网络流量进行分类。比如K最近邻、C4.5决策树和支持向量机等。然而,这些ML方法中的大多数都依赖于手工制作的特征,这些特征非常耗时且容易出错,已经无法应对当前快速增长的网络流量类型。
基于DL的方法不依赖于专家来提取特征或者签名,其具有更强的学习能力,可以获得更高的性能。因此,DL在流量分类领域中受到了很多关注。例如Deep Packet、BSNN等方法都使用了神经网络模型来进行流量分类。然而,基于DL的方法普遍使用有效载荷作为输入,会泄露用户隐私而与用户隐私保护相冲突。
发明内容
本发明要解决的技术问题在于,针对现有技术的不足,提供一种基于自注意机制的网络流量分类方法、介质及终端设备。
为了解决上述技术问题,本发明所采用的技术方案如下:
一种基于自注意机制的网络流量分类方法,所述方法包括:
获取待分类网络流量包数据,并确定所述待分类网络流量包数据对应的输入序列;
将所述输入序列输入至预先训练的网络流量分类模型,通过所述网络流量分类模型预测所述待分类网络流量包数据对应的流量类别,其中,所述网络流量分类模型包括编码模块,所述编码模块包括自注意机制单元。
所述自注意机制的网络流量分类方法,其中,所述获取待分类网络流量包数据,并确定所述待分类网络流量包数据对应的输入序列具体包括:
获取待分类网络流量包数据;
读取所述获取待分类网络流量包数据的数据包头部,并在所述数据包头部中选取预设数量的字节以形成输入序列,其中,所述输入序列未携带所述数据包头部中的地址信息。
所述自注意机制的网络流量分类方法,其中,所述网络流量分类模型包括嵌入模块以及分类模块,所述通过所述网络流量分类模型预测所述待分类网络流量包数据对应的流量类别具体包括:
将所述输入序列输入至所述嵌入模块,通过所述嵌入模块输出所述输入序列对应的输入矩阵;
将所述输入矩阵输入至编码模块,以通过编码模块输出所述输入序列对应的特征矩阵;
将所述特征矩阵输入至分类模块,通过所述分类模块输出所述输入序列对应的流量类别。
所述自注意机制的网络流量分类方法,其中,所述输入序列中各字节按照各字节所述数据包头部中的位置顺序排序;所述嵌入模块输出所述输入序列对应的输入矩阵的过程包括:
对于输入序列中的每个字节,将该字节在所述输入序列中的位置信息转换为位置向量,以得到所述输入序列对应的位置矩阵;
根据预设转换矩阵将所述输入序列转为嵌入矩阵,其中,所述嵌入矩阵与所述位置矩阵的维度相同;
根据所述位置矩阵以及所述嵌入矩阵生成输入矩阵。
所述自注意机制的网络流量分类方法,其中,所述通过所述分类模块输出所述输入序列对应的流量类别具体包括:
将所述特征矩阵进行线性变换,以得到所述特征矩阵对应的类别向量;
根据所述类别向量确定所述输入序列对应的流量类别。
所述自注意机制的网络流量分类方法,其中,所述编码模块包括若干编码器,所述若干编码器级联,并且若干编码器中的每个编码器均包括依次堆叠的自注意机制单元、第一归一化单元、卷积单元以及第二归一化单元;所述自注意机制单元与所述第一归一化单元,和卷积单元与第二归一化单元均采用残差连接。
所述自注意机制的网络流量分类方法,其中,所述自注意机制单元的处理过程包括:
根据输入所述自注意机制单元的目标矩阵,计算该目标矩阵对应的注意值权重矩阵;
根据所述注意值权重矩阵作用于所述目标矩阵,以得到所述目标矩阵对应的输出矩阵。
所述自注意机制的网络流量分类方法,其中,所述自注意机制单元的处理过程包括:
将输入所述自注意机制单元的目标矩阵划分为若干子目标矩阵;
将每个子目标矩阵作为目标矩阵,并分别执行根据输入所述自注意机制单元的目标矩阵步骤,以得到各子目标矩阵对应的子输出矩阵;
将得到的所有子输出矩阵拼接,以得输出所述目标矩阵对应的输出矩阵。
一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上任一所述的基于自注意机制的网络流量分类方法中的步骤。
一种终端设备,其包括:处理器、存储器及通信总线;所述存储器上存储有可被所述处理器执行的计算机可读程序;
所述通信总线实现处理器和存储器之间的连接通信;
所述处理器执行所述计算机可读程序时实现如上任一所述的基于自注意机制的网络流量分类方法中的步骤。
有益效果:与现有技术相比,本发明提供了一种基于自注意机制的网络流量分类方法、介质及终端设备,所述方法获取待分类网络流量包数据,并确定所述待分类网络流量包数据对应的输入序列;将所述输入序列输入至预先训练的网络流量分类模型,通过所述网络流量分类模型预测所述待分类网络流量包数据对应的流量类别。本发明使用的网络流量分类模型包括编码模块,所述编码模块包括自注意机制单元,这样通过自注意机制有效的流量特征,提高了流量分类精度。
附图说明
图1为本发明提供的基于自注意机制的网络流量分类方法的流程图。
图2为本发明提供的基于自注意机制的网络流量分类方法中网络流量分类模型的工作原理图。
图3为本发明提供的基于自注意机制的网络流量分类方法中步骤S10 的流程图。
图4为本发明提供的基于自注意机制的网络流量分类方法中步骤S20 的流程图。
图5为本发明提供的基于自注意机制的网络流量分类方法中自注意机制的工作原理图。
图6为本发明提供的终端设备的结构原理图。
具体实施方式
本发明提供一种基于自注意机制的网络流量分类方法、介质及终端设备,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语 (包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
下面结合附图,通过对实施例的描述,对发明内容作进一步说明。
本实施例提供了一种基于自注意机制的网络流量分类方法。该方法可以由分类装置来执行,所述装置可以由软件实现,应用于诸如智能手机、 PC机、服务器、平板电脑或个人数字助理等之类的安装有操作系统的智能终端上。此外,所述装置可以部署在网络中的控制节点,实现对经过的网络流量的分类。参见图1和图2,本实施例提供的基于自注意机制的网络流量分类方法具体包括:
S10、获取待分类网络流量包数据,并确定所述待分类网络流量包数据对应的输入序列。
具体地,所述待分类网络流量包数据为通过网络传输的数据包,所述数据包可以是终端设备通过网络协议接收到的数据包,也可以是外部设备拷贝给终端设备的数据包等。所述输入序列是根据待分类网络流量包数据生成。所述输入序列包括若干字节,若干字节中的每个字节均为待分类网络流量包数据中的字节,并且若干字节中不包括待分类网络流量包数据携带的IP地址以及端口号等信息,这使得输入序列为采用大量有效载荷信息,从而保护了网络用户的隐私。这是由于随着随机端口分配和网络地址转换等技术的发展,使得IP地址以及端口号变得不可靠,容易造成网络用户隐私泄露。
进一步,在本实施例的一个实现方式中,输入序列是根据所述待分类网络流量包数据的数据包头部生成得到。相应的,如图3所示,所述获取待分类网络流量包数据,并确定所述待分类网络流量包数据对应的输入序列具体包括:
S11、获取待分类网络流量包数据;
S12、读取所述获取待分类网络流量包数据的数据包头部,并在所述数据包头部中选取预设数量的字节以形成输入序列,其中,所述输入序列未携带所述数据包头部中的地址信息。
具体地,所述预设数量可以根据待分类网络流量包的连接类型,并且预设数量小于数据包头部所占的字节长度。所述待分类网络流量包的连接类型可以包括面向连接的网络流量包和无连接的网络流量包,当待分类网络流量包的连接类型为面向连接的网络流量包,所述预设数量可以选取固定数字,例如,40等;当待分类网络流量包的连接类型为无连接的网络流量包时,所述预设数量可以根据无连接的网络流量包的数据包头部占用的字节长度来确定,例如,预设数据小于或等于无连接的网络流量包的数据包头部所占用的字节长度。
进一步,由于述输入序列未携带所述数据包头部中的地址信息,从而当在所述数据包头部中选取预设数量的字节以形成输入序列时,可以要先将数据包头部中的地址信息(IP地址)以及端口信息去除,并在去除后的数据包头部中选取预设数量的字节,以形成所述输入序列;也可以先在数据包头部中选取预设数量的字节之后,在将选取到字节中对于IP地址和端口信息的字节替换为0。
由此,在本实施例的一个可能实现方式中,所述在所述数据包头部中选取预设数量的字节以形成输入序列的过程可以为:将数据包头部中的地址信息以及端口信息去除,并在去除后的数据包头部中选取预设数量的字节;然后将选取到的预设数量的字节按照各自在数据包头部中所处位置的前后顺序进行排序,以得到输入序列。此外,所述输入序列中的若干字节中的任意相邻两个字节之间的前后顺序,与这两个字节在数据包头部中的前后顺序相同。可以理解的是,对于输入序列中的每个字节,在输入序列中位于该字节之后的字节在数据包头部中也位于该字节之后,当然,在输入序列中位于该字节之前的字节在数据包头部中也位于该字节之前。
S20、将所述输入序列输入至预先训练的网络流量分类模型,通过所述网络流量分类模型预测所述待分类网络流量包数据对应的流量类别,其中,所述网络流量分类模型包括编码模块,所述编码模块包括自注意机制单元。
具体地,所述网络流量分类模型为基于预设的训练样本集训练得到,训练样本集可以包括若干训练样本,每个训练样本均可以包括输入序列以及输入序列对应的真实流量类别,其中,输入序列为根据网络流量数据包的数据包头部生成。可以理解的是,所述网络流量分类模型的输入项为输入序列,输出项为流量类别,这样通过该网络流量分类模型可以输入待分类网络流量包数据对应的流量类别。
进一步,在本实施例的一个实现方式中,如图2所示,所述网络流量分类模型包括编码模块200、嵌入模块100以及分类模块300。相应的,如图4所示,所述通过所述网络流量分类模型预测所述待分类网络流量包数据对应的流量类别具体包括:
S21、将所述输入序列输入至所述嵌入模块,通过所述嵌入模块输出所述输入序列对应的输入矩阵;
S22、将所述输入矩阵输入至编码模块,以通过编码模块输出所述输入序列对应的特征矩阵;
S23、将所述特征矩阵输入至分类模块,通过所述分类模块输出所述输入序列对应的流量类别。
具体地,所述嵌入模块与所述编码模块相连接,所述编码模块与所述嵌入模块相连接,所述嵌入模块的输入项为输入序列,所述嵌入模块的输出项为编码模块的输入项,所述编码模块的输出项为所述分类模块的输入项。其中,所述嵌入模块用于将所述输入序列转换为输入矩阵,所述编码模块用于根据输入矩阵提取待分类网络流量包数据的特征矩阵,所述分类模块用于根据所述特征矩阵确定待分类网络流量包数据对应的流量类别。
进一步,在本实施例的一个可能实现方式中,所述输入序列中各字节按照各字节所述数据包头部中的位置顺序排序;所述嵌入模块输出所述输入序列对应的输入矩阵的过程包括:
L10、对于输入序列中的每个字节,将该字节在所述输入序列中的位置信息转换为位置向量,以得到所述输入序列对应的位置矩阵;
L20、根据预设转换矩阵将所述输入序列转为嵌入矩阵,其中,所述嵌入矩阵与所述位置矩阵的维度相同;
L30、根据所述位置矩阵以及所述嵌入矩阵生成输入矩阵。
具体地,在步骤L10中,所述该字节在所述输入序列中的位置信息指的是该字节在输入序列中所处位置的位置编号,其中,位置编码为从1开始的正整数,并且位置编码的最大值为输入序列包含的字节数量。例如,输入序列包括字节A、字节B、字节C以及字节D,并且字节A、字节B、字节C以及字节D在输入序列的排列顺序为字节A、字节B、字节C以及字节 D,那么字节A对应的位置编号为1,字节B对应的位置编号为2,字节C 对应的位置编号为3,以及字节D对应的位置编号为4。
进一步,对于每个字节,在获取到该字节对应的位置信息后,将所述位置信息转换为位置向量。可以理解的是,输入序列中的每个字节对应的位置信息均被转换为一个位置向量,其中,每个字节对应的位置信息均按照预设规则转换为位置向量,以使得任意两个字节对应的位置向量的向量维度相等。在本实施例的一个可能实现方式中,所述预设规则可以为:
PE(pos,i)=sin(pos/10000i/d i为偶数
PE(pos,i)=cos(pos/10000i-1/d i为奇数
其中,i∈[0,d-1]表示根据预设规则转换得到的位置向量的第i个通道, PE(pos,i)表示根据预设规则转换得到的位置向量的第i通道的值,d为预设规则转换得到的位置向量的维度。
进一步,在根据预设规则将各字节转换为位置向量后,将各位置向量按照其对应的字节的位置信息进行排列,以将各位置向量合并成位置矩阵 Mp。此外,在根据所述预设规则对输入序列中的各位置信息进行转换后,对于输入序列中的任意两个字节,记为字节a和字节b,字节a对应的位置向量和字节b对应的位置向量之间具有线性关系。可以理解的是,对于输入序列中任一字节,该字节对应的位置向量PE(pos,i)与距离该字节预设偏移量 k的字节对应的位置向量PE(pos,i+k)可以被描述为PE(pos,i)的线性函数,这样可以根据两个字节对应位置向量来确定两个字节之间的相对位置关系。
进一步,在步骤L20中,所述输入序列中的每个字节均为8bit的二进制书,从而输入序列中的每个字节均为0-255之间的自然数,并且字节可以为0或255。所述嵌入矩阵的维度与所述位置矩阵的维度相同,并且嵌入矩阵是通过对输入序列中的每个字节进行嵌入学习,以得到该字节对应的嵌入向量,之后再将学习到的所有嵌入向量按照其对应的字节的位置顺序进行组合,以得到嵌入矩阵。在本实施例的一个可能实现方式中,所述嵌入学习可以表示为:
yj=Wlonehot(pj)
其中,pj为输入序列中的第j个字节,onehot()为热独编码,并且onehot() 输出均有某个维度为非零数的d维向量,Wl为预设的转换矩阵,yj为d维向量。
进一步,在步骤L30中,由于位置矩阵的维度与嵌入矩阵的维度相同,所述位置矩阵和嵌入矩阵的维度均为l*d维,其中,l为输入序列包含的字节数量,d为输入序列中每个字节的位置信息转换得到位置向量的维度。从而,根据所述位置矩阵以及所述嵌入矩阵生成输入矩阵可以将位置矩阵与嵌入矩阵进行矩阵相加,以得到输入矩阵。当然,所述输入矩阵的维度等于位置矩阵/嵌入均值的维度,即输入矩阵的维度也为l*d维。此外,在实际应用中,所述嵌入模块可以包括位置编码单元、学习嵌入单元以及合成单元,所述位置编码单元与学习嵌入单元并联,并且位置编码单元与学习嵌入单元均与合成单元相连接。其中,所述位置编码单元用于将输入序列转换为位置矩阵,所述学习嵌入单元用于对输入序列进行学习以生成嵌入矩阵;所述合成单元用于将位置矩阵与嵌入矩阵合并以得到输入矩阵。
进一步,在本实施例的一个实现方式中,如图2所示,所述编码模块 200包括若干级联的编码器,并且若干编码器中的每个编码器均包括自注意机制单元。可以理解的时,对于若干编码器中每个编码器,该编码器的输出项为位于其后的编码器的输入项,位于该编码器之前的编码器的输出项为该编码器的输入项,其中,位于最前的编码器的输入项为输入矩阵,位于最后的编码器的输出项为特征矩阵,这样通过多个编码器级联可以加深网络模型,进而提高流量类别确定的准确性。
此外,若干编码器中的每个编码器的网络结构均相同,如图2和5所示,每个编码器均可以包括自注意机制单元、第一归一化单元、卷积单元以及第二归一化单元;所述自注意机制单元、第一归一化单元、卷积单元以及第二归一化单元依次堆叠,并且所述自注意机制单元与所述第一归一化单元采用残差连接,所述卷积单元与第二归一化单元也采用残差连接。这样在每个编码器中设置残差连接和层归一化,可以加速网络模型的训练速度,从而解决多个编码器造成的训练缓慢的位图,从而保证了网络模型的性能。
进一步,所述残差连接可以表示为y=F(x)+x,其中,F表示编码器中的自注意机制单元或者卷积单元,x为自注意机制单元的输入或卷积单元的输入,并且F与x相对应,即当F表示编码器中的自注意机制单元时,x为自注意机制单元的输入;当F表示编码器中的卷积单元时,x为卷积单元的输入。所述归一化为对y进行归一化,以将y转换至[0,1],其中,y为第一归一化单元的输入项或第二归一化单元的输入项。所述卷积单元可以包括依次堆叠的卷积层、ReLU激活函数以及最大池化层。
进一步,所述自注意机制单元的处理过程包括:
根据输入所述自注意机制单元的目标矩阵,计算该目标矩阵对应的注意值权重矩阵;
根据所述注意值权重矩阵作用于所述目标矩阵,以得到所述目标矩阵对应的输出矩阵。
具体地,所述目标矩阵为所述自注意机制单元的输入项,其中,目标矩阵可以为嵌入模块生成的输入矩阵,也可以是位于该自注意机制单元所属的编码器之前的编码器的输出的中间特征矩阵。所述自注意机制单元可以表示为一个函数,该函数的自变量为目标矩阵,因变量为输出矩阵,其中,所述输出矩阵=注意值权重矩阵*目标矩阵。所述注意值权重矩阵为根据目标矩阵计算得到,所述注意值权重矩阵Wa的计算公式可以为:
其中,V为目标矩阵,softmax函数的表达式为:
在softmax函数中,指数函数被应用在向量y的所有元素上,并且每一个位置j的值都除以所有元素值之和以进行归一化。
进一步,输入编码器的目标矩阵V∈Rl×d,而为了防止d太大时直接应用自注意机制导致局部信息的丢失,从而在本实施例的一个实现方式中,可以将d划分成了若干分组,那么每个分组对应的维度d′为d/h,其中,h为分组的数量。相应的,如图5所示,所述自注意机制单元的处理过程包括:
将输入所述自注意机制单元的目标矩阵划分为若干子目标矩阵;
将每个子目标矩阵作为目标矩阵,并分别执行根据输入所述自注意机制单元的目标矩阵步骤,以得到各子目标矩阵对应的子输出矩阵;
将得到的所有子输出矩阵拼接,以得输出所述目标矩阵对应的输出矩阵。
具体地,所述若干子目标矩阵与将d划分得到若干分组的数量相等,可以理解的是,将目标矩阵按照列方向划分为若干子目标矩阵,其中,各子目标矩阵的维度相同。在划分得到若干子目标矩阵后,分别对每个子目标矩阵执行根据输入所述自注意机制单元的目标矩阵步骤,这样可以得到每个子目标矩阵对应的子输出矩阵,在获取到各子输出矩阵后,可以按照目标矩阵的划分方式将各子输出矩阵合并以得到输出矩阵。
进一步,在本实施例的一个实现方式中,所述通过所述分类模块输出所述输入序列对应的流量类别具体包括:
将所述特征矩阵进行线性变换,以得到所述特征矩阵对应的类别向量;
根据所述类别向量确定所述输入序列对应的流量类别。
具体地,所述编码模块输出的特征矩阵M′∈Rl×d,将特征矩阵进行线性变换的过程可以为将特征矩阵中每一行包含的元素进行相加,以得到特征矩阵对应的特征向量v∈Rl,之后在对v进行一次线性变换以得到类别向量。此外,在获取到类别向量后,将softmax函数作用至类别向量,以得到类别概率向量,在类别概率向量中选取最大值对应的流量类别作为待分类网络流量包数据的流量类别。当然,值得说明的是,当在网络流量分类模型的训练过程中,在获取到类别概率向量后,根据类别概率向量来确定损失值,并采用该损失值对网络流量分类模型进行训练,其中,所述损失值的计算公式可以为:
其中,σ表示类别概率向量,j表示真实类别对应的下标,T表示训练批次数。
进一步,在对所述网络流量分类模型进行训练时,所述训练样本包括的网络流量包数据可以借助winpcap和系统API实现。Winpcap(windows packet capture)是windows平台下一个免费,公共的网络访问系统。它用于windows系统下的直接的网络编程,而收集流量则可以调用它的 pcap_loop或pcap_next_ex接口实现。然而这种方式得到的是系统中所有运行的应用的流量数据,我们可以根据不同应用建立的TCP/UDP连接的端口号进行进一步的过滤。Windows的GetTcpTable和GetUdpTable可以实现这个需求。简言之,流量收集的过程如下。首先用winpcap收集所有的流量,在此同时持续调用系统API记录待分类应用程序的端口信息,最后使用winpcap的pcap_setfilter过滤所需流量数据。此外,在获取到网络流量包数据后,可以通过winpcap来完成,Winpcap具有解析流量数据包成字节流的能力,我们只需要找到字节流中与IP地址和端口号相关的字节并置为0即可。
此外,目前存在许多合适的深度学习框可适用于神经网络模型的定义和训练,如Tensorflow、Caffe和Pytorch等。本实施例选取了Pytorch 框架来实现本实施例中的网络流量分类模型。可以理解的是,卷积模块和线性变换可以使用内置的nn.conv1d和nn.linear实现,其他相关内容则可以调用继承nn.module模块自行设计。同时,Pytorch中已经定义好了反向传播算法,可以调用相关接口进行训练。
基于上述基于自注意机制的网络流量分类方法,本实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上述实施例所述的基于自注意机制的网络流量分类方法中的步骤。
基于上述基于自注意机制的网络流量分类方法,本发明还提供了一种终端设备,如图6所示,其包括至少一个处理器(processor)20;显示屏 21;以及存储器(memory)22,还可以包括通信接口(Communications Interface)23和总线24。其中,处理器20、显示屏21、存储器22和通信接口23可以通过总线24完成相互间的通信。显示屏21设置为显示初始设置模式中预设的用户引导界面。通信接口23可以传输信息。处理器20 可以调用存储器22中的逻辑指令,以执行上述实施例中的方法。
此外,上述的存储器22中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器22作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令或模块。处理器20通过运行存储在存储器22中的软件程序、指令或模块,从而执行功能应用以及数据处理,即实现上述实施例中的方法。
存储器22可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器。例如,U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
此外,上述存储介质以及终端设备中的多条指令处理器加载并执行的具体过程在上述方法中已经详细说明,在这里就不再一一陈述。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种基于自注意机制的网络流量分类方法,其特征在于,所述方法包括:
获取待分类网络流量包数据,并确定所述待分类网络流量包数据对应的输入序列;
将所述输入序列输入至预先训练的网络流量分类模型,通过所述网络流量分类模型预测所述待分类网络流量包数据对应的流量类别,其中,所述网络流量分类模型包括编码模块,所述编码模块包括自注意机制单元。
2.根据权利要求1所述自注意机制的网络流量分类方法,其特征在于,所述获取待分类网络流量包数据,并确定所述待分类网络流量包数据对应的输入序列具体包括:
获取待分类网络流量包数据;
读取所述获取待分类网络流量包数据的数据包头部,并在所述数据包头部中选取预设数量的字节以形成输入序列,其中,所述输入序列未携带所述数据包头部中的地址信息。
3.根据权利要求1所述自注意机制的网络流量分类方法,其特征在于,所述网络流量分类模型包括嵌入模块以及分类模块,所述通过所述网络流量分类模型预测所述待分类网络流量包数据对应的流量类别具体包括:
将所述输入序列输入至所述嵌入模块,通过所述嵌入模块输出所述输入序列对应的输入矩阵;
将所述输入矩阵输入至编码模块,以通过编码模块输出所述输入序列对应的特征矩阵;
将所述特征矩阵输入至分类模块,通过所述分类模块输出所述输入序列对应的流量类别。
4.根据权利要求3所述自注意机制的网络流量分类方法,其特征在于,所述输入序列中各字节按照各字节所述数据包头部中的位置顺序排序;所述嵌入模块输出所述输入序列对应的输入矩阵的过程包括:
对于输入序列中的每个字节,将该字节在所述输入序列中的位置信息转换为位置向量,以得到所述输入序列对应的位置矩阵;
根据预设转换矩阵将所述输入序列转为嵌入矩阵,其中,所述嵌入矩阵与所述位置矩阵的维度相同;
根据所述位置矩阵以及所述嵌入矩阵生成输入矩阵。
5.根据权利要求3所述自注意机制的网络流量分类方法,其特征在于,所述通过所述分类模块输出所述输入序列对应的流量类别具体包括:
将所述特征矩阵进行线性变换,以得到所述特征矩阵对应的类别向量;
根据所述类别向量确定所述输入序列对应的流量类别。
6.根据权利要求1-5任一所述自注意机制的网络流量分类方法,其特征在于,所述编码模块包括若干编码器,所述若干编码器级联,并且若干编码器中的每个编码器均包括依次堆叠的自注意机制单元、第一归一化单元、卷积单元以及第二归一化单元;所述自注意机制单元与所述第一归一化单元,和卷积单元与第二归一化单元均采用残差连接。
7.根据权利要求6所述自注意机制的网络流量分类方法,其特征在于,所述自注意机制单元的处理过程包括:
根据输入所述自注意机制单元的目标矩阵,计算该目标矩阵对应的注意值权重矩阵;
根据所述注意值权重矩阵作用于所述目标矩阵,以得到所述目标矩阵对应的输出矩阵。
8.根据权利要求7所述自注意机制的网络流量分类方法,其特征在于,所述自注意机制单元的处理过程包括:
将输入所述自注意机制单元的目标矩阵划分为若干子目标矩阵;
将每个子目标矩阵作为目标矩阵,并分别执行根据输入所述自注意机制单元的目标矩阵步骤,以得到各子目标矩阵对应的子输出矩阵;
将得到的所有子输出矩阵拼接,以得输出所述目标矩阵对应的输出矩阵。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1~8任意一项所述的基于自注意机制的网络流量分类方法中的步骤。
10.一种终端设备,其特征在于,包括:处理器、存储器及通信总线;所述存储器上存储有可被所述处理器执行的计算机可读程序;
所述通信总线实现处理器和存储器之间的连接通信;
所述处理器执行所述计算机可读程序时实现如权利要求1-8任意一项所述的基于自注意机制的网络流量分类方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911412366.9A CN111355671B (zh) | 2019-12-31 | 2019-12-31 | 基于自注意机制的网络流量分类方法、介质及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911412366.9A CN111355671B (zh) | 2019-12-31 | 2019-12-31 | 基于自注意机制的网络流量分类方法、介质及终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111355671A true CN111355671A (zh) | 2020-06-30 |
CN111355671B CN111355671B (zh) | 2023-07-28 |
Family
ID=71195662
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911412366.9A Active CN111355671B (zh) | 2019-12-31 | 2019-12-31 | 基于自注意机制的网络流量分类方法、介质及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111355671B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114338437A (zh) * | 2022-01-13 | 2022-04-12 | 北京邮电大学 | 网络流量分类方法、装置、电子设备及存储介质 |
WO2022077951A1 (zh) * | 2020-10-16 | 2022-04-21 | 鹏城实验室 | 基于深度学习的sketch网络测量方法及电子设备 |
CN114422620A (zh) * | 2021-12-20 | 2022-04-29 | 鹏城实验室 | 一种基于知识蒸馏的数据包分类方法及相关装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108519890A (zh) * | 2018-04-08 | 2018-09-11 | 武汉大学 | 一种基于自注意力机制的鲁棒性代码摘要生成方法 |
US20180261214A1 (en) * | 2017-02-06 | 2018-09-13 | Facebook, Inc. | Sequence-to-sequence convolutional architecture |
CN110363001A (zh) * | 2019-07-12 | 2019-10-22 | 长沙市智为信息技术有限公司 | 一种基于Transformer模型的应用层恶意请求检测方法 |
CN110502627A (zh) * | 2019-08-28 | 2019-11-26 | 上海海事大学 | 一种基于多层Transformer聚合编码器的答案生成方法 |
CN110532386A (zh) * | 2019-08-12 | 2019-12-03 | 新华三大数据技术有限公司 | 文本情感分类方法、装置、电子设备及存储介质 |
-
2019
- 2019-12-31 CN CN201911412366.9A patent/CN111355671B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180261214A1 (en) * | 2017-02-06 | 2018-09-13 | Facebook, Inc. | Sequence-to-sequence convolutional architecture |
CN108519890A (zh) * | 2018-04-08 | 2018-09-11 | 武汉大学 | 一种基于自注意力机制的鲁棒性代码摘要生成方法 |
CN110363001A (zh) * | 2019-07-12 | 2019-10-22 | 长沙市智为信息技术有限公司 | 一种基于Transformer模型的应用层恶意请求检测方法 |
CN110532386A (zh) * | 2019-08-12 | 2019-12-03 | 新华三大数据技术有限公司 | 文本情感分类方法、装置、电子设备及存储介质 |
CN110502627A (zh) * | 2019-08-28 | 2019-11-26 | 上海海事大学 | 一种基于多层Transformer聚合编码器的答案生成方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022077951A1 (zh) * | 2020-10-16 | 2022-04-21 | 鹏城实验室 | 基于深度学习的sketch网络测量方法及电子设备 |
CN114422620A (zh) * | 2021-12-20 | 2022-04-29 | 鹏城实验室 | 一种基于知识蒸馏的数据包分类方法及相关装置 |
CN114422620B (zh) * | 2021-12-20 | 2023-12-01 | 鹏城实验室 | 一种基于知识蒸馏的数据包分类方法及相关装置 |
CN114338437A (zh) * | 2022-01-13 | 2022-04-12 | 北京邮电大学 | 网络流量分类方法、装置、电子设备及存储介质 |
CN114338437B (zh) * | 2022-01-13 | 2023-12-29 | 北京邮电大学 | 网络流量分类方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111355671B (zh) | 2023-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112163594B (zh) | 一种网络加密流量识别方法及装置 | |
Wang et al. | PacketCGAN: Exploratory study of class imbalance for encrypted traffic classification using CGAN | |
WO2022037191A1 (zh) | 一种网络流异常检测模型的生成方法和计算机设备 | |
CN111355671B (zh) | 基于自注意机制的网络流量分类方法、介质及终端设备 | |
CN113472809B (zh) | 一种加密恶意流量检测方法、检测系统及计算机设备 | |
Chen et al. | Automatic mobile application traffic identification by convolutional neural networks | |
CN111209933A (zh) | 基于神经网络和注意力机制的网络流量分类方法和装置 | |
CN113011581A (zh) | 神经网络模型压缩方法、装置、电子设备及可读存储介质 | |
CN112311814A (zh) | 基于深度学习的恶意加密流量识别方法、系统及电子设备 | |
JP2020170495A (ja) | 単一画素攻撃サンプルの生成方法、装置、設備及び記憶媒体 | |
CN111723846A (zh) | 基于随机性特征的加密和压缩流量识别方法及装置 | |
CN106789871B (zh) | 攻击检测方法、装置、网络设备及终端设备 | |
CN110222795A (zh) | 基于卷积神经网络的p2p流量的识别方法及相关装置 | |
CN110691003A (zh) | 一种网络流量分类方法、装置和存储介质 | |
CN112311630A (zh) | 网络设备的识别方法及装置 | |
Wang et al. | Evolutionary algorithm-based and network architecture search-enabled multiobjective traffic classification | |
CN117557843A (zh) | 一种基于半监督学习的流量识别方法及系统 | |
WO2020153597A1 (ko) | 다단계 분류모델 생성 방법 및 그 장치 | |
CN111797997A (zh) | 网络入侵检测方法、模型构建方法、装置及电子设备 | |
CN114422620B (zh) | 一种基于知识蒸馏的数据包分类方法及相关装置 | |
CN114338437B (zh) | 网络流量分类方法、装置、电子设备及存储介质 | |
CN112839051B (zh) | 基于卷积神经网络的加密流量实时分类方法及装置 | |
CN113783795B (zh) | 加密流量分类方法及相关设备 | |
CN114448661A (zh) | 慢速拒绝服务攻击检测方法及相关设备 | |
Mao et al. | Byte-label joint attention learning for packet-grained network traffic classification |
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 |