Anne Reinarz Durham University

Re-cap

Re-cap


Re-cap: transport-layer services


Re-cap:

Multiplexing and demultiplexing


Re-cap: reliable data transfer

</img>


Outline

Reliable data transfer

We will:


rdt1.0:

reliable transfer over a reliable channel


rdt1.0

</img>


rdt1.0


rdt1.0

Go to: github


rdt2.0:

channel with bit errors


rdt2.0:

The question: how to recover from errors:


ARQ


rdt2.0

New mechanisms in rdt2.0 (beyond rdt1.0):


rdt2.0

Two cases

  1. no error:
    • deliver message
    • send ACK
  2. error (corrupt message)
    • send NAK

rdt2.0

</img>


rdt2.0 has a fatal flaw

What happens if ACK/NAK corrupted?


rdt2.0 has a fatal flaw

#### Stop and wait Sender sends one packet, then waits for receiver response

rdt 2.1 and rdt 2.2


rdt2.2: receiver

</img>


rdt2.2: sender

</img>


rdt3.0:

channels with errors and loss

New assumption:


rdt3.0:

channels with errors and loss


rdt3.0: sender

</img>


rdt3.0

</img>


rdt3.0

</img>


Pipelined protocols

</img>


Pipelined protocols


Pipelined protocols

Two generic forms of pipelined protocols:

  1. go-Back-N,
  2. selective repeat

Go-back-N:


Selective Repeat:


Go-back-N in action

</img>


Selective repeat


Selective repeat

Sender


Selective repeat

Receiver


Selective repeat

</img>


Selective repeat: dilemma

- Example: - Finite range of seq #’s: 0, 1, 2, 3 - Window size=3 - Receiver sees no difference in two scenarios! - Duplicate data accepted as new in (b) </img>

Summary