Transparent TCP SYN and SYN/ACK retransmission

Sometimes, when you surf the web, access to a website gets "stuck". I believe that this is due to lost TCP SYN or SYN/ACK packets, which are normally retransmitted only after expiry of a conservatively set (typically 3 second) timer. Indeed, this problem sometimes happens, as Benjamin Kaser found and documented in his first bachelor thesis (German)

You could improve your web surfing experience by configuring your TCP/IP stack, or, if you want a general (not-necessarily per-host) solution, by transparently retransmitting the SYN (client side) or SYN/ACK (server side) packet. A software for doing this was developed by Benjamin Kaser for his second bachelor thesis (German) If the SYN/ACK packet was lost, a server side installation will help, and a client side installation will help in any case.

The tool is called syn_optimizer (can be used on both sides, depending on command line arguments), and is available right here:

The syn_optimizer must run as a root process in Linux, and requires libpcap developer edition (version >= 0.97) and tcpreplay version >= 3.2.3.

Note: while this was developed for better web surfing, it actually has nothing to do with the web and (automatically) applies to any TCP based application (e.g. FTP). Have fun!

Update: measurement results and the tool are now also documented in:

Dragana Damjanovic, Philipp Gschwandtner, Michael Welzl: "Why is this Web Page coming up so slow? Investigating the Loss of SYN Packets", IFIP/TC6 NETWORKING 2009, 11-15 May 2009, Aachen, Germany.

Last update: 16. July 2009
Back to Michael's page