Multicast
One-to-many or many-to-many communications
Feature
- Use less network resources
- Implement with the help of IGMP and additional routing protocols
Multicast addressing
- Defined by a class D IP address
- Leading bits: 1110 → 224.0.0.0 I – 239.255.255.255
- Ethernet multicast address(48-bit)
- (1-bit) set if the address is an Ethernet multicast address
- (23-bit) vendor component
- (24-bit) group identifier: assigned by vendor
Multicast address mapping
- For sender, IP multicasting directly mapped to an Ethernet multicast address
- Range → 01:00:5e:00:00:00 - 01:00:5e:7f:ff:ff
- No need for ARP request and reply
- Only the last 23 bits of the IP address is mapped into the multicast MAC address
- For receiver, the interface should then be able to receive all the multicast IP datagrams
- The IP module maintains a list of group memberships, which is updated when an upper layer process joins or leaves a group.
- Packet filtering: the interface card may receive multicast frames in which the host is really not interested.
Multicast group management
- Dynamic: Users may join and leave the group during the multicast session
- For router: Keep track of the memberships of all the multicast groups
- For participant host: Know who else is in the group
IGMP
Internet Group Management Protocol
Used by multicast routers to keep track of membership in a multicast group
Function
- Joining a multicast group
- Query membership
- Send membership reports
IGMP Packet Format
![](/note/computer-network/multicast/IGMP%20v1-v2_hucf9484aefec3cea3495c065efe9ff5b7_125001_d94b39f6ecdcc322e1a8901ca29a0648.png)
- IGMP messages are carried in IP datagrams with protocol number.
- IGMPv1 and IGMPv2 messages are only 8 bytes long.
- Max Response Time: applicable only to membership query messages, specifying the maximum allowed time before sending report message in units of 1/10 sec.
IGMPv3:
![](/note/computer-network/multicast/IGMP%20v3_huac10b3fa86bece5d21e3215029e99618_94344_aa1b2a3361a87742723791e1f1c9549e.png)
For IGMPv3, it allows hosts to specify a list of hosts from which they want to receive traffic from. Traffic from other hosts is then blocked.
Three type of queries:
- General Query: Group address set to 0 when sent; group address is specified when replied
- Group-Specific Query: Group address set to the address being queried – introduced by IGMPv2
- Group-and-Source-Specific Query: Both group address and source address(es) being queried are specified – introduced by IGMPv3
IGMP Working Process
Router
- Periodically send host membership queries to discover which multicast groups have members on their attached local networks.
- Interval: 60 second by default.
- Queries are sent to the class D address 224.0.0.1 (all host in the subnet) with a TTL of 1.
- Use 0.0.0.0 as the Group Address for all multicast groups
- Maintains a multicast group membership table
- Record which groups have members in the local networks attached to each interface of the router
- Decide which ports to forward a multicast datagram to
Host
- Responds to a IGMP query with one IGMP report for each multicast group in which it is a member
- The destination IP address is identical to the multicast group it is reporting on
- Avoid of a flood of reports: delay an IGMP report for a random amount of time
- Overhears a report reporting on the same group address: cancel the reports
- Leaves a multicast group
- IGMPv1: Do nothing, membership in router will be removed when expires
- Later version: Report to all routers (with Type value of 0x17)
Multicast routing
Two modes of multicast routing protocol
- Source-Tree
- Dijkstra’s algorithm to find Shortest Path Tree
- Pro: Multicast datagrams from a source are distributed in the shortest path tree → a better delay performance
- Con: Each multicast router has to maintain state for all sources in all the multicast groups. Too costly for a large number of multicast sessions
- Shared-Tree
- The performance depends on how the Rendezvous Point (RP) is chosen
- Pro: Greatly reduce the number of states in the routers
- Con: Traffic concentration problem, large delay and jitter
Protocols
- DVMRP(Distance Vector Multicast Routing Protocol)
- Distance vector based multicast, count-to-infinity as RIP
- Source-Tree
- Flood-and-prune approach
- TTL Threshold: TTL < Threshold → A router will not forward a multicast/broadcast datagram
- MOSPF(Multicast Extension to OSPF)
- Link State algorithm for intra-domain multicast routing protocol, like OSPF
- Source-Tree
- A new group membership LSA (Link–State Advertisement): include group membership in link information
- CBT(Core Based Tree)
- Shared-Tree
- An hierarchical structure: Core router First, All other tree routers request to join the core to build the routing table for each multicast group
- Not broadcast the first datagram
- Traffic load is greatly reduced
- Suitable for large-scale and dense system
- Routing Table size is reduced
- A router only needs to store information for each multicast group
- The number of CBT router entries is the same as the number of active groups
- Traffic Concentration Problem
- PIM(Protocol Independent Multicast)
- Two Modes
- Dense mode: Source-based trees used, works like DVMRP
- Sparse mode: A group-shared tree built from a RP (with backups), like CBT
- Two Modes
Multicast application
- DNS multicast query
- provides a way to locate nearby domain name servers without knowing their IP addresses. The Recursion Desired bit should not be set in order to avoid excessive load on both network and DNS servers.
- RIPv2
- multicast RIP messages only to RIP routers (224.0.0.9) instead of to all routers in RIPv1.
- SNMP
- support group communication between managers and broker agents.
- ICMP
- router solicitation and router advertisement: a host can multicast an ICMP router solicitation massage to all routers in this subnet (specified by 224.0.0.2) after bootstrapping to build its routing table.
- IP Multimedia Streaming for video teleconferencing, Internet audio, IPTV, and video streaming.
- IPTV
- Leverage household access and existing IP network to provide bundled phone, internet, TV (triple play) services
- IGMP Snooping → for broadcast
- Learn the multicast group membership
- Only forwarded to ports that have members of that group(no need for broadcast)
- Significantly reduce multicast traffic delivered to or passing through downstream devices