Here we briefly introduce the fundamentals of IP multicast:
IP multicast allows efficient simultaneous communication between hosts in a logical group called the host group or multicast group. A host/multicast group which includes a set of zero or more hosts, is identified by a single IP destination address from a specially designated address space.
The group communication path is modelled as a tree network with the hosts (senders and receivers) within the group located at the leaf nodes of the tree, and the intermediate nodes representing distribution/replication points of the communication path.
The membership of a host group is dynamic; i.e., hosts may join and leave groups at any time (leaf initiated join). This is achieved using the Internet Group Management Protocol (IGMP). There are no restrictions on the physical location or the number of members in a multicast group. A host may be a member of more than one multicast group concurrently.
A host need not be a member of a group to send packets to the multicast group.
Inter-network IP multicast is supported by multicast routing mechanisms. This means that inter-network forwarding of IP multicast packets is handled by multicast routing mechanisms residing in “multicast capable routers”. The intermediate nodes of the communication path should be multicast capable routers.
IP multicast relies on the existence of an underlying multicast delivery system to forward data from a sender to all the intended receivers within a sub-network.
IGMP is a very simple protocol with only to messages, IGMPQUERY (sent by a router to see if there are any members of a particular group) and IGMPREPORT (sent by a node to indicate it is leaving or joining a group). Each message refers to a single multicast group, i.e. a single IP multicast address. For Internet-wide connectivity every LAN must have at least one multicast router that can listen out for hosts that send group membership reports. If at least one group member exists, then the router should forward multicast packets for that group. To minimise traffic, hosts set random timers and do not send a IGMPREPORT for joining groups until a random timer has expired. IGMP messages are only used in the local area.