首页> 中国专利> 一种基于深度学习的列车通信网络流量识别方法

一种基于深度学习的列车通信网络流量识别方法

摘要

本发明公开了一种基于深度学习的列车通信网络流量识别方法,具体为:首先利用抓包工具对列车通信网络流量数据进行采集,并对其pcap文件进行读取及解析,经过会话重组、数据清洗及等长处理、归一化处理后,对样本数据进行标签的标注,然后利用样本数据对一维卷积神经网络进行训练;最后只需要将未知流量输入训练好的模型中,就能实现对列车通信网络流量中传统应用层协议以及铁路私有协议的有效分类。本发明实现对列车控制与服务网络中的常见应用层协议以及铁路私有协议进行有效的识别与分类;能够更为精确的提取到有用的特征信息,实现更高的精度、查准率和查全率。

著录项

  • 公开/公告号CN113037646A

    专利类型发明专利

  • 公开/公告日2021-06-25

    原文格式PDF

  • 申请/专利权人 西南交通大学;

    申请/专利号CN202110239017.2

  • 发明设计人 邢志铖;闫连山;李赛飞;李洪赭;

    申请日2021-03-04

  • 分类号H04L12/851(20130101);H04L29/06(20060101);H04L29/08(20060101);G06N3/04(20060101);G06N3/08(20060101);

  • 代理机构51200 成都信博专利代理有限责任公司;

  • 代理人卓仲阳

  • 地址 610031 四川省成都市金牛区二环路北一段111号

  • 入库时间 2023-06-19 11:35:49

说明书

技术领域

本发明属于信息通信技术领域,尤其涉及一种基于深度学习的列车通信网络流量识别方法。

背景技术

随着传统列车通信网络与旅客服务网络的融合以及以太网技术的引入,列车通信网络对传输性能的要求大大增加,此外还引发众多安全问题,如:Dos攻击和IP地址欺骗等。为了保证列车服务网络中流量的合理调度与监管,避免出现网络拥塞、网络入侵等现象,对网络流量进行分类识别和特性分析十分必要。目前流量识别的方法主要分为以下几个方向:基于端口号的识别方法、基于荷载特征的识别方法

初期流量识别技术的方法主要是基于端口号的识别方法。这种方法的核心原理是直接以互联网数字分配机构所定义的标准协议-端口表为基础构建映射表,在网络流量分类时,通过在已有的映射表中查询报文中的端口号,得到相应的协议。随着动态端口号技术的普及以及P2P应用的出现,网络环境的复杂程度不可同日而语,很多应用并没有预先分配的端口号,甚至有些应用为了逃避检测,直接使用其他应用的默认端口号进行通信,因此面对如此庞大的应用种类,端口号判定法的识别能力显得有些捉襟见肘。为了避免使用端口号识别流量所带来的较大误差,于是另一种技术应运而生——深度包检测DPI(DeepPacket Inspection)技术。深度包检测技术不仅检查IP包头和TCP/IP包头部分的信息,而且还会更深入的检查数据包内所有荷载的内容。但是深度包检测方法仍旧还有不足的地方,随着物联网、云计算以及人工智能、在线视频等应用的发展,人们对带宽的需求越来越大,数据传输率也随之增大。大量数据在进行特征码匹配时,对计算机资源需求也增大,无法保证实时性。此外,随着网络的发展,加密数据无处不在,经过加密处理的流量数据将无法正常进行特征码的匹配,这也是限制深度包检测技术发展的一大原因;再者,特征码作为数据流量的唯一标识,一旦它的提取、识别出错,将会直接影响到深度包检测的准确率,特征码的提取并不简单,它需要网络专家对流量数据进行分析才能得到。特征库是人为维护更新的,因此在维护特征库时会增加人力成本,当出现新的类别时,需要及时更新,否则会严重影响到流量识别的准确性。

由于基于端口号和基于深度包检测技术在某些方面都存在一些不可忽视的缺陷,近些年越来越多的研究者将机器学习与流量识别技术相结合。基于机器学习的流量识别方法由于只利用流的统计特征就能对流量进行准确识别,并且对未知应用也有较好的识别效果,在近些年得到了极大的发展。但是这类方法也并非毫无缺点,比如部分算法复杂度较高,计算开销较大,且还要考虑分类器的可扩展性、鲁棒性以及实时性等多方面性能。在种类繁多的流量分类方法中,无论哪种分类方法都有其适用性和局限性,因此,要根据各类识别方法的适用范围及分类需求选择最适合的流量分类方法。

发明内容

考虑到要进行识别的目标流量是基于列车通信网络的数据流量,其中包含了许多铁路私有协议,例如TRDP、RSSP-1、RSSP-2等等,因此,为了对列车通信网络流量进行智能、有效的识别,本发明提供一种基于深度学习的列车通信网络流量识别方法。

本发明的一种基于深度学习的列车通信网络流量识别方法,包括以下步骤:

步骤1:数据预处理,通过抓包工具对目标流量进行捕获,并将采集的目标流量由原始的pcap格式转化为符合神经网络模型输入数据标准的idx格式。

步骤2:搭建基于一维卷积神经网络的流量识别模型:网络流量是按照层次化结构进行组织的时序数据,属于一维字节流,类似于自然语言处理,因此本发明搭建一维卷积神经网络对流量进行协议识别,然后将步骤1中得到的包含协议标签的预处理数据作为训练数据传入一维卷积神经网络输入层,经过多层空洞卷积层的特征提取后,送入到全连接层进行分类,将输出数据与标签数据进行误差运算,得到一个误差值,然后根据误差值进行反向传播,修正网络模型参数,如此反复,直至模型收敛或者达到预设的停止条件。

步骤3:对列车通信网络流量进行采集,对采集的目标流量依次进行流量重组、数据清洗、流量截取、归一化处理后,将得到的等长向量输入训练好的一维卷积神经网络模型,计算得到其协议类型预测值。

进一步的,针对上述提到的数据预处理方法,其步骤包括:根据五元组将采集的原始流量以会话的形式进行重组;对重复以及无内容的数据包进行清理;对每个会话的前部固定长度字节进行等长度截取,长度不足则用0进行填充;对样本数据进行归一化处理:首先将截取的等长向量进行十进制转换,然后对转换后的向量进行最大-最小值归一化,使向量中的每个分量统一到一个区间,最后为每一条样本数据添加应用层协议标签。

进一步的,上述会话即为由双向流组成的所有包,其五元组中的源IP、源端口和目的IP、目的端口可以互换。

进一步的,会话重组首先要将双向流进行重组,流重组分为TCP流和UDP流两种:根据TCP协议数据传输的特点,可通过TCP首部的SYN位和FIN位来判断连接的建立和释放,从而可以确定流的开始、结束及其完整性。然后通过序列号和负载数据的长度将数据包重组为一条有序流。与TCP协议的通信机制不同,由于UDP是无连接协议,因此本发明通过数据包的发送时间和流的持续时间来判断。首先选择第一个数据包的发送时间作为流的开始时间,计算接下来的每个数据包与第一个数据包发送时间的差值,若差值大于预先设定好的流最大持续时间,则该数据包属于下一条流,上一个数据包即为上一条流结束的标志。

进一步的,应用层协议标签数据使用one-hot进行独热编码。

进一步的,步骤2中一维卷积神经网络结构包括输入层,空洞卷积1层C1,池化一层P1,空洞卷积2层C2,池化2层P2,空洞卷积3层C3,池化3层P3,空洞卷积4层C4,池化4层P4,以及1层全连接层F1,最后连接一个输出层O1,输出层神经元个数等于应用层协议的类别数。

进一步的,针对应用层协议分类这一应用场景,输出层选择softmax激活函数,以达到有效分类的目的。

本发明与现有技术相比具有以下的优点及效果:

1、本发明方法使用表征学习思想的深度学习技术,基于端到端的学习形式使得不需要预先对流量特征进行特征设计和人工提取特征,直接对原始流量进行处理后作为输入,解决了准确有效的设计特征这一困难,实现对列车控制与服务网络中的常见应用层协议以及铁路私有协议进行有效的识别与分类。

2、本发明方法选择了会话的形式对流量进行重组,由于会话包含了双向的信息交互,因此包含了更充足、更丰富的信息,让神经网络模型所学习到的特征更具代表性,进而提升了分类的准确率。

3、本发明方法所针对的是一种具有时序特征的流量数据,与适合二维卷积的图片、音视频不同,更适合一维卷积结构。一维卷积神经网络能够更为精确的提取到有用的特征信息,实现更高的精度、查准率和查全率。

附图说明

图1为本发明一种基于深度学习的列车通信网络流量识别方法流程图。

图2为实施例中一维卷积神经网络的列车通信网络流量识别模型。

具体实施方式

下面结合附图和具体实施方式对本发明方法作进一步的详细说明。

本发明的一种基于深度学习的列车通信网络流量识别方法流程图如图1所示,其具体步骤为:

步骤1:对列车通信网络流量数据进行采集并预处理。

在本实施例中,数据预处理的具体步骤包括:通过抓包工具对列车通信网络流量进行捕获;对捕获后所保存的pcap格式文件进行读取及解析;将pcap文件中所包含的网络流按照会话形式进行重组;对重复以及无内容的数据文件进行清理;对重组后的会话进行截取或填充;对样本数据的归一化处理以及标注标签。

在通过wireshark对包含铁路私有协议的流量进行采集时,铁路私有协议会被默认识别为TCP或UDP协议的流量,为了方便查看以及后续研究,可以先通过lua脚本语言构建协议扩展插件对wireshark的协议解析器进行扩充,再对目标流量进行捕获。

在对列车通信网络流量进行捕获后,需要对pcap文件的读取与解析。pcap文件是Wireshark配置脚本文件,由一个pcap文件头和多个数据包组成,数据包又由数据包头和数据包内容构成。通过pcap文件头中的关键字段linktype,即链路层帧头,对链路类型进行判断。本发明只解析linktype为1的pcap文件。接着对数据包进行循环读取,根据以太网帧头中的“FrameType”字段确定该数据帧的有效荷载是否为IP协议的数据报。若为IP协议的数据报,则对IP头部进行解析可以得到IP地址,并根据“protocol”字段对该数据报的有效荷载进行判断。假如是TCP段或UDP段,则对TCP或UDP头部进行解析可以得到端口号和序列号,然后用报文总长度与以太网首部、IP首部、TCP首部、UDP首部长度计算得出应用层数据长度,并据此提取出其中的应用层数据。最后将解析出的IP地址,端口号,序列号,应用层数据等信息构建成新的数据包。

根据重新构建的数据包中的五元组对网络流进行重组。流重组分为TCP流和UDP流两种:对于TCP流,可以根据TCP协议数据传输的特点,可通过TCP首部的SYN位和FIN位来判断连接的建立和释放,从而可以确定流的开始、结束及其完整性。然后通过序列号和负载数据的长度将数据包重组为一条有序流。与TCP协议的通信机制不同,由于UDP是无连接协议,因此UDP协议无法通过标志位来确定流的开始和结束。本文通过数据包的发送时间和流的持续时间来判断。首先选择第一个数据包的发送时间作为流的开始时间,计算接下来的每个数据包与第一个数据包发送时间的差值,若差值大于预先设定好的流最大持续时间,则该数据包属于下一条流,上一个数据包即为上一条流结束的标志。会话即为根据IP地址、端口号重组后的双向流。

由于会话中所包含的应用层数据可能会出现长度冗余、缺失的现象,所以要对其进行截取或补充。若会话长度多于784字节,则对其前784字节数据进行截取;若会话长度小于784字节,则对其进行“0”填充。

为了保证卷积神经网络模型能够快速收敛,有效的进行训练,需要将输入数据统一到某个范围之内,因此需要对铁路流量数据进行归一化处理。首先计算数据向量中的最小值和最大值,用数据向量中的每个分量减去最小值,然后除以最大值与最小值的差,这样就将原始数据向量中的每个分量归一化到0到1这个范围。在有监督的卷积神经网络学习过程中,需要标签数据对整个学习过程进行“引导”,因此需要对每个样本数据进行标签的标注,对于协议分类这一应用场景来说,训练数据的特征是离散的,这里的离散特征没有大小的区别,因此使用One-hot编码能够将离散特征之间的“距离”计算变得更为合理,其次,one-hot编码还能起到扩充特征的作用。One-hot编码,又叫做以为一位有效编码,编码原理比较简单,如果本发明例需要识别的应用层协议数为8,而目前有一条协议数据属于第5类,那么此时它所对应的标签是[0,0,0,0,1,0,0,0]

步骤2:基于卷积神经网络的分类模型搭建。

首先需要设计出一种适合对列车通信网络流量进行协议分类的卷积神经网络结构,然后用训练样本对网络结构进行训练,根据实验结果不断对结构进行调整,以得到一款更优的网络结构,保证卷积神经网络达到更强的流量识别能力。

经过对卷积神经网络结构的不断调整和优化,最终确定的卷积神经网络结构如图2所示。首先将维度为(784,1)的一维向量送入输入层,经过若干个卷积层对数据特征进行提取,浅层卷积掌握局部特征信息,深层卷积层逐步掌握全局信息。空洞卷积最初是用来解决图像分割问题,空洞卷积的引入可以扩大感受野,与池化层不同的是,空洞卷积能够保证内部空间结构不变且不会造成精度上的损失,输入的数据经过卷积层进行特征提取之后,一般会连接一个池化层,目的是为了减少特征数据,降低网络模型的训练难度,还能避免过拟合现象的产生。此外,当卷积层的卷积核对数据进行卷积运算时,数据边缘部分很容易被忽略,遗漏的边缘信息会导致分类效果不佳,为了解决这个问题,提出了“填充”这一概念,本发明采用在图片数据周围填充0的方法。在最后一层空洞卷积层后面连接若干个全连接层,以实现对流量数据的分类。为了使模型训练更加到位,更为接近最优解,本发明引入了学习率衰减,为了缓解网络的过拟合问题,还引入了批归一化机制和ReLu激活函数。

本发明实施例中卷积神经网络结构包括输入层I1、空洞卷积1层C1、池化1层P1、空洞卷积2层C2、池化2层P2、空洞卷积3层C3、池化3层P3、空洞卷积4层C4、池化4层P4、全连接1层F1以及输出层O1。首先经过0填充的数据送入第一层空洞卷积层C1处进行局部信息的感知,此处采用32个卷积核,卷积核大小选择1×5,卷积步长设置为1,然后经过最大值池化采样,在保留局部特征的有效信息的同时,减少数据量,减小过拟合,并提升模型的容错能力,方便网络训练。第二、三、四层空洞卷积层进一步对特征进行综合提取,此处同样采用32个卷积核,卷积核大小与卷积步长均与第一层卷积层保持一致,全连接层F1神经元个数设置为256。相比传统的卷积层,空洞卷积层多了一个超参数,扩张率,在本发明实施例中,四层空洞卷积的扩张率分别设置为1、2、5、7。此外,需要指出的是除输出层外,其余层均选择ReLU激活函数,池化层的池化窗口设置为1×3,步长设置为3。

在最后一层卷积-池化层之后连接两个全连接层,全连接1层F1含有512个神经元,全连接2层F2含有256个神经元,最后一层输出层O1神经元个数与应用层协议的类别总数有关,根据不同的协议识别应用场景,可以通过改变输出层神经元个数对模型进行微调,相当于一个分类器,输出层的激活函数选择Softmax,Softmax函数将输出值映射到0到1的区间内,并且这些映射后的输出值相加等于1,因此我们可以将Softmax的输出看成一个概率值,在进行多分类应用时,通过Softmax激活函数的处理,最后得到一组概率值,样本数据所属类别将依据输出值的大小确定。

卷积神经网络的整个工作过程可以分为前向传播和误差反向传播两个部分。训练过程的第一步是将一批样本数据送入神经网络进行前向传播,首先会初始化一组权值,根据该权值与输入样本数据计算出相应的输出值,根据选择的误差函数计算出对应的误差值,在本发明实施例中,误差函数选择交叉熵损失函数,然后利用梯度下降算法对权值进行更新,保证整个网络朝着误差值减小的方向进行,直到误差达到极小值或者预设的误差最小值。

整个神经网络的训练过程其实是不断修正权重值的过程,上述提到的权重值最开始只是网络初始化的一组值,如何不断修改权重值,使其保证网络结果最优或者较优是反向传播需要解决的问题。前向传播输出的值指的是输出值,而我们的标签数据代表的是实际值,将输出值与实际值进行误差运算,计算出它们之间的误差值,根据误差值从输出层不断的向隐藏层反向传播,保证权重值往误差值减小的方向改变,一直传播到输入层,然后从输入层按照上一步修正后的权重值再次进行正向传播工作过程,如此反复,直至收敛。

步骤3:未知网络流量的应用层协议分类。

在利用样本流量对上述卷积神经进行训练直至收敛之后,下一步可以利用训练好的一维卷积神经网络对未知网络流量数据进行识别与分类。首先对列车控制与服务网络流量进行捕获,然后对捕获到的流量进行数据预处理,转化为适合一维卷积神经网络的输入数据格式。最后只需要将处理好的数据送入训练好的一维卷积神经网络进行协议识别,训练好的神经网络将根据上述训练学习到的信息,对未知流量的应用层协议类别进行推断。

综上所述,本发明设计的基于一维卷积神经网络的列车通信网络流量识别方法,解决了人工设计和提取特征的难题,充分利用了卷积神经网络能够自主有效的提取局部和全局特征的能力,只需要将训练数据送入搭建好的神经网络进行训练,无需人为操作,便能提取到具有代表性的特征,此后只需将经过数据预处理后的未知流量数据送入训练好的网络模型中进行协议识别,这一方法大大提升了协议的识别准确率。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号