发明内容
有鉴于此,本公开实施例至少提供一种数据包传输方法、装置、电子设备和存储介质,用以提高数据包的重传灵活性。
第一方面,本公开实施例提供了一种数据包传输方法,该方法包括:
在发送目标数据包后,获取传输目标数据包的传输链路的平均往返时延,以及该目标数据包对应的初始重传时延;
基于平均往返时延范围与重传超时区间的对应关系,在多个重传超时区间中确定获取的所述平均往返时延所对应的重传超时区间;
基于确定的重传超时区间、所述初始重传时延,以及预设的总重传时延,为所述目标数据包生成多个目标重传时延;所述目标重传时延,用于控制所述目标数据包进行重传。
在一种实施方式中,根据以下步骤确定所述初始重传时延:
根据获取的所述平均往返时延、以及与所述目标数据包的发送时间距离最近的且成功传输的历史数据包的往返时延,确定所述初始重传时延。
在一种实施方式中,所述获取传输目标数据包的传输链路的平均往返时延,包括:
获取在所述目标数据包的发送时间之前的预设时长内,成功传输的历史数据包集合;
基于所述历史数据包集合中的每个历史数据包对应的往返时延,为所述传输链路生成所述平均往返时延。
在一种实施方式中,所述平均往返时延满足以下公式:
Qi-1=α×Qi-2+β×Ti;
其中,i∈[2,n];n为历史数据包集合中包括的历史数据包的总数目;当i=n时,Qi-1为传输链路的平均往返时延;Ti为历史数据包集合中第i个历史数据包对应的往返时延;α∈[0,1];β∈[0,1];在i取2时,Q0为历史数据包集合中,第1个历史数据包对应的往返时延。
在一种实施方式中,基于确定的重传超时区间、所述初始重传时延,以及预设的总重传时延,为所述目标数据包生成多个目标重传时延,包括:
若所述初始重传时延位于所述重传超时区间内,则将所述初始重传时延作为所述多个目标重传时延中的前M个目标重传时延;M为预设的正整数;
若所述初始重传时延超出所述重传超时区间,则确定所述初始重传时延与所述重传超时区间的上界限值的差值绝对值,以及所述初始重传时延与所述重传超时区间的下界限值的差值绝对值,将最小的差值绝对值对应的界限值确定为所述多个目标重传时延中的前M个目标重传时延;
基于前M个目标重传时延,以及所述总重传时延,为所述目标数据包确定所述多个目标重传时延中的后N个目标重传时延;其中,N为基于前M个目标重传时延,以及所述总重传时延确定出的正整数。
在一种实施方式中,控制所述目标数据包进行重传,包括:
按照所述多个目标重传时延对应的排列顺序,依次重传所述目标数据包,直到所述目标数据包传输成功。
在一种实施方式中,还包括:
若所述目标数据包的重传次数达到所述目标重传时延的总数目,则停止对所述目标数据包进行重传。
第二方面,本公开实施例提供了一种数据包传输装置,该装置包括:
获取模块,用于在发送目标数据包后,获取传输目标数据包的传输链路的平均往返时延,以及该目标数据包对应的初始重传时延;
确定模块,用于基于平均往返时延范围与重传超时区间的对应关系,在多个重传超时区间中确定获取的所述平均往返时延所对应的重传超时区间;
生成模块,用于基于确定的重传超时区间、所述初始重传时延,以及预设的总重传时延,为所述目标数据包生成多个目标重传时延;所述目标重传时延,用于控制所述目标数据包进行重传。
在一种实施方式中,该装置包括:计算模块,所述计算模块用于根据以下步骤确定所述初始重传时延:
根据获取的所述平均往返时延、以及与所述目标数据包的发送时间距离最近的且成功传输的历史数据包的往返时延,确定所述初始重传时延。
在一种实施方式中,所述获取模块用于根据以下步骤获取传输目标数据包的传输链路的平均往返时延:
获取在所述目标数据包的发送时间之前的预设时长内,成功传输的历史数据包集合;
基于所述历史数据包集合中的每个历史数据包对应的往返时延,为所述传输链路生成所述平均往返时延。
在一种实施方式中,所述平均往返时延满足以下公式:
Qi-1=α×Qi-2+β×Ti;
其中,i∈[2,n];n为历史数据包集合中包括的历史数据包的总数目;当i=n时,Qi-1为传输链路的平均往返时延;Ti为历史数据包集合中第i个历史数据包对应的往返时延;α∈[0,1];β∈[0,1];在i取2时,Q0为历史数据包集合中,第1个历史数据包对应的往返时延。
在一种实施方式中,所述生成模块用于根据以下步骤为所述目标数据包生成多个目标重传时延:
若所述初始重传时延位于所述重传超时区间内,则将所述初始重传时延作为所述多个目标重传时延中的前M个目标重传时延;M为预设的正整数;
若所述初始重传时延超出所述重传超时区间,则确定所述初始重传时延与所述重传超时区间的上界限值的差值绝对值,以及所述初始重传时延与所述重传超时区间的下界限值的差值绝对值,将最小的差值绝对值对应的界限值确定为所述多个目标重传时延中的前M个目标重传时延;
基于前M个目标重传时延,以及所述总重传时延,为所述目标数据包确定所述多个目标重传时延中的后N个目标重传时延;其中,N为基于前M个目标重传时延,以及所述总重传时延确定出的正整数。
在一种实施方式中,还包括:控制模块,所述控制模块用于根据以下步骤控制所述目标数据包进行重传:
按照所述多个目标重传时延对应的排列顺序,依次重传所述目标数据包,直到所述目标数据包传输成功。
在一种实施方式中,所述控制模块还用于:
若所述目标数据包的重传次数达到所述目标重传时延的总数目,则停止对所述目标数据包进行重传。
第三方面,本公开实施例提供了一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行上述数据包传输方法的步骤。
第四方面,本公开实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述数据包传输方法的步骤。
本公开实施例提供的上述数据包传输方法中,不同传输链路下的不同的平均往返时延反映了该传输链路的网络传输质量,本公开实施例实际可以针对不同网络传输质量适用不同的重传超时区间,进而基于该重传超时区间来确定目标数据包的重传时延,可以在整体上提升数据包的重传效率和重传的灵活性。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,应当理解,本公开中附图仅起到说明和描述的目的,并不用于限定本公开的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本公开中使用的流程图示出了根据本公开的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本公开内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
需要说明的是,本公开实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
本公开实施例的数据包传输方法可以应用于服务器,也可以应用于其它任意具有处理功能的计算设备。在一些实施例中,上述服务器或计算设备可以包括处理器。处理器可以处理与服务请求有关的信息和/或数据,以执行本公开中描述的一个或多个功能。
在介绍本公开实施例中的方法之前,先介绍本公开实施例中涉及到的一些概念,这些概念如下:
往返时延(Round Trip Time,RTT)为一个连接的往返时间值,即,数据包发送时刻到接收到应答包的时刻的差值;
重传时延(Retransmission Time Out,RTO)又称重传超时时间值,即,从数据包发送时刻算起,超过这个RTO值才会执行数据包重传。
相关技术中,如图1所示,S表示发送端发送的原始数据包,ACK表示接收端针对原始数据包返回的应答包,发送端在发送数据包S后,为数据包S确定多个RTO值,首个RTO值(即第一次重传数据包的RTO值)可以通过根据传输成功的历史数据包的RTT值确定一个平滑值,利用该平滑值和数据包S的发送时间之前的一个传输成功的历史数据包(该数据包的发送时间距离数据包S的发送时间最近)的RTT值确定的,之后的每个RTO值均为上一个RTO值的2倍,但是,每个RTO值应属于[RTO_MIN,RTO_MAX]之间,RTO_MIN为最小RTO值,RTO_MIN可以为200ms,RTO_MAX为最大RTO值,可以为5s。
发送端在确定数据包S丢包后,按照多个RTO值的排列顺序,对数据包S进行重传,在对数据包S进行重传时,整个链路不会无限期的重传下去,在超过预设的总RTO值后,则停止传输数据包S。
在数据包S重传过程中,为数据包S确定的RTO值均被限定在一个固定的[RTO_MIN,RTO_MAX]区间内,并不能适合不同传输质量的网络,尤其是快速网络,例如,快速网络中数据包的RTT值大约为50ms,当偶然发生丢包时,该快速网络进行数据包重传时,首个RTO值最小也要为200ms,首个RTO值之后的RTO值也会成倍增加,这样,增加了数据包的重传时延,将低了数据包的恢复速度,降低了数据包的整体重传效率。而在实际应用中,用户在向服务器发送数据请求后,服务器针对数据请求发送相应数据,而用户对服务器发送的相应数据的忍耐度一般在秒级别,等待时间超过几分钟的话,用户会直接取消本次访问,降低了用户的体验。
基于此,本公开提出了一种数据包传输方法,通过不同传输链路下的不同的平均往返时延反映了该传输链路的网络传输质量,不同网络传输质量适用不同的重传超时区间,对于传输质量较好的网络中,提高了数据包重传的灵活性,整体上提高了数据包的重传效率。具体为,本公开在发送目标数据包后,首先,获取传输目标数据包的传输链路的平均往返时延,以及该目标数据包对应的初始重传时延,利用平均往返时延范围与重传超时区间的对应关系,在多个重传超时区间中,为平均往返时延确定所对应的重传超时区间,基于最终确定的重传超时区间、初始重传时延,以及预设的总重传时延,为目标数据包生成多个目标重传时延,目标重传时延用于控制所述目标数据包进行重传。比如,对于传输质量较好的网络,确定的重传超时区间的上/下界限值均较小,而目标重传时延位于确定的重传超时区间内,因此,利用传输质量较好的网络对应的重传超时区间为目标数据包确定的重传时延相对较小,对于传输质量较好的网络而言,在提高传输数据包的灵活性的前提下,提高了数据包的重传效率。
本公开实施例提供了一种路网数据处理方法,如图2所示,该方法具体包括以下步骤:
S201,在发送目标数据包后,获取传输目标数据包的传输链路的平均往返时延,以及该目标数据包对应的初始重传时延;
S202,基于平均往返时延范围与重传超时区间的对应关系,在多个重传超时区间中确定获取的所述平均往返时延所对应的重传超时区间;
S203,基于确定的重传超时区间、所述初始重传时延,以及预设的总重传时延,为所述目标数据包生成多个目标重传时延;所述目标重传时延,用于控制所述目标数据包进行重传。
在S201中,目标数据包一般为基于传输控制协议/网际协议(TransmissionControl Protocol/Internet Protocol,TCP/IP)传输的数据包;平均往返时延时通过发送目标数据包之前成功发送的历史数据包的往返时延确定,这里的历史数据包的发送时刻在目标数据包的发送时刻之前,该平均往返时延可以用于表征传输数据包的网络的质量,该平均往返时延越长,表示传输目标数据包的网络的质量越差,反之,则说明传输目标数据包的网络的质量较好;初始重传时延是指当目标数据包丢包后,对目标数据包进行重传时的首个重传时延(第一个重传时延)。
以下分别介绍平均往返时延和初始重传时延的计算过程:
在计算平均往返时延时,具体包括以下步骤:
获取在所述目标数据包的发送时间之前的预设时长内,成功传输的历史数据包集合;
基于所述历史数据包集合中的每个历史数据包对应的往返时延,为所述传输链路生成所述平均往返时延。
这里,预设时长一般为预先设定的,该预设时长一般为目标数据包的发送时刻之前的时间段,例如,连续几分钟、30分钟等,可以根据实际情况确定;目标数据包的发送时间为发送目标数据包的时刻;成功传输的历史数据包为从发送端发送且接收到应答包的数据包。
在具体实施过程中,在发送目标数据包后,获取发送目标数据包的时刻之前的预设时长内,成功发送的历史数据包集合,可以计算历史数据包集合中每个历史数据包对应的往返时延的和值,计算该和值和历史数据包集合中包含的历史数据包的总数目的比值,将该比值作为发送目标数据包的传输链路的平均往返时延。
通过上述计算平均值的方式计算的平均往返时延,并无法表达网络的历史趋势,为了平滑掉历史时刻出现的瞬时往返时延,如瞬时最大值、瞬时最小值,可以通过移动指数平均值的方法来确定传输链路的平均往返时延。
平均往返时延可以满足以下公式:
Qi-1=α×Qi-2+β×Ti;
其中,i∈[2,n];n为历史数据包集合中包括的历史数据包的总数目;当i=n时,Qi-1为传输链路的平均往返时延;Ti为历史数据包集合中第i个历史数据包对应的往返时延;α∈[0,1];β∈[0,1],较优地,α+β=1,β的取值一般为1/8;在i取2时,Q0为历史数据包集合中,第1个历史数据包对应的往返时延。
在计算传输链路的平均往返时延时,可以按照发送时间由远及近的顺序对历史数据包进行排序,也就是,将历史数据包的发送时间按照由远及近的顺序进行排序,Ti可以为排序后的历史数据包集合中,第i个历史数据包对应的往返时延;在n取2时,Q0为排序后的历史数据包集合中,第1个历史数据包对应的往返时延,在具体实施中,Ti可以根据实际情况确定。
在具体实施过程中,在获取到历史数据包集合后,按照历史数据包的发送时间由远及近的顺序,对历史数据包进行排序,首先计算排序中的第一个历史数据包对应的往返时延和第二个历史数据包对应的往返时延的加权值,将该加权值作为Q1,其中,第一个历史数据包对应的权重为α,第二历史数据包对应的权重为β,Q0为第一个历史数据包对应的往返时延。
随后,计算排序中的第三个历史数据包对应的往返时延和Q1的加权值,将该加权值作为Q2,其中,第三个历史数据包对应的权重为β,Q1对应的权重为α。
计算排序中的第四个历史数据包对应的往返时延和Q2的加权值,将该加权值作为Q3,其中,第四个历史数据包对应的权重为β,Q2对应的权重为α。
直到得到历史数据包集合中最后一个历史数据包对应的平均往返时延Qn-1,将最后一个历史数据包对应的往返时延作为目标数据包的传输链路的平均往返时延。这样,在一定程度上可以平滑掉瞬间过大或过小的往返时延。
例如,历史数据包集合中包括4个历史数据包,4个历史数据包分别对应的往返时延为T1、T2、T3、和T4,往返时延按照发送时间由远及近的顺序排序后往返时延顺序为T1、T2、T3、和T4,Q0=α×T1+β×T2,Q1=α×Q0+β×T2,Q2=α×Q1+β×T3,Q3=α×Q2+β×T4,Q3为最终确定的平均往返时延。
在计算初始重传时延时,具体包括以下步骤:
根据获取的所述平均往返时延、以及与所述目标数据包的发送时间距离最近的且成功传输的历史数据包的往返时延,确定所述初始重传时延。
在具体实施过程,在传输目标数据包后,并不确定目标数据包是否传输成功,因此,可以获取与目标数据包的发送时间距离最近的且成功传输的一个历史数据包,也就是,在目标数据包的发送时刻之前成功发送的上一个数据包,计算获取的该历史数据包的往返时延和平均往返时延的和值,将该和值作为初始重传时延。此处需要注意,在计算初始重传时延时,还可以计算该历史数据包的往返时延和平均往返时延的加权值,将该加权值作为初始重传时延,可以根据实际情况确定。
除了通过发送目标数据包之前成功发送的上一个数据包的往返时延计算初始重传时延外,还可以获取在目标数据包发送时刻之前,成功传输的任意一个历史数据包,利用该任一历史数据包的往返时延以及平均往返时延,计算初始重传时延;还可以获取在目标数据包发送时刻之前的预设时长内,成功传输多个历史数据包,计算多个历史数据包中的每个历史数据包的往返时延的平均值,将该平均值与平均往返时延的和值作为初始重传时延,可以根据实际情况确定。
若重传时延比重传超时区间的上界限值大,会降低传输性能,若重传时延比重传超时区间的下界限值小,会增加不必要的数据包重传,为了得到比较合理的重传时延,考虑传输目标数据包时的网络的传输质量,针对不同的网络传输质量确定不同的重传超时区间,而网络传输质量可以通过平均往返时延进行表征(不同的平均防范时延范围对应不同的网络质量),因此,预先设置平均往返时延范围与重传超时区间的对应关系。
网络传输质量与平均往返时延范围的对应关系表如下所示:
平均往返时延范围 |
网络传输质量 |
(0,50ms] |
极好 |
(50ms,100ms] |
一般 |
(100ms,200ms] |
略差 |
(200ms,500ms] |
非常差 |
(500ms,∞) |
极差 |
平均往返时延范围与重传超时区间的对应关系如下表所示:
以下针对平均往返时延范围与重传超时区间的对应关系表中RTT(min)和RTT(max)进行解释,在确定平均往返时延时,获取了在目标数据包的发送时刻之前的预设时长内,成功传输的历史数据包集合,RTT(min)为该历史数据包集合中的历史数据包对应的往返时延的最小值,RTT(max)为该历史数据包集合中的历史数据包对应的往返时延的最大值。
重传超时区间中的上界限值随着平均往返时延范围中的上界限值的增大而增大,重传超时区间中的下界限值随着平均往返时延范围中的下界限值的增大而增大;平均往返时延范围中的上/下界限值越小,表征传输数据包的网络的传输质量越好,那么,上/下界限值越小的平均往返时延范围对应的重传超时区间中的上/下界限值越小,重传超时区间中的上/下界限值越小,最终得到的目标重传时延相对越小。本公开中最大下界限值对应的重传超时区间与现有技术中的重传超时区间中相同,那么,传输质量较好的网络对应的重传超时区间的上界限值小于现有技术中的重传超时区间的上界限值,下界限值小于现有技术中的重传超时区间的下界限值。
在执行S202时,在得到传输目标数据包的传输链路的平均往返时延后,比对该平均往返时延和多个平均往返时延范围,确定该平均往返时延所属的平均往返时延范围,将确定的平均往返时延范围对应的重传超时区间确定为针对目标数据包的重传超时区间。
在执行S203时,总重传时延为预先设置的,可以为924.6s。
在基于确定的重传超时区间、所述初始重传时延,以及预设的总重传时延,为所述目标数据包生成多个目标重传时延时,具体包括以下步骤:
若所述初始重传时延位于所述重传超时区间内,则将所述初始重传时延作为所述多个目标重传时延中的前M个目标重传时延;M为预设的正整数;
若所述初始重传时延超出所述重传超时区间,则确定所述初始重传时延与所述重传超时区间的上界限值的差值绝对值,以及所述初始重传时延与所述重传超时区间的下界限值的差值绝对值,将最小的差值绝对值对应的界限值确定为所述多个目标重传时延中的前M个目标重传时延;
基于前M个目标重传时延,以及所述总重传时延,为所述目标数据包确定所述多个目标重传时延中的后N个目标重传时延;其中,N为基于前M个目标重传时延,以及所述总重传时延确定出的正整数。
这里,M可以为任意的正整数,实际应用中可以设置为6,M与N的和值为目标数据包进行重传的最大重传次数。
在具体实施过程中,比对初始重传时延与确定的重传超时区间,若该初始重传时延属于该重传超时区间,则认为该初始重传时延时比较合理,直接将预设的前M个目标重传时延分别确定为初始重传时延。
若该初始重传时延不属于该重传超时区间,也就是说,该初始重传时延小于重传超时区间的下界限值,或者,该初始重传时延大于重传超时区间的上界限值,则认为该初始重传时延相对不合理,此时,计算初始重传时延与重传超时区间的上界限值的差值绝对值,以及初始重传时延与重传超时区间的下界限值的差值绝对值,将最小差值绝对值对应的界限值分别作为多个目标重传时延中的前M个目标重传时延。
例如,确定的重传超时区间(25ms,50ms],M为6,若初始重传时延为30ms,则确定的前6个目标重传时延分别为30ms,若初始重传时延为20ms,20距离重传超时区间的下界限值25ms最近,则确定的前6个目标重传时延分别为25ms。
在得到前M个目标重传时延后,根据以下公式确定N:
其中,T为总重传时延,T一般取924.6秒;T1为前M个目标重传时延中的任一目标重传时延;M和N的和值为目标数据包丢包后,需要重传的最大次数。
在得到N后,依次计算后N个目标重传时延中的每个目标重传时延,后N个目标重传时延中的目标重传时延满足以下公式:
Ti-M=T1*2i-M
其中,Ti-M为多个目标重传时延中的第i-M个目标重传时延,i为大于M的正整数,i的最大值为M+N,在i取M+N时,Ti-M为后N个目标重传时延中的最后一个目标重传时延。
例如,前6个目标重传时延中的每个目标重传时延均为tms,计算的N为3,则第7个目标重传时延为2*tms,第8个目标重传时延为4*tms,第9个目标重传时延为8*tms。
在得到多个目标重传时延后,获取第一个目标重传时延,若在目标数据包的发送时间后第一个目标重传时延内,未接收到针对目标数据包的应答包,则说明目标数据包丢包了,按照所述多个目标重传时延对应的排列顺序,依次重传所述目标数据包,直到所述目标数据包传输成功。
在具体实施过程中,按照多个目标重传时延对应的排列顺序,依次按照排列顺序中相应的目标重传时延,对目标数据包进行重传,在重传次数未超过目标重传时延的总数目时,若目标数据包传输成功,则进行下一个数据包的传输。
若所述目标数据包的重传次数达到所述目标重传时延的总数目,则停止对所述目标数据包进行重传,也就是说,在目标数据包的重传次数达到目标重传时延的总数目后,无论目标数据包是否重传成功,则终止对目标数据包进行重传。
例如,为目标数据包确定的多个目标重传时延分别为T1、T2、T3……T10,目标重传时延的排列顺序为T1、T2、T3……T10,T1到T6对应的相同的重传时延的值,发送目标数据包的时间为T0,在达到T0+T1时刻后,未接收到针对目标数据包的应答包,则确定数目数据包丢包了,此时,在T0+T1时刻重传目标数据包,若在到达T0+T1+T2时刻后,未接收到针对目标数据包的应答包,在T0+T1+T2时刻重传目标数据包,依此类推,直到目标数据包传输成功,也就是,在重传目标数据包后接收到针对目标数据包的应答包,则确定数据包传输成功。若目标数据包的重传次数达到10次,则终止传输目标数据包。
由于本公开中最大上/下界限值对应的重传超时区间与现有技术中的重传超时区间相同的,也就是,传输质量最差的网络对应的重传超时区间与现有技术中的重传超时区间相同,那么,在得到传输目标数据包的当前平均往返时延,且确定当前网络传输质量不是最差时,为当前平均往返时延确定的重传超时区间的上界限值小于现有技术中重传超时区间的上界限值、下界限值小于现有技术中重传超时区间的下界限值,当网络传输质量极好或一般时,重传超时区间的上界限值小于现有技术中重传超时区间的下界限值,那么,最终为目标数据包确定的每个目标重传时延均小于现有技术中确定的重传时延,从而提高了传输质量极好或一般的网络中数据包的重传效率。
在控制数据包进行重传时,分为两个阶段对数据包进行重传,即,恒值阶段和指数退避阶段,恒值阶段对应的每个重传时延相同,指数退避阶段对应的后一个重传时延是前一个重传时延的两倍,这样,对于快速网络实现快速重传数据包,以减少用户的等待时长,提高用户的体验,对于质量较差的网络,增加每次重传的重传时延,在恢复网络的同时,减少重传数据包的负担。
基于同一发明构思,本公开实施例中还提供了与数据包传输方法对应的数据包传输装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述数据包传输方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
本公开实施例提供了一种数据包传输装置,如图3所示,该装置包括:
获取模块31,用于在发送目标数据包后,获取传输目标数据包的传输链路的平均往返时延,以及该目标数据包对应的初始重传时延;
确定模块32,用于基于平均往返时延范围与重传超时区间的对应关系,在多个重传超时区间中确定获取的所述平均往返时延所对应的重传超时区间;
生成模块33,用于基于确定的重传超时区间、所述初始重传时延,以及预设的总重传时延,为所述目标数据包生成多个目标重传时延;所述目标重传时延,用于控制所述目标数据包进行重传。
在一种实施方式中,所述获取模块31用于根据以下步骤获取传输目标数据包的传输链路的平均往返时延:
获取在所述目标数据包的发送时间之前的预设时长内,成功传输的历史数据包集合;
基于所述历史数据包集合中的每个历史数据包对应的往返时延,为所述传输链路生成所述平均往返时延。
在一种实施方式中,所述平均往返时延满足以下公式:
Qi-1=α×Qi-2+β×Ti;
其中,i∈[2,n];n为历史数据包集合中包括的历史数据包的总数目;当i=n时,Qi-1为传输链路的平均往返时延;Ti为历史数据包集合中第i个历史数据包对应的往返时延;α∈[0,1];β∈[0,1];在i取2时,Q0为历史数据包集合中,第1个历史数据包对应的往返时延。
在一种实施方式中,所述生成模块33用于根据以下步骤为所述目标数据包生成多个目标重传时延:
若所述初始重传时延位于所述重传超时区间内,则将所述初始重传时延作为所述多个目标重传时延中的前M个目标重传时延;M为预设的正整数;
若所述初始重传时延超出所述重传超时区间,则确定所述初始重传时延与所述重传超时区间的上界限值的差值绝对值,以及所述初始重传时延与所述重传超时区间的下界限值的差值绝对值,将最小的差值绝对值对应的界限值确定为所述多个目标重传时延中的前M个目标重传时延;
基于前M个目标重传时延,以及所述总重传时延,为所述目标数据包确定所述多个目标重传时延中的后N个目标重传时延;其中,N为基于前M个目标重传时延,以及所述总重传时延确定出的正整数。
本公开实施例提供了又一种数据包传输装置,如图4所示,该装置包括:
计算模块34,所述计算模块34用于根据以下步骤确定所述初始重传时延:
根据获取的所述平均往返时延、以及与所述目标数据包的发送时间距离最近的且成功传输的历史数据包的往返时延,确定所述初始重传时延。
在一种实施方式中,该装置还包括:控制模块35,所述控制模块35用于根据以下步骤控制所述目标数据包进行重传:
按照所述多个目标重传时延对应的排列顺序,依次重传所述目标数据包,直到所述目标数据包传输成功。
在一种实施方式中,所述控制模块35还用于:
若所述目标数据包的重传次数达到所述目标重传时延的总数目,则停止对所述目标数据包进行重传。
本公开实施例还提供了一种电子设备50,如图5所示,为本公开实施例提供的电子设备50结构示意图,包括:处理器51、存储器52、和总线53。所述存储器52存储有所述处理器51可执行的机器可读指令(比如,图3中的装置中获取模块31、确定模块32和生成模块33对应的执行指令等),当电子设备50运行时,所述处理器51与所述存储器52之间通过总线53通信,所述机器可读指令被所述处理器51执行时执行如下处理:
在发送目标数据包后,获取传输目标数据包的传输链路的平均往返时延,以及该目标数据包对应的初始重传时延;
基于平均往返时延范围与重传超时区间的对应关系,在多个重传超时区间中确定获取的所述平均往返时延所对应的重传超时区间;
基于确定的重传超时区间、所述初始重传时延,以及预设的总重传时延,为所述目标数据包生成多个目标重传时延;所述目标重传时延,用于控制所述目标数据包进行重传。
一种可能的实施方式中,处理器51执行的指令中,根据以下步骤确定所述初始重传时延:
根据获取的所述平均往返时延、以及与所述目标数据包的发送时间距离最近的且成功传输的历史数据包的往返时延,确定所述初始重传时延。
一种可能的实施方式中,处理器51执行的指令中,所述获取传输目标数据包的传输链路的平均往返时延,包括:
获取在所述目标数据包的发送时间之前的预设时长内,成功传输的历史数据包集合;
基于所述历史数据包集合中的每个历史数据包对应的往返时延,为所述传输链路生成所述平均往返时延。
一种可能的实施方式中,处理器51执行的指令中,所述平均往返时延满足以下公式:
Qi-1=α×Qi-2+β×Ti;
其中,i∈[2,n];n为历史数据包集合中包括的历史数据包的总数目;当i=n时,Qi-1为传输链路的平均往返时延;Ti为历史数据包集合中第i个历史数据包对应的往返时延;α∈[0,1];β∈[0,1];在i取2时,Q0为历史数据包集合中,第1个历史数据包对应的往返时延。
一种可能的实施方式中,处理器51执行的指令中,基于确定的重传超时区间、所述初始重传时延,以及预设的总重传时延,为所述目标数据包生成多个目标重传时延,包括:
若所述初始重传时延位于所述重传超时区间内,则将所述初始重传时延作为所述多个目标重传时延中的前M个目标重传时延;M为预设的正整数;
若所述初始重传时延超出所述重传超时区间,则确定所述初始重传时延与所述重传超时区间的上界限值的差值绝对值,以及所述初始重传时延与所述重传超时区间的下界限值的差值绝对值,将最小的差值绝对值对应的界限值确定为所述多个目标重传时延中的前M个目标重传时延;
基于前M个目标重传时延,以及所述总重传时延,为所述目标数据包确定所述多个目标重传时延中的后N个目标重传时延;其中,N为基于前M个目标重传时延,以及所述总重传时延确定出的正整数。
一种可能的实施方式中,处理器51执行的指令中,控制所述目标数据包进行重传,包括:
按照所述多个目标重传时延对应的排列顺序,依次重传所述目标数据包,直到所述目标数据包传输成功。
一种可能的实施方式中,处理器51执行的指令中,还包括:
若所述目标数据包的重传次数达到所述目标重传时延的总数目,则停止对所述目标数据包进行重传。
本公开实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述路网数据处理方法的步骤。
具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述数据包传输方法,用于解决现有技术数据包传输灵活性差的问题,本公开实施例提供的数据包传输方法,本公开实施例提供的上述数据包传输方法中,不同传输链路下的不同的平均往返时延反映了该传输链路的网络传输质量,本公开实施例实际可以针对不同网络传输质量适用不同的重传超时区间,进而基于该重传超时区间来确定目标数据包的重传时延,可以在整体上提升数据包的重传效率和重传的灵活性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本公开中不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个路网单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者路网设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。