610 likes | 695 Views
Free Riding Multicast. Sylvia Ratnasamy (Intel Research) Andrey Ermolinskiy (U.C. Berkeley) Scott Shenker (U.C. Berkeley and ICSI) ACM SIGCOMM 2006. IP Multicast. Extensively researched, limited deployment Some intra-domain/enterprise usage Virtually no inter-domain deployment
E N D
Free Riding Multicast Sylvia Ratnasamy (Intel Research) Andrey Ermolinskiy (U.C. Berkeley) Scott Shenker (U.C. Berkeley andICSI) ACM SIGCOMM 2006
IP Multicast • Extensively researched, limited deployment • Some intra-domain/enterprise usage • Virtually no inter-domain deployment • Why? • Poor match with underlying economics? • Too complex? • PIM-SM, PIM-DM, MBGP, MSDP, BGMP, IGMP, etc. • FRM goal: make inter-domain multicast simple
FRM Overview • Free Riding Multicast: radical restructuring of inter-domain multicast • Key design choice: decouple group membership discovery from multicast route construction • Principal trade-off: avoidance of distributed route computation at the expense of optimal efficiency
Talk Outline • Free Riding Multicast (FRM) • Approach overview • Overhead evaluation • Design tradeoffs • Implementation
FRM Approach • Group membership discovery • Extension to BGP - augment route advertisements with group membership information
FRM Approach • Group membership discovery • Extension to BGP - augment route advertisements with group membership information • Multicast route construction • Centralized computation at the origin border router • Exploit knowledge of unicast BGP routes • Eliminate the need for a separate routing algorithm
Group Membership Discovery • Augment BGP with per-prefix group membership information AS X AS Y a.b.*.* c.d.e.* AS P AS Z T AS h.i.*.* f.g.*.* AS Q AS R AS V
Group Membership Discovery • Augment BGP with per-prefix group membership information AS X AS Y a.b.*.* c.d.e.* AS P AS Z T AS • Domain X joins G1 h.i.*.* f.g.*.* AS Q AS R AS V
a.b*.* {G1} Group Membership Discovery • Augment BGP with per-prefix group membership information AS X AS Y a.b.*.* c.d.e.* AS P AS Z T AS • Domain X joins G1 h.i.*.* f.g.*.* AS Q AS R • Border router at X re-advertises its prefix, attaches encoding of active groups AS V BGP UPDATE Dest AS Path FRM group membership a.b.*.* X {G1}
a.b*.* {G1} Group Membership Discovery • BGP disseminates membership change AS X AS Y a.b.*.* c.d.e.* • Border routers maintain membership info. as part of per-prefix state in BGP RIB AS P AS Z T AS h.i.*.* f.g.*.* AS Q AS R AS V
a.b*.* {G1} Group Membership Discovery • BGP disseminates membership change AS X AS Y a.b.*.* c.d.e.* • Border routers maintain membership info. as part of per-prefix state in BGP RIB AS P AS Z T AS h.i.*.* f.g.*.* AS Q AS R AS V
a.b*.* a.b*.* a.b*.* a.b*.* {G1} {G1} {G1} {G1} Group Membership Discovery • BGP disseminates membership change AS X AS Y a.b.*.* c.d.e.* • Border routers maintain membership info. as part of per-prefix state in BGP RIB AS P AS Z T AS h.i.*.* f.g.*.* AS Q AS R AS V
a.b*.* a.b*.* a.b*.* a.b*.* a.b*.* a.b*.* a.b*.* a.b*.* {G1} {G1} {G1} {G1} {G1} {G1} {G1} {G1} Group Membership Discovery • BGP disseminates membership change AS X AS Y a.b.*.* c.d.e.* • Border routers maintain membership info. as part of per-prefix state in BGP RIB AS P AS Z T AS h.i.*.* f.g.*.* AS Q AS R AS V
a.b*.* {G1} Group Membership Discovery • BGP disseminates membership change AS X AS Y a.b.*.* c.d.e.* • Border routers maintain membership info. as part of per-prefix state in BGP RIB AS P AS Z T AS h.i.*.* f.g.*.* AS Q AS R AS V
Group Membership Discovery • Domains Y and Z join G1 AS X AS Y a.b.*.* c.d.e.* AS P AS Z T AS h.i.*.* f.g.*.* AS Q AS R AS AS V V
c.d.e.* f.g.*.* {G1} {G1} Group Membership Discovery • Domains Y and Z join G1 AS X AS Y a.b.*.* c.d.e.* AS P AS Z T AS h.i.*.* f.g.*.* AS Q AS R AS V
c.d.e.* f.g.*.* {G1} {G1} Group Membership Discovery • Domains Y and Z join G1 AS X AS Y a.b.*.* c.d.e.* AS P AS Z T AS h.i.*.* f.g.*.* AS Q AS R AS V
Packet Forwarding AS X AS Y a.b.*.* c.d.e.* AS P AS Z T AS h.i.*.* f.g.*.* AS Q AS R AS V Domain V: Send(G1, Pkt)
Packet Forwarding Dissemination tree AS X AS Y a.b.*.* c.d.e.* AS P AS Z T AS h.i.*.* f.g.*.* AS Q AS R {G1 } Lookup AS V Domain V: Send(G1, Pkt)
Packet Forwarding Dissemination tree AS X AS Y a.b.*.* c.d.e.* V AS P Q AS Z T AS P h.i.*.* f.g.*.* AS Q AS R X {G1 } Lookup AS V Domain V: Send(G1, Pkt)
Packet Forwarding Dissemination tree AS X AS Y a.b.*.* c.d.e.* V AS P Q AS Z T AS P h.i.*.* f.g.*.* AS Q AS R X Y {G1 } Lookup AS V Domain V: Send(G1, Pkt)
Packet Forwarding Dissemination tree AS X AS Y a.b.*.* c.d.e.* V AS P Q R AS Z T AS P Z h.i.*.* f.g.*.* AS Q AS R X Y {G1 } Lookup AS V Domain V: Send(G1, Pkt)
Packet Forwarding Dissemination tree AS X AS Y a.b.*.* c.d.e.* V AS P Q R AS Z T AS P Z h.i.*.* f.g.*.* AS Q AS R X Y {G1 } Lookup AS V Domain V: Send(G1, Pkt)
G1 G1 SubtreeQ SubtreeR Packet Forwarding AS X AS Y a.b.*.* c.d.e.* V AS P Q R AS Z T AS P Z h.i.*.* f.g.*.* AS Q AS R X Y SubtreeQ SubtreeR AS V Domain V: Send(G1, Pkt) • V forwards packet to its children on the tree, attaches encoding the subtree in a “shim” header
G1 G1 SubtreeR SubtreeQ Packet Forwarding AS X AS Y a.b.*.* c.d.e.* V AS P Q R AS Z T AS P Z h.i.*.* f.g.*.* AS Q AS R X Y AS V Domain V: Send(G1, Pkt) • V forwards packet to its children on the tree, attaches encoding the subtree in a “shim” header
G1 G1 SubtreeQ SubtreeR Packet Forwarding AS X AS Y a.b.*.* c.d.e.* V AS P Q R AS Z T AS P Z h.i.*.* f.g.*.* AS Q AS R X Y AS V • Transit routers inspect FRM header, forward packet to their children on the tree Domain V: Send(G1, Pkt)
G1 G1 SubtreeQ SubtreeR Packet Forwarding AS X AS Y a.b.*.* c.d.e.* V AS P Q R AS Z T AS P Z h.i.*.* f.g.*.* No AS Q AS R X Y AS V • Transit routers inspect FRM header, forward packet to their children on the tree Domain V: Send(G1, Pkt)
G1 G1 SubtreeR SubtreeQ Packet Forwarding AS X AS Y a.b.*.* c.d.e.* V AS P Q R AS Z T AS P Z h.i.*.* f.g.*.* AS Q AS R X Y No AS V • Transit routers inspect FRM header, forward packet to their children on the tree Domain V: Send(G1, Pkt)
G1 G1 SubtreeR SubtreeQ Packet Forwarding AS X AS Y a.b.*.* c.d.e.* V AS P Q R Yes AS Z T AS P Z h.i.*.* f.g.*.* AS Q AS R X Y AS V • Transit routers inspect FRM header, forward packet to their children on the tree Domain V: Send(G1, Pkt)
G1 G1 G1 SubtreeR SubtreeQ TREE_BFQ Packet Forwarding AS X AS Y a.b.*.* c.d.e.* V AS P Q R AS Z T AS P Z h.i.*.* f.g.*.* AS Q AS R X Y AS V • Transit routers inspect FRM header, forward packet to their children on the tree Domain V: Send(G1, Pkt)
G1 SubtreeR Packet Forwarding AS X AS Y a.b.*.* c.d.e.* V AS P Q R AS Z T AS P Z h.i.*.* f.g.*.* AS Q AS R X Y AS V • Transit routers inspect FRM header, forward packet to their children on the tree Domain V: Send(G1, Pkt)
G1 SubtreeR Packet Forwarding AS X AS Y a.b.*.* c.d.e.* V AS P Q R AS Z T AS P Z h.i.*.* f.g.*.* AS Q AS R X Y AS V • Transit routers inspect FRM header, forward packet to their children on the tree Domain V: Send(G1, Pkt)
FRM Details • Encoding group membership • Border routers encode locally active groups using a Bloom filter • Transmit encoding using a new path attribute in BGP UPDATE message • Encoding the dissemination tree • Encode edges into a shim header using a Bloom filter • Tree computation is expensive Border routers maintain shim header cache
Talk Outline • Free Riding Multicast (FRM) • Approach overview • Overhead evaluation • Router storage requirements • Forwarding bandwidth overhead (in paper) • Design tradeoffs • Implementation
FRM Overhead – Router Storage AS X AS Y a.b.*.* c.d.e.* AS P Transit router AS Z T AS Transit forwarding state (per-neighbor, line card memory) h.i.*.* f.g.*.* AS Q AS R AS V Origin border router 1. Source forwarding state (per-group, line card memory) 2. Group membership state(per-prefix, BGP RIB)
FRM Overhead – Router Storage AS X AS Y a.b.*.* c.d.e.* AS P Transit router AS Z T AS Transit forwarding state (per-neighbor, line card memory) h.i.*.* f.g.*.* AS Q AS R AS V Origin border router 1. Source forwarding state (per-group, line card memory) 2. Group membership state(per-prefix, BGP RIB)
Forwarding State (Source Border Router) • A -- number of groups with sources in the local domain • Zipfian group popularity with a minimum of 8 domains per group • 25 groups have members in every domain (global broadcast) 256 MB of line card memory enables fast-path forwarding for ~200000 active groups
FRM Overhead – Router Storage AS X AS Y a.b.*.* c.d.e.* AS P Transit router AS Z T AS Transit forwarding state (per-neighbor, line card memory) h.i.*.* f.g.*.* AS Q AS R AS V Origin border router 1. Source forwarding state (per-group, line card memory) 2. Group membership state(per-prefix, BGP RIB)
Group Membership State Requirements • Total of A multicast groups • Domains of prefix length phave 232-pusers • Each user chooses and joins k distinct groups from A • 10 false positives per prefix allowed 1M simultaneously active groups and 10 groups per user require~3GBof route processor memory (not on the fast path)
FRM Overhead – Router Storage AS X AS Y a.b.*.* c.d.e.* AS P Transit router AS Z T AS Transit forwarding state (per-neighbor, line card memory) h.i.*.* f.g.*.* AS Q AS R AS V Origin border router 1. Source forwarding state (per-group, line card memory) 2. Group membership state(per-prefix, BGP RIB)
Forwarding State (Transit Router) • Number of forwarding entries = number of neighbor ASes • Independent of number of groups! • 90% of ASes: 10 forwarding entries • 99% of ASes: 100 forwarding entries • Worst case: 2400 forwarding entries AS P T AS ? ? AS Q ? AS V
Talk Outline • Free Riding Multicast (FRM) • Approach overview • Overhead evaluation • Design tradeoffs • Implementation
FRM Design Tradeoffs • Protocol simplicity • Can be implemented as a straightforward extension to BGP • Centralized route construction (tree is computed at source border router from existing unicast routes)
FRM Design Tradeoffs • Protocol simplicity • Can be implemented as a straightforward extension to BGP • Centralized route construction (tree is computed at source border router from existing unicast routes) • Ease of configuration • Avoid rendezvous point selection
FRM Design Tradeoffs • Protocol simplicity • Can be implemented as a straightforward extension to BGP • Centralized route construction (tree is computed at source border router from existing unicast routes) • Ease of configuration • Avoid rendezvous point selection • Enables ISP control over sources/subscribers • To block traffic for an undesired group, drop it from BGP advertisement • Source controls dissemination tree facilitates source-based charging [Express].
FRM Design Tradeoffs • Group membership state maintenance • Membership information disseminated more widely
FRM Design Tradeoffs • Group membership state maintenance • Membership information disseminated more widely • Nontrivial bandwidth overhead (see paper for results) • Per-packet shim header • Redundant packet transmissions
FRM Design Tradeoffs • Group membership state maintenance • Membership information disseminated more widely • Nontrivial bandwidth overhead (see paper for results) • Per-packet shim header • Redundant packet transmissions • New packet forwarding techniques • Full scan of the BGP RIB at source border router • Bloom filter lookups at transit routers • Group membership state maintenance • Membership information disseminated more widely
FRM Implementation • A proof-of-concept prototype on top of Linux 2.4 and the eXtensible Open Router Platform (http://www.xorp.org). • Functional components: • FRM kernel module (3.5 KLOC of new Linux kernel code) • Interfaces with the Linux kernel IP layer and implements the packet forwarding plane • FRM user-level component (1.9 KLOC of new code) • Extension to the XORP BGP daemon • Implements tree construction and group membership state dissemination • Configuration and management tools (1.4 KLOC of new code)