基于底层通信的时延测试方法、装置及电子设备与流程

未命名 08-26 阅读:126 评论:0


1.本公开涉及通信时延测试技术领域,尤其涉及一种基于底层通信的时延测试方法、装置、电子设备及计算机可读存储介质。


背景技术:

2.相关技术中,底层中间件通信被广泛应用于工业控制、智能交通、均是和航空航天等领域,随着技术快速的发展,对中间件通信的指标越来越严格,其中,通信时延就是用于衡量通信性能的指标之一。
3.现有的测试底层中间件通信的时延测试方法是:假设测试机1和测试机2时间已经同步,时延误差为0,测试机1将开始写入的时间戳记录为t1,写入数据包中,且数据包大小不变;数据包通过底层中间件传输到测试机2;测试机2接收完数据包后,记录时间戳为t1,并解析当前数据包中的开始时间t1;对于底层中间件来说,发送数据包所需的时延即为t2-t1。
4.但是,对于高速产品所需的底层中间件而言,其所需的时延要求精度达到纳米级,需要保证测试机1和测试机2的时间同步误差在精度以上,但还是无法达到误差的值无法准确计算。同时,需要测试机1和测试机2保证都能获取到纳米级别的时间戳,否则测试结果会存在误差。
5.因此,亟需一种能够提高时延测试精度,避免测试机之间的时延误差的底层中间件通信时延测试方法。


技术实现要素:

6.为克服相关技术中存在的问题,本公开提供一种基于底层通信的时延测试方法、装置、电子设备及计算机可读存储介质。
7.根据本公开实施例的第一方面,提供一种基于底层通信的时延测试方法,包括:记录数据包开始写入第一测试机的时间戳,得到第一时间,并将所述第一时间写入对应的数据包中,基于数据分发服务将所述数据包通过所述第一测试机发送至第二测试机;所述第二测试机基于数据分发服务接收所述数据包,并通过数据分发服务将接收到的所述数据包立刻回传至所述第一测试机;在所述第一测试机基于数据分发服务接收所述回传的数据包时,记录数据包接收完毕时的时间戳,得到第二时间,并根据所述数据包得到对应的第一时间;根据所述第二时间和所述第一时间,计算得到数据包对应的通信时延。。
8.在一些实施例中,所述根据所述第二时间和所述第一时间,计算得到数据包对应的通信时延,公式为:
9.late=(t
b-ta)/2
10.式中,对于单个数据包,late表示通信时延,ta为记录数据包开始写入的第一时间,tb为第一测试机通过所述第二主题接收完所述数据包的第二时间。
11.在一些实施例中,还包括:在连续发送多个数据包时,分别计算所述多个数据包的
通信时延;根据所述多个数据包的通信时延计算平均通信时延,将所述平均通信时延作为目标通信时延。
12.在一些实施例中,所述根据所述多个数据包的通信时延计算平均通信时延,公式为:
[0013][0014]
式中,latex1,latex2…
latexn为多个数据包中单个数据包的通信时延,n为多个数据包的数量。
[0015]
在一些实施例中,还包括:在连续发送多个数据包时,获取多个数据包中的最早时间戳和最晚时间戳,其中,所述最早时间戳为多个数据包中第一个数据包开始写入的时间,所述最晚时间戳为多个数据包中最后一个数据包回传接收完毕的时间;统计发送的数据包数量,结合所述最晚时间戳和最早时间戳,计算得到单个数据包的目标通信时延。
[0016]
在一些实施例中,所述统计发送的数据包数量,结合所述最晚时间戳和最早时间戳,计算得到单个数据包的目标通信时延,公式为:
[0017]
latem=(t
w-tz)/2m
[0018]
式中,tw为最晚时间戳,tz为最早时间戳,m为数据包数量。
[0019]
在一些实施例中,所述第二测试机基于数据分发服务接收所述数据包,并通过数据分发服务将接收到的所述数据包立刻回传至所述第一测试机,包括:通过数据分发服务创建第一主题,并配置所述第一主题的消息发送频率,基于所述第一主题,将所述数据包通过所述第一测试机发送至第二测试机;通过数据分发服务创建第二主题,基于所述第二主题,将接收到的所述数据包通过所述第二测试机立刻回传至所述第一测试机。
[0020]
根据本公开实施例的第二方面,提供一种基于底层通信的时延测试装置,包括:数据包发送模块,用于记录数据包开始写入第一测试机的时间戳,得到第一时间,并将所述第一时间写入对应的数据包中,基于数据分发服务将所述数据包通过所述第一测试机发送至第二测试机;数据包回传模块,用于所述第二测试机基于数据分发服务接收所述数据包,并通过数据分发服务将接收到的所述数据包立刻回传至所述第一测试机;时间获取模块,用于在所述第一测试机基于数据分发服务接收所述回传的数据包时,记录数据包接收完毕时的时间戳,得到第二时间,并根据所述数据包得到对应的第一时间;通信时延计算模块,用于根据所述第二时间和所述第一时间,计算得到数据包对应的通信时延。
[0021]
根据本公开实施例的第三方面,提供一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现本公开第一方面所提供的基于底层通信的时延测试方法。
[0022]
根据本公开实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序指令,该程序指令被处理器执行时实现本公开第一方面所提供的基于底层通信的时延测试方法的步骤。
[0023]
本公开的实施例提供的技术方案可以包括以下有益效果:通过记录数据包开始写入第一测试机的时间戳,得到第一时间,并将第一时间写入对应的数据包中,第一测试机基于数据分发服务将数据包发送至第二测试机,第二测试机基于数据分发服务接收数据包,并通过数据分发服务将接收到的数据包立刻回传至第一测试机,第一测试机基于数据分发服务接收回传的数据包,并记录数据包接收完毕时的时间戳,得到第二时间,并根据数据包
得到第一时间,根据第一时间和第二时间,计算得到数据包的通信时延,仅通过第一测试机进行时间戳记录,降低了设备要求,减少测试代码数量,且避免了测试机之间的时间差,提高了测试结果的精度,能够适用于连续多包数据的发送,符合实际通信情况。
[0024]
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
[0025]
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
[0026]
图1是根据一示例性实施例示出的一种基于底层通信的时延测试方法的流程图。
[0027]
图2是根据一示例性实施例示出的单个数据包的时延测试流程图。
[0028]
图3是根据一示例性实施例示出的多个数据包的时延测试流程图。
[0029]
图4是根据一示例性实施例示出的一种多个数据包的通信时延计算方法的流程图。
[0030]
图5是根据一示例性实施例示出的另一种多个数据包中的通信时延计算方法的流程图。
[0031]
图6是根据一示例性实施例示出的数据包发送和接收方法的流程图。
[0032]
图7是根据一示例性实施例示出的一种基于底层通信的时延测试装置的框图。
[0033]
图8是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
[0034]
下面将结合附图详细地对示例性实施例进行描述说明。
[0035]
应当指出,相关实施例及附图仅为描述说明本公开所提供的示例性实施例,而非本公开的全部实施例,也不应理解本公开受相关示例性实施例的限制。
[0036]
应当指出,本公开中所用术语“第一”、“第二”等仅用于区别不同步骤、设备或模块等。相关术语既不代表任何特定技术含义,也不表示它们之间的顺序或者相互依存关系。
[0037]
应当指出,本公开中所用术语“一个”、“多个”、“至少一个”的修饰是示意性而非限制性的。除非在上下文另有明确指出,否则应该理解为“一个或多个”。
[0038]
应当指出,本公开中所用术语“和/或”,用于描述关联对象之间的关联关系,一般表示至少存在三种关联关系。例如,a和/或b,至少可以表示:单独存在a,同时存在a和b,单独存在b这三种关联关系。
[0039]
应当指出,本公开的方法实施例中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。除非特别说明,本公开的范围不受相关实施例中步骤的描述顺序限制。
[0040]
需要说明的是,本公开中所有获取信号、信息或数据的动作都是在遵照所在地国家相应的数据保护法规政策的前提下,并获得由相应装置所有者给予授权的情况下进行的。
[0041]
示例性方法
[0042]
图1是根据一示例性实施例示出的一种基于底层通信的时延测试方法的流程图,如图1所示,该基于底层通信的时延测试方法用于底层中间件通信中,包括以下步骤:
[0043]
在步骤s110中,记录数据包开始写入第一测试机的时间戳,得到第一时间,并将第一时间写入对应的数据包中,基于数据分发服务将数据包通过第一测试机发送至第二测试机。
[0044]
在一些实施例中,为了对基于底层中间件的通信进行时延测试,在进行底层中间件通信时,记录数据包开始写入第一测试机的时间戳,得到第一时间,并将该第一时间写入数据包中,且数据包的大小不变,数据包始终保持测试要求的带下,更能够反映测试与实际场景的一致性。此外,第一测试机可以通过发送一个数据包或连续发送多个数据包进行测试,连续多包的发送更能贴近实际运行场景。
[0045]
例如,基于数据分发服务创建的第一主题,将写入第一时间后的数据包发送至第二测试机,第一测试机和第二测试机均已订阅第一主题,从而能够基于第一主题,进行第一测试机和第二测试机之间的消息传输。
[0046]
在步骤s120中,第二测试机基于数据分发服务接收数据包,并通过数据分发服务将接收到的数据包立刻回传至第一测试机。
[0047]
在一些实施例中,第二测试机基于数据分发服务中已订阅的第一主题,接收到第一测试机发送的数据包,并通过数据分发服务创建第二主题,将接收到数据包立刻回传至第一测试机,同样的,第一测试机和第二测试机均已订阅第二主题,从而能够基于数据分发服务创建的第二主题,进行第一测试机和第二测试机之间的消息传输。
[0048]
此外,第二测试机接收完数据包是立刻回传至第一测试机,即接收完数据包后,在微乎其微的时间范围内对数据包进行回传,且该时间范围与时延相比可忽略不计,视为立刻。
[0049]
在步骤s130中,在第一测试机基于数据分发服务接收回传的数据包时,记录数据包接收完毕时的时间戳,得到第二时间,并根据数据包得到对应的第一时间。
[0050]
在一些实施例中,第一测试机基于数据分发服务中已订阅的第二主题,接收来自第二测试机回传的数据包,记录对数据包接收完毕时的时间戳,得到第二时间,同时启动对数据包的解析进程,得到数据包中的第一时间;其中,数据包接收和数据包解析采用不同的进程,能够同时进行,且不影响数据包的接收,确保数据包接收完毕后记录的时间戳准确性。
[0051]
在步骤s140中,根据第二时间和第一时间,计算得到数据包对应的通信时延。
[0052]
在一些实施例中,第一测试机根据获取的第二时间和第一时间,进行计算,得到数据包传输的通信时延。其中,第一时间和第二时间均由第一测试机端的时钟记录得到,即整个测试过程只有第一测试机的同一个时钟;而非现有技术中需要分别采用发送端和接收端的时钟或网卡绝对时间,引入两个及以上的时钟时,就会存在时钟之间的时延问题,且很难保证时钟间的时间误差在纳秒级别。
[0053]
而本公开在整个测试过程中仅引入了第一测试机的同一个时钟,不需要进行两个测试设备的时间同步,减少了测试设备,例如时间同步设备,同时由于第二测试机不需要进行时间戳记录,降低了设备要求;使得本案能够具有纳秒级别精度的测试效果,且不限于单个测试包,通过多包测试能够更贴近实际运行场景,提高了时延测试的精度。
[0054]
其中,通信时延的计算公式为:
[0055]
late=(t
b-ta)/2
[0056]
式中,对于单个数据包,late表示通信时延,ta为记录数据包开始写入的第一时间,tb为第一测试机通过第二主题接收完数据包的第二时间。
[0057]
具体地,由于数据包在第一测试机和第二测试机之间进行了两轮的传输,因此,可以根据得到的第二时间和第一时间之差,除以2,得到数据包单次传输的通信时延。
[0058]
该通信时延包含有数据包的打包时间,即从获取数据包开始,接收完毕结束,对第二测试机也是如此,因此,除了传输时间,其余时间消耗都是对称的。
[0059]
在上述实施例中,通过记录数据包开始写入第一测试机的时间戳,得到第一时间,并将第一时间写入对应的数据包中,第一测试机基于数据分发服务将数据包发送至第二测试机,第二测试机基于数据分发服务接收数据包,并通过数据分发服务将接收到的数据包立刻回传至第一测试机,第一测试机基于数据分发服务接收回传的数据包,并记录数据包接收完毕时的时间戳,得到第二时间,并根据数据包得到第一时间,根据第一时间和第二时间,计算得到数据包的通信时延,仅通过第一测试机进行时间戳记录,降低了设备要求,减少测试代码数量,且避免了测试机之间的时间差,提高了测试结果的精度,能够适用于连续多包数据的发送,符合实际通信情况。
[0060]
在一个实施例中,如图2所示,通过本公开进行单个数据包的时延测试的步骤为:假设第一测试机和第二测试机的时间误差为β,测试机1将数据包开始写入的时间戳记录为t1,将时间戳t1写到数据包data中,且数据包的大小不变;数据包data通过底层通信中间件传输到测试机2;测试机2接收完数据包data后,记录时间戳为t2;测试机2直接将数据包data进行写入,通过底层通信中间件传输到测试机1,开始写入时记录时间戳为t3,且t2=t3,即测试机2接收完数据包到发出数据包的时间差可以忽略不计;测试即1接收完数据包data后,记录时间戳为t4;解析当前数据包data中的开始时间t1;因此,对于底层通信中间件来说,发送数据包data的通信时延late=(t2-β)-t1,late=t4-(t3-β);由于t3=t2,则发送数据包data所需的通信时延为late=(t4-t1)/2。
[0061]
在一个实施例中,如图3所示,通过本公开进行多个数据包的时延测试的步骤为:测试机1每秒发送n个数据包data,x代表在1到n中任意一个数;方法和单个数据包的时延测试方法相同,将开始时间t1x写入data中;使用dds创建topic1,发送的频率设置为n及数据包为data;测试机2使用dds创建的topic1接收测试机1发送的数据包data;测试机2将接收的数据包data通过使用dds创建的topic2发送给测试机1;当测试机1使用topic2每接收到一个数据包,获取当前时间戳记为t4x;启动另一个进程,用于解析当前数据包,获取数据包中的开始时间t1x,且不影响当前的数据包接收进程;记录时间t4x为该数据包的结束时间,数据包data解析的t1x为该数据包的开始时间,则第x个数据包data的通信时延为latex=(t4x-t1x)/2;若接收到n包数据,可以将n包数据的latex加起来除以n,得到该数据包的平均时延。
[0062]
图4是根据一示例性实施例示出的一种多个数据包的通信时延计算方法的流程图,如图4所示,该多个数据包的通信时延计算方法用于步骤s104中,包括以下步骤:
[0063]
在步骤s410中,在连续发送多个数据包时,分别计算多个数据包的通信时延。
[0064]
具体地,第一测试机为了更好的模拟实际通信过程,可以通过第一主题向第二测试机连续发送多个数据包,并基于获取的第一时间和第二时间,分别计算出多个数据包的通信时延。
[0065]
在步骤s420中,根据多个数据包的通信时延计算平均通信时延,将平均通信时延作为目标通信时延。
[0066]
具体地,根据得到的多个数据包的通信时延,以及发送的数据包数量,计算得到平均通信时延,将该平均通信时延作为目标通信时延,通过多包数据的发送,使得测试结果能够更加贴近实际通信情况,确保时延测试结果的可靠性。当然,也可以取多个包中的部分数据包的通信时延作为计算基础。
[0067]
其中,计算平均通信时延的公式为:
[0068][0069]
式中,latex1,latex2…
latexn为多个数据包中单个数据包的通信时延,n为多个数据包的数量。
[0070]
在本实施例中,第一测试机连续发送多个数据包时,分别计算出每个数据包的通信时延,根据多个数据包的通信时延计算得到平均通信时延,将平均通信时延作为目标通信时延,使得测试结果符合实际情况,确保获取的时延测试结果的可靠性。
[0071]
图5是根据一示例性实施例示出的另一种多个数据包中的通信时延计算方法的流程图,如图5所示,该多个数据包中单个数据包的通信时延计算方法用于步骤s104中,包括以下步骤:
[0072]
在步骤s510中,在连续发送多个数据包时,获取多个数据包中的最早时间戳和最晚时间戳,其中,最早时间戳为多个数据包中第一个数据包开始写入的时间,最晚时间戳为多个数据包最后一个数据包回传接收完毕的时间。
[0073]
具体地,为了测试结果的有效性,可以通过第一测试机连续发送多个数据包,在将多个数据包由第一测试机发出,并最终由第一测试机接收后,获取在第一测试机中多个数据包记录的最早时间戳和最晚时间戳,作为通信时延的计算基础。其中,最早时间戳为多个数据包中第一个数据包,开始写入第一测试机的时间,最晚时间戳为多个数据包最后一个数据包回传至第一测试机,并接收完毕的时间。
[0074]
在步骤s520中,统计发送的数据包数量,结合最晚时间戳和最早时间戳,计算得到单个数据包的目标通信时延。
[0075]
具体地,统计得到连续发送的数据包数量,计算最晚时间戳和最早时间戳之差,并除以数据包数量,得到单个数据包的目标通信时延;当然,也可以获取多个数据包中的部分数据包的最早时间戳和最晚时间戳,作为计算基础,得到对应的目标通信时延。
[0076]
其中,单个数据包的目标通信时延的计算公式为:
[0077]
latem=(t
w-tz)/2m
[0078]
式中,tw为最晚时间戳,tz为最早时间戳,m为数据包数量。
[0079]
在本实施例中,通过第一测试机连续发送多个数据包,获取多个数据包中的最早时间戳和最晚时间戳,统计连续发送的数据包数量,并结合最晚时间戳和最早时间戳,计算得到单个数据包的目标通信时延,使得获取的目标通信时延能够贴合实际情况,确保测试结果的可靠性。
[0080]
图6是根据一示例性实施例示出的数据包发送和接收方法的流程图,如图6所示,该数据包发送和接收方法用于步骤s102中,包括以下步骤:
[0081]
在步骤s610中,通过数据分发服务创建第一主题,并配置第一主题的消息发送频
率,基于第一主题,将数据包通过第一测试机发送至第二测试机。
[0082]
具体地,在进行数据包的发送和接收时,通过数据分发服务创建第一主题,并配置第一主题的消息发送频率,用于进行连续多包数据的发送,第一测试机通过第一主题将数据包发送至第二测试机,从而实现数据包的发送。
[0083]
在步骤s620中,通过数据分发服务创建第二主题,基于第二主题,将接收到的数据包通过第二测试机立刻回传至第一测试机。
[0084]
具体地,第二测试机通过第一主题接收完数据包后,通过数据分发服务创建的第二主题,将接收到的数据包通过第二测试机立刻回传至第一测试机,从而实现数据包的回传,并通过记录的数据包发送和回传的时间戳,对通信时延进行计算。
[0085]
在本实施例中,通过数据分发服务创建第一主题,并配置第一主题的消息发送频率,测试机订阅第一主题,第一测试机通过第一主题将数据包发送至第二测试机;通过数据分发服务创建第二主题,并订阅,第二测试机通过第二主题将接收到的数据包立刻回传至第一测试机,实现数据包在第一测试机和第二测试机之间的传输,并能够基于传输过程中记录的时间戳对通信时延进行计算。
[0086]
示例性装置
[0087]
图7是根据一示例性实施例示出的一种基于底层通信的时延测试装置框图。参照图7,该装置700包括数据包发送模块710,数据包回传模块720、时间获取模块730和通信时延计算模块740。
[0088]
该数据包发送模块710,用于记录数据包开始写入第一测试机的时间戳,得到第一时间,并将第一时间写入对应的数据包中,基于数据分发服务将数据包通过第一测试机发送至第二测试机;
[0089]
该数据包回传模块720,用于第二测试机基于数据分发服务接收数据包,并通过数据分发服务将接收到的数据包立刻回传至第一测试机;
[0090]
该时间获取模块730,用于在第一测试机基于数据分发服务接收回传的数据包时,记录数据包接收完毕时的时间戳,得到第二时间,并根据数据包得到对应的第一时间;
[0091]
该通信时延计算模块740,用于根据第二时间和第一时间,计算得到数据包对应的通信时延。
[0092]
在一个实施例中,该装置还包括:多时延计算模块,用于在连续发送多个数据包时,分别计算多个数据包的通信时延;平均时延计算模块,用于根据多个数据包的通信时延计算平均通信时延,将平均通信时延作为目标通信时延。
[0093]
在一个实施例中,该装置还包括:第一主题创建模块,用于通过数据分发服务创建第一主题,并配置第一主题的消息发送频率,基于第一主题,将数据包通过第一测试机发送至第二测试机;第二主题创建模块,用于通过数据分发服务创建第二主题,基于第二主题,将接收到的数据包通过第二测试机立刻回传至第一测试机。
[0094]
在上述实施例中,通过该装置的运行,实现了基于一种基于底层通信的时延测试方法,确保该装置能够实现一种基于底层通信的时延测试方法的所有内容。
[0095]
示例性电子设备
[0096]
图8是根据一示例性实施例示出的一种电子设备900的框图。该电子设备900可以是车辆控制器、车载终端、车载计算机或者其他类型的电子设备。
[0097]
参照图8,电子设备900,可包括至少一个处理器910和存储器920。处理器910可以执行存储在存储器920中的指令。处理器910通过数据总线与存储器920通信连接。除存储器920外,处理器910还可通过数据总线与输入设备930、输出设备940、通信设备950通信连接。
[0098]
处理器910可以是任何常规的处理器,诸如商业可获得的cpu。处理器还可以包括诸如图像处理器(graphic process unit,gpu),现场可编程门阵列(field programmable gate array,fpga)、片上系统(system on chip,soc)、专用集成芯片(application specific integrated circuit,asic)或它们的组合。
[0099]
存储器920可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
[0100]
在本公开实施例中,存储器920中存储有可执行指令,处理器910可以从所述存储器920中读取所述可执行指令,并执行所述指令以实现上述示例性实施例中任一所述的基于底层通信的时延测试方法的全部或部分步骤。
[0101]
示例性计算机可读存储介质
[0102]
除了上述方法和装置以外,本公开的示例性实施例还可以是计算机程序产品或存储有该计算机程序产品的计算机可读存储介质。该计算机产品中包括计算机程序指令,该计算机程序指令可被处理器执行,以实现上述示例性实施例中任一方法中描述的的全部或部分步骤。
[0103]
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本技术实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、c++等,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言以及脚本语言(例如python)。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
[0104]
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子包括:具有一个或多个导线电连接的静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘,或者上述的任意合适的组合。
[0105]
本领域技术人员在考虑说明书及实践本公开后,将容易想到本公开的其它实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
[0106]
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

技术特征:
1.一种基于底层通信的时延测试方法,其特征在于,包括:记录数据包开始写入第一测试机的时间戳,得到第一时间,并将所述第一时间写入对应的数据包中,基于数据分发服务将所述数据包通过所述第一测试机发送至第二测试机;所述第二测试机基于数据分发服务接收所述数据包,并通过数据分发服务将接收到的所述数据包立刻回传至所述第一测试机;在所述第一测试机基于数据分发服务接收所述回传的数据包时,记录数据包接收完毕时的时间戳,得到第二时间,并根据所述数据包得到对应的第一时间;根据所述第二时间和所述第一时间,计算得到数据包对应的通信时延。2.根据权利要求1所述的基于底层通信的时延测试方法,其特征在于,所述根据所述第二时间和所述第一时间,计算得到数据包对应的通信时延,公式为:late=(t
b-t
a
)/2式中,对于单个数据包,late表示通信时延,t
a
为记录数据包开始写入的第一时间,t
b
为第一测试机接收完所述数据包的第二时间。3.根据权利要求1或2所述的基于底层通信的时延测试方法,其特征在于,还包括:在连续发送多个数据包时,分别计算所述多个数据包的通信时延;根据所述多个数据包的通信时延计算平均通信时延,将所述平均通信时延作为目标通信时延。4.根据权利要求3所述的基于底层通信的时延测试方法,其特征在于,所述根据所述多个数据包的通信时延计算平均通信时延,公式为:式中,latex1,latex2…
latex
n
为多个数据包中单个数据包的通信时延,n为多个数据包的数量。5.根据权利要求1所述的基于底层通信的时延测试方法,其特征在于,还包括:在连续发送多个数据包时,获取多个数据包中的最早时间戳和最晚时间戳,其中,所述最早时间戳为多个数据包中第一个数据包开始写入的时间,所述最晚时间戳为多个数据包中最后一个数据包回传接收完毕的时间;统计发送的数据包数量,结合所述最晚时间戳和最早时间戳,计算得到单个数据包的目标通信时延。6.根据权利要求5所述的基于底层通信的时延测试方法,其特征在于,所述统计发送的数据包数量,结合所述最晚时间戳和最早时间戳,计算得到单个数据包的目标通信时延,公式为:late
m
=(t
w-t
z
)/2m式中,t
w
为最晚时间戳,t
z
为最早时间戳,m为数据包数量。7.根据权利要求1、2、4、5、6中任一项所述的基于底层通信的时延测试方法,其特征在于,所述第二测试机基于数据分发服务接收所述数据包,并通过数据分发服务将接收到的所述数据包立刻回传至所述第一测试机,包括:通过数据分发服务创建第一主题,并配置所述第一主题的消息发送频率,基于所述第一主题,将所述数据包通过所述第一测试机发送至第二测试机;
通过数据分发服务创建第二主题,基于所述第二主题,将接收到的所述数据包通过所述第二测试机立刻回传至所述第一测试机。8.一种基于底层通信的时延测试装置,其特征在于,包括:数据包发送模块,用于记录数据包开始写入第一测试机的时间戳,得到第一时间,并将所述第一时间写入对应的数据包中,基于数据分发服务将所述数据包通过所述第一测试机发送至第二测试机;数据包回传模块,用于所述第二测试机基于数据分发服务接收所述数据包,并通过数据分发服务将接收到的所述数据包立刻回传至所述第一测试机;时间获取模块,用于在所述第一测试机基于数据分发服务接收所述回传的数据包时,记录数据包接收完毕时的时间戳,得到第二时间,并根据所述数据包得到对应的第一时间;通信时延计算模块,用于根据所述第二时间和所述第一时间,计算得到数据包对应的通信时延。9.一种电子设备,其特征在于,包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现所述权利要求1-7中任一所述的基于底层通信的时延测试方法。10.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,该程序指令被处理器执行时,以实现所述权利要求1-7中任一所述的基于底层通信的时延测试方法的步骤。

技术总结
本公开涉及一种基于底层通信的时延测试方法、装置及电子设备,记录数据包开始写入第一测试机的第一时间,将第一时间写入对应的数据包中,第一测试机基于数据分发服务将数据包发送至第二测试机,第二测试机基于数据分发服务接收数据包,并通过数据分发服务将接收到的数据包立刻回传至第一测试机,第一测试机基于数据分发服务接收回传的数据包,记录数据包接收完毕时的时间戳,得到第二时间,并根据数据包得到第一时间,根据第一时间和第二时间,计算得到数据包的通信时延。本公开能够仅通过第一测试机进行时间戳记录,避免了测试机之间的时间差,提高了测试结果的精度,且能够适用于进行连续多包数据发送,符合实际通信情况。符合实际通信情况。符合实际通信情况。


技术研发人员:张万洪
受保护的技术使用者:国科础石(重庆)软件有限公司
技术研发日:2023.06.29
技术公布日:2023/8/24
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐