Pakete
- Netzwerke zerteilen Dateien nicht als Strom von Bits
- Sie zerteilen die Daten in kleine Blöcke, sg. Pakete
- Pakete werden unabhängig voneinander übertragen
- Solche Netzwerke werden auch Paket-Netzwerke genannt
Gründe
- Bessere Fehlererkennung und Ausbesserung: Nur das Fehlerhafte Paket und nicht die ganze Datei müssen neu übertragen werden
- Faire Ressourcenverteilung
- Effiziente Ressourcenverteilung:
- Ohne: Bei 1Gbps können nur 10 Nutzer mit 100Mbps senden, aber nicht jeder nutzt immer seine 100Mbps
- Mit: Wenn ein Nutzer nicht sendet, können andere die Bandbreite nutzen -> Mehr Nutzer möglich
Header und Trailer
- Sender versieht Datenblock mit einem Rahmen (-> Frame):
- Header (=Kopf)
- Trailer (= Anhänger)
Terminologie
- Frame: Header + Nutzdaten + Trailer
- Paket: Header + Nutzdaten (ohne Trailer)
- Datagramm: Paket, das unzuverlässig übertragen wird
- Segment: Paket, das bei Fehler wiederholt übertragen wird
Ethernet
- 22 Byte Header (Präambel, SFD, MAC-Adressen, Typ-Feld)
- 0-1500 Byte Daten inkl. Auffüllzeichen (“PAD”). Die sind dazu da, dass das Paket die Mindestgröße einhält
- 4 (+12) Byte Trailer (CRC, Idle)
-> Min. 64, Max. 1518 Byte
Effizienz
Zu welchem Anteil wird die verfügbare Kapazität des Netzwerks zur Übertragung der eigentlichen Nutzdaten genutzt?
Übertragungsfehler
- Elektromagnetische Störungen
- Hintergrundrauschen, Signal-Rauschabstand, SNR
- Inteferenzen können sogar dazu sorgen, dass was empfangen wird obwohl nix gesendet wird
Fehlererkennung
Idee: Sendung zusätzlicher Daten, die die Daten charakterisieren, Empfänger überprüft ob die Daten sinn machen
Parity Check
- Redundante Information: 1 Bit
- Even Parity Bit: Anzahl der 1er Bits ist gerade
- Odd Parity Bit: Anzahl der 1er Bits ist ungerade
- Fehlererkennung von einem Bitfehler, 2 oder 4… Fehler werden nie erkannt
- Erkennt nicht wo der Fehler liegt
Zweidimensionale Parität
Checksum
- 16-Bit checksum (Gibt auch 32-Bit checksum oder andere):
- Interpretiere immer 16 Bit als ganze Zahlen und summiere diese
- Verwende davon den niederwertigeren Teil (die unteren 16 Bits)
- Addiere den Übertrag (alles was über den unteren 16 Bits ist) dazu
- Vorteile: Eine einzige Prüfsumme wird verwendet, wenig overhead
- Nachteile: Nicht alle üblichen Fehler werden übertragen, z.B. ein Byte ist eins größer, ein anderes ist eins kleiner -> Checksum geht auf
Cyclic Redundancy Checksum (CRC)
- Einsatzgebiete: Ethernet, WLAN, … - gut per Hardware berechenbar
- Komponenten: XOR-Gatter, Shift-Register
- Phasen: Init (Alle Register auf 0), Input (Lege Nächstes Bit an Start an), Shift, Input, Shift, …
- CRC (=Inhalt der Register nach dem kompletten durchgehen) wird angehängt und gesendet
Fehlerbehebung
2 Möglichkeiten:
- Sende weitere redundante Daten an denen der Empfänger den Fehler beheben kann
- Der Empfänger fordert das Datenpaket nochmal an
Bei geringer BER (Bit-Error-Rate) ist die zweite Möglichkeit effizienter
Es gibt zwei Anforderungsverfahren:
- Empfänger schickt dem Sender nur bei einem Fehler dass er das Paket bitte nochmal senden möge
- Empfänger schickt dem Sender nach jedem Paket dass es fehlerfrei empfangen wurde
Meistens Methode 2. Bei Methode 1 kann es ja sein dass das Paket beim Empfänger gar nicht erst ankommt und der Sender denkt “alles ist ok”
Mehrere Unterverfahren:
- Stop and Wait: Erst nächstes Senden nach Bestätigung
- Aber: Geringe Datenrate, da immer auf Antwort gewartet werden muss (Nur eine Spur)
- Sliding Window: Bestätigung nach
(Window) Paketen - Die beste Effizienz wird erzielt, wenn das Fenster doppelt so groß ist wie das Fassungsvermögen der Leitung