可恶的 TCP 加速

中午有朋友给我发来一个图片,早期 TCP 规范起草人,david reed 老爷子气坏了:
在这里插入图片描述

互联网本是一个以合作而共赢的网络,结果被一群损人不利己的自私的家伙以无知的方式将这基本原则破坏掉了。
我没有能力如此言简意赅且优雅地喷(jerks,stupid super typical 在我老家就是实傻逼的意思),但我确实早有此意,不过遗憾的是,我自己就是干这个的。
我不准备详细谈这个项目本身以免跑题,而这个跑题的代价显然是巨大的。我只谈技术本身而不染技术之于。
我在 歇斯底里 的中文文档中找一个形而上,但理性针对保持带宽行为的辩护。用以丢包率为公比的等比数列求出在丢包场景下的可靠传输一共需要发生多少数据:
在这里插入图片描述

1 / (1 - r) 是弥补丢包的固有损耗比,标称 rate 乘以损耗比就是保住带宽所需要的实际发送速率:
rate = rate * 1 / (1 - r)
最终 cwnd 就是根据这个算出来的:
cwnd = rate * rtt * gain
好家伙,还乘了一个 > 1 的 gain。
有了这个依据,作者给了一个形而上解释,看起来还很合理:
在这里插入图片描述

典型的加塞有理,嫌路不够宽。
总之,一切责任在运营商,特别最后一段,我和运营商的合同里签约了一个速率,但运营商没有兑现,我自己有办法,我没错。貌似是这个理,有点儿意思。
有趣的是,上面的截图只在中文文档里有,英文文档里没这部分(不需要?遗漏了?怕争议?),朋友想让我翻译一下发给 david reed 老爷子,我还真有这想法,但老爷子毕竟年纪大了,生气不好。
先摆立场,讨论才有意义,站在私人立场,截图里说的全对,但作者为啥还要解释,解释给谁听呢?两类受众,一类是全局视角的徘徊者,一类是受害者,我抢你也抢,大家一起把互联网堵死就完了。我当然不希望互联网堵死,虽然我也知道竞速抢带宽也不会堵死互联网(这种把戏我也经常用),但我仍站全局立场,否则就不用写这篇了,直接点个赞,加个五角星多好。
开车的都特别烦在高速上乱窜的傻逼,虽然 3 车道甚至 5 车道上多你一辆车不多,少你一辆车不少,但你乱窜万一怼死活该跟别人也没关系,堵了路就是你的错了。你还把你作死的经验一本正经布道,把不懂的当傻逼,这就是实傻逼了。
一开始的等比数列就错了,网络不是一根老化的漏水管,固定漏定量的水,相反,它是一根豪华崭新容量有限但绝对不漏的好水管。高速公路事故 99.9% 不是路面不整引发的,网络丢包超大概率是由拥塞引起。
和信道 “漏水” 丢包不同,拥塞丢包是正反馈,参考 codel 算法,拥塞时,发送越快,丢包越多,分分钟教你做人,立正挨打。如果你发现真能从等比数列受益,感谢统计复用吧,突发缓解,解放的是你,人人为你,你却咋就光想着自己呢。
稍微符合的模型是个类调和数列,总发送量比等比数列大很多,这意味着巨大的代价,所以还是要感谢突发。
要问这个 tcp-brutal 到底是个啥,简单一句话,它是个 “对抗丢包保带宽,不做拥塞控制的拥塞控制算法”。上面公式,rate 是你和运营商的签约带宽,r 是你用错误方式探测到实时丢包率,你要用 rate * 1 / (1 - r) 的速率发送而保住带宽。就像你在限速 120 的高速上,无论车多车少都要跑 120 一样,只是报文可以重传,人可不会。
好家伙,我曾说过,最快的方式就是不做拥塞控制,显然,保带宽的 tcp-brutal 就是一例,如果没效果纯属有 bug。
拜托!请了解一下什么叫统计复用,统计复用本身就包含了弹性超卖,运营商给你签约的是统计速率,但绝不是实时速率。但总有大部分人想不通这个底层逻辑。
交换机出口物理带宽 10Gbps,运营商服务签约带宽 1Gbps,这个交换机出口就只能服务 10 个人,每个用户在任何时刻均可保证使用 1Gbps,不多也不少,是这样吗?如果不是,某用户某时刻突发 5Gbps,其它 9 个用户还能兑现每人 1Gbps 吗?显然不能,但如果他们非要兑现,会发生什么?自己想。
遭遇突发,最佳博弈均衡就是集体慢,寡而均。骨干网看流数量,边缘网看单流量,多了才有统计意义,没有统计意义只能自损八百搏一千,上面看着呢,结果还是不患寡而患不均。
你又要说了,网络就是慢,我有办法为啥还不能用了。确实是运营商的问题,你应该花更多钱买更高质量的服务,这样对谁都好,你花钱买服务是交易,不必以损害全局公平性为代价。你想更快到深圳,坐飞机,坐高铁啊,开着你那破宝马奥迪特斯拉作死就不对了,你快了,别人躲着你就慢了,别人不躲着你,你俩都死了。
多说多少该不懂的还是要一意孤行,上有国内各互联网大厂 CDN 加速传输优化团队 KPI,下有个人小作坊魔改,各种一键加速满天飞,虽然这里面大多数人我都认识,关系也还不错,但背地里该喷他们还得喷。
浙江温州皮鞋湿,下雨进水不会胖。

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

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

相关文章

【赠书第2期】嵌入式虚拟化技术与应用

文章目录 前言 1 背景概述 2 专家推荐 3 本书适合谁? 4 内容简介 5 书籍目录 6 权威作者团队 7 粉丝福利 前言 随着物联网设备的爆炸式增长和万物互联应用的快速发展,虚拟化技术在嵌入式系统上受到了业界越来越多的关注、重视和实际应用。嵌入式…

第八章《搞懂算法:逻辑回归是怎么回事》笔记

8.1 如何理解逻辑回归 逻辑回归根据给定的自变量数据集来估计事件的发生概率,由于结果是一个概率,因此因变量的范围在 0 和 1 之间。 逻辑回归的与线性回归一样,也是以线性函数为基础的;而与线性回归不同的是,逻辑回…

【广州华锐互动】VR影视制片虚拟仿真教学系统

随着虚拟现实(VR)技术的不断发展,VR在影视制片教学中的应用场景也变得越来越丰富。本文将介绍VR在影视制片教学中的常见应用场景及其意义,并通过案例分析来更好地展示其应用前景。 在影视制片教学中,VR可以提供一种沉浸式的制作体验。其中&am…

Unity 3D 调整cube的颜色

1.选中Assets后,右键->Create->Material 2.调整Material的颜色,然后将Material拖到对应的cube上

微头条项目实战:通过postman测试登录验证请求

1、CrosFilter package com.csdn.headline.filters; import jakarta.servlet.*; import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; public class CrosFilter implements Filter {/*** 过滤器方法,用于处理HTTP请求* param servletReq…

【Orangepi Zero2 全志H616】驱动舵机控制 、Linux定时器(signal、setitimer)

一、SG90舵机开发 舵机基本介绍 二、Linux定时器 signal 函数setitimer 函数原型signal、setitimer函数API调用 三、舵机 软件PWM实现 一、SG90舵机开发 舵机基本介绍 如下图所示,最便宜的舵机sg90,常用三根或者四根接线,黄色为PWM信号控…

python爬虫(数据获取——双R)

静态资源加载 静态资源给了请求头和url即可 动态资源加载 headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 } url "https://www.xinpianchang.com/api/xpc/comments/article…

flink的带状态的RichFlatMapFunction函数使用

背景 使用RichFlatMapFunction可以带状态来决定如何对数据流进行转换,而且这种用法非常常见,根据之前遇到过的某个key的状态来决定再次遇到同样的key时要如何进行数据转换,本文就来简单举个例子说明下RichFlatMapFunction的使用方法 RichFl…

智慧工地综合管理平台-项目整体需求规格说明书

引言 定位与目标 智慧工地是一种现代化的管理方式,目标是通过应用现代科技手段,对施工现场的设备、人员、物资等信息全面掌控,减少工地事故的发生,提高施工质量和安全性,同时也能够降低成本,提高效益,实现建筑施工的数字化、智能化和可持续发展,为城市建设和社会发展…

【STM32 PWM输出+串口调整PWM周期和占空比】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、PWM是什么?1. PWM 图解二、认识STM32的PWM功能1.哪些定时器有PWM输出功能1.1 高级定时器,7路PWM输出,3组是互补输出&…

0基础两小时建网站

​作者主页 📚lovewold少个r博客主页 ⚠️本文重点:0基础2小时搭建个人网站 👉【C-C入门系列专栏】:博客文章专栏传送门 😄每日一言:宁静是一片强大而治愈的神奇海洋! 目录 前言 第一步 环境…

第12章 PyTorch图像分割代码框架-2

模型模块 本书的第5-9章重点介绍了各种2D和3D的语义分割和实例分割网络模型,所以在模型模块中,我们需要做的事情就是将要实验的分割网络写在该目录下。有时候我们可能想尝试不同的分割网络结构,所以在该目录下可以存在多个想要实验的网络模型…

11 # 手写 reduce 方法

reduce 使用 reduce() 方法对数组中的每个元素按序执行一个提供的 reducer 函数,每一次运行 reducer 会将先前元素的计算结果作为参数传入,最后将其结果汇总为单个返回值。 第一次执行回调函数时,不存在“上一次的计算结果”。如果需要回调…

运行obotframework-ride控制台报错module ‘urllib‘ has no attribute ‘Request‘

背景:Python3.8robotframework-ride1.7.3.1,运行报错module urllib has no attribute Request 原因: 解决:升级robotframework-ride到2.0以上。或者降级python到3.7。

基于SSM的演唱会购票系统的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue、HTML 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是…

大数据学习之一文学会Spark【Spark知识点总结】

文章目录 什么是SparkSpark的特点Spark vs HadoopSparkHadoopSpark集群安装部署Spark集群安装部署StandaloneON YARN Spark的工作原理什么是RDDRDD的特点Spark架构相关进程Spark架构原理 Spark实战:单词统计Scala代码开发java代码开发任务提交 Transformation与Acti…

自动控制原理--面试问答题

以下文中的,例如 s_1 为 s下角标1。面试加油! 控制系统的三要素:稳准快。稳,系统最后不能震荡、发散,一定要收敛于某一个值;快,能够迅速达到系统的预设值;准,最后稳态值…

清凉油市场现状及未来发展趋势

清凉油市场一直以其庞大的规模和快速增长的势头受到人们的关注。无论是消费者对健康生活方式的追求,还是中国作为全球最大市场的地位,都为清凉油市场的持续发展注入了强大的动力。随着人们对健康意识的提升和对保健产品需求的增加,清凉油市场…

算法?认识一下啦

一、什么是算法? 算法 ,是对特定问题求解方法和步骤的一种描述。它是有限指令的有限序列,其中每个指令表示一个或多个操作。 算法和程序的关系 算法​是解决问题的一种方法或一个过程,考虑如何将输入转换成输出,一个…

功能更新|Leangoo领歌免费敏捷工具支持SAFe大规模敏捷框架

Leangoo领歌是一款永久免费的专业的敏捷开发管理工具,提供端到端敏捷研发管理解决方案,涵盖敏捷需求管理、任务协同、进展跟踪、统计度量等。 
 Leangoo可以支持敏捷研发管理全流程,包括小型团队敏捷开发,规模化敏捷SAFe&#xf…