Download Presentation
## Computer Networks

- - - - - - - - - - - - - - - - - - - - - - - - - - - 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