拥塞控制算法的 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.rhkb.cn/news/477657.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【SQL Server】华中农业大学空间数据库实验报告 实验三 数据操作

1.实验目的 熟悉了解掌握SQL Server软件的基本操作与使用方法&#xff0c;以及通过理论课学习与实验参考书的帮助&#xff0c;熟练掌握使用T-SQL语句和交互式方法对数据表进行插入数据、修改数据、删除数据等等的操作&#xff1b;作为后续实验的基础&#xff0c;根据实验要求重…

LDR6020驱动的Type-C接口显示器解决方案

一、引言 随着科技的飞速发展&#xff0c;Type-C接口凭借其高速数据传输、强大的电力传输能力以及便捷的正反可插设计&#xff0c;正逐渐成为现代电子设备的主流接口标准。在显示器领域&#xff0c;Type-C接口的引入不仅简化了线缆连接&#xff0c;还为用户带来了更丰富的功能…

Spring |(四)IoC/DI配置管理第三方bean

文章目录 &#x1f4da;数据源对象管理&#x1f407;环境准备&#x1f407;实现Druid管理&#x1f407;实现C3P0管理 &#x1f4da;加载properties文件&#x1f407;第三方bean属性优化&#x1f407;读取单个属性 学习来源&#xff1a;黑马程序员SSM框架教程_SpringSpringMVCMa…

三十一、构建完善微服务——API 网关

一、API 网关基础 系统拆分为微服务后&#xff0c;内部的微服务之间是互联互通的&#xff0c;相互之间的访问都是点对点的。如果外部系统想调用系统的某个功能&#xff0c;也采取点对点的方式&#xff0c;则外部系统会非常“头大”。因为在外部系统看来&#xff0c;它不需要也没…

(免费送源码)计算机毕业设计原创定制:Java+JSP+HTML+JQUERY+AJAX+MySQL springboot计算机类专业考研学习网站管理系统

摘 要 大数据时代下&#xff0c;数据呈爆炸式地增长。为了迎合信息化时代的潮流和信息化安全的要求&#xff0c;利用互联网服务于其他行业&#xff0c;促进生产&#xff0c;已经是成为一种势不可挡的趋势。在大学生在线计算机类专业考研学习网站管理的要求下&#xff0c;开发一…

社交电商专业赋能高校教育与产业协同发展:定制开发AI智能名片及2+1链动商城小程序的创新驱动

摘要&#xff1a;本文围绕社交电商有望成为高校常态专业这一趋势展开深入探讨&#xff0c;剖析国家政策认可下其学科发展前景&#xff0c;着重阐述在专业建设进程中面临的师资短缺及实践教学难题。通过引入定制开发AI智能名片与21链动商城小程序&#xff0c;探究如何借助这些新…

Linux各种并发服务器优缺点

本文旨在介绍针对“无并发C/S模型”改进的方法总结以及各种改进方法的优缺点&#xff0c;具体函数的实现并不介绍。 1. 无并发C/S模型 创建服务器流程分析&#xff1a; socket()创建服务器的监听套接字bind()将服务器给服务器的监听套接字绑定IP地址和Port端口号listen()设置…

基于AXI PCIE IP的FPGA PCIE卡示意图

创作不易&#xff0c;转载请注明出处&#xff1a;https://blog.csdn.net/csdn_gddf102384398/article/details/143926217 上图中&#xff0c;在FPGA PCIE卡示意图内&#xff0c;有2个AXI Master设备&#xff0c;即&#xff1a;PCIE到AXI4-Full-Master桥、AXI CDMA IP&#xff1…

【漏洞复现】|智互联SRM智联云采系统quickReceiptDetail SQL注入漏洞

漏洞描述 智互联(深圳)科技有限公司SRM智联云采系统针对企业供应链管理难题&#xff0c;及智能化转型升级需求&#xff0c;智联云采依托人工智能、物联网、大数据、云等技术&#xff0c;通过软硬件系统化方案&#xff0c;帮助企业实现供应商关系管理和采购线上化、移动化、智能…

el-table-column自动生成序号在序号前插入图标

实现效果&#xff1a; 代码如下&#xff1a; 在el-table里加入这个就可以了&#xff0c;需要拿到值可以用scope.$index ​​​​​​​<el-table-column type"index" label"序号" show-overflow-tooltip"true" min-width"40">…

如何利用 Puppeteer 的 Evaluate 函数操作网页数据

介绍 在现代的爬虫技术中&#xff0c;Puppeteer 因其强大的功能和灵活性而备受青睐。Puppeteer 是一个用于控制 Chromium 或 Chrome 浏览器的 Node.js 库&#xff0c;提供了丰富的 API 接口&#xff0c;能够帮助开发者高效地处理动态网页数据。本文将重点讲解 Puppeteer 的 ev…

“小浣熊家族AI办公助手”产品体验 — “人人都是数据分析师”

一、引言&#xff1a; 大家平时应该在工作中常常使用到Excel来做数据统计&#xff0c;比如临近过年时&#xff0c;公司一般会开各种复盘、年终、检讨、明年规划大会&#xff0c;势必需要准备一大堆的量化数据报表&#xff0c;用于会议上的数据汇报、分析工作&#xff0c;试想一…

Unity-添加世界坐标系辅助线

如果你想在场景中更直观地显示世界坐标系&#xff0c;可以通过编写一个简单的脚本来实现。下面是一个基本的示例脚本&#xff0c;它会在场景中绘制出世界坐标系的三个轴&#xff1a; using UnityEngine;public class WorldAxesIndicator : MonoBehaviour {public float length…

Makefile基础应用

1 使用场景 在Linux环境下&#xff0c;我们通常需要通过命令行来编译代码。例如&#xff0c;在使用gcc编译C语言代码时&#xff0c;需要使用以下命令。 gcc -o main main.c 使用这种方式编译代码非常吃力&#xff0c;每次调试代码都需要重新在命令行下重新编译&#xff0c;重复…

【tensorflow的安装步骤】

创建一个虚拟环境 conda create -n tensorflow python3.6激活虚拟环境 conda activate tensorflow使用镜像源下载 pip install tensorflow1.15.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/特别特别重要的点&#xff01;&#xff01;&#xff01; 别用WiFi或者校园网下…

【Python · PyTorch】循环神经网络 RNN(基础概念)

【Python PyTorch】循环神经网络 RNN&#xff08;基础概念&#xff09; 0. 生物学相似性1. 概念2. 延时神经网络&#xff08;TDNN&#xff09;3. 简单循环神经网络&#xff08;Simple RNN&#xff09;3.1 BiRNN 双向循环神经网络3.2 特点记忆性参数共享图灵完备 3.3 网络结构3…

使用EFK收集k8s日志

首先我们使用EFK收集Kubernetes集群中的日志&#xff0c;本次实验讲解的是在Kubernetes集群中启动一个Elasticsearch集群&#xff0c;如果企业内已经有了Elasticsearch集群&#xff0c;可以直接将日志输出至已有的Elasticsearch集群。 文章目录 部署elasticsearch创建Kibana创建…

Qt入门1——认识Qt的几个常用头文件和常用函数

1.头文件 ① #include <QPushButton>——“按钮”头文件&#xff1b; ② #include <QLabel>——“标签”头文件&#xff1b; ③ #include <QFont>——“字体”头文件&#xff1b; ④#include <QDebug>——输出相关信息&#xff1b; 2. 常用函数/类的基…

【Linux驱动开发】irq中断配置API及中断应用 阻塞休眠和非阻塞的驱动操作

【Linux驱动开发】irq中断配置API及中断应用 阻塞休眠和非阻塞的驱动操作 文章目录 中断操作注册和释放中断中断服务函数使能和禁止上半部和下半部软中断tasklet工作队列 设备节点中的中断中断号API函数获取中断号获取中断信息 中断应用读取设备树节点获取中断号获取中断触发方…

Linux设置以及软件的安装(hadoop集群安装02)

一、Linux的常见设置 1、设置静态IP vi /etc/sysconfig/network-scripts/ifcfg-ens33 如何查看自己的虚拟机的网关&#xff1a; 完整的配置&#xff08;不要拷贝我的&#xff09;&#xff1a; TYPE"Ethernet" PROXY_METHOD"none" BROWSER_ONLY"no&…