一种协议数据解析方法、装置、电子设备及存储介质制造方法及图纸

技术编号:37996102 阅读:12 留言:0更新日期:2023-06-30 10:10
本公开提供了一种协议数据解析方法、装置、电子设备及存储介质,涉及数据处理技术领域,具体涉及网络数据通信、协议解析等技术,包括:获取目标客户端与目标服务端之间的通信链路数据;根据目标协议的目标协议特征从所述通信链路数据中筛选目标协议数据包;对所述目标协议数据包进行实时解析,并根据所述目标协议数据包的实时解析结果实时输出目标协议数据包识别数据。本公开实施例能够提高协议数据的解析效率、解析性能和解析处理的可靠性。解析性能和解析处理的可靠性。解析性能和解析处理的可靠性。

【技术实现步骤摘要】
一种协议数据解析方法、装置、电子设备及存储介质


[0001]本公开涉及数据处理
,具体涉及网络数据通信、协议解析等技术。

技术介绍

[0002]协议即网络协议的简称,网络协议是通信计算机双方必须共同遵从的一组约定,如怎么样建立连接以及怎么样互相识别等。只有遵守协议,计算机之间才能相互通信交流。协议解析是对网络数据包的各个部分按照协议规范进行分析,得到数据包准确且详细的信息,用于协议之上各种网络功能,在网络数据通信中是不可或缺的数据处理环节。目前,网络协议的数量呈现出爆炸式增长的趋势,如何提高协议数据的解析处理效率和性能,成为协议数据解析任务的重中之重。

技术实现思路

[0003]本公开实施例提供了一种协议数据解析方法、装置、电子设备及存储介质,能够提高协议数据的解析效率、解析性能和解析处理的可靠性。
[0004]第一方面,本公开实施例提供了一种协议数据解析方法,应用于内核态的数据抓取分析程序,包括:
[0005]获取目标客户端与目标服务端之间的通信链路数据;
[0006]根据目标协议的目标协议特征从所述通信链路数据中筛选目标协议数据包;
[0007]对所述目标协议数据包进行实时解析,并根据所述目标协议数据包的实时解析结果实时输出目标协议数据包识别数据。
[0008]第二方面,本公开实施例提供了一种协议数据解析装置,配置于内核态的数据抓取分析程序,包括:
[0009]通信链路数据获取模块,用于获取目标客户端与目标服务端之间的通信链路数据;
[0010]目标协议数据包筛选模块,用于根据目标协议的目标协议特征从所述通信链路数据中筛选目标协议数据包;
[0011]协议识别数据输出模块,用于对所述目标协议数据包进行实时解析,并根据所述目标协议数据包的实时解析结果实时输出目标协议数据包识别数据。
[0012]第三方面,本公开实施例提供了一种电子设备,包括:
[0013]至少一个处理器;以及
[0014]与所述至少一个处理器通信连接的存储器;其中,
[0015]所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面实施例所提供的协议数据解析方法。
[0016]第四方面,本公开实施例还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行第一方面实施例所提供的协议数据解析方
法。
[0017]第五方面,本公开实施例还提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现第一方面实施例所提供的协议数据解析方法。
[0018]本公开实施例通过应用于内核态的数据抓取分析程序获取目标客户端与目标服务端之间的通信链路数据,以根据目标协议的目标协议特征从通信链路数据中筛选目标协议数据包,并对目标协议数据包进行实时解析,根据目标协议数据包的实时解析结果实时输出目标协议数据包识别数据,解决现有协议数据解析方法存在的可靠性低、性能损耗大及处理效率低等问题,能够满足非侵入式的协议数据解析需求,提高协议数据的解析效率、解析性能和解析处理的可靠性。
[0019]应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0020]附图用于更好地理解本方案,不构成对本公开的限定。其中:
[0021]图1是本公开实施例提供的一种协议数据解析方法的流程图;
[0022]图2是本公开实施例提供的一种协议数据解析方法的流程图;
[0023]图3是本公开实施例提供的一种Redis协议数据解析系统的结构示意图;
[0024]图4是本公开实施例提供的一种对Redis协议数据进行解析的流程示意图;
[0025]图5是本公开实施例提供的一种协议数据解析装置的结构图;
[0026]图6是用来实现本公开实施例的协议数据解析方法的电子设备的结构示意图。
具体实施方式
[0027]以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0028]目前,通常采用三种方案对某种网络协议进行解析。其中,第一种方案为在数据通信的客户端配置协议解析分析功能,以Redis协议为例说明,可以在Redis客户端增加信息记录,统计所有Redis交互记录。第二种方案为在数据通信的服务端配置协议解析分析功能,以Redis协议为例说明,可以在Redis服务端增加信息记录,统计所有Redis交互记录。第三种方案为使用专属的应用层工具对链路进行抓包和分析,仍以Redis协议为例说明,可以使用用户态的TCPDUMP(dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具)工具,对Redis客户端和Redis服务端的通信链路的全量Redis协议数据进行抓包,然后分析抓取的所有协议数据包内容,得到交互记录。
[0029]上述方案中,第一种方案和第二种方案需要修改客户端和服务端现有的代码,不能满足非侵入式的协议数据解析需求,容易造成额外的故障和问题,可靠性较低。第三种方案虽然可以满足式的协议数据解析需求,但是应用层工具本身占用的计算和网络资源较高,从而影响协议数据的解析性能和效率。且目前应用层工具需要对通信链路所有流量进行抓包分析,当流量较大时,会出现性能损耗大和性能较差等问题,无法满足大规模协议数
据解析的性能需求。
[0030]在一个示例中,图1是本公开实施例提供的一种协议数据解析方法的流程图,本实施例可适用于通过电子设备中配置的内核态的数据抓取分析程序进行协议数据解析的情况,该方法可以由协议数据解析装置来执行,该装置可以由软件和/或硬件的方式来实现,并一般可集成在电子设备中。该电子设备可以是终端设备,也可以是服务器设备,或者,也还可以是终端设备与服务器设备之间的中间网络设备等,本公开实施例并不对电子设备的具体设备类型进行限定。相应的,如图1所示,该方法包括如下操作:
[0031]S110、获取目标客户端与目标服务端之间的通信链路数据。
[0032]其中,目标客户端可以是处理目标协议的网络数据的客户端,例如可以是Redis客户端、TCP(Transmission Control Protocol,传输控制协议)客户端或UDP(User Datagram Protocol,用户数据报协议)客户端等。目标服务端可以是处理目标协议的网络数据的服务端,例如可以是Redis服务端、TCP(Transmission Control Protocol,传输控制协议)服务本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种协议数据解析方法,应用于内核态的数据抓取分析程序,包括:获取目标客户端与目标服务端之间的通信链路数据;根据目标协议的目标协议特征从所述通信链路数据中筛选目标协议数据包;对所述目标协议数据包进行实时解析,并根据所述目标协议数据包的实时解析结果实时输出目标协议数据包识别数据。2.根据权利要求1所述的方法,其中,所述内核态的数据抓取分析程序包括数据包过滤eBPF程序;所述方法还包括:将所述eBPF程序编译为eBPF字节码;将所述eBPF字节码加载至处理器内核,得到内核态的eBPF程序。3.根据权利要求2所述的方法,还包括:根据所述目标协议的协议类型确定跟踪事件类型和目标通信接口;将所述内核态的eBPF程序注册至所述目标通信接口,以通过所述内核态的eBPF程序根据所述跟踪事件类型跟踪目标协议事件。4.根据权利要求1所述的方法,其中,所述根据所述目标协议数据包的实时解析结果实时输出目标协议数据包识别数据,包括:获取对目标协议配置的识别数据过滤逻辑配置信息;根据所述识别数据过滤逻辑配置信息对所述目标协议数据包的实时解析结果进行过滤,得到所述目标协议数据包识别数据。5.根据权利要求1所述的方法,还包括:将所述目标协议数据包识别数据输出至缓存队列;其中,所述缓存队列用于将所述目标协议数据包识别数据发送至数据处理模块进行处理,得到目标协议数据。6.根据权利要求1

5任一所述的方法,其中,所述目标客户端包括远程字典服务Redis客户端,所述目标服务端包括Redis服务端,所述目标协议包括Redis协议。7.根据权利要求1

5任一所述的方法,其中,所述内核态的数据抓取分析程序配置于目标设备的主机内核;所述目标设备包括安装所述目标客户端的设备、安装所述目标服务端的设备和所述目标客户端与所述目标服务端之间网络设备中的至少一项。8.一种协议数据解析装置,配置于内核态的数据抓取分析程序,包括:通信链路数据获取模块,用于获取目标客户端与目标服务端之间的通信链路数据;目标协议数据包筛选模块,用于根据目标协议的目标协议特征从所述通信链路数据中筛选目标协议数据包;协议识别数据输出模块,用于对所述目标协议数据包进行实时解析,并根据所述目标协议数据包的实时解析结果实时输出目标协议数据包识别数据。9....

【专利技术属性】
技术研发人员:杨涛贾殿龙
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:

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

1