计算累计网络延时的方法、网络设备及计算机存储介质与流程

文档序号:15979250发布日期:2018-11-17 00:07阅读:283来源:国知局

本发明涉及电信技术领域,尤其是涉及计算累计网络延时的方法、网络设备及计算机存储介质。

背景技术

在数据传输网络中,为了解网络传输性能,通常需要测试网络延时。

在测试网络延时时通常是向网络中发送报文,利用报文计算报文在每台网络设备上所耗费的时间,从而计算出网络中不同传输路径的网络延时。

在现有技术中,计算报文在流经一台网络设备a后的累加网络延时是将报文进入网络设备a之前的累加时间加上报文进出网络设备a的时间差,得到的网络延时。

然而,由于网络设备(如交换机)接收到报文后通常是按报文的优先级转发出去的,使得网络设备很难对单个具体报文进出网络设备的时间点进行精确计算。例如,交换机是按报文1、报文2、报文3的顺序接收到的上述3个报文,假设报文1是用于测试网络延时的报文,若上述3个报文的优先级依次为2、3、1(假设优先级1代表最高优先级),如果交换机在转发报文时是按照优先级2、3、1的顺序进行转发的,使得上述3个报文将按报文3、报文1、报文2的顺序发送出去,而交换机在发送上述3个报文时记录的发送时间却仍然是按照报文1、报文2、报文3的顺序进行记录的,而非按照报文3、报文1、报文2的顺序记录发送时间,从而造成计算出的报文1在交换机上消耗的时长小于实际消耗时长,导致测试出的累计网络延时并不准确。

鉴于此,如何准确的计算累计网络延时成为一个亟待解决的技术问题。



技术实现要素:

本发明提供计算累计网络延时的方法、网络设备及计算机存储介质,用以解决现有技术中存在的累计网络延时不够准确的技术问题。

第一方面,为解决上述技术问题,本发明实施例提供的计算累计网络延时方法,应用于网络设备,该方法的技术方案如下:

在接收测试报文时,将所述测试报文中的网络累计延时与所述网络设备接收所述测试报文的接收时间按第一规则进行运算,获得运算结果;并将所述运算结果写入所述测试报文中存储所述网络累计延时的存储位置;

在发送所述测试报文时,从所述存储位置中提取所述运算结果,并获取发送时间;

基于所述运算结果及发送所述测试报文的发送时间,按照第二规则计算所述测试报文在离开所述网络设备时的最新网络累计延时,并将所述最新网络累计延时写入所述存储位置。

通过让网络设备在接收测试报文时,将测试报文中的网络累计延时与网络设备接收测试报文的接收时间按第一规则进行运算,获得的运算结果写入测试报文中存储网络累计延时的存储位置;当网络设备在发送测试报文时,再从测试报文中存储网络累计延时的存储位置提取运算结果,并获取发送测试报文的发送时间,然后基于运算结果及发送测试报文的发送时间,按照第二规则计算测试报文在离开网络设备时的最新网络累计延时,并写入存储位置。这样即使测试报文在网络设备内部流转的过程中调整了发送顺序,也能准确计算测试报文在离开网络设备时的最新网络累计延时。

结合第一方面,在第一方面的第一种可能的实施方式中,将所述测试报文中的网络累计延时与所述网络设备接收所述测试报文的接收时间按第一规则进行运算,包括:

在接收到所述测试报文的第一个bit位数据时,采集所述网络设备的计数器的数据位中的第一当前数据及所述计数器的翻转标志位的第一当前值,并从所述测试报文中获取所述网络累计延时;

按照所述第一规则对所述第一当前数据及所述网络累计延时进行差运算,获得所述运算结果;其中,所述计数器在所述网络设备上电时开始循环计数,每当计数到最大值时所述翻转标志位的值取反,且所述计数器从0开始重新计数。

通过将接收到的测试报文的第一个bit位数据的接收时间作为测试报文的接收数据时间能够提高计算网络设备的延时时长的准确度,并且采用计数器中的数据作为时间标准能够使本发明的方法得到广泛的应用。

结合第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,所述第一规则,具体为:

若所述第一当前数据不小于所述网络累计延时,计算所述第一当前数据与所述网络累计延时的第一差值;

若所述第一当前数据小于所述网络累计延时,计算所述网络累计延时与所述第一当前数据的第二差值;

记录所述第一当前数据与所述网络累计延时的大小关系;

将所述第一差值或第二差值,以及所述大小关系和所述第一当前值作为所述运算结果。

结合第一方面至第一方面的第二种可能的实施方式中的任一种,在第一方面的第三种可能的实施方式中,获取发送时间,包括:

在发送所述测试报文时,采集所述计数器的数据位中的第二当前数据及所述翻转标志位的第二当前值,获得所述发送时间。

结合第一方面的第三种可能的实施方式,在第一方面的第四种可能的实施方式中,按照第二规则计算所述测试报文在离开所述网络设备时的最新网络累计延时,包括:

基于所述第一当前值及所述第二当前值,判断所述接收时间数据与所述发送时间数据是否在所述计数器的同一计数周期内,获得判断结果;

基于所述判断结果及所述大小关系,按所述第二规则,对所述运算结果及所述第二当前数据进行计算,获得所述最新网络累计延时。

结合第一方面的第四种可能的实施方式,在第一方面的第五种可能的实施方式中,所述第二规则,具体为:

若所述判断结果为所述接收时间与发送时间在相同的计数周期,且所述大小关系为所述第一当前数据不小于所述网络累计延时,则所述最新网络累计延时为所述第二当前数据与所述第一差值的第三差值;

若所述判断结果为所述接收时间与所述发送时间在不同的计数周期,且所述大小关系为所述第一当前数据不小于所述网络累计延时,则所述最新网络累计延时为所述第三差值与2n之和;其中,n为所述计数器的数据位的总的bit数;其中,所述第三差值为所述第二当前数据与所述第一差值之差;

若所述判断结果为所述接收时间与所述发送时间在相同的计数周期,且所述大小关系为所述第一当前数据小于所述网络累计延时,则所述最新网络累计延时为第二当前数据与所述第二差值的和值;

若所述判断结果为所述接收时间与所述发送时间在不同的计数周期,且所述大小关系为所述第一当前数据小于所述网络累计延时,则所述最新网络累计延时为第二当前数据与所述第二差值以及2n三者之和。

第二方面,本发明实施例提供了用于计算累计网络延时的网络设备,包括:

接收单元,用于接收测试报文,在接收测试报文时,将所述测试报文中的网络累计延时与所述网络设备接收所述测试报文的接收时间按第一规则进行运算,获得运算结果;并将所述运算结果写入所述测试报文中存储所述网络累计延时的存储位置;

发送单元,用于在发送所述测试报文时,从所述存储位置中提取所述运算结果,并获取发送时间;基于所述运算结果及发送所述测试报文的发送时间,按照第二规则计算所述测试报文在离开所述网络设备时的最新网络累计延时,并将所述最新网络累计延时写入所述存储位置。

可选的,所述接收单元用于:

在接收到所述测试报文的第一个bit位数据时,采集所述网络设备的计数器的数据位中的第一当前数据及所述计数器的翻转标志位的第一当前值,并从所述测试报文中获取所述网络累计延时;

按照所述第一规则对所述第一当前数据及所述网络累计延时进行差运算,获得所述运算结果;其中,所述计数器在所述网络设备上电时开始循环计数,每当计数到最大值时所述翻转标志位的值取反,且所述计数器从0开始重新计数。

可选的,所述第一规则,具体为:

若所述第一当前数据不小于所述网络累计延时,计算所述第一当前数据与所述网络累计延时的第一差值;

若所述第一当前数据小于所述网络累计延时,计算所述网络累计延时与所述第一当前数据的第二差值;

记录所述第一当前数据与所述网络累计延时的大小关系;

将所述第一差值或第二差值,以及所述大小关系和所述第一当前值作为所述运算结果。

可选的,所述发送单元具体用于:

在发送所述测试报文时,采集所述计数器的数据位中的第二当前数据及所述翻转标志位的第二当前值,获得所述发送时间。

可选的,所述发送单元还用于:

基于所述第一当前值及所述第二当前值,判断所述接收时间数据与所述发送时间数据是否在所述计数器的同一计数周期内,获得判断结果;

基于所述判断结果及所述大小关系,按所述第二规则,对所述运算结果及所述第二当前数据进行计算,获得所述最新网络累计延时。

可选的,所述第二规则,具体为:

若所述判断结果为所述接收时间与发送时间在相同的计数周期,且所述大小关系为所述第一当前数据不小于所述网络累计延时,则所述最新网络累计延时为所述第二当前数据与所述第一差值的第三差值;

若所述判断结果为所述接收时间与所述发送时间在不同的计数周期,且所述大小关系为所述第一当前数据不小于所述网络累计延时,则所述最新网络累计延时为所述第三差值与2n之和;其中,n为所述计数器的数据位的总的bit数;其中,所述第三差值为所述第二当前数据与所述第一差值之差;

若所述判断结果为所述接收时间与所述发送时间在相同的计数周期,且所述大小关系为所述第一当前数据小于所述网络累计延时,则所述最新网络累计延时为第二当前数据与所述第二差值的和值;

若所述判断结果为所述接收时间与所述发送时间在不同的计数周期,且所述大小关系为所述第一当前数据小于所述网络累计延时,则所述最新网络累计延时为第二当前数据与所述第二差值以及2n三者之和。

第三方面,本发明实施例还提供用于计算累计网络延时的网络设备,包括:

至少一个处理器,以及

与所述至少一个处理器连接的存储器;

其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,执行如上述第一方面所述的方法。

第四方面,本发明实施例还提供一种计算机可读存储介质,包括:

所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如上述第一方面所述的方法。

通过本发明实施例的上述一个或多个实施例中的技术方案,本发明实施例至少具有如下技术效果:

在本发明提供的实施例中,通过让网络设备在接收测试报文时,将测试报文中的网络累计延时与网络设备接收测试报文的接收时间按第一规则进行运算,获得的运算结果写入测试报文中存储网络累计延时的存储位置;当网络设备在发送测试报文时,再从测试报文中存储网络累计延时的存储位置提取运算结果,并获取发送测试报文的发送时间,然后基于运算结果及发送测试报文的发送时间,按照第二规则计算测试报文在离开网络设备时的最新网络累计延时,并写入存储位置。这样即使测试报文在网络设备内部流转的过程中调整了发送顺序,也能准确计算测试报文在离开网络设备时的最新网络累计延时。

附图说明

图1为本发明实施例提供的计算累计网络延时的流程图;

图2为本发明实施例提供的计数器的数据位结构示意图;

图3为本发明实施例提供的测试报文的数据帧结构的示意图;

图4为本发明实施例提供的一种网络设备的结构示意图。

具体实施方式

本发明实施列提供计算累计网络延时的方法、网络设备及计算机存储介质,以解决现有技术中存在的累计网络延时不够准确的技术问题。

本申请实施例中的技术方案为解决上述的技术问题,总体思路如下:

提供计算累计网络延时的方法,包括:在接收测试报文时,将测试报文中的网络累计延时与网络设备接收测试报文的接收时间按第一规则进行运算,获得运算结果;并将运算结果写入测试报文中存储网络累计延时的存储位置;在发送测试报文时,从存储位置中提取运算结果,并获取发送时间;基于运算结果及发送测试报文的发送时间,按照第二规则计算测试报文在离开网络设备时的最新网络累计延时,并写入存储位置以替换网络累计延时。

由于在上述方案中,通过让网络设备在接收测试报文时,将测试报文中的网络累计延时与网络设备接收测试报文的接收时间按第一规则进行运算,获得的运算结果写入测试报文中存储网络累计延时的存储位置;当网络设备在发送测试报文时,再从测试报文中存储网络累计延时的存储位置提取运算结果,并获取发送测试报文的发送时间,然后基于运算结果及发送测试报文的发送时间,按照第二规则计算测试报文在离开网络设备时的最新网络累计延时,并写入存储位置。这样即使测试报文在网络设备内部流转的过程中调整了发送顺序,也能准确计算测试报文在离开网络设备时的最新网络累计延时。

为了更好的理解上述技术方案,下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本发明实施例以及实施例中的具体特征是对本发明技术方案的详细的说明,而不是对本发明技术方案的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互组合。

请参考图1,本发明实施例提供计算累计网络延时的方法,应用于网络设备,该方法的处理过程如下。

步骤101;在接收测试报文时,将测试报文中的网络累计延时与网络设备接收测试报文的接收时间按第一规则进行运算,获得运算结果;并将运算结果写入测试报文中存储网络累计延时的存储位置。

其中,网络设备例如可以为交换机、路由器、服务器等。

具体的,将网络设备接收测试报文的测试报文中的网络累计延时与接收时间按第一规则进行运算,可以是在接收到测试报文的第一个bit位数据时,采集网络设备的计数器的数据位中的第一当前数据及计数器的翻转标志位的第一当前值,并从测试报文中获取网络累计延时;之后,按照第一规则对第一当前数据及网络累计延时进行差运算,获得运算结果;其中,计数器在网络设备上电时开始循环计数,每当计数到最大值时翻转标志位的值取反,且计数器从0开始重新计数。

其中,第一规则为:

若第一当前数据不小于网络累计延时,计算第一当前数据与网络累计延时的第一差值;若第一当前数据小于网络累计延时,计算网络累计延时与第一当前数据的第二差值;记录第一当前数据与网络累计延时的大小关系;并将第一差值或第二差值,以及大小关系和第一当前值作为运算结果。

例如,在网络设备中设置一有25个bit位的计数器(请参见图2),其中计数器的前24个bit位为计数器的计数的数据位,第25个bit位为计数器的翻转标志位(即计数器的前24位计数计满之后,翻转标志的值取反,使计数器重新开始计数,如此循环往复)。

又如,假设计数器在刚上电时,25个bit位里的二进制数据均为0,计数器从0开始计数。当计数到ffffffh(f代表对应的4个bit位的值均为1,h代表16进制)时,再计一次数,数据位会置0,翻反转标志位会置1。接着计数器继续进行加1计数,当数据位中的数据再次变为fffffh时,再进行一次计数,数据位再次置0、翻转标志位置0。

需要说明的是,通常测试报文的接收时间与发送时间之和不应大于2个完整的计数周期对应的时间。

当网络设备接收到测试报文的第一个bit位数据时,假设采集到的计数器的数据位中的第一当前数据为16,采集到的计数器的翻转标志位的第一当前值为1。

若从测试报文中获取到的网络累计延时为20,则根据第一规则判断第一当前数据16小于网络累计延时20,计算网络累计延时20与第一当前数据16的差值为第二差值4,记录第一当前数据16与网络累计延时20的大小关系为小于(例如可以用0标识),然后将第二差值4、大小关系0和第一当前值1作为运算结果写入测试报文中网络累计延时的存储位置(假设为art)。

若从测试报文中获取到的网络累计延时为5,则根据第一规则判断第一当前数据16不小于网络累计延时5,计算第一当前数据16与网络累计延时5的差值为第一差值11,记录第一当前数据16与网络累计延时5的大小关系为不小于(例如可以用1标识),然后将第一差值11、大小关系1和第一当前值1作为运算结果写入测试报文中网络累计延时的存储位置(假设为art)。

其中,为了便于按照第一规则进行计算时记录第一当前值、大小关系、第一差值或第二差值,可以在网络设备中设置存储第一当前值的第一寄存器、存放大小关系的第二寄存器,以及存放第一差值或第二差值的第三寄存器。

通过在接收到测试报文的第一个bit数据时,采集计数器的数据位中的计数值作为测试报文的接收时间,可以在网络设备中没有日历时钟芯片的情况下仍能对网络延时进行累计,从而既能减少网络设备的硬件成本,又能使本发明提供的方法适用范围更广,同时还能提高计算网络累计延时的精度。

请参见图3,为测试报文的帧结构图。

测试报文的帧结构可以包括目标地址、源地址、长度/类型、指定地址(即网络累计延时的存储位置)及数据等。

需要理解的是,图3所示的测试报文的帧结构只是一种示意性的举例,而非对测试报文帧结构的限定,只要测试报文中设置有存放网络累计延时的地址即可,在此不做限定。

需要说明的是,计数器都是按照固有时钟精度,如8ns进行计数的,即每隔8ns计一次数,计数器的固有时钟精度具体的可以选用网络设备中晶振的时钟周期,或晶振时钟周期的整数倍,具体选用多少不做限定。

在网络设备接收到测试报文,并将测试报文的中的网络累计延时与网络设备接收测试报文的接收时间按第一规则进行运算,得到的运算结果写入测试报文中存储网络累计延时的存储位置之后,测试报文与其它报文会按它们的接收顺序经网络设备中的fpga电路进入cpu,cpu会根据它们的优先级决定先处理哪个报文后处理哪个报文,并在处理完之后进行转发,具体的在网络设备转测试发报文时可执行步骤102-步骤103。

步骤102:在发送测试报文时,从存储位置中提取运算结果,并获取发送时间。

步骤103:基于运算结果及发送测试报文的发送时间,按照第二规则计算测试报文在离开网络设备时的最新网络累计延时,并将最新网络累计延时写入存储位置。

在发送测试报文时,不仅需要从测试报文中提取之前写入的累计网络延时与接收时间的运算结果,并且还需要获取发送时间。

具体的,获取发送时间是在发送测试报文时,采集此时计数器的数据位中的第二当前数据作为发送时间,并同时采集计数器的翻转标志位中的第二当前值。

例如,在将要发送测试报文时,计数器的数据位中计数值为2,翻转标志位为0,则采集到的第二当前数据为2(即发送时间为2),第二当前值为0。

具体的,按照第二规则计算测试报文在离开网络设备时的最新网络累计延时,可以先基于第一当前值及第二当前值,判断接收时间数据与发送时间数据是否在计数器的同一计数周期内,获得判断结果;然后再基于判断结果及大小关系,按第二规则,对运算结果及第二当前数据进行计算,获得最新网络累计延时。

例如,在获取到运算结果:第一当前值为1、第一当前数据为16(即接收时间)、大小关系为0,在按照第二规则计算测试报文在离开网络设备时的最新网络累计延时时,可以先判断第一当前值1与第二当前值0是否相等,来确定接收时间16与发送时间2是否在同一计数周期,显然第一当前值1与第二当前值0不相等,进而可以确定判断结果为接收时间16与发送时间2不在同一计数周期。反之,若第一当前值与第二当前值相等,则可以确定接收时间与发送时间在同一计数周期。为了方便计算可以假设接收时间与发送时间在同一计数周期判断结果被标识为1,不在同一计数周期判断结果被标识为0,并为此判断结果在网络设备中设置一寄存器,假设为第四寄存器。

在确定接收时间与发送时间是否在同一计数周期之后,便可根据判断结果0及大小关系0,按第二规则,对运算结果中的第一当前数据(即接收时间)及第二当前数据(即发送时间)进行计算,获得最新网络累计延时。

具体的,第二规则为:

若判断结果为接收时间与发送时间在相同的计数周期,且大小关系为第一当前数据不小于网络累计延时,则最新网络累计延时为第二当前数据与第一差值的第三差值;

若判断结果为接收时间与发送时间在不同的计数周期,且大小关系为第一当前数据不小于网络累计延时,则最新网络累计延时为第三差值与2n之和;其中,n为计数器的数据位的总的bit数;其中,第三差值为第二当前数据与第一差值之差;

若判断结果为接收时间与发送时间在相同的计数周期,且大小关系为第一当前数据小于网络累计延时,则最新网络累计延时为第二当前数据与第二差值的和值;

若判断结果为接收时间与发送时间在不同的计数周期,且大小关系为第一当前数据小于网络累计延时,则最新网络累计延时为第二当前数据与第二差值以及2n三者之和。

举例来说,第一种情况,若判断结果为1(即接收时间16与发送时间23在相同的计数周期),且大小关系为1(即接收时间16不小于累计网络延时12),则最新网络累计延时为第二当前数据(即发送时间23)与第一差值4之差19(即第三差值),用数学表达式可以表示为:最新网络累计延时=23-4=19。

第二种情况,若判断结果为0(即接收时间16与发送时间2在不同的计数周期),且大小关系为1(即接收时间16不小于累计网络延时12),则最新网络累计延时为第三差值与224之和,其中第三差值具体为第二当前数据(即发送时间2)与第一差值4之差为-2(即第三差值),用数学表达式可以表示为:最新网络累计延时=2-4+224=16777214。

第三种情况,若判断结果为1(即接收时间16与发送时间23在相同的计数周期),且大小关系为0(即接收时间16小于累计网络延时20),则最新网络累计延时为第二当前数据(即发送时间23)与第二差值4之和为27(即和值),用数学表达式可以表示为:最新网络累计延时=23+4=27。

第四种情况,若判断结果为0(即接收时间16与发送时间2在不同的计数周期),且大小关系为0(即接收时间16小于累计网络延时20),则最新网络累计延时为第二当前数据(即发送时间2)与第二差值4以及224之和为16777222,用数学表达式可以表示为:最新网络累计延时=2+4+224=16777222。

为了使本领域的技术人员能更清楚的理解上述方案,下面将举几个实际的例子进行说明。

实施例一、假设网络设备中没有日历时钟芯片、且接收时间数据与发送时间数据在不同的计数周期内。

在网络设备接收到测试报文的第一个bit数据时,采集计数器(假设数据位共24个bit位、翻转标志位为第25bit位)中的第一当前数据为20和第一当前值0,获得接收时间为20、翻转标志位为0,并从测试报文中获取网络累计延时2。然后,根据第一规则对判断接收时间20与网络累计延时2进行计算,获得运算结果,具体的是,在确定接收时间20不小于网络累计延时2时,第一差值=接收时间20-网络累计延时2=18,其中运算结果包括第一差值18、第一当前值0、翻转标志位0、接收时间20与网络累计延时2的大小关系1,将运算结果及写入测试报文中存储网络累计延时的存储位置。

在发送测试报文时,从存储位置中获取运算结果,并同时采集计数器的数据位中的第二当前数据1(即发送时间)及翻转标志位中的第二当前值1。然后按第二规则对运算结果中的16及发送时间1进行计算,获得测试报文离开网络设备时的最新网络累计延时。具体的是,根据第一当前值0和第二当前值1确定发送时间与接收时间不在相同的计数周期内,且接收时间20与网络累计延时2的大小关系1(即第一当前数据不小于网络累计延时),符合第二规则中的第二种情况,所以可以计算出最新网络累计延时为第二当前数据1与第一差值16之差加224。即最新网络累计延时=1-16+224=16777201,将最新网络累计延时16777201写入测试报文中原来存放网络累计延时的存储位置中后,网络设备将测试发根发送到下一个网络设备。

对于接收时间与网络累计延时的大小关系为接收时间小于网络累计延(大小关系被标记为0)的情况,可以按照第二规则中的第四种情况进行计算,在此不再赘述。

实施例二、假设网络设备中没有日历时钟芯片、且接收时间数据与发送时间数据在相同的计数周期内。

在网络设备接收到测试报文的第一个bit数据时,采集计数器(假设数据位共24个bit位、翻转标志位为第25bit位)中的第一当前数据为20和第一当前值0,获得接收时间为20、翻转标志位为0,并从测试报文中获取网络累计延时2。然后,根据第一规则对接收时间20与网络累计延时2进行计算,获得运算结果,具体的是,在确定接收时间20不小于网络累计延时2时,第一差值=接收时间20-网络累计延时2=18,其中运算结果包括第一差值18、第一当前值0、翻转标志位0、接收时间20与网络累计延时2的大小关系1,将运算结果及写入测试报文中存储网络累计延时的存储位置。

在发送测试报文时,从存储位置中获取运算结果,并同时采集计数器的数据位中的第二当前数据21(即发送时间)及翻转标志位中的第二当前值0。然后按第二规则对运算结果中的18及发送时间21进行计算,获得测试报文离开网络设备时的最新网络累计延时。具体的是,根据第一当前值0和第二当前值0确定发送时间与接收时间在相同的计数周期内,且接收时间20与网络累计延时2的大小关系1(即第一当前数据不小于网络累计延时),符合第二规则中的第一种情况,所以可以计算出最新网络累计延时为第二当前数据21与第一差值18之差。即最新网络累计延时=21-18=3,将最新网络累计延时3写入测试报文中原来存放网络累计延时的存储位置中后,网络设备将测试发根发送到下一个网络设备。

对于接收时间与网络累计延时的大小关系为接收时间小于网络累计延(大小关系被标记为0)的情况,可以按照第二规则中的第三种情况进行计算,在此不再赘述。

基于同一发明构思,本发明一实施例中提供用于计算测试网络设备延时的网络设备,该网络设备的测试网络设备延时方法的具体实施方式可参见方法实施例部分的描述,重复之处不再赘述,请参见图4,该网络设备包括:

接收单元401,用于接收测试报文,在接收测试报文时,将所述测试报文中的网络累计延时与所述网络设备接收所述测试报文的接收时间按第一规则进行运算,获得运算结果;并将所述运算结果写入所述测试报文中存储所述网络累计延时的存储位置;

发送单元402,用于在发送所述测试报文时,从所述存储位置中提取所述运算结果,并获取发送时间;基于所述运算结果及发送所述测试报文的发送时间,按照第二规则计算所述测试报文在离开所述网络设备时的最新网络累计延时,并将所述最新网络累计延时写入所述存储位置。

可选的,所述接收单元401用于:

在接收到所述测试报文的第一个bit位数据时,采集所述网络设备的计数器的数据位中的第一当前数据及所述计数器的翻转标志位的第一当前值,并从所述测试报文中获取所述网络累计延时;

按照所述第一规则对所述第一当前数据及所述网络累计延时进行差运算,获得所述运算结果;其中,所述计数器在所述网络设备上电时开始循环计数,每当计数到最大值时所述翻转标志位的值取反,且所述计数器从0开始重新计数。

可选的,所述第一规则,具体为:

若所述第一当前数据不小于所述网络累计延时,计算所述第一当前数据与所述网络累计延时的第一差值;

若所述第一当前数据小于所述网络累计延时,计算所述网络累计延时与所述第一当前数据的第二差值;

记录所述第一当前数据与所述网络累计延时的大小关系;

将所述第一差值或第二差值,以及所述大小关系和所述第一当前值作为所述运算结果。

可选的,所述发送单元402具体用于:

在发送所述测试报文时,采集所述计数器的数据位中的第二当前数据及所述翻转标志位的第二当前值,获得所述发送时间。

可选的,所述发送单元402还用于:

基于所述第一当前值及所述第二当前值,判断所述接收时间数据与所述发送时间数据是否在所述计数器的同一计数周期内,获得判断结果;

基于所述判断结果及所述大小关系,按所述第二规则,对所述运算结果及所述第二当前数据进行计算,获得所述最新网络累计延时。

可选的,所述第二规则,具体为:

若所述判断结果为所述接收时间与发送时间在相同的计数周期,且所述大小关系为所述第一当前数据不小于所述网络累计延时,则所述最新网络累计延时为所述第二当前数据与所述第一差值的第三差值;

若所述判断结果为所述接收时间与所述发送时间在不同的计数周期,且所述大小关系为所述第一当前数据不小于所述网络累计延时,则所述最新网络累计延时为所述第三差值与2n之和;其中,n为所述计数器的数据位的总的bit数;其中,所述第三差值为所述第二当前数据与所述第一差值之差;

若所述判断结果为所述接收时间与所述发送时间在相同的计数周期,且所述大小关系为所述第一当前数据小于所述网络累计延时,则所述最新网络累计延时为第二当前数据与所述第二差值的和值;

若所述判断结果为所述接收时间与所述发送时间在不同的计数周期,且所述大小关系为所述第一当前数据小于所述网络累计延时,则所述最新网络累计延时为第二当前数据与所述第二差值以及2n三者之和。

基于同一发明构思,本发明实施例中提供了一种用于测试网络设备延时的网络设备,包括:至少一个处理器,以及

与所述至少一个处理器连接的存储器;

其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令,执行如上所述的计算累计网络延时方法。

基于同一发明构思,本发明实施例还提一种计算机可读存储介质,包括:

所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如上所述的计算累计网络延时方法。

在本发明提供的实施例中,通过让网络设备在接收测试报文时,将测试报文中的网络累计延时与网络设备接收测试报文的接收时间按第一规则进行运算,获得的运算结果写入测试报文中存储网络累计延时的存储位置;当网络设备在发送测试报文时,再从测试报文中存储网络累计延时的存储位置提取运算结果,并获取发送测试报文的发送时间,然后基于运算结果及发送测试报文的发送时间,按照第二规则计算测试报文在离开网络设备时的最新网络累计延时,并写入存储位置。这样即使测试报文在网络设备内部流转的过程中调整了发送顺序,也能准确计算测试报文在离开网络设备时的最新网络累计延时。

本领域内的技术人员应明白,本发明实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd‐rom、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1