Transcript Daniel Jonietz Kaiserslautern Mai 2001
Slide 1
Fehler in Rechnernetzen
IFB Speyer
Daniel Jonietz
2006
Slide 2
Worum gehts?
Es können verschiedene Fehler auftreten:
–
–
–
–
2
Pakete werden bei Übertragung geändert
Pakete gehen komplett verloren
Pakete werden in einer zeitlich anderen Reihenfolge
übertragen
Pakete werden dupliziert
dj
Slide 3
Paketänderungen
Was möchte man?
–
–
3
Mindestens:
Feststellen, dass ein Fehler vorliegt
Paritätsbits, Prüfsummen, CRC
Schön wäre aber auch:
Fehler reparieren
Hamming-Code, vgl. Skript WBL
dj
Slide 4
Motivation
4
dj
Slide 5
Welche Bitfehler gibt es?
Einzelbitfehler
–
Doppelbitfehler
–
Zwei aufeinanderfolgende Bits sind gekippt
Fehlerbündel
–
5
Ein Bit ist „gekippt“, d.h. falsch
N aufeinanderfolgende Bits sind falsch
dj
Slide 6
Wie stellt man Paketänderungen fest?
Grundsätzlicher Lösungsansatz:
Einführen von Redundanz
–
–
–
–
Paritätsbit
Prüfsummen
Redundanzcodes
Hammingcodes
Rahmenformat muss geändert werden
neue Vereinbarung (Protokoll) nötig
6
dj
Slide 7
Allgemeiner Ansatz
Sender
–
–
Empfänger
–
–
–
7
wendet Algorithmus auf zu sendende Daten an, dieser
liefert die Prüfbits
versendet Nutzdaten und Prüfbits
trennt Daten und Prüfbits voneinander
wendet gleichen Algorithmus auf die Nutzdaten an
vergleicht gesendete Prüfbits mit den selbst ermittelten
dj
Slide 8
Paritätsbits
Idee:
Ein zusätzliches Bit gibt an, wie viele Bits 1 sind
Varianten:
–
–
Erfolg:
–
8
Gerade Parität (Anzahl 1 gerade Parität 0)
das PB wird so gesetzt, dass Anzahl 1er gerade
Ungerade Parität (Anzahl 1 ungerade Parität 0)
Es werden nur „ungeradzahlige Bitkipper“ detektiert
dj
Slide 9
Prüfsummen
Verschiedene Varianten
–
–
–
–
–
9
Z.B. einfache „Summe“ modulo 100:
Zwei Prüfstellen, der Einfachheit halber betrachten wir
Dezimale
06 23 04 33 (06+23+04=33)
Was taugt dieses Verfahren?
08 20 05 33 (08+20+08=33) !!!
dj
Slide 10
Zyklische Redundanzcodes (CRC)
10
dj
Slide 11
CRC - Details
11
Bitfolgen werden als Polynome aufgefasst
Berechnungen erfolgen ohne Berücksichtigung
möglicher Überträge
Sender und Empfänger einigen sich auf ein
Generator-Polynom
Prüfbits = Rest der Division Daten / GP
Gibt normierte Polynome, z.B. CRC-4
dj
Slide 12
CRC - Leistungsfähigkeit
Beispiel CRC-CCITT G=x16+x12+x5+1
–
–
–
12
Entdeckt alle Einzelbitfehler, alle Doppelbitfehler, alle
Bitfehler mit ungerader Bitanzahl, alle Fehlerbündel bis
zu 16 Bit Länge
Entdeckt 99,997% aller 17-Bit-Fehlerbündel
Entdeckt 99,998% aller Fehlerbündel mit 18 oder mehr
Bits
dj
Slide 13
Woher kommt das CRC-Polynom?
13
„Choosing a poly is somewhat of a black art“
(Ross N. Williams: “A painless guide to crc error
detection algorithms”)
Viel Mathematik
dj
Slide 14
Polynom-Beispiele
CRC-16
–
Ethernet
–
14
(16,15,2,0)
(32,26,23,22,16,12,11,10,8,7,5,4,2,1,0)
dj
Slide 15
Paketverlust: Ursachen
Problem: Pakete können verloren gehen
–
Ursachen:
–
–
–
15
Grenzfall: „lange“ Übertragungsdauer
Empfänger verwirft Paket, weil er einen Fehler feststellt
Empfänger ist nicht in der Lage Paket zu empfangen
Netzwerk verliert das Paket
oder leitet es falsch weiter
dj
Slide 16
Paketverlust: Abhilfe
Quittungsbetrieb
–
–
–
16
Empfänger sendet nach Erhalt eines Paketes ein
Quittungspaket an Sender und bestätigt damit den Erhalt
des Pakets
Ist das empfangene Paket offensichtlich fehlerhaft,
sendet er eine „negative“ Quittung und fordert damit das
Paket neu an
Bleibt die Quittung beim Sender aus, so sendet er von
sich aus nach einer gewissen Zeit das Paket erneut
dj
Slide 17
Folgerung aus Quittungsbetrieb
Sender
–
Empfänger
–
17
Muss auch empfangen können
Muss auch senden können
dj
Slide 18
Datenfluss
Simplex
–
Halbduplex
–
A und B können senden und empfangen, aber nie
gleichzeitig
(Voll-)Duplex
–
18
A kann nur senden, B nur empfangen
A und B können senden und empfangen, sogar
gleichzeitig
dj
Slide 19
Geänderte Paket-Reihenfolge
Idee: Sequenznummern
–
–
19
Sender nummeriert die versendeten Pakete durch
Empfänger ist dann anhand der Nummern in der Lage,
die Reihenfolge wieder herzustellen
dj
Slide 20
Duplikate von Paketen
Ursache:
–
Idee: Sequenznummern
–
–
20
Z.B. „langsames“ Paket: Sender sendet nach Timeout
ein Paket erneut
Zwei aufeinander folgende Pakete mit der gleichen
Sequenznummer dürften nicht auftreten
Duplikat kann gelöscht (verworfen) werden
dj
Slide 21
Send and Wait - Protokoll
(auch: Stop and Wait-Protokoll)
Sender
–
–
Empfänger
–
–
–
21
Sendet Paket
Wartet auf Quittung
Empfängt Paket
Prüft, ob er Fehler feststellen kann
Sendet entsprechend negative / positive Quittung
dj
Slide 22
Weitere Probleme …
Die Quittung geht (wiederholt) verloren
–
–
Lösung:
–
22
Z.B. wenn Empfänger grundsätzlich nicht senden kann
Sender würde endlos lange versuchen, das Paket zu übertragen
Hat der Sender N-mal versucht ein bestimmtes Paket zu senden gibt
er auf.
Anderer Ansatz: Mittels 3-Wege-Handshake die Quittung
bestätigen
dj
Fehler in Rechnernetzen
IFB Speyer
Daniel Jonietz
2006
Slide 2
Worum gehts?
Es können verschiedene Fehler auftreten:
–
–
–
–
2
Pakete werden bei Übertragung geändert
Pakete gehen komplett verloren
Pakete werden in einer zeitlich anderen Reihenfolge
übertragen
Pakete werden dupliziert
dj
Slide 3
Paketänderungen
Was möchte man?
–
–
3
Mindestens:
Feststellen, dass ein Fehler vorliegt
Paritätsbits, Prüfsummen, CRC
Schön wäre aber auch:
Fehler reparieren
Hamming-Code, vgl. Skript WBL
dj
Slide 4
Motivation
4
dj
Slide 5
Welche Bitfehler gibt es?
Einzelbitfehler
–
Doppelbitfehler
–
Zwei aufeinanderfolgende Bits sind gekippt
Fehlerbündel
–
5
Ein Bit ist „gekippt“, d.h. falsch
N aufeinanderfolgende Bits sind falsch
dj
Slide 6
Wie stellt man Paketänderungen fest?
Grundsätzlicher Lösungsansatz:
Einführen von Redundanz
–
–
–
–
Paritätsbit
Prüfsummen
Redundanzcodes
Hammingcodes
Rahmenformat muss geändert werden
neue Vereinbarung (Protokoll) nötig
6
dj
Slide 7
Allgemeiner Ansatz
Sender
–
–
Empfänger
–
–
–
7
wendet Algorithmus auf zu sendende Daten an, dieser
liefert die Prüfbits
versendet Nutzdaten und Prüfbits
trennt Daten und Prüfbits voneinander
wendet gleichen Algorithmus auf die Nutzdaten an
vergleicht gesendete Prüfbits mit den selbst ermittelten
dj
Slide 8
Paritätsbits
Idee:
Ein zusätzliches Bit gibt an, wie viele Bits 1 sind
Varianten:
–
–
Erfolg:
–
8
Gerade Parität (Anzahl 1 gerade Parität 0)
das PB wird so gesetzt, dass Anzahl 1er gerade
Ungerade Parität (Anzahl 1 ungerade Parität 0)
Es werden nur „ungeradzahlige Bitkipper“ detektiert
dj
Slide 9
Prüfsummen
Verschiedene Varianten
–
–
–
–
–
9
Z.B. einfache „Summe“ modulo 100:
Zwei Prüfstellen, der Einfachheit halber betrachten wir
Dezimale
06 23 04 33 (06+23+04=33)
Was taugt dieses Verfahren?
08 20 05 33 (08+20+08=33) !!!
dj
Slide 10
Zyklische Redundanzcodes (CRC)
10
dj
Slide 11
CRC - Details
11
Bitfolgen werden als Polynome aufgefasst
Berechnungen erfolgen ohne Berücksichtigung
möglicher Überträge
Sender und Empfänger einigen sich auf ein
Generator-Polynom
Prüfbits = Rest der Division Daten / GP
Gibt normierte Polynome, z.B. CRC-4
dj
Slide 12
CRC - Leistungsfähigkeit
Beispiel CRC-CCITT G=x16+x12+x5+1
–
–
–
12
Entdeckt alle Einzelbitfehler, alle Doppelbitfehler, alle
Bitfehler mit ungerader Bitanzahl, alle Fehlerbündel bis
zu 16 Bit Länge
Entdeckt 99,997% aller 17-Bit-Fehlerbündel
Entdeckt 99,998% aller Fehlerbündel mit 18 oder mehr
Bits
dj
Slide 13
Woher kommt das CRC-Polynom?
13
„Choosing a poly is somewhat of a black art“
(Ross N. Williams: “A painless guide to crc error
detection algorithms”)
Viel Mathematik
dj
Slide 14
Polynom-Beispiele
CRC-16
–
Ethernet
–
14
(16,15,2,0)
(32,26,23,22,16,12,11,10,8,7,5,4,2,1,0)
dj
Slide 15
Paketverlust: Ursachen
Problem: Pakete können verloren gehen
–
Ursachen:
–
–
–
15
Grenzfall: „lange“ Übertragungsdauer
Empfänger verwirft Paket, weil er einen Fehler feststellt
Empfänger ist nicht in der Lage Paket zu empfangen
Netzwerk verliert das Paket
oder leitet es falsch weiter
dj
Slide 16
Paketverlust: Abhilfe
Quittungsbetrieb
–
–
–
16
Empfänger sendet nach Erhalt eines Paketes ein
Quittungspaket an Sender und bestätigt damit den Erhalt
des Pakets
Ist das empfangene Paket offensichtlich fehlerhaft,
sendet er eine „negative“ Quittung und fordert damit das
Paket neu an
Bleibt die Quittung beim Sender aus, so sendet er von
sich aus nach einer gewissen Zeit das Paket erneut
dj
Slide 17
Folgerung aus Quittungsbetrieb
Sender
–
Empfänger
–
17
Muss auch empfangen können
Muss auch senden können
dj
Slide 18
Datenfluss
Simplex
–
Halbduplex
–
A und B können senden und empfangen, aber nie
gleichzeitig
(Voll-)Duplex
–
18
A kann nur senden, B nur empfangen
A und B können senden und empfangen, sogar
gleichzeitig
dj
Slide 19
Geänderte Paket-Reihenfolge
Idee: Sequenznummern
–
–
19
Sender nummeriert die versendeten Pakete durch
Empfänger ist dann anhand der Nummern in der Lage,
die Reihenfolge wieder herzustellen
dj
Slide 20
Duplikate von Paketen
Ursache:
–
Idee: Sequenznummern
–
–
20
Z.B. „langsames“ Paket: Sender sendet nach Timeout
ein Paket erneut
Zwei aufeinander folgende Pakete mit der gleichen
Sequenznummer dürften nicht auftreten
Duplikat kann gelöscht (verworfen) werden
dj
Slide 21
Send and Wait - Protokoll
(auch: Stop and Wait-Protokoll)
Sender
–
–
Empfänger
–
–
–
21
Sendet Paket
Wartet auf Quittung
Empfängt Paket
Prüft, ob er Fehler feststellen kann
Sendet entsprechend negative / positive Quittung
dj
Slide 22
Weitere Probleme …
Die Quittung geht (wiederholt) verloren
–
–
Lösung:
–
22
Z.B. wenn Empfänger grundsätzlich nicht senden kann
Sender würde endlos lange versuchen, das Paket zu übertragen
Hat der Sender N-mal versucht ein bestimmtes Paket zu senden gibt
er auf.
Anderer Ansatz: Mittels 3-Wege-Handshake die Quittung
bestätigen
dj