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.
Back to
Publications list.