Sykliske redundanssjekker (CRCs) er en mye brukt feildeteksjonsmekanisme i digitale kommunikasjons- og lagringssystemer. De fungerer ved å legge til en sjekkverdi med fast lengde, kjent som en CRC-rest eller signatur, til en datablokk. CRC-resten beregnes basert på innholdet i datablokken og en forhåndsbestemt matematisk formel, kjent som et generatorpolynom.
Det grunnleggende prinsippet bak CRC-er er at hvis det oppstår feil under dataoverføring eller lagring, vil de sannsynligvis endre bitene i datablokken. Når datablokken mottas på destinasjonen, beregnes CRC-resten på nytt ved å bruke det samme generatorpolynomet og sammenlignes med den opprinnelige CRC-resten som ble lagt til dataene.
Hvis den omkalkulerte CRC-resten samsvarer med den opprinnelige CRC-resten, indikerer det at datablokken sannsynligvis er fri for feil. Men hvis CRC-restene ikke stemmer overens, tyder det på at feil kan ha oppstått under dataoverføring eller lagring.
Her er en forenklet oversikt over hvordan CRC-er fungerer:
Dataforberedelse:Datablokken som skal beskyttes er delt inn i et fast antall biter.
CRC-beregning:Generatorpolynomet brukes til å beregne CRC-resten for datablokken. Denne beregningen involverer matematiske operasjoner og forskyvning av databitene basert på det spesifikke polynomet.
Tilføye CRC-rest:Den beregnede CRC-resten legges til den opprinnelige datablokken, og danner en beskyttet dataenhet.
Feildeteksjon:Når den beskyttede dataenheten mottas på destinasjonen, beregner mottakeren CRC-resten på nytt ved å bruke det samme generatorpolynomet og sammenligner det med den vedlagte CRC-resten.
Hvis CRC-restene samsvarer, indikerer det at datablokken sannsynligvis er nøyaktig og ikke har blitt ødelagt.
Hvis CRC-restene ikke stemmer overens, tyder det på at feil kan ha blitt introdusert under dataoverføring eller lagring.
CRC-algoritmer kan oppdage et bredt spekter av vanlige feil, inkludert enkeltbitsfeil, seriefeil og noen synkroniseringsfeil. Det er imidlertid viktig å merke seg at CRC-er ikke er idiotsikre og kanskje ikke oppdager visse typer feil eller tilsiktede datamanipulasjoner.
CRC-er brukes ofte i forskjellige applikasjoner, inkludert nettverksprotokoller, datalagringssystemer og kommunikasjonssystemer, for å sikre integriteten og nøyaktigheten til data under overføring og lagring.