cs352- link layer dept. of computer science rutgers university
Post on 22-Dec-2015
219 Views
Preview:
TRANSCRIPT
CS352 Fall,2005 4
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 5
Parity Codes
Single Bit Parity:Detect single bit errors
Two Dimensional Bit Parity:Detect and correct single bit errors
0 0
CS352 Fall,2005 6
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 7
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 8
Hamming Code Example
Message to be sent: 1 0 1 1
1 0 1 11 2 3 4 5 6 7
20 21 222n: check bits
Position
CS352 Fall,2005 9
Hamming Code Example
Calculate check bits:
3 = 21 + 20 = 0 1 15 = 22 + 20 = 1 0 16 = 22 + 21 + = 1 1 07 = 22 + 21 + 20 = 1 1 1
Message to be sent: 1 0 1 1
1 0 1 11 2 3 4 5 6 7
20 21 222n: check bits
Position
CS352 Fall,2005 10
1Starting with the 20 position:
Look at positions with 1’s in them
Count the number of 1’s in thecorresponding message bits
If even, place a 1 in the 20
check bit, i.e., use odd parity
Otherwise, place a 0
Calculate check bits:
3 = 21 + 20 = 0 1 15 = 22 + 20 = 1 0 16 = 22 + 21 + = 1 1 07 = 22 + 21 + 20 = 1 1 1
Message to be sent: 1 0 1 1
1 0 1 11 2 3 4 5 6 7
20 21 222n: check bits
Position
Hamming Code Example
CS352 Fall,2005 11
Repeat with the 21 position:
Look at positions those positions with 1’s in them
Count the number of 1’s in thecorresponding message bits
If even, place a 1 in the 21
check bit
Otherwise, place a 0
1 0
Calculate check bits:
3 = 21 + 20 = 0 1 15 = 22 + 20 = 1 0 16 = 22 + 21 + = 1 1 07 = 22 + 21 + 20 = 1 1 1
Message to be sent: 1 0 1 1
1 0 1 11 2 3 4 5 6 7
20 21 222n: check bits
Position
Hamming Code Example
CS352 Fall,2005 12
1 0Repeat with the 22 position:
Look at positions those positions with 1’s in them
Count the number of 1’s in thecorresponding message bits
If even, place a 1 in the 22
check bit
Otherwise, place a 0
1
Calculate check bits:
3 = 21 + 20 = 0 1 15 = 22 + 20 = 1 0 16 = 22 + 21 + = 1 1 07 = 22 + 21 + 20 = 1 1 1
Message to be sent: 1 0 1 1
1 0 1 11 2 3 4 5 6 7
20 21 222n: check bits
Position
Hamming Code Example
CS352 Fall,2005 13
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 14
Using Hamming Codes to Correct Single-Bit Errors
Received message: 1 0 1 1 0 0 1
2n: check bits
Calculate check bits:
3 = 21 + 20 = 0 1 15 = 22 + 20 = 1 0 16 = 22 + 21 = 1 1 07 = 22 + 21 + 20 = 1 1 1
1 0 1 1 0 0 11 2 3 4 5 6 7
20 21 22
Position
CS352 Fall,2005 15
Starting with the 20 position:
Look at positions with 1’s in them
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 errorin one of the four bits that werechecked. Odd parity: No error in bits 1, 3, 5, 7
Received message: 1 0 1 1 0 0 1
2n: check bits
Calculate check bits:
3 = 21 + 20 = 0 1 15 = 22 + 20 = 1 0 16 = 22 + 21 = 1 1 07 = 22 + 21 + 20 = 1 1 1
1 0 1 1 0 0 11 2 3 4 5 6 7
20 21 22
Position
Using Hamming Codes to Correct Single-Bit Errors
CS352 Fall,2005 16
Repeat with the 21 position:
Look at positions with 1’s in them
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 errorin one of the four bits that werechecked. Even parity: ERROR in bit 2, 3, 6 or 7!
Received message: 1 0 1 1 0 0 1
2n: check bits
Calculate check bits:
3 = 21 + 20 = 0 1 15 = 22 + 20 = 1 0 16 = 22 + 21 = 1 1 07 = 22 + 21 + 20 = 1 1 1
1 0 1 1 0 0 11 2 3 4 5 6 7
20 21 22
Position
Using Hamming Codes to Correct Single-Bit Errors
CS352 Fall,2005 17
Repeat with the 22 position:
Look at positions with 1’s in them
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 errorin one of the four bits that werechecked. Even parity: ERROR in bit 4, 5, 6 or 7!
Received message: 1 0 1 1 0 0 1
2n: check bits
Calculate check bits:
3 = 21 + 20 = 0 1 15 = 22 + 20 = 1 0 16 = 22 + 21 = 1 1 07 = 22 + 21 + 20 = 1 1 1
1 0 1 1 0 0 11 2 3 4 5 6 7
20 21 22
Position
Using Hamming Codes to Correct Single-Bit Errors
CS352 Fall,2005 19
No error in bits 1, 3, 5, 7
1 0 1 1 0 0 11 2 3 4 5 6 7Position
Finding the error’s location
CS352 Fall,2005 20
ERROR in bit 2, 3, 6 or 7
ERROR in bit 4, 5, 6 or 7
Error must be in bit 6because bits 3, 5, 7are correct, and all theremaining informationagrees on bit 6
erroneous bit, change to 1
1 0 1 1 0 0 11 2 3 4 5 6 7Position
Finding the error’s location
CS352 Fall,2005 21
Finding the error’s locationAn Easier Alternative to the Last Slide
3 = 21 + 20 = 0 1 15 = 22 + 20 = 1 0 16 = 22 + 21 = 1 1 07 = 22 + 21 + 20 = 1 1 1
E E NE
1 1 0 = 6 E = error in columnNE = no error in column
CS352 Fall,2005 22
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 23
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 24
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 25
Generating a CRCExample
Message: 1011 1 x x3 + 0 x x2 + 1 x x + 1 = x3 + x + 1
Code Polynomial: x2 + 1 (101)
Step 1: Compute S(x)
r = 2
S(x) = 101100
CS352 Fall,2005 26
Generating a CRCExample (cont’d)
Step 2: Modulo 2 divide
101100101101
001 000 010 000 100 101 01
1001
Remainder
CS352 Fall,2005 27
Generating a CRCExample (cont’d)
Step 3: Modulo 2 subtract the remainder from S(x)
101100- 01101101
Checksummed Message
CS352 Fall,2005 28
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 29
Decoding a CRCExample
101101 Checksummed message (n = 6)
1011 Original message (if there are no errors)
101101101101
001 000 010 000 101 101 00
1001
Remainder = 0(No error detected)
CS352 Fall,2005 30
Decoding a CRCAnother 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.
101001101101
000 000 000 000 001 000 01
1000
Remainder = 1(Error detected)
CS352 Fall,2005 31
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 34
Medium Access Sub-layer
Network Layer
Data Link Layer
Physical Layer
Medium Access Sub-layer
CS352 Fall,2005 35
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 36
Access Protocols
Who gets to use the channel next? Fixed/Static assignment Demand assignment Contention Turn-Based
CS352 Fall,2005 37
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 38
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 39
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
frequ
ency
bands time
CS352 Fall,2005 40
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 41
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 42
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 43
Reservation Protocols (cont’d)
Reservation protocol examples: Bit-Map Protocol Binary Countdown Protocol
CS352 Fall,2005 44
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 1 1 2 4 5 6
01234567 01234567
0 4
data frame
CS352 Fall,2005 45
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 46
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 47
Binary Countdown (cont’d)
0 0 1 0
0 1 0 1
1 0 0 1
1 0 1 0
0 - - -
0 - - -
1 0 0 -
1 0 1 0
0 1 2 3
Bit TimeHostAddresses
CS352 Fall,2005 48
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
top related