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 不负责在路由器之间算“多播怎么走”(那是多播路由协议的事)
做题时可用的“过程主线”(口述即可):
-
主机加入某组(发送加入信息)
-
路由器周期性查询该组是否仍有成员
-
若无成员则剪枝:停止为该网段转发该组流量
多播路由协议:构造分发树(路由器 ↔ 路由器)¶
多播路由的目标是:把“从发送者到所有组成员”的路径组织成一棵(或多棵)分发树,确保在分叉点复制。
408 常考的是“树的两种思路”:
-
源树(Source-based Tree):以源为根(每个源一棵树)
-
共享树(Shared Tree):以汇聚点/核心路由器(RP)为根(多源共享一棵树)
你不需要掌握具体协议细节(如 PIM 的各种模式),但要能回答:
-
为什么需要“树”?(避免每个接收者都单独走单播)
-
为什么会有“剪枝/嫁接”?(组成员动态变化)
408 高频易错点清单¶
-
多播不是广播:只面向“加入组”的主机
-
IGMP 管的是“本地组成员”,不是“跨网段选路”
-
IP 多播到二层不是一一映射,因此可能出现“多余接收后上层过滤”