**Related Content:** CS601 - VU Lectures, Handouts, PPT Slides, Assignments, Quizzes, Papers & Books of Data Communication

- In a single-bit error, a 0 is changed to a 1 or a 1 to a 0
- In a burst error multiple bits are changed
- For Example, a 0.01 second burst of impulse noise on a TX with a data rate of 1200 bps might change all or some of 12 bits of information

- The term single bit error means that only one bit of a given data unit (such as a byte, character, or a packet) is changed from 1 to 0 or from 0 to 1
- Figure shows the effect of a single bit error on a data unit
- ASCII character 000000010 (ASCII STX) is sent but 00001010 (ASCII LF) is received
- Single bit errors are the least likely type of error in serial data TX
- To see Why? Imagine a sender sends data at 1Mbps
- This means that each bit lasts only 1/1,000,000 seconds or 1 microsecond
- For single bit error to occur, the noise must have a duration of 1 microsecond which is very rare, noise lasts much longer than that
- However, single bit error can occur if we are sending data using parallel TX
- For Example, if 8 wires are used to send all of the eight bits of a byte at the same time and one of the wires is noise, one bit can be corrupted in each byte

- The term burst error means that two or more bit sin the data unit have changed from 1 to 0 or from 0 to 1

- Figure shows the effect of a burst error on a data unit
- In this case 0100010001000011 was sent but 0101110101000011 was received
- Note that a burst error does not necessarily mean that error occur in consecutive bits
- The length of the burst is measured from the first corrupted bit to the last corrupted bit
- Some bits in b/w may not have been corrupted
- Burst error is most likely to happen in a serial TX
- The duration of the noise is normally longer than the duration of a bit which means that when noise affects data, it affects a set of bits
- The number of bits affected depends on the data rate and duration of noise
- For example, if we are sending data at 1 Kbps, a noise of 1/100 seconds can affect 10 bits
- If we are sending data at 1 Mbps, the same noise can affect 10,000 bits

- Even if we know what type of errors can occur, will we recognize one when we see it?
- If we have a copy of the intended TX for comparison, of course we will
- But what if we don’t have a copy of the original
- Then we will have no way of knowing we have received an error until we have decoded the TX and failed to make sense of it
- For a device to check for errors this way will be Costly and Slow
- We don’t need a machine that decodes every thing and then sits and decides whether a specific word makes sense or not
- We need a mechanism that is Simple and Completely objective

- One error detection mechanism that would satisfy these requirements would be to send every data unit twice
- The receiving device would then be able to do a bit-for-bit comparison b/w two TXs
- Any discrepancy will indicate an error and an appropriate error correction mechanism could be set in place
- This system will be completely Accurate because the odds of error affecting the same bits in both version will be infinitesimally small
- But this system will be extra ordinarily SLOW
- Not only will the TX time double, but the time it takes to compare two data units is also added up
- The concept of including extra information in the TX solely for the purpose of comparison is a good one
- But instead of repeating the entire data stream, a shorter group of bits may be appended to the end of each unit
- This technique is called REDUNDANCY because the extra bit are redundant to the information and are discarded as soon as the accuracy of TX has been determined

- Fig shows the process of using redundant bits to check the accuracy of data unit
- Once the data stream has been generated, it passes through a device that analyzes it and adds on an appropriately coded redundancy check
- The data unit now enlarged by several bits (7) travels over the link to the receiver
- The receiver puts the entire stream through a checking function
- If the received bit stream passes the checking criteria, the data portion of the data unit is acepted and the redundant bits are discarded

- There are 4 types of redundancy checks used in data communication:
- Vertical Redundancy Check (VRC)
- Longitudinal Redundancy Check (LRC)
- Cyclic Redundancy Check (CRC)
- Checksum

- First 3 are normally implemented in the physical layer for use in data link layer
- Fourth is used by Upper layers

- Most common and least expensive
- Also called Parity Check
- A redundant bit called parity bit is appended to every data unit so that total number of 1’s in the unit becomes even including the parity bit

- We want to TX the binary data unit 1100001
- Adding together the number of 1’s gives us 3, an odd number

- Before TX, we pass the data unit through a parity generator, which counts the 1’s and appends the parity bit (1) to the end
- The total number of 1’s is now 4, an even number
- The system now transfers the entire expanded across the network link
- When it reaches its destination, the RX puts all 8 bits through an even parity checking function
- If the RX sees 11100001, it counts four ones, an even number and the data unit passes
- But what if the data unit has been damaged in transit?
- What if instead of 11100001, receiver sees 11100101?
- Thn when the parity checker counts the 1’s, it gets 5 an odd number
- The reeiver knows that an error has occurred somewhere and therefore rejects the whole unit
- Some systems may also use ODD parity checking
- The principal is the same as even parity

Example 9.1, 9.2, 9.3

Sender wants to send “world” In ASCII, the five characters are coded as:

- Suppose “world” is received by the receiver without being corrupted:
- Receiver counts the 1’s and passes it

- Suppose “world” is received by the receiver corrupted:
- Receiver counts the 1’s and rejects it

- VRC can detect all single bit errors
- Can also detect Burst errors as long as the total number of bits changed is ODD (1,3,5 etc)

- We have an Even Parity data unit where the total number of 1’s including the parity bit is ‘6’ : 1000111011
- If 3 bits change value resulting parity will be odd and an error will be detected: 1111111011: 1’s = 9
- If 2 bits change value resulting parity will still be even and error will not be detected: 1110111011: 1’s = 8

- VRC cannot detect errors when the total number of bits changed are even
- VRC checker will return a result of 1 and the data unit will be rejected
- The same hold true for any odd number of errors
- In the second case, VRC checker will check parity and will return an even number although the data unit contains two errors
- VRC cannot detect error when the number of bits changed is even
- If any two bits change in TX, the changes cancel each other and the data unit will pass a parity check even though the data unit is damaged
- Same holds true for any even number of errors

- Types of Errors
- Error detection Techniques
- Redundancy
- Types of Redundancy Checks

Section 9.1, 9.2, 9.3 “Data Communications aneing" 4th Edition by Behrouz A. Forouzan