560 likes | 574 Views
Explore different methods and techniques for broadcast routing in IP networks, including in-network replication, spanning tree construction, multicast routing, and distance-vector multicast routing protocol.
E N D
Where we are in the big picture IP IP IP Ethernet interface Ethernet interface Ethernet interface host host HTTP message HTTP HTTP TCP segment TCP TCP router router IP packet IP packet IP packet IP Ethernet interface SONET interface SONET interface CS118/Spring05
Broadcast Routing R2 R3 R4 R2 R3 R4 R1 R1 • Goal: Deliver packets from a source to all other nodes • Why letting source send to everyone not a good solution • the source may not know all the destination addresses • Redundant transmission over links near the source replicate replicate in-network replication sourcereplication CS118/Spring05
In-network replication • Flooding: when a node receives a broadcast packet, sends a copy to all neighbors • Problems: packet looping • Controlled flooding: node broadcast a packet if it hasn’t seen the same packet before • Node must keep track of packet ids already seen • Reverse Path Forwarding (RPF): a node N forwards packet if it arrived on shortest path between N and source • Make use of forwarding table of unicast routing source R1 R4 R2 R5 R6 R3 R7 CS118/Spring05
Spanning Tree A D A D G G B B F E E F c c • First construct a spanning tree • Nodes forward copies only along spanning tree • No redundant packets received by any node • All sources send data along the same tree (b) Broadcast initiated at D (a) Broadcast initiated at A CS118/Spring05
Creating a center-based Spanning Tree A A D D G G B B E F F c c E • First pick a center node (E in this example) • Each node sends unicast join message towards the center node • Message forwarded until it arrives at a node already belonging to spanning tree • Stepwise construction of spanning tree (b) Constructed spanning tree CS118/Spring05
Multicast Routing Goal: build a tree to reach allmembers in a mcast group • shared-tree: same tree used by all group members • minimal spanning tree (Steiner) • center-based tree • source-based tree: one tree from each sender to receivers • Each tree made of shortest paths to all mcast members • 2 ways to build: link-state (MOSPF), RPF (DVMRP) Shared tree Source-based trees CS118/Spring05
Shared-Tree: Steiner Tree • Steiner Tree: minimum cost tree connecting all routers with attached group members • problem is NP-complete • excellent heuristics exists • not used in practice: • computational complexity • Infeasible to get/keep information about entire network • monolithic: rerun whenever a router needs to join/leave CS118/Spring05
Center-based shared routing tree • one router identified as “center” of tree • routerwith mcast member attached sends unicast join-msg addressed to the center router • join-msg processed by intermediate routers before being forwarded towards center • join-msg either hits existing tree branch for this center, or arrives at center • path taken by join-msg becomes new branch of tree R1 R4 R2 R5 R6 R7 R3 CS118/Spring05
Building Shortest Path Tree: MOSPF • OSPF: a link-state routing protocol • Each node maintains a complete network graph • Use Dijkstra algorithm to compute the shortest path • MOSPF (Multicast OSPF) • Carry multicast membership in link-state packet • Router computes shortest path tree for each source S: source R1 R4 LEGEND router with attached group member R2 R5 router with no attached group member R3 R7 R6 CS118/Spring05
Reverse Path Forwarding: example S: source LEGEND R1 R4 router with attached group member R2 router with no attached group member R5 datagram will be forwarded R3 R7 R6 datagram will not be forwarded • result is a source-specific reverse shortest path broadcast tree • may not be a good tree if link cost is asymmetric • It's a broadcast tree, reaching every node CS118/Spring05
Trim Broadcast Tree to Mcast Tree by Pruning • no need to forward packets down branches which has no mcast group members • router with no downstream group members sends “prune” message upstream • Routers keep state regarding prune msgs LEGEND S: source R1 router with attached group member R4 router with no attached group member R2 P P R5 prune message P R3 links with multicast forwarding R7 R6 CS118/Spring05
Distance-Vector Multicast Routing Protocol(DVMRP, specified in RFC1075) • DVMRP routers run RIP to build routing table • Use reverse path forwarding to build source-based tree • initial datagram to mcast group floods everywhere via RPF • Edge routers with no members send prune msg upstream • soft state: router periodically delete prune state • Sender may have finished by then • If not, downstream router prune again • routers can quickly graft to tree • By canceling the prune state R1 R4 R2 P R5 P R3 R7 R6 CS118/Spring05
PIM: Protocol Independent Multicast • independent from underlying unicast routing algorithm • Either get "next hop" information for each node from the unicast forwarding table, or • Use unicast routing to forward mcast join message • two different multicast distribution scenarios: • Dense: group members densely packed, in “close” proximity • Sparse: # networks with group members small wrt to the total # of interconnected networks, group members widely dispersed CS118/Spring05
Consequences of Sparse-Dense Dichotomy: Dense group membership by routers assumed until routers explicitly prune data-driven construction on mcast tree (e.g., RPF) Sparse no membership until routers explicitly join receiver- driven construction of mcast tree (e.g., center-based) Implementation: • flood-and-prune RPF • similar to DVMRP but using info from underlying unicast protocol for RPF checking CS118/Spring05
PIM - Sparse Mode Build center-based shared tree router sends join msg to rendezvous point (RP) intermediate routers update state and forward join msgs Data sources: unicast packets to RP, which forwards down RP-rooted tree RP can send stop msg to source if no receivers joined the group “no one is listening!” R1 R4 join R2 join R5 join R3 R7 R6 all data multicast from rendezvous point rendezvous point CS118/Spring05
Components of the IP Multicast Architecture multicast routing protocols(MOSPF, DVMRP, PIM) hosts • IGMP operates between Router and local Hosts on the same network (e.g., Ethernet) • Router queries local Hosts for mcast group membership info • Hosts respond with membership reports host-to-router protocolInternet Group Management Protocol routers CS118/Spring05
1 1 1 0 group ID IP Multicast Address 131.179.26.38 18.4.157.100 Class D IP addresses: in “dotted decimal” notation: 224.0.0.0 — 239.255.255.255 Two administrative categories: • well-known multicast addresses, assigned by IANA • (the rest) transient addresses, assigned & reclaimed dynamically CS118/Spring05
How IGMP Works (I) routers: Q hosts: • One router is elected the “querier” on each local/physical network • querierperiodically sends Membership Query message to “all-systems group” (224.0.0.1) with TTL=1 CS118/Spring05
How IGMP Works (II) • On receipt, a host starts a random timer [0–10 sec] for each multicast group it wants to join • when a host’s timer for group G expires, it sends a Membership Report to group G (TTL = 1) • other members of G hear the report, stop their timers • routers hear all reports • Normal case: only one report message per group is sent in response to a query • when a host first joins a group, it can send unsolicited reports immediately Q G G G G CS118/Spring05
How IGMP Works: Leaving a Multicast Group • host sends a Leave Group msg to group address Gif it was the most recent host to report membership in that group • Upon receiving Leave Group msg: query router sends a few queries to group G with a small max-response-time • if no Membership Report heard, stop data forwarding Q G G G G CS118/Spring05
IGMP message types IGMP Msg type Sent by Purpose membership query: general router membership query: specific router membership report host leave group host query for current active multicast groups query for specific m-cast group host wants to join group host leaves the group IP header CS118/Spring05
Chapter 5: the Data Link Layer: overview M H H H H H H H H H l n l n t n t t t M M M • data delivery between two physically connected devices • implementation of various link layer technologies: • Ethernet, hubs, bridges, IEEE 802.11 LANs, PPP • Address mapping between LAN and IP: ARP application transport network link physical data link protocol network link physical M phys. link frame adapter card CS118/Spring05
Link Layer Services • sending data over a physical link • bit encoding: transmitting sequence of 1’s and 0’s by signals • Framing: defining the beginning & end of a data chunk • bit error detection • reliable transmission • MAC (Medium Access Control) addresses to identify source, destination nodes • Different address, not IP address! • Channel access if shared medium • e.g, Ethernet, wireless, etc. • Flow Control: pacing between sender and receivers • implemented in “adapter” (e.g., PCMCIA card, Ethernet card) • Link type: Half-duplex vs. full-duplex CS118/Spring05
Data Framing • Terminology: for a block of data • at link layer: normally called a data frame • at network layer: a packet • at transport level: TCP segment; UDP datagram • A frame/packet has a header field • optionally there may be a trailer field too • Byte-Oriented Framing Protocol: delineate frame with a special bit sequence: 01111110 Q: What if the bit sequence 01111110 occurs in data stream? data CS118/Spring05
Byte stuffing • Sender: adds (“stuffs”) extra < 01111110> byte after each apperance of < 01111110> • Receiver: • single 01111110: flag byte • two back-to-back 01111110 bytes: discard first byte, continue data reception • stuffing changes the total length of data to be sent CS118/Spring05
Error Detection • EDC= Error Detection and Correction bits (redundancy) • D = Data protected by error checking • Error detection not 100% reliable! • protocol may miss some errors, though rarely • larger EDC field gives better detection and correction CS118/Spring05
Parity Checking Two Dimensional Bit Parity: Detect and correct single bit errors Single Bit Parity: Detect single bit errors • consider a data frame as • a m n matrix • A parity bit for each row • n-bit checksum, • and • A parity bit for each column • m-bit checksum CS118/Spring05
Cyclic Redundancy Check (CRC) • consider a data frame as a bit sequence M(x) • e.g. 10011010 M(x) = x7 + x4 + x3 + x1 • k-term polynomial has a degree of (k-1) • e.g. 10011010 represents a 8-term polynomial • use a (r+1)-bit generator polynomial G(x) to compute the checksum for M(x) • sender makes the transmitted bit sequence dividable by G(x) by appending r-bit remainder to M(x) • receiver divides the received sequence by G(x) M M CS118/Spring05
How to compute CRC 1. append r zero bits to M(x) to get xrM(x) M(x) = 10011010 = x7 + x4 + x3 + x1, G(x) = 1101=x3 + x2 + 1, r = 3 then xrM(x) = x10 + x7 + x6 + x4 10011010000 2. divide xrM(x) by G(x) • 10011010000 / 1101 = 11111001, remainder 101 3. subtract the remainder from xrM(x) T(x), check-summed frame to be transmitted xrM(x) / G(x) = Q(x), remainder R(x),T(x) = xrM(x) - R(x) • In reality: just append R(x) to the end of data frame M(x) : 10011010101 Because: xrM(x) = shifting M(x) to the left by r bits, and for XOR: r bits of 0's – R(x) = R(x) At receiving end: if the received frame P(x) divisible by G(x), P(x)/G(x) = 0, P(X) considered error free CS118/Spring05
An example CRC computation 11111001 11111001 1101 10011010000 1101 10011010101 1101 1001 1101 1000 1101 1011 1101 1100 1101 1000 1101 101 1101 1001 1101 1000 1101 1011 1101 1100 1101 1101 1101 0 remainder computation by sender computation by receiver CS118/Spring05
Multiple Access protocols • The problem: single shared communication channel, only one node can send successfully at a time • 3 broad classes: • Channel Partitioning • divide channel into smaller “pieces” (time slots, frequency band, code modulation) • allocate piece to node for exclusive use • “Taking turns” • coordinate shared access to avoid collision • Random Access • Detect and resolve collisions CS118/Spring05
Channel Partitioning: TDMA and FDMA time frequency bands • TDMA: Time Division Multiple Access • channel divided into N fixed length time slots, one per station • each station takes turns to access channel • unused slots go idle • example: 6-station LAN, 1,3,4 send data, slots 2,5,6 idle • FDMA • channel spectrum divided into frequency bands • each station assigned fixed frequency band • unused frequency bands go idle • example: 6-station LAN, 1, 3, 4 send data, frequency bands 2,5,6 idle CS118/Spring05
“Taking Turns” MAC protocols • channel partitioning: commonalities • Share channel efficiently with constant, uniform load • But inefficient with random, non-uniform load • delay in channel access • 1/N bandwidth allocated even if only 1 active node! • “taking turns” protocols: on-demand channel allocation • Polling: master node asks slave nodes to transmit in turn • Concerns: polling latency, single point of failure • Token passing CS118/Spring05
“Taking Turns” by Token Passing • One token message passed from one node to next sequentially • whoever gets the token can send one data frame, then passes token to next node • A master station generates the token and monitors its circulation • concerns: • token overhead • latency • single point of failure (token) CS118/Spring05
Random Access protocols • When node has packet to send • transmit at full channel data rate R. • no a priori coordination among nodes • If two or more nodes transmitting at the same time “collision” • random access MAC protocol specifies: • how to detect collisions • how to recover from collisions • Examples of random access MAC protocols: • ALOHA • slotted ALOHA • CSMA and CSMA/CD CS118/Spring05
ALOHA • If a station has data to send: just send • collision probability: • frame sent at t0 collide with other packets sent in [t0-1, t0+1] P(success by given node) = P(node transmits) . P(no other node transmits in [t0-1,t0] . P(no other node transmits in [t0,t0+1] = p . (1-p)N-1 . (1-p)N-1 P(success by any node) = N p . (1-p) 2(N-1)choosing optimum p as n ∞ ... = 1/(2e) = 0.18 CS118/Spring05
Slotted Aloha Assumptions: • All frames the same size; clocks in all nodes are synchronized • Divide time into equal size slots (= pkt trans. time) • If 2 or more nodes transmit in the same slot, all nodes detect collision CS118/Spring05
Slotted Aloha Operations: • When a node gets data to send, it transmits at beginning of next slot • If no collision, node can send new frame in next slot • If collision: node retransmits frame in each subsequent slots with probability p, until successful. Success (S), Collision (C), Empty (E) slots CS118/Spring05
Slotted Aloha efficiency At best: channel use for useful transmissions 37% of time! Q: what is the max fraction of slots successful? • each node transmits in a slot with probability p • prob. successful transmission S is by a given node: S= p (1-p)(N-1) by any of N nodes S = Prob (only one transmits) = N p (1-p)(N-1) … choosing optimum p as n ∞ ... = 1/e = 0.37 0.4 S = throughput = “goodput” (success rate) 0.3 Slotted Aloha 0.2 0.1 Pure Aloha G = offered load = N*p 1.5 2.0 0.5 1.0 CS118/Spring05
CSMA: Carrier Sense Multiple Access listen before transmit If channel sensed idle: transmit If channel sensed busy, wait p-persistent CSMA: when channel becomes idle, retry immediately with probability p Non-persistent CSMA: retry after a random interval collisions still possible: propagation delay two or more nodes may send simultaneously Chance of collision goes up with distance between nodes To cut the loss early: CSMA/CD CS118/Spring05
CSMA/CD (Collision Detection) • Collision Detection:compare transmitted with received signals • Abort collided transmissions CS118/Spring05
Classification ofdifferent multiaccess protocols controlled access random access ALOHA, slotted ALOHA Static allocation adaptive to demand CSMA/CD polling token passing TDMA FDMA CDMA Multiple data sources sharing the same communication link (Ethernet, FDDI, Appletalk, etc) CS118/Spring05
LAN Addresses and ARP 32-bit IP address:network-layer address • used to get IP packet to destination host LAN (or MAC or physical) address: • used to get frame from one interface to another physically connected interface (same network) • 48 bit MAC address (for most LANs) burned in the adapter ROM • Each adapter on LAN has a unique LAN address • Broadcast address: FF-FF-FF-FF-FF-FF CS118/Spring05
LAN Address (more) • MAC address allocation administered by IEEE • manufacturer buys portion of MAC address space (to assure uniqueness) • Analogy: (a) MAC address: like Social Security Number (b) IP address: like postal address • MAC flat address => portability • can move LAN card from one LAN to another • IP hierarchical address NOT portable • depends on network to which one attaches CS118/Spring05
Recall earlier routing discussion 223.1.1.1 223.1.2.1 E B A 223.1.1.2 223.1.2.9 223.1.1.4 223.1.2.2 223.1.3.27 223.1.1.3 223.1.3.2 223.1.3.1 • Node A sends IP packet to B: • look up network address of B, find B is on the same net as A • link layer send datagram to B inside link-layer frame frame source, dest address datagram source, dest address A’s IP addr B’s IP addr B’s MAC addr A’s MAC addr IP payload datagram frame CS118/Spring05
ARP: Address Resolution Protocol Question: how to determine MAC address of B given B’s IP address? • Each IP node (Host, Router) on LAN has ARP table • ARP Table: IP/MAC address mappings for some LAN nodes < IP address; MAC address; TTL> • TTL (Time To Live): time after which address mapping will be forgotten (typically 20 min) 237.196.7.78 1A-2F-BB-76-09-AD 237.196.7.23 237.196.7.14 LAN 71-65-F7-2B-08-53 58-23-D7-FA-20-B0 0C-C4-11-6F-E3-98 237.196.7.88 CS118/Spring05
ARP protocol • A knows B's IP address, wants to learn B's MAC address • A broadcasts ARP query pkt, containing B's IP address • Dest MAC address = FF-FF-FF-FF-FF-FF • all machines on LAN receive ARP query • B receives ARP packet, replies to A with its (B's) physical layer address • reply sent to A’s MAC address (unicast) • A caches (saves) IP-to-physical address pairs until information becomes old (times out) • soft state: information that times out (goes away) unless refreshed • ARP is “plug-and-play”: • nodes create their ARP tables without intervention from net administrator CS118/Spring05
Routing to another LAN • A creates IP packet with source A, destination B • A uses ARP to get R’s physical layer address for 111.111.111.110 • A creates Ethernet frame with R's MAC address as destination • A’s data link layer sends the Ethernet frame • R’s data link layer receives Ethernet frame • R extracts IP datagram from Ethernet frame, sees it’s destined to B • R uses ARP to get B’s physical layer address • R creates frame containing A-to-B IP packet, sends to B A R B CS118/Spring05
Ethernet • first widely used LAN technology, dominant LAN today • Kept up with speed race: 10 Mbps – 10 Gbps • Bus topology popular through mid 90s • Now star topology prevails • Connection choices: hub or switch (more later) hub or switch CS118/Spring05
Schedule for next week • Makeup lecture: Monday 6/6 • 8:00-9:50AM, 5422BH • 6:00-7:50PM, 5419BH • Tuesday 6/7: regular class hours • Wednesday 6/8: office hour cancelled • Thursday 6/9: no class • Saturday 6/11: • Office hour: 10:00AM - 1:00PM • Final exam: 3:00-6:00PM, 2444BH CS118/Spring05