CS 372 – introduction to computer networks* Announcements: Assign 5 and Lab 5 will be posted today, and due next Thursday. * Based in part on slides by Bechir Hamdaoui and Paul D. Paulson. Acknowledgement: slides drawn heavily from Kurose & Ross Chapter 5, slide: 1 Chapter 5: Data Link Layer Our goals: understand principles behind data link layer services: error detection, correction sharing a broadcast channel: multiple access link layer addressing instantiation and implementation of link layer technologies Ethernet Chapter 5, slide: 2 Link Layer 1 Introduction and services 2 Error detection and correction 3 Multiple access protocols 4 Link-layer Addressing 5 Ethernet Chapter 5, slide: 3 Link Layer (also known as layer 2) Some terminology: nodes = hosts or routers links = communication channels that connect adjacent nodes • wired links • wireless links frame = layer-2 packet data-link layer has responsibility of transferring datagram from one node to adjacent node over a link Chapter 5, slide: 4 Link layer: context links may have different link protocols frames may be delivered by different link protocols over different links: e.g., Ethernet on 1st link, frame relay on intermediate links, 802.11 on last link transportation analogy Trip: Princeton to Berlin tourist = frame travel agent = routing algorithm link protocols may provide different services limo: Princeton to JFK plane: JFK to Munich train: Munich to Berlin Doesn’t know/care of mode transportation mode = link layer protocol e.g., may or may not provide rdt over link Chapter 5, slide: 5 Link Layer Services framing, link access: encapsulate datagram into frame, adding header, trailer channel access if shared medium “MAC” addresses used in frame headers to identify source, dest • different from IP address! reliable delivery between adjacent nodes similar to what is done at transport layer rarely used on low bit-error link (fiber, some twisted pair) often used on wireless links: high error rates Chapter 5, slide: 6 Link Layer Services (more) flow control: pacing between adjacent sending and receiving nodes error detection: errors caused by signal attenuation, noise. receiver detects presence of errors: • signals sender for retransmission or drops frame error correction: receiver identifies and corrects bit error(s) without resorting to retransmission Chapter 5, slide: 7 Where is the link layer implemented? in all hosts implemented in network adapter (NIC network interface card) Ethernet card, PCMCI card, 802.11 card implements link to physical layer host schematic application transport network link cpu memory attaches into host’s system buses combination of hardware and controller link physical host bus (e.g., PCI) physical transmission software network adapter card Chapter 5, slide: 8 NICs Communicating datagram datagram controller controller receiving host sending host datagram frame sending side: encapsulates datagram in hardware frame adds address info, error checking bits, reliable data transfer, flow control, etc. sends to all hosts that are directly connected receiving side checks address looks for errors, reliable data transfer, flow control, etc extracts datagram from hardware frame, and passes it up to next layer Chapter 5, slide: 9 Link Layer 1 Introduction and services 2 Error detection and correction 3 Multiple access protocols 4 Link-layer Addressing 5 Ethernet Chapter 5, slide: 10 Error Detection D = Data protected by error checking, may include header fields EDC= Error Detection and Correction bits (redundancy) • error detection not 100% reliable!: may not detect errors (rarely) • larger EDC field yields better detection and correction • Parity check, Checksum, Cyclic redundancy check (CRC) Chapter 5, slide: 11 Example: Parity Checking Single Bit Parity: Detect single bit errors Two Dimensional Bit Parity: Detect and correct single bit errors 1 In this example: D = data bits EDC = parity bit 0 0 Chapter 5, slide: 12 Checksumming: Cyclic Redundancy Check Scheme: Example: D= 101110 Fix r CRC bits r = 3 bits Choose r+1 bit pattern (generator), G G = 1001 Sender: choose r CRC bits, R, such that View data bits, D, as a binary number G exactly divides <D,R> (modulo 2) receiver knows G, divides <D,R> by G. If non-zero remainder: error detected! widely used in practice (Ethernet, 802.11 WiFi, ATM) Find R such that G divides <D,R> (modulo 2) equivalently G divides <D.2r XOR R> Chapter 5, slide: 13 CRC: modulo-2 arithmetic CRC calculations are done modulo-2 arithmetic No carries in addition No borrows in subtraction => Addition = subtraction = bitwise-XOR XOR review: 0 XOR 0 = 0; 0 XOR 1 = 1; 1 XOR 0 = 1; 1 XOR 1 = 0 => a XOR 0 = a & a XOR a = 0 for a=0,1 E.g.: 1010 XOR 0110 = 1110 Multiplications and divisions are same as in base-2 arithmetic, except all additions and subtractions are done without carries or borrows • That is: addition = subtraction = bitwise-XOR Chapter 5, slide: 14 CRC Example Want: G divides <D.2r XOR R> equivalently: D.2r XOR R = nG equivalently: (XOR both sides) (D.2r XOR R) XOR R = nG XOR R equivalently: (R XOR R = 0 & a XOR 0 = a) D.2r = nG XOR R equivalently: (division is modulo 2 too) since remainder[(nG XOR R)/G] = R (note: R < G), then dividing D.2r by G (modulo 2) gives remainder = R R = remainder[ D.2r G ] Chapter 5, slide: 15 Link Layer 1 Introduction and services 2 Error detection and correction 3 Multiple access protocols 4 Link-layer Addressing 5 Ethernet Chapter 5, slide: 16 Multiple Access Links and Protocols Two types of “links”: point-to-point PPP for dial-up access point-to-point link between Ethernet switch and host broadcast (shared wire or medium) Ethernet 802.11 wireless LAN shared wire (e.g., cabled Ethernet) shared RF (e.g., 802.11 WiFi) shared RF (satellite) humans at a cocktail party (shared air, acoustical) Chapter 5, slide: 17 Multiple Access protocols need for sharing of medium/channel single channel needs be used by all nodes interference/collision two or more simultaneous transmissions lead to collided signals multiple access protocol allows multiple, concurrent access algorithm that nodes use to share channel, i.e., determines when a node can transmit no coordination, no out-of-band channel agreeing about channel sharing must use channel itself! Chapter 5, slide: 18 MAC Protocols: a taxonomy Three broad classes: Channel Partitioning divide channel into smaller “pieces” (time slots, frequency) allocate piece to node for exclusive use Random Access channel not divided, allow collisions need to know how to “recover” from collisions “Taking turns” nodes take turns, but nodes with more to send can take longer turns Chapter 5, slide: 19 Channel Partitioning MAC protocols: TDMA TDMA: time division multiple access access to channel in "rounds" each station gets fixed length slot (length = pkt trans time) in each round unused slots go idle E.g.: 6-station LAN, 1,3,4 have pkt, slots 2,5,6 idle 6-slot frame 1 3 4 1 3 4 Chapter 5, slide: 20 Channel Partitioning MAC protocols: FDMA FDMA: frequency division multiple access channel spectrum divided into frequency bands each station assigned fixed frequency band unused transmission time in frequency bands go idle E.g.: 6-station LAN, 1,3,4 have pkt, frequency bands FDM cable frequency bands 2,5,6 idle Chapter 5, slide: 21 Random Access Protocols distributed unlike TDMA or FDMA no coordination among nodes one node at a time when a node transmits, it does so at full data rate R. collisions can occur two or more transmitting nodes ➜ “collision”, random access MAC protocol specifies: how to detect collisions how to recover from collisions examples of random access MAC protocols: ALOHA, CSMA/CD, CSMA/CA (CSMA: Carrier Sense Multiple Access; CD: Collision Detection; CA: Collision Avoidance) Chapter 5, slide: 22 Slotted ALOHA Assumptions: all frames same size Operation: when node gets a fresh frame, transmits in next slot time divided into slots slot = time to transmit 1 frame start transmit at beginning of slot only nodes are synchronized if no collision: node can send new frame in next slot if collision: node retransmits frame in each subsequent slot with prob. p until success if multiple nodes transmit in slot, all can detect collision Chapter 5, slide: 23 Slotted ALOHA Pros single active node can continuously transmit at full rate of channel highly decentralized: only slots in nodes need to be in sync simple Legend: C = collision E = empty/idle S = success Cons collisions, wasting slots idle slots, wasting slots clock synchronization Chapter 5, slide: 24 Slotted Aloha efficiency Efficiency : long-run fraction of successful slots (many nodes, all with many frames to send) suppose: N nodes with many frames to send, each transmits in slot with probability p prob that given node has success in a slot ? p(1-p)N-1 prob that exactly one node of N nodes has a success ? Np(1-p)N-1 Efficiency = Np(1-p)N-1 Chapter 5, slide: 25 Slotted Aloha efficiency Efficiency = Np(1-p)N-1 max efficiency: find p* that maximizes Np(1-p)N-1 p* = 1/N Max Eff = (1-1/N)N-1 When N increases to , max eff = (1-1/N)N-1 goes to 1/e = .37 At best: channel used for 37% useful transmission time ! Chapter 5, slide: 26 CSMA (Carrier Sense Multiple Access) CSMA: listen before transmit: If channel sensed idle: transmit entire frame If channel sensed busy, defer transmission human analogy: don’t interrupt others! Chapter 5, slide: 29 CSMA collisions spatial layout of nodes collisions can still occur: propagation delay means two nodes may not hear each other’s transmission collision: entire packet transmission time wasted note: role of distance & propagation delay in determining collision probability Chapter 5, slide: 30 CSMA/CD (Collision Detection) CD (collision detection): easy in wired LANs: measure signal strengths, compare transmitted, received signals difficult in wireless LANs: received signal strength overwhelmed by local transmission strength human analogy: the polite conversationalist CSMA/CD: (CSMA w/ Collision Detection) collisions detectable colliding transmissions aborted reducing channel wastage Chapter 5, slide: 31 CSMA/CD collision detection Chapter 5, slide: 32 “Taking Turns” MAC protocols Polling: master node “invites” slave nodes to transmit in turn data poll master concerns: polling overhead latency single point of failure (master) data slaves Chapter 5, slide: 33 “Taking Turns” MAC protocols Token passing: control token passed from one node to next sequentially. If token, then send message concerns: token overhead latency single point of failure (token) T (nothing to send) T data Chapter 5, slide: 34 Summary of MA protocols channel partitioning, by time or frequency Time Division, Frequency Division random access (dynamic), Don’t start talking again right away Waiting for a random time before trying again carrier sensing: easy in some technologies (wire), hard in others (wireless) • CSMA/CD used in Ethernet • CSMA/CA used in 802.11 taking turns polling from central site, token passing • Bluetooth, FDDI, IBM Token Ring Chapter 5, slide: 35 Link Layer 1 Introduction and services 2 Error detection and correction 3 Multiple access protocols 4 Topologies and switches 5 Link-layer Addressing 6 Ethernet Chapter 5, slide: 36 A little more about Physical Layer: LAN topologies Networks may be classified by "shape" Three most popular: Star Ring Bus Networks may be classified by “shared medium" Cable Wireless Others … Chapter 5, slide: 37 Star topology All computers attach to a central point: "Center" of star is usually a server or a switched hub Chapter 5, slide: 38 Star topology Don't be confused by a diagram. “Topology” refers to logical connections (not physical layout) A likely diagram of a star topology LAN: Chapter 5, slide: 39 Star topology If implemented with a hub, the hub must be "programmable" (switched) Switch “learns” connections Can services multiple transmissions simultaneously Chapter 5, slide: 40 Ring topology Computers connected in a closed loop First passes data to second, second passes data to third, etc. Chapter 5, slide: 41 Ring topology Refers to logical connections (not physical layout) In practice, there is a short connector cable from the computer to the ring Chapter 5, slide: 42 Ring topology Can be implemented inside a “box" Don't confuse with Star topology Chapter 5, slide: 43 Bus topology Single cable connects all computers Each computer has connector to shared cable Computers must synchronize and allow only one computer to transmit at a time Terminator Terminator Chapter 5, slide: 44 Bus topology Can be implemented inside a “box“ (unswitched hub) Don't confuse with Star topology Chapter 5, slide: 45 Hubs … physical-layer (“dumb”) repeaters: bits coming in one link go out all other links at same rate all nodes connected to hub can collide with one another no frame buffering no CSMA/CD at hub: host NICs detect collisions twisted pair hub Chapter 5, slide: 46 Switch link-layer device: smarter than hubs, take active role store, forward Ethernet frames examine incoming frame’s MAC address, selectively forward frame to one-or-more outgoing links when frame is to be forwarded on segment, uses CSMA/CD to access segment transparent hosts are unaware of presence of switches plug-and-play, self-learning switches do not need to be configured Chapter 5, slide: 47 Switch Table Q: how does switch know that A’ reachable via interface 4, B’ reachable via interface 5? A: each switch has a switch table, each entry: C’ B 1 2 3 6 5 4 (MAC address of host, interface to reach host, time stamp) looks like a routing table! Q: how are entries created, maintained in switch table? A something like a routing protocol? C B’ A’ switch with six interfaces (1,2,3,4,5,6) Chapter 5, slide: 48 Switch: self-learning switch learns which hosts can be reached through which interfaces Source: A Dest: A’ A A A’ C’ B 1 2 3 6 5 4 when frame received, switch “learns” location of sender: incoming LAN segment records sender/location pair in switch table C B’ A’ MAC addr interface TTL A 1 60 Switch table (initially empty) Chapter 5, slide: 49 Self-learning, forwarding: example Source: A Dest: A’ A A A’ C’ B frame destination unknown: flood 1 2 3 A6 A’ 5 4 destination A location known: selective send B’ C A’ A A’ MAC addr interface TTL A A’ 1 4 60 Switch table 60 (initially empty) Chapter 5, slide: 50 Interconnecting switches switches can be connected together S4 S1 A B C S3 S2 D F E G H I Q: sending from A to G - how does S1 know to forward frame destined to F via S4 and S3? A: self learning! (works exactly the same as in single-switch case!) Chapter 5, slide: 51 Institutional network to external network mail server router web server IP subnet Chapter 5, slide: 52 Switches vs. Routers both store-and-forward devices routers: network layer devices (examine network layer headers) switches are link layer devices routers maintain routing tables, implement routing algorithms switches maintain switch tables, implement filtering, learning algorithms Switch Chapter 5, slide: 53 Link Layer 1 Introduction and services 2 Error detection and correction 3 Multiple access protocols 4 Topologies and switches 5 Link-layer Addressing 6 Ethernet Chapter 5, slide: 54 MAC Addresses 32-bit IP address: network-layer address used to get datagram to destination IP subnet MAC (or LAN or physical or Ethernet) address: 48 bit MAC address (for most LANs) • burned in NIC ROM, also sometimes software settable function: get frame from one interface to another physicallyconnected interface (same network) uses hexadecimal representation; i.e., base-16 (i.e., 4 bits) it uses 16 distinct symbols: 0,1,…,9,A,B,C,D,E,F 4 bits needed for each symbol: 48/4 = 12 symbols E.g.: 1A-2F-BB-76-09-AD Chapter 5, slide: 55 MAC Addresses Each adapter on LAN has unique MAC (LAN ) address 1A-2F-BB-76-09-AD 71-65-F7-2B-08-53 LAN (wired or wireless) Broadcast address = FF-FF-FF-FF-FF-FF = adapter 58-23-D7-FA-20-B0 0C-C4-11-6F-E3-98 Chapter 5, slide: 56 MAC Addresses Assume: • A knows B’s MAC address • A wants to send a frame to B Node A 137.196.7.78 1A-2F-BB-76-09-AD 137.196.7.23 137.196.7.14 LAN 71-65-F7-2B-08-53 137.196.7.88 58-23-D7-FA-20-B0 0C-C4-11-6F-E3-98 Node B A encapsulates B’MAC into the frame A sends the frame into the medium All nodes will hear the frame Only B grabs the frame All other nodes discard the frame Chapter 5, slide: 57 ARP: Address Resolution Protocol Question: if A doesn’t know B’s MAC address, how does it determine this MAC address? Node A Solution: ARP Each IP node (host, router) on LAN has ARP table ARP table: maps IP, MAC address for some LAN nodes 137.196.7.78 < IP address; MAC address; TTL> 1A-2F-BB-76-09-AD 137.196.7.23 137.196.7.14 A consults its table to LAN 71-65-F7-2B-08-53 137.196.7.88 TTL (Time To Live): remove mapping after TTL (typically 20 min) 58-23-D7-FA-20-B0 determine B’s MAC given it knows B’s IP Q: how to construct these ARP tables? 0C-C4-11-6F-E3-98 Node B Chapter 5, slide: 58 ARP: Case 1—Same LAN (network) A wants to send datagram to B, and B’s MAC address not in A’s ARP table. A broadcasts ARP packet, containing B's IP address dest MAC address = FFFF-FF-FF-FF-FF all machines on LAN receive ARP query B receives ARP packet, replies to A with its (B's) MAC address A sends frame to B since it knows its MAC now A caches IP-to-MAC address pair in its ARP table 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 Chapter 5, slide: 59 ARP: Case 2—routing to another LAN datagram needs to go from A to B via R assume A knows B’s IP address 88-B2-2F-54-1A-0F 74-29-9C-E8-FF-55 A 111.111.111.111 E6-E9-00-17-BB-4B 1A-23-F9-CD-06-9B 222.222.222.220 111.111.111.110 111.111.111.112 R 222.222.222.221 222.222.222.222 B 49-BD-D2-C7-56-2A CC-49-DE-D0-AB-7D how does ARP work now ?? Would the previous scenario work? Chapter 5, slide: 60 ARP: Case 2—routing to another LAN What happens when A wants to send IP datagram to B A knows that B belongs to a different subnet by checking B’s IP address A also knows IP address of router R (routing table at network layer) If necessary, A uses ARP to get R’s MAC address for 111.111.111.110 (IP address of router) A creates frame with R's MAC address as dest, frame contains A-to-B IP datagram A’s NIC sends frame and R’s NIC receives it R removes IP datagram from Ethernet frame, sees its destined to B R uses ARP to get B’s MAC address (R has B’s IP address, included in the just received frame) R creates frame containing A-to-B IP datagram and sends it to B 88-B2-2F-54-1A-0F 74-29-9C-E8-FF-55 A 111.111.111.111 E6-E9-00-17-BB-4B 1A-23-F9-CD-06-9B 222.222.222.220 111.111.111.110 111.111.111.112 CC-49-DE-D0-AB-7D R 222.222.222.221 222.222.222.222 B 49-BD-D2-C7-56-2A Chapter 5, slide: 61 Link Layer 1 Introduction and services 2 Error detection and correction 3 Multiple access protocols 4 Topologies and switches 5 Link-layer Addressing 6 Ethernet Chapter 5, slide: 63 Ethernet “dominant” wired LAN technology: cheap $20 for NIC (Network Interface Card) first widely used LAN technology simpler, cheaper than token LANs and ATM kept up with speed race: 10 Mbps – 10 Gbps Metcalfe’s Ethernet sketch Chapter 5, slide: 64 Ethernet topology bus topology popular through mid 90s all nodes in same collision domain (can collide with each other) today: star topology prevails active switch in center each “spoke” runs a (separate) Ethernet protocol (nodes do not collide with each other) Ethernet cable (called a segment) switch bus: coaxial cable star Chapter 5, slide: 65 802.3 Ethernet Standards: Link & Physical Layers many different Ethernet standards common MAC protocol and frame format different speeds: 2 Mbps, 10 Mbps, 100 Mbps, 1Gbps, 10G bps different physical layer media: fiber, cable, wireless application transport network link physical MAC protocol and frame format 100BASE-TX 100BASE-T2 100BASE-FX 100BASE-T4 100BASE-SX 100BASE-BX copper (twister pair) physical layer fiber physical layer Chapter 5, slide: 66 Ethernet Frame Structure Sending adapter encapsulates IP datagram (or other network layer protocol packet) in Ethernet frame Preamble: total 8 bytes: 7 bytes, each with pattern 10101010 followed by one byte with pattern 10101011 used to synchronize receiver, sender clock rates (sender’s data rate matches receiver’s data rate) Chapter 5, slide: 67 Ethernet Frame Structure Addresses: 6 bytes if adapter receives frame with matching destination address, or with broadcast address (eg ARP packet), it passes data in frame to network layer protocol otherwise, adapter discards frame Type: indicates higher layer protocol (mostly IP but others possible, e.g., Novell IPX, AppleTalk) CRC: checked at receiver, if error is detected, frame is dropped Chapter 5, slide: 68 Ethernet: Unreliable, connectionless connectionless: No handshaking between sending and receiving NICs unreliable: receiving NIC doesn’t send acks or nacks to sending NIC stream of datagrams passed to network layer can have gaps (missing datagrams) gaps will be filled if app is using TCP otherwise, app will see gaps Ethernet’s MAC protocol: CSMA/CD (more on this next…) Chapter 5, slide: 69 CSMA/CD vs. slotted ALOHA CSMA/CD Slotted ALOHA 1. Unsychronized: 1. Sychronized: NIC (adapter) may transmit at anytime; no notion of timeslots 2. Carrier-sense: Never transmit if others are transmitting 3. Collision detection: stop transmitting as soon as collision is detected 4. Random backoff: transmit at beginning of a timeslot only 2. No carrier-sense: No check for whether others transmit or not 3. No collision detection: no stop during collision 4. No random backoff wait a random time before retransmitting (more later) Chapter 5, slide: 70 Notion of bit time Before describing CSMA/CD, let’s introduce: bit time = time to transmit one bit on a Ethernet link Example: consider a 10 Mbps Ethernet link Q1: what is a “bit time” A1: 1/(10x10^6) second = 0.1 microsecond Q2: how much time is “96 bit time” A2: 96 x 0.1 = 9.6 microsecond Chapter 5, slide: 71 Ethernet CSMA/CD algorithm 1. adapter receives datagram from 5. If adapter detects another network layer, creates frame transmission while transmitting, aborts and sends a 48-bit jam signal 2. If adapter senses channel idle (to make sure all nodes are aware for 96 bit time, starts frame of collision) transmission (gap to allow interface recovery) 6. After aborting (after sending jam signal), adapter enters 3. If adapter senses channel busy, exponential backoff: waits until channel idle (plus 96 adapter chooses K at random bit time), then transmits 4. If adapter transmits entire frame without detecting another transmission, adapter is done with frame ! (next slide is explained how) adapter waits K·512 bit times, returns to Step 2 Chapter 5, slide: 72 Ethernet’s CSMA/CD (more) Jam Signal: make sure all other transmitters are aware of collision; 48 bits Exponential Backoff: Goal: adapt retrans. attempts to estimated current load heavy load: random wait will be longer Light load: random wait will be shorter first collision: choose K from {0,1} after 2nd collision: choose K from {0,1,2,3} after 3rd collision: choose K from {0,1,2,3,4,5,6,7} after 10th collision, choose K from {0,1,2,3,4,…,1023} after 10 collision, choose K from {0,1,2,…,1023} Then, delay transmission until K· 512 bit times Chapter 5, slide: 73 Example A 10Mbps B A and B are connected via an Ethernet link of 10 Mbps Propagation delay between them = 224 bit time At time t=0, both transmit which results in collision After collision, A chooses K=0 and B chooses K=1 Q1: how much is “bit time”: =1/10 = 0.1 microsecond Q2: at what time does collision occur? =(224/2) x 0.1 = 11.2 microsecond Q3: at what time does bus become idle? =224 (both A & B detect collision) + 48 (A & B finish sending jam signals) + 224 (last bit of B’s jam signal arrives at A) = 496 bit time =496x0.1 (bit time)= 49.6 micseccond Q4: at what time does A begin retransmission? [496 (bus becomes idle) + 96]x0.1 (bit time)= 59.2 micsecond Chapter 5, slide: 74