公众号旧文
IP 组播地址224.0.0.0/4到底有没有人用?
上篇文章IPv4 早就不够用了,却还闲置着 5 亿个地址中,作者说:

结果评论区马上有人出来反驳:

于是只好再发一篇,给上一篇打个补丁,希望能让自己不那么垃圾。
一、IP组播的初衷:让一份数据同时送给很多人
假设有一场直播,有 1 万人同时观看:
- 单播(Unicast):服务器需要发送 1 万份数据
- 组播(Multicast):服务器只发送 1 份数据
网络结构大概是这样:
服务器
│
├─ 用户A
├─ 用户B
├─ 用户C
└─ 用户D
单播是每个用户一条流。
而组播则变成:
服务器
│
网络节点复制
│
├─ 用户A
├─ 用户B
├─ 用户C
└─ 用户D
理论上,组播是极其节省带宽的技术。
因此在 IPv4 地址规划中,还专门预留了一整块地址:
224.0.0.0 – 239.255.255.255
整整 2.68 亿个地址。
二、现实:公网互联网几乎不用组播
虽然组播在理论上很美好,但在真实的公网互联网里,它并没有被大规模使用。
原因主要有三个。
1.网络运营商之间很难互通
互联网并不是一个统一的网络,而是很多运营商拼接在一起:
电信 ↔ 联通 ↔ 移动 ↔ 国外运营商
组播需要所有网络设备支持:
- IGMP
- PIM
- 组播路由
但现实情况是大多数运营商并不愿意在骨干网上开放组播互通。
维护成本高,收益却很低。
2.商业模式不适合
互联网视频平台需要:
- 用户鉴权
- 广告插入
- 精确统计
- 按用户计费
- 不同清晰度
这些需求都更适合HTTP + CDN,而不是组播。
今天主流的视频直播协议,例如:
- HLS
- DASH
- HTTP-FLV
全部都是 单播 + CDN 的模式。
3.网络复杂度增加
组播网络需要维护:
- 组成员列表
- 路由树
- 复制节点
这会让网络运维复杂度显著增加。
很多骨干网运营商干脆选择直接关闭组播。
三、但组播其实一直在大量使用
虽然公网互联网很少用组播,但在很多专用网络中,它反而是主力技术。
1.IPTV(运营商电视)
中国电信、联通、移动的 IPTV 系统,大量使用组播。
电视节目通常对应一个组播地址,例如:
239.x.x.x
当用户打开某个频道时:
- 机顶盒发送 IGMP Join
- 网络把对应频道流量转发过来
这样无论 1 人看还是 1 万人看,骨干网都只需要一份数据。
2.数据中心内部
在大型数据中心中,组播常用于:
- 分布式系统同步
- 服务发现
- 数据广播
因为这些网络是可控环境。
3.校园网与企业网
很多校园直播、会议系统,也使用组播进行分发。
例如:
- 校园电视
- 内部培训直播
- 广播系统
4.金融行情系统
金融交易系统中,行情数据常常通过组播发送。
原因是同一份数据需要同时送到大量终端。
四、为什么会产生“组播没人用”的错觉?
因为今天人们接触最多的是:
- 抖音
- B站
- YouTube
- Netflix
这些全部都是CDN + 单播。
于是很多人就误以为组播已经被淘汰了。
但只是应用场景不同。
公网互联网选择 CDN。
而封闭网络仍然大量使用组播。
五、技术世界常常如此
技术从来不是好坏之分,而是适不适合。
正如中国的一句老话:橘生淮南则为橘,生于淮北则为枳。
同样一项技术,在不同环境下,命运也完全不同。
IP组播在公网互联网没能流行,但在运营商网络、金融系统、数据中心里,它依然默默工作着。
很多用户每天看电视、看行情,却从未意识到背后其实正是组播在传输数据。
所以说 IP 组播并没有消失,只是换了一个地方继续存在。
(不知道这样是不是能让骂我的读者们满意了呢…)