- IGMPv1 - periodically sends membership queries (60-120 sec) to the all-hosts multicast address 224.0.0.1. IGMPv4 doesn't have a mechanism defined for hosts to leave the multicast group. There for IGMP routers learn that a group is no longer available when it times out from not receiving any queries from that particular group.
- IGMPv2 - has group-specific queries that allows a router to query membership only in a single group instead for all groups. Instead of waiting for a timeout from a particular group, the last hosts that are apart of a multicast group sends the router a specific message that it's leaving said group.
- IGMPv3 - is still being designed and proposed. Version 3 adds the ability to filter multicasts based on multicast source so that hosts can indicate that they want to recieve traffic only from particular sources within a multicast group.
PIM (Protocol Independent Multicast) is used by routers that are forwarding multicast packets. PIM uses the normal IP routing table in its multicast calculations. PIM uses what's called distribution trees to forward multicast packets. There's two types of trees
- Source Tree - A source tree is created for each source sending to each multicast group. The source tree has its root at the source and has branches through the network to the receivers.
- Shared Tree - Is a single tree that is shared between all sources for each multicast group. The shared tree has a single common root, called a rendezvous point (RP). Sources initially send their multicast packets to the RP, which in turn forwards data through a shared tree to the members of the group.
- PIM Sparse Mode (PIM-SM) - Sparse mode uses a "pull" model to send multicast traffic. it usres a shared tree and therefore requires an RP to be defined.
- PIM Dense Mode (PIM-DM) - Dense mode uses a "push" model that floods multicast traffic to the entire network. Dense mode uses source trees.
- PIN Sparse Dense Mode - uses both Sparse and Dense modes throughout its network