Multicast
Multicast
Application Application
read(s1, dataBlock) send(s2, dataBlock)
How do hosts exchange
Transport Transport TCP segments or
UDP datagrams using sockets
1 2 3 1 2 3
How we configure hosts
Network (IP) Network (IP) Network (IP) and how we send/receive/
forward IP packets
1 2 3 1 2 3 1 2 3
How we manage medium access
MAC (WiFi) MACMAC
(WiFi) MAC (Ethernet) MAC (Ethernet) and how we send/receive/
forward frames in the LAN
1 2 3 1 2 3 1 2 3 1 2 3
Physical Physical Physical Physical
Next: how to address practical issues…
Same layers, but more complicated/interesting concepts:
• How to do “live tv broadcasting” by also reducing the stress at the source
‣ use a special case of IP forwarding —> multicast
e c lic), la
l
( u n simp our nous, re
r t p b
v o tre pa En effet, t du nom et
e s. e n
s a ction d s station e la durée s à l'inter ne
n le d è e
m i té e : sa né selon pendant ayant acc io Franc n
s li m i dé es a d is e
és ormai mps déter t un coût internaut allumé. R avons m eux
u te est d t d'un te imposen que les dinateur oi nous et de mi
r ée d'éc e au bou ctuelles ndiquent t leur or st pourqu us perm
o
t a i n o
La du ion s'arrê nologies nts nous 'ils quitte e pas. C'e ais qui n
s h e u t
diffu s, les tec urs élém te, lorsq ui n'écou aignant, m n. u
f f u s eur P lu sie s l'écou celui q co ntr iff u sio _ b d.m3
di s . a r u d ip
iteur ent p r pou un pe ts de franc
e/f
d'aud ne coup à finance irmation, r les coû /radio
lim ité n u e r co n f n tr ô le s t.n et/V4
il cont i e de co ac a
peut ce systèm /v ip http.y
/
http:
place
IP Multicast
• Recall: Source
- Unicast = source sends data to a unicast IP address,
and a single destination receives it
- Multicast = source sends data to a multicast IP address,
but multiple destinations receive it Source’s router
2
PIM: Protocol Independent Multicast (typical example)
A IGMP: join (s,m) Multicast routing (PIM) s (e.g. a video streaming server)
to m
3 1
2 to m
to m
R1 R5
m -> p m -> p
3
R2
4
m -> p
B
5
R4
m -> pD
Figure explanation:
1. If s sends packets to multicast address m and there are no subscribed
destinations yet, the data is dropped at router R5.
So, we use the following steps:
2. A joins the SSM group (s,m).
3. R1 informs the rest of the network that (s,m) has a member at R1 by using
e.g. the multicast routing protocol PIM-SM; this results in a tree being built.
Data sent by s now reach A.
4. B joins the multicast address m.
5. R4 informs the rest of the network that m has a member at R4; the multicast
routing protocol adds branches to the tree.
Data sent by s now reach both A and B.
PIM: Protocol Independent Multicast
supports ASM and SSM
exists in 2 versions
• PIM-DM (Dense Mode) makes heavy use of
broadcast and can be used only in small,
tightly controlled networks
• PIM-SM (Sparse Mode) is more reasonable and
is used e.g. for TV distribution
- When used with SSM, PIM-SM uses reverse path forwarding (RPF):
when a router (such as R1) needs to add a receiver, it sends a
PIM/JOIN router message towards the source, using unicast routing
- This creates the distribution tree on the fly
- [PIM-SM for ASM is more complicated; it uses one multicast router as Rendez-vous Point (RP): destination routers create a
tree from RP, using RPF; router closest to source sends source packets to RP; if there exists an interested receiver in the
domain, RP creates a tree from source (using RPF) otherwise drops; destinations create trees from sources, using RPF.]
PIM-enabled routers must keep
per-flow state information
Multicast state information is dynamically kept in router for every known multicast group:
(s, m) or (*,m) // id of group
valid incoming interfaces // for security
outgoing interfaces // this is the routing info
other information required by multicast routing protocol
This per-flow state information cannot be aggregated based on prefix: scalability issues
BIER (Bit Index Explicit Replication)
Why ? Multicast routing requires routers to keep per-flow state (dynamic, depends on
who listens to the group) and apply exact match
➡ This causes a stress to backbone routers; so, we need an alternative that scales better
How ?
BIER uses a centralized entity and an extension header:
• A multicast packet has a BIER header that contains (roughly speaking) the list of destination BIER
routers (Bit-Forwarding Egress Routers, BFERs)
• BIER routers rely on unicast routing in order to determine how to deliver a packet to the set of BFERs
indicated in the BIER header
- If several BFERs are reached via different next-hops, BIER routers replicate packet
- Then send only a single copy to each next hop for all BFERs that are reached through this next hop
- In this copy, the BIER header is modified accordingly
BIER: example Multicast flow overlay—centralized
(e.g. video distribution control servers or
Multicast VPN or SDN controller)
IGMP: join (s,m) join (s,m)
A
IP dest = m (1,3,4) who has (s,m)
R1 members ?
5a
Id =1 to {1} IP dest = m
4a
to {1} IP dest = m IP dest = m
1 S
R2 R6
Id=2 3a R7 R5
IGMP: join (s,m)
B Id=5
2
IP dest = m
to {1,3,4} IP dest = m
7 R3
Id=3
to {3,4} IP dest = m
6 to {3} IP dest = m
3b
R4 R8
Bit Other Bit
Id=4 Forwarding Forwarding BIER header IP header
IP dest = m 4b Egress Router Router
to {3,4} IP dest = m to {BFERs} IP dest = m
5b
C R1 R7
IGMP: join (s,m) Id=1
Group membership information is distributed by an external infrastructure called “multicast flow overlay”, for example: a
special set of servers used to control the distribution of the video content, or a system to manage multicast virtual private
networks using MPLS and BGP (see later in MPLS lecture) or a central network controller (SDN).
All routers on the figure are BIER routers (Bit Forwarding Routers, BFRs). Routers R1-R5 are egress routers (they need to
forward multicast packets to the outside); such routers have a BFR-id, for example R1’s BIER-id is 1.
Router R5 learns from the multicast flow overlay that the group (s,m) has members in routers with BFR-ids 1,3 and 4.
1. Router R5 has an IP multicast packet to send to m, from s. R5 knows that it should send the packet to R1, R3 and R4. From
unicast routing (classic IP forwarding table), R5 finds that R1, R3 and R4 are reached via the same next-hop (R7) therefore R5
sends one packet with BIER header (1,3,4) to R7.
2. From unicast routing, R7 finds that R3 and R4 are reached via the same next-hop (R8) but R1 requires a different next-hop.
Therefore, R7 duplicates the packet and creates 2 packets, one with BIER header (1), sent to R6, and one with BIER header
(3,4), sent to R8.
3a. R6 forwards the packet to R1.
4a, 5a. R1 belongs to the destination list contained in the BIER header, therefore R1 knows it should forward the packet using
classic multicast. The BIER header is removed and the packet is forwarded to the west LAN interface where A can receive it.
3b. From its forwarding table, R8 finds that R3 and R4 are reached via the same next-hop (R4). Therefore, R8 sends the
packet to R4.
4b, 5b. R4 belongs to the destination list contained in the BIER header, therefore R4 knows it should forward the packet using
native multicast. The BIER header becomes (3). 5b. The BIER header is removed and the packet is forwarded to R4’s west
LAN interface where C can receive it.
6b. R4 sends one copy of the packet to R3.
7b. The BIER header is removed and the packet is forwarded to R3’s west LAN interface where B can receive it.
Multicast flow overlay
• For each destination BFER, BIER router encodes the forwarding bit mask 5a
R1
Id =1 to {1} IP dest = m
in a bitstring 4a
to {1} IP dest = m IP dest = m
1
- example for 5 possible BFERs: R2 R6 S
Id=2 3a R7 R5
IGMP: join (s,m) 2
Destination BFERs = {1,3,4} —> bitstring = 01101 B Id=5
IP dest = m
Destination BFERs = {3,4} —> bitstring = 01100 7b R3
to {1,3,4} IP dest = m
Id=4
• Set difference becomes a bitwise AND with the bit-inverted mask IP dest = m 4b
5b to {3,4} IP dest = m
• More complicated mechanisms exist, if the #of BFERs is large [RFC 8279]
C
IGMP: join (s,m)
5 1 0000 R5
Is there Multicast ARP (address resolution protocol)?
• No, multicast MAC address is algorithmically
derived from multicast IP address: 1st bit of hextet is 0
- Last 23 bits of IPv4 multicast address
are used in MAC address MAC multicast addr. Used for
- Last 32 bits of IPv6 multicast address
01-00-5e-YX-XX-XX IPv4 multicast
are used in MAC address
33-33-XX-XX-XX-XX IPv6 multicast
A. A Go to web.speakup.info or
download speakup app
B. B
Join room
C. C 46045
D. A and B A. In order to send to a multicast group a system
E. A and C must first join the group with IGMP or MLD
F. B and C B. In order to receive from a multicast group a
system must first join the group with IGMP or MLD
G. All
C. A system can know whether a packet is multicast
H. None by analyzing the IP destination address.
I. I don’t know
Solution
F
R is a backbone router used for multicast distribution.
In which case must R keep per-flow information ?
A. If R uses PIM-SM as multicast routing protocol
B. If R uses BIER as multicast routing protocol
C. In both cases
D. In neither case
E. I don’t know
Go to web.speakup.info or
download speakup app
Join room
46045
R is an ingress edge router used for multicast distribution.
In which case must R cache per-flow information ?
A. If R uses PIM-SM as multicast routing protocol
B. If R uses BIER as multicast routing protocol
C. In both cases
D. In neither case
E. I don’t know
Go to web.speakup.info or
download speakup app
Join room
46045
Solution
Answer to first question: A
Answer to second question: C (A and B)