My last tip explained briefly the basics of multicast and introduced you to some new terms and concepts which will be expanded on in the weeks to come. Taking those concepts to heart, we can now move on to another
How do I sign up?
Remember the situation used in the last tip which described a listener tuning their radio into a desired frequency. That process outlines the general principle of multicast group membership, all be it without a lot of detail. Up to this point we have assumed that a multicast receiver has (a) knowledge of available multicast streams and (b) has the ability to join the multicast session. In the last example this was as simple as tuning in the radio to the correct station. In the actual multicast world there are specific protocols used to (a) announce the presence of multicast streams and (b) allow the hosts to join each stream. Having a mechanism to join hosts dynamically is key to scaling your multicast environment. Enter IGMP.
Sending data via multicast, as I've stated before can have a number of advantages in terms of bandwidth and resource conservation versus unicasting or broadcasting throughout your network. This statement, however, doesn't necessarily tell the whole truth, because it actually depends on how efficiently you design and implement your multicast solution. It starts with controlling and maintaining the multicast groups and host memberships. The Internet Group Membership Protocol (IGMP) is a standardized multicast protocol used for communication between hosts and routers in a multicast environment. Notice I haven't mentioned anything about doing any of this in a large scale Layer 2 environment – we'll save that one for later. IGMP allows a host to dynamically register itself with its router or gateway. This is a very important function because it prevents the forced flooding of traffic throughout your network. With IGMP routers know who wants to join, who wants to leave and with more recent versions, what specific groups hosts want to join. There are currently three version of IGMP available: v1, v2 and v3. IGMPv3 has recently been made available and is still in the process of being assimilated in a lot of multicast client applications. IGMPv1 and IGMPv2 are the most common implementations out there today. Let's take a look at the differences between Version 1 and Version 2 of IGMP1:
IGMP Version 1
RFC 1112 defines the specification for IGMP Version 1.
Figure 1: IGMPv1 Message Format
In Version 1, there are just two different types of IGMP messages:
- Membership Query
- Membership Report
Hosts send out IGMP Membership Reports corresponding to a particular multicast group to indicate they are interested in joining that group. The router periodically sends out an IGMP Membership Query to verify that at least one host on the subnet is still interested in receiving traffic directed to that group. When there is no reply to three consecutive IGMP Membership Queries the router will timeout the group and stop forwarding traffic directed toward that group.
IGMP Version 2
RFC 2236 defines the specification for IGMP Version 2.
Figure 2: IGMPv2 Message Format
In Version 2, there are four types of IGMP messages:
- Membership Query
- Version 1 Membership Report
- Version 2 Membership Report
- Leave Group
IGMP Version 2 works basically the same as Version 1. The main difference is that there is a Leave Group message. The hosts now can actively communicate to the local multicast router their intention to leave the group. The router then sends out a group specific query and determines if there are any remaining hosts interested in receiving the traffic. If there are no replies, the router will time out the group and stop forwarding the traffic. This can greatly reduce the leave latency compared to IGMP Version 1. Unwanted and unnecessary traffic can be stopped much sooner.
Now we've taken a look at the basics of Multicast and protocols used for group membership. Hopefully this will help you piece together the components which create an enterprise multicast network. Next week I will expand on the Layer 2 piece of the multicast puzzle and will begin to explain the fundamentals of Multicast Routing and Forwarding.
1 Diagrams used from cisco.com.
Doug Downer (CCIE #9848) is a Sr. Consultant with Callisma, INC, a wholly owned subsidiary of SBC Communications. Doug has over 7 years in the industry and currently provides high level business and technology consulting for various federal clients in the Washington D.C. area. He can be reached at firstname.lastname@example.org.
This was first published in February 2005