2

I'm currently learning about how to convert between a multicast ip address and the destination mac address. I fully understand the terminology, how to do the conversion, and why the 23 bits, instead of 24, are used. However, what I don't understand is what would be different if 24 bits WERE used to map between the two addresses.

I read on a website that using 24 bits would allow there to be a 1 to 1 relationship between macs and ips. However, I don't understand why. There are 5 bits that don't get mapped (28 unique ip bits - 23 mac bits = 5 bits). This means there will be 2^5 = 32 ip addresses per mac address. So, it seems to me like if the mac was 24 bits, then there would still be a 28-24=4 bit hole and, therefore, 2^4=16 ip's per mac address. Better, but still not a 1 to 1 mapping.

Kind of a complicated question, but hopefully the right person will come along and read this post!

Thank you all in advance for your answers!

2

The traditional class-D range for multicast is 224.0.0.0/4 - which is 2^28 host addresses. If you mapped this to a 24-bit namespace you would, in fact, end up with a ratio of 2^28 / 2^24 = 2^4, or 16 IP's per MAC instead of the current 32 IP's per MAC.

The reason the additional bit is used is that the most significant bit is actually a flag indicating whether the MAC is multicast. The idea was to leave a full 24 bits for OUI's while still including some kind of signifier for the frame being multicast.

It actually makes a certain amount of sense as a concession given that there used to be a lot of other protocols besides IP that used Ethernet and that these protocols didn't have any kind of universally recognizable upper-layer mechanism for network hardware to pick out whether a given frame was multicast. I suppose it might have been possible to put a multicast flag elsewhere in the header, but that would have caused other compatibility issues.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.