本发明涉及电子信息,特别是涉及一种网络抖动检测方法、装置、设备及介质。
背景技术:
1、网络抖动是指网络中信息从发送到接收的延迟时间的变化,通常由传输延迟和处理延迟组成。随着互联网技术的发展,在云计算场景下,复杂的网络拓扑、多样化的业务应用、不同的基础架构以及操作系统等,都使得网络抖动的定位变得复杂多样。
2、目前,为了实现在网络连通性较差或系统负载较高的情况下的网络抖动定位,一般使用系统自带的ping命令,向目标系统的网际互连协议(internet protocol,ip)地址发送请求包,以检测网络的连通性和响应时间,从而判断网络是否出现异常或延迟。虽然这种方式能够比较方便地判断是否出现网络延迟,但是无法确定是业务原因、系统原因还是网络原因导致的网络延迟,不能收集数据在各个传输节点上的时延,不利于进一步定位系统问题。
3、鉴于上述问题,如何解决当前无法确定网络抖动的具体原因、位置及其对应的具体时延,是该领域技术人员亟待解决的问题。
技术实现思路
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、基于服务端的内核层,通过扩展数据包过滤技术监测互联网控制报文协议接收函数;
34、当监测到互联网控制报文协议接收函数触发时,基于所述目标报文的第五表项记录表征服务端的节点信息、互联网控制报文协议接收函数信息以及互联网控制报文协议接收函数触发对应的第五时间戳;
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、获取所述目标报文的第八表项中软中断触发函数触发对应的第八时间戳;
61、确定第八时间戳与第七时间戳二者的差值,以确定所述目标报文在客户端的内核层进行软中断处理的时延信息;
62、获取所述目标报文的第九表项中数据解析上传函数触发对应的第九时间戳;
63、确定第九时间戳与第八时间戳二者的差值,以确定所述目标报文在客户端的内核层进行网络报文处理的时延信息;
64、获取所述目标报文的第十表项中内核调度函数触发对应的第十时间戳;
65、确定第十时间戳与第九时间戳二者的差值,以确定所述目标报文在客户端的内核层进行调度的时延信息;
66、获取所述目标报文的第十一表项中互联网控制报文协议接收函数触发对应的第十一时间戳;
67、确定第十一时间戳与第十时间戳二者的差值,以确定所述目标报文在客户端的应用层进行处理的时延信息。
68、为解决上述技术问题,本发明还提供另一种网络抖动检测方法,应用于服务端;所述方法包括:
69、基于服务端的内核层接收客户端的内核层传输的目标报文;其中,所述目标报文由客户端的应用层生成,且包含客户端对所述目标报文进行处理和传输的时间信息以及所述目标报文在链路层传输的时间信息;
70、通过所述目标报文记录服务端对所述目标报文进行处理和传输的时间信息;
71、将所述目标报文传输至客户端的内核层,以便于客户端的内核层将所述目标报文分配至客户端的应用层,并通过所述目标报文记录客户端对所述目标报文进行处理和分配的时间信息,基于客户端的应用层获取所述目标报文中的各时间信息,以根据各时间信息确定所述目标报文传输过程中的网络抖动。
72、为解决上述技术问题,本发明还提供一种网络抖动检测装置,应用于客户端;所述装置包括:
73、生成模块,用于基于客户端的应用层生成目标报文,并将所述目标报文传输至客户端的内核层;
74、第一记录模块,用于基于客户端的内核层将所述目标报文传输至服务端的内核层,并通过所述目标报文记录客户端对所述目标报文进行处理和传输的时间信息;
75、第一接收模块,用于通过客户端的内核层接收服务端的内核层传输的所述目标报文;其中,所述目标报文记录所述目标报文在链路层传输的时间信息,以及服务端对所述目标报文进行处理和传输的时间信息;
76、第二记录模块,用于将所述目标报文分配至客户端的应用层,并通过所述目标报文记录客户端对所述目标报文进行处理和分配的时间信息;
77、确定模块,用于基于客户端的应用层获取所述目标报文中的各时间信息,以根据各时间信息确定所述目标报文传输过程中的网络抖动。
78、为解决上述技术问题,本发明还提供另一种网络抖动检测装置,应用于服务端;所述装置包括:
79、第二接收模块,用于基于服务端的内核层接收客户端的内核层传输的目标报文;其中,所述目标报文由客户端的应用层生成,且包含客户端对所述目标报文进行处理和传输的时间信息以及所述目标报文在链路层传输的时间信息;
80、第三记录模块,用于通过所述目标报文记录服务端对所述目标报文进行处理和传输的时间信息;
81、传输模块,用于将所述目标报文传输至客户端的内核层,以便于客户端的内核层将所述目标报文分配至客户端的应用层,并通过所述目标报文记录客户端对所述目标报文进行处理和分配的时间信息,基于客户端的应用层获取所述目标报文中的各时间信息,以根据各时间信息确定所述目标报文传输过程中的网络抖动。
82、为解决上述技术问题,本发明还提供一种网络抖动检测设备,包括:
83、存储器,用于存储计算机程序;
84、处理器,用于执行所述计算机程序时实现上述的网络抖动检测方法的步骤。
85、为解决上述技术问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的网络抖动检测方法的步骤。
86、本发明所提供的网络抖动检测方法,应用于客户端;具体基于客户端的应用层生成目标报文,并将目标报文传输至客户端的内核层;基于客户端的内核层将目标报文传输至服务端的内核层,并通过目标报文记录客户端对目标报文进行处理和传输的时间信息;通过客户端的内核层接收服务端的内核层传输的目标报文;其中,目标报文记录目标报文在链路层传输的时间信息,以及服务端对目标报文进行处理和传输的时间信息;将目标报文分配至客户端的应用层,并通过目标报文记录客户端对目标报文进行处理和分配的时间信息;基于客户端的应用层获取目标报文中的各时间信息,以根据各时间信息确定目标报文传输过程中的网络抖动。本发明的有益效果在于,提出了一种主动的网络时延探测方式;具体在目标报文在客户端与服务端之间传输的过程中,通过目标报文记录每一个目标报文处理和传输的关键点的时间信息;通过不同的时间信息即可推算出客户端和服务端的应用层和内核层内各个关键点的网络时延信息,以及链路层传输的网络时延信息,从而实现更精细化地定位网络延迟问题,提高了网络传输的维护效率。
87、此外,本发明还提供了一种网络抖动检测装置、设备及介质,效果同上。