Reliable Data Transfer (RDT) 1.0
Reliable Data Transfer (RDT) 1.0 works on a perfectly reliable channel, that is, it assumes that the underlying channel has:
- No bit errors and
- No loss of packets
This transfer of data is shown by using FSM (finite state machine). In RDT 1.0, there is only one state each for sender and receiver.
Sender Side: When the sender sends data from the application layer, RDT simply accepts data from the upper layer via the rdt_send(data) event. Then it puts the data into a packet (via the make_pkt(packet,data) event) and sends the packet into the channel using the udp_send(packet) event.
Receiving Side: On receiving data from the channel, RDT simply accepts data via the rdt_rcv(data) event. Then it extracts the data from the packet (via the extract(packet, data)) and sends the data to the application layer using the deliver_data(data) event.
No feedback is required by the receiving side as the channel is perfectly reliable, that is, no errors are possible during the data transmission through the underlying channel.