多路径传输(比如 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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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将围绕全能邮箱全能邮箱&…