Go-Back-N Error Recovery

Go-Back-N error recovery is a procedure which is implemented in some communications protocols to provide reliability. Go-Back-N ARQ (is one of a number of error recovery procedures to detect and retransmit I-frames which have been corrupted due to errors in the physical link (c.f. checkpoint error recovery).

The HDLC standard states that "For control purposes, each data station assumes responsibility for the organisation of its data flow and for unrecoverable data link level error conditions associated with the transmissions it originates." To achieve this, HDLC defines an optional procedure in the reliable ABM mode to provide Go-Back-N error recovery which is discussed below.

HDLC Go-Back-N Procedure

The recovery of a corrupted I-frame proceeds in three stages:

A remote node may request retransmission of corrupted I-frames by initiating Go-Back-N error recovery by sending a REJ (reject) frame. The remote node sends a REJ frame to instruct the sending station to begin retransmission of I-frames at the frame number indicated (in the N(R) value of the REJ frame). Since the remote node does not store any out-of-sequence frames, the N(R) value corresponds to the next expected in sequence I-frame (i.e. the receive state variable (V(R)). The receiver continues to discard received I-frames until one is received with the expected sequence number (i.e. V(R)=N(S)).

Upon receipt of a REJ frame (by the local node), the transmitter winds-back the sequence of I-frames pending transmission to the indicated I-frame (i.e. the send state variable (V(S)) is assigned the value of the received sequence number (N(R))). The transmitter then retransmits the requested I-frame followed by all successive I-frames. This is sometimes known as "wind back" of the transmitter.

If the retransmission is not successful, the protocol relies upon a protocol timer (the HDLC T1 timer) in the local node to detect that no acknowledgment was received and to trigger checkpoint error recovery.