ScoobyNet.com - Subaru Enthusiast Forum

ScoobyNet.com - Subaru Enthusiast Forum (https://www.scoobynet.com/)
-   Computer & Technology Related (https://www.scoobynet.com/computer-and-technology-related-34/)
-   -   So in layman terms, can you explain cyclic redundancy (https://www.scoobynet.com/computer-and-technology-related-34/511374-so-in-layman-terms-can-you-explain-cyclic-redundancy.html)

Gridlock Mikey 28 April 2006 10:37 AM

So in layman terms, can you explain cyclic redundancy
 
I've tried to work this out(As I do) and here is my take on it.

The PC tries to read a file but something is wrong with it. By default it tries to read it again (Cyclic? maybe?) eventally after say 1000 attempts, it moves on to the next task assuming it doesn't need that file or maybe the programme will run without that particular file (redundancy?)

How did I do? :lol1: PC's PAH!! Easy :lol1:

bob269 28 April 2006 10:40 AM

A CRC "checksum" is the remainder of a binary division with no bit carry (XOR used instead of subtraction), of the message bit stream, by a predefined (short) bit stream of length n, which represent the coefficients of a polynomial. Before the division, n zeros are appended to the message stream.

CRCs are based on division in the ring of polynomials over the finite field GF(2) (the integers modulo 2). In simpler terms, this is the set of polynomials where each coefficient is either zero or one, and arithmetic operations wrap around.

For example:
http://upload.wikimedia.org/math/4/5...e23913de8d.png

Two becomes zero because addition of coefficients is performed modulo 2. Multiplication is similar:

http://upload.wikimedia.org/math/e/7...c20d5a5f89.png

We can also divide polynomials mod 2 and find the quotient and remainder. For example, suppose we're dividing x3 + x2 + x by x + 1. We would find that
(x3 + x2 + x) / (x + 1) = (x2 + 1) − 1 / (x + 1) In other words,
(x3 + x2 + x) = (x2 + 1)(x + 1) − 1 The division yields a quotient of x2 + 1 with a remainder of -1, which, since it is odd, has a last bit of 1.

Any string of bits can be interpreted as the coefficients of a polynomial of this sort, and to find the CRC, we divide by another fixed polynomial, after first multiplying by xn where n is the degree of the fixed polynomial. The coefficients of the remainder polynomial are the CRC.

In the above equations, x2 + x + 1 represents the original message bits 111, x + 1 acts as the key, and the remainder 1 (equivalently, x0) is the CRC. The degree of the key is 1, so we first multiplied the message by x1 to get x3 + x2 + x.

In general form:
M(x) * xn = Q(x) * K(x) + R(x) Here M(x) is the original message polynomial. K(x) is the key polynomial, with degree n. The bits of M(x) * xn are the original message with n zeros added at the end. R(x) is the remainder polynomial, which is the CRC 'checksum'. In communication, the sender attaches the n bits of R after the original message bits of M and sends them out (in place of the zeros). The receiver takes M and R and checks whether M(x) * xn − R(x) is divisible by K(x). If it is, then the receiver assumes the received message bits are correct. Note that M(x) * xn − R(x) is exactly the string of bits the sender sent; this string is called the codeword.

CRCs are often referred to as "checksums," but such designations are not strictly accurate since, technically, a checksum would be calculated through addition, and not through division as is the case with CRCs.

Closely related to CRCs are error-correcting codes, which allow the correct message to be reconstructed in the face of transmission errors. These codes are based on closely related mathematical principles.

;)

Gridlock Mikey 28 April 2006 10:47 AM

:confused: Not once are the words Cyclic or redundancy mentioned in that self righteous twaddle :mad:

Thanks for trying to explain though :lol1:

bob269 28 April 2006 11:04 AM


Originally Posted by Gridlock Mikey
:confused: Not once are the words Cyclic or redundancy mentioned in that self righteous twaddle :mad:

Thanks for trying to explain though :lol1:

CRC - Cyclic Redundancy Check :D

RB5-Black 28 April 2006 11:05 AM

A cyclic redundancy check (CRC) is a type of hash function used to produce a checksum - which is a small, fixed number of bits - against a block of data, such as a packet of network traffic or a block of a computer file. The checksum is used to detect errors after transmission or storage. A CRC is computed and appended before transmission or storage, and verified afterwards by recipient to confirm that no changes occurred on transit. CRCs are popular because they are simple to implement in binary hardware, are easy to analyze mathematically, and are particularly good at detecting common errors caused by noise in transmission channels.

bob269 28 April 2006 11:06 AM


Originally Posted by RB5-Black
A cyclic redundancy check (CRC) is a type of....

Thats the top bit of the page I forgot to paste ;)

Hanslow 28 April 2006 11:12 AM

PMSL @ bob ;)

bob, this is Mike we're dealing with here..... :D

Mike, it's an error checking code to validate that the data in the block on the disk, run through some algorithm, generates the same value pre and post transfer. Or something like that....

bob269 28 April 2006 11:15 AM

:cool:

Basically if your file says its got a CRC error then it's fooked, chuck it in the bin :thumb:

jbryant 28 April 2006 09:17 PM


Originally Posted by bob269
:cool:

Basically if your file says its got a CRC error then it's fooked, chuck it in the bin :thumb:

Best one yet :thumb:

jpor 28 April 2006 09:24 PM

Heres some More


All times are GMT +1. The time now is 05:20 PM.


© 2024 MH Sub I, LLC dba Internet Brands