- 博客(2214)
- 资源 (4)
- 收藏
- 关注
原创 闲谈IPv6系列文章集锦
本文总结一个目录提纲,只要是给自己看的,记录一下哪些东西已经总结过了。闲谈IPv6-6to4隧道和ISATAP隧道: https://blog.csdn.net/dog250/article/details/88644797闲谈IPv6-说说IPv6地址分配和BGP: https://blog.csdn.net/dog250/article/details/88430415闲谈IPv6...
2019-03-18 22:38:43 42264 34
原创 从双斜率,野人除法看性能优化
最终,当你深入探究二分,三分,五分有什么区别时,你会发现它们都是 log 函数,这就是 O(logn) 的由来。核心是什么,核心不是二分法,而是 “你希望在现有基础上做增量,跑起来就想更快,要有加速度”,“现有基础” 是本质,炒股赔了的也是因为这。如果你的知识储备足够,仔细看这两个算法的迭代过程,会发现什么,这就是 Reno TCP 到 BIC TCP 的迭代过程,div1 属于遍历逼近除数,div2 属于二分逼近除数。回过头来看,慢启动,BIC TCP,Cubic TCP,双斜率,是不是就是一回事了?
2024-10-27 21:50:24 1271
原创 K 线图下的 BBR
而蜡烛图分析 BBR 带宽变化的原因则可看出很多细节,比如通过实体长度,上影线,下影线长度识别随机波动,随机噪声,微突发,持续拥塞,逐渐拥塞,新流侵入,退出,探测比例,公平比例。简单介绍一下蜡烛图:かい 音译(只有中国在内少数国家叫 ‘kei-sen’,其余叫 ‘蜡烛’ 图,kei-sen 发音也包括 ‘线’ 的发音,疑似源于粤语音读),始于日本,一看就是日式风格,类似日本工业产品说明书,早期为了统计米价走势,如今普遍用于金融领域。浙江温州皮鞋湿,下雨进水不会胖。
2024-10-26 21:55:06 1033
原创 对传输质量评价体系的评价
拿出那个时间段的各类画像指数,如果突发拥塞凸显阳性,就要去查一下哪个业务故障引发了突发,如果随机高丢包凸显阳性,就要查一下交换机网口,光纤,如果只是一两个随机丢包,良好画像凸显阳性,这个时候就有必要给咨询者好好讲讲 TCP 重传原理了,彼此都有时间的话。完成这种预处理后,还需抽出固定画像指数类型的显式特征,比如持续拥塞,逐渐拥塞,随机高丢包,随机低丢包,良好等,分别对应这些指数中,显式特征只要凸显阳性(偏高),就意味着指数描述的事情一定正在发生。我一向相信 “横竖一颠倒,拨云见日”,这几乎成了必胜法宝。
2024-10-24 17:41:03 1856
原创 传输质量评价体系简介
传输协议优化圈子多年来仍在试图通过单一指标优化单一算法,最初我也持这种想法,当我发现任何单一指标都易变不稳定后,我决定多看几个指标,我曾基于 Bloom Filter 用多个阳性结果 “与”,但效果不佳,因为连续的度量并非非此即彼,很难在离散的 True or False 间定夺,直到采用 “指数” 的思想,让阳性特征自动推高显式指标,我只需要观察指数曲线即可剔除单一指标经常带来的假阳性误判。其实在任何以统计学为基础的领域,如气象学,社会学,互联网,底层逻辑相当一致,在网络传输领域,也有类似方法。
2024-10-22 18:07:09 2565
原创 引入一个链路指数指导拥塞控制
很多年前,我提到过一个基于 Bloom Filter 的算法,同时对多个指标进行监控评估,比如时延,抖动,丢包率等等,当它们的度量同时超过拥塞阈值时才判定为拥塞,否则视为随机丢包不予理会。将 “篮子” 里的所有项目求和以表示丢包的性质拥塞程度,用 sigmoid 函数归一化项目度量和指数本身,项目度量和接近 “1*项目数量” 表示拥塞,指数接近 0.5,项目度量和接近 0 表示随机丢包,指数接近 1。给出链路画像,拥塞控制算法便可以更准确应对丢包,参照链路画像能相对明确将丢包归为随机丢包还是拥塞丢包。
2024-10-18 18:04:14 3865
原创 信息和介质的辩证
晋语安阳方言的几个口语例子,“最后” 口语读作 “momoyier”,“最前” 读作 “jinjintouerji”,“边上” 读作 “bianerbianerbianer”,“一点” 读作 “xixixier”,“一坨” 读作 “yeguoluede”,指示位置时都会有后缀 “iang”,它是写不出来的,但如果硬写,还是会写成 “上”,或者 “昂”,很明显这是不正确的,但如果假以时日太久,几百年后的人会认为 “内昂”,“寄昂”,“扽囊” 是完整的指示位置的词汇了。设计一个网络传输协议时,我们不能盲目。
2024-10-16 19:50:24 3848
原创 速度的本质
当我们用误解的方式表示速度时,我们可以理解 10km/h,100Mbps 这种表述,毕竟本来就表示 “单位时间内的量”,但如果我们用真正的速度表达式表示速度时,我们就很难读出它们了,这种情况下没有单位时间的概念,分母。我们常常用时速表示运动的快慢,用带宽来表示数据收发的快慢,即 “速度”,但实际上它们都是 “量” 而不是 “量的变化率”,更确切的说应该叫做 “时里程” 和 “吞吐”,即单位时间内行驶的距离和收发的数据量。所以,我们一直说的速度原来只是速度积分的平均值,本质上是一个量。是一个无穷小量,分子。
2024-10-15 17:42:31 3967
原创 H-TCP 的效率和公平性
minrtt,即 BDP,使带宽不至于因过度收敛而浪费,这就是信息注入的作用,H-TCP 思路类似,但采用了更为巧妙的做法,直接使用 minrtt / maxrtt 作为 β,更加直观,maxrtt - minrtt 就是最大排队时延,它的占比恰好就是要 drain 掉的部分。MD 收缩越激烈,收敛越快,但可能收缩到 BDP 之下造成带宽利用率不足,因此 β 要适中。H-TCP 的效果是,它实时监控带宽的变化,根据这个变化率设置 β 的值。简单模拟一下 β 的效果。至于 α,看公式,不多说,一样的套路。
2024-10-15 10:16:09 4474
原创 BBR ProbeRTT 和 ProbeBW 相互作用
第一个很容易理解,最后再说,看第二个,“先退出” 受测量的影响,BBR 依赖 RTT 测量,而测量则依赖实现,要是测量实现出了问题,BBR 的公平性和稳定性则无法保障,这就是为什么 BBR 不能自证稳定的原因之一,而 AIMD 则没有该问题。如本文所述,BBR 自身依赖实现的良好,但仍有很多问题未能论证,比如同步 ProbeBW 对 buffer 的占用率以及叠加丢包的影响,以及 ProbeRTT 行为的确定性等。挺有趣,意思是 ProbeRTT 的时间相位差对公平性的影响。
2024-10-14 12:39:00 4911
原创 BBR 的不公平性
值得注意的是,如何确保 K/rtt > 1,另外,为什么我用 K/srtt(或 irtt) 而不是 K/minrtt,理由是这里有个可用的负反馈,如果 srtt 过大了,说明 queuing 趋向严重,g = K/srtt 趋向变小,减少 queuing。让 RTT 和 gain 反比即可,这就又是一个调参的体力活,无非就是搜集现网数据,拟合这些数据,获得一个最佳的 k = gain * RTT,让 k 变成可调的,随便给个建议值,自己调去吧。浙江温州皮鞋湿,下雨进水不会胖。
2024-10-12 19:31:18 4690
原创 一张图里看 Reno,CUBIC 和 BBR
TCP 的响应函数很多做新样式 RDMA 的人都没听过,但却是非常重要的,它直接导出了网络容量和发送窗口之间的关系,而网络容量又由 buffer,rtt,丢包率 共同决定。所有的算法都统一到这一个图里了,此外还可以加上 Scalable TCP,HSTCP 等,一张图里看一切。但值得注意的是,BBR 的 inflight 与 p 的关系是随行的,你必须给定一个 BDP 才能讨论,即 BBR 起始位置的 y 坐标就是 BDP,随着 p 的增加,曲线的 y 坐标给出 inflight。
2024-10-11 12:04:57 5827
原创 从 Reno TCP 到 Scalable TCP,HighSpeed TCP
注意与标准 Reno TCP 的 response curve 黄色线平行的不同 a,b 参数线,图例上都有,它们与 HSTCP 的 response curve 蓝色粗线均有交点,选择几个典型的 a,b 参数,获得各交点的 w 坐标,以这些坐标为界,当 cwnd 达到某个 w 界标后,采用该界标的 a,b 参数直到 cwnd 到达下一个界标 w。该问题产生的根源在于,设计单纯的端到端拥塞控制算法时只考虑了拥塞丢包(buffer 溢出)的因素,并未考虑底层介质误码造成的随机丢包。需要让这条线陡峭起来。
2024-10-10 19:27:42 6125
原创 Scalable TCP 如何优化长肥管道
如前文,p 是管道最大容量(锯齿面积的倒数)的度量,reno tcp 和 scalable tcp 是两种度量方法,显然后者在双对数坐标系中更加线性可扩展,这是因为斜率越接近 -1 扩展性越均衡,作为极端反例,如果斜率为 0,将会是水平线,扩展性为 0。可见,reno tcp 过于躺平,相同的 p,在高 bdp 时表现不佳,而 scalable tcp 比较斜但不至于过陡,在高 bdp 表现良好,但在小 bdp 表现一般,稍微差于 reno tcp。同理,做出 reno tcp 的 W§ 表达式。
2024-10-09 17:55:38 6161
原创 弱网(不限于 Wi-Fi)环境的传输优化分析
弱网传输优化一直是从顶会到会议室争论的焦点,但所出之策全都纯属屎上雕花,就好比在教你如何用五菱宏光在颠簸的乡道开出 120 码的时速一样,本身就是弱网,难以预测,若难以预测,两个办法,一就是不预测,二就是保守预测,问题就解了,剩余的钱财和精力买更好的设备,升级网络则已。由是观之,在 p 比较大时,激进程度 r 会带来正向影响,即快速恢复丢失的数据的同时,并不损失多少带宽,故 E 是递增的,而当 p 比较小时,激进程度只做一些无用功,无论如何 E 都会递减。对,这就是直觉,但这是错觉。p 很大时,网络恶化,
2024-10-07 12:08:28 7103
原创 从介质失效看互联网时代的信息过载
来读一篇文章:90年代的硬盘已大规模变砖,没啥好担心的,好事。结合我两年前的粗浅认知 互联网时代无信息,按照 “动” 的观念看,当信息越来越多,信息密度越来越大时,信息的寿命就会越来越短,信息的碎片也会越来越小。这在本质上由人脑消化信息的带宽是有限的这个生物学事实决定。还是下面的这个老图,坐标重新解释一下:如果信息只生不灭,信息成本将快速增加,这可通过排队论解释。把人脑对信息的消化看作流量带宽,所有未能及时消化的信息就进入 buffer,而 buffer 排队将直接消耗时间,无论是检索时间,辨别时间,还是
2024-10-05 11:47:40 13732 8
原创 TCP BIC 的拟合函数分析
但要记住本质,不管是 bic 还是 cubic,不应过分关注数学表达本身,它们只是处理上的技巧,数学是工具,本质上要达到的目标是,尽量快速逼近 Wmax,谨慎适当 probe 新带宽,数学上拟合的曲线核心特征是,search 要上凸,probe 要综合考虑下凸或上凸,取决于 “势”,这个哲学话题后文详述。肉眼可见,逼近 Wmax 的快慢只与 rtt 相关,如图所示,b 越大,竖着的那条线距离 y 轴越远,表示逼近越慢,这与 a = Wmax 本身无关,这是 bic rtt 不公平的根源。
2024-10-04 11:46:33 8023
原创 TCP CUBIC 曲线对 BIC 折线的拟合
如图所示,只要 C(建议为 0.4) 确定,cubic 曲线形状就确定了,Wmax 越大,逼近的时间越久,初始力度越大,曲线越瘦高,Wmax 越小,逼近时间越短,初始力度越小,曲线越矮胖,这也正是参数 K 的几何含义。事实上,就二分逼近而言,bic 是准确的,cubic 是近似的,它只做到 “与 rtt 无关,按照上凸逼近 Wmax,按照下凸 probe”,而并未执行二分逼近。因此,这条 cubic 曲线只能在大多数情况下拟合 bic,而不是所有情况,正如泰勒级数在某个点拟合任意曲线一样。
2024-09-30 21:44:16 11427
原创 BBR 为什么没有替代 CUBIC 成为 Linux 内核缺省算法
包括我自己在内的几乎所有人都用过一种错误方法度量 bbr 的 “好”:搭建一跳转发的模拟环境,用 tc 配置丢包,时延,用 iperf 对比 bbr 和 cubic,得到结论,bbr 的吞吐比 cubic 大好多倍,所以 bbr 好。cubic 的误判对拥塞属反向激励,对拥塞的反应 “宁可错杀,但绝不遗漏”,但 bbr 对带宽的过估或低估带来的结果将不可控。bbr 属于特定网络场景的优化算法,如果在稳定的长肥管道,bbr 无疑是福音,但在抖动不受控的网络环境比如无线场景,bbr 就不如预期,甚至无法预期。
2024-09-30 10:08:15 12386
原创 从 TCP Reno 经 BIC 到 CUBIC
reno 线性逼近管道容量 Wmax,相当于一次查询(capacity-seeking),但长肥管道从 0.5*Wmax 到 Wmax 的线性遍历太慢,期间一旦遭遇丢包,则前功尽弃。cubic 只与绝对时间有关,不管 rtt 如何,只要 ack 虽迟但到,公平性就毫无问题。这两篇文章,感觉还是啰嗦了,今日重新一气呵成这个话题。浙江温州皮鞋湿,下雨进水不会胖。
2024-09-29 18:47:22 12880
原创 关于智人和 AI 的负反馈
大意是人的优良基因会促进医疗技术的发展,而医疗技术的发展会保留更多的不良基因使其不被自然选择淘汰并产生后代,而携带劣质基因个体的比例增加会阻碍科技的进步,当科学停滞,劣质基因个体存活率降低,最终达到一个平衡,即人不会一直进化,智力会反噬自身。基于语言和推理的数据训练 AI 无法获得世界的具象,只能获得描述,但具身智能可以打破这个负反馈,让 AI 产生具象反馈并描述自己对世界的理解,建立世界观,这就产生了新的内容,这个蜕变就像智人曾经的蜕变一样,人自此成为智人,这应该就是所谓奇点。归根曰静,静曰复命。
2024-09-28 09:08:33 13343
原创 再从 Tesla 的 TTPoE 看传输优化
简单总结,数据中心网络,简化端,增加带宽资源,传输算法越简化越好,用带宽资源来换服务器时间,把服务器时间更多留给计算,理解了这个,就理解了数据中心网络传输的游戏规则,也就理解了 ttpoe。但广域网正相反,广域网传输优化的前提是量化统计波动,而这需要大量持久的监控,统计和计算。不管怎样,在如此复杂的统计分析下,协议需要采集并处理更多信息,协议本身需要更多动态调整能力,往往就不是极简协议可以胜任,但从 ttpoe 开始做加法,直到加一笔就多,少这一笔就刚刚够,停下这一笔,就是 tcp 了。
2024-09-25 12:51:14 16294
原创 从 Tesla 的 TTPoE 看资源和算法
回头看主机总线,优化方向一直是加频率,加 lane,加并行度,无止境增加传输带宽,而不是依靠精巧的算法,因为它有个可以 “二生三” 的极简核,才能彼此互联而不会把自己绕死。“道生之,德畜之,物形之,势成之”,这是《道德经》里的话,以 tcp 为例,rfc793 谓之 “道”,sack/wscale/ts/reno/cubic/vegas/bbr 谓之 “德”,运行在某台主机上的 tcp 连接实例谓之 “物”,而带宽,光纤,路由器,交换机,供电设备,机房环境谓之 “势”,大概就是这个意思。
2024-09-24 13:29:57 20511
原创 拥塞控制算法的 rtt 公平性
bbr 有个 maxbw window 滑动窗口,缺省 10-round,这意味着 maxbw 可以保留 10-round 这么久,一旦时间超过这么久,当前流的基础带宽 maxbw = x 就会滑走而不再有效,失去了这个挤兑基础,就失去了信任 “带宽与加速比负相关” 的前提,可想而知,收敛就崩塌了。理论很美,在实践中,tcp 的问题在于 ack self-clock,如果 ack 没来,来晚了,聚合了,什么都算不准,但它无疑还是驱动一切的基础,很多问题都来自于它,但很多优化也基于它,很烦,不谈。
2024-09-20 17:53:21 20691
原创 aimd,bbr,inflt 守恒的收敛相图总结
网络瓶颈带宽 100mbps 在 4 跳以外, 本机配备了最贵的 25gbps 网卡,为了获得更高的效率,经理把本机所有参数调到最大,特别是 buffer,于是经理收获了极高时延,这是作为经理的它自作自受。很多人不明白拥塞控制实属一个系统工程,一个跨学科的领域,并不是一个单机算法,然而他们又看不上和他们在学校里学的完全无关的学科,甚至是不屑。关于拥塞控制算法,我总结为三类,其中最后一个是我自己的算法,我亦将其归类,因为它确实属于 aimd 和 bbr 之中点。两个度量,一是公平性,第二才是带宽利用率。
2024-09-17 12:45:07 22994
原创 mimd 公平收敛在相图中的细节
y,或者尚未执行 g*y,这样才能在按 buffer 占比分配带宽时展现 g 的效用,不至于分子和分母将 g 约分。aimd 的收敛已经说腻了,我曾经画了好几次相图。有朋友希望我能画一个 mimd 相图,我就再画一个稍微详细的。当然,大量流的统计特征会削弱少量流收敛的动力学效应,这也是抽样定律的效果,大数定律和中心极限定理才是永远的经理。现在分别看 g1 = g2 和 g1!之所以要异步,举个例子,在执行 g。x 时,要确保 y 已经执行过 g。浙江温州皮鞋湿,下雨进水不会胖。
2024-09-17 09:43:49 23338
原创 算法参数对拥塞控制的影响
首先看 aimd,标准的 reno 算法是每 round 之后 cwnd 加 1,但如果有些流加 1,有些流加 2,会如何?来看看参数对公平收敛的影响。仅假象一下就知道应该是个加权公平,但事实如何,还是要具体看一下。大差不差,就这个意思。只给出了一步,因为画全了会非常乱。浙江温州皮鞋湿,下雨进水不会胖。台风马上到,喝酒迎接!
2024-09-15 21:39:37 24440
原创 拥塞控制算法为何失效,网络为何难以测量?
所以你知道实验室仿真的宇宙第一算法为啥拉了吧,也就不用再问为什么部署了 bbr 却还不如 cubic 了吧,如果你还希望研发一个精准的,普适的端到端算法,我劝你改行去卖皮鞋,至少还有很多经理市场。这和上一篇说的测量系统容量的方法并不矛盾,因为对于网络传输系统而言,系统是动态变化的,在流量部署到系统上并开始传输时,没有全局视图,就不能指望全局公平,留下的 gap 是固有的,没法靠算法弥补。,超级经典的一篇论文,我推荐过不止一次,因此我本文不谈异构问题,说点别的,比如拓扑。对,就是要砸,因为我不干了。
2024-09-14 20:30:05 25769
原创 如何测量一个(传输网络)系统的容量
不管哪种方法,系统都是稳定的,采用方法 1,如果有经理觉得等待时间太久,他大概下次要么早点来,要么不会再来了,平均而言,李大爷的顾客会维持在一个稳定的量,取决于店里装多少经理,采用方法 2,几乎来了就能理,顾客也会维持在一个稳定的量,取决于李大爷 10 分钟理几个头。实践中,就是采集一组数据,拟合,画图,看图说话。如果 buffer > B,时延就会增加,如果 buffer < B,带宽利用率就会不足,但对于单流而言,无论 buffer 配置多大,大时延大带宽,小时延小带宽,什么都没有改变。
2024-09-13 23:38:43 23243
原创 并行计算范式的时空辩证
早读一篇 acm 文章,发现是 2017 年的,相见恨晚,昨天买了新鞋,再也不用穿着拖鞋跑步,路上思考昨天读到的《道德经》几章节,又想到早些年写的文章,“硬件电路就是以拓扑和通信为核心,并行完成任务,但在上一个芯片的层次,却是在执行串行的指令流”,将这些思考糅合一下,作文以记之。再往上,人们又期望这些独立代码可以并行完成一件事,甚至在分布于不同位置的机器上并行完成一件事,愿景又回到了最底层,瞅瞅看,支撑所有这一切的最底层门电路就是分布在不同位置,且它们并行完成了所有这一切。是以,“天下有始,以为天下母。
2024-09-12 11:40:37 25917
原创 从《道德经》和系统论再看 bufferbloat
即 “支点” 一侧的力臂不变,另一侧的挂重不变,增加 buffer 意味着增加另一侧的力臂,若要撬动它,需要施加更多的 “力”,而这个 “力” 就是效能,撬起同一个物品,增加对面的杠杆,就是吃力不讨好。《道德经》通篇辩证有无和多少,天地始于混沌,混沌即热寂,这状态最公平,在这本真的虚无空间之中,物质开始聚拢,轻则升为天,重则沉为地,是为天地。人们关注物质,其实虚空才是万物所需,“凿户牖以为室,当其无,有室之用”,要的不是墙体,装修和家具,是空间。结局是,“带宽越大,时延越高”,你知道为什么吗?
2024-09-10 11:40:44 26246
原创 简单梳理一个历史脉络
此时欧亚大陆东部,北方早已被东北西北西南的民族渗透(他们此前只是名义归附,实际都是独立的势力,比如六镇集团,自东汉末年到曹魏和蜀汉政权就经常雇佣这些外来民族当兵甚至做军事顾问,导致更多民族内迁),西边的罗马帝国西部北部也几乎一样被日耳曼人渗透,大量蛮族人(罗马人对外人的称谓)进入帝国内部,和晋这边一样,都是一个集团一个集团的进入,不得已,司马睿南迁到了南京,时间在317年,而居士坦丁于323年成为唯一统治者后也于330年在居士坦丁堡建立新都,此后各自看造化。浙江温州皮鞋湿,下雨进水不会胖。
2024-09-07 21:03:45 27383
原创 BBR 与 AIMD 共存公平性探究
这也不难解释,因为最大的 bw / delay 被记忆越久,对应的 bw 生效越久,而在 aimd 场景,buffer 占据是持续变化的,bbr 要跟随上去的唯一方式就是基于更新的最大 bw / delay 对应的 bw 尽快 probe,而不是用旧的。但上述 (r[n-1] + Rmin)/2 替换 Rmin 的方法促进了 bbr 的侵略性,因为 bbr 几乎会占掉一半(偏少一点,恰好接近 1/3)的资源,剩余的由其它 aimd 均分,这就从 bbr 吃亏走向了 bbr 侵占的另一个极端。
2024-09-06 11:11:25 27998
原创 基于 AIMD 的 BBR
但每一种做法的评论中都会有喷子, 比如放了太多料就毁了食材,比如这道菜放了酱油就意味着失败,焯水不焯水,老抽还是炒糖色,但如果真有大厨做某道菜,并真吃到嘴里,你会发现无论怎么做都好吃,大厨和喷子的区别在哪?拿捏本味是核心,这一点只有大厨明白,剩下的都是调味,无论用不用调料,用什么调料都不是重点,鱼可做鱼生也可红烧,螃蟹既可清蒸也能爆炒,但喷子的点却在这些非重点,而他们并不知道食材的本味到底是什么性质。任意组合 ai,mi,ad,md,同步,异步,随机,…浙江温州皮鞋湿,下雨进水不会胖。
2024-09-05 11:29:17 27983
原创 E_best 共识下的随机 cycle phase BBR
当存在 aimd 流量进行持续(感知 rtt 增加超过一个 probertt 周期) capacity-seeking 行为导致基础 buffer 膨胀时,由于 bbr 取消了 cwnd 束缚,同时其 probe 可增加 bw / delay,就自适应了与 aimd 共存时 deep buffer 场景吃亏的问题,若 aimd 流退出,继续 probe 将导致 bw / delay 下降,bbr 随即停止主动 buffer 抢占,最多等到再下一个 probertt 回归常态。bbr 的模型和实现是两回事。
2024-09-04 10:15:55 27705
原创 inflight 守恒化简
抽丝剥茧,返璞归真,现在从 aimd 出发导出自然而然的 inflight 守恒算法。将它抽象一下,其实它可以通过经典 aimd 化简。核心思想就是雅各布森的 inflight 守恒理论,控制 inflight 兑换比来控制拥塞。收敛是自然而然的,而 E_best 共识只是一个高效利用资源的优化,旨在不要为了更高的带宽而付出时延的代价。其实,r_{min} 就是 R,一个类似 probertt 的机制就能拿到。浙江温州皮鞋湿,下雨进水不会胖。
2024-09-03 10:35:42 28042
原创 用相图分析 bbr,inflight 守恒的收敛速度
虚线表示 g < 1 的场景,而 g = 1 时就是 x +y = C 本身,可见 g 1 时,收敛速度与 g 正相关。我们需要从定量计算中总结出定性规律,企图可以通过相图的几何特征中,即相图轨迹的走势与公平线夹角越小,收敛越快,相图轨迹越平直(而不弯曲迂回),收敛越快。但收敛快的代价是更大的 buffer 占用,时延增加,这又是前面谈到的效率和公平不可兼得的问题。浙江温州皮鞋湿,下雨进水不会胖。
2024-09-02 18:09:53 27977
原创 随机化 bbr probebw cycle phase
C = Bltbw,R = RtProp,T_r = ProbeRTT 周期,T 为 ProbeBW phase cycle 周期,g1 = Startup gain,g2 = ProbeBW gain。bbr 充分考虑到这个问题,于是在每一轮 ProbeRTT 后会随机 place cycle phase 以打破这个局面,然而原先不同步的流也可能因为这个机制而同步陷入僵局。不管怎样,这种局面一旦陷入,就要僵持一个 ProbeRTT 周期。同步问题的万能解药就是随机。浙江温州皮鞋湿,下雨进水不会胖。
2024-09-02 11:43:46 28784
原创 bbr 和 inflight 守恒的收敛原理
里的模型,如此一来增益 g 就不再是常量,而与共存流的相位差有关了,假如两个流的相位差为 0,则 g = 1,退化为同步 mimd,永不收敛,但在统计意义上,大量流共存场景,这种现象属实大概率只存在一个 probertt 周期,这就是 bbr 代码在结束 probertt 之后随机部署 probebw phase 的意义。将 K 看作常量,当 g 增加时,f(x) 更快逼近 C,但 K 是一个与 f(x) 相对称的僵持量 f(y),因此当 g 增加时,f(x),f(y) 更快逼近稳定点。
2024-08-31 21:20:49 29127
原创 bbr 随机 phase 的麻烦与 inflight 守恒算法的动机
但即使错开了,相位差也影响收敛效率,虽然在数据流数量很大时大数定律和中心极限定理会导致正态分布起核心作用,但这对理论分析无益,因为到头来任何算法在海量流场景都会被这两个定律主宰,你得明白,互联网是统计复用的,起重要作用的就是统计律,而不是精确计算,参考热力学第二定律和分子运动。若不错开,就可能会陷入同步 mimd 的陷阱和悲哀,白折腾一场,效用为 0。我也一直反对在实施 bbr 算法时进行精确计算,你采集的数据都不准,计算越精确偏差越大,这种情况下,统计律才是高尚的。这真是我的皮鞋,不便宜。
2024-08-30 18:59:42 26500
一个iptables的stateless NAT模块实现
2014-12-27
模块化的nf-HiPAC
2014-11-21
关于linux内核以及其他个人体会的文集
2009-09-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人