报文解析方法、解析器件及网络设备与流程

文档序号:35683045发布日期:2023-10-08 22:55阅读:27来源:国知局
报文解析方法、解析器件及网络设备与流程

本技术涉及通信网络,尤其涉及一种报文解析方法、解析器件及网络设备。


背景技术:

1、解析器是网络数据平面的关键组件,其用于对报文进行解析,以确定报文的关键字段,比如协议类型、报文所携带的目的地址等,为数据平面的其他处理组件提供报文的关键信息。

2、相关技术方案中,解析器提取报文关键字段的方案通常包括串行方案和并行方案两种。串行方案中,通常由多级串行连接的解析器分片组成,形成流水线结构,采用流水线作业的方式从报文中解析出报文的关键字段。每一个解析器分片只用于解析报文中的一个协议字段,因此解析器的解析能力是根据解析器分片的数量决定的,解析器分片的数量越多,解析器能够解析的协议字段数量越多,因此当一些复杂的报文可以包括几十个协议字段时,往往需要几十个解析器分片才能够实现这样复杂报文的解析。由于是串行解析的,因此解析器分片的数量越多,导致解析的性能、延迟等受到影响,功耗面积对应增加。并行方案中,解析器同时解析出报文中所有的协议字段,解析器解析的过程是通过查找匹配表实现的,并且所使用的匹配表需要包含所有可能出现的解析结果。因此当一些复杂的报文可以包括几十个协议字段时,匹配表中的表项数量会协议类型数量增加呈现指数级增长,并且解析器无法在一个周期内提取出所有的协议字段,导致解析器处理周期变长,增加解析器的延迟,解析效率低,同时也会导致报文处理的吞吐量较低。


技术实现思路

1、本技术的目的在于一种报文解析方法,能够提高报文解析的效率,以及提高报文解析的吞吐量。

2、基于上述目的,本技术提供一种报文解析方法,该方法包括:

3、确定一预设协议解析树中各条协议转发路径中的每一层报文头中的协议字段,对所有的协议字段执行压缩和关键比特提取,确定每一条协议转发路径所对应的关键比特串和关键比特位置,关键比特串包括多个关键比特,关键比特位置用以指示每一个关键比特在对应各层报文头中的比特位置,所述关键比特串用以指示该条协议转发路径中各层协议之间的转换路径信息以及对应的各层协议的协议类型;

4、存储关键比特串和关键比特位置,并存储每一个关键比特串与对应的协议转发路径的映射关系;

5、接收一目标报文,目标报文包含依次嵌套的多个协议层的报文头,根据所存储的关键比特位置在各个报文头对应的比特位置提取比特值,组成一目标比特串;

6、将目标比特串与所存储的关键比特串进行匹配,根据匹配结果确定所述目标报文中各层协议之间的转换路径信息以及对应的各层协议的协议类型。

7、进一步的,协议解析树包括一个根节点和多个子节点,根节点和各个子节点用以指示各层报文头所对应的网络协议类型,根节点与各个子节点之间构成了多条不同的协议转发路径,协议转发路径用以指示报文中各层协议之间的转换路径信息。

8、进一步的,对所有的协议字段执行压缩和关键比特提取,确定每一条协议转发路径所对应的关键比特串和关键比特位置,包括:

9、基于每一条协议转发路径构建对应的配置报文,配置报文包括依次嵌套的多个协议层的报文头和报文体,所述协议层的嵌套顺序与所述协议转发路径相同,其中,报文头包括协议字段,协议字段中的值指示报文头的下一层报文头的协议类型;

10、将每一条配置报文中除协议字段外的所有剩余比特均置x,将每一条配置报文生成为对应的配置比特串;

11、获取所有的配置比特串的长度,得到长度的最大值;

12、以长度的最大值为基准,将配置比特串的长度小于最大值的配置比特串计算需要补齐的长度,在配置比特串的末尾添加相应长度的比特x,以使所有的配置比特的长度均为最大值;

13、将所有的配置比特进行排列,得到具有m行y列的配置比特数据,其中,m行对应m个配置比特串,y列对应每一个比特在配置报文中的比特位置。

14、进一步的,对所有的协议字段执行压缩和关键比特提取,确定每一条协议转发路径所对应的关键比特串和关键比特位置,还包括:

15、s401、遍历配置比特数据的每一列,若该列的比特值均为x,则删除该列,并记录所保留的列编号,记录执行删除列操作后的配置比特数据为第一配置比特数据;

16、s402、遍历所述第一配置比特数据的任意两列,若两列的比特值均相同,则将其中的一列删除,并记录所保留的列编号,记录执行删除列操作后的配置比特数据为第二配置比特数据;

17、s403、遍历所述第二配置比特数据的每一列,若该列的比特值仅为x和1,则删除该列,并记录所保留的列编号,记录执行删除列操作后的配置比特数据为第三配置比特数据;

18、s404、遍历所述第三配置比特数据的每一列,若该列的比特值仅为x和0,则删除该列,并记录所保留的列编号,记录执行删除列操作后的配置比特数据为第四配置比特数据。

19、进一步的,对所有的协议字段执行压缩和关键比特提取,确定每一条协议转发路径所对应的关键比特串和关键比特位置,还包括:

20、遍历第四配置比特数据的任意两行的比特值,若均不一致,则存储第四配置比特数据,其中,第四配置比特数据中的每一行数据对应每一条协议转发路径的关键比特串,第四配置比特数据中的列编号对应关键比特位置;

21、若存在比特值的相同的两行,则存储第二配置比特数据,第二配置比特数据的每一行数据对应每一条协议转发路径的关键比特串,第二配置比特数据中的列编号对应关键比特位置。

22、进一步的,对所有的协议字段执行压缩和关键比特提取,确定每一条协议转发路径所对应的关键比特串和关键比特位置,还包括:

23、s501、假设第四配置比特数据的总列数为l列以及总行数是m行,m行数据表示m条协议转发路径所对应的m个配置比特串,设置遍历的初始列数量l0为=;

24、s502、获取从l列中选择l0列的所有列组合,对每一个列组合进行遍历,若所选择的列组合中没有重复的配置比特串,则停止遍历,记录所选择的列组合中的列编号,得到m条协议转发路径所对应的m个关键比特串,所选择的列组合中列编号对应所述关键比特位置;

25、s503、若所选择的列组合中存在重复的配置比特串,则将l0递增1,从l列中选择l0+1列的所有列组合,重复执行步骤s502;

26、s504、重复执行步骤s503,直至从l列中所选择的列组合使m行配置比特串不重复,停止遍历,记录所选择的列组合中的列编号,得到m条协议转发路径所对应的m个关键比特串,所选择的列组合中列编号对应关键比特位置。

27、进一步的,对所有的协议字段执行压缩和关键比特提取,确定每一条协议转发路径所对应的关键比特串和关键比特位置,还包括:

28、s601、假设第四配置比特数据的总列数为l列以及总行数是m行,m行数据表示m条协议转发路径所对应的m个配置比特串,设置遍历的初始列数量为l列;

29、s602、从l列中任选一列,判断除该列后剩余的所有列中有没有重复的配置比特串,若没有重复的,执行步骤s604,若有重复的,执行步骤s603;

30、s603、从l列中重新选择一列,所选的列与上次所选的列不能重复,判断除该列后剩余的所有列中有没有重复的配置比特串,若没有重复的,执行步骤s604,若有重复的,重新执行步骤s603,若l列中所有的列均被选择过且无法再删除,执行步骤s605;

31、s604、从l列中删除所选择的列,记录所剩余的列编号,并记录删除列操作后剩余的配置比特数据,执行步骤s602;

32、s605、记录所剩余的列编号,得到m条协议转发路径所对应的m个关键比特串,剩余的列编号对应关键比特位置。

33、基于上述目的,本技术提供一种解析器件,器件包括:

34、提取模块,用于确定一预设协议解析树中各条协议转发路径中的每一层报文头中的协议字段,对所有的协议字段执行压缩和关键比特提取,确定每一条协议转发路径所对应的关键比特串和关键比特位置,关键比特串包括多个关键比特,关键比特位置用以指示每一个关键比特在对应各层报文头中的比特位置,关键比特串用以指示该条协议转发路径中各层协议之间的转换路径信息以及对应的各层协议的协议类型;

35、存储模块,用于存储关键比特串和所述关键比特位置,并存储每一个关键比特串与对应的协议转发路径的映射关系;

36、解析模块,用于接收一目标报文,目标报文包含依次嵌套的多个协议层的报文头,根据所存储的关键比特位置在各个报文头对应的比特位置提取比特值,组成一目标比特串;

37、匹配模块,用于将目标比特串与所存储的关键比特串进行匹配,根据匹配结果确定所述目标报文中各层协议之间的转换路径信息以及对应的各层协议的协议类型。

38、基于上述目的,本技术提供一种网络设备,包括如上所述的解析器件。

39、基于上述目的,本技术提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上所述方法的步骤。

40、本技术能够缩短报文解析的处理周期,降低报文解析的延迟,提高报文解析的效率,提高报文处理的吞吐量。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1