Go-Back-N ARQ
   HOME

TheInfoList



OR:

Go-Back-''N'' ARQ is a specific instance of the
automatic repeat request Automatic repeat request (ARQ), also known as automatic repeat query, is an error-control method for data transmission that uses acknowledgements (messages sent by the receiver indicating that it has correctly received a packet) and timeouts ...
(ARQ) protocol, in which the sending process continues to send a number of frames specified by a ''window size'' even without receiving an acknowledgement (ACK) packet from the receiver. It is a special case of the general
sliding window protocol A sliding window protocol is a feature of packet-based data transmission protocols. Sliding window protocols are used where reliable in-order delivery of packets is required, such as in the data link layer (OSI layer 2) as well as in the Transm ...
with the transmit window size of and receive window size of 1. It can transmit frames to the peer before requiring an ACK. The receiver process keeps track of the sequence number of the next frame it expects to receive. It will discard any frame that does not have the exact sequence number it expects (either a duplicate frame it already acknowledged, or an out-of-order frame it expects to receive later) and will send an ACK for the last correct in-order frame. Once the sender has sent all of the frames in its ''window'', it will detect that all of the frames since the first lost frame are ''outstanding'', and will go back to the sequence number of the last ACK it received from the receiver process and fill its window starting with that frame and continue the process over again. Go-Back-''N'' ARQ is a more efficient use of a connection than
Stop-and-wait ARQ Stop-and-wait ARQ, also referred to as alternating bit protocol, is a method in telecommunications to send information between two connected devices. It ensures that information is not lost due to dropped packets and that packets are received ...
, since unlike waiting for an acknowledgement for each packet, the connection is still being utilized as packets are being sent. In other words, during the time that would otherwise be spent waiting, more packets are being sent. However, this method also results in sending frames multiple times – if any frame was lost or damaged, or the ACK acknowledging them was lost or damaged, then that frame and all following frames in the send window (even if they were received without error) will be re-sent. To avoid this,
Selective Repeat ARQ Selective Repeat ARQ/Selective Reject ARQ is a specific instance of the automatic repeat request (ARQ) protocol used to manage sequence numbers and retransmissions in reliable communications. Summary Selective Repeat is part of the automatic ...
can be used.


Pseudocode

These examples assume an infinite number of sequence and request numbers. ''N'' := window size ''Rn'' := request number ''Sn'' := sequence number ''Sb'' := sequence base ''Sm'' := sequence max function receiver is ''Rn'' := 0 Do the following forever: if the packet received = Rn and the packet is error free then Accept the packet and send it to a higher layer ''Rn'' := ''Rn'' + 1 else Refuse packet Send a Request for ''Rn'' function sender is ''Sb'' := 0 ''Sm'' := ''N'' + 1 Repeat the following steps forever: if you receive a request number where ''Rn'' > ''Sb'' then ''Sm'' := (''Sm'' − ''Sb'') + ''Rn'' ''Sb'' := ''Rn'' if no packet is in transmission then Transmit a packet where ''Sb'' ≤ ''Sn'' ≤ ''Sm''. Packets are transmitted in order.


Choosing a window size (''N'')

There are a few things to keep in mind when choosing a value for : # The sender must not transmit too fast. should be bounded by the receiver’s ability to process packets. # must be smaller than the number of sequence numbers (if they are numbered from zero to ) to verify transmission in cases of any packet (any data or ACK packet) being dropped. # Given the bounds presented in (1) and (2), choose to be the largest number possible.


References

{{Reflist, refs= {{cite book , last= Tanenbaum , first= Andrew S. , title= Computer Networks , edition= 4th , isbn= 0-13-066102-3 , url-access= registration , url= https://archive.org/details/computernetworks00tane_2 {{cite book , last= Kurose , first= James F. , author2=Keith W. Ross , title=Computer Networking: A Top-Down Approach , isbn=0-321-49770-8


See also

*
Reliable Data Transfer Reliable Data Transfer is a topic in computer networking concerning the transfer of data across unreliable channels. Unreliability is one of the drawbacks of Packet switching, packet switched networks such as the modern internet, as packet loss ...
*
Pipeline (software) In software engineering, a pipeline consists of a chain of processing elements ( processes, threads, coroutines, functions, ''etc.''), arranged so that the output of each element is the input of the next; the name is by analogy to a physical pip ...
*
Automatic repeat request Automatic repeat request (ARQ), also known as automatic repeat query, is an error-control method for data transmission that uses acknowledgements (messages sent by the receiver indicating that it has correctly received a packet) and timeouts ...
*
Computer networking A computer network is a set of computers sharing resources located on or provided by network nodes. The computers use common communication protocols over digital interconnections to communicate with each other. These interconnections are ma ...
*
Selective Repeat ARQ Selective Repeat ARQ/Selective Reject ARQ is a specific instance of the automatic repeat request (ARQ) protocol used to manage sequence numbers and retransmissions in reliable communications. Summary Selective Repeat is part of the automatic ...


External links


Go-Back-N ARQ demonstration in a Java applet
Logical link control Error detection and correction de:ARQ-Protokoll#Go-Back-N it:Automatic repeat request#Go-Back-N