Loading content...
Consider a video streaming scenario: a live sports event is watched by 10 million viewers simultaneously. How should the network deliver this content?
Unicast approach: The server sends 10 million individual copies—one to each viewer. This requires massive server bandwidth and creates enormous network load.
Broadcast approach: The server sends one copy that reaches everyone on the network. But most people aren't watching—they're interrupted anyway. And broadcast can't cross network boundaries.
Multicast approach: The server sends one copy. The network intelligently replicates it, but only to viewers who explicitly requested to receive the stream. Non-viewers are untouched. Network infrastructure handles efficient distribution.
Multicast delivery represents the elegant middle ground between unicast and broadcast: targeted one-to-many communication that scales efficiently while respecting the attention of uninterested hosts.
By the end of this page, you will understand: (1) The definition and advantages of multicast delivery, (2) How multicast addresses are structured in IPv4 and IPv6, (3) The group membership protocol (IGMP) and how hosts join/leave groups, (4) How routers forward multicast traffic, (5) Real-world applications that depend on multicast, and (6) The challenges of deploying multicast across the Internet.
Multicast delivery is the process of sending a single packet from one source to a specific group of interested receivers. The network infrastructure handles replication—the source sends only once, and intermediate routers copy the packet only where needed to reach group members.
The term 'multicast' combines 'multi' (many) with 'cast' (to send), indicating transmission to multiple (but not all) recipients. This stands in contrast to:
| Characteristic | Description | Implication |
|---|---|---|
| Source Count | One or more senders | Sources don't need to know receivers |
| Destination Count | All group members | Only interested hosts receive traffic |
| Address Type | Class D / multicast address | 224.0.0.0–239.255.255.255 (IPv4) |
| Group Membership | Dynamically managed | Hosts join/leave via IGMP (IPv4) or MLD (IPv6) |
| Replication | Network handles duplication | Sender bandwidth independent of receiver count |
| Routing | Specialized multicast routing | Builds distribution trees for efficient delivery |
Unlike unicast (where senders must know and address each receiver), multicast is receiver-driven. Sources simply send to a group address. Receivers express interest by joining the group. The network connects interested receivers to available sources. This decoupling is powerful: a source can send without knowing how many (or which) hosts are listening.
Multicast uses a publish-subscribe model:
This model abstracts receiver management away from applications. A video source doesn't track each viewer—it simply transmits to a group address, and the network handles delivery to whoever is subscribed.
Multicast uses special address ranges reserved exclusively for group communication. These addresses don't identify individual hosts—they identify groups that hosts can choose to join.
IPv4 reserves the Class D address range (224.0.0.0 to 239.255.255.255) for multicast. These addresses are identified by their first four bits being 1110.
IPv4 Multicast Address Range: 224.0.0.0 – 239.255.255.255 Binary pattern: Class D prefix: 1110 (first 4 bits) 1110xxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ├──┤├────────────────────────────────┤ Class D 28-bit Group ID identifier Address range breakdown: 224.0.0.0 – 224.0.0.255 Local Network Control ├── 224.0.0.1 All Hosts (on this segment) ├── 224.0.0.2 All Multicast Routers ├── 224.0.0.5 OSPF: All Routers ├── 224.0.0.6 OSPF: Designated Routers ├── 224.0.0.9 RIPv2 Routers └── 224.0.0.251 mDNS (Multicast DNS) 224.0.1.0 – 224.0.1.255 Internetwork Control └── 224.0.1.1 NTP (Network Time Protocol) 232.0.0.0 – 232.255.255.255 Source-Specific Multicast (SSM) 233.0.0.0 – 233.255.255.255 GLOP Addresses (AS-based) 239.0.0.0 – 239.255.255.255 Administratively Scoped └── Private/internal multicast (like RFC 1918 for unicast)IPv6 was designed with multicast as a core feature (replacing broadcast entirely). IPv6 multicast addresses are identified by the prefix FF00::/8.
| Field | Bits | Description |
|---|---|---|
| Prefix | 8 | Always FF (binary 11111111) |
| Flags | 4 | Well-known (0) vs transient (1), etc. |
| Scope | 4 | 1=node, 2=link, 5=site, 8=org, E=global |
| Group ID | 112 | Identifies the specific group |
IPv6 Multicast Address Format: FF02::1 = FF:02::0000:0000:0000:0001 ││ │ └──────────────────────┘ ││ │ Group ID ││ └── Scope: 2 = link-local │└──── Flags: 0 = well-known └───── Prefix: FF = multicast Common IPv6 Multicast Addresses: Link-Local Scope (scope = 2): FF02::1 All nodes (replaces IPv4 broadcast) FF02::2 All routers FF02::5 OSPF: All routers FF02::6 OSPF: Designated routers FF02::9 RIPng routers FF02::FB mDNS Solicited-Node (for Neighbor Discovery): FF02::1:FFxx:xxxx (xx:xxxx from last 24 bits of target) Global Scope (scope = E): FF0E::XX Globally routable multicast groupsIPv6 multicast has built-in scope limiting. A link-local multicast (scope=2) will NEVER leave the local network segment. Site-local (scope=5) stays within an organization. This is enforced by the addressing itself—routers check the scope field and limit forwarding accordingly. IPv4 requires TTL-based scoping, which is less elegant.
For multicast to function at the network layer, it must be supported at the data link layer. Ethernet provides multicast capability through special MAC addresses that map from IP multicast addresses.
Ethernet multicast addresses are identified by having the least significant bit of the first byte set to 1 (the 'I/G bit'). IPv4 multicast addresses are mapped to Ethernet using the IANA-assigned OUI prefix 01:00:5E:
IPv4 Multicast to Ethernet MAC Address Mapping═══════════════════════════════════════════════ IEEE assigned OUI for IPv4 multicast: 01:00:5E Mapping process: 1. Start with 01:00:5E:0 (25 bits fixed) 2. Map lower 23 bits of IPv4 multicast address 3. Result: 48-bit Ethernet multicast address Example: IPv4 multicast 239.192.100.50 IPv4 address: 239.192.100.50 Binary: 11101111.11000000.01100100.00110010 ──────────────────────────────────── Upper 5 bits Lower 23 bits (ignored) (mapped) Lower 23 bits: 1000000.01100100.00110010 └──────────────────────────┘ 0x40:64:32 Ethernet MAC: 01:00:5E:40:64:32 └─────────┘└──────────────┘ Fixed OUI Lower 23 bits IMPORTANT: This creates ambiguity! 32 IP addresses map to each MAC address (5 bits are lost in the mapping) Example: Both 224.0.0.1 and 225.0.0.1 map to 01:00:5E:00:00:01 Hosts must filter at IP layerBecause the mapping loses 5 bits, 32 different IP multicast groups map to the same Ethernet MAC address. This means hosts receive multicast traffic for 32 groups at the NIC level and must filter at the IP layer. While usually not a problem, in extreme multicast environments this can cause unnecessary CPU load.
IPv6 uses a more straightforward mapping with 4 bytes of the group ID preserved:
IPv6 Multicast to Ethernet MAC Address Mapping═══════════════════════════════════════════════ Ethernet prefix for IPv6 multicast: 33:33 Mapping: 33:33:XX:XX:XX:XX └────┘└──────────────────────┘ Fixed Lower 32 bits of IPv6 multicast address Example: FF02::1 (All Nodes) IPv6: FF02:0000:0000:0000:0000:0000:0000:0001 Lower 32 bits: 00:00:00:01 Ethernet MAC: 33:33:00:00:00:01 Example: FF02::1:FFxx:xxxx (Solicited-Node for host ending in 01:02:03) IPv6: FF02::1:FF01:0203 Lower 32 bits: FF:01:02:03 Ethernet MAC: 33:33:FF:01:02:03 Advantage over IPv4 mapping: - Preserves more bits (32 vs 23) - Less ambiguity (though still some overlap possible)How do hosts express interest in receiving multicast traffic? How do routers know which networks have interested receivers? The answer is IGMP (Internet Group Management Protocol)—the protocol that manages multicast group membership between hosts and their local routers.
IGMP operates between hosts and their first-hop router (the multicast router on their local network). It doesn't route multicast traffic—it simply informs the local router about group membership so the router knows whether to request multicast traffic from upstream.
| Feature | IGMPv1 | IGMPv2 | IGMPv3 |
|---|---|---|---|
| RFC | RFC 1112 | RFC 2236 | RFC 3376 |
| Explicit Leave | No (timeout only) | Yes (Leave Group message) | Yes |
| Group-Specific Query | No | Yes | Yes |
| Source Filtering | No | No | Yes (SSM support) |
| Query Interval | Fixed | Configurable | Configurable |
| Leave Latency | Up to 3 mins | Seconds | Seconds |
IGMP Operation Flow════════════════════ 1. MEMBERSHIP QUERY (Router → Hosts) ┌──────────────────────────────────────────────────┐ │ Router periodically asks: "Who wants multicast?" │ │ Destination: 224.0.0.1 (all hosts) │ │ Purpose: Discover active group memberships │ └──────────────────────────────────────────────────┘ 2. MEMBERSHIP REPORT (Host → Router) ┌──────────────────────────────────────────────────┐ │ Host responds: "I want group 239.1.2.3" │ │ Destination: The multicast group address │ │ Purpose: Announce/maintain group membership │ └──────────────────────────────────────────────────┘ 3. LEAVE GROUP (Host → Router) [v2+] ┌──────────────────────────────────────────────────┐ │ Host announces: "I'm leaving group 239.1.2.3" │ │ Destination: 224.0.0.2 (all multicast routers) │ │ Purpose: Expedite leave processing │ └──────────────────────────────────────────────────┘ Typical exchange: Time 0 Router ──[Query]──────► All Hosts (224.0.0.1) Time 1 Host A ──[Report 239.1.2.3]──► (239.1.2.3) Time 1 Host B ──[Report 239.1.2.3]──► (suppressed - already reported) ... Time 60 Router ──[Query]──────► All Hosts Time 61 Host A ──[Report 239.1.2.3]──► (maintains membership) Time 62 Host B ──[Leave 239.1.2.3]───► All Routers (224.0.0.2) Time 63 Router ──[Group-Specific Query 239.1.2.3]──► (239.1.2.3) Time 64 Host A ──[Report]──► (Host A still wants it) Time 65 Router maintains group on this interfaceTo reduce network traffic, IGMP includes a clever optimization: report suppression. When a host hears another host's Membership Report for the same group, it cancels its own pending report. This means only one report is sent per group per query, regardless of how many hosts are members.
The process:
IPv6 uses MLD (Multicast Listener Discovery) instead of IGMP. MLD is functionally identical to IGMP but is implemented as ICMPv6 messages rather than a separate protocol. MLDv1 corresponds to IGMPv2, and MLDv2 corresponds to IGMPv3 (with source filtering for SSM).
While IGMP handles local group membership, multicast routing protocols handle the distribution of multicast traffic across networks. These protocols build distribution trees that efficiently deliver packets from sources to all interested receivers.
Unlike unicast routing (which finds a single path to one destination), multicast routing must build a tree structure that branches to reach all receivers efficiently.
The most widely deployed multicast routing protocol is PIM (Protocol Independent Multicast). It's called 'protocol independent' because it uses the existing unicast routing table (from any unicast protocol) to make reverse-path decisions.
PIM Modes:
PIM Dense Mode (PIM-DM): Assumes all networks want multicast. Floods traffic everywhere, then prunes branches with no receivers. Good for dense receiver populations.
PIM Sparse Mode (PIM-SM): Assumes most networks don't want multicast. Receivers explicitly join via shared tree, can switch to source tree for efficiency. Good for sparse receiver populations (most deployments).
PIM Source-Specific Multicast (PIM-SSM): Receivers specify both group AND source. Simplifies routing, eliminates need for RP. Used for applications with known sources (like IPTV).
Multicast routing uses Reverse Path Forwarding (RPF): a router only accepts multicast from an interface if that interface is on the shortest path BACK to the source. This prevents loops without needing TTL decrementation at each hop. If a packet arrives on the 'wrong' interface, it's dropped as a presumed duplicate.
Multicast enables applications that would be impractical with unicast alone. Let's examine where multicast provides significant value.
| Approach | Source Bandwidth | Network Load | Scalability |
|---|---|---|---|
| Unicast to 10,000 employees | 10,000 × 5 Mbps = 50 Gbps | Heavy duplication | Limited by source capacity |
| Multicast to 10,000 employees | 1 × 5 Mbps = 5 Mbps | Replicated at branches | Essentially unlimited |
| Savings Factor | 10,000× less at source | Varies by topology | Dramatically better |
You might wonder why streaming giants like Netflix use unicast CDNs instead of multicast. The reasons: (1) Internet-wide multicast isn't deployed — ISPs don't support multicast transit, (2) On-demand viewing — each viewer watches at different times/positions, requiring unique streams, (3) Adaptive bitrate — each viewer needs different quality based on their bandwidth. Multicast excels for live, synchronized content within controlled networks, not for on-demand Internet streaming.
Despite its efficiency advantages, multicast faces significant deployment challenges that have limited its adoption to specific environments.
Given the difficulty of native multicast deployment, many applications use application-layer multicast or overlay networks. Systems like WebRTC mesh, BitTorrent, and CDN architectures create multicast-like efficiency using unicast connections. The network doesn't natively replicate—application nodes do. Less efficient than native multicast, but deployable over any IP network.
We've explored multicast delivery comprehensively. Let's consolidate the essential knowledge:
What's next:
We've covered unicast (one-to-one), broadcast (one-to-all), and multicast (one-to-many). But there's one more delivery type that flips the model entirely: anycast—where multiple servers share the same address, and the network delivers to the nearest one. This mechanism powers global services like DNS root servers and CDNs.
You now understand multicast delivery—from addressing and group management to routing and real-world applications. This knowledge is essential for understanding scalable content delivery and network service architectures. Next, we'll explore anycast's unique approach to geographic load distribution.