[945] in linux-net channel archive
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.