Chapter 6: Digital Data Communications Techniques

Slides:



Advertisements
Similar presentations
Data and Computer Communications Digital Data Communications Techniques.
Advertisements

Introduction to Information Technologies
Data and Computer Communications
Error Detection and Correction
Transmission Errors Error Detection and Correction
COE 341: Data & Computer Communications (T081) Dr. Marwan Abu-Amara Chapter 6: Digital Data Communications Techniques.
Data and Computer Communications Eighth Edition by William Stallings Lecture slides by Lawrie Brown Chapter 6 – Digital Data Communications Techniques.
Error Detection and Correction
Coding and Error Control
Fundamentals of Computer Networks ECE 478/578 Lecture #4: Error Detection and Correction Instructor: Loukas Lazos Dept of Electrical and Computer Engineering.
Chapter 6: Digital Data Communications Techniques
PART III DATA LINK LAYER. Position of the Data-Link Layer.
Lecture 9-10: Error Detection and Correction Anders Västberg Slides are a selection from the slides from chapter 8 from:
COE 342: Data & Computer Communications (T042) Dr. Marwan Abu-Amara Chapter 6: Digital Data Communications Techniques.
1 ITC242 – Introduction to Data Communications Week 10 Topic 16 Data link control.
The OSI Reference Model
Chapter 2 : Direct Link Networks (Continued). So far... Modulation and Encoding Link layer protocols Error Detection -- Parity Check.
William Stallings Data and Computer Communications 7 th Edition (Selected slides used for lectures at Bina Nusantara University) Error Control.
William Stallings Data and Computer Communications 7th Edition Chapter 6 Digital Data Communications Techniques.
7/2/2015Errors1 Transmission errors are a way of life. In the digital world an error means that a bit value is flipped. An error can be isolated to a single.
Chapter 6: Digital Data Communications Techniques
Digital Data Communications Techniques Updated: 2/9/2009.
Error Detection and Reliable Transmission EECS 122: Lecture 24 Department of Electrical Engineering and Computer Sciences University of California Berkeley.
1/26 Chapter 6 Digital Data Communication Techniques.
Chapter 10 Error Detection and Correction
McGraw-Hill©The McGraw-Hill Companies, Inc., 2000 PART III: DATA LINK LAYER ERROR DETECTION AND CORRECTION 7.1 Chapter 10.
Data link layer: services
Part.7.1 Copyright 2007 Koren & Krishna, Morgan-Kaufman FAULT TOLERANT SYSTEMS Part 7 - Coding.
CSE331: Introduction to Networks and Security Lecture 3 Fall 2002.
William Stallings Data and Computer Communications 7th Edition
Data and Computer Communications. The Data Link Layer.
Lecture 10: Error Control Coding I Chapter 8 – Coding and Error Control From: Wireless Communications and Networks by William Stallings, Prentice Hall,
Data Link Layer - 1 Dr. Sanjay P. Ahuja, Ph.D. Fidelity National Financial Distinguished Professor of CIS School of Computing, UNF.
CS3502: Data and Computer Networks DATA LINK LAYER - 1.
1 Data Link Layer Lecture 20 Imran Ahmed University of Management & Technology.
PART III DATA LINK LAYER. Position of the Data-Link Layer.
ECS 152A 4. Communications Techniques. Asynchronous and Synchronous Transmission Timing problems require a mechanism to synchronize the transmitter and.
Error Coding Transmission process may introduce errors into a message.  Single bit errors versus burst errors Detection:  Requires a convention that.
Data and Computer Communications Eighth Edition by William Stallings Lecture slides by Lawrie Brown Chapter 6 – Digital Data Communications Techniques.
Data and Computer Communications
10.1 Chapter 10 Error Detection and Correction Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
جلسه هشتم شبکه های کامپیوتری به نــــــــــــام خدا.
Lecture 6: Framing and Error Detection-Data Link Layer Functions
Data and Computer Communications Chapter 6 – Digital Data Communications Techniques.
Data and Computer Communications by William Stallings Eighth Edition Digital Data Communications Techniques Digital Data Communications Techniques Click.
Cyclic Redundancy Check CRC Chapter CYCLIC CODES Cyclic codes are special linear block codes with one extra property. In a cyclic code, if a codeword.
Lecture 3-2: Coding and Error Control (Cont.) ECE
1 Chapter 8. Coding and Error Control Wen-Shyang Hwang KUAS EE.
EEC4113 Data Communication & Multimedia System Chapter 5: Error Control by Muhazam Mustapha, October 2011.
CS3505: DATA LINK LAYER. data link layer  phys. layer subject to errors; not reliable; and only moves information as bits, which alone are not meaningful.
Computer Science Division
Data and Computer Communications Eighth Edition by William Stallings Lecture slides by Lawrie Brown Chapter 6 – Digital Data Communications Techniques.
Computer Communication & Networks Lecture 9 Datalink Layer: Error Detection Waleed Ejaz
CSCI 465 D ata Communications and Networks Lecture 9 Martin van Bommel CSCI 465 Data Communications & Networks 1.
1 © Unitec New Zealand CRC calculation and Hammings code.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2000 PART III: DATA LINK LAYER ERROR DETECTION AND CORRECTION 7.1 Chapter 10.
1/30/ :20 PM1 Chapter 6 ─ Digital Data Communication Techniques CSE 3213 Fall 2011.
FIT1005 FIT – Monash University
Data and Computer Communications Eighth & Ninth Edition by William Stallings Chapter 6 – Digital Data Communications Techniques.
Network Layer4-1 Chapter 5: The Data Link Layer Our goals: r understand principles behind data link layer services: m error detection, correction m sharing.
Part III: Data Link Layer Error Detection and Correction
Data and Computer Communications Digital Data Communications Techniques + Error Control+ Digital Data Communications Techniques + Error Control+Multiplexing.
Coding and Error Control
Lecture 4 Error Detecting and Correcting Techniques Dr. Ghalib A. Shah
CIS 321 Data Communications & Networking
Digital data communication (Error control)
William Stallings Data and Computer Communications 7th Edition
EEC4113 Data Communication & Multimedia System Chapter 5: Error Control by Muhazam Mustapha, August 2010.
Data Link Layer. Position of the data-link layer.
Presentation transcript:

Chapter 6: Digital Data Communications Techniques COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal Chapter 6: Digital Data Communications Techniques

Where are we: Moving from Signal Transmission to Data Communication Chapter 7: Data Link: Flow and Error control Data Link Chapter 8: Improved utilization: Multiplexing Physical Layer Chapter 6: Data Communication: Synchronization, Error detection and correction Chapter 4: Transmission Media Transmission Medium Chapter 5: Encoding Signals to represent Data Chapter 3: Signals and their transmission over media, Impairments

Contents Asynchronous and Synchronous Transmission (6.1) Types of Errors (6.2) Error Detection (6.3) Parity Check Cyclic Redundancy Check (CRC)

Asynchronous and Synchronous Transmission: To communicate meaningful data serially between TX and RX, signal timing should be the same at both Timing considerations include: Rate Duration Spacing Need to synchronize RX to TX Two ways to achieve this: Asynchronous Transmission Synchronous Transmission RX needs to sample the received data at mid-points So it needs to establish: - Bit arrival time - Bit duration

Need for RX and TX Synchronization: Transmitter Receiver TX Clock RX Clock Clock drift (example): If the receiver clock drifts by 1% every sample time, For Tb = 1 msec, total drift after 50 bit intervals = 50 X 0.01 = 0.5 msec i.e. instead of sampling at the middle, the receiver will sample bit # 50 at the edge of the bit RX and TX clocks are out-of-synch  Communication Error! In general, No. of correctly sampled bits = 0.5 Tb/(n/100)Tb = 50/n, where n is the % timing error between TX and RX Two approaches for correct reception: Send only a few bits ( e.g. a character) at a time (that RX can sample correctly before losing sync)  Asynchronous Transmission Keep receiver clock synchronized with the transmitter clock  Synchronous Transmission Tb

Asynchronous (?) Transmission: Character-Level Synchronization Avoids the timing problem by NOT sending long, uninterrupted streams of bits. So data is transmitted one character at a time: Has a distinct start bit Consists of only 5 to 8 bits (so drift will not be a serious problem) Has a distinct stop bit Character is delimited (at start & end) by known signal elements: start bit – stop element Sync needs to be maintained only for the duration of a character The receiver has a new opportunity to resynchronize at the beginning of next character  Timing errors do not accumulate from character to character

Asynchronous Transmission (Min) Binary 1 Binary 1 RX waits for A character following the end of the previous character The ‘stop’ bits confirm end of character  otherwise: Framing Error Stop bits continue (idling) till next character RX “knows” how many bits To expect in a character, and keeps counting them following the ‘start’ bit S1 S2 Receive Start bit Stop element Parity bit: Even or Odd parity? S1: receiver in idling state S2: receive in receiving state

Asynchronous Transmission Framing error Erroneous detection of end/start of a character Can be caused by: Noise: (1 is the idling ‘stop’ bit) 1 1 1 1 0 1 1 1 1 1 … Incorrect timing of bit sampling due to drift of RX clock affects bit count Erroneous ‘Start’ bit due to noise

Asynchronous Transmission Errors due to lack of sync for an 8-bit system Let data rate = baud rate = 10 kbps Bit interval = 1/10k = 100 ms Assume RX’s clock is faster than TX by 6% (i.e. RX thinks the bit interval is 94 ms) RX checks mid-bit data at 47 ms and then at 94 ms intervals Bit 8 is wrongly sampled within bit 7 (bit 7 read twice!) Possibility of a framing error at the end 100 ms 94 ms (Timing for ideal sampling at RX) 47 ms Half the bit interval from the ‘start’ rising edge 893

Asynchronous Transmission: Efficiency Uses 1 start bit & 2 stop bits: (i.e. 3 non-data bits) with 8-bit characters and no parity:  Efficiency = 8/(8+3) = 72%  Overhead = 3/(8+3) = 28%

Asynchronous Transmission – Pros & Cons Advantages: Simple Cheap Good for data with large gaps (keyboard) Snags: Overhead of 2 or 3 bits per character (~20%) Timing errors accumulate for large character sizes

Synchronous Transmission: Bit-Level Synchronization Allows transmission of large blocks of data (frames) TX and RX Clocks must be synchronized to prevent timing drift Ways to achieve bit-level sync: Use a separate clock line between TX and RX Good over short distances Subject to transmission impairments over long distances Embed clock signal in data e.g. Manchester or Differential Manchester encoding Or carrier frequency for analog signals

Synchronous Frame Format Typical Frame Structure Preamble bit pattern: Indicates start of frame Postamble bit pattern: Indicates end of frame Control fields: convey control information between TX and RX Data field: data to be exchanged data field 8-bit flag control field Preamble/Postamble flags ensure frame-level synchronization

Synchronous Transmission: Efficiency Example: HDLC scheme uses a total of 48 bits for control, preamble, and postamble fields per frame: With a data block consisting of 1000 characters (8-bits each),  Efficiency = 8000/(8000+48) = 99.4%  Overhead = 48/8048 = 0.6% Higher efficiency and lower overhead compared to asynchronous

Errors in Digital Transmission Error occurs when a bit is altered between transmission and reception (0  1 or 1  0) Two types of errors: Single bit errors One bit altered Isolated incidence, adjacent bits not affected Typically caused by white noise Burst errors Contiguous sequence of B bits in which first, last, and any number of intermediate bits are in error Caused by impulse noise or fading (in wireless) More common, and more difficult to handle Effect is greater at higher data rates What to do about these errors: Detect them (at least, so we can ask TX to retransmit!) Correct them (if we can)

Error Detection & Correction: Motivation Assume NO error detection or correction: Number of erroneous frames received would be unacceptable Hence, for a frame of F bits, Prob [frame is correct] = (1-BER)F : Decreases with increasing BER & F Prob [frame is erroneous] = 1 - (1-BER)F = Frame Error Rate (FER) 1 0 1 0 1 0 0 0 1 0 1 0 … 0 0 1 1 2 3 4 … … F-2 F-1 F A frame of F bits All bits must be Correct! Prob [1st bit in error] = BER Prob [1st bit correct] = 1-BER Prob [2nd bit in error] = BER Prob [2nd bit correct] = 1-BER Prob [Fth bit in error] = BER Prob [Fth bit correct] = 1-BER All bits must be Correct!

Motivation for Error Detection & Correction: Example ISDN specifies a BER = 10-6 for a 64kbps channel Frame size F = 1000 bits What is the FER? FER = 1 – (1 – BER)F = 1 – (0.999999)1000 = 10-3 Assume a continuously used channel How many frames are transmitted in one day Number of frames/day = (64,000/1000) × 24 × 3600 = 5.5296 × 106 How many erroneous frames/day? 5.5296 × 106 × 10-3 = 5.5296 × 103 Typical requirement: Maximum of 1 erroneous frame /day! i.e. frame error rate is too high!  We definitely need error detection & correction

Frame Error Probabilities: 1 0 1 0 1 0 0 0 1 0 1 0 … 0 0 1 P1 1 - P1 1000 Correct Erroneous With an error detection facility 900 100 Errors, Undetected Errors, Detected P3 P2 20 P1 + P2 + P3 = 1 Without error detection facility: P3 = 0, and: P2 = 1 – P1 80

Error Detection Techniques Two main error detection techniques: Parity Check Cyclic Redundancy Check (CRC) Both techniques use additional bits that are added to the “payload data” by the transmitter for the purpose of error detection

Error Detection: Implementation Mismatch: Error Detected

Parity Check Simplest error-detection scheme Appending one extra bit: Even Parity: Will append “1” such that the total number of 1’s is even Odd Parity: Will append “1” such that the total number of 1’s is odd Example: If an even-parity is used, RX will check if the total number of 1’s is even If it is not  error occurred Note: even number of bit errors go undetected

Cyclic Redundancy Check (CRC) Burst errors will most likely go undetected by a simple parity check scheme Instead, a more elaborate technique called Cyclic Redundancy Check (CRC) is typically implemented CRC appends redundant bits to the frame trailer called Frame Check Sequence (FCS) FCS is later utilized at RX for error detection In a given frame containing n bits, we define: k = the number of original data bits (n – k) = the number of bits in the FCS field So, that the total frame length is k + (n – k) = n bits D (k) FCS (n-k) T(n) 1 0 1 0 0 0 1 1 0 1 01110

CRC Generation CRC generation is all about finding the FCS given the data (D) and a divisor (P) There are three equivalent ways to see how the CRC code is generated: Modulo-2 Arithmetic Method Polynomial Method Digital Logic Method D (k) FCS or F (n-k) T (n) 1 0 1 0 0 0 1 1 0 1 01110 110101 P (n-k+1)

Modulo 2 Arithmetic Binary arithmetic without carry Equivalent to XOR operation i.e: 0  0 = 0; 1  0 = 1; 0  1 = 1; 1  1 = 0 1  0 = 0; 0  1 = 0; 1  1 = 1 Examples: 1010 +1010 ___________ 0000

CRC Error Detection Process Given k-bit data (D), the TX generates an (n – k)-bit FCS field (F) such that the total n-bit frame (T) is exactly divisible by some (n-k+1)-bit predetermined devisor (P) (i.e. gives a zero remainder) In general, the received frame may or may not be equal to the sent frame Let the received frame be (T’) In error-free transmission T’ = T The RX then divides (T’) by the same known divisor (P) and checks if there is any remainder If division yields a remainder then the frame is erroneous If the division yields zero remainder then the frame is error-free unless many erroneous bits in T’ resulted in a new exact division by P (This is very unlikely but possible, causing an undetected error!)

CRC Generation T = 2 (n – k)  D + F (n-k) left shifts (multiplications by 2) Data D: ? LSB P is 1-bit longer than F P Must start and end with 1’s

CRC Generation T = 2(n – k)  D + F, What is F that makes T divides P exactly ? Claim: F is the remainder obtained from dividing {2(n – k)  D} by divisor P where Q is the quotient and F is the remainder If this is the correct F, T should now divide P with Zero remainder Note: For F to be a remainder when dividing by P, it should be 1-bit smaller (1)

CRC Generation: 1. Modulo-2 Arithmetic Method At TX: CRC Generation (using previous rules): Multiply: 2(n – k)  D (left shift by (n-k) bits) Divide: 2(n – k)  D / P Use the resulting (n – k)-bit remainder as the FCS At RX: CRC Checking: RX divides the received T (i.e. T’) by the known divisor (P) and checks if there is any remainder

Example – Modulo-2 Arithmetic Method Given D = 1 0 1 0 0 0 1 1 0 1 P = 1 1 0 1 0 1 Find the FCS field Solution: First we note that: The size of the data block D is k = 10 bits The size of P is (n – k + 1) = 6 bits  Hence the FCS length is n – k = 5  Total size of the frame T is n = 15 bits

Example – Modulo-2 Arith. Method Solution (continued): Multiply 2(n – k)  D 2(5)  1 0 1 0 0 0 1 1 0 1 = 1 0 1 0 0 0 1 1 0 1 0 0 0 0 0 This is a simple shift to the left by five positions Divide 2(n – k)  D / P (see next slide for details) 1 0 1 0 0 0 1 1 0 1 0 0 0 0 0 ÷ 1 1 0 1 0 1 yields: Quotient Q = 1 1 0 1 0 1 0 1 1 0 Remainder R = 0 1 1 1 0 So, FCS = R = 0 1 1 1 0: Append it to D to get the full frame T to be transmitted T = 1 0 1 0 0 0 1 1 0 1 0 1 1 1 0 M FCS

Example – Modulo-2 Arith. Method # of bits < # of bits in P,  result of division is 0 = FCS = F Checks you should do (exercise): - Verify correct operation, i.e. that 2(n-k)D = P*Q + R - Verify that obtained T (101000110101110) divides P (110101) exactly (i.e. with zero remainder)

Problem 6-12 For P = 110011 & D = 11100011, find the CRC

Chances of missing an error by CRC error detection Let E be an n-bit number with a bit = 1 at the position of each error bit error occurring in T Error occurring in T causes bit reversal Bit reversal is obtained by XORing with 1 So, received Tr = T  E Error is missed (not detected) if Tr is divisible by P Since T is made divisible by P, this requires that E is also divisible by P!. That is a ‘bit’ unlikely!

CRC Generation: 2. The Polynomial Method A k-bit word (D) can be expressed as a polynomial D(x) of degree (k-1) in a dummy variable x, with: The polynomial coefficients being the bit values The powers of X being the corresponding powers of 2 bk-1 bk-2 … b2 b1 b0  bk-1Xk-1 + bk-2Xk-2 + … + b1X1 + b0X0 where bi (k-1 ≤ i ≤ 0) is either 1 or 0 Example1: an 8 bit word D = 11011001 is represented as D(X) = x7+x6+x4+x3+1 We ignore polynomial terms corresponding to 0 bits in the number

CRC – Mapping Binary Bits into Polynomials Example2: What is x4D(x) equal to? x4D(x) = x4(x7+x6+x4+x3+1) = x11+x10+x8+x7+x4, the equivalent bit pattern is 110110010000 (i.e. four zeros appended to the right of the original D pattern) Example3: What is x4D(x) + (x3+x+1)? x4D(x) + (x3+x+1) = x11+x10+x8+x7+x4+ x3+x+1, the equivalent bit pattern is 110110011011 (i.e. pattern 1011 = x3+x+1 appended to the right of the original D pattern)

CRC Generation: The Polynomial Way Binary Arithmetic Polynomial T = 2(n – k)  D + F T(X) = X(n – k)  D(X) + F(X)

CRC Calculation - Procedure Shift pattern D(X), (n-r) bits to the left, i.e. perform the multiplication X(n-r)D(X) Divide the new pattern by the divisor P(X) The remainder of the division R(X) (n-r bits) is taken as FCS The frame to be transmitted T(X) is X(n-r)D(X) + FCS

Example of Polynomial Method D = 1 0 1 0 0 0 1 1 0 1 (k = 10) P = 1 1 0 1 0 1 (n – k + 1 = 6) n – k = 5  n = 15 Find the FCS field Solution: D(X) = X9 + X7 + X3 + X2 + 1 P(X) = X5 + X4 + X2 + 1 X5D(X)/P(X) = (X14 + X12 + X8 + X7 + X5)/(X5 + X4 + X2 + 1) This yields a remainder R(X) = X3 + X2 + X (details on next slide) i.e. F = 01110 R is n – k = 5-bit long  Remember to indicate any 0 bits!

Example of Polynomial Method F = R T 1 0 1 0 0 0 1 1 0 1 01110 P 110101 Insert 0 bits to make 5 bits

Choice of P(X) How should we choose the polynomial P(X) (or equivalently the divisor P)? The answer depends on the types of errors that are likely to occur in our communication link As seen before, an error pattern E(X) will be undetectable only if it is divisible by P(X) It can be shown that all the following error types are detectable : All single-bit errors, if P(X) has two terms or more All double-bit errors, if P(X) has three terms or more Any odd number of errors, if P(X) contains the factor (X+1) Any burst error whose length is less than the FCS length (n – k) A fraction (=1-2-(n-k-1) ) of error bursts of length (n-k+1) A fraction (=1-2-(n-k) ) of error bursts of length > (n-k+1)

Choice of P(X) In addition, if all error-patterns are equally likely, and r = n - k = length of the FCS, then: For a burst error of length (r + 1), the probability of undetected error is 1/2(r – 1) For a longer burst error i.e. length > (r + 1), the probability of undetected error is 1/2 r There are four widely-used versions of P(X) CRC-12: P(X) = X12 + X11 + X3 + X2 + X + 1 (r = 13 -1 = 12) CRC-16: P(X) = X16 + X15 + X2 + 1 (r = 17 -1 = 16) CRC-CCITT: P(X) = X16 + X12 + X5 + 1 CRC-32: P(X) = X32 + X26 + X23 + X22 + X16 + X12 + X11 + X10 + X8 + X7 + X5 + X4 + X2 + X + 1 (r = 33 -1 = 32) FCS is 1-bit shorter than P: FCS Size P(X) always starts with 1

Some CRC Applications CRC-8 and CRC-10 (not shown) are used in ATM CRC-12 is used for transmission of 6-bit characters. Its FCS length is 12-bits CRC-16 & CRC-CCITT are used for 8-bit characters in the US and Europe respectively Used in HDLC CRC-32 is used for IEEE 802.3 LAN standard

CRC Generation: 3. Digital Logic k = 10 (size of D) (known data to be TXed) n – k + 1 = 6 size of P (known divisor) P (X) = X5+X4+X2+1 (110101) n – k = 5 size of FCS (to be determined at TX) n = 15 5-element left-shift register Initially loaded with 0’s After n left shifts, register will contain the required FCS Data Block, D 1010001101 Always An XOR at C0 P = X5+X4+X2+X0 Divisor is “hardwired” as feedback connections via XOR gates into the shift register cells Starting at LSB, for the first (n-k) bits of P, add an XOR only for 1 bits

FCS generated in the shift register after n (=15) shift steps CRC Generation at TX P = X5+X4+X2+X0 Start with Shift Register Cleared to 0’s C4 in C2 in C0 in MSB D Inputs formed with Combination Logic MSB FCS generated in the shift register after n (=15) shift steps

0’s in the shift register after n (=15) shift steps (if no errors) CRC Checking at RX P = X5+X4+X2+X0 Start with Shift Register Cleared to 0’s C4 in C2 in C0 in MSB 15 bits D D Received Frame, T MSB FCS Inputs formed with Combination Logic 0’s in the shift register after n (=15) shift steps (if no errors)

Problem 6-13 A CRC is constructed to generate a 4-bit FCS for an 11-bit message. The generator polynomial is X4+X3+1 Draw the shift register circuit that would perform this task Encode the data bit sequence 10011011100 (leftmost bit is the LSB) using the generator polynomial and give the code word Now assume that bit 7 (counting from the LSB) in the code word is in error and show that the detection algorithm detects the error

Problem 6-13 – Solution C3  C2 C1 C0  a) Input data C3  C2 C1 C0  P(X) = X4+X3+1 b) Data (D) = 1 0 0 1 1 0 1 1 1 0 0 D(X) = 1 + X3 + X4 + X6 + X7 + X8 X4D(X) = X12 + X11 + X10 + X8 + X7 + X4 T(X) = X4M(X) + R(X) = X12 + X11 + X10 + X8 + X7 + X4 + X2 Code = 0 0 1 0 1 0 0 1 1 0 1 1 1 0 0 c) Code in error = 0 0 1 0 1 0 0 1 1 0 0 1 1 0 0 yields a nonzero remainder  error is detected LSB

Error Correction Once an error is detected, what action can the RX take?: Two alternatives: RX asks for a retransmission of the erroneous frame Adopted by data-link protocols such as HDLC and transport protocol such as TCP A Backward Error Correction (BEC) method RX attempts to correct the errors if enough redundancy exists in the received data TX uses Block Coding to allow RX to correct potential errors A Forward Error Correction (FEC) method Use in applications that leave no time for retransmission, e.g. VoIP.

Error Correction vs. Error Control Backward error correction by retransmission is not recommended in the following cases: Error rate is high (e.g. wireless communication) Will cause too much retransmission traffic network overloading Transmission distance is long (e.g. satellite, submarine optical fiber cables) Network becomes very inefficient (Not utilized properly) Usually: Error Correction methods: Those that use FEC techniques Error Control methods: Those that use retransmission