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.
This commit is contained in:
Bill Fenner 1998-05-17 06:39:38 +00:00
parent bd6be9150d
commit 4a3bf3b27c
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=36115

View File

@ -51,6 +51,7 @@ static char sccsid[] = "@(#)dumprmt.c 8.3 (Berkeley) 4/28/95";
#include <netinet/in.h>
#include <netinet/in_systm.h>
#include <netinet/ip.h>
#include <netinet/tcp.h>
#include <protocols/dumprestore.h>
@ -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