Title: CS352 Link Layer
1CS352- Link Layer
- Dept. of Computer Science
- Rutgers University
2Content
- Error detection and correction
- MAC sub-layer
- Ethernet
- Token Ring
3Error Detection and Correction
4Error Detection and Correction
- Used on many link types
- Can be used anytime you dont trust the media
- Caches ,memories, disks
- Major Algorithmic Strategies
- Parity
- 1 and 2 dimensional
- Hamming codes (Interleaved Parity Codes)
- Checksums
- Cyclic Redundancy Codes (CRC)
5Parity Codes
Two Dimensional Bit Parity Detect and correct
single bit errors
Single Bit Parity Detect single bit errors
0
0
6Hamming 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
7Calculating 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
8Hamming Code Example
1 0 1 1
Message to be sent
1 0 1 1 1 2 3 4 5 6
7 20 21 22
Position
2n check bits
9Hamming Code Example
1 0 1 1
Message to be sent
1 0 1 1 1 2 3 4 5 6
7 20 21 22
Position
2n check bits
Calculate check bits
3 21 20 0 1 1 5 22 20
1 0 1 6 22 21 1 1 0 7
22 21 20 1 1 1
10Hamming Code Example
1 0 1 1
Message to be sent
1 0 1 1 1 2 3 4 5 6
7 20 21 22
1
Starting with the 20 position Look at positions
with 1s in them Count the number of 1s in
the corresponding message bits If even, place a
1 in the 20 check bit, i.e., use odd
parity Otherwise, place a 0
Position
2n check bits
Calculate check bits
3 21 20 0 1 1 5 22 20
1 0 1 6 22 21 1 1 0 7
22 21 20 1 1 1
11Hamming Code Example
1 0 1 1
Message to be sent
1 0 1 1 1 2 3 4 5 6
7 20 21 22
1
0
Repeat with the 21 position Look at positions
those positions with 1s in them Count the
number of 1s in the corresponding message
bits If even, place a 1 in the 21 check
bit Otherwise, place a 0
Position
2n check bits
Calculate check bits
3 21 20 0 1 1 5 22 20
1 0 1 6 22 21 1 1 0 7
22 21 20 1 1 1
12Hamming Code Example
1 0 1 1
Message to be sent
1 0 1 1 1 2 3 4 5 6
7 20 21 22
1
0
1
Repeat with the 22 position Look at positions
those positions with 1s in them Count the
number of 1s in the corresponding message
bits If even, place a 1 in the 22 check
bit Otherwise, place a 0
Position
2n check bits
Calculate check bits
3 21 20 0 1 1 5 22 20
1 0 1 6 22 21 1 1 0 7
22 21 20 1 1 1
13Hamming 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?
14Using Hamming Codes to Correct Single-Bit Errors
1 0 1 1 0 0 1
Received message
1 0 1 1 0 0 1 1 2 3 4 5 6
7 20 21 22
Position
2n check bits
Calculate check bits
3 21 20 0 1 1 5 22 20
1 0 1 6 22 21 1 1 0 7
22 21 20 1 1 1
15Using Hamming Codes to Correct Single-Bit Errors
1 0 1 1 0 0 1
Received message
1 0 1 1 0 0 1 1 2 3 4 5 6
7 20 21 22
Starting with the 20 position Look at positions
with 1s in them Count the number of 1s 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.
Position
2n check bits
Calculate check bits
3 21 20 0 1 1 5 22 20
1 0 1 6 22 21 1 1 0 7
22 21 20 1 1 1
Odd parity No error in bits 1, 3, 5, 7
16Using Hamming Codes to Correct Single-Bit Errors
1 0 1 1 0 0 1
Received message
1 0 1 1 0 0 1 1 2 3 4 5 6
7 20 21 22
Repeat with the 21 position Look at positions
with 1s in them Count the number of 1s 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.
Position
2n check bits
Calculate check bits
3 21 20 0 1 1 5 22 20
1 0 1 6 22 21 1 1 0 7
22 21 20 1 1 1
Even parity ERROR in bit 2, 3, 6 or 7!
17Using Hamming Codes to Correct Single-Bit Errors
1 0 1 1 0 0 1
Received message
1 0 1 1 0 0 1 1 2 3 4 5 6
7 20 21 22
Repeat with the 22 position Look at positions
with 1s in them Count the number of 1s 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.
Position
2n check bits
Calculate check bits
3 21 20 0 1 1 5 22 20
1 0 1 6 22 21 1 1 0 7
22 21 20 1 1 1
Even parity ERROR in bit 4, 5, 6 or 7!
18Finding the errors location
1 0 1 1 0 0 1 1 2 3 4 5 6
7
Position
19Finding the errors location
1 0 1 1 0 0 1 1 2 3 4 5 6
7
Position
No error in bits 1, 3, 5, 7
20Finding the errors location
erroneous bit, change to 1
1 0 1 1 0 0 1 1 2 3 4 5 6
7
Position
Error must be in bit 6 because bits 3, 5, 7 are
correct, and all the remaining information agrees
on bit 6
ERROR in bit 2, 3, 6 or 7
ERROR in bit 4, 5, 6 or 7
21Finding the errors locationAn Easier
Alternative to the Last Slide
3 21 20 0 1 1 5 22 20
1 0 1 6 22 21 1 1 0 7
22 21 20 1 1 1
E
E
NE
6
1
1
0
E error in column NE no error in column
22Hamming 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
23CRC 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
24Cyclic 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
25Generating 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
26Generating a CRCExample (contd)
Step 2 Modulo 2 divide
Remainder
27Generating a CRCExample (contd)
Step 3 Modulo 2 subtract the remainder from S(x)
101100
- 01
101101
Checksummed Message
28Decoding 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.
29Decoding a CRCExample
101101
Checksummed message (n 6)
1011
Original message (if there are
no errors)
Remainder 0 (No error detected)
30Decoding 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.
Remainder 1 (Error detected)
31Choosing 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
32MAC sub-layer
33What is Media
Shared Wire
Radio
Ring
34Medium Access Sub-layer
Network Layer
Medium Access Sub-layer
Data Link Layer
Physical Layer
35Medium Access Sublayer (contd)
- 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
36Access Protocols
- Who gets to use the channel next?
- Fixed/Static assignment
- Demand assignment
- Contention
- Turn-Based
37Fixed 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
38Channel 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
39Channel 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
time
frequency bands
40Demand 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
41Polling
- 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
42Reservation 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
43Reservation Protocols (contd)
- Reservation protocol examples
- Bit-Map Protocol
- Binary Countdown Protocol
44Bit-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
1
1
1
1
1
2
4
5
6
0
4
01234567
01234567
data frame
45Bit-Map Protocol (contd)
- 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 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 ORd
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
47Binary Countdown (contd)
Bit Time
Host Addresses
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
48Binary 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
49Binary 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