基于卷积神经网络的应用层协议识别方法

2019-01-06 07:27冯文博洪征吴礼发李毅豪林培鸿
计算机应用 2019年12期
关键词:卷积神经网络

冯文博 洪征 吴礼发 李毅豪 林培鸿

摘 要:针对传统网络协议识别方法中人工提取特征困难以及识别准确率低等问题,提出了一种基于卷积神经网络(CNN)的应用层协议识别方法。首先,基于完整的传输控制协议(TCP)连接或用户数据报协议(UDP)交互划分原始网络数据,从中提取出网络流;其次,通过数据预处理将网络流转化为二维矩阵,便于CNN的分析处理;然后,利用训练样本集合训练CNN模型,自动化提取出网络协议特征;最终,基于训练成熟的CNN模型进行应用层网络协议的识别。实验结果表明,所提方法的总体协议识别准确率约为99.70%,能有效实现应用层协议的识别。

关键词:应用层协议;网络流;协议识别;特征工程;卷积神经网络

中图分类号: TP393.0(一般性问题) 文献标志码:A

Application protocol recognition method based on convolutional neural network

FENG Wenbo1, HONG Zheng1*, WU Lifa2, LI Yihao1, LIN Peihong1

(1. College of Command and Control Engineering, Army Engineering University of PLA, Nanjing Jiangsu 210007, China;

2. College of Computer Science and Technology, Nanjing University of Posts and Telecommunications, Nanjing Jiangsu 210023, China)

Abstract: To solve the problems in traditional network protocol recognition methods, such as difficulty of manual feature extraction and low recognition accuracy, an application protocol recognition method based on Convolutional Neural Network (CNN) was proposed. Firstly, the raw network data was divided according to Transmission Control Protocol (TCP) connection or User Datagram Protocol (UDP) interaction, and the network flow was extracted. Secondly, the network flow was converted into a two-dimensional matrix through data prepocessing to facilitate the CNN analysis. Then, a CNN model was trained using the training set to extract protocol features automatically. Finally, the trained CNN model was used to recognize the application network protocols. The experimental results show that, the overall recognition accuracy of the proposed method is about 99.70%, which can effectively recognize the application protocols.

Key words: application protocol; network flow; protocol recognition; feature engineering; Convolutional Neural Network (CNN)

0 引言

应用层协议识别是指通过人工分析或自动化手段从IP协议承载的网络流量中提取出能够标识网络应用层协议的关键特征,然后以这些特征为基础准确标识网络流量所隶属的应用层协议[1-3]。应用层协议识别技术有助于对网络流量的组成进行分析,能够为网络管理与维护、网络内容审计、网络安全防御等多个研究领域提供数据支撑。

根据对人力的依赖程度,应用层协议识别可以分为人工分析和自动分析两类。人工分析方法依靠研究人员的领域经验或先验知识获取协议特征信息,进而对网络流量进行协议识别。而自动分析方法则基于模式识别、机器学习等理论从网络流量中自动化提取协议特征,并以此特征作为协议识别的根据,减少了人工开销。本文工作针对自动分析方法进行研究。

网络协议自动识别方法主要包括基于预设规则的协议识别方法、基于载荷特征的协议识别方法、基于主机行为的协议识别方法以及基于机器学习的协议识别方法四种。

基于预设规则的协议识别方法中最典型的方法是利用端口进行协议识别。但是随着网络应用的快速发展,很多应用都向用户提供了自定义端口的功能,用户可以根据自己的喜好设置网络应用所使用的端口,这使得基于传统的互联网数字分配机构(Internet Assigned Numbers Authority, IANA)的端口分配規则[4]越来越难准确识别协议类型。

基于载荷特征的协议识别方法主要是使用深度包检测和正则表达式技术,通过匹配数据包载荷中预定义的固定特征串,来进行协议识别。这种识别方法简单、准确度较高,但不能识别加密协议,而且特征串的数量较多时,计算开销将显著增长,识别效果可能降低。

基于主机行为的协议识别方法主要利用了网络流量的统计特性,如数据流持续时间、字节数、传输间隔时间等在网络数据传输过程可直接测量的统计参数。此类方法有效避免前两种方法的特征提取操作,但因统计信息采集繁琐,且受网络环境影响,统计结果可能不稳定,协议识别的准确度偏低。

机器学习是人工智能领域的一项重要技术,机器学习利用计算机对大规模数据进行挖掘,分析数据特征之间的规律[5]。基于机器学习的协议识别方法可以分为浅层学习和深度学习两类[6]。浅层学习算法本质上属于浅层结构算法,主要包括支持向量机(Support Vector Machine, SVM)、朴素贝叶斯、决策树、K-means等机器学习算法。这些算法难以表示复杂的非线性函数关系,处理复杂问题的泛化能力有限[7]。深度学习算法主要包括卷积神经网络、长短期记忆网络等,采用多层神经网络进行特征学习,其中浅层神经元负责提取简单的低层特征,深层神经元负责将低层特征组合成更加抽象、复杂的高层特征。深度学习主要应用在自然语言处理、图像分类与识别、语音识别等领域,且取得了很好的效果[8]。深度学习可以很好解决浅层学习在复杂非线性函数关系的表示问题。Cybenko[9]使用严格数学思维证明了单层神经网络具备表示任意复杂度函数的能力。

针对现有网络协议识别方法存在人工提取特征困难的问题,结合深度学习在分类方面的优势,本文提出了一种基于卷积神经网络的网络协议识别方法。该方法能够从训练数据中进行隐式学习,自动提取网络流量的协议特征,有效克服人工特征选择的不足,进而提高协议识别的准确率。鉴于协议数据的复杂性,本文通过优化网络层数、卷积核大小以及特征图数量等参数,促使模型在具有较高识别准确率的同时,能够快速准确地收敛至全局最优解。

1 相关工作

卷积神经网络是目前深度学习领域最为重要的分类模型,在很多领域的应用超过了传统模式识别与机器学习算法能够达到的精度与性能[10]。近年来,研究人员相继提出了许多关于卷积神经网络的协议识别方法。文献[11]较早使用深度学习和神经网络解决网络协议识别问题,通过人工神经网络对传输控制协议(Transmission Control Protocol, TCP)会话的前1024B数据进行学习分类。该方法首先将数据转化为一维向量,然后将向量输入人工神经网络模型进行训练。实验测试得到的已知协议识别平均准确率达到97.9%。文献[12]研究了采用不同优化器训练的卷积神经网络对网络协议识别的性能影响,实验结果表明,基于梯度下降法的优化器性能最佳,但整体识别准确率只有77.81%,且文献[11-12]只考虑了基于TCP的应用层协议。文献[13]首次将卷积神经网络应用到恶意流量分类领域,比较了使用所有协议层次数据以及仅使用应用层协议数据的效果,将数据的前784B转换为28×28的二维图像后输入卷积神经网络进行分类,分类结果表明使用所有协议层次数据作为研究对象达到的分类效果最佳。Ma等[14]针对已知和未知流量的识别问题,提出基于卷积神经网络的未知流量识别方法。实验选取13种协议组建数据集,其中10种协议作为已知协议,其余3种协议作为未知协议流量的模拟数据,通过与传统机器学习算法支持向量机、朴素贝叶斯分类模型进行实验对比,测试结果表明,卷积神经网络模型的识别效果都优于传统机器学习方法,但其方法不能对未知协议流量中包含的各种协议进行准确识别。陈雪娇等[15]利用卷积神经网络的识别准确率高和自主进行特征选择的优势,将其应用于加密流量的识别,测试结果表明该方法优于深度包检测(Deep Packet Inspection, DPI)方法。叶松[16]提出了一种能够应用于高级持续性威胁(Advanced Persistent Threat, APT)攻击防御系统的协议识别技术,通过对网络流特征的深度学习,建立起应用层协议的特征库,有助于APT攻击防御的准确判断。Ren等[17]提出了一种针对无线通信网络的协议识别方法,首先利用一维卷积神经网络进行自动化的特征提取,然后基于支持向量机(SVM)对应用层协议进行分类。

从现有研究可以看出,深度学习在协议识别领域的应用尚处于起步阶段,不同方法的数据集构造方式不同,且多使用一般结构的卷积神经网络,未充分考虑网络结构与参数对协议识别过程的影响。而在深度学习领域,模型结构与参数对于分类效果有重要影响,随着卷积神经网络层数的不断增加,模型也越来越难训练,各种优化网络的方法不断出现,如采用新的激活函数修正线性单元(Rectified Linear Unit, ReLU)以及解决神经网络过拟合问题的Dropout机制。

2 网络协议识别

网络协议识别首先需要将连续的网络流量按照一定粒度进行划分,常见的粒度包括Bit-level、Packet-level、Flow-level、Stream-level四类[18]。Bit-level关注网络流量的内容特征;Packet-level关注数据包(Packet)的内容或统计特征;Flow-level关注网络流(Flow)的内容或统计特征,所涉及的网络流可以是一个完整的TCP连接或者一次用户数据报协议(User Datagram Protocol, UDP)交互[19];Stream-level关注通信主机交互产生的流量。本文选择Flow的内容特征作为分析对象,这也是目前协议识别领域采用较多的分析对象。

同一种协议的网络流之间存在一定的相似性,可以利用这种相似性区分不同协议产生的网络流量[20]。利用网络流的内容信息或统计信息,建立一种函数映射关系:f:X→C,其中:X表示待分类的网络流集合,C表示协议类型集合,将网络流映射为具体的协议类型。基于机器学习的协议识别分为训练和测试两个阶段[21]。在訓练阶段,首先对网络流进行预处理;然后通过特征工程方法进行特征提取;最后通过机器学习算法构造分类器,并对分类器进行训练。在测试阶段,将经过预处理和特征提取后的网络流输入训练好的分类器,对网络流进行协议类型预测。网络流的所有字段以及传输过程中的所有特性都可以作为特征用于协议识别,然而如何选出最有效的特征是协议识别领域的突出问题。

2)卷积神经网络要求输入数据大小是固定的,因此只能选取固定长度、并且能够反映流量特征的网络流,选取784B是流的前半部分数据更能反映流量特征,后半部分数据更多的是协议的数据部分,这种处理与目前一些流量分析方法的特征选取思路[24]相同。

从必要性的角度看:同一种协议的网络流存在一定相似性,这种相似性具体表现为网络流的某些特定位置上出现一些固定取值或频繁出现的字段,如版本号字段、服务类型字段、标识符等信息,这种现象的产生主要是因为流量特征受到协议字段的语法约束或网络环境限制。

3.3 分类模型构建

为了将卷积神经网络应用于应用层协议识别,首先需要针对流量识别的需求设计卷积神经网络的结构,此后,利用训练数据集对二维卷积神经网络进行训练,使卷积神经网络具有识别网络流量所对应的应用层协议的能力。

3.3.1 卷积神经网络基本结构

卷积神经网络的工作流程如图2所示。首先,对于输入训练样本,经过若干交替的卷积层和池化层处理,自动提取训练样本的特征;然后,将提取出的特征交给一个或多个包含不同神经元数量的全连接层进行处理,逐层处理缩减向量的维数;进而,将缩减向量传递至输出层,得到练样本标签预测值,计算预测值与真实值之间的差异,将差异情况输入损失函数转化为损失值;最后,利用损失值作为反馈信息对权重值进行调整,促使优化器朝着损失值减小的方向调节。

卷积神经网络需要逐层搭建,基本结构包括输入层、卷积层、池化层、全连接层和输出层。输入层和输出层相对简单,输入层用于数据输入,所包含的神经元个数等于特征向量的维数。输出层是输出识别结果,其包含神经元的个数等于要分类的类别总数。下面重点对卷积层、池化层和全连接层进行介绍。

1)卷积层使用卷积核矩阵按照自上而下、自左而右的顺序扫描训练,同时将卷积核矩阵的每个元素与扫描所覆盖区域的每个元素相乘求和得到输出值,这种处理过程被称为卷积运算,因此每一个卷积核对应一种特征提取器。

2)池化层将训练样本划分成互不相交的分块,并选择一个单值作为分块输出,通常选择分块中的最大值或均值。池化有助于缩减数据大小,提取出训练样本的显著特征,降低噪声对于数据处理的干扰。

3)全连接层的作用是整合具有类别区分能力的局部特征。全连接层的每个神经元与上一层、下一层的所有神经元都保持连接。由于神经元之间是全连接关系,因此被称为全连接层。

卷积神经网络是一种自动提取特征的深度学习模型,建立起一个从原始数据输入到结果输出的函数映射。卷积神经网络学习获得的高层特征比基于专家经验的人工特征能够更好完成分类任务。

3.3.2 卷积神经网络结构设计

针对网络协议识别的实际需求,本文在设计卷积神经网络结构时考虑了如下因素:1)根据数据集的特征,设计输入层的数据格式为28×28的矩阵。鉴于网络协议数据的复杂性,为了提高协议识别的准确率,设计了包含多个卷积层、池化层、全连接层的卷积神经网络。2)针对网络层数增加引发梯度消失、过拟合、退化等问题,采用了ReLU函数、Dropout机制、3×3或5×5卷积核。3)为了保证模型训练的效率,加快算法的收敛速度,减少振荡,采用了指数衰减的学习率。

所提出的卷积神经网络结构包括Input层、C1层、S2层、C3层、S4层、FC5层、FC6层、FC7层和Output层,其中C1层、C3层为卷积层,S2、S4為池化层,FC5层、FC6层、FC7层为全连接层,具体网络结构如图3所示。

为了多角度提取局部特征,C1层选用16个卷积核,C3层选用32个卷积核。由于参数误差可能导致均值偏移,为了能够尽可能地保留局部特征的纹理信息,S2层、S4层选用最大值采样。

首先是两个交替的卷积层和池化层。C1层是第一个卷积层,首先对Input层进行填充处理,使得卷积后映射的图像与Input层的图像大小相等;然后选取16个3×3卷积核,并与偏置项相加;最后使用ReLU激活函数激活,得到16张28×28特征图像。S2层是第一个池化层,对C1层输出图像进行最大值池化,池化窗口设置为2×2,得到16张14×14特征图像。C3层是第二个卷积层,使用32个5×5 卷积核,其处理方式与C1层相同,得到32个14×14特征图像。S4层是第二个池化层,得到32张7×7特征图像。

然后是两个全连接层:FC5、FC6。FC5层有1568个神经元,与S4层进行全连接,加上偏置项,使用ReLU函数激活。与FC5层进行全连接的FC6层有128个神经元,加上偏置项,然后使用ReLU函数激活,采用Dropout策略,丢弃50%的特征。

最后一层是Output层,实际是一个SoftMax分类器,输出的是样本的概率分布。SoftMax分类器能够将包含任意实数的K维向量转化成另一个K维向量,使得新的K维向量的每个元素的取值在 0~1范围,且所有元素的总和为1。这种转化函数可以凸显占比最大的项目,抑制远小于最大项的其他分量。Output层有k个神经元,k由应用层协议分类的数量决定。根据不同的协议识别问题,可以微调模型。

3.3.3 卷积神经网络训练过程

卷积神经网络的训练包括正向传播和反向传播两部分。在训练时,首先是对一批训练样本进行正向传播,计算网络每一层的输出值,最终通过损失函数计算出卷积神经网络对于样本标签的预测值与真实标签值之间的误差。卷积神经网络训练的实质就是求解损失函数的极小值,使误差最低,这意味着卷积神经网络的分类结果越精确,这种最优化问题可以用梯度下降法进行求解。梯度下降法的原理是沿着梯度向量的反方向进行迭代以期能够达到损失函数的极值点。梯度下降法在反向传播的过程中实施。但是,为了实施梯度下降法,需要在正向传播的阶段收集一些数据。其中,最主要的是在正向传播时,计算每个样本的损失函数在每一层的权值参数以及偏置参数的梯度值,进而通过计算一批训练样本的梯度的均值,得到整体梯度值。

为了测量模型预测类型与实际类型之间的偏差,本文定义交叉熵为损失函数,利用L2正则化对权重的平方和进行量化调整,如式(1)所示:

L(W)=-12m∑mi=1yTln y*+λ2‖W‖2(1)

其中:等式右侧第一项为交叉熵项,第二项为正则化项;W是神经网络需要学习得到的参数;y是样本真实标签值,即只有一个分量为1、其余为0的向量;y*是分类模型预测的概率分布值;m是训练样本数量;λ是正则化系数,本文取值0.01。

反向传播过程将对卷积神经网络中的参数进行更新,其起点是输出层,终点是输入层。通过不断迭代,促使参数更新朝着卷积神经网络收敛的方向进行,最终获得使损失函数达到极小值。为了求解极小值,本文使用了Mini-Batch随机梯度下降法,该方法将数据集分成若干批,采用部分样本代替全部样本,按批计算损失函数,能够保证参数更新朝着模型收敛的方向进行。各层权值和偏置参数的调整方向如式(2)和式(3)所示:

W(l)←W(l)-α(ΔW(l)/m+λW(l))(2)

b(l)←b(l)-α·Δb(l)/m (3)

其中,α是学习率,初始学习率为0.01,衰减系数1E-6。

4 实验与结果分析

4.1 实验数据

目前协议识别领域的网络流量收集有两种途径:一种是在受控环境中部署目标应用,然后模拟应用状态,从而获得目标协议产生的网络流量;另一种采用包捕获的方式,根据经验自动或采用人工的方法收集网络流量,如对于端口固定的协议,可以采用端口监听的方式进行收集。但数据收集可能含有非目标协议的网络数据包,就需要领域专家的参与,选择适合的训练样本。本文采取第二种方法进行数据集的构建。为了确保数据的代表性,本文实验选用了MIT林肯实验室提供的DARPA[25]数据集。

本文选取了DARPA数据集中的4种协议进行测试,分别是超文本传输协议(Hyper Text Transfer Protocol, HTTP)、文件传输协议(File Transfer Protocol, FTP)、简单邮件传输协议 (Simple Mail Transfer Protocol, SMTP)、域名系统(Domain Name System, DNS)。这些协议中既有基于TCP的应用层协议,也有基于UDP的应用层协议,既有二进制协议,也有文本类协议。

本文实验随机选取数据集75%用于分类模型的训练,剩余数据集的25%用于分类模型的测试。选用四种应用层协议进行分类识别,所以N取4,设置对应的四种协议类型标签:[1,0,0,0]T,[0,1,0,0]T,[0,0,1,0]T,[0,0,0,1]T分别对应HTTP、FTP、SMTP、DNS协议。

4.2 实验设置与实验指标

实验使用Python语言进行编程,利用Keras[26]和Tensorflow[27]深度学习框架搭建分类模型。为了验证本文方法的有效性,进行了如下两组实验:1) 不同网络流长度对识别性能的影响;2) 与其他机器学习方法的识别性能对比。

实验结果的评价指标主要包括两个部分:1)协议识别的性能指标;2)分类模型的测试时间。协议识别的性能指标包括总体识别性能指标(准确率Accuracy)和单一类别识别性能指标(精确率Precision、召回率Recall、F值F1-Measure)。分类模型的测试时间是指使用分类模型检测样本类别的时间,测试时间与分类模型的復杂度有关,越复杂的分类模型,计算量越大,测试时间也会相应增加。

假设待检测数据集中包括目标协议A、其余协议Not-A。实验相关指标定义如下:

Accuracy=(TP+TN)/(TP+FN+FP+TN)

P=TP/(TP+FP)

R=TP/(TP+FN)

F1-Measure=2PR/(P+R)

其中;P表示精确率Precision,R表示召回率Recall;TP表示正确分类为协议A的实例数;TN表示正确分类为协议Not-A的实例数;FP表示错误分类为协议A的实例数;FN表示错误分类为协议Not-A的实例数。准确率Accuracy用于衡量数据集的整体识别效果,准确率的值越高,总体识别效果越好;精确率Precision是指协议A的识别结果中被正确识别的比例;召回率Recall是指协议A的所有实例中被正确识别的比例;F值(F1-Measure)综合考虑了精确率和召回率,对这两个指标进行加权平均调和,F值越大,单一类别识别效果越好。实验采用Accuracy和F值进行数据分析,能够准确地评估方法对于网络协议的识别效果。

4.3 结果分析

为了确定网络流的合适长度,卷积神经网络的输入设定为32×32,若长度不足1024,则补0。在协议识别过程中,由于每个网络流包含的数据包个数未知,每个数据包大小又是未知的,造成网络流之间的长度差别很大。如何选取合适的网络流长度,需要通过实验确定。

选取不同网络流长度时,协议识别性能的对比如表1所示。

表格(有表名)表1 不同网络流长度时的识别性能

Tab. 1 Recognition performance with different network flow size

网络流长度/B准确率/%测试时间/s20098.836630098.875240098.885550098.884860098.875170098.926080098.935290096.4662100096.5263

从表1中可以看出,网络流长度在700 ~ 800B之间识别准确率最高,且长度大于800B时,识别准确率明显降低,产生过拟合。识别准确率出现这种变化主要是因为网络流的前部通常包含建立通信连接和少数包含协议字段的数据包,这些信息有助于识别网络协议。由于实验采取相同的神经网络结构,所以测试时间相近。因此,这里主要考虑识别准确率,选取准确率最高的范围,进而确定网络流长度。

经典的LeNet-5卷积神经网络的MNIST图像输入大小是28×28,也在700 ~ 800B,同样取得了很高的识别准确率,说明无论输入是网络流还是图像,卷积神经网络均具有迁移学习的能力,表明这种架构的卷积神经网络更能捕捉这个尺寸范围数据的关键信息,因此本文后续分析选择784B(28×28)作为分类模型的输入大小。

图4比较了不同机器学习方法识别不同协议的F值差异。NB(Naive Bayes)、SVC(Support Vector Classification)和KNN(K-Nearest Neighbors)是常用于协议识别的分类算法,文献[28]方法是近期提出的基于卷积神经网络的流量识别方法。

由于流量数据集、软硬件平台和具体实验环境的差异,导致不同方法的性能对比难以开展,因此对比实验均采取本文的数据预处理方法,且采用Python的机器学习库Sklearn搭建NB、SVC、KNN分类模型,其中:NB选择高斯贝叶斯分类模型,SVC选择线性支持向量机分类模型,KNN 选择5个权重相当的最近邻居构造分类模型。另外,文献[28]方法分类模型的搭建采用Keras和Tensorflow。

从图4中可以看出,五种分类方法中,KNN、文献[28]方法和本文方法识别不同协议时,F值均已超过98.00%,且本文方法识别DNS、HTTP协议时取得了最高F值100.00%,KNN识别FTP协议时取得了最高F值99.20%, 文献[28]方法识别SMTP协议时取得了最高F值99.53%。本文方法识别FTP协议、SMTP协议时F值分别取得了98.58%和99.29%。NB方法是基于特征向量各分量相互独立的假设,然而原始流量存在协议识别的无效信息,如变量字段,因此识别效果比其他方法差。SVC方法是寻找能够分离样本的超平面,对于类型较少的协议,如DNS、HTTP,识别效果较好;对于包含多种类型的协议,SVC识别效果比KNN、文献[28]方法和本文方法差。KNN是根据距离最近的K个实例进行投票统计,选择数量最多的类别作为预测的分类结果,KNN识别不同协议的F值超过了98%。文献[28]方法对FTP、SMTP协议的识别效果优于本文方法,而本文方法更擅长识别DNS、HTTP协议。本文方法属于有监督学习,模型训练的前提是网络流已知,根据人工判定的方式确定协议字段的差异情况,进而判定协议相似程度。显然,HTTP和DNS的协议格式有很大的不同,FTP和SMTP在协议格式上有一定的相似之处,比如FTP和SMTP都存在“220”,分类模型会认为“220”既属于FTP、又属于SMTP,这就导致了分类模型的误判。

表2比较了不同机器学习方法的识别准确率差异,本文方法的准确率是99.70%,优于对比方法。随着网络流量的规模日益增加,面对成千上万种协议,能够准确识别出更多网络流量的协议类别,有助于网络运营商对网络资源进行合理管理和配置。总的来说,本文方法以网络流作为输入,通过CNN提取协议特征,对多种协议进行测试,表现出良好的识别效果,与其他机器学习方法相比,在识别准确率上有所提升,验证了本文方法的有效性。

5 结语

利用网络流量的字节传输和灰度图字节存储相似性,将卷积神经网络图像识别技术应用于网络协议的识别问题上,本文提出了一种能够精确识别网络应用层协议的协议识别方法。实验结果表明,该方法在DARPA数据集上达到了99.7%的准确率,优于NB、SVC等一般機器学习方法,接近实际应用水平。该方法实现简单、效果显著,通过深层卷积神经网络构建分类模型,节省了特征工程的工作量,也降低了任务的复杂度,实现了流量特征的自动学习,达到了协议精确识别的目的。在后续的研究中,将从以下两个方面进行改进:一是区分格式相似的协议,提高相似协议的识别精度;二是结合无监督学习方法,提高在协议数量未知情况下的协议识别能力。

参考文献 (References)

[1]陈亮,龚俭,徐选.应用层协议识别算法综述[J].计算机科学,2007,34(7):73-75.(CHEN L, GONG J, XU X. A survey of application-level protocol identification algorithm [J]. Computer Science, 2007, 34(7): 73-75.)

[2]王一鹏,云晓春,张永铮,等.基于主动学习和SVM方法的网络协议识别技术[J].通信学报,2013(10):135-142.(WANG Y P, YUN X C, ZHANG Y Z, et al. Network protocol identification based on active learning and SVM algorithm [J]. Journal on Communications, 2013, 34(10): 135-142.)

[3]邹腾宽,汪钰颖,吴承荣.网络背景流量的分类与识别研究综述[J].计算机应用,2019,39(3):802-811.(ZOU T K, WANG Y Y, WU C R. Review of network background traffic classification and identification [J]. Journal of Computer Applications, 2019, 39(3): 802-811.)

[4]JOE T, ELIOT L, ALLISON M, et al. Service name and transport protocol port number registry [EB/OL]. [2019-09-23]. https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml.

[5]张蕾,崔勇,刘静,等.机器学习在网络空间安全研究中的应用[J].计算机学报,2018,41(9):1943-1975.(ZHANG L, CUI Y, LIU J, et al. Application of machine learning in cyberspace security research [J]. Chinese Journal of Computers, 2018, 41(9): 1943-1975.)

[6]余凯,贾磊,陈雨强,等.深度学习的昨天、今天和明天[J].计算机研究与发展,2013,50(9):1799-1804.(YU K, JIA L, CHEN Y Q, et al. Deep learning: yesterday, today, and tomorrow [J]. Journal of Computer Research and Development, 2013, 50(9): 1799-1804.)

[7]BENGIO Y. Learning deep architectures for AI [M]// Foundations and Trends in Machine Learning. Hanover, MA: Now Publishers Inc., 2009, 2(1): 1-127.

[8]LECUN Y, BENGIO Y, HINTON G. Deep learning [J]. Nature, 2015, 521(7553): 436-444.

[9]CYBENKO G. Approximation by superpositions of a sigmoidal function [J]. Mathematics of Control, Signals, and Systems, 1989, 2(4): 303-314.

[10]周飞燕,金林鹏,董军.卷积神经网络研究综述[J].计算机学报,2017,40(6):1229-1251.(ZHOU F Y, JIN L P, DONG J. Review of convolutional neural network [J]. Chinese Journal of Computers, 2017, 40(6): 1229-1251.)

[11]WANG Z. The applications of deep learning on traffic identification [EB/OL]. [2019-04-14]. https://www.blackhat.com/docs/us-15/materials/us-15-Wang-The-Applications-Of-Deep-Learning-On-Traffic-Identification-wp.pdf.

[12]JAIN A V. Network traffic identification with convolutional neural networks [C]// Proceedings of the IEEE 16th International Conference on Dependable, Autonomic and Secure Computing, 16th International Conference on Pervasive Intelligence and Computing, 4th International Conference on Big Data Intelligence and Computing and Cyber Science and Technology Congress. Piscataway: IEEE, 2018: 1001-1007.

[13]WANG W, ZHU M, ZENG X, et al. Malware traffic classification using convolutional neural network for representation learning [C]// Proceedings of the 2017 International Conference on Information Networking. Piscataway: IEEE, 2017: 712-717.

[14]MA R, QIN S. Identification of unknown protocol traffic based on deep learning [C]// Proceedings of the 3rd IEEE International Conference on Computer and Communications. Piscataway: IEEE, 2017: 1195-1198.

[15]陳雪娇,王攀,俞家辉.基于卷积神经网络的加密流量识别方法[J].南京邮电大学学报(自然科学版),2018,38(6):36-41.(CHEN X J, WANG P, YU J H. CNN based encrypted traffic identification method [J]. Journal of Nanjing University of Posts and Telecommunications (Natural Science Edition), 2018, 38(6): 36-41)

[16]叶松.基于现代网络的深度学习应用协议识别技术研究与实现[J].软件导刊,2018,17(10):194-199.(YE S. Research and implementation of deep learning application protocol recognition technology based on modern network [J]. Software Guide, 2018, 17(10): 194-199.)

[17]REN J, WANG Z. A novel deep learning method for application identification in wireless network [J]. China Communications, 2018, 15(10): 73-83.

[18]熊刚,孟姣,曹自刚,等.网络流量分类研究进展与展望[J].集成技术,2012,1(1):32-42.(XIONG G, MENG J, CAO Z G, et al. Research progress and prospects of network traffic classification [J]. Journal of Integration Technology, 2012, 1(1): 32-42.)

[19]BARAKAT C, THIRAN P, IANNACCONE G, et al. Modeling Internet backbone traffic at the flow level [J]. IEEE Transactions on Signal Processing, 2003, 51(8): 2111-2124.

[20]张凤荔,周洪川,张俊娇,等.基于改进凝聚层次聚类的协议分类算法[J].计算机工程与科学,2017,39(4):796-803.(ZHANG F L, ZHOU H C, ZHANG J J, et al. A protocol classification algorithm based on improved AGENS [J]. Computer Engineering and Science, 2017, 39(4): 796-803.)

[21]冯文博,洪征,吴礼发,等.网络协议识别技术综述[J].计算机应用,2019,39(12):3604-3614.(FENG W B, HONG Z, WU L F, et al. Review of network protocol recognition techniques [J]. Journal of Computer Applications, 2019, 39(12): 3604-3614.)

[22]李芳馨,刘嘉勇.网络数据流还原重组技术研究[J].通信技术,2011,44(7):113-114,117.(LI F X, LIU J Y. Study on reverting and restructuring of network data stream [J]. Communications Technology, 2011, 44(7): 113-114, 117.)

[23]HARRIS D, HARRIS S. Digital Design and Computer Architecture: 2nd Edition [M]. San Francisco, CA: Morgan Kaufmann, 2012: 129-133.

[24]CELIK Z B, WALLS R J, MCDANIEL P, et al. Malware traffic detection using tamper resistant features [C]// Proceedings of the 2015 IEEE Military Communications Conference. Piscataway: IEEE, 2015: 330-335.

[25]LIPPMANN R, CUNNINGHAM R K, FRIED D J, et al. Results of the DARPA 1998 offline intrusion detection evaluation [EB/OL]. [2019-04-14]. https://www.researchgate.net/publication/221427437_Results_of_the_DARPA_1998_Offline_Intrusion_Detection_Evaluation.

[26]CHOLLET F. Keras: deep learning for humans [EB/OL]. [2019-04-14]. https://github.com/fchollet/keras.

[27]ABADI M, AGARWAL A, BARHAM P, et al. TensorFlow: large-scale machine learning on heterogeneous distributed system [EB/OL]. [2019-04-14]. https://arxiv.org/pdf/1603.04467.pdf.

[28]王勇,周慧怡,俸皓,等.基于深度卷積神经网络的网络流量分类方法[J].通信学报,2018,39(1):14-23.(WANG Y, ZHOU H Y, FENG H, et al. Network traffic classification method basing on CNN [J]. Journal on Communications, 2018, 39(1): 14-23.)

This work is partially supported by the National Key Research and Development Program of China (2017YFB0802900), the Startup Foundation for Advanced Talents of Nanjing University of Posts and Telecommunications (NY219004).

猜你喜欢
卷积神经网络
基于深度神经网络的微表情识别
卷积神经网络中减少训练样本时间方法研究
卷积神经网络语言模型研究
基于卷积神经网络的车辆检索方法研究
基于卷积神经网络温室智能大棚监控系统的研究
基于深度卷积神经网络的物体识别算法
深度学习算法应用于岩石图像处理的可行性研究
基于深度卷积网络的人脸年龄分析算法与实现
深度学习技术下的中文微博情感的分析与研究
基于卷积神经网络的树叶识别的算法的研究