A Web-Based Introduction to Computer Networks for Non-Majors

Reliable Data Transfer Protocols



Transferring data reliably across the network is a key issue. In fact, ensuring reliable data transfer can be done at several layers in the protocol stack, including the link layer, the transport layer, and the application layer. A set of techniques based on acknowledgement packets, timeouts and retransmissions are used to implement reliable data transfer regardless in all these layers. This applet simulation illustrates these techniques in the context of the Transmission Control Protocol (TCP) of the transport layer.

The simplest version of this family of reliable data transfer protocols is called stop-and-wait. This version can have performance problems in some situations. These performance problems can be solved by more complex versions called pipelined reliable data transfer protocols. This applet illustrates both stop-and-wait and pipelined protocols. It illustrates the three cases of no lost packets, lost data packets, and lost acknowledgements. For pipelined protocols that have lost data packets or acknowledgement there are two main protocol variants called selective repeat and go-back-n. The applet illustrates the selective repeat variant of pipelined protocols when there are losses. TCP's method of ensuring reliable data transfer is a pipelined protocol that is a mixture of selective repeat and go-back-n. The applet also allows changes in the bandwidth, the packet size, and the one way delay.

Press the Help button for a description of how to use the applet. The links below provide further information.

How do I use this applet?

What concepts is this applet illustrating?

A Laboratory

Caveats and References

Acknowledgements and Developer Information

Current Version Date: February 2004

Copyright notice © Mark A. Holliday and Michael Johnson. All rights reserved.