CN117527641B - 数据报文的丢包观测方法、装置、设备及存储介质 - Google Patents
数据报文的丢包观测方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117527641B CN117527641B CN202410010614.1A CN202410010614A CN117527641B CN 117527641 B CN117527641 B CN 117527641B CN 202410010614 A CN202410010614 A CN 202410010614A CN 117527641 B CN117527641 B CN 117527641B
- Authority
- CN
- China
- Prior art keywords
- window
- message
- idle
- data message
- data
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 73
- 238000012163 sequencing technique Methods 0.000 claims abstract description 55
- 230000008569 process Effects 0.000 claims abstract description 16
- 238000001514 detection method Methods 0.000 claims description 5
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
- H04L43/0829—Packet loss
Landscapes
- Engineering & Computer Science (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种数据报文的丢包观测方法、装置、设备及存储介质,方法包括每当接收到第一数据报文,将报文指针存入排序窗口并检测排序窗口中是否存在符合闲置位条件的闲置位;当存在闲置位时,读取闲置位的闲置时长;当闲置时长达到预设时长时,判定闲置位对应的数据报文丢包,并将闲置位标记为数据报文丢失位。本申请在接收到数据报文时将报文指针存入排序窗口,通过排序窗口对报文指针进行缓存,并根据排序窗口中的窗口位置的闲置时长来对窗口位置对应的数据报文进行观测,以确定数据报文是否丢包,这样可以在对数据报文进行排序的过程中直接观测到丢包的数据报文,无需从内核传输大量的数据报文,降低了丢包观测对系统性能的影响。
Description
技术领域
本申请涉及通信技术领域,特别涉及一种数据报文的丢包观测方法、装置、设备及存储介质。
背景技术
UDP(UserDatagram Protocol,用户数据报协议)技术因其具有的实时性和可靠性被大量应用于局域网环境。但是,但由于UDP协议本身是种不可靠协议,即它不会去检测是否建立连接,以及CPU缓存区是否够用,所以存在不可避免的丢包现象。目前对于通过UDP协议传输的数据文件的丢包观测方法普遍是通过tcpdump等网络抓包工具获取所有UDP网络报文并生成pcap文件,然后用wireshark工具进行手动分析。此方法需要从内核传输大量的数据报文并保存到文件,对系统性能影响较大。
因而现有技术还有待改进和提高。
发明内容
本申请要解决的技术问题在于,针对现有技术的不足,提供一种数据报文的丢包观测方法、装置、设备及存储介质。
为了解决上述技术问题,本申请第一方面提供了一种数据报文的丢包观测方法,其中,所述的数据报文的丢包观测方法具体包括:
每当接收到第一数据报文时,将第一数据报文的报文指针存入预设的排序窗口,并检测预设的排序窗口中是否存在符合闲置位条件的闲置位,其中,所述闲置位条件为未存入报文指针且位于第二数据报文对应的窗口位置之前,第二数据报文为所述排序窗口中位于最后的报文指针对应的数据报文;
当存在闲置位时,读取所述闲置位的闲置时长;
若所述闲置时长达到预设时长时,则判定所述闲置位对应的数据报文丢包,并将所述闲置位标记为数据报文丢失位。
所述的数据报文的丢包观测方法,其中,所述将第一数据报文的报文指针存入预设的排序窗口具体包括:
读取所述第一数据报文的报文指针,以及所述排序窗口中位于第一位的目标窗口位置的报文序号;
根据所述第一数据报文的报文序号和所述目标窗口位置的报文序号,判断所述排序窗口是否存在用于存入所述第一数据报文的第一窗口位置;
当存在第一窗口位置时,将所述报文指针存入预设的排序窗口;
当未存在第一窗口位置时,滑动排序窗口直至所述排序窗口中存入第一窗口位置,其中,所述排序窗口的滑动过程为:
按照从前向后顺序从所述排序窗口中选取连续报文指针序列,将所述连续报文指针序列转入预设的存储队列,以及将目标窗口位置移动至所述连续报文指针序列中的最后报文指针的后一窗口位置。
所述的数据报文的丢包观测方法,其中,所述按照从前向后顺序从排序窗口中选取连续报文指针序列具体包括:
读取所述排序窗口中位于最前的第三数据报文对应的第二窗口位置;
当所述第二窗口位置为目标窗口位置时,以所述第二窗口位置对应的第三数据报文为起始数据报文,按照从前向后顺序从排序窗口中选取连续报文指针序列;
当所述第二窗口位置不为目标窗口位置时,检测所述第二窗口位置之前的各第三窗口位置是否为数据报文丢失位,在各第三窗口位置均为数据报文丢失位时,以所述第二窗口位置对应的第三数据报文为起始数据报文,按照从前向后顺序从排序窗口中选取连续报文指针序列,在存在第三窗口不为数据报文丢失位时,控制将第一数据报文的报文指针存入预设的排序窗口的存入操作处于等待状态,直至各第三窗口位置均为数据报文丢失位或者接收到不为数据报文丢失位的第三窗口位置存入报文指针。
所述的数据报文的丢包观测方法,其中,所述以所述第二窗口位置对应的第三数据报文为起始数据报文,按照从前向后顺序从排序窗口中选取连续报文指针序列具体包括:
以所述第二窗口位置对应的第三数据报文为起始数据报文,按照从前向后顺序从排序窗口中选取子连续报文指针序列,并读取排序窗口中距离所述子连续报文指针序列中位于最后的第四数据报文最近的第五数据报文;
读取第四数据报文和第五数据报文间的各窗口位置的窗口位置状态;
当读取到的所有窗口位置状态均为数据报文丢失位时,将第五数据报文作为起始数据报文,并执行按照从前向后顺序从排序窗口中选取子连续报文指针序列,直至读取到的所有窗口位置状态中存在非数据报文丢失位;
将选取的所有子连续报文指针序列构成的报文序列作为转入预设的存储队列的连续报文指针序列。
所述的数据报文的丢包观测方法,其中,所述将第一数据报文的报文指针存入预设的排序窗口之后,所述方法还包括:
读取所述排序窗口中符合闲置位条件的闲置位,并获取读各闲置位配置的闲置计时器;
对于获取到闲置计时器的闲置位,将闲置计时器的计数加1;
对于未获取到闲置计时器的闲置位,为所述闲置位设置闲置计时器,并将闲置计时器的计数设置为1。
所述的数据报文的丢包观测方法,其中,所述当存在闲置位时,读取所述闲置位的闲置时长具体包括:
当存在闲置位时,读取所述闲置位的闲置计时器的计数,并将读取到的计数作为闲置位的闲置时长。
所述的数据报文的丢包观测方法,其中,所述将第一数据报文的报文指针存入预设的排序窗口之后,所述方法还包括:
检查所述第一数据报文对应的窗口位置是否配置有闲置计时器;
当配置有闲置计时器时,将所述闲置计时器去除。
本申请第二方面提供了一种数据报文的丢包观测装置,其中,所述的数据报文的丢包观测装置具体包括:
检测模块,用于每当接收到第一数据报文时,将第一数据报文的报文指针存入预设的排序窗口,并检测预设的排序窗口中是否存在符合闲置位条件的闲置位,其中,所述闲置位条件为未存入报文指针且位于第二数据报文对应的窗口位置之前,第二数据报文为所述排序窗口中位于最后的报文指针对应的数据报文;
读取模块,用于当存在闲置位时,读取所述闲置位的闲置时长;
判定模块,用于当所述闲置时长达到预设时长时,判定所述闲置位对应的数据报文丢包,并将所述闲置位标记为数据报文丢失位。
本申请第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上任一所述的数据报文的丢包观测方法中的步骤。
本申请第四方面提供了一种终端设备,其包括:处理器和存储器;
所述存储器上存储有可被所述处理器执行的计算机可读程序;
所述处理器执行所述计算机可读程序时实现如上任一所述的数据报文的丢包观测方法中的步骤。
有益效果:与现有技术相比,本申请提供了一种数据报文的丢包观测方法、装置、设备及存储介质,方法包括每当接收到第一数据报文,将第一数据报文的报文指针存入预设的排序窗口,并检测所述排序窗口中是否存在符合闲置位条件的闲置位;当存在闲置位时,读取所述闲置位的闲置时长;当所述闲置时长达到预设时长时,判定所述闲置位对应的数据报文丢包,并将所述闲置位标记为数据报文丢失位。本申请在接收到数据报文时将数据报文的报文指针存入排序窗口,通过排序窗口对报文指针进行缓存,并根据排序窗口中的窗口位置的闲置时长来对窗口位置对应的数据报文进行观测,以确定数据报文是否丢包,这样可以在对数据报文进行排序的过程中直接观测到丢包的数据报文,无需从内核传输大量的数据报文,降低了丢包观测对系统性能的影响。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的数据报文的丢包观测方法的流程图。
图2为本申请实施例提供的数据报文的丢包观测方法中步骤S10的流程示意图。
图3为本申请实施例提供的数据报文的丢包观测方法中的闲置计数器的更新过程的示意图。
图4为本申请实施例提供的数据报文的丢包观测装置的结构原理图。
图5为本申请实施例提供的终端设备的结构原理图。
具体实施方式
本申请实施例提供一种数据报文的丢包观测方法、装置、设备及存储介质,为使本申请的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本申请进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
应理解,本实施例中各步骤的序号和大小并不意味着执行顺序的先后,各过程的执行顺序以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
经过研究发现,UDP(UserDatagram Protocol,用户数据报协议)技术因其具有的实时性和可靠性被大量应用于局域网环境。但是,但由于UDP协议本身是种不可靠协议,即它不会去检测是否建立连接,以及CPU缓存区是否够用,所以存在不可避免的丢包现象。目前对于通过UDP协议传输的数据文件的丢包观测方法普遍是通过tcpdump等网络抓包工具获取所有UDP网络报文并生成pcap文件,然后用wireshark工具进行手动分析。此方法需要从内核传输大量的数据报文并保存到文件,对系统性能影响较大。
为了解决上述问题,在本申请实施例中,每当接收到第一数据报文,将第一数据报文的报文指针存入预设的排序窗口,并检测所述排序窗口中是否存在符合闲置位条件的闲置位;当存在闲置位时,读取所述闲置位的闲置时长;当所述闲置时长达到预设时长时,判定所述闲置位对应的数据报文丢包,并将所述闲置位标记为数据报文丢失位。本申请在接收到数据报文时将数据报文的报文指针存入排序窗口,通过排序窗口对报文指针进行缓存,并根据排序窗口中的窗口位置的闲置时长来对窗口位置对应的数据报文进行观测,以确定数据报文是否丢包,这样可以在对数据报文进行排序的过程中直接观测到丢包的数据报文,无需从内核传输大量的数据报文,降低了丢包观测对系统性能的影响。
下面结合附图,通过对实施例的描述,对申请内容作进一步说明。
本实施例提供了一种数据报文的丢包观测方法,如图1所示,所述方法包括:
S10、每当接收到第一数据报文时,将第一数据报文的报文指针存入预设的排序窗口,并检测预设的排序窗口中是否存在符合闲置位条件的闲置位。
具体地,第一数据报文为通过UDP协议传输的,报文指针为通过解析第一数据报文的报文头得到的。也就是说,每当接收到第一数据报文后,读取第一数据报文的报文头,并解析读取到的报文头以得到报文指针,然后将报文指针存储于排序窗口。这样在接收到第一数据报文后,无需将数据报文存储于排序窗口,然后再从排序窗口移动至存储队列,仅需要将数据报文的报文指针存储于排序窗口,再从排序窗口移动至存储队列,这样在对数据报文进行排序时,仅需要读取数据报文的报文头,无需读取数据报文的全部数据内容,不但减少了排序窗口和存储队列所占用的存储空间,还提高数了据报文存入排序窗口和从第一排队序列转入存储队列所花费的时间,进而提高了数据报文的排序效率。
排序窗口用于对接收到的数据报文进行排序,也就是说,通过UDP协议接收到的无序数据报文通过排序窗口进行排序。排序窗口通过滑窗形式来对数据报文进行排序,滑窗指的是在报文序号所形成的序号队列上滑动。具体的,排序窗口对应一段报文序号段,排序窗口对应的报文序号段随着排序窗口的滑动而变化。其中,排序窗口设置有若干窗口位置,若干窗口位置中的每个窗口位置均与排序窗口对应的报文序号段中的一个报文序号相对于,并且当两个窗口位置对应的位置编号连续时,两个窗口位置对应的报文序号也连续。例如,假设排序窗口包括50个窗口位置,位置编号分别为1-50,那么排序窗口对应的报文序号段包括50个连续报文序号,记为报文序号1-报文序号50,那么位置编号1对应的报文序列1,位置编号2对应报文编号2,...,位置编码50对应报文序号50。
闲置位条件为预先构建的,用于判断排序窗口中的窗口位置是否为闲置位的依据,也就是说,每当接收到第一数据报文后,会依据闲置条件来判断排序窗口是否存在闲置位,其中,当未存在闲置位时,表示当前时刻排序窗口对应的报文序列段中未出现数据报文丢包情况;当存在闲置位时,说明当前时刻排序窗口对应的报文序列段中出现数据报文丢包情况,或者是,出现因数据报文晚到而导致的窗口位置空闲的情况。因此,闲置位条件为作为数据报文丢包的前提条件,即只有当排序窗口中存在满足闲置条件的闲置位时,排序窗口对应的报文序号段中才可能会存在数据报文丢包的情况。
闲置位条件可以为未存入报文指针且位于第二数据报文对应的窗口位置之前,第二数据报文为所述排序窗口中位于最后的报文指针对应的数据报文。也就是说,当前接收时刻,排序窗口中存在为晚到数据报文预留的空闲窗口位置,其中,晚到数据报文指定的数据报文的报文序号位于排在排序窗口中位于最后的第二数据报文的报文序号之前,并且在第二数据报文接收到时,该晚到数据报文未接收到。例如,排序窗口包括位置编号为1-50的50个窗口位置,其中,第二数据报文对应的位置编号为40,排序窗口中存在一个位置编号为20的窗口位置处于空闲状态,那么位置编号为20的窗口位置为闲置位。
进一步,每当接收到第一数据报文时,此外,每当接收到第一数据报文时,均会将第一数据报文的报文指针存入排序窗口。而由于第一数据报文存入排序窗口后,会使得排序窗口内的位置窗口的位置状态均会发生变化。因此,本申请实施例每当接收到第一数据报文时,对排序窗口中的各排序位置的报文编号对应的数据报文进行丢包判定,这样一方面可以及时检查到数据报文丢包的情况,另一方面也可以通过一个操作来同步触发排序操作和丢包观测操作,使得乱序重排和数据丢包观测同步执行,无需单独触发丢包观测操作,简化了丢包观测的操作流程。
在一些实现方式中,如图2所示,所述将第一数据报文的报文指针存入预设的排序窗口具体包括:
S11、读取所述第一数据报文的报文指针,以及所述排序窗口中位于第一位的目标窗口位置的报文序号;
S12、根据所述第一数据报文的报文序号和所述目标窗口位置的报文序号,判断所述排序窗口是否存在用于存入所述第一数据报文的第一窗口位置;
S13、当存在第一窗口位置时,将所述报文指针存入预设的排序窗口;
S14、当未存在第一窗口位置时,滑动排序窗口直至所述排序窗口中存入第一窗口位置。
具体地,位于第一位的目标窗口位置的报文序号指的是排序窗口对应的报文序号段的起始报文序号。第一数据报文的报文序号可以通过对第一数据报文的报文指针进行解析得到的,也就是说,第一报文序号可以是第一数据报文携带的报文IP标识,其中,第一报文序号可以通过解析第一数据报文的报文头得到的。
在获取到第一数据报文的报文序号和目标窗口位置的报文序号后,由于排序窗口对应报文序号段,从而在获取到目标窗口位置的报文序号后,可以知道排序窗口对应的报文序号段的终止报文序号,然后将第一数据报文的报文序号与终止报文序号进行比较,若第一数据报文的报文序号位于终止报文序号之前,或者与终止报文序号相同,则说明排序窗口存在用于存入所述第一数据报文的第一窗口位置,反之,若第一数据报文的报文序号位于终止报文序号之后,则说明排序窗口不存在用于存入所述第一数据报文的第一窗口位置。其中,当存在第一窗口位置时,可以直接将第一数据报文的报文指针存入第一窗口位置,当未存在第一窗口位置时,则需要滑动排序窗口对应的报文序号段以使得排序窗口存在第一窗口位置。
进一步,所述排序窗口的滑动过程为:按照从前向后顺序从所述排序窗口中选取连续报文指针序列,将所述连续报文指针序列转入预设的存储队列,以及将目标窗口位置移动至所述连续报文指针序列中的最后报文指针的后一窗口位置。其中,连续报文指针序列指的是排序窗口中完成排序的窗口位置段所对应的子报文序号段,完成排序的窗口位置段可以仅包括存储有报文指针的窗口位置,也可以包括存储有报文指针的窗口位置和标记为数据报文丢失位的窗口位置。
在本申请实施例的一个实现方式中,所述按照从前向后顺序从排序窗口中选取连续报文指针序列具体包括:
读取所述排序窗口中位于最前的第三数据报文对应的第二窗口位置;
当所述第二窗口位置为目标窗口位置时,以所述第二窗口位置对应的第三数据报文为起始数据报文,按照从前向后顺序从排序窗口中选取连续报文指针序列;
当所述第二窗口位置不为目标窗口位置时,检测所述第二窗口位置之前的各第三窗口位置是否为数据报文丢失位,在各第三窗口位置均为数据报文丢失位时,以所述第二窗口位置对应的第三数据报文为起始数据报文,按照从前向后顺序从排序窗口中选取连续报文指针序列,在存在第三窗口不为数据报文丢失位时,控制将第一数据报文的报文指针存入预设的排序窗口的存入操作处于等待状态,直至各第三窗口位置均为数据报文丢失位或者接收到不为数据报文丢失位的第三窗口位置存入报文指针。
具体地,第二窗口位置为第一个存储有报文指针的窗口位置,其中,当第二窗口位置为目标窗口位置时,说明第二窗口位置之前不存在空置位,从而可以直接以所述第二窗口位置对应的第三数据报文为起始数据报文,按照从前向后顺序从排序窗口中选取连续报文指针序列。反之,当第二窗口位置不为目标窗口位置时,说明第二窗口位置前存在未放置报文指针的窗口位置,即存在空置位。那么可以先读取该闲置位的位置状态,当各闲置位的位置状态均为数据报文丢失位时,判定第二窗口位置前的各窗口位置对应的数据报文丢包,可以直接以所述第二窗口位置对应的第三数据报文为起始数据报文,按照从前向后顺序从排序窗口中选取连续报文指针序列。反之,当第二窗口位置前的各窗口位置中存在不为数据报文丢包的窗口位置时,则需要等待直至接收到该窗口位置对应的数据报文或者该窗口位置被标记为数据报文丢失位。此外,值得说明的是,在等待过程中,会继续执行接收第一数据报文的操作,并将处于等待的第一数据报文的报文直至存储于临时存储空间,当该第一数据报文对应的等待操作结束后,再将执行按照从前向后顺序从排序窗口中选取连续报文指针序列的步骤。
在一些实现方式中,所述以所述第二窗口位置对应的第三数据报文为起始数据报文,按照从前向后顺序从排序窗口中选取连续报文指针序列具体包括:
以所述第二窗口位置对应的第三数据报文为起始数据报文,按照从前向后顺序从排序窗口中选取子连续报文指针序列,并读取排序窗口中距离所述子连续报文指针序列中位于最后的第四数据报文最近的第五数据报文;
读取第四数据报文和第五数据报文间的各窗口位置的窗口位置状态;
当读取到的所有窗口位置状态均为数据报文丢失位时,将第五数据报文作为起始数据报文,并执行按照从前向后顺序从排序窗口中选取子连续报文指针序列,直至读取到的所有窗口位置状态中存在非数据报文丢失位;
将选取的所有子连续报文指针序列构成的报文序列作为转入预设的存储队列的连续报文指针序列。
具体地,在连续报文指针序列时,除了第三窗口位置可能会存在数据报文丢失位外,第二窗口位置之后的窗口位置也可以存在数据报文丢失位,而在连续报文指针序列选取过程中,数据报文丢失位也会被作为已经完成排序的窗口位置被选取。基于此,在以第二窗口位置选取到子连续报文指针序列后,会检测造成读取连续报文指针操作中断的中断窗口位置是否真中断,也就是说,检测读取第四数据报文和第五数据报文间的各窗口位置的窗口位置状态,当各窗口位置的窗口位置状态均被记录为数据报文丢失位时,说明中断窗口为假中断,此时在将第五数据报文作为起始数据报文,继续从前向后顺序从排序窗口中选取子连续报文指针序列。反之,当各窗口位置的窗口位置状态中存在未被记录为数据报文丢失位的窗口位置时,说明中断窗口为真中断,则完成连续报文指针序列的选取操作。此外,值得说明的是,当各窗口位置的窗口位置状态中存在未被记录为数据报文丢失位的窗口位置时,可以将该未被记录为数据报文丢失位的窗口位置之前的位置窗口对应的报文序号添加到连续报文指针序列,以避免该这些窗口位置的位置状态的重复检测。
S20、当存在闲置位时,读取所述闲置位的闲置时长。
具体地,闲置时长指的是窗口位置的空闲次数,其中,空闲次数指的是在窗口位置进入空置状态后接收到的第一数据报文的次数。也就是说,空闲时长用于反映闲置位对应的数据报文的晚到时长。其中,空置时长可以通过读取存入时间晚于闲置位进入空闲状态的进入时间的数据报文的报文数量来得到,也就是说,排序窗口中的每窗口位存入的报文指针均对应有存入时间,闲置位对应有进入时间,然后根据存入时间和进入时间可以确定闲置位的闲置时长。
进一步,为了避免记录各窗口位置的存入时间所需要花费的时长,以及由于读取连续报文指针序列而将晚于进入时间的数据报文转入存储队列而导致闲置时长读取错误的问题。在本申请实施例的一个实现方式中,为每个闲置位配置一个闲置计数器,在该闲置位进入空闲状态后,每当存入一个报文指针时,均会将该闲置计数器的计数加1,依此来记录闲置位的闲置时长,这样通过闲置位本身就可以获取到闲置时长。基于此,所述当存在闲置位时,读取所述闲置位的闲置时长具体包括:当存在闲置位时,读取所述闲置位的闲置计时器的计数,并将读取到的计数作为闲置位的闲置时长。
此外,需要说明的是,在将第一数据报文的报文指针存入排序窗口后,需要对闲置位的闲置计时器进行更新。相应的,所述将第一数据报文的报文指针存入预设的排序窗口之后,如图3所示,所述方法还包括:
S210、读取所述排序窗口中符合闲置位条件的闲置位,并获取读各闲置位配置的闲置计时器;
S220、对于获取到闲置计时器的闲置位,将闲置计时器的计数加1;
S230、对于未获取到闲置计时器的闲置位,为所述闲置位设置闲置计时器,并将闲置计时器的计数设置为1。
具体地,闲置位的选取过程在上述过程中已经说明,这里就不再具体说明。在读取到闲置位后,可以获取各闲置位的闲置计时器的闲置位,对于获取到闲置计时器的闲置位,则可以直接将闲置计时器的计数加1,对于未获取到闲置计时器的闲置位,说明该窗口位置刚进入空闲状态,因此可以为该闲置位设置闲置计时器,并将闲置计时器的计数设置为1。这就使得闲置计时器的计数与窗口位置被作为预留位置的预留次数相同,从而可以快速确定的闲置位对应的数据报文的晚到时长,从而可以根据晚到时长来判定数据报文是否丢包。
在一些实现方式中,所述将第一数据报文的报文指针存入预设的排序窗口之后,所述方法还包括:
检查所述第一数据报文对应的窗口位置是否配置有闲置计时器;
当配置有闲置计时器时,将所述闲置计时器去除。
具体地,由于第一数据报文对应的窗口位置也可以为闲置位,从而在将第一数据报文的报文指针存入排序窗口后,需要检查第一数据报文对应的窗口位置是否配置有闲置计时器,当存在闲置计时器时,删除所述闲置计数器,以提高闲置位和闲置计时器的匹配性。
S30、若所述闲置时长达到预设时长时,则判定所述闲置位对应的数据报文丢包,并将所述闲置位标记为数据报文丢失位。
具体地,预设时长为预先设置的,用于判断闲置位对应的数据报文是否丢包的依据,也就是说,当闲置时长达到预设时长时,说明闲置位对应的数据报文丢包,反之,当闲置时长未达到预设时长时,说明闲置位对应的数据报文处于晚到状态,而未被判定为丢包。此外,当所述闲置位标记为数据报文丢失位后,可以将闲置位对应的闲置计时器去除,这样无需对处于数据报文丢失位进行闲置时长标记,可以减少排序和丢包观测的操作步骤,进而可以提高排序和丢包检测的时效性。
综上所述,本实施例提供了一种数据报文的丢包观测方法、装置、设备及存储介质,方法包括每当接收到第一数据报文,将报文指针存入排序窗口并检测排序窗口中是否存在符合闲置位条件的闲置位;当存在闲置位时,读取闲置位的闲置时长;当闲置时长达到预设时长时,判定闲置位对应的数据报文丢包,并将闲置位标记为数据报文丢失位。本申请在接收到数据报文时将报文指针存入排序窗口,通过排序窗口对报文指针进行缓存,并根据排序窗口中的窗口位置的闲置时长来对窗口位置对应的数据报文进行观测,以确定数据报文是否丢包,这样可以在对数据报文进行排序的过程中直接观测到丢包的数据报文,无需从内核传输大量的数据报文,降低了丢包观测对系统性能的影响。
基于上述的数据报文的丢包观测方法,本申请实施了提供了一种数据报文的丢包观测装置,如图4所示,所述的数据报文的丢包观测装置具体包括:
检测模块100,用于每当接收到第一数据报文时,将第一数据报文的报文指针存入预设的排序窗口,并检测预设的排序窗口中是否存在符合闲置位条件的闲置位,其中,所述闲置位条件为未存入报文指针且位于第二数据报文对应的窗口位置之前,第二数据报文为所述排序窗口中位于最后的报文指针对应的数据报文;
读取模块200,用于当存在闲置位时,读取所述闲置位的闲置时长;
判定模块300,用于当所述闲置时长达到预设时长时,判定所述闲置位对应的数据报文丢包,并将所述闲置位标记为数据报文丢失位。
基于上述的数据报文的丢包观测方法,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上述实施例所述的数据报文的丢包观测方法中的步骤。
基于上述数据报文的丢包观测方法,本申请还提供了一种终端设备,如图5所示,其包括至少一个处理器(processor)20;显示屏21;以及存储器(memory)22,还可以包括通信接口(Communications Interface)23和总线24。其中,处理器20、显示屏21、存储器22和通信接口23可以通过总线24完成相互间的通信。显示屏21设置为显示初始设置模式中预设的用户引导界面。通信接口23可以传输信息。处理器20可以调用存储器22中的逻辑指令,以执行上述实施例中的方法。
此外,上述的存储器22中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器22作为一种计算机可读存储介质,可设置为存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令或模块。处理器20通过运行存储在存储器22中的软件程序、指令或模块,从而执行功能应用以及数据处理,即实现上述实施例中的方法。
存储器22可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器。例如,U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
此外,上述存储介质以及终端设备中的多条指令处理器加载并执行的具体过程在上述方法中已经详细说明,在这里就不再一一陈述。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种数据报文的丢包观测方法,其特征在于,所述的数据报文的丢包观测方法具体包括:
每当接收到第一数据报文时,将第一数据报文的报文指针存入预设的排序窗口,并检测预设的排序窗口中是否存在符合闲置位条件的闲置位,其中,所述闲置位条件为未存入报文指针且位于第二数据报文对应的窗口位置之前,第二数据报文为所述排序窗口中位于最后的报文指针对应的数据报文;
当存在闲置位时,读取所述闲置位的闲置时长;
若所述闲置时长达到预设时长时,则判定所述闲置位对应的数据报文丢包,并将所述闲置位标记为数据报文丢失位。
2.根据权利要求1所述的数据报文的丢包观测方法,其特征在于,所述将第一数据报文的报文指针存入预设的排序窗口具体包括:
读取所述第一数据报文的报文指针,以及所述排序窗口中位于第一位的目标窗口位置的报文序号;
根据所述第一数据报文的报文序号和所述目标窗口位置的报文序号,判断所述排序窗口是否存在用于存入所述第一数据报文的第一窗口位置;
当存在第一窗口位置时,将所述报文指针存入预设的排序窗口;
当未存在第一窗口位置时,滑动排序窗口直至所述排序窗口中存入第一窗口位置,其中,所述排序窗口的滑动过程为:
按照从前向后顺序从所述排序窗口中选取连续报文指针序列,将所述连续报文指针序列转入预设的存储队列,以及将目标窗口位置移动至所述连续报文指针序列中的最后报文指针的后一窗口位置。
3.根据权利要求2所述的数据报文的丢包观测方法,其特征在于,所述按照从前向后顺序从所述排序窗口中选取连续报文指针序列具体包括:
读取所述排序窗口中位于最前的第三数据报文对应的第二窗口位置;
当所述第二窗口位置为目标窗口位置时,以所述第二窗口位置对应的第三数据报文为起始数据报文,按照从前向后顺序从排序窗口中选取连续报文指针序列;
当所述第二窗口位置不为目标窗口位置时,检测所述第二窗口位置之前的各第三窗口位置是否为数据报文丢失位,在各第三窗口位置均为数据报文丢失位时,以所述第二窗口位置对应的第三数据报文为起始数据报文,按照从前向后顺序从排序窗口中选取连续报文指针序列,在存在第三窗口不为数据报文丢失位时,控制将第一数据报文的报文指针存入预设的排序窗口的存入操作处于等待状态,直至各第三窗口位置均为数据报文丢失位或者接收到不为数据报文丢失位的第三窗口位置存入报文指针。
4.根据权利要求3所述的数据报文的丢包观测方法,其特征在于,所述以所述第二窗口位置对应的第三数据报文为起始数据报文,按照从前向后顺序从排序窗口中选取连续报文指针序列具体包括:
以所述第二窗口位置对应的第三数据报文为起始数据报文,按照从前向后顺序从排序窗口中选取子连续报文指针序列,并读取排序窗口中距离所述子连续报文指针序列中位于最后的第四数据报文最近的第五数据报文;
读取第四数据报文和第五数据报文间的各窗口位置的窗口位置状态;
当读取到的所有窗口位置状态均为数据报文丢失位时,将第五数据报文作为起始数据报文,并执行按照从前向后顺序从排序窗口中选取子连续报文指针序列,直至读取到的所有窗口位置状态中存在非数据报文丢失位;
将选取的所有子连续报文指针序列构成的报文序列作为转入预设的存储队列的连续报文指针序列。
5.根据权利要求1所述的数据报文的丢包观测方法,其特征在于,所述将第一数据报文的报文指针存入预设的排序窗口之后,所述方法还包括:
读取所述排序窗口中符合闲置位条件的闲置位,并获取读各闲置位配置的闲置计时器;
对于获取到闲置计时器的闲置位,将闲置计时器的计数加1;
对于未获取到闲置计时器的闲置位,为所述闲置位设置闲置计时器,并将闲置计时器的计数设置为1。
6.根据权利要求5所述的数据报文的丢包观测方法,其特征在于,所述当存在闲置位时,读取所述闲置位的闲置时长具体包括:
当存在闲置位时,读取所述闲置位的闲置计时器的计数,并将读取到的计数作为闲置位的闲置时长。
7.根据权利要求5所述的数据报文的丢包观测方法,其特征在于,所述将第一数据报文的报文指针存入预设的排序窗口之后,所述方法还包括:
检查所述第一数据报文对应的窗口位置是否配置有闲置计时器;
当配置有闲置计时器时,将所述闲置计时器去除。
8.一种数据报文的丢包观测装置,其特征在于,所述的数据报文的丢包观测装置具体包括:
检测模块,用于每当接收到第一数据报文时,将第一数据报文的报文指针存入预设的排序窗口,并检测预设的排序窗口中是否存在符合闲置位条件的闲置位,其中,所述闲置位条件为未存入报文指针且位于第二数据报文对应的窗口位置之前,第二数据报文为所述排序窗口中位于最后的报文指针对应的数据报文;
读取模块,用于当存在闲置位时,读取所述闲置位的闲置时长;
判定模块,用于当所述闲置时长达到预设时长时,判定所述闲置位对应的数据报文丢包,并将所述闲置位标记为数据报文丢失位。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1-7任意一项所述的数据报文的丢包观测方法中的步骤。
10.一种终端设备,其特征在于,包括:处理器和存储器;
所述存储器上存储有可被所述处理器执行的计算机可读程序;
所述处理器执行所述计算机可读程序时实现如权利要求1-7任意一项所述的数据报文的丢包观测方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410010614.1A CN117527641B (zh) | 2024-01-04 | 2024-01-04 | 数据报文的丢包观测方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410010614.1A CN117527641B (zh) | 2024-01-04 | 2024-01-04 | 数据报文的丢包观测方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117527641A CN117527641A (zh) | 2024-02-06 |
CN117527641B true CN117527641B (zh) | 2024-03-15 |
Family
ID=89764870
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410010614.1A Active CN117527641B (zh) | 2024-01-04 | 2024-01-04 | 数据报文的丢包观测方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117527641B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111786748A (zh) * | 2019-08-29 | 2020-10-16 | 北京京东尚科信息技术有限公司 | 数据重传方法和系统、网卡、装置、服务器和存储介质 |
CN111953568A (zh) * | 2020-08-19 | 2020-11-17 | 杭州迪普科技股份有限公司 | 丢包信息管理方法与装置 |
CN115514683A (zh) * | 2022-09-21 | 2022-12-23 | 北京东土军悦科技有限公司 | 丢包原因确定方法、装置、交换芯片及存储介质 |
CN116016351A (zh) * | 2022-12-13 | 2023-04-25 | 湖南麒麟信安科技股份有限公司 | 基于eBPF的UDP流量和丢包观测方法、系统及介质 |
CN116830543A (zh) * | 2022-01-11 | 2023-09-29 | 华为技术有限公司 | 丢包处理方法、装置、交换机、发送设备和数据传输系统 |
CN116827827A (zh) * | 2023-08-07 | 2023-09-29 | 苏州盛科通信股份有限公司 | 一种实现丢包和时延测量的方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230261973A1 (en) * | 2021-06-09 | 2023-08-17 | Rockport Networks Inc. | Method for distributing multipath flows in a direct interconnect network |
-
2024
- 2024-01-04 CN CN202410010614.1A patent/CN117527641B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111786748A (zh) * | 2019-08-29 | 2020-10-16 | 北京京东尚科信息技术有限公司 | 数据重传方法和系统、网卡、装置、服务器和存储介质 |
CN111953568A (zh) * | 2020-08-19 | 2020-11-17 | 杭州迪普科技股份有限公司 | 丢包信息管理方法与装置 |
CN116830543A (zh) * | 2022-01-11 | 2023-09-29 | 华为技术有限公司 | 丢包处理方法、装置、交换机、发送设备和数据传输系统 |
CN115514683A (zh) * | 2022-09-21 | 2022-12-23 | 北京东土军悦科技有限公司 | 丢包原因确定方法、装置、交换芯片及存储介质 |
CN116016351A (zh) * | 2022-12-13 | 2023-04-25 | 湖南麒麟信安科技股份有限公司 | 基于eBPF的UDP流量和丢包观测方法、系统及介质 |
CN116827827A (zh) * | 2023-08-07 | 2023-09-29 | 苏州盛科通信股份有限公司 | 一种实现丢包和时延测量的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN117527641A (zh) | 2024-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2868045B1 (en) | A method of and network server for detecting data patterns in an input data stream | |
US7477644B2 (en) | Method and system of efficient packet reordering | |
US8694701B2 (en) | Recovering dropped instructions in a network interface controller | |
US20030110166A1 (en) | Queue management | |
CN113835902B (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
CN109474614A (zh) | 一种多协议的解析方法及系统 | |
CN113157465B (zh) | 基于指针链表的消息发送方法及装置 | |
CN107094085B (zh) | 一种信令传送方法及装置 | |
CN111181819A (zh) | 一种基于链表结构的接收多字节数据帧的串口通讯方法 | |
CN117527641B (zh) | 数据报文的丢包观测方法、装置、设备及存储介质 | |
CN112688885B (zh) | 一种报文处理方法及装置 | |
US5948079A (en) | System for non-sequential transfer of data packet portions with respective portion descriptions from a computer network peripheral device to host memory | |
CN116909767A (zh) | 一种通道可扩展的流程消息处理方法 | |
CN117527937B (zh) | 基于排序窗口的数据报文的排序方法、装置及设备 | |
JP2003524225A (ja) | コンピュータシステムのエラーを処理する方法及び装置 | |
CN112433977B (zh) | 一种基于vb环境下电测系统多台串口设备通讯方法 | |
CN107239378B (zh) | 一种超时监测方法及系统 | |
CN113645008A (zh) | 一种基于链表的报文协议超时重发方法及系统 | |
US7500239B2 (en) | Packet processing system | |
CN116760744B (zh) | 丢包统计方法、装置及电子设备 | |
CN112968817A (zh) | 一种数字信息传输中的丢包数据统计方法及终端 | |
CN109413064B (zh) | 单网卡VxWorks系统与多主机间应用层协议报文处理方法 | |
CN117527714A (zh) | 数据报文的读取方法、装置、设备及存储介质 | |
CN117834570B (zh) | 传输系统的数据包处理方法、装置、电子设备及存储介质 | |
CN112817536B (zh) | 一种数据包的捕获方法及相关装置 |
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 |