On older network interface cards, the hardware would only traffic destined to it’s burned in MAC address or the broadcast MAC address. Multicast on Layer 2 was designed with this in mind.
Every multicast group IP address is mapped to a special MAC address that will allow network interface cards to identify multicast packets to a specific group. This design allows for a local area network to have multicast streams, and the network interface card will recognise which destination MAC addresses need to be accepted into the system for further processing.
When a networked device wants to join a specific multicast feed, it will send an IGMP join notification using the multicast IP group address as i’s destination. The network device will update it’s network card to receive packets for this special MAC address.
On a multicast MAC address, the first 24 bits will start with 01:00:5E
The first byte will always be set to 01 to indicate that the ethernet frame is a multicast one. The 25th bit will always be 0. The next 23 bits of the multicast address are copied from the lower 23 bits of the multicast groups IP address.
239.255.1.1
into binary is 1110 1111 : 1111 1111 : 0000 0001 : 0000 0001
The last 23 bits of this are 111 1111 : 0000 0001 : 0000 0001
Copying the 23 bits into the MAC address of 01:00:5E
will be:
0000 0001 : 0000 0000 : 0101 1110 : 0111 1111 : 0000 0001 : 0000 0001
Resulting in a multicast address of:
01:00:5E:7F:01:01
As only the first four bits on the multicast IP address are fixed, there are five bits that are not accounted for in the IP to MAC address translation. This means that IP to MAC conversions may not be unique and can overlap.
Leave a Reply