真實網絡中的 bbr

本文包含中心極限定理,大數定律,經濟規律等,bbr 倒沒多少,不過已經習慣把 bbr 當靶子了。

上周寫了 揭秘 bbr 以及 搶帶寬的原理,我對自己說,這都是理論上如何,可實際上呢。于是有必要結合更實際的場景,而這恰恰是大部分人所忽略的場景。

網絡擁塞主要涉及 buffer 占用,則聚焦到 buffer。細節不重要,重要是流量在 buffer 的分布,真實網絡是下面這樣(對于個人直播,D 和 S 對稱):
在這里插入圖片描述

整天說互聯網是統計復用系統,就要用統計的語言描述,中心極限定理,大數定律以及冪律在網絡擁塞動力學中起重要作用。

題外話:但凡能用數學精確描述的,都不真實,都是近似,且一定范圍內的近似。參見牛頓在《自然哲學的數學原理》中的方法論,引入牛頓剛體,伽利略光滑平面…后來的澄清石灰水,橡膠棒與皮毛,玻璃棒與絲綢就顯得在數學上不那么嚴謹了,但真實啊。

先大致描述圖中涉及的分布以及它們的特點。

根據中心極限定理,正態分布是歸宿。骨干網由接入網匯聚而成,匯聚過程正是中心極限定理作用的過程,即任意分布在疊加過程中趨向正態分布。

正態分布很容易理解,它就像(實際上也是)個垃圾堆。水杯,塑料袋,褲頭,襪子,皮鞋,衛生紙都是有用的低熵體(生產它們需要注入能量),將它們丟棄就是疊加它們,最終就是個垃圾堆,里面所有東西都被獨立丟在這里任由時間飛逝而爛掉,任何兩件東西之間沒有任何關系。

等量樣本,正態分布的方差最小,熵最大,所謂中心極限定理表達的就是有用的東西變成垃圾堆的熵增過程。

然而非獨立樣本的分布往往偏離正態分布,比如表現為冪分布,典型的這類場景中往往有人的行為影響。比如貧富占比的冪律,也叫二八定律,馬太效應,這就是說,致富和貧困并非彼此獨立發生的。

題外話:我一直說貨幣系統就是個分布式系統,交易就是供需認知的分布式一致性收斂達到共識的過程,而這個一致性共識永遠不會達到,否則就會打破二八定律。財富在交易過程中積累,而交易過程必有一方比另一方在等價中間物上獲益,否則交易便不會發生。所謂財富分化來自信息差,經濟規律一直在試圖消除信息差達到分布式一致性,在這個過程中產生新的信息差抵制一致性趨向,以此循環,永遠達不到一致性,世界因而發展,財源滾滾來。

接入網流量往往表現為突發,而這類突發和人的上網行為相關,如網紅直播,搶購,刷短視頻,看熱播劇都是人驅動,流量和人之間千絲萬縷的聯系很難滿足獨立事件約束,這表現為接入網流量更不穩定。

無數接入網流量匯聚到骨干,正態分布的流量表現出更穩定的特征,骨干網 buffer 占用相對可預期,流量分布概率密度函數就是個有高度和寬度垃圾堆,便可基于此決策適應它的行為。

流量穩定性可通過大數定律理解,任意時間點流量相當于對數據流的一次抽樣,數據流越多,其均值越接近總量均值,而總量可表示為一個任意足夠大時間段的流量總和,該時間段隨時間向前滑動,其均值保持和單點抽樣均值一致,在此過程中,少量數據流進入退出對整體影響微乎其微,正好像海面始終有浪花,偶爾驚濤駭浪,但總體上的海面卻是平的。

題外話:數量越多的流量,同步的概率越低,代價越大,越趨向于異步,而異步趨勢則表現為鋸齒的變小直到消失,表現為波峰波谷抵消而總體趨平,平面升高或降低需要足夠多流量整體同時同步升高(拉偏期望)才能產生影響,而這又是一個同步行為,前面說了,數量越大,同步概率越低,代價越大,越不可能,因此整體趨穩定。這是一種更好的理解大數定律的方式,正如用垃圾堆理解中心極限定理一樣。

由此,互聯網流量越往邊緣越偏離正態分布,為照顧大而不穩的方差,buff_size = BDP / sqrt(n) 的根號效應減弱(參見 Sizing router buffers 值得一提的是,這篇論文的結論本身就是從中心極限定理導出的),buffer 溢出和 bufferbloat 更容易在邊緣發生,所配置 buffer 反而比實際需要的更大。

要關聯 bbr 就要單獨抽出 bltbw 和 proprt 這兩個 bbr 顧名思義的核心正交要素,看它們如何分別適應接入網和骨干網。
如果 bltbw 在接入網,單流 bbr 將以 “準精確” 方式運行,“準” 是考慮到骨干流量分布特征,rtt 隨正態分布的流量而波動,因此維持 10s 的 minrtt 將不再可信,正確做法是讓 minrtt 跟著骨干網流量而波動。

如果 bltbw 在接入網,多流 bbr 將以 “粗粒度” 方式運行,“粗” 指不但測不準波動的骨干網時延,接入網 buffer 擠占也破壞 bbr 假設,此前我說過多次該話題,不再贅述,bbr 郵件組也沒更好方案,直到 bbr3 依然只是回引 aimd。

如果 bltbw 在骨干網,bbr 的模型假設將完全失效。骨干網洪流中,單獨一條 bbr 流的 probertt 對 buffer 將不會有可識別的影響,對 minrtt 測量的影響遠不如對正態分布的流量波動進行識別和跟隨。如果不想進行這種費力卻依然測不準的識別,回退到 aimd,剩下的交給 RED。

只要 bltbw 在骨干網,bbr 流就像潑進長江的一盆水或一滴水滴在海綿上。設定 aimd,隨波逐流就好。如果要擺脫這悲觀,嘗試著在 bbr 上還能做點事,適應而不是改變,不爭不退,所以就知道我那些旨在提高 bbr 靈敏性而不是提高測量精度的想法的用心良苦了吧。

按照收斂比概念,bltbw 大概率在第一跳,骨干反而近乎無限,只需識別并跟隨其波動即可,但隨著接入網技術的發展(老掉牙的說法是 xx 沒能同樣發展),越來越多的用戶購買越來越大的接入帶寬(我們從運營商購買的帶寬即接入帶寬,而骨干網只是個資源池),bltbw 也會向網絡中心考慮,網絡的統計特征越來越明顯,擁塞控制將越來越指望不上精確,這是和 越來越無效的擁塞控制 不同的另一個的意思,雖然無法精確度量鏈路畫像,但正態分布卻是可預期的,基于這種預期,雖然端到端算法無法影響它,但卻可以適應它,跟隨它。

我的信條,保持穩定,向趨勢靠攏。所謂端到端算法,名字里就沒有網絡,對這類算法,網絡是不可知測不準的,網絡僅能反饋趨勢而不是值,過于執著精確測量的算法犯了唯心主義的錯誤,必跌入形而上學的深淵。

比如 sender 測得 rtt 為 73ms,66ms,51ms,46ms,33ms,30ms,31ms,28ms,34ms,32ms,這充其量只能告訴 sender 擁塞在緩解,你不會真的相信 minrtt 就是 28ms 了吧,那么移指平均后它可信嗎,哦,那只是一種濾波方式,為什么不是另一個呢?基于這些完全不準確但一本正經的粗粒度度量試圖做精確的決策,不是胡扯么?

皮鞋沒有蹬上,露著白襪子。

浙江溫州皮鞋濕,下雨進水不會胖。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/161620.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/161620.shtml
英文地址,請注明出處:http://en.pswp.cn/news/161620.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ubuntu cutecom串口調試工具使用方法(圖形界面)

文章目錄 Ubuntu下使用CuteCom進行串口調試使用指南什么是CuteCom?主要特點 安裝CuteCom使用APT包管理器從源碼編譯安裝 配置串口CuteCom界面解析(啟動cutecom)使用CuteCom進行數據發送和接收配置串口參數數據接收數據發送 高級功能和技巧流控…

Vatee萬騰的數字化掌舵:Vatee科技解決方案的全面引領

隨著數字化時代的到來,Vatee萬騰憑借其卓越的科技實力和全面的解決方案,成功地在數字化探索的航程中掌舵引領。 首先,Vatee萬騰以其強大的數字化科技實力成為行業的引領者。vatee萬騰不僅在人工智能、大數據分析、云計算等前沿領域取得了顯著…

PLC通過Modbus轉Profinet網關連接安華變頻器通訊控制電機案例

背景:近年來,隨著自動化技術的不斷進步,Modbus與Profinet之間的轉換成為了許多工廠和企業普遍關注的問題。 Modbus轉Profinet網關作為兩個不同協議設備連接的橋梁,安華變頻器作為一種電氣設備,能夠改變電源的頻率和電…

負載均衡lvs

簡介 ipvsadm 是 Linux 內核中的 IP 虛擬服務器(IPVS)管理工具。IPVS是 Linux 內核提供的一種負載均衡解決方案,它允許將入站的網絡流量分發到多個后端服務器,以實現負載均衡和高可用性。IPVS通過在內核中維護一個虛擬服務器表&a…

Pytorch中的tensor維度理解

Pytorch中的tensor維度理解 文章目錄 Pytorch中的tensor維度理解摘要打消心理恐懼,從三維學起三維tensor參考文獻 摘要 面對pytorch編程中的tensor時,我不時會感到恐懼。對里面數據是怎么排布的,一直沒有一個直觀的理解。今天我想把這個事情…

springboot(ssm中醫學習服務管理系統 醫學生在線學習平臺Java(codeLW)

springboot(ssm中醫學習服務管理系統 醫學生在線學習平臺Java(code&LW) 開發語言:Java 框架:ssm/springboot vue JDK版本:JDK1.8(或11) 服務器:tomcat 數據庫:mysql 5.7(或…

基于VM虛擬機下Ubuntu18.04系統,Hadoop的安裝與詳細配置

參考博客: https://blog.csdn.net/duchenlong/article/details/114597944 與上面這個博客幾乎差不多,就是java環境配置以及后面的hadoop的hdfs-site.xml文件有一些不同的地方。 準備工作 1.更新 # 更新 sudo apt update sudo apt upgrade2.關閉防火…

MS2401隔離Σ-Δ調制器,可替代ADI的AD7401

產品簡述 MS2401 是一款二階 Σ-Δ 調制器,集成片上數字隔離器,能 將模擬輸入信號轉換為高速 1 位碼流。調制器對輸入信號連續 采樣,無需外部采樣保持電路。模擬信號輸入滿量程為 320 mV ,轉換后的數字碼流的最高數據速率為 2…

C++ Boost Thread 編程總結

1.前言 標準C線程即將到來。CUJ預言它將衍生自Boost線程庫,現在就由Bill帶領我們探索一下Boost線程庫。 就在幾年前,用多線程執行程序還是一件非比尋常的事。然而今天互聯網應用服務程序普遍使用多線程來提高與多客戶鏈接時的效率;為了達到最…

統計voc格式數據中的xml標簽、bndbox到excel表格中

有這么個需求是將xml的內容: 1,filename 2.label 3.bndbox:xmin,xmax,ymin,ymax。 … 將這些東西寫入excel表格中,方便我統計標簽數量和框的分布! 于是撰寫了腳本:xml2csv.py 我的xml文件形式如下。大家的目標檢測格式大同小異! <annotation><folder>UAV_d…

【MySQL】多表查詢、子查詢、自連接、合并查詢詳解,包含大量示例,包你會。

復合查詢 前言正式開始一些開胃菜多表查詢自連接子查詢單行子查詢多行子查詢in關鍵字all關鍵字any關鍵字多列子查詢在from中使用子查詢 合并查詢union 和 union all 前言 我前面博客講的所有的查詢都是在單表中進行的&#xff0c;從這里開始就要專門針對查詢這個話題進行進一步…

ansible學習

一文掌握 Ansible 自動化運維 - 知乎 ansible的安裝與簡單的使用_堅持到所有人都放棄!!!的技術博客_51CTO博客

GIT | 基礎操作 | 初始化 | 添加文件 | 修改文件 | 版本回退 | 撤銷修改 | 刪除文件

GIT | 基礎操作 | 初始化 | 添加文件 | 修改文件 | 版本回退 | 撤銷修改 | 刪除文件 文章目錄 GIT | 基礎操作 | 初始化 | 添加文件 | 修改文件 | 版本回退 | 撤銷修改 | 刪除文件前言一、安裝git二、git基本操作2.1 初始化git2.2 配置局部生效2.3 配置全局生效 三、認識工作區…

淺談堆和棧內存以及編程語言

淺談堆和棧內存以及編程語言 棧和堆C 和 C# 的區別&#xff1a;C#總結 編程語言C匯編語言&#xff08;Assembly Language&#xff09;&#xff1a;機器語言&#xff08;Machine Language&#xff09;&#xff1a; 拓展C#依賴注入&#xff08;Dependency Injection&#xff09;模…

2018年全國碩士研究生入學統一考試管理類專業學位聯考數學試題——解析版

文章目錄 2018 年考研管理類聯考數學真題一、問題求解&#xff08;本大題共 5 小題&#xff0c;每小題 3 分&#xff0c;共 45 分&#xff09;下列每題給出 5 個選項中&#xff0c;只有一個是符合要求的&#xff0c;請在答題卡上將所選擇的字母涂黑。真題&#xff08;2018-01&a…

DRF-項目-(1):構建純凈版的drf項目,不再使用django的后臺管理,django的認證,django的session等功能,作為一個純接口項目

項目的目錄結構&#xff1a; -HeartFailure |-- apps |--user |--HeartFailure |-- static |--manage.py 一、django項目相關的 1、命令行中創建django項目 #1、切換到指定的虛擬環境中 workon my_drf#2、該虛擬環境已經安裝好django和rest_framework了 django-admin startp…

補充:linux rsyslog配置多端口監聽(基于UDP)

rsyslog默認udp監聽端口為514,我們可以配置rsyslog基于udp的多端口監聽,實現監控的豐富性 1.環境信息 環境信息 HostnameIpAddressOS versionModuleNotersyslog1192.168.10.246Red Hat Enterprise Linux Server release 7.7 (Maipo)rsyslogd 8.24.0-38.el7linux基礎配置 Li…

④【Set】Redis常用數據類型: Set [使用手冊]

個人簡介&#xff1a;Java領域新星創作者&#xff1b;阿里云技術博主、星級博主、專家博主&#xff1b;正在Java學習的路上摸爬滾打&#xff0c;記錄學習的過程~ 個人主頁&#xff1a;.29.的博客 學習社區&#xff1a;進去逛一逛~ Redis Set ④Redis Set 操作命令匯總1. sadd …

mysql的聯合索引最左匹配原則問題

MySQL的聯合索引 聯合索引的最左匹配原則會一直向右匹配直到遇到范圍查詢(>、<、between、like) 就會停止匹配。 這個結論并不全對&#xff01;去掉 「between 和 like 」這個結論就沒問題了 經過實驗的證明&#xff0c;我得出的結論是這樣的&#xff1a; 聯合索引的最…

【計算機網絡學習之路】TCP socket編程

文章目錄 前言一. 服務器1. 初始化服務器2. 啟動服務器 二. 客戶端三. 多進程服務器結束語 前言 本系列文章是計算機網絡學習的筆記&#xff0c;歡迎大佬們閱讀&#xff0c;糾錯&#xff0c;分享相關知識。希望可以與你共同進步。 本篇博客基于UDP socket基礎&#xff0c;介紹…