TCP BIC 的拟合函数分析

embedded/2024/10/9 13:14:57/

前面说了这么多,还没有对 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/embedded/125085.html

相关文章

ubuntu中挂载点内存不足,分配不合理后使用软链接的注意事项

有时候因为最初挂载点设置的时候没有完美契合现在的空间需求&#xff0c;我们要想对空间进行重新划分&#xff0c;就会收到提示“卸载当前磁盘”或者“当前分区正在被使用”&#xff0c;查到的教程很多是从U盘启动gparted。或者因为只有一个硬盘&#xff0c;只能重装系统。 但…

K8s域名解析方案CoreDNS(K8s Domain Name Resolution Solution CoreDNS)

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 本人主要分享计算机核心技…

PostgreSQL升级:使用pg_upgrade进行大版本(16.3)升级(17.0)

1.pg_upgrade工具介绍 pg_upgrade 会创建新的系统表&#xff0c;并以重用旧的数据文件的方式进行升级。 pg_upgrade 的参数选项如下&#xff1a; -b bindir&#xff0c;--old-bindirbindir&#xff1a;旧的 PostgreSQL 可执行文件目录&#xff1b; -B bindir&#xff0c;--new-…

SQL Server—了解数据库和数据库的创建

了解数据库和数据库的创建 SQL Server是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统&#xff0c;实现了与WindowsNT的有机结合&#xff0c;提供了基于事务的企业级信息管理系统方案。 了解数据库 1. 服务器数据库需要配置几点&#xff1a; 1 …

如何从数码相机中恢复已删除的照片

照片恢复是恢复已删除照片的最佳工具&#xff0c;带有恢复 RAW 照片的选项。在本文中&#xff0c;我们将解释如何检索已删除的照片。 不仅适用于专业摄影师&#xff0c;而且对于像我们这样喜欢捕捉回忆的人来说&#xff0c;Moments 相机是一种重要的数字设备。可悲的是&#x…

[C#]winform部署官方yolov11-obb旋转框检测的onnx模型

【官方框架地址】 https://github.com/ultralytics/ultralytics 【算法介绍】 Yolov11-obb&#xff08;You Only Look Once version 8 with Oriented Bounding Boxes&#xff09;是一种先进的对象检测算法&#xff0c;它在传统的Yolov3和Yolov4基础上进行了优化&#xff0c;加…

Golang 类型转换之cast库介绍

类型转换 在Golang开发中&#xff0c;类型转换是个不可避免的过程&#xff0c;我们经常需要把字符串转成int、bool类型&#xff0c;使用原生提供的strconv标准包比较繁琐&#xff0c;还需要处理err异常&#xff1a; func ToInt(a string) int {b, _ : strconv.Atoi(a)return …

Windows 11 的 24H2 更新將帶來全新 Copilot+ AI PC 功能

10 月起率先向 Insider 推出。 微軟今日宣布 Windows 11 的 24H2 更新將從 10 月起陸續開放給不同用戶&#xff0c;其中將包括多項全新 Copilot AI PC 功能。首先是回爐重造的 Recall 回顧&#xff0c;官方在聽取社群意見後對安全性做了進一步加強。現在用戶可以自己選擇是否保…