rate-based 借贷式拥塞控制算法

news2024/11/17 9:41:08

有没有一种 rate-based 算法可以不测量 delivery rate,当然有!直接套在 AIMD 上就行,虽然套在 bbr 上没什么不可。

传统 AIMD 拥塞控制代价很大,代价源自两点,首先,AI 有填 buffer 的趋势,其次,MD 可能过度降低带宽利用率,两者相克相生无法统一,这是固有开销。还差一个因素没作为变量被引入收敛过程,pacing,依靠 pacing 在达到最佳资源利用率的过程中收敛,如下图:
在这里插入图片描述

buffer 始终未 overflow,好像 A 和 B 都知道它的 limit,二者默契配合,此消彼长,达到最佳。但事实上共享链路的流互不可见,上图只是一厢情愿。

从 拥塞控制的经济学原理 和 借贷式拥塞控制 的借贷视角去理解就知道怎么做了。虽然我借钱不知道该付多少利息最合适,多借几次就知道了,对于放款的人也一样,最终大家总能收敛到一个合适的利率,时间不耐表面上的供需决定这一切。

下图是一个新的解释:
在这里插入图片描述

以上重新解释后就是一个非常清晰的高效收敛模型。只要经过简单 probe,得到一个大致的 cwnd 标的作为 buffer 的预测值,该模型很容易自然收敛。

由 bpd = pacing_rate * rtt,可得一个恒等式 rtt = bdp * (1 / pacing_rate),而不占 buffer 时的 bdp 就是 cwnd 指示,于是可将 burst 率表示为 cwnd 的倒数,d_burst = 1 / cwnd,可乘上一个系数作可调参数,即 d_burst = beta * (1 / cwnd),恰好保持 rtt 不变,即无 queue 的意思,注意,它既是因又是果(确实比较烧脑)。

始终保持(比如 cubic/reno)或间隔保持(比如 bbr)多出 1 个 或 n 个报文作 probe,可自动发现 F 点,delivery rate 不再增加即为收敛到公平的终止条件,虽然当前流依然可以继续抢占更多带宽,但如果它依照本算法执行的话,稳定的 “跳出 cwnd-limited” 状态将阻止它继续,v < buffer_limit 会改变收敛平衡点,v > buffer_limit 则造成丢包。

和货币原理一样,信用货币与信用规模有关,与流通有关,在网络传输中信用规模和流通主要表现为带宽,而相互借贷则此消彼长,受限于 buffer(将它看作备金)。这从另一个视角证明了 bbr 的最优操作点无法独立找到,必须在 buffer 里折腾,但凡多流共享带宽,就需 buffer 提供倒腾收敛的空间,这就是 “同步的代价”,本来就是空间换时间,如果省掉 buffer,就没了收敛的反应时间。对于 bbr 而言,如果去掉 cwnd_gain * bdp 限制,取决于 cruise 长度,buffer queue 亦将很长。

网络传输的公平和效率的度量属于在变化中度量,它和经济学中很多固有难题一样难解,比如如何保持货币的稳定,如果压缩通胀和通缩的反应周期,说白了但凡在变化中度量的指标,包括标准本身在内,都要对抗滞后性,而滞后性带来固有的偏差,单向时间又将偏差叠加,这是难题之所以难的原因。

但偏差和误差不同,误差可以小到忽略不计但偏差不能,因为偏差是随问题规模等比例缩放的,它的分辨率是一定的。还是那句话,放大了就是马赛克,缩小了你的眼睛又看不清了。

注意,本文的算法位于标准 cc 之上,reno/cubic/westwood/vegas/bbr 等该怎么玩还怎么玩,本文只是引入一种 pacing 和 burst 之间的关系。

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

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

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

相关文章

四十二、【进阶】

目录 1、覆盖索引 2、案例分析 &#xff08;1&#xff09;select * 查询 &#xff08;2&#xff09;使用字段查询 &#xff08;3&#xff09;性能差异原因 3、分析 &#xff08;1&#xff09;主键id查询 &#xff08;2&#xff09;覆盖索引 1、覆盖索引 简单点说&#x…

【MySQL索引与优化篇】索引优化与查询优化

索引优化与查询优化 文章目录 索引优化与查询优化1. 概述2. 索引失效案例3. 关联查询优化3.1 Join语句原理3.2 Simple Nested-Loop Join&#xff08;简单嵌套循环连接&#xff09;3.3 Index Nested-Loop Join&#xff08;索引嵌套循环连接&#xff09;3.4 Block Nested-Loop Jo…

发布不到一月的4+经典单细胞+预后模型生信思路,可复现可升级

今天给同学们分享一篇单细胞预后模型的生信文章“Integrating single-cell and bulk RNA sequencing to predict prognosis and immunotherapy response in prostate cancer”&#xff0c;这篇文章于2023年9月20日发表在Scientific Reports期刊上&#xff0c;影响因子为4.6。 前…

数藏平台纷纷停运 用户手中数字藏品成了一张图

2021年8月2日&#xff0c;腾讯上线幻核数藏平台&#xff0c;随后QQ音乐、腾讯动漫、腾讯视频、腾讯新闻、起点读书等腾讯系应用都植入了数字藏品板块&#xff0c;强势进入国内数藏市场。国内数藏市场也迎来了起飞时刻。2022年底&#xff0c;数藏市场进入寒冬&#xff0c;曾经人…

数字展厅搭建平台要具备哪些功能,如何选择数字展厅搭建平台

引言: 数字展厅搭建平什台是现代营销中不可或缺的重要工具之一。它可以帮助企业打造个性化、多媒体、互动性强的展示空间&#xff0c;吸引、引导和留住目标用户。在选择数字展厅搭建平台时&#xff0c;我们需要考虑各方面的功能和性能&#xff0c;以确保能够满足企业的需求并取…

建筑模板材质-不同材质建筑模板优缺点分析

建筑模板是施工过程中不可或缺的重要材料&#xff0c;不同材质的建筑模板各有其优缺点。在众多材质中&#xff0c;广西桉木芯建筑模板以其独特的性能和优势备受青睐&#xff0c;下面将从不同材质的建筑模板入手&#xff0c;重点推荐广西桉木芯建筑模板。一、胶合板建筑模板胶合…

前端小程序 实现文字加载效果 文字跳动

效果 主要看充电中...的效果 ![1 实现 <view v-else class"status-working"><text class"letter letter1">充</text><text class"letter letter2">电</text><text class"letter letter3">中&l…

二十二、Arcpy批量波段组合——结合Landat数据城市建成区提取

一、前言 其实波段组合和GIS中栅格计算有点类似,实质上就是对每个像素点对应的DN值进行数学计算,也就是可以进行运算表达式是三个或多个变量相加、相减……每一个变量对应于一个图像数据,对这三个或多个图像数据求值并输出结果图像。 二、具体操作 1、实验具体目标 将202…

Android WMS——WMS窗口添加(十)

Android 的 WMS&#xff08;Window Manager Service&#xff09;是一个关键组件&#xff0c;负责管理窗口的创建、显示、布局和交互等。Window 的操作有两大部分&#xff0c;一部分是 WindowManager 来处理&#xff0c;一部分是 WMS 来处理&#xff0c;如下图所示&#xff1a; …

验收测试的关键步骤是怎样的?

验收测试是项目管理中的一个关键步骤&#xff0c;旨在确保项目交付物(通常是软件、产品或服务)符合预期的质量标准和需求。这个过程有助于验证项目的可交付成果是否满足客户或利益相关者的期望&#xff0c;同时也为项目团队提供了机会来修复可能存在的问题和改进之前的工作。 一…

一个方法,教你快速监测蓄电池!

随着电力需求的不断增长和可再生能源的快速发展&#xff0c;蓄电池技术已经成为能源存储领域的重要组成部分。 蓄电池不仅在家庭和工业应用中发挥着重要作用&#xff0c;还在电网稳定性和可持续能源集成方面具有关键地位。然而&#xff0c;蓄电池的有效监控和管理对于确保其可靠…

【Qt控件之QMessageBox】详解

Qt控件之QMessageBox 描述基于属性的API富文本和文本格式属性严重程度以及图标和Pixmap属性静态函数API 高级用法默认按钮和退出按钮示例使用场景 描述 QMessageBox类提供了一个模态对话框&#xff0c;用于通知用户或向用户提问并接收答案。 消息框显示一个主要文本以提醒用户…

软件测试 —— 冒烟测试(Smoke Test,ST)

1. 核心 冒烟测试就是完成一个新版本的开发后&#xff0c;对该版本最基本的功能进行测试&#xff0c;保证基本的功能和流程能走通。 如果不通过&#xff0c;则打回开发那边重新开发&#xff1b; 如果通过测试&#xff0c;才会进行下一步的测试(功能测试&#xff0c;集成测试&a…

SQLyog连接数据库报plugin caching_sha2_password could not be loaded......解决方案

问题描述 问题分析 因为MySQL新版默认使用caching_sha2_password作为身份验证的插件&#xff0c;而旧版本使用的是mysql_native_password。当出现plugin caching_sha2_password could not be loaded报错&#xff0c;我们更换为旧版本 如何解决 先使用cmd命令登录MySQL&a…

从零开始的LINUX(四)

1.yum&#xff1a; 功能&#xff1a;软件包管理器&#xff0c;功能类似与手机上的应用商店。通过yum可以获取指令的下载地址&#xff0c;然后一键式安装指令。由于yum中的地址一般都是外网的&#xff0c;所以需要镜像源&#xff08;即国内的下载地址&#xff09;。 相关指令&…

2023最网最全软件测试基础知识【建议收藏】

​对于一个软件来说&#xff0c;总会存在各种各样的软件缺陷。因此我们需要通过软件测试来检查软件中存在的各种问题。 在下面的这篇文章中&#xff0c;将讲解软件测试的基础知识&#xff0c;让我们一起来了解一下吧 一、 软件缺陷的概述 1、什么是软件缺陷 ​ 软件缺陷就是…

博弈论学习笔记(3)——完全信息动态博弈

前言 在这个部分&#xff0c;我们学习的是完全信息动态博弈。主要内容包括扩展式博弈、子博弈精炼Nash均衡、重复博弈和子博弈精炼Nash均衡的应用。 一、扩展式博弈 1、扩展式博弈 1&#xff09;扩展式博弈是什么 扩展式博弈是博弈问题的一种规范性描述&#xff0c;扩展式博…

【MATLAB源码-第64期】matlab基于DWA算法的机器人局部路径规划包含动态障碍物和静态障碍物。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 动态窗口法&#xff08;Dynamic Window Approach&#xff0c;DWA&#xff09;是一种局部路径规划算法&#xff0c;常用于移动机器人的导航和避障。这种方法能够考虑机器人的动态约束&#xff0c;帮助机器人在复杂环境中安全、…

java面向对象编程高级

1、static修饰符 1.1static修饰成员变量 static叫静态&#xff0c;可以修饰成员变量、成员方法 成员变量按照有无static修饰&#xff0c;分为两种 类变量 : 有static修饰&#xff0c;属于类&#xff0c;在计算机里只有一份&#xff0c;会被类的全部对象共享 在开发中&#…

处理固定资产折旧报错 AFAB “根据记帐循环, 您必须接下来对期间 001记帐”

会计在运用进行固定资产折旧时&#xff0c;发现有个报错“根据记帐循环, 您必须接下来对期间 001记帐”&#xff0c; 根据记帐循环, 您必须接下来对期间 001记帐 消息编号 AA683 诊断 不可以在指定的期间过帐折旧&#xff0c;因为此操作会遗漏过帐期间。 系统响应 该期间不能进…