报文的分段解析方法、装置、设备和存储介质与流程

文档序号:34003575发布日期:2023-04-29 19:34阅读:29来源:国知局
报文的分段解析方法、装置、设备和存储介质与流程

本公开涉及网络,尤其涉及一种报文的分段解析方法、装置、设备和存储介质。


背景技术:

1、对于多层网络结构,其不同层完成不同功能,每层有众多协议组成。正确解析数据包是数据传输中的重要一环,无论是数据处理还是数据转发都需要解析数据包,获取该数据包相应的报头信息,如mac(medium access control,介质访问控制)地址、网络协议(internet protocol,ip)协议、ip地址等。

2、目前主流的解析数据包的方法是:根据数据类型,开发特定的解析模块,其中数据格式和数据长度固定,如需处理多类型的数据包需要添加多个解析模块。这类解析方法通用性低,适用于数据复杂度低的应用场景。此外,这类解析方法由于每层所需要处理的数据是包含全部的数据报文,导致所需要处理的数据长度较长,降低了系统的解析速度,对于数据包传输类型不同的通信系统来说并不是很灵活,这将大大降低系统解析的处理速度。


技术实现思路

1、本公开实施例提供一种报文的分段解析方法、装置、设备和存储介质。

2、本公开的技术方案是这样实现的:

3、第一方面,提供了一种报文的分段解析方法,待解析的报文包括:报头;所述方法包括:

4、根据解析配置信息,对所述报头进行第n阶段解析得到第n阶段解析结果,其中,当所述n小于n时,所述第n阶段解析结果包括:所述第n阶段解析出的报头信息、所述报文内待解析的下一层报头类型及下一阶段解析的偏移地址;其中,所述n为所述报头的最大解析阶段数;

5、当所述下一层报头类型不是第n+1阶段解析的报头类型,跳过对所述报头的第n+1阶段解析,并进入到第n+2阶段解析;

6、当所述下一层报头类型是第n+1阶段解析的报头类型,根据所述偏移地址对所述报头进行第n+1阶段解析;

7、当完成所述第n阶段解析或前n-1层协议解析确定跳过第n阶段解析时,停止对所述报头的本次分段解析。

8、上述技术方案中,所述解析配置信息包括:字段解析信息及阶段流转信息;

9、所述根据解析配置信息,对所述报头进行第n阶段解析得到第n阶段解析结果,包括:

10、根据第n阶段的字段解析信息以及第n阶段待解析的报头类型,对所述报头进行报头域字段解析;其中,所述报头域字段包括:帧类型、报头长度、报头编号和/或掩码;

11、根据所述报头域字段查询所述第n阶段的阶段流转信息,确定待解析的所述下一层报头类型和所述下一阶段解析的偏移地址。

12、上述技术方案中,所述根据所述偏移地址对所述报头进行第n+1阶段解析,包括:

13、在进行第n+1阶段解析时,将所述报头包含的待解析的报头域字段与所述第n+1阶段的报头域字段表匹配;

14、若所述报头包含的待解析的报头域字段为包含在所述第n+1阶段的报头域字段表的有效字段,则解析所述报头包含的待解析的报头域字段的内容。

15、上述技术方案中,所述方法还包括:

16、若所述报头包含的待解析的报头域字段为不包含在所述第n+1阶段的报头域字段表的无效字段,则停止所述第n+1阶段的解析。

17、上述技术方案中,所述方法还包括:

18、当接收的数据包大于分段解析的可处理报长时,将所述数据包按照预设长度划分为多个数据段;

19、从第1个所述数据段开始进行所述报头的分段解析;

20、拼接多个所述数据段的分段解析的解析结果,得到所述报头的解析结果。

21、上述技术方案中,所述当所述下一层报头类型是第n+1阶段解析的报头类型,根据所述偏移地址对所述报头进行第n+1阶段解析,包括:

22、在本数据段进行第n+1阶段解析时,若根据所述下一阶段解析的偏移地址、所述下一层报头类型的报头长度和第n+1阶段的字段解析信息指示的解析长度,确定出待解析的字段部分位于下一个数据段时,结合所述本数据段及所述下一数据段进行第n+1阶段解析。

23、上述技术方案中,所述结合所述本数据段及所述下一数据段进行第n+1阶段解析,包括:

24、根据所述偏移地址对所述本数据段进行第n+1阶段解析,得到指示所述第n+1阶段解析结果的第一部分字段,并确定所述第n+1阶段未完成解析;

25、在所述下一个数据段进入未完成解析的所述第n+1阶段后,根据所述第一部分字段的长度以及所述下一层报头类型的报头长度,继续对所述下一个数据段进行第n+1阶段解析,得到指示所述第n+1阶段解析结果的第二部分字段;

26、将所述第二部分字段拼接到所述第一部分字段的后面,得到所述第n+1阶段解析结果。

27、上述技术方案中,所述当所述下一层报头类型是第n+1阶段解析的报头类型,根据所述偏移地址对所述报头进行第n+1阶段解析,包括:

28、在本数据段进行第n+1阶段解析时,若根据所述下一阶段解析的偏移地址、所述下一层报头类型的报头长度和第n+1阶段的字段解析信息指示的解析长度,确定出待解析的字段全部位于所述本数据段时,对所述本数据段进行第n+1阶段解析,得到所述第n+1阶段解析结果。

29、第二方面,提供了一种报文的分段解析装置,待解析的报文包括:报头;所述装置包括阶段解析模块;所述阶段解析模块用于:

30、根据解析配置信息,对所述报头进行第n阶段解析得到第n阶段解析结果,其中,当所述n小于n时,所述第n阶段解析结果包括:所述第n阶段解析出的报头信息、所述报文内待解析的下一层报头类型及下一阶段解析的偏移地址;其中,所述n为所述报头的最大解析阶段数;

31、当所述下一层报头类型不是第n+1阶段解析的报头类型,跳过对所述报头的第n+1阶段解,并进入到第n+2阶段解析;

32、当所述下一层报头类型是第n+1阶段解析的报头类型,根据所述偏移地址对所述报头进行第n+1阶段解析;

33、当完成所述第n阶段解析或前n-1层协议解析确定跳过第n阶段解析时,停止对所述报头的本次分段解析。

34、第三方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现第一方面任一项所述报文的分段解析方法的步骤。

35、第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现第一方面任一项所述报文的分段解析方法的步骤。

36、本公开实施例所提供的报文的分段解析方法、装置、设备和存储介质,通过根据解析配置信息对报文包括的报头进行第n阶段解析得到第n阶段解析结果,当第n阶段解析结果包括的待解析的下一层报头类型不是第n+1阶段解析的报头类型时,跳过对报头的第n+1阶段解析,并进入到第n+2阶段解析,当待解析的下一层报头类型是第n+1阶段解析的报头类型时,根据第n阶段解析结果包括的下一阶段的偏移地址对报头进行第n+1阶段解析,以及当完成第n阶段解析或前n-1层协议解析确定跳过第n阶段解析时,停止对报头的本次分段解析,如此,第一方面,不管当前报文携带哪些阶段能够解析的报头,都能够被解析到,故针对携带不同类型报头的报文在不同阶段都可以采用通用解析方式,这样,在分段解析多类型的数据包时,无需添加多个解析模块,只需编写一个解析模块,每个阶段的解析代码都是相同的,由此减少了解析代码的开发量,增加了通用性。第二方面,在没有携带对应阶段的报头时跳过对应阶段,节省不必要阶段报头的解析消耗。第三方面,跳过了不必要解析的报头阶段,能够极大地提高数据解析速度。

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