带宽,时延,抖动的不可能三角

简单论证一下带宽,时延,抖动的不可能三角,这是一个非常浅显的道理,啰嗦了无数次,也不在乎再多一次。

之前说过 TCP/IP\text{TCP/IP}TCP/IP 网络所有理论都基于泊松到达指数分布的排队论,而这个前提模型是错误的,因为数据流是幂分布的,但不影响用 M/M/1\text{M/M/1}M/M/1 来论述这个不可能三角。

链路服务率 μ\muμ,到达率 λ\lambdaλ,利用率 ρ=λμ,(0≤ρ<1)\rho=\dfrac{\lambda}{\mu},\quad(0\le\rho\lt 1)ρ=μλ,(0≤ρ<1),

M/M/1\text{M/M/1}M/M/1 中,系统总时间 TTT 包括排队等待和服务时间,服从参数为 μ⋅(1−ρ)\mu\cdot(1-\rho)μ⋅(1−ρ) 的指数分布,平均时延:

ET=1μ(1−ρ)\mathbb{E}T = \dfrac{1}{\mu(1-\rho)}ET=μ(1−ρ)1

链路固有的抖动:

σT=VarT=1μ(1−ρ)\sigma_T = \sqrt{\mathrm{Var}T} = \dfrac{1}{\mu(1-\rho)}σT=VarT =μ(1−ρ)1

所以:

σT=ET=1μ(1−ρ)\sigma_T = \mathbb{E}T = \frac{1}{\mu(1-\rho)}σT=ET=μ(1−ρ)1

平均时延和抖动在 M/M/1\text{M/M/1}M/M/1 里同量级,为了适应所有分布的流,我将抖动从模型中拆开,靠接收缓存 BBB 耦合。

接收端部署深度为 BBB 的 buffer\text{buffer}buffer,把到达时间的波动锁住,方可均匀输出。

buffer\text{buffer}buffer 吸收的波动上限为 BBB,剩余的波动即输出抖动 JJJ:

J=max⁡(0,;σT−B)J = \max\left(0,; \sigma_T - B\right)J=max(0,;σT−B)

如此拆开后,端到端总时延就包括排队时延和 buffer\text{buffer}buffer 时延,写作:

D=ET+B=1μ(1−ρ)+BD = \mathbb{E}T + B = \dfrac{1}{\mu(1-\rho)} + BD=ET+B=μ(1−ρ)1+B

把 BBB 从抖动约束里解出来:

B≥1μ(1−ρ)−JB \geq \dfrac{1}{\mu(1-\rho)}-JB≥μ(1−ρ)1−J

代入 DDD:

D=1μ(1−ρ)+max⁡(0,;1μ(1−ρ)−J)D = \dfrac{1}{\mu(1-\rho)} + \max\left(0,; \dfrac{1}{\mu(1-\rho)} - J\right)D=μ(1−ρ)1+max(0,;μ(1−ρ)1−J)

当负载较高时,1μ(1−ρ)>J\dfrac{1}{\mu (1-\rho)}\gt Jμ(1−ρ)1>J,buffer\text{buffer}buffer 工作,上式化简为:

D=2μ(1−ρ)−J⋯(∗)D=\dfrac{2}{\mu(1-\rho) - J} \quad \cdots(*)D=μ(1−ρ)−J2⋯(∗)

这就是不可能三角,DDD,JJJ,ρ\rhoρ 因此耦合。

高带宽等价于高利用率,先看高利用率和低抖动的情况。

这种情况下,ρ→1\rho\to 1ρ→1,带宽满载,将 JJJ 固定趋于 000,代入式 (∗)(*)(∗):

D=2μ(1−ρ)−J→ρ→1,;J→0+∞D=\dfrac{2}{\mu(1-\rho)} - J \xrightarrow{\rho \to 1,; J \to 0} +\inftyD=μ(1−ρ)2−Jρ→1,;J→0 +∞

此时 1−ρ→01−\rho\to 01−ρ→0,DDD 发散,意思是带宽越高,抖动约束在足够小,buffer\text{buffer}buffer 必深,时延越大。

再看高利用率和低时延的情况。

这种情况下,ρ→1\rho\to 1ρ→1,固定 D≤Dmax⁡D\le D_{\max}D≤Dmax,约束时延,从式 (∗)(*)(∗) 解 JJJ:

J=2μ(1−ρ)−DJ=\dfrac{2}{\mu(1-\rho)}-DJ=μ(1−ρ)2−D

令 ρ→1\rho\to 1ρ→1:

J=2μ(1−ρ)⏟→+∞−Dmax⁡→ρ→1+∞J = \underbrace{\dfrac{2}{\mu(1-\rho)}}{\to +\infty} - D{\max} \xrightarrow{\rho \to 1} +\inftyJ=→+∞ μ(1−ρ)2−Dmaxρ→1 +∞

DDD 是常数,11−ρ\dfrac{1}{1−\rho}1−ρ1 为发散项,时延低,buffer\text{buffer}buffer 浅,高负载下的排队波动透传到抖动。

最后看低时延和低抖动的情况。

固定 D≤Dmax⁡D\le D_{\max}D≤Dmax,固定 J≤Jmax⁡J\le J_{\max}J≤Jmax,代入式 (∗)(*)(∗):

2μ(1−ρ)−J≤Dmax⁡\dfrac{2}{\mu(1-\rho)} - J \leq D_{\max}μ(1−ρ)2−J≤Dmax

2μ(1−ρ)≤Dmax⁡+J≤Dmax⁡+Jmax⁡\dfrac{2}{\mu(1-\rho)} \leq D_{\max} + J \leq D_{\max} + J_{\max}μ(1−ρ)2≤Dmax+J≤Dmax+Jmax

1−ρ≥2μ,(Dmax⁡+Jmax⁡)1 - \rho \geq \dfrac{2}{\mu,(D_{\max} + J_{\max})}1−ρ≥μ,(Dmax+Jmax)2

ρ≤1−2μ,(Dmax⁡+Jmax⁡)\rho \leq 1 - \dfrac{2}{\mu,(D_{\max} + J_{\max})}ρ≤1−μ,(Dmax+Jmax)2

Dmax⁡D_{\max}Dmax 和 Jmax⁡J_{\max}Jmax 越小,右边越逼近 000,要同时降低时延和抖动,需要将 ρ\rhoρ 压低,利用率就低。

裤衩子锁着边儿,而且绣着花儿。

式 (∗)(*)(∗) 的三个变量 DDD,JJJ,ρ\rhoρ 中任意两个取约束,第三个的可行域就被推到边界外,任何技术进步调优只能改变这个三角的形状,但永远也改不了三个角的耦合本身。

所以呢。找到一个平衡就意味着牺牲一些看得见的收益,而经理往往不会放弃可以到手的东西,这就是跟经理的矛盾点。

浙江温州皮鞋湿,下雨进水不会胖。

相关推荐
砚凝霜2 小时前
【软考信息安全】第十六章 网络安全风险评估过程与技术方法
网络·安全·web安全
Eloudy3 小时前
MLNX_OFED 的 install.pl 安装流程分析
网络·rdma·roce
对讲机数码科普5 小时前
从电路原理到协议栈:模拟对讲机与数字对讲机的技术内核拆解
运维·网络·架构·软件工程
我送炭你添花5 小时前
ASA原理与电子维修实战:前言 一路修来,一路学习
运维·网络·学习
张小姐的猫5 小时前
【Linux】网络编程 —— 多路转接:epoll
linux·运维·网络
睡一觉就好了。6 小时前
linux网络编程基础
网络
花间相见6 小时前
【计算基础|网络09】TCP(上):三次握手与四次挥手
网络·网络协议·tcp/ip
北京盛世宏博6 小时前
多协议以太网温湿度变送器:Modbus TCP/UDP/SNMP 协议应用场景详解
单片机·tcp/ip·udp·传感器·温湿度
wdfk_prog6 小时前
LWIP教程 08:从 `tcp_write()` 到 ACK 清队列——TCP 数据发送、窗口与回调
网络·网络协议·tcp/ip