Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS352- Link Layer Dept. of Computer Science Rutgers University.

Similar presentations


Presentation on theme: "CS352- Link Layer Dept. of Computer Science Rutgers University."— Presentation transcript:

1 CS352- Link Layer Dept. of Computer Science Rutgers University

2 CS352 Fall,20052 Content Error detection and correction MAC sub-layer Ethernet Token Ring

3 Error Detection and Correction

4 CS352 Fall,20054 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)

5 CS352 Fall,20055 Parity Codes Single Bit Parity: Detect single bit errors Two Dimensional Bit Parity: Detect and correct single bit errors 0 0

6 CS352 Fall,20056 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

7 CS352 Fall,20057 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

8 CS352 Fall,20058 Hamming Code Example Message to be sent: 1 0 1 1 1 2 3 4 5 6 7 2 0 2 1 2 2 2 n : check bits Position

9 CS352 Fall,20059 Hamming Code Example Calculate check bits: 3 = 2 1 + 2 0 = 0 1 1 5 = 2 2 + 2 0 = 1 0 1 6 = 2 2 + 2 1 + = 1 1 0 7 = 2 2 + 2 1 + 2 0 = 1 1 1 Message to be sent: 1 0 1 1 1 2 3 4 5 6 7 2 0 2 1 2 2 2 n : check bits Position

10 CS352 Fall,200510 1 Starting with the 2 0 position: Look at positions with 1’s in them Count the number of 1’s in the corresponding message bits If even, place a 1 in the 2 0 check bit, i.e., use odd parity Otherwise, place a 0 Calculate check bits: 3 = 2 1 + 2 0 = 0 1 1 5 = 2 2 + 2 0 = 1 0 1 6 = 2 2 + 2 1 + = 1 1 0 7 = 2 2 + 2 1 + 2 0 = 1 1 1 Message to be sent: 1 0 1 1 1 2 3 4 5 6 7 2 0 2 1 2 2 2 n : check bits Position Hamming Code Example

11 CS352 Fall,200511 Repeat with the 2 1 position: Look at positions those positions with 1’s in them Count the number of 1’s in the corresponding message bits If even, place a 1 in the 2 1 check bit Otherwise, place a 0 10 Calculate check bits: 3 = 2 1 + 2 0 = 0 1 1 5 = 2 2 + 2 0 = 1 0 1 6 = 2 2 + 2 1 + = 1 1 0 7 = 2 2 + 2 1 + 2 0 = 1 1 1 Message to be sent: 1 0 1 1 1 2 3 4 5 6 7 2 0 2 1 2 2 2 n : check bits Position Hamming Code Example

12 CS352 Fall,200512 10 Repeat with the 2 2 position: Look at positions those positions with 1’s in them Count the number of 1’s in the corresponding message bits If even, place a 1 in the 2 2 check bit Otherwise, place a 0 1 Calculate check bits: 3 = 2 1 + 2 0 = 0 1 1 5 = 2 2 + 2 0 = 1 0 1 6 = 2 2 + 2 1 + = 1 1 0 7 = 2 2 + 2 1 + 2 0 = 1 1 1 Message to be sent: 1 0 1 1 1 2 3 4 5 6 7 2 0 2 1 2 2 2 n : check bits Position Hamming Code Example

13 CS352 Fall,200513 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?

14 CS352 Fall,200514 Using Hamming Codes to Correct Single-Bit Errors Received message: 1 0 1 1 0 0 1 2 n : check bits Calculate check bits: 3 = 2 1 + 2 0 = 0 1 1 5 = 2 2 + 2 0 = 1 0 1 6 = 2 2 + 2 1 = 1 1 0 7 = 2 2 + 2 1 + 2 0 = 1 1 1 1 0 1 1 0 0 1 1 2 3 4 5 6 7 2 0 2 1 2 2 Position

15 CS352 Fall,200515 Starting with the 2 0 position: Look at positions with 1’s in them Count the number of 1’s in both the corresponding message bits and the 2 0 check bit and compute the parity. If even parity, there is an error in one of the four bits that were checked. Odd parity: No error in bits 1, 3, 5, 7 Received message: 1 0 1 1 0 0 1 2 n : check bits Calculate check bits: 3 = 2 1 + 2 0 = 0 1 1 5 = 2 2 + 2 0 = 1 0 1 6 = 2 2 + 2 1 = 1 1 0 7 = 2 2 + 2 1 + 2 0 = 1 1 1 1 0 1 1 0 0 1 1 2 3 4 5 6 7 2 0 2 1 2 2 Position Using Hamming Codes to Correct Single-Bit Errors

16 CS352 Fall,200516 Repeat with the 2 1 position: Look at positions with 1’s in them Count the number of 1’s in both the corresponding message bits and the 2 1 check bit and compute the parity. If even parity, there is an error in one of the four bits that were checked. Even parity: ERROR in bit 2, 3, 6 or 7! Received message: 1 0 1 1 0 0 1 2 n : check bits Calculate check bits: 3 = 2 1 + 2 0 = 0 1 1 5 = 2 2 + 2 0 = 1 0 1 6 = 2 2 + 2 1 = 1 1 0 7 = 2 2 + 2 1 + 2 0 = 1 1 1 1 0 1 1 0 0 1 1 2 3 4 5 6 7 2 0 2 1 2 2 Position Using Hamming Codes to Correct Single-Bit Errors

17 CS352 Fall,200517 Repeat with the 2 2 position: Look at positions with 1’s in them Count the number of 1’s in both the corresponding message bits and the 2 2 check bit and compute the parity. If even parity, there is an error in one of the four bits that were checked. Even parity: ERROR in bit 4, 5, 6 or 7! Received message: 1 0 1 1 0 0 1 2 n : check bits Calculate check bits: 3 = 2 1 + 2 0 = 0 1 1 5 = 2 2 + 2 0 = 1 0 1 6 = 2 2 + 2 1 = 1 1 0 7 = 2 2 + 2 1 + 2 0 = 1 1 1 1 0 1 1 0 0 1 1 2 3 4 5 6 7 2 0 2 1 2 2 Position Using Hamming Codes to Correct Single-Bit Errors

18 CS352 Fall,200518 1 0 1 1 0 0 1 1 2 3 4 5 6 7 Position Finding the error’s location

19 CS352 Fall,200519 No error in bits 1, 3, 5, 7 1 0 1 1 0 0 1 1 2 3 4 5 6 7 Position Finding the error’s location

20 CS352 Fall,200520 ERROR in bit 2, 3, 6 or 7 ERROR in bit 4, 5, 6 or 7 Error must be in bit 6 because bits 3, 5, 7 are correct, and all the remaining information agrees on bit 6 erroneous bit, change to 1 1 0 1 1 0 0 1 1 2 3 4 5 6 7 Position Finding the error’s location

21 CS352 Fall,200521 Finding the error’s location An Easier Alternative to the Last Slide 3 = 2 1 + 2 0 = 0 1 1 5 = 2 2 + 2 0 = 1 0 1 6 = 2 2 + 2 1 = 1 1 0 7 = 2 2 + 2 1 + 2 0 = 1 1 1 EENE 110 = 6 E = error in column NE = no error in column

22 CS352 Fall,200522 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

23 CS352 Fall,200523 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: x 2 + 1

24 CS352 Fall,200524 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

25 CS352 Fall,200525 Generating a CRC Example Message: 1011 1 x x 3 + 0 x x 2 + 1 x x + 1 = x 3 + x + 1 Code Polynomial: x 2 + 1 (101) Step 1: Compute S(x) r = 2 S(x) = 101100

26 CS352 Fall,200526 Generating a CRC Example (cont’d) Step 2: Modulo 2 divide 101100101 001 000 010 000 100 101 01 1001 Remainder

27 CS352 Fall,200527 Generating a CRC Example (cont’d) Step 3: Modulo 2 subtract the remainder from S(x) 101100 - 01 101101 Checksummed Message

28 CS352 Fall,200528 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.

29 CS352 Fall,200529 Decoding a CRC Example 101101 Checksummed message ( n = 6) 1011 Original message (if there are no errors) 101101101 001 000 010 000 101 00 1001 Remainder = 0 (No error detected)

30 CS352 Fall,200530 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. 101001101 000 001 000 01 1000 Remainder = 1 (Error detected)

31 CS352 Fall,200531 Choosing a CRC polynomial The longer the polynomial, the smaller the probability of undetected error Common standard polynomials: (1) CRC-12: x 12 + x 11 + x 3 + x 2 + x 1 + 1 (2) CRC-16: x 16 + x 15 + x 2 + 1 (3) CRC-CCITT: x 16 + x 12 + x 5 + 1

32 MAC sub-layer

33 CS352 Fall,200533 What is “Media” RadioRing Shared Wire

34 CS352 Fall,200534 Medium Access Sub-layer Network Layer Data Link Layer Physical Layer Medium Access Sub-layer

35 CS352 Fall,200535 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

36 CS352 Fall,200536 Access Protocols Who gets to use the channel next? Fixed/Static assignment Demand assignment Contention Turn-Based

37 CS352 Fall,200537 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

38 CS352 Fall,200538 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

39 CS352 Fall,200539 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 example: 6-station LAN, 1,3,4 have pkt, frequency bands 2,5,6 idle frequency bands time

40 CS352 Fall,200540 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

41 CS352 Fall,200541 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

42 CS352 Fall,200542 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

43 CS352 Fall,200543 Reservation Protocols (cont’d) Reservation protocol examples: Bit-Map Protocol Binary Countdown Protocol

44 CS352 Fall,200544 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 111 1 1 2456 01234567 04 data frame

45 CS352 Fall,200545 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

46 CS352 Fall,200546 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

47 CS352 Fall,200547 Binary Countdown (cont’d) 0 0 1 0 0 1 1 0 0 1 1 0 0 - - - 1 0 0 - 1 0 0 1 2 3 Bit Time Host Addresses

48 CS352 Fall,200548 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

49 CS352 Fall,200549 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


Download ppt "CS352- Link Layer Dept. of Computer Science Rutgers University."

Similar presentations


Ads by Google