Cykliska redundanskontroller (CRC) är en allmänt använd feldetekteringsmekanism i digitala kommunikations- och lagringssystem. De fungerar genom att lägga till ett kontrollvärde med fast längd, känt som en CRC-rest eller signatur, till ett datablock. CRC-återstoden beräknas baserat på innehållet i datablocket och en förutbestämd matematisk formel, känd som ett generatorpolynom.
Grundprincipen bakom CRC är att om några fel uppstår under dataöverföring eller lagring, kommer de sannolikt att ändra bitarna i datablocket. När datablocket tas emot vid destinationen, beräknas CRC-resten om med användning av samma generatorpolynom och jämförs med den ursprungliga CRC-resten som bifogades data.
Om den omräknade CRC-resten matchar den ursprungliga CRC-resten, indikerar det att datablocket sannolikt är fritt från fel. Men om CRC-resterna inte matchar, tyder det på att fel kan ha uppstått under dataöverföring eller lagring.
Här är en förenklad översikt över hur CRC fungerar:
Dataförberedelse:Datablocket som ska skyddas är uppdelat i ett fast antal bitar.
CRC-beräkning:Generatorpolynomet används för att beräkna CRC-resten för datablocket. Denna beräkning involverar matematiska operationer och förskjutning av databitarna baserat på det specifika polynomet.
Bifoga CRC-återstoden:Den beräknade CRC-resten läggs till det ursprungliga datablocket och bildar en skyddad dataenhet.
Feldetektering:När den skyddade dataenheten tas emot vid destinationen, beräknar mottagaren om CRC-resten med användning av samma generatorpolynom och jämför den med den bifogade CRC-resten.
Om CRC-resterna matchar, indikerar det att datablocket sannolikt är korrekt och inte har skadats.
Om CRC-resterna inte stämmer överens, tyder det på att fel kan ha införts under dataöverföring eller lagring.
CRC-algoritmer kan upptäcka ett brett spektrum av vanliga fel, inklusive enbitsfel, burst-fel och vissa synkroniseringsfel. Det är dock viktigt att notera att CRC:er inte är idiotsäkra och kanske inte upptäcker vissa typer av fel eller avsiktliga datamanipulationer.
CRC:er används ofta i olika applikationer, inklusive nätverksprotokoll, datalagringssystem och kommunikationssystem, för att säkerställa integriteten och noggrannheten hos data under överföring och lagring.