本文作者:kaifamei

数据包的混合解析方法及系统与流程

更新时间:2025-12-12 14:39:44 0条评论

数据包的混合解析方法及系统与流程



1.本发明涉及计算机技术领域,特别是涉及数据包的混合解析方法及系统。


背景技术:



2.通过情况下,可以采用固化解析器和可编程解析器对协议进行解析。固化解析器能够快速以及高效的处理当前已有的协议,但是对于未来的协议或者处于初稿状态的协议则很难支持,同样协议类型种类太多,有很多不是特别重要的协议和报文头,如ipv4 option头,tcp optiont头如果都用固化解析器来实现的话,会使得固化解析器非常复杂,难以实现。而可编程解析器则可以很好的支持各种新协议,可选的协议,以及用户自定义协议和私有格式头,但是效率较低,需要更多的硬件开销、延时以及更大的功耗。因此,如何能够既简单又高效地实现对协议和报文头的解析是目前的一个研究方向。


技术实现要素:



3.本发明提供一种数据包的混合解析方法及系统,用以解决现有技术中不能简单又高效地实现对协议和报文头的解析的缺陷,实现简单又高效地实现对协议和报文头的解析。
4.一种数据包的混合解析方法,所述方法应用于混合解析系统,所述混合解析系统中包括多个可编程解析器和多个固化解析器,网络模型结构中的每一层分别对应相应的可编程解析器和固化解析器,所述方法包括:所述混合解析系统中的当前固化解析器接收待解析的数据包;所述混合解析系统中的当前固化解析器确定所述待解析的数据包中的至少一个第一目标协议和/或第一目标报文头,并调用所述混合解析系统中相应的可编程解析器;其中,所述至少一个第一目标协议和/或第一目标报文头对应的数据为需要采用所述混合解析系统中的可编程解析器解析的数据;所述混合解析系统中相应的可编程解析器,解析所述第一目标协议和/或第一目标报文头对应的数据,并且在确定返回固化解析器时,将待解析的下一个协议对应的层编号返回所述混合解析系统中的当前固化解析器;所述混合解析系统中的当前固化解析器基于所述待解析的下一个协议对应的层编号,确定待解析的下一个协议对应的固化解析器;所述待解析的下一个协议对应的固化解析器解析所述待解析的下一个协议。
5.在其中一个实施例中,所述混合解析系统中的当前固化解析器基于所述待解析的下一个协议对应的层编号,确定待解析的下一个协议对应的固化解析器,包括:所述混合解析系统中的当前固化解析器将所述待解析的下一个协议对应的层编号与当前固化解析器对应的标号相比较;在所述待解析的下一个协议对应的层编号与当前固化解析器对应的标号相同的情况下,将当前固化解析器确定为所述待解析的下一个协议对应的固化解析器;或,在确定所述待解析的下一个协议对应的层编号与当前固化解析器对应的标号不同的情况下,则将所述待解析的下一个协议对应的层编号对应层的固化解析器确定为所述待解析的下一个协议对应的固化解析器。
6.在其中一个实施例中,可编程解析器和固定解析器之间均通过两根总线输出信息;其中,一根总线用于输出知名报文信息,另一根总线用于输出用户自定义或者用户关注的非著名报文信息。
7.在其中一个实施例中,可编程解析器和固定解析器解析数据过程中,根据计算模块得到的计算结果确定对应的偏移。
8.在其中一个实施例中,所述混合解析系统中的当前固化解析器确定所述待解析的数据包中的至少一个第一目标协议和/或第一目标报文头,包括:所述混合解析系统中的当前固化解析器基于寄存器和预设的规则,确定所述待解析的数据包中的至少一个第一目标协议和/或第一目标报文头。
9.在其中一个实施例中,所述混合解析系统中的当前固化解析器确定所述待解析的数据包中的至少一个第一目标协议和/或第一目标报文头,包括:所述混合解析系统中的当前固化解析器基于所述待解析的数据包中当前层对应的数据包,从寄存器中筛选得到至少一个第一协议和至少一个第一报文头;其中,所述至少一个第一协议为所述混合解析系统中的当前固化解析器无法识别的协议,所述至少一个第一报文头为所述混合解析系统中的当前固化解析器无法识别的报文头;所述混合解析系统中的当前固化解析器按照预设的规则,从所述至少一个第一协议中确定得到至少一个第一目标协议,并从所述至少一个第一协议和所述至少一个第一报文头中确定得到至少一个第一目标报文头。
10.在其中一个实施例中,所述混合解析系统中相应的可编程解析器,解析所述第一目标协议和/或第一目标报文头对应的数据,包括:所述混合解析系统中相应的可编程解析器从数据包中查当前第一目标协议和/或当前第一目标报文头对应的关键字;在查到当前第一目标协议和/或当前第一目标报文头对应的关键字的情况下,对所述关键字对应数据进行解析,并确定是否需要进行编辑、是否需要存储、存储的位置、下一个待查的第一目标协议和/或当前第一目标报文头关键字来源、是否需要停止可编程解析以及待解析的下一个协议对应的层编号;或,在未查到当前第一目标协议和/或当前第一目标报文头对应的关键字的情况下,则结束对当前第一目标协议和/或当前第一目标报文头的解析。
11.一种数据包的混合解析系统,所述混合解析系统中包括固化解析器模块和可编程解析器模块,其中,固化解析器模块包括多个固化解析器,可编程解析器模块包括多个可编程解析器,网络模型结构中的每一层分别对应相应的可编程解析器和固化解析器;固化解析器模块,用于接收待解析的数据包;所述固化解析器模块,还用于确定所述待解析的数据包中的至少一个第一目标协议和/或第一目标报文头,并调用可编程解析器模块解析所述至少一个第一目标协议和/或第一目标报文头对应的数据;其中,所述至少一个第一目标协议和/或第一目标报文头对应的数据为需要采用所述可编程解析器模块解析的数据;所述可编程解析器模块,用于解析所述第一目标协议和/或第一目标报文头对应的数据,并且在确定返回固化解析器模块时,将待解析的下一个协议对应的层编号返回固化解析器模块;所述固化解析器模块,还用于基于所述待解析的下一个协议对应的层编号,确定待解析的下一个协议对应的固化解析器;所述待解析的下一个协议对应的固化解析器,用于解析所述待解析的下一个协议。
12.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述所述数据包的混合解析
方法的步骤。
13.一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述数据包的混合解析方法的步骤。
14.上述数据包的混合解析方法及系统,通过先对数据包中的数据进行过滤,得到需要采用所述混合解析系统中的可编程解析器解析的数据,然后对已有的具有固定格式的协议以及报文头使用固化解析器解析,对用户自定义的报文头、可选协议、用户自定义的协议以及新增协议采用可编程解析器进行解析,从而实现简单又高效地实现对协议和报文头的解析,从而实现简单又高效地实现对协议和报文头的解析。并且在确定返回固化解析器时,将待解析的下一个协议对应的层编号,返回混合解析系统中的当前固化解析器,有利于所述混合解析系统中的当前固化解析器确定所述待解析的下一个协议对应的固化解析器,从而实现直接跳过不需要重复解析的协议,直接采用所述待解析的下一个协议对应的固化解析器解析所述待解析的下一个协议,从而能够加快对协议的解析速度。
附图说明
15.图1为一个实施例中提供的数据包的混合解析系统的示意性结构框图之一;
16.图2为一个实施例中数据包的混合解析方法的流程示意图;
17.图3为一个实施例中提供的数据包的混合解析系统的示意性结构框图之二;
18.图4为一个实施例中提供的电子设备的结构示意图。
具体实施方式
19.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
20.需要说明的是,除非另外定义,本发明使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。本发明中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
21.为了便于理解,首先对本发明涉及的技术术语进行解释。
22.(1)三态内容寻址存储器(ternary content addressable memory,tcam)
23.三态内容寻址存储器是一种用于快速查acl、路由等表项。tcam包含多组的mask与value对应关系,对应比例为1:8,一个mask可对应8个value。最长掩码位于tcam顶部,如255.255.255.255位于最顶部,用于最长匹配,提升查速率。
24.(2)静态随机存取存储器(static random-access memory,sram)
25.静态随机存取存储器是随机存取存储器的一种。所谓的“静态”,是指这种存储器只要保持通电,里面储存的数据就可以恒常保持。相对之下,动态随机存取存储器里面所储
存的数据就需要周期性地更新。然而,当电力供应停止时,sram储存的数据还是会消失,这与在断电后还能储存资料的rom或闪存是不同的。
26.(3)多协议标签交换(multi-protocol label switching,mpls)
27.多协议标签交换是一种在开放的通信网上利用标签引导数据高速、高效传输的新技术。多协议的含义是指mpls不但可以支持多种网络层层面上的协议,还可以兼容第二层的多种数据链路层技术。
28.下面结合图1-图4描述本发明的数据包的混合解析方法及系统。
29.图1为一个实施例中提供的混合解析系统的一示意性框图,如图1所示,本发明提供的混合解析系统包括数据链路层对应的外层l2固化解析器101、内层l2固化解析器102、外层l2可编辑解析器103和内层l2可编辑解析器104,以及网络层对应的外层l3固化解析器111、内层l3固化解析器112、外层l3可编辑解析器113和内层l3可编辑解析器114,以及传输层对应的外层l4固化解析器121、内层l4固化解析器122、外层l4可编辑解析器123和内层l4可编辑解析器124,以及mpls固化解析器131和mpls可编程解析器132。
30.此外,各个可编辑解析器以及各个固化解析器分别与对应的总线连接,且可编辑解析器与固化解析器之间均通过知名总线141与用户自定义总线142输出信息。如图1所示,外层l2固化解析器101、内层l2固化解析器102、外层l3固化解析器111、内层l3固化解析器112、外层l4固化解析器121、内层l4固化解析器122、mpls固化解析器131、外层l2可编辑解析器103、内层l2可编辑解析器104、外层l3可编辑解析器113、内层l3可编辑解析器114、外层l4可编辑解析器123、内层l4可编辑解析器124和mpls可编程解析器132均与知名总线141和用户自定义总线142连接。
31.此外,外层l2可编辑解析器103、内层l2可编辑解析器104、mpls可编辑解析器可以分别连接一个独立的tcam和sram相连,外层l3可编辑解析器113和外层l4可编辑解析器123可以连接一个共同的tcam和sram,内层l3可编辑解析器114和内层l4可编辑解析器124可以连接一个共同的tcam和sram。
32.可以理解,数据链路层对应的外层l2固化解析器101、内层l2固化解析器102、外层l2可编辑解析器103和内层l2可编辑解析器104,用于解析数据链路层对应的协议以及对应的报文头,例如多路访问控制协议(multiple access control protocol,mac)。网络层对应的外层l3固化解析器111、内层l3固化解析器112、外层l3可编辑解析器113和内层l3可编辑解析器114用于解析网络层对应的协议以及对应的报文头。例如,固化解析器111和固化解析器112可用于解析ipv4协议、ipv6头,外层l3可编辑解析器113和内层l3可编辑解析器114可以用于解析ipv6扩展头、arp头以及ah头。传输层对应的外层l4固化解析器121、内层l4固化解析器122、外层l4可编辑解析器123和内层l4可编辑解析器124用于解析传输层对应的协议以及对应的报文头,例如,可以用于udp、tcp、icmp、udp+vxlan以及gre等传输协议的解析。
33.如图2所示,在一个实施例中,提出了一种数据包的混合解析方法,该数据包的混合解析方法可以由上述混合解析系统执行。具体地,如图2所示,本发明提供的数据包的混合解析方法可以包括以下步骤:
34.步骤210,混合解析系统中的当前固化解析器接收待解析的数据包。
35.其中,待解析的数据包可以包括数据链路层、网络层和传输层对应的数据包。
36.可以理解,混合解析系统中的当前固化解析器可以为图1所示的混合解析系统的数据链路层、网络层和传输层中任意一个层对应的固化解析器。
37.步骤220,混合解析系统中的当前固化解析器确定待解析的数据包中的至少一个第一目标协议和/或第一目标报文头,并调用混合解析系统中相应的可编程解析器。
38.其中,所述至少一个第一目标协议和/或第一目标报文头对应的数据为需要采用混合解析系统中的可编程解析器解析的数据。
39.可以理解,对应的混合解析系统中的当前固化解析器用于解决一些已有的具有固定格式的协议以及报文头,而对于一些用户自定义的报文头、可选协议、用户自定义的协议以及新增协议,固化解析器无法进行解析或者实现解析较为困难。因此,可以将用户自定义的报文头、可选协议、用户自定义的协议以及新增协议采用可编程解析器进行解析。因此,固化解析器在接收到数据包时,可以先对数据包中的数据进行过滤,得到需要采用混合解析系统中的可编程解析器解析的数据。
40.还可以理解,由于混合解析系统中的可编程解析器可以对应有多个,网络模型结构中的每一层分别对应相应的可编程解析器,因此需要针对每一个目标协议和每一个目标报文头调用混合解析系统中相应层的可编程解析器进行解析。从而实现对已有的具有固定格式的协议以及报文头使用固化解析器解析,对用户自定义的报文头、可选协议、用户自定义的协议以及新增协议采用可编程解析器进行解析,从而实现简单又高效地实现对协议和报文头的解析。
41.步骤230,混合解析系统中相应的可编程解析器,解析第一目标协议和/或第一目标报文头对应的数据,并且在确定返回固化解析器时,将待解析的下一个协议对应的层编号返回混合解析系统中的当前固化解析器。
42.此外,待解析的下一个协议对应的层编号可以为下一个协议对应的网络结构模型所在层的标识,例如,若待解析的下一个协议对应的网络结构模型所在层的标识为l2,则待解析的下一个协议对应的层编号为l2。
43.可以理解,由于有些协议会同时影响多层协议栈的解析,例如ifa协议,会同时影响网络层和传输层协议栈的解析,因此可以将网络层和传输层对应协议和报文共享,这样可编程解析器可以直接完成网络层和传输层协议栈的解析,降低固化逻辑设计复杂度。因此,待解析的下一个协议可以为混合解析系统中的当前固化解析器对应的协议,也可以为当前固化解析器对应层的下一层或者下多层对应的协议,因此,在确定返回固化解析器时,将待解析的下一个协议对应的层编号返回混合解析系统中的当前固化解析器,有利于混合解析系统中的当前固化解析器确定待解析的下一个协议对应的固化解析器,从而实现直接跳过不需要重复解析的协议,直接采用待解析的下一个协议对应的固化解析器解析待解析的下一个协议,从而能够加快对协议的解析速度。
44.步骤240,混合解析系统中的当前固化解析器基于待解析的下一个协议对应的层编号,确定待解析的下一个协议对应的固化解析器。
45.在其中一个实施例中,如图1所示的混合解析系统,具有多个可编程解析器和多个固化解析器,网络模型结构中的每一层分别对应相应的可编程解析器和固化解析器。并且如前所述,待解析的下一个协议对应的层编号可以为下一个协议对应的网络结构模型所在层的标识,因此,根据待解析的下一个协议对应的层编号可以确定待解析的下一个协议对
应的网络结构模型所在层的标识,进而可以确定待解析的下一个协议对应的网络结构模型所在层的对应的固化解析器,从而确定待解析的下一个协议对应的固化解析器。
46.步骤250,待解析的下一个协议对应的固化解析器解析待解析的下一个协议。
47.本发明提供的数据包的混合解析方法,通过先对数据包中的数据进行过滤,得到需要采用混合解析系统中的可编程解析器解析的数据,然后对已有的具有固定格式的协议以及报文头使用固化解析器解析,对用户自定义的报文头、可选协议、用户自定义的协议以及新增协议采用可编程解析器进行解析,从而实现简单又高效地实现对协议和报文头的解析,从而实现简单又高效地实现对协议和报文头的解析。并且在确定返回固化解析器时,将待解析的下一个协议对应的层编号,返回混合解析系统中的当前固化解析器,有利于混合解析系统中的当前固化解析器确定待解析的下一个协议对应的固化解析器,从而实现直接跳过不需要重复解析的协议,直接采用待解析的下一个协议对应的固化解析器解析待解析的下一个协议,从而能够加快对协议的解析速度。
48.在其中一个实施例中,混合解析系统中的当前固化解析器基于待解析的下一个协议对应的层编号,确定待解析的下一个协议对应的固化解析器,包括:混合解析系统中的当前固化解析器将待解析的下一个协议对应的层编号与当前固化解析器对应的标号相比较;在待解析的下一个协议对应的层编号与当前固化解析器对应的标号相同的情况下,将当前固化解析器确定为待解析的下一个协议对应的固化解析器;或,在确定待解析的下一个协议对应的层编号与当前固化解析器对应的标号不同的情况下,则将待解析的下一个协议对应的层编号对应层的固化解析器确定为待解析的下一个协议对应的固化解析器。
49.在其中一个实施例中,可编程解析器和固定解析器之间均通过两根总线输出信息;其中,一根总线用于输出知名报文信息,另一根总线用于输出用户自定义或者用户关注的非著名报文信息。
50.其中,知名报文信息为一些常见的已知报文对应的信息,用户关注的非著名报文信息为用户关注的一些不常见的报文对应的信息。
51.具体地,可编程解析器和固定解析器与两根总线的连接关系可以参考图1及其相关描述。
52.可以理解,通过双总线设计,将常见的知名报文信息通过一根总线输出,将用户自定义或者用户关注的非著名报文信息通过另一根总线输出,从而使硬件每次选择的时候可以减少数据选择的次数。
53.在其中一个实施例中,可编程解析器和固定解析器解析数据过程中,根据计算模块得到的计算结果确定对应的偏移。
54.其中,偏移表示协议中某个报文头对应字段的位置偏移。
55.可以理解,在进行解析过程中,由于存在一些格式不固定或者新增的未知的协议,因此,解析得到的数据所占的位数也不固定,因此,先按照协议规定的内容对数据进行加、减、左移或右移等运算后得到计算结果,确定了数据所占的位置,再确定对应的偏移,使得到的偏移更加准确,从而便于根据偏移查相关的字段。
56.在其中一个实施例中,混合解析系统中的当前固化解析器确定待解析的数据包中的至少一个第一目标协议和/或第一目标报文头,包括:
57.混合解析系统中的当前固化解析器基于寄存器和预设的规则,确定待解析的数据
包中的至少一个第一目标协议和/或第一目标报文头。
58.具体地,混合解析系统中的当前固化解析器首先可以基于待解析的数据包中当前层对应的数据包,从寄存器中筛选得到至少一个第一协议和至少一个第一报文头;其中,至少一个第一协议为混合解析系统中的当前固化解析器无法识别的协议,至少一个第一报文头为混合解析系统中的当前固化解析器无法识别的报文头;然后按照预设的规则,从至少一个第一协议中确定得到至少一个第一目标协议,并从至少一个第一协议和至少一个第一报文头中确定得到至少一个第一目标报文头。
59.可以理解,第一协议中可能存在用户自定义的报文头、可选协议、用户自定义的协议以及新增协议,因此,固化解析器可能未定义或涉及这些用户自定义的报文头、可选协议、用户自定义的协议以及新增协议,因此无法识别这些协议或报文头。此外,通常情况下,可以根据协议和报文头对应的关键字以及确定对应的协议和报文头,但是对于用户自定义的报文头、用户自定义的协议以及新增协议,固化解析器可能未定义或涉及这些协议或报文头,无法将这些协议或报文头与其关键字对应,因此,可以先从寄存器中获取当前层对应的数据包,初步过滤掉固化解析器能够识别并解析的协议或者报文头对应的关键字,有利于获取更精确的查关键字,便于后续按照预设的规则进一步区分能够被固化解析器或可编程解析器解析的协议或报文头,节省查次数。
60.其中,预设的规则可以为将用户自定义的报文头、可选协议、用户自定义的协议以及新增协议中的一部分设置为需要采用可编辑解析器解析的协议或报文头,另一部分设置为采用固化解析器解析的协议或报文头。
61.还可以理解,首先从寄存器中过滤掉一些能够用固化解析器解析的协议,例如一些已知的且具有固定格式的协议,剩下的没有固定格式或者新增的协议或报文头在根据预设的规则进行筛选,通过这种方式,获取更精确的查关键字,节省查次数。
62.在其中一个实施例中,混合解析系统中相应的可编程解析器,解析第一目标协议和/或第一目标报文头对应的数据,包括:
63.混合解析系统中相应的可编程解析器从数据包中查当前第一目标协议和/或当前第一目标报文头对应的关键字;
64.在查到当前第一目标协议和/或当前第一目标报文头对应的关键字的情况下,对关键字对应数据进行解析,并确定是否需要进行编辑、是否需要存储、存储的位置、下一个待查的第一目标协议和/或当前第一目标报文头关键字来源、是否需要停止可编程解析以及待解析的下一个协议对应的层编号;或,
65.在未查到当前第一目标协议和/或当前第一目标报文头对应的关键字的情况下,则结束对当前第一目标协议和/或当前第一目标报文头的解析。
66.其中,关键字可以包括协议层、协议号或报文头中的一项或者多项。
67.在其中一个实施例中,对ifa+udp协议的解析,当固化解析器在完成ip协议链的查的时候,发现当前协议无法识别,简单遍历查后发现需要可编程解析器进行查。可编程解析器根据相关信息(协议层、协议号或报文头)填写好关键字,进入可编程解析器进行tcam查,如果查到带ts标志的ifa报文,则计算好偏移,获取相关下一层协议后,根据配置选择退出可编程解析器,进入固化解析器解析,也可以继续在可编程解析器继续解析。如果查到不带ts标志的ifa报文,则计算好偏移,将ifa option信息和查关键字保存后,
继续下一级的查,下一级将完成对udp+ifa_meta header+option header+ifa_meta data的处理。
68.下面对本发明提供的数据包的混合解析系统进行描述,下文描述的数据包的混合解析系统与上文描述的数据包的混合解析方法相互对应参照。
69.图3为本发明提供的数据包的混合解析系统的示意性框图之二。混合解析系统中包括固化解析器模块310和可编程解析器模块320,其中,固化解析器模块包括多个固化解析器,可编程解析器模块包括多个可编程解析器,网络模型结构中的每一层分别对应相应的可编程解析器和固化解析器。如图3所示,本发明提供的数据包的混合解析系统中:
70.固化解析器模块310,用于接收待解析的数据包;
71.所述固化解析器模块310,还用于确定所述待解析的数据包中的至少一个第一目标协议和/或第一目标报文头,并调用可编程解析器模块320解析所述至少一个第一目标协议和/或第一目标报文头对应的数据;其中,所述至少一个第一目标协议和/或第一目标报文头对应的数据为需要采用所述可编程解析器模块320解析的数据;
72.所述可编程解析器模块320,用于解析所述第一目标协议和/或第一目标报文头对应的数据,并且在确定返回固化解析器模块310时,将待解析的下一个协议对应的层编号返回固化解析器模块310;
73.所述固化解析器模块310,还用于基于所述待解析的下一个协议对应的层编号,确定待解析的下一个协议对应的固化解析器3101;
74.所述待解析的下一个协议对应的固化解析器3101,用于解析所述待解析的下一个协议。
75.本发明提供的数据包的混合解析系统,通过先对数据包中的数据进行过滤,得到需要采用所述混合解析系统中的可编程解析器解析的数据,然后对已有的具有固定格式的协议以及报文头使用固化解析器解析,对用户自定义的报文头、可选协议、用户自定义的协议以及新增协议采用可编程解析器进行解析,从而实现简单又高效地实现对协议和报文头的解析,从而实现简单又高效地实现对协议和报文头的解析。并且在确定返回固化解析器时,将待解析的下一个协议对应的层编号,返回混合解析系统中的当前固化解析器,有利于所述混合解析系统中的当前固化解析器确定所述待解析的下一个协议对应的固化解析器,从而实现直接跳过不需要重复解析的协议,直接采用所述待解析的下一个协议对应的固化解析器解析所述待解析的下一个协议,从而能够加快对协议的解析速度。
76.在其中一个实施例中,所述固化解析器模块310包括:
77.比较单元,用于将所述待解析的下一个协议对应的层编号与当前固化解析器对应的标号相比较;
78.第一确定单元,用于在所述待解析的下一个协议对应的层编号与当前固化解析器对应的标号相同的情况下,将当前固化解析器确定为所述待解析的下一个协议对应的固化解析器;或,
79.第二确定单元,用于在确定所述待解析的下一个协议对应的层编号与当前固化解析器对应的标号不同的情况下,则将所述待解析的下一个协议对应的层编号对应层的固化解析器确定为所述待解析的下一个协议对应的固化解析器。
80.在其中一个实施例中,所述系统包括:第一总线330和第二总线340,均用于可编程
解析器模块320和固定解析器模块310输出信息;可编程解析器模块320和固定解析器模块310均与第一总线330和第二总线340相连,其中,第二总线340用于输出知名报文信息,第一总线330用于输出用户自定义或者用户关注的非著名报文信息。
81.在其中一个实施例中,所述系统还包括:
82.第三确定单元,用于根据计算模块得到的计算结果确定对应的偏移。
83.在其中一个实施例中,所述混合解析系统中的当前固化解析器确定所述待解析的数据包中的至少一个第一目标协议和/或第一目标报文头,包括:
84.所述混合解析系统中的当前固化解析器基于寄存器和预设的规则,确定所述待解析的数据包中的至少一个第一目标协议和/或第一目标报文头。
85.在其中一个实施例中,所述固化解析器模块310包括:
86.筛选单元,用于基于所述待解析的数据包中当前层对应的数据包,从寄存器中筛选得到至少一个第一协议和至少一个第一报文头;其中,所述至少一个第一协议为所述混合解析系统中的当前固化解析器无法识别的协议,所述至少一个第一报文头为所述混合解析系统中的当前固化解析器无法识别的报文头;
87.第三确定单元,用于按照预设的规则,从所述至少一个第一协议中确定得到至少一个第一目标协议,并从所述至少一个第一协议和所述至少一个第一报文头中确定得到至少一个第一目标报文头。
88.在其中一个实施例中,所述可编程解析器模块320包括:
89.查单元,用于所述混合解析系统中相应的可编程解析器从数据包中查当前第一目标协议和/或当前第一目标报文头对应的关键字;
90.第一处理单元,用于在查到当前第一目标协议和/或当前第一目标报文头对应的关键字的情况下,对所述关键字对应数据进行解析,并确定是否需要进行编辑、是否需要存储、存储的位置、下一个待查的第一目标协议和/或当前第一目标报文头关键字来源、是否需要停止可编程解析以及待解析的下一个协议对应的层编号;或,
91.第二处理单元,用于在未查到当前第一目标协议和/或当前第一目标报文头对应的关键字的情况下,则结束对当前第一目标协议和/或当前第一目标报文头的解析。
92.在一个实施例中,提出了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:混合解析系统中的当前固化解析器接收待解析的数据包;混合解析系统中的当前固化解析器确定所述待解析的数据包中的至少一个第一目标协议和/或第一目标报文头,并调用混合解析系统中相应的可编程解析器;其中,所述至少一个第一目标协议和/或第一目标报文头对应的数据为需要采用所述混合解析系统中的可编程解析器解析的数据;所述混合解析系统中相应的可编程解析器,解析所述第一目标协议和/或第一目标报文头对应的数据,并且在确定返回固化解析器时,将待解析的下一个协议对应的层编号返回所述混合解析系统中的当前固化解析器;所述混合解析系统中的当前固化解析器基于所述待解析的下一个协议对应的层编号,确定待解析的下一个协议对应的固化解析器;所述待解析的下一个协议对应的固化解析器解析所述待解析的下一个协议。
93.另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序
指令被计算机执行时,计算机能够执行本发明提供的数据包的混合解析方法,其中,数据包的混合解析方法包括:混合解析系统中的当前固化解析器接收待解析的数据包;混合解析系统中的当前固化解析器确定所述待解析的数据包中的至少一个第一目标协议和/或第一目标报文头,并调用混合解析系统中相应的可编程解析器;其中,所述至少一个第一目标协议和/或第一目标报文头对应的数据为需要采用所述混合解析系统中的可编程解析器解析的数据;所述混合解析系统中相应的可编程解析器,解析所述第一目标协议和/或第一目标报文头对应的数据,并且在确定返回固化解析器时,将待解析的下一个协议对应的层编号返回所述混合解析系统中的当前固化解析器;所述混合解析系统中的当前固化解析器基于所述待解析的下一个协议对应的层编号,确定待解析的下一个协议对应的固化解析器;所述待解析的下一个协议对应的固化解析器解析所述待解析的下一个协议。
94.又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行本发明提供的数据包的混合解析方法,其中,数据包的混合解析方法包括:混合解析系统中的当前固化解析器接收待解析的数据包;混合解析系统中的当前固化解析器确定所述待解析的数据包中的至少一个第一目标协议和/或第一目标报文头,并调用混合解析系统中相应的可编程解析器;其中,所述至少一个第一目标协议和/或第一目标报文头对应的数据为需要采用所述混合解析系统中的可编程解析器解析的数据;所述混合解析系统中相应的可编程解析器,解析所述第一目标协议和/或第一目标报文头对应的数据,并且在确定返回固化解析器时,将待解析的下一个协议对应的层编号返回所述混合解析系统中的当前固化解析器;所述混合解析系统中的当前固化解析器基于所述待解析的下一个协议对应的层编号,确定待解析的下一个协议对应的固化解析器;所述待解析的下一个协议对应的固化解析器解析所述待解析的下一个协议。。
95.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
96.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
97.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

技术特征:


1.一种数据包的混合解析方法,其特征在于,所述方法应用于混合解析系统,所述混合解析系统中包括多个可编程解析器和多个固化解析器,网络模型结构中的每一层分别对应相应的可编程解析器和固化解析器,所述方法包括:所述混合解析系统中的当前固化解析器接收待解析的数据包;所述混合解析系统中的当前固化解析器确定所述待解析的数据包中的至少一个第一目标协议和/或第一目标报文头,并调用所述混合解析系统中相应的可编程解析器;其中,所述至少一个第一目标协议和/或第一目标报文头对应的数据为需要采用所述混合解析系统中的可编程解析器解析的数据;所述混合解析系统中相应的可编程解析器,解析所述第一目标协议和/或第一目标报文头对应的数据,并且在确定返回固化解析器时,将待解析的下一个协议对应的层编号返回所述混合解析系统中的当前固化解析器;所述混合解析系统中的当前固化解析器基于所述待解析的下一个协议对应的层编号,确定待解析的下一个协议对应的固化解析器;所述待解析的下一个协议对应的固化解析器解析所述待解析的下一个协议。2.如权利要求1所述的数据包的混合解析方法,其特征在于,所述混合解析系统中的当前固化解析器基于所述待解析的下一个协议对应的层编号,确定待解析的下一个协议对应的固化解析器,包括:将所述待解析的下一个协议对应的层编号与当前固化解析器对应的标号相比较;在所述待解析的下一个协议对应的层编号与当前固化解析器对应的标号相同的情况下,将当前固化解析器确定为所述待解析的下一个协议对应的固化解析器;或,在确定所述待解析的下一个协议对应的层编号与当前固化解析器对应的标号不同的情况下,则将所述待解析的下一个协议对应的层编号对应层的固化解析器确定为所述待解析的下一个协议对应的固化解析器。3.如权利要求1所述的数据包的混合解析方法,其特征在于,可编程解析器和固定解析器之间均通过两根总线输出信息;其中,一根总线用于输出知名报文信息,另一根总线用于输出用户自定义或者用户关注的非著名报文信息。4.如权利要求1所述的数据包的混合解析方法,其特征在于,可编程解析器和固定解析器解析数据过程中,根据计算模块得到的计算结果确定对应的偏移。5.如权利要求1所述的数据包的混合解析方法,其特征在于,所述混合解析系统中的当前固化解析器确定所述待解析的数据包中的至少一个第一目标协议和/或第一目标报文头,包括:基于寄存器和预设的规则,确定所述待解析的数据包中的至少一个第一目标协议和/或第一目标报文头。6.如权利要求5所述的数据包的混合解析方法,其特征在于,所述混合解析系统中的当前固化解析器确定所述待解析的数据包中的至少一个第一目标协议和/或第一目标报文头,包括:基于所述待解析的数据包中当前层对应的数据包,从寄存器中筛选得到至少一个第一协议和至少一个第一报文头;其中,所述至少一个第一协议为所述混合解析系统中的当前固化解析器无法识别的协议,所述至少一个第一报文头为所述混合解析系统中的当前固化
解析器无法识别的报文头;按照预设的规则,从所述至少一个第一协议中确定得到至少一个第一目标协议,并从所述至少一个第一协议和所述至少一个第一报文头中确定得到至少一个第一目标报文头。7.如权利要求1所述的数据包的混合解析方法,其特征在于,所述混合解析系统中相应的可编程解析器,解析所述第一目标协议和/或第一目标报文头对应的数据,包括:从数据包中查当前第一目标协议和/或当前第一目标报文头对应的关键字;在查到当前第一目标协议和/或当前第一目标报文头对应的关键字的情况下,对所述关键字对应数据进行解析,并确定是否需要进行编辑、是否需要存储、存储的位置、下一个待查的第一目标协议和/或当前第一目标报文头关键字来源、是否需要停止可编程解析以及待解析的下一个协议对应的层编号;或,在未查到当前第一目标协议和/或当前第一目标报文头对应的关键字的情况下,则结束对当前第一目标协议和/或当前第一目标报文头的解析。8.一种数据包的混合解析系统,其特征在于,所述混合解析系统中包括固化解析器模块和可编程解析器模块,其中,固化解析器模块包括多个固化解析器,可编程解析器模块包括多个可编程解析器,网络模型结构中的每一层分别对应相应的可编程解析器和固化解析器;固化解析器模块,用于接收待解析的数据包;所述固化解析器模块,还用于确定所述待解析的数据包中的至少一个第一目标协议和/或第一目标报文头,并调用可编程解析器模块解析所述至少一个第一目标协议和/或第一目标报文头对应的数据;其中,所述至少一个第一目标协议和/或第一目标报文头对应的数据为需要采用所述可编程解析器模块解析的数据;所述可编程解析器模块,用于解析所述第一目标协议和/或第一目标报文头对应的数据,并且在确定返回固化解析器模块时,将待解析的下一个协议对应的层编号返回固化解析器模块;所述固化解析器模块,还用于基于所述待解析的下一个协议对应的层编号,确定待解析的下一个协议对应的固化解析器;所述待解析的下一个协议对应的固化解析器,用于解析所述待解析的下一个协议。9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,其特征在于,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项权利要求所述数据包的混合解析方法的步骤。10.一种存储有计算机可读指令的存储介质,其特征在于,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至7中任一项权利要求所述数据包的混合解析方法的步骤。

技术总结


本发明涉及一种数据包的混合解析方法及系统,其中,方法包括:接收待解析的数据包;确定待解析的数据包中的至少一个第一目标协议和/或第一目标报文头,并调用相应的可编程解析器;相应的可编程解析器解析所述第一目标协议和/或第一目标报文头对应的数据,并且在确定返回固化解析器时,将待解析的下一个协议对应的层编号返回当前固化解析器;当前固化解析器基于所述待解析的下一个协议对应的层编号,确定待解析的下一个协议对应的固化解析器;待解析的下一个协议对应的固化解析器解析所述待解析的下一个协议。基于此,能够实现既简单又高效地实现对协议和报文头的解析。又高效地实现对协议和报文头的解析。又高效地实现对协议和报文头的解析。


技术研发人员:

曾翰林 严德春

受保护的技术使用者:

篆芯半导体(南京)有限公司

技术研发日:

2022.09.01

技术公布日:

2023/1/19


文章投稿或转载声明

本文链接:http://www.wtabcd.cn/zhuanli/patent-1-86866-0.html

来源:专利查询检索下载-实用文体写作网版权所有,转载请保留出处。本站文章发布于 2023-01-29 11:12:19

发表评论

验证码:
用户名: 密码: 匿名发表
评论列表 (有 条评论
2人围观
参与讨论