How do you ensure reliable delivery with minimal complexity? A simple approach is needed for reliable transmission without the complexity of sliding windows.
A simple reliable protocol where the sender transmits one packet, then stops and waits for an acknowledgment before sending the next packet.
- Sender transmits a single packet
- Sender stops and waits for an ACK from receiver
- Receiver sends ACK after receiving packet correctly
- Sender receives ACK, then sends next packet
- If timeout occurs before ACK, sender retransmits the packet
- Simple to implement
- Lowest possible efficiency on high-latency links
- Wastes bandwidth — sender idle while waiting for ACK
- Suitable for low-latency or low-throughput scenarios
- Contrasts with: Sliding Window Protocol — one packet vs multiple
- Built from: Acknowledgment — core mechanism
- Related: Reliable Data Transfer — simple form of reliable delivery
- Related: Transmission Error Detection — detects corrupted packets
- Very inefficient on long-RTT links (satellite: RTT is seconds, sender idle most of time)
- Duplicate packets possible if ACK is lost (handled by sequence numbers)
- Utilization = (packet transmission time) / (RTT + transmission time) — very low for high RTT