EECS 122: Encoding, Framing, Error Detection and Recovery - PowerPoint PPT Presentation

About This Presentation
Title:

EECS 122: Encoding, Framing, Error Detection and Recovery

Description:

Department of Electrical Engineering and Computer Sciences. University of California, Berkeley ... Error Detection (and Correction) Problem: detect bit errors ... – PowerPoint PPT presentation

Number of Views:120
Avg rating:3.0/5.0
Slides: 37
Provided by: sto2
Category:

less

Transcript and Presenter's Notes

Title: EECS 122: Encoding, Framing, Error Detection and Recovery


1
EECS 122 Encoding, Framing, Error Detection and
Recovery
  • Computer Science Division
  • Department of Electrical Engineering and Computer
    Sciences
  • University of California, Berkeley
  • Berkeley, CA 94720-1776

2
Overview
  • Encoding
  • Framing
  • Error detection correction

3
Encoding
  • Goal send bits from one node to another node on
    the same physical media
  • This service is provided by the physical layer
  • Problem specify a robust and efficient encoding
    scheme to achieve this goal

Signal
Adaptor
Adaptor
Adaptor convert bits into physical signal and
physical signal back into bits
4
Assumptions
  • Use two discrete signals, high and low, to encode
    0 and 1
  • The transmission is synchronous, i.e., there is a
    clock used to sample the signal
  • In general, the duration of one bit is equal to
    one or two clock ticks

5
Non-Return to Zero (NRZ)
  • 1 ? high signal 0 ? low signal
  • Disadvantages when there is a long sequence of
    1s or 0s
  • Sensitive to clock skew, i.e., difficult to do
    clock recovery
  • Difficult to interpret 0s and 1s (baseline
    wander)

0
0
1
0
1
0
1
1
0
Clock
6
Non-Return to Zero Inverted (NRZI)
  • 1 ? make transition 0 ? stay at the same level
  • Solve previous problems for long sequences of
    1s, but not for 0s

0
0
1
0
1
0
1
1
0
Clock
7
Manchester
  • 1 ? high-to-low transition 0 ? low-to-high
    transition
  • Addresses clock recovery and baseline wander
    problems
  • Disadvantage needs a clock that is twice as fast
    as the transmission rate

0
0
1
0
1
0
1
1
0
Clock
8
4-bit/5-bit
  • Goal address inefficiency of Manchester
    encoding, while avoiding long periods of low or
    high signals
  • Solution
  • Use 5 bits to encode every sequence of four bits
    such that no 5 bit code has more than one leading
    0 and two trailing 0s
  • Use NRZI to encode the 5 bit codes

4-bit 5-bit
4-bit 5-bit
  • 0000 11110
  • 0001 01001
  • 0010 10100
  • 0011 10101
  • 0100 01010
  • 0101 01011
  • 0110 01110
  • 0111 01111
  • 1000 10010
  • 1001 10011
  • 1010 10110
  • 1011 10111
  • 1100 11010
  • 1101 11011
  • 1110 11100
  • 1111 11101

9
Overview
  • Encoding
  • Framing
  • Error detection Correction

10
Framing
  • Goal send a block of bits (frames) between nodes
    connected on the same physical media
  • This service is provided by the data link layer
  • Use a special byte (bit sequence) to mark the
    beginning (and the end) of the frame
  • Problem what happens if this sequence appears in
    the data payload?

11
Byte-Oriented Protocols Sentinel Approach
8
8
Text (Data)
STX
ETX
  • STX start of text
  • ETX end of text
  • Problem what if ETX appears in the data portion
    of the frame?
  • Solution
  • If ETX appears in the data, introduce a special
    character DLE (Data Link Escape) before it
  • If DLE appears in the text, introduce another DLE
    character before it
  • Protocol examples
  • BISYNC, PPP, DDCMP

12
Byte-Oriented Protocols Byte Counting Approach
  • Sender
  • Insert the length of the data (in bytes) at the
    beginning of the frame, i.e., in the frame header
  • Receiver
  • Extract this length and decrement it every time a
    byte is read when this counter becomes zero, we
    are done

13
Bit-Oriented Protocols
8
8
Start sequence
End sequence
Text (Data)
  • Both start and end sequence can be the same
  • E.g., 01111110 in HDLC (High-level Data Link
    Protocol)
  • Sender inserts a 0 after five consecutive 1s
  • Receiver when it sees five 1s makes decision on
    the next two bits
  • if next bit 0 (this is a stuffed bit), remove it
  • if next bit 1 (sixth 1 in a row), look at the
    next bit
  • If 0 this is end-of-frame (receiver has seen
    01111110)
  • If 1 this is an error, discard the frame
    (receiver has seen 01111111)

14
Clock-Based Framing (SONET)
  • SONET (Synchronous Optical NETwork)
  • Example SONET ST-1 51.84 Mbps

15
Clock-Based Framing (SONET)
  • First two bytes of each frame contain a special
    bit pattern that allows to determine where the
    frame starts
  • No bit-stuffing is used
  • Receiver looks for the special bit pattern every
    810 bytes
  • Size of frame 9x90 810 bytes

Data (payload)
overhead
9 rows
SONET STS-1 Frame
90 columns
16
Clock-Based Framing (SONET)
  • Details
  • Overhead bytes are encoded using NRZ
  • To avoid long sequences of 0s or 1s the payload
    is XOR-ed with a special 127-bit patter with many
    transitions from 1 to 0
  • Duration of a frame is 51.84 usec (51.84 Mbps for
    STS-1)

17
High Level View
  • Goal transmit correct information
  • Problem bits can get corrupted
  • Electrical interference, thermal noise
  • Solution
  • Detect errors
  • Recover from errors
  • Correct errors
  • Retransmission (already done this!)

18
Overview
  • Encoding
  • Framing
  • Error detection Correction

19
Error Detection (and Correction)
  • Problem detect bit errors in packets (frames)
  • Solution add extra bits to each packet
  • Goals
  • Reduce overhead, i.e., reduce the number of added
    bits
  • Increase the number and the type of bit error
    patterns that can be detected
  • Examples
  • Two-dimensional parity
  • Checksum
  • Cyclic Redundancy Check (CRC)

20
Overview
  • Encoding
  • Framing
  • Error detection Correction
  • Two-dimensional parity
  • Checksum
  • Cyclic Redundancy Check (CRC)

21
Two-dimensional Parity
  • Add one extra bit to a 7-bit code such that the
    number of 1s in the resulting 8 bits is even (or
    odd for odd parity)
  • Add a parity byte for the packet
  • Example five 7-bit character packet, even parity

0110100
1
1011010
0
0010110
1
1110101
1
1001011
0
1000110
1
22
How Many Errors Can you Detect?
  • All 1-bit errors
  • Example

0110100
1
1011010
0
0000110
1
error bit
1110101
1
1001011
0
1000110
1
23
How Many Errors Can you Detect?
  • All 2-bit errors
  • Example

0110100
1
1011010
0
0000111
1
error bits
1110101
1
1001011
0
1000110
1
odd number of 1s on columns
24
How Many Errors Can you Detect?
  • All 3-bit errors
  • Example

0110100
1
1011010
0
0000111
1
error bits
1100101
1
1001011
0
1000110
1
odd number of 1s on column
25
How Many Errors Can you Detect?
  • Most 4-bit errors
  • Example of 4-bit error that is not detected

0110100
1
1011010
0
0000111
1
error bits
1100100
1
1001011
0
1000110
1
How many errors can you correct?
26
Overview
  • Encoding
  • Framing
  • Error detection Correction
  • Two-dimensional parity
  • Checksum
  • Cyclic Redundancy Check (CRC)

27
Checksum
  • Sender add all words of a packet and append the
    result (checksum) to the packet
  • Receiver add all words of a packet and compare
    the result with the checksum
  • Can detect all 1-bit errors
  • Example Internet checksum
  • Use 1s complement addition

28
1s Complement Revisited
  • Negative number x is x with all bits inverted
  • When two numbers are added, the carry-on is added
    to the result
  • Example -15 16 assume 8-bit representation

15 00001111 ? -15 11110000

16 00010000
29
Overview
  • Encoding
  • Framing
  • Error detection Correction
  • Two-dimensional parity
  • Checksum
  • Cyclic Redundancy Check (CRC)

30
Cyclic Redundancy Check (CRC)
  • Represent a (n1)-bit message as an n-degree
    polynomial M(x)
  • E.g., 10101101 ? M(x) x7 x5 x3 x2 x0
  • Choose k-degree polynomial C(x) as divisor
  • Compute reminder R(x) of M(x)xk / C(x), i.e.,
    compute A(x) such that
  • M(x)xk A(x)C(x) R(x), where degree(R(x)) lt
    k
  • Let
  • T(x) M(x)xk R(x) A(x)C(x)
  • Then
  • T(x) is divisible by C(x)
  • First n coefficients of T(x) represent M(x)

31
Cyclic Redundancy Check (CRC)
  • Sender
  • Compute and send T(x), i.e., the coefficients of
    T(x)
  • Receiver
  • Let T(x) be the (nk)-degree polynomial
    generated from the received message
  • If C(x) divides T(x) ? no errors otherwise
    errors
  • Note all computations are modulo 2

32
Arithmetic Modulo 2
  • Like binary arithmetic but without
    borrowing/carrying from/to adjacent bits
  • Examples
  • Addition and subtraction in binary arithmetic
    modulo 2 is equivalent to XOR

101 010 111
101 001 100
1011 0111 1100
1011 - 0111 1100
101 - 010 111
101 - 001 100
a b a b
0 0 0
0 1 1
1 0 1
1 1 0
33
Some Polynomial Arithmetic Modulo 2 Properties
  • If C(x) divides B(x), then degree(B(x)) gt
    degree(C(x))
  • Subtracting/adding C(x) from/to B(x) modulo 2 is
    equivalent to performing an XOR on each pair of
    matching coefficients of C(x) and B(x)
  • E.g.

B(x) x7 x5 x3 x2 x0
(10101101)
C(x) x3 x1
x0 (00001011)
B(x) - C(x) x7 x5 x2 x1
(10100110)
34
Example (Sender Operation)
  • Send packet 110111, i.e., M(X) x5x4x2x1
  • Choose C(x) 101 (k 2)
  • M(x)xK (x5x4x2x1)x2 x7x6x3x2 ?
    11011100
  • Compute the reminder R(x) of M(x)xk / C(x)
  • Compute T(x) M(x)xk - R(x) ? 11011100 xor 1
    11011101
  • Send T(x)

101) 11011100 101 111
101 101 101
100 101
1
35
Example (Receiver Operation)
  • Assume T(x) 11011101
  • C(x) divides T(x) ? no errors
  • Assume T(x) 11001101
  • Reminder R(x) 1 ? error!
  • Note an error is not detected iff C(x) divides
    T(x) T(x)

36
CRC Properties
  • Detect all single-bit errors if coefficients of
    xk and x0 of C(x) are one
  • Detect all double-bit errors, if C(x) has a
    factor with at least three terms
  • Detect all burst of errors smaller than k bits
  • Detect all number of odd errors, if C(x) contains
    factor (x1)
Write a Comment
User Comments (0)
About PowerShow.com