Themen Sicherungsschicht Rahmenbildung Häufig bereitgestellte Dienste Fehlererkennung
OSI-Modell: Data Link Layer TCP/IP-Modell: Netzwerk, Host-zu-Netz Aufgaben: Dienste für Verbindungsschicht bereitstellen Erkennen/Korrigieren von Übertragungsfehlern Regulierung des Datenflusses
Einordnung Quelle: Prentice Hall
Einordnung
Rahmenbildung Verbindungsschicht überträgt Pakete vom Sender zum Empfänger virtuell Nutzt dafür die Dienste der Sicherungsschicht real Quelle: Prentice Hall
Rahmenbildung Verbindungsschicht übergibt Pakete an die Sicherungsschicht Sicherungsschicht kapselt die Pakete in Rahmen Frames Quelle: Prentice Hall
Häufig bereitgestellte Dienste Unbestätigter verbindungsloser Dienst Verbindungslos keine logische Verbindung zw. Sender und Empfänger Ablauf Sender überträgt Frames Kein Warten auf Bestätigung, ob Rahmen angekommen Sinnvoll, wenn verspätete Daten schlimmer als verlorene z.b. bei Sprachübertragung
Häufig bereitgestellte Dienste Bestätigter verbindungsloser Dienst Verbindungslos keine logische Verbindung zw. Sender und Empfänger Ablauf Sender überträgt Frames Warten auf Bestätigung, ob Rahmen angekommen Wenn ja, weitere Frames senden Wenn nicht, z.b. Übertragung wiederholen Sinnvoll, bei unzuverlässigen Übertragungskanälen z.b. bei drahtlosen Systemen
Häufig bereitgestellte Dienste Bestätigter verbindungsorientierter Dienst Verbindungsorientiert logische Verbindung zw. Sender und Empfänger Ablauf Sender und Empfänger bauen Verbindung auf Sender überträgt Frames Warten auf Bestätigung, ob Rahmen angekommen Wenn ja, nächste Frames senden Wenn nicht, z.b. Übertragung wiederholen Sender und Empfänger bauen Verbindung ab
Genutzte Dienste der Bitübertragungsschicht Rahmen der Sicherungsschicht werden als Bitströme an Bitübertragungsschicht weitergegeben Bitübertragungsschicht überträgt Signale Signale werden als Bitströme interpretiert Übertragung kann fehlerhaft sein Erkennung von Rahmen-Grenzen auf Empfängerseite wichtig
Methoden der Rahmenaufteilung Zeichenzahl Problem: Durch Übertragungsfehler kann der folgende Rahmen nicht gefunden werden Quelle: Prentice Hall
Methoden der Rahmenaufteilung Byte-Stuffing Besonderes Flag-Byte am Anfang und Ende das Frames Problem: Was ist, wenn das Flag-Byte in den Nutzdaten vorkommt?
Methoden der Rahmenaufteilung Byte-Stuffing Einfügen eines Escape-Byte vor dem Flag-Byte in den Nutzdaten Quelle: Prentice Hall
Methoden der Rahmenaufteilung Bit-Stuffing Jeder Rahmen beginnt und endet mit 01111110 (Flag) Einfügen einer 0 nach 11111 in den Nutzdaten Quelle: Prentice Hall
Fehlererkennung / Fehlerkorrektur Fragestellungen: Wie erkennt der Empfänger, ob Daten falsch übertragen wurden? Wie erkennt der Empfänger, ob er die Daten korrigieren kann? Paritätsbitverfahren CRC Methode
Paritätsbitverfahren Zeilenparität Anhängen eines Paritätsbit vor der Übertragung: Bsp.: Gerade Parität Daten 10011010 Fehler erkannt, da 101110101 hätte ankommen müssen Paritätsbit hinzufügen Parität überprüfen Daten+Paritätsbit 100110100 Übertragung Fehler in Übertragung 101110100
Paritätsbitverfahren Zeilenparität Was ist damit? Daten 10011010 Fehler erkannt 100110101 wo kein Fehler in den Daten Paritätsbit hinzufügen Parität überprüfen Daten+Paritätsbit 100110100 Übertragung Fehler in Übertragung 100110101
Paritätsbitverfahren Zeilenparität Was ist damit? Daten 10011010 Kein Fehler erkannt 111110100 wo Fehler in den Daten Paritätsbit hinzufügen Parität überprüfen Daten+Paritätsbit 100110100 Übertragung Fehler in Übertragung 111110100
Paritätsbitverfahren Zeilenparität Erkennen von Einfachfehlern Keine Möglichkeit der Korrektur
Paritätsbitverfahren Paritätsbits für Zeilen und Spalten Zusammenfassen von Daten zu Blöcken Bsp.: ungerade Parität 01000101 0 11010011 0 fehlerfrei 01011101 0 11010011 0 erkennbar 01010101 0 11010011 0 korrigierbar 01011101 0 11000011 0 erkennbar 01011101 0 11001011 0 nicht erkennbar Quelle: Prof. Günther
Paritätsbitverfahren Paritätsbits für Zeilen und Spalten Zusammenfassen von Daten zu Blöcken Bsp.: ungerade Parität 01000101 0 11010011 0 fehlerfrei 01011101 0 11010011 0 erkennbar 01010101 0 11010011 0 korrigierbar 01011101 0 11000011 0 erkennbar 01011101 0 11001011 0 nicht erkennbar Quelle: Prof. Günther
Paritätsbitverfahren Paritätsbits für Zeilen und Spalten Zusammenfassen von Daten zu Blöcken Bsp.: ungerade Parität 01000101 0 11010011 0 fehlerfrei 01011101 0 11010011 0 erkennbar 01010101 0 11010011 0 korrigierbar 01011101 0 11000011 0 erkennbar 01011101 0 11001011 0 nicht erkennbar Quelle: Prof. Günther
Paritätsbitverfahren Paritätsbits für Zeilen und Spalten Zusammenfassen von Daten zu Blöcken Bsp.: ungerade Parität 01000101 0 11010011 0 fehlerfrei 01011101 0 11010011 0 erkennbar 01010101 0 11010011 0 korrigierbar 01011101 0 11000011 0 erkennbar 01011101 0 11001011 0 nicht erkennbar Quelle: Prof. Günther
Paritätsbitverfahren Paritätsbits für Zeilen und Spalten Erkennen von Einfach-, Zweifach, Dreifachfehlern Korrektur von Einfachfehlern Aber: Korrektur kann zu mehr falschen Bits führen
CRC Methode Cyclic Redundancy Check Verwendung von binären Polynom-Codes Erzeugung einer Prüfsumme für einen zu sendenden Rahmen Erkennung von Fehler-Bündeln (Bursts)
CRC Methode: Prinzip Nachricht als Binärzahl Generatorpolynom als Konstante G(x): (k+1 bit) M(x): (n bit) Berechnung der Prüfinformation Division: (M(x) * noch etwas ) / G(x) Übertragung von M(x) + Prüfinformation
CRC Methode: Modulo-2-Arithmetik Operation: XOR A B + - XOR 1 1 0 0 0 1 0 1 1 1 0 1 1 1 1 0 0 0 0 0
CRC Methode: Formal Ramen M(x): M x = x 9 x 8 x 6 x 4 x 3 x 1=1101011011 Generatorpolynom G(x): G x =x 4 x 1=10011 Multiplikation von M(x) mit Grad von G(x): x k =10000 Division durch G(x): Q x = M x x k / G x Rest R x =1110 Rest der Division ist Prüfinformation Anhängen der Prüfinformation an den Rahmen
CRC Methode: Beispielrechnung Quelle: Prentice Hall
CRC Methode: Empfänger dividiert übertragenen Frame (incl. Prüfinformation) durch Generatorpolynom Wenn Rest == 0: kein Fehler Wenn Rest!= 0: Fehler Erkennen von Einfach-, Zweifachfehlern Erkennen von ungeradzahligen Fehlern Erkennen von Fehlerbündeln Standardisierte Generatorpolynome: CRC-16: x 16 + x 15 + x 2 + 1 CRC-CCITT: x 16 + x 15 + x 5 + 1 CRC-32: x 32 + x 26 + x 23 + x 16 + x 12 + x 11 + x 10 + x 8 + x 7 + x 5 + x 4 + x 2 + x +1