TCP has become the dominant protocol for all network data transport because it presents a simple uniform data delivery service which is sufficient for most applications over all types of lower network layers. By its very nature, TCP's adaption and retransmission strategies hide all of the details of the lower layers from the application. For example the only symptom of spurious packet loss (or nearly any other network problem) is longer elapsed time and lower performance.
...
In this paper we present an architecture and infrastructure that provides for per-connection TCP instrumentation to expose otherwise hidden protocol events. We show examples of how the infrastructure can be used in support of research, education and advanced network diagnostic tools.