基于深度学习的网络流量分类技术研究

目的:网络流量分类一直是学术界、产业界和网络监管部门共同关注的热点之一,是指将混合流量分成不同的流量类别,依据是不同的网络应用或协议的特征或参数。一方面,网络安全领域需要识别入侵流量;另一方面,进行网络管理时需要对不同应用的流量分类分析,从而合理控制和分配资源,保证网络QoS。随着网络流量的数据量和种类的大量增加,传统分类方法难以满足要求,基于机器学习的算法成为网络流量分类的研宄热点。针对机器学习特征工程造成的瓶颈,本文研究了以卷积神经网络为主的深度学习算法在网络流量分类中的应用。
方法:1.三维卷积神经网络应用于网络流量分类。
2.针对卷积神经网络将未知类别强行划分为己知类造成的差错,
本文对网络的类别判断层进行了改进。通过仿真实验,本文验证了类别判断错误(包括未知类别)时,概率最大的类别对应概率值的分布明显区分于判断正确时概率值的分布。根据以上发现,本文为类别判断层设置了动态阈值,在训练发现的最优阈值下,本文能有效识别未知类别。
在这里插入图片描述
数据预处理模块分为数据流切割、关键数据提取、维度转换、时序组合四部分。
在这里插入图片描述
1.数据流切割:将原始流量分为离散数据流单元,每个数据流为一个样本。数据流的判断标准是具有相同五元组(源IP地址、源端口号、目的IP地址、目的端口号和传输层协议)的数据包。
2.关键数据提取:首先提取每个数据流的前《个数据包,丢弃超过部分的数据包,若数据流长度不足则在末尾补全0数据包。然后进行匿名化,即去掉IP层的IP地址和数据链路层的MAC地址。
3.维度转换:统一数据包的长度,即提取每个数据包中的前/字节的数据,丢弃超过部分的数据,若数据包长度不足则在末尾补0。然后对每字节的数据分别进行w比特的one-hot编码,每个数据包转换为/xm的二维数据。若将输入数据的每个字节视为像素值,则此步骤的输出为二维灰度图,可以通过图像处理的方法进行分析。
例如输入数据由三部分组成,可能取值分别
是{0,1,2}、{12,13,14}、{20,21,22},则每组输入数据对应的one-hot编码的结果为9位,分别代表第一部分是否为0、第一部分是否为1、第一部分是否为2、第二部分是否为12、第二部分是否为13、第二部分是否为14、第三部分是否为19、第三部分是否为20、第三部分是否为21。若输入x=(l,14,20),则输出=((0,1,0),(0,0,1),(1,0,0)),每字节数据的可能取值为0?255,共256种取值,可编码为256比特的输出数据。为了减少系统计算量以提高实时性和适应本文仿真环境,本文将输入数据归一化至0?16,构成16位编码。
4.时序组合:将?7个数据包对应的二维数据按顺序组合为ln的三维数据,此步骤类似于多帧图像组合为视频文件,输出数据可作为视频处理中的三维卷积神经网络的输入
对照组:1.一维预处理在完成数据流切割、关键数据提取的工作后,将各数据包中提取出的数据依次连接,构成长度为ln的一维时序数据。
2.切割式二维预处理若设定新增维度的长度为l,则将一维时序数据按每段长度为(l
n)/i切割为i段,按顺序依次构成二维数据的i行。
3.one-hot编码式二维预处理将一维时序数据进行one-hot编码,构成二维输入数据。
在这里插入图片描述
在这里插入图片描述
数据集:USTC-TFC2016、

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43360777/article/details/105727139