CN110505039B - 一种数据传输控制方法、装置、设备及介质 - Google Patents
一种数据传输控制方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN110505039B CN110505039B CN201910918891.1A CN201910918891A CN110505039B CN 110505039 B CN110505039 B CN 110505039B CN 201910918891 A CN201910918891 A CN 201910918891A CN 110505039 B CN110505039 B CN 110505039B
- Authority
- CN
- China
- Prior art keywords
- sequence number
- data packet
- minimum
- receiving
- list
- 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
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/1607—Details of the supervisory signal
-
- 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
Abstract
本公开关于一种数据传输控制方法、装置、设备及介质,用以使发送端及时确认已发送数据的接收情况,实现往返时延估计,及时高效地重传数据,且占用较少的带宽。本公开的数据传输控制方法,包括:接收对端发送的数据包;将数据包的序号添加到用于记录已接收到数据包序号的接收列表中,数据包的序号为数据包中携带的序号;根据接收列表中包含的数据包的序号确定最小丢包序号,并删除所述接收列表中小于最小丢包序号的序号,最小丢包序号为本端未接收到的数据包的最小序号;在确定接收列表为空时,将最小丢包序号添加到本端发送至对端的数据包的第一指定字段中,以通知对端序号小于最小丢包序号的数据包均被接收。
Description
技术领域
本公开涉及网络通信领域,尤其涉及一种数据传输控制方法、装置、设备及介质。
背景技术
在网络传输的过程中,数据包有可能丢失,这时需要接收端发送一定的反馈信息通知发送端,发送端根据收到的反馈信息后,确定丢失的数据包,然后重传丢失的数据包以保证数据传输的完整性。
相关技术中,根据接收端发送的反馈消息的不同,主要有以下两种方案:
方案一、接收端向发送端反馈确认应答(Acknowledgement,ACK)消息此种方案中,接收端每收到一个数据包,都向发送端回复一个ACK消息。因为发送端有每个包的发送消息/接收信息,所以可以应用一些高效的重传策略,如快速重传、早期重传、尾部丢失探测等。
如图1所示,当收到了第12个数据包的ACK时,颜色1对应的数据包表示已经被快速重传标记成丢失;颜色2对应的数据包表示被早期重传保护,这个时候发送端会根据当前的往返时延(Round Trip Time,RTT)给每个数据包一个超时时间,超过给定时间后,若还未收到对应数据包的ACK,这个数据包就被标记为丢失;颜色3对应的数据包表示被尾部丢失探测保护,发送端也会根据当前RTT设定一个超时时间,超过给定时间后,若还未收到对应数据包的ACK,这个数据包就被标记为丢失。
此种方案中,由于接收端每收到一个数据包,都向发送端回复一个ACK消息,因此,ACK消息会额外占用带宽,在低带宽场景时,ACK消息将会影响正常数据包的发送。
方案二、接收端向发送端反馈否定应答(Negative Acknowledgement,NACK)消息
此种方案中,接收端维护一个队列M,队列M中存储目前认为是丢失的数据包的序号,当接收到一个新的数据包sn_new,如果sn_new>sn_last,则把sn_last和sn_new之间的数据包的序号都添加到队列M中,其中,sn_last表示之前收到数据包的最大序号,否则说明这是一个乱序包,把sn_new从队列M里删除。队列M有一定的容量,当超过阈值时,把部分数据包的序号删除直至容量满足要求。如果当前队列M非空,则生成NACK消息返回给发送端。
如图2所示,假设发送端向接收端发送序号为1-12的12个数据包,接收端目前认为序号5、序号6、序号8-序号11的数据包丢失,则将序号5、序号6、序号8-序号11添加到队列M中,并向发送端发送NACK消息,NACK消息中包含序号5、序号6、序号8-序号11。
此种方案中,由于NACK消息只有在丢包时才发送,所以发送端不能较好的控制缓存大小和估计参与排队但没有发送的数据情况,不能够对RTT有一个较好的估计,这会影响重传策略和带宽估计的设计。且此种方案接收端根据已收到的数据包判断更早的数据包是否丢失,对于后续正在传输的包没有任何信息,不能够如方案一实现尾部丢失探测、超时重传策略,同时由于缺乏准确的RTT估计,基于时间的一些重传策略也不能用,总体的重传效率和准确性会差一些。
在实时通信场景下,目前通常采用NACK消息反馈方案(也即方案二),虽然相比ACK消息反馈方案(方案一)损失了一些重传的效果,但可以节省码率,这在低带宽场景尤其重要。
综上,相关技术中缺乏一种能够同时实现RTT估计、高效重传策略和低带宽占用的反馈方案。
发明内容
本公开提供一种数据传输控制方法、装置、设备及介质,用以使发送端及时确认已发送数据的接收情况,实现往返时延RTT估计,及时高效地重传,且占用较少的带宽。
本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种数据传输控制方法,包括:
接收对端发送的数据包;
将数据包的序号添加到用于记录已接收到数据包序号的接收列表中,数据包的序号为数据包中携带的序号;
根据接收列表中包含的数据包的序号确定最小丢包序号,并删除接收列表中小于最小丢包序号的序号,最小丢包序号为本端未接收到的数据包的最小序号;
在确定接收列表为空时,将最小丢包序号添加到本端发送至对端的数据包的第一指定字段中,以通知对端序号小于最小丢包序号的数据包均被接收。
一种可能的实施方式中,本公开提供的数据传输控制方法,接收对端发送的数据包之后,方法还包括:
在确定数据包第二指定字段为非空时,获取数据包中第二指定字段的字段值,字段值用于指示停止等待序号小于字段值的数据包;
将最小丢包序号更新为当前最小丢包序号与字段值中的最大值,删除接收列表中小于更新后的最小丢包序号的序号,以更新接收列表;
在更新后的接收列表中重新确定最小丢包序号,删除接收列表中小于重新确定出的最小丢包序号的序号;
其中,当前最小丢包序号为获取所述数据包中第二指定字段的字段值之前,最后一次确定的最小丢包序号。
一种可能的实施方式中,本公开提供的数据传输控制方法,接收对端发送的数据包之后,方法还包括:
在确定接收到的数据包的序号小于当前最小丢包序号时,丢弃数据包。
一种可能的实施方式中,本公开提供的数据传输控制方法,在删除接收列表中小于最小丢包序号的序号之后,还包括:
在确定接收列表为非空时,通过确认应答ACK消息将接收列表中大于最小丢包序号的序号发送至对端,以使对端确定对端发送的数据包中被接收的数据包。
根据本公开实施例的第二方面,提供一种数据传输控制方法,包括:
接收对端发送的数据包;
获取数据包中第一指定字段的字段值,根据所述字段值确定本端发送的序号小于字段值的数据包已被对端接收,并在记录已发送数据包序号的发送列表中删除序号小于字段值的序号,其中,第一指定字段的字段值为对端确定的最小丢包序号,最小丢包序号为对端未接收到的数据包的最小序号。
一种可能的实施方式中,本公开提供的数据传输控制方法,还包括:
在发送列表中确定最小未确认接收序号,最小未确认接收序号为发送列表中的最小序号;
将最小未确认接收序号作为字段值,添加到本端发送至对端的数据包的第二指定字段中,以指示对端停止等待序号小于最小未确认接收序号的数据包。
一种可能的实施方式中,本公开提供的数据传输控制方法,还包括:
接收对端发送的ACK消息,ACK消息中包括对端接收到的数据包的序号;
基于ACK消息确定对端已接收数据包的序号,并在记录已发送数据包序号的发送列表中删除对端已接收数据包的序号。
一种可能的实施方式中,本公开提供的数据传输控制方法,还包括:
向对端重传目标发送列表中包含的序号对应的数据包,目标发送列表由发送列表中,小于删除对端已接收数据包的序号中的最大序号,的全部序号组成。
根据本公开实施例的第三方面,提供一种数据传输控制装置,包括:
接收单元,被配置为执行接收对端发送的数据包;
记录单元,被配置为执行将数据包的序号添加到用于记录已接收到数据包序号的接收列表中,数据包的序号为数据包中携带的序号;
确定单元,被配置为执行根据接收列表中包含的数据包的序号确定最小丢包序号,并删除接收列表中小于最小丢包序号的序号,最小丢包序号为本端未接收到的数据包的最小序号;
处理单元,被配置为执行在确定接收列表为空时,将最小丢包序号添加到本端发送至对端的数据包的第一指定字段中,以通知对端序号小于最小丢包序号的数据包均被接收。
一种可能的实施方式中,本公开提供的数据传输控制装置中,装置还包括:
获取单元,被配置为执行在确定数据包第二指定字段为非空时,获取数据包中第二指定字段的字段值,字段值用于指示停止等待序号小于字段值的数据包;
确定单元,还被配置为执行将最小丢包序号更新为当前最小丢包序号与字段值中的最大值,删除接收列表中小于更新后的最小丢包序号的序号,以更新接收列表,并在更新后的接收列表中重新确定最小丢包序号,删除接收列表中小于重新确定出的最小丢包序号的序号;
其中,当前最小丢包序号为获取数据包中第二指定字段的字段值之前,最后一次确定的最小丢包序号。
一种可能的实施方式中,本公开提供的数据传输控制装置中,处理单元,还被配置为执行:
在确定接收到的数据包的序号小于当前最小丢包序号时,丢弃数据包。
一种可能的实施方式中,本公开提供的数据传输控制装置中,处理单元,还被配置为执行:
在删除接收列表中小于最小丢包序号的序号之后,在确定接收列表为非空时,通过确认应答ACK消息将接收列表中大于最小丢包序号的序号发送至对端,以使对端确定对端发送的数据包中被接收的数据包。
根据本公开实施例的第四方面,提供一种数据传输控制装置,包括:
接收单元,被配置为执行接收对端发送的数据包;
处理单元,被配置为执行获取数据包中第一指定字段的字段值,根据字段值确定本端发送的序号小于字段值的数据包已被对端接收,并在记录已发送数据包序号的发送列表中删除序号小于字段值的序号,其中,第一指定字段的字段值为对端确定的最小丢包序号,最小丢包序号为对端未接收到的数据包的最小序号。
一种可能的实施方式中,本公开提供的数据传输控制装置中,装置还包括:
确定单元,被配置为执行在发送列表中确定最小未确认接收序号,最小未确认接收序号为发送列表中的最小序号;
处理单元,还被配置为执行将最小未确认接收序号作为字段值,添加到本端发送至对端的数据包的第二指定字段中,以指示对端停止等待序号小于最小未确认接收序号的数据包。
一种可能的实施方式中,本公开提供的数据传输控制装置中,接收单元,还被配置为执行接收对端发送的ACK消息,ACK消息中包括对端接收到的数据包的序号;
处理单元,还被配置为执行基于ACK消息确定对端已接收数据包的序号,并在记录已发送数据包序号的发送列表中删除对端已接收数据包的序号。
一种可能的实施方式中,本公开提供的数据传输控制装置中,装置还包括:
发送单元,具体被配置为执行向对端重传发送列表中包含的序号对应的数据包。
根据本公开实施例的第五方面,提供一种数据传输控制电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,处理器被配置为执行指令以实现第一方面和第二方面公开的数据传输控制方法。
根据本公开实施例的第六方面,提供一种存储介质,当存储介质中的指令由数据传输控制电子设备的处理器执行时,能够执行本公开实施例第一方面和第二方面公开的数据传输控制方法。
根据本公开实施例的第七方面,提供一种计算机程序产品,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,处理器被配置为执行指令以实现第一方面和第二方面公开的数据传输控制方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
接收对端发送的数据包,将数据包中携带的序号添加到用于记录已接收到数据包序号的接收列表中,根据接收列表中包含的数据包的序号确定最小丢包序号,并删除接收列表中小于最小丢包序号的序号,最小丢包序号为本端未接收到的数据包的最小序号,在确定接收列表为空时,将最小丢包序号添加到本端发送至对端的数据包的第一指定字段中,以通知对端序号小于最小丢包序号的数据包均被接收。与现有技术中的反馈方案相比,能使发送端及时确认已发送数据的接收情况,实现RTT估计,使发送端可以及时高效地重传已发送并未接收的数据,因最小丢包序号是通过接收端向发送端发送的数据包携带的,而不是反馈数据包,占用较少的带宽,避免反馈数据包加剧传输网络拥堵情况。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是相关技术中反馈确认应答反馈策略示意图。
图2是相关技术中反馈否定应答反馈策略示意图。
图3是根据一示例性实施例示出接收端的一种数据传输控制方法的示意图。
图4是根据一示例性实施例示出发送端的一种数据传输控制方法的示意图。
图5是根据一示例性实施例示出一种接收端与发送端交互的数据传输控制方法的示意图。
图6是根据一示例性实施例示出另一接收端与发送端交互的数据传输控制方法的示意图。
图7是根据一示例性实施例示出的一种数据传输控制方法的示意流程图。
图8是根据一示例性实施例示出的另一数据传输控制方法的示意流程图。
图9是根据一示例性实施例示出一种接收端的数据传输控制装置的结构示意图。
图10是根据一示例性实施例示出一种发送端的数据传输控制装置的结构示意图。
图11是根据一示例性实施例示出的一种数据传输控制设备的结构示意图。
图12是根据一示例性实施例示出的一种应用数据传输控制方法的终端的结构示意图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图3根据一示例性实施例示出的一种数据传输控制方法流程示意图,如图3所示,接收端的数据传输控制方法,包括以下步骤:
步骤S301,接收对端发送的数据包。
具体实施时,本端既可以接收对端发送的数据包,还可以向对端发送数据包,发送的数据包中,均携带有序号,用于标识数据包在本端发送多个数据包过程中的发送次序,接收的数据包中,也携带有序号,可以用于标识数据包在对端发送多个数据包过程中的发送次序,相邻序号间隔为1,例如,1、2、3、4等,还可以用于标识数据包在对端发送多个数据包过程中确定的数据包重要程度的次序,本领技术人员应当清楚,本端接收的数据包中携带的序号用于表征对端为数据包编号时的序号,区别于本端接收数据包时的次序,本发明对对端为数据包携带序号编号的方式,不做具体限定。
根据实际应用场景,还可以为数据包中的序号设置有效时间,在有效时间内,数据包中的序号可以正确表示本端在发送多个数据包过程中的次序。
步骤S302,将数据包的序号添加到用于记录已接收到数据包序号的接收列表中,数据包的序号为数据包中携带的序号。
具体实施时,记录接收到数据包序号的接收列表可以是一个接收队列,用于记录本端已接收到的数据包的序号,本端可以在接收到数据包时,将数据包的序号添加到接收队列中,也可以设置时间间隔,将一个时间间隔内接收到的全部数据包的序号添加到接收队列中。
步骤S303,根据接收列表中包含的数据包的序号确定最小丢包序号,并删除接收列表中小于最小丢包序号的序号,最小丢包序号为本端未接收到的数据包的最小序号。
具体实施时,最小丢包序号,为记录已接收数据包序号的接收列表中最小的未接收到序号,当本端没有接收到数据包时,可将最小丢包序号初始值设为1,为避免接收列表长度过长,超过最大长度,将小于确定的最小丢包序号的序号,从接收列表中删除。
例如,将已接收数据包的序号记录到接收列表,接收列表中的序号为1、2、4、5、7、9时,未接收到数据包的序号为3、6、8,10可确定最小丢包序号为3,并将小于最小丢包序号3的序号,从接收列表中删除,接收列表中的序号为4、5、7、9。
又例如,接收列表中的序号为3、4、6、7时,未接收到数据包的序号为1、2、5,8,其中最小丢包序号为1,由于最小丢包序号初始化值为1,也不存在序号小于1的序号,无需进行删除操作。
再例如,接收列表中的序号为1、2、3、4时,未接收到数据包的序号为5,最小丢包序号为5,删除接收列表中序号小于最小丢包序号的序号,接收列表中全部序号被删除,也即接收列表为空。
需要说明的是,在删除接收列表中序号小于最小丢包序号的序号后,若接收列表中还有序号,接收列表为非空,若接收列表中没有序号,接收列表为空。
步骤S304,在确定接收列表为空时,将最小丢包序号添加到本端发送至对端的数据包的第一指定字段中,以通知对端序号小于最小丢包序号的数据包均被接收。
具体实施时,删除接收列表中序号小于最小丢包序号的序号后,也即接收列表中全部序号被删除时,将确定的最小丢包序号放入本端向对端发送的数据包中,可由本端发送的给对端的数据包中第一指定字段携带,对端可以根据接收的数据包中第一指定字段中的最小丢包序号,确定序号小于最小丢包序号的数据包都被接收。
需要说明的是,数据包中的第一指定字段,可以是数据包的扩展字段,可以支持携带一些简单的信息,如序号等,扩展字段通过flag控制,可以灵活地动态添加和删除,并且占用带宽比相关技术中的反馈包占用的带宽小很多。
在确定接收列表为空,并且本端不向对端发送数据包时,也即最小丢失序号无法通过发送给对端数据包携带时,可以采用现有技术反馈确认应答消息,以通知对端已发送数据包的接收情况。
为在实际应用场景中,让对端确定哪些数据包被接收,本端可以在每个发送给对端的数据包中的指定字段中,添加最小丢包序号,以使对端及时确定被接收的数据包的序号,本端也可以按照预设周期,将最小丢包序号添加到发送给对端数据包中的指定字段,例如,每隔0.2ms,将最小丢包序号添加到发送给对端数据包中的指定字段,本端也可以每收到3个数据包时,将最小丢包序号添加到发送对端数据包中的指定字段。
一种可能的实时方式中,本公开提供的数据传输控制方法中,接收对端发送的数据包之后,还包括:
在确定数据包第二指定字段为非空时,获取数据包中第二指定字段的字段值,字段值用于指示停止等待序号小于字段值的数据包;将最小丢包序号更新为当前最小丢包序号与字段值中的最大值,删除接收列表中小于更新后的最小丢包序号的序号,以更新接收列表;在更新后的接收列表中重新确定最小丢包序号,删除接收列表中小于重新确定出的最小丢包序号的序号;其中,当前最小丢包序号为获取数据包中第二指定字段的字段值之前,最后一次确定的最小丢包序号。
具体实施时,数据包第二指定字段为非空时,第二指定字段中的字段值,为对端确定的停止等待序号,用于指示本端不需要等待接收序号小于停止等待序号的数据包,避免在发生数据包丢失的情形中,本端记录的接收列表中因未接收到数据包的序号导致接收列表不能为空,接收列表长度持续增加,甚至超过预设阈值。其中,停止等待序号,可以由对端主动放弃未确认接收的数据包时,将未放弃且未确认接收的数据包中最小序号确定为停止等待序号。数据包第二指定字段为空时,可以确认数据包中没有携带对端确定的停止等待序号。
本端在获取到对端指示停止等待的序号后,更新最小丢包序号为当前最小丢包序号和停止等待的序号中最大值,并更新接收列表,同时可以删除接收列表中小于更新后的最小丢包序号的序号,并在删除接收列表中小于更新后的最小丢包序号的序号后重新确定最小丢包序号,并删除接收列表中小于重新确定出的最小丢包序号的序号,其中,当前最小丢包序号为获取数据包中第二指定字段的字段值之前,也即获取停止等待序号之前,最后一次确定的最小丢包序号,也是最近一次确定的最小丢包序号。
例如,接收列表中的序号为1、2、4、5、7,当前最小丢包序号为3,假设在接收数据包中获取到的第二指定字段的字段值为5,也即对端指示停止等待的序号为5,更新最小丢包序号为3和5中的最大值,也即更新后的最小丢包序号为5,删除接收列表中序号小于5的序号,更新后的接收列表中的序号为5、7,接收列表被更新后,重新确定最小丢包序号为6,并删除接收列表中小于重新确定出的最小丢包序号6的序号,接收列表中序号为7。
当对端主动放弃未确定接收数据包时,本端可能会接收到对端主动放弃的数据包,在确定接收到的数据包的序号小于当前最小丢包序号时,丢弃数据包。
具体实施时,比较接收到的数据包序号与当前最小丢包序号,接收到的数据包序号小于当前最小丢包序号时,确定该接收到的数据包为对端主动放弃的未确定接收数据包,本端不需要将是否接收到该数据包的情况反馈给对端,可以直接丢弃该数据包。
传输数据包的网络中存在丢包情况时,也即在删除接收列表中小于最小丢包序号的序号之后,接收列表为非空时,通过确认应答ACK消息将接收列表中大于最小丢包序号的序号发送至对端,以通知对端其发送的数据包中被接收的数据包。
具体实施时,在删除接收列表中小于最小丢包序号的序号之后,接收列表为非空时,本端将接收列表中的序号,通过ACK消息,发送至对端,ACK消息包括接收列表中的全部序号,对端根据ACK信息,可以确定对端发送的数据包中被接收的数据包的序号,也可确定发送的数据包中未被接收的数据包的序号,从而可以确定重传数据包。
需要说明的是,ACK消息采用区间编码,例如接收列表中的序号为4、5、7、8、9、12,ACK消息为[4,5]、[7,9]、[12,12],也即用一个或多个区间表示区间端点及端点之间的序号均被接收。
图4根据一示例性实施例示出的一种数据传输控制方法流程示意图,如图4所示,发送端的数据传输控制方法,包括以下步骤:
步骤S401,接收对端发送的数据包。
具体实施时,本端既可以接收对端发送的数据包,还可以向对端发送数据包,本端和对端发送的数据包中,携带有序号,用于标识数据包在发送多个数据包过程中的发送次序,相邻序号间隔为1,例如,1、2、3、4等。
根据实际应用场景,还可以为数据包中的序号设置有效时间,在有效时间内,数据包中的序号可以正确表示在发送多个数据包过程中的次序。
步骤S402,获取数据包中第一指定字段的字段值,根据字段值确定本端发送的序号小于字段值的数据包已被对端接收,并在记录已发送数据包序号的发送列表中删除序号小于字段值的序号,其中,第一指定字段的字段值为对端确定的最小丢包序号,最小丢包序号为对端未接收到的数据包的最小序号。
具体实施时,对端可以从接收的数据包中的第一指定字段中,获得字段的字段值,这个字段值为对端确定的最小丢包序号(对端未接收到的数据包的最小序号),本端根据第一指定字段的字段值,可以确定发送给对端的数据包中,序号小于该字段值的数据包被对端接收,并在记录已发送数据包序号的发送列表中,将小于该字段值的序号删除,使发送列表中的序号为已发送且未被确认的数据包的序号,且避免发送列表长度超过最大长度。
需要说明的是,记录已发送数据包序号的发送列表可以是一个发送队列,用于记录本端已发送的数据包的序号,本端可以在发送数据包时,将数据包的序号添加到发送队列中,也可以设置时间间隔,将一个时间间隔内发送全部数据包的序号添加到发送队列中。
在实际应用场景中,本端可以通知对端,当前正在等待且未确认被接收的数据包的信息,在发送列表中确定最小未确认接收序号,最小未确认接收序号为发送列表中的最小序号;将最小未确认接收序号作为字段值,添加到本端发送至对端的数据包的第二指定字段中,以指示对端停止等待序号小于最小未确认接收序号的数据包。
根据不同应用场景,当发送列表长度达到最大长度时,在要求传输完全可靠时,本端可以停止继续发送数据包,直到接收到新的对端确定接收的反馈信息,避免发送列表长度过大;在实时通信场景,不要求数据的完全可靠性时,本端可以根据数据的重要性以及预先指定的数据包的优先级,删除一些优先级低的已发送且未被确认接收的数据包,并通知对端停止等待对应的数据包,同时在发送列表中,将删除的数据包的序号也删除,并更新最小未确认接收序号。
实际应用场景中,接收对端发送的ACK消息,ACK消息中包括对端接收到的数据包的序号;基于ACK消息确定对端已接收数据包的序号,并在记录已发送数据包序号的发送列表中删除对端已接收数据包的序号。
具体实施时,本端接收对端发送的ACK消息,ACK消息为对端确定接收数据包情况的反馈数据包,其中包括对端接收到的数据包的序号,也可以是对端记录存放已接收数据包序号的接收列表或接收队列,本端通过ACK消息,可以确定对端已接收数据包的序号,并在发送列表中删除对端已接收数据包的序号,以使发送列表中的序号为未确认对端接收的数据包的序号,避免发送列表长度过大。
本端接收到ACK消息时,确认存在丢包的可能,需要重新发送丢失的数据包,向对端重传发送列表中包含的序号对应的数据包。
具体实施时,本端可以通过ACK消息确定对端接收的数据包序号的情况,也可确定丢失的数据包的序号,可以重传确定丢失的数据包,由于发送列表中为已发送且未确认对端接收的数据包的序号,也可以重传发送列表中包含的序号对应的数据包,以使丢失的数据包通过重传被对端接收。
图5是根据一示例性实施例示出的一种数据传输控制方法,如图5所示,发送端和接收端交互的数据传输控制方法,包括以下步骤:
步骤S501,发送端向接收端发送数据包。
具体实施时,发送端向接收端发送数据包,在实时通信场景中,发送端和接收端均可以向对端发送数据包,发送端和接收端分别对本端发送的数据包设置序号,并将所设置的序号通过数据包携带,可以用于表示本端向对端发送数据包的次序。
步骤S502,发送端将已发送数据包的序号存入发送列表。
具体实施时,发送列表可以是用于存放已发送数据包序号的队列,发送列表中的序号随着已发送数据包的增多而增加。具体实施时,可以在发送端发送数据包时,将已发送数据包的序号存入发送列表中,也可以以预设时长为间隔,将预设时长内发送端发送的数据包的序号全部存入发送列表中,发送列表中的序号可以被删除,避免发送列表长度超过预设最大值。
需要说明的是,发送列表长度有限,换句话说,发送列表中存入的序号的数量有限,当发送列表长度过大时,反映出当前网络中,正在传输大量由发送端发送的数据包,并且未确认被接收。为避免网络堵塞或加剧网络拥堵程度,在发送列表长度等于预设最大值时,发送端停止发送数据包,发送列表被更新,且发送列表长度小于预设最大值时,发送端可继续发送数据包。
其中,发送列表长度的预设最大值可以根据不同的应用场景或业务需求设置相应的发送列表长度的最大值,也可以根据网络情况,动态地设置发送列表长度的最大值。
步骤S503,接收端接收数据,并将接收数据包的序号存入接收列表。
具体实施时,接收列表可以是用于存放接收数据包序号的队列,接收列表中的序号随着接收数据包的增多而增加。具体实施时,可以在接收端接收数据包时,将接收数据包的序号(数据包中携带的序号)存入接收列表中,也可以预设时长为间隔,将预设时长内接收端接收的数据包的序号全部存入接收列表中,接收列表中的序号可以被删除,避免接收列表长度超过最大长度。
步骤S504,接收端确定接收列表中最小的未被接收数据包的序号为最小丢包序号。
具体实施时,接收端根据接收列表中的序号,可以确定接收列表中未被接收数据包的序号,其中未被接收数据包的序号中的最小序号,被确定为最小丢包序号,最小丢包序号用于指示接收数据包的序号小于该最小丢包序号的数据包都被接收。
步骤S505,接收端删除接收列表中序号小于最小丢包序号的序号。
具体实施时,接收端在确认最小丢包序号后,更新接收列表,将接收列表中小于最小丢包序号的序号删除,使接收列表中的序号为大于最小丢包序号的序号,或者使接收列表为空。
例如,将接收数据包的序号记录到接收列表中,接收列表中的序号为1、2、4、5、7、9时,未接收到数据包的序号为3、6、8,10,则可确定最小丢包序号为3,并将小于最小丢包序号3的序号,从接收列表中删除,接收列表中的序号为4、5、7、9。
再例如,接收列表中的序号为1、2、3、4时,未接收到数据包的序号为5,最小丢包序号为5,删除接收列表中序号小于最小丢包序号的序号,接收列表中全部序号被删除,也即接收列表为空。
步骤S506,接收端确定接收列表为空。
具体实施时,接收列表中有序号时,确定接收列表为非空,接收列表中没有序号时,确定接收列表为空。
步骤S507,接收端发送数据包,携带最小丢包序号。
具体实施时,接收端将最小丢包序号添加到向发送端发送数据包的第一指定字段中,发送端根据接收的数据包中第一指定字段的字段值(最小丢包序号),确认发送列表中序号小于字段值(最小丢包序号)的数据包,被接收端接收。
步骤S508,发送端确定接收数据包中是否携带有最小丢包序号。
具体实施时,发送端接收的数据包,可以是接收端发送的数据包,也可以是接收端发送的反馈信息数据包,通过确定接收的数据包中的第一指定字段中的标志位确定接收的数据包不是反馈信息数据包,根据第一指定字段中的字段值,确定接收数据包中携带的最小丢包序号,其中第一指定字段中的字段值为最小丢包序号。
步骤S509,发送端删除发送列表中小于最小丢包序号的序号。
具体实施时,发送端根据最小丢包序号,可以确认已发送数据包中序号小于最小丢包序号的数据包,都被接收端接收,换句话说,最小丢包序号可以是反馈信息,用于向发送端反馈接收端已接收数据包的情况,能够使发送端及时获知已发送数据包被接收的情况,可将被确认接收的数据包的缓存删除,避免占用存储空间。
在实时通信场景中,不要求传输完全可靠性时,可以根据预先指定的数据包的优先级,将优先级较低的数据包的序号从发送列表中删除,使发送列表长度小于最大长度,发送端能够继续发送新的数据。
发送端更新发送列表,删除发送列表中小于最小丢包序号的序号,使发送列表中的序号为已发送且未确认接收的数据包的序号。
步骤S510,确定最小未确认接收序号,最小未确认接收序号为发送列表中的最小序号。
具体实施时,发送端将发送列表中最小序号确定为最小未确认接收序号,用于指示序号小于最小未确认接收序号的数据包,均已反馈接收。
步骤S511,发送端发送数据包,携带有最小未确认接收序号。
具体实施时,发送端将最小未确认接收序号添加到向接收端发送数据包的第二指定字段中,接收端根据接收的数据包中第二指定字段的字段值(最小未确认接收序号),确认接收列表中序号小于字段值的序号的数据包,不需要确认接收或等待接收。
步骤S512,接收端接收数据包,并将接收数据包的序号存入接收列表。
步骤S513,接收端确定最小丢包序号为最小未确认接收序号和当前最小丢包序号中的最大序号。
具体实施时,接收端通过确定接收的数据包中的第二指定字段中的标志位和字段值,可以确定接收数据包中携带有最小未确认接收序号,其中第二指定字段中的字段值为最小未确认接收序号,并确定当前最小丢包序号和最小未确认接收序号中的最大序号,将两者中最大的序号确定为最小丢包序号。
例如,当前最小丢包序号为13,最小未确认接收序号为15,确定最小丢包序号为15。再例如,当前最小丢包序号为5,最小未确认接收序号为3,确定最小丢包序号为5。
需要说明的是,接收端将接收数据包的序号存入接收列表,需确定最小丢包序号,确定的最小丢包序号与当前最小丢包序号不同时,更新最小丢包序号,并删除接收列表中序号小于最小丢包序号的序号,另外,在接收数据包中携带最小未确认接收序号时,需要将当前最小丢包序号和最小未确认序号比较,将两者中最大的序号确定为的最小丢包序号,并删除接收列表中序号小于最小丢包序号,使接收列表被更新,重新确定更新后的接收列表中最小丢包序号,并删除接收列表中序号小于重新确定的最小丢包序号。
换句话说,在接收列表中增加序号(步骤S503、步骤S512)或接收数据包中携带有最小未确认接收序号时,删除接收列表中序号(步骤S514)后,需要重新确定最小丢包序号,并在重新确定最小丢包序号后,更新接收列表,删除接收列表中序号小于最小丢包序号的序号,在接收数据包中携带有最小未确认接收序号(步骤S511)时,也需要重新确定最小丢包序号。
步骤S514,接收端删除接收列表中序号小于最小丢包序号的序号。
步骤S515,接收端确定接收列表未被接收数据包的最小序号为最小丢包序号。
具体实施时,接收端确定最小丢包序号后,下一步可继续执行步骤S506,循环本公开实施例中的上述数据传输控制步骤。
图6是根据一示例性实施例示出的一种数据传输控制方法,如图6所示,发送端和接收端交互的数据传输控制方法,包括以下步骤:
步骤S601,发送端向接收端发送数据包。
步骤S602,发送端将已发送数据包的序号存入发送列表。
步骤S603,接收端接收数据,并将接收数据包的序号存入接收列表。
步骤S604,接收端确定接收列表中最小的未被接收数据包的序号为最小丢包序号。
步骤S605,接收端删除接收列表中序号小于最小丢包序号的序号。
具体实施时,接收端在确认最小丢包序号后,更新接收列表,将接收列表中小于最小丢包序号的序号删除,使接收列表中的序号为大于最小丢包序号的序号,或者使接收列表为空。
例如,将接收数据包的序号记录到接收列表,接收列表中的序号为1、2、4、5、7、9时,未接收到数据包的序号为3、6、8,10可确定最小丢包序号为3,并将小于最小丢包序号3的序号,从接收列表中删除,接收列表中的序号为4、5、7、9。
再例如,接收列表中的序号为1、2、3、4时,未接收到数据包的序号为5,最小丢包序号为5,删除接收列表中序号小于最小丢包序号的序号,接收列表中全部序号被删除,也即接收列表为空。
步骤S606,接收端确定接收列表为非空。
具体实施时,接收列表中有序号时,确定接收列表为非空,接收列表中没有序号时,确定接收列表为空。
需要说明的是,接收列表为非空时,反映出当前传输环境中可能发生数据包丢失或者数据包乱序传输的情形,接收列表为非空时,当前最小丢包序号可能与连续几次确定的最小丢包序号相同,也即未发生最小丢包序号更新。
步骤S607,接收端根据接收列表中的序号,确定反馈消息。
具体实施时,反馈消息可以是标准ACK消息,可以采用区间编码的方式,根据接收列表中的序号,确定反馈消息。例如接收列表中的序号为3、4、5、7、8、9、12、14,ACK消息为[3,5]、[7,9]、[12,12]、[14,14],也即用一个或多个区间表示区间端点及端点之间的序号相应的数据包均被接收端接收。
反馈消息也可以是接收端与发送端预先约定的数据格式,能够根据反馈消息,确定接收端接收列表中的序号。
步骤S608,接收端向发送端发送反馈消息。
需要说明的是,反馈消息可以是标准ACK消息,可视为反馈数据包。
步骤S609,发送端根据接收的反馈消息中的序号,确定重发数据包。
具体实施时,根据反馈消息,例如ACK消息,确定发送列表中已发送且未确认接收的数据包的序号,并重发已发送且未确认接收的数据包。根据不同实际应用场景,也可以结合发送端主动放弃已发送且未确认接收数据包的序号或结合预先指定的数据包的优先级,确定重发数据包。
步骤S610,发送端重发数据包。
具体实施时,发送端重发的数据包时,将重发的数据包携带的序号,更改为当前发送次序的序号,重发的数据包中可以带有表示该数据包为重发数据包的标识。
需要说明的是,发送端发送数据包中,携带有最小未确认接收序号时,可执行图5中步骤S512至步骤S515的过程。
图7是根据一示例性实施例示出的一种数据传输控制方法示意图,如图7所示,图7中左侧为发送端数据包,右侧为接收端接收数据包,颜色1表示发送端已发送且被确认接收的数据包,也表示接收端接收的数据包,颜色2表示发送端已发送且未确认接收的数据包,也表示接收端未接收的数据包。
发送端发送了5个数据包,已发送的数据包中序号为1的数据包是被确认接收的数据包,此时发送端确定的最小未确认接收序号为2,发送列表中的序号为2、3、4、5。
接收端已接收数据包中携带的序号为1、2、3,并将序号添加到接收列表R中,接收列表R中的序号为1、2、3,可以确定接收端最小丢包序号为4,并将接收列表R中序号小于最小丢包序号4的序号删除,则接收列表中的序号全被删除,接收列表为空。
接收端将最小丢包序号4添加到向发送端发送的数据包的第一指定字段中。
发送端获取接收数据包中第一指定字段的字段值(最小丢包序号4),可以确认已发送数据中,序号小于最小丢包序号4的数据包都被接收,将发送列表中序号小于最小丢包序号4的序号删除,发送列表中序号为4、5。
图8是根据一示例性实施例示出的一种数据传输控制方法示意图,如图8所示,图8中左侧为发送端数据包,右侧为接收端接收数据包,颜色1表示发送端已发送且被确认接收的数据包,也表示接收端接收的数据包,颜色2表示发送端主动丢弃的数据包,颜色3表示发送端已发送且未确认接收的数据包,也表示接收端未接收的数据包。
发送端发送6个数据包,已发送的数据包的序号为1的数据包是被主动丢弃的数据包,发送队列中最小未确认接收序号为2,并通过发送给接收端的数据包携带,接收端获取接收数据包中第二指定字段的字段值,获知最小未确认接收序号为2,确定不需要继续等待序号小于2的数据包,并比较当前的最小丢包序号1,与最小未确认接收序号2,将两者中最大的序号,确定为最小丢包序号2。
删除接收队列中序号小于最小丢包序号2的序号,接收列表中的序号为3、5、6,此时接收列表为非空,接收端根据接收列表中的序号,确定反馈ACK消息,ACK消息为[3,3]、[5,6],并将ACK消息发送给发送端。
发送端接收到反馈的ACK消息时,可以确定序号为3、5、6被接收端接收了,删除发送列表中3、5、6的序号,发送列表中的序号为2、4。
图9是根据一示例性实施例示出的一种数据传输控制装置框图,如图9所示,该装置包括接收单元901,记录单元902,确定单元903,处理单元904。
接收单元901,被配置为执行接收对端发送的数据包。
记录单元902,被配置为执行将数据包的序号添加到用于记录已接收到数据包序号的接收列表中,数据包的序号为数据包中携带的序号。
确定单元903,被配置为执行根据接收列表中包含的数据包的序号确定最小丢包序号,并删除接收列表中小于最小丢包序号的序号,最小丢包序号为本端未接收到的数据包的最小序号。
处理单元904,被配置为执行在确定接收列表为空时,将最小丢包序号添加到本端发送至对端的数据包的第一指定字段中,以通知对端序号小于最小丢包序号的数据包均被接收。
一种可能的实施方式中,本公开提供的数据传输控制装置中,装置还包括:获取单元905。
获取单元905,被配置为执行在确定数据包第二指定字段为非空时,获取数据包中第二指定字段的字段值,字段值用于指示停止等待序号小于字段值的数据包。
确定单元903,还被配置为执行将最小丢包序号更新为当前最小丢包序号与字段值中的最大值,删除接收列表中小于更新后的最小丢包序号的序号,以更新接收列表,并在更新后的接收列表中重新确定最小丢包序号,删除接收列表中小于重新确定出的最小丢包序号的序号;
其中,当前最小丢包序号为获取数据包中第二指定字段的字段值之前,最后一次确定的最小丢包序号。
一种可能的实施方式中,本公开提供的数据传输控制装置中,处理单元904,还被配置为执行:
在确定接收到的数据包的序号小于当前最小丢包序号时,丢弃数据包。
一种可能的实施方式中,本公开提供的数据传输控制装置中,处理单元904,还被配置为执行:
在删除接收列表中小于最小丢包序号的序号之后,在确定接收列表为非空时,通过确认应答ACK消息将接收列表中大于最小丢包序号的序号发送至对端,以通知对端被接收的数据包。
图10是根据一示例性实施例示出的一种数据传输控制装置框图,如图10所示,该装置包括接收单元1001,处理单元1002。
接收单元1001,被配置为执行接收对端发送的数据包。
处理单元1002,被配置为执行获取数据包中第一指定字段的字段值,根据字段值确定本端发送的序号小于字段值的数据包已被对端接收,并在记录已发送数据包序号的发送列表中删除序号小于字段值的序号,其中,第一指定字段的字段值为对端确定的最小丢包序号,最小丢包序号为对端未接收到的数据包的最小序号。
一种可能的实施方式中,本公开提供的数据传输控制装置中,装置还包括:确定单元1003,。
确定单元1003,被配置为执行在发送列表中确定最小未确认接收序号,最小未确认接收序号为发送列表中的最小序号;
处理单元1002,还被配置为执行将最小未确认接收序号作为字段值,添加到本端发送至对端的数据包的第二指定字段中,以指示对端停止等待序号小于最小未确认接收序号的数据包。
一种可能的实施方式中,本公开提供的数据传输控制装置中,接收单元1001,还被配置为执行接收对端发送的ACK消息,ACK消息中包括对端接收到的数据包的序号;
处理单元1002,还被配置为执行基于ACK消息确定对端已接收数据包的序号,并在记录已发送数据包序号的发送列表中删除对端已接收数据包的序号。
一种可能的实施方式中,本公开提供的数据传输控制装置中,装置还包括:发送单元1004。
发送单元1004,具体被配置为执行向对端重传发送列表中包含的序号对应的数据包。
基于上述本公开实施例相同构思,图11是根据一示例性实施例示出的数据传输控制设备1100的框图,如图11所示,本公开实施例示出的数据传输控制设备1100包括:
处理器1110;
用于存储处理器1110可执行指令的存储器1120;
其中,处理器1110被配置为执行指令,以实现本公开实施例中数据传输控制方法。
在示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器1120,上述指令可由数据传输控制设备的处理器1110执行以完成上述方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在本公开实施例中,如图12所示,本公开实施例给出一种应用数据传输控制方法的终端1200,包括:射频(Radio Frequency,RF)电路1210、电源1220、处理器1230、存储器1240、输入单元1250、显示单元1260、摄像头1270、通信接口1280、以及无线保真(WirelessFidelity,Wi-Fi)模块1290等部件。本领域技术人员可以理解,图12中示出的终端的结构并不构成对终端的限定,本申请实施例提供的终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图12对所述终端1200的各个构成部件进行具体的介绍:
所述RF电路1210可用于通信或通话过程中,数据的接收和发送。特别地,所述RF电路1210在接收到基站的下行数据后,发送给所述处理器1230处理;另外,将待发送的上行数据发送给基站。通常,所述RF电路1210包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low Noise Amplifier,LNA)、双工器等。
此外,RF电路1210还可以通过无线通信与网络和其他终端通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(Global System of Mobilecommunication,GSM)、通用分组无线服务(General Packet Radio Service,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code DivisionMultiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。
Wi-Fi技术属于短距离无线传输技术,所述终端1200通过Wi-Fi模块1290可以连接接入点(Access Point,AP),从而实现数据网络的访问。所述Wi-Fi模块1290可用于通信过程中,数据的接收和发送。
所述终端1200可以通过所述通信接口1280与其他终端实现物理连接。可选的,所述通信接口1280与所述其他终端的通信接口通过电缆连接,实现所述终端1200和其他终端之间的数据传输。
由于在本申请实施例中,所述终端1200能够实现通信业务,向其他联系人发送信息,因此所述终端1200需要具有数据传输功能,即所述终端1200内部需要包含通信模块。虽然图12示出了所述RF电路1210、所述Wi-Fi模块1290、和所述通信接口1280等通信模块,但是可以理解的是,所述终端1200中存在上述部件中的至少一个或者其他用于实现通信的通信模块(如蓝牙模块),以进行数据传输。
例如,当所述终端1200为手机时,所述终端1200可以包含所述RF电路1210,还可以包含所述Wi-Fi模块1290;当所述终端1200为计算机时,所述终端1200可以包含所述通信接口1280,还可以包含所述Wi-Fi模块1290;当所述终端1200为平板电脑时,所述终端1200可以包含所述Wi-Fi模块。
所述存储器1240可用于存储软件程序以及模块。所述处理器1230通过运行存储在所述存储器1240的软件程序以及模块,从而执行所述终端1200的各种功能应用以及数据处理,并且当处理器1230执行存储器1240中的程序代码后,可以实现本公开实施例图3、图4、图5、图6中的部分或全部过程。
可选的,所述存储器1240可以主要包括存储程序区和存储数据区。其中,存储程序区可存储操作系统、各种应用程序(比如通信应用)以及人脸识别模块等;存储数据区可存储根据所述终端的使用所创建的数据(比如各种图片、视频文件等多媒体文件,以及人脸信息模板)等。
此外,所述存储器1240可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
所述输入单元1250可用于接收用户输入的数字或字符信息,以及产生与所述终端1200的用户设置以及功能控制有关的键信号输入。
可选的,输入单元1250可包括触控面板1251以及其他输入终端1252。
其中,所述触控面板1251,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在所述触控面板1251上或在所述触控面板1251附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,所述触控面板1251可以包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给所述处理器1230,并能接收所述处理器1230发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现所述触控面板1251。
可选的,所述其他输入终端1252可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
所述显示单元1260可用于显示由用户输入的信息或提供给用户的信息以及所述终端1200的各种菜单。所述显示单元1260即为所述终端1200的显示系统,用于呈现界面,实现人机交互。
所述显示单元1260可以包括显示面板1261。可选的,所述显示面板1261可以采用液晶显示屏(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-EmittingDiode,OLED)等形式来配置。
进一步的,所述触控面板1251可覆盖所述显示面板1261,当所述触控面板1251检测到在其上或附近的触摸操作后,传送给所述处理器1230以确定触摸事件的类型,随后所述处理器1230根据触摸事件的类型在所述显示面板1261上提供相应的视觉输出。
虽然在图12中,所述触控面板1251与所述显示面板1261是作为两个独立的部件来实现所述终端1200的输入和输入功能,但是在某些实施例中,可以将所述触控面板1251与所述显示面板1261集成而实现所述终端1200的输入和输出功能。
所述处理器1230是所述终端1200的控制中心,利用各种接口和线路连接各个部件,通过运行或执行存储在所述存储器1240内的软件程序和/或模块,以及调用存储在所述存储器1240内的数据,执行所述终端1200的各种功能和处理数据,从而实现基于所述终端的多种业务。
可选的,所述处理器1230可包括一个或多个处理单元。可选的,所述处理器1230可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到所述处理器1230中。
所述摄像头1270,用于实现所述终端1200的拍摄功能,拍摄图片或视频。所述摄像头1270还可以用于实现终端1200的扫描功能,对扫描对象(二维码/条形码)进行扫描。
所述终端1200还包括用于给各个部件供电的电源1220(比如电池)。可选的,所述电源1220可以通过电源管理系统与所述处理器1230逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗等功能。
需要说明的是,本公开实施例处理器1230可以执行图11中处理器1110的功能,存储器1240存储处理器1110中的内容。
另外,在示例性实施例中,本公开还提供了一种存储介质,当存储介质中的指令由上述数据传输控制设备的处理器执行时,使得上述数据传输控制设备能够实现本公开实施例中的数据传输控制方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (18)
1.一种数据传输控制方法,其特征在于,包括:
接收对端发送的数据包;
将所述数据包的序号添加到用于记录已接收到数据包序号的接收列表中,所述数据包的序号为所述数据包中携带的序号;
根据所述接收列表中包含的数据包的序号确定最小丢包序号,并删除所述接收列表中小于所述最小丢包序号的序号,所述最小丢包序号为本端未接收到的数据包的最小序号;
在确定所述接收列表为空时,将所述最小丢包序号添加到本端发送至所述对端的数据包的第一指定字段中,以通知所述对端序号小于所述最小丢包序号的数据包均被接收。
2.根据权利要求1所述的方法,其特征在于,所述接收对端发送的数据包之后,所述方法还包括:
在确定所述数据包中第二指定字段为非空时,获取所述数据包中第二指定字段的字段值,所述字段值用于指示停止等待序号小于所述字段值的数据包;
将所述最小丢包序号更新为当前最小丢包序号与所述字段值中的最大值,删除所述接收列表中小于更新后的最小丢包序号的序号,以更新所述接收列表;
在更新后的接收列表中重新确定最小丢包序号,删除所述接收列表中小于重新确定出的最小丢包序号的序号;
其中,所述当前最小丢包序号为所述获取所述数据包中第二指定字段的字段值之前,最后一次确定的最小丢包序号;
所述在更新后的接收列表中重新确定最小丢包序号包括:
在更新后的接收列表中,将本端未接收到的数据包的最小序号作为重新确定的所述最小丢包序号。
3.根据权利要求2所述的方法,其特征在于,所述接收对端发送的数据包之后,所述方法还包括:
在确定接收到的数据包的序号小于当前最小丢包序号时,丢弃所述数据包。
4.根据权利要求1-3中任一项所述的方法,其特征在于,在删除所述接收列表中小于所述最小丢包序号的序号之后,所述方法还包括:
在确定所述接收列表为非空时,通过确认应答ACK消息将所述接收列表中大于所述最小丢包序号的序号发送至所述对端,以通知所述对端被接收的数据包。
5.一种数据传输控制方法,其特征在于,包括:
接收对端发送的数据包;
获取所述数据包中第一指定字段的字段值,根据所述字段值确定本端发送的序号小于所述字段值的数据包已被对端接收,并在记录已发送数据包序号的发送列表中删除序号小于所述字段值的序号,其中,所述第一指定字段的字段值为所述对端确定的最小丢包序号,所述最小丢包序号为所述对端未接收到的数据包的最小序号。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在所述发送列表中确定最小未确认接收序号,所述最小未确认接收序号为所述发送列表中的最小序号;
将所述最小未确认接收序号作为字段值,添加到本端发送至所述对端的数据包的第二指定字段中,以指示所述对端停止等待序号小于所述最小未确认接收序号的数据包。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
接收所述对端发送的ACK消息,所述ACK消息中包括对端接收到的数据包的序号;
基于所述ACK消息确定对端已接收数据包的序号,并在记录已发送数据包序号的发送列表中删除对端已接收数据包的序号。
8.根据权利要求5-7中任一项所述的方法,其特征在于,所述方法还包括:
向所述对端重传所述发送列表中包含的序号对应的数据包。
9.一种数据传输控制装置,其特征在于,包括:
接收单元,被配置为执行接收对端发送的数据包;
记录单元,被配置为执行将所述数据包的序号添加到用于记录已接收到数据包序号的接收列表中,所述数据包的序号为所述数据包中携带的序号;
确定单元,被配置为执行根据所述接收列表中包含的数据包的序号确定最小丢包序号,并删除所述接收列表中小于所述最小丢包序号的序号,所述最小丢包序号为本端未接收到的数据包的最小序号;
处理单元,被配置为执行在确定所述接收列表为空时,将所述最小丢包序号添加到本端发送至所述对端的数据包的第一指定字段中,以通知所述对端序号小于所述最小丢包序号的数据包均被接收。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
获取单元,被配置为执行在确定所述数据包中第二指定字段为非空时,获取所述数据包中第二指定字段的字段值,所述字段值用于指示停止等待序号小于所述字段值的数据包;
所述确定单元,还被配置为执行将所述最小丢包序号更新为当前最小丢包序号与所述字段值中的最大值,删除所述接收列表中小于更新后的最小丢包序号的序号,以更新所述接收列表,并在更新后的接收列表中重新确定最小丢包序号,删除所述接收列表中小于重新确定出的最小丢包序号的序号;
其中,所述当前最小丢包序号为所述获取所述数据包中第二指定字段的字段值之前,最后一次确定的最小丢包序号;
其中,所述确定单元还用于:
在更新后的接收列表中,将本端未接收到的数据包的最小序号作为重新确定的所述最小丢包序号。
11.根据权利要求10所述的装置,其特征在于,所述处理单元,还被配置为执行:
在确定接收到的数据包的序号小于当前最小丢包序号时,丢弃所述数据包。
12.根据权利要求9-11中任一项所述的装置,其特征在于,所述处理单元,还被配置为执行:
在删除所述接收列表中小于所述最小丢包序号的序号之后,在确定所述接收列表为非空时,通过确认应答ACK消息将所述接收列表中大于所述最小丢包序号的序号发送至所述对端,以通知所述对端被接收的数据包。
13.一种数据传输控制装置,其特征在于,包括:
接收单元,被配置为执行接收对端发送的数据包;
处理单元,被配置为执行获取所述数据包中第一指定字段的字段值,根据所述字段值确定本端发送的序号小于所述字段值的数据包已被对端接收,并在记录已发送数据包序号的发送列表中删除序号小于所述字段值的序号,其中,所述第一指定字段的字段值为所述对端确定的最小丢包序号,所述最小丢包序号为所述对端未接收到的数据包的最小序号。
14.根据权利要求13所述的装置,其特征在于,所述装置还包括:
确定单元,被配置为执行在所述发送列表中确定最小未确认接收序号,所述最小未确认接收序号为所述发送列表中的最小序号;
所述处理单元,还被配置为执行将所述最小未确认接收序号作为字段值,添加到本端发送至所述对端的数据包的第二指定字段中,以指示所述对端停止等待序号小于所述最小未确认接收序号的数据包。
15.根据权利要求13所述的装置,其特征在于,
所述接收单元,还被配置为执行接收所述对端发送的ACK消息,所述ACK消息中包括对端接收到的数据包的序号;
所述处理单元,还被配置为执行基于所述ACK消息确定对端已接收数据包的序号,并在记录已发送数据包序号的发送列表中删除对端已接收数据包的序号。
16.根据权利要求13-15中任一项所述的装置,其特征在于,所述装置还包括:
发送单元,具体被配置为执行向所述对端重传所述发送列表中包含的序号对应的数据包。
17.一种数据传输控制设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至8中任一项所述的数据传输控制方法。
18.一种存储介质,当所述存储介质中的指令由数据传输控制设备的执行器执行时,使得所述数据传输控制电子设备能够执行如权利要求1至8中任一项所述的数据传输控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910918891.1A CN110505039B (zh) | 2019-09-26 | 2019-09-26 | 一种数据传输控制方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910918891.1A CN110505039B (zh) | 2019-09-26 | 2019-09-26 | 一种数据传输控制方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110505039A CN110505039A (zh) | 2019-11-26 |
CN110505039B true CN110505039B (zh) | 2022-04-01 |
Family
ID=68592718
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910918891.1A Active CN110505039B (zh) | 2019-09-26 | 2019-09-26 | 一种数据传输控制方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110505039B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110888790B (zh) * | 2019-11-29 | 2024-02-27 | 杭州迪普科技股份有限公司 | 日志管理方法及装置、电子设备、存储介质 |
CN114443095A (zh) * | 2022-01-21 | 2022-05-06 | 佛山市钒音科技有限公司 | 空调器升级方法、空调器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105939297A (zh) * | 2015-10-26 | 2016-09-14 | 杭州迪普科技有限公司 | 一种tcp报文重组方法和装置 |
CN108334557A (zh) * | 2017-12-29 | 2018-07-27 | 东软集团(上海)有限公司 | 一种聚合数据分析方法、装置、存储介质及电子设备 |
CN109947709A (zh) * | 2019-04-02 | 2019-06-28 | 北京百度网讯科技有限公司 | 数据存储方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8145610B1 (en) * | 2007-09-27 | 2012-03-27 | Emc Corporation | Passing information between server and client using a data package |
JP5590022B2 (ja) * | 2011-12-28 | 2014-09-17 | 富士通株式会社 | 情報処理装置、制御方法および制御プログラム |
-
2019
- 2019-09-26 CN CN201910918891.1A patent/CN110505039B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105939297A (zh) * | 2015-10-26 | 2016-09-14 | 杭州迪普科技有限公司 | 一种tcp报文重组方法和装置 |
CN108334557A (zh) * | 2017-12-29 | 2018-07-27 | 东软集团(上海)有限公司 | 一种聚合数据分析方法、装置、存储介质及电子设备 |
CN109947709A (zh) * | 2019-04-02 | 2019-06-28 | 北京百度网讯科技有限公司 | 数据存储方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110505039A (zh) | 2019-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107637125B (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 | |
JP2006311543A (ja) | 無線通信システムで伝送状態をポーリングする方法及び装置 | |
CN102217258B (zh) | 探测处理方法、数据发送端、数据接收端以及通信系统 | |
US9037935B2 (en) | Apparatus and method for retransmitting message in message transmission system | |
JP2007089177A (ja) | 無線通信システムにおける状態報告信号の伝送速度を改善する方法及び装置 | |
US11012724B2 (en) | Video transmission method, apparatus, and system, and computer readable storage medium | |
WO2012163156A1 (zh) | 传输信道信息的方法、设备和系统 | |
US20170164231A1 (en) | Data transmission method and base station | |
JP2008017492A (ja) | 無線通信システムにおいて伝送エラーを処理する方法及び装置 | |
CN110505039B (zh) | 一种数据传输控制方法、装置、设备及介质 | |
CN110719614B (zh) | 一种数据传输方法和系统 | |
CN101977358A (zh) | 一种数据短信的传输方法、装置及设备 | |
CN101202608B (zh) | 一种确认方式数据的传输方法及系统 | |
US10154416B2 (en) | Data processing method, and communications device and system | |
CN105245442A (zh) | 一种即时通讯im消息的传输方法及装置、系统 | |
CN110661995A (zh) | 视频组呼的丢包重传方法及系统 | |
WO2018082554A1 (zh) | 动态harq-ack反馈方法及装置 | |
KR100947530B1 (ko) | 무선통신시스템에서 데이터 전송상태를 폴링하는 방법 및장치 | |
EP3979536A1 (en) | Method and apparatus for transmitting hybrid automatic repeat request feedback, and storage medium | |
US11424864B2 (en) | Data packet retransmission method and apparatus | |
WO2021016971A1 (zh) | 数据传输方法和装置 | |
CN113939026A (zh) | 用户设备、网络侧设备及无线通信方法 | |
CN112470527B (zh) | 一种数据传输方法及装置 | |
CN112055342B (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 |