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

MPTCP 聚合吞吐

只破不立假把式,前面连续喷 MPTCP 是个错误,今天说说如何克服。

到底谁在阻碍 MPTCP 聚合吞吐一定要搞清楚,是算法硬伤,是数据不足。前文说过,将一个窗口内的数据多路径 spray 有损吞吐,想要聚合吞吐,非得按窗口 spray 不可。这很容易理解,一条路径窗口填满,不可继续发送时,其它路径接力,方可聚合能量。尽量避免同步协调,串接合力总是比并联来得容易。

但必须注意,子路径必须不能太异构,聚合 Wi-Fi,5G,4G,想都别想,不是说不能提升,而是不划算。我并没说 MPTCP 无法聚合绝对吞吐,我始终在说,用 MPTCP 这样做不值得,如果能不用 MPTCP 达到等价效果(比如用两条标准 TCP 流),性价比则更高。

考虑异构子路径,同理,一条路径不能继续再发时另外的路径接力,困难在于两点:

  • 何时不能继续发送;
  • 原路径等待是否比另外的路径更划算;

这两点困难随着路径异构而加强,比如,如果将接下来的数据调度到一条延时很高的子路径,反而不如原路径等待,如果子路径丢包率高,重传时延亦叠加在内,反而得不偿失了。这些实际困难仅凭 TCP 层面的信息根本无法克服,我就不再重复证明。

数据不足比算法硬伤更严重,所谓巧妇难为无米之炊,与没有 buffer 便无法公平收敛一样,没有足够的数据,调度策略就不能发挥作用,比方说我设计的慢路径倒着发的策略,本意是笨鸟先飞,如果发送队列只有 1,2,3 这 3 个数据,慢路径发 3 就体现不出有多先。

说几个极好的动力叠加的例子。

端午当天参加了亲子龙舟赛。第一局就输了。想起我优化 MPTCP 的教训,第二局预备,我大喊 “所有小学幼儿园小朋友,收起浆,浆不要入水!”,第二局就赢了,但小朋友们也缺失了体验,这怪我。

这么多人频率,方向,力道均一致才能叠加速度,频率不一致会减速,方向,左右力道不一致会减速并跑偏。非常费力,但并不意味着力大就快,后面力量小了或者慢了就会阻碍前面,力量并不能叠加,反而掣肘卸力。这就是最形象的多路径传输优化要点。

再说高铁动车组,多节车厢同时提供动力需要对这些动力同步协调,如果动力加速度稍有不同,就会有损车钩,相当于不同的车厢不断冲撞拉开,这还不如让多节车厢分别自己开,所以高铁的动力控制协调系统非常重要。

风力发电机组是另一个例子,当本质上无法叠加风向和风力时,就分别运行而叠加结果,不至于并行卸力。

无论如何,涉及聚合,叠加的案例,都不是简单的加法,都需要方向的一致性,同步协调性,结构稳定性三要素,而作为端到端协议,TCP 天然缺失同步协调性和结构稳定性,这些是尽力而为网络的属性特征,TCP/IP 并不具备任何调优支撑,任何的优化都可以说是粗暴的运气。

而用这个天然不可优化的尽力而为网络去适配数据中心高速网络的任何设计必然携带天然缺陷,要用不同的思路,总之 TCP/IP 向左,高速网络向右就对了。这个颇具哲学意味的话题,下周再谈。

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

http://www.lqws.cn/news/69679.html

相关文章:

  • StarRocks部署方案详解:从单机到分布式集群
  • TDengine 的 AI 应用实战——电力需求预测
  • 【存储基础】存储设备和服务器的关系和区别
  • 第1篇:数据库中间件概述:架构演进、典型方案与应用场景
  • 序列搜索策略
  • PromQL 快速上手
  • 4.RV1126-OPENCV 图像轮廓识别
  • 【SpringBoot】| 接口架构风格—RESTful
  • 什么是 CPU 缓存模型?
  • 深入探讨redis:缓存
  • vue-13(延迟加载路由)
  • Vue-6-前端框架Vue之基于Plotly.js绘制曲线
  • 【软件测试】web自动化:Pycharm+Selenium+Firefox(一)
  • WebSocket与Reactor模式:构建实时交互应用
  • Qt OpenGL 实现交互功能(如鼠标、键盘操作)
  • 【基于阿里云搭建数据仓库(离线)】Data Studio创建资源与函数
  • [Java恶补day13] 53. 最大子数组和
  • AI大数据模型如何与thingsboard物联网结合
  • 基于SpringBoot运动会管理系统设计和实现(源码+文档+部署讲解)
  • 20250602在荣品的PRO-RK3566开发板的Android13下打开关机对话框
  • 【LeetCode 题解】两数之和(C++/Python 双解法):从语法到算法的全面解析
  • (LeetCode 每日一题)135. 分发糖果 ( 贪心 )
  • 基于Python学习《Head First设计模式》第三章 装饰者模式
  • Spring Security入门:创建第一个安全REST端点项目
  • 好用的C/C++/嵌入式 IDE: CLion的下载安装教程(保姆级教程)
  • 黑马Java面试笔记之 微服务篇(SpringCloud)
  • 【图论 拓扑排序 贪心 临项交换】P5603 小 C 与桌游 题解|普及+
  • XML-BEANS compiled schema: Could not locate compiled schema resource
  • Day43打卡(补41+42) @浙大疏锦行
  • 123网盘SDK-npm包已发布