pipelined protocols
Summary
Pipelined protocols
| Protocol | Timeout | Retransmit | Handle out-of-order |
|---|---|---|---|
| Go-Back-N | oldest unACKed packet | all unACKed, >=n | discard |
| Selective repeat | individual unACKed packets | one, n | buffer, discard only if too far |
same assumptions as RDT 3.0
Concept
Stop and Wait
- aka alternating bit
- low utilization
Go-Back-N
- cumulative ACK -> ACK
nmeans all packets <=n have been received - sender:
- keeps track of
NunACKed packets in a sliding window - advance to
n+1only on reciept of ACKn - timer for smallest unACKed
n - upon timeout(
n), retransmit >=n in the window
- keeps track of
- receiver:
- only ACK packets in order, simple receiver -> only track
expectedSeqNum - discard out of order packets, even if received successfully
- only ACK packets in order, simple receiver -> only track

Go-Back-N can handle corrupted/lost ACK
Selective Repeat
- each packet must be ACKed
- sender:
- track timeouts for
NunACKed packets - upon timeout(
n), retransmitnonly - when ACK
nis received, mark it as ACKed, advance window to next unACKed
- track timeouts for
- receiver:
- maintains a buffer
- pkt
nin window -> send ACKn- in order -> deliver + advance buffer
- else -> store in buffer
- pkt
nbefore window -> send ACKn - else(ahead of window) -> ignore
