CN107872363A - 数据包丢失的处理方法、系统、可读存储介质及电子设备 - Google Patents
数据包丢失的处理方法、系统、可读存储介质及电子设备 Download PDFInfo
- Publication number
- CN107872363A CN107872363A CN201710943349.2A CN201710943349A CN107872363A CN 107872363 A CN107872363 A CN 107872363A CN 201710943349 A CN201710943349 A CN 201710943349A CN 107872363 A CN107872363 A CN 107872363A
- Authority
- CN
- China
- Prior art keywords
- data
- statistical information
- packet
- data forwarding
- running position
- 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.)
- Granted
Links
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
技术领域
本公开涉及丢包检测领域,具体地,涉及一种数据包丢失的处理方法、系统、可读存储介质及电子设备。
背景技术
在数据包的转发过程中,会因为系统内存不足、数据包不合法、路由错误等异常原因导致数据包转发失败而丢失该数据包。现有技术中,许多数据包处理平台运行在用户态,传统的基于内核的丢包诊断工具不再适用于该运行在用户态的数据包处理平台,因此,对丢包问题进行监控和调试非常困难。
现有技术中,在对转发异常的数据包进行跟踪时,需要技术人员通过硬编码的方式在程序代码中可能丢包的位置加入监控点,这种方案有以下缺点:
(1)增加了编码工作量,且对可能丢包位置的判断可能会根据技术人员的经验和技术水平的不同而不同,给程序员带来了额外的工作负担,且难以完全监控丢包问题。
(2)在对业务逻辑的代码进行修改时,如果未相应地修改监控点的代码,则会出现监控点和被监控位置不对应的现象。
(3)统计信息在数据转发进程中进行数据处理,会影响其数据转发性能和数据转发进程的稳定性。
发明内容
本公开的目的是提供一种数据包丢失的处理方法、系统、可读存储介质及电子设备,以解决上述技术问题。
为了实现上述目的,根据本公开的第一方面,提供一种数据包丢失的处理方法,所述方法包括:在开启数据包丢失统计模式的情况下,数据转发进程在数据包转发失败时,获取所述数据转发进程的当前运行位置;根据所述当前运行位置,更新统计信息存储区域中的存储内容,所述统计信息存储区域用于存储所述数据转发进程在每次数据包转发失败时的运行位置和在该运行位置发生数据包转发失败的次数;释放转发失败的所述数据包。
可选地,所述根据所述当前运行位置,更新统计信息存储区域中的存储内容,包括:若所述统计信息存储区域中存储有所述当前运行位置,将在该运行位置发生数据包转发失败的次数增加一次;若所述统计信息存储区域中未存储有所述当前运行位置,将所述当前运行位置添加至所述统计信息存储区域,并将在该运行位置发生数据包转发失败的次数增加一次。
可选地,所述方法还包括:统计信息收集进程接收用户设定指令,所述用户设定指令用于指示用户设定的统计时长;所述统计信息收集进程向所述数据转发进程发送数据包丢失统计指令,所述数据包丢失统计指令包括所述统计时长;所述数据转发进程响应于所述数据包丢失统计指令,开启所述数据包丢失统计模式;在所述数据包丢失统计模式的开启时长达到所述统计时长时,退出所述数据包丢失统计模式。
可选地,所述方法还包括:所述数据转发进程在退出所述数据包丢失统计模式时,向所述统计信息收集进程发送统计结束指令;所述统计信息收集进程响应于所述统计结束指令,获取所述统计信息存储区域中的内容,其中,所述统计信息收集进程与所述数据转发进程共享所述统计信息存储区域;对所获取到的内容进行数据处理,获得丢包统计结果;输出所述丢包统计结果。
可选地,所述用户设定指令还用于指示用户设定的期望输出格式;所述对所获取到的内容进行数据处理,获得丢包统计结果,包括:按照所述期望输出格式对所获取到的内容进行数据处理,获得丢包统计结果。
可选地,所述统计信息收集进程为所述数据转发进程的从进程。
根据本公开的第二方面,提供一种数据包丢失的处理系统,所述系统包括:数据转发进程和统计信息存储区域,其中,所述数据转发进程用于在开启数据包丢失统计模式的情况下,数据转发进程在数据包转发失败时,获取所述数据转发进程的当前运行位置;所述数据转发进程用于根据所述当前运行位置,更新所述统计信息存储区域中的存储内容,所述统计信息存储区域用于存储所述数据转发进程在每次数据包转发失败时的运行位置和在该运行位置发生数据包转发失败的次数;所述数据转发进程用于释放转发失败的所述数据包。
可选地,所述数据转发进程用于:若所述统计信息存储区域中存储有所述当前运行位置,将在该运行位置发生数据包转发失败的次数增加一次;
若所述统计信息存储区域中未存储有所述当前运行位置,将所述当前运行位置添加至所述统计信息存储区域,并将在该运行位置发生数据包转发失败的次数增加一次。
可选地,所述系统还包括统计信息收集进程:所述统计信息收集进程用于统计信息收集进程接收用户设定指令,所述用户设定指令用于指示用户设定的统计时长,并向所述数据转发进程发送数据包丢失统计指令,所述数据包丢失统计指令包括所述统计时长;所述数据转发进程还用于响应于所述数据包丢失统计指令,开启所述数据包丢失统计模式,并在所述数据包丢失统计模式的开启时长达到所述统计时长时,退出所述数据包丢失统计模式。
可选地,所述数据转发进程还用于在退出所述数据包丢失统计模式时,向所述统计信息收集进程发送统计结束指令;所述统计信息收集进程用于响应于所述统计结束指令,获取所述统计信息存储区域中的内容,其中,所述统计信息收集进程与所述数据转发进程共享所述统计信息存储区域;所述统计信息收集进程用于对所获取到的内容进行数据处理,获得丢包统计结果,并输出所述丢包统计结果。
可选地,所述用户设定指令还用于指示用户设定的期望输出格式;所述统计信息收集进程用于按照所述期望输出格式对所获取到的内容进行数据处理,获得丢包统计结果。
可选地,所述统计信息收集进程为所述数据转发进程的从进程。
根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面所述方法的步骤。
根据本公开的第四方面,提供一种电子设备,包括:第三方面所述的计算机可读存储介质;以及一个或者多个处理器,用于执行所述计算机可读存储介质中的程序。
在上述技术方案中,数据转发进程可以在开启数据包丢失统计模式的情况下,在释放转发失败的数据包之前,根据数据转发进程在数据包转发失败时的当前运行位置,更新统计信息存储区域中的存储内容。因此,通过上述技术方案,技术人员在不需要大量修改现有代码的前提下,可以在每个数据包转发失败时自动进行丢包统计,从而可以有效减少技术人员的工作量,并且修改业务逻辑后,不需要对其他代码进行修改就可对转发失败的数据包进行数据包丢失统计。另外,数据转发进程只需要将统计信息存储至统计信息存储区域中,而不需要对该统计信息存储区域存储的内容进行数据处理,可以保证数据转发进程的转发性能,提高数据转发进程的稳定性。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据本公开的一种实施方式提供的数据包丢失的处理方法的流程图;
图2是根据本公开的一种实施方式提供的数据包丢失的处理系统的示意图;
图3是根据本公开的另一种实施方式提供的统计信息收集进程与数据转发进程的信令交互图;
图4是根据本公开的另一种实施方式提供的统计信息收集进程与数据转发进程的信令交互图;
图5是根据一示例性实施例示出的一种电子设备的框图;
图6是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
根据本公开的第一方面,提供一种数据包丢失的处理方法,该方法适用于运行在用户态的数据包处理平台,包括但不限于DPDK(Data Plane Development Kit,数据平面开发套件)平台。
图1是根据本公开的一种实施方式提供的数据包丢失的处理方法的流程图,如图1所示,该方法包括:
在S11中,在开启数据包丢失统计模式的情况下,数据转发进程在数据包转发失败时,获取数据转发进程的当前运行位置。
当数据包转发失败时,数据转发进程会通过数据包释放函数将该转发失败的数据包释放,此时,便会丢失该数据包。本公开中,在开启数据包丢失统计模式的情况下,数据转发进程在释放该数据包之前需要先获取数据转发进程的当前运行位置,即发生数据包转发失败的代码的位置。
图2为根据本公开的一种实施方式提供的数据包丢失的处理系统的示意图。如图2所示,在开启数据包丢失统计模式的情况下,数据转发进程1在数据包转发失败时,可以获取数据转发进程1的当前运行位置。示例地,数据转发进程1可以通过丢包统计模块4获取数据转发进程1的当前运行位置。丢包统计模块4是一个库(Library),用于实现数据包丢失统计功能,且丢包统计模块4链接到数据转发进程1中,该链接方式可以是在编译时静态链接,也可以在运行时动态链接。
丢包统计模块4中包括数据包非正常释放函数(abnormal_free_mbuf),该函数用于释放转发失败的数据包。在该数据包非正常释放函数中,可以通过封装现有的数据包释放函数实现转发失败的数据包的释放。示例地,该现有的数据包释放函数可以是rte_pktmbuf_free。在调用该数据包释放函数之前,可以通过编译器的内建函数__builtin_return_address(0)获得数据包非正常释放函数的返回地址,即数据转发进程的当前运行位置的地址。需要说明的是,数据包非正常释放函数需要通过__attribute__((noinline))声明,以阻止编译器将该函数内联。
在S12中,根据当前运行位置,更新统计信息存储区域中的存储内容,所述统计信息存储区域用于存储所述数据转发进程在每次数据包转发失败时的运行位置和在该运行位置发生数据包转发失败的次数。
可选地,S12的一种示例实现方式如下,包括:
若所述统计信息存储区域中存储有所述当前运行位置,将在该运行位置发生数据包转发失败的次数增加一次;
若所述统计信息存储区域中未存储有所述当前运行位置,将所述当前运行位置添加至所述统计信息存储区域,并将在该运行位置发生数据包转发失败的次数增加一次。
示例地,如图2所示,该统计信息存储区域2可以是在大页内存上的存储区域,在数据转发进程1启动时创建并初始化,将统计信息存储区域2定义在大页内存中,可以有效避免该统计信息存储区域2中的存储内容过多时,统计信息存储区域2被频繁地换进换出内存的现象。在统计信息存储区域2中存储统计信息的数据结构可以是哈希链表,该哈希链表可以是通过任一种hash算法创建的链表,链表中的节点结构如下:
ADDRESS |
COUNT |
其中,ADDRESS表示数据转发进程在每次数据包转发失败时的运行位置,COUNT表示在每个运行位置发生数据包转发失败的次数,即在每个运行位置的丢包次数。数据转发进程在每次数据包转发失败时的运行位置和在每个运行位置发生数据包转发失败的次数即为上文所述统计信息。
示例地,在数据转发进程转发数据包失败,获取到数据转发进程的当前运行位置时,需要确定统计信息存储区域中是否存储有该当前运行位置。其中,获取到的数据转发进程的当前运行位置为一指向该运行位置的指针,在进行hash算法之前,需要将该指针类型强制转化成可以表示数字的数据类型,例如,unsigned long无符号长整型的数据,之后对该用unsigned long数据类型表示的当前运行位置进行hash算法计算,得到该当前运行位置的hash值,之后确定统计信息存储区域中是否存储有当前运行位置。若所述统计信息存储区域中存储有所述当前运行位置,表示在该运行位置已经发生过数据包丢失,将在该运行位置发生数据包转发失败的次数增加一次;若所述统计信息存储区域中未存储有所述当前运行位置,表示在该运行位置第一次发生数据包转发失败,将该当前运行位置添加至统计信息存储区域中的相应位置(如,当前运行位置的hash值对应的位置),并将在该运行位置发生数据包转发失败的次数增加一次,即将在该运行位置发生的数据包转发失败的次数置1。
在该实施例中,该统计信息存储区域中存储统计信息的数据结构为哈希链表,可以通过hash算法简单快捷地确定出统计信息存储区域中是否存储有当前运行位置,从而可以有效缩短更新统计信息存储区域中的存储内容的时间,降低数据转发进程的消耗,维持数据转发进程的稳定。
在S13中,释放转发失败的数据包。其中,可以通过在数据包非正常释放函数abnormal_free_mbuf中封装的数据包释放函数rte_pktmbuf_free释放数据包。
在上述技术方案中,数据转发进程可以在开启数据包丢失统计模式的情况下,在释放转发失败的数据包之前,根据数据转发进程在数据包转发失败时的当前运行位置,更新统计信息存储区域中的存储内容。因此,通过上述技术方案,技术人员在不需要大量修改现有代码的前提下,可以在每个数据包转发失败时自动进行丢包统计,从而可以有效减少技术人员的工作量,并且修改业务逻辑后,不需要对其他代码进行修改就可对转发失败的数据包进行数据包丢失统计。另外,数据转发进程只需要将统计信息存储至统计信息存储区域中,而不需要对该统计信息存储区域存储的内容进行数据处理,可以保证数据转发进程的转发性能,提高数据转发进程的稳定性。
可选地,数据转发进程数据包转发失败时,在未开启数据包丢失统计模式的情况下,可以直接通过数据包非正常释放函数释放该转发失败的数据包。
在另一实施例中,丢包统计模块中可以包括数据包正常释放函数(normal_free_mbuf),该函数用于释放成功转发的数据包,其中,该函数也可以通过封装现有的数据包释放函数实现数据包的释放,示例地,该现有的数据包释放函数可以是rte_pktmbuf_free。数据转发进程将数据包成功转发时,可以通过数据包正常释放函数直接释放该数据包,可以有效节约系统内存,提升数据包的转发效率。
在另一实施例中,如图2所示,该数据包丢失的处理系统还可以包括统计信息收集进程3,该统计信息收集进程3可以用于开启数据转发进程1的数据包丢失统计模式,并进行后续的统计信息的加工处理等。具体地,图3是根据本公开的另一种实施方式提供的统计信息收集进程与数据转发进程的信令交互图,在图1的基础上,所述方法还包括:
在S31中,统计信息收集进程接收用户设定指令,所述用户设定指令用于指示用户设定的统计时长。
其中,当用户要进行数据包丢失统计时,可以通过该用户设定指令开启数据包丢失统计模式,并指定统计时长,单位可以为秒。
所述统计信息收集进程向所述数据转发进程发送数据包丢失统计指令,所述数据包丢失统计指令包括所述统计时长。
在S32中,所述数据转发进程响应于所述数据包丢失统计指令,开启所述数据包丢失统计模式。
示例地,结合图2,数据转发进程1采用静态链接方式链接丢包统计模块4,并对其初始化。当统计信息收集进程3接收到用户设定指令时,响应于该用户设定指令,向数据转发进程1发送数据包丢失统计指令。数据转发进程1响应于该数据包丢失统计指令,开启数据包丢失统计模式,即调用丢包统计模块4完成数据包丢失统计。其中,丢包统计模块4在接收到统计信息收集进程3发出的数据包丢失统计指令时,清空统计信息存储区域2中的存储内容,但不对统计信息存储区域中存储内容的数据结构进行更改。这样,既可以有效避免在统计信息存储区域中、不属于本次数据包丢失统计过程的存储内容对本次数据包丢失统计的影响,又便于存储本次数据包丢失统计过程中的相关内容。
在S33中,在所述数据包丢失统计模式的开启时长达到所述统计时长时,退出所述数据包丢失统计模式。
在上述技术方案中,统计信息收集进程在接收到用户设定指令时,可以向数据转发进程发送数据包丢失统计指令,并指示数据转发进程进行数据包丢失统计的时长,从而可以使得数据转发进程只在用户需要时开启数据包丢失统计模式,并在到达用户设定的统计时长时,自动退出数据包丢失统计模式,可以避免产生冗余信息,节约内存资源。
可选地,如图4所示,在图3的基础上,所述方法还包括:
所述数据转发进程在退出所述数据包丢失统计模式时,向所述统计信息收集进程发送统计结束指令。
在S41中,所述统计信息收集进程响应于所述统计结束指令,获取所述统计信息存储区域中的内容,其中,所述统计信息收集进程与所述数据转发进程共享所述统计信息存储区域。
示例地,如图2所示,统计信息收集进程3和数据转发进程1共享统计信息存储区域2所在的大页内存,则统计信息收集进程3可以通过地址查找函数找出到统计信息存储区域2的起始地址,从而可以获取该统计信息存储区域2中的存储内容。示例地,该地址查找函数可以是rte_memzone_lookup函数。
可选地,所述统计信息收集进程为所述数据转发进程的从进程,即统计信息收集进程和数据转发进程访问统计信息存储区域时的虚拟地址是相同的,便于两个进程之间的内存共享。基于从进程技术,不需要增加复杂的代码逻辑,便可以实现数据转发进程和统计信息收集进程之间的内存共享,可以进一步减少技术人员的工作负荷。
在S42中,对所获取到的内容进行数据处理,获得丢包统计结果。
在统计信息收集进程获取到统计信息存储区域中的存储内容时,可以对该存储内容进行数据处理,以获得可读性好的丢包统计结果。
如图2所示,在该系统中还包括符号表5,符号表5在数据转发进程1编译时生成。由于软件升级等原因,同一个设备中可能存在多个数据转发进程,每个数据转发进程1对应一个符号表5,且每个符号表5中都有其对应的软件版本号,则在统计信息收集进程3对统计信息存储区域2中的存储内容进行数据处理时,可以根据其存储的软件版本号查询到对应的符号表5。
示例地,统计信息收集进程3获取到对应的符号表5,可以解析该符号表5,由此可以根据数据转发进程1在数据包转发失败时的运行位置和该符号表5,确定出发生数据包转发失败的代码行号以及所对应的函数名称,并最终生成具有发生数据包转发失败的代码行号以及所对应的函数名称的丢包统计结果,以便于用户进行数据包丢失的定位及诊断,从而可以及时针对该数据包丢失原因给出解决方案,方便用户的使用。
在另一实施例中,统计信息收集进程可以遍历统计信息存储区域中的存储内容,并按照发生数据包转发失败次数由多至少对发生过数据包转发失败的代码位置进行排序,以获得初始统计信息表。在该实施例中,初始统计信息表可以是有序链表,可以按照频次明确地表示出发生过数据包转发失败的位置,方便用户查看及对数据包丢失原因做出诊断。之后,统计信息收集进程可以根据符号表对该初始统计信息表进行数据处理,以获得丢包统计结果,该过程与上述获得丢包统计结果的过程相同,在此不再赘述。
在S43中,输出丢包统计结果。
在上述技术方案中,统计信息收集进程与数据转发进程共享内存,因此,统计信息收集进程可以获取存储在统计信息存储区域中的存储内容,从而可以对该存储内容进行数据处理,以获取丢包统计结果。通过上述技术方案,数据转发进程可以更新统计信息存储区域中的存储内容,统计信息收集进程可以在不中断数据转发进程的前提下,对统计信息存储区域中的存储内容进行数据处理,保证数据转发进程的转发性能不受影响的同时,可以快速定位丢包问题。
可选地,所述用户设定指令还用于指示用户设定的期望输出格式。
在S42中,对所获取到的内容进行数据处理,获得丢包统计结果,包括:
按照所述期望输出格式对所获取到的内容进行数据处理,获得丢包统计结果。
例如,当用户想要了解在执行哪个函数时发生数据包丢失的频次较高时,用户可以设置期望输出格式包括函数名称及其对应的丢包次数。当统计信息收集进程对其获取到的内容进行数据处理时,则可以将其存储的运行位置对应的函数名称和对应的数据包转发失败的次数保存在丢包统计结果中。
又例如,当用户想要确定发生数据包丢失的原因时,通常需要快速定位发生数据包丢失的代码位置,此时,用户可以设置期望输出格式包括函数名称、代码行号。当统计信息收集进程对其获取到的内容进行数据处理时,则可以将其存储的运行位置对应的函数名称及代码行号保存在丢包统计结果中。
在上述技术方案中,可以按照用户的设置输出符合用户使用需求的丢包统计结果,方便用户对该丢包统计结果的分析诊断过程,提高诊断效率,也可以有效避免产生冗余信息,占用内存资源。
在另一实施例中,当统计信息收集进程向数据转发进程发送数据包丢失统计指令的时长已达到所述统计时长时,统计信息收集进程可以自动开始获取统计信息存储区域中的内容。
图5是根据一示例性实施例示出的一种电子设备800的框图。如图5所示,该电子设备800可以包括:处理器801,存储器802,多媒体组件803,输入/输出(I/O)接口804,以及通信组件805。
其中,处理器801用于控制该电子设备800的整体操作,以完成上述的数据包丢失的处理方法中的全部或部分步骤。存储器802用于存储各种类型的数据以支持在该电子设备800的操作,这些数据例如可以包括用于在该电子设备800上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器802可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件803可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器802或通过通信组件805发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口804为处理器801和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件805用于该电子设备800与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件805可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,电子设备800可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的数据包丢失的处理方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,例如包括程序指令的存储器802,上述程序指令可由电子设备800的处理器801执行以完成上述的数据包丢失的处理方法。
图6是根据一示例性实施例示出的一种电子设备900的框图。例如,电子设备900可以被提供为一服务器。参照图6,电子设备900包括处理器922,其数量可以为一个或多个,以及存储器932,用于存储可由处理器922执行的计算机程序。存储器932中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器922可以被配置为执行该计算机程序,以执行上述的数据包丢失的处理方法。
另外,电子设备900还可以包括电源组件926和通信组件950,该电源组件926可以被配置为执行电子设备900的电源管理,该通信组件950可以被配置为实现电子设备900的通信,例如,有线或无线通信。此外,该电子设备900还可以包括输入/输出(I/O)接口958。电子设备900可以操作基于存储在存储器932的操作系统,例如Windows ServerTM,Mac OSXTM,UnixTM,LinuxTM等等。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,例如包括程序指令的存储器932,上述程序指令可由电子设备900的处理器922执行以完成上述的数据包丢失的处理方法。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
Claims (10)
1.一种数据包丢失的处理方法,其特征在于,所述方法包括:
在开启数据包丢失统计模式的情况下,数据转发进程在数据包转发失败时,获取所述数据转发进程的当前运行位置;
根据所述当前运行位置,更新统计信息存储区域中的存储内容,所述统计信息存储区域用于存储所述数据转发进程在每次数据包转发失败时的运行位置和在该运行位置发生数据包转发失败的次数;
释放转发失败的所述数据包。
2.根据权利要求1所述的方法,其特征在于,所述根据所述当前运行位置,更新统计信息存储区域中的存储内容,包括:
若所述统计信息存储区域中存储有所述当前运行位置,将在该运行位置发生数据包转发失败的次数增加一次;
若所述统计信息存储区域中未存储有所述当前运行位置,将所述当前运行位置添加至所述统计信息存储区域,并将在该运行位置发生数据包转发失败的次数增加一次。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
统计信息收集进程接收用户设定指令,所述用户设定指令用于指示用户设定的统计时长;
所述统计信息收集进程向所述数据转发进程发送数据包丢失统计指令,所述数据包丢失统计指令包括所述统计时长;
所述数据转发进程响应于所述数据包丢失统计指令,开启所述数据包丢失统计模式;
在所述数据包丢失统计模式的开启时长达到所述统计时长时,退出所述数据包丢失统计模式。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
所述数据转发进程在退出所述数据包丢失统计模式时,向所述统计信息收集进程发送统计结束指令;
所述统计信息收集进程响应于所述统计结束指令,获取所述统计信息存储区域中的内容,其中,所述统计信息收集进程与所述数据转发进程共享所述统计信息存储区域;
对所获取到的内容进行数据处理,获得丢包统计结果;
输出所述丢包统计结果。
5.根据权利要求3或4所述的方法,其特征在于,所述统计信息收集进程为所述数据转发进程的从进程。
6.一种数据包丢失的处理系统,其特征在于,所述系统包括:数据转发进程和统计信息存储区域,其中,
所述数据转发进程用于在开启数据包丢失统计模式的情况下,在数据包转发失败时,获取所述数据转发进程的当前运行位置;
所述数据转发进程用于根据所述当前运行位置,更新所述统计信息存储区域中的存储内容,所述统计信息存储区域用于存储所述数据转发进程在每次数据包转发失败时的运行位置和在该运行位置发生数据包转发失败的次数;
所述数据转发进程用于释放转发失败的所述数据包。
7.根据权利要求6所述的系统,其特征在于,所述系统还包括统计信息收集进程;
所述统计信息收集进程用于接收用户设定指令,所述用户设定指令用于指示用户设定的统计时长,并向所述数据转发进程发送数据包丢失统计指令,所述数据包丢失统计指令包括所述统计时长;
所述数据转发进程还用于响应于所述数据包丢失统计指令,开启所述数据包丢失统计模式,并在所述数据包丢失统计模式的开启时长达到所述统计时长时,退出所述数据包丢失统计模式。
8.根据权利要求7所述的系统,其特征在于,
所述数据转发进程还用于在退出所述数据包丢失统计模式时,向所述统计信息收集进程发送统计结束指令;
所述统计信息收集进程用于响应于所述统计结束指令,获取所述统计信息存储区域中的内容,其中,所述统计信息收集进程与所述数据转发进程共享所述统计信息存储区域;
所述统计信息收集进程用于对所获取到的内容进行数据处理,获得丢包统计结果,并输出所述丢包统计结果。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-5中任一项所述方法的步骤。
10.一种电子设备,其特征在于,包括:
权利要求9中所述的计算机可读存储介质;以及
一个或者多个处理器,用于执行所述计算机可读存储介质中的程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710943349.2A CN107872363B (zh) | 2017-10-11 | 2017-10-11 | 数据包丢失的处理方法、系统、可读存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710943349.2A CN107872363B (zh) | 2017-10-11 | 2017-10-11 | 数据包丢失的处理方法、系统、可读存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107872363A true CN107872363A (zh) | 2018-04-03 |
CN107872363B CN107872363B (zh) | 2020-10-30 |
Family
ID=61752807
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710943349.2A Active CN107872363B (zh) | 2017-10-11 | 2017-10-11 | 数据包丢失的处理方法、系统、可读存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107872363B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108871428A (zh) * | 2018-05-09 | 2018-11-23 | 南京思达捷信息科技有限公司 | 一种基于大数据的地质监控平台及其方法 |
CN112825504A (zh) * | 2019-11-20 | 2021-05-21 | 深信服科技股份有限公司 | 一种数据监测方法、装置、设备及存储介质 |
CN113923138A (zh) * | 2020-07-07 | 2022-01-11 | 瑞昱半导体股份有限公司 | 通信装置以及网络管理方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101877659A (zh) * | 2010-06-30 | 2010-11-03 | 中兴通讯股份有限公司 | 一种丢包监控的方法、设备和系统 |
CN101976217A (zh) * | 2010-10-29 | 2011-02-16 | 中兴通讯股份有限公司 | 网络处理器异常检测方法及系统 |
CN104506369A (zh) * | 2014-12-31 | 2015-04-08 | 北京华为数字技术有限公司 | 一种丢包位置的检测方法和设备 |
CN105791008A (zh) * | 2016-03-02 | 2016-07-20 | 华为技术有限公司 | 确定丢包位置和原因的方法和装置 |
CN106301821A (zh) * | 2015-05-15 | 2017-01-04 | 中兴通讯股份有限公司 | 一种隧道丢包检测方法、装置及网络通信设备 |
-
2017
- 2017-10-11 CN CN201710943349.2A patent/CN107872363B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101877659A (zh) * | 2010-06-30 | 2010-11-03 | 中兴通讯股份有限公司 | 一种丢包监控的方法、设备和系统 |
CN101976217A (zh) * | 2010-10-29 | 2011-02-16 | 中兴通讯股份有限公司 | 网络处理器异常检测方法及系统 |
CN104506369A (zh) * | 2014-12-31 | 2015-04-08 | 北京华为数字技术有限公司 | 一种丢包位置的检测方法和设备 |
CN106301821A (zh) * | 2015-05-15 | 2017-01-04 | 中兴通讯股份有限公司 | 一种隧道丢包检测方法、装置及网络通信设备 |
CN105791008A (zh) * | 2016-03-02 | 2016-07-20 | 华为技术有限公司 | 确定丢包位置和原因的方法和装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108871428A (zh) * | 2018-05-09 | 2018-11-23 | 南京思达捷信息科技有限公司 | 一种基于大数据的地质监控平台及其方法 |
CN112825504A (zh) * | 2019-11-20 | 2021-05-21 | 深信服科技股份有限公司 | 一种数据监测方法、装置、设备及存储介质 |
CN112825504B (zh) * | 2019-11-20 | 2023-02-03 | 深信服科技股份有限公司 | 一种数据监测方法、装置、设备及存储介质 |
CN113923138A (zh) * | 2020-07-07 | 2022-01-11 | 瑞昱半导体股份有限公司 | 通信装置以及网络管理方法 |
CN113923138B (zh) * | 2020-07-07 | 2023-03-31 | 瑞昱半导体股份有限公司 | 通信装置以及网络管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107872363B (zh) | 2020-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11777802B2 (en) | Rules driven software deployment agent | |
CN105045819B (zh) | 一种训练数据的模型训练方法及装置 | |
KR101268887B1 (ko) | 측정값에 기초한 무선 디바이스의 시스템 레벨 관리 | |
CN104063410B (zh) | 一种举报信息的处理方法和系统 | |
CN107872363A (zh) | 数据包丢失的处理方法、系统、可读存储介质及电子设备 | |
CN107171911A (zh) | 智能家居设备的控制方法及装置 | |
CN108090567A (zh) | 电力通信系统故障诊断方法及装置 | |
CN101477491B (zh) | 一种统计函数运行状态的方法和装置 | |
CN107291586A (zh) | 一种应用程序的分析方法和装置 | |
CN107908443A (zh) | 一种事件监听方法、智能设备及存储介质 | |
JP2010512127A5 (zh) | ||
CN106155818A (zh) | 一种终端拉取信息的处理方法和终端以及服务器 | |
CN108091333A (zh) | 语音控制方法及相关产品 | |
CN109086606A (zh) | 一种程序漏洞挖掘方法、装置、终端及存储介质 | |
CN104519262A (zh) | 获取视频数据的方法、装置及终端 | |
CN108021454A (zh) | 一种处理器负载均衡的方法、终端及计算机存储介质 | |
US20220417117A1 (en) | Telemetry redundant measurement avoidance protocol | |
CN109685107A (zh) | 特征选择方法、系统、计算机可读存储介质及电子设备 | |
CN108632309A (zh) | 一种升级窄带物联网终端的方法及装置 | |
CN104991866B (zh) | Js程序的调试方法及装置 | |
CN109977013A (zh) | 一种调试信息获取方法、系统及装置 | |
CN108227953A (zh) | 文字输入方法及相关产品 | |
CN105847446A (zh) | 一种网络数据的获取方法、装置和系统 | |
CN109876446B (zh) | 一种检测游戏贴图和网格在内存中占用分布的方法和装置 | |
CN108270839A (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 |