CN115001630B - 数据传输方法、装置、设备以及存储介质 - Google Patents

数据传输方法、装置、设备以及存储介质 Download PDF

Info

Publication number
CN115001630B
CN115001630B CN202210565890.5A CN202210565890A CN115001630B CN 115001630 B CN115001630 B CN 115001630B CN 202210565890 A CN202210565890 A CN 202210565890A CN 115001630 B CN115001630 B CN 115001630B
Authority
CN
China
Prior art keywords
data
retransmission
original
error correction
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
Application number
CN202210565890.5A
Other languages
English (en)
Other versions
CN115001630A (zh
Inventor
柯于刚
杨建光
李明路
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202210565890.5A priority Critical patent/CN115001630B/zh
Publication of CN115001630A publication Critical patent/CN115001630A/zh
Application granted granted Critical
Publication of CN115001630B publication Critical patent/CN115001630B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements 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/1607Details of the supervisory signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/003Arrangements for allocating sub-channels of the transmission path
    • H04L5/0053Allocation of signaling, i.e. of overhead other than pilot signals
    • H04L5/0055Physical resource allocation for ACK/NACK
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L2001/125Arrangements for preventing errors in the return channel

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

本公开提供了一种数据传输方法、装置、设备以及存储介质,涉及人工智能领域,具体涉及云计算、视频处理、媒体云等技术领域,可应用于智能云场景。具体实现方案为:响应于接收到针对多个原始数据的肯定应答信号,确定多个原始数据中的第一重传数据;发送第一重传数据,并将第一重传数据储存至缓存区;响应于接收到针对多个原始数据的否定应答信号,根据否定应答信号,确定多个原始数据中的第二重传数据;发送第二重传数据,并将第二重传数据储存至缓存区;在确定缓存区中的重传数据满足预定条件的情况下,根据重传数据,生成目标纠错数据;以及发送目标纠错数据。

Description

数据传输方法、装置、设备以及存储介质
技术领域
本公开涉及人工智能领域,具体涉及云计算、视频处理、媒体云等技术领域,可应用于智能云场景。
背景技术
弱网是指数据传输质量较低或不稳定的网络。抗弱网技术可以用于在弱网环境下提高数据传输质量。抗弱网技术是实时音视频通信(RTC)应用的关键性技术,是低延迟、高流畅、全场景应用的基础保障。
发明内容
本公开提供了一种数据传输方法、装置、设备以及存储介质。
根据本公开的一方面,提供了一种数据传输方法,包括:响应于接收到针对多个原始数据的肯定应答信号,确定所述多个原始数据中的第一重传数据;发送所述第一重传数据,并将所述第一重传数据储存至缓存区;响应于接收到针对所述多个原始数据的否定应答信号,根据所述否定应答信号,确定所述多个原始数据中的第二重传数据;发送所述第二重传数据,并将所述第二重传数据储存至所述缓存区;在确定所述缓存区中的重传数据满足预定条件的情况下,根据所述重传数据,生成目标纠错数据;以及发送所述目标纠错数据。
根据本公开的另一方面,提供了一种数据传输方法,包括:响应于接收到原始数据,发送针对所述原始数据的肯定应答信号;确定至少一个待接收数据的等待接收时长;在所述等待接收时长超过第三时长阈值的情况下,将所述至少一个待接收数据分为至少一个第二数据分组,其中,每个所述第二数据分组包括至少一个待接收数据;针对所述至少一个第二数据分组中的每个第二数据分组,生成否定应答信号;发送所述否定应答信号;以及响应于接收到纠错数据,根据所述原始数据和所述纠错数据,恢复所述待接收数据。
根据本公开的另一方面,提供了一种数据传输装置,包括:第一确定模块,用于响应于接收到针对多个原始数据的肯定应答信号,确定所述多个原始数据中的第一重传数据;第一发送模块,用于发送所述第一重传数据,并将所述第一重传数据储存至缓存区;第二确定模块,用于响应于接收到针对所述多个原始数据的否定应答信号,根据所述否定应答信号,确定所述多个原始数据中的第二重传数据;第二发送模块,用于发送所述第二重传数据,并将所述第二重传数据储存至所述缓存区;第一生成模块,用于在确定所述缓存区中的重传数据满足预定条件的情况下,根据所述重传数据,生成目标纠错数据;以及第三发送模块,用于发送所述目标纠错数据。
根据本公开的另一方面,提供了一种数据传输装置,包括:第四发送模块,用于响应于接收到原始数据,发送针对所述原始数据的肯定应答信号;第三确定模块,用于确定至少一个待接收数据的等待接收时长;划分模块,用于在所述等待接收时长超过第三时长阈值的情况下,将所述至少一个待接收数据分为至少一个第二重传数据分组,其中,每个所述第二重传数据分组包括至少一个待接收数据;第二生成模块,用于针对所述至少一个第二重传数据分组中的每个第二重传数据分组,生成否定应答信号;第五发送模块,用于发送所述否定应答信号;以及恢复模块,用于响应于接收到纠错数据,根据所述原始数据和所述纠错数据,恢复所述待接收数据。
本公开的另一个方面提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开实施例所示的方法。
根据本公开实施例的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行本公开实施例所示的方法。
根据本公开实施例的另一方面,提供了一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现本公开实施例所示方法的步骤。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开实施例的可以应于数据传输方法和装置的应用场景示意图;
图2A示意性示出了根据本公开的实施例的数据传输方法的流程图;
图2B示意性示出了根据本公开另一实施例的数据传输方法的流程图;
图2C示意性示出了根据本公开另一实施例的数据传输方法的流程图;
图3示意性示出了根据本公开的实施例的应用于发送端的数据传输的示意图;
图4示意性示出了根据本公开的实施例的应用于发送端的数据传输的示意图;
图5示意性示出了根据本公开实施例的数据传输装置的框图;
图6示意性示出了根据本公开另一实施例的数据传输装置的框图;以及
图7示意性示出了可以用来实施本公开的实施例的示例电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
以下将结合图1对本公开提供的可以应于数据传输方法和装置的应用场景进行描述。
图1是根据本公开实施例的可以应于数据传输方法和装置的应用场景示意图。需要注意的是,图1所示仅为可以应用本公开实施例的应用场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,该应用场景100可以包括发送端101、接收端102和网络103。网络103用以在发送端101和接收端102之间提供通信链路的介质。网络103可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
发送端101和接收端102可以是具有网络通信功能的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机、台式计算机、服务器等等。发送端101和接收端102可以是同一种类的电子设备,也可以是不同种类的电子设备,本公开对此不作具体限制。
发送端101与接收端102可以通过网络103进行交互,以接收或发送消息等。
根据本公开的实施例,发送端101可以通过网络103向接收端102发送原始数据。其中,原始数据例如可以包括音视频数据等。接收端102在接收到原始数据后,可以针对接收到的原始数据生成肯定应答信号,并将肯定应答信号发送至发送端。其中,肯定应答信号可以用于表示接收端102已收到对应的原始数据。肯定应答信号例如可以包括ACK信号。
在实际应用中,网络103会出现数据传输质量较低或不稳定等情况,导致接收端102有部分原始数据未接收到。在这种情况下,接收端102可以针对未接收到的原始数据,生成否定应答信号,然后将否定应答信号发送至发送端。其中,否定应答信号可以用于表示接收端102未收到对应的原始数据。否定应答信号例如可以包括NACK信号。
根据本公开的实施例,发送端101可以在接收到针对所述多个原始数据的否定应答信号的情况下,根据所述否定应答信号,确定需要重传的原始数据,然后重新发送这些原始数据。
另外,发送端101也可以主动检测原始数据是否送达,在检测到原始数据未送达的情况下,重新发送该原始数据。例如,发送端101可以根据接收到的肯定应答信号,确定当前接收端102已收到的原始数据。然后确定已发送的原始数据中除已收到的原始数据之外的未决数据,计算当前时刻与未决数据的发送时刻之间的差值,如果差值大于时长阈值,则重新发送该未决数据。
根据本公开的实施例,发送端101还可以针对原始数据,生成对应的纠错数据,然后通过网络103向接收端102发送与原始数据对应的纠错数据。其中,纠错数据可以用于恢复原始数据,从而可以提高原始数据的传输质量。当接收端102检测到原始数据未接收到时,可以根据纠错数据来对该部分数据进行恢复。如果可以恢复,则不再需要向发送端101发送否定应答信号。如果无法恢复或未收到纠错数据,则向发送端101发送对应的否定应答信号。由此,可以减少发送端101进行重传的次数,从而提高数据传输效率。
根据本公开的实施例,在需要重传数据时,发送端101还可以生成与重传数据对应的纠错数据,并将纠错数据发送至接收端102。该纠错数据可以用于恢复对应的重传数据,从而可以提高重传数据的传输质量。例如,发送端101可以在发送重传数据时,将重传数据储存至所述缓存区。在确定所述缓存区中的目标数据满足预定条件的情况下,根据所述目标数据,生成目标纠错数据,然后发送所述目标纠错数据。由此,可以减少纠错数据的发送频率,减少对传输带宽的占用。
在本公开的技术方案中,所涉及的数据的收集、存储、使用、加工、传输、提供、公开和应用等处理,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。
在本公开的技术方案中,在获取或采集数据之前,均获取了用户的授权或同意。
以下将结合图2A~图2C对本公开提供的数据传输方法进行描述。
图2A示意性示出了根据本公开的实施例的数据传输方法的流程图。
如图2A所示,该数据传输方法200a包括在操作S210a,发送端向接收端发送多个原始数据。
根据本公开的实施例,原始数据例如可以包括音视频数据。原始数据也可以包括除音视频数据之外的其他数据,例如文本数据、图像数据等,本公开对原始数据的类型不作具体限制。
然后,在操作S220a,接收端响应于接收到原始数据,向发送端发送针对原始数据的肯定应答信号。
根据本公开的实施例,肯定应答信号可以用于表示接收端102已收到对应的原始数据。肯定应答信号例如可以包括该原始数据的数据标识。其中,数据标识例如可以包括序号等。
在操作S230a,发送端响应于接收到针对多个原始数据的肯定应答信号,确定多个原始数据中的第一重传数据。
根据本公开的实施例,第一重传数据可以包括多个原始数据中需要重传的数据。
根据本公开的实施例,发送端可以根据接收到的肯定应答信号,确定接收端已经收到的原始数据。相应地,发送端也可以确定未收到肯定应答信号的原始数据,作为第一重传数据。
在操作S240a,发送端向接收端发送第一重传数据,并将第一重传数据储存至缓存区。
根据本公开的实施例,缓存区可以用于在为数据生成纠错数据前,暂存数据。在发送第一重传数据时,可以将第一重传数据存储至缓存区,以便后续为第一重传数据生成对应的纠错数据。
图2B示意性示出了根据本公开另一实施例的数据传输方法的流程图。
如图2B所示,该数据传输方法200b还可以包括在操作S250b,接收端确定至少一个待接收数据的等待接收时长。
根据本公开的实施例,发送端可以将多个原始数据作为一个序列发送。每个原始数据可以包括同序列的数据总量。发送端在接收来自发送端的原始数据时,可以确定还有哪些原始数据未接收到。本实施例中,将这些未接收到的原始数据称为待接收数据。
根据本公开的实施例,例如可以将当前时刻减去第一次接收到序列中的原始数据的接收时刻的差作为等待接收时长。
在操作S260b,接收端在等待接收时长超过第三时长阈值的情况下,将至少一个待接收数据分为至少一个第二数据分组。其中,每个第二数据分组包括至少一个待接收数据。
根据本公开的实施例,第三时长阈值可以根据实际需要设置。
在操作S270b,接收端针对至少一个第二数据分组中的每个第二数据分组,生成否定应答信号。
根据本公开的实施例,否定应答信号可以用于表示接收端102未收到对应的待接收数据。否定应答信号例如可以包括对应第二数据分组中所有待接收数据的数据标识。
在操作S280b,接收端向发送端发送否定应答信号。
在操作S290b,发送端响应于接收到针对多个原始数据的否定应答信号,根据否定应答信号,确定多个原始数据中的第二重传数据。
根据本公开的实施例,第二重传数据可以包括多个原始数据中需要重传的数据。
根据本公开的实施例,例如可以根据否定应答信号中包含的数据标识,确定对应的第二重传数据。
在操作S2100b,发送端向接收端发送第二重传数据,并将第二重传数据储存至缓存区。
根据本公开的实施例,在发送第二重传数据时,可以将第二重传数据存储至缓存区,以便后续为第二重传数据生成对应的纠错数据。
图2C示意性示出了根据本公开另一实施例的数据传输方法的流程图。
如图2C所示,该数据传输方法200c还可以包括在操作S2110c,发送端在确定缓存区中的重传数据满足预定条件的情况下,根据重传数据,生成目标纠错数据。
根据本公开的实施例,预定条件例如库包括以下至少一个:缓存区中目标数据的数量大于数量阈值,以及目标数据在缓存区中的存储时长大于第一时长阈值。其中,数量阈值和第一时长阈值可以分别根据实际需要设置。
根据本公开的实施例,纠错数据例如可以包括前向纠错码(Forward ErrorCorrecttion,FEC)。例如可以根据XOR(异或)、Reed-Solomon(里德-所罗门)等算法来生成目标纠错数据。
在操作S2120c,发送端向接收端发送目标纠错数据。
根据本公开的实施例,通过将重传数据存储至缓存区,然后在重传数据满足预定条件的情况下,再生成对应的纠错数据,并向接收端发送,可以减少纠错数据的发送频率,减少对传输带宽的占用。
在操作S2130c,接收端响应于接收到接收纠错数据,根据原始数据和纠错数据,恢复待接收数据。
根据本公开的实施例,一方面,发送端针对否定应答请求所针对的原始数据,持续生成和发送纠错数据,从而在发送丢包时可以提升数据恢复率,另外也可以可以快速收敛重传次数,降低传输延迟。另一方面,发送端对于超时未确认的原始数据,主动重传并持续生成和发送纠错数据,该过程不依赖反向网络链路,可以提高数据到达率,确保纠错机制在弱网场景有效。
根据本公开的另一些实施例,发送端还可以根据多个原始数据的发送时刻,将多个原始数据划分为多个第一数据分组,每个第一数据分组包括至少一个原始数据。
基于此,例如可以确定多个原始数据中与肯定应答信号对应的对应数据,以及对应数据所属的目标第一数据分组。然后将对应数据标记为已到达。确定目标第一数据分组中未被标记为已到达的未决数据。接着在未决数据满足主动重传条件的情况下,确定未决数据作为第一重传数据。
根据本公开的实施例,发送端可以计算当前时刻与未决数据的发送时刻之间的差值,如果差值大于第二时长阈值,则满足主动重传条件。
根据本公开的实施例,通过分组检测未决数据是否满足重传条件,可以提升检测精度。
根据本公开另一些实施例,接收端可以响应于接收到重传数据,确定与所述重传数据对应的目标第二数据分组。根据所述重传数据,将第二数据分组中的对应数据标记为已收到。确定第二数据分组中未被标记为已收到的未决数据。然后在确定未决数据满足重传请求条件的情况下,发送针对所述未决数据的否定应答信号。如果未决数据满足重传请求条件,则表示该未决数据发生丢包。
根据本公开的实施例,例如可以确定针对第二数据集合的否定应答信号最近一次的发送时刻。计算当前时刻与发送时刻之间的差值,如果所述差值大于第二时长阈值,则满足重传请求条件。
针对待接收数据进行分组,以数据分组为单位来判断数据是否发生丢包。由此,可以提高对数据丢包的判断精度,提升重传效率。
根据本公开的另一些实施例,接收端可以针对每个第二重传数据分组,根据第二重传数据分组中每个待接收数据的标识,生成否定应答信号。
根据本公开的另一些实施例,例如可以获取丢包率,根据重传数据的数据量和丢包率,确定目标数据量。然后根据重传数据,生成目标数据量的目标纠错数据。
例如,在丢包率为20%的情况下,以生成的纠错数据的数量为1为例,重传数据的数量需要大于等于4,即目标数据量可以确定为4。再例如,在丢包率为10%的情况下,以生成的纠错数据的数量为1为例,重传数据的数量需要大于等于9,目标数据量可以确定为9。
根据本公开的实施例,例如可以周期性基于肯定应答信号和否定应答信号来统计丢包率。示例性地,本实施例中,丢包率=否定应答信号的数量/(肯定应答信号的数量+否定应答信号的数量)。
下面参考图3,结合具体实施例对上文所示的应用于发送端的数据传输方法做进一步说明。本领域技术人员可以理解,以下示例实施例仅用于理解本公开,本公开并不局限于此。
图3示意性示出了根据本公开的实施例的应用于发送端的数据传输的示意图。
在图3中示出了,发送端接收肯定应答信号,取出肯定应答信号中的数据标识。确定与数据标识对应的原始数据,即第一重传数据。对第一重传数据进行标记,将与数据标识对应的原始数据标记为已到达。
发送端接收否定应答信号,取出否定应答信号中的数据标识列表。确定对与数据标识列表中数据标识对应的原始数据,即第二重传数据。从原始数据缓存获取第二重传数据,然后重发第二重传数据。。并将第二重传数据纠错数据缓存区。
另外,定期读取数据标记,检查未被标记为已到达的未决数据是否达到需要主动重传条件,如果未决数据满足主动重传条件则从原始数据缓存中获取满足主动重传条件的未决数据,并将该未决数据写入纠错数据缓存区。
本实施例中,可以计算当前时刻与所述未决数据的发送时刻之间的差值,如果所述差值大于第二时长阈值,则满足第一重传条件。
发送端可以周期性基于肯定应答信号中的数据标识和否定应答信号中的数据标识统计丢包率,定期更新丢包率。
当检测到纠错数据缓存区接收到了新的重传数据,则判断纠错数据缓存区中的重传数据是否满足预定条件。满足预定条件后会生成纠错数据,并发送至接收端。本实施例中,预定条件可以包括:纠错数据缓存区中重传数据的数量大于数量阈值;或重传数据在缓存区中的存储时长大于第一时长阈值。示例性地,本实施例中,第一时长阈值例如可以为100ms。数量阈值可以基于丢包率确定的。如果一直达不到数量阈值,则判断存储时长大于第一时长阈值,若大于,则针对当前已有的重传数据生成纠错数据。
根据本公开的实施例,可以依据丢包率,计算出带宽冗余比例,用于生成纠错数据。然后通过网路收发模块发送纠错数据到接收端。示例性地,本实施例中,带宽冗余比例可以等于丢包率。
根据本公开的实施例,在发送端发送原始数据包时,依据丢包概率计算带宽冗余比例,并生成纠错数据,生成的纠错数据从概率上能保证接收端全部恢复出丢失的数据,并且能够降低重传次数,从而降低延迟。
下面参考图4,结合具体实施例对上文所示的数据传输方法做进一步说明。本领域技术人员可以理解,以下示例实施例仅用于理解本公开,本公开并不局限于此。
图4示意性示出了根据本公开的实施例的应用于发送端的数据传输的示意图。
图4示意性示出了根据本公开的实施例的数据传输示意图。
在图4中示出了,在发送端,用户发送原始数据至发送端,发送端可以为每个原始数据分配连续线性递增的序号(Serial Number,SN)作为数据标识,然后将原始数据写入原始数据缓存。从原始数据缓存获取原始数据并发送到接收端。同时,从原始数据缓存获取原始数据并发送至纠错数据缓存区。
在发送端,如果检测到纠错数据缓存区有数据,则依据丢包率,计算出带宽冗余比例,根据带宽冗余比例生成纠错数据。然后通过网路收发模块发送纠错数据到接收端。
在接收端,网络收发模块接收到数据,会判断是纠错数据还是原始数据。如果网络收发模块判断是纠错数据,则将纠错数据发送至纠错数据缓存区。如果网络收发模块判断是原始数据,则将原始数据发送至动态数据缓存区。示例性地,本实施例中,动态数据缓存具有数据去重功能,可以将原始数据去重后输出给用户。
在接收端,纠错数据缓存区中的纠错数据可以用于恢复数据。可以依赖于动态数据缓存区中的原始数据和对应的纠错数据进行数据恢复。实施例中,可以持续监视纠错数据缓存和动态数据两个缓存区,一旦判定出纠错数据所依赖的原始数据满足了可恢复数据包的条件,则根据纠错数据恢复出一部分数据,并发送至动态数据缓存区。
在接收端,可以监视纠错数据缓存去和动态数据缓存区,对原始数据和纠错数据进行分析,以连续确认收到或确定放弃的最大SN作为肯定应答信号信号中的SN,并确定是否出现数据丢失,如果出现数据丢失,则需要向发送端发送需要丢失数据所对应的SN列表。例如,一个完整的原始数据序列的SN编号包括1,2,3……9,序号为1-6的原始数据已收到,序号为7-8的原始数据未收到,则肯定应答信号中的SN设置为6。需要对方重传的SN列表为7-8,即否定应答信号中的SN为7-8。基于此,组合生成肯定应答信号和NACK信号,通过网络模块发送给发送端。示例性地,本实施例中,针对肯定应答信号可以至少50毫秒发送一次。
在发送端,处理否定应答信号模块接收到肯定应答信号,则表示有重传请求,取出需要重传的SN列表,通知原始数据缓存重发对应的原始数据。通知原始数据缓存区将原始数据与NACK中SN对应的重传原始数据,即序号7-8的原始数据,分别发送至接收端和纠错数据缓存区。检测到纠错数据缓存区接收到了新的重传数据,判断纠错数据缓存区中的重传数据是否满足预定条件。满足预定条件后会生成纠错数据,并发送至接收端。本实施例中,预定条件可以包括:(1)纠错数据缓存区中重传数据的数量大于数量阈值;或(2)重传数据在缓存区中的存储时长大于第一时长阈值,第一时长阈值例如可以为100ms。阈值可以基于丢包率确定的。如果一直达不到数量阈值,则判断存储时长大于第一时长阈值,若大于,则针对当前已有的重传数据生成纠错数据。
在发送端,处理肯定应答信号模块接收到肯定应答信号中SN,从原始数据缓存区读取最新的SN,检查肯定应答信号中的SN和最新SN之间的原始数据是否达到需要主动重传条件,满足主动重传条件则通知原始数据缓存重发原始数据。通知原始数据缓存将SN列表对应的原始数据进入纠错数据缓存区。例如,当前收到的肯定应答信号中的SN为6,当前已发送的原始数据的SN号为20,即最新SN,则判断当前时刻减去原始数据20的发送时刻是否大于RTT/2,如果大于,则重传原始数据7-20。其中,RTT(round-trip time)为往返时间。
在发送端,网络收发模块周期性基于肯定应答信号中的SN和否定应答信号中的SN统计丢包率,定期更新,用于生成纠错数据。
重传原始数据和纠错数据分别进入接收端的动态数据缓存区和纠错数据缓存区。纠错数据会被恢复进入动态数据缓存,和已有的数据进行编号的去重、排序,等待SN编号完整后输出。
根据本公开的实施例,发送方针对发送出去的数据,包括原始数据和重传数据,按照发送时间和时间周期分为多个组。例如可以按照每10ms分为1组。
发送方收到否定应答信号、肯定应答信号,查找到分组的SN记录,如果是否定应答信号,则表示数据丢失;如果是肯定应答信号则表示数据到达。检测同分组内其余处于未决状态的SN,判断这些SN是否满足超时条件,其中超时条件可以为:当前时刻减去分组最后一个SN的发送时刻的差值大于2*RTT,并且该分组内比该SN大的数据状态为确认收到或确认重发的数量大于3个。如此不依赖对未决SN的反馈包,可以快速推断出SN丢失。对于分组内超时SN,重传对应的数据,如此循环。
接收方定期统计检测数据是否超时时间t。其中,t始初为2倍RTT,后续动态计算得到。把超时时间t,即满足重传条件的若干个SN作为一个否定应答信号发送到发送方,否定应答信号中携带分组编号,并在接收方作为一个请求分组记录,例如记录发送否定应答信号的请求时间、否定应答信号的序号、否定应答信号中的SN列表等。接收方定期统计检测数据包超时时间,根据超时时间,确定数据包是否满足重传条件。将满足重传条件的数据包划分为一个分组。针对每个分组,根据满足重传条件的数据包的SN,确定否定应答信号。将否定应答信号发送至发送方。
发送方收到否定应答信号,依据否定应答信号中SN列表的顺序,依次重发重传数据,其中重传数据携带否定应答信号的序号、重传数据的SN号。
接收方接收到重传数据,依据其中的否定应答信号序号、数据的SN号查找分组记录,记录数据到达时间点。并检测该分组中的其它SN是否超时。其中,每个SN检测超时条件可以为当前时刻减去否定应答信号的发送时刻的差值大于2*RTT,并且该分组内接收到比该SN大的数据的数量大于3个。将所有分组的中,满足超时条件的SN,生成否定应答信号,并向发送方发送否定应答信号,如此循环。
以下将结合图5对本公开提供的数据传输装置进行描述。
图5示意性示出了根据本公开实施例的数据传输装置的框图。
如图5所示,数据传输装置500包括第一确定模块510、第一发送模块520、第二确定模块530、第一发送模块540、第一生成模块550和第三发送模块560。
第一确定模块510,用于响应于接收到针对多个原始数据的肯定应答信号,确定多个原始数据中的第一重传数据。
第一发送模块520,用于发送第一重传数据,并将第一重传数据储存至缓存区。
第二确定模块530,用于响应于接收到针对多个原始数据的否定应答信号,根据否定应答信号,确定多个原始数据中的第二重传数据。
第二发送模块540,用于发送第二重传数据,并将第二重传数据储存至缓存区。
第一生成模块550,用于在确定缓存区中的重传数据满足预定条件的情况下,根据重传数据,生成目标纠错数据。
第三发送模块560,用于发送目标纠错数据。
以下将结合图6对本公开提供的数据传输装置进行描述。
图6示意性示出了根据本公开另一实施例的数据传输装置的框图。
如图6所示,数据传输装置600包括第四发送模块610、第三确定模块620、划分模块630、第二生成模块640、第五发送模块650和恢复模块660。
第四发送模块610,用于响应于接收到原始数据,发送针对原始数据的肯定应答信号。
第三确定模块620,用于确定至少一个待接收数据的等待接收时长;
划分模块630,用于在等待接收时长超过第三时长阈值的情况下,将至少一个待接收数据分为至少一个第二重传数据分组,其中,每个第二重传数据分组包括至少一个待接收数据。
第二生成模块640,用于针对至少一个第二重传数据分组中的每个第二重传数据分组,生成否定应答信号。
第五发送模块650,用于发送否定应答信号。
恢复模块660,用于响应于接收到纠错数据,根据原始数据和纠错数据,恢复待接收数据。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图7示意性示出了可以用来实施本公开的实施例的示例电子设备700的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图7所示,设备700包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序,来执行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。计算单元701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如数据传输方法。例如,在一些实施例中,数据传输方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序加载到RAM 703并由计算单元701执行时,可以执行上文描述的数据传输方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据传输方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务(″Virtual Private Server″,或简称″VPS″)中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (9)

1.一种数据传输方法,包括:
根据多个原始数据的发送时刻,将所述多个原始数据划分为多个第一数据分组,每个第一数据分组包括至少一个原始数据;
响应于接收到针对多个原始数据的肯定应答信号,
确定所述多个原始数据中与所述肯定应答信号对应的对应数据,以及所述对应数据所属的目标第一数据分组;
将所述对应数据标记为已到达;
确定所述目标第一数据分组中未被标记为已到达的未决数据;
在所述未决数据满足主动重传条件的情况下,确定所述未决数据作为第一重传数据;
发送所述第一重传数据,并将所述第一重传数据储存至缓存区;
响应于接收到针对所述多个原始数据的否定应答信号,
获取所述否定应答信号中的数据标识;
确定所述多个原始数据中与所述数据标识对应的原始数据,作为第二重传数据;
发送所述第二重传数据,并将所述第二重传数据储存至所述缓存区;
在确定所述缓存区中的重传数据满足预定条件的情况下,根据所述重传数据,生成目标纠错数据;以及
发送所述目标纠错数据。
2. 根据权利要求1所述的方法,其中,所述预定条件包括以下至少一个:
所述缓存区中重传数据的数量大于数量阈值;以及
所述重传数据在所述缓存区中的存储时长大于第一时长阈值。
3.根据权利要求1或2所述的方法,还包括:
发送所述多个原始数据。
4.根据权利要求1所述的方法,其中,所述根据所述重传数据,生成目标纠错数据包,包括:
获取丢包率;
根据所述重传数据的数据量和所述丢包率,确定重传数据量;以及
根据所述重传数据,生成所述重传数据量的目标纠错数据。
5.一种数据传输方法,包括:
响应于接收到原始数据,发送针对所述原始数据的肯定应答信号;
确定至少一个待接收数据的等待接收时长;
在所述等待接收时长超过第三时长阈值的情况下,
将所述至少一个待接收数据分为至少一个第二数据分组,其中,每个所述第二数据分组包括至少一个待接收数据;
针对所述至少一个第二数据分组中的每个第二数据分组,根据所述第二数据分组中每个待接收数据的标识,生成否定应答信号;
发送所述否定应答信号;以及
响应于接收到纠错数据,根据所述原始数据和所述纠错数据,恢复所述待接收数据;
其中,所述方法还包括:
响应于接收到重传数据,确定与所述重传数据对应的目标第二数据分组;
根据所述重传数据,将所述第二数据分组中的对应数据标记为已收到;
确定所述第二数据分组中未被标记为已收到的未决数据;以及
在确定所述未决数据满足重传请求条件的情况下,发送针对所述未决数据的否定应答信号。
6.一种数据传输装置,包括:
第一确定模块,用于根据多个原始数据的发送时刻,将所述多个原始数据划分为多个第一数据分组,每个第一数据分组包括至少一个原始数据;响应于接收到针对多个原始数据的肯定应答信号,确定所述多个原始数据中与所述肯定应答信号对应的对应数据,以及所述对应数据所属的目标第一数据分组;将所述对应数据标记为已到达;确定所述目标第一数据分组中未被标记为已到达的未决数据;以及在所述未决数据满足主动重传条件的情况下,确定所述未决数据作为第一重传数据;
第一发送模块,用于发送所述第一重传数据,并将所述第一重传数据储存至缓存区;
第二确定模块,用于响应于接收到针对所述多个原始数据的否定应答信号,获取所述否定应答信号中的数据标识;确定所述多个原始数据中与所述数据标识对应的原始数据,作为第二重传数据;
第二发送模块,用于发送所述第二重传数据,并将所述第二重传数据储存至所述缓存区;
第一生成模块,用于在确定所述缓存区中的重传数据满足预定条件的情况下,根据所述重传数据,生成目标纠错数据;以及
第三发送模块,用于发送所述目标纠错数据。
7.一种数据传输装置,包括:
第四发送模块,用于响应于接收到原始数据,发送针对所述原始数据的肯定应答信号;
第三确定模块,用于确定至少一个待接收数据的等待接收时长;
划分模块,用于在所述等待接收时长超过第三时长阈值的情况下,将所述至少一个待接收数据分为至少一个第二数据分组,其中,每个所述第二数据分组包括至少一个待接收数据;
第二生成模块,用于针对所述至少一个第二数据分组中的每个第二数据分组,根据所述第二数据分组中每个待接收数据的标识,生成否定应答信号;
第五发送模块,用于发送所述否定应答信号;以及
恢复模块,用于响应于接收到纠错数据,根据所述原始数据和所述纠错数据,恢复所述待接收数据,
其中,所述发送模块,还用于响应于接收到重传数据,确定与所述重传数据对应的目标第二数据分组;根据所述重传数据,将所述第二数据分组中的对应数据标记为已收到;确定所述第二数据分组中未被标记为已收到的未决数据;以及在确定所述未决数据满足重传请求条件的情况下,发送针对所述未决数据的否定应答信号。
8. 一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-5中任一项所述的方法。
9.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-5中任一项所述的方法。
CN202210565890.5A 2022-05-20 2022-05-20 数据传输方法、装置、设备以及存储介质 Active CN115001630B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210565890.5A CN115001630B (zh) 2022-05-20 2022-05-20 数据传输方法、装置、设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210565890.5A CN115001630B (zh) 2022-05-20 2022-05-20 数据传输方法、装置、设备以及存储介质

Publications (2)

Publication Number Publication Date
CN115001630A CN115001630A (zh) 2022-09-02
CN115001630B true CN115001630B (zh) 2023-06-30

Family

ID=83028180

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210565890.5A Active CN115001630B (zh) 2022-05-20 2022-05-20 数据传输方法、装置、设备以及存储介质

Country Status (1)

Country Link
CN (1) CN115001630B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109412753A (zh) * 2018-10-25 2019-03-01 网易(杭州)网络有限公司 数据传输方法及装置、电子设备以及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107888342B (zh) * 2016-09-30 2019-10-25 瞬已网络科技(上海)有限公司 一种网络实时视频传输方法及装置
US11510236B2 (en) * 2018-10-04 2022-11-22 Asustek Computer Inc. Method and apparatus of requesting resource for sidelink retransmission in a wireless communication system
CN112399576A (zh) * 2019-08-16 2021-02-23 索尼公司 用于无线通信的电子设备和方法、计算机可读存储介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109412753A (zh) * 2018-10-25 2019-03-01 网易(杭州)网络有限公司 数据传输方法及装置、电子设备以及存储介质

Also Published As

Publication number Publication date
CN115001630A (zh) 2022-09-02

Similar Documents

Publication Publication Date Title
EP2978171B1 (en) Communication method, communication device, and communication program
US20160044527A1 (en) Systems and Methods for Data Transmission
CN114039703B (zh) 数据传输方法、装置、设备和介质
CN111371631B (zh) 一种心跳机制检测方法、终端设备和存储介质
CN109981385B (zh) 一种实现丢包检测的方法、装置和系统
CN109525376B (zh) 快速重传方法、装置及终端设备
CN113630465B (zh) 消息处理方法、装置、设备以及存储介质
EP4187882A1 (en) Data transmission method and apparatus, device, storage medium, and computer program product
US20240056224A1 (en) Dynamic management of packet loss
CN114710446B (zh) 数据传输方法、装置、电子设备和存储介质
CN114978433A (zh) 数据传输方法、装置、设备、存储介质及计算机程序产品
CN115001630B (zh) 数据传输方法、装置、设备以及存储介质
US10461892B2 (en) Low latency communications
WO2015085849A1 (zh) 一种网络设备拥塞避免的方法及网络设备
CN114401208B (zh) 数据传输方法、装置、电子设备和存储介质
CN112351049B (zh) 数据传输方法、装置、设备及存储介质
CN113301029A (zh) 数据发送方法、装置、设备以及存储介质
CN114039702A (zh) 数据传输方法、装置、设备和介质
WO2021212438A1 (zh) 数据传输方法、装置、系统、终端设备和存储介质
CN113259490A (zh) 基于udp传输协议的多级节点网络数据传输方法
US10742561B2 (en) Prevention of network retransmission timeout
JP2002261737A (ja) 送信データ消失検出システム
US11962517B2 (en) Communications method, apparatus, and system for recovering lost packets
CN113992304A (zh) 一种抗丢包率更新方法、装置、电子设备及存储介质
CN117675119A (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