In Go-Back-N ARQ: Why the Window Size Must Be <2n< 2^n

In Go-Back-N ARQ: Why the Window Size Must Be <2n< 2^n

Verified Sources
Nov 4, 2026

In Go-Back-N ARQ, the sender uses nn-bit sequence numbers, so sequence numbers live in a finite space of size 2n2^n. This implies sequence numbers are reused modulo 2n2^n, i.e., 0,1,…,2n−10,1,\dots,2^n-1 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: W<2n.W < 2^n.

This constraint prevents ambiguity in the receiver’s acceptance rule for a frame with sequence number ss, 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 ≥2n\ge 2^n, 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 2n2^n) and the ambiguity problem

Let the sender transmit frames with sequence numbers modulo MM, where: M=2n.M = 2^n.

Let WW 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 MM, 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 WW, the receiver’s expected set for new frames spans WW distinct sequence numbers. If W≥MW \ge M, 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: W<M=2n.W < M = 2^n.

Derivation sketch: why $W < 2^n$ is necessary

  1. 1
    Step 1

    Use M=2nM=2^n as the number of distinct sequence numbers. After enough transmissions, labels repeat modulo MM.

  2. 2
    Step 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 WW distinct sequence numbers.

  3. 3
    Step 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.

  4. 4
    Step 4

    If W≥MW \ge M, the receiver’s expected set of size WW can cover all MM residues (or more), so some old frame’s wrapped sequence number is indistinguishable from a new in-window frame.

  5. 5
    Step 5

    To guarantee that no wrapped old sequence number can fall into the receiver’s current expected window, require W<MW < M, i.e., W<2nW < 2^n.

Modular reasoning mindset

Treat sequence numbers as elements of a finite cyclic set of size 2n2^n. 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 W≥2nW \ge 2^n, 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 nn-bit sequence numbers, the maximum usable sender window size is 2n−12^n - 1, which is equivalent to W<2nW < 2^n. 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 k

Sequence numbers cover a set of size WW within residues modulo 2n2^n."

Receiver expects next in-order value

Advance receiver state

Receiver acceptance rule depends on expected sequence number position."

Sequence numbers wrap

After enough transmissions

Old labels may reappear numerically; only safe if windows do not overlap."

Enforce $W < 2^n$

Safety condition

Prevents any wrapped old label from being interpreted as a current in-window new label."

Window size constraint vs. ambiguity risk (qualitative)

If WW reaches or exceeds 2n2^n, wrap-around overlap becomes unavoidable.

Common clarifications

Knowledge Check

Question 1 of 4
Q1Single choice

In Go-Back-N ARQ with nn-bit sequence numbers, why must the sender window size WW satisfy W<2nW < 2^n?