网络协议识别方法及装置制造方法及图纸

技术编号:23709894 阅读:102 留言:0更新日期:2020-04-08 12:06
本发明专利技术实施例提供一种网络协议识别方法及装置。其中,方法包括:基于数据平面开发套件,从网卡获取数据包;判断数据包的传输层的协议类型,确定传输层的协议类型是TCP或UDP;若是TCP,则基于Hyperscan引擎的流模式扫描数据包,识别数据包采用的运行于TCP协议之上的协议;若是UDP,则基于Hyperscan引擎的块模式扫描数据包,识别数据包采用的运行于UDP协议之上的协议。本发明专利技术实施例提供的网络协议识别方法及装置,本发明专利技术实施例基于数据平面开发套件获取数据包,基于Hyperscan引擎的两种模式扫描数据包,能在海量数据环境下,更高效、快速地获得网络协议的识别结果。

Network protocol identification method and device

【技术实现步骤摘要】
网络协议识别方法及装置
本专利技术涉及计算机网络
,更具体地,涉及一种网络协议识别方法及装置。
技术介绍
随着计算机网络的发展,网络的速度越来越快,网络传输的数据量也越来越大,高速网络的应用更加广泛。传统的网络协议识别方法基于深度包解析方式,需要对数据进行重组后才能识别。在网络传输的数据量越来越大的情况下,传统的网络协议识别方法的识别速度较慢、效率较低,无法适应海量数据环境。
技术实现思路
本专利技术实施例提供一种网络协议识别方法及装置,用以解决或者至少部分地解决现有技术存在的在海量数据环境下识别速度慢、效率低的缺陷。第一方面,本专利技术实施例提供一种网络协议识别方法,包括:基于数据平面开发套件,从网卡获取数据包;判断所述数据包的传输层的协议类型,确定传输层的协议类型是TCP或UDP;若是TCP,则基于Hyperscan引擎的流模式扫描所述数据包,识别所述数据包采用的运行于TCP协议之上的协议;若是UDP,则基于Hyperscan引擎的块模式扫描所述数据包,识别所述数据包采用的运行于UDP协议之上的协议。优选地,所述确定传输层的协议类型是TCP或UDP,与所述若是TCP,则基于Hyperscan引擎的流模式扫描所述数据包,识别所述数据包采用的运行于TCP协议之上的协议之间,还包括:将所述数据包重整为有序数据。优选地,所述若是TCP,则基于Hyperscan引擎的流模式扫描所述数据包,识别所述数据包采用的运行于TCP协议之上的协议的具体步骤包括:基于Hyperscan引擎的流模式和预先获取的流模式协议识别规则扫描重整后的所述数据包,获取所述数据包对应的识别规则;确定所述识别规则对应的TCP协议,作为所述数据包采用的运行于TCP协议之上的协议。优选地,所述若是UDP,则基于Hyperscan引擎的块模式扫描所述数据包,识别所述数据包采用的运行于UDP协议之上的协议的具体步骤包括:基于Hyperscan引擎的块模式和预先获取的块模式协议识别规则扫描所述数据包,获取所述数据包对应的识别规则;确定所述识别规则对应的UDP协议,作为所述数据包采用的运行于UDP协议之上的协议。优选地,所述基于Hyperscan引擎的流模式和预先获取的流模式协议识别规则扫描重整后的所述数据包的具体步骤包括:若判断获知数据包不是HTTP数据,则基于Hyperscan引擎的流模式和预先获取的流模式协议识别规则扫描重整后的所述数据包。优选地,所述基于Hyperscan引擎的流模式和预先获取的流模式协议识别规则扫描重整后的所述数据包的具体步骤包括:若判断获知数据包是HTTP数据,则对所述数据包进行HTTP解码后,基于Hyperscan引擎的流模式和预先获取的流模式协议识别规则扫描解码后的重整后的所述数据包。优选地,所述基于数据平面开发套件,从网卡获取数据包,与判断所述数据包的传输层的协议类型之间,还包括:对所述数据包的IP层进行预处理。第二方面,本专利技术实施例提供一种网络协议识别装置,包括:数据采集模块,用于基于数据平面开发套件,从网卡获取数据包;会话管理模块,用于判断所述数据包的传输层的协议类型,确定传输层的协议类型是TCP或UDP;数据扫描模块,用于若是TCP,则基于Hyperscan引擎的流模式扫描所述数据包,识别所述数据包采用的运行于TCP协议之上的协议;若是UDP,则基于Hyperscan引擎的块模式扫描所述数据包,识别所述数据包采用的运行于UDP协议之上的协议。第三方面,本专利技术实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,执行所述程序时实现如第一方面的各种可能的实现方式中任一种可能的实现方式所提供的网络协议识别方法的步骤。第四方面,本专利技术实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面的各种可能的实现方式中任一种可能的实现方式所提供的网络协议识别方法的步骤。本专利技术实施例提供的网络协议识别方法及装置,基于数据平面开发套件获取数据包,基于Hyperscan引擎的两种模式扫描数据包,能在海量数据环境下,更高效、快速地获得网络协议的识别结果。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为根据本专利技术实施例提供的网络协议识别方法的流程示意图;图2为根据本专利技术实施例提供的网络协议识别方法的初始化流程示意图;图3为根据本专利技术实施例提供的网络协议识别方法中数据采集步骤的流程示意图;图4为根据本专利技术实施例提供的网络协议识别方法中会话管理步骤的流程示意图;图5为根据本专利技术实施例提供的网络协议识别方法中输出步骤的流程示意图;图6为根据本专利技术实施例提供的网络协议识别方法中TCP流扫描步骤的流程示意图;图7为根据本专利技术实施例提供的网络协议识别方法中UDP块扫描步骤的流程示意图;图8为根据本专利技术实施例提供的网络协议识别方法中预处理步骤的流程示意图;图9为根据本专利技术实施例提供的网络协议识别装置的结构示意图;图10为根据本专利技术实施例提供的网络协议识别装置的结构示意图;图11为根据本专利技术实施例提供的电子设备的实体结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。为了克服现有技术的上述问题,本专利技术实施例提供一种网络协议识别方法及装置,其专利技术构思是,基于数据平面开发套件和Hyperscan,实现海量数据环境下,高效、快速的自动化网络协议识别。图1为根据本专利技术实施例提供的网络协议识别方法的流程示意图。如图1所示,该方法包括:步骤S101、基于数据平面开发套件,从网卡获取数据包。步骤S101为数据采集步骤。数据采集步骤,具体可以通过数据采集线程实现。需要说明的是,本专利技术实施例提供的网络协议识别方法的执行主体为网络协议识别装置。步骤S101中获取的数据包,可以为批量数据表。数据平面开发套件(DPDK,DataPlaneDevelopmentKit)用于快速数据包处理的函数库与驱动集合,可以极大提高数据处理性能和吞吐量,提高数据平面应用程序的工作效率。需要说明的是,步骤S101之前,需要对网络协议识别装置进行初始化。图2为根据本专利技术本文档来自技高网...

【技术保护点】
1.一种网络协议识别方法,其特征在于,包括:/n基于数据平面开发套件,从网卡获取数据包;/n判断所述数据包的传输层的协议类型,确定传输层的协议类型是TCP或UDP;/n若是TCP,则基于Hyperscan引擎的流模式扫描所述数据包,识别所述数据包采用的运行于TCP协议之上的协议;若是UDP,则基于Hyperscan引擎的块模式扫描所述数据包,识别所述数据包采用的运行于UDP协议之上的协议。/n

【技术特征摘要】
1.一种网络协议识别方法,其特征在于,包括:
基于数据平面开发套件,从网卡获取数据包;
判断所述数据包的传输层的协议类型,确定传输层的协议类型是TCP或UDP;
若是TCP,则基于Hyperscan引擎的流模式扫描所述数据包,识别所述数据包采用的运行于TCP协议之上的协议;若是UDP,则基于Hyperscan引擎的块模式扫描所述数据包,识别所述数据包采用的运行于UDP协议之上的协议。


2.根据权利要求1所述的网络协议识别方法,其特征在于,所述确定传输层的协议类型是TCP或UDP,与所述若是TCP,则基于Hyperscan引擎的流模式扫描所述数据包,识别所述数据包采用的运行于TCP协议之上的协议之间,还包括:
将所述数据包重整为有序数据。


3.根据权利要求2所述的网络协议识别方法,其特征在于,所述若是TCP,则基于Hyperscan引擎的流模式扫描所述数据包,识别所述数据包采用的运行于TCP协议之上的协议的具体步骤包括:
基于Hyperscan引擎的流模式和预先获取的流模式协议识别规则扫描重整后的所述数据包,获取所述数据包对应的识别规则;
确定所述识别规则对应的TCP协议,作为所述数据包采用的运行于TCP协议之上的协议。


4.根据权利要求1所述的网络协议识别方法,其特征在于,所述若是UDP,则基于Hyperscan引擎的块模式扫描所述数据包,识别所述数据包采用的运行于UDP协议之上的协议的具体步骤包括:
基于Hyperscan引擎的块模式和预先获取的块模式协议识别规则扫描所述数据包,获取所述数据包对应的识别规则;
确定所述识别规则对应的UDP协议,作为所述数据包采用的运行于UDP协议之上的协议。


5.根据权利要求3所述的网络协议识别方法,其特征在于,所述基于Hyperscan引...

【专利技术属性】
技术研发人员:罗佳许泽文
申请(专利权)人:武汉虹信通信技术有限责任公司
类型:发明
国别省市:湖北;42

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

1