1 0

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