CN116471344B - 一种数据报文的关键字提取方法、装置及介质 - Google Patents
一种数据报文的关键字提取方法、装置及介质 Download PDFInfo
- Publication number
- CN116471344B CN116471344B CN202310470311.3A CN202310470311A CN116471344B CN 116471344 B CN116471344 B CN 116471344B CN 202310470311 A CN202310470311 A CN 202310470311A CN 116471344 B CN116471344 B CN 116471344B
- Authority
- CN
- China
- Prior art keywords
- rule
- field vector
- keyword extraction
- information
- offset
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000605 extraction Methods 0.000 title claims abstract description 207
- 239000013598 vector Substances 0.000 claims abstract description 213
- 238000000034 method Methods 0.000 claims abstract description 91
- 239000011159 matrix material Substances 0.000 claims abstract description 73
- 230000009466 transformation Effects 0.000 claims abstract description 47
- 230000008569 process Effects 0.000 claims abstract description 41
- 238000003860 storage Methods 0.000 claims abstract description 32
- 238000013507 mapping Methods 0.000 claims description 62
- 238000012545 processing Methods 0.000 claims description 38
- 238000004590 computer program Methods 0.000 claims description 12
- 239000003550 marker Substances 0.000 claims description 9
- 230000006835 compression Effects 0.000 claims description 8
- 238000007906 compression Methods 0.000 claims description 8
- 238000004458 analytical method Methods 0.000 claims description 5
- 238000012216 screening Methods 0.000 claims description 4
- 238000004891 communication Methods 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 14
- 230000005641 tunneling Effects 0.000 description 8
- 238000005538 encapsulation Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000013075 data extraction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种数据报文的关键字提取方法、装置及介质,适用于通信技术领域。根据规则选择器对报文数据进行解析得到对应的规则编号信息;分别根据字段提取规则和自定义变换规则对规则编号信息的报文数据进行提取得到字段向量和字段向量偏移矩阵;其中,自定义变换规则至少包括关键字提取规则和字段向量偏移规则;根据字段向量和字段向量偏移矩阵确定关键字。在基于规则编号选取和字段提取的基础上,考虑到不同的场景需求下对应的关键字提取的自定义变换规则,对于关键字提取规则实现掩码截取关键字长度以节省芯片存储空间,通过字段向量偏移规则实现关键字索引变换等以支持自定义的复杂变换,提高数据报文的整个匹配过程的灵活性。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种数据报文的关键字提取方法、装置及介质。
背景技术
通用的数据报文关键字的提取,是数据报文后续处理的重要基础,在网卡等网络芯片领域有着广泛的应用。
现有的数据报文根据报文类型进行规则编号选取和字段提取得到关键字Key的值。对应提取出来的关键字Key较长导致占用的芯片存储空间较多,同时未考虑到不同的场景需求下对应的关键字提取不同,无法支持较为复杂的自定义变换,使得整个报文匹配过程的灵活性较差。
因此,如何在数据报文关键字提取过程中提高报文匹配的灵活性是本领域技术人员亟需要解决的。
发明内容
本发明的目的是提供一种数据报文的关键字提取方法、装置及介质,在基于规则编号选取和字段提取的基础上,考虑到不同的场景需求下对应的关键字提取的自定义变换规则,支持自定义的复杂变换,提高数据报文的整个匹配过程的灵活性。
为解决上述技术问题,本发明提供一种数据报文的关键字提取方法,包括:
获取当前协议的报文数据;
根据规则选择器对所述报文数据进行解析得到对应的规则编号信息;
分别根据字段提取规则和自定义变换规则对所述规则编号信息进行提取得到所述报文数据对应的字段向量和字段向量偏移矩阵;其中,所述自定义变换规则至少包括对关键字的长度掩码截取的关键字提取规则和索引所述字段向量的偏移地址的字段向量偏移规则;
根据所述字段向量和所述字段向量偏移矩阵确定关键字。
优选地,所述报文数据包括报文类型数据和报文标记数据,其中所述报文标记数据至少包括报文方向标记数据和物理端口号对应的协议信息。
优选地,所述规则选择器对应的规则选择表确定过程,包括:
预先建立各协议下的报文数据对应的所述报文类型数据、所述报文标记数据与规则编号信息的第一映射关系,其中相同的规则编号信息对应不同的所述报文类型数据或所述报文标记数据;
根据所述第一映射关系确定所述规则选择表。
优选地,根据所述自定义变换规则对所述规则编号信息进行提取得到所述报文数据对应的所述字段向量偏移矩阵,包括:
根据所述关键字提取规则对所述规则编号信息进行提取得到关键字提取信息;
根据所述字段向量偏移规则对所述关键字提取信息进行处理得到所述字段向量偏移矩阵。
优选地,所述关键字提取规则的建立过程,具体包括:
预先建立关键规则编号的属性信息与所述规则编号信息的第二映射关系,其中一个所述规则编号信息对应多个所述属性信息且各所述属性信息为一个字段;
根据所述第二映射关系确定bitmap表以完成所述关键字提取规则的建立;
对应地,所述根据所述关键字提取规则对所述规则编号信息进行提取得到关键字提取信息,包括:
根据所述bitmap表对所述规则编号信息进行处理得到初始关键字提取信息;
在所述初始关键字提取信息中根据有效标志位选取最终的所述关键字提取信息,其中所述有效标志位为非零比特位对应的关键字提取信息的标志位。
优选地,所述字段向量偏移规则的建立过程,包括:
预先建立字段向量偏移地址与所述关键字提取信息的第三映射关系,其中一个所述关键字提取信息对应多个所述字段向量偏移地址;
根据所述第三映射关系确定偏移表格以建立所述字段向量偏移规则;
对应地,所述根据所述字段向量偏移规则对所述关键字提取信息进行处理得到所述字段向量偏移矩阵,包括:
获取所述关键字提取信息对应所述字段向量偏移规则的目标行;
将所述目标行的字段信息加入预设偏移矩阵,直至所有所述目标行全部加入形成所述字段向量偏移矩阵。
优选地,所述字段向量偏移规则的建立过程,包括:
预先建立字段向量偏移地址、所述字段向量偏移地址对应的长度值与所述关键字提取信息的第三映射关系;
根据所述第三映射关系确定偏移表格以建立所述字段向量偏移规则;
对应地,所述根据所述字段向量偏移规则对所述关键字提取信息进行处理得到所述字段向量偏移矩阵,包括:
获取所述关键字提取信息对应所述字段向量偏移规则的目标行;
将所述目标行的字段信息加入预设偏移矩阵,直至所有所述目标行全部加入形成所述字段向量偏移矩阵。
优选地,当所述规则编号信息为多个时,在所述根据所述关键字提取规则对所述规则编号信息进行提取得到关键字提取信息之后,还包括:
当所述规则编号信息为多个时,建立与所述规则编号信息一一对应的偏移表格;
根据所述字段向量偏移规则对所述关键字提取信息、各所述偏移表格和各所述规则编号信息进行处理得到所述字段向量偏移矩阵。
优选地,当所述规则编号信息为多个时,在所述根据所述关键字提取规则对所述规则编号信息进行提取得到关键字提取信息之后,还包括:
当所述规则编号信息为多个时,获取各所述规则编号信息的规则属性信息;
将相同的所述规则属性信息归属于同一个偏移表格;
统计归属后的各偏移表格;
根据所述规则编号信息与所述归属后的各所述偏移表格建立映射选择器,其中所述映射选择器用于表征所述规则编号信息和所述归属后的各所述偏移表格的映射地址信息;
根据所述映射选择器、所述字段向量偏移规则对所述关键字提取信息、各所述偏移表格和各所述规则编号信息进行处理得到所述字段向量偏移矩阵。
优选地,所述根据所述字段向量偏移规则对所述关键字提取信息、各所述表格信息和各所述规则编号信息进行处理得到所述字段向量偏移矩阵,包括:
根据各所述规则编号信息与各所述表格信息进行筛选得到对应的初始目标行;
根据所述关键字提取信息与所述初始目标行的信息确定最终的目标行;
将所述最终的目标行的字段信息加入预设偏移矩阵,直至所有所述目标行全部加入形成所述字段向量偏移矩阵。
优选地,在所述根据所述字段向量和所述字段向量偏移矩阵确定关键字之后,还包括:
获取所述关键字的长度值;
根据报文压缩算法对所述长度值压缩以得到定长的所述关键字。
为解决上述技术问题,本发明还提供一种数据报文的关键字提取装置,包括:
获取模块,用于获取当前协议的报文数据;
解析模块,用于根据规则选择器对所述报文数据进行解析得到对应的规则编号信息;
提取模块,用于分别根据字段提取规则和自定义变换规则对所述规则编号信息进行提取得到所述报文数据对应的字段向量和字段向量偏移矩阵;其中,所述自定义变换规则至少包括对关键字的长度掩码截取的关键字提取规则和索引所述字段向量的偏移地址的字段向量偏移规则;
确定模块,用于根据所述字段向量和所述字段向量偏移矩阵确定关键字。
为解决上述技术问题,本发明还提供一种数据报文的关键字提取装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述所述的数据报文的关键字提取方法的步骤。
为解决上述技术问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的数据报文的关键字提取方法的步骤。
本发明提供的一种数据报文的关键字提取方法,包括获取当前协议的报文数据;根据规则选择器对报文数据进行解析得到对应的规则编号信息;分别根据字段提取规则和自定义变换规则对规则编号信息的报文数据进行提取得到字段向量和字段向量偏移矩阵;其中,自定义变换规则至少包括对关键字的长度掩码截取的关键字提取规则和索引字段向量的偏移地址的字段向量偏移规则;根据字段向量和字段向量偏移矩阵确定关键字。该方法在基于规则编号选取和字段提取的基础上,考虑到不同的场景需求下对应的关键字提取的自定义变换规则,对于关键字提取规则实现掩码截取关键字长度以节省芯片存储空间,通过字段向量偏移规则实现关键字索引变换等以支持自定义的复杂变换,提高数据报文的整个匹配过程的灵活性。
另外,本发明还提供了一种数据报文的关键字提取装置及介质,具有如上述数据报文的关键字提取方法相同的有益效果。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据报文的关键字提取方法的流程图;
图2为本发明实施例提供的另一种数据报文的关键字提取方法的示意图;
图3为本发明实施例提供的一种网卡的内部架构图;
图4为本发明实施例提供的一种报文上行方向的处理流程示意图;
图5为本发明实施例提供的一种报文下行方向的处理流程示意图;
图6为本发明实施例提供的另一种数据提取方法的流程示意图;
图7为本发明另一个实施例提供的数据报文的关键字提取方法的示意图;
图8为本发明实施例提供的一种数据报文的关键字提取装置的结构图;
图9为本发明实施例提供的另一种数据报文的关键字提取装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
本发明的核心是提供一种数据报文的关键字提取方法、装置及介质,在基于规则编号选取和字段提取的基础上,考虑到不同的场景需求下对应的关键字提取的自定义变换规则,支持自定义的复杂变换,提高数据报文的整个匹配过程的灵活性。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
需要说明的是,现有的报文关键字提取方法基于报文的头类型,根据报文头类型确定报文的上下文特征提取类型,根据报文的上下文特征提取类型提取报文头的关键字段;还有的提取方法基于实时更新偏移量存储器数据查询表以及协议类型存储器数据查询表,从而实现报文解析种类的动态配置,无需修改代码重新烧写现场可编程门阵列(Field-Programmable Gate Array,FPGA)程序,加快产品更新迭代速度。基于上述现有技术,其报文匹配过程中由于不支持自定义变换,使得匹配关键字较长或者无用的关键字占用有限的芯片存储空间等,本发明提供的数据报文的关键字提取方法可解决上述问题,同时适用于通用的报文特征提取,不局限于各层的协议。
图1为本发明实施例提供的一种数据报文的关键字提取方法的流程图,如图1所示,该方法包括:
S11:获取当前协议的报文数据;
具体地,当前协议不局限于各层,应用层、物理层等协议,仅是通用的报文特征提取方法;报文数据是基于当前协议上的数据,对于报文数据的数据结构可以基于现有的报文特征提取过程中的数据包本身的数据信息结构,也可以结合数据包外部环境的软硬件信息,还可以根据后续的报文不同场景进行优化标记,在此不做限定。为了便于后续报文的关键字提取,后者的报文数据匹配过程较为灵活。
S12:根据规则选择器对报文数据进行解析得到对应的规则编号信息;
对应地,规则选择器根据报文数据的不同组合形式其输入信息不同,当报文数据包括报文类型时,其规则选择器的输入信息为一个,当报文数据包括报文类型和报文标记时,其规则选择器的输入信息为两个,报文数据的元组包括多少信息其对应规则选择器的输入信息就为多少。规则选择器的建立过程根据报文数据的元组形式与报文数据匹配的规则编号信息建立映射关系,再根据该映射关系确定。
需要说明的是,报文数据的元组对应的表项不同,可能会归属于同一个规则编号信息,也就是存在共同的属性,以便于后续简化提取关键字以提高匹配过程的灵活性。
S13:分别根据字段提取规则和自定义变换规则对规则编号信息进行提取得到报文数据对应的字段向量和字段向量偏移矩阵;
其中,自定义变换规则至少包括对关键字的长度掩码截取的关键字提取规则和索引字段向量的偏移地址的字段向量偏移规则;
具体地,步骤S12中的规则编号信息(Rule_ID)对应两部分内容,一种是字段向量,一种是自定义变换规则下基于关键字提取规则和字段向量偏移规则以生成的字段向量偏移矩阵。字段向量根据报文数据的元组形式,若报文数据仅包括报文类型时,其字段向量的提取过程与现有技术相同,若报文数据包括报文类型和报文标记时,其提取过程需要规则编号信息查询对应的字段提取规则的属性表格以获取N个字段的向量。
在字段提取规则中,根据字节数提取,比如2字节、4字节等,在此过程中,以第2分量开始,根据2字节提取,提取了第2、3分量,再以第3分量提取,依次提取,一个规则下对应多个提取的向量,最后根据多个提取的向量进行组合得到当前的字段向量。在现有技术中,当前的字段向量作为关键字体现进行后续的关键值操作。
本实施例还要根据自定义变换规则得到字段向量偏移矩阵,通过字段向量偏移矩阵和字段向量进行处理可以确定最终的Key值。
需要说明的是,自定义变换规则的目的是支持自定义复杂的变换以便于最终提取的关键字准确且有效。结合用户不同的需求场景,以及芯片的存储空间,现有技术中提取出来的关键字Key的数据包为整个数据包全集的字节,占用较多的芯片存储空间,由于芯片内部的存储空间有限,关键字提取的字节很容易达到存储空间瓶颈,同时在关键字的数据包全集中可能存在未使用关键字信息,从而造成存储空间的浪费,使得整个报文匹配过程灵活性较差。
基于上述实际场景的考虑,通过自定义变换规则的长度掩码截取的关键字提取规则,对于关键字提取只截取有用的部分以缩短关键字的长度。值得注意的是,本实施例中的“掩码”功能与现有技术中的掩码不同,现有技术的掩码是屏蔽某些数据的输入为等,本发明是截取以作为“掩码”。由于芯片内部不同于外部的双倍速率同步动态随机存储器(Double Data Rate SDRAM,DDR),无法有几G的存储空间,在基础规则下进行自定义变换规则,需要将长度压缩至更短的长度,将某些关键字的内容进行提取达到“掩码”功能。
对于字段向量偏移规则,其与字段向量的偏移地址建立索引地址,鬼影的偏移地址是字段提取规则对应的表格偏移值的一个索引。可以理解的是,本发明实施例至少包括上述的两种自定义变换规则,还可以包括其他规则,在此不做限定,可以根据实际情况设定即可。
S14:根据字段向量和字段向量偏移矩阵确定关键字。
最后,将提取出的字段向量和字段向量偏移矩阵进行处理得到最终的关键字Key值。图2为本发明实施例提供的另一种数据报文的关键字提取方法的示意图,如图2所示,报文数据包括报文类型和报文标记,通过规则选择器可以匹配出对应的规则编号信息(Rule_ID),一路是通过字段提取器得到对应的字段向量,一路是通过自定义变换规则中的关键字规则选择器提取到关键字提取信息,再通过字段向量偏移生成器得到字段向量偏移矩阵,将两路生成的字段向量和字段向量偏移矩阵输入至关键字生成器中得到关键字Key。
本发明实施例提供的一种数据报文的关键字提取方法,包括获取当前协议的报文数据;根据规则选择器对报文数据进行解析得到对应的规则编号信息;分别根据字段提取规则和自定义变换规则对规则编号信息的报文数据进行提取得到字段向量和字段向量偏移矩阵;其中,自定义变换规则至少包括对关键字的长度掩码截取的关键字提取规则和索引字段向量的偏移地址的字段向量偏移规则;根据字段向量和字段向量偏移矩阵确定关键字。该方法在基于规则编号选取和字段提取的基础上,考虑到不同的场景需求下对应的关键字提取的自定义变换规则,对于关键字提取规则实现掩码截取关键字长度以节省芯片存储空间,通过字段向量偏移规则实现关键字索引变换等以支持自定义的复杂变换,提高数据报文的整个匹配过程的灵活性。
现有的数据报文仅是根据数据自身的信息获取,根据报文类型进行规则编号选取和字段提取得到关键字Key的值。由于各个端口的处理报文格式不一致,使得处理过程较为复杂,因此,作为一种实施例,报文数据包括报文类型数据和报文标记数据,其中报文标记数据至少包括报文方向标记数据和物理端口号对应的协议信息。
具体地,报文类型数据主要是报文数据本身的信息,如二层协议号、三层协议号以及三元组、五元组、是否为分片包等信息。对于报文标记数据,是无法基于报文数据本身获取,主要从外部软硬件的环境中得到的信息,如:报文方向:上下行方向;物理端口:报文来自或者需要发送至何种网络端口等和其他信息等。
随着虚拟机和云中的技术广泛应用,网络报文的隧道技术的应用也越加广泛,对于涉及隧道协议虚拟扩展局域网(Virtual eXtensible Local Area Network,VxLAN)、采用通用路由封装的网络虚拟化(Network Virtualization using Generic RoutingEncapsulation,NVGRE)、通用网络虚拟化封装(Generic Network VirtualizationEncapsulation,GENEVE)、通用路由封装协议(Generic Routing Encapsulation,GRE)和GPRS隧道传输协议(GPRS Tunneling Protocol-U,GTP-U)的报文解析和提取特征,如果仅仅依赖报文类型(Packet Type)信息来实现,是相对复杂的。此时,正适合结合报文标记(Packet Flag)来提取报文特征。图3为本发明实施例提供的一种网卡的内部架构图,如图3所示,存在多个虚拟机,各虚拟机与交换模块对应不同端口,每个端口与对应连接的虚拟机的协议各不同,其报文数据的报文标记数据携带各端口的端口属性信息,使得后续提取的关键字较为精准。
关于VxLAN协议,解决了现有VLAN技术无法满足大二层网络需求的问题。VxLAN技术是一种大二层的虚拟网络技术,表1为VxLAN协议报文格式,如表1所示,主要原理是引入一个用户数据报协议(User Datagram Protocol,UDP)格式的外层隧道作为数据链路层,而原有数据报文内容作为隧道净荷加以传输。由于外层采用了UDP作为传输手段,净荷数据可以轻松地在二、三层网络中传送。关于GRE协议,是一种用于网络隧道技术的网络协议,它可以使支持GRE的设备能够将不同网络间的数据封装成一个数据包,从而实现两个不同网络之间的通信。但是,GRE协议数据包是无法通过的,GRE采用了Tunnel(隧道)技术,是虚拟专用网络(Virtual Private Network,VPN)的第三层隧道协议。表2为GRE协议报文格式,如表2所示,当GRE包被封闭在IPv4中时,需要使用IPv4协议。
表1VxLAN协议报文格式
表2GRE协议报文格式
图4为本发明实施例提供的一种报文上行方向的处理流程示意图,如图4所示,虚拟机的报文信息通过端口携带报文数据(报文类型和报文标记),通过规则选择器匹配规则序号,经过外层头发送至网口。图5为本发明实施例提供的一种报文下行方向的处理流程示意图,如图5所示,接收由网口发送的报文数据(报文类型和报文标记),规则选择器对报文数据匹配规则序号,经过去外层头,经过端口发送至虚拟机。
如图3所示,对于网卡的核心模块(交换模块)而言,收到的报文有:
1、虚拟机VM-1和端口1之间的上行、下行报文,采用VxLAN协议传输;
2、虚拟机VM-2和端口2之间的上行、下行报文,采用GRE协议传输。
在实际应用中,采用VxLAN和GRE协议的报文,都会被封装到外层IP协议的报文中,进行隧道传输。若利用现有技术中的报文类型组成的报文数据进行解析,对于多种协议嵌套的报文,直接解析较为复杂,主要体现在:
1、实现逻辑复杂,需要考虑情况较多,如报文嵌套的层次数,报文每层可能具体的协议种类;
2、硬件规模大,硬件模块开发需要代码量较多,开发成本较高且难以测试;
3、硬件面积和生产成本较大,由于硬件规模较大,导致硬件生产出的面积大以及生产成本较高;
4、提取特征所需的时间较长。
针对网卡实现方面,对于用户使用过程也会带来相应的问题,主要体现在:
1、需要配置的数据量变多,因为报文种类提供的信息有限,需要制定复杂的规则才可以完成配置,进而导致需要配置的数据量变多。
2、配置复杂:由于规则复杂,其导致配置复杂;
3、在使用过程不方便也不够灵活。
在实际应用中,对于隧道协议通信,同一个虚拟机和对应的端口,在一定时间内稳定不变,同样,对应的报文特征也是相对稳定不变。对于报文方向来说,两类报文都可以分别用于上行或者下行方向(接收或发送),无需解析报文类型。对于物理端口号来说,携带端口号的端口属性信息。
本实施例提供的报文数据包括上述的报文类型和报文标记,可以方便识别出不同协议的报文,并根据报文类型和报文标记提取对应的特征值。
在上述实施例的基础上,步骤S12中的规则选择器对应的规则选择表确定过程,包括:
预先建立各协议下的报文数据对应的报文类型数据、报文标记数据与规则编号信息的第一映射关系,其中相同的规则编号信息对应不同的报文类型数据或报文标记数据;
根据第一映射关系确定规则选择表。
具体地,表3为规则选择表,如表3所示,报文数据包括报文类型数据(Packet_type)和报文标记数据(Packet_Flag),根据{报文类型,报文标记}元组,选取一个当前数据报文匹配的Rule_ID(规则编号),用于后续处理。第一映射关系是报文类型数据、报文标记数据与规则编号信息三者建立的关系,其中注意的是,不同{报文类型,报文标记}元组,可以设置成得到同样的Rule_ID值。也就是说,在实际需求场景中,存在较多个表项,各表项中可能存在报文类型相同,报文标记不同,或者可能存在报文类型不同,但报文标记相同的情况,将符合条件的多个表项归属于同一个规则编号信息。其符合条件说明具有该多个表项具有某个共同的属性以便于后续简化提取关键字,且提高匹配的灵活性。
表3规则选择表
另外,在字段提取规则对应的字段向量属性表中,基于报文数据包括报文类型和报文标记,作为一种实施例,表4为字段向量属性表,如表4所示,包含N个{Protocol_ID,PKT_OFFSET}对,其中N为Field最大支持的关键字数目。
表4字段向量属性表
字段提取规则的输入是通过表3中匹配的规则编号信息,查询表4的字段向量属性表,该属性表共有M行数据,每行有N个字段数。每隔字段由{Protocol_ID,PKT_OFFSET},即{报文基地址,包偏移}对来组成。以下是具体内容组成:
1、Protocol_ID_x:其中x∈[0,N-1],,且为整数。它的值代表,获取当前关键字,第x个分量时,所取字段在当前报文中的基地址。其本质含义是代表某协议头的起始地址,但是使用范围可以更广泛;
2、PKT_OFFSET_x:其中x∈[0,N-1],,且为整数。它的值代表,获取当前关键字,第x个分量时,所取字段在当前报文中的Protocol_ID_x的基地址上的偏移值。
经过本次步骤,获取了N个字段的向量,即一个1xN的Field Vector。其中的每个元素,都是从Protocol_ID_x+PKT_OFFSET_x,然后从当前报文中提取出来的。
本发明实施例提供的根据规则选择器对报文数据解析得到规则编号信息,以便于后续提取关键字。
在上述实施例的基础上,步骤S13中的根据自定义变换规则对规则编号信息进行提取得到报文数据对应的字段向量偏移矩阵,包括:
根据关键字提取规则对规则编号信息进行提取得到关键字提取信息;
根据字段向量偏移规则对关键字提取信息进行处理得到字段向量偏移矩阵。
具体地,先要根据关键字提取规则对规则编号信息进行提取得到关键字提取信息(Key_Rule_ID_K),再根据字段向量偏移规则对关键字提取信息进行处理得到字段向量偏移矩阵。根据这样的先后规则的顺序,使得根据关键字提取信息得到的字段向量偏移矩阵匹配效率提高,同时满足不同的场景需要得到的关键字有效。
作为一种实施例,关键字提取规则的建立过程,具体包括:
预先建立关键规则编号的属性信息与规则编号信息的第二映射关系,其中一个规则编号信息对应多个属性信息且各属性信息为一个字段;
根据第二映射关系确定bitmap表以完成关键字提取规则的建立;
对应地,根据关键字提取规则对规则编号信息进行提取得到关键字提取信息,包括:
根据bitmap表对规则编号信息进行处理得到初始关键字提取信息;
在初始关键字提取信息中根据有效标志位选取最终的关键字提取信息,其中有效标志位为非零比特位对应的关键字提取信息的标志位。
表5为关键字提取规则对应的属性表,如表5所示,预先建立关键规则编号(Key_Rule_ID)的属性信息与规则编号信息的第二映射关系,该属性表中共有M行数据,每行有K个字段数,Key_Rule_ID_0~Key_Rule_ID_K-1,每个字段Key_Rule_ID_x包含一个属性信息,也就是说,一个规则编号信息(Rule_ID)包含多个属性信息。根据第二映射关系确定bitmap表,需要说明的是,现有技术中的bitmap使用每个bit表示某种状态,来存储特定数据的一种数据结构,以节省存储空间,本实施例除了代表某种状态,更是用于用户掩码的缩小过程,以实现最终Key的长度。如果没有掩码,其数据包为64字节,最终输出的关键字Key长度为64字节,在本实施例中的掩码,只提取有用的,其长度小于64字节。
表5关键字提取规则对应的属性表
其中,bitmap表中每个元素的具体值,可以取0或者1,用于标记后续的字段向量偏移表格的行是否被选中或者有效。结合对应的关键字提取信息过程,根据bitmap表对规则编号信息进行处理得到初始关键字提取信息,可以确定位于表5中的哪行数据,由于通过规则编号信息确定其对应的属性信息,例如,规则编号信息为Rule_ID_1,其对应表5中的第二行的数据作为初始关键字提取信息,在该行的初始关键字提取信息中根据有效标志位确定最终的关键字提取信息。例如,初始关键字提取信息分别为0、1、1、0、0,其有效标志位为1,则提取有效标志位为1对应的Key_Rule_ID作为最终的关键字提取信息。
本发明实施例提供的根据关键字提取规则得到关键字提取信息,实现关键字提取只截取有用的部分以缩短关键字的长度。
在上述实施例的基础上,在字段向量的长度为定长1时,作为一种实施例,字段向量偏移规则的建立过程,包括:
预先建立字段向量偏移地址与关键字提取信息的第三映射关系,其中一个关键字提取信息对应多个字段向量偏移地址;
根据第三映射关系确定偏移表格以建立字段向量偏移规则;
对应地,根据字段向量偏移规则对关键字提取信息进行处理得到字段向量偏移矩阵,包括:
获取关键字提取信息对应字段向量偏移规则的目标行;
将目标行的字段信息加入预设偏移矩阵,直至所有目标行全部加入形成字段向量偏移矩阵。
具体地,预先建立字段向量偏移地址与关键字提取信息的第三映射关系,一个关键字提取信息(Key_Rule_ID)对应一条表项,表6为字段向量偏移规则的偏移表格,如表6所示,一个表项包括多个字段向量偏移地址(FV_OFFSET)。通过第三映射关系确定偏移表格以完成字段向量偏移规则。
表6字段向量偏移规则的偏移表格
对应地,根据表6的内容进行处理得到字段向量偏移矩阵,具体包括,获取关键字提取信息对应字段向量偏移规则的目标行,例如在上述实施例中有效标志位1得到的关键字提取信息为Key_Rule_ID_0和Key_Rule_ID_2,则对应表6中的第一行和第三行作为目标行,将目标行的字段信息加入预设偏移矩阵,形成字段向量偏移矩阵。可以理解的是,目标行可以存在一行或者多行,在此不做为限定内容。表6中共有K行,J列数据。每行对应一个Key_Rule_ID的二进制位。如果Key_Rule_ID_x的二进制位为0,则不对该FV_OFFSET表的x行进行操作;如果Key_Rule_ID_x的二进制位为1,则取出FV_OFFSET表的x行,添加到用于输出的FV_OFFSET阵列。
最终,Field Vector Offset Generator(字段向量偏移生成器)的输出为LxJ的FV_OFFSET的阵列,即字段向量偏移阵列。其中,L为Field Vector Offset Generator的输入的K个二进制位中为1的元素个数,J为表6的列数。
在字段向量的长度为不定长的情况下,作为一种实施例,字段向量偏移规则的建立过程,包括:
预先建立字段向量偏移地址、字段向量偏移地址对应的长度值与关键字提取信息的第三映射关系;
根据第三映射关系确定偏移表格以建立字段向量偏移规则;
对应地,根据字段向量偏移规则对关键字提取信息进行处理得到字段向量偏移矩阵,包括:
获取关键字提取信息对应字段向量偏移规则的目标行;
将目标行的字段信息加入预设偏移矩阵,直至所有目标行全部加入形成字段向量偏移矩阵。
需要说明的是,为了使得偏移表格的信息类型更为丰富,以便于提供对关键字实时的更加灵活的操作类型。除了有原来的FV_OFFSET_x外,还有一个值是FV_LENGTH_x。表7为字段向量偏移规则的偏移长度表格,如表7所示,FV_OFFSET_x为获取对应的FieldVector偏移值;FV_LENGTH_x:为在Field Vector对应FV_OFFSET_x位置上,需要获取的长度(单位如上所述,可以取Byte、Word、DWord)个数。
表7字段向量偏移规则的偏移长度表格
本实施例中的字段向量偏移规则以及确定字段向量偏移矩阵与上述实施例的过程相同,在此不再赘述。在上述实施例中的定长是针对每个Rule_ID下的字段向量是相同的,最终根据有效标志位确定对应的关键字。加入字段向量偏移地址对应的长度值仅是针对FV的字节数,字节数可以是1也可以是2,为不同的长度维度。本实施例提供的字段向量定长和不定长的情况下确定的字段向量偏移矩阵,通过自定义变换规则使得匹配过程较为灵活,以实现变长或者定长等复杂变换。
在上述实施例的基础上,为了得到更多的字段向量偏移规则下的偏移表格,当规则编号信息为多个时,在根据关键字提取规则对规则编号信息进行提取得到关键字提取信息之后,还包括:
当规则编号信息为多个时,建立与规则编号信息一一对应的偏移表格;
根据字段向量偏移规则对关键字提取信息、各偏移表格和各规则编号信息进行处理得到字段向量偏移矩阵。
需要说明的是,本实施例是根据规则编号信息的个数建立对应的偏移表格,每个偏移表格对应的表格信息不同。例如,存在128个Rule_ID,则对应的偏移表格的数量为128个,在一定程度上根据提供的Rule_ID进行动态选择对应的偏移表格。根据规则编号信息对应自己的偏移表格,后续处理过程得到字段向量偏移矩阵,以便于匹配过程灵活。
作为一种实施例,在考虑规则编号信息为多个且一一对应的偏移表格的存储空间问题,以及多个规则编号信息中可能存在共同的规则属性信息,同时可能存在不经常使用的规则编号信息其导致对应的偏移表格占用存储空间,由于芯片内部的存储空间有限,可以考虑将有共同的规则属性信息下的多个规则编号信息共同使用一个偏移表格,实施例如下:
当规则编号信息为多个时,在根据关键字提取规则对规则编号信息进行提取得到关键字提取信息之后,还包括:
当规则编号信息为多个时,获取各规则编号信息的规则属性信息;
根据映射选择器对规则属性信息进行映射处理得到对应的目标偏移表格;
根据映射选择器、字段向量偏移规则对关键字提取信息、目标偏移表格和各规则编号信息进行处理得到字段向量偏移矩阵;
其中,映射选择器的建立过程,包括:
将相同的规则属性信息归属于同一个偏移表格;
统计归属后的各偏移表格;
根据规则编号信息与归属后的各偏移表格建立映射选择器,其中映射选择器用于表征规则编号信息和归属后的各偏移表格的映射地址信息。
具体地,在多个规则编号信息时,需要获取各规则编号信息的规则属性信息,规则属性信息用于表征用户的某个需求场景下多个规则编号信息的共同属性。需要说明的是,规则属性信息可以预先设置,也可以根据用户的场景需求情况当前设置,也可以两者均包含。关于第一种预先设置,直接获取预先设置的规则属性信息,关于第二种根据当前场景需求进行设置的规则属性信息,基于现有的偏移表格建立的基础上,在存储空间内预留出一定的存储空间新增加偏移表格;关于第三种是前两种的结合情况,在此不再赘述。
例如,一共有8个Rule_ID,其中Rule_ID1-3具有相同的规则属性信息,对应一个偏移表格,Rule_ID6-8具有另外相同的规则属性信息,结合上述实施例中的第一种,则直接根据映射选择器对规则属性信息进行映射处理得到对应的目标偏移表格。若为上述实施例中的第二种(根据用户的场景需求情况当前设置),根据用户的场景需要,发现Rule_ID2与Rule_ID7具有当前场景需求的共同规则属性信息,则会基于前两个偏移表格的基础上,新增加一个偏移表格用于存储Rule_ID2与Rule_ID7的字段向量偏移信息。若是基于某一种用户的场景要求,需要重新将具体的Rule_ID进行更新,其更新的为字段向量偏移阵列下的原有的偏移表格,则需要在映射选择器对应的偏移表格中仅修改偏移表格的编号信息。
对应地,映射选择器是针对多个偏移表格下建立的索引表格,其建立过程是将相同的规则属性信息归属于同一个偏移表格,再统计归属后的各偏移表格,在映射选择器中加入规则编号信息与归属后的偏移表格的映射地址信息以完成建立,见表8的映射选择器的偏移表格。
表8映射选择器的偏移表格
如表8所示,第一列为地址索引,每个编号对应一个Rule_ID的取值;第二列是表8的该行第一列Rule_ID值,映射到“字段向量偏移生成器”的偏移表格的编号信息(编号索引值)。总的来说,偏移表格的个数可以根据规则属性信息的不同设置,增加灵活性。当存储空间少的时候,可以使用必要的少量、关键的偏移表格,配置好存储起来使用。例如,通过表8,在Rule_ID为奇数时,选择一种表格,在为偶数时,选择另一种表格。
图6为本发明实施例提供的另一种数据提取方法的流程示意图,如图6所示,具体步骤如下:
1、通过规则选择器匹配得到的Rule_ID;
2、使用Rule_ID匹配“关键字规则选择器”,得到Rule_ID对应关键字规则选择器下表格内的行,该行有K个字段数:Key_Rule_ID_0~Key_Rule_ID_K-1。这K个二进制位,作为“字段向量偏移生成器”的第一个输入;
3、映射选择器:使用Rule_ID匹配“映射选择器”,得到R个偏移表格中,Rule_ID对应的偏移表格下标。从而,从R个偏移表格中,选取一个偏移表格,作为“字段向量偏移生成器”的第二个输入;
4、后续的其他步骤,与上述实施例是保持一样的:
“字段提取器”,对输入的相关操作,处理后,将结果输出到后续模块;
“字段向量偏移生成器R”,对输入的相关操作,处理后,将结果输出到后续模块;
“关键字生成器”,对输入的相关操作,处理后,将结果输出到后续模块。
另外,作为一种实施例,映射选择器可以与规则选择器下的表格(表3)进行合并,在表3的基础上增加一列(偏移表格的编号信息),可以根据实际情况设定即可,在此不做限定。例如,在表3中增加一列偏移表格的编号信息,表9为增加后的规则选择表,如:
表9增加后的规则选择表
其中,表9的最后一类的Table_ID_M-1为最后添加的偏移表格的编号信息。
本发明实施例提供的存在多个规则编号信息时,加入映射选择器,可灵活调整偏移表格占用的存储空间,以快速重新配置规则编号信息与偏移表格之间的对应关系。
图7为本发明另一个实施例提供的数据报文的关键字提取方法的示意图,如图7所示,注意的是,在字段向量偏移生成器依据的规则编号信息并不是另外一种途径,还是需要关键字提取与规则编号信息一起处理得到字段向量偏移阵列。
作为一种实施例,根据字段向量偏移规则对关键字提取信息、各表格信息和各规则编号信息进行处理得到字段向量偏移矩阵,包括:
根据各规则编号信息与各表格信息进行筛选得到对应的初始目标行;
根据关键字提取信息与初始目标行的信息确定最终的目标行;
将最终的目标行的字段信息加入预设偏移矩阵,直至所有目标行全部加入形成字段向量偏移矩阵。
需要说明的是,先根据各规则编号信息与各表格信息进行筛选得到对应的初始目标行,再通过关键字提取信息确认初始目标行是否正确,若正确,则确定为最终目标行,若不正确,则进行标记,并校验检查。最后将确定的最终目标行全部加入预设偏移矩阵形成字段向量偏移矩阵。
本发明实施例提供的通过各偏移表格的丰富,实现动态选择,提高匹配的灵活性。
在上述实施例的基础上,在根据字段向量和字段向量偏移矩阵确定关键字之后,还包括:
获取关键字的长度值;
根据报文压缩算法对长度值压缩以得到定长的关键字。
具体地,由于有效标志位的设定可以决定最终的关键字Key的长度,若当前有效标志位较多,其最终的关键字Key的长度则变长,若想得到定长的报文特征值,则需要采用报文压缩算法对长度值进行压缩得到定长的关键字以实现压缩变换。
对应的报文压缩算法不作为具体限定,可以是现有技术中的哈希算法,或者其他算法,可根据实际情况设定即可。
本发明实施例提供的输出定长的关键字,通过采用压缩算法进行压缩变换,节省芯片的存储空间。
在图2和图7中的关键字生成器的输入有两个,分别是:
1、1xN的Field Vector:这是由Field Extractor(字段提取器)得取的结果值(字段向量);
2、LxJ的FV_OFFSET的阵列:字段向量偏移阵列。
循环遍历L行的FV_OFFSET,得到关键字序列的过程,如下:
首先,将最终结果Key置为空。
由FV_OFFSET表的x行,得到一个关键字分量序列的过程如下:
1.假定每个FV_OFFSET所取的字段长度为1Byte字节(也可以设置为其他值,如1个Word双字节,或者1个Double Word4字节等);
2.对于每个FV_OFFSET_i,从Field Vector,选取FV_OFFSET_i位置的一个字节,按顺序添加到Key的序列结尾;
3.第x行共有J个FV_OFFSET_i,可以得到J个字节。添加到关键字Key结尾;
4.循环遍历完成L行FV_OFFSET,即可得到Key的完整字节序列。
Key Generator(关键字生成器)的输出,是一个LxJ个字节序列的关键字的值。其中,L为Field Vector Offset Generator的输入的K个二进制位中为1的元素个数,J为表6或表7的列数。
举例说明,Rule_ID的个数,可以是M个(M通常取256个,或1024等2的整数次幂)。由于Rule_ID的匹配比较简单,跳过Rule Chooser(规则选择器)这一步,以Rule_ID的个数为一个,且字段向量偏移规则下对应的偏移表格为一个为例。
设定:N的值为64,K的值也为64,J的值也为4。
1、Field Extractor(字段提取器):通过Rule_ID进行索引,得到N个{Protocol_ID_x,PKT_OFFSET_x}。每个元素对通过相加,提取字节,得到一个64字节的Field Vector表。其值记为FV_0~FV_63;
2、Key Rule Chooser(关键字规则选择器):通过Rule_ID进行索引,得到如表10的bit位表的64个bit位的值:
Key_Rule_ID匹配出来的64个bit位为:
表10bit位表
bit位 | 63 | 62 | …… | 2 | 1 | 0 |
取值 | 1 | 0 | 0 | 1 | 0 | 1 |
其中,共有3个非0的比特位,即Key_Rule_ID_0、Key_Rule_ID_2、Key_Rule_ID_63;
3、Key Generator(关键字生成器):使用上面两步的输出作为输入。表11为第一偏移实际值表格,如表11所示:
表11第一偏移实际值表格
Key_Rule_ID_0(第0位二进制数)=1,所以:根据Key_Rule_ID的第0位为1,则从表10中取出第0行,将FV_OFFSET_0~FV_OFFSET_3对应的相关字段添加到关键字中:
Key={FV_1,FV_2,FV_3,FV_4};
其中FV_x代表Field Vector的第x个字节;
再分别取出表10的第2行、第63行,将相关字段添加到关键字:
Key={
FV_21,FV_22,FV_23,FV_24,//Key_Rule_ID_2为1
FV_63,FV_63,FV_63,FV_63,//Key_Rule_ID_63为1
}。
结合上述例子,以Rule_ID的个数为多个,且字段向量偏移规则下对应的偏移表格为多个为例,Rule_ID的个数与偏移表格的个数相同,在上述例子的基础上,增加Rule_ID=1时,表12为第二偏移实际值表格,如表12所示:
表12第二偏移实际值表格
同理,根据Rule_ID=1对应索引表12,以实现:
Key={
FV_4,FV_3,FV_2,FV_1, //Key_Rule_ID_0为1
FV_24,FV_23,FV_22,FV_21, //Key_Rule_ID_2为1
FV_63,FV_62,FV_61,FV_60 //Key_Rule_ID_63为1
}。
另外,针对表7的偏移长度不同,对应偏移实际值表格加入偏移长度,形成表13的第三偏移实际值表格,见表13:
表13第三偏移实际值表格
结合上述的例子,在Key_Rule_ID_0(第0位二进制数)=1,所以:根据Key_Rule_ID的第0位为1,则从表13中取出第0行,将
FV_OFFSET_0~FV_OFFSET_3对应的相关字段添加到关键字中:
Key={
//Key_Rule_ID_0为1,本行数据的总长度为2+1+2+3=8(单位长度)
FV_1+FV_2,FV_2,FV_3+FV_4,FV_4+FV_5+FV_6,
//Key_Rule_ID_2为1,本行数据的总长度为2+1+1+2=6(单位长度)
FV_21+FV_22,FV_22,FV_23,FV_24+FV_25,
//Key_Rule_ID_63为1,本行数据的总长度为1+1+1+1=4(单位长度)
FV_63,FV_63,FV_63,FV_63
}。
需要说明的是,上述的“FV_x+FV_y”,这里的“+”表示连接的意思,与表7中的“,”的含义相同。
对于本发明提供的一种数据报文的关键字提取方法的介绍请参照上述方法实施例,本发明在此不再赘述,其具有上述数据报文的关键字提取方法相同的有益效果。
上述详细描述了数据报文的关键字提取方法对应的各个实施例,在此基础上,本发明还公开与上述方法对应的数据报文的关键字提取装置,图8为本发明实施例提供的一种数据报文的关键字提取装置的结构图。如图8所示,数据报文的关键字提取装置包括:
获取模块11,用于获取当前协议的报文数据;
解析模块12,用于根据规则选择器对报文数据进行解析得到对应的规则编号信息;
提取模块13,用于分别根据字段提取规则和自定义变换规则对规则编号信息进行提取得到报文数据对应的字段向量和字段向量偏移矩阵;其中,自定义变换规则至少包括对关键字的长度掩码截取的关键字提取规则和索引字段向量的偏移地址的字段向量偏移规则;
确定模块14,用于根据字段向量和字段向量偏移矩阵确定关键字。
由于装置部分的实施例与上述的实施例相互对应,因此装置部分的实施例请参照上述方法部分的实施例描述,在此不再赘述。
对于本发明提供的一种数据报文的关键字提取装置的介绍请参照上述方法实施例,本发明在此不再赘述,其具有上述数据报文的关键字提取方法相同的有益效果。
图9为本发明实施例提供的另一种数据报文的关键字提取装置的结构图,如图9所示,该装置包括:
存储器21,用于存储计算机程序;
处理器22,用于执行计算机程序时实现数据报文的关键字提取方法的步骤。
本实施例提供的数据报文的关键字提取装置可以包括但不限于平板电脑、笔记本电脑或者台式电脑等。
其中,处理器22可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器22可以采用数字信号处理器(Digital Signal Processor,DSP)、FPGA、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器22也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(Central Processing Unit,CPU);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器22可以集成有图像处理器(GraphicsProcessing Unit,GPU),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器22还可以包括人工智能(Artificial Intelligence,AI)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器21可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器21还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器21至少用于存储以下计算机程序211,其中,该计算机程序被处理器22加载并执行之后,能够实现前述任一实施例公开的数据报文的关键字提取方法的相关步骤。另外,存储器21所存储的资源还可以包括操作系统212和数据213等,存储方式可以是短暂存储或者永久存储。其中,操作系统212可以包括Windows、Unix、Linux等。数据213可以包括但不限于数据报文的关键字提取方法所涉及到的数据等等。
在一些实施例中,数据报文的关键字提取装置还可包括有显示屏23、输入输出接口24、通信接口25、电源26以及通信总线27。
领域技术人员可以理解,图9中示出的结构并不构成对数据报文的关键字提取装置的限定,可以包括比图示更多或更少的组件。
处理器22通过调用存储于存储器21中的指令以实现上述任一实施例所提供的数据报文的关键字提取方法。
对于本发明提供的一种数据报文的关键字提取装置的介绍请参照上述方法实施例,本发明在此不再赘述,其具有上述数据报文的关键字提取方法相同的有益效果。
进一步的,本发明还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器22执行时实现如上述数据报文的关键字提取方法的步骤。
可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
对于本发明提供的一种计算机可读存储介质的介绍请参照上述方法实施例,本发明在此不再赘述,其具有上述数据报文的关键字提取方法相同的有益效果。
以上对本发明所提供的一种数据报文的关键字提取方法、数据报文的关键字提取装置及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (13)
1.一种数据报文的关键字提取方法,其特征在于,包括:
获取当前协议的报文数据;
根据规则选择器对所述报文数据进行解析得到对应的规则编号信息;
分别根据字段提取规则和自定义变换规则对所述规则编号信息进行提取得到所述报文数据对应的字段向量和字段向量偏移矩阵;其中,所述自定义变换规则至少包括对关键字的长度掩码截取的关键字提取规则和索引所述字段向量的偏移地址的字段向量偏移规则;
根据所述字段向量和所述字段向量偏移矩阵确定关键字;
其中,所述字段向量偏移规则的建立过程,包括:
预先建立字段向量偏移地址与关键字提取信息的第三映射关系或者字段向量偏移地址、所述字段向量偏移地址对应的长度值与所述关键字提取信息的第三映射关系,所述关键字提取信息基于所述关键字提取规则对所述规则编号信息提取得到;
根据第三映射关系确定偏移表格以建立所述字段向量偏移规则。
2.根据权利要求1所述的数据报文的关键字提取方法,其特征在于,所述报文数据包括报文类型数据和报文标记数据,其中所述报文标记数据至少包括报文方向标记数据和物理端口号对应的协议信息。
3.根据权利要求2所述的数据报文的关键字提取方法,其特征在于,所述规则选择器对应的规则选择表确定过程,包括:
预先建立各协议下的报文数据对应的所述报文类型数据、所述报文标记数据与规则编号信息的第一映射关系,其中相同的规则编号信息对应不同的所述报文类型数据或所述报文标记数据;
根据所述第一映射关系确定所述规则选择表。
4.根据权利要求3所述的数据报文的关键字提取方法,其特征在于,根据所述自定义变换规则对所述规则编号信息进行提取得到所述报文数据对应的所述字段向量偏移矩阵,包括:
根据所述关键字提取规则对所述规则编号信息进行提取得到关键字提取信息;
根据所述字段向量偏移规则对所述关键字提取信息进行处理得到所述字段向量偏移矩阵。
5.根据权利要求4所述的数据报文的关键字提取方法,其特征在于,所述关键字提取规则的建立过程,具体包括:
预先建立关键规则编号的属性信息与所述规则编号信息的第二映射关系,其中一个所述规则编号信息对应多个所述属性信息且各所述属性信息为一个字段;
根据所述第二映射关系确定bitmap表以完成所述关键字提取规则的建立;
对应地,所述根据所述关键字提取规则对所述规则编号信息进行提取得到关键字提取信息,包括:
根据所述bitmap表对所述规则编号信息进行处理得到初始关键字提取信息;
在所述初始关键字提取信息中根据有效标志位选取最终的所述关键字提取信息,其中所述有效标志位为非零比特位对应的关键字提取信息的标志位。
6.根据权利要求4所述的数据报文的关键字提取方法,其特征在于,所述根据所述字段向量偏移规则对所述关键字提取信息进行处理得到所述字段向量偏移矩阵,包括:
获取所述关键字提取信息对应所述字段向量偏移规则的目标行;
将所述目标行的字段信息加入预设偏移矩阵,直至所有所述目标行全部加入形成所述字段向量偏移矩阵。
7.根据权利要求4至6任意一项所述的数据报文的关键字提取方法,其特征在于,当所述规则编号信息为多个时,在所述根据所述关键字提取规则对所述规则编号信息进行提取得到关键字提取信息之后,还包括:
当所述规则编号信息为多个时,建立与所述规则编号信息一一对应的偏移表格;
根据所述字段向量偏移规则对所述关键字提取信息、各所述偏移表格和各所述规则编号信息进行处理得到所述字段向量偏移矩阵。
8.根据权利要求4至6任意一项所述的数据报文的关键字提取方法,其特征在于,当所述规则编号信息为多个时,在所述根据所述关键字提取规则对所述规则编号信息进行提取得到关键字提取信息之后,还包括:
当所述规则编号信息为多个时,获取各所述规则编号信息的规则属性信息;
根据映射选择器对所述规则属性信息进行映射处理得到对应的目标偏移表格;
根据所述映射选择器、所述字段向量偏移规则对所述关键字提取信息、所述目标偏移表格和各所述规则编号信息进行处理得到所述字段向量偏移矩阵;
其中,所述映射选择器的建立过程,包括:
将相同的所述规则属性信息归属于同一个偏移表格;
统计归属后的各所述偏移表格;
根据所述规则编号信息与所述归属后的各所述偏移表格建立所述映射选择器,其中所述映射选择器用于表征所述规则编号信息和所述归属后的各所述偏移表格的映射地址信息。
9.根据权利要求8所述的数据报文的关键字提取方法,其特征在于,根据所述字段向量偏移规则对所述关键字提取信息、各表格信息和各所述规则编号信息进行处理得到所述字段向量偏移矩阵,包括:
根据各所述规则编号信息与各所述表格信息进行筛选得到对应的初始目标行;
根据所述关键字提取信息与所述初始目标行的信息确定最终的目标行;
将所述最终的目标行的字段信息加入预设偏移矩阵,直至所有所述目标行全部加入形成所述字段向量偏移矩阵。
10.根据权利要求9所述的数据报文的关键字提取方法,其特征在于,在所述根据所述字段向量和所述字段向量偏移矩阵确定关键字之后,还包括:
获取所述关键字的长度值;
根据报文压缩算法对所述长度值压缩以得到定长的所述关键字。
11.一种数据报文的关键字提取装置,其特征在于,包括:
获取模块,用于获取当前协议的报文数据;
解析模块,用于根据规则选择器对所述报文数据进行解析得到对应的规则编号信息;
提取模块,用于分别根据字段提取规则和自定义变换规则对所述规则编号信息进行提取得到所述报文数据对应的字段向量和字段向量偏移矩阵;其中,所述自定义变换规则至少包括对关键字的长度掩码截取的关键字提取规则和索引所述字段向量的偏移地址的字段向量偏移规则;
确定模块,用于根据所述字段向量和所述字段向量偏移矩阵确定关键字;
其中,所述字段向量偏移规则的建立过程,包括:
预先建立字段向量偏移地址与关键字提取信息的第三映射关系或者字段向量偏移地址、所述字段向量偏移地址对应的长度值与所述关键字提取信息的第三映射关系,所述关键字提取信息基于所述关键字提取规则对所述规则编号信息提取得到;
根据第三映射关系确定偏移表格以建立所述字段向量偏移规则。
12.一种数据报文的关键字提取装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至10任一项所述的数据报文的关键字提取方法的步骤。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至10任一项所述的数据报文的关键字提取方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310470311.3A CN116471344B (zh) | 2023-04-27 | 2023-04-27 | 一种数据报文的关键字提取方法、装置及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310470311.3A CN116471344B (zh) | 2023-04-27 | 2023-04-27 | 一种数据报文的关键字提取方法、装置及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116471344A CN116471344A (zh) | 2023-07-21 |
CN116471344B true CN116471344B (zh) | 2023-11-21 |
Family
ID=87173358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310470311.3A Active CN116471344B (zh) | 2023-04-27 | 2023-04-27 | 一种数据报文的关键字提取方法、装置及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116471344B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6275861B1 (en) * | 1996-09-27 | 2001-08-14 | Pmc-Sierra, Inc. | Method and apparatus to identify flows in data systems |
CN110381054A (zh) * | 2019-07-16 | 2019-10-25 | 广东省新一代通信与网络创新研究院 | 报文解析方法、装置、设备及计算机可读存储介质 |
CN110942061A (zh) * | 2019-10-24 | 2020-03-31 | 泰康保险集团股份有限公司 | 文字识别方法、装置、设备和计算机可读介质 |
CN111221975A (zh) * | 2018-11-26 | 2020-06-02 | 珠海格力电器股份有限公司 | 一种字段提取方法、装置及计算机存储介质 |
CN111818009A (zh) * | 2020-05-25 | 2020-10-23 | 国网思极网安科技(北京)有限公司 | 一种针对基于mqtt协议的报文的防护方法和装置 |
CN112667750A (zh) * | 2019-09-30 | 2021-04-16 | 中兴通讯股份有限公司 | 一种报文类别的确定、识别方法及装置 |
WO2021164425A1 (zh) * | 2020-02-19 | 2021-08-26 | 京东方科技集团股份有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN113869041A (zh) * | 2020-06-30 | 2021-12-31 | 中国移动通信集团设计院有限公司 | 关键词组合提取方法、装置和电子设备 |
CN114462384A (zh) * | 2022-04-12 | 2022-05-10 | 北京大学 | 一种面向数字对象建模的元数据自动生成装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4497834B2 (ja) * | 2003-04-28 | 2010-07-07 | パイオニア株式会社 | 音声認識装置及び音声認識方法並びに音声認識用プログラム及び情報記録媒体 |
JP5370159B2 (ja) * | 2008-01-07 | 2013-12-18 | 日本電気株式会社 | 情報抽出装置及び情報抽出システム |
US8909642B2 (en) * | 2013-01-23 | 2014-12-09 | Splunk Inc. | Automatic generation of a field-extraction rule based on selections in a sample event |
-
2023
- 2023-04-27 CN CN202310470311.3A patent/CN116471344B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6275861B1 (en) * | 1996-09-27 | 2001-08-14 | Pmc-Sierra, Inc. | Method and apparatus to identify flows in data systems |
CN111221975A (zh) * | 2018-11-26 | 2020-06-02 | 珠海格力电器股份有限公司 | 一种字段提取方法、装置及计算机存储介质 |
CN110381054A (zh) * | 2019-07-16 | 2019-10-25 | 广东省新一代通信与网络创新研究院 | 报文解析方法、装置、设备及计算机可读存储介质 |
CN112667750A (zh) * | 2019-09-30 | 2021-04-16 | 中兴通讯股份有限公司 | 一种报文类别的确定、识别方法及装置 |
CN110942061A (zh) * | 2019-10-24 | 2020-03-31 | 泰康保险集团股份有限公司 | 文字识别方法、装置、设备和计算机可读介质 |
WO2021164425A1 (zh) * | 2020-02-19 | 2021-08-26 | 京东方科技集团股份有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN111818009A (zh) * | 2020-05-25 | 2020-10-23 | 国网思极网安科技(北京)有限公司 | 一种针对基于mqtt协议的报文的防护方法和装置 |
CN113869041A (zh) * | 2020-06-30 | 2021-12-31 | 中国移动通信集团设计院有限公司 | 关键词组合提取方法、装置和电子设备 |
CN114462384A (zh) * | 2022-04-12 | 2022-05-10 | 北京大学 | 一种面向数字对象建模的元数据自动生成装置 |
Non-Patent Citations (1)
Title |
---|
一种基于自适应关联熵的关键字提取算法;罗有志;陈征明;陈明;梅文涛;;计算机与现代化(04);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116471344A (zh) | 2023-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10764181B2 (en) | Pipelined evaluations for algorithmic forwarding route lookup | |
EP3958519A1 (en) | Methods for generating segment identification list and packet forwarding in srv6 network, apparatus, and system | |
CN110381054B (zh) | 报文解析方法、装置、设备及计算机可读存储介质 | |
JP4452183B2 (ja) | プログラマブル状態マシンのデータ構造を作成して入力単語連鎖を構文解析する方法、プログラマブル状態マシンのデータ構造を使用して入力単語連鎖に対応する結果として得られた値を検索する方法、ワイヤスピードのディープ・パケット処理を行う方法、ディープ・パケット処理のための装置、チップ埋め込み装置、およびプログラミング・コード命令を含むコンピュータ・プログラム(ディープ・パケット処理のための方法および装置) | |
US20150242429A1 (en) | Data matching based on hash table representations of hash tables | |
US20210160350A1 (en) | Generating programmatically defined fields of metadata for network packets | |
US8923298B2 (en) | Optimized trie-based address lookup | |
US7599364B2 (en) | Configurable network connection address forming hardware | |
WO2016106591A1 (zh) | 一种抽取数据报文的方法及装置 | |
US10153972B2 (en) | Method and apparatus for coding a user defined constant into a key composition rule using variable length command | |
Yang et al. | Fast OpenFlow table lookup with fast update | |
CN106170956A (zh) | 一种路由方法和设备 | |
CN113157254A (zh) | 基于p4语言实现的可编程硬件逻辑架构和逻辑实现方法 | |
US10601711B1 (en) | Lens table | |
CN109408517B (zh) | 规则的多维度搜索方法、装置、设备及可读存储介质 | |
KR20150146449A (ko) | 패킷 컨텐츠로부터 해시 입력을 형성하는 방법 및 장치 | |
SE531947C2 (sv) | Förfarande, anordning och system för flerfältsklassificering i ett datakommunikationsnätverk | |
CN116471344B (zh) | 一种数据报文的关键字提取方法、装置及介质 | |
TW201631935A (zh) | 用於利用超級鍵生成並行查找請求的方法和裝置 | |
CN115277553B (zh) | 一种流表存储方法、装置、设备和计算机可读存储介质 | |
US10511531B1 (en) | Enhanced lens distribution | |
US10355994B1 (en) | Lens distribution | |
US10795873B1 (en) | Hash output manipulation | |
EP4254834A1 (en) | Message transmission method and apparatus, and device, storage medium and system | |
CN114978986A (zh) | 一种数据传输方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |