Download presentation
Presentation is loading. Please wait.
Published byTheodora Newman Modified over 9 years ago
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)
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.