Zuverlässige Datenübertragung
Zuverlässige Datenübertragung ist der Satz von Prinzipien, nach denen ein Protokoll Daten korrekt, in der richtigen Reihenfolge und ohne Verlust oder Duplizierung über ein zugrunde liegendes Netzwerk liefert, das Pakete beschädigen, verlieren oder neu anordnen kann.
Definition
Zuverlässige Datenübertragung ist ein Dienst der Transportschicht, der garantiert, dass Daten trotz eines unzuverlässigen zugrunde liegenden Kanals korrekt und in der richtigen Reihenfolge an die empfangende Anwendung geliefert werden, was durch Bestätigungen, Sequenznummern, Timeouts und Neuübertragungen erreicht wird.
Scope
Dieses Thema behandelt die allgemeinen Mechanismen der zuverlässigen Übertragung, unabhängig von einem bestimmten Protokoll: Bestätigungen und negative Bestätigungen, Sequenznummern zur Erkennung von Verlust und Duplizierung, Prüfsummen für Beschädigungen, Retransmission-Timer und die Pipelined-Sliding-Window-Protokolle Go-Back-N und Selective Repeat, die viele Pakete für Effizienz in der Übertragung halten. Es entwickelt diese als Grundlage, auf der TCP aufbaut. Es schließt die Überlastkontrolle aus, die sich eher mit Netzwerküberlastung als mit der Zuverlässigkeit pro Verbindung befasst, sowie die Besonderheiten von TCP selbst.
Core questions
- Welche Fehler – Beschädigung, Verlust, Duplizierung, Neuordnung – muss ein zuverlässiges Protokoll überwinden?
- Wie ermöglichen Bestätigungen und Sequenznummern einem Empfänger, Probleme zu erkennen und zu signalisieren?
- Wie verwendet ein Sender Timeouts und Neuübertragungen, um sich von Verlusten zu erholen?
- Wie verbessern Pipelined-Protokolle (Go-Back-N, Selective Repeat) die Effizienz gegenüber Stop-and-Wait?
- Welchen Kompromiss gibt es zwischen Go-Back-N und Selective Repeat?
Key concepts
- Bestätigungen (ACK/NAK)
- Sequenznummern
- Prüfsummen
- Retransmission-Timer und Timeouts
- Stop-and-Wait
- Automatic Repeat Request (ARQ)
- Pipelining
- Sliding Window
- Go-Back-N und Selective Repeat
Key theories
- Stop-and-Wait und Automatic Repeat Request
- Das einfachste zuverlässige Protokoll sendet ein Paket und wartet auf eine Bestätigung, wobei es bei Timeout erneut sendet; Sequenznummern unterscheiden neue Daten von Neuübertragungen und etablieren den Kern des ARQ-Mechanismus, auf dem alle zuverlässigen Übertragungen aufbauen.
- Pipelining mit Sliding Windows
- Das Zulassen mehrerer unbestätigter Pakete im Umlauf, begrenzt durch ein Fenster, erhöht den Durchsatz auf Verbindungen mit hoher Verzögerung; Go-Back-N sendet ab dem ersten verlorenen Paket alles erneut, während Selective Repeat nur die fehlenden Pakete erneut sendet, was jedoch mehr Pufferung und Verwaltungsaufwand erfordert.
Clinical relevance
Die Prinzipien der zuverlässigen Datenübertragung sind der Grund, warum Dateiübertragungen, Webseiten und die meisten Anwendungsdaten selbst über verlustbehaftete, überlastete Pfade intakt ankommen. Dieselben Ideen – Bestätigungen, Sequenznummern, Fenster und Neuübertragungen – treten in TCP, in der Zuverlässigkeit der Verbindungsschicht und in neueren Transportprotokollen immer wieder auf, sodass deren Verständnis grundlegend für die Beurteilung von Durchsatz, Latenz und Wiederherstellung nach Verlust ist.
History
Zuverlässige Übertragungsmechanismen wurden für frühe Verbindungsprotokolle und das ARPANET entwickelt, wo Stop-and-Wait- und später Sliding-Window-ARQ-Schemata verfeinert wurden, um Zuverlässigkeit und Durchsatz auszugleichen. Die systematische, inkrementelle Entwicklung von Prinzipien der zuverlässigen Übertragung – von einem perfekten Kanal bis hin zu Verlust und Neuordnung – wurde zu einem standardmäßigen pädagogischen Ansatz und liegt dem Design von TCP zugrunde.
Key figures
- James F. Kurose
- Keith W. Ross
- Andrew S. Tanenbaum
Related topics
Seminal works
- kurose2021
- tanenbaum2010
Frequently asked questions
- Warum werden Sequenznummern verwendet?
- Sequenznummern ermöglichen es dem Empfänger, Pakete zu unterscheiden, sodass er Verluste (eine Lücke in der Sequenz) erkennen, Duplikate (eine wiederholte Nummer, die durch eine Neuübertragung verursacht wurde) verwerfen und Daten, die außer der Reihe ankamen, neu ordnen kann. Ohne sie könnten Sender und Empfänger ein neues Paket nicht von einem erneut übertragenen unterscheiden.
- Was ist der Unterschied zwischen Go-Back-N und Selective Repeat?
- Beide leiten mehrere Pakete weiter. Go-Back-N lässt den Sender alles ab dem ersten verlorenen Paket erneut senden, was einfach ist, aber korrekt empfangene Daten erneut senden kann. Selective Repeat sendet nur die spezifischen Pakete erneut, die verloren gegangen sind, und puffert außer der Reihe eintreffende Daten, was effizienter ist, aber mehr Zustand an beiden Enden erfordert.