一种协议识别方法及系统技术方案

技术编号:12408941 阅读:51 留言:0更新日期:2015-11-29 17:10
本发明专利技术公开了一种协议识别方法及系统,其中,所述方法包括:接收待识别协议的数据流,所述数据流包括上行数据包和下行数据包;将所述上行数据包和下行数据包进行拼接,以及进行格式转换,获得格式转换后的载荷数据流;采用深度学习模型对所述载荷数据流进行协议识别,获取用于输出的所述数据流的协议识别结果;其中,所述深度学习模型为预先采用训练数据流获取的用于识别网络数据流的模型。上述方法无需人工筛选特征,能够较好的提高网络数据流的协议识别率,同时降低成本。

【技术实现步骤摘要】

本专利技术涉及通信
,具体涉及一种协议识别方法及系统
技术介绍
协议识别是指根据网络流和流中的数据信息,推测出网络流量所属的协议类型。现有的协议识别方法包括:基于端口、基于静态特征和基于统计特征的协议识别方法。基于端口的协议识别方法主要是根据一些知名端口来识别当前数据流的协议标签。如HTTP (HyperText Transfer Protocol,超文本传输协议)使用80端口,21端口是FTP (File Transfer Protocol,文件传输协议)服务器专用的等等。实际使用中,这种方法的识别能力非常有限,对于注册和动态端口就无能为力了。基于静态特征的协议识别方法主要是通过对TCP (Transmiss1n ControlProtocol,传输控制协议)的有效载荷精确匹配特征码来识别当前数据流的协议标签。然而,该方法的缺陷是:特征规则覆盖不全,难以匹配新出现的特征。最近应用的基于统计特征的协议识别方法主要是结合机器学习算法来识别协议的方法,该方法相对比端口协议识别和静态特征协议识别均有较好的提高,但是基于统计特征的协议识别中对特征的选取主要依靠人为筛选,成本较高,且效率非常低。为此,如何提供一种成本低,且识别准确率高的协议识别方法成为当前需要解决的问题。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决或者减缓上述问题的协议识别方法及系统。根据本专利技术的一个方面,提供了一种协议识别系统,包括:接收单元,用于接收待识别协议的数据流,所述数据流包括上行数据包和下行数据包;格式转换单元,用于对所述上行数据包和下行数据包进行拼接,并进行格式转换,获得格式转换后的载荷数据流;协议识别单元,用于采用深度学习模型对所述载荷数据流进行协议识别,获取用于输出的所述数据流的协议识别结果;其中,所述深度学习模型为预先采用训练数据流通过深度学习获取的用于识别网络数据流的模型。可选地,所述格式转换单元,具体用于:将所述上行数据包的字节和下行数据包的字节按照预设策略进行拼接,获取字节数在第一预设范围内的第一载荷数据流;若所述第一载荷数据流的数据格式为16进制,则将该第一载荷数据流的数据格式转换为10进制,以及对格式转换后的第一载荷数据流中每一字节除以255,获得格式转换后的载荷数据流;或者,若所述第一载荷数据流的数据格式为10进制,则将该第一载荷数据流中每一字节除以255,获得格式转换后的载荷数据流。可选地,所述第一载荷数据流中的字节拼接方式为:依次排列的上行数据包的第一字节、下行数据包的第一字节、上行数据包的第N字节和下行数据包第N字节;N为大于I的自然数,且所述第一载荷数据流的字节数小于等于1000,大于等于200。可选地,所述系统还包括:模型建立单元;所述模型建立单元,用于采用已知的训练数据流及该训练数据流对应的协议,获取用于识别网络数据的深度学习模型及与深度学习模型对应的模型参数;所述已知的训练数据流包括已知多种协议标签的训练数据。可选地,所述模型建立单元,具体用于:对每一协议对应的训练数据中上行数据包和下行数据包进行拼接,并进行格式转换,获得第一数据;将所有协议对应的格式转换后的第一数据和该第一数据对应的协议组成向量矩阵;采用深度神经网络算法处理所述向量矩阵,获得深度学习模型及模型参数;或者,采用栈式自编码算法处理所述向量矩阵,获得深度学习模型及模型参数。可选地,所述模型建立单元,还用于:针对每一协议的训练数据,将该训练数据的上行数据包的字节和下行数据包的字节按照预设策略进行拼接,获得字节数在第二预设范围内的第二数据;若所有协议的第二数据的格式为16进制,则将该第二数据的格式转换为10进制,以及对格式转换后的第二数据中每一字节除以255,获得所述第一数据;或者,若所有协议的第二数据的格式为10进制,则将该第二数据中每一字节除以255,获得所述第一数据。可选地,所述模型建立单元,还用于:判断当前协议对应的第二数据的字节数是否符合预设字节数范围;若当前协议的第二数据的字节数大于预设字节数范围,则对该第二数据进行欠抽样,获得符合预设字节数范围的第二数据;若当前协议的第二数据的字节数小于预设的字节数范围,则重复复制多次该协议的第二数据,获得符合预设字节数范围的第二数据。可选地,协议识别单元,具体用于:采用深度学习模型对格式转换后的载荷数据流进行协议识别,获得所述数据流中每一条待识别的数据属于每一种协议的概率;针对每一条待识别的数据,选取概率最大的协议作为该待识别的数据的协议,获得所述数据的协议识别结果。根据本专利技术的另一个方面,提供了一种协议识别方法,包括:接收待识别协议的数据流,所述数据流包括上行数据包和下行数据包;对所述上行数据包和下行数据包进行拼接,并进行格式转换,获得格式转换后的载荷数据流;采用深度学习模型对所述载荷数据流进行协议识别,获取用于输出的所述数据流的协议识别结果;其中,所述深度学习模型为预先采用训练数据流通过深度学习获取的用于识别网络数据流的模型。可选地,所述对所述上行数据包和下行数据包进行拼接,并进行格式转换,获得格式转换后的载荷数据流,包括:将所述上行数据包的字节和下行数据包的字节按照预设策略进行拼接,获取字节数在第一预设范围内的第一载荷数据流;若所述第一载荷数据流的数据格式为16进制,则将该第一载荷数据流的数据格式转换为10进制,以及对格式转换后的第一载荷数据流中每一字节除以255,获得格式转换后的载荷数据流;或者,若所述第一载荷数据流的数据格式为10进制,则将该第一载荷数据流中每一字节除以255,获得格式转换后的载荷数据流。可选地,所述第一载荷数据流中的字节拼接方式为:依次排列的上行数据包的第一字节、下行数据包的第一字节、上行数据包的第N字节和下行数据包第N字节;N为大于I的自然数,且所述第一载荷数据流的字节数小于1000大于200。可选地,采用深度学习模型对所述载荷数据流进行协议识别之前,所述方法还包括:采用已知的训练数据流及该训练数据流对应的协议,获取用于识别网络数据的深度学习模型及与深度学习模型对应的模型参数;所述已知的训练数据流包括已知多种协议标签的训练数据。可选地,采用已知的训练数据流及该训练数据流对应的协议,获取用于识别网络数据的深度学习模型,包括:对每一协议对应的训练数据中上行数据包和下行数据包进行拼接,并进行格式转换,获得第一数据;将所有协议对应的格式转换后的第一数据和该第一数据对应的协议组成向量矩阵;采用深度神经网络算法处理所述向量矩阵,获得深度学习模型及模型参数;或者,采用栈式自编码算法处理所述向量矩阵,获得深度学习模型及模型参数。可选地,所述对每一协议对应的训练数据中上行数据包和下行数据包进行拼接,并进行格式转换,获得第一数据,包括:针对每一协议的训练数据,将该训练数据的上行数据包的字节和下行数据包的字节按照预设策略进行拼接,获得字节数在第二预设范围内的第二数据;若所有协议的第二数据的格式为16进制,则将该第二数据的格式转换为10进制,以及对格式转换后的第二数据中每一字节除以255,获得所述第一数据;或者,若所有协议的第二数据的格式为10进制,则将该第二数据中每一字节除以255,获得所述第一数据。可选地,针对每一本文档来自技高网...

【技术保护点】
一种协议识别系统,其特征在于,包括:接收单元,用于接收待识别协议的数据流,所述数据流包括上行数据包和下行数据包;格式转换单元,用于对所述上行数据包和下行数据包进行拼接,并进行格式转换,获得格式转换后的载荷数据流;协议识别单元,用于采用深度学习模型对所述载荷数据流进行协议识别,获取用于输出的所述数据流的协议识别结果;其中,所述深度学习模型为预先采用训练数据流通过深度学习获取的用于识别网络数据流的模型。

【技术特征摘要】

【专利技术属性】
技术研发人员:王占一刘博张卓黄传明
申请(专利权)人:北京奇虎科技有限公司北京奇安信科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1