当前位置: 首页 > article >正文

拥塞控制算法的 Utility-Function

网络效能最大化(Network Utility Maximization) 是一种在网络资源分配和优化等领域广泛应用的理念和技术手段,旨在通过合理分配网络资源(如带宽),使网络整体效用最大化,而效用则通过 Utility-Function U ( x ) U(x) U(x) 来度量。

NUM 最大化意味着 Σ U ( x i ) \Sigma U(x_i) ΣU(xi) Σ x i < = C \Sigma x_i<=C Σxi<=C 的约束下达到最大,这是一个独立的计算领域,本文只谈 U ( x ) U(x) U(x) 本身。

U ( x ) U(x) U(x) 形式一般(几乎一定)是上凹的,背后是边际效益递减在起作用,意味着 U ( x ) U(x) U(x) 是一个递增的,但增长速度递减的函数,log,arctan 均符合该特征,有意思的是,从各拥塞控制算法本身而不是 NUM 的概念出发,推导出 U ( x ) U(x) U(x) 符合 log,arctan 的形式是自然而然的,边际效益递减符合类第一性原理: y = log ⁡ a x y=\log_ax y=logax y = arctan ⁡ ( x ) y=\arctan(x) y=arctan(x) y = 1 − e − x y=1-e^{-x} y=1ex y = x 0.5 y=x^{0.5} y=x0.5.

Loss-based AIMD Utility-Function 推导:

设 p 为丢包率,w 为 cwnd,a, b 为 AIMD 参数,看 Loss-based AIMD 的微分方程:

d w d t = ( 1 − p ) ∗ a w − p ∗ b ∗ w \dfrac{dw}{dt}=(1-p)*\dfrac{a}{w}-p*b*w dtdw=(1p)wapbw

稳定状态下 d w d t = 0 \dfrac{dw}{dt}=0 dtdw=0,于是:

( 1 − p ) ∗ a w = p ∗ b ∗ w (1-p)*\dfrac{a}{w}=p*b*w (1p)wa=pbw

设 x 为发送速率,d 为时延,有 x = W d x=\dfrac{W}{d} x=dW,于是:

p = a a + b ⋅ W 2 = a a + b ⋅ x 2 ⋅ d 2 p=\dfrac{a}{a+b\cdot W^2}=\dfrac{a}{a+b\cdot x^2\cdot d^2} p=a+bW2a=a+bx2d2a

网络效能由于 p 而变化,于是:

U ′ ( x ) = p = a a + b ⋅ x 2 ⋅ d 2 U'(x)=p=\dfrac{a}{a+b\cdot x^2\cdot d^2} U(x)=p=a+bx2d2a

积分可得:

U ( x ) = a b ⋅ d ⋅ arctan ⁡ ( b a ⋅ d ⋅ x ) U(x)=\sqrt{\dfrac{a}{b}}\cdot d\cdot\arctan{(\sqrt{\dfrac{b}{a}}\cdot d\cdot x)} U(x)=ba darctan(ab dx)

总结 Loss-based AIMD,丢包率独立于 buffer 单独起作用,需区别对待 buffer 溢出和其它丢包(万年难题)。

Delay-based Vegas Utility-Function 推导:

设 D 为实际 rtt,d 为 minrtt,w 为 cwnd,看 Delay-based Vegas 的 diff 公式:

d i f f = α = w d − w D diff=\alpha=\dfrac{w}{d}-\dfrac{w}{D} diff=α=dwDw

排队时延 d - D 度量排队 Delay,设发送速率为 x:

D − d = α ⋅ d w D = α ⋅ d x D-d=\dfrac{\alpha\cdot d}{\dfrac{w}{D}}=\dfrac{\alpha\cdot d}{x} Dd=Dwαd=xαd

网络效能由于排队 Delay 而变化,于是:

U ′ ( x ) = D − d = α ⋅ d x U'(x)=D-d=\dfrac{\alpha\cdot d}{x} U(x)=Dd=xαd

积分可得:

U ( x ) = α ⋅ d ⋅ log ⁡ ( x ) U(x)=\alpha\cdot d\cdot \log(x) U(x)=αdlog(x)

等式 x ⋅ ( D − d ) = α ⋅ d x\cdot(D-d)=\alpha\cdot d x(Dd)=αd 左边是 queuing 数据量,右边是约束。具体细节参考 Understanding TCP Vegas: A Duality Model

总结 Vegas,链路上的 buffer 中保留一定量的数据,网络便可高效能传输。

BDP-based BBR Utility-Function 推导:

设 d 为最小测量 rtt,B 为最大带宽(maxbw)下的有效(不算排队时延) BDP:

d = B x d=\dfrac{B}{x} d=xB

最小 rtt 的承诺度量网络效能的变化:

U ′ ( x ) = d = B x U'(x)=d=\dfrac{B}{x} U(x)=d=xB

积分可得:

U ( x ) = B ⋅ log ⁡ ( x ) U(x)=B\cdot \log(x) U(x)=Blog(x)

总结 BBR,对 minrtt 非常敏感(ProbeRTT 的重要性以及 minrtt 的使用),minrtt 的共识偏差会影响 BBR 的探测行为和收敛。

写点想法,网络质量越好,拥塞控制的意义越弱,这是边际收益递减的反面,边际成本增加(雇佣一个专家要花不少钱,但他做出来的东西却没什么鸟用),从内格尔(Nagle)的 RFC896 开始,折腾整整 40 年的拥塞控制,到现在真玩不出什么花活儿了,即将被遗忘,没有坑,工作也难找…大城市立交桥,快速路,高速公路不需要红绿灯,只有乡镇才会批量采购红绿灯…

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


http://www.kler.cn/a/407907.html

相关文章:

  • 机器学习实战记录(1)
  • 51单片机基础 06 串口通信与串口中断
  • React (三)
  • 第144场双周赛题解:移除石头游戏
  • 密码学11
  • Wekan看板安装部署与使用介绍
  • pytorch自定义算子导出onnx
  • 深入理解下oracle 11g block组成
  • 游戏AI实现-决策树
  • mayo介绍和QTqmake编译基于Opencascade开发的mayo工程-小白配置
  • 【Python】除了Pandas,还有哪些方法可以连接Mysql数据库?(整理全)
  • CentOS中使用Python将文本中的IP地址替换为外网地址
  • 挑战 Cursor,Codeium 推出下一代 AI IDE Windsurf
  • 跟着问题学3——卷积神经网络详解
  • 【论文速读】| 迈向自动化渗透测试:引入大语言模型基准、分析与改进
  • archlinux安装waydroid
  • Rust 力扣 - 2266. 统计打字方案数
  • 开发中使用UML的流程_03 CIM-2:分析业务流程
  • 渗透测试笔记——shodan(4)
  • 深入解析UML组件图:概念、构成与实际应用
  • 5G CPE与4G CPE的主要区别有哪些
  • 畅听FM 3.0.0 | 很有果味的电台软件,超多FM电台,支持播放本地音乐
  • 浅谈 proxy
  • C++中的初始化列表
  • 如何设计和实现通用唯一 Code 生成方法
  • 从数据提取到管理:TextIn平台的全面解析与产品体验