<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=ARQ-Protokoll</id>
	<title>ARQ-Protokoll - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=ARQ-Protokoll"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=ARQ-Protokoll&amp;action=history"/>
	<updated>2026-06-03T19:28:02Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=ARQ-Protokoll&amp;diff=77267&amp;oldid=prev</id>
		<title>imported&gt;PerfektesChaos: tk k</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=ARQ-Protokoll&amp;diff=77267&amp;oldid=prev"/>
		<updated>2023-07-06T19:12:25Z</updated>

		<summary type="html">&lt;p&gt;tk k&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;ARQ-Protokolle&amp;#039;&amp;#039;&amp;#039; ({{enS|Automatic Repeat reQuest}},&amp;lt;ref&amp;gt;{{RFC-Internet |RFC=3366 |Titel=Advice to link designers on link Automatic Repeat reQuest (ARQ) |Datum=2002-08}}&amp;lt;/ref&amp;gt; deutsch: „Automatische Wiederholungsanfrage“) werden bei [[Rechnernetz|Computernetzen]] eingesetzt, um eine zuverlässige [[Datenübertragung]] durch Sendewiederholungen zu gewährleisten.&lt;br /&gt;
&lt;br /&gt;
Durch die Möglichkeit der [[Fehlerkorrekturverfahren|Fehlererkennung]] kann ein [[Empfänger (Information)|Empfänger]] aufgetretene Übertragungsfehler feststellen. Über einen Rückkanal kann dieser dem [[Absender|Sender]] der Nachricht das Resultat der Fehlererkennung mitteilen. Gewöhnlicherweise geschieht dies durch Übertragung sogenannter &amp;#039;&amp;#039;[[ACK (Signal)|ACK]]/NAK&amp;#039;&amp;#039;-Signale (&amp;#039;&amp;#039;Acknowledgement&amp;#039;&amp;#039; bzw. &amp;#039;&amp;#039;Negative Acknowledgement&amp;#039;&amp;#039;, d.&amp;amp;nbsp;h. korrekter Empfang bestätigt bzw. Wiederholungsanfrage). Gegebenenfalls wird eine gestörte Nachricht so lange erneut übertragen, bis sie den Empfänger ohne Fehler erreicht hat.&lt;br /&gt;
&lt;br /&gt;
Folgende [[Netzwerkprotokoll|Protokolle]], die sich hauptsächlich im erzielbaren [[Datendurchsatz]] unterscheiden, werden als grundlegend betrachtet:&lt;br /&gt;
* Stop-and-Wait&lt;br /&gt;
* Go-Back-N&lt;br /&gt;
* Selective Repeat&lt;br /&gt;
&lt;br /&gt;
== Stop-and-Wait ==&lt;br /&gt;
Stop-and-Wait (engl. für &amp;#039;&amp;#039;Halte an und Warte&amp;#039;&amp;#039;, auch als &amp;#039;&amp;#039;Send-and-Wait&amp;#039;&amp;#039; bezeichnet&amp;lt;ref&amp;gt;[https://datatracker.ietf.org/doc/html/draft-li-rtgwg-protocol-assisted-protocol-02 &amp;#039;&amp;#039;Protocol Assisted Protocol (PAP)&amp;#039;&amp;#039;.] [[Internet Engineering Task Force|IETF]] Internet-Draft, März 2020&amp;lt;/ref&amp;gt;) stellt das einfachste Verfahren dar: Nachdem der Sender einen [[Datenblock]] (z.&amp;amp;nbsp;B. ein [[Datenpaket|Paket]]) gesendet hat, muss er auf die Quittung (ACK) des Empfängers warten, bevor er den nächsten Datenblock senden kann. Falls er innerhalb einer bestimmten [[Zeitintervall|Zeitdauer]] ([[Timeout (Netzwerktechnik)|Timeout]]) keine Quittung empfängt, muss er den Datenblock noch einmal senden. Dazu werden für die Datenblocks und die Quittungen [[Sequenznummer]]n verwendet. Der Sender vergibt dem ersten Datenblock mit einer Sequenznummer, der Empfänger quittiert den erfolgreichen Empfang eines Datenblocks mit einem ACK mit der Sequenznummer des nächsten erwarteten Datenblocks. Stop-and-Wait ist demnach ein Sonderfall des [[Sliding Window|Sliding-Window-Verfahrens]] mit der Fenstergröße&amp;amp;nbsp;1.&lt;br /&gt;
&lt;br /&gt;
Beispielablauf (siehe Abbildung):&lt;br /&gt;
[[Datei:Stop-and-Wait-Normal.svg|mini|Ablauf eines Stop-and-Wait-Protokolls]]&lt;br /&gt;
# Sender sendet ersten Datenblock mit der Sequenznummer 0&lt;br /&gt;
# Empfänger bestätigt erfolgreichen Empfang mit einem ACK mit der Sequenznummer 1&lt;br /&gt;
# Sender sendet nächsten Datenblock mit der Sequenznummer 1&lt;br /&gt;
# Empfänger bestätigt erfolgreichen Empfang mit einem ACK mit der Sequenznummer 0&lt;br /&gt;
# Sender sendet nächsten Datenblock mit der Sequenznummer 0&lt;br /&gt;
# usw.&lt;br /&gt;
&lt;br /&gt;
=== Ablauf bei Übertragungsfehlern ===&lt;br /&gt;
Empfängt der Sender innerhalb des Timeout keine positive (ACK) oder eine negative Quittierung (NAK), sendet er den Datenblock noch einmal.&lt;br /&gt;
&lt;br /&gt;
Mögliche Fehlerfälle sind:&lt;br /&gt;
* Datenblock geht auf dem Weg zum Empfänger verloren ([[Paketverlust]]). Abbildung „Stop-and-Wait bei Datenblockverlust“.&lt;br /&gt;
* Quittierung geht auf dem Weg zum Sender verloren. Abbildung „Stop-and-Wait bei Verlust des ACK“.&lt;br /&gt;
* Quittierung kommt zu spät (nach Ablauf des Timeout) beim Sender an. Abbildung „Stop-and-Wait bei verspätetem ACK“.&lt;br /&gt;
* Empfänger sendet ein NAK, weil der Datenblock fehlerhaft ist. Abbildung „Stop-and-Wait bei NAK“.&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
   Stop-and-Wait-Datenblockverlust.svg|Stop-and-Wait bei Datenblockverlust&lt;br /&gt;
   Stop-and-Wait-ACK-Verlust.svg|Stop-and-Wait bei Verlust des ACK&lt;br /&gt;
   Stop-and-Wait-ACK-zuspaet.svg|Stop-and-Wait bei verspätetem ACK&lt;br /&gt;
   Stop-and-Wait-NAK.svg|Stop-and-Wait bei NAK&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Datendurchsatz ===&lt;br /&gt;
[[Datei:Stop-and-Wait-Zeiten.svg|mini|Zeitdiagramm]]&lt;br /&gt;
Der Datendurchsatz lässt sich allgemein berechnen mit der Formel:&lt;br /&gt;
: &amp;lt;math&amp;gt;\eta_{SW} = \frac{t_{Block}}{t_{AV}} \cdot R_C &amp;lt;/math&amp;gt;&lt;br /&gt;
:: mit &amp;lt;math&amp;gt;t_{AV} = \frac{t_{RTT}}{1-P_{ed}} &amp;lt;/math&amp;gt; ergibt sich&lt;br /&gt;
: &amp;lt;math&amp;gt;\eta_{SW} = \frac{t_{Block}}{t_{RTT}} \cdot (1-P_{ed}) \cdot R_C &amp;lt;/math&amp;gt;&lt;br /&gt;
:: und weiter mit &amp;lt;math&amp;gt;t_{RTT} = t_{Block}+{\tau_1}+{t_{ACK}}+{\tau_2}&amp;lt;/math&amp;gt; und &amp;lt;math&amp;gt;{\tau_1}+{t_{ACK}}+{\tau_2}=t_{BB}&amp;lt;/math&amp;gt; ergibt sich&lt;br /&gt;
: &amp;lt;math&amp;gt;\eta_{SW} = \frac{1-P_{ed}}{1+\frac{t_{BB}}{t_{Block}}} \cdot R_C &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt;\eta_{SW}&amp;lt;/math&amp;gt;: Datendurchsatz&lt;br /&gt;
:&amp;lt;math&amp;gt;R_C &amp;lt;/math&amp;gt;: [[Informationsrate]] des verwendeten fehlererkennenden [[Code]]s&lt;br /&gt;
:&amp;lt;math&amp;gt;t_{Block} &amp;lt;/math&amp;gt;: Datenblockdauer&lt;br /&gt;
:&amp;lt;math&amp;gt;t_{AV} &amp;lt;/math&amp;gt;: Mittlere Übertragungsdauer eines Datenblocks&lt;br /&gt;
:&amp;lt;math&amp;gt;t_{BB} &amp;lt;/math&amp;gt;: Zeitdauer zwischen zwei Datenblöcken&lt;br /&gt;
:&amp;lt;math&amp;gt;t_{ACK} &amp;lt;/math&amp;gt;: Dauer der ACK-Nachricht&lt;br /&gt;
:&amp;lt;math&amp;gt;t_{RTT} &amp;lt;/math&amp;gt;: [[Paketumlaufzeit|Round Trip Time]]&lt;br /&gt;
:&amp;lt;math&amp;gt;\tau_1 &amp;lt;/math&amp;gt;: [[Verzögerung (Telekommunikation)|Laufzeit]] des Datenblocks durchs Netz&lt;br /&gt;
:&amp;lt;math&amp;gt;\tau_2 &amp;lt;/math&amp;gt;: Laufzeit der ACK-Nachricht durchs Netz&lt;br /&gt;
:&amp;lt;math&amp;gt;{P_{ed}} &amp;lt;/math&amp;gt;: Auftrittswahrscheinlichkeit eines vom Empfänger erkennbaren Fehlers im Datenblock&lt;br /&gt;
&lt;br /&gt;
==== Beispielrechnung ====&lt;br /&gt;
Ein Sender sendet Datenblocks mit einer Größe von 1000&amp;amp;nbsp;Byte über eine Übertragungsstrecke mit einer maximal möglichen Datenübertragungsrate von 2&amp;amp;nbsp;Mbit/s. Dabei wird ein fehlererkennender Code mit einer Informationsrate von 7/8 verwendet. Die mittlere Round Trip Time beträgt 18&amp;amp;nbsp;ms und die Datenblockverlustrate beträgt 1 %.&lt;br /&gt;
: &amp;lt;math&amp;gt;\eta_{SW} = \frac{t_{Block}}{t_{RTT}} \cdot (1-P_{ed}) \cdot R_C &amp;lt;/math&amp;gt;&lt;br /&gt;
:: mit &amp;lt;math&amp;gt;t_{Block} = \frac{IP-Paketgroesse}{Datenuebertragungsrate} = \frac{1000 Byte \cdot 8 \frac{bit}{Byte}}{2 Mbit/s} = 4 ms&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;\eta_{SW} = \frac{4ms}{18ms} \cdot (1-0,01) \cdot 7/8 = 0,1925&amp;lt;/math&amp;gt;&lt;br /&gt;
Der Datendurchsatz entspricht 19,25 % der maximal möglichen Datenübertragungsrate: &amp;lt;math&amp;gt;0,1925 \cdot 2 Mbit/s  = 440 kbit/s&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Anwendungsbeispiel ===&lt;br /&gt;
Ein Beispiel für ein Stop-and-Wait-Protokoll ist das [[Trivial File Transfer Protocol]] (TFTP).&lt;br /&gt;
&lt;br /&gt;
== Go-Back-N ==&lt;br /&gt;
Go-Back-N (engl. für &amp;#039;&amp;#039;Gehe zu N zurück&amp;#039;&amp;#039;) ist ein [[Sliding Window|Sliding-Window-Verfahren]], das gegenüber Stop-and-Wait einen deutlich größeren Datendurchsatz ermöglicht.&lt;br /&gt;
&lt;br /&gt;
Der Sender kann dabei mehrere Datenblocks senden, ohne zunächst auf Quittungen vom Empfänger warten zu müssen. Wie viele Datenblocks hintereinander ohne Bestätigung versendet werden, hängt von der sogenannten „Fenstergröße“ des Sliding Window ab, die vorab von einem [[Datenflusssteuerung|Flusskontrollverfahren]] bestimmt wird. Beträgt die Fenstergröße n, kann der Sender noch n-1 weitere Datenblocks absenden, bevor die Bestätigung für den ersten Datenblock durch den Empfänger erfolgt sein muss. Es können vom Empfänger auch mehrere Datenblocks auf einmal (kumulativ) bestätigt werden. So zeigt eine Quittung für n+i an, dass alle Einheiten von n bis n+i korrekt empfangen wurden. Kommt es beim Warten auf die Bestätigungen zu einem Timeout, so übermittelt der Sender alle Dateneinheiten in dem Fenster neu. Er geht also zurück zur letzten unbestätigten [[Sequenznummer]] &amp;#039;&amp;#039;N&amp;#039;&amp;#039; und sendet diesen und auch alle nach diesem gesendete Datenblocks erneut. Da es der Fall sein kann, dass lediglich ein Datenblock nicht ordnungsgemäß übertragen wurde und dennoch auch alle danach gesendeten erneut übertragen werden, wird an dieser Stelle Übertragungskapazität verschwendet. Beim Sender wird zum Zwischenspeichern der gesendeten und noch nicht quittierten Datenblocks [[Puffer (Informatik)|Speicher]] benötigt. Die erforderliche Größe dieses Pufferspeichers hängt von der Datenblock- und der Fenstergröße ab.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel für ein Go-Back-N-Protokoll ist das [[Transmission Control Protocol]] (TCP).&lt;br /&gt;
&lt;br /&gt;
== Selective Repeat ==&lt;br /&gt;
Selective Repeat (engl. für &amp;#039;&amp;#039;Selektive Wiederholung&amp;#039;&amp;#039;) ist eine weitere Fehlerbehandlungsstrategie auf Basis des Sliding-Window-Verfahrens. Hier wird ein fehlerhafter Rahmen verworfen, aber die danach erhaltenen Rahmen werden im Empfänger in einem Puffer abgelegt und bestätigt. Wenn beim Sender die Zeit abgelaufen ist, wird nur der älteste nicht bestätigte Rahmen erneut übertragen. Wenn dieser Rahmen korrekt ankommt, kann der Empfänger in der Folge alle im Puffer gespeicherten Rahmen an die Vermittlungsschicht übergeben. Die selektive Wiederholung wird oft mit dem Senden einer negativen Bestätigung (NAK, Negative Acknowledgement) durch den Empfänger kombiniert, wenn dieser einen Fehler wie einen Prüfsummenfehler oder einen Rahmen außerhalb der Reihenfolge entdeckt. NAKs stoßen die erneute Übertragung an, bevor der entsprechende Timer abläuft und verbessern daher die Leistung. Geht das NAK verloren, wartet der Sender auf den Timeout für den Rahmen und sendet ihn (und zwar nur ihn) auf eigene Veranlassung noch einmal. Die selektive Wiederholung entspricht einem Empfangsfenster größer 1.&lt;br /&gt;
&lt;br /&gt;
Werden diese Protokolle mit den Methoden der [[Kanalkodierung]] kombiniert, so spricht man von den [[hybrid]]en ARQ-Protokollen.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel für ein Selectiv-Repeat-Protokoll ist die Erweiterung „[[SACK]]“ für das [[Transmission Control Protocol]] (TCP).&amp;lt;ref&amp;gt;{{RFC-Internet |RFC=2018 |Titel=TCP Selective Acknowledgment Options |Datum=1996-10}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* Tanenbaum, Feamster, Wetherall: &amp;#039;&amp;#039;Computer Networks.&amp;#039;&amp;#039; Sixth Edition., Pearson Global Edition, 2021, ISBN 978-1-292-37406-2.&lt;br /&gt;
* Badach, Hoffmann: &amp;#039;&amp;#039;Technik der IP-Netze.&amp;#039;&amp;#039; 4. Auflage. Hanser, ISBN 978-3-446-46210-6.&lt;br /&gt;
* Harald Orlamünder: &amp;#039;&amp;#039;Paket-basierte Kommunikationsprotokolle.&amp;#039;&amp;#039; 1. Auflage. Hüthig, Bonn 2005, ISBN 3-8266-5046-8.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [https://www2.tkn.tu-berlin.de/teaching/rn/animations/gbn_sr/ Simulation von Selective-Repeat und Go-Back-N als Website.] tkn.tu-berlin.de&lt;br /&gt;
* [https://media.pearsoncmg.com/aw/aw_kurose_network_2/applets/go-back-n/go-back-n.html Simulation von Go-Back-N als Java-Applet.] pearsoncmg.com&lt;br /&gt;
* [https://media.pearsoncmg.com/aw/aw_kurose_network_3/applets/SelectRepeat/SR.html Simulation von Selective-Repeat als Java-Applet.] pearsoncmg.com&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Netzwerkprotokoll]]&lt;br /&gt;
[[Kategorie:Übertragungstechnik]]&lt;/div&gt;</summary>
		<author><name>imported&gt;PerfektesChaos</name></author>
	</entry>
</feed>