拥塞控制的微观行为与力学解释

本文以 tcptrace 图为基,描述传输的微观行为,并给出一个初中几何描述的压水井模型。

统计复用网络的拥塞控制,宏观看 inflight,微观看 pacing rate,宏观大方向不对,微观再正确也不行。

而网络的统计动力学事实上就是 buffer 动力学,详情参见 边际效益递减与 buffer 和 buffer 越大越低效。

在这里插入图片描述

如左图所示,如果按照 delivery rate 设置 pacing rate,则会引发木桶效应,接下来的 delivery rate 充其量不变,大概率只会越来越小,即使有空闲带宽腾出也无法抓住,ack 流也会过早闭合而引发类似糊涂窗口综合症那般的细流:
在这里插入图片描述

所以 bbr 才需要周期性 probe,取 bw window 内的 maxbw 作为 pacing rate,为防止 maxbw 颠簸,还要确保在 bw window 内至少进行一次 probe,这就是 bbr 采用大开合的根本原因,否则 bbr 要么保不住带宽,要么跑飞。

大开合的问题前面已经描述过,详见 bbr 是真的不行,所以需要引入 probertt 和 cwnd_gain 来约束 inflight。cwnd_gain = 2 约束了 bbr 流的最大 inflight 不超过 maxbw*minrtt 的 2 倍。如此,buffer 挤占才不会无限疯长。

看到了吧,bbr 实际是通过引入很多约束来避免大开合潜在的正反馈。如果把 probe 操作多出来的 1/4 bdp 均匀分散在整个传输过程,控制总 inflight,并始终用 4/5 pacing gain 做 pacing,一切就省了。

先看与 pacing rate = delivery rate 相比,bbr 改变了什么:
在这里插入图片描述

bbr 逆转个视角,将 probe 流量分摊到整个传输过程,始终以 > 1(比如 5/4) 的 pacing gain 发送,为抑制因此而引发的 buffer 侵占制造的严重拥塞,算法转而控制 inflight 而不是 pacing rate:

  • 拥塞避免方面,保持 optimal_bw*minrtt(注意不是 maxbw) 为 inflight 主体以及极小量且负反馈收敛的的 buffer 队列,避免拥塞;
  • 带宽利用率方面,微小队列始终保持 100% 利用率;
  • 公平性方面,所有流量对 E_best = max(bw / delay) 的共识,bw 达到 optimal_bw 适可而止,向局部最优收敛达到全局最优;
  • 自适应带宽变化方面,微小队列保持对带宽变化的感知力。

整体就是用大 pacing rate 保 optimal_bw:
在这里插入图片描述

统计的东西要用统计的方式玩,端到端拥塞控制,必须确认哪些度量是确定的,哪些是不确定的,所有度量中,能大致确定的只有 rtt 和 delivery rate,因此只能信任它们本身以及它们的简单运算量,所有其它量都不能信任,不是调参难度很大,而是瞎搞。

pacing rate 根本控制不住,能控制的只有 inflight。

接下来在 tcptrace 图中展示 E_best = max(bw / delay) 共识及其几何和力学意义:
在这里插入图片描述

这很像农村的那种压水井,它的操作就是向上拉把手,拉到一定高度后往下压,即可出水,但它不想打气筒,因为打气筒是你拉的越高,充气量越多,压水井却受水压限制,如果把手可以拉无限高,拉得越高,相比出水量而言越不划算(拉高把手所费的力气相比出水量而言)。

能够挤压的任何流体都符合这个模型,包括钞票存贷。模型的操作图示如下:
在这里插入图片描述
代数式上,设总带宽为 a,buffer 已用量为 b,问题 4 等价于求 E = a * x / (x + b)^2,物理意义就是 “挤压带宽的边际效益”,也就是 “单位 buffer 的收益”,显然它是一个上凸曲线。

在力学解释上,一开始出大力压杠杠的收益相对于 b 的固有势能收益而言是非常明显的,一旦出大力开始超过固有势能的做功就反转了,倒着看,固有势能做功每减少一点,其损失的收益将减速减少。这背后是向最稳定趋向的趋势,也就是最小作用量原理。

只可惜包括 bbr 在内的几乎所有拥塞控制算法都没能利用这个共识。vegas 稍微沾边儿时就被喷了,几乎所有拥塞控制方案都试图在微观层面控制统计特征,而我揭穿一些事实也不在乎有人白嫖,因为我这些是拥塞控制的核心本质但并不关注单流吞吐,不添堵,我这些和众人的目标并不一致,人们更感兴趣的是把乘法降窗改成减法降窗,把参数调激进,见缝加塞,而这些都是在行业保身立命的根本,可不敢随意给别人看。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/19025.shtml

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

相关文章

AI 驱动的低代码平台-网易CodeWave 低代码平台 AI 智能化实践

一、实践背景: 随着低代码赛道的蓬勃发展,越来越多的低代码产品如雨后般春笋涌出开始进入市场,面对市场的考验,低代码平台也在面临两大问题: 定制开发的使用门槛太高,效率太低。低代码产品进入到企业当中…

决策树模型-预测用户是否购买某母婴产品

1,场景描述 假设我们是京东的数据分析师,负责分析母婴产品的购买行为。我们想预测用户是否会购买一款新上线的母婴产品。为了进行预测,我们将利用用户的历史购买数据、浏览行为和其他特征,通过决策树模型进行分析,并提…

猫狗分类识别模型建立②模型建立

一、导入依赖库 pip install opencv-python pip install numpy pip install tensorflow pip install keras 二、模型建立 pip install opencv-python pip install numpy pip install tensorflow pip install kerasimport os import xml.etree.ElementTree as ETimpor…

NSSCTF-Web题目4

[SWPUCTF 2021 新生赛]hardrce 1、题目 2、知识点 rce:远程代码执行、url取反编码 3、解题思路 打开题目 出现一段代码,审计源代码 题目需要我们通过get方式输入变量wllm的值 但是变量的值被过滤了,不能输入字母和\t、\n等值 所以我们需…

【教学类-59-】专注力视觉训练01(圆点百数图)

背景需求: 视觉训练的神奇效果,让你的宝贝成为焦点 - 小红书魔法视觉追踪-视觉训练—— 🔍视觉训练🔍 🔹想要提高宝宝的专注力,视觉训练是个绝佳方法! 🔹让宝宝仔细观察数字的路线&a…

OrangePi AIpro 快速上手初体验——接口、样例和目标检测

​ 一、 开发板简介 OrangePi AIpro开发板是香橙派联合华为精心打造的高性能 AI 开发板,其搭载了昇腾 AI 处理器,可提供 8TOPS INT8 的计算能力,内存提供了 8GB 和 16GB两种版本。可以实现图像、视频等多种数据分析与推理计算,可…

【已解决】使用token登录机制,token获取不到,blog_list.html界面加载不出来

Bug产生 今天使用token完成用户登录信息的存储的时候被卡了大半天。 因为登录的功能写的已经很多了,所以今天就没有写一点验一点,而是在写完获取博客列表功功能,验证完它的后端后,了解完令牌的基本使用以及Jwt的基本使用方式——…

4.共享文件夹的设置

注:设置共享文件夹:首先要先关机 一、点击 编辑虚拟机设置 二、点击 选项 选项卡 三、点击 共享文件夹 四、在本地建立一个共享文件夹后选择路径 五、Linux系统文件夹中的共享文件夹路径 六、在Linux系统中查看共享文件夹 Ubuntushare是共享文件夹&…

【简单介绍下idm有那些优势】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

国内加密软件排行榜,每一款加密软件都是精品

在数字化快速发展的今天,数据安全和隐私保护已成为企业和个人关注的焦点。加密软件作为保护数据安全的重要手段,其重要性日益凸显。以下是根据权威机构的评测和用户反馈,整理的国内加密软件排行榜及其特点概述。 1、加密软件安企神免费试用7天…

贷款借钱平台 小额贷款系统开发小额贷款源码 贷款平台开发搭建

这款是贷款平台源码/卡卡贷源码/小贷源码/完美版 后台51800 密码51800 数据库替换application/database.php程序采用PHPMySQL,thinkphp框架代码开源,不加密后台效果:手机版效果 这款是贷款平台源码/卡卡贷源码/小贷源码/完美版 后台51800 密码…

《web应用技术》第九次作业

一、将前面的代码继续完善功能 1.采用XML映射文件的形式来映射sql语句&#xff1b; <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis…

HiWoo Box工业智能网关

随着工业4.0的浪潮席卷全球&#xff0c;智能化、网络化已成为工业发展的必然趋势。在这个时代&#xff0c;工业智能网关成为了连接工业设备与网络的关键节点&#xff0c;扮演着至关重要的角色。HiWoo Box作为一款工业智能网关&#xff0c;以其卓越的性能和广泛的应用场景&#…

系统架构设计师【第3章】: 信息系统基础知识 (核心总结)

文章目录 3.1 信息系统概述3.1.1 信息系统的定义3.1.2 信息系统的发展3.1.3 信息系统的分类3.1.4 信息系统的生命周期3.1.5 信息系统建设原则3.1.6 信息系统开发方法 3.2 业务处理系统&#xff08;TPS&#xff09;3.2.1 业务处理系统的概念3.2.2 业务处理系统的功能 …

c++(六)

c&#xff08;六&#xff09; 多态概念在c中是如何实现多态静态多态&#xff08;绑定&#xff09;动态多态&#xff08;绑定&#xff09; 动态多态的实现原理动态内存分配中遇到的问题 重载、重定义、重写的区别抽象类接口类---抽象类空类对象的内存大小explicitfinal修饰类修饰…

软件游戏缺失d3dcompiler_47.dll如何解决,简单有效的五种解决方法分享

在现代游戏中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是“缺少d3dcompiler47.dll文件”。这个问题通常会导致游戏无法正常运行或出现崩溃的情况。为了解决这个问题&#xff0c;我总结出了以下五种解决方法。希望这些方法能够帮助到遇到相同问题的玩家。 …

web刷题记录(1)

[GXYCTF 2019]Ping Ping Ping 进入页面&#xff0c;发现有一个传入参数的框&#xff0c;目的就是为了让我们通过参数传入内容来执行代码。这里先传入本地ip&#xff0c;方便后面的ping命令运行 ls命令来查看&#xff0c;目录中的文件 传入后&#xff0c;发现目录下有flag.php,…

倍福TwinCAT3 PLC编程软件下载安装

1、哪里下载TwinCAT3 链接: Search result | 倍福 中国https://www.beckhoff.com.cn/zh-cn/support/download-finder/search-result/?download_group=97028248下载倍福PLC编程软件需要注册,大家可以提前注册,注册好后就可以开始愉快的下载了 安装前需要注意将各杀毒软件卸…

单链表经典算法题理解

目录 1. 前言&#xff1a; 2. 移除链表元素 3. 反转链表 4. 合并两个有序链表 5. 链表的中间节点 6. 环形链表的约瑟夫问题 7. 分割链表 1. 前言&#xff1a; 当我们学习了单链表之后&#xff0c;我能可以尝试的刷一下题了&#xff0c;以下分享一下几道题的解法 2. 移…

7-zip工具?这么好用的你都能找到!

关于7-Zip&#xff0c;这不是一个神奇的小工具吗&#xff1f;让我悄悄告诉你&#xff0c;它其实是个压缩界的隐形冠军哦。 想象一下&#xff0c;你下载了一堆文件&#xff0c;电脑空间却告急&#xff0c;这时候7-Zip就像你的小助手&#xff0c;帮你把文件们“瘦身”&#xff0…