Subject: TCP being hoodwinked into spurious retransmissions by lack of timestamps?

From: Rick Jones <[email-masked]>
Date: Mon, 03 Mar 2014 16:29:09 -0800

I've been looking at some packet traces of an application looking to 
upload a Large Quantity (tm) of data to a server across the Big Bad 
Internet (tm).  They've been Linux senders, and the destination while 
supporting SACK and window scaling does not support TCP timestamps. 
(TCP timestamp support was requested of the supplier of said server many 
many months ago now.)

This destination system has been issuing RSTs at seemingly random points 
in the middle of a large fraction of the attempted transfers.  In 
looking at the traces, they all seem to be variations on the theme of 
what is shown by:

ftp://netperf.org/retrans_question/for_netdev.png

which is a passing of ftp://netperf.org/retrans_question/for_netdev.pcap 
through tcptrace -nG and zoomed-in to the end.  I've seen this with a 
3.2.0 kernel as the sender, have reports of it happening with whatever 
is in Fedora Core 20, and the traces above are from a 3.11.0 kernel as 
the sender.

The large quantity of (likely) unnecessary retransmissions shouldn't be 
triggering a RST by the receiver, but the failures consistently show 
that and I was wondering if the (spurious) retransmissions were perhaps 
"encouraged" (so to speak) by the lack of TCP Timestamps.

happy benchmarking,

rick jones