Title: IP Multicast
1IP Multicast
2You are Here
3Communication Models
receiver
sender
Traditional Applications One-to-One
4Communication Models
sender
receivers
Media Applications One-to-Many
5Communication Models
Media Applications Many-to-Many
6Naïve Solution
- Create M unicast connection for M clients
NOT Scalable!
7Famous Example
- Victorias Secret Spring Fashion Show
- Live Broadcast in 1999
- Video bit-rate 28 Kbps
- Number of viewers 1.5 Millions
8IP Multicast
9New Model IP Multicast
sender
receivers
10Group and Members
11Sending to a Group
12Joining and Leaving
13Anyone can Send
14Multicast Address
- Group ID or Multicast address
- 224.0.0.0 239.255.255.255
15Unicast
S
A
A
B
Router
C
B
Router
Router
Router
C
16Multicast
S
A
G
Router
B
Router
Router
Router
C
17Multicast
S
A
Router
G
B
Router
Router
Router
G
C
18Multicast
S
G
A
Router
B
Router
Router
G
Router
C
19 Question 1
should I forward this packet to my subnet?
Router
?
G
20 Question 2
which neighbors should I forward this packet?
Router
Router
Router
Router
21Group Management
22Group Management
- Routers maintain local host group membership
table - which group has a member in my subnet ?
23IGMP v1.0
- JOIN messageA I want to join group G.
- QUERY messageR Which group have you joined ?
24IGMP v1.0
- MEMBERSHIP ReportA I am a member of group
GA I am a member of group HB I am a
member of group G
25Avoiding Implosion
- Select random delay t
- After time t, if nobody belongs to the same
group, send membership report. - Resend the report after some delay just to be
safe.
26Leave
- If no one in group G after a few query messages,
remove G from local host membership table. - Problem Long leave latency (minutes)
27IGMP v2.0
- LEAVE messageI want to leave group G
- Group-Specific QueryAnybody else belongs to
group G ?
28IGMP v3.0
- Group-Source InclusionI want to listen to S
from group G - Group-Source ExclusionI do not want to listen
to S from group G
29 Question 2
which neighbors should I forward this packet?
Router
Router
Router
Router
30Routing Protocols
31Routing Protocols
- Generic Methods
- Form a tree to all routers with members
- Deliver the packets along the tree
32Shortest Path Tree
- One tree for each source for each group
33Shared Tree
34Routing Protocols
35DVMRP
- Distance Vector Multicast Routing Protocol
36From S to G
Q
R
P
T
37Is R on the shortest path to S ?
Q
R
P
T
38If no.. ignore the packet
Q
R
P
T
39If yes.. continue
Where should I forward it to ?
Q
R
P
T
40Forward to subnet?
Q
R
P
T
41Truncation
- Router checks local host membership table.
- Duplicate the packets only if there is a member
in the subnet.
42Truncation
Q
R
P
T
43Forward to Neighbors?
Q
?
R
P
T
?
44Observation
- If neighbor is going to ignore my packets, dont
need to send the packets to it.
45Exchanging Routing Tables
Dest Next Hop Cost
S P 4
A T 3
B P 2
Q
R
P
T
46Flooding
- Default Always send to neighboring routers,
unless told otherwise.
47Pruning
- Routers who received a useless packet send a
prune message back.Dont send me packets
addressed to G anymore !
48Q
R
P
T
49Q
R
P
T
PRUNE
50Q
R
P
T
51Q
R
P
T
GRAFT
52Q
R
P
T
53Q
PRUNE
R
P
T
54A router needs to remember..
- If it has any member for group G in its subnet
- Where to forward packets from source S to group G
- Which neighbors will not throw my packets away
- Which sub-trees are pruned
55Periodically Rebuild Tree
- DVMRP periodically forget about everything it
learned - Why?
- To clean-up left-over states for groups that
are no longer active.
56Problems of DVMRP
- Not Scalable
- O(SG)
- Not Efficient
- Flooding initially
- Periodically exchange routing tables
57CBT
58Core Based Tree
- One tree per group
- Pick a router as core
- Identity of core can be pre-configured or
computing using some multicast address to core
address mapping.
59A Shared Tree
W
R
U
core
P
Q
V
60V Joins G
W
R
U
JOIN
core
P
Q
V
61V Joins G
W
R
U
JOIN
core
P
Q
V
62V Joins G
W
R
U
ACK
core
P
Q
V
63V Joins G
W
R
U
ACK
core
P
Q
V
64V Joins G
W
R
U
core
P
Q
V
65U Joins G
W
R
U
core
P
Q
V
JOIN
66U Joins G
W
R
U
core
P
Q
V
ACK
intercept!
67Echo
W
R
U
core
P
Q
V
68Flush!
W
R
U
core
P
Q
V
X
69Send (on Tree)
W
R
U
core
P
Q
V
70Send (Not on Tree)
W
R
U
core
P
Q
V
71CBT Strengths
- Scalable
- O(G) states
- No flooding
- No exchange of states
72CBT Weaknesses
- Core placement matters
- Single point of failure
- Core can become bottleneck
73SPT vs. ST
74Experiment 1
- Shared tree has worst delay than shortest path
tree. How much worst? - Generate 500 random networks, 50 nodes each,
10-member groups
75Experimental Results
Delay Ratio (CBT/SPT)
1.4
1
Node Degree
76Experiment 2
- CBT causes traffic to concentrate on a set of
links. How bad is this concentration? - Generate 500 random networks, 50 nodes, 300
groups, 40 members, 32 senders
77Experimental Results
Max Number of Flows/Link
9K
CBT
SPT
6K
Node Degree
78PIM
- Protocol Independent Multicast
79PIM
- Get the best of both world
- dense mode shortest path
- sparse mode shared tree
80PIM-DM
- Similar to DVMRP, except
- send to neighbors even if they will ignore my
packets
81PIM-SM
- Similar to CBT except
- links are uni-directional
W
R
U
core
P
Q
V
82Join
R
join
P
core
Q
83Send (SM)
S
R
P
core
Q
84Switch (Join S)
S
R
switch
P
core
Q
85Switch
S
R
switch
P
core
Q
86Prune
S
R
P
core
Q
prune
87Summary
- What is IP Multicast?
- How to route packets
- IGMP
- DVMRP/CBT/PIM
88So, why cant we multicast?
- Who assign multicast address?
- Who pay for multicast traffic?
- How to inter-operate between protocols?
- How can we prevent DoS?
89System Design Considerations
- or What I learned from Multicast Routing
Protocols
90Practical Issues
- Money matters
- Security matters
91Scalability
- Minimize states
- Avoid implosion
- random timer
- Avoid hot spot
92Robustness
- Periodically forget (soft-states)
- Echo messages (alive messages)
93Minimize Interface /Coupling
- do not assume unicast routing protocol
94Middle Ground
- If you have two schemes with different pros/cons,
think -
- middle ground
95Possible Survey and Project Topics
96Application-Level Multicast
97Single Source Multicast
- Most media applications do not require
many-to-many communication. - Single Source Multicast protocols have been
proposed
98Transport Layer
99TCP vs UDP
- TCP offers
- packet ordering
- reliability
- flow control
- UDP
- just send!
100TCP vs UDP
- Continuous media uses UDP
- Retransmission may not be useful
- Flow control makes throughput unpredictable
- Multicast TCP has problems
101UDP Header
- struct UDPHeader
-
- short src_port
- short dst_port
- short length
- short checksum
102Is UDP Enough?
- Who sent this packet?
- How do I interpret this packet?
- When was this packet generated?
- Which packets come first?
103RTP
- Real-Time Transport Protocol
- (not really a transport protocol)
- Provides
- source identification
- sequence number
- time stamping
- payload identification