Scalable TCP 如何优化长肥管道

news2024/10/9 21:29:28

来看一个极简的拥塞控制实现 net/ipv4/tcp_scalable.c,去掉注释不到 50 行代码。它的介绍在 Scalable TCP-improving performance in highspeed networks。由于太简单,估计没什么人会在意。

本文说一下它背后的道理。

无论 bic/cubic,westwood,还是 scalable,都是针对 reno 的优化,reno 是大道,是本质,其它这些是针对长肥管道的拓展。reno tcp 的 aimd 过程很简单,每收到一个 ack(不考虑 ack 聚集和 delayed ack) 以及丢包时的行为如下:

w = w + 1 R T T w=w+\dfrac{1}{RTT} w=w+RTT1

w = w − 0.5 ⋅ w w=w-0.5\cdot w w=w0.5w

而 scalable tcp 更新为如下:

w = w + 0.01 w=w+0.01 w=w+0.01

w = w − 0.125 ⋅ w w=w-0.125\cdot w w=w0.125w

这么一个微小的改动,取消了 rtt 相关性,与 cubic 无异,但它到底 scalable 在哪,先来一个总体观感,先看 reno 和 scalable 分别在 rtt 10,20,50,100 的共存收敛:
在这里插入图片描述
随 rtt 的增加,管道不断变长,scalable tcp 的优势逐渐体现,当 rtt 巨大时,将 reno tcp 彻底压制,但在 rtt 很小时,reno tcp 体现出优势。这个结果的原因可从下图解释:
在这里插入图片描述
reno tcp 的锯齿随着 rtt 增加而变钝,scalable tcp 与 rtt 无关,万年不变。这意味着:

  • 更慢的增长期应对丢包 md 的代价更大;
  • 更大的 md 系数使锯齿均值更小。

但这也只是定性分析的结论,接下来用 response function 的曲线定量看结果。

scalable tcp 一次 probe 过程(一个锯齿)的时间(锯齿宽度)与 rtt 无关,只与 a,b 有关,求它:

W m i n ⋅ ( 1 + a ) t ⋅ ( 1 − b ) = W m i n W_{min}\cdot(1+a)^t\cdot(1-b)=W_{min} Wmin(1+a)t(1b)=Wmin

解得:

t = − ln ⁡ ( 1 − b ) ln ⁡ ( 1 + a ) t=-\dfrac{\ln(1-b)}{\ln(1+a)} t=ln(1+a)ln(1b)

接着求丢包率,按积分法,一个锯齿连同其下面的矩形的面积等于一个 probe 过程发送的数据量,该过程中丢 1 个报文,可用一个锯齿定义丢包率 p,用 Wmax 指代 W(用均值 (Wmax + Wmin) / 2 更合适),即:

p = 1 t ⋅ ( 1 − b ) ⋅ W + 1 2 ⋅ t ⋅ b ⋅ W = − ln ⁡ ( 1 + a ) ln ⁡ ( 1 − b ) ⋅ ( 1 − b 2 ) ⋅ W p=\dfrac{1}{t\cdot (1-b)\cdot W+\dfrac{1}{2}\cdot t\cdot b\cdot W}=\dfrac{-\ln(1+a)}{\ln(1-b)\cdot(1-\dfrac{b}{2})\cdot W} p=t(1b)W+21tbW1=ln(1b)(12b)Wln(1+a)

p 与 W 在式子里可对换,如果嫌这个式子太复杂,可化简它。按照泰勒展开:

W = − ( a − a 2 2 + a 3 3 − . . . ) ( − b − b 2 2 + . . . ) ⋅ ( 1 − b 2 ) ⋅ p ≈ a b ⋅ p = 0.08 ⋅ p W=\dfrac{-(a-\dfrac{a^2}{2}+\dfrac{a^3}{3}-...)}{(-b-\dfrac{b^2}{2}+...)\cdot(1-\dfrac{b}{2})\cdot p}\approx\dfrac{a}{b\cdot p}=0.08\cdot p W=(b2b2+...)(12b)p(a2a2+3a3...)bpa=0.08p

最后约等于的理由是 a 为 0.01,b 为 0.125,都很小。

同理,做出 reno tcp 的 W§ 表达式。依然按照面积的倒数求 p:

p = 1 ( 1 2 ⋅ W ) 2 + 1 2 ⋅ ( 1 2 ⋅ W ) 2 = 8 3 ⋅ W 2 p=\dfrac{1}{(\dfrac{1}{2}\cdot W)^2+\dfrac{1}{2}\cdot (\dfrac{1}{2}\cdot W)^2}=\dfrac{8}{3\cdot W^2} p=(21W)2+21(21W)21=3W28

因此:

W = ( 8 3 p ) W=\sqrt (\dfrac{8}{3p}) W=( 3p8)

在对数坐标系中分别画出 scalable tcp 和 reno tcp 的 W 关于 p 的图像,scalable 的原因就一目了然了:
在这里插入图片描述

如前文,p 是管道最大容量(锯齿面积的倒数)的度量,reno tcp 和 scalable tcp 是两种度量方法,显然后者在双对数坐标系中更加线性可扩展,这是因为斜率越接近 -1 扩展性越均衡,作为极端反例,如果斜率为 0,将会是水平线,扩展性为 0。

可见,reno tcp 过于躺平,相同的 p,在高 bdp 时表现不佳,而 scalable tcp 比较斜但不至于过陡,在高 bdp 表现良好,但在小 bdp 表现一般,稍微差于 reno tcp。

注意 scalable 和 reno 的 response 曲线的交点,常见的手段是,当 cwnd 大于该交点所指示纵坐标时,使用 scalable tcp,其它情况使用 reno tcp,但这显然不是本质,反而容易弄巧成拙。

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

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

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

相关文章

从0开始linux(10)——进程(2)进程属性

欢迎来到博主的专栏:从0开始linux 博主ID:代码小豪 文章目录 进程与操作系统并发与并行进程的状态 linux的进程状态 进程与操作系统 进程的状态可分为3种,分别是新建态,运行态,终止态,就绪态与阻塞态。状态…

【深度学习总结】热力图-Grad-CAM使用

Grad-CAM使用 介绍 Grad-CAM,全称为Gradient-weighted Class Activation Mapping,是一种用于深度学习模型可视化的技术,特别是在卷积神经网络(CNN)中。它通过生成热力图来展示模型在做出决策时关注的区域&#xff0c…

反应香精市场报告:预计2030年全球市场规模将达到264.3亿美元

“反应香精”通常是指通过在食品或饮料加工过程中发生的物理、化学或酶反应而产生的风味剂。可以有意添加这些香料以增强最终产品的味道、香气或其他感官方面。它们通常用于食品和饮料行业,以保持一致性、提高适口性或创造独特的风味特征。生产工艺香料的方法有多种…

[论文阅读] DVQA: Understanding Data Visualizations via Question Answering

原文链接:http://arxiv.org/abs/1801.08163 启发:没太读懂这篇论文,暂时能理解的就是本文提出了一个专门针对条形图问答的数据集DVQA以及一个端到端模型SANDY,模型有两个版本,Oracle和OCR。主要解决的问题是固定词表无…

树莓派3b安装ubuntu18.04服务器系统server配置网线连接

下载ubuntu镜像网址 img镜像,即树莓派官方烧录器使用的镜像网址 ubuntu18.04-server:ARM/RaspberryPi - Ubuntu Wiki 其他版本:Index of /ubuntu/releases 下载后解压即可。 发现使用官方烧录器烧录配置时配置wifi无论如何都不能使用&am…

AI的历史、现状与理论基础

在本篇文章中,我们将深入探讨人工智能(AI)的起源、现状以及理论基础,为读者提供一个全面的理解框架。 I. 引言 人工智能(AI)作为一门跨学科的研究领域,其目标是模拟、延伸和扩展人的智能。本文…

是德(KEYSIGHT) N9040A、N9040B 信号分析仪

Keysight N9040B 的特性和规格包括: 功能性 3 Hz 至 8.4、13.6 或 26.5 GHz;使用是德科技智能混频器将频率扩展至 110 GHz,使用其他供应商的混频器将频率扩展至 THz10 MHz(标准)、25、40、255 或 510 MHz 分析带宽全…

第十八篇:一文说清楚ICMP的底层原理

作为程序员或者网络工程师,有时候无法访问对方主机;导致这个现象的有很多原因,那要排查具体的网络原因,可能会用到ping的指令。而ping的底层实现是互联⽹控制报⽂协议(ICMP)。 ICMP 全称是 Internet Contr…

清华系“仓颉”来袭:图形起源:用AI颠覆字体设计,推动大模型商业化落地

大模型如何落地?又该如何实现商业化?这一议题已成为今年科技领域的焦点话题。 在一个鲜为人知的字体设计赛道上,清华创业公司“图形起源”悄然实现了商业变现:他们帮助字体公司将成本降低了80%,生产速度提升了10倍以上…

网站优化门槛低了还是高了?

自从2015年刚接触网站时,从一无所知到现在无人指导,一直跌跌撞撞走过来,当年花了1500元找了广东一个网友用织梦CMS做了一个门户网站,记得那时一星期没下楼,把网站折腾的千疮百孔,而终逐步熟悉网站建设与搜索…

手机怎样改网络ip地址?内容详尽实用

随着网络技术的发展,更改手机IP地址已成为一种常见需求。本文将详细介绍如何在不同网络环境下更改手机IP地址,包括移动网络和WiFi网络,以及同时适用于两种网络的方法,内容详尽实用,干货满满。 一、适用于移动网络&…

sentinel微服务部署

一.启动nacos和redis 1.查看是否有nacos和redis docker ps -a2.启动nacos和redis docker start nacos docker start redis-6379 docker ps 二.使用openfeign项目 这里看我另一个博客OpenFeign微服务部署-CSDN博客,我把SpringSessiondemo复制后改为sentinel1…

钡铼技术R10工业4G路由在智能交通中的应用

随着物联网技术的迅猛发展,智能交通系统(Intelligent Transportation System, ITS)正逐渐成为现代城市交通管理的重要组成部分。智能交通系统通过集成先进的信息技术、通信技术、传感技术以及计算机处理技术,实现对交通信息的实时…

抖店API接口系列(商品详情数据),Json数据格式参考

抖店API接口系列中的商品详情数据接口允许第三方应用通过编程方式访问抖音小店的商品数据。这些数据通常包括商品的基本信息、价格、库存、用户评价等,并且会以JSON数据格式返回。以下是一个抖店商品详情数据JSON格式的参考示例: { "status":…

共享购模式:绿色积分引领消费新潮流

绿色消费浪潮席卷全球,绿色积分作为一种创新的激励机制,正受到越来越多消费者的青睐。在众多消费模式中,共享购模式凭借独特的绿色积分体系,不仅推动了绿色消费,还为消费者带来了更多实惠与额外收益,成为市…

解数独Python

怎样解数独? Python def setBoardFunc(puz): global grid print("Original Sudoku") for i in range(0, len(puz), 9): row puz[i:i9] temp [] for block in row: temp.append(int(block)) g…

简单理解程序地址空间:Linux 中的内存映射与页表解析

ps: Linux操作系统对于程序地址,物理地址的处理,对于源码,我也看不大懂,只是截取当我们进程发生正常缺页中断的时候的调用情况。本文中所有的源码都是进行截取过的,如果大家感兴趣可以去下载源码。 在Linux 操作系统 …

【Linux】wsl2安装ubuntu并移动安装位置

本文首发于 ❄️慕雪的寒舍 1.启用wsl 首先是启用你的wsl,参考本站wsl安装centos8中的教程; 启用wsl后,更新一下,并设置版本为2; wsl --update wsl --set-default-version 2 # 设置wsl版本为2,不然可能安装失败2.安…

【FPGA开发】Modelsim仿真精度的坑

问题所在 最近在使用黑金的AXU3EG板卡对着正点原子ZYNQ7020的例程进行移植学习。但在编写tb代码以及使用modelsim进行仿真时出了问题,发现我的实际波形与正点的对不上,仔细测量一下波形发现,我的系统时钟是6ns周期,而不是理想中的…

某象异形滑块99%准确率方案

注意,本文只提供学习的思路,严禁违反法律以及破坏信息系统等行为,本文只提供思路 如有侵犯,请联系作者下架 该文章模型已经上线ocr识别网站,欢迎测试!!,地址:https://yxlocr.windy-rain.cn/ocr/slider/6 所谓的顶象异形滑块,是指没有采用常规的缺口,使用各种形状的…