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 by John Wiley & Sons, Ltd.

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

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

[3]  Farnam Jahanian,et al.  ORCHESTRA: A Fault Injection Environment for Distributed Systems , 1996 .

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

[5]  W. Richard Stevens TCP for transactions, HTTP, NNTP, and the UNIX domain protocols , 1996 .

[6]  J. Spragins TCP/IP illustrated, volume 3: TCP for transactions, HTTP, NNTP and the UNIX Domain protocols , 1996, IEEE Network.

[7]  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.

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

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

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

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

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

[13]  Adam Sah A Compiler for the Tcl Language , 1993 .

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

[15]  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.

[16]  K. Echtle,et al.  Test of fault tolerant distributed systems by fault injection , 1994, Proceedings of IEEE Workshop on Fault-Tolerant Parallel and Distributed Systems.