CN109525376B - 快速重传方法、装置及终端设备 - Google Patents
快速重传方法、装置及终端设备 Download PDFInfo
- Publication number
- CN109525376B CN109525376B CN201910012572.4A CN201910012572A CN109525376B CN 109525376 B CN109525376 B CN 109525376B CN 201910012572 A CN201910012572 A CN 201910012572A CN 109525376 B CN109525376 B CN 109525376B
- Authority
- CN
- China
- Prior art keywords
- retransmission
- packet
- missing
- data packet
- time
- 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/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1809—Selective-repeat protocols
-
- 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
- H04L1/1829—Arrangements specially adapted for the receiver end
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种快速重传方法、装置及终端设备,该方法包括:根据接收到的数据包的序号判断该数据包是否为重传包;若该数据包不是重传包,根据所述数据包的序号判断是否有缺失包;若有缺失包,将该缺失包的序号添加至重传表中,并在接收到下一个数据包后发送该缺失包的重传申请至发送端;若该数据包为重传包,将该重传包的序号从所述重传表中删除。本发明在接收端统计丢包信息,并在每次收包时及时触发重传申请至发送端,降低了ACK及SACK的消耗,保证了网络传输的及时性,降低丢包的风险。
Description
技术领域
本发明涉及计算机网络技术领域,具体而言,涉及一种快速重传方法、装置及终端设备。
背景技术
计算机网络技术是通信技术与计算机技术相结合的产物。计算机网络是按照网络协议,将地球上分散的、独立的计算机相互连接的集合。连接介质可以是电缆、双绞线、光纤、微波、载波或通信卫星。计算机网络具有共享硬件、软件和数据资源的功能,具有对共享数据资源集中处理及管理和维护的能力。
然而,在通过网络传输数据时,不管网络情况有多好,数据都不是以线性(就像打电话一样)连续传输的,中间总是有空洞的。数据包的传输,不可能百分之百的能够完成,因为物理线路故障、设备故障、病毒攻击、路由信息错误等原因,总会有一定的损失。
为了解决网络传输过程中丢包问题,网络协议引入了重传的功能,传统的重传协议主要指TCP协议中使用的超时重传、DupAck重传及SACK选择重传等协议。超时重传根据超时阈值的范围控制重传,检测方法单一,效率较低;DupAck重传反馈信息较简单,容易引起不必要的重传;SACK选择重传反馈信息冗余较多,且加重性能开销。
发明内容
鉴于上述问题,本发明实施例的目的在于提供一种快速重传方法、装置及终端设备,以解决现有技术的不足。
根据本发明的一个实施方式,提供一种快速重传方法,包括:
根据接收到的数据包的序号判断该数据包是否为重传包;
若该数据包不是重传包,根据所述数据包的序号判断是否有缺失包;
若有缺失包,将该缺失包的序号添加至重传表中,并在接收到下一个数据包后发送该缺失包的重传申请至发送端;
若该数据包为重传包,将该重传包的序号从所述重传表中删除。
在上述的快速重传方法中,所述“判断该数据包是否为重传包”包括:
以所述接收到的数据包的序号为索引,遍历所述重传表;
若所述重传表中有该索引对应的记录,则该接收到的数据包为重传包;
若所述重传表中没有该索引对应的记录,则该接收到的数据包不是重传包。
在上述的快速重传方法中,所述“判断是否有缺失包”包括:
将所述接收到的数据包的序号与之前最近一次接收的不是重传包的数据包的序号进行对比;
若接收到的数据包的序号与之前最近一次接收的不是重传包的数据包的序号相邻,则没有缺失包;
若接收到的数据包的序号与之前最近一次接收的不是重传包的数据包的序号不相邻,则所述接收到的数据包的序号与最近一次接收的数据包的序号之间的所有序号对应的数据包均为缺失包。
在上述的快速重传方法中,所述“发送该缺失包的重传申请至发送端”之后还包括:
在所述接收到的数据包之后的后续数据包中出现重传包时,判断所述重传表中的各个待重传缺失包最近一次发送重传申请的时间是否在该重传包最近一次发送重传申请的时间之前;
若所述待重传缺失包最近一次发送重传申请的时间在该重传包最近一次发送重传申请的时间之前,则在该重传包之后接收到下一个数据包后将相应待重传缺失包的重传申请再次发送至发送端;
若所述待重传缺失包最近一次发送重传申请的时间在该重传包最近一次发送重传申请的时间之后,在预设时间未收到该待重传缺失包对应的重传包后再次发送该待重传缺失包的重传申请至发送端;
在所述待重传缺失包最近一次发送重传申请的时间之后的预设时间内没有出现重传包,再次发送所述待重传缺失包的重传申请至发送端。
在上述的快速重传方法中,还包括:
若所述缺失包有多个,按照该多个缺失包的顺序向所述发送端发送重传申请,以使所述发送端根据该顺序向接收端发送该多个缺失包的重传包。
在上述的快速重传方法中,还包括:
根据接收到的数据包的发送时间和接收时间计算瞬时传输延时,及根据预设条件将接收到的数据包分为一组,及将该组内所有数据包的瞬时传输延时进行平滑运算得到平滑传输延时,根据所述平滑传输延时更新所述预设时间。
在上述的快速重传方法中,还包括:
在发送的所述缺失包的重传申请超出预设次数后,不再发送该缺失包的重传申请。
根据本发明的另一个实施方式,提供一种快速重传装置,该装置包括:
第一判断模块,用于根据接收到的数据包的序号及判断该数据包是否为重传包;
第二判断模块,用于若该数据包不是重传包,根据所述数据包的序号判断是否有缺失包;
添加发送模块,用于若有缺失包,将该缺失包的序号添加至重传表中,并发送该缺失包的重传申请至发送端;
删除模块,用于若该数据包为重传包,将该重传包的序号从所述重传表中删除。
根据本发明的再一个实施方式,提供一种终端设备,所述终端设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述终端设备执行上述的快速重传方法或者上述的快速重传装置中的各个模块的功能。
根据本发明的又一个实施方式,提供一种计算机可读存储介质,其存储有所述终端设备中所用的所述计算机程序。
本公开的实施例提供的技术方案可以包括如下有益效果:
本发明中一种快速重传方法、装置及终端设备,在接收端统计丢包信息,并在每次收包时及时触发重传申请至发送端,降低了ACK及SACK的消耗,保证了网络传输的及时性,降低丢包的风险,提高重传效率。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对本发明保护范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明第一实施例提供的一种快速重传方法的流程示意图。
图2示出了本发明实施例提供的一种数据包发送及重传的流程示意图。
图3示出了本发明第二实施例提供的一种快速重传方法的流程示意图。
图4示出了本发明实施例提供的另一种数据包发送及重传的流程示意图。
图5示出了本发明实施例提供的再一种数据包发送及重传的流程示意图。
图6示出了本发明实施例提供的一种快速重传装置的结构示意图。
主要元件符号说明:
500-快速重传装置;510-第一判断模块;520-第二判断模块;530-添加发送模块;540-删除模块。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
图1示出了本发明第一实施例提供的一种快速重传方法的流程示意图。
该快速重传方法包括以下步骤:
在步骤S110中,根据接收到的数据包的序号判断该数据包是否为重传包。
其中,所述数据包可以包括重传包、缺失包及正常的数据包。
所述重传包为接收端未接收到数据包,发送该数据包的重传申请至发送端后,发送端重新发送该数据包,重新发送的该数据包称为重传包。
所述缺失包为接收端未接收到数据包,该未接收到的数据包称为缺失包。
所述正常的数据包为既不是重传包,又不是缺失包的正常发送的数据包。
例如,如图2中所示,数据包001、数据包002、数据包004、数据包005和数据包007均为正常的数据包;数据包003和数据包006缺失包;数据包003为重传包。
发送端发送的数据包中包括该数据包的序号。发送端发送的多个数据包中均根据序号的顺序进行发送,例如发送端依次发送数据包001,数据包002,数据包003,……数据包00M,其中,M为大于1的正整数。
接收端存储有重传表,接收端发现有缺失包后,均将该缺失包的序号添加至重传表中。该重传表中包括当前时间之前所有缺失包的序号,将重传表中的所有序号对应的缺失包称为待重传缺失包。
例如,如图2所示的所有缺失包可存储至下表所示的重传表中。
缺失包的序号 |
003 |
006 |
…… |
在上述的重传表中,在接收到发送端发送006重传申请之后的时间之前,共有两个缺失包003和006,其中,003为接收端已经接收到重传包,从重传表中删除,所以,在接收到发送端发送006重传申请之后的当前时间之前,重传表中仅剩下一个缺失包006,随着时间的推移,可能会有越来越多的缺失包的序号被加入到重传表中,在此不一一叙述。
接收端每一次接收到数据包后,均根据接收到的数据包的序号判断该数据包是否为重传包。
进一步地,“判断该数据包是否为重传包”包括:
以所述接收到的数据包的序号为索引,遍历所述重传表;若所述重传表中有该索引对应的记录,则该接收到的数据包为重传包;若所述重传表中没有该索引对应的记录,则该接收到的数据包不是重传包。
具体地,在接收端每次接收到数据包后,均以接收到的数据包的序号为索引,根据该索引遍历重传表,查找该重传表中是否有该索引对应的记录,若该重传表中有该索引对应的记录,则该接收到的数据包为重传包,若该重传表中没有该索引对应的记录,则该接收到的数据包不是重传包,为正常的数据包。
例如,如图2所示,发送端接收到数据包001后,在重传表中未检索到001对应的记录,则该数据包001为正常的数据包;发送端接收到数据包002后,在重传表中未检索到002对应的记录,则该数据包002为正常的数据包;直到发送端在接收到数据包007之后接收到数据包003,在重传表中检索到003对应的记录,则该数据包003为重传包。
若接收到的数据包不是重传包,前进至步骤S120;若接收到的数据包是重传包,前进至步骤S140。
在步骤S120中,根据数据包的序号判断是否有缺失包。
进一步地,若该接收到的数据包不是重传包,“判断是否有缺失包”包括:
将所述接收到的数据包的序号与之前最近一次接收的不是重传包的数据包的序号进行对比;若接收到的数据包的序号与之前最近一次接收的不是重传包的数据包的序号相邻,则没有缺失包;若接收到的数据包的序号与之前最近一次接收的不是重传包的数据包的序号不相邻,则所述接收到的数据包的序号与最近一次接收的数据包的序号之间的所有序号对应的数据包均为缺失包。
具体地,若接收到的数据包是正常的数据包,将接收到的数据包的序号和所述接收到的数据包之前最近一次接收到的正常的数据包的序号进行对比,如果该接收到的数据包的序号与所述最近一次接收到的正常的数据包的序号相邻,且该接收到的数据包的序号在所述最近一次接收到的正常的数据包的序号之后,则在该接收到的数据包和所述最近一次接收到的正常的数据包之间不存在缺失包;若该接收到的数据包的序号在所述最近一次接收到的正常的数据包的序号之后,且该接收到的数据包的序号与所述最近一次接收到的正常的数据包的序号不相邻,则该接收到的数据包的序号与最近一次接收的正常的数据包的序号之间的所有序号对应的数据包均为缺失包。
例如,如图2所示,接收端在接收到数据包004后,将接收到的数据包的序号004与在接收到数据包004之前最近一次接收到的正常的数据包002进行对比,发现该接收到的数据包004在最近一次接收到的正常的数据包002之后,但是该接收到的数据包004与最近一次接收到的正常的数据包002不相邻,则该接收到的数据包004和最近一次接收到的正常的数据包002之间的序号003对应的数据包为缺失包。
又如,如图5所示,接收端在接收到数据包006后,将接收到的数据包的序号006与在接收到数据包006之前最近一次接收到的正常的数据包002进行对比,发现该接收到的数据包006在最近一次接收到的正常的数据包002之后,但是该接收到的数据包006与最近一次接收到的正常的数据包002不相邻,则该接收到的数据包006和最近一次接收到的正常的数据包002之间的序号003、004及005对应的数据包均为缺失包。
若接收到的数据包和最近一次接收到的正常的数据包之间有缺失包,前进至步骤S130;若接收到的数据包和最近一次接收到的正常的数据包之间没有缺失包,接收端继续接收发送端发送的数据包,并在接收到下一个数据包后返回至步骤S110继续对该数据包进行判断。
在步骤S130中,将该缺失包的序号添加至重传表中,并在接收到下一个数据包后发送该缺失包的重传申请至发送端。
具体地,在接收到的数据包和最近一次接收到的正常的数据包之间有缺失包时,接收端将所有的缺失包的序号添加到重传表中,并在该接收到的数据包之后接收到下一个数据包后发送该缺失包的重传申请至发送端。
例如,如图2所示,接收端在接收到数据包004后,发现在004和最近一次接收到的正常的数据包002之间存在缺失包003,则将该缺失包的序号003添加至重传表中,并在接收到数据包005之后触发重传申请条件,将该缺失包003的重传申请发送至接收端,以使接收端根据接收到的重传申请重新发送数据包003。相比于超时重传,该种方案更能及时的将缺失包的重传申请发送至发送端;相比于立即重传,该种方案在等待一个数据包的时间之后将将缺失包的重传申请发送至发送端,以避免网络信道因各种原因导致的数据包到达延时,减少缺失包的重传申请次数,避免网络拥塞。
进一步地,若所述缺失包有多个,按照该多个缺失包的顺序向所述发送端发送重传申请,以使所述发送端根据该顺序向接收端发送该多个缺失包的重传包。
例如,如图5所示,在数据包006和最近一次接收到的正常的数据包002之间的序号003、004及005对应的数据包均为缺失包,发送端按照顺序一次将003、004及005加入到重传表中,在接收到数据包007后,按照顺序依次发送缺失包003、缺失包004及缺失包005的重传申请。
在步骤S140中,将该重传包的序号从重传表中删除。
具体地,若接收到的数据包是重传包,以该重传包的序号为索引,遍历重传表,查找到该索引对应的记录,并将该对应的记录删除。
进一步地,在发送的所述缺失包的重传申请超出预设次数后,不再发送该缺失包的重传申请。
具体地,接收端还记录有所述缺失包的已发送重传申请次数,该已发送重传申请次数的初始值为0,每发送一次所述缺失包的重传申请,将该已发送重传申请次数加1得到新的已发送重传申请次数,并将该新的已发送重传申请次数与预设次数进行对比,若该新的已发送重传申请次数等于预设次数,接收端不再发送该缺失包的重传申请至发送端。若该新的已发送重传申请次数小于预设次数,在下一次触发重传申请条件时,接收端继续发送该缺失包的重传申请至发送端。
实施例2
图3示出了本发明第二实施例提供的一种快速重传方法的流程示意图。
该快速重传方法包括以下步骤:
在步骤S210中,根据接收到的数据包的序号判断该数据包是否为重传包。
步骤S210与步骤S110相同,在此不再赘述。
在步骤S220中,根据数据包的序号判断是否有缺失包。
步骤S220与步骤S120相同,在此不再赘述。
在步骤S230中,将该缺失包的序号添加至重传表中,并在接收到下一个数据包后发送该缺失包的重传申请至发送端。
步骤S230与步骤S130相同,在此不再赘述。
在步骤S240中,将该重传包的序号从重传表中删除。
步骤S240与步骤S140相同,在此不再赘述。
在步骤S250中,判断后续数据包是否为重传包。
接收端在接收到的数据包之后继续接收发送端发送的数据包,并对接收到的数据包之后后续每一个数据包进行判断是否为重传包,若该后续的数据包为重传包,前进至步骤S260;若该后续的数据包不是重传包,为正常的数据包,接收端继续接收发送端发送的数据包,并前进至步骤S280。
在步骤S260中,判断重传表中各个待重传缺失包最近一次发送重传申请的时间是否在该重传包最近一次发送重传申请的时间之前。
若后续数据包是重传包,判断重传表中各个待重传缺失包最近一次发送重传申请的时间是否在该重传包最近一次发送重传申请的时间之前,若重传表中各个待重传缺失包最近一次发送重传申请的时间在该重传包最近一次发送重传申请的时间之前,前进至步骤S290;若重传表中各个待重传缺失包最近一次发送重传申请的时间在该重传包最近一次发送重传申请的时间之后,前进至步骤S270;若重传表中待重传缺失包的序号等于该重传包的序号,删除重传表中该重传包序号对应的记录。
在步骤S270中,在预设时间未接收到该待重传缺失包对应的重传包后再次发送该待重传缺失包的重传申请至发送端。
若重传表中各个待重传缺失包最近一次发送重传申请的时间在该重传包最近一次发送重传申请的时间之后,说明接收端在根据发送重传申请的顺序依次接收重传申请对应的重传包,在每一待重传缺失包上一次发送重传申请后的预设时间后,再次发送该待重传缺失包的重传申请至发送端。
例如,如图2所示,接收端在接收端接收到重传包003,将重传表中003对应的记录删除,并将重传表中记录006的最近一次发送重传申请的时间与003的最近一次发送重传申请的时间进行对比,发现记录006的最近一次发送重传申请的时间在003的最近一次发送重传申请的时间之后,说明发送端在接收到003的重传申请后,发送了003的重传包,接收端继续等待006的重传包,直到距离接收端最近一次发送006重传申请的时间之后的预设时间后,仍未接收到006的重传包,接收端再次发送006的重传申请至发送端。
又如,接收端在接收端接收到重传包003,将重传表中003对应的记录删除,若此时,重传表中还有记录006、009、010,接收端将重传表中记录006的最近一次发送重传申请的时间与003的最近一次发送重传申请的时间进行对比,发现记录006的最近一次发送重传申请的时间在003的最近一次发送重传申请的时间之后,说明发送端在接收到003的重传申请后,发送了003的重传包,接收端继续等待006的重传包,直到距离接收端最近一次发送006重传申请的时间之后的预设时间后,仍未接收到006的重传包,接收端再次发送006的重传申请至发送端;接收端还将重传表中记录009的最近一次发送重传申请的时间与003的最近一次发送重传申请的时间进行对比,发现记录009的最近一次发送重传申请的时间在003的最近一次发送重传申请的时间之后,说明发送端在接收到003的重传申请后,发送了003的重传包,接收端继续等待009的重传包,直到距离接收端最近一次发送009重传申请的时间之后的预设时间后,仍未接收到009的重传包,接收端再次发送009的重传申请至发送端;接收端还将重传表中记录010的最近一次发送重传申请的时间与003的最近一次发送重传申请的时间进行对比,发现记录010的最近一次发送重传申请的时间在003的最近一次发送重传申请的时间之后,说明发送端在接收到003的重传申请后,发送了003的重传包,接收端继续等待010的重传包,直到距离接收端最近一次发送010重传申请的时间之后的预设时间后,仍未接收到010的重传包,接收端再次发送010的重传申请至发送端。
在步骤S280中,预设时间后再次发送待重传缺失包的重传申请至发送端。
若后续数据包为正常的数据包,则在距离接收端最近一次发送该待重传数据包的重传申请之后的预设时间后,再次发送待重传缺失包的重传申请至发送端。
例如,在接收端发送待重传缺失包003的重传申请后,在预设时间内未收到任何重传包,接收端在距离待重传缺失包003上一次发送重传申请的时间之后的预设时间后再次发送待重传缺失包003的重传申请。
进一步地,根据接收到的数据包的发送时间和接收时间计算瞬时传输延时,及将预设数量的所述瞬时传输延时进行平滑运算得到平滑传输延时,根据所述平滑传输延时更新所述预设时间。
具体地,所述两数据包的瞬时传输延时可通过下式进行计算:
Δt=R-S
其中,Δt为瞬时传输延时,S为数据包的发送时间,R为数据包的接收时间。
并可根据预设条件将接收到的数据包分为一组,将该组内所有数据包之间的瞬时传输延时进行平滑运算得到平滑传输延时,并将得到的平滑传输延时对预设时间进行更新。以时预设时间(也可称为超时时间)根据实际的网络情况进行改变,提高预设时间的自适应性,减少网络拥塞。
例如,所述预设条件可以为将预定时间段内的所有数据包划分为一组,也可以为将预设数量的数据包划分为一组,还可以为将到达时间小于预设到达时间的所有数据包划分为一组,等等。
在步骤S290中,在该重传包之后接收到下一个数据包后将该相应待重传缺失包的重传申请再次发送至发送端。
具体地,如4所示,接收端在接收到重传包006后,将006的记录从重传表中删除,并将重传表中记录003的最近一次发送重传申请的时间与006的最近一次发送重传申请的时间进行对比,发现003的最近一次发送重传申请的时间在006的最近一次发送重传申请的时间之前,则意味着由于异常原因导致的重传包003依旧未收到,则此时,在重传包006之后接收到下一个数据包后立即再次发送重传缺失包003的重传申请至发送端。
具体地,若重传表中包括记录003、006、009、010,接收端在接收到重传包006后,将006的记录从重传表中删除,并将重传表中记录003的最近一次发送重传申请的时间与006的最近一次发送重传申请的时间进行对比,发现003的最近一次发送重传申请的时间在006的最近一次发送重传申请的时间之前,意味着由于异常原因导致的重传包003依旧未收到,则在重传包006之后接收到下一个数据包后立即再次发送重传缺失包003的重传申请再次发送至发送端。接收端将009的最近一次发送重传申请的时间与006的最近一次发送重传申请的时间进行对比,发现009的最近一次发送重传申请的时间在006的最近一次发送重传申请的时间之后,接收端继续等待009的重传包,直到距离接收端最近一次发送009的重传申请的时间之后的预设时间后,仍未接收到009的重传包,接收端再次发送009的重传申请至发送端;接收端还将重传表中记录010的最近一次发送重传申请的时间与006的最近一次发送重传申请的时间进行对比,发现记录010的最近一次发送重传申请的时间在006的最近一次发送重传申请的时间之后,接收端继续等待010的重传包,直到距离接收端最近一次发送010重传申请的时间之后的预设时间后,仍未接收到010的重传包,接收端再次发送010的重传申请至发送端。
实施例3
图6示出了本发明实施例提供的一种快速重传装置的结构示意图。该快速重传装置500对应于实施例1中的快速重传方法,实施例1中的快速重传方法同样也适用于该快速重传装置500,在此不再赘述。
所述快速重传装置500包括第一判断模块510、第二判断模块520、添加发送模块530及删除模块540。
第一判断模块510,用于用于根据接收到的数据包的序号及判断该数据包是否为重传包。
第二判断模块520,用于若该数据包不是重传包,根据所述数据包的序号判断是否有缺失包。
添加发送模块530,用于若有缺失包,将该缺失包的序号添加至重传表中,并发送该缺失包的重传申请至发送端。
删除模块540,用于若该数据包为重传包,将该重传包的序号从所述重传表中删除。
本发明另一实施例还提供了一种终端设备,所述终端设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述终端设备执行上述的快速重传方法或上述的快速重传装置中各模块的功能。
存储器可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
该终端设备可以为计算机终端(台式电脑、服务器等),还可以为移动终端(手机、平板的电脑、笔记本电脑等)。
本实施例还提供了一种计算机存储介质,用于储存上述的终端设备中所使用的快速重传方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。
Claims (9)
1.一种快速重传方法,其特征在于,包括:
根据接收到的数据包的序号判断该数据包是否为重传包;
若该数据包不是重传包,根据所述数据包的序号判断是否有缺失包;
若有缺失包,将该缺失包的序号添加至重传表中,并在接收到下一个数据包后发送该缺失包的重传申请至发送端;
若该数据包为重传包,将该重传包的序号从所述重传表中删除;
其中,所述发送该缺失包的重传申请至发送端之后,所述方法还包括:
在所述接收到的数据包之后的后续数据包中出现重传包时,判断所述重传表中的各个待重传缺失包最近一次发送重传申请的时间是否在该重传包最近一次发送重传申请的时间之前;
若所述待重传缺失包最近一次发送重传申请的时间在该重传包最近一次发送重传申请的时间之前,则在该重传包之后接收到下一个数据包后将相应待重传缺失包的重传申请再次发送至发送端;
若所述待重传缺失包最近一次发送重传申请的时间在该重传包最近一次发送重传申请的时间之后,在预设时间未收到该待重传缺失包对应的重传包后再次发送该待重传缺失包的重传申请至发送端;
在所述待重传缺失包最近一次发送重传申请的时间之后的预设时间内没有出现重传包,再次发送所述待重传缺失包的重传申请至发送端。
2.根据权利要求1所述的快速重传方法,其特征在于,所述“判断该数据包是否为重传包”包括:
以所述接收到的数据包的序号为索引,遍历所述重传表;
若所述重传表中有该索引对应的记录,则该接收到的数据包为重传包;若所述重传表中没有该索引对应的记录,则该接收到的数据包不是重传包。
3.根据权利要求1所述的快速重传方法,其特征在于,所述“判断是否有缺失包”包括:
将所述接收到的数据包的序号与之前最近一次接收的不是重传包的数据包的序号进行对比;
若接收到的数据包的序号与之前最近一次接收的不是重传包的数据包的序号相邻,则没有缺失包;
若接收到的数据包的序号与之前最近一次接收的不是重传包的数据包的序号不相邻,则所述接收到的数据包的序号与最近一次接收的数据包的序号之间的所有序号对应的数据包均为缺失包。
4.根据权利要求1所述的快速重传方法,其特征在于,还包括:
若所述缺失包有多个,按照该多个缺失包的顺序向所述发送端发送重传申请,以使所述发送端根据该顺序向接收端发送该多个缺失包的重传包。
5.根据权利要求4所述的快速重传方法,其特征在于,还包括:
根据接收到的数据包的发送时间和接收时间计算瞬时传输延时,及根据预设条件将接收到的数据包分为一组,及将该组内所有数据包的瞬时传输延时进行平滑运算得到平滑传输延时,根据所述平滑传输延时更新所述预设时间。
6.根据权利要求1所述的快速重传方法,其特征在于,还包括:
在发送的所述缺失包的重传申请超出预设次数后,不再发送该缺失包的重传申请。
7.一种快速重传装置,其特征在于,包括:
第一判断模块,用于根据接收到的数据包的序号及判断该数据包是否为重传包;
第二判断模块,用于若该数据包不是重传包,根据所述数据包的序号判断是否有缺失包;
添加发送模块,用于若有缺失包,将该缺失包的序号添加至重传表中,并发送该缺失包的重传申请至发送端;
删除模块,用于若该数据包为重传包,将该重传包的序号从所述重传表中删除;
其中,所述添加发送模块还用于:
在所述接收到的数据包之后的后续数据包中出现重传包时,判断所述重传表中的各个待重传缺失包最近一次发送重传申请的时间是否在该重传包最近一次发送重传申请的时间之前;
若所述待重传缺失包最近一次发送重传申请的时间在该重传包最近一次发送重传申请的时间之前,则在该重传包之后接收到下一个数据包后将相应待重传缺失包的重传申请再次发送至发送端;
若所述待重传缺失包最近一次发送重传申请的时间在该重传包最近一次发送重传申请的时间之后,在预设时间未收到该待重传缺失包对应的重传包后再次发送该待重传缺失包的重传申请至发送端;
在所述待重传缺失包最近一次发送重传申请的时间之后的预设时间内没有出现重传包,再次发送所述待重传缺失包的重传申请至发送端。
8.一种终端设备,其特征在于,包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述终端设备执行权利要求1至6任一项所述的快速重传方法。
9.一种计算机存储介质,其特征在于,其储存有权利要求8所述终端设备中所用的所述计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910012572.4A CN109525376B (zh) | 2019-01-07 | 2019-01-07 | 快速重传方法、装置及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910012572.4A CN109525376B (zh) | 2019-01-07 | 2019-01-07 | 快速重传方法、装置及终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109525376A CN109525376A (zh) | 2019-03-26 |
CN109525376B true CN109525376B (zh) | 2021-12-03 |
Family
ID=65798499
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910012572.4A Active CN109525376B (zh) | 2019-01-07 | 2019-01-07 | 快速重传方法、装置及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109525376B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111147196A (zh) * | 2019-12-18 | 2020-05-12 | 深圳市元征科技股份有限公司 | 数据传输方法、数据发送设备及数据接收设备 |
CN114362891A (zh) * | 2020-09-28 | 2022-04-15 | 华为技术有限公司 | 一种通信方法和装置 |
CN112636880B (zh) * | 2020-12-31 | 2023-03-24 | 北京中联合超高清协同技术中心有限公司 | 侧信道重传高可靠超高清视频卫星传输系统 |
CN112968817B (zh) * | 2021-03-25 | 2022-12-06 | 深圳金三立视频科技股份有限公司 | 一种数字信息传输中的丢包数据统计方法及终端 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101179362A (zh) * | 2006-11-07 | 2008-05-14 | 中兴通讯股份有限公司 | 适宜移动流媒体应用的自动重传请求机制 |
CN104244109A (zh) * | 2014-09-19 | 2014-12-24 | 浙江宇视科技有限公司 | 一种媒体流可靠传输和接收的方法和装置 |
CN104768081A (zh) * | 2015-04-17 | 2015-07-08 | 武汉兴图新科电子股份有限公司 | 一种实现流量控制的丢包重传方法 |
CN104869461A (zh) * | 2015-05-22 | 2015-08-26 | 南京创维信息技术研究院有限公司 | 视频数据处理系统及方法 |
CN107800519A (zh) * | 2017-11-20 | 2018-03-13 | 烽火通信科技股份有限公司 | 一种数据包的重传方法和重传系统 |
CN108234084A (zh) * | 2017-12-21 | 2018-06-29 | 深圳市欣博跃电子有限公司 | 一种数据的收发方法、装置及设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102143137A (zh) * | 2010-09-10 | 2011-08-03 | 华为技术有限公司 | 媒体流发送及接收方法、装置和系统 |
CN106788916B (zh) * | 2016-12-30 | 2021-08-27 | 深圳市优必选科技股份有限公司 | 用于总线的数据传输方法及数据传输装置 |
-
2019
- 2019-01-07 CN CN201910012572.4A patent/CN109525376B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101179362A (zh) * | 2006-11-07 | 2008-05-14 | 中兴通讯股份有限公司 | 适宜移动流媒体应用的自动重传请求机制 |
CN104244109A (zh) * | 2014-09-19 | 2014-12-24 | 浙江宇视科技有限公司 | 一种媒体流可靠传输和接收的方法和装置 |
CN104768081A (zh) * | 2015-04-17 | 2015-07-08 | 武汉兴图新科电子股份有限公司 | 一种实现流量控制的丢包重传方法 |
CN104869461A (zh) * | 2015-05-22 | 2015-08-26 | 南京创维信息技术研究院有限公司 | 视频数据处理系统及方法 |
CN107800519A (zh) * | 2017-11-20 | 2018-03-13 | 烽火通信科技股份有限公司 | 一种数据包的重传方法和重传系统 |
CN108234084A (zh) * | 2017-12-21 | 2018-06-29 | 深圳市欣博跃电子有限公司 | 一种数据的收发方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109525376A (zh) | 2019-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109525376B (zh) | 快速重传方法、装置及终端设备 | |
US20220014312A1 (en) | Data transmission method and apparatus | |
CN107979592B (zh) | 一种发送业务请求消息的方法及装置 | |
EP2978171B1 (en) | Communication method, communication device, and communication program | |
US20110090795A1 (en) | Differentiation among occurrences of packet reordering, congestive packet loss, or random packet loss in communication networks | |
CN110677355A (zh) | 一种丢包应对方法、装置、电子设备及存储介质 | |
CN102055677A (zh) | 减少网络拥塞的方法及设备 | |
EP3952233A1 (en) | Tcp congestion control method, apparatus, terminal, and readable storage medium | |
CN111478865A (zh) | 一种基于区间管理算法的tcp流重组技术 | |
CN111752803A (zh) | 埋点数据收集上报的方法、装置及介质 | |
CN111131179A (zh) | 业务处理方法、装置、网络设备及存储介质 | |
US11190301B2 (en) | Method and device for setting out-of-order value of network | |
CN107707395A (zh) | 一种数据传输方法、装置和系统 | |
CN110266446B (zh) | 一种基于sack模式调整乱序时长的方法和装置 | |
US10110350B2 (en) | Method and system for flow control | |
CN112351049B (zh) | 数据传输方法、装置、设备及存储介质 | |
CN106453635B (zh) | 消息推送方法及装置 | |
WO2021212438A1 (zh) | 数据传输方法、装置、系统、终端设备和存储介质 | |
CN112153664B (zh) | 参数优化方法、装置、基站、服务器及存储介质 | |
CN110971535A (zh) | 一种通信拥塞控制方法及装置、设备和存储介质 | |
CN112230880A (zh) | 一种数据传输控制方法、装置、fpga及介质 | |
JP6805713B2 (ja) | 受信トラヒックの高速化装置、高速化方法、および高速化プログラム | |
CN115001630B (zh) | 数据传输方法、装置、设备以及存储介质 | |
CN115834002B (zh) | 高速传输系统及方法 | |
KR102387124B1 (ko) | 지연 허용 네트워크 기반 정보 중심 네트워크에서 전달 우선순위를 이용한 메시지 전달 방법, 이를 수행하기 위한 기록 매체 및 장치 |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210303 Address after: Room 1702-03, Lantian Hesheng building, 32 Zhongguancun Street, Haidian District, Beijing 100082 Applicant after: BEIJING CENTURY TAL EDUCATION TECHNOLOGY Co.,Ltd. Address before: 102200 a1-05-001 maker Plaza, 338 Huilongguan East Street, Changping District, Beijing Applicant before: BEIJING SANTICLOUD TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |