Stop-and-wait ARQ

Stop-and-wait ARQ

Stop-and-wait ARQ is the simplest kind of automatic repeat-request (ARQ) method. A stop-and-wait ARQ sender sends one frame at a time. After sending each frame, the sender doesn't send any further frames until it receives an ACK (acknowledgement) signal. After receiving a good frame, the receiver sends an ACK. If the ACK does not reach the sender before a certain time, known as the timeout, the sender sends the same frame again.

The above behavior is the simplest Stop-and-Wait implementation. However, in a real life implementation there are problems to be addressed.

Typically the transmitter adds a redundancy check number to the end of each frame.The receiver uses the redundancy check number to check for possible damage.If the receiver sees that the frame is good, it sends an ACK.If the receiver sees that the frame is damaged, the receiver discards it and does not send an ACK -- pretending that the frame was completely lost, not merely damaged.

One problem is where the ACK sent by the receiver is damaged or lost. In this case, the sender doesn't receive the ACK, times out, and sends the frame again. Now the receiver has two copies of the same frame, and doesn't know if the second one is a duplicate frame or the next frame of the sequence carrying identical data.

Another problem is when the transmission medium has such a long latency that the sender's timeout runs out before the frame reaches the receiver. In this case the sender resends the same packet. Eventually the receiver gets two copies of the same frame, and sends an ACK for each one. The sender, waiting for a single ACK, receives two ACKs, which may cause problems if it assumes that the second ACK is for the next frame in the sequence.

To avoid these problems, the most common solution is to define a 1 bit "sequence number" in the header of the frame. This sequence number alternates (from 0 to 1) in subsequent frames. When the receiver sends an ACK, it includes the sequence number of the next packet it expects. This way, the receiver can detect duplicated frames by checking if the frame sequence numbers alternate. If two subsequent frames have the same sequence number, they are duplicates, and the second frame is discarded. Similarly, if two subsequent ACKs reference the same sequence number, they are acknowledging the same frame.

Stop-and-wait ARQ is inefficient compared to other ARQs, because the time between packets, if the ACK and the data are received successfully, is twice the transit time (assuming the turnaround time can be zero). The throughput on the channel is a fraction of what it could be. To solve this problem, one can send more than one packet at a time with a larger sequence number and use one ACK for a set. This is what is done in Go-Back-N ARQ and the Selective Repeat ARQ.

eta=frac{t_{I{Eleft [t_{T} ight] }= hocdotfrac{t_{I{t_{F

where:

*t_{I} is the time needed to transfer bits of information only;
*t_{O} is the timeout;
*t_{F} is the time to transmit a packet (successfully or not).

References

*Tanenbaum, Andrew S., "Computer Networks", 4th ed. ISBN 0-13-066102-3


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Look at other dictionaries:

  • Stop-and-wait ARQ — Le Stop and wait ARQ (aussi appelé Send and wait ARQ) est la plus simple forme de méthode ARQ, qui vise à fiabiliser les échanges de données. Sommaire 1 Principe 2 Problèmes 3 Solution 4 Efficacité …   Wikipédia en Français

  • ARQ — Saltar a navegación, búsqueda El ARQ (del inglés Automatic Repeat reQuest) es un protocolo utilizado para el control de errores en la transmisión de datos, garantizando la integridad de los mismos. Éste suele utilizarse en sistemas que no actúan… …   Wikipedia Español

  • ARQ-Protokoll — ARQ Protokolle (englisch Automatic Repeat reQuest, dt. Automatische Wiederholungsanfrage) werden bei Computernetzen eingesetzt, um eine zuverlässige Datenübertragung durch Sendewiederholungen zu gewährleisten. Durch die Möglichkeit der… …   Deutsch Wikipedia

  • Go-Back-N ARQ — Le Go Back N ARQ est un type de méthode Automatic Repeat reQuest (ARQ) dans lequel l émetteur envoie un certain nombre de trames, regroupées en une fenêtre, sans recevoir d acquittement (ACK) de la part du destinataire pour chaque trame (à l… …   Wikipédia en Français

  • Error detection and correction — In mathematics, computer science, telecommunication, and information theory, error detection and correction has great practical importance in maintaining data (information) integrity across noisy channels and less than reliable storage… …   Wikipedia

  • Go-Back-N ARQ — is a specific instance of the Automatic Repeat reQuest (ARQ) Protocol, in which the sending process continues to send a number of frames specified by a window size even without receiving an ACK packet from the receiver.The receiver process keeps… …   Wikipedia

  • Automatic Repeat Request — ARQ (del inglés Automatic Repeat reQuest) son protocolos utilizados para el control de errores en la transmisión de datos, garantizando la integridad de los mismos. Estos suelen utilizarse en sistemas que no actúan en tiempo real ya que el tiempo …   Wikipedia Español

  • Обнаружение и исправление ошибок — Обнаружение ошибок в технике связи  действие, направленное на контроль целостности данных при записи/воспроизведении информации или при её передаче по линиям связи. Исправление ошибок (коррекция ошибок)  процедура восстановления… …   Википедия

  • Избыточное кодирование — Обнаружение ошибок в технике связи  действие, направленное на контроль целостности данных при записи/воспроизведении информации или при её передаче по линиям связи. Исправление ошибок (коррекция ошибок)  процедура восстановления информации после… …   Википедия

  • Избыточность данных — Обнаружение ошибок в технике связи  действие, направленное на контроль целостности данных при записи/воспроизведении информации или при её передаче по линиям связи. Исправление ошибок (коррекция ошибок)  процедура восстановления информации после… …   Википедия

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”