Download Error Detection and Correction Techniques in Digital Communications and more Slides Computer Networks in PDF only on Docsity! Lecture No. 7 Docsity.com 2 Error Detection and Correction • Possible binary voltage encoding symbol • Neighborhoods and erasure region +15 -15 vo lta ge 0 1 ? (erasure) • Possible QAM symbol • Neighborhoods in green • All other space results in erasure Input to digital level: valid symbols or erasures Docsity.com 5 1-bit Error Detection with Parity • Every code has even number of 1’s 000 100 110 010 011 001 101 111 01 00 10 11 Valid Codes Parity encoding: gray dots are invalid and indicate errors If only 1 bit flips, it can be detected Docsity.com 6 1-bit Error Correction with Voting • Every code is copied three times 000 100 110 010 011 001 101 111 0 1 Valid codes Gray dots correct to “1” blue cots correct to “0” - If only 1 bit flips, it can be corrected - Even with 2 erasures, bit can be recovered Docsity.com 7 2-bit Erasure Correction With Voting • Every code is copied three times Remaining bit in a 2-erasure plane is not ambiguous 000 100 110 010 011 001 101 111 0?? ?0? ??0 Cannot correct 1-error and 1-erasure Docsity.com 10 Hamming Codes (1950 Paper) • Construction for 1-bit error-correcting codes • Minimal number of check bits required • Construction – Number of bits from 1 upward – Powers of 2 are check bits – All others are data bits – Check bit j is XOR of all bits k such that (j AND k) = j • – Example: 4 bits of data, 3 check bits Docsity.com 11 Error Bits or Error Burst • Common model of errors – Probability of error per bit – Error in each bit independent of others – Value of incorrect bit independent of others • Burst model – Probability of back-to-back bit errors – Error probability dependent on adjacent bits – Value of errors may have structure • Why assume bursts? – Appropriate for some media (e.g., Radio) – Faster signaling rate enhances such phenomena Docsity.com 12 Digital Error Detection Techniques • Two-dimensional parity – Detects up to 3-bit errors – Good for burst errors • Internet checksum (used as backup to CRC) – Simple addition – Simple in software • Cyclic redundancy check (CRC) – Powerful mathematics – Tricky in software, simple in hardware – Used in network adapter Docsity.com 15 Internet Checksum Algorithm • Not used at the link level but provides same sort of functionality as CRC and parity • Idea: – Add up all words (16-bit integers) that are transmitted – Transmit the result (checksum) of that sum – Receiver performs the same calculation on received data and compares the result with the received checksum – If the results do not match, an error is detected • 16 redundant bits for a message of any length • Weak protection, accepted as a last line of defense Docsity.com 16 Internet Checksum Algorithm View message as a sequence of 16-bit integers; sum using 16-bit ones-complement arithmetic; take ones-complement of the result. u_short cksum(u_short *buf, int count) { register u_long sum = 0; while (count--) { sum += *buf++; if (sum & 0xFFFF0000) { /* carry occurred, so wrap around */ sum &= 0xFFFF; sum++; } } return ~(sum & 0xFFFF); } Docsity.com 17 Cyclic Redundancy Check Theory • Based on finite-field (binary-valued) arithmetic • Bit string represented as polynomial • Coefficients are binary-valued • Divide bit string polynomial by generator polynomial to generate CRC Practice • Bitwise XOR’s Docsity.com 20 CRC Example - Sender • C(x) = x3+x2+1 = 1101 generator • M(x) = x8 + x6 + x5 + x4+1 = 101110001 message 1101 ) 101110001000 1101 1101 1101 00001000 1101 101 Remainder Docsity.com 21 CRC Example - Receiver • C(x) = x3+x2+1 = 1101 generator • M(x) = x11+x9+x8+x7+x3+x2+1 = 101110001101 message 1101 ) 101110001101 1101 1101 1101 00001101 1101 0 Correct ! Docsity.com 22 CRC Example - Receiver • C(x) = x3+x2+1 = 1101 generator • M(x) = x11+x9+x8+x7+x3+x2+1 = 101110001101 message 1101 ) 101101001101 1101 1100 1101 1100 1101 1110 1101 111 Incorrect ! Two bits are flipped Docsity.com 25 Selecting C(x) Non-divisible by E(x) • Any ‘burst’ error (i.e., sequence of error bits) for which the length of the burst is less than k bits • Most burst errors of larger than k bits can also be detected • See Table 2.5 on page 96 for common C(x) Docsity.com 26 Error Detection or Correction ? • Detection implies discarding message and waiting for retransmission –Uses bandwidth – Introduces latency Docsity.com 27 Error Detection or Correction ? • Error correction requires more redundant bits to send all the time : Forward Error-correcting Code (FEC) • Error correction is useful when: – Errors are quite probable (wireless links) – Retransmission cost is too high (latency in satellite link, multicast) Docsity.com