IP 组播与 MAC 组播的关系
在网络中,IP 组播
是一种在 IP 层实现一对多通信
的技术。当一个主机发送 IP 组播数据时,这些数据会被封装在以太网帧等链路层帧中进行传输。IP 组播地址会被映射到 MAC 组播地址
,从而在数据链路层实现组播功能。
组播 MAC 地址的形成
在 IP 组播
中,组播 IP 地址范围是从 224.0.0.0
到 239.255.255.255
。例如,用于本地子网内的所有组播成员的组播 IP 地址 224.0.0.1
(表示所有主机组)。IP 组播地址会被映射到一个特定的组播 MAC 地址。以以太网为例,组播 MAC 地址的前 24 位固定为 “01 - 00 - 5E”,然后将 IP 组播地址的后 23 位填充到组播 MAC 地址的后 24 位(因为 IP 组播地址有 28 位,其中前 5 位在映射过程中被忽略)。
举例说明 MAC 组播过程
场景设置:
假设有一个视频直播网络场景,有一个直播服务器(发送端)
,以及多个用户设备(接收端)
,如智能电视、手机等,这些接收端都加入了同一个视频直播组播组。
组播组的加入:
接收端设备(如智能电视 A)在希望接收视频直播时,通过互联网组管理协议(IGMP)向其连接的路由器发送 IGMP 消息,表明自己要加入特定的组播组(假设这个组播组对应的 IP 组播地址是 224.0.0.1)。路由器收到 IGMP 消息后,会在其组播转发表中记录智能电视 A 的接口信息,表示这个接口下的设备加入了该组播组。
MAC 组播地址映射:
在以太网中,IP 组播地址 224.0.0.1 会被映射到一个 MAC 组播地址。IP 组播地址到 MAC 组播地址的映射规则是:MAC 组播地址的前 24 位固定为 “01 - 00 - 5E”,然后将 IP 组播地址
的后 23 位
直接复制到 MAC 组播地址的后 23 位。对于 224.0.0.1 这个 IP 组播地址,其对应的 MAC 组播地址为 “01 - 00 - 5E - 00 - 00 - 01”。
数据发送过程:
直播服务器开始发送视频直播数据。它将视频数据封装在 IP 数据包中,并且将目的 IP 地址设置为 224.0.0.1(组播 IP 地址)。这个 IP 数据包在链路层被封装在以太网帧中,此时目的 MAC 地址被设置为 “01 - 00 - 5E - 00 - 00 - 01”(对应的组播 MAC 地址)。服务器将这个以太网帧发送到网络中,当帧到达交换机时,交换机根据 MAC 地址表来处理。因为这是一个组播 MAC 地址,交换机知道需要将这个帧转发给所有连接了加入该组播组设备的端口。对于连接了智能电视 A 的路由器端口,路由器收到这个组播以太网帧后,根据自己的组播转发表,知道这个帧是要转发给连接智能电视 A 的接口的,于是将帧转发到智能电视 A。同样的过程也会发生在其他加入了该组播组的接收端设备上,如手机等,从而实现了组播数据从服务器到多个接收端的传输。