bufferbloat 与通货膨胀
Posted dog250
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bufferbloat 与通货膨胀相关的知识,希望对你有一定的参考价值。
关于 bufferbloat:bufferbloat
如果没有 AQM,比方说 RED,同时 buffer 巨大,看个恐怖的正反馈:
AI 增窗 — buffer 排队 — 延时增加越过 RTO_MAX — RTO 超时 — 重传 — 超时 — 重传 — 超时 — 重传 — … — 有效带宽跌 0。
1986 年拥塞崩溃差不多就这样。实际场景中,AQM 会尽量打破这个反馈环,但理解拥塞崩溃的根因是有趣的。
拥塞控制领域一个首要原则:数据包守恒原则。即每一个数据包在网络上只保持一个副本。
联系通货膨胀,会发现 buffbloat 和通货膨胀是一回事,都是 bloat。
发生拥塞时,每个连接都要 “挤兑” 带宽,结果越 “兑“ 越少,为了多 “兑”,就超发,于是加重拥塞,加重重传, 加重 bufferbloat,有效带宽越来越低,刺激发送端越来越激进发送,即 “印钱”。
通货膨胀正反馈也恐怖:
资金缺口 — 印钱 — 购买力下降 — 挤兑 — 没得兑 — 印钱 — 挤兑 — 没得兑 — 印钱 — … — 购买力跌 0。
通货膨胀若不是因为无知,都是缺口导致,缺口即损失,弥补损失最快捷的手段就是印钱,这和弥补丢包需重传一样,但这并不是在解决根本问题。
丢包的根因是拥塞,需要解决拥塞,而非重传。如果你理解印钱不能解决问题反而会加重通货膨胀,就能理解重传可能加重拥塞。激进重传,及各种花式重传,说到底是 “刚兑” 思想在作怪。
银行承诺刚兑,意味着风险全压在银行,银行无法规避客观风险,风险客观存在,不能消除,只能转嫁,为什么不能正视呢?丢包也一样。
所以,AQM 很多措施就是丢包,它希望发送端(或者货币发行端)正视这种客观损失,并作出正确回应。正确回应是什么?就是降窗,而非超发。恰好 AIMD 可完成这种和谐。
守恒律非常重要,意思就是不要超发。
AI (additive-increase) 不是本份,只是探测,探测永远是本份之后额外的动作。那么什么是本份,BBR 可以诠释。
CUBIC 就是在庞氏骗局中不断自省,然后好了伤疤忘了疼。
Nagle 在 1984 年的 RFC 896 中对此表示担忧,1986年拥塞崩溃,后续 范雅各布森 式的自省一直延续到现在。期间摩尔定律和 wintel 现象纵容了 bufferbloat,于是我们的网络成了一个看起来畅通可用,但实际上拥塞无比的北京二环路,走走停停。
所以,如果少了自省,少了 MD (multiplicative-decrease),拥塞崩溃是必然的,互联网带宽,没有刚兑。
我不懂经济学,有个微信公众号 “zarbot” 的文章可以看看。
我说 AIMD 不闭环意思就在这,AIMD 依赖 AQM 丢包,如果 buffer 无限大,从不丢包,那么 AIMD 完全无法工作。因此 AIMD 完全是一种 “现实考虑”,而不是一个闭环的算法,BBR 的思路找到了另一个不变量,即 maxbw 和 minrtt,虽仍未竟全功,但值得期待。
推荐两篇拥塞控制领域的两篇经典,同时也是该领域的基石:
浙江温州皮鞋湿,下雨进水不会胖。
以上是关于bufferbloat 与通货膨胀的主要内容,如果未能解决你的问题,请参考以下文章
美国加拿大著名公共知识分子简·雅各布斯 (Jane Jacobs)的5本书