# Sliding Window

Der Begriff Sliding Window (englisch „Schiebefenster“) bezeichnet bei der Datenflusskontrolle in Rechnernetzen ein Fenster, das einem Sender die Übertragung einer bestimmten Menge von Daten ermöglicht, bevor eine Bestätigung zurückerwartet wird.
Netzwerkprotokolle, die auf Sliding Windows basieren, werden Sliding-Window-Protokolle oder Schiebefensterprotokolle genannt. Der Begriff ist insbesondere für Datenpakete bedeutsam.

## Funktionsweise

Das Schiebefensterverfahren verfolgt das Ziel, die Kapazitäten der Leitung und des Empfängers optimal auszulasten, das heißt so viele Datenpakete (Datenframes) wie möglich zu senden. Dabei stellt das Verzögerungs-Bandbreite-Produkt die maximale in der Übertragung befindliche Datenmenge dar, die gesendet werden kann, ohne auf die erste Bestätigung zu warten.
Beim Schiebefensterverfahren führt der Sender permanent eine Liste von aufeinanderfolgenden Sequenznummern, die der Anzahl der Frames, die er senden darf, entspricht. Sobald ein Datenpaket dem Empfänger erfolgreich zugestellt wird, sendet dieser dafür eine Bestätigung, auch als ACK-Signal bezeichnet, zurück, die den Sender dazu veranlasst, ein weiteres Frame zu übertragen. Falls der Sender innerhalb des Timeouts jedoch kein ACK erhält, versucht er das Frame erneut zu übertragen. Unter der Voraussetzung, dass das Verzögerungs-Bandbreiten-Produkt bereits erreicht ist, kann dann aber kein neues Frame übertragen werden, d. h., es kommt zu einem Stau in der Pipe. Das Sendefenster verschiebt sich mit jeder eingehenden Bestätigung, indem das bestätigte Frame aus dem Fenster herausfällt und ein neu zu sendendes Frame in das Fenster aufgenommen wird. Dadurch enthält das Fenster immer nur unbestätigte Frames. Für den Fall, dass Frames während der Übertragung verloren gehen, muss der Sender alle Datenpakete in seinem Speicher halten, um sie erneut übertragen zu können.
Analog zum Fenster des Senders verwaltet auch der Empfänger ein Schiebefenster. Beide Fenster müssen aber nicht unbedingt die gleiche Größe haben, da diese im Laufe der Zeit durch das Senden und Empfangen von Frames variieren kann. Die Größe des Sendefensters bestimmt sich durch das vom Empfänger angegebene Maximum sowie durch die Netzbelastung. Jede Bestätigung für ein erfolgreich übertragenes Frame enthält einen Wert, der angibt, für welche Menge an weiteren Datenpaketen der Empfänger noch Kapazität frei hat.

## Unterschied zum Stop-and-Wait-Algorithmus

Beim Stop-and-Wait-Algorithmus, der ebenso wie das Schiebefensterverfahren ein ARQ-Protokoll ist, wartet der Sender nach der Übertragung eines Frames auf eine Bestätigung, bevor er das nächste Frame überträgt. Kommt innerhalb der Wartezeit keine Bestätigung, überträgt der Sender das Frame erneut. Im Gegensatz zu diesem Algorithmus, der dem Sender nur jeweils ein ausstehendes Frame auf der Verbindungsleitung gestattet und dadurch ineffizient ist, kann der Sliding-Window-Algorithmus mehrere Frames gleichzeitig übertragen. Der Stop-and-Wait-Algorithmus ist ein Spezialfall des Sliding-Window-Algorithmus. Beide funktionieren identisch, wenn die Größe des Sendefensters beim Schiebefenster-Algorithmus auf 1 Frame eingestellt ist.

## Aufgaben

Der Sliding-Window-Algorithmus hat im Bereich der Rechnervernetzung folgende Aufgaben:
* die zuverlässige Zustellung von Datenpaketen über eine unzuverlässige Verbindungsleitung,
* die Einhaltung der Übertragungsreihenfolge der Frames,
* die Flusskontrolle, d. h. ein Rückmeldemechanismus, durch den der Sender daran gehindert wird, mehr Daten zu übertragen als der Empfänger verarbeiten kann.
Das Sliding-Window-Protokoll wird vom Transmission Control Protocol (TCP) verwendet, um möglichst effizient Daten zu übertragen. Auch vom Point-to-Point Protocol (PPP) wird das Schiebefensterverfahren angewandt.

## Anwendungsbeispiel

Als Beispiel der Anwendung des Verfahrens wird hier die Nutzung eines Sliding Window in einem Radargerät beschrieben:
In einigen Radargeräten wird mit dieser Methode aus analogen Zielimpulsen ein digitales Zielsignal generiert. Es werden in der als Plotextraktor bezeichneten Radarbaugruppe eine Anzahl von Impulsfolgeperioden mit allen vorhandenen Echosignalen in einen Speicher geschrieben. Dann werden, von der ersten Rangecell angefangen, die Signale der Impulsperioden verglichen. Erreicht das Echosignal in allen Impulsperioden (also im Speicher: in allen parallel betrachteten Speichergruppen) einen bestimmten Schwellwert, dann repräsentiert die Position des Sliding Window auch die Koordinaten des zu ortenden Objektes.