CN115883681A - 报文解析方法、装置、电子设备及存储介质 - Google Patents

报文解析方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN115883681A
CN115883681A CN202310083400.2A CN202310083400A CN115883681A CN 115883681 A CN115883681 A CN 115883681A CN 202310083400 A CN202310083400 A CN 202310083400A CN 115883681 A CN115883681 A CN 115883681A
Authority
CN
China
Prior art keywords
message
protocol layer
protocol processing
processing unit
information
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
Application number
CN202310083400.2A
Other languages
English (en)
Other versions
CN115883681B (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.)
Tianyi Cloud Technology Co Ltd
Original Assignee
Tianyi Cloud 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 Tianyi Cloud Technology Co Ltd filed Critical Tianyi Cloud Technology Co Ltd
Priority to CN202310083400.2A priority Critical patent/CN115883681B/zh
Publication of CN115883681A publication Critical patent/CN115883681A/zh
Application granted granted Critical
Publication of CN115883681B publication Critical patent/CN115883681B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Communication Control (AREA)

Abstract

本发明实施例提供了一种报文解析方法、装置、电子设备及存储介质,应用于报文解析模块,报文解析模块包括多个协议处理单元,该方法包括:接收待解析的报文,根据报文生成查表请求,根据查表请求,将报文和目标协议处理单元预先配置的tcam规则表并行匹配,生成匹配的action表,提取报文的关键信息,根据action表中预设协议层长度,剥离报文,得到报文的数据信息。本发明通过为每层协议单独分配一个协议处理单元,按照网络协议层顺序流水线处理,将报文和目标协议处理单元预先配置的tcam规则表并行匹配,剥离出报文的数据信息,且tcam规则表可以灵活配置,支持各种协议,从而实现线速、高效率的报文解析。

Description

报文解析方法、装置、电子设备及存储介质
技术领域
本发明涉及数据通信技术领域,提供一种报文解析方法、装置、电子设备及存储介质。
背景技术
随着网络技术发展,数据流量快速增长,传统的基于CPU的TCP/IP协议栈的网络报文方法不仅耗费大量的CPU资源,并且影响CPU性能,因此,在处理大数据的云服务***,将CPU内核的一些工作卸载到智能网卡中,以提升数据处理的性能,并且节省CPU的计算开销。
目前,主流的做法是将CPU内核的网络转发功能和存储部分功能卸载到智能网卡上,将OVS(OpenVswitch,支持多层数据转发的高质量虚拟交换机)转发流表项卸载到智能网卡外挂的DDR中,智能网卡芯片解析出查表的key值,查询DDR中的流表项,得到报文最终去向,这就需要正确解析出报文的信息,否则若查表查出错误的结果,会导致报文转发错误。
然而,由于报文涉及的网络协议层类型有很多,当前的智能网卡无法将各种类型情况一一枚举出来,第一是电路结构会非常复杂,片上资源难以支撑,第二是涉及不到有些协议类型应用场景,浪费资源。因此,对于大流量的报文,当前智能网卡的报文解析性能上存在速度较慢,配置灵活性不高,处理模块的硬件结构受到资源限制的问题,从而影响报文解析的性能。
发明内容
本发明实施例提供一种报文解析方法、装置、电子设备及存储介质,以实现对报文进行高性能、线速处理,达到高效解析报文的目的。
为了解决上述问题,第一方面,本发明实施例公开了一种报文解析方法,应用于图7所示的报文解析模块,所述报文解析模块包括多个协议处理单元,所述方法包括:
接收待解析的报文,根据所述报文生成查表请求;
根据所述查表请求,将所述报文和目标协议处理单元预先配置的tcam规则表并行匹配,生成匹配的action表,提取所述报文的关键信息;
根据所述action表中预设协议层长度,剥离所述报文,得到所述报文的数据信息。
可选地,所述接收待解析的报文,根据所述报文生成查表请求,包括:
将所述报文按照预设字节偏移处理,进行报文编号;
基于所述报文编号,生成查表请求以查询预先配置的tcam规则表,所述查表请求包括所述报文、所述报文编号,以及所述报文包括的协议层类型。
可选地,所述根据所述查表请求,将所述报文和目标协议处理单元预先配置的tcam规则表并行匹配,生成匹配的action表,提取所述报文的关键信息,包括:
根据所述报文,匹配所述目标协议处理单元预先配置的tcam规则表,其中,所述tcam规则表包括根据网络协议层类型配置的键值、掩码、协议层类型;
若所述查表请求信息与所述tcam规则表匹配,生成包括匹配结果的action表,根据所述action表,提取所述报文的关键信息;
否则,将所述报文透传至下一所述目标协议处理单元。
可选地,所述根据所述action表中预设协议层长度,剥离所述报文,得到所述报文的数据信息,包括:
根据所述action表中的预设协议层长度,从所述报文中剥离出所述关键信息;
将剥离出关键信息的所述报文传输至下一所述目标协议处理单元;
在所述报文的协议层信息剥离完成的情况下,得到所述报文的数据信息。
可选地,所述接收待解析的报文,根据所述报文生成查表请求之前,还包括:
根据所述报文的协议层信息,确定与协议层类型对应的多个目标协议处理单元,控制多个所述目标协议处理单元使能开启;
根据网络协议层类型,对多个所述目标协议处理单元进行提取位宽配置。
可选地,所述根据网络协议层类型,对多个所述目标协议处理单元进行提取位宽配置之后,还包括:
根据所述网络协议层类型,对多个所述目标协议处理单元配置tcam规则表,其中,所述tcam规则表用于提取所述目标处理单元对应的报文关键信息;
基于所述tcam规则表生成的action表,配置下一所述目标协议处理单元的协议层类型。
可选地,所述根据所述action表中预设协议层长度,剥离所述报文,得到所述报文的数据信息之后,还包括:
根据所述报文的数据信息,生成数据信息的校验和;
通过对所述检验和进行验证,确定报文解析有效,将所述数据信息发送至报文编辑模块。
第二方面,本发明实施例还公开了一种报文解析装置,应用于报文解析模块,所述报文解析模块包括多个协议处理单元,所述装置包括:
接收报文模块,用于接收待解析的报文,根据所述报文生成查表请求;
匹配信息模块,用于根据所述查表请求,将所述报文和目标协议处理单元预先配置的tcam规则表并行匹配,生成匹配的action表,提取所述报文的关键信息;
报文处理模块,用于根据所述action表中预设协议层长度,剥离所述报文,得到所述报文的数据信息。
可选地,所述接收报文模块包括:
第一处理子模块,用于将所述报文按照预设字节偏移处理,进行报文编号;
第二处理子模块,用于基于所述报文编号,生成查表请求以查询预先配置的tcam规则表,所述查表请求包括所述报文、所述报文编号,以及所述报文包括的协议层类型。
可选地,所述匹配信息模块包括:
匹配子模块,用于根据所述报文,匹配所述目标协议处理单元预先配置的tcam规则表,其中,所述tcam规则表包括根据网络协议层类型配置的键值、掩码、协议层类型;
生成子模块,用于若所述查表请求信息与所述tcam规则表匹配,生成包括匹配结果的action表,根据所述action表,提取所述报文的关键信息;
第一传输子模块,用于将所述报文透传至下一所述目标协议处理单元。
可选地,所述报文处理模块包括:
第三处理子模块,用于根据所述action表中的预设协议层长度,从所述报文中剥离出所述关键信息;
第二传输子模块,用于将剥离出关键信息的所述报文传输至下一所述目标协议处理单元;
第四处理子模块,用于在所述报文的协议层信息剥离完成的情况下,得到所述报文的数据信息。
可选地,所述装置还包括:
确定模块,用于根据所述报文的协议层信息,确定与协议层类型对应的多个目标协议处理单元,控制多个所述目标协议处理单元使能开启;
第一配置模块,用于根据网络协议层类型,对多个所述目标协议处理单元进行提取位宽配置。
可选地,所述装置还包括:
第二配置模块,用于根据所述网络协议层类型,对多个所述目标协议处理单元配置tcam规则表,其中,所述tcam规则表用于提取所述目标处理单元对应的报文关键信息;
第三配置模块,用于基于所述tcam规则表生成的action表,配置下一所述目标协议处理单元的协议层类型。
可选地,所述装置还包括:
生成模块,用于根据所述报文的数据信息,生成数据信息的校验和;
发送报文模块,用于通过对所述检验和进行验证,确定报文解析有效,将所述数据信息发送至报文编辑模块。
第三方面,本发明实施例还公开了一种电子设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行以上所述的报文解析方法。
第四方面,本发明还公开了一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述的报文解析方法。
本发明实施例包括以下优点:
本发明实施例提供的报文解析方法,应用于报文解析模块,报文解析模块包括多个协议处理单元,通过接收待解析的报文,根据报文生成查表请求,根据查表请求,将报文和目标协议处理单元预先配置的tcam规则表并行匹配,生成匹配的action表,提取报文的关键信息,根据action表中预设协议层长度,剥离报文,得到报文的数据信息。本发明通过为每层协议单独分配一个协议处理单元,按照网络协议层顺序流水线处理,不需要缓存报文,既节省了模块内部的寄存器资源,又能达到高性能的需求,将报文和目标协议处理单元预先配置的tcam规则表并行匹配,剥离出报文的数据信息,从而实现线速、高效率的报文解析,且可以灵活配置模块内部的寄存器和tcam规则表,达到解析各种协议报文的目的,避免反复修改硬件代码,缩短开发周期。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的报文解析方法的步骤流程图之一;
图2是图1中本发明实施例提供的报文解析方法的步骤102的方法流程图;
图3为本发明实施例提供的报文解析方法的步骤流程图之二;
图4为本发明实施例提供的报文解析方法的步骤流程图之三;
图5是本发明实施例提供的报文解析方法的流程图;
图6是本发明实施例提供的报文解析装置的装置框图;
图7是本发明实施例提供的报文解析装置的结构示意图;
图8是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参照图1,示出了本发明实施例提供的报文解析方法的步骤流程图之一,应用于图7所示的报文解析模块,所述报文解析模块包括多个协议处理单元,所述方法可以包括:
步骤101,接收待解析的报文,根据报文生成查表请求。
本发明实施例中,为了实现线速、高效率的报文处理性能,基于tcam快速查表思想,采用OVS基本架构进行报文解析,其中,OVS基本架构由报文解析,匹配模块,报文编辑模块组成,具体的,参照图7所示的报文解析模块的示意图,本实施例应用于报文解析模块,报文解析模块包括多个协议处理单元,通过将报文解析模块划分成多个协议处理单元,每个协议处理单元完成一层协议的处理,将每个多个协议处理单元串接起来,从而流水线的完成整个报文的解析处理。
需要说明的是,报文解析模块用于根据报文提取出来的关键信息,查出该报文的去向,动作,最后发送至报文编辑模块编辑转发。需要说明的是,基于tcam快速查表思想来实现的报文解析,其中,报文解析模块的每个协议处理单元均是由逻辑电路堆叠出来,无需缓存,以固定两个时钟处理结束。
具体的,报文解析模块接收待解析的报文,首先,将报文内容按照一个字节为单位偏移做一个编号,例如,报文开始第一个字节,编号为0,接下来一个字节,编号为1,依次类推。将上一步的编号、往后偏移两个字节对应的报文,还有报文解析模块的协议处理单元的cur_type协议层类型,组成查表请求,所述查表请求在判断协议层类型在当前协议处理单元合法的情况下,查询预先配置的tcam规则表。
具体的,在一些实施例中,步骤101接收待解析的报文,根据报文生成查表请求,可以包括以下步骤:
首先,将报文按照预设字节偏移处理,进行报文编号;
本实施例中,预设字节可以根据协议处理单元的报文格式确定,本实施例中预设字节以2个字节为例进行说明,当然,以上仅为具体的举例说明,在实际的使用过程中报文偏移的预设字节还可以设置为其他参数,此处不做一一赘述。本实施方式不对报文编号进行限定,在实际的使用过程中,报文编号可以为任意一种能够唯一指示报文的标识。
其次,基于报文编号,生成查表请求以查询预先配置的tcam规则表,查表请求包括报文、报文编号,以及报文包括的协议层类型。
步骤102,根据查表请求,将报文和目标协议处理单元预先配置的tcam规则表并行匹配,生成匹配的action表,提取报文的关键信息。
本发明实施例中,根据查表请求及报文,匹配目标协议处理单元预先配置的tcam规则表。其中,tcam规则表包括根据网络协议层类型配置的键值、掩码、协议层类型。若查表请求信息与所述tcam规则表匹配,生成包括匹配结果的action表,根据action表,提取报文的关键信息。若查表请求信息与tcam规则表不匹配,将报文透传至下一目标协议处理单元。
需要说明的是,TCAM(ternary content-addressablememory)三态内容寻址存储器,是一种专用的高速内存,能够在单个时钟周期内搜索出数据。所保存的表项在长度要求上非常灵活,可以在同一个TCAM 芯片中保存任意长度的关键字表项,其tcam规则表中每一个表项都是以<地址、掩码>的形式保存,假设地址关键字的长度范围从1 到W,那么地址和掩码分别占用W 比特。对于关键字长度为Y(1≤Y≤W)的表项来说,它的掩码前Y 个比特为1,而剩下的W-Y 比特为0,它的地址后W-Y 个比特可以是0 或者1。
本实施例中,在报文解析模块中确定待解析报文对应的目标协议处理单元,每个协议处理单元的输入接口有寄存器配置接口,报文输入接口、tcam规则配置接口、上一协议处理单元的协议层类型输入接口、关键信息输入接口,输出接口有报文输出接口、报文解析提取的关键信息的结构表、下一协议处理单元的协议层类型。
具体的,响应于查表请求,读取tcam规则里键值key、掩码msk以及协议层类型cur_type,掩码支持bit级别,cur_type是当前目标协议处理单元解析的协议层类型。通过报文及报文编号,查询预先配置的tcam规则表信息,如果以上信息都命中了,就得到了该规则的action表。其中,action表中包括下一目标协议处理单元的协议类型,当前协议层长度,还有要提取的报文的关键信息的偏移和长度,最大提取四个关键字段,若需要提取更多,也可以再拓宽action的位宽,能够实现灵活配置。
若查表请求信息与所述tcam规则表匹配命中,根据生成匹配的action表里面关键信息的偏移和长度,提取出报文的关键信息,将这些信息按照先后的排列顺序,依次放到一个字节位宽的队列里面,传输至下一目标协议处理单元,若查表请求信息与tcam规则表不匹配,在队列里面填0,将报文透传至下一目标协议处理单元。
步骤103,根据action表中预设协议层长度,剥离报文,得到报文的数据信息。
本实施例中,根据action表中目标协议处理单元的预设协议层长度,对报文进行剥离,将剩下的报文部分传输给下一个目标协议处理单元处理。每个目标协议处理单元单独处理一层协议,当协议层处理完成之后,将当前协议层的内容剥离,送往下一个目标协议处理单元处理下一层的协议。如果当前目标协议处理单元遇到不识别的协议类型,将报文透传到后面的目标协议处理单元,不做处理,依此类推,将整个串联的目标协议处理单元走完,至此解析完成,达到线速处理。
具体的,在一些实施例中,步骤103根据action表中预设协议层长度,剥离报文,得到报文的数据信息,可以包括以下步骤:
首先,根据action表中的预设协议层长度,从报文中剥离出关键信息;
其次,将剥离出关键信息的报文传输至下一目标协议处理单元;
最后,在报文的协议层信息剥离完成的情况下,得到报文的数据信息。
本发明实施例提供的报文解析方法,应用于报文解析模块,报文解析模块包括多个协议处理单元,通过接收待解析的报文,根据报文生成查表请求,根据查表请求,将报文和目标协议处理单元预先配置的tcam规则表并行匹配,生成匹配的action表,提取报文的关键信息,根据action表中预设协议层长度,剥离报文,得到报文的数据信息。本发明通过为每层协议单独分配一个协议处理单元,按照网络协议层顺序流水线处理,不需要缓存报文,既节省了模块内部的寄存器资源,又能达到高性能的需求,将报文和目标协议处理单元预先配置的tcam规则表并行匹配,剥离出报文的数据信息,从而实现线速、高效率的报文解析,且可以灵活配置模块内部的寄存器和tcam规则表,达到解析各种协议报文的目的,避免反复修改硬件代码,缩短开发周期。
具体的,参照图2,图2是图1中本发明实施例提供的报文解析方法的步骤102的方法流程图,步骤102根据查表请求,将报文和目标协议处理单元预先配置的tcam规则表并行匹配,生成匹配的action表,提取报文的关键信息,包括:
步骤1021,根据报文,匹配目标协议处理单元预先配置的tcam规则表。
其中,tcam规则表包括根据网络协议层类型配置的键值、掩码、协议层类型。
步骤1022,若查表请求信息与所述tcam规则表匹配,生成包括匹配结果的action表,根据action表,提取报文的关键信息。
步骤1023,否则,将报文透传至下一目标协议处理单元。
上述步骤1021-1023中,在得到待解析报文的查表请求之后,根据查表请求及报文内容,匹配目标协议处理单元预先配置的tcam规则表。其中,tcam规则表包括根据网络协议层类型配置的键值、掩码、协议层类型。若查表请求信息与所述tcam规则表匹配,生成包括匹配结果的action表,根据action表,提取报文的关键信息;若查表请求信息与tcam规则表不匹配,将报文透传至下一目标协议处理单元。需要说明的是,目标协议处理单元基于通用配置寄存器资源和32条tcam规则资源,可以灵活配置tcam规则表和寄存器使能开关,使其成为二层、三层或其他自定义协议处理单元,实现覆盖到绝大部分协议类型的报文,从而避免为支持某一种协议修改硬件代码的问题,缩短开发周期,节省时间及资源成本。
参照图3,示出了本发明实施例提供的报文解析方法的步骤流程图之二,所述方法可以包括:
步骤104,根据报文的协议层信息,确定与协议层类型对应的多个目标协议处理单元,控制多个目标协议处理单元使能开启。
本实施例中,首先将报文解析模块初始化,通过寄存器配置初始化信息,根据报文的协议层信息,确定与协议层类型对应的多个目标协议处理单元,需要说明的是,报文解析模块中有一个寄存器用于控制多个协议处理单元的使能,只有开启全局使能,才能够有权限参与查询tcam规则表,若未开启全局使能,则直接从该协议处理单元透传出去,因此,本实施例中根据确定的多个目标协议处理单元,控制多个目标协议处理单元使能开启,便于对报文进行协议层解析处理。
步骤105,根据网络协议层类型,对多个目标协议处理单元进行提取位宽配置。
具体的,根据网络协议层类型,对多个目标协议处理单元进行提取位宽大小配置,因为按照网络协议,每个协议层需要提取的位宽都不一样,如果都按照最大位宽去设计,例如IPV6的sip+dip已经是256bit,会导致资源的浪费,同时大位宽也会导致芯片时序难以收敛,即非常有必要对多个目标协议处理单元进行提取位宽大小配置,每个目标协议处理单元提取的关键信息放到队列里面,以便于进行报文编辑转发。
步骤101,接收待解析的报文,根据报文生成查表请求。
步骤102,根据查表请求,将报文和目标协议处理单元预先配置的tcam规则表并行匹配,生成匹配的action表,提取报文的关键信息。
步骤103,根据action表中预设协议层长度,剥离报文,得到报文的数据信息。
上述步骤101-103参照前序论述再次不再赘述。
需要说明的是,本实施方式不对步骤104和105的具体执行位置进行限定,在本实施方式中,为了便于理解以步骤104和105在步骤101之前执行为例进行说明。在实际的使用过程中,步骤104和105也可以作为一个步骤完成,此处不对每种情况进行一一赘述。
具体的,步骤105根据网络协议层类型,对多个目标协议处理单元进行提取位宽配置之后,还可以包括:
根据网络协议层类型,对多个目标协议处理单元配置tcam规则表,其中,tcam规则表用于提取目标处理单元对应的报文关键信息;
基于tcam规则表生成的action表,配置下一目标协议处理单元的协议层类型。
示例的,所述配置过程为:假如待解析报文为七元组(SMAC、DMAC、SIP、DIP、IP_PROTOCOL、SP、DP),报文层数共四层,MAC层,IP层,TCP层,报文载荷层。首先进行初始化配置,确定配置目标协议处理单元stage1、目标协议处理单元stage2、目标协议处理单元stage3和目标协议处理单元stage10的使能开关打开,其他的使能关闭。Stage1处理mac层相关信息,配置提取关键信息的位宽,由于需要提取smac、dmac,提取位宽可以配置为96bit。同理,Stage2处理IP层相关信息,因为是ipv4,所以tag提取位宽配置为72bit。Stage3处理tcp层信息,配置提取位宽为32bit。Stage10无需任何配置,会自动计算报文数据信息的校验和checksum。
接下来配置tcam规则表:Stage1自定义mac type类型为MAC_TYPE,Stage1输入的cur_type固定成MAC_TYPE,tcam规则表的协议层类型cur_type配置为MAC_TYPE,对应msk填0。Key0填0x0800,offset配置为6,对应msk位置填0,其他key1、2、3填写0xffff,对应msk每一bit位都填1,表示不关心。action表里nxt_type填写IPV4_TYPE,head_len为14,Rsp0_offset填0,Rsp1_offset填6,剩下的填写0xff,表示无效,这样就可以把smac/dmac提取出来。同理,Stage2配置将对应把SIP、DIP、IP_PROTOCOL提取出来,Stage3配置对应把SP、DP提取出来。
本发明实施例在达到第一实施例的有益效果的基础上,可以灵活配置模块内部的寄存器和tcam规则表,达到解析各种协议报文的目的,避免反复修改硬件代码,缩短开发周期,同时也方便后面转IC流片。并且,采用IC设计常见的模块化设计风格,将复杂的网络协议,按照网络协议层分级处理,方便维护和复用。
参照图4,示出了本发明实施例提供的报文解析方法的步骤流程图之三,所述方法还可以包括:
步骤101,接收待解析的报文,根据报文生成查表请求。
步骤102,根据查表请求,将报文和目标协议处理单元预先配置的tcam规则表并行匹配,生成匹配的action表,提取报文的关键信息。
步骤103,根据action表中预设协议层长度,剥离报文,得到报文的数据信息。
上述步骤101-103参照前序论述再次不再赘述。
步骤106,根据报文的数据信息,生成数据信息的校验和。
本实施例中,由于将报文解析模块划分成多个协议处理单元,每个协议处理单元完成一层协议的处理,将多个协议处理单元串接起来,从而流水线的完成整个报文的处理。其中,确定的目标协议处理单元用于处理网络协议层的解析,到最后一个目标协议处理单元时,得到的是报文的数据信息,根据报文的数据信息,生成数据信息的校验和目的是为了智能网卡最后面报文编辑模块重算udp/tcp checksum时,不必再缓存整包来计算,起到一定加速作用。
步骤107,通过对检验和进行验证,确定报文解析有效,将数据信息发送至报文编辑模块。
本发明实施例在达到第一实施例有益效果的基础上,通过对报文数据信息的检验和进行验证,确定报文解析有效,将数据信息发送至报文编辑模块编辑转发,实现多个协议处理单元同时对网络报文进行报文解析并得到报文解析结果,不需进行单线等待,处理时延大幅下降,明显提高了对网络报文的解析速度,同时本申请中网络报文中出现的错误不会影响后续报文的解析,具有更高的***容错性。
参照图5,示出了本发明实施例提供的报文解析方法的流程图,所述方法可以包括:
步骤201,预处理报文,生成报文编号。
具体的,预处理报文,将报文内容按照一个字节为单位偏移做一个编号,例如,报文开始第一个字节,编号为0,接下来一个字节,编号为1,依次类推生成报文编号。
步骤202,根据查表请求,查询预先配置的tcam规则表。
具体的,将上一步的编号、往后偏移两个字节对应的报文,还有报文解析模块的协议处理单元的cur_type协议层类型,组成查表请求,所述查表请求在判断协议层类型在当前协议处理单元合法的情况下,查询预先配置的tcam规则表。
步骤203,判断报文和tcam规则表是否匹配。
具体的,根据查表请求及报文内容,匹配目标协议处理单元预先配置的tcam规则表。其中,tcam规则表包括根据网络协议层类型配置的键值、掩码、协议层类型。若查表请求信息与所述tcam规则表匹配,进入步骤204,生成包括匹配结果的action表,根据action表,提取报文的关键信息;否则,若查表请求信息与tcam规则表不匹配,进入步骤206,将报文透传至下一目标协议处理单元。
步骤204,生成匹配的action表,提取报文的关键信息。
本实施例中,通过报文及报文编号,查询预先配置的tcam规则表信息,若上述信息匹配命中,则生成该规则的action表。其中,action表中包括下一目标协议处理单元的协议类型,当前协议层长度,还有要提取的报文的关键信息的偏移和长度。
步骤205,剥离报文,得到报文的数据信息。
具体的,根据action表中目标协议处理单元的预设协议层长度,对报文进行剥离,将剩下的报文部分传输给下一个目标协议处理单元处理。
步骤206,将报文透传至下一目标协议处理单元。
本发明实施例提供的报文解析方法,应用于报文解析模块,报文解析模块包括多个协议处理单元,通过接收待解析的报文,根据报文生成查表请求,根据查表请求,将报文和目标协议处理单元预先配置的tcam规则表并行匹配,生成匹配的action表,提取报文的关键信息,根据action表中预设协议层长度,剥离报文,得到报文的数据信息。本发明通过为每层协议单独分配一个协议处理单元,按照网络协议层顺序流水线处理,不需要缓存报文,既节省了模块内部的寄存器资源,又能达到高性能的需求,将报文和目标协议处理单元预先配置的tcam规则表并行匹配,剥离出报文的数据信息,从而实现线速、高效率的报文解析,且可以灵活配置模块内部的寄存器和tcam规则表,达到解析各种协议报文的目的,避免反复修改硬件代码,缩短开发周期。
参照图6,示出了本发明实施例提供的报文解析装置的装置框图,应用于图7所示的报文解析模块,所述报文解析模块包括多个协议处理单元,所述装置包括:
接收报文模块301,用于接收待解析的报文,根据所述报文生成查表请求;
匹配信息模块302,用于根据所述查表请求,将所述报文和目标协议处理单元预先配置的tcam规则表并行匹配,生成匹配的action表,提取所述报文的关键信息;
报文处理模块303,用于根据所述action表中预设协议层长度,剥离所述报文,得到所述报文的数据信息。
进一步的,所述接收报文模块301包括:
第一处理子模块,用于将所述报文按照预设字节偏移处理,进行报文编号;
第二处理子模块,用于基于所述报文编号,生成查表请求以查询预先配置的tcam规则表,所述查表请求包括所述报文、所述报文编号,以及所述报文包括的协议层类型。
进一步的,所述匹配信息模块302包括:
匹配子模块,用于根据所述报文,匹配所述目标协议处理单元预先配置的tcam规则表,其中,所述tcam规则表包括根据网络协议层类型配置的键值、掩码、协议层类型;
生成子模块,用于若所述查表请求信息与所述tcam规则表匹配,生成包括匹配结果的action表,根据所述action表,提取所述报文的关键信息;
第一传输子模块,用于将所述报文透传至下一所述目标协议处理单元。
进一步的,所述报文处理模块303包括:
第三处理子模块,用于根据所述action表中的预设协议层长度,从所述报文中剥离出所述关键信息;
第二传输子模块,用于将剥离出关键信息的所述报文传输至下一所述目标协议处理单元;
第四处理子模块,用于在所述报文的协议层信息剥离完成的情况下,得到所述报文的数据信息。
进一步的,所述装置还包括:
确定模块,用于根据所述报文的协议层信息,确定与协议层类型对应的多个目标协议处理单元,控制多个所述目标协议处理单元使能开启;
第一配置模块,用于根据网络协议层类型,对多个所述目标协议处理单元进行提取位宽配置。
进一步的,所述装置还包括:
第二配置模块,用于根据所述网络协议层类型,对多个所述目标协议处理单元配置tcam规则表,其中,所述tcam规则表用于提取所述目标处理单元对应的报文关键信息;
第三配置模块,用于基于所述tcam规则表生成的action表,配置下一所述目标协议处理单元的协议层类型。
进一步的,所述装置还包括:
生成模块,用于根据所述报文的数据信息,生成数据信息的校验和;
发送报文模块,用于通过对所述检验和进行验证,确定报文解析有效,将所述数据信息发送至报文编辑模块。
本发明实施例提供的报文解析装置,通过接收待解析的报文,根据报文生成查表请求,根据查表请求,将报文和目标协议处理单元预先配置的tcam规则表并行匹配,生成匹配的action表,提取报文的关键信息,根据action表中预设协议层长度,剥离报文,得到报文的数据信息。本发明通过为每层协议单独分配一个协议处理单元,按照网络协议层顺序流水线处理,不需要缓存报文,既节省了模块内部的寄存器资源,又能达到高性能的需求,将报文和目标协议处理单元预先配置的tcam规则表并行匹配,剥离出报文的数据信息,从而实现线速、高效率的报文解析,且可以灵活配置模块内部的寄存器和tcam规则表,达到解析各种协议报文的目的,避免反复修改硬件代码,缩短开发周期。
本发明实施例还提供了一种电子设备,如图8所示,包括处理器401、通信接口402、存储器403和通信总线404,其中,处理器401,通信接口402,存储器403通过通信总线404完成相互间的通信,
存储器403,用于存放计算机程序;
处理器401,用于执行存储器403上所存放的程序时,可以实现如下步骤:
接收待解析的报文,根据报文生成查表请求,根据查表请求,将报文和目标协议处理单元预先配置的tcam规则表并行匹配,生成匹配的action表,提取报文的关键信息,根据action表中预设协议层长度,剥离报文,得到报文的数据信息。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的报文解析方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的报文解析方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本发明所提供的一种报文解析方法、装置、电子设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (15)

1.一种报文解析方法,其特征在于,应用于报文解析模块,所述报文解析模块包括多个协议处理单元,所述方法包括:
接收待解析的报文,根据所述报文生成查表请求;
根据所述查表请求,将所述报文和目标协议处理单元预先配置的tcam规则表并行匹配,生成匹配的action表,提取所述报文的关键信息;
根据所述action表中预设协议层长度,剥离所述报文,得到所述报文的数据信息。
2.根据权利要求1所述的方法,其特征在于,所述接收待解析的报文,根据所述报文生成查表请求,包括:
将所述报文按照预设字节偏移处理,进行报文编号;
基于所述报文编号,生成查表请求以查询预先配置的tcam规则表,所述查表请求包括所述报文、所述报文编号,以及所述报文包括的协议层类型。
3.根据权利要求1所述的方法,其特征在于,所述根据所述查表请求,将所述报文和目标协议处理单元预先配置的tcam规则表并行匹配,生成匹配的action表,提取所述报文的关键信息,包括:
根据所述报文,匹配所述目标协议处理单元预先配置的tcam规则表,其中,所述tcam规则表包括根据网络协议层类型配置的键值、掩码、协议层类型;
若所述查表请求信息与所述tcam规则表匹配,生成包括匹配结果的action表,根据所述action表,提取所述报文的关键信息;
否则,将所述报文透传至下一所述目标协议处理单元。
4.根据权利要求1所述的方法,其特征在于,所述根据所述action表中预设协议层长度,剥离所述报文,得到所述报文的数据信息,包括:
根据所述action表中的预设协议层长度,从所述报文中剥离出所述关键信息;
将剥离出关键信息的所述报文传输至下一所述目标协议处理单元;
在所述报文的协议层信息剥离完成的情况下,得到所述报文的数据信息。
5.根据权利要求1所述的方法,其特征在于,所述接收待解析的报文,根据所述报文生成查表请求之前,还包括:
根据所述报文的协议层信息,确定与协议层类型对应的多个目标协议处理单元,控制多个所述目标协议处理单元使能开启;
根据网络协议层类型,对多个所述目标协议处理单元进行提取位宽配置。
6.根据权利要求5所述的方法,其特征在于,所述根据网络协议层类型,对多个所述目标协议处理单元进行提取位宽配置之后,还包括:
根据所述网络协议层类型,对多个所述目标协议处理单元配置tcam规则表,其中,所述tcam规则表用于提取所述目标协议处理单元对应的报文关键信息;
基于所述tcam规则表生成的action表,配置下一所述目标协议处理单元的协议层类型。
7.根据权利要求1所述的方法,其特征在于,所述根据所述action表中预设协议层长度,剥离所述报文,得到所述报文的数据信息之后,还包括:
根据所述报文的数据信息,生成数据信息的校验和;
通过对所述校验和进行验证,确定报文解析有效,将所述数据信息发送至报文编辑模块。
8.一种报文解析装置,其特征在于,应用于报文解析模块,所述报文解析模块包括多个协议处理单元,所述装置包括:
接收报文模块,用于接收待解析的报文,根据所述报文生成查表请求;
匹配信息模块,用于根据所述查表请求,将所述报文和目标协议处理单元预先配置的tcam规则表并行匹配,生成匹配的action表,提取所述报文的关键信息;
报文处理模块,用于根据所述action表中预设协议层长度,剥离所述报文,得到所述报文的数据信息。
9.根据权利要求8所述的装置,其特征在于,所述接收报文模块包括:
第一处理子模块,用于将所述报文按照预设字节偏移处理,进行报文编号;
第二处理子模块,用于基于所述报文编号,生成查表请求以查询预先配置的tcam规则表,所述查表请求包括所述报文、所述报文编号,以及所述报文包括的协议层类型。
10.根据权利要求8所述的装置,其特征在于,所述匹配信息模块包括:
匹配子模块,用于根据所述报文,匹配所述目标协议处理单元预先配置的tcam规则表,其中,所述tcam规则表包括根据网络协议层类型配置的键值、掩码、协议层类型;
生成子模块,用于若所述查表请求信息与所述tcam规则表匹配,生成包括匹配结果的action表,根据所述action表,提取所述报文的关键信息;
第一传输子模块,用于将所述报文透传至下一所述目标协议处理单元。
11.根据权利要求8所述的装置,其特征在于,所述报文处理模块包括:
第三处理子模块,用于根据所述action表中的预设协议层长度,从所述报文中剥离出所述关键信息;
第二传输子模块,用于将剥离出关键信息的所述报文传输至下一所述目标协议处理单元;
第四处理子模块,用于在所述报文的协议层信息剥离完成的情况下,得到所述报文的数据信息。
12.根据权利要求8所述的装置,其特征在于,所述装置还包括:
确定模块,用于根据所述报文的协议层信息,确定与协议层类型对应的多个目标协议处理单元,控制多个所述目标协议处理单元使能开启;
第一配置模块,用于根据网络协议层类型,对多个所述目标协议处理单元进行提取位宽配置。
13.根据权利要求12所述的装置,其特征在于,所述装置还包括:
第二配置模块,用于根据所述网络协议层类型,对多个所述目标协议处理单元配置tcam规则表,其中,所述tcam规则表用于提取所述目标协议处理单元对应的报文关键信息;
第三配置模块,用于基于所述tcam规则表生成的action表,配置下一所述目标协议处理单元的协议层类型。
14.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1至7任一所述的报文解析方法的步骤。
15.一种可读存储介质,其特征在于,所述可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的报文解析方法的步骤。
CN202310083400.2A 2023-02-08 2023-02-08 报文解析方法、装置、电子设备及存储介质 Active CN115883681B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310083400.2A CN115883681B (zh) 2023-02-08 2023-02-08 报文解析方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310083400.2A CN115883681B (zh) 2023-02-08 2023-02-08 报文解析方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN115883681A true CN115883681A (zh) 2023-03-31
CN115883681B CN115883681B (zh) 2023-06-23

Family

ID=85760874

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310083400.2A Active CN115883681B (zh) 2023-02-08 2023-02-08 报文解析方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN115883681B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116156026A (zh) * 2023-04-20 2023-05-23 中国人民解放军国防科技大学 一种支持rmt的解析器、逆解析器、解析方法及交换机
CN117938987A (zh) * 2024-03-25 2024-04-26 天津布尔科技有限公司 一种应用于车联网的协议网关及其控制方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1585379A (zh) * 2004-05-25 2005-02-23 华中科技大学 一种数据包的快速解析方法
CN108781185A (zh) * 2016-12-13 2018-11-09 甲骨文国际公司 提供用于网络设备的可编程包分类框架的***和方法
CN109672669A (zh) * 2018-12-03 2019-04-23 国家计算机网络与信息安全管理中心 流量报文的过滤方法及装置
CN111277612A (zh) * 2020-05-08 2020-06-12 常州楠菲微电子有限公司 一种网络报文处理策略生成方法、***及介质
CN112732241A (zh) * 2021-01-08 2021-04-30 烽火通信科技股份有限公司 一种多级并行高速处理下的可编程解析器及其解析方法
CN112929281A (zh) * 2021-02-04 2021-06-08 恒安嘉新(北京)科技股份公司 基于fpga的网络设备的报文处理方法、装置及设备
US20210185153A1 (en) * 2019-12-13 2021-06-17 Marvell Israel (M.I.S.L) Ltd. Hybrid Fixed/Programmable Header Parser for Network Devices
CN113691486A (zh) * 2020-05-19 2021-11-23 中移(成都)信息通信科技有限公司 报文修改的方法、装置、设备及存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1585379A (zh) * 2004-05-25 2005-02-23 华中科技大学 一种数据包的快速解析方法
CN108781185A (zh) * 2016-12-13 2018-11-09 甲骨文国际公司 提供用于网络设备的可编程包分类框架的***和方法
CN109672669A (zh) * 2018-12-03 2019-04-23 国家计算机网络与信息安全管理中心 流量报文的过滤方法及装置
US20210185153A1 (en) * 2019-12-13 2021-06-17 Marvell Israel (M.I.S.L) Ltd. Hybrid Fixed/Programmable Header Parser for Network Devices
CN111277612A (zh) * 2020-05-08 2020-06-12 常州楠菲微电子有限公司 一种网络报文处理策略生成方法、***及介质
CN113691486A (zh) * 2020-05-19 2021-11-23 中移(成都)信息通信科技有限公司 报文修改的方法、装置、设备及存储介质
CN112732241A (zh) * 2021-01-08 2021-04-30 烽火通信科技股份有限公司 一种多级并行高速处理下的可编程解析器及其解析方法
CN112929281A (zh) * 2021-02-04 2021-06-08 恒安嘉新(北京)科技股份公司 基于fpga的网络设备的报文处理方法、装置及设备

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
吉萌等: "高性能路由器上分布式协议栈的研究和实现" *
李洪兰等: "基于TCAM的高速报文过滤卡设计", 科学技术与工程 *
杨斌: "基于FPGA的低功耗高速网络报文解析***设计", 电子技术与软件工程 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116156026A (zh) * 2023-04-20 2023-05-23 中国人民解放军国防科技大学 一种支持rmt的解析器、逆解析器、解析方法及交换机
CN117938987A (zh) * 2024-03-25 2024-04-26 天津布尔科技有限公司 一种应用于车联网的协议网关及其控制方法

Also Published As

Publication number Publication date
CN115883681B (zh) 2023-06-23

Similar Documents

Publication Publication Date Title
CN115883681A (zh) 报文解析方法、装置、电子设备及存储介质
US7599364B2 (en) Configurable network connection address forming hardware
US8681819B2 (en) Programmable multifield parser packet
CN112491708A (zh) IPv6报文的路由头封装方法及装置
RU2608874C2 (ru) Способ и устройство для модификации и переадресации сообщения в сети передачи данных
EP1715631A1 (en) Method and apparatus for managing a network flow in a high performance network interface
JP2015165650A (ja) ソフトウェア・デファインド・ネットワークエンジンにおいてパケット修正・転送のためにルックアップを生成し決定を行う装置および方法
WO2020087400A1 (zh) 一种报头解析装置及方法
CN111614580A (zh) 一种数据转发方法、装置及设备
CN112929419A (zh) 一种数据包传输方法、装置、电子设备及可读存储介质
CN113794788A (zh) 网关导流方法、***、装置、设备、存储介质及产品
CN114946167B (zh) 一种报文解析方法和装置
CN117544587A (zh) 一种报文生成方法、装置、电子设备及存储介质
US10185783B2 (en) Data processing device, data processing method, and non-transitory computer readable medium
CN112087389B (zh) 一种报文匹配查表方法、***、存储介质和终端
CN114079634B (zh) 一种报文转发方法、装置及计算机可读存储介质
WO2016101490A1 (zh) 更新处理方法及装置
CN113098780B (zh) 虚拟网络的报文处理方法、电子设备及存储介质
CN106789440B (zh) 一种ip包包头检测方法及装置
CN105634999A (zh) 一种介质访问控制地址的老化方法及装置
CN115277553A (zh) 一种流表存储方法、装置、设备和计算机可读存储介质
CN109905322B (zh) 一种报文匹配信息预处理的方法及装置
US10389626B2 (en) Transfer device
CN116074404A (zh) 解析器件及报文解析方法、转发芯片、网络设备
CN117240947B (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
CP02 Change in the address of a patent holder

Address after: 100007 room 205-32, floor 2, building 2, No. 1 and No. 3, qinglonghutong a, Dongcheng District, Beijing

Patentee after: Tianyiyun Technology Co.,Ltd.

Address before: 100093 Floor 4, Block E, Xishan Yingfu Business Center, Haidian District, Beijing

Patentee before: Tianyiyun Technology Co.,Ltd.

CP02 Change in the address of a patent holder