IP 多播可以分为以下两种:
- 只在本局域网上进行的硬件多播。
- 在因特网上进行的多播。
目前大部分主机都是通过局域网接入因特网的。因此,在因特网上进行多播的最后阶段,还是要把 IP 多播数据报在局域网上,用硬件多播交付给多播组的所有成员。
硬件多播
硬件多播是一种在局域网(LAN)上实现多播通信的技术,它利用硬件(如网络接口卡)的特性来高效地将多播数据发送给多个接收者。
由于 MAC 地址(也称为硬件地址)有多播 MAC 地址这种类型,因此只要把 IPv4 多播地址映射成多播 MAC 地址,即可将 IP 多播数据报封装在局域网的 MAC 帧中,而 MAC 帧首部中的目的 MAC 地址字段的值,就设置为由 IPv4 多播地址映射成的多播 MAC 地址。这样,可以很方便地利用硬件多播来实现局域网内的IP多播。
当给某个多播组的成员主机配置其所属多播组的IP多播地址时,系统就会根据映射规则从该IP多播地址生成相应的局域网多播MAC地址。
因特网号码指派管理局 IANA,将自己从IEEE注册管理机构申请到的以太网 MAC 地址块中从 01-00-5E-00-00-00
到 01-00-5E-7F-FF-FF
的多播 MAC 地址,用于映射 IPv4 多播地址。这些多播 MAC 地址的左起前25个比特都是相同的,剩余23个比特可以任意变化,因此共有
2
23
2^{23}
223 个
将IPv4多播地址映射为多播MAC地址
将32比特的IPV4多播地址映射成48比特的多播MAC地址的方法:
-
前缀固定不变:IPv4 多播地址的前四位始终为
1110
,表示这是一个多播地址。 -
剩余28位任意变化:IPv4 多播地址的第 5 位到第 32 位(共 28 位)可以任意变化。
-
映射规则:
- 将IPv4多播地址的低 23 位直接复制到 48 位的多播MAC地址的高 23 位。
- MAC 地址的第 24 位设置为
0
。 - MAC 地址的第 25 位到第 48 位设置为
0000.0001
。
由于 IP 多播地址可变化的 28 比特的前 5 个比特无法映射到 MAC 多播地址,这会造成IP多播地址与多播MAC地址的映射关系并不是唯一的。如果不同的IP多播地址之间的不同之处仅出现在不能映射的那5个比特,则这些IP多播地址会映射出同一个多播 MAC 地址。
由于IP多播地址与多播MAC地址的映射关系不是唯一的,因此收到IP多播数据报的主机,还要在网际层利用软件进行过滤,把不是主机要接收的IP多播数据报丢弃。