Lektion 6 von 7

86% abgeschlossen
Fortschritt 6 / 7
14 Minuten

Verlust, Wiederholung, Zuverlässigkeit

Was bei Paketverlust passiert und warum nicht alles abgesichert ist

Verlust, Wiederholung, Zuverlässigkeit

Einführung

Daten in Netzwerken können verloren gehen - Kabel können gestört sein, Router können überlastet sein, Funkverbindungen können unterbrochen werden. In dieser Lektion lernen Sie, wie Netzwerke mit Verlust umgehen und warum nicht jede Übertragung zuverlässig sein muss.

Was passiert bei Paketverlust?

Ursachen für Paketverlust

1. Überlastung (Congestion)

Router-Puffer voll
→ Neue Pakete werden verworfen
→ "Congestion Drop"

2. Fehlerhafte Übertragung

Störungen auf der Leitung
→ Prüfsumme stimmt nicht
→ Paket wird verworfen

3. Defekte Hardware

Defektes Kabel, defekter Port
→ Signale kommen nicht an
→ Pakete verloren

4. Routing-Probleme

TTL läuft ab (zu viele Hops)
→ Router verwirft Paket
→ ICMP "Time Exceeded" zurück

5. Funkstörungen (WLAN)

Interferenzen, Distanz, Hindernisse
→ Signale kommen nicht an
→ Pakete verloren

Typische Verlustraten

Gute Netzwerke:

Kabel (Ethernet):     < 0.01% Verlust
Glasfaser:            < 0.001% Verlust

Problematische Netzwerke:

WLAN (schlecht):      1-5% Verlust
Mobilfunk (3G/4G):    1-10% Verlust
Satellit:             5-20% Verlust

Beispiel:

1000 Pakete gesendet
10 Pakete verloren
→ 1% Paketverlust

Unterschied: Zuverlässige vs. Schnelle Übertragung

Zwei grundlegende Ansätze

Zuverlässig (TCP):

  • ✅ Garantiert Zustellung
  • ✅ Garantiert Reihenfolge
  • ✅ Garantiert Vollständigkeit
  • ❌ Langsamer (Overhead)
  • ❌ Höhere Latenz (Wartezeit)

Schnell (UDP):

  • ✅ Minimaler Overhead
  • ✅ Geringe Latenz
  • ❌ Keine Garantie für Zustellung
  • ❌ Keine Reihenfolge
  • ❌ Keine Wiederholung

Wann wird was verwendet?

TCP (zuverlässig) für:

  • Webseiten (HTTP/HTTPS)
  • Dateiübertragung (FTP, SFTP)
  • E-Mail (SMTP, IMAP)
  • SSH (Remote-Zugriff)
  • Datenbanken

Grund: Daten MÜSSEN vollständig ankommen

UDP (schnell) für:

  • DNS-Anfragen
  • Streaming (Video, Audio)
  • Online-Gaming
  • VoIP (Telefonie)
  • DHCP

Grund: Geschwindigkeit wichtiger als Vollständigkeit

TCP: Zuverlässige Übertragung

Mechanismen für Zuverlässigkeit

1. Bestätigungen (ACK)

Sender: "Hier ist Paket 1"
Empfänger: "ACK 1 empfangen"

Sender: "Hier ist Paket 2"
Empfänger: "ACK 2 empfangen"

2. Sequence Numbers (Reihenfolge)

Sender sendet: SEQ 1, SEQ 2, SEQ 3
Empfänger empfängt: SEQ 3, SEQ 1, SEQ 2
→ Sortiert: SEQ 1, 2, 3 → Korrekte Reihenfolge

3. Timeouts (Zeitüberschreitung)

Sender: "Hier ist Paket 1"
→ Wartet auf ACK
→ Kein ACK nach 1 Sekunde
→ Sendet Paket 1 erneut

4. Wiederholungen (Retransmission)

Paket verloren
→ Timeout
→ Erneut senden
→ Bis ACK empfangen

Beispiel: TCP-Verbindung

Erfolgreiche Übertragung:

Sender                  Empfänger
  |                         |
  |--- Paket 1 (SEQ 1) ---->|
  |<---- ACK 1 -------------|
  |                         |
  |--- Paket 2 (SEQ 2) ---->|
  |<---- ACK 2 -------------|
  |                         |
  |--- Paket 3 (SEQ 3) ---->|
  |<---- ACK 3 -------------|

Mit Paketverlust:

Sender                  Empfänger
  |                         |
  |--- Paket 1 (SEQ 1) ---->|
  |<---- ACK 1 -------------|
  |                         |
  |--- Paket 2 (SEQ 2) --X  | ← Verloren!
  |                         |
  |  (Timeout - 1 Sek.)     |
  |                         |
  |--- Paket 2 (SEQ 2) ---->| ← Wiederholt
  |<---- ACK 2 -------------|
  |                         |
  |--- Paket 3 (SEQ 3) ---->|
  |<---- ACK 3 -------------|

Sliding Window (Flusskontrolle)

Problem: Warten auf jedes ACK ist ineffizient

Lösung: Mehrere Pakete gleichzeitig senden

Beispiel:

Window Size = 3

Sender sendet:
Paket 1, 2, 3 (gleichzeitig)

Wartet auf ACKs:
ACK 1 empfangen → Sende Paket 4
ACK 2 empfangen → Sende Paket 5
ACK 3 empfangen → Sende Paket 6

Vorteil: Höhere Effizienz, trotzdem zuverlässig

Overhead von TCP

Was TCP "kostet":

- 20 Bytes TCP-Header pro Segment
- ACK-Pakete (zusätzlicher Traffic)
- Timeouts (Wartezeit)
- Verbindungsaufbau (3-Way Handshake)
- Verbindungsabbau (4-Way Teardown)

Beispiel:

1000 Bytes Daten senden:

Ohne TCP (reine Daten):  1000 Bytes
Mit TCP (inkl. Header):  1020 Bytes + ACKs
→ ~5-10% Overhead

UDP: Schnelle Übertragung

Charakteristika

Keine Bestätigungen:

Sender: "Hier ist Paket"
Empfänger: (empfängt oder nicht, keine Antwort)

Keine Wiederholungen:

Paket verloren → bleibt verloren

Keine Reihenfolge:

Pakete können in beliebiger Reihenfolge ankommen
Anwendung muss selbst sortieren (falls nötig)

Minimaler Header:

UDP-Header: nur 8 Bytes
TCP-Header: mindestens 20 Bytes

Warum UDP verwenden?

Grund 1: Geschwindigkeit

TCP: Paket 1 → Warten → ACK → Paket 2 → ...
UDP:  Paket 1, 2, 3, 4, 5 → Fertig

Grund 2: Geringe Latenz

Keine Wartezeiten auf Bestätigungen
Wichtig für Echtzeit-Anwendungen

Grund 3: Simple Anfragen

DNS: "Was ist die IP von google.com?"
→ Eine Frage, eine Antwort
→ Kein Verbindungsaufbau nötig

Grund 4: Verlust akzeptabel

Video-Streaming:
- 1 verlorener Frame von 60 pro Sekunde
- Kaum sichtbar
- Besser als Wartezeit (Buffering)

Beispiele

DNS-Anfrage:

Client: "Was ist die IP von example.com?" (UDP)
Server: "93.184.216.34" (UDP)

→ Schnell (< 10ms)
→ Falls verloren: Client fragt erneut

Video-Streaming:

Frame 1 → Verloren → Übersprungen
Frame 2 → Empfangen → Angezeigt
Frame 3 → Empfangen → Angezeigt

→ Leichtes Ruckeln statt Pause
→ Besser für Benutzererfahrung

Online-Gaming:

Position-Update verloren
→ Spieler "springt" kurz
→ Nächstes Update korrigiert
→ Besser als Wartezeit

Warum nicht jede Kommunikation abgesichert ist

Trade-offs: Zuverlässigkeit vs. Performance

Zuverlässigkeit (TCP) kostet:

- Zeit (Bestätigungen warten)
- Bandbreite (ACK-Pakete)
- Komplexität (Zustandsverwaltung)

Manchmal ist Verlust akzeptabel:

1. Redundante Daten

Video: 60 Frames pro Sekunde
→ 1 Frame verloren = 1/60 Sekunde
→ Kaum wahrnehmbar

2. Alte Daten irrelevant

Online-Gaming: Position vor 1 Sekunde
→ Aktuelle Position wichtiger
→ Alte Position überspringen

3. Einfache Wiederholung durch Anwendung

DNS-Anfrage:
→ Keine Antwort nach 100ms
→ Erneut fragen (einfacher als TCP)

4. Echtzeit wichtiger als Vollständigkeit

VoIP (Telefonie):
→ Kurze Störung akzeptabel
→ Besser als 1 Sekunde Pause

Beispiel-Vergleich: Dateidownload vs. Streaming

Dateidownload (TCP):

Datei: software.zip (500 MB)
→ MUSS zu 100% ankommen
→ Jedes Bit wichtig
→ TCP mit Wiederholungen
→ Dauert länger, aber korrekt

Video-Streaming (UDP):

Film: movie.mp4 (2 GB)
→ 99.9% reicht aus
→ Einzelne Frames unwichtig
→ UDP ohne Wiederholungen
→ Flüssige Wiedergabe

Hybride Ansätze

Anwendungen mit eigener Zuverlässigkeit über UDP

Beispiel: QUIC (HTTP/3)

Basis: UDP (schnell)
+ Eigene Zuverlässigkeit (selektiv)
+ Verschlüsselung
+ Multiplexing
→ Schneller als TCP, aber zuverlässig

Beispiel: WebRTC

Audio: UDP (Verlust akzeptabel)
Video: UDP (Verlust akzeptabel)
Daten: UDP + eigene Wiederholungen

Vorteil:

  • Flexibilität
  • Nur wichtige Daten wiederholen
  • Bessere Performance als TCP

Zusammenfassung

Kernkonzepte

1. Paketverlust ist normal

  • Überlastung, Fehler, Störungen
  • Typisch 0.01% - 5%
  • Muss behandelt werden

2. TCP: Zuverlässig

  • Bestätigungen (ACK)
  • Wiederholungen (Retransmission)
  • Reihenfolge (Sequence Numbers)
  • Flusskontrolle (Window)
  • Overhead: ~5-10%

3. UDP: Schnell

  • Keine Bestätigungen
  • Keine Wiederholungen
  • Minimaler Overhead (8 Bytes Header)
  • Anwendung entscheidet über Zuverlässigkeit

4. Trade-offs

  • Zuverlässigkeit ↔ Geschwindigkeit
  • Vollständigkeit ↔ Latenz
  • Richtige Wahl abhängig von Anwendung

Wann was verwenden?

TCP verwenden für:

  • ✅ Daten müssen vollständig ankommen
  • ✅ Reihenfolge ist wichtig
  • ✅ Fehler inakzeptabel
  • Beispiele: Web, E-Mail, Dateien, SSH

UDP verwenden für:

  • ✅ Geschwindigkeit wichtiger als Vollständigkeit
  • ✅ Echtzeit-Anforderungen
  • ✅ Verlust akzeptabel
  • Beispiele: DNS, Streaming, Gaming, VoIP

Ausblick

In der nächsten Lektion:

  • Zusammenfassung des gesamten Kurses
  • Warum dieses Wissen grundlegend ist
  • Wie es Ihnen bei ARP, Switching, Routing hilft

Merksatz: TCP = zuverlässig aber langsamer, UDP = schnell aber ohne Garantie!

oder