📖 在局域网上进行硬件多播
🎯 课程摘要:本节介绍如何将 IPv4 多播地址映射为以太网多播 MAC 地址,说明映射规则(01-00-5E 前缀 + IP 多播地址低 23 位)及映射不唯一导致的软件过滤问题。
📝 详细笔记
1. IP 多播地址到 MAC 多播地址的映射
由于 MAC 地址有多播 MAC 地址类型,只要把 IPv4 多播地址映射成多播 MAC 地址,即可将 IP 多播数据报封装在局域网的 MAC 帧中传送。
封装结构:
- MAC 帧首部中的目的 MAC 地址 = 由 IP 多播地址映射而来的多播 MAC 地址
- IP 数据报首部中的目的 IP 地址 = 某个 IP 多播地址
当给主机配置其所属多播组的 IP 多播地址时,系统会根据映射规则生成相应的局域网多播 MAC 地址。
2. 多播 MAC 地址的范围
IANA(因特网号码指派管理局)从 IEEE 注册管理机构申请到的以太网 MAC 地址块中,将 01-00-5E-00-00-00 ~ 01-00-5E-7F-FF-FF 范围的多播 MAC 地址用于映射 IPv4 多播地址。
48 比特多播 MAC 地址组成结构:
| 字段 | 比特 | 值 |
|---|---|---|
| 固定部分 | 左起前 25 比特 | 01-00-5E-0(固定不变) |
| 可变部分 | 剩余 23 比特 | 任意变化 |
- 多播 MAC 地址标识:左起第一个字节的最低比特为 1,表示该 MAC 地址是多播 MAC 地址。
- 多播 MAC 地址总数 = 2^23 个。
- 最小多播 MAC 地址:
01-00-5E-00-00-00 - 最大多播 MAC 地址:
01-00-5E-7F-FF-FF
3. 映射方法与不唯一性问题
3.1 映射规则
- IPv4 多播地址:32 比特,左起前 4 比特固定为 1110,剩余 28 比特可变。
- 多播 MAC 地址:只有 23 比特可变。
- 因此只能将 IP 多播地址的低 23 比特映射到 MAC 多播地址的低 23 比特。
- IP 多播地址可变的 28 比特中,前 5 比特无法映射。
3.2 映射不唯一
- 若不同的 IP 多播地址的不同之处仅出现在不能映射的 5 个比特,则它们会映射出同一个多播 MAC 地址。
| IP 多播地址 | 低 23 比特 | 映射的 MAC 地址 |
|---|---|---|
| 226.0.9.26 | 0000000 00001001 00011010 | 01-00-5E-00-09-1A |
| 226.128.9.26 | 0000000 00001001 00011010 | 01-00-5E-00-09-1A |
| 228.1.1.1 | 0000001 00000001 00000001 | 01-00-5E-01-01-01 |
- ⚠️ 重点/考点:IP 多播地址与多播 MAC 地址的映射关系不唯一(32 个 IP 多播地址对应 1 个 MAC 多播地址)。
4. 软件过滤机制
由于映射不唯一,收到 IP 多播数据报的主机还要在网际层利用软件进行过滤,把不是本主机要接收的 IP 多播数据报丢弃。
双重过滤举例(目的 IP 为 226.128.9.26):
从 MAC 层看,图中有两个不同的硬件多播组:
01-00-5E-00-09-1A(226.0.9.26 与 226.128.9.26 共用)01-00-5E-01-01-01(228.1.1.1)
第一层过滤(MAC 层):根据目的 MAC 地址判断是否接收该多播帧。
- 属于
01-00-5E-01-01-01的主机发现目的 MAC 不匹配,直接丢弃。 - 属于
01-00-5E-00-09-1A的主机接受该帧,交付网际层。
- 属于
第二层过滤(网际层):根据目的 IP 地址判断是否接收该 IP 多播数据报。
- 226.0.9.26 的成员发现目的 IP 不匹配,丢弃。
- 226.128.9.26 的成员接受该 IP 多播数据报。
⚠️ 重点/考点:硬件多播需要 MAC 层与网际层双重过滤:先按目的 MAC 地址筛选帧,再按目的 IP 地址筛选数据报。
💡 核心总结
- 多播 MAC 地址前 25 位固定为 01-00-5E-0,后 23 位由 IP 多播地址低 23 位映射而来。
- 由于 IP 多播地址有 28 位可变而 MAC 只有 23 位可映射,5 位无法映射,导致 32 个 IP 多播地址共用 1 个 MAC 地址,映射不唯一。
- 映射不唯一要求接收主机在网际层用软件进行二次过滤,丢弃不属于自己的 IP 多播数据报。
❓ 课后思考 / 经典考题
- 以太网多播 MAC 地址的范围是什么?为什么是 2^23 个?
- 为什么 IP 多播地址到 MAC 多播地址的映射不是唯一的?多少个 IP 多播地址对应同一个 MAC 多播地址?
- 当主机收到一个多播 MAC 帧后,为何还要在网际层进行软件过滤?简述双重过滤的过程。