当前位置: 首页 > article >正文

TCP BIC 的拟合函数分析

前面说了这么多,还没有对 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.kler.cn/news/336483.html

相关文章:

  • php常用的注释符号
  • Spring Cloud实战手册:从环境搭建到案例剖析
  • Solidity 设计模式:实现灵活与可扩展的智能合约架构
  • Python3 爬虫 中间人爬虫
  • 大语言模型 LLM 量化技术略解
  • 如何初步部署自己的服务器,达到生信分析的及格线2(待更新)
  • 代码随想录算法训练营day42
  • 无人机电力巡检:点亮电力巡检新视野!
  • 传奇GOM引擎架设好进游戏后提示请关闭非法外挂,重新登录,如何处理?
  • TCP ---滑动窗口以及拥塞窗口
  • 掌握 WPF 开发:基础、数据绑定与自定义控件
  • 【华为HCIP实战课程四】OSPF邻居关系排错时间和区域问题,网络工程师
  • 【Unity踩坑】UWP项目安装包认证失败
  • PEFT库和transformers库在NLP大模型中的使用和常用方法详解
  • 【Android 源码分析】Activity生命周期之onStop-2
  • 毕业设计 深度学习社交距离检测系统(源码+论文)
  • springboot+大数据+基于协同过滤算法的校园食堂订餐系统【内含源码+文档+部署教程】
  • QT系统学习篇(4)-对象树、定义自己的按钮
  • 毕业设计_基于SpringBoot+vue的社区博客系统【源码+SQL+教程+可运行】41002
  • Oracle架构之物理存储之审计文件