CN107147481A - 丢包重传方法、装置及电子设备 - Google Patents
丢包重传方法、装置及电子设备 Download PDFInfo
- Publication number
- CN107147481A CN107147481A CN201710593797.4A CN201710593797A CN107147481A CN 107147481 A CN107147481 A CN 107147481A CN 201710593797 A CN201710593797 A CN 201710593797A CN 107147481 A CN107147481 A CN 107147481A
- Authority
- CN
- China
- Prior art keywords
- packet
- repeat requests
- time
- transmission
- data packets
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/1874—Buffer management
- H04L1/1877—Buffer management for semi-reliable protocols, e.g. for less sensitive applications like streaming video
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1809—Selective-repeat protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
- H04L1/1835—Buffer management
- H04L1/1838—Buffer management for semi-reliable protocols, e.g. for less sensitive applications such as streaming video
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
- H04L1/1835—Buffer management
- H04L1/1841—Resequencing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
本发明提供了一种丢包重传方法、装置及电子设备,该方法包括接收发送端发送的数据包,数据包携带有信息头,该信息头包括数据包的序号;添加数据包至缓存链表并根据序号进行排序;遍历缓存链表中的数据包是否连续;若否,则当缓存链表中的数据包的个数达到预设值时,判断丢失数据包对应的重传请求次数是否为零;若是,则发送重传请求至发送端,并更新重传请求对应的请求时间、重传请求次数;若否,则判断当前时刻与当前相应的请求时间的差值是否大于单次重传等待阈值;若是,则发送重传请求至发送端,并更新重传请求对应的请求时间、重传请求次数。本发明提供的丢包重传方法、装置及电子设备,缩短了重传等待时间,进而提高了视频传输质量。
Description
技术领域
本发明涉及数据传输技术领域,尤其是涉及一种丢包重传方法、装置及电子设备。
背景技术
视频通讯,就是把本地摄像头或者其它视频采集设备采集的视频信息,编码压缩之后,通过多种网络系统传输到远端,再解压缩显示的过程。但是,由于网络条件的千差万别,网络系统中不可避免的会出现数据包丢失,即产生丢失数据包,从而影响视频通讯的质量。因此,如何在“有限带宽”的“不稳定”的网络环境中,“快速可靠的”传输数据成为了一个重要的研究方向。
通过丢包重传的方法来解决在“有限”的“不稳定”的网络环境中“稳定”的传输数据的问题在业内已经有了不少的研究。比如最基础的方法,直接使用TCP(TransmissionControl Protocol,传输控制协议)协议来重传数据,但是由于TCP协议本身的原因,这种方法往往存在拥塞、延时大和恢复慢的问题。因此,在工程实践中,人们大多采用UDP(UserDatagram Protocol,用户数据报协议)协议来实现丢包重传方法。
现有技术中,在采用UDP协议来实现丢包重传方法时,发送重传请求的触发条件固定不变,均以网络回路时间为基准设定触发条件,即各个重传请求的重传等待时间均是按照网络回路时间进行预估,这就相当于延长了重传的等待时间,从而导致视频传输质量差。
发明内容
有鉴于此,本发明的目的在于提供一种丢包重传方法、装置及电子设备,以缩短重传等待时间,进而提高视频传输质量。
第一方面,本发明实施例提供一种丢包重传方法,应用于接收端,包括:接收发送端发送的数据包,并记录所述数据包的接收时间,其中所述数据包分为重传数据包和正常数据包,且所述数据包携带有信息头,所述信息头包括所述数据包的序号;添加所述数据包至缓存链表并根据所述序号进行排序;遍历所述缓存链表中的数据包是否连续;若是,则将当前连续的数据包添加至输出缓存;若否,则当缓存链表中的数据包的个数达到预设值时,确定丢失数据包的序号,并判断所述丢失数据包对应的重传请求次数是否为零;若是,则发送重传请求至发送端,并更新所述重传请求对应的请求时间、所述重传请求次数;若否,则判断当前时刻与当前相应的请求时间的差值是否大于单次重传等待阈值;若是,则发送重传请求至发送端,并更新所述重传请求对应的请求时间、所述重传请求次数;其中,所述重传请求携带有所述丢失数据包的序号的相关信息。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述信息头还包括发送时间、重传标识;所述方法还包括:根据所述信息头中的发送时间和重传标识,计算所述单次重传等待阈值。
结合第一方面的第一种可能的实施方式,本发明实施例提供了第一方面的第二种可能的实施方式,其中,具体按照以下方式计算:在预设时间段内,根据所述重传标识,从所述输出缓存中获取重传次数为1的多个重传数据包的信息头;根据所述信息头中的发送时间,分别计算各个所述重传次数为1的多个重传数据包的单次重传耗时;根据各个所述单次重传耗时,计算单次重传等待阈值。
结合第一方面的第二种可能的实施方式,本发明实施例提供了第一方面的第三种可能的实施方式,其中,所述根据所述信息头中的发送时间,分别计算各个所述重传次数为1的多个重传数据包的单次重传耗时包括:将所述输出缓存中的各个所述数据包按照序号从小到大进行排序;计算所述重传次数为1的多个所述重传数据包的发送时间与所述重传数据包的后一个数据包的发送时间的时间差;将所述时间差作为相应的重传次数为1的重传数据包的单次重传耗时。
结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,判断当前时刻与当前相应的请求时间的差值是否大于单次重传等待阈值之前,还包括:判断所述丢失数据包的接收时长是否超过预设延时阈值;若是,则将所述丢失数据包的后一个的数据包添加至输出缓存;其中,接收时长为当前时刻与所述丢失数据包的后一个数据包的接收时刻的时间差值。
第二方面,本发明实施例还提供一种丢包重传方法,应用于发送端,包括:监听是否接收到重传请求,所述重传请求携带有丢失数据包的序号的相关信息;若否,获取待传送的正常数据包;添加信息头至所述正常数据包,然后发送所述正常数据包至接收端,同时,将所述正常数据包存储至数据缓存区;若是,则读取并解析所述重传请求,并根据所述重传请求从数据缓存区提取所述丢失数据包,将所述丢失数据包标记为重传数据包;更新所述重传数据包的信息头,然后发送所述重传数据包至接收端;其中所述信息头包括序号、发送时间、重传标识;所述重传标识用于区分重传数据包和正常数据包。
结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,发送所述正常数据包至接收端之前,还包括:对所述正常数据包进行VBV码流控制;发送所述重传数据包至接收端之前,还包括:对所述重传数据包进行VBV码流控制。
第三方面,本发明实施例提供一种丢包重传装置,应用于接收端,包括:接收模块,用于接收发送端发送的数据包,并记录所述数据包的接收时间,其中所述数据包分为重传数据包和正常数据包,且所述数据包携带信息头,所述信息头包括所述数据包的序号;存储排序模块,用于添加所述数据包至缓存链表并根据所述序号进行排序;第一判断模块,用于遍历所述缓存链表中的数据包是否连续;缓存添加模块,用于当所述缓存链表中的数据包连续时,将当前连续的数据包添加至输出缓存;第二判断模块,用于当所述缓存链表中的数据包不连续,且缓存链表中的数据包的个数达到预设值时,确定丢失数据包的序号,并判断所述丢失数据包对应的重传请求次数是否为零;第三判断模块,用于当所述重传请求次数为非零时,判断当前时刻与当前相应的请求时间的差值是否大于单次重传等待阈值;请求发送模块,用于当所述重传请求次数为零时,或者当当前时刻与当前相应的请求时间的差值大于单次重传等待阈值时,发送重传请求至发送端,并更新所述重传请求对应的请求时间、所述重传请求次数;其中,所述重传请求携带有所述丢失数据包的序号的相关信息。
第四方面,本发明实施例还提供一种丢包重传装置,应用于发送端,包括:监听模块,用于监听是否接收到重传请求,所述重传请求携带有丢失数据包的序号的相关信息;获取模块,用于当未接收到所述重传请求时,获取待传送的正常数据包;正常发送模块,用于添加信息头至所述正常数据包,然后发送所述正常数据包至接收端,同时,将所述正常数据包存储至数据缓存区;提取模块,用于当接收到所述重传请求时,读取并解析所述重传请求,并根据所述重传请求从数据缓存区提取所述丢失数据包,将所述丢失数据包标记为重传数据包;重传发送模块,用于更新所述重传数据包的信息头,然后发送所述重传数据包至接收端;其中所述信息头包括序号、发送时间、重传标识,所述重传标识用于区分重传数据包和正常数据包。
第五方面,本发明实施例还提供一种电子设备,存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的方法的步骤或者上述第二方面所述的方法的步骤。
本发明实施例带来了以下有益效果:
本发明提供的实施例中,通过区分每个丢失数据包的第一次重传请求和后续其它的重传请求,设定不同的触发条件。发送第一次重传请求的触发条件为检测到缓存链表中的数据包不连续且缓存链表中的数据包的个数达到预设值;发送后续其它的重传请求的触发条件为当前时刻与当前请求时间的差值大于单次重传等待阈值,由于第一次重传请求的等待时间远远小于后续其它的重传请求的等待时间,因此,本发明实施例提供的丢包重传方法、装置及电子设备,缩短了重传等待时间,进而提高了视频传输质量。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的丢包重传方法的第一种流程示意图;
图2为本发明实施例提供的丢包重传方法的第二种流程示意图;
图3为本发明实施例提供的发送端与接收端单次重传的交互图;
图4为本发明实施例提供的发送端与接收端多次重传的交互图;
图5为本发明实施例提供的发送端的原理图;
图6为本发明实施例提供的丢包重传方法的第三种流程示意图;
图7为本发明实施例提供的重传响应过程的流程示意图;
图8为本发明实施例提供的接收端的原理图;
图9为本发明实施例提供的接收端的数据处理图;
图10为本发明实施例提供的接收端的函数处理图;
图11为本发明实施例提供的push_in_queue函数的具体实现流程图;
图12为本发明实施例提供的inter_transite函数的具体实现流程图;
图13为本发明实施例提供的out_queue函数的具体实现流程图;
图14为本发明实施例提供的丢包重传装置的第一种结构示意图;
图15为本发明实施例提供的丢包重传装置的第二种结构示意图;
图16为本发明实施例提供的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前在采用UDP协议来实现丢包重传方法时,发送重传请求的触发条件固定不变,均以网络回路时间为基准设定触发条件,即各个重传请求的重传等待时间均是按照网络回路时间进行预估,这就相当于延长了重传的等待时间,从而导致视频传输质量差,基于此,本发明实施例提供的一种丢包重传方法、装置及电子设备,可以区分每个丢失数据包的第一次重传请求和后续其它的重传请求,设定不同的触发条件,缩短了重传等待时间,进而提高了视频传输质量。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种丢包重传方法进行详细介绍。
实施例一:
本发明提供的实施例中,首先定义了两种数据结构:
(1)信息头(retrans_header)
具体地,该信息头包括数据包的序号(sequence_number,以16位无符号整数表示)、重传标识(retrains_flag,以1比特位标识)、发送时间(ts,以16位比特位串表示),另外还包括校验标识(magic_check,15位比特位串表示)。其中,数据包分为重传数据包和正常数据包,重传数据包为已经发送过一次或者多次,而重传的数据包,正常数据包为第一次发送的数据包。重传标识用于接收端区分接收到的数据包是否为重传数据包或者正常数据包,发送时间用来标记发送端发送相应数据包的时间,单位为毫秒ms,校验标识用于接收端校验接收到的信息是否为待接收的数据包。
在发送端发送数据包的同时,需要将上述信息头添加至该数据包。为了避免在添加或者删除数据包的过程中,复制数据包中的其他数据信息,将信息头附在每个数据包的尾部。
(2)重传请求
该重传请求应当携带有丢失数据包的序号的相关信息,该相关信息可以为丢失数据包的序号,也可以为丢失数据包相邻的数据包的序号。重传请求以下可简称为NACK(Negative ACKnowledgement,未收到确认)包。
接收端检测到存在丢失数据包时,发送NACK包至发送端。在一个实施例中,可以但不限于设置发送端的端口号为接收端的端口号加一。NACK包定义如下:
具体地,该NACK包中包括校验标识(magic_check与上述信息头中的定义相同)、丢失数据包前一个数据包的发送时间(prev_ts,以16位比特位串表示)及序号(prev_seq,以16位比特位串表示)、丢失数据包后一个数据包的发送时间(next_ts,以16位比特位串表示)和序号(next_seq,以16位比特位串表示)。
需要说明的是,上述对NACK包及信息头的定义应被解释为仅仅是示例性的,而不是作为限制。下面将定义的NACK包及信息头应用于以下描述的方法中。
图1示出了本发明实施例提供的丢包重传方法的第一种流程示意图。如图1所示,该丢包重传方法应用于发送端,包括:
步骤S101,监听是否接收到重传请求。
实时监听是否接收到重传请求,实现重传优先,可以尽早的实现重传,以减少重传等待时间。若发送端没有监听到重传请求,则依次执行步骤S102、步骤S103;若发送端监听到重传请求,则依次执行步骤S104、步骤S105。
步骤S102,获取待传送的正常数据包。
步骤S103,添加信息头至该正常数据包,然后发送该正常数据包至接收端,同时,将该正常数据包存储至数据缓存区。
具体地,将添加信息头的正常数据包发送至接收端,以便接收端根据信息头进行相应的操作。同时将该正常数据包存储至数据缓存区,以备后续收到重发请求后进行重发操作。
步骤S104,读取该重传请求,并根据该重传请求从数据缓存区提取丢失数据包,将该丢失数据包标记为重传数据包。
具体地,根据重传请求中的丢失数据包的序号的相关信息,确定丢失数据包的序号,然后根据该序号从数据缓存区中提取丢失数据包。
步骤S105,更新该重传数据包的信息头,然后发送该重传数据包发至发送端。
具体地,根据当前时刻,更新该重传数据包的发送时间。
图2示出了本发明实施例提供的丢包重传方法的第二种流程示意图。如图2所示,该丢包重传方法应用于接收端,包括:
步骤S201,接收发送端发送的数据包,并记录该数据包的接收时间,其中数据包分为重传数据包和正常数据包,且该数据包携带有信息头。
步骤S202,添加该数据包至缓存链表并根据序号进行排序。
具体地,接收端解析数据包的信息头,根据信息头中的序号,对缓存链表中的各个数据包进行排序。
步骤S203,遍历该缓存链表中的数据包是否连续。
当缓存链表中的数据包连续时,执行步骤S204;当缓存链表中的数据包不连续时,执行步骤S205及其它后续步骤。
步骤S204,将当前连续的数据包添加至输出缓存。
具体地,加入输出缓存以便于后续数据包直接输出。
步骤S205,当缓存链表中的数据包的个数达到预设值时,确定丢失数据包的序号,并判断该丢失数据包对应的重传请求次数是否为零。
在本发明提供的实施例中,检测到当前数据包不连续时,需要等待缓存链表中的个数达到预设值,即设定了乱序程度。如设定预设值为10,缓存链表中现有5个数据包,这5个数据包的序号依次为1、2、4、5、6,遍历到4号数据包时,发现数据包不连续,若此时判断出缓存链表中数据包的个数没有达到预设值,则需要等待直至缓存链表中数据包的个数达到预设值。待达到预设值后,遍历到4号数据包时,若仍检测到数据包为不连续,则确定3号数据包丢失,3号数据包为丢失数据包。
另外,判断该丢失数据包对应的重传请求次数是否为零,当该重传请求次数为零,则执行步骤S207;若该重传请求次数不为零,则依次执行步骤S206、S207。
步骤S206,判断当前时刻与当前相应的请求时间的差值是否大于单次重传等待阈值。
具体地,单次重传等待时间可以用户根据网络回路时间进行估计得出,也可以通过相应计算得出。在上述差值大于单次重传等待阈值后,则确认单次重传超时,执行步骤S207,这样可以防止由于重传请求过于频繁而造成网络拥塞、恶化的现象。
步骤S207,发送重传请求至发送端,并更新该重传请求对应的请求时间、重传请求次数。
具体地,针对同一丢失数据包,每发送一次重传请求,则对一个的重传请求次数加1,同时根据发送重传请求的时间,更新请求时间。
在本发明实施例提供的丢包重传方法中,通过区分每个丢失数据包的第一次重传请求和后续其它的重传请求,设定不同的触发条件。发送第一次重传请求的触发条件为检测到缓存链表中的数据包不连续且缓存链表中的数据包的个数达到预设值;发送后续其它的重传请求的触发条件为当前时刻与当前请求时间的差值大于单次重传等待阈值,由于第一次重传请求的等待时间远远小于后续其它的重传请求的等待时间,因此,本发明实施例提供的丢包重传方法,缩短了重传等待时间,进而提高了视频传输质量。
进一步地,考虑到传输过程中,如果没有流量控制,在丢包率增大到一定程度,由于重传的数据包较多,使得网络拥塞、恶化。因此在本实施例中,发送端在发送数据包(包括重传数据包和正常数据包)至接收端之前,需要对该数据包进行码流控制,如可以采用但不限于VBV(Video Buffer Verifier,视频缓存检验器)进行码流控制,从而用户只需要提供网络的实际带宽即可,避免了一些技术中由于流量控制造成的多次重传请求,简化了用户的使用。
图3示出了本发明实施例提供的发送端与接收端单次重传的交互图。如图3所示,单次重传的交互步骤如下:
(a1)发送端在正常数据包(以UDP数据包为例)的尾部附加信息头后,进行码流控制,然后发送该正常数据包至接收端,同时将该正常数据包存储至数据缓存区。
(b1)接收端接收到数据包后,解析数据包的信息头,判断数据包是否连续,若不连续且不满足乱序程度要求时,则发送NACK包至发送端。
(c1)发送端接收到NACK包后,解析NACK包,从数据缓存区提取对应的丢失数据包作为重传数据包,更新该重传数据包的信息头,进行码流控制,然后再次发送至接收端。
(d1)接收端接收到重传数据包,把该重传数据包排序后插入合适的位置。
进一步地,考虑到用户根据网络回路时间估计单次重传等待阈值,需要进行手动设定,进而需要比较大的人工成本,且人工设置存在滞后现象,影响视频传输的质量;又因为不同的网络具有不同的网络回路时间,单次重传等待阈值也应当根据不同的网络回路时间设定不同的数值,从而尽可能的缩短重传等待时间。因此在一个实施例中,可以根据信息头中的发送时间和重传标识,计算单次重传等待阈值。为了保证单次重传等待阈值的准确定,可以在上述步骤(d1)中,计算单次重传等待阈值。具体的计算方法如下:
(d1-1)在预设时间段内,根据重传标识从输出缓存中获取重传次数为1的多个重传数据包的信息头。
(d1-2)根据信息头中的发送时间,分别计算各个重传次数为1的多个重传数据包的单次重传耗时。
其中步骤(d1-2)具体为:将输出缓存中的各个数据包按照序号从小到大进行排序;计算重传次数为1的多个重传数据包的发送时间与该重传数据包的后一个数据包的发送时间的时间差;将该时间差作为相应重传次数为1的重传数据包的单次重传耗时。
(d1-3)根据各个单次重传耗时,计算单次重传等待阈值。
具体地,可以对各个单次重传耗时求平均值,然后用某种估算方法设置单次重传等待阈值。假设预设时间段内,计算的各个单次重传耗时分别为Tr1、Tr2、……Trn,则该多个单次重传耗时的平均值为(Tr1+Tr2+……Trn)/n,其中n表示单次重传耗时的个数;然后通过乘以系数的方法估算单次重传等待阈值,设系数为1.1,则计算出的单次重传等待阈值为:Tr=1.1×(Tr1+Tr2+……Trn)/n。
综上所述,通过在信息头中加入发送时间,自动计算当前网络下对应的单次重传等待阈值,而不需要用户根据不同的网络估计然后再进行手动设置,这样,本发明提供的丢包重传方法能够自适应各种不同的网络条件,既节省了人力、又能避免滞后现象,进而提高视频传输质量。
进一步地,在计算单次重传等待阈值的同时,可以根据NACK包的发送情况,统计丢包率,以便后续对视频传输的统计分析。
进一步地,图4示出了本发明实施例提供的发送端与接收端多次重传的交互图。如图4所示,以两次为例,交互步骤如下:
(a2)发送端在正常数据包的尾部附加信息头后,进行码流控制,然后发送该正常数据包至接收端,同时将该正常数据包存储至数据缓存区。
(b2)接收端接收到数据包后,解析数据包的信息头,判断数据包是否连续,若不连续且不满足乱序程度要求时,则发送NACK包至发送端。
(c2)发送端接收到NACK包后,解析NACK包,从数据缓存区提取对应的丢失数据包作为重传数据包,更新该重传数据包的信息头,进行码流控制,然后再次发送至接收端。
(d2)接收端在单次重传超时的情况下,再次发送NACK包至发送端。
(e2)发送端接收到NACK包后,解析NACK包,从数据缓存区提取对应的丢失数据包作为重传数据包,更新该重传数据包的信息头,进行码流控制,然后再次发送至接收端。即相当于再次执行步骤(c2)。
(f2)接收端接收到重传数据包,把该重传数据包排序后插入合适的位置。
进一步地,网络情况随时间而变化,有时候网络带宽会变的极低或者彻底中断,此时接收端在没有接收到重传的丢失数据包的情况下,会不断发送NACK包,只有缓冲区满的情况下,才会退出重传。由于缓冲区满的时间与实际传输的码率有关,码率不同则缓冲区满的时间不同,且缓冲区一般开得很大,所以在网络恢复正常带宽瞬间,会导致过多的数据包传输,使得整个网络链路的恢复时间变慢,严重影响视频传输质量。因此,上述应用于接收端的丢包重传方法中,判断当前时刻与当前相应的请求时间的差值是否大于单次重传等待阈值之前,还包括:判断丢失数据包的接收时长是否超过预设延时阈值;若是,则将丢失数据包的后一个的数据包添加至输出缓存;其中,接收时长为当前时刻与丢失数据包的后一个数据包的接收时刻的时间差值,预设延时阈值可以由用户根据实际的需要自行设置,这里不作限定。
这样,丢失数据包的接收时长超过预设延时阈值时,不再发送NACK包,直接退出重传,即该丢失数据包不再重传,以避免加快网络链路的恢复时间,避免出现网络拥塞现象。
综上所述,通过码流控制和设置预设延时阈值,用户只需要设置用户能忍受的最大延时,就可以完成丢包重传,提高了用户的易用性。
进一步地,为了防止接收到意外的数据包而造成出错情况,比如接收到了另一个媒体源的数据包,上述应用于接收端的丢包重传方法还包括:计算接收到的当前数据包的序号与上一个数据包的序号的差值;若该差值大于预设阈值,则确定当前数据包不合法,删除该当前数据包。
图5示出了本发明实施例提供的发送端的原理图。如图5所示,该发送端涉及到信息头添加、码流控制、及数据包缓存三个部分,该发送端具体执行步骤包括:
(a3)从输入端PACK处接收打包好的数据包,在数据包的尾部添加信息头。此时不需要区分数据包的封装协议(如UDP协议、RTP协议)。
(b3)数据包经过VBV码流控制后,可以但不限于通过UDP协议发送(在图5中表示为UDP_SEND)至发送端。
(c3)数据包发送的同时,将数据包存入缓存(可以但不限于缓存数组),以备后续重传。
(d3)接收端接收到NACK包后,从缓存中查找对应的丢失数据包,经过VBV码流控制后,可以但不限于通过UDP协议发送(在图5中表示为UDP_RECV)至发送端。
进一步地,图6示出了本发明实施例提供的丢包重传方法的第三种流程示意图,该丢包重传方法应用于发送端。如图6所示,实际设计过程的具体步骤如下:
(a4)初始化数据缓存区。
数据缓存区保存的是数据的一些描述信息和实际数据的buffer指针,并不包含实际数据。具体定义如下:
seq对应信息头retrans_header里的sequence_number,为数据包序号;ts对应retrans_header里的ts,为该node的发送时刻,单位为ms;buffer为存储数据的heap_buffer的句柄;used表明该node的数据是否有效;resend表明该数据的重传次数。
为了加快对数据包的查找,数据缓存区为个数为2的整数次幂的数组,每一个数据包在数据缓冲区的位置为seq&(m-1),m表示缓存区数据包的数量。
(b4)检查NACK管道是否有NACK包。如果有,则提取该NACK包,解析NACK包,进行重传响应。该重传响应的过程如图7所示。如果没有,则执行步骤(c4)。
(c4)检查码流输入管道(正常数据包的输入端)是否有数据包,即是否接收到正常数据包,若是,短休眠之后,回到步骤(b4),若否,则取出数据包,执行步骤(d4)。
(d4)进行VBV码流控制,生成信息头,并附在正常数据包的尾部,复制该正常数据包后,将该正常数据包发送至接收端。
(e4)将复制的正常数据包存入数据缓存区,同时清理好原来的失效的数据,失效的数据放回码流输入管道,回到步骤(b4)。这里以seq=0x46D2,m=0x400为例进行说明,首先代入seq&(m-1)得到该正常数据包在数据缓冲区的位置site=0x2D2,释放原来site=0x2D2中的数据,将该正常数据包放入site=0x2D2中。
图8示出了本发明实施例提供的接收端的原理图。如图8所示,该接收端设计过程具体包括:
(a5)接收端可以但不限于通过UDP协议接收到数据包,加入双向链表(通过seq找到合适位置),并记录该数据包的入队时间(解码本地时间)。
(b5)检查双向链表中不连续的数据包是否满足乱序程度要求,若否,则发送NACK包,其中该乱序程度可以通过参数设置。
(c5)从双向链表的队首开始输出连续的数据包或者超过预设延时阈值仍不连续的数据包,然后删除各个数据包的信息头,进行拆包输出至输出端UnPack。
图9示出了本发明实施例提供的接收端的数据处理图。在一个实施例中,如图9所示,该接收端包括1个数据输入管道,2个输出管道(NACK输出管道和数据输出管道)。为了便于数据处理,该接收端还包括2个双向链表,分别是recv queue与out queue。
该数据处理过程通过循环调用push_in_queue、inter_transite、out_queue这三个函数来实现,如图10所示。
其中,push_in_queue的作用是从数据输入管道获取数据包,填入双向链表recvqueue或者out queue,并按照信息头的序号从小到大进行排序,具体实现过程如图11所示。参见图11,从数据输入管道获取数据包后,申请一个新的queue节点空间,并记录本地时间(作为数据包的接收时间);将数据包的数据指针存入上述queue节点空间;判断该数据包是否为重传数据包。
若该数据包不是重传数据包,则将该数据包插入recv queue,比较该数据包对应的序号seq与上一次从recv queue队列移除到out queue队列的数据包的序号recv_lastseq,若seq大于该recv_last seq,两者差值小于最大阈值,且与该recv queue队列中的其他数据包的序号不重复,则按照序号从小到达的顺序插入至该recv queue队列中;若该seq小于该recv_last seq,或者两者差值大于等于最大阈值或者与该recv queue队列中的其他数据包的序号重复,则销毁该数据包对应的queue节点空间。
若该数据包是重传数据包,则将该数据包插入out queue,比较该数据包对应的序号seq与上一次从out queue队列移除到数据输出管道的数据包的序号out_last seq,后续对比操作过程与上述非重传数据包的情况相同,在此不再赘述。
函数inter_transite的作用是,将recv queue中的节点转到out queue,具体实现过程如图12所示。参见图12,从recv queue的队首取出节点,若取出失败,则该inter_transite函数调用结束。若成功,则判断取出的该节点中的数据包与最后一个从recvqueue中移除的节点中的数据包是否连续,若是,则将该节点从recv queue中删除,添加至out queue的队尾,并进行相应的链表参数变更(recv queue中数据包的个数recv_queue_num减1,out queue中数据包的个数out_queue_num加1),同时记录最后一个从recv queue中移除的节点信息(如节点中的指针,以便于判断数据包的连续性);若否,则判断recvqueue中数据包的个数是否达到预设值(recv_queue_num>limit(预设值)),若否,则inter_transite函数调用结束,若是,则将该节点从recv queue中删除,添加至out queue的队尾,并进行相应的链表参数变更(recv queue中数据包的个数recv_queue_num减1,out queue中数据包的个数out_queue_num加1),然后将该节点对应的重传次数加1,发送相应的NACK包(此时为第一次发送NACK包),同时记录最后一个从recv queue中移除的节点信息。
函数out_queue的作用是,将out queue中的连续或者超过预设延时阈值仍不连续的数据包推出队列,具体实现过程如图13所示。参见图13,首先获取按照上述方法计算的单次重传等待阈值,从out queue的队首取出节点,若取出失败,则遍历out_queue,当检测到不连续则按照前述重传请求的发送方法发送NACK包(此时非第一次发送NACK包),该out_queue函数调用结束。若成功,则判断取出的该节点中的数据包与数据输出管道中最后进入的数据包是否连续,若是,则输出当前节点中的数据包至数据输出管道;若否,则判断该数据包对应的丢失数据包的接收时长是否超过预设延时阈值,若是,则将输出当前节点中的数据包至数据输出管道,若否,则判断该当前时刻与当前相应的请求时间的差值是否大于单次重传等待阈值,若是,则遍历out_queue,当检测到不连续则按照前述重传请求的发送方法发送NACK包(此时非第一次发送NACK包),该out_queue函数调用结束。
需要说明的是,上述输出当前节点中的数据包至数据输出管道后,需要将当前节点从out_queue中删除,并销毁节点空间,记录最后一个从out queue中移除的节点信息(以便于判断数据包的连续性),out queue中数据包的个数out_queue_num减1,然后回到“从out queue的队首取出节点”这一步骤。
实施例二:
图14示出了本发明实施例提供的丢包重传装置的第一种结构示意图。该丢包重传装置应用于发送端,包括:
监听模块11,用于监听是否接收到重传请求,该重传请求携带有丢失数据包的序号的相关信息;获取模块12,用于当未接收到重传请求时,获取待传送的正常数据包;正常发送模块13,用于添加信息头至正常数据包,然后发送正常数据包至接收端,同时,将正常数据包存储至数据缓存区;提取模块14,用于当接收到重传请求时,读取并解析该重传请求,并根据该重传请求从数据缓存区提取丢失数据包,将该丢失数据包标记为重传数据包;重传发送模块15,用于更新重传数据包的信息头,然后发送该重传数据包至接收端;其中上述信息头包括序号、发送时间、重传标识,重传标识用于区分重传数据包和正常数据包。
图15示出了本发明实施例提供的丢包重传装置的第二种结构示意图。该丢包重传装置应用于接收端,包括:
接收模块21,用于接收发送端发送的数据包,并记录该数据包的接收时间,其中该数据包分为重传数据包和正常数据包,且数据包携带信息头,该信息头包括数据包的序号;存储排序模块22,用于添加该数据包至缓存链表并根据上述序号进行排序;第一判断模块23,用于遍历缓存链表中的数据包是否连续;缓存添加模块24,用于当缓存链表中的数据包连续时,将当前连续的数据包添加至输出缓存;第二判断模块25,用于当缓存链表中的数据包不连续,且缓存链表中的数据包的个数达到预设值时,确定丢失数据包的序号,并判断该丢失数据包对应的重传请求次数是否为零;第三判断模块26,用于当重传请求次数为非零时,判断当前时刻与当前相应的请求时间的差值是否大于单次重传等待阈值;请求发送模块27,用于当重传请求次数为零时,或者当当前时刻与当前相应的请求时间的差值大于单次重传等待阈值时,发送重传请求至发送端,并更新重传请求对应的请求时间、重传请求次数;其中,上述重传请求携带有丢失数据包的序号的相关信息。
这样,通过区分每个丢失数据包的第一次重传请求和后续其它的重传请求,设定不同的触发条件。发送第一次重传请求的触发条件为检测到缓存链表中的数据包不连续且缓存链表中的数据包的个数达到预设值;发送后续其它的重传请求的触发条件为当前时刻与当前请求时间的差值大于单次重传等待阈值,由于第一次重传请求的等待时间远远小于后续其它的重传请求的等待时间,因此,本发明实施例提供的丢包重传装置,缩短了重传等待时间,进而提高了视频传输质量。
实施例三:
参见图16,本发明实施例还提供一种电子设备100,包括:处理器40,存储器41,总线42和通信接口43,所述处理器40、通信接口43和存储器41通过总线42连接;处理器40用于执行存储器41中存储的可执行模块,例如计算机程序。
其中,存储器41可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口43(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线42可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图16中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器41用于存储程序,所述处理器40在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器40中,或者由处理器40实现。
处理器40可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器40中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器40可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器41,处理器40读取存储器41中的信息,结合其硬件完成上述方法的步骤。
本发明实施例提供的丢包重传装置及电子设备,与上述实施例提供的丢包重传方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和电子设备的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本发明实施例所提供的进行丢包重传方法的计算机程序产品,包括存储了处理器可执行的非易失的程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种丢包重传方法,应用于接收端,其特征在于,包括:
接收发送端发送的数据包,并记录所述数据包的接收时间,其中所述数据包分为重传数据包和正常数据包,且所述数据包携带有信息头,所述信息头包括所述数据包的序号;
添加所述数据包至缓存链表并根据所述序号进行排序;
遍历所述缓存链表中的数据包是否连续;若是,则将当前连续的数据包添加至输出缓存;若否,则当缓存链表中的数据包的个数达到预设值时,确定丢失数据包的序号,并判断所述丢失数据包对应的重传请求次数是否为零;
若是,则发送重传请求至发送端,并更新所述重传请求对应的请求时间、所述重传请求次数;若否,则判断当前时刻与当前相应的请求时间的差值是否大于单次重传等待阈值;若是,则发送重传请求至发送端,并更新所述重传请求对应的请求时间、所述重传请求次数;
其中,所述重传请求携带有所述丢失数据包的序号的相关信息。
2.根据权利要求1所述的方法,其特征在于,所述信息头还包括发送时间、重传标识;
所述方法还包括:
根据所述信息头中的发送时间和重传标识,计算所述单次重传等待阈值。
3.根据权利要求2所述的方法,其特征在于,具体按照以下方式计算:
在预设时间段内,根据所述重传标识,从所述输出缓存中获取重传次数为1的多个重传数据包的信息头;
根据所述信息头中的发送时间,分别计算各个所述重传次数为1的多个重传数据包的单次重传耗时;
根据各个所述单次重传耗时,计算单次重传等待阈值。
4.根据权利要求3所述的方法,其特征在于,所述根据所述信息头中的发送时间,分别计算各个所述重传次数为1的多个重传数据包的单次重传耗时包括:
将所述输出缓存中的各个所述数据包按照序号从小到大进行排序;
计算所述重传次数为1的多个所述重传数据包的发送时间与所述重传数据包的后一个数据包的发送时间的时间差;
将所述时间差作为相应的重传次数为1的重传数据包的单次重传耗时。
5.根据权利要求1所述的方法,其特征在于,判断当前时刻与当前相应的请求时间的差值是否大于单次重传等待阈值之前,还包括:
判断所述丢失数据包的接收时长是否超过预设延时阈值;
若是,则将所述丢失数据包的后一个的数据包添加至输出缓存;
其中,接收时长为当前时刻与所述丢失数据包的后一个数据包的接收时刻的时间差值。
6.一种丢包重传方法,应用于发送端,其特征在于,包括:
监听是否接收到重传请求,所述重传请求携带有丢失数据包的序号的相关信息;
若否,获取待传送的正常数据包;
添加信息头至所述正常数据包,然后发送所述正常数据包至接收端,同时,将所述正常数据包存储至数据缓存区;
若是,则读取并解析所述重传请求,并根据所述重传请求从数据缓存区提取所述丢失数据包,将所述丢失数据包标记为重传数据包;
更新所述重传数据包的信息头,然后发送所述重传数据包至接收端;
其中所述信息头包括序号、发送时间、重传标识;所述重传标识用于区分重传数据包和正常数据包。
7.根据权利要求6所述的方法,其特征在于,发送所述正常数据包至接收端之前,还包括:
对所述正常数据包进行VBV码流控制;
发送所述重传数据包至接收端之前,还包括:
对所述重传数据包进行VBV码流控制。
8.一种丢包重传装置,应用于接收端,其特征在于,包括:
接收模块,用于接收发送端发送的数据包,并记录所述数据包的接收时间,其中所述数据包分为重传数据包和正常数据包,且所述数据包携带信息头,所述信息头包括所述数据包的序号;
存储排序模块,用于添加所述数据包至缓存链表并根据所述序号进行排序;
第一判断模块,用于遍历所述缓存链表中的数据包是否连续;
缓存添加模块,用于当所述缓存链表中的数据包连续时,将当前连续的数据包添加至输出缓存;
第二判断模块,用于当所述缓存链表中的数据包不连续,且缓存链表中的数据包的个数达到预设值时,确定丢失数据包的序号,并判断所述丢失数据包对应的重传请求次数是否为零;
第三判断模块,用于当所述重传请求次数为非零时,判断当前时刻与当前相应的请求时间的差值是否大于单次重传等待阈值;
请求发送模块,用于当所述重传请求次数为零时,或者当当前时刻与当前相应的请求时间的差值大于单次重传等待阈值时,发送重传请求至发送端,并更新所述重传请求对应的请求时间、所述重传请求次数;
其中,所述重传请求携带有所述丢失数据包的序号的相关信息。
9.一种丢包重传装置,应用于发送端,其特征在于,包括:
监听模块,用于监听是否接收到重传请求,所述重传请求携带有丢失数据包的序号的相关信息;
获取模块,用于当未接收到所述重传请求时,获取待传送的正常数据包;
正常发送模块,用于添加信息头至所述正常数据包,然后发送所述正常数据包至接收端,同时,将所述正常数据包存储至数据缓存区;
提取模块,用于当接收到所述重传请求时,读取并解析所述重传请求,并根据所述重传请求从数据缓存区提取所述丢失数据包,将所述丢失数据包标记为重传数据包;
重传发送模块,用于更新所述重传数据包的信息头,然后发送所述重传数据包至接收端;
其中所述信息头包括序号、发送时间、重传标识,所述重传标识用于区分重传数据包和正常数据包。
10.一种电子设备,包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至5任一项所述的方法的步骤或者上述权利要求6至7任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710593797.4A CN107147481A (zh) | 2017-07-19 | 2017-07-19 | 丢包重传方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710593797.4A CN107147481A (zh) | 2017-07-19 | 2017-07-19 | 丢包重传方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107147481A true CN107147481A (zh) | 2017-09-08 |
Family
ID=59776428
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710593797.4A Pending CN107147481A (zh) | 2017-07-19 | 2017-07-19 | 丢包重传方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107147481A (zh) |
Cited By (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107800519A (zh) * | 2017-11-20 | 2018-03-13 | 烽火通信科技股份有限公司 | 一种数据包的重传方法和重传系统 |
CN108092745A (zh) * | 2017-12-22 | 2018-05-29 | 北京东土军悦科技有限公司 | 点对点设备的数据传输方法、装置、设备及存储介质 |
CN108234084A (zh) * | 2017-12-21 | 2018-06-29 | 深圳市欣博跃电子有限公司 | 一种数据的收发方法、装置及设备 |
CN108344480A (zh) * | 2018-01-25 | 2018-07-31 | 北京农业信息技术研究中心 | 一种家禽自动称重方法及系统 |
CN109064524A (zh) * | 2018-08-16 | 2018-12-21 | 上海联影医疗科技有限公司 | 一种数据传输方法、数据收集板、重建机及介质 |
CN109194452A (zh) * | 2018-09-04 | 2019-01-11 | 京信通信系统(中国)有限公司 | 数据重传方法、装置、存储介质及其网络设备 |
CN109560901A (zh) * | 2018-11-14 | 2019-04-02 | 广州虎牙信息科技有限公司 | 一种数据重传方法、装置、终端设备及存储介质 |
CN109756306A (zh) * | 2017-11-03 | 2019-05-14 | 华为技术有限公司 | 信息传输方法和通信设备 |
CN109787722A (zh) * | 2019-01-25 | 2019-05-21 | 北京数码视讯技术有限公司 | 数据传输方法、装置和服务器 |
CN109831282A (zh) * | 2019-01-31 | 2019-05-31 | 郑州云海信息技术有限公司 | 数据包重传、重传发送方法、系统、装置及可读存储介质 |
CN109905479A (zh) * | 2019-03-04 | 2019-06-18 | 腾讯科技(深圳)有限公司 | 文件传输方法和装置 |
CN110008037A (zh) * | 2019-02-28 | 2019-07-12 | 北京达佳互联信息技术有限公司 | 消息处理方法、装置及存储介质 |
CN110233706A (zh) * | 2019-06-13 | 2019-09-13 | 北京奇艺世纪科技有限公司 | 一种重复数据包检测方法及装置 |
CN110299974A (zh) * | 2018-03-23 | 2019-10-01 | 天地融科技股份有限公司 | 一种数据接收方法及装置 |
CN110474721A (zh) * | 2019-08-30 | 2019-11-19 | 视联动力信息技术股份有限公司 | 视频数据传输方法、装置及计算机可读存储介质 |
CN110602568A (zh) * | 2019-08-07 | 2019-12-20 | 武汉兴图新科电子股份有限公司 | 一种基于rtp的视频流传输丢包重传方法、设备及存储设备 |
CN110677221A (zh) * | 2018-07-02 | 2020-01-10 | 华为技术有限公司 | 重传控制方法、通信接口和电子设备 |
CN110768984A (zh) * | 2019-10-25 | 2020-02-07 | 中汇信息技术(上海)有限公司 | 一种数据传输的方法、装置及电子设备 |
CN111106902A (zh) * | 2018-10-26 | 2020-05-05 | 杭州海康威视系统技术有限公司 | 数据报文传输方法、装置、设备及计算机可读存储介质 |
CN111163362A (zh) * | 2019-12-30 | 2020-05-15 | 北京佳讯飞鸿电气股份有限公司 | 一种自适应重传等待时间的视频接收方法及系统 |
CN111181698A (zh) * | 2019-10-31 | 2020-05-19 | 腾讯云计算(北京)有限责任公司 | 数据处理方法、装置、设备及介质 |
CN111327402A (zh) * | 2018-12-17 | 2020-06-23 | 杭州海康威视数字技术股份有限公司 | 重传数据的方法、装置和系统 |
CN111385069A (zh) * | 2018-12-27 | 2020-07-07 | 广州市百果园信息技术有限公司 | 数据传输方法及计算机设备 |
CN111740939A (zh) * | 2019-08-07 | 2020-10-02 | 北京京东尚科信息技术有限公司 | 报文传输装置、设备、方法及存储介质 |
CN111786748A (zh) * | 2019-08-29 | 2020-10-16 | 北京京东尚科信息技术有限公司 | 数据重传方法和系统、网卡、装置、服务器和存储介质 |
CN112422253A (zh) * | 2020-10-27 | 2021-02-26 | 北京邮电大学 | 实时同频同时全双工的可靠传输方法及装置 |
CN112583529A (zh) * | 2020-12-18 | 2021-03-30 | 脸萌有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN112637162A (zh) * | 2020-12-14 | 2021-04-09 | 上海金仕达软件科技有限公司 | 一种udp数据包处理方法及装置 |
CN113242318A (zh) * | 2021-06-23 | 2021-08-10 | 维沃移动通信有限公司 | 数据传输方法和电子设备 |
CN113259989A (zh) * | 2021-06-02 | 2021-08-13 | 中移智行网络科技有限公司 | 数据重传方法、装置及电子设备 |
CN113489575A (zh) * | 2021-06-25 | 2021-10-08 | 阿波罗智联(北京)科技有限公司 | 一种数据传输方法、装置及电子设备 |
CN113905100A (zh) * | 2021-09-29 | 2022-01-07 | 济南浪潮数据技术有限公司 | 动态控制客户端重传请求的方法、系统、设备和存储介质 |
CN114025389A (zh) * | 2021-11-01 | 2022-02-08 | 网易(杭州)网络有限公司 | 数据传输方法、装置、计算机设备及存储介质 |
CN114173181A (zh) * | 2021-12-13 | 2022-03-11 | 天地伟业技术有限公司 | 一种视频传输方法及计算机可读存储介质 |
CN114257349A (zh) * | 2021-12-16 | 2022-03-29 | 北京数码视讯技术有限公司 | 数据处理系统和方法 |
CN114257836A (zh) * | 2021-12-17 | 2022-03-29 | 青岛海信宽带多媒体技术有限公司 | 一种机顶盒及丢包处理方法 |
CN114389760A (zh) * | 2021-12-21 | 2022-04-22 | 成都善思微科技有限公司 | 一种辐射成像探测器用高可靠性数据传输系统及方法 |
CN114520746A (zh) * | 2022-04-19 | 2022-05-20 | 北京天维信通科技有限公司 | 一种数据加密传输方法、系统、电子设备及存储介质 |
CN114584844A (zh) * | 2020-11-30 | 2022-06-03 | 青岛海信宽带多媒体技术有限公司 | 一种rtp包丢包重传方法、装置及播放终端 |
CN114584845A (zh) * | 2020-11-30 | 2022-06-03 | 青岛海信宽带多媒体技术有限公司 | 一种rtp包丢包重传方法、装置及播放终端 |
CN114978433A (zh) * | 2022-05-20 | 2022-08-30 | 百度时代网络技术(北京)有限公司 | 数据传输方法、装置、设备、存储介质及计算机程序产品 |
CN115001632A (zh) * | 2022-06-09 | 2022-09-02 | 咪咕文化科技有限公司 | 一种信息传输方法、装置、电子设备及可读存储介质 |
CN115021873A (zh) * | 2022-06-13 | 2022-09-06 | 浙江大华技术股份有限公司 | 一种数据重传的方法、装置及电子设备 |
CN115134434A (zh) * | 2022-06-17 | 2022-09-30 | 奇安信科技集团股份有限公司 | 会话连接的监控方法及装置 |
CN115174490A (zh) * | 2022-06-16 | 2022-10-11 | 浙江华睿科技股份有限公司 | 一种数据传输方法及网络应用终端 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102801508A (zh) * | 2012-07-26 | 2012-11-28 | 苏州科达科技有限公司 | 处理网络丢包的控制方法 |
CN103428531A (zh) * | 2012-05-25 | 2013-12-04 | 中兴通讯股份有限公司 | 一种多媒体数据的arq控制方法及系统 |
CN103533450A (zh) * | 2013-06-09 | 2014-01-22 | 浙江宇视科技有限公司 | 一种媒体流可靠传输和接收的方法以及装置 |
CN103763073A (zh) * | 2014-01-09 | 2014-04-30 | 深圳市迪威视讯股份有限公司 | 一种丢包重传的方法及终端 |
US20140185444A1 (en) * | 2012-12-27 | 2014-07-03 | Fujitsu Limited | Communication method, information processing apparatus, and recording medium |
-
2017
- 2017-07-19 CN CN201710593797.4A patent/CN107147481A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103428531A (zh) * | 2012-05-25 | 2013-12-04 | 中兴通讯股份有限公司 | 一种多媒体数据的arq控制方法及系统 |
CN102801508A (zh) * | 2012-07-26 | 2012-11-28 | 苏州科达科技有限公司 | 处理网络丢包的控制方法 |
US20140185444A1 (en) * | 2012-12-27 | 2014-07-03 | Fujitsu Limited | Communication method, information processing apparatus, and recording medium |
CN103533450A (zh) * | 2013-06-09 | 2014-01-22 | 浙江宇视科技有限公司 | 一种媒体流可靠传输和接收的方法以及装置 |
CN103763073A (zh) * | 2014-01-09 | 2014-04-30 | 深圳市迪威视讯股份有限公司 | 一种丢包重传的方法及终端 |
Cited By (71)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109756306A (zh) * | 2017-11-03 | 2019-05-14 | 华为技术有限公司 | 信息传输方法和通信设备 |
CN109756306B (zh) * | 2017-11-03 | 2023-10-03 | 华为技术有限公司 | 信息传输方法和通信设备 |
CN107800519A (zh) * | 2017-11-20 | 2018-03-13 | 烽火通信科技股份有限公司 | 一种数据包的重传方法和重传系统 |
CN107800519B (zh) * | 2017-11-20 | 2020-12-01 | 烽火通信科技股份有限公司 | 一种数据包的重传方法和重传系统 |
CN108234084A (zh) * | 2017-12-21 | 2018-06-29 | 深圳市欣博跃电子有限公司 | 一种数据的收发方法、装置及设备 |
CN108092745A (zh) * | 2017-12-22 | 2018-05-29 | 北京东土军悦科技有限公司 | 点对点设备的数据传输方法、装置、设备及存储介质 |
CN108344480A (zh) * | 2018-01-25 | 2018-07-31 | 北京农业信息技术研究中心 | 一种家禽自动称重方法及系统 |
CN108344480B (zh) * | 2018-01-25 | 2023-12-22 | 北京农业信息技术研究中心 | 一种家禽自动称重方法及系统 |
CN110299974A (zh) * | 2018-03-23 | 2019-10-01 | 天地融科技股份有限公司 | 一种数据接收方法及装置 |
CN110677221B (zh) * | 2018-07-02 | 2022-06-14 | 华为技术有限公司 | 重传控制方法、通信接口和电子设备 |
CN110677221A (zh) * | 2018-07-02 | 2020-01-10 | 华为技术有限公司 | 重传控制方法、通信接口和电子设备 |
US11671210B2 (en) | 2018-07-02 | 2023-06-06 | Huawei Technologies Co., Ltd. | Retransmission control method, communications interface, and electronic device |
CN109064524A (zh) * | 2018-08-16 | 2018-12-21 | 上海联影医疗科技有限公司 | 一种数据传输方法、数据收集板、重建机及介质 |
CN109194452B (zh) * | 2018-09-04 | 2021-04-27 | 京信通信系统(中国)有限公司 | 数据重传方法、装置、存储介质及其网络设备 |
CN109194452A (zh) * | 2018-09-04 | 2019-01-11 | 京信通信系统(中国)有限公司 | 数据重传方法、装置、存储介质及其网络设备 |
CN111106902A (zh) * | 2018-10-26 | 2020-05-05 | 杭州海康威视系统技术有限公司 | 数据报文传输方法、装置、设备及计算机可读存储介质 |
CN109560901B (zh) * | 2018-11-14 | 2021-09-21 | 广州虎牙信息科技有限公司 | 一种数据重传方法、装置、终端设备及存储介质 |
CN109560901A (zh) * | 2018-11-14 | 2019-04-02 | 广州虎牙信息科技有限公司 | 一种数据重传方法、装置、终端设备及存储介质 |
CN111327402A (zh) * | 2018-12-17 | 2020-06-23 | 杭州海康威视数字技术股份有限公司 | 重传数据的方法、装置和系统 |
CN111327402B (zh) * | 2018-12-17 | 2021-12-31 | 杭州海康威视数字技术股份有限公司 | 重传数据的方法、装置和系统 |
CN111385069A (zh) * | 2018-12-27 | 2020-07-07 | 广州市百果园信息技术有限公司 | 数据传输方法及计算机设备 |
CN109787722B (zh) * | 2019-01-25 | 2021-07-30 | 北京数码视讯技术有限公司 | 数据传输方法、装置和服务器 |
CN109787722A (zh) * | 2019-01-25 | 2019-05-21 | 北京数码视讯技术有限公司 | 数据传输方法、装置和服务器 |
CN109831282B (zh) * | 2019-01-31 | 2022-03-08 | 郑州云海信息技术有限公司 | 数据包重传、重传发送方法、系统、装置及可读存储介质 |
CN109831282A (zh) * | 2019-01-31 | 2019-05-31 | 郑州云海信息技术有限公司 | 数据包重传、重传发送方法、系统、装置及可读存储介质 |
CN110008037A (zh) * | 2019-02-28 | 2019-07-12 | 北京达佳互联信息技术有限公司 | 消息处理方法、装置及存储介质 |
CN109905479A (zh) * | 2019-03-04 | 2019-06-18 | 腾讯科技(深圳)有限公司 | 文件传输方法和装置 |
CN110233706B (zh) * | 2019-06-13 | 2022-02-08 | 北京奇艺世纪科技有限公司 | 一种重复数据包检测方法及装置 |
CN110233706A (zh) * | 2019-06-13 | 2019-09-13 | 北京奇艺世纪科技有限公司 | 一种重复数据包检测方法及装置 |
CN110602568B (zh) * | 2019-08-07 | 2021-06-25 | 武汉兴图新科电子股份有限公司 | 一种基于rtp的视频流传输丢包重传方法、设备及存储设备 |
CN111740939A (zh) * | 2019-08-07 | 2020-10-02 | 北京京东尚科信息技术有限公司 | 报文传输装置、设备、方法及存储介质 |
CN111740939B (zh) * | 2019-08-07 | 2022-11-08 | 北京京东尚科信息技术有限公司 | 报文传输装置、设备、方法及存储介质 |
CN110602568A (zh) * | 2019-08-07 | 2019-12-20 | 武汉兴图新科电子股份有限公司 | 一种基于rtp的视频流传输丢包重传方法、设备及存储设备 |
CN111786748A (zh) * | 2019-08-29 | 2020-10-16 | 北京京东尚科信息技术有限公司 | 数据重传方法和系统、网卡、装置、服务器和存储介质 |
CN110474721B (zh) * | 2019-08-30 | 2022-04-12 | 视联动力信息技术股份有限公司 | 视频数据传输方法、装置及计算机可读存储介质 |
CN110474721A (zh) * | 2019-08-30 | 2019-11-19 | 视联动力信息技术股份有限公司 | 视频数据传输方法、装置及计算机可读存储介质 |
CN110768984A (zh) * | 2019-10-25 | 2020-02-07 | 中汇信息技术(上海)有限公司 | 一种数据传输的方法、装置及电子设备 |
CN111181698A (zh) * | 2019-10-31 | 2020-05-19 | 腾讯云计算(北京)有限责任公司 | 数据处理方法、装置、设备及介质 |
CN111163362A (zh) * | 2019-12-30 | 2020-05-15 | 北京佳讯飞鸿电气股份有限公司 | 一种自适应重传等待时间的视频接收方法及系统 |
CN111163362B (zh) * | 2019-12-30 | 2021-12-24 | 北京佳讯飞鸿电气股份有限公司 | 一种自适应重传等待时间的视频接收方法及系统 |
CN112422253A (zh) * | 2020-10-27 | 2021-02-26 | 北京邮电大学 | 实时同频同时全双工的可靠传输方法及装置 |
CN112422253B (zh) * | 2020-10-27 | 2022-01-28 | 北京邮电大学 | 实时同频同时全双工的可靠传输方法及装置 |
CN114584845A (zh) * | 2020-11-30 | 2022-06-03 | 青岛海信宽带多媒体技术有限公司 | 一种rtp包丢包重传方法、装置及播放终端 |
CN114584845B (zh) * | 2020-11-30 | 2023-10-20 | 青岛海信宽带多媒体技术有限公司 | 一种rtp包丢包重传方法、装置及智能机顶盒 |
CN114584844B (zh) * | 2020-11-30 | 2023-09-22 | 青岛海信宽带多媒体技术有限公司 | 一种rtp包丢包重传方法、装置及智能机顶盒 |
CN114584844A (zh) * | 2020-11-30 | 2022-06-03 | 青岛海信宽带多媒体技术有限公司 | 一种rtp包丢包重传方法、装置及播放终端 |
CN112637162A (zh) * | 2020-12-14 | 2021-04-09 | 上海金仕达软件科技有限公司 | 一种udp数据包处理方法及装置 |
CN112583529A (zh) * | 2020-12-18 | 2021-03-30 | 脸萌有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN112583529B (zh) * | 2020-12-18 | 2023-10-31 | 脸萌有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN113259989A (zh) * | 2021-06-02 | 2021-08-13 | 中移智行网络科技有限公司 | 数据重传方法、装置及电子设备 |
CN113242318A (zh) * | 2021-06-23 | 2021-08-10 | 维沃移动通信有限公司 | 数据传输方法和电子设备 |
CN113242318B (zh) * | 2021-06-23 | 2023-01-20 | 维沃移动通信有限公司 | 数据传输方法和电子设备 |
CN113489575A (zh) * | 2021-06-25 | 2021-10-08 | 阿波罗智联(北京)科技有限公司 | 一种数据传输方法、装置及电子设备 |
CN113905100A (zh) * | 2021-09-29 | 2022-01-07 | 济南浪潮数据技术有限公司 | 动态控制客户端重传请求的方法、系统、设备和存储介质 |
CN114025389A (zh) * | 2021-11-01 | 2022-02-08 | 网易(杭州)网络有限公司 | 数据传输方法、装置、计算机设备及存储介质 |
CN114025389B (zh) * | 2021-11-01 | 2024-04-30 | 网易(杭州)网络有限公司 | 数据传输方法、装置、计算机设备及存储介质 |
CN114173181A (zh) * | 2021-12-13 | 2022-03-11 | 天地伟业技术有限公司 | 一种视频传输方法及计算机可读存储介质 |
CN114257349A (zh) * | 2021-12-16 | 2022-03-29 | 北京数码视讯技术有限公司 | 数据处理系统和方法 |
CN114257836B (zh) * | 2021-12-17 | 2024-05-28 | 青岛海信宽带多媒体技术有限公司 | 一种机顶盒及丢包处理方法 |
CN114257836A (zh) * | 2021-12-17 | 2022-03-29 | 青岛海信宽带多媒体技术有限公司 | 一种机顶盒及丢包处理方法 |
CN114389760B (zh) * | 2021-12-21 | 2024-03-08 | 成都善思微科技有限公司 | 一种辐射成像探测器用高可靠性数据传输系统及方法 |
CN114389760A (zh) * | 2021-12-21 | 2022-04-22 | 成都善思微科技有限公司 | 一种辐射成像探测器用高可靠性数据传输系统及方法 |
CN114520746B (zh) * | 2022-04-19 | 2022-08-05 | 北京天维信通科技有限公司 | 一种数据加密传输方法、系统、电子设备及存储介质 |
CN114520746A (zh) * | 2022-04-19 | 2022-05-20 | 北京天维信通科技有限公司 | 一种数据加密传输方法、系统、电子设备及存储介质 |
CN114978433A (zh) * | 2022-05-20 | 2022-08-30 | 百度时代网络技术(北京)有限公司 | 数据传输方法、装置、设备、存储介质及计算机程序产品 |
CN114978433B (zh) * | 2022-05-20 | 2023-12-05 | 百度时代网络技术(北京)有限公司 | 数据传输方法、装置、设备、存储介质及计算机程序产品 |
CN115001632A (zh) * | 2022-06-09 | 2022-09-02 | 咪咕文化科技有限公司 | 一种信息传输方法、装置、电子设备及可读存储介质 |
CN115021873A (zh) * | 2022-06-13 | 2022-09-06 | 浙江大华技术股份有限公司 | 一种数据重传的方法、装置及电子设备 |
CN115174490B (zh) * | 2022-06-16 | 2023-10-17 | 浙江华睿科技股份有限公司 | 一种数据传输方法及网络应用终端 |
CN115174490A (zh) * | 2022-06-16 | 2022-10-11 | 浙江华睿科技股份有限公司 | 一种数据传输方法及网络应用终端 |
CN115134434A (zh) * | 2022-06-17 | 2022-09-30 | 奇安信科技集团股份有限公司 | 会话连接的监控方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107147481A (zh) | 丢包重传方法、装置及电子设备 | |
EP3707882B1 (en) | Multi-path rdma transmission | |
US6393023B1 (en) | System and method for acknowledging receipt of messages within a packet based communication network | |
JP4283589B2 (ja) | 通信装置、通信制御方法及びプログラム | |
US9350663B2 (en) | Enhanced large data transmissions and catastrophic congestion avoidance over TCP/IP networks | |
US7233572B2 (en) | Method and apparatus for transmitting packet by using indirect acknowledgement timer in wired/wireless integrated network | |
US7397800B2 (en) | Method and system for data placement of out-of-order (OOO) TCP segments | |
CN111786748B (zh) | 数据重传方法和系统、网卡、装置、服务器和存储介质 | |
CN104025525B (zh) | 用于发送分组的方法和设备以及交换机装置 | |
US20090268747A1 (en) | Communication apparatus | |
US20130250767A1 (en) | Method and Device for Data Transmission | |
US8259728B2 (en) | Method and system for a fast drop recovery for a TCP connection | |
US8681618B2 (en) | Packet retransmission control system, method and program | |
CN102664718A (zh) | 无线侧tcp数据重传的方法和设备 | |
US20050232298A1 (en) | Early direct memory access in network communications | |
JP2004364217A (ja) | パケット通信装置 | |
JP2019106697A (ja) | 相互接続ネットワークでのメッセージ再送遅延を動的に管理するための方法及びデバイス | |
CN114584560A (zh) | 一种分片帧重组方法及装置 | |
US7773620B2 (en) | Method, system, and program for overrun identification | |
EP1708404A1 (en) | Method and apparatus for error recovery performed at the access node of a core network | |
CN111404872A (zh) | 一种报文处理方法、装置及系统 | |
US7817572B2 (en) | Communications apparatus and communication method | |
JP4244159B2 (ja) | 受信装置、通信システムおよびプログラム | |
EP2846469A1 (en) | Rateless encoding | |
JP2011035608A (ja) | エッジノード、ウィンドウサイズ制御方法およびプログラム |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170908 |