协议数据的录制、存储以及查询方法、系统和服务器与流程

文档序号:29257830发布日期:2022-03-16 11:32阅读:164来源:国知局
协议数据的录制、存储以及查询方法、系统和服务器与流程

1.本技术涉及计算机技术领域,特别涉及一种协议数据的录制、存储以及查询方法、系统、服务器和存储介质。


背景技术:

2.随着计算机技术的发展,应用公司会开发各种各样的应用程序来提供不同的功能,比如,应用公司会开发游戏类应用程序来为用户提供娱乐功能,也会开发地图类应用程序来为用户提供导航功能。在开发和维护应用程序的过程中,应用程序的客户端程序与应用服务器之间进行交互的协议数据是十分重要的基础数据。
3.相关技术中,往往需要在应用程序的客户端程序中另外安装数据收集模块,通过该数据收集模块来获取客户端程序与应用服务器之间进行交互的协议数据。
4.但是,在想要获取多个客户端程序与应用服务器之间进行交互的协议数据时,需要在多个客户端程序中均安装该数据收集模块,协议数据的录制周期较长,导致录制协议数据的效率较低。


技术实现要素:

5.本技术实施例提供了一种协议数据的录制、存储以及查询方法、系统、服务器和存储介质,可以提升录制协议数据的效率。所述技术方案如下:
6.一方面,提供了一种协议数据的录制方法,由第一服务器执行,所述方法包括:
7.监控所述第一服务器的通信,以录制所述第一服务器通信时的协议数据,所述协议数据包括所述第一服务器发送的协议数据以及所述第一服务器接收到的协议数据;
8.基于目标应用的服务端程序在所述第一服务器上的地址信息,从所述协议数据中获取目标协议数据;
9.其中,所述目标协议数据包括所述目标应用的多个客户端程序与所述目标应用的服务端程序之间进行交互的协议数据。
10.一方面,提供了一种协议数据的存储方法,由第二服务器执行,所述方法包括:
11.接收目标协议数据,所述目标协议数据包括目标应用的多个客户端程序与所述目标应用的服务端程序之间进行交互的协议数据,所述目标协议数据为第一服务器录制的协议数据,所述服务端程序运行在所述第一服务器上;
12.将所述目标协议数据转化为目标格式;
13.存储所述目标格式的所述目标协议数据。
14.一方面,提供了一种协议数据的查询方法,由第三服务器执行,所述方法包括:
15.向第二服务器发送数据查询请求,所述数据查询请求包括待查询的客户端程序的地址信息以及待查询的服务端程序的地址信息,所述客户端程序为目标应用的客户端程序,所述服务端程序为所述目标应用的服务端程序;
16.从所述第二服务器获取所述数据查询请求对应的第二协议数据,所述第二协议数
据包括所述客户端程序与所述服务端程序之间进行交互的协议数据,所述第二协议数据为第一服务器录制的协议数据,所述服务端程序运行在所述第一服务器上;
17.将所述第二协议数据发送给所述数据查看客户端程序,所述数据查看客户端程序用于显示所述第二协议数据。
18.一方面,提供了一种协议数据的录制装置,应用于第一服务器,所述装置包括:
19.监控模块,用于监控所述第一服务器的通信,以录制所述第一服务器通信时的协议数据,所述协议数据包括所述第一服务器发送的协议数据以及所述第一服务器接收到的协议数据;
20.目标协议数据获取模块,用于基于目标应用的服务端程序在所述第一服务器上的地址信息,从所述协议数据中获取目标协议数据;
21.其中,所述目标协议数据包括所述目标应用的多个客户端程序与所述目标应用的服务端程序之间进行交互的协议数据。
22.在一种可能的实施方式中,所述监控模块,用于监控所述第一服务器的网卡,从所述网卡中获取所述第一服务器通信时的协议数据。
23.在一种可能的实施方式中,所述目标协议数据获取模块,用于基于所述目标应用的服务端程序在所述第一服务器上运行时的端口号,对所述协议数据进行过滤,得到所述目标协议数据。
24.在一种可能的实施方式中,所述装置还包括:
25.组包模块,用于对所述目标协议数据进行组包,得到目标数据包;
26.目标数据包发送模块,用于向第二服务器发送所述目标数据包,所述第二服务器用于从所述目标数据包中获取所述目标协议数据,并对所述目标协议数据进行存储。
27.一方面,提供了一种协议数据的存储装置,应用于第二服务器,所述装置包括:
28.目标协议数据接收模块,用于接收目标协议数据,所述目标协议数据包括目标应用的多个客户端程序与所述目标应用的服务端程序之间进行交互的协议数据,所述目标协议数据为第一服务器录制的协议数据,所述服务端程序运行在所述第一服务器上;
29.格式转化模块,用于将所述目标协议数据转化为目标格式;
30.存储模块,用于存储所述目标格式的所述目标协议数据。
31.在一种可能的实施方式中,所述目标协议数据接收模块,用于获取所述第一服务器发送的目标数据包,所述目标数据包为所述第一服务器对所述目标协议数据组包后得到的;对所述目标数据包进行解密、解压以及解码中的至少一项,得到所述目标协议数据。
32.在一种可能的实施方式中,所述存储模块,用于基于所述目标协议数据携带的所述多个客户端程序的地址信息,确定所述目标协议数据对应的多个存储进程;基于所述多个存储进程存储所述目标协议数据。
33.在一种可能的实施方式中,所述存储模块,用于基于所述多个客户端程序的ip地址以及对应的端口号,确定各个所述客户端程序对应的存储进程的标识;基于各个所述客户端程序对应的存储进程的标识,确定所述目标协议数据对应的多个存储进程。
34.在一种可能的实施方式中,所述存储模块,用于对各个所述客户端程序的ip地址以及对应的端口号进行哈希映射,得到各个所述客户端程序对应的存储进程的标识。
35.在一种可能的实施方式中,所述存储模块,用于对于所述多个客户端程序中的第
一客户端程序,基于所述第一客户端程序的地址信息,从所述目标协议数据中获取所述第一客户端程序对应的第一协议数据;基于所述第一客户端程序的地址信息对应存储进程,将所述第一协议数据中属于相同传输时间段的协议数据存储在同一个存储单元中,所述传输时间段为所述第一客户端程序从登录所述第一服务器到登出所述第一服务器的时间段。
36.在一种可能的实施方式中,所述装置还包括:
37.链接生成模块,用于基于所述目标应用的服务端程序的地址信息以及所述多个客户端程序的地址信息,生成所述多个存储进程分别对应的多个存储链接,所述多个存储链接分别指向对应存储进程对应的存储单元。
38.在一种可能的实施方式中,所述装置还包括:
39.数据查询模块,用于响应于数据查询请求,基于所述数据查询请求,确定目标存储链接,所述数据查询请求携带待查询的客户端程序的地址信息以及待查询的服务端程序的地址信息;从所述目标存储链接获取第二协议数据,将所述第二协议数据发送给所述数据查询请求的发送方。
40.一方面,提供了一种协议数据的查询装置,应用于第三服务器,所述装置包括:
41.数据查询请求发送模块,用于向第二服务器发送数据查询请求,所述数据查询请求包括待查询的客户端程序的地址信息以及待查询的服务端程序的地址信息,所述客户端程序为目标应用的客户端程序,所述服务端程序为所述目标应用的服务端程序;
42.第二协议数据获取模块,用于从所述第二服务器获取所述数据查询请求对应的第二协议数据,所述第二协议数据包括所述客户端程序与所述服务端程序之间进行交互的协议数据,所述第二协议数据为第一服务器录制的协议数据,所述服务端程序运行在所述第一服务器上;
43.第二协议数据发送模块,用于将所述第二协议数据发送给所述数据查看客户端程序,所述数据查看客户端程序用于显示所述第二协议数据;
44.在一种可能的实施方式中,所述第二协议数据发送模块,用于基于所述第二协议数据生成数据查看页面;将所述数据查看页面发送给所述数据查看客户端程序。
45.一方面,提供了一种协议数据的存储系统,所述系统包括:第一服务器以及第二服务器;
46.所述第一服务器用于监控所述第一服务器的通信,以录制所述第一服务器通信时的协议数据,所述协议数据包括所述第一服务器发送的协议数据以及所述第一服务器接收到的协议数据;
47.所述第一服务器还用于基于目标应用的服务端程序在所述第一服务器上的地址信息,从所述协议数据中获取目标协议数据;
48.所述第一服务器还用于向所述第二服务器发送所述目标协议数据;
49.所述第二服务器用于接收所述目标协议数据,将所述目标协议数据转化为目标格式;
50.所述第二服务器还用于存储所述目标格式的所述目标协议数据。
51.在一种可能的实施方式中,所述系统还包括第三服务器;
52.所述第三服务器用于向所述第二服务器发送数据查询请求,所述数据查询请求包括待查询的客户端程序的地址信息以及待查询的服务端程序的地址信息,所述客户端程序
为目标应用的客户端程序,所述服务端程序为所述目标应用的服务端程序;
53.所述第三服务器用于从所述第二服务器获取所述数据查询请求对应的第二协议数据,所述第二协议数据包括所述客户端程序与所述服务端程序之间进行交互的协议数据;
54.所述第三服务器用于将所述第二协议数据发送给所述数据查看客户端程序,所述数据查看客户端程序用于显示所述第二协议数据。
55.一方面,提供了一种计算机设备,所述计算机设备包括一个或多个处理器和一个或多个存储器,所述一个或多个存储器中存储有至少一条计算机程序,所述计算机程序由所述一个或多个处理器加载并执行以实现所述协议数据的录制方法、所述协议数据的存储方法以及所述协议数据的查询方法。
56.一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述计算机程序由处理器加载并执行以实现所述协议数据的录制方法、所述协议数据的存储方法以及所述协议数据的查询方法。
57.一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括程序代码,该程序代码存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取该程序代码,处理器执行该程序代码,使得该计算机设备执行上述协议数据的录制方法、所述协议数据的存储方法以及所述协议数据的查询方法。
58.通过本技术实施例提供的技术方案,在录制协议数据时,由第一服务器来获取第一服务器交互时的协议数据。第一服务器收集到协议数据之后,能够从协议数据中获取目标应用的客户端程序与服务端程序之间进行交互的目标协议数据。在需要收集多个客户端程序与服务端程序之间进行交互的协议数据时,无需在多个客户端程序中安装数据收集模块,通过第一服务器就能够直接进行相应协议数据的采集,从而提高了录制协议数据的效率。
附图说明
59.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
60.图1是本技术实施例提供的osi模型的示意图;
61.图2是本技术实施例提供的技术方案的实施环境的示意图;
62.图3是本技术实施例提供的一种服务器提供功能的示意图;
63.图4是本技术实施例提供的技术方案的流程图;
64.图5是本技术实施例提供的技术方案的流程图;
65.图6是本技术实施例提供的一种数据查看页面的示意图;
66.图7是本技术实施例提供的一种数据查看页面的示意图;
67.图8是本技术实施例提供的技术方案的流程图;
68.图9是本技术实施例提供的一种协议数据的存储系统的结构示意图;
69.图10是本技术实施例提供的一种协议数据的录制装置的结构示意图;
70.图11是本技术实施例提供的一种协议数据的存储装置的结构示意图;
71.图12是本技术实施例提供的一种协议数据的查询装置的结构示意图;
72.图13是本技术实施例提供的一种服务器的结构示意图。
具体实施方式
73.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式做进一步的详细描述。
74.本技术中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。
75.本技术中术语“至少一个”是指一个或多个,“多个”的含义是指两个或两个以上,例如,多个人脸图像是指两个或两个以上的人脸图像。
76.tps(transactions per second,每秒事务处理量),在协议测试中,tps越大说明协议通信频率越高,通信数据量越大。
77.osi/rm(open system interconnection reference model,开放式系统互联通信参考模型):osi/rm协议是由iso(国际标准化组织)制定的,它有三个基本的功能:提供给开发者一个必需的、通用的概念以便开发完善、可以用来解释连接不同系统的框架。osi参考模型并没有提供一个可以实现的方法,而是描述了一些概念,用来协调进程间通信标准的制定。即osi参考模型并不是一个标准,而是一个在制定标准时所使用的概念性框架。
78.参见图1,osi将计算机网络体系结构(architecture)划分为以下七层:
79.物理层:将数据转换为可通过物理介质传送的电子信号,相当于邮局中的搬运工人。
80.数据链路层:决定访问网络介质的方式。在此层将数据分帧,并处理流控制。本层指定拓扑结构并提供硬件寻址,相当于邮局中的装拆箱工人。
81.网络层:使用权数据路由经过大型网络相当于邮局中的排序工人。
82.传输层:提供终端到终端的可靠连接相当于公司中跑邮局的送信职员。
83.会话层:允许用户使用简单易记的名称建立连接相当于公司中收寄信、写信封与拆信封的秘书。
84.表示层:协商数据交换格式相当于公司中简报老板、替老板写信的助理。
85.应用层:用户的应用程序和网络之间的接口。
86.本技术实施例提供的技术方案应用在物理层和数据链路层之间。
87.可以理解的是,在本技术的具体实施方式中,涉及到协议数据等相关的数据,当本技术以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
88.图2是本技术实施例提供的技术方案的实施环境示意图,参见图2,该实施环境可以包括终端210、第一服务器220、第二服务器230以及第三服务器240。
89.终端210通过无线网络或有线网络与第一服务器220相连。可选地,终端210是智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此。终端210安装和运行有目标应用,在一些实施例中,该目标应用为游戏类的应用程序。
90.第一服务器220是独立的物理服务器,或者是多个物理服务器构成的服务器集群或者分布式系统,或者是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云服务器。在一些实施例中,第一服务器220为目标应用提供后台服务器,在目标应用为游戏类应用程序的情况下,该第一服务器220也就为游戏类应用程序提供后台服务器,相应地,该第一服务器220也被称为游戏服务器。在一些实施例中,目标服务器上独立运行有多个虚拟机,各个虚拟机均为一个服务器,第一服务器220为目标服务器上的一个虚拟机对应的服务器,举例来说,目标服务器同时为应用程序a和应用程序b提供后台服务器,也即是在目标服务器上,独立运行有应用程序a对应的服务器a以及应用程序b对应的服务器b,服务器a和服务器b之间的数据是隔离的,在目标应用为应用程序a的情况下,第一服务器220也即是服务器a。在一些实施例中,参见图3,在录制协议数据过程中,第一服务器220的功能包括协议数据抓取、协议数据过滤以及协议数据组,对于这三个功能的介绍会在后续说明中依次进行。
91.第二服务器230是独立的物理服务器,或者是多个物理服务器构成的服务器集群或者分布式系统,或者是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、分发网络、以及大数据和人工智能平台等基础云计算服务的云服务器。在一些实施例中,第二服务器230用于在应用程序测试过程中进行数据处理和数据中转。在一些实施例中,参见图3,在存储协议数据过程中,第二服务器230的功能包括协议数据解压、协议数据解密、以及协议数据解码,对于这三个功能的介绍会在后续说明中依次进行。第二服务器230提供分布式存储和快照存储两种存储方式,对于这两种存储方式的介绍会在后续说明中依次进行。
92.第三服务器240是独立的物理服务器,或者是多个物理服务器构成的服务器集群或者分布式系统,或者是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、分发网络、以及大数据和人工智能平台等基础云计算服务的云服务器。在一些实施例中,第三服务器240用户从存储服务器240获取应用程序测试过程中的数据,并对获取到的数据进行可视化。在一些实施例中,参见图3,在应用程序测试过程中,第三服务器240提供历史协议查看服务以及协议实时查看服务器,对于这两种服务的介绍会在后续说明中依次进行。
93.本领域技术人员可以知晓,上述终端和服务器的数量可以更多或更少。比如上述终端和各个服务器仅为一个,或者上述终端和各个服务器均为几十个或几百个,或者更多数量,此时上述实施环境中还包括其他终端和服务器。本技术实施例对终端的数量和设备类型不加以限定。
94.在介绍完本技术实施例提供的实施环境之后,下面将结合上述实施环境,对本技术实施例的应用场景进行介绍,在下述说明过程中,终端也即是上述实施环境中的终端210,第一服务器也即是上述实施环境中的第一服务器220,第二服务器也即是上述实施环境中的第二服务器230,第三服务器也即是上述实施环境中的第三服务器240。
95.本技术实施例提供的技术方案的应用目标可以是各类基于客户端程序和服务器交互来实现对应功能的目标应用,比如,本技术实施例提供的协议数据的录制方法能够应用在对各类应用程序进行测试的过程中,比如应用在对游戏类应用程序进行测试的过程
中,或者应用在对视频播放类应用程序进行测试的过程中,或者应用在对购物类应用程序进行测试的过程中。另外,本技术实施例提供的协议数据的录制方法还能够应用在对各类应用程序进行维护的过程中,比如应用在对游戏类应用程序进行维护的过程中,或者应用在对视频播放类应用程序进行维护的过程中,或者应用在对购物类应用程序进行维护的过程中。除此之外,本技术实施例提供的协议数据的录制方法还能够应用在其他需要进行协议数据录制、存储和调用的场景下,本技术实施例对此不做限定。
96.以本技术实施例提供的技术方案应用在对游戏类应用程序进行测试的过程中为例,第一服务器上运行有该目标应用的服务端程序,在该目标应用为游戏类应用程序的情况下,该服务端程序也即是为游戏提供服务的服务端程序。终端启动目标应用的客户端程序,通过该目标应用的客户端程序与第一服务器进行通信,这里的通信也即是该客户端程序与该第一服务器上运行的服务端程序之间的通信,其中,该客户端程序与第一服务器之间的通信是基于协议数据来实现的。对该游戏类应用程序进程测试的过程中,存在该游戏类应用程序的多个客户端程序同时与该第一服务器进行通信的情况,对该游戏类应用程序进行测试是基于该多个客户端程序与该第一服务器之间的交互的协议数据来实现的。
97.第一服务器监控第一服务器的通信,以录制第一服务器通信时的协议数据,协议数据包括第一服务器发送的协议数据,还包括第一服务器接收到的协议数据,也即是,协议数据是第一服务器对自身进行监控来获取的,并不是通过其他服务器或者终端获取的,在一些实施例中,上述第一服务器监控并录制协议数据的功能,也被称为协议数据抓取。第一服务器获取协议数据之后,能够基于目标应用的服务端程序在第一服务器上的地址信息,对获取的协议数据进行过滤,得到目标协议数据,目标协议数据包括该服务端程序与多个客户端程序之间进行交互的协议数据,也即是包括该服务端程序通过该第一服务器向该多个客户端程序发送的协议数据,还包括该多个客户端程序向该服务端程序发送的协议数据。第一服务器将目标协议数据发送给第二服务器,由第二服务器对该目标协议数据进行数据处理以及存储。在一些实施例中,第二服务器将该目标协议数据转化为目标格式,并对该目标格式的目标协议数据进行存储。在应用程序测试的过程中,技术人员能够基于第二服务器中存储的协议数据对该游戏类应用程序进行测试。比如,技术人员能够通过第三服务器来调用第二服务器中存储的协议数据,也即是技术人员通过数据查看客户端程序向第三服务器发送数据查询指令,第三服务器基于该数据查询指令向第二服务器发送数据查询请求,第二服务器基于该数据查询请求获取对应的协议数据,并将获取到的协议数据发送给第三服务器,由第三服务器对该协议数据进行可视化,将可视化后的协议数据发送给数据查看客户端程序,技术人员通过该数据查看客户端程序就能够看到想要查询的协议数据。
98.需要说明的是,上述是以目标应用为游戏类应用程序为例进行说明的,在目标应用为视频播放类应用程序或购物类应用程序的情况下,实现过程与上述说明属于同一发明构思,在此不再赘述。
99.当然,本技术实施例提供的协议数据的录制、存储以及查看方法除了能够应用在对应用程序进行测试的场景下,还能够应用在对应用程序进行维护以及其他需要进行协议数据录制、存储和调用的场景下,本技术实施例对此不做限定。
100.在介绍完本技术实施例的实施环境和应用场景之后,下面将对本技术实施例提供
的技术方案进行说明,参见图4,方法包括:
101.401、第一服务器监控该第一服务器的通信,以录制该第一服务器通信时的协议数据,该协议数据包括该第一服务器发送的协议数据以及该第一服务器接收到的协议数据。
102.其中,第一服务器为目标应用的后台服务器,第一服务器用于为目标应用提供后台服务,第一服务器与外界进行通信时,是通过互相发送协议数据来实现的,第一服务器能够监控自身与外界的通信,以获取发送和接收到的协议数据,需要说明的是,这里的外界是指其他服务器和终端。
103.402、第一服务器基于目标应用的服务端程序在该第一服务器上的地址信息,从该协议数据中获取目标协议数据。
104.其中,该目标应用的服务端程序运行在第一服务器上,用于为目标应用的客户端程序提供服务。该目标协议数据包括该目标应用的多个客户端程序与该目标应用的服务端程序之间进行交互的协议数据。也即是,目标协议数据既包括目标应用的多个客户端程序通过第一服务器发送给该服务端程序的协议数据,也包括该服务端程序通过第一服务器发送给多个客户端程序的协议数据。在一些实施例中,目标应用的服务端程序在该第一服务器上的地址信息为用于指示客户端程序与该服务端程序进行通信的地址,目标应用的客户端程序基于该地址信息能够与服务器上运行的该服务端程序进行交互。在一些实施例中,该目标协议数据用于对该目标应用进行测试,或者该目标协议数据用于对该目标应用进行维护。
105.上述步骤401和402为本技术实施例提供的协议数据的录制方法。
106.403、第一服务器向第二服务器发送目标协议数据。
107.其中,第二服务器用于对目标协议数据进行数据处理和存储。
108.404、第二服务器接收该目标协议数据。
109.405、第二服务器将该目标协议数据转化为目标格式。
110.其中,目标格式为技术人员设置的格式,第二服务器能够将不同格式的目标协议数据转化为相同的目标格式,便于后续的存储和调用。
111.406、第二服务器存储该目标协议数据。
112.上述步骤403-405为本技术实施例提供的协议数据的存储方法。
113.407、第三服务器向第二服务器发送数据查询请求,该数据查询请求包括待查询的客户端程序的地址信息以及待查询的服务端程序的地址信息。
114.其中,第三服务器能够从第二服务器中获取协议数据,并将获取到协议数据发送给数据查看客户端程序,通过数据查看客户端程序来显示该协议数据。
115.408、第三服务器从该第二服务器获取该数据查询请求对应的第二协议数据,该第二协议数据包括该客户端程序与该服务端程序之间进行交互的协议数据,该第二协议数据为该第一服务器录制的协议数据。
116.409、第三服务器将该第二协议数据发送给该数据查看客户端程序,数据查看客户端程序用于显示该第二协议数据。
117.上述步骤406-409为本技术实施例提供的协议数据的查询方法。
118.通过本技术实施例提供的技术方案,在录制协议数据时,由第一服务器来获取第一服务器交互时的协议数据。第一服务器收集到协议数据之后,能够从协议数据中获取目
标应用的客户端程序与服务端程序之间进行交互的目标协议数据。在需要收集多个客户端程序与服务端程序之间进行交互的协议数据时,无需在多个客户端程序中安装数据收集模块,通过第一服务器就能够直接进行相应协议数据的采集,从而提高了录制协议数据的效率。
119.还有,第一服务器还将目标协议数据发送给第二服务器,由第二服务器对数据进行进一步处理,从而实现数据收集和数据处理的解耦,提高数据收集和数据处理的效率。第二服务器还能够对处理完毕的目标协议数据进行存储,以便技术人员随时查询和调用协议数据。
120.除此之外,在需要进行协议数据查询时,技术人员也能够通过第三服务器来获取想要查看的协议数据,有助于技术人员对协议数据的运用。
121.上述步骤401-409是对本技术实施例提供的技术方案的简单介绍,下面将结合一些例子,对本技术实施例提供的技术方案进行更加清楚的说明,参见图5,方法包括:
122.501、第一服务器监控该第一服务器的通信,以录制该第一服务器通信时的协议数据,该协议数据包括该第一服务器发送的协议数据以及该第一服务器接收到的协议数据。
123.其中,第一服务器能够为目标应用提供后台服务,该第一服务器也被称为应用服务器。在一些实施例中,第一服务器上运行有目标应用的服务端程序,第一服务器通过该服务端程序为目标应用提供后台服务。第一服务器上的服务端程序与目标应用的客户端程序进行通信时,是通过互相发送协议数据来实现的,协议数据也即是符合某种通信协议的数据,比如,该协议数据为符合tcp/ip(transmission control protocol/internet protocol,传输控制协议/网际协议)的数据。当然,随着技术的发展,协议数据也可以为符合其他传输协议的数据,本技术实施例对此不做限定。该协议数据包括多个报文。在一些实施例中,第一服务器为linux服务器,linux全称gnu/linux,是一种类unix操作系统。参见图3,步骤501也即是第一服务器提供的协议数据抓取服务。
124.在一种可能的实施方式中,第一服务器监控该第一服务器的网卡,从该网卡中获取该第一服务器通信时的协议数据。
125.其中,第一服务器的网卡也即是连接第一服务器与其他服务器和电子设备的中介设备,第一服务器发送和接收协议数据均通过网卡来实现,由于网卡拥有mac(media access control address,媒体存取控制位址),因此属于osi模型的第1层物理层和第2层数据链路层之间,图1也示出了osi模型与第一服务器的网卡之间的关系。
126.在这种实施方式下,第一服务器能够直接从网卡上获取第一服务器通信时的协议数据,无需借助应用客户端程序进行录制,节省了在目标应用的多个客户端程序上安装录制工具的时间。在本技术实施例提供的技术方案应用在应用程序测试的场景的情况下,也就节省了应用程序测试的时间,提高了应用程序测试的效率。另外,直接从网卡上获取协议数据也就意味着无需终端发送,也能够节省网络资源。
127.举例来说,第一服务器上安装有协议录制装置,该协议录制装置能够获取第一服务器上经过网卡发送和接收的协议数据,该协议录制装置可以为一个虚拟装置,也可以为实体装置,本技术实施例对此不做限定。第一服务器通过该协议录制装置对网卡进行监控,以录制网卡中的网络数据包,该网络数据包包括该第一服务器通信时的协议数据。在运行过程中,第一服务器不仅会与目标应用的客户端程序进行通信,还可能与其他应用程序的
客户端程序进行通信,比如,在该第一服务器上与目标应用的客户端程序进行通信的过程中,第一服务器还可能同时与另一个应用程序的客户端程序进行通信,或者与其他服务器进行通信,这里的通信是指发送和接收协议数据。由于第一服务器发送和接收协议数据是基于网卡实现的,那么协议录制装置从网卡上获取的数据包不仅包括第一服务器与目标应用的客户端程序之间进行交互的协议数据,也包括第一服务器与其他应用的客户端程序或者其他服务器之间进行交互的协议数据。
128.比如,在目标应用为游戏类应用程序的情况下,该第一服务器也可以被称为游戏服务器,目标应用的客户端程序向游戏服务器发送的协议数据包括游戏相关数据的获取请求、账号验证请求以及游戏中的操作数据等,其中,游戏相关数据包括渲染游戏场景的数据、游戏中虚拟道具的数据、游戏中虚拟对象的数据等;账号验证请求为用于请求对在客户端程序上登录的游戏账号进行验证的请求;游戏中的操作数据为玩家在游戏中执行操作对应的数据,比如,包括玩家在游戏中控制虚拟对象进行移动的数据、玩家在游戏中控制虚拟对象释放虚拟技能的数据以及玩家在游戏中控制虚拟对象使用虚拟道具的数据等。第一服务器上的协议录制装置基于libnids(network intrusion detect system library,网络入侵监测系统函数库)监控并且录制游戏服务器网卡中的网络数据包。其中,libnids支持tcp/udp协议,支持tcp报文重组、支持数据包ip分段重组等功能,同时libnids支持多线程协议数据抓取,具备高效的协议数据录制性能。当然,随着技术的发展,还可能出现其他支持协议数据录制的函数库,协议录制装置也能够基于其他类型的函数库来录制该第一服务器通信时的协议数据,本技术实施例对此不做限定。
129.502、第一服务器基于目标应用的服务端程序在该第一服务器上的地址信息,从该协议数据中获取目标协议数据。
130.其中,该目标协议数据包括该目标应用的多个客户端程序与该目标应用的服务端程序之间进行交互的协议数据。在一些实施例中,该目标协议数据用于对该目标应用进行测试,或者用于对目标应用进行维护等。在一些实施例中,目标应用的服务端程序在该第一服务器上的地址信息为用于指示客户端程序与该目标应用的服务端程序进行通信的地址,目标应用的客户端程序基于该地址信息能够与服务器上运行的服务端程序进行交互。换句话说,目标应用的客户端程序与第一服务器上运行的服务端程序进行交互时,客户端程序向第一服务器发送的协议数据中携带有该服务端程序在该第一服务器上的地址信息,相应地,该服务端程序通过第一服务器向客户端程序发送的协议数据中也携带有该服务端程序在该第一服务器上的地址信息,第一服务器能够基于该目标应用的服务端程序在该第一服务器上的地址信息,从协议数据中筛选出目标协议数据。该目标协议数据包括多个报文。参见图3,步骤502也即是第一服务器提供的协议数据过滤服务。
131.在一种可能的实施方式中,第一服务器基于该目标应用的服务端程序在该第一服务器上运行时的端口号,对该协议数据进行过滤,得到该目标协议数据。
132.其中,该目标应用的服务端程序在该第一服务器上的地址信息也即是该目标应用在该第一服务器上的端口号。
133.在这种实施方式下,由于目标应用的客户端程序需要与该目标应用的服务端程序交互,那么在目标应用的客户端程序向第一服务器发送协议数据时,会携带目标应用的服务端程序在该第一服务器上运行的端口号,端口号对应于进程,第一服务器基于该端口号
来将协议数据发送给该目标应用的服务端程序对应的进程。相应地,在目标应用的服务端程序通过该第一服务器向该客户端程序发送协议数据时,也会携带该服务端程序的端口号来表明数据来源。第一服务器基于目标应用的服务端程序在该第一服务器上运行时的端口号从该协议数据中筛选出目标协议数据的效率较高。
134.举例来说,第一服务器将该目标应用的服务端程序在该第一服务器上运行时的端口号与录制的该协议数据中报文的报文头进行比较。在该协议数据中任一报文的报文头携带该端口号的情况下,表示该报文为目标应用的客户端程序与服务端程序之间进行交互的报文,第一服务器保留该报文;在该协议数据中另一报文的报文头中没有携带该端口号的情况下,表示该报文不是目标应用的客户端程序与该服务端程序之间进行交互的报文,第一服务器删除该报文。通过上述过程,保留的报文也就构成了目标协议数据,第一服务器实现了从该协议数据中获取目标协议数据的目的。
135.在一种可能的实施方式中,第一服务器基于该目标应用的服务端程序在该第一服务器上运行时的端口号以及该第一服务器的ip地址,对该协议数据进行过滤,得到该目标协议数据。
136.其中,该目标应用的服务端程序在该第一服务器上的地址信息包括该目标应用的服务端程序在该第一服务器上的端口号以及该第一服务器的ip地址。在这种情况下,第一服务器为目标服务器上的一个虚拟机,目标服务器上独立运行有多个虚拟机,一个虚拟机对应于一个服务器,每个虚拟机具有不同的ip(internet protocol,网际互连协议)地址,多个虚拟机能够为不同应用程序提供后台服务。也就是说,目标服务器为一个物理服务器,这个物理服务器上部署有多个虚拟机,通过该多个虚拟机来实现多个服务器的功能,第一服务器为该目标服务器上的一个虚拟服务器。通过ip地址能够区分不同的虚拟机,也就能够区分目标服务器上不同的虚拟服务器。
137.通过上述实施方式,能够在第一服务器为目标服务器上的一个虚拟机时对协议数据进行快捷筛选,效率较高。
138.举例来说,在这种情况下,录制的该协议数据为该目标服务器发送的协议数据以及该目标服务器接收到的协议数据,由于该目标服务器上存在多个虚拟机,那么通过网卡录制的该协议数据也就涵盖了多个虚拟机通信时的协议数据。第一服务器基于该第一服务器的ip地址对该协议数据进行筛选,得到参考协议数据,该参考协议数据也即是第一服务器通信时的协议数据。第一服务器基于该目标应用的服务端程序在该第一服务器上的端口号对该参考协议数据进行筛选,得到该目标协议数据。
139.比如,第一服务器将该第一服务器的ip地址与该协议数据中报文的报文头进行比较。在该协议数据中任一报文的报文头中携带该第一服务器的ip地址的情况下,表示该报文为第一服务器进行通信时的报文,第一服务器保留该报文;在该协议数据中另一报文的报文头中没有携带该第一服务器的ip地址的情况下,表示该报文不是第一服务器进行通信时的报文,第一服务器删除该报文。通过上述过程,保留的报文也就构成了参考协议数据。第一服务器将该目标应用的服务端程序在该第一服务器上运行时的端口号与该参考协议数据中报文的报文头进行比较。在该参考协议数据中任一报文的报文头中携带该端口号的情况下,表示该报文为目标应用的客户端程序与该服务端程序之间进行交互的报文,第一服务器保留该报文;在该参考协议数据中另一报文的报文头中没有携带该端口号的情况
下,表示该报文不是目标应用的客户端程序与该服务端程序之间进行交互的报文,第一服务器删除该报文。通过上述过程,保留的报文也就构成了目标协议数据。
140.在测试过程中,使用6核/16g内存的linux服务器部署协议数据录制服务,在1500tps的通信频率下(如果客户端程序与服务器的通信频率为每秒一次时,那么可以同时对1500个客户端程序的协议数据同时进行录制)。同时可以保持cpu单核占用率为10%左右,内存占用0.08%,基本不会对linux服务器的运行产生影响。
141.503、第一服务器对该目标协议数据进行组包,得到目标数据包。
142.在一种可能的实施方式中,第一服务器基于目标协议,对目标协议数据进行组包,得到参考数据包,该参考数据包也即是该目标协议的数据包,其中,目标协议为约定的协议,由技术人员根据实际情况进行设置,本技术实施例对此不做限定。第一服务器基于该参考数据包,获取该目标数据包。参见图3,步骤503也即是第一服务器提供的协议数据组包服务。
143.举例来说,第一服务器获取目标协议数据中各个报文对应的地址信息以及收发时间,其中,报文对应的地址信息用于指示报文的发送方和接收方,报文的收发时间用于在对协议数据进行存储和查询时确定对应的时间。第一服务器基于目标协议,对目标协议数据进行组包,得到参考数据包。第一服务器将该参考数据包、参考数据包中各个报文对应的地址信息以及收发时间进行打包,得到该目标数据包。在一些实施例中,第一服务器还能够将该参考数据包、参考数据包中各个报文对应的地址信息、收发时间以及该参考数据包的大小进行打包,得到该目标数据包,参考数据包的大小可以用于对数据包进行校验,以保证数据包的完整性。
144.比如,第一服务器基于该目标协议数据中多个报文的报文头,获取各个报文的地址信息以及收发时间,其中,地址信息包括对应报文的源ip、目的ip、源端口号以及目的端口号。对于第一服务器上运行的目标应用发送给终端上运行的目标应用的报文,该报文的源ip为第一服务器的ip,目的ip为该终端的ip,源端口号为第一服务器上运行的目标应用的服务端程序对应的端口号,目的端口号为该终端上运行的目标应用的客户端程序对应的端口号。第一服务器通过libnids对目标协议数据进行组包,得到参考数据包,该参考数据包为tcp/udp协议的数据包。第一服务器将该参考数据包、参考数据包中各个报文对应的地址信息以及收发时间进行打包,得到该目标数据包。或者,第一服务器还能够将该参考数据包、参考数据包中各个报文对应的地址信息、收发时间以及该参考数据包的大小进行打包,得到该目标数据包。在一些实施例中,该目标数据包还携带客户端程序登录的账号,这样便于后续基于账号进行查询,在该客户端程序为游戏客户端程序,该第一服务器为游戏服务器的情况下,该账号也即是游戏账号。
145.在一些实施例中,在上述实施方式中第一服务器基于该参考数据包,获取该目标数据包的过程中,第一服务器还能够对该参考数据包进行加密、压缩以及序列化中的至少一项,以得到该目标数据包,其中,序列化也被称为编码,是按照预设规则对数据进行处理的过程。通过对该参考数据包进行加密,能够提高数据包传输过程中的安全性;通过对该参考数据包进行压缩,能够减少数据包的大小,以提高数据包的传输效率;序列化为个性化配置,用于针对不同的电子设备,以使得目标数据包能够被后续接收到的电子设备处理。
146.比如,在上述第一服务器将该参考数据包、参考数据包中各个报文对应的地址信
息以及收发时间进行打包,得到该目标数据包。或者,第一服务器还能够将该参考数据包、参考数据包中各个报文对应的地址信息、收发时间以及该参考数据包的大小进行打包,得到该目标数据包的过程中,第一服务器均能够在打包过程中执行加密、压缩以及序列化中的至少一项,以得到该目标数据包。
147.504、第一服务器向第二服务器发送该目标数据包。
148.上述步骤501-504为本技术实施例提供的协议数据的录制方法。
149.505、第二服务器获取该目标数据包。
150.其中,该第二服务器也被称为中继服务器,用于对协议数据进行处理。
151.506、第二服务器对该目标数据包进行解密、解压以及解码中的至少一项,得到该目标协议数据。
152.在一种可能的实施方式中,第二服务器基于配置文件对该目标数据包进行解密、加压以及解码中的至少一项,得到该目标协议数据。参见图3,步骤506也即是第二服务器提供的协议数据解压、协议数据解密以及协议数据解码服务。
153.其中,配置文件是技术人员提前编写好的文件,配置文件用于指示是否对目标数据包进行解密、解压以及解码。在一些实施例中,在确定对目标数据包进行解密的情况下,该配置文件还包括对该目标数据包进行解密的方法,比如,该配置文件包括对该目标数据包进行解密的密钥;在确定对目标数据包进行解压的情况下,该配置文件还包括对目标数据包进行解压的方式;在确定对目标数据包进行解码的情况下,该配置文件还包括对该目标数据包进行解码的方式;在确定对目标数据包进行解密和解压的情况下,该配置文件还包括对该目标数据包进行解密和解压的顺序。解码是指对目标数据包进行反序列化,例如,如果目标协议数据是通过protocol buffers(缓存协定,protobuf)进行序列化的,那么反序列化后生成的数据格式为protocol buffers数据格式。
154.举例来说,在第一服务器向第二服务器发送的目标数据包是经过加密的情况下,那么第二服务器能够基于该配置文件对该目标数据包进行解密,得到该目标协议数据;第一服务器向第二服务器发送的目标数据包是经过压缩的情况下,那么第二服务器能够基于该配置文件对该目标数据包进行解压,得到该目标协议数据;第一服务器向第二服务器发送的目标数据包是经过编码的情况下,那么第二服务器能够基于该配置文件对该目标数据包进行解码,得到该目标协议数据。在一些实施例中,该目标数据包为tcp/udp的数据包。
155.在一些实施例中,客户端程序向第一服务器发送协议数据时,会进行加密以及压缩中的任一项,在这种情况下,第一服务器将该参考数据包、参考数据包中各个报文对应的地址信息以及收发时间进行打包,得到该目标数据包的过程中,第一服务器无需进行加密或者加压操作,只需进行编码即可。相应地,配置文件中记载的对目标数据包进行解密的方法对应于客户端程序对协议数据进行加密的方法,配置文件中记载的对目标数据包进行解压的方法对应于对客户端程序对协议数据进行压缩的方法。也即是,在客户端程序与第一服务器之间通信的协议数据是经过加密的情况下,在第二服务器上配置对数据的解密操作,配置的对数据的解密操作记载在配置文件中;在客户端程序与第一服务器之间通信的协议数据是经过压缩的,那么在第二服务器上配置对数据的解压操作,配置的对数据的解压操作记载在配置文件中。
156.通过步骤506,采用第二服务器实现对录制的协议数据进行处理,从而实现协议数
据的录制与处理过程的解耦,提高数据录制和处理的效率,同时提高数据处理模块的可扩展性。
157.507、第二服务器将该目标协议数据转化为目标格式。
158.其中,目标格式为技术人员设置的格式,第二服务器能够将不同格式的目标协议数据转化为相同的目标格式,便于后续的存储和调用。
159.在一种可能的实施方式中,第二服务器对目标协议数据进行格式转化,得到目标格式的该目标协议数据,其中,中继服务器对目标协议数据进行格式转化的过程,能够通过安装在第二服务器上的格式转化工具来实现,该格式转化工具能够将不同格式的协议数据转化为目标格式。在一些实施例中,第二服务器采用格式转化工具将目标协议数据转化为json格式,json是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据,具有简洁和清晰的层次结构。
160.需要说明的是,在上述说明过程中,是以第二服务器将目标协议数据转化为json格式为例进行说明的,在其他可能的实施方式中,第二服务器也能够将目标协议数据转化为其他格式,本技术实施例对此不做限定。
161.在一些实施例中,在步骤507之后,第二服务器能够对该目标格式的目标协议数据进行存储,在存储过程中,第二服务器既能够将该目标格式的目标协议数据存储在自身的存储介质中,也能够借助存储服务器来实现该目标格式的目标协议数据的存储,其中,该存储服务器为该第二服务器的一个子服务器,或者,该存储服务器为一个独立的服务器。在下述说明过程中,是以第二服务器通过存储服务器来对该目标协议数据进行存储为例进行说明的,在第二服务器将该目标格式的目标协议数据存储在自身的存储介质的情况下,实现过程与存储服务器存储该目标协议数据的方法属于同一发明构思。
162.508、第二服务器向存储服务器发送该目标格式的该目标协议数据。
163.509、存储服务器获取该目标格式的目标协议数据。
164.510、存储服务器基于该目标协议数据携带的多个客户端程序的地址信息,确定该目标协议数据对应的多个存储进程。
165.其中,客户端程序的地址信息也即是客户端程序的通信地址。在一些实施例中,客户端程序的地址信息包括客户端程序所在终端的ip地址以及客户端程序的端口号。第一服务器基于该客户端程序的地址信息能够向对应的客户端程序发送协议数据。当然,在该客户端程序向第一服务器发送协议数据时,也会携带自身的地址信息以表明身份。存储服务器基于客户端程序的地址来确定对应的存储进程。对于目标协议数据中对应于同一个客户端程序的协议数据来说,存储服务器能够采用同一个存储进程对该同一个客户端程序的协议数据进行存储,便于后续查询。
166.在一种可能的实施方式中,存储服务器基于多个客户端程序的ip地址以及对应的端口号,确定各个客户端程序对应的存储进程的标识。存储服务器基于各个客户端程序对应的存储进程的标识,确定该目标协议数据对应的多个存储进程。
167.在这种实施方式下,在确定存储进程的过程中,是基于客户端程序的ip地址和端口号来实现的,这样能够保证一个客户端程序的协议数据会通过同一个存储进程来进行存储,由于同一个存储进程指向同一个存储位置,也就是说存储服务器会将同一个客户端程序的协议数据存储在同一个存储位置上,这样能够保证同一个客户端程序的协议数据的连
续性,提高后续的查询效率。
168.举例来说,存储服务器通过存储任务分发节点,基于非对称加密算法对各个客户端程序的ip地址以及对应的端口号进行加密,得到各个客户端程序对应的存储进程的标识。存储服务器通过存储进程的标识确定对应的存储进程。比如,存储服务器通过存储任务分发节点对各个客户端程序的ip地址以及对应的端口号进行哈希映射,得到各个客户端程序对应的存储进程的标识,该标识也即是一个哈希值。存储服务器通过存储任务分发节点,确定存储进程的标识对应的存储进程。在一些实施例中,存储服务器通过该存储任务分发节点对各个客户端程序的ip地址以及对应的端口号进行哈希映射,得到各个客户端程序对应的存储进程的标识的过程中,存储服务器能够通过该存储任务分发节点将各个客户端程序的ip地址以及对应的端口号进行拼接,得到拼接地址信息。存储服务器通过该存储任务分发节点对该拼接地址信息进行执行哈希映射,得到各个客户端程序对应的存储进程的标识。
169.需要说明的是,在上述说明过程中,是以对非对称加密算法为哈希映射为例进行说明的,在其他可能的实施方式中,本技术实施例中涉及的非对称加密算法还可以为其他类型的加密算法,本技术实施例对此不做限定。
170.511、存储服务器基于该多个存储进程存储该目标协议数据。
171.在一种可能的实施方式中,对于该多个客户端程序中的第一客户端程序,存储服务器基于该第一客户端程序的地址信息,从该目标协议数据中获取第一客户端程序对应的第一协议数据。存储服务器基于该第一客户端程序的地址信息对应存储进程,将该第一协议数据中属于相同传输时间段的协议数据存储在同一个存储单元中,该传输时间段为该第一客户端程序从登录该第一服务器到登出该第一服务器的时间段。
172.在一些实施例中,一个传输时间段被称为一个登录session,这里的登录session指的是客户端程序从主动登录到第一服务器开始,到主动登出第一服务器,或者是因为长时间没有和第一服务器进行通信而被第一服务器自动踢下线的这段时间,一个存储单元对应于一个session。在这种实施方式下,存储服务器能够通过多进程的方式来对目标协议数据进行存储,这样能够提高对目标协议数据进行存储的效率。同时,在对目标协议数据中不同客户端程序对应的协议数据信息存储时,会将同一个客户端程序在相同传输时间段的协议数据存储在同一个存储单元中,这样能够保证同一个客户端程序存储协议数据的连续性。这样的存储方式使得每个存储单元中存储的协议数据有良好的时间连续性,同时方便后续通过使用不同的登录时间来识别并查看历史协议数据。
173.在一些实施例中,存储服务器基于fastdfs分布式文件系统对目标协议数据进行存储,通过fastdfs分布式文件系统能够对录制的协议数据进行持续存储,存储时间可达一年以上,另外,当存储服务器存储容量不足时,可以对存储服务器进行用户无感知的动态扩容。
174.在一种可能的实施方式中,在存储服务器基于该多个存储进程存储该目标协议数据的过程中,存储服务器还能够基于该目标应用的服务端程序的地址信息以及该多个客户端程序的地址信息,生成该多个存储进程分别对应的多个存储链接,该多个存储链接分别指向对应存储进程的存储单元。其中,该多个存储链接存放在存储服务器的缓存中,以便于进行快速查询。
175.举例来说,存储服务器基于fastdfs分布式文件系统每个登录session进行存储时,会生成一个唯一的url(uniform resource locator,统一资源定位器)指向对应存储单元的存储地址,该url也即是链接。此时由存储任务分发节点将该存储地址的url、协议数据的源ip、源端口号、目的ip、目的端口号、登录session开始时间等信息存储在redis中。在属于同一个登录session的协议数据到达存储服务器时,可以通过查询redis(remote dictionary server,远程字典服务)快速的匹配到指定源ip和源端口号对应的登录session在fastdfs分布式文件系统中存储的url地址,然后完成存储操作,效率较高,其中,redis也即是存储服务器的缓存对应的服务,或者说是fastdfs分布式文件系统对应的服务。参见图3,步骤510和511也即是存储服务器提供的分布式文件存储和redis快照存储服务。
176.上述步骤505-511为本技术实施例提供的协议数据的存储方法。
177.通过上述步骤501-511,实现了对目标协议数据的录制和存储,为了方便对目标协议数据的查看和调用,本技术实施例还提供了下述数据查询的方法。
178.512、第三服务器向存储服务器发送数据查询请求,该数据查询请求包括待查询的客户端程序的地址信息以及待查询的服务端程序的地址信息,该客户端程序为目标应用的客户端程序,该服务端程序为目标应用的服务端程序。
179.在一种可能的实施方式中,响应于数据查看客户端程序的数据查询指令,第三服务器向存储服务器发送数据查询请求,该数据查询指令包括待查询的客户端程序的地址信息以及待查询的服务端程序的地址信息。
180.其中,数据查看客户端程序能够显示协议数据,数据查看客户端程序为技术人员提供协议数据查看功能,技术人员能够通过该数据查看客户端程序来查看协议数据。该数据查看客户端程序能够与该存储服务器进行通信。数据查看请求是存储服务器基于数据查看客户端程序发送的数据查询指令触发的,该数据查看请求携带有该数据查询指令中的全部内容。该客户端程序也即是想要进行查询的客户端程序。在一些实施例中,该客户端程序的地址信息包括运行该客户端程序的终端的ip地址以及该客户端程序在该终端上运行的端口号。待查询的服务端程序的地址信息包括该服务端程序所在服务器的ip地址以及该服务端程序运行时的端口号。在一些实施例中,第三服务器也被称为数据查看服务器或者web(world wide web,万维网)服务器。
181.为了对上述实施步骤进行更加清楚的说明,下面对数据查看客户端程序向第三服务器发送数据查询指令的方法进行说明。
182.在一种可能的实施方式中,终端运行该数据查看客户端程序,显示该数据查看客户端程序的数据查看页面,该数据查看页面包括服务端程序选择区域以及客户端程序选择区域,该服务端程序选择区域用于选择服务端程序;客户端程序选择区域用于选择目标应用的客户端程序,在一些实施例中,服务端程序所在的服务器的标识用于表示对应的服务端程序,客户端程序上登录的账号用于表示对应的客户端程序,或者说客户端程序上登录的账号对应于客户端程序的地址信息。响应于在服务端程序选择区域以及客户端程序选择区域上的选择操作,终端显示被选中的服务端程序以及被选中的客户端程序,该被选中的服务端程序也即是待查询的服务端程序,该被选中的客户端程序也即是待查询的客户端程序。响应于在数据查看页面上的操作,终端通过该数据查看客户端程序向第三服务器发送
数据查询指令,该数据查询指令包括该客户端程序的地址信息以及该服务端程序的地址信息。
183.需要说明的是,该数据查看客户端程序提供两种协议数据查看功能,一种是实时协议数据查看功能,另一种是历史协议数据查看功能。
184.对于实时协议数据查看功能来说,数据查看客户端程序能够与第三服务器建立长连接,从第三服务器上实时获取存储服务器上存储的协议数据,也即是,数据查看客户端程序向第三服务器发送的数据查询指令中,携带有实时接收的功能标识。第三服务器获取到该数据查询指令之后,能够从该数据查询指令中获取该实时接收的功能标识,并基于该实时接收的功能标识与存储服务器建立长连接,从存储服务器上实时获取协议数据。比如,参见图6,终端显示该数据查看客户端程序的数据查看页面600,在该数据查看页面600上选择“协议实时查看”,在该数据查看页面600的服务端程序选择区域601中选择服务端程序,在客户端程序选择区域602上选择客户端程序。响应于对实时查看控件603的点击操作,终端通过数据查看客户端程序向第三服务器发送数据查询指令,该数据查询指令携带有实时接收的功能标识。终端能够将实时获取到的协议数据显示在协议数据显示区域604中。在一些实施例中,响应于对暂停刷新控件605的点击操作,数据查看客户端程序停止接收协议数据。在一些实施例中,该协议数据显示区域604中显示有协议数据的名称、协议数据的时间、协议数据大小、协议数据的类型、协议数据包中的字段信息等。本技术实施例提供的协议数据的查询方法,支持协议数据的实时查看,即可以实时查看指定客户端程序和部署了协议录制服务的第一服务器之间的通信协议数据。在一些实施例中,数据查看页面600还提供有模板编辑、协议测试、协议数据分析、协议比对以及项目配置等功能,其中,模板编辑用于对数据查看页面600进行排版,也即是调整数据查看页面600中各个显示模块的位置;协议测试用于选择不同的协议数据进行测试;协议数据分析用于对协议数据进行统计分析;协议比对用于比对不同的协议数据;项目配置用于对目标协议数据的相关的项目进行配置。
185.对于历史协议数据查看功能来说,数据查看客户端程序向第三服务器发送的数据查询指令中,携带有历史时间段。第三服务器获取到该数据查询指令之后,能够基于该数据查询指令生成数据查询请求。存储服务器接收到该数据查询请求之后,从该数据查询请求中获取该历史时间段,基于该历史时间段进行查询,得到历史时间段对应的协议数据。比如,参见图7,终端显示该数据查看客户端程序的数据查看页面700,在该数据查看页面700上选择“历史协议查看”,在该数据查看页面700的服务端程序选择区域701中选择第一服务器,也即是选择该第一服务上目标应用的服务端程序,在客户端程序选择区域702上选择客户端程序,在历史时间段选择区域703上选择历史时间段。响应于对历史查看控件704的点击操作,终端通过数据查看客户端程序向第三服务器发送数据查询指令,该数据查询指令携带该历史时间段。终端能够将获取到的协议数据显示在协议数据显示区域705中。本技术实施例提供的协议数据的查询方法,支持对历史协议数据进行高效的查询,数据查询可以达到毫秒级响应速度。
186.参见图3,上述实时协议数据查看以及历史协议数据查看也即是存储服务器提供的实时协议数据查看服务以及历史协议数据查看服务。
187.513、第三服务器从该存储服务器获取该数据查询请求对应的第二协议数据,该第二协议数据包括该客户端程序与该服务端程序之间进行交互的协议数据,该第二协议数据
为该第一服务器录制的协议数据。
188.在一种可能的实施方式中,响应于第三服务器发送的数据查询请求,存储服务器基于该数据查询请求,确定目标存储链接,该数据查询请求携带待查询的客户端程序的地址信息以及待查询的服务端程序的地址信息。存储服务器从该目标存储链接获取第二协议数据,将该第二协议数据发送给该第三服务器。
189.举例来说,响应于第三服务器发送的数据查询请求,存储服务器基于该数据查询请求中携带的客户端程序的地址信息以及该服务端程序的地址信息在缓存中进行查询,得到目标存储链接。存储服务器从该目标存储链接获取第二协议数据,将该第二协议数据发送给该第三服务器。比如,当存储服务器收到用户的协议数据查看请求后,会通过指定的服务端程序所在服务器ip、服务端程序的端口号、客户端程序所在终端ip、客户端程序的端口号、登录session开始时间在redis中查询对应的登录session在fastdfs中的存储地址url,其中,服务端程序所在服务器ip以及服务端程序的端口号统称为服务端程序的地址信息;客户端程序所在终端ip以及客户端程序的端口号统称为客户端程序的地址信息。然后通过fastdfs的客户端程序访问该url指向的fastdfs存储地址,进而得到fastdfs中存储的协议数据,该协议数据也即是第二协议数据。
190.514、第三服务器将该第二协议数据发送给该数据查看客户端程序。
191.在一种可能的实施方式中,第三服务器基于该第二协议数据生成数据查看页面。第三服务器将该数据查看页面发送给该数据查看客户端程序。
192.在这种实施方式下,第三服务器能够对该第二协议数据进行可视化,生成数据查看页面,并将数据查看页面发送给数据查看客户端程序。数据查看客户端程序能够展示该数据查看页面。
193.举例来说,第三服务器基于vue(渐进式框架)通过数据的结构化展示方式将第二协议数据展示在数据查看页面上。
194.为了对本技术实施例提供的技术方案进行更加清楚的说明,下面将结合图8和上述步骤501-514,对本技术实施例提供的技术方案进行说明。
195.参见图8,以第一服务器为游戏服务器801,客户端程序为游戏客户端程序为例,游戏服务器801监控网卡,通过libnids库来录制协议数据。游戏服务器801对从网卡获取的协议数据进行数据过滤,得到目标协议数据,在进行数据过滤的过程中,游戏服务器801根据协议数据的目的ip地址(游戏服务器801的ip地址)和目的端口号(目标应用的服务端程序在游戏服务器801上运行时的端口号)来进行,该目标协议数据也即是游戏服务器801与游戏客户端程序之间进行交互的协议数据。游戏服务器801对目标协议数据进行组包,得到参考数据包。游戏服务器801将该参考数据包、参考数据包中各个报文对应的地址信息、收发时间以及该参考数据包的大小进行打包,得到该目标数据包,其中,地址信息包括对应报文的源ip、目的ip、源端口号以及目的端口号。游戏服务器801将目标数据包发送给中继服务器802。中继服务器802接收该目标数据包,基于配置文件对该目标数据包进行解压缩和解密中的至少一项。中继服务器802对解密或解压缩后的数据包进行解码(反序列化),得到目标协议数据。中继服务器802将目标协议数据转化为json格式,将json格式的目标协议数据发送给存储服务器803。存储服务器803通过存储任务分发节点基于非对称加密算法,对各个客户端程序的ip地址以及对应的端口号进行加密,得到各个客户端程序对应的存储进程
的标识,通过存储进程的标识就能够确定对应的存储进程。存储服务器803通过存储任务分发节点,调用不同的存储进程将目标协议数据存储在不同的存储单元中,该存储单元为fastdfs分布式文件系统的存储单元,在一些实施例中,该存储单元也被称为存储容器。在存储目标协议数据的过程中,第一服务器通过该存储任务分发节点,生成多个存储进程分别对应的多个存储链接url,将存储链接存放在缓存redis中。数据查看客户端程序向数据查看服务器804发送数据查询指令,数据查看服务器804通过redis的客户端程序,向存储服务器803的redis缓存发送数据查询请求,该数据查询请求包括待查询的目标客户端程序的地址信息以及对应的第一服务器的地址信息。存储服务器803基于目标客户端程序的地址信息以及对应的第一服务器的地址信息,确定目标存储链接。存储服务器803基于该目标存储链接,从fastdfs分布式文件系统中获取第二协议数据,向数据查看服务器804发送该第二协议数据。数据查看服务器804通过fastdfs的客户端程序接收该第二协议数据。
196.上述所有可选技术方案,可以采用任意结合形成本技术的可选实施例,在此不再一一赘述。
197.通过本技术实施例提供的技术方案,在录制协议数据时,由第一服务器来获取第一服务器交互时的协议数据。第一服务器收集到协议数据之后,能够从协议数据中获取目标应用的客户端程序与服务端程序之间进行交互的目标协议数据。在需要收集多个客户端程序与服务端程序之间进行交互的协议数据时,无需在多个客户端程序中安装数据收集模块,通过第一服务器就能够直接进行相应协议数据的采集,从而提高了录制协议数据的效率。
198.除此之外,第一服务器还将目标协议数据发送给第二服务器,由第二服务器对数据进行进一步处理,从而实现数据收集和数据处理的解耦,提高数据收集和数据处理的效率。第二服务器还能够对处理完毕的目标协议数据进行存储,以便技术人员随时查询和调用协议数据。
199.上述第一服务器、第二服务器以及存储服务器构成了本技术实施例提供的协议数据的存储系统,该系统包括:第一服务器以及第二服务器;
200.该第一服务器用于监控该第一服务器的通信,以录制该第一服务器通信时的协议数据,该协议数据包括该第一服务器发送的协议数据以及该第一服务器接收到的协议数据;
201.该第一服务器还用于基于目标应用的服务端程序在该第一服务器上的地址信息,从该协议数据中获取目标协议数据;
202.该第一服务器还用于向该第二服务器发送该目标协议数据;
203.该第二服务器用于接收该目标协议数据,将该目标协议数据转化为目标格式;
204.该第二服务器还用于存储该目标格式的该目标协议数据。
205.需要说明的是,上述第一服务器以及第二服务器对于协议数据的录制和存储过程以及各个服务器之间的交互过程参见上述步骤501-511,在此不再赘述。
206.在一种可能的实施方式中,该系统还包括第三服务器。
207.该第三服务器用于向该第二服务器发送数据查询请求,该数据查询请求包括待查询的客户端程序的地址信息以及待查询的服务端程序的地址信息,该客户端程序为目标应用的客户端程序,该服务端程序为该目标应用的服务端程序。
208.该第三服务器用于从该第二服务器获取该数据查询请求对应的第二协议数据,该第二协议数据包括该客户端程序与该服务端程序之间进行交互的协议数据。
209.该第三服务器用于将该第二协议数据发送给该数据查看客户端程序,该数据查看客户端程序用于显示该第二协议数据。
210.参见图9,本技术实施例提供的协议数据的存储系统分为接入层901、中继层902、数据层903以及服务层904,其中,接入层901的功能由第一服务器来提供,包括基于网卡进行协议数据录制以及项目配置的功能,其中,项目配置也即是对协议数据的存储系统进行配置的功能,包括配置各个服务器的ip地址以及目标应用的端口号等。中继层902的功能由第二服务器来提供,包括协议数据解压、协议数据解密、协议数据解码以及相关配置。数据层903的功能由存储服务器来实现,包括fastdfs分布式文件系统以及redis缓存。服务层904的功能由第三服务器来实现,包括页面生成服务以及数据查询服务。
211.图10是本技术实施例提供的一种协议数据的录制装置的结构示意图,参见图10,应用于第一服务器,该装置包括:监控模块1001以及目标协议数据获取模块1002。
212.监控模块1001,用于监控该第一服务器的通信,以录制该第一服务器通信时的协议数据,该协议数据包括该第一服务器发送的协议数据以及该第一服务器接收到的协议数据。
213.目标协议数据获取模块1002,用于基于目标应用的服务端程序在该第一服务器上的地址信息,从该协议数据中获取目标协议数据。
214.其中,该目标协议数据包括该目标应用的多个客户端程序与该目标应用的服务端程序之间进行交互的协议数据。
215.在一种可能的实施方式中,该监控模块1001,用于监控该第一服务器的网卡,从该网卡中获取该第一服务器通信时的协议数据。
216.在一种可能的实施方式中,该目标协议数据获取模块1002,用于基于该目标应用的服务端程序在该第一服务器上运行时的端口号,对该协议数据进行过滤,得到该目标协议数据。
217.在一种可能的实施方式中,该装置还包括:
218.组包模块,用于对该目标协议数据进行组包,得到目标数据包。
219.目标数据包发送模块,用于向第二服务器发送该目标数据包,该第二服务器用于从该目标数据包中获取该目标协议数据,并对该目标协议数据进行存储。
220.需要说明的是:上述实施例提供的协议数据的录制装置在录制协议数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将计算机设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的协议数据的录制装置与协议数据的录制方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
221.通过本技术实施例提供的技术方案,在录制协议数据时,由第一服务器来获取第一服务器交互时的协议数据。第一服务器收集到协议数据之后,能够从协议数据中获取目标应用的客户端程序与服务端程序之间进行交互的目标协议数据。在需要收集多个客户端程序与服务端程序之间进行交互的协议数据时,无需在多个客户端程序中安装数据收集模块,通过第一服务器就能够直接进行相应协议数据的采集,从而提高了录制协议数据的效
率。
222.图11是本技术实施例提供的一种协议数据的存储装置的结构示意图,参见图11,应用于第二服务器,该装置包括:目标协议数据接收模块1101、格式转化模块1102以及存储模块1103。
223.目标协议数据接收模块1101,用于接收目标协议数据,该目标协议数据包括目标应用的多个客户端程序与该目标应用的服务端程序之间进行交互的协议数据,该目标协议数据为第一服务器录制的协议数据,该服务端程序运行在该第一服务器上。
224.格式转化模块1102,用于将该目标协议数据转化为目标格式。
225.存储模块1103,用于存储该目标格式的该目标协议数据。
226.在一种可能的实施方式中,该目标协议数据接收模块1101,用于获取该第一服务器发送的目标数据包,该目标数据包为该第一服务器对该目标协议数据组包后得到的。对该目标数据包进行解密、解压以及解码中的至少一项,得到该目标协议数据。
227.在一种可能的实施方式中,该存储模块1103,用于基于该目标协议数据携带的该多个客户端程序的地址信息,确定该目标协议数据对应的多个存储进程。基于该多个存储进程存储该目标协议数据。
228.在一种可能的实施方式中,该存储模块1103,用于基于该多个客户端程序的ip地址以及对应的端口号,确定各个该客户端程序对应的存储进程的标识。基于各个该客户端程序对应的存储进程的标识,确定该目标协议数据对应的多个存储进程。
229.在一种可能的实施方式中,该存储模块1103,用于对各个该客户端程序的ip地址以及对应的端口号进行哈希映射,得到各个该客户端程序对应的存储进程的标识。
230.在一种可能的实施方式中,该存储模块1103,用于对于该多个客户端程序中的第一客户端程序,基于该第一客户端程序的地址信息,从该目标协议数据中获取该第一客户端程序对应的第一协议数据。基于该第一客户端程序的地址信息对应存储进程,将该第一协议数据中属于相同传输时间段的协议数据存储在同一个存储单元中,该传输时间段为该第一客户端程序从登录该第一服务器到登出该第一服务器的时间段。
231.在一种可能的实施方式中,该装置还包括:
232.链接生成模块,用于基于该目标应用的服务端程序的地址信息以及该多个客户端程序的地址信息,生成该多个存储进程分别对应的多个存储链接,该多个存储链接分别指向对应存储进程对应的存储单元。
233.在一种可能的实施方式中,该装置还包括:
234.数据查询模块,用于响应于数据查询请求,基于该数据查询请求,确定目标存储链接,该数据查询请求携带待查询的客户端程序的地址信息以及待查询的服务端程序的地址信息。从该目标存储链接获取第二协议数据,将该第二协议数据发送给该数据查询请求的发送方。
235.需要说明的是:上述实施例提供的协议数据的存储装置在存储协议数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将计算机设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的协议数据的存储装置与协议数据的存储方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
236.在进行协议数据存储时,第一服务器还将目标协议数据发送给第二服务器,由第二服务器对数据进行进一步处理,从而实现数据收集和数据处理的解耦,提高数据收集和数据处理的效率。第二服务器还能够对处理完毕的目标协议数据进行存储,以便技术人员随时查询和调用协议数据。
237.图12是本技术实施例提供的一种协议数据的查询装置的结构示意图,参见图12,应用于第三服务器,该装置包括:数据查询请求发送模块1201、第二协议数据获取模块1202以及第二协议数据发送模块1203。
238.数据查询请求发送模块1201,用于向第二服务器发送数据查询请求,所述数据查询请求包括待查询的客户端程序的地址信息以及待查询的服务端程序的地址信息,所述客户端程序为目标应用的客户端程序,所述服务端程序为所述目标应用的服务端程序。
239.第二协议数据获取模块1202,用于所述第二服务器获取所述数据查询请求对应的第二协议数据,所述第二协议数据包括所述客户端程序与所述服务端程序之间进行交互的协议数据,所述第二协议数据为第一服务器录制的协议数据,所述服务端程序运行在所述第一服务器上。
240.第二协议数据发送模块1203,用于将所述第二协议数据发送给所述数据查看客户端程序,所述数据查看客户端程序用于显示所述第二协议数据。
241.其中,该第二协议数据用于对该目标应用进行测试。
242.在一种可能的实施方式中,该第二协议数据发送模块1203,用于基于该第二协议数据生成数据查看页面。将该数据查看页面发送给该数据查看客户端程序。
243.需要说明的是:上述实施例提供的协议数据的查询装置在查询协议数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将计算机设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的协议数据的查询装置与协议数据的查询方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
244.技术人员能够通过第三服务器来随时查看协议数据,从而选择不同的协议数据进行相应的应用,效率较高。
245.图13是本技术实施例提供的一种服务器的结构示意图,该服务器1300可因配置或性能不同而产生比较大的差异,可以包括一个或多个处理器(central processing units,cpu)1301和一个或多个的存储器1302,其中,所述一个或多个存储器1302中存储有至少一条计算机程序,所述至少一条计算机程序由所述一个或多个处理器1301加载并执行以实现上述各个方法实施例提供的方法。当然,该服务器1300还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器1300还可以包括其他用于实现设备功能的部件,在此不做赘述。
246.在示例性实施例中,还提供了一种计算机可读存储介质,例如包括计算机程序的存储器,上述计算机程序可由处理器加载并执行以实现上述各个方法实施例提供的方法。例如,该计算机可读存储介质可以是只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、只读光盘(compact disc read-only memory,cd-rom)、磁带、软盘和光数据存储设备等。
247.在示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序
产品或计算机程序包括程序代码,该程序代码存储在计算机可读存储介质中,服务器的处理器从计算机可读存储介质读取该程序代码,处理器执行该程序代码,使得该服务器执行上述各个方法实施例提供的方法。
248.在一些实施例中,本技术实施例所涉及的计算机程序可被部署在一个服务器上执行,或者在位于一个地点的多个服务器上执行,又或者,在分布在多个地点且通过通信网络互连的多个服务器上执行,分布在多个地点且通过通信网络互连的多个服务器可以组成区块链系统。
249.本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
250.上述仅为本技术的可选实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1