CN108476097B - 数据重传方法和装置 - Google Patents
数据重传方法和装置 Download PDFInfo
- Publication number
- CN108476097B CN108476097B CN201680076291.XA CN201680076291A CN108476097B CN 108476097 B CN108476097 B CN 108476097B CN 201680076291 A CN201680076291 A CN 201680076291A CN 108476097 B CN108476097 B CN 108476097B
- Authority
- CN
- China
- Prior art keywords
- data packet
- sequence number
- sending
- sent
- receiving
- 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.)
- Expired - Fee Related
Links
Images
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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
Abstract
本发明实施例提供一种数据重传方法和装置,此方法包括:确定发送端第N次发送的数据包丢失,所述N为大于或等于1的整数;向所述发送端发送丢失消息,所述丢失消息用于指示未接收到所述第N次发送的数据包;接收发送端第N+1次发送的数据包,其中,所述第N+1次发送的数据包为所述发送端根据所述丢失消息发送的数据包。从而保证了数据传输的连续性,降低了数据传输延时,提高了传输带宽。
Description
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种数据重传方法和装置。
背景技术
在无人机领域,需要将天空端的相机图像实时传输到地面端,图像主要通过Wi-Fi网络进行传输。目前,数据传输基本上是基于传输控制协议(英文:Transmission ControlProtocol,简称:TCP)、或者类用户数据报协议(英文:User Datagram Protocol,简称:UDP)协议,通过滑动窗口和网络拥塞机制,实现了可靠的数据传输,具体地,发送端向接收端发送携带有包序号的数据包,当接收端发现序号不连续时,会向发送端发送否定应答消息(英文:Negative Acknowledgment,简称:NAK),发送端只要收到NAK,就会重传对应的包,若发送端未接收到该重传包的确认应答消息(英文:Acknowledgement,简称:ACK),则发送端会根据重传间隔连续重传对应的包,在连续重传的情况下,导致数据包传输的时延成倍的增加。而Wi-Fi网络是容易受到干扰,有可能出现丢包的现象,如果在上述重传的机制上出现多次重传,会导致图像传输延时,而且传输带宽下降。
发明内容
本发明实施例提供一种数据重传方法和装置,用于保证数据传输的连续性,降低数据传输延时,提高传输带宽。
第一方面,本发明实施例提供一种数据重传方法,包括:
确定发送端第N次发送的第一数据包丢失,所述N为大于或等于1的整数;
向所述发送端发送第一丢失消息,所述第一丢失消息用于指示未接收到所述第N次发送的第一数据包;
接收发送端第N+1次发送的第一数据包,其中,所述第N+1次发送的第一数据包为所述发送端根据所述第一丢失消息发送的第一数据包。
可选地,当N≥2时,确定发送端第N次发送的第一数据包丢失,包括:
接收所述发送端发送的第一发送指示,所述第一发送指示用于指示第N次发送的所述第一数据包已发送;
根据所述第一发送指示,确定所述第N次发送的所述第一数据包丢失。
可选地,所述第一发送指示包括第N次发送的数据包的第一序号,所述第一序号用于指示第N次发送的序号小于或等于所述第一序号的数据包已发送;
根据所述第一发送指示,确定所述第N次发送的所述第一数据包丢失,包括:在未接收到所述第一数据包时,根据所述第一序号,确定第N次发送的序号小于或等于所述第一序号的第一数据包丢失。
可选地,所述第一发送指示包括发送次数N和第一序号,所述第一序号和所述发送次数N用于指示第N次发送的序号小于或等于所述第一序号的数据包已发送;
根据所述第一发送指示,确定所述第N次发送的所述第一数据包丢失,包括:根据所述第一序号和所述发送次数N,确定第N次发送的序号小于或等于所述第一序号数据包丢失。
可选地,所述接收所述发送端发送的第一发送指示之前,还包括:
向所述发送端发送第二丢失消息,所述第二丢失消息用于指示未接收到所述第N-1次发送的第一数据包;
所述接收所述发送端发送的第一发送指示,包括:接收所述发送端发送的第一ping包,所述第一ping包中包括所述第一发送指示。
可选地,当N=1时,确定发送端第N次发送的第一数据包丢失,包括:
根据接收的所述发送端发送的数据包的序号不连续,确定第一次发送的所述第一数据包丢失,所述第一数据包的序号为缺失的序号。
可选地,所述向发送端发送第一丢失消息,包括:向所述发送端发送否定应答消息,所述否定应答消息包括所述第一数据包的序号的前一个序号,所述第一数据包的序号的前一个序号用于所述发送端确定第1次发送的所述第一数据包丢失。
可选地,当N=1时,确定发送端第N次发送的第一数据包丢失,包括:
当在预设时间内未接收到数据包时,向所述发送端发送第三丢失消息,所述第三丢失消息用于指示未接收到数据包;
接收所述发送端发送的第二发送指示,所述第二发送指示用于指示所述发送端已发送第1次发送的所述第一数据包;
根据所述第二发送指示确定所述第1次发送的第一数据包丢失。
可选地,接收所述发送端发送的第二发送指示,包括:接收所述发送端发送的第二ping包,所述第二ping包中包括当前滑动窗口的左端序号和右端序号;
所述根据所述第二发送指示确定所述第1次发送的第一数据包丢失,包括:根据所述当前滑动窗口的左端序号和右端序号,确定序号位于所述当前滑动窗口内的所述第一数据包丢失。
可选地,所述接收所述发送端第N+1次发送的所述第一数据包之前,还包括:
接收所述发送端发送的第二数据包,所述第二数据包携带所述第二数据包的序号、当前滑动窗口的左端序号和右端序号;
所述接收所述发送端第N+1次发送的所述第一数据包之后,还包括:
当所述第二数据包的序号等于所述当前滑动窗口的右端序号,且所述当前滑动窗口的左端序号到所述右端序号对应的数据包均已接收时,向所述发送端发送第一确认应答消息,所述第一确认应答消息用于指示所述当前滑动窗口内所述第二数据包的序号之前的序号对应的数据包已接收。
可选地,所述第N+1次发送的所述第一数据包中携带有所述第一数据包的发送次数N+1。
可选地,若所述N+1为最大发送次数,所述向发送端发送第一丢失消息之后,还包括:
接收所述发送端发送的第三数据包,所述第三数据包携带所述第三数据包的序号;
向所述发送端发送第二确认应答消息,所述第二确认应答消息用于指示已接收到所述第三数据包的序号之前的序号对应的数据包。
本实施例提供的数据重传方法,通过确定未接收到发送端发送的数据包是发送端第几(即N)次发送的,然后向发送端发送用于指示未接收到该第N次发送的数据包的丢失消息,以及接收发送端根据丢失消息发送的数据包,接收的数据包为发送端第N+1次发送的数据包。由于本实施例中可以确定丢失的数据包的发送次数,并向发送端发送丢失消息以通知未接收到该发送次数的数据包,以使发送端在接收到丢失消息后再次发送该数据包,保证了数据传输的连续性,降低了数据传输延时,提高了传输带宽。
第二方面,本发明实施例提供一种数据重传方法,包括:
接收接收端发送的第一丢失消息,所述第一丢失消息用于指示未接收到第N次发送的第一数据包,所述N为大于或等于1的整数;
根据所述第一丢失消息,向所述接收端发送第N+1次发送的所述第一数据包。
可选地,当N≥2时,所述接收所述接收端发送的第一丢失消息之前,包括:
向所述接收端发送第一发送指示,所述第一发送指示用于指示第N次发送的所述第一数据包已发送。
可选地,所述第一发送指示包括第N次发送的数据包的第一序号,所述第一序号用于指示第N次发送的序号小于或等于所述第一序号的数据包已发送。
可选地,所述第一发送指示包括发送次数N和第一序号,所述发送次数N和第一序号用于指示第N次发送的序号小于或等于所述第一序号的数据包已发送。
可选地,所述向所述接收端发送第一发送指示之前,还包括:
接收所述接收端发送的第二丢失消息,所述第二丢失消息用于指示未接收到第N-1次发送的所述第一数据包;
根据所述第二丢失消息,向所述接收端发送第N次发送的第一数据包;
所述向所述接收端发送第一发送指示,包括:
当确定在预设时间内未接收到所述接收端发送的用于指示所述第N次发送的第一数据包已接收或丢失的消息时,向所述接收端发送所述第一ping包,所述第一ping包中包括所述第一发送指示。
可选地,所述接收接收端发送的第一丢失消息,包括:接收所述接收端发送的否定应答消息,所述否定应答消息包括所述第一数据包的序号的前一个序号;
所述方法,还包括:
根据所述第一数据包的序号的前一个序号,将当前滑动窗口的左端序号变更为所述第一数据包的序号的前一个序号。
可选地,所述接收接收端发送的第一丢失消息之前,还包括:
根据滑动窗口向所述接收端发送数据包;
接收所述接收端发送的第三丢失消息,所述第三丢失消息用于指示未接收到数据包;
根据所述第三丢失消息向所述接收端发送第二发送指示,所述第二发送指示用于指示已发送第1次发送的所述第一数据包。
可选地,根据所述第三丢失消息向所述接收端发送第二发送指示,包括:向所述接收端发送第二ping包,所述第二ping包中包括当前滑动窗口的左端序号和右端序号;所述当前滑动窗品的左端序号和右端序号用于指示所述当前滑动窗口内的第一数据包已发送。
可选地,所述N+1为最大发送次数,所述根据所述第一丢失消息,向所述接收端发送第N+1次发送的所述第一数据包之后,还包括:
根据所述第一数据包的序号,调整当前滑动窗口。
本实施例提供的数据重传方法,通过接收接收端发送的用于指示未接收到第N次发送的数据包的丢失消息,然后根据丢失消息再次发送数据包。由于本实施例中发送端在接收到丢失消息后再次发送该数据包,保证了数据传输的连续性,降低了数据传输延时,提高了传输带宽。
第三方面,本发明实施例提供一种数据重传装置,包括:
确定模块,用于确定发送端第N次发送的第一数据包丢失,所述N为大于或等于1的整数;
发送模块,用于向所述发送端发送第一丢失消息,所述第一丢失消息用于指示未接收到所述第N次发送的第一数据包;
接收模块,用于接收发送端第N+1次发送的第一数据包,其中,所述第N+1次发送的第一数据包为所述发送端根据所述第一丢失消息发送的第一数据包。
可选地,当N≥2时,所述接收模块,还用于接收所述发送端发送的第一发送指示,所述第一发送指示用于指示第N次发送的所述第一数据包已发送;
所述确定模块,具体用于:根据所述第一发送指示,确定所述第N次发送的所述第一数据包丢失。
可选地,所述第一发送指示包括第N次发送的数据包的第一序号,所述第一序号用于指示第N次发送的序号小于或等于所述第一序号的数据包已发送;
所述确定模块,具体用于:在所述接收模块未接收到所述第一数据包时,根据所述第一序号,确定第N次发送的序号小于或等于所述第一序号的第一数据包丢失。
可选地,所述第一发送指示包括发送次数N和第一序号,所述第一序号和所述发送次数N用于指示第N次发送的序号小于或等于所述第一序号的数据包已发送;
所述确定模块,具体用于:根据所述第一序号和所述发送次数N,确定第N次发送的序号小于或等于所述第一序号的数据包丢失。
可选地,所述发送模块,还用于在所述接收模块接收所述发送端发送的第一发送指示之前,向所述发送端发送第二丢失消息,所述第二丢失消息用于指示未接收到所述第N-1次发送的第一数据包;
所述接收模块在接收所述发送端发送的第一发送指示时,具体用于:接收所述发送端发送的第一ping包,所述第一ping包中包括所述第一发送指示。
可选地,当N=1时,所述确定模块,具体用于:根据接收的所述发送端发送的数据包的序号不连续,确定第一次发送的所述第一数据包丢失,所述第一数据包的序号为缺失的序号。
可选地,所述发送模块在向发送端发送第一丢失消息时,具体用于包括:向所述发送端发送否定应答消息,所述否定应答消息包括所述第一数据包的序号的前一个序号,所述第一数据包的序号的前一个序号用于所述发送端确定第1次发送的所述第一数据包丢失。
可选地,当N=1时,所述发送模块,还用于当在预设时间内未接收到数据包时,向所述发送端发送第三丢失消息,所述第三丢失消息用于指示未接收到数据包;
所述接收模块,还用于接收所述发送端发送的第二发送指示,所述第二发送指示用于指示所述发送端已发送第1次发送的所述第一数据包;
所述确定模块,具体用于:根据所述第二发送指示确定所述第1次发送的第一数据包丢失。
可选地,所述接收模块在接收所述发送端发送的第二发送指示时,具体用于:接收所述发送端发送的第二ping包,所述第二ping包中包括当前滑动窗口的左端序号和右端序号;
所述确定模块,具体用于:根据所述当前滑动窗口的左端序号和右端序号,确定序号位于所述当前滑动窗口内的所述第一数据包丢失。
可选地,所述接收模块,还用于在接收所述发送端第N+1次发送的所述第一数据包之前,接收所述发送端发送的第二数据包,所述第二数据包携带所述第二数据包的序号、当前滑动窗口的左端序号和右端序号;
所述发送模块,还用于在所述接收模块接收所述发送端第N+1次发送的所述第一数据包之后,当所述第二数据包的序号等于所述当前滑动窗口的右端序号,且所述当前滑动窗口的左端序号到所述右端序号对应的数据包均已接收时,向所述发送端发送第一确认应答消息,所述第一确认应答消息用于指示所述当前滑动窗口内所述第二数据包的序号之前的序号对应的数据包已接收。
可选地,所述第N+1次发送的所述第一数据包中携带有所述第一数据包的发送次数N+1。
可选地,若所述N+1为最大发送次数,所述接收模块还用于在所述发送模块向发送端发送第一丢失消息之后,接收所述发送端发送的第三数据包,所述第三数据包携带所述第三数据包的序号;
所述发送模块还用于向所述发送端发送第二确认应答消息,所述第二确认应答消息用于指示已接收到所述第三数据包的序号之前的序号对应的数据包。
本实施例提供的数据重传装置,通过确定未接收到发送端发送的数据包是发送端第几(即N)次发送的,然后向发送端发送用于指示未接收到该第N次发送的数据包的丢失消息,以及接收发送端根据丢失消息发送的数据包,接收的数据包为发送端第N+1次发送的数据包。由于本实施例中可以确定丢失的数据包的发送次数,并向发送端发送丢失消息以通知未接收到该发送次数的数据包,以使发送端在接收到丢失消息后再次发送该数据包,保证了数据传输的连续性,降低了数据传输延时,提高了传输带宽。
第四方面,本发明实施例提供一种数据重传装置,包括:
接收模块,用于接收接收端发送的第一丢失消息,所述第一丢失消息用于指示未接收到第N次发送的第一数据包,所述N为大于或等于1的整数;
发送模块,用于根据所述第一丢失消息,向所述接收端发送第N+1次发送的所述第一数据包。
可选地,当N≥2时,所述发送模块,还用于在所述接收模块接收所述接收端发送的第一丢失消息之前,向所述接收端发送第一发送指示,所述第一发送指示用于指示第N次发送的所述第一数据包已发送。
可选地,所述第一发送指示包括第N次发送的数据包的第一序号,所述第一序号用于指示第N次发送的序号小于或等于所述第一序号的数据包已发送。
可选地,所述第一发送指示包括发送次数N和第一序号,所述发送次数N和第一序号用于指示第N次发送的序号小于或等于所述第一序号的数据包已发送。
可选地,所述接收模块还用于在所述发送模块向所述接收端发送第一发送指示之前,接收所述接收端发送的第二丢失消息,所述第二丢失消息用于指示未接收到第N-1次发送的所述第一数据包;
所述发送模块,还用于根据所述第二丢失消息,向所述接收端发送第N次发送的第一数据包;
所述发送模块在向所述接收端发送第一发送指示时,具体用于:当确定在预设时间内未接收到所述接收端发送的用于指示所述第N次发送的第一数据包已接收或丢失的消息时,向所述接收端发送所述第一ping包,所述第一ping包中包括所述第一发送指示。
可选地,所述接收模块在接收接收端发送的第一丢失消息时,具体用于:接收所述接收端发送的否定应答消息,所述否定应答消息包括所述第一数据包的序号的前一个序号;
所述装置,还包括:
变更模块,用于根据所述第一数据包的序号的前一个序号,将当前滑动窗口的左端序号变更为所述第一数据包的序号的前一个序号。
可选地,所述发送模块,还用于在所述接收模块接收接收端发送的第一丢失消息之前,根据滑动窗口向所述接收端发送数据包;
所述接收模块,还用于接收所述接收端发送的第三丢失消息,所述第三丢失消息用于指示未接收到数据包;
所述发送模块,还用于根据所述第三丢失消息向所述接收端发送第二发送指示,所述第二发送指示用于指示已发送第1次发送的所述第一数据包。
可选地,所述发送模块,在根据所述第三丢失消息向所述接收端发送第二发送指示时,具体用于:向所述接收端发送第二ping包,所述第二ping包中包括当前滑动窗口的左端序号和右端序号;所述当前滑动窗品的左端序号和右端序号用于指示所述当前滑动窗口内的第一数据包已发送。
可选地,所述装置还包括:
调整模块,用于在所述发送模块根据所述第一丢失消息,向所述接收端发送第N+1次发送的所述第一数据包之后,根据所述第一数据包的序号,调整当前滑动窗口;所述N+1为最大发送次数。
本发明实施例提供的数据重传装置,通过接收接收端发送的用于指示未接收到第N次发送的数据包的丢失消息,然后根据丢失消息再次发送数据包。由于本实施例中发送端在接收到丢失消息后再次发送该数据包,保证了数据传输的连续性,降低了数据传输延时,提高了传输带宽。保证了数据传输的连续性,降低了数据传输延时,提高了传输带宽
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明数据重传方法实施例一的流程图;
图2为本发明数据重传方法实施例二的流程图;
图3为本发明数据重传方法实施例三的流程图;
图4为本发明数据重传方法实施例四的流程图;
图5为本发明数据重传方法实施例五的流程图;
图6为本发明数据重传方法实施例六的流程图;
图7为本发明数据重传方法实施例七的流程图;
图8为本发明数据重传方法实施例八的流程图;
图9为本发明实施例提供一种数据包的结构体的示意图;
图10为本发明一实施例提供的数据重传方法的一种应用示意图;
图11为本发明一实施例提供的数据重传方法的一种应用示意图;
图12为本发明一实施例提供的数据重传方法的一种应用示意图;
图13为本发明数据重传装置实施例一的结构示意图;
图14为本发明数据重传装置实施例二的结构示意图;
图15为本发明数据重传系统实施例一的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明各实施例提供的数据重传方法可以应用于无人机中,下述的发送端可以是无人机,接收端可以是控制无人机的控制装置,例如控制装置可以包括遥控器和地面站,地面站可以是智能手机、平板电脑,下述的数据包可以是无人机中的摄像装置拍摄到的画面。
图1为本发明数据重传方法实施例一的流程图,如图1所示,本实施例的方法可以包括:
S101、确定发送端第N次发送的数据包丢失。
S102、向所述发送端发送丢失消息,所述丢失消息用于指示未接收到所述第N次发送的数据包。
S103、接收发送端第N+1次发送的数据包,其中,所述第N+1次发送的数据包为所述发送端根据所述丢失消息发送的数据包。
本实施例的执行主体为接收端,接收端可以确定发送端第N次发送的数据包丢失,所述N为大于或等于1的整数,也就是接收端可以确定发送端发送的数据包丢失而且还可以确定这次丢失的数据包是发送端第几次发送的。然后需要向发送端通知该发送端第N次发送的数据包接收端未接收到,并且需要发送端再次发送数据包,也就是本实施例中接收端向发送端发送丢失消息,该丢失消息用于指示接收端未接收到发送端第N次发送的数据包,然后接收端可以接收发送端根据丢失消息重新发送的数据包,该数据包是发送端第N+1次发送的数据包。
本实施例提供的数据重传方法,通过确定未接收到发送端发送的数据包是发送端第几(即N)次发送的,然后向发送端发送用于指示未接收到该第N次发送的数据包的丢失消息,以及接收发送端根据丢失消息发送的数据包,接收的数据包为发送端第N+1次发送的数据包。由于本实施例中可以确定丢失的数据包的发送次数,并向发送端发送丢失消息以通知未接收到该发送次数的数据包,以使发送端在接收到丢失消息后再次发送该数据包,保证了数据传输的连续性,降低了数据传输延时,提高了传输带宽。
图2为本发明数据重传方法实施例二的流程图,如图2所示,本实施例的方法可以包括:
S201、接收接收端发送的丢失消息,所述丢失消息用于指示未接收到第N次发送的数据包,N为大于或等于1的整数。
S202、根据所述丢失消息,向所述接收端发送第N+1次发送的所述数据包。
本实施例的执行主体为发送端,发送端接收接收端发送的丢失消息,发送端根据接收的丢失消息可以确定接收端未接收到发送端发送的数据包,而且未接收的数据包为发送端第N次发送的数据包,然后向接收端再次发送数据包,该再次发送的数据包为第N+1次发送的数据包,以便接收端能接收第N+1次发送的数据包。
本实施例提供的数据重传方法,通过接收接收端发送的用于指示未接收到第N次发送的数据包的丢失消息,然后根据丢失消息再次发送数据包。由于本实施例中发送端在接收到丢失消息后再次发送该数据包,保证了数据传输的连续性,降低了数据传输延时,提高了传输带宽。
图3为本发明数据重传方法实施例三的流程图,如图3所示,本实施例以N为大于或等于2为例,本实施例的方法可以包括:
S301、发送端向接收端发送发送指示。
所述发送指示用于指示第N次发送的所述数据包已发送。N为大于或等于2的整数。
本实施例中,发送端在向接收端发送第N次发送的数据包之后,向接收端发送所述发送指示;相应地,接收端接收发送端发送的发送指示。可选地,发送端可以将发送指示携带在一数据包中发送给接收端。
S302、接收端根据所述发送指示,确定所述第N次发送的所述数据包丢失。
本实施例中,接收端接收发送指示后,并且到目前为止还未接收到该数据包,然后根据发送指示,确定发送端第N次发送的数据包丢失,即未接收到发送端第N次发送的数据包。
在S301和S302的一种可行的实现方式中,上述的发送指示包括第N次发送的数据包的第一序号,所述第一序号用于指示第N次发送的序号小于或等于所述第一序号的数据包已发送;对应地,接收端在未接收到序号小于或等于第一序号的数据包时,根据发送指示中的第一序号,确定第N次发送的序号小于或等于第一序号的数据包丢失,也就是接收端根据第一序号确定发送端已发送第N次发送的序号小于或等于第一序号的数据包,而且接收端确定未接收到,因此,接收端确定第N次发送的序号小于或等于第一序号的数据包丢失。可选地,发送指示可以包括多个字段,该多个字段中的第一个字段表示第二次发送的数据包的序号,第二个字段表示第三次发送的数据包的序号,以此类推,因此本实施例中可以在第N-1个字段填上数值,该数值表示第N+1次发送的数据包的序号,而其它字段的位置为无效。若发送指示携带在数据包发送,则发送指示的结构体可以如表1所示,发送指示中的多个字段为表1中的第五位字段之后的字段(包括第五位字段)。
表1
在S301和S302的另一种可行的实现方式中,上述的发送指示包括发送次数N和第一序号,所述第一序号和所述发送次数N用于指示第N次发送的序号小于或等于所述第一序号的数据包已发送;对应地,发送端在未接收到序号小于或等于第一序号的数据包时,根据发送指示中的第一序号和发送次数N,确定第N次发送的序号小于或等于第一序号的数据包丢失,也就是接收端根据第一序号和发送次数N确定第N次发送的序号小于或等于第一序号的数据包发送端已发送,而且接收端确定未接收到,因此,接收端确定数据包丢失。可选地,发送指示可以包括发送次数字段和序号字段,根据发送次数字段和序号字段中的数值共同决定第几次发送的哪个数据包已发送,因此本实施例中可以在发送次数字段中填上数值N,在序号字段上填上第一序号。若发送指示携带在数据包发送,则发送指示的结构体可以如表2所示,发送指示中的发送次数字段为表2中的第二位字段,序号字段为表2中的第五位字段。
表2
S303、接收端向所述发送端发送丢失消息。
所述丢失消息用于指示未接收到所述第N次发送的数据包。
S304、发送端根据所述丢失消息,向所述接收端发送第N+1次发送的数据包。
本实施例中,S303和S304的具体实现过程可以参见图1或图2所示实施例中的相关描述,此处不再赘述。
本实施例提供的数据重传方法,发送端通过发送指示向接收端指示第N次发送的数据包已发送;然后接收端未接收数据包时确定第N次发送的数据包已丢失,并向发送端发送丢失消息;发送端在接收到丢失消息后再次发送该数据包,保证了数据传输的连续性,降低了数据传输延时,提高了传输带宽。
图4为本发明数据重传方法实施例四的流程图,如图4所示,本实施例以N大于或等于2为例,本实施例的方法可以包括:
S401、接收端向发送端发送第一丢失消息。
所述第一丢失消息用于指示未接收到所述第N-1次发送的数据包。
本实施例中,接收端可以确定第N-1次发送的数据包丢失,然后向发送端发送第一丢失消息。其中,S401的具体实现过程可以参见上述实施例或下述实施例中的相关描述,此处不再赘述。
S402、发送端根据所述第一丢失消息,向所述接收端发送第N次发送的数据包。
本实施例中,发送端根据第一丢失消息,确定第N-1次发送的数据包丢失,然后再次向接收端发送数据包,这次的发送的数据包称为第N次发送的数据包。
S403、当所述发送端确定在预设时间内未接收到接收端发送的用于指示第N次发送的数据包已接收或丢失的消息时,向所述接收端发送ping包。
所述ping包中包括发送指示。
本实施例中,当发送端发送第N次发送的数据包之后,在预设时间内未接收到接收端发送的用于指示第N次发送的数据包已接收的消息,也没有接收到接收端发送的用于指示第N次发送的数据包已丢失的消息时,发送端向接收端发送ping包,而且该ping包中携带有发送指示。发送指示的相关描述可以参见图3所示实施例中的相关描述,此处不再赘述。
S404、接收端根据所述发送指示,确定所述第N次发送的所述数据包丢失。
S405、接收端向所述发送端发送第二丢失消息。
S406、发送端根据所述第二丢失消息,向所述接收端发送第N+1次发送的所述数据包。
本实施例中,S404-S406的具体实现过程可以参见图3所示实施例中的相关描述,此处不再赘述。
本实施例提供的数据重传方法,发送端通过ping包向接收端发送指示,以向接收端指示第N次发送的数据包已发送;然后接收端未接收数据包时确定第N次发送的数据包已丢失,并向发送端发送丢失消息;发送端在接收到丢失消息后再次发送该数据包,保证了数据传输的连续性,降低了数据传输延时,提高了传输带宽。
图5为本发明数据重传方法实施例五的流程图,如图5所示,本实施例以N等于1为例,本实施例的方法可以包括:
S501、接收端根据接收的发送端发送的数据包的序号不连续,确定第一次发送的数据包丢失。
所述丢失的数据包的序号为缺失的序号。
本实施例中,发送端根据数据包的序号依次向接收端发送数据包,每个数据包中携带有该数据包的序号。相应地,接收端会接收到发送端发送的数据包,当接收端接收了数据包,但是按顺序接收到的数据包的序号不连续,据此可以确定缺失的序号对应的数据包丢失。例如:接收端接收了序号为2、3的数据包,据此可以确定序号为1的数据包丢失;例如:接收端接收了序号为1、2、4的数据包,据此可以确定序号为3的数据包丢失。
然后本实施例的接收端需要向发送端发送丢失消息,丢失消息用于指示第一次发送的数据包丢失,在一种可行的实现方式中,接收端向发送端发送丢失消息可以包括S502。
S502、接收端向所述发送端发送否定应答消息。
所述否定应答消息包括所述数据包的序号的前一个序号,所述数据包的序号的前一个序号用于所述发送端确定第1次发送的所述数据包丢失。
本实施例中,丢失的数据包的序号为缺失的序号,而缺失的序号的前一个序号对应的数据包接收端是接收到的,因此接收端向发送端发送的否定应答消息中包括有该丢失的数据包的序号的前一个序号,例如:丢失的数据包的序号为3,则否定应答消息中包括的序号为2。
S503、发送端根据否定应答消息,向接收端发送第二次发送的数据包。
本实施例中,发送端接收上述的否定应答消息后,根据否定应答消息中的丢失的数据包的序号的前一个序号,确定第一次发送的数据包已丢失,例如:否定应答消息中的丢失的数据包的序号的前一个序号为2,则发送端根据序号为2确定序号为3的数据包已丢失,然后向接收端再次发送该数据包,这次发送的数据包为第二次发送的数据包。
S504、发送端根据丢失的所述数据包的序号的前一个序号,将当前滑动窗口的左端序号变更为丢失的所述数据包的序号的前一个序号。
本实施例中,发送端根据否定应答消息中的丢失的数据包的序号的前一个序号,可以确定该前一个序号以及之前的序号对应的数据包已成功接收,因此,将当前滑动窗口的左端序号变更为丢失的该数据包的序号的前一个序号。例如:丢失的数据包的序号的前一个序号为3,则本实施例的发送端将当前滑动窗口的左端序号变更为3。
本实施例提供的数据重传方法,通过上述方案,接收端可以确定第一次发送的数据包丢失,然后向发送端发送否定应答消息;发送端在接收到否定应答消息后再次发送该数据包,保证了数据传输的连续性,降低了数据传输延时,提高了传输带宽。
图6为本发明数据重传方法实施例六的流程图,如图6所示,本实施例以N等于1为例,本实施例的方法可以包括:
S601、发送端根据滑动窗口向接收端发送数据包。
S602、当在预设时间内未接收到数据包时,接收端向所述发送端发送第一丢失消息。
所述第一丢失消息用于指示未接收到数据包。
本实施例中,发送端根据滑动窗口向接收端发送数据包,而接收端在预设时间内未接收到任何数据包时,接收端向发送端发送第一丢失消息。
S603、发送端根据所述第一丢失消息向所述接收端发送第一发送指示。
所述第一发送指示用于指示已发送第一次发送的所述数据包。
S604、接收端根据所述第一发送指示确定所述第一次发送的数据包丢失。
本实施例中,发送端接收到第一丢失消息后,根据第一丢失消息确定所有已发送的数据包丢失,然后向接收端发送第一发送指示,该第一发送指示用于指示第一次发送了哪些数据包,即丢失的数据包。接收端接收到第一发送指示后,可以确定第一次发送的数据包丢失。
可选地,S603的一种可行的实现方式为:发送端向所述接收端发送ping包,所述ping包中包括当前滑动窗口的左端序号和右端序号;所述当前滑动窗品的左端序号和右端序号用于指示所述当前滑动窗口内的数据包已发送。相应地,S604的一种可行的实现方式为:根据所述当前滑动窗口的左端序号和右端序号,确定序号位于所述当前滑动窗口内的所述数据包丢失。例如:ping包中包括的当前滑动窗口的左端序号为0、右端序号为2,接收端根据左端序号为0、右端序号为2确定序号为1以及序号为2的数据包丢失。
S605、接收端向所述发送端发送第二丢失消息。
所述第二丢失消息用于指示未接收到所述第一次发送的数据包。
S606、发送端根据所述第二丢失消息,向所述接收端发送第二次发送的所述数据包。
本实施例中,S605和S606的具体实现过程可以参见图1或图2所示实施例中的相关描述,此处不再赘述。
图7为本发明数据重传方法实施例七的流程图,如图7所示,本实施例的方法可以包括:
S701、接收端确定发送端第N次发送的第一数据包丢失。
所述N为大于或等于1的整数;
S702、接收端向所述发送端发送丢失消息。
所述丢失消息用于指示未接收到所述第N次发送的第一数据包。
本实施例中,S701和S702的具体实现过程可以参见上述各实施例中的相关描述,此处不再赘述。
S703、发送端向接收端发送第二数据包。
所述第二数据包携带所述第二数据包的序号、当前滑动窗口的左端序号和右端序号。
S704、发送端根据丢失消息,向所述接收端发送第N+1次发送的第一数据包。
S704的具体实现过程可以参见上述各实施例中的相关描述,此处不再赘述。
需要说明的是,S703与S704的执行顺序不分先后。
S705、当所述第二数据包的序号等于所述当前滑动窗口的右端序号,且所述当前滑动窗口的左端序号到所述右端序号对应的数据包均已接收时,接收端向所述发送端发送确认应答消息。
所述确认应答消息用于指示所述当前滑动窗口内所述第二数据包的序号之前的序号对应的数据包已接收。
本实施例中,当第二数据包的序号等于当前滑动窗口的右端序号时,说明当前滑动窗口内的所有数据包发送端均向接收端发送了,而且当前滑动窗口左端序号到右端序号内的所有序号对应的数据包均由接收端接收到时,接收端向发送端发送确认应答消息,通过确认应答消息告知发送端当前滑动窗口内所有的数据包均已接收。可选地,发送端接收到该确认应答消息更新当前滑动窗口,例如:将当前滑动窗口的左端序号更改为第二数据包的序号。
本实施例提供的数据重传方法,通过上述方案,保证了数据传输的连续性,而且降低了数据传输延时,提高了传输带宽,而且使得接收端接收了当前滑动窗口内全部数据包后,再向发送端发送确认应答消息,保证了数据传输顺序不会被打乱。
图8为本发明数据重传方法实施例八的流程图,如图8所示,本实施例的方法可以包括:
S801、接收端确定发送端第N次发送的第一数据包丢失。
所述N为大于或等于1的整数;
S802、接收端向所述发送端发送丢失消息。
所述丢失消息用于指示未接收到所述第N次发送的第一数据包。
本实施例中,S801和S802的具体实现过程可以参见上述各实施例中的相关描述,此处不再赘述。
S803、发送端向接收端发送第二数据包。
所述第二数据包携带所述第二数据包的序号。
S804、发送端根据所述丢失消息,向所述接收端发送第N+1次发送的第一数据包。
本实施例中,S804的具体实现过程可以参见上述各实施例中的相关描述,此处不再赘述。
其中,S803和S804的执行顺序不分先后。
S805、若所述N+1为最大发送次数,则接收端向所述发送端发送确认应答消息。
所述确认应答消息用于指示已接收到所述第二数据包的序号之前的序号对应的数据包。
本实施例中,如果N+1为第一数据包的最大发送次数,表示无论接收端是否接收到第N+1次发送的第一数据包,发送端也不会再次发送第一数据包,因此,接收端认为已接收到第N+1次发送的第一数据包,在接收端接收到发送端发送的第二数据包后,接收端向发送端发送确认应答消息,通过确认应答消息向发送端通知第二数据包的序号之前的序号对应的数据包已接收。可选地,发送端接收到确认应答消息后调整当前滑动窗口。
S806、若所述N+1为最大发送次数,则发送端根据所述第一数据包的序号,调整当前滑动窗口。
本实施例中,发送端向接收端发送第N+1次发送的第一数据包后,如果N+1为第一数据包的最大发送次数,发送端不会再次发送第一数据包,因此发送端认为接收端已接收到第N+1次发送的第一数据包,然后根据第一数据包的序号调整当前滑动窗口,例如将当前滑动窗口的左端序号更改为第一数据包的序号。
S805与S806的执行顺序不分先后。
本实施例提供的数据重传方法,通过上述方案,保证了数据传输的连续性,降低了数据传输延时,提高了传输带宽;而且存在最大发送次数的限制,可以容忍部分数据的丢失,提高了整体数据传输效率。
可选地,在上述各实施例中,所述第N+1次发送的数据包中携带有所述数据包的发送次数N+1,以使接收端接收到第N+1次发送的所述数据包后,可以确定该数据包是发送端第N+1次发送的。
可选地,上述的发送次数可以用重传次数来表示,即发送次数等于重传次数+1,例如重传次数为1,表示发送次数为2。
需要说明的是,当前滑动窗口是指当前传输的最多数据包量,而且当前滑动窗口内的数据包是已发送的但还未被确认接收的数据包;左端序号是指当前滑动窗口内第一个发送的数据包的序号减1,也就是当前最近已经确认接收的数据包的序号;右端序号是指当前滑动窗口内最晚发送的数据包的序号。
图9为本发明实施例提供一种数据包的结构体的示意图,如图9所示,最大重传次数为2(即最大发送次数为3),该结构体包括:数据包的序号、数据包的重传次数、当前滑动窗口的左端序号、右端序号、第1次重传的数据包的序号。
图10为本发明一实施例提供的数据重传方法的一种应用示意图,如图10,本实施例基于如图9所示的结构体进行描述。
本实施例的滑动窗口为5进行举例说明,发送端根据滑动窗口为5依次向接收端发送序号为1的数据包、序号为2的数据包、序号为3的数据包、序号为4的数据、序号为5的数据包。序号为1的数据包的结构体包括:1(数据包的序号)、0(第一次发送,没有重传,所以重传次数为0)、0(当前滑动窗口第一个发送的数据包的序号(为1)减1)、1(当前滑动窗口发送的数据包的序号)、无(当前没有重发的数据包);序号为2的数据包的结构体包括:2、0、0、2、无;序号为3的数据包的结构体包括:3、0、0、3、无;序号为4的数据包的结构体包括:4、0、0、4、无;序号为5的数据包的结构体包括:5、0、0、5、无。接收端接收到序号为1、4的数据包,接收端根据1、4序号的不连续,确定序号为2、3的数据包丢失,接收端向发送端发送确认序号为1的数据包已接收以及第0次重传(即第1次发送)的序号为2、3的数据包未接收到的消息;发送端接收到该消息后,向接收端重传序号为2的数据包(简称2.1)以及重传序号为3的数据包(简称3.1),2.1的数据包的结构体包括:2、1(序号为2的数据包第1次重传)、1(接收端已接收到序号为1的数据包,当前滑动窗口进行了调整)、5(当前滑动窗口已发送到的数据包的序号)、2(此时第1次重传的数据包的序号为2);3.1的数据包的结构体包括:3、1(序号为3的数据包第1次重传)、1、5(当前滑动窗口已发送到的数据包的序号)、3(此时第1次重传的数据包的序号为3);然后发送端根据滑动窗口为5继续发送序号为6的数据包,序号为6的数据包的结构体为:6、0、1、6、3(此时第1次重传的数据包的序号为3)。接收端接收到3.1的数据包,而没有接收到2.1的数据包,接收端继续向发送端发送确认序号为1的数据包已接收以及第1次重传(即第2次发送)的序号为2的数据包未接收到的消息;发送端接收到该消息后,向接收端重传序号为2的数据包(简称2.2),2.2的数据包的结构体包括:2、2(序号为2的数据包第2次重传)、1(接收端已接收到序号为1的数据包,当前滑动窗口进行了调整)、6(当前滑动窗口已发送到的数据包的序号)、3(此时第1次重传的数据包的序号为3)。接收端接收到序号为6的数据包以及2.2的数据包,然后向发送端发送确认序号为6的数据包已接收的消息,发送端接收该消息后,确定序号为6之前的对应的数据包均已接收,然后调整当前滑动窗口,继续发送后续的数据,例如发送序号为7的数据包。
根据本发明实施例,保证了数据传输的连续性,避免了在未接收第一数据包的确认应答消息之前连续重传第一数据包的缺陷,而且降低了数据传输延时,提高了传输带宽。
图11为本发明一实施例提供的数据重传方法的一种应用示意图,如图11,本实施例基于如图9所示的结构体进行描述。
本实施例的滑动窗口为2进行举例说明,发送端根据滑动窗口为2依次向接收端发送序号为1的数据包、序号为2的数据包。序号为1的数据包的结构体包括:1(数据包的序号)、0(第一次发送,没有重传,所以重传次数为0)、0(当前滑动窗口第一个发送的数据包的序号(为1)减1)、1(当前滑动窗口发送的数据包的序号)、无(当前没有重发的数据包);序号为2的数据包的结构体包括:2、0、0、2、无。接收端在预设时间内未接收到任何数据包,则可以确定数据包丢失,接收端向发送端发送确认序号为0的数据包(不存在)已接收的消息;发送端接收到该消息后,可以确定接收端未接收到任何数据包,然后向接收端发送ping包,ping包的结构体包括:无(ping包不分配序号)、无(当前没有重传)、0(当前滑动窗口的第一个数据包的序号减1)、2(当前滑动窗口已发送到的数据包的序号)、无(当前没有重发)。接收端接收到ping包后,根据ping包中的0和2,确定第1次发送的序号为1以及2的数据包未接收到,接收端向发送端发送确认序号为0的数据包已接收以及第0次重传(即第1次发送)的序号为1、2的数据包未接收到的消息;发送端接收到该消息后,向接收端重传序号为1的数据包(简称1.1)和序号为2的数据包(简称2.1),1.1的数据包的结构体包括:1、1(序号为1的数据包第1次重传)、0、2、1(此时第1次重传的数据包的序号为1),2.1的数据包的结构体包括:2、1(序号为2的数据包第1次重传)、0、2、2(此时第1次重传的数据包的序号为2)。接收端接收到1.1的数据包以及2.1的数据包,然后向发送端发送确认序号为2的数据包已接收的消息,发送端接收该消息后,确定序号为2之前的对应的数据包均已接收。
根据本发明实施例,保证了数据传输的连续性,避免了在未接收第一数据包的确认应答消息之前连续重传第一数据包的缺陷,而且降低了数据传输延时,提高了传输带宽。
图12为本发明一实施例提供的数据重传方法的一种应用示意图,如图12,本实施例基于如图9所示的结构体进行描述。
本实施例的滑动窗口为2、最大发送次数为3进行举例说明,发送端根据滑动窗口为2依次向接收端发送序号为1的数据包、序号为2的数据包。序号为1的数据包的结构体包括:1、0、0、1、无;序号为2的数据包的结构体包括:2、0、0、2、无。序号为1的数据包丢失,接收端接收了序号为2的数据包,接收端向发送端发送确认序号为0的数据包(不存在)已接收以及序号为1的数据包未接收的消息;发送端接收到该消息后,向接收端重传序号为1的数据包(简称1.1),1.1的数据包的结构体包括:1、1、0、2、1。接收端未接收到1.1的数据包,接收端暂时不向发送端发送任何消息,而发送端在预设时间内未接收到任何消息时,向接收端发送ping包,ping包的结构体包括:无、无、0、2、1(第1次重传的数据包的序号为1)。接收端接收到ping包后,根据ping包中的1,确定第1次重传的序号为1的数据包未接收到,接收端向发送端发送确认序号为0的数据包已接收以及第1次重传(即第2次发送)的序号为1的数据包未接收到的消息;发送端接收到该消息后,向接收端重传序号为1的数据包(简称1.2),1.2的数据包的结构体包括:1、2(序号为1的数据包第2次重传)、0、2、1(此时第1次重传的数据包的序号为1),由于最大重传次数为2,因此此处可以无需包括第2次重传的数据包的序号。然后发送端可以认为序号为1的数据包已接收,调整当前滑动窗口,继续向接收端发送序号为3的数据包,序号为3的数据包的结构体包括:3、0、1、3、无(当前滑动窗口内没有重传)。对于接收端来说,仍没有接收到1.2的数据包,而接收到了序号为3的数据包,由于最大重传次数为2,无论其是否接收到1.2的数据包,发送端也不会再发送1.3的数据包,因此,接收端默认接收到1.2的数据包,并向发送端发送确认序号为3的数据包已接收的消息,以使发送端根据该消息确定序号为3之前的数据包均已接收。
根据本发明实施例,保证了数据传输的连续性,避免了在未接收第一数据包的确认应答消息之前连续重传第一数据包的缺陷,而且降低了数据传输延时,提高了传输带宽。
图13为本发明数据重传装置实施例一的结构示意图,如图13所示,本实施例的装置可以包括:确定模块110、发送模块120和接收模块130,其中,
确定模块110,用于确定发送端第N次发送的第一数据包丢失,所述N为大于或等于1的整数;
发送模块120,用于向所述发送端发送第一丢失消息,所述第一丢失消息用于指示未接收到所述第N次发送的第一数据包;
接收模块130,用于接收发送端第N+1次发送的第一数据包,其中,所述第N+1次发送的第一数据包为所述发送端根据所述第一丢失消息发送的第一数据包。
可选地,当N≥2时,所述接收模块130,还用于接收所述发送端发送的第一发送指示,所述第一发送指示用于指示第N次发送的所述第一数据包已发送;
所述确定模块110,具体用于:根据所述第一发送指示,确定所述第N次发送的所述第一数据包丢失。
可选地,所述第一发送指示包括第N次发送的数据包的第一序号,所述第一序号用于指示第N次发送的序号小于或等于所述第一序号的数据包已发送;
所述确定模块110,具体用于:根据所述第一序号,确定第N次发送的序号小于或等于所述第一序号的第一数据包丢失。
可选地,所述第一发送指示包括发送次数N和第一序号,所述第一序号和所述发送次数N用于指示第N次发送的序号小于或等于所述第一序号的数据包已发送;
所述确定模块110,具体用于:在所述接收模块130未接收到所述第一数据包时,根据所述第一序号和所述发送次数N,确定第N次发送的序号小于或等于所述第一序号的数据包丢失。
可选地,所述发送模块120,还用于在所述接收模块130接收所述发送端发送的第一发送指示之前,向所述发送端发送第二丢失消息,所述第二丢失消息用于指示未接收到所述第N-1次发送的第一数据包;
所述接收模块130在接收所述发送端发送的第一发送指示时,具体用于:接收所述发送端发送的第一ping包,所述第一ping包中包括所述第一发送指不。
可选地,当N=1时,所述确定模块110,具体用于:根据接收的所述发送端发送的数据包的序号不连续,确定第一次发送的所述第一数据包丢失,所述第一数据包的序号为缺失的序号。
可选地,所述发送模块120在向发送端发送第一丢失消息时,具体用于包括:向所述发送端发送否定应答消息,所述否定应答消息包括所述第一数据包的序号的前一个序号,所述第一数据包的序号的前一个序号用于所述发送端确定第1次发送的所述第一数据包丢失。
可选地,当N=1时,所述发送模块120,还用于当在预设时间内未接收到数据包时,向所述发送端发送第三丢失消息,所述第三丢失消息用于指示未接收到数据包;
所述接收模块130,还用于接收所述发送端发送的第二发送指示,所述第二发送指示用于指示所述发送端已发送第1次发送的所述第一数据包;
所述确定模块110,具体用于:根据所述第二发送指示确定所述第1次发送的第一数据包丢失。
可选地,所述接收模块130在接收所述发送端发送的第二发送指示时,具体用于:接收所述发送端发送的第二ping包,所述第二ping包中包括当前滑动窗口的左端序号和右端序号;
所述确定模块110,具体用于:根据所述当前滑动窗口的左端序号和右端序号,确定序号位于所述当前滑动窗口内的所述第一数据包丢失。
可选地,所述接收模块130,还用于在接收所述发送端第N+1次发送的所述第一数据包之前,接收所述发送端发送的第二数据包,所述第二数据包携带所述第二数据包的序号、当前滑动窗口的左端序号和右端序号;
所述发送模块120,还用于在所述接收模块130接收所述发送端第N+1次发送的所述第一数据包之后,当所述第二数据包的序号等于所述当前滑动窗口的右端序号,且所述当前滑动窗口的左端序号到所述右端序号对应的数据包均已接收时,向所述发送端发送第一确认应答消息,所述第一确认应答消息用于指示所述当前滑动窗口内所述第二数据包的序号之前的序号对应的数据包已接收。
可选地,所述第N+1次发送的所述第一数据包中携带有所述第一数据包的发送次数N+1。
可选地,若所述N+1为最大发送次数,所述接收模块130还用于在所述发送模块120向发送端发送第一丢失消息之后,接收所述发送端发送的第三数据包,所述第三数据包携带所述第三数据包的序号;
所述发送模块120还用于向所述发送端发送第二确认应答消息,所述第二确认应答消息用于指示已接收到所述第三数据包的序号之前的序号对应的数据包。
本实施例的装置,可以用于执行本发明上述各方法实施例中接收端所执行的技术方案,其实现原理和技术效果类似,此处不再赘述。
图14为本发明数据重传装置实施例二的结构示意图,如图14所示,本实施例的装置可以包括:接收模块210和发送模块220,其中,
接收模块210,用于接收接收端发送的第一丢失消息,所述第一丢失消息用于指示未接收到第N次发送的第一数据包,所述N为大于或等于1的整数;
发送模块220,用于根据所述第一丢失消息,向所述接收端发送第N+1次发送的所述第一数据包。
可选地,当N≥2时,所述发送模块220,还用于在所述接收模块210接收所述接收端发送的第一丢失消息之前,向所述接收端发送第一发送指示,所述第一发送指示用于指示第N次发送的所述第一数据包已发送。
可选地,所述第一发送指示包括第N次发送的数据包的第一序号,所述第一序号用于指示第N次发送的序号小于或等于所述第一序号的数据包已发送。
可选地,所述第一发送指示包括发送次数N和第一序号,所述发送次数N和第一序号用于指示第N次发送的序号小于或等于所述第一序号的数据包已发送。
可选地,所述接收模块210还用于在所述发送模块220向所述接收端发送第一发送指示之前,接收所述接收端发送的第二丢失消息,所述第二丢失消息用于指示未接收到第N-1次发送的所述第一数据包;
所述发送模块220,还用于根据所述第二丢失消息,向所述接收端发送第N次发送的第一数据包;
所述发送模块220在向所述接收端发送第一发送指示时,具体用于:当确定在预设时间内未接收到所述接收端发送的用于指示所述第N次发送的第一数据包已接收或丢失的消息时,向所述接收端发送所述第一ping包,所述第一ping包中包括所述第一发送指示。
可选地,所述接收模块210在接收接收端发送的第一丢失消息时,具体用于:接收所述接收端发送的否定应答消息,所述否定应答消息包括所述第一数据包的序号的前一个序号;
所述装置,还包括:变更模块230;变更模块230,用于根据所述第一数据包的序号的前一个序号,将当前滑动窗口的左端序号变更为所述第一数据包的序号的前一个序号。
可选地,所述发送模块220,还用于在所述接收模块210接收接收端发送的第一丢失消息之前,根据滑动窗口向所述接收端发送数据包;
所述接收模块210,还用于接收所述接收端发送的第三丢失消息,所述第三丢失消息用于指示未接收到数据包;
所述发送模块220,还用于根据所述第三丢失消息向所述接收端发送第二发送指示,所述第二发送指示用于指示已发送第1次发送的所述第一数据包。
可选地,所述发送模块220,在根据所述第三丢失消息向所述接收端发送第二发送指示时,具体用于:向所述接收端发送第二ping包,所述第二ping包中包括当前滑动窗口的左端序号和右端序号;所述当前滑动窗品的左端序号和右端序号用于指示所述当前滑动窗口内的第一数据包已发送。
可选地,本实施例的装置还包括:调整模块240;调整模块240,用于在所述发送模块220根据所述第一丢失消息,向所述接收端发送第N+1次发送的所述第一数据包之后,根据所述第一数据包的序号,调整当前滑动窗口;所述N+1为最大发送次数。
本实施例的装置,可以用于执行上述各方法实施例中发送端所执行的技术方案,其实现原理和技术效果类似,此处不再赘述。
图15为本发明数据重传系统实施例一的结构示意图,如图15所示,本实施例的系统可以包括:控制装置10和无人机20。无人机20的收发器21可以与控制装置10的收发器11进行通信,无人机的搭载台22搭载有摄像装置23,无人机中的旋转翼24可以改变转向使得摄像装置23可以拍摄到不同的画面;无人机20可以通过收发器21将摄像装置23拍摄到的画面发送给控制装置10的收发器11。需要说明的是,图15从无人机20的一个侧面方向示出了无人机20的两个旋转翼,但无人机20可以具有四个旋转翼。
需要说明的是,控制装置10可以执行上述接收端执行的技术方案,无人机20可以执行上述发送端执行的技术方案。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:只读内存(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (34)
1.一种数据重传方法,其特征在于,包括:
接收发送端发送的发送指示,所述发送指示用于指示第N次发送的第一数据包已发送;所述N为大于或等于1的整数;
根据所述发送指示,确定所述第N次发送的所述第一数据包丢失;
向所述发送端发送第一丢失消息,所述第一丢失消息用于指示未接收到所述第N次发送的第一数据包;
接收发送端第N+1次发送的第一数据包,其中,所述第N+1次发送的第一数据包为所述发送端根据所述第一丢失消息发送的第一数据包。
2.根据权利要求1所述的方法,其特征在于,当N≥2时,所述发送指示包括第N次发送的数据包的第一序号,所述第一序号用于指示第N次发送的序号小于或等于所述第一序号的数据包已发送;
根据所述发送指示,确定所述第N次发送的所述第一数据包丢失,包括:在未接收到所述第一数据包时,根据所述第一序号,确定第N次发送的序号小于或等于所述第一序号的第一数据包丢失。
3.根据权利要求1所述的方法,其特征在于,当N≥2时,所述发送指示包括发送次数N和第一序号,所述第一序号和所述发送次数N用于指示第N次发送的序号小于或等于所述第一序号的数据包已发送;
根据所述发送指示,确定所述第N次发送的所述第一数据包丢失,包括:根据所述第一序号和所述发送次数N,确定第N次发送的序号小于或等于所述第一序号数据包丢失。
4.根据权利要求1-3任意一项所述的方法,其特征在于,当N≥2时,所述接收所述发送端发送的发送指示之前,还包括:
向所述发送端发送第二丢失消息,所述第二丢失消息用于指示未接收到第N-1次发送的第一数据包;
所述接收所述发送端发送的发送指示,包括:接收所述发送端发送的第一ping包,所述第一ping包中包括所述发送指示。
5.根据权利要求1所述的方法,其特征在于,当N=1时,在接收所述发送端发送的发送指示之前,还包括:
当在预设时间内未接收到数据包时,向所述发送端发送第三丢失消息,所述第三丢失消息用于指示未接收到数据包。
6.根据权利要求5所述的方法,其特征在于,接收所述发送端发送的发送指示,包括:接收所述发送端发送的第二ping包,所述第二ping包中包括当前滑动窗口的左端序号和右端序号;
根据所述发送指示确定第1次发送的第一数据包丢失,包括:根据所述当前滑动窗口的左端序号和右端序号,确定序号位于所述当前滑动窗口内的所述第一数据包丢失。
7.根据权利要求1-3、5-6任意一项所述的方法,其特征在于,所述接收所述发送端第N+1次发送的所述第一数据包之前,还包括:
接收所述发送端发送的第二数据包,所述第二数据包携带所述第二数据包的序号、当前滑动窗口的左端序号和右端序号;
所述接收所述发送端第N+1次发送的所述第一数据包之后,还包括:
当所述第二数据包的序号等于所述当前滑动窗口的右端序号,且所述当前滑动窗口的左端序号到所述右端序号对应的数据包均已接收时,向所述发送端发送第一确认应答消息,所述第一确认应答消息用于指示所述当前滑动窗口内所述第二数据包的序号之前的序号对应的数据包已接收。
8.根据权利要求1-3、5-6任意一项所述的方法,其特征在于,所述第N+1次发送的所述第一数据包中携带有所述第一数据包的发送次数N+1。
9.根据权利要求1-3、5-6任意一项所述的方法,其特征在于,若所述N+1为最大发送次数,所述向发送端发送第一丢失消息之后,还包括:
接收所述发送端发送的第三数据包,所述第三数据包携带所述第三数据包的序号;
向所述发送端发送第二确认应答消息,所述第二确认应答消息用于指示已接收到所述第三数据包的序号之前的序号对应的数据包。
10.一种数据重传方法,其特征在于,包括:
向接收端发送发送指示,所述发送指示用于指示第N次发送的第一数据包已发送;
接收接收端发送的第一丢失消息,所述第一丢失消息用于指示未接收到第N次发送的第一数据包,所述N为大于或等于1的整数;
根据所述第一丢失消息,向所述接收端发送第N+1次发送的所述第一数据包。
11.根据权利要求10所述的方法,其特征在于,当N≥2时,所述发送指示包括第N次发送的数据包的第一序号,所述第一序号用于指示第N次发送的序号小于或等于所述第一序号的数据包已发送。
12.根据权利要求11所述的方法,其特征在于,当N≥2时,所述发送指示包括发送次数N和第一序号,所述发送次数N和第一序号用于指示第N次发送的序号小于或等于所述第一序号的数据包已发送。
13.根据权利要求11或12所述的方法,其特征在于,所述向所述接收端发送发送指示之前,还包括:
接收所述接收端发送的第二丢失消息,所述第二丢失消息用于指示未接收到第N-1次发送的所述第一数据包;
根据所述第二丢失消息,向所述接收端发送第N次发送的第一数据包;
所述向所述接收端发送发送指示,包括:
当确定在预设时间内未接收到所述接收端发送的用于指示所述第N次发送的第一数据包已接收或丢失的消息时,向所述接收端发送第一ping包,所述第一ping包中包括所述发送指示。
14.根据权利要求10所述的方法,其特征在于,当N=1时,所述接收接收端发送的第一丢失消息,包括:接收所述接收端发送的否定应答消息,所述否定应答消息包括所述第一数据包的序号的前一个序号;
所述方法,还包括:
根据所述第一数据包的序号的前一个序号,将当前滑动窗口的左端序号变更为所述第一数据包的序号的前一个序号。
15.根据权利要求10所述的方法,其特征在于,当N=1时,所述接收接收端发送的第一丢失消息之前,还包括:
根据滑动窗口向所述接收端发送数据包;
接收所述接收端发送的第三丢失消息,所述第三丢失消息用于指示未接收到数据包。
16.根据权利要求15所述的方法,其特征在于,根据所述第三丢失消息向所述接收端发送发送指示,包括:向所述接收端发送第二ping包,所述第二ping包中包括当前滑动窗口的左端序号和右端序号;所述当前滑动窗口的左端序号和右端序号用于指示所述当前滑动窗口内的第一数据包已发送。
17.根据权利要求10-12、14-16任意一项所述的方法,其特征在于,所述N+1为最大发送次数,所述根据所述第一丢失消息,向所述接收端发送第N+1次发送的所述第一数据包之后,还包括:
根据所述第一数据包的序号,调整当前滑动窗口。
18.一种数据重传装置,其特征在于,包括:
接收模块,用于接收发送端发送的发送指示,所述发送指示用于指示第N次发送的第一数据包已发送;所述N为大于或等于1的整数;
发送模块,用于向所述发送端发送第一丢失消息,所述第一丢失消息用于指示未接收到所述第N次发送的第一数据包;
接收模块,用于接收发送端第N+1次发送的第一数据包,其中,所述第N+1次发送的第一数据包为所述发送端根据所述第一丢失消息发送的第一数据包。
19.根据权利要求18所述的装置,其特征在于,当N≥2时,所述发送指示包括第N次发送的数据包的第一序号,所述第一序号用于指示第N次发送的序号小于或等于所述第一序号的数据包已发送;
确定模块,具体用于:在所述接收模块未接收到所述第一数据包时,根据所述第一序号,确定第N次发送的序号小于或等于所述第一序号的第一数据包丢失。
20.根据权利要求19所述的装置,其特征在于,当N≥2时,所述发送指示包括发送次数N和第一序号,所述第一序号和所述发送次数N用于指示第N次发送的序号小于或等于所述第一序号的数据包已发送;
所述确定模块,具体用于根据所述第一序号和所述发送次数N,确定第N次发送的序号小于或等于所述第一序号的数据包丢失。
21.根据权利要求19-20任意一项所述的装置,其特征在于,当N≥2时,所述发送模块,还用于在所述接收模块接收所述发送端发送的发送指示之前,向所述发送端发送第二丢失消息,所述第二丢失消息用于指示未接收到第N-1次发送的第一数据包;
所述接收模块在接收所述发送端发送的发送指示时,具体用于接收所述发送端发送的第一ping包,所述第一ping包中包括所述发送指示。
22.根据权利要求18所述的装置,其特征在于,当N=1时,所述发送模块,还用于当在预设时间内未接收到数据包时,向所述发送端发送第三丢失消息,所述第三丢失消息用于指示未接收到数据包。
23.根据权利要求22所述的装置,其特征在于,所述接收模块在接收所述发送端发送的发送指示时,具体用于:接收所述发送端发送的第二ping包,所述第二ping包中包括当前滑动窗口的左端序号和右端序号;
确定模块,具体用于根据所述当前滑动窗口的左端序号和右端序号,确定序号位于所述当前滑动窗口内的所述第一数据包丢失。
24.根据权利要求18-20、22-23任意一项所述的装置,其特征在于,所述接收模块,还用于在接收所述发送端第N+1次发送的所述第一数据包之前,接收所述发送端发送的第二数据包,所述第二数据包携带所述第二数据包的序号、当前滑动窗口的左端序号和右端序号;
所述发送模块,还用于在所述接收模块接收所述发送端第N+1次发送的所述第一数据包之后,当所述第二数据包的序号等于所述当前滑动窗口的右端序号,且所述当前滑动窗口的左端序号到所述右端序号对应的数据包均已接收时,向所述发送端发送第一确认应答消息,所述第一确认应答消息用于指示所述当前滑动窗口内所述第二数据包的序号之前的序号对应的数据包已接收。
25.根据权利要求18-20、22-23任意一项所述的装置,其特征在于,所述第N+1次发送的所述第一数据包中携带有所述第一数据包的发送次数N+1。
26.根据权利要求18-20、22-23任意一项所述的装置,其特征在于,若所述N+1为最大发送次数,所述接收模块还用于在所述发送模块向发送端发送第一丢失消息之后,接收所述发送端发送的第三数据包,所述第三数据包携带所述第三数据包的序号;
所述发送模块还用于向所述发送端发送第二确认应答消息,所述第二确认应答消息用于指示已接收到所述第三数据包的序号之前的序号对应的数据包。
27.一种数据重传装置,其特征在于,包括:
发送模块,用于在接收模块接收接收端发送的第一丢失消息之前,向接收端发送发送指示,所述发送指示用于指示第N次发送的第一数据包已发送;
接收模块,用于接收接收端发送的第一丢失消息,所述第一丢失消息用于指示未接收到第N次发送的第一数据包,所述N为大于或等于1的整数;
发送模块,用于根据所述第一丢失消息,向所述接收端发送第N+1次发送的所述第一数据包。
28.根据权利要求27所述的装置,其特征在于,当N≥2时,
所述发送指示包括第N次发送的数据包的第一序号,所述第一序号用于指示第N次发送的序号小于或等于所述第一序号的数据包已发送。
29.根据权利要求28所述的装置,其特征在于,当N≥2时,所述发送指示包括发送次数N和第一序号,所述发送次数N和第一序号用于指示第N次发送的序号小于或等于所述第一序号的数据包已发送。
30.根据权利要求28或29所述的装置,其特征在于,所述接收模块还用于在所述发送模块向所述接收端发送发送指示之前,接收所述接收端发送的第二丢失消息,所述第二丢失消息用于指示未接收到第N-1次发送的所述第一数据包;
所述发送模块,还用于根据所述第二丢失消息,向所述接收端发送第N次发送的第一数据包;
所述发送模块在向所述接收端发送发送指示时,具体用于:当确定在预设时间内未接收到所述接收端发送的用于指示所述第N次发送的第一数据包已接收或丢失的消息时,向所述接收端发送第一ping包,所述第一ping包中包括所述发送指示。
31.根据权利要求27所述的装置,其特征在于,当N=1时,所述接收模块在接收接收端发送的第一丢失消息时,具体用于:接收所述接收端发送的否定应答消息,所述否定应答消息包括所述第一数据包的序号的前一个序号;
所述装置,还包括:
变更模块,用于根据所述第一数据包的序号的前一个序号,将当前滑动窗口的左端序号变更为所述第一数据包的序号的前一个序号。
32.根据权利要求27所述的装置,其特征在于,当N=1时,所述发送模块,还用于在所述接收模块接收接收端发送的第一丢失消息之前,根据滑动窗口向所述接收端发送数据包;
所述接收模块,还用于接收所述接收端发送的第三丢失消息,所述第三丢失消息用于指示未接收到数据包。
33.根据权利要求32所述的装置,其特征在于,所述发送模块,在根据所述第三丢失消息向所述接收端发送发送指示时,具体用于:向所述接收端发送第二ping包,所述第二ping包中包括当前滑动窗口的左端序号和右端序号;所述当前滑动窗品的左端序号和右端序号用于指示所述当前滑动窗口内的第一数据包已发送。
34.根据权利要求27-29、31-33任意一项所述的装置,其特征在于,还包括:
调整模块,用于在所述发送模块根据所述第一丢失消息,向所述接收端发送第N+1次发送的所述第一数据包之后,根据所述第一数据包的序号,调整当前滑动窗口;所述N+1为最大发送次数。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2016/099223 WO2018049652A1 (zh) | 2016-09-18 | 2016-09-18 | 数据重传方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108476097A CN108476097A (zh) | 2018-08-31 |
CN108476097B true CN108476097B (zh) | 2021-08-03 |
Family
ID=61618610
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680076291.XA Expired - Fee Related CN108476097B (zh) | 2016-09-18 | 2016-09-18 | 数据重传方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108476097B (zh) |
WO (1) | WO2018049652A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110649994B (zh) * | 2019-09-27 | 2022-03-22 | 北京奇艺世纪科技有限公司 | 数据传输控制方法及相关设备、存储介质 |
CN111641480B (zh) * | 2020-05-22 | 2023-08-25 | 广东小天才科技有限公司 | 一种tcp重传次数的控制方法及终端设备、存储介质 |
CN114040440B (zh) * | 2021-11-09 | 2022-06-28 | 北京泰利斯达科技有限公司 | 无线传输方法、装置、设备以及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101771518A (zh) * | 2008-12-29 | 2010-07-07 | 大唐移动通信设备有限公司 | 一种发送状态报告的方法、装置及系统 |
CN104301079A (zh) * | 2004-12-22 | 2015-01-21 | 艾利森电话股份有限公司 | 使用重复确认的数据流控制 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8634400B2 (en) * | 2005-09-15 | 2014-01-21 | Samsung Electronics Co., Ltd. | Method and apparatus for transmitting and receiving status report comprising received status of packet data in a mobile communication system |
CN101047484B (zh) * | 2006-06-21 | 2010-10-13 | 华为技术有限公司 | 一种传输层重传方法和系统 |
CN101800632A (zh) * | 2009-02-09 | 2010-08-11 | 中兴通讯股份有限公司 | 用户数据报协议传输模式下丢包补偿方法与装置 |
CN102111252B (zh) * | 2009-12-25 | 2014-03-19 | 中兴通讯股份有限公司南京分公司 | 基于混合自动重传请求的重传资源分配方法 |
CN102480346B (zh) * | 2010-11-26 | 2014-12-10 | 中国科学院声学研究所 | 一种网络数据可靠传输方法 |
CN102611537B (zh) * | 2011-01-25 | 2015-09-09 | 华为技术有限公司 | 一种数据包的重传方法及装置 |
CN103269260A (zh) * | 2013-06-03 | 2013-08-28 | 腾讯科技(深圳)有限公司 | 数据传输方法、数据接收端、数据发送端和数据传输系统 |
CN104518853B (zh) * | 2013-09-27 | 2018-04-17 | 北京新媒传信科技有限公司 | 一种数据重传的方法、接收端及系统 |
-
2016
- 2016-09-18 CN CN201680076291.XA patent/CN108476097B/zh not_active Expired - Fee Related
- 2016-09-18 WO PCT/CN2016/099223 patent/WO2018049652A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104301079A (zh) * | 2004-12-22 | 2015-01-21 | 艾利森电话股份有限公司 | 使用重复确认的数据流控制 |
CN101771518A (zh) * | 2008-12-29 | 2010-07-07 | 大唐移动通信设备有限公司 | 一种发送状态报告的方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2018049652A1 (zh) | 2018-03-22 |
CN108476097A (zh) | 2018-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108881970B (zh) | 用于实时视频流式传输系统的发射速率控制的方法和设备 | |
RU2682915C1 (ru) | Обработка harq-ack для непредусмотренных нисходящих подкадров | |
CN110476445B (zh) | 利用分离承载的分组数据汇聚协议窗口 | |
EP2119085B1 (en) | Enhanced error control communication systems and methods | |
CN108476097B (zh) | 数据重传方法和装置 | |
CN106210924B (zh) | 视频网络传输控制方法和系统 | |
CN110324256B (zh) | 一种流式数据传输控制方法 | |
CN111082898B (zh) | 一种报文处理方法和装置 | |
KR20090122962A (ko) | 재송요구 송신방법 및 수신측 장치 | |
EP3273632B1 (en) | A method and apparatus for unsolicited block acknowledgements | |
EP3654563A1 (en) | Transmission timeout system | |
US10524175B2 (en) | Data transmission method and network device | |
US10321356B2 (en) | System and method for performing retransmission of a packet | |
EP3319257B1 (en) | Lossless bearer reconfiguration from use of longer to shorter sequence number | |
US20220123869A1 (en) | Network equipment and method for delivering data packets | |
JP2013175850A (ja) | 通信装置および通信システム | |
EP3070866A1 (en) | Communication system, communication apparatus, data retransmission method, and data retransmission control method | |
CN108934044B (zh) | 数据包传输方法及设备 | |
US8942146B2 (en) | Signal transmission method and apparatus in wireless communication system | |
EP1253795A1 (en) | Data communication system and wireless communication device | |
WO2017168042A1 (en) | Optimized action at repeating arq poll | |
WO2018014795A1 (en) | Method and apparatus for packet transmission | |
JP4805072B2 (ja) | 通信システム | |
JP7286513B2 (ja) | 通信装置、通信装置の制御方法、及びプログラム | |
EP3389206B1 (en) | Multipath error correction |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210803 |
|
CF01 | Termination of patent right due to non-payment of annual fee |