网络探测方法、设备及存储介质与流程

文档序号:33506424发布日期:2023-03-18 01:37阅读:38来源:国知局
网络探测方法、设备及存储介质与流程

1.本技术涉及通信技术领域,尤其涉及一种网络探测方法、设备及存储介质。


背景技术:

2.在网络上通信场景中,网络报文从发送端到接受端,除了在网络链路上经历各个组件(虚拟网络、物理网络)的耗时,自身在操作系统内核协议栈上也需要经历冗长的函数调用,从而导致网络时延。但是,现有的网络探测方法,无法探测出内核协议栈上的时延。因此,有待提出一种新的解决方案。


技术实现要素:

3.本技术的多个方面提供一种网络探测方法、设备及存储介质,用以探测内核协议栈上导致的网络时延。
4.本技术实施例提供一种网络探测方法,包括:将数据包过滤器注入操作系统的内核;通过所述操作系统与对端设备进行探测报文的收发操作;利用所述数据包过滤器,获取所述内核对所述探测报文处理时间戳;根据所述处理时间戳,确定所述探测报文的处理时延;所述探测报文的处理时延包括:所述内核的处理时延。
5.可选地,所述探测报文包括:端口标识和/或序列号标识;利用所述数据包过滤器,获取所述内核对所述探测报文处理时间戳,包括:利用所述数据包过滤器,根据所述端口标识和/或序列号标识,识别所述探测报文;在所述内核中的目标处理函数处理所述探测报文时,记录所述目标处理函数的处理时间戳。
6.可选地,还包括:利用所述数据包过滤器读取配置文件,并从所述配置文件中读取所述目标处理函数的函数标识;所述配置文件根据探测目标动态配置得到。
7.可选地,所述目标处理函数,包括:用于向所述对端设备发送探测请求报文的至少一个发送函数;和/或,用于接收所述对端设备发送探测回复报文的至少一个接收函数;在所述内核中的目标处理函数处理所述探测报文时,记录所述目标处理函数的处理时间戳,包括:利用所述数据包过滤器,在所述至少一个报文发送函数发送探测请求报文时,记录所述至少一个报文发送函数各自的发送时间戳;和/或,在所述至少一个报文接收函数接收探测回复报文时,记录所述至少一个报文接收函数各自的接收时间戳。
8.可选地,根据所述处理时间戳,确定所述探测报文的处理时延,包括:根据所述至少一个发送函数各自的发送时间戳,和/或,所述至少一个接收函数各自的接收时间戳,确定所述内核对应的处理时间序列;根据所述时间序列中任意一组时间戳的差值,确定所述任意一组时间戳对应的报文处理环节的处理时延。
9.可选地,所述目标处理函数中,任一处理函数的处理时间戳,包括:所述处理函数的入口时间戳以及结束调用时间戳;根据所述处理时间戳,确定所述探测报文的处理时延,包括:根据所述处理函数的入口时间戳以及结束调用时间戳,确定所述处理函数的处理时延。
10.可选地,根据所述处理时间戳,确定所述探测报文的处理时延,包括:从所述目标处理函数中,确定所述内核中的任一协议层的入口函数以及出口函数;根据所述入口函数的入口时间戳以及所述出口函数的结束调用时间戳,确定所述协议层的处理时延。
11.可选地,还包括:利用所述数据包过滤器,获取所述操作系统搭载的网卡设备对所述探测报文的接收时间戳以及对所述探测报文的发送时间戳;根据所述网卡设备的对所述探测报文的接收时间戳以及发送时间戳,确定所述网卡设备以及所述对端设备所在网络链路上的处理时延。
12.本技术实施例还提供一种电子设备,包括:存储器和处理器;所述存储器用于存储一条或多条计算机指令;所述处理器用于执行所述一条或多条计算机指令以用于:执行本技术实施例提供的方法中的步骤。
13.本技术实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被处理器执行时能够实现本技术实施例提供的方法中的步骤。
14.本技术实施例提供的网络探测方法中,操作系统的内核中注入有数据包过滤器。通过操作系统与对端设备进行探测报文的收发操作时,探测工具可利用数据包过滤器,获取内核对该探测报文处理时间戳,并根据该处理时间戳,确定探测报文的处理时延,其中,探测报文的处理时延包括内核的处理时延。从而,实现了对内核的时延信息的准确、有效探测,有利于对操作系统的调度时延、异常中断等进行分析。
附图说明
15.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
16.图1为本技术一示例性实施例提供的网络探测方法的流程示意图;
17.图2为本技术一示例性实施例提供的内核协议栈的报文处理流程示意图;
18.图3为本技术一示例性实施例提供的时间序列的示意图;
19.图4为本技术另一示例性实施例提供的网络探测方法的示意图;
20.图5为本技术一示例性实施例提供的电子设备的结构示意图。
具体实施方式
21.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
22.在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
23.应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
24.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
25.针对现有技术中的网络探测方法,无法探测出内核协议栈上的时延的技术问题,在本技术一些实施例中,提供了一种解决方案,以下结合附图,详细说明本技术各实施例提供的技术方案。
26.图1是本技术一示例性实施例提供的网络探测方法的流程示意图,该方法可包括如图1所示的步骤:
27.步骤101、将数据包过滤器注入操作系统的内核。
28.步骤102、通过该操作系统与对端设备进行探测报文的收发操作。
29.步骤103、利用该数据包过滤器,获取该内核对该探测报文处理时间戳。
30.步骤104、根据该处理时间戳,确定该探测报文的处理时延;该探测报文的处理时延包括:该内核的处理时延。
31.本实施例的执行主体可以是电子设备,该电子设备可以是网络通信环节中的任一设备。例如,该电子设备可以是网络通信环节中的计算机、智能手机、网关设备等等,本实施例不做限制。其中,该电子设备上运行一操作系统,该操作系统的内核可为操作系统提供驱动、内存管理、网络、i/o(input/output,输入/输出)等功能的相关代码。
32.其中,电子设备上可运行用于进行网络探测的探测工具。该探测工具可实现为运行在电子设备的操作系统中的应用程序或者插件等。探测工具可提供一数据包过滤器,该数据包过滤器,可通过代码注入的方式,向操作系统内核注入安全的字节码,以实现对内核进行控制。一些实施例中,该数据包过滤器可实现为扩展的伯克利数据包过滤器(extended berkeley packet filter,ebpf)。其中,代码注入是一种向目标进程插入独立运行代码并使之运行的技术。
33.数据包过滤器被注入操作系统的内核后,可根据预设的处理逻辑,识别内核处理的报文,追踪报文的处理过程,并对报文的处理时间进行记录。获取报文的处理时间后,数据包过滤器可将记录结果返回至探测工具,以使探测工具进行时延分析。
34.其中,探测工具可利用操作系统与对端设备之间进行探测报文的收发操作。操作系统在进行报文收发操作时,探测工具可利用数据包过滤器记录内核对探测报文的处理时间戳。根据记录的处理时间戳,探测工具可确定探测报文的处理时延。其中,该探测报文的处理时延,可包括:探测报文在内核的处理时延。除内核处理时延之外,还可根据探测报文的处理时间戳,确定探测报文在网络链路中的探测时延以及探测报文在内核协议栈每一层的处理时延。
35.其中,内核对报文的处理时间戳,可通过内核中用户处理报文的各个函数的处理时间确定,具体将在后续实施例中进行介绍,此处不赘述。
36.在这种实施方式中,操作系统的内核中注入有数据包过滤器。通过操作系统与对端设备进行探测报文的收发操作时,探测工具可利用数据包过滤器,获取内核对该探测报文处理时间戳,并根据该处理时间戳,确定探测报文的处理时延,其中,探测报文的处理时
延包括内核的处理时延。从而,实现了对内核的时延信息的准确、有效探测,有利于对操作系统的调度时延、异常中断等进行分析。
37.在一些示例性的实施例中,探测工具通过操作系统发送给对端设备的探测报文包括:端口标识和/或序列号标识。该端口标识和/或序列号标识,用于对探测报文进行标记,以使得数据包过滤器在内核中识别并追踪该探测报文。
38.其中,探测报文可根据电子设备与对端设备之间采用的通信协议构造得到。例如,电子设备与对端设备之间采用tcp/ip(transmission control protocol/internet protocol,传输控制协议/网际协议)协议进行通信时,可构造tcp报文作为探测报文,并在tcp报文中指定端口号以及序列号等。
39.相应地,探测工具在利用数据包过滤器,获取内核对该探测报文处理时间戳时,可利用该数据包过滤器,根据该端口标识和/或序列号标识,识别该探测报文,并在该内核中的目标处理函数处理该探测报文时,记录该目标处理函数的处理时间戳。
40.其中,目标处理函数,是指内核中用于处理探测报文的一个或者多个函数。内核中可包括至少一个发送函数和/或至少一个接收函数。该目标处理函数,可以是该至少一个发送函数和/或至少一个接收函数中的一个或者多个,具体可根据探测需求确定,本实施例不做限制。
41.值得说明的是,在一些可选的实施例中,该目标处理函数,可根据探测需求动态配置得到。其中,动态配置是指,在不同的探测需求下,动态地对数据包过滤器所需在内核中跟踪的函数进行配置,以在不同的探测场景下实现对内核的探测需求。
42.其中,该目标处理函数可通过配置文件进行配置。测试人员可根据探测目标,将内核中所需探测的目标处理函数的函数标识添加至配置文件,并将配置文件保存在指定路径。该指定路径可以是操作系统本地的存储路径,也可以是远端服务器上的存储路径,本实施例不做限制。
43.探测工具可利用数据包过滤器读取配置文件,并从该配置文件中读取该目标处理函数的函数标识。从而,在后续的探测过程中,数据包过滤器可通过目标处理函数的函数标识,识别目标处理函数,并追踪目标处理函数在内核上的流转过程。
44.在一些实施例中,数据包过滤器读取配置文件的操作,可由用户触发。例如,用户可通过探测工具向数据包过滤器发送读取配置文件的指令。在另一些实施例中,数据包过滤器读取配置文件的操作,可以是按照固定周期执行的。例如,数据包过滤器可每30分钟读取一次配置文件。在又一些实施例中,数据包过滤器读取配置文件的操作,可以是在每次执行探测操作之前执行的,不再赘述。
45.在这种实施方式中,可通过配置文件,定制数据包过滤器的探测目标,从而可实现更加灵活、便捷的内核时延探测。
46.在一些实施例中,探测工具在通过操作系统与对端设备进行探测报文的收发操作时,可通过操作系统向对端设备发送探测请求报文。
47.相应地,探测工具可利用数据包过滤器,在该至少一个报文发送函数发送探测请求报文时,记录该至少一个报文发送函数各自的发送时间戳。
48.在另一些实施例中,探测工具在通过操作系统与对端设备进行探测报文的收发操作时,可通过操作系统接收对端设备返回的探测回复报文。
49.相应地,探测工具可利用数据包过滤器,在该至少一个报文接收函数接收探测回复报文时,记录该至少一个报文接收函数各自的接收时间戳。
50.在又一些实施例中,探测工具在通过操作系统与对端设备进行探测报文的收发操作时,可通过操作系统向对端设备发送探测请求报文,并通过操作系统接收对端设备返回的探测回复报文。
51.相应地,探测工具可利用数据包过滤器,在该至少一个报文发送函数发送探测请求报文时,记录该至少一个报文发送函数各自的发送时间戳,并可利用数据包过滤器,在该至少一个报文接收函数接收探测回复报文时,记录该至少一个报文接收函数各自的接收时间戳。
52.可选地,在上述实施例中,发送时间戳以及接收时间戳,可以是对应处理函数的入口时间;或者,该发送时间戳以及接收时间戳,可以是对应处理函数的出口(即结束调用)的时间戳,本实施例不做限制。基于上述实施例获取该至少一个发送函数的各自的发送时间戳和/或该至少一个接收函数各自的接收时间戳后,探测工具可进行时延信息的分析。以下将结合不同的探测场景进行示例性说明。
53.在一些示例性的实施例中,探测工具在根据该处理时间戳,确定该报文的处理时延时,可根据该至少一个发送函数各自的发送时间戳,和/或,该至少一个接收函数各自的接收时间戳,确定该内核对应的处理时间序列。其中,该处理时间序列,可按照时间先后顺序进行排列。根据该时间序列中任意一组时间戳的差值,探测工具可确定该任意一组时间戳对应的报文处理环节的处理时延。其中,任意一组时间戳,可以是两个时间戳,或者两个以上的时间戳。
54.可选地,根据报文发送环节中的多个时间戳,可确定内核的发送时延。例如,可根据报文发送环节中的最末发送时间戳与首位发送时间戳之间的差值,确定内核的发送时延。
55.可选地,根据报文接收环节中的多个时间戳,可确定内核的接收时延。例如,可根据报文接收环节中的最末接收时间戳与首位接收时间戳之间的差值,确定内核的接收时延。
56.可选地,根据报文发送环节中的多个时间戳以及报文接收环节中的多个时间戳,可确定报文的整个处理环节的处理时延以及报文在内核上的整体时延。例如,可根据报文接收环节中的最末接收时间戳与报文发送环节中的首位发送时间戳之间的差值,确定报文的整体处理时延。根据报文接收环节中的首位接收时间戳与报文发送环节中的最末发送时间戳之间的差值,可确定报文在网络上链路上的处理时延。计算报文的整体处理时延与网络链路上的处理时延的差值,即可得到报文在内核上的整体时延。
57.如图2所示,操作系统的内核协议栈包括:发送函数1、发送函数2、接收函数1以及接收函数2。探测工具发送探测请求报文时,内核中的数据包过滤器可记录发送函数1的处理时间戳t1以及发送函数2的处理时间戳t2。探测请求报文经由操作系统搭载的网卡设备发送至对端设备。对端设备可通过网卡设备返回探测回复报文。网卡设备通过操作系统将探测回复报文发送至探测工具时,内核中的数据包过滤器可以此记录接收函数2的处理时间戳t3以及接收函数4的处理时间戳t4。t1、t2、t3、t4可形成处理时间序列。基于处理时间序列探测工具可确定内核中各个报文处理环节的处理时延。
58.如图3所示,探测工具向对端设备发送n个探测报文时,针对任一探测报文,内核中的处理阶段1的时延可根据t2与t1的差值确定;处理阶段2的时延可根据t3与t2的差值确定;处理阶段3的时延可根据t4与t3的差值确定。内核整体的处理时延,可根据处理阶段1以及处理阶段3的时延确定。即,计算t2与t1的差值与t4与t3的差值之和,可确定内核整体的处理时延。
59.在这种实施方式中,根据发送函数和/或接收函数的处理时间戳形成的时间序列,可较为灵活、准确地探测出内核中不同环节的时延信息。
60.在一些示例性的实施例中,探测工具可基于数据包过滤器,对操作系统的内核实现函数级别的时延探测。以下将进行示例性说明。
61.可选地,数据包过滤器在记录任一处理函数的处理时间戳时,可记录该处理函数的入口时间戳以及结束调用的时间戳。其中,入口时间戳用于标记该处理函数开始执行的时刻,结束调用的时间戳,用于标记该函数结束执行的时刻。
62.基于此,探测工具在基于处理时间戳进行内核时延信息的分析时,可根据该处理函数的入口时间戳以及结束调用时间戳,确定该处理函数的处理时延。
63.例如,以图2中示意的发送函数1为例,在发送函数1执行探测请求报文的发送操作时,数据包过滤器可记录发送函数1的入口时间戳t11以及发送函数1的结束调用的时间戳t12。探测工具可基于t12与t11的时间差,确定发送函数1的执行时间,并基于该执行时间确定发送函数1的时延。
64.在这种实施方式中,通过对任一处理函数的入口时间戳以及结束调用的时间戳进行记录,实现了函数级别的时延探测,进一步缩小了内核时延探测的粒度。
65.在一些示例性的实施例中,探测工具可基于数据包过滤器,可对内核实现协议层级别的时延探测。以下将以tcp/ip协议为例进行示例性说明。
66.其中,tcp/ip协议的网络模型的协议栈包含四层协议层,分别是:数据链路层、网络层、传输层以及应用层。其中,数据链路层用于实现网卡接口的网络驱动程序,以处理数据在物理媒介上的传输。网络层,负责分组交换网上的不同主机提供通信服务,以实现数据包的选路和转发。传输层,负责向两台主机上的应用程序提供端到端的数据传输服务。应用层,用于定义应用进程之间的通信和交互的规则。探测工具通过操作系统发送探测请求报文时,探测请求报文以此经过应用层、传输层、网络层以及数据链路层到达网卡设备,并由网卡设备将探测请求报文发送至对端设备。
67.在一些实施例中,目标处理函数包括:任一个或者多个协议栈的入口函数以及出口函数。例如,在一些实施例中,在探测请求报文在上述各协议层传输的过程中,数据包过滤器可依次记录每个协议层中的入口函数的入口时间戳以及出口函数的结束调用时间戳。
68.探测工具在根据处理时间戳,确定该内核的处理时延时,可从目标处理函数中,确定该内核中的任一协议层的入口函数以及出口函数,并根据该入口函数的入口时间戳以及该出口函数的结束调用时间戳,确定该协议层的处理时延。
69.例如,以数据链路层为例,探测工具可从目标处理函数中,确定数据链路层的入口函数的入口时间戳以及出口函数的结束调用的时间戳,确定数据链路层的时延信息。
70.在另一些实施例中,可通过对数据包过滤器的配置文件进行配置,使得数据包过滤器关注任一层或者多层协议层的入口函数以及出口函数。例如,可在配置文件中,配置网
络层的入口函数以及出口函数的函数标识,以指示数据包过滤器对网络层的入口函数以及出口函数进行时间戳记录。探测请求报文在经过网络层时,数据包过滤器可记录网络层的入口函数的入口时间,以及网络层的出口函数的处理时间。探测工具可根据该入口函数的入口时间戳以及该出口函数的结束调用时间戳,确定网络层的处理时延。基于这种实施方式,可定向对某一个或者多个协议层的处理时间进行记录,进一步提升探测效率。
71.在本实施例中,基于任一协议层的入口函数的入口时间戳以及出口函数的结束调用的时间戳,可对协议层的时延进行分析,即实现了协议层级别的时延探测,进一步缩小了内核时延探测的粒度。
72.在一些示例性的实施例中,除了可对内核上实现时延探测之外,本技术实施例提供的探测工具还可实现链路级别的时延探测。以下将进行示例性说明。
73.可选地,探测工具可利用数据包过滤器,获取操作系统搭载的网卡设备对该探测报文的接收时间戳以及对该探测报文的发送时间戳;根据该网卡设备的对该探测报文的接收时间戳以及发送时间戳,确定该网卡设备以及该对端设备所在网络链路上的处理时延。
74.其中,网卡设备对该探测报文的接收时间戳,可通过内核中的末位的发送函数的结束调用时间戳确定。网卡设备对探测报文的发送时间戳,可通过内核中的首位接收函数的入口时间戳确定。例如,结合图2,可根据发送函数2的出口时间戳t22,确定网卡设备对该探测报文的接收时间戳;可根据接收函数1的入口时间戳t31,确定网卡设备对探测报文对应的探测回复报文的发送时间戳。基于t31以及t22之间的时间差,可确定网卡设备以及对端设备所在网络链路上的处理时延。
75.在一些可选的实施例中,可将数据包过滤器注入到网卡设备中,以获取网卡设备中的接收函数对探测请求报文的接收时间戳以及发送函数对探测回复报文的发送时间戳,不再赘述。
76.在这种实施方式中,通过在内核注入数据包过滤器的方式,可在实现内核时延信息探测的同时,实现对网络链路上的其他设备的时延信息的探测,有利于进一步进行时延原因的分析。
77.以下将结合图4,对本技术的上述各实施例进行进一步示例性说明。
78.如图4所示,开始探测后,可首先对操作系统注入数据包过滤器(即ebpf字节码程序),以对操作系内核协议上相关的报文接收和发送函数做追踪。
79.接下来,可构造tcp探测报文,并在探测报文中指定报文端口以及序列号等信息。在数据包过滤器中,可通过对报文端口和序列号识别构造的探测报文,并对该探测报文的目标处理函数进行追踪。
80.在一些场景中,由于tcp报文在本端与对端之间建立连接有复杂的交互逻辑及状态处理,因此,探测工具可发送tcp的syn(synchronize sequence numbers,同步序列编号)报文作为探测报文,以降低探测操作的复杂度。当对端设备收到探测的tcp的syn报文后,可主动回复tcp ack(ack报文:接收到发送端报文时向发送端回复的一个接收确认报文,用于告知发送端已接收)或者tcp rst(rst报文用于关闭异常的连接)报文,以完成一次完整的探测事件。
81.当目标处理函数在处理构造的tcp报文时,数据包过滤器可记录函数的执行时间作为报文在内核协议上传送的打点时间,如图2所示。对每个报文的打点时间,按时间序列
维度做统计,可得到如图3所示的时间序列。通过对各个打点时间做差处理,可确定报文收发路径上的各点时延。
82.其中,若需要对报文在网络链路及对端处理消耗的时间进行探测时,可进一步获取网卡设备的收发/接收函数的执行时间。同理。若需要对报文在内核的协议栈各层的处理时延时间进行探测时,可获取各协议层层的函数出入口的执行时间作为打点时间,具体可参考前述实施例的记载,此处不赘述。
83.需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤101至步骤104的执行主体可以为设备a;又比如,步骤101和102的执行主体可以为设备a,步骤103的执行主体可以为设备b;等等。
84.另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
85.图5示意了本技术一示例性实施例提供的电子设备的结构示意图,该电子设备适用于前述实施例提供的探测方法。如图5所示,该电子设备包括:存储器501、处理器502以及通信组件503。
86.存储器501,用于存储计算机程序,并可被配置为存储其它各种数据以支持在电子设备上的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令。
87.处理器502,与存储器501耦合,用于执行存储器501中的计算机程序,以用于:将数据包过滤器注入操作系统的内核;通过所述操作系统与对端设备进行探测报文的收发操作;利用所述数据包过滤器,获取所述内核对所述探测报文处理时间戳;根据所述处理时间戳,确定所述探测报文的处理时延;所述探测报文的处理时延包括:所述内核的处理时延。
88.可选地,所述探测报文包括:端口标识和/或序列号标识;可选地,处理器502在利用所述数据包过滤器,获取所述内核对所述探测报文处理时间戳时,具体用于:利用所述数据包过滤器,根据所述端口标识和/或序列号标识,识别所述探测报文;在所述内核中的目标处理函数处理所述探测报文时,记录所述目标处理函数的处理时间戳。
89.可选地,处理器502还用于:利用所述数据包过滤器读取配置文件,并从所述配置文件中读取所述目标处理函数的函数标识;所述配置文件根据探测目标动态配置得到。
90.可选地,所述目标处理函数,包括:用于向所述对端设备发送探测请求报文的至少一个发送函数;和/或,用于接收所述对端设备发送探测回复报文的至少一个接收函数;处理器502在所述内核中的目标处理函数处理所述探测报文时,记录所述目标处理函数的处理时间戳时,具体用于:利用所述数据包过滤器,在所述至少一个报文发送函数发送探测请求报文时,记录所述至少一个报文发送函数各自的发送时间戳;和/或,在所述至少一个报文接收函数接收探测回复报文时,记录所述至少一个报文接收函数各自的接收时间戳。
91.可选地,处理器502在根据所述处理时间戳,确定所述探测报文的处理时延时,具体用于:根据所述至少一个发送函数各自的发送时间戳,和/或,所述至少一个接收函数各
自的接收时间戳,确定所述内核对应的处理时间序列;根据所述时间序列中任意一组时间戳的差值,确定所述任意一组时间戳对应的报文处理环节的处理时延。
92.可选地,所述目标处理函数中,任一处理函数的处理时间戳,包括:所述处理函数的入口时间戳以及结束调用时间戳;处理器502在根据所述处理时间戳,确定所述探测报文的处理时延时,具体用于:根据所述处理函数的入口时间戳以及结束调用时间戳,确定所述处理函数的处理时延。
93.可选地,处理器502在根据所述处理时间戳,确定所述探测报文的处理时延时,具体用于:从所述目标处理函数中,确定所述内核中的任一协议层的入口函数以及出口函数;处理器502在根据所述入口函数的入口时间戳以及所述出口函数的结束调用时间戳,确定所述协议层的处理时延。
94.可选地,处理器502在还用于:利用所述数据包过滤器,获取所述操作系统搭载的网卡设备对所述探测报文的接收时间戳以及对所述探测报文的发送时间戳;根据所述网卡设备的对所述探测报文的接收时间戳以及发送时间戳,确定所述网卡设备以及所述对端设备所在网络链路上的处理时延。
95.进一步,如图5所示,该电子设备还包括:电源组件504等其它组件。图5中仅示意性给出部分组件,并不意味着电子设备只包括图5所示组件。
96.其中,存储器501可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
97.其中,通信组件503被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如wifi,2g、3g、4g或5g,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件可基于近场通信(nfc)技术、射频识别(rfid)技术、红外数据协会(irda)技术、超宽带(uwb)技术、蓝牙(bt)技术和其他技术来实现。
98.其中,电源组件504,用于为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
99.本实施例中,操作系统的内核中注入有数据包过滤器。通过操作系统与对端设备进行探测报文的收发操作时,探测工具可利用数据包过滤器,获取内核对该探测报文处理时间戳,并根据该处理时间戳,确定探测报文的处理时延,其中,探测报文的处理时延包括内核的处理时延。从而,实现了对内核的时延信息的准确、有效探测,有利于对操作系统的调度时延、异常中断等进行分析。
100.相应地,本技术实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由电子设备执行的各步骤。
101.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机
可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
102.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
103.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
104.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
105.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
106.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
107.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
108.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
109.以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1