7.1 多方拓扑选型


文档摘要

7.1 多方拓扑选型 本节摘要:两个人通话时点对点直连是优雅的,可会议室里八个人互相要看画面呢?把画面在服务器混成一路呢?上万观众呢?拓扑选型就是这笔账。本节把 Mesh、SFU、MCU 三种形态的上行开销、服务器成本与延迟特征算成公式,给出两道真实业务约束下的推演,并回答 simulcast 为什么只有在 SFU 下才兑现价值。 目标清单 阅读完本节,你应当能够: 画出三种拓扑的连接形态,说出各自的数据流走向; 用人数写出 Mesh 上行开销公式,判断 Mesh 的适用上限; 说出 SFU「选择性转发」的两层含义(转发不解码、按需选流); 算清 MCU 的成本构成:解码、混流、再编码的算力与延迟; 按业务约束(人数、终端能力、预算、延迟容忍)完成一次书面选型推演;

7.1 多方拓扑选型

本节摘要:两个人通话时点对点直连是优雅的,可会议室里八个人互相要看画面呢?把画面在服务器混成一路呢?上万观众呢?拓扑选型就是这笔账。本节把 Mesh、SFU、MCU 三种形态的上行开销、服务器成本与延迟特征算成公式,给出两道真实业务约束下的推演,并回答 simulcast 为什么只有在 SFU 下才兑现价值。

目标清单

阅读完本节,你应当能够:

  1. 画出三种拓扑的连接形态,说出各自的数据流走向;
  2. 用人数写出 Mesh 上行开销公式,判断 Mesh 的适用上限;
  3. 说出 SFU「选择性转发」的两层含义(转发不解码、按需选流);
  4. 算清 MCU 的成本构成:解码、混流、再编码的算力与延迟;
  5. 按业务约束(人数、终端能力、预算、延迟容忍)完成一次书面选型推演;
  6. 解释「simulcast 依赖 SFU」的完整因果链。

一、问题与直觉:三方通话就是分水岭

第三个人加入通话的那一刻,问题变质了。P2P 直连下,每个人要把自己的媒体发给其他所有人——三人要维护三条连接,八人要维护十二条;更要命的是上行:家里宽带的上行本来就没多少,八人互看意味着每人向七个方向各发一路视频。Mesh(全互联)在四人左右就会把普通家宽的上行榨干,这就是分水岭。

三种拓扑本质上是三种「把复杂度放在哪里」的选择。Mesh 把复杂度放在每个终端;SFU(Selective Forwarding Unit,选择性转发单元)把它交给服务器——服务器不解码不重编码,只按需转发;MCU(Multipoint Control Unit,多点控制单元)更进一步——服务器把所有人的画面解码、混成一路、再编码发出,终端拿到的是一份现成的合成画面。

二、核心原理:三本账

Mesh 的账。上行开销随人数线性恶化:单路上行码率乘以「观看人数」,八人互看就是七倍单路。连接数随人数平方增长(n 乘 n 减一再除以二条)。优点同样鲜明:没有服务器媒体成本、天然低延迟、私密性最好(数据不出终端)。适用上限清晰:人数少(三到四人以内)、且人人要看人人。

SFU 的账。终端只上行一份(或 simulcast 的几份),服务器下行按需分发——n 人会议服务器出向流量是「每人一路乘以 n」的总量,这正是它要买带宽的原因。SFU 的「选择性」有两层:转发不解码(省算力,延迟极低),按需选流(配合 6.3 的 simulcast,给大屏发高清、给手机发低清)。第二层含义是 simulcast 价值的兑现口:没有 SFU 的选流,simulcast 发多路流只是白白多耗上行——发送端自己无法知道哪个接收端要哪档。这笔因果链解释了为什么做会议产品几乎必选 SFU。

MCU 的账。服务器承担全量解码、合成、再编码——按 CPU 算力的真金白银计价,且混流环节天然增加端到端延迟(合成要等最慢的输入)。换来的好处是:终端拿单一码流,最弱的设备也能看;观看端数量可以极大(合成后的流一路分发即可)。它是「终端弱、观众多、算力足」场景的老牌答案。

图:三种拓扑的连接形态与代价对照

图:三种拓扑的连接形态与代价对照

三、工程实践要点:约束映射与混合形态

选型的操作化步骤是把业务约束逐条翻译成拓扑要求:人数决定 Mesh 出局线;终端能力分布决定 MCU 是否必要(教室里的老旧平板是常见触发条件);预算结构决定 SFU 与 MCU 之间「带宽钱」与「算力钱」的偏好;延迟容忍卡死 MCU 的上限(连麦互动场景混流延迟不可接受,观看场景无所谓)。四条翻译完,答案基本只剩一个。

混合形态是常态而非例外。常见配置:连麦走 SFU 保低延迟;观众端看的是 SFU 顺带混出的一路合屏(很多现代 SFU 支持轻量合成,介于纯转发与重编码之间);录制与转写从 SFU 分叉拉流。拓扑不是单选题,而是按数据流的角色分派。

「自建还是买云服务」是选型表之外的另一道题。云通信服务把 SFU、录制、弱网对抗打包成接口,接入快,但每分钟计费的成本在用量上来后远超自建,且媒体参数的可控性有限;自建开源 SFU 免授权费、可深度定制(选流策略、混流布局、数据通道广播),代价是运维与协议细节的学习曲线。务实的路径是分阶段:验证期用云服务快速上线,规模成型后把流量最大的主链路迁到自建,长尾与海外节点继续用云——拓扑选型与供应商策略一样,都是可以随规模演进的决策,不必一次定终身。

完整案例:在线课堂从 Mesh 到 SFU 的迁移

背景:某在线小班课产品最初用 Mesh:老师与六名学生互看,学生设备参差。运营反馈两类投诉:学生端画面卡成幻灯片(上行撑不住六路发送),以及老师端看不到部分学生的画面(个别学生上行早饱和,连接质量崩了)。

操作:迁移到开源 SFU。学生端只上行一份 simulcast 三档流(6.3 节的配置直接复用),老师端上行一份;SFU 按各端带宽选流下发;学生端开启「发言才高清」策略——不发言时收到的是别人的低清流。信令服务沿用第 3 章的实现,只新增了 SFU 侧的房间与转发协议对接。

结果:学生端上行占用降到原来的四分之一左右;卡顿投诉基本消失;弱网学生自动降档观看,不再拖累全课堂。带宽成本转移到服务器出向,随学生数线性增长,进入可预算区间。

解读:迁移的真正杠杆不是「服务器变强了」,而是「上行瓶颈被结构性解除」——Mesh 的死穴是人人上行互发,SFU 把上行压到一份,这正好是家庭宽带最稀缺的资源。选型的第一性原理是「稀缺资源在哪里」,而不是「哪个架构更先进」。

变式:如果该产品的班型变成一对多讲座(一名老师、数百听众),SFU 分发依然成立(学生只收不发,上行压力消失);但若听众动辄上万,出向带宽账单开始刺眼,就轮到「SFU 出一路主画面、经 CDN 分发」的混合方案——用几秒的 CDN 延迟换分发成本的数量级下降,互动通道(聊天、举手)继续走数据通道保实时。延迟与成本的这条光谱,值得每个产品按业务亲自标定一次。

本节要点回顾

  • 拓扑是复杂度的分配方案:Mesh 放终端、SFU 放带宽、MCU 放算力,没有免费的位置。
  • Mesh 的上限写在公式里:上行码率乘观看数,三四人是普通家宽的实用边界。
  • SFU 的两层选择性:不解码的转发与按需的选流,后者正是 simulcast 价值的兑现口。
  • MCU 用算力和延迟换兼容:终端最弱、观众最多的场景才是它的主场。
  • 约束翻译法:人数、终端、预算、延迟四条约束逐条映射,答案通常自动浮现;混合形态是常态。

作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U