AIMD 为什么收敛(tcp reno/cubic 为什么好)

news2024/11/17 15:41:18

TCP 拥塞控制目标是缓解并解除网络拥塞,让所有流量公平共享带宽,合在一起就是公平收敛。
AIMD(几乎所有与拥塞控制相关的协议或算法都有 AIMD 的影子,包括 RoCE,BBRv2) 为什么收敛?我一般会给出下面的老图:
在这里插入图片描述

虽然只展示了两条流的收敛,但 n 条流收敛的展示无非就是将 2 维坐标系换成 n 维坐标系,只要能证明任意的 2 维截面都如上图所示就行,而这件事简单推导一下就行,比画坐标系还要直观,再说超过 3 维的坐标系也画不出来。

设一个 AIMD 系统的 AIMD 参数为 α \alpha α, β \beta β w i 0 w_{i0} wi0 w j 0 w_{j0} wj0 分别为任意两条流的初始窗口,且 w i 0 > w j 0 w_{i0}>w_{j0} wi0>wj0,二者之差 d 0 = W i 0 − W j 0 d_0=W_{i0}-W_{j0} d0=Wi0Wj0

假设所有流同步(异步流和 RED 作用下相对复杂,用统计分布代替公式),一个 AIMD 周期后,两条流的 cwnd 分别为 w i 0 = w i = β ∗ ( w i 0 + α ) w_{i0}=w_i= \beta*(w_{i0}+\alpha) wi0=wi=β(wi0+α) w j 0 = w j = β ∗ ( w j 0 + α ) w_{j0}=w_j= \beta*(w_{j0}+\alpha) wj0=wj=β(wj0+α),此时两条流 cwnd 之差 d = β ∗ d 0 d=\beta*d_0 d=βd0

再下一个周期, w i 0 = w i = β ∗ ( β ∗ ( w i 0 + α ) + α ) w_{i0}=w_i= \beta*(\beta*(w_{i0}+\alpha)+\alpha) wi0=wi=β(β(wi0+α)+α) w j 0 = w j = β ∗ ( β ∗ ( w j 0 + α ) + α ) w_{j0}=w_j= \beta*(\beta*(w_{j0}+\alpha)+\alpha) wj0=wj=β(β(wj0+α)+α),两条流 cwnd 之差 d = β 2 ∗ d 0 d=\beta^2*d_0 d=β2d0

容易得到,在第 n 个 AIMD 周期后,两条流 cwnd 之差为 d = β n d 0 d=\beta^nd_0 d=βnd0,趋向于 0,这意味着无论初始时刻任意两条流差异多么大,最终它们将趋同。

值得注意的是,无论是 AI 过程还是 MD 过程,都单独对收敛有贡献,假设持续 AI,从不 MD,观察一个比值 w i 0 + x w j 0 + x \dfrac{w_{i0}+x}{w_{j0}+x} wj0+xwi0+x, x 越大,比值越趋向于 1,在总体量面前,差异将无关紧要,另一方面,假设持续 MD,从不 AI,观察一个差值 β x ∗ w i 0 − β x ∗ w j 0 \beta^x*w_{i0}-\beta^x*w_{j0} βxwi0βxwj0, x 越大,该差值趋向于 0,宏观上看,差异消失。

总体而言,AI 的过程与初始值无关,它是一种与初始优势相反的力量,保持差值不变,比例趋向公平,削减掉相对差异,而 MD 则与初始值强相关,但它下降的速率越来越慢,保持差值趋向公平,比例不变,削减掉绝对差异。AIMD 共同作用,各自效用独立积累,无论在比例差异还是在绝对差异均被时间抹平。

举个例子,A 有 1 块钱,B 有 9 块钱,两人很公平,因为购买力有绝对值下限,虽然 A 和 B 相差 9 倍,但他们可能都买不到东西,但 A 有 100 万块,B 有 900 万块,就不再公平了,此时 9 倍的差异关乎他们生活在不同层次,如果 A 有 1 亿零 100 块,B 有 1 亿零 900 块,又会非常公平。

大概社会平均工资,普调,年终奖,股权被稀释,工资被倒挂,就和 AIMD,AIAD,MIMD,MIAD 有关。用上述的简单推导可以证明,除了 AIMD 可以收敛到公平,其它 3 种均不行。

AIMD-based cc,比如 reno,cubic,scalable,highspeed,它们被认为不如 BBR,但事后看,这些算法并不是在根本上不如 BBR,而 BBR 也不是根本上就优秀,前面说过,BBR 的高效来自于瞬时记住并憋住的 maxbw,而 cubic(包括其它 AIMD cc) 的问题在于它不能识别随机丢包。而 AIMD 本身与效率无关,它只关注公平收敛。

cubic 只要增加丢包分类识别就能解决问题, 而 BBR 无论 probebw 还是 probertt 均无法完备论证收敛,只在 “效果” 上显示出 “加速比与带宽占比负相关”,而这是过不了审的。

已经有了很多 “cubic-改” 算法,大多数引入了 delay 甚至 delay 梯度,在丢包发生时二次确认拥塞是否真实存在,事实上 westwood 就是一种比较合理的算法,它收敛到瓶颈带宽,而不是固定比例。然而由于实现粗糙(依然是受制于 Linux 拥塞状态机),westwood 未竟全功。

还有另一种拥塞判定方法,二次机会法,事先为 AIMD 准备两个 beta 参数,当检测到丢包时,随即将 cwnd 下降一个更小的 beta 比例,进入包守恒开始重传恢复,如果重传率超过一个阈值,则将 cwnd 下降更大的 beta,视情况从两个 MD 中任意一个开始进行 AI:
在这里插入图片描述
避开的只是随机丢包,丝毫不影响拥塞丢包后的收敛。

非常简单,不需要像 westwood 还要计算瓶颈带宽,代价就是误判会增加重传率,好在只有二次机会,只会增加一点点,不像 BBR 憋住 10 round 那样执着。

公平收敛,抓住一个小基本点就行了,这是控制平面的底座,其它的,留给应用自己以及底层链路,就好像线路断了,再好的算法也无济于事,另一方面,application-limited 传输,再好的算法也用不上,但无论如何,公平是刚需。

其实菜市场摊贩就遵循 AIMD 以避开相互内耗的价格战,最终你会发现各个摊贩的菜价都一样,差别只是质量口碑而已。菜市场刚开张时,各家促销,缓慢加价,最终发现客户流失时,又大减价(注意这个 “大” 字),大促销,最终他们的价格趋向于一致。当然,TCP 这方面属于后生,但 AIMD 是一个放之四海而皆准的通用控制论模型,在它的框架下做事就对了,但凡违背的,事情将会越发精细,复杂。

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

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

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

相关文章

1区(TOP)极速送审,5月SCI/SSCI/EI刊源表已更新,

2023年5月SCI/SSCI/EI期刊目录更新 5月我处新增多本1-2区高分区新刊,包括计算机、医学、环境、化学、材料、生物、工程、社科领域,新刊版面极速送审~ 以下是本月重点期刊推荐,可作参考: 计算机类新刊: 1区计算机科…

钓鱼邮件演练项目实战

1、 使用 setoolkit 克隆站点 Setoolkit 是一个万能的社工工具(社会工程学工具集合) ┌──(root Cwillchris)-[~] └─# setoolkit 翻译成中文: 从菜单中选择: 1)社会工程攻击 2)渗透测试(快速通道) 3)第三方模块 4)更新社会工程师工具包 5)更新 SET 配置…

使用 spring 的 IoC 的实现账户的CRUD(2)双层实现+注解开发

在http://t.csdn.cn/yucl4的基础上进行注解开发 【分析】 xml文件其中spring容器中的bean,因此通过注解把这些放到容器中即可 component:相当xml中的bean的id: 如果不指定 value 属性,默认 bean 的 id 是当前类的类名, 首字母小写。 Controller Service Reposito…

计算机毕业论文选题推荐|软件工程|系列二

文章目录 导文题目导文 计算机毕业论文选题推荐|软件工程 (***语言)==使用其他任何编程语言 例如:基于(***语言)门窗账务管理系统的设计与实现 得到:基于JAVA门窗账务管理系统的设计与实现 基于vue门窗账务管理系统的设计与实现 等等 题目 基于(***语言)门窗账务管理系…

C++——类和对象(6)

作者:几冬雪来 时间:2023年5月10日 内容:C类和对象内容讲解 目录 前言: 1.取地址操作符重载: 2.构造函数(进阶): 1.初始化列表: 2.static成员: 结尾…

数据可视化工具 - ECharts饼形图的编写

1 饼形图 1年龄分布模块制作 1.1 官网找到类似实例&#xff0c; 适当分析&#xff0c;并且引入到HTML页面中 <!DOCTYPE html> <html> <head><meta charset"utf-8"/><title>ECharts</title><!-- 引入刚刚下载的 ECharts 文件…

Android WebRTC+SRS/ZLM视频通话(4):Android使用WebRTC推流SRS/ZLMediaKit

Android WebRTCSRS/ZLM视频通话&#xff08;4&#xff09;&#xff1a;Android使用WebRTC推流SRS/ZLMediaKit 来自奔三人员的焦虑日志 接着上一章内容&#xff0c;继续来记录Android是如何使用WebRTC往SRS或ZLMediaKit进行推流。想要在Android设备上实现高质量的实时流媒体推送…

VirtualBox+Vagrant

1.下载VirtualBox 1.下载 VirtualBox官网下载 下载过程无特别注意事项&#xff0c;注意调整到非 C 盘位置即可&#xff0c;其他部分皆为默认设置 2.修改虚拟电脑存储位置 1.将C:\Users\用户名下的VirtualBox VMs文件夹复制到自定义目标文件夹中 2.打开VirtualBox,在全局设置…

嵌入式TCP/IP协议栈-LwIP

文章目录 LWIP是什么基础知识OSI七层模型TCP/IP五层模型LwIP的模型常见协议ARP协议ICMP协议DHCP协议DNS协议 LwIP APISocket大端模式与小端模式地址字节序IP地址转换 网络并发 LWIP是什么 LWIP是一个轻量级的TCP/IP协议栈&#xff0c;其全称为Lightweight IP&#xff0c;它专门…

UNIX网络编程卷一 学习笔记 第十二章 IPv4与IPv6的互操作性

未来数年内&#xff0c;因特网也许会逐渐从IPv4过渡到IPv6&#xff0c;在过渡阶段&#xff0c;基于IPv4的现有应用能与基于IPv6的全新应用协同工作非常重要。例如&#xff0c;厂商不应只提供仅能与IPv6 telnet服务器程序协同工作的telnet客户程序&#xff0c;而应该提供既能与I…

环境搭建:Visual Studio的安装和创建C++项目

Visual Studio的安装和创建C项目 引言前言下载Visual Studio安装包安装Visual Studio创建项目小结 引言 &#x1f4a1; 作者简介&#xff1a;专注于C/C高性能程序设计和开发&#xff0c;理论与代码实践结合&#xff0c;让世界没有难学的技术。 &#x1f449; &#x1f396;️ C…

第五十章 Unity Input Manager 输入系统(上)

Unity的输入系统支持多种输入设备&#xff0c;比如键盘和鼠标&#xff0c;游戏手柄&#xff0c;触摸屏&#xff0c;VR和AR控制器等等。Unity 通过两个独立的系统提供输入支持&#xff1a;第一&#xff0c;输入管理器 (Input Manager) 是 Unity 核心平台的一部分&#xff0c;默认…

数据可视化一、ECharts

零、文章目录 数据可视化一、ECharts 1、数据可视化 &#xff08;1&#xff09;数据可视化 数据可视化主要目的&#xff1a;借助于图形化手段&#xff0c;清晰有效地传达与沟通信息。数据可视化可以把数据从冰冷的数字转换成图形&#xff0c;揭示蕴含在数据中的规律和道理。…

TGANet:用于改进息肉分割的文本引导注意力

文章目录 TGANet: Text-Guided Attention for Improved Polyp Segmentation摘要本文方法编码器模块Feature Enhancement ModuleLabel AttentiondecoderMulti-scale Feature Aggregation损失函数 实验结果 TGANet: Text-Guided Attention for Improved Polyp Segmentation 摘要…

2023年湖北建设厅特种工报名需要什么条件?报名流程是什么?

2023年湖北建设厅特种工报名需要什么条件&#xff1f;报名流程是什么&#xff1f; 建设厅特种工现在已经开始报名考试安排计划了&#xff0c;想要报考建设厅特种工的现在可以了解一下具体的流程以及相关信息哟。为自己报名考试做准备&#xff0c;下面启程别就来给您介绍一下建设…

从入门到精通:接口自动化测试中加密、解密和Sign签名的完整指南

【专业解读】接口自动化测试安全机制剖析&#xff1a;加密、解密和sign签名技术原理与应用&#xff01; 目录 摘要&#xff1a; 1. 加密 2. 解密 3. Sign签名 4. 示例 摘要&#xff1a; 在进行接口自动化测试时&#xff0c;加密、解密和sign签名是非常重要的步骤。这些过…

基于单片机的数字频率计设计

数字频率计概述 数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。它是一种用十进制数字显示被测信号频率的数字测量仪器。它的基本功能是测量正弦信号&#xff0c;方波信号及其他各种单位时间内变化的物理量。在进行模拟、数字电路的设计、安装、调试…

基于AT89C52单片机的温度检测设计与仿真

点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/87770153 源码获取 主要内容: 本设计是基于52系列的单片机进行的设计,可以完成温度的测控,可以实现实际温度与设定温度区域的比较,并在LED上相应的显示结果。设计过程在硬…

算法 DAY57 动态规划13 647. 回文子串 516.最长回文子序列

647. 回文子串 暴力解法&#xff1a;两层for循环&#xff0c;再加一个判断是否是回文子串&#xff0c;时间复杂度O(n3) 五部曲 1、 判断一个子字符串&#xff08;字符串的下表范围[i,j]&#xff09;是否回文&#xff0c;依赖于&#xff0c;子字符串&#xff08;下表范围[i 1,…

CLion安装(详细步骤+截图)

目录 一、CLion-2021.1.3.exe 下载 二、运行环境mingw-w64压缩包下载 三、 安装插件 ---- ide-eval-resetter-2.1.13压缩包下载 一、CLion-2021.1.3.exe 下载 Other Versions - CLion (jetbrains.com) 1、下载 2、更改路径 &#xff08;不要放在含有中文的路径下&a…