We want to have a reliable protocol built on top of an unreliable channel.

image.png

The interfaces for reliable data transfer are as follows:

image.png

We consider unidirectional data transfer, but control info will flow in both directions.

Sender/receiver actions can be specified by finite state machines.

rdt1.0 - reliable transfer over a reliable channel

Assumption is that underlying channel is perfectly reliable.

Very simple FSMs for sender/receiver:

image.png

image.png