290 likes | 296 Views
Learn about Error Detection and Correction in Computer Networks, types of errors, error control strategies, and methods such as Parity Checking, CRC, and Checksum. Understand the concepts of Even and Odd Parity, Two-dimensional Parity Check, and Cyclic Redundancy Check in data transmission.
E N D
Computer Networks Chapter 10 – Error Detection and Correction
Errors • The physical link is always subject to imperfections • Noise/interference • Limited bandwidth • Distortion • Errors – a consequence of imperfecton • Some bits send at the sender are received with different value at the receiver Sender Receiver 0 ---------- 1 1 ----------0 Value sent Value received Computer Networks
Types of Errors • Single-bit error • The value of a single bit in a data unit is changed • Does not occur very often in serial data transmission • Burst error • The value of two or more bits in the data unit is changed • Usual type of error in serial data transmission Computer Networks
Errors and Error Effect Original Waterfall Image: Computer Networks
Errors and Error Effect (Cont.) Waterfall Image: every tenth bit in error Computer Networks
Errors and Error Effect (Cont.) Waterfall Image: every other bit in error Computer Networks
Two Strategies for Error Control • Error detection and correction • Enough redundancy (extra bits) is incorporated, so that at the reciever the errors can be not only detected, but also corrected • Not applicable to data communication, because too much redundancy is needed • Error detection and retransmission • There is enough redundancy only to detect the error in a data unit. If an error is descovered the sender is automaticly required to retransmit the data unit • Applicabbble to data communication Computer Networks
Error Detection Methods • Each method involves adding extra bits (redundant bits) to the data unit • Three most common methods are • Parity checking • Cyclic Redundancy Check (CRC) • Checksum Computer Networks
Parity Checking • The sender and the receiver agree in advance whether the data units will have even or odd number of 1s. • The sender adds extra bits to create the data units according to the agreement • The receiver checks the parity of the 1s according to the agreement. • If the data unit received has a number of 1s according to the agreement, it is accepted as correct; otherwise it is rejected as “in error”. Computer Networks
Simple Parity Checking • The sender adds an additional bit, called parity bit to each data unit • Even parity – the parity bit is 0 or 1 depending on which bit will make the total number of 1’s even • Odd parity – the parity bit is 0 or 1 depending on which bit will make the total number of 1’s odd • The sender and receiver know which scheme they are using • The receiver performs parity checking • Only a single error or odd number of errors can be detected • It is not convenient for use with data transmission Computer Networks
Even Parity Concept Computer Networks
Example • Assuming even parity, add a single bit to each data unit. 0110100 1011010 • Solution: 0110100 1 1011010 0 Computer Networks
Two-dimensional Parity Check • Data units are arranged in two-dimensional array • Parity bit is added to the rows (each data unit) and to the columns (an extra data unit is created) • The receiver checks the parity in the rows and in the columns • Improved performance compared to single-parity checking • Still not very often used with data transmission Computer Networks
Two-dimensional Parity Concept Computer Networks
Example • Perform a two dimensional parity check on the following data unit by having blocks of 7 bits each. 01101001011010001011011101011001011 • Solution 0110100 1 1011010 0 0010110 1 1110101 1 1001011 0 1000110 1 01101001101101000010110111101011100101101000110 Computer Networks
Cyclic Redundancy Check • A method for error detection that is often used with data transmission. • Based upon treating bit strings as polynomials with coefficients 0 and 1. • k bit message is represented as (k-1) degree polynomial • Example: 1010110 has 7 bits • It can be represented as a polynomial of 6th degree 1·x6 + 0·x5 + 1·x4 +0·x3 + 1·x2 + 1·x1 + 0·x0 Computer Networks
k bits n bits Data bits to be sent CRC bits How CRC Operates? • The sender wants to send k bits message • The sender and the receiver must agree in advance on n+1 bit string called generator polynomial (divisor), G. • G can be represented as n-degree polynomial • nredundant bits are added to the k bits message. They are called CRC bits. Computer Networks
How CRC Operates? (Cont.) • The redundant bits are chosen in such a way that the resulting k+n bit string is exactly divisible (with a reminder=0) by G using modulo 2 arithmetic. • The receiver divides the received data together with the CRC bits by G using modulo 2 arithmetic. • If the reminder is 0, then the string is considered to be without errors • If the reminder is not 0, the data unit is with errors and it is rejected Computer Networks
Generator Polynomial, G • For the purposes of calculating a CRC, the sender and the reciever need to agree upon a generator polynomial G in advance. • The choice of G has impact on what types of errors can be reliably detected. • There are a handful generator polynomials that are very good choices for various environments and the exact choice is made as a part of protocol design Computer Networks
Modulo 2 Arithmetic • In modulo 2 arithmetic addition and substruction are identical to EXCLUSUVE OR (XOR) operation. • Multiplication and division are the same as in base-2 arithmetic without carries in addition or borrows in substraction. Examples: 1011 XOR 0101 = 1110 1001 XOR 1101 = 0100 0 XOR 0 = 0 0 XOR 1 = 1 1 XOR 0 = 1 1 XOR 1 = 0 Computer Networks
Calculating the CRC Bits • Let n be the degree of G (G consists of n+1 bits). • Append n 0s to the data unit to obtain the extended data unit. • Perform the modulo 2 division. The extended data unit is a dividend and G is a divisor. • The quotient is not used • The reminder is the CRC bits • Add the CRC bits to the data unit Computer Networks
Example The first bit in the quotient is 1 and one times the divisor results in this The first bit in the quotient is 1 and one times the divisor results in this The number of 0s is one less than the number of bits in G (divisor) Obtained by XOR-ing 1001 and 1101 Obtained by XOR-ing 1000 and 1101 Computer Networks
Another Example The transmitted unit is 11010110111110 Computer Networks
CRC Performance • Assuming a good choice of the generator polynomial, G, is made, CRC method shows very good performance • Can detect all burst errors that affect odd number of bits • Can detect all burst errors of length less than or equal to G • Very high probability on detecting errors with length higher than the length of G Computer Networks
Checksum • To compute the check sum, the sender treats the data unit as a sequence of a certain number of blocks, all with the same number of bits. • The sender and receiver agree on how long are the blocks (usually 16 bits) • The sender adds the blocks using one’s complement arithmetic and creates an additional block with the same size • The additional block is complemented and appended to the data unit as redundancy bits Computer Networks
Checksum (Cont.) • The receiver divides the received block into blocks with the agreed number of bits. • The blocks are added using one’s complement arithmetic • The sum is complemented • If the result is 0, the data are considered without an error, otherwise the data unit is rejected Computer Networks
Modulo One’s Arithmetic • The addition starts at the last column from left to right • The bits are carried in the respective column before • This is repeated for each column • If the number of bits in the sum is larger then those in the blocks, they are added to the sum obtained Computer Networks
Column: 7 6 5 4 3 2 1 Example Carry from column 5 Carry from column 4 Carry from column 3 Carry from column 2 • The addition starts in the last column • The bits are carried in the columns before • The 6th and 7th bit are added Carry from column 1 sum checksum Computer Networks
Complement of a Bit String • A complement of a bit string is obtained when all 0s become 1s and all 1s become 0s • Example: Given the bit string 10111001, its complement is 01000110 Computer Networks