Handling Packet Loss: rdt 3.0 and Stop-and-Wait
rdt 3.0: Reliable Transfer over a Lossy Channel with Bit Errors
Suppose the channel can both corrupt and lose packets. If the sender's data disappears along the way, the sender waits indefinitely, while the receiver also waits because it received nothing.
The sender therefore needs a countdown timer. If no ACK arrives within the specified time, it retransmits the packet. A packet might not be lost but simply delayed, also triggering a retransmission. The receiver uses sequence numbers to discard duplicates.
| Sender state / event | Action / next state |
|---|---|
| call n / rdt_send | save DATA n; send; start_timer → wait ACK n |
| wait ACK n / timeout | resend DATA n; start_timer → wait ACK n |
| wait ACK n / valid ACK n | stop_timer → call (1-n) |
| wait ACK n / corrupt ACK or ACK (1-n) | Ignore; timer continues |
The receiver remains the ACK-only alternating-bit receiver: correct expected data is delivered once; duplicates are discarded and acknowledged again. Unlike rdt 2.2, an unexpected ACK does not immediately retransmit in this rdt 3.0 model.
No Loss
Packet Loss
ACK Loss
Premature Timeout
Recover from loss and delayed ACKs
Unlock the complete interactive lab, deeper explanations, and curated reference answers.
KNOWLEDGE QUIZ
rdt 3.0 works correctly but performs poorly. Stop-and-wait leads to very low sender utilization.
Stop-and-Wait Utilization
Let each packet contain bits, link rate be bits/s, and propagation round-trip time be . Ignoring ACK serialization and processing, a loss-free cycle spends only seconds transmitting:
A shorter timeout cannot eliminate propagation delay and may instead cause unnecessary retransmissions. Analyze reliability separately from link utilization.
KNOWLEDGE QUIZ
Calculate stop-and-wait utilization
A 1 Gbps link sends 8000-bit packets with propagation RTT 30 ms. Ignore ACK serialization and processing. Compute transmission time, stop-and-wait utilization, and useful throughput. Separately trace one A packet: one-way delay 20 ms, first ACK lost, timeout 60 ms.