布雷斯悖论和借贷式拥塞控制

先看布雷斯悖论,新增一条路不但没减少交通延滞,反而降低了服务水准,下面一个简单的例子:

在这里插入图片描述

关于布雷斯悖论的讨论已经太多,我给出个新解释,这和我引出 借贷式拥塞控制 (差论证和编码)有关。

看一个不严谨但更简单实际(日常生活中常见)的例子:
在这里插入图片描述

当打通一条 “近路” 后,绝大多数流量都会自动进入近路,结果:

  • 流量进入近路,近路上 A 处拥堵。
  • 2 处分流的假象,可能引导更多流量从 1 进入。
  • 偶尔进入原始路径的流量在 3 处和近路流量汇合而拥堵。
  • 如果 2 到 3 间有入口,新流量会被 2-3 间的小流量欺骗,大量涌入后在 3 处加剧拥堵。

所有这一切都因打通了 2,3 间的近路。

进一步抽象一下,将入口 1 和 4 之间的所有可能路径设想成一个纷乱如麻的黑盒子,里面塞满了所有可能的路径(这是可能的,但不容易想象):
在这里插入图片描述

所有这些路径有直达的,有中转的,总之这简直是 full-mesh,能连接的都连在一起。假设每条路径都有流量,以下结论是显然的:

  • 总存在至少 1 条路径从入口到达出口时间最短。
  • 总存在至少 1 条路径使出口满负载运转。

现在做以下操作:

  • 上述第一点的那些路径加入集合 S,排除 S 外的其它路径。
  • 看出口是否满负载,如果不满负载,在集合 S 外找最优路径,重复 1。
  • 直到出口满负载。

集合 S 让出口满负载,这就是这个盒子的最优解:最小时延,最大带宽:
在这里插入图片描述

现在将那些不属于 S 的路径逐步添加进盒子,这等价于 “修路”,它的结果是:

  • 出口负载已满,不会再增加。
  • 入口进入的流量增加。
  • 出入不守恒,盒子内部拥塞,这表示 “整个网络的服务水准下降”。

以上就是布雷斯悖论的解释。

拥塞的根本原因在于负反馈时间过久,以至入口容量的假象欺骗太久,如果盒子巨大,溢出盒子需很久,这将导入大量无效流量。容易发现,越宽的路,堵车时越壮观,无论多宽的路,似乎总是被填满。

负反馈的延迟导致正反馈:路越宽,负反馈越久,维持欺骗的时间越久,拥塞程度越剧烈。buffer 越大,拥塞越很。

若转为主观,占便宜不花代价,大家都占便宜时,自己必须趋同,整条路都被占便宜者堵着,你能怎么办,缺乏反向激励和惩罚机制。这就是我屡次强调过的,别的流通过 probe 挤兑带宽时,自己就必须用至少一样的力度挤兑,否则将一无所有。

评价车牌拍卖制度时,我们能感受到虽然本意是减缓拥塞,车牌价格相当于拥塞税,你要开车,就要花钱,因为你不花钱就没拍照,所以花钱而已,车就越来越多。这和 cubic vs. bbr 异曲同工,想获得更多带宽,只能 probe,但也就 probe 而已,buffer 越堆越满,幸好 cubic 有 aimd 约束,当然也是为了自己。

拍牌相当于提前预付拥塞税,必须交钱才能开车,既然已经交了,就随便上路了,没有 “实时的” 反向措施作为勾引或反制。比如如果不开车转而坐公共交通,会退钱。

回到上面黑盒子,如果每人进入盒子一次收 1 元,两次收 2 元,10 人合并进入一次奖励 1 元,20 人合并进入奖励 2 元,这个盒子最终会自动识别 S 集。

再回到最上面 wiki 的例子,如果近路不再 0 成本,而是第一天收 1 元,第二天收 2 元,第一天走原路奖励 1 远,第二天走原路奖励 2 元,结合时间货币成本自行考量,新路顺利提升了通行效率。

一方亏的给了另一方,让他的收益递减他才肯主动亏,因为这能换来他的收益递增。没有动机作恶才是最好的。

总之,负反馈也好,自抑制也罢,让占便宜的收益递减,不占便宜的吃亏递增,or 占便宜的惩罚递增,不占便宜的奖励递减,系统就会自动收敛到高效和公平,结合经济规律以及人口规律的周期性,这就是我那个 借贷式拥塞控制 的缘起和初衷。

aimd 和 bbr 分别处于借贷式拥塞控制的两边,aimd 预付拥塞税,却对代价零存整取,而 bbr 则试图实时跟踪并匹配资源,虽说我们不希望 cc 工作在右边的丢包点,但左边的 bltbw/proprt 最优操作点却不可达,真实情况在二者之间。

纳什均衡可能也不是最优解,但却是最平衡的。

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Airtest工具根据App页面文字信息提取坐标进行截图保存在自定义文件夹

Airtest工具根据App页面文字信息提取坐标进行截图保存在自定义文件夹 一、项目背景 在一个项目中,选项被选中和未选中的节点元素的属性值无变化,通过AI识别率达不到百分百,想着通过计算图片的HSV值来判断选择能否被选中。(HSV比…

聊聊我对AI Agents技术的一些看法

小伙伴们!我来兑现承诺啦~ ps:接下来期待什么内容,欢迎在评论区留言! 今天,我们就来聊聊大模型 Agent。 最近这几个月,Agent 这一概念可谓火出天际,从 AutoGPT 一周 6 万 star 刷新…

云安全—K8s APi Server 6443 攻击面

0x00 前言 在未授权的一文中,详细描述了k8s api中的8080端口未授权的问题,那么本篇主要来说6443端口的利用。 0x01 API连接攻击面 1.匿名用户访问 匿名开放方式:kubectl create clusterrolebinding cluster-system-anonymous --clusterro…

K8S部署时IP问题

本次环境搭建需要安装三台Centos服务器(一主二从);搭配的前提时做好ip的设置 主机IP规划 IP地址的设定需要根据自己主机来设置,在虚拟机的虚拟网络编辑器中看他给你的ip;不要查什么ipconfig了。 在虚拟网络编辑器中…

Ansible中的任务执行控制

循环 简单循环 {{item}} 迭代变量名称 loop: - value1 - value2 - ... //赋值列表{{item}} //迭代变量名称循环散列或字典列表 - name: create filehosts: host1tasks:- name: file moudleservice:name: "{{ item.name }}"state: "{{…

UG\NX二次开发 先设置默认颜色再创建对象

文章作者:里海 来源网站:里海NX二次开发3000例专栏 感谢粉丝订阅 感谢 qq_42461973 订阅本专栏,非常感谢。 简介 有粉丝问,可不可以先设置默认颜色再创建对象?这个是可以的,下面是例子: 效果 代码 #include "me.hpp" using namespace std;

毅速丨3D打印结合拓扑优化让轻量化制造更容易

轻量化可以减少产品的重量,提高产品的性能和效率,同时减少能源消耗和排放。尤其在航空航天、汽车制造造等行业对轻量化追求更高。当前,随着制造技术的发展,拓扑优化结合3D打印为轻量化制造带来的显著的优势正在逐渐凸显。 首先&am…

APM建设踩了哪些坑?去哪儿旅行分布式链路追踪系统实践

一分钟精华速览 分布式链路追踪系统在企业的APM体系中扮演着重要的角色。本文分享了去哪儿旅行构建分布式链路追踪系统的实践经验。从APM整体架构设计入手,讲述了日志收集、Kafka传输和Flink任务处理等环节的性能优化实践和踩坑经验。 同时,作者结合丰…

绝地求生msvcp140.dll丢失报错怎么办,这四个方法都可以解决

在回答这个问题之前,我们先来了解一下什么是msvcp140.dll。msvcp140.dll是微软Visual C 2015 Redistributable的一个组件,它包含了许多运行库文件,用于支持各种应用程序的正常运行。当你在玩《绝地求生》(俗称“吃鸡”&#xff09…

深入了解 CPU 的型号、代际架构与微架构

大家好,我是飞哥! 在 10 月 16 号的时候,Intel 正式发布了第 14 代的酷睿处理器。但还有很多同学看不懂这种发布会上发布的各种 CPU 参数。借着这个时机,我给大家深入地讲讲 CPU 的型号规则、代际架构与微架构方面的知识。 CPU 在…

谈一谈SQLite、MySQL、PostgreSQL三大数据库

每一份付出,必将有一份收货,就像这个小小的果实,时间到了,也就会开花结果… 三大数据库概述 SQLite、MySQL 和 PostgreSQL 都是流行的关系型数据库管理系统(RDBMS),但它们在功能、适用场景和性…

力扣每日一题94:二叉树的中序遍历

题目描述: 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 示例 1: 输入:root [1,null,2,3] 输出:[1,3,2]示例 2: 输入:root [] 输出:[]示例 3: 输入&#x…

【第28例】IPD体系进阶 | 需求管理:需求实现过程

目录 简介 内容详解 CSDN学院相关推荐 作者简介 简介 继续 IPD 体系中的需求管理相关的专题。 先来看看整个需求管理涉及的过程内容: 需求管理流程主要包含五个阶段: 需求收集; 需求分析; 需求分发/分配;

EasyExcel动态复杂表头导出方法

目录 需求分析解决方案数据问题数据导入 需求分析 公司数据比较特殊有一部分数据需要动态修改导致信息导入时表头是不确定的,但其中又有一部分表头是固定的,如下图所示,如果表头全部是固定的话可以通过EasyExcel实体类的注解很轻松的解决&am…

Java自学第3课:Java语言流程控制和字符串

1 复合语句 复合语句是以区块为单位的语句&#xff0c;也就是{}内的内容。 2 条件语句 if (布尔表达式){语句序列}else{语句序列} 有个好玩的是&#xff0c;对年龄段的分段&#xff0c;其实以前的思维是有点冗余的&#xff0c;比如a<100 & a>90&#xff0c;在复合…

文本内容转换成语音播放的工具:Speech Mac

Speech Mac版是一款适用于Mac电脑的语音合成工具。它将macOS语音合成器的所有功能整合到一个易于使用的界面中。通过Speech Mac版&#xff0c;用户可以选择40多种声音和语言&#xff0c;方便地将文本转换为语音。用户可以将文本拖放或粘贴到Speech中&#xff0c;并随时更改语音…

巴黎奥运会将基于阿里云实现云上转播

10月31日&#xff0c;2023杭州云栖大会&#xff0c;奥林匹克广播服务公司与奥林匹克频道服务公司首席技术官索蒂里斯萨拉穆里斯&#xff08;Sotiris SALAMOURIS&#xff09;表示&#xff0c;过去5年阿里云作为奥运会转播的基础设施&#xff0c;让奥运故事触达了更多全球观众。 …

mybatis-plus技巧--动态表名-多语句-拼接sql--关于mybatis的mysql分页查询总数的优化思考

文章目录 动态表名xml表名填充表名拦截器每天按统计每次设置 多语句操作forEach动态拼接 参数构建java进行拼接sqlmysql分页查询总数count不要使用count&#xff08;常数&#xff09;&#xff0c;count&#xff08;列名&#xff09;代替count(*)自己计数 SQL_CALC_FOUND_ROWSxm…

性能优化之懒加载 - 基于观察者模式和单例模式的实现

一、引入 在前端性能优化中&#xff0c;关于图片/视频等内容的懒加载一直都是优化利器。当用户看到对应的视图模块时&#xff0c;才去请求加载对应的图像。 原理也很简单&#xff0c;通过浏览器提供的 IntersectionObserver - Web API 接口参考 | MDN (mozilla.org)&#xff0c…

JavaScript设计模式之责任链模式

适用场景&#xff1a;一个完整的流程&#xff0c;中间分成多个环节&#xff0c;各个环节之间存在一定的顺序关系&#xff0c;同时中间的环节的个数不一定&#xff0c;可能添加环节&#xff0c;也可能减少环节&#xff0c;只要保证顺序关系就可以。 如下图&#xff1a; ES5写法…
最新文章