Several ways to organize multicasting:
Note: Internet multicast is NOT a connectionless service - state information for a multicast connection must be established and maintained in routers that handle multicast packets sent among hosts in a so-called multicast group.
Q: Does it make sense for each multicast datagram to carry the IP addresses of all of the multiple
recipients?
A: No. In the case of many recipients (thousands) the list of these addresses may be bigger than
the message itself.
Q: How to address these recipients?
A: Use a multicast address. In the Internet, a single identifier that represents a group of
receivers is a class D multicast address (224.0.0.0 - 239.255.255.255). The group of receivers associated
with with a class D address is referred to as a multicast group.
A list of questions:
According to RFC 2236 IGMP header has the following structure:
| 1 | Type | Max. response time | Checksum | |||||||||||||||||||||||||||||
| 2 | Multicast group address | |||||||||||||||||||||||||||||||
| Type | Description | Sent by | Purpose |
|---|---|---|---|
| 0x11 | Membership Query | router |
There are two sub-types of Membership Query messages:
|
| 0x16 | Membership Report | host | Report host wants to join or is joined to given multicast group |
| 0x17 | Leave Group | host | Report leaving given multicast group |
Please also read "Host Extensions for IP Multicasting" by S.Deering for more information about multicast addresses.
On this picture only routers A, B, E, and F has hosts joined to a multicast group. That is, only these
routers need to receive the multicast traffic. The goal of multicast routing is to find a tree of links that
connects all of the routers that have attached hosts belonging to the multicast group.Multicast packets will
then be routed along this tree from sender to all of the hosts from the group.
In practice, two approaches have been adopted for determining the multicast routing tree. The two approaches differ according to whether a single group-shared tree is used to distribute the traffic to all senders in the group,
![]() |
![]() |
| A is the sender | B is the sender |
|---|
There is a small problem, though. Assume that router D has one more attached router G, which has no attached
hosts that belong to the multicast group. It may be not so bad if router G gets unneeded multicast segment,
but what if G has thousands of routers downstream of D (and none of them has hosts belong to this multicast
group).
The solution to the problem of receiving unwanted multicast packets under RPF is known as pruning.
A multicast router that receives multicast packets and has no attached hosts joined to that group will send
a prune message to its upstream router. If a router receives a prune message from each of its
downstream routers, then it can forward a prune message upstream.