To determine which internet devices (hosts) receive data packets, we use idea of 'multicast groups', instead of set of adresses. Such list could be too large and overshadow amount of data transmitted in comparison.
IGMP & multicast routing.
ID stands for 'internet device' (gray ones are part of multicast groups).
There are two components of network-layer multicast in the Internet: IGMP and multicast routing protocol.
IGMP operates between internet device (host) and its attached edge router to inform router about hosts and multicast groups they belong to.
There are only three message types in IGMP:
membership_query: sent by a router to all hosts on an attached interface to determine the set of all multicast groups that have joined.
membership_report: message sent by hosts as an answer to membership_query.
leave_group: message sent by hosts to router to indicate that they leave the group. it's optional message.
More precisely, the router infers that a host is no longer in the multicast group if it no longer responds to a periodic membership_query message with the given group address.
Multicast routing protocol is used to find spanning trees, that are used to send messages to all edge router nodes that lead to hosts subscribing to multicast groups.
There are two approaches differing whether a single group-shared tree is used to distribute the traffic for all senders in the group, or whether a source specific routing tree is constructed for each individual sender.
Building group-shared spanning tree.
Edge routers send (via unicast) join messages addressed to the center node. A join message is forwarded using unicast routing toward the center unitl it either arrives at a router that already belongs to the multicast tree or arrives at the center. All routers along the path that the join message follows will then forward received multicast packets to the edge router that initiated the multicast join. A critical question for center-based tree multicast routing is the process used to select the center. (more to come perhaps).
Multicast routing using a source-based tree.
While group-shared tree multicast routing constructs a single, shared routing tree to route packets from all senders, the second approach constructs a multicast routing tree for each source in the multicast group.
See also: Broadcast and Multicast routing.