TCP BIC 的拟合函数分析

news/2024/12/22 0:05:58/

前面说了这么多,还没有对 bic 的数学性质进行分析,本文补上。

tcp reno 完全依赖 ack 时钟以 rtt 为单位线性增窗,增窗速度与 rtt 负相关,如何在 rtt 比较大时增加增窗速度,这就是 bic,以二分替换遍历。

用以下函数拟合 bic 增窗过程,设 Wmax 为 a, β 为 md 系数:

y = { β ⋅ a + ( 1 − β ) ⋅ a ⋅ ( 1 − 1 2 x b ) , 0 < x < 8 ⋅ b a + ( 1 − β ) ⋅ a ⋅ 2 x − 16 b b , 8 ⋅ b ≤ x < 15 ⋅ b a + ( 1 − β ) ⋅ ⋅ a ∗ 2 − 1 + x − 15 ⋅ b , 15 ⋅ b ≤ x y=\begin{cases}\beta\cdot a+(1-\beta)\cdot a\cdot(1-\dfrac{1}{2^{\frac{x}{b}}}),&0<x<8\cdot b\\a+(1-\beta)\cdot a\cdot 2^{\frac{x-16 b}{b}},&8\cdot b\le x<15\cdot b\\a+(1-\beta)\cdot \cdot a*2^{-1}+x-15\cdot b,&15\cdot b\le x\end{cases} y= βa+(1β)a(12bx1),a+(1β)a2bx16b,a+(1β)a21+x15b,0<x<8b8bx<15b15bx

注意到指数 x,x - 16b 需要除以 b,按照 rtt 缩放,这样就映射到了均匀的单位时间。看起来还行,动图如下:
在这里插入图片描述

说明一下细节。

这个 bic 曲线只是一个拟合曲线,模拟的是一个递推迭代过程,因此它是一个分段函数,8b,15b 属于魔数,意思是 “x 迭代到 8b 的时候,增量就足够小了”。

在 probe 阶段其实就是个 slow start 过程,显然不行,所以要在稍微过瘾后悬崖勒马,退回到线性增窗。

肉眼可见,逼近 Wmax 的快慢只与 rtt 相关,如图所示,b 越大,竖着的那条线距离 y 轴越远,表示逼近越慢,这与 a = Wmax 本身无关,这是 bic rtt 不公平的根源。

与前文解析的 cubic 曲线完全相反,cubic 曲线的逼近速度只与 Wmax 相关,与 rtt 无关,K 的表达式只有 Wmax 变量,C,β 确定,曲线的形状就确定了,依 Wmax 不同,逼近过程的不同只表现在 “截取 cubic 曲线的不同位置”。

总之,各有各的好,也各有各的不妙。但要记住本质,不管是 bic 还是 cubic,不应过分关注数学表达本身,它们只是处理上的技巧,数学是工具,本质上要达到的目标是,尽量快速逼近 Wmax,谨慎适当 probe 新带宽,数学上拟合的曲线核心特征是,search 要上凸,probe 要综合考虑下凸或上凸,取决于 “势”,这个哲学话题后文详述。

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


http://www.ppmy.cn/news/1534549.html

相关文章

【重学 MySQL】五十一、更新和删除数据

【重学 MySQL】五十一、更新和删除数据 更新数据删除数据注意事项 在MySQL中&#xff0c;更新和删除数据是数据库管理的基本操作。 更新数据 为了更新&#xff08;修改&#xff09;表中的数据&#xff0c;可使用UPDATE语句。UPDATE语句的基本语法如下&#xff1a; UPDATE ta…

计算机视觉学习---图像增强

以下是一个简要的学习路线图&#xff1a; 图像增强学习路线 基础知识 数字图像基础色彩空间&#xff08;RGB、HSV等&#xff09;图像矩阵及其表示 基本技术 直方图均衡化 案例&#xff1a;对比度增强Gamma校正 案例&#xff1a;非线性亮度调整伽马变换 案例&#xff1a;低亮度…

spring揭秘24-springmvc02-5个重要组件

文章目录 【README】【1】HanderMapping-处理器映射容器【1.1】HanderMapping实现类【1.1.1】SimpleUrlHandlerMapping 【2】Controller&#xff08;二级控制器&#xff09;【2.1】AbstractController抽象控制器&#xff08;控制器基类&#xff09; 【3】ModelAndView(模型与视…

springbot,JWT令牌的使用。实现http请求拦截校验。

JWT 由三部分组成&#xff0c;用点&#xff08;.&#xff09;分隔 Header&#xff08;头部&#xff09; Payload&#xff08;负载&#xff09;Signature&#xff08;签名) 一、原理 Jwt原理其实很简单&#xff0c;在后端首先要有个拦截器&#xff0c;他会拦截所有http请求&…

方舟开发框架(ArkUI)可运行 OpenHarmony、HarmonyOS、Android、iOS等操作系统

ArkUI 是华为开发的一套声明式 UI 开发框架&#xff0c;用于构建分布式应用界面。ArkUI-X 是对 ArkUI 框架的扩展&#xff0c;支持开发者使用一套代码构建支持多平台&#xff08;包括 OpenHarmony、HarmonyOS、Android、iOS&#xff09;的应用。 一、方舟开发框架的ArkUI-X Ark…

quiz: python网络爬虫之规则1

下面答错了&#xff1a; B c 8A&#xff0c; 9A

10.3 Linux_并发_创建守护进程

守护进程创建方法 守护进程是什么&#xff1a; 守护进程又叫精灵进程&#xff0c;是一个生存期较长的进程&#xff0c;通常独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。它是一个在后台运行的孤儿进程&#xff0c;这使得守护进程不受终端的信息影响&…

C# 字符串(String)的应用说明一

一.字符串&#xff08;String&#xff09;的应用说明&#xff1a; 在 C# 中&#xff0c;更常见的做法是使用 string 关键字来声明一个字符串变量&#xff0c;也可以使用字符数组来表示字符串。string 关键字是 System.String 类的别名。 二.创建 String 对象的方法说明&#x…