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/NAK
may be corrupted- Cannot retransmit because may duplicate
rdt2.1: Fixed Version of rdt2.0
- Sender
- Adds
seq #
in the header along with thechecksum
ACK/NAK
includeschecksums
; retransmit packet if corrupted- Only
0 & 1
needed forseq #
- Adds
- Receiver
- Checks if
seq #
is received before; retransmit acknowledgement if so
- Checks if
rdt2.2: NAK-Free
- Receiver sends
ACK
only, 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