CN110649994B - 数据传输控制方法及相关设备、存储介质 - Google Patents

数据传输控制方法及相关设备、存储介质 Download PDF

Info

Publication number
CN110649994B
CN110649994B CN201910924835.9A CN201910924835A CN110649994B CN 110649994 B CN110649994 B CN 110649994B CN 201910924835 A CN201910924835 A CN 201910924835A CN 110649994 B CN110649994 B CN 110649994B
Authority
CN
China
Prior art keywords
data packet
detected
data
sequence number
determining
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
CN201910924835.9A
Other languages
English (en)
Other versions
CN110649994A (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 QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century 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 QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN201910924835.9A priority Critical patent/CN110649994B/zh
Publication of CN110649994A publication Critical patent/CN110649994A/zh
Application granted granted Critical
Publication of CN110649994B publication Critical patent/CN110649994B/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
    • 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/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • 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/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/1887Scheduling and prioritising arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

本发明提供了一种数据传输控制方法,该方法向接收端发送数据分组,并获得接收端返回的确认消息,根据确认消息,在数据分组中确定待检测数据分组,并根据待检测数据分组的逻辑位置,在待检测数据分组中确定丢失数据分组,向接收端发送该丢失数据分组。该方法中,在确定丢失数据分组时考虑了其的逻辑位置,该逻辑位置可以表示数据分组的发送先后顺序,将发送时间越早的数据分组确定为丢失数据分组,优先重传此丢失数据分组,促使此丢失数据分组尽可能快速被确认或再次重传,进而促使拥塞窗口的尽快移动,提高数据传输效率。另外,本发明还提供了数据传输控制相关设备以及存储介质。

Description

数据传输控制方法及相关设备、存储介质
技术领域
本发明涉及网络传输技术领域,更具体地,是数据传输控制方法及相关设备、存储介质。
背景技术
在网络传输场景中,数据发送方式过程是:发送端将待发送数据进行切分操作得到数据分组,为各个数据分组添加序号,向接收端发送具有序号的数据分组。接收端接收到某数据分组后,向发送端返回确认(Acknowledgement,ACK)消息,确认消息中携带有该数据分组的序号,以通知发送其准确接收到了该数据分组。
由于网络性能不佳可能导致某些数据分组延迟到达或者丢失,因此,发送端将多个数据分组发送出去之后,会将该多个数据分组保存在本地缓存中,并对缓存中的部分数据分组进行丢失检测。若检测到已经丢失的数据分组,则重传该数据分组。目前的数据传输方法,传输效率较低。
发明内容
有鉴于此,本发明提供了一种数据传输控制方法,以实现对数据分组重传的准确判定。另外,本发明还提供了一种数据传输控制相关设备及存储介质,用以保证所述方法在实际中的应用及实现。
为实现所述目的,本发明提供的技术方案如下:
第一方面,本发明提供了一种数据传输控制方法,应用于发送端,该方法包括:
向接收端发送数据分组;
获得所述接收端返回的确认消息,所述确认消息携带有所述数据分组的确认状态;
根据所述确认消息,在所述数据分组中确定待检测数据分组;
根据所述待检测数据分组在所述数据分组中的逻辑位置,在所述待检测数据分组中确定丢失数据分组;
向所述接收端重传所述丢失数据分组。
第二方面,本发明提供了一种数据传输控制装置,应用于发送端,该装置包括:
数据分组发送单元,用于向接收端发送数据分组;
确认消息获得单元,用于获得所述接收端返回的确认消息,所述确认消息携带有所述数据分组的确认状态;
待检测数据分组确定单元,用于根据所述确认消息,在所述数据分组中确定待检测数据分组;
丢失数据分组确定单元,用于根据所述待检测数据分组的逻辑位置,在所述待检测数据分组中确定丢失数据分组;
丢失数据分组发送单元,用于向所述接收端重传所述丢失数据分组。
第三方面,本发明提供了一种数据传输控制设备,包括:处理器和存储器,所述处理器通过运行存储在所述存储器内的软件程序、调用存储在所述存储器内的数据,实现上述的数据传输控制方法。
第四方面,本发明提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现上述的数据传输控制方法。
由上述方案可知,本发明提供一种应用于发送端的数据传输控制方法,该方法向接收端发送数据分组,并获得接收端返回的确认消息,根据确认消息,在数据分组中确定待检测数据分组,并根据待检测数据分组的逻辑位置,在待检测数据分组中确定丢失数据分组,向接收端发送该丢失数据分组。该方法中,在确定丢失数据分组时考虑了其在的逻辑位置,该逻辑位置可以表示数据分组的发送先后顺序,将发送时间越早的数据分组确定为丢失数据分组,优先重传此丢失数据分组,促使此丢失数据分组尽可能快速被确认或再次重传,进而促使拥塞窗口的尽快移动,提高数据传输效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明提供的一种数据分组传输方法的流程图;
图2为本发明提供的一种数据传输控制方法的流程图;
图3A为本发明提供的一种确认丢失检测范围的边界示意图;
图3B为本发明提供的另一种确认丢失检测范围的边界示意图;
图4为本发明提供的一种发送端为数据分组添加标识的示意图;
图5为本发明提供的另一种数据传输控制方法的流程图;
图6为本发明提供的一种数据分组传输装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
网络数据传输过程中,发送端将待发送的业务数据切分为多个数据分组,依据切分顺序为数据分组添加序号后,按照序号的排序顺序进行发送,并将数据分组保存在本地缓存中。接收端接收到发送端发送过来的数据分组后,生成该数据分组的确认消息,并将确认消息返回发送端。
但是,网络可能存在不稳定因素,从而导致传输的数据分组丢失或延迟到达接收端。发送端可以对发送的数据分组进行丢失检测,一旦确定某数据分组丢失,则会重传该数据分组。例如,图1所示,发送端从待发送的业务数据中切分出六个数据分组,序号分别为0-5,在发送该六个数据分组之后,在该六个数据分组中检测是否存在丢失的数据分组,假设检测到丢失的数据分组为数据分组1,则对数据分组1进行重传。
目前,发送端使用的一种丢失检测策略是,使用超时定时器(RTO)检测分组是否丢失。具体地,为了保证数据分组的可靠传输,发送端将数据分组发送出去后,开始计时。若经过超时定时器RTO的时长后,此数据分组仍然未被接收端确认,则发送端确定该数据分组丢失。针对重传分组,超时定时器RTO的时长与重传次数成倍数增长,发送的数据分组如果只通过超时进行检测是相当慢的。例如,针对首发的数据分组,设置超时定时器RTO的时长为rto;针对第一次重传的该数据分组,超时定时器RTO设为2*rto;由于网络的不可靠性,第一次重传的数据分组仍然可能还会产生丢失,当此数据分组丢失时,将第二次重传的数据分组的超时定时器RTO设为2^2*rto。随着重传次数的增加,超时定时器RTO呈现2^n*rto的指数增长趋势。该种方式会随着重传次数的增加,丢失检测过程越来越慢。
另一种丢失检测策略是,根据接收端返回的ACK确认信息进行丢失检测。ACK确认信息中可以携带未确认信息,未确认信息的一种方式可以是未确认数据分组的序号,未确认信息用于通知发送端还未成功接收的数据分组。发送端使用丢失标记次数(fastack)来记录数据分组的可能丢失可能情况,并基于丢失标记次数来判定该数据分组是否丢失。具体地,发送端每接收到一个ACK确认信息关于某数据分组的未确认信息,则将该某数据分组的丢失标记次数加1,当该某数据分组的丢失标记次数大于或等于一定阈值,则确定该数据分组丢失。阈值可以根据实际情况设置,例如可以设置为3。
例如,发送端发送了序号为0、1、2、3、4、5的五个数据分组。假设接收端收到序号为1的数据分组,则向发送端返回内容包括una_sn:0,ack_sn:1的ACK确认信息,以通知发送端序号为0的数据分组未接收到,序号为1的数据分组已成功接收到。发送端根据该ACK确认消息,将序号为0的丢失标记次数设置为1。若接收端接收到序号为2的数据分组,返回内容包括una_sn:0,ack_sn:2的ACK确认信息,以通知发送端序号为0的数据分组未接收到,序号为2的数据分组已成功接收到。发送端根据该ACK确认消息,将序号为0的丢失标记次数设置为2。若接收端接收到序号为3的数据分组,返回内容包括una_sn:0,ack_sn:3的ACK确认信息,以通知发送端序号为0的数据分组未接收到,序号为3的数据分组已成功接收到。发送端根据该ACK确认消息,将序号为0的丢失标记次数设置为3。如果阈值为3,丢失标记次数达到该阈值,则发送端确定该序号为0的数据分组丢失。
该种丢失检测方案,对所有的数据分组使用相同的策略,拥塞窗口的移动速度较慢,进而影响新数据分组的发送。具体来讲,最小未确认数据分组为发送端发送的数据分组中、未被确认的最小序号对应的数据分组。可以理解的是,最小未确认数据分组为发送端连续发送成功的数据分组后面的第一个数据分组。最小未确认数据分组为发送端较早发送的分组,最小未确认数据分组可以影响发送端发送窗口(拥塞窗口)的移动过程。如果最小未确认数据分组一直未得到确认,则发送窗口不能向后移动,进而并不能发送新的数据分组。也就是说,发送窗口的移动受限于最小未确认数据分组,只有提升最小未确认数据分组的确认速度,才能够提升发送窗口的移动速度,从而促使新的数据分组的发送。
对此,本发明提供了一种数据传输控制方法,应用于发送端。具体地,参见图2,数据传输控制方法包括如下步骤S201~S205。
S201:向接收端发送数据分组。
其中,目标业务数据为待发送的业务数据,待发送的业务数据需要切分为数据分组,根据切分情况为每个数据分组添加序号。序号是按照各个数据分组在目标业务数据中的位置进行编号后得到的。例如图1所示,切分出来的数据分组的序号分别为0、1、2、3、4及5。
发送端在发送数据分组后,会将此次发送的数据分组存于缓存队列中,以备用进行数据分组的重传。
S202:获得接收端返回的确认消息,确认消息携带有数据分组的确认状态。
其中,接收端接收到数据分组后,生成相应数据分组的确认消息,如接收到序号为0的数据分组,则生成序号为0的确认消息,其标识可以设为ACK0。每个确认消息可以单独发送。或者,也可以将多个数据分组的确认情况包含在一个确认消息中发送,这种情况下,确认消息中可以使用不同的字段表示不同数据分组的确认情况。例如,确认消息中使用字段标记所有数据分组的确认情况,未接收到的数据分组对应的字段设置为0,已经接收到的数据分组对应的字段设置为1。具体例如,数据分组0未被接收端接收,则数据分组0对应的确认消息设置为0,数据分组1被接收端接收,则数据分组1对应的确认消息设置为1。
可见,确认消息中携带有数据分组的确认状态,确认状态可以表示已经确认有哪些数据分组,也可以表示出还未确认哪些数据分组。
S203:根据确认消息,在数据分组的中确定待检测数据分组。
其中,数据分组可以被存储至缓存队列中,发送端根据接收到ACK确认信息对缓存队列中的数据分组进行处理。确认消息中携带接收端确认的数据分组序号,例如一种处理包括,如果某个数据分组被ACK确认消息确认,则将该数据分组从缓存队列中删除,剩下的数据分组可以为待检测数据分组。或者,也可以在剩下的数据分组中选择一部分作为待检测数据分组,例如选择序号相对较小的一部分数据分组作为待检测数据分组。数据分组可以按照序号的大小在缓存队列中排序,序号越小的数据分组越早地发送出去,在缓存队列中排序越靠前。选择的一种方式是,选择序号靠前(靠左)的预设数量的数据分组作为待检测数据分组。
当然,还可以使用其他方式来确定待检测数据分组,具体实现过程参见下述说明。
S204:根据待检测数据分组的逻辑位置,在待检测数据分组中确定丢失数据分组。
其中,待检测数据分组的逻辑位置可以反映数据分组的发送先后顺序,逻辑位置是按照数据分组从目标业务数据中被切分出来的先后顺序确定的,切分先后顺序与数据分组的发送先后顺序是一致的。另外,待检测数据分组的逻辑位置也可以表示数据分组在缓存队列中的逻辑位置,越早发送的数据分组在缓存队列中越靠近缓存队列的左侧。为了促使越早发送的数据分组尽快被确认或者被重传,需要尽量将这些待检测数据分组确定为丢失数据分组。
因此,可以将位于缓存队列左侧的一部分待检测数据分组确定为丢失检测分组。至于所确定的个数可以是预先设置的,也可以是根据实际的网络状态确定的。具体地,可以预先设置不同的网络状态与丢失分组数量之间的对应关系,检测网络的当前状态,并依据该对应关系确定该当前状态所对应的丢失分组数量,进而在缓存队列中靠前的丢失分组数量个数的待检测数据分组确定为丢失数据分组。
当然,还可以使用其他方式来确定丢失检测分组,具体实现过程参见下述说明。
S205:向接收端重传丢失数据分组。
其中,发送端确定丢失数据分组后,便可以向接收端重传该丢失数据分组。
由以上技术方案可知,本发明提供了一种应用于发送端的数据传输控制方法,该方法向接收端发送数据分组,并获得接收端返回的确认消息,根据确认消息,在数据分组中确定待检测数据分组,并根据待检测数据分组的逻辑位置,在待检测数据分组中确定丢失数据分组,向接收端发送该丢失数据分组。该方法中,在确定丢失数据分组时考虑了其的逻辑位置,该逻辑位置可以表示数据分组的发送先后顺序,将发送时间越早的数据分组确定为丢失数据分组,优先重传此丢失数据分组,促使此丢失数据分组尽可能快速被确认或再次重传,进而促使拥塞窗口的尽快移动,提高数据传输效率。
前已述及,确认消息中携带接收端确认的数据分组序号,以上步骤S203(根据确认消息,在数据分组中确定待检测数据分组)的一种具体实现方式包括:
根据确认消息,在数据分组中确定丢失检测范围;将丢失检测范围内、接收端确认的数据分组序号之外的序号指示的数据分组确定为待检测数据分组。
其中,发送端在本地缓存的数据分组中,确定出一个丢失检测范围,在丢失检测范围内,根据接收到的确认消息,检测哪些数据分组丢失,哪些数据分组已经被成功接收到。对于检测为丢失的数据分组,发送端需要将本地缓存中的该数据分组进行重传。
确定丢失检测范围的具体实现过程可以包括如下步骤A1~A3。
A1:根据确认消息,确定接收端确认的数据分组序号以及接收端接收到的最大数据分组序号。
其中,确认消息中携带的确认消息中可以包括接收端所确认的数据分组序号,因此接收端确认的数据分组序号从确认消息中提取即可。
根据确认消息,确定接收端接收到的最大数据分组序号,至少可以通过以下两种方式中的任意一种实现。
第一种确定方式为,接收端可以设置一个标识,用于记录接收端接收到的最大数据分组序号,为了便于描述可以将其称为第一标识。接收端接收到数据分组后,在接收到的数据分组中确定最大数据分组序号,进而更新第一标识的值,并将更新的第一标识包含在确认消息中返回至发送端。例如,接收端接收到序号为1、2、3及4的四个数据分组,则将第一标识更新为4,并且,接收端将序号为1、2、3及4的四个数据分组对应的确认消息发送给发送端。确认消息内可以设置一个字段,该标识用于记录第一标识。发送端从确认消息中提取出接收端确认的数据分组序号、以及从第一标识中提取出接收端接收到的最大数据分组序号。
第二种确定方式为,接收端接收到数据分组后,生成相应数据分组的确认消息,将确认消息发送至发送端,发送端根据确认消息来确定第一标识。例如,发送端接收到接收端返回的包含有对序号1、2、3及4的四个数据分组的确认消息,则将接收端接收到的最大数据分组序号更新为4。相比于第一种确定方式,此确定方式中确认消息可以并不携带第一标识的值。
A2:获得发送端最小未确认数据分组序号。
其中,发送端还需要获得所发送的数据分组中,最小未被确认的数据分组的序号。
A3:根据发送端最小未确认数据分组序号以及接收端接收到的最大数据分组序号,在数据分组中确定丢失检测范围。
其中,确定丢失检测范围主要是要确定出检测的边界,具体地,可以分别根据最小未确认数据分组序号,以及接收端接收到的最大数据分组序号来确定丢失检测范围的左右边界。
第一种确定方式包括:将发送端最小未确认数据分组序号确定为检测范围起始边界(起始边界也可以称为左边界);将接收端接收到的最大数据分组序号确定为检测范围终止边界(终止边界也可以称为右边界);在缓存队列中,将检测范围起始边界以及检测范围终止边界组成的范围确定为丢失检测范围。
例如图3A所示,第一个箭头表示发送端最小未确认数据分组序号,其指向序号为1的数据分组,则表示左边界是该数据分组,更具体地表示从该数据分组序号为1的数据分组开始向后为检测范围。
接收端接收到的最大数据分组序号可以用于区分待确认数据分组以及未确认数据分组,在本具体实现方式中,仅想要对未确认数据分组进行检测,因此将接收端接收到的最大数据分组序号作为检测范围终止边界。例如图3A所示,第二个箭头表示接收端接收到的最大数据分组序号,其指向序号为6的数据分组,则表示右边界是该数据分组,更具体地表示从该数据分组序号为6的数据分组开始向前为检测范围。
检测范围起始边界及检测范围终止边界所包围的数据分组范围,即作为丢失检测范围,进而对该范围内的数据分组进行丢失检测。
第一种确定方式包括:将发送端最小未确认数据分组序号确定为检测范围起始边界;获得发送端发送的最大数据分组序号;将发送端发送的最大数据分组序号与接收端接收到的最大数据分组序号作差后得到待确认数据分组的个数,根据接收端接收到的最大数据分组序号及待确认数据分组的个数,确定检测范围终止边界;在缓存队列中,将检测范围起始边界以及检测范围终止边界组成的范围确定为丢失检测范围。
本实现方式与上述第一种实现方式相比,不同之处在于检测范围终止边界的确认方式不同,以下仅针对该不同点进行说明。
将发送端发送的最大数据分组序号减去接收端接收到的最大数据分组序号,差值表示的是待确认数据分组的个数。待确认数据分组的个数可以记为字段max_diff。本具体实施方式是想要将待确认数据分组中的前一部分的终止边界作为检测范围的终止边界。其中待确认数据分组中的前一部分是由a*max_diff来表示的,前一部分的宽度取决于待确认数据分组的范围及检测系数a的值。其中,检测系数a为预设值,表示的是当前网络的传输性能,该值的大小可以由配置人员根据网络的传输性能来设定。
具体地,可以首先根据当前网络的传输性能确定检测系数;其中检测系数小于等于1,然后将检测系数与待确认数据分组的个数相乘,相乘结果与接收端接收到的最大数据分组序号相加后得到检测范围终止边界。其中,网络管理配置人员根据网络的实时情况设定或修改该检测系数,该检测系数最大值可为1,最小值可为0。
上述计算过程可以表述为以下公式:r_last_max_vir_seq+a*max_diff;
其中,公式中r_last_max_vir_seq是接收端接收到的最大数据分组序号,a为检测系数,max_diff为待确认数据分组个数。该公式的计算结果为丢失检测范围的终止边界,该终止边界是大于或等于接收端接收到的最大数据分组序号为边界的值,a为一个小于1的数,max_diff可以为一个很大的数,该方式主要应用于大量数据分组的传输。
可见,第二种确定丢失检测范围的方式,是将发送端连续发送成功的最大数据分组序号确定为起始边界,将接收端接收到的最大数据分组序号之后的一部分待确认数据分组的边界作为终止边界。如图3B所示的示例中,发送端在某个发送周期内向接收端发送的数据分组包括数据分组序号为0-9的10个数据分组,第一个箭头指向的数据分组0为丢失检测范围的起始边界,第二个箭头指向的数据分组8为丢失检测范围的终止边界。对比图3A与图3B可知,第二种确定方式所确定的丢失检测范围终止边界更靠后,该丢失检测范围更大。与第一种确定方式相比,本确定方式的检测范围终止边界比较大,因此在大量数据分组传输中,效果比接收端接收的最大数据分组序号为终止边界的方式要好,可以进行更多数据分组的丢失检测。
基于上述说明,步骤S204(根据待检测数据分组的逻辑位置,在待检测数据分组中确定丢失数据分组)的一种具体方式包括:
若待检测数据分组的序号与缓存队列中指定数据分组的序号的差值在预设差值范围内,则将待检测数据分组的丢失标记次数加预设数值,得到目标丢失标记次数;若待检测数据分组的序号与缓存队列中指定数据分组的序号的差值未在预设差值范围内,则根据待检测数据分组在丢失检测范围中的逻辑位置,将待检测数据分组的丢失标记次数加与逻辑位置对应的数值,得到目标丢失标记次数;将目标丢失标记次数满足预设重传条件的待检测数据分组确定为丢失数据分组。
更具体来讲,指定数据分组可以为缓存队列中末尾的一个数据分组。预设差值范围可以根据实际情况设置为包括多个数值的范围,也可以设置为一个具体值例如可以设置为0。假设设置为0,也就是说,通过比较待检测数据分组的序号与缓存队列中末尾数据分组的序号的差值是否为0,来确定待检测数据分组是否为发送端发送的最后一个数据分组。
为了便于描述,引入几个字段标识。如图4所示,发送端可以设置一些字段标识(如图示4中的箭头所示),用于记录各项参数。当然,这些标识可以并非全部都设置,可以仅设置其中的部分标识。关于标识的说明如下:
第一标识(r_last_max_vir_seq)记录的是接收端接收到的最大数据分组序号。具体是,接收端接收到的数据分组中,序号最大的数据分组,例如,根据接收端返回的确认消息可知接收端成功接收到的最大序号为6,此种情况下该标识指向序号为6的数据分组。
第二标识(s_max_ack_vir_seq)记录的是发送端最大确认数据分组序号,该值与第一标识的值相同。第一标识及第二标识的值在每次接收到确认消息后进行更新。
第三标识(s_max_con_success_vir_seq)记录的是发送端连续发送成功的最大数据分组序号,该标识的值是根据接收端成功接收到数据分组的序号确定出的,具体是接收端接收到的数据分组中的最大连续序号,如:接收端接收到了序号为0、4、5及6的四个数据分组,此种情况下该标识指向序号为0的数据分组。该标识的值在每次接收到确认消息后进行更新。
第四标识(s_max_vir_seq)记录的是发送端发送的最大数据分组序号,具体是发送端当前发送的数据分组中,序号最大的数据分组,如发送端发送了0~9共10个数据分组,此种情况下该标识指向序号为9的数据分组。该标识的值在发送端每次发送一个数据分组后进行更新。
第五标识(s_next_ack_seq)记录的是发送端最小未确认数据分组序号。
在指定数据分组为缓存队列中末尾数据分组的情况下,判断待检测数据分组是否为发送端发送的最后一个数据分组,可以具体判断待检测数据分组的逻辑序号与第四标识所记录的数据分组的逻辑序号是否一致,若一致,则待检测数据分组是发送端发送的最后一个数据分组,具体公式为:
vir_diff=s_max_vir_seq-vir_seq (1)
例如:第四标识记录的序号为9,待检测数据分组的序号也为9,则vir_diff=9-9=0。发送端会检测vir_diff这一标识的值,若这一标识的值为0且预设差值范围为0,则表示待检测数据分组是发送端发送的最后一个数据分组。
若待检测数据分组为发送端发送的最后一个数据分组,则判断待检测数据分组的发送时间距离当前时间的时长是否达到数据发送的预设周期时长,若是,则将待检测数据分组的丢失标记次数加一。
具体来看,数据分组从发送到接收都存在一个预设周期时长,若小于该时长内接收则表示当前网络正常,若大于该时长内接收,则表示当前网络不稳定。该预设周期时长是由网络管理配置人员设置的。待检测数据分组是发送端发送的最后一个数据分组,则该待检测数据分组的丢失标记次数的确定过程为:记录待检测数据分组从发送时刻到当前时刻的时长,并将记录的时长与预设周期时长作对比,若记录的时长大于预设周期时长,则该待检测数据分组的丢失标记次数加一;若小于预设周期时长,待检测数据分组的丢失标记次数加零。
若待检测数据分组不是发送端发送的最后一个数据分组,则确定待检测数据分组在丢失检测范围内的位置;若位置位于丢失检测范围的起始边界的附近位置,则将待检测数据分组的丢失标记次数加第一数值;若位置位于丢失检测范围的终止边界的附近位置,则将待检测数据分组的丢失标记次数加第二数值;若位于起始终止边界的附近位置之外的中间位置,则将待检测数据分组的丢失标记次数加第三数值;其中附近位置为满足预设距离要求的位置;其中,第一数值大于第三数值大于第二数值。
具体来看,若待检测数据分组的序号与第四标识所记录的数据分组的序号不一致,则根据待检测数据分组在丢失检查范围中的位置,对待检测数据分组中的丢失标记次数赋予不同的值。具体如下:
若待检测数据分组的序号在起始边界附近位置,即在第三标识附近位置时,该附近位置为预设距离要求的位置。将符合预设条件的待确认数据分组的丢失标记次数加上第一数值,其中第一数值可以是第四标识记录的数据分组序号与当前待检测数据分组的序号的差值,也就是说,第一数值为发送端发送的最大数据分组序号与待检测数据分组的数据分组序号之间的差值。
若待检测数据分组的序号在终止边界附近位置,该终止边界附近位置为预设距离要求的位置,将符合预设条件的待确认数据分组的丢失标记次数均加上第二数值,第二数值可以为0。待检测数据分组在终止边界附件位置,则表示该类待检测数据分组为待确认数据分组,若属于待确认数据分组,只需等待即可,因此第二数值可为0。
若待检测数据分组的序号位于起始终止边界的附近位置之外的中间位置,该中间位置为预设距离要求的位置,则将待检测数据分组中的所有数据分组的丢失标记次数加上第三数值,第三数值可设置为1,待检测数据分组属于中间位置时,便加待检测数据分组的丢失标记次数上加1,使得该部分待检测数据分组在接收到下一次确认消息后,加快对该部分待检测数据分组的丢失判决。丢失判决即是对丢失标记次数的检测,具体可参照下文。
以上说明了可以根据待检测数据分组在丢失检测范围内的位置,为待检测数据分组的丢失标记次数加上不同的数值。可见,确定出待检测数据分组在丢失检测范围内的位置,为处理丢失标记次数的前提条件。以下具体说明一种实施方式,来确定待检测数据分组在丢失检测范围内的位置。
计算待检测数据分组的原始序号与发送端最小未确认原始序号之间的差值,将差值确定为第一差值,若第一差值小于预设数值,则确定待检测数据分组位于丢失检测范围的起始边界的附近位置;获得待确认数据分组的个数,以及根据当前网络的传输性能确定检测系数;计算发送端发送的最大数据分组序号与待检测数据分组的序号之间的差值,将差值确定为第二差值,若第二差值小于检测系数与待确认数据分组的个数的乘积,则确定待检测数据分组位于丢失检测范围的终止边界的附近位置;若第一差值不小于预设数值且第二差值不小于检测系数与待确认数据分组的个数的乘积,则确定待检测数据分组位于起始终止边界的附近位置之外的中间位置。
具体地,待检测数据分组位于丢失检测范围的起始边界的附近位置的情况如下:
计算待检测数据分组的原始序号与发送端最小未确认原始序号之间的差值,得到第一差值,具体公式为:
D1=seq-s_next_ack_seq (2)
其中为D1为第一差值,seq是待检测数据分组的原始序号,s_next_ack_seq是发送端最小未确认原始序号。
该差值表示的是待检测数据分组的原始序号与最小未确认原始序号之间的距离,若待检测数据分组的原始序号与最小未确认原始序号的差值在预设值范围内,即D1小于预设值时,则表示该待检测数据分组在丢失检测范围的起始边界附近位置。如待检测数据分组的原始序号为1,而最小未确认原始序号为0时,则该第一差值为1。通过上述公式计算得到的D1的值,将D1与预设数值比较,假设,预设数值为3,则D1小于3,该待检测数据分组在丢失检测范围的起始边界附近位置。当D1为0,即表示当前待检测数据分组就是最小未确认原始序号。
待检测数据分组位于丢失检测范围的终止边界的附近位置的情况如下:
待确认数据分组的个数(max_diff)可以由第四标识的值减去第一标识的值得到,即s_max_vir_seq-r_last_max_vir_seq。例如,发送端发送了0~9共10个数据分组,而接收端接收到的最大逻辑序号为6,则表示7、8、9共三个数据分组为待确认数据分组。待确认数据分组的个数(max_diff)可以表示发送端发送出去的数据分组,但是还未收到接收端返回任何确认消息的数据量,也即无法判断接收与否的数据量。
根据当前网络的传输性能确定检测系数a,检测系数a是网络管理配置人员根据网络传输性能设置的一个数值,该数值小于或等于1。然后,计算检测系数与待确认数据分组的个数的乘积:a*max_diff=a*(s_max_vir_seq-r_last_max_vir_seq),该公式表示的是待确认数据分组中的一部分,这一部分的多少由公式中的a来决定,当a为1时,该公式表示的是待确认数据分组中的所有分组,a*max_diff是上述实施例中终止边界的另一种实施方式。
另外根据公式(1)vir_diff=s_max_vir_seq-vir_seq,计算发送端发送的最大数据分组序号与待检测数据分组的序号之间的差值,将差值确定为第二差值vir_diff。该第二差值用于判断待检测数据分组是否属于待确认数据分组,若属于待确认数据分组,即表示该待检测数据分组位于丢失检测范围的终止边界的附近位置。
若第二差值小于检测系数与待确认数据分组的个数的乘积,即vir_diff<a*max_diff,则表示当前待检测数据分组的序号大于接收端接收到的最大数据分组序号,即标识该待检测数据分组在待确认数据分组中,进而表明该待检测数据分组在丢失检查范围的终止边界附近位置,同时也说明了当待检测数据分组大于等于接收端接收到的最大数据分组序号,小于发送端发送的最大数据分组序号,则表示该待检测数据分组位于丢失检测范围的终止边界的附近位置。
若待检测数据分组介于起始边界附近位置和终止边界附近位置之间,则该待检测数据分组属于中间位置。
从而,确定出待检测数据分组在丢失检测范围内的位置后,便可以根据待检测数据分组在丢失检测范围内的位置,为待检测数据分组的丢失标记次数加上不同的数值。进而,可以将丢失标记次数满足预设重传条件的待检测数据分组确定为丢失数据分组,并重传丢失数据分组。
另外,本发明还提供了一种数据传输控制方法,该方法在发送丢失数据分组时,还可以发送其他数据分组。
见图5,该方法具体可以包括步骤S501~S506。
S501:向接收端发送数据分组。
S502:获得接收端返回的确认消息,确认消息携带有数据分组的确认状态。
S503:根据确认消息,在数据分组中确定待检测数据分组。
S504:根据待检测数据分组的逻辑位置,在待检测数据分组中确定丢失数据分组。
其中,上述四个步骤与图2中的前四个步骤实现方式相同,此处并不赘述。
S505:获得目标数据分组,其中目标数据分组包括数据分组中的待确认数据分组和/或目标业务数据切分得到的新数据分组。
其中,目标数据分组为与丢失数据分组一同重传的数据分组。目标数据分组可以包括以下两类中的任意一类或者两类的组合:待确认数据分组以及新数据分组。
待确认数据分组,指的是发送端已发送出去但还未被接收端确认的数据分组。待确认数据分组进一步可以具体包括以下两种类型的数据分组任意一种或者两种的组合:第一类待确认数据分组以及第二类待确认数据分组。
如图4所示,发送端在某个发送周期内向接收端发送的数据分组包括序号为0-9的10个数据分组。发送端根据数据分组的确认情况,可以将该些数据分组划分为三类:第一类为已确认数据分组(即图示中填充深灰颜色的数据分组0、4、5、6),表示已经被接收端成功接收到的数据分组;第二类为未确认数据分组(即图示中填充浅灰颜色的数据分组1、2、3),未确认数据分组是接收端已经接收到的最大序号数据分组之前未被确认的数据分组;第三类为待确认数据分组(即图示中未填充颜色的数据分组7、8、9),待确认数据分组是在缓存队列中且位于接收端已经接收到的最大序号数据分组之后的数据分组。第一类待确认数据分组指的是图4所示的未确认数据分组,第二类待确认数据分组指的是图4所示的待确认数据分组。
新数据分组,指的是在切分得到缓存队列的数据分组之后,目标业务数据切分得到的数据分组。以图4为例,业务数据假设还可以切分得到新的数据分组,序号依次为10、11以及12。
在实际应用中,可以从以上两类数据分组中获取得到目标数据分组。目标数据分组的数量可以预先设置的固定值,此种情况下,如果缓存队列中的待确认数据分组不够,则可以继续获得新数据分组作为目标数据分组。
当然,目标数据分组的数量也可以是根据数据分组的传输状态确定的。具体地,可以确定丢失数据分组的重传次数和/或确定网络的传输丢失率;确定与重传次数和/或网络的传输丢失率对应的分组数量,从而获得分组数量个数的目标数据分组。
具体来看,发送端重传的数据分组可能存在再次丢失,发送端会继续发送再次丢失的数据分组,因此可以根据网络的传输丢失率和丢失数据分组的重传次数设置相对应的分组数量。
例如,可以预先设置网络的传输丢失率阈值,发送端根据检测到的网络的当前传输状况,来判断当前网络是否适合数据传输。例如,当网络的传输丢失率大于预先设置的传输丢失率阈值15%,表示当前网络状态为劣。
进一步地,网络管理配置人员根据网络传输情况优劣设定发送数据分组的数量。例如,若网络的传输丢失率低于5%,则表示网络状况良好,网络管理配置人员设置的分组数量为200。若网络的传输丢失率在5%~15%之间,则表示网络状况一般,网络管理配置人员设置的分组数量为100。也就是说,传输丢失率对应的分组数量可以是由人工预先设置的,且传输丢失率越低则设置的分组数量可以越高。
又如,可以预先设置重传次数阈值,根据重传次数与重传次数阈值之间的关系,来设置分组数量。具体如,某一丢失数据分组进行第一次重传,第一次重传对应的分组数量可以被设置为较高值。如果发送端没有接收到接收端返回的确认消息,发送端进行了第二次重传,第一次重传对应的分组数量可以被设置为较中值。如果第二次重传依然没有接收到,则网络管理配置人员则判断当前网络较差不适合数据传输,因此可以将重传次数的阈值设置为2,重传次数大于2后数据分组的数量设置为极小值。当然,阈值可以设置为其他值,并且较高值、较中值、极小值是相对概念,具体值可以是根据实际需求设置。可见,重传次数对应的分组数量可以由人工预先设置,且重传次数越小则设置的分组数量可以越高。
可见,可以为不同的重传次数或网络传输率设置不同的分组数量,从而在实际应用中,根据具体的重传次数或网络传输率来确定对应的分组数量。需要说明的是,重传次数以及网络传输率可以结合使用,例如在某些重传次数下并不考虑网络传输率,但当重传次数达到一定次数阈值后,同时考虑网络传输率来确定两者对应的分组数量。当然,结合使用的方式还可以是本领域技术人员根据排列组合思想能够想到的其他方案。
S506:向接收端发送丢失数据分组及目标数据分组。
其中,将目标数据分组与重传的数据分组一同向接收端发送。一同的方式可以有多种,例如可以在一个数据包中发送,也可以分为多个不同的数据包发送。
由以上技术方案可知,本发明提供了一种数据传输控制方法,该方法获得目标业务数据对应的缓存队列,在缓存队列存储的数据分组中确定丢失数据分组,并缓存队列中的待确认数据分组和/或目标业务数据切分得到的新数据分组作为目标数据分组,进而在重传丢失数据分组时,发送目标数据分组。可见,本方法在重传丢失数据分组时,可以携带发送其他还未被确认的数据分组,以使接收端可能更多地接收数据分组,从而返回更多的确认信息。发送端根据这些确认信息,可以加快对数据分组的处理效率,使数据分组尽快被确认或者被重传,从而提高数据传输效率。
具体来看,一并发送其他的数据分组,可以使接收端可能更多地接收数据分组,从而返回更多的ACK确认信息。发送端根据这些ACK确认信息,可以加快对数据分组的处理效率。具体地,发送端可能根据这些ACK确认消息中的已确认消息来确定数据分组已经被成功接收,或者,还可能根据这些ACK确认消息中的未确认消息来增加数据分组的丢失标记次数,从而加快认定其丢失并进行快速重传。
需要说明的是,确定的丢失数据分组可能是最小未确认数据分组,上述技术优势对于最小未被确认分组更加明显。具体的原因是:
最小未确认数据分组为发送端发送的数据分组中、未被确认的最小序号对应的数据分组。可以理解的是,最小未确认数据分组为发送端连续发送成功的数据分组后面的第一个数据分组。最小未确认数据分组为发送端较早发送的分组,最小未确认数据分组可以影响发送端发送窗口(拥塞窗口)的移动过程。如果最小未确认数据分组一直未得到确认,则发送窗口不能向后移动,进而并不能发送新的数据分组。也就是说,发送窗口的移动受限于最小未确认分组,只有提升最小未确认分组的确认速度,才能够提升发送窗口的移动速度,从而促使新的数据分组的发送。
然而,目前对于最小未确认数据分组的重传策略为,当发送端最小未被确认分组认定丢失后,不允许发送端继续发送其他数据分组,这样只能通过超时定时器超时来判定最小未确认数据分组是否再次丢失,检测效率较低。然而,本方法在重传最小未确认数据分组时,还可以继续传输其他的数据分组,这些数据分组可以更新最小未确认数据分组的丢失标记次数,从而判断丢失标记数据是否达到阈值来检测最小未确认数据分组是否丢失,并在检测结果为丢失的情况下,进行快速重传。
可见,本方法可以加快最小未确认数据分组的丢失检测效率以及重传效率,进而提高最小未确认数据分组被确认的可能性。最小未确认数据分组被快速确认后,才能向后移动发送窗口,从而从整体上提高网络的吞吐量以及利用率。
需要说明的是,本发明中使用的序号可以仅包括原始序号,也可以既包括原始序号也包括逻辑序号。具体地,接收端接收到的最大数据分组序号为逻辑序号,发送端最大确认数据分组序号为逻辑序号,发送端连续发送成功的最大数据分组序号为逻辑序号,发送端发送的最大数据分组序号为逻辑序号,发送端最小未确认数据分组序号为原始序号,且计算待检测数据分组的序号(原始序号)与发送端最小未确认数据分组序号(原始序号)之间的差值,得到第一差值公式。
原始序号表示数据分组在目标业务数据切分后得到的所有数据分组中的位置。逻辑序号表示数据分组在发送端为传输目标业务数据所发送的所有数据分组中的位置。在包括逻辑序号的情况下,逻辑序号是一直递增的,对于重传的数据分组,其既具有逻辑序号也具有原始序号,两者是不一致的。
目前发送端发送的数据分组仅仅具有原始序号,原始序号表示数据分组在目标业务数据切分后得到的所有数据分组中的位置。发送端根据数据分组的原始序号确定丢失检测范围,也就是说,丢失检测范围内的数据分组是首次发送的数据分组。但是,发送端在某个或某些数据分组丢失后,还可以对该数据分组进行重传,重传的数据分组也可能丢失或者延迟到达,也就是说,重传数据分组的传输情况也可以反映传输网络的性能,但目前所确定出的丢失检测范围内并不包含有重传数据分组,仅仅依靠首发数据分组的传输情况,来判定数据分组是否丢失以及是否进行重传,判定准确性不高。
对比,本发明提出了为数据分组添加逻辑序号的方案,逻辑序号是发送端为发送目标业务数据所发送的所有数据分组的序号,逻辑序号既针对首发数据分组,也针对为丢失的数据分组发送的重发数据分组。发送端所发送出去的数据分组均具有逻辑序号,且逻辑序号依次递增。发送端发送数据分组之前,会为每个数据分组添加逻辑序号。添加逻辑序号是为了解决数据分组传输中的丢失、乱序及传输错误等现象。逻辑序号表示的是该数据分组在发送目标业务数据的过程中发送的所有数据分组的编号,这些数据分组既包括首发数据分组,也包括丢失后重发的数据分组。
同一数据分组的原始序号与逻辑序号可能一致,也可能不一致。例如:发送端即将发送0~4原始序号的数据分组,先将0~4的原始序号的数据分组进行逻辑序号,此时0~4的逻辑序号与原始序号一致。当出现数据分组丢失后,发送端会重新发送丢失的数据分组,并根据情况调整丢失的数据分组的逻辑序号,此时,数据分组的逻辑序号与原始序号之间就并不会一致了。
发送端在重传的丢失数据分组后,也会将重传数据分组存储至缓存队列中,因此缓存队列中的数据分组既包括原始数据分组也包括重传数据分组,确定的丢失检测范围更能反映传输网络的性能,丢失检测准确性更高。
另外,本发明提供了一种数据传输控制装置,应用于发送端。如图6所示,该装置包括:数据分组发送单元601、确认消息获得单元602、待检测数据分组确定单元603、丢失数据分组确定单元604及丢失数据分组发送单元605。
数据分组发送单元601,用于向接收端发送数据分组;
确认消息获得单元602,用于获得所述接收端返回的确认消息,所述确认消息携带有所述数据分组的确认状态;
待检测数据分组确定单元603,用于根据所述确认消息,在所述数据分组中确定待检测数据分组;
丢失数据分组确定单元604,用于根据所述待检测数据分组的逻辑位置,在所述待检测数据分组中确定丢失数据分组;
丢失数据分组发送单元605,用于向所述接收端重传所述丢失数据分组。
所述确认消息中携带接收端确认的数据分组序号;在一种实现方式中,待检测数据分组确定单元603在根据所述确认消息,在所述数据分组的中确定待检测数据分组时,具体用于:根据所述确认消息,在所述数据分组中确定丢失检测范围;将所述丢失检测范围内、接收端确认的数据分组序号之外的序号指示的数据分组确定为待检测数据分组。
在一种实现方式中,待检测数据分组确定单元603根据所述确认消息,在所述数据分组中确定丢失检测范围时,具体用于:根据所述确认消息,确定接收端确认的数据分组序号以及接收端接收到的最大数据分组序号;获得发送端最小未确认数据分组序号;根据所述发送端最小未确认数据分组序号以及接收端接收到的最大数据分组序号,在所述数据分组中确定丢失检测范围。
在一种实现方式中,待检测数据分组确定单元603根据所述发送端最小未确认数据分组序号以及接收端接收到的最大数据分组序号,在所述数据分组中确定丢失检测范围时,具体用于:将发送端最小未确认数据分组序号确定为检测范围起始边界;将接收端接收到的最大数据分组序号确定为检测范围终止边界;将所述检测范围起始边界以及所述检测范围终止边界组成的范围确定为丢失检测范围。
在一种实现方式中,待检测数据分组确定单元603根据所述发送端最小未确认数据分组序号以及接收端接收到的最大数据分组序号,在所述数据分组中确定丢失检测范围时,具体用于:将发送端最小未确认数据分组序号确定为检测范围起始边界;获得发送端发送的最大数据分组序号,将发送端发送的最大数据分组序号与接收端接收到的最大数据分组序号比对后得到待确认数据分组的个数,根据接收端接收到的最大数据分组序号及所述待确认数据分组的个数,确定检测范围终止边界;将所述检测范围起始边界以及所述检测范围终止边界组成的范围确定为丢失检测范围。
在一种实现方式中,待检测数据分组确定单元603根据接收端接收到的最大数据分组序号及所述待确认数据分组的个数,确定检测范围终止边界时,具体用于:根据当前网络的传输性能确定检测系数;其中所述检测系数小于等于1;将所述检测系数与所述待确认数据分组的个数相乘,相乘结果与接收端接收到的最大数据序号相加后得到检测范围终止边界。
在一种实现方式中,丢失数据分组确定单元604根据所述待检测数据分组的逻辑位置,在所述待检测数据分组中确定丢失数据分组时,具体用于:若待检测数据分组的序号与缓存队列中指定数据分组的序号的差值在预设差值范围内,则将所述待检测数据分组的丢失标记次数加预设数值,得到目标丢失标记次数;若待检测数据分组的序号与缓存队列中指定数据分组的序号的差值未在预设差值范围内,则根据待检测数据分组在所述丢失检测范围中的逻辑位置,将所述待检测数据分组的丢失标记次数加与所述逻辑位置对应的数值,得到目标丢失标记次数;将目标丢失标记次数满足预设重传条件的待检测数据分组确定为丢失数据分组。
在一种实现方式中,数据传输控制装置还可以包括:目标数据分组发送单元。
目标数据分组发送单元,用于获得目标数据分组,其中所述目标数据分组包括数据分组中的待确认数据分组和/或目标业务数据切分得到的新数据分组;在重传丢失数据分组时,发送所述目标数据分组。
在一种实现方式中,目标数据分组发送单元在所述获得目标数据分组时,具体用于:获得所述丢失数据分组的重传次数和/或确定网络的传输丢失率;确定与所述重传次数和/或所述网络的传输丢失率对应的分组数量;获得所述分组数量个数的目标数据分组。
另外,本发明提供了一种数据传输控制设备,包括:处理器和存储器,所述处理器通过运行存储在所述存储器内的软件程序、调用存储在所述存储器内的数据,实现上述任意一种数据传输控制方法。
另外,本发明提供了一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现上述任意一种数据传输控制方法。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括上述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种数据传输控制方法,其特征在于,应用于发送端,该方法包括:
向接收端发送数据分组,并将所述数据分组存于缓存队列中;
获得所述接收端返回的确认消息,所述确认消息携带有所述接收端确认的数据分组序号和所述数据分组的确认状态;
根据所述确认消息,在所述数据分组中确定丢失检测范围;将所述丢失检测范围内、接收端确认的数据分组序号之外的序号指示的数据分组确定为待检测数据分组;
根据所述待检测数据分组的逻辑位置,在所述待检测数据分组中确定丢失数据分组,所述待检测数据分组的逻辑位置可反映所述数据分组的发送先后顺序或者表示所述数据分组在缓存中的逻辑位置;
向所述接收端重传所述丢失数据分组;
其中,所述根据所述待检测数据分组的逻辑位置,在所述待检测数据分组中确定丢失数据分组,包括:
若待检测数据分组的序号与数据分组中指定数据分组的序号的差值在预设差值范围内,则将所述待检测数据分组的丢失标记次数加预设数值,得到目标丢失标记次数;
若待检测数据分组的序号与数据分组中指定数据分组的序号的差值未在预设差值范围内,则根据待检测数据分组在所述丢失检测范围中的逻辑位置,将所述待检测数据分组的丢失标记次数加与所述逻辑位置对应的数值,得到目标丢失标记次数;
将目标丢失标记次数满足预设重传条件的待检测数据分组确定为丢失数据分组。
2.根据权利要求1所述的数据传输控制方法,其特征在于,所述根据所述确认消息,在所述数据分组中确定丢失检测范围,包括:
根据所述确认消息,确定接收端确认的数据分组序号以及接收端接收到的最大数据分组序号;
获得发送端最小未确认数据分组序号;
根据所述发送端最小未确认数据分组序号以及接收端接收到的最大数据分组序号中确定丢失检测范围。
3.根据权利要求2所述的数据传输控制方法,其特征在于,所述根据所述发送端最小未确认数据分组序号以及接收端接收到的最大数据分组序号,在所述数据分组中确定丢失检测范围,包括:
将发送端最小未确认数据分组序号确定为检测范围起始边界;
将接收端接收到的最大数据分组序号确定为检测范围终止边界;
将所述检测范围起始边界以及所述检测范围终止边界组成的范围确定为丢失检测范围。
4.根据权利要求2所述的数据传输控制方法,其特征在于,所述根据所述发送端最小未确认数据分组序号以及接收端接收到的最大数据分组序号,在所述数据分组中确定丢失检测范围,包括:
将发送端最小未确认数据分组序号确定为检测范围起始边界;
获得发送端发送的最大数据分组序号,
将发送端发送的最大数据分组序号与接收端接收到的最大数据分组序号比对后得到待确认数据分组的个数,根据接收端接收到的最大数据分组序号及所述待确认数据分组的个数,确定检测范围终止边界;
将所述检测范围起始边界以及所述检测范围终止边界组成的范围确定为丢失检测范围。
5.根据权利要求4所述的数据传输控制方法,其特征在于,所述根据接收端接收到的最大数据分组序号及所述待确认数据分组的个数,确定检测范围终止边界,包括:
根据当前网络的传输性能确定检测系数;其中所述检测系数小于等于1;
将所述检测系数与所述待确认数据分组的个数相乘,相乘结果与接收端接收到的最大数据序号相加后得到检测范围终止边界。
6.根据权利要求1所述的数据传输控制方法,其特征在于,还包括:
获得目标数据分组,其中所述目标数据分组包括数据分组中的待确认数据分组和/或目标业务数据切分得到的新数据分组;
在重传丢失数据分组时,发送所述目标数据分组。
7.根据权利要求6所述的数据传输控制方法,其特征在于,所述获得目标数据分组,包括:
获得所述丢失数据分组的重传次数和/或确定网络的传输丢失率;
确定与所述重传次数和/或所述网络的传输丢失率对应的分组数量;
获得所述分组数量个数的目标数据分组。
8.一种数据传输控制装置,其特征在于,应用于发送端,该装置包括:
数据分组发送单元,用于向接收端发送数据分组,并将所述数据分组存于缓存队列中;
确认消息获得单元,用于获得所述接收端返回的确认消息,所述确认消息携带有所述接收端确认的数据分组序号和所述数据分组的确认状态;
待检测数据分组确定单元,用于根据所述确认消息,在所述数据分组中确定丢失检测范围;将所述丢失检测范围内、接收端确认的数据分组序号之外的序号指示的数据分组确定为待检测数据分组;
丢失数据分组确定单元,用于根据所述待检测数据分组的逻辑位置,在所述待检测数据分组中确定丢失数据分组,所述待检测数据分组的逻辑位置可反映所述数据分组的发送先后顺序或者表示所述数据分组在缓存中的逻辑位置;
丢失数据分组发送单元,用于向所述接收端重传所述丢失数据分组;
其中,所述丢失数据分组确定单元,用于:
若待检测数据分组的序号与数据分组中指定数据分组的序号的差值在预设差值范围内,则将所述待检测数据分组的丢失标记次数加预设数值,得到目标丢失标记次数;
若待检测数据分组的序号与数据分组中指定数据分组的序号的差值未在预设差值范围内,则根据待检测数据分组在所述丢失检测范围中的逻辑位置,将所述待检测数据分组的丢失标记次数加与所述逻辑位置对应的数值,得到目标丢失标记次数;
将目标丢失标记次数满足预设重传条件的待检测数据分组确定为丢失数据分组。
9.一种数据传输控制设备,其特征在于,包括:处理器和存储器,所述处理器通过运行存储在所述存储器内的软件程序、调用存储在所述存储器内的数据,实现如权利要求1-7任意一项所述的数据传输控制方法。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1-7任意一项所述的数据传输控制方法。
CN201910924835.9A 2019-09-27 2019-09-27 数据传输控制方法及相关设备、存储介质 Active CN110649994B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910924835.9A CN110649994B (zh) 2019-09-27 2019-09-27 数据传输控制方法及相关设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910924835.9A CN110649994B (zh) 2019-09-27 2019-09-27 数据传输控制方法及相关设备、存储介质

Publications (2)

Publication Number Publication Date
CN110649994A CN110649994A (zh) 2020-01-03
CN110649994B true CN110649994B (zh) 2022-03-22

Family

ID=69011659

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910924835.9A Active CN110649994B (zh) 2019-09-27 2019-09-27 数据传输控制方法及相关设备、存储介质

Country Status (1)

Country Link
CN (1) CN110649994B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112511269A (zh) * 2020-10-22 2021-03-16 漳州立达信光电子科技有限公司 数据传输方法、装置、设备及存储介质
CN114500658A (zh) * 2021-12-27 2022-05-13 广州极飞科技股份有限公司 数据传输方法和装置、飞行器的数据传输方法和装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4452983B2 (ja) * 2004-01-08 2010-04-21 ソニー株式会社 受信装置および方法、プログラム、並びに記録媒体
CN106162374B (zh) * 2016-06-29 2019-04-02 成都赛果物联网技术有限公司 一种低复杂度的帧内编码帧鲁棒传输方法及系统
WO2018049652A1 (zh) * 2016-09-18 2018-03-22 深圳市大疆创新科技有限公司 数据重传方法和装置
CN107204834B (zh) * 2017-05-25 2020-07-07 复旦大学 一种基于udt协议的高速网络可靠传输的控制方法
CN108377427B (zh) * 2018-01-29 2021-11-26 明博教育科技股份有限公司 一种实时视频传输方法和系统

Also Published As

Publication number Publication date
CN110649994A (zh) 2020-01-03

Similar Documents

Publication Publication Date Title
CN110620638B (zh) 数据传输控制方法及相关设备、存储介质
JP6650985B2 (ja) 通信システムにおける方法および装置
CN101594210B (zh) 通信设备和通信方法
CN100338899C (zh) 检测方法和设备
CN103138905B (zh) Rlc数据包传输的确认方法及rlc am实体发送方
CN110649994B (zh) 数据传输控制方法及相关设备、存储介质
US20020181437A1 (en) Data link transmission control methods, mobile communication systems, data link transmission control apparatus, base stations, mobile stations, mobile station control programs, and computer-readable recording media
EP1161022A1 (en) Selective repeat protocol with dynamic timers
CA2466231A1 (en) Time-aware best-effort hole-filling retry method and system for network communications
EP2175582A1 (en) A method for triggering status report of automatic repeat request
KR20030054666A (ko) 유무선 통합망에서 간접 승인을 이용한 패킷 전송 장치 및그 방법
US20080126562A1 (en) Data Flow Control With Duplicate Acknowledgement
CN105450969A (zh) 一种实时视频数据传输方法及电子设备
KR101075722B1 (ko) 이동통신시스템에서의 패킷 처리 결과 통보방법
US9762358B2 (en) Data retransmission scheme
CA2459103A1 (en) Improving communication efficiency and performance in an unreliable communication environment
US20160182608A1 (en) Retransmission control network node and related method
CN105227264B (zh) 一种无线链路控制层错误数据检测方法及装置
CN111405609B (zh) 一种数据传输方法、装置、系统、介质和设备
EP1745583A1 (en) Method, system and station for communicating data packets using arq
CN109756309B (zh) 去激活辅成员载波的方法、装置及介质
CN109428777B (zh) 一种检测分组丢失的方法及终端
CN106900017A (zh) 数据反传方法及装置
US9698943B2 (en) Receiving unit in a wireless communication network and method for generating an automatic repeat request feedback message
CN113259062B (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