CN112291047A - 传输确认方法、装置、设备及存储介质 - Google Patents
传输确认方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112291047A CN112291047A CN202011280251.1A CN202011280251A CN112291047A CN 112291047 A CN112291047 A CN 112291047A CN 202011280251 A CN202011280251 A CN 202011280251A CN 112291047 A CN112291047 A CN 112291047A
- Authority
- CN
- China
- Prior art keywords
- data
- sequence number
- receiving
- sending
- target
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/187—Details of sliding window management
-
- 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
- H04L1/1614—Details of the supervisory signal using bitmaps
-
- 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
- H04L1/1829—Arrangements specially adapted for the receiver end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/04—Error control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/10—Flow control between communication endpoints
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
Abstract
本发明实施例公开了一种传输确认方法、装置、设备及存储介质。该方法应用于发送端,包括:如果检测到发送窗的当前长度小于长度上限,则获取待发送的目标数据,所述目标数据中携带目标序列号;发送所述目标数据至接收端,并根据所述目标序列号更新所述发送窗的当前长度;如果接收到接收端反馈的确认接收消息,则从所述确认接收消息中提取与所述发送窗对应的连续接收信息以及间断接收信息;根据所述连续接收信息更新所述发送窗的当前长度,根据所述间断接收信息确定所述发送窗对应的已发送数据中的待重传数据。本发明实施例的技术方案,利用滑窗实现数据的批量发送,减少发送端等待确认接收响应的时间,提高数据传输效率。
Description
技术领域
本发明实施例涉及无线通信技术领域,尤其涉及一种传输确认方法、装置、设备及存储介质。
背景技术
目前,当发送端与接收端传输数据时,通常采用停等的方式进行,即发送端在向接收端发送一个数据包后,会暂停数据包的发送,以等待接收端反馈与该数据包对应的确认接收响应,在接收到确认接收响应后,才会继续发送下一个数据包。这种数据传输方式虽然能保证每个数据包都被接收端成功接收,但是发送端等待确认接收响应的时间较长,导致数据传输效率较低。
发明内容
本发明提供一种传输确认方法、装置、设备及存储介质,利用滑窗实现数据的批量发送,减少发送端等待确认接收响应的时间,提高数据传输效率。
第一方面,本发明实施例提供了一种传输确认方法,应用于发送端,包括:
如果检测到发送窗的当前长度小于长度上限,则获取待发送的目标数据,目标数据中携带目标序列号;
发送目标数据至接收端,并根据目标序列号更新发送窗的当前长度;
如果接收到接收端反馈的确认接收消息,则从确认接收消息中提取与发送窗对应的连续接收信息以及间断接收信息;
根据连续接收信息更新发送窗的当前长度,根据间断接收信息确定发送窗对应的已发送数据中的待重传数据。
可选的,发送窗的当前长度等于发送窗对应的结束序列号与开始序列号的差值;
如果检测到发送窗的当前长度小于长度上限,则获取待发送的目标数据,包括:
如果检测到发送窗的当前长度小于长度上限,则检测是否存在待重传的数据,如果存在待重传数据,则选择序列号最小的待重传数据作为目标数据;
如果不存在待重传数据,则检测是否存在待发送新数据,如果存在待发送新数据,则选择一个待发送新数据作为目标数据。
可选的,发送目标数据至接收端,并根据目标序列号更新发送窗的当前长度,包括:
如果目标数据为待发送新数据,则在发送目标数据至接收端之后,将发送窗对应的结束序列号更新为目标序列号,保持发送窗对应的开始序列号不变,并将目标数据存储至待确认缓存区中;
如果目标数据为待重传数据,则在发送目标数据至接收端之后,保持发送窗对应的开始序列号和结束序列号都不变,并将目标数据存储至待确认缓存区中。
可选的,如果接收到接收端反馈的确认接收消息,则从确认接收消息中提取与发送窗对应的连续接收信息以及间断接收信息,包括:
如果接收到接收端反馈的确认接收消息,则解析确认接收消息,获取确认接收消息中与连续接收字段匹配的字段内容,并将字段内容作为与发送窗对应的连续接收信息;
获取确认接收消息中与间断接收字段匹配的字段内容,并将字段内容作为与发送窗对应的间断接收信息。
可选的,连续接收信息包括:接收端连续成功接收的最后一个数据对应的第一序列号;间断接收信息包括位图,位图表示待确认缓存区中序列号大于第一序列号的各待确认数据的接收情况;
根据连续接收信息更新发送窗的当前长度,根据间断接收信息确定发送窗对应的已发送数据中的待重传数据,包括:
将发送窗对应的开始序列号更新为第一序列号与1的和值,保持发送窗的结束序列号不变,并删除待确认缓存区内的序列号小于等于第一序列号的待确认数据;
根据位图中的各比特位与待确认缓存区内各待确认数据的序列号的映射关系,确定与位图中的各比特1分别对应的已接收序列号,以及与各比特0分别对应的未接收序列号;
删除待确认缓存区内与各已接收序列号对应的已确认数据,并将待确认缓存区内与各未接收序列号对应的待重传数据转存至待重传缓存区。
可选的,将待确认缓存区内与各未接收序列号对应的待重传数据转存至待重传缓存区,包括:
针对与各未接收序列号对应的待重传数据,获取待重传数据对应的已重传次数;
如果已重传次数小于重传上限,则将待重传数据转存至待重传缓存区;
如果已重传次数等于重传上限,则删除待重传数据,并且如果待重传数据对应的序列号等于发送窗对应的开始序列号,则将发送窗对应的开始序列号加1。
第二方面,本发明实施例还提供了一种传输确认方法,应用于接收端,包括:
如果接收到发送端发送的目标数据,则根据目标数据中携带的目标序列号更新接收信息;
响应于对发送确认接收消息的行为的触发操作,根据接收信息生成与发送端对应的确认接收消息,确认接收消息包括与发送窗对应的连续接收信息以及间断接收信息;
发送确认接收消息至发送端,以使发送端根据确认接收消息,更新发送窗的当前长度以及确定待重传数据。
可选的,接收信息包括:连续成功接收的最后一个数据对应的第一序列号,以及接收到的最后一个数据对应的第二序列号;
根据目标数据中携带的目标序列号更新接收信息,包括:
将第一序列号与1的和值作为对比序列号,如果目标序列号等于对比序列号,则判断第一序列号与第二序列号是否相等;
如果相等,则将第一序列号和第二序列号同时更新为目标序列号,如果不相等,则记录目标序列号;
如果目标序列号大于对比序列号,则判断第一序列号与第二序列号是否相等;
如果相等,则记录目标序列号,并将第二序列号更新为目标序列号;
如果不相等,则当目标序列号大于第二序列号时,记录目标序列号,并将第二序列号更新为目标序列号;当目标序列号大于第一序列号与发送窗的长度上限的和值时,将第一序列号更新为目标序列号与发送窗的长度上限的差值;当目标序列号小于第二序列号时,记录目标序列号。
可选的,根据接收信息生成与发送端对应的确认接收消息,包括:
确定位图中的各比特位与序列号集合中的各序列号之间的映射关系,序列号集合中包括大于第一序列号并且小于等于第二序列号的所有序列号;
根据映射关系,将位图中与各记录的序列号对应的比特位设为1,将其余比特位设为0;
将第一序列号添加至确认接收消息数据格式中的连续接收字段位置,并将位图添加至间断接收字段位置,生成确认接收消息。
第三方面,本发明实施例还提供了一种传输确认装置,应用于发送端,包括:
数据获取模块,用于如果检测到发送窗的当前长度小于长度上限,则获取待发送的目标数据,目标数据中携带目标序列号;
数据发送模块,用于发送目标数据至接收端,并根据目标序列号更新发送窗的当前长度;
消息接收模块,用于如果接收到接收端反馈的确认接收消息,则从确认接收消息中提取与发送窗对应的连续接收信息以及间断接收信息;
传输确定模块,用于根据连续接收信息更新发送窗的当前长度,根据间断接收信息确定发送窗对应的已发送数据中的待重传数据。
第四方面,本发明实施例还提供了一种传输确认装置,应用于接收端,包括:
数据接收模块,用于如果接收到发送端发送的目标数据,则根据目标数据中携带的目标序列号更新接收信息;
消息生成模块,用于响应于对发送确认接收消息的行为的触发操作,根据接收信息生成与发送端对应的确认接收消息,确认接收消息包括与发送窗对应的连续接收信息以及间断接收信息;
消息发送模块,用于发送确认接收消息至发送端,以使发送端根据确认接收消息,更新发送窗的当前长度以及确定待重传数据。
第五方面,本发明实施例还提供了一种电子设备,设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本发明任意实施例提供的传输确认方法。
第六方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例提供的传输确认方法。
本发明实施例的技术方案,发送端如果检测到发送窗的当前长度小于长度上限,则获取待发送的目标数据,目标数据中携带目标序列号;发送目标数据至接收端,并根据目标序列号更新发送窗的当前长度;如果接收到接收端反馈的确认接收消息,则从确认接收消息中提取与发送窗对应的连续接收信息以及间断接收信息;根据连续接收信息更新发送窗的当前长度,根据间断接收信息确定发送窗对应的已发送数据中的待重传数据,解决了现有技术中发送端等待确认接收响应的时间较长,数据传输效率较低的问题,利用滑窗实现数据的批量发送,减少发送端等待确认接收响应的时间,提高数据传输效率。
附图说明
图1a是本发明实施例一中的一种传输确认方法的流程图;
图1b是本发明实施例一中的一种数据发送的流程图;
图1c是本发明实施例一中的一种发送窗的更新示意图;
图2a是本发明实施例二中的一种传输确认方法的流程图;
图2b是本发明实施例二中的一种位图的构造示意图;
图3是本发明实施例三中的一种传输确认装置的结构示意图;
图4是本发明实施例四中的一种传输确认装置的结构示意图;
图5是本发明实施例五中的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1a是本发明实施例一中的一种传输确认方法的流程图,本实施例可适用于发送端批量传输数据,并确认数据接收情况的情况,该方法可以由传输确认装置来执行,该装置可以由硬件和/或软件来实现,并一般可以集成在电子设备中,例如作为发送端的电子设备中。如图1a所示,该方法应用于发送端,包括:
步骤110、如果检测到发送窗的当前长度小于长度上限,则获取待发送的目标数据。
其中,目标数据中携带目标序列号。
本实施例中,发送端是指发送数据的一端,与接收数据的接收端相对应。为了能够实现数据批量发送,发送端采用滑动窗口的方式控制数据传输,只要发送窗的长度没有达到设置的窗口的长度上限,发送端就可以继续发送数据。其中,发送窗的当前长度表示从第一个已发送但未被确认接收的数据开始,到最新发送的数据为止,所包括的数据总量,发送窗的长度上限表示在未获得确认接收消息之前,发送端最多可以发送的数据量,长度上限可以是8的整数倍。
本实施例中,为了便于后续确认各发送数据是否被成功接收,发送端在每个待发送的目标数据中都携带一个唯一标识该目标数据的目标序列号T_SN,并且,按照发送的先后顺序,每发送一个数据,序列号加1。例如,第一个发送数据的序列号为0,第二个发送数据的序列号为1,依次类推。
可选的,发送窗的当前长度等于发送窗对应的结束序列号与开始序列号的差值。
本实施例中,由于按照数据发送顺序,最先发送的数据如果确认被接收端收到,则发送窗就会后移一个位置,因此,发送窗的当前长度可以根据公式Window=(T_SNend-T_SNstart)=N*8计算得到,其中,T_SNstart表示已发送数据中第一个未被确认接收的数据的序列号,T_SNend表示最新发送的数据的序列号。其中,如果第一个发送的数据的序列号为0,则可以初始设置T_SNstart=T_SNend=0。
可选的,如果检测到发送窗的当前长度小于长度上限,则获取待发送的目标数据,可以包括:如果检测到发送窗的当前长度小于长度上限,则检测是否存在待重传的数据,如果存在待重传数据,则选择序列号最小的待重传数据作为目标数据;如果不存在待重传数据,则检测是否存在待发送新数据,如果存在待发送新数据,则选择一个待发送新数据作为目标数据。
本实施例中,发送端有待发送缓存区、待重传缓冲区以及待确认缓存区三个缓存区,待发送缓存区用于存储应用层下发的数据,即尚未发送过的新数据,待确认缓存区用于存储已发送但未被确认的数据,待重传缓存区用于缓存需要重传的数据。当有数据存入待处理缓存区或待重传缓存区时,会触发发送端的数据发送行为,如图1b所示,此时会检测发送窗的当前长度,如果当前长度Window小于长度上限M,则说明可以发送数据,需要从待发送缓存区或者待重传缓存区中选择待发送的目标数据。
本实施例中,考虑到只有在前发送过的待重传数据被接收端成功接收,发送窗才可以进行位置后移,使得更多新的数据可以被发送,因此,当选择待发送的目标数据时,会优先查看待重传缓存区中是否存在等待重传的数据,如图1b所示,如果有,则从中选择序列号最小的待重传数据,即最先发送过的待重传数据,也即序列号等于发送窗的开始序列号的数据作为目标数据,如果待重传缓存区中不存在待重传数据,则查看待发送缓存区中是否存在待发送新数据,如果有,则从中随机选择一个待发送新数据,或者按照存储顺序选择一个待发送新数据作为目标数据,并在该目标数据中添加相应的目标序列号。
需要说明的是,当触发发送端的数据发送行为时,如果发送窗的当前长度Window等于长度上限M,则不作任何处理,只需等待接收确认接收消息。
步骤120、发送目标数据至接收端,并根据目标序列号更新发送窗的当前长度。
本实施例中,在确定目标数据之后,可以将携带目标序列号的目标数据发送至接收端,并根据目标数据的类型,判断是否需要根据目标序列号更新发送窗的当前长度。
可选的,发送目标数据至接收端,并根据目标序列号更新发送窗的当前长度,可以包括:如果目标数据为待发送新数据,则在发送目标数据至接收端之后,将发送窗对应的结束序列号更新为目标序列号,保持发送窗对应的开始序列号不变,并将目标数据存储至待确认缓存区中;如果目标数据为待重传数据,则在发送目标数据至接收端之后,保持发送窗对应的开始序列号和结束序列号都不变,并将目标数据存储至待确认缓存区中。
本实施例中,如果目标数据为待发送缓存区中的新数据,即其对应的目标序列号尚未在发送窗内,则在发送目标数据至接收端之后,需要在保持发送窗对应的开始序列号不变的同时,将发送窗对应的结束序列号更新为目标序列号,以表示目标数据为发送窗最新发送的数据,并将目标数据存储至待确认缓存区中,等待接收端反馈对目标数据的接收情况;如果目标数据为待重传数据,即其对应的目标序列号已经在发送窗内,则在发送目标数据至接收端之后,不需要对发送窗对应的开始序列号和结束序列号进行更新,只需将目标数据存储至待确认缓存区中,等待接收端反馈对目标数据的接收情况。
步骤130、如果接收到接收端反馈的确认接收消息,则从确认接收消息中提取与发送窗对应的连续接收信息以及间断接收信息。
本实施例中,为了使得确认接收消息能够在反馈多个发送数据的接收情况的同时,使用最少的内存,发送端与接收端预先定义了与发送窗对应的确认接收消息的数据格式。针对接收端可以连续成功接收数据以及间断成功接收数据这两种情况,分别在确认接收消息的数据格式中设置了对应的字段,以用于指示接收端连续成功接收的数据以及间断成功接收的数据。
可选的,如果接收到接收端反馈的确认接收消息,则从确认接收消息中提取与发送窗对应的连续接收信息以及间断接收信息,可以包括:如果接收到接收端反馈的确认接收消息,则解析确认接收消息,获取确认接收消息中与连续接收字段匹配的字段内容,并将字段内容作为与发送窗对应的连续接收信息;获取确认接收消息中与间断接收字段匹配的字段内容,并将字段内容作为与发送窗对应的间断接收信息。
本实施例中,如果接收到接收端反馈的确认接收消息,则根据预先定义的数据格式解析确认接收消息,可以在确认接收消息中找到连续接收字段和间断接收字段,将与连续接收字段匹配的字段内容作为与发送窗对应的连续接收信息,将与间断接收字段匹配的字段内容作为间断接收信息。
步骤140、根据连续接收信息更新发送窗的当前长度,根据间断接收信息确定发送窗对应的已发送数据中的待重传数据。
可选的,连续接收信息包括:接收端连续成功接收的最后一个数据对应的第一序列号;间断接收信息包括位图,位图表示待确认缓存区中序列号大于第一序列号的各待确认数据的接收情况;
本实施例中,连续接收信息用于指示接收端连续成功接收数据的情况,可以是接收端连续成功接收的最后一个数据对应的第一序列号R_SNstart。示例性的,如图1c所示,接收端本次发送的确认接收消息中携带的R_SNstart为5,则认为序列号为5之前的所有数据,包括序列号为5的数据,都被接收端成功接收。间断接收信息用于指示接收端对剩余的发送数据间断接收的情况,间断接收信息可以包括位图,位图用于表示在连续接收的最新的数据之后的其他发送数据的接收情况。其中,可以设置位图的最大长度等于发送窗的长度上限,以使得接收端没有连续接收成功数据时,位图也可以表示所有发送数据的接收情况。
可选的,根据连续接收信息更新发送窗的当前长度,根据间断接收信息确定发送窗对应的已发送数据中的待重传数据,可以包括:将发送窗对应的开始序列号更新为第一序列号与1的和值,保持发送窗的结束序列号不变,并删除待确认缓存区内的序列号小于等于第一序列号的待确认数据;根据位图中的各比特位与待确认缓存区内各待确认数据的序列号的映射关系,确定与位图中的各比特1分别对应的已接收序列号,以及与各比特0分别对应的未接收序列号;删除待确认缓存区内与各已接收序列号对应的已确认数据,并将待确认缓存区内与各未接收序列号对应的待重传数据转存至待重传缓存区。
本实施例中,由于发送窗的开始序列号T_SNstart表示已发送数据中第一个未被确认接收的数据的序列号,而第一序列号对应的是接收端连续成功接收的最后一个数据对应的序列号,可知,第一序列号的下一个序列号对应的数据没有被接收端接收,因此,可以更新发送窗的开始序列号T_SNstart=R_SNstart+1。示例性的,如图1c所示,假设发送窗的长度上限M=16,接收端连续接收到序列号为0-5的6个数据,即R_SNstart=5,则发送窗的开始序列号可以被更新为T_SNstart=R_SNstart+1=5+1=6。同时,可以删除待确认缓存区内的序列号小于当前开始序列号的已接收成功数据。
本实施例中,位图对应序列号从T_SNstart到T_SNend的数据的接收情况,根据位图中的各比特位与待确认缓存区内各待确认数据的序列号的映射关系,例如,如图1c所示,位图BitMap中第一比特位对应序列号为6的数据的接收情况,第二比特位对应序列号为7的数据的接收情况,以此类推。确定与位图中的各比特1分别对应的已接收序列号,例如,图1c中的序列号6和10-14,以及与各比特0分别对应的未接收序列号,例如,图1c中的序列号7-9和15。删除待确认缓存区内与各已接收序列号对应的已接收数据,并将待确认缓存区内,与各未接收序列号对应的接收失败的待重传数据转存至待重传缓存区,以等待数据重传。
可选的,将待确认缓存区内与各未接收序列号对应的待重传数据转存至待重传缓存区,可以包括:针对与各未接收序列号对应的待重传数据,获取待重传数据对应的已重传次数;如果已重传次数小于重传上限,则将待重传数据转存至待重传缓存区;如果已重传次数等于重传上限,则删除待重传数据,并且如果待重传数据对应的序列号等于发送窗对应的开始序列号,则将发送窗对应的开始序列号加1。
本实施例中,针对经过多次发送之后还没有被接收端成功接收的数据,如果允许其继续重传,直至重传成功为止,则会导致发送窗一直无法后移,从而导致其他待发送的数据一直无法被传输,进而导致数据传输效率低下,为了解决该问题,可以为每个存入待确认缓存区的数据都设置一个生存期,当生存期内还没有收到该数据的确认接收消息,则删除该数据。例如,可以设置每个数据最多重传3次,如果经过3次重传还没有被成功接收,则删除该数据。如果该数据的序列号等于T_SNstart,即该数据为发送窗对应的已发送数据中第一个没有被成功接收的,则T_SNstart++。
本实施例通过在每个发送数据中携带一个对应的序列号,使得使用滑窗进行批量数据发送时,也可以准确得知各发送数据是否被接收端成功接收,即确定已发送数据中的待重传数据。
本发明实施例的技术方案,发送端如果检测到发送窗的当前长度小于长度上限,则获取待发送的目标数据,目标数据中携带目标序列号;发送目标数据至接收端,并根据目标序列号更新发送窗的当前长度;如果接收到接收端反馈的确认接收消息,则从确认接收消息中提取与发送窗对应的连续接收信息以及间断接收信息;根据连续接收信息更新发送窗的当前长度,根据间断接收信息确定发送窗对应的已发送数据中的待重传数据,解决了现有技术中发送端等待确认接收响应的时间较长,数据传输效率较低的问题,利用滑窗实现数据的批量发送,减少发送端等待确认接收响应的时间,提高数据传输效率。
实施例二
图2a是本发明实施例二中的一种传输确认方法的流程图,本实施例可适用于接收端生成与发送端发送的批量数据对应的确认接收消息,并反馈给发送端的情况,该方法可以由传输确认装置来执行,该装置可以由硬件和/或软件来实现,并一般可以集成在电子设备中,例如作为接收端的电子设备中。如图2a所示,该方法应用于接收端,包括:
步骤210、如果接收到发送端发送的目标数据,则根据目标数据中携带的目标序列号更新接收信息。
本实施例中,接收端是指接收数据的一端,与发送数据的发送端相对应。目标序列号可以是在目标数据中携带的可以唯一标识该目标数据的序列号T_SN。由于发送端按照发送的先后顺序,每发送一个新数据,对应的序列号加1,例如,发送的第一个新数据的序列号为0,第二个新数据的序列号为1,依次类推,因此,接收端可以根据接收的目标数据中携带的目标序列号,确定是否成功接收到全部的发送数据,并相应地更新接收信息。
可选的,接收信息包括:连续成功接收的最后一个数据对应的第一序列号,以及接收到的最后一个数据对应的第二序列号。
本实施例中,接收信息用于指示接收端对发送端当前发送的批量数据的接收情况,可以包括:接收端连续成功接收的最后一个数据对应的第一序列号R_SNstart,示例性的,如果R_SNstart为5,则认为序列号为5之前的所有数据,包括序列号为5的数据,都被接收端成功接收。以及,接收到的最后一个数据对应的第二序列号R_SNend。
可选的,根据目标数据中携带的目标序列号更新接收信息,可以包括:将第一序列号与1的和值作为对比序列号,如果目标序列号等于对比序列号,则判断第一序列号与第二序列号是否相等;如果相等,则将第一序列号和第二序列号同时更新为目标序列号,如果不相等,则记录目标序列号;
如果目标序列号大于对比序列号,则判断第一序列号与第二序列号是否相等;如果相等,则记录目标序列号,并将第二序列号更新为目标序列号;如果不相等,则当目标序列号大于第二序列号时,记录目标序列号,并将第二序列号更新为目标序列号;当目标序列号大于第一序列号与发送窗的长度上限的和值时,将第一序列号更新为目标序列号与发送窗的长度上限的差值;当目标序列号小于第二序列号时,记录目标序列号。
本实施例中,当接收端根据目标序列号更新接收信息时,由于序列号小于等于R_SNstart的目标数据都已经被成功接收,因此,如果目标序列号T_SN小于R_SNstart+1,则可以直接丢弃目标数据。如果T_SN=R_SNstart+1,即目标数据为连续成功接收后的第一个数据,则可以根据R_SNstart与R_SNend是否相等,判断当前是连续接收新的数据,还是间断接收重传数据。
本实施例中,当R_SNstart=R_SNend时,说明当前没有待重传数据,可以继续连续接收新的数据,此时,可以令R_SNstart=R_SNend=T_SN,即T_SN为连续接收的新数据的第一个。当R_SNstart≠R_SNend时,表示两者之间存在非连续成功接收的其他数据,即目标数据是重传数据,此时,需要开启接收等待定时器R_timet,以当定时器超时时,发送新的确认接收消息。同时,可以记录目标序列号,以用于在新的确认接收消息中指示与目标序列号对应的数据被成功接收。
其中,当接收端开启接收等待定时器时,需要判断定时器的当前状态,如果此时定时器处于关闭状态,则表示没有确认接收消息等待传输,此时,需要开启定时器,表示有新的确认接收消息等待传输;如果处于定时器已经处于开启状态,则不做其他处理。
本实施例中,如果T_SN>R_SNstart+1,则当前非连续接收数据,此时,如果R_SNstart=R_SNend,则表示在目标数据到达之前,一直处于连续接收,当前没有待重传数据,目标数据为非连续接收的数据,在其之前还有其他数据未被接收到,此时,可以记录目标序列号,并将第二序列号更新为R_SNend=T_SN。如果R_SNstart≠R_SNend,则可以分为三种情况进行说明。
第一种情况:T_SN大于R_SNend,表示之前就有非连续接收数据,本次接收的目标数据为最新的数据,例如,之前收到序列号为6、9、12的数据,本次接收到序列号为14的数据,此时,可以记录目标序列号T_SN,并将第二序列号更新为R_SNend=T_SN。
第二种情况:T_SN大于R_SNstart+M,示例性的,发送窗的长度上限M=8,接收端之前收到过序列号为6、9、12、14的数据,此时收到序列号为15的数据,由于此时序列号7-15之间包括9个数据,大于发送窗的长度上限8,因此,接收端即使没有收到序列号为7的数据,也将跳过对序列号7的数据的接收,即令R_SNstart=15-M=7,原因是发送端多次重传发送序列号为7的数据失败,放弃序列号为7的数据的传输,发送窗已经向后滑动了。
第三种情况:T_SN小于R_SNend,即目标数据为重传数据,此时只需记录目标序列号T_SN,以用于在新的确认接收消息中指示与目标序列号对应的数据被成功接收。
步骤220、响应于对发送确认接收消息的行为的触发操作,根据接收信息生成与发送端对应的确认接收消息。
其中,确认接收消息包括与发送窗对应的连续接收信息以及间断接收信息。
本实施例中,当接收端有数据需要发送到发送端,或者接收等待定时器超时,会触发确认接收消息发送行为,根据接收信息生成与发送端对应的确认接收消息,包括与发送窗对应的连续接收信息以及间断接收信息,其中,确认接收消息可以单独进行发送,也可以携带在接收端发送的数据包中进行发送。
可选的,根据接收信息生成与发送端对应的确认接收消息,可以包括:确定位图中的各比特位与序列号集合中的各序列号之间的映射关系,序列号集合中包括大于第一序列号并且小于等于第二序列号的所有序列号;根据映射关系,将位图中与各记录的序列号对应的比特位设为1,将其余比特位设为0;将第一序列号添加至确认接收消息数据格式中的连续接收字段位置,并将位图添加至间断接收字段位置,生成确认接收消息。
本实施例中,确认接收消息的数据格式由三部分组成,目的节点地址、R_SNstart以及BitMap。其中,BitMap为变长,长度为R_SNend-R_SNstart+1,长度最大占用N个子节,与发送端的窗口最大值相同。生成BitMap时,可以先计算位图的长度,然后确定位图中的各比特位与的序列号集中的各序列号的映射关系,序列号集中包括大于等于R_SNstart+1,并且小于等于R_SNend的所有序列号。每个比特位的取值用于指示对应序列号的数据的接收情况,当比特位置1时,代表对应序列号的数据成功接收;当比特位置0时,表示对应序列号的数据接收失败。
示例性的,如图2b所示,R_SNstart=5;位图长度为15-6+1=10,并且位图中第一比特位与序列号6对应,第二比特位与序列号7对应,以此类推。由于接受端记录了序列号7-9和15,因此,可以将位图中与序列号7-9以及序列号15对应的比特位设置为1,将其余比特位设置为0。,从而得到与发送窗对应的位图。将发送端的IP地址添加至确认接收消息数据格式中的目的节点地址字段位置,将R_SNstart=5添加至数据格式中的连续接收字段位置,并将位图添加至间断接收字段位置,生成确认接收消息。
步骤230、发送确认接收消息至发送端,以使发送端根据确认接收消息,更新发送窗的当前长度以及确定待重传数据。
本实施例中,将生成的确认接收消息发送至发送端,以使发送端根据确认接收消息中的第一序列号R_SNstart,将发送窗的开始序列号更新为T_SNstart=R_SNstart+1,并根据位图中的各比特位的取值确认缓存区内各数据的接收情况,确定其中的待重传数据。
本发明实施例的技术方案,接收端如果接收到发送端发送的目标数据,则根据目标数据中携带的目标序列号更新接收信息;响应于对发送确认接收消息的行为的触发操作,根据接收信息生成与发送端对应的确认接收消息,确认接收消息包括与发送窗对应的连续接收信息以及间断接收信息;发送确认接收消息至发送端,以使发送端根据确认接收消息,更新发送窗的当前长度以及确定待重传数据,解决了现有技术中发送端等待确认接收响应的时间较长,数据传输效率较低的问题,利用滑窗实现数据的批量发送,减少发送端等待确认接收响应的时间,提高数据传输效率。
实施例三
图3是本发明实施例三中的一种传输确认装置的结构示意图,本实施例可适用于发送端批量传输数据,并确认数据接收情况的情况,该装置可以由硬件和/或软件来实现,并一般可以集成在电子设备中,例如作为发送端的电子设备中。如图3所示,该装置应用于发送端,包括:
数据获取模块310,用于如果检测到发送窗的当前长度小于长度上限,则获取待发送的目标数据,目标数据中携带目标序列号;
数据发送模块320,用于发送目标数据至接收端,并根据目标序列号更新发送窗的当前长度;
消息接收模块330,用于如果接收到接收端反馈的确认接收消息,则从确认接收消息中提取与发送窗对应的连续接收信息以及间断接收信息;
传输确定模块340,用于根据连续接收信息更新发送窗的当前长度,根据间断接收信息确定发送窗对应的已发送数据中的待重传数据。
本发明实施例的技术方案,发送端如果检测到发送窗的当前长度小于长度上限,则获取待发送的目标数据,目标数据中携带目标序列号;发送目标数据至接收端,并根据目标序列号更新发送窗的当前长度;如果接收到接收端反馈的确认接收消息,则从确认接收消息中提取与发送窗对应的连续接收信息以及间断接收信息;根据连续接收信息更新发送窗的当前长度,根据间断接收信息确定发送窗对应的已发送数据中的待重传数据,解决了现有技术中发送端等待确认接收响应的时间较长,数据传输效率较低的问题,利用滑窗实现数据的批量发送,减少发送端等待确认接收响应的时间,提高数据传输效率。
可选的,发送窗的当前长度等于发送窗对应的结束序列号与开始序列号的差值;
数据获取模块310,用于:
如果检测到发送窗的当前长度小于长度上限,则检测是否存在待重传的数据,如果存在待重传数据,则选择序列号最小的待重传数据作为目标数据;
如果不存在待重传数据,则检测是否存在待发送新数据,如果存在待发送新数据,则选择一个待发送新数据作为目标数据。
可选的,数据发送模块320,用于:
如果目标数据为待发送新数据,则在发送目标数据至接收端之后,将发送窗对应的结束序列号更新为目标序列号,保持发送窗对应的开始序列号不变,并将目标数据存储至待确认缓存区中;
如果目标数据为待重传数据,则在发送目标数据至接收端之后,保持发送窗对应的开始序列号和结束序列号都不变,并将目标数据存储至待确认缓存区中。
可选的,消息接收模块330,用于:
如果接收到接收端反馈的确认接收消息,则解析确认接收消息,获取确认接收消息中与连续接收字段匹配的字段内容,并将字段内容作为与发送窗对应的连续接收信息;
获取确认接收消息中与间断接收字段匹配的字段内容,并将字段内容作为与发送窗对应的间断接收信息。
可选的,连续接收信息包括:接收端连续成功接收的最后一个数据对应的第一序列号;间断接收信息包括位图,位图表示待确认缓存区中序列号大于第一序列号的各待确认数据的接收情况;
传输确定模块340,用于:
将发送窗对应的开始序列号更新为第一序列号与1的和值,保持发送窗的结束序列号不变,并删除待确认缓存区内的序列号小于等于第一序列号的待确认数据;
根据位图中的各比特位与待确认缓存区内各待确认数据的序列号的映射关系,确定与位图中的各比特1分别对应的已接收序列号,以及与各比特0分别对应的未接收序列号;
删除待确认缓存区内与各已接收序列号对应的已确认数据,并将待确认缓存区内与各未接收序列号对应的待重传数据转存至待重传缓存区。
可选的,传输确定模块340,用于:
针对与各未接收序列号对应的待重传数据,获取待重传数据对应的已重传次数;
如果已重传次数小于重传上限,则将待重传数据转存至待重传缓存区;
如果已重传次数等于重传上限,则删除待重传数据,并且如果待重传数据对应的序列号等于发送窗对应的开始序列号,则将发送窗对应的开始序列号加1。
本发明实施例所提供的传输确认装置,可执行本发明任意实施例所提供的应用于发送端的传输确认方法,具备执行方法相应的功能模块和有益效果。
实施例四
图4是本发明实施例四中的一种传输确认装置的结构示意图,本实施例可适用于接收端生成与发送端发送的批量数据对应的确认接收消息,并反馈给发送端的情况,该装置可以由硬件和/或软件来实现,并一般可以集成在电子设备中,例如作为接收端的电子设备中。如图4所示,该装置应用于接收端,包括:
数据接收模块410,用于如果接收到发送端发送的目标数据,则根据目标数据中携带的目标序列号更新接收信息;
消息生成模块420,用于响应于对发送确认接收消息的行为的触发操作,根据接收信息生成与发送端对应的确认接收消息,确认接收消息包括与发送窗对应的连续接收信息以及间断接收信息;
消息发送模块430,用于发送确认接收消息至发送端,以使发送端根据确认接收消息,更新发送窗的当前长度以及确定待重传数据。
本发明实施例的技术方案,接收端如果接收到发送端发送的目标数据,则根据目标数据中携带的目标序列号更新接收信息;响应于对发送确认接收消息的行为的触发操作,根据接收信息生成与发送端对应的确认接收消息,确认接收消息包括与发送窗对应的连续接收信息以及间断接收信息;发送确认接收消息至发送端,以使发送端根据确认接收消息,更新发送窗的当前长度以及确定待重传数据,解决了现有技术中发送端等待确认接收响应的时间较长,数据传输效率较低的问题,利用滑窗实现数据的批量发送,减少发送端等待确认接收响应的时间,提高数据传输效率。
可选的,接收信息包括:连续成功接收的最后一个数据对应的第一序列号,以及接收到的最后一个数据对应的第二序列号;
数据接收模块410,用于:
将第一序列号与1的和值作为对比序列号,如果目标序列号等于对比序列号,则判断第一序列号与第二序列号是否相等;
如果相等,则将第一序列号和第二序列号同时更新为目标序列号,如果不相等,则记录目标序列号;
如果目标序列号大于对比序列号,则判断第一序列号与第二序列号是否相等;
如果相等,则记录目标序列号,并将第二序列号更新为目标序列号;
如果不相等,则当目标序列号大于第二序列号时,记录目标序列号,并将第二序列号更新为目标序列号;当目标序列号大于第一序列号与发送窗的长度上限的和值时,将第一序列号更新为目标序列号与发送窗的长度上限的差值;当目标序列号小于第二序列号时,记录目标序列号。
可选的,消息生成模块420,用于:
确定位图中的各比特位与序列号集合中的各序列号之间的映射关系,序列号集合中包括大于第一序列号并且小于等于第二序列号的所有序列号;
根据映射关系,将位图中与各记录的序列号对应的比特位设为1,将其余比特位设为0;
将第一序列号添加至确认接收消息数据格式中的连续接收字段位置,并将位图添加至间断接收字段位置,生成确认接收消息。
本发明实施例所提供的传输确认装置,可执行本发明任意实施例所提供的应用于接收端的传输确认方法,具备执行方法相应的功能模块和有益效果。
实施例五
图5为本发明实施例五公开的一种电子设备的结构示意图。图5示出了适于用来实现本发明实施方式的示例性设备12的框图。图5显示的设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,设备12以通用计算设备的形式表现,可以是发送数据的发送端设备,或者是向发送端反馈确认接收消息的接收端设备。设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该设备12交互的设备通信,和/或与使得该设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与设备12的其它模块通信。应当明白,尽管图中未示出,可以结合设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的传输确认方法。
也即:实现一种传输确认方法,应用于发送端,包括:如果检测到发送窗的当前长度小于长度上限,则获取待发送的目标数据,目标数据中携带目标序列号;发送目标数据至接收端,并根据目标序列号更新发送窗的当前长度;如果接收到接收端反馈的确认接收消息,则从确认接收消息中提取与发送窗对应的连续接收信息以及间断接收信息;根据连续接收信息更新发送窗的当前长度,根据间断接收信息确定发送窗对应的已发送数据中的待重传数据。
或者,实现一种传输确认方法,应用于接收端,包括:如果接收到发送端发送的目标数据,则根据目标数据中携带的目标序列号更新接收信息;响应于对发送确认接收消息的行为的触发操作,根据接收信息生成与发送端对应的确认接收消息,确认接收消息包括与发送窗对应的连续接收信息以及间断接收信息;发送确认接收消息至发送端,以使发送端根据确认接收消息,更新发送窗的当前长度以及确定待重传数据。
实施例六
本发明实施例六还提供一种计算机可读存储介质,其上存储有计算机程序,程序在被计算机处理器执行时用于执行一种传输确认方法。
也即:实现一种传输确认方法,应用于发送端,包括:如果检测到发送窗的当前长度小于长度上限,则获取待发送的目标数据,目标数据中携带目标序列号;发送目标数据至接收端,并根据目标序列号更新发送窗的当前长度;如果接收到接收端反馈的确认接收消息,则从确认接收消息中提取与发送窗对应的连续接收信息以及间断接收信息;根据连续接收信息更新发送窗的当前长度,根据间断接收信息确定发送窗对应的已发送数据中的待重传数据。
或者,实现一种传输确认方法,应用于接收端,包括:如果接收到发送端发送的目标数据,则根据目标数据中携带的目标序列号更新接收信息;响应于对发送确认接收消息的行为的触发操作,根据接收信息生成与发送端对应的确认接收消息,确认接收消息包括与发送窗对应的连续接收信息以及间断接收信息;发送确认接收消息至发送端,以使发送端根据确认接收消息,更新发送窗的当前长度以及确定待重传数据。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (13)
1.一种传输确认方法,其特征在于,应用于发送端,包括:
如果检测到发送窗的当前长度小于长度上限,则获取待发送的目标数据,所述目标数据中携带目标序列号;
发送所述目标数据至接收端,并根据所述目标序列号更新所述发送窗的当前长度;
如果接收到接收端反馈的确认接收消息,则从所述确认接收消息中提取与所述发送窗对应的连续接收信息以及间断接收信息;
根据所述连续接收信息更新所述发送窗的当前长度,根据所述间断接收信息确定所述发送窗对应的已发送数据中的待重传数据。
2.根据权利要求1所述的方法,其特征在于,所述发送窗的当前长度等于所述发送窗对应的结束序列号与开始序列号的差值;
如果检测到发送窗的当前长度小于长度上限,则获取待发送的目标数据,包括:
如果检测到发送窗的当前长度小于长度上限,则检测是否存在待重传的数据,如果存在待重传数据,则选择序列号最小的待重传数据作为目标数据;
如果不存在待重传数据,则检测是否存在待发送新数据,如果存在待发送新数据,则选择一个待发送新数据作为目标数据。
3.根据权利要求2所述的方法,其特征在于,发送所述目标数据至接收端,并根据所述目标序列号更新所述发送窗的当前长度,包括:
如果所述目标数据为待发送新数据,则在发送所述目标数据至接收端之后,将所述发送窗对应的结束序列号更新为所述目标序列号,保持所述发送窗对应的开始序列号不变,并将所述目标数据存储至待确认缓存区中;
如果所述目标数据为待重传数据,则在发送所述目标数据至接收端之后,保持所述发送窗对应的开始序列号和结束序列号都不变,并将所述目标数据存储至待确认缓存区中。
4.根据权利要求1所述的方法,其特征在于,如果接收到接收端反馈的确认接收消息,则从所述确认接收消息中提取与所述发送窗对应的连续接收信息以及间断接收信息,包括:
如果接收到接收端反馈的确认接收消息,则解析所述确认接收消息,获取所述确认接收消息中与连续接收字段匹配的字段内容,并将所述字段内容作为与所述发送窗对应的连续接收信息;
获取所述确认接收消息中与间断接收字段匹配的字段内容,并将所述字段内容作为与所述发送窗对应的间断接收信息。
5.根据权利要求4所述的方法,其特征在于,所述连续接收信息包括:接收端连续成功接收的最后一个数据对应的第一序列号;所述间断接收信息包括位图,所述位图表示待确认缓存区中序列号大于所述第一序列号的各待确认数据的接收情况;
根据所述连续接收信息更新所述发送窗的当前长度,根据所述间断接收信息确定所述发送窗对应的已发送数据中的待重传数据,包括:
将所述发送窗对应的开始序列号更新为所述第一序列号与1的和值,保持所述发送窗的结束序列号不变,并删除待确认缓存区内的序列号小于等于所述第一序列号的待确认数据;
根据所述位图中的各比特位与待确认缓存区内各待确认数据的序列号的映射关系,确定与所述位图中的各比特1分别对应的已接收序列号,以及与各比特0分别对应的未接收序列号;
删除待确认缓存区内与各已接收序列号对应的已确认数据,并将待确认缓存区内与各未接收序列号对应的待重传数据转存至待重传缓存区。
6.根据权利要求5所述的方法,其特征在于,将待确认缓存区内与各未接收序列号对应的待重传数据转存至待重传缓存区,包括:
针对与各未接收序列号对应的待重传数据,获取所述待重传数据对应的已重传次数;
如果所述已重传次数小于重传上限,则将所述待重传数据转存至待重传缓存区;
如果所述已重传次数等于重传上限,则删除所述待重传数据,并且如果所述待重传数据对应的序列号等于所述发送窗对应的开始序列号,则将所述发送窗对应的开始序列号加1。
7.一种传输确认方法,其特征在于,应用于接收端,包括:
如果接收到发送端发送的目标数据,则根据所述目标数据中携带的目标序列号更新接收信息;
响应于对发送确认接收消息的行为的触发操作,根据所述接收信息生成与所述发送端对应的确认接收消息,所述确认接收消息包括与发送窗对应的连续接收信息以及间断接收信息;
发送所述确认接收消息至所述发送端,以使所述发送端根据所述确认接收消息,更新发送窗的当前长度以及确定待重传数据。
8.根据权利要求7所述的方法,其特征在于,所述接收信息包括:连续成功接收的最后一个数据对应的第一序列号,以及接收到的最后一个数据对应的第二序列号;
根据所述目标数据中携带的目标序列号更新接收信息,包括:
将所述第一序列号与1的和值作为对比序列号,如果所述目标序列号等于所述对比序列号,则判断所述第一序列号与所述第二序列号是否相等;
如果相等,则将所述第一序列号和所述第二序列号同时更新为所述目标序列号,如果不相等,则记录所述目标序列号;
如果所述目标序列号大于所述对比序列号,则判断所述第一序列号与所述第二序列号是否相等;
如果相等,则记录所述目标序列号,并将所述第二序列号更新为所述目标序列号;
如果不相等,则当所述目标序列号大于所述第二序列号时,记录所述目标序列号,并将所述第二序列号更新为所述目标序列号;当所述目标序列号大于所述第一序列号与发送窗的长度上限的和值时,将所述第一序列号更新为所述目标序列号与所述发送窗的长度上限的差值;当所述目标序列号小于所述第二序列号时,记录所述目标序列号。
9.根据权利要求8所述的方法,其特征在于,根据所述接收信息生成与所述发送端对应的确认接收消息,包括:
确定位图中的各比特位与序列号集合中的各序列号之间的映射关系,所述序列号集合中包括大于所述第一序列号并且小于等于所述第二序列号的所有序列号;
根据所述映射关系,将位图中与各记录的序列号对应的比特位设为1,将其余比特位设为0;
将所述第一序列号添加至确认接收消息数据格式中的连续接收字段位置,并将所述位图添加至间断接收字段位置,生成确认接收消息。
10.一种传输确认装置,其特征在于,应用于发送端,包括:
数据获取模块,用于如果检测到发送窗的当前长度小于长度上限,则获取待发送的目标数据,所述目标数据中携带目标序列号;
数据发送模块,用于发送所述目标数据至接收端,并根据所述目标序列号更新所述发送窗的当前长度;
消息接收模块,用于如果接收到接收端反馈的确认接收消息,则从所述确认接收消息中提取与所述发送窗对应的连续接收信息以及间断接收信息;
传输确定模块,用于根据所述连续接收信息更新所述发送窗的当前长度,根据所述间断接收信息确定所述发送窗对应的已发送数据中的待重传数据。
11.一种传输确认装置,其特征在于,应用于接收端,包括:
数据接收模块,用于如果接收到发送端发送的目标数据,则根据所述目标数据中携带的目标序列号更新接收信息;
消息生成模块,用于响应于对发送确认接收消息的行为的触发操作,根据所述接收信息生成与所述发送端对应的确认接收消息,所述确认接收消息包括与发送窗对应的连续接收信息以及间断接收信息;
消息发送模块,用于发送所述确认接收消息至所述发送端,以使所述发送端根据所述确认接收消息,更新发送窗的当前长度以及确定待重传数据。
12.一种电子设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一项所述的传输确认方法,或者实现如权利要求7-9中任一项所述的传输确认方法。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一项所述的传输确认方法,或者实现如权利要求7-9中任一项所述的传输确认方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011280251.1A CN112291047A (zh) | 2020-11-16 | 2020-11-16 | 传输确认方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011280251.1A CN112291047A (zh) | 2020-11-16 | 2020-11-16 | 传输确认方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112291047A true CN112291047A (zh) | 2021-01-29 |
Family
ID=74398246
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011280251.1A Pending CN112291047A (zh) | 2020-11-16 | 2020-11-16 | 传输确认方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112291047A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113852445A (zh) * | 2021-08-27 | 2021-12-28 | 山东云海国创云计算装备产业创新中心有限公司 | 一种提高数据传输可靠性的方法、系统、设备和存储介质 |
CN114244780A (zh) * | 2021-12-27 | 2022-03-25 | 海光信息技术股份有限公司 | 一种数据传输方法、数据传输装置和相关设备 |
CN115250288A (zh) * | 2022-07-18 | 2022-10-28 | 国仪量子(合肥)技术有限公司 | 数据通信方法、下位机、上位机、数据传输系统和介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101009535A (zh) * | 2007-01-26 | 2007-08-01 | 北京航空航天大学 | 基于滑动窗口的soap消息传输方法 |
CN101047484A (zh) * | 2006-06-21 | 2007-10-03 | 华为技术有限公司 | 一种传输层重传方法和系统 |
CN101212283A (zh) * | 2006-12-25 | 2008-07-02 | 华为技术有限公司 | 通信系统中传输确认/非确认信息的方法 |
CN101989896A (zh) * | 2010-11-15 | 2011-03-23 | 中兴通讯股份有限公司 | 一种arq连接的反馈方法及装置 |
CN102082649A (zh) * | 2009-11-03 | 2011-06-01 | Nxp股份有限公司 | 使用针对选择性重传的滑动窗口协议进行数据通信的系统和方法 |
CN102404098A (zh) * | 2010-09-14 | 2012-04-04 | 中兴通讯股份有限公司 | D通道上链路接入规程传输方法及装置 |
CN106685604A (zh) * | 2016-11-28 | 2017-05-17 | 北京新岸线移动通信技术有限公司 | 数据传输控制方法、系统及装置 |
CN108768596A (zh) * | 2018-05-25 | 2018-11-06 | 京信通信系统(中国)有限公司 | 信号自动重传请求方法与装置 |
-
2020
- 2020-11-16 CN CN202011280251.1A patent/CN112291047A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101047484A (zh) * | 2006-06-21 | 2007-10-03 | 华为技术有限公司 | 一种传输层重传方法和系统 |
CN101212283A (zh) * | 2006-12-25 | 2008-07-02 | 华为技术有限公司 | 通信系统中传输确认/非确认信息的方法 |
CN101009535A (zh) * | 2007-01-26 | 2007-08-01 | 北京航空航天大学 | 基于滑动窗口的soap消息传输方法 |
CN102082649A (zh) * | 2009-11-03 | 2011-06-01 | Nxp股份有限公司 | 使用针对选择性重传的滑动窗口协议进行数据通信的系统和方法 |
CN102404098A (zh) * | 2010-09-14 | 2012-04-04 | 中兴通讯股份有限公司 | D通道上链路接入规程传输方法及装置 |
CN101989896A (zh) * | 2010-11-15 | 2011-03-23 | 中兴通讯股份有限公司 | 一种arq连接的反馈方法及装置 |
CN106685604A (zh) * | 2016-11-28 | 2017-05-17 | 北京新岸线移动通信技术有限公司 | 数据传输控制方法、系统及装置 |
CN108768596A (zh) * | 2018-05-25 | 2018-11-06 | 京信通信系统(中国)有限公司 | 信号自动重传请求方法与装置 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113852445A (zh) * | 2021-08-27 | 2021-12-28 | 山东云海国创云计算装备产业创新中心有限公司 | 一种提高数据传输可靠性的方法、系统、设备和存储介质 |
CN113852445B (zh) * | 2021-08-27 | 2023-06-16 | 山东云海国创云计算装备产业创新中心有限公司 | 一种提高数据传输可靠性的方法、系统、设备和存储介质 |
CN114244780A (zh) * | 2021-12-27 | 2022-03-25 | 海光信息技术股份有限公司 | 一种数据传输方法、数据传输装置和相关设备 |
CN114244780B (zh) * | 2021-12-27 | 2024-04-16 | 海光信息技术股份有限公司 | 一种数据传输方法、数据传输装置和相关设备 |
CN115250288A (zh) * | 2022-07-18 | 2022-10-28 | 国仪量子(合肥)技术有限公司 | 数据通信方法、下位机、上位机、数据传输系统和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112291047A (zh) | 传输确认方法、装置、设备及存储介质 | |
CN110633320B (zh) | 分布式数据服务的处理方法、系统、设备及存储介质 | |
EP0762705A2 (en) | Method for transmitting data via a network | |
US6965571B2 (en) | Precise error reporting | |
US9325519B2 (en) | Distributed proxy for bi-directional network connectivity over point-to-point connection | |
CN103141050B (zh) | 快速通道互联系统中数据包重传方法、节点 | |
KR100992257B1 (ko) | 완료 프로세싱 방법 및 시스템과 컴퓨터 판독 가능한 기록매체 | |
US7269172B2 (en) | Method and device for managing transmit buffers | |
CN107483148B (zh) | 差错处理方法及装置 | |
CN111147126B (zh) | 北斗卫星短报文通信数据拆包传输方法 | |
EP1715656A1 (en) | Offering a push service to a wireless device using a push proxy which monitors the coverage state of the device | |
CN113300818B (zh) | 数据传输系统及方法 | |
US8370443B2 (en) | Reliable messaging using publish subscribe mechanism | |
JP2007324958A (ja) | 送信ノード装置及び受信ノード装置及び送信方法及び受信方法及びプログラム | |
JP2861895B2 (ja) | データ通信再送方法および装置 | |
US8700966B1 (en) | Restart operation with logical blocks in queued commands | |
KR100977043B1 (ko) | 이동통신 시스템의 자동 재전송 요구를 이용한 데이터송수신 방법 및 장치 | |
US7535840B2 (en) | Information processing apparatus and method, recording medium, and program | |
JP4690271B2 (ja) | データ転送バッファ制御装置及びデータ転送制御方法 | |
CN115834002B (zh) | 高速传输系统及方法 | |
CN115136626A (zh) | 可操作以实现CoAP的在计算设备之间的消息交换 | |
EP3562149A1 (en) | Software upgrade method and device | |
CN107888341B (zh) | 一种数据传输方法及装置 | |
JP2861953B2 (ja) | データ通信再送方法及び装置 | |
EP1621996B1 (en) | Storage device for data packets of arbitrary data length |
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 |