1 tcp拥塞控制的吞吐量
[1]出给了tcp吞吐量的计算公式,影响深远。
Throughput=sR2p3a√+t(33p8a√)p(1+32p2)(1-1)
(1-1)
T
h
r
o
u
g
h
p
u
t
=
s
R
2
p
3
a
+
t
(
3
3
p
8
a
)
p
(
1
+
32
p
2
)
[2]进行理论上的分析,对式(1)进行近似。按照TCP拥塞控制机制,在拥塞避免阶段,每个RTT,
W=W+a
W
=
W
+
a
;出现丢包,
W=(1−b)W
W
=
(
1
−
b
)
W
.这是个周期过程,从出现丢包到窗口值增到
W
W
,需要经历的RTT个数为.假设
S
S
是这个周期的平均发送速率,单位为pkts/RTT,T也为这个周期的平均速率,单位为pkts/s.
T=SR=(2−b)W2R(1-3)
(1-3)
T
=
S
R
=
(
2
−
b
)
W
2
R
S∗(bWa+1)=(bW+a)(2−b)W2a≈b(2−b)W22∗a
S
∗
(
b
W
a
+
1
)
=
(
b
W
+
a
)
(
2
−
b
)
W
2
a
≈
b
(
2
−
b
)
W
2
2
∗
a
丢包率计算:
p=2ab(2−b)W2(1-4)
(1-4)
p
=
2
a
b
(
2
−
b
)
W
2
可得:
W=2ab(2−b)p−−−−−√(1-5)
(1-5)
W
=
2
a
b
(
2
−
b
)
p
(5)代入(3):
T^=1R(2−b)a2bp−−−−−√(1-6)
(1-6)
T
^
=
1
R
(
2
−
b
)
a
2
b
p
对于标准TCP(a=1,b=0.5):
T^1,0.5,R,p=1.5√Rp√(1-7)
(1-7)
T
^
1
,
0.5
,
R
,
p
=
1.5
R
p
采用符号AIMD(a,b)表示TCP的拥塞控制策略。若要提出一种同标准TCP拥塞控制机制友好的机制,需要满足,吞吐量相同,即AIMD(a,b)=AIMD(1,0.5).
T^a,b,R,p=T^1,0.5,R,p
T
^
a
,
b
,
R
,
p
=
T
^
1
,
0.5
,
R
,
p
,得:
a=3b2−b(1-8)
(1-8)
a
=
3
b
2
−
b
2 保证吞吐量公平的窗口的幂值系数分析
上一节的公平性分析,推导的是窗口系数,这一节主要推导窗口上的幂值[3]。
An AIMD control algorithm may be expressed as:
I:wt+r←wt+αwkt(2-a)
(2-a)
I
:
w
t
+
r
←
w
t
+
α
w
t
k
D:wt+δt=wt−βwlt(2-b)
(2-b)
D
:
w
t
+
δ
t
=
w
t
−
β
w
t
l
通过将上述方程积分,求出吞吐量与丢包率之间的关系。要保证不同tcp之间的公平性,需要满足
l+k=1
l
+
k
=
1
.
3 tcp的rtt不公平性分析
这里的分析来自论文[6]。
根据不同的tcp的控制协议,其吞吐量的理论分析,根据(1-7)可以泛化为:
r(p)=1RTTcpd(3-1)
(3-1)
r
(
p
)
=
1
R
T
T
c
p
d
式子中的p为丢包率。
对于一条TCP数据流,在两个丢包之间,一共发送的数据包假设为
1p
1
p
,耗时为t,假设rtt保持不变。Then the average packets sending out on every RTT can be computed as follows:
w=1/pt/RTT(3-2)
(3-2)
w
=
1
/
p
t
/
R
T
T
从而可以计算平均吞吐量,
Throughput=wRTT
T
h
r
o
u
g
h
p
u
t
=
w
R
T
T
。使其等于
r(p)
r
(
p
)
。
wRTT=1RTTcpd⇒p=c/w−−−√d(3-3)
(3-3)
w
R
T
T
=
1
R
T
T
c
p
d
⇒
p
=
c
/
w
d
将p的值带入(3-2),求解出w:
w={RTTtc√d}dd−1(3-3)
(3-3)
w
=
{
R
T
T
t
c
d
}
d
d
−
1
而假设两个数据流的拥窗口分别为
w1,w2
w
1
,
w
2
,往返时延分别为
RTT1,RTT2
R
T
T
1
,
R
T
T
2
。那么一条数据流的有效吞吐量,英文单词为goodput,丢包的不算。
G=w(1−p)RTT(3-4)
(3-4)
G
=
w
(
1
−
p
)
R
T
T
那么:
w1(1−p)/RTT1w2(1−p)/RTT2≈w1/RTT1w2/RTT2=RTT2RTT111−d(3-5)
(3-5)
w
1
(
1
−
p
)
/
R
T
T
1
w
2
(
1
−
p
)
/
R
T
T
2
≈
w
1
/
R
T
T
1
w
2
/
R
T
T
2
=
R
T
T
2
R
T
T
1
1
1
−
d
[1]Modeling TCP Throughput: A Simple Model and its Empirical Validation(1998-sigcomm)
[2]A Comparison of Equation-Based and AIMD Congestion Control
[3]Binomial Congestion Control Algorithms
[4]End-to-End Rate-Based Congestion Control: Convergence Properties and Scalability Analysis
[5]Rate adaptation, Congestion Control and Fairness: A Tutorial
[6]Binary Increase Congestion Control (BIC) for Fast Long-Distance Networks