CN114760369B - 一种协议元数据提取方法、装置、设备及存储介质 - Google Patents

一种协议元数据提取方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN114760369B
CN114760369B CN202210393134.9A CN202210393134A CN114760369B CN 114760369 B CN114760369 B CN 114760369B CN 202210393134 A CN202210393134 A CN 202210393134A CN 114760369 B CN114760369 B CN 114760369B
Authority
CN
China
Prior art keywords
protocol
metadata
item
extraction
load
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
Application number
CN202210393134.9A
Other languages
English (en)
Other versions
CN114760369A (zh
Inventor
季超
张葳
邓俊
冯小云
李开科
雷彦章
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dawning Network Technology Co ltd
Original Assignee
Dawning Network Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Dawning Network Technology Co ltd filed Critical Dawning Network Technology Co ltd
Priority to CN202210393134.9A priority Critical patent/CN114760369B/zh
Publication of CN114760369A publication Critical patent/CN114760369A/zh
Application granted granted Critical
Publication of CN114760369B publication Critical patent/CN114760369B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9057Arrangements for supporting packet reassembly or resequencing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/03Protocol definition or specification 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Abstract

本发明公开了一种协议元数据提取方法、装置、设备及存储介质。该方法包括:接收数据包,并识别所述数据包对应的目标协议;调用所述目标协议注册的协议处理函数,确定元数据提取方式;如果为特征匹配提取,则调用与目标协议标识对应的提取规则引擎扫描负载,提取元数据;如果为语法解析提取,则调用与目标协议标识对应的语法规则引擎,按照与目标协议标识对应的语法规则协议项的描述解析负载,提取元数据。本发明实施例的技术方案,通过调用提取规则引擎或者语法规则引擎,仅对部分涉及元数据的流量进行处理,提高了代码质量以及元数据提取的处理效率。

Description

一种协议元数据提取方法、装置、设备及存储介质
技术领域
本发明涉及数据通信技术领域,尤其涉及一种协议元数据提取方法、装置、设备及存储介质。
背景技术
元数据又称为中介数据,是一种用于描述数据属性信息的数据,后端的分析业务通常基于上报的元数据进行不同维度的关联处理。
现有技术中,针对每种协议编写代码实现协议所有的交互实现,通过处理协议下的所有流量,提取每种协议下的元数据。但是,这种元数据提取方式需要编写的代码量较大,开发效率较低,并且需要处理的数据量较大,导致元数据提取效率较低。
发明内容
本发明提供了一种协议元数据提取方法、装置、设备及存储介质,通过调用提取规则引擎或者语法规则引擎,仅对部分涉及元数据的流量进行处理,提高了代码质量以及元数据提取的处理效率。
根据本发明的一方面,提供了一种协议元数据提取方法,包括:
接收数据包,并识别所述数据包对应的目标协议;
调用所述目标协议注册的协议处理函数,确定元数据提取方式;
如果为特征匹配提取,则调用与目标协议标识对应的提取规则引擎扫描负载,提取元数据;
如果为语法解析提取,则调用与目标协议标识对应的语法规则引擎,按照与目标协议标识对应的语法规则协议项的描述解析负载,提取元数据。
可选的,在所述调用与目标协议标识对应的提取规则引擎扫描负载,提取元数据之前,还包括:
加载解析各个协议的元数据提取规则文件,创建与各协议标识对应的提取规则引擎,并建立协议标识与提取规则引擎之间的映射关系;
将所述提取规则引擎以及所述协议标识与提取规则引擎之间的映射关系同步至各个非一致性内存访问(Non-Uniform Memory Access,NUMA)节点。
采用上述技术方案,基于NUMA架构构建元数据提取规则引擎,充分利用CPU的多核特性,提高了根据特征匹配实现元数据提取的处理效率。
可选的,在所述调用与目标协议标识对应的语法规则引擎,按照与目标协议标识对应的语法规则协议项的描述解析负载,提取元数据之前,还包括:
加载解析各个协议的元数据语法规则描述文件,创建与各协议标识对应的语法规则协议项,并建立协议标识与语法规则协议项之间的映射关系;
将所述语法规则协议项以及所述协议标识与语法规则协议项之间的映射关系同步至各个NUMA节点。
采用上述技术方案,基于NUMA架构构建基于语法规则协议项的语法规则引擎,充分利用CPU的多核特性,提高了根据语法解析实现元数据提取的处理效率。
可选的,所述按照与目标协议标识对应的语法规则协议项的描述解析负载,提取元数据,包括:
遍历所述语法规则协议项中的基础项链表;
判断负载是否与基础项中的条件项描述信息一致;
如果一致,则获取所述基础项中的字段项链表对负载进行解析,提取元数据。
采用上述技术方案,针对协议元数据之间存在依赖的二进制流,定义一种通用的语法规则,根据语法规则中的条件项判断负载是否需要提取元数据,如果是,则按照字段项对负载进行处理,提取元数据,解决无法通过特征规则匹配,从元数据间存在依赖的二进制流中获取元数据的问题。
可选的,所述判断负载是否与基础项中的条件项描述信息一致,包括:
根据所述条件项描述信息中的偏移信息和长度信息,从负载中提取条件数据;
根据所述条件项描述信息中的数值信息和操作信息确定匹配条件,如果所述条件数据满足所述匹配条件,则确定负载与条件项描述信息一致;
否则,确定负载与条件项描述信息不一致。
采用上述技术方案,通过将解析偏移逻辑放到语法规则中,使得工作人员不需要具备开发经验,就可以依据元数据语法规则定义对协议的偏移和字段进行描述,大大提高了开发效率。同时,还可以避免由于偏移取值代码不严谨,导致程序挂掉的问题。
可选的,所述获取所述基础项中的字段项链表对负载进行解析,提取元数据,包括:
遍历所述基础项中的字段项链表;
根据字段项描述信息中的字段名称、字段类型和字段长度对负载进行处理,得到字段项对应的二进制信息;
根据字段描述信息中字段结果描述和字段操作描述对所述二进制信息进行处理,得到字段项对应的元数据。
采用上述技术方案,根据字段项描述信息中对元数据的描述,从负载中提取元数据的二进制信息,并对提取到的数据进行数据类型转换等处理,得到可以直接使用的协议元数据,避免后续使用时对协议元数据进一步处理。
可选的,所述调用所述目标协议注册的协议处理函数,确定元数据提取方式,包括:
执行所述目标协议注册的协议处理函数,判断当前数据流是否进行重组;
如果是,则按照设置的重组关联信息对接收的数据包重组;
如果重组结束,则调用所述目标协议注册的重组结束回调函数,确定提取元数据使用的引擎类型。
采用上述技术方案,通过每种协议根据协议元数据解析处理流程,注册协议处理函数、重组结束回调函数等函数,使得在输出协议所需元数据需要重组时,实现先对报文进行重组再进行元数据提取,保证元数据的正确提取。
根据本发明的另一方面,提供了一种协议元数据提取装置,包括:
协议识别模块,用于执行接收数据包,并识别所述数据包对应的目标协议;
协议处理模块,用于执行调用所述目标协议注册的协议处理函数,确定元数据提取方式;
特征匹配模块,用于执行如果为特征匹配提取,则调用与目标协议标识对应的提取规则引擎扫描负载,提取元数据;
语法解析模块,用于执行如果为语法解析提取,则调用与目标协议标识对应的语法规则引擎,按照与目标协议标识对应的语法规则协议项的描述解析负载,提取元数据。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的协议元数据提取方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的协议元数据提取方法。
本发明实施例的技术方案,通过接收数据包,并识别所述数据包对应的目标协议;调用所述目标协议注册的协议处理函数,确定元数据提取方式;如果为特征匹配提取,则调用与目标协议标识对应的提取规则引擎扫描负载,提取元数据;如果为语法解析提取,则调用与目标协议标识对应的语法规则引擎,按照与目标协议标识对应的语法规则协议项的描述解析负载,提取元数据,解决了现有技术中的元数据提取方式需要编写的代码较多,元数据提取效率较低的问题,取到了通过调用提取规则引擎或者语法规则引擎,仅对部分涉及元数据的流量进行处理,提高了代码质量以及元数据提取的处理效率有益效果。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例一提供的一种协议元数据提取方法的流程图;
图2是根据本发明实施例二提供的一种协议元数据提取方法的流程图;
图3是根据本发明实施例二适应的一种元数据语法规则引擎处理流程图;
图4是根据本发明实施例三提供的一种协议元数据提取装置的结构示意图;
图5是实现本发明实施例的协议元数据提取方法的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1是根据本发明实施例一提供的一种协议元数据提取方法的流程图,本实施例可适用于对多种协议快速准确地进行协议元数据提取的情况,该方法可以由协议元数据提取装置来执行,该装置可以采用硬件和/或软件的形式实现,并可配置于电子设备中。如图1所示,该方法包括:
S110、接收数据包,并识别所述数据包对应的目标协议。
其中,数据包是在网络中传输的二进制格式的单元,每个数据包包括两部分:控制信息组成的报文头和数据信息组成的报文负载。具体来说,报文中包含要发送的完整的数据信息,在传输过程中,为了提供通信性能和可靠性,报文会被分成多个更小的部分,在每个部分的前面加上一些必要的控制信息组成的报文头,就封装成数据包。
本实施例中,由于不同协议报文对应的元数据提取方式可能不同,因此在接收当前的数据包后,可以根据数据包的报文头中的指定字段,识别该数据包对应的目标协议,或者也可以采用其他协议识别技术,确定该数据包对应的协议类型。
S120、调用所述目标协议注册的协议处理函数,确定元数据提取方式。
本实施例中,由于每种协议的元数据解析处理流程都有差异,因此,可以预先定义协议元数据的基本处理流程,提供注册接口,不同的协议实现自己的接口处理函数,注册协议处理函数、重组结束回调函数以及超时处理函数等函数进行元数据处理。因此,在确定当前数据包的协议类型后,可以调用该协议注册的协议处理函数对报文进行处理,并确定提取元数据所使用的引擎类型。
其中,元数据是指协议流量中用户关注的一些字段信息,可以理解为是一组用来描述数据的信息组,该信息组中的一切信息都用于描述某个数据的某方面特征。
可选的,所述调用所述目标协议注册的协议处理函数,确定元数据提取方式,包括:执行所述目标协议注册的协议处理函数,判断当前数据流是否进行重组;如果是,则按照设置的重组关联信息对接收的数据包重组;如果重组结束,则调用所述目标协议注册的重组结束回调函数,确定提取元数据使用的引擎类型。
其中,数据流可以包括同一个报文被分割封装成的多个数据包。本实施例中,通过执行目标协议注册的协议处理函数,判断输出目标协议所需的元数据,是否需要对当前数据包所在的数据流进行报文重组。如果需要进行报文重组,则设置重组关联信息,包括重组的方向、开始的数据包序列号、重组结束方式等信息,并根据这些信息进入重组流程。后续接收的数据包直接进入重组流程,报文重组结束后,调用目标协议注册的重组结束回调函数,进一步确定提取元数据使用的引擎类型。如果不需要进行重组,则通过协议处理函数直接获取元数据使用的引擎类型。
采用上述技术方案,通过每种协议根据协议元数据解析处理流程,注册协议处理函数、重组结束回调函数等函数,使得在输出协议所需元数据需要重组时,实现先对报文进行重组再进行元数据提取,保证元数据的正确提取,避免元数据漏提取。
S130、如果为特征匹配提取,则调用与目标协议标识对应的提取规则引擎扫描负载,提取元数据。
本实施例中,如果协议报文可以通过特征串匹配得到元数据提取的起始位置、长度或者结束位置,则从协议处理函数中获取的引擎类型为提取规则引擎。因此,可以调用与目标协议标识对应的提取规则引擎,基于正则表达式匹配库,通过正则规则匹配获取到数据包的报文负载中与元数据相关的信息,同时可以根据正则规则中的数据结果描述,对提取到信息进行相应处理,例如数据类型转换、解码等,得到可以直接使用的协议元数据。
可选的,在所述调用与目标协议标识对应的提取规则引擎扫描负载,提取元数据之前,还包括:加载解析各个协议的元数据提取规则文件,创建与各协议标识对应的提取规则引擎,并建立协议标识与提取规则引擎之间的映射关系;将所述提取规则引擎以及所述协议标识与提取规则引擎之间的映射关系同步至各个NUMA节点。
其中,一个NUMA节点内部是由一个处理器核心和它所有的本地内存组成的,每个NUMA节点直接访问自己管理的内存的速度,比通过通道访问其他NUMA节点的内存的速度快得多。
本实施例中,可以在主线程中,加载解析不同协议的元数据提取规则文件,创建与各协议标识对应的提取规则引擎。其中,提取规则包含匹配特征串以及匹配之后执行的操作两部分。然后各个线程从本地NUMA节点申请内存,将主线程中的提取规则引擎的相关数据结构拷贝到各个NUMA节点的NUMA内存中,创建线程级的提取规则引擎。使得线程进行报文处理时,可以调用本地的提取规则引擎执行提取规则匹配。
采用上述技术方案,由于多核处理器可同时运行多个任务,因此为了提高元数据提取效率,可以将一个元数据提取任务分为多个线程执行。为了充分利用CPU的多核特性,可以基于NUMA架构,构建线程级的元数据提取规则引擎,使得每个线程处理报文时,可以通过访问本地NUMA内存,调用本地提取规则引擎提取元数据。从而,根据处理器核心访问所在NUMA节点内存的速度比访问其他节点内存的速度更快这一特点,提高根据特征匹配实现元数据提取的处理效率。
S140、如果为语法解析提取,则调用与目标协议标识对应的语法规则引擎,按照与目标协议标识对应的语法规则协议项的描述解析负载,提取元数据。
本实施例中,如果协议报文是二进制流,并且协议元数据之间存在依赖,则从协议处理函数中获取的引擎类型为语法规则引擎。因此,可以在接收到报文负载时,调用与目标协议标识对应的语法规则引擎,即根据目标协议标识找到对应的语法规则协议项,按照该语法规则协议项的描述进行条件判断,如果满足条件,则按照字段项对报文负载顺序往下解析,提取元数据信息。其中,语法规则中定义了条件项和字段项。
可选的,在所述调用与目标协议标识对应的语法规则引擎,按照与目标协议标识对应的语法规则协议项的描述解析负载,提取元数据之前,还包括:加载解析各个协议的元数据语法规则描述文件,创建与各协议标识对应的语法规则协议项,并建立协议标识与语法规则协议项之间的映射关系;将所述语法规则协议项以及所述协议标识与语法规则协议项之间的映射关系同步至各个NUMA节点。
本实施例中,可以在主线程中,加载解析各个协议的元数据语法规则描述文件,创建与各协议标识对应的语法规则协议项,即匹配条件与字段项的组合关系项,并建立协议标识与语法规则协议项之间的映射关系。然后各个线程从本地NUMA节点申请内存,将主线程中的语法规则协议项的相关数据结构拷贝到各个NUMA节点的NUMA内存中,创建线程级的语法规则引擎。使得线程进行报文处理时,可以调用本地的语法规则引擎执行元数据提取。
采用上述技术方案,由于多核处理器可同时运行多个任务,因此为了提高元数据提取效率,可以将一个元数据提取任务分为多个线程执行。为了充分利用CPU的多核特性,可以基于NUMA架构,构建线程级的元数据语法规则引擎,使得每个线程处理报文时,可以通过访问本地NUMA内存,调用本地语法规则引擎提取元数据。从而,根据处理器核心访问所在NUMA节点内存的速度比访问其他节点内存的速度更快这一特点,提高根据语法解析实现元数据提取的处理效率。
本发明实施例的技术方案,通过接收数据包,并识别所述数据包对应的目标协议;调用所述目标协议注册的协议处理函数,确定元数据提取方式;如果为特征匹配提取,则调用与目标协议标识对应的提取规则引擎扫描负载,提取元数据;如果为语法解析提取,则调用与目标协议标识对应的语法规则引擎,按照与目标协议标识对应的语法规则协议项的描述解析负载,提取元数据,解决了现有技术中的元数据提取方式需要编写的代码较多,元数据提取效率较低的问题,取到了通过调用提取规则引擎或者语法规则引擎,仅对部分涉及元数据的流量进行处理,提高了代码质量以及元数据提取的处理效率有益效果。
实施例二
图2为本发明实施例二提供的一种协议元数据提取方法的流程图,本实施例在上述实施例的基础上,进一步提供了所述按照与目标协议标识对应的语法规则协议项的描述解析负载,提取元数据的具体步骤。如图2所示,该方法包括:
S210、基于NUMA架构,构建提取规则引擎和基于语法规则协议项的语法规则引擎。
本实施例中,根据协议交互的报文是否可以通过特征规则匹配获取元数据,将元数据提取分为特征匹配提取和语法解析提取两种实现方式。针对特征匹配提取方式,加载解析各个协议的元数据提取规则文件,创建与各协议标识对应的提取规则引擎,建立协议标识与提取规则引擎之间的映射关系;根据NUMA架构特性,将所述提取规则引擎相关数据结构,同步至各线程在本地NUMA节点申请的NUMA内存中,创建线程级提取规则引擎。
针对语法解析提取方式,通过分析协议传输负载的组织方式,定义一套语法规则描述。加载各协议的元数据语法规则描述文件,创建与各协议标识对应的语法规则协议项,并建立协议标识与语法规则协议项之间的映射关系;根据NUMA架构特性,将语法规则协议项相关数据结构,同步至各线程在本地NUMA节点申请的NUMA内存中,创建线程级语法规则引擎。
采用上述技术方案,通过将协议的交互逻辑和组织方式分离,无需每个协议都编写代码完成协议所有的交互实现,对协议的所有流量进行处理,通过调用提取规则引擎或者语法规则引擎,共用这部分代码逻辑,每个协议只需根据实际提取元数据的需要,完成一些交互部分的逻辑代码实现即可,大大提高了代码质量。
S220、接收数据包,并识别所述数据包对应的目标协议。
S230、调用所述目标协议注册的协议处理函数,判断当前数据流是否进行重组。
本实施例中,如果是,则执行步骤S240,设置重组关联信息,并按照重组关联信息对接收的数据包重组;否则,执行步骤S250,直接通过协议处理函数确定元数据提取方式。
S240、按照设置的重组关联信息对接收的数据包重组,并在重组结束后调用所述目标协议注册的重组结束回调函数。
S250、确定目标协议的元数据提取方式。
本实施例中,如果目标协议通过规则提取引擎进行元数据提取,即采用特征匹配提取方式,则执行步骤S260;如果目标协议通过语法规则引擎进行元数据提取,即采用语法解析提取方式,则执行步骤S270。
S260、如果为特征匹配提取,则调用与目标协议标识对应的提取规则引擎扫描负载,提取元数据。
S270、如果为语法解析提取,则调用与目标协议标识对应的语法规则引擎,按照与目标协议标识对应的语法规则协议项的描述解析负载,提取元数据。
其中,一个语法规则协议项包括一个基础项的链表,一种协议需要提取的元数据可以用多个基础项描述。基础项是条件项链表和字段项链表的组合,用于表示满足某个条件,就可以按照这个条件项对应的字段项链表对报文负载进行偏移处理。
可选的,所述按照与目标协议标识对应的语法规则协议项的描述解析负载,提取元数据,包括:遍历所述语法规则协议项中的基础项链表;判断负载是否与基础项中的条件项描述信息一致;如果一致,则获取所述基础项中的字段项链表对负载进行解析,提取元数据。
本实施例中,如图3所示,获取语法规则协议项后,通过遍历语法规则协议项中的基础项链表,依次将每一个基础项作为当前处理的目标基础项。获取目标基础项中的条件项链表信息,判断报文负载是否与条件项描述信息一致,如果不一致,则处理下一个基础项,直至所有基础项遍历完成,跳出循环结束;如果一致,则获取目标基础项中的字段项链表。通过遍历字段项链表对报文负载进行解析处理,提取元数据。
示例性的,假设tls协议交互过程中涉及Client_Hello报文、Server Hello报文以及Certificate报文等,则这些交互过程中不同类型的报文,分别对应到tls协议的语法协议项中不同的基础项。每个基础项中的条件项链表,用于判断当前处理的报文负载是否是需要处理的报文。假设Client_Hello报文中有待提取的协议版本信息、会话ID信息、密码套件信息和server_name信息等,这些不同的信息对应的是一个个的字段,可以使用基础项中的字段项来表示。
采用上述技术方案,针对协议元数据之间存在依赖的二进制流,定义一种通用的语法规则,根据语法规则中的条件项判断负载是否需要提取元数据,如果是,则按照字段项对负载进行处理,提取元数据,解决无法通过特征规则匹配,从元数据间存在依赖的二进制流中获取元数据的问题。
可选的,所述判断负载是否与基础项中的条件项描述信息一致,包括:根据所述条件项描述信息中的偏移信息和长度信息,从负载中提取条件数据;根据所述条件项描述信息中的数值信息和操作信息确定匹配条件,如果所述条件数据满足所述匹配条件,则确定负载与条件项描述信息一致;否则,确定负载与条件项描述信息不一致。
示例性的,假设语法规则条件项的描述信息中,偏移信息为4字节,长度信息为2字节,数值信息为100,操作信息为判断偏移获取的数据是否与数值信息相等。则,从报文负载的起始位置偏移4字节开始,提取长度为2个字节的数据。如果提取的数据值等于100,则确定负载与条件项描述信息一致,即认为报文负载满足条件,可以根据该条件项对应的字段项链表对报文负载进行元数据提取处理。如果提取的数据值不等于100,则确定负载与条件项描述信息不一致,即认为报文负载不满足条件,不能根据该条件项对应的字段项链表对报文负载进行元数据提取处理。
采用上述技术方案,通过将解析偏移逻辑放到语法规则中,使得工作人员不需要具备开发经验,就可以依据元数据语法规则定义对协议的偏移和字段进行描述,大大提高了开发效率。同时,还可以避免由于偏移取值代码不严谨,导致程序挂掉的问题。
可选的,所述获取所述基础项中的字段项链表对负载进行解析,提取元数据,包括:遍历所述基础项中的字段项链表;根据字段项描述信息中的字段名称、字段类型和字段长度对负载进行处理,得到字段项对应的二进制信息;根据字段描述信息中字段结果描述和字段操作描述对所述二进制信息进行处理,得到字段项对应的元数据。
本实施例中,如图3所示,获取字段项描述信息中用于提取数据的字段名称、字段类型、字段长度信息,例如,“field_name”:“session id len”,表示当前字段的字段名称为会话ID长度,“value”:{“type”:“direct”},表示当前字段在报文负载中是二进制类型,“van_len”:{“fix_len”:8},表示当前字段占用8位,长度是1个字节。其中,也可以获取其他需要的信息用于数据提取,例如,“exist”:{“type”:“fix”},表示当前字段在报文负载的当前位置固定出现。
根据这些信息获取到字段项对应的二进制信息后,根据字段描述信息中字段结果描述和字段操作描述对所述二进制信息进行处理,得到字段项对应的元数据。例如,“data_decode”:{“func_name”:“decode_bin2hex”},表示对提取到的数据调用decode_bin2hex函数,按照16进制输出;其中,根据不同的输出场景需要,可调用不同的注册函数;“actions”:{“func_name”:“action_set_index”},表示要对数据结果做的处理操作,其中,action_set_index表示将提取到的字段值保存到数组中,提供给其他字段使用。
采用上述技术方案,根据字段项描述信息中对元数据的描述,从负载中提取指定数据,并对提取到的数据进行数据类型转换等处理,得到可以直接使用的协议元数据,避免后续使用时对协议元数据进一步处理。
本发明实施例的技术方案,基于NUMA架构,构建提取规则引擎和基于语法规则协议项的语法规则引擎;在接收数据包后,识别数据包对应的目标协议,如果为特征匹配提取,则调用与目标协议标识对应的提取规则引擎提取元数据;如果为语法解析提取,则调用语法规则引擎,按照对应的语法规则协议项的描述解析负载,提取元数据,解决了现有技术中的元数据提取方式需要编写的代码较多,元数据提取效率较低的问题,通过将协议的交互逻辑和组织方式分离,不同的协议共用提取规则引擎或者语法规则引擎的代码逻辑,并且仅对部分涉及元数据的流量进行处理,每个协议只需根据实际提取元数据的需要,完成交互部分的逻辑代码实现,提高了代码质量以及元数据提取效率。
实施例三
图4为本发明实施例三提供的一种协议元数据提取装置的结构示意图。如图4所示,该装置包括:
协议识别模块410,用于执行接收数据包,并识别所述数据包对应的目标协议;
协议处理模块420,用于执行调用所述目标协议注册的协议处理函数,确定元数据提取方式;
特征匹配模块430,用于执行如果为特征匹配提取,则调用与目标协议标识对应的提取规则引擎扫描负载,提取元数据;
语法解析模块440,用于执行如果为语法解析提取,则调用与目标协议标识对应的语法规则引擎,按照与目标协议标识对应的语法规则协议项的描述解析负载,提取元数据。
可选的,所述装置还包括:提取规则引擎创建模块,用于执行在所述调用与目标协议标识对应的提取规则引擎扫描负载,提取元数据之前,
加载解析各个协议的元数据提取规则文件,创建与各协议标识对应的提取规则引擎,并建立协议标识与提取规则引擎之间的映射关系;
将所述提取规则引擎以及所述协议标识与提取规则引擎之间的映射关系同步至各个非一致性内存访问NUMA节点。
可选的,所述装置还包括:语法规则引擎创建模块,用于执行在所述调用与目标协议标识对应的语法规则引擎,按照与目标协议标识对应的语法规则协议项的描述解析负载,提取元数据之前,
加载解析各个协议的元数据语法规则描述文件,创建与各协议标识对应的语法规则协议项,并建立协议标识与语法规则协议项之间的映射关系;
将所述语法规则协议项以及所述协议标识与语法规则协议项之间的映射关系同步至各个NUMA节点。
可选的,语法解析模块440,包括:
遍历模块,用于执行遍历所述语法规则协议项中的基础项链表;
判断模块,用于执行判断负载是否与基础项中的条件项描述信息一致;
解析模块,用于执行如果一致,则获取所述基础项中的字段项链表对负载进行解析,提取元数据。
可选的,所述解析模块,用于执行:
根据所述条件项描述信息中的偏移信息和长度信息,从负载中提取条件数据;
根据所述条件项描述信息中的数值信息和操作信息确定匹配条件,如果所述条件数据满足所述匹配条件,则确定负载与条件项描述信息一致;
否则,确定负载与条件项描述信息不一致。
可选的,所述解析模块,用于执行:
遍历所述基础项中的字段项链表;
根据字段项描述信息中的字段名称、字段类型和字段长度对负载进行处理,得到字段项对应的二进制信息;
根据字段描述信息中字段结果描述和字段操作描述对所述二进制信息进行处理,得到字段项对应的元数据。
可选的,所述协议处理模块420,用于执行:
执行所述目标协议注册的协议处理函数,判断当前数据流是否进行重组;
如果是,则按照设置的重组关联信息对接收的数据包重组;
如果重组结束,则调用所述目标协议注册的重组结束回调函数,确定提取元数据使用的引擎类型。
本发明实施例所提供的协议元数据提取装置可执行本发明任意实施例所提供的协议元数据提取方法,具备执行方法相应的功能模块和有益效果。
实施例四
图5示出了可以用来实施本发明的实施例的电子设备10的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图5所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如协议元数据提取方法。
在一些实施例中,协议元数据提取方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的协议元数据提取方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行协议元数据提取方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***的***(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的***和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (9)

1.一种协议元数据提取方法,其特征在于,包括:
接收数据包,并识别所述数据包对应的目标协议;
调用所述目标协议注册的协议处理函数,确定元数据提取方式;
如果为特征匹配提取,则调用与目标协议标识对应的提取规则引擎扫描负载,提取元数据;
如果为语法解析提取,则调用与目标协议标识对应的语法规则引擎,按照与目标协议标识对应的语法规则协议项的描述解析负载,提取元数据;
其中,所述按照与目标协议标识对应的语法规则协议项的描述解析负载,提取元数据,包括:
遍历所述语法规则协议项中的基础项链表;
判断负载中的条件数据是否与基础项中的条件项描述信息对应的匹配条件一致;
如果一致,则获取所述基础项中的字段项链表对负载进行解析,提取元数据。
2.根据权利要求1所述的方法,其特征在于,在所述调用与目标协议标识对应的提取规则引擎扫描负载,提取元数据之前,还包括:
加载解析各个协议的元数据提取规则文件,创建与各协议标识对应的提取规则引擎,并建立协议标识与提取规则引擎之间的映射关系;
将所述提取规则引擎以及所述协议标识与提取规则引擎之间的映射关系同步至各个非一致性内存访问NUMA节点。
3.根据权利要求1所述的方法,其特征在于,在所述调用与目标协议标识对应的语法规则引擎,按照与目标协议标识对应的语法规则协议项的描述解析负载,提取元数据之前,还包括:
加载解析各个协议的元数据语法规则描述文件,创建与各协议标识对应的语法规则协议项,并建立协议标识与语法规则协议项之间的映射关系;
将所述语法规则协议项以及所述协议标识与语法规则协议项之间的映射关系同步至各个NUMA节点。
4.根据权利要求1所述的方法,其特征在于,所述判断负载中的条件数据是否与基础项中的条件项描述信息对应的匹配条件一致,包括:
根据所述条件项描述信息中的偏移信息和长度信息,从负载中提取条件数据;
根据所述条件项描述信息中的数值信息和操作信息确定匹配条件,如果所述条件数据满足所述匹配条件,则确定负载中的条件数据与条件项描述信息对应的匹配条件一致;
否则,确定负载中的条件数据与条件项描述信息对应的匹配条件不一致。
5.根据权利要求1所述的方法,其特征在于,所述获取所述基础项中的字段项链表对负载进行解析,提取元数据,包括:
遍历所述基础项中的字段项链表;
根据字段项描述信息中的字段名称、字段类型和字段长度对负载进行处理,得到字段项对应的二进制信息;
根据字段描述信息中字段结果描述和字段操作描述对所述二进制信息进行处理,得到字段项对应的元数据。
6.根据权利要求1所述的方法,其特征在于,所述调用所述目标协议注册的协议处理函数,确定元数据提取方式,包括:
执行所述目标协议注册的协议处理函数,判断当前数据流是否进行重组;
如果是,则按照设置的重组关联信息对接收的数据包重组;
如果重组结束,则调用所述目标协议注册的重组结束回调函数,确定提取元数据使用的引擎类型。
7.一种协议元数据提取装置,其特征在于,包括:
协议识别模块,用于执行接收数据包,并识别所述数据包对应的目标协议;
协议处理模块,用于执行调用所述目标协议注册的协议处理函数,确定元数据提取方式;
特征匹配模块,用于执行如果为特征匹配提取,则调用与目标协议标识对应的提取规则引擎扫描负载,提取元数据;
语法解析模块,用于执行如果为语法解析提取,则调用与目标协议标识对应的语法规则引擎,按照与目标协议标识对应的语法规则协议项的描述解析负载,提取元数据;
其中,所述语法解析模块,用于执行:
遍历所述语法规则协议项中的基础项链表;
判断负载中的条件数据是否与基础项中的条件项描述信息对应的匹配条件一致;
如果一致,则获取所述基础项中的字段项链表对负载进行解析,提取元数据。
8.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的协议元数据提取方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-6中任一项所述的协议元数据提取方法。
CN202210393134.9A 2022-04-14 2022-04-14 一种协议元数据提取方法、装置、设备及存储介质 Active CN114760369B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210393134.9A CN114760369B (zh) 2022-04-14 2022-04-14 一种协议元数据提取方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210393134.9A CN114760369B (zh) 2022-04-14 2022-04-14 一种协议元数据提取方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN114760369A CN114760369A (zh) 2022-07-15
CN114760369B true CN114760369B (zh) 2023-12-19

Family

ID=82331053

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210393134.9A Active CN114760369B (zh) 2022-04-14 2022-04-14 一种协议元数据提取方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN114760369B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115314570B (zh) * 2022-10-12 2023-01-03 深圳华锐分布式技术股份有限公司 基于协议开发框架的数据下发方法、装置、设备及介质
WO2024086973A1 (zh) * 2022-10-24 2024-05-02 华为技术有限公司 数据处理方法、装置以及智能驾驶设备
CN116796782A (zh) * 2023-05-04 2023-09-22 北京百度网讯科技有限公司 二维码的生成方法、识别方法、装置、设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104038389A (zh) * 2014-06-19 2014-09-10 高长喜 多重应用协议识别方法和装置
CN110336798A (zh) * 2019-06-19 2019-10-15 南京中新赛克科技有限责任公司 一种基于dpi的报文匹配过滤方法及其装置
CN111580931A (zh) * 2020-05-10 2020-08-25 江苏省互联网行业管理服务中心 支持多元协议变量的组合表达式的匹配规则引擎
CN112511551A (zh) * 2020-12-08 2021-03-16 中国船舶重工集团公司第七一六研究所 面向多种类型数据流的通信应用层协议解析方法及***
CN112751845A (zh) * 2020-12-28 2021-05-04 北京恒光信息技术股份有限公司 网络协议解析方法、***及装置
CN112860727A (zh) * 2021-02-20 2021-05-28 平安科技(深圳)有限公司 基于大数据查询引擎的数据查询方法、装置、设备及介质
CN112887280A (zh) * 2021-01-13 2021-06-01 中国人民解放军国防科技大学 一种基于自动机的网络协议元数据提取***及方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10504200B2 (en) * 2014-03-13 2019-12-10 Verance Corporation Metadata acquisition using embedded watermarks
WO2017119888A1 (en) * 2016-01-07 2017-07-13 Trend Micro Incorporated Metadata extraction
US10560407B2 (en) * 2016-10-06 2020-02-11 Sap Se Payload description for computer messaging
US10885007B2 (en) * 2017-07-11 2021-01-05 International Business Machines Corporation Custom metadata extraction across a heterogeneous storage system environment
US11106716B2 (en) * 2017-11-13 2021-08-31 Accenture Global Solutions Limited Automatic hierarchical classification and metadata identification of document using machine learning and fuzzy matching
US20210194894A1 (en) * 2019-12-23 2021-06-24 Cisco Technology, Inc. Packet metadata capture in a software-defined network

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104038389A (zh) * 2014-06-19 2014-09-10 高长喜 多重应用协议识别方法和装置
CN110336798A (zh) * 2019-06-19 2019-10-15 南京中新赛克科技有限责任公司 一种基于dpi的报文匹配过滤方法及其装置
CN111580931A (zh) * 2020-05-10 2020-08-25 江苏省互联网行业管理服务中心 支持多元协议变量的组合表达式的匹配规则引擎
CN112511551A (zh) * 2020-12-08 2021-03-16 中国船舶重工集团公司第七一六研究所 面向多种类型数据流的通信应用层协议解析方法及***
CN112751845A (zh) * 2020-12-28 2021-05-04 北京恒光信息技术股份有限公司 网络协议解析方法、***及装置
CN112887280A (zh) * 2021-01-13 2021-06-01 中国人民解放军国防科技大学 一种基于自动机的网络协议元数据提取***及方法
CN112860727A (zh) * 2021-02-20 2021-05-28 平安科技(深圳)有限公司 基于大数据查询引擎的数据查询方法、装置、设备及介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
网络科技资源平台中元数据的设计与实现;高妮;周明全;耿国华;贺毅岳;;计算机工程与应用(25);全文 *

Also Published As

Publication number Publication date
CN114760369A (zh) 2022-07-15

Similar Documents

Publication Publication Date Title
CN114760369B (zh) 一种协议元数据提取方法、装置、设备及存储介质
CN115567589B (zh) Json数据的压缩传输方法、装置、设备及存储介质
CN112154420A (zh) 自动智能云服务测试工具
CN114428674A (zh) 任务调度方法、装置、设备以及存储介质
CN113568938A (zh) 数据流处理方法、装置、电子设备及存储介质
CN113641544B (zh) 用于检测应用状态的方法、装置、设备、介质和产品
CN117201340A (zh) 一种报文特征识别方法、装置、设备及存储介质
CN115883647B (zh) 业务日志记录方法、***、装置、终端、服务器及介质
CN116126719A (zh) 接口测试方法、装置、电子设备及存储介质
CN116303013A (zh) 源码分析方法、装置、电子设备及存储介质
CN112883088A (zh) 一种数据处理方法、装置、设备及存储介质
CN112130860B (zh) Json对象解析方法、装置、电子设备及存储介质
CN110896391B (zh) 一种报文处理方法和装置
CN114500105A (zh) 一种网络包的拦截方法、装置、设备及存储介质
CN114760256B (zh) 数据处理方法、装置、设备及存储介质
CN116827411B (zh) 一种载荷数据解析方法、装置、电子设备和存储介质
CN113132480B (zh) 一种数据传输方法、装置和***
CN115934101A (zh) 一种接口文档生成方法、装置、介质以及电子设备
CN118170430A (zh) 一种调用链路的处理方法、装置、设备及存储介质
CN107798060B (zh) 一种实时流式数据处理应用软件特征识别方法
CN117032712A (zh) 流水线编译构建方法、装置、电子设备和存储介质
CN117979210A (zh) 音频传输方法、装置、电子设备及存储介质
CN115859300A (zh) 一种漏洞检测方法、装置、电子设备及存储介质
CN116628383A (zh) 页面跳转方法、装置、电子设备及存储介质
CN117278648A (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