Overview Broadcast and Multicast Last time: routing protocols for the Internet Hierarchical routing RIP, OSPF, BGP This time: broadcast and multicast Definitions In-network Duplication Unicast Source duplication inefficient Single source, single receiver Source does not know all destinations Broadcast Send same packet to all receivers duplicate duplicate R1 creation/transmission R1 “all” usually limited in some way duplicate R2 R2 LAN, subnet, organization Multicast R3 R4 R3 R4 Send same packet to many receivers source in-network duplication duplication Flooding Controlled Flooding Ignore duplicate messages Loops Cache to remember what’s been sent before Broadcast storms Special case: sequence numbers Used with broadcast updates A B Source assigns increasing seq no to broadcast Record latest seq no from each source Discard messages with old seq no’s Ensures always use the latest update D C 1
Reverse Path Forwarding Reverse Path Forwarding Idea: use unicast routing information 4 B 5 A Forward only messages coming from C 2 the shortest path to source 6 1 Note: problem with asymmetric paths E 6 D 4 2 3 F G Reverse Path Forwarding Reverse Path Forwarding B B 4 4 5 5 A A C C 2 2 6 6 1 1 E E 6 6 D D 4 4 2 2 3 3 F F G G Forward Path Reverse Path Spanning Tree Minimal Spanning Tree Subset of graph edges that forms a tree Minimal cost spanning tree Flood messages along all edges on spanning tree, ignore all others Minimal by sum of all edge costs Provably optimal broadcast cost, for any source in the tree A A NP-complete problem (not true) B B c c Approximation: D D Shortest unicast paths to some root F E E F G G (b) Broadcast initiated at D (a) Broadcast initiated at A 2
Minimum Spanning Tree Shortest Path Tree 4 B 4 B 5 5 A A C C 2 2 6 6 1 1 E E 6 6 D D 4 4 2 2 3 3 F F G G Multicast Multicast Issues Motivation? Naming Membership Management Routing IP Multicast Naming Membership Management Class D address represents multicast group Some other questions: E.g. 226.17.30.197 Who is part of the group? Datagram with destination address set to How does one join? group delivered to all hosts in the group How does one leave? Indirection 226.17.30.197 => 65.30.1.2, 66.8.3.53, Who decides if it’s OK? 128.32.75.60, … Membership management answers Sender may or may not be in the group these No address hierarchy or subnets How is routing done? 3
IGMP IGMP Internet Group Management Protocol hosts Runs only between host and router host-to-router protocol (IGMP) Multicast routing takes care of communication between routers routers multicast routing protocols (various) IGMP query IGMP report IGMP membership_query IGMP membership_report Router sends query Response from host to a query Find out all groups a host belongs to Can send report unsolicited Join group this way! Can query a specific group instead IGMP leave_group Sent to the “all systems group” (224.0.0.1) with TTL=1 Optional Router will clean up membership info on next membership_query IGMP properties Soft state Minimalist semantics Host is authoritative on group Host controlled membership membership No decision about: Router maintains “soft state” Who controls membership A crashed router soon recovers Invitations Sends a new membership_query How to find groups and join them Misdelivers packets for a little while Move these decisions to application OK by IP service model! layer 4
Multicast Routing Core-Based Tree A number of routers have hosts that Tree rooted at a core belong to a multicast group To join a group, send unicast message How to connect them (and others) in a towards core tree? Add all links traversed until hit existing tree Shared tree: single tree for all Source-based tree: many trees Diagram Choice of Core If core close to source, efficiency is good If core far from source, efficiency falls Delay up to twice optimal Core Optimal core placement is NP-hard Use heuristics Source-based Trees Pruning Prune when no attached members or Different tree for each possible source downstream routers Why? Propagate prune messages upstream Reverse path forwarding to figure out S: source tree R1 router with attached R4 Pruning to leave out routers group member router with no attached R2 P group member P R5 prune message P links with multicast R3 forwarding R7 R6 5
DVMRP MOSPF Multicast Extensions to OSPF Distance Vector Multicast Routing Protocol Link-state advertisements include multicast DV + RPF + Pruning group membership DV vector carries distance to multicast Only report directly connected hosts sources Compute shortest-path spanning tree rooted Pruning carries a timeout at source Afterwards, traffic delivery is resumed On demand, when receiving packet from source Explicit graft message to reverse pruning for the first time Done upon join Forward multicast traffic along tree MOSPF performance PIM Protocol Independent Multicast Global state allows source-based trees Uses routing tables, but agnostic of how they to be used are built Faster delivery of messages Two settings: Overhead Dense: most routers members of a group Use RPF flooding with pruning Joins and leaves flooded to all routers Sparse: most routers not members of a group Any change may cause whole tree to be Use shared tree or source-based tree based on data characteristics recomputed Uses soft-state Sparse vs. Dense Shared v. Source-based Trees Dense Mode Sparse Mode Shared trees used initially Dense participants Sparse participants Tree rooted at rendezvouz-point (RP) B/W plentiful B/W overhead Can switch to source-based trees significant Membership when data rate is high assumed until Membership RP sends a Join message to source pruned explicitly requested Each router independently decides to Data driven Receiver driven switch to source-based tree, sends Join to source 6
Shared Tree Example PIM Receiver Join G G G G G Report G RP RP Join *,G S S What if G join is here? G PIM Shared Tree After Join PIM Source Based Tree G G G G G G RP RP S S Join s,g G G G G PIM Source Based Tree PIM routing tables Routing entries of the form (s,g) G G G s - source RP g - group S Wildcard entries (*,g) for shared-group trees Packets are routed using best match G G 7
Steiner Trees Minimum Spanning Tree Steiner Tree: minimum cost tree connecting all 4 B 5 routers with attached group members A problem is NP-complete C 2 6 excellent heuristics exists 1 not used in practice: E 6 D computational complexity 4 information about entire network needed 3 monolithic: rerun whenever a router needs to join/leave 3 F G Tunneling Steiner Tree Q: How to connect “islands” of multicast B 4 routers in a “sea” of unicast routers? 5 A C 2 6 1 E 6 D physical topology logical topology 4 mcast datagram encapsulated inside “normal” (non-multicast- 3 3 addressed) datagram F G normal IP datagram sent thru “tunnel” via regular IP unicast to receiving mcast router receiving mcast router unencapsulates to get mcast datagram 8
Recommend
More recommend