Introduction

Multicast can be a notoriously difficult technology to learn if you’re unfamiliar with it. In multicast, traffic is not routed strictly based on destination IP as in unicast routing. However, once you learn the basic concepts, you’ll see that multicast is actually quite intuitive. No single piece of multicast is actually that advanced or difficult to learn, it is just different compared to what you know about unicast routing. Spend a week learning and labbing multicast and I promise you’ll agree.

Why do we need multicast?

Multicast is sort of like a selective, targeted broadcast. A broadcast only spans the layer two subnet, because routers will not forward a received broadcast out other interfaces. Multicast allows a source to selectively reach a group of hosts anywhere on the network.

The idea is that a multicast source (think of a video broadcasting service) only needs to send a single stream of data. The routers in the network do the work of replicating the traffic and intelligently delivering the traffic to only the subnets where hosts are interested in receiving this multicast traffic. If the multicast source needed to create a single unicast stream for every listener, this would be very inefficient and perhaps hit resource constraints on the server itself. By using multicast, the server can conserve resources.

Bandwidth in the network is also conserved compared to replicated unicast. A single link in the network caries a single copy of the traffic instead of N copies of that traffic (one copy destined to each listener individually).

Multicast Example

  • The routers and switches preform replication of the multicast traffic where necessary. The routers know not to send the mutlicast traffic to routers where there are no receivers. (This is accomplished using a multicast routing protocol, which we will see later).

Replicated Unicast Example

  • Without multicast, the server must create a unicast stream for every interested host.

The drawbacks of multicast

Multicast typically uses UDP. Using TCP would not make sense, as the server would have to keep state for every receiver, and every receiver would unicast TCP control messages, such as ACKs, directly to the server. Because UDP is used, traffic delivery is unreliable. The traffic that is delivered via multicast is often audio or video traffic which would be UDP even if it was delivered via unicast.

Multicast also requires additional protocols in your network, namely IGMP and PIM. These are protocols you will have to operate and troubleshoot. Your switches should also preform IGMP snooping, but many switches these days do by default. Without IGMP snooping, every host in the VLAN will receive a copy of the multicast traffic, even if they did not signal interest in receiving the traffic. A drawback of multicast is the added operational complexity.

Last updated