为何新增网络路径反而引入额外时延

最近上班路上新开了两条新路,我本已变态的通勤时间又增加了 5 分钟。

新路开通的理由是新建了小区,无可厚非,但如果根本没有新需求,只是增加路,那就是不对。布雷斯悖论网上一堆解释,不赘述,我写点自己的理解,也包括 TCP/IP 网络,都是一个道理。

新增道路本质上就是新增节点,在任何统计复用网络上,节点都是一个排队系统,换句话说,徒增时延:

  • 若不改变路径,则新增节点的排队引入新统计时延(总要等新红灯);
  • 若走新路径,则在流量达到阈值后,贝雷斯悖论引入新时延;

不要幻想在流量低的时候新路径会有什么作用,因为这个时候旧路径也孬不到哪去。

先做一个简单建模,看个表象。

设 F(t) 为网络实施流量,P(t) 为布雷斯悖论触发概率,T0T_0T0 为布雷斯悖论触发时的流量阈值,c 为负反馈强度系数,k 是流量自然增长系数。

所有统计复用网络的流量拥塞行为由博弈均衡引导,而博弈由路由控制,可简单假设:

  • 流量越大,布雷斯悖论触发概率越高,流量突破阈值 T0T_0T0,布雷斯悖论激活,全网拥塞;
  • 拥塞状态可自动抑制流量回落,不管是拥塞控制还是限流;
  • 流量回落,拥塞缓解,流量再次自然增长,形成自激负反馈震荡;

用 S 饱和函数模拟布雷斯悖论触发函数:

P(F)=F(t)2T02+F(t)2P(F) = \dfrac{F(t)^2}{T_0^2 + F(t)^2}P(F)=T02+F(t)2F(t)2

简单解释:

  • F≪T0F\ll T_0F≪T0 时,P≈0P\approx 0P≈0,几乎不触发悖论;
  • F=T0F=T_0F=T0 时,P=12P=\dfrac12P=21,临界中点,拥塞前期;
  • F≫T0F\gg T_0F≫T0 时,P→1P\to 1P→1,必然触发悖论;

即 P = 1 时,大家都走这条路径,P = 0 时,该路径无人问津或被关闭,介于 0,1 间随行。

流量动力学就是一个简单的负反馈:

dFdt=k⋅F−c⋅P(t)⋅(F−T0)\dfrac{\text{d}F}{\text{d}t} = k\cdot F -c\cdot P(t)\cdot (F-T_0)dtdF=k⋅F−c⋅P(t)⋅(F−T0)

简单解释:

  • k⋅Fk\cdot Fk⋅F 是流量自然增长;
  • −c⋅P(t)⋅(F−T0)-c\cdot P(t)\cdot (F-T_0)−c⋅P(t)⋅(F−T0) 是拥塞抑制项,F<T0F<T_0F<T0,抑制项为正,流量增长,F>T0F>T_0F>T0,抑制项为负,流量被拉回阈值下方;

来看模型的行为。

当流量很低 F<T0,P≈0F<T_0,P\approx0F<T0,P≈0,方程退化为 dFdt≈kF>0\dfrac{\text{d}F}{\text{d}t}\approx kF>0dtdF≈kF>0,车流平稳上涨,无拥塞;当流量临近阈值 F→T0F\to T_0F→T0,P 快速升高,网络开始出现拥塞,不治将恐深;若流量突破阈值 F>T0F>T_0F>T0,负反馈项主导,dFdt<0\dfrac{dF}{dt}<0dtdF<0,流量被强行下拉。

系统最终会在 T0T_0T0 附近做自持震荡,而 T0T_0T0 由资源,需求,经验共同决定,不能乱搞。但大部分系统都是拍脑袋乱搞。

在现实中,往往会加入应急调控机制,比如人为限流,限速,关闭节点,重路由等,设新增调控项 u(t),经理发现拥塞无法缓解,可直接实施:

dFdt=k⋅F−c⋅P⋅(F−T0)−u(t)⋅F\dfrac{\text{d}F}{\text{d}t} = k\cdot F -c\cdot P\cdot (F-T_0)-u(t)\cdot FdtdF=k⋅F−c⋅P⋅(F−T0)−u(t)⋅F

u(t)>0u(t)>0u(t)>0 相当于人工加强负反馈,让震荡更快收敛,拥塞爆炸半径大幅缩小。

这个模型说明了一个宏观的现象,大概和我们在路上和网络上看到的差不多,其背后正是个体自以为是的理性往往导致集体的非理性。

下面是一个更加完善的基于平均场的系统动力学模型,它包含三个核心变量,形成一个闭环负反馈系统。

变量依旧如上述模型,增加 C(t) 表示拥塞状态。模型如下:

{dFdt=α⋅(Fmax−F)−β⋅C⋅FdCdt=γ⋅F⋅(1+δ⋅P)−μ⋅CdPdt=ρ⋅F⋅(1−P)−λ⋅C⋅P−η⋅(P−Pbase)\left\{\begin{aligned}\dfrac{\text{d}F}{\text{d}t}&=\alpha\cdot(F_{max}-F)-\beta\cdot C\cdot F\\\dfrac{\text{d}C}{\text{d}t}&=\gamma\cdot F\cdot(1+\delta\cdot P)-\mu\cdot C\\\dfrac{\text{d}P}{\text{d}t}&=\rho\cdot F\cdot(1-P)-\lambda\cdot C\cdot P-\eta\cdot(P-P_{base})\end{aligned}\right.⎩ ⎨ ⎧dtdFdtdCdtdP=α⋅(Fmax−F)−β⋅C⋅F=γ⋅F⋅(1+δ⋅P)−μ⋅C=ρ⋅F⋅(1−P)−λ⋅C⋅P−η⋅(P−Pbase)

其中,FmaxF_{max}Fmax 为最大需求,PbaseP_{base}Pbase 为基础平衡概率,如果关闭一个节点,则其 Pbase=0P_{base}=0Pbase=0.

剥离出 C 后,该模型更加易于被分析,因为负反馈可视化了,可将 η\etaη 设置为一个干预强度函数 u(t),就和上述模型一样了。

这模型只是解释,若要建议优化,就必须抽出 max{F(t)C(t)}\text{max}\{\dfrac{F(t)}{C(t)}\}max{C(t)F(t)} 作为目标:

  • δ\deltaδ 作为布雷斯悖论系数,对拓扑规则提供建议;
  • η\etaη 作为干预控制系数,为主动拥塞控制提供建议;

剩下的就是调参了,而这最难的。

额外的话不多说,在一个统计复用网络中,几乎肯定是自私路由,在全局看来,作为网络的设计者,做减法往往比做加法更能实现系统调优。

但另一方面,如果为模型再加入一个变量 R(t) 表示路径资源的总量,它就能反过来影响 P(t) 了,但由于 R 往往属于一次性基础投资,变化周期太长,所以就不再引入,作为一个例子,参考香港,上海黄浦区等街区密而短的羊肠小道,反倒没有宽阔但少的大道更容易拥堵。

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

相关推荐
两个人的幸福9 天前
Windows 桌面应用自研 PHP 队列(下):完整代码与六大工程化优化
php
zzzzzz3109 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
BingoGo11 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
JaguarJack11 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
用户30745969820712 天前
PHP 扩展——从入门到理解
php
鹏仔先生12 天前
拷贝漫画APP下载页PHP程序,后台带免费AI写作
php
大树8812 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
小宇宙Zz12 天前
Maven依赖冲突
java·服务器·maven
网络研究院12 天前
2026年网络安全
网络·安全·法律·法规·趋势·发展
酣大智12 天前
ARP代理--工作原理
运维·网络·arp·arp代理