Announcements EECS Introduction to Computer Networks Multicast and Overlay
Document Sample


Announcements
EECS 122: ! No class Wednesday. Happy Thanksgiving!
Introduction to Computer Networks
Multicast and Overlay Networks ! Project 2a code posted… use at will for part 2b
- but, better and probably easier to use your own code
Ion Stoica (and Brighten Godfrey)
TAs: Lucian Popa, David Zats and Ganesh Ananthanarayanan
http://inst.eecs.berkeley.edu/~ee122/
Materials with thanks to Vern Paxson, Jennifer Rexford,
and colleagues at Princeton and UC Berkeley
EE122 F08 EE122 F08 2
Motivational Example:
Streaming Media This approach does not scale…
! Live 8 concert
- Send ~300 Kb/s video streams
- Peak usage > 100,000 simultaneous users Broadcast
Center Backbone
ISP
- Consumes > 30 Gb/s
- If 1000 people are in Berkeley, and if the concert were
broadcast from a single location, 1000 unicast streams
are sent from that location to Berkeley
EE122 F08 3 EE122 F08 4
Instead build trees Multicast Routing Approaches
Copy data at routers
! Kinds of Trees
At most one copy of a data packet per link
- Source Specific Trees
- Shared Tree
Broadcast
Center Backbone ! Tree Computation Methods
ISP - Link state
- Distance vector
•Routers keep track of groups
in real-time •LANs implement link
•Routers compute trees and layer multicast by
forward packets along them broadcasting
EE122 F08 5 EE122 F08 6
Source Specific Trees Source Specific Trees
•Each source is the root of •Each source is the root of
its own tree its own tree
5 7 5 7
•One tree per source •One tree per source
4
8
•Tree can consists of 4
8
•Tree can consists of
shortest paths to each shortest paths to each
6 receiver 6 receiver
11 11
2 10 2 10
3 3
1 13 12 1 13 12
Very good performance but
expensive to construct/maintain;
Members of the multicast tree Sender routers need to manage a tree
per source
EE122 F08 7 EE122 F08 8
Shared Tree Shared Tree
! Ideally, find a Steiner tree -
One tree used by all the minimum-weighted
members in a group tree connecting only the
5 7
2
2 multicast members
5 7
4
8 4 1 2 2
8
6 12
6
11 15
2 2 2
10 11
2
2 10
2 3 1
7
1 3 13 11 1 2
12 3
1 13 12
Less state to construct but 12 2
hard to pick “good” trees for
everyone!
EE122 F08 9 EE122 F08 10
Shared Tree Shared Tree
! Ideally, find a Steiner tree ! Example heuristic: find a
– minimum-weighted tree minimum-spanning tree –
connecting only the minimum-weighted tree
2
2 multicast members connecting all nodes in
5 7
! Finding Steiner Tree is NP 2 the network
4 2 5 7
1 2
8 2 hard ! Finding a minimum
12 ! Heuristics are known 4 1 2 2
spanning tree is much
8
6 easier
12
15 6
2 2 11
2 15
2 10 2
3 2 11
2 7 1 2
2 10
11 1 2
2 3 1
1 3 13 7
12 11 1 2
12 2
1 3 13
12
12 2
EE122 F08 11 EE122 F08 12
Shared Tree Shared Tree
! Example heuristic: find a ! Example heuristic: find a
minimum-spanning tree – minimum-spanning tree –
minimum-weighted tree
minimum-weighted tree connecting all nodes in the
connecting all nodes in the 2
network
2 network
2 5 7
2 5 7 ! Finding a minimum spanning
! Finding a minimum tree is easier. How?
4 1 2
4 1 2
8 2 spanning tree is much 8 2! Prune back to get multicast
12 tree
12 easier. How? 6
6
15 15
2 2 2
2 11 11
2 2 10
2 10 2
3 2 3 1
2 7 1 7
2 11 1 2
11 1
3
3 1 13
1 13 12 12
12 12 2
2
EE122 F08 13 EE122 F08 14
Multicast Service Model Multicast Service Model (cont’d)
! Unicast: packets delivered to one destination
! Membership access control
! Broadcast: packets delivered to all end-hosts
- Open group: anyone can join
! Multicast: packets delivered to multiple destinations (those
that have joined the multicast group) - Closed group: restrictions on joining
atas G R0
[G,1djoin
]
R
[G, data] [G, data]
s G R1 ! Sender access control
S Net R0 join
. - Anyone can send to group
[Rn
G,
-data
1j . - Anyone in group can send to group
oin
]
sG .
- Restrictions on which host can send to group
Rn-1
! Receivers join a multicast group which is identified by a
multicast address (e.g. G)
! Sender(s) send data to address G
! Network routes data to each of the receivers
EE122 F08 15 EE122 F08 16
Multicast and Layering Multicast Implementation Issues
! Multicast can be implemented at different layers ! How are multicast packets addressed?
- data link layer
• e.g. Ethernet multicast
! How is join implemented?
- network layer
• e.g. IP multicast
- application layer ! How is send implemented?
• e.g. End system multicast
! Which layer is best? ! How much state is kept and who keeps it?
EE122 F08 17 EE122 F08 18
Problems with
Data Link Layer Multicast Data Link Layer Multicast
! Recall: end-hosts in the same local area network (LAN) can hear from ! Single data link technology
each other at the data link layer (e.g., Ethernet)
! Single LAN
! Reserve some data link layer addresses for multicast
- Limited to small number of hosts
! Join group at multicast address G
- Network interface card (NIC) normally only listens for packets sent to
- Limited to low diameter latency
unicast address A and broadcast address B - Essentially all the limitations of LANs compared to
- To join group G, NIC also listens for packets sent to multicast address G internetworks
(NIC limits number of groups joined)
- Implemented in hardware, thus efficient
! Send to group G
- Packet is flooded on all LAN segments, like broadcast
- Can waste bandwidth, but LANs should not be very large
! Only host NICs keep state about who has joined ! scalable to large
number of receivers, groups
EE122 F08 19 EE122 F08 20
Network Layer (IP) Multicast IP Multicast Routing
! Overcomes limitations of data link layer multicast ! Intra-domain
! Performs inter-network multicast routing - Distance-vector multicast
- Relies on data link layer multicast for intra-network - Link-state multicast
routing ! Inter-domain
! Portion of IP address space defined as multicast - Protocol Independent Multicast
addresses - Single Source Multicast
- 228 addresses for entire Internet
! Open group membership
! Anyone can send to group
- Flexible, but leads to problems
EE122 F08 21 EE122 F08 22
Distance Vector Multicast Routing
Protocol (DVRMP) Reverse Path Flooding (RPF)
! An elegant extension to DV routing ! Extension to DV unicast routing
! Packet forwarding
! Use shortest path DV routes to determine if link is - If incoming link is shortest path to s:3
on the source-rooted spanning tree source
- Send on all links except incoming
! Three steps in developing DVRMP - Packets always take shortest path
- Reverse Path Flooding • assuming delay is symmetric s:2 s:3
- Reverse Path Broadcasting ! Issues
- Some links (LANs) may receive
- Truncated Reverse Path Broadcasting multiple copies s:1 s:2
- Every link receives each multicast
packet, even if no interested hosts
s r
DV shortest paths
RPF data flow
EE122 F08 23 EE122 F08 24
Example Reverse Path Broadcasting (RPB)
! Flooding can cause a given packet to be sent multiple times over ! Chose parent of each link along
the same link reverse shortest path to source
S S
! Only parent forward to a link 5 6
(child link)
! Identify Child Links forward only x y
x y to child link
! Routing updates identify parent
! Since distances are known, a
a child link of x
each router can easily figure for S
duplicate packet out if it's the parent for a given z
z link
! In case of tie, lower address b
wins
b
! Solution: Reverse Path Broadcasting
EE122 F08 25 EE122 F08 26
Truncated Reverse Path
Don’t Really Want to Flood! Broadcasting (TRPB)
S
! This is still a broadcast algorithm – the traffic ! Extend DV/RPB to eliminate
unneeded forwarding
goes everywhere NL
! Identify leaves
! Need to “Prune” the tree when there are subtrees - Routers announce that a link is
with no group members their next link to source S
- Parent router can determine that it
! Solution: Truncated Reverse Path Broadcasting is not a leaf NL NL
! Explicit group joining on LAN
- Members periodically (with random
offset) multicast report locally L L
- Hear and report, then suppress
own r2
! Packet forwarding
- If not a leaf router or have r1
members
- Out all links except incoming L – leaf node
NL – Non-leaf node
EE122 F08 27 EE122 F08 28
Pruning Details Pruning Details
! Prune (Source,Group) at leaf if no members ! How to pick prune timers?
- Send Non-Membership Report (NMR) up tree - Too long " large join time
! If all children of router R send NRM, prune (S,G) - Too short " high control overhead
- Propagate prune for (S,G) to parent R
! On timeout: ! What do you do when a member of a group
- Prune dropped (re)joins?
- Flow is reinstated - Issue prune-cancellation message (graft)
- Down stream routers re-prune
! Note: a soft-state approach
EE122 F08 29 EE122 F08 30
Distance Vector Multicast Scaling Core Based Trees (CBT)
! State requirements: ! Pick a “rendezvous point” for the group called the core.
- O(Sources " Groups) active state - One tree per group (same tree for all senders in group)
! Unicast packet to core and bounce it back to multicast
! How to get better scaling? group
- Hierarchical Multicast ! Tree construction is receiver-based
- Core-based Trees - Joins can be tunneled if required
- Only nodes on tree involved
! Reduce routing table state from O(S x G) to O(G)
EE122 F08 31 EE122 F08 32
Example CBT vs. DV Multicast
! Group members: M1, M2, M3 ! DV Multicast: One tree for each source
! M1 sends data - More state in routers
root - Better optimized trees
M1 ! CBT: Trees shared among all sources in a group
- Less state in routers
- Shared tree may not be the best tree for any particular source
- Need to pick a good core node
• Sub-optimal setup delay
M2 M3 • Optimal choice (computing topological center) is NP hard
control (join) messages
data
EE122 F08 33 EE122 F08 34
Problems with
Network Layer Multicast (NLM) NLM Reliability
! Scales poorly with number of groups ! Assume reliability through retransmission
- A router must maintain state for every group that ! Sender can not keep state about each receiver
traverses it
- E.g., what receivers have received
- Many groups traverse core routers
- Number of receivers unknown and possibly very large
! Supporting higher level functionality is difficult
! Sender can not retransmit every lost packet
- NLM: best-effort multi-point delivery service
- Even if only one receiver misses packet, sender must
- Reliability and congestion control for NLM complicated retransmit, lowering throughput
! Deployment is difficult and slow ! N(ACK) implosion
- ISPs reluctant to turn on NLM - Described next
EE122 F08 35 EE122 F08 36
(N)ACK Implosion NACK Implosion
! (Positive) acknowledgements ! When a packet is lost all receivers in the sub-tree
- Ack every n received packets
originated at the link where the packet is lost send
- What happens for multicast?
NACKs
! Negative acknowledgements 3 R1
- Only ack when data is lost
- Assume packet 2 is lost 2?
R1 S 3
R2
2?
3 2 1
S 2?
R2
R3
3
R3
EE122 F08 37 EE122 F08 38
Barriers to Multicast
! Hard to change IP
- Multicast means changes to IP
- Details of multicast were very hard to get right
Overlay Networks
! Not always consistent with ISP economic model
- Charging done at edge, but single packet from edge
can explode into millions of packets within network
! Troublesome security model
- Anyone can send to a group
- Denial-of-service attacks on known groups
EE122 F08 39 EE122 F08
Overlay Networks: Motivations Motivations (cont’d)
! Protocol changes in the network happen very slowly ! One size does not fit all
! Why?
- Internet network is a shared infrastructure; need to achieve consensus (IETF) ! Applications need different levels of
- Many of proposals require to change a large number of routers (e.g., IP - Reliability
Multicast, QoS); otherwise end-users won’t benefit
- Performance (latency)
! Proposed changes that haven’t happened yet on large scale: - Security
- More Addresses (IPv6 ’91) - Access control (e.g., who is allowed to join a multicast
- Security (IPSEC ’93); Multicast (IP multicast ’90) group)
- …
EE122 F08 41 EE122 F08 42
Goals Solution
! Deploy processing in the network
! Make it easy to deploy new functionalities in the
network " accelerate the pace of innovation ! Have packets processed as they traverse the
network
! Allow users to customize their service AS-1
IP
Overlay Network
AS-1 (over IP)
EE122 F08 43 EE122 F08 44
Overlay network overview Application Layer Multicast (ALM)
! Application Layer (Overlay) multicast ! Let the hosts do all the “special” work
- Only require unicast from infrastructure
! Resilient Overlay Network (RON) ! Basic idea:
- Hosts do the copying of packets
! Next lecture: Peer-to-peer systems - Set up tree between hosts
! Example: Narada [Yang-hua et al, 2000]
- Small group sizes <= hundreds of nodes
- Typical application: streaming video
! (What do you use that’s a lot like overlay multicast?)
EE122 F08 45 EE122 F08 46
Narada: End System Multicast Algorithmic Challenge
Gatech Stanford
Stan1
Stan2 ! Choosing replication/forwarding points among
CMU hosts
- how do the hosts know about each other
Berk1 - and know which hosts should forward to other hosts
Berkeley Berk2
“Overlay” Tree Stan1
Gatech
Stan2
CMU Berk1
Berk2
EE122 F08 47 EE122 F08 48
Advantages of ALM Performance Concerns
! No need for changes to IP or routers ! Stretch
- ratio of latency in the overlay to latency in the
underlying network
! No need for ISP cooperation
! Stress
! End hosts can prevent other hosts from sending - number of duplicate packets sent over the same
physical link
! Easy to implement reliability
- use hop-by-hop retransmissions ! Network Layer Multicast can get perfect or near-
perfect stretch; ALM can’t in general
- but it can come pretty close
EE122 F08 49 EE122 F08 50
Performance Concerns Overlay network overview
Delay from CMU to Stan1
Gatech Berk1 increases ! Overlay Multicast (Narada)
Stan2
# Resilient Overlay Network (RON)
CMU
Berk2
Berk1
Duplicate Packets: Gatech Stanford ! Next lecture: Peer-to-peer systems
Stan1
Bandwidth Wastage
Stan2
CMU
Berk1
Berkeley Berk2
EE122 F08 51 EE122 F08 52
Resilient Overlay Network (RON) Example
! Premise: by building application overlay network, can increase
performance and reliability of routing MIT
Berkeley
Default IP path determined by BGP & OSPF
! Install N computers at different Internet locations
! Each computer acts as an overlay network router
- Between each overlay router is an IP tunnel (logical link)
- Logical overlay topology is all-to-all (N2 total links)
! Run a link-state routing algorithm in that overlay topology UCLA
- Computers actively measure each logical link in real time for packet loss
rate, latency, throughput, etc Reroute traffic using red alternative overlay network path, avoid congestion point
- These define link costs
Acts as overlay router
- Route overlay network traffic based on measured characteristics
EE122 F08 53 EE122 F08 54
Summary: What You Need to Know
! Multicast protocols
- DVRMP
- CBT
- How they compare
! Overlay networks
- Benefits and drawbacks
- More to come: P2P
EE122 F08 55
Related docs
Get documents about "