闲谈自适应借贷式拥塞控制

news2025/1/21 12:52:58

首先,借贷式拥塞控制 为什么能收敛到公平。sender 遵守算法约定的前提下给出一个原则和两个逻辑:

  • 小 cwnd 的流在用大的但越来越小的 burst 率抢,大 cwnd 的流在用小的但越来越大的 burst 率让,最终达到平衡,不抢也不让。
  • 如果当前流继续增加 inflight,它将继续降低 burst 率,即降低 pacing_rate,由于它增加了 inflight 而挤占了其它流的带宽,其它流在减少了带宽后将提高 burst 率,从而更容易将带宽抢回来(参考 插队原理),这构建了一个动态负反馈环。
  • 参考 更合理的 bbr,时刻跟踪 E = bw / rtt,在其单调递增后开始减少时,记录拐点并认同上述第一点,在这附近进行微调。

因此,借贷式拥塞控制算法可以收敛到公平,并可以在最佳效能点收敛到公平,注意,我这里没有说最佳操作点,因为它不存在(最佳 “操作” 点是不可操作的)。

其次,借贷式拥塞控制算法如何动态适应带宽变化。

先看收敛点附近的情形:
在这里插入图片描述

算法承认并且确实要占据一些 buffer,这些 buffer 对发现带宽变化至关重要:

  • 当有流量退出腾出带宽,buffer 可立即挤压出更大 delivery rate 被 sender 感知从而增加 cwnd。
  • 当有流量侵入,v < buffer_limit 不至于丢包,但 E = bw / rtt 减少,从而降低 cwnd 和 burst 率。

现在给出借贷式拥塞控制整体的几何图示:
在这里插入图片描述

只要调好(或者事先确定好)一套参数,比如 rtt(rtt 由上图平衡线的斜率乘以系数表示),带宽系数,无论多少条流都可随意进出,公平收敛。整个拥塞控制问题可以转为几何问题。

最后,以排队论说明借贷式拥塞控制的收敛平衡性,它可用时延和负载关系图表达(下图从下往上读):
在这里插入图片描述

正常情况下统计复用节点的 rtt/load 线不会像 rtt 理论上那般 “平折”,最佳 E 值本身就依赖 buffer,如上图底部所示。
通过分析得到一个凹形收敛结构而不是凸形,说明借贷式拥塞控制是一个平衡的算法:

  • 固定 buffer 用量,无论 cwnd 多大,以 C - cwnd 量级(乘变量或系数)的固有 pacing_rate 发送即可,C 为最大 inflight 容量。
  • 基于 inflight 守恒律,采用 pacing_rate 匹配而不是 cwnd 匹配的方式向最优点公平收敛。

总之用它调教你的算法就对了,我此前总是抱怨 bbr probe 会挤压带宽,但我并没有把握说当 deliver_rate < gain * pacing_rate 时将 probe 完全回退是合理的,因为还要考虑到 n 退 1,n 非常大的场景,由排队理论知道这是一定要通过 buffer 重新分配带宽的,考虑到和 aimd 共存场景就更不能完全回退了,那么借贷式算法提供了另一个自平衡视角。

皮鞋没有蹬上,露着白袜子。

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

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

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

相关文章

vite vue3打包时出现TS类型错误解决最快速解决方案

快速解决看这里或者直接到 解决 packge.json中将build的vue-tsc命令删除 问题描述 在执行 npm build时报错 node_modules/.pnpm/element-plus2.3.4_vue3.3.7/node_modules/element-plus/es/components/tabs/index.d.ts:106:14106 readonly stretch: boolean;~~~~~~~The …

第六章 包图组织模型|系统建模语言SysML实用指南学习

仅供个人学习记录 概述 包是容器的一个例子。包中的模型元素称为可封装元素&#xff0c;这些元素可以是包、用例和活动。由于包本身也是可封装元素&#xff0c;因此可以支持包层级。 每个有名称的模型元素也必须是命名空间的一份子&#xff0c;命名空间使得每个元素均能够通过…

KDChart2.8编译过程-使用VS+CMake-MSVC2017

文章目录 一、下载KDChart源文件二、只用Visual Studio&#xff08;有缺陷&#xff09;1.配置系统环境变量2.使用Visual Studio中的Qt集成功能3. 打开sln解决方案编译生成相关设置&#xff08;以Release为例&#xff09; 三、CMakeVisual Studio&#xff08;完美&#xff09;1.…

信息泄露--

大唐电信AC简介 大唐电信科技股份有限公司是电信科学技术研究院&#xff08;大唐电信科技产业集团&#xff09;控股的的高科技企业&#xff0c;大唐电信已形成集成电路设计、软件与应用、终端设计、移动互联网四大产业板块。 大唐电信AC集中管理平台存在弱口令及敏感信息泄漏漏…

webgoat(A2) Broken Authentication

身份验证绕过 身份验证绕过以多种方式发生&#xff0c;但通常会利用配置或逻辑中的某些缺陷。篡改以达到正确的条件。 隐藏输入 最简单的形式是依赖于网页/DOM 中的隐藏输入。 删除参数 有时&#xff0c;如果攻击者不知道参数的正确值&#xff0c;他们可能会从提交中完全删…

excel利用正则匹配和替换指定内容

上班中, 突然接到电话, 屋里的上司大人发来个excel, 说要替换里面x-x-xxx列的内容为x栋x单元xxx. 大致表格如下, 原表格我就不发了 身为程序猿的我, 肯定第一就想到了 正则! 打开excel-开始-查找和替换, 我擦, 只能完全匹配和替换 比如一次只能替换1-1- -> 为1栋1单元 1-2…

牛客项目(五)-使用kafka实现发送系统通知

kafka入门以及与spring整合 Message.java import java.util.Date;public class Message {private int id;private int fromId;private int toId;private String conversationId;private String content;private int status;private Date createTime;public int getId() {retur…

不使用屏幕在树莓派4B安装Ubuntu22.04桌面版(64位)

因为时间有限只说一下基本路径&#xff1a; 1首先安装Ubuntu22.04server版本 2设置服务器版本的SSH和WiFi 3通过服务器版本安装Ubuntu-desktop升级到Ubuntu22.04桌面版 4在桌面版上安装远程控制软件&#xff1a;xrdp; 5使用Windows自带的远程桌面连接访问Ubuntu 6完成

Linux -----------------------Shell 流程判断

什么是shell Shell是操作系统的用户界面&#xff0c;负责接收和解释用户的命令&#xff0c;并将这些命令转化为操作系统内部能够理解的指令&#xff0c;然后执行相应的操作。Shell还允许用户编写脚本&#xff0c;以自动化和批处理任务&#xff0c;从而提高效率。在Linux系统中&…

【Nginx38】Nginx学习:SSL模块(二)错误状态码、变量及宝塔配置分析

Nginx学习&#xff1a;SSL模块&#xff08;二&#xff09;错误状态码、变量及宝塔配置分析 继续我们的 SSL 模块的学习。上回其实我们已经搭建起了一个 HTTPS 服务器了&#xff0c;只用了三个配置&#xff0c;其中一个是 listen 的参数&#xff0c;另外两个是指定密钥文件的地址…

【LeetCode刷题-排序】--912.排序数组

912.排序数组 方法&#xff1a;使用插入排序 class Solution {public int[] sortArray(int[] nums) {int len nums.length;//循环不变量:使nums[i]插入区间[0,i),使之成为有序数组for(int i 1;i<len;i){//先缓存这个元素&#xff0c;然后之前的元素逐个后移&#xff0c;…

LeetCode----52. N 皇后 II

 题目 n 皇后问题 研究的是如何将 n 个皇后放置在 n n 的棋盘上,并且使皇后彼此之间不能相互攻击。 给你一个整数 n ,返回 n 皇后问题 不同的解决方案的数量。 示例 1: 输入:n = 4 输出:2 解释:如上图所示,4 皇后问题存在两个不同的解法。 示例 2: 输入:n = …

【CSDN 每日一练 ★★☆】【数学】旋转图像

【CSDN 每日一练 ★★☆】【数学】旋转图像 数学 数组 题目 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像&#xff0c;这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 示例 1&a…

前端埋点方式

前言&#xff1a; 想要了解用户在系统中所做的操作&#xff0c;从而得出用户在本系统中最常用的模块、在系统中停留的时间。对于了解用户的行为、分析用户的需求有很大的帮助&#xff0c;想实现这种需求可以通过前端埋点的方式。 埋点方式&#xff1a; 1.什么是埋点&#xff1f…

【Selenium+python】自动化测试登录界面

前言&#xff1a;已经学习selenium许久了&#xff0c;奈何公司的项目还在码代码中...&#xff0c;感觉自己学的东西快忘的差不多了&#xff0c;所以就找个网站练练手&#xff0c;顺便回顾一下UI自动化的知识&#xff0c;也希望跟我一样的小白有所受益。 一、用例分析&#xff…

线扫相机DALSA--常见问题四:修改相机参数,参数保存无效情况

该问题是操作不当&#xff0c;未按照正常步骤保存参数所致&#xff0c;相机为RAM机制&#xff0c;参数需保存在采集卡的ROM内。 保存参数步骤&#xff1a; ①首先将相机参数保存至User Set1&#xff1b; ②然后回到Board(采集卡)参数设置区&#xff0c;鼠标选中Basic Timing&a…

C++——类和对象(中)完结

赋值运算符重载 运算符重载 C 为了增强代码的可读性引入了运算符重载 &#xff0c; 运算符重载是具有特殊函数名的函数 &#xff0c;也具有其 返回值类型&#xff0c;函数名字以及参数列表&#xff0c;其返回值类型与参数列表与普通的函数类似。 函数名字为&#xff1a;关键…

中富转债,章鼓转债上市价格预测

中富转债-123226 基本信息 转债名称&#xff1a;中富转债&#xff0c;评级&#xff1a;AA-&#xff0c;发行规模&#xff1a;5.2亿元。 正股名称&#xff1a;中富电路&#xff0c;今日收盘价&#xff1a;30.03元&#xff0c;转股价格&#xff1a;36.44元。 当前转股价值 转债面…

桥接模式birdge

简介 桥接模式&#xff1a;将抽象与实现相分离&#xff0c;使他们可以独立变化。 角色 抽象化&#xff08;Abstraction&#xff09;角色&#xff1a; 该类持有一个对实现角色的引用&#xff0c;抽象角色中的方法需要实现角色来实现&#xff0c;抽象角色一般为抽象类&#xf…

NOA标配搭载率不足3%!英伟达中国「自研」智驾方案

汽车行业的特殊性&#xff0c;意味着&#xff0c;对于供应链来说&#xff0c;一家独大几乎不可能。对于芯片赛道来说&#xff0c;同样如此。 以智能驾驶为例&#xff0c;目前的供应链形态&#xff0c;也正处于变革的关键周期。各路玩家也都在尝试与车企合作模式的多元化。 高工…