«上一篇 下一篇»
  计算机工程  2022, Vol. 48 Issue (11): 127-136  DOI: 10.19678/j.issn.1000-3428.0063626
0

引用本文  

张稣荣, 卜佑军, 陈博, 等. 基于多层双向SRU与注意力模型的加密流量分类方法[J]. 计算机工程, 2022, 48(11), 127-136. DOI: 10.19678/j.issn.1000-3428.0063626.
ZHANG Surong, BU Youjun, CHEN Bo, et al. Encrypted Traffic Classification Method Based on Multi-Layer Bidirectional SRU and Attention Model[J]. Computer Engineering, 2022, 48(11), 127-136. DOI: 10.19678/j.issn.1000-3428.0063626.

基金项目

国家自然科学基金(62176264)

作者简介

张稣荣(1996—),女,硕士研究生,主研方向为网络安全、深度学习;
卜佑军,副研究员;
陈博,助理研究员;
孙重鑫,硕士研究生;
王涵,工程师;
胡先君,工程师

文章历史

收稿日期:2021-12-27
修回日期:2022-02-23
基于多层双向SRU与注意力模型的加密流量分类方法
张稣荣1 , 卜佑军1 , 陈博1 , 孙重鑫1 , 王涵2 , 胡先君2     
1. 中国人民解放军战略支援部队信息工程大学 信息技术研究所, 郑州 450000;
2. 网络通信与安全紫金山实验室 内生安全研究中心, 南京 211100
摘要:基于传统循环神经网络的加密流量分类方法普遍存在并行性较差、模型运行效率较低等问题。为实现加密流量的快速准确分类,提出一种基于多层双向简单循环单元(SRU)与注意力(MLBSRU-A)模型的加密流量分类方法。将特征学习和分类统一到一个端到端模型中,利用SRU模型高度并行化的序列建模能力来提高整体运行效率。为了提升MLBSRU-A模型的分类精度,堆叠多层双向SRU网络使其自动地从原始流量中提取特征,并引入注意力机制为特征赋予不同的权重,从而提高重要特征之间的区分度。实验结果表明,在公开数据集ISCX VPN-nonVPN上,MLBSRU-A模型具有较高的分类精度和运行效率,与BGRUA模型相比,MLBSRU-A的细粒度分类准确率提高4.34%,训练时间减少55.38%,在USTC-TFC 2016数据集上,MLBSRU-A模型对未知加密恶意流量的检测准确率达到99.50%,细粒度分类准确率为98.84%,其兼具对未知加密恶意流量的高精度检测能力以及对加密恶意流量的细粒度分类能力。
关键词加密流量分类    加密恶意流量检测    简单循环单元    注意力机制    循环神经网络    
Encrypted Traffic Classification Method Based on Multi-Layer Bidirectional SRU and Attention Model
ZHANG Surong1 , BU Youjun1 , CHEN Bo1 , SUN Chongxin1 , WANG Han2 , HU Xianjun2     
1. Information Technology Institute, PLA Strategic Support Force Information Engineering University, Zhengzhou 450000, China;
2. Endogenous Safety and Security Research Center, Purple Mountain Laboratory of Network Communication and Security, Nanjing 211100, China
Abstract: The encrypted traffic classification method based on traditional Recurrent Neural Network(RNN) typically have poor parallelism and low efficiency.To quickly and accurately classify encrypted traffic, a classification method for encrypted traffic based on a Multi-Layer Bidirectional Simple Recurrent Unit and Attention(MLBSRU-A) model is proposed.Feature learning and classification are unified into an end-to-end model, and the highly parallel sequence modeling ability of the SRU model is used to improve the overall operation efficiency.To improve the classification accuracy of the MLBSRU-A model, multi-layer bidirectional SRU networks are stacked to automatically extract features from the original traffic, and an attention mechanism is introduced to provide different weights to features to improve discrimination between important features.Experiments show that the MLBSRU-A model has a higher classification accuracy and running efficiency on the public dataset ISCX VPN-nonVPN.Compared with the BGRUA model, the fine-grained classification accuracy of MLBSRU-A improved by 4.34%, and the training time reduced by 55.38%.On the USTC-TFC 2016 dataset, the detection accuracy of the MLBSRU-A model for unknown encrypted malicious traffic is 99.50%, and the fine-grained classification accuracy is 98.84%.The proposed model can detect unknown encrypted malicious traffic with high precision and perform fine-grained classification of encrypted malicious traffic.
Key words: encrypted traffic classification    encrypted malicious traffic detection    Simple Recurrent Unit(SRU)    attention mechanism    Recurrent Neural Network(RNN)    

开放科学(资源服务)标志码(OSID):

0 概述

流量分类是网络管理和网络安全领域的一项重要任务,在服务质量保证、网络规划、入侵检测、网络监控、流量趋势分析等领域发挥着重要作用[1]。随着互联网用户对隐私和安全的日益关注,非加密的数据传输方式逐渐被加密传输方式所取代,加密网络流量在互联网中所占的比例逐年上升[2]。但是,加密流量在保护用户隐私与安全的同时,给网络管理和网络安全带来了巨大的挑战,原因是加密后所有的通信内容都是随机的,导致深度数据包检测(Deep Packet Inspection,DPI)[3]等传统流量分类方法失效[4]。因此,对加密流量进行有效分类成为工业界和学术界关注的焦点问题。

将特征工程与机器学习算法相结合,一度成为加密流量分类的主流方法。特征工程是指人工提取和选择加密流量的统计特征,如最大数据包长度、平均传输时间等,将其作为机器学习模型的输入。这种方法在很大程度上依赖于专家经验,耗时耗力,且往往不能产生令人满意的分类结果[5]。相比于这种步骤分散的处理方法,将加密流量分类的所有过程集成于一体的深度学习方法受到了研究人员的青睐。深度学习方法将特征提取与模型训练结合成一个统一的端到端模型[6],直接从原始流量中自动学习特征并进行分类。虽然基于深度学习的加密流量分类能够避免繁杂的人工操作,但是大多数常用的模型较少考虑效率问题,它们使用复杂的神经网络来保证结果的高精度,导致模型训练和测试时间较长。如何在保证分类精度的同时尽可能提高模型的运行速度以提升其分类效率,是一个值得关注的问题。

本文提出一种基于多层双向简单循环单元[7]与注意力(Multi-Layer Bidirectional Simple Recurrent Unit and Attention,MLBSRU-A)模型的加密流量分类方法,并基于公开数据集ISCX VPN-nonVPN和USTC-TFC 2016来验证MLBSRU-A模型的有效性。

1 相关工作

近年来,传统的机器学习方法在加密流量分类领域取得了突出的成果[8-10],但是其核心步骤(即特征提取和特征选择)严重依赖于专家经验,不仅成本较高,而且容易出错。为解决基于机器学习模型的加密流量分类方法中存在的问题,研究人员提出基于深度学习的加密流量分类方法。王伟等[6]提出一种基于一维卷积神经网络(One-Dimensional Convolutional Neural Network,1D-CNN)的端到端加密流量分类方法,其将特征提取、特征选择和分类器集成到一个统一的框架中,从而自动学习原始输入和期望输出之间的非线性关系。随后,基于CNN[11-13]、堆叠自动编码器(Stacked Auto-Encoder,SAE)[11]等深度学习模型的加密流量分类方法陆续被提出。

网络流量数据具有时间序列属性,因此,除CNN外,具有强大序列建模能力的RNN[14]也受到学者们的关注。ZOU等[15]提出一种新的深度神经网络,将CNN和长短期记忆(Long Short-Term Memory,LSTM)模型相结合,以提高分类结果的准确性,其中CNN用于学习网络流量的低层次空间特征,LSTM网络用于学习高层次时间特征。文献[16-18]都将LSTM与其他深度学习模型相结合,从而更全面地提取流量特征。

目前,在加密流量分类领域,计算量更小的门控循环单元(Gated Recurrent Unit,GRU)[19]逐渐替代LSTM。文献[20]提出一种用于加密流量分类的流序列网络,称为FS-Net,其使用双向GRU(Bidirectional-GRU,Bi-GRU)网络来提取报文长度序列中的隐藏信息。随着注意力机制在自然语言处理领域的成功应用,越来越多的学者将GRU和注意力机制相结合以进行加密流量分类。LIU等[21]利用Bi-GRU和注意力机制构建一个用于HTTPs流量分类的深度学习模型,称为BGRUA。其中,Bi-GRU用于提取会话中字节序列的前向和后向特征,并采用注意力机制根据特征对分类的贡献大小来分配权重。实验结果表明,BGRUA在准确率、精确率、召回率和F1分数上都有较好的表现。类似地,文献[22-23]也使用GRU模型与注意力机制进行加密流量检测。

尽管上述研究都取得了较好的结果,但是大多没有考虑RNN模型普遍存在的梯度消失、并行性差等问题,这些缺陷将导致RNN模型效率较低、准确率下降以及训练速度减慢,从而限制了它们对加密流量的分类能力。

2 SRU模型

RNN模型通过引入记忆单元来处理序列之间的时序关联性,它是序列信息分析中最常用的模型之一[20]。但是,传统RNN模型(如LSTM[24]、GRU[19]等)必须等待对上一时刻输出状态全部完成计算后才能对当前时刻输出状态进行计算,即无法实现并行计算,这种前后时间步之间的依赖性使得循环网络的运行效率低于其他模型。

为了提高RNN的训练速度,LEI等[7]在LSTM和GRU的基础上提出SRU,如图 1所示。SRU单元包含遗忘门$ {f}_{t} $和重置门$ {r}_{t} $,利用单元状态$ {\mathit{\boldsymbol{{c}}}}_{t} $在所有时间步上传递信息,最终输出隐藏状态$ {\mathit{\boldsymbol{{h}}}}_{t} $。在时间步$ t $处,SRU结构涉及的所有计算如式(1)~式(4)所示:

$ {f}_{t}=\sigma ({\mathit{\boldsymbol{{W}}}}_{f}{\mathit{\boldsymbol{{x}}}}_{t}+{\mathit{\boldsymbol{{v}}}}_{f}\odot {\mathit{\boldsymbol{{c}}}}_{t-1}+{\mathit{\boldsymbol{{b}}}}_{f}) $ (1)
$ {\mathit{\boldsymbol{{c}}}}_{t}={f}_{t}\odot {\mathit{\boldsymbol{{c}}}}_{t-1}+(1-{f}_{t})\odot \left(\mathit{\boldsymbol{{W}}}{\mathit{\boldsymbol{{x}}}}_{t}\right) $ (2)
$ {r}_{t}=\sigma ({\mathit{\boldsymbol{{W}}}}_{r}{x}_{t}+{\mathit{\boldsymbol{{v}}}}_{r}\odot {\mathit{\boldsymbol{{c}}}}_{t-1}+{\mathit{\boldsymbol{{b}}}}_{r}) $ (3)
$ {\mathit{\boldsymbol{{h}}}}_{t}={r}_{t}\odot {\mathit{\boldsymbol{{c}}}}_{t}+(1-{r}_{t})\odot {\mathit{\boldsymbol{{x}}}}_{t} $ (4)
Download:
图 1 SRU结构 Fig. 1 SRU structure

其中:$ \sigma $为Sigmoid函数;$ {\mathit{\boldsymbol{{W}}}}_{f} $$ \mathit{\boldsymbol{{W}}} $$ {\mathit{\boldsymbol{{W}}}}_{r} $是需要学习的权重矩阵;$ {\mathit{\boldsymbol{{x}}}}_{t} $是时间步$ t $处的输入数据;$ {\mathit{\boldsymbol{{v}}}}_{f} $$ {\mathit{\boldsymbol{{v}}}}_{r} $$ {\mathit{\boldsymbol{{b}}}}_{r} $$ {\mathit{\boldsymbol{{b}}}}_{f} $是训练期间要学习的参数向量;$ \odot $表示Hadamard乘积,即元素对应乘积而非矩阵乘积。

与常见的RNN模型相比,SRU最大的不同之处在于其具有高度并行化的序列建模能力,且兼具改善梯度消失问题的能力。SRU具有如下特点:

1)将门控计算中常用的参数矩阵替换为参数向量,同时将矩阵乘法替换为Hadamard乘积,通过这种简化,$ {\mathit{\boldsymbol{{c}}}}_{t} $$ {f}_{t} $的每个维度都变得独立,即使只知道$ {\mathit{\boldsymbol{{c}}}}_{t-1} $中的一个维度值,也可以直接算出$ {\mathit{\boldsymbol{{c}}}}_{t} $$ {f}_{t} $这一个对应维度上的值,无须等待$ {\mathit{\boldsymbol{{c}}}}_{t-1} $全部计算完毕。因此,可以实现维度上的并行化,且并不影响RNN模型在时间上串行计算的本质。

2)对于式(1)~式(3)中存在的矩阵乘法$ {\mathit{\boldsymbol{{W}}}}_{f}{\mathit{\boldsymbol{{x}}}}_{t} $$ \mathit{\boldsymbol{{W}}}{\mathit{\boldsymbol{{x}}}}_{t} $$ {\mathit{\boldsymbol{{W}}}}_{r}{\mathit{\boldsymbol{{x}}}}_{t} $,在所有时间步上进行批量处理。假设输入序列维度为$ D $,长度为$ L $,隐藏层维度为$ d $,则批处理乘法如式(5)所示:

$ {\mathit{\boldsymbol{{U}}}}^{\mathrm{T}}={\left(\begin{array}{l}\mathit{\boldsymbol{{W}}}\\ {\mathit{\boldsymbol{{W}}}}_{f}\\ {\mathit{\boldsymbol{{W}}}}_{r}\end{array}\right)}^{3d\times D}\cdot [{\mathit{\boldsymbol{{x}}}}_{1}, {\mathit{\boldsymbol{{x}}}}_{2}, \cdots , {\mathit{\boldsymbol{{x}}}}_{L}{]}^{D\times L} $ (5)

其中:$ \mathit{\boldsymbol{{W}}}, {\mathit{\boldsymbol{{W}}}}_{f}, {\mathit{\boldsymbol{{W}}}}_{r}\in {\mathbb{R}}^{d\times D} $$ \mathit{\boldsymbol{{U}}}\in {\mathbb{R}}^{L\times 3d} $。那么对于一个批次中的$ B $个样本,可以先计算得到张量$ \mathit{\boldsymbol{{U}}}(L, B, 3d) $,在之后每个时间步的计算中只需查表就可以完成,这样操作能够显著提高计算效率。

3)在计算隐藏状态$ {\mathit{\boldsymbol{{h}}}}_{t} $时采用跳跃连接方式,直接将输入$ {\mathit{\boldsymbol{{x}}}}_{t} $纳入计算,类似于残差连接,可以改善反向传播过程中的梯度消失问题,打破网络的对称性[25],从而提升网络的表征能力。

上述特点使得SRU能够快速处理序列信息,符合网络管理和网络安全领域中各项工作对加密流量准确快速分类的要求。因此,本文选择SRU网络对加密流量进行特征提取。在下文中,使用如式(6)所示的方程来简要表达SRU中隐藏状态的更新:

$ {\mathit{\boldsymbol{{h}}}}_{t}=\mathrm{S}\mathrm{R}\mathrm{U}({\mathit{\boldsymbol{{c}}}}_{t-1}, {\mathit{\boldsymbol{{x}}}}_{t}) $ (6)

其中:$ {\mathit{\boldsymbol{{c}}}}_{t-1} $表示上一时刻的单元状态;$ {\mathit{\boldsymbol{{x}}}}_{t} $表示当前时刻的输入数据。

3 基于MLBSRU-A模型的加密流量分类方法

本文基于MLBSRU-A模型的加密流量分类方法使用端到端的模型架构,如图 2所示,该方法将特征学习和分类统一到同一模型中,无需人工进行额外的特征提取。首先,对原始流量数据集进行预处理,包括流量分割、数据清洗、长度统一、数据归一化、矩阵变换等步骤;然后,将预处理后的数据输入到特征提取层中,输出每个时间步上隐藏状态的集合作为特征向量;之后,将特征向量输入到注意力层中,计算每个特征的权重值,并输出加权后的流特征向量;最后,将注意力层输出的加权流特征向量输入到全连接层中,得到该输入数据属于各类标签的概率,概率值最高的类别即为模型产生的分类结果。

Download:
图 2 基于MLBSRU-A模型的加密流量分类方法整体架构 Fig. 2 Overall architecture of encrypted traffic classification method based on MLBSRU-A model
3.1 数据预处理层

以pcap格式存储的原始流量数据作为数据预处理层的输入,经过流量分割、数据清洗等步骤后,得到包含可用信息的流矩阵。具体步骤如下:

1)流量分割。为了区分不同应用程序或网站产生的流量,需要按照五元组信息将原始流量分为不同的双向流。其中,流定义为一组具有相同五元组(源IP、目的IP、源端口、目的端口、传输层协议)的数据包,而双向流中数据包五元组的源IP和目的IP、源端口和目的端口可以交换。在下文中将双向流简称为流。

2)数据清洗。删除数据包中对于流量分类而言有效信息较少的以太网报头;将数据包中的IP地址用零来代替,以消除由随机端口分配、网络地址转换等技术造成的混淆。此外,还需删除流中包含的空数据包和重复数据包,以避免它们对模型学习过程造成干扰。

3)长度统一。由于模型要求所有输入数据的长度相同,因此取每条流的前$ n $字节(本文规定$ n $为50的倍数)作为输入。如果流长度大于$ n $,则截断;反之,则补零(0x00)至$ n $字节。

4)数据归一化。为了减小输入数据数值范围对模型训练的影响,将流数据进行归一化处理,流的每一字节都被转换成一个[0, 1]范围内的整数,此时流数据被转换为长度为$ n $的向量$ \mathit{\boldsymbol{{f}}} $

5)矩阵变换。SRU网络在每一时间步处输入的维度是固定的,本文将其设置为50,这意味着在每一时间步将有50个字节的流数据输入到SRU网络中。为此,需要将流向量$ \mathit{\boldsymbol{{f}}} $进行维度变换,转换成流矩阵$ \mathit{\boldsymbol{{x}}}=[{\mathit{\boldsymbol{{x}}}}_{1}, {\mathit{\boldsymbol{{x}}}}_{2}, $ $ \cdots , {\mathit{\boldsymbol{{x}}}}_{N}] $,其中,$ N=\frac{n}{50} $$ {\mathit{\boldsymbol{{x}}}}_{i}\in {\mathbb{R}}^{50}, $$ i\in [1, N] $$ \mathit{\boldsymbol{{x}}}\in {\mathbb{R}}^{50\times N} $

3.2 特征提取层

特征提取层以流矩阵$ \mathit{\boldsymbol{{x}}}=[{\mathit{\boldsymbol{{x}}}}_{1}, {\mathit{\boldsymbol{{x}}}}_{2}, \cdots , {\mathit{\boldsymbol{{x}}}}_{N}] $作为输入,通过多层双向SRU网络整合流的上下文信息,从而提取流特征。具体地,给定流矩阵$ \mathit{\boldsymbol{{x}}}=[{\mathit{\boldsymbol{{x}}}}_{1}, {\mathit{\boldsymbol{{x}}}}_{2}, \cdots , $ $ {\mathit{\boldsymbol{{x}}}}_{N}] $,双向SRU网络包含一个前向SRU网络$ \overrightarrow{\mathrm{S}\mathrm{R}\mathrm{U}} $(从$ {\mathit{\boldsymbol{{x}}}}_{1} $$ {\mathit{\boldsymbol{{x}}}}_{n} $读取$ \mathit{\boldsymbol{{x}}} $)和一个后向SRU网络$ \overleftarrow{\mathrm{S}\mathrm{R}\mathrm{U}} $(从$ {\mathit{\boldsymbol{{x}}}}_{n} $$ {\mathit{\boldsymbol{{x}}}}_{1} $读取$ \mathit{\boldsymbol{{x}}} $),分别如式(7)、式(8)所示:

$ \overrightarrow{{\mathit{\boldsymbol{{h}}}}_{t}}=\overrightarrow{\mathrm{S}\mathrm{R}\mathrm{U}}(\overrightarrow{{\mathit{\boldsymbol{{h}}}}_{t-1}}, {\mathit{\boldsymbol{{x}}}}_{t}), t\in [1, N] $ (7)
$ \overleftarrow{{\mathit{\boldsymbol{{h}}}}_{t}}=\overleftarrow{\mathrm{S}\mathrm{R}\mathrm{U}}(\overleftarrow{{\mathit{\boldsymbol{{h}}}}_{t+1}}, {\mathit{\boldsymbol{{x}}}}_{t}), t\in [1, N] $ (8)

其中:$ \overrightarrow{{\mathit{\boldsymbol{{h}}}}_{t}} $为前向隐藏状态,收集流序列中$ {\mathit{\boldsymbol{{x}}}}_{t} $之前的信息;$ \overleftarrow{{\mathit{\boldsymbol{{h}}}}_{t}} $为后向隐藏状态,收集$ {\mathit{\boldsymbol{{x}}}}_{t} $之后的信息;初始隐藏状态向量$ \overrightarrow{{\mathit{\boldsymbol{{h}}}}_{0}} $$ \overleftarrow{{\mathit{\boldsymbol{{h}}}}_{N+1}} $均为零向量。本文将$ \overrightarrow{{\mathit{\boldsymbol{{h}}}}_{t}} $$ \overleftarrow{{\mathit{\boldsymbol{{h}}}}_{t}} $拼接在一起,得到时间步$ t $处整条流的汇总信息$ {\mathit{\boldsymbol{{h}}}}_{t}=[\overrightarrow{{\mathit{\boldsymbol{{h}}}}_{t}}, \overleftarrow{{\mathit{\boldsymbol{{h}}}}_{t}}] $

为了更进一步获得流量数据的高阶特征,本文将双向SRU网络堆叠$ M $层,$ t $时刻第$ i $层的输入为该时刻第$ i-1 $层的输出$ {\mathit{\boldsymbol{{h}}}}_{t}^{i-1} $,如式(9)、式(10)所示:

$ \overrightarrow{{\mathit{\boldsymbol{{h}}}}_{t}^{i}}=\overrightarrow{\mathrm{S}\mathrm{R}\mathrm{U}}(\overrightarrow{{\mathit{\boldsymbol{{h}}}}_{t-1}^{i}}, {\mathit{\boldsymbol{{h}}}}_{t}^{i-1}), t\in [1, N], i\in (1, M] $ (9)
$ \overleftarrow{{\mathit{\boldsymbol{{h}}}}_{t}^{i}}=\overleftarrow{\mathrm{S}\mathrm{R}\mathrm{U}}(\overleftarrow{{\mathit{\boldsymbol{{h}}}}_{t-1}^{i}}, {\mathit{\boldsymbol{{h}}}}_{t}^{i-1}), t\in [1, N], i\in (1, M] $ (10)

其中:每条流的字节数$ N $与SRU网络堆叠层数$ M $的值将通过实验确定,详见第4.5.1节。因此,在$ t $时刻第$ i $层整条流的汇总信息表示为$ {\mathit{\boldsymbol{{h}}}}_{t}^{i}=[\overrightarrow{{\mathit{\boldsymbol{{h}}}}_{t}^{i}}, \overleftarrow{{\mathit{\boldsymbol{{h}}}}_{t}^{i}}] $

将最后一层每个时间步生成的隐藏状态拼接起来,得到特征提取层的输出,如式(11)所示:

$ {\mathit{\boldsymbol{{h}}}}_{N}=[{\mathit{\boldsymbol{{h}}}}_{1}^{M}, {\mathit{\boldsymbol{{h}}}}_{2}^{M}, \cdots , {\mathit{\boldsymbol{{h}}}}_{N}^{M}] $ (11)

经过$ M $层双向SRU网络的特征提取过程,特征向量$ {\mathit{\boldsymbol{{h}}}}_{N} $高度聚合了整条流的双向上下文信息,能够使模型更准确地对流量进行分类。

3.3 注意力层

对于一条流而言,并非所有字节都对分类起到同样重要的作用。为了使流中相对重要的信息能对分类结果产生较大的影响,本文引入注意力机制[26],如图 3所示。

Download:
图 3 注意力层计算过程 Fig. 3 Attention layer calculation process

在注意力机制中,核心操作是各元素的权重计算。本文将特征提取层输出的特征向量$ {\mathit{\boldsymbol{{h}}}}_{N} $作为注意力层的输入,通过将每个时间步上的隐藏状态进行加权求和,得到流特征向量$ \mathit{\boldsymbol{{s}}} $,如式(12)所示:

$ \mathit{\boldsymbol{{s}}}=\sum\limits_{t=1}^{N}{\alpha }_{t}{\mathit{\boldsymbol{{h}}}}_{t}^{M} $ (12)

$ {\alpha }_{t} $$ {\mathit{\boldsymbol{{h}}}}_{t}^{M} $的权重系数,计算方法如式(13)所示:

$ {\alpha }_{t}=\frac{\mathrm{e}\mathrm{x}\mathrm{p}\left({e}_{t}\right)}{\sum\limits_{t}\mathrm{e}\mathrm{x}\mathrm{p}\left({e}_{t}\right)} $ (13)

$ {e}_{t} $$ {\mathit{\boldsymbol{{h}}}}_{t}^{M} $通过一个前馈神经网络层生成的隐藏表示,计算如下:

$ {e}_{t}=\mathrm{t}\mathrm{a}\mathrm{n}\mathrm{h}({\mathit{\boldsymbol{{W}}}}_{h}{\mathit{\boldsymbol{{h}}}}_{t}+{\mathit{\boldsymbol{{b}}}}_{h}) $ (14)

其中:$ {\mathit{\boldsymbol{{W}}}}_{h} $$ {\mathit{\boldsymbol{{b}}}}_{h} $分别为权重矩阵和偏差。

3.4 全连接层

全连接层以注意力层输出的特征向量$ \mathit{\boldsymbol{{s}}} $作为输入,通过线性变换将其映射到样本标记空间$ {\mathbb{R}}^{c} $中,以获得向量$ \mathit{\boldsymbol{{v}}}\in {\mathbb{R}}^{c} $,其中,$ c $是流量类别总数。向量$ \mathit{\boldsymbol{{v}}} $输入到Softmax函数中,得到该条流属于各类别的概率值,取概率值最大的类别作为最终的分类结果。Softmax函数如式(15)所示:

$ {p}_{i}=\frac{\mathrm{e}\mathrm{x}\mathrm{p}\left({v}_{i}\right)}{\sum\limits_{i=1}^{c}\mathrm{e}\mathrm{x}\mathrm{p}\left({v}_{i}\right)} $ (15)

其中:$ {p}_{i} $是输入样本属于类别$ i $的概率;$ {v}_{i}\in \mathit{\boldsymbol{{v}}} $$ (-\mathrm{\infty }, +\mathrm{\infty }) $范围内的实数,又称该条数据对应于各个类别的分数。

4 实验结果与分析 4.1 实验数据集

为了使实验具有更高的可信度,本文基于2个公共流量数据集进行实验:

1)数据集A是基于ISCX VPN-nonVPN数据集[27]所生成,ISCX VPN-nonVPN数据集有7种常规加密流量和7种协议封装流量,但是其中6种加密流量都与网页浏览有关,因此,本文参照文献[6]放弃网页浏览这类流量。数据集A的具体信息如表 1所示。

下载CSV 表 1 数据集A具体信息 Table 1 Specific information of dataset A

2)数据集B是USTC-TFC 2016数据集,由王伟等[28]创建,包含10类正常加密流量和10类恶意加密流量,具体信息如表 2所示。

下载CSV 表 2 数据集B具体信息 Table 2 Specific information of dataset B
4.2 对比模型

为了对MLBSRU-A模型的性能进行验证,本文选择4个关联性较强的模型进行对比:

1)BLSTMA模型[29],通过将Bi-LSTM与注意力机制相结合,提取流中的数据包序列信息,并通过注意力机制,根据每个数据包特征对分类的贡献大小来对其分配权重。

2)BGRUA模型[21],采用Bi-GRU网络提取会话中的双向字节序列信息,同时结合注意力机制来提高HTTPS流量分类的准确性。

3)1D-CNN模型[6],将特征选择、特征提取、分类器与1D-CNN整合到一个统一的端到端框架中,旨在自动学习原始输入和期望输出之间的非线性关系,该模型也是第一次将端到端方法应用于加密流量分类领域。

4)CNN+LSTM模型[15],将卷积网络和递归网络相结合,以提高流量分类的准确性。其中,CNN用于提取单个数据包的特征,LSTM以流中任意3个连续数据包的包特征作为输入来提取流特征。

4.3 评价指标与实验环境

本文采用4个指标对模型进行性能评估,分别为准确率(Accuracy)、精确率(Precision)、召回率(Recall)以及F1分数(F1_score)。对于多分类问题,将每个类和剩余类样本视为一个二元分类,即可直接计算出每种类型的精确率和召回率。4个评价指标的计算公式分别如下:

$ {A}_{\mathrm{A}\mathrm{c}\mathrm{c}\mathrm{u}\mathrm{r}\mathrm{a}\mathrm{c}\mathrm{y}}=\frac{{T}_{\mathrm{P}}+{T}_{\mathrm{N}}}{{T}_{\mathrm{P}}+{T}_{\mathrm{N}}+{F}_{\mathrm{P}}+{F}_{\mathrm{N}}} $ (16)
$ {P}_{\mathrm{P}\mathrm{r}\mathrm{e}\mathrm{c}\mathrm{i}\mathrm{s}\mathrm{i}\mathrm{o}\mathrm{n}}=\frac{{T}_{\mathrm{P}}}{{T}_{\mathrm{P}}+{F}_{\mathrm{P}}} $ (17)
$ {R}_{\mathrm{R}\mathrm{e}\mathrm{c}\mathrm{a}\mathrm{l}\mathrm{l}}=\frac{{T}_{\mathrm{P}}}{{T}_{\mathrm{P}}+{F}_{\mathrm{N}}} $ (18)
$ \mathrm{F}1=2\times \frac{{P}_{\mathrm{P}\mathrm{r}\mathrm{e}\mathrm{c}\mathrm{i}\mathrm{s}\mathrm{i}\mathrm{o}\mathrm{n}}\times {R}_{\mathrm{R}\mathrm{e}\mathrm{c}\mathrm{a}\mathrm{l}\mathrm{l}}}{{P}_{\mathrm{P}\mathrm{r}\mathrm{e}\mathrm{c}\mathrm{i}\mathrm{s}\mathrm{i}\mathrm{o}\mathrm{n}}+{R}_{\mathrm{R}\mathrm{e}\mathrm{c}\mathrm{a}\mathrm{l}\mathrm{l}}} $ (19)

其中:$ {T}_{\mathrm{P}} $$ {F}_{\mathrm{P}} $$ {T}_{\mathrm{N}} $$ {F}_{\mathrm{N}} $分别为真阳性、假阳性、真阴性及假阴性;准确率表示样本被正确分类的比例;精确率表示在所有被预测为正的样本中实际为正的样本所占的比例;召回率表示在实际为正的样本中被预测为正的样本所占的比例;F1分数是精确率和召回率的调和平均,能够同时兼顾这2种指标。

本文实验环境与配置具体如表 3所示。

下载CSV 表 3 实验环境与配置 Table 3 Experimental environment and configuration
4.4 结果分析 4.4.1 MLBSRU-A模型参数选择与分析

调参是训练神经网络的一个重要步骤,在训练阶段,通过改变每个超参数来估计参数梯度,并根据准确率的变化来决定超参数数值的增大或减小,使得模型达到最优性能。本节基于数据集A中的6类常规加密流量分别进行实验,使用准确率作为度量标准以确定最佳超参数值,从而实现分类精度和效率之间的权衡。

1)每条流的字节数$ n $和SRU网络的堆叠层数$ M $

在3.1节提到,本文将每条流的长度固定为$ n $字节(设置$ n $为50的倍数),以满足模型对输入数据的要求,同时将SRU网络堆叠$ M $层,以提取流量的高阶特征。本文将$ n $的取值范围设置为[50,1 000],步长为50,同时将$ M $的取值范围设置为[1, 5],分别进行实验以观察不同$ n $值及$ M $值对模型分类结果的影响,从而确定两者的最佳取值。在该实验中,使用准确率作为性能评估指标,实验结果如图 4所示。

Download:
图 4 不同$ \mathit{\boldsymbol{{n}}} $值对应的模型分类准确率 Fig. 4 Model classification accuracy corresponding to different n values

每条流包含的字节数和SRU网络堆叠层数对模型分类性能有重要影响,从图 4可以看出,随着每条流中包含字节数$ n $的增加,模型的准确率不断提高,直至$ n=500 $左右模型收敛,准确率达到最高后几乎不再变化,因此,本文将每条流中包含的字节数$ n $确定为500。此外,可以看到,当$ M=1 $(即模型中Bi-SRU网络只有一层)时,模型分类准确率较低,最终只能达到0.92左右;当$ M\ge 2 $(即模型中Bi-SRU网络大于等于两层)时,准确率较$ M=1 $时有明显提升。但是,值得注意的是,当$ M\ge 2 $时,更多的堆叠层数并不会带来模型性能的更大提升,这表明两层Bi-SRU网络能够提取充分的加密流量特征,因此,本文最终将SRU网络堆叠层数$ M $确定为2。

2)学习率$ {l}_{\mathrm{r}} $

依照上一节的实验结果,本文将每条流的字节数$ n $设置为500,SRU网络堆叠层数$ M $设置为2。另外,设置epoch=100,$ {l}_{\mathrm{r}} $取值范围设置为[0.000 1,0.001,0.01],然后基于数据集A中的6类常规加密流量再次进行实验,以观察模型准确率随训练轮次epoch和学习率$ {l}_{\mathrm{r}} $的变化情况,从而确定学习率的最佳取值。图 5所示为不同学习率下模型的准确率变化情况。从图 5可以看出,当学习率为0.000 1时,模型收敛速度最慢,在训练100个epoch后模型的准确率仍然没有达到稳定,这是因为学习率是根据损失函数调整网络权重程度的超参数,当学习率较低时,损失函数的调整幅度较小,能够确保模型不会错过局部最小值,但也意味着模型需要花费很长时间才能达到收敛,当学习率设置为0.01时,学习率曲线出现较大幅度的震荡,这说明该学习率过大,导致在训练过程中梯度在最小值附近的一个区域内摆动,模型难以收敛。在图 5中,$ {l}_{\mathrm{r}}=0.001 $时模型收敛最快,且准确率曲线震荡幅度很小,收敛后准确率最高,因此,本文将学习率设置为0.001。

Download:
图 5 不同学习率下模型的准确率 Fig. 5 Model accuracy with different learning rates
4.4.2 不同模型的加密流量分类性能对比与分析

为了验证MLBSRU-A模型的分类性能,本文基于数据集A设置4种实验场景,如表 4所示。场景1为协议封装流量与常规加密流量识别,这是一个二分类问题;场景2是协议封装流量分类,包含6类以VPN协议封装的加密流量;场景3是常规加密流量分类,也是一个六分类问题;场景4是加密流量分类,包含场景2和场景3中所涉及的12种加密流量,是一个十二分类问题。

下载CSV 表 4 基于数据集A的实验场景设置 Table 4 Experimental scenes setting based on dataset A

基于上述场景将MLBSRU-A模型与4.2节所述的4种模型进行对比,在实验过程中,将MLBSRU-A模型的超参数分别设置为:每条流中包含的字节数$ n=500 $;SRU网络堆叠层数$ M=2 $;学习率$ {l}_{\mathrm{r}}=0.001 $;训练轮次epoch=50。

图 6所示为上述4种实验场景下各模型的准确率、精确率、召回率和F1分数。从图 6可以看出,在场景1中,所有模型均可以有效解决二分类问题,且各模型在VPN数据集上的效果都优于nonVPN数据集,造成该现象的一个合理解释是,不同应用类型的流量在协议封装后产生了不同的分布,如文献[6]中所述,这些类型间的分布差异为深度学习模型提供了更多可以学习和提取的有效特征,从而更准确地对加密流量进行分类。在所有场景中,1D-CNN模型的性能最差,这是因为其结构过于简单,无法提取足够的特征来进行分类,文献[6]首次将深度学习用于加密流量分类领域,为该领域的后续研究工作提供了新的思路。

Download:
图 6 在4种实验场景下各模型的分类性能 Fig. 6 Classification performance of each model under four experimental scenes

在场景2~场景4中,本文MLBSRU-A模型在所有指标上都明显优于对比模型。在场景3中,MLBSRU-A模型的准确率、精确率、召回率和F1分数分别达到99.33%、99.80%、99.75%和98.77%。值得注意的是,在更为复杂的十二分类场景中,MLBSRU-A模型的准确率依旧能达到99.08%,相比于BLSTMA模型、BGRUA模型、1D-CNN模型及CNN+LSTM模型分别提高了8.47%、4.34%、13.73%和10.17%。此外,在该场景中,本文模型的精确率、召回率和F1分数分别为98.8%、98.4%、98.6%,相比于其他对比模型有明显提升,这可能是因为相较于传统的RNN网络,MLBSRU-A模型通过门控机制及SRU模块中使用的跳跃连接有效地缓解了梯度消失问题,同时通过多层SRU网络堆叠有效且全面地提取加密流量的高阶特征,然后利用注意力机制为重要的特征赋予更大的权重,从而提高了模型的整体分类性能。

为了更直观地体现各场景下MLBSRU-A模型对流量分类的准确率,图 7展示出4个实验场景下模型的混淆矩阵。从混淆矩阵热力图可以看出,MLBSRU-A模型可以实现精准无误的二分类,在场景3中针对VPN数据集的六分类准确率略高于场景2中针对nonVPN数据集的六分类准确率,这是因为在nonVPN数据集中,模型在Email和Chat流量之间发生了混淆,即有4%的Chat流量被错误地识别为Email,而在VPN数据集中流量之间的混淆程度很低,这也可以解释各模型在VPN数据集上的分类效果都优于nonVPN数据集这一现象。总体而言,无论是简单还是复杂的场景,本文MLBSRU-A模型的性能均优于其他模型,其在实现最佳分类效果的同时也具有一定的鲁棒性。

Download:
图 7 不同场景下MLBSRU-A模型的混淆矩阵 Fig. 7 Confusion matrix of MLBSRU-A model under different scenes
4.4.3 不同模型的效率对比与分析

本文从训练时间和测试时间2个方面来评估模型的时间开销。训练时间即模型基于训练集进行训练的时间,其与迭代次数、模型规模以及实验硬件环境有关。测试时间是指用测试集对训练好的模型进行测试的时长,其与测试集大小、模型规模以及实验硬件环境有关。表 5所示为各模型在场景4中完成50个epoch所需的训练时间、基于同一测试集的测试时间以及模型达到收敛状态所用的时长。从表 5可以看出,本文MLBSRU-A模型基于数据集A完成50个epoch所需的训练时间为492.29 s,是BLSTMA模型的65.64%、BGRUA模型的71.62%、CNN+LSTM模型的18.83%,与结构最简单的1D-CNN模型所用时间几乎相同,但其准确率比1D-CNN模型提升13.73%。从模型的收敛时长来看,MLBSRU-A模型收敛速度最快,所用时长仅为BLSTMA模型的38.69%、BGRUA模型的44.62%、1D-CNN模型的67.24%、CNN+LSTM模型的9.28%。相较BLSTMA、BGRUA等模型,MLBSRU-A模型具有较快的收敛和测试速度,原因是其采用的SRU模块将矩阵乘积替换为Hadamard乘积,能够实现维度上的并行化计算。此外,SRU模块中采用类似于残差链接的跳跃链接,能够有效缓解梯度消失问题,同时相较CNN模型其可训练参数较少,因此,MLBSRU-A模型在保证分类准确率的同时具有更高的运行效率。

下载CSV 表 5 不同模型的运行效率对比Table 5Operation efficiency comparison of different models  
4.4.4 MLBSRU-A的加密恶意流量检测性能分析

为了验证MLBSRU-A模型在加密恶意流量检测与分类任务中的有效性,本文基于数据集B进行实验。如4.1节所述,数据集B中包含10类正常流量和10类恶意流量,本文基于该数据集设置与4.4.2节类似的实验场景,详情如表 6所示:场景1为已知的加密恶意流量检测,即测试集和训练集中的恶意流量均包含全部的10类加密恶意流量,是一个二分类问题;场景2与场景1的区别在于其测试集中的部分恶意流量没有经过训练,对模型来说是未知的,即训练集中只有5类加密恶意流量,而测试集中包含所有类别,这一场景旨在测试模型对未知加密恶意流量的敏感性,详细设置如表 7所示;场景3为10类正常流量分类;场景4为10类恶意流量分类;场景5是对全部流量进行二十分类。

下载CSV 表 6 基于数据集B的实验场景设置 Table 6 Experimental scenes setting based on dataset B
下载CSV 表 7 实验场景2中数据集的具体设置 Table 7 Specific setting of the dataset in experiment scene 2

表 8所示为MLBSRU-A模型在各实验场景下的准确率、精确率、召回率和F1分数。从中可以看出,MLBSRU-A模型在5个不同的实验场景下均达到了较高的分类性能,尤其是在已知加密恶意流量检测场景下,各指标均达到了100%。值得注意的是,在场景2中,MLBSRU-A模型展现出了对未知加密恶意流量的高度敏感性,能够准确识别训练集中没有出现过的加密恶意流量,准确率达到99.50%。此外,在最复杂的二十分类场景(即场景5)中,MLBSRU-A模型依旧表现突出,平均准确率达到99.38%,精确率、召回率和F1分数分别达到99.43%、99.24%及99.33%。因此,本文MLBSRU-A模型不仅可以实现高效的加密流量应用类型分类,而且具有对未知加密恶意流量的高精度检测能力以及对加密恶意流量的细粒度分类能力。

下载CSV 表 8 MLBSRU-A模型的加密恶意流量检测结果 Table 8 Encrypted malicious traffic detection results of MLBSRU-A model  
5 结束语

本文提出一种基于MLBSRU-A模型的加密流量分类方法,利用具有高度并行化序列建模能力的SRU网络对加密流量进行高效特征提取,通过注意力机制进一步提高模型的分类精度。实验结果表明,MLBSRU-A模型的准确率、精确率、召回率和F1分数相比BLSTMA、BGRUA等模型均有明显提升,其在保证分类准确率的同时具有更高的运行效率,并且能够适用于不同复杂度的场景,具有一定的鲁棒性。此外,本文方法不仅可以实现高效的加密流量应用类型分类,而且具有对未知加密恶意流量的高精度检测能力以及对加密恶意流量的细粒度分类能力。但是,目前该方法只在实验室环境下进行了测试,下一步将在实际网络环境中对本文方法进行部署,以验证其对真实流量的检测和分类性能。

参考文献
[1]
SALMAN O, ELHAJJ I H, KAYSSI A, et al. A review on machine learning-based approaches for Internet traffic classification[J]. Annals of Telecommunications, 2020, 75(11/12): 673-710.
[2]
BARAC white paper[EB/OL]. [2021-11-05]. http://barac.io/white_paper_encrypted_traffic/.
[3]
NING J T, POH G S, LOH J C, et al. PrivDPI: privacy-preserving encrypted traffic inspection with reusable obfuscated rules[C]//Proceedings of 2019 ACM SIGSAC Conference on Computer and Communications Security. New York, USA: ACM Press, 2019: 1657-1670.
[4]
ABBASI M, SHAHRAKI A, TAHERKORDI A. Deep learning for Network Traffic Monitoring and Analysis (NTMA): a survey[J]. Computer Communications, 2021, 170: 19-41. DOI:10.1016/j.comcom.2021.01.021
[5]
REZAEI S, LIU X. Deep learning for encrypted traffic classification: an overview[J]. IEEE Communications Magazine, 2019, 57(5): 76-81. DOI:10.1109/MCOM.2019.1800819
[6]
WANG W, ZHU M, WANG J L, et al. End-to-end encrypted traffic classification with one-dimensional convolution neural networks[C]//Proceedings of 2017 IEEE International Conference on Intelligence and Security Informatics. Washington D. C., USA: IEEE Press, 2017: 43-48.
[7]
LEI T, ZHANG Y, WANG S I, et al. Simple recurrent units for highly parallelizable recurrence[EB/OL]. [2021-11-05]. https://arxiv.org/abs/1709.02755.
[8]
DE LUCIA M J, COTTON C. Detection of encrypted malicious network traffic using machine learning[C]//Proceedings of 2019 IEEE Military Communications Conference. Washington D. C., USA: IEEE Press, 2019: 1-6.
[9]
BHATIA M, SHARMA V, SINGH P, et al. Multi-level P2P traffic classification using heuristic and statistical-based techniques: a hybrid approach[J]. Symmetry, 2020, 12(12): 2117. DOI:10.3390/sym12122117
[10]
MA C C, DU X H, CAO L F. Improved KNN algorithm for fine-grained classification of encrypted network flow[J]. Electronics, 2020, 9(2): 324. DOI:10.3390/electronics9020324
[11]
LOTFOLLAHI M, JAFARI SIAVOSHANI M, SHIRALI HOSSEIN ZADE R, et al. Deep packet: a novel approach for encrypted traffic classification using deep learning[J]. Soft Computing, 2020, 24(3): 1999-2012. DOI:10.1007/s00500-019-04030-2
[12]
SHAPIRA T, SHAVITT Y. FlowPic: a generic representation for encrypted traffic classification and applications identification[J]. IEEE Transactions on Network and Service Management, 2021, 18(2): 1218-1232. DOI:10.1109/TNSM.2021.3071441
[13]
程华, 谢金鑫, 陈立皇. 基于CNN的加密C&C通信流量识别方法[J]. 计算机工程, 2019, 45(8): 31-34, 41.
CHENG H, XIE J X, CHEN L H. CNN-based encrypted C & C communication traffic identification method[J]. Computer Engineering, 2019, 45(8): 31-34, 41. (in Chinese)
[14]
MANDIC D P, CHAMBERS J A. Recurrent neural networks for prediction[M]. Chichester, UK: John Wiley & Sons Ltd, 2001.
[15]
ZOU Z, GE J G, ZHENG H B, et al. Encrypted traffic classification with a convolutional long short-term memory neural network[C]//Proceedings of 2018 IEEE International Conference on High Performance Computing and Commu-nications. Washington D. C., USA: IEEE Press, 2018: 329-334.
[16]
LOPEZ-MARTIN M, CARRO B, SANCHEZ-ESGUEVILLAS A, et al. Network traffic classifier with convolutional and recurrent neural networks for Internet of Things[J]. IEEE Access, 2017, 5: 18042-18050. DOI:10.1109/ACCESS.2017.2747560
[17]
LIN K D, XU X L, GAO H H. TSCRNN: a novel classification scheme of encrypted traffic based on flow spatiotemporal features for efficient management of IIoT[J]. Computer Networks, 2021, 190: 107974. DOI:10.1016/j.comnet.2021.107974
[18]
HU X Y, GU C X, WEI F S. CLD-net: a network combining CNN and LSTM for Internet encrypted traffic classification[J]. Security and Communication Networks, 2021, 15: 1-15.
[19]
CHO K, VAN MERRIENBOER B, GULCEHRE C, et al. Learning phrase representations using RNN encoder-decoder for statistical machine translation[C]//Proceedings of 2014 Conference on Empirical Methods in Natural Language Processing. Washington D. C., USA: IEEE Press, 2014: 123-126.
[20]
LIU C, HE L T, XIONG G, et al. FS-net: a flow sequence network for encrypted traffic classification[C]//Proceedings of IEEE Conference on Computer Communications. Washington D. C., USA: IEEE Press, 2019: 1171-1179.
[21]
LIU X, YOU J L, WU Y L, et al. Attention-based bidirectional GRU networks for efficient HTTPS traffic classification[J]. Information Sciences, 2020, 541: 297-315. DOI:10.1016/j.ins.2020.05.035
[22]
DONG C, ZHANG C, LU Z G, et al. CETAnalytics: comprehensive effective traffic information analytics for encrypted traffic classification[J]. Computer Networks, 2020, 176: 107258. DOI:10.1016/j.comnet.2020.107258
[23]
蒋彤彤, 尹魏昕, 蔡冰, 等. 基于层次时空特征与多头注意力的恶意加密流量识别[J]. 计算机工程, 2021, 47(7): 101-108.
JIANG T T, YIN W X, CAI B, et al. Encrypted malicious traffic identification based on hierarchical spatiotemporal feature and multi-head attention[J]. Computer Engineering, 2021, 47(7): 101-108. (in Chinese)
[24]
HOCHREITER S, SCHMIDHUBER J. Long short-term memory[J]. Neural Computation, 1997, 9(8): 1735-1780. DOI:10.1162/neco.1997.9.8.1735
[25]
SHANG W, SOHN K, ALMEIDA D, et al. Understanding and improving convolutional neural networks via concatenated rectified linear units[EB/OL]. [2021-11-05]. http://proceedings.mlr.press/v48/shang16.pdf.
[26]
BAHDANAU D, CHO K, BENGIO Y. Neural machine translation by jointly learning to align and translate[EB/OL]. [2021-11-05]. https://arxiv.org/pdf/1409.0473v7.pdf.
[27]
ISCX UNB. VPN-nonVPN dataset[EB/OL]. [2021-11-05]. http://www.unb.ca/cic/research/datasets/vpn.html.
[28]
WANG W, ZHU M, ZENG X W, et al. Malware traffic classification using convolutional neural network for representation learning[C]//Proceedings of 2017 International Conference on Information Networking. Washington D. C., USA: IEEE Press, 2017: 15-22.
[29]
YAO H P, LIU C, ZHANG P Y, et al. Identification of encrypted traffic through attention mechanism based long short term memory[J]. IEEE Transactions on Big Data, 2022, 8(1): 241-252. DOI:10.1109/TBDATA.2019.2940675