CS352- Link Layer Dept. of Computer Science Rutgers University Content Error detection and correction MAC sub-layer Ethernet Token Ring CS352 Fall,2005 2 Error Detection and Correction Error Detection and Correction Used on many link types Can be used anytime you don’t trust the media Caches ,memories, disks Major Algorithmic Strategies: Parity 1 and 2 dimensional Hamming codes (Interleaved Parity Codes) Checksums Cyclic Redundancy Codes (CRC) CS352 Fall,2005 4 Parity Codes Single Bit Parity: Detect single bit errors Two Dimensional Bit Parity: Detect and correct single bit errors 0 CS352 Fall,2005 0 5 Hamming Codes Want to be able to correct error with less overhead than 2D parity Hamming codes correct all single bit errors with only log(M) extra bits and detect double bit errors Uses an interleaved parity scheme CS352 Fall,2005 6 Calculating a Hamming Code Procedure: Place message bits in their non-power-of-two Hamming positions Build a table listing the binary representation each each of the message bit positions Calculate the check bits CS352 Fall,2005 7 Hamming Code Example 1 0 1 1 Message to be sent: Position 2n: check bits CS352 Fall,2005 1 2 20 21 1 3 4 0 5 1 6 1 7 22 8 Hamming Code Example 1 0 1 1 Message to be sent: Position 2n: check bits 1 2 20 21 1 3 0 5 4 1 6 1 7 22 Calculate check bits: 3 5 6 7 = = = = CS352 Fall,2005 22 22 22 2 1 + 20 + 20 + 21 + + 2 1 + 20 = = = = 0 1 1 1 1 0 1 1 1 1 0 1 9 Hamming Code Example 1 0 1 1 Message to be sent: Position 2n: check bits 1 1 2 20 21 1 3 0 5 4 = = = = 22 22 22 2 1 + 20 + 20 + 21 + + 2 1 + 20 = = = = 0 1 1 1 1 7 Starting with the 20 position: Look at positions with 1’s in them 22 Calculate check bits: 3 5 6 7 1 6 1 0 1 1 1 1 0 1 Count the number of 1’s in the corresponding message bits If even, place a 1 in the 20 check bit, i.e., use odd parity Otherwise, place a 0 CS352 Fall,2005 10 Hamming Code Example 1 0 1 1 Message to be sent: Position 2n: check bits 1 1 0 2 20 21 1 3 0 5 4 = = = = 22 22 22 2 1 + 20 + 20 + 21 + + 2 1 + 20 = = = = 0 1 1 1 1 7 Repeat with the 21 position: Look at positions those positions with 1’s in them 22 Calculate check bits: 3 5 6 7 1 6 1 0 1 1 1 1 0 1 Count the number of 1’s in the corresponding message bits If even, place a 1 in the 21 check bit Otherwise, place a 0 CS352 Fall,2005 11 Hamming Code Example 1 0 1 1 Message to be sent: Position 2n: check bits 1 1 0 2 20 21 1 4 1 3 0 5 = = = = 22 22 22 2 1 + 20 + 20 + 21 + + 2 1 + 20 = = = = 0 1 1 1 1 7 Repeat with the 22 position: Look at positions those positions with 1’s in them 22 Calculate check bits: 3 5 6 7 1 6 1 0 1 1 1 1 0 1 Count the number of 1’s in the corresponding message bits If even, place a 1 in the 22 check bit Otherwise, place a 0 CS352 Fall,2005 12 Hamming Code Example Original message = 1011 Sent message = 1011011 Now, how do we check for a single-bit error in the sent message using the Hamming code? CS352 Fall,2005 13 Using Hamming Codes to Correct Single-Bit Errors Received message: Position 2n: check bits 1 0 1 1 0 0 1 1 1 0 2 20 21 1 3 1 4 0 5 0 6 1 7 22 Calculate check bits: 3 5 6 7 = = = = CS352 Fall,2005 22 22 22 2 1 + 20 + 20 + 21 + 2 1 + 20 = = = = 0 1 1 1 1 0 1 1 1 1 0 1 14 Using Hamming Codes to Correct Single-Bit Errors Received message: Position 2n: check bits 1 0 1 1 0 0 1 1 1 0 2 20 21 1 3 1 4 0 5 0 6 = = = = 22 22 22 2 1 + 20 + 20 + 21 + 2 1 + 20 = = = = 0 1 1 1 1 0 1 1 1 1 0 1 Odd parity: No error in bits 1, 3, 5, 7 CS352 Fall,2005 Starting with the 20 position: Look at positions with 1’s in them 22 Calculate check bits: 3 5 6 7 1 7 Count the number of 1’s in both the corresponding message bits and the 20 check bit and compute the parity. If even parity, there is an error in one of the four bits that were checked. 15 Using Hamming Codes to Correct Single-Bit Errors Received message: Position 2n: check bits 1 0 1 1 0 0 1 1 1 0 2 20 21 1 3 1 4 0 5 0 6 = = = = 22 22 22 2 1 + 20 + 20 + 21 + 2 1 + 20 = = = = 0 1 1 1 1 0 1 1 1 1 0 1 Even parity: ERROR in bit 2, 3, 6 or 7! CS352 Fall,2005 Repeat with the 21 position: Look at positions with 1’s in them 22 Calculate check bits: 3 5 6 7 1 7 Count the number of 1’s in both the corresponding message bits and the 21 check bit and compute the parity. If even parity, there is an error in one of the four bits that were checked. 16 Using Hamming Codes to Correct Single-Bit Errors Received message: Position 2n: check bits 1 0 1 1 0 0 1 1 1 0 2 20 21 1 3 1 4 0 5 0 6 = = = = 22 22 22 2 1 + 20 + 20 + 21 + 2 1 + 20 = = = = 0 1 1 1 1 0 1 1 1 1 0 1 Even parity: ERROR in bit 4, 5, 6 or 7! CS352 Fall,2005 Repeat with the 22 position: Look at positions with 1’s in them 22 Calculate check bits: 3 5 6 7 1 7 Count the number of 1’s in both the corresponding message bits and the 22 check bit and compute the parity. If even parity, there is an error in one of the four bits that were checked. 17 Finding the error’s location Position CS352 Fall,2005 1 1 0 2 1 3 1 4 0 5 0 6 1 7 18 Finding the error’s location Position 1 1 0 2 1 3 1 4 0 5 0 6 1 7 No error in bits 1, 3, 5, 7 CS352 Fall,2005 19 Finding the error’s location erroneous bit, change to 1 Position 1 1 0 2 1 3 1 4 0 5 ERROR in bit 2, 3, 6 or 7 ERROR in bit 4, 5, 6 or 7 CS352 Fall,2005 0 6 1 7 Error must be in bit 6 because bits 3, 5, 7 are correct, and all the remaining information agrees on bit 6 20 Finding the error’s location An Easier Alternative to the Last Slide 3 5 6 7 = = = = 22 22 22 2 1 + 20 + 20 + 21 + 2 1 + 20 = = = = 0 1 1 1 1 0 1 1 1 1 0 1 E E NE 1 1 0 =6 E = error in column NE = no error in column CS352 Fall,2005 21 Hamming Codes Hamming codes can be used to locate and correct a single-bit error If more than one bit is in error, then a Hamming code cannot correct it Hamming codes, like parity bits, are only useful on short messages CS352 Fall,2005 22 CRC Polynomial Codes Can detect errors on large chunks of data Has low overhead More robust than parity bit Requires the use of a “code polynomial” Example: x2 + 1 CS352 Fall,2005 23 Cyclic Redundancy Check Procedure: 1. Let r be the degree of the code polynomial. Append r zero bits to the end of the transmitted bit string. Call the entire bit string S(x) 2. Divide S(x) by the code polynomial using modulo 2 division. 3. Subtract the remainder from S(x) using modulo 2 subtraction. The result is the checksummed message CS352 Fall,2005 24 Generating a CRC Example 1 x x3 + 0 x x2 + 1 x x + 1 = x3 + x + 1 Message: 1011 Code Polynomial: x2 + 1 (101) Step 1: Compute S(x) r=2 S(x) = 101100 CS352 Fall,2005 25 Generating a CRC Example (cont’d) Step 2: Modulo 2 divide 1001 101 CS352 Fall,2005 101100 101 001 000 010 000 100 101 01 Remainder 26 Generating a CRC Example (cont’d) Step 3: Modulo 2 subtract the remainder from S(x) 101100 01 101101 Checksummed Message CS352 Fall,2005 27 Decoding a CRC Procedure 1. Let n be the length of the checksummed message in bits 2. Divide the checksummed message by the code polynomial using modulo 2 division. If the remainer is zero, there is no error detected. CS352 Fall,2005 28 Decoding a CRC Example 101101 Checksummed message (n = 6) 1011 Original message (if there are no errors) 1001 101 CS352 Fall,2005 101101 101 001 000 010 000 101 101 00 Remainder = 0 (No error detected) 29 Decoding a CRC Another Example When a bit error occurs, there is a large probability that it will produce a polynomial that is not an even multiple of the code polynomial, and thus errors can usually be detected. 1000 101 CS352 Fall,2005 101001 101 000 000 000 000 001 000 01 Remainder = 1 (Error detected) 30 Choosing a CRC polynomial The longer the polynomial, the smaller the probability of undetected error Common standard polynomials: (1) CRC-12: x12 + x11 + x3 + x2 + x1 + 1 (2) CRC-16: x16 + x15 + x2 + 1 (3) CRC-CCITT: x16 + x12 + x5 + 1 CS352 Fall,2005 31 MAC sub-layer What is “Media” Radio CS352 Fall,2005 Ring Shared Wire 33 Medium Access Sub-layer Network Layer Medium Access Sub-layer Data Link Layer Physical Layer CS352 Fall,2005 34 Medium Access Sublayer (cont’d) Medium access (MAC) sub-layer is not important on point-to-point links The MAC sub-layer is only used in broadcast or shared channel networks Examples: Satellite, Ethernet, Cellular CS352 Fall,2005 35 Access Protocols Who gets to use the channel next? Fixed/Static assignment Demand assignment Contention Turn-Based CS352 Fall,2005 36 Fixed Assignment Protocols Static and predetermined allocation of channel access: independent of user activity Idle users may be assigned to the channel, in which case channel capacity is wasted Examples: TDMA, FDMA CS352 Fall,2005 37 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 example: 6-station LAN, 1,3,4 have pkt, slots 2,5,6 idle CS352 Fall,2005 38 Channel Partitioning MAC protocols: FDMA FDMA: frequency division multiple access frequency bands channel spectrum divided into frequency bands each station assigned fixed frequency band unused transmission time in frequency bands go idle example: 6-station LAN, 1,3,4 have pkt, frequency bands 2,5,6 idle CS352 Fall,2005 39 Demand Assignment Protocols Allocate channel capacity to hosts on a demand basis (i.e., only to active users) Requires methods for measuring the demand for the channel Polling Reservation schemes CS352 Fall,2005 40 Polling A central controller interrogates each host and allocates channel capacity to those who need it Good for systems with: Short propagation delay Small polling messages Non-bursty traffic CS352 Fall,2005 41 Reservation Schemes Hosts independently reserve the channel for period of time Reservations are usually piggybacked on data messages passing along the channel Good for systems with : short propagation delay no central controller node non-bursty traffic CS352 Fall,2005 42 Reservation Protocols (cont’d) Reservation protocol examples: Bit-Map Protocol Binary Countdown Protocol CS352 Fall,2005 43 Bit-Map Protocol Contention and data transmission periods alternate The contention period is divided into slots, with 1 bit-wide slots for each host in the network. If a host wants to transmit a packet, it sets its contention slot equal to 1. Otherwise, it sets it to 0. The slots pass all hosts in sequence, so every host is aware of who will transmit 1 11 1 2 4 5 01234567 6 1 1 0 4 01234567 data frame CS352 Fall,2005 44 Bit-Map Protocol (cont’d) But what if there are a large number of hosts in the network? The contention period will have to grow to include them all With a large number of hosts, the contention period may be very long, leading to inefficiency CS352 Fall,2005 45 Binary Countdown Protocol During contention period, each host broadcasts its binary address one bit at a time, starting with the most significant bit bits transmitted simultaneously are boolean OR’d together Arbitration rule: If a host sent a zero bit but the boolean OR results in a one bit, the host gives up and stops sending address bits Whichever host remains after the entire address has been broadcast gets access to the medium CS352 Fall,2005 46 Binary Countdown (cont’d) Host Addresses CS352 Fall,2005 Bit Time 0 1 2 3 0 0 1 0 0 - - - 0 1 0 1 0 - - - 1 0 0 1 1 0 0 - 1 0 1 0 1 0 1 0 47 Binary Countdown: Fairness Stations with the highest addresses will always win. This is good if you want to implement priority, but bad if you want to give all hosts fair access to the channel Used in CAN-bus networks (cars) Solution: Change the address of a host after a successful transmission CS352 Fall,2005 48 Binary Countdown: Permuting Addresses After host A successful transmission, all hosts with addresses less than host A add one to their address, improving their priority Host A changes its address to zero, giving it the lowest priority CS352 Fall,2005 49
© Copyright 2026 Paperzz