Schedule of Class Meeng
Mul$media Networking
#7 IP Mul$cast Semester Ganjil 2012 PTIIK Universitas Brawijaya
Schedule of Class Mee$ng
1.Introduc$on 2.
Applica$ons of MN 3.
Requirements of MN 4.
Coding and Compression
5.
RTP 6. IP Mul$cast 7.
IP Mul)cast (cont’d)
8. Overlay Mul$cast
9. CDN: Solu$ons
10. CDN: Case Studies
11. QoS on the Internet: Constraints
12. QoS on the Internet: Solu$ons
13. Discussion 14.
Summary
Today’s Outline
- IP Mul$cast
- – How to receive mul$cast traffic?
- – How to send mul$cast traffic?
- – How to reach all mul$cast receivers?
- Mul$cast Distribu$on Tree
- – source-‐based tree
- – group-‐shared tree
- IP Mul$cast Protocols
- – PIM-‐SM (de-‐facto)
IP Mul$cast Rou$ng
Delivering Data: Unicast vs Mul$cast
10 flows 1 flows of the same packet of a packet sender sender
Mul$cast Unicast
Mul$cast vs Unicast Data Delivery
- Unicast
- – routers forward data to the des$na$on
- Mul$cast
and copy when necessary , data to all listeners
- – routers forward,
Delivering Data: Unicast
Y
X Z W
V D C B A
Delivering Data: Mul$cast
Y
X Z W
V D C B A Delivering Data: Mul$cast
A B
Source only sends a copy of
W
data
V Y D C
X Z Delivering Data: Mul$cast
Y
X Z W
V D C B A
Source only sends a copy of data A router copies packets when necessary Delivering Data: Mul$cast
Y
X Z W
V D C B A
Source only sends a copy of data A router copies packets when necessary
Packets sent to a link are received by all listeners on the link
Mul$cast Address
- Mul$cast address
- – is for a set of interfaces
- – can only be used as the Des$na$on of IP packets
- A mul$cast address
- – is also called a mul$cast group
- Mul$cast address space
- – IPv6: ff00::/8
- – IPv4: 224.0.0.0/4
Mul$cast Router Sender host
Mul$cast Protocols
Receiver host Join/Leave request
Query Mul$cast Router
- Host-‐to-‐Router Protocols
- – IGMPv1, IGMPv2, IGMPv3, MLDv1, MLDv2
- Router-‐to-‐Router Protocols
- – DVMRP, MOSPF, CBT, PIM-‐DM, PIM-‐SM, PIM-‐SSM
How to Send Mul$cast Traffic?
• Just send traffic des$ned to a certain mul$cast
group- – Mul$cast source doesn’t have to listen to any mul$cast group
- Routers handle what to do with the mul$cast traffic
Sending Mul$cast Traffic
Y
X Z W
V D C B A
Mul$cast packet src C : dst G
How to Receive Mul$cast Traffic?
- A host states its inten$on to receive traffic des$ned to a certain mul$cast address
- – Mul$cast Listener Discovery (MLD) for IPv6
- – Internet Group Management Protocol (IGMP) for IPv4
- Host becomes a receiver/listener for the mul$cast group
- How the routers know there are mul$cast receivers/listeners?
- – Routers query local networks to
Host membership query: discover which groups have members Hosts report each group (e.g.,
- –
mul$cast addr) to which belong, by broadcast on net
interface from which query was received
Host membership report:
Becoming a Mul$cast Listener
Y
X Z W
V D C B A Becoming a Mul$cast Listener
A
MLD(*,G): A listens to group G
B W
V Y D C
X Z Becoming a Mul$cast Listener
A
MLD(*,G): A listens to group G
B W
V Y D C
X Z
How to Reach All Listeners?
Y
X Z W
V D C B A
Mul$cast Rou$ng Protocol
- Build mul$cast tree between a source to all listeners
- Mul$cast traffic flows along the tree
- Router knows to which interfaces a mul$cast packet should be forwarded
- – Mul$cast forwarding
Mul$cast Distribu$on Tree
Y
X Z W
V D C B A
Leaf/Last-hop router Root/First-‐hop router
Mul$cast Distribu$on Tree
- Source-‐based Tree
- – Each mul$cast source is root
- – Op$mal tree (shortest hop, (and delay))
- Group-‐shared Tree
- – Rooted at a Rendezvous Point
- – Likely to be non-‐op$mal
Source-‐based Tree
Y
X Z W
V D C B A
Source-‐based Tree
Y
X Z W
V D C B A
Source-‐based Tree
Y
X Z W
V D C B A Group-‐shared Tree Root
A B W
RP
V Y D C
X Z Group-‐shared Tree Root
A B W
RP
V Y D C
X Z Group-‐shared Tree Root
A B W
RP
V Y D C
X Z
Mul$cast Rou$ng Protocol
- Dense Mode
- – DVMRP (Distance Vector Mul$cast Rou$ng Protocol)
- – PIM-‐DM (Protocol Independent Mul$cast -‐ Dense Mode)
- Sparse Mode
- – CBT (Core Based Tree)
- – PIM-‐SM (Protocol Independent Mul$cast – Sparse Mode)
DVMRP
- periodically
Flood-‐and-‐prune
- Flood: routers forward packets to all interfaces
- Prune: routers explicitly refuse mul$cast traffic
- Suites networks with many receivers compared to #routers
PIM-‐SM
- Sparse mode mul$cast rou$ng protocol
explicit Join and Prune
- – uses
- – small #receivers compared to #routers
- Uses the available rou$ng protocol to populate rou$ng table
- – Protocol independent
- de-‐facto mul$cast rou$ng protocol
PIM-‐SM (How it works?)
- Phase 1: Rendezvous Point Tree (RPT)
- – Shared tree rooted at Rendezvous Point (RP)
- – (*,G) Join from leaf routers
- – Senders use PIM Register messages
- Phase 2: Register Stop
- – RP sends (S,G) Join
- – PIM Register messages are stopped
- – Mul$cast flows na$vely from source
- Phase 3: Shortest Path Tree (SPT)
- – (S,G) Join from leaf routers
- – Mul$cast flows using the shortest path from source to listeners
PIM-‐SM: Ini$al State
Y
X Z W
V D C B A
RP PIM-‐SM Phase 1: Rendezvous Point Tree (RPT)
Y
X Z W
V D C B A
RP MLD (*,G) PIM-‐SM Phase 1: RPT
RP
Y
X Z W
V D C B A
MLD (*,G) Join (*,G)
PIM-‐SM Phase 1: RPT
RP
Y
X Z W
V D C B A
MLD (*,G) Join (*,G) Join (*,G)
PIM-‐SM Phase 1: RPT
Y
X Z W
V D C B A
RP MLD (*,G) PIM-‐SM Phase 1: RPT
RP
Y
X Z W
V D C B A
MLD (*,G) (C,G)
PIM-‐SM Phase 1: RPT
RP
Y
X Z W
V D C B A
MLD (*,G) (C,G) PIM Register PIM-‐SM Phase 2: Register-‐Stop
RP
Y
X Z W
V D C B A
MLD (*,G) (C,G)
Join (C,G) PIM-‐SM Phase 2: Register-‐Stop
RP
Y
X Z W
V D C B A
MLD (*,G) (C,G)
Join (C,G) Join (C,G) PIM-‐SM Phase 2: Register-‐Stop
RP
Y
X Z W
V D C B A
MLD (*,G) (C,G) PIM-‐SM Phase 2: Register-‐Stop
RP
Y
X Z W
V D C B A
MLD (*,G) (C,G) PIM-‐SM Phase 2: Register-‐Stop
RP
Y
X Z W
V D C B A
MLD (*,G) (C,G) PIM-‐SM Phase 3: Shortest Path Tree (SPT)
RP
Y
X Z W
V D C B A
MLD (*,G) (C,G)
Join (C,G) PIM-‐SM Phase 3: Shortest Path Tree (SPT)
RP
Y
X Z W
V D C B A
MLD (*,G) (C,G)
PIM-‐SM Phase 3: SPT
RP
Y
X Z W
V D C B A
MLD (*,G) (C,G)
Prune (C,G,rpt)
PIM-‐SM Phase 3: SPT
RP
Y
X Z W
V D C B A
MLD (*,G) (C,G)
Prune (C,G,rpt) Prune (C,G,rpt)
PIM-‐SM Phase 3: SPT
RP
Y
X Z W
V D C B A
MLD (*,G) (C,G)
PIM-‐SM Review
- Phase 1: Rendezvous Point Tree (RPT)
- – Shared tree rooted at Rendezvous Point (RP)
- – (*,G) Join from leaf routers
- – Senders use PIM Register messages
- Phase 2: Register Stop
- – RP sends (S,G) Join
- – PIM Register messages are stopped
- – Mul$cast flows na$vely from source
- Phase 3: Shortest Path Tree (SPT)
- – (S,G) Join from leaf routers
- – Mul$cast flows using the shortest path from source to listeners
Designated Router
- A DR is elected among PIM routers on a link
- – DR priority
- – DR IP address
• DR register-‐encapsulates mul$cast traffic from
sources on its link
Rendezvous Point
- Every mul$cast router within a PIM domain must be able to map a mul$cast group to the same RP
- Methods:
- – Sta$c
- – Dynamic, via PIM Bootstrap and RP Discovery
PIM Bootstrap and RP Discovery
- A router adver$ses itself as BSR-‐candidate
- BSR elected based on priority
- Candidate-‐RP adver$ses itself to BSR
• BSR computes RP-‐set and floods RP-‐set to PIM
domain- – RP-‐set: the collec$on of all group-‐to-‐RP mappings known to a router
Mul$cast Forwarding State
- Routers keep mul$cast forwarding state for each group
- – Join
- – Pruned
- State structure
- – (S, G)
- – Outgoing interfaces
Mul$cast Forwarding
- Do not forward to the incoming interface
- Does the packet come from the correct interface?
- – Reverse Path Forwarding
- Mul$cast router forwards a packet to outgoing interface s
Reverse Path Forwarding
- A router forwards a packet only if received from the upstream interface to the source
- RPF Check
- – Check the source address of mul$cast packets against rou$ng table
- – If arrived on the interface to reach the source address, RPF check passes
- – Otherwise, RPF check fails
RPF Check Illustra$on OI OI
E0 E1 E3 E2
Rou$ng Table S is via R R is on E0 (S,G)
RPF Check
(S,G) RPF Check
(S,G) = src: S dst: mul$cast group G