Content
- Reliable Data Transfer (rdt)
- rdt2.0: Channel with Bit Errors
- Automatic Repeat Request (ARQ)
- rdt2.1: Fixed Version of rdt2.0
- rdt2.2: NAK-Free
- rdt3.0: Channel with Bit Errors and Losses
- Performance Analysis
- Pipelined Protocols
Reliable Data Transfer (rdt)

Data sent by one end are delivered correctly & completely and in order.
- IP is best effort delivery
- No orderly delivery guaranteed
- No integrity of data guaranteed
- Keys
- Checksum
- Sequence #
- Acknowledgement
- Retransmission
rdt2.0: Channel with Bit Errors
Assume no data lost, simply bit errors.
Automatic Repeat Request (ARQ)
Receiver sends ACK and NAK to the sender. Sender retransmits data upon receiving NAK.

- Stop-and-Wait
- Source transmits single packet
- Wait for ACK / NAK
- Destination receives packet
- Replies with ACK / NAK
- Issues
ACK/NAKmay be corrupted- Cannot retransmit because may duplicate
rdt2.1: Fixed Version of rdt2.0
- Sender
- Adds
seq #in the header along with thechecksum ACK/NAKincludeschecksums; retransmit packet if corrupted- Only
0 & 1needed forseq #
- Adds
- Receiver
- Checks if
seq #is received before; retransmit acknowledgement if so
- Checks if
rdt2.2: NAK-Free
- Receiver sends
ACKonly, withchecksum&seq #appended - Sender retransmits data if
ACK'sseq #duplicated

rdt3.0: Channel with Bit Errors and Losses
Sets timer to trigger retransmission if data loss. Needs to be longer than RTT.

Performance Analysis
Utilization tends to be slow, hence lack of practical use. (Only in TFTP)

Pipelined Protocols
Increase utilization by continuing sending packets before waiting for acknowledgements.

- Increase complexity
- Range of
seq #must increase - Need to buffer the packets
- Sender may need buffer for retransmission
- Receiver may need buffer to wait for missing packets
- Range of