数据包的混合解析方法及系统技术方案

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

【技术实现步骤摘要】
数据包的混合解析方法及系统


[0001]本专利技术涉及计算机
,特别是涉及数据包的混合解析方法及系统。

技术介绍

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

技术实现思路

[0003]本专利技术提供一种数据包的混合解析方法及系统,用以解决现有技术中不能简单又高效地实现对协议和报文头的解析的缺陷,实现简单又高效地实现对协议和报文头的解析。
[0004]一种数据包的混合解析方法,所述方法应用于混合解析系统,所述混合解析系统中包括多个可编程解析器和多个固化解析器,网络模型结构中的每一层分别对应相应的可编程解析器和固化解析器,所述方法包括:所述混合解析系统中的当前固化解析器接收待解析的数据包;所述混合解析系统中的当前固化解析器确定所述待解析的数据包中的至少一个第一目标协议和/或第一目标报文头,并调用所述混合解析系统中相应的可编程解析器;其中,所述至少一个第一目标协议和/或第一目标报文头对应的数据为需要采用所述混合解析系统中的可编程解析器解析的数据;所述混合解析系统中相应的可编程解析器,解析所述第一目标协议和/或第一目标报文头对应的数据,并且在确定返回固化解析器时,将待解析的下一个协议对应的层编号返回所述混合解析系统中的当前固化解析器;所述混合解析系统中的当前固化解析器基于所述待解析的下一个协议对应的层编号,确定待解析的下一个协议对应的固化解析器;所述待解析的下一个协议对应的固化解析器解析所述待解析的下一个协议。
[0005]在其中一个实施例中,所述混合解析系统中的当前固化解析器基于所述待解析的下一个协议对应的层编号,确定待解析的下一个协议对应的固化解析器,包括:所述混合解析系统中的当前固化解析器将所述待解析的下一个协议对应的层编号与当前固化解析器对应的标号相比较;在所述待解析的下一个协议对应的层编号与当前固化解析器对应的标号相同的情况下,将当前固化解析器确定为所述待解析的下一个协议对应的固化解析器;或,在确定所述待解析的下一个协议对应的层编号与当前固化解析器对应的标号不同的情况下,则将所述待解析的下一个协议对应的层编号对应层的固化解析器确定为所述待解析的下一个协议对应的固化解析器。
[0006]在其中一个实施例中,可编程解析器和固定解析器之间均通过两根总线输出信息;其中,一根总线用于输出知名报文信息,另一根总线用于输出用户自定义或者用户关注的非著名报文信息。
[0007]在其中一个实施例中,可编程解析器和固定解析器解析数据过程中,根据计算模块得到的计算结果确定对应的偏移。
[0008]在其中一个实施例中,所述混合解析系统中的当前固化解析器确定所述待解析的数据包中的至少一个第一目标协议和/或第一目标报文头,包括:所述混合解析系统中的当前固化解析器基于寄存器和预设的规则,确定所述待解析的数据包中的至少一个第一目标协议和/或第一目标报文头。
[0009]在其中一个实施例中,所述混合解析系统中的当前固化解析器确定所述待解析的数据包中的至少一个第一目标协议和/或第一目标报文头,包括:所述混合解析系统中的当前固化解析器基于所述待解析的数据包中当前层对应的数据包,从寄存器中筛选得到至少一个第一协议和至少一个第一报文头;其中,所述至少一个第一协议为所述混合解析系统中的当前固化解析器无法识别的协议,所述至少一个第一报文头为所述混合解析系统中的当前固化解析器无法识别的报文头;所述混合解析系统中的当前固化解析器按照预设的规则,从所述至少一个第一协议中确定得到至少一个第一目标协议,并从所述至少一个第一协议和所述至少一个第一报文头中确定得到至少一个第一目标报文头。
[0010]在其中一个实施例中,所述混合解析系统中相应的可编程解析器,解析所述第一目标协议和/或第一目标报文头对应的数据,包括:所述混合解析系统中相应的可编程解析器从数据包中查找当前第一目标协议和/或当前第一目标报文头对应的关键字;在查找到当前第一目标协议和/或当前第一目标报文头对应的关键字的情况下,对所述关键字对应数据进行解析,并确定是否需要进行编辑、是否需要存储、存储的位置、下一个待查找的第一目标协议和/或当前第一目标报文头关键字来源、是否需要停止可编程解析以及待解析的下一个协议对应的层编号;或,在未查找到当前第一目标协议和/或当前第一目标报文头对应的关键字的情况下,则结束对当前第一目标协议和/或当前第一目标报文头的解析。
[0011]一种数据包的混合解析系统,所述混合解析系统中包括固化解析器模块和可编程解析器模块,其中,固化解析器模块包括多个固化解析器,可编程解析器模块包括多个可编程解析器,网络模型结构中的每一层分别对应相应的可编程解析器和固化解析器;固化解析器模块,用于接收待解析的数据包;所述固化解析器模块,还用于确定所述待解析的数据包中的至少一个第一目标协议和/或第一目标报文头,并调用可编程解析器模块解析所述至少一个第一目标协议和/或第一目标报文头对应的数据;其中,所述至少一个第一目标协议和/或第一目标报文头对应的数据为需要采用所述可编程解析器模块解析的数据;所述可编程解析器模块,用于解析所述第一目标协议和/或第一目标报文头对应的数据,并且在确定返回固化解析器模块时,将待解析的下一个协议对应的层编号返回固化解析器模块;所述固化解析器模块,还用于基于所述待解析的下一个协议对应的层编号,确定待解析的下一个协议对应的固化解析器;所述待解析的下一个协议对应的固化解析器,用于解析所述待解析的下一个协议。
[0012]一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述所述数据包的混合解析
方法的步骤。
[0013]一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述数据包的混合解析方法的步骤。
[0014]上述数据包的混合解析方法及系统,通过先对数据包中的数据进行过滤,得到需要采用所述混合解析系统中的可编程解析器解析的数据,然后对已有的具有固定格式的协议以及报文头使用固化解析器解析,对用户自定义的报文头、可选协议、用户自定义的协议以及新增协议采用可编程解析器进行解析,从而实现简单又高效地实现对协议和报文头的解析,从而实现简单又高效地实现对协议和报文头的解析。并且在确定返回固化解析器时,将待解析的下一个协议对应的层编号,返回混合解析系统中的当前固化解析器,有利于所述混合解析系本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据包的混合解析方法,其特征在于,所述方法应用于混合解析系统,所述混合解析系统中包括多个可编程解析器和多个固化解析器,网络模型结构中的每一层分别对应相应的可编程解析器和固化解析器,所述方法包括:所述混合解析系统中的当前固化解析器接收待解析的数据包;所述混合解析系统中的当前固化解析器确定所述待解析的数据包中的至少一个第一目标协议和/或第一目标报文头,并调用所述混合解析系统中相应的可编程解析器;其中,所述至少一个第一目标协议和/或第一目标报文头对应的数据为需要采用所述混合解析系统中的可编程解析器解析的数据;所述混合解析系统中相应的可编程解析器,解析所述第一目标协议和/或第一目标报文头对应的数据,并且在确定返回固化解析器时,将待解析的下一个协议对应的层编号返回所述混合解析系统中的当前固化解析器;所述混合解析系统中的当前固化解析器基于所述待解析的下一个协议对应的层编号,确定待解析的下一个协议对应的固化解析器;所述待解析的下一个协议对应的固化解析器解析所述待解析的下一个协议。2.如权利要求1所述的数据包的混合解析方法,其特征在于,所述混合解析系统中的当前固化解析器基于所述待解析的下一个协议对应的层编号,确定待解析的下一个协议对应的固化解析器,包括:将所述待解析的下一个协议对应的层编号与当前固化解析器对应的标号相比较;在所述待解析的下一个协议对应的层编号与当前固化解析器对应的标号相同的情况下,将当前固化解析器确定为所述待解析的下一个协议对应的固化解析器;或,在确定所述待解析的下一个协议对应的层编号与当前固化解析器对应的标号不同的情况下,则将所述待解析的下一个协议对应的层编号对应层的固化解析器确定为所述待解析的下一个协议对应的固化解析器。3.如权利要求1所述的数据包的混合解析方法,其特征在于,可编程解析器和固定解析器之间均通过两根总线输出信息;其中,一根总线用于输出知名报文信息,另一根总线用于输出用户自定义或者用户关注的非著名报文信息。4.如权利要求1所述的数据包的混合解析方法,其特征在于,可编程解析器和固定解析器解析数据过程中,根据计算模块得到的计算结果确定对应的偏移。5.如权利要求1所述的数据包的混合解析方法,其特征在于,所述混合解析系统中的当前固化解析器确定所述待解析的数据包中的至少一个第一目标协议和/或第一目标报文头,包括:基于寄存器和预设的规则,确定所述待解析的数据包中的至少一个第一目标协议和/或第一目标报文头。6.如权利要求5所述的数据包的混合解析方法,其特征在于,所述混合解析系统中的当前固化解析器确定所述待解析的数据包中的至少一个第一目标协议和/或第一目标报文头,包括:基于所述待解析的数据包中当前层对应的数据包,从寄存器中筛选得到至...

【专利技术属性】
技术研发人员:曾翰林严德春
申请(专利权)人:篆芯半导体南京有限公司
类型:发明
国别省市:

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

1