From e8a137bc32966c8dae0c5b61af86afc27acb77d4 Mon Sep 17 00:00:00 2001 From: fenner Date: Sun, 17 May 1998 06:39:38 +0000 Subject: Turn on TCP_NODELAY on the remote socket, to turn off sender silly window syndrome avoidance. The combination of SWS avoidance and ack-every-other causes low throughput if the block size divided by the MSS is odd (which is true with the default block size and MSS). Turning on TCP_NODELAY disables the Nagle algorithm and sender SWS avoidance. The rdump request/response protocol can not invoke Nagle and cannot cause SWS, so this has no negative effects. --- sbin/dump/dumprmt.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/sbin/dump/dumprmt.c b/sbin/dump/dumprmt.c index 0be7866..6420eaa 100644 --- a/sbin/dump/dumprmt.c +++ b/sbin/dump/dumprmt.c @@ -51,6 +51,7 @@ static char sccsid[] = "@(#)dumprmt.c 8.3 (Berkeley) 4/28/95"; #include #include #include +#include #include @@ -142,12 +143,10 @@ rmtgetconn() register const char *rmt; static struct servent *sp = NULL; static struct passwd *pwd = NULL; -#ifdef notdef - static int on = 1; -#endif char *tuser; int size; int throughput; + int on; if (sp == NULL) { sp = getservbyname(dokerberos ? "kshell" : "shell", "tcp"); @@ -199,11 +198,9 @@ rmtgetconn() if (setsockopt(rmtape, IPPROTO_IP, IP_TOS, &throughput, sizeof(throughput)) < 0) perror("IP_TOS:IPTOS_THROUGHPUT setsockopt"); - -#ifdef notdef + on = 1; if (setsockopt(rmtape, IPPROTO_TCP, TCP_NODELAY, &on, sizeof (on)) < 0) perror("TCP_NODELAY setsockopt"); -#endif } static int -- cgit v1.1