The short answer

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.

Two rows of frames numbered 0 to 6 with frame 2 marked lost, Go-Back-N showing frames 2 to 6 shaded as five retransmissions and Selective Repeat showing only frame 2 shaded as one retransmission
One lost frame: Go-Back-N resends five frames, Selective Repeat resends one.

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

Infographic comparing Go-Back-N and Selective Repeat on receiver window size, out-of-order handling, acknowledgement type, and what gets resent after a loss
Go-Back-N vs Selective Repeat at a glance: receiver window, out-of-order handling, ACK type, and resends.
AspectGo-Back-NSelective Repeat
Sender windowUp to 2^m – 1Up to 2^(m-1)
Receiver windowExactly 1Equal to the sender window
Out-of-order frame handlingDiscarded on arrivalBuffered until the gap fills
Acknowledgement typeCumulative; one ACK covers many framesIndividual; one ACK per frame
What gets retransmitted on lossThe lost frame and every frame after itOnly the lost frame
Receiver buffer requirementNoneOne slot per window position
Reordering logicNot neededRequired before delivery upward
Maximum window formula2^m – 12^(m-1)
Sequence number efficiencyUses nearly the full sequence spaceUses only half the sequence space
Implementation complexityLower; one timer, one counterHigher; per-frame timers and buffering
Bandwidth efficiency on a lossy linkFalls fast as the loss rate risesStays high even with frequent loss
Stop-and-wait as a special caseSame protocol, window forced to 1Same 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.

Two rows of frames 0 to 6 with frame 2 lost, Go-Back-N leaving frames 3 to 6 unshaded as discarded and Selective Repeat shading frames 3 to 6 as buffered
Go-Back-N discards everything after the gap; Selective Repeat buffers it.

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).

mSequence space 2^mGBN max windowSR max window
2432
3874
416158

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 WaEfficiency
1 (stop-and-wait)11/3 = 0.333
1 (stop-and-wait)31/7 = 0.143
434/7 = 0.571
737/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

Go-Back-N accepts only the next expected frame, in strict order. A larger receiver window would mean buffering out-of-order frames, which Go-Back-N was never built to do. Keeping it at 1 keeps the receiver simple, with no reordering logic at all.

Selective Repeat’s receiver accepts a whole window of frames at once, not just one. If the window were larger than 2^(m-1), an old retransmitted frame could reuse a number the receiver expects as new. Halving the window keeps old and new frames from ever overlapping.

Go-Back-N retransmits frame 2 and every frame sent after it, so frames 2 through 6, five frames total. Selective Repeat retransmits only frame 2 itself. That five-to-one gap is the clearest way to see why Selective Repeat saves bandwidth.

No, it is not, despite retransmitting less. It needs receiver buffer space and reordering logic that Go-Back-N never requires. On a low-loss link with simple receiver hardware, Go-Back-N’s lighter cost can matter more than the bandwidth Selective Repeat saves.

Frequently Asked Questions

Go-Back-N gives the receiver a window of exactly 1 and discards any frame that arrives out of order. Selective Repeat gives the receiver the same window size as the sender and buffers out-of-order frames instead. That single design choice explains nearly every other difference between them.

The maximum window size for Selective Repeat is 2^(m-1), half the available sequence space, for m sequence-number bits. That bound applies to both the sender window and the receiver window, since Selective Repeat keeps them equal. A window larger than that risks confusing an old frame with a new one.

Go-Back-N’s receiver expects only one specific frame, so a single reserved sequence number avoids ambiguity, giving a bound of 2^m – 1. Selective Repeat’s receiver accepts a whole window of frames, so it needs half the sequence space kept in reserve. That is why the two bounds differ.

Go-Back-N uses cumulative acknowledgements. An ACK for frame k confirms every frame up to and including k, not just that one frame. Selective Repeat works differently, sending one individual ACK per frame.

Selective Repeat retransmits only the single frame that was lost. The receiver buffers every frame that arrived after it and delivers them once the gap is filled. Go-Back-N, by contrast, retransmits the lost frame and everything sent after it.

Stop-and-wait ARQ is neither one; it is the special case where the window size equals 1. Both Go-Back-N and Selective Repeat reduce to stop-and-wait behaviour if their window is set that low. Choosing a larger window is exactly what pipelining, and the efficiency gain, depends on.

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:


Whatsapp-color Created with Sketch.

By Arun Kumar

Full Stack Developer with a BE in Computer Science, working with React, Next.js, Node.js, MongoDB, and AI/ML tools. Founder of DiffStudy — built to help CS students ace GATE and university exams, and keep developers up to date across AI, cloud, system design, web development, and every field of computer science. Every article is written from real hands-on experience, not just theory.

Leave a Reply

Your email address will not be published. Required fields are marked *


You cannot copy content of this page