Experiments on six commercial TCP implementations using a software fault injection tool

TCP, the de facto standard transport protocol in today's operating systems, is a very robust protocol that adapts to various network characteristics, packet loss, link congestion, and even significant differences in vendor implementations. This paper describes a set of experiments performed on six different vendor TCP implementations using ORCHESTRA, a tool for testing and fault injection of communication protocols. These experiments uncovered violations of the TCP protocol specification, and illustrated differences in the philosophies of various vendors in their implementations of TCP. The paper summarizes several lessons learned about the TCP implementations through these experiments. © 1997 John Wiley & Sons, Ltd.

[1]  Douglas Comer,et al.  Probing TCP Implementations , 1994, USENIX Summer.

[2]  Vern Paxson,et al.  Measurements and analysis of end-to-end Internet dynamics , 1997 .

[3]  Farnam Jahanian,et al.  Probing and fault injection of protocol implementations , 1995, Proceedings of 15th International Conference on Distributed Computing Systems.

[4]  V. Jacobson,et al.  Congestion avoidance and control , 1988, CCRV.

[5]  Farnam Jahanian,et al.  Testing of fault-tolerant and real-time distributed systems via protocol fault injection , 1996, Proceedings of Annual Symposium on Fault Tolerant Computing.

[6]  David B. Ingham,et al.  Delayline: A Wide-Area Network Emulation Tool , 1994, Comput. Syst..

[7]  Steven McCanne,et al.  The BSD Packet Filter: A New Architecture for User-level Packet Capture , 1993, USENIX Winter.

[8]  Kang G. Shin,et al.  DOCTOR: an integrated software fault injection environment for distributed real-time systems , 1995, Proceedings of 1995 IEEE International Computer Performance and Dependability Symposium.

[9]  Brian N. Bershad,et al.  Efficient Packet Demultiplexing for Multiple Endpoints and Large Messages , 1994, USENIX Winter.

[10]  Jeffrey C. Mogul,et al.  The packer filter: an efficient mechanism for user-level network code , 1987, SOSP '87.

[11]  Farnam Jahanian,et al.  A software fault injection tool on real-time Mach , 1995, Proceedings 16th IEEE Real-Time Systems Symposium.