How does CRC work?
Chapter 2. Simple examples of CRC transmission
Chapter. 2.1 Introduction
In Chapter. 1.3 the question was asked “How does the AIR register in London know that the information in RR in New York received, i.e. the number 38547, is different than 32547 that AIR sent from London?” For this purpose, the long-known principle of Redundant Information attached to the sent Proper Information will be used. The method of its creation must be known to the Transmitter and Receiver.
A specific example from centuries ago.
The Polish ambassador at the Sultan’s court is to send information about the political situation to his King Stephen Bathory. King and ambassador does not trust the messenger, because they know from personal experience, that anyone can be bribed. Therefore, they had previously agreed with that they would write a post scriptum at the end of each letter, i.e. at the end of the Proper Information. “I paid 1,254 ducats for the horse.” And that the given number will be equal to the number of all previous letters in the letter. On the way to Poland, the faithless messenger changed the sentence “The Moldavian Hospodar wants to enter into an alliance with Poland” into the sentence “The Moldavian Hospodar wants to kill Your Majesty.” For this he received 10,000 ducats from the Sultan. The king counted all the letters and no longer trusted the letter. Thus, the plot failed and the perfidious messenger was hanged for a rib.
The redundant information “I paid 1,254 ducats for the horse” is nothing else than CRC.
Chapter. 2.2 CRC as repeated Proper Information
So “hello, say it again. A method often used in a telephone conversation.
Fig. 2-1
Transmission when CRC is a repetition of AIR ANIMATION
The receiver and transmitter know the transmission algorithm -> repeat the information again.
Stage 1 – Sending proper information from AIR to RR, i.e. from the transmitter to the receiver. At the same time, the RIR and CR registers are updated. Later you will see that they act as CRC registers! This means that with each transfer of the number, the CRC is updated, i.e. calculated!
Stage2 Checking the correctness of transmission
That is, a comparison of RIR and CR, i.e. the CRC of the transmitter with the CRC of the receiver. If they are the same, the transmission is OK. In the additional green CR byte of the receiver, the appropriate bytes sent for the first and second time are compared by subtraction. If they are all the same, then the transmission was error-free.
Note
Observe the contact positions!
Chapter. 2-3 CRC as the remainder of division
The previous method with repeated information, although more didactic than used in practice, has one feature necessary in the CRC methods used. It is the calculation or updating of the CRC during transmission. Calculation, i.e. entering the next number into the RIR and CR registers, is so fast that it does not slow down the transmission. But it has a disadvantage. It is the amount of redundant information, i.e. CRC. The actual portions of transmitted information, i.e. the sizes of the AIR and RR registers, are in the order of thousands of bytes, not five! Also, the redundant information included is not just a repeat, but 1, 2 or 4 extra bytes only!. I don’t need to add what effect this has on the transmission speed. Now the method of calculation must now be more refined than mere repetition. This is CRC as the remainder of division.
Fig. 2-2
Transmition when CRC is the remainder of dividing ANIMATION
The division is the message sent – number 32547 in the AIR register of the Transmitter. The divisor is the number 325 in the Transmitter and Receiver FR registers. I emphasize – the Transmitter and Receiver know that the divisor is a specific number – here 325!
By clicking on the animations you will see 4 stages of transmission
1. Calculating the remainder of the division 32547/325 in the Transmitter RDR as 47
2. Transmission 32547 from AIR to RR
3. Calculating the remainder of the division 32547/325 in the Receiver RDR as 47
4. Checking the correctness of transmission, i.e. comparing both residues. If they are equal, the transmission is error-free.
The example shows the general rules for checking the correctness of transmission
1. The transmitter adds a small “something” (here 47) to the large information being sent (here 32547) and sends it to the Receiver.
2. The receiver receives all the information with “something” but independently of the transmitter it calculates its “something” (here 47).
3. The receiver compares (subtracts) its “something” with the transmitter’s “something”.
4. When both “somethings” are equal, it is ok and the Receiver requests the next piece of information from the Transmitter
5. When both “somethings” are different, there was an error in transmission and the Receiver requests repetition and information from the Transmitter
The “something” or attached information is a CRC
How is the real CRC method different from the above?
1. Sending in bits, not bytes
2. Another way to calculate the residuals, i.e. CRC. The actual calculation method only resembles division. However, it is much faster than regular decimal division.
3. Calculation of this “rest”, i.e. update, occurs during the transmission of information and not as a separate stage. Therefore, it does not slow down the transmission speed.
Chapter. 2.4 Is the CRC method absolutely reliable?
NO!!!. Even CRC as repeated information does not ensure that the transmission was error-free. After all, the original and repeated information can contain the same error and both are the same! It’s unlikely but possible! The remainder of the division may also coincidentally be the same!