谈谈越来越无效的拥塞控制

news2024/11/16 13:51:40

简单看一个图:
在这里插入图片描述

它不是互联网本身,但这是典型网络的必要组件,它决定了 flow 如何从从一边流向另一边:一条 flow 经过交换节点通过 NIC 被导入一条链路前在 buffer 中排队。

现如今大多数工程师的工作都在折腾那个单独的盒子,少部分人关注 flow 和盒子的相互作用。
整体来看,flow 随接入终端(确切说应该是 app)的增加指数级增加(规模为 n 的网络增加一个节点,理论上增加 n 条 flow),这意味着 NIC 带宽即使不能随着终端接入速度同步增长,至少它也应该足够快地升级,尽力满足快速增长的带宽需求,否则 buffer 则要大增,而 buffer 只能提供传输假象,无限增加的时延揭穿了这假象。

因此,我们合理假设,NIC 带宽在快速增加,而 buffer 则相对保持稳定。

这意味着交换节点 buffer 排空速度越来越快,但与此同时,flow 的 rtt 却至多保持不变(传播时延),还会稍微增加(排队时延)。拥塞表现在 buffer 排队,经典端到端拥塞控制需要将 buffer 排队这件事反馈到端,它固有滞后,拥塞信号的准确性取决于两点:

  • buffer 排空速度,越慢越好。
  • 信号反馈速度,越快越好。

打个比方,如果 buffer 在拥塞信号出发不久就迅速排空,那么这个信号就失效了,另一方面,即使 buffer 排空速度不变,信号反馈的速度很慢,这个信号的滞后性又严重了。

但若要取得好的传输体验,buffer 排空速度应该越快越好才对,拥塞本身和拥塞控制是矛盾的。想要更精确控制,就要慢一点,为了控制而控制。

so?经典拥塞控制将越来越失效。

事件持续时间和该事件的反馈时间的比值是核心,该比值越大,信息越精确,该比值越小,随机性越高。典型的例子是 CSMA/CD 和交换机,前者场景下该比值很小,引入随机就够,别的什么都别做,就像猜硬币,盲猜 50% 就 OK,任何启发只能削弱准确性,而后者场景下该比值非常大,便可以采用精确调度的方式。

另一个例子是足球和射击,足球速度慢,和球员奔跑速度在同一量级,球在飞行时,球员有足够时间重新布局位置,对足球比赛更多的是在宏观统计上的控制,而不存在针对某人,某坐标的精确控制,而射击则是另一个极端是射击,由于子弹速度远大于被射物体的移动速度,所以采用梭哈方式就更浪费,因为信息准确,可信度高。

现如今的互联网越来越像足球比赛,而不是射击。

至于数据中心,按以上原则倾向于启发精确控制,数据中心拥塞控制模型和广域网很不同,它更依赖精确信息,这就是为什么 google swift 好的原因,而广域网拥塞控制,足够模糊的 cubic 就够了。bbr 是另一种企图,它希望在模糊的环境做精确控制,也只有 google 自己的 B4 可以满足它了。

有点悲观,但只针对传统的,经典的拥塞控制领域,未来的另一条路完全是另一个方式,谁先发现谁抢跑。

和本文结合(联合,而不是反驳)的是另一个观点,随着带宽增加,app-limited 将越发可能,资源丰富时资源匮乏时的控制方式是根本不同的,早在农业时代,动力是稀缺的,人们倾向于节省动力,发展是收敛的,到了工业时代,动力是丰富的,人们倾向于不在乎甚至浪费动力,发展是粗旷野蛮的,就这个意思。

本文启发自昨天中午发的一个朋友圈:
在这里插入图片描述
在这里插入图片描述

皮鞋没有蹬上,露着白袜子。
浙江温州皮鞋湿,下雨进水不会胖。

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

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

相关文章

231112-中文错别字识别与纠正问题的大模型与小模型调研

A. 引言 当前,以ChatGPT为代表的大语言模型(Large Language Models, LLMs)正引领着新一轮工业革命。ChatGPT最开始的研究领域隶属于NLP的一个子问题,其输入是text,输出也是text。在从文本输入到文本输出的诸多应用场景…

C语言从入门到精通之【概述】

#include指令和头文件 例如#include <stdio.h>&#xff0c;我们经常看到C文件最上面会有类似这样的语句&#xff0c;它的作用相当于把stdio.h文件中的所有内容都输入该行所在的位置。实际上&#xff0c;这是一种“拷贝-粘贴”的操作。 #include这行代码是一条C预处理器…

Smart Link 和 Monitor Link应用

定义 Smart Link常用于双上行链路组网&#xff0c;提高接入的可靠性。 Monitor Link通过监视上行接口&#xff0c;使下行接口同步上行接口状态&#xff0c;起到传递故障信息的作用。 Smart Link&#xff0c;又叫做备份链路。一个Smart Link由两个接口组成&#xff0c;其中一个…

木疙瘩踩坑日记-容易忽略的一些BUG

在一开始玩家务必很清楚这三个概念 图形&#xff1a;舞台上元素的最小单位。软件自带的以及外部导入的图片默认都是图形&#xff01;最朴素的元素&#xff01;可以添加预制动画、关键帧动画、进度动画&#xff08;软件自带的形状&#xff09; 元件&#xff1a;一个可以内部封…

高性能收发原始数据包的框架(Netmap)

一、Netmap 简介 Netmap 是一个高性能收发原始数据包的框架&#xff0c;由 Luigi Rizzo 等人开发完成&#xff0c;其包含了内核模块以及用户态库函数。其目标是&#xff0c;不修改现有操作系统软件以及不需要特殊硬件支持&#xff0c;实现用户态和网卡之间数据包的高性能传递。…

Git系列之分支与标签的使用及应用场景模拟

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是君易--鑨&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的博客专栏《Git实战开发》。&#x1f3af;&#x1f3af; &a…

【网络奇遇记】我和因特网的初相遇2 —— 三种交换方式

&#x1f308;个人主页&#xff1a;聆风吟 &#x1f525;系列专栏&#xff1a;网络奇遇记、数据结构 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 前言一. 电路交换1.1 电路交换讲解1.2 电路交换实例 二. 分组交换1.1 分组交换讲解1.2 分组交换实例…

Go 14岁了

今天我们庆祝Go开源十四周年&#xff01;Go度过了美好的一年&#xff0c;发布了两个功能齐全的版本和其他重要的里程碑。 我们在2月份发布了Go 1.20&#xff0c;在8月份发布了Go 1.21&#xff0c;更多地关注实现改进而不是新的语言更改。 在Go 1.20中&#xff0c;我们预览了配置…

基于Python+Django的图书管理系统

项目介绍 图书是人类文明传播的一个重要方式&#xff0c;很多历史悠久的文明都是通过图书来进行传递的&#xff0c;虽然随着时代的进步电子信息技术发展很快&#xff0c;但是纸质图书的地位仍然是非常稳固的&#xff0c;为了能够让知识拥有更加快捷方便的传递方式我们开发了本…

Typora-PicGo-七牛云图床

Typora-PicGo-七牛云图床 问题描述&#xff1a; 每次使用Typora写完笔记后&#xff0c;想要将笔记上传至CSDN会发现一个问题&#xff0c;由于没有配置图床&#xff0c;笔记中的图片需要一张一张的上传到CSDN&#xff0c;非常麻烦&#xff0c;若使用PicGo并搭配七牛云的10G免费…

Django配置文件,request,链接mysql方法,Orm简介

三板斧问题(views.py) HttpResponse # 返回的是字符串render # 渲染一个HTML静态文件&#xff0c;模板文件redirect # 重定向的 在视图文件中得视图函数必须要接收一个形参request&#xff0c;并且&#xff0c;视图函数也要有返回值&#xff…

Linux - 基础IO(重定向 - 重定向模拟实现 - shell 当中的 重定向)- 下篇

前言 上一篇博客当中&#xff0c;我们对 文件 在操作系统当中是 如何就管理的&#xff0c;这个问题做了 详细描述&#xff0c;本篇博客将基于上篇 博客当中的内容进行 阐述&#xff0c;如有疑问&#xff0c;请参考上篇博客&#xff1a; Linux - 基础IO&#xff08;Linux 当中…

matlab 多自由度的车辆垂向振动模型 车辆平稳性研究

1、内容简介 略 17-可以交流、咨询、答疑 多自由度的车辆垂向振动模型 多自由度的车辆垂向振动模型&#xff0c;包含四分之一车体模型、半车模型和整车模型 垂向振动模型、四分之一车体模型、半车模型和整车模型 2、内容说明 略 3、仿真分析 略 4、参考论文 略 链接&…

第七章 块为结构建模 P3|系统建模语言SysML实用指南学习

仅供个人学习记录 块行为建模 块提供了行为情境&#xff0c;行为这个 SysML 词条覆盖了块如何处理输如/输出和其内部状态改变的所有描述。 块可以指定某个行为作为其主行为或者分类器行为&#xff0c;该行为在块实例化后启动执行。其他行为可以指定为方法&#xff0c;提供了处…

人机交互——自然语言生成

自然语言生成是让计算机自动或半自动地生成自然语言的文本。这个领域涉及到自然语言处理、语言学、计算机科学等多个领域的知识。 1.简介 自然语言生成系统可以分为基于规则的方法和基于统计的方法两大类。基于规则的方法主要依靠专家知识库和语言学规则来生成文本&#xff0…

【Redis】list列表

上一篇&#xff1a; String 类型 https://blog.csdn.net/m0_67930426/article/details/134362606?spm1001.2014.3001.5501 目录 Lpush LRange Rpush Lpop Rpop Lindex Ltrim Lset 列表不存在的情况 如果列表存在 Linsert ​编辑 在………之前插入 在……后面插入…

Windows系统安装Redis、配置环境变量

系列文章目录 第一章 Java线程池技术应用 第二章 CountDownLatch和Semaphone的应用 第三章 Spring Cloud 简介 第四章 Spring Cloud Netflix 之 Eureka 第五章 Spring Cloud Netflix 之 Ribbon 第六章 Spring Cloud 之 OpenFeign 第七章 Spring Cloud 之 GateWay 第八章 Sprin…

【 第十一章】软件设计师 之 面向对象设计与结构化分析设计

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 备考资料导航 软考好处&#xff1a;软考的…

域名无法访问了,如何找回浏览器的缓存

背景需求 双十一即将来临&#xff0c;这意味着我购买了三年低配的阿里服务器&#xff0c;而它的服务期限也即将到期。为了提前做好准备&#xff0c;我在一周前对静态网站进行了备份&#xff0c;并成功地使用了Vercel进行部署&#xff08;已经有了域名&#xff09;。相比于付费…

腾讯云3年轻量应用服务器2核2G4M带宽540元,它来了

腾讯云轻量应用服务器特价是有新用户限制的&#xff0c;所以阿腾云建议大家选择3年期轻量应用服务器&#xff0c;一劳永逸&#xff0c;免去续费困扰。腾讯云轻量应用服务器3年可以选择2核2G4M和2核4G5M带宽&#xff0c;3年轻量2核2G4M服务器540元&#xff0c;2核4G5M轻量应用服…