1 / 55

Internet Design Case Study: IP Multicast

Internet Design Case Study: IP Multicast. What is multicast? Why multicast? Understand the “spirit”, not necessarily the detail Some design/implementation principles we’ll use: indirection soft state randomization … Evolution of IP Multicast and Lessons learned. Motivation.

Télécharger la présentation

Internet Design Case Study: IP Multicast

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Internet Design Case Study:IP Multicast • What is multicast? Why multicast? • Understand the “spirit”, not necessarily the detail • Some design/implementation principles we’ll use: • indirection • soft state • randomization • … • Evolution of IP Multicast and Lessons learned CSci5221: IP Multicast

  2. Motivation • Often want to send data to many machines at once • Video distribution (TV broadcast) • Teleconferences, etc. • News updates • Using unicast to reach each individual is hard and wasteful • Sender state: ~O(n) and highly dynamic • Total load: ~O(nd) where d is net diameter • Hotspot load: load ~O(n) on host and first link • Multicast: • Sender state: O(1), total load O(d log n), hotspot load O(1) CSci5221: IP Multicast

  3. Multicast: act of sending datagram to multiple receivers with single “transmit” operation Question: how to achieve multicast Multicast routers (red) duplicate and forward multicast datagrams Multicast: one sender to many receivers Network multicast • router actively participate in multicast, making copies of packets as needed and forwarding towards multicast receivers CSci5221: IP Multicast

  4. Indirection Indirection: rather than reference an entity directly, reference it (“indirectly) via another entity, which in turn can or will access the original entity "Every problem in computer science can be solved by adding another level of indirection" -- Butler Lampson x A B CSci5221: IP Multicast

  5. 128.59.16.12 128.119.40.186 multicast group 226.17.30.197 128.34.108.63 128.34.108.60 Multicast via Indirection multicast group concept: represented by a “logical” (multicast) address -- use of indirection • sender sends IP datagrams to the “logical” multicast address • routers forward multicast datagrams to hosts that have “joined” that multicast group CSci5221: IP Multicast

  6. Issues and Challenges • How does a host (user) join in a multicast group? • What to do to leave the group? • Who manages group membership dynamics? • Membership is dynamic, but should it be open, i.e., anyone can join a multicast group? • Who can send to the multicast group? • What state does a router need to maintain? • When a router receives an IP datagram destined to a multicast group, where should it forward to? • Scalability: • With number of members in a group; also with number of groups • Other issues: • address allocation, mapping applications to multicast groups CSci5221: IP Multicast

  7. Design Alternatives • Telephone/ATM Model: • source/root-based: “one-to-many” multicast • mcast group associated and controlled by source/root • receiver joins a group by sending request to source/root • routing state installed during the “signaling” process • routing entry: [mcast address, {interface1,…, interfacek}] • IP Multicast Model • “many-to-many” multicast • open membership: anyone can join and leave at will • also anyone (not necessarily part of mcast) can send! • best-effort delivery CSci5221: IP Multicast

  8. IP Multicast Service Model (rfc1112) • Each group identified by a single IP address • Groups may be of any size • Members of groups may be located anywhere in the Internet • Members of groups can join and leave at will • Senders need not be members • Group membership not known explicitly • Analogy: • Each multicast address is like a radio frequency, on which anyone can transmit, and to which anyone can tune-in. CSci5221: IP Multicast

  9. 1 1 1 0 Group ID IP Multicast Addresses • Class D IP addresses • 224.0.0.0 – 239.255.255.255 • How to allocated these addresses? • Well-known multicast addresses, assigned by IANA • Transient multicast addresses, assigned and reclaimed dynamically, e.g., by “sdr” program CSci5221: IP Multicast

  10. IP Multicast Service Model (cont’d) Division of Responsibilities: • Host’s responsibility to register interest with networks • IGMP (Internet Group Management Protocol) • Network’s responsibility to deliver packets to host • Multicast Routing Protocols • Left unspecified: • Address assignment (random, MASC, etc.) • Application-to-group mapping (session directory, etc.) Performance Goal: • roughly equivalent to unicast best-effort service in terms of drops/delays • efficient tree • no complicated forwarding machinery, etc. • low join/leave latency CSci5221: IP Multicast

  11. IP Multicast Architecture Service model Hosts Host-to-router protocol(IGMP) Routers Multicast routing protocols(various) CSci5221: IP Multicast

  12. IP Multicast API and Multicast Routers • Sending – same as before • Receiving – two new operations • Join-IP-Multicast-Group(group-address, interface) • Leave-IP-Multicast-Group(group-address, interface) • Receive multicast packets for joined groups via normal IP-Receive operation • Implemented using socket options • Multicast Routers: • Learn of existence of multicast groups (through advertisement) • Identify links with group members • Establish state to route packets • replicate packets on appropriate interfaces • routing entry: mcast address src, incoming interface List of outgoing interfaces CSci5221: IP Multicast

  13. Internet Group Management Protocol • End system to router protocol is IGMP • Each host keeps track of which mcast groups are subscribed to • Socket API informs IGMP process of all joins • Objective is to keep router up-to-date with group membership of entire LAN • Routers need not know who all the members are, only that members exist CSci5221: IP Multicast

  14. How IGMP Works Routers: Q • On each link, one router is elected the “querier” • Querier periodically sends a Membership Query message to the all-systems group (224.0.0.1), with TTL = 1 • On receipt, hosts start random timers (between 0 and 10 seconds) for each multicast group to which they belong Hosts: CSci5221: IP Multicast

  15. How IGMP Works (cont.) Routers: Q • When a host’s timer for group G expires, it sends a Membership Report to group G, with TTL = 1 • Other members of G hear the report and stop their timers • Routers hear all reports, and time out non-responding groups Hosts: G G G G CSci5221: IP Multicast

  16. How IGMP Works (cont.) • Note that, in normal case, only one report message per group present is sent in response to a query • Power of randomization + suppression • Query interval is typically 60-90 seconds • When a host first joins a group, it sends one or two immediate reports, instead of waiting for a query CSci5221: IP Multicast

  17. Multicast Scope Control – Small TTLs • TTL expanding-ring search to reach or find a nearby subset of a group s 1 2 3 CSci5221: IP Multicast

  18. Multicast Scope Control – Large TTLs • Administrative TTL Boundaries to keep multicast traffic within an administrative domain, e.g., for privacy or resource reasons The rest of the Internet TTL threshold set oninterfaces to these links,greater than the diameterof the admin. domain An administrative domain CSci5221: IP Multicast

  19. Routing Techniques • Basic objective – build distribution tree for multicast packets Three Basic Techniques • Source-based trees: flood and prune • Separate shortest path tree for each sender • Begin by flooding traffic to entire network • Prune branches with no receivers • Examples: DVMRP, PIM-DM • Unwanted state where there are no receivers CSci5221: IP Multicast

  20. Routing Techniques (cont’d) • Core or share-tree based protocols • Specify “meeting place” aka core • Sources send initial packets to core • Receivers join group at core • Requires mapping between multicast group address and “meeting place” • Examples: CBT, PIM-SM • Link-state multicast protocols • Routers advertise groups for which they have receivers to entire network • Compute trees on demand • Example: MOSPF • Unwanted state where there are no senders CSci5221: IP Multicast

  21. Source-based Trees Router Source S Receiver R R R R S S R CSci5221: IP Multicast

  22. Shared Tree Router Source S Receiver R R R RP R S S R CSci5221: IP Multicast

  23. Shared vs. Source-Based Trees • Source-based trees • Shortest path trees – low delay, better load distribution • More state at routers (per-source state) • Efficient for in dense-area multicast • Shared trees • Higher delay (bounded by factor of 2), traffic concentration • Choice of core affects efficiency • Per-group state at routers • Efficient for sparse-area multicast • Which is better? CSci5221: IP Multicast

  24. Distance-Vector Multicast Routing:Basics • DVMRP consists of two major components: • A conventional distance-vector routing protocol (like RIP) • A protocol for determining how to forward multicast packets, based on the routing table • DVMRP router forwards a packet if • The packet arrived from the link used to reach the source of the packet (reverse path forwarding check – RPF) • If downstream links have not pruned the tree CSci5221: IP Multicast

  25. DVMRP (cont’d) • Developed as a sequence of protocols: • Reverse Path Flooding (RPF) • Reverse Path Broadcast (RPB) • Truncated Reverse Path Broadcasting (TRPB) • Reverse Path Multicast (RPM) • General Philosophy: multicast = pruned broadcast • Don’t construct new tree, merely prune old one • Observation: • Unicast routing state tells router shortest path to S • Reversing direction sends packets from S without forming loops CSci5221: IP Multicast

  26. Basic Forwarding Rule • Routing state: • To reach S, send along link L • Flooding Rule: • If a packet from S is received along link L, forward on all other links (reverse path forwarding check) • This works fine for symmetric links • Ignore asymmetry today • This works fine for point-to-point links • Can result in multiple packets sent on LANs CSci5221: IP Multicast

  27. Example • Flooding can cause a given packet to be sent multiple times over the same link S x y a duplicate packet z b CSci5221: IP Multicast

  28. Broadcasting Extension • For each link, and each source S, define parent and child • Parent: shortest path to S (ties broken arbitrarily) • All other routers on link are children • Broadcasting rule: only parent forwards packet to L • Problem fixed • But this is still broadcast, not multicast! CSci5221: IP Multicast

  29. Multicast = Pruned Broadcast • Start with full broadcast (RPB) • If leaf has no members, prune state • Send non-membership report (NMR) • If all children of a router R prune, then router R sends NMR to parent • New joins send graft to undo pruning CSci5221: IP Multicast

  30. Example Topology G G S G CSci5221: IP Multicast

  31. Broadcast with Truncation G G S G CSci5221: IP Multicast

  32. Prune G G Prune (s,g) Prune (s,g) S G CSci5221: IP Multicast

  33. Graft G G G Report (g) Graft (s,g) Graft (s,g) S G CSci5221: IP Multicast

  34. Steady State G G G S G CSci5221: IP Multicast

  35. Problems with Approach • Starting with broadcast means that all first packets go everywhere • If group has members on most networks, this is ok • But if group is sparse, this is lots of wasted traffic • What about a different approach: • Source-specific tree vs shared tree • Pruned broadcast vs explicitly constructed tree CSci5221: IP Multicast

  36. Core Based Trees (CBT) • Ballardie, Francis, and Crowcroft, • “Core Based Trees (CBT): An Architecture for Scalable Inter-Domain Multicast Routing”, SIGCOMM 93 • Similar to Deering’s Single-Spanning Tree • Unicast packet to core, but forwarded to multicast group • Tree construction by receiver-based “grafts” • One tree per group, only nodes on tree involved • Reduce routing table state from O(S x G) to O(G) CSci5221: IP Multicast

  37. Example • Group members: M1, M2, M3 • M1 sends data root M1 M2 M3 control (join) messages data CSci5221: IP Multicast

  38. Disadvantages • Sub-optimal delay • Small, local groups with non-local core • Need good core selection • Optimal choice (computing topological center) is NP complete CSci5221: IP Multicast

  39. Multicast OSPF (MOSPF) • Add-on to OSPF (Open Shortest-Path First,a link-state, intra-domain routing protocol) • Multicast-capable routers flag link state routing advertisements • Link-state packets include multicast group addresses to which local members have joined • Routing algorithm augmented to compute shortest-path distribution tree from a source to any set of destinations CSci5221: IP Multicast

  40. Example Source 1 Z W Q T Receiver 1 Receiver 2 CSci5221: IP Multicast

  41. Link Failure/Topology Change Source 1 Z W Q T Receiver 1 Receiver 2 CSci5221: IP Multicast

  42. Membership Change Source 1 Z Receiver 3 W Q T Receiver 1 Receiver 2 CSci5221: IP Multicast

  43. Impact on Route Computation • Can’t pre-compute multicast trees for all possible sources • Compute on demand when first packet from a source S to a group G arrives • New link-state advertisement • May lead to addition or deletion of outgoing interfaces if it contains different group addresses • May lead to re-computation of entire tree if links are changed CSci5221: IP Multicast

  44. Discussion • IP anycast service works fine within a network • What about global anycast service (across domains) • Available in special cases: • Anycast address for DNS servers • AS 112 project: • In general, not scalable at a global scale • Some recently proposed solutions: GIA, PIAS • Impact on UDP/TCP and Applications: anycast addr appear same as unicast to senders! • UDP stateless! • Okay if applications do not maintain state over multiple datagrams; Example: DNS • problematic otherwise: e.g., multimedia applications over UDP • TCP stateful: how to establish a connection with anycast address? • routers may deliver datagrams destined to an anycast address to any one of the group • work around: only first packet (SYN) uses anycast address as dest. addr; subsequent packets use unicast address of the server CSci5221: IP Multicast

  45. Why Isn’t Multicast Pervasive? • (Reasonably) Sound technology • But fairly complex, with several versions of protocols • Implemented in most routers • Used by some enterprises • But not deployed/used on public Internet CSci5221: IP Multicast

  46. Possible Explanations • Lack of demand (up until now?) • Lack of membership/sender control • Many services need it: who can join, who cannot • Also needed for billing, etc. • Hard to implement sender control: • Can be subject to (and used to amplify) DoS attack • Multicast address scarcity • global allocation required • Inter-domain issues: • Violates current ISP settlement model • No incentive for ISPs to enable multicast • …. CSci5221: IP Multicast

  47. Design Alternative: Single-Source Multicast • Multicast Channel Concept: • Each multicast group associated with a source • Defined by [source, multicast address] • Implications: • Each group has only one source, address allocation non-issue! • each source can allocate 16 millions “channels” • Sender control easy! • Forwarding using source and dest. (multicast) IP addresses • Use Reverse Path Multicast algorithm • Add a counting mechanism for estimating group size • Use a recursive CountQuery message • Use app-level relays to for multiple sources CSci5221: IP Multicast

  48. Other Issues w/ Multicast For example: How to make multicast reliable?(a la TCP to IP unicast) • FEC can help, but isn’t perfect • Must have retransmissions • But sender can’t keep state about each receiver • Has to be told when someone needs a packet CSci5221: IP Multicast

  49. SRM Design Approach • Let receivers detect lost packets • By holes in sequence numbers • They send NACK when loss is detected • Any node can respond to NACK • NACK/Response implosion averted through suppression • Send NACKs at random times • If hear NACK for same data, reset NACK timer • If node has data, it resends it, using similar randomized algorithm CSci5221: IP Multicast

  50. Repair Request Timer Randomization • Chosen from the uniform distribution on • A: node that lost the packet • S: source • C1,C2 : algorithm parameters • dS,A: latency between S and A • i: iteration of repair request tries seen • Algorithm • Detect loss  set timer • Receive request for same data  cancel timer, set new timer • Timer expires  send repair request CSci5221: IP Multicast

More Related