Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

42
Fehler in Rechnernetzen — die Sicherungsschicht IFB Speyer Daniel Jonietz 2007

Transcript of Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

Page 1: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

Fehler in Rechnernetzen — die Sicherungsschicht

IFB Speyer

Daniel Jonietz

2007

Page 2: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

dj2

Worum gehts?

Es können verschiedene Fehler auftreten:– Pakete werden bei Übertragung geändert– Pakete gehen komplett verloren– Pakete werden in einer zeitlich anderen Reihenfolge

übertragen– Pakete werden dupliziert– Pakete werden zu schnell empfangen– ...

Page 3: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

dj3

Also:

Aufgaben der Sicherungsschicht:– Daten in der richtigen Reihenfolge ausliefern– Daten fehlerfrei ausliefern– dabei den Empfänger nicht überfordern (Organisation

des Datenflusses)

Dazu legt die Sicherungsschicht die Pakete in einen Rahmen (frame), bestehend aus Header, Payload (=Paket) und Trailer.

Page 4: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

dj4

Dienste

Man unterscheidet drei verschiedene Dienste:– verbindungsloser, unbestätigter Dienst

Rahmen unabhängig, Empfang nicht bestätigt– verbindungsloser, bestätigter Dienst

Rahmen unabhängig, Empfang bestätigt– verbindungsorientierter, bestätigter Dienst

Rahmen sind nummeriert, in richtiger Reihenfolge, jeder Rahmen bestätigt.Verbindungsauf- und abbau nötig!

Page 5: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

dj5

Rahmenbildung

Feste Rahmenlänge– festgelegt oder durch Längenangabe im Header– Längenangabe fehlerhaft?

Flagbytes / Flagbits– Flags in Daten? Stuffing

Kodierungsverletzungen– benötigt doppelte Bandbreite

Page 6: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

dj6

Paketänderungen

Was möchte man?– Mindestens:

Feststellen, dass ein Fehler vorliegtParitätsbits, Prüfsummen, CRC

– Schön wäre aber auch: Fehler reparieren Hamming-Code, vgl. Skript WBL

Page 7: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

Bitfehler

Page 8: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

dj8

Motivation

Page 9: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

dj9

Welche Bitfehler gibt es?

Einzelbitfehler– Ein Bit ist „gekippt“, d.h. falsch

Doppelbitfehler– Zwei aufeinanderfolgende Bits sind gekippt

Fehlerbündel – N aufeinanderfolgende Bits sind falsch

Page 10: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

dj10

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

Page 11: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

dj11

Allgemeiner Ansatz

Sender– wendet Algorithmus auf zu sendende Daten an, dieser

liefert die Prüfbits– versendet Nutzdaten und Prüfbits

Empfänger– trennt Daten und Prüfbits voneinander– wendet gleichen Algorithmus auf die Nutzdaten an– vergleicht gesendete Prüfbits mit den selbst ermittelten

Page 12: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

dj12

Paritätsbits

Idee: Ein zusätzliches Bit gibt an, wie viele Bits 1 sind

Varianten:– 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)

Erfolg:– Es werden nur „ungeradzahlige Bitkipper“ detektiert

Page 13: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

dj13

Prüfsummen

Verschiedene Varianten– 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) !!!

Page 14: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

dj14

Zyklische Redundanzcodes (CRC)

Page 15: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

dj15

CRC - Details

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

Page 16: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

dj16

CRC - Leistungsfähigkeit

Beispiel CRC-CCITT G=x16+x12+x5+1– 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

Page 17: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

dj17

Woher kommt das CRC-Polynom?

„Choosing a poly is somewhat of a black art“ (Ross N. Williams: “A painless guide to crc error detection algorithms”)

Viel Mathematik

Page 18: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

dj18

Polynom-Beispiele

CRC-16– (16,15,2,0)

Ethernet– (32,26,23,22,16,12,11,10,8,7,5,4,2,1,0)

Page 19: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

Quittungsbetrieb

Page 20: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

dj20

Erster Ansatz

Rahmen korrekt angekommen?– Sende positive Quittung (ACK)

Rahmen angekommen, Fehler erkannt?– Sende negative Quittung (NAK)

Sender sendet Rahmen erneut

Rahmen nicht angekommen– wann weiß man das?– man führt Timer ein

Page 21: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

dj21

Wie kommt es zu Verlust?

Pakete werden verworfen Rechner ist nicht erreichbar / ausgeschaltet /

Leitung physikalisch unterbrochen ...

Page 22: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

dj22

Ansatz mit Timern

Sender schickt Rahmen und startet Timer Empfänger prüft und schickt ACK oder NAK

– kommt ACK wird Timer bei Sender gelöscht– kommt NAK wird Timer bei Sender gelöscht und

Sendeprozess beginnt erneut (inkl. neuem Timer)– läuft Timer ab, ohne dass ACK oder NAK ankamen:

entweder der Rahmen erneut geschickt, aber Probleme wenn Originalrahmen doch ankam oder ankommt: Duplikat erzeugt!

oder eine Problemmeldung an den Empfänger gesendet.

Page 23: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

dj23

Quittierung des Duplikats?

Ja! Positiv, sonst: wird erneut gesendet!

Page 24: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

dj24

Send and Wait

Wird so für jeden Rahmen verfahren, nennt man das Send and Wait-Protokoll (auch Stop and Wait)

Einen Rahmen senden, auf Quittung warten und entsprechend reagieren.

Nachteil:– Wenn Rahmen verloren geht, muss der Timer

abgewartet werden, bevor weitere Daten gesendet werden können!

Page 25: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

dj25

Wenn Duplikat auftritt

ACK ist verloren gegangen, Rahmen erneut gesendet: Empfänger kann das nicht erkennen.

Folgerung:Rahmen durchnummerieren. Duplikate haben die gleiche Nummer und können erkannt werden.

Frage:Wie viel „Platz“ reservieren wir für die Nummern? Anzahl der Rahmen ist kaum abzuschätzen!

Page 26: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

dj26

Einfache Sequenznummer

Kann keine Verwechslung von Paket m und m+2 geben, sonder nur zwischen m und m+1

Reicht also Pakete abwechselnd 0 und 1 anzuhängen.

Page 27: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

dj27

Huckepack-Quittungen

Der Versand eines kompletten Rahmens nur für eine Quittung ist Verschwendung

Besser:Warte, bis selbst Daten zu versenden sind und versende die Quittung mit den Daten mit.

Nachteil:Wie lange soll gewartet werden, bis Daten vorliegen?

Page 28: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

dj28

Schiebefenster-Protokolle

Sender und Empfänger verwalten, wie viele Rahmen sie versenden bzw. empfangen in „Fenstern“

Fenstergröße=1 entspricht Send and Wait wie besprochen

Fenstergröße>1 führt i.A. zu besserer Auslastung.

Page 29: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

dj29

gehe-n-zurück

Sender sendet kontinuierlich Daten Empfänger quittiert (einzeln) Angenommen Rahmen 2 geht verloren:

ACK für Rahmen 2 fehltSender sendet trotzdem weiter bis Timeout für Rahmen 2, merkt dann, das etwas nicht stimmt und sendet alle Rahmen ab 2 erneut.

Page 30: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

dj30

selektive Wiederholung

Sender sendet kontinuierlich Daten Empfänger quittiert (einzeln) Angenommen Rahmen 2 geht verloren:

Empfänger merkt das bei Eintreffen des Rahmens 3 und sendet NACK für Rahmen 3.

Sender sendet Rahmen 2 erneut, fährt danach vor wie gehabt.

Sender und Empfänger müssen Puffer führen!

Page 31: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

dj31

Paketverlust: Ursachen

Problem: Pakete können verloren gehen– Grenzfall: „lange“ Übertragungsdauer

Ursachen:– Empfänger verwirft Paket, weil er einen Fehler feststellt– Empfänger ist nicht in der Lage Paket zu empfangen– Netzwerk verliert das Paket, verwirft das Paket

oder leitet es falsch weiter

Page 32: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

dj32

Folgerung aus Quittungsbetrieb

Sender– Muss auch empfangen können

Empfänger– Muss auch senden können

Page 33: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

dj33

Datenfluss

Simplex– A kann nur senden, B nur empfangen

Halbduplex– A und B können senden und empfangen, aber nie

gleichzeitig

(Voll-)Duplex– A und B können senden und empfangen, sogar

gleichzeitig

Page 34: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

dj34

Geänderte Paket-Reihenfolge

Idee: Sequenznummern– Sender nummeriert die versendeten Pakete durch– Empfänger ist dann anhand der Nummern in der Lage,

die Reihenfolge wieder herzustellen

Page 35: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

dj35

Weitere Probleme …

Die Quittung geht (wiederholt) verloren– Z.B. wenn Empfänger grundsätzlich nicht senden kann– Sender würde endlos lange versuchen, das Paket zu übertragen

Lösung:– Hat der Sender N-mal versucht ein bestimmtes Paket zu senden gibt

er auf.

Anderer Ansatz: Mittels 3-Wege-Handshake die Quittung bestätigen

Page 36: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

Flußkontrolle

Page 37: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

dj37

Wozu?

Der Sender darf nur so schnell senden, wie der Empfänger die Daten verarbeiten kann.

Wird absichtlich zu schnell gesendet, spricht man von flooding (fluten)

Page 38: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

dj38

Varianten der Flußkontrolle

Feedback-based Flow Control Leaky-Bucket-Algorithmus

Page 39: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

dj39

Feedback-based Flow Control

Der Empfänger sendet nach jedem empfangenen Paket eine Bestätigung an den Sender, dass er wieder empfangsbereit ist

Entspricht etwa unserem vorgestellten Quittungsbetrieb

Page 40: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

dj40

Leaky-Bucket

Page 41: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

dj41

TCP

Page 42: Fehler in Rechnernetzen die Sicherungsschicht IFB Speyer Daniel Jonietz 2007.

dj42

Literatur

http://www.barghorn-online.de/ss2007/datenkomm/chap2/2-data-link_lay.html

http://de.wikipedia.org/wiki/Transmission_Control_Protocol