组播、单播、广播的区别:视频分发该选哪种
同一路视频发给 100 块屏,三种方式对带宽的消耗差了 100 倍——差别就在"复制发生在哪里"。
- 一句话区分三种方式
- 关键差别:数据包在哪里被复制
- 为什么要组播:省带宽的真实数量级
- 组播地址与 IGMP 基础
- 必须开的交换机功能:IGMP Snooping
- 组播的典型故障与排查
- 什么时候不该用组播
一句话区分三种方式
| 方式 | 发送对象 | 复制发生在 | 在视频分发里的角色 |
|---|---|---|---|
| 单播 Unicast | 一对一,与每个接收者单独建立连接 | 发送端(有几个人就发几份) | 点播、双向互动、跨网段分发 |
| 广播 Broadcast | 子网内所有主机,不管要不要都投递 | 子网内每台主机各收一份 | 基本不用于视频分发 |
| 组播 Multicast | 加入同一组播组的接收者 | 网络分叉处(尽可能远的分叉点才复制) | 局域网内一路视频发多屏 |
关键差别:数据包在哪里被复制
这是理解三者的核心。
- 单播:发送者要和每一个接收者建立独立的点对点连接。100 个观众 = 发送端发出 100 份相同数据。发送端带宽和 CPU 是瓶颈。
- 广播:在 IP 子网内广播数据包,子网内所有主机都会收到,不论是否需要。因为无法跨路由器,它的使用范围非常小,只在本地子网内有效,通常由网络设备控制。视频分发几乎不用它——它会无差别打扰网内所有设备。
- 组播:发送者只发一份。组播路由器借助组播路由协议建立树型路由,只在尽可能远的分叉路口才复制和分发。既提高了数据传送效率,也减少了骨干网络拥塞的可能。
一句话总结:单播是"给每个人各发一封",广播是"全楼层喊一嗓子",组播是"只喊给举手要听的人,且在岔路口才分头传话"。
为什么要组播:省带宽的真实数量级
假设一路 8 Mbps 的 1080p 视频要发给 60 块屏幕:
| 方式 | 发送端上行占用 | 骨干链路占用 | 结论 |
|---|---|---|---|
| 单播 | 8 Mbps × 60 = 480 Mbps | 480 Mbps | 千兆网直接打满,编码器也扛不住 |
| 广播 | 8 Mbps | 8 Mbps,但网内所有设备被迫处理 | 干扰全网的其它业务,不可用 |
| 组播 | 8 Mbps | 约 8 Mbps(分叉后才增加) | 屏数增加几乎不增加发送端压力 |
这就是为什么局域网内"一路源发多屏"的标准做法是组播:地铁 PIS、校园信息发布、展厅多屏同步、监控上墙,都是这个模型。
组播地址与 IGMP 基础
- 组播地址范围:IPv4 的 D 类地址 224.0.0.0 – 239.255.255.255。其中 224.0.0.0–224.0.0.255 是本地网络控制保留段(如 224.0.0.1 为所有主机),不要用于业务流;239.x.x.x 是管理范围地址,适合在组织内部规划使用。
- IGMP:接收者通过 IGMP 向本地路由器声明"我要加入这个组"。编码器/解码器侧要正确配置组播 IP 与端口,接收端才能加入。
- 常见实践:组播地址选 239.x.x.x 段并做地址规划,避免与其它业务冲突;同一组播地址不要被两路不同的流占用。
必须开的交换机功能:IGMP Snooping
这是组播部署最常见的坑:二层交换机默认把组播帧当广播处理,向所有端口泛洪。结果是"用了组播,但全网还是被灌满",而且接了几十块屏之后交换机扛不住,表现为画面卡死、全网变慢。
解决办法是在交换机上开启 IGMP Snooping:交换机监听 IGMP 报文,只把组播流转发给真正加入该组的端口。
- 必开:IGMP Snooping(二层交换机上)。
- 按需:IGMP Querier(查询器)。网络里没有三层设备做查询器时,需要指定一台交换机承担,否则组成员表项会老化失效。
- 检查:确认组播流没有被泛洪——在交换机上查看端口流量,未加入组的端口不应有组播流量。
组播的典型故障与排查
| 现象 | 常见原因 | 处理 |
|---|---|---|
| 全部接收端无画面 | 组播地址/端口配置不一致,或编码器未启用组播输出 | 先用 VLC 在接收端按 udp://@地址:端口 直连验证 |
| 画面时有时无、几分钟后消失 | 缺少 IGMP Querier,组表老化 | 在网络中启用查询器 |
| 全网变慢、非接收端也卡 | 交换机未开 IGMP Snooping,组播被泛洪 | 开启 IGMP Snooping |
| 跨网段收不到 | 路由器未配置组播路由(PIM 等) | 组播默认不跨三层;需组播路由或改走单播中继 |
| 部分屏正常部分卡 | 某段链路带宽不足或该端口丢包 | 逐端口查流量与错误计数 |
什么时候不该用组播
- 要跨公网:公网不转发组播,跨地域分发应走单播 + CDN 或 SRT。
- 接收端很少(比如就 2–3 个):单播更简单,组播的交换机配置成本不划算。
- 需要每个接收端独立控制进度:点播类业务天然是单播模型。
- 网络设备不可控:如果交换机不是你管的,且对方不愿开 IGMP Snooping,用组播会带来全网风险。
实际项目里更常见的组合是:局域网内组播分发 + 需要跨网段的部分走单播中继。选型时先把网络拓扑画出来,再决定哪一段用组播。
本文涉及的产品
全部自研自产,支持 OEM / ODM,3 年质保
常见问题
组播和广播的区别到底是什么?
广播是向子网内所有主机投递,不管对方要不要,且不能跨路由器;组播只发给加入该组的接收者,由组播路由在分叉处才复制数据,效率更高、影响范围可控。
为什么开了组播,网络反而变慢了?
通常是二层交换机没开 IGMP Snooping,把组播帧当广播向所有端口泛洪。开启 IGMP Snooping 后,交换机只会把流转发给真正加入该组的端口。
组播地址该怎么选?
IPv4 组播使用 224.0.0.0–239.255.255.255。224.0.0.x 段是本地网络控制保留地址,不要占用业务流;建议用 239.x.x.x 管理范围地址并做好地址规划,避免与其它业务冲突。
组播能跨网段或跨公网吗?
默认不能。组播在二层生效,跨三层需要路由器配置组播路由协议;公网则不转发组播。跨地域分发应改用单播 + CDN 或 SRT。