我觉得我目前最大的障碍就是我的思维方式,像高中求解数学题一样,只想求得最后的标准答案。悲剧的是,现实中的问题没有标准答案阿。
本文主要基于论文[1],[1]的主要讲述的webrtc采用的拥塞控制算法gcc的理论分析。我主要分析其中的公式推导部分。
假设一条链路的容量为C,目前只有一个session。根据基于Fluid Model[2]的分析,链路队列排队时延与发送速率有如下公式:
q˙(t)=r(t)−C,0≤q(t)≤qM(2)
(2)
q
˙
(
t
)
=
r
(
t
)
−
C
,
0
≤
q
(
t
)
≤
q
M
在丢包率小于0.02的时候,webrtc的发送端乘性增加发送速率:
As(tk)=ηAs(tk−1),fl(tk)<0.02(14)
(14)
A
s
(
t
k
)
=
η
A
s
(
t
k
−
1
)
,
f
l
(
t
k
)
<
0.02
问题是离散的,世界是量子的。将上式改造成微分形式:
r˙(t)=r(t)τ(19)
(19)
r
˙
(
t
)
=
r
(
t
)
τ
网络中的队列时延差
m(t)
m
(
t
)
(queue delay variation)可以采用下式表示:
m(t)=q˙(t)C(20)
(20)
m
(
t
)
=
q
˙
(
t
)
C
假设在
t0=0
t
0
=
0
时刻——时间是相对的,时时刻刻都可以是开始,发送速率达到链路速率(
r(t0)=C
r
(
t
0
)
=
C
),网络队列开始增长。对(19)求积分,可得:
r(t)=r(t0)exp(tτ)(21)
(21)
r
(
t
)
=
r
(
t
0
)
e
x
p
(
t
τ
)
另,根据(20)可得:
m(t)=exp(tτ)−1(22)
(22)
m
(
t
)
=
e
x
p
(
t
τ
)
−
1
假设
q(tM)=qM
q
(
t
M
)
=
q
M
,
q(tM)=∫tMt0r(ξ)−Cdξ=Cτ(exp(tMτ)−1)−CtM(23)
(23)
q
(
t
M
)
=
∫
t
0
t
M
r
(
ξ
)
−
C
d
ξ
=
C
τ
(
e
x
p
(
t
M
τ
)
−
1
)
−
C
t
M
对其中的指数部分进行泰勒级数展开,留两阶,从而求出:
tM=2τqMC−−−−√
t
M
=
2
τ
q
M
C
So,the maximum queuing delay variation is(仍然采用泰勒级数展开):
mM=m(tM)=1τ(2τqMC−−−−√+qMC)(24)
(24)
m
M
=
m
(
t
M
)
=
1
τ
(
2
τ
q
M
C
+
q
M
C
)
[1]Congestion Control for Web Real-Time Communication(2017-ton)
[2]TCP Fluid Model
webrtc拥塞控制的队列延迟模型
最新推荐文章于 2025-04-15 10:21:18 发布