如何套模板做網(wǎng)站發(fā)帖推廣
本文以 tcptrace 圖為基,描述傳輸?shù)奈⒂^行為,并給出一個(gè)初中幾何描述的壓水井模型。
統(tǒng)計(jì)復(fù)用網(wǎng)絡(luò)的擁塞控制,宏觀看 inflight,微觀看 pacing rate,宏觀大方向不對(duì),微觀再正確也不行。
而網(wǎng)絡(luò)的統(tǒng)計(jì)動(dòng)力學(xué)事實(shí)上就是 buffer 動(dòng)力學(xué),詳情參見 邊際效益遞減與 buffer 和 buffer 越大越低效。
如左圖所示,如果按照 delivery rate 設(shè)置 pacing rate,則會(huì)引發(fā)木桶效應(yīng),接下來的 delivery rate 充其量不變,大概率只會(huì)越來越小,即使有空閑帶寬騰出也無法抓住,ack 流也會(huì)過早閉合而引發(fā)類似糊涂窗口綜合癥那般的細(xì)流:
所以 bbr 才需要周期性 probe,取 bw window 內(nèi)的 maxbw 作為 pacing rate,為防止 maxbw 顛簸,還要確保在 bw window 內(nèi)至少進(jìn)行一次 probe,這就是 bbr 采用大開合的根本原因,否則 bbr 要么保不住帶寬,要么跑飛。
大開合的問題前面已經(jīng)描述過,詳見 bbr 是真的不行,所以需要引入 probertt 和 cwnd_gain 來約束 inflight。cwnd_gain = 2 約束了 bbr 流的最大 inflight 不超過 maxbw*minrtt 的 2 倍。如此,buffer 擠占才不會(huì)無限瘋長(zhǎng)。
看到了吧,bbr 實(shí)際是通過引入很多約束來避免大開合潛在的正反饋。如果把 probe 操作多出來的 1/4 bdp 均勻分散在整個(gè)傳輸過程,控制總 inflight,并始終用 4/5 pacing gain 做 pacing,一切就省了。
先看與 pacing rate = delivery rate 相比,bbr 改變了什么:
bbr 逆轉(zhuǎn)個(gè)視角,將 probe 流量分?jǐn)偟秸麄€(gè)傳輸過程,始終以 > 1(比如 5/4) 的 pacing gain 發(fā)送,為抑制因此而引發(fā)的 buffer 侵占制造的嚴(yán)重?fù)砣?#xff0c;算法轉(zhuǎn)而控制 inflight 而不是 pacing rate:
- 擁塞避免方面,保持 optimal_bw*minrtt(注意不是 maxbw) 為 inflight 主體以及極小量且負(fù)反饋收斂的的 buffer 隊(duì)列,避免擁塞;
- 帶寬利用率方面,微小隊(duì)列始終保持 100% 利用率;
- 公平性方面,所有流量對(duì) E_best = max(bw / delay) 的共識(shí),bw 達(dá)到 optimal_bw 適可而止,向局部最優(yōu)收斂達(dá)到全局最優(yōu);
- 自適應(yīng)帶寬變化方面,微小隊(duì)列保持對(duì)帶寬變化的感知力。
整體就是用大 pacing rate 保 optimal_bw:
統(tǒng)計(jì)的東西要用統(tǒng)計(jì)的方式玩,端到端擁塞控制,必須確認(rèn)哪些度量是確定的,哪些是不確定的,所有度量中,能大致確定的只有 rtt 和 delivery rate,因此只能信任它們本身以及它們的簡(jiǎn)單運(yùn)算量,所有其它量都不能信任,不是調(diào)參難度很大,而是瞎搞。
pacing rate 根本控制不住,能控制的只有 inflight。
接下來在 tcptrace 圖中展示 E_best = max(bw / delay) 共識(shí)及其幾何和力學(xué)意義:
這很像農(nóng)村的那種壓水井,它的操作就是向上拉把手,拉到一定高度后往下壓,即可出水,但它不想打氣筒,因?yàn)榇驓馔彩悄憷脑礁?#xff0c;充氣量越多,壓水井卻受水壓限制,如果把手可以拉無限高,拉得越高,相比出水量而言越不劃算(拉高把手所費(fèi)的力氣相比出水量而言)。
能夠擠壓的任何流體都符合這個(gè)模型,包括鈔票存貸。模型的操作圖示如下:
代數(shù)式上,設(shè)總帶寬為 a,buffer 已用量為 b,問題 4 等價(jià)于求 E = a * x / (x + b)^2,物理意義就是 “擠壓帶寬的邊際效益”,也就是 “單位 buffer 的收益”,顯然它是一個(gè)上凸曲線。
在力學(xué)解釋上,一開始出大力壓杠杠的收益相對(duì)于 b 的固有勢(shì)能收益而言是非常明顯的,一旦出大力開始超過固有勢(shì)能的做功就反轉(zhuǎn)了,倒著看,固有勢(shì)能做功每減少一點(diǎn),其損失的收益將減速減少。這背后是向最穩(wěn)定趨向的趨勢(shì),也就是最小作用量原理。
只可惜包括 bbr 在內(nèi)的幾乎所有擁塞控制算法都沒能利用這個(gè)共識(shí)。vegas 稍微沾邊兒時(shí)就被噴了,幾乎所有擁塞控制方案都試圖在微觀層面控制統(tǒng)計(jì)特征,而我揭穿一些事實(shí)也不在乎有人白嫖,因?yàn)槲疫@些是擁塞控制的核心本質(zhì)但并不關(guān)注單流吞吐,不添堵,我這些和眾人的目標(biāo)并不一致,人們更感興趣的是把乘法降窗改成減法降窗,把參數(shù)調(diào)激進(jìn),見縫加塞,而這些都是在行業(yè)保身立命的根本,可不敢隨意給別人看。
浙江溫州皮鞋濕,下雨進(jìn)水不會(huì)胖。