The most common mode of data transfer in IP networks is "unicast": A source sends a packet to a (single) destination. Various other modes are supported by IP: In multicast, the source sends to a group destination address. This is a logical address that represents the set of "interested" receivers. Receivers must "join" the group to receive traffic. In IPv4, group addresses are from the historical "Class D" range, 126.96.36.199/4. In IPv6, they lie within the ff00::/8 range. Receivers use an explicit protocol to join and leave groups. This protocol is called IGMP (Internet Group Management Protocol) in IPv4, and MLD (Multicast Listener Discovery) in IPv6.
ASM and SSM
In the original IP multicast service model as proposed by Steve Deering in his Ph.D. thesis, any node could send a packet to a group address without any prior signaling, and the network would try to deliver that packet to all receivers (listeners) that had joined the group. Today, this original IP multicast service model is often called "ASM" for Any-Source Multicast.
Because this turned out to be difficult to implement, especially in the inter-domain (Internet) case, an alternative service model was introduced later. This model is called SSM or Source-Specific Multicast. In SSM, a listener doesn't simply join a group (via its group address), but a combination of a specific source and a specific group. This is usually called an (S, G) pair.
The introduction of SSM required a major revision of the last-hop listener-signaling protocols. It is supported in IGMPv3 and MLDv2, which are significantly more complex than their respective predecessors. On the other hand, SSM requires significantly less mechanism inside the network. In particular, "source discovery" is no longer required because the receivers tell the network which sources they are interested in.
Multicast has several large classes of application:
- real-time multimedia dissemination (streaming): This is useful for live transmissions to a large set of viewers/listeners. Most carrier-based IPTV services use IP multicast internally. Non-media-related streaming is used in electronic market plaforms, where offers and bids have to be transmitted quickly and synchronously.
- service discovery: Servers can join a service-specific multicast group, and clients can discover servers by sending request packets to the group address.
Within a network segment
Within a single logical network, IP multicast can be implemented using an underlying broadcast or multicast mechanism. In switched Ethernet networks, switches can try to limit multicast replication to only those ports that have "interested" receivers on them. More sophisticated switches use "IGMP snooping" (or "MLD snooping" for IPv6) to detect the presence of stations interested in a particular group. This is a layering violation that can cause problems: For example, when a new version of IGMP or MLD is introduced, the switches (which otherwise aren't interested in how IP works) need to have their code upgraded. There are other mechanisms that avoid this layering violation: Cisco CGMP, and the IEEE's GMRP (based on GARP). Neither of these seems to be widely used today; they have the issue that the Layer 3 devices (IP multicast routers) would need to be able to map to these Layer-2 mechanisms. But it would be cleaner!
Inside a single routing domain
Within a campus or provider network, the PIM (Protocol-Independent Multicast) protocol can be used to construct multicast distribution trees based on underlying unicast routing information. It uses "join" and "prune" messages between multicast routers to maintain these trees. For ASM, PIM uses "rendezvous points" (RPs) to register sources. There are two types of distribution trees: (*, G) trees are rooted at the RP and carry traffic from all sources (a source's first-hop designated router (DR) is responsible for sending traffic to the RP using encapsulation). (S, G) trees are rooted at a source (or rather, its DR). In SSM, only (S, G) trees are used. In ASM, (S, G) trees can be built as an optimization, for example after traffic from a specific source to a group crosses some threshold.
Between multicast-capable domains, BGP-4 with multiprotocol extensions can be used to advertise routes from multicast-capable sources (in multicast, reachability information is used in the opposite direction as for unicast...). This was the first application of BGP's multiprotocol extensions and used to be called MBGP.
For ASM, an additional mechanism is needed to find sources/RPs in other domains. The MSDP (Multicast Source Discovery Protocol) is used for this in IPv4. Because of its bad scaling properties, no equivalent protocol was proposed for IPv6. However, IPv6 has an alternative mechanism to discover RPs, namely "Embedded RP", which exploits the huge multicast address space in IPv6 to embed the RP address inside the group address (with a bit of ingenious compression).
– Main.SimonLeinen - 08 Dec 2010