EECS 122 Introduction to Computer Networks Multicast Computer

  • Slides: 49
Download presentation
EECS 122: Introduction to Computer Networks Multicast Computer Science Division Department of Electrical Engineering

EECS 122: Introduction to Computer Networks Multicast Computer Science Division Department of Electrical Engineering and Computer Sciences University of California, Berkeley, CA 94720 -1776 EECS 122 - UCB Katz, Stoica F 04

Today’s Lecture: 16 2 17, 18, 19 6 Application Transport 10, 11 14, 15,

Today’s Lecture: 16 2 17, 18, 19 6 Application Transport 10, 11 14, 15, 16 7, 8, 9 21, 22, 23 25 Network (IP) Link Physical Katz, Stoica F 04 2

Motivation Example: Internet Radio § www. digitallyimported. com (techno station) - Sends out 128

Motivation Example: Internet Radio § www. digitallyimported. com (techno station) - Sends out 128 Kb/s MP 3 music streams - Peak usage ~9000 simultaneous streams • only 5 unique streams (trance, hard house, eurodance, classical) - Consumes ~1. 1 Gb/s • bandwidth costs are large fraction of their expenditures (maybe 50%? ) - If 1000 people are getting their groove on in Berkeley, 1000 unicast streams are sent from NYC to Berkeley Katz, Stoica F 04 3

This approach does not scale… Broadcast Center Backbone ISP Katz, Stoica F 04 4

This approach does not scale… Broadcast Center Backbone ISP Katz, Stoica F 04 4

Instead build trees Copy data at routers At most one copy of a data

Instead build trees Copy data at routers At most one copy of a data packet per link Broadcast Center • Routers keep track of groups in real-time • Routers compute trees and forward packets along them Backbone ISP • LANs implement link layer multicast by broadcasting Katz, Stoica F 04 5

Multicast Routing Approaches § Kinds of Trees - § Source Specific Trees Shared Tree

Multicast Routing Approaches § Kinds of Trees - § Source Specific Trees Shared Tree Computation Methods - Link state Distance vector Katz, Stoica F 04 6

Source Specific Trees 5 4 • Each source is the root of its own

Source Specific Trees 5 4 • Each source is the root of its own tree • One tree per source • Tree can consists of shortest paths to each receiver 7 8 6 11 2 1 10 3 Members of the multicast tree 13 12 Sender Katz, Stoica F 04 7

Source Specific Trees 5 4 • Each source is the root of its own

Source Specific Trees 5 4 • Each source is the root of its own tree • One tree per source • Tree can consists of shortest paths to each receiver 7 8 6 11 2 1 10 3 13 12 Very good performance but expensive to construct/maintain; routers need to manage a tree per source Katz, Stoica F 04 8

Shared Tree 5 4 One tree used by all members in a group 7

Shared Tree 5 4 One tree used by all members in a group 7 8 6 11 2 1 10 3 13 12 Easier to construct/maintain but hard to pick “good” trees for everyone! Katz, Stoica F 04 9

Shared Tree § 2 4 2 5 1 7 2 8 Ideally, find a

Shared Tree § 2 4 2 5 1 7 2 8 Ideally, find a Steiner tree the minimum-weighted tree connecting only the multicast members 2 12 6 15 2 2 3 12 12 7 11 10 2 3 2 2 1 13 12 2 Katz, Stoica F 04 10

Shared Tree § 2 2 5 7 § 4 1 2 8 2 12

Shared Tree § 2 2 5 7 § 4 1 2 8 2 12 § 6 15 2 2 2 3 12 12 7 11 10 2 3 2 Ideally, find a Steiner tree – minimum-weighted tree connecting only the multicast members Finding Steiner Tree is NP hard Heuristics are known 1 13 12 2 Katz, Stoica F 04 11

Shared Tree § 2 4 2 5 1 7 2 8 § 2 12

Shared Tree § 2 4 2 5 1 7 2 8 § 2 12 Alternatively, find a minimum-spanning tree – minimum-weighted tree connecting all nodes in the network Finding a minimum spanning tree is much easier 6 15 2 2 1 12 12 7 11 3 11 10 2 3 2 2 1 13 12 2 Katz, Stoica F 04 12

Shared Tree § 2 4 2 5 1 7 2 § 8 2 12

Shared Tree § 2 4 2 5 1 7 2 § 8 2 12 6 15 2 2 2 1 12 12 7 11 3 11 10 2 3 2 Alternatively, find a minimum-spanning tree – minimum-weighted tree connecting all nodes in the network Finding a minimum spanning tree is much easier. How? 1 13 12 2 Katz, Stoica F 04 13

Shared Tree § 2 4 2 5 1 7 2 8 12 2 3

Shared Tree § 2 4 2 5 1 7 2 8 12 2 3 12 12 7 11 10 2 3 2 2 § 6 15 § Alternatively, find a minimum-spanning tree – minimum-weighted tree connecting all nodes in the network Finding a minimum spanning tree is easier. How? Prune back to get multicast tree 1 13 12 2 Katz, Stoica F 04 14

Multicast Service Model S [G, data] Net tnas] G R a i d o

Multicast Service Model S [G, data] Net tnas] G R a i d o , j 0 G [ R 1 [G, data]G s R 1 R 0 join [RG, n-1 da joitna] s. G . . . 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 § Note: multicast vs. broadcast § § - Broadcast: packets are delivered to all end-hosts in the network - Multicast: packets are delivered only to end-hosts that are in (have joined) the multicast group Katz, Stoica F 04 15

Multicast Service Model (cont’d) § Membership access control - open group: anyone can join

Multicast Service Model (cont’d) § Membership access control - open group: anyone can join - closed group: restrictions on joining § Sender access control - anyone can send to group - anyone in group can send to group - restrictions one which host can send to group Katz, Stoica F 04 16

Multicast and Layering § Multicast can be implemented at different layers - data link

Multicast and Layering § Multicast can be implemented at different layers - data link layer • e. g. Ethernet multicast - network layer • e. g. IP multicast - application layer • e. g. End system multicast § Which layer is best? Katz, Stoica F 04 17

Multicast Implementation Issues § § How are multicast packets addressed? How is join implemented?

Multicast Implementation Issues § § How are multicast packets addressed? How is join implemented? How is send implemented? How much state is kept and who keeps it? Katz, Stoica F 04 18

Data Link Layer Multicast § § § Recall: end-hosts in the same local area

Data Link Layer Multicast § § § Recall: end-hosts in the same local area network (LAN) can hear from each other at the data link layer (e. g. , Ethernet) Reserve some data link layer addresses for multicast Join group at multicast address G - Network interface card (NIC) normally only listens for packets sent to unicast address A and broadcast address B - To join group G, NIC also listens for packets sent to multicast address G (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 Katz, Stoica F 04 19

Problems with Data Link Layer Multicast § § Single data link technology Single LAN

Problems with Data Link Layer Multicast § § Single data link technology Single LAN - limited to small number of hosts - limited to low diameter latency - essentially all the limitations of LANs compared to internetworks Katz, Stoica F 04 20

Network Layer (IP) Multicast § § Overcomes limitations of data link layer multicast Performs

Network Layer (IP) Multicast § § Overcomes limitations of data link layer multicast Performs inter-network multicast routing - relies on data link layer multicast for intra-network routing § Portion of IP address space defined as multicast addresses - 228 addresses for entire Internet § § Open group membership Anyone can send to group - flexible, but leads to problems Katz, Stoica F 04 21

IP Multicast Routing § Intra-domain - Distance-vector multicast - Link-state multicast § Inter-domain -

IP Multicast Routing § Intra-domain - Distance-vector multicast - Link-state multicast § Inter-domain - Protocol Independent Multicast - Single Source Multicast Katz, Stoica F 04 22

Distance Vector Multicast Routing Protocol (DVRMP) § § § An elegant extension to DV

Distance Vector Multicast Routing Protocol (DVRMP) § § § An elegant extension to DV routing Use shortest path DV routes to determine if link is on the source-rooted spanning tree Three steps in developing DVRMP - Reverse Path Flooding - Reverse Path Broadcasting - Truncated Reverse Path Broadcasting Katz, Stoica F 04 23

Reverse Path Flooding (RPF) § § Extension to DV unicast routing Packet forwarding -

Reverse Path Flooding (RPF) § § Extension to DV unicast routing Packet forwarding - If incoming link is shortest path to source - Send on all links except incoming - Packets always take shortest path • assuming delay is symmetric § s: 3 s: 2 s: 3 s: 1 s: 2 s r Issues - Some links (LANs) may receive multiple copies - Every link receives each multicast packet, even if no interested hosts Katz, Stoica F 04 24

Example § Flooding can cause a given packet to be sent multiple times over

Example § Flooding can cause a given packet to be sent multiple times over the same link S x y a duplicate packet z b § Solution: Reverse Path Broadcasting Katz, Stoica F 04 25

Reverse Path Broadcasting (RPB) § § § Chose parent of each link along reverse

Reverse Path Broadcasting (RPB) § § § Chose parent of each link along reverse shortest path to source Only parent forward to a link (child link) Identify Child Links 1. Routing updates identify parent 2. Since distances are known, each router can easily figure out if it's the parent for a given link 3. In case of tie, lower address wins S 5 x forward only to child link of x for S 6 y a z b Katz, Stoica F 04 26

Don’t Really Want to Flood! § § § This is still a broadcast algorithm

Don’t Really Want to Flood! § § § This is still a broadcast algorithm – the traffic goes everywhere Need to “Prune” the tree when there are subtrees with no group members Solution: Truncated Reverse Path Broadcasting Katz, Stoica F 04 27

Truncated Reverse Path Broadcasting (TRPB) § § S Extend DV/RPB to eliminate unneeded forwarding

Truncated Reverse Path Broadcasting (TRPB) § § S Extend DV/RPB to eliminate unneeded forwarding Identify leaves NL - Routers announce that a link is their next link to source S - Parent router can determine that it is not a leaf § NL L L Explicit group joining on LAN - Members periodically (with random offset) multicast report locally - Hear an report, then suppress own § NL Packet forwarding - If not a leaf router or have members - Out all links except incoming r 2 r 1 Katz, Stoica F 04 28

Pruning Details § Prune (Source, Group) at leaf if no members - Send Non-Membership

Pruning Details § Prune (Source, Group) at leaf if no members - Send Non-Membership Report (NMR) up tree § If all children of router R send NRM, prune (S, G) - Propagate prune for (S, G) to parent R § On timeout: - Prune dropped - Flow is reinstated - Down stream routers re-prune § Note: a soft-state approach Katz, Stoica F 04 29

Pruning Details § How to pick prune timers? - Too long large join time

Pruning Details § How to pick prune timers? - Too long large join time - Too short high control overhead § What do you do when a member of a group (re)joins? - Issue prune-cancellation message (grafts) Katz, Stoica F 04 30

Distance Vector Multicast Scaling § State requirements: - O(Sources Groups) active state § How

Distance Vector Multicast Scaling § State requirements: - O(Sources Groups) active state § How to get better scaling? - Hierarchical Multicast - Core-based Trees Katz, Stoica F 04 31

Core Based Trees (CBT) § Pick a “rendevouz point” for the group called the

Core Based Trees (CBT) § Pick a “rendevouz point” for the group called the core. - Shared tree § § Unicast packet to core and bounce it back to multicast group Tree construction is receiver-based - Joins can be tunneled if required - Only nodes on One tree per group tree involved § Reduce routing table state from O(S x G) to O(G) Katz, Stoica F 04 32

Example § § Group members: M 1, M 2, M 3 M 1 sends

Example § § Group members: M 1, M 2, M 3 M 1 sends data root M 1 M 2 M 3 control (join) messages data Katz, Stoica F 04 33

Disadvantages § § Sub-optimal delay Single point of failure - Core goes out and

Disadvantages § § Sub-optimal delay Single point of failure - Core goes out and everything lost until error recovery elects a new core § Small, local groups with non-local core - Need good core selection - Optimal choice (computing topological center) is NP hard Katz, Stoica F 04 34

Problems with Network Layer Multicast (NLM) § Scales poorly with number of groups -

Problems with Network Layer Multicast (NLM) § Scales poorly with number of groups - A router must maintain state for every group that traverses it - Many groups traverse core routers § Supporting higher level functionality is difficult - NLM: best-effort multi-point delivery service - Reliability and congestion control for NLM complicated § Deployment is difficult and slow - ISP’s reluctant to turn on NLM Katz, Stoica F 04 35

NLM Reliability § § Assume reliability through retransmission Sender can not keep state about

NLM Reliability § § Assume reliability through retransmission Sender can not keep state about each receiver - E. g. , what receivers have received - Number of receivers unknown and possibly very large § Sender can not retransmit every lost packet - Even if only one receiver misses packet, sender must retransmit, lowering throughput § N(ACK) implosion - Described next Katz, Stoica F 04 36

(N)ACK Implosion § (Positive) acknowledgements - Ack every n received packets - What happens

(N)ACK Implosion § (Positive) acknowledgements - Ack every n received packets - What happens for multicast? § Negative acknowledgements - Only ack when data is lost - Assume packet 2 is lost R 1 S 3 2 1 R 2 R 3 Katz, Stoica F 04 37

NACK Implosion § When a packet is lost all receivers in the sub-tree originated

NACK Implosion § When a packet is lost all receivers in the sub-tree originated at the link where the packet is lost send NACKs 3 R 1 2? S 3 R 2 2? 2? 3 R 3 Katz, Stoica F 04 38

Barriers to Multicast § Hard to change IP - Multicast means change to IP

Barriers to Multicast § Hard to change IP - Multicast means change to IP - Details of multicast were very hard to get right § 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 Katz, Stoica F 04 39

Application Layer Multicast (ALM) § Let the hosts do all the “special” work -

Application Layer Multicast (ALM) § Let the hosts do all the “special” work - Only require unicast from infrastructure § Basic idea: - Hosts do the copying of packets - Set up tree between hosts § Example: Narada [Yang-hua et al, 2000] - Small group sizes <= hundreds of nodes - Typical application: chat Katz, Stoica F 04 40

Narada: End System Multicast Gatech Stanford Stan 1 Stan 2 CMU Berk 1 Berk

Narada: End System Multicast Gatech Stanford Stan 1 Stan 2 CMU Berk 1 Berk 2 Berkeley “Overlay” Tree Gatech Stan 1 Stan 2 CMU Berk 1 Berk 2 Katz, Stoica F 04 41

Algorithmic Challenge § Choosing replication/forwarding points among hosts - how do the hosts know

Algorithmic Challenge § Choosing replication/forwarding points among hosts - how do the hosts know about each other - and know which hosts should forward to other hosts Katz, Stoica F 04 42

Advantages of ALM § No need for changes to IP or routers § No

Advantages of ALM § No need for changes to IP or routers § No need for ISP cooperation § End hosts can prevent other hosts from sending § Easy to implement reliability - use hop-by-hop retransmissions Katz, Stoica F 04 43

Performance Concerns § Stretch - ratio of latency in the overlay to latency in

Performance Concerns § Stretch - ratio of latency in the overlay to latency in the underlying network § Stress - number of duplicate packets sent over the same physical link Katz, Stoica F 04 44

Performance Concerns Gatech Delay from CMU to Berk 1 increases Stan 1 Stan 2

Performance Concerns Gatech Delay from CMU to Berk 1 increases Stan 1 Stan 2 CMU Berk 1 Duplicate Packets: Bandwidth Wastage Gatech Stanford Berk 2 Stan 1 Stan 2 CMU Berk 1 Berkeley Berk 2 Katz, Stoica F 04 45

Single Sender Multicast § Many problems with IP multicast disappear if each group is

Single Sender Multicast § Many problems with IP multicast disappear if each group is associated with a single source § Hosts joining multicast group can send join messages to source - this sets up delivery tree - no worry about “root” being in wrong place § This solves several problems: - better security and charging model - simple algorithm Katz, Stoica F 04 46

Example § Group members: M 1, M 2, M 3 source M 1 M

Example § Group members: M 1, M 2, M 3 source M 1 M 2 M 3 control (join) messages data Katz, Stoica F 04 47

What’s Wrong with SSM? § Multiple sources? - Can set up group per source,

What’s Wrong with SSM? § Multiple sources? - Can set up group per source, or. . . - Source can serve as relay for other senders § Algorithm? - Trivial § So, why isn’t SSM the answer? - Multicast no longer serves as “rendezvous” - Ok for “broadcast” apps, not good for “meeting” apps Katz, Stoica F 04 48

What Do You Need to Know? § § DVRMP CBT SSM How they compare

What Do You Need to Know? § § DVRMP CBT SSM How they compare Katz, Stoica F 04 49