{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

EE450-Discussion7-Spring09

# EE450-Discussion7-Spring09 - Discussion#7 EE450 Sample...

This preview shows pages 1–9. Sign up to view the full content.

Discussion #7 EE450, 2/27/2009 Sample Problems: Error Detection & Control Flow Control

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
Error Detection and Correction Using FCS square6 Frame Check Sequence (FCS) refers to the redundant information (Extra Checksum Characters) added to a Frame in a communication protocol for error detection and correction. square6 The sender computes a checksum on the entire frame and sends this along. square6 The receiver computes the checksum on the frame using the same algorithm, and compares it to the received FCS. square6 It can then detect whether any data was lost or altered in transit, discard the data, and request retransmission of the corrupted frame. square6 FCS is used in Ethernet, X.25, HDLC, Frame Relay, and other data link layer protocols. square6 A cyclic redundancy check (CRC) is often used to compute the FCS. An Ethernet frame including the FCS terminating the frame
Cyclic Redundancy Check square6 Add K redundancy bits to N bits of data square6 K << N square6 e.g.: Ethernet Frame 12,000 bits – 32 bits Redundancy square6 Add k bits of redundant data to an n -bit message. square6 Represent n -bit message as an n-1 degree polynomial e.g. MSG=10011010 corresponds to M(x) = x 7 + x 4 + x 3 + x 1 , n =8 square6 Let k be the degree of some divisor polynomial G(x) e.g. G(x) = x 3 + x 2 + 1 (corresponds to 1101) K =3

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
square6 Sender wants to transmit MSG=10011010 MSG=10011010 , n =8 corresponds to M(x) = x 7 + x 4 + x 3 + x 1 Divisor=1101 , k =3 corresponds to G(x) = x 3 + x 2 + 1 square6 Multiply M(x) by x k In this example, we get: M(x).x 3 = x 10 + x 7 + x 6 + x 4 =10011010000 square6 Divide result by G(x) =1101 (Subtraction or addition is XOR in polynomial arithmetic) The remainder is E(x) = x 2 +1 = 101 square6 Send P(x) = M(x).x k + E(x) which is exactly divisible by G(x) i.e. Send 10011010000 + 101 = 10011010101, since this is exactly divisible by G(x) =1101 Sender: Example
10011010000 = = x 10 10 + x 7 + x + x 6 + x + x 4 1101 1101 = = x 3 3 + x + x 2 + 1 + 1 11111001 11111001 1101 1101 | 10011010000 10011010000 1101 1101 1001 1001 1101 1000 1000 1101 1101 1011 1011 1101 1100 1100 1101 1000 1000 1101 1101 101 Remainder = x 101 Remainder = x 2 + 1 Division

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
Example of CRC checking square6 Do the same example in Polynomial 10011010000 = 10011010000 = x 10 + x 7 + x + x 6 + x 4 1101 = 1101 = x 3 3 + x + x 3 + 1 x 7 + x 6 + x 5 5 + x 4 4 + x 3 3 + 1 Quotient = 11111001 x 3 + x 2 + 1 + 1 | x 10 + x 7 + x + x 6 6 + x + x 4 x 10 + 10 + x 9 + x 7 x 9 + x 6 + x + x 4 x 9 9 + x 8 + x + x 6 x 8 + x + x 4 x 8 + x + x 7 + x 5 x 7 + x 5 + x 4 x 7 + x + x 6 + x 4 x 6 + x + x 5 x 6 + x 5 + x 3 x 3 x 3 3 + x + x 2 + 1 x 2 + 1 Remainder = 101 + 1 Remainder = 101
Receiver square6 Divides the Received Polynomial by G(X) square6 If the remainder is not zero – Discard! square6 If zero – Assume no errors. square6 What Kind of errors can we check? square6 It depends on G(X)

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
Picking G(X) square6 Want to ensure that G(x) does not divide evenly into polynomial E(x) . square6 All single-bit errors , as long as the x K and x 0 terms have non-zero coefficients. square6 All double-bit errors , as long as G(x) has a factor with at least three terms. square6 Any odd number of errors , as long as G(x) contains the factor (x + 1) .
This is the end of the preview. Sign up to access the rest of the document.
• Spring '06
• Zahid
• Transmission Control Protocol, Error detection and correction, sliding window, Selective Repeat ARQ, Sliding Window Protocol

{[ snackBarMessage ]}