* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download ppt
Survey
Document related concepts
Point-to-Point Protocol over Ethernet wikipedia , lookup
Computer network wikipedia , lookup
Deep packet inspection wikipedia , lookup
Internet protocol suite wikipedia , lookup
Wake-on-LAN wikipedia , lookup
Recursive InterNetwork Architecture (RINA) wikipedia , lookup
Multiprotocol Label Switching wikipedia , lookup
Cracking of wireless networks wikipedia , lookup
Spanning Tree Protocol wikipedia , lookup
Routing in delay-tolerant networking wikipedia , lookup
Transcript
COMS/CSEE 4140 Networking Laboratory Lecture 11 Salman Abdul Baset Spring 2008 Announcements Prelab 10 and Lab report 9 due next week before your lab slot Weekly project reports due before Friday 5pm 2 Agenda Multicast why multicast? multicast groups terminology (S,G) notation Addressing IGMP Source and core-based trees PIM PIM-DM PIM-SM 3 Applications with Multiple Receivers Many applications transmit the same data at one time to multiple receivers Broadcasts of radio or video (streaming) Video conferencing (interactive video) Shared applications (data, file transfer) A network “must” have mechanisms to support such applications in an efficient manner 4 Multicasting Multicast communications refers to one-to-many or many-to-many communications. Unicast Broadcast Multicast IP Multicasting refers to the implementation of multicast communication in the Internet Multicast is driven by receivers: Receivers indicate interest in receiving data 5 Multicasting over a Packet Network Without support for multicast at the network layer: Multiple copies of the same message is transmitted on the same link 6 Multicasting over a Packet Network With support for multicast at the network layer: • Requires a set of mechanisms: (1) Packet forwarding can send multiple copies of same packet (2) Multicast routing algorithm which builds a spanning tree (dynamically) 7 Why IP Multicast? Cost-efficient distribution of data Timely distribution of data Robust distribution of data “Data” here could be Files Streamed Audio or Video Source: Internet2 workshop Cost Efficient Data Distribution This is the core of the streaming case. Unicast streaming is just too expensive. This is true either on the commodity Internet or on the Intranet. Multicast is especially compelling for video. Question: Is multicast a good model for YouTube? Live video streaming? Source: Internet2 workshop Timely Distribution of Data An argument for multicast in financial services. Though reliability is an issue. In unicast, it takes time to send packets separately to each receiver. Even if cost is not a problem, time may be. 100 Mb/s link, takes 22 hours to distribute a 100 MB file t0 10,000 machines. With multicast, it will take eight seconds. Alternate solution is to have huge upstream bw But… Multicasting is compelling here if timely distribution is important. Source: Internet2 workshop Robust Distribution of Data Handle sudden large increases in load streaming data distribution Multicast was designed to handle sudden large increases in load. Source: Internet2 workshop Multicast Groups The set of receivers for a multicast transmission is called a multicast group A multicast group is identified by a multicast address A user that wants to receive multicast transmissions joins the corresponding multicast group, and becomes a member of that group After a user joins, the network builds the necessary routing paths so that the user receives the data sent to the multicast group 12 IP Multicasting: Key questions What IP address / Ethernet address to send multicast packets to? How to manage groups? How to route multicast packets? 13 The IP Protocol Stack IP Multicasting only supports UDP as higher layer There is no multicast TCP ! User Layer Socket Layer Stream Sockets Datagram Sockets TCP Multicast Sockets UDP IP Network Interface IP Multicast 14 Essential Multicast Terminology IP source = IP unicast addr Ethernet source = MAC addr source IP destination = IP multicast addr Ethernet dest = MAC addr receivers e.g., video server Multicast stream source = origin of multicast stream multicast address = an IP address in the Class D range (224.0.0.0 – 239.255.255.255), used to refer to multiple recipients. A multicast address is also called a multicast group or channel. multicast stream = stream of IP packets with multicast address for IP destination address. All multicast uses UDP packets. receiver(s) = recipient(s) of multicast stream tree = the path taken by multicast data. Routing loops are not allowed, so there is always a unique series of branches between the root of the tree and the receivers. Source: Internet2 workshop (S,G) notation For every multicast source there must be two pieces of information: the source IP address, S, and the group address, G. These correspond to the sender and receiver addresses in unicast. This is generally expressed as (S,G). Also commonly used is (*,G) - every source for a particular group. Source: Internet2 workshop Multicast Protocols Receivers Delivery tree Senders Multicast Routing Protocol (e.g. PIM-SM) Group Management Protocol (e.g. IGMP) Group Management Protocol - enables hosts to dynamically join/leave multicast groups. Receivers send group membership reports to the nearest router. Multicast Routing Protocol - enables routers to build a delivery tree 17 between the sender(s) and receivers of a multicast group. Agenda Multicast why multicast? multicast groups terminology (S,G) notation Addressing IGMP Source and core-based trees PIM PIM-DM PIM-SM 18 Multicast Addressing Multicast address Every host (interface) can join and leave a multicast group dynamically no access control Every IP datagram send to a multicast group is transmitted to all members of the group IP addresses in the range 224.0.0.0 - 239.255.255.255 (class D address) Multicast group: same as multicast address no security, no “floor control” Sender does not need to be a member of the group The IP Multicast service is unreliable 19 Multicast Addressing • All Class D addresses are multicast addresses: Class D 1 1 1 0 multicast group id 28 bits Class From To D 224.0.0.0 239.255.255.255 • Multicast addresses are dynamically assigned. • An IP datagram sent to a multicast address is forwarded to everyone who has joined the multicast group • If an application is terminated, the multicast address is (implicitly) released. 20 Types of Multicast Addresses RFC 3171 http://www.iana.org/assignments/multicast-addresses Examples: 224.0.0.0 - 224.0.0.255 (224.0.0/24) - reserved & not forwarded 224.0.0.1 - All local hosts 224.0.0.2 - All local routers 224.0.0.4 - DVMRP 224.0.0.5 - OSPF 224.0.0.9 - RIP2 224.0.0.13 – PIM 224.0.0.22 – IGMP 232.0.0.0 - 232.255.255.255 (232/8) - SSM 239.0.0.0 - 239.255.255.255 (239/8) - Administrative Scoping (RFC 2365) Site-local scope: 239.253.0.0/16 Organization-local scope: 239.192.0.0/14 “Ordinary” multicasts don’t have to request a multicast address from IANA. 21 Multicast Address Translation In Ethernet MAC addresses, a multicast address is identified by setting the lowest bit of the “most left byte” -------1 -------- -------- -------- -------- -------- Not all Ethernet cards can filter multicast addresses in hardware - Then: Filtering is done in software by device driver. 22 Multicast Address Mapping Identifes Class D Ethernet Addresses with 01:00:5e in the first 3 bytes are reserved for IP multicast Ignored 23-bit address 1110xxxx x------- -------- -------- 00000001 00000000 01011110 0------- -------- -------- Class D IP Address Ethernet Address 23 Agenda Multicast why multicast? multicast groups terminology (S,G) notation Addressing IGMP Source and core-based trees PIM PIM-DM PIM-SM 24 Multicast Protocols Receivers Delivery tree Senders Multicast Routing Protocol (e.g. PIM-SM) Group Management Protocol (e.g. IGMP) Group Management Protocol - enables hosts to dynamically join/leave multicast groups. Receivers send group membership reports to the nearest router. Multicast Routing Protocol - enables routers to build a delivery tree 25 between the sender(s) and receivers of a multicast group. IGMP (RFC 1112) The Internet Group Management Protocol (IGMP) is a simple protocol for the support of IP multicast. IGMP operates on a physical network (e.g., single Ethernet Segment. IGMP is used by multicast routers to keep track of membership in a multicast group. Support for: Joining a multicast group Query membership Send membership reports 26 IGMP Protocol A host sends an IGMP report when it joins a multicast group Multiple processes on a host can join. A report is sent only for the first process. No report is sent when a process leaves a group A multicast router regularly multicasts an IGMP query to all hosts (group address is set to 0.0.0.0). A host responds to an IGMP query with an IGMP report. Multicast router keeps a table of the multicast groups that have joined hosts. The router only forwards a packet, if there is a host still joined. 27 IGMP Packet Format IGMP messages are only 8 bytes long 14 bytes 20 bytes 8 bytes Ethernet Header IP header IGMP Message Type Max resp. time Checksum Multicast group address IGMPv2 0x11 Membership query (group addr: 0.0.0.0) 0x16 Membership report 0x17 Leave group 28 IGMP Protocol H1 H2 R1 Ethernet IGMP query IGMP Report 29 IGMP Protocol H1 H2 R1 Ethernet IGMP general query IGMP group address = 0.0.0.0 Destination IP address = 224.0.0.1 Source IP address = router's IP address IGMP group-specific query IGMP group address = group address Destination IP address = group address Source IP address = router's IP address IGMP membership report IGMP group address = group address Destination IP address= group address Source IP address = host's IP address 30 Networks with multiple multicast routers Only one router responds to IGMP queries (Querier) Router with smallest IP address becomes the querier on a network. Multicast Network Querier Forwarder Multicast packet IGMP query One router forwards multicast packets to the network (Forwarder). Ethernet Host 31 Agenda Multicast why multicast? multicast groups terminology (S,G) notation Addressing IGMP Source and core-based trees PIM PIM-DM PIM-SM 32 Multicast Protocols Receivers Delivery tree Senders Multicast Routing Protocol (e.g. PIM-SM) Group Management Protocol (e.g. IGMP) Group Management Protocol - enables hosts to dynamically join/leave multicast groups. Receivers send group membership reports to the nearest router. Multicast Routing Protocol - enables routers to build a delivery tree 33 between the sender(s) and receivers of a multicast group. Multicast Routing Protocols Goal: Build a spanning tree between all members of a multicast group 34 Multicast routing as a graph problem Problem: Embed a tree such that all multicast group members are connected by the tree S 35 Multicast routing as a graph problem Problem: Embed a tree such that all multicast group members are connected by the tree Solution 1: Shortest Path Tree or source-based tree Build a tree that minimizes the path cost from the source to each receiver Good tree if there is a single sender If there are multiple senders, need one tree per sender Easy to compute S 36 Multicast routing as a graph problem Problem: Embed a tree such that all multicast group members are connected by the tree Solution 2: Minimum-Cost Tree Build a tree that minimizes the total cost of the edges S Good solution if there are multiple senders Very expensive to compute (not practical for more than 30 nodes) 37 Multicast routing in practice Routing Protocols implement one of two approaches: 1. Source Based Tree: – – – 2. Essentially implements Solution 1. Builds one shortest path tree for each sender Tree is built from receiver to the sender reverse shortest path / reverse path forwarding (RPF) Core-based Tree: – – – – Build a single distribution tree that is shared by all senders Does not use Solution 2 (because it is too expensive) Selects one router as a “core” (also called “rendezvous point”) All receivers build a shortest path to the core reverse shortest path / reverse path forwarding 38 Reverse Path Forwarding (RPF) RPF builds a shortest path tree in a distributed fashion by taking advantage of the unicast routing tables. Main concept: Given the address of the root of the tree (e.g., the sending host), a router selects as its upstream neighbor in the tree the router which is the next-hop neighbor for forwarding unicast packets to the root. This concept leads to a reverse shortest path from any router to the sending host. The union of reverse shortest paths builds a reverse shortest path tree. RPF Forwarding: Forward a packet only if it is receives from an RPF neighbor 39 Multicast Routing table Routing table entries for source-based trees and for core-based trees are different Source-based tree: (Source, Group) or (S, G) entry. Core-based tree: (*, G) entry. Source IP address Multicast group Incoming interface (RPF interface) Outgoing interface list S1 G1 I1 I2, I3 * G2 I2 I1, I3 40 Multicast routing in practice Routing algorithms in practice implement one of two approaches: 1. Source Based Tree Tree: – 2. Establish a reverse path to the source Core-based Tree: – Establish a reverse path to the core router 41 Building a source-based tree Set routing tables according to RPF forwarding IGMP Flood-andPrune 42 Building a source-based tree H1 Set routing tables according to RPF forwarding Source R1 R3 R2 Flood-andPrune H2 R4 R5 Flood= Forward packets that arrive on RPF H3 interface on all non- joined RPF interfaces R6 R7 H4 joined R8 H5 43 Building a source-based tree H1 Set routing tables according to RPF forwarding Source R1 R3 R2 Flood-and-Prune H2 R4 Flood= R5 Forward packets on all non-RPF interfaces R6 R7 Receiver drops packets not received on RPF interface R8 H3 joined H4 joined H5 44 Building a source-based tree Set routing tables according to RPF forwarding H1 Source R1 Flood-andPrune R3 R2 H2 Pru un Pr Prune ne Pru Prune ne R7 Prune H4 joined R6 Prune Pru e Prune ne Prune message disables routing table entry ne e Prun Pru Prune= R5 Send a prune message when a packet is received on a non-RPF interface or when there are no H3 joined receivers downstream R4 e Prun R8 H5 45 Pruning Prune message temporarily disables a routing table entry Effect: Removes a link from the multicast tree No multicast messages are sent on a pruned link Prune message is sent in response to a multicast packet Question: Why is routing table only temporarily disabled? Who sends prune messages? A router with no group members in its local network and no connection to other routers (sent on RPF interface) A router with no group members in its local network which has received a prune message on all non-RPF interfaces (sent on RPF interface) A router with group members which has received a packet from a non-RPF neighbor (to non-RPF neighbor) 46 Building a source-based tree When a receiver joins, one needs to re-activate a pruned routing table entry H1 Source R1 R3 R2 H2 R4 Grafting aft Gr R5 R6 Graft Sending a Graft message disables prune, and reactivates routing table entry. R7 R8 H3 joined H4 joined H5 joined 47 Alternative method for building a source-based tree This only works if the receiver knows the source Explicit-Join Receiver sends a Join message to RPF neighbor Join message creates (S,G) routing table entry Join message is passed on 48 Building a core-based tree One route is the core Receiver sends a Join message to RPF neighbor with respect to core Join message creates (*, G) routing table entry 49 Building a core-based tree Source sends data to the core Core forwards data according to routing table entry 50 Agenda Multicast why multicast? multicast groups terminology (S,G) notation Addressing IGMP Source and core-based trees PIM PIM-DM PIM-SM 51 Multicast routing protocols in the Internet Distance Vector Multicast Routing Protocol (DVMRP): Multicast Open Shortest Path First (MOSPF): Multicast extensions to OSPF. Each router calculates a shortest-path tree based on link state database Not widely used Core Based Tree (CBT): First multicast routing protocol Implements flood-and-prune First core-based tree routing protocol Protocol Independent Multicast (PIM): Runs in two modes: PIM Dense Mode (PIM-DM) and PIM Sparse Mode (PIM-SM). PIM-DM builds source-based trees using flood-and-prune PIM-SM builds core-based trees as well as source-based trees with explicit joins. 52 PIM Messages (PIM version 2) 32 bit Version (= 2) Type Reserved Checksum • PIM messages can be sent as unicast or multicast packet Message type specific part PIM-DM messages • Encapsulated in IP datagrams with protocol number 103. • 224.0.0.13 is reserved as the ALL-PIM-Routers group Type PIM-DM PIM-SM Hello 0 Similar to periodic keep-alive Register 1 Sent by designated router to rendezvous point. Register-Stop 2 Join/Prune 3 Bootstrap 4 Assert 5 Graft 6 Graft-Ack 7 Candidate-RPAdvertisement 8 Description Creates/negates forwarding state Reinstate a previously pruned branch 53 PIM-DM: PIM Dense Mode S1 PIM-DM implements floodand-prune Source src: S1 dest: G R1 src: S1 dest: G Orange packet: Multicast packet (=Data) Blue packet: PIM message I1 R2 src: S1 dest: G I1 I3 src: S1 dest: G prune (S1, G) R3 R4 src: S1 dest: G H2 H3 joined 54 PIM-SM: PIM Sparse Mode S1 Core is called rendezvous-point (RP) Source R1 Receivers know RP (statically configured or dynamically elected) RP I1 R2 I1 R3 When receiver joins, a Join message is sent to RP on RPF. R5 I3 join (*, G) R4 join (*, G) IGMP H2 H3 joined (a) PIM-SM: H2 joins 55 PIM-SM: PIM Sparse Mode S1 Host H3 joins: Join message is only forwarded until the first router that is part of the core-based tree. Source R1 RP I1 R2 R5 I1 R3 I3 R4 join (*, G) IGMP H2 H3 joined 56 PIM-SM: Data transmission Source sends multicast packet to RP Packet is attached to an RP Register message When packet reaches RP, it is forwarded in the tree 57 PIM-SM: Data transmission S1 When Join messages reaches R1, it sends a native multicast packet to the RP (in addition to the packet attached to the register message) Source src: S1 dest: G src: S1 dest: G R1 register src: S1 (S1, G) dest: G I1 R5 R2 I1 I3 src: S1 dest: G RP src: S1 dest: G R3 R4 src: S1 dest: G H2 H3 joined 58 PIM-SM: Data transmission S1 When RP receives native multicast packet it sends a register stop message to R1. This message stops the transmission of register messages from R1. Source src: S1 dest: G src: S1 dest: G R1 register src: S1 (S1, G) dest: G register stop (S1,G) I1 R5 R2 I1 I3 src: S1 dest: G RP src: S1 dest: G R3 R4 src: S1 dest: G H2 H3 joined 59 PIM-SM: Switching to sourcebased tree S1 When data to receivers exceeds a threshold, routers switch to a source-based tree Source src: S1 dest: G R1 src: S1 dest: G RP join (S1,G) This is done by sending an explicit join message to the source I1 R5 R2 I1 join (S1,G) I3 src: S1 dest: G src: S1 dest: G R3 There may be duplicate packets being sent for some time R4 src: S1 dest: G H2 H3 joined (a) PIM-SM: R3 switches to a SPT 60 PIM-SM: Switching to sourcebased tree S1 When data arrives from source (as opposed to RP), a Prune message is sent to the RPT Source src: S1 dest: G R1 src: S1 dest: G RP Now: data is forwarded only along the shortestpath tree I1 R5 R2 I1 prune (S,G,RPT) I3 prune (S,G,RPT) src: S1 dest: G R3 R4 src: S1 dest: G H2 H3 joined 61 (b) PIM-SM: Data follows a SPT Conclusion Multicast Addressing IGMP Source and core-based trees PIM (SM vs. DM) 62