Content

  1. Reliable Data Transfer (rdt)
  2. rdt2.0: Channel with Bit Errors
    1. Automatic Repeat Request (ARQ)
    2. rdt2.1: Fixed Version of rdt2.0
    3. rdt2.2: NAK-Free
  3. rdt3.0: Channel with Bit Errors and Losses
    1. Performance Analysis
  4. 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
    1. Source transmits single packet
    2. Wait for ACK / NAK
    3. Destination receives packet
    4. 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 the checksum
    • ACK/NAK includes checksums; retransmit packet if corrupted
    • Only 0 & 1 needed for seq #
  • Receiver
    • Checks if seq # is received before; retransmit acknowledgement if so

rdt2.2: NAK-Free

  • Receiver sends ACK only, with checksum & seq # appended
  • Sender retransmits data if ACK's seq # 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

results matching ""

    No results matching ""