[945] in linux-net channel archive

home help back first fref pref prev next nref lref last post

Re: telnet/ftp/rlogin/rsh not working between Linux machines. (fwd)

daemon@ATHENA.MIT.EDU (Jim Shankland)
Mon Aug 21 20:22:10 1995

Date: Sun, 20 Aug 1995 21:14:25 -0700
From: Jim Shankland <jas@flyingfox.COM>
To: agulbra@troll.no, urlichs@noris.de
Cc: linux-net@vger.rutgers.edu

> Delayed connection acceptance would be just great, but (as Alan
> (I think) mentioned when I brought that one up last time) it
> causes problems with the originating TCP's round-trip-time
> discovery algorithm. Too bad. :-(

This is implausible.  It takes more than one sample to come up
with a reasonable RTT estimate, and perturbing one sample a little
just isn't going to mess things up much (remember, also, that
ACKs are routinely delayed for up to a few hundred milliseconds
to see if they can be piggybacked onto return data).

The more likely reason is historic:  the sockets API does not
provide for control to be passed from the protocol stack to the
server application after the initial SYN is received, but before
the SYN-ACK packet is returned.  By the time the accept() call
returns, the SYN-ACK packet has been sent (well, queued).  To change
this would require splitting accept() into 2 calls:  accept1()
would block until a connection request arrived, and would return
the IP address (and port) on the other end of the requested connection.
accept2() would allow the application to either accept or reject
a pending connection request returned by accept1().

Jim Shankland
Flying Fox Computer Systems, Inc.

home help back first fref pref prev next nref lref last post