数据传输方法及发送端与流程

文档序号:14847546发布日期:2018-06-30 16:53阅读:250来源:国知局
数据传输方法及发送端与流程

本发明涉及计算机领域,特别涉及一种数据传输方法及发送端。



背景技术:

TCP是现代网络传输的核心协议,丢包恢复是TCP传输性能中的关键,特别是在发送端与接收端所传输的数据流比较短时或丢包率较大的场景下,丢包恢复的效率直接决定了传输性能。

超时重传是TCP协议保证数据可靠性的一个重要机制,其原理是在发送一个数据包以后就开启一个计时器,在一定时间内如果没有得到所发送数据包的确认(Acknowledge,ACK)报文,那么就重新发送数据,直到发送成功为止。然而超时重传的时间(Retransmission Timeout,RTO)较长(TCP协议中规定为1秒,Linux内核实现中最小为200毫秒)。另外,由于在通过超时重传恢复丢包期间,不会传输新的数据包,所以会导致这段时间吞吐量降为0,并且超时重传以后,数据传输的拥塞窗口降为1,进入到慢启动阶段,因此过多的超时重传会使得吞吐率严重下降,严重增加流完成时间。



技术实现要素:

本发明实施例提供一种数据传输的方法,用于通过减少或避免超时重传,提升传输效率。

本发明实施例第一方面提供一种应用于发送端的数据传输方法。所述发送端可以传输数据流至接收端。通过执行所述方法,所述发送端发送数据包至接收端,所发送数据包包括数据序列号及发送序列号,所述数据序列号表示所发送数据包在所述数据流中的顺序,所述发送序列号表示所述数据包的发送顺序。在所述接收端接收到所述数据包后会产生一确认包,并获取所述数据包的发送序列号,将所获取的发送序列号添加至所述确认包后发送所述确认包至所述发送端。所述发送端接收所述接收端发送的确认包,并根据所述确认包中的发送序列号确定在所述数据包之前发送的数据包中是否存在重发数据包,所述重发数据包为需要重新发送的数据包。如果有,所述发送端则获取所述重发的数据包并发送所述重发的数据包至所述接收端,所述重发数据包的发送序列号为所述重发数据包的发送顺序。

发送端通过给传输的数据包添加发送序列号,而接收端接收到所述数据包后,会获取所述数据包中的发送序列号,并将所获取的发送序列号添加至确认包中,这样,发送端即可根据确认包中的发送序列号是否连续来确定丢失的数据包,及确定需要重传的数据包,这样可以有效的减少数据的超时重传。

在接收端和发送端进行数据传输之前,需要建立连接,在建立连接时,发送端会在发送给接收端的连接包中添加第一指示信息,以指示所述接收端发送的数据包包括所述发送序列号,这样,所述接收端在判断所接收的连接包中包括所述指示信息,且自身发送的确认包也包括所述发送序列号时,会产生一响应包,且在所述响应包中添加第二指示信息,以指示所述接收端所发送的确认包包括所述确认包对应的数据包的发送序列号,所述发送端接收所述接收端发送的响应包,若所述响应包中包括所述第二指示信息,则在后续发送所述数据包时添加所述发送序列号。

通过在发送端与接收端建立连接时,通过第一指示信息和第二指示信息告诉对方,本端支持在数据包中添加发送序列号的数据传输方式,这样,在进行数据传输时,即可在数据包中添加发送序列号,以减少数据的超时重传。

在所述根据所述确认包中的发送序列号确定在所述数据包之前发送的数据包中是否存在重发数据包时,首先根据所述发送序列号判断当前接收的确认包的前N个确认包中是否包括首次不连续包,所述首次不连续包的发送序列号与该首次不连续包前面一个确认包的发送序列号不连续,所述N为重传阈值,且为大于1的自然数,如果包括,判断当前接收的确认包的发送序列号与所述首次不连续包的发送序列号的差值是否大于等于所述重传阈值N,如果大于,则确定所述数据包之前发送的数据包中存在重发数据包。

这样,可以及时识别出重传数据包,避免有些场景下,重传数据包无法被有效识别,从而只能通过超时重传的方式重传,所以,提供了数据传输的效率。

在发送所述数据包至所述接收端后,记录所述数据包的数据序列号与所述发送序列号之间的映射关系,这样在获取所述重发的数据包时,可以首先确定所述首次不连续包的发送序列号与所述首次不连续包的前一个确认包的发送序列号之间缺失的发送序列号,这样就可以根据所确定的缺失的发送序列号及所述数据包的数据序列号与所述发送序列号之间的映射关系获取所述重传数据包的数据序列号,然后根据所述数据序列号获取所述重传数据包。

这样可以快速找到重传数据包,提高了数据重传的效率。

本发明实施例第二方面提供一种应用于接收端的数据传输方法,所述接收端接收发送端发送的数据包,所述数据包中包括数据序列号及发送序列号,所述数据序列号表示所发送数据包在所述数据流中的顺序,所述发送序列号表示所述数据包的发送顺序,然后产生一确认包,并获取所述数据包的发送序列号,将所获取的发送序列号添加至所述确认包后发送所述确认包至所述发送端,以使所述发送端根据所述确认包中的发送序列号确定在所述数据包之前发送的数据包中是否存在重发数据包,所述重发数据包为需要重新发送的数据包。如果有,所述发送端则获取所述重发的数据包并发送所述重发的数据包至所述接收端。

本发明实施例第三方面提供一种发送端,所述发送端传输数据流至接收端。所述发送端包括发送模块、确认模块、及重传模块。所述发送模块用于发送数据包至接收端,所发送数据包包括数据序列号及发送序列号,所述数据序列号表示所发送数据包在所述数据流中的顺序,所述发送序列号表示所述数据包的发送顺序,以使所述接收端在接收到所述数据包后,产生一确认包,并获取所述数据包的发送序列号,将所获取的发送序列号添加至所述确认包后发送所述确认包至所述发送端。所述确认模块用于接收所述接收端发送的确认包,根据所述确认包中的发送序列号确定在所述数据包之前发送的数据包中是否存在重发数据包,所述重发数据包为需要重新发送的数据包。所述重传模块用于获取所述重发的数据包并发送所述重发的数据包至所述接收端,所述重发数据包的发送序列号为所述重发数据包的发送顺序。

所述发送端还包括连接模块,所述连接模块用于发送连接包至所述接收端,所述连接包包括第一指示信息,所述第一指示信息指示所述接收端发送的数据包包括所述发送序列号,以使所述接收端在判断所接收的连接包中包括所述指示信息,且自身发送的确认包也包括所述发送序列号时,产生一响应包,所述响应包包括第二指示信息,所述第二指示信息指示所述接收端所发送的确认包包括所述确认包对应的数据包的发送序列号;还用于接收所述接收端发送的响应包,若所述响应包中包括所述第二指示信息,则在后续发送所述数据包时添加所述发送序列号。

所述确认模块在根据所述确认包中的发送序列号确定在所述数据包之前发送的数据包中是否存在重发数据包时,具体用于根据所述发送序列号判断当前接收的确认包的前N个确认包中是否包括首次不连续包,所述首次不连续包的发送序列号与该首次不连续包前面一个确认包的发送序列号不连续,所述N为重传阈值,且为大于1的自然数;如果包括,判断当前接收的确认包的发送序列号与所述首次不连续包的发送序列号的差值是否大于等于所述重传阈值N;如果大于,则确定所述数据包之前发送的数据包中存在重发数据包。

所述记录包括还可以包括记录模块,用于在发送所述数据包至所述接收端后,记录所述数据包的数据序列号与所述发送序列号之间的映射关系,所述重传模块在获取所述重发的数据包时,具体用于:确定所述首次不连续包的发送序列号与所述首次不连续包的前一个确认包的发送序列号之间缺失的发送序列号;根据所确定的缺失的发送序列号及所述数据包的数据序列号与所述发送序列号之间的映射关系获取所述重传数据包的数据序列号;根据所述数据序列号获取所述重传数据包。

通过本发明实施例提供的技术方案,发送端通过给传输的数据包添加发送序列号,而接收端接收到所述数据包后,会获取所述数据包中的发送序列号,并将所获取的发送序列号添加至确认包中,这样,发送端即可根据确认包中的发送序列号是否连续来确定丢失的数据包,及确定需要重传的数据包,这样可以有效的减少数据的超时重传。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为现有技术中重传数据丢失的场景下数据传输的示意图。

图2为现有技术中连续数据丢失后,又有数据丢失的场景下数据传输的示意图。

图3为本发明实施例提供的数据传输系统的架构图及发送端及接收端的结构图。

图4为本发明实施例提供的数据传输方法的流程图。

图5为本发明实施例中连续数据丢失后,又有数据丢失的场景下数据传输的示意图。

图6为本发明实施例中重传数据丢失的场景下数据传输的示意图。

图7为本发明实施例中的发送端的模块图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

根据传输控制协议/因特网互联协议(Transmission Control Protocol/Internet Protocol,TCP/IP),在接收端及发送端之间传输数据流被划分为多个数据包,在这些数据包传输时,每个数据包会包括一个数据序列号,以指示其在所述数据流中的位置,在接收端接收到一个数据包时,会针对所接收到的数据包回复一个确认包(Acknowledge Package,ACK package)给发送端,该确认包包含ACK号,这个ACK号为接收端所接收的数据包的数据序列号加1,以告诉发送端已经收到了该ACK号的前面一个数据包,现在需要收到的是数据序列号为该ACK号的数据包。在接收端发送确认包时,如果当前收到的数据包的数据序列号与前一个收到的数据包的序列号不是连续的,即说明后发的数据包被先收到了,而先发的数据包有可能丢失,此时,接收端所发送的确认包的ACK号与当前接收到的数据包的前一个接收到的数据包的ACK号一致。如果接收端后续收到的数据包还不是所述可能丢失的包,则后续收到的数据包的确认包中的ACK号仍然保持不变,知道所述可能丢失的包被收到为止。在发送端,如果连续收到三个(为预先设置的重传阈值,也可以设置为其他值)ACK号一致的确认包,则可判定序列号为该ARC号的数据包可能丢失,需要快速重传,于是重传该数据。如图1所示,数据包seq1、seq2、seq3、seq4、seq5、seq6、seq7由发送端按照顺序发送至接收端,接收端在接收到数据包seq1时,会发送确认包ACK2给发送端。若数据包seq2丢失,则接收端在接收到seq2后续的数据包seq3、seq4,仍然会发送ACK2给发送端,并且在ACK2中携带SACK3及SACK4,表示数据包seq3、seq4已经收到了,在发送端发现收到三个相同的ACK2之后,则根据确认包中包含的SACK信息确定重传的数据包seq2,并重传数据包seq2。但是在接收端接收到seq2之前,数据包seq5、seq6、seq7的确认包已经发出,所以如果根据上述触发数据重传的方式又会触发一次seq2的快速重传,这样,就会导致seq2的多次重传,浪费通讯资源,所以现有技术中对数据经过一次快速重传之后,一般不会再启动第二次快速重传。这样,如果第一次快速重传的数据包seq2又丢失了,则只能通过超时重传,导致数据的传输效率比较低。

另外,如图2所示,如果在数据传输的过程中,有三个连续的数据包丢了,例如seq2、seq3、seq4,后续又有一个数据包seq7也丢了,则在接收端收到数据包seq5、seq6后,会针对每个数据包发送一个包含ACK2及SACK信息的确认包至发送端,发送端在接收到三个重复的ACK2之后,即可触发数据包seq2、seq3、seq4的重传。而由于重传数据包的确认包的ACK号不会重复,则不会触发数据包seq7的重传,从而导致seq7的超时重传。

可见,现有的快速重传方法在重传数据丢失及连续数据包丢失后又有数据包丢失的场景下,都可能导致数据包的超时重传,从而影响数据的传输效率。

在本发明实施例中,通过给数据包增加一个发送序列号,即每个数据除了具有一个指示数据包的顺序的数据序列号之外,还包括一个发送序列号,发送序列号按照发送的顺序进行排序,当丢失的数据被重传之后,其发送序列号即按照本次重传在发送序列中的次序进行排序,在接收端收到数据包之后,会获取数据包中的发送序列号,并将所获取的发送序列号添加至确认包中,这样,发送端根据收到的确认包中的发送序列号连续情况,即可判断是否需要进行数据重传,即使在重传数据丢失及数据包连续丢失之后又有数据包丢失时,也可以及时对丢失的数据包进行重传,从而减少了超时重传,提高了数据的传输效率。下面将结合具体实施例描述本发明所提供的方案。

如图3所示,为本发明实施例数据发送系统的架构图。所述数据发送系统包括发送端30及接收端31,所述发送端30与接收端31通过网络32连接。网络32的通信协议为TCP/IP协议。所述发送端30可以为服务器,所述接收端31可以为客户端,所述接收端31可以向发送端30发送数据访问请求,所述发送端30响应接收端31的数据访问请求,将所述接收端31访问的数据传输至所述接收端31。

所述发送端30与所述接收端31的硬件结构类似,下面以发送端30为例进行说明。所述发送端30包括中央处理单元(Central processing unit,CPU)301、存储器302、接口303。所述存储器302中存储有应用程序304。所述CPU执行所述存储器302中的应用程序304以为所述发送端30提供相应的功能,例如,所述CPU执行所述应用程序304实现图4所示的数据传输方法,从而使发送端与接收端进行数据传输。

根据TCP/IP协议,所述发送端30与接收端31通讯之前,需要先建立连接,在建立连接时,发起连接请求的一方在同步(synchronize,SYN)包(也可称为连接包)中加入一个表示连接发起方支持Osseq机制的标识字段,也即第一指示信息。所述Osseq机制即为本发明实施例所提供的数据重传方法,有关Osseq机制将在下文做详细介绍。所述字段可以加在SYN包的预留字段中。发起请求的一方可以是接收端也可以是发送端,为了方便描述,下面将以发送端30发起连接请求为例说明。

在收到发送端30发送的SYN包之后,如果接收端31在所述SYN的预留字段处查找到所述第一指示信息,且自身也支持所述OSSeq机制时,则发送一个响应包给所述发送端30,且所述响应包包括第二指示信息指示所述接收端31也支持所述OSSeq机制。这样,在双方都确认支持所述OSSeq机制时,则在后续进行数据传输时就可以使用所述OSSeq机制。

通过所述OSSeq机制所传输的数据包中除了数据序列号之外,还包括发送序列号,所述数据序列号用于表示所述数据包在所传输的数据流中的顺序,所述发送序列号表示所述数据包的发送顺序,所述发送序列号也可以设置在所述数据包的预留字段处。

下面将结合图4说明通过所述SSeq机制进行数据传输的方法。

步骤S401,所述发送端顺序发送数据包至所述接收端,在发送数据包时,会在所述数据包中加入所述发送序列号,并记录数据序列号与发送序列号的对应关系。

步骤S402,所述接收端接收所述数据包,产生一确认包,并获取所述数据包中的发送序列号,将所获取的发送序列号添加至所述确认包后发送所述确认包至所述发送端。

步骤S403,所述发送端接收所述确认包,获取所述确认包中的发送序列号。

步骤S404,所述发送端判断所述确认包是不是所传输数据流的第一个确认包。如果是第一个确认包,则执行步骤S405,如果不是第一个确认包,则执行步骤S407。

步骤S405,根据所述发送序列号判断该确认包是否所述数据流中的第一个数据包对应的确认包,如果是,则返回步骤S403,如果不是,则说明所述确认包对应的数据包之前的数据可能丢失,则执行步骤S406,将所述确认包作为首次不连续包,所述首次不连续包即为确认包中的发送序列号与前面一个确认包的发送序列号不连续,在这里,如果第一个确认包的发送序列号不是数据流中的第一个数据包的发送序列号,也作为首次不连续包。

步骤S407,所述发送端判断当前接收的确认包的前N个确认包中是否包括所述首次不连续包,如果不包括,则返回步骤S403,如果包括,则执行步骤S408,所述N为重传阈值,且为大于1的自然数。

步骤S408,判断当前接收的确认包的发送序列号与所述首次不连续包的发送序列号的差值是否大于等于所述重传阈值N,如果不大于,则返回步骤S403,如果大于,则执行步骤S409。

步骤S409,确定所述首次不连续包的发送序列号与所述首次不连续包的前一个确认包的发送序列号之间缺失的发送序列号。需要说明的是,如果所述首次不连续包是发送端接收到的第一个确认包,可默认将0作为首次不连续包的前一个确认包的发送序列号。

步骤S410,根据所确定的缺失的发送序列号及发送数据时所记录的发送序列号与数据序列号之间关系获取丢失的数据包的数据序列号。

步骤S411,根据所述数据序列号获取丢失数据包,并重传所述丢失数据包,所重传的数据包即为重传数据包。所数据包中也会加入发送序列号,并更新所述重传数据包的数据序列号与发送序列号之间的对应关系。

通过上述实施例提供的技术方案,发送端通过给传输的数据包添加发送序列号,而接收端接收到所述数据包后,会获取所述数据包中的发送序列号,并将所获取的发送序列号添加至确认包中,这样,发送端即可根据确认包中的发送序列号是否连续来确定丢失的数据包,及确定需要重传的数据包,这样可以有效的减少数据的超时重传。

下面将结合图5及图6所示的实例介绍上述数据传输方法的应用。

如图5所示,发送端首先将数据包seq1、seq2、seq3、seq4、seq5、seq6、seq7发送至接收端。在发送端发送数据包时,会给每个数据包加一个发送序列号,加了发送序列号的数据包可以表示为seq1(1)、seq2(2)、seq3(3)、seq4(4)、seq5(5)、seq6(6)、seq7(7),其中括号内的数字表示发送序列号。在数据包发送的过程中seq2、seq3、seq4及seq7丢失了。在接收端接收到数据包后,就会从接收到的数据包中获取数据包中的发送序列号,并将获取的发送序列号添加至确认包中,例如,接收端接收到了数据包seq1(1)、seq5(5)、seq6(6),则将接收到的每个数据包的发送序列号添加至每个数据包对应的确认包中,加入了发送序列号的确认包为Ack2(1)、Ack2(5)、Ack2(6),需要说明的是,由于在接收到数据包seq5(5)和seq6(6)之前,数据包seq2(2)还没有收到,所以接收端所发送的确认包中的Ack号仍然是2。在发送端收到所述确认包之后,判断所接收的确认包是不是第一个确认包,如果是第一个确认包则进一步确定所述确认包中的发送序列号是不是第一个数据包的发送序列号,如果是,则说明该确认包是第一个数据包对应的确认包,如果不是,则说明当前的确认包对应数据包之前发送的数据包丢失了。例如,本实施方式中,所收到的第一个确认包中的发送序列号是1,则说明第一个数据包没有丢失。如果发送端所接收的确认包不是所传输数据流的第一个确认包,则所述发送端判断当前接收的确认包及当前接收的确认包的前N个确认包中的发送序列号是否连续,在本实施方式中,所述N为触发重传的阈值,当所述当前接收的确认包及当前接收的确认包的前N个确认包中的发送序列号不连续,则进一步判断当前接收的确认包与首次出现发送序列号不连续的确认包之间的发送序列号的差值是不是大于等于一预设值M,其中,M=N-1。例如,在本实施方式中,所述N=2,在所述发送端接收到确认包Ack2(1)后,由于前面还没有确认包,且发送序列号为1,则发送序列号的第一个数据包没有丢失,当接收到确认包Ack2(5)之后,则由于其中的发送序列号5与前面的发送序列号1不连续,则所述Ack2(5)即为首次不连续包,当接收到确认包Ack2(6)之后,则判断Ack(6)及Ack(6)之前的两个确认包即Ack2(1)及Ack2(5)中是否有所述首次不连续包,由于所述Ack2(5)为首次不连续包,则继续判断所述Ack2(6)的发送序列号与所述首次不连续包即Ack2(5)的发送序列号之间的差值是否大于等于1,由于6-5=1,所以满足重传的条件,首次不连续包即Ack2(5)的发送序列号5与所述首次不连续包即Ack2(5)的前一个确认包Ack2(1)发送序列号1之间缺失的发送序列号,即2,3,4,然后根据所述缺失的序列号及发送数据时建立的发送序列号与数据包的数据序列号的对应关系,找到缺失的发送序列号2、3、4对应的数据序列号,并根据所述数据序列号找到数据包seq2、seq3、seq4进行重发,重发时,添加发送序列号,使重发的数据包变为seq2(8)、seq3(9)、seq4(10),并建立每个数据包的发送序列号与数据序列号的对应关系。在接收端收到seq2(8)、seq3(9)、seq4(10)后,会发送Ack3(8)、Ack4(9)、Ack5(10),当发送端接收到Ack4(9)后,发现发送序列号9与前两个确认包中存在首次不连续包seq2(8),而且与首次不连续包的发送序列号之间的差值等于1,则触发重传,并确定缺失发送序列号为7,并对缺失的发送序列号7对应的数据包seq7进行重传,所以,可以使连续丢失数据之后丢失的数据也可以被快速重传,而不必等到超时重传,从而提高数据传输的效率。

另外,再结合图6说明图4所提供的数据重传方法在第一次快速重传的数据丢失可以再一次被快速重传,避免现有技术中快速重传数据丢失后,只能进行超时重传,从而提高了数据传输的效率。

如图6所示,发送端发送加入发送序列号的数据包seq1(1)、seq2(2)、seq3(3)、seq4(4)、seq5(5)、seq6(6)、seq7(7)至接收端,在发送过程中seq2(2)丢失,则在接收端接收到数据包后,会依次发送每个数据包对应的确认包至发送端,当发送端接收到seq4(4)的确认包ACK(4)后,会触发seq2(2)的重传(触发的方法请参考图5的相关描述),重传的数据包为seq2(8),在数据包seq2(8)重传之后,又收到了数据包seq5(5)、seq6(6)、seq7(7)的确认包ACK2(5)、ACK2(6)、ACK2(7),由于是通过发送序列号触发数据包是否重传,所以,此时,即使已经收到了三个重复的ARC2,但是由于接收到的确认包的发送序列号是连续的,所以不会触发数据重传,所以避免了不必要的重传,这样,在后续的数据包seq8(9)、seq9(10)、seq10(11)发送至接收端之后,发送端可以根据接收端发送的确认包ACK2(9)、ACK2(10)、ACK2(11)触发Seq2的快速重传,从而避免了现有技术中在第一次快速重传数据丢失后,只能通过超时重传的方式重传数据包,从而提升了数据传输的效率。

图7为本发明实施例提供的发送端的模块图。所述发送端70包括连接模块701、发送模块702、记录模块703、确认模块704、及重传模块705。所述连接模块701用于发送连接包至所述接收端,所述连接包包括第一指示信息,所述第一指示信息指示所述接收端发送的数据包包括所述发送序列号,以使所述接收端在判断所接收的连接包中包括所述指示信息,且自身发送的确认包也包括所述发送序列号时,产生一响应包,所述响应包包括第二指示信息,所述第二指示信息指示所述接收端所发送的确认包包括所述确认包对应的数据包的发送序列号;还用于接收所述接收端发送的响应包,若所述响应包中包括所述第二指示信息,则在后续发送所述数据包时添加所述发送序列号。

所述发送模块702用于发送数据包至接收端,所发送数据包包括数据序列号及发送序列号,所述数据序列号表示所发送数据包在所述数据流中的顺序,所述发送序列号表示所述数据包的发送顺序,以使所述接收端在接收到所述数据包后,产生一确认包,并获取所述数据包的发送序列号,将所获取的发送序列号添加至所述确认包后发送所述确认包至所述发送端,具体发送过程可参考图4中的步骤S401及S402。

所述记录模块703用于在发送端发送所述数据包至所述接收端后,记录所述数据包的数据序列号与所述发送序列号之间的映射关系。

所述确认模块704用于接收所述接收端发送的确认包,根据所述确认包中的发送序列号确定在所述数据包之前发送的数据包中是否存在重发数据包,所述重发数据包为需要重新发送的数据包。所述确认模块在确定所述数据包之前发送的数据包中是否存在重发数据包时,首先根据所述发送序列号判断当前接收的确认包的前N个确认包中是否包括首次不连续包,所述首次不连续包的发送序列号与该首次不连续包前面一个确认包的发送序列号不连续,所述N为重传阈值,且为大于1的自然数;如果包括,判断当前接收的确认包的发送序列号与所述首次不连续包的发送序列号的差值是否大于等于所述重传阈值N;如果大于,则确定所述数据包之前发送的数据包中存在重发数据包。具体请参考图4中的步骤S404至S408的描述。

所述重传模块705用于获取所述重发的数据包并发送所述重发的数据包至所述接收端,所述重发数据包的发送序列号为所述重发数据包的发送顺序。在获取所述重发的数据包时,所述重传模块705首先确定所述首次不连续包的发送序列号与所述首次不连续包的前一个确认包的发送序列号之间缺失的发送序列号;根据所确定的缺失的发送序列号及所述数据包的数据序列号与所述发送序列号之间的映射关系获取所述重传数据包的数据序列号;根据所述数据序列号获取所述重传数据包。具体请参考图4中的步骤S409至S411的描述。

以上对本发明实施例所提供的数据备份装置及方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1