ELEC3506

Topics

Transport LayerLecture 7 PDF12 min

Selective Repeat ARQ

Why Go-Back-N wastes bandwidth on a noisy link, and how Selective Repeat fixes it by resending only the damaged frame and giving every frame its own timer.

By the end of this page you should be able to

  • Explain why Go-Back-N is inefficient on a noisy link
  • State what event triggers a NAK under Selective Repeat
  • Say why Selective Repeat needs one timer per frame, unlike Go-Back-N's single timer
  • Contrast Selective Repeat's handling of an out-of-order frame with Go-Back-N's

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-NSelective Repeat
On a damaged frameResend it and every frame sent after itResend only the damaged frame
TimersOne, covering the whole windowOne per frame sent or resent
Out-of-order arrivalDiscardedBuffered, delivered once the gap is filled
Receiver complexityLower — no reordering buffer neededHigher — needs a buffer for out-of-order frames
Both send several frames before waiting for acknowledgment. What differs is how much gets resent after damage, and what it costs the receiver to make that possible.

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.

Check yourself

  1. Frames 4, 5 and 6 are in flight. Frame 5 is damaged; frames 4 and 6 arrive correctly. Under Selective Repeat, what gets resent?
  2. What is the main structural difference the lecture names between Go-Back-N and Selective Repeat?
  3. A Selective Repeat receiver is expecting frame 5, but frame 6 arrives first. What does it do?
  4. Why does a receiver send a NAK under Selective Repeat?