Multicast is a topic that was never been clear when it comes to applying it on MikroTik products. Many of my students have written me asking to do a course speaking about Multicast because they want to implement it in their network and they don’t know from where to start.
In this chapter, I will speak about the basics of Multicast, how it works and what are the main protocols that are required.
Let’s start speaking about the different types of traffic that we have in our network which are:
With unicast, you send the traffic from one source to one destination (normally called one-to-one) as shown in the graph below:
As you can see, the server is sending the traffic to PC1, so in the frame header you will see the source MAC address (which is the one of the server) and the destination MAC address which is the one of PC1. The switch can forward the frame to PC1 directly because it knows PC1 MAC address in its MAC address table. Bottom line, any traffic that we send from 1 source to 1 destination is called Unicast.
When it comes to broadcast, then 1 sender is sending something to all devices in the network as the following:
As you can see, the server is issuing a broadcast traffic then all PCs are getting this traffic. Think of ARP request or DHCP request, all those are Broadcast traffics and when you have broadcast that means that all your network is not operational. Broadcast is known as one-to-all.
With Multicast, the sender will send traffic to a group of hosts as following:
As you can see, the server is sending Multicast, and only 2 PC’s have received the frame, that’s why Multicast is called one-to-many.
This course will be based on Multicast because we will be able to stream videos from a Streaming server to different receivers while saving a lot of bandwidth.
Let me show you in case we use Unicast and Broadcast for video streaming what problem we will encounter, and then I show you how Multicast can be a solution for that.
As you can see on the picture above, we have one streaming video server and we want to allow all 4 hosts to watch the streamed movie. Two of those hosts are in the same LAN with the streaming server, and 2 other hosts are on another network. There is a link of 30 Mbps separating the 1st network to the other network.
The moving is running on High Definition (HD) so it requires to have 6 Mbps of bandwidth. If you are using Unicast, then the video server will send the packets to each individual host, that means in our case we have 4 hosts which makes that the service needs to stream the following: 4 x 6Mbps = 24 Mbps of traffic.
For this scenario, Unicast would work. You see on the WAN link we have only 30 Mbps from which we used 12 Mbps to send the stream to the 2 hosts, that means we still have 18 Mbps left on the WAN. What if we have 10 hosts on the remote network, then we require 60 Mbps for the streaming to arrive to all those 10 hosts and our WAN is only 30 Mbps, that means this will not work. That’s an example to show you that Unicast is not scalable for streaming.
Another way to do the streaming is to use the Broadcast. Using Broadcast will solve the problem of sending streams to each host which lower the load on the video server because it sends the packets only once. The problem which will persist is that all hosts which are on the same broadcast domain will receive the broadcast traffic. As you can see on the picture above, in the same LAN where the server is, there are 2 hosts from which 1 need to get the streaming video and another one not. However, both of them will receive the streaming video because the broadcast (as we learned already) is one-to-all.
Let’s see what would happen on the other network, will the hosts receive the streaming video? From the basic networking we know that broadcast traffics are stopped by the router because it is a Layer3 device, that means that the 2 hosts, which are on the other networks, will never receive the streaming video on broadcast because the broadcast traffic will be stopped by the router.
So, as we have seen, Unicast and Broadcast streaming have some issues. For this reason, we should always use Multicast when it comes to streaming and I will explain to you why Multicast is a better solution.
Now we are going to use Multicast Streaming which is the most efficient way for streaming. I have 2 hosts that wants to get the streaming: one in the same network with the server and another one on the other network. With Multicast, the server needs to send the packets once which makes the load much lower on the server compared to Unicast streaming, then the switches and routers will forward the traffics to the hosts that they want to receive streaming video. In this way, in case on the other network there are 2 or more devices that they want to receive the streaming video, then the bandwidth that is going to be used on the WAN will remain the same which is 6 Mbps. This is another advantage on Multicast that you will not fully your WAN link by the streaming packets, you only send the Multicast packets once to the hosts that want the streaming video and they will get it.
Note: A lot of students want to know whether Multicast is used on the internet such as for companies like YouTube or Netflix – the answer is just: NO. Companies like YouTube and Netflix use Unicast to deliver the video to their customers. If you really want to know where Multicast streaming is mostly used, you have to think of an ISP where they can use multicast for IPTV to deliver video streaming to their customers. Unfortunately, Multicast streaming on the internet has never been implemented.