基于单向网络质量测量的mp-quic多路径分配调度方法及装置
技术领域
1.本发明涉及基于mp-quic协议的多路网络带宽复用技术领域,尤其是基于单向网络质量测量的mp-quic多路径分配调度方法及装置。
背景技术:2.随着网络接入方式的丰富多样,一个终端设备可能同时拥有4/5g、wifi和有线等多种网络连接方式。虽然有多种可用网络接入资源,但目前大多数终端和应用仍只支持一种网络连接方式。为了增加体验效果,获取更大的网络带宽,如图1所示的基于mp-quic(multipath quick udp internet connections,多路径快速udp互联网连接)协议的多路网络带宽复用技术受到互联网业务服务商的关注和应用。
3.quic(quick udp internet connections,快速udp互联网连接)协议是一种应用层传输协议,基于udp(user datagram protocol,用户数据报协议)协议,主要负责报文在网络传输过程中拥塞、保序和重传等控制,如下表1,相比传统tcp协议,quic协议具有建立连接速度更快,应用数据更安全,对上层应用支持更灵活,对底层kernel(内核)无要求等优势。2021年5月,ietf正式发布rfc 9000作为quic正式标准化规范。
4.表1
[0005][0006]
基于mp-quic协议的多路网络带宽复用技术,quic协议天然具备多路径传输控制机制,通过connection id(connection identification,连接标识号)而不是n-tuple(n元组,例如由“源ip地址、源端口、目标ip地址、目标端口和协议”五个元素组成的五元组)标识一个连接,把多路径处理和底层传输隔离开,udp仅作为传输通道,通过用户态协议栈实现多个路径的报文保序和流量控制。
[0007]
mp-quic协议协同管理多个子流实现多路径复用,如下表2,path a、path b和path c三个子流共用一个cid(connection identification,连接标识号),每个子流包含自己的pathid(路径标识号)和pn(packet number,数据包序号)。
[0008]
表2
[0009][0010]
基于mp-quic协议的多路网络带宽复用技术包括多路径网络接入管理、子流拥塞控制算法和多路径分配调度算法三个技术。首先,多路径网络接入管理相对简单固定;其次,子流拥塞控制算法通常使用bbr(bottleneck bandwidth and round-trip propagation time,基于瓶颈带宽和往返传播时间的拥塞控制算法)或qubic算法,在单个网络连接上进行即可,与多路径关系不大;因此,多路径分配调度算法是多路网络带宽复用的关键技术。
[0011]
在使用mp-quic协议通信过程中,发送端与接收端同时使用多个网络连接传输数据,发送端依赖多路径分配调度算法将数据包合理地分配给每个网络连接,通过控制每个网络连接的分配权重,虽然传输路径不同,确保业务数据包尽可能同时到达接收端。
[0012]
目前业界常用的数据包多路径分配调度包括roundrobin(轮询调度)和最优rtt(round trip time,往返时间)两种模式。
[0013]
roundrobin模式是指将业务数据按照轮询和均等的方式分配给每个网络连接,发送端分配数据包不考虑网络的实际质量,在实际应用中roundrobin模式会造成高质量的网络资源浪费,低质量的网络因负载过重而延时增大和丢包重传,接收端无法对数据包进行合并重组。
[0014]
最优rtt模式是通过发送端与接收端的最小往返时延值来判断网络质量,发送端向最优rtt的网络连接分配较高权重比例的数据包,这种方式相比roundrobin模式有很大的改善,但实际网络连接,通常存在上下行网络质量不对称情况,mp-quic发送端更关注单向发送网络质量,往返rtt并不能代表单向网络质量的优劣,而且在客户端与服务端不支持ntp(network time protocol,网络时间协议)时间同步的情况下,无法通过往返rtt推导出单向时延。
技术实现要素:[0015]
为解决现有技术存在的上述问题,本发明提供基于单向网络质量测量的mp-quic多路径分配调度方法及装置,对mp-quic多路径单向网络质量进行实时测量,根据算法判断网络实时质量,动态调度分配发送至每个网络的数据包权重比例,最大化有效复用网络带宽。
[0016]
为实现上述目的,本发明采用下述技术方案:
[0017]
在本发明一实施例中,提出了基于单向网络质量测量的mp-quic多路径分配调度方法,该方法包括:
[0018]
mp-quic客户端与mp-quic服务端之间周期性相互发送网络质量探测包;
[0019]
接收端收到来自发送端的网络质量探测包后,标记接收包时间戳以及最近n个包丢包率,并返回给发送端,发送端对收到的网络质量探测响应包进行单向网络时延、抖动和
丢包计算以及每个网络综合质量和调度权重计算;
[0020]
发送端根据每个网络的调度权重,调整分配到每个网络子流的发包数据量,实现多路径动态分配调度。
[0021]
进一步地,mp-quic客户端与mp-quic服务端之间周期性相互发送网络质量探测包,包括:
[0022]
mp-quic客户端向mp-quic服务端周期性发送网络质量探测包,探测包结构包括:包序号、客户端发送包时间戳、服务端接收包时间戳、服务端统计最近n个包丢包率和网络类型;
[0023]
mp-quic客户端向mp-quic服务端建立udp会话后,mp-quic服务端利用该udp会话向mp-quic客户端周期性发送网络质量探测包,探测包结构包括:包序号、服务端发送包时间戳、客户端接收包时间戳、客户端统计最近n个包丢包率和网络类型。
[0024]
进一步地,单向网络时延算法如下:
[0025]
delay(wifi)=σ(ts(wifi)-ts(4/5g))/t
[0026]
delay(4/5g)=σ(ts(4/5g)-ts(wifi))/t
[0027]
其中,delay是每个网络的时延值,ts是发送端收到网络质量探测响应包后,计算t个探测周期内,同一包序号的网络质量探测响应包经过不同网络,得到的每个网络的差值,t是探测周期。
[0028]
进一步地,单向网络抖动算法如下:
[0029]
jitter=s
[0030]
其中,jitter是每个网络的抖动值,s是标准差值;
[0031]
s2=σ(xn-xmean)2/(n-1)
[0032]
其中,s2是每个网络一个探测周期内x的方差,n是发送端接收并缓存的网络质量探测响应包的数量,xn是x的第n个值,xmean是x的平均值;
[0033]
x=δts/δtc
[0034]
其中,x是每个网络的发送端接收的相邻两个网络质量探测响应包时间差比值,δts=ts(sn)-ts(sn-1),是每个网络的发送端接收的相邻两个网络质量探测响应包时间间隔,δtc是每个网络的发送端发送的相邻两个网络质量探测包时间间隔,固定值。
[0035]
进一步地,单向网络丢包算法如下:
[0036]
pktlost=1-(m/(sn
’‑
sn”))
[0037]
其中,pktlost是每个网络的丢包率,m是一个探测周期内接收端实际收到的网络质量探测包数量,sn’是一个探测周期结束的包序号,sn”是一个探测周期开始的包序号。
[0038]
进一步地,每个网络综合质量算法如下:
[0039]
q(wifi)=a.delay(wifi)+b.jitter(wifi)+c.pktlost(wifi)
[0040]
q(4/5g)=a.delay(4/5g)+b.jitter(4/5g)+c.pktlost(4/5g)
[0041]
其中,q是每个网络的综合质量指标值,a、b和c为预置权重值,a+b+c=100%,根据业务特点调整a、b和c。
[0042]
进一步地,每个网络调度权重算法如下:
[0043]
weight(wifi)=1-(q(wifi)/(q(wifi)+q(4/5g)))
[0044]
weight(4/5g)=1-weight(wifi)
[0045]
其中,weight是每个网络的调度权重值。
[0046]
在本发明一实施例中,还提出了基于单向网络质量测量的mp-quic多路径分配调度装置,该装置包括:
[0047]
网络质量探测模块,用于mp-quic客户端与mp-quic服务端之间周期性相互发送网络质量探测包;
[0048]
调度算法模块,用于接收端收到来自发送端的网络质量探测包后,标记接收包时间戳以及最近n个包丢包率,并返回给发送端,发送端对收到的网络质量探测响应包进行单向网络时延、抖动和丢包计算以及每个网络综合质量和调度权重计算;
[0049]
多路径分配调度模块,用于发送端根据每个网络的调度权重,调整分配到每个网络子流的发包数据量,实现多路径动态分配调度。
[0050]
进一步地,网络质量探测模块,具体用于:
[0051]
mp-quic客户端向mp-quic服务端周期性发送网络质量探测包,探测包结构包括:包序号、客户端发送包时间戳、服务端接收包时间戳、服务端统计最近n个包丢包率和网络类型;
[0052]
mp-quic客户端向mp-quic服务端建立udp会话后,mp-quic服务端利用该udp会话向mp-quic客户端周期性发送网络质量探测包,探测包结构包括:包序号、服务端发送包时间戳、客户端接收包时间戳、客户端统计最近n个包丢包率和网络类型。
[0053]
进一步地,单向网络时延算法如下:
[0054]
delay(wifi)=σ(ts(wifi)-ts(4/5g))/t
[0055]
delay(4/5g)=σ(ts(4/5g)-ts(wifi))/t
[0056]
其中,delay是每个网络的时延值,ts是发送端收到网络质量探测响应包后,计算t个探测周期内,同一包序号的网络质量探测响应包经过不同网络,得到的每个网络的差值,t是探测周期。
[0057]
进一步地,单向网络抖动算法如下:
[0058]
jitter=s
[0059]
其中,jitter是每个网络的抖动值,s是标准差值;
[0060]
s2=σ(xn-xmean)2/(n-1)
[0061]
其中,s2是每个网络一个探测周期内x的方差,n是发送端接收并缓存的网络质量探测响应包的数量,xn是x的第n个值,xmean是x的平均值;
[0062]
x=δts/δtc
[0063]
其中,x是每个网络的发送端接收的相邻两个网络质量探测响应包时间差比值,δts=ts(sn)-ts(sn-1),是每个网络的发送端接收的相邻两个网络质量探测响应包时间间隔,δtc是每个网络的发送端发送的相邻两个网络质量探测包时间间隔,固定值。
[0064]
进一步地,单向网络丢包算法如下:
[0065]
pktlost=1-(m/(sn
’‑
sn”))
[0066]
其中,pktlost是每个网络的丢包率,m是一个探测周期内接收端实际收到的网络质量探测包数量,sn’是一个探测周期结束的包序号,sn”是一个探测周期开始的包序号。
[0067]
进一步地,每个网络综合质量算法如下:
[0068]
q(wifi)=a.delay(wifi)+b.jitter(wifi)+c.pktlost(wifi)
[0069]
q(4/5g)=a.delay(4/5g)+b.jitter(4/5g)+c.pktlost(4/5g)
[0070]
其中,q是每个网络的综合质量指标值,a、b和c为预置权重值,a+b+c=100%,根据业务特点调整a、b和c。
[0071]
进一步地,每个网络调度权重算法如下:
[0072]
weight(wifi)=1-(q(wifi)/(q(wifi)+q(4/5g)))
[0073]
weight(4/5g)=1-weight(wifi)
[0074]
其中,weight是每个网络的调度权重值。
[0075]
在本发明一实施例中,还提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现前述基于单向网络质量测量的mp-quic多路径分配调度方法。
[0076]
在本发明一实施例中,还提出了一种计算机可读存储介质,计算机可读存储介质存储有执行基于单向网络质量测量的mp-quic多路径分配调度方法的计算机程序。
[0077]
有益效果:
[0078]
本发明能够测量单向网络时延值、单向网络抖动值和单向网络丢包值,根据这些指标值计算每个网络单向综合质量,平衡发送端多路径发包速率与接收端buffer的关系,使网络链路能者多劳,最大化利用网络带宽,减少网络拥塞和报文重传,提升用户业务体验效果。
附图说明
[0079]
图1是基于mp-quic协议的多路网络带宽复用技术示意图;
[0080]
图2是本发明基于单向网络质量测量的mp-quic多路径分配调度方法流程示意图;
[0081]
图3是本发明mp-quic客户端发送网络质量探测包示意图;
[0082]
图4是本发明mp-quic服务端发送网络质量探测包示意图;
[0083]
图5是本发明api资产的分级分类的实现装置结构示意图;
[0084]
图6是本发明计算机设备结构示意图。
具体实施方式
[0085]
下面将参考若干示例性实施方式来描述本发明的原理和精神,应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
[0086]
本领域技术人员知道,本发明的实施方式可以实现为一种装置、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
[0087]
根据本发明的实施方式,提出了基于单向网络质量测量的mp-quic多路径分配调度方法及装置,mp-quic客户端与mp-quic服务端在收发网络质量探测包时,每一端既是发送端,又是接收端,通过测量发送端与接收端单向网络质量,综合时延、丢包和抖动三项指标,计算分配每个网络连接的数据量发送比例,平衡多路子流发包速度,最大化利用多路网络带宽。
[0088]
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
[0089]
图2是本发明基于单向网络质量测量的mp-quic多路径分配调度方法流程示意图。如图2所示,该方法包括:网络质量探测、调度算法和数据按调度权重分配,其中网络质量探测和调度算法是本发明关键技术。具体方法如下:
[0090]
1、网络质量探测
[0091]
(1)mp-quic客户端与mp-quic服务端之间存在wifi和4/5g等多个网络连接,mp-quic客户端向mp-quic服务端周期性发送网络质量探测包感知每个网络质量,探测包结构如图3所示,其中:
[0092]
sn:包序号,单调递增,不同网络同一时刻发送探测包sn相同;
[0093]
tc:客户端发送包时间戳,同一时刻发出,不同网络tc值相同;
[0094]
ts:服务端接收包时间戳,到达时间不同,不同网络ts值不同;
[0095]
pktlost:服务端统计最近n个包丢包率,反馈给客户端;
[0096]
net type:网络类型,wifi或4/5g。
[0097]
(2)mp-quic客户端向mp-quic服务端建立udp会话后,mp-quic服务端利用该udp会话向mp-quic客户端周期性发送网络质量探测包,探测包结构如图4所示,其中:
[0098]
sn:包序号,单调递增,不同网络同一时刻发送探测包sn相同;
[0099]
ts:服务端发送包时间戳,同一时刻发出,不同网络ts值相同;
[0100]
tc:客户端接收包时间戳,到达时间不同,不同网络tc值不同;
[0101]
pktlost:客户端统计最近n个包丢包率,反馈给服务端;
[0102]
net type:网络类型,wifi或4/5g。
[0103]
(二)调度算法
[0104]
发送端主动发送网络质量探测包,接收端收到网络质量探测包后,标记接收包时间戳以及最近n个包丢包率,返回给发送端,发送端对收到的网络质量探测响应包进行统计计算。
[0105]
(1)单向网络时延算法
[0106]
发送端接收到网络质量探测响应包后,计算t个探测周期内,同一sn的网络质量探测响应包,经过不同网络,分别计算每个网络的差值ts,单个网络质量探测响应包的多网络时延差值具有偶然性,为了更准确反映某个时间段内网络的时延情况,避免由于单个网络质量探测响应包时延过大引起调度算法矫枉过正,每个网络的时延值delay值取n个网络质量探测响应包的差值:
[0107]
delay(wifi)=σ(ts(wifi)-ts(4/5g))/n
[0108]
delay(4/5g)=σ(ts(4/5g)-ts(wifi))/n
[0109]
差值大小表示单向网络的时延状况;差值为零,表示不同网络时延相当;差值越大,表示其中不同网络时延差别较大。
[0110]
如果delay值小于0,则取值0。
[0111]
(2)单向网络抖动算法
[0112]
针对同一个网络,发送端接收并缓存n个网络质量探测响应包,计算发送端接收的相邻两个网络质量探测响应包时间间隔:
[0113]
δts=ts(sn)-ts(sn-1),由于发送端周期性发送网络质量探测包,因此δtc(发
送端发送的相邻两个网络质量探测包时间间隔)为固定值,计算发送端接收的相邻两个网络质量探测响应包时间差比值:
[0114]
x=δts/δtc
[0115]
如果存在丢包情况,则跳过丢失的sn,计算接收到的相邻两个网络质量探测响应包的时间差比值,使用时间差比值可以避免由于丢包引起的时间差过大造成的统计误差。
[0116]
计算一个探测周期内x的方差,用s2表示:
[0117]
s2=σ(xn-xmean)2/(n-1)
[0118]
其中,n是发送端接收并缓存的网络质量探测响应包的数量,xn是x的第n个值,xmean是x的平均值。
[0119]
抖动值jitter取标准差值:
[0120]
jitter=s
[0121]
jitter值越小,表示抖动越小,0表示无抖动。
[0122]
(3)单向网络丢包
[0123]
接收端统计计算单向网络丢包,接收端根据buffer(缓冲区)大小判断接收包的有效性,收到第sn个包后,等候时间=buffer缓冲时间,在该范围内未收到下一个网络质量拨测包,则视为该包丢失,每个网络丢包率计算:
[0124]
pktlost=1-(m/(sn
’‑
sn”))
[0125]
其中,pktlost是每个网络的丢包率,m是一个探测周期内接收端实际收到的网络质量探测包数量,sn’是一个探测周期结束的包序号,sn”是一个探测周期开始的包序号。
[0126]
pktlost值越小,表示丢包越少,0表示无丢包。
[0127]
(4)综合调度算法
[0128]
发送端得到可用的多路径单向网络质量值,包括时延值、抖动值和丢包率,动态计算每个网络综合质量指标:
[0129]
q(wifi)=a.delay(wifi)+b.jitter(wifi)+c.pktlost(wifi)
[0130]
q(4/5g)=a.delay(4/5g)+b.jitter(4/5g)+c.pktlost(4/5g)
[0131]
q值越小,表示网络质量越好。
[0132]
其中,a、b和c为预置权重值,a+b+c=100%,可根据业务特点(低时延或低丢包或低抖动)调整a、b和c值。
[0133]
基于单个网络质量指标值q,进一步计算出该网络的调度权重值(weight),发送端根据每个网络的实时weight值,调整分配到每个网络子流的数据量,实现多路径动态分配调度。
[0134]
weight值算法:
[0135]
weight(wifi)=1-(q(wifi)/(q(wifi)+q(4/5g)))
[0136]
weight(4/5g)=1-weight(wifi)
[0137]
需要说明的是,尽管在上述实施例及附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
[0138]
为了对上述于单向网络质量测量的mp-quic多路径分配调度方法的实现进行更为
清楚的解释,下面结合一个具体的实施例来进行说明,然而值得注意的是该实施例仅是为了更好地说明本发明,并不构成对本发明不当的限定。
[0139]
调度算法的实施例如下:
[0140]
按照上述算法,以mp-quic客户端向mp-quic服务端发送网络质量探测包为例,给出一组模拟网络质量探测包数据。
[0141]
本实施例中,样本大小n=5,统计指标从第5个包开始计算;
[0142]
时间单位为秒,自1970-1-1以来所经历的秒数;
[0143]
mp-quic客户端发送网络质量探测包的时间间隔是200毫秒。
[0144]
(1)mp-quic客户端收到网络质量探测响应包,包括基础测量数据和单向网络丢包率pktlost,本实施例中4/5g网络第10002个包时延过大,按丢包处理,如下表3:
[0145]
表3
[0146][0147]
(2)mp-quic客户端计算单向网络时延值delay,得到如下表4:
[0148]
delay(wifi)=∑(ts(wifi)-ts(4/5g))/n
[0149]
delay(4/5g)=∑(ts(4/5g)-ts(wifi))/n
[0150]
表4
[0151]
sntcts(wifi)ts(4/5g)ts(wifi)-ts(4/5g)ts(4/5g)-ts(wifi)delay(wifi)delyay(4/5g)100011647865653.0001647865653.2521647865653.3530.1010.101
ꢀꢀ
100021647865653.2001647865653.5881647865655.501-1.9131.913100031647865653.4001647865653.8451647865653.8290.016-0.016100041647865653.600647865653.9051647865653.997-0.0920.092
ꢀꢀ
100051647865653.8001647865653.9101647865653.918-0.0080.0080.0000.420100061647865654.0001647865654.3521647865654.410-0.0580.0580.0000.411100071647865654.2001647865654.6661647865654.6080.058-0.0580.0000.017100081647865654.4001647865654.8981647865654.8520.046-0.0460.0000.011100091647865654.6001647865654.8901647865654.899-0.0090.0090.0060.000100101647865654.8001647865655.0221647865655.0020.020-0.0200.0110.000
……………………
[0152]
(3)mp-quic客户端计算单向网络抖动值jitter,得到如下表5:
[0153]
s2=∑(xn-xmean)2/(n-1)
[0154]
jitter=s
[0155]
表5
[0156]
sntcts(wifi)ts(4/5g)x=δts(wifi)/δtcx=δts(4/5g)/δtclitter(wifi)litter(4/5g)100011647865653.0001647865653.2521647865653.353100021647865653.2001647865653.5881647865655.5011.68010.740
ꢀꢀ
100031647865653.4001647865653.8451647865653.8291.285-8.360100041647865653.6001647865653.9051647865653.9970.3000.840
ꢀꢀ
00051647865653.8001647865653.9101647865653.9180.025-0.395
ꢀꢀ
100061647865654.0001647865654.3521647865654.4102.2102.4600.9226.829100071647865654.2001647865654.6661647865654.6081.5700.9900.9064.295
100081647865654.4001647865654.8981647865654.8521.1601.2200.9001.018100091647865654.6001647865654.8901647865654.899-0.0400.2350.9811.080100101647865654.8001647865655.0221647865655.0020.6600.5150.8590.861
……………………
[0157]
(4)mp-quic客户端计算每个网络综合质量指标值q:
[0158]
q(wifi)=a.delay(wifi)+b.jitter(wifi)+c.pktlost(wifi)
[0159]
q(4/5g)=a.delay(4/5g)+b.jitter(4/5g)+c.pktlost(4/5g)
[0160]
本实施例中设置参数a=30%,b=30%,c=40%;
[0161]
计算wifi网络单向质量指标值q(wifi),得到如下表6:
[0162]
表6
[0163]
sndelay(wifi)jitter(wifi)pktlost(wifi)q(wifi)100060.0000.9220.0000.277100070.0000.9060.0000.272100080.0000.9000.0000.270100090.0060.9810.0000.296100100.0110.8590.0000.261
[0164]
计算4/5g网络单向质量指标值q(4/5g),得到下表7:
[0165]
表7
[0166]
sndelay(4/5g)jitter(4/5g)pktlost(4/5g)q(4/5g)100060.4116.8290.2002.252100070.0174.2950.0001.294100080.0111.0180.0000.309100090.0001.0800.0000.324100100.0000.8610.0000.258
[0167]
(5)mp-quic客户端计算调度权重值weight,得到下表8:
[0168]
weight(wifi)=1-(q(wifi)/(q(wifi)+q(4/5g)))
[0169]
weight(4/5g)=1-weight(wifi)
[0170]
表8
[0171]
snq(wifi)q(4/5g)weight(wifi)weight(4/5g)100060.2772.25289%11%100070.2721.29483%17%100080.2700.30953%47%100090.2960.32452%48%100100.2610.25850%50%
[0172]
mp-quic客户端参考wifi网络和4/5g网络调度权重值weight,动态调整分配到每个网络子流的发包数据量。
[0173]
基于同一发明构思,本发明还提出基于单向网络质量测量的mp-quic多路径分配调度装置。该装置的实施可以参见上述方法的实施,重复之处不再赘述。以下所使用的术语“模块”,可以是实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0174]
图5是本发明基于单向网络质量测量的mp-quic多路径分配调度装置结构示意图。如图5所示,该装置包括:
[0175]
网络质量探测模块101,用于mp-quic客户端与mp-quic服务端之间周期性相互发送网络质量探测包;具体如下:
[0176]
mp-quic客户端向mp-quic服务端周期性发送网络质量探测包,探测包结构包括:包序号、客户端发送包时间戳、服务端接收包时间戳、服务端统计最近n个包丢包率和网络类型;
[0177]
mp-quic客户端向mp-quic服务端建立udp会话后,mp-quic服务端利用该udp会话向mp-quic客户端周期性发送网络质量探测包,探测包结构包括:包序号、服务端发送包时间戳、客户端接收包时间戳、客户端统计最近n个包丢包率和网络类型。
[0178]
调度算法模块102,用于接收端收到来自发送端的网络质量探测包后,标记接收包时间戳以及最近n个包丢包率,并返回给发送端,发送端对收到的网络质量探测响应包进行单向网络时延、抖动和丢包计算以及每个网络综合质量和调度权重计算;
[0179]
单向网络时延算法如下:
[0180]
delay(wifi)=σ(ts(wifi)-ts(4/5g))/t
[0181]
delay(4/5g)=σ(ts(4/5g)-ts(wifi))/t
[0182]
其中,delay是每个网络的时延值,ts是发送端收到网络质量探测响应包后,计算t个探测周期内,同一包序号的网络质量探测响应包经过不同网络,得到的每个网络的差值,t是探测周期。
[0183]
单向网络抖动算法如下:
[0184]
jitter=s
[0185]
其中,jitter是每个网络的抖动值,s是标准差值;
[0186]
s2=σ(xn-xmean)2/(n-1)
[0187]
其中,s2是每个网络一个探测周期内x的方差,n是发送端接收并缓存的网络质量探测响应包的数量,xn是x的第n个值,xmean是x的平均值;
[0188]
x=δts/δtc
[0189]
其中,x是每个网络的发送端接收的相邻两个网络质量探测响应包时间差比值,δts=ts(sn)-ts(sn-1),是每个网络的发送端接收的相邻两个网络质量探测响应包时间间隔,δtc是每个网络的发送端发送的相邻两个网络质量探测包时间间隔,固定值。
[0190]
单向网络丢包算法如下:
[0191]
pktlost=1-(m/(sn
’‑
sn”))
[0192]
其中,pktlost是每个网络的丢包率,m是一个探测周期内接收端实际收到的网络质量探测包数量,sn’是一个探测周期结束的包序号,sn”是一个探测周期开始的包序号。
[0193]
每个网络综合质量算法如下:
[0194]
q(wifi)=a.delay(wifi)+b.jitter(wifi)+c.pktlost(wifi)
[0195]
q(4/5g)=a.delay(4/5g)+b.jitter(4/5g)+c.pktlost(4/5g)
[0196]
其中,q是每个网络的综合质量指标值,a、b和c为预置权重值,a+b+c=100%,根据业务特点调整a、b和c。
[0197]
每个网络调度权重算法如下:
[0198]
weight(wifi)=1-(q(wifi)/(q(wifi)+q(4/5g)))
[0199]
weight(4/5g)=1-weight(wifi)
[0200]
其中,weight是每个网络的调度权重值。
[0201]
多路径分配调度模块103,用于发送端根据每个网络的调度权重,调整分配到每个网络子流的发包数据量,实现多路径动态分配调度。
[0202]
应当注意,尽管在上文详细描述中提及了基于单向网络质量测量的mp-quic多路径分配调度装置的若干模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
[0203]
基于前述发明构思,如图6所示,本发明还提出一种计算机设备200,包括存储器210、处理器220及存储在存储器210上并可在处理器220上运行的计算机程序230,处理器220执行计算机程序230时实现前述基于单向网络质量测量的mp-quic多路径分配调度方法的实现。
[0204]
基于前述发明构思,本发明还提出一种计算机可读存储介质,计算机可读存储介质存储有执行前述基于单向网络质量测量的mp-quic多路径分配调度方法的计算机程序。
[0205]
本发明提出的基于单向网络质量测量的mp-quic多路径分配调度方法及装置,更关注发送端至接收端的单向网络质量,与传统往返方式测量网络质量方法相比,单向网络质量能够更精确地反映真实情况,有效指导发送端多路径数据包发送比例,避免由于上下行网络质量不对称对单向网络质量误判,进行不合理调度。
[0206]
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包含的各种修改和等同布置。
[0207]
对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。