In einer Netzwerkschicht, die sowohl unzuverlässig als auch verbindungslos ist (wie das Internet-Protokoll, IP), gibt es keinen inhärenten Mechanismus, um verlorene Daten automatisch zu senden. Die Verantwortung für die Gewährleistung der zuverlässigen Datenabgabe fällt auf höhere Schichten des Protokollstapels, typischerweise die Transportschicht (z. B. TCP) oder sogar höhere Anwendungen auf höherer Ebene. So wird es erreicht:
1. Transportschichtprotokolle (wie TCP):
* Verbindungseinrichtung: TCP stellt vor der Datenübertragung eine Verbindung her, die einen Dialog zwischen Absender und Empfänger ermöglicht. Dies beinhaltet einen Drei-Wege-Handschlag, um die Verbindungsfähigkeit zu bestätigen.
* Sequenzierung: Jedes Datenpaket ist nacheinander nummeriert. Auf diese Weise kann der Empfänger fehlende Pakete erkennen und eine Wiedervermittlung anfordern.
* Bestätigung (ACK): Der Empfänger sendet ACK -Pakete an den Absender zurück und bestätigt den Empfang von Daten. Wenn ein ACK nicht innerhalb eines Zeitlimits erhalten wird, übermittelt der Absender das nicht anerkannte Paket.
* Zeitüberschreitungs- und Wiedervermietung: Der Absender verwaltet Timer für jedes gesendete Paket. Wenn ein Timer vor einem ACK abläuft, wird das Paket erneut übertragen.
* Fehlererkennung: Überprüfungen oder andere Fehlererkennungsmechanismen werden verwendet, um beschädigte Pakete zu erkennen. Verfälschte Pakete werden verworfen und die Wiedervermittlung wird angefordert.
2. Anwendungsschichtmechanismen (bei Verwendung von UDP oder einem ähnlichen verbindungslosen Protokoll):
Da die Netzwerkschicht keine integrierte Zuverlässigkeit bietet, müssen Anwendungen mit UDP oder anderen verbindungslosen Protokollen ihre eigenen Mechanismen für eine zuverlässige Datenübertragung implementieren:
* Sequenzierung und ACKs: Die Anwendung selbst muss Pakete nummerieren und Strategien zur Bestätigung und Übermittlung implementieren, wodurch die Funktionalität von TCP nachahmt.
* Timeout erneut übernehmen: Ähnlich wie bei TCP legt die Anwendung Zeitüberschreitungen für jedes Paket fest. Wenn eine Zeitüberschreitung ohne Bestätigung abläuft, überträgt die Anwendung das Paket.
* positive Bestätigung mit der Übertragung (PAR): Der Empfänger bestätigt die empfangenen Pakete und der Absender fehlt Pakete anhand dieser Bestätigungen.
* go-back-n arq: Der Absender überholt alle Pakete ab dem nicht anerkannten Paket.
* Selektive Wiederholung ARQ: Der Absender überholt nur die fehlenden Pakete.
Kurz gesagt: Während die unzuverlässige und verbindungslose Natur der Netzwerkschicht keine integrierte Datenwiederherstellung bereitstellt, sind Protokolle auf höherer Ebene und Logik auf Anwendungsebene für die Implementierung der erforderlichen Mechanismen verantwortlich, um verlorene Daten zu erkennen und zu wiederherstellen. Dies fügt Overhead hinzu, ermöglicht jedoch eine zuverlässige Kommunikation über eine von Natur aus unzuverlässige Infrastruktur.