User guide

Multicasting overview IGMP snooping
3-1
iMG/RG Software Reference Manual (IGMP)
3. IGMP
3.1 IGMP snooping
3.1.1 Multicasting overview
Multicasting is a technique developed to send packets from one location in the Internet to many other locations,
without any unnecessary packet duplication. In multicasting, one packet is sent from a source and is replicated as
needed in the network to reach as many end-users as necessary.
The concept of a group is crucial to multicasting. Every multicast stream requires a multicast group; the sender
(or source) transmits to the group address, and only members of the group can receive the multicast data. A
group is defined by a Class D address.
Multicasting is useful because it conserves bandwidth by replicating packets as needed within the network,
thereby not transmitting unnecessary packets. Multicasting is the most economical technique for sending a
packet stream (which could be audio, video, or data) from one location to many other locations on the Internet
simultaneously.
Of course, multicasting has to be a connectionless process. The server simply sends out its multicast UDP pack-
ets, with no idea of whom will be receiving them, and whether they get received. It would be quite impossible
for the server to have to wait for ACKs from all the recipients, and remember to retransmit to those recipients
from whom it does not receive ACKs. Apart from anything else the server does not know who the recipients
are, or how many there are.
3.1.1.1 Multicast Group addresses
A multicast stream is a stream of data whose destination address is a multicast address – i.e. an IP address with
the first byte having a value of 224 to 240. The destination address used by a stream is referred to as its Group
address. These Group Addresses, like all IP addresses, are a limited resource, and there are all sorts of rules
about who may use addresses from which address ranges.
A server sends out a multicast stream to a group multicast address but the way it is routed to the hosts that
actually want to receive it is a very different process to routing unicast packets. With unicast packets, the desti-
nation address of the packet uniquely identifies the host who should receive the packet and all the routers along
the path just need to look in their routing tables to work out which is the correct route to send the packet
down.
However, in the case of multicast, the stream is simply being sent out, with no particular knowledge of who
wants to receive it, and where the recipients are. One approach would be for every router that receives a mul-
ticast stream on one interface to just retransmit that stream out ALL its other interfaces. In that way it would
be guaranteed to eventually reach every host that might be interesting in receiving it. However, that would be an
inefficient use of bandwidth, as a lot of the time the routers would sending the streams out along paths that do