Computer NetworksDr. Jorge A. CobbCS 6390Advanced Computer NetworksMulticast2Motivation Original IP service model was one-to-one• One sender sending its data to one receiver at a time Recently, new apps with multi-receiver semantics• Audio/video conferencing, news dissemination, Internet TV, etc. Unicast not designed to efficiently support multi-receiver apps• Why? Solution• Multicast support • Reduces the number of “messages” in the network• Increases however the amount of state at routers3Multicast semantics Multicast group• Is represented by a class D IP address (more later)• Zero or more receivers form a multicast group• Senders are not part of the group (unless they are also rcvrs) Open group semantics• Receivers can join/leave at will • Anyone knowing group address can send to it IP based best effort delivery semantics• Multicast supports UDP only – no TCP ! Why?• If routers are reliable per-hop, this requires lots of buffer/state at each router• Otherwise, if source receives ack’s from the receivers, we have ack implosion problem (receive N ack’s)4Open group semantics Advantages• Sources do not need to know individual receivers (they just send)• Receivers do not need to know the sources either (they simply join the group and receive data) Disadvantages• Difficult to protect from unauthorized senders/receivers• How do sources and receivers meet? (i.e., how to route the data if they don’t know each other?)5Host Functions Source: when sending data, normal IP-Send operation• IP src-addr = address of sender• IP dst-addr = class D address of multicast group Receiver: when receiving data, tell your router what group you are interested in• i.e., join/leave a multicast group (start/stop receiving data from all sources sending to the group)• The router will forward multicast packets to the LAN of the host• What about LAN addressing? (later)6Routers Functions Routers must be prepared to receive data from all multicast group addresses Know when to forward or drop packets• Keep track of interfaces leading to receivers• Forward multicast packets over these interfaces• The IP packet’s source and destination addresses are not changed Hosts are simple, is the routers that do all the “magic”7Multicast Group Addresses Class D IP addresses (224.0.0.0 – 239.255.255.255)• Begin with 1110E. Implicit scoping• 224.0.0.0 – 224.0.0.255: link scoped • 224.0.1.0 – 238.255.255.255: global scoped• 239.0.0.0 – 239.255.255.255: admin scoped Explicit scoping• Use TTL value for scoping8Addressing As mentioned before, multicast IP packet format• Source IP field is unicast IP address of source host• Destination IP field is the IP multicast group address• These values remain constant in the packet as it travels.• In general, we show this (Source IP, Dest IP) couple as(S,G) where S is source IP, G is dest IP (multicast group addr) How to do actual delivery to a receiver host via the LAN?• Map IP multicast address to a LAN (Ethernet) multicast address (there is a standard way to do this) • Receiver (host) NIC is configured to receive packets destined to this LAN multicast address.• LAN addresses• LAN src address: router LAN address• LAN dst address: multicast LAN address• Hence, multicast on the LAN is done automatically without IP router interventionMapping IP to Ethernet Mcast Addr Ethernet multicast addresses Mapping IP to Ethernet• Grab the 28 bits of IP multicast address (drop the 1110) and insert into the 24 bits in Ethernet mcastaddress9Addressing Review What about the source?• IP header?• LAN header? What about two routers R1, R2, joined by an Ethernet. For a multicast (S, G) packet being sent from R1 to R2,• IP header?• LAN header? (tricky ☺)1011How data is forwarded to multiple receivers? Routers in the network build forwarding treesconnecting sources (root) and receivers (leaves) On-tree routers keep multicast forwarding states for each group (more on this later) Source data propagates on this tree toward the receivers12N receiversrouterSingle multicast messageIf multicast:• messages = 2(N – 1)• source router sends 2 msgsIf unicast, • log N * N unicast msgs• first level routers handle N/2 msgs• source router sends N msgsSource router13Multicast forwarding states at routers used to determine how a multicast packet will be forwarded• basically, it is just information about the tree. Usually consists of several elements:• source address - S• group address - G• (S,G) determines the particular tree• incoming interface – iif (parent on tree)• outgoing interface list – oif list (children on tree)• various timers (needed to deal with aging entries out of the forwarding table)• Other misc. info.14Forwarding State is Dynamic Created when receivers join a multicast group and when sources send packets addressed to the group. Deleted after receivers leave a multicast group or senders stop sending packets addressed to the group. Every forwarding state has a fixed lifetime – needs refreshing• E.g., outgoing interface (oif) list maintenance• Every oif has a fixed lifetime• When lifetime expires for an oif, it is removed from oif list• Certain events can reset the timer to its max value15Big picture Create multicast forwarding trees • connects sources and receivers• data is sent along the tree from sources to receivers What distinguishes one protocol from another is basically how to build the tree Four components• Application interface• Host to router communication• Intra-domain routing• Inter-domain routing16IP Multicast Architectureapplication APIhost-to-router (IGMP)intra-domain routinginter-domain routinghostsroutersDomainADomainB17Application APIroutersIntra-domainInter-domainHost-to-routerApplication API has socket options:IP_ADD_MEMBERSHIPIP_DROP_MEMBERSHIPApplicationOS18Host-to-RouterhostsroutersIntra-domainInter-domainHost-to-routerInternet Group Management Protocol(IGMPv2, v3 standardized in 10/02)Kernel informs router that an application wants to join a specificgroup G19IGMP used by hosts to indicate their interest in receiving packets addressed to a particular multicast group G.• IGMPv1 (RFC 1112)• Routers• General Membership Query (everyone, tell me your group(s))• Hosts• Group Membership Reports (reply to
View Full Document