CN109743143A - 数据的重传方法、装置和计算机可读存储介质 - Google Patents
数据的重传方法、装置和计算机可读存储介质 Download PDFInfo
- Publication number
- CN109743143A CN109743143A CN201811379816.4A CN201811379816A CN109743143A CN 109743143 A CN109743143 A CN 109743143A CN 201811379816 A CN201811379816 A CN 201811379816A CN 109743143 A CN109743143 A CN 109743143A
- Authority
- CN
- China
- Prior art keywords
- data
- receiving end
- serial number
- transmission
- core 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.)
- Granted
Links
Landscapes
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种数据的重传方法,数据的重传方法包括以下步骤:在接收到第一接收端发送的应答确认信息时,根据应答确认信息确定第一接收端已接收的数据的序号,并获取发送相同序号的应答确认消息的核心接收端的第一数量;在第一数量等于核心接收端的数量时,在高速缓存区中删除序号以及序号对应的数据;在接收到第二接收端发送的数据重传请求时,确定数据重传请求的类型;在数据重传请求为异步重传请求时,在持久化存储区中提取重传数据的序号对应的重传数据,并将重传数据传输至第二接收终端。本发明还公开一种数据的重传装置和计算机可读存储介质。本发明确保发送端能够将重传数据发送至接收端的同时,满足了接收端的时延要求。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种数据的重传方法、装置和计算机可读存储介质。
背景技术
在分布式环境中,节点之间需要通信,但是接收端可能由于网络层丢包、应用层丢包等各种原因丢失发送端发送的数据,因此在需要可靠传输数据的应用场景,需要有一个消息重传机制,保证在接收端丢失消息的时候,可以重传丢失的消息。
接收端使用的ACK(告知接收)模式,当某个接收端速度慢的时候,发送端缓存中积压大量的消息无法清理,最终导致缓存资源紧张,使得发送端向其他接收端发送信息时经常因为无法得到缓存而阻塞,也即使得发送端产生发送阻塞的问题。
而在接收端使用NACK(告知未接收)模式,接收端不主动发送确认消息到发送端,仅当接收端检测到消息丢失时,发送NACK消息到发送端,请求重传丢失的消息,这种方式,会使得发送端由于无法知道接收端是否接收到某个消息,所以有可能在缓存中清理掉接收端尚未收到的消息,造成消息永久丢失,无法重传,对于不能容忍消息丢失的高可靠应用这种方法无法满足要求。
对于上述发送端无法将数据重传至接收端的问题,发送端将数据存储在高速缓存区以及持久化存储区,使得在缓存区域中的数据删除后,从持久化存储区中提取数据重传至接收端,但这样方式会使得数据重传的时延较大,也即数据重传方法无法兼顾数据重传的时延较大以及发送端无法向接收端重传数据的问题。
发明内容
本发明的主要目的在于提供一种数据的重传方法、装置和计算机可读存储介质,旨在解决数据重传方法无法兼顾数据重传的时延较大以及发送端无法向接收端重传数据的问题。
为实现上述目的,本发明提供的一种数据的重传方法,所述数据的重传方法包括以下步骤:
在接收到第一接收端发送的应答确认信息时,根据所述应答确认信息确定所述第一接收端已接收的数据的序号,并获取发送相同序号的应答确认消息的核心接收端的第一数量,其中,接收端包括核心接收端以及非核心接收端,所述核心接收端具有时延要求;
在所述第一数量等于所述核心接收端的数量时,在高速缓存区中删除所述序号以及所述序号对应的数据;
在接收到第二接收端发送的数据重传请求时,确定所述数据重传请求的类型;
在所述数据重传请求为异步重传请求时,在持久化存储区中提取所述重传数据的序号对应的重传数据,并将所述重传数据传输至所述第二接收终端,其中,所述第二接收端接收到所述重传失败信息时,向所述发送端发送异步重传请求。
在一实施例中,所述获取发送相同序号的应答确认消息的核心接收端的第一数量的步骤之后,还包括:
在所述第一数量小于所述核心接收端的数量时,获取当前的网络传输信息,其中,所述网络传输信息包括带宽余量及/或数据传输速率;
根据网络传输信息判断当前的网络状况是否良好;
在当前的网络状况差时,判断所述第一数量是否大于或等于第二数量,其中,所述第二数量小于所述核心接收端的数量;
在所述第一数量大于或等于第二数量时,执行所述在高速缓存区中删除所述序号以及所述序号对应的数据的步骤。
在一实施例中,所述获取发送相同序号的应答确认消息的核心接收端的第一数量的步骤之后,还包括:
在所述第一数量等于所述核心接收端的数量时,确定当前的网络传输信息,其中,所述网络传输信息包括带宽余量以及数据传输量;
根据网络传输信息判断当前的网络状况是否良好;
在当前的网络状况良好时,获取发送相同序号的应答确认消息的非核心接收端的第三数量,以判断所述第三数量是否大于或等于第四数量,其中,所述第四数量小于或等于所述非核心接收端的数量;
在所述第三数量大于或等于第四数量时,执行所述在高速缓存区中删除所述序号以及所述序号对应的数据的步骤。
在一实施例中,所述获取发送同一所述序号的应答确认信息的核心接收端的第一数量的步骤之后,还包括:
确定所述高速缓存区域的剩余存储空间;
在所述剩余存储空间的存储量小于预设存储量时,执行所述在高速缓存区中删除所述序号以及所述序号对应的数据的步骤。
在一实施例中,所述确定所述数据重传请求的类型的步骤之后,还包括:
在所述数据重传请求为NACK重传请求时,在所述高速缓存区中提取所述重传数据的序号对应的重传数据,并将所述重传数据传输至所述第二接收终端,其中,所述第二接收端在检测未接收数据对应的序号在当前序号范围内时,生成所述NACK重传请求。
在一实施例中,所述确定所述数据重传请求的类型的步骤之后,还包括:
在所述数据重传请求为NACK重传请求时,根据所述数据重传请求确定重传数据的序号,以判断所述重传数据的序号是否在当前序号范围内;
在所述重传数据的序号在当前序号范围内时,执行所述在所述高速缓存区中提取所述重传数据的序号对应的重传数据的步骤。
在一实施例中,所述判断所述重传数据的序号是否在当前序号范围内的步骤之后,还包括:
在所述重传数据的序号未在当前数据传输范围内时,向所述第二接收端反馈重传失败的信息,其中,所述第二接收端接收到所述重传失败信息时,向所述发送端发送异步重传请求;
接收所述第二接收端发送的异步重传请求,在所述持久化存储区中提取所述重传数据的序号对应的重传数据,以将所述重传数据传输至所述第二接收终端。
在一实施例中,所述获取发送相同序号的应答确认消息的核心接收端的第一数量的步骤包括:
确定含有相同序号的各个待处理应答确认消息;
获取各个所述待处理应答消息对应的接收端的设备标识;
根据各个所述设备标识确定核心接收端的第一数量。
为实现上述目的,本发明还提供一种数据的重传装置,所述数据的重传装置包括处理器、存储器和存储在所述存储器上并可在所述处理器上运行的数据的重传程序,所述数据的重传程序被所述处理器执行时实现如上所述的数据的重传方法的各个步骤。
为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有数据的重传程序,所述数据的重传程序被所述处理器执行时实现如上所述的数据的重传方法的各个步骤。
本发明提供的数据的重传方法、装置和计算机可读存储介质,在接收到第一接收端发送的应答确认信息时,根据应答确认信息确定第一接收端以接收的数据的序号,以此获取发送相同序号的应答确认消息的核心接收端的第一数量,在第一数量等于核心接收端的数量时,在高速缓存区将序号以及序号对应的数据删除,在接收到第二接收端发送的数据重传请求时,若数据重传请求为异步重传请求时,在持久化存储区中提取所述重传数据的序号对应的重传数据,并将所述重传数据传输至所述第二接收终端;因接收端分为核心接收端以及非核心接收端,而核心接收端对时延具有一定的要求,由此根据核心接收端设置高速缓存区域的数据清理条件,避免出现高速缓存区数据量过多导致数据重传的时延高的情况,满足了核心接收端的时延要求,同时,持久化存储区存储有高速缓存区删除的数据,确保发送端能够将数据重传至接收端,数据重传的可靠性高。
附图说明
图1为本发明实施例涉及的数据的重传装置硬件结构示意图;
图2为本发明数据的重传方法第一实施例的流程示意图;
图3为图2中步骤S10的细化流程示意图;
图4为本发明数据的重传方法第二实施例的流程示意图;
图5为本发明数据的重传方法第二实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:在接收到第一接收端发送的应答确认信息时,根据所述应答确认信息确定所述第一接收端已接收的数据的序号,并获取发送相同序号的应答确认消息的核心接收端的第一数量,其中,接收端包括核心接收端以及非核心接收端,所述核心接收端具有时延要求;在所述第一数量等于所述核心接收端的数量时,在高速缓存区中删除所述序号以及所述序号对应的数据;在接收到第二接收端发送的数据重传请求时,确定所述数据重传请求的类型;在所述数据重传请求为异步重传请求时,在持久化存储区中提取所述重传数据的序号对应的重传数据,并将所述重传数据传输至所述第二接收终端,其中,所述第二接收端接收到所述重传失败信息时,向所述发送端发送异步重传请求。
由于接收端分为核心接收端以及非核心接收端,而核心接收端对时延具有一定的要求,由此根据核心接收端设置高速缓存区域的数据清理条件,避免出现高速缓存区数据量过多导致数据重传的时延高的情况,满足了核心接收端的时延要求,同时,持久化存储区存储有高速缓存区删除的数据,确保发送端能够将数据重传至接收端,数据重传的可靠性高。
作为一种实现方案,数据的重传装置可以如图1所示。
本发明实施例方案涉及的是数据的重传装置,数据的重传装置包括:处理器101,例如CPU,存储器102,通信总线103。其中,通信总线103用于实现这些组件之间的连接通信。
存储器102可以是高速RAM存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。如图1所示,作为一种计算机存储介质的存储器102中可以包括数据的重传程序;而处理器101可以用于调用存储器102中存储的数据的重传程序,并执行以下操作:
在接收到第一接收端发送的应答确认信息时,根据所述应答确认信息确定所述第一接收端已接收的数据的序号,并获取发送相同序号的应答确认消息的核心接收端的第一数量,其中,接收端包括核心接收端以及非核心接收端,所述核心接收端具有时延要求;
在所述第一数量等于所述核心接收端的数量时,在高速缓存区中删除所述序号以及所述序号对应的数据;
在接收到第二接收端发送的数据重传请求时,确定所述数据重传请求的类型;
在所述数据重传请求为异步重传请求时,在持久化存储区中提取所述重传数据的序号对应的重传数据,并将所述重传数据传输至所述第二接收终端,其中,所述第二接收端接收到所述重传失败信息时,向所述发送端发送异步重传请求。
在一实施例中,处理器101可以用于调用存储器102中存储的数据的重传程序,并执行以下操作:
在所述第一数量小于所述核心接收端的数量时,获取当前的网络传输信息,其中,所述网络传输信息包括带宽余量及/或数据传输速率;
根据网络传输信息判断当前的网络状况是否良好;
在当前的网络状况差时,判断所述第一数量是否大于或等于第二数量,其中,所述第二数量小于所述核心接收端的数量;
在所述第一数量大于或等于第二数量时,执行所述在高速缓存区中删除所述序号以及所述序号对应的数据的步骤。
在一实施例中,处理器101可以用于调用存储器102中存储的数据的重传程序,并执行以下操作:
在所述第一数量等于所述核心接收端的数量时,确定当前的网络传输信息,其中,所述网络传输信息包括带宽余量以及数据传输量;
根据网络传输信息判断当前的网络状况是否良好;
在当前的网络状况良好时,获取发送相同序号的应答确认消息的非核心接收端的第三数量,以判断所述第三数量是否大于或等于第四数量,其中,所述第四数量小于或等于所述非核心接收端的数量;
在所述第三数量大于或等于第四数量时,执行所述在高速缓存区中删除所述序号以及所述序号对应的数据的步骤。
在一实施例中,处理器101可以用于调用存储器102中存储的数据的重传程序,并执行以下操作:
确定所述高速缓存区域的剩余存储空间;
在所述剩余存储空间的存储量小于预设存储量时,执行所述在高速缓存区中删除所述序号以及所述序号对应的数据的步骤。
在一实施例中,处理器101可以用于调用存储器102中存储的数据的重传程序,并执行以下操作:
在所述数据重传请求为NACK重传请求时,在所述高速缓存区中提取所述重传数据的序号对应的重传数据,并将所述重传数据传输至所述第二接收终端,其中,所述第二接收端在检测未接收数据对应的序号在当前序号范围内时,生成所述NACK重传请求。
在一实施例中,处理器101可以用于调用存储器102中存储的数据的重传程序,并执行以下操作:
在所述数据重传请求为NACK重传请求时,根据所述数据重传请求确定重传数据的序号,以判断所述重传数据的序号是否在当前序号范围内;
在所述重传数据的序号在当前序号范围内时,执行所述在所述高速缓存区中提取所述重传数据的序号对应的重传数据的步骤。
在一实施例中,处理器101可以用于调用存储器102中存储的数据的重传程序,并执行以下操作:
在所述重传数据的序号未在当前数据传输范围内时,向所述第二接收端反馈重传失败的信息,其中,所述第二接收端接收到所述重传失败信息时,向所述发送端发送异步重传请求;
接收所述第二接收端发送的异步重传请求,在所述持久化存储区中提取所述重传数据的序号对应的重传数据,以将所述重传数据传输至所述第二接收终端。
在一实施例中,处理器101可以用于调用存储器102中存储的数据的重传程序,并执行以下操作:
确定含有相同序号的各个待处理应答确认消息;
获取各个所述待处理应答消息对应的接收端的设备标识;
根据各个所述设备标识确定核心接收端的第一数量。
本实施例根据上述方案,在接收到第一接收端发送的应答确认信息时,根据应答确认信息确定第一接收端以接收的数据的序号,以此获取发送相同序号的应答确认消息的核心接收端的第一数量,在第一数量等于核心接收端的数量时,在高速缓存区将序号以及序号对应的数据删除,在接收到第二接收端发送的数据重传请求时,若数据重传请求为异步重传请求时,在持久化存储区中提取所述重传数据的序号对应的重传数据,并将所述重传数据传输至所述第二接收终端;因接收端分为核心接收端以及非核心接收端,而核心接收端对时延具有一定的要求,由此根据核心接收端设置高速缓存区域的数据清理条件,避免出现高速缓存区数据量过多导致数据重传的时延高的情况,满足了核心接收端的时延要求,同时,持久化存储区存储有高速缓存区删除的数据,确保发送端能够将数据重传至接收端,数据重传的可靠性高。
基于上述数据的重传装置的硬件构架,提出本发明数据的重传方法的实施例。
参照图2,图2为本发明数据的重传方法的第一实施例,所述数据的重传方法包括以下步骤:
步骤S10,在接收到第一接收端发送的应答确认信息时,根据所述应答确认信息确定所述第一接收端已接收的数据的序号,并获取发送相同序号的应答确认消息的核心接收端的第一数量,其中,接收端包括核心接收端以及非核心接收端,所述核心接收端具有时延要求;
在本发明中,执行主体为数据的重传装置,也即发送端。发送端会向多个接收端发送数据,发送端把待发送的数据编号,一个数据包编号唯一的序号,并把各个待发送的数据以及各个待发送的数据对应的序号存储在高速缓存区域以及持久化存储区中,持久化存储区指的是数据永久存储区域,持久化存储区不会主动删除存储的数据。
一种的数据的编号方法是整数连续递增编号,比如,将A、B、C、D四个依次发送的数据包依次编号6、7、8、9,从而得到序号范围,序号范围称为“发送窗口PW”,也即高速缓存区以及持久化存储区中的序号为6到11,因此发送窗口PW为[6,9]。
当然,可采用断续的编号方法,将各个待发送的数据包的序号放入一个集合中,该集合即为数据传输序号集合,每一个待发送数据以及已发送数据包具有唯一的序号,序号不可重复,序号还可以是字母、文字、符号以及数字中任意组合。
在本发明中,接收端分为核心接收端以及非核心接收端,核心接收端具有对数据重传的时延要求,核心接收端可由用户定义,例如,可将数据重传要求的时延在0.03ms以下的接收端定义为核心接收端。用户可以通过对接收端的设备标识进行设置以将接收端定义为核心接收端,也即发送端可以根据接收端的设备标识确定该接收端是否为核心接收端。
接收端(第一接收端)接收完发送端发送一个数据包时,会向发送端发送ACK信息,ACK即为应答确认消息,ACK信息中包括该数据包的序号,同时,ACK信息携带有第一接收端的设备标识;发送端根据第一接收端发送的ACK信息,得到第一接收端已接收的数据对应的序号,并获取发送相同序号的应答确认消息的核心接收端的第一数量,具体的,请参照图3,也即步骤S10包括:
步骤S11,确定含有相同序号的各个待处理应答确认消息;
步骤S12,获取各个所述待处理应答消息对应的接收端的设备标识;
步骤S13,根据各个所述设备标识确定核心接收端的第一数量;
假设ACK信息中的数据的序号为5,那么,发送端获取含有序号为5的各个ACK消息,由各个ACK消息得到各个接收端的设备标识,核心接收端的设备标识与非核心接收端的设备标识不同,比如,设备标识中以S开头的字母为核心接收端,由此,可以根据各个设备标识中确定核心接收端的第一数量。
步骤S20,在所述第一数量等于所述核心接收端的数量时,在高速缓存区中删除所述序号以及所述序号对应的数据;
在当第一数量等于核心接收端的数量时,即表明所有的核心接收端都已接收完同一个数据包,此时,在高速缓存区中将该数据包以及数据包对应的序号删除,核心接收端的数量即为核心接收端的总数量。
进一步的,由于接收端分为核心接收端以及非核心接收端,虽然所有的核心接收端全部接收了相同的数据包,但存在非核心接收端未接收到该数据包,也即非核心接收端存在该数据包丢失的情况;基于这种情况,在核心接收端都已接收完同一个数据包,且高速缓存区中的剩余存储空间的存储量较大时,不会删除该数据包以及数据包对应的序号,使得发送端能够在高速缓存区将数据包重传至非核心接收端;当然,在核心接收端都已接收完同一个数据包,且高速缓存区中的剩余存储空间的存储量较小时,则需删除该数据包,使得高速缓存区腾出空间存储下一批发送的数据包以及数据包对应的序号,从而满足核心接收端的时延要求;需要说明的是,在当高速缓存区中的剩余存储空间的存储量小于预设存储量时,则判定高速缓存区中的剩余存储空间的存储量较小。
步骤S30,在接收到第二接收端发送的数据重传请求时,确定所述数据重传请求的类型;
步骤S40,在所述数据重传请求为异步重传请求时,在持久化存储区中提取所述重传数据的序号对应的重传数据,并将所述重传数据传输至所述第二接收终端,其中,所述第二接收端接收到所述重传失败信息时,向所述发送端发送异步重传请求;
接收端会接收发送端发送的数据包以及序号范围,接收端可以根据序号范围检测是否有数据未接收,比如,序号范围为[6,9],接收端未接收到序号为5的数据,但序号为5的数据并未在当前的序号范围[6,9]中,且发送端的高速缓存区已将序号为5的数据删除(序号为5的数据为上一批发送的数据);对此,接收端生成含有序号5的异步重传请求,并将异步重传请求发送至发送端,发送端在识别该请求为异步重传请求后,则在持久化存储区将序号为5的重传数据提取,并发送至接收端。
而在当接收端未接收到的序号为8的数据时,序号8在当前的序号范围[6,9]内,此时,接收端生成含有序号8的NACK重传请求,也即告知未接收重传请求,但是发送端中的高速缓存区有可能将序号为8以及8对应的数据删除;对此,发送端在接收到第二接收端(第二接收端可与第一接收端相同)发送的NACK信息时,根据NACK请求来获取重传数据的序号,并判断该序号是否在当前序号范围内,若在,则表明该序号对应的重传数据未被高速缓存区删除,此时,在所述高速缓存区中提取所述重传数据的序号对应的重传数据,并将所述重传数据传输至所述第二接收终端;若该序号不在当前序号范围内时,向第二接收端反馈重传失败的信息,其中,第二接收端接收到重传失败信息时,向发送端发送异步重传请求;接收第二接收端发送的异步重传请求,在持久化存储区中提取重传数据的序号对应的重传数据,以将重传数据传输至第二接收终端。
在本实施例提供的技术方案中,在接收到第一接收端发送的应答确认信息时,根据应答确认信息确定第一接收端以接收的数据的序号,以此获取发送相同序号的应答确认消息的核心接收端的第一数量,在第一数量等于核心接收端的数量时,在高速缓存区将序号以及序号对应的数据删除,在接收到第二接收端发送的数据重传请求时,若数据重传请求为异步重传请求时,在持久化存储区中提取所述重传数据的序号对应的重传数据,并将所述重传数据传输至所述第二接收终端;因接收端分为核心接收端以及非核心接收端,而核心接收端对时延具有一定的要求,由此根据核心接收端设置高速缓存区域的数据清理条件,避免出现高速缓存区数据量过多导致数据重传的时延高的情况,满足了核心接收端的时延要求,同时,持久化存储区存储有高速缓存区删除的数据,确保发送端能够将数据重传至接收端,数据重传的可靠性高。
参照图4,图4为本发明数据的重传方法的第二实施例,基于第一实施例,所述步骤S10之后,还包括:
步骤S50,在所述第一数量小于所述核心接收端的数量时,获取当前的网络传输信息,其中,所述网络传输信息包括带宽余量及/或数据传输速率;
步骤S60,根据网络传输信息判断当前的网络状况是否良好;
步骤S70,在当前的网络状况差时,判断所述第一数量是否大于或等于第二数量,其中,所述第二数量小于所述核心接收端的数量;
步骤S80,在所述第一数量大于或等于第二数量时,执行所述在高速缓存区中删除所述序号以及所述序号对应的数据的步骤。
在当前网状况不好时,高速缓存区中数据的清理条件为在发送端接收部分的核心接收端的同一序号的ACK信息,例如,有5个核心接收端,设定发送端接收3个核心接收端发送的同一序号的ACK信息时,将高速缓存区域中该序号对应的数据包删除;可以理解的是,在本实施例中,装置根据当前的网络状况来更改高速缓存区中默认的数据清理条件(默认的数据清理条件为:发送端接收全部的核心接收端的同一序号的ACK信息)。
衡量当前状态的好坏,可以根据网络传输信息中的带宽余量、信号强度、数据传输速度等信息判断,例如,若带宽余量小于预设带宽余量,则判定当前的网络状态差,若数据传输速度小于预设传输速度,则判定当前的网络状态差。
另外,还可以根据发送端向接收端传输数据,到发送端接收该接收端发送的关于该数据的ACK信息之间的间隔时长,来判断网络状况是否良好,若是间隔时长小于预设间隔时长,则表明当前的网络状况良好。
此外,还可以根据发送端在发送的数据包的序号,与发送端接收接收端的ACK信息中数据包的序号之间的落差,来判断网络状况是否良好,具体的,在接收到接收端反馈的ACK信息时,获取ACK信息中数据包序号(第一序号),再确定发送端当前发送的数据包的序号(第二序号),第二序号减去第一序号即为落差值,在落差值大于或等于设定落差值时,则判定网络状况差,若是落差值小于设定落差值时,则判定网络状况好。
以下进行举例说明:发送端接收的ACK信息中的数据包序号为50,而发送端当前发送到序号为200的数据包(发送端将各个数据包进行从小到大的连续编号),落差值为150,而设定落差值为100,150大于100,此时,判定网络状况差。对此,在发送同一序号的核心接收端的第一数量小于核心接收端的总数量时,获取当前的网络传输信息,在当前的网络状况差时,判断第一数量是否大于或等于第二数量,第二数量小于核心接收端的数量,在第一数量大于或等于第二数量时,在高速缓存区中删除序号以及序号对应的数据。
在本实施例提供的技术方案中,发送端根据当前的网络状态来调整高速缓存区中数据的清理条件,也即发送端能够结合当前的网络环境合理的删除高速缓存区的数据,发送端的智能化程度高。
参照图5,图5为本发明数据的重传方法的第三实施例,基于第一实施例,所述步骤S10之后,还包括:
步骤S90,在所述第一数量等于所述核心接收端的数量时,确定当前的网络传输信息,其中,所述网络传输信息包括带宽余量以及数据传输量;
步骤S100,根据网络传输信息判断当前的网络状况是否良好;
步骤S110,在当前的网络状况良好时,获取发送相同序号的应答确认消息的非核心接收端的第三数量,以判断所述第三数量是否大于或等于第四数量,其中,所述第四数量小于或等于所述非核心接收端的数量;
步骤S120,在所述第三数量大于或等于第四数量时,执行所述在高速缓存区中删除所述序号以及所述序号对应的数据的步骤;
在当前网状况良好时,高速缓存区中数据的清理条件为在发送端接收全部的核心接收端的同一序号的ACK信息以及部分非核心接收端的同一序号的ACK信息,例如,有5个核心接收端以及5个非核心接收端,设定发送端接收3个非核心接收端以及5个核心接收端发送的同一序号的ACK信息时,将高速缓存区域中该序号对应的数据包删除,在本实施例中,装置根据当前的网络状况来更改高速缓存区中默认的数据清理条件(默认的数据清理条件为:发送端接收全部的核心接收端的同一序号的ACK信息)。
衡量当前状态的好坏,可以根据网络传输信息中的带宽余量、信号强度、数据传输速度等信息判断,例如,若带宽余量大于预设带宽余量,则判定当前的网络状态良好,若数据传输速度大于预设传输速度,则判定当前的网络状态良好。
另外,还可以根据发送端向接收端传输数据,到发送端接收该接收端发送的关于该数据的ACK信息之间的间隔时长,来判断网络状况是否良好,若是间隔时长小于预设间隔时长,则表明当前的网络状况良好。
此外,还可以根据发送端在发送的数据包的序号,与发送端接收接收端的ACK信息中数据包的序号之间的落差,来判断网络状况是否良好,具体的,在接收到接收端反馈的ACK信息时,获取ACK信息中数据包序号(第一序号),再确定发送端当前发送的数据包的序号(第二序号),第二序号减去第一序号即为落差值,在落差值大于或等于设定落差值时,则判定网络状况差,若是落差值小于设定落差值时,则判定网络状况好。
以下进行举例说明:发送端接收的ACK信息中的数据包序号为50,而发送端当前发送到序号为200的数据包(发送端将各个数据包进行从小到大的连续编号),落差值为150,而设定落差值为100,150大于100,此时,判定网络状况差。对此,在发送同一序号的核心接收端的第一数量等于核心接收端的总数量时,确定当前的网络传输信息以,根据网络传输信息判断当前的网络状况是否良好,在当前的网络状况良好时,获取发送相同序号的应答确认消息的非核心接收端的第三数量,以判断所述第三数量是否大于或等于第四数量,,第四数量小于或等于非核心接收端的总数量,在第三数量大于或等于第四数量时,在高速缓存区中删除序号以及序号对应的数据。
在本实施例提供的技术方案中,发送端根据当前的网络状态来调整高速缓存区中数据的清理条件,也即发送端能够结合当前的网络环境合理的删除高速缓存区的数据,发送端的智能化程度高。
本发明还提供一种数据的重传装置,所述数据的重传装置包括处理器、存储器和存储在所述存储器上并可在所述处理器上运行的数据的重传程序,所述数据的重传程序被所述处理器执行时实现如上实施例所述的数据的重传方法的各个步骤。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有数据的重传程序,所述数据的重传程序被所述处理器执行时实现如上所述的数据的重传方法的各个步骤。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种数据的重传方法,其特征在于,所述数据的重传方法包括以下步骤:
在接收到第一接收端发送的应答确认信息时,根据所述应答确认信息确定所述第一接收端已接收的数据的序号,并获取发送相同序号的应答确认消息的核心接收端的第一数量,其中,接收端包括核心接收端以及非核心接收端,所述核心接收端具有时延要求;
在所述第一数量等于所述核心接收端的数量时,在高速缓存区中删除所述序号以及所述序号对应的数据;
在接收到第二接收端发送的数据重传请求时,确定所述数据重传请求的类型;
在所述数据重传请求为异步重传请求时,在持久化存储区中提取所述重传数据的序号对应的重传数据,并将所述重传数据传输至所述第二接收终端,其中,所述第二接收端接收到所述重传失败信息时,向所述发送端发送异步重传请求。
2.如权利要求1所述的数据的重传方法,其特征在于,所述获取发送相同序号的应答确认消息的核心接收端的第一数量的步骤之后,还包括:
在所述第一数量小于所述核心接收端的数量时,获取当前的网络传输信息,其中,所述网络传输信息包括带宽余量及/或数据传输速率;
根据网络传输信息判断当前的网络状况是否良好;
在当前的网络状况差时,判断所述第一数量是否大于或等于第二数量,其中,所述第二数量小于所述核心接收端的数量;
在所述第一数量大于或等于第二数量时,执行所述在高速缓存区中删除所述序号以及所述序号对应的数据的步骤。
3.如权利要求1所述的数据的重传方法,其特征在于,所述获取发送相同序号的应答确认消息的核心接收端的第一数量的步骤之后,还包括:
在所述第一数量等于所述核心接收端的数量时,确定当前的网络传输信息,其中,所述网络传输信息包括带宽余量以及数据传输量;
根据网络传输信息判断当前的网络状况是否良好;
在当前的网络状况良好时,获取发送相同序号的应答确认消息的非核心接收端的第三数量,以判断所述第三数量是否大于或等于第四数量,其中,所述第四数量小于或等于所述非核心接收端的数量;
在所述第三数量大于或等于第四数量时,执行所述在高速缓存区中删除所述序号以及所述序号对应的数据的步骤。
4.如权利要求1所述的数据的重传方法,其特征在于,所述获取发送同一所述序号的应答确认信息的核心接收端的第一数量的步骤之后,还包括:
确定所述高速缓存区域的剩余存储空间;
在所述剩余存储空间的存储量小于预设存储量时,执行所述在高速缓存区中删除所述序号以及所述序号对应的数据的步骤。
5.如权利要求1-4任一项所述的数据的重传方法,其特征在于,所述确定所述数据重传请求的类型的步骤之后,还包括:
在所述数据重传请求为NACK重传请求时,在所述高速缓存区中提取所述重传数据的序号对应的重传数据,并将所述重传数据传输至所述第二接收终端,其中,所述第二接收端在检测未接收数据对应的序号在当前序号范围内时,生成所述NACK重传请求。
6.如权利要求5所述的数据的重传方法,其特征在于,所述确定所述数据重传请求的类型的步骤之后,还包括:
在所述数据重传请求为NACK重传请求时,根据所述数据重传请求确定重传数据的序号,以判断所述重传数据的序号是否在当前序号范围内;
在所述重传数据的序号在当前序号范围内时,执行所述在所述高速缓存区中提取所述重传数据的序号对应的重传数据的步骤。
7.如权利要求6所述的数据的重传方法,其特征在于,所述判断所述重传数据的序号是否在当前序号范围内的步骤之后,还包括:
在所述重传数据的序号未在当前数据传输范围内时,向所述第二接收端反馈重传失败的信息,其中,所述第二接收端接收到所述重传失败信息时,向所述发送端发送异步重传请求;
接收所述第二接收端发送的异步重传请求,在所述持久化存储区中提取所述重传数据的序号对应的重传数据,以将所述重传数据传输至所述第二接收终端。
8.如权利要求1-4任一项所述的数据的重传方法,其特征在于,所述获取发送相同序号的应答确认消息的核心接收端的第一数量的步骤包括:
确定含有相同序号的各个待处理应答确认消息;
获取各个所述待处理应答消息对应的接收端的设备标识;
根据各个所述设备标识确定核心接收端的第一数量。
9.一种数据的重传装置,其特征在于,所述数据的重传装置包括处理器、存储器和存储在所述存储器上并可在所述处理器上运行的数据的重传程序,所述数据的重传程序被所述处理器执行时实现如权利要求1-8任一项所述的数据的重传方法的各个步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有数据的重传程序,所述数据的重传程序被所述处理器执行时实现如权利要求1-8任一项所述的数据的重传方法的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811379816.4A CN109743143B (zh) | 2018-11-16 | 2018-11-16 | 数据的重传方法、装置和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811379816.4A CN109743143B (zh) | 2018-11-16 | 2018-11-16 | 数据的重传方法、装置和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109743143A true CN109743143A (zh) | 2019-05-10 |
CN109743143B CN109743143B (zh) | 2021-07-30 |
Family
ID=66355702
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811379816.4A Active CN109743143B (zh) | 2018-11-16 | 2018-11-16 | 数据的重传方法、装置和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109743143B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110784289A (zh) * | 2019-10-31 | 2020-02-11 | 海光信息技术有限公司 | 一种数据重传方法以及数据重传装置 |
CN111656719A (zh) * | 2019-06-14 | 2020-09-11 | 深圳市大疆创新科技有限公司 | 数据传输系统、方法、发送端和计算机可读介质 |
CN113076280A (zh) * | 2019-12-18 | 2021-07-06 | 华为技术有限公司 | 一种数据传输方法及相关设备 |
CN113392667A (zh) * | 2021-08-17 | 2021-09-14 | 深圳市成为信息技术有限公司 | 一种读写器的数据传输方法、数据接收器及存储介质 |
CN114422589A (zh) * | 2020-10-12 | 2022-04-29 | 中国移动通信有限公司研究院 | 数据传输方法、装置、设备及存储介质 |
WO2022206116A1 (zh) * | 2021-04-02 | 2022-10-06 | 天津瑞发科半导体技术有限公司 | 一种物理层重传控制方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101562781A (zh) * | 2009-05-19 | 2009-10-21 | 华中科技大学 | 一种基于调制的自适应喷泉码多播传输系统 |
CN101945341A (zh) * | 2010-09-16 | 2011-01-12 | 西北大学 | 一种无线传感器网络点对点传输协议 |
US20140133382A1 (en) * | 2012-11-14 | 2014-05-15 | Samsung Electronics Co., Ltd. | Base station and a plurality of member nodes for transmitting and receiving network coding based multicast traffic |
CN103825689A (zh) * | 2014-03-03 | 2014-05-28 | 中国人民解放军理工大学 | 具有本地缓存的延迟确定性报文重传方法 |
CN106101026A (zh) * | 2016-06-07 | 2016-11-09 | 深圳证券通信有限公司 | 一种高可靠低延迟的udp多播方法 |
CN106533639A (zh) * | 2016-12-06 | 2017-03-22 | 迈锐数据(北京)有限公司 | 一种数据重传方法及装置 |
CN107959555A (zh) * | 2017-10-25 | 2018-04-24 | 捷开通讯(深圳)有限公司 | 一种基于lwaap的数据传输方法、装置及存储介质 |
-
2018
- 2018-11-16 CN CN201811379816.4A patent/CN109743143B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101562781A (zh) * | 2009-05-19 | 2009-10-21 | 华中科技大学 | 一种基于调制的自适应喷泉码多播传输系统 |
CN101945341A (zh) * | 2010-09-16 | 2011-01-12 | 西北大学 | 一种无线传感器网络点对点传输协议 |
US20140133382A1 (en) * | 2012-11-14 | 2014-05-15 | Samsung Electronics Co., Ltd. | Base station and a plurality of member nodes for transmitting and receiving network coding based multicast traffic |
CN103825689A (zh) * | 2014-03-03 | 2014-05-28 | 中国人民解放军理工大学 | 具有本地缓存的延迟确定性报文重传方法 |
CN106101026A (zh) * | 2016-06-07 | 2016-11-09 | 深圳证券通信有限公司 | 一种高可靠低延迟的udp多播方法 |
CN106533639A (zh) * | 2016-12-06 | 2017-03-22 | 迈锐数据(北京)有限公司 | 一种数据重传方法及装置 |
CN107959555A (zh) * | 2017-10-25 | 2018-04-24 | 捷开通讯(深圳)有限公司 | 一种基于lwaap的数据传输方法、装置及存储介质 |
Non-Patent Citations (1)
Title |
---|
陈戈: "P2P与组播结合实现高质量IP视频直播承载", 《广东通信技术》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111656719A (zh) * | 2019-06-14 | 2020-09-11 | 深圳市大疆创新科技有限公司 | 数据传输系统、方法、发送端和计算机可读介质 |
CN110784289A (zh) * | 2019-10-31 | 2020-02-11 | 海光信息技术有限公司 | 一种数据重传方法以及数据重传装置 |
CN110784289B (zh) * | 2019-10-31 | 2022-04-05 | 海光信息技术股份有限公司 | 一种数据重传方法以及数据重传装置 |
CN113076280A (zh) * | 2019-12-18 | 2021-07-06 | 华为技术有限公司 | 一种数据传输方法及相关设备 |
US11782869B2 (en) | 2019-12-18 | 2023-10-10 | Huawei Technologies Co., Ltd. | Data transmission method and related device |
CN113076280B (zh) * | 2019-12-18 | 2024-03-01 | 华为技术有限公司 | 一种数据传输方法及相关设备 |
CN114422589A (zh) * | 2020-10-12 | 2022-04-29 | 中国移动通信有限公司研究院 | 数据传输方法、装置、设备及存储介质 |
WO2022206116A1 (zh) * | 2021-04-02 | 2022-10-06 | 天津瑞发科半导体技术有限公司 | 一种物理层重传控制方法 |
CN113392667A (zh) * | 2021-08-17 | 2021-09-14 | 深圳市成为信息技术有限公司 | 一种读写器的数据传输方法、数据接收器及存储介质 |
CN113392667B (zh) * | 2021-08-17 | 2021-11-30 | 深圳市成为信息技术有限公司 | 一种读写器的数据传输方法、数据接收器及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109743143B (zh) | 2021-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109743143A (zh) | 数据的重传方法、装置和计算机可读存储介质 | |
CN107864084B (zh) | 数据包的传输方法和装置 | |
KR100432475B1 (ko) | 패킷 전송 방법 및 시스템, 및 패킷 송신 장치, 수신장치, 및 송수신 장치 | |
CN110225417A (zh) | 数据处理方法及服务器、检测卡顿的方法及服务器 | |
EP2913970B1 (en) | Policy control method and device for terminal peripherals | |
CN107682886A (zh) | 一种多路径的数据传输方法 | |
CN105450785B (zh) | 一种文件传输方法和装置 | |
CN101911803A (zh) | 共享资源的分配 | |
CN107623545A (zh) | 文件传输方法及装置 | |
KR101092478B1 (ko) | 이종 링크 상에서의 패킷 전송 방법 및 그 시스템 | |
CN104936156B (zh) | 短信发送方法和装置 | |
CN102857354A (zh) | 告警信息上报方法、装置及系统 | |
WO2015083919A1 (ko) | 무선통신의 패킷 손실 저감 방법 및 장치 | |
CN109428684A (zh) | 一种数据传输方法、rlc实体及pdcp实体 | |
CN112994851B (zh) | 一种支持差异化可协商的并行数据通信方法及装置 | |
CN109039552A (zh) | 一种数据恢复方法及装置 | |
CN110808917B (zh) | 多链路聚合数据重传方法及发送设备 | |
CN103237314B (zh) | 业务质量评测方法和装置 | |
CN105897452A (zh) | 一种数据重传方法及装置 | |
CN110266446B (zh) | 一种基于sack模式调整乱序时长的方法和装置 | |
KR101051121B1 (ko) | 무선 센서 네트워크에서의 데이터 전송 방법 | |
Luan et al. | Throughput analysis of a window-based flow control subject to bandwidth management | |
US20140071993A1 (en) | Transfer device and transfer method | |
CN115038115A (zh) | 数据传输方法、装置、电子设备、存储介质和产品 | |
CN104348711A (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 |