ICS 351: Today's plan
- multicasting in general
- IP multicast addresses
- IP multicasting
- IGMP
- PIM
Multicasting
- if a single sender needs to reach a group of receivers
- or if multiple senders need to reach a group of receivers
- or if multiple computers need to reach each other
- in general, a sender should send each packet (stream)
exactly once
- intermediate systems (routers) should duplicate the packet
(stream) once for each outgoing link
- overall, this forms a multicast tree
- the tree can be built starting from the sender towards the
receivers (leaves), along the route that unicast packets would take, or
- the tree can be built by each receiver along the reverse path
towards the sender, until a router that already carries the multicast
data is found. This is reverse path forwarding
- for multicast with multiple senders, the tree can be seen as a
spanning tree with no real root, and a standard flooding
algorithm can be used to distribute the data throughout this
overlay network
- alternately, the tree can have a designated root, a rendezvous
point or RP
IP multicast addresses
- IP multicast addresses are in class D, beginning with 224 through 239
- the first byte for class A addresses is 0 through 127
- the first byte for class B addresses is 128 through 191
- the first byte for class C addresses is 192 through 223
- the first byte for class D addresses is 224 through 239
- the first byte for class E addresses is 240 through 255
- for example, 224.0.0.9 for RIP packets, 224.0.0.5 for OSPF packets
IP Multicasting
- IGMP manages group membership in multicast groups within local
networks (MLD does the same on IPv6 networks)
- PIM (or MOSPF) are the equivalent of routing protocols for
multicast, providing multicast routing when the multicast router
is not local
IGMP
- Internet Group Management Protocol version 3
- used to communicate between a multicast router and local multicast hosts
- the router needs to know which hosts require which multicast stream(s),
so as to only forward streams that are needed
- a host requesting a stream from its router results in the router
recording this information
- this request expires if not refreshed often enough: soft state
in the router
- messages sent over IP (protocol number 2) with TTL 1
- IGMP routers send Membership Queries, IGMP hosts send Membership Reports
- RFC 3376
PIM
- Protocol Independent Multicast is protocol-independent in the
sense that it relies on a not-otherwise defined routing protocol to
find routes
- PIM dense mode (PIM-DM),
RFC 3973
- in dense mode, multicast data is sent to all routers except
those that send prune messages
- PIM sparse mode (PIM-SM),
RFC 4601
- in sparse mode, multicast data is broadcast over a tree rooted
at a designated router called the Rendezvouz Point (RP)
- also PIM Source-Specific Multicast (PIM-SSM) and Bidirectional PIM
(BIDIR-PIM), a variant of PIM-SM
MBONE
- for a while, there was a generic multicasting infrastructure
called the MBONE (multicast backbone)
- the 6-bone was a similar infrastructure for IPv6 traffic
- the MBONE was a collection of multicast routers willing
to carry multicast traffic and to run multicast routing protocols
- a host that was not directly connected to a multicast router
could register with a remote MBONE router and exchange packets
using unicast IP