当前位置: 首页 > news >正文

多路径传输(比如 MPTCP)控制实时突发

实时突发很难控制,因为 “实时” 和 “突发” 相互斥。实时要求避免排队,而突发必然要排队,最终的解决方案都指向找一个公说公有理,婆说婆有理的中间点,这并没解决问题,只是权衡了问题。

这种局部解决问题的例子遍地皆是,BBR 就是一例。号称 pacing rate control 替换 cwnd 有效抑制了 bufferbloat,但为了支撑 BBR 状态机,ProbeRTT 引入了周期性 send-buffer 的 bufferbloat,因为在 ProbeRTT 期间,应用程序的数据必须暂存在 send-buffer,进而引发 bufferbloat。BBR 并没有解决 bufferbloat,只是转移了它。我的具体解法参见 BBR 动力学观感

本文介绍一个控制实时突发的方法。

多路径传输不宜用于优化网络传输性能的手段,但可以由于提供路径备份以增强网络可靠性,也算是正向收益,除此之外,它还可以用于吸收网络突发,这是不易想到的点。但如果跨界看下别的方面,这偏偏又是最容易想到的点,毕竟宜疏不宜堵的自然方法论在自然界已经被见证了千万年。

互联网经理们思想太过局限不够狂野,提到多路径就是聚合带宽,提到抖动就用 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,诸如此类。

只要 “溢出” 不再,立即停止分担路径,回归单路径,如此反复。

上善若水,下流至贱,突发洪水泛滥,蔓延出小流,洪峰后随即干涸,顺水流之自然性,有路就让它流走,否则必有害处。“天下莫柔弱于水,而攻坚强者莫之能胜”,“流水之为物也,不盈科不行”,“行于地中,流而不盈”,大禹,老子孔孟之天道,经理们未必真明白。

浙江温州皮鞋湿,下雨进水不会胖。

相关文章:

  • 通过上传使大模型读取并分析文件实战
  • FPGA高效验证工具Solidify 8.0:全面重构图形用户界面
  • 安全运营与威胁对抗体系
  • SmartSoftHelp 之 SQL Server 数据库安全备份与安全还原详解---深度优化版:SmartSoftHelp DeepCore XSuite
  • AtCoder Beginner Contest 406(ABCD)
  • 《Python语言程序设计》第4章第7题,这次利用之前学过的第7章的内容使用对象和类,来修改这道题
  • 跟Gemini学做PPT:字号选择
  • 智能交易革命:基于Python构建全自动加密货币交易系统(CCXT/TensorTrade实战指南)
  • CyberStrikeLab-Lab9-WriteUp
  • AI 数据采集实战指南:基于 Bright Data 快速获取招标讯息
  • C++高频面试考点 -- 智能指针
  • Android Studio历史版本下载方法
  • 2025年电工杯A题第一版本Q1-Q4详细思路求解+代码运行
  • 【Python 算法零基础 4.排序 ⑤ 归并排序】
  • 【软考架构】2025系统架构设计师开坑指南——后端开发(科目选择,考试大纲,真题分析)
  • ROS合集(七)SVIn2声呐模块分析
  • 后端环境配置
  • 【黑马JavaWeb+AI知识梳理】后端Web基础03 - MySQL概述
  • 服务器日志监控与分析:提前发现黑客攻击迹象
  • 基于SpringBoot+Vue的社区医院信息平台设计与实现
  • 怎么找网站开发公司/最好用的搜索神器
  • 哪些网站做的比较好看/苏州新闻今天最新消息新闻事件
  • 吉林做网站的公司/什么叫营销
  • 济宁网站优化公司/百度官网首页入口
  • 网站组织结构图/适合发表个人文章的平台
  • 郴州网站制作建设/外链