国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

大歷史下的 tcp:從早期擁塞控制 到 bbr 再到未來

這篇具有很好參考價值的文章主要介紹了大歷史下的 tcp:從早期擁塞控制 到 bbr 再到未來。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

TCP協(xié)議有了擁塞控制機(jī)制,為什么還會網(wǎng)絡(luò)擁塞?

隨著骨干帶寬增長,擁塞被阻滯在接入網(wǎng),大規(guī)模擁塞崩潰難再呈現(xiàn),tcp 擁塞控制(不僅限于 tcp,但以 tcp 為主線來說)從避免崩潰,保證可用性逐漸轉(zhuǎn)到提高效率。

過程曲折而漫長。

起初 aimd 挺好,為了更好,bic/cubic 相繼出爐,此過程正與 linux 蓬勃發(fā)展同步,大概從 1990 年初一直持續(xù)到 2005 年前后,linux kernel 內(nèi)置所謂 “擁塞狀態(tài)機(jī)” 邏輯,以至于完全不同于傳統(tǒng) aimd 的 delay-based cc 比如 vegas 竟無處安放。

擁塞狀態(tài)機(jī)其實(shí)就是 loss-based cc 的抽象,將 “擁塞避免”,“快速重傳” 等這些狀態(tài)與 tcp 語義的傳輸和重傳強(qiáng)制捆綁,以至于只要出現(xiàn)丟包進(jìn)入快速重傳,必須無條件執(zhí)行固定邏輯,比如降窗(比如 prr)。這種框架下,如果想在丟包時不降窗就無從談起,顯然 vegas 不適合這框架。但由于這種方式工作的足夠好,vegas 幾乎被遺忘。

進(jìn)入 2010 年代,隨著摩爾定律效應(yīng)減弱,主機(jī)帶寬逐漸追平交換帶寬,而移動互聯(lián)網(wǎng)興起,圖片,視頻等大流量激增,單位帶寬逐漸吃緊,帶寬資源不能再繼續(xù)以粗放方式被使用,另一方面,受限于時延 qoe,buffer 不能繼續(xù)增大,cc 開始以帶寬利用率為目標(biāo),pacing 代替突發(fā)降低報文到達(dá)率,減少對 buffer 的依賴。

bbr 在此背景下產(chǎn)生。

為支持 bbr,linux kernel 引入 cong_control 回調(diào),允許 cc 自定義行為,開辟了擁塞狀態(tài)機(jī)之外的新路。

但直到今日這條新路上大量的代碼都在處理 “兼容公平性”。

當(dāng)年 vegas 被詬病不能和 cubic 共存,解法其實(shí)是全網(wǎng)部署 vegas。如今 bbr 又落入尋求 “與 aimd(主要是 cubic) 公平混部” 的老路,而這些問題幾乎不能徹底解決。

分布式網(wǎng)絡(luò)是個博弈網(wǎng)絡(luò),即使 bbr 優(yōu)秀到讓人們明確想用 bbr 替換 cubic,但隨著替換的進(jìn)行,替換收益遞減,人們的替換動機(jī)減弱,最終 bbr 占比將穩(wěn)定在不到 80%,bbr 還是要兼容 cubic,因此 bbr3 或許是個好算法。

但數(shù)據(jù)中心則是個不同的場子。

如果在數(shù)據(jù)中心大搞公平混部就大可不必了,找經(jīng)理開會能解決的事就不要用算法自適應(yīng)。一個簡單方法是增量部署算法默認(rèn)設(shè)置在裝機(jī)腳本,存量逐漸分批次切換?;蛉?cubic,或全部 bbr,或全部 vegas。

最近一直強(qiáng)調(diào)同質(zhì),卡車從不考慮與轎車碰撞時的公平性問題。核心還是那些車轱轆話,讓算法盡量少做甚至不做判斷,猜測,評估,針對的事,簡單才能高效,大一統(tǒng)對效率反而是拖累,俾斯麥明白的道理,將奧地利排除在帝國之外,主打一個純凈。
暫時不說關(guān)于同質(zhì)的話題了,說惡心了。接下來看 bbr。
不管哪個場子,也不管目標(biāo)是避免崩潰還是提高效率,擁塞控制的核心都是 數(shù)據(jù)包守恒,在這個視角下重新審視 bbr,看它有什么問題:
大歷史下的 tcp:從早期擁塞控制 到 bbr 再到未來,tcp/ip,網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)

具體可參考 bbr 模型 以及 更合理的 bbr。

此前說過,bbr 看起來好只因?yàn)樗拇箝_合動作,并且很多人理解的 “bbr 好” 就是和 cubic 相比 bbr 的吞吐更高,這是對擁塞控制最大的誤解,你不光要看結(jié)果,還要看拿什么換的結(jié)果。其實(shí) bbr 選的操作點(diǎn)非常不穩(wěn)定,所以無法自適應(yīng)收斂,需要一個狀態(tài)機(jī)不斷進(jìn)行刺激和反應(yīng),總體上大開合的意思就是激進(jìn)。如果操作點(diǎn)對了,什么都不需要做就能收斂。

看上圖的下半部分,合理的 bbr 操作點(diǎn)更偏右,在這個操作點(diǎn)上,和理想情況相反,bbr 需要持續(xù)占據(jù)一些 buffer 空間,用它來做帶寬變化的自動探測。

bbr 用 maxbw 追蹤最佳操作點(diǎn)是追不到的,在多流共享帶寬時更是捕風(fēng)捉影。如果辦不到就不要辦了,計算是滯后的,且根本算不準(zhǔn),那么追蹤 max(bw / rtt) 就豁然開朗:

  • 在 winmax 中追蹤 alpha rounds 的 bw / rtt,將其 bw 記為 b;
  • 在 winmin 中追蹤 k*alpha rounds 的 rtt,記為 minrtt;
  • 保持 inflight = b * minrtt + beta。

這就避開了復(fù)雜的狀態(tài)機(jī),probe,drain 等邏輯。圍繞上面的 3 步算法做任何事都行,其實(shí)只這 3 步就夠了。

本文不詳細(xì)聊這個算法動力學(xué),簡單推理一下,如果有新帶寬,max(bw / rtt) 會更新,bw 增加,inflight 增加,如果有效帶寬減少,早晚 max(bw / rtt) 會滑走而更新,bw 減少,inflight 減少,而如果 bw 和 rtt 同時增加或減少,minrtt 在更長周期不改變,算法就可以自適應(yīng)它們而改變 inflight。

解釋一下最后一步為啥要 + beta,這是 vegas 里的辦法,目的是 “始終在 buffer 中保留一些報文”,效果是:

  • 有流退出,這些報文可以瞬間分享騰出的帶寬;
  • 有流進(jìn)入,這些報文避免當(dāng)前流被擠占而抖動。

是不是簡單又有趣。

那么 pacing 哪去了?和傳統(tǒng) bbr 不同,pacing 退居二線,而 inflight 成了第一控制要素,只要保持 inflight 就那么多,pa 不 pacing 不重要,反正都要回來,核心還是守恒律。

人們對 pacing 的誤解在于以為 pacing rate 是端到端的,但它只對第一跳有效。數(shù)據(jù)包在網(wǎng)絡(luò)轉(zhuǎn)發(fā)過程中,其形式完全受交換機(jī)(等一切轉(zhuǎn)發(fā)節(jié)點(diǎn))當(dāng)前狀態(tài)的影響,在沒有任何 aqm,qos 配置的簡單 fifo 情形,一條流的 pacing rate 完全由該交換機(jī)當(dāng)前的 buffer 構(gòu)成決定。

端到端控制需要控制 inflight,而不是 pacing rate。

pacing 按照 delivery rate 的 n 倍吐,簡單給前面第一跳交換機(jī) buffer 留點(diǎn) time slot,不用太精確算計,因?yàn)樗懔艘矝]用,統(tǒng)計復(fù)用要按統(tǒng)計方法來,抓住統(tǒng)計量,追蹤,過濾它們,做出判斷,執(zhí)行守恒律。

擁塞控制的核心是在 pipe 中保有多少 inflight,而不是以多大的 pacing rate 發(fā)送,所以控制要素還得是 cwnd,而測量 delivery rate 只做采集 bw / rtt 而計算 inflight。

好,該總結(jié)一下了。

tcp 擁塞控制從最初 1980 年代末的 aimd 隨著 linux kernel 經(jīng)過 1990 年代直到 2010 年代引入 bbr,要分清楚新的,舊的,就知道哪些是核心,而哪些是為了兼容公平性。其中摩爾定律,移動互聯(lián)網(wǎng),視頻流的發(fā)展也對 tcp 擁塞控制的形態(tài)產(chǎn)生了甚至決定性的影響。

提到擁塞控制就是慢啟動,擁塞避免,快速重傳那一套非常教條,擁塞控制和丟包檢測和重傳是沒有關(guān)系的兩件事,恰巧 tcp 在初期實(shí)現(xiàn) linux kernel 的擁塞控制算法時作為內(nèi)置硬編碼實(shí)現(xiàn),而后來模塊化時又沒有將其分開,埃里克作為后來的妹忒呢兒自己可能對這方面也不是非常清楚,本沒關(guān)系的邏輯就被擁塞狀態(tài)機(jī)關(guān)聯(lián)了起來,但如果網(wǎng)絡(luò)發(fā)生擁塞,用 inflight = 100 來控制擁塞,這 100 個報文中并不規(guī)定哪些是新報文哪些是重傳報文。

30 多年的發(fā)展讓 tcp 擁塞控制算法自發(fā)多樣化,但兼容公平性并不是每個場景都需要考慮,比如數(shù)據(jù)中心。bbr3 作為以兼容公平性為目標(biāo)的算法,它進(jìn)入通用 linux kernel 的目標(biāo)或許能實(shí)現(xiàn),但作為 bbr 本身,bbr4,bbr5 應(yīng)該在其提高帶寬利用率以及自身公平性方面有更多迭代。

最后,我認(rèn)為以守恒律為核心的 inflight 控制才是高尚的,E = max(bw / rtt) 是一個好收斂點(diǎn),以 inflight = bw * minrtt + beta。而不是捕風(fēng)捉影的 pacing 計算。

浙江溫州皮鞋濕,下雨進(jìn)水不會胖。文章來源地址http://www.zghlxwxcb.cn/news/detail-855473.html

到了這里,關(guān)于大歷史下的 tcp:從早期擁塞控制 到 bbr 再到未來的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • TCP流量控制+擁塞控制

    TCP流量控制+擁塞控制

    目標(biāo):流量控制主要解決的是發(fā)送方和接收方之間處理能力的不匹配問題。它的目的是確保發(fā)送方不會發(fā)送數(shù)據(jù)過快,以至于接收方無法及時接收并處理這些數(shù)據(jù),從而避免數(shù)據(jù)包在網(wǎng)絡(luò)中堆積和丟失。 實(shí)現(xiàn)方式:在TCP協(xié)議中,流量控制主要通過使用滑動窗口機(jī)制來實(shí)現(xiàn)。接

    2024年02月20日
    瀏覽(21)
  • TCP流量控制和擁塞控制

    TCP流量控制和擁塞控制

    當(dāng)發(fā)送方發(fā)送速率大于接收方的處理速率時,接收方會把數(shù)據(jù)包放入緩沖區(qū),當(dāng)緩沖區(qū)滿了,就只能將數(shù)據(jù)包丟棄。為了應(yīng)對這種情況,流量控制就可以大展身手了 流量控制的作用對象是發(fā)送方和接收方 當(dāng)接收方網(wǎng)絡(luò)擁塞,未能及時ACK時,導(dǎo)致發(fā)送方超時重傳大量數(shù)據(jù),使

    2024年02月05日
    瀏覽(23)
  • TCP的擁塞控制_基礎(chǔ)知識_四種擁塞控制方法

    TCP的擁塞控制_基礎(chǔ)知識_四種擁塞控制方法

    在某段時間,若 對網(wǎng)絡(luò)中某一資源的需求超過了該資源所能提供的可用部分,網(wǎng)絡(luò)性能就要變壞 ,這種情況就叫作 擁塞 。 計算機(jī)網(wǎng)絡(luò)中的鏈路容量(帶寬)、交換節(jié)點(diǎn)中的緩存和處理機(jī)等都是網(wǎng)絡(luò)的資源 若出現(xiàn)擁塞而不進(jìn)行控制,整個網(wǎng)絡(luò)的吞吐量將隨輸入負(fù)荷的增大而下

    2024年01月19日
    瀏覽(27)
  • 如何解決TCP窗口與擁塞? TCP窗口與擁塞控制的解決辦法

    計算機(jī)網(wǎng)絡(luò)中的帶寬、交換結(jié)點(diǎn)中的緩存和處理機(jī)等,都是網(wǎng)絡(luò)的資源。在某段時間,若對網(wǎng)絡(luò)中某一資源的需求超過了該資源所能提供的可用部分,網(wǎng)絡(luò)的性能就會變壞。這種情況就叫做擁塞。擁塞控制就是防止過多的數(shù)據(jù)注入網(wǎng)絡(luò)中,這樣可以使網(wǎng)絡(luò)中的路由器或鏈路不

    2024年02月07日
    瀏覽(42)
  • TCP流量控制與擁塞控制(重要)

    TCP流量控制與擁塞控制(重要)

    ?本文參考了一些優(yōu)秀的書籍-圖解TCP/IP,TCP協(xié)議卷一,小林coding,還有等等的知乎,百度. ? 小林coding??小林coding 知乎??偷奈恼?:?萬字長文 | 23 個問題 TCP 疑難雜癥全解析_技術(shù)交流_??途W(wǎng) 本文主要講解TCP可靠性的機(jī)制: 流量控制與擁塞控制 尤其擁塞控制的算法是大公司非常愿

    2023年04月08日
    瀏覽(21)
  • TCP擁塞控制詳解 | 7. 超越TCP

    TCP擁塞控制詳解 | 7. 超越TCP

    網(wǎng)絡(luò)傳輸問題本質(zhì)上是對網(wǎng)絡(luò)資源的共享和復(fù)用問題,因此擁塞控制是網(wǎng)絡(luò)工程領(lǐng)域的核心問題之一,并且隨著互聯(lián)網(wǎng)和數(shù)據(jù)中心流量的爆炸式增長,相關(guān)算法和機(jī)制出現(xiàn)了很多創(chuàng)新,本系列是免費(fèi)電子書《TCP Congestion Control: A Systems Approach》的中文版,完整介紹了擁塞控制的

    2024年02月11日
    瀏覽(21)
  • TCP重傳, 滑動窗口, 流量控制, 擁塞控制

    TCP重傳, 滑動窗口, 流量控制, 擁塞控制

    1. 重傳機(jī)制 TCP 實(shí)現(xiàn)可靠傳輸?shù)姆绞街?,是通過 序列號與確認(rèn)應(yīng)答 。 在 TCP 中,當(dāng)發(fā)送端的數(shù)據(jù)到達(dá)接收主機(jī)時,接收端主機(jī)會返回一個確認(rèn)應(yīng)答消息,表示已收到消息。 針對數(shù)據(jù)可能丟失的情況, 用重傳機(jī)制來解決, 四種常見的重傳機(jī)制: 超時重傳 快速重傳 SACK D-SACK 1.

    2024年01月22日
    瀏覽(24)
  • TCP_擁塞控制

    TCP_擁塞控制

    24年春節(jié)馬上就要到了,作為開車黨,最大的期盼就是順利回家過年不要堵車。夢想是美好的,但現(xiàn)實(shí)是骨感的,擁堵的道路讓人苦不堪言。 在網(wǎng)絡(luò)世界中,類似于堵車的問題也存在,而TCP(Transmission Control Protocol)的擁塞控制機(jī)制就是為了解決這一問題而設(shè)計的。 前面介紹

    2024年02月21日
    瀏覽(19)
  • TCP擁塞控制

    TCP擁塞控制

    本作是自己看書總結(jié)出來的,如有不正,請各位大佬指點(diǎn)一二 所謂擁塞控制,就是防止過多的數(shù)據(jù)注入到網(wǎng)絡(luò),使得網(wǎng)絡(luò)中的通信設(shè)備和通信線纜不會因?yàn)檫^載而導(dǎo)致網(wǎng)絡(luò)性能大大下降。 網(wǎng)絡(luò)中通信設(shè)備具有數(shù)據(jù)處理轉(zhuǎn)發(fā)性能、通信鏈路具有的傳輸帶寬,而其中某臺性能差

    2024年02月11日
    瀏覽(15)
  • 運(yùn)輸層:TCP擁塞控制

    運(yùn)輸層:TCP擁塞控制

    筆記來源: 湖科大教書匠:TCP的擁塞控制 聲明:該學(xué)習(xí)筆記來自湖科大教書匠,筆記僅做學(xué)習(xí)參考 網(wǎng)絡(luò)資源:在計算機(jī)網(wǎng)絡(luò)中的鏈路容量(即帶寬)、交換結(jié)點(diǎn)中的緩存和處理機(jī)等 擁塞:在某段時間,若對網(wǎng)絡(luò)中某一資源的 需求超過 了該資源所能提供的 可用 部分,網(wǎng)絡(luò)

    2024年02月12日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包