500 likes | 586 Views
CS514: Intermediate Course in Operating Systems. Professor Ken Birman Ben Atkin: TA Lecture 5: Sept. 7. IP multicast. Has already been briefly mentioned by Professor Birman Today we’ll see how it works rationale for multicast multicast between LANs multicast on the Internet
E N D
CS514: Intermediate Course in Operating Systems Professor Ken Birman Ben Atkin: TA Lecture 5: Sept. 7
IP multicast • Has already been briefly mentioned by Professor Birman • Today we’ll see how it works • rationale for multicast • multicast between LANs • multicast on the Internet • a few words about reliability
Multicast to multiple hosts “to group”
Why do multicast? • Send to a group, not to individual hosts • Reduces overhead in sender • Reduces bandwidth consumption in network • Reduces latency seen by receivers (all receive “at the same time”, in theory)
Logical addressing • Multicast groups “handled by network” • Senders, receivers do not need to know each others’ identities • Group persists as long as it has at least one member • a “rendezvous” mechanism
Applications • Teleconferencing • Distance learning • Multimedia streaming • Directory service lookup • ...
Multicasting for resource location • Expanding-ring search • We want to find an instance of a resource (database, etc) which is close by • Use multicast with IP time-to-live (TTL) values
Time-to-live and hop counts • TTL is a counter in the packet header • Decrement at each “hop” through a router • When TTL reaches zero, the packet is dropped • special values for “global” and “regional” TTL (use with care!)
Expanding-ring search “Find me a database”, TTL=1
Expanding-ring search “Find me a database”, TTL=2 “I’m a database, what can I do for you?”
Multicast addresses • Class D IP addresses for group • 224.0.0.0 to 239.255.255.255 • Treated like any other IP address: can send from it or listen to it • In practice, use UDP as well (more on this later)
Multicast at the LAN level • Ethernet is a broadcast medium: all network cards see all packets • Register the multicast address in the network card • only pass matching packets to OS • all other packets are ignored
Multicast beyond the LAN • We would like to multicast between hosts on different LANs • LANs are joined together directly by bridges • or can be connected through the Internet by a sequence of routers • need an inter-LAN (WAN) protocol • (in fact, this is rarely enabled!)
A naive approach • We want to send multicasts everywhere where there are group members • use flooding to send multicast between routers • when we get to a LAN, use regular (Ethernet) multicast
Multicast by flooding router group member non-member
Multicast by flooding router group member non-member
Why simple flooding doesn’t work router group member non-member
Why simple flooding doesn’t work wasted! router group member non-member
Multicast flooding • Not a scalable mechanism • every LAN sees every multicast • every WAN router sees every multicast: wastes bandwidth, CPU • Requires a two-part solution • determining LAN group members • omitting WAN routers from multicast
Multicast trees • Shortest-path tree to all multicast members, rooted at sender • But must be computed independently by each router • And must be dynamically adjusted for joins and leaves
IGMP • Internet Group Management Protocol (Deering and Cheriton) • Developed from work in V distributed operating system • introduced notion of process groups (Cheriton and Zwaenepol) • groups for services, e.g. name resolution, remote paging
IGMP • Detects if a multicast group has any members within a LAN • Query and report messages • router sends query of group membership periodically • hosts report groups they’re in
IGMP Internet “Who is a member?”
IGMP Internet “I am” “I am” “I am”
IGMP Internet “I am” “I am” “I am”
Avoiding overloading • Report packets may overload router • upon getting a query, each group member sets a timer • if it sees a report for its group before the timer expires, it suppresses its report • otherwise reports on expiration
Building multicast trees • Want to avoid loops, duplicates • Dalal and Metcalfe: reverse path forwarding • relies on existing (point-to-point) shortest-path data for next hops to decide where to forward to • forward a packet only if it arrived on the shortest path to its source
Reverse shortest-path forwarding • Doesn’t eliminate all duplicates • A further enhancement is to only forward a packet to a neighbour if you’re on its shortest-path to the source
Pruning nodes from the tree • When they get a multicast, routers decide if they should prune themselves out • LAN routers can use IGMP to find if they have members • tell preceding node on the shortest-path tree not to forward to you • recursive
Rejoining a group • A LAN router with a group member may find it has no link into the multicast tree • either sends a graft message to add itself to the tree • or use flood-and-prune: routers are periodically added back into the tree; they prune themselves again if they still have no members
The MBONE • Multicast Backbone • Layer over the Internet • permitted rapid deployment • only certain routers participate • “tunnel” between MBONE routers • has to do its own routing • upper limit on bandwidth consumption
Multicast reliability • Best-effort reliability, “as good as UDP” • But has some additional problems not shared by unicast UDP • fragmentation • interlinked failures
UDP fragmentation • Recall that UDP packets are bigger than IP packets • With a fixed loss probability, more members = more losses • losing one IP packet drops the entire UDP packet • makes repairing failures more expensive, not used in practice (use IP-sized packets)
Interlinked failures • Traditionally we assume that packets p, q being lost could be independent events • but with IP multicast they could be very correlated • an omission at a parent node causes all children to miss the packet
Multicast behaviour • A “bad Internet citizen” • No backoff, unlike TCP • Runs on MBONE, not Internet! • Only really usable in an intranet • Problems with bridges • Multicast flooding/storms • Everybody gets them
Multicast problems • Even if routers don’t forward multicasts, they still have to process them • Similarly, a network card may be forced to drop packets if it gets too many • So too many simultaneous multicasts can cause problems!
Multicast storms • Retransmissions to fix losses must be carefully controlled • too many can just aggravate the problem • and can affect the performance of non-multicasting hosts • Bridges typically drop multicasts to stop storms propagating • Want to avoid “router collapse”
Making IP multicast a good citizen • A hot area for research • Sender-based and receiver-based schemes • forward error correction • combining retransmission requests
Forward error correction (FEC) • Sender-based mechanism • repeat multicasts in order to overcome the likelihood of packet loss: anticipate retransmission requests • or use parity, Hamming codes, etc, to generate parity packets, and receiver reconstructs dropped packets
Combining retransmission requests • Receivers are more intelligent about when to make requests for retransmissions • e.g. watch to see if others make requests, if so, suppress ours • can still cause storms! • e.g. SRM, RTP2, PGM: we will return to these later
Further reading • S. Keshav. An Engineering Approach to Computer Networking. Addison Wesley, 1997 • Internet Group Management Protocol, Version 3 (Cain, Deering, Kouvelas, Thyagarajan)http://www.ietf.org/internet-drafts/draft-ietf-idmr-igmp-v3-04.txt • S. Deering. "Host Extensions for IP Multicasting", RFC 1112, SRI "requests for comments" repository, August 1989. • Yogan K. Dalal and Robert M. Metcalfe. "Reverse Path Forwarding of Broadcast Packets". Communications of the ACM 21:12, pp1040-1048, December 1978.