Go-Back-N vs Selective Repeat comes down to the receiver window. Go-Back-N pins that window at exactly 1. It accepts frames only in strict order, and discards anything that arrives out of place. Selective Repeat gives the receiver a window equal to the sender’s window, so it buffers out-of-order frames instead and acknowledges each one individually. On a timeout, Go-Back-N resends the lost frame plus everything sent after it, while Selective Repeat resends only the lost frame itself. The sequence-number bounds differ too. Go-Back-N’s maximum window is 2^m – 1, for m-bit sequence numbers. Selective Repeat’s maximum is smaller: 2^(m-1), half the sequence space, not the 2^m – 1 that many sources wrongly repeat.
A sender that pipelines several frames needs a plan for the lost one. Go-Back-N and Selective Repeat are the two classic plans taught in networking courses. Both are sliding window ARQ protocols. ARQ stands for Automatic Repeat reQuest, the scheme of resending a frame after a lost acknowledgement, or ACK.
GATE papers test the window-size formulas directly, not only the general idea. A common trap online states the Selective Repeat bound as 2^m – 1. That number is actually the Go-Back-N bound, and this guide keeps the two separate throughout.
This guide builds both protocols from stop-and-wait upward, then traces one lost frame through each. It also states the window-size formulas precisely, since exam papers reward the exact bound. The sliding window idea reappears above this layer too, inside TCP vs UDP flow control.

Why Sliding Windows Exist
Stop-and-wait ARQ sends one frame, then waits for its ACK before sending the next. The link still sits idle for the entire round trip, every single time. So that idle time is the whole problem sliding windows solve.
When propagation delay is large compared to transmission time, the waste gets worse. A satellite link can spend most of a round trip doing nothing but waiting. Bandwidth sits unused while a single ACK crosses the link.
Pipelining fixes this by letting the sender push several frames before any ACK returns. Instead, a window of outstanding frames replaces the single frame stop-and-wait allows. So the link stays busy instead of idling through every round trip.
Go-Back-N and Selective Repeat both pipeline frames this way. They differ sharply, though, in what happens once a frame goes missing. So that difference is where the rest of this guide focuses.
How Go-Back-N Works
Go-Back-N allows a sender window of size N, several frames outstanding at once. The receiver window, in contrast, stays fixed at exactly one frame. So that gap between the two windows is the defining property of Go-Back-N.
The receiver accepts frames only in strict sequence order. An out-of-order frame gets discarded immediately, even if it arrived undamaged. So a single lost frame strands every frame that follows it.
Unlike Selective Repeat, acknowledgements in Go-Back-N are cumulative, not individual. An ACK for frame k confirms every frame up to and including k. One ACK can therefore clear several frames from the sender’s window at once.
So on a timeout, the sender retransmits the lost frame and every frame sent after it. That is exactly where the protocol’s name comes from. Even frames that already arrived safely get resent, since the receiver discarded them anyway.
Advantages of Go-Back-N.
- Needs no buffer at the receiver, since an out-of-order frame is never kept.
- Also stays simple to implement, with a single timer and a single expected sequence number.
- Cuts acknowledgement traffic, because one cumulative ACK can cover several frames.
Disadvantages of Go-Back-N.
- Wastes bandwidth, since frames that already arrived correctly get resent anyway.
- Since retransmission covers everything after it, a loss near the start of the window forces a large resend.
- So it grows less efficient once the window size or the loss rate climbs.
How Selective Repeat Works
Unlike Go-Back-N, Selective Repeat gives the sender and the receiver an equal window size, N. So neither side gets the shrunk window Go-Back-N forces on the receiver. That equality is what lets the receiver hold onto frames instead of discarding them.
Instead, an out-of-order frame is buffered, not thrown away. The receiver holds it until the missing frame finally arrives. Once the gap closes, the buffered frames are then delivered to the layer above in order.
In contrast, acknowledgements here are individual, one per frame received correctly. Every frame gets its own ACK, whether it arrived in order or not. So the sender learns exactly which frame is missing, not just that something is.
On a timeout, the sender resends only the frame that was lost. Frames already acknowledged individually stay untouched. So that precision is the entire appeal of Selective Repeat over Go-Back-N.
Advantages of Selective Repeat.
- Retransmits only the frame actually lost, so bandwidth is not wasted on the rest.
- So it performs far better on a link with a high loss rate.
- Keeps overall throughput close to the link’s full capacity.
Disadvantages of Selective Repeat.
- Needs receiver buffer space, since out-of-order frames must be kept, not dropped.
- Needs reordering logic that the receiver must run correctly before delivery.
- Costs more in memory and complexity than Go-Back-N.
- Requires a timer per frame instead of one shared timer, which adds overhead.
Go-Back-N vs Selective Repeat: Comparison Table

| Aspect | Go-Back-N | Selective Repeat |
|---|---|---|
| Sender window | Up to 2^m – 1 | Up to 2^(m-1) |
| Receiver window | Exactly 1 | Equal to the sender window |
| Out-of-order frame handling | Discarded on arrival | Buffered until the gap fills |
| Acknowledgement type | Cumulative; one ACK covers many frames | Individual; one ACK per frame |
| What gets retransmitted on loss | The lost frame and every frame after it | Only the lost frame |
| Receiver buffer requirement | None | One slot per window position |
| Reordering logic | Not needed | Required before delivery upward |
| Maximum window formula | 2^m – 1 | 2^(m-1) |
| Sequence number efficiency | Uses nearly the full sequence space | Uses only half the sequence space |
| Implementation complexity | Lower; one timer, one counter | Higher; per-frame timers and buffering |
| Bandwidth efficiency on a lossy link | Falls fast as the loss rate rises | Stays high even with frequent loss |
| Stop-and-wait as a special case | Same protocol, window forced to 1 | Same protocol, window forced to 1 |
Worked Example: One Lost Frame
Here is one trace worth memorising for exams. The sender window holds 7 frames, numbered 0 through 6, all transmitted back to back. Frame 2 is lost somewhere on the link.

Go-Back-N handles it like this. Frames 3, 4, 5 and 6 arrive out of order, since frame 2 is missing. So each one gets discarded on arrival.
Go-Back-N only accepts the next expected frame, nothing else. After the timeout, the sender retransmits frames 2, 3, 4, 5 and 6. That is five frames resent for one lost frame.
Selective Repeat handles the same loss differently. Frames 3, 4, 5 and 6 still arrive out of order, but the receiver buffers each one. It acknowledges every frame individually as it arrives.
The sender sees ACKs for 3, 4, 5 and 6, so it knows exactly what is missing. After the timeout, it retransmits frame 2 only. That is one frame resent for the same lost frame.
Five retransmissions against one, from a single lost frame. So that gap is the entire case for Selective Repeat, and the entire cost Go-Back-N accepts for its simplicity. Keep this trace close; the rest of this guide keeps returning to it.
The Window Size Formulas
Every frame carries a sequence number, stored in m bits. That gives a sequence space of 2^m distinct numbers. Numbers then cycle back to 0 once they pass the top value.
Go-Back-N’s maximum sender window is 2^m – 1. The receiver window still stays at 1, regardless of m, as covered above.
Selective Repeat’s maximum window is smaller: 2^(m-1), half the sequence space. That bound applies to both the sender window and the receiver window, since Selective Repeat keeps the two equal.
Many study sites state the Selective Repeat bound as 2^m – 1 too. That number is the Go-Back-N bound, not the Selective Repeat one. Selective Repeat’s true limit is half that, 2^(m-1).
| m | Sequence space 2^m | GBN max window | SR max window |
|---|---|---|---|
| 2 | 4 | 3 | 2 |
| 3 | 8 | 7 | 4 |
| 4 | 16 | 15 | 8 |
Go-Back-N gets away with the larger window because its receiver only ever expects one specific frame. So ambiguity is avoided by leaving a single sequence number unused between old and new frames. One reserved number is enough, so the window can use the rest.
Selective Repeat cannot use that trick, since its receiver accepts a whole window of frames at once. If that window exceeded half the sequence space, an old retransmitted frame could look identical to a new one. So halving the window removes that overlap entirely.
Efficiency and the Bandwidth-Delay Product
Efficiency here means the fraction of time the sender spends actually transmitting. It is written as W / (1 + 2a), where W is the window size. The term a is propagation time divided by transmission time, the same two quantities separated in synchronous vs asynchronous transmission.
A large a means a long, fat pipe, where propagation delay dwarfs the time to push out one frame. That pipe needs to stay full of frames, not carry just one at a time. So the window has to at least match the bandwidth-delay product for efficiency to reach 1.
| Window W | a | Efficiency |
|---|---|---|
| 1 (stop-and-wait) | 1 | 1/3 = 0.333 |
| 1 (stop-and-wait) | 3 | 1/7 = 0.143 |
| 4 | 3 | 4/7 = 0.571 |
| 7 | 3 | 7/7 = 1.000 |
Stop-and-wait is just the sliding window case with W set to 1. That single number explains why it wastes the link on any path with real delay. Once W reaches 1 + 2a, the window already covers the full round trip, and efficiency reaches 1.
The worked example above used a window of 7, matching the last row in that table. At a = 3, a window of 7 keeps the link fully busy, right up until frame 2 is actually lost.
When Each One Is Used
Go-Back-N fits a link with a low error rate and cheap receiver hardware. Its simplicity keeps embedded and legacy equipment easy to build. Older wide-area links leaned on it for exactly that reason.
Selective Repeat fits a noisy link, or one with a large bandwidth-delay product. Wireless and satellite links both lose frames often enough to justify the extra buffering. Modern TCP borrows a similar idea through selective acknowledgement, layered on top of its own window.
Both protocols sit at the data link layer, mapped out in OSI model vs TCP/IP model. That is one layer below the connections compared in connection-oriented vs connectionless transport. Other data-link schemes take a different approach entirely, like the contention-based access compared in pure ALOHA vs slotted ALOHA.
Exam papers rarely ask which one is objectively better. They ask which one fits a stated loss rate, buffer budget, or window size. Match the scenario to the trade-off, not to a general preference.
Interview Questions
Frequently Asked Questions
Wrapping Up
Go-Back-N vs Selective Repeat comes down to one design choice. Go-Back-N keeps the receiver window at 1 and discards anything out of order. Selective Repeat matches the receiver window to the sender’s and buffers instead.
Keep the lost-frame trace close for exams. One lost frame costs Go-Back-N five retransmissions and costs Selective Repeat exactly one. That gap, not a vague notion of efficiency, is what the formulas above are proving.
Finally, keep the window bounds straight. Go-Back-N’s maximum is 2^m – 1. Selective Repeat’s maximum is 2^(m-1), half the sequence space, not the same number reused.
Related reading on DiffStudy:
- TCP vs UDP
- OSI Model vs TCP/IP Model
- Connection-Oriented vs Connectionless
- Pure ALOHA vs Slotted ALOHA
- CS Fundamentals hub