ECE/CS 372 – introduction to computer networks Lecture 12 Announcements: Assign 3 is due now Lab 3 is due Thursday Lab 4 & Assignment 4 will soon be posted Credit for lecture slides to Professor Bechir Hamdaoui Adapted from Jim Kurose & Keith Ross (original copyright) 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 example of link layer protocol Ethernet Chapter 5, slide: 2 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: 3 Link layer: context links may have different protocols frames may be delivered by different link protocols over different links: e.g., Ethernet 802.11 (WiFi) link protocols may provide different services e.g., may or may not provide rdt over link transportation analogy Trip: Princeton to Marseille limo: Princeton to JFK plane: JFK to Paris train: Paris to Marseille tourist = frame travel agent = routing algorithm Doesn’t know/care of mode transport mode = link layer protocol ≠ legs may use ≠ modes Chapter 5, slide: 4 Link Layer Services link access and sharing: Sharing and multiple access: allow medium/channel sharing reliable delivery between adjacent nodes transport layer-like reliability: ACK’ing low bit-error link (e.g., fiber): rarely used high bit-error link (e.g., wireless): often used error detection: errors caused by signal attenuation, noise. receiver detects presence of errors error correction: receiver corrects errors w/o resorting to retransmission Chapter 5, slide: 5 Link Layer 1 Error detection and correction 2 Link-layer Addressing 3 Multiple access protocols 4 Ethernet Chapter 5, slide: 6 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 Chapter 5, slide: 7 Example: Parity Checking Single Bit Parity: Detect single bit errors In this example: D = data bits EDC = parity bit Two Dimensional Bit Parity: Detect and correct single bit errors 0 0 Chapter 5, slide: 8 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! Find R such that G divides <D,R> (modulo 2) equivalently G divides <D.2r XOR R> detect burst errors less than r+1 bits Chapter 5, slide: 9 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 = 1100 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: 10 CRC Example (find R) 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: 11 Link Layer 1 Error detection and correction 2 Link-layer Addressing 3 Multiple access protocols 4 Ethernet Chapter 5, slide: 12 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: 13 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: 14 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: 15 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: 16 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: 17 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: 18 ARP: Case 2—routing to another LAN Here’s how it works: (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 layer 3) 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: 19 Link layer Addressing: last words manufacturer buys portion of MAC address space (to assure uniqueness of MAC addresses) analogy: (a) MAC address: like Social Security Number (b) IP address: like postal address MAC flat addressing ➜ portability can move LAN card from one LAN to another; not true for IP Q: why can’t we just use IP addresses for MAC addresses; i.e., no MAC addresses?? LANs designed for all network layer protocols, not just IP IP address will have to be stored/reconfigured to the adapter every time the adapter/computer is moved Q: Why can’t we process/check frames at network layer instead?? Overhead; each and every frame will be processed (including those destined to others) Chapter 5, slide: 20 ECE/CS 372 – introduction to computer networks Lecture 13 Announcements: Lab 3 is due now Lab 4 and Assignment 4 are posted Assignment 4 is due next Thursday Lab 4 is due the following Tuesday Credit for lecture slides to Professor Bechir Hamdaoui Adapted from Jim Kurose & Keith Ross (original copyright) Chapter 5, slide: 21 Link Layer 1 Error detection and correction 2 Link-layer Addressing 3 Multiple access protocols 4 Ethernet Chapter 5, slide: 22 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 party (shared air, acoustical) Chapter 5, slide: 23 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: 24 Ideal Multiple Access Protocol Broadcast channel of rate R bps 1. when one node wants to transmit, it can send at rate R. 2. when M nodes want to transmit, each can send at average rate R/M 3. fully decentralized: no special node to coordinate transmissions no synchronization of clocks, slots 4. simple Chapter 5, slide: 25 MAC Protocols: a taxonomy Three broad classes: Channel Partitioning divide channel into smaller “pieces” (time slots, frequency, code) allocate piece to node for exclusive use “Taking turns” nodes take turns, but nodes with more to send can take longer turns Random Access channel not divided, allow collisions need to know how to “recover” from collisions Chapter 5, slide: 26 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: 27 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 frames, but frequency FDM cable frequency bands bands 2,5,6 idle Chapter 5, slide: 28 “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: 29 “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: 30 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: 31 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: 32 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: 33 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 a given node has success in a slot ? p(1-p)N-1 prob that any node has a success ? Np(1-p)N-1 Efficiency = Np(1-p)N-1 Chapter 5, slide: 34 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: 35 Pure (unslotted) ALOHA unslotted Aloha: simpler, no synchronization when frame first arrives transmit immediately collision probability increases: frame sent at t0 collides with other frames sent in [t0-1,t0+1] Chapter 5, slide: 36 Pure Aloha efficiency P(success by given node) = P(node transmits) x P(no other node transmits in [t0-1,t0] x P(no other node transmits in [t0,t0+1] = p . (1-p)N-1 . (1-p)N-1 = p . (1-p)2(N-1) … choosing optimum p and then letting N -> infinity ... = 1/(2e) = .18 (to be derived in homework problem) even worse than slotted Aloha! Chapter 5, slide: 37 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: 38 CSMA collisions spatial layout of nodes collisions can still occur: Node B’s transmission collides with Node D’s transmission collision is a waste! A cannot hear B’s signal C cannot hear D’s signal note: role of distance & propagation delay in collision likelihood -Longer distances => weaker signals => collision may be recovered - Longer delays => collision may be avoided Chapter 5, slide: 39 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 CSMA/CD: (CSMA w/ Collision Detection) collisions detectable colliding transmissions aborted reducing channel wastage Chapter 5, slide: 40 CSMA/CD collision detection Chapter 5, slide: 41 Link Layer 1 Error detection and correction 2 Link-layer addressing 3 Multiple access protocols 4 Ethernet Chapter 5, slide: 42 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) switch bus: coaxial cable star Chapter 5, slide: 43 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: 44 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: 45 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: 46 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: 47 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 estimate 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 mth collision, choose K from {0,1,2,…,2m-1} Then, delay transmission until K· 512 bit times Chapter 5, slide: 48 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/107 = 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 microseconds Q4: at what time does A begin retransmission? [496 (bus becomes idle) + 96]x0.1 (bit time)= 59.2 microsecond Chapter 5, slide: 49 Distance L (bits) A R (bps) d (m), s (m/s) B A and B are connected via an Ethernet link of R bps A and B are separated by distance d meters Speed of propagation is s meter/second Length of each frame is L bits Suppose A starts transmitting a frame, and before it finishes, B starts also Q1: can A finish transmitting before it detects that B starts transmitting? Basically, is it possible for A not to detect collision? Answer: yes- if frame is not long enough, A can’t detect collision Q1: find relationship between L, R, s, and d, so A can detect collision? Hints: 1. B can’t send if medium is busy: listen-before-talk policy 2. Think of worst case, when just before the first bit coming from A arrives to B, B starts sending 3. Solution is in hw4 Solution ;) Chapter 5, slide: 50