FB18 - Das Forum für Informatik

fb18.de / Diplom Informatik / Unterbereich Grundstudium / Technische Informatik

CRC

CRC 2004-06-26 21:07
Anonymer User
Hallo,

kann mir vielleicht jemand das CRC-Verfahren anhand des Beispiels unter:

http://isg.pharma.ethz.ch/pierre.suter/fhbb/2001/dnt_2001_17.pdf

auf Seite 10-12 erklären?

Danke.

Re: CRC 2004-06-26 21:18
Slater
ein Hinweis, dass das 5 MB sind, wäre nicht schlecht..

schaffst du es die wichtigen 0.001 MB zu kopieren?..

Re: CRC 2004-06-26 22:42
Anonymer User
Sorry, war mir nicht aufgefallen wegen DSL. Ich versuch's mal abzuschreiben worum es geht:

Zyklische Blocksicherung = cyclic redundancy check (CRC)
• Betrachte die Datenbits, D, als Binärzahl
• Wähle r+1 Bitmuster (Erzeuger, Generator), G
• Ziel: wähle r CRC Bits, R, so dass:
– exakt durch G dividierbar ist (modulo 2)
– Empfänger G kennt und durch G dividiert. Falls ein Rest entsteht,
der nicht Null ist –> Fehler entdeckt
– Kann alle Büschelfehler entdecken, die kleiner als r+1 Bits lang sind
• Breite Anwendung in der Praxis (ATM, HDLC)

Grafik zum "bit pattern":


———————————–
|D:data bits to be sent | R:CRC bits|
———————————–

Mathematische Formel: D*2^r XOR R

Beispiel: (das worum es geht)

Gesucht: D*2r XOR R = nG

aequivalent: D*2r = nG XOR R

aequivalent: falls wir D*2r durch G dividieren ermitteln wir den Rest R:

R=Rest[(D*2r)/G]

G = 1001
D = 101110000

101011 1001 101110000 1001 ---- 101 000 --- 1010 1001 ---- 110 000 --- 1100 1001 ---- 1010 1001 ---- 011 = R Hoffe es kann mir jemand das Beispiel und warum man die Sachen entsprechend waehlt erklaeren.

Re: CRC 2004-06-26 23:38
Slater
was möchtest du denn dazu nun wissen?

es gilt Daten D = d Datenbits zu sichern und zwar mit möglichst wenig Sicherungsbits r,

je mehr Bits man zur Sicherung verwendet, desto sicherer kann man das ganze machen,
aber irgendwie muss man sich ja entscheiden und ein Verfahren überlegen,

CRC verschlüsselt d Nutzdaten mit gewählten r Bits

was macht so ein Verfahren?:
es bestimmt aus den Nutzdaten die r Sicherungsbits,
verschickt beides zusammen,
und der Empfänger rechnet nach, wenn er aus den Nutzdaten die
gleichen Sicherungbits errechnet dann war die Übertragung wohl richtig,
ansonsten müssen sich ja die Nutzdaten verändert haben

fragt man sich nur noch wie CRC denn die r Bits aus den d Datenbits bestimmt,

das geht so:
das Verfahren benötigt ein Bitmuster der Länge r+1

nun nimmt man die d Datenbits und 'dividiert' oder 'xor-t' durch das Bitmuster,
(wenn du das noch nicht versteht, dann sag Bescheid)
durch das 'xor-en' erhält man einen Rest, das sind die r Sicherungsbits

so, nun hat man die d und die r Bits, verschickt diese, Empfänger rechnet nach
und kommt auf das gleiche oder nicht,


mathematische Besonderheiten u.a.:
1. durch das xor-Verfahren und Restbildung kommt es zu den interessanten Umstand,
dass die Zusammensetzung aus d und r (hintereinander geschrieben, aus d = 1001 und
r = 01 wird 100101) 'geteilt durch' r = 0 ergibt,

2. das ganze lässt sich auch als Polynom interpretieren
d = 1001 = 1*x^3+0*x^2+0*x^1+1*x^0, r ebenso (r nennt man dann auch Generatorpolynom),
nun funktioniert das ganze genauso indem man das d-Polynom durch das r-Polynom
polynomdividiert

sicherheitstechnische Besonderheiten:
wenn man das Bitmuster r sinnvoll wählt kann man eine ganze Menge an Fehlern
hunderprozentig ausschließen, zum Beispiel die Büschelfehler wie dort angegeben,


blah blah, frag halt genauer..

Re: CRC 2004-06-27 00:29
Anonymer User
Vielen Dank,

jetzt hab ich es verstanden, ich hatte vor allem Probleme wo im Beispiel auf einmal G herkam und worauf es bei der Wahl von G ankommt.

Also danke, dass du dir die Mühe gemacht hast und das so ausführlich erklärt hast.

[img]http://www.fb18.de/gfx/14.gif[/img]