The IGMP Protocol: Diagram 2
The IGMP Protocol: Diagram 2
Diagram 1
table
Diagram 2
IGMP version 2 [Fenner 1997] has only three message types, as
shown in Table. A general membership_query messages sent by a
router to all hosts on an attached interface (e.g., to all hosts on a local area
network) to determine the set of all multicast groups that have been joined
by the hosts on that interface. A router can also determine if a specific
multicast group has been joined by hosts on an attached interface using a
specific membership_query. The specific query includes the multicast
address of the group being queried in the multicast group address field of the
IGMP membership_query message, as shown in Figure.
Diagram 3
Having examined the protocol for joining and leaving multicast groups we
are now in a better position to reflect on the current Internet multicast
service model, which is based on the work of Steve Deering [RFC 1112,
Deering 1991]. In this multicast service model, any host can "join" a
multicast group at the network layer. A host simply issues a
membership_report IGMP message to its attached router. That router,
working in concert with other Internet routers, will soon begin delivering
multicast datagrams to the host. Joining a multicast group is thus receiver-
driven. A sender need not be concerned with explicitly adding receivers to
the multicast group (as is the case with multicast in ATM) but neither can it
control who joins the group and therefore receives datagrams sent to that
group. Indeed, recall that it is not possible at the network layer to even know
which hosts, network-wide, have joined a multicast group. Similarly, there is
no control over who sends to the multicast group. Datagrams sent by
different hosts can be arbitrarily interleaved at the various receivers (with
different interleaving possible at different receivers). A malicious sender can
inject datagrams into the multicast group datagram flow. Even with benign
senders, since there is no network layer coordination of the use of multicast
addresses, it is possible that two different multicast groups will choose to
use the same multicast address. From a multicast application viewpoint, this
will result in interleaved extraneous multicast traffic.