Reliable Data Transfer

[1][2][3][4] These sources often describe a pseudo-API and include Finite-state machine diagrams to illustrate how such a protocol might be implemented, as well as a version history.

These details are generally consistent between sources, yet are often left uncited, so the origin of this theoretical RDT protocol is unclear.

It is the most simple of the Reliable Data Transfer protocols in terms of algorithm processing.

However, to prevent duplicate messages, it adds a sequence number to each packet.

If the sender cannot acknowledge specific data in a certain duration, it will consider as packet as lost and will send it again.