BBR 公平收敛

news2024/11/15 14:24:08

BBR 的公平收敛来自于两点:

  • ProbeBW 状态加速比收敛:带宽越大,加速比越小。
  • ProbeRTT 状态 RTT 收敛:inflight 越大,越容易让 inflight 小的测到 minrtt 而避免进入 ProbeRTT,inflight 越小,测量 minrtt 偏大,趋向更大 inflight。

详情参见:有趣的TCP BBR ProbeRTT行为点滴
但还是复杂了,写个简单的解释。

排队论模型,排队时间为: T = 1 / ( μ − λ ) T=1/(μ−λ) T=1/(μλ) ,T 作为 RTT 的一部分,λ 为 Pacing Rate, μ 为Delivery Rate, μ 一定,作图如下:
在这里插入图片描述
这是双曲线的一支。

ProbeBW 加速比描述为增加单位 inflight 带来 Delivery Rate 的增量。inflight 在排队系统描述为排队时间 T 的线性函数,则加速比即该曲线的斜率,很明显,斜率是递增的。

若排队时间一定, μ 和 λ 是线性关系。在排队系统中,多流排队时间相同,所以:

  • inflight 越大,增加相同 inflight 带来的 Delivery Rate 增益越小,趋向公平。

收敛图如下:
在这里插入图片描述
这个结论套用了排队理论公式,但直接从 BBR 原理图也能殊途同归。

先看理想情况:
在这里插入图片描述
考虑下图,盗自 单流 TCP 100Gbps+ 难题的直观解释
在这里插入图片描述
​所以事情真相是:
在这里插入图片描述
DeliveryRate/inflt 曲线一定上凸,这一点从以上 “处理时间/到达时间” 图中看出:inflt 增加,排队概率增加,由于钟形分布对称,净损耗率增加,吞吐增益减少。

若不易直观看出,可想象排列组合,1 个 inflt 只能有一种到达方式,带来 1 个增益,2 个 inflt 在 2 个时间槽可排 (0, 2),(1, 1) 两种,凡是带有 0 的组合,都有浪费的周期,3 个 inflt 在 3 个时间槽可排 (3, 0, 0),(2, 1, 0),(1, 1, 1),随着 inflt 增加,“到达模式” 中全 1 的满载槽占比减少,分别为 1/1,1/2,1/3,1/4,1/5 …

同理,RTT/inflt 曲线一定是下凸。最终拟合两张图,得到右图,与排队论公式描述一致。

核心在于 DeliveryRate/inflt 上凸曲线和 RTT/inflt 下凸曲线是普适的,反而 BBR 只是一个特例,这就是排队系统的直观解释。

有了该图,看图说话就行,公平收敛结论和基于排队论公式的结论一致。

下面是上图一个拟合示例:
在这里插入图片描述
浙江温州皮鞋湿,下雨进水不会胖。

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

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

相关文章

用Python代码自己写Python代码,竟如此简单

用Python代码自己写Python代码,竟如此简单 Python作为一门功能强大且使用灵活的编程语言,可以应用于各种领域,具有“无所不能”的特质。 Python甚至可以代替人,自己写Python代码。而且很简单,只需学会Python的基础知…

RabbitMQ学习笔记

目录 尚硅谷mq视频学习笔记 1.1. MQ 的相关概念 1.1.1. 什么是MQ 1.1.2. 为什么要用MQ 1.1.3. MQ 的分类 1.ActiveMQ 2.Kafka 3.RocketMQ 4.RabbitMQ 1.1.4. MQ 的选择 1.Kafka 2.RocketMQ 3.RabbitMQ 1.2. RabbitMQ 1.2.1. RabbitMQ 的概念 1.2.2. 四大核心概念…

7.7网络(二)

接上篇:7.7 网络(一)_龙赤子的博客-CSDN博客 目录 三 操作系统涉及的网络内容 1 网络栈 2 协议 3 应用 三 操作系统涉及的网络内容 1 网络栈 这里我们重点讨论操作系统里面的网络。这部分在整个网络架构中,属于端的技术。对于端来…

分布式锁-全面详解(学习总结---从入门到深化)

目录 分布式锁概述 为什么需要分布式锁 什么是分布式锁 分布式锁的特点 分布式锁问题_业务介绍 案列介绍 技术选型 创建表 创建订单表 创建商品表 创建订单商品关联表 分布式锁问题_创建SpringBoot项目 引入依赖 修改配置文件 编写主启动类 代码生成 编写创建订单接…

(附源码)node.js电商管理系统 毕业设计 251001

node.js电商管理系统 摘 要 随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,电商管理系统当然也不能排除在外。电商管理系统 是以实际运用为开发背景,运用软件工程开…

【数据结构与算法】拓扑排序与关键路径

🔥 本文由 程序喵正在路上 原创,CSDN首发! 💖 系列专栏:数据结构与算法 🌠 首发时间:2022年12月4日 🦋 欢迎关注🖱点赞👍收藏🌟留言🐾…

【C++智能指针】智能指针的发展和循环引用的原理和解决

目录 1.RAIl(智能指针的雏形) 2.拷贝导致的问题以及智能指针发展历史 2.1拷贝的问题(资源被析构两次) 2.2auto_ptr(资源权转移,不建议使用) 2.3unique_ptr(防拷贝,在不需要拷贝的情况下使用) 2.4share…

【vue】vue-count-to(数字滚动)插件:

文章目录一、效果:二、使用:【1】安装插件【2】案例三、Options四、Functions一、效果: 二、使用: 官方文档: github地址——https://github.com/PanJiaChen/vue-countTo npm地址——https://www.npmjs.com/package/…

在本地PC运行 Stable Diffusion 2.0

Stable Diffusion 2.0在前几天已经发布了,新版本在上一个版本的基础上进行了许多改进。OpenCLIP中新的深度检测和更好的文本到图像模型是主要的改进之一。 有很多的文章介绍了Stable Diffusion 2.0的改进,所以我们就不多介绍了,这里我们将介…

30分钟部署一个kubernetes集群【1.17】

作者:李振良 kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具。 这个工具能通过两条指令完成一个kubernetes集群的部署: # 创建一个 Master 节点 $ kubeadm init# 将一个 Node 节点加入到当前集群中 $ kubeadm join <Master节点的IP和端口 >1. 安装要求…

.m3u8.sqlite文件转mp4,m3u8.sqlite文件转视频工具(开源免费)

文章目录一、预先准备1. 前提2. 主要思路3. 准备工具二、视频转换实战2.1. 软件下载2.2. TS转MP4工具2.3. 操作流程一、预先准备 1. 前提 如果已经买了课程&#xff0c;是可以下载的&#xff0c;并且腾讯课堂APP里就有下载功能。 2. 主要思路 在APP上下载视频缓存到手机本地…

postgres源码解析41 btree索引文件的创建--1

上述小节讲解了索引文件的物理创建&#xff0c;本篇讲解btree索引元组填充至索引文件的操作。先从数据结构入手&#xff0c;后深入执行流程。 postgres源码解析37 表创建执行全流程梳理–1 postgres源码解析37 表创建执行全流程梳理–2 postgres源码解析37 表创建执行全流程梳理…

详解设计模式:责任链模式

责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;也被称为职责链模式&#xff0c;是在 GoF 23 种设计模式中定义了的行为型模式。 责任链模式 是将链中的每一个节点看作是一个对象&#xff0c;每个节点处理的请求不同&#xff0c;且内部自动维护一个下一节点…

降温了好冷,总结下11月

1、这两天广东气温骤降&#xff0c;出门必须加外套了&#xff0c;emmm&#xff0c;不想出门&#xff0c;各位宝宝注意保暖吖&#xff0c;别感冒了。2、这边疫情开始放开了&#xff0c;备好感冒药&#xff0c;锻炼身体&#xff0c;做好预防&#xff0c;靠自己了。3、11月过的真快…

jsp人事考勤管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 人事考勤管理系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统采用serlvetdaobean mvc 模式&#xff0c;系统主要采用B/S模式 开发。开发环境为TOMCAT7.0,Myeclipse8.…

[附源码]计算机毕业设计基于Springboot的花店售卖系统的设计与实现

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【45-线程的实现方式-线程池的创建方式-线程池的执行顺序-CompletableFutrue异步处理】

一.知识回顾 【0.三高商城系统的专题专栏都帮你整理好了&#xff0c;请点击这里&#xff01;】 【1-系统架构演进过程】 【2-微服务系统架构需求】 【3-高性能、高并发、高可用的三高商城系统项目介绍】 【4-Linux云服务器上安装Docker】 【5-Docker安装部署MySQL和Redis服务】…

物联网毕设 -- 基于STM32的心率检测

目录 前言 1 演示视频 一 连线图 1. 原理图 2.功能概括 二 底层代码使用方式 1. 下载程序 2. 查看云平台数据 三 APP使用方式 1. 下载APP 2. 配对蓝牙 四 网盘链接 前言 分享一个之前做到心率监测项目&#xff0c;有APP端有OLED显示端&#xff0c;我会把把他放…

Windows搭建web站点:免费内网穿透发布至公网 1-2

什么是cpolar&#xff1f; cpolar是一个非常强大的内网穿透工具&#xff0c;开发调试的必备利器。 它可以将本地内网服务器的HTTP、HTTPS、TCP协议端口映射为公网地址端口&#xff0c;使得公网用户可以轻松访问您的内网服务器&#xff0c;无需部署至公网服务器。支持永久免费使…

[附源码]Python计算机毕业设计Django软考刷题小程序

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…