Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 IP Multicast G53ACC Chris Greenhalgh School of Computer Science.

Similar presentations


Presentation on theme: "1 IP Multicast G53ACC Chris Greenhalgh School of Computer Science."— Presentation transcript:

1 1 IP Multicast G53ACC Chris Greenhalgh School of Computer Science

2 2 Contents l What is Multicasting l Applications l Application Semantics l Implementation l Multicast addresses and scopes l Research Issues l Example: DIVE l Book: COMER, ch 9.6, 9.7, 18.5, 27.15

3 3 What is Multicasting? l Defines “multicast groups”… –like a host (destination) address –but identifies a logical destination or group l Any number of hosts can –sends packets to a multicast group –join a multicast group l => receive packets sent to that group l Plus: –each packet crosses any network at most once –packets are filtered in the network and host NICs for interest (joined)

4 4 Multicasting example Host Router LAN Host Sends P to multicast group G P Forwards P if required joined G, sees P Joined G, sees P P P P P P P P P P Network interface ignores P

5 5 Multicast Applications l One-to-many –A/V distribution, push media, file distribution, cacheing, announcements, monitoring (e.g. stocks). l Many-to-many –A/V conferencing, synchronized resources (e.g. distributed database), concurrent processing, collaboration, distance learning, chat groups, Distributed Interaction Simulation (DIS), multi- played games, jam sessions. l One-to-any / many-to-one (“any-cast”) –resource discovery, data collection, auctions

6 6 Application Semantics l For UDP only (unreliable datagrams). l Uses socket interface: java.net.MulticastSocket –See over l Send multicast packets from a normal (unicast) UDP socket, just give a class D destination IP address –or use a multicast socket, if TTL must be specified. l Receive multicast packets only on a MulticastSocket. –joinGroup(addr) performs a JOIN operation, –leaveGroup(addr) or destroying a socket performs a LEAVE operation. –(More complex options with multi-homed machines, using java.net.NetworkInterface)

7 7 Java API: java.net.MulticastSocket l public class MulticastSocket extends java.net.DatagramSocket { public MulticastSocket() throws IOException; public MulticastSocket(int port) throws IOException; public void joinGroup(InetAddress mcastaddr) throws IOException; public void leaveGroup(InetAddress mcastaddr) throws IOException; public void setTimeToLive(int ttl) throws IOException; }

8 8 ReverseServerMulticast.java excerpts l... int port = Integer.parseInt(args[1]); InetAddress group = InetAddress.getByName(args[0]); MulticastSocket socket = new MulticastSocket(port); socket.joinGroup(group); … socket.receive(request); … // as per unicast server

9 9 Defining Packets/Protocols l E.g. Real-Time Protocol (RTP) (RFC-1889, etc.) l Or make them up… –Remember UDP semantics l Unreliable l Packet-preserving l Unordered –Also consider l Time to join a group (start-up delay) l Time to leave a group (extra traffic) l Locally available number of groups (router state) –Tens rather than thousands! l Scope (see later slides...)

10 10 Implementation (1) l Multicast group = Class D destination IP address –starts 1110 2 l = 224.0.0.0/4 l = 224.0.0.0 with netmask 240.0.0.0 l = 11100000000000000000000000000000 2 mask 11110000000000000000000000000000 2 l Mapped to underlying multicast –not ARP! –(LAN) Ethernet multicast addresses –Takes bits from IP address, use in Ether. addr. l But not all 28 variable bits! (24 bits only)

11 11 Implementation (2) l Hosts use Internet Group Management Protocol (IGMP) (v.2 RFC-2236, v.3 RFC-3376) –tells network router(s) about groups joined/left l Routers use multicast routing protocol(s) (e.g. DVMRP, MOSPF) –forward a single packet on multiple interfaces –Many routers do NOT do multicast routing and will drop packets –Routers may “tunnel” multicast packets in unicast packets across non-multicast regions l E.g. MBone = Multicast BackBone (historical) –= Multicast “overlay” network, using unicast wide-area

12 12 Choosing Multicast Addresses (1): Statically allocated Global addresses l RFC-1700 / IANA (www.iana.org) –e.g. –e.g. 224.2.0.0-224.2.127.253 Multimedia Conference Calls –Apply to IANA for an allocation l Allocate locally within Autonomous Unit (RFC-3180, “GLOP addressing in 233/8”)

13 13 Choosing Multicast Addresses (2): Administrative Scoped Multicast Addresses (RFC-2365) l Configured in network l Link-local scope (i.e. LAN) –224.0.0.0/24 l i.e. first 24 bits count, like a netmask 255.255.255.0 l Local scope (e.g. department) –239.255.0.0/16 l Organisation-local scope (e.g. UoN) –239.192.0.0/14

14 14 Choosing Multicast Addresses (3): choosing an address in a range l Make one up and hope (check w. RFCs & scopes) l See also http://www.29west.com/docs/THPM/multicast-address- assignment.html l Hash to an address range and hope l Optionally augment with a monitoring process which detects duplicate use and negotiates a change to a new address –As in the SDR MBone tool

15 15 Choosing Multicast Addresses (4) l Source-specific multicast address (if supported) –RFC-4607 [1-to-many applications only] l Dynamically allocated using Multicast Address Allocation Service –E.g. SDR MBone tool for MM conferences or IETF malloc working group outputs???

16 16 TTL Scope (How Far do Packets Travel?) l Use IP packet TTL (Time To Live) to determine scope of sending: –TTL 0 = on the same machine l iff “loopback” is on for sending socket and (on Windows) an Ethernet interface is “up”. –TTL 1 = on the same LAN (esp. Ethernet) –TTL >1 = internetwork l on a multicast-capable WAN; l on the MBone (Multicast Backbone). –E.g. l 31 = campus? 63 = country? l 127 = continent? 255 = whole world?

17 17 Multicast Research & Deployment Issues l Reliable delivery –N.B. only a subset of receivers may have missed a packet. l Flow and congestion control –N.B. only a subset (one?) of receivers may be experiencing congestion or buffer overflow. => lowest common denominator?? l Deployment –MBone, PIM, native (ISPs??) –Application-specific bridges and reflectors

18 18 Process (Agent) World X Join: TCP state transfer World multicast group: updates, audio, video. Data uses Scalable Reliable Multicast (shared NAcks). Process (Agent) World X World Y Example: DIVE System Outline (Swedish Institute of Computer Science, www.sics.se/dive)

19 19 Example: DIVE System Bootstrapping First Agent World X... HTTP transfer (c.f. state transfer) HTTP Server World X definition Diveserver World  multicast group DIVE mgmt. multicast group World X multicast group (1) Agent locates diveserver (m/c). (2) Diveserver finds World X’s multicast group. (3) Agent pings multicast group. (4) Agent downloads world definition. (5) Agent creates world locally. (1) (2) (3) (4) (5) (files)


Download ppt "1 IP Multicast G53ACC Chris Greenhalgh School of Computer Science."

Similar presentations


Ads by Google