Nothing Special   »   [go: up one dir, main page]

CN117997802B - 一种网络抖动检测方法、装置、设备及介质 - Google Patents

一种网络抖动检测方法、装置、设备及介质 Download PDF

Info

Publication number
CN117997802B
CN117997802B CN202410405349.7A CN202410405349A CN117997802B CN 117997802 B CN117997802 B CN 117997802B CN 202410405349 A CN202410405349 A CN 202410405349A CN 117997802 B CN117997802 B CN 117997802B
Authority
CN
China
Prior art keywords
target message
client
function
message
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202410405349.7A
Other languages
English (en)
Other versions
CN117997802A (zh
Inventor
韩春超
许鑫
戴纯兴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN202410405349.7A priority Critical patent/CN117997802B/zh
Publication of CN117997802A publication Critical patent/CN117997802A/zh
Application granted granted Critical
Publication of CN117997802B publication Critical patent/CN117997802B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/087Jitter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • H04L43/106Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种网络抖动检测方法、装置、设备及介质,涉及电子信息技术领域。本方案具体在目标报文在客户端与服务端之间传输的过程中,通过目标报文记录每一个目标报文处理和传输的关键点的时间信息;通过不同的时间信息即可推算出客户端和服务端的应用层和内核层内各个关键点的网络时延信息,以及链路层传输的网络时延信息,从而实现更精细化地定位网络延迟问题,提高了网络传输的维护效率。

Description

一种网络抖动检测方法、装置、设备及介质
技术领域
本发明涉及电子信息技术领域,特别是涉及一种网络抖动检测方法、装置、设备及介质。
背景技术
网络抖动是指网络中信息从发送到接收的延迟时间的变化,通常由传输延迟和处理延迟组成。随着互联网技术的发展,在云计算场景下,复杂的网络拓扑、多样化的业务应用、不同的基础架构以及操作系统等,都使得网络抖动的定位变得复杂多样。
目前,为了实现在网络连通性较差或系统负载较高的情况下的网络抖动定位,一般使用系统自带的Ping命令,向目标系统的网际互连协议(Internet Protocol,IP)地址发送请求包,以检测网络的连通性和响应时间,从而判断网络是否出现异常或延迟。虽然这种方式能够比较方便地判断是否出现网络延迟,但是无法确定是业务原因、系统原因还是网络原因导致的网络延迟,不能收集数据在各个传输节点上的时延,不利于进一步定位系统问题。
鉴于上述问题,如何解决当前无法确定网络抖动的具体原因、位置及其对应的具体时延,是该领域技术人员亟待解决的问题。
发明内容
本发明的目的是提供一种网络抖动检测方法、装置、设备及介质,以解决当前无法确定网络抖动的具体原因、位置及其对应的具体时延的问题。
为解决上述技术问题,本发明提供一种网络抖动检测方法,应用于客户端;所述方法包括:
基于客户端的应用层生成目标报文,并将所述目标报文传输至客户端的内核层;
基于客户端的内核层将所述目标报文传输至服务端的内核层,并通过所述目标报文记录客户端对所述目标报文进行处理和传输的时间信息;
通过客户端的内核层接收服务端的内核层传输的所述目标报文;其中,所述目标报文记录所述目标报文在链路层传输的时间信息,以及服务端对所述目标报文进行处理和传输的时间信息;
将所述目标报文分配至客户端的应用层,并通过所述目标报文记录客户端对所述目标报文进行处理和分配的时间信息;
基于客户端的应用层获取所述目标报文中的各时间信息,以根据各时间信息确定所述目标报文传输过程中的网络抖动。
一方面,所述基于客户端的应用层生成目标报文,包括:
设置所述目标报文的互联网控制报文协议报文头;其中,所述互联网控制报文协议报文头包括互联网控制报文协议类型、代码、校验和、互联网控制报文协议标识符和互联网控制报文协议序列号;
设置所述目标报文的目标报文头;其中,所述目标报文头包括互联网控制报文协议版本、数量、标志位、互联网控制报文协议魔数、保留字节、目标报文头标识符和目标报文头序列号;
设置多个表项;其中,所述表项用于记录所述目标报文传输过程中所涉及的节点信息、函数信息以及函数触发对应的时间戳。
另一方面,所述基于客户端的内核层将所述目标报文传输至服务端的内核层,并通过所述目标报文记录客户端对所述目标报文进行处理和传输的时间信息,包括:
基于客户端的内核层,通过扩展数据包过滤技术监测互联网控制报文协议接收函数,并通过所述目标报文记录所述目标报文从客户端的应用层传输至客户端的内核层的发送时间戳;
当监测到互联网控制报文协议接收函数触发时,基于所述目标报文的第一表项记录表征客户端的节点信息、互联网控制报文协议接收函数信息以及互联网控制报文协议接收函数触发对应的第一时间戳;
基于客户端的内核层,通过扩展数据包过滤技术监测网络设备发送数据函数;
当监测到网络设备发送数据函数触发时,基于所述目标报文的第二表项记录表征客户端的节点信息、网络设备发送数据函数信息以及网络设备发送数据函数触发对应的第二时间戳。
另一方面,所述基于客户端的应用层获取所述目标报文中的各时间信息,以根据各时间信息确定所述目标报文传输过程中的网络抖动,包括:
获取所述目标报文从客户端的应用层传输至客户端的内核层的发送时间戳;
获取所述目标报文的第一表项中互联网控制报文协议接收函数触发对应的第一时间戳;
获取所述目标报文的第二表项中网络设备发送数据函数触发对应的第二时间戳;
确定发送时间戳与第一时间戳二者的差值,以确定所述目标报文从客户端的应用层传输至客户端的内核层的时延信息;
确定第二时间戳与第一时间戳二者的差值,以确定所述目标报文在客户端的内核层进行处理的时延信息。
另一方面,所述基于客户端的内核层将所述目标报文传输至服务端的内核层,并通过所述目标报文记录客户端对所述目标报文进行处理和传输的时间信息,包括:
基于客户端的内核层,通过扩展数据包过滤技术监测数据包发送函数;
当监测到数据包发送函数触发时,基于所述目标报文的第三表项记录表征客户端的节点信息、数据包发送函数信息以及数据包发送函数触发对应的第三时间戳。
另一方面,所述基于客户端的应用层获取所述目标报文中的各时间信息,以根据各时间信息确定所述目标报文传输过程中的网络抖动,包括:
获取所述目标报文的第二表项中网络设备发送数据函数触发对应的第二时间戳;
获取所述目标报文的第三表项中数据包发送函数触发对应的第三时间戳;
确定第三时间戳与第二时间戳二者的差值,以确定所述目标报文在客户端的内核层的网络设备发送时延信息。
另一方面,所述目标报文记录所述目标报文在链路层传输的时间信息,以及服务端对所述目标报文进行处理和传输的时间信息,包括:
基于服务端的内核层,通过扩展数据包过滤技术监测数据包处理函数;
当监测到数据包处理函数触发时,基于所述目标报文的第四表项记录表征服务端的节点信息、数据包处理函数信息以及数据包处理函数触发对应的第四时间戳;
基于服务端的内核层,通过扩展数据包过滤技术监测互联网控制报文协议接收函数;
当监测到互联网控制报文协议接收函数触发时,基于所述目标报文的第五表项记录表征服务端的节点信息、互联网控制报文协议接收函数信息以及互联网控制报文协议接收函数触发对应的第五时间戳;
基于服务端的内核层,通过扩展数据包过滤技术监测网络设备发送数据函数;
当监测到网络设备发送数据函数触发时,基于所述目标报文的第六表项记录表征服务端的节点信息、网络设备发送数据函数信息以及网络设备发送数据函数触发对应的第六时间戳;
基于客户端的内核层,通过扩展数据包过滤技术监测数据包处理函数;
当监测到数据包处理函数触发时,基于所述目标报文的第七表项记录表征客户端的节点信息、数据包处理函数信息以及数据包处理函数触发对应的第七时间戳。
另一方面,所述基于客户端的应用层获取所述目标报文中的各时间信息,以根据各时间信息确定所述目标报文传输过程中的网络抖动,包括:
获取所述目标报文的第三表项中数据包发送函数触发对应的第三时间戳;
获取所述目标报文的第四表项中数据包处理函数触发对应的第四时间戳;
确定第四时间戳与第三时间戳二者的差值,以确定所述目标报文基于客户端向服务端传输时链路层的时延信息;
获取所述目标报文的第五表项中互联网控制报文协议接收函数触发对应的第五时间戳;
确定第五时间戳与第四时间戳二者的差值,以确定所述目标报文在服务端的内核层进行处理的时延信息;
获取所述目标报文的第六表项中网络设备发送数据函数触发对应的第六时间戳;
确定第六时间戳与第五时间戳二者的差值,以确定所述目标报文在服务端的内核层进行网络设备发送的时延信息;
获取所述目标报文的第七表项中数据包处理函数触发对应的第七时间戳;
确定第七时间戳与第六时间戳二者的差值,以确定所述目标报文基于服务端向客户端传输时链路层的时延信息。
另一方面,所述将所述目标报文分配至客户端的应用层,并通过所述目标报文记录客户端对所述目标报文进行处理和分配的时间信息,包括:
基于客户端的内核层,通过扩展数据包过滤技术监测软中断触发函数;
当监测到软中断触发函数触发时,基于所述目标报文的第八表项记录表征客户端的节点信息、软中断触发函数信息以及软中断触发函数触发对应的第八时间戳;
基于客户端的内核层,通过扩展数据包过滤技术监测数据解析上传函数;
当监测到数据解析上传函数触发时,基于所述目标报文的第九表项记录表征客户端的节点信息、数据解析上传函数信息以及数据解析上传函数触发对应的第九时间戳;
基于客户端的内核层,通过扩展数据包过滤技术监测内核调度函数;
当监测到内核调度函数触发时,基于所述目标报文的第十表项记录表征客户端的节点信息、内核调度函数信息以及内核调度函数触发对应的第十时间戳;
基于客户端的应用层,通过扩展数据包过滤技术监测互联网控制报文协议接收函数;
当监测到互联网控制报文协议接收函数触发时,基于所述目标报文的第十一表项记录表征客户端的节点信息、互联网控制报文协议接收函数信息以及互联网控制报文协议接收函数触发对应的第十一时间戳。
另一方面,所述基于客户端的应用层获取所述目标报文中的各时间信息,以根据各时间信息确定所述目标报文传输过程中的网络抖动,包括:
获取所述目标报文的第七表项中数据包处理函数触发对应的第七时间戳;
获取所述目标报文的第八表项中软中断触发函数触发对应的第八时间戳;
确定第八时间戳与第七时间戳二者的差值,以确定所述目标报文在客户端的内核层进行软中断处理的时延信息;
获取所述目标报文的第九表项中数据解析上传函数触发对应的第九时间戳;
确定第九时间戳与第八时间戳二者的差值,以确定所述目标报文在客户端的内核层进行网络报文处理的时延信息;
获取所述目标报文的第十表项中内核调度函数触发对应的第十时间戳;
确定第十时间戳与第九时间戳二者的差值,以确定所述目标报文在客户端的内核层进行调度的时延信息;
获取所述目标报文的第十一表项中互联网控制报文协议接收函数触发对应的第十一时间戳;
确定第十一时间戳与第十时间戳二者的差值,以确定所述目标报文在客户端的应用层进行处理的时延信息。
为解决上述技术问题,本发明还提供另一种网络抖动检测方法,应用于服务端;所述方法包括:
基于服务端的内核层接收客户端的内核层传输的目标报文;其中,所述目标报文由客户端的应用层生成,且包含客户端对所述目标报文进行处理和传输的时间信息以及所述目标报文在链路层传输的时间信息;
通过所述目标报文记录服务端对所述目标报文进行处理和传输的时间信息;
将所述目标报文传输至客户端的内核层,以便于客户端的内核层将所述目标报文分配至客户端的应用层,并通过所述目标报文记录客户端对所述目标报文进行处理和分配的时间信息,基于客户端的应用层获取所述目标报文中的各时间信息,以根据各时间信息确定所述目标报文传输过程中的网络抖动。
为解决上述技术问题,本发明还提供一种网络抖动检测装置,应用于客户端;所述装置包括:
生成模块,用于基于客户端的应用层生成目标报文,并将所述目标报文传输至客户端的内核层;
第一记录模块,用于基于客户端的内核层将所述目标报文传输至服务端的内核层,并通过所述目标报文记录客户端对所述目标报文进行处理和传输的时间信息;
第一接收模块,用于通过客户端的内核层接收服务端的内核层传输的所述目标报文;其中,所述目标报文记录所述目标报文在链路层传输的时间信息,以及服务端对所述目标报文进行处理和传输的时间信息;
第二记录模块,用于将所述目标报文分配至客户端的应用层,并通过所述目标报文记录客户端对所述目标报文进行处理和分配的时间信息;
确定模块,用于基于客户端的应用层获取所述目标报文中的各时间信息,以根据各时间信息确定所述目标报文传输过程中的网络抖动。
为解决上述技术问题,本发明还提供另一种网络抖动检测装置,应用于服务端;所述装置包括:
第二接收模块,用于基于服务端的内核层接收客户端的内核层传输的目标报文;其中,所述目标报文由客户端的应用层生成,且包含客户端对所述目标报文进行处理和传输的时间信息以及所述目标报文在链路层传输的时间信息;
第三记录模块,用于通过所述目标报文记录服务端对所述目标报文进行处理和传输的时间信息;
传输模块,用于将所述目标报文传输至客户端的内核层,以便于客户端的内核层将所述目标报文分配至客户端的应用层,并通过所述目标报文记录客户端对所述目标报文进行处理和分配的时间信息,基于客户端的应用层获取所述目标报文中的各时间信息,以根据各时间信息确定所述目标报文传输过程中的网络抖动。
为解决上述技术问题,本发明还提供一种网络抖动检测设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述的网络抖动检测方法的步骤。
为解决上述技术问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的网络抖动检测方法的步骤。
本发明所提供的网络抖动检测方法,应用于客户端;具体基于客户端的应用层生成目标报文,并将目标报文传输至客户端的内核层;基于客户端的内核层将目标报文传输至服务端的内核层,并通过目标报文记录客户端对目标报文进行处理和传输的时间信息;通过客户端的内核层接收服务端的内核层传输的目标报文;其中,目标报文记录目标报文在链路层传输的时间信息,以及服务端对目标报文进行处理和传输的时间信息;将目标报文分配至客户端的应用层,并通过目标报文记录客户端对目标报文进行处理和分配的时间信息;基于客户端的应用层获取目标报文中的各时间信息,以根据各时间信息确定目标报文传输过程中的网络抖动。本发明的有益效果在于,提出了一种主动的网络时延探测方式;具体在目标报文在客户端与服务端之间传输的过程中,通过目标报文记录每一个目标报文处理和传输的关键点的时间信息;通过不同的时间信息即可推算出客户端和服务端的应用层和内核层内各个关键点的网络时延信息,以及链路层传输的网络时延信息,从而实现更精细化地定位网络延迟问题,提高了网络传输的维护效率。
此外,本发明还提供了一种网络抖动检测装置、设备及介质,效果同上。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种网络抖动检测方法的流程图;
图2为本发明实施例提供的一种目标报文的结构示意图;
图3为本发明实施例提供的另一种网络抖动检测方法的流程图;
图4为本发明实施例提供的一种网络抖动检测装置的示意图;
图5为本发明实施例提供的另一种网络抖动检测装置的示意图;
图6为本发明实施例提供的一种网络抖动检测设备的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
本发明的核心是提供一种网络抖动检测方法、装置、设备及介质,以解决当前无法确定网络抖动的具体原因、位置及其对应的具体时延的问题。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
随着互联网技术的发展,在云计算场景下,复杂的网络拓扑、多样化的业务应用、不同的基础架构以及操作系统等,都使得网络抖动的定位变得复杂多样。具体体现为:一个请求可能经过路由器、运营商、云服务物理网络、虚拟网络、容器以及虚拟机等异构平台;在请求传输期间,每个节点都可能存在延迟现象。而用户的业务一般部署在操作系统上,操作系统内部的业务进程的调度运行、业务的请求和处理也会存在网络抖动。可见,确定网络抖动的具体位置较为复杂。
目前,一般使用系统自带的Ping命令,向目标系统的IP地址发送请求包,以检测网络的连通性和响应时间,从而判断网络是否出现异常或延迟。虽然这种方式能够比较方便地判断是否出现网络延迟,但是无法确定是业务原因、系统原因还是网络原因导致的网络延迟,不能收集数据在各个传输节点上的时延,不利于进一步定位系统问题。鉴于上述问题,本发明提供了一种网络抖动检测方法。
需要注意的是,本发明所提供的方法基于服务器-客户机(Client-Server,CS)架构,具体应用于CS架构下的客户端。
图1为本发明实施例提供的一种网络抖动检测方法的流程图。如图1所示,方法包括:
S10:基于客户端的应用层生成目标报文,并将目标报文传输至客户端的内核层。
具体地,在客户端的应用层生成目标报文。目标报文用于在客户端与服务端之间进行传输,具体从客户端的应用层出发,依次经过客户端的内核层、服务端的内核层和客户端的内核层,最后回到客户端的应用层。在报文传输期间,目标报文能够记录客户端和服务端对其进行处理和传输的关键点的时间信息。
需要注意的是,本实施例中对于目标报文的具体格式不做限制,但是需要保证能够记录目标报文被处理和传输的关键点的时间信息,根据具体的实施情况而定。
S11:基于客户端的内核层将目标报文传输至服务端的内核层,并通过目标报文记录客户端对目标报文进行处理和传输的时间信息。
进一步地,基于客户端的内核层,通过链路层将目标报文传输至服务端的内核层,从而实现目标报文由客户端向服务端的发送。在此期间,目标报文可记录客户端的内核层对目标报文进行处理的关键点的时间信息,还可记录客户端的内核层对目标报文进行传输的关键点的时间信息,以便于在后续依据上述时间信息,确定客户端的内核层内的报文处理和传输的时延信息。本实施例中对于通过目标报文记录客户端对目标报文进行处理和传输的时间信息的具体过程不做限制,根据具体的实施情况而定。
S12:通过客户端的内核层接收服务端的内核层传输的目标报文。
其中,目标报文记录目标报文在链路层传输的时间信息,以及服务端对目标报文进行处理和传输的时间信息。
在将目标报文传输至服务端的内核层后,服务端的内核层也会对目标报文进行处理解析,并在处理完成后发送目标报文至客户端的内核层,使客户端的内核层接收到服务端的内核层传输的目标报文。
需要注意的是,当客户端接收到服务端的内核层传输的目标报文时,目标报文中已经包含了目标报文在链路层传输的时间信息,以及服务端对目标报文进行处理和传输的时间信息。在后续可依据上述时间信息确定链路层以及服务端的内核层的时延信息。本实施例中对于记录目标报文在链路层传输的时间信息,以及服务端对目标报文进行处理和传输的时间信息的具体过程不做限制,根据具体的实施情况而定。
S13:将目标报文分配至客户端的应用层,并通过目标报文记录客户端对目标报文进行处理和分配的时间信息。
在客户端的内核层再次得到目标报文后,需要对目标报文进行处理,具体来说主要完成以下内容:解析目标报文的头部信息,以确定目标报文的目的地和下一步的处理方式;根据目标报文的协议类型和目的地址,查找适当的处理函数或模块来处理该目标报文;将目标报文分发给相应的处理函数或模块进行进一步处理,可能包括协议处理、路由选择等;最终,将处理后的目标报文交付给本地系统内的应用程序或服务,也就是将目标报文进行分配。在对目标报文进行处理和分配过程中,同样需要通过目标报文记录客户端对目标报文进行处理和分配的时间信息,以便于在后续依据上述时间信息确定客户端的内核层在分配报文过程中的时延信息。
需要注意的是,本实施例中对于将目标报文分配至客户端的应用层,并通过目标报文记录客户端对目标报文进行处理和分配的时间信息的具体过程不做限制,根据具体的实施情况而定。
S14:基于客户端的应用层获取目标报文中的各时间信息,以根据各时间信息确定目标报文传输过程中的网络抖动。
最后,传输至客户端应用层的目标报文记录了目标报文从客户端的应用层到客户端的内核层,从客户端的内核层到服务器内核层,从服务器内核层到客户端的内核层,从客户端的内核层返回给客户端的应用层执行的所有关键点的时间信息,通过这些时间信息即可获得目标报文在不同阶段的时延情况,从而更精细化地定位网络延迟问题。
本实施例中,基于客户端的应用层生成目标报文,并将目标报文传输至客户端的内核层;基于客户端的内核层将目标报文传输至服务端的内核层,并通过目标报文记录客户端对目标报文进行处理和传输的时间信息;通过客户端的内核层接收服务端的内核层传输的目标报文;其中,目标报文记录目标报文在链路层传输的时间信息,以及服务端对目标报文进行处理和传输的时间信息;将目标报文分配至客户端的应用层,并通过目标报文记录客户端对目标报文进行处理和分配的时间信息;基于客户端的应用层获取目标报文中的各时间信息,以根据各时间信息确定目标报文传输过程中的网络抖动。由此可知,上述方案提出了一种主动的网络时延探测方式;具体在目标报文在客户端与服务端之间传输的过程中,通过目标报文记录每一个目标报文处理和传输的关键点的时间信息;通过不同的时间信息即可推算出客户端和服务端的应用层和内核层内各个关键点的网络时延信息,以及链路层传输的网络时延信息,从而实现更精细化地定位网络延迟问题,提高了网络传输的维护效率。
图2为本发明实施例提供的一种目标报文的结构示意图。在上述实施例的基础上,在一些实施例中,如图2所示,基于客户端的应用层生成目标报文,包括:
S101:设置目标报文的互联网控制报文协议报文头。
其中,互联网控制报文协议报文头包括互联网控制报文协议类型、代码、校验和、互联网控制报文协议标识符和互联网控制报文协议序列号。
S102:设置目标报文的目标报文头。
其中,目标报文头包括互联网控制报文协议版本、数量、标志位、互联网控制报文协议魔数、保留字节、目标报文头标识符和目标报文头序列号。
S103:设置多个表项。
其中,表项用于记录目标报文传输过程中所涉及的节点信息、函数信息以及函数触发对应的时间戳。
为了生成目标报文,首先需要设置目标报文的互联网控制报文协议(InternetControl Message Protocol,ICMP)报文头。如图2所示,ICMP报文头主要包括ICMP类型(type)、代码(code)、校验和(checksum)、ICMP标识符(id)和ICMP序列号(seq),可以理解的是,该报文头与传统ICMP报文头的格式一致。进一步设置目标报文的目标报文头。目标报文头是一种自定义报文头,主要包括ICMP版本(version)、数量(num)、标志位(flags)、ICMP魔数(magic)、保留字节(reserve)、目标报文头标识符(id)和目标报文头序列号(seq)。
需要注意的是,ICMP报文头和目标报文头的各组成部分均存在固定大小。如图2所示,在ICMP报文头中,ICMP类型type占用8比特(bit),代码code占用8bit,校验和checksum占用16bit,ICMP标识符id占用16bit,ICMP序列号seq占用16bit。而在目标报文头中,ICMP版本version占用8bit,数量num占用8bit,标志位flags占用16bit,ICMP魔数magic占用16bit,保留字节reserve占用16bit,目标报文头标识符id占用32bit,目标报文头序列号seq占用32bit。
除了包含上述两种报文头之外,目标报文中还包含多个表项。可以理解的是,该表项用于记录传输过程中客户端和服务端对目标报文进行处理和传输的关键点的时间信息。需要说明的是,无论是客户端还是服务端,对目标报文进行处理和传输时均涉及多个函数的触发,因此本方案具体将各个函数作为网络延迟定位的关键点,将函数触发时刻作为关键点的时间信息进行存储。
具体地,表项用于记录目标报文传输过程中所涉及的节点信息(node_id),即记录目标报文当前所在的节点是客户端还是服务端;同时,表项还记录所涉及的函数信息(function_id)以及函数触发对应的时间戳(timestamp)。如图2所示,表项中节点信息node_id、函数信息function_id和函数触发对应的时间戳timestamp分别占用32bit大小的报文空间。此外,一般目标报文的大小为256bit,因此剩余的目标报文空间可使用0或1进行填充。
综上,通过生成目标报文,利用其中的表项存储不同节点的函数执行时间,进而计算出客户端和服务端在用户层、内核态各个关键点的网络时延。
下面将结合不同节点,对目标报文利用其中的表项存储不同节点的函数执行时间,以及利用函数执行时间计算网络时延进行具体说明:
(一)客户端的内核层对目标报文的处理过程中的时间信息采集及时延信息确定;
在上述实施例的基础上,在一些实施例中,基于客户端的内核层将目标报文传输至服务端的内核层,并通过目标报文记录客户端对目标报文进行处理和传输的时间信息,包括:
S111:基于客户端的内核层,通过扩展数据包过滤技术监测互联网控制报文协议接收函数,并通过目标报文记录目标报文从客户端的应用层传输至客户端的内核层的发送时间戳。
S112:当监测到互联网控制报文协议接收函数触发时,基于目标报文的第一表项记录表征客户端的节点信息、互联网控制报文协议接收函数信息以及互联网控制报文协议接收函数触发对应的第一时间戳。
S113:基于客户端的内核层,通过扩展数据包过滤技术监测网络设备发送数据函数。
S114:当监测到网络设备发送数据函数触发时,基于目标报文的第二表项记录表征客户端的节点信息、网络设备发送数据函数信息以及网络设备发送数据函数触发对应的第二时间戳。
扩展数据包过滤技术(extended Berkeley Packet Filter,eBPF)是一种在Linux内核执行安全的、高效的、可编程的网络数据包过滤和监测的技术。它可以用于监测函数的执行情况。eBPF技术通过在内核中插入一段特定的代码,即eBPF程序,来实现对函数的监测。这段代码可以在运行时动态加载到内核中,并在内核中执行。eBPF程序可以通过钩子函数(hook)的方式,将自己插入到目标函数的执行路径中。当目标函数被调用时,eBPF程序会被触发执行。在执行过程中,eBPF程序可以访问函数的参数、返回值以及其他相关的上下文信息。通过对这些信息的分析和处理,可以实现对函数的监测和统计。eBPF技术的优势在于其高效性和安全性。由于eBPF程序是在内核中执行的,因此可以避免用户空间和内核空间之间的频繁切换,提高了监测的效率。同时,eBPF程序受到严格的安全限制,只能访问指定的数据和执行指定的操作,从而保证了系统的安全性。
在具体实施中,基于客户端的内核层,通过eBPF技术监测互联网控制报文协议接收(icmp_rcv)函数,并通过目标报文记录目标报文从客户端的应用层传输至客户端的内核层的发送时间戳。需要说明的是,icmp_rcv函数的主要作用是解析ICMP数据包头部信息,并将处理结果交给后续的处理函数,从而实现对ICMP数据包的有效处理和响应。也就是说,当icmp_rcv函数被触发时,认为此时客户端的内核层已经接收到应用层传输的目标报文。因此,当监测到icmp_rcv函数触发时,基于目标报文的第一表项记录表征客户端的节点信息、icmp_rcv函数信息以及icmp_rcv函数触发对应的第一时间戳。
进一步地,基于客户端的内核层,通过eBPF技术监测网络设备发送数据(net_dev_xmit)函数。需要说明的是,net_dev_xmit函数是Linux内核网络子系统中的一个函数,用于实际发送数据包到网络设备的操作。也就是说,当监测到net_dev_xmit函数触发时,认为此时客户端的内核层已经完成了对目标报文的处理,准备发送。因此,当监测到net_dev_xmit函数触发时,基于目标报文的第二表项记录表征客户端的节点信息、net_dev_xmit函数信息以及net_dev_xmit函数触发对应的第二时间戳。
以此,实现了客户端的内核层对目标报文的处理过程中的时间信息采集。
对应地,基于客户端的应用层获取目标报文中的各时间信息,以根据各时间信息确定目标报文传输过程中的网络抖动,包括:
S140:获取目标报文从客户端的应用层传输至客户端的内核层的发送时间戳。
S141:获取目标报文的第一表项中互联网控制报文协议接收函数触发对应的第一时间戳。
S142:获取目标报文的第二表项中网络设备发送数据函数触发对应的第二时间戳。
S143:确定发送时间戳与第一时间戳二者的差值,以确定目标报文从客户端的应用层传输至客户端的内核层的时延信息;
S144:确定第二时间戳与第一时间戳二者的差值,以确定目标报文在客户端的内核层进行处理的时延信息。
具体地,获取目标报文从客户端的应用层传输至客户端的内核层的发送时间戳,同时获取目标报文的第一表项中icmp_rcv函数触发对应的第一时间戳。由于icmp_rcv函数的触发表征客户端的内核层已经接收到应用层传输的目标报文,因此可确定发送时间戳与第一时间戳二者的差值,从而确定目标报文从客户端的应用层传输至客户端的内核层的时延信息tx_user。
进一步地,获取目标报文的第二表项中net_dev_xmit函数触发对应的第二时间戳。由于net_dev_xmit函数的触发表征客户端的内核层已经完成了对目标报文的处理,因此可确定第二时间戳与第一时间戳二者的差值,从而确定目标报文在客户端的内核层进行处理的时延信息tx_kern1。
以此,实现了客户端的内核层对目标报文的处理过程中的时延信息确定,更加精细化地定位了客户端的内核层在报文处理过程中的网络延迟问题。
(二)客户端的内核层对目标报文的传输过程中的时间信息采集及时延信息确定;
在上述实施例的基础上,在一些实施例中,基于客户端的内核层将目标报文传输至服务端的内核层,并通过目标报文记录客户端对目标报文进行处理和传输的时间信息,包括:
S115:基于客户端的内核层,通过扩展数据包过滤技术监测数据包发送函数。
S116:当监测到数据包发送函数触发时,基于目标报文的第三表项记录表征客户端的节点信息、数据包发送函数信息以及数据包发送函数触发对应的第三时间戳。
在具体实施中,基于客户端的内核层,通过eBPF技术监测数据包发送(dev_hard_start_xmit)函数。需要说明的是,dev_hard_start_xmit函数是Linux内核中网络设备驱动程序中的一个函数,用于启动数据包的发送过程。在网络包转发的过程中,当一个数据包需要从网络设备发送出去时,通常会通过调用dev_hard_start_xmit函数来触发数据包的发送。也就是说,当监测到dev_hard_start_xmit函数触发时,认为此时客户端的内核层完成了对目标报文的发送准备,执行发送程序。因此,当监测到dev_hard_start_xmit函数触发时,基于目标报文的第三表项记录表征客户端的节点信息、dev_hard_start_xmit函数信息以及dev_hard_start_xmit函数触发对应的第三时间戳。
以此,实现了客户端的内核层对目标报文的传输过程中的时间信息采集。
对应地,基于客户端的应用层获取目标报文中的各时间信息,以根据各时间信息确定目标报文传输过程中的网络抖动,包括:
S145:获取目标报文的第二表项中网络设备发送数据函数触发对应的第二时间戳。
S146:获取目标报文的第三表项中数据包发送函数触发对应的第三时间戳。
S147:确定第三时间戳与第二时间戳二者的差值,以确定目标报文在客户端的内核层的网络设备发送时延信息。
在具体实施中,获取目标报文的第二表项中net_dev_xmit函数触发对应的第二时间戳。获取目标报文的第三表项中dev_hard_start_xmit函数触发对应的第三时间戳。由于net_dev_xmit函数的触发表征客户端的内核层已经完成了对目标报文的处理,dev_hard_start_xmit函数的触发表征客户端的内核层已经完成了对目标报文的发送准备,因此可确定第三时间戳与第二时间戳二者的差值,从而确定目标报文在客户端的内核层的网络设备发送时延信息tx_qdisc。
以此,实现了客户端的内核层对目标报文的传输过程中的时延信息确定,更加精细化地定位了客户端的内核层在报文传输过程中的网络延迟问题。
(三)目标报文在链路层传输的时间信息采集及时延信息确定,以及服务端的内核层对目标报文进行处理和传输的时间信息采集及时延信息确定;
在上述实施例的基础上,在一些实施例中,目标报文记录目标报文在链路层传输的时间信息,以及服务端对目标报文进行处理和传输的时间信息,包括:
S121:基于服务端的内核层,通过扩展数据包过滤技术监测数据包处理函数。
S122:当监测到数据包处理函数触发时,基于目标报文的第四表项记录表征服务端的节点信息、数据包处理函数信息以及数据包处理函数触发对应的第四时间戳。
S123:基于服务端的内核层,通过扩展数据包过滤技术监测互联网控制报文协议接收函数。
S124:当监测到互联网控制报文协议接收函数触发时,基于目标报文的第五表项记录表征服务端的节点信息、互联网控制报文协议接收函数信息以及互联网控制报文协议接收函数触发对应的第五时间戳。
S125:基于服务端的内核层,通过扩展数据包过滤技术监测网络设备发送数据函数。
S126:当监测到网络设备发送数据函数触发时,基于目标报文的第六表项记录表征服务端的节点信息、网络设备发送数据函数信息以及网络设备发送数据函数触发对应的第六时间戳。
S127:基于客户端的内核层,通过扩展数据包过滤技术监测数据包处理函数。
S128:当监测到数据包处理函数触发时,基于目标报文的第七表项记录表征客户端的节点信息、数据包处理函数信息以及数据包处理函数触发对应的第七时间戳。
在具体实施中,基于服务端的内核层,通过eBPF技术监测数据包处理(netif_receive_skb)函数。需要说明的是,netif_receive_skb函数的作用是Linux内核中用于处理接收到的网络数据包的函数。也就是说,当服务端的内核层触发netif_receive_skb函数时,认为目标报文已经由客户端的内核层通过链路层传输至服务端的内核层。因此,当服务端的内核层监测到netif_receive_skb函数触发时,基于目标报文的第四表项记录表征服务端的节点信息、netif_receive_skb函数信息以及netif_receive_skb函数触发对应的第四时间戳。
服务端的内核层在接收到目标报文后,需要服务端Linux内核对其进行的一系列的处理:通过网卡将目标报文数据帧通过直接内存访问(Direct Memory Access,DMA)送到系统内存保存,并通过解包操作获取目标报文包的信息。这个过程通常使用icmp_rcv函数进行监控。因此,基于服务端的内核层,通过eBPF技术监测icmp_rcv函数。可以理解的是,当监测到icmp_rcv函数触发时,认为此时服务端的内核层开始处理目标报文。因此,当监测到icmp_rcv函数触发时,基于目标报文的第五表项记录表征服务端的节点信息、icmp_rcv函数信息以及icmp_rcv函数触发对应的第五时间戳。
进一步地,服务端的内核层在完成对目标报文的处理后,会返回给客户端的内核层目标报文。因此,基于服务端的内核层,通过eBPF技术监测net_dev_xmit函数。当监测到net_dev_xmit函数触发时,认为此时服务端内核层执行目标报文向客户端的内核层的发送,因此基于目标报文的第六表项记录表征服务端的节点信息、net_dev_xmit函数信息以及net_dev_xmit函数触发对应的第六时间戳。
目标报文在数据传输的链路层传输,最终重新返回至客户端的内核层,由客户端的网卡接收。而网卡接收到的函数通常是netif_receive_skb函数,当监测到netif_receive_skb函数触发时,认为客户端的内核层接收到服务端的内核层通过链路层传输的目标报文。因此,基于客户端的内核层,通过eBPF技术监测netif_receive_skb函数。当监测到netif_receive_skb函数触发时,基于目标报文的第七表项记录表征客户端的节点信息、netif_receive_skb函数信息以及netif_receive_skb函数触发对应的第七时间戳。
以此,实现了目标报文在链路层传输的时间信息采集,以及服务端的内核层对目标报文进行处理和传输的时间信息采集。
对应地,基于客户端的应用层获取目标报文中的各时间信息,以根据各时间信息确定目标报文传输过程中的网络抖动,包括:
S148:获取目标报文的第三表项中数据包发送函数触发对应的第三时间戳。
S149:获取目标报文的第四表项中数据包处理函数触发对应的第四时间戳。
S150:确定第四时间戳与第三时间戳二者的差值,以确定目标报文基于客户端向服务端传输时链路层的时延信息。
S151:获取目标报文的第五表项中互联网控制报文协议接收函数触发对应的第五时间戳。
S152:确定第五时间戳与第四时间戳二者的差值,以确定目标报文在服务端的内核层进行处理的时延信息;
S153:获取目标报文的第六表项中网络设备发送数据函数触发对应的第六时间戳。
S154:确定第六时间戳与第五时间戳二者的差值,以确定目标报文在服务端的内核层进行网络设备发送的时延信息。
S155:获取目标报文的第七表项中数据包处理函数触发对应的第七时间戳。
S156:确定第七时间戳与第六时间戳二者的差值,以确定目标报文基于服务端向客户端传输时链路层的时延信息。
在具体实施中,获取目标报文的第三表项中dev_hard_start_xmit函数触发对应的第三时间戳。获取目标报文的第四表项中netif_receive_skb函数触发对应的第四时间戳。由于dev_hard_start_xmit函数的触发表征客户端的内核层已经完成了对目标报文的发送准备,netif_receive_skb函数的触发表征服务端的内核层准备处理接收到目标报文,因此确定第四时间戳与第三时间戳二者的差值,从而确定目标报文基于客户端向服务端传输时链路层的时延信息tx_outlink。
获取目标报文的第五表项中icmp_rcv函数触发对应的第五时间戳,并获取目标报文的第六表项中net_dev_xmit函数触发对应的第六时间戳。由于icmp_rcv函数的触发表征服务端的内核层开始处理目标报文,net_dev_xmit函数的触发表征服务端的内核层执行目标报文向客户端的内核层的发送,因此,确定第五时间戳与第四时间戳二者的差值,以确定目标报文在服务端的内核层进行处理的时延信息rx_kern1;确定第六时间戳与第五时间戳二者的差值,以确定目标报文在服务端的内核层进行网络设备发送的时延信息tx_kern2。
获取目标报文的第七表项中netif_receive_skb函数触发对应的第七时间戳。由于netif_receive_skb函数的触发表征客户端的内核层接收到服务端的内核层通过链路层传输的目标报文,因此确定第七时间戳与第六时间戳二者的差值,从而确定目标报文基于服务端向客户端传输时链路层的时延信息rx_outlink。
以此,实现了目标报文在链路层传输的时延信息确定,以及服务端的内核层对目标报文进行处理和传输的时延信息确定,更加精细化地定位了目标报文在链路层传输以及服务端的内核层对目标报文进行处理和传输的网络延迟问题。
(四)客户端的内核层将目标报文分配至客户端的应用层的过程中,客户端对目标报文进行处理和分配的时间信息采集和时延信息确定;
在上述实施例的基础上,在一些实施例中,将目标报文分配至客户端的应用层,并通过目标报文记录客户端对目标报文进行处理和分配的时间信息,包括:
S131:基于客户端的内核层,通过扩展数据包过滤技术监测软中断触发函数。
S132:当监测到软中断触发函数触发时,基于目标报文的第八表项记录表征客户端的节点信息、软中断触发函数信息以及软中断触发函数触发对应的第八时间戳。
S133:基于客户端的内核层,通过扩展数据包过滤技术监测数据解析上传函数。
S134:当监测到数据解析上传函数触发时,基于目标报文的第九表项记录表征客户端的节点信息、数据解析上传函数信息以及数据解析上传函数触发对应的第九时间戳。
S135:基于客户端的内核层,通过扩展数据包过滤技术监测内核调度函数。
S136:当监测到内核调度函数触发时,基于目标报文的第十表项记录表征客户端的节点信息、内核调度函数信息以及内核调度函数触发对应的第十时间戳。
S137:基于客户端的应用层,通过扩展数据包过滤技术监测互联网控制报文协议接收函数。
S138:当监测到互联网控制报文协议接收函数触发时,基于目标报文的第十一表项记录表征客户端的节点信息、互联网控制报文协议接收函数信息以及互联网控制报文协议接收函数触发对应的第十一时间戳。
在具体实施中,客户端的内核层在接收到目标报文后,硬中断通知中央处理器(Central Processing Unit,CPU)有报文到达,CPU响应硬中断,简单处理后发出软中断,等待内核对目标报文进行处理。需要说明的是,硬中断和软中断是计算机系统中两种不同类型的中断。硬中断是由硬件设备触发的中断,用于向处理器通知某个事件的发生。当硬件设备需要处理器的注意时,它会发送一个中断信号给处理器,处理器会立即停止当前正在执行的任务,保存当前的上下文,并跳转到相应的中断处理程序来处理该事件。硬中断通常用于处理外部设备的输入/输出操作,如键盘输入、鼠标点击、网络数据传输等。软中断是由软件程序主动触发的中断,用于在程序执行过程中主动请求操作系统提供某种服务或执行某种操作。软中断是通过软件指令来触发的,它会引发处理器从用户态切换到内核态,并跳转到相应的中断处理程序来执行特定的操作。软中断通常用于系统调用、异常处理、进程间通信等操作。
因此,为了监测软中断的触发,基于客户端的内核层,通过eBPF技术监测软中断触发(softirq_raise)函数。当监测到softirq_raise函数触发时,基于目标报文的第八表项记录表征客户端的节点信息、softirq_raise函数信息以及softirq_raise函数触发对应的第八时间戳。
软中断处理目标报文,主要解析目标报文的头部信息,以确定目标报文的目的地和下一步的处理方式;根据目标报文的协议类型和目的地址,查找适当的处理函数或模块来处理该目标报文;将目标报文分发给相应的处理函数或模块进行进一步处理,可能包括协议处理、路由选择等;最终,将处理后的目标报文交付给本地系统内的应用程序或服务。需要注意的是,将处理后的目标报文交付给本地系统内的应用程序或服务通常是由数据解析上传(raw_local_deviver)函数实现。因此,基于客户端的内核层,通过eBPF技术监测raw_local_deviver函数。当监测到数据解析上传函数触发时,认为此时客户端的内核层完成了对目标报文的处理,准备将处理后的目标报文分配至应用层的应用程序或服务,基于目标报文的第九表项记录表征客户端的节点信息、raw_local_deviver函数信息以及raw_local_deviver函数触发对应的第九时间戳。
客户端的内核在处理完目标报文后,需要将其发送给应用层。而在发送之前需要通过内核调度器进行调度,内核调度的时延也可以反映客户端的内核的繁忙程度。其中,在Linux内核中内核调度函数通常是sched_wakeup函数。因此,基于客户端的内核层,通过eBPF技术监测sched_wakeup函数。当监测到sched_wakeup触发时,认为此时客户端内核层已经完成了对目标报文的调度,进一步基于目标报文的第十表项记录表征客户端的节点信息、sched_wakeup函数信息以及sched_wakeup函数触发对应的第十时间戳。
客户端的应用层最终会接收到由客户端的内核层发送过来的目标报文。因此,基于客户端的应用层,通过eBPF技术监测icmp_rcv函数。当监测到icmp_rcv函数触发时,认为此时客户端的应用层开始处理目标报文,进一步基于目标报文的第十一表项记录表征客户端的节点信息、icmp_rcv函数信息以及icmp_rcv函数触发对应的第十一时间戳。
以此,实现了客户端的内核层将目标报文分配至客户端的应用层的过程中,客户端对目标报文进行处理和分配的时间信息采集。
对应地,基于客户端的应用层获取目标报文中的各时间信息,以根据各时间信息确定目标报文传输过程中的网络抖动,包括:
S157:获取目标报文的第七表项中数据包处理函数触发对应的第七时间戳;
S158:获取目标报文的第八表项中软中断触发函数触发对应的第八时间戳;
S159:确定第八时间戳与第七时间戳二者的差值,以确定目标报文在客户端的内核层进行软中断处理的时延信息;
S160:获取目标报文的第九表项中数据解析上传函数触发对应的第九时间戳;
S161:确定第九时间戳与第八时间戳二者的差值,以确定目标报文在客户端的内核层进行网络报文处理的时延信息;
S162:获取目标报文的第十表项中内核调度函数触发对应的第十时间戳;
S163:确定第十时间戳与第九时间戳二者的差值,以确定目标报文在客户端的内核层进行调度的时延信息;
S164:获取目标报文的第十一表项中互联网控制报文协议接收函数触发对应的第十一时间戳;
S165:确定第十一时间戳与第十时间戳二者的差值,以确定目标报文在客户端的应用层进行处理的时延信息。
在具体实施中,获取目标报文的第七表项中netif_receive_skb函数触发对应的第七时间戳,并获取目标报文的第八表项中softirq_raise函数触发对应的第八时间戳;由于net_dev_xmit函数的触发表征客户端的内核层接收到服务端的内核层通过链路层传输的目标报文,softirq_raise函数的触发表征客户端的内核层开始对目标报文进行软中断处理,因此确定第八时间戳与第七时间戳二者的差值,从而确定目标报文在客户端的内核层进行软中断处理的时延信息rx_softirq。
获取目标报文的第九表项中raw_local_deviver函数触发对应的第九时间戳;由于raw_local_deviver函数的触发表征客户端的内核层完成了对目标报文的处理,准备将处理后的目标报文分配至应用层的应用程序或服务,因此确定第九时间戳与第八时间戳二者的差值,从而确定目标报文在客户端的内核层进行网络报文处理的时延信息rx_kern2。
获取目标报文的第十表项中sched_wakeup函数触发对应的第十时间戳;由于sched_wakeup函数的触发表征客户端内核层已经完成了对目标报文的调度,因此确定第十时间戳与第九时间戳二者的差值,从而确定目标报文在客户端的内核层进行调度的时延信息rx_task_queue。
获取目标报文的第十一表项中icmp_rcv函数触发对应的第十一时间戳;由于第十一表项中icmp_rcv函数的触发表征客户端的应用层开始处理目标报文,因此确定第十一时间戳与第十时间戳二者的差值,从而确定目标报文在客户端的应用层进行处理的时延信息rx_user。
以此,实现了客户端的内核层将目标报文分配至客户端的应用层的过程中,客户端对目标报文进行处理和分配的时延信息确定,更精细化地确定了客户端对目标报文进行处理和分配的网络延迟问题。
以上对应用于客户端的网络抖动检测方法进行了详细说明。本发明还提供了另一种网络抖动检测方法。图3为本发明实施例提供的另一种网络抖动检测方法的流程图。方法应用于服务端;如图3所示,方法包括:
S20:基于服务端的内核层接收客户端的内核层传输的目标报文;其中,目标报文由客户端的应用层生成,且包含客户端对目标报文进行处理和传输的时间信息以及目标报文在链路层传输的时间信息。
S21:通过目标报文记录服务端对目标报文进行处理和传输的时间信息。
S22:将目标报文传输至客户端的内核层,以便于客户端的内核层将目标报文分配至客户端的应用层,并通过目标报文记录客户端对目标报文进行处理和分配的时间信息,基于客户端的应用层获取目标报文中的各时间信息,以根据各时间信息确定目标报文传输过程中的网络抖动。
具体地,基于服务端的内核层接收客户端的内核层传输的目标报文。需要说明的是,目标报文在客户端的应用层生成。目标报文用于在客户端与服务端之间进行传输,具体从客户端的应用层出发,依次经过客户端的内核层、服务端的内核层和客户端的内核层,最后回到客户端的应用层。在报文传输期间,目标报文能够记录客户端和服务端对其进行处理和传输的关键点的时间信息。因此在发送之前,目标报文中记录有客户端的内核层对目标报文进行处理的关键点的时间信息,还记录有客户端的内核层对目标报文进行传输的关键点的时间信息,以便于在后续依据上述时间信息,确定客户端的内核层内的报文处理和传输的时延信息。
进一步地,在接收到目标报文之后,服务端的内核层会对目标报文进行处理解析,并在处理完成后发送目标报文至客户端的内核层,使客户端的内核层接收到服务端的内核层传输的目标报文。需要说明的是,在此过程中,目标报文中记录了目标报文在链路层传输的时间信息,以及服务端的内核层对目标报文进行处理和传输的时间信息。在后续可依据上述时间信息确定链路层以及服务端的内核层的时延信息。
随后将目标报文传输至客户端的内核层,客户端的内核层再次得到目标报文后,需要对目标报文进行处理,具体来说主要完成以下内容:解析目标报文的头部信息,以确定目标报文的目的地和下一步的处理方式;根据目标报文的协议类型和目的地址,查找适当的处理函数或模块来处理该目标报文;将目标报文分发给相应的处理函数或模块进行进一步处理,可能包括协议处理、路由选择等;最终,将处理后的目标报文交付给本地系统内的应用程序或服务,也就是将目标报文进行分配。在对目标报文进行处理和分配过程中,同样需要通过目标报文记录客户端对目标报文进行处理和分配的时间信息,以便于在后续依据上述时间信息确定客户端的内核层在分配报文过程中的时延信息。
最后,传输至客户端应用层的目标报文记录了目标报文从客户端的应用层到客户端的内核层,从客户端的内核层到服务器内核层,从服务器内核层到客户端的内核层,从客户端的内核层返回给客户端的应用层执行的所有关键点的时间信息,通过这些时间信息即可获得目标报文在不同阶段的时延情况,从而更精细化地定位网络延迟问题。
在上述实施例中,对于网络抖动检测方法进行了详细描述,本发明还提供网络抖动检测装置对应的实施例。
图4为本发明实施例提供的一种网络抖动检测装置的示意图。装置应用于客户端;如图4所示,装置包括:
生成模块10,用于基于客户端的应用层生成目标报文,并将目标报文传输至客户端的内核层;
第一记录模块11,用于基于客户端的内核层将目标报文传输至服务端的内核层,并通过目标报文记录客户端对目标报文进行处理和传输的时间信息;
第一接收模块12,用于通过客户端的内核层接收服务端的内核层传输的目标报文;其中,目标报文记录目标报文在链路层传输的时间信息,以及服务端对目标报文进行处理和传输的时间信息;
第二记录模块13,用于将目标报文分配至客户端的应用层,并通过目标报文记录客户端对目标报文进行处理和分配的时间信息;
确定模块14,用于基于客户端的应用层获取目标报文中的各时间信息,以根据各时间信息确定目标报文传输过程中的网络抖动。
在一些实施例中,生成模块10,包括:
第一设置子模块,用于设置目标报文的互联网控制报文协议报文头;其中,互联网控制报文协议报文头包括互联网控制报文协议类型、代码、校验和、互联网控制报文协议标识符和互联网控制报文协议序列号;
第二设置子模块,用于设置目标报文的目标报文头;其中,目标报文头包括互联网控制报文协议版本、数量、标志位、互联网控制报文协议魔数、保留字节、目标报文头标识符和目标报文头序列号;
第三设置子模块,用于设置多个表项;其中,表项用于记录目标报文传输过程中所涉及的节点信息、函数信息以及函数触发对应的时间戳。
在一些实施例中,第一记录模块11,包括:
第一监测子模块,用于基于客户端的内核层,通过扩展数据包过滤技术监测互联网控制报文协议接收函数,并通过目标报文记录目标报文从客户端的应用层传输至客户端的内核层的发送时间戳;
第一记录子模块,用于当监测到互联网控制报文协议接收函数触发时,基于目标报文的第一表项记录表征客户端的节点信息、互联网控制报文协议接收函数信息以及互联网控制报文协议接收函数触发对应的第一时间戳;
第二监测子模块,用于基于客户端的内核层,通过扩展数据包过滤技术监测网络设备发送数据函数;
第二记录子模块,用于当监测到网络设备发送数据函数触发时,基于目标报文的第二表项记录表征客户端的节点信息、网络设备发送数据函数信息以及网络设备发送数据函数触发对应的第二时间戳。
在一些实施例中,确定模块14,包括:
第一获取子模块,用于获取目标报文从客户端的应用层传输至客户端的内核层的发送时间戳;
第二获取子模块,用于获取目标报文的第一表项中互联网控制报文协议接收函数触发对应的第一时间戳;
第三获取子模块,用于获取目标报文的第二表项中网络设备发送数据函数触发对应的第二时间戳;
第一确定子模块,用于确定发送时间戳与第一时间戳二者的差值,以确定目标报文从客户端的应用层传输至客户端的内核层的时延信息;
第二确定子模块,用于确定第二时间戳与第一时间戳二者的差值,以确定目标报文在客户端的内核层进行处理的时延信息。
在一些实施例中,第一记录模块11,包括:
第三监测子模块,用于基于客户端的内核层,通过扩展数据包过滤技术监测数据包发送函数;
第三记录子模块,用于当监测到数据包发送函数触发时,基于目标报文的第三表项记录表征客户端的节点信息、数据包发送函数信息以及数据包发送函数触发对应的第三时间戳。
在一些实施例中,确定模块14,包括:
第四获取子模块,用于获取目标报文的第二表项中网络设备发送数据函数触发对应的第二时间戳;
第五获取子模块,用于获取目标报文的第三表项中数据包发送函数触发对应的第三时间戳;
第三确定子模块,用于确定第三时间戳与第二时间戳二者的差值,以确定目标报文在客户端的内核层的网络设备发送时延信息。
在一些实施例中,目标报文记录目标报文在链路层传输的时间信息,以及服务端对目标报文进行处理和传输的时间信息,具体包括:
基于服务端的内核层,通过扩展数据包过滤技术监测数据包处理函数;
当监测到数据包处理函数触发时,基于目标报文的第四表项记录表征服务端的节点信息、数据包处理函数信息以及数据包处理函数触发对应的第四时间戳;
基于服务端的内核层,通过扩展数据包过滤技术监测互联网控制报文协议接收函数;
当监测到互联网控制报文协议接收函数触发时,基于目标报文的第五表项记录表征服务端的节点信息、互联网控制报文协议接收函数信息以及互联网控制报文协议接收函数触发对应的第五时间戳;
基于服务端的内核层,通过扩展数据包过滤技术监测网络设备发送数据函数;
当监测到网络设备发送数据函数触发时,基于目标报文的第六表项记录表征服务端的节点信息、网络设备发送数据函数信息以及网络设备发送数据函数触发对应的第六时间戳;
基于客户端的内核层,通过扩展数据包过滤技术监测数据包处理函数;
当监测到数据包处理函数触发时,基于目标报文的第七表项记录表征客户端的节点信息、数据包处理函数信息以及数据包处理函数触发对应的第七时间戳。
在一些实施例中,确定模块14,包括:
第六获取子模块,用于获取目标报文的第三表项中数据包发送函数触发对应的第三时间戳;
第七获取子模块,用于获取目标报文的第四表项中数据包处理函数触发对应的第四时间戳;
第四确定子模块,用于确定第四时间戳与第三时间戳二者的差值,以确定目标报文基于客户端向服务端传输时链路层的时延信息;
第八获取子模块,用于获取目标报文的第五表项中互联网控制报文协议接收函数触发对应的第五时间戳;
第五确定子模块,用于确定第五时间戳与第四时间戳二者的差值,以确定目标报文在服务端的内核层进行处理的时延信息;
第九获取子模块,用于获取目标报文的第六表项中网络设备发送数据函数触发对应的第六时间戳;
第六确定子模块,用于确定第六时间戳与第五时间戳二者的差值,以确定目标报文在服务端的内核层进行网络设备发送的时延信息;
第十获取子模块,用于获取目标报文的第七表项中数据包处理函数触发对应的第七时间戳;
第七确定子模块,用于确定第七时间戳与第六时间戳二者的差值,以确定目标报文基于服务端向客户端传输时链路层的时延信息。
在一些实施例中,第二记录模块13,包括:
第四监测子模块,用于基于客户端的内核层,通过扩展数据包过滤技术监测软中断触发函数;
第四记录子模块,用于当监测到软中断触发函数触发时,基于目标报文的第八表项记录表征客户端的节点信息、软中断触发函数信息以及软中断触发函数触发对应的第八时间戳;
第五监测子模块,用于基于客户端的内核层,通过扩展数据包过滤技术监测数据解析上传函数;
第五记录子模块,用于当监测到数据解析上传函数触发时,基于目标报文的第九表项记录表征客户端的节点信息、数据解析上传函数信息以及数据解析上传函数触发对应的第九时间戳;
第六监测子模块,用于基于客户端的内核层,通过扩展数据包过滤技术监测内核调度函数;
第六记录子模块,用于当监测到内核调度函数触发时,基于目标报文的第十表项记录表征客户端的节点信息、内核调度函数信息以及内核调度函数触发对应的第十时间戳;
第七监测子模块,用于基于客户端的应用层,通过扩展数据包过滤技术监测互联网控制报文协议接收函数;
第七记录子模块,用于当监测到互联网控制报文协议接收函数触发时,基于目标报文的第十一表项记录表征客户端的节点信息、互联网控制报文协议接收函数信息以及互联网控制报文协议接收函数触发对应的第十一时间戳。
在一些实施例中,确定模块14,包括:
第十一获取子模块,用于获取目标报文的第七表项中数据包处理函数触发对应的第七时间戳;
第十二获取子模块,用于获取目标报文的第八表项中软中断触发函数触发对应的第八时间戳;
第八确定子模块,用于确定第八时间戳与第七时间戳二者的差值,以确定目标报文在客户端的内核层进行软中断处理的时延信息;
第十三获取子模块,用于获取目标报文的第九表项中数据解析上传函数触发对应的第九时间戳;
第九确定子模块,用于确定第九时间戳与第八时间戳二者的差值,以确定目标报文在客户端的内核层进行网络报文处理的时延信息;
第十四获取子模块,用于获取目标报文的第十表项中内核调度函数触发对应的第十时间戳;
第十确定子模块,用于确定第十时间戳与第九时间戳二者的差值,以确定目标报文在客户端的内核层进行调度的时延信息;
第十五获取子模块,用于获取目标报文的第十一表项中互联网控制报文协议接收函数触发对应的第十一时间戳;
第十一确定子模块,用于确定第十一时间戳与第十时间戳二者的差值,以确定目标报文在客户端的应用层进行处理的时延信息。
图5为本发明实施例提供的另一种网络抖动检测装置的示意图。装置应用于服务端;如图5所示,装置包括:
第二接收模块15,用于基于服务端的内核层接收客户端的内核层传输的目标报文;其中,目标报文由客户端的应用层生成,且包含客户端对目标报文进行处理和传输的时间信息以及目标报文在链路层传输的时间信息;
第三记录模块16,用于通过目标报文记录服务端对目标报文进行处理和传输的时间信息17;
传输模块,用于将目标报文传输至客户端的内核层,以便于客户端的内核层将目标报文分配至客户端的应用层,并通过目标报文记录客户端对目标报文进行处理和分配的时间信息,基于客户端的应用层获取目标报文中的各时间信息,以根据各时间信息确定目标报文传输过程中的网络抖动。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
图6为本发明实施例提供的一种网络抖动检测设备的示意图。如图6所示,网络抖动检测设备包括:
存储器20,用于存储计算机程序;
处理器21,用于执行计算机程序时实现如上述实施例中所提到的网络抖动检测方法的步骤。
本实施例提供的网络抖动检测设备可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用数字信号处理器(Digital Signal Processor,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(CentralProcessing Unit,CPU);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以在集成有图形处理器(Graphics Processing Unit,GPU),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括人工智能(Artificial Intelligence,AI)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器20可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器20还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器20至少用于存储以下计算机程序201,其中,该计算机程序被处理器21加载并执行之后,能够实现前述任一实施例公开的网络抖动检测方法的相关步骤。另外,存储器20所存储的资源还可以包括操作系统202和数据203等,存储方式可以是短暂存储或者永久存储。其中,操作系统202可以包括Windows、Unix、Linux等。数据203可以包括但不限于网络抖动检测方法涉及到的数据。
在一些实施例中,网络抖动检测设备还可包括有显示屏22、输入输出接口23、通信接口24、电源25以及通信总线26。
本领域技术人员可以理解,图6中示出的结构并不构成对网络抖动检测设备的限定,可以包括比图示更多或更少的组件。
最后,本发明还提供一种计算机可读存储介质对应的实施例。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述方法实施例(可以是客户端侧对应的方法、也可以是服务端侧对应的方法,还可以是客户端侧和服务端侧对应的方法)中记载的步骤。

Claims (14)

1.一种网络抖动检测方法,其特征在于,应用于客户端;所述方法包括:
基于客户端的应用层生成目标报文,并将所述目标报文传输至客户端的内核层;
基于客户端的内核层将所述目标报文传输至服务端的内核层,并通过所述目标报文记录客户端对所述目标报文进行处理和传输的时间信息;
通过客户端的内核层接收服务端的内核层传输的所述目标报文;其中,所述目标报文记录所述目标报文在链路层传输的时间信息,以及服务端对所述目标报文进行处理和传输的时间信息;
将所述目标报文分配至客户端的应用层,并通过所述目标报文记录客户端对所述目标报文进行处理和分配的时间信息;
基于客户端的应用层获取所述目标报文中的各时间信息,以根据各时间信息确定所述目标报文传输过程中的网络抖动;
其中,通过扩展数据包过滤技术检测客户端和服务端对目标报文进行处理、分配和传输的函数,并通过所述目标报文记录对应函数触发的时间信息;
所述基于客户端的应用层生成目标报文,包括:
设置所述目标报文的互联网控制报文协议报文头;其中,所述互联网控制报文协议报文头包括互联网控制报文协议类型、代码、校验和、互联网控制报文协议标识符和互联网控制报文协议序列号;在所述互联网控制报文协议报文头中,互联网控制报文协议类型占用8比特,代码占用8比特,校验和占用16比特,互联网控制报文协议标识符占用16比特,互联网控制报文协议序列号占用16比特;
设置所述目标报文的目标报文头;其中,所述目标报文头包括互联网控制报文协议版本、数量、标志位、互联网控制报文协议魔数、保留字节、目标报文头标识符和目标报文头序列号;在所述目标报文头中,互联网控制报文协议版本占用8比特,数量占用8比特,标志位占用16比特,互联网控制报文协议魔数占用16比特,保留字节占用16比特,目标报文头标识符占用32比特,目标报文头序列号占用32比特;
设置多个表项;其中,所述表项用于记录所述目标报文传输过程中所涉及的节点信息、函数信息以及函数触发对应的时间戳;其中,所述表项中节点信息、函数信息和函数触发对应的时间戳分别占用32比特大小的报文空间;所述目标报文的大小为256比特,所述目标报文的剩余空间使用0或1填充。
2.根据权利要求1所述的网络抖动检测方法,其特征在于,所述基于客户端的内核层将所述目标报文传输至服务端的内核层,并通过所述目标报文记录客户端对所述目标报文进行处理和传输的时间信息,包括:
基于客户端的内核层,通过扩展数据包过滤技术监测互联网控制报文协议接收函数,并通过所述目标报文记录所述目标报文从客户端的应用层传输至客户端的内核层的发送时间戳;
当监测到互联网控制报文协议接收函数触发时,基于所述目标报文的第一表项记录表征客户端的节点信息、互联网控制报文协议接收函数信息以及互联网控制报文协议接收函数触发对应的第一时间戳;
基于客户端的内核层,通过扩展数据包过滤技术监测网络设备发送数据函数;
当监测到网络设备发送数据函数触发时,基于所述目标报文的第二表项记录表征客户端的节点信息、网络设备发送数据函数信息以及网络设备发送数据函数触发对应的第二时间戳。
3.根据权利要求2所述的网络抖动检测方法,其特征在于,所述基于客户端的应用层获取所述目标报文中的各时间信息,以根据各时间信息确定所述目标报文传输过程中的网络抖动,包括:
获取所述目标报文从客户端的应用层传输至客户端的内核层的发送时间戳;
获取所述目标报文的第一表项中互联网控制报文协议接收函数触发对应的第一时间戳;
获取所述目标报文的第二表项中网络设备发送数据函数触发对应的第二时间戳;
确定发送时间戳与第一时间戳二者的差值,以确定所述目标报文从客户端的应用层传输至客户端的内核层的时延信息;
确定第二时间戳与第一时间戳二者的差值,以确定所述目标报文在客户端的内核层进行处理的时延信息。
4.根据权利要求2所述的网络抖动检测方法,其特征在于,所述基于客户端的内核层将所述目标报文传输至服务端的内核层,并通过所述目标报文记录客户端对所述目标报文进行处理和传输的时间信息,包括:
基于客户端的内核层,通过扩展数据包过滤技术监测数据包发送函数;
当监测到数据包发送函数触发时,基于所述目标报文的第三表项记录表征客户端的节点信息、数据包发送函数信息以及数据包发送函数触发对应的第三时间戳。
5.根据权利要求4所述的网络抖动检测方法,其特征在于,所述基于客户端的应用层获取所述目标报文中的各时间信息,以根据各时间信息确定所述目标报文传输过程中的网络抖动,包括:
获取所述目标报文的第二表项中网络设备发送数据函数触发对应的第二时间戳;
获取所述目标报文的第三表项中数据包发送函数触发对应的第三时间戳;
确定第三时间戳与第二时间戳二者的差值,以确定所述目标报文在客户端的内核层的网络设备发送时延信息。
6.根据权利要求4所述的网络抖动检测方法,其特征在于,所述目标报文记录所述目标报文在链路层传输的时间信息,以及服务端对所述目标报文进行处理和传输的时间信息,包括:
基于服务端的内核层,通过扩展数据包过滤技术监测数据包处理函数;
当监测到数据包处理函数触发时,基于所述目标报文的第四表项记录表征服务端的节点信息、数据包处理函数信息以及数据包处理函数触发对应的第四时间戳;
基于服务端的内核层,通过扩展数据包过滤技术监测互联网控制报文协议接收函数;
当监测到互联网控制报文协议接收函数触发时,基于所述目标报文的第五表项记录表征服务端的节点信息、互联网控制报文协议接收函数信息以及互联网控制报文协议接收函数触发对应的第五时间戳;
基于服务端的内核层,通过扩展数据包过滤技术监测网络设备发送数据函数;
当监测到网络设备发送数据函数触发时,基于所述目标报文的第六表项记录表征服务端的节点信息、网络设备发送数据函数信息以及网络设备发送数据函数触发对应的第六时间戳;
基于客户端的内核层,通过扩展数据包过滤技术监测数据包处理函数;
当监测到数据包处理函数触发时,基于所述目标报文的第七表项记录表征客户端的节点信息、数据包处理函数信息以及数据包处理函数触发对应的第七时间戳。
7.根据权利要求6所述的网络抖动检测方法,其特征在于,所述基于客户端的应用层获取所述目标报文中的各时间信息,以根据各时间信息确定所述目标报文传输过程中的网络抖动,包括:
获取所述目标报文的第三表项中数据包发送函数触发对应的第三时间戳;
获取所述目标报文的第四表项中数据包处理函数触发对应的第四时间戳;
确定第四时间戳与第三时间戳二者的差值,以确定所述目标报文基于客户端向服务端传输时链路层的时延信息;
获取所述目标报文的第五表项中互联网控制报文协议接收函数触发对应的第五时间戳;
确定第五时间戳与第四时间戳二者的差值,以确定所述目标报文在服务端的内核层进行处理的时延信息;
获取所述目标报文的第六表项中网络设备发送数据函数触发对应的第六时间戳;
确定第六时间戳与第五时间戳二者的差值,以确定所述目标报文在服务端的内核层进行网络设备发送的时延信息;
获取所述目标报文的第七表项中数据包处理函数触发对应的第七时间戳;
确定第七时间戳与第六时间戳二者的差值,以确定所述目标报文基于服务端向客户端传输时链路层的时延信息。
8.根据权利要求6所述的网络抖动检测方法,其特征在于,所述将所述目标报文分配至客户端的应用层,并通过所述目标报文记录客户端对所述目标报文进行处理和分配的时间信息,包括:
基于客户端的内核层,通过扩展数据包过滤技术监测软中断触发函数;
当监测到软中断触发函数触发时,基于所述目标报文的第八表项记录表征客户端的节点信息、软中断触发函数信息以及软中断触发函数触发对应的第八时间戳;
基于客户端的内核层,通过扩展数据包过滤技术监测数据解析上传函数;
当监测到数据解析上传函数触发时,基于所述目标报文的第九表项记录表征客户端的节点信息、数据解析上传函数信息以及数据解析上传函数触发对应的第九时间戳;
基于客户端的内核层,通过扩展数据包过滤技术监测内核调度函数;
当监测到内核调度函数触发时,基于所述目标报文的第十表项记录表征客户端的节点信息、内核调度函数信息以及内核调度函数触发对应的第十时间戳;
基于客户端的应用层,通过扩展数据包过滤技术监测互联网控制报文协议接收函数;
当监测到互联网控制报文协议接收函数触发时,基于所述目标报文的第十一表项记录表征客户端的节点信息、互联网控制报文协议接收函数信息以及互联网控制报文协议接收函数触发对应的第十一时间戳。
9.根据权利要求8所述的网络抖动检测方法,其特征在于,所述基于客户端的应用层获取所述目标报文中的各时间信息,以根据各时间信息确定所述目标报文传输过程中的网络抖动,包括:
获取所述目标报文的第七表项中数据包处理函数触发对应的第七时间戳;
获取所述目标报文的第八表项中软中断触发函数触发对应的第八时间戳;
确定第八时间戳与第七时间戳二者的差值,以确定所述目标报文在客户端的内核层进行软中断处理的时延信息;
获取所述目标报文的第九表项中数据解析上传函数触发对应的第九时间戳;
确定第九时间戳与第八时间戳二者的差值,以确定所述目标报文在客户端的内核层进行网络报文处理的时延信息;
获取所述目标报文的第十表项中内核调度函数触发对应的第十时间戳;
确定第十时间戳与第九时间戳二者的差值,以确定所述目标报文在客户端的内核层进行调度的时延信息;
获取所述目标报文的第十一表项中互联网控制报文协议接收函数触发对应的第十一时间戳;
确定第十一时间戳与第十时间戳二者的差值,以确定所述目标报文在客户端的应用层进行处理的时延信息。
10.一种应用于服务端的网络抖动检测方法,其特征在于,包括:
基于服务端的内核层接收客户端的内核层传输的目标报文;其中,所述目标报文由客户端的应用层生成,且包含客户端对所述目标报文进行处理和传输的时间信息以及所述目标报文在链路层传输的时间信息;所述客户端的应用层生成所述目标报文,具体包括:设置所述目标报文的互联网控制报文协议报文头;其中,所述互联网控制报文协议报文头包括互联网控制报文协议类型、代码、校验和、互联网控制报文协议标识符和互联网控制报文协议序列号;在所述互联网控制报文协议报文头中,互联网控制报文协议类型占用8比特,代码占用8比特,校验和占用16比特,互联网控制报文协议标识符占用16比特,互联网控制报文协议序列号占用16比特;设置所述目标报文的目标报文头;其中,所述目标报文头包括互联网控制报文协议版本、数量、标志位、互联网控制报文协议魔数、保留字节、目标报文头标识符和目标报文头序列号;在所述目标报文头中,互联网控制报文协议版本占用8比特,数量占用8比特,标志位占用16比特,互联网控制报文协议魔数占用16比特,保留字节占用16比特,目标报文头标识符占用32比特,目标报文头序列号占用32比特;设置多个表项;其中,所述表项用于记录所述目标报文传输过程中所涉及的节点信息、函数信息以及函数触发对应的时间戳;其中,所述表项中节点信息、函数信息和函数触发对应的时间戳分别占用32比特大小的报文空间;所述目标报文的大小为256比特,所述目标报文的剩余空间使用0或1填充;
通过所述目标报文记录服务端对所述目标报文进行处理和传输的时间信息;
将所述目标报文传输至客户端的内核层,以便于客户端的内核层将所述目标报文分配至客户端的应用层,并通过所述目标报文记录客户端对所述目标报文进行处理和分配的时间信息,基于客户端的应用层获取所述目标报文中的各时间信息,以根据各时间信息确定所述目标报文传输过程中的网络抖动;
其中,通过扩展数据包过滤技术检测客户端和服务端对目标报文进行处理、分配和传输的函数,并通过所述目标报文记录对应函数触发的时间信息。
11.一种网络抖动检测装置,其特征在于,应用于客户端;所述装置包括:
生成模块,用于基于客户端的应用层生成目标报文,并将所述目标报文传输至客户端的内核层;
第一记录模块,用于基于客户端的内核层将所述目标报文传输至服务端的内核层,并通过所述目标报文记录客户端对所述目标报文进行处理和传输的时间信息;
第一接收模块,用于通过客户端的内核层接收服务端的内核层传输的所述目标报文;其中,所述目标报文记录所述目标报文在链路层传输的时间信息,以及服务端对所述目标报文进行处理和传输的时间信息;
第二记录模块,用于将所述目标报文分配至客户端的应用层,并通过所述目标报文记录客户端对所述目标报文进行处理和分配的时间信息;
确定模块,用于基于客户端的应用层获取所述目标报文中的各时间信息,以根据各时间信息确定所述目标报文传输过程中的网络抖动;
其中,通过扩展数据包过滤技术检测客户端和服务端对目标报文进行处理、分配和传输的函数,并通过所述目标报文记录对应函数触发的时间信息;
所述基于客户端的应用层生成目标报文,包括:
设置所述目标报文的互联网控制报文协议报文头;其中,所述互联网控制报文协议报文头包括互联网控制报文协议类型、代码、校验和、互联网控制报文协议标识符和互联网控制报文协议序列号;在所述互联网控制报文协议报文头中,互联网控制报文协议类型占用8比特,代码占用8比特,校验和占用16比特,互联网控制报文协议标识符占用16比特,互联网控制报文协议序列号占用16比特;
设置所述目标报文的目标报文头;其中,所述目标报文头包括互联网控制报文协议版本、数量、标志位、互联网控制报文协议魔数、保留字节、目标报文头标识符和目标报文头序列号;在所述目标报文头中,互联网控制报文协议版本占用8比特,数量占用8比特,标志位占用16比特,互联网控制报文协议魔数占用16比特,保留字节占用16比特,目标报文头标识符占用32比特,目标报文头序列号占用32比特;
设置多个表项;其中,所述表项用于记录所述目标报文传输过程中所涉及的节点信息、函数信息以及函数触发对应的时间戳;其中,所述表项中节点信息、函数信息和函数触发对应的时间戳分别占用32比特大小的报文空间;所述目标报文的大小为256比特,所述目标报文的剩余空间使用0或1填充。
12.一种应用于服务端的网络抖动检测装置,其特征在于,包括:
第二接收模块,用于基于服务端的内核层接收客户端的内核层传输的目标报文;其中,所述目标报文由客户端的应用层生成,且包含客户端对所述目标报文进行处理和传输的时间信息以及所述目标报文在链路层传输的时间信息;所述客户端的应用层生成所述目标报文,具体包括:设置所述目标报文的互联网控制报文协议报文头;其中,所述互联网控制报文协议报文头包括互联网控制报文协议类型、代码、校验和、互联网控制报文协议标识符和互联网控制报文协议序列号;在所述互联网控制报文协议报文头中,互联网控制报文协议类型占用8比特,代码占用8比特,校验和占用16比特,互联网控制报文协议标识符占用16比特,互联网控制报文协议序列号占用16比特;设置所述目标报文的目标报文头;其中,所述目标报文头包括互联网控制报文协议版本、数量、标志位、互联网控制报文协议魔数、保留字节、目标报文头标识符和目标报文头序列号;在所述目标报文头中,互联网控制报文协议版本占用8比特,数量占用8比特,标志位占用16比特,互联网控制报文协议魔数占用16比特,保留字节占用16比特,目标报文头标识符占用32比特,目标报文头序列号占用32比特;设置多个表项;其中,所述表项用于记录所述目标报文传输过程中所涉及的节点信息、函数信息以及函数触发对应的时间戳;其中,所述表项中节点信息、函数信息和函数触发对应的时间戳分别占用32比特大小的报文空间;所述目标报文的大小为256比特,所述目标报文的剩余空间使用0或1填充;
第三记录模块,用于通过所述目标报文记录服务端对所述目标报文进行处理和传输的时间信息;
传输模块,用于将所述目标报文传输至客户端的内核层,以便于客户端的内核层将所述目标报文分配至客户端的应用层,并通过所述目标报文记录客户端对所述目标报文进行处理和分配的时间信息,基于客户端的应用层获取所述目标报文中的各时间信息,以根据各时间信息确定所述目标报文传输过程中的网络抖动;
其中,通过扩展数据包过滤技术检测客户端和服务端对目标报文进行处理、分配和传输的函数,并通过所述目标报文记录对应函数触发的时间信息。
13.一种网络抖动检测设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至9任一项所述的网络抖动检测方法的步骤。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至9任一项所述的网络抖动检测方法的步骤。
CN202410405349.7A 2024-04-07 2024-04-07 一种网络抖动检测方法、装置、设备及介质 Active CN117997802B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410405349.7A CN117997802B (zh) 2024-04-07 2024-04-07 一种网络抖动检测方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410405349.7A CN117997802B (zh) 2024-04-07 2024-04-07 一种网络抖动检测方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN117997802A CN117997802A (zh) 2024-05-07
CN117997802B true CN117997802B (zh) 2024-06-21

Family

ID=90901212

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410405349.7A Active CN117997802B (zh) 2024-04-07 2024-04-07 一种网络抖动检测方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN117997802B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118200203B (zh) * 2024-05-20 2024-08-06 阿里云计算有限公司 网络抖动检测方法和网络抖动检测装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115811484A (zh) * 2022-11-10 2023-03-17 阿里巴巴(中国)有限公司 网络探测方法、设备及存储介质
CN117061394A (zh) * 2023-08-21 2023-11-14 浙江大学 基于eBPF的容器网络TCP连接时延监测方法和装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200726124A (en) * 2005-12-30 2007-07-01 Shinewave Int Inc Assembly information supply system of production line
CN106604355B (zh) * 2016-12-09 2020-07-17 深圳市吉祥腾达科技有限公司 一种探测上网网络支持的vlan id的方法及路由器
CN110958153A (zh) * 2019-11-01 2020-04-03 上海盈赞通信科技有限公司 网络传输速率检测系统、方法及存储介质
CN114884667B (zh) * 2021-02-05 2024-08-09 中国移动通信有限公司研究院 一种通信鉴权方法、设备及存储介质
CN116303710A (zh) * 2023-01-31 2023-06-23 中国工商银行股份有限公司 交易请求报文的格式检测方法、装置、设备和介质
CN116996419A (zh) * 2023-07-06 2023-11-03 东南大学 一种数据中心网络中轻量级传输时延抖动监控的方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115811484A (zh) * 2022-11-10 2023-03-17 阿里巴巴(中国)有限公司 网络探测方法、设备及存储介质
CN117061394A (zh) * 2023-08-21 2023-11-14 浙江大学 基于eBPF的容器网络TCP连接时延监测方法和装置

Also Published As

Publication number Publication date
CN117997802A (zh) 2024-05-07

Similar Documents

Publication Publication Date Title
US6941341B2 (en) Method and apparatus for balancing distributed applications
CN108449239B (zh) 心跳包检测方法、装置、设备和存储介质
EP2690552A1 (en) Method and device for migrating virtual machine parameters and virtual machine server
CN117997802B (zh) 一种网络抖动检测方法、装置、设备及介质
US11500666B2 (en) Container isolation method and apparatus for netlink resource
CN110851371A (zh) 报文处理方法及相关设备
KR20190029486A (ko) 탄력적 허니넷 시스템 및 그 동작 방법
WO2021208682A1 (zh) 网络设备的数据采样方法、装置、设备及介质
CN107204924B (zh) 链路发现方法及装置
CN112261142A (zh) 一种rdma网络的数据重传方法、装置及fpga
CN115023919A (zh) 防火墙规则的更新方法、装置、服务器及存储介质
CN108063809B (zh) 机器设备数据采集方法以及采集系统
CN108460044B (zh) 数据的处理方法和装置
CN118400303A (zh) 一种网络探测的方法、装置、电子设备及存储介质
CN117176802B (zh) 一种业务请求的全链路监控方法、装置、电子设备及介质
CN114944996B (zh) 一种数据采集方法、装置及计算机可读介质
CN111494938A (zh) 测速方法、装置、存储介质及电子装置
CN111813621B (zh) 基于Flume数据中台的数据处理方法、装置、设备及介质
EP3965373B1 (en) Abnormality detection method and abnormality detection program
CN113079152B (zh) 一种数据传输方法、装置及介质
EP3136251B1 (en) Flit transmission method and device of network on chip
JP2016012801A (ja) 通信装置、通信システム及び通信装置制御方法
CN115002028A (zh) 一种报文处理方法、装置及介质
CN115705244A (zh) 网络资产的探测方法、装置和服务器
CN118714049B (zh) 海量ip探活的方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant