Automatische Wiederholungsanforderung (arq)

Definition - Was bedeutet ARQ (Automatic Repeat ReQuest)?

Automatic Repeat ReQuest (ARQ), auch als Automatic Repeat Query bezeichnet, ist ein Fehlerkontrollprotokoll, das automatisch einen Aufruf zum erneuten Senden von Datenpaketen oder Frames nach dem Empfang fehlerhafter oder falscher Daten initiiert. Wenn das sendende Gerät kein Bestätigungssignal empfängt, um zu bestätigen, dass die Daten empfangen wurden, überträgt es die Daten normalerweise nach einer vordefinierten Zeitüberschreitung erneut und wiederholt den Vorgang eine vorbestimmte Anzahl von Malen, bis das sendende Gerät die Bestätigung empfängt.

ARQs werden häufig verwendet, um zuverlässige Übertragungen über einen unzuverlässigen Dienst sicherzustellen.

Technische.me erklärt Automatic Repeat ReQuest (ARQ)

Drei Haupttypen der ARQ sind die Stop-and-Wait-ARQ, die Go-Back-N-ARQ und die selektive Wiederholungs-ARQ. Stop-and-Wait-ARQ ist das einfachste ARQ. Es wird jeweils ein Frame gesendet, ohne dass zusätzliche Frames gesendet werden, bis der Empfang des vorherigen Frames über ein Bestätigungssignal bestätigt wird.

Go-Back-N ARQ ist ein viel komplexeres Protokoll. Damit können Frames gesendet werden, auch wenn vorherige Frames ohne Bestätigungssignal empfangen wurden. Dieses Protokoll verfolgt die Sequenz. Wenn der letzte Rahmen empfangen wird, fordert er eine erneute Übertragung der ohne Bestätigung gesendeten Rahmen an. Dies wird wiederholt, bis alle Rahmen mit einem Bestätigungssignal empfangen werden. Dieses Protokoll kann jedoch dazu führen, dass viele Frames mehrmals gesendet werden, was durch Verwendung des Selective Repeat ARQ-Protokolls vermieden werden kann.

Selective Repeat ARQ kann zur Zustellung und Bestätigung von gesendeten Datenpaketen oder zur Zustellung von unterteilten Nachrichten in Untereinheiten verwendet werden. Bei der ersten Methode akzeptiert und bestätigt das Protokoll weiterhin Frames, die nach einem anfänglichen Fehler gesendet wurden. Dies wird so lange fortgesetzt, bis eine bestimmte Anzahl von Frames empfangen wurde, die als Fenstergröße bezeichnet wird. Es gibt eine Fenstergröße für Senden und Empfangen und sie müssen gleich sein. Die Sequenznummern aller nicht empfangenen Frames werden verfolgt und an den Sender zurückgesendet.

Der Absender sendet weiterhin Frames mit nicht bestätigten Daten, bis die Fenstergröße erreicht ist (er hat das Fenster geleert). In diesem Fall sendet der Absender die durch die Bestätigungssignale angegebene Rahmennummer erneut und fährt dort fort, wo sie weggelassen wurde. Um sicherzustellen, dass alle Frames empfangen werden, muss die Größe des Sende- und Empfangsfensters die Hälfte der maximalen Sequenznummer betragen. Wenn das Empfangsfenster größer als die Hälfte der maximalen Sequenznummer ist, sind einige oder sogar alle erneut gesendeten Frames nach den erforderlichen Zeitüberschreitungen Duplikate, werden jedoch nicht als solche erkannt. Wenn der Absender sein Fenster (Schiebefenster genannt) für jede empfangene Bestätigung verschiebt, müssen die Anzahl der Bestätigungen und die größte Sequenznummer gleich sein und die Hälfte dieser Anzahl muss der vom Empfänger verwendeten Fenstergröße entsprechen.

Bei der zweiten Methode mit unterteilten Nachrichten ist der Prozess anders. Nicht kontinuierliche Kommunikationskanäle werden verwendet, wenn Nachrichten unterschiedlich lang sind, die Protokolle die Nachricht jedoch als eine Einheit behandeln. Alternativ kann jede Nachricht in einem als Paketsegmentierung bezeichneten Prozess in Unterblöcke mit fester Länge unterteilt werden. Jede Nachricht enthält eine variable Anzahl von Unterblöcken. Jede nicht bestätigte Antwort trägt ein zusätzliches Bit-Flag, das jeden erfolgreich empfangenen Unterblock anzeigt. Jede erneute Übertragung nimmt an Länge ab und enthält nur die nicht bestätigten Unterblöcke.

ARQs mit Nachrichten variabler Länge haben bei längeren Nachrichten größere Schwierigkeiten, da jede wiederholte Nachricht die volle Länge hat. Die selektive Neuübertragung von Nachrichten variabler Länge bei Verwendung von Selective Repeat ARQ beseitigt jedoch die Schwierigkeit, längere Nachrichten zuzustellen. Eine geringere Schwierigkeit wird durch die Beibehaltung erfolgreich gelieferter Unterblöcke nach jeder Übertragung und die Verringerung der Anzahl ausstehender Unterblöcke nach jeder Übertragung belegt.

ARQ-Protokolle befinden sich in den Datenverbindungs- oder Transportschichten des OSI-Modells. TCP verwendet eine Variante von Go-Back-N ARQ, um eine zuverlässige Datenübertragung über das Internetprotokoll sicherzustellen. Die Zustellung von Datenpaketen wird jedoch nicht garantiert. Wenn TCP Selective Acknowledgement (SACK) verwendet, wird Selective Repeat ARQ verwendet. Wenn lokale Netzwerke (LAN) verrauschte Umgebungen haben, wird Selective Repeat ARQ mit Paketsegmentierung verwendet.