CS352 Link Layer - PowerPoint PPT Presentation

1 / 49
About This Presentation
Title:

CS352 Link Layer

Description:

... bit errors with only log(M) extra bits and detect double bit ... corresponding message bits. If even, place a 1 in the 20. check bit, i.e., use odd parity ... – PowerPoint PPT presentation

Number of Views:16
Avg rating:3.0/5.0
Slides: 50
Provided by: brettv4
Category:
Tags: cs352 | layer | link

less

Transcript and Presenter's Notes

Title: CS352 Link Layer


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

2
Content
  • Error detection and correction
  • MAC sub-layer
  • Ethernet
  • Token Ring

3
Error Detection and Correction
4
Error 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)

5
Parity Codes
Two Dimensional Bit Parity Detect and correct
single bit errors
Single Bit Parity Detect single bit errors
0
0
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

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

8
Hamming 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
9
Hamming 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
10
Hamming 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
11
Hamming 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
12
Hamming 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
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?

14
Using 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
15
Using 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
16
Using 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!
17
Using 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!
18
Finding the errors location
1 0 1 1 0 0 1 1 2 3 4 5 6
7
Position
19
Finding 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
20
Finding 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
21
Finding 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
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

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

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

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
26
Generating a CRCExample (contd)
Step 2 Modulo 2 divide
Remainder
27
Generating a CRCExample (contd)
Step 3 Modulo 2 subtract the remainder from S(x)
101100
- 01
101101
Checksummed Message
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.

29
Decoding a CRCExample
101101
Checksummed message (n 6)
1011
Original message (if there are
no errors)
Remainder 0 (No error detected)
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.

Remainder 1 (Error detected)
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

32
MAC sub-layer
33
What is Media
Shared Wire
Radio
Ring
34
Medium Access Sub-layer
Network Layer
Medium Access Sub-layer
Data Link Layer
Physical Layer
35
Medium 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

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

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

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

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

time
frequency bands
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

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

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

43
Reservation Protocols (contd)
  • Reservation protocol examples
  • Bit-Map Protocol
  • Binary Countdown Protocol

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

1
1
1

1



1



2
4
5
6
0
4
01234567
01234567
data frame
45
Bit-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

47
Binary 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
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

49
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
Write a Comment
User Comments (0)
About PowerShow.com