- [Instructor] Multicast is a technique primarily used
to send traffic from one host to many simultaneously.
It's commonly used to distribute a single video stream
to multiple hosts at the same time,
but is also used for services
like dynamic routing protocol communication.
The Internet Group Management Protocol
is used by hosts and adjacent routers
to join multicast groups.
IGMP is used exclusively by IPv4 hosts
as this was supplanted by multicast listener discovery
in the ICMP version six suite for IPv6.
IGMP allows a host that wants
to receive specific multicast traffic
to solicit a local router
to have that multicast traffic sent on an interface.
There are currently three versions of IGMP.
Version two added the ability for a host
to exit a multicast group.
Version three added support for source specific multicast.
The vast majority of networks don't have
hosts plugged directly into router ports.
Instead they go through a switch.
By default, when a switch receives a packet
destined for a multicast address,
it will flood that packet out all of its ports.
I say destined because traffic should never be sourced
from a multicast address.
If multiple switches are connected,
then the flooding continues.
If a network has high volumes of multicast traffic,
this could unnecessarily consume resources.
Many switch manufacturers implement a system
known as IGMP snooping to combat this.
In effect, when IGMP snooping is enabled,
the switch listens for any host sending IGMP messages.
If the switch receives an IGMP message,
it will enable forwarding of multicast
for that particular group to that interface,
then will elect the upstream router
of the group membership requests.
This way, the multicast traffic is only sent
to the interfaces that have explicitly requested it.
The switch can then block other multicast traffic.
Multicast routing and distribution isn't terribly common,
but IGMP can be quite useful if you find yourself doing so.