Everyone already heard about multicast, but what is it? why do we need it?
So let’s first look at the most basic definition of IP multicast:
“Sending a message from a single source to selected multiple destinations across a Layer 3 network in one data stream.”
Can’t we do this with unicast?
Unicast allows you to send messages from one source to one destination. Which mean that if you want to send the same content to multiple destinations, it will require X amount of bandwidth, with X being the number of destination hosts.
So if you transfer a data stream using a bandwidth of 2 Mbps to 1 destination host, ithe source needs to transfer 2 Mbps. If you send the same data stream to 3 destinations, it will require 6 Mbps (3x 2Mbps) of bandwidth, etc.
As you can see this concept causes a large amount of unnecessary traffic.
How about broadcast?
Broadcast on the other hand allows you to send data from one source to all destination hosts. So if you want to send the same content to multiple destinations, it will only require once the bandwidth at the source.
But, and here is the big disadvantage, the data will be transferred the every single host, even to those that are not interested in receiving the traffic! This will increase the processing load on the network devices and wastes bandwidth.
Ok, tell me more about that multicast thing…
Multicast uses a separate range of IP Addresses, often referred to as class D. It includes all IP Addresses starting with “1110” in binary. For those who don’t want to start calculating: it’s the range between 18.104.22.168 and 22.214.171.124.
Multicast also requires the use of a Layer 2 Address, which can be calculated from the corresponding Layer 3 address.
All multicast MAC addresses use an OUI of 01-00-5E, have the 25th bit set to 0, and the last 23 bits copied from the last 23 bits of the IP address. As it would require 28 bits to uniquely distinguish between IP addresses, there are 32 (5^2) Layer 3 multicast addresses that match a single Layer 2 multicast address.