多路徑傳輸(比如 MPTCP)控制實時突發

實時突發很難控制,因為 “實時” 和 “突發” 相互斥。實時要求避免排隊,而突發必然要排隊,最終的解決方案都指向找一個公說公有理,婆說婆有理的中間點,這并沒解決問題,只是權衡了問題。

這種局部解決問題的例子遍地皆是,BBR 就是一例。號稱 pacing rate control 替換 cwnd 有效抑制了 bufferbloat,但為了支撐 BBR 狀態機,ProbeRTT 引入了周期性 send-buffer 的 bufferbloat,因為在 ProbeRTT 期間,應用程序的數據必須暫存在 send-buffer,進而引發 bufferbloat。BBR 并沒有解決 bufferbloat,只是轉移了它。我的具體解法參見 BBR 動力學觀感

本文介紹一個控制實時突發的方法。再遇到微突發,incast 的時候,應對自如。

多路徑傳輸不宜用于優化網絡傳輸性能的手段,但可以由于提供路徑備份以增強網絡可靠性,也算是正向收益,除此之外,它還可以用于吸收網絡突發,這是不易想到的點。但如果跨界看下別的方面,這偏偏又是最容易想到的點,畢竟宜疏不宜堵的自然方法論在自然界已經被見證了千萬年。

互聯網經理們思想太過局限不夠狂野,提到多路徑就是聚合帶寬,提到抖動就用 buffer 平滑,要么提出一個有的沒得形而上論點去除抖動,其實他們不知道,統計復用系統,抖動是客觀的,就像 “世界是物質的” 一樣客觀。很少有經理哪怕去重組一下多路徑,帶寬,抖動,buffer 四者,用多路徑平滑抖動,這不又是一篇可以參卷的論文么?

網絡中的突發無法預測,似乎只能通過路徑上的 buffer 來平滑,就像大壩一樣,但如此一來則必然引入延時,所有的研究都在突發和延時之間做加減乘除的交易,毫無例外。

另一方面,近來興起的多路徑傳輸全部聚焦在提高聚合吞吐,可靠性以及負載均衡等目標,多路徑似乎就是一個全有或全無的邏輯,但理論和實踐表明,多路徑傳輸非常不可控。

重組這些邏輯組件(方法論來自《技術的本質》[布萊恩·阿瑟])就是高尚的。當沒有突發流量時,用單路徑傳輸,遭遇突發流量時啟用多路徑實時分擔剩余流量,仔細看,這是一個多么自然的方式,從潰壩,潰堤到腦出血,從長假景區,春運火車站到年前超市的臨時服務點,無論自然界還是人類社會,無一例外都自發采用這種模式應對超額突發。

本質上,傳輸路徑也是種 buffer,和路由器串行的內存 buffer 不同的是,它具有時間延展性,可以理解為一種并行 buffer,好處在于,緩存數據的同時,它還能往前走。那么當數據突發發生時,發送組件幾乎肯定能檢測到某種閾值越界而 “溢出”,只需要計算下面的值:

T a r r i v e = T M a i n Q u e u e W a i t + M a i n R T T 2 = M a i n Q u e u e L e n M a i n D e l i v e r y R a t e + M a i n R T T 2 T_{\mathrm{arrive}}=T_{\mathrm{MainQueueWait}}+\dfrac{\mathrm{MainRTT}}{2}=\dfrac{\mathrm{MainQueueLen}}{\mathrm{MainDeliveryRate}}+\dfrac{\mathrm{MainRTT}}{2} Tarrive?=TMainQueueWait?+2MainRTT?=MainDeliveryRateMainQueueLen?+2MainRTT?

然后在分擔路徑中選擇一個滿足 T Sub_arrive = SubQueueLen SubDeliveryRate + SubRTT 2 T_{\text{Sub\_arrive}}=\dfrac{\text{SubQueueLen}}{\text{SubDeliveryRate}}+\dfrac{\text{SubRTT}}{2} TSub_arrive?=SubDeliveryRateSubQueueLen?+2SubRTT? 的路徑即可。既然是突發,當它發生時,SubDeliveryRate = ?,SubQueueLen = 0,只要知道 SubRTT 就能計算,不必太精確,隨意選擇一個近似滿足條件的路徑即可分擔突發,receiver 要做的只是稍微增大接收 buffer,如此一來即可不損失延時而獲得平滑突發的效果。

只近似而不求精確計算的考量在于,相比堵在靜態 buffer 排隊,把數據 schedule 到其它路徑至少保證它隨時間前行,延時肯定降低,同時又可省略甚至涉及編解碼的機巧復雜但注定不準的啟發式算法,反正怎么都算不準,干脆就不算,直接取近似(猜硬幣正反面,隨機蒙正確率最高),所以我可以直接算 T Sub_arrive = α + SubRTT 2 T_{\text{Sub\_arrive}}=\alpha+\dfrac{\text{SubRTT}}{2} TSub_arrive?=α+2SubRTT?,其中 α \alpha α 取適合網絡并足夠小的常量,比如 DCN 取 5us,WAN 取 5ms,諸如此類。

只要 “溢出” 不再,立即停止分擔路徑,回歸單路徑,如此反復。

上善若水,下流至賤,突發洪水泛濫,蔓延出小流,洪峰后隨即干涸,順水流之自然性,有路就讓它流走,否則必有害處。“天下莫柔弱于水,而攻堅強者莫之能勝”,“流水之為物也,不盈科不行”,“行于地中,流而不盈”,大禹,老子孔孟之天道,經理們未必真明白。

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

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

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

相關文章

函數式編程思想詳解

函數式編程思想詳解 1. 核心概念 不可變數據 (Immutable Data) 數據一旦創建,不可修改。任何操作均生成新數據,而非修改原數據。 優點:避免副作用,提升并發安全,簡化調試。 Java實現:使用final字段、不可變…

iOS 主要版本發布歷史

截至 2025 年 5 月,iOS 的最新正式版本是 iOS 18,于 2024 年 9 月 16 日 正式發布。此前的 iOS 17 于 2023 年 9 月 18 日 發布,并在 2024 年被 iOS 18 取代。(維基百科) 📱 iOS 主要版本發布歷史 以下是 iOS 各主要版本的發布日…

矩陣詳解:線性代數在AI大模型中的核心支柱

🧑 博主簡介:CSDN博客專家、CSDN平臺優質創作者,高級開發工程師,數學專業,10年以上C/C, C#, Java等多種編程語言開發經驗,擁有高級工程師證書;擅長C/C、C#等開發語言,熟悉Java常用開…

基于51單片機和8X8點陣屏、獨立按鍵的飛行躲閃類小游戲

目錄 系列文章目錄前言一、效果展示二、原理分析三、各模塊代碼1、8X8點陣屏2、獨立按鍵3、定時器04、定時器1 四、主函數總結 系列文章目錄 前言 用的是普中A2開發板。 【單片機】STC89C52RC 【頻率】12T11.0592MHz 【外設】8X8點陣屏、獨立按鍵 效果查看/操作演示&#xff…

區塊鏈可投會議CCF C--APSEC 2025 截止7.13 附錄用率

Conference:32nd Asia-Pacific Software Engineering Conference (APSEC 2025) CCF level:CCF C Categories:軟件工程/系統軟件/程序設計語言 Year:2025 Conference time:December 2-5, 2025 in Macao SAR, China …

pdf圖片導出(Visio\Origin\PPT)

一、Visio 導入pdf格式圖片 1. 設計->大小,適應繪圖。 2. 文件->導出,導出為pdf格式。 上面兩部即可得到只包含圖的部分的pdf格式。 如果出現的有默認白邊,可以通過以下方式設置: 1. 文件->選項->自定義功能區->…

vector的實現

介紹 1. 本質與存儲結構 動態數組實現:vector 本質是動態分配的數組,采用連續內存空間存儲元素,支持下標訪問(如 vec[i]),訪問效率與普通數組一致(時間復雜度 O (1))。動態擴容機制&…

【Linux筆記】防火墻firewall與相關實驗(iptables、firewall-cmd、firewalld)

一、概念 1、防火墻firewall Linux 防火墻用于控制進出系統的網絡流量,保護系統免受未授權訪問。常見的防火墻工具包括 iptables、nftables、UFW 和 firewalld。 防火墻類型 包過濾防火墻:基于網絡層(IP、端口、協議)過濾流量&a…

el-date-picker 前端時間范圍選擇器

控制臺參數&#xff1a; 前端代碼&#xff1a;用數組去接受&#xff0c;同時用 value-format"YYYY-MM-DD" 格式化值為&#xff1a;年月日格式 <!-- 查詢區域 --><transition name"fade"><div class"search" v-show"showSe…

在 macOS 上安裝 jenv 管理 JDK 版本

在 macOS 上安裝 jenv 并管理 JDK 版本 在開發 Java 應用程序時&#xff0c;你可能需要在不同的項目中使用不同版本的 JDK。手動切換 JDK 版本可能會很繁瑣&#xff0c;但幸運的是&#xff0c;有一個工具可以簡化這個過程&#xff1a;jenv。jenv 是一個流行的 Java 版本管理工…

2025年全國青少年信息素養大賽復賽C++集訓(16):吃糖果2(題目及解析)

2025年全國青少年信息素養大賽復賽C集訓&#xff08;16&#xff09;&#xff1a;吃糖果2&#xff08;題目及解析&#xff09; 題目描述 現有n(50 > n > 0)個糖果,每天只能吃2個或者3個&#xff0c;請計算共有多少種不同的吃法吃完糖果。 時間限制&#xff1a;1000 內存…

ARM筆記-嵌入式系統基礎

第一章 嵌入式系統基礎 1.1嵌入式系統簡介 1.1.1嵌入式系統定義 嵌入式系統定義&#xff1a; 嵌入式系統是以應用為中心&#xff0c;以計算機技術為基礎&#xff0c;軟硬件可剪裁&#xff0c;對功能、可靠性、成本、體積、功耗等有嚴格要求的專用計算機系統 ------Any devic…

大語言模型(LLM)入門項目推薦

推薦大語言模型(LLM)的入門項目 TiaoYu-1。 https://github.com/tiaoyu1122/TiaoYu-1 項目優點&#xff1a; 幾乎每一行代碼(一些重復的代碼除外)都添加了注釋&#xff0c;詳細介紹了代碼的作用&#xff0c;方便閱讀與理解。基本上覆蓋了常見 LLM 模型的全部訓練流程&#x…

Linux里more 和 less的區別

在 Linux/Unix 系統中&#xff0c;more 和 less 都是用于分頁查看文本文件的命令&#xff0c;但 less 是 more 的增強版&#xff0c;功能更強大。以下是它們的核心區別和用法對比&#xff1a; 1. 基礎功能對比 特性moreless&#xff08;更強大&#xff09;向前翻頁? 僅支持向…

基于PDF流式渲染的Word文檔在線預覽技術

一、背景介紹 在系統開發中&#xff0c;實現在線文檔預覽與編輯功能是許多項目的核心需求&#xff0c;但在實際的開發過程中&#xff0c;我們經常會面臨以下難點&#xff1a; 1&#xff09;格式兼容性問題&#xff1a;瀏覽器原生不支持解析Word二進制格式&#xff0c;直接渲染會…

ai學習--python部分-1.變量名及命名空間的存儲

初學代碼時總有一個問題困擾我&#xff1a;a 10 # a指向地址0x1234&#xff08;存儲10&#xff09; 變量a的值10存儲在0x1234&#xff0c;那么變量a需要存儲嗎&#xff1f;a又存儲在什么地址呢 目錄 1. ??命名空間的本質?? 2. ??命名空間的內存占用?? 3. ??…

Leetcode 3563. Lexicographically Smallest String After Adjacent Removals

Leetcode 3563. Lexicographically Smallest String After Adjacent Removals 1. 解題思路2. 代碼實現 題目鏈接&#xff1a;3563. Lexicographically Smallest String After Adjacent Removals 1. 解題思路 這次的最后一題同樣沒有自力搞定&#xff0c;簡直了…… 這道題還…

微信小程序之Promise-Promise初始用

我們來嘗試使用Promise。 1、需求&#xff0c;做個抽獎的按鈕&#xff0c; 抽獎規則&#xff1a; 30%的幾率中獎&#xff0c;中獎會提示恭喜恭喜&#xff0c;獎品為10萬 RMB 勞斯萊斯優惠券&#xff0c;沒中獎會提示再接再厲。 2、先搭界面&#xff1a; <view class&qu…

spring-boot-starter-data-redis應用詳解

一、依賴引入與基礎配置 添加依賴 在 pom.xml 中引入 Spring Data Redis 的 Starter 依賴&#xff0c;默認使用 Lettuce 客戶端&#xff1a; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis<…

全能郵箱全能郵箱:實現郵件管理的自動化!

全能郵箱全能郵箱&#xff1a;實現郵件管理的自動化&#xff01; 全能郵箱全能郵箱的配置教程&#xff1f;如何注冊烽火域名郵箱&#xff1f; 全能郵箱全能郵箱作為一種創新的郵件管理解決方案&#xff0c;正逐漸改變我們處理郵件的方式。蜂郵EDM將圍繞全能郵箱全能郵箱&…