As we know that there are three method or modes to transfer IP packets
Unicast : One to One communication (Number of stream= Number of Receiver)
Broadcast: One to All ( where all means whether receiver is interested or not).
Multicast : One to Many ( Where many means Interested Receiver).
What if we want to send same IP packet or stream from one host to many using Unicast?
- Sender must generate one copy of packet for each receiver.
- Sender must know address of all receiver
- Intermediate device needs to process packet for each receiver separately.
- After looking into above things we can say this is an inefficient way to send IP packet to many host using Unicast as same data is replicated in multiple stream. Waste of Resource and Network Bandwidth.
What if we want to send IP packet stream from one host to many using Broadcast?
As we know that there are two type of Broadcast address:
- Local Broadcast (Limited Broadcast)
- Direct Broadcast
The local (limited) broadcast address is 255.255.255.255. Local broadcast is a non-routable address therefore router would not route it anywhere.
Direct Broadcast address belongs to particular network like 192.168.111.0/24 has 192.168.111.255 address which is known as direct broadcast address.
Direct broadcast is routable depending on configuration by default disabled on CISCO devices starting from version 12.0 on but can we enabled using “IP directed-broadcast” under interface.
Broadcast is also Inefficient way to send packet from one host to many as we are sending one to all where uninterested receive will also receive packets.
Better Bandwidth and Resource Utilization as Source is sending one copy of stream which is replicated by routers as per interested receiver.
When to use Multicast?
Multicast is used when sending same (single stream) data to multiple receivers.
- Streaming Video , IPTV
- Music on hold
How Multicast works?
- Source Application sends UDP multicast traffic with multicast address as destination.
- Multicast router replicate and forward the packet where receivers exist.
- Interested receivers will “Join” the group address by signaling router (LHR) on LAN.
Here we have to understand that multicast is broken into three main parts:
- Group Addressing (L3 Addressing and L2 Addressing)
- Control Plane (IGMP;PIM)
- Data Plane (RPF ; MRIB ; MFIB)
- Class D is reserved for multicast therefore we can say that every group address is identified by Class D address. As we know that the range of IP addresses is divided into “classes” based on the high order bits.
- Source Address in Multicast remains Unicast address and source address can never be class D multicast address and in multicast, destination will be always multicast group address.
- Class D is considered as Flat IP space means there is no concept of subnetting or network. Every single IP represent to Multicast group.
Need to add chart for reserved range.
Here we are going to discuss about MAC addressing, As we already discussed that source IP address in multicast packet will be always unicast address therefore there is one to one correlation between IP and MAC.
Another thing Destination IP address is multicast IP address means Sender and Receiver have to be agreed on single suitable destination MAC address so receiver can accept and process the frame at Layer2.
To achieve this we are using mapping procedure where we take L3 multicast address and used it to generate well-known L2 MAC address.
MAC address have 48bit where 24bit has been taken from OUI as below:
Multicast Forwarding Basic:
- In unicast packet forwarding, the packets are routed towards a destination. but in multicast packet forwarding, packets are routed away from a Source. Here we have to understand that in unicast destination is known but in multicast destination is unknown. In multicast
- For every single multicast group, Packets have to be originated from somewhere (where somewhere is your source). Multicast router manage forwarding state for each group and each multicast group has entries as (S,G or *, G). (S,G) means source is known and (*,G) means source is unknown or source can be any.
- Each forwarding state (S,G ; *, G) has to associated with upstream and downstream interface. Two major interface type per multicast source:
A. Upstream Interface (IIF: Incoming Interface) : Packets comes in on IIF interface and this is metrically closest to Source. Note: IIF will be always single interface.
B. Down Interfaces (OIL: Outgoing Interface List): Packets goes out from OIL as we have interested receivers on this interface. Note: OIL can be one or multiple interface as we can have multiple receiver which are interested to particular group.
- Multicast routing uses RPF to prevent forwarding Loops.
What is RPF?
IGMP (Internet Group Management Protocol)
1. IGMP is known as Host to Router signaling protocol.
2. IGMP is a protocol which is used by Receiver(Host) to inform Local Router which is known LHR that i am interested to receive or no more interested in multicast traffic for specific group.
There are three version of IGMP:
IGMP Message Type
IGMP Membership Report: How receiver signal their interest in a multicast group to multicast Router.
Leave Message: How reciever inform to multicast router when they are no longer interest in a group. This is message type was not available in IGMPv1.
IGMP Member-ship Query: How Mutlicast router confirms continued interest of receivers in Multicast group.
There are sub type of query.
1. General query: Generated periodically to update the status of ALL multicast group.
2. Group specific query: Event-driven query to update the status of a particualar group where event means a host leaving a group.
Let’s take an example:
As we know that switch (without snooping enabled) will forward multicast traffic same as broadcast basically flood the multicast frames across the VLAN.
The IGMP Snooping is a feature which is used to limit propagation of multicast traffic in a broadcast Domain.
IGMP Snooping enabled devices checks the IGMP messages and record the information like Multicast IP of stream, Port/VLAN of receiver, MAC of stream so switch will forward multicast traffic to interested receiver only rather than folding to whole broadcast domain.
How Does it works?
When switch receives the Membership Report from the host, one of two things will happen.
- If the switch is not configured for IGMP snooping, it will treat the packet as a broadcast message and flood it across the VLAN.
- If the switch is configured with IGMP snooping then it will punt the packet upto the CPU where the switch will create a snooping database and pass the packet towards the local IGMP querier/Mrouter. Here you may have question that why IGMP report should go to CPU? As IGMP contains an option called the Router Alert option. This is a flag to notify the packet must be passed up to the CPU for processing.
Is all IGMP report goes to Multicast router?
We have somethings called Proxy routing mechanism which is used by switch to rate limits quantity of IGMP membership reports forward to Multicast router.
Mrouter port: Mrouter is port leading towards a multicast router or querier.
How switch knows that port is connected to Multicast capable device?
What will happen when switch receive multicast traffic but there is no interested receiver?
Condition1. When switch doesn’t have Mrouter port then switch will flood it on ingress VLAN.
Condition 2. When switch does know about Mrouter.
2.1 If traffic is from reserved range (224.0.0.x)then multicast traffic will be flooded.
2.2 All other multicast traffic will be sent to mrouter port only.
Does it mean general query will be forwarded on all ports in ingress VLAN?
Note1: As we discussed in IGMP snooping when hosts send IGMP reports, the switch intercepts them to maintain Group info in snooping table. As a result, the hosts do not receive each other’s IGMP report which breaks the Report suppression mechanism and forces each host to send an IGMP Report. However the switch sends only one IGMP report per group to router.
Leave Process in IGMP Snooping environment
- When switch receive IGMP leave message, switch doesn’t forward it towards multicast router. Basically switch will examines the packets and will send group specific or generally query to determine whether there are are any other hosts that are member of this group on that port. If an IGMP report is received on port then switch will discard the leave message received on port. If doesn’t receive receive any IGMP report then will delete the associated information on this particular port.
- If last receiver in broadcast domain send IGMP leave message then switch will delete associated information and send this message to Multicast router. Multicast router will send an IGMP group specific query and if no response then multicast router will stop forwarding traffic for particular group.Please find below link for more info:
Thanks for the excellent guide
Like!! Great article post.Really thank you! Really Cool.