本申请涉及物联网领域,具体而言,涉及一种网络延时和丢数据包检测方法。
背景技术:
nbiot(窄带物联网,narrowbandinternetofthings)通信质量的一直是该技术的重要指标,如何合理全面的检测通信质量至关重要。延时和丢包率是通信的重要指标。通过对丢延时和丢包率的统计,可以有效检测网络的传输特性和实时通信状态,在研发阶段和实际应用中,可以有效协助定位问题,加快解决进度。现有的通信质量检测主要是基于ping、udp(userdatagramprotocol)\tcp进行数据的传输,通过丢包率、发送端和接收端的速度,给出通信质量。这些方法存在只能从应用角度观察丢包与否,对于网络的特性不关心;操作繁琐,需要研发人员根据网络特性判断测试项目。
在nbiot网络环境中,包的大小和信道质量对延时和丢包率有重大影响。物理层在发送包时,会将大包切成更小的信元包发送,不同的包长切的信元个数不一样,单个信元的发送情况对于整个包都有决定性的影响,即单个信元的丢失该包便丢失,所有信元的延时是整个包延时。本发明可以针对nbiot网络的特点,快速统计出延时和包长的关系,找到易丢包的包长和当前网络的速度。
技术实现要素:
本申请的主要目的在于提供一种网络延时和丢数据包检测方法,包括:
第一设备端发送一个数据包,发送前在数据包内标记当前发数据包的序号和第一时间戳;
第二设备端收到所述数据包,当所述数据包内有所述序号和所述第一时间戳时,所述第二设备端在所述数据包内增加收到所述数据包的第二时间戳后,发送所述数据包至所述第一设备端;
当所述第一设备端在预设时间内收到所述数据包时,记录数据包内统计的所述序号、所述第一时间戳及所述第二时间戳;
所述第一设备端以所述数据包的包长持续第一预设时间发数据包,并统计发数据包速率;
所述第二设备端收到没有序号和时间戳的数据包后开始统计所述第一预设时间内的收到的数据包速度;
增加所述数据包的包长10个字节,并重复上述步骤;
当所述包长大于等于最大包长,测试结束,所述第一设备端输出不同数据包包长的延时时间和发送速率,所述第二设备端输出不同数据包包长的接收速率。
可选地,先开启所述第二设备端,后开启所述第一设备端,所述第二设备端一直处于监听数据包状态。
可选地,当所述第一设备端在预设时间内没有收到所述数据包时,标记所述数据包未收到,并重新发送新的数据包。
可选地,当所述第一设备端重新发送新的数据包时,所述预设时间增加,继续向所述第二设备端发数据包,如果n次都没有收到数据包,统计所述数据包的包长无法通信,直接进入下一轮数据包长测试,如果收到所述数据包,进入速度测试模式,n为自然数。
可选地,所述预设时间增加1倍。
可选地,所述包长、所述预设时间,所述最大包长为所述第一设备端自有的或者人为设置的。
根据本申请的一方面,还提供了一种网络延时和丢数据包检测系统,包括:
发送模块,用于第一设备端发送一个数据包,发送前在数据包内标记当前发数据包的序号和第一时间戳;
接收模块,用于第二设备端收到所述数据包,当所述数据包内有所述序号和所述第一时间戳时,所述第二设备端在所述数据包内增加收到所述数据包的第二时间戳后,发送所述数据包至所述第一设备端;
记录模块,用于当所述第一设备端在预设时间内收到所述数据包时,记录数据包内统计的所述序号、所述第一时间戳及所述第二时间戳;
第一统计模块,用于所述第一设备端以所述数据包的包长持续第一预设时间发数据包,并统计发数据包速率;
第二统计模块,用于所述第二设备端收到没有序号和时间戳的数据包后开始统计所述第一预设时间内的收到的数据包速度;
增加模块,用于增加所述数据包的包长10个字节,并重复上述步骤;
当所述包长大于等于最大包长,测试结束,所述第一设备端输出不同数据包包长的延时时间和发送速率,所述第二设备端输出不同数据包包长的接收速率。
本申请还公开了一种计算机设备,数据包括存储器、处理器和存储在所述存储器内并能由所述处理器运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的方法。
本申请还公开了一种计算机可读存储介质,非易失性可读存储介质,其内存储有计算机程序,所述计算机程序在由处理器执行时实现上述任一项所述的方法。
本申请还公开了一种计算机程序产品,数据包括计算机可读代码,当所述计算机可读代码由计算机设备执行时,导致所述计算机设备执行上述任一项所述的方法。
与现有技术相比,本申请具有如下有益效果:
主设备和从设备都在udp包数据段内增加时间戳,可以准确记录发送端和接收端的时间;在包内增加包序号,可以准确判断丢包序列。
自动扫描不同的包长度,统计不同发送速度和包长对丢包率和延时的影响。
不仅适合nbiot通信速度较慢的物联网通信质量检测,对于其他类型的通信方式,检测结果也有较好的参考价值。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和有益效果变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1-图2是根据本申请一个实施例的网络延时和丢数据包检测方法的流程示意图;
图3是根据本申请一个实施例的计算机设备的示意图;以及
图4是根据本申请一个实施例的计算机可读存储介质的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“数据包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的数据包含,例如,数据包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可数据包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
请参照图1-图2,本申请一实施例提供了一种网络延时和丢数据包检测方法,其特征在于,数据包括:
第一设备端发送一个数据包,发送前在数据包内标记当前发数据包的序号和第一时间戳;
第二设备端收到所述数据包,当所述数据包内有所述序号和所述第一时间戳时,所述第二设备端在所述数据包内增加收到所述数据包的第二时间戳后,发送所述数据包至所述第一设备端;
当所述第一设备端在预设时间内收到所述数据包时,记录数据包内统计的所述序号、所述第一时间戳及所述第二时间戳;
所述第一设备端以所述数据包的包长持续第一预设时间发数据包,并统计发数据包速率;
所述第二设备端收到没有序号和时间戳的数据包后开始统计所述第一预设时间内的收到的数据包速度;
增加所述数据包的包长10个字节,并重复上述步骤;
当所述包长大于等于最大包长,测试结束,所述第一设备端输出不同数据包包长的延时时间和发送速率,所述第二设备端输出不同数据包包长的接收速率。
本申请一实施例中,先开启所述第二设备端,后开启所述第一设备端,所述第二设备端一直处于监听数据包状态。
本申请一实施例中,当所述第一设备端在预设时间内没有收到所述数据包时,标记所述数据包未收到,并重新发送新的数据包。
本申请一实施例中,当所述第一设备端重新发送新的数据包时,所述预设时间增加,继续向所述第二设备端发数据包,如果n次都没有收到数据包,统计所述数据包的包长无法通信,直接进入下一轮数据包长测试,如果收到所述数据包,进入速度测试模式,n为自然数。
本申请一实施例中,所述预设时间增加1倍。
本申请一实施例中,所述包长、所述预设时间,所述最大包长为所述第一设备端自有的或者人为设置的。
本申请还提供了一种网络延时和丢数据包检测系统,数据包括:
发送模块,用于第一设备端发送一个数据包,发送前在数据包内标记当前发数据包的序号和第一时间戳;
接收模块,用于第二设备端收到所述数据包,当所述数据包内有所述序号和所述第一时间戳时,所述第二设备端在所述数据包内增加收到所述数据包的第二时间戳后,发送所述数据包至所述第一设备端;
记录模块,用于当所述第一设备端在预设时间内收到所述数据包时,记录数据包内统计的所述序号、所述第一时间戳及所述第二时间戳;
第一统计模块,用于所述第一设备端以所述数据包的包长持续第一预设时间发数据包,并统计发数据包速率;
第二统计模块,用于所述第二设备端收到没有序号和时间戳的数据包后开始统计所述第一预设时间内的收到的数据包速度;
增加模块,用于增加所述数据包的包长10个字节,并重复上述步骤;
当所述包长大于等于最大包长,测试结束,所述第一设备端输出不同数据包包长的延时时间和发送速率,所述第二设备端输出不同数据包包长的接收速率。
本申请提供了基于udp的nbiot网络延时和丢包检测方法,可以快速统计出延时和包长的关系,找到易丢包的包长,统计出当前环境的通信速度。主要流程如下。
先开启从设备,后开启主设备,从设备一直处于监听包状态;(2)主设备有固定的包长l、超时时间t和最大包长,或设置一个包长l、超时时间t和最大包长;(3)主设备发送一个包,发送前在包内标记当前发包的序号和时间戳;(4)从设备收到主设备发送的数据包,判断包内有序号和时间戳,即在包内增加收到包的时间戳,并将该包发送回主设备,(5)主设备在等待时间t内,如果收到从设备发回主设备的包,就记录包内统计的序号和时间戳,并进入速度测试模式,如果没有收到从设备发送回主设备的数据包,就标记该序号的包未收到,并进入重发模式;(6)如果主设备进入速度测试模式,以包长l快速持续发包30秒(忽略时间间隔t),并统计发包速率,从设备收到没有序号和时间戳的数据包后开始统计30秒内的收包速度,并进入下一轮包长测试;(7)如果主设备进入重发模式,时间t增加1倍,继续向从设备发包,如果10次都没有收到数据包,统计该包长无法通信,直接进入下一轮包长测试,如果收到数据包,进入速度测试模式,如(6)所述;(8)当包长为l的测试结束后,包长增加10个字节,重新从(2)步测试;(9)如果包长l大于等于最大包长,测试结束,主设备输出不同包长的延时时间和发送速率,从设备输出不同包长的接收速率。
与现有技术相比,本申请有如下有益效果:
1、主设备和从设备都在udp包数据段内增加时间戳,可以准确记录发送端和接收端的时间;在包内增加包序号,可以准确判断丢包序列。
2、自动扫描不同的包长度,统计不同发送速度和包长对丢包率和延时的影响。
3、此机制不仅适合nbiot通信速度较慢的物联网通信质量检测,对于其他类型的通信方式,检测结果也有较好的参考价值。
请参照图3,本申请还提供了一种计算机设备,数据包括存储器、处理器和存储在所述存储器内并能由所述处理器运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的方法。
请参照图4,一种计算机可读存储介质,非易失性可读存储介质,其内存储有计算机程序,所述计算机程序在由处理器执行时实现上述任一项所述的方法。
一种计算机程序产品,数据包括计算机可读代码,当所述计算机可读代码由计算机设备执行时,导致所述计算机设备执行上述任一项所述的方法。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应数据包含在本申请的保护范围之内。
1.一种网络延时和丢数据包检测方法,其特征在于,包括:
第一设备端发送一个数据包,发送前在数据包内标记当前发数据包的序号和第一时间戳;
第二设备端收到所述数据包,当所述数据包内有所述序号和所述第一时间戳时,所述第二设备端在所述数据包内增加收到所述数据包的第二时间戳后,发送所述数据包至所述第一设备端;
当所述第一设备端在预设时间内收到所述数据包时,记录数据包内统计的所述序号、所述第一时间戳及所述第二时间戳;
所述第一设备端以所述数据包的包长持续第一预设时间发数据包,并统计发数据包速率;
所述第二设备端收到没有序号和时间戳的数据包后开始统计所述第一预设时间内的收到的数据包速度;
增加所述数据包的包长10个字节,并重复上述步骤;
当所述包长大于等于最大包长,测试结束,所述第一设备端输出不同数据包包长的延时时间和发送速率,所述第二设备端输出不同数据包包长的接收速率。
2.根据权利要求1所述的网络延时和丢数据包检测方法,其特征在于,先开启所述第二设备端,后开启所述第一设备端,所述第二设备端一直处于监听数据包状态。
3.根据权利要求2所述的网络延时和丢数据包检测方法,其特征在于,当所述第一设备端在预设时间内没有收到所述数据包时,标记所述数据包未收到,并重新发送新的数据包。
4.根据权利要求3所述的网络延时和丢数据包检测方法,其特征在于,当所述第一设备端重新发送新的数据包时,所述预设时间增加,继续向所述第二设备端发数据包,如果n次都没有收到数据包,统计所述数据包的包长无法通信,直接进入下一轮数据包长测试,如果收到所述数据包,进入速度测试模式,n为自然数。
5.根据权利要求4所述的网络延时和丢数据包检测方法,其特征在于,所述预设时间增加1倍。
6.根据权利要求5所述的网络延时和丢数据包检测方法,其特征在于,所述包长、所述预设时间,所述最大包长为所述第一设备端自有的或者人为设置的。
7.一种网络延时和丢数据包检测系统,其特征在于,包括:
发送模块,用于第一设备端发送一个数据包,发送前在数据包内标记当前发数据包的序号和第一时间戳;
接收模块,用于第二设备端收到所述数据包,当所述数据包内有所述序号和所述第一时间戳时,所述第二设备端在所述数据包内增加收到所述数据包的第二时间戳后,发送所述数据包至所述第一设备端;
记录模块,用于当所述第一设备端在预设时间内收到所述数据包时,记录数据包内统计的所述序号、所述第一时间戳及所述第二时间戳;
第一统计模块,用于所述第一设备端以所述数据包的包长持续第一预设时间发数据包,并统计发数据包速率;
第二统计模块,用于所述第二设备端收到没有序号和时间戳的数据包后开始统计所述第一预设时间内的收到的数据包速度;
增加模块,用于增加所述数据包的包长10个字节,并重复上述步骤;
当所述包长大于等于最大包长,测试结束,所述第一设备端输出不同数据包包长的延时时间和发送速率,所述第二设备端输出不同数据包包长的接收速率。
8.一种计算机设备,数据包括存储器、处理器和存储在所述存储器内并能由所述处理器运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-6中任一项所述的方法。
9.一种计算机可读存储介质,非易失性可读存储介质,其内存储有计算机程序,其特征在于,所述计算机程序在由处理器执行时实现如权利要求1-6中任一项所述的方法。
10.一种计算机程序产品,数据包括计算机可读代码,其特征在于,当所述计算机可读代码由计算机设备执行时,导致所述计算机设备执行权利要求1-6中任一项所述的方法。
技术总结