The idea
Go-Back-N solved Stop-and-Wait’s idle-RTT problem by keeping several frames in flight, but it pays for that with a blunt recovery rule: lose one frame, resend everything after it. On a noisy link where damage is common, that becomes its own source of waste — which is exactly the problem this topic’s protocol is built to fix.
How it works
Why Go-Back-N is not enough
Go-Back-N is very inefficient for noisy links. Why resend N frames — say, three — when only one of them was actually damaged? Selective Repeat answers that question directly: if a damaged frame is received, a NAK is sent to say the expected frame was not received correctly, and only that frame is resent.
How it works
What actually differs from Go-Back-N
The lecture names one main structural difference: the number of timers. Under Selective Repeat, each frame sent or resent has its own timer, rather than Go-Back-N’s single timer covering the whole window. That per-frame timer is what makes it possible to know, and resend, exactly one frame without touching the rest.
How it works
Out-of-order frames
Frames that arrive out of order are not discarded under Selective Repeat — they are buffered while the receiver waits for the missing one. Each connection tracks its own timeouts separately.
| Go-Back-N | Selective Repeat | |
|---|---|---|
| On a damaged frame | Resend it and every frame sent after it | Resend only the damaged frame |
| Timers | One, covering the whole window | One per frame sent or resent |
| Out-of-order arrival | Discarded | Buffered, delivered once the gap is filled |
| Receiver complexity | Lower — no reordering buffer needed | Higher — needs a buffer for out-of-order frames |
Where marks get lost
Selective Repeat's efficiency is a receiver-side trade
Selective Repeat is not free — buffering out-of-order frames and running a timer per frame both need more receiver-side state than Go-Back-N does. A question asking “why not always use Selective Repeat” is asking for this trade-off, not just the retransmission saving.
In the exam
- The headline difference is timers, per the lecture: one per frame under Selective Repeat, versus Go-Back-N’s single timer.
- NAK is specific to a damaged frame — it tells the sender exactly which frame to resend, which is what makes selective retransmission possible.
- Out-of-order handling is the other distinguishing fact: buffered under Selective Repeat, discarded under Go-Back-N.
- Both send several frames before waiting for an acknowledgment. Do not answer a Go-Back-N vs. Selective Repeat question with “Stop-and-Wait vs. sliding window” — that distinction is already settled before this topic.
Check yourself
- Go-Back-N resends everything from a lost frame onward; Selective Repeat resends only the damaged frame.
- Selective Repeat gives every frame its own timer; Go-Back-N uses one timer for the window.
- A NAK under Selective Repeat means a damaged frame arrived — it names what needs resending.
- Out-of-order frames are buffered under Selective Repeat, discarded under Go-Back-N.