TL;DR : 包抵达是随机过程中的泊松过程,若包处理并发出的速率恒定,其稳态下平均排队时延为:
W
q
=
ρ
2
μ
(
1
−
ρ
)
W_q = \frac{\rho}{2\mu(1-\rho)}
Wq=2μ(1−ρ)ρ,当流量强度 ρ 趋近于1时,排队时延趋于无限。
A Top Down Approach 第一章1.4.2部分中,提到的流量强度为1时队长趋于无限。
根据书中内容,有 λ = L a \lambda = La λ=La的(每个分组 L L L比特, a a a 分组/秒), R R R 为传输速率如10Mbps,即 μ = R \mu=R μ=R.
其中 λ \lambda λ 和 μ \mu μ 这两个参数是重点,容易看出流量强度就是 ρ = λ / μ \rho=\lambda /\mu ρ=λ/μ。
问题就在于,为什么输入路由器的速率跟路由器发出的速率一致时,会无限排队(如果队列空间无限大),而不是进一个出一个使得排队情况稳定在某个值上?
首先得确定一点,如果所有分组都是周期性抵达,稳定一秒来一个分组,并且一秒处理完一个分组(发出),那么队列将稳定在一个定值上(本来有3个分组在排队,之后队伍+1和-1同时发生,那么将会永远保持3个分组)。
然而就像书中强调的,所有分组的抵达是随机过程,并且此过程一般符合泊松分布(Poisson distribution),那结果就有点不一样了。
根据排队论中以 Kendall表示法 所标示的M/M/1排队模型理论,包抵达是泊松过程,即包抵达时间间隔服从指数分布(Exponential distribution),则将会有稳态下 i 个分组在路由器中的概率为: P ( i ) = ( 1 − ρ ) ρ i (1) P(i) = (1-\rho)\rho^i \tag{1} P(i)=(1−ρ)ρi(1)
那么在路由器中的平均分组数量 Ls 可以用下面的公式表示:
L s = 0 ∗ P ( 0 ) + 1 ∗ P ( 1 ) + 2 ∗ P ( 2 ) + ⋅ ⋅ ⋅ n ∗ P ( n ) = ∑ n = 1 ∞ n P ( n ) (2) L_s = 0* P(0) +1*P(1)+2*P(2)+···n*P(n) = \sum_{n=1}^\infty {n}{P(n)}\tag{2} Ls=0∗P(0)+1∗P(1)+2∗P(2)+⋅⋅⋅n∗P(n)=n=1∑∞nP(n)(2)
将 (1) 代入 (2) 中并推导可得(具体推导流程不赘述):
L s = ρ ( 1 − ρ ) (3) L_s = \frac{\rho}{(1-\rho)}\tag{3} Ls=(1−ρ)ρ(3)
从(3)中容易看出,当流量强度 ρ → 1 \rho \rightarrow1 ρ→1 时,路由器中平均留存分组数 L s → ∞ L_s \rightarrow\infty Ls→∞,即平均排队时延 :
W q = ρ μ − ρ (4) W_q = \frac{\rho}{\mu-\rho}\tag{4} Wq=μ−ρρ(4)
将趋于无穷。(具体可参考Birth–death process)
然而M/M/1模型的服务时间是指数分布(Exponential distribution),而路由器发射数据包的耗时应该服从确定性分布/退化分布(Degenerate distribution),处理一个等长的数据包理论时间应该是固定的,那流量强度为1时结果还是排队时延无穷吗?
是的。
同样的,根据 Kendall表示法 ,这种模型被称为M/D/1排队模型,与M/M/1模型类似,能求出系统中平均分组数量(省略推导流程):
W q = ρ + 1 2 ( ρ 2 1 − ρ ) (5) W_q = \rho+\frac12(\frac{\rho^2}{1-\rho})\tag{5} Wq=ρ+21(1−ρρ2)(5)
而平均排队时延为:
W q = ρ 2 μ ( 1 − ρ ) W_q = \frac{\rho}{2\mu(1-\rho)} Wq=2μ(1−ρ)ρ
从 (5) 和 (6) 中容易看出,当流量强度 ρ → 1 \rho \rightarrow1 ρ→1时,路由器中平均留存分组数 L s → ∞ L_s \rightarrow\infty Ls→∞,即平均排队时延 W q → ∞ W_q \rightarrow\infty Wq→∞。