一种QUIC自适应数据重传方法、装置及系统
文献发布时间:2024-04-18 20:00:50
技术领域
本发明属于无线通信领域,更具体地,涉及一种QUIC自适应数据重传方法、装置及系统。
背景技术
QUIC协议底层基于UDP实现,已经成为了HTTP/3的协议标准。QUIC协议的特点是快速,它解决了TCP的一系列问题。由于QUIC协议实现在应用层,因此,可以轻易地对其功能模块进行更新;但是,在QUIC协议中,传输过程中数据包的乱序情况比TCP更加严重。
现在常用的丢包检测的方法是,使用固定数量阈值的乱序到达或固定时间阈值的超时事件来判断数据包是否丢失,并以RTO作为最终手段进行丢包检测。但是这种方式灵活程度低,并且会带来更多的丢包误判,导致不必要的重传,进而增加收发双方交互次数,带来额外的时延,导致通信开销过高。
发明内容
针对现有技术的缺陷和改进需求,本发明提供了一种QUIC自适应数据重传方法、装置及系统,其目的在于降低QUIC链接可靠数据传输中数据包重传的通信开销。
为实现上述目的,按照本发明的第一方面,提供了一种QUIC自适应数据重传方法,应用于发送端和接收端,包括:
发送端将经过QUIC协议打包后的原始数据包前向纠错编码后,生成冗余数据包;并将所述原始数据包和所述冗余数据包同时发送给接收端;其中,所述冗余数据包不设置超时计时器;
接收端对接收到的原始数据包和冗余数据包解码,用冗余数据包对丢失的原始数据包进行恢复,并将接收到的冗余数据包数量反馈至发送端;
发送端根据网络传输状态以及接收端反馈的冗余数据包数量计算当前时隙数据包的丢包率和重传率,其中,所述网络传输状态包括发送的原始数据包及冗余数据包的数量;
发送端根据当前时隙的所述丢包率和重传率计算下一时隙的重传阈值,以确定是否进行数据重传。
进一步地,发送端根据当前时隙的所述丢包率和重传率,采用自适应阈值算法,计算下一时隙的重传阈值;其中,所述自适应阈值算法包括:
若r>l,且当前时隙的重传阈值触发了原始数据包重传,则增大下一时隙的重传阈值;若r≤l,则减小下一时隙的重传阈值。
进一步地,所述重传阈值包括重传时间阈值和重传数量阈值;
若r>l,且当前时隙的重传数量阈值或者重传时间阈值触发了原始数据包重传,则判断当前时隙的重传数量阈值触发的原始数据包数量N
若r≤l,则减小下一时隙的重传数量阈值;或/和,减小下一时隙的重传时间阈值;
若减小后的下一时隙的重传数量阈值或者重传时间阈值低于预设的阈值下限,则采用预设的阈值下限作为下一时隙的重传数量阈值或重传时间阈值。
进一步地,所述当前时隙数据包的丢包率l为:
l=a*FECLoss(n)+(1-a)*FECLoss(1~n)
式中,a为权重系数,取值为0~1,FECLoss(n)为当前时隙的链路丢包率,FECLoss(1~n)为当前时隙及之前时隙累计的链路丢包率;其中,FECLoss(n)和FECLoss(1~n)分别为:
Acked(n)为接收端反馈的当前时隙接收的冗余数据包的数量,FECSent(n)为发送端从所述网络传输状态中获取的当前时隙发送的冗余数据包的数量;Acked(1~n)为接收端反馈的当前时隙及之前时隙累计接收的冗余数据包的数量之和,FECSent(1~n)为发送端从所述网络传输状态中获取的当前时隙及之前时隙累计发送的冗余数据包的数量之和。
进一步地,接收端通过确认帧将接收到的冗余数据包数量反馈至发送端;所述确认帧包括ACK帧及扩展字段,所述扩展字段为冗余数据包数量;
或,所述确认帧为SymbolACK帧,所述SymbolACK帧包括冗余数据包数量字段;
或,所述确认帧为SymbolACK帧,所述SymbolACK帧包括冗余数据包的帧数量字段。
按照本发明的第二方面,提供了一种QUIC自适应数据重传方法,应用于发送端,包括:
将经过QUIC协议打包后的原始数据包前向纠错编码后,生成冗余数据包;并将所述原始数据包和所述冗余数据包同时发送给接收端;其中,所述冗余数据包不设置超时计时器;
根据网络传输状态以及接收端反馈的冗余数据包数量计算当前时隙数据包的丢包率和重传率,其中,所述网络传输状态包括发送的原始数据包及冗余数据包的数量;所述接收端反馈的冗余数据包数量为接收端对接收到的原始数据包和冗余数据包解码,并反馈的接收到的冗余数据包数量;
根据当前时隙的所述丢包率和重传率计算下一时隙的重传阈值,以确定是否进行数据重传。
按照本发明的第三方面,提供了一种QUIC服务器,包括计算机可读存储介质和处理器;
所述计算机可读存储介质用于存储可执行指令;
所述处理器用于读取所述计算机可读存储介质中存储的可执行指令执行第二方面所述的QUIC自适应数据重传方法。
按照本发明的第四方面,提供了一种QUIC自适应数据重传方法,其特征在于,应用于接收端,包括:
对接收到的原始数据包和冗余数据包解码,用冗余数据包对丢失的原始数据包进行恢复,并将接收到的冗余数据包数量反馈至QUIC服务器;其中,所述原始数据包为经过QUIC协议打包后的数据包;所述冗余数据包为所述QUIC协议打包后的数据包经过前向纠错编码后生成的数据包,且所述冗余数据包不设置超时计时器;
所述QUIC服务器为第三方面所述的QUIC服务器。
按照本发明的第五方面,提供了一种QUIC客户端,包括计算机可读存储介质和处理器;
所述计算机可读存储介质用于存储可执行指令;
所述处理器用于读取所述计算机可读存储介质中存储的可执行指令执行第四方面所述的QUIC自适应数据重传方法。
按照本发明的第六方面,提供了一种QUIC自适应数据重传系统,包括QUIC服务器和QUIC客户端,所述QUIC服务器为第三方面所述的QUIC服务器,所述QUIC客户端为第五方面所述的QUIC客户端。
总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:
(1)本发明通过测试发现,当无线链路由于乱序严重,导致发送端感知的数据丢包率很高时,感知的丢包率超过网络的真实丢包率,采用这种不准确的丢包率进行丢包判断,会导致不必要的重传,进而增加收发双方交互次数,带来额外的时延,导致通信开销过高。同时,考虑到QUIC的特点易于集成前向纠错功能,具有很强的可插拔性,协议更新成本较低,本发明提供了一种新的QUIC自适应数据重传方法,通过对原始数据进行前向纠错冗余编码后生成冗余数据包,前向纠错保护的场景下,用冗余数据包对丢失的原始数据包进行恢复的同时,通过对额外引入的冗余数据包不设置超时计时器,使得冗余数据包不会触发重传,用接收端反馈的冗余数据包的信息来精确感知链路的丢包率,可以反映网络的真实丢包率,用冗余数据包的丢包率作为指导,计算数据包下一时隙的重传阈值,可以减少丢包的误判问题,进而减少收发双方的交互次数,降低了通信开销。
(2)进一步地,本发明的自适应阈值算法计算下一时隙的重传阈值时,采用冗余数据包的丢失情况评估无线链路状态信息,当时重传率r大于丢包率l,说明当前时隙内的原始数据包发生了额外的重传,链路的乱序程度较大,则增大下一时隙的重传阈值,从而减少不必要的数据包重传,降低触发重传的灵敏度,从而降低重传率;否则,说明当前时隙内网络中的乱序程序降低,网络因乱序导致的重传比会降低,此时减小下一时隙的重传阈值,使得发送端尽快响应网络丢包,这种根据链路实时的状态信息自适应地动态调整重传阈值的方式,极大的增加了发送端的灵活性,减少了不必要的数据交互,提升了数据传输效率,降低了通信开销,提高了QUIC链接的性能。
(3)进一步地,当丢包率l大于重传率r时,考虑到一个时隙内的多个数据包触发重传的原因不同,本发明根据当前时隙重传数量阈值确定的原始数据包丢失数量与重传时间阈值确定的原始数据包丢失数量之间的大小,自适应选择增大下一时隙的重传数量阈值或者重传时间阈值,可以使得阈值的波动较为平稳,提升算法的收敛性,并且节约CPU的计算资源。(4)进一步地,在计算当前时隙的丢包率l或重传率r时,考虑到无线链路信道变化快的特性,用当前时间段的丢包率作为可靠依据,并将过去时间的丢包率统计结果进行加权,过去时间的丢包率统计结果的权重代表了对过去时间段的丢包情况的采纳程度平滑掉不合理的统计结果,进一步提升无线链路丢包率或重传率的精度。
(5)进一步地,本发明可以采用较为灵活多样的多种确认方式,并且当采用冗余数据包的帧数量作为确认帧时,可以提供更加精细的确认粒度,进一步提升丢包率计算的准确性。
总而言之,本发明的方法可以解决QUIC链接可靠数据传输中过多的不必要数据包重传而导致的通信开销过高问题。
附图说明
图1为本发明实施例1中的QUIC自适应数据重传方法流程图。
图2为本发明实施例1对应的QUIC自适应数据重传系统流程图。
图3为本发明实施例1中的时隙划分的示意图。
图4为本发明实施例1中的直接在原有ACK帧中扩展字段的确认帧示意图。
图5为本发明的SymbolACK帧的一种形式示意图。
图6为本发明的SymbolACK帧的另一种形式示意图。
图7为本发明实施例1中更新重传阈值的流程图。
图8为本发明实施例1中在WLAN场景下测试的相比于原有QUIC协议的传输结果示意图。
图9为本发明实施例6中QUIC自适应数据重传系统示意图。
图10为本发明实施例6中统计模块示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
实施例1
如图1、图2所示,本发明提供了一种QUIC自适应数据重传方法,应用于发送端和接收端;该方法包括:
S1、发送端将原始数据包进行前向纠错编码后,生成冗余数据包;并将原始数据包和冗余数据包同时发送给接收端;其中,原始数据包为应用层数据流通过QUIC协议打包后的各个数据包;冗余数据包不设置超时计时器。
S2、接收端对接收到的原始数据包和冗余数据包进行解码,用冗余数据包对丢失的原始数据包进行恢复,并生成冗余数据包的反馈信息;并且,接收端通过确认帧将冗余数据包的反馈信息反馈至发送端;其中,冗余数据包的反馈信息包括接收的冗余数据包的数量;在其它实施例中,冗余数据包的反馈信息还可以包括:当前时隙接收的冗余数据包的时间等其它反馈信息。需要说明的是,本发明中并不限定用冗余数据包对丢失的原始数据包进行恢复以及对接收到的冗余数据包进行确认的顺序,当接收端接收到冗余数据包之后,就可以对接收到的冗余数据包进行反馈确认。
S3、发送端根据网络传输状态以及接收端反馈的冗余数据包的反馈信息计算当前时隙数据包的丢包率l和重传率r,其中,网络传输状态包括发送的原始数据包及冗余数据包的数量;在其它实施例中,网络传输状态还包括发送的原始数据包及冗余数据包的链路时延、链路带宽等信息,以及计算的丢包率、重传率等。
S4、发送端根据得到的当前时隙的丢包率l和重传率r计算数据包下一时隙的重传阈值,以评估原始数据包的传输状态,进而确定是否进行数据重传。
具体地,S1中,前向纠错编码方式包括里索码、随机线性码等常用码字。本发明实施例中,将预设的k个原始数据包和通过前向纠错编码冗余出的r个冗余数据包作为一个分组;本发明实施例中,以里所码编码为主要编码方式,使用k为15,r为3的固定冗余的编码方案。发送端将一个(k,r)分组作为一个Group通过无线链路发送到接收端。
具体地,S2中,通过将原始数据包编码生成的冗余数据包对原始数据包进行保护,当接收端接收到一定数量的原始数据包和冗余数据包后,可以采用冗余数据包对丢失的原始数据包进行恢复。具体地,当接收端接当前收到的原始数据包和冗余数据包的数量之和不低于预设传输的原始数据包数量k时,用冗余数据包对当前分组中丢失的原始数据包进行恢复,并将恢复的原始数据包递交至上层应用。
当前分组的r个冗余数据包全部收到并确认后,也即,前分组的冗余数据包生成对应的反馈信息并发送至发送端后;或/和,接收端追踪的数据包分组数已经超过了预设的最大追踪分组数量MAX_TRACK_GROUP时,丢弃当前分组,用以保证接收端不会占用过大内存;本发明实施例中,MAX_TRACK_GROUP设置为5000。
具体地,如图3所示,将发送端和接收端之间的传输进程划分为若干时隙,每个时隙时长为T,设T为K个RTT时长。在本发明实施例中,时隙的序列号用n表示,从1开始。设当前时隙为第n个时隙,1~n表示当前时隙及之前时隙,下一时隙的序列号为n+1,为S4中计算的重传阈值生效的时隙。
具体地,接收端通过确认帧将冗余数据包的反馈信息反馈至发送端时,本发明实施例中的确认帧包括ACK帧及扩展字段;其中,扩展字段为“冗余数据包数量”字段,该字段表示接收端已经接收到的冗余数据包个数,如图4所示;在其它实施例中,确认帧也可以是SymbolACK帧,SymbolACK帧仅包含一个字段,也即,“冗余数据包数量”字段,用于确认接收端已经接收到的冗余数据包个数,如图5所示。进一步地,如图6所示,SymbolACK帧中包含的子段还可以是“冗余数据包的帧数量”,用更加精细的确认粒度,可以进一步提升丢包率计算的准确性。采用本发明的方法,可以采用较为灵活多样的确认方式,便于实施。
具体地,S3中,计算当前时隙数据包的丢包率l包括:
S311、计算数据包传输进程中当前时隙的链路丢包率FECLoss(n):
其中,Acked(n)为发送端从冗余数据包的反馈信息中获取的当前时隙接收的冗余数据包的数量,FECSent(n)为发送端从网络传输状态中获取的当前时隙发送的冗余数据包的数量;
S312、计算当前时隙及之前时隙累计的链路丢包率FECLoss(1~n):
其中,Acked(1~n)为发送端从冗余数据包的反馈信息中获取的当前时隙及之前时隙累计接收的冗余数据包的数量之和,FECSent(1~n)为发送端从网络传输状态中获取的当前时隙及之前时隙累计发送的冗余数据包的数量之和;也即,(1~n)表示包含时隙1~时隙n在内的n个时隙。
S313、将当前时隙的链路丢包率FECLoss(n)和当前时隙及之前时隙累计的链路丢包率FECLoss(1~n)进行加权平均,得到链路丢包率l;即链路丢包率l为:
l=a*FECLoss(n)+(1-a)*FECLoss(1~n)
其中,a为权重系数,取值为0~1,在本实施例中取0.5,表示对当前时隙的丢包率的采纳水准。
计算当前时隙数据包的重传率r包括:
S321、计算数据包传输进程中当前时隙的重传率PktRetrans(n):
其中,ReTrans(n)为发送端从网络传输状态中获取的当前时隙发送的重传原始数据包的数量,Sent(n)为发送端从网络传输状态中获取的当前时隙发送的原始数据包的数量;
S322、计算当前时隙及之前时隙累计的重传率PktRetrans(1~n):
其中,ReTrans(1~n)为发送端从网络传输状态中获取的当前时隙及之前时隙累计发送的重传原始数据包的数量之和,FECSent(n)为发送端从网络传输状态中获取的当前时隙及之前时隙累计发送的原始数据包的数量之和。
S323、将当前时隙的链路重传率PktRetrans(n)和当前时隙及之前时隙累计的重传率PktRetrans(1~n)进行加权平均,得到链路丢包率l;即链路丢包率l为:
l=β*PktRetrans(n)+(1-β)*PktRetrans(1~n)
其中,β为权重系数,取值为0~1,在本实施例中取0.5,表示对当前时隙的重传率的采纳水准。
具体地,S4中,发送端根据得到的当前时隙的丢包率l和重传率r,采用自适应阈值算法计算数据包下一时隙的重传阈值,以进行数据包的自适应重传;其中,本发明的自适应阈值算法包括:
若当前时隙计算的重传率r大于丢包率l,且根据当前时隙的重传阈值判断原始数据包丢失(也即某些或某个数据包由当前时隙的重传阈值触发了重传),则增大下一时隙的重传阈值;反之,则减小下一时隙的重传阈值。本发明实施例中,当重传率r大于丢包率l时,若根据当前时隙的重传阈值判断没有原始数据包丢失,则下一时隙的重传阈值与当前时隙的重传阈值保持一致;本发明实施例中,采用加性增加和乘性减小的方法(AIMD)自适应增大或减小重传阈值。
其中,数据包的重传阈值包括重传时间阈值和重传数量阈值;重传时间阈值和重传数量阈值均设有上限和下限,在增减过程中始终约束在限制以内;其中,重传时间阈值和重传数量阈值的上限和下限在发送端和接收端建立连接的同时进行初始化。
具体地,如图7所示,若当前时隙计算的重传率r大于丢包率l,说明当前时隙内的原始数据包发生了额外的重传,链路的乱序程度较大,若根据当前时隙的重传数量阈值Dup(n)触发重传的原始数据包数量为N
Dup(n+1)=min(MaxDup,max(Dup(n)+1,MinDup))
否则,增大下一时隙的重传时间阈值,也即,下一时隙的重传时间阈值所对应的RTT倍率Delay(n+1)为当前时隙的重传时间阈值所对应的RTT倍率Delay(n)增加预设的增量δ,预设的增量δ在发送端和接收端建立连接时进行初始化。若增大后的下一时隙的重传时间阈值超过预设的阈值上限MaxDelay,则采用预设的阈值上限MaxDelay作为下一时隙的重传时间阈值。本发明实施例中,预设的阈值上限MaxDelay设置为5。具体地,Delay(n+1)为:
Delay(n+1)=min(MaxDlay,max(Delay(n)+δ,MinDelay))
根据该公式对下一时隙的时间阈值delayUntilLost进行更新:
delayUntilLost=max(Delay(n+1)*RTT,kGranularity)
其中,kGranularity为本机计时器的粒度。
若当前时隙计算的重传率r不超过丢包率l,说明当前时隙内网络状况变好,也即,网络中的乱序程序降低,则减小下一时隙的重传数量阈值Dup(n+1),也即,下一时隙的重传数量阈值Dup(n+1)为当前时隙的重传数量阈值减去预设的增量γ;若减小后的下一时隙的重传数量阈值低于预设的阈值下限MinDup,则采用预设的阈值下限MinDup作为下一时隙的重传数量阈值。本发明实施例中,预设的阈值下限MinDup按照RFC的建议设置为3。具体地,下一时隙的重传数量阈值Dup(n+1)为:
Dup(n+1)=min(MaxDup,max(Dup(n)/2,MinDup))
或/和,减小下一时隙的重传时间阈值,也即,下一时隙的重传时间阈值所对应的RTT倍率Delay(n+1)为当前时隙的重传时间阈值所对应的RTT倍率Delay(n)的(1-δ)倍,若减小后的下一时隙的重传时间阈值低于预设的阈值下限MinDelay,则采用预设的阈值下限MinDelay作为下一时隙的重传时间阈值。本发明实施例中,预设的阈值下限MinDelay设置为RFC建议的9/8。具体地,Delay(n+1)为:
Delay(n+1)=min(MaxDlay,max(Delay(n)*(1-δ),MinDelay))
根据下一时隙的时间阈值delayUntilLost更新公式进行时间阈值更新。
当计算出下一时隙的重传阈值后,下一时隙采用更新后的重传阈值来判断数据包的丢失并进行重传。具体地,若更新后的下一时隙的重传阈值超过原始数据包中设置的超时计时器,则说明对应的原始数据包丢失,并进行重传。本发明实施例中,初始化的重传数量阈值为3,初始化的重传时间阈值为9/8。
本发明实施例中,测试实验选取了比较有代表性的WLAN场景,在mininet中搭建了端到端的传输网络,通过TC工具控制网络延时、丢包、乱序等。为了模拟WLAN环境,设置的丢包率范围为0-5%,RTT为20-30ms,链路带宽为25Mbps,测试传输的文件大小均为10MB。分析了无乱序、1%乱序、5%乱序的情况下的传输完成时间,每种测试进行3次并取平均,结果如图8所示。其中,图8中的原QUIC方案是指采用现有技术中固定重传阈值的方案,本发明实施例中,原QUIC方案的重传数量阈值为3,重传时间阈值为9/8。从结果可以看出,在相同的数据量下,可以减少传输的总时间,降低了开销,本发明提出的方法在降低传输时间上有较大的优势,尤其是当链路的乱序程度更高时,本发明所提出的方法优势更大。
实施例2
本发明实施例还提供了一种QUIC自适应数据重传方法,应用于发送端,该方法包括:
将经过QUIC协议打包后的原始数据包前向纠错编码后,生成冗余数据包;并将原始数据包和冗余数据包同时发送给接收端;其中,冗余数据包不设置超时计时器;
根据网络传输状态以及接收端反馈的冗余数据包数量计算当前时隙数据包的丢包率和重传率,其中,网络传输状态包括发送的原始数据包及冗余数据包的数量;接收端反馈的冗余数据包数量为接收端对接收到的原始数据包和冗余数据包解码,并反馈的接收到的冗余数据包数量;
根据当前时隙的丢包率和重传率计算下一时隙的重传阈值,以确定是否进行数据重传。
其中,每一步的具体实现方式参见上述实施例1中的QUIC自适应数据重传方法中对应的步骤。
实施例3
本发明实施例还提供了一种QUIC服务器,包括计算机可读存储介质和处理器;
计算机可读存储介质用于存储可执行指令;
处理器用于读取计算机可读存储介质中存储的可执行指令执行上述实施例2中的QUIC自适应数据重传方法。
实施例4
本发明实施例还提供了一种QUIC自适应数据重传方法,应用于接收端,包括:
对接收到的原始数据包和冗余数据包解码,用冗余数据包对丢失的原始数据包进行恢复,并将接收到的冗余数据包数量反馈至QUIC服务器;其中,原始数据包为QUIC协议打包后的数据包;冗余数据包为QUIC协议打包后的数据包经过前向纠错编码后生成的数据包,且冗余数据包不设置超时计时器;
QUIC服务器为实施例3中的QUIC服务器。
实施例5
本发明实施例还提供了一种QUIC客户端,包括计算机可读存储介质和处理器;
计算机可读存储介质用于存储可执行指令;
处理器用于读取计算机可读存储介质中存储的可执行指令执行实施例4中的QUIC自适应数据重传方法。
实施例6
如图9所示,本发明实施例还提供了一种QUIC自适应数据重传系统,包括QUIC服务器和QUIC客户端,QUIC服务器为实施例3中的QUIC服务器,QUIC客户端为实施例5中的QUIC客户端。具体地,在本发明实施例中,QUIC服务器包括前向纠错编码模块、统计模块及计算模块;QUIC客户端包括解码模块及反馈模块;
前向纠错编码模块用于将原始数据包进行前向纠错编码后,生成冗余数据包,并将原始数据包和冗余数据包同时发送给QUIC客户端;
编码模块用于将接收到的原始数据包和冗余数据包进行解码,用冗余数据包对丢失的原始数据包进行恢复,并生成冗余数据包的反馈信息;
反馈模块用于通过确认帧将冗余数据包的反馈信息反馈至发送端;
统计模块用于统计网络传输状态以及统计反馈模块反馈的冗余数据包信息,如图10所示;
计算模块用于根据网络传输状态以及接收端反馈的冗余数据包的反馈信息计算当前时隙数据包的丢包率l和重传率r;以及根据得到的当前时隙的丢包率l和重传率r计算数据包下一时隙的重传阈值。
其中,每个模块的具体实现方式参见实施例1中对应的具体步骤,如图2所示,图2中的第一通信节点为QUIC服务器,第二通信节点为QUIC客户端。
实施例7
本发明还提供了一种计算机存储介质,包括存储的计算机程序;计算机程序被处理器执行时,控制计算机可读存储介质所在设备执行实施例1中的QUIC自适应数据重传方法,和/或,实施例2中的QUIC自适应数据重传方法,或/和,实施例4中的QUIC自适应数据重传方法。
本发明通过测试发现,当无线链路由于乱序严重,导致发送端感知的数据丢包率很高时,感知的丢包率超过网络的真实丢包率,采用这种不准确的丢包率进行丢包判断,会导致不必要的重传,进而增加收发双方交互次数,带来额外的时延,导致通信开销过高。同时,考虑到QUIC的特点易于集成前向纠错功能,具有很强的可插拔性,协议更新成本较低,本发明的QUIC自适应数据重传方法,通过对原始数据进行前向纠错冗余编码后生成冗余数据包,前向纠错保护的场景下,用冗余数据包对丢失的原始数据包进行恢复的同时,通过对额外引入的冗余数据包不设置超时计时器,使得冗余数据包不会触发重传,用接收端反馈的冗余数据包的信息来精确感知链路的丢包率,可以反映网络的真实丢包率,用冗余数据包的丢包率作为指导,计算数据包下一时隙的重传阈值,可以减少丢包的误判问题,进而减少收发双方的交互次数,降低了通信开销。
具体地,本发明的自适应阈值算法计算下一时隙的重传阈值时,采用冗余数据包的丢失情况评估无线链路状态信息,当时重传率r大于丢包率l,说明当前时隙内的原始数据包发生了额外的重传,链路的乱序程度较大,则增大下一时隙的重传阈值,从而减少不必要的数据包重传,降低触发重传的灵敏度,从而降低重传率;否则,说明当前时隙内网络中的乱序程序降低,网络因乱序导致的重传比会降低,此时减小下一时隙的重传阈值,使得发送端尽快响应网络丢包,这种根据链路实时的状态信息自适应地动态调整重传阈值的方式,极大的增加了发送端的灵活性,减少了不必要的数据交互,提升了数据传输效率,降低了通信开销,提高了QUIC链接的性能。
在计算当前时隙的丢包率l或重传率r时,考虑到无线链路信道变化快的特性,用当前时间段的丢包率作为可靠依据,并将过去时间的丢包率统计结果进行加权,过去时间的丢包率统计结果的权重代表了对过去时间段的丢包情况的采纳程度平滑掉不合理的统计结果,进一步提升无线链路丢包率或重传率的精度。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
- 不同赋香卷烟纸致香成分的指纹图谱分析方法
- 一种选择收集绿茶茶叶中致香成分的方法及该方法制备的致香物质