Daniel Jonietz Kaiserslautern Mai 2001

Download Report

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