Skip to content

IP多播

多播的概念

多播(组播,Multicast)解决的是“一对多”高效分发问题:

  • 单播:一对一;\(N\) 个接收者要发 \(N\) 份流量

  • 广播:一对所有;大量无关主机被迫接收/丢弃,浪费资源(且 IPv6 没有广播)

  • 多播:一对“组成员”;网络在分叉点复制分组,节省带宽

Tip

发送端只发 1 份,网络在需要处复制。

IP多播地址

IPv4 多播地址

  • D 类地址224.0.0.0 ~ 239.255.255.255

  • 多播的“目的地址”写成组地址,表示“这是一份发给某个组的内容”

常见范围理解

  • 224.0.0.x:常用于链路本地控制(理解即可,不要求死记每个具体地址)

  • 其余范围:可用于一般多播应用(但实际互联网上部署受限)

在局域网上进行硬件多播

这一节常见考法:IP 多播如何在同一局域网交付到二层?

  • 在以太网中,最终仍要靠 MAC 地址投递

  • 因此需要把“IPv4 组播地址”映射到“以太网组播 MAC”

映射思想

IPv4 组播地址空间远大于 MAC 组播地址可用空间,因此映射是“多对一”的:

  • 不同的 IPv4 组播地址可能映射到同一个组播 MAC

  • 结果:网卡层面可能会收到“多余的组播帧”,再由主机在 IP 层过滤

Note

这也是为什么多播在二层仍可能产生一定“无关接收”的开销。

IGMP与多播路由协议

IGMP:组成员管理(主机 ↔ 本地路由器)

IGMP(Internet Group Management Protocol)只解决一件事:本地网段里,哪些主机加入了哪些组?

  • 参与者:主机 + 本地多播路由器

  • 不做的事:IGMP 不负责在路由器之间算“多播怎么走”(那是多播路由协议的事)

做题时可用的“过程主线”(口述即可):

  1. 主机加入某组(发送加入信息)

  2. 路由器周期性查询该组是否仍有成员

  3. 若无成员则剪枝:停止为该网段转发该组流量

多播路由协议:构造分发树(路由器 ↔ 路由器)

多播路由的目标是:把“从发送者到所有组成员”的路径组织成一棵(或多棵)分发树,确保在分叉点复制。

408 常考的是“树的两种思路”:

  • 源树(Source-based Tree):以源为根(每个源一棵树)

  • 共享树(Shared Tree):以汇聚点/核心路由器(RP)为根(多源共享一棵树)

你不需要掌握具体协议细节(如 PIM 的各种模式),但要能回答:

  • 为什么需要“树”?(避免每个接收者都单独走单播)

  • 为什么会有“剪枝/嫁接”?(组成员动态变化)


408 高频易错点清单

  • 多播不是广播:只面向“加入组”的主机

  • IGMP 管的是“本地组成员”,不是“跨网段选路”

  • IP 多播到二层不是一一映射,因此可能出现“多余接收后上层过滤”