CN113259989A - 数据重传方法、装置及电子设备 - Google Patents
数据重传方法、装置及电子设备 Download PDFInfo
- Publication number
- CN113259989A CN113259989A CN202110612753.8A CN202110612753A CN113259989A CN 113259989 A CN113259989 A CN 113259989A CN 202110612753 A CN202110612753 A CN 202110612753A CN 113259989 A CN113259989 A CN 113259989A
- Authority
- CN
- China
- Prior art keywords
- sequence number
- retransmission
- data
- retransmission queue
- packet loss
- 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
- 238000000034 method Methods 0.000 title claims abstract 10
- 238000004590 computer program Methods 0.000 claims 4
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/04—Error control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/06—Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Communication Control (AREA)
Abstract
本发明提供一种数据重传方法、装置及电子设备。该方法包括:应用于第一电子设备,在接收到第二电子设备反馈的选择性重传信息的情况下,获取第一重传队列,所述选择性重传信息包括起始丢失的数据包的第一序号和丢包位图,所述丢包位图用于表征所述起始丢失的数据包之后数据包的丢包情况;基于所述第一序号和所述丢包位图对所述第一重传队列进行编辑,得到第二重传队列,所述第二重传队列包括所述第一序号和所述丢包情况表征丢失数据包的第二序号;将目标数据发送给所述第二电子设备,所述目标数据包括所述第二重传队列中序号对应的数据包。本发明实施例能够提高数据重传的效率。
Description
技术领域
本发明实施例涉及互联网技术领域,尤其涉及一种数据重传方法、装置及电子设备。
背景技术
目前,由于网络抖动或网络基站切换等原因导致的数据中断缺失的现象十分普遍,因此,在数据传输过程中,通常需要对丢失的数据包进行数据重传以保证数据的完整性。
相关技术中,通常是将起始丢失的数据包之后的数据包进行重传,这样会存在选择性重传的数据包数量多,而导致重传效率比较低的问题。
发明内容
本发明实施例提供一种数据重传方法、装置及电子设备,以解决现有技术中数据重传效率比较低的问题。
第一方面,本发明实施例提供一种数据重传方法,所述方法应用于第一电子设备,所述方法包括:
在接收到第二电子设备反馈的选择性重传信息的情况下,获取第一重传队列,所述选择性重传信息包括起始丢失的数据包的第一序号和丢包位图,所述丢包位图用于表征所述起始丢失的数据包之后数据包的丢包情况;
基于所述第一序号和所述丢包位图对所述第一重传队列进行编辑,得到第二重传队列,所述第二重传队列包括所述第一序号和所述丢包情况表征丢失数据包的第二序号;
将目标数据发送给所述第二电子设备,所述目标数据包括所述第二重传队列中序号对应的数据包。
第二方面,本发明实施例提供一种数据重传装置,所述装置应用于第一电子设备,所述装置包括:
第一获取模块,用于在接收到第二电子设备反馈的选择性重传信息的情况下,获取第一重传队列,所述选择性重传信息包括起始丢失的数据包的第一序号和丢包位图,所述丢包位图用于表征所述起始丢失的数据包之后数据包的丢包情况;
编辑模块,用于基于所述第一序号和所述丢包位图对所述第一重传队列进行编辑,得到第二重传队列,所述第二重传队列包括所述第一序号和所述丢包情况表征丢失数据包的第二序号;
发送模块,用于将目标数据发送给所述第二电子设备,所述目标数据包括所述第二重传队列中序号对应的数据包。
第三方面,本发明实施例提供一种电子设备,包括处理器,存储器,存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述数据重传方法的步骤。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述数据重传方法的步骤。
本发明实施例中,通过在接收到第二电子设备反馈的选择性重传信息的情况下,获取第一重传队列,所述选择性重传信息包括起始丢失的数据包的第一序号和丢包位图,所述丢包位图用于表征所述起始丢失的数据包之后数据包的丢包情况;基于所述第一序号和所述丢包位图对第一重传队列进行编辑,得到第二重传队列,所述第二重传队列包括所述第一序号和所述丢包情况表征丢失数据包的第二序号;将目标数据发送给所述第二电子设备,所述目标数据包括所述第二重传队列中序号对应的数据包。如此,通过编辑第一重传队列,使编辑得到的第二重传队列中包括所述第一序号和所述丢包位图中丢包情况表征丢失的数据包的第二序号,从而可以大大减少选择性重传的数据包数量,进而可以提高数据重传的效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获取其他的附图。
图1是本发明实施例提供的数据重传方法的流程示意图;
图2是本发明实施例提供的数据重传装置的结构示意图;
图3是本发明实施例提供的电子设备的结构示意图。
具体实施方式
在互联网时代,数据及信息的互通是为关键的一部分内容,在目前网络建设的发展过程中,网络的健壮性逐渐增强,然而,在车载或者移动过程中涉及到网络基站的切换等问题的发生,由于网络抖动或切换导致的数据中断缺失的现象还是十分的普遍。因此,在数据传输的过程中,需要对丢包的数据进行数据重传以保证数据的完整性。
对于数据重传,通常有两个关键的因素,一个是指定性重传,即重传要做到精准,以保证所有的重传都是有效的重传,这样才能保证传输数据中都是有效数据。另一个是如何进行数据重传,重传需要根据对接收端的丢包反馈进行重传,重传的数据也通过用户的网络进行传输,因此,如何进行数据重传直接决定重传的效率和重传交互中带宽的占耗。
另外,在点对点(peer-to-peer,P2P)传输中,很多网络地址转化协议(NetworkAddress Translation,NAT)后的终端无法直接建立传输控制协议(Transmission ControlProtocol,TCP)连接,因此,通常很多数据传输方案采用用户数据报协议(User DatagramProtocol,UDP)打洞。然而,该方案的选择性重传存在数据包大,重传效率低的问题。
基于此,本发明实施例提出了一种新的数据重传方案,以解决现有技术中数据重传效率比较低的问题。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获取的所有其他实施例,都属于本发明保护的范围。
下面首先对本发明实施例提供的数据重传方法进行说明。
需要说明的是,本发明实施例提供的数据重传方法涉及互联网技术领域,其可以广泛应用于基于传输协议如UDP进行数据传输的场景中。该方法可以由本发明实施例的数据重传装置执行。而数据重传装置可以配置在任意第一电子设备中,所述第一电子设备用于进行数据发送,以执行数据重传方法,该第一电子设备可以服务器,也可以为终端,这里不做具体限定。
参见图1,图中示出了本发明实施例提供的数据重传方法的流程示意图,所述方法应用于第一电子设备中。如图1所示,该方法可以包括如下步骤:
步骤101,在接收到第二电子设备反馈的选择性重传信息的情况下,获取第一重传队列,所述选择性重传信息包括起始丢失的数据包的第一序号和丢包位图,所述丢包位图用于表征所述起始丢失的数据包之后数据包的丢包情况。
本实施例中,第一电子设备为数据发送端,其可以基于UDP将需要传输的数据发送给第二电子设备,第二电子设备为数据接收端,其可以接收第一电子设备发送的数据,并校验接收的数据完整性,且在接收的数据不完整的情况下,反馈选择性重传信息给第一电子设备,基于反馈机制,确保数据传输的完整性。
在UDP数据传输场景中,数据通常为无序到达,即无法保证数据包一定按照顺序有序到达,因此,UDP中的数据包中通常包括该包的序号,以通过该序号来表征数据包在传输数据中的位置。
第二电子设备可以接收第一电子设备发送的数据,并将预设时间内接收的数据包进行重新拼装,以确定传输数据中是否存在丢包,在确定存在丢包的情况下,生成选择性重传信息,并反馈给第一电子设备。
为了保证信息内容完整的前提下,可以最小的传输选择性重传sack的数据包即选择性重传信息,在sack信息的设计中,可以包含两个属性,一个是起始丢失的数据包的第一序号,该值的含义可以是在第一序号之前的序号(即小于第一序号的序号)对应的所有数据包,该第二电子设备都已经完整的接收完成,并且在后续传输的数据包中该数据包为缺失的第一个数据包的序号。
比如,第一序号为100,表示前面99个数据包都已经接收完成,后续的数据包中100为第一个丢失的数据包的序号。
另外,起始丢失的数据包指的是第二电子设备本次反馈选择性重传信息和上次反馈选择性重传信息之间的时间段内所确定的第一个丢失的数据包。比如,第二电子设备上次反馈选择性重传信息的时间点为A1,第一电子设备基于该选择性重传信息进行数据传输,确定第一个丢失的数据包的序号为100,本次基于该序号100生成sack信息并反馈给第一电子设备,其时间点为A2,在A1和A2之间的时间段所确定的第一个丢失的数据包即为第二电子设备本次反馈选择性重传信息时起始丢失的数据包。
sack信息包含的另外一个属性可以是相对于第一序号的丢包位图,可以用map表示,其可以用于表征起始丢失的数据包之后数据包的丢包情况,具体可以用于表征起始丢失的数据包之后预设数量的数据包的丢包情况,该预设数量可以为32或64等。map可以为一个长整型long的数据,其可以为二进制的数据,也可以为十六进制的数据,亦或是其他进制的数据,这里不进行具体限定。
以下map以二进制的数据、且用于表征起始丢失的数据包之后的64个数据包的丢包情况为例进行说明。也就是说,在sack信息的设计时,map可以为长整型long且包含64个比特bit的二进制数据,每一位二进制均可以表征起始丢失的数据包之后的一个数据包的丢包情况,且可以用数值1表征数据包已经正常到达,未丢包,用数值0表征数据包未正常到达,已丢包。
map的第n位(n为小于或等于64的正整数)可以表示起始丢失的数据包之后的第n个数据包的丢包情况,比如,第一序号为100,n为32,则map的第n位可以表示第132个数据包的丢包情况。
另外,为了最小的传输sack信息,还可以对map进行优化,以压缩sack信息。比如,如果map中从第m位开始的后续位均为1,则可以将map中从第m位开始的后续位进行删除,map中缺失的位表征对应的数据包都已经正常到达,未丢包。
举个例子来说,生成的sack信息为100-map,具体为100-100110,即map为100110,该sack信息表示前99个数据包都正常收到,第100个数据包开始丢失,从第100个数据包之后的64个数据包的丢失情况为第101个数据包到达,第102个数据包丢失,第103个数据包丢失,第104个数据包到达,第105个数据包到达,第106个数据包丢失,第107个数据包至第164个数据包都正常到达,未丢失。
第二电子设备生成sack信息后,会将该sack信息发送给第一电子设备。相应的,第一电子设备在接收到第二电子设备反馈的选择性重传信息的情况下,会获取第一重传队列。
其中,第一重传队列中可以包括历史重传给第二电子设备的数据包的序号,其可以作为重传数据包的字典,即第一电子设备可以按照该第一重传队列中的序号,将相应的数据包重传给第二电子设备。历史重传指的是在本次接收到第二电子设备反馈的选择性重传信息之前第一电子设备进行的重传过程。
在一可选实施方式中,第一重传队列可以包括在上次接收到第二电子设备反馈的选择性重传信息的情况下,需要重传给第二电子设备的数据包的序号。
比如,第一电子设备将第1个数据包至第10个数据包发送给第二电子设备,第二电子设备发现数据包丢失时,如第5个数据包、第6个数据包和第7个数据包丢失,会反馈sack信息5-00,第一电子设备基于该sack信息进行数据传输,传输的数据包括第一重传队列中序号分别为5、6和7的数据包,以及还未传输给第二电子设备的第11个数据包至第20个数据包,总共13个数据包。
在该次数据传输过程中,第二电子设备发现第5个数据包到达,第6个数据包到达,第7个数据包丢失,第11个数据包丢失和第12个数据包丢失,此时,本次生成的sack信息为7-11100,将该sack信息发送给第一电子设备。第一电子设备在接收到本次反馈的sack信息的情况下,会获取上次进行数据重传用到的第一重传队列,该第一重传队列中包括5、6和7。
步骤102,基于所述第一序号和丢包位图对第一重传队列进行编辑,得到第二重传队列,所述第二重传队列包括所述第一序号和所述丢包情况表征丢失数据包的第二序号。
该步骤中,可以基于所述第一序号和丢包位图对所述第一重传队列进行编辑,得到本次进行数据重传的字典,即更新第一重传队列中的序号,使之里面包括的序号包括第一序号和所述丢包位图中丢包情况表征丢失的数据包的第二序号,最终得到更新后的第一重传队列即第二重传队列。
比如,选择性重传信息为45-1010,第一重传队列中包括33、38和45,基于第一序号和丢包位图编辑第一重传队列,得到第二重传队列,第二重传队列中包括45、47和49。
又比如,选择性重传信息为45-1010,第一重传队列中包括33、38、45、46、47、48、49、50和51,基于第一序号和丢包位图编辑第一重传队列,得到第二重传队列,第二重传队列中包括45、47和49。
步骤103,将目标数据发送给所述第二电子设备,所述目标数据包括所述第二重传队列中序号对应的数据包。
该步骤中,所述目标数据可以仅包括需要重传的数据,也可以同时包括重传的数据和未发送给第二电子设备且需要发送给第二电子设备的数据。
比如,第一电子设备将第1个数据包至第10个数据包发送给第二电子设备,第二电子设备发现数据包丢失时,如第5个数据包、第6个数据包和第7个数据包丢失,会反馈sack信息5-00,第一电子设备基于该sack信息进行数据传输,传输的数据包括第一重传队列中序号分别为5、6和7的数据包,以及还未传输给第二电子设备的第11个数据包至第20个数据包,总共13个数据包。
可以基于第二重传队列中的序号,从预先存储的数据中获取该序号对应的第一数据包,之后将包括第一数据包的目标数据发送给第二电子设备。相应的,第二电子设备会基于接收的数据包再次确定是否存在数据包丢失,在确定存在数据包丢失的情况下,再次生成选择性重传信息并反馈给第一电子设备,从而保证数据传输的完整性。
本实施例中,通过在接收到第二电子设备反馈的选择性重传信息的情况下,获取第一重传队列,所述选择性重传信息包括起始丢失的数据包的第一序号和丢包位图,所述丢包位图用于表征起始丢失的数据包之后预设数量的数据包的丢包情况;基于所述第一序号和丢包位图对第一重传队列进行编辑,得到第二重传队列,所述第二重传队列仅包括所述第一序号和所述丢包位图中丢包情况表征丢失的数据包的第二序号;将目标数据发送给所述第二电子设备,所述目标数据包括所述第二重传队列中序号对应的数据包。如此,通过编辑第一重传队列,使编辑得到的第二重传队列中仅包括所述第一序号和所述丢包位图中丢包情况表征丢失的数据包的第二序号,从而可以大大减少选择性重传的数据包数量,进而可以减少带宽的占用消耗,提高数据重传的效率,同时有效提升重传速度。
并且,通过对重传位图的设计,可以极大程度地加强重传的效率,提高重传数据的稳定性,使得重传数据的不完整率几乎可以降至为0,避免了由于网络抖动或基站切换导致的数据中断缺失的情况发生。
可选的,所述步骤102具体包括:
基于所述第一序号和所述丢包位图,按照预设规则对所述第一重传队列进行编辑,得到第二重传队列;
其中,所述预设规则包括:
在所述第一重传队列中存在第一目标序号的情况下,将所述第一重传队列中的所述第一目标序号进行删除,所述第一目标序号为小于所述第一序号的序号;
在所述第一重传队列中存在第二目标序号的情况下,将所述第一重传队列中的所述第二目标序号进行删除,所述第二目标序号为所述丢包情况表征未丢失数据包的序号;
在第一数量小于第二数量的情况下,在所述第一重传队列中插入第三目标序号,所述第一数量为所述选择性重传信息中表征丢失数据包的序号的数量,所述第二数量为所述选择性重传信息中表征丢失数据包的总数量,所述第三目标序号为所述第一序号和第二序号中,未包括在所述第一重传队列中的序号。
本实施方式中,基于所述第一序号和丢包位图,可以按照预设规则对所述第一重传队列进行编辑,使得得到的第二重传队列中包括第一序号和第二序号,以达到压缩数据包,提升重传速度的目的。
当第一电子设备接收到sack信息时,第一序号之前的序号对应的数据包表示都已经完整接收,如果第一重传队列中有小于第一序号的序号,则退出重传队列,按照sack信息重新组织第一重传队列。其中,退出重传队列指的是不将其作为数据重传的字典。
具体的,在第一重传队列中存在小于第一序号的序号即第一目标序号的情况下,将所述第一重传队列中的所述第一目标序号进行删除。
比如,sack信息为45-1010,第一重传队列中包括33、38和45,由于序号33和38小于第一序号,则将33和38删除,此时第一重传队列包括45。
当第一电子设备接收到sack信息时,校验map,进行序号去重,具体为:如果map中数值为1的数据包对应的序号在第一重传队列中,则将该序号从第一重传队列中去除,如果map中数值为0的数据包对应的序号不在第一重传队列中,则将该序号插入第一重传队列,如果map中数值为0的数据包对应的序号在第一重传队列中,则保留第一重传队列中该序号。
在所述第一重传队列中存在所述丢包位图中丢包情况表征到达的数据包的序号即第二目标序号的情况下,将所述第一重传队列中的所述第二目标序号进行删除。
比如,sack信息为45-1010,第一重传队列中包括33、38、45、46、47、48、49、50和51,由于序号46、48、50和51对应的数据包均已到达,则将第一重传队列中46、48、50和51删除,此时第一重传队列包括45、47和49。
另外,在第一数量小于第二数量的情况下,在所述第一重传队列中插入第三目标序号,所述第一数量为所述第一重传队列包括的所述选择性重传信息中表征丢失的数据包的序号的数量,所述第二数量为所述选择性重传信息中表征丢失的数据包的总数量,所述第三目标序号为所述第一序号和第二序号中,未包括在所述第一重传队列中的序号。
比如,sack信息为45-1010,第一重传队列中包括33、38和45,所述第一重传队列包括的所述选择性重传信息中表征丢失的数据包的序号为45,即第一数量为1,而所述选择性重传信息中表征丢失的数据包为第45个数据包、第47个数据包和第49个数据包,第二数量为3,第一数量小于第二数量,此时可以插入第三目标序号,所述第三目标序号为所述第一序号和第二序号中,未包括在所述第一重传队列中的序号,即序号47和49。最终,删除第一重传队列中小于第一序号的序号以及插入所述第一序号和第二序号中,未包括在所述第一重传队列中的序号,得到的第二重传队列仅包括序号45、47和49。
又比如,sack信息为45-1010,第一重传队列中包括33、38、45、46、47、48、49、50和51,第一数量为3,第二数量为3,则第一重传队列中不包括第三目标序号,删除第一目标序号和第二目标序号之后,则可以得到第二重传队列,第二重传队列仅包括序号45、47和49。
本实施方式中,基于第一序号和丢包位图,并通过删除和插入操作编辑第一重传队列中无需重传的数据包的序号,使得到的第二重传队列中仅包括第一序号和第二序号,如此,基于第二重传队列进行数据重传可以压缩重传的数据包,从而可以达到高效重传的效果。
可选的,所述预设规则还包括:
在所述第一重传队列中存在第四目标序号的情况下,将所述第一重传队列中的所述第四目标序号删除,所述第四目标序号为大于第三序号的序号,所述第三序号为预设数量加上所述第一序号得到的序号,或者为在接收到所述选择性重传信息时已发送给所述第二电子设备的数据包的序号中最大的一个序号;
其中,所述预设数量为所述丢包位图中表征丢包情况的数据包的数量。
在一可选实施方式中,第一重传队列中可能包括未发送给第二电子设备的数据包的序号,若在进行数据传输时,目标数据同时包括重传的数据和未发送给第二电子设备的数据,则会出现重复发送的情况发生。
比如,第一电子设备将第1个数据包至第10个数据包发送给第二电子设备,第二电子设备发现数据包丢失时,如第5个数据包、第6个数据包和第7个数据包丢失,会反馈sack信息5-00,第一电子设备基于该sack信息进行数据传输,若第一重传队列中除了包括序号5、6和7之外,还包括序号11,则重传的数据包括序号分别为5、6、7和11的数据包。另外,第一电子设备同时会发送还未传输给第二电子设备的第11个数据包至第20个数据包。这样,第一电子设备会重复发送第11个数据包。
在该种场景下,在所述第一重传队列中存在大于接收到所述选择性重传信息时已发送给所述第二电子设备的数据包的序号中最大的一个序号即第四目标序号的情况下,将所述第一重传队列中的所述第四目标序号删除。即将第一重传队列中大于10的序号11删除。这样,避免重复发送数据包的情况发生,进一步减少带宽的占用消耗,提高数据重传的效率。
在另一可选实施方式中,第一重传队列可能包括大于第三序号的序号,所述第三序号为所述预设数量加上所述第一序号得到的序号。比如,sack信息为100-100110,预设数量为64,则第三序号为第一序号100加上64得到164,若第一重传队列中包括165,由于不清楚第165个数据包是否到达,则可以将其删除,避免重复发送数据包的情况发生,从而进一步减少带宽的占用消耗,提高数据重传的效率。
可选的,所述步骤103之前,所述方法还包括:
获取所述第二重传队列中序号对应的第一数据包,以及在接收到所述选择性重传信息时待发送给所述第二电子设备的第二数据包;
基于所述第一数据包和所述第二数据包,生成所述目标数据。
本实施方式中,目标数据中同时发送重传的数据以及未发送给第二电子设备的数据,这样可以减少第一电子设备和第二电子设备数据传输时交互的次数。
下面对本发明实施例提供的数据重传装置进行说明。
参见图2,图中示出了本发明实施例提供的数据重传装置的结构示意图。
如图2所示,数据重传装置200包括:
第一获取模块201,用于在接收到第二电子设备反馈的选择性重传信息的情况下,获取第一重传队列,所述选择性重传信息包括起始丢失的数据包的第一序号和丢包位图,所述丢包位图用于表征所述起始丢失的数据包之后数据包的丢包情况;
编辑模块202,用于基于所述第一序号和所述丢包位图对所述第一重传队列进行编辑,得到第二重传队列,所述第二重传队列包括所述第一序号和所述丢包情况表征丢失数据包的第二序号;
发送模块203,用于将目标数据发送给所述第二电子设备,所述目标数据包括所述第二重传队列中序号对应的数据包。
可选的,所述编辑模块202,具体用于基于所述第一序号和所述丢包位图,按照预设规则对所述第一重传队列进行编辑,得到第二重传队列;
其中,所述预设规则包括:
在所述第一重传队列中存在第一目标序号的情况下,将所述第一重传队列中的所述第一目标序号进行删除,所述第一目标序号为小于所述第一序号的序号;
在所述第一重传队列中存在第二目标序号的情况下,将所述第一重传队列中的所述第二目标序号进行删除,所述第二目标序号为所述丢包情况表征未丢失数据包的序号;
在第一数量小于第二数量的情况下,在所述第一重传队列中插入第三目标序号,所述第一数量为所述选择性重传信息中表征丢失数据包的序号的数量,所述第二数量为所述选择性重传信息中表征丢失数据包的总数量,所述第三目标序号为所述第一序号和第二序号中,未包括在所述第一重传队列中的序号。
可选的,所述预设规则还包括:
在所述第一重传队列中存在第四目标序号的情况下,将所述第一重传队列中的所述第四目标序号删除,所述第四目标序号为大于第三序号的序号,所述第三序号为预设数量加上所述第一序号得到的序号,或者为在接收到所述选择性重传信息时已发送给所述第二电子设备的数据包的序号中最大的一个序号;
其中,所述预设数量为所述丢包位图中表征丢包情况的数据包的数量。
可选的,所述装置还包括:
第二获取模块,用于获取所述第二重传队列中序号对应的第一数据包,以及在接收到所述选择性重传信息时待发送给所述第二电子设备的第二数据包;
生成模块,用于基于所述第一数据包和所述第二数据包,生成所述目标数据。
数据重传装置200能够实现上述数据重传方法实施例中实现的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
下面对本发明实施例提供的电子设备进行说明。
参见图3,图中示出了本发明实施例提供的电子设备的结构示意图,该电子设备为第一电子设备。如图3所示,电子设备300包括:处理器301、存储器302、用户接口303和总线接口304。
处理器301,用于读取存储器302中的程序,执行下列过程:
在接收到第二电子设备反馈的选择性重传信息的情况下,获取第一重传队列,所述选择性重传信息包括起始丢失的数据包的第一序号和丢包位图,所述丢包位图用于表征所述起始丢失的数据包之后数据包的丢包情况;
基于所述第一序号和所述丢包位图对所述第一重传队列进行编辑,得到第二重传队列,所述第二重传队列包括所述第一序号和所述丢包情况表征丢失数据包的第二序号;
将目标数据发送给所述第二电子设备,所述目标数据包括所述第二重传队列中序号对应的数据包。
在图3中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器301代表的一个或多个处理器和存储器302代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口304提供接口。针对不同的用户设备,用户接口303还可以是能够外接内接需要设备的接口,连接的设备包括但不限于小键盘、显示器、扬声器、麦克风、操纵杆等。
处理器301负责管理总线架构和通常的处理,存储器302可以存储处理器301在执行操作时所使用的数据。
可选的,处理器301,还用于:
基于所述第一序号和所述丢包位图,按照预设规则对所述第一重传队列进行编辑,得到第二重传队列;
其中,所述预设规则包括:
在所述第一重传队列中存在第一目标序号的情况下,将所述第一重传队列中的所述第一目标序号进行删除,所述第一目标序号为小于所述第一序号的序号;
在所述第一重传队列中存在第二目标序号的情况下,将所述第一重传队列中的所述第二目标序号进行删除,所述第二目标序号为所述丢包情况表征未丢失数据包的序号;
在第一数量小于第二数量的情况下,在所述第一重传队列中插入第三目标序号,所述第一数量为所述选择性重传信息中表征丢失数据包的序号的数量,所述第二数量为所述选择性重传信息中表征丢失数据包的总数量,所述第三目标序号为所述第一序号和第二序号中,未包括在所述第一重传队列中的序号。
可选的,所述预设规则还包括:
在所述第一重传队列中存在第四目标序号的情况下,将所述第一重传队列中的所述第四目标序号删除,所述第四目标序号为大于第三序号的序号,所述第三序号为预设数量加上所述第一序号得到的序号,或者为在接收到所述选择性重传信息时已发送给所述第二电子设备的数据包的序号中最大的一个序号;
其中,所述预设数量为所述丢包位图中表征丢包情况的数据包的数量。
可选的,处理器301,还用于:
获取所述第二重传队列中序号对应的第一数据包,以及在接收到所述选择性重传信息时待发送给所述第二电子设备的第二数据包;
基于所述第一数据包和所述第二数据包,生成所述目标数据。
优选的,本发明实施例还提供一种电子设备,包括处理器301,存储器302,存储在存储器302上并可在所述处理器301上运行的计算机程序,该计算机程序被处理器301执行时实现上述数据重传方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述数据重传方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种数据重传方法,其特征在于,所述方法应用于第一电子设备,所述方法包括:
在接收到第二电子设备反馈的选择性重传信息的情况下,获取第一重传队列,所述选择性重传信息包括起始丢失的数据包的第一序号和丢包位图,所述丢包位图用于表征所述起始丢失的数据包之后数据包的丢包情况;
基于所述第一序号和所述丢包位图对所述第一重传队列进行编辑,得到第二重传队列,所述第二重传队列包括所述第一序号和所述丢包情况表征丢失数据包的第二序号;
将目标数据发送给所述第二电子设备,所述目标数据包括所述第二重传队列中序号对应的数据包。
2.根据权利要求1所述的方法,其特征在于,所述基于所述第一序号和所述丢包位图对第一重传队列进行编辑,得到第二重传队列,包括:
基于所述第一序号和所述丢包位图,按照预设规则对所述第一重传队列进行编辑,得到第二重传队列;
其中,所述预设规则包括:
在所述第一重传队列中存在第一目标序号的情况下,将所述第一重传队列中的所述第一目标序号进行删除,所述第一目标序号为小于所述第一序号的序号;
在所述第一重传队列中存在第二目标序号的情况下,将所述第一重传队列中的所述第二目标序号进行删除,所述第二目标序号为所述丢包情况表征未丢失数据包的序号;
在第一数量小于第二数量的情况下,在所述第一重传队列中插入第三目标序号,所述第一数量为所述选择性重传信息中表征丢失数据包的序号的数量,所述第二数量为所述选择性重传信息中表征丢失数据包的总数量,所述第三目标序号为所述第一序号和第二序号中,未包括在所述第一重传队列中的序号。
3.根据权利要求2所述的方法,其特征在于,所述预设规则还包括:
在所述第一重传队列中存在第四目标序号的情况下,将所述第一重传队列中的所述第四目标序号删除,所述第四目标序号为大于第三序号的序号,所述第三序号为预设数量加上所述第一序号得到的序号,或者为在接收到所述选择性重传信息时已发送给所述第二电子设备的数据包的序号中最大的一个序号;
其中,所述预设数量为所述丢包位图中表征丢包情况的数据包的数量。
4.根据权利要求1所述的方法,其特征在于,所述将目标数据发送给所述第二电子设备之前,所述方法还包括:
获取所述第二重传队列中序号对应的第一数据包,以及在接收到所述选择性重传信息时待发送给所述第二电子设备的第二数据包;
基于所述第一数据包和所述第二数据包,生成所述目标数据。
5.一种数据重传装置,其特征在于,所述装置应用于第一电子设备,所述装置包括:
第一获取模块,用于在接收到第二电子设备反馈的选择性重传信息的情况下,获取第一重传队列,所述选择性重传信息包括起始丢失的数据包的第一序号和丢包位图,所述丢包位图用于表征所述起始丢失的数据包之后数据包的丢包情况;
编辑模块,用于基于所述第一序号和所述丢包位图对所述第一重传队列进行编辑,得到第二重传队列,所述第二重传队列包括所述第一序号和所述丢包情况表征丢失数据包的第二序号;
发送模块,用于将目标数据发送给所述第二电子设备,所述目标数据包括所述第二重传队列中序号对应的数据包。
6.根据权利要求5所述的装置,其特征在于,所述编辑模块,具体用于基于所述第一序号和所述丢包位图,按照预设规则对所述第一重传队列进行编辑,得到第二重传队列;
其中,所述预设规则包括:
在所述第一重传队列中存在第一目标序号的情况下,将所述第一重传队列中的所述第一目标序号进行删除,所述第一目标序号为小于所述第一序号的序号;
在所述第一重传队列中存在第二目标序号的情况下,将所述第一重传队列中的所述第二目标序号进行删除,所述第二目标序号为所述丢包情况表征未丢失数据包的序号;
在第一数量小于第二数量的情况下,在所述第一重传队列中插入第三目标序号,所述第一数量为所述选择性重传信息中表征丢失数据包的序号的数量,所述第二数量为所述选择性重传信息中表征丢失数据包的总数量,所述第三目标序号为所述第一序号和第二序号中,未包括在所述第一重传队列中的序号。
7.根据权利要求6所述的装置,其特征在于,所述预设规则还包括:
在所述第一重传队列中存在第四目标序号的情况下,将所述第一重传队列中的所述第四目标序号删除,所述第四目标序号为大于第三序号的序号,所述第三序号为预设数量加上所述第一序号得到的序号,或者为在接收到所述选择性重传信息时已发送给所述第二电子设备的数据包的序号中最大的一个序号;
其中,所述预设数量为所述丢包位图中表征丢包情况的数据包的数量。
8.根据权利要求5所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于获取所述第二重传队列中序号对应的第一数据包,以及在接收到所述选择性重传信息时待发送给所述第二电子设备的第二数据包;
生成模块,用于基于所述第一数据包和所述第二数据包,生成所述目标数据。
9.一种电子设备,其特征在于,所述电子设备包括:包括处理器,存储器,存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至4中任一项所述的数据重传方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4中任一项所述的数据重传方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110612753.8A CN113259989B (zh) | 2021-06-02 | 2021-06-02 | 数据重传方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110612753.8A CN113259989B (zh) | 2021-06-02 | 2021-06-02 | 数据重传方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113259989A true CN113259989A (zh) | 2021-08-13 |
CN113259989B CN113259989B (zh) | 2022-03-15 |
Family
ID=77185943
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110612753.8A Active CN113259989B (zh) | 2021-06-02 | 2021-06-02 | 数据重传方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113259989B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115118392A (zh) * | 2022-06-10 | 2022-09-27 | 网宿科技股份有限公司 | D-sack的确定方法、处理器与通信系统 |
WO2024087206A1 (zh) * | 2022-10-28 | 2024-05-02 | 深圳市锐明技术股份有限公司 | 数据处理系统及其数据上传方法和数据处理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100031108A1 (en) * | 2008-08-04 | 2010-02-04 | Broadcom Corporation | Seamless change of retransmission and rescheduling queues in a communication system |
CN104518853A (zh) * | 2013-09-27 | 2015-04-15 | 北京新媒传信科技有限公司 | 一种数据重传的方法、接收端及系统 |
CN107147481A (zh) * | 2017-07-19 | 2017-09-08 | 北京数码视讯科技股份有限公司 | 丢包重传方法、装置及电子设备 |
CN111953454A (zh) * | 2020-07-16 | 2020-11-17 | 西安万像电子科技有限公司 | 丢包重传方法、设备及存储介质 |
-
2021
- 2021-06-02 CN CN202110612753.8A patent/CN113259989B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100031108A1 (en) * | 2008-08-04 | 2010-02-04 | Broadcom Corporation | Seamless change of retransmission and rescheduling queues in a communication system |
CN104518853A (zh) * | 2013-09-27 | 2015-04-15 | 北京新媒传信科技有限公司 | 一种数据重传的方法、接收端及系统 |
CN107147481A (zh) * | 2017-07-19 | 2017-09-08 | 北京数码视讯科技股份有限公司 | 丢包重传方法、装置及电子设备 |
CN111953454A (zh) * | 2020-07-16 | 2020-11-17 | 西安万像电子科技有限公司 | 丢包重传方法、设备及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115118392A (zh) * | 2022-06-10 | 2022-09-27 | 网宿科技股份有限公司 | D-sack的确定方法、处理器与通信系统 |
CN115118392B (zh) * | 2022-06-10 | 2024-05-28 | 网宿科技股份有限公司 | D-sack的确定方法、处理器与通信系统 |
WO2024087206A1 (zh) * | 2022-10-28 | 2024-05-02 | 深圳市锐明技术股份有限公司 | 数据处理系统及其数据上传方法和数据处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113259989B (zh) | 2022-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7029471B2 (ja) | アップリンクデータ解凍、圧縮方法および装置 | |
EP3468132B1 (en) | Method and device for transmitting speech data | |
US9742879B2 (en) | Hardware-based packet editor | |
US7912911B2 (en) | Method and system for increasing throughput rate by dynamically modifying connection parameters | |
CN113259989B (zh) | 数据重传方法、装置及电子设备 | |
EP2613497B1 (en) | Method of transporting data in a sub-segmented manner | |
CN104518853A (zh) | 一种数据重传的方法、接收端及系统 | |
CN111294664A (zh) | 音视频传输数据方法、电子设备及存储介质 | |
CN104980257B (zh) | 物联网通讯方法及装置 | |
CN114039703A (zh) | 数据传输方法、装置、设备和介质 | |
CN112994851B (zh) | 一种支持差异化可协商的并行数据通信方法及装置 | |
CN113259490B (zh) | 基于udp传输协议的多级节点网络数据传输方法 | |
CN111385068B (zh) | 数据传输方法、装置、电子设备及通信系统 | |
CN103731424B (zh) | 一种网络数据的传输方法、装置及系统 | |
CN109889922A (zh) | 流媒体数据的转发方法、装置、设备和存储介质 | |
CN112398754A (zh) | 数据传输方法、装置、介质、电子设备及网络接入设备 | |
CN112532359A (zh) | 接收端基于数据重传数据进行内容合并的方法及装置 | |
CN107733903B (zh) | 一种基于udp的数据传输确认方法和基站 | |
CN111818005A (zh) | 数据包处理方法、装置、电子设备及可读存储介质 | |
CN113411228B (zh) | 一种网络状况的确定方法及服务器 | |
WO2018171550A1 (zh) | 数据校验方法、数据发送方法、相关装置、系统及存储介质 | |
CN109587083B (zh) | 数据传输方法及相关装置 | |
CN105991348B (zh) | Tcp连接关闭方法及装置 | |
CN115836508A (zh) | 一种数据传输方法、数据传输装置及存储介质 | |
CN105389514B (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 |