Skip to Content

Wat is een Cyclische redundantiecontrole (CRC) in netwerken?

Wat is een cyclische redundantiecontrole?

Een cyclische redundantiecontrole (CRC) is een wiskundige techniek die een manier biedt om fouten in verzonden data op te sporen door een speciale code, een checksum genaamd, toe te voegen aan de oorspronkelijke informatie. Deze checksum wordt vervolgens aan de ontvangende kant opnieuw berekend om de integriteit van de data te verifiëren. CRC speelt een cruciale rol bij het identificeren en corrigeren van potentiële datacorruptie in netwerken, waar betrouwbare dataoverdracht van het grootste belang is. Het wordt ook gebruikt in dataopslagsystemen, waaronder harde schijven en flashgeheugen, om de nauwkeurigheid van opgeslagen data te verifiëren. CRC is cruciaal in protocollen zoals Modbus, controller area network (CAN) en vele andere waar betrouwbare dataoverdracht essentieel is.

Hoe werkt CRC?

CRC is gebaseerd op de behandeling van de door te sturen data als een veelterm. De afzender en de ontvanger komen een vaste deler polynoom overeen, vaak de generator polynoom genoemd. De data worden aangevuld met een checksum, dat is de rest van de polynoomverdeling van de oorspronkelijke data door de generator-polynoom. Aan het einde van de afzender wordt de CRC-checkum berekend en aan de data toegevoegd voordat deze worden verzonden. Aan het einde van de ontvanger worden de ontvangen data samen met de checksum gedeeld door dezelfde generatorpolynoom. Als de rest nul is, wordt aangenomen dat de data foutloos zijn; anders wordt een fout gedetecteerd.

Het gebruik van CRC-meertermen en cyclische codes klinkt misschien complex, maar het concept is eenvoudiger dan het lijkt. Deze veeltermen zijn in wezen wiskundige representaties die helpen bij het foutdetectieproces. Cyclische codes, in de context van CRC, verwijzen naar codes waarbij cyclische verschuivingen van een geldig codewoord resulteren in een ander geldig codewoord.

Om het beter te begrijpen, kunt u een vereenvoudigd voorbeeld van foutcorrectie overwegen met behulp van een basischeckum. Stelt u zich eens voor dat u een binair getal verstuurt en een extra bit toevoegt die de pariteit of som van de oorspronkelijke bits vertegenwoordigt. Als de ontvangen data niet overeenkomen met de verwachte pariteit, wordt een fout gedetecteerd.

CRC is een meer geavanceerde versie van dit proces. In plaats van een eenvoudige som voert de CRC-polynoom een complexere berekening uit, waardoor meer redundantie wordt geïntroduceerd en de foutdetectiecapaciteit wordt verbeterd. Deze toegenomen complexiteit is cruciaal voor het omgaan met subtielere fouten en het bieden van een robuuster foutcontrolemechanisme.

FlashArray testen

Ervaar hoe Pure Storage block en file drastisch vereenvoudigt in een zelfbedieningsomgeving.

Nu proberen

Waarom CRC gebruiken?

CRC is met name effectief in het opsporen van fouten die de volgorde van bits in een bericht kunnen veranderen. Dit is erg belangrijk in scenario's waarin het handhaven van de exacte volgorde van bits essentieel is voor de juiste interpretatie van de data.

Een van de belangrijkste voordelen van CRC is de eenvoud van de implementatie, vooral in binaire hardware. Het algoritme omvat eenvoudige bitwise operaties, waardoor het efficiënt is voor hardwaregebaseerde foutcontrole.

CRC is niet alleen eenvoudig te implementeren, maar ook gemakkelijk wiskundig te analyseren. Dit maakt het een aantrekkelijke keuze voor ontwerpers en ingenieurs die de mogelijkheden voor foutcontrole van hun systemen moeten begrijpen en optimaliseren. De wiskundige eigenschappen van CRC vergemakkelijken een dieper inzicht in de prestatiekenmerken ervan, wat helpt bij het verfijnen van parameters voor specifieke toepassingen.

In echte communicatiekanalen is ruis een onvermijdelijke metgezel. CRC is bijzonder robuust in het detecteren van veelvoorkomende fouten die door ruis worden veroorzaakt tijdens de datatransmissie. De cyclische aard en het vertrouwen op polynomiale verdeling stellen het in staat om fouten die worden veroorzaakt door willekeurige fluctuaties of storingen in het signaal effectief te identificeren.

De juiste polynoom kiezen

De kern van CRC is de veelterm die wordt gebruikt bij het genereren en verifiëren van de checksum. De keuze voor veeltermen heeft een aanzienlijke invloed op de mogelijkheden voor foutdetectie van CRC. De veelterm fungeert als een deler in de veeltermverdeling en bepaalt de structuur van de checksum.

Bij het kiezen van de juiste veelterm wordt rekening gehouden met verschillende factoren. De mate van de veelterm is bijvoorbeeld van invloed op de lengte van de checksum en bijgevolg op de mogelijkheden voor foutdetectie. Het in evenwicht brengen van de wens voor een langere checksum (verbeterde foutdetectie) met de rekenkosten is een cruciale overweging.

Andere factoren zijn onder meer de wiskundige eigenschappen van de veelterm, zoals de onreduceerbaarheid ervan. Een onreduceerbare veelterm zorgt ervoor dat het CRC-algoritme een breed scala aan fouten kan detecteren. Daarnaast kunnen sommige toepassingen specifieke eigenschappen vereisen, zoals burst-foutdetectie, die kunnen worden beïnvloed door de veeltermkeuze.

Verschillende standaard polynomials worden vaak gebruikt in CRC-berekeningen. De keuze van de veelterm hangt af van de specifieke eisen van de toepassing. Zo wordt de veelterm CRC-32 (0x04C11DB7) vaak gebruikt in netwerkcommunicatieprotocollen, terwijl de veelterm CRC-16 (0x8005) toepassing in opslagsystemen vindt. De veelterm CRC-CCITT (0x1021) staat bekend om het gebruik ervan in telecommunicatie.

Elke veelterm brengt unieke kenmerken met zich mee, en bij het selecteren van de juiste wordt zorgvuldig rekening gehouden met de vereisten van de toepassing en de gewenste afwegingen tussen foutdetectiemogelijkheden en rekenefficiëntie.

Optimaliseren van CRC-prestaties

CRC is een krachtig algoritme voor foutcontrole, maar er zijn manieren om de prestaties te verbeteren, waaronder:

  • Tabelgebaseerde voorberekening, die de CRC-waarden vooraf berekent en opslaat in een tabel voor veelgebruikte inputs. Dit vermindert de noodzaak van herhaalde berekeningen, waardoor de algehele prestaties aanzienlijk worden verbeterd.
  • Parallellisatie , die gebruikmaakt van parallelle verwerking om CRC-berekeningen over meerdere cores of processors te verdelen. Dit kan de tijd die nodig is voor CRC-controles aanzienlijk verkorten, vooral in scenario's met grote datasets.
  • Bitwise operaties zoals XOR en verschuivingen, die vaak efficiënter zijn dan traditionele rekenkundige operaties.

Om de operationele complexiteit te verminderen, is het erg belangrijk om de juiste CRC-polynoom te selecteren. Sommige veeltermen bieden betere mogelijkheden voor foutdetectie met minimale rekenoverhead. U kunt ook de woordgrootte van het CRC aanpassen aan de architectuur van het systeem om de prestaties te verbeteren.

Bij het optimaliseren van de CRC-prestaties zijn er een aantal compromissen die in overweging moeten worden genomen, waaronder:

1. Geheugengebruik vs. berekeningen

Vooraf berekende tabellen kunnen de berekeningen verminderen, maar kunnen het geheugengebruik verhogen. Meet de afweging tussen geheugengebruik en rekenefficiëntie op basis van systeembeperkingen.

2. Complexiteit vs. snelheid

Complexere CRC-meertermen kunnen een betere foutdetectie bieden, maar kunnen rekenkundig duur zijn. Zorg voor een balans tussen complexiteit en snelheid en stem optimalisatie-inspanningen af op specifieke gebruikssituaties.

Conclusie

CRC heeft een uitgebreid gebruik in real-world applicaties, waaronder netwerkprotocollen, opslagsystemen en communicatieprotocollen. CRC blinkt uit in het detecteren van fouten tijdens de datatransmissie, en de mogelijkheid om zowel burst- als willekeurige fouten te identificeren zorgt ervoor dat de ontvangen data overeenkomen met de verzonden data. CRC fungeert als een bescherming tegen datacorruptie in opslagsystemen. Door fouten in een vroeg stadium op te sporen, helpt CRC de integriteit en veerkracht van opgeslagen informatie te behouden, wat cruciaal is voor de betrouwbaarheid van gegevens op de lange termijn.

Hoewel CRC vertrouwen wekt in de betrouwbaarheid van dataoverdracht en -opslag, gaat het wel gepaard met rekenoverhead, dus zorg ervoor dat u de afweging evalueert tussen de voordelen van foutcontrole en de middelen die in CRC-berekeningen worden gebruikt.

Vergeet ook niet dat CRC slechts één rol speelt in het grotere geheel van moderne dataprotectie. Met de uitgebreide moderne oplossing voor dataprotectie van Pure Storage kunt u data herstellen wanneer het er echt toe doet, uw bedrijf beveiligen tegen aanvallen, uw bedrijf runnen zonder onderbrekingen, de controle over uw omgeving overnemen en een schone opslagomgeving garanderen.

12/2024
Pure Storage FlashArray//C20
Extending the Pure Storage platform to entry-level capacities, FlashArray//C20 brings enterprise class storage to edge deployments and smaller workloads.
Datasheet
3 pagina's
NEEM CONTACT MET ONS OP
Vragen, opmerkingen?

Hebt u een vraag of opmerking over Pure-producten of certificeringen?  Wij zijn er om te helpen.

Een demo inplannen

Plan een livedemo in en zie zelf hoe Pure kan helpen om jouw data in krachtige resultaten om te zetten. 

Bel ons: 31 (0) 20-201-49-65

Media: pr@purestorage.com

 

Pure Storage

Herikerbergweg 292

1101 CT . Amsterdam Zuidoost

The Netherlands

info@purestorage.com

Sluiten
Uw browser wordt niet langer ondersteund!

Oudere browsers vormen vaak een veiligheidsrisico. Om de best mogelijke ervaring te bieden bij het gebruik van onze site, dient u te updaten naar een van deze nieuwste browsers.