CN103501259B - 一种丢包检测的方法及检测装置 - Google Patents
一种丢包检测的方法及检测装置 Download PDFInfo
- Publication number
- CN103501259B CN103501259B CN201310495811.9A CN201310495811A CN103501259B CN 103501259 B CN103501259 B CN 103501259B CN 201310495811 A CN201310495811 A CN 201310495811A CN 103501259 B CN103501259 B CN 103501259B
- Authority
- CN
- China
- Prior art keywords
- serial numbers
- marking serial
- sequence number
- detection window
- packet
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/34—Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种丢包检测的方法,包括:获取接收到的数据包的发送序号;将所述发送序号填充到预置的标记序号线性队列中对应的标记序号位置;当连续两次填充发送序号对应的标记序号位置不连续时,确定有数据包丢失或乱序。本发明实施例中提供的丢包检测的方法,可以快速检测出丢失或乱序的数据包。
Description
技术领域
本发明涉及互联网技术领域,具体涉及一种丢包检测的方法及检测装置。
背景技术
终端通过用户数据协议(User Data Protocol,UDP)向服务器发送网络数据,通常将数据按照指定大小切片后,加上发送序号传输,数据在传输过程中,受网络介质和链路影响,可能丢失。服务器需要检测终端发送的数据在传输过程中的丢失情况,反之,如果服务器向终端发送数据包,受网络介质和链路影响,数据包也可能会丢失。
这样,无论是终端还是服务器,数据接收方都需要判断数据的完整性,因此接收方需要逐个记录数据包的发送序号,然后才能确定丢失的数据包。
在对现有技术的研究和实践过程中,本发明的发明人发现,现有技术中通过逐个记录数据包的发送序号的方法进行丢包检测,导致丢包检测的效率低下。
发明内容
本发明实施例提供一种丢包检测的方法,可以快速检测出丢失或乱序的数据包。本发明实施例还提供了相应的检测装置。
本发明第一方面提供一种丢包检测的方法,包括:
获取接收到的数据包的发送序号;
将所述发送序号填充到预置的标记序号线性队列中对应的标记序号位置;
当连续两次填充发送序号对应的标记序号位置不连续时,确定有数据包丢失或乱序。
结合第一方面,在第一种可能的实现方式中,所述标记序号线性队列上设置有预置长度的移动性检测窗口,在初始状态,所述检测窗口的一端在所述标记序号线性队列中标记序号最小的一端;
所述当连续两次填充发送序号对应的标记序号位置不连续时,确定有数据包丢失或乱序,包括:
当所述发送序号不在所述检测窗口覆盖范围下时,所述检测窗口的另一端移动到所述发送序号对应的标记序号处;
当所述检测窗口一次移动的序号跨度大于1时,确定有数据包丢失或乱序。
结合第一方面第一种可能的实现方式,在第二种可能的实现方式中,所述确定有数据包丢失或乱序,包括:
根据所述检测窗口的另一端移动前所在的标记序号,以及移动后所在的标记序号,确定移动前和移动后所述检测窗口的另一端所在的标记序号之间的跨过的标记序号;
确定所述跨过的标记序号对应的数据包丢失或乱序。
结合第一方面、第一方面第一种或第二种可能的实现方式,在第三种可能的实现方式中,在将所述发送序号填充到预置的标记序号线性队列中对应的标记序号位置时,所述方法还包括:
将所述发送序号填充的标记序号位置处数据包的接收状态修改为已接收状态。
结合第一方面第三种可能的实现方式,在第四种可能的实现方式中,所述确定有数据包丢失或乱序之后,所述方法还包括:
检测所述检测窗口的一端移动后脱离所述检测窗口覆盖的标记序号位置;
当检测出所述标记序号位置处数据包的接收状态为未接收,则确定所述标记序号位置处对应的数据包丢失。
本发明第二方面提供一种丢包检测装置,包括:
获取单元,用于获取接收到的数据包的发送序号;
填充单元,用于将所述获取单元获取的发送序号填充到预置的标记序号线性队列中对应的标记序号位置;
确定单元,用于当所述填充单元连续两次填充发送序号对应的标记序号位置不连续时,确定有数据包丢失或乱序。
结合第二方面,在第一种可能的实现方式中,所述标记序号线性队列上设置有预置长度的移动性检测窗口,在初始状态,所述检测窗口的一端在所述标记序号线性队列中标记序号最小的一端;
所述确定单元,用于当所述发送序号不在所述检测窗口覆盖范围下时,所述检测窗口的另一端移动到所述发送序号对应的标记序号处,当所述检测窗口一次移动的序号跨度大于1时,确定有数据包丢失或乱序。
结合第二方面第一种可能的实现方式,在第二种可能的实现方式中,
所述确定单元,用于根据所述检测窗口的另一端移动前所在的标记序号,以及移动后所在的标记序号,确定移动前和移动后所述检测窗口的另一端所在的标记序号之间的跨过的标记序号,确定所述跨过的标记序号对应的数据包丢失或乱序。
结合第二方面、第二方面第一种或第二种可能的实现方式,在第三种可能的实现方式中,所述装置还包括:
修改单元,用于在所述填充单元将所述发送序号填充到预置的标记序号线性队列中对应的标记序号位置时,将所述发送序号填充的标记序号位置处数据包的接收状态修改为已接收状态。
结合第二方面第三种可能的实现方式,在第四种可能的实现方式中,所述装置还包括:
检测单元,用于检测所述检测窗口的一端移动后脱离所述检测窗口覆盖的标记序号位置;
所述确定单元,用于当检测出所述标记序号位置处数据包的接收状态为未接收,则确定所述标记序号位置处对应的数据包丢失。
本发明实施例采用获取接收到的数据包的发送序号;将所述发送序号填充到预置的标记序号线性队列中对应的标记序号位置;当连续两次填充发送序号对应的标记序号位置不连续时,确定有数据包丢失或乱序。与现有技术中过逐个记录数据包的发送序号的方法进行丢包检测相比,本发明实施例中提供的丢包检测的方法,可以快速检测出丢失或乱序的数据包。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中丢包检测的方法的一实施例示意图;
图2是本发明实施例中丢包检测的方法的另一实施例示意图;
图3是本发明实施例中丢包检测的方法的另一实施例示意图;
图4是本发明实施例中丢包检测的方法的另一实施例示意图;
图5是本发明实施例中检测装置的一实施例示意图;
图6是本发明实施例中检测装置的另一实施例示意图;
图7是本发明实施例中检测装置的另一实施例示意图;
图8是本发明实施例中终端一实施例示意图;
图9是本发明实施例中服务器一实施例示意图。
具体实施方式
本发明实施例提供一种丢包检测的方法,可以快速检测出丢失或乱序的数据包。本发明实施例还提供了相应的检测装置。以下分别进行详细说明。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参阅图1,本发明实施例提供的丢包检测的方法的一实施例包括:
101、获取接收到的数据包的发送序号。
数据包发送方在发送数据包时会在数据包中写入数据包的发送序号。
102、将所述发送序号填充到预置的标记序号线性队列中对应的标记序号位置。
本发明实施例中的标记序号线性队列为按照0、1、2、3、4……依次递增的顺序排列的线性序号队列。
103、当连续两次填充发送序号对应的标记序号位置不连续时,确定有数据包丢失或乱序。
当前一次接收到的数据包的发送序号为11,后一次接收到的数据包的发送序号为15时,对应的序号线性队列中的标记序号分别为11和15,这两个标记序号的位置不连续,确定有数据包丢失或乱序。
本发明实施例采用获取接收到的数据包的发送序号;将所述发送序号填充到预置的标记序号线性队列中对应的标记序号位置;当连续两次填充发送序号对应的标记序号位置不连续时,确定有数据包丢失或乱序。与现有技术中过逐个记录数据包的发送序号的方法进行丢包检测相比,本发明实施例中提供的丢包检测的方法,可以快速检测出丢失或乱序的数据包。
可选地,在上述图1对应的实施例的基础上,本发明实施例提供的丢包检测的方法的另一实施例中,所述标记序号线性队列上设置有预置长度的移动性检测窗口,在初始状态,所述检测窗口的一端在所述标记序号线性队列中标记序号最小的一端;
所述当连续两次填充发送序号对应的标记序号位置不连续时,确定有数据包丢失或乱序,可以包括:
当所述发送序号不在所述检测窗口覆盖范围下时,所述检测窗口的另一端移动到所述发送序号对应的标记序号处;
当所述检测窗口一次移动的序号跨度大于1时,确定有数据包丢失或乱序。
本发明实施例中,移动性检测窗口的长度可以预先规定好,例如:1024个序号长度,也可以为其他,在此不做限定。
在初始时刻,以移动性检测窗口的长度是1024为例,参阅图2,移动性检测窗口的一端在标记序号线性队列标记序号0的位置,另一端在标记序号1023的位置。当接收到的数据包的发送序号小于或等于1024时,该移动性检测窗口不移动,当接收到的数据包的发送序号大于1023时,该移动性检测窗口向标记序号增大的方向移动,以接收到的数据包的发送序号是1024为例,该移动性检测窗口的另一端就移动到标记序号为1024的位置,一端移动到标记序号为1的位置,该移动性检测窗口一次性移动的序号跨度为1,可以确定没有数据包丢失或乱序。
参阅图3,以接收到的数据包的发送序号是1027为例,该移动性检测窗口的另一端就从1024的位置移动到标记序号为1027的位置,一端从标记序号为1的位置移动到标记序号为4的位置,该移动性检测窗口一次性移动的序号跨度为3,3大于1,可以确定有数据包丢失或乱序。
可选地,在上述图1对应的可选实施例的基础上,本发明实施例提供的丢包检测的方法的另一实施例中,所述确定有数据包丢失或乱序,可以包括:
根据所述检测窗口的另一端移动前所在的标记序号,以及移动后所在的标记序号,确定移动前和移动后所述检测窗口的另一端所在的标记序号之间的跨过的标记序号;
确定所述跨过的标记序号对应的数据包丢失或乱序。
本发明实施例中,参阅图3,在移动前,移动性检测窗口的另一端所在位置的标记序号为1024,移动后所在位置的标记序号为1027,直接跨过了标记序号1025和1026,这样,就可以确定发送序号是1025和1026的数据包丢失或乱序。
在上述图1对应的实施例或图1对应的任一可选实施例的基础上,本发明实施例提供的丢包检测的方法的另一实施例中,在将所述发送序号填充到预置的标记序号线性队列中对应的标记序号位置时,所述方法还可以包括:
将所述发送序号填充的标记序号位置处数据包的接收状态修改为已接收状态。
本发明实施例中,在向标记序号位置填充发送序号时,将该标记位置对应的数据包的接收状态修改为已接收状态,在初始状态,每个标记位置对应的数据包的接收状态都是未接收状态。
在上一个可选实施例的基础上,本发明实施例提供的丢包检测的方法的另一实施例中,所述确定有数据包丢失或乱序之后,所述方法还可以包括:
检测所述检测窗口的一端移动后脱离所述检测窗口覆盖的标记序号位置;
当检测出所述标记序号位置处数据包的接收状态为未接收,则确定所述标记序号位置处对应的数据包丢失。
本发明实施例中,因数据包在传输过程中可能会乱序,针对图3中发送序号是1025或1026的数据包可能只是乱序导致接收延迟了,所以需要在一段时间后才能判断这两个数据包是否丢失,通常以移动性检测窗口的一端移动后脱离所述检测窗口覆盖的标记序号位置的时刻再检测该标记序号的位置的数据包的接收状态,参阅图4,移动前,移动性检测窗口的一端在标记序号是1025的位置,移动后所述一端在1026的位置,这时就检测1025位置处数据包的接收状态,当检测到该位置的数据包的接收状态为未接收时,确定发送序号为1025的数据包丢失,如果接收状态是已接收,说明该发送序号为1025的数据包接收时发生乱序。
参阅图5,本发明实施例提供的终端的一实施例包括:
获取单元201,用于获取接收到的数据包的发送序号;
填充单元202,用于将所述获取单元201获取的发送序号填充到预置的标记序号线性队列中对应的标记序号位置;
确定单元203,用于当所述填充单元202连续两次填充发送序号对应的标记序号位置不连续时,确定有数据包丢失或乱序。
本发明实施例中,获取单元201获取接收到的数据包的发送序号;填充单元202将所述获取单元201获取的发送序号填充到预置的标记序号线性队列中对应的标记序号位置;确定单元203当所述填充单元202连续两次填充发送序号对应的标记序号位置不连续时,确定有数据包丢失或乱序。与现有技术中过逐个记录数据包的发送序号的方法进行丢包检测相比,本发明实施例中提供的丢包检测装置,可以快速检测出丢失或乱序的数据包。
可选地,在上述图5对应的实施例的基础上,本发明实施例提供的装置的另一实施例中,所述标记序号线性队列上设置有预置长度的移动性检测窗口,在初始状态,所述检测窗口的一端在所述标记序号线性队列中标记序号最小的一端;
所述确定单元203,用于当所述发送序号不在所述检测窗口覆盖范围下时,所述检测窗口的另一端移动到所述发送序号对应的标记序号处,当所述检测窗口一次移动的序号跨度大于1时,确定有数据包丢失或乱序。
可选地,在上述图5对应的实施例的基础上,本发明实施例提供的装置的另一实施例中,
所述确定单元203,用于根据所述检测窗口的另一端移动前所在的标记序号,以及移动后所在的标记序号,确定移动前和移动后所述检测窗口的另一端所在的标记序号之间的跨过的标记序号,确定所述跨过的标记序号对应的数据包丢失或乱序。
可选地,在上述图5对应的实施例的基础上,参阅图6,本发明实施例提供的装置的另一实施例中,所述装置20还包括:
修改单元204,用于在所述填充单元202将所述发送序号填充到预置的标记序号线性队列中对应的标记序号位置时,将所述发送序号填充的标记序号位置处数据包的接收状态修改为已接收状态。
可选地,在上述图5对应的实施例的基础上,参阅图7,本发明实施例提供的装置的另一实施例中,所述装置20还包括:
检测单元205,用于检测所述检测窗口的一端移动后脱离所述检测窗口覆盖的标记序号位置;
所述确定单元203,用于当检测出所述标记序号位置处数据包的接收状态为未接收,则确定所述标记序号位置处对应的数据包丢失。
本发明实施例中的丢包检测装置可以为终端,也可以为服务器,当所述丢包检测装置为终端时:
请参考图8,其示出了本发明实施例所涉及的终端的结构示意图,该终端可以用于实施上述实施例中提供的丢包检测的方法。具体来讲:
终端1200可以包括RF(Radio Frequency,射频)电路110、包括有一个或一个以上计算机可读存储介质的存储器120、输入单元130、显示单元140、传感器150、音频电路160、WiFi(wireless fidelity,无线保真)模块170、包括有一个或者一个以上处理核心的处理器180、以及电源190等部件。本领域技术人员可以理解,图8中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器180处理;另外,将涉及上行的数据发送给基站。通常,RF电路110包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路110还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobilecommunication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(Code Division Multiple Access,码分多址)、WCDMA(Wideband Code Division Multiple Access,宽带码分多址)、LTE(LongTerm Evolution,长期演进)、电子邮件、SMS(Short Messaging Service,短消息服务)等。
存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端1200的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器120还可以包括存储器控制器,以提供处理器180和输入单元130对存储器120的访问。
输入单元130可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元130可包括触敏表面131以及其他输入设备132。触敏表面131,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面131上或在触敏表面131附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器180,并能接收处理器180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面131。除了触敏表面131,输入单元130还可以包括其他输入设备132。具体地,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元140可用于显示由用户输入的信息或提供给用户的信息以及终端1200的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元140可包括显示面板141,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-EmittingDiode,有机发光二极管)等形式来配置显示面板141。进一步的,触敏表面131可覆盖显示面板141,当触敏表面131检测到在其上或附近的触摸操作后,传送给处理器180以确定触摸事件的类型,随后处理器180根据触摸事件的类型在显示面板141上提供相应的视觉输出。虽然在图8中,触敏表面131与显示面板141是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面131与显示面板141集成而实现输入和输出功能。
终端1200还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在终端1200移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端1200还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路160、扬声器161,传声器162可提供用户与终端1200之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经RF电路110以发送给比如另一终端,或者将音频数据输出至存储器120以便进一步处理。音频电路160还可能包括耳塞插孔,以提供外设耳机与终端1200的通信。
WiFi属于短距离无线传输技术,终端1200通过WiFi模块170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图8示出了WiFi模块170,但是可以理解的是,其并不属于终端1200的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器180是终端1200的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行终端1200的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器180可包括一个或多个处理核心;优选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。
终端1200还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源190还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,终端1200还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端的显示单元是触摸屏显示器,终端还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行述一个或者一个以上程序包含用于进行以下操作的指令:
获取接收到的数据包的发送序号;
将所述发送序号填充到预置的标记序号线性队列中对应的标记序号位置;
当连续两次填充发送序号对应的标记序号位置不连续时,确定有数据包丢失或乱序。
假设上述为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第二种可能的实施方式中,所述终端的存储器中,还包含用于执行以下操作的指令:
所述标记序号线性队列上设置有预置长度的移动性检测窗口,在初始状态,所述检测窗口的一端在所述标记序号线性队列中标记序号最小的一端;
当所述发送序号不在所述检测窗口覆盖范围下时,所述检测窗口的另一端移动到所述发送序号对应的标记序号处;
当所述检测窗口一次移动的序号跨度大于1时,确定有数据包丢失或乱序。
在第二种可能的实施方式作为基础而提供的第三种可能的实施方式中,所述终端的存储器中,还包含用于执行以下操作的指令:
根据所述检测窗口的另一端移动前所在的标记序号,以及移动后所在的标记序号,确定移动前和移动后所述检测窗口的另一端所在的标记序号之间的跨过的标记序号;
确定所述跨过的标记序号对应的数据包丢失或乱序。
在第一种、第二种或第三种可能的实施方式作为基础而提供的第四种可能的实施方式中,所述终端的存储器中,还包含用于执行以下操作的指令:
将所述发送序号填充的标记序号位置处数据包的接收状态修改为已接收状态。
在第四种可能的实施方式作为基础而提供的第五种可能的实施方式中,所述终端的存储器中,还包含用于执行以下操作的指令:
检测所述检测窗口的一端移动后脱离所述检测窗口覆盖的标记序号位置;
当检测出所述标记序号位置处数据包的接收状态为未接收,则确定所述标记序号位置处对应的数据包丢失。
综上所述,本实施例提供的终端,采用获取接收到的数据包的发送序号;将所述发送序号填充到预置的标记序号线性队列中对应的标记序号位置;当连续两次填充发送序号对应的标记序号位置不连续时,确定有数据包丢失或乱序。与现有技术中过逐个记录数据包的发送序号的方法进行丢包检测相比,本发明实施例中提供的丢包检测的方法,可以快速检测出丢失或乱序的数据包。
作为另一方面,本发明再一实施例还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中的存储器中所包含的计算机可读存储介质;也可以是单独存在,未装配入终端中的计算机可读存储介质。所述计算机可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序被一个或者一个以上的处理器用来执行一个丢包检测的方法,所述方法包括:
获取接收到的数据包的发送序号;
将所述发送序号填充到预置的标记序号线性队列中对应的标记序号位置;
当连续两次填充发送序号对应的标记序号位置不连续时,确定有数据包丢失或乱序。
假设上述为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第二种可能的实施方式中,所述标记序号线性队列上设置有预置长度的移动性检测窗口,在初始状态,所述检测窗口的一端在所述标记序号线性队列中标记序号最小的一端;
所述当连续两次填充发送序号对应的标记序号位置不连续时,确定有数据包丢失或乱序,包括:
当所述发送序号不在所述检测窗口覆盖范围下时,所述检测窗口的另一端移动到所述发送序号对应的标记序号处;
当所述检测窗口一次移动的序号跨度大于1时,确定有数据包丢失或乱序。
在第二种可能的实施方式作为基础而提供的第三种可能的实施方式中,所述确定有数据包丢失或乱序,包括:
根据所述检测窗口的另一端移动前所在的标记序号,以及移动后所在的标记序号,确定移动前和移动后所述检测窗口的另一端所在的标记序号之间的跨过的标记序号;
确定所述跨过的标记序号对应的数据包丢失或乱序。
在第一种、第二种或第三种可能的实施方式作为基础而提供的第四种可能的实施方式中,在将所述发送序号填充到预置的标记序号线性队列中对应的标记序号位置时,所述方法还包括:
将所述发送序号填充的标记序号位置处数据包的接收状态修改为已接收状态。
在第四种可能的实施方式作为基础而提供的第五种可能的实施方式中,所述确定有数据包丢失或乱序之后,所述方法还包括:
检测所述检测窗口的一端移动后脱离所述检测窗口覆盖的标记序号位置;
当检测出所述标记序号位置处数据包的接收状态为未接收,则确定所述标记序号位置处对应的数据包丢失。
本发明实施例中的丢包检测装置可以为终端,也可以为服务器,当所述丢包检测装置为服务器时:
图9是本发明实施例服务器600的结构示意图。服务器600可包括输入设备601、输出设备604、处理器602和存储器603。
存储器603可以包括只读存储器和随机存取存储器,并向处理器602提供指令和数据。存储器603的一部分还可以包括非易失性随机存取存储器(NVRAM)。
存储器603存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:
操作指令:包括各种操作指令,用于实现各种操作。
操作系统:包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
在本发明实施例中,处理器602通过调用存储器603存储的操作指令(该操作指令可存储在操作系统中),执行如下操作:
获取接收到的数据包的发送序号;
将所述发送序号填充到预置的标记序号线性队列中对应的标记序号位置;
当连续两次填充发送序号对应的标记序号位置不连续时,确定有数据包丢失或乱序。
本发明实施例中,服务器600采用获取接收到的数据包的发送序号;将所述发送序号填充到预置的标记序号线性队列中对应的标记序号位置;当连续两次填充发送序号对应的标记序号位置不连续时,确定有数据包丢失或乱序。与现有技术中过逐个记录数据包的发送序号的方法进行丢包检测相比,本发明实施例中提供的丢包检测的方法,可以快速检测出丢失或乱序的数据包。
处理器602控制服务器600的操作,处理器602还可以称为CPU(CentralProcessing Unit,中央处理单元)。存储器603可以包括只读存储器和随机存取存储器,并向处理器602提供指令和数据。存储器603的一部分还可以包括非易失性随机存取存储器(NVRAM)。具体的应用中,服务器600的各个组件通过总线系统605耦合在一起,其中总线系统605除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统605。
上述本发明实施例揭示的方法可以应用于处理器602中,或者由处理器602实现。处理器602可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器602中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器602可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器603,处理器602读取存储器603中的信息,结合其硬件完成上述方法的步骤。
可选地,所述标记序号线性队列上设置有预置长度的移动性检测窗口,在初始状态,所述检测窗口的一端在所述标记序号线性队列中标记序号最小的一端;
处理器602当所述发送序号不在所述检测窗口覆盖范围下时,所述检测窗口的另一端移动到所述发送序号对应的标记序号处;当所述检测窗口一次移动的序号跨度大于1时,确定有数据包丢失或乱序。
可选地,处理器602根据所述检测窗口的另一端移动前所在的标记序号,以及移动后所在的标记序号,确定移动前和移动后所述检测窗口的另一端所在的标记序号之间的跨过的标记序号;确定所述跨过的标记序号对应的数据包丢失或乱序。
可选地,处理器602在将所述发送序号填充到预置的标记序号线性队列中对应的标记序号位置时,将所述发送序号填充的标记序号位置处数据包的接收状态修改为已接收状态。
可选地,处理器602检测所述检测窗口的一端移动后脱离所述检测窗口覆盖的标记序号位置;
当检测出所述标记序号位置处数据包的接收状态为未接收,则确定所述标记序号位置处对应的数据包丢失。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例所提供的丢包检测的方法以及检测装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种丢包检测的方法,其特征在于,包括:
获取接收到的数据包的发送序号;
将所述发送序号填充到预置的标记序号线性队列中对应的标记序号位置;
当连续两次填充发送序号对应的标记序号位置不连续时,确定有数据包丢失或乱序;
其中,所述标记序号线性队列上设置有预置长度的移动性检测窗口,在初始状态,所述检测窗口的一端在所述标记序号线性队列中标记序号最小的一端;
所述当连续两次填充发送序号对应的标记序号位置不连续时,确定有数据包丢失或乱序,包括:
当所述发送序号不在所述检测窗口覆盖范围下时,所述检测窗口的另一端移动到所述发送序号对应的标记序号处;
当所述检测窗口一次移动的序号跨度大于1时,确定有数据包丢失或乱序。
2.根据权利要求1所述的方法,其特征在于,所述确定有数据包丢失或乱序,包括:
根据所述检测窗口的另一端移动前所在的标记序号,以及移动后所在的标记序号,确定移动前和移动后所述检测窗口的另一端所在的标记序号之间的跨过的标记序号;
确定所述跨过的标记序号对应的数据包丢失或乱序。
3.根据权利要求1或2所述的方法,其特征在于,在将所述发送序号填充到预置的标记序号线性队列中对应的标记序号位置时,所述方法还包括:
将所述发送序号填充的标记序号位置处数据包的接收状态修改为已接收状态。
4.根据权利要求3所述的方法,其特征在于,所述确定有数据包丢失或乱序之后,所述方法还包括:
检测所述检测窗口的一端移动后脱离所述检测窗口覆盖的标记序号位
置;
当检测出所述标记序号位置处数据包的接收状态为未接收,则确定所述标记序号位置处对应的数据包丢失。
5.一种丢包检测装置,其特征在于,包括:
获取单元,用于获取接收到的数据包的发送序号;
填充单元,用于将所述获取单元获取的发送序号填充到预置的标记序号线性队列中对应的标记序号位置;
确定单元,用于当所述填充单元连续两次填充发送序号对应的标记序号位置不连续时,确定有数据包丢失或乱序;其中,所述标记序号线性队列上设置有预置长度的移动性检测窗口,在初始状态,所述检测窗口的一端在所述标记序号线性队列中标记序号最小的一端;
所述确定单元,用于当所述发送序号不在所述检测窗口覆盖范围下时,所述检测窗口的另一端移动到所述发送序号对应的标记序号处,当所述检测窗口一次移动的序号跨度大于1时,确定有数据包丢失或乱序。
6.根据权利要求5所述的装置,其特征在于,
所述确定单元,用于根据所述检测窗口的另一端移动前所在的标记序号,以及移动后所在的标记序号,确定移动前和移动后所述检测窗口的另一端所在的标记序号之间的跨过的标记序号,确定所述跨过的标记序号对应的数据包丢失或乱序。
7.根据权利要求5或6所述的装置,其特征在于,所述装置还包括:
修改单元,用于在所述填充单元将所述发送序号填充到预置的标记序号线性队列中对应的标记序号位置时,将所述发送序号填充的标记序号位置处数据包的接收状态修改为已接收状态。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
检测单元,用于检测所述检测窗口的一端移动后脱离所述检测窗口覆盖的标记序号位置;
所述确定单元,用于当检测出所述标记序号位置处数据包的接收状态为未接收,则确定所述标记序号位置处对应的数据包丢失。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310495811.9A CN103501259B (zh) | 2013-10-21 | 2013-10-21 | 一种丢包检测的方法及检测装置 |
PCT/CN2014/088153 WO2015058613A1 (zh) | 2013-10-21 | 2014-10-08 | 一种检测数据包的方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310495811.9A CN103501259B (zh) | 2013-10-21 | 2013-10-21 | 一种丢包检测的方法及检测装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103501259A CN103501259A (zh) | 2014-01-08 |
CN103501259B true CN103501259B (zh) | 2016-08-31 |
Family
ID=49866434
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310495811.9A Active CN103501259B (zh) | 2013-10-21 | 2013-10-21 | 一种丢包检测的方法及检测装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103501259B (zh) |
WO (1) | WO2015058613A1 (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103501259B (zh) * | 2013-10-21 | 2016-08-31 | 腾讯科技(深圳)有限公司 | 一种丢包检测的方法及检测装置 |
CN105471825B (zh) * | 2014-09-03 | 2019-08-23 | 南京中兴软件有限责任公司 | 丢失数据报文的识别方法及装置 |
CN105356975A (zh) * | 2015-11-27 | 2016-02-24 | 尹绍华 | 一种数据传输方法 |
CN105607859B (zh) * | 2016-03-02 | 2018-12-11 | 腾讯科技(深圳)有限公司 | 一种数据处理方法和装置 |
US10841833B2 (en) * | 2016-10-12 | 2020-11-17 | Qualcomm Incorporated | Streamlined user plane headers for high data rates |
CN108123990B (zh) * | 2016-11-30 | 2020-06-16 | 华为技术有限公司 | 一种数据存储方法、数据存储系统及数据处理设备 |
CN109120383B (zh) | 2017-06-26 | 2021-11-26 | 深圳市道通智能航空技术股份有限公司 | 无人机及其地面站、数据传输方法 |
CN109756306B (zh) * | 2017-11-03 | 2023-10-03 | 华为技术有限公司 | 信息传输方法和通信设备 |
CN109842856A (zh) * | 2017-11-29 | 2019-06-04 | 成都鼎桥通信技术有限公司 | 一种屏蔽上行丢包的方法和设备 |
CN108551378B (zh) * | 2018-02-08 | 2019-09-06 | 中国航天时代电子有限公司 | 一种射频信号远距离传输方法 |
CN113328901B (zh) * | 2020-02-28 | 2023-04-28 | 华为技术有限公司 | 报文乱序检测方法、装置及系统 |
CN113676413B (zh) * | 2021-08-26 | 2024-05-17 | 锐捷网络股份有限公司 | 一种乱序报文的重排方法、装置及存储介质 |
CN115834002B (zh) * | 2022-11-16 | 2023-10-31 | 江苏为是科技有限公司 | 高速传输系统及方法 |
CN116760744B (zh) * | 2023-08-17 | 2023-11-07 | 新华三技术有限公司 | 丢包统计方法、装置及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101488841A (zh) * | 2009-02-18 | 2009-07-22 | 中兴通讯股份有限公司 | 一种无线链路协议帧重传方法及装置 |
CN101527927A (zh) * | 2008-03-04 | 2009-09-09 | 大唐移动通信设备有限公司 | 长期演进系统中无线链路控制层接收数据的方法及装置 |
CN102333337A (zh) * | 2011-10-11 | 2012-01-25 | 中兴通讯股份有限公司 | 脚本传输方法、无线网络仿真系统和服务器 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9456377B2 (en) * | 2011-08-19 | 2016-09-27 | Futurewei Technologies, Inc. | System and method for transmission control protocol service delivery in wireless communications systems |
CN103338131A (zh) * | 2013-06-20 | 2013-10-02 | 百度在线网络技术(北京)有限公司 | 检测日志传输丢失率的方法和设备 |
CN103501259B (zh) * | 2013-10-21 | 2016-08-31 | 腾讯科技(深圳)有限公司 | 一种丢包检测的方法及检测装置 |
-
2013
- 2013-10-21 CN CN201310495811.9A patent/CN103501259B/zh active Active
-
2014
- 2014-10-08 WO PCT/CN2014/088153 patent/WO2015058613A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101527927A (zh) * | 2008-03-04 | 2009-09-09 | 大唐移动通信设备有限公司 | 长期演进系统中无线链路控制层接收数据的方法及装置 |
CN101488841A (zh) * | 2009-02-18 | 2009-07-22 | 中兴通讯股份有限公司 | 一种无线链路协议帧重传方法及装置 |
CN102333337A (zh) * | 2011-10-11 | 2012-01-25 | 中兴通讯股份有限公司 | 脚本传输方法、无线网络仿真系统和服务器 |
Also Published As
Publication number | Publication date |
---|---|
WO2015058613A1 (zh) | 2015-04-30 |
CN103501259A (zh) | 2014-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103501259B (zh) | 一种丢包检测的方法及检测装置 | |
CN103327102B (zh) | 一种推荐应用程序的方法和装置 | |
CN103500063B (zh) | 虚拟键盘显示方法、装置及终端 | |
CN103645837B (zh) | 放大显示字体的方法和装置 | |
CN106162316A (zh) | 一种视频流的数据处理方法、装置和系统 | |
CN103699309B (zh) | 一种同步视频的录制方法、装置及移动终端 | |
CN103713804B (zh) | 设备控制方法、装置及电子设备 | |
CN103713943B (zh) | 基于终端原生操作系统的应用功能实现方法和装置 | |
CN104699501B (zh) | 一种运行应用程序的方法及装置 | |
CN103593247B (zh) | 一种数据传递方法、及装置 | |
CN103472995B (zh) | 一种消息展示的方法、装置及终端设备 | |
CN106507482A (zh) | 一种网络定位方法及终端设备 | |
CN106155717A (zh) | 一种将sdk集成到第三方apk的方法和装置 | |
CN103399657B (zh) | 鼠标指针的控制方法、装置及终端设备 | |
CN106454975A (zh) | 一种热点网络切换方法及终端设备 | |
CN103561155B (zh) | 发送短信的方法、装置及终端 | |
CN103699577B (zh) | 一种页面显示加速方法、装置及移动终端 | |
CN103677944B (zh) | 一种制作锁屏界面的方法、装置及终端设备 | |
CN107122036A (zh) | 中央处理器频率调节方法及装置 | |
CN104869550A (zh) | 通信事件的处理方法和装置 | |
CN106817489A (zh) | 消息的提示方法及移动终端 | |
CN105245432A (zh) | 未读消息计数方法、装置及终端 | |
CN106210838A (zh) | 字幕显示方法及装置 | |
CN104135396B (zh) | 显示网速信息的方法、装置及终端 | |
CN103561176B (zh) | 一种终端设备的通话记录获取方法、装置及终端设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |