In Go-Back-N ARQ: Why the Window Size Must Be
In Go-Back-N ARQ, the sender uses -bit sequence numbers, so sequence numbers live in a finite space of size . This implies sequence numbers are reused modulo , i.e., repeat cyclically. To ensure that the receiver (and acknowledgments) can unambiguously distinguish “new” from “old” frames after wrap-around, the sender’s window size must satisfy the key constraint:
This constraint prevents ambiguity in the receiver’s acceptance rule for a frame with sequence number , especially when the sender’s sequence numbers wrap around after enough transmissions. The core intuition is:
- The receiver’s acceptance depends on whether the incoming sequence number lies within the receiver’s current expected window.
- If the sender’s window were , then after wrap-around, a sequence number that should be treated as “old/retransmitted” could look “in-window” as if it were “new,” causing incorrect ACK behavior and breaking reliable delivery.
We’ll formalize this using the sliding window structure and modulo arithmetic.
Key terms:
- ARQ
- Go-Back-N
- Sequence Number
- Sliding Window
Precise model (modulo ) and the ambiguity problem
Let the sender transmit frames with sequence numbers modulo , where:
Let be the sender’s window size (number of outstanding/unacknowledged frames allowed). In a standard sliding-window ARQ, the receiver maintains an “expected” interval for acceptable new frames. For Go-Back-N, the receiver typically buffers nothing beyond the “expected” frame; it only advances in-order when it receives the correct expected sequence number, otherwise it discards out-of-order frames and sends an ACK for the last correctly received in-order frame (or equivalently an ACK indicating the next expected frame).
The receiver’s behavior relies on the assumption that there is no overlap between the set of sequence numbers representing “new frames for the current cycle” and those representing “old frames from the previous cycle.” Overlap would make the receiver unable to determine whether a wrapped sequence number corresponds to:
- a genuinely new frame that falls within the current expected range, or
- an old (possibly retransmitted) frame whose sequence number has wrapped into the current numeric range.
When sequence numbers wrap modulo , the only way to avoid that overlap is to ensure the distance between “start points” of consecutive windows is large enough that numeric wrap doesn’t cause aliasing. With a window size , the receiver’s expected set for new frames spans distinct sequence numbers. If , then in modular arithmetic those spans can cover (or exceed) the entire residue class space, guaranteeing overlap/aliasing between consecutive cycles.
This leads directly to the necessary condition:
Derivation sketch: why $W < 2^n$ is necessary
- 1Step 1
Use as the number of distinct sequence numbers. After enough transmissions, labels repeat modulo .
- 2Step 2
At any time, the receiver accepts/advances only when frames arrive with the sequence number corresponding to the receiver’s current expected position in the sliding window; this expected range contains distinct sequence numbers.
- 3Step 3
If the sender transmits enough such that sequence numbers wrap, a previously sent (and possibly retransmitted) frame may reuse a sequence number that numerically falls inside the receiver’s current expected set.
- 4Step 4
If , the receiver’s expected set of size can cover all residues (or more), so some old frame’s wrapped sequence number is indistinguishable from a new in-window frame.
- 5Step 5
To guarantee that no wrapped old sequence number can fall into the receiver’s current expected window, require , i.e., .
Modular reasoning mindset
Treat sequence numbers as elements of a finite cyclic set of size . Sliding windows select subsets of these residues; reliability requires those subsets to be non-ambiguous across time cycles.
What breaks when $W \ge 2^n$
With , ACKs can refer to sequence numbers that the receiver might interpret as belonging to the “current” expected range instead of an “old” retransmission. This can cause the receiver to advance incorrectly (accepting duplicates as new) or the sender to mis-handle acknowledgments.
Relationship to common textbook results
Many analyses of sliding-window ARQ protocols state that with -bit sequence numbers, the maximum usable sender window size is , which is equivalent to . This condition is the same “no overlap/aliasing” requirement: the sender must keep enough slack so that wrap-around cannot cause a sequence number from a different cycle to be mistaken for an in-cycle frame.
Key terms:
- Modulo Arithmetic
- ACK (Acknowledgment)
- Wrap-around
- Ambiguity
Wrap-around safety requirement across cycles
Sender window active
Cycle kSequence numbers cover a set of size within residues modulo ."
Receiver expects next in-order value
Advance receiver stateReceiver acceptance rule depends on expected sequence number position."
Sequence numbers wrap
After enough transmissionsOld labels may reappear numerically; only safe if windows do not overlap."
Enforce $W < 2^n$
Safety conditionPrevents any wrapped old label from being interpreted as a current in-window new label."
Window size constraint vs. ambiguity risk (qualitative)
If reaches or exceeds , wrap-around overlap becomes unavoidable.
Common clarifications
Knowledge Check
In Go-Back-N ARQ with -bit sequence numbers, why must the sender window size satisfy ?