CN112217765A - 报文解析方法和装置 - Google Patents
报文解析方法和装置 Download PDFInfo
- Publication number
- CN112217765A CN112217765A CN201910620953.0A CN201910620953A CN112217765A CN 112217765 A CN112217765 A CN 112217765A CN 201910620953 A CN201910620953 A CN 201910620953A CN 112217765 A CN112217765 A CN 112217765A
- Authority
- CN
- China
- Prior art keywords
- message
- analysis
- matching
- strategy
- key value
- 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.)
- Granted
Links
Images
Classifications
-
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例公开了一种报文解析方法和装置。所述方法包括:识别已获取到报文的接收端口;根据所述报文的接收端口,从预先存储的两个类别的解析策略中,确定所述报文对应的解析策略;采用确定的解析策略,对所述报文进行解析操作。
Description
技术领域
本申请涉及信息处理领域,尤指一种报文解析方法和装置。
背景技术
在通信网络中,需要对各种报文进行识别和分析,解析到相应报文头信息,例如MAC(Media Access Control,媒体访问控制)地址、IP(Internet Protocol Address,网际协议)地址、MPLS(Multi-Protocol Label Switching,多协议标签交换)标签值,供报文转发和处理。
在相关技术中,报文解析方法主要包括两种:硬解析和可编程解析;其中:
硬解析是指对报文按层次识别协议类型,给出每个层次的偏移量,根据各个层次偏移量固定偏移提取报文内容,用于报文转发处理。上述功能采用硬件固定逻辑实现,具有实现简单,逻辑资源小等优点,但是,也存在支持的报文类型有限,不支持新业务的扩展的缺点。
可编程解析是指通过微码控制,从报文里提取key值,与已配置的模板进行匹配,匹配命中后,对报文进行操作;其中,key值一般包括协议类型以及其他用户感兴趣的字段。如果有新增的报文类型需要解析,只需把这种新业务类型配置到匹配模板,提取新业务的key值去匹配,就可完成对新业务的支持,具有扩展功能强,解析灵活的优势,但是也存在微码占用资源较大,代价较高的劣势。
因此,如何提供一个既节省微码资源又有很好的扩展性的报文解析方案是亟待解决的问题。
发明内容
为了解决上述技术问题,本申请实施例提供了一种报文解析方法和装置,为实现微码资源的占用与扩展性的折中的提供方案基础。
为了达到本申请目的,本申请实施例提供了一种报文解析方法,包括:
识别已获取到报文的接收端口;
根据所述报文的接收端口,从预先存储的两个类别的解析策略中,确定所述报文对应的解析策略;
采用确定的解析策略,对所述报文进行解析操作。
在一个示例性实施例中,所述两个类别的解析策略中一个为符合预设的微码资源占用策略,另一个符合预设的业务扩展性策略。
在一个示例性实施例中,所述符合预设的微码资源占用策略的解析策略为硬解析策略;
所述符合预设的业务扩展性策略的解析策略为可编程解析策略;其中:
所述硬解析策略包括:按照预设的不同报文的偏移量位置,确定所述报文在执行数据提取操作的偏移量位置信息;按照所述偏移量位置,执行数据提取操作;
所述可编程解析策略包括:从所述报文获取关键key值;将所述key值与预先存储的模板进行匹配;如果匹配操作的结果为命中,则执行数据提取操作。
在一个示例性实施例中,所述根据所述报文的接收端口,从预先存储的两个类别的解析策略中,确定所述报文对应的解析策略,包括:
判断所述报文的接收端口是否为预设的专用端口,所述专用端口为硬件或服务的通信端口;
如果所述报文的接收端口为专用端口,则确定对所述报文使用所述符合预设的微码资源占用策略的解析策略;否则,确定对所述报文使用符合预设的业务扩展性策略的解析策略。
在一个示例性实施例中,所述采用确定的解析策略,对所述报文进行解析操作,包括:
在利用所述报文对应的key值进行匹配操作后,如果匹配操作结果为命中,则获取对所述报文中内容的管理命令;
根据所述管理命令的内容,硬解析对所述报文中的内容进行处理。
在一个示例性实施例中,所述管理指令包括用于对报文中的内容进行搬移、赋值和移位中至少一个种类的运算命令。
在一个示例性实施例中,所述根据所述管理命令的内容,对所述报文中的内容进行处理,包括:
在所述管理命令的数量为至少两个时,采用并行的方式响应所述管理命令。
在一个示例性实施例中,所述根据所述管理命令的内容,对所述报文中的内容进行处理之后,所述方法还包括:
存储对预设内容的处理结果,并记录所述处理结果的位置信息以及所述内容中所包括的字段的对应关系;
根据所述对应关系,对所述报文进行转发操作。
在一个示例性实施例中,所述利用所述报文对应的key值进行匹配操作,包括:
在获取到报文对应的key值后,利用所述key值进行第i级对应的解析规则的匹配,如果所述报文的key值在第i级对应的匹配操作结果为命中,则获取新生成的key值,利用新生成的key值进行第i+1级的匹配操作;如果第i级对应的匹配操作结果为未命中,则利用所述报文的key值进行第i+1级的匹配操作,以此类推,直到执行完全部的解析规则为止,其中i小于或等于N的自然数,其中N表示解析操作的等级的总数,N为自然数。
一种报文解析装置,包括处理器和存储器,其中所述存储器存储有计算机程序,所述处理器调用所述存储器中的计算机程序以实现上文任一所述的方法。
本申请实施例提供的实施例,识别已获取到报文的接收端口,根据所述报文的接收端口,从预先存储的两个类别的解析策略中,确定所述报文对应的解析策略,再采用确定的解析策略,对所述报文进行解析操作,实现基于接收端口,选择两个类别的解析策略共存的目的,为实现微码资源的占用与扩展性的折中的提供方案基础。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1为本申请实施例提供的报文解析方法的流程图;
图2为本申请实施例一提供的报文解析方法的流程图;
图3为本申请实施例提供的每级匹配模块利用key值执行匹配操作的流程示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1为本申请实施例提供的报文解析方法的流程图。图1所示方法包括:
步骤101、识别已获取到报文的接收端口;
在一个示例性实施例中,报文的接收端口来源是物理端口向逻辑端口的映射,其中物理端口与逻辑端口的映射关系可以为一对一或多对一。
步骤102、根据所述报文的接收端口,从预先存储的两个类别的解析策略中,确定所述报文对应的解析策略;
在一个示例性实施例中,所述两个类别的解析策略中一个为符合预设的微码资源占用策略,另一个符合预设的业务扩展性策略。
在本示例性实施例中,微码资源占用符合预设占用策略用于限制在报文解析操作所消耗的微码资源大小,以免消耗过高,其中微码资源占用策略可以通过判断消耗的微码资源是否超过预设的阈值来判断;业务扩展性策略用于对判断解析策略是否能够支持新的业务,可以通过列举新的报文来确定该解析策略是否符合业务扩展性。
以接收端口为判断条件,在实现节省码源资源的同时,又保留业务扩展性好的优势,实现了两个技术优势的共存。与相关技术中仅采用一种解析策略相比,增加了解析策略的灵活性。将报文的接收端口作为判断条件,为报文选择适合该报文的解析方式。
步骤103、采用确定的解析策略,对所述报文进行解析操作。
在一个示例性实施例中,按照所述解析策略,从报文中提取所需的数据。
本申请实施例提供的方法,识别已获取到报文的接收端口,根据所述报文的接收端口,从预先存储的两个类别的解析策略中,确定所述报文对应的解析策略,再采用确定的解析策略,对所述报文进行解析操作,实现基于接收端口,选择两个类别的解析策略共存的目的,为实现微码资源的占用与扩展性的折中的提供方案基础。
下面对本申请实施例提供的方法作进一步说明:
在一个示例性实施例中,所述硬解析策略包括:按照预设的不同报文的偏移量位置,确定所述报文在执行数据提取操作的偏移量位置信息;按照所述偏移量位置,执行数据提取操作;
所述可编程解析策略包括:从所述报文获取关键key值;将所述key值与预先存储的模板进行匹配;如果匹配操作的结果为命中,则执行数据提取操作。
所述符合预设的微码资源占用策略的解析策略为硬解析策略;
所述符合预设的业务扩展性策略的解析策略为可编程解析策略;其中:
所述硬解析策略包括:按照预设的不同报文的偏移量位置,确定所述报文在执行数据提取操作的偏移量位置信息;按照所述偏移量位置,执行数据提取操作;
所述可编程解析策略包括:从所述报文获取关键key值;将所述key值与预先存储的模板进行匹配;如果匹配操作的结果为命中,则执行数据提取操作。
在本示例性实施例中,两个类别的解析策略是基于功能实现方式来划分的,在利用硬解析策略的节省码源资源的同时,又利用可编程解析策略扩展性好的优势,实现了两个技术优势的共存,实现微码资源的占用与扩展性的折中。
相关技术中对上述方式的改进或优化均适用于本申请实施例提供的方法,此处不再赘述。
在一个示例性实施例中,所述根据所述报文的接收端口,从预先存储的两个类别的解析策略中,确定所述报文对应的解析策略,包括:
判断所述报文的接收端口是否为预设的专用端口,所述专用端口为硬件或服务的通信端口;
如果所述报文的接收端口为专用端口,则确定对所述报文使用所述符合预设的微码资源占用策略的解析策略;否则,确定对所述报文使用符合预设的业务扩展性策略的解析策略。
在本示例性实施例中,专用端口为通信协议规定的特定端口,可以为环回端口、CPU端口或者OAM(Operation Administration Maintenance,操作维护管理)引擎端口。上述专用端口的报文类型的数量有限,且报文格式固定,适用于所述符合预设的微码资源占用策略的解析策略;对于除专用端口之外的其他接收端口,为方便业务的扩展性,可以采用符合预设的业务扩展性策略的解析策略。利用接收端口信息确定解析策略的种类,充分发挥不同解析策略的优势,提高解析效率。
在一个示例性实施例中,所述采用确定的解析策略,对所述报文进行解析操作,包括:
在利用所述报文对应的key值进行匹配操作后,如果匹配操作结果为命中,则获取对所述报文中内容的管理命令;
根据所述管理命令的内容,硬解析对所述报文中的内容进行处理。
在本示例性实施例中,在匹配结果为命中时,通过读取管理命令,对报文中的内容的管理指令,根据该管理指令,对内容进行管理,实现对报文中重要内容的收集。
在一个示例性实施例中,所述管理指令包括用于对报文中的内容进行搬移、赋值和移位中至少一个种类的运算命令。
在本示例性实施例中,管理命令可以为搬移move,或赋值set立即数,或移位等运算指令;其中所述管理命令能够同时对多段报文内容进行搬移,赋值,移位运算,指令并行操作能够对解析到多个报文字段进行处理。
在一个示例性实施例中,所述根据所述管理命令的内容,对所述报文中的内容进行处理,包括:
在所述管理命令的数量为至少两个时,采用并行的方式响应所述管理命令。
在本示例性实施例中,管理命令的数量可以为不同种类的至少两个操作;或者,为同一种类的运算操作,对不同的内容的至少两个命;通过并行执行管理命令,缩短指令执行的时间,与传统串行执行相比,提高了指令执行效率。
在一个示例性实施例中,所述根据所述管理命令的内容,对所述报文中的内容进行处理之后,所述方法还包括:
存储对预设内容的处理结果,并记录所述处理结果的位置信息以及所述内容中所包括的字段的对应关系;
根据所述对应关系,对所述报文进行转发操作。
在本示例性实施例中,可以把解析到的报文内容放到描述符里,并标记该字段在描述符的位置,后级查表转发时可以通过位置标记对结果进行调用,避免再次从报文里进行提取,降低转发微码的复杂度。
在一个示例性实施例中,所述key值是通过如下方式的到的,包括:
获取所述报文的数据提取位置的配置请求,其中所述配置请求包括位置的指示信息;
根据所述述配置请求中的位置的指示信息以及预先获取的始的key值偏移量,得到所述报文的key值。
在本示例性实施例中,通过获取配置请求中位置的指示信息,可以支持用户对提取位置的设置,满足用户的个性化管理需要,满足对解析操作的管理多样性的需求。
在一个示例性实施例中,所述利用所述报文对应的key值进行匹配操作,包括:
在获取到报文对应的key值后,利用所述key值进行第i级对应的解析规则的匹配,如果所述报文的key值在第i级对应的匹配操作结果为命中,则获取新生成的key值,利用新生成的key值进行第i+1级的匹配操作;如果第i级对应的匹配操作结果为未命中,则利用所述报文的key值进行第i+1级的匹配操作,以此类推,直到执行完全部的解析规则为止,其中i小于或等于N的自然数,其中N表示解析操作的等级的总数,N为自然数。
在本示例性实施例中,可以对报文执行多级的匹配解析;如果第一级匹配完成不了解析,会进行最多N级的匹配继续解析。匹配命中时用管理信息中的新key偏移量进行下级匹配;匹配未命中则继续用原来的key偏移量进行下一级匹配,直至解析结束。
通过对key值的多级解析,可以更加全面的获取报文携带的信息,提高信息提取的效率。
下面对本申请示例性实施例提供的方法进行说明:
实施例一
为了克服现有报文解析技术的缺点,本申请实施例一提供一种硬解析加可编程的报文解析方法,针对部分接收端口的报文采用硬解析方法,其余接收端口的报文采用可编程解析,并对可编程解析进行优化。
图2为本申请实施例一提供的报文解析方法的流程图。图2所示方法包括如下步骤:
步骤201、对已获取的报文的接收端口的匹配操作;
如果报文的接收端口为专用端口,则对从专用端口进入的报文采用硬解析实现解析,执行步骤202至步骤203;
如果报文的接收端口不是专用接口,则对从除专用端口之外口进入的报文进行可编程解析,执行步骤204至步骤205;;
其中,在执行报文的接收端口的匹配操作之前,对所有入口进来的报文进行非法报文检测;对非法报文进行标记,由后级模块决定是否丢弃。
步骤202、按照预先存储的报文各个层次识别协议类型对应的偏移量,确定所述报文对应层次的偏移量;
步骤203、按照所述偏移量,提取报文内容,用于报文转发处理。
采用步骤202和步骤203的硬解析方式,与可编程解析相比,实现简单,节省了微码资源。
步骤204、利用key值对报文的内容进行多级匹配。
利用key值在预先设置的匹配模块中进行匹配操作,并输出匹配结果;
在获取到报文对应的key值后,利用所述key值进行第i级对应的解析规则的匹配,如果所述报文的key值在第i级对应的匹配操作结果为命中,则获取新生成的key值,利用新生成的key值进行第i+1级的匹配操作;如果第i级对应的匹配操作结果为未命中,则利用所述报文的key值进行第i+1级的匹配操作,以此类推,直到执行完全部的解析规则为止,其中i小于或等于N的自然数,其中N表示解析操作的等级的总数,N为自然数。
在一个示例性实施例中,可以对报文执行多级的匹配解析;如果第一级匹配完成不了解析,会进行最多N级的匹配继续解析。匹配命中时用管理信息中的新key偏移量进行下级匹配;匹配未命中则继续用原来的key偏移量进行下一级匹配,直至解析结束。
在图2所示实施例中,N的取值为6,在获取到key值为key0时,如果第1级的解析规则的匹配结果为命中,则获取新的key值key1,利用key1进行第2级的匹配;相反,如果第1级的匹配操作为未命中,则利用key0进行第2级的匹配;以此类推,直到执行完6级的解析规则的匹配操作。
通过对key值的多级解析,可以更加全面的获取报文携带的信息,提高信息提取的效率。
步骤205、获取匹配结果。
图3为本申请实施例提供的每级匹配模块利用key值执行匹配操作的流程示意图。如图3所示,每一级的匹配操作均包括如下步骤:
步骤301、根据预先设置的端口属性表,确定报文的初始key值偏移量(key_offset);
步骤302、根据所述初始key偏移量,从报文里提取多段用户感兴趣的报文内容,将提取到的报文内容作为key值;
其中,初始偏移量可以灵活配置;
步骤303、利用key值在预先设置的匹配模块中进行匹配操作,并输出匹配结果;
如果匹配结果为命中,则执行步骤304;否则,流程结束;
步骤304、获取匹配结果中的管理命令;
所述管理命令可以为move、set立即数或移位等运算指令,这些指令能够同时对多段报文内容进行搬移,赋值,移位运算;
步骤305、执行所述管理命令,得到所需信息;
在执行指令时,采用并行操作,能够提高指令执行效率;
步骤306、管理所述所需信息;
把解析到的报文内容放到描述符里,并标记该字段在描述符的位置,后级查表转发时可以通过位置标记对结果进行调用,避免再次从报文里进行提取,降低转发微码的复杂度;同时,从匹配结果中还可以获得新的key_offset和匹配状态值,进行下一级匹配。
在对匹配状态值进行解析时,判断报文解析是否结束,如果未结束,采用新的key_offset进行下一级匹配,过程重复步骤301至步骤306,直到解析结束。
其中,对于步骤204中各级匹配模块中,每级匹配模块均可以执行步骤301至步骤306;或者,其中一部分匹配模块执行步骤301至步骤306,剩下的采用其他匹配流程。
本申请实施例提供的方法,充分利用两种解析方法的优势,通过硬解析和可编程解析相结合的方式实现对报文的解析。另外,在可编程解析过程中,支持从报文中多个位置提取内容组成key值,进入到匹配模块进行匹配,匹配完成后在逻辑上引入move、set立即数、加减运算以及移位等操作指令对多段报文内容进行操作,这些指令是并行执行的,与传统串行执行相比,提高了指令执行效率,最后把操作结果回写到特定的描述符里,后续报文查表处理时可以直接从描述符里取出相应的内容作为查表索引,不必去报文里面再次提取。
实施例二
本申请实施例二提供的方法包括如下步骤:
来自标准以太网口的报文,首先比较MAC地址,进行非法报文检测,如果是非法报文则进行丢弃。如果是来自特定端口,如环回端口、CPU端口、OAM引擎端口的报文则直接进行固定偏移的硬解析。对于其他常规报文,查端口属性表,获得初始的key_offset,进行可编程解析。
其中,可编程解析方法包括如下步骤:
步骤A1、获取报文的key值,包括:
对于基本的L2报文解析,在匹配模块预先配置像0x8100或0x9100等TAG类型,根据初始的key_offset配置从MAC地址后面取值,提取到key值送到匹配模块进行匹配;
对于基本的L3报文解析,在匹配模块预先配置像0x8100或0x9100等TAG类型,ETYPE(Ethernet Type,以太网)类型0x0800,以及其他字段内容,通过初始的key_offset从报文里提取相应字段进到匹配模块去匹配;
对于基本的MPLS报文解析,在匹配模块预先配置像0x8100或0x9100等TAG类型,ETYPE类型0x8847,以及其他字段内容,通过初始的key_offset从报文里提取相应字段进到匹配模块去匹配;
步骤A2、利用报文key值进行查询,得到匹配结果,并利用匹配结果进行信息维护,包括:
对于基本的L2报文解析,匹配命中后,从匹配结果中解析到move等逻辑指令,同时把MAC地址,VLAN_ID搬移到描述符中,把VLAN层数,报文类型的值填到描述符中,并记录相应的位置,后续进行L2转发查表,可以从描述符中特定位置取出MAC地址去查表,避免后续再次从报文里提取MAC地址;
对于基本的L3报文解析,匹配命中后,从匹配结果中解析到对应的move等逻辑指令,同时把MAC地址,VLAN_ID,以及IP地址搬移到描述符中,把VLAN层数,报文类型的值填到描述符中,并记录相应的位置,后续进行L3转发查表,可以从描述符中特定位置取出IP地址去查路由表,避免再次从报文里提取IP地址;
对于基本的MPLS报文解析,匹配命中后,从匹配结果中解析到对应的move等逻辑指令,同时把MAC地址,VLAN_ID,以及标签值搬移到描述符中,把VLAN层数,报文类型的值填到描述符中,并记录相应的位置,后续进行标签转发查表,可以从描述符中特定位置取出标签值去查表,避免再次从报文里提取标签值;
步骤A3、如果报文组成复杂,像VxLAN,多标签业务,匹配一次之后,还没有完成解析,可以进入下级匹配模块再次进行匹配,重复步骤A1和步骤A2,直到解析结束。
本申请实施例二提供的方法,对于不同类型的报文,可以通过硬解析和可编程解析相结合的方法解析,与现有技术相比,具有比较好的扩展性的同时,又在一定程度上降低逻辑资源和微码实现的复杂度;对可编程解析方面的优化,提高了解析效率,降低了后续转发查表的代价。
本申请实施例提供一种报文解析装置,包括处理器和存储器,其中所述存储器存储有计算机程序,所述处理器调用所述存储器中的计算机程序以实现上文任一所述的方法。
本申请实施例提供的装置实施例,识别已获取到报文的接收端口,根据所述报文的接收端口,从预先存储的两个类别的解析策略中,确定所述报文对应的解析策略,再采用确定的解析策略,对所述报文进行解析操作,实现基于接收端口,选择两个类别的解析策略共存的目的,为实现微码资源的占用与扩展性的折中的提供方案基础。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、***、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
Claims (10)
1.一种报文解析方法,包括:
识别已获取到报文的接收端口;
根据所述报文的接收端口,从预先存储的两个类别的解析策略中,确定所述报文对应的解析策略;
采用确定的解析策略,对所述报文进行解析操作。
2.根据权利要求1所述的方法,其特征在于,所述两个类别的解析策略中一个为符合预设的微码资源占用策略,另一个符合预设的业务扩展性策略。
3.根据权利要求2所述的方法,其特征在于:
所述符合预设的微码资源占用策略的解析策略为硬解析策略;
所述符合预设的业务扩展性策略的解析策略为可编程解析策略;其中:
所述硬解析策略包括:按照预设的不同报文的偏移量位置,确定所述报文在执行数据提取操作的偏移量位置信息;按照所述偏移量位置,执行数据提取操作;
所述可编程解析策略包括:从所述报文获取关键key值;将所述key值与预先存储的模板进行匹配;如果匹配操作的结果为命中,则执行数据提取操作。
4.根据权利要求2或3所述的方法,其特征在于,所述根据所述报文的接收端口,从预先存储的两个类别的解析策略中,确定所述报文对应的解析策略,包括:
判断所述报文的接收端口是否为预设的专用端口,所述专用端口为硬件或服务的通信端口;
如果所述报文的接收端口为专用端口,则确定对所述报文使用所述符合预设的微码资源占用策略的解析策略;否则,确定对所述报文使用符合预设的业务扩展性策略的解析策略。
5.根据权利要求2或3所述的方法,其特征在于,所述采用确定的解析策略,对所述报文进行解析操作,包括:
在利用所述报文对应的key值进行匹配操作后,如果匹配操作结果为命中,则获取对所述报文中内容的管理命令;
根据所述管理命令的内容,硬解析对所述报文中的内容进行处理。
6.根据权利要求5所述的方法,其特征在于,所述管理指令包括用于对报文中的内容进行搬移、赋值和移位中至少一个种类的运算命令。
7.根据权利要求5或6所述的方法,其特征在于,所述根据所述管理命令的内容,对所述报文中的内容进行处理,包括:
在所述管理命令的数量为至少两个时,采用并行的方式响应所述管理命令。
8.根据权利要求5所述的方法,其特征在于,所述根据所述管理命令的内容,对所述报文中的内容进行处理之后,所述方法还包括:
存储对预设内容的处理结果,并记录所述处理结果的位置信息以及所述内容中所包括的字段的对应关系;
根据所述对应关系,对所述报文进行转发操作。
9.根据权利要求5所述的方法,其特征在于,所述利用所述报文对应的key值进行匹配操作,包括:
在获取到报文对应的key值后,利用所述key值进行第i级对应的解析规则的匹配,如果所述报文的key值在第i级对应的匹配操作结果为命中,则获取新生成的key值,利用新生成的key值进行第i+1级的匹配操作;如果第i级对应的匹配操作结果为未命中,则利用所述报文的key值进行第i+1级的匹配操作,以此类推,直到执行完全部的解析规则为止,其中i小于或等于N的自然数,其中N表示解析操作的等级的总数,N为自然数。
10.一种报文解析装置,包括处理器和存储器,其中所述存储器存储有计算机程序,所述处理器调用所述存储器中的计算机程序以实现如权利要求1至9任一所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910620953.0A CN112217765B (zh) | 2019-07-10 | 2019-07-10 | 报文解析方法和装置 |
PCT/CN2020/101411 WO2021004536A1 (zh) | 2019-07-10 | 2020-07-10 | 报文解析方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910620953.0A CN112217765B (zh) | 2019-07-10 | 2019-07-10 | 报文解析方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112217765A true CN112217765A (zh) | 2021-01-12 |
CN112217765B CN112217765B (zh) | 2023-06-30 |
Family
ID=74047419
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910620953.0A Active CN112217765B (zh) | 2019-07-10 | 2019-07-10 | 报文解析方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112217765B (zh) |
WO (1) | WO2021004536A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113612773A (zh) * | 2021-08-03 | 2021-11-05 | 厦门至恒融兴信息技术股份有限公司 | 人工智能实现的智能报文识别和解析***与方法 |
CN117240947A (zh) * | 2023-11-15 | 2023-12-15 | 无锡沐创集成电路设计有限公司 | 一种报文处理方法、装置及介质 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112995188A (zh) * | 2021-03-10 | 2021-06-18 | 中国民航信息网络股份有限公司 | 报文转换方法及中间适配装置、存储介质及电子设备 |
CN113568925B (zh) * | 2021-08-03 | 2022-08-16 | 中电金信软件有限公司 | 一种报文数据的转换方法、装置、电子设备及存储介质 |
CN114244626B (zh) * | 2021-12-31 | 2024-03-15 | 苏州盛科通信股份有限公司 | 一种基于MACSec网络的报文处理方法和装置 |
CN115002243B (zh) * | 2022-08-02 | 2022-11-01 | 上海秉匠信息科技有限公司 | 一种数据处理方法及装置 |
CN116132558A (zh) * | 2023-02-03 | 2023-05-16 | 重庆赛力斯新能源汽车设计院有限公司 | 一种数据解析方法、装置、电子设备和存储介质 |
CN117424948A (zh) * | 2023-10-31 | 2024-01-19 | 中科驭数(北京)科技有限公司 | 可编程报文解析方法、流水线装置及设备 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1886964A (zh) * | 2003-12-04 | 2006-12-27 | 英特尔公司 | 可重配置的帧解析器 |
CN102143074A (zh) * | 2011-03-25 | 2011-08-03 | 中兴通讯股份有限公司 | 网络负荷的分担方法、***及网络处理器 |
CN103095609A (zh) * | 2013-01-09 | 2013-05-08 | 大唐软件技术股份有限公司 | 一种基于物联网终端的接入适配方法和装置 |
CN103200084A (zh) * | 2013-03-18 | 2013-07-10 | 中兴通讯股份有限公司 | 基于网络处理器的报文预处理方法、装置及网络处理器 |
US20130195117A1 (en) * | 2010-11-29 | 2013-08-01 | Huawei Technologies Co., Ltd | Parameter acquisition method and device for general protocol parsing and general protocol parsing method and device |
CN103491145A (zh) * | 2013-09-09 | 2014-01-01 | 中国科学院计算机网络信息中心 | 一种物联网异构标识解析方法与*** |
CN108040040A (zh) * | 2017-11-30 | 2018-05-15 | 北京锐安科技有限公司 | 一种应用协议报文的自动化解析方法和装置 |
CN108134779A (zh) * | 2017-12-06 | 2018-06-08 | 交控科技股份有限公司 | Cbtc通信***协议解析方法、协议库管理方法及协议库 |
CN108429738A (zh) * | 2018-02-11 | 2018-08-21 | 中车青岛四方机车车辆股份有限公司 | 一种数据解析方法及解析平台 |
CN109302372A (zh) * | 2017-07-24 | 2019-02-01 | 华为技术有限公司 | 一种通信方法、设备及存储介质 |
CN109495509A (zh) * | 2018-12-27 | 2019-03-19 | 北京奇安信科技有限公司 | 网闸的数据传输方法、设备、***和介质 |
CN109842629A (zh) * | 2019-03-03 | 2019-06-04 | 北京立思辰安科技术有限公司 | 基于协议解析框架的自定义协议的实现方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014125636A1 (ja) * | 2013-02-18 | 2014-08-21 | 日本電信電話株式会社 | 通信装置またはパケット転送方法 |
CN105553851A (zh) * | 2015-12-10 | 2016-05-04 | 中国电子科技集团公司第三十二研究所 | 基于sdn的网络处理器微码和流表实现装置及方法 |
CN106533943A (zh) * | 2016-12-06 | 2017-03-22 | 中国电子科技集团公司第三十二研究所 | 基于网络交换芯片的微码和流表的实现方法 |
-
2019
- 2019-07-10 CN CN201910620953.0A patent/CN112217765B/zh active Active
-
2020
- 2020-07-10 WO PCT/CN2020/101411 patent/WO2021004536A1/zh active Application Filing
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1886964A (zh) * | 2003-12-04 | 2006-12-27 | 英特尔公司 | 可重配置的帧解析器 |
US20130195117A1 (en) * | 2010-11-29 | 2013-08-01 | Huawei Technologies Co., Ltd | Parameter acquisition method and device for general protocol parsing and general protocol parsing method and device |
CN102143074A (zh) * | 2011-03-25 | 2011-08-03 | 中兴通讯股份有限公司 | 网络负荷的分担方法、***及网络处理器 |
CN103095609A (zh) * | 2013-01-09 | 2013-05-08 | 大唐软件技术股份有限公司 | 一种基于物联网终端的接入适配方法和装置 |
CN103200084A (zh) * | 2013-03-18 | 2013-07-10 | 中兴通讯股份有限公司 | 基于网络处理器的报文预处理方法、装置及网络处理器 |
CN103491145A (zh) * | 2013-09-09 | 2014-01-01 | 中国科学院计算机网络信息中心 | 一种物联网异构标识解析方法与*** |
CN109302372A (zh) * | 2017-07-24 | 2019-02-01 | 华为技术有限公司 | 一种通信方法、设备及存储介质 |
CN108040040A (zh) * | 2017-11-30 | 2018-05-15 | 北京锐安科技有限公司 | 一种应用协议报文的自动化解析方法和装置 |
CN108134779A (zh) * | 2017-12-06 | 2018-06-08 | 交控科技股份有限公司 | Cbtc通信***协议解析方法、协议库管理方法及协议库 |
CN108429738A (zh) * | 2018-02-11 | 2018-08-21 | 中车青岛四方机车车辆股份有限公司 | 一种数据解析方法及解析平台 |
CN109495509A (zh) * | 2018-12-27 | 2019-03-19 | 北京奇安信科技有限公司 | 网闸的数据传输方法、设备、***和介质 |
CN109842629A (zh) * | 2019-03-03 | 2019-06-04 | 北京立思辰安科技术有限公司 | 基于协议解析框架的自定义协议的实现方法 |
Non-Patent Citations (1)
Title |
---|
赵彬: "OpenFlow网络中数据包解析方法的优化与实现", 《中国优秀硕士学位论文全文数据库(信息科技辑)》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113612773A (zh) * | 2021-08-03 | 2021-11-05 | 厦门至恒融兴信息技术股份有限公司 | 人工智能实现的智能报文识别和解析***与方法 |
CN117240947A (zh) * | 2023-11-15 | 2023-12-15 | 无锡沐创集成电路设计有限公司 | 一种报文处理方法、装置及介质 |
CN117240947B (zh) * | 2023-11-15 | 2024-02-02 | 无锡沐创集成电路设计有限公司 | 一种报文处理方法、装置及介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2021004536A1 (zh) | 2021-01-14 |
CN112217765B (zh) | 2023-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112217765A (zh) | 报文解析方法和装置 | |
CN111164939B (zh) | 通过网络指定和利用路径 | |
US11750476B2 (en) | Service operation chaining | |
US10797910B2 (en) | Specifying and utilizing paths through a network | |
US20230362239A1 (en) | Distributed service chain across multiple clouds | |
RU2442210C2 (ru) | Способы и устройства для осуществления операций по дереву каналов | |
US11539659B2 (en) | Fast distribution of port identifiers for rule processing | |
WO2021088629A1 (zh) | DetNet数据包处理方法及装置 | |
EP3975486A1 (en) | Evpn packet forwarding method, system, storage medium, and terminal | |
US20200410398A1 (en) | Methods and Devices for Chunk Based IoT Service Inspection | |
CN108900420B (zh) | 流限速方法、装置和服务器 | |
CN115766620A (zh) | 报文处理方法、可编程网卡设备、物理服务器及存储介质 | |
CN112543108A (zh) | 网络隔离策略管理方法和网络隔离策略管理*** | |
EP4329248A1 (en) | Packet forwarding method and apparatus, network device, and storage medium | |
EP3952227A1 (en) | Network slice-based data processing method and apparatus | |
CN112087389B (zh) | 一种报文匹配查表方法、***、存储介质和终端 | |
CN101577660B (zh) | 一种标签转发表项获取、报文转发方法和装置 | |
EP4395253A1 (en) | Routing method and apparatus, cloud resource registration method and apparatus, storage medium, and electronic apparatus | |
CN107172009B (zh) | 通过socket上送VLAN信息至应用模块的方法 | |
CN110099011A (zh) | 一种实体网关接入虚拟家庭网关的方法及*** | |
US20150109958A1 (en) | Transmission path control device | |
CN111857945A (zh) | 数据包传输、管理方法、装置及数据转发设备、存储介质 | |
CN103532846A (zh) | 路由链路选择方法及装置 | |
CN111245581B (zh) | 以太网帧的配置方法及业务管道分配方法和*** | |
CN115712545B (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 |