运行时可编程的任意网络协议报文解析装置及方法制造方法及图纸

技术编号:38317145 阅读:11 留言:0更新日期:2023-07-29 08:59
本公开涉及一种运行时可编程的任意网络协议报文解析装置及方法,包括预处理单元、指令确定单元、解析单元、元数据生成单元。通过所述预处理单元从待解析报文中提取输入端口编号、报文头部标记;然后,由指令确定单元在报头标记为有效的情况下,根据所述输入端口编号,确定第一指令;之后,再由解析单元利用所述第一指令对所述待解析报文进行解析,将解析出的第一层协议的长度、第二层协议的类型输入至元数据生成单元;由元数据生成单元生成待解析报文的元数据。根据本公开实施例的报文解析装置能够无需与软件交互,因此降低延迟,提高解析效率;并且降低功耗和成本。并且降低功耗和成本。并且降低功耗和成本。

【技术实现步骤摘要】
运行时可编程的任意网络协议报文解析装置及方法


[0001]本公开涉及通信领域,尤其涉及一种运行时可编程的任意网络协议报文解析装置及方法。

技术介绍

[0002]从端口进入到网络设备的报文通常由多层协议组合而成,并且每一层协议的类型选择颇多,这就导致网络数据的解析过程非常复杂。
[0003]现有的网络协议解析器主要有两类:第一类为基于三态内容寻址存储器(Ternary Content Addressable Memory,TCAM)的可编程协议解析器,这种网络协议解析器由于使用了TCAM,所以功耗和成本都比较高。第二类为基于多核单指令多数据流(Single Instruction Multiple Data,SIMD)微处理器的可编程协议解析器。这种网络协议解析器本质上为利用软件解析,所以解析效率低,延迟大。

技术实现思路

[0004]有鉴于此,本公开提出了一种运行时可编程的任意网络协议报文解析方案。
[0005]根据本公开的一方面,提供了一种运行时可编程的任意网络协议报文解析装置,包括:预处理单元、指令确定单元、解析单元、元数据生成单元;
[0006]所述预处理单元,用于从待解析报文中提取输入端口编号、报文头部标记;
[0007]所述指令确定单元,用于在报文头部标记为有效的情况下,根据所述输入端口编号,确定第一指令;
[0008]所述解析单元,用于利用所述第一指令对所述待解析报文进行解析,确定所述待解析报文中第一层协议的长度、第二层协议的类型;
[0009]所述元数据生成单元,用于根据所述第一层协议的长度、第二层协议的类型,生成元数据。
[0010]在一种可能的实现方式中,所述装置还包括:协议字段存储单元,用于:
[0011]根据所述第一指令,确定所述待解析报文中被提取的字段,以及所述字段在解析数据中的位置;
[0012]根据所述字段、所述位置,生成所述协议字段。
[0013]在一种可能的实现方式中,所述解析单元,用于根据所述第二层协议的类型,确定解析第二层协议对应报文的第二指令针;
[0014]所述指令确定单元,用于根据所述第二指令针,确定第二指令;
[0015]所述解析单元,用于利用所述第二指令对所述待解析报文进行解析,确定第二层协议的长度、第三层协议的类型;
[0016]所述元数据生成单元,用于根据所述第一层协议的长度、所述第二层协议的长度、所述第二层协议的类型、第三层协议的类型,生成所述元数据。
[0017]在一种可能的实现方式中,所述解析单元,包括:协议字段提取单元、下层协议解
析单元、协议长度解析单元;
[0018]所述协议字段提取单元,用于根据所述第一指令在待解析报文中确定下层协议字段、协议长度字段;
[0019]所述下层协议解析单元,用于:
[0020]根据所述第一指令,确定所述待解析报文针对下层协议类型的第一解析方式;
[0021]在所述第一解析方式为第一方式的情况下,利用所述下层协议字段在所述第一指令中进行匹配查找,确定第一匹配项;
[0022]根据所述第一匹配项,确定所述第二层协议的类型;
[0023]所述协议长度解析单元,用于:
[0024]根据所述第一指令,确定所述报文针对本层协议长度的第二解析方式;
[0025]在所述第二解析方式为第二方式的情况下,利用所述协议长度字段在所述第一指令中进行匹配查找,确定第二匹配项;
[0026]根据所述第二匹配项,确定所述第一层协议的长度。
[0027]在一种可能的实现方式中,所述下层协议解析单元,还用于:
[0028]在所述第一解析方式为第三方式的情况下,将所述第一指令中第一字段作为所述第二层协议的类型;
[0029]所述协议长度解析单元,还用于:
[0030]在所述第二解析方式为第四方式的情况下,将所述第一指令中第二字段作为所述第一层协议的长度;
[0031]在所述第二解析方式为第五方式的情况下,利用所述第一指令对所述协议长度字段进行运算操作,确定所述第一层协议的长度。
[0032]在一种可能的实现方式中,所述预处理单元,还用于,将所述待解析报文与数据总线对齐;将所述待解析报文输入所述协议字段提取单元。
[0033]在一种可能的实现方式中,所述协议字段提取单元,还用于,将所述待解析报文输入所述协议字段存储单元、元数据生成单元。
[0034]根据本公开的一方面,提供了一种运行时可编程的任意网络协议报文解析方法,包括:
[0035]从待解析报文中提取输入端口编号、报文头部标记;
[0036]在报文头部标记为有效的情况下,根据所述输入端口编号,确定第一指令;
[0037]利用所述第一指令对所述待解析报文进行解析,确定所述待解析报文中第一层协议的长度、第二层协议的类型;
[0038]根据所述第一层协议的长度、第二层协议的类型,生成元数据。
[0039]在一种可能的实现方式中,所述方法还包括:
[0040]根据所述第一指令,确定所述待解析报文中被提取的字段,以及所述字段在解析数据中的位置;
[0041]根据所述字段、所述位置,生成所述协议字段。
[0042]在一种可能的实现方式中,所述方法还包括:
[0043]根据所述第二层协议的类型,确定解析第二层协议对应报文的第二指令针;
[0044]根据所述第二指令针,确定第二指令;
[0045]利用所述第二指令对所述待解析报文进行解析,确定第二层协议的长度、第三层协议的类型;
[0046]根据所述第一层协议的长度、所述第二层协议的长度、所述第二层协议的类型、第三层协议的类型,生成所述元数据。
[0047]在一种可能的实现方式中,所述利用所述第一指令对所述待解析报文进行解析,确定所述待解析报文中第一层协议的长度、第二层协议的类型,包括:
[0048]根据所述第一指令在待解析报文中确定下层协议字段、协议长度字段;
[0049]根据所述第一指令,确定所述待解析报文针对下层协议类型的第一解析方式;
[0050]在所述第一解析方式为第一方式的情况下,利用所述下层协议字段在所述第一指令中进行匹配查找,确定第一匹配项;
[0051]根据所述第一匹配项,确定所述第二层协议的类型;
[0052]根据所述第一指令,确定所述报文针对本层协议长度的第二解析方式;
[0053]在所述第二解析方式为第二方式的情况下,利用所述协议长度字段在所述第一指令中进行匹配查找,确定第二匹配项;
[0054]根据所述第二匹配项,确定所述第一层协议的长度。
[0055]在一种可能的实现方式中,所述利用所述第一指令对所述待解析报文进行解析,确定所述待解析报文中第一层协议的长度、第二层协议的类型,还包括:
[0056]在所述第一解析方式为第三方式的情况下,将所本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种运行时可编程的任意网络协议报文解析装置,其特征在于,包括:预处理单元、指令确定单元、解析单元、元数据生成单元;所述预处理单元,用于从待解析报文中提取输入端口编号、报文头部标记;所述指令确定单元,用于在报文头部标记为有效的情况下,根据所述输入端口编号,确定第一指令;所述解析单元,用于利用所述第一指令对所述待解析报文进行解析,确定所述待解析报文中第一层协议的长度、第二层协议的类型;所述元数据生成单元,用于根据所述第一层协议的长度、第二层协议的类型,生成元数据。2.根据权利要求1所述的装置,其特征在于,所述装置还包括:协议字段存储单元,用于:根据所述第一指令,确定所述待解析报文中被提取的字段,以及所述字段在解析数据中的位置;根据所述字段、所述位置,生成所述协议字段。3.根据权利要求1所述的装置,其特征在于,所述解析单元,用于根据所述第二层协议的类型,确定解析第二层协议对应报文的第二指令针;所述指令确定单元,用于根据所述第二指令针,确定第二指令;所述解析单元,用于利用所述第二指令对所述待解析报文进行解析,确定第二层协议的长度、第三层协议的类型;所述元数据生成单元,用于根据所述第一层协议的长度、所述第二层协议的长度、所述第二层协议的类型、第三层协议的类型,生成所述元数据。4.根据权利要求1所述的装置,其特征在于,所述解析单元,包括:协议字段提取单元、下层协议解析单元、协议长度解析单元;所述协议字段提取单元,用于根据所述第一指令在待解析报文中确定下层协议字段、协议长度字段;所述下层协议解析单元,用于:根据所述第一指令,确定所述待解析报文针对下层协议类型的第一解析方式;在所述第一解析方式为第一方式的情况下,利用所述下层协议字段在所述第一指令中进行匹配查找,确定第一匹配项;根据所述第一匹配项,确定所述第二层协议的类型;所述协议长度解析单元,用于:根据所述第一指令,确定所述报文针对本层协议长度的第二解析方式;在所述第二解析方式为第二方式的情况下,利用所述协议长度字段...

【专利技术属性】
技术研发人员:袁光黄益人
申请(专利权)人:益思芯科技上海有限公司
类型:发明
国别省市:

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

1