Fehlerdetektion
Cyclic‐Redanduncy‐Check
Modulo 2 Arithmetik
Grundlagen der Rechnernetze ‐Übertragungssicherung 8
A B A B 0 0
0 1 1 0 1 1
A B A B 0 0
0 1 1 0 1 1
A B A B 0 0
0 1 1 0 1 1
Beispiel 0110111011
1101010110
=
Addition Modulo 2 Subtraktion Modulo 2 Multiplikation Modulo 2
SS 2012
Division Modulo 2
1010111 : 1101 = ????
CRC Idee
Grundlagen der Rechnernetze ‐Übertragungssicherung 10
1010010000 : 1101
SS 2012
n‐k Nullen an Datenblock D anhängen:
Bestimmen von FCS F:
Zu versendender Frame T:
Cyclic‐Redundancy‐Check (CRC)
1010001101
n‐Bit‐Frame T
k‐Bit‐Datenblock D (n‐k)‐Bit‐FCS F
01110 110101
(n‐k+1)‐Pattern P T ist immer durch P teilbar:
Auswirkung von Fehlern
Grundlagen der Rechnernetze ‐Übertragungssicherung 12
Ein Fehler mit nicht teilbarem Fehler‐Pattern wird erkannt:
1010001101 01110
1000011101 01011
T
T
rE
Sender
Empfänger
SS 2012
Darstellung von Datenblock und Pattern als Polynom:
Datenblock um n‐k Stellen (also hier 4 Stellen) verschieben:
Berechnung der FCS:
Darstellung des zu versendenden Frames T
CRC mit Polynomen
110011
k‐Bit Datenblock D
11001
(n‐k+1)‐Pattern P
Polynom‐Division Modulo 2
Grundlagen der Rechnernetze ‐Übertragungssicherung 14
X
6+ X
4+ X
2+ X
1+ 1 : X
3+ X
2+ 1 =
SS 2012
00101
Auswirkung von Fehlern
10100
10001
T
T
rE
Sender
Empfänger
Für Generator P(X) und T(X)/P(X) = Q(X) werden nicht teilbare Fehler‐Pattern erkannt:
Erkennbare und nicht erkennbare Fehler
Grundlagen der Rechnernetze ‐Übertragungssicherung 16
Ein Fehler ist nicht erkennbar genau dann wenn:
Single‐Bitfehler ist immer erkennbar, wenn P(X) mindestens zwei Terme enthält
Bitfehler‐Burst < Anzahl Check‐Bits ist immer erkennbar, wenn P(X) den Term 1 enthält
SS 2012
Weitere CRC‐Fakten
Double‐Bitfehler immer erkennbar, wenn P(X) einen Faktor mit drei Termen besitzt (ohne Beweis)
Ungeradzahlige Bitfehler immer erkennbar, solange P(X) einen Faktor (X+1) enthält (ohne Beweis)
Beliebte Polynome
CRC‐12 = X
12+ X
11+ X
3+ X
2+ 1
CRC‐16 = X
16+ X
15+ X
2+ 1
Fehlerkorrektur
Grundlagen der Rechnernetze ‐Übertragungssicherung 18
SS 2012
Ablauf der Fehlerkorrektur
Beispiel Two‐Dimensional‐Parity
Grundlagen der Rechnernetze ‐Übertragungssicherung 20
0 1 0 1 1 1 1 0 0 1 1 0 1 0 0 1
SS 2012
Erkenn‐ und Korrigierbarkeit von Fehlern
0 1 0 1 0 1 1 1 0 1 0 1 1 0 0 1 0 0 1 0 0 1 0 0 1
0 1 0 1 0 1 1 1 0 1 0 1 1 0 0 1 0 0 1 0 0 1 0 0 1
Ein‐Bit‐Fehler immer korrigierbar
0 1 0 1 0 1 1 1 0 1 0 1 1 0 0
Zwei‐Bit‐Fehler nicht immer korrigierbar
0 1 0 1 0 1 1 1 0 1 0 1 1 0 0
Zwei‐Bit‐Fehler immer erkennbar Nicht‐erkennbarer Fehler
Hamming‐Distanz
Grundlagen der Rechnernetze ‐Übertragungssicherung 22
Hamming‐Distanz d(v1, v2) zwischen zwei n‐Bit‐Sequenzen v1 und v2
Beispiel: vier 4‐Bit‐Sequenzen mit einer paarweisen Hamming‐Distanz von
mindestens 2
Wieviele Bit‐Fehler können erkannt werden?
SS 2012
Allgemein:
Ablauf der Übertragung im Falle keiner Bitfehler
Block‐Codes
Datenblock Codewort 00 -> 00000 01 -> 00111 10 -> 11001 11 -> 11110
Erkennen von Bit‐Fehlern: Es sei Code = {b1,...,bk} und es werde b empfangen:
Sender
Empfänger
f : Datenblock
Codewort
Korrigieren von Bit‐Fehlern: Es sei Code = {b
1,...,b
k} und es werde b empfangen:
Korrigieren von Bitfehlern
Grundlagen der Rechnernetze ‐Übertragungssicherung 24
Empfangen Nächstes gültiges CW Daten Datenblock Codewort
00 -> 00000 01 -> 00111 10 -> 11001 11 -> 11110
SS 2012
Für k Daten‐Bits und n‐Bit Code‐Wörter gilt
Eindeutiges C‐Wort für jeden D‐Block, also
Benötigte Anzahl gültiger Code‐Wörter
Redundante Bits und Code‐Redundanz
Code‐Rate
Benötigtes Verhältnis zwischen k und r=n‐
k zum Korrigieren von allen 1‐Bit‐Fehlern?