Slow network and initial TCP connection

From: Aaron Wrasman
Date: Tue Oct 07 2003 - 21:15:37 EST


I'm working with a 2.4 kernel and we have linux servers (over 3000) that have
to talk over a slow satellite connection. We noticed that it was timing out
on the initial TCP connection and had to retry. Between the first time
out and the second try with a longer timeout it was actually taking
longer than it use to with a different OS and we had more traffic on our
network because of the retry.

We changed one thing in include/linux/tcp.h

Change:

#define TCP_TIMEOUT_INIT ((unsigned)(3*HZ))

to be

#define TCP_TIMEOUT_INIT ((unsigned)(5*HZ))


We did this and connections work the first time and we cut our traffic
in half.


Is there a better way than having to hardcode this in a header file and
having to recompile the kernel? I would have thought someone would have
run into this on a high latency network before now and this would be
tuneable from /proc


I know that there are some socket options that an application can set to
override this in some places but I need to do this for all TCP traffic.


All suggestions?

Attachment: pgp00001.pgp
Description: PGP signature